第七章几种结构化的知识表示及推理

Download Report

Transcript 第七章几种结构化的知识表示及推理

第 7 章 几种结构化知识表示及其推理
第 7 章 几种结构化知识表示及其推理
7.1 框架
7.2 语义网络
7.3 类与对象
习题七
第 7 章 几种结构化知识表示及其推理
7.1 框 架
7.2.1 框架的概念
顾名思义,框架就是一种结构,一种模式,其一般形式是:
<框架名>
<槽名1><槽值1>| <侧面名11><侧面值111,侧面值112,…>
<侧面名12><侧面值121,侧面值122,…>
…
<槽名2><槽值2>|<侧面名21><侧面值211,侧面值212,…>
<侧面名22><侧面值221,侧面值222,…>
…
第 7 章 几种结构化知识表示及其推理
…
<槽名k><槽值k>| <侧面名k1><侧面值k11,侧面值k12,…>
<侧面名k2><侧面值k21,侧面值k22,…>
…
即一个框架一般有若干个槽,一个槽有一个槽值或者有若干
个侧面,而一个侧面又有若干个侧面值。其中槽值和侧面值
可以是数值、字符串、布尔值,也可以是一个动作或过程,
甚至还可以是另一个框架的名字。
第 7 章 几种结构化知识表示及其推理
例7.1 下面是一个描述“教师”的框架:
框架名:<教师>
类属:<知识分子>
工作:范围:(教学,科研)
缺省:教学
性别:(男,女)
学历:(中师,高师)
类型:(<小学教师>,<中学教师>,<大学教师>)
第 7 章 几种结构化知识表示及其推理
可以看出,这个框架的名字为“教师”,它含有5个槽,
槽名分别是“类属”、“工作”、“性别”、“学历”和
“类型”。这些槽名的右面就是其值,如“<知识分子>”、
“男”、“女”、“高师”、“中师”等等。其中“<知识分
子>”又是一个框架名,“范围”、“缺省”就是侧面名,其
后是侧面值,如:“教学”、“科研”等。另外,用<>括的
槽值也是框架名。
第 7 章 几种结构化知识表示及其推理
例7.2 下面是一个描述“大学教师”的框架:
框架名:<大学教师>
类属:<教师>
学历:(学士,硕士,博士)
专业:<学科专业>
职称:(助教,讲师,副教授,教授)
外语:语种:范围:(英,法,日,俄,德,…)
缺省:英
水平:(优,良,中,差)
缺省:良
第 7 章 几种结构化知识表示及其推理
例7.3 下面是描述一个具体教师的框架:
框架名:<教师-1>
类属:<大学教师>
姓名:李明
性别:男
年龄:25
职业:教师
职称:助教
专业:计算机应用
第 7 章 几种结构化知识表示及其推理
部门:计算机系软件教研室
工作:
参加工作时间:1995年8月
工龄:当前年份-参加工作年份
工资:<工资单>
第 7 章 几种结构化知识表示及其推理
比较例7.2和例7.3中的框架,可以看出,前者描述的是一
个概念,后者描述的则是一个具体的事物。二者的关系是,后
者是前者的一个实例。因此,后者一般称为前者的实例框架。
这就是说,这两个框架之间存在一种层次关系。一般称前者为
上位框架(或父框架),后者为下位框架(或子框架)。当然,
上位和下位是相对而言的。例如“大学教师”虽然是“教师-1”
的上位框架,但它却是“教师”框架的下位框架,而“教师”
又是“知识分子”的下位框架。
第 7 章 几种结构化知识表示及其推理
7.1.2 框架的表达能力
由框架的形式可以看出,框架适合表达结构性的知识。所
以,概念、对象等知识最适于用框架表示。其实,框架的槽就
是对象的属性或状态,槽值就是属性值或状态值。不仅如此,
框架还可以表示行为(动作),所以,有些过程性事件或情节
也可用框架网络来表示。
第 7 章 几种结构化知识表示及其推理
例7.4 下面是关于房间的框架:
框架名:<房间>
墙数x1:
缺省:x1=4
条件:x1>0
窗数x2:
缺省:x2=2
条件:x2≥0
门数x3:
缺省:x3=1
条件:x3>0
第 7 章 几种结构化知识表示及其推理
前墙:(墙框架(w1,d1))
后墙:(墙框架(w2,d2))
左墙:(墙框架(w3,d3))
右墙:(墙框架(w4,d4))
天花板:<天花板框架>
地板:<地板框架>
门:<门框架>
窗:<窗框架>
条件:w1+w2+w3+w4=x2
d1+d2+d3+d4=x3
类型:(<办公室>,<教室>,<会客室>,<卧室>,<厨房>,<仓库>,…)
第 7 章 几种结构化知识表示及其推理
例7.5 机器人纠纷问题的框架描述如图7-1所示。
图7―1 机器人纠纷问题
第 7 章 几种结构化知识表示及其推理
还需指出的是,产生式规则也可用框架表示。
例如,产生式
如果头痛且发烧,则患感冒。
用框架表示可为:
框架名:<诊断1>
前提:条件1:头痛
条件2:发烧
结论:患感冒
第 7 章 几种结构化知识表示及其推理
7.1.3 基于框架的推理
基于框架的推理方法是继承。所谓继承,就是子框架可以
拥有其父框架的槽及其槽值。实现继承的操作有匹配、搜索和
填槽。
匹配就是问题框架同知识库中的框架的模式匹配。所谓问
题框架,就是要求解某个问题时,先把问题用一个框架表示出
来,然后与知识库中的已有框架进行匹配。如果匹配成功,就
可获得有关信息。搜索就是沿着框架间的纵向和横向联系,在
框架网络中进行查找。搜索的目的是为了获得有关信息。
第 7 章 几种结构化知识表示及其推理
框架名: 〈教师-1
姓名:
性别:
年龄: 25
职称:
专业:
部门:
外语水平:
显然, 原框架“教师-1”中无“外语水平”槽, 但它的父
框架是“大学教师”, 该框架内有“外语水平”槽, 并且侧面
“语种”(“范围”)缺省值是“英”,
侧面“水平”的缺省值
是“良”。 于是通过继承, 便知道了“教师-1”懂英语, 且水
平还良好。 那么, 这两个值也就可以填到“教师-1”的槽中。
第 7 章 几种结构化知识表示及其推理
7.1.4 框架的程序语言实现
有一种名为FRL(Frame Representation Language)的程
序设计语言,就是专门基于框架的程序设计语言。用它就可
以方便地实现框架知识表示。不过,用PROLOG也可方便地
实现框架表示。用PROLOG实现框架表示,一般采用含结构
或表的谓词来实现。因为框架实际上就是树,而PROLOG的
结构也是树,表又是特殊的结构,它的元素个数和层数都不
限定,可动态变化,因此,更适于表示一般的框架。
第 7 章 几种结构化知识表示及其推理
例如,前面的“教师”框架用PROLOG可表示如下:
frame(name("教师"),
kind--of("<知识分子>"),
work(scope("教学","科研"),default("教学")),
sex("男","女"),
reco--of--f--s("中师","高师"),
type(“<小学教师>”,“<中学教师>”,“<大学教师>”)).
如果要给出框架的一个通用表示形式,则下面的表示方式
可供参考。
第 7 章 几种结构化知识表示及其推理
frame(name("教师"),
body([st("类属",[st("<知识分子>",[])]),
st("工作",[st("范围",[st("教学",[]),=st("科研",[])]),
st("缺省",[st("教学",[])])]),
st("性别",[st("男",[]),st("女",[])]),
st("学历",[st("中师",[]),st("高师",[])]),
st("类型",[st("<小学教师>",[]),st("<中学教师>",[]),=
st("<大学教师>"[])])]))
第 7 章 几种结构化知识表示及其推理
这是一个PROLOG的“事实”,其谓词及领域说明如下:
domains
name=name(string)
body=body(subtree list)
subtreelist=subtree*
subtree=st(string,subtreelist)
database
frame(name,body)
其中的subtreelist是递归定义的。按此定义所有框架
都取统一的表示形式。
第 7 章 几种结构化知识表示及其推理
7.2 语义网络
7.2.1 语义网络的概念
语义网络是由节点和边(也称有向弧)组成的一种有
向图。其中节点表示事物、对象、概念、行为、性质、状态
等;有向边表示节点之间的某种联系或关系。例如图7―2就
是一个语义网络。其中,边上的标记就是边的语义。
还需指出的是, 上述关于框架的推理方法, 实际仅适于
装载着概念和实体对象的框架, 而对于装载着规则的框架, 其
推理就要用基于规则的演绎推理方法。
第 7 章 几种结构化知识表示及其推理
语义网络的概念最先是由Quillian提出来的,他于1968
年在他的博士论文中,把语义网络作为人类联想记忆的一
个显式心理模型。所以,语义网络也称联想网络。
现在,语义网络的理论已经有了长足的发展。有人把
它划分为五个级别:执行级、逻辑级、认识论级、概念级
和语言学级。并分为七种类型:
(1)命题语义网(包括分块联想网络);
(2)数据语义网:以数据为中心的语义网络;
第 7 章 几种结构化知识表示及其推理
(3)语言语义网:用于自然语言的分析和理解;
(4)结构语义网:描述客观事物的结构,常见于模式识别
和机器学习等领域;
(5)分类语义网:描述抽象概念及其层次;
(6)推理语义网:是一种命题网,但它已在某种程度上规
范化,更适于推理;
(7)框架语义网:与框架相结合的语义网。
第 7 章 几种结构化知识表示及其推理
图7―2
苹果的语义网络
第 7 章 几种结构化知识表示及其推理
6.3.2 语义网络的表达能力
由语义网络的结构特点可以看出,语义网络不仅可以表示
事物的属性、状态、行为等,而且更适合于表示事物之间的关
系和联系。而表示一个事物的层次、状态、行为的语义网络,
也可以看作是该事物与其属性、状态或行为的一种关系。如图
7―3所示的语义网络,就表示了专家系统这个事物(的内涵),
同时也可以看作是表示了专家系统与“智能系统”、“专家知
识”、“专家思维”及“困难问题”这几个事物之间的关系或
联系。所以,抽象地说,语义网络可表示事物之间的关系。因
此,关系(或联系)型的知识和能化为关系型的知识都可以用
语义网络来表示。下面我们就给出常见的几种。
第 7 章 几种结构化知识表示及其推理
图7―3 专家系统的语义网络
第 7 章 几种结构化知识表示及其推理
1.实例关系
实例关系表示类与其实例(个体)之间的关系。这是最常
见的一种语义关系。例如,“小华是一个大学生”就可表示为
图7―4。其中,关系“是一个”一般标识为“is-a”,或ISA。
第 7 章 几种结构化知识表示及其推理
是一个
小华
大学生
图7―4 表示实例关系的语义网络
第 7 章 几种结构化知识表示及其推理
2.分类(或从属、泛化)关系
分类关系是指事物间的类属关系,图7―5就是一个描
述分类关系的语义网络。在图7―5中,下层概念节点除了
可继承、细化、补充上层概念节点的属性外,还出现了变
异的情况:鸟是鸵鸟的上层概念节点,其属性是“有羽
毛”、“会飞”,但鸵鸟的属性只是继承了“有羽毛”这
一属性,而把鸟的“会飞”变异为“不会飞”。其中,关
系“是一种”一般标识为“akindof”或AKO。
第 7 章 几种结构化知识表示及其推理
图7―5 表示分类关系的语义网络
第 7 章 几种结构化知识表示及其推理
3.组装关系
如果下层概念是上层概念的一个方面或者一部分,则
称它们的关系是组装关系。例如图7―6所示的语义网络就是
一种聚集关系。其中,关系“一部分”一般标识为“a-partof”。
第 7 章 几种结构化知识表示及其推理
桌子
一部分
一部分
桌面
桌腿
图7―6 表示组装关系的语义网络
第 7 章 几种结构化知识表示及其推理
4.属性关系
属性关系表示对象的属性及其属性值。例如,图7―7表
示simon是一个人,男性,40岁,职业是教师。
第 7 章 几种结构化知识表示及其推理
Person
ISA
sumon
sex
男
age
40
p ro fessio n
教师
图7―7 表示属性关系的语义网络
第 7 章 几种结构化知识表示及其推理
5.集合与成员关系
意思是“是……的成员”,它表示成员(或元素)与集合
之间的关系。例如,“张三是计算机学会会员”可表示为图
7―8。其中,关系“是成员”一般标识为“a-member-of”。
第 7 章 几种结构化知识表示及其推理
是成员
张三
计算机学会
图7―8 表示集合—成员关系的语义网络
第 7 章 几种结构化知识表示及其推理
6.逻辑关系
如果一个概念可由另一个概念推出,两个概念间存在因
果关系,则称它们之间是逻辑关系。图7―9所示的语义网络
就是一个逻辑关系。
第 7 章 几种结构化知识表示及其推理
雨天
带雨伞
则
AND
OR
带雨披
外出
图7―9 表示逻辑关系的语义网络
第 7 章 几种结构化知识表示及其推理
7.方位关系
在描述一个事物时,经常需要指出它发生的时间、位置,
或者指出它的组成、形状等等,此时可用相应的方位关系语
义网络表示。例如事实:
张宏是石油学院的一名助教;
石油学院位于西安市电子二路;
张宏今年25岁。
可用图7―10所示的语义网络表示。
第 7 章 几种结构化知识表示及其推理
味道
电子2路
属
于
西安市区
工作在
石油学院
职务
张宏
年
龄
25岁
图7―10 表示方位关系的语义网络
助教
第 7 章 几种结构化知识表示及其推理
8.所属关系
所属关系表示“具有”的意思。例如“狗有尾巴”可表示
为图7―11。
狗
have
尾巴
图7―11 表示所属关系的语义网络
第 7 章 几种结构化知识表示及其推理
语义网络中的语义关系是多种多样的,一般根据
实际关系定义。如常见的还有before、after、at等表示
时间次序关系和located-on、located-under等表示位置关
系。进一步,还可对带有全称量词和存在量词的谓词
公式的语义加以表示。
由上所述可以看出,语义网络实际上是一种复合
的二元关系图。网络中的一条边就是一个二元关系,
而整个网络可以看作是由这些二元关系拼接而成。
第 7 章 几种结构化知识表示及其推理
上面我们是从关系角度考察语义网的表达力的。下面我
们从语句角度来考察语义网。
例如,对于如下的语句(或事件):
小王送给小李一本书。
用语义网络可表示为图7―12,其中S代表整个语句。这
种表示被称为是自然语言语句的深层结构表示。
语义网络也能表示用谓词公式表示的形式语言语句。例
如:
x(student(x)∧read(x,三国演义))
即“某个学生读过《三国演义》”,其语义网络表示为图
7―13。
第 7 章 几种结构化知识表示及其推理
图7―12 语句(事件)的语义网络
第 7 章 几种结构化知识表示及其推理
stu d en t
read
ISA
x
b oo k
ISA
sub ject
read 1
ISA
o bject
三国演义
图7―13 谓词公式的语义网络
第 7 章 几种结构化知识表示及其推理
又如:
 x(student (x) → read (x, 三国演义))
