首页 第3章知识与知识表示

第3章知识与知识表示

举报
开通vip

第3章知识与知识表示第3章 知识与知识表示 人类的智能活动过程主要是——个获得并运用知识的过程,知识是智能的基础。为了使计算机具有智能,使它能模拟人类的智能行为,就必须使它具有知识。但知识是需要用适当的模式:表示出来才能存储到计算机中去的,因此关于知识的表示问题就成为人工智能中一个十分重要的研究课题。 本章将对知识的有关概念及一些基本的知识表示模式进行讨论。关于不确定性知识的表示 以及基于人工神经网络的知识表示方法,将分别在第5章及第11章结合有关内容进行讨论。 本节讨论知识及其表示的有关概念。 知识基本概念 ...

第3章知识与知识表示
第3章 知识与知识表示 人类的智能活动过程主要是——个获得并运用知识的过程,知识是智能的基础。为了使计算机具有智能,使它能模拟人类的智能行为,就必须使它具有知识。但知识是需要用适当的模式:表示出来才能存储到计算机中去的,因此关于知识的表示问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 就成为人工智能中一个十分重要的研究课题。 本章将对知识的有关概念及一些基本的知识表示模式进行讨论。关于不确定性知识的表示 以及基于人工神经网络的知识表示方法,将分别在第5章及第11章结合有关内容进行讨论。 本节讨论知识及其表示的有关概念。 知识基本概念 3.1.1什么是知识 “知识”是人们日常生活及社会活动中常用的一个术语。例如人们常说“某人在某方面有 丰富的知识”,“应该多学点知识”,“知识就是力量”等等。但什么是知识?知识有哪些特性? 它与平常所说的“信息”有什么区别及联系?一般很少去做深入的研究。由于今后我们要经常用到它,所以先对它的含义及有关概念作一简单讨论。 1.数据与信息 人们赖以生存的空间是一个物质的世界,同时又是一个信息的世界。在这个不断变化的世界中,无论是在政治、经济、军事方面,还是在科学研究、文化、教育等方面,每时每刻都在产生着大量的信息。谁能及时地掌握有用的信息,并能把有关的信息关联起来加以充分地利用谁就能在激烈的竞争中立于不败之地。随着社会的发展与进步,信息在人类生活中越来越扮演着极其重要的角色。但是,信息是需要用一定的形式表示出来才能被记载和传递的,尤其是使用计算机来做信息的存储及处理时,更需要用一组符号及其组合进行表示。像这样用一组符号及其组合表示的信息称为数据。 由此可见,现在我们所说的“数据”已不仅仅是通常意义下的“数”,而是对它在概念上的拓广和延伸,它是泛指对客观事物的数量、属性、位置及其相互关系的抽象表示。它既可以是一个数,例如整数、小数、正数、负数,也可以是由一组符号组合而成的字符串,例如一个人的姓名、性别、地址或者一个消息等等。 数据与信息是两个密切相关的概念。数据是信息的载体和表示,信息是数据在特定场合下的具体含义,或者说信息是数据的语义,只有把两者密切地结合起来,才能实现对现实世界中某一具体事物的描述。另外,数据与信息又是两个不同的概念。对同一个数据,它在某一场合下可能表示这样一个信息,但在另一场合下却表示另一个信息。例如,数字“6”是一个数据它既可以表示“6本书”、“6张椅子”,也可以表示“6个人”或者“6台电视机”等。同样,对同一个信息,在不同场合下也可用不同的数据表示,正如对同样的一句话,不同的人会用不同的言词来表达一样。 2.知识 正如上述,信息在人类生活中越来越占据着十分重要的地位。但是,只有当把有关的信息关联在一起的时候,它才有实际意义。一般来说,把有关信息关联在一起所形成的信息结构称为知识。 知识是人们在长期的生活及社会实践中、科学研究及实验中积累起来的对客观世界的认识与经验,人们把实践中获得的信息关联在一起,就获得了知识。信息之间有多种关联形式,其中用得最多的一种是用 如果……,则…… 所表示的关联形式,它反映了信息间的某种因果关系。例如我国北方的人们经过多年的观察发现,每当冬天要来临的时候,就会看到有一批批的大雁向南方飞去,于是把“大雁向南飞”与“冬天就要来临了”这两个信息关联在一起,就得到了如下一条知识: 如果大雁向南飞,则冬天就要来临了。 知识反映了客观世界中事物之间的关系,不同事物或者相同事物间的不同关系形成了不同的知识。例如,“雪是白色的”是一条知识,它反映了“雪”与“颜色”之间的一种关系。又如“如果头痛且流涕,则有可能患了感冒”是一条知识,它反映了“头痛且流涕”与“可能患了感冒”之间的一种因果关系。在人工智能中,把前一种知识称为“事实”,而把后一种知识,即用“如果……,则……”关联起来所形成的知识称为“规则”,这在下面将做进一步的讨论。 3.1.2知识的特性 知识主要具有如下一些特性 1.相对正确性 知识是人们对客观世界认识的结晶,并且又受到长期实践的检验。因此,在一定的条件及环境下,知识一般是正确的,可信任的。这里,“一定的条件及环境”是必不可少的,它是知识正确性的前提。因为任何知识都是在一定的条件及环境下产生的,因而也就只有在这种条件及环境下才是正确的,在人们的日常生活及科学实验中可以找到很多这样的例子。例如汤加人“以胖为美”,并且以胖的程度作为财富的标志,这在汤加是一条被广为接受的正确知识,但在别的地方人们却不这样认为,它就变成了一条不正确的知识。再如,1+1=2,这是一条妇幼皆知的正确知识,但它也只是在十进制的前提下才是正确的,如果是二进制,就不正确了。 2.不确定性 知识是有关信息关联在一起形成的信息结构,“信息”与“关联”是构成知识的两个要素。由于现实世界的复杂性,信息可能是精确的,也可能是不精确的、模糊的;关联可能是确定的,也可能是不确定的。这就使得知识并不总是只有“真”与“假”这两种状态,而是在“真”与“假”之间还存在许多中间状态,即存在为“真”的程度问题,知识的这一特性称为不确定性。 造成知识具有不确定性的原因是多方面的,概括起来可归结为以下几种情况: (1)由随机性引起的不确定性。由第2章2.3节的讨论可知,在随机现象中一个事件是否发生是不能预先确定的,它可能发生,也可能不发生,因而需要用[0,1]上的一个数来指出它发生的可能性。显然,由这种事件所形成的知识不能简单地用“真”或“假”来刻画它,它是不确定的。就以前面所说的“如果头痛且流涕,则有可能患了感冒”这一条知识来说,其中的“有可能”实际上就是反映了“头痛且流涕”与“患了感冒”之间的一种不确定关系,因为具有“头痛且流涕”的人并不一定都是“患了感冒”。因此它是一条具有不确定性的知识。 (2)由模糊性引起的不确定性。由于某些事物客观上存在的模糊性,使得人们无法把两个类似的事物严格地区分开来,不能明确地判定一个对象是否符合一个模糊概念;又由于某些事物闻存在着模搬关系,使得我们不能准确地确定它们之间的关系究竟是“真”还是“假”。像这样由模糊概念、模糊关系所形成的知识显然是不确定的。 (3)由不完全性引起的不确定性。人们对客观世界的认识是逐步提高的,只有在积累了大量的感性认识后才能升华到理性认识的高度,形成某种知识,因此知识有一个逐步完善的过程。在此过程中,或者由于客观事物表露得不够充分,致使人们对它的认识不够全面,或者对充分表露的事物一时抓不住本质,致使对它的认识不够准确。这种认识上的不完全、不准确必然导致相应的知识是不精确、不确定的。 事实上,由于现实世界的复杂性,人们很难一下掌握完全的信息,因而不完全性就成为引起知识不确定性的一个重要原因。人们求解问题时,很多情况下也是在知识不完全的背景下进行思维并最终求得问题的解决的,第5章讨论的非单调推理反映了这种情况。 (4)由经验性引起的不确定性。在人工智能的重要研究领域专家系统中,知识都是由领域专家提供的,这种知识大都是领域专家在长期的实践及研究中积累起来的经验性知识。尽 管领域专家能够得心应手地运用这些知识,正确地解决领域内的有关问题,但若让他们精确地表述出来却是相当困难的,这是引起知识不确定性的一个原因。另外,由于经验性自身就蕴含着不精确性及模糊性,这就形成了知识不确定性的另一个原因。因此,在专家系统中大部分知识都具有不确定性这一特性。 3.可表示性与可利用性 知识是可以用适当形式表示出来的,如用语言、文字、图形、神经元网络等,正是由于它具有这一特性,所以它才能被存储并得以传播。至于它的可利用性,这是不言而喻的,我们每个人天天都在利用自己掌握的知识解决所面临的各种各样问题。 3.1.3 知识的分类 对知识从不同角度划分,可得到不同的分类方法,这里仅讨论其中常见的几种。 若就知识的作用范围来划分,知识可分为:常识性知识,领域性知识。 常识性知识是通用性知识,是人们普遍知道的知识,适用于所有领域。领域性知识是面向某个具体领域的知识,是专业性的知识,只有相应专业的人员才能掌握并用来求解领域内的有关问题,例如专家的经验及有关理论就属于领域知识。专家系统主要是以领域知识为基础建立起来的。 若就知识的作用及表示来划分,知识可分为:事实性知识,过程性知识,控制性知识。 事实性知识用于描述领域内的有关概念、事实、事物的属性及状态等。例如: “糖是甜的”、“西安是一个古老的城市”、“一年有春、夏、秋、冬四个季节” 这都是事实性知识。事实性知识一般采用直接表达的形式,如用谓词公式表示等。过程性知 识主要是指与领域相关的知识,用于指出如何处理与问题相关的信息以求得问题的解。过程 性知识一般是通过对领域内各种问题的比较与分析得出的规律性的知识,由领域内的规则、定律、定理及经验构成。对于一个智能系统来说,过程性知识是否完善、丰富、一致将直接影响到系统的性能及可信任性,是智能系统的基础。其表示方法既可以是下面将要讨论的一组产生式规则,也可以是语义网络等。控制性知识又称为深层知识或者元知识,它是关于如何运用已有的知识进行问题求解的知识,因此又称为“关于知识的知识”。例如问题求解中的推理策略(正向推理及逆向推理);信息传播策略(如不确定性的传递算法);搜索策略(广度优先、深度优先、启发式搜索等);求解策略(求第一个解、全部解、严格解、最优解等);限制策略(规定推理的限度)等等。关于表达控制信息的方式,按表达形式级别的高低可分成三大类,即策略级控制(较高级)、语句级控制(中级)及实现级控制(较低级)。 若就知识的确定性来划分,知识可分为:确定性知识,不确定性知识。 确定性知识是指可指出其真值为“真”或“假”的知识,它是精确性的知识。不确定性知识是指具有“不确定”特性的知识,它是对不精确、不完全及模糊性知识的总称。 若就知识的结构及表现形式来划分,知识可分为:逻辑性知识,形象性知识。 逻辑性知识是反映人类逻辑思维过程的知识,例如人类的经验性知识等。这种知识一般 都具有因果关系及难以精确描述的特点,它们通常是基于专家的经验,以及对一些事物的直观感觉。在下面将要讨论的知识表示方法中,一阶谓词逻辑表示法、产生式表示法等都是用来表示这一种知识的。人类的思维过程除了逻辑思维外,还有一种称之为“形象思维”的思维方式。例如,我们问“什么是树?”,如果用文字来回答这个问题,那将是十分困难的,但若指着一棵树说“这就是树”,就容易在人们的头脑中建立起“树”的概念。像这样通过事物的形象建立起来的知识称为形象性知识。目前人们正在研究用神经元网络连接机制来表示这种知识。 如果撇开知识涉及领域的具体特点,从抽象的、整体的观点来划分,知识可分为:零级知识,一级知识,二级知识。 这种关于知识的层次划分还可以继续下去,每一级知识都对其低一层的知识有指导意义。其中,零级知识是指问题领域内的事实、定理、方程、实验对象和操作等常识性知识及原理性知识;一级知识是指具有经验性、启发性的知识,例如经验性规则、含义模糊的建议、不确切的判断标准等;二级知识是指如何运用上述两级知识的知识。在实际应用中,通常把零级知识与一级知识统称为领域知识,而把二级以上的知识统称为元知识。 3.1.4 知识的表示 世界上的每一个国家或民族都有自己的语言和文字,它是人们表达思想、交流信息的工 具。正是有了这样的表达工具,才促进了人类的文明及社会的进步。很难想象,如果没有语言和文字,当今的人类社会将会是个什么样子。 在计算机的发展史中,数的二进制表示使数据得以在计算机中存储、运算;字符串、图象、声音等非数值信息的表示成功使得信息处理获得迅速的发展,促成了管理科学的现代化;计算机高级语言的出现和发展不仅使得计算机的应用得以进一步的普及,促进了各种学科的发展,而且也加快了计算机科学及工程自身的前进步伐。 在其它学科领域中,一般也都有相应的表示形式。例如数学中的数字表示形式、函数表示形式、微积分符号等;化学中的化学元素符号、分子式等。 由此可见,任何需要进行交流、处理的对象都需要用适当的形式表示出来才能被应用,对于知识当然也是这样。人工智能研究的目的是要建立一个能摸拟人类智能行为的系统,为达到这个目的就必须研究人类智能行为在计算机上的表示形式,只有这样才能把知识存储到计算机中去,供求解现实问题使用。 有了上述的一些基本认识后,就可以说明什么是知识表示及其表示方法了。所谓知识表 不实际上就是对知识的一种描述,或者说是一组约定,一种计算机可以接受的用于描述知识的数据结构。对知识进行表示的过程就是把知识编码成某种数据结构的过程。 知识表示方法又称为知识表示技术,其表示形式称为知识表示模式。 对于知识表示方法的研究,离不开对知识的研究与认识。由于目前对人类知识的结构及 机制还没有完全搞清楚,因此关于知识表示的理论及 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 尚未建立起来。尽管如此,人们在对智能系统的研究及建立过程中,还是结合具体研究提出了——些知识表示方法。概括起来,这些表示方法可分为如下两大类:符号表示法,连接机制表示法。 符号表示法是用各种包含具体含义的符号,以各种不同的方式和次序组合起来表示知识 的一类方法,它主要用来表示逻辑性知识,本章中将要讨论的各种知识表示方法都属于这一 类。连接机制表示法是用神经网络技术表示知识的一种方法,它把各种物理对象以不同的方 式及次序连接起来,并在其间互相传递及加工各种包含具体意义的信息,以此来表示相关的概念及知识。相对于符号表示法而言,连接机制表示法是一种隐式的表示知识方法,它特别适用于表示各种形象性的知识。关于这种表示方法,将在第11章进行讨论。 另外,若按控制性知识的组织方式进行分类,表示方法可分为:说明性表示法,过程性表示法。 说明性表示法着重于知识的静态方面,如客体、事件、事实及其相互关系和状态等,其控制性知识包含在控制系统中;而过程性表示法强调的是对知识的利用,着重于知识的动态方面其控制性知识全部嵌入于对知识的描述中,且将知识包含在若干过程之中。关于过程性表示法将在本章的3.7节进行讨论。 目前用得较多的知识表示方法主要有:一阶谓词逻辑表示法,产生式表示法,框架表示法,语义网络表示法,脚本表示法,过程表示法,Petri网表示法,面向对象表示法。自下一节开始将分别讨论这些表示方法。 对同一知识,一般都可以用多种方法进行表示,但其效果却不相同。因为不同领域中的知识一般都有不同的特点,而每一种表示方法也各有自己的长处与不足。因而,有些领域的知识可能采用这种表示模式比较合适,而有些领域的知识可能采用另一种表示模式更好。有时还需要把几种表示模式结合起来,作为——个整体来表示领域知识,以取得取长补短的效果。另外,上述各种知识表示方法大都是在进行某项具体研究或者建立某个智能系统时提出来的,有一定的针对性和局限性,应用时需根据实际情况做适当的改变。在建立一个具体的智能系统时,究竟采用哪种表示模式,目前还没有统一的标准,也不存在一个万能的知识表示模式。但一般来说,在选择知识表示方法时,应从以下几个方面进行考虑: 1.充分表示领域知识 确定一个知识表示模式时,首先应该考虑的是它能否充分地表示领域知识。为此,需要深 入地了解领域知识的特点以及每一种表示模式的特征,以便做到“对症下药”。例如,在医疗诊断领域中,其知识一般具有经验性、因果性的特点,适合于用产生式表示法进行表示;而在 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 类(如机械产品设计)领域中,由于一个部件一般由多个子部件组成,部件与子部件既有相同的属性又有不同的属性,即它们既有共性又有个性,因而在进行知识表示时,应该把这个特点反映出来,此时单用产生式模式来表示就不能反映出知识间的这种结构关系,这就需要把框架表示法与产生式表示法结合起来。由此可见,知识表示模式的选择和确定往往要受到领域知识自然结构的制约,要视具体情况而定。当已有的知识表示方法不能适应自己面临的问题时,就需要重新设计一种新的知识表示模式。 2.有利于对知识的利用 知识的表示与利用是密切相关的两个方面。“表示”的作用是把领域内的相关知识形式化并用适当的内部形式存储到计算机中去,而“利用”是使用这些知识进行推理,求解现实问题。这里所说的“推理”是指根据问题的已知事实,通过使用存储在计算机中的知识推出新的事实(结论)或者执行某个操作的过程。显然,“表示”的目的是为了“利用”,而“利用”的基础是“表示”。为了使一个智能系统能有效地求解领域内的各种问题,除了必须具备足够的知识外,还必须使其表示形式便于对知识的利用。如果一种表示模式的数据结构过于复杂或者难于理解,使推理不便于进行匹配、冲突消解及不确定性的计算等处理,那就势必影响到系统的推理效率,从而降低系统求解问题的能力。 3.便于对知识的组织、维护与管理 为了把知识存储到计算机中去,除了需要用合适的表示方法把知识表示出来外,还需要对知识进行合理的组织,而对知识的组织是与表示方法密切相关的,不同的表示方法对应于不同的组织方式,这就要求在设计或选择知识表示方法时能充分考虑将要对知识进行的组织方式。另外,在一个智能系统初步建成后,经过对一定数量实例的运行,可能会发现其知识在质量、数量或性能方面存在某些问题,此时或者需要增补一些新知识,或者需要修改甚至删除某些已有的知识。在进行这些工作时,又需要进行多方面的 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 ,以保证知识的一致性、完整性等,这称之为对知识的维护与管理。在确定知识的表示模式时,应充分考虑维护与管理的方便性。 4.便于理解和实现 一种知识表示模式应是人们容易理解的,这就要求它符合人们的思维习惯。至于实现上 的方便性,更是显然的。如果一种表示模式不便于在计算机上实现,那它就只能是纸上谈兵; 没有任何实用价值。 以上我们讨论了知识及其表示的有关概念,下面几节将分别讨论各种知识表示方法。 3.2 一阶谓词逻辑表示法 谓词逻辑是一种形式语言,也是到目前为止能够表达人类思维活动规律的一种最精确的 语言,它与人们的自然语言比较接近,又可方便地存储到计算机中去并被计算机做精确处理。 因此,它成为最早应用于人工智能中表示知识的一种逻辑。 3.2.1 表示知识方法 谓词逻辑适合于表示事物的状态、属性、概念等事实性的知识,也可以用来表示事物间确定的因果关系,即规则。事实通常用谓词公式的与域形表示,所谓与域形是指用合取符号 (∧)及析取符号(∨)连接起来的公式。规则通常用蕴含式表示。例如对于 “如果x,则y” 可表示为 “x→y” 用谓词公式表示知识时,需要首先定义谓词,指出每个谓词的确切含义,然后再用连接词 把有关的谓词连接起来,形成一个谓词公式表达一个完整的意义。 例3.1 设有下列知识: 刘欢比他父亲出名。 高扬是计算机系的一名学生,但他不喜欢编程序 人人爱劳动。 为了用谓词公式表示上述知识,首先需要定义谓词: BIGGER(x,y):x比y出名。 COMPUTER(x):x是计算机系的学生。 LIKE(x,y):x喜欢y。 LOVE(x,y):x爱y。 MAN(x):x是人。 此时可用谓词公式把上述知识分别表示为: BIGGER(Liuhuan,fdther(Liuhuan)) COMPUTER(Gaoyang) ∧(LIKE(Gaoyang,programing) ((x)(MAN(x) →LOVE(x,labour)) 设有下列知识: 自然数都是大于零的整数。 所有整数不是偶数就是奇数。 偶数除以2是整数。 首先定义谓词如下: N(x):x是自然数 I(x):x是整数。 E(x):x是偶数。 O(x):x是奇数。 GZ(x):x大于零。 另外,用函数S(x)表示x除以2。此时,上述知识可用谓词公式分别表示为: ((x(N(x) →GZ(x)∧I(x)) ((x)(I(x) →E(x)∨O(x)) ((x)(E (x) →I(s(x))) 例3.3设在房内c处有一机器人,在a及b处各有一张桌子,a桌上有一个盒子,如图 3-1所示。为了让机器人从c处出发把盒子从a处拿到b处的桌上,然后再回到c处,需要制订相应的行动规划。现在用一阶谓词逻辑来描述机器人的行动过程。 在该例子中,不仅要用谓词公式表示事物的状态、位置,而且还要用谓词公式表示动作。为做到这一点,首先必须定义谓词。设相关谓词定义如下: TABLE(x):x是桌子。 EMPTY(y):y手中是空的。 AT(y,z):y在z附近。 HOLDS(y,w):y拿着w。 ON(w,x):w在x的上面。 其中,x的个体域是{a,b};y的个体域是{robot};z的个体域是{a,b,c};w的个体域是{box}。 问题的初始状态是: AT(robot,c) EMPTY(robot) ON(box,a) TABLE(a) TABLE(b) 图3—1 机器人行动规划 问题的目标状态是: AT(robot,c) EMPTY(robot) ON(box,b) TABLE(a) TABLE(b) 机器人行动的目标是把问题的初始状态转化为目标状态,其间它必须完成一系列的操作,但如何用谓词公式表示操作呢?仔细分析就会发现,操作一般可以分为条件(为完成相应操作所必须具备的条件)和动作两部分,条件可以很容易地用谓词公式表示,而动作可通过动作前后的状态变化表示出来,即只要指出动作后应从动作前的状态中删去和增加什么谓词公式就描述了相应的动作。在本例中,机器人为了把盒子从a桌上拿到b桌上,它应执行如下三个操作: GOTO(x,y):从x处走到y处。 PICK-UP(x):在x处拿起盒子。 SET-DOWN(x):在x处放下盒子。 这三个操作可分别用条件与动作表示如下: 1.GOTO(x,y) 条件:AT(robot,x) 动作: 2.PICK.UP(x) 条件:ON(box,x)∧TABLE(x)∧AT(robot,x)∧EMPTY(robot) 动作: 3.SET-DOWN(x) 条件:AT(robot,x)∧TABLE(x)∧HOLDS(robot,box) 动作: 机器人在执行每一个操作之前,总要先检查当前状态是否可使所要求的条件得到满足。若能满足,就执行相应的操作,否则就检查下一个操作所要求的条件。所谓检查当前状态是否满足所要求的条件,其实是一个定理证明的过程,即证明当前状态是否蕴含操作所要求的条件,若蕴含就表示所要求的条件得到了满足。 有了上述概念,就可写出机器人行动规划问题的求解过程。其中,在检查条件的满足性时 要进行变量的代换。 AT(robot,c) EMPTY(robot) ON(box,a) TABLE(a) TABLE(b) 状态1(初始状态) 用c代换x 用a代换y (GOTO(x,y) AT(robot,a) EMPTY(robot) ON(box,a) TABLE(a) TABLE(b) 状态2 用a代换x (PICK-UP(x) AT(rorot,a) HOLDS(robot,box) TABLE(a) TABLE(b) 状态3 用a代换x 用b代换y (GOTO(x,y) AT(robot,a) HOLDS(robot,box) TABLE(a) TABLE(b) 状态4 用b代换x (SET-DOWN(x) AT(robot,a) EMPTY(robot) ON(box,b) TABLE(a) TABLE(b) 状态5 用b代换x 用c代换y (GOTO(x,y) AT(robot,c) EMPTY(robot) ON(box,b) TABLE(a) TABLE(b) 状态6(目标状态) 在以上求解过程中,有两个直接相关的问题需要解决: (1)当某一状态可同时满足多个操作的条件时,应选用哪一个操作?例如对于状态3,它 既可以满足GOTO(x,y)的条件,又可以满足SET-DOWN(x)的条件,此时该选用哪一个? (2)在进行变量代换时,如果存在多种代换的可能性,如何确定用哪一个?例如在把状态1变化为状态2时,我们用c代换了x,用a代换了y。这里用c代换x的理由是显然的,否则它就不能满足GOTO(x,y)的条件。但是,为什么要用a代换y,而不用b代换y呢? 对于第一个问题,这与求解过程所采用的搜索策略有关,关于搜索策略将在第6章进行讨论。但针对这一具体情况,可采用如下办法解决:每当进行一个操作使问题由一种状态转换为另一种状态时,立即检查该新状态是否为目标状态。若是,则问题得到了解决;若不是,则检查该新状态是否与过去已经出现过的状态相同,如果相同,表明刚才进行的操作对求解是无帮助的,这时就回溯到上一状态选择别的操作。对于状态3,如果选用SET-DOWN(x)操作,将使状态改变为: AT(robot,a) EMPTY(robot) ON(box,a) TABLE(a) TABLE(b) 显然,这就是状态2。这说明对状态3不能选用SET-DOWN(x),而只能选用GOTO(x,y))。 对于第二个问题,也可使用类似的方法来解决。例如对于状态1,如果我们用b来代换y,则得到: AT(robot,b) EMPTY(robot) ON(box,a) TABLE(a) TABLE(b) 此时将会发现,该状态既不是目标状态,又不能满足PICK-UP(x)及SET-DOWN(x)的条件。如果仍用GOTO(x,y)对它进行操作,则可能出现两种情况,一是用b代换x,用c代换y,这就又回到状态1,即机器人到b处转了一圈,什么事也没做,又回到了c处;另一是用b代换x,用a代换y,即让机器人从b处走到a处。这与让机器人直接从c处走到a处相比,显然多走了一段弯路,浪费了时间。因此,对状态1直接用a代换y是最佳选择。 上面我们用例子说明谓词公式表示知识的方法。除此之外,还可用它表示知识元,例如在下一节将要讨论的产生式表示方法中,产生式的前提条件及结论都可用谓词公式表示。 3.2.2 一阶谓词逻辑表示法的特点 一阶谓词逻辑是一种形式语言系统,它用逻辑方法研究推理的规律,即条件与结论之间的蕴含关系,其表示知识方法有如下优点: 1.自然性 谓词逻辑是一种接近于自然语言的形式语言,人们比较容易接受,用它表示的知识比较容易理解。 2.精确性 谓词逻辑是二值逻辑,其谓词公式的真值只有“真”与“假”,因此可用它表示精确知识,并可保证经演绎推理所得结论的精确性。 3.严密性 谓词逻辑具有严格的形式定义及推理规则,利用这些推理规则及有关定理证明技术可从 已知事实推出新的事实,或证明作出的假设。 4.容易实现 用谓词逻辑表示的知识可以比较容易地转换为计算机的内部形式,易于模块化,便于对知识的增加、删除及修改。用它表示知识所进行的自然演绎推理及归结演绎推理都易于在计算机上实现。 一阶谓词逻辑表示法除具有上述优点外,尚有如下局限性: 1.不能表示不确定性的知识 谓词逻辑只能表示精确性的知识,不能表示不精确、模糊性的知识,但由于人类的知识大多都不同程度地具有不确定性,这就使得它表示知识的范围受到了限制。另外,谓词逻辑难以表示启发性知识及元知识。所谓启发性知识是指与问题特性有关的知识,将在第6章进行讨论。 2.组合爆炸 在其推理过程中,随着事实数目的增大及盲目地使用推理规则,有可能形成组合爆炸。目前已在这一方面做了大量的研究工作,亦出现了一些比较有效的方法,如定义一个过程或启发式控制策略来选取合适的规则等。 3.效率低 用谓词逻辑表示知识时,其推理是根据形式逻辑进行的,把推理与知识的语义割裂了开 来,这就使得推理过程冗长,降低了系统的效率。 尽管谓词逻辑表示法有以上一些局限性,但它仍是一种重要的知识表示方法。目前使用 这种方法表示知识的系统主要有: (1)格林(Green)等人研制的QA3系统,这是一个通用系统,适用于求解化学等方面的问 题。其知识用谓词逻辑表示,推理采用归结法(见第4章),控制采用启发式。 (2)菲克斯(Fiks)等人研制的STRIPS系统,这是一个机器人行动规划系统,具有问题应 答及规划求解的能力。 (3)菲尔曼(Filman)等人研制的FOL系统,这是——个证明系统,用一阶谓词逻辑的推理法则进行自然演绎推理。 此外,人工智能语言PROLOG也是以一阶谓词逻辑为基础的程序设计语言,它是建造智能系统的有力工具。 3.3 产生式表示法 产生式表示法又称为产生式规则表示法。 “产生式”这一术语是由.美国数学家波斯特(E.Post)在1943年首先提出来的,他根据串替代规则提出了一种称为波斯特机的计算模型,模型中的每一条规则称为——个产生式。在此之后,几经修改与充实,如今已被用到多种领域中。例如用它来描述形式语言的语法,表示人类心理活动的认知过程等。1972年纽厄尔和西蒙在研究人类的认知模型中开发了基于规则的产生式系统。目前它已成为人工智能中应用最多的一种知识表示模式,许多成功的专家系统都是用它来表示知识的。例如费根鲍姆等人研制的化学分子结构专家系统DENDRAL、肖特里菲等人研制的诊断感染性疾病的专家系统MYCIN等。 3.3.1 产生式的基本形式 产生式通常用于表示具有因果关系的知识,其基本形式是: P→Q 或者 IF P THEN Q 其中,P是产生式的前提,用于指出该产生式是否可用的条件;Q是一组结论或操作,用于指出当前提P所指示的条件被满足时,应该得出的结论或应该执行的操作。整个产生式的含义是:如果前提P被满足,则可推出结论Q或执行Q所规定的操作。例如 r4: IF 动物会飞 AND 会下蛋 THEN 该动物是鸟 就是一个产生式。其中,r4是该产生式的编号;“动物会飞AND会下蛋”是前提P;“该动物是鸟”是结论Q。 谓词逻辑中的蕴含式与产生式的基本形式有相同的形式,其实蕴含式只是产生式的一种 特殊情况,理由有二: (1)蕴含式只能表示精确知识,其真值或者为真,或者为假,而产生式不仅可以表示精确知识,而且还可以表示不精确知识。例如在专家系统MYCIN中有这样一条产生式: IF 本微生物的染色斑是革兰氏阴性, 本微生物的形状呈杆状, 病人是中间宿主 THEN 该微生物是绿脓杆菌,置信度为0.6 它表示当前提中列出的各个条件都得到满足时,结论“该微生物是绿脓杆菌”可以相信的程度为0.6。这里,用0.6指出了知识的强度,但对谓词逻辑中的蕴含式是不可以这样做的。 (2)用产生式表示知识的系统中,决定一条知识是否可用的方法是检查当前是否有已知 事实可与前提中所规定的条件匹配,而且匹配可以是精确的,也可以是不精确的,只要按某种算法(见第5章)求出的相似度落在某个预先指定的范围内就认为是可匹配的,但对谓词逻辑的蕴含式来说,其匹配总要求是精确的。 由于产生式与蕴含式存在这些区别,导致它们在处理方法及应用等方面都有较大的差别。 为了严格地描述产生式,下面用巴科斯范式BNF(BackusNormalForm)给出它的形式描 述及语义 <产生式>::=<前提>→<结论> <前 提>::=<简单条件>|<复合条件> <结 论>::=<事实>|<操作> <复合条件::=<简单条件>AND<简单条件>[(AND<简单条件>)…] |<简单条件>OR<简单条件>[(OR<简单条件>)…] <操 作>::=<操作名>[(<变元>,…)] 另外,产生式又称为规则或产生式规则;产生式的“前提”有时又称为“条件”、“前提条件”、“前件”、“左部”等;其“结论”部分有时称为“后件”或“右部”等。今后我们将不加区分地使用这些术语,不再作单独说明。 3.3.2产生式系统 把一组产生式放在一起,让它们互相配合,协同作用,一个产生式生成的结论可以供另一个产生式作为已知事实使用,以求得问题的解决,这样的系统称为产生式系统。 一般来说,一个产生式系统由以下三个基本部分组成:规则库,综合数据库,控制系统。它们之间的关系如图3-2所示。 3-2产生式系统基本结构 1.规则库 用于描述相应领域内知识的产生式集合称为规则库。 显然,规则库是产生式系统赖以进行问题求解的基础,其知识是否完整、一致,表达是否准确、灵活,对知识的组织是否合理等,不仅将直接影响到系统的性能,而且还会影响到系统的运行效率,因此对规则库的设计与组织应给予足够的重视。一般来说,在建立规则库 时应注意以下问题: (1)有效地表达领域内的过程性知识。规则库中存放的主要是过程性知识,用于实现对问题的求解。为了使系统具有较强的问题求解能力,除了需要获取足够的知识外,还需要对知识进行有效的表达。为此,需要解决如下一些问题:如何把领域中的知识表达出来,即为了求解领域内的各种问题需要建立哪些产生式规则?对知识中的不确定性如何表示?规则库建成后能否对领域内的不同问题分别形成相应的推理链,即规则库中的知识是否具有完整性?对以上问题,除不确定性的表示将在第5章讨论外,其余问题将会从下面给出的一个典型例子中得到启发。 例3.4 动物识别系统的规则库。 这是一个用以识别虎、金钱豹、斑马、长颈鹿、企鹅、驼鸟、信天翁等七种动物的产生式系统。为了实现对这些动物的识别,该系统建立了如下规则库: r1: IF 该动物有毛发 THEN 该动物是哺乳动物 r2: IF 该动物有奶 THEN 该动物是哺乳动物 r3: IF 该动物有羽毛 THEN 该动物是鸟 r4: IF 该动物会飞 AND 会下蛋 THEN 该动物是鸟 r5: IF 该动物吃肉 THEN 该动物是食肉动物 r6: IF该动物有犬齿 AND有爪 AND 眼盯前方 THEN 该动物是食肉动物 r7: IF 该动物是哺乳动物 AND 有蹄 THEN 该动物是有蹄类动物 r8: IF 该动物是哺乳动物 AND 是嚼反刍动物 THEN 该动物是有蹄类动物 r9: IF 该动物是哺乳动物 AND 是食肉动物 AND 是黄褐色 AND 身上有暗斑点 THEN 该动物是金钱豹 r10: IF 该动物是哺乳动物 AND 是食肉动物 AND 是黄褐色 AND 身上有黑色条纹 THEN 该动物是虎 r11: IF 该动物是有蹄类动物 AND 有长脖子 AND有长腿 AND 身上有暗斑点 THEN 该动物是长颈鹿 r12: IF 该动物是有蹄类动物 AND 身上有黑色条纹 THEN 该动物是斑马 r13: IF 该动物是鸟 AND 有长脖子 AND有长腿 AND不会飞 AND有黑白二色 THEN 该动物是鸵鸟 r14: IF 该动物是鸟 AND 会游泳 AND不会飞 AND 有黑白二色 THEN 该动物是企鹅 r15: IF 该动物是鸟 AND 善飞 THEN 该动物是信天翁 由上述产生式规则可以看出,虽然该系统是用来识别七种动物的,但它并没有简单地只设计7条规则,而是设计了15条,其基本想法是,首先根据一些比较简单的条件,如“有毛发”、“有羽毛”、“会飞”等对动物进行比较粗的分类,如“哺乳动物”、“鸟”等,然后随着条件的增加,逐步缩小分类范围,最后给出分别识别七种动物的规则。这样做起码有两个好处,一是当已知 的事实不完全时,虽不能推出最终结论,但可以得到分类结果;另一是当需要增加对其它动物 (如牛、马等)的识别时,规则库中只需增加关于这些动物个性方面的知识,如r9到ri5那样,而对r1至r8可直接利用,这样增加的规则就不会太多。在上例中,r1,r2,…,r15分别是对各产生式规则所做的编号,以便于对它们的引用。 另外,由上述规则很容易形成各种动物的推理链,例如虎及长颈鹿的推理链如图3—3所示。 图3—3 虎与长颈鹿的推理链 (2)对知识进行合理的组织与管理。对规则库中的知识进行适当的组织,采用合理的结 构形式,可使推理避免访问那些与当前问题求解无关的知识,从而提高求解问题的效率。 仅就例3.4的规则库而言,如若能将知识分为如下两个子集: {r1,r2,r5,r6,r7,r8,r9,r10,rll,r12} {r3,r4,f13,f14,r15} 则当待识别动物属于其中一个子集时,另一个子集中的知识在当前的问题求解过程中就可不用考虑,从而节约了查找所需知识的时间。当然,这种划分还可以逐级进行下去,使得相关的知识构成一个子集或子子集,构成一个层次型的规则库。 另外,对规则库进行合适的管理,可以检测并排除那些冗余及矛盾的知识,保持知识的一致性,提高规则库的质量。关于这部分内容将在专家系统一章再作讨论。 2.综合数据库 综合数据库又称为事实库、上下文、黑板等。它是一个用于存放问题求解过程中各种当前信息的数据结构,例如问题的初始状态、原始证据、推理中得到的中间结论(如上例中的“哺乳动物”,“鸟”等)及最终结论(如上例中的“虎”、“长颈鹿”等)。当规则库中某条产生式的前提可与综合数据库中的某些已知事实匹配时,该产生式就被激活,并把用它推出的结论放人综合数据库中,作为后面推理的已知事实。显然,综合数据库的内容是在不断变化的,是动态的。 综合数据库中的已知事实通常用字符串、向量、集合、矩阵、表等数据结构表示,如在专家系统MYCIN中对事实通常用如下一个四元组表示: (特性 对象 值 可信度因子) 其中“可信度因子”是指对该事实为真的相信程度。例如对事实“张山大约是25岁”,可用四元组表示为 (AGE ZHANGSHAN 25 0.8) 这里用可信度因子0.8表示对“张山是25岁”的可相信程度,反映了由“大约”表示出来的不确定性。 3.控制系统 控制系统又称为推理机构,由一组程序组成,负责整个产生式系统的运行,实现对问题的求解。粗略地说,它要做以下几项主要的工作: (1)按一定的策略从规则库选择规则与综合数据库中的已知事实进行匹配。所谓匹配是指把规则的前提条件与综合数据库中的已知事实进行比较,如果两者一致,或者近似一致且满足预先规定的条件,则称匹配成功,相应的规则可被使用;否则称为匹配不成功,相应规则不可用于当前的推理。 (2)匹配成功的规则可能不止一条,这称为发生了冲突。此时,推理机构必须调用相应的解决冲突策略进行消解,以便从中选出一条执行。 (3)在执行某一条规则时,如果该规则的右部是一个或多个结论,则把这些结论加入到综合数据库中;如果规则的右部是一个或多个操作,则执行这些操作。 (4)对于不确定性知识,在执行每一条规则时还要按一定算法计算结论的不确定性。 (5)随时掌握结束产生式系统运行的时机,以便在适当的时候停止系统的运行。 以上各点中的每一项都有许多工作要做,这将在第4章及第5章分别进行讨论。 为了使读者对产生式系统求解问题的过程有一个感性的认识,下面以例3.4给出的规则 为例,来看动物识别系统是如何工作的。 设在综合数据库中存放有下列已知事实: 该动物身上有暗斑点,有长脖子,有长腿,有奶,有蹄 并假设综合数据库中的已知事实与规则库中的知识是从第一条(即r1)开始,逐条进行匹配的,则当推理开始时,推理机构的工作过程是: (1)首先从规则库中取出第一条规则r1,检查其前提是否可与综合数据库中的已知事实匹配成功。由于综合数据库中没有“该动物有毛发”这一事实,所以匹配不成功,r1不能被用于推理。然后取第二条规则r2进行同样的工作。显然,r2的前提“该动物有奶”可与综合数据库中的已知事实匹配,因为在综合数据库中存在“该动物有奶”这一事实。此时r2被执行,并将其结论部分,即“该动物是哺乳动物”加入到综合数据库中。此时综合数据库的内容变为: 该动物身上有暗斑点,有长脖子,有长腿,有奶,有蹄,是哺乳动物 (2)接着分别用r3,r4,r5,r6与综合数据库中的已知事实进行匹配,均不成功。但当用 r7与之匹配时,获得了成功,此时执行r7并将其结论部分“该动物是有蹄类动物”加入到综合数据库中,综合数据库的内容变为: 该动物身上有暗斑点,有长脖子,有长腿,有奶,有蹄,是哺乳动物,是有蹄类动物 (3)在此之后,发现rl,又可与综合数据库中的已知事实匹配成功,并且推出了“该动物是长颈鹿”这一最终结论。至此,问题的求解过程就可结束了。 上述问题的求解过程是一个不断地从规则库中选取可用规则与综合数据库中的已知事实进行匹配的过程,规则的每一次成功匹配都使综合数据库增加了新的内容,并朝着问题的解决方向前进了一步,这一过程称为推理。当然,上述过程只是一个简单的推理过程,在第4章及第5章将对推理的有关问题开展全面的讨论。 对上面列出的推理过程,读者一定会问:计算机如何知道该在什么时候终止问题的求解过程呢?下面通过列出产生式系统求解问题的一般步骤来回答这个问题。 产生式系统求解问题的一般步骤是: (1)初始化综合数据库,把问题的初始已知事实送人综合数据库中。 (2)若规则库中存在尚未使用过的规则,而且它的前提可与综合数据库中的已知事实匹 配,则转第(3)步;若不存在这样的事实,则转第(5)步。 (3)执行当前选中的规则,并对该规则做上标记,把该规则执行后得到的结论送人综合数据库中。如果该规则的结论部分指出的是某些操作,则执行这些操作。 (4)检查综合数据库中是否已包含了问题的解,若已包含,则终止问题的求解过程;否则转第(2)步。 (5)要求用户提供进一步的关于问题的已知事实,若能提供,则转第(2)步;否则终止问题的求解过程。 (6)若规则库中不再有未使用过的规则,则终止问题的求解过程。 在上述第(4)步中,为了检查综合数据库中是否包含问题的解,可采用如下两种简单的处 理方法: (1)把问题的全部最终结论,如动物识别系统中的虎、金钱豹等七种动物的名称全部列于一张表中,每当执行一条规则得到一个结论时,就检查该结论是否包含在表中,若包含在表中,说明它就是最终结论,求得了问题的解。 (2)对每条结论部分是最终结论的产生式规则,如动物识别系统中的规则r9至r15,分别做一标记,当执行到上述一般步骤中的第(3)步时,首先检查该选中的规则是否带有这个标记,若带有,则由该规则推出的结论就是最终结论,即求得了问题的解。 最后,需要特别说明的是,问题的求解过程与推理的控制策略有关,上述的一般步骤只是针对正向推理而言的,而且它只是粗略地描述了产生式系统求解问题的大致步骤,许多细节均未考虑,如冲突消解、不确定性的处理等,这些问题都将在下面的几章中分别讨论。 3.3.3 产生式系统的分类 对产生式系统从不同角度进行划分,可得到不同的分类方法。例如按推理方向划分可分为前向、后向和双向产生式系统;按其所表示的知识是否具有确定性可分为确定性及不确定性产生式系统。这些分类方法我们将分别在以后的各章中进行讨论,这里仅讨论按规则库及综合数据库的性质及结构特征进行的分类。此时,产生式系统可分为如下三类: 可交换的产生式系统 可分解的产生式系统 可恢复的产生式系统 下面分别进行讨论。 1.可交换的产生式系统 产生式系统求解问题的过程是一个反复从规则库中选用合适规则并执行规则的过程。在这一过程中,不同的控制策略将会得到不同的规则执行次序,从而有不同的求解效率。如果一个产生式系统对规则的使用次序是可交换的,无论先使用哪一条规则都可达到目的,即规则的 使用次序是无关紧要的,就称这样的产生式系统为可交换的产生式系统。为便于理解这一概 念,下面给出一个简单的例子。 设综合数据库DB的初始状态是{a,b,c},其中a,b,c均为整数;并设规则库RB中有下述规则: r1: IF {a,b,c} THEN {a,b,c,a×b} r2: IF {a,b,c} THEN {a,b,c,b×c} r3: IF {a,b,c} THEN {a,b,c,a×c} 现在希望通过推理使综合数据库DB变为 {a,b,c,a×b,b×c,a×c} 其中,a×b表示a与b相乘,余者类推。 显然,无论先使用哪一条规则都可达到目的,所以由上述RB与DB构造的产生式系统是一个可交换的产生式系统。 严格地说,所谓一个产生式系统是可交换的,是指它的RB和每一个DB都具有如下性 质: (1)设RS为可应用于DBi的规则集合,当使用RS中任何一条规则尺使DB的状态改变 后,该RS对DB仍然适用。即对任何规则R(RS,RS仍然是 R(DBi)=DBi+1 的可用规则集。 (2)如果DBi满足目标条件,则当应用RS中任何一条规则所生成的新综合数据库DBi+1仍然满足目标条件。 (3)若对当前的综合数据库DBi使用某一规则序列r1,r2,…,rk得到一个新的综合数据库DBk,即 则当改变规则的使用次序后,仍然可得到DBi。 由以上性质可以看出,在可交换产生式系统中,综合数据库DB的内容是递增的,即对规则的任何执行序列 都有 DB0(DB1 (…(DBg 成立。这说明在可交换产生式系统中,其规则的结论部分总是包含着新的内容,一旦执行该规则就会把该新内容添加到综合数据库中。 另外,由可交换产生式系统的性质还可看出,用这种系统求解问题时,其搜索过程不必进行回溯,不需要记载可用规则的作用顺序。由于求解问题时只需选用任一个规则序列,而不必搜索多个序列,这就节省了时间,提高了求解问题的效率。 2.可分解的产生式系统 把一个规模较大且比较复杂的问题分解为若干个规模较小且比较简单的子问题,然后对每个子问题分别进行求解,是人们求解问题时常用的方法,可分解的产生式系统就是基于这一思想提出来的。 一个产生式系统可分解的条件是可把它的综合数据库DB及终止条件都分解为若干独立的部分,其产生式规则一般具有如下形式: IF P THEN {DBi1,DB i2,…,DB im} 其含义是,若当前综合数据库是DBi,则当前提条件P被满足时,就把DBi分解为m个互相 独立的子库。例如,设综合数据库的初始内容是{C,B,Z},规则库中有如—F规则: r1: IF C THEN {D,L} r2: IF C THEN {B,M} r3: IF B THEN {M,M} r4: IF Z THEN {B,B,M} 终止条件是生成只包含M的综合数据库。即,使综合数据库的内容变为 {M,M,…,M} 求解该问题时,首先把初始综合数据库分解为三个子库,然后对每个子库分别应用规则库中的 合适规则进行求解,其求解过程如图3-4所示。 图3-4中,用括弧连接起来的子节点间是“与”关系,不用括弧连接的子节点是“或”关系。显然,用图表示可分解产生式系统求解问题的过程时,得到的是一棵与/或树。 图3—4 可分解的产生式系统 在可分解产生式系统中,由于初始数据库被分解成了若干子库,每个子库又可再分解成若干子库,依此类推,这就缩小了搜索范围,提高了求解问题的效率。关于这个问题,在第6章还要做进一步的讨论。 3.可恢复的产生式系统 在可交换产生式系统中,规则的使用次序是可交换的,但要求每条规则的执行都要为综合数据库添加新的内容,这一要求是很强的,对许多情况不能适用。事实上,人们在求解问题的过程中是经常要进行回溯的,当问题求解到某一步发现无法继续下去时,就撤消在此之前得到的某些结果,恢复到先前的某个状态。用产生式系统求解问题也是这样,当执行一条规则后使综合数据库的状态由DBi变为DBi+l时,如果发现由DBi+l不可能得到问题的解,就需要立即撒消由刚才执行规则所产生的结果,使综合数据库恢复到先前的状态,然后选用别的规则继续求解。像这样在问题的求解过程中既可以对综合数据库添加新内容,又可删除或修改老内容的产生式系统称为可恢复的产生式系统。在第6章讨论重排九宫等问题时,可以看到这样的例子。 3.3.4 产生式表示法的特点 产生式表示法主要有以下优点: 1.自然性 产生式表示法用“如果……,则……”的形式表示知识,这是人们常用的一种表达因果关系的知识表示形式,既直观、自然,又便于进行推理。正是由于这一原因,才使得产生式表示法成为人工智能中最重要且应用最多的一种知识表示模式。 2.模块性 产生式是规则库中最基本的知识单元,它们同推理机构相对独立,而且每条规则都具有相同的形式,这就便于对其进行模块化处理,为知识的增、删、改带来了方便,为规则库的建立和扩展提供了可管理性。 3.有效性 产生式表示法既可表示确定性知识,又可表示不确定性知识;既有利于表示启发式知识,又可方便地表示过程性知识。目前已建造成功的专家系统大多都是用产生式来表达其过程性 知识的。 4.清晰性 产生式有固定的格式,每一条产生式规则都由前提与结论(操作)这两部分组成,而且每一部分所含的知识量都比较少,这就既便于对规则进行设计,又易于对规则库中知识的一致性及完整性进行检测。 除以上优点外,它亦有如下一些不足之处 1.效率不高 在产生式系统求解问题的过程中,首先要用产生式的前提部分与综合数据库中的已知事实进行匹配,从规则库中选出可用的规则,此时选出的规则可能不止一个,这就需要按一定的策略进行“冲突消解”,然后把选中的规则启动执行。因此,产生式系统求解问题的过程是一个反复进行“匹配一冲突消解一执行”的过程。鉴于规则库一般都比较庞大,而匹配又是一件十分费时的工作,因此其工作效率是不高的。另外,在求解复杂问题时容易引起组合爆炸。 2.不能表达具有结构性的知识 产生式适合于表达具有因果关系的过程性知识,但对具有结构关系的知识却无能为力,它不能把具有结构关系的事物间的区别与联系表示出来。下面我们将会看到框架表示法可以解决这方面的问题。因此,产生式表示法除了可以独立作为一种知识表示模式外,还经常与其它表示法结合起来表示特定领域的知识。例如在专家系统PROSPECTOR中用生产式与语义网络相结合,在Aikins中把产生式与框架表示法结合起来,等等。 由上述关于产生式表示法的特点,可以看出产生式表示法适合于表示具有下列特点的领域知识: (1)由许多相对独立的知识元组成的领域知识,彼此间关系不密切,不存在结构关系。例如化学反应方面的知识。 (2)具有经验性及不确定性的知识,而且相关领域中对这些知识没有严格、统一的理论。 例如医疗诊断、故障诊断等方面的知识。 (3)领域问题的求解过程可被表示为一系列相对独立的操作,而且每个操作可被表示为一条或多条产生式规则。 3.4 框架表示法 框架表示法是以框架理论为基础发展起来的一种结构化的知识表示方法,现已在多种系统中得到应用。 3.4.1 框架理论 1975年美国著名的人工智能学者明斯基在其论文“A framework for representing knowl- edge”中提出了框架理论,并把它作为理解视觉、自然语言对话及其它复杂行为的基础。 该理论认为人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中的,当面临一个新事物时,就从记忆中找出一个合适的框架,并根据实际情况对其细节加以修改、补充,从而形成对当前事物的认识。例如,当一个人将要走进一个教室时,在他进入之前就能依据以往对“教室”的认识,想象到这个教室一定有四面墙,有门、窗,有天花板和地板,有课桌、坐凳、黑板等,尽管他对这个教室的细节(如教室的大小、门窗的个数、桌凳的数量、颜色等)还不清楚,但对教室的基本结构是可以预见到的。他之所以能做到这一点,是由于他通过以往的认识活动已经在记忆中建立了关于教室的框架,该框架不仅指出了相应事物的名称(教室),而且还指出了事物各有关方面的属性(如有四面墙,有课桌,有黑板,……),通过对该框架的查找就很容易得到教室的各有关特征。在他进入教室后,经观察得到了教室的大小、门窗的个数、桌凳的数量、颜色等细节,把它们填人到教室框架中,就得到了教室框架的——个具体事例,这是他关于这个具体教室的视觉形象,称为事例框架。 在框架理论中,明斯基在给出框架的基本概念及结构的同时,还对其应用提出了一些实用性的问题。例如,对给定的条件,如何选择初始框架;为了表现事物进一步的细节,如何给框架赋值;当所选用的框架不满足给定的条件时,如何寻找新的框架;当找不到合适的框架时,是修改旧的框架还是建立一个新框架等等。这些问题对框架表示法的应用都是十分重要的,本节我们仅讨论其中的部分问题,重点是框架的基本概念及其表示知识的方法,余下的问题将在第五章的5.7节进行讨论。 3.4.2 框架 框架是一种描述所论对象(一个事物、一个事件或一个概念)属性的数据结构。在框架理 论中,将其视作知识表示的一个基本单位。 一个框架由若干个被称为“槽”的结构组成,每一个槽又可根据实际情况划分为若干个“侧面”。一个槽用于描述所论对象某一方面的属性,一个侧面用于描述相应属性的一个方面。槽和侧面所具有的属性值分别称为槽值和侧面值。在一个用框架表示知识的系统中,一般都含有多个框架,为了指称和区分不同的框架以及一个框架内的不同槽、不同侧面,需要分别给它们赋予不同的名字,分别称为框架名、槽名及侧面名。另外,无论是对于框架,还是槽或侧面,都可以为其附加上一些说明性的信息,一般是指一些约束条件,用于指出什么样的值才能填入到槽或侧面中去。 下面给出框架的一般表示形式。 <框架名> 槽名1: 侧面名l 值l,值2,…,值p1 侧面名2 值l,值:,…,值p2 … … 侧面名m1 值l,值2,…,值pm1 槽名2: 侧面名1 值l,值:,…,值q1 侧面名2 值l,值2,…,值q2 … … 侧面名m2 值l,值2,…,值qm2 … … … 槽名n: 侧面名1 值l,值:,…,值,, 侧面名2 值l,值:,…,值·: … … 侧面名mn 值l,值2,…,值mn 约束: 约束条件1 约束条件2 … 约束条件n 由上述表示形式可以看出,一个框架可以有任意有限数目的槽,一个槽可以有任意有限数目的侧面,一个侧面又可以有任意有限数目的侧面值。一个槽可以分为若干个侧面,也可不分侧面,视其描述的属性而定。另外,槽值或侧面值既可以是数值、字符串、布尔值,也可以是一个在满足某个给定条件时要执行的动作或过程,特别是它还可以是另一个框架的名字,从而实现一个框架对另一个框架的调用,表示出框架之间的横向联系。 现在来看两个例子,以增强对框架的感性认识,第一个例子是关于“假冒伪劣商品”的框架,第二个例子是关于“教师”的框架。 框架名: <假冒伪劣商品> 商品名称: 生产厂家: 出售商店: 处 罚: 处理方式: 处罚依据: 处罚时间: 单位(年、月、日) 经办部门: 在这个框架中,用“<>”括起来的内容是框架名,它有四个槽,其槽名分别是“商品名称”、“生产厂家”、“出售商店”及“处罚”。其中“处罚”槽包括四个侧面,侧面名分别是“处罚方式”、“处罚依据”、“处罚时间”及“经办部门”。对于“处罚时间”侧面,用“单位”指出了一个填值时的标准限制,要求所填的时间必须按年、月、日的顺序填写。下面再来看第二个例子。 框架名: {教师) 姓名: 单位(姓、名) 年龄: 单位(岁) 性别: 范围(男、女) 缺省: 男 职称: 范围(教授,副教授,讲师,助教) 缺省: 讲师 部门: 单位(系,教研室) 住址: <住址框架> 工资: <工资框架> 开始工作时间: 单位(年、月) 截止时间: 单位(年、月) 缺省: 现在 该框架共有九个槽,分别描述了“教师”九个方面的情况,或者说是关于“教师”的九个属 性,在每个槽里都指出了一些说明性的信息,用于对槽的填值给出某些限制。其中,“<>”和“单位”已在上例中作了说明;“范围”指出槽的值只能在指定的范围内挑选,例如对“职称”槽,其槽值只能是“教授”、“副教授”、“讲师”、“助教”中的某一个,不能是别的,如“工程师”等;“缺省”表未当相应槽不填人槽值时,就以缺省值作为槽值,这样可以节省一些填槽的工作。例如对“性别”槽,当不填人“男”或“女”时,就默认它是“男”,这样对男性教师就可以不填这个槽的槽值。 对于上述两个框架,当把具体的信息填人槽或侧面后,就得到了相应框架的一个事例框 架。例如把某教师的一组信息填人“教师”框架的各个槽,就可得到: 框架名: <教师-1> 姓名: 夏冰 年龄: 36 性别: 女 职称: 副教授 部门: 计算机系软件教研室 住址: 工资: 开始工作时间: 1988,9 截止时间: 1996,7 这就是一个关于“教师”的事例框架,其框架名为“教师-1”,对于每个教师都可以有这样一个事例框架。 下面给出框架的BNF描述: <框架>::=<框架头><槽部分>[<约束部分>] <框架头>::=<框架名><框架名的值> <槽部分>::=<槽>,[<槽>] <约束部分>::=约束<约束条件>,[<约束条件>] <框架名的值>::=<符号名>|<符号名>(<参数>,[<参数>]) <槽>::=<槽名><槽值>|<侧面部分> <槽名>::=<系统预定义槽名>|<用户自定义槽名> <槽值>::=<静态描述>|<过程>|<谓词>|<框架名的值>|<空> <侧面部分>::=<侧面>,[<侧面>] <侧面>::=<侧面名><侧面值> <侧面名>::=<系统预定义侧面名>|<用户自定义侧面名> <侧面值>::=<静态描述>|<过程>|<谓词>|<框架名的值>|<空> <静态描述>::=<数值>|<字符串>|<布尔值>|<其它值> <过程>::=<动作>|<动作>,[<动作>] <参数>::=<符号名> 对此表示有如下几点说明: (1)框架名的值允许带有参数。此时,当另一个框架调用它时需要提供相应的实在参数。 (2)当槽值或侧面值是一个过程时,它既可以是一个明确表示出来的{动作)串,也可以是对主语言的某个过程的调用,从而可将过程性知识表示出来。 (3)当槽值或侧面值是谓词时,其真值由当时谓词中变元的取值确定。 (4)槽值或侧面值为<空>时,表示该值等待以后填入,当时还不能确定。 (5)<约束条件>是任选的,当不指出约束条件时,表示没有约束。 3.4.3 框架网络 由于框架中的槽值或侧面值都可以是另一个框架的名字,这就在框架之间建立起来了联系,通过一个框架可以找到另一个框架。如在上例关于夏冰的框架中,“住址”槽的槽值是 “adr-1”,而它是一个地址框架的名字,这就在“教师-1”与"adr-1”这两个框架间建立了联系。当某人希望了解夏冰的情况时,不仅可以直接在“教师-1”框架中了解到有关她的“年龄”、“职称”等情况,还可通过“住址”槽找到她的住址框架,从而得知她的详细住址。 框架之间除了可以有上述横向联系外,还可以在有关框架间建立起纵向联系。现以学校里“师生员工”框架、“教职工”框架及“教师”框架为例,说明如何在它们之间建立起纵向联系,并由此引出框架表示的一个重要特性。 我们知道,无论是教师,还是学生以及在学校工作的其他人员,如干部、实验员、工人等,尽管他们所担负的任务不同,但由于他们都共处于学校这个环境中,必然会有一些共同的属性,因此在对他们进行描述时,可以把他们具有的共同属性抽取出来,构成一个上层框架,然后再对各类人员独有的属性分别构成下层框架,为了指明框架间的这种上、下关系,可在下层框架中设立一个专用的槽(一般称为“继承”槽),用以指出它的上层框架是哪一个。这样不仅在框架间建立了纵向联系,而且通过这种联系,下层框架还可以继承上层框架的属性及值,避免了重复描述,节约了时间和空间的开销。 继承性是框架表示法的一个重要特性,它不仅可以在两层框架之间实现继承关系,而且可以通过两两的继承关系,从最低层追溯到最高层,使高层的信息逐层向低层传递。 至此,我们讨论了用框架名作为槽值时所建立起来的框架间的横向联系,又讨论了用“继承”槽建立起来的框架间的纵向联系。像这样具有横向联系及纵向联系的一组框架称为框架网络。图3—5是一个关于师生员工的框架网络。 在图3—5所示的框架网络中,“师生员工”框架用于描述师、生、员、工们的共同属性,例如“姓名”、“性别”、“年龄”等;“教职工”框架用于描述教师、干部、工人的共同属性,但凡是在“师生员工”框架中已经指出的属性在这里就可以不再指出;“学生”框架用于描述学生的共同属性,已在“师生员工”框架中指出的属性在这里也可不再重复描述。以此类 推可知,在“教师”框架、“工人”框架、“电子系学生”框架等中也只需描述只有他们自己 图3-5关于师生员工的框架网络 具有的属性。但是,如果一个在上层框架中描述的属性在下层框架需作进一步说明时,则需要在下层框架中再次给出描述。例如,设在“师生员工”框架中对“年龄”槽的描述是: 年龄:单位(岁) 由于学生一般都是在七岁开始上学的,因此学生的年龄可由 年龄=学龄+7 得到,所以在“学生”框架中仍可设置“年龄”槽,并在该槽的描述中给出计算年龄的过程。如果 在下层框架中对某些槽没有作特别的声明,那么它将自动继承上层框架相应槽的槽值。下面具体地给出上述几个框架的描述: 师生员工框架为: 框架名: <师生员工> 姓名: 单位(姓,名) 年龄: 单位(岁) 性别: 范围(男,女) 缺省:男 健康状况: 范围(健康,一般,差) 缺省:一般 住址: <住址框架> 教职工框架为: 框架名: <教职工> 继承: <师生员工> 工作类别: 范围(教师,干部,工人) 缺省: 教师 开始工作时间: 单位(年,月) 截止工作时间: 单位(年,月) 缺省: 现在 离退休状况: 范围(离休、退休) 缺省: 退休 教师框架为: 框架名: <教师> 继承: <教职工> 部门: 单位(系,教研室) 语种: 范围(英语,法语,德语,日语,俄语) 缺省: 英语 外语水平: 范围(优,良,中,差) 缺省:良 职称: 范围(教授,副教授,讲师,助教) 缺省: 讲师 研究方向: 某个教师的实例框架为: 框架名: (教师-1) 继承: <教师) 姓名: 孙 林 年龄: 28 健康状况: 健康 部门: 计算机系软件教研室 语种: 德语 开始工作时间: 2002,9 由上述框架描述可以看出: (1)在框架网络中,既有用“继承”槽指出的上、下层框架间的纵向联系,也有以框架名作为槽值指出的框架间的横向联系,因此框架网络是一个纵、横交错的复杂的框架体系结构。 (2)原则上说,事例框架中的每一个槽都应给出槽值,但对可以继承上层框架槽值的槽,其槽值可不给出。例如在上面的“教师-1”框架中,虽然没有给出“性别”、“职称”槽及其槽值,但由继承性可知孙林的性别为“男”,职称为“讲师”。 为了说明框架调用时“参数”的应用方法,下面再来看一个关于“房间”、“教室”的例子。 下面是一个关于“房间”的描述框架: 框架名: <房间> 墙数x1: 缺省: x1=4 条件: x1>0 窗数x2: 缺省: x2=2 条件: x2≥0 门数x3: 缺省: x3=1 条件: x3>0 前墙: <墙框架(w1,d1)> 后墙: <墙框架(w2,d2)> 左墙: <墙框架(w3,d3)> 右墙: <墙框架(w4,d4)> 天花板: <天花板框架> 地板: <地板框架> 门: <门框架> 窗: <窗框架> 条件: w1+w2+w3+w4=x2 dl+d2+d3+d4=x3 在此框架描述中,“墙数”槽的约束条件是x1>0,它指明在其事例框架中相应槽的值必须大于零,即房间应至少有一面墙,这可用来检测填槽时出现的错误。如果不给出墙的面数,就认为是四面墙。条件w1+w2+w3+w4=x2指出各面墙上窗数的和应与房间的总窗数相符,这也可以用来检验填槽的正确性。其它约束条件的作用与此类似,不再一一说明。“前墙”、“后墙”、“左墙”、“右墙”等槽给出的是“墙”框架的名字,并且给出了调用“墙”框架时的参 数,这些参数应与“墙”框架中的参数一一对应,由下面关于“墙”框架的描述可清楚地看到这一点。 框架名: <墙(侧,d)> 颜色: 门数: 窗数: “房间”是对各类房子(如会客室、卧室、厨房、教室等)的总称,对每一种具体的房子来说,又都各有自己的特征。例如“教室”有课桌、坐凳、黑板等;卧室有床;厨房有炉子、餐具等。因此对每一种房子还需要用框架给出进一步的描述,这里不再一一列出,下面仅仅给出一个关于“教室”的事例框架。 框架名: <402教室> 墙数: 4 窗数: 4 门数: 2 前墙: <墙框架(0,0)> 后墙: <墙框架(0,1)> 左墙: <墙框架(2,1)> 右墙: <墙框架(2,0)> 课桌数: 30 坐凳数: 30 黑板数: 1 天花板: <天花板框架> 地 板: <地板框架> 3.4.4 框架中槽的设置与组织 由以上讨论可知,框架是一种集事物各方面属性的描述为一体,并反映相关事物间各种关系的数据结构。在此结构中,槽起着至关重要的作用,因为不仅要用它描述事物各有关方面的 属性,而且还要用它来指出相关事物间的复杂关系。因此,在用框架作为知识的表示模式时, 对槽的设置与组织应给予足够的重视。具体地说,应该注意以下几个方面的问题: 1.充分表达事物各有关方面的属性 在以框架作为知识表示模式的系统中,知识是通过事物的属性来表示的。为使系统具有丰富的知识,以满足问题求解的需要,就要求框架中有足够的槽把事物各有关方面的属性充分表达出来。这里所说的“各有关方面的属性”有两方面的含义:一是要与系统的设计目标相一致,凡是系统设计目标所要求的属性,或者问题求解中有可能要用到的属性都应该用相应的槽把它们表示出来;另一是仅仅需要对有关的属性设立槽,不可面面俱到,以免浪费空间和降低系统的运行效率。一般来说,一个事物的属性通常都是多方面的,但并不是每一个属性都是系统所要求的。因此,在选择把哪些属性作为槽的描述对象时,首先要对系统的设计目标及应用范围进行认真的分析,并依此对事物的属性进行筛选,仅把那些需要的属性找出来,并为它们建立相应的槽。 2.充分表达相关事物间的各种关系 现实世界中的事物一般不是孤立的,彼此间存在着千丝万缕的联系。为了将其中有关的联系反映出来,以构成完整的知识体系,需要设置相应的槽来描述这些联系。 在框架系统中,事物之间的联系是通过在槽中填人相应的框架名来实现的,至于它们之间究竟是一种什么关系,则是由槽名来指明的。为了提供一些常用且可公用的槽名,在框架表示系统中通常定义一些标准槽名,应用时不用说明就可直接使用,称这些槽名为系统预定义槽名。下面列出其中用得较多的几个: (1)ISA槽。ISA槽用于指出事物间抽象概念上的类属关系。其直观含义是“是一个”, “是一种”,“是一只”,…。当用它作为某下层框架的槽时,表示该下层框架所描述的事物是其上层框架的一个特例,上层框架是比下层框架更一般或更抽象的概念。设有如下两个框架: 框架名: (运动员) 姓名: 单位(姓,名) 年龄: 单位(岁) 性别: 范围(男,女) 缺省: 男 框架名: (棋手) ISA: {运动员) 脑力: 特好 在此例中,“棋手”框架中的“ISA"槽指出该框架所描述的事物是“运动员”框架所描述事物的一个特例,即“棋手”是一种“运动员”。 一般来说,用"ISA"槽所指出的联系都具有继承性,即下层框架可以继承其上层框架所描述的属性及值。 (2)AKO槽。AKO槽用于具体地指出事物间的类属关系。其直观含义是“是一种”。当用它作为某下层框架的槽时,就明确地指出该下层框架所描述的事物是其上层框架所描述事物中的千种,下层框架可以继承其上框架所描述的属性及值。 对上面的例子,可将“棋手”框架中的“ISA"改为"AKO"。 (3)Subclass槽。Subclass槽用于指出子类与类(或子集与超集)之间的类属关系。当用它作为某下层框架的槽时,表示该下层框架是其上层框架的一个子类(或子集)。对于上例,由于“棋手”是“运动员”中的一个子类,因而可将“棋手”框架中的"ISA"改为"Sbuclass"。 (4)Instance槽。Instance槽用来建立AKO槽的逆关系。当用它作为某上层框架的槽时,可用来指出它的下一层框架是哪一些。对于上例,假设还有“足球运动员”、“排球运动员”的框架,则“运动员”框架中可用Instance槽来指出它的这些下层框架,即: 框架名: <运动员> Instance: <棋手>,<足球运动员>,<排球运动员> 姓名: 单位(姓,名) 年龄: 单位(岁) 性别: 范围(男,女) 缺省: 男 由Instance槽所建立起来的上、下层框架间的联系具有继承性,即下层框架可以继承上层框架所描述的属性与值。 (5)Part-of槽。Part-of槽用于指出“部分”与“全体”的关系。当用它作为某下层框架的槽时,它指出该下层框架所描述的事物只是其上层框架所描述事物的一部分。例如,上层框架是对汽车的描述,下层框架是对轮胎的描述。显然,轮胎只是汽车的一部分(部件)。 这里,应特别注意把"Part-of"槽与上面讨论的那四种槽区分开来。它们虽然都是用来指出框架间的层次结构关系的,但却有着完全不同的性质。前面那四种槽描述的是上、下层框架间的类属关系,它们具有共同的特性,下层框架可以继承上层框架所描述的属性及值;而 “Part-of"槽只是指出下层框架是上层框架的一个子结构,两者一般不具有共同的特征,下层框架不能继承上层框架所描述的属性及值。例如,轮胎是汽车一部分,但两者的结构及性能却完全不同,“轮胎”框架不能继承“汽车”框架所描述的属性及值。区分这一差异在框架系统的实现过程中是很重要的,它告诉我们:当两个框架有继承关系时,需选用前面那四种中的某一种,这样上层框架中的槽及其值就可以复制到下层框架中被使用,从而免去了重复性的描述;当两个具有上、下层结构关系的框架只是“全体”与“部分”的关系时,可选用"Part-of”来指出上、下层的联系。 (6)Infer槽。Infer槽用于指出两个框架所描述事物间的逻辑推理关系,用它可以表示相应的产生式规则。例如,设有如下知识: 如果咳嗽、发烧且流涕,则八成是患了感冒, 需服用“感冒清”, 一日三次,每次2~3粒, 多喝开水。 对该知识,可用如下两个框架表示: 框架名: <诊断规则> 症状1: 咳嗽 症状2: 发烧 症状3: 流涕 Infer: <结论> 可信度: 0.8 框架名: <结论> 病名: 感冒 治疗方法: 服用感冒清,一日3次,每次2~3粒 注意事项: 多喝开水 预后: 良好 (7)Possible-Reason槽。Possible-Reason槽与Infer槽的作用相反,它用来把某个结论与可能的原因联系起来。例如,在上述的“结论”框架中可增加一个Possible-Reason槽,其槽值是某个框架的框架名,在该框架中描述了产生“感冒”的原因,如感染了流感病毒等。 除了上述七种描述框架间层次结构关系及推论关系的槽外,还有一些描述其它关系(如占有关系、时间关系、空间关系、相似关系等)的槽,这里不再一一列出,待下一节讨论语义网络的语义联系时再作说明。 3.对槽及侧面进行合理的组织 在框架中通过引入AKO槽、Instance槽等可实现上、下层框架间的继承性,这一特性使得我们有可能把同一层上不同框架中的相同属性抽取出来,放入到它们的上层框架(即父框架)中。这样不仅可以大大减少重复性的信息,而且有利于知识的一致性。为了做到这一点,需要对框架及槽进行合理的组织,尽量把不同框架描述的相同属性抽取出来构成上层框架,而在下层框架中只描述相应事物独有的属性。例如,设有鸽子、啄木鸟、布谷鸟、燕子及鹦鹉等五种动物,要求用框架将其特征描述出来。分析这五种动物可以发现,它们有许多共同的特征,如身上有羽毛,会飞、会走等等。此时,可把这些共同特征抽取出来构成一个上层框架,然后再对每一个动物独有的特征(如羽毛颜色、嘴的形状等)分别构成一个框架,再用AKO槽或Instance槽把上、下层框架联系起来。 4.有利于进行框架推理 用框架表示知识的系统一般由两大部分组成:一是由框架及其相互关联构成的知识库;另一是由一组解释程序构成的框架推理机。前者的作用是提供求解问题所需要的知识,后者的作用是针对用户提出的问题,通过运用知识库中的相关知识完成求解问题的任务,给出问题的解。 框架推理是一个反复进行框架匹配的过程,而且多数情况下其匹配都具有不确定性,为了使推理得以进行,通常都需要设置相应的槽来配合。如在有些系统中设置了“充分条件”槽、“必要条件”槽、“触发条件”槽、“否决条件”槽及“阈值”槽等来配合不确定性匹配的实现。至于究竟需要设置一些什么样的槽来配合推理,与其所用的推理方法有关,不能一概而论。 综合上述,槽的设置与组织是框架系统中一项基础性的工作,设置时应从整个系统的全局出发作统筹安排,合理组织,既要避免重复性的描述及信息的冗余,又要着眼于应用的方便性。只有这样,才能为建造一个高效、实用的系统奠定一个良好的基础。 3.4.5 框架系统中求解问题的基本过程 在用框架表示知识的系统中,问题的求解主要是通过匹配与填槽实现的。当要求解某个问题时,首先把这个问题用一个框架表示出来,然后通过与知识库中已有的框架进行匹配,找出一个或几个可匹配的预选框架作为初步假设,并在此初步假设的引导下收集进一步的信息,最后用某种评价方法对预选框架进行评价,以便决定是否接受它。 框架的匹配是通过对相应的槽的槽名及槽值逐个进行比较实现的。如果两个框架的各对应槽没有矛盾或者满足预先规定的某些条件,就认为这两个框架可以匹配。由于框架间存在继承关系,一个框架所描述的某些属性及值可能是从它的上层框架那里继承过来的,因此两个框架的比较往往要牵涉到它们的上层、上上层框架,这就增加了匹配的复杂性。另外,框架间的匹配一般都具有不确定性,因为建立在知识库中的框架其结构和描述都已固定下来,而应用中的问题却是随机的,变化的,要使它们完全一致是不现实的。由于这些原因,使得框架的匹配问题成为一个比较复杂且比较困难,但又不能不解决的问题。在不同的系统中,采用的解决方法各不相同,如上面提到的建立“必要条件”槽、“充分条件”槽等就是其中的一种解决方法。 现在来看一个例子。假设前面提出的关于师生员工的框架网络已建立在知识库中,当前要解决的问题是从知识库中找出一个满足如下条件的教师: 男性,年龄在30岁以下,身体健康,职称为讲师 把这些条件用框架表示出来,就可得到如下的初始问题框架: 框架名: 教师-x 姓名: 年龄: <30 性别: 男 健康状况: 健康 职称: 讲师 用此框架与知识库中的框架匹配,显然“教师-1”框架可以匹配。因为“年龄”槽与“健康状况”槽都符合要求,“教师-1”框架虽然没有给出“性别”及“职称”的槽值,但由继承性可知它们分别是“男”及“讲师”,完全符合初始问题框架“教师-x”的要求,所以要找的教师有可能就是孙林。 这里之所以说是“有可能”,是由于知识库中可与问题框架“教师-x”匹配成功的框架可能不止一个,因而目前匹配成功的框架还只能作为预选框架,需要进一步收集信息,以便从中选出一个,或者根据框架中其它槽的内容及框架间的关系明确下步查找的方向和线索。 框架系统中的问题求解过程与人类求解问题的思维过程有许多相似之处。当人们对某事物不完全了解时,往往是先根据当前已掌握的情况着手工作,然后在工作过程中不断发现、掌握新情况、新线索,使工作向纵深发展,直到达到了最终目标。框架系统中的问题求解过程也是这样的。就以上例来说,系统首先根据当前已知的条件对知识库中的框架进行部分匹配,找出像孙林等人这样的预选框架,并且由这些框架中其它槽的内容以及框架间的联系得到启发,提出进一步的要求,使问题的求解向前推进一步。如此重复进行这一过程,直到问题最终得到解决为止。 3.4.6 框架表示法的特点 框架表示法有以下特点: 1.结构性 框架表示法最突出的特点是它善于表达结构性的知识,能够把知识的内部结构关系及知识间的联系表示出来,因此它是一种经组织起来的结构化的知识表示方法。这一特点是产生式表示法所不具备的,产生式系统中的知识单位是产生式规则,这种知识单位由于太小而难于处理复杂问题,也不能把知识间的结构关系显式地表示出来。框架表示法的知识单位是框架,而框架是由槽组成的,槽又可分为若干侧面,这样就可把知识的内部结构显式地表示出来。另外,产生式规则只能表示事物间的因果关系,而框架表示法不仅可以通过Infer槽或Possible-Reason槽表示事物间的因果关系,还可以通过其它槽表示出事物间更复杂的联系。 另外,框架表示法与下一节将要讨论的语义网络表示法也有所不同,待下一节再作详细的分析。 2.继承性 在前面的讨论中已经看到,框架表示法通过使槽值为另一个框架的名字实现框架间的联 系,建立起表示复杂知识的框架网络。在框架网络中,下层框架可以继承上层框架的槽值,也可以进行补充和修改,这样不仅减少了知识的冗余,而且较好地保证了知识的一致性。 3.自然性 框架表示法体现了人们在观察事物时的思维活动,当遇到新事物时,通过从记忆中调用类似事物的框架,并将其中某些细节进行修改、补充,就形成了对新事物的认识,这与人们的认识活动是一致的。 框架表示法的主要不足之处是不善于表达过程性的知识。因此,它经常与产生式表示法结合起来使用,以取得互补的效果。 目前,人们对框架表示法已经做了相当多的研究及应用工作,主要有: (1)鲍勃夫(Bobow)研制了基于框架表示的知识表示语言KRL(Knowledge Representation Language)。 (2)克莱顿(B.D.Clayton)等人研制了基于框架、基于产生式规则、面向过程的通用型专家系统工具ART(Automated Reasonimz Tool)。 (3)美国Intellicorp公司研制了基于框架、基于产生式规则、面向过程、面向对象的通用专家系统工具KEE(Knowledge Engineering Environment)。 (4)斯梯菲克(Stefik)研制了用框架表示知识的多层规则系统。 (5)卡内基—梅隆大学研制了框架表示语言SRL(Schema Representation Language)。 (6)麻省理工学院人工智能实验室研制了框架表示语言FRL(Frame Representation Language)。 3.5 语义网络表示法 语义网络是奎廉(J.R.Quillian)于1968年在他的博士论文中作为人类联想记忆的一个显式心理学模型最先提出的。随后在他设计的可教式语言理解器TLC(Teachable Language Co- mprehenden)中用作知识表示,1972年西蒙将其用于自然语言理解系统。目前,语义网络已广泛地应用于人工智能的许多领域中,是一种表达能力强而且灵活的知识表示方法。 3.5.1 语义网络的概念 如前所述,产生式表示法主要用于描述事物间的因果关系,框架表示法主要用于描述事物的内部结构及事物间的类属关系。但是,客观世界中的事物是错综复杂的,相互间除了具有这些关系外,还存在着其它各种含义的联系。为了描述更复杂的概念、事物及其语义联系,引人了语义网络的概念。 语义网络是通过概念及其语义关系来表达知识的一种网络图。从图论的观点看,它其实就是一个“带标识的有向图”。其中,有向图的节点表示各种事物、概念、情况、属性、动作、状态等;弧表示各种语义联系,指明它所连接的节点间的某种语义关系。节点和弧都必须带有标识,以便区分各种不同对象以及对象间各种不同的语义联系。每个节点可以带有若干属性,一般用框架或元组表示。另外,节点还可以是一个语义子网络,形成一个多层次的嵌套结构。 一个最简单的语义网络是如下一个三元组: (节点1,弧,节点2) 它可用图3-6表示,称为一个基本网元。其中,A、B分别代表两个节点;RAB表示A与B间的某种语义联系。例如图3-7所示的语义网络就是一个基本网元。其中,在“猎狗”与“狗” SHAPE \* MERGEFORMAT 图3—6 基本网元 图3—7 猎狗与狗的语义网络 之间的语义联系“是一种”具体地指出了“猎狗”与“狗”的语义关系,即“猎狗”是“狗”中的一种,两者之间存在类属关系。这里,弧线的方向是有意义的,需要根据事物间的关系确定。例如在表示类属关系时,箭头所指的节点代表上层概念,而箭尾节点代表下层概念或者一个具体的事物。 当把多个基本网元用相应语义联系关联在一起时,就可得到一个语义网络,如图3—8所示。 下面给出语义网络的BNF描述: 图3—8 语义网络的结构 <语义网络>::=<基本网元>|Merge(<基本网元>,…) <基本网元>::=<节点><语义联系><节点> <节点>::=(<属性一值对>,…) <属性一值对>::=<属性名>:<属性值> <语义联系>::=<系统预定义的语义联系>|<用户自定义的语义联系> 其中,Merge(…)是一个合并过程,它把括弧中的所有基本网元关联在一起,即把相同的节点合并为一个,从而构成一个语义网络。例如,设有如图3—9所示的三个基本网元,经合并后得到图3—10所示的语义网络。 图3—10 合并后的语义网络 3.5.2 知识的语义网络表示 任何一种知识表示模式都应具有两种功能:一是能表达事实性的知识;另一是能表达有关事实间的联系,使之能从一些事实找到另一些有关的事实。这两种功能可以用两种不同的机制来实现,例如可以用一组谓词公式表达事实,然后再用一定形式的索引和分类来表达相关事实间的联系。但在语义网络中是用单一的机制来表示这两种功能的。 语义网络可以表示事实性的知识,亦可表示有关事实性知识之间的复杂联系,下面分别讨论。 1.用语义网络表示事实 前面我们已经用语义网络表示了“猎狗是一种狗”这一简单事实。如果我们还希望进一步指出“狗是一种动物”,并且分别指出它们所具有的属性,则只要在图3-7中增加一个节点和一条弧,并对每个节点附上相应的属性就可以了,如图3—11所示。 图3—11 狗的语义网络 图3—11中用短线与相应节点相连的部分是该节点所描述对象的属性。与框架表示法一样,语义网络也具有属性继承的特性,即下层概念可以继承上层概念的属性,这样就可在下层概念只列出它独有的属性。在图3—11中,虽然没有指出猎狗有尾巴、有毛、有生命、能运动、会吃的特征,但由于在它的上层概念“狗”及“动物”的描述中已指出了这些属性,因此由继承性可知“猎狗”也具有这些属性。另外,在语义网络中,下层概念还可对其上层概念的属性做进一步的细化、补充、变异,使之能更准确地反映该下层概念的特征。 如在图3—11中,“吃肉”、“跑得快”就分别是对“会吃”及“能运动”的细化,而“能狩猎”则是一个新的补充。关于属性的变异,在下面的例子中将会看到。 在一些稍微复杂一点的事实性知识中,经常会用到像“并且”及“或者”这 样的连接词。用谓词公式表示时,可用合取符号“∧”及析取符号“∨”分别把它们表示出来,语义网络中可通过增设合取 节点及析取节点来进行表示。只是在使用时应该注意其语义,不要出现不合理的组合情况,以致改变了本来的语义。例如对下述事实: 与会者有男、有女、有的年老、有的年轻 可用图3—12所示的语义网络表示。其中,A,B,C,D分别代表四种不同情况的与会者。 上述例子中的节点都是用来表示一个事物或者一个具体概念的。其实,节点还可以用来表示某一情况、某一事件或者某个动作。此时,节点可以有一组向外的弧,用于指出不同的情况,例如当用节点表示某一动作时,向外的弧可用来指出动作的主体及客体。设有如下事实: 张山给肖红一本书 可用图3—13所示的语义网络表示。 也可把“张山给肖红一本书”作为一个事件,并在语义网络中增设一个“事件”节点,如图3—14所示。 图3—14 带有事件节点的语义网络 再如,设有如下事实: ‘ “小信使”这只鸽子从春天到秋天占有一个窝 可用图3—15所示的语义网络表示。 图3—15中设立了一个“占有”节点,之所以要设立这个节点,是由于已知的事实中不仅指出了“小信使这只鸽子占有一个窝”,而且还指出了占有的时间。如果我们把“占有”作为一个关系用一条弧表示,即 用图3—16的语义网络表示,则 占有时间就无法表示出来。 在图3—15所示的语义网络中,由于增设了“占有”节点,通过由它向外引出的弧不仅指出了“占有”的物主,而且还指出了占有物以及占有的开始时间与结束时间。 2.用语义网络表示有关事实间的关系 图3—15 小信使的语义网络(1) 语义网络可以描述事物间多种复杂的语义关系,下面列出其中常用的几种。 (1)分类关系。分类关系是指事物间的类属关系,上面已经给出了这方面的例子,来看一个稍微复杂一些的例子,如图3—17所示。 下面再图3—16 小信使的语义网络(2) 图3—17 动物分类的语义网络 在图3—17中,下层概念节点除了可继承、细化、补充上层概念节点的属性外,还出现了变异的情况:鸟是鸵鸟的上层概念节点,其属性是“有羽毛”、“会飞”,但鸵鸟只是继承了“有羽毛”这一属性,把鸟的“会飞”变异为“不会飞”、“善奔走”。 (2)聚集关系。如果下层概念是其上层 概念的一个方面或者一个部分,则称它们的 关系是聚集关系。如图3—18所示的语义网 络就是一种聚集关系。 (3)推论关系。如果一个概念可由另 一个概念推出,则称它们之间存在推论关 系。图3—19所示的语义网络就是一个简单 的推论关系。 (4)时间、位置等关系。在描述一个事 物时,经常需要指出它发生的时间、位置等, 或者需要指出它的组成、形状,此时也可用相应的语义网络表示。例如,设有如下事实: 图3—18 聚集关系 胡途是思源公司的经理。 该公司位于朱雀大街上。 胡途今年35岁。 对这些事买可用图3—20所示的语义网络表示。 如果在思源公司有两个人的名字都叫胡途, 图3—19 推论关系 但一个是经理,另一个是他聘用的工作人员,年龄20岁。如何在同一个语义网络中区分他们并反映他们的关系呢?此时,为了区分这两个同名的人可增设两个节点: 胡--1及胡—2,分别代表当经理的胡途及受聘者胡途,其语义网络如图3-21所示。 图3—20 胡途的语义网络(1) 如果还希望指出受聘者胡途的受聘时间,只要把“胡—1”与“胡—2”之间的语义联系“受聘于”用图3—22代替就可以了。在图3—22中,为了把受聘者的受聘时间加入到图3—21所示的语义网络中,增设了一个“事件”节点,并且用语义联系“作用”具体地指出了该事件是一个什么事件。 图3—21 胡途的语义网络(2) 图3—22 聘用时间的语义网络 图3—23 用一个节点表示多元关系 (5)多元关系。在语义网络中,一条弧 只能从一个节点指向另一个节点,适用于表示一个二元关系。但在许多情况下需要用一种关系把几个事物联系起来。例如,对于如下事实: 郑州位于西安和北京之间 就需要用“……在……和……之间”这样一种关系把郑州、西安、北京联系在一起。为了在语义网络中描述多元关系,可以用节点来表示关系。例如对上例就可用图3—23所示的语义网络表示。 3.用语义网络表示比较复杂的知识 首先讨论如何把一些简单但存在某些联系的知识组织到——个语义网络中,然后再讨论如何应用网络分区技术表示语义上比较复杂的知识。 设有如下两个简单事实: 黎明的自行车是飞鸽牌,黑色,28型。 刘华的自行车是金狮牌,红色,26型。 用前面讨论的方法,很容易分别将它们的语义网络写出来,但需要写成两个网络,这就对知识的利用带来诸多不便。仔细分析上述事实就会发现,它们都是关于自行车的,因此只要把自行车作为一个通用概念用一个节点表示,而把黎明及刘华的自行车分别作为它的实例,就很容易用一个语义网络把它们表示出来,而且这样做以后,当要寻找有关自行车的信息时(例如要查找有哪些人有白行车,其车的特征是什么等),只要首先找到“自行车”这个节点就可以了。上述事实的语义网络如图3—24所示。 图3—24 自行车的语义网络 在图3—24中,除了表示上述两个事实外,还进一步指出了“自行车”是一种“交通工具”,并且用“人”指出了自行车所有者的身份。 用语义网络表示比较复杂的知识时,往往牵涉到对量化变量的处理。对于存在量词可以 直接用“是一个”,“是一种”等这样的语义联系来表示,但对全称量词则需要用网络分区技术才能实现。网络分区技术是亨德里克(G.G.Hendrix)在1975年提出的,其基本思想是:把一个表示复杂知识的命题划分为若干子命题,每一个子命题用一个较简单的语义网络表示,称为一个子空间,多个子空间构成一个大空间。每个子空间可以看作是大空间中的一个节点,称为超节点。空间可以逐层嵌套,子空间之间用弧互相连接。例如对如下事实: 每个学生都背诵了一首唐诗 可用图3—25所示的语义网络表示。 图3—25 具有全称量词的语义网络(1) 在图3—25中,s是全称变量,表示任一个学生;r是存在变量,表示某一次背诵;p也是存在变量,表示某一首唐诗;s,r,p及其语义联系构成一个子网,是一个子空间,表示对每一个学生s,都存在一个背诵事件r和一首唐诗p;节点g是这个子空间的代表,由弧F指出它所代表的子空间是什么及其具体形式;弧(指出s是一个全称变量,在此例中因为只有一个全称变量,所以只有一条(弧,若有多个全称变量,则有多少个全称变量就应该有多少条(弧;节点GS代表整个空间。 在这种表示法中,要求子空间中的所有非全称变量节点都是全称变量的函数,否则就应该放在子空间的外面。例如对于如下事实: 每个学生都背诵了“静夜思”这首唐诗 由于“静夜思”是一首具体的唐诗,不是全称变量的函数,所以应该把它放在子空间的外面,如图3—26所示。 在具体实现语义网络的表示时,一个节点的数据结构应 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 六种信息,即指向该节点的弧,该节点发出的弧,节点的名称,该节点的位置,节点的特性表及相关空间。一个弧的数据结构应记录五种信息,即弧的名 图3—26 具有全称量词的语义网络(2) 称,弧的起始节点,终止节点,弧的特性表及包含该弧的空间等。 3.5.3 常用的语义联系 语义联系反映了节点间的语义关系。鉴于语义关系的复杂性,所以语义联系也是多种多样的,可以根据需要定义,下面列出其中一些常用的语义联系,以便用时参考。 在上一节讨论框架中槽的设置时,已对ISA,AKO,Infer等作了讨论,它们同样可以用作语义网络的语义联系,这里不再讨论。 1.A.Member-of联系 它表示个体与集体(类或集合)之间的 关系,它们之间有属性继承性和属性更改 权。例如,对于“张山是工会会员”可用图 图3—27 A.Member-of联系 3—27所示的语义网络表示。 2.Gomposed-of联系 它表示“构成”联系,是一种一对多的联系,被它联系的节点间不具有属性继承性。例如,对于“整数由正整数、负整数及零组成”可用图3—28所示的语义网络表示。 3.Have联系 它表示属性或事物的“占有”关系。例 图3—28 Gomposed-of联系 如,对于“鸟有翅膀”可用图3—29所示的语义网络表示。 4.Bfore,After,At联系 它们是用来表示事件之间的时间先后关系的。其中,Befor表示一个事件在另一个事件之前发生;After表示一个事件在另一个事件之后发生;At表示某一事件发生的时间。例如,对于“唐朝在宋朝之前”可用图3—30所示的语义网络表示。 图3—29 Have联系 图3—30 Before联系 5.Locate-on(-at,-under,-inside,-outside等) 这些语义联系用来表示事物间的位置关系。例如,对于“书放在桌子上”可用图3—31所示的语义网络表示。 6.Similar-to,Near-to联系 这些语义联系表示事物间的相似和接近关系。例如,对于“猫与虎相似”可用图3—32所示的语义网络表示。 图3—31 Located-on联系 图3—32 Similar-to联系 3.5.4 语义网络系统中求解问题的基本过程 用语义网络表示知识的问题求解系统称为语义网络系统。该系统主要由两大部分组成: 一是由语义网络构成的知识库;另一是用于求解问题的解释程序,称为语义网络推理机。 在语义网络系统中,问题的求解一般是通过匹配实现的,其主要过程为: (1)根据待求解问题的要求构造一个网络片断,其中有些节点或弧的标识是空的,反映待求解的问题。 (2)依此网络片断到知识库中去寻找可匹配的网络,以找出所需要的信息。当然,这种匹配一般不是完全的,具有不确定性,因此需要解决不确定性匹配的问题。 (3)当问题的语义网络片断与知识库中的某语义网络片断匹配时,则与询问处匹配的事 实就是问题的解。 下面通过一个例子来说明这一过程。 设有如下事实: 赵云是一个学生。 他在东方大学主修计算机课程。 他人校的时间是1990年。 这些事实可用图3—33所示的语义网络表示出来并放入知识库中。 图3—33 赵云受教育情况的语义网络 在图3—33中,“教育-1”是指赵云所受的教育。 假设现在希望知道赵云主修的课程,根据这个问题可以构造一个语义网络片断,如图3—34所示。 图3—34 待求解问题的语义网络片断 用图3—34所示的语义网络片断与图3—33所示的语义网络进行匹配时,由Major弧所指的节点可知赵云的主修课程是计算机,这就得到了问题的答案。如果还希望知道赵云是什么时间入学的以及他在哪个学校学习等,只需在表示问题的语义网络片断中增加相应的空节点及弧就可以了。 在前面讨论语义网络的语义联系时曾经指出,可以用“推论(Infer)”联系指出两个概念间的推论关系,这亦可用来进行推理,但要求对知识库中的语义网络进行合理的组织。设有如图3—35所示的语义网络: 图3—35 关于艾靓的语义网络 从此语义网络中我们很难判定究竟是“艾靓因有西服而感到非常自豪”,还是“艾靓因有名牌西服而感到非常自豪”,按说应该是后者更合理些,但从该语义网络的结构中却分析不出来。如果利用前面讨论的网络分区的思想,把该语义网络分成两个区(Sl与S2),每个区分别表示一定的事实,即: S1: 艾靓有名牌西服。 S2: 艾靓感到非常自豪。 并且把每个区作为一个超节点用弧连接起来,那么它所表达的事实就非常清楚,且可在此基础上运用Infer进行推理。 3.5.5 语义网络表示法的特点 语义网络表示法主要有以下优点: 1.结构性 与框架表示法一样,语义网络表示法也是一种结构化的知识表示方法。它能把事物的属性以及事物间的各种语义联系显式地表示出来。下层概念节点可以继承、补充、变异上层概念的属性,从而实现信息的共享。但它与框架表示法又不完全相同,框架表示法适合于表达固定的、典型的概念、事件和行为,而语义网络表示法具有更大的灵活性,用其它表示方法能表达的知识几乎都可以用语义网络表示出来。如果我们把一种事物、概念或情况作为语义网络中的节点,并且用其语义联系表示这些节点间的宏观关系,那么每个节点的内部结构关系可用框架表示。 2.联想性 语义网络最初是作为人类联想记忆模型提出来的,其表示方法着重强调事物间的语义联系,由此就可把各节点间的联系以明确、简洁的方式表现出来,通过这些联系很容易找到与某一节点有关的信息。这样,不仅便于以联想的方式实现对系统的检索,使之具有记忆心理学中关于联想的特性,而且它所具有的这种自索引能力使之可以有效地避免搜索时所遇到的组合爆炸问题。 3.自然性 语义网络实际上是一个带有标识的有向图,可直观地把事物的属性及事物间的语义联系表示出来,便于理解,自然语言与语义网络之间的转换也比较容易实现。 语义网络表示法的主要缺点是: 1.非严格性 与谓词逻辑相比,语义网络没有公认的形式表示体系。一个给定的语义网络所表达的含义完全依赖于处理程序如何对它进行解释。在推理过程中,有时不能区分事物的“类”与“个体”,因此通过推理网络而实现的推理不能保证其正确性。另外,目前采用的表示量词的网络表示方法在逻辑上都是不充分的,不能保证不存在二义性。 2.处理上的复杂性 语义网络表示知识的手段是多种多样的,这虽对其表示带来了灵活性,但同时也由于表示形式的不一致使得对它的处理增加了复杂性。由于节点之间的联系可以是线性的也可以是非线性的,甚至是递归的,因而对相应知识的检索就相对复杂一些,要求对网络的搜索要有强有力的组织原则。 目前关于语义网络的研究仍在深入地进行。例如,什么是节点的真正含义?是否存在统 一的方式来表示一种思想?信念及时间如何表示?等等。 用语义网络表示知识的系统主要有: (1)沃克(Walker)研制的自然语言理解系统。 (2)卡鲍尼尔(Garbnell)研制的回答地理问题的教学系统。 (3)麦托普拉斯(Myt。pulos)研制的自然语言理解系统。 (4)西蒙研制的自然语言理解系统。 (5)海斯(Hays)研制的描写概念的系统。 3.6脚本表示法 脚本表示法是夏克(R.C.Schank)依据他的概念依赖理论提出的一种知识表示方法,时间约在1975年。脚本与框架类似,由一组槽组成,用来表示特定领域内一些事件的发生序列。 3.6.1 概念依赖理论 在人类的各种知识中,常识性知识是数量最大、涉及面最宽、关系最复杂的知识,很难把它们形式化地表示出来交给计算机处理。面对这一难题,夏克提出了概念依赖理论,其基本思想是:把人类生活中各类故事情节的基本概念抽取出来,构成一组原子概念,确定这些原子概念间的相互依赖关系,然后把所有故事情节都用这组原子概念及其依赖关系表示出来。 由于各人的经历不同,考虑问题的角度和方法不同,因此抽象出来的原子概念也不尽相同,但一些基本要求都是应该遵守的。例如原子概念不能有二义性,各原子概念应该互相独立等等。夏克在其研制的SAM(ScriptApplierMechanism)中对动作一类的概念进行了原子化,抽取了11种原子动作,并把它们作为槽来表示一些基本行为。这11种原子动作是: (1)PROPEL:表示对某一对象施加外力。例如推、拉、打等。 (2)GRASP:表示行为主体控制某一对象。例如抓起某件东西,扔掉某件东西等。 (3)MOVE:表示行为主体变换自己身体的某一部位。例如抬手、蹬脚、站起、坐下等。 (4)ATRANS:表示某种抽象关系的转移。例如当把某物交给另一人时,该物的所有关系就发生了转移。 (5)PTRANS:表示某一物理对象物理位置的改变。例如某人从一处走到另一处,其物理 位置发生了变化。 (6)ATTEND:表示用某个感觉器官获取信息。例如用眼睛查看或听某种声音等。 (7)INGEST:表示把某物放入体内。例如吃饭、喝水等。 (8)EXPEL:表示把某物排出体外。例如落泪、呕吐等。 (9)SPEAK:表示发出声音。例如唱歌、喊叫、说话等。 (10)MTRANS:表示信息的转移。例如看电视、窃听、交谈、读报等。 (11)MBUILD:表示由已有的信息形成新信息。 夏克利用这11种原子概念及其依赖关系把生活中的事件编制成脚本,每个脚本代表一类事件,并把事件的典型情节规范化。当接受一个故事时,就找出一个相应的脚本与之匹配,根据事先安排的脚本情节来理解故事。 3.6.2 脚本 脚本描述的是特定范围内原型事件的结构,一般由以下几部分组成: (1)进入条件: 指出脚本所描述的事件可能发生的先决条件,即事件发生的前提条件。 (2)角色: 描述事件中可能出现的人物。 (3)道具: 描述事件中可能出现的有关物体。 (4)场景: 描述事件序列,可以有多个场景。 (5)结局: 给出脚本所描述的事件发生以后必须满足的条件。 下面用夏克的“餐厅”脚本为例来说明如何用脚本来表示事件序列: 脚本: 餐厅 进入条件: 顾客饿了,需要进餐;顾客有钱。 角色: 顾客、服务员、厨师、老板。 道具: 食品、桌子、菜单、钱。 场景 第一场: 进入餐厅 PTRANS 顾客走进餐厅 ATTEND 顾客注视桌子 MBUILD 确定往哪儿坐 PTRANS 朝确定的桌子走去 MOVE 在桌旁坐下 第二场: 定菜 MTRANS 顾客招呼服务员 PTRANS 服务员朝顾客走来 MTRANS 顾客向服务员要菜单 PTRANS 服务员去拿菜单 PTRANS 服务员向顾客走来 ATRANS 服务员把菜单交给顾客 ATTEND 顾客看菜单 MBUILD 顾客选食品 MTRANS 顾客招呼服务员 PTRANS 服务员向顾客走来 MTRANS 顾客告诉服务员所要食品 PTRANS 服务员去找厨师 MTRANS 服务员告诉厨师所要食品 DO 厨师加工食品(通过调用“加工食品”的脚本实现) 第三场: 上菜进餐 ATRANS 厨师把食品交给服务员 PTRANS 服务员走向顾客 ATRANS 服务员把食品交给顾客 INGEST 顾客吃食晶 此时,若顾客还希望再要食品则转第二场,否则进入第四场。 第四场: 顾客离开 MTRANS 顾客告诉服务员要结帐 PTRANS 服务员向顾客走来 ATRANS 服务员把帐单交给顾客 ATRANS 顾客把饭钱及小费交给服务员 PTRANS 服务员向老板走去 ATRANS 服务员把钱交给老板 MOVE 老板招手送别顾客 FFRANS 顾客走向餐厅 结局: 顾客吃了饭;顾客花了钱;老板挣了钱;餐厅食品减少了。 由此例可以看出,脚本就像一个电影剧本一样,一场一场地表示一些特定事件的序列。一个脚本建立起来以后,如果该脚本适合于某一给定的事件,则通过脚本可以预测没有明显提及的事件的发生,并能给出已明确提到的事件之间的联系。例如,对于以下情节:“张三来到肯德基餐厅,要了一份家乡鸡,然后他就回家去了。”利用餐厅脚本可以回答“张三吃饭了吗?”、“张三有没有付钱?”等一类的问题。虽然上述情节中没有指出张三是否吃饭以及是否付钱,但根据餐厅脚本可知:“张三吃了饭”,“张三付了钱”。 脚本表示法与框架表示法相比,比较呆板,能力也有限。另外,人类日常的行为有各种各样,很难用一个脚本就理解各种各样的情节。目前脚本表示法主要在自然语言理解方面获得了一些应用。 3.7过程表示法 在人工智能的发展史中,关于知识的表示方法曾存在两种不同的观点。一种观点认为知 识主要是陈述性的,其表示方法应着重将其静态特性,即事物的属性以及事物间的关系表示出来,称以这种观点表示知识的方法为陈述式或说明性表示方法;另一种观点认为知识主要是过程性的,其表示方法应将知识及如何使用这些知识的控制性策略均表述为求解问题的过程,称以这种观点表示知识的方法为过程性表示方法,或过程表示法。 3.7.1 表示知识方法 说明性表示方法是一种静态表示知识的方法,其主要特征是把领域内的过程性知识与控 制性知识(即问题求解策略)分离开来。如在前面讨论的产生式系统中,规则库只是用来表示 并存储领域内的过程性知识,而把控制性知识隐含在控制系统中,两者是分离的。 过程性表示方法着重于对知识的利用,它把与问题有关的知识以及如何运用这些知识求 解问题的控制策略都表述为一个或多个求解问题的过程,每一个过程是一段程序,用于完成对一个具体事件或情况的处理。在问题求解过程中,当需要使用某个过程时就调用相应的程序并执行。在以这种方法表示知识的系统中,知识库是一组过程的集合,当需要对知识库进行增、删、改时,则相应地增加、删除及修改有关的过程。 例如,设有如下知识: 如果x与y是兄弟,且x是z的父亲, 则y是z的叔父。 若用说明性表示法表示这条知识,则可用产生式规则表示为: IF Brother(x,y) AND Father(x,z) THEN Uncle(y,z) 其中,Brother(x,y)表示x与y是兄弟;Father(x,z)表示x是z的父亲;Uncle(y,z)表示y是z的叔父。该产生式规则静态地描述了上面给出的知识,仅仅指出了Uncle(y,z)是 Brother(x,y)及Father(x,z)的逻辑结论,即当Brother(x,y)与Father(x,z)同时在综合数据库中有可匹配的已知事实时,控制系统可推出结论Uncle(y,z)。至于如何利用这些知识推出结论,那是控制系统的任务。该知识表示没有给出任何有关推理的控制性信息。但若用过程表示法表示上述知识,则就要把控制性知识融于对知识的表示中。过程表示法有多种表示形式,下面用过程规则来表示上述知识: BR(Uncle ? y ?z) GOAL(Brother ? x y) GOAL(Father x z) INSERT(Uncle y z) RETURN 其中,BR是后向推理的标志,关于推理方向将在下一章讨论;GOAL表示求解子目标,即进行过程调用;INSERT表示对数据库实施插入操作;RETURN表示该过程规则结束,每一冬过程规则都需以RETURN作为结束标志,当其它过程调用该过程规则时,一旦执行到RETURN就将把控制权返回到调用它的过程规则那里去;带“?”的变量表示其值将在该过程中求得。 上述过程规则的含义是:按后向推理方式进行推理,为了求解(Uncle ?y ?z),首先应通过过程调用求解(Brother ?x y)得到x的值,然后将得到的x值传递给(Father x z)并求解它,如果这些操作都成功,就将(Uncle y z)插入到数据库中,并将控制权返回给调用者。 一般来说,一个过程规则包括激发条件、演绎操作、 图3—36过程规则的结构 状态转换及返回四个部分,其结构如图3—36所示。 1.激发条件 激发条件由两部分组成,即推理方向与调用模式。推理方向指出其推理是前向推理(FR)还是后向推理(BR)。若为前向推理,则只有当数据库中有已知事实可与其“调用模式”匹配时,该过程规则才能被激活;若为后向推理,则只有当“调用模式”与查询目标或子目标匹配时才能将该过程规则激活。 2.演绎操作 演绎操作由一系列的子目标构成,当上面的激发条件被满足时,将执行这里列出的演绎操作,如上例中的GOAL(Brother ? x y)及GOAL(Father x z)。 3.状态转换 状态转换操作用于对数据库进行增、删、改,分别用INSERT,DELETE及MODIFY语句实现。 4.返回 过程规则的最后一个语句是RETURN,用于指出将控制权返回到调用该过程规则的上级过程规则那里去。 在用过程规则表示知识的系统中,问题求解的基本过程是:每当有一个新的目标时,就从可用的过程规则中选择一个(设为R),并执行该过程规则R。在R的执行过程中可能又将产生新的目标,此时就调用相应的过程规则并执行它。反复进行这一过程,直到执行到RETURN语句,这时就将控制权返回给调用当前过程规则的上级过程规则(设为R/),对R/也做同样处理,并按调用时的相反次序逐级返回。在这一过程中,如果某过程规则运行失败,就选择另一个同层的可用过程规则执行,如果不存在这样的过程规则,则返回失败标志并将执行的控制权移交给上级过程规则。 下面用上面给出的例子来说明求解问题的过程。 设数据库中有以下已知事实: (Brother 刘 海 刘 洋) (Father 刘 海 刘小海) 其中,第一个事实表示刘海与刘洋是兄弟;第二个事实表示刘海是刘小海的父亲。 假设需要求解的问题是:找出两个人u及v, 其中u是v的叔父。该问题可表示为: GOAL(Uncle ?u ?v) 求解该问题的过程是: (1)在过程规则库中找出对于问题GOAL(Uncle ?u ?v)其激发条件可被满足的过程规则。显然BR(Uncle ?y ?z)经如下变量代换: u/y, v/z 后可以匹配,所以选用该过程规则。 (2)执行该过程规则中的第一个语句GOAL(Brother ?x y)。此时,其中的y已被u代换。经与已知事实(Brother 刘海 刘洋)匹配,分别求得了变量x及u的值,即 x=刘海, u=刘洋 (3)执行该过程规则中的第二个语句GOAL(Father x z)。此时x的值已经知道,z已被v代换。经与已知事实(Father 刘海 刘小海)匹配,求得了变量v的值: v=刘小海 (4)执行该过程规则中的第四个语句Insert(Uncle y z)。此时y与z的值均已知道, 分别是刘洋及刘小海,所以这时插人数据库的事实是: (Uncle 刘洋 刘小海) 这就表明“刘洋是刘小海的叔父”,求得了问题的解。上述求解问题的过程如图3—37所示。 图3—37 查找叔侄两人的名字 图3—37中,双线箭头表示匹配;虚线表示返回值,“Y”表示成功,“N”表示失败。 由上面的例子可以看出,过程表示法与传统的过程程序设计是不一样的,其区别主要有: (1)传统的过程调用一般采用参数传递,而过程规则的调用采用的是模式匹配。 (2)传统的过程调用是确定的,即只有一个过程响应调用,而过程规则调用时与目标匹配的过程规则可有多个。 3.7.2 过程表示法的特点 过程表示法有如下优点: 1.效率较高 过程表示法是用过程表示知识的,而过程是一段程序,由于程序能准确地表明先做什么, 后做什么以及怎样做,用户可直接将一些启发式的控制性知识嵌入到过程中,因此可以避免选择及匹配那些无关的知识,也不需要跟踪那些不必要的路径,从而提高了系统的运行效率。 2.控制系统容易设计 由于控制性知识已融入过程中,因而控制系统就比较容易设计,它仅起着解释过程规则的作用。 过程表示法的主要不足之处是不易修改及添加新的知识,而且当对某一过程进行修改时,有可能影响到其它过程,对系统的维护带来诸多不便。 目前的发展趋势是探讨说明性与过程性相结合的知识表示方法,以便在可维护性、可理解性以及运行效率方面寻求一种比较合理的解决方法。 用过程表示法实现的系统主要有: (1)拉菲尔(Raphael)研制的语义信息重现系统SIR(Semanic lnformationRetriever)。在该系统中,知识有两种表示方式:一种是事实,表示所研究的对象,用节点的连接形式表示;另 一种是推理规则,用过程表示。 (2)伍德(Woods)研制的航班系统。在该系统中,问题首先被翻译成函数,然后通过调用 过程对数据库进行查询,从而得到答案。 3.8 Peth网表示法 Petri网的概念是德国学者Cah Abam Petri在1962年首先提出的,用于构造系统模型及 进行动态特性分析,后来逐渐被用作表示知识的方法。 3.8.1 表示知识方法 在Petri网表示法中,对于不同的应用,网的构成及构成元素的意义均不相同,但有三种元素是基本的,它们是:位置、转换及标记。这三种元素间的关系可用图3—38所示的有向图表示。 图中p1与pk分别代表第j个和第k个位置;yj与yk 分别是这两个位置的标记,ti是某个转换。 如果用pj和pk分别对应于产生式规则的前提dj和结论dk,用ti代表规则强度(i,则图3—38所示的Petri网 就与如下产生式规则有相同的含义: IF dj THEN dk (CF=(i ) 图3—38 Petri网 对于比较复杂的知识,Petri网通常用一个八元组来表示知识间的因果关系,具体形式是: (P,T,D,J,O,f,(,β) 其中:P是位置的有限集,记为P={p1,p2,…,pn}; T是转换的有限集,记为T={t1,t2,…,tn}; D是命题的有限集,记为D ={d1,d2,…,dn}; I为输入函数,表示从位置到转换的映射; O为输出函数,表示从转换到位置的映射; f为相关函数,表示从转换到0~1间一个实数的映射,用来表示规则强度; (为相关函数,表示从转换到0~1间一个实数的映射,用来表示位置对应命题的可信度; β为相关函数,表示从位置到命题的映射,用于表示位置所对应的命题。 在上述中,用到了“规则强度”及“可信度”的概念,这是用来表示不确定性知识的。关于不确性知识的表示与处理将在第5章讨论,这里先作一简单说明。对知识的不确定性有多种表示方法,“可信度”是其中的一种,它用来指出对知识为真的相信程度,通常用[0,1]上的一个实数表示,值越大表示相信为真的程度越高。对于一个产生式规则,其可信度称为规则强度。 下面用例子说明Petri网的表示方法。 设有如下产生式规则: IF dj THEN dk (CF=(i) 若dj的可信度为0.8,规则强度(i =0.9,则Petri网中各元素的内容分别是: 再如对于如下产生式规则集: r1: IF dl THEN d2 (CF=0.85) r2: IF d2 THEN d3 (CF=0.8) r3: IF d2 THEN d4 (CF=0.8) r4: IF d4 THEN d5 (CF=0.9) r5: IF d1 THEN d6 (CF=0.9) r6: IF d6 THEN d9 (CF=0.93) r7: IF d1 AND d8 THEN d7 (CF=0.9) r8: IF d7 THEN d4 (CF=0.9) 则其Petri表示如图3-39所示。 3.8.2 Petri网表示法的特点 Petri网表示法有如下特点: (1)便于描述系统状态的变化及对系统特 性进行分析。 (2)可以在不同层次上变换描述,而不必注意细节及相应的物理表示,这样就可把注意力集中到某一个层次的研究上。 图3—39 规则集的Petri网 3.9 面向对象表示法 自1980年施乐(Xerox)公司在SMALLTALK-72,SMALLTALK-74,SMALLTALK-76的基础上推出面向对象语言SMALLTALK-80及其环境以来,关于面向对象技术的研究已经取得了长足的进步,并引起了计算机界的普遍关注。目前,面向对象技术的研究已经涉足于计算机软、硬件的多个领域,如面向对象程序设计方法学、面向对象数据库、面向对象操作系统、面向对象软件开发环境、面向对象硬件支持等等,成为计算机技术不可分割的一部分,取得了丰硕的研究成果。在面向对象语言的研制开发方面,自SMALLTALK-80之后,各种不同风格、不同用途的面向对象语言更如雨后春笋般地相继问世,如AT&T公司贝尔实验室在1985年研制开发的C++,荷兰阿姆斯特丹大学开发的P(X)L,施乐公司开发的LOOPS及CommonLOOPS等等。 近些年来,人们开始探讨把面向对象的思想、方法用于智能系统的设计与构造,并在知识表示、知识库的组成与管理、专家系统的系统设计等方面取得了一定的进展。本节我们将首先讨论面向对象的基本概念,然后再对应用面向对象技术表示知识的方法进行初步的探讨。 3.9.1 面向对象的基本概念 对象、类、封装、继承是面向对象技术中的基本概念,对于理解面向对象的思想及方法有重要作用。但是,由于目前对它的研究还缺乏坚实的理论基础,尚未形成严格的形式化定义,因此对于什么是对象?面向对象的含义是什么?怎样才称之为面向对象设计?怎样的语言才是面向对象语言?等也都未形成统一的认识,存在着各种不同的解释。这里,我们不打算对这些问题作深入的讨论,只是从不同侧面简单说明上面提出的四个基本概念,以便为后面讨论知识表示方法打下基础。 1.对象 从广义上讲,所谓“对象”是指客观世界中的任何事物,即任何事物都可以在一定前提下成为被认识的对象,它既可以是一个具体的简单事物,也可以是由多个简单事物组合而成的复杂事物。从这个意义上讲,整个世界也可被认为是一个最复杂的对象。 从问题求解的角度来讲,对象是与问题领域有关的客观事物。由于客观事物都具有其自然属性及行为,因此当把与问题有关的属性及行为抽取出来加以研究时,相应客观事物就在这些属性及行为的背景下成为所关心的对象。 从对象的实现机制来讲,对象是一台自动机,它有一个名字,有一组数据和一组操作,不同对象间的相互作用通过互传消息实现,如图3-40所示。 其中,数据表示对象的状态;操作分为两类,一类用于对数据进行操作,改变对象的状态,另一类用于产生输出结果。对一个对象来说,其它对象的操作不能直接操纵该对象私有的数据,只有对象私有的操作可以操纵它,即对象的状态只能由 图3—40 对象的自动机表示 它私有的操作可以改变它。在Smalltalk中,把操作称为方法。 由对象的自动机表示可以看出,对象是一个具有局部状态和一个操作集合的实体,而且数据与操作是不可分的。 2.类 类在概念上是一种抽象机制,它是对一组相似对象的抽象。具体地说就是,在诸多对象中可能有一些具有相同的特征(如具有部分相同的数据,允许同样的操作),为了避免数据及操作的重复描述及存储,就把共同的部分抽取出来构成一个类。类也是一个对象,只是它的数据及操作是该类中各具体对象共同的那部分。例如,办公桌、课桌,……都是具体对象,但它们有共同属性,于是可以把它们抽象为“桌子”,桌子是一个类对象。各个类还可以进一步进行抽象,形成超类。例如,对桌子,椅子,……可以形成超类“家具”。这样,超类、类、具体对象就形成了一个层次结构。其实该结构还可以包含更多的层次,在此结构中,层次越高越抽象,越低越具体。 3.封装 前已述及,一个对象的状态只能由它的私有操作来改变它,其它对象的操作不能直接改变它的状态。当一个对象需要改变另一个对象的状态时,它只能向该对象发送消息,该对象接受消息后就根据消息的模式找出相应的操作,并执行操作改变自己的状态。这里,发送消息与通常所说的过程调用的意义是不同的,发送消息只是触发自动机,同样的输人参数可因自动机的状态不同得到不同的结果,而过程调用时只要输入的参数相同必然得到相同的结果。其次,在过程调用中,过程是一个独立的实体,显式地为它的使用者所见,而在面向对象中,操作是隶属于对象的,它不是独立存在的实体,只是对象的功能体现。 像这样把一切局部于对象的信息及操作都局限于对象之内,在外面是不可见的,对象之间除了互递消息之外,不再有其它联系,这就是所谓“封装”的概念。 封装是一种信息隐藏技术,是面向对象的主要特征,面向对象的许多优点都是靠这一手段而获得的,它使得对象的用户可以不了解对象行为实现的细节,只需用消息来访问对象,这样就可把精力用于系统一级的设计与构成上。 4.继承 在由超类、子类以及具体对象所形成的层次结构中,父类所具有的数据和操作可被子类继承,除非在子类对相应数据及操作重新进行了定义,这称为对象类之间的继承关系。面向对象的继承关系与框架表示法中框架间属性的继承关系类似,都避免了信息的冗余。 以上简单地阐述了面向对象的四个基本概念,由此可以看出面向对象的基本特征: 1.模块性 一个对象是可以独立存在的实体,其内部状态不直接受到外界的影响,能够较为自由地为各个不同的软件系统使用。 2.继承性 子类可继承直接超类的数据及操作,这样每个子类的数据就一般地分为两部分,一部分是从父类那里继承过来的共享数据,另一部分是本类中的私有数据。 3,封装性 对象是封装的数据及操作。每个对象将自己的功能实现细节封装起来,使得用户不必知 道其内部细节就可使用它,从而加快了软件开发的速度。 4.多态性 所谓多态是指一个名字可以有多种语义,可作多种解释。例如,运算符“+”、“—”、“*”、 ‘/’既可做整数四则运算,也可做实数四则运算,但它们的执行代码却全然不同。在面向对象系统中,对象封装了操作,恰恰是利用了重名操作,让各对象自己去根据实际情况执行,不会引起混乱。 5.易维护性 对象实现了抽象和封装,这就使错误具有局部性,不会传播,便于检测和修改。 6.便于进行增量设计 在面向对象的程序设计中,把程序看作是可互通消息的对象集合。程序设计就是定义对象并建立对象间的通信关系,类是系统的基本构件,系统的功能需求变化通常不会波及这些对象类的设计与实现,只会影响到它们的组装形式。这就不仅使得基本构件有较好的可重用性,而且便于对系统进行增量型设计。 3.9.2 表示知识方法 在面向对象方法中,类、子类、具体对象(又称为类的实例)构成了一个层次结构,而且子类可以继承父类的数据及操作。这种层次结构及继承机制直接支持了分类知识的表示,而且其表示方法与框架表示法有许多相似之处,知识可按类以一定层次形式进行组织,类之间通过链实现联系。 正如用框架表示知识时需要描述框架结构一样,用面向对象方法表示知识时也需要对类 进行描述,下面给出一种描述形式: Class <类名> [:<超类名>] [<类变量表>] Structure <对象的静态结构描述> Method <关于对象的操作定义> Restraint <限制条件> END 其中,Class是类描述的开始标志;<类名>是该类的名字,它是系统中该类的唯一标识;<超类名>是任选的,当该类有父类时,用它指出父类的名字;<类变量表>是一组变量名构成的序列,该类中所有对象都共享这些变量,对该类对象来说它们是全局变量,当把这些变量实例化为一组具体的值时,就得到了该类中的一个具体对象,即一个实例;Structure后面的<对象的静态结构描述>用于描述该类对象的构成方式;Method后面的<关于对象的操作定义>用于定义对类元素可施行的各种操作,它既可以是一组规则,也可以是为实现相应操作所需执行的一段程序,在C++中则为成员函数调用;Restraint后面的<限制条件>指出该类元素所应满足的限制条件,可用包含类变量的谓词构成,当它不出现时表示没有限制。 在具体实现时,上述描述形式可依所用的语言不同而有不同的具体形式。例如在C++ 语言中可用CLASS对类进行描述。 本章小结 1.本章讨论了知识及知识表示的概念,并给出了八种表示知识的具体方法。 2.知识是有关信息关联在一起形成的信息结构,具有相对正确性、不确定性、可表示性及可利用性等特性。对知识从不同角度进行划分,可得到多种不同的分类方法,其中与今后讨论直接相关的是“事实性知识”、“过程性知识”、“控制性知识”、以及“确定性知识”、“不确定性知识”等概念。 3.知识表示方法分为两大类,即符号表示法与连接机制表示法。本章仅仅讨论了符号表示法,在此前提下,所谓知识表示实际上就是知识的符号化过程,把知识用计算机可接受的符号并以某种结构形式描述出来,不同的结构形式形成了不同的表示方法,如产生式规则、框架、语义网络等。 4.对同一知识可选用不同的表示方法(又称知识表示模式)进行表示,问题是如何根据领域知识的特点选择一种最合适的方法将知识充分表达出来。例如对于具有因果关系的知识,尽管用框架或语义网络也可表示,但却不如用产生式规则表示更直观、自然,而且运行效率也不一样。 5.知识表示还可分为外部表示与内部表示两种形式。所谓外部形式是指本章中所讨论的各种知识表示模式,如产生式规则、框架等;所谓内部形式是指把以某种表示模式表示的知识转换成计算机语言的编码形式并结合到程序中。知识的内部编码与所选用的知识表示模式有关,亦与所采用的计算机语言及系统的开发目标有关。例如,当用产生式规则作为知识的表示模式时,分别用PROLCC语言、C语言或其它语言实现所对应的内部形式都不一样,而且即使是用同一种计算机语言,也会有不同的构造形式。因此,在建造一个知识系统时,除了首先要根据领域知识的特点选择或设计相应的知识表示模式外,还要根据所选用的计算机语言的功能及系统的设计目标,确定知识的内部表示形式。由于本书不是针对某一计算机语言的,所以关于知识的内部表示不便作进一步的讨论。 6.本章共讨论了八种知识表示方法,每种方法都有各自的长处及不足,分别适用于不同的情况,这在前面的各节中已分别作了讨论与分析,这里不再重复。下面着重从总体上讨论知识表示中存在的一些问题。 7.目前已有的各种知识表示方法大都是有关学者在结合具体应用时提出来的,后来虽经多次的修正与完善,但仍偏重于实际应用,缺乏严格的知识表示理论,尚未形成规范。 8.已有的知识表示方法都是面向领域知识的,关于常识性知识的表示方法,是目前一个亟待解决的困难问题。 9.知识表示与知识利用是密切相关的两个方面,把知识表示出来是为了利用这些知识求解问题,如何在“表示”中对“利用”提供更多的支持,即如何使其表示更有利于对知识的利用是一个需要进一步探讨的问题。 10.目前的表示模式大多是某一种数据结构,但现实世界中的知识并非都可用某种数据结构表示出来的。例如全息图可用于处理信息,但却不是一种数据结构。因此需要从更广泛的意义上考虑表示问题。 11.知识表示与系统的运行效率密切相关,与知识获取及知识库的组织有紧密的关系,如何表示才有利于知识的获取、知识库的更新以及提高系统的运行效率是需要进一步研究的课题。 12.对于不确定、不完全知识的表示,我们将在第5章给出一些表示方法,但这些方法远远不能满足实际需要,还需要做大量的研究工作。 习 题 3.1 什么是知识?它有哪些特性?有哪几种分类方法? 3.2 何谓知识表示?符号表示法与连接机制表示法的区别是什么?说明性表示法与过程性表示法的区别是什么? 3.3 海叶斯—罗斯(F.Heyes-Roth)曾经提出用三维空 间来描述知识,如图3—41所示,若把每一维作为一种分类方法,请按图所示对知识进行分类。 3.4 在选择知识表示模式时,应该考虑哪些主要因 素? 3.5 一阶谓词逻辑表示法适合于表示哪种类型的知 识?它有哪些特点? 3.6 设有下列语句,请用相应的谓词公式把它们表示 出来: 图3—41 知识的三维空间表示 (1)有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花。 (2)他每天下午都去打蓝球。 (3)西安市的夏天既干燥又炎热。 (4)并不是每一个人都喜欢吃臭豆腐。 (5)喜欢读《三国演义》的人必读《水浒》。 (6)欲穷千里目,更上一层楼。 3.7 房内有一只猴子、一个箱子,天花板上挂了一串香蕉,其位置关系如图3—42所示,猴子为了拿到香蕉,它必须把箱子推到香蕉下面,然后再爬到箱子上。请定义必要的谓词,写出问题的初始状态(即图3—42所示的状态)、目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置b)。 3.8 产生式的基本形式是什么?它与谓词逻辑中的蕴含式有什么共同处及不同处? 3.9 何谓产生式系统?它由哪几部分组成? 图3—42 猴子摘香蕉问题 3.10 试述产生式系统求解问题的一般步骤。 3.11 何谓可交换的产生式系统?何谓可分解的产生式系统?何谓可恢复的产生式系统? 3.12 产生式表示法的特点是什么?为什么说它是一种用得最多的知识表示方法? 3.13 设有如下问题: (1)在一个3×3的方框内放有8个编号的小方块; (2)紧邻空位的小方块可以移入到空位上; (3)通过平移小方块可将某一布局(如图3—43所示)变换为另一布局。 请用产生式规则表示移动小方块的操作。 图3—43 习题13的图 3.14 设有如下问题: (1)有五个相互可直达且距离已知的城市A,B, C,D,E,如图3—44所示; (2)某人从A地出发,去其它四城市各参观一次后回到A; (3)找一条最短的旅行路线。 请用产生式规则表示旅行过程。 3.15 何谓框架?框架的一般表示形式是什么? 3.16 框架系统中求解问题的一般过程是什么? 3.17 试述框架表示法的特点。 3.18 试写出“学生框架”的描述。 3.19 何谓语义网络?它与框架表示法及产生式表示法的区别是什么? 3.20 请对下列命题分别写出它的语义网络: (1)每个学生都有一支笔。 (2)钱老师从6月至8月给会计班讲《市场经济学》课程。 (3)雪地上留下一串串脚印,有的大,有的小,有的深,有的浅。 (4)张三是大发电脑公司的经理,他35岁,住在飞天胡同68号。 (5)甲队与乙队进行蓝球比赛,最后以89:102的比分结束。 3,21 请把下列命题用一个语义网络表示出来: (1)树和草都是植物; (2)树和草都是有根有叶的; (3)水草是草,且长在水中; (4)果树是树,且会结果; (5)苹果树是果树中的一种,它结苹果。 3.22 试述语义网络系统中求解问题的一般过程。 3.23 试述语义网络表示法的特点。 3.24 何谓知识的过程表示?它与说明性表示法有什么区别? 3.25 请写出如下产生式规则集的Petri网: r1: IF d1 THEN d2 (CF=0.8) r2: IF d1 AND d3 THEN d4 (CF=0.7) r3: IF d2 AND d4 THEN d5 (CF=0.9) 3.26 何谓对象?何谓类?封装及继承的含义是什么? 3.27 面向对象的基本特征是什么? 3.28 如何用面向对象方法表示知识? 是一种 RAB B A 狗 猎狗 RDA B A C F D G E H RCA RFC RFD RDB REB RHE RGE RGD
本文档为【第3章知识与知识表示】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_467946
暂无简介~
格式:doc
大小:515KB
软件:Word
页数:50
分类:互联网
上传时间:2018-09-08
浏览量:40