故障诊断专家系统研究之四-----知识库结构

知识库结构

§1 知识库概述

知识库同知识表示和推理机构成专家系统的三个核心组成部分。知识表示研究如何将专家的知识和经验以一定的结构合乎逻辑地表达出来,而知识库则是研究知识的存贮结构,保证知识的明确性、相容性、简洁性及可维护性。严格地说,知识表示和知识库是分不开的,有何种知识表示,就有基于该种知识表示的知识库结构。

关于知识库的定义,各行各业都根据自己的需要对知识库有着不同的定义,众说纷纭。但对知识库都有一个共同的看法:知识库——特定领域的知识和数据的集合,即强调知识库是一个集合、一个知识和数据的集合,而这些知识和数据又属于一个特定的领域,如:燃气轮机知识领域。

知识库的研究和发展得益于一些概念和技术的集成。这些概念和技术所涉及的主要领域有:数据库技术、形式逻辑和自然语言处理等,数据库技术的发展使得知识库能处理数据共享的问题;形式逻辑使得复杂知识能够向简单事实一样被表示、存贮和推理;自然语言处理方法的研究使得知识库能够处理一些复杂的对象、事件序列和模糊的知识,但知识库并非仅仅是借助于其它领域技术和方法的简单组合,它有着自己的鲜明特点:

1. 明确性 包含两个方面:一是知识库结构的明确性,由于知识库是特定领域的数据和知识的集合,因此,知识库结构应与自己所应用的对象明确地保持一致;二是知识库中知识存贮方式的明确性,即知识不应隐含地存放。

2. 相容性 知识库中的知识必须保持逻辑上的严格一致,同时必须严格遵守事先规定好的某些规范,不能有矛盾性的知识或不合规范的知识存在。

3. 简洁性 即知识库中的知识不应该雷同或冗余,若某一知识能从其它知识演绎而得到,则应该把该知识从知识库中剔除。

4. 可维护性 即知识是可以增加、删除和修改的,这是知识库的功能中的重点和难点。

在本文中,针对燃气轮机特有的知识表示结构,结合关系型数据库的思想,提出了燃气轮机知识库的层次模型 结构。该结构能有效地避免知识冗余,通过知识关联和多级索引机构,极大地提高了知识库的搜索效率。

§2 燃气轮机知识库分类及总体结构

在第三章,讨论了燃气轮机知识的分类及每类知识的表示方法。本文把关于燃气轮机的知识分为两大类:深层知识和浅层知识。其中,深层知识又可分为知识元和关联;浅层知识又分为断言、规则和征兆,如图41所示:

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"></shapetype><stroke joinstyle="miter"></stroke><formulas></formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f><lock v:ext="edit" aspectratio="t"></lock><shape id="_x0000_i1025" style="WIDTH: 363pt; HEIGHT: 211.5pt" type="#_x0000_t75" o:ole="" fillcolor="window"></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image001.wmz" o:title=""></imagedata>

41 燃气轮机知识分类

一个设计良好的知识库,除了应具备前面提到的明确性、相容性、简洁性和可维护性外,在结构上还应具备很强的独立性,当根据需要对知识库进行扩充或修改时,而不会影响系统的其他部分。同时,知识库内部也应具有鲜明的结构化、层次化特点,这也是系统可维护性的要求。

因此,将知识毫无区别地混杂在一起存放是不明智的,这样既不便于检索也不便于维护。本文采用的方法是,将如图41所示的每一类知识单独存放在不同的知识库中,根据不同类知识之间的依赖关系,构筑其相应知识库之间的结构关系。这样,不仅保证了知识库的结构化、层次化特点,而且知识库结构同知识表示在逻辑上保持一致,使整个系统结构显得完整、紧凑。更重要的是,存取知识库时不必经过格式的转换,提高了系统的效率。

鉴于上述分析,本文采用的知识库分类方式同燃气轮机知识的分类方式一样,给每一类知识都构筑自己的知识库,因此燃气轮机知识库的分类方式如图42所示。

