1框架表示法知识的框架表示法1975年由M.Minsky提出,最早用作视觉感知、自然语言对话等问题的知识表示;目前已作为一种通用数据结构来表示知识对象(实体)。框架理论认为,人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中的,当面临一种新事物时,就从记忆中找出一个合适的框架并根据实际情况对其细节加以修改、补充,从而形成对当前事物的认识。【例】对教室的知识:在记忆中建立关于教室的框架,指出相应事物的名称(教室),以及事物各有关方面的属性(如有四面墙、有课桌、有黑板,……)。通过对该框架的查找,很容易得到教室的各有关特征。当实际接触了教室后,经观察得到了教室的大小、门窗的个数、桌凳的数量、颜色等细节,把它们填入到教室框架中,就得到了教室框架的一个具体事例,称为事例框架。2框架表示法◆框架是一种结构化表示法。通常框架采用节点-槽-值表示。框架用于描述格式固定的事物、行动和事件。◆框架的构成一个框架由若干个槽(Slot)组成,槽用于描述属性;一个槽又可由若干个侧面组成。侧面用于描述相应属性的一个方面;一个侧面可有一个或多个侧面值。槽和侧面所具有的属性值分别称为槽值和侧面值。对框架、槽或侧面,都可以附加上一些说明性信息(约束条件),用于指出什么样的值才能填入到槽或侧面中。槽值或侧面值的取值:数值、字符串、布尔值;在满足某个给定条件时要执行的动作或过程;另一个框架的名字。框架实质上是一个层次的嵌套链接表。3框架表示法一个框架的一般结构如下:框架名:框架名槽名1:槽值1侧面名11:侧面值111…侧面值11p侧面名12:侧面值121…侧面值12p…槽名2:槽值2侧面名21:侧面值211…侧面值21p…槽名n:槽值n侧面名n1:侧面值n11…侧面值n1p…侧面名nm:侧面值nm1…侧面值nmp4框架表示法-例【例】一个人可以用其职业、身高和体重等项描述,用这些项目组成框架的槽。当描述一个具体的人时,再用这些项目的具体值填入到相应的槽中。下面是描述John的框架。框架名:PERSON-1name:JOHNisa:PERSONprofession:PROGRAMMERheight:1.8mweight:79kg5框架表示法-例【例】框架名:假冒伪劣商品商品名称:生产厂家:出售商店:处罚:处理方式:处罚依据:处罚时间:单位(年、月、日)经办部门:在这个框架中,有4个槽,其中,“处罚”槽有4个侧面,侧面“处罚时间”用“单位”指出了一个填值时的标准限制。6框架网络◆框架间的横向联系:由于框架中的槽值或侧面值都可以是另一个框架的名字,这就在框架之间建立起了联系,通过一个框架可以找到另一个框架,这称为横向联系。◆框架间的纵向联系:当某些事物有一些共同的属性时,在对它们进行描述时,可以将它们具有的共同属性抽取出来,构成一个上层框架,然后再对各自独有的属性分别构成下层框架。为了指明框架间的这种上下关系,可在下层框架中设立一个专用的槽,用以指出他的上层框架是哪一个。这样就在框架间建立了纵向联系。◆具有横向联系及纵向联系的一组框架称为框架网络。7框架间的继承◆框架的继承性,就是当子节点的某些槽值或侧面值没有被直接记录时,可以从其父节点继承这些值。继承性是框架表示法的一个重要特性,它不仅可以在两个框架之间实现继承关系,而且还可以通过两两的继承关系,从最低层追搠到最高层,使高层的信息逐层向低层传递。例如,椅子一般都有4条腿,如果一把具体的椅子没有说明它有几条腿,则可以通过一般椅子的特性,得出它也有4条腿。如果一个在上层框架中描述的属性在下层框架需作进一步说明时,则需要在下层框架中再次给出描述。如果在下层框架中对某些槽没有作特别的声明,那么它将自动继承上层框架相应槽的槽值。8框架网络-例下图是一个关于师生员工的框架网络。师生员工框架:用于描述师生员工的共同属性,例如姓名,性别,年龄等;教职工框架:用于描述教师、干部、工人的共同属性,凡是在师生员工框架中已指出的属性在这里可不再重复描述;(以此类推)师生员工框架教师1教师n学生n学生1教职工框架…学生框架…教师框架…电子系学生框架…工人框架…机械系学生框架…9师生员工框架为:框架名:师生员工姓名:单位(姓,名)年龄:单位(岁)性别:范围(男,女)缺省:男健康状况:范围(健康,一般,差)缺省:一般住址:住址框架教职工框架为:框架名:教职工继承:师生员工工作类别:范围(教师,干部,工人)缺省:教师开始工作时间:单位(年,月)截止工作时间:单位(年,月)缺省:现在离退休状况:范围(离休,退休)框架网络-例10框架网络-例教师框架为:框架名:教师继承:教职工部门:单位(系,教研室)语种:范围(英语,法语,日语,德语,俄语)缺省:英语外语水平:范围(优,良,中,差)缺省:良职称:范围(教授,副教授,讲师,助教)缺省:讲师研究方向:某个教师的事例框架为:框架名:教师-1继承:教师姓名:孙林年龄:28健康状况:健康部门:计算机系软件教研室语种:德语开始工作时间:1985.911框架中槽的设置与组织充分表达事物各有关方面的属性——合理地设置槽要与系统的设计目标相一致,所要求的及可能用到的都要表示出来;仅仅需要对有关的属性设立槽,不可面面俱到,以免浪费空间和降低系统的运行效率。充分表达相关事物间的各种关系——由槽中的框架名建立联系事物间的联系是通过在槽中填入相应的框架名来建立的,它们之间究竟是一种什么样的关系,则是由槽名来指明的。对槽及侧面进行合理的组织——利用其上下层间的继承性。尽量将不同框架中的相同属性抽取出来,放入其上层框架,而在下层框架中只描述相应事物独有的属性。从而减少信息的重复性,并且有利于知识的一致性。有利于进行框架推理。框架推理是一个反复进行框架匹配的过程,为了是推理得12标准槽名在框架表示系统中通常定义一些标准槽名,应用时不用说明就可直接使用。称这些槽名为系统预定义槽名。1)ISA槽:用于指出事物间抽象概念上的类属关系。其直观含义是“是一个”,“是一种”,“是一只”……。【例】设有下面两个框架:框架名:运动员姓名:单位(姓,名)年龄:单位(岁)性别:范围(男,女)缺省:男框架名:棋手ISA:运动员脑力:特好13标准槽名2)AKO槽:用于具体的指出事物间的类属关系。其直观含义是“是一种”,下层框架可以继承其上层框架所描述的属性及值。对上面的例子,可将棋手框架中的ISA改为AKO。3)Subclass槽:用于指出子类与类之间的类属关系。上例中,由于“棋手”是“运动员的一个子类,故可将ISA该为Subclass。4)Instance槽:用来建立AKO槽的逆关系。用它作为某框架的槽时,可用来指出它的下层框架是哪些。【例】框架名:运动员Instance:棋手,足球运动员,排球运动员姓名:单位(姓,名)年龄:单位(岁)性别:范围(男,女)缺省:男14标准槽名5)Part-of槽:用于指出部分与全体的关系。【例】汽车和轮胎。上层框架是对汽车的描述,下层框架是对轮胎的描述。显然,轮胎是汽车的一部分。注意将Part-of槽与上面四种槽区分开来:前述4种槽是上、下层框架间的类属关系,它们由共同的特性,可以继承;Part-of槽只指出下层是上层的一个子结构,两者一般不具有共同的特征,不能继承。15标准槽名6)Infer槽:指出两个框架所描述的事物间的逻辑推理关系,用它可以表示相应的产生式规则。【例】设有下面知识:如果咳嗽,发烧且流涕,则八成是患了感冒,需服用感冒清,一日三次,每次2-3粒。并要多喝开水。对该知识,可用如下两个框架表示:框架名:诊断规则症状1:咳嗽症状2:发烧症状3:流涕Infer:结论可信度:0.8框架名:结论病名:感冒治疗方法:服用感冒清,一日三次,每次2-3粒注意事项:多喝开水愈后:良好7)Possible-Reason槽:与Infer槽作用相反,用来把某个结论与可能的原因联系起来。16框架求解问题的过程在用框架表示知识的系统中,问题的求解主要是通过匹配与填槽实现的。要求解某个问题时:(1)首先把问题用框架表示出来;(2)然后与已有的框架进行匹配,找出一个或几个可匹配的预选框架作为初步假设,并在此引导下收集进一步的信息;框架的匹配是通过对相应的槽的槽名及槽值逐个比较实现的。如果两个框架的各对应槽没有矛盾,或者满足预先规定的某些条件,就认为这两个框架可以匹配。(3)最后用某种评价方法对预选框架进行评价,决定是否接受它。17继承性框架的推理-例【例】师生员工的框架网络已建立在知识库中,从知识库中找出一个满足以下条件的教师:男性,年龄在30岁以下,身体健康,职称为讲师把这些条件用框架表示出来,就可得到如下的初始问题框架框架名:教师-x姓名:年龄:30性别:男健康状况:健康职称:讲师某个教师的事例框架为:框架名:教师-1继承:教师姓名:孙林年龄:28健康状况:健康部门:计算机系软件教研室语种:德语开始工作时间:1985.9师生员工教师故:孙林可能是要找的教师(符合条件的可能不止孙林一个,此框只能作为预选框,还需进一步收集更多的信息,以从中选出一个)。18剧本(script)表示◆剧本是框架的一种特殊形式,它用一组槽来描述某些事件的发生序列,就像剧本中的事件序列一样,故称为“剧本”(脚本)表示法。◆剧本的构成(1)开场条件:给出在剧本中描述的事件发生的前提条件。(2)角色:用来表示在剧本所描述的事件中可能出现的有关人物的一些槽。(3)道具:表示在剧本所描述的事件中可能出现的有关物体的一些槽。(4)场景:描述事件发生的真实顺序,可以由多个场景组成,每个场景又可以是其它的剧本。(5)结果:在剧本所描述的事件发生以后通常所产生的结果。19剧本表示-例【例】餐厅剧本(1)开场条件:(a)顾客饿了,需要进餐。(b)顾客有足够的钱。(2)角色:顾客,服务员,厨师,老板。(3)道具:食品,桌子,菜单,钱。(4)场景:场景1进入餐厅(a)顾客走入餐厅。(b)寻找桌子。(c)在桌子旁坐下。场景2点菜(a)服务员给顾客菜单。(b)顾客点菜。(c)顾客把菜单还给服务员。(d)顾客等待服务员送菜。场景3等待(a)服务员把顾客所点的菜告诉厨师。(b)厨师做菜。20剧本表示-例场景4吃菜(a)厨师把做好的菜给服务员。(b)服务员给顾客送菜。(c)顾客吃菜。场景5离开(a)服务员拿来帐单。(b)顾客付钱给服务员。(c)顾客离开餐厅。(5)结果(a)顾客吃了饭,不饿了。(b)顾客花了钱。(c)老板挣了钱。(d)餐厅食品少了。21剧本的特点剧本中所描述的事件形成一个因果链,链的起点是开场条件,满足这些条件,剧本中的事件才能产生。链的终点是一组结果,这组结果可能导致以后的事件(可能用其他的剧本来描述)发生。因果链内前后的事情相互联系。前面的事件使当前的事件有可能产生,而当前事件又使后面的事件有可能产生。如已知某一剧本适用于所给定的情形,则可利用剧本来预言一些没有直接提到的事件。剧本结构比较呆板,知识表达的范围窄,不适用于表达各种变化频繁的知识。但对于预先构思好的特定知识,如理解故事情节等,是非常有效的。22剧本的准备和启用◆准备剧本的方法:在应用某一剧本以前,必须先准备好剧本。根据剧本的重要性,可以有二种准备剧本的方法。(1)对于不属于事件核心部分的剧本,只需设置指向该剧本的指针即可,以便当它成为核心时启用。【例】有下述事件:苏珊在去博物馆的路上经过她喜欢的餐厅。她非常喜欢这次的毕加索作品展览会。则对于餐厅剧本只需要设置指针即可。(2)对于符合事件核心部分的剧本,则应使用在当前事件中涉及到的具体对象和人物去填写剧本的槽。◆剧本的启用:剧本的前提、道具、角色和事件等常能指示启用该剧本。23剧本的推理一旦剧本被启用,则可以应用它来进行推理。其中最重要的是运用剧本可以预测没有明显提及的事件的发生。【例】对于以下情节:昨晚,约翰到了餐厅。他订了牛排。当他付完款,发现钱已用光,于是就赶紧回家了。问题:昨晚,约翰吃饭了吗?【解】启用餐厅剧本,情节中的