徐順航,楊長春,徐 筱,葛天一,陳延雪
(常州大學 信息科學與工程學院,江蘇 常州 213164)
目前國內外有關智慧旅游[1,2]的研究有很多,Vecchio等[3,4]采用語義網(semantic web)中的本體(ontology)技術在旅游業知識管理領域創建電子旅游信息本體論,用于建立和增強旅游業的分析引擎。語義網[5,6]的主要思想是使得網絡信息具有語義,實現更精確的人機交互和合作。本體位于語義網體系層次結構的核心位置,是共享概念的知識表示,本體的邏輯基礎是描述邏輯(description logics,DL)。本體作為一個強大的知識庫被用來表達各種旅游概念,實現旅游資源的整合及共享。文獻[7]提出了在智能空間方法的基礎上創建一種面向歷史旅游的推薦服務技術,使用本體格式來保存語義描述的信息,利用本體對信息進行集成,不僅可以從現有的信息資源處理中獲取信息,還可以從中推斷出新的知識。然而現有的智慧旅游還存在著智能技術能力的不足、與游客脫節、不能很好滿足用戶需求等問題。
本文通過搜集面向智慧旅游的文物領域相關知識,使用Protégé工具基于描述邏輯建立領域概念間關系層次結構,構建了一個面向智慧旅游的文物領域本體,并針對現有文物旅游存在的不足,提出一種在本體知識庫中定義規則描述進行推理得出潛在語義信息的研究方法。在智慧旅游的文物景點中,可以提供精準的語義搜索結果以及隱含的語義信息,向用戶提供多樣化的旅游計劃建議,滿足用戶個性化需求。
本體是知識表達的一種形式,表示特定領域中知識概念及其相互之間的關系,達到共享概念模型明確的形式化規范說明[8]。本體可以看成是由特定領域內的相關概念知識組成的知識庫,其中包括本領域內相關概念的定義以及概念間關聯關系。領域本體(domain-specific ontology)則是對特定學科領域的一種知識表述,表示某一特定領域范圍內的特定知識,包括概念、屬性及其之間的關系、約束等。知識因其具有顯著的領域特性,可以方便領域本體進行合理有效的知識表示。知識庫(knowledge base,KB)是一種存儲知識實體的關于世界事實的數據庫,以計算機可讀的形式表示知識。隨著網絡數據可用性的飛速增長,語義網應用的領域范圍更加廣泛,越來越多的數據被表示為知識庫,大多數項目中使用的知識庫都是基于本體的方式表示,這樣可以更好地組織和訪問數據[9]。
領域本體的構建需要遵循以下5個原則[10]:
(1)明確性:本體能說明所定義的概念內容信息;
(2)完全性:本體中定義的概念能完全表達含義;
(3)一致性:本體定義的概念和由本體推理得到的概念是一致的;
(4)可擴展性:本體中定義的概念能擴展,即添加新的概念時,不需要修改已有的內容;
(5)最小約束性:本體要對模擬的事物生成較小推斷,方便用戶自由按需求去實例化。
本文主要采用斯坦福大學提出的七步法和其開發的開源本體編輯器軟件Protégé來構建面向智慧旅游的文物領域本體。Protégé中本體結構以樹形層次顯示,并且可以擴展、刪除或編輯本體的類、子類、屬性、實例以及關系等;還擁有多種插件,提供可擴展標記語言(extensible markup language,XML)、資源描述框架(resource description framework,RDF)、網絡本體語言(web ontology language,OWL)等多種存儲格式[11]。以七步法進行文物領域本體構建的步驟流程如圖1所示,具體步驟如下。

