2.5 框架表示法
框架表示法是以框架理论为基础发展起来的一种适应性强、概括性高、结构化良好、推理方式灵活,又能把陈述性知识与过程性知识相结合的知识表示方法。
1975年明斯基(Minsky)在论文“A framework for representing knowledge”中提出了框架理论,引起了人工智能学者的重视。它所针对的是人们在理解事物情景或某一故事时的心理学模型,论述了人们理解问题的一种思想方法。
框架理论的基本观点是“人脑中已存储有大量事物的典型情景,也就是人们对这些事物的一种认识,这些典型情景是以一个称做框架的基本知识结构存储在记忆中的,当人们面临新的情景时,就从记忆中选择(粗匹配)一个合适的框架,这个框架是以前记忆的一个知识空框,而其具体内容要依新的情景而改变,通过对这个空框的细节加工、修改和补充,形成对新的事物情景的认识,而这种认识的新框架又可记忆于人脑之中,以丰富人的知识”。例如,当一个人将要走进一个教室之前,他就可以想象这个教室一定有四面墙,有门、窗、天花板和地板,还有黑板、讲台、课桌、坐椅等,尽管他对这个教室的具体细节如教室的大小、门窗的个数等还不清楚,但对教室的基本结构是可以预见的。他之所以能够做到这一点,是由于在以前的实践活动中,已在其头脑中建立起了有关“教室”这一概念的基本框架。这一基本框架不仅指出了相应事物的名称(教室),而且还指出了事物各有关方面的属性(墙、门、窗等),通过对该框架的查找就很容易得到有关教室的特征。在他进入教室之后,经观察得到了教室的大小、门窗的个数等细节,把这些数据填入到教室框架中,就得到教室框架的一个具体实例,这是他关于这个教室的视觉印象,称为实例框架。
框架理论将框架视做知识的单位,将一组有关的框架连接起来便形成框架系统。系统中不同框架可以有共同节点,系统的行为由系统内框架的变化来表现。推理过程是由框架间的协调来完成的。
2.5.1 框架的结构
框架是一种描述所论对象属性的数据结构。所论的对象可以是一个事物、一个事件或者一个概念。一个框架由若干个“槽”组成,每个“槽”又可划分为若干个“侧面”。一个槽用于描述所论及对象的某一方面的属性,一个侧面用于描述相应属性的一个方面。槽和侧面所具有的属性值分别称为槽值和侧面值。槽值可以是逻辑型或数字型的,具体的值可以是程序、条件、默认值或一个子框架。
一个框架可以由框架名、槽、侧面和值四部分组成。框架一般可表示成如下格式:
框架名
〈槽名1〉
〈侧面11〉
〈值111〉…〈值11k1〉
…
〈侧面1n1〉
〈值1n11〉…〈值1n1kn1〉
〈槽名2〉
〈侧面12〉
〈值121〉…〈值12k2〉
…
〈侧面1n2〉
〈值1n21〉…〈值1n2kn2〉
…
例如,要描写“计算机主机”这一概念,首先分析计算机主机所具有的属性,一台计算机主机可能具有的属性有:品牌、生产厂商、CPU(品牌、型号)、主板(品牌、型号)、内存(品牌、型号、容量)、硬盘(品牌、型号、容量),等等,可能还有其他属性,这里只考察这几种属性。“主机品牌”、“生产厂商”、“CPU”、“主板”、“内存”、“硬盘”就定为“计算机主机”的槽,而“CPU”、“主板”还各有两个侧面,“内存”、“硬盘”则还有三个侧面。“主机品牌”和“生产厂商”没有侧面,如果给各个槽和侧面赋以具体的值,就得到一个“计算机主机”这一概念的一个实例框架。
框架名:〈计算机主机〉
主机品牌:联想1+1
生产厂商:北京联想集团公司
CPU:品牌:Intel
型号:奔腾Ⅲ/933
主板:品牌:QDI
型号:ATXVA5
内存:品牌:现代
型号:SDRAM
容量:128MB
硬盘:品牌:Seagate
型号:ST320423A
容量:20GB
2.5.2 框架举例
例2.6 优质商品框架。
解:框架名:〈优质商品〉
商品名称:
生产厂家:
获奖情况:获奖等级:
颁奖部门:
获奖时间:单位(年,月,日)
在这个框架中,“〈〉”中是框架名,有3个槽,槽名分别是“商品名称”、“生产厂家”和“获奖情况”。其中“获奖情况”槽又包括3个侧面,侧面名分别是“获奖等级”、“颁奖部门”和“获奖时间”。对于“获奖时间”这一侧面,用“单位”指出了一个填值时的标准限制,要求所填时间必须按年、月、日的顺序填写。
例2.7 教室框架。
解:框架名:〈教室〉
墙数:
窗数:
门数:
座位数:
前墙:〈墙框架〉
后墙:〈墙框架〉
左墙:〈墙框架〉
右墙:〈墙框架〉
门:〈门框架〉
窗:〈窗框架〉
黑板:〈黑板框架〉
天花板:〈天花板框架〉
地板:〈地板框架〉
讲台:〈讲台框架〉
这是一个教室框架,由14个槽组成,分别描述“教室”的14个方面的情况或属性。如果把某个具体教室的有关情况填入槽或侧面后,就得到一个描述该教室的实例框架。
例2.8 教师框架。
解:框架名:〈教师〉
姓名:单位(姓、名)
年龄:单位(岁)
性别:范围(男、女)
默认:男
职称:范围(教授,副教授,讲师,助教)
默认:讲师
部门:单位(系,教研室)
住址:〈住址框架〉
工资:〈工资框架〉
参加工作时间:单位(年,月)
该框架中共有8个槽,分别描述了“教师”的8个方面的情况。如果把具体某个教师的有关情况填入槽或侧面后,就得到一个实例框架。
例2.9 关于自然灾害的新闻报道中所涉及的事实经常是可以预见的,这些可预见的事实就可以作为代表所报道的新闻中的属性。下面是一则关于地震的报道,请用框架表达这段报道。
“今天,一次强度为里氏8.5级的强烈地震袭击了斯洛文尼亚(LowSlabovia)地区,造成25人死亡和5亿美元的财产损失。斯洛文尼亚地区主席说:‘多年来,靠近萨迪壕金斯断层的重灾区一直是一个危险地区。这是本地区发生的第3号地震。’”
解:第一步:确定属性——框架的槽。
本报道中关于地震的关键属性是地震发生的地点、时间、伤亡人数、财产损失数量、地震强度的震级、断层情况。
第二步:分析本报道中各对象间的联系,由于其中只涉及地震一件事,所以本步可以省略。
下面是将本报道中有关数据填入相应槽后得到的3号地震的框架。
框架名:〈地震3〉
地点:LowSlabovia
时间:今天
伤亡人数:25
财产损失:500000000
震级:8.5
断层:萨迪壕金斯
该框架可用图2.14表示。
图2.14 斯洛文尼亚3号地震框架图
该框架也可以发展成框架系统,以描述更复杂、更广泛的事件。例如,向上移动一层,可以把地震看成是一种自然灾害。除地震外,洪水、飓风等也都是自然灾害,它们和自然灾害间的关系可用ISA和Instance槽表达。自然灾害、地震、洪水、飓风等都可以用框架表示,用框架ISA/Instance将它们联系起来,即形成了一个框架系统。
框架名:〈地震〉 框架名:〈洪水〉 框架名:〈飓风〉
ISA:〈自然灾害〉ISA:〈自然灾害〉ISA:〈自然灾害〉
地点: 地点: 地点:
时间: 时间: 时间:
仿亡人数: 伤亡人数: 伤亡人数:.
财产损失: 财产损失: 财产损失:
… … …
图2.15 自然灾害的框架系统
框架名:〈自然灾害〉
Instance:〈地震〉,〈洪水〉,〈飓风〉
地点:
时间:
…
这四个框架组成的“自然灾害”框架系统如图2.15所示。
2.5.3 框架表示法的特点
框架表示法有下列特点:
(1)结构性
框架表示法最突出的特点是它善于表达结构性的知识,能够把知识的内部结构关系及知识间的联系表示出来,是一结构化的知识表示方法。框架表示法的知识单位是框架,而框架是由槽组成的,槽又可分为若干侧面,这样就能把知识的内部结构显式地表示出来。
(2)继承性
在前面的讨论中已经看到,框架表示法通过将槽值设置为另一个框架的名字而实现框架间的联系,建立起表示复杂知识的框架网络。在框架网络中,下层框架可以继承上层框架的槽值,也可以进行补充和修改,这样不仅减少了知识的冗余,而且较好地保证了知识的一致性。
(3)自然性
框架表示法体现了人们在观察事物时的思维活动,当遇到新事物时,通过从记忆中调用类似事物的框架,并将其中某些细节进行修改、补充,就形成了对新事物的认识,这与人们的认识活动是一致的。
框架表示法的主要不足之处是不善于表达过程性的知识。因此,它经常与产生式表示法结合起来使用,以取得互补的效果。