一种专家系统知识表示机制和推理方法

文档序号:6584965阅读:246来源:国知局
专利名称:一种专家系统知识表示机制和推理方法
技术领域
本发明涉及知识工程中知识的表示方法以及专家系统中推理机制的实现技术,属
于计算机科学领域。
背景技术
知识的表示方法是知识工程中一个最基本的研究问题。因为知识有内容和 形式之分,所以知识表示方法也被划分为句法系统(Syntactic Systems)和语义系统 (SemanticSystems)。前者着眼于表示知识的形式,而不关心被表示的知识的内容,这样的 系统用简单,统一的规则来操作表达,而不必关心表达包含什么信息。语义系统则处于另一 极端,它没有统一形式,表达的每一片断对应于不同块的信息,推理规则也相对复杂一些。
推理机制作为专家系统中一个重要的环节,决定了专家系统的价值和效率。就推 理本身而言,它包含两个基本方面知识和逻辑。从逻辑角度划分,推理可分为两类精确 推理和不精确推理。精确推理实际上就是演绎推理,不精确推理有归纳推理,概率逻辑推 理,模糊逻辑推理,非单调逻辑推理等。从知识的表示方法来划分,推理可分为基于知识的 推理,基于规则的推理,基于语义网的推理,基于框架的推理等。目前,在国内外专家系统的 应用中,基于知识的演绎推理是最为可靠和流行的。

发明内容
本发明要解决的技术问题是建立一个简单实用的知识表示机制和一套通用可靠 的推理方法,使得专家系统容易构建,而且具有一定的普适性和强大的可靠性。
本发明采用的技术方案是
>知识表示机制 知识表示法又称知识表示模式或知识表示技术。 对于知识表示方法的研究离不开对知识本身的研究,由于目前人类对自己头脑 中的知识的结构及形成机制还没有认识清楚,所以知识表示的完整的理论也就无法建 立。已有的一些知识表示方法都是按照个人的理解从不同的角度进行探索的。70年代人 们对知识表示问题形成了两种不同的看法。Winograd等人(1975)认为知识是陈述性的 (Declarative),即知识是一些已知的客观事物(knowing what)。另一些人认为知识是过程 性的(Procedural),是客观存在的一些规律(Knowing How)。成述式将知识表示成一批静 态的事实,附带一小组处理它们的通用程序。过程式则把知识表达成使用知识的过程。
因为知识有内容和形式之分,所以知识表示法也被划分为句法系统 (SyntacticSystems)和语义系统(Semantic Systems)两大类。前者着眼于表示知识的形 式,而不关心被表示的知识的内容,这样的系统用简单,统一的规则来操作表达,而不必关 心表达包含什么信息。语义系统则处于另一极端,它没有统一的形式。表达的每一片段对 应不同块的信息,推理规则也相对复杂一些。 我们考虑到为了方便于用计算机对知识进行存储和利用,也方便于专家系统进行
3形式化和符号化的演绎推理(因为日常生活中大部分结论都是经过演绎推理得来的),我 们采用"事实 一一 规则 一一 结论"的形式来对各种元知识以及它们之间的关系进行组织
和管理。 知识表示形式的结构图如图1所示。
其中事实单元用来存储各种各样的元知识,由两个字段组成事实编号和事实内
容。结论单元存储各种各样的结论,包括初级结论(即可以由单个规则推理得到的结论)和
高级结论(即无法由一个规则推理得到的结论),它也由两个字段组成结论编号和结论内
容。规则单元即是事实与结论之间的关系的体现,它的实质是一张三元表,建立在"事实,已
有结论,待推理的结论"这三者的映射上,规则由四个字段组成规则编号,事实前提编号,
结论前提编号,对应结论编号。
采用上述知识表示机制的优点 1.结合了句法系统(Syntactic Systems)和语义系统(Semantic Systems)两大 类知识表示方法的优点。我们既可以在符号化的演绎推理中使用"事实编号","结论编号", "规则编号"进行推理,又在编号与内容(即语义)之间建立了一一对应的映射关系。这样 不仅简化了推理规则的复杂程度,也建立了知识的统一的表示形式。 2.规则的表示方式很符合人类的推理模式。日常生活中,我们进行推理时,首先利 用已知的事实依据或公理准则作为推理的前提,进行一些简单的推理,所谓简单推理,即根 据已知的事实依据或公理准则能直接推得的结论。这样的结论,我们称之为初级结论。接 着,当我们得到一部分结论后,我们可能会由这些已经得到得结论,结合已知的事实,按照 一定的规则,得到更多的结论,即所谓复杂推理。这样的结论,我们称之为高级结论。而在 我们的规则表示方式中,我们引入了 "事实前提编号"和"结论前提编号"这两个字段,其中 仅使用事实前提,我们便能进行简单推理,而配合结论前提一起使用,我们便能进行复杂推 理。 3.知识表示方式简单而高效。我们的知识表示方式很容易使人理解,分类明了 ,而 且在使用的过程中,可以直接按相应字段的分类,直接在数据库中实现存储,应用起来方便 高效。 >推理方法 推理方法依托于上述知识表示的机制,我们首先根据的知识表示机制设计出推理 方法的逻辑结构,如图2所示。 其中事实池用来存放已知的事实,是推理方法运行的根据。推理池则是推理方法 的运行模块,它首先从事实池中提取事实,然后进行初步推理,得到一些初步的结论,将其 放入临时结论池中。当推理池所有的初步推理过程都结束后,将从临时结论池中取出临时 结论,结合已知事实进行深度推理,而在深度推理过程中会产生一些新的结论,推理池先将 这些得到的新的结论放入临时结论池中,直到一轮深度推理结束(即符合条件的规则都匹 配完毕)。然后将得到的新的结论再从临时结论池取出,放入推理池中进行推理,进行下一 轮深度推理。按此流程,逐次进行循环,直到在推理池中进行深度推理得不到新的结论为 止。 依据上述推理逻辑结构,我们设计的推理算法流程图如图3,推理算法的描述如 下
4
St印0 :初始状态时全部规则都置为未匹配; St印l :依据已有事实在规则表中确定需要推理的规则范围; St印2 :对由St印l确定的规则范围中未被标记为已匹配的规则,用已知的事实与 规则中的事实前提进行逐一匹配,如果匹配成功,则得到该规则相应的结论,将结论放入临 时结论池中,并将该规则标记为已匹配; St印3 :如果遍历完所有由St印l确定的规则且不存在未被标记为已匹配的规则, 则跳转到St印4,否则,回到St印2,继续匹配; St印4 :判断是否需要进行深度推理,即是否能够结合已有的事实和临时结论池中 已有的结论推理得到新的结论,如果是,则跳转到St印5,否则,将临时结论池中的所有结论 作为最终结论输出; St印5:结合已有的事实和临时结论池中已有的结论推理得到新的结论,并将得到 的新的结论放入临时结论池,回到St印2。 在每次推理开始之前,我们会有一些已知的事实,首先根据事实的编号,将规则库
中所有规则进行事实匹配,确定我们需要进行推理的规则,这样就使推理的范围縮小了。 然后在推理的流程中,对所有需要推理的规则进行逐一匹配,如果发现某项事实
单元被匹配,则将相应规则中的对应的事实单元置真,然后将匹配这条规则所得到的结论
在所有规则中所对应的已有结论单元置真,然后进行下一条规则的匹配,当遍历完所有需
要推理的规则后便会得到一部分结论。然后判断是否需要进行深度推理。 深度推理的判断即判断利用已经得到的结论,结合已有的事实,进行下一个循环
的推理后还能否得到新的结论。如果还能得到新的结论,则表明需要进行深度推理,然后进
行下一个推理流程的循环,反之,则不需要深度推理,整个推理流程结束。如此循环推理,直
至利用已有规则推理得到的结论产生了一个闭集,无法推理得到新的结论,则整个推理流
程结束,这样便完成了一次完整的推理,得到了最终的结论并输出。 本发明建立了一种简便高效的知识表示机制,易于用已有的技术实现。而且在推 理方法中实现了依据已有的知识表示机制进行形式化的演绎推理,避免了语义推理在计算 机上实现的困难,而且推理方法很容易理解和实现。