圖1 七步法本體構建流程
(1)明確所要構建的本體領域范圍。通用類本體包含太多的知識概念,構建所需工作量太大,因此在構建本體前先確定本體面向領域和應用對象及目的。本文面向的是面向智慧旅游的文物領域本體構建。
(2)在網上查找是否有現成的本體知識庫,考查復用現有本體的可能性。本體的目標是實現領域知識的共享和重用,所以在構建領域本體前,應該考慮復用現有本體。在網上查找到Virmanicl等[12]構建了一個旅游信息本體,包含旅游類別、景點和交通等概念,并基于這個本體設計了一個旅游信息系統,但是存在著不能很好的根據客戶需求進行個性化服務流程的問題。于是本文通過構建文物領域本體,將其用于文物景點的歷史智慧旅游的搜索中,滿足游客個性化要求。
(3)搜集領域知識列出主要構成要素,羅列相關術語概念及其可能具有的屬性和對應值。文物包含具體的名稱、制造年代、出土地點和現藏地點等描述文物本身的基本信息;還包含一些需要通過一定的主觀理解獲得的信息,即文物蘊含的文化歷史、功能用途以及蘊含意義等解讀信息。
(4)定義類和層次結構及其關系,建立本體模型。將第(3)步中產生的概念進行分類用于描述類屬關系,領域概念分類層次可以看成是一棵樹形結構,樹中節點與領域層次中的類實例一一對應。使用Protégé工具中的標簽頁OWL Classes創建本體的類及子類,定義上層關系broader和相應的下層關系narrower,其中文物領域本體中青銅器概念可視圖示例如圖2所示。
(5)定義類的屬性,描述概念間內在的邏輯關系,概念和概念之間通過關系來交互。本體中類的屬性分為對象屬性(Object Properties)和數據屬性(Data Properties)兩種,在Protégé中選擇Object Properties和Data Properties標簽創建相應屬性,如在Data Properties下添加related相關屬性等。表1是文物領域本體中部分屬性的說明。
(6)定義屬性取值類型、容許的取值及其個數以及其它有關屬性取值的特征。在Object Properties標簽右側勾選屬性對應的性質,如上述第(5)步定義的related屬性擁有symmetric相稱性質。
(7)為確定的類創建一個實例,并添加屬性值。在Protégé的Individuals標簽頁中,選擇某個類,創建該類的實例并添加屬性值描述。
本體構建好后選擇OWL語言對本體編碼、形式化存儲。OWL由W3C制定,通過對本體進行形式化地語義描述,可以使得計算機能夠理解本體描述的內容知識,其語法見表2。與XML和RDF支持的Web內容相比,OWL可以用來精確描述概念、屬性和個體之間的邏輯關系,為知識的推理做了良好的準備。

圖2 青銅器概念可視圖

表1 本體部分屬性說明

表2 OWL語法
OWL Lite、OWL DL和OWL Full是OWL的3種子語言,三者的表達能力根據描述需求依次遞增[13]。OWL Full是OWL的一個全集,提供的表達能力最強,但很難對推理進行有效的支持,且不能保證可判定推理,因此適用于表達能力很強、語法自由以及對計算要求不高的需求。OWL Full的一個子集是OWL DL,提供了基于描述邏輯的推理功能,表達能力較強且和推理可判定,保證了所有的計算都可以在有限的時間內完成,并且相關結論都能夠被計算出來。OWL DL的一個子集則是OWL Lite,表達能力沒有OWL DL強。于是采用OWL DL語言描述構建的本體內容,本體構建完成后以.owl文件的形式存在。
本體在構建完成后需要進行本體推理來檢測概念的包含關系和一致性,通過檢測出不一致來不斷完善本體,確保本體中包含的所有知識不存在矛盾。基于描述邏輯(DL)來實現推理,DL定義請參見文獻[14]。TBox(terminology)和Abox(assertion)組成了一個基于DL的領域本體知識庫,其中TBox是該領域概念術語的公理集合,通常用于描述術語知識或相關的應用背景知識,關注的是類之間的關系,例如在構建的文物領域本體中,“防護器具和武器”是一個概念術語集合。ABox則是對于個體的斷言集合,是具體的個體信息,關注的是實例關系,即個體所屬類別的斷言和個體之間關系的斷言,例如在構建的領域本體中“劍”這一詞條就是上述“防護器具和武器”概念術語集合下的一個具體實例。推理也分為TBox和ABox上的推理[15],如圖3所示。實例使用Protégé本體建模工具建立本體模型,獲取TBox中類的關系和屬性的關系;再獲取ABox中的類的實例及其屬性,目的是把一個描述好的實例歸入一個最具體的、最能反應它特征的類中。

圖3 描述邏輯知識推理結構
Tableau算法定義請參見文獻[16],通過使用否定將包含推理規則規約到概念描述的可滿足性上,假設概念描述為C和D,Tableau算法有以下定理來處理二者的包含關系:

