第三讲 框架.doc_第1页
第三讲 框架.doc_第2页
第三讲 框架.doc_第3页
第三讲 框架.doc_第4页
第三讲 框架.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 框架结构 3.1事物的属性我们对某一事物的了解,表现在我们对于该事物方方面面的了解,即对该事物所有属性的了解。掌握了某一事物的所有属性,也就有了关于该事物的知识。因此,许多知识表示是从属性的描述开始的。最简单的属性表示法 ,称之为属性表表示法:就是把同一事物各方面的属性列成一张称之为属性表的表。下面是化学元素铁的属性表:事物名:铁 类别:化学元素 颜色:银白 比重:7.86 熔点:1535 沸点:2750 能否导电:能 化学性质:活泼 周期表位置:第4周期第8族 地壳含量:5% 原子量:55.847 在这张属性表中,左面一列是属性名,右面一列是相应的属性值。一般来说,在不同的事物之间,不仅所包含的属性是不一样的,而且即便是某一(或某些)属性相同但其属性值也不见得一样。由于世界上的事物千差万别,属性的门类可以非常之多。例如,下面是又一张属性表: 事物名:新康德主义 类别:哲学理论 阶级性:资产阶级 出现时间:19世纪后半期 流行地区:德国、意大利、俄国 代表人物:李普曼、朗格、黑尔姆霍茨 主要主张:否认“自在之物”的存在 前身:康德主义 显然,这两个事物的属性有极大的不同,在铁的属性中决不可能有阶级性这一条,而在新康德主义的属性中也决不可能有原子量这一条。1). 某些属性是否存在以至于它的值的大小取决于另一些属性(在上面的例子中决定于“类别”属性),这叫做属性之间的依赖关系。2). 有时,一些属性的值甚至可直接从另一些属性的值计算出来,例如化合物的分子量可以直接从它的分子式以及组成该分子的诸原子的原子量计算出来。3). 各类事物的属性总数之大,以及每个事物的属性数相对地少这一情况,是知识库不同于通常数据库的一个重要方面。4). 对具有相同一些属性的某类事物,可以把这批属性确定下来构成属性框架,只要往此框架内对诸属性赋以不同的值,就得到了对该类事物中不同个体的描述。例如: 元素名铁铝镁铜原子量55.84726.98224.30563.546颜色银白银白银白紫红熔点1535660.4648.81083沸点2750246710902582 属性的这种表示形式我们很熟悉,与数据库中的“关系”很相似。实际上,如果把它看作一个矩阵A,则只需作一转置,所得的新矩阵 R = A 就是一个关系。 关系不仅是对具有相同属性不同属性值的同一类事物的描述,而且也使我们对于属性表的认识达到了一种新的观点, 即事物本身和它的属性不加区分的观点,或者说,把事物本身也作为一种属性。 例如,对于上面的关系,如果我们要问铝的沸点是什么,可以提这样的问题: 元素(铝,, x)?两个逗号中的空白表示我们对此变元之值没有兴趣,而变量x中存放我们要查询的值,即铝的沸点。从这个问题看来,沸点是铝的一个属性。但是,我们也可以反过来问:沸点为2467的元素是什么?这时问题可以这样提: 元素(x,, 2467)?在这个问题里,沸点成了事物,而铝变成属性了。更有甚者,我们还可提这样的问题: 元素( , 63.546, , x , )?即原子量为63.546的元素的熔点是什么? 可见,事物和属性之间的区别不是绝对的,这是我们在用属性表示知识时必须注意的一个重要观点。在数据库组织的层次模型中,我们可从另一个角度来观察事物和属性之间无绝对界线这一现象。如,下面是一辆坦克的属性表: 型号:T72 车号:30084 装甲:复合型 火炮:滑膛炮 车高:2.19米属性表的右面一列全是属性值。其中有的属性本身可作为事物而进一步加以描述。比如T72坦克的装甲的属性表:装甲类型:复合型厚度:204 mm外形:弧形水平倾角:22 这样,一个对象即具有双重性质:在高一级的属性表中,它是一个属性,在低一级的属性表中,它又是被描述的事物。在低一级的属性表中,又可有某些属性被看作事物而拥有自己的属性表,从而形成层次式的嵌套结构,理论上层次数可以任意大。从数据结构的观点看,它是一棵树。 3.2 框架 上节我们讨论了表示事物属性的各方面。这些不同的表示技巧,集大成于一种叫做框架的知识表示方法当中。 框架是Minsky在1975年提出的一个概念,当用它来表示有关事物的知识时,不仅可以表示出事物各方面的属性,而且可以表示出事物之间的类属关系,事物的特征和变异等等,在识别、分析、预测事物及其行为方面有很大用处。 框架的基本思想是这样的:世上各类事物的状态、属性、发展过程和相互关系往往有一定的规律性,俗称“套套”。我们可以把各个领域、各类事物的“套套”事先总结出来,存于数据库中。当我们要认识一个新的事物时,我们可根据对这个新事物的初步印象(此时可能只有很片面的印象),从数据库里取出一个与它最相近的“套套”来,实行“自顶向下”的匹配,如果匹配成功,则“套套”中存放的属性就可向我们提供有关此新事物的知识,如果匹配不成,则寻找原因,重新自数据库中取一个更能与新事物匹配的“套套”,或者修改刚才那个匹配得不太成功的套套,直到最后求得一个令人满意的解答为止。 这种现实世界的框架例子并不少见。聊斋上有个著名的胭脂故事,开始时邑宰(县官)判错了案,就是因为他头脑里有个破案的框架,这个框架的样子大概是这样的:框架名: tx未遂杀人案 犯罪意图: x犯罪结果: 杀人被杀者: y杀人动机: x未遂被y发现知情人: zi | i I 罪犯: t条件一: 若x为强奸则t必须是男性条件二: 有某个 zi 指控t条件三: t招认隼sn邑宰用此框架去套胭脂一案,结果得到了该框架的一个实例(变元x,y,t 均用实际的值代入)。框架实例:鄂秋隼强奸未遂杀人案犯罪意图:强奸犯罪结果:杀人被杀者: 卞牛医杀人动机:强奸未遂被卞牛医发现知情人: 卞妻,胭脂罪犯: 鄂秋隼条件一: 鄂秋隼为男性,成立条件二: 胭脂指控鄂秋隼,成立条件三: 鄂秋隼招认,成立 欲自顶向下(搜索),则如何选择“顶”?是关键!顶层框架选错则可能导致错误的推理结果。在这个框架实例中,原来是变元而代入了实际值的地方都加了下划线。 注意,这些变元的值并不是随便代入的。邑宰根据胭脂的哭诉觉得此案很象是强奸未遂杀人,于是调用本框架(tx未遂杀人案)。被杀者卞牛医和知情人卞妻、胭脂是客观现实,可以立即填入。犯罪意图、罪犯和杀人动机则根据苦主告状作试验性填入,待到三个条件验证成立后,上述试验性填入就被确认为合法而被接受了。L4L9L7L3L1L5 B L6L2ACL8现实生活中的框架自然比这个例子要复杂得多。可是,对于某些特定的不是非常复杂的环境,例如机器人识别积木世界,则框架的办法还是很有效的。例如,当机器人从斜上方观察一块方形积木时,呈现在他面前的可能是如下一个图形: 把这个图形用框架描述得到:框架:积木上方斜视图物体:立方体视角:斜俯视视状:六角形上 面:面A斜视图(L1,L2,L3,L4)下左面:面B斜视图(L5,L4,L6,L8) 下右面:面C斜视图(L3,L7,L9,L6)边:L1,L2,L3,L4,L5,L6,L7,L8,L9姿态:平卧负载面:A接地面:B,C 框架:面X斜视图(y1 ,y2 ,y3 ,y4 )物体:正方平面视角:斜俯视(或斜侧俯视)视状:平行四边形 左上边:y1 右上边:y2 左下边:y3 右下边:y4 姿态:平卧(或直立)能载物:是(或否)接地:否(或是)这里有两个框架,每个框架都有一些属性,有些属性值是确定的,有些属性值是不确定的,要待变成实例时才代入确定的值。有些属性本身是子框架,第二个框架就是第一个框架的子框架,分别在第一个框架的上面,下左面和下右面三个属性处被调用。 框架可以带参数,第二个框架有五个参数,其中X是积木面的名字,y1,y2,y3和y4是(按顺时针方向排列的)该面的四条边。框架被调用时其参数要用实际的值代入,不同的参数值生成不同的框架实例。上面的子框架分别在三个调用处生成A,B,C三个面的斜视图实例。 属性的值要满足一定的条件。有些条件已隐含在其中,如子框架的后面四个参数分别是它的四条边。主框架中各子框架调用的实在参数必须在子框架中名叫“边”的属性值中出现,而且这些实在参数的总和正好是主框架中“边”属性的全体属性值,等等。 机器人可以利用这个框架来认识积木。例如,如果它看到了一个六边形,又看到这个六边形分为三个面,每一个面都符合子框架的描述,则机器人可断定该六边形在几个主要属性上符合主框架的描述,因此该六边形可与主框架匹配上。然后根据主框架中“物体”属性的值知道自己看见的是一个立方体,又根据“视角”属性的值知道自己位于立方体的斜上方,最后,根据“负载面”属性的值知道可把别的东西,例如另一块积木,放在A面上。 由此,一个框架的主要特征可初步概括为:1. 每个框架有一个可带有参数的框架名;2. 每个框架有一组属性,每个属性称为一个槽(slot),槽里面可存放属性值;3. 每个属性对它的值有一定的类型要求,不同属性对它的值类型的要求可以不一样;4. 有些属性值可以是子框架调用,子框架调用可以带参数;5. 有些属性值是事先确定的,有些属性值需在生成实例时代入;6. 有些属性值代入时需满足一定的条件。不同属性的属性值之间有时还有一些条件要满足。 一般来说,实现的每1个框架系统应具备如下的功能: 1描述功能 每个框架实现系统应该提供一组功能模块,利用这些功能模块可为某类客观事物建立一个由一组互相联系、互相支持的框架构成的描述,并对此描述进行管理(譬如,进行查询、修改、推理、)。 在建立一个单个框架时,可根据需要设置一组槽,规定每个槽的性质,及槽与槽之间的关系。通常每个槽在框架中被认为是无内部结构的,但当需要时,它本身又可扩充成一个有内部结构的框架。 例:机器人进入一个房间,他运用他头脑中的框架体系(即框架系统)来判断这是一个什么房间,机器人的当前框架是“房间”框架。墙框架的两个参数是为了限制一面墙上的窗数和门数不得多于整个房间的窗数和门数。l 括在方括号内的数目是属性的缺省值,当无其它信息时,可以假定此属性的值就是该缺省值。l 带 * 号的属性表示其属性个数不限。l 加方括号的槽(即属性)是可有可无的。框架房间墙数窗数门数前墙后墙左墙右墙家俱地毯供电天花板地板条件:a4b2c1墙框架调用(b,c,b1,c1)墙框架调用(b,c,b2,c2)墙框架调用(b,c,b3,c3)墙框架调用(b,c,b4,c4)家俱框架调用地毯框架调用供电框架调用天花板框架调用地板框架调用b1b2b3b4b,c1+c2+c3+c4=ca 0 , b 0 , c 0框架墙(w,d,w1,d1)墙面材料白灰(或)油漆(或)墙纸墙面颜色窗数w1门数d1挂物数挂物*物框架调用窗*窗框架调用门*门框架调用条件:w1 w d1 d 这几项新的描述手段都是很有用的。许多属性都有缺省值,如人一般有两条腿,可作缺省值使用。 对于不易判定的属性值,使用缺省值更有好处。 通过实际代入值与缺省值相比较,可有助于发现异常。 允许一个框架有不确定数量的槽,使框架具有动态结构,其好处更不待言。 2子类 我们不应该也不可能把各种房间的所有可能属性全写进一个房间框架中,即使勉强写进去了,恐怕也是庞大无比,不便使用。 比较好的办法是采用SIMULA 67的方法,把房间分成子类,每类房间有自己的框架。然后,可能的话,再把这些子类分成更小的子类,定义更小的框架。如此等等。 所谓子类,就是说母类的属性子类都有,因此,凡是母类框架(称为上层框架)中有的槽,在子类框架(称为下层框架)中不再列出。房间框架可有许多下层框架,这里以厨房框架作为下层框架的一个例子:框架厨房上层转入条件煤气罐数煤气灶煤气罐菜厨水斗工作台房间框架煤气罐数01煤气灶框架调用煤气罐框架调用菜厨框架调用水斗框架调用工作台框架调用 “上层”槽指的是厨房框架的直接上层框架。这个槽把上下层框架联系起来,形成一个层次体系。 如果某个属性在包含它的厨房框架中找不到,则到包含它的厨房框架的上层框架中去找。若在这个上层框架中还未找到,那么还可通过这个上层框架的“上层”槽到更上层的框架中去找,等等。 “转入条件”指的是在什么条件下应由上层框架转入其对应的下层框架(确定的一个)。 例: 当机器人刚一进入房间时,他对这个房间的特性尚一无所知,他头脑中的当前框架是“房间框架”; 可是当机器人发现房间里煤气罐数0,故转入其下层框架厨房之条件成立,所以机器人头脑中的当前框架便更新为厨房框架,表示机器人对房间特性的认识深入了一层。可以进一步定义厨房框架的下层框架,例如公用厨房框架:框架 公用厨房上层 厨房框架转入条件 煤气罐数 1煤气罐*煤气灶* 条件: 煤气灶数= 煤气罐数2 3实例(The Function of Frame Systems, it is not an “example” ) 子类的最低层是实例,它已经不是一个类,而只是一个个体的描述,它是框架体系树的树叶。 在给出实例时,应同时给出它的所有(直接或间接的)上层框架中各属性的值(不过,如果对上层框架的某些属性不感兴趣,也可暂时不给出)。就是说所有的属性值都得到了确定。框架实例 702楼503号公用厨房墙数 4窗数 2门数 1前墙 墙框架调用(2,1)煤气罐数 3煤气灶数 6 4匹配 产生式的匹配一般是完全匹配,部分匹配是一种比较特殊的情形。而框架与此不同,通常只能做到部分匹配,完全匹配才是特殊情形。 框架(借助框架体系)完成对一类事物的完整(或者说一般性)描述,当将其用于匹配某具体个体时,有时彼此很难完全吻合。因此必须考虑一个框架和一个具体事物匹配成功(生成实例)判定准则。 (1)框架不完全符合实际事物的可能性至少有下列几种: 规定的属性不存在。如机器人进入房间时发现根本没有天花板,使“房间”框架中的“天花板”糟找不到匹配对象。 规定的属性值不符。如机器人从上方斜视积木时看到的不是六边形,这与该框架中“视状”槽之规定值不符。 属性的缺省值和被匹配事物相应属性之值不符。如机器人发现房间中有两扇门。 为某属性值规定的类型或条件不成立。如机器人从楼梯走进一个没有门的房间,这与房间框架中门数必须 0 的条件不符。 (2)当框架与被匹配的实际事物不完全符合时,规定如下一些确定匹配成功准则: 规定必要条件。如某个属性必须存在,某个属性值必须是多少,某个条件必须成立等。 规定允许的误差范围。如房间中门的数目最多不超过4,厨房中煤气罐的数目不能大于3 等等。这种规定主要适用于缺省值。 计算偏差度。如当待匹配的具体事物之属性值为a时,可以定义偏差度为0.5 | a | . 根据偏差度,可以确定该属性值符合规定的程度。 属性加权。通过对所有符合标准的那些属性之权取和,把此和值与一定的阈值作比较而决定匹配是否成功。这样做可以区分属性的不同重要性。 设置一组判定产生式。当规定某时,可以利用这组产生式进行推导,如果推导成功,则该项匹配不成功也无妨。 例:房间框架中门的个数必须大于零,可设置如下两个产生式作为补充: IF (门数0) &(天花板有敞口) & (从敞口挂下梯子 ) THEN (“门”属性无问题) & (房间是地窖) IF (门数0) & (地板有敞口 ) & (从敞口有梯子下去) THEN (“门”属性无问题) & (房间是阁楼)当机器人发现他所在的房间没有门时,可使用这两个产生式作进一步判断。 规定充分因子和必要因子。属性加权中的权类似于充分因子,还可规定称为必要因子的一组反面的权,把其值不符合标准的那些属性的必要因子取和,和值越大则匹配不成功的可能性也越大,反之亦然。一般来说,可以定义一个阈值。 引进可信度或模糊度等概念,确定一个和框架某个实际事物的匹配程度。 5预测 利用框架可以对客观事物进行预测,预测是一种框架内部的推理。预测有多方面的用途: 第一,根据预测可以指导进一步的观察。例如,看到三个煤气罐,根据“煤气灶数煤气罐数2”的条件,即可预测此房中还有六个煤气灶,从而指导机器人去寻找那六个煤气灶。 第二,根据预测,可以假定还没有观察到的或难以观察到的事物。在上例中,即使机器人没有找到全部六个煤气灶(假如煤气灶被某物遮挡),它仍有理由假定有六个煤气灶。 6. 继承我们在前面讨论子类的时候,曾经提到了属性的继承问题。 前面讨论的属性继承都是十分简单和直接的继承:下层框架可从上层框架继承所有的属性、属性值和条件。同样,框架实例也可以从框架继承这些特性。 由于现实世界非常复杂,继承关系远不止一个子类关系,例如: 有限制地继承属性。指定某一框架从另一框架那里继承哪些属性,办法是:仅仅列出的属性才能继承。 例如:“新中国”框架从“旧中国”框架继承的属性有:国体、政体、面积、人口、国民收入等等;“新中国”框架不予继承的属性有:租界、外国驻军、不平等条约等等 有限制地排斥属性。凡是未列出的属性均自动继承,列出的反不予继承。 这两条方法达到的目标是一样的。至于采用哪一条要看是继承的属性占多数还是排斥的属性占多数 有限制地继承属性值。继承属性不等于继承属性值。指明的属性值才予以继承 “新中国”框架从“旧中国”框架继承的上面列出的种种属性中,只有“面积”属性的值大体不变,其余属性的值均有了明显变化。 有限制地排斥属性值。指明的属性值不予以继承。 在这两条中,属性值的继承和排斥也包括了缺省值的继承和排斥。 有限制地继承条件。 在“旧中国”框架中,面积、人口、国民收入等属性的值必须大于0,这些条件皆由“新中国”框架继承下来“旧中国”的“部长”属性有一个条件:拥有大笔财产并与官僚资产阶级有联系。在“新中国”框架中,这个条件不复存在。 有限制地排斥条件。 给出属性值的映射函数。 例如,如果新中国人口的年平均增长率为a%,而国民收入年平均增长率为b%, 则“新中国”框架在x年的人口和国民收入分别是: p(y)(1+c%)1949-y(1+a%)x-1949 I(y)(1+d%)1949-y(1+b%)x-1949其中外p(y)和I(y) 分别是旧中国y年的人口和国民收入,c % 和d % 分别是年平均人口和国民收入增长率。 映射函数可根据上层框架的某些属性值计算出下层框架的某些属性值。 指明属性的分裂。 分裂原因:框架层次系统由上而下描述越来越具体;有时在下层框架中有多个属性对应于上层框架的同一个属性;等等。 例如,上层框架中的“工业部”属性到下层框架中可能变成“重工业部”和“轻工业部”两项。“重工业部”到了更下层框架中又可能变成“机械工业部”和“冶金工业部”等等。7 变异 变异的概念使框架匹配的定义进一步精确化。 有时会在客观事物中看到与框架很不一致的现象,称之为反常现象。例如,当机器人在房间中看到一只炉子时,他头脑里的当前框架变成了“厨房”框架。但他随即又看到一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论