文档介绍:第6章知识表示
知识及其表示
框架
语义网络
面向对象知识表示
知识及其表示
知识的概念
究竟什么是知识呢?我们认为:
知识就是人们对客观事物(包括自然的和人造的)及其规律的认识,知识还包括利用客观规律解决实际问题的方法和策略。
对客观事物及其规律的认识,包括对事物的现象、本质、属性、状态、关系、联系和运动等的认识,即对客观事物的原理的认识。
利用客观规律解决实际问题的方法和策略,包括解决问题的步骤、操作、规则、过程、技术、技巧等具体的微观性方法;也包括诸如战术、战略、计谋、策略等宏观性方法。
所以,就内容而言,知识可分为(客观)原理性知识和(主观)方法性知识两大类。
就形式而言,知识可分为显式的和隐式的。
知识表示
面向计算机的知识描述或表达形式和方法。
面向人的知识表示可以是语言、文字、数字、符号、公式、图表、图形、图像等多种形式。这些表示形式是人所能接受、理解和处理的形式。但面向人的这些知识表示形式,目前还不能完全直接用于计算机,因此就需要研究适于计算机的知识表示模式。
具体来讲,就是要用某种约定的(外部)形式结构来描述知识,而且这种形式结构还要能够转换为机器的内部形式,使得计算机能方便地存储、处理和利用。
知识表示的语言实现
上面谈的知识表示仅指知识的逻辑结构或形式。要把这些外部的逻辑形式转化为机器的内部形式,还需要程序语言支持。
原则上讲,一般的通用程序设计语言都可实现上述的大部分表示方法。但使用专用的面向某一知识表示的语言更为方便和有效。因此,几乎每一种知识表示方法都有其相应的专用实现语言。
例如,支持谓词逻辑的语言有PROLOG和LISP,专门支持产生式的语言有OPS5,专门支持框架的语言有FRL,支持面向对象表示的语言有Smalltalk、C++和Java等,支持神经网络表示的语言有AXON….
框架
框架的概念
框架是一种结构模式,其一般形式是:
<框架名>
<槽名1><槽值1>| <侧面名11><侧面值111,侧面值112,…>
<侧面名12><侧面值121,侧面值122,…>
<槽名2><槽值2>|<侧面名21><侧面值211,侧面值212,…>
<侧面名22><侧面值221,侧面值222,…>
…
<槽名k><槽值k>| <侧面名k1><侧面值k11,侧面值k12,…>
<侧面名k2><侧面值k21,侧面值k22,…>
其中槽值和侧面值可以是数值、字符串、布尔值,也可以是一个动作或过程,甚至还可以是另一个框架的名字。
一个描述“教师”的框架:
框架名:<教师>
类属:<知识分子>
工作:范围:(教学,科研;缺省:教学)
性别:(男,女)
学历:(中师,高师)
类型:(<小学教师>,<中学教师>,<大学教师>)
可以看出,这个框架的名字为“教师”,它含有5个槽,槽名分别是“类属”、“工作”、“性别”、“学历”和“类型”。这些槽名的右面就是其值,如“<知识分子>”、“男”、“女”、“高师”、“中师”等等。其中“<知识分子>”又是一个框架名,“范围”、“缺省”就是侧面名,其后是侧面值,如:“教学”、“科研”等。
用<>括的槽值也是框架名。
一个描述“大学教师”的框架:
框架名:<大学教师>
类属:<教师>
学历:(学士,硕士,博士)
专业:<学科专业>
职称:(助教,讲师,副教授,教授)
外语:语种:范围:(英,法,日,俄,德,…)
缺省:英
水平:(优,良,中,差)
缺省:良
描述一个具体教师的框架:
框架名:<教师-1>
类属:<大学教师>
姓名:李明
性别:男
年龄:25
学历:博士
职称:助教
专业:计算机应用
外语:英
水平:良
部门:计算机系软件教研室
工作:
参加工作时间:1995年8月
工龄:当前年份-参加工作年份
工资:<工资单>
可以看出,两个框架之间存在一种层次关系。一般称前者为上位框架(或父框架),后者为下位框架(或子框架)。当然,上位和下位是相对而言的。
框架的表达能力
由框架的形式可以看出,框架适合表达结构性的知识。所以,概念、对象等知识最适于用框架表示。其实,框架的槽就是对象的属性或状态,槽值就是属性值或状态值。
框架还可以表示行为(动作),所以,有些过程性事件或情节也可用框架网络来表示。
关于房间的框架:
框架名:<房间>
墙数x1:
缺省:x1=4
条件:x1>0
窗数x2:
缺省:x2=2
条件:x2≥0
门数x3:
缺省:x3=1
条件:x3>0
前墙:(墙框架(w1,d1))
后墙:(墙框架(w2,d2))
左墙:(墙框架(w3,d3))
右