Enlaces de Python CFFI para el sistema de producción integrado en lenguaje 'C' CLIPS 6.41.
Fuente: | https://github.com/noxdafox/clipspy |
---|---|
Documentación: | https://clipspy.readthedocs.io |
Descargar: | https://pypi.python.org/pypi/clipspy |
CLIPS, desarrollado inicialmente en el Centro Espacial Johnson de la NASA, es un lenguaje de programación basado en reglas útil para crear sistemas expertos y de producción donde una solución heurística es más fácil de implementar y mantener que una imperativa. CLIPS está diseñado para facilitar el desarrollo de software para modelar el conocimiento o la experiencia humanos.
CLIPSPy aporta capacidades CLIPS dentro del ecosistema Python.
En Linux, CLIPSPy está empaquetado para la arquitectura x86_64 como una rueda de acuerdo con las pautas PEP-513. La mayoría de las distribuciones deberían ser compatibles.
$ pip instalar clipspy
Apple Silicon es compatible con versiones de Python superiores a la 3.11.
$ pip instalar clipspy
CLIPSPy viene como una rueda para la mayoría de las versiones y arquitecturas de Python.
> instalación de pip clipspy
Los Makefiles proporcionados se encargan de recuperar el código fuente de CLIPS y compilar los enlaces de Python junto con él.
$ hacer # hacer instalar
Consulte la documentación para obtener más información sobre la creación de CLIPSPy a partir de fuentes.
importar clipsDEFTEMPLATE_STRING = """(persona deftemplate (nombre del espacio (escriba STRING)) (apellido del espacio (escriba STRING)) (fecha de nacimiento del espacio (escriba SYMBOL)))"""DEFRULE_STRING = """(defrule hello-world "Saluda a nueva persona." (persona (nombre ?nombre) (apellido ?apellido)) => (println "Hola " ?nombre " " ?surname))"""environment = clips.Environment()# define constructsenvironment.build(DEFTEMPLATE_STRING)environment.build(DEFRULE_STRING)# recupera el hecho templatetemplate = Environment.find_template('person')# afirma un nuevo hecho a través de su templatefact = template.assert_fact(name='John',surname='Doe',birthdate=clips.Symbol('01/01/1970'))# se puede acceder a los espacios de datos como elementos del diccionarioassert fact['name'] == 'John '# ejecutar las activaciones en agendaenvironment.run()