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