图1:知识表示形式的结构2:推理方法的逻辑结构3:推理算法流程图;图4:事实表实现图;图5:结论表实现图;图6:规则表实现图;图7:系统框架图。
具体实施例方式
本发明建立的知识表示形式的结构如图1所示,其实现方法具体如下
(1)选择数据库存储知识
5
考虑到目前数据库技术的广泛应用,数据库接口强大的功能以及数据库管理的方 便与快捷,选择数据库技术来对专家系统中的知识进行存储具有很大的优势。相对于采用 二进制文件形式存储知识,采用数据库更方便于搭建Server/Client模式的分布式专家 系统,而且当前流行的数据库都带有功能强大,界面友好的管理系统,方便于对数据进行 组织与管理。综合上述因素,可以选择比较成熟的商业产品,比如Mi crosoft的数据库 SQLServer2005来实现。
(2)建立表
〈a>建立事实表 按照知识表示形式的结构图中关于事实表的设计,在数据库中新建一张事实表。 该表中包括两个字段事实编号,事实内容。然后将知识中的事实模块的内容添加到相应字 段中。事实表的实现如图4所示。
〈b>建立结论表 按照知识表示形式的结构图中关于结论表的设计,在数据库中新建一张结论表。 该表中包括两个字段结论编号,结论内容。然后将知识中的结论模块的内容添加到相应字 段中。结论表的实现如图5所示。
〈c〉建立规则表 按照知识表示形式的结构图中关于规则表的设计,在数据库中新建一张规则表。 该表中包括四个字段规则编号,事实前提编号,结论前提编号,对应结论编号。然后将知识 中的规则模块的内容添加到相应字段中,如果某条规则的事实前提编号或者结论前提编号 有几个,则可按一定的规则存储在表中(比如按字符串的形式"1,2,3")。规则表的实现如 图6所示。 本发明的建立的推理方法的算法流程图如图3所示,其实现方法具体如下
(1)确定需要推理的规则范围 通过一些测试软件,将所需事实的数据进行检测,如果发现某些事实的数据符合 条件,则认为事实表中所对应的事实存在,即在推理程序中将代表这些事实的数据结构 (如数组)中的元素赋值为真。然后检查所有规则表中所有规则的事实前提编号,如果某条 规则的事实前提编号所对应的事实全为真,则将该规则纳入到需要推理的规则范围中。
(2)对规则进行遍历性匹配 对由第(1)步得到的所有规则逐一进行匹配,即逐一检查每条规则的事实前提编 号和结论前提编号。检查事实前提编号所对应的事实是否已在第(1)步中置真了,如果一 条规则的所有事实前提都为真,则认为这条规则的事实前提满足了。对于初步的结论(即 只需要事实前提满足就能得出的结论)而言,匹配的过程已经能得到一些结论,将其放入 临时结论池(自己设计的一个数据结构)中并将其所在的规则进行标记,表示该规则已经 匹配过。而对于有些结论(即不仅需要事实前提满足,而且结论前提也要满足,才能推得的 结论),在第一轮的遍历匹配中则无法匹配成功,得到结论。因此,在第一轮的遍历匹配中, 一旦遇到事实前提得到满足,而结论前提没有得到满足的规则,则将深度推理标志(可以 是一个布尔变量)置真。这个深度推理标志初始化为假。
(3)判断是否需要进行深度推理 如果由(2)得到的深度推理标志为假,则停止推理,直接跳到第(4)步。如果深
6度推理标志位为真,则需要进行深度推理。即结合临时结论池中已有的结论来进行下一轮 的推理。此时的匹配过程对于第(2)步中已经标记过的规则采取跳过策略,这样就縮小了 匹配的范围,提高了推理效率。对于那些在第(2)步中事实前提满足,而结论前提不满足的 规则,此时逐一检查其结论前提编号对应的结论在临时结论池中是否已经得到,如果都已 得到,则表示此规则所对应的结论能够推得,将此结论放入临时结论池中。如此方式,依次 匹配完这些规则后,可能会得到一批结论,如果与临时结论池中已有的结论比较能够得到 新的结论,则继续将深度推理标志置真,否则,得不到与临时结论池中已有结论相比的新结 论,那么就将深度推理标志置假。再次判断深度推理标志,如果其为真,则重复循环上述过 程,如果为假跳到第(4)步。
(4)得到最终结论 —次完整的推理结束,将临时结论池中的所有结论作为最终结论,然后在结论表 中匹配与临时结论池中结论编号对应的结论,将结论表中的相应内容作为结论输出。
权利要求
一种专家系统知识表示机制和推理方法,其特征在于包括以下知识表示形式与推理方法(1)知识表示对所有知识按“事实----规则----结论”的模式进行划分,建立三个相应的表事实表,结论表,规则表,来对知识进行存储,使得知识的内容以及知识之间的关系能够清楚完全地在上述三个表中得以体现;(2)推理方法Step0初始状态时全部规则都置为未匹配;Step1依据已有事实在规则表中确定需要推理的规则范围;Step2对由Step1确定的规则范围中未被标记为已匹配的规则,用已知的事实与规则中的事实前提进行逐一匹配,如果匹配成功,则得到该规则相应的结论,将结论放入临时结论池中,并将该规则标记为已匹配;Step3如果遍历完所有由Step1确定的规则且不存在未被标记为已匹配的规则,则跳转到Step4,否则,回到Step2,继续匹配;Step4判断是否需要进行深度推理,即是否能够结合已有的事实和临时结论池中已有的结论推理得到新的结论,如果是,则跳转到Step5,否则,将临时结论池中的所有结论作为最终结论输出;Step5结合已有的事实和临时结论池中已有的结论推理得到新的结论,并将得到的新的结论放入临时结论池,回到Step2。
2. 根据权利要求1所述的一种专家系统知识表示机制和推理方法,其特征在于所述事实表具体组成字段细分如下事实编号,事实内容;所述结论表具体组成字段细分如下结论编号,结论内容;所述规则表具体组成字段细分如下规则编号,事实前提编号,结论前提编号,对应结论编号。
全文摘要
一种专家系统知识表示机制和推理方法,首先,依据演绎推理的规则,将各领域中复杂的知识解析为三种元知识事实,结论,规则。将知识的本体存储于事实元与结论元中,将知识之间的联系存储于规则元中。然后运用统一的推理规则进行推理首先遍历匹配所有符合条件的规则,推理得出结论,然后判断已得结论是否能够用于推理得出新结论,如果为真,则进行深度推理,直至推不出新结论为止,反之则推理停止。本发明具有高效性和很好的实用性,能够有效地应用于构建适用任何领域的专家系统,为领域内的决策与分析提供可靠的帮助。
文档编号G06N5/00GK101710393SQ20091024120
公开日2010年5月19日 申请日期2009年11月25日 优先权日2009年11月25日
发明者史波波, 廖仁杰, 张庆振 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1