观察燃气轮机知识库分类图(图42),燃气轮机知识库由11个库组成,如何组织这11个库之间的关系及其内部的结构是本章讨论的重点。浅层知识总是基于结构化原理等深层知识之上,因而在知识库模型中,深层知识库应该在底部,浅层知识库则应该在顶部;深层知识库又包括知识元库和关联库,其中知识元库是基础,它记载和描述了构成任一条燃气轮机知识的最基本元素(系统名,子系统名,对象名,状态描述),关联库则存放着各知识元库中知识元之间的所属关系,关联库的存在以知识元库的存在为前提,因而在深层知识库中,知识元库在底部,关联库在顶部;浅层知识库包括断言库、规则库、征兆库和行动库,由定义33和图36,断言库事实上表现为各层知识元库根据相应关联而构成的一个四元关系集,也就是说,断言可直接从深层知识库中抽取,同时,断言又是构成规则和征兆的前件和后件的基本元素,因而断言库在深层知识库之上且位于浅层知识库的底部;规则和征兆则是基于断言的产生式结构,故规则库和征兆库位于断言库之上,在浅层知识库的顶部;行动本应属于规则的一个域,为了使规则的描述得到简化,故把行动从规则中分离出来,使其单独构成一个库,因此,行动库是规则库的一个附件。由于行动库存放的只是给用户提供维修措施的一组字符流,不需要特殊的存储结构,因此本文后几节将重点讨论其它几种的知识库结构。

<shape id="_x0000_i1026" style="WIDTH: 363.75pt; HEIGHT: 251.25pt" type="#_x0000_t75" o:ole="" fillcolor="window"></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image003.wmz" o:title=""></imagedata>

42 燃气轮机知识库分类

鉴于上述分析,本文提出的燃气轮机知识库模型如下:

<shape id="_x0000_i1027" style="WIDTH: 404.25pt; HEIGHT: 208.5pt" type="#_x0000_t75" o:ole="" fillcolor="window"></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image005.wmz" o:title=""></imagedata>

43 燃气轮机知识库模型

§3 知识元库

如图43所示,知识元库包括系统名库、子系统名库、对象名库和状态描述库。这四个库是整个燃气轮机知识库的基础,它记载和描述着燃气轮机所有系统、部件及参数的名称和关于它们可能状态的描述。对应图36,就主机系统而言,这四个库事实上分别对应着图中的四层节点集。

考察下述深层知识:

41 主机系统由压气机、燃烧室和涡轮等子系统构成;压气机包括出口温度、出口压力、压比和叶片等对象(参数和部件);燃烧室包括燃油喷射量等对象(参数);涡轮包括轮间温度、平均排气量和静子、密封件等对象(参数和部件)。而每一对象有过高、过低、过大、过小、变形、磨损和断裂等状态描述(异常状态)。

为了能够清晰地从上述知识中抽取各层知识元,不妨把它表示成四层树形结构图的形式:

<shape id="_x0000_i1028" style="WIDTH: 441pt; HEIGHT: 216.75pt" type="#_x0000_t75" o:ole="" fillcolor="window"></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image007.wmz" o:title=""></imagedata> 44 41的图解表示

系统名库对应第一层节点集

系统名库: {主机系统}

子系统名库对应第二层节点集

子系统名库: {压气机,燃烧室,涡轮}

对象名库对应第三层节点集

对象名库: {出口温度,出口压力、压比,叶片,燃油喷 射量,轮间温度,平均排气量,静子,密封件}

状态描述库对应第四层节点集

状态描述库: {过高,过低,磨损,变形,断裂,过大,过小}

但是,上述具体的知识元库只是说明了知识元在相应知识元库中的结构,这种库结构是离散化的,并没有完整地存储例41中的深层知识,而关联库的存在则使得这一问题得到解决。

§4 关联库

关联分为一、二、三级,相应地关联库也分为一级、二级、三级关联库,它反映了各层知识元之间的所属关系:

<stroke startarrowwidth="narrow" startarrowlength="short" endarrow="block" endarrowwidth="narrow" endarrowlength="short"></stroke>一级关联库:系统名库 子系统名库

<stroke startarrowwidth="narrow" startarrowlength="short" endarrow="block" endarrowwidth="narrow" endarrowlength="short"></stroke>二级关联库:子系统名库 对象名库

<stroke startarrowwidth="narrow" startarrowlength="short" endarrow="block" endarrowwidth="narrow" endarrowlength="short"></stroke>三级关联库:对象名库 状态描述库

如第三章所述,关联分为关联首部和关联体部。就一级关联而言,关联首部存放系统名在系统名库中的序号,关联体部则存放子系统名在子系统名库中的序号,关联体一般有多个序号,呈现典型的一对多的形式,这一点也符合燃气轮机的基本结构。在关联库中,关联也以这种形式存放,由于关联库是多个关联的集合,因此涉及到关联在关联库中的相对位置的排序问题。在同一个关联库中不可能存在两个关联其首部相同,对于这种情况系统会自动地将其合并为一条关联(见第六章--知识获取),因此可以采用关联首部作为关键值,以该值的大小顺序(本文中采用由小到大的顺序)来安排各关联库中关联的相对位置,这样做的好处是知识获取时可以采用二分查找法查找关联(见第六章-知识获取),因为这种方法可以有效地提高知识库的搜索效率。