即“每个学生读过《三国演义》”, 其语义网络表示为图 7-14。
GS
stu d en t
ISA
F
R
read
ISA
x
b oo k
ISA
ISA
sub ject
read 1
o bject
A
图7―14
分块语义网络
三国演义
第 7基于语义网络的推理
章 几种结构化知识表示及其推理
7.2.3
基于语义网络的推理也是继承。继承也是通过匹配、搜
索实现的。问题求解时,首先根据待求问题的要求构造一个
网络片断,然后在知识库中查找可与之匹配的语义网络,当
网络片断中的询问部分与知识库中的某网络结构匹配时,则
与询问处匹配的事实,就是问题的解。我们要通过图7-1所示
的语义网络(假设它已存入知识库), 查询富士苹果有什么特
点。那么, 我们可先构造如图7-15所示的一个网络片段。然
后, 使其与知识库中的语义网络进行匹配。 匹配后 X 的值应
为“脆甜”。当然, 这是一个简单问题。如果问题复杂, 也
可能不能通过直接匹配得到结果, 那么还需要沿着有关边进
行搜索, 通过继承来获得结果。例如要问:吃富士苹果对人
的健康有何意义? 那么, 通过上述网络片断不能直接获得答
案, 这时, 就需沿着边“AKO”一直搜索到节点“水果”, 由
水果的“富营养”性, 通过特性继承便得到富士苹果也富营
第 7 章 几种结构化知识表示及其推理
苹果
AKO
富士
特点
x
图7―15 语义网络片段
第 7 章 几种结构化知识表示及其推理
7.2.4 语义网络的程序语言实现
由于语义网络是一个二元关系图,所以用
PROLOG可方便地实现语义网络知识表示。例如,图
7―1所示的语义网络用PROLOG可表示如下:
a--kind--of("苹果","水果").
taste("苹果","甜").
a--kind--of("富士","苹果").
intro--from("富士","日本").
is--a("日本","亚洲国家").
第 7 章 几种结构化知识表示及其推理
a--kind--of("秦冠","苹果").
produ--in("秦冠","陕西").
is--located--at("陕西","中国西部").
a--part--of("中国西部","中国").
………
也可以表示为
arc(a--kind--of,"苹果","水果").
arc(taste,"苹果","甜").
arc(a--kind--of,"富士","苹果").
arc(intro--from,"富士","日本").
arc(is--a,"日本","亚洲国家").
第 7 章 几种结构化知识表示及其推理
arc(a--kind--of,"秦冠","苹果").
arc(produ--in,"秦冠","陕西").
arc(is--located--at,"陕西","中国西部").
arc(a--part--of,"中国西部","中国").
………
当然,我们也可以将一个网络或网络片段组织在
一个事实中。例如:
net1( a--kind--of(“苹果”,“水果”),
taste(“苹果”,“甜”),
a--kind--of(“秦冠”,“苹果”),
produ--in("秦冠","陕西")).
第 7 章 几种结构化知识表示及其推理
7.3 面向对象知识表示
近年来,面向对象技术蓬勃兴起。在知识表示领域则出
现了面向对象的知识表示方法。
面向对象技术中的核心概念是对象和类。对象可以泛指
一切事物,类则是一类对象的抽象模型。反之,一个对象是
其所属类的实例。通常,在面向对象的程序设计语言中,只
给出类的定义,其对象由类生成。
第 7 章 几种结构化知识表示及其推理
类的定义中就说明了所辖对象的共同特征(属性、状态
等)和行为。特征用变量表示,行为则是作用于这些特征和
作用于对象的一组操作,如函数、过程等。这些操作一般称
为方法。这样,一个类将其对象所具有的共同特征和操作组
织在一起,统一进行定义,以供全体对象共享。即当给类中
的特征变量赋予一组值时,则这组值连同类中的方法,就构
成了一个具体的对象。
第 7 章 几种结构化知识表示及其推理
例7.6 下面是面向对象程序设计语言C++中一个雇
员类和经理类的定义。
class Employee
{
privite:
char*Name;
int Age;
int Salary;=
public:
Employee(char*name,int age,int salary);
~Employee();
第 7 章 几种结构化知识表示及其推理
};
Employee∷Employee(char*name,int age,int salary)
{
Name=newchar[strlen(name)];
strcpy(Name,name);
Age=age;
Salary=salary;=
}=
Employee∷~Employee()
{
Delete Name;=
}
Void Employee∷Change(int age,int salary)
{
第 7 章 几种结构化知识表示及其推理
Age=age;
Salary=salary;
}
Void Employee∷Retire()
{if(Age>60)
Delete this;
}
以上是雇员类的定义,用此定义就可生成一个雇员类的实例,即雇
员对象。例如下面的语句
Employeee1("李明",30)
第 7 章 几种结构化知识表示及其推理
就生成一个名为李明,年龄为30岁的雇员。
下面是经理类的定义。
Class Manager:public Employee
{
Int Level;
public:
Manager(char*name,int age,int salary,int level);
~Manager();
Void Change Level(int n);
};
第 7 章 几种结构化知识表示及其推理
由于经理类是雇员类的一个子类,所以,经理类就继承
了雇员类的全部属性和行为。这两个类之间也就构成了一种
层次关系。
一般认为,面向对象知识表示是最结构化的知识表示方
法。面向对象知识表示很类似于框架,知识可以使用类按一
定层次形式来组织。由于面向对象知识表示还具有封装特性,
从而使知识更加模块化。所以,用面向对象方法表示的知识
相当结构化和模块化,而且容易理解和管理。因此,这种方
法特别适合于大型知识库的开发和维护。
第 7 章 几种结构化知识表示及其推理
习题七
1. 什么是知识? 它有哪些特性? 有哪几种分类方法?
2. 在选择知识表示模式时, 应该考虑哪些主要的因素?
3. 试比较框架与语义网络区别及关系。
4.请把下列命题表示的事实用一个语义网络表示出来, 并
用PROLOG语言实现之。
(1) 树和草都是植物。
(2) 树和草都是有根有叶的。
(3) 水草是草, 且长在水中。
(4) 果树是树, 且会结果。
(5) 樱桃树是一种果树, 它结樱桃。
第 7 章 几种结构化知识表示及其推理
5.把下列语句用语义网络表示。
(1) 海浪把军舰轻轻地摇。
(2) 李老师从第一周到第十周给计算机1班上人工智能课。
(3) 每一个大学生都学过一门程序设计语言。
6. 试写出“学生框架”的描述, 并用PROLOG语言实现之。
7. 试述语义网络表示法和框架表示法求解问题的过程,
并对它们进行比较。
8. 面向对象知识表示有什么特点?它与框架有什么区别?
第 7 章 几种结构化知识表示及其推理
9. 用面向对象程序设计语言(如C++)描述如下概念及其他
们之间的关系。
(1) 水果、苹果、红富士苹果、香蕉。
(2) 人、职员、研究生、在职研究生。
10. 用面向对象程序设计语言(如C++)分别实现计算机和
交通工具的类层次结构。
11. 用面向对象程序设计语言(如C++)定义“规则类”。
提示: 规则类至少应有“前提”和“结论”两个成员。