Язык программирования Python

       

Prolog


Для тех, кто хочет использовать Prolog из Python, существует несколько возможностей:

  • Версия GNU Prolog (сайт: http://gprolog.sourceforge.net) интегрируется с Python посредством пакета bedevere (сайт: http://bedevere.sourceforge.net)
  • Имеется пакет PyLog (http://www.gocept.com/angebot/opensource/Pylog) для работы с SWI-Prolog (http://www.swi-prolog.org) из Python
  • Можно использовать пакет pylog (доступен с сайта: http://christophe.delord.free.fr/en/pylog/), который добавляет основные возможности 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-синтаксиса.



Содержание раздела