框架表示法最早由马文·明斯基于 1975 年提出。框架表示法认为,人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中的。当遇到新事物、新现象时,人类会从已有的经验中找出一个合适的框架(即“通用的数据结构”),根据实际情况对细节加以修改和补充,进而形成对事物的认知。
在定义中,框架是一种描述固定情况的数据结构,一般是由节点和关系组成的网络,由框架名、关系、槽、槽值及槽的约束条件与附加过程所组成。
框架(frame)是一种描述所论对象(一个事物、事件或概念)属性的数据结构;而一个框架又由若干个被称为“槽”(slot)的结构组成,在槽中填入具体值,形成一个描述具体事物的框架,每个槽可包含一组约束条件,每个槽又可根据实际情况划分为若干个“侧面”(faced),用于描述槽值的类型和取值范围;从区分上看,槽用于描述所论对象某一方面的属性,侧面用于描述相应属性的一个方面。因此,槽和侧面都具有属性值,分别称为槽值和侧面值。
例如,描述学生的所有属性的数据结构就是一个框架,其中,“年龄”是这个框架的一个组成部分,即为一个槽,而人的年龄必须是整型数字,这就是“年龄”这个槽的一个侧面,同时,对年龄的约束还有其分布在[0,150],这就是另一个侧面。
除此之外,还有一种附加过程侧面:如果加入过程(if-added)、如果删除过程(if-deleted)、如果需要过程(if-needed),它们描述对象的行为特征,用于控制槽值的存储和检索,在未给出指定属性值时,由附加过程表示槽值计算过程或填槽动作。
一般地,框架结构类似于下列:
框架名:〈教师〉
姓名:单位(姓、名)
年龄:单位(岁)
性别:范围(男、女)缺省:男
职称:范围(教授,副教授,讲师,助教)缺省:助教
部门:单位(系,教研室)
住址:〈住址框架〉
工资:〈工资框架〉
开始工作时间:单位(年、月)
截止时间:单位(年、月)缺省:现在
其中,“教师”是框架,“姓名”“年龄”“性别”等是槽,而“范围值(教授,副教授,讲师,助教)、缺省值”是槽“职称”的多个侧面。
在框架中,一个具体事物由槽中已填入值来表示,而具有不同槽值的框架可以反映某一类事物中的各个具体事物,相关的框架相互连接形成框架系统;同时,一个框架到另一个框架的转换能够表示状态的变化、推理以及其他活动,而不同的框架能够共享一个槽值、协调不同角度的信息。
框架表示法也是一种关系型数据结构表示法,与关系型数据库中的数据结构类似,其中一个“框架”对应一个“关系”的结构、一个框架的实现对应一个“元组”、“槽”对应“属性”、“侧面”对应“域”。因此,这类表示法表征的知识数据,相对更加容易被存储到计算机中并调用。
框架表示法由于具有规范化的结构,因此其推理过程也相对严谨,主要的推理方式有匹配和填槽两种。
在框架表示法中,人们一般按照已知信息去匹配框架构成的知识库的预存储框架,通过逐槽比较的方式,找到若干个适用于信息所提供情况的待选框架,并对这些框架进行评估,从而决策出最适用的框架。这种方式类似于查表,但又通过评估标准的复杂程度来体现对知识的匹配程度和相关信息提供的难易程度。
较为基础的评估标准可以用来判断某些重要属性是否匹配,或属性值是否在允许误差之内;而复杂的评估标准是通过产生式规则或过程来指导匹配。在实际应用时,还需要按照特定应用领域来规定某些适用的判定规则,特别是在实际数据和知识库中的数据存在某个槽上的偏差,但整体相似度较高时,匹配就能够给出较好的推理结果。
具体做法如下:在进行框架的匹配过程中,如果出现待选框架匹配失败的情况,此时需要选择其他框架,匹配失败仍能获取到下一待选框架的有用信息,使匹配过程连续。因此,一般采用下列步骤完成框架的匹配:
①对待选框架中部分匹配成功的片段,将其与其他同一抽象层次的可能待选框架进行片段上的匹配,匹配成功后,属性值可以填入新的框架中。
②或将一个独立存放该框架匹配失败的转向匹配建议的槽引入该框架,从而使系统的控制能够适用于其他框架。
③按照框架系统排列层次自下而上依次匹配,直到找出一个通用的、不与已知矛盾的框架。
在框架表示法的推理中,填槽是让不确定意图转化为明确的知识而补全信息的过程。如“票价 1 500”这一概念中并没有指明价格的单位和币种,尽管在默认条件下可以理解其含义,但在用于推理时,需要将其明确为“票价为人民币 1 500 元”,其中的“人民币”和“元”均为填槽的内容。一般可以使用查询、默认、继承、附加过程计算 4 种方式来实现。其中,查询方式是指使用系统在处理以前推理任务时,保留在数据库中的中间结果或由用户人为输入数据库的数据;默认方式和继承方式相较其他方式简单,主要是根据使用槽的侧面值来给定;而附加过程方式在框架推理中,附加过程引入针对特定领域的知识,从而增强系统的整体求解效率。
基于上述继承和填槽的框架推理方式,框架系统使用的推理方法可分为以下 3 种类型:
(1)面向检索的继承推理
以框架间层次关系的性质继承,利用缺省值为主的推理策略。低层框架可以继承较高层框架的性质。当检索到某个槽值为空(缺省值)时,可从该框架的父辈框架或其祖先框架中继承有关槽值、限制条件或附加过程。
(2)面向过程的推理
把描述型知识与过程型知识的表示组合到同一数据结构中。因此,能够利用槽中的附加过程(或子程序)实现控制。该程序体放在其他地方供多个框架共同使用。
(3)面向规则的推理
在综合运用框架方法和产生式规则表示法的机制中使用的推理方式。框架与规则的连接包括将规则连入框架和将框架连入规则两种方式。其中,将规则连入框架是指在框架中包含规则,用附加过程调用规则集合,从而控制信息的存储、检索和推理。但应用框架中的附加过程来执行所有的推理,实际会出现理解和维护困难,效率低的副作用;而将框架连入规则是指将规则中的前提和结论表示为框架,推理中应用规则控制推理,同时用框架组织智能数据库来维护推理所需知识。
此外,也可以采用组合规则和框架方法建立一种知识表示与推理相结合的综合系统,同时要求区别哪种知识在框架中描述、哪种知识在规则中描述,以及了解规则与框架的连接方法。
与其他表示方法相比,框架表示法具有以下优点:
①结构化。框架是分层次嵌套式结构,既能表示知识的内部结构,又能表示知识之间的联系。
②继承性。下层框架能够从上层框架继承某些属性或者值,又能补充和修改,从而减少冗余信息,节省存储空间。
③自然性。基于框架的理论更符合人类的思维过程。
④模块化。框架之间的数据结构相对独立,有利于知识的添加、删除和修改。
但是框架表示法的结构和形式决定了其不足:构建成本高;框架系统对知识库的质量要求非常高;缺乏形式理论;没有明确的推理机制保证求解的可行性和过程的严格性;表达形式不灵活;框架表示法很难同其他形式的数据集相互关联使用。