一种基于描述逻辑的语义Web服务发现方法

2015-12-28 03:46全立新
关键词:运算符表达式实例

全立新

(湖南财政经济学院信息管理系,长沙 410205)

语义Web服务是语义Web与Web服务技术相结合的产物。通过本体对Web服务进行描述,提供更多的语义信息[[1-3],从而使计算机理解并自动智能地去发现 Web服务,或调用和组合[4-5]。当前,语义Web服务语义搜索技术是语义Web服务的研究热点之一[6-8],关注Web服务的功能匹配问题是研究的重点内容。两大类研究方法中,第一类研究方法是通过构建领域本体模型,将服务匹配问题转换为领域本体概念之间的相似度计算问题,或者转换为领域本体概念匹配程度的计算问题。此类方法能够给出原先子服务与目标服务之间的匹配程序,查准率和查全率较高,但搜索效率较低。另一类方法是用特定的逻辑语言描述搜索需求,然后利用逻辑推理机的推理功能来获取与目标服务相匹配的服务。通过这类方法可以得到与目标服务相匹配的单个或多个服务,搜索效率较低,往往需要结合人工智能来提高搜索效率[9-11]。

目前大部分服务搜索技术都需要构建自身Web服务本体模型,利用本体匹配或推理机实现服务搜索。但是这类方法在运用时需要构建自身的Web服务本体模型,工作量巨大,存在兼容性和应用范围的局限性问题。本次研究将在owl-s给出的语义Web服务模型基础之上[12],重点探讨利用描述逻辑构造简单表达式来表达用户搜索需求的方法。

1 语义Web服务描述模型OWL-S

OWL-S是W3C官方指定的描述WEB服务本体语言。在OWL-S中,描述Web服务的信息主要分为3个顶层本体:Service Profile、Service Model和Service Grounding[12]。它们分别描述了“这个服务是做什么的”“服务是怎么做的”和“怎样访问服务”3个方面的语义。service类是对一个声明了的Web服务的结构化引用点,每个service实例将对应一个发布的服务,而 presents、describedby和 supports作为service类的属性,分别将值域映射到service profile、service model和service grounding本体中,如图1所示。

图1 OWL-S模型的顶层本体

1.1 service profile本体

service profile描述一个服务的功能信息、基本信息、QoS信息等,包括服务的输入输出、执行的前置条件与执行后产生的后果等等,用于判断服务是否满足服务请求者的需求。

(1)服务功能信息。profile本体通过has input、has output、has preocondition、has effet等属性来描述服务的IOPE。

(2)服务基本信息。profile本体通过 service name、is presented by、text description 等属性描述服务名、服务提供者和服务的功能等信息。

(3)服务非功能信息。profile本体可以通过一些属性描述服务非功能性信息,如service category属性可以用来描述服务的质量等级与分类。

1.2 service model本体

service model主要是服务提供者用来描述服务的内部流程。一个服务通常被称之为一个过程(process),process作为service model的子类,详细描述了服务的工作过程和工作细节。通过该信息可以使用户了解服务内部是如何执行的,加深对服务的理解,从而确定服务是否真能满足其需求。process主要分为3种类型:原子过程、简单过程和组合过程。

1.3 service grounding 本体

service profile和service model都是关于服务的抽象描述,而service grounding是涉及到服务的具体规范。它描述服务是如何被访问的,即需要指定服务访问的协议、消息格式、端口等。OWL-S中没有定义语法成分来描述具体的消息,它利用WSDL规范。

2 搜索服务表达式的定义

搜索服务表达式用于表达用户对所需语义Web服务资源的需求描述。

定义 (搜索服务表达式)搜索服务表达式(SSE)是一个 3 元组:SSE=(C,OP,Exp),其中:C表示常量集合;OP表示运算符集合;Exp是表达式集合。

2.1 搜索服务表达式组成元素

(1)C常量集合。将本体的子类集、本体实例集、本体属性对象集中的元素均视为常量。用c表示本体概念集合中的元素,如c1,c2,…;用i表示本体实例集合中的元素,如i1,i2,…;p表示Web服务属性对象集合中的元素,如p1,p2,…等均视为常量。

(2)OP运算符。表1所示为OP运算符,定义了各运算符的名称和符号。

(3)Exp表达式。这里Exp指:Exp::= <Oexp>|<Sexp> |<Lexp>,其中,Oexp是由本体概念或实例与本体运算符组成的表达式;Sexp是由本体属性、语义运算符和本体对象表达式构成;Lexp是指由Sexp和逻辑运算符组成的表达式。

表1 OP运算符

2.2 搜索服务表达式语法

搜索服务表达式是由常量和运算符组合而成的有机式子,其语法规则分别如下说明。

由本体运算符组成的基本表达式Oexp:

由语义运算符组成的基本表达式Sexp:

由逻辑运算符组成的表达式Lexp:

下面运用巴科斯范式,给出搜索服务表达式的定义:

本体其他属性名

为了说明操作符的含意,以“移动电子商务业务本体”文件为例(为方便阅读,概念或属性名全用中文),来解释语义运算符的操作。图2给出了“移动电子商务业务结构”本体的部分概念和实例之间的关系。表2给出了相关语义运算符操作示例和语义。

图2 移动电子商务本体概念业务结构局部示意图

表2 语义运算符操作语义

2.3 搜索服务表达式操作语义

搜索服务表达式的操作语义是指搜索服务表达式执行时的动作。设函数β(p)的含义为OWL-S模型中所引用的本体概念,函数δ(p)的含义为OWL-S模型中所引用的本体实例,O为OWL-S中本体集,p是OWL-S中本体属性,c是OWL-S中定义的概念,i为实例,则有:β(p)=c,c∈O,δ(p)=i,i∈O 。

对于Oexp和Lexp操作语义的说明如下:

(6)c1c2⇒{x|x∈cc1⊆x,c2⊆(x},即求值后所得到的本体概念,包含了c1和c2;

(7)i1i2⇒{x|x∈cx i1xi2},即求值后所得到的本体概念,是实例i1和i2同属的概念;

(8)c1-c2⇒{x|x∈cx⊆c1c2},即求值后所得到的所有本体概念,包含c1不包含c2;

(9)c1-i2⇒{x|x∈ic1ic2}即求值后所得到的所有本体实例,其所属概念为c1,但i1除外。

3 搜索服务表达式的良构性

搜索服务表达式的良构性是指该表达式中包含的语义信息一致且表达式结构完整性良好。对搜索服务表达式的语义一致性检查指对搜索服务表达式中包含的,通过本体定义赋予的语义信息元素进行的检查,是否存在包含的语义信息矛盾的表达形式。这种检查往往要通过对语义推理后方可得到结论,本文在此不作讨论。下面重点讨论搜索服务表达式结构完整性检查。

3.1 搜索服务表达式有效性检查规则

搜索服务表达式有效性检查规则如下:

(1)语义运算符的操作数只能是本体或实例,及或者是语义运算符构成的表达式的组合;

(2)表达式中涉及到的本体或实例必须是定义在特定领域本体内的本体概念或实例;

(3)由语义运算符构成的表达式只能通过逻辑运算符连接;

(4)本体运算符的操作数只能是本体或实例或本体运算符构成的表达式的组合;

(5)逻辑运算符的操作数必须是service属性或子属性对象表达式或者是逻辑表达式;

(6)概念差运算符的第一操作数必须是本体,且第二操作数必须是本体概念或本体实例与表达式;

(7)概念差运算符的操作数不能同时是本体实例,且第一操作数不能是本体实例。

3.2 搜索服务表达式的语法检查算法

搜索服务表达式的语法检查算法如算法1所示。

算法1:SSESyntaxCheck(sse)

Input:搜索服务表达式

Output:搜索服务表达式或错误提示信息

1:读取搜索服务表达式;

2:把搜索服务表达式排入检查队列;

3:if检查SExp结构 = False then

4:return SExp结构错误信息;

5:else if 检查OExp结构=False then

6:return OExp结构错误信息;

7:else if 检查Service属性=False then

8:return Service属性的错误信息;

9:else if检查本体运算符信息 =False then

10:return本体运算符的信息;

11:else if检查语义运算符信息=False then

12:return语义运算符的错误信息;

13:eIse if查检逻辑运算符信息=False then

14:return逻辑运算符的错误信息;

15:return通过查检的搜索服务表达式。

4 使用范例

为了帮助读者书写语义条件表达式,下面给出一些具体应用范例。

例1 所有服务分类为“行业服务类”的Web服务资源,语义表达式为:

service classification 行业服务类

解释:查找Web服务资源中服务分类属性是“行业服务类”概念或等价概念的所有Web服务资源。

例2 所有功能为提供视频服务、输出结果为特定视频提供商“优酷视频”所属类别的Web服务资源,语义表达式为:

解释:查找Web服务资源中服务功能属性是“移动视频”概念或等价的概念;且服务输出属性是实例“优酷视频”所属概念的所有Web服务资源。

例3 所有返回结果为“建设银行”或“工商银行”所属类的Web服务资源,语义表达式为:

解释:查找Web服务资源中服务输出属性实例为“建设银行”或为“工商银行”的所有Web服务资源。

例4 所有服务分类为“行业服务类”服务,但又不能是“移动保险”的Web服务资源,语义表达式为:

service classification⇔行业服务类service classification⇔移动保险

解释:查找Web服务资源中服务分类属性是“行业服务类”概念或等价概念中排除了实例“移动保险”所属概念的所有Web服务资源。

例5 所有服务功能为移动银行,银行输入为“建设银行”对应类别或“工商银行”对应类别的语义Web服务资源,语义表达式为:

解释:查找Web服务资源中服务输入属性为实例“建设银行”或为“工商银行”所属本体概念的Web服务资源。

5 结语

本次研究以搜索Web服务发现的标准化、易实现的有效支撑技术为目标,在W3C官方指定的语义Web服务描述语言OWL-S为服务模型,运用了描述逻辑所具有的推理能力,提出一种语义Web服务搜索方法,即搜索服务表达式SSE。通过理论和示例分析,SSE表达式具有一定的完备性,它的实现机制将在《SSE表达式处理机制与实现》一文中详细介绍。

[1]Berners-Lee T,Hendler J,Lassila.The Semantic Web[J].Scientific American,2001,284(5):34-43.

[2]李善平,尹奇韡,胡玉杰,等.本体论研究综述[J].计算机研究与发展,2004(7):1041-1052.

[3]侯超昆,李石君.基于领域本体的网页主题相关度计算[J].计算机工程与设计,2014(12):4344-4349.

[4]王向辉,冯志勇.语义Web服务自动组合定义、方法及验证调查[J].计算机应用研究,2014(5):1292-1301.

[5]柯昌博,黄志球,刘林源,等.面向约束的Web服务发现方法研究[J].软件学报,2012(10):2665-2678.

[6]刘一松,杨玉成.基于文本聚类和概念相似度的语义Web服务发现[J].计算机科学,2013(11):211-214.

[7]常亮,刘进,古天龙,等.基于动态描述逻辑的语义Web服务组合[J].计算机学报,2013(12):2468-2478.

[8]孙雨生,陈卫,胡娟.国内语义Web服务研究进展可视化分析[J].计算机与数字工程,2013(10):1556-1562.

[9]成锦晖,郑山红,李万龙,等.本体领域综合概念相似度计算中的权重确定方法[J].吉林大学学报(理学版),2014(6):1272-1276.

[10]郭富禄,曾志浩,武岫缘.语义Web服务搜索研究概述[J].微型机与应用,2013(21):4-6.

[11]石敏,赵文栋,张磊.一种基于本体划分的语义Web服务发现算法[J].计算机工程,2014(2):175-179.

[12]OWL-S.OWL-S:Semantic Markup for Web Services[EB/OL].http://www.w3.org/Submission/OWL-S,2015-1-7.

猜你喜欢
运算符表达式实例
老祖传授基本运算符
灵活选用二次函数表达式
表达式转换及求值探析
用手机插头的思路学习布尔运算符
浅析C语言运算符及表达式的教学误区
完形填空Ⅱ
完形填空Ⅰ
议C语言中循环语句
C++中运算符的重载应用