Liaisons Python CFFI pour le système de production intégré en langage « C » CLIPS 6.41.
Source: | https://github.com/noxdafox/clipspy |
---|---|
Documentation: | https://clipspy.readthedocs.io |
Télécharger: | https://pypi.python.org/pypi/clipspy |
Initialement développé au Johnson Space Center de la NASA, CLIPS est un langage de programmation basé sur des règles, utile pour créer des systèmes experts et de production dans lesquels une solution heuristique est plus facile à mettre en œuvre et à maintenir qu'une solution impérative. CLIPS est conçu pour faciliter le développement de logiciels permettant de modéliser les connaissances ou l'expertise humaine.
CLIPSPy apporte des fonctionnalités CLIPS au sein de l'écosystème Python.
Sous Linux, CLIPSPy est packagé pour l'architecture x86_64 sous forme de roue conformément aux directives PEP-513. La plupart des distributions devraient être prises en charge.
$ pip installer clipspy
Apple Silicon est pris en charge pour les versions Python supérieures à 3.11.
$ pip installer clipspy
CLIPSPy se présente sous la forme d'une roue pour la plupart des versions et architectures de Python.
> pip installer clipspy
Les Makefiles fournis se chargent de récupérer le code source CLIPS et de compiler les liaisons Python avec celui-ci.
$ make# make install
Veuillez consulter la documentation pour plus d'informations sur la création de CLIPSPy à partir de sources.
import clipsDEFTEMPLATE_STRING = """(personne deftemplate (nom de l'emplacement (type STRING)) (nom de l'emplacement (type STRING)) (date de naissance de l'emplacement (type SYMBOL)))"""DEFRULE_STRING = """(defrule hello-world "Salut un nouvelle personne." (personne (nom ?nom) (nom ?nom)) => (println "Bonjour " ?nom " " ?surname))"""environment = clips.Environment()# definition constructsenvironment.build(DEFTEMPLATE_STRING)environment.build(DEFRULE_STRING)# récupérer le fait templatetemplate = Environment.find_template('person')# affirmer un nouveau fait via son templatefact = template.assert_fact(name='John',surname='Doe',birthdate=clips.Symbol('01/01/1970'))# les emplacements de faits sont accessibles en tant qu'éléments de dictionnaireassert fact['name'] == 'John '# exécuter les activations dans agendaenvironment.run()