人工智能2.4框架表示法第2章知识表示2.1概述2.2谓词逻辑表示法2.3产生式表示法人工智能2.4框架表示法框架表示法是以框架理论为基础发展起来的一种结构化的知识表示,它适用于表达多种类型的知识。1975年美国麻省理工学院明斯基(Minsky)在论文“Aframeworkforrepresentingknowledge”中提出了框架理论,引起了人工智能学者的重视。他是针对人们在理解情景、故事时提出的心理学模型,论述的是思想方法不是具体实现。框架理论的基本观点是“人脑已存储有大量的典型情景,当人面临新的情景时,就从记忆中选择(粗匹配)一个称作框架的基本知识结构,这个框架是以前记忆的一个知识空框,而其具体内容依新的情景而改变,对这空框的细节加工修改和补充,形成对新情景的认识又记忆于人脑中,以丰富人的知识。”人工智能【观察事物时的思维】人头脑中形成的对于事物的抽象模型(框架);用“自顶向下”的方法先匹配一个现有的抽象模型(框架);再确定抽象模型(框架)中的细节。框架表示法明斯基,1975,强调事物内部的结构化描述;较好地反映人观察事物的思维方式;应用于机器人识别领域。人工智能2.4框架表示法框架是表示某一类情景的结构化的一种数据结构。框架由描述事物的各个方面的槽组成,每个槽可有若干个侧面。一个槽用于描述所讨论对象的某一方面的属性,一个侧面用于描述相应属性的一个方面。槽和侧面所具有的值分别称为槽值和侧面值。槽值可以是逻辑的、数字的,可以是程序、条件、默认值或是一个子框架。槽值含有如何使用框架信息、下一步可能发生的信息、预计未实现该如何做的信息等。在一个用框架表示的知识系统中,一般都含有多个框架,为了区分不同的框架以及一个框架内不同的槽,不同的侧面,需要分别赋予不同的名字,分别称为框架名、槽名及侧面名。因此,一个框架通常由框架名、槽名、侧面和值这四部分组成,其一般结构如下:2.4.1框架结构人工智能2.4框架表示法<框架名>槽名1:侧面名11值11侧面名12值12::侧面名1m值1m槽名2:侧面名21值21侧面名22值22::侧面名2m值2m::框架的一般结构人工智能2.4框架表示法::槽名n:侧面名n1值n1侧面名n2值n2::侧面名nm值nm约束:约束条件1约束条件2:约束条件n框架的一般结构人工智能框架的一般表示结构框架由描述事物各个方面属性的槽(slot)组成框架:=(Frame框架名{槽}+)槽有多侧面(aspect)槽:=(槽名{侧面}+)侧面:=侧面名:侧面值与语义网络节点的表示结构相比较:表示结构接近,但框架更丰富(引入侧面)语义网络节点:槽:={槽名:槽内容}框架更强调表示事物的内部结构;语义网络节点更强调表示事物间的关系;人工智能2.4框架表示法例如,要用框架来描述“优质商品”这一概念。首先分析商品所具有的属性,一个商品可能具有的属性有:商品名称、生产厂商、生产日期、获奖情况等等,这里只考虑这几个属性。这几个属性可以定义为“优质商品”框架的槽,而“获奖情况”这个属性还可以从获奖等级、颁奖部门和获奖时间这3个侧面来加以描述。如果给各个槽和侧面赋予具体的值,就得到了“优质商品”这一概念的一个实例框架。框架名:优质商品商品名称:红桃K生产厂商:红桃K集团生产日期:1998年6月17日获奖情况:获奖等级:省级颁奖单位:湖北省卫生厅获奖时间:2000年5月人工智能2.4框架表示法通常在框架系统中定义一些公用、常用且标准的槽名,并把这些槽名称为系统预定义槽名。人们在使用这些槽名时,不用说明就知道它表示何种联系。下面给出几个比较常用的、用来表示对象间关系的槽名:(1)ISA槽ISA槽用于指出对象间抽象概念上的类属关系。其直观意义是“是一个”,“是一种”,“是一只”……。在一般情况下,用ISA槽指出的联系都具有继承性。所谓框架的继承性就是指当下层框架中的某些槽值或侧面值没有被直接给定时,可以从其上层框架中继承这些值或属性。例如,椅子一般有4条腿,如果一把具体的椅子没有指出它有几条腿时,则可以通过一般椅子的特性,得出它有4条腿。人工智能在此例中,棋手框架中的ISA槽指出该框架所描述的事物是运动员框架所描述事物的属性及值。人工智能2.4框架表示法(2)AKO槽AKO槽用于具体地指出对象间的类属关系。其直观意义是“是一种”。当用它作为某下层框架的槽时,就明确地指出了该下层框架所描述的事物是其上层框架所描述事物中的一种,下层框架可继承上层框架中值或属性。(3)Instance槽Instance槽用来表示AKO槽的逆关系。当用它作为某上层框架的槽时,可在该槽中指出它所联系的下层框架。用Instance槽指出的联系都具有继承性,即下层框架可继承上层框架中所描述的属性或值。人工智能Instance槽用来建立AKO槽的逆关系。当用它作为某上层框架的槽值时,可用来指出它的下层框架是哪些。框架名:运动员Instance:棋手,足球运动员,排球运动员姓名:单位(姓,名)年龄:单位(岁)性别:范围(男,女)缺省:男人工智能2.4框架表示法(4)Part-of槽Part-of槽用于指出部分和全体的关系。当用其作为某框架的一个槽时,槽中所填的值称为该框架的上层框架名,该框架所描述的对象只是其上层框架所描述对象的一部分。例如,“两条腿”是“人体”的一部分。可以将“两条退”和“人体”分别定义成框架,“两条退”为下层框架,“人体”为其上层框架。在“两条退”的框架中设置一个Part-of槽,槽值填入人体这个框架名。显然,用Part-of槽指出的联系所描述的下层框架和上层框架之间不具有继承性。人工智能框架的一般表示结构框架:=(Frame框架名{(槽名{侧面名:侧面值}+)}+)例3、关于球的框架系统(FrameThing(VolumeUnit:cm3If-added:Classify))(FrameSphere(AkoValue:Thing)(RadiusUnit:cmIf-added:Evaluate-Volumn)(SurfaceUnit:cm2If-Needed:Evaluate-Surface)(ColorValue:White))(FrameSphere1(FrameSphere2(IsaValue:Sphere)(IsaValue:Sphere)(RadiusValue:10)(RadiusValue:10)(ColorValue:Red)(SurfaceValue:125600)(VolumeValue:4190)(VolumeValue:4190000)))概念的框架槽(属性)有多个侧面,复杂!个体事物的框架槽(属性)只有1个侧面,简单!概念的框架人工智能框架系统相互关联的多个框架联合起来构成框架系统;框架的某些槽的侧面值可以是其它框架;建立起节点是框架的网络;(FrameThing(VolumeUnit:cm3If-added:Classify))(FrameSphere(AkoValue:Thing)……)(FrameSphere1(IsaValue:Sphere))……)槽的侧面值是框架Thing槽的侧面值是框架Sphere简单的框架系统人工智能ThingVolumeUnit:cm3If-added:ClassifySphereRadiusUnit:cmIf-added:Evaluate-VolumnSurfaceUnit:cm2If-Needed:Evaluate-SurfaceColorValue:WhiteAkoSphere1RadiusValue:10ColorValue:RedVolumeValue:4190Sphere2RadiusValue:10VolumeValue:4190000IsaIsa建立起节点是框架的网络人工智能框架系统相互关联的多个框架联合起来构成框架系统;框架的某些槽的侧面值可以是其它框架;建立起节点是框架的网络;分类:①事物组成描述复杂事物的组成(分解事物);如,房间可层次地分解为墙、天花板、地板、家具、供电等组成;②层次分类人工智能(Frame房间(墙数Value:4)(窗数Value:2)(门数Value:1)(墙框架:墙)(天花板框架:天花板)(地板框架:地板)(家具框架:家具))(Frame墙(墙面颜色Value:White)(墙面材料Value:油漆)(挂物框架:物)(窗框架:窗)(门框架:门))(Frame天花板……)(Frame地板……)(Frame家具……)房间墙地板家具天花板物窗门人工智能框架系统相互关联的多个框架联合起来构成框架系统;框架的某些槽的侧面值可以是其它框架,建立起节点是框架的网络;分类:①事物组成描述复杂事物的组成(分解事物);如,房间可层次地分解为墙、天花板、地板、家具、供电等组成;②层次分类描述事物的层次分类体系(超类-子类、类-个体);如,不可能把各种房间的所有可能属性都写进房屋框架;把房间分成子类,每类房间都有自己的框架。人工智能(Frame房间(墙数Value:4)(窗数Value:2)(门数Value:1)(墙框架:墙)(天花板框架:天花板)(地板框架:地板)(家具框架:家具)……)(Frame厨房(AkoValue:房间)(转入条件:煤气罐数0)(煤气罐数Value:1)(煤气灶框架:煤气灶)(煤气罐框架:煤气罐))(Frame公用厨房(AkoValue:厨房)(转入条件:煤气罐数1)(煤气罐数Value:2))厨房公用厨房房间墙地板家具天花板物窗门煤气罐数0煤气罐数1访问属性“墙”AkoAko人工智能2.4框架表示法例2.4.1下面一是一个描述“教师”的框架。框架名:教师类属:知识分子工作:范围:(教学,科研)缺省:教学性别:(男,女)学历:(中专,大学)类别:(小学教师,中学教师,大学教师)在这个框架中,框架名为“教师”,它含有5个槽,槽名分别是“类属”、“工作”、“性别”、“学历”和“类别”。这些槽名后面就是其槽值,而槽值“知识分子”又是一个框架名。“范围”、“缺省”是槽“工作”的两个不同的侧面,其后是侧面值。2.4.2框架表示知识举例人工智能2.4框架表示法例2.4.2下面是描述“大学教师”的框架。框架名:大学教师类属:教师学位:范围:(学士,硕士,博士)缺省:硕士专业:学科专业职称:范围:(助教,讲师,副教授,教授)缺省:讲师水平:范围:(优,良,中,差)缺省:良从上述两例可以看出,这两个框架之间存在一种层次关系,称前者为上层框架(或父框架),后者为下层框架(或子框架)。人工智能2.4框架表示法例2.4.3下面是描述一个具体教师的框架。框架名:教师-1类属:大学教师姓名:张宇性别:男年龄:32职业:教师职称:副教授部门:计算机系研究方向:计算机软件与理论工作:参加时间:2000年7月工龄:当前年份-2000工资:工资单比较上面几个例子,可以发现“教师-1”是“大学教师”的下层框架,而“大学教师”又是“教师”的下层框架,“教师”又是“知识分子”的下层框架。框架之间的这种层次关系是相对而言的,下层框架可以从上层框架继承某些属性或值。这样,一些相同的信息可以不必重复存储,节省了存储空间,这种层次结构对减少冗余信息有重要意义。人工智能2.4框架表示法例2.4.4下面有关地震的新闻报道,请用框架结构表示这段报道。“今天,一次强度为里氏8.5级的强烈地震袭击了下斯洛文尼亚(LowSlabovia)地区,造成25人死亡和5亿美元的财产损失。下斯洛文尼亚地区主席说:多年来,靠近萨迪壕金斯断层的重灾区一直是一个危险地区。这是本地区发生的第3号地震。”解:首先分析关于地震报道中所涉及的一些有关地震的关键属性,这些属性是地震发生的地点、时间、伤亡人数、财产损失数量、地震强度的震级和断层情况。这些属性可以作为该框架