首页 理论教育 开放世界和封闭世界

开放世界和封闭世界

时间:2022-02-11 理论教育 版权反馈
【摘要】:用完备化和唯一名称假设,我们得到了正好有36门课程的期望结论:30门数学课和6门CS课封闭世界假设允许我们找到关系的一个最小模型。但是通常用一个专用的推理机制会更加有效,比如 Prolog,它将封闭世界和唯一名称假设构建在推理机制中。那些采用封闭世界假设的人必须小心他们会做何种推理。一个更加精密复杂的知识表示系统可能会允许用户指定说明何时运用封闭世界假设的规则。

10.7.1 开放世界和封闭世界

假设你在看某大学计算机科学系的公告牌,看到一个通知说:“提供下列课程:CS 101,CS 102, CS 106,EE 101。”现在,将提供多少门课程?如果你回答“4门”,那么你和典型数据库系统一致。已知一个含有4个断言的等价式的关系数据库:

SQL查询count * from Course返回4。另一方面,一阶逻辑系统会回答“1和无穷大之间的某值”,而不是“4”。原因是 Course 断言没有否定提供其它没有提及课程的可能性,也没有说提及的课程彼此不同。

这个例子表明数据库系统和人类交流的惯例与一阶谓词至少在两个方面是不同的。第一,数据库(和人)假设提供的信息是完备的,所以没有被断言为真的基本原子语句被假定为假。这称为封闭世界假设,或称CWA。第二,我们通常假设不同的名称指代不同的对象。这就是唯一名称假设,或称UNA,我们首先在第10.3节里行动名称的上下文中介绍过。

一阶逻辑没有假设这些约定,因此需要更加明确。为了说明只提供了4门不同的课程,我们应该写成:

公式10.3称为公式10.2的完备化[44]。通常,完备化对于每个谓词都会包含一个定义——即一个当且仅当语句,而每个定义对于每个把该谓词作为它的头的确定子句都会包含一个析取子句[45]。通常,完备化的构建过程如下:

(1)收集具有相同谓词名称(P)和相同元数(n)的所有子句。

(2)把每个子句转换成克拉克范式:用

P(v1, … , vn) ← ∃w1… wm[v1, … , vn] = [t1, … , tn] ∧ Body

替换

P(t1, … , tn) ← Body

其中ti是项,vi是新创造的变量,wi是原始子句中出现的变量。对每个子句用同一个vi集。这给了我们一个子句集

Pv(1Λ vn)←B1

Μ

Pv(1Λ vn)←Bk

(3)将这些合并成一个大的析取子句:

P(v1, … , vn) ← B1∨ ... ∨ Bk

(4)用等价符替换←,形成完备化:

P(v1, … , vn) ⇔ B1∨ ... ∨ Bk

图10.12显示了对一个具有基础事实和规则的知识库的克拉克完备化的例子。为了添加唯一名称假设,我们简单地为等式关系构建克拉克完备化,其中唯一的事实是CS=CS,101=101等等。这留作练习。


图10.12 一个霍恩子句集的克拉克完备化。原始的霍恩程序(左边)明确地列出4门课程,并且同时断言对从101到130的每个整数都有一门数学课,对每门100(本科生)系列的CS课,有一门对应的200(研究生)系列的课。克拉克完备化(右边)说明没有其它课程。用完备化和唯一名称假设(以及谓词Integer的显然定义——即整数),我们得到了正好有36门课程的期望结论:30门数学课和6门CS课

封闭世界假设允许我们找到关系的一个最小模型。也就是,我们能够找到关系Course的具有最少元素的模型。在公式(10.2)中,Course的最小模型有4个元素;少任何元素的话,我们将会得到矛盾。对于霍恩知识库,总有一个唯一最小模型。注意,根据唯一名称假设,这也适用于等式关系:每个项只与自身相等。看似荒谬,这意味着在拥有尽可能多的对象的意义下说,最小模型是最大的。

采用一个霍恩程序来生成克拉克完备化,并把它提交给定理证明机进行推理是可能的。但是通常用一个专用的推理机制会更加有效,比如 Prolog,它将封闭世界和唯一名称假设构建在推理机制中。

那些采用封闭世界假设的人必须小心他们会做何种推理。例如,一个人口普查数据库,在推理当前城市人口时,采用CWA(封闭世界假设)是合理的;但是如果只是因为数据库不包含未来生日的条目而推断将来没有婴儿会出生,这是错误的。CWA使得数据库完备,是从对每个原子查询的回答不是肯定就是否定的意义上说的;当我们对事实(诸如未来的生日)确实不了解时,我们不能使用CWA。一个更加精密复杂的知识表示系统可能会允许用户指定说明何时运用封闭世界假设的规则。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