摘要:從服務的業務邏輯出發,在分析現有服務描述模式的基礎上,定義了面向業務應用的服務描述模型,并在OWL-S的基礎上,提出了業務級的服務與用戶需求描述語言EXOWL-S/R作為服務提供者和用戶進行業務級交互的基礎;同時在構建領域業務應用本體的基礎上,提出了根據服務的業務邏輯描述半自動地獲取服務業務級語義的標注方法,最終為幫助用戶全面地、無二義地理解服務的業務能力提供一種有效的解決方案。
關鍵詞:業務級的服務描述; 領域業務應用本體; 業務級的語義標注
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2008)05-1383-07
隨著服務計算研究的不斷深入,越來越多的企業選擇將已有的軟件資源包裝成服務,從而通過企業間的服務交換與組合實現計算資源最大限度地重用。面對大量的服務資源,如何發現適合的服務已成為嚴峻的挑戰。而為服務增加語義描述,使用戶可以準確、無二義地理解服務的能力,是使服務發揮最大效能的主要手段。現有的服務描述研究主要通過服務的輸入\\輸出、前置\\后置條件刻畫服務的能力。這雖然可以讓用戶了解到服務能做什么,卻無法讓用戶了解服務是如何做的,因而無法滿足用戶從業務層面考察服務的需要。實際上,服務的業務邏輯才是決定服務能否可用的關鍵。如果可以為服務建立業務級的描述語言,就可以促使服務提供者與用戶進行業務層面的交互,從而幫助用戶更為準確地理解服務的能力。為此,本文首先在分析現有服務描述語言的基礎上,通過擴展OWL-S增加對服務業務邏輯的描述,定義出業務級的服務描述語言,為服務提供者和用戶的業務級交互奠定基礎。同時為了消除服務提供者和用戶描述服務業務邏輯時的語義異構問題,本文建立了領域業務應用本體,作為面向特定領域的共享業務語義支撐環境。在此基礎上,本文提出了一種半自動的業務級服務語義標注方法,即通過服務業務邏輯描述與領域業務應用本體的匹配,在服務的業務級描述術語和其最適合的本體概念間建立起映射,進而實現對服務業務邏輯描述的語義標注。通過上述研究,本文最終提供出一種推動服務提供者與用戶進行業務層面語義級交互的服務描述與標注方法。
1相關研究
服務描述作為服務提供者和請求者進行交互的共同語言,是服務發現研究的基礎。現有的服務描述語言主要有兩類:a)句法級的服務描述,如WSDL。WSDL簡單定義了服務的名稱和文本描述等預定義信息,采用type、message、portType、binding和port描述了服務的接口語法。基于WSDL服務描述 UDDI[1]為服務提供者提供了發布服務的注冊機制,可以實現基于預定義分類的服務發現。WSDL采用XML描述模式,有良好的擴展性,但它是句法級的,且對服務行為和屬性的刻畫不夠全面。
b)基于本體的服務描述語言,如OWL-S[2]、WSMO[3]。它們采用機器可理解的語言描述服務,最終利用語義描述和邏輯推理實現服務匹配的自動化和智能化。它們利用具有特定含義的描述術語對服務功能進行抽象概括(如文獻[4]),并對輸入、輸出參數(如文獻[5]),前置、后置條件(如文獻[6])等服務功能的相關屬性進行了語義描述。基于這類服務描述語言,可以依賴語義描述和邏輯推理實現自動的服務匹配與發現。但現有的本體描述語言對服務的定義是宏觀上、一般意義的,并不針對具體的應用領域,它們缺少對服務業務背景和應用領域的考慮,沒有業務級別的服務描述。同時為了簡化服務提供者與用戶的交互,它們大多采用相同的描述模式來描述服務和用戶需求。這使用戶需求的描述能力受到服務描述模式的限制,其領域特性不能被明確表達。總之,現有的基于本體的服務描述語言不能完全滿足面向領域的實際業務應用需要。
無論采用哪種服務描述語言,為了讓用戶可以無二義、精確地理解服務的功能和行為,都需要通過語義標注機制對服務描述進行語義注釋,從而使服務描述真正成為機器可理解的服務語義。這方面的研究主要有以下兩類:a)關注于為句法級服務描述標準(如WSDL、UDDI)擴充語義,如文獻[7];b)使用基于本體的服務描述語言刻畫服務語義。無論采用哪種方法,都面臨建立服務描述與特定領域本體映射的問題,也就是通過標志服務與本體概念間的關聯關系實現對服務的語義標注。只有被語義標注后的服務描述才是機器可理解的,才可以真正用于實現服務提供者和用戶間語義級的互操作。
為此文獻[8,9]提出了半自動地對WSDL服務描述文檔進行標注的方法,即通過XML描述文檔和領域本體的模式匹配,找到適合的本體概念,對WSDL文檔的組成元素進行注釋,達到為服務增加語義的目的。它們的不同之處在于,文獻[8]中將XML描述和本體轉換成為一共同的描述模式schemaGraph進行匹配,最終生成一種新的包含語義注釋的服務描述語言WSDL-S;文獻[9]是將XML schema轉換成OWL constructs,與采用OWL定義的領域本體進行匹配,最終將服務用OWL-S進行描述。上述方法都是對WSDL服務描述文檔的語義標注,而對于基于本體的服務描述語言,如OWL-S,提供了將描述術語依靠URI鏈接到特定的領域本體的語義標注機制。但這項工作目前大多通過采用手工方式完成,隨著服務數量和本體規模的增長,這種方式將變得異常笨重和低效。此外這種標注方法只是將服務描述術語與領域本體關聯起來,卻沒有對它們之間的關聯程度進行度量。由于本體規模和種類的限制,服務描述術語與本體概念不一定可以實現完全匹配,對它們的關聯程度進行度量是十分必要的。同時,由于服務描述模型的限制,上述方法不能為服務增加業務級語義,實現對服務業務邏輯的語義標注。為此,提供一種靈活的、能夠對服務描述與領域本體的關聯程度進行度量并最終為服務增加業務級語義的語義標注方法是十分必要的。
2面向業務應用的服務描述模型與業務級服務描述語言EXOWL-S/R
服務描述語言是服務提供者和用戶關于如何表示服務的一種約定。它包含兩方面內容,即服務描述以及對用戶需求的描述。根據前面的分析可以看出,在面向業務應用的背景下,服務和用戶需求采用統一的描述模式存在一定的缺陷。為了使服務描述更具有針對性,本文首先對面向業務應用的用戶需求的描述模式進行分析。2.1業務級用戶需求描述
在面向業務應用的背景下,用戶的服務發現請求是用戶對實現特定業務功能的服務的約束說明。它由功能需求和潛在業務需求兩方面組成。
為了構建業務應用,用戶的發現請求直接表現為對目標服務功能的限定規范。通過對用戶發現請求的解析可以首先獲取用戶的功能需求描述,它以刻畫目標服務的功能為核心。
定義1用戶的功能需求是對目標服務功能的具體要求和指定。它具體表現為如下所示的四元組:
由于用戶的功能需求是在具體領域中面向特定的業務應用目標提出的,在領域業務先驗知識的作用下,用戶需求與生俱來地被賦予了一系列潛在業務約束,本文將其稱為用戶的潛在業務需求。用戶潛在業務需求的產生是由于在實際應用領域中,任何一項業務工作都可能由不只一項業務活動構成。例如在旅游領域中,預訂酒店這項業務工作是由酒店查詢、酒店預訂等多項業務活動組成的,而酒店預訂這項業務活動又是由酒店預訂申請、訂金支付等多項具體業務操作構成的。這就使得用戶需求不僅僅是對服務功能的指定,還隱含了對服務業務邏輯的潛在約束。
定義2用戶的潛在業務需求是用戶對目標服務的潛在業務約束,用來限定實現特定業務功能的目標服務的業務邏輯,即是對目標服務應該完成的業務活動以及實現這些業務活動的具體業務操作的詳細約束說明。其形式化定義如下:
其中:(BO,BA)用來描述這項業務工作包含的任一業務活動;BFO表示業務活動針對的客體;BFA表示其針對特定客體完成的具體業務行為。業務活動的基本單元是業務操作,通過由業務操作針對的客體O和其針對特定客體開展的具體動作A構成的二元組來刻畫。
定義3面向業務應用的用戶需求是用戶在具體業務應用的背景下,對實現特定業務功能的服務的規范說明,它包括功能需求和潛在業務需求兩部分,即request=(function_requirement,business_reqirement)。根據面向業務應用的用戶需求的定義,本文在OWL-S的基礎上定義了面向業務應用的用戶需求描述本體EXOWL-R。它包含兩部分:a)Ex-ServiceProfile,是在OWL-S ServiceProfile的基礎上,增加了用于描述用戶功能需求的類和屬性。Ex-serviceProfile是雙向的,既可以描述用戶功能需求,又可以對服務功能進行概要描述。b)BusinessConnotation是基于OWL建立的用戶需求業務內涵的描述本體,用于描述用戶的潛在業務約束。具體實例如下描述(由〈ex-profile〉標志的內容是對OWL-S需求描述的擴展,〈businessConnotation〉標志的內容用于描述用戶需求的業務內涵)。
Ex-ServiceProcess需求描述文檔示例:
〈profile:serviceName〉…〈/profile:serviceName〉
〈profile:textDescription〉
User D want a service which is a hotel (in shenyang area) book system.
〈/profile:textDescription〉
〈ex-profile:serviceFunction〉
〈ex-profile:object〉hotel〈/ex-profile:object〉
〈ex-profile:action〉book〈/ex-profile:action〉
〈ex-profile:functionalConstraint〉
〈ex-profile:subconstraint rdf:ID=\"positionLimit\"〉
〈ex-profile:constraintTerm rdf:datatype=\"xsd;#String\"〉position
〈/ex-profile:constraintType〉
〈ex-profile:constraintValue rdf:datatype=\"xsd;#string\"〉shenyang 〈/ex-profile:constraintValue〉
〈ex-profile:constraintPRI rdf:datatype=\"xsd;#int\"〉0〈/ex-process:constraintPRI〉
〈/ex-profile:subconstraint〉
〈/ex-profile:functionalConstraint〉
〈/ex-profile:serviceFunction〉
……
BusinessConnotation需求描述文檔示例:
〈BusinessConnotation〉
〈BusinessConnotation:businessActivity rdf:ID=\"HotelQuery\"〉
……
〈/BusinessConnotation:businessActivity〉
〈BusinessConnotation:businessActivity rdf:ID=\"HotelBook\"〉
〈BusinessConnotation:businessActivityObject〉hotel 〈/BusinessConnotation:businessActivityObject〉
〈BusinessConnotation:businessActivityAction〉book 〈/BusinessConnotation:businessActivityAction〉
〈BusinessConnotation:businessOperation rdf:ID=\"HotelBook_in\"〉
〈BusinessConnotation:businessOperationObject〉 hotel〈/BusinessConnotation:businessOperationObject〉
〈BusinessConnotation:businessOperationAction〉 booking
〈/BusinessConnotation:businessOperationAction〉
〈/BusinessConnotation:businessOperation〉
〈BusinessConnotation:businessOperation rdf:ID=\"EarnestPayment\"〉
〈BusinessConnotation:businessOperationObject〉 earnest
〈/BusinessConnotation:businessOperationObject〉
〈BusinessConnotation:businessOperationAction〉 pay〈/BusinessConnotation:businessOperationAction〉
〈/BusinessConnotation:businessOperation〉
……
〈/BusinessConnotation:businessActivity〉
〈BusinessConnotation:businessActivity rdf:ID=\"GuestConfirm\"〉
……
〈/BusinessConnotation:businessActivity〉
〈/BusinessConnotation〉
2.2業務級服務描述
為了與用戶需求進行業務層面的匹配,服務描述除了包含對服務功能的概要描述,還要包含對服務業務邏輯的深入刻畫。服務是由操作具體實現的,作為構成服務業務邏輯的基本單元,操作是服務業務處理能力與粒度的直觀體現。因此,服務的業務邏輯可以通過描述操作與操作間的關聯關系進行刻畫。
定義4面向業務應用的操作是實現獨立業務功能的軟件單元,它是組成面向業務應用的服務的基本元素。其形式化描述為OP=(OID,ON,OO,OA,OC)。其中:OID表示操作的惟一標志;ON表示操作的名字;OO表示操作的客體;OA為操作的動作;OC為操作的功能性補充說明。
定義5面向業務應用的服務是實現特定業務功能的軟件實體,它由一系列操作組成,其形式化描述為WS=(SID,SN,SO,SA,SC,OPF)。其中:SID為服務的惟一標志;SN為服務的名字;SO為服務的客體;SC為服務的功能性補充說明;SA為服務的動作;OPF為服務包含操作的功能語義描述集合,它由一系列操作的功能概要描述組成。
基于面向業務應用的服務的定義,本文在OWL-S的基礎上建立了面向業務應用的服務描述本體EXOWL-S。它包含兩部分:a)ex-ServiceProfile,定義了從總體上刻畫服務功能的方法,它與EXOWL-R ex-ServiceProfile的結構一致;b)ex-ServiceProcess,在OWL-S ServiceProcess的基礎上,增加了描述操作功能的類和屬性,從而實現對服務業務邏輯的詳細刻畫。下面給出一個使用EXOWL-S描述服務的實例(由〈ex-profile〉和〈ex-process〉標志的內容是對OWL-S服務描述的擴展)。
Ex-ServiceProfile服務描述文檔示例:
〈profile:serviceName〉HotelBook system〈/profile:serviceName〉
〈profile:textDescription〉
It is a hotel book system. It has two operation hotel_query and hotel_book.
〈/profile:textDescription〉
〈ex-profile:serviceFunction〉
〈ex-profile:object〉hotel〈/ex-profile:object〉
〈ex-profile:action〉booking〈/ex-profile:action〉
〈ex-profile:functionalConstraint〉
〈ex-profile:subconstraint rdf:ID=\"positionLimit\"〉
〈ex-profile:constraintTerm rdf:datatype=\"xsd;#String\"〉
location
〈/ex-profile:constraintType〉
〈ex-profile:constraintValue rdf:datatype=\"xsd;#string\"〉shenyang
〈/ex-profile:constraintValue〉
〈ex-profile:constraintPRI rdf:datatype=\"xsd;#int\"〉0〈/ex-process:constraintPRI〉
〈/ex-profile:subconstraint〉
〈/ex-profile:functionalConstraint〉
〈/ex-profile:serviceFunction〉
……
Ex-ServiceProcess服務描述文檔示例:
〈process:AtomicProcess rdf:ID=\"QueryHotel\"〉
〈rdfs:comment〉Query hotel〈/rdfs:comment〉
〈ex-process:object〉hotel〈/ex-process:object〉
〈ex-process:action〉query〈/ex-process:action〉
〈ex-process:functionalConstraint〉
〈ex-process:subconstraint rdf:ID=\"LicensureLimit\"〉
〈ex-process:constraintTerm rdf:datatype=\"xsd;#String\"〉
license
〈/ex-process:constraintTerm〉
〈ex-process:constraintValue rdf:datatype=\"xsd;#boo-lean\"〉true
〈/ex-process:constraintValue〉
〈ex-process:constraintPRI rdf:datatype=\"xsd;#int\"〉 0
〈/ex-process:constraintPRI〉
〈/ex-process:subconstraint〉
〈/ex-process:functionalConstraint〉
〈process:hasInput〉
〈/process:AtomicProcess〉
……
〈process:AtomicProcess rdf:ID=\"BookHotel\"〉
〈rdfs:comment〉Book five-star hotel〈/rdfs:comment〉
〈ex-process:object〉hotel〈/ex-process:object〉
〈ex-process:action〉book〈/ex-process:action〉
〈ex-process:functionalConstraint〉
〈ex-process:subconstraint rdf:ID=\"StarLimit\"〉
〈ex-process:constraintTerm rdf:datatype=\"xsd;#String\"〉star 〈/ex-process:constraintTerm〉
〈ex-process:constraintValue rdf:datatype=\"xsd;#int\"〉 5〈/ex-process:constraintValue〉
〈ex-process:constraintPRI rdf:datatype=\"xsd;#int\"〉 1〈/ex-process:constraintPRI〉
〈/ex-process:subconstraint〉
〈/ex-process:functionalConstraint〉
〈process:hasInput〉……
〈/process:AtomicProcess〉……
業務級的服務與用戶需求描述語言EXOWL-S/R,是在擴展OWL-S的基礎上提出的描述面向業務應用的服務和用戶需求的具體方法,它為服務提供者和用戶進行業務級互操作奠定了基礎。
3領域業務應用本體
業務級的服務描述語言統一了服務提供者和用戶從業務層面描述服務和用戶需求的方法,但在共同的描述模式約束下,不同的人可能使用不同的自然語言進行描述,卻體現著相同的語義。這種語義異構問題成為服務提供者和用戶進行交互的最大障礙。為此需要建立公共的語義支撐環境,從而消除服務描述術語間的語義差異。
通過對應用領域中業務活動描述模式進行分析可以發現,無論簡單還是復雜的業務活動都可以用業務活動針對的客體及針對該客體完成的具體動作來描述。為此,在領域業務應用本體中,將描述業務活動客體的概念作為主體,與之相關的存在一系列描述其基本特征的自然屬性,并將描述業務活動完成動作的概念作為業務活動客體描述概念的動作屬性。同時在本體中還定義了一系列關系用以體現本體概念間的關聯。
定義6領域業務應用本體是應用領域中的業務描述規范,其形式化定義如下:
其中C為概念的集合,包括分類概念和屬性兩類。分類概念是本體中用于描述具有相同屬性和行為的一類對象的概念,如在旅游業務本體中,hotel就是一個分類概念。屬性反映了分類概念的特征,與屬性相關的存在一些預定義信息,包括屬性的默認值、類型、取值范圍以及屬性的自然語言描述等。屬性可分為兩類:a)自然屬性,用來描述分類概念的基本特征,如star表示星級,它是hotel的一個自然屬性,其預定義描述包括取值類型為整型、長度為1、取值范圍為[1,5]等。b)動作屬性,用來描述分類概念所涉及的業務行為,其預定義的核心內容是動作屬性的默認業務內涵,用于定義構成動作屬性所代表業務活動的具體業務操作。具體來說,動作屬性的默認業務內涵是一個由一系列動作屬性概念及其所屬分類概念組成的業務描述集合,其基本元素表示一項業務操作,采用[分類概念].[動作屬性]的形式表示。若描述業務操作的分類概念與其構成業務活動對應的分類概念相同,上述表達式中的[分類概念]可以由[.]代替。例如book是hotel的動作屬性,其默認業務內涵為{.query,.book,.quest.confirm}。這樣就定義了一類hotel book業務活動,它由hotel query、hotel book以及hotel quest confirm三項業務操作組成。在本體中存在一類特殊的動作屬性,其默認業務內涵為空,這意味著其所描述的業務活動是不可再分的原子業務行為,本文將這類動作屬性稱為原子動作屬性。R為關系集合,包括kind-of、instance-of、natural-Attribute-of和behaviorAttribute-of四種關系,用以體現本體中概念之間的關聯。其中:kind-of表示概念之間的繼承關系; instance-of表示概念的實例與概念之間的關系;naturalAttribute-of表示某一概念是另一概念的自然屬性;behaviorAttribute-of表示某一概念是另一概念的動作屬性。
此外,A為實例集合;rel為函數集合;X為公理集合。圖1展現了旅游業務本體的部分層次結構。
領域業務應用本體是應用領域中業務活動的公共表示模型,可以為服務提供者設計、開發和描述服務提供指導,同時也是生成服務業務級語義標注的基礎。
4服務發現過程中的業務級語義標注
通過業務級的服務描述語言,服務提供者和用戶已經就服務的業務級描述模式達成了一致。而為了實現服務提供者和用戶間業務級的語義互操作,必須通過語義標注為服務和用戶需求描述增加機器可理解的語義。
在服務發現的過程(圖2)中,對服務和用戶需求都要進行語義標注。對服務進行語義標注的前提是要先獲取服務描述,即首先需要通過以下兩種方式獲取服務的業務級描述:a)由服務發現系統提供服務描述接口,由服務提供者在進行服務發布時主動提供服務的業務級描述。b)由發現系統對現有服務描述進行解析和重新組合,通過對服務(及操作)的名稱、自然語言描述進行分詞等一系列解析處理,得到服務業務邏輯的描述。在獲取服務業務級描述后,即得到了服務的ex-ServiceProfile和ex-ServiceProcess描述文檔,對這兩類服務描述文檔都需要進行語義標注。其次,對用戶需求也需要進行語義標注,即對在用戶需求接收過程中得到的用于表示用戶功能需求的ex-ServiceProfile文檔和表示用戶深層業務需求的BusinessConnotation文檔進行語義標注。
具體來說,服務的業務級語義標注是引用領域業務應用本體中的概念對服務描述進行語義注釋的過程。其核心問題是要通過服務描述術語與本體中概念的匹配,找到可以標志服務描述術語語義的本體概念,在相關本體概念和服務描述間建立關聯關系,最終實現對服務的語義標注。本文對該問題的解決方案如下:雖然服務的業務級描述和領域業務應用本體都是采用OWL描述的,但它們的結構不同,進行直接匹配存在一定的難度。為此,本文首先建立了一系列的映射規則,將服務業務級描述和領域業務應用本體都轉換成為一種共同的表示形式,即BusinessSchemaGraph;在此基礎上,將服務和本體的BusinessSchemaGraphs進行匹配,在計算服務描述術語與本體概念匹配度的基礎上,為服務業務級描述中使用的描述術語找到可對其進行注釋的本體概念,最終實現對服務業務級描述整體的語義標注。
4.1BusinessSchemaGraph
BusinessSchemaGraph提供了一種描述服務業務邏輯和領域業務本體的公共表示方法,它由一系列節點和連接節點的邊組成。本文建立了如表1、2所示的服務業務級描述和領域業務應用本體BusinessSchemaGraph的轉換規則。領域業務應用本體的BusinessSchemaGraph映射示例可參見圖1。
服務描述BusinessSchemaGraph映射示例如圖3所示。
基于上述轉換規則,服務描述和本體都被轉換成BusinessSchemaGraph的形式。下面本文將通過匹配算法在它們之間建立映射。
4.2服務描述與領域業務應用本體的匹配
首先,對于服務描述BusinessSchemaGraph中的每一個概念,都將與領域業務應用本體BusinessSchemaGraph中的相關概念進行匹配,并計算出匹配度,從而選擇與之匹配程度最好的本體概念對其進行語義注釋。
服務描述術語可分為兩類:a)在服務客體和服務功能性補充說明中使用的描述術語,它們與本體中的分類概念或自然屬性概念相對應;b)服務動作描述術語,它與本體中的動作屬性概念相對應。這兩類描述術語與其相關本體概念的匹配度計算方法是不同的。具體來說,對于在服務客體和服務功能性補充說明中使用的描述術語,它們與其相關本體概念的匹配度取決于兩方面,即兩個概念的相似度及概念各自所處描述模式的相似度。
定義8概念相似度是指概念作為自然語言本身所體現的相似程度,其度量方法如下:
linguMatch(T,C)=
1if(MS1=MS2=MS3=1)
MS3if(0 0if(MS1=MS2=MS3=0)(2) 其中:進行匹配的服務描述術語和本體概念分別用T和C表示;MS1、MS2、MS3分別表示由同義詞匹配、詞語縮寫匹配以及分詞匹配后得到的匹配度。式(2)的含義是首先將T和C進行同義詞匹配,成功則相似度為1,失敗則對T進行詞語縮寫擴展處理;計算擴展后的T和C的相似度,若不能擴展或擴展后的T仍不能與C匹配,則對T進行分詞處理。通過標點符號和大寫字母將T拆分為多個詞語,即{t1,t2,…,tn},利用字符串匹配算法(如NGram算法)分別計算t1,t2,…,tn與C的相似度,最終計算出T與C的詞語相似度。 定義9概念描述模式的相似度是指概念所處描述模式間的相似程度。 由于服務的描述術語和本體概念都不是獨立存在的,在它們各自的BusinessSchemaGraph當中,存在一系列與它們相關的子概念。因此,服務的描述術語和本體概念的相似性很大程度上依賴于由它們各自相關子概念構成的描述結構間的相似性。具體來說,服務描述術語與本體概念描述模式的相似性由以下兩方面決定,即它們各自子概念的相似度以及由它們各自子概念所構成的描述模式的匹配度,即 schemaSimilar=subConceptSimilar×subConceptMatch(3) 其中:subConceptSimilar表示子概念的相似度。其計算方法如下: 對于描述服務動作的概念,它與其本體中相關動作屬性概念的相似性不僅受到概念相似性的影響,還取決于它與動作屬性概念默認業務內涵的關聯關系。 推論1如果服務動作描述術語A與本體動作屬性概念C的默認業務內涵中的任意子動作屬性概念ai具有相似性,則T與A也是相似的。 定義10概念的業務相似度是指概念所具有的業務內涵的相似程度。其計算方法如下:設服務動作描述術語A,其相關服務客體描述為O;A的相關本體動作屬性概念為CA,CA對應的分類概念為CO,CA的默認業務內涵包含t個動作屬性概念,即CA.defaultBusinessConnotation={(oi,a i,)|i=1,…,t},則A與CA的業務相似度為 服務操作描述術語和用戶需求描述術語及本體概念的匹配度計算與服務描述術語的匹配度計算方法相同,可以根據其相關本體概念的類型對應到本文前面的計算方法進行計算。 基于上述服務描述術語和領域業務應用本體中概念的匹配方法,下面將為服務描述進行語義標注。 4.3業務級語義標注的生成與表示 本文提出了如下業務級服務語義標注方法: /*輸入:業務級服務描述,領域業務應用本體 輸出:業務級服務描述的語義標注*/ a)業務級服務描述生成服務的BusinessSchemaGraph由n個術語節點S={T1,T2,…,Tn}組成,生成領域業務應用本體的BusinessSchemaGraph包含m個概念節點O={C1,C2,…,Cm}。 b)取服務BusinessSchemaGraph中任一術語節點Ti∈S,將其與概念Cj∈O進行匹配,按照式(1)計算出匹配度mj=matchDegree(Ti,Cj),若mj大于預設閾值,則將Cj作為一備選語義映射,即mapj=(Ti,Cj,mj)。 c)對O中所有概念都執行步驟b)的操作,可得到服務描述術語Ti的備選語義映射集合mappings={map1,map2,…,mapk},取其中匹配程度最好的語義映射best(mappings)作為服務描述術語Ti的標注。 d)對服務的所有術語重復執行步驟b)c)的操作,分別得到它們的語義標注,最終生成服務業務級描述的語義標注。 服務的語義標注是動態變化的,隨著本體規模不斷變化。當出現本體概念增減時,將自動觸發語義標注機制,檢查是否需要為服務重新進行標注,以保證服務的語義標注始終保持最優。 找到服務描述術語與領域業務應用本體的最佳語義映射后,需要將這一映射關系在服務描述中體現出來,使得服務包含的語義真正成為機器可理解的。具體來說就是要通過URI引用特定的領域業務應用本體,對服務描述進行注釋。首先在服務描述文檔中,引入特定的領域業務應用本體,將本體的URI定義為一個實體類型,如〈!ENTITY travelConcepts \"http://www.neu.edu.cn/services/travelBusiness/1.1/TravelOntology.owl\"〉;其次,將需要進行注釋的服務描述術語替換為其對應的本體概念,如〈ex-profile:object〉hostel〈/ex-profile:object〉被替換為〈ex-profile:object〉travelConcepts;#hotel〈/ex-profile:object〉。這樣服務描述就與領域業務應用本體關聯起來,從而為服務增加業務語義。 為了體現服務描述與本體的關聯程度,領域業務應用本體的每一個概念都設置了一個服務映射列表,用于記錄該概念與其相關服務的標注關系和標注粒度。本體概念服務映射列表的基本元素是一個二元組,包含由服務ID標志的服務描述術語和該術語與本體概念的匹配度兩部分,即mapping_list={〈serviceID.Description,matchingDegree〉}。例如對于旅游業務應用本體中概念hotel,它的mapping_list中就可能包含如下內容:{…,〈S1.hostel,1〉,〈S2.lodging, 0.3〉,〈S3.motel,0.7〉,…}。下面為一個服務ex-ServiceProfile描述的語義標準示例。其中帶下畫線的部分為引入領域業務應用本體和語義注釋的內容。 〈!DOCTYPE uridef[ 〈!ENTITY xsd \"http://www.w3.org/2001/XMLSchema\"〉 …… 〈!ENTITY travelConcepts \"http://www.neu.edu.cn/services/tra-velBusiness/1.1/travelOntology.owl\"〉 …… ]〉 〈rdf:RDF …… xmlns: travelConcepts=\"travelConcepts;#\" …… 〉 〈profile:serviceName〉HotelBook system〈/profile:serviceName〉 〈profile:textDescription〉 It is a hotel book system. It has two operation hotel_query and hotel_book. 〈/profile:textDescription〉 〈ex-profile:serviceFunction〉 〈ex-profile:object〉travelConcepts;#hotel〈/ex-profile:object〉 〈ex-profile:action〉travelConcepts;#book〈/ex-profile:action〉 〈ex-profile:functionalConstraint〉 〈ex-profile:subconstraint rdf:ID=\"positionLimit\"〉 〈ex-profile:constraintTerm rdf:datatype=\"xsd;#string\"〉 travelConcepts; #position〈/ex-profile:constraintType〉 〈ex-profile:constraintValue rdf:datatype=\"xsd;#string\"〉shenyang 〈/ex-profile:constraintValue〉 〈ex-profile:constraintPRI rdf:datatype=\"xsd;#int\"〉0 〈/ex-process:constraintPRI〉 〈/ex-profile:subconstraint〉 〈/ex-profile:functionalConstraint〉 〈/ex-profile:serviceFunction〉 …… 5實驗與分析 為驗證本文研究的業務級語義標注方法的可行性和有效性,進行了如下實驗:首先選擇旅游領域作為研究對象。在領域專家的指導下,利用先驗知識建立旅游領域的業務本體,并從發布在WebServiceX(www.webservicex.net)、Web service list(www.webservicelist.com)和BindingPoint(www.bindingpoint.com)中的Web服務中選擇110例旅游領域相關的Web服務作為實驗對象。其中處理飛機票業務的服務25例、天氣查詢服務38例、城市(地理)信息查詢服務47例。收集這些服務的功能描述信息并提取其WSDL文檔。利用Protégé的OWL-S editor插件將服務的WSDL描述文檔轉換成OWL-S的描述模式,通過擴展服務的功能與業務邏輯描述生成包含服務功能概要描述的ex-ServiceProfile文檔和描述服務業務邏輯的ex-ServiceProcess文檔。一方面在領域專家的參與下對收集到的Web服務描述進行手工標注,將這些語義標注保存為標準標注樣本,再調用語義標注算法對服務進行自動語義標注。這些標注本文稱為修正標注結果。 通過對實驗結果數據的分析,得到如下結論: a)服務的標準標注樣本與服務修正標注結果的對比如表3所示。可以看出,業務級語義標注方法可以較好地實現對服務的語義標注,對照標準標注樣本的平均準確率為77.10%。同時也可以發現,在進行實驗的三類服務中,飛機票業務服務語義標注的準確率最高,天氣查詢服務和城市地理信息查詢服務語義標注的準確率相對較低。這種實驗結果的出現很可能是因為旅游業務本體對飛機票業務服務描述的覆蓋粒度要好于其他兩類服務。其中服務語義標注的準確率等于修正標注樣本中與標準標注樣本一致的正確語義映射的數量及標準標注樣本中所有語義映射數量的比值。 上述實驗結果表明,本文提出的業務級語義標注方法可以較好地為服務增加業務級語義,能夠為實現服務提供者與企業級用戶業務級的互操作奠定基礎。 6結束語 本文在分析現有服務描述的基礎上定義了重點突出服務業務邏輯的業務級服務描述語言,從而為實現服務提供者和用戶間業務級的互操作奠定了基礎;同時建立領域業務應用本體,作為共享的領域業務語義支撐環境。以此為基礎,提出業務級語義標注機制,即通過服務的業務描述模式和領域業務應用本體的匹配發現適合的本體概念,分別對服務的業務描述術語進行語義注釋,從而將服務的業務描述轉換為機器可理解的業務語義,最終進一步推進服務提供者與企業級用戶的業務級語義交互。實驗結果表明本文提出的業務級語義標注機制是可行和有效的。本文提出了一種業務級的服務描述方法,并在此基礎上提出了自動獲取服務業務級語義的語義標注機制。該方法為企業級用戶從業務層面考察服務、實現與服務提供者業務級的語義交互提供了一種有效的解決方案。 參考文獻: [1]CLEMENT L,HATELY A,von RIEGEN C,et al.UDDI version 3.0.2 specification[S].[S.l.]:OASIS, 2004. [2]The OWL-S Service Coallition. OWL-S: semantic markup for Web services, version 0.1[EB/OL].(2003-11).http://www.daml.org/services/owl-s/1.0/owl-s.pdf. [3]ROMAN D, KELLER U, LAUSEN H. Web service modeling ontology(WSMO)[EB/OL].(2005-06-03).http://www.wsmo.org/2004/d2/v01/index.html. [4]DUMAS M, O’SULLIVAN J, HERAVIZADEH M, et al. Towards a semantic framework for service description[C]//Proc of IFIP Con-ference on Database Semantics. Netherlands: Kluwer Academic Publishers, 2001:277-291. [5]PAOLUCCI M, KAWMURA T, PAYNE T, et al. Semantic matching of Web services capabilities[C]//Proc of the 1st International Semantic Web Conference. Berlin: Springer, 2002:333-347. [6]SIVASHANMUGAM K, VERMA K, SHETH A, et al. Adding semantics to Web services standards[C]//Proc of the 1st International Conference on Web Services, 2003. [7]SRINIVASAN N, PAOLUCCI M, SYCARA K. Adding OWL-S to UDDI, implementation and throughput[C]//Proc of the 1st International Workshop on Semantic Web Servicesand Web Process Composition. San Diego:[s.n.], 2004. [8]PATIL A, OUNDHAKAR S, SHETH A, et al. METEOR-S Web service annotation framework[C]//Proc of the 13th Int’l World Wide Web Conference. New York: ACM Press, 2004:553-562. [9]ZHANG Duo, LI Juan-zi, XU Bin. Web service annotation using ontology mapping[C]//Proc of IEEE International Workshop on Ser-vice-Oriented System Engineering.Washington DC:IEEE Computer Society, 2005:243-250. “本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”