2010-02-21 48 views
9

我想创建一个可以使用一阶逻辑进行简单推理的应用程序。任何人都可以推荐一个可以接受任意数量的FOL表达式的“引擎”,并允许查询那些表达式(最好通过Python访问)?一阶逻辑引擎

+4

感谢PyLog和Pythologic的建议。不过,我已经熟悉这些。请允许我澄清。我正在寻找非玩具引擎。一些可扩展的,广泛使用的,并且易于与数据库交互的东西。它不必在Python中实现*,只能从Python访问。 – Cerin 2010-02-21 17:23:31

回答

5

PyLog Prolog的语法:

PyLog是一阶逻辑库 包括在Python PROLOG发动机。

9

不要使用一阶逻辑(FOL)进行查询,除非您绝对必须:一阶逻辑不可判定,但只是半可判定的,所以查询通常会不可避免地终止。

Description logic本质上是一阶逻辑的一个可决定的片段,以一种对讨论实体类及其相互关系很好的方式进行重新表达。 Python中有很多用于描述逻辑的引擎,例如基于OWL-DL的seth

如果你确实需要广阔的FOL,那么FLiP值得一看。我没有用过它(对老实说,并不是真正热衷于Python),但是这是一种很好的方法,可以让编程语言提供逻辑检查功能。

+1

看来塞特和弗里普都不在积极发展。 Seth使用Pellet,它似乎仍然很活跃,但我发现一般来说关于OWL-DL reasoners的真实用途很少。 – Cerin 2010-03-18 17:53:05