在Pellet推理機中基于Tableau算法進行本體的推理,Pellet是一個實現了OWL DL推理的推理機,主要用于本體的加載、解析、驗證以及調試修復,形成TBox和Abox并能實現推理服務。推理機一般可以實現兩個功能,第一個是檢查本體的一致性,即保證本體中已獲得的類和類包含的個體實例在邏輯關系上保持一致性,沒有矛盾;第二個是通過推理得到隱性的知識。
TBox上的推理主要是指概念的可滿足性檢測(Satisfia-bility),即如果在TBox T中有一個解釋I使得CI是非空的,對概念C進行T的可滿足性檢測,那么概念C就是可T滿足的。圖4是概念的可滿足性檢測,詞條“青銅器”類別在“瓷器”類別之下,通過查詢通用類知識庫CN DB-Pedia[17],概念分類有著明顯的錯誤,檢測出不一致將其修正,即回溯到七步法中的第(4)步,將“青銅器”從“陶器”類別下刪除,將“青銅器”與“陶器”建立同級別關系。修正后再一次進行檢測,直到最終檢測正確為止。

圖4 概念可滿足性檢測
ABox上的推理主要包括對ABox中添加的實例進行檢測、個體實現以及一致性檢測,其中最基本的推理是一致性檢測,判斷某個個體是否為某個類的一個具體實例??梢砸罁Box的相關性質來檢測ABox的一致性,即當且僅當一個解釋I滿足ABox A和TBox T中所有的公理和斷言,則說明ABox A中的個體實例是一致的。圖5是一致性檢測,其中“青花瓷”是“青銅器”概念下的一個實例,根據2.2的方法檢測出不一致并進行修正,將“青花瓷”添加到“瓷器”類別下。

