Ligações Python CFFI para o Sistema de Produção Integrado de Linguagem 'C' CLIPS 6.41.
Fonte: | https://github.com/noxdafox/clipspy |
---|---|
Documentação: | https://clipspy.readthedocs.io |
Download: | https://pypi.python.org/pypi/clipspy |
Desenvolvido inicialmente no Johnson Space Center da NASA, CLIPS é uma linguagem de programação baseada em regras útil para a criação de sistemas especializados e de produção onde uma solução heurística é mais fácil de implementar e manter do que uma solução imperativa. O CLIPS foi projetado para facilitar o desenvolvimento de software para modelar o conhecimento ou experiência humana.
CLIPSPy traz recursos CLIPS para o ecossistema Python.
No Linux, o CLIPSPy é empacotado para arquitetura x86_64 como uma roda de acordo com as diretrizes PEP-513. A maioria das distribuições deve ser suportada.
$ pip instalar clipspy
Apple Silicon é compatível com versões do Python superiores a 3.11.
$ pip instalar clipspy
CLIPSPy vem como uma roda para a maioria das versões e arquiteturas Python.
> pip instalar clipspy
Os Makefiles fornecidos cuidam de recuperar o código-fonte CLIPS e compilar as ligações Python junto com ele.
$ make# make install
Por favor, verifique a documentação para obter mais informações sobre a construção do CLIPSPy a partir de fontes.
importar clipesDEFTEMPLATE_STRING = """(deftemplate pessoa (nome do slot (tipo STRING)) (sobrenome do slot (tipo STRING)) (data de nascimento do slot (tipo SYMBOL)))"""DEFRULE_STRING = """(defrule hello-world "Cumprimente um nova pessoa." (pessoa (nome ?nome) (sobrenome ?sobrenome)) => (println "Olá " ?nome " " ?sobrenome))"""environment = clips.Environment()# define constructsenvironment.build(DEFTEMPLATE_STRING)environment.build(DEFRULE_STRING)# recupera o fato templatetemplate = Environment.find_template('person')# afirma um novo fato através de seu templatefact = template.assert_fact(name='John',surname='Doe',birthdate=clips.Symbol('01/01/1970'))# slots de fatos podem ser acessados como elementos de dicionárioassert fact['name'] == 'John '# execute as ativações no agendaenvironment.run()