回到例41,给出关联库中该知识的结构(如图45),为保证论述的整体性和完整性,图中结合了知识元库一块描述,事实上,这也是例41在深层知识库中的结构。

§5 断言库

在燃气轮机知识库的11个库之中,从知识库的产生方式来说,断言库是最特殊的。因为其它所有库中的知识均由知识工程师和专家合作,以一定的形式存入知识库中,而断言库则是自动生成的。

由定义33,断言事实上就是从燃气轮机各系统四层树形结构图根节点到叶节点的而得到的描述,也就是基于燃气轮机四层知识元库之上的一个关系,而这种关系的建立不是随机的,它依赖于四层知识元库之间的三级关联。因此,断言库依赖于深层知识库的存在而存在,一旦确立了深层知识库,则断言库事实上已经被确定。因此,断言库完全可以以深层知识库为基础,由系统自动地建立。在讨论系统如何自动建立断言库之前,先介绍一个重要的概念--关联的连接运算。

考察下述断言

断言1 主机系统透平轮间温度过高

<shape id="_x0000_i1029" style="WIDTH: 415.5pt; HEIGHT: 554.25pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image011.wmz" o:title=""></imagedata> 45 41的深层知识库结构

根据§333节的讨论,该断言的框架表示如下

(框架名:断言1

(槽1:主机系统)

(槽2:透平)

(槽3:轮间温度)

(槽4:过高)

更进一步地,结合图45,上述各槽值可以采用在对应知识元库中的序号来表示:

(框架名:断言1

(槽11

(槽23

(槽36

(槽41

为方便起见,改写成下列形式:

1361

上述形式中,忽略了断言框架的名称,因为断言库中每一断言框架的名称可以采用断言在断言库中的序号来表示,而断言本身并没有必要知道它在断言库中的位置。因此,上述存储结构中只记载了知识元“主机系统”、“透平”、“轮间温度”、“过高”在相应知识元库中的序号,这也是断言在断言库中的存储结构。相应地,断言“主机系统压气机叶片断裂”也可以表示为下列形式:

1145

事实上,断言的这种存储结构可以从关联库中得到体现,就断言(1361)而言(不妨设该断言为ass1〕,根据系统名序号1在一级断言库中寻找关联首部为1的关联项con1=1123),发现断言ass1的子系统名序号3出现在关联项con1的关联体中;根据子系统名序号3到二级关联库中寻找关联首部为3的关联项con2=36789),发现断言ass1的对象名序号6出现在关联项con2的关联体中;根据对象名序号6到三级关联库中寻找关联首部为6的关联项con3=612),发现断言ass1的状态描述名序号1出现在关联项con3的关联体中。因此,断言(1361)完全可以从关联项con1con2con3中抽取,同样,从con1con2con3中还可以抽取断言(1362(对应“主机系统透平轮间温度过低”)。断言的这种生成方式可表示为

con1*con2*con3{1361),(1362}

其中,* 称为连接符号。

定义41 <shape id="_x0000_i1030" style="WIDTH: 9pt; HEIGHT: 9.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image013.wmz" o:title=""></imagedata>为任意关联项,<shape id="_x0000_i1031" style="WIDTH: 42.75pt; HEIGHT: 15.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image015.wmz" o:title=""></imagedata>为关联项<shape id="_x0000_i1032" style="WIDTH: 9pt; HEIGHT: 9.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image017.wmz" o:title=""></imagedata>的首部,<shape id="_x0000_i1033" style="WIDTH: 50.25pt; HEIGHT: 15.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image018.wmz" o:title=""></imagedata> 关联项<shape id="_x0000_i1034" style="WIDTH: 9pt; HEIGHT: 9.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image017.wmz" o:title=""></imagedata>的第<shape id="_x0000_i1035" style="WIDTH: 9pt; HEIGHT: 12pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image020.wmz" o:title=""></imagedata>个关联体。 又令

关联项<shape id="_x0000_i1036" style="WIDTH: 44.25pt; HEIGHT: 13.5pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image022.wmz" o:title=""></imagedata>分别属于一、二、三级关联库, 如果

<shape id="_x0000_i1037" style="WIDTH: 121.5pt; HEIGHT: 15.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image024.wmz" o:title=""></imagedata>

<shape id="_x0000_i1038" style="WIDTH: 120.75pt; HEIGHT: 16.5pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image026.wmz" o:title=""></imagedata>

那么称 关联项 <shape id="_x0000_i1039" style="WIDTH: 44.25pt; HEIGHT: 13.5pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image028.wmz" o:title=""></imagedata>经过连接生成断言集<shape id="_x0000_i1040" style="WIDTH: 24.75pt; HEIGHT: 12.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image029.wmz" o:title=""></imagedata>

<shape id="_x0000_i1041" style="WIDTH: 24.75pt; HEIGHT: 12.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image029.wmz" o:title=""></imagedata>={<shape id="_x0000_i1042" style="WIDTH: 200.25pt; HEIGHT: 15.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image031.wmz" o:title=""></imagedata>,

……

<shape id="_x0000_i1043" style="WIDTH: 213pt; HEIGHT: 15.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image033.wmz" o:title=""></imagedata>}

记为 <shape id="_x0000_i1044" style="WIDTH: 84pt; HEIGHT: 12.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image035.wmz" o:title=""></imagedata>

其中,<shape id="_x0000_i1045" style="WIDTH: 9.75pt; HEIGHT: 9.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image037.wmz" o:title=""></imagedata><shape id="_x0000_i1046" style="WIDTH: 14.25pt; HEIGHT: 12.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image039.wmz" o:title=""></imagedata>的关联体数量,*为连接运算符。

按照定义41,考察前述关联<shape id="_x0000_i1047" style="WIDTH: 83.25pt; HEIGHT: 15pt" type="#_x0000_t75" o:ole=""></shape> <imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image041.wmz" o:title=""></imagedata>

<shape id="_x0000_i1048" style="WIDTH: 189pt; HEIGHT: 88.5pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image043.wmz" o:title=""></imagedata>

因此,<shape id="_x0000_i1049" style="WIDTH: 223.5pt; HEIGHT: 15.75pt" type="#_x0000_t75" o:ole=""></shape> <imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image045.wmz" o:title=""></imagedata>

若上述关联项<shape id="_x0000_i1050" style="WIDTH: 83.25pt; HEIGHT: 15pt" type="#_x0000_t75" o:ole=""></shape> <imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image041.wmz" o:title=""></imagedata>分别遍历一、二、三级关联库中所有关联项,则可以得到诸多不同的断言集,而断言库正是由所有这些断言集构成。关于断言库的构成,本文给出如下结论

结论41 <shape id="_x0000_i1051" style="WIDTH: 93pt; HEIGHT: 15pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image047.wmz" o:title=""></imagedata>分别为一、二、三级关联库, <shape id="_x0000_i1052" style="WIDTH: 162pt; HEIGHT: 15pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image049.wmz" o:title=""></imagedata>,则对于任意的<shape id="_x0000_i1053" style="WIDTH: 44.25pt; HEIGHT: 15pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image051.wmz" o:title=""></imagedata>,通过连接运算<shape id="_x0000_i1054" style="WIDTH: 50.25pt; HEIGHT: 12.75pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image053.wmz" o:title=""></imagedata>而生成的断言集构成断言库。

在深层知识库基础之上,采用关联的连接运算可自动地生成断言库。至于断言在断言库中的排列次序同关联库一样,以断言框架的第一个值(系统名)为关键字,由小到大排列,对于系统名相同的断言则以断言的第二个值(子系统名)为关键字,余类推。这样做的目的是为了能够采用二分查找法,提高断言库的搜索效率。对应图45的深层知识库生成的断言库如图46所示,图中把断言库分成三块,是为了能够更清晰地观察到断言库的排序结构。事实上,断言在断言库中是连续存放的。

<shape id="_x0000_i1055" style="WIDTH: 294.75pt; HEIGHT: 208.5pt" type="#_x0000_t75" o:ole=""></shape><imagedata src="file:///C:%5CDOCUME~1%5CRoger%5CLOCALS~1%5CTemp%5Cmsohtml1%5C03%5Cclip_image055.wmz" o:title=""></imagedata>

<textbox inset="1pt,1pt,1pt,1pt"></textbox>

46 由图45生成的断言库结构

<
分享到:
评论
lovnet
  • 浏览: 1330034 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

你可能感兴趣的:(数据结构,C++,c,C#,F#)