圖5 一致性檢測
本體的構建是一個長期的工程,通過在使用本體的過程中,發現其中存在的不足并不斷優化,使得所構建的本體逐漸符合實際情形。合理構建文物領域本體,為進一步的推理操作提供事實基礎。
本體屬于數據層,可以用來表示領域資源數據,構建的面向智慧旅游的文物領域本體知識庫,用戶可以通過搜索概念關鍵詞,到本體庫中進行查詢,得到相關文物信息。但是由于本體庫中存在著未顯示定義的知識,不能直接查詢到隱性知識,而導致搜索的結果不能滿足用戶潛在需求。因此需要對本體中描述的邏輯概念關系使用規則語言添加規則描述,對本體進行推理得到新知識。將構建的本體和規則一起放入推理機中進行規則推理,推理機可以從已有知識中推斷出符合用戶潛在需求的新知識,并返回與搜索結果相關的更多的有關新知識的結果。
雖然OWL為概念定義和分類操作提供了充分的公理,但還遠遠不足以表達推理規則。語義網規則描述語言(semantic web rule language,SWRL)是一種面向OWL推理的規則描述語言,通過對本體中概念的規則定義,實現個體實例的規則推理,得出新知識。將OWL和SWRL相結合,可以創建更強大的本體語言來表示知識和推理,在定義規則時可以充分結合OWL中本體豐富的表達能力,從而挖掘出更多的新的隱性知識[18,19]。
SWRL規則是表示前提(Antecedent)和結論(Consequent)之間的推導關系,其基本形式為Antecedent → Consequent,且兩者之間都可以包括單個或多個基本命題,命題之間通過邏輯與建立連接關系。SWRL在本體中主要使用以下兩個限制式:
(1)C(x):x是本體的一個實例,而C則是一個類,即說明類C下的一個實例是x;
(2)P(x,y):x和y是本體的實例,P是對象屬性,說明x和y之間存在的關系為P。
基于本體的規則推理,是在構建的本體知識庫中為本體概念實例添加規則描述,從而制定相應的規則庫,然后借助推理機按照推理算法可以從已存在的事實中推理出隱性結論,通過遵循SWRL規則,可以增強本體的語義信息[20]。從面向智慧旅游的文物領域本體出發,對推理規則的定義主要從以下兩個方面出發:
(1)在文物領域本體中,用戶需要了解文物具體代表的相關信息,相關推理規則定義如下:
[Rule1: cultural relic(?x) → hasMeanings(?x, ?y)];
[Rule2: cultural relic(?x) → hasUsage(?x,?y)];
[Rule3: related(?x, ?y) → related(?y, ?x)];
其中Rule1和Rule2中x是文物實例,y是本體中定義的對象屬性涵義或者擁有用途,即如果x是某文物,那么x具有某種涵義或用途;Rule3中x和y是實例,即如果x和y相關聯,則y與x相關聯。
(2)在智慧旅游中,用戶除了想要知道某景點具體信息外,可能還會想要了解景點的周邊景點以及周邊景點的相關信息如飯店住宿等,因此根據本體中定義的nearBy屬性,定義推理規則如下:
[Rule4: nearBy(?x, ?y) ∧ nearBy(?y, ?z) → nearBy(?x, ?z)];
[Rule5: hasCulturalRelic(?x, ?y) ∧hasCulturalRelic (?m, ?n) ∧ related(?y, ?n) →related(?x, ?m)];
Rule4中,x、y、z為3個不同實例,nearBy為對象屬性。該規則的前提是:如果x附近有y,并且y附近有z,則推理結論是x附近有z。Rule5中x、m為景點實例,y、n為具體文物實例,hasCulturalRelic和related是屬性關系。則上述規則說明景點x有文物y,景點m有文物n,并且文物y與文物n是具有關聯關系的,則推理出景點x與景點m也是相關聯的。
將構建的文物領域本體運用到智慧旅游中,可以為用戶提供多樣化的旅游計劃。在智慧旅游中,用戶通過搜索得到景點A,景點A附近存在景點B,景點B附近又存在景點C,而景點C又滿足用戶需求,通過推理規則Rule4可以向用戶展示景點C的相關信息。
例如當用戶輸入青銅器A這一概念查詢詞時,可以向用戶展示所構建的領域本體知識庫中存在的青銅器實例A的詳細信息如意義和用途等。用戶有時并不只關注所搜索的信息結果,還會去深入了解信息背后所隱含的知識。此時由于在構建的本體中青銅器實例A存在著hasLocation屬性,即青銅器A的原出土地B以及現收藏地C,構建的規則如Rule6所示,向用戶展示文物景點B和C可能感興趣的相關內容信息,達到智慧旅游滿足用戶個性化需求,提供更加便利快捷的智能化的服務需求的目的。
[Rule6: bronzeVessel(?A) ∧ unearthedPlace (?A, ?B) ∧ locatedIn(?A, ?B)→related(?B, ? C)];
用OWL語言存儲的領域本體提供推理事實的基礎前提,而用SWRL語言編寫的規則提供推理的要求,在Protégé中使用推理機將文物領域本體和相應的SWRL規則進行集成導入,推理產生新知識,得到文物領域本體中的隱含知識,將滿足條件的實例推理結果加入到相應的查詢結果中反饋給用戶,用戶根據推理結果選擇滿足自己需求的服務?;谝巹t推理的查詢實現,通過自定義規則推理挖掘隱含知識以提高查詢效果,其中推理流程如圖6所示。

圖6 本體規則推理流程
將自定義推理規則加載到Pellet推理機中,進行推理使得本體中本來不存在關聯關系的實例變得聯系起來,產生新的結果概念。通過推理機對概念的推理,完成基于語義的信息檢索,推理得出隱性知識,可以滿足用戶潛在需求,得到想要的結果。圖7是SWRL規則導入圖,圖8是根據圖7的規則推理得出的結果。

圖7 SWRL規則

圖8 推理結果
本文利用本體建模工具Protégé構建了面向智慧旅游的文物領域本體,并通過本體的一致性檢測等推理確保本體中包含的知識沒有矛盾,用OWL語言進行存儲形成本體知識庫;解析OWL表達的語義關系,通過構建SWRL規則,在推理機中進行推理,能夠從已知的知識中推理出隱含知識,向用戶提供其感興趣的潛在語義信息,滿足潛在需求。為防止收集的領域知識不完整,構建的領域本體不充分,導致推理不出結果,下一步工作將進一步完善現有本體,引用外部通用型中文知識庫CN DB-Pedia來輔助推理,與現有的領域本體建立連接,使用本體映射和本體演化等技術以便更好地推理出符合規則的隱性知識。