事实库


一、是什么

Fact Base是一个事实集合,里面存放的是推理过程中可用的已知断言,可以包括:

  • 显式提供的领域事实(例如“张三是学生”、“A是B的父亲”等);
  • 从外部系统(例如“三库系统”)动态导入的事实(尚在开发);
  • 推理过程中不断推导出来的新事实

在实现中,Fact Base维护了两层集合:

  • facts:系统已知的“全部事实”;
  • cur_facts:本次解题真正参与推理的事实子集。

常见流程是:

  1. 给出问题 Question
  2. 引擎调用 initial_fact_base(question, topn=...)
    • 按启发式,从 facts 中挑选与当前问题最相关的一部分;
    • 向外部系统请求与该问题关联的补充事实;
    • 统一放入 cur_facts,作为本轮推理的起点。

二、录入方式

2.1 字符串形式

WIP

2.2 python代码

一般通过Assertion类进行录入。