全立新
(湖南財(cái)政經(jīng)濟(jì)學(xué)院信息管理系,長(zhǎng)沙 410205)
語(yǔ)義Web服務(wù)是語(yǔ)義Web與Web服務(wù)技術(shù)相結(jié)合的產(chǎn)物。通過本體對(duì)Web服務(wù)進(jìn)行描述,提供更多的語(yǔ)義信息[[1-3],從而使計(jì)算機(jī)理解并自動(dòng)智能地去發(fā)現(xiàn) Web服務(wù),或調(diào)用和組合[4-5]。當(dāng)前,語(yǔ)義Web服務(wù)語(yǔ)義搜索技術(shù)是語(yǔ)義Web服務(wù)的研究熱點(diǎn)之一[6-8],關(guān)注Web服務(wù)的功能匹配問題是研究的重點(diǎn)內(nèi)容。兩大類研究方法中,第一類研究方法是通過構(gòu)建領(lǐng)域本體模型,將服務(wù)匹配問題轉(zhuǎn)換為領(lǐng)域本體概念之間的相似度計(jì)算問題,或者轉(zhuǎn)換為領(lǐng)域本體概念匹配程度的計(jì)算問題。此類方法能夠給出原先子服務(wù)與目標(biāo)服務(wù)之間的匹配程序,查準(zhǔn)率和查全率較高,但搜索效率較低。另一類方法是用特定的邏輯語(yǔ)言描述搜索需求,然后利用邏輯推理機(jī)的推理功能來獲取與目標(biāo)服務(wù)相匹配的服務(wù)。通過這類方法可以得到與目標(biāo)服務(wù)相匹配的單個(gè)或多個(gè)服務(wù),搜索效率較低,往往需要結(jié)合人工智能來提高搜索效率[9-11]。
目前大部分服務(wù)搜索技術(shù)都需要構(gòu)建自身Web服務(wù)本體模型,利用本體匹配或推理機(jī)實(shí)現(xiàn)服務(wù)搜索。但是這類方法在運(yùn)用時(shí)需要構(gòu)建自身的Web服務(wù)本體模型,工作量巨大,存在兼容性和應(yīng)用范圍的局限性問題。本次研究將在owl-s給出的語(yǔ)義Web服務(wù)模型基礎(chǔ)之上[12],重點(diǎn)探討利用描述邏輯構(gòu)造簡(jiǎn)單表達(dá)式來表達(dá)用戶搜索需求的方法。
OWL-S是W3C官方指定的描述WEB服務(wù)本體語(yǔ)言。在OWL-S中,描述Web服務(wù)的信息主要分為3個(gè)頂層本體:Service Profile、Service Model和Service Grounding[12]。它們分別描述了“這個(gè)服務(wù)是做什么的”“服務(wù)是怎么做的”和“怎樣訪問服務(wù)”3個(gè)方面的語(yǔ)義。service類是對(duì)一個(gè)聲明了的Web服務(wù)的結(jié)構(gòu)化引用點(diǎn),每個(gè)service實(shí)例將對(duì)應(yīng)一個(gè)發(fā)布的服務(wù),而 presents、describedby和 supports作為service類的屬性,分別將值域映射到service profile、service model和service grounding本體中,如圖1所示。
圖1 OWL-S模型的頂層本體
service profile描述一個(gè)服務(wù)的功能信息、基本信息、QoS信息等,包括服務(wù)的輸入輸出、執(zhí)行的前置條件與執(zhí)行后產(chǎn)生的后果等等,用于判斷服務(wù)是否滿足服務(wù)請(qǐng)求者的需求。
(1)服務(wù)功能信息。profile本體通過has input、has output、has preocondition、has effet等屬性來描述服務(wù)的IOPE。
(2)服務(wù)基本信息。profile本體通過 service name、is presented by、text description 等屬性描述服務(wù)名、服務(wù)提供者和服務(wù)的功能等信息。
(3)服務(wù)非功能信息。profile本體可以通過一些屬性描述服務(wù)非功能性信息,如service category屬性可以用來描述服務(wù)的質(zhì)量等級(jí)與分類。
service model主要是服務(wù)提供者用來描述服務(wù)的內(nèi)部流程。一個(gè)服務(wù)通常被稱之為一個(gè)過程(process),process作為service model的子類,詳細(xì)描述了服務(wù)的工作過程和工作細(xì)節(jié)。通過該信息可以使用戶了解服務(wù)內(nèi)部是如何執(zhí)行的,加深對(duì)服務(wù)的理解,從而確定服務(wù)是否真能滿足其需求。process主要分為3種類型:原子過程、簡(jiǎn)單過程和組合過程。
service profile和service model都是關(guān)于服務(wù)的抽象描述,而service grounding是涉及到服務(wù)的具體規(guī)范。它描述服務(wù)是如何被訪問的,即需要指定服務(wù)訪問的協(xié)議、消息格式、端口等。OWL-S中沒有定義語(yǔ)法成分來描述具體的消息,它利用WSDL規(guī)范。
搜索服務(wù)表達(dá)式用于表達(dá)用戶對(duì)所需語(yǔ)義Web服務(wù)資源的需求描述。
定義 (搜索服務(wù)表達(dá)式)搜索服務(wù)表達(dá)式(SSE)是一個(gè) 3 元組:SSE=(C,OP,Exp),其中:C表示常量集合;OP表示運(yùn)算符集合;Exp是表達(dá)式集合。
(1)C常量集合。將本體的子類集、本體實(shí)例集、本體屬性對(duì)象集中的元素均視為常量。用c表示本體概念集合中的元素,如c1,c2,…;用i表示本體實(shí)例集合中的元素,如i1,i2,…;p表示W(wǎng)eb服務(wù)屬性對(duì)象集合中的元素,如p1,p2,…等均視為常量。
(2)OP運(yùn)算符。表1所示為OP運(yùn)算符,定義了各運(yùn)算符的名稱和符號(hào)。
(3)Exp表達(dá)式。這里Exp指:Exp::= <Oexp>|<Sexp> |<Lexp>,其中,Oexp是由本體概念或?qū)嵗c本體運(yùn)算符組成的表達(dá)式;Sexp是由本體屬性、語(yǔ)義運(yùn)算符和本體對(duì)象表達(dá)式構(gòu)成;Lexp是指由Sexp和邏輯運(yùn)算符組成的表達(dá)式。
表1 OP運(yùn)算符
搜索服務(wù)表達(dá)式是由常量和運(yùn)算符組合而成的有機(jī)式子,其語(yǔ)法規(guī)則分別如下說明。
由本體運(yùn)算符組成的基本表達(dá)式Oexp:
由語(yǔ)義運(yùn)算符組成的基本表達(dá)式Sexp:
由邏輯運(yùn)算符組成的表達(dá)式Lexp:
下面運(yùn)用巴科斯范式,給出搜索服務(wù)表達(dá)式的定義:
本體其他屬性名
為了說明操作符的含意,以“移動(dòng)電子商務(wù)業(yè)務(wù)本體”文件為例(為方便閱讀,概念或?qū)傩悦弥形?,來解釋語(yǔ)義運(yùn)算符的操作。圖2給出了“移動(dòng)電子商務(wù)業(yè)務(wù)結(jié)構(gòu)”本體的部分概念和實(shí)例之間的關(guān)系。表2給出了相關(guān)語(yǔ)義運(yùn)算符操作示例和語(yǔ)義。
圖2 移動(dòng)電子商務(wù)本體概念業(yè)務(wù)結(jié)構(gòu)局部示意圖
表2 語(yǔ)義運(yùn)算符操作語(yǔ)義
搜索服務(wù)表達(dá)式的操作語(yǔ)義是指搜索服務(wù)表達(dá)式執(zhí)行時(shí)的動(dòng)作。設(shè)函數(shù)β(p)的含義為OWL-S模型中所引用的本體概念,函數(shù)δ(p)的含義為OWL-S模型中所引用的本體實(shí)例,O為OWL-S中本體集,p是OWL-S中本體屬性,c是OWL-S中定義的概念,i為實(shí)例,則有:β(p)=c,c∈O,δ(p)=i,i∈O 。
對(duì)于Oexp和Lexp操作語(yǔ)義的說明如下:
(6)c1c2?{x|x∈cc1?x,c2?(x},即求值后所得到的本體概念,包含了c1和c2;
(7)i1i2?{x|x∈cx i1xi2},即求值后所得到的本體概念,是實(shí)例i1和i2同屬的概念;
(8)c1-c2?{x|x∈cx?c1c2},即求值后所得到的所有本體概念,包含c1不包含c2;
(9)c1-i2?{x|x∈ic1ic2}即求值后所得到的所有本體實(shí)例,其所屬概念為c1,但i1除外。
搜索服務(wù)表達(dá)式的良構(gòu)性是指該表達(dá)式中包含的語(yǔ)義信息一致且表達(dá)式結(jié)構(gòu)完整性良好。對(duì)搜索服務(wù)表達(dá)式的語(yǔ)義一致性檢查指對(duì)搜索服務(wù)表達(dá)式中包含的,通過本體定義賦予的語(yǔ)義信息元素進(jìn)行的檢查,是否存在包含的語(yǔ)義信息矛盾的表達(dá)形式。這種檢查往往要通過對(duì)語(yǔ)義推理后方可得到結(jié)論,本文在此不作討論。下面重點(diǎn)討論搜索服務(wù)表達(dá)式結(jié)構(gòu)完整性檢查。
搜索服務(wù)表達(dá)式有效性檢查規(guī)則如下:
(1)語(yǔ)義運(yùn)算符的操作數(shù)只能是本體或?qū)嵗?,及或者是語(yǔ)義運(yùn)算符構(gòu)成的表達(dá)式的組合;
(2)表達(dá)式中涉及到的本體或?qū)嵗仨毷嵌x在特定領(lǐng)域本體內(nèi)的本體概念或?qū)嵗?
(3)由語(yǔ)義運(yùn)算符構(gòu)成的表達(dá)式只能通過邏輯運(yùn)算符連接;
(4)本體運(yùn)算符的操作數(shù)只能是本體或?qū)嵗虮倔w運(yùn)算符構(gòu)成的表達(dá)式的組合;
(5)邏輯運(yùn)算符的操作數(shù)必須是service屬性或子屬性對(duì)象表達(dá)式或者是邏輯表達(dá)式;
(6)概念差運(yùn)算符的第一操作數(shù)必須是本體,且第二操作數(shù)必須是本體概念或本體實(shí)例與表達(dá)式;
(7)概念差運(yùn)算符的操作數(shù)不能同時(shí)是本體實(shí)例,且第一操作數(shù)不能是本體實(shí)例。
搜索服務(wù)表達(dá)式的語(yǔ)法檢查算法如算法1所示。
算法1:SSESyntaxCheck(sse)
Input:搜索服務(wù)表達(dá)式
Output:搜索服務(wù)表達(dá)式或錯(cuò)誤提示信息
1:讀取搜索服務(wù)表達(dá)式;
2:把搜索服務(wù)表達(dá)式排入檢查隊(duì)列;
3:if檢查SExp結(jié)構(gòu) = False then
4:return SExp結(jié)構(gòu)錯(cuò)誤信息;
5:else if 檢查OExp結(jié)構(gòu)=False then
6:return OExp結(jié)構(gòu)錯(cuò)誤信息;
7:else if 檢查Service屬性=False then
8:return Service屬性的錯(cuò)誤信息;
9:else if檢查本體運(yùn)算符信息 =False then
10:return本體運(yùn)算符的信息;
11:else if檢查語(yǔ)義運(yùn)算符信息=False then
12:return語(yǔ)義運(yùn)算符的錯(cuò)誤信息;
13:eIse if查檢邏輯運(yùn)算符信息=False then
14:return邏輯運(yùn)算符的錯(cuò)誤信息;
15:return通過查檢的搜索服務(wù)表達(dá)式。
為了幫助讀者書寫語(yǔ)義條件表達(dá)式,下面給出一些具體應(yīng)用范例。
例1 所有服務(wù)分類為“行業(yè)服務(wù)類”的Web服務(wù)資源,語(yǔ)義表達(dá)式為:
service classification 行業(yè)服務(wù)類
解釋:查找Web服務(wù)資源中服務(wù)分類屬性是“行業(yè)服務(wù)類”概念或等價(jià)概念的所有Web服務(wù)資源。
例2 所有功能為提供視頻服務(wù)、輸出結(jié)果為特定視頻提供商“優(yōu)酷視頻”所屬類別的Web服務(wù)資源,語(yǔ)義表達(dá)式為:
解釋:查找Web服務(wù)資源中服務(wù)功能屬性是“移動(dòng)視頻”概念或等價(jià)的概念;且服務(wù)輸出屬性是實(shí)例“優(yōu)酷視頻”所屬概念的所有Web服務(wù)資源。
例3 所有返回結(jié)果為“建設(shè)銀行”或“工商銀行”所屬類的Web服務(wù)資源,語(yǔ)義表達(dá)式為:
解釋:查找Web服務(wù)資源中服務(wù)輸出屬性實(shí)例為“建設(shè)銀行”或?yàn)椤肮ど蹄y行”的所有Web服務(wù)資源。
例4 所有服務(wù)分類為“行業(yè)服務(wù)類”服務(wù),但又不能是“移動(dòng)保險(xiǎn)”的Web服務(wù)資源,語(yǔ)義表達(dá)式為:
service classification?行業(yè)服務(wù)類service classification?移動(dòng)保險(xiǎn)
解釋:查找Web服務(wù)資源中服務(wù)分類屬性是“行業(yè)服務(wù)類”概念或等價(jià)概念中排除了實(shí)例“移動(dòng)保險(xiǎn)”所屬概念的所有Web服務(wù)資源。
例5 所有服務(wù)功能為移動(dòng)銀行,銀行輸入為“建設(shè)銀行”對(duì)應(yīng)類別或“工商銀行”對(duì)應(yīng)類別的語(yǔ)義Web服務(wù)資源,語(yǔ)義表達(dá)式為:
解釋:查找Web服務(wù)資源中服務(wù)輸入屬性為實(shí)例“建設(shè)銀行”或?yàn)椤肮ど蹄y行”所屬本體概念的Web服務(wù)資源。
本次研究以搜索Web服務(wù)發(fā)現(xiàn)的標(biāo)準(zhǔn)化、易實(shí)現(xiàn)的有效支撐技術(shù)為目標(biāo),在W3C官方指定的語(yǔ)義Web服務(wù)描述語(yǔ)言O(shè)WL-S為服務(wù)模型,運(yùn)用了描述邏輯所具有的推理能力,提出一種語(yǔ)義Web服務(wù)搜索方法,即搜索服務(wù)表達(dá)式SSE。通過理論和示例分析,SSE表達(dá)式具有一定的完備性,它的實(shí)現(xiàn)機(jī)制將在《SSE表達(dá)式處理機(jī)制與實(shí)現(xiàn)》一文中詳細(xì)介紹。
[1]Berners-Lee T,Hendler J,Lassila.The Semantic Web[J].Scientific American,2001,284(5):34-43.
[2]李善平,尹奇韡,胡玉杰,等.本體論研究綜述[J].計(jì)算機(jī)研究與發(fā)展,2004(7):1041-1052.
[3]侯超昆,李石君.基于領(lǐng)域本體的網(wǎng)頁(yè)主題相關(guān)度計(jì)算[J].計(jì)算機(jī)工程與設(shè)計(jì),2014(12):4344-4349.
[4]王向輝,馮志勇.語(yǔ)義Web服務(wù)自動(dòng)組合定義、方法及驗(yàn)證調(diào)查[J].計(jì)算機(jī)應(yīng)用研究,2014(5):1292-1301.
[5]柯昌博,黃志球,劉林源,等.面向約束的Web服務(wù)發(fā)現(xiàn)方法研究[J].軟件學(xué)報(bào),2012(10):2665-2678.
[6]劉一松,楊玉成.基于文本聚類和概念相似度的語(yǔ)義Web服務(wù)發(fā)現(xiàn)[J].計(jì)算機(jī)科學(xué),2013(11):211-214.
[7]常亮,劉進(jìn),古天龍,等.基于動(dòng)態(tài)描述邏輯的語(yǔ)義Web服務(wù)組合[J].計(jì)算機(jī)學(xué)報(bào),2013(12):2468-2478.
[8]孫雨生,陳衛(wèi),胡娟.國(guó)內(nèi)語(yǔ)義Web服務(wù)研究進(jìn)展可視化分析[J].計(jì)算機(jī)與數(shù)字工程,2013(10):1556-1562.
[9]成錦暉,鄭山紅,李萬(wàn)龍,等.本體領(lǐng)域綜合概念相似度計(jì)算中的權(quán)重確定方法[J].吉林大學(xué)學(xué)報(bào)(理學(xué)版),2014(6):1272-1276.
[10]郭富祿,曾志浩,武岫緣.語(yǔ)義Web服務(wù)搜索研究概述[J].微型機(jī)與應(yīng)用,2013(21):4-6.
[11]石敏,趙文棟,張磊.一種基于本體劃分的語(yǔ)義Web服務(wù)發(fā)現(xiàn)算法[J].計(jì)算機(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.