袁逸濤, 王曉峰
?
基于XML Schema的航運領域本體構建方法①
袁逸濤, 王曉峰
(上海海事大學信息工程學院, 上海 201306)
EDI電子數據交換作為一種信息技術, 目前已經廣泛應用在航運領域. 然而由于各個國家乃至各個航運公司所用的EDI報文格式和系統都不相同, 導致數據流通性差. 為了解決航運領域信息共享存在的語義異構問題, 本文將本體的概念引入到了航運領域之中, 并且提出了一種基于XSLT轉換技術和XPath路徑語言的本體構建方法, 實現了將航運業務的XML Schema結構文檔中半自動化的轉換成OWL語法的本體文檔, 建立了航運領域本體. 實驗表明, 該方法能夠大大提高本體的構建效率, 并在一定程度上保證了本體的正確性.
航運信息共享; XSLT; XML Schema; OWL; 本體構建
近年來, 隨著信息時代的到來, 各行各業的數據量呈現一個爆發性增長的態勢. 而在航運領域, 由于航運業務涵蓋地域的廣泛性以及業務時間的漫長, 建立高效的信息共享平臺是十分必要的. 目前在航運領域主要是使用EDI(Electronic Data Interchange)報文的方式來進行信息交流, 它實際上是通過建立有效數據流, 利用計算機網絡來實現相關部門的數據在計算機應用系統之間的快速和可靠的切換以及自動處理, 針對異構EDI的問題, 各大航運公司在使用EDI系統的同時結合了XML的技術[1]. 在EDI系統中引入了XML平面文件的概念. 但是XML平面文件的技術只能夠解決數據在系統上的異構, 然而在航運領域, 數據所展現出的語義含義往往很重要, 它對航運數據在語義和知識上的異構不能進行處理.
在異構數據共享領域, 一些學者從哲學領域引入了本體(Ontology)的概念. 本體方法的提出解決了在信息共享中的語義異構的問題. 通過語義分析的方法, 本體可以對數據進行分類, 把相同的概念或語義數據提取, 并進行相關數據的整合, 挖掘出數據的深層語義. 并且在語義分析中所建立的本體可以重用, 避免了統一領域往復的領域知識分析. 我們希望將本體技術運用到航運領域的信息共享平臺之中來[2].
目前在本體領域主要有以下兩種構建方法[3]:
① 手工構建: 在行業專家的指導下利用諸如Protégé等編輯工具, 在構建工程中遵循一定的結構方法, 采用手工編輯的方法進行領域本體的構建. 這種方法準確性最高, 但是要耗費大量的時間和人力物力.
② 本體學習: 利用機器學習和統計等技術, 以自動或半自動的方法, 從己有的數據資源中獲取期望的本體. 同時本體學習根據不同結構的數據源分為了三種類型, 分別是基于非結構化數據、半結構化數據和結構化數據的本體學習. 與手動進行本體構建相比, 本體自動學習的方法雖然節省了效率, 但是沒有達到本體方法語義正確度的標準, 也就是說最終構建的本體與人工理解的本體存在語義差異.
根據在航運公司的調研結果, 目前很多航運公司的EDI系統中使用了XML技術. EDI報文會先轉換成為XML格式的平面文件再存入內部數據庫之中. 同時, 為了對XML平面文件進行校驗定義了XML schema文檔(即XSD文件), 它作為一種標準文件定義了XML文件的結構和內容. 由于XSD文件在制定的過程中參照了領域專家的意見, 所以我們把XSD文件作為航運本體的主要概念來源.
我們提出了一種XSD2OWL的方法, 先建立XSD文件到本體概念的映射關系, 再利用XSLT轉換技術實現XML結構文檔到OWL本體語言的轉換, 為最終的利用本體實現異構EDI交換奠定基礎.
1.1 XML Schema與本體語言OWL
XML Schema是用來定義XML 文檔的數據和結構的, 它指定了XML 文檔的一系列規則以確保 XML 文檔的一致性和有效性.
某航運公司一份艙單的XSD文件Manifest_Arrival_Air.xsd如下所示, 我們會基于這份XSD文件來實現XML Schema向OWL 本體轉換的方法:
根據上述的文檔內容, 我們發現其中XML Schema主要組成元素有:
① 簡單元素(Element): 簡單元素指那些僅包含文本的元素.
② 復合類型(ComplexType): 復合元素指包含了其他元素或屬性的 XML 元素.
③ 屬性(Attribute): 屬性在一定意義上就是元素的語義, 它用基本的數據類型描述了元素的意義.
④ 注釋(Annotation): 對于復合元素的中文語義描述.
⑤ 特定順序(Sequence): 定義復合元素中元素的出現順序, 具有不可改變性.
XML Schema是由XML編寫的, 所以具有很強的擴展性, 另外XML Schema 最重要的能力之一就是對數據類型的支持, OWL中內置的數據類型是和XML Schema一樣的.
目前在本體研究領域, 本體的描述語言有很多, 有RDF和RDF-S、OIL、DAML、OWL等. 其中目前應用最廣的就是OWL語言, 它最大的優勢是它是基于XML語法的, 這個特性也決定了它可以與所有基于XML語法的文檔通過一定的轉換規則進行轉換.
我們通過分析一份航運業務的XSD文檔, 初步設計一個獲取航運領域知識的OWL本體的主要有以下三個組成元素[4]:
① 個體(Individual): 個體代表某個知識領域中的一個需要被概念化提取的對象, 在OWL中同一個個體可以擁有不同的名稱, 在這種情況下, 個體之間的關系必須表達清楚, 標注它們是否相同. 個體是本體之中最基本的組成單位.
② 屬性(Property): 屬性表述了不同個體之間的一個二元關系. 比如說是否相同, 或者表達從屬關系等. 屬性在不同的個體之間建立了一種可靠的數據聯系. 在OWL中有兩個類型的屬性: 對象屬性和數據類型屬性, 分別建立了個體到個體的關系和個體到數值的關系.
③ 類(Class): 類似于面向對象方法中類的概念. 本體中的類就是具有相同概念的個體的集合, 這些個體共享了某些相同的屬性. 同時類與類直接也存在著一個用屬性表述的二元關系.
1.2 XSD2OWL轉換規則
從以上描述可以看出, OWL本體與XML Schema文檔不僅在語法上有著相似之處, 同時它們的組成元素以及結構上存在著一定的對應關系, 我們可以根據語義先對航運業務進行本體建模, 再制定相應元素之間的轉換規則[5-7]. 具體規則如下:
① 數據類型: OWL本體是由是由XML語法編寫, 所以直接使用了XML Schema文件中的內置數據類型.
② XML Schema文檔中的類型與OWL本體中的類: XML Schema文檔中主要有簡單元素和復雜類型, 在這里, 根據實際業務需求, 我們只研究復雜類型. 復雜類型主要有簡單元素(Element)構成, 而在OWL語法中, 類(Class)是個體的集合, 所以我們建立一個對應的映射關系. 把復雜類型作為概念提取出來, 作為本體的類.
③ XML Schema文檔中的簡單元素以及屬性(Attribute)和OWL中的數據類型屬性(Datatype Property):通過研究上述文檔我們發現, 在航運業務中的基本上所有的簡單元素都可以理解為表述復雜類型的一個屬性. 那么, 相對應的我們可以把簡單元素轉換為OWL本體中的數據類型屬性. 在現有的XSD業務文檔中, XML Schema屬性(Attribute)使用的很少, 不過為了系統的兼容性, 我們也將它定義轉換為OWL本體中的數據類型屬性.
④ XML Schema中的簡單元素和復雜類型的嵌套關系表述為OWL本體中的對象屬性(Object Property). 在XML Schema文檔中主要使用的是屬性與類的關系, 屬性與其子屬性的關系以及類與子類的關系[8].
⑤ XML Schema文檔中的Sequence(特定順序)用來定義復雜類型的語境, 它表示了在該復合類型中的元素是有序的, 我們在轉換為OWL文檔的時候不能改變元素的順序. 在OWL本體中沒有與之相對應得組件存在, 所以我們在OWL本體中定義一個類(Class)來完成相應的功能(可以將這個類命名為Sequence).
最后, 我們定義一個如表1所示的映射關系.

