【问题标题】:First Order Logic Engine一阶逻辑引擎
【发布时间】:2011-01-19 06:28:30
【问题描述】:

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

【问题讨论】:

  • 感谢 PyLog 和 Pythologic 的建议。不过,这些我已经很熟悉了。请允许我澄清一下。我正在寻找非玩具引擎。具有可扩展性、广泛使用且易于与数据库交互的东西。它不必在 Python 中实现,只能从 Python 访问。

标签: python logic machine-learning reasoning


【解决方案1】:

除非绝对必要,否则不要使用一阶逻辑 (FOL) 进行查询:一阶逻辑是不可判定的,而只能是半可判定的,因此查询通常不可避免地不会终止。

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

如果您确实确定需要 FOL 的广阔性,那么 FLiP 值得一看。我没有使用过它(说实话,我并不热衷于 Python),但这是一种让编程语言可以使用逻辑检查的好方法。

【讨论】:

  • 看来 Seth 和 Flip 都没有在积极开发中。 Seth 使用 Pellet,它似乎仍然处于活动状态,但我发现关于 OWL-DL 推理器在实际世界中的一般用途的文档很少。
  • kanren 看起来成熟稳重:pypi.org/project/kanren
【解决方案2】:

PyLog:

PyLog 是一个一阶逻辑库 包括 Python 中的 PROLOG 引擎。

【讨论】:

    【解决方案3】:

    配方 303057:Pythologic -- Python 中的 Prolog 语法/http://code.activestate.com/recipes/303057/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-20
      • 2019-07-04
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      相关资源
      最近更新 更多