面向对象的知识表示

2019-09-23 06:35曹飞腾
智富时代 2019年8期
关键词:推理机面向对象

曹飞腾

【摘 要】本文主要运用prolog实现面向对象知识表示的内容,并且利用推理机的功能实现具体的知识表示。

【关键词】面向对象;知识表示;推理机

一、面向对象的知识表示方法

目前,面向对象技术的研究已经深入到计算机软、硬件的多个领域,人们开始把面向对象的思想、方法用于智能系统的设计与构造,并在知识表示、知识库的组成与管理、专家系统的设计等方面有了一定进展。相对于传统的知识表示方法,面向对象的知识表示方法从客观世界的具体事物及事物间的联系进行抽象,更符合人们认识问题和分析问题的习惯思维方式,并具有代码重用和可維护性好等特点。用面向对象的方法表示的知识系统中,对象的静态属性就是对象具有知识,而对知识的处理方法和操作就是该对象所具有行为,因此,一个从客观世界抽象出来的对象可表示为:<对象>::=(ID,DS,MS,MI)其中:ID是对象的标识符,即对象名;DS是对象的数据结构,描述对象的静态属性;MS是对象的方法,用于说明对象提供的对静态数据进行处理的方法操作,由于对象的数据只能由其具体操作来改变,其它对象不能操纵,从而体现了面向对象方法所具有信息隐蔽性即封装性;MI作为对象的消息接口,用于接收外部信息和驱动内部相关操作及产生向外的输出信息,问题的求解就是依靠对象间传递消息完成的。面向对象设计需要将一组客观对象具有的共同特征抽象出来,即采用从特殊到一般的归纳方法构造类,为系统构成提供了同一类对象之间代码共享的手段。此外,面向对象设计还是一个建立类层次的过程,派生类通过继承机制从较简单的基类中继承特征,实现代码重用,为系统构成提供了类之间代码共享的手段。用面向对象方法表示知识时需要对类进行描述,具体描述形式如下:

class<类名>[:]

[<类变量表>]

Structure

<对象静态结构描述>

Method

<对象的操作定义>

Restraint

[<限制条件>]

END

其中,类名是系统中类的唯一标识,如果该类是由其它类继承而来,则superclass指出其基类名字,<类变量表>给出类所有对象所共享的一组变量,<对象静态结构描述>用于描述类对象的数据结构,<对象的操作定义>给出对类对象可进行的操作和方法,也可以是一组规则,<限制条件>指出该类对象应满足的限制条件。

二、推理机制

领域专家解决领域问题的能力主要体现在两个方面:

一是专家拥有大量的知识,二是专家具有选择知识来解决问题的能力。知识库和推理机是专家系统必不可少的组成部分,是基于知识的推理的基础和核心。在故障诊断中,推理过程即是根据故障事实,利用知识库中的知识,采用某种推理策略得到故障的原因(位置)。在面向对象的知识表示方法中,知识对象将实体属性、知识以及知识处理方法封装在一起,知识对象通过消息(接口)与外部发生联系,整个推理过程就是消息在各对象之间传递的过程。面向对象的推理过程是知识对象类的实例化过程,如果传递到知识对象的消息触发了其方法,则该知识对象被激活,知识对象类实例化一个知识对象过程是:如果该对象还包含其他对象类作为自己的成员,则首先实例化那些对象,然后进行属性填充、继承、过程调用等方法获取知识,建立起一个新对象。对象创建后开始进行推理,推理首先在对象内部,在知识对象内部确定导致该知识对象对应的结构元素发生故障的子结构或发生故障的同层次的其它结构元素,如果是子结构故障,说明故障发生在对象所在实体,则引导系统向下一层次进行诊断;若是同层次的其它结构元素发生故障,则转到同层次的其它知识对象进行诊断推理。按上述方法将推理一直进行下去,直到得到诊断结果。整个推理过程可以表示成一个树形结构,树的叶子结点就是诊断的结果。

三、实例

(一)代码

在prolog中用对象的知识表示来表示人与爱好的关系,其代码如下:

predicates

domains————/定义的域,这里之定义Name 和hobby两域/

name,hobby=symbol

predicates———————————/谓词/

likes(name,hobby)

friend(name,name)

clauses————————————/类的定义/

likes(bell,sports).

likes(mary,music).

likes(mary,sports).

likes(jane,smith).

friend(john,X):- likes(X,sports),likes(X,music).

goal

likes(X,sports),likes(X,music)

其在prolog推理机中写入的代码如下:

likes(bell,sports).

likes(mary,music).

likes(mary,sports).

likes(jane,smith).

friend(john,X):- likes(X,sports),likes(X,music).

(二)利用推理机的方式实现面向对象的知识表示内容

首先安装好prolog并注册,根据prolog教程中对推理机的安装与调试办法,将其进行调试。其打开页面如下图1.1所示:

第二步:选择“file”—“new”。当打开新建的页面后,将上面知识表示的代码粘贴其中,如图1.2所示:

第三步:选择“Engine”—“reconsult”,将要推理的内容载入推理机。

第四步:在“Dialog”键入“likes(X,music)”并按回车,就可出现推理的结果。如图1.3所示:

运行结果为:

X=mary

【参考文献】

[1]曹元大,徐漫江.面向对象知识表示在专家系统开发工具中的应用[J].北京:北理工大学学报,2000,20(6):688-692.

[2]张钦,人工智能中知识表示方法之比较[J].科教文汇.2008年9月

[3]雷英杰,邢清华,王涛.人工智能(AI)程序设计(面向对象语言)[M].清华大学出版社.2002年

[4]刘启和,杨国纬.面向对象的知识表示[J].计算机科学.2004年Vol.3 NO3.

猜你喜欢
推理机面向对象
面向对象的计算机网络设计软件系统的开发
面向对象的数据交换协议研究与应用
面向对象的几何定理推导系统的设计与实现
基于面向对象的Office评测系统的分析
峰丛洼地农作物面向对象信息提取规则集
继电保护整定计算模块的设计
面向对象的SoS体系结构建模方法及应用
面向对象信息提取中影像分割参数的选择
白绒山羊疾病诊断专家系统推理机的设计