摘要
本文旨在讲明:
1)一阶逻辑(FOL)的语法,语义
2)FOL如何使用
3)Knowledge Engineering in FOL
一、回顾
命题逻辑(propositional logic):缺乏表达能力。
二、FOL
FOL假定世界包含:
1)objects 对象
2)relations 关系
3)functions 函数
模型:A set of objects and an interpretation that maps:
constant symbols -> objects
predicate -> relations on objects
function -> functions on objects
模型枚举在FOL中不可行,因为可能模型数量是无限的。
标准的一阶逻辑语义比自然语言表述累赘得多。在将知识翻译成一阶逻辑的时候直观上也很容易出错。
所以,能否设计一种语义使得逻辑表达更直接呢?
数据库语义:区分于标准的一阶逻辑语义。
三、使用一阶逻辑
Tell(将语句添加到知识库),Ask(向知识库询问问题),Askvars(询问什么样的x使得语句为真)
并非所有公理都是定义
公理还可以是“普通事实”
不是所有关于论域的逻辑语句都是公理
3.2 sets
我们使用集合论的常用词汇形成含糖语法
空集是常量,用{}表示
一元谓词Set判断对象是否为集合
3.3 高阶逻辑
总结
待补充。