2010-02-21 12 views
9

Я хотел бы создать приложение, которое может выполнять простые рассуждения с использованием логики первого порядка. Может ли кто-нибудь порекомендовать «движок», который может принимать произвольное число выражений FOL и разрешать запрос этих выражений (желательно доступный через Python)?Логический движок первого порядка

+4

Благодарим за предложения PyLog и Pythologic. Однако я уже знаком с ними. Позвольте мне уточнить. Я ищу не-игрушечные двигатели. Что-то масштабируемое, широко используемое и легко взаимодействующее с базой данных. Это не должно быть * реализовано * в Python, доступно только из Python. – Cerin

ответ

5

PyLog:

PyLog является первым порядка логики библиотека включая движок ПРОЛОГ в Python.

9

Не запрашивать с помощью логики первого порядка (Fol), если вы абсолютно не должны: логика первого порядка не разрешимы, но только частично разрешимы, и поэтому запросы часто, неизбежно не прекращается.

Description logic по существу является разрешимым фрагментом логики первого порядка, переформулированным таким образом, который хорош для обсуждения классов сущности и их взаимосвязей. В Python существует множество движков для описания логики, например seth, основанных на OWL-DL.

Если вы действительно уверены, что вам нужна обширность FOL, то стоит посмотреть FLiP. Я не использовал его (на самом деле не очень увлекаюсь Python), но это хороший подход к тому, чтобы сделать логическую проверку доступной для языка программирования.

+1

Похоже, что ни Сет, ни Флип не находятся в активной разработке. Сет использует Pellet, который по-прежнему остается активным, но я нахожу очень мало документации по использованию в реальном мире для OWL-DL-рассуждений в целом. – Cerin