2.3.2 知识表示实例
在谓词逻辑中,表示知识的元素是谓词、子句和规则(在Prolog语言中,所有谓词都是Horn子句)。若一个子句中的项全是常量,则该子句称为事实。从这种观点出发,每个子句模式可以包含若干实例或事实。为了便于推理,可将逻辑蕴含关系表示为规则。
谓词逻辑应用归结原理(归结反演)来求解问题,为证明一个语句成立,转化为归结证明其非,导出一个与已知语句(公理)矛盾的结果(为空子集),说明该语句的非不成立,则该语句成立。在归结证明过程中,要使用谓词匹配操作,即证明两个谓词表达式恒等。谓词匹配的规则如下:
①两个谓词符相同,否则不匹配。
②参量个数相等,否则不匹配。
③对应参量匹配:
a.两者均为常量,两者应相等;
b.一个为常量,另一个为变量,将常量赋给变量;
c.两者均为变量,作变量代换;
d.一变量能匹配一函数/谓词表达式,必须这个表达式不包含该变量的任一例示。
现用一个Prolog程序例子说明知识的表示及演绎检索(deductive retrieval)处理。
(1)事实
事实用于描述对象之间的关系。事实的一般格式为:
关系(对象,对象,…,对象)
其中“关系”是谓词,对象是谓词的参量。
例如,文献信息可用文献谓词描述,谓词参量包括:文献号、篇名、著者、出处、出版日期、主题,即
文献(文献号,篇名,著者,出处,出版日期,主题)
主题知识可用主题谓词表示:
主题(主概念,子概念)
其中,“主概念”可代表单个概念,“子概念”是一个词表,标志着数据库中这个主题组面,它们直接从属于主概念。所有主题谓词集中在一起,可以形成一个主题词索引。
用户信息可使用用户谓词表示:
用户(用户名,主题)
其中的“主题”描述用户感兴趣的主题领域。
(2)规则
规则是一个有头Horn子句,它的一般格式为:
关系(对象,对象,…,对象)︰-
关系(对象,对象,…,对象)and
……
关系(对象,对象,…,对象)
其中,“︰-”表示if(如果),其左边为“结论”,是总目标;其右边为前提,是子目标。该规则是逆向规则。
例如,检索操作可用一个规则表示:
检索(用户名,文献号)︰-用户(用户名,X)and
文献(文献号,X)
它的含义是:如果某个用户对项目X感兴趣,并且某篇文献中包含项目X,那么这个用户对该篇文献感兴趣。
用户的提问可用无头Horn子句表示:
?︰-E,F或者
?E,F
它的意思是,查找X使得E,F均为真。
事实和规则的集合就构成了知识库,现给出知识库的例子如下:
文献(00001,情报系统管理,严怡民,科学技术文献出版社,1988,情报系统).
文献(00002,科技文献检索,陈光祚,武汉大学出版社,1984,情报检索).
文献(00003,情报检索自动化基础,王永成,知识出版社,1984,情报检索).
用户(王刚,情报检索).
用户(李强,情报系统).
检索(用户名,文献号)︰-用户(用户名,X)and
文献(文献号,X).
基于以上知识库就可以执行检索操作。Prolog查找机制解决用户提问,是利用定理证明技术,称为归结(resolution)。检索例子如下:
?文献(情报系统管理,严怡民)
系统用提问谓词“文献”与知识库中的事实进行匹配成功,回答为“true”。
?文献(科技文献检索,1983)
回答:false
?文献(情报检索自动化基础,出版日期)
回答:出版日期=1984其中“出版日期”是变量
?文献·(著者,情报检索)
对于该提问,系统查找使提问为真的所有变量值,结果为:著者=“陈光祚”和著者=“王永成”。
?检索(王刚,X)
其检索处理如下:
①自上而下搜索知识库,查找与提问目标匹配的事实,失败。于是用目标匹配规则的结论部分,变量“用户名”的值约束为“王刚”,然后执行演绎推理求得答案。变量“用户名”的值传递给规则前提的所有子目标。
②系统证明前提部分中第一个子目标“用户(王刚,X)”,在知识库里寻找与其匹配的事实,匹配成功,变量X的值约束为“情报检索”。
③第二个子目标为“文献(文献号,情报检索)”。同理,搜索知识库,子目标匹配两条文献事实,文献号的值为00002与00003,王刚检索到两篇文献。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。