Для тех, кто хочет использовать Prolog из Python, существует несколько возможностей:
Эти три варианта реализуют различные способы интеграции возможностей Prolog в Python. Первый вариант использует SWIG, второй организует общение с Prolog-системой через конвейер, а третий является специализированной реализацией Prolog.
Следующий пример показывает использование модуля pylog:
from pylog import *
exec(compile(r""" man('Socrates'). man('Democritus'). mortal(X) :- man(X). """))
WHO = Var() queries = [mortal('Socrates'), man(WHO), mortal(WHO)] for query in queries: print "?", query for _ in query(): print " yes:", query
Что выдает результат:
? mortal(Socrates) yes: mortal(Socrates) ? man(_) yes: man(Socrates) yes: man(Democritus) ? mortal(_) yes: mortal(Socrates) yes: mortal(Democritus)
Разумеется, это не "настоящий" Prolog, но с помощью модуля pylog любой, кому требуются логические возможности Prolog в Python, может написать программу с использованием Prolog-синтаксиса.