1.写在前面
我们之前讲到了命题逻辑,讲到了命逻辑中关于语义蕴含和语法形式推演的基本知识。我们可以了解到,我们研究形式逻辑的目的就是将一组知识形式化成符号。通过形式推演自动的得到结论,并且我们还可以证明这个推演过程的可靠性和完备性。
一阶谓词逻辑简称谓词逻辑,和原来思路一样,我们首先看语法,然后看推演deduction,在命题逻辑中,我们只有原子命题,每一个原子命题都可以表达一个基本事实(太阳从东方升起)。在一阶谓词逻辑中,假设描述的世界中可以包含更多的东西。
2.一阶谓词逻辑和命题逻辑不同的地方
在一阶谓词逻辑中,有三个东西去描述这个世界:
object对象:一个一个的个体,一个人......
relations关系:是特殊的function函数,自变量是对象object,函数值要么是真要么是假(可以是一元,二元......),比如我们定义father()是一个relation的话,结果就是true或者false。father(A,B),相比之下,relation的范围更广。
functions函数:是一个具体的函数,自变量是一个对象object,函数值是另外一个object,可以从一个object映射到另外一个object(可以 是一元,二元..........),比如定义一个father的function的话,father(B)的输出就是A,是一个one to one 的过程。
3.一阶谓词逻辑的Syntax语法
在一阶谓词逻辑中我们定义了更多的符号,在命题逻辑中只有原子命题P(大写字母),这个连接词connectives在命题逻辑中也有,作用也是一样的,其他的几项没有,多了常量,变量(小写字母),predicates(关系),function,equ相等,量词(全称量词 任意,存在量词 存在)。variables是一个变量,constans在命题逻辑汇总就已经存在了(P,Q等),predicate是用来描述relation的。还有equality可以判定两个是否相等。
量词:全称量词+存在量词
通常情况下,对于全称量词,我们连接的符号是imply,对于存在量词,我们配对的符号一般是^(conjunction),这个是一般情况而已。可以参考下面的例子。
(1)台大的每一个人都是聪明的
(2)台大中,有人是聪明的
(3)A =>B 全等于 negA V B ,第三句子话,neg 存在 台大 V 是聪明的,所有人都不在台大整句话是true,我们不用管有没有人聪明,只要有一个人聪明整句话也是true,我们不用管在不在台大。
4.原子句子(atomatic sentence)
类似的,一阶谓词逻辑原子sentence,什么是一个原子sentence?
5.复杂句子(complex sentences)
复杂sentence :由原子sentence使用连接词构成
6.一阶谓词逻辑中的真
就模型和解释而言,句子是正确的
模型包含大于等于1个对象objects(域元素domain elements)和它们之间的关系relations
解释指定指示物:
常量符号→对象objects
谓词符号→关系relations
函数符号→函数关系functional relations
一个原子句子谓词(term1,…)为真,当且仅当(term1,…)中的对象object符合谓词逻辑的关系relation。
7.一阶谓词逻辑中的模型
命题逻辑中的蕴涵可以通过枚举模型来计算,在一阶谓词逻辑中,我们可以枚举出给定知识库词汇表KB的FOL模型(一阶谓词逻辑模型)
通过列举FOL模型计算蕴涵是不容易的!
一阶谓词逻辑的表达也是不够完善的,我们可以看到下面一个例子,john有两个哥哥,一个mark,一个da。第一个表达式没有说明john只有两个哥哥信息,第二个没说明mark和da是两个人,两个constant,这种问题在自然语言中不会出现这种问题。
8.全称量词(可以翻译为对于任意的....)
需要注意:implement=》和^ 表示的含义是不一致的。
9.存在量词
10.量词属性
举个例子: