基于语义的协同模型研究

时间:2022-09-26 06:06:20

基于语义的协同模型研究

摘要:大规模并行与分布式系统的出现开拓了软件技术的应用前景,要开发大规模并行与分布式系统的全部潜能,必须要处理系统中大量并发的活动体的协同过程。以Linda为代表的基于共享数据空间的协同模型和协同语言具有时间解耦、空间解耦和引用解耦的特点,为大规模并行与分布式系统的设计与发展提供了一种新方法。该文以多Agent系统为应用背景,研究有关Agent协同模型的问题,解决了现在大多数协同模型中缺乏语义信息的问题。

关键词:协同技术;协同模型;Linda协同语言;语义Web技术;OWL;本体

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)14-3663-03

Research on Coordination Model Based on Semantic

HUANG Zhi-yan

(Dept.of Computer Engineering, Jiangsu Vocational and Echnical College of Finance & Economics, Huai’an223003, China)

Abstract: Massively parallel and distributed systems open new horizons for large applications. Exploiting the full potential of massively parallel systems requires programming models that explicitly deal with the concurrency of cooperation among very large numbers of active entities that comprise a single application. The shared dataspace coordination models, represented by Linda, have the characteristic of temporal uncoupling, spatial uncoupling and referential uncoupling, indicate the development trend of massive programming and satisfy the requirements of software application in Internet that is open, dynamic and distributed. The paper focuses on the agent coordination model with the background of multi-Agent system, and proposes a semantic based coordination model.

Key words: coordination technology; coordination model; Linda; semantic web technology; OWL; ontology

1 引言

在动态、开放的分布式环境下,当一个系统需要完成某项任务时,一方面,系统中的模块之间不可避免的存在一些相互依赖关系,彼此之间的交互非常频繁;另一方面,各模块间还存在一定的自治性。因此,协同在一个多模块系统中具有至关重要的作用。以Linda为代表的元组空间其具有时间解耦和空间解耦,在解决动态开放的分布式系统中协同问题时被广泛采用。自从Linda协同语言[1-2]提出以来,已有许多人在此基础上进行了大量的改进[3],使得Linda在更广的范围内得到应用。但是影响这些协同模型在开放的分布式系统中广泛应用的一个主要原因是这些协同模型中元组的表示和检索方法缺乏语义信息,各协同Agent之间不能很好地理解其相互传递的信息,使得Agent不能精确的获取自己所需要的信息。本文提出一种基于语义协同模型AccSTuple。该协同模型以基本Linda协同模型为基础,加入语义Web技术中的OWL DL[5],为开放的分布式环境提供了一个基础设施,负责分布式数据的管理、多个Agent之间的协同。

2 基于语义和访问策略的协同模型AccSTuple

图1给出了AccSTuple的体系结构。其核心组件是Linda协同模型以及作为共享数据空间的元组空间。AccSTuple兼容对简单数据元组、XML元组、RDF(S)元组在数据视图的操作以及在信息视图对RDF(S)元组的操作,并且扩充了对新的元组类型――OWL元组在数据视图和信息视图的操作。其中,信息元组空间作为元组的共享数据空间;访问策略元组空间则用于存放访问策略元组。

此外,在AccSTuple中还有两个重要的组件――本体库和信息冲突调节规则库。本体库中存放的是领域本体和AccSTuple的本体。对于本体的管理则由相应的本体管理模块所负责,可以通过本体管理模块对本体库中所存储的本体进行查询、修改、删除以及添加等操作。因为OWL DL和RDF(S)语义之间不兼容可能产生冲突,以及不同信息提供者所供应的具有语义的元组,在信息视图的操作所产生的语义冲突,AccSTuple提供了信息冲突调节规则库,用以存储解决冲突的规则。相应的可以通过信息冲突管理模块对信息冲突调节规则库进行管理,如查询、删除、添加等操作。

3 AccSTuple的扩展

AccSTuple是将语义Web技术中的OWL DL和Linda协同模型相结合,为开放的分布式系统信息的与检索提供了一个中间件,作为多个Agent交流的平台。具体来说,它是在Linda基础上经过以下三个方面的扩展: 元组类型、协同原语和匹配机制。

3.1 元组类型

3.1.1 空节点

在RDF(S)中空节点又称为匿名资源。空节点标识符可用于标记一个RDF图所对对应的一个或多个声明中多次出现的相同的匿名资源。在OWL DL中没有显式的使用空节点的概念。由于OWL DL允许定义匿名本体、匿名类、匿名个体以及特殊的枚举数据类型。当OWL DL文档使用抽象语法描述,转换成具体的交换语法RDF/XML的时候,需要使用转换规则将其转换成三元组的形式。若抽象语法中存在匿名本体、匿名类、匿名个体或枚举数据类型,就要借助空节点,才能顺利的将其转换成三元组。

在RDF(S)中空节点可表示任何无法全局引用的匿名资源,而OWL DL中,空节点只能用于匿名本体、匿名类、匿名个体以及特殊的数据类型。因此对于空节点这种特殊的元组域类型在AccSTuple本体中分别用asts:RDFsBlankNode和asts:OWLBlankNode表示。

3.1.2 集合

在RDF(S)中,集合是由一组资源所组成的封闭集合,一个集合的所有成员都在这组资源中,集合在RDF图中使用列表(List)的结构表示,可以使用内置的RDF词汇表示列表结构。 在OWL DL中集合通常作为其它定义的一部分,只能隐式的出现,没有全局URI引用,通过空节点标识符作为其局部引用

在OWL DL中使用属性:owl:distinctMembers、owl:intersectionOf、owl:unionOf以及owl:oneOf时,要使用集合作为其值。当使用关系owl:oneOf定义枚举类时,关系的值是一组由个体组成的封闭集合。同样,使用owl:oneOf定义OWL殊的数据类型――枚举数据类型时,关系的值是一组由字面常量(literal)组成的封闭集合。在OWL中提供了一种特殊的内置类owl:AllDifferent,该类中的所有个体都是互不相同的,而这些个体组成了一个封闭的集合,必须通过内置的属性owl:distinctMembers定义该类的实例,将这个实例与一组互不相同的个体的集合关联起来。

在OWL DL中增加了更多的词汇用于描述领域中的类、属性、个体、以及它们之间的关系,因此使用OWL DL可以定义更加复杂的类,具有值约束和(或)基数约束的属性以及更加丰富的数据类型等,相应的增加了许多新的OWL元组域类型。

3.2 协同原语

AccSTuple不仅可以对具有语义信息的OWL元组进行操作,还可以对已有的普通数据元组、XML元组以及RDF(S)元组进行操作,所以Linda中定义的out、rd、in以及semantic tuplespace[6-7]中定义的outr、rdr、inr原语在AccSTuple中依然适用。在AccSTuple中,引入了具有更强语义的OWL元组以及与之相对应的新的协同原语和匹配方法。由于OWL元组也可以使用三元组的形式表示。对于具有语义信息的元组(无论是RDF(S)元组还是OWL元组),可以分别在两个视图――数据视图和信息视图(图2)上进行操作。在数据视图中,不考虑元组的语义信息,即将所有元组都看成是没有语义的无格式的字面常量或者是有RDF特殊结构(空节点、集合、容器以及具体化)的字面常量,这时所有元组都和传统Linda中的元组一样,不具有语义信息;而在信息视图中,具有语义信息的RDF元组和OWL元组将被看成是RDF图或本体,其语义是由相应的RDF图或本体唯一决定。因此,对原语作如下扩展:

3.2.1 ia

将OWL元组添加进信息视图,即在信息视图断言OWL元组所包含的信息是正确的,在AccSTuple中定义了原语ia:

ia: (s, p, o, id)boolean

ia: (OWLSubSpace)boolean.

从信息视图添加OWL元组要检测元组与本体的一致性,不符合本体要求的元组将被拒绝添加到语义元组空间中。无论是用OWL DL抽象语法还是RDF/XML交换语法,将一个定义转换成三元组的形式时可能只包含单个三元组,也可能对应一组相关联的三元组。若只包含一个元组时,需要对该类进行实例化。每一个类在实例化后都携带一个真值,当它们都实例化后,将这些真值与操作后的结果返还给信息提供者,如果为true,则表示断言OWL元组所包含的信息是正确的,否则拒绝将OWL元组添加进入信息视图并返还一个false。很显然这些真值只在信息视图中有效,它们作为OWL元组在信息视图下的一个属性,用于和数据视图中的OWL元组相区别。若对应一组相关联的三元组,以asts:OWLSubspace的形式将这组具有语义关联的OWL元组整体添加进AccSTuple中,并要求这组三元组中的每个元组都是满足要求的的,否则OWLSubspace中的所有内容将全部被拒绝添加。

3.2.2 sir和mir

从信息视图中读出一个基于领域本体的与指定的模板语义相匹配的OWL元组,定义了以下原语:

sir: (s, p, o, id) OWLSubSpace

通过sir操作可以从信息视图中读出一个基于领域本体的与指定模板语义相匹配的OWL元组。使用者通过指定的模板执行sir操作时可能得到的是一组相关联的三元组,而这组三元组使用同一个标识符作为主节点(对应RDF图中的主节点)。因此sir操作的返回结果以asts:OWLSubspace的形式出现,它可能只包含一个的元组也可能包含一组相关联的元组。使用sir从AccSTuple中读出元组后,该元组在信息视图上依然存在。

为了解决Linda中的多读问题,在AccSTuple中定义了以下原语:

mir: (s, p, o) LocalOWLSpace.

由于非破坏性读操作执行完后,元组依然在元组空间中,因而从信息视图中非破坏性地读取一个或多个元组时,对数据视图不产生影响;同样,从数据视图非破坏性地读取元组对信息视图也不产生影响。

3.2.3 dig

从信息视图中基于本体库中的相关领域本体,破坏性的读取语义匹配的OWL元组可以使用以下原语:

dig: (s, p, o, id)OWLSubSpace.

从信息视图中添加的所有元组都声称其所包含的信息是正确的,dig只是将它们从信息视图中删除,但是在数据视图中相对应的OWL元组仍然是存在的。和ia操作一样,dig也是以asts:OWLSubspace的形式将结果返还给信息消费者。

3.3 匹配机制

3.3.1 基于OWL DL语法的匹配

基于OWL DL语法的匹配相对于传统的基于类型-值匹配主要区别在于前者考虑到了OWL DL的具体语法――三元组及其相关特性。OWL元组在信息元组空间中以的形式存储,第一个域X的类型是asts:SensorAgent(信息提供者),用以标识元组的源头;域s,p以及o的值对应于具体的信息内容,在OWL DL中域s值的类型只能是类或个体,域p值的类型只能是属性,域o值的类型可以是类、个体或是数据值。最后一个域id作为元组在信息元组空间中的唯一标识符,域值的类型是asts:OWLTuple。域id的值是在OWL元组成功添加时新建的类OWL元组的实例ID号。符合OWL DL语法的元组中每一个域在值和类型所对应的URI引用字符串都相同的情况下才匹配。

当OWL DL使用语法三元组进行描述时,会出现RDF中的特殊概念――空节点和集合,由于它们在OWL和RDF(S)中的语义不完全相同,所以在匹配OWL元组时对于空节点和集合必须进行特殊处理。对于空节点,在AccSTuple中定义了类asts:OWLBlankNode,该类的实例ID号是局部标识符,只在空节点所在的RDF图中有效。因此在OWL DL中,通常将空节点作为匿名本体、匿名类、匿名个体以及特殊的枚举数据类型的标识符。对于具体的匹配OWL元组中的空节点,可以在模板中使用类型是asts:OWLBlankNode的变量或者通配符。AccSTuple本体中定义了类asts:OWLList用于表示在OWL DL中出现的集合概念。对于OWL元组和模板中集合常量之间的匹配,需将集合处理成数组数据类型,只有两个集合中按次序对应的每个元素具有相同的类型和值时,才认为它们是完全匹配的。当模板中出现的是集合变量时,只有OWL元组和模板相对应的域的类型都是asts:OWLList就认为是相匹配的。

3.3.2 基于OWL DL语义的匹配

OWL DL比XML,RDF以及RDF Schema具有更强的语义表达能力,它提供了更多的用于定义类、关系、个体、数据值及其关系的内置词汇。基于语义的匹配只能够在信息视图上进行操作,根据指定的模板基于领域本体以及AccSTuple本体经过推理引擎的执行产生语义匹配的信息。在基于语义的匹配中,OWL元组和模板的域s,p和o不再仅仅认为是对应某个数据类型的域,它们具有对应于本体定义中的语义。因此,在信息视图上对于OWL元组的匹配必须能够对元组内容所对应的语义进行解释。很显然语义表达能力越强,相应的计算资源的要求也越高,所以基于语义的匹配必须在推理能力和计算性能之间进行平衡。

对于在信息视图中基于语义的匹配关键的是领域本体和AccSTuple本体的定义。操作原语sir和mir兼容RDF(S)元组,所以基于本体推理的匹配可以最大限度的利用信息元组空间中具有语义信息的元组(信息视图下的RDF(S)元组和OWL元组),在描述逻辑强大推理能力的支持下,为客户提供更加贴近需求的信息。

4 性能分析

AccSTuple中协同原语的性能测试采用Sun JDK 5.0,使用的领域本体/release/biopax-level2.owl来源于BioPAX Home。

在图4中显示了语义协同原语ia在一次执行过程中添加不同大小语义声明集合的性能。从图表中能够发现ia协同原语的执行时间随着数据集的大小成线性增长。图5显示了以非破坏性的方式检索出单个语义匹配元组的协同原语sir以及对应破坏性读操作dir的性能评估结果,从图中能够看到线条展示了平稳地上升趋势。在图6中显示了协同原语mir的评估结果。

图4 ia操作性能 图5 sir和dir操作性能 图6 mir操作性能

参考文献

[1] Gelernter D,Carriero N.Coordination Language and their Signicifance[J].Communications of the ACM,1992,35(2):97-107.

[2] Gelernter D.Generative communication in Linda[M]//ACM Trans Program,Lang.Syst,7(1):80-112.ACM Press,1985.

[3] Tolksdorf R,Nixon L,Liebsch F,et al.Semantic Web Spaces (Technical Report TR-B-04-11)[R].Technical report,Free University of Berlin,2004.

[4] Rossi D,Cabri G,Denti E.Tuple-based technologies for coordination[M]//Omicini A,Zambonelli F,Klusch M,et al.Coordination of Internet Agents: Models,Technologies,and Applications.Springer Verlag,2001:83-109.

[5] Peter F,Schneider P,Hayes P.Ian Horrocks.OWL Web Ontology Language Semantics and Abstract Syntax[EB/OL]./TR/2004/REC-owl-semantics-20040210.

[6] Tolksdorf R,Nixon L,Bontas E P,et al.Enabling real world Semantic Web applications through a coordination middleware[C]//Proceedings of the 2nd European Conference on Semantic Web ESWC2005.Springer Verlag,2005.

[7] Tolksdorf R,Bontas E P,Nixon L.Towards a tuplespace-based middleware for the SemanticWeb[C].Proceedings of the IEEE Web Intelligence Conference WI2005,2005.

上一篇:FLASH中Date类案例分析与研究 下一篇:IPv6地址实现机制