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