Pyke 逻辑编程入门(14):知识库之“事实库”


事实库


Pyke 把事实陈述保存在事实库里。存入的事实组织成结构化的,并且不限数量。事实库按照断言的新事实的需要,自动创建。

事实

设想一个事实陈述语句。它有个名字和一组参数。参数可以是:

  • 字符串
    • 标示符不需要引号,例如 Fred 与 'Fred' 相同。
  • 数字
  • None, True, False
  • 以上各种参数组成的元组。元组可以嵌套。
    • 单个成员的元组,不需要逗号,(1) 与 (1,) 相同。

不允许存在重复的事实。断言已有事实的试图,自动忽略。但要注意,只有参数全部相同的,才是重复的事实。

目前,事实被看做固定不变、不可撤销。因此建议不要用字典、列表和自定义的对象当做事实的参数。

具体事实

大多数事实是具体的。推理引擎重启做下次运行时,会删除这些事实。具体事实的断言方法是:

some_engine.assert_(kb_name, fact_name, arguments)
some_engine.add_case_specific_fact(kb_name, fact_name, arguments)

正向推理规则也可以断言事实。

通用事实

通用事实永不删除,即使引擎重启。可以在 .kfb 文件中指定通用事实,或者通过调用以下函数,加入它们:

some_engine.add_universal_fact(kb_name, fact_name, arguments)

一般在程序启动时,把通用事实一次性加入。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值