袁逸濤, 王曉峰
?
基于XML Schema的航運領(lǐng)域本體構(gòu)建方法①
袁逸濤, 王曉峰
(上海海事大學信息工程學院, 上海 201306)
EDI電子數(shù)據(jù)交換作為一種信息技術(shù), 目前已經(jīng)廣泛應用在航運領(lǐng)域. 然而由于各個國家乃至各個航運公司所用的EDI報文格式和系統(tǒng)都不相同, 導致數(shù)據(jù)流通性差. 為了解決航運領(lǐng)域信息共享存在的語義異構(gòu)問題, 本文將本體的概念引入到了航運領(lǐng)域之中, 并且提出了一種基于XSLT轉(zhuǎn)換技術(shù)和XPath路徑語言的本體構(gòu)建方法, 實現(xiàn)了將航運業(yè)務的XML Schema結(jié)構(gòu)文檔中半自動化的轉(zhuǎn)換成OWL語法的本體文檔, 建立了航運領(lǐng)域本體. 實驗表明, 該方法能夠大大提高本體的構(gòu)建效率, 并在一定程度上保證了本體的正確性.
航運信息共享; XSLT; XML Schema; OWL; 本體構(gòu)建
近年來, 隨著信息時代的到來, 各行各業(yè)的數(shù)據(jù)量呈現(xiàn)一個爆發(fā)性增長的態(tài)勢. 而在航運領(lǐng)域, 由于航運業(yè)務涵蓋地域的廣泛性以及業(yè)務時間的漫長, 建立高效的信息共享平臺是十分必要的. 目前在航運領(lǐng)域主要是使用EDI(Electronic Data Interchange)報文的方式來進行信息交流, 它實際上是通過建立有效數(shù)據(jù)流, 利用計算機網(wǎng)絡來實現(xiàn)相關(guān)部門的數(shù)據(jù)在計算機應用系統(tǒng)之間的快速和可靠的切換以及自動處理, 針對異構(gòu)EDI的問題, 各大航運公司在使用EDI系統(tǒng)的同時結(jié)合了XML的技術(shù)[1]. 在EDI系統(tǒng)中引入了XML平面文件的概念. 但是XML平面文件的技術(shù)只能夠解決數(shù)據(jù)在系統(tǒng)上的異構(gòu), 然而在航運領(lǐng)域, 數(shù)據(jù)所展現(xiàn)出的語義含義往往很重要, 它對航運數(shù)據(jù)在語義和知識上的異構(gòu)不能進行處理.
在異構(gòu)數(shù)據(jù)共享領(lǐng)域, 一些學者從哲學領(lǐng)域引入了本體(Ontology)的概念. 本體方法的提出解決了在信息共享中的語義異構(gòu)的問題. 通過語義分析的方法, 本體可以對數(shù)據(jù)進行分類, 把相同的概念或語義數(shù)據(jù)提取, 并進行相關(guān)數(shù)據(jù)的整合, 挖掘出數(shù)據(jù)的深層語義. 并且在語義分析中所建立的本體可以重用, 避免了統(tǒng)一領(lǐng)域往復的領(lǐng)域知識分析. 我們希望將本體技術(shù)運用到航運領(lǐng)域的信息共享平臺之中來[2].
目前在本體領(lǐng)域主要有以下兩種構(gòu)建方法[3]:
① 手工構(gòu)建: 在行業(yè)專家的指導下利用諸如Protégé等編輯工具, 在構(gòu)建工程中遵循一定的結(jié)構(gòu)方法, 采用手工編輯的方法進行領(lǐng)域本體的構(gòu)建. 這種方法準確性最高, 但是要耗費大量的時間和人力物力.
② 本體學習: 利用機器學習和統(tǒng)計等技術(shù), 以自動或半自動的方法, 從己有的數(shù)據(jù)資源中獲取期望的本體. 同時本體學習根據(jù)不同結(jié)構(gòu)的數(shù)據(jù)源分為了三種類型, 分別是基于非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)的本體學習. 與手動進行本體構(gòu)建相比, 本體自動學習的方法雖然節(jié)省了效率, 但是沒有達到本體方法語義正確度的標準, 也就是說最終構(gòu)建的本體與人工理解的本體存在語義差異.
根據(jù)在航運公司的調(diào)研結(jié)果, 目前很多航運公司的EDI系統(tǒng)中使用了XML技術(shù). EDI報文會先轉(zhuǎn)換成為XML格式的平面文件再存入內(nèi)部數(shù)據(jù)庫之中. 同時, 為了對XML平面文件進行校驗定義了XML schema文檔(即XSD文件), 它作為一種標準文件定義了XML文件的結(jié)構(gòu)和內(nèi)容. 由于XSD文件在制定的過程中參照了領(lǐng)域?qū)<业囊庖? 所以我們把XSD文件作為航運本體的主要概念來源.
我們提出了一種XSD2OWL的方法, 先建立XSD文件到本體概念的映射關(guān)系, 再利用XSLT轉(zhuǎn)換技術(shù)實現(xiàn)XML結(jié)構(gòu)文檔到OWL本體語言的轉(zhuǎn)換, 為最終的利用本體實現(xiàn)異構(gòu)EDI交換奠定基礎.
1.1 XML Schema與本體語言OWL
XML Schema是用來定義XML 文檔的數(shù)據(jù)和結(jié)構(gòu)的, 它指定了XML 文檔的一系列規(guī)則以確保 XML 文檔的一致性和有效性.
某航運公司一份艙單的XSD文件Manifest_Arrival_Air.xsd如下所示, 我們會基于這份XSD文件來實現(xiàn)XML Schema向OWL 本體轉(zhuǎn)換的方法:
根據(jù)上述的文檔內(nèi)容, 我們發(fā)現(xiàn)其中XML Schema主要組成元素有:
① 簡單元素(Element): 簡單元素指那些僅包含文本的元素.
② 復合類型(ComplexType): 復合元素指包含了其他元素或?qū)傩缘?XML 元素.
③ 屬性(Attribute): 屬性在一定意義上就是元素的語義, 它用基本的數(shù)據(jù)類型描述了元素的意義.
④ 注釋(Annotation): 對于復合元素的中文語義描述.
⑤ 特定順序(Sequence): 定義復合元素中元素的出現(xiàn)順序, 具有不可改變性.
XML Schema是由XML編寫的, 所以具有很強的擴展性, 另外XML Schema 最重要的能力之一就是對數(shù)據(jù)類型的支持, OWL中內(nèi)置的數(shù)據(jù)類型是和XML Schema一樣的.
目前在本體研究領(lǐng)域, 本體的描述語言有很多, 有RDF和RDF-S、OIL、DAML、OWL等. 其中目前應用最廣的就是OWL語言, 它最大的優(yōu)勢是它是基于XML語法的, 這個特性也決定了它可以與所有基于XML語法的文檔通過一定的轉(zhuǎn)換規(guī)則進行轉(zhuǎn)換.
我們通過分析一份航運業(yè)務的XSD文檔, 初步設計一個獲取航運領(lǐng)域知識的OWL本體的主要有以下三個組成元素[4]:
① 個體(Individual): 個體代表某個知識領(lǐng)域中的一個需要被概念化提取的對象, 在OWL中同一個個體可以擁有不同的名稱, 在這種情況下, 個體之間的關(guān)系必須表達清楚, 標注它們是否相同. 個體是本體之中最基本的組成單位.
② 屬性(Property): 屬性表述了不同個體之間的一個二元關(guān)系. 比如說是否相同, 或者表達從屬關(guān)系等. 屬性在不同的個體之間建立了一種可靠的數(shù)據(jù)聯(lián)系. 在OWL中有兩個類型的屬性: 對象屬性和數(shù)據(jù)類型屬性, 分別建立了個體到個體的關(guān)系和個體到數(shù)值的關(guān)系.
③ 類(Class): 類似于面向?qū)ο蠓椒ㄖ蓄惖母拍? 本體中的類就是具有相同概念的個體的集合, 這些個體共享了某些相同的屬性. 同時類與類直接也存在著一個用屬性表述的二元關(guān)系.
1.2 XSD2OWL轉(zhuǎn)換規(guī)則
從以上描述可以看出, OWL本體與XML Schema文檔不僅在語法上有著相似之處, 同時它們的組成元素以及結(jié)構(gòu)上存在著一定的對應關(guān)系, 我們可以根據(jù)語義先對航運業(yè)務進行本體建模, 再制定相應元素之間的轉(zhuǎn)換規(guī)則[5-7]. 具體規(guī)則如下:
① 數(shù)據(jù)類型: OWL本體是由是由XML語法編寫, 所以直接使用了XML Schema文件中的內(nèi)置數(shù)據(jù)類型.
② XML Schema文檔中的類型與OWL本體中的類: XML Schema文檔中主要有簡單元素和復雜類型, 在這里, 根據(jù)實際業(yè)務需求, 我們只研究復雜類型. 復雜類型主要有簡單元素(Element)構(gòu)成, 而在OWL語法中, 類(Class)是個體的集合, 所以我們建立一個對應的映射關(guān)系. 把復雜類型作為概念提取出來, 作為本體的類.
③ XML Schema文檔中的簡單元素以及屬性(Attribute)和OWL中的數(shù)據(jù)類型屬性(Datatype Property):通過研究上述文檔我們發(fā)現(xiàn), 在航運業(yè)務中的基本上所有的簡單元素都可以理解為表述復雜類型的一個屬性. 那么, 相對應的我們可以把簡單元素轉(zhuǎn)換為OWL本體中的數(shù)據(jù)類型屬性. 在現(xiàn)有的XSD業(yè)務文檔中, XML Schema屬性(Attribute)使用的很少, 不過為了系統(tǒng)的兼容性, 我們也將它定義轉(zhuǎn)換為OWL本體中的數(shù)據(jù)類型屬性.
④ XML Schema中的簡單元素和復雜類型的嵌套關(guān)系表述為OWL本體中的對象屬性(Object Property). 在XML Schema文檔中主要使用的是屬性與類的關(guān)系, 屬性與其子屬性的關(guān)系以及類與子類的關(guān)系[8].
⑤ XML Schema文檔中的Sequence(特定順序)用來定義復雜類型的語境, 它表示了在該復合類型中的元素是有序的, 我們在轉(zhuǎn)換為OWL文檔的時候不能改變元素的順序. 在OWL本體中沒有與之相對應得組件存在, 所以我們在OWL本體中定義一個類(Class)來完成相應的功能(可以將這個類命名為Sequence).
最后, 我們定義一個如表1所示的映射關(guān)系.
表1 XSD2OWL映射關(guān)系
定義映射規(guī)則之后, 我們根據(jù)《中華人民共和國海關(guān)進出境運輸工具艙單管理辦法》和《海關(guān)總署關(guān)于調(diào)整及新增進出境水運和空運運輸工具貨運艙單等電子數(shù)據(jù)格式的公告》(海關(guān)總署公告2010年第70號), 根據(jù)中國海關(guān)進出境艙單報文XML Schema文件定義了航運業(yè)務本體的數(shù)據(jù)模型.
本文初步把航運本體可定義為:
Shipping-ontology=
本體中的各參數(shù)的描述如下[9]:
C代表類(Class), 本體中個體元素的集合, 在航運業(yè)務中可以表示為目的地信息, 出發(fā)地信息等;
H代表類之間的層次關(guān)系(Hierarchy), 主要是指父類與子類關(guān)系, 描述航運業(yè)務流程中的層次結(jié)構(gòu), 在航運業(yè)務信息中, 由于各業(yè)務的交互, 需要將層次關(guān)系清楚描述, 比如說提單數(shù)據(jù)段中往往包含貨物數(shù)據(jù)段;
P代表屬性(Property), 在航運業(yè)務中絕大部分都是數(shù)據(jù)屬性, 描述個體信息;
PR代表對屬性的限制(Restriction of Property), 主要是對屬性取值的類型、范圍以及最多最少個數(shù)等的限制, 如發(fā)貨日期屬性只能為“*年*月*日”格式的日期, 且到貨日期的值必須要在發(fā)貨日期的值之后;
I代表個體(individual), 即某個概念(類)的具體表達.
定義本體之后, 我們結(jié)合一份實例文件演示本體建立的完整過程.
我們根據(jù)航運艙單的XSD文檔內(nèi)容可以從中提取出如圖1的結(jié)構(gòu).
圖1 某公司XSD業(yè)務文檔結(jié)構(gòu)
根據(jù)這個文檔結(jié)構(gòu), 我們在航運業(yè)務專家的指導下, 定義一些概念數(shù)據(jù)模型, 并與源數(shù)據(jù)中的定義建立如圖2所示的映射關(guān)系.
圖2 業(yè)務本體數(shù)據(jù)模型
基于上述的映射規(guī)則和數(shù)據(jù)模型, 本方案的實現(xiàn)基于java平臺, 因為java平臺中具有豐富的XML文件處理的API, 根據(jù)實際業(yè)務需求, 建立航運業(yè)務數(shù)據(jù)模型, 編寫XSLT文件來實現(xiàn)XSD文檔到OWL文檔的轉(zhuǎn)換, XSLT 使用 XPath 在 XML 文檔中查找信息. XPath 被用來通過元素和屬性在 XSD文檔中進行導航, 最后生成航運領(lǐng)域本體.
主要使用的開發(fā)IDE是MyEclipse, 所用框架技術(shù)為Servlet, 基于B/S架構(gòu)[10,11]完成一個開源的JAVA WEB項目.
開發(fā)技術(shù)介紹:
XSLT 用于將一種 XML 文檔轉(zhuǎn)換為另外一種 XML 文檔. 由于本體描述語言OWL和航運EDI系統(tǒng)的平面文件都是基于XML語法的, 我們可以利用XSLT轉(zhuǎn)換技術(shù)完成兩種文檔的轉(zhuǎn)換. 在使用XSLT技術(shù)中, 我們需要制定一個模板, 模板的內(nèi)容基于上文所描述的轉(zhuǎn)換規(guī)則. 在模板文件中, 利用XPath進行元素的導航與匹配, 并定義用于轉(zhuǎn)換的指令元素, 用這些指令書寫的文檔稱作樣式表, 其本身也是一個文檔. 我們把源文件XSD文檔和制定的樣式表文件輸入XSLT處理器, 生成航運本體的OWL文檔[12,13]. 該過程如圖3所示.
圖3 XSLT處理模塊
主要算法流程如圖4所示.
方法實現(xiàn)(XSLT文件實例):
//Mapping from named complexTypes to owl:Classes復合類型轉(zhuǎn)換為類
原始XSD文件與生成后的OWL文件片段:
圖4 算法流程圖
從上述文件片段看出, XSD文件中的complexType類型“運輸工具數(shù)據(jù)段”被轉(zhuǎn)換成了OWL文件中的class類型, XSD文件中的element類型“運輸方式代碼”等被轉(zhuǎn)換成了OWL文件中的DatatypeProperty類型.
我們將所生成的OWL文件在本體編輯工具Protégé中打開, 得到了如圖5所示的本體模型圖, 說明生成的本體滿足了OWL本體的數(shù)據(jù)規(guī)則, 具有可用性, 我們在接下來的研究工作中可以利用所生產(chǎn)的本體去做進一步的數(shù)據(jù)共享研究.
圖5 Manifest_Arrival_Air.OWL本體模型圖
本文首先分析了航運領(lǐng)域異構(gòu)數(shù)據(jù)交換的研究現(xiàn)狀以及現(xiàn)存的一些問題, 引入了本體的概念. 基于航運公司提供的XML Schema文件, 重點分析了XML Schema語法和OWL語言的組成結(jié)構(gòu), 在此基礎上進行模式匹配, 再建立航運業(yè)務概念模型, 通過XSLT和XPath的技術(shù)將XSD文檔轉(zhuǎn)換為OWL預言的本體文檔, 實現(xiàn)了從半結(jié)構(gòu)化數(shù)據(jù)XSD文檔中建立航運領(lǐng)域本體的過程.
在方法實現(xiàn)之后, 下一步工作是完善航運領(lǐng)域本體的數(shù)據(jù)庫, 將所建立的本體應用到航運異構(gòu)信息共享平臺中, 以本體作為數(shù)據(jù)語義的依托, 利用本體對不同公司的XML文檔進行語義標注[14], 建立不同文檔之間的映射關(guān)系, 生成它們之間的轉(zhuǎn)換文件, 實現(xiàn)不同語義的業(yè)務文檔的自動映射和轉(zhuǎn)換.
1 虞祺.基于XML的EDI在航運企業(yè)的實施研究[學位論文]. 上海:上海交通大學,2004.
2 杜小勇,李曼,王珊.本體學習研究綜述.軟件學報,2006, 17(9):1837–1847.
3 徐紅升,張瑞玲.基于粗概念格模型的電子商務領(lǐng)域本體的構(gòu)建研究.計算機工程與科學,2014,36(3):530–535.
4 胡鶴,劉大有,王生生.Web本體語言OWL.計算機工程, 2004,30(12):1–2.
5 靖爭.XML/Schema到OWL DL本體映射的研究[碩士學位論文].沈陽:東北大學,2008.
6 李為沖.XML到OWL文檔生成方法研究[碩士學位論文].青島:中國石油大學,2008.
7 譚介平.XML數(shù)據(jù)到OWL本體的轉(zhuǎn)換方法的研究[碩士學位論文].南昌:華東交通大學,2011.
8 許卓明,顧華建,倪玉燕,等.UML類圖向OWL本體轉(zhuǎn)換工具的設計與實現(xiàn).河海大學學報(自然科學版),2007, 35(4):477–482.
9 李鵬.面向地質(zhì)勘查的多源異構(gòu)數(shù)據(jù)集成關(guān)鍵技術(shù)研究[博士學位論文].北京:中國地質(zhì)大學,2013.
10 Tudorache T, Nyulas C, Noy NF, et al. Web Protégé: A collaborative ontology editor and knowledge acquisition tool for the Web. Semantic Web, 2013, 4(1): 89–99.
11 王艷敏,謝強,丁秋林.基于本體和Web Services的數(shù)據(jù)交換平臺.計算機技術(shù)與發(fā)展,2010,20(5):112–116.
12 Kay M, Fernández MF, Boag S, et al. XML path language (XPath) 2.0. Efficient & Flexible Search in Large Scale Distributed Systems, 2007(January): 505–506.
13 劉紅,王曄,潘晨,等.基于XML和XSLT的通用報表系統(tǒng)的設計與實現(xiàn).計算機應用與軟件,2011,28(2):142–144.
14 黃洋.基于SSH架構(gòu)與本體的異構(gòu)數(shù)據(jù)集成技術(shù)研究[碩士學位論文].北京:北京郵電大學,2015.
Shipping Domain Ontology Construction Method Based on XML Schema
YUAN Yi-Tao, WANG Xiao-Feng
(College of Information Engineering, Shanghai Maritime University, Shanghai 201306, China)
EDI (electronic data interchange), as a kind of information technology, has been widely used in the field of shipping. However, since various countries and various shipping companies use different EDI packet formats and systems, the ability of data circulation is poor. In order to solve the problem of semantic heterogeneity in shipping field information sharing, this paper introduces the concept of ontology into the field of shipping and proposes an ontology construction method based on the XSLT and XPath technology. It realizes the semi-automatization conversion from the XML Schema document to the OWL syntax ontology document and builds the maritime domain ontology. The experimental results prove that this method improves the efficiency of ontology construction, and ensures the correctness of the ontology.
shipping information sharing; XSLT; XML Schema; OWL; ontology construction
上海市科委重點項目(14511107402)
2016-04-17;收到修改稿時間:2016-05-08
[10.15888/j.cnki.csa.005514]