表1 XSD2OWL映射關系
定義映射規則之后, 我們根據《中華人民共和國海關進出境運輸工具艙單管理辦法》和《海關總署關于調整及新增進出境水運和空運運輸工具貨運艙單等電子數據格式的公告》(海關總署公告2010年第70號), 根據中國海關進出境艙單報文XML Schema文件定義了航運業務本體的數據模型.
本文初步把航運本體可定義為:
Shipping-ontology=
本體中的各參數的描述如下[9]:
C代表類(Class), 本體中個體元素的集合, 在航運業務中可以表示為目的地信息, 出發地信息等;
H代表類之間的層次關系(Hierarchy), 主要是指父類與子類關系, 描述航運業務流程中的層次結構, 在航運業務信息中, 由于各業務的交互, 需要將層次關系清楚描述, 比如說提單數據段中往往包含貨物數據段;
P代表屬性(Property), 在航運業務中絕大部分都是數據屬性, 描述個體信息;
PR代表對屬性的限制(Restriction of Property), 主要是對屬性取值的類型、范圍以及最多最少個數等的限制, 如發貨日期屬性只能為“*年*月*日”格式的日期, 且到貨日期的值必須要在發貨日期的值之后;
I代表個體(individual), 即某個概念(類)的具體表達.
定義本體之后, 我們結合一份實例文件演示本體建立的完整過程.
我們根據航運艙單的XSD文檔內容可以從中提取出如圖1的結構.

圖1 某公司XSD業務文檔結構
根據這個文檔結構, 我們在航運業務專家的指導下, 定義一些概念數據模型, 并與源數據中的定義建立如圖2所示的映射關系.

圖2 業務本體數據模型
基于上述的映射規則和數據模型, 本方案的實現基于java平臺, 因為java平臺中具有豐富的XML文件處理的API, 根據實際業務需求, 建立航運業務數據模型, 編寫XSLT文件來實現XSD文檔到OWL文檔的轉換, XSLT 使用 XPath 在 XML 文檔中查找信息. XPath 被用來通過元素和屬性在 XSD文檔中進行導航, 最后生成航運領域本體.
主要使用的開發IDE是MyEclipse, 所用框架技術為Servlet, 基于B/S架構[10,11]完成一個開源的JAVA WEB項目.
開發技術介紹:
XSLT 用于將一種 XML 文檔轉換為另外一種 XML 文檔. 由于本體描述語言OWL和航運EDI系統的平面文件都是基于XML語法的, 我們可以利用XSLT轉換技術完成兩種文檔的轉換. 在使用XSLT技術中, 我們需要制定一個模板, 模板的內容基于上文所描述的轉換規則. 在模板文件中, 利用XPath進行元素的導航與匹配, 并定義用于轉換的指令元素, 用這些指令書寫的文檔稱作樣式表, 其本身也是一個文檔. 我們把源文件XSD文檔和制定的樣式表文件輸入XSLT處理器, 生成航運本體的OWL文檔[12,13]. 該過程如圖3所示.

圖3 XSLT處理模塊
主要算法流程如圖4所示.
方法實現(XSLT文件實例):
//Mapping from named complexTypes to owl:Classes復合類型轉換為類
原始XSD文件與生成后的OWL文件片段:

圖4 算法流程圖

從上述文件片段看出, XSD文件中的complexType類型“運輸工具數據段”被轉換成了OWL文件中的class類型, XSD文件中的element類型“運輸方式代碼”等被轉換成了OWL文件中的DatatypeProperty類型.
我們將所生成的OWL文件在本體編輯工具Protégé中打開, 得到了如圖5所示的本體模型圖, 說明生成的本體滿足了OWL本體的數據規則, 具有可用性, 我們在接下來的研究工作中可以利用所生產的本體去做進一步的數據共享研究.

圖5 Manifest_Arrival_Air.OWL本體模型圖
本文首先分析了航運領域異構數據交換的研究現狀以及現存的一些問題, 引入了本體的概念. 基于航運公司提供的XML Schema文件, 重點分析了XML Schema語法和OWL語言的組成結構, 在此基礎上進行模式匹配, 再建立航運業務概念模型, 通過XSLT和XPath的技術將XSD文檔轉換為OWL預言的本體文檔, 實現了從半結構化數據XSD文檔中建立航運領域本體的過程.
在方法實現之后, 下一步工作是完善航運領域本體的數據庫, 將所建立的本體應用到航運異構信息共享平臺中, 以本體作為數據語義的依托, 利用本體對不同公司的XML文檔進行語義標注[14], 建立不同文檔之間的映射關系, 生成它們之間的轉換文件, 實現不同語義的業務文檔的自動映射和轉換.
1 虞祺.基于XML的EDI在航運企業的實施研究[學位論文]. 上海:上海交通大學,2004.
2 杜小勇,李曼,王珊.本體學習研究綜述.軟件學報,2006, 17(9):1837–1847.
3 徐紅升,張瑞玲.基于粗概念格模型的電子商務領域本體的構建研究.計算機工程與科學,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數據到OWL本體的轉換方法的研究[碩士學位論文].南昌:華東交通大學,2011.
8 許卓明,顧華建,倪玉燕,等.UML類圖向OWL本體轉換工具的設計與實現.河海大學學報(自然科學版),2007, 35(4):477–482.
9 李鵬.面向地質勘查的多源異構數據集成關鍵技術研究[博士學位論文].北京:中國地質大學,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的數據交換平臺.計算機技術與發展,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的通用報表系統的設計與實現.計算機應用與軟件,2011,28(2):142–144.
14 黃洋.基于SSH架構與本體的異構數據集成技術研究[碩士學位論文].北京:北京郵電大學,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]