Язык программирования 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–синтаксиса.