Programmation relationnelle / logique en Python?

Je suis un développeur python de longue date et j'ai récemment été introduit dans Prolog. J "aime le concept d" utiliser des règles de relation pour certains types de tâches, et je voudrais ajouter à mon répertoire.

Existe-t-il de bonnes bibliothèques pour la programmation logique en Python? J'ai fait quelques recherches sur Google mais j'ai seulement trouvé ce qui suit:

La série de blog de jtauber sur relational_python

Aimerait comparer à d'autres...Merci!

-aj

30
demandé sur theheadofabroom 2009-12-16 23:50:21

7 réponses

Peut-être que vous devriez google "programmation logique en Python". Pyke semble prometteur:

Pyke introduit une forme de programmation logique (inspirée de Prolog) pour la communauté Python en fournissant un moteur d'inférence basé sur la connaissance (système expert) écrit en 100% Python.

Contrairement à Prolog, Pyke s'intègre à Python vous permettant d'invoquer Pyke de Python et entremêler des instructions et des expressions Python dans règles de votre système expert.

11
répondu Richie 2013-05-05 11:14:12

Vous pouvez utiliser pyDatalog , une bibliothèque de programmation logique que J'ai développée pour Python implémentant Datalog. Il fonctionne également avec SQLAlchemy pour interroger des bases de données relationnelles à l'aide de clauses logiques.

12
répondu user474491 2015-10-06 20:48:02

Une Autre option est de Rendement Prolog

3
répondu false 2012-03-29 19:10:38

LogPy est une implémentation de miniKanren , un langage de programmation relationnel, en Python. Il suit dans la tradition de core.logic, la solution de programmation logique prééminente dans Clojure. LogPy a été conçu pour l'interopérabilité avec les bases de code préexistantes.

3
répondu MRocklin 2013-05-09 14:38:10

Vous pouvez également regarder Dee, qui ajoute des relations à Python: http://www.quicksort.co.uk

2
répondu greg 2010-10-15 15:53:11

Une implémentation récente de Prolog en Python (ou plutôt RPython) dans Pyrolog. C'est encore assez expérimental.

2
répondu false 2012-03-29 14:52:19

Vous devriez également vérifier PyLog:

Http://cdsoft.fr/pylog/

Il a une syntaxe et une implémentation très propres et simples.

2
répondu Bernát 2012-11-16 10:51:07