logic-and-learning-lab/Popper

An inductive logic programming system

解决的问题

Popper 是一个归纳逻辑编程(ILP)系统,允许计算机从一组示例和现有的背景知识中学习逻辑规则。它自动化了发现解释特定关系的底层逻辑的过程,例如基于亲子数据识别“祖父母”规则。

工作原理

Popper 接受三个主要输入:包含正例和负例的文件、包含已知事实的背景知识(BK)文件,以及定义搜索空间的偏差文件(指定规则头或体中可以使用的谓词)。它使用 CPSAT 或 NuWLS 等求解器,寻找最简单的符合数据的逻辑规则。它可以通过 --noisy 标志处理噪声数据,并支持递归和类型注解等高级逻辑功能,以优化搜索过程。

适用人群

专为具有 Prolog 背景的符号 AI、逻辑编程和自动规则发现领域的研究人员和开发者设计。

主要亮点

  • 递归规则学习:能够学习谓词自身引用自身的规则。
  • 噪声数据处理:通过 --noisy 标志,可从不完美数据中学习。
  • C-SAT 和 NuWLS 集成:支持高性能求解器,加速规则发现过程。
  • 可自定义约束:支持使用类型和方向注解,显著减少学习时间并提高准确性。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • Dispatch