Pyke 逻辑编程入门(13):知识库


知识库


知识库是有名称的、存储结构化知识的“仓库”。知识库象硬盘上的文件目录,但知识库结构不能嵌套。因此,知识库里的知识单元,有两层结构的名称:知识库名.知识单元名。

在某一 web 服务器程序里,可能看到一些事实的例子:

header.cookie('session=123456789;remember=the_alamo')
cookie.session(123456789)
cookie.remember(the_alamo)
header.accept_encoding(gzip)
header.accept_encoding(deflate)
request.path('/my/site.html')
request.path_segment(0, my)
request.path_segment(1, 'site.html')
request.path_segment(-2, my)
request.path_segment(-1, 'site.html')

注意,在此有三个不同的知识库(都是事实库),分别名叫 header, cookie, request,各有一些事实陈述。

知识库名字的第二部分,是知识单元名称。可把知识单元看成事实陈述的类型或者主题:

  • request: 知识库名称。
  • request.path_segment:
    • 知识单元或事实主题的名称。
  • request.path_segment(-1, 'site.html'):
    • 有关知识单元主题 request.path_segments 的具体陈述。

知识库的用途

说到底,Pyke 是为了证明事实陈述的真伪,比如回答这样的问题:“某一陈述是真的吗?”。有几种不同类型的知识库,用法也不相同:

  • 如上例所见,由一系列简单事实陈述组成的,称作事实库。
    • 它们是一种已知事实,可作检验其他陈述是否真实的证据。
  • 由 if-then 规则构成的规则库。
    • 运行它们的 if-then 规则,以确定某一陈述是否真实。
    • 规则库中可含正向推理规则,和反向推理规则。
  • 有可能需要以其他形式的知识库,确定陈述的真实性。Pyke 为此有两种对策:
    • “问题库”,其中是向最终用户提问的语句。
    • 特殊知识库,内含一些一次性使用的知识单元,做些特殊的事情。例如,运行底层系统命令,检查它的输出数据和退出后的状态。
      • 这种知识库,只给出一个叫做 special 的示例。
注 意

知识库名称是专用的,无论是否相同类型,每个知识库必须单独使用一个名称。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值