一种新的知识表示和知识推理研究
2011-02-28谭成兵
方 晓,马 健,谭成兵,丁 丽
(亳州职业技术学院信息工程系,安徽 亳州236800)
目前已经存在许多知识表示方法和推理技术,在智能系统中发挥着重要作用,但是也存在共同的问题,就是创造性思维还很难在智能体系系统中得到发挥.所以本文引入可拓学理论和面向对象技术.可拓学虽然是一门新兴学科,但是通过几十年的发展,已经形成了基本的理论框架,它是研究事物的可拓性以及开拓的规律与方法,并用以解决问题的学科,而面向对象是当今比较流行的思想和技术.本文就是将可拓学理论和面向对象思想应用于人工智能中,针对现有人工智能技术的不足,做一些研究工作.
本文首先给出了面向对象的可拓知识表示方法.以及把此方法运用到常识中,在此基础上给出一些面向对象的可拓推理规则.
1 主要工作
1.1 确定知识表示模型
用三元组g=(object-name,c,v)或g=(知识对象名,特征,特征量值)表示确定知识,其中的object-name称为知识对象名 (类、实例、接口、其它特征),ci(i=1,2,…n)为特征 (属性、方法、知识对象),νi(i=1,2,…n)为object-name关于ci的量值 (参数、名称、解释说明等).以对象名objectname,n个特征c1,c2,…nn)和相应的量值ν1,ν2,…νn构成的n维阵列,即n维基元,如图1所示.
图1 确定知识表示模型
1.2 不确定知识表示模型
在确定知识表示的基础上进行了改进.确定了主要的特征关系,也就是综合了Bayes思想提出的,采用可拓学的复元的结构进行表示,
图2 不确定知识表示模型
结合李俊铃的文献中定义,进行以下说明[1]:
定义1 重要程度是指在前提中所占的重要程度,用IM来表示.则
定义2 可信度是指前件或后件为真的程度.用CF表示,CF∈ [0,1].
定义3 前件的关系指前件之间是或关系还是与关系,才有后件 (结论).
例如:
Pi(i=1,2,3,4)分别是0.6,0.5,0.8,0.9,IMi(i=1,2,3,4)分别是0.1,0.2,0.4,0.3,CFi(i=1,2,3,4)分别是0.5,0.6,0.8,0.4,H 为后项Ph=0.6,CFh=0.8,如图3所示.
图3 不确定知识表示实例
1.3 心理常识的表示
常识知识是人类知识的重要组成部分,对人工智能的发展有重要意义.常识与一般的知识不一样,除了具有知识的共性,还有自己特有的性质.本节针对心理常识进行研究和分析.常识概念的特点:
(1)模糊性.①概念外延的定义不清,实例对概念的隶属关系不确定.如鲸鱼与常识 “鱼”的概念.②概念的内涵定义不清,常识的属性取值往往是不精确的.例如 “年轻”的理解.③常识概念使用的模糊性.常识概念是在长期生产生活实践中积累形成的,所以常识概念构词既有认知规律起作用,即 “构词法”,也有历史的偶然性或习惯起作用.
(2)无处不在性.科学概念往往来自于有边界的科学领域.边界性表现在:可有效判定概念是否属于该领域的讨论范围.常识概念涉及生活的各个方面.因此,如何限定常识概念集的边界,如何获取和组织这些 “散乱”的常识概念是常识概念获取的关键问题之一.获取心理常识概念的第一步是确定将哪些常识概念加入心理常识概念库[2].
(3)私有性.不同语境对应不同的常识概念集.例如 “病毒”对医务工作者是常识,对小学生是专业词汇;“饺子”是中国文化中的常识概念,而非外国文化中的常识概念[2].
常识知识是一类重要的人类知识,对自然语言分析、机器智能研究和自然推理研究等都有重要意义.在一定的场合下智能体为亲情中的角色,各个智能体之间的关系为亲情关系,当某个智能体方式某种行为的时候,各个智能体之间的亲情关系的常识表示,进行常识推理,作出智能体的行为[2,3].
在曹存根等人对常识的定义的基础上对以下概念进行了定义[3].
(1)常识基本概念
定义4 角色 (用R表示).对于一个给定的实体E,R是E的一个角色当且仅当R满足:
①至少存在另外一个实体E′,与E具有关系,即Relation(E,E′);
②在得到角色R之前或失去角色R之后,实体E仍然存在并且仍保持为它本身.
用一个四元组来表示角色R,即R=(R-Name,Player,Event,R-Relations),其中R-Name是该角色的名称,作为一个角色谓词使用,用来表示参数所扮演的角色;Player是角色扮演者,指角色扮演者的自然类型 (例如人、男人、女人、成年人、青年男人等以固有的生理差异划分的类型);Event是角色作为施动者发生的具体事件;R-Relations是一定的亲属中该角色与其他角色间存在的、相对稳定的各种角色关系 (Role Relations).
定义5 事件 (用Event表示)是一个五元组,E=(Time,Location,Agent,Nature,Condition),其中Time指角色出现的时间;Location指角色出现的地点;Agent指场景中与亲情产生相关的各种角色,包括当前的亲情主体所扮演的角色;Nature指事件发生,与角色有关的性质;Condition则是事件发生是由于角色自身条件以及外界条件引起的.
定义6 角色关系 (R-Relation)是一个三元组,即 R-Relation=(R-Name,RA,RB),其中 RName是角色关系的名称,是亲情关系中的一种,作为一个角色关系谓词使用.角色关系谓词是二元的,两个参数的类型相同,同为角色;RA和RB表示两个角色,它们之间存在关系R-Relation.
根据心理学研究的结果,情绪的产生、变化是情绪主体与外部自然、社会环境发生交互作用的结果,其中认知过程起着关键作用.把参与角色扮演者认知过程的要素组织为角色内涵 (Role Connotation).
定义7 角色结构 (用R-Structure,RS表示)指一个特定角色所具有的一系列相对固定的观念、希望、社会规范和行为模式,表示为一个五元组,R-Connotation=(Believes,Expectations,Norms,Behavior-Modes,Type).其中Believes是角色的信念,即具有该角色的人相信成立的那些事实或规则 (含人的知识和常识);Expectations是角色的期望,即扮演该角色的人所具有的各种愿望和需要;Norms是角色的规范,即角色扮演者在所处社会环境中应该遵守的各种行为规范;Behavior-Modes是角色的行为.Type是角色所属的自然属性;
定义8 角色自然属性 (用Natural Type,NT表示)角色的自然类型是一个四元组,NT=(Trait,Belief,Expectation,Norm).Trait是角色的自然类型所具有的特征;Belief指的是角色的自然类型所具有的信念结构;Expectation指的角色自然类型所具有的期望结构;Norm是角色的自然类型所具有的规范结构;
定义9 角色继承的关系 (Inheritance of Roles)给定一个角色类型的集合R,存在一个定义在R上的偏序关系ℓ,构词了一个角色的层次结构,对于R中的两个角色类型r和r′,若r是相对于r′来说更泛化的一个角色类型,则称r是r′的一个父角色类型,r′是r的一个子角色类型,记为r′≤r[3].
(2)约束条件
条件1 当亲属关系确定后,两角色在自然属性年龄、性别存在约束关系.
例如:角色A和角色B为父子关系:A (F-S)B,约束条件A.age>B.age而且A.age-B.age>=x,x为一个定值.A.sex=M&B.sex=M.如,对两种有继承关系的角色在年龄上的约束.在父子关系中,父亲的年龄一定大于儿子的年龄,而且要有一定的差距.
条件2 对于两个角色类型r1,r2,如果r1≤r2,则角色r1的自然类型NT1与角色r2的自然类型NT2也应当满足关系:NT1≤NT2或NT1=NT2[3].
其中,≤为角色的继承关系,“=”则说明NT1=NT2是相同的自然类型属性.这样就可以保证角色结构不会产生矛盾.
(3)心理常识的可拓表示形式
根据定义4用可拓知识表示方法进行表示:
根据定义5用可拓知识表示方法进行表示:
根据定义6用可拓知识表示方法进行表示:
根据定义7用可拓知识表示方法进行表示:
根据定义8用可拓知识表示方法进行表示:
根据定义9用可拓知识表示方法进行表示:
(4)事例说明
例如:A为父亲的角色和B为儿子的角色.事件为B在高考时失败,A与B的心理常识的可拓的形式表示:
上述表示可知:儿子学习不勤奋,导致高考失败.父亲意识到高考的重要性,内心比较痛恨儿子.
2 知识推理
知识推理是专家系统的核心部分,本章先介绍面向对象的推理,然后给出了面向对象的可拓推理规则,并对知识的一致性、冗余性、继承循环进行研究.
2.1 面向对象推理
在面向对象的知识表示中,对象将实体、知识以及知识处理方法封装在一起,这种封装机制实现了信息隐藏和数据抽象.对象通过接口与外部发生联系[4],如图4所示.
对象之间的相互作用体现在 “消息”的传送上.对象响应外界发送来的消息,按照消息模式找出匹配的操作并执行.消息传递机制真实地反映了客观世界的内部结构[4].
对于一类领域子问题,如果它们的求解方法近似,可以通过继承共享其推理机的实现.对于求解方法不同的对象,也应该继承其方法的声明,给外部提供统一的接口.利用对象的多态性,外界可以通过统一的方法访问对象.
在对象与对象之间的外部推理,是通过特性继承和消息传递来实现的.对象与基类、基类与派生类之间可以通过实例化和继承来传递特性值和知识处理方法.在没有派生关系的类与对象之间则可以通过消息传递来达到获取知识的目的.消息传递通常采用数据驱动的方式.消息传递具有递推功能即收到消息的对象类还可以将消息或部分消息传递到其它对象类,以求取得其它对象类协同求解问题的目的[4].
知识对象的内部推理和对象间推理的过程也是各个对象类的实例化过程.需要接收消息的对象首先进行对象的实例化过程,如果该对象还包含其他对象类作为自己的成员,则首先实例化那些对象,这一过程递推进行,最终通过属性填充、继承、过程调用等手段获取知识,建立起一个新对象;然后推理过程就首先在该对象内部进行,完成与对象所对应的诊断子系统内部结构有关的故障假设和证实任务.如果假设能够成立,说明该对象所对应的实体出现了故障,否则应引导系统进入下一层或与其相关的另一子系统进行推理.这一过程不断进行直到推理完成或推理失败.最终可以建立起一个推理树,树中的每一个节点则对应着原型知识库中的某一知识对象,也就是一个实体[4].面向对象的表示方法具有封装性、模块性、继承性、易维护性等优点,克服了知识库开发、维护以及管理的难度[5].
图4 消息传递机制
2.2 面向对象的可拓推理
(1)类-对象的可拓推理
设有基元的基元系统Sobject、Sclass表示
其中R1,R2,…Rn为Sclass基元系统的对象,R′1,R′2,…R′n为Sobject基元系统的对象.M1,M2,…Mk和M′1,M′2,…M′k分别为Sobject、Sclass的特征 (属性和方法),V(M1)V(M2),…V(Mk)和V(M′1),V(M′2),…V(M′k)分别为 M1,M2,…Mk和M′1,M′2,…M′k相对的量值.若
∞表示R′1对R1的实例化,则在语义约束上有定义:
如果 {M1,M2,…Mk}≅ {M′1,M′2,…M′k}
对于上面的例子则有:张三属于人类.
(2)继承的可拓推理
在面向对象的技术当中,继承是一种类和类之间的关系.即子类和父类的关系.子类的属性和方法(行为)是继承了父类的方法和属性.但子类中的另外一些属性和方法是本身特有的.在一个智能系统中不可能也没有必要把某一事物的所有相关信息用一个单元来记录.事物的相关信息一般分名别类记录在不同单元内,共同信息可只储存在一个单中,事物的比较全面、精确的信息可通过单元之间的推理来获得.而单元之间推理的主要部分是继承的推理.所谓继承的可拓推理是根据基元关系把对事物、事件 (包括过程)的特征描述从一基元传递到另一基元的过程.
单一继承的可拓推理
基元子类对基元父类基元的继承的可拓推理.设有基元的基元系统Ss-class、Sf-class表示:
Sf-class= {R1,R2,…Rn}*{M1,M2,…Mk}*{V(M1),V(M2),…V(Mk)}
Ss-class= {R′1,R′2,…R′n}*{M′1,M′2,…M′x}*{V(M′1),V(M′2),…V(M′x)}
而且x≥k.其中R1,R2,…Rn为基元系统Sf-class的成员,R′1,R′2,…R′n为基元系统Ss-class的成员.M1,M2,…Mk和M′1,M′2,…M′x分别是Sf-class、Ss-class的特征.
Vj(M′i)(i=1,2,…x,j=1,2,…x)是Ss-class的R′j上M′i的量值,Vj(Mi)(i=1,2,…k,j=1,2,…k)是Sf-class中成员Rj在Mi上的量值.若Rj和R′j有继承关系,面向对象的可拓表示形式为:
≤表示R′1对R1的继承,α1和α2为被继承和继承.
则 {M1,M2,…Mk}⊆ {M′1,M′2,…M′x}
例如:
则 {用途,载重,厂家}⊆ {用途,载重,厂家,动力原料}如果:
多继承的可拓推理
在多继承的可拓推理中.他的父类不止一个.因而继承了许多父类的性质 (属性,方法),在可拓推理中就可以把一个类拓展到他的许多父类当中去,就是一个子类能推理得到许多个子类的过程.
继承的可拓传导推理
设基元Rclass,R1,R2…Rn.Rclass的面向对象的可拓表示为
例如:在家电这个类中,有许多子类,电视机类、洗衣机类、音响类等等.根据上述的规则,则在语义约束上有:电视机类⇒洗衣机类⇒音响类
(3)对象之间的可拓推理
在对象与对象之间的关系中,有两种情况,一是两个对象是同一个类实例化的对象,即类内对象的关系.二是两个对象是不同实例化的结果,是类外的对象关系.在前一种情况下,他们是同一个类,在这里不再详述;后一种中情况中,对象之间的关系是消息传递机制所形成的.
设一个对象系统中有方法和属性.则表示;
O1= {c′o1,c′2,…c′n}*{c1,c2,…cm}*{V(c′1),V(c′2),…V(c′n)}*{V(c1),V(c2),…V(cm)} c′i(i=1,2,…n)为n个方法.c′i(i=1,2,…m)为m个属性.另外一个对象系统也有方法和属性.则表示:
O2= {c′o1,c′o2,…c′ok}*{co1,co2,…coh}*{V(c′o1),V(c′o2),…V(c′ok)}*{V(co1),V(co2),…V(coh)} c′oi(i=1,2,…k)为k个方法,coi(i=1,2…h)为h个属性.
如果c′ox,x∈ [1,k],他的参数为c′y,y∈ [1,n]或者cz,z∈ [1,m],利用面向对象的可拓表示为:
c′ox=|c′ox-name 参数 c′y或者c′zy|
也就是在对象2的一个方法中,它的参数是有对象1中的方法或属性传入的.则在语义约束上有:
例如:
根据上述规则有:O2⇒O1
(4)类间的可拓推理
类与类之间的关系是通过接口来完成的.如果一个类是继承了某个接口,则在类中要完成对接口中的方法和属性完整的定义.
设一个接口I,I表示为I= {c′1,c′2,…c′m}*{c1,c2,…cn},c′i(i=1,2…m)为接口I定义的方法.ci(i=1,2…n)为接口定义的属性.
如果类CA继承了接口I,CA= {c′1,c′2,…c′m}*{c1,c2,…cn}*{cA1,cA2,…cAK},在CA中CAi(i=1,2…k)为类中定义的方法和属性.
类CB也继承了接口I,CB= {c′1,c′2,…c′m}*{c1,c′2,…cn}*{cB1,cB2,…cBr},在CB中cBi(i=1,2,…r)为CB自己定义的方法和属性.CA、CB可拓表示为
则在语义约束上有:
根据上述规则,在语义约束上有:CA⇒CB
3 今后的工作
本文只是做了尝试性的工作,还有大量的问题需要探索,从可拓学科自身的特点来看,可拓学与智能系统的结合是很有发展前景的.特别是可拓策略生成系统的研究,为今后人工智能的发展提供一种广阔的途径.
在今后的研究工作中,针对本文的许多不足之处进行改进和深入研究,主要对面向对象的可拓推理策略上进行研究.将把本体的概念引入为解决矛盾性提供基础[6],也为可拓策略生成系统更加智能化提供支持.再将软件开发的领域知识进行试验证明[7],形成知识共享模型.
[1] 李俊玲.一种改进的知识表示方法及其模糊推理的研究 [D].长春:东北师范大学,2007
[2] 叶潇,杨帆,曹存根,等.基于场合的情绪常识模型研究与分析 [J].华东理工大学学报:自然科学版,2006,32(09):1091-1097
[3] 田雯.人类心理常识的形式化研究 [D].北京:中国科学院研究生院 (计算技术研究所),2004
[4] 陈迎春.一种基于面向对象的知识表示和推理机设计 [D].成都:西南交通大学,2008
[5] 董慧,徐雷.基于本体知识表示的历史领域专家系统模型 [J].现代图书情报技术,2010,156(08):76-78
[6] 刘金花.本体的演化研究进展 [J].计算机系统应用,2011,20(07):239-243
[7] 鲁强.一种支持软件知识共享的本体模型研究 [J].计算机应用,2010,30(02):402-405