Relational/Logic Programming in Python?

青春壹個敷衍的年華 提交于 2019-12-18 10:11:54

问题


I'm a longtime python developer and recently have been introduced to Prolog. I love the concept of using relationship rules for certain kinds of tasks, and would like to add this to my repertoire.

Are there any good libraries for logic programming in Python? I've done some searching on Google but only found the following:

jtauber's blog series on relational_python

Would love to compare to some others...thanks!

-aj


回答1:


Perhaps you should google "Logic Programming in Python". Pyke looks promising:

Pyke introduces a form of Logic Programming (inspired by Prolog) to the Python community by providing a knowledge-based inference engine (expert system) written in 100% Python.

Unlike Prolog, Pyke integrates with Python allowing you to invoke Pyke from Python and intermingle Python statements and expressions within your expert system rules.




回答2:


You may want to use pyDatalog, a logic programming library that I developed for Python implementing Datalog. It also works with SQLAlchemy to query relational databases using logic clauses.




回答3:


LogPy is an implementation of miniKanren, a relational programming language, in Python. It follows in th tradition of core.logic, the preeminent logic programming solution in Clojure. LogPy was designed for interoperability with pre-existing codebases.




回答4:


Another option is Yield Prolog




回答5:


As we are heading toward 2019, I recommend PySWIP over others recommended here. It is actively maintained and has an easy interface, unlike Pyke (9 years ago) or PyLog (6 years ago).




回答6:


You could also look at Dee, which adds relations to Python: http://www.quicksort.co.uk




回答7:


A recent Prolog implementation in Python (or rather RPython) in Pyrolog. It is still rather experimental.




回答8:


You should also check PyLog:

http://cdsoft.fr/pylog/

It has a very clean and simple syntax and implementation.



来源:https://stackoverflow.com/questions/1917607/relational-logic-programming-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!