史濤+沈艷霞
摘要: 針對(duì)基于XML的農(nóng)產(chǎn)品溯源平臺(tái)中的數(shù)據(jù)集成問題,提出一種XML Schema模式匹配方法。該方法同時(shí)考慮元素的語義性和結(jié)構(gòu)性,結(jié)合文檔元素的名稱、數(shù)據(jù)類型以及基數(shù)約束3個(gè)方面,通過相應(yīng)的度量標(biāo)準(zhǔn)計(jì)算出元素的語義相似度,實(shí)現(xiàn)語義匹配;通過計(jì)算模式樹中元素節(jié)點(diǎn)的祖先相似度,同時(shí)考元素本身的語義相似度,實(shí)現(xiàn)結(jié)構(gòu)匹配。闡述了匹配算法的設(shè)計(jì)過程和試驗(yàn)評(píng)估結(jié)果。結(jié)果表明,相比較現(xiàn)有的幾種方法,該方法能實(shí)現(xiàn)全自動(dòng)化的匹配過程,提供更精確的匹配結(jié)果。
關(guān)鍵詞: 農(nóng)產(chǎn)品;XML Schema;模式匹配;算法
中圖分類號(hào): S126 文獻(xiàn)標(biāo)志碼: A 文章編號(hào):1002-1302(2016)03-0442-04
近年來,農(nóng)產(chǎn)品質(zhì)量安全問題成為國(guó)民關(guān)注的重要民生問題[1]。建立面向農(nóng)產(chǎn)品質(zhì)量溯源的公共平臺(tái),向消費(fèi)者提供農(nóng)產(chǎn)品從生產(chǎn)、加工、流通到銷售的一個(gè)完整的生命周期信息,是避免有質(zhì)量安全或偽劣產(chǎn)品流入市場(chǎng),確保食品安全的重要保障[2]。
由于具有平臺(tái)獨(dú)立性、可擴(kuò)展性、自描述性等特點(diǎn),XML已成為農(nóng)產(chǎn)品溯源信息網(wǎng)絡(luò)傳輸與交換的主要標(biāo)準(zhǔn)[3]?;赬ML的農(nóng)產(chǎn)品溯源系統(tǒng)采用統(tǒng)一的方式來處理不同地區(qū)、不同數(shù)據(jù)源的農(nóng)產(chǎn)品信息,屏蔽構(gòu)農(nóng)產(chǎn)品溯源信息在結(jié)構(gòu)、運(yùn)行環(huán)境上的差異,采用XML構(gòu)造數(shù)據(jù)轉(zhuǎn)換的中間層,實(shí)現(xiàn)農(nóng)產(chǎn)品溯源信息的無縫集成。利用XML開發(fā)的系統(tǒng),農(nóng)產(chǎn)品溯源信息管理員只需遵循一些基本的結(jié)構(gòu)規(guī)則,就可以便捷地創(chuàng)建包含溯源信息的XML文檔,并將其存儲(chǔ)在分布式的計(jì)算機(jī)環(huán)境中。這些結(jié)構(gòu)規(guī)則通常通過XML Schema(XSD)和文檔類型定義(DTD)得到。XSD本身就是XML 文檔,與DTD相比,在支持?jǐn)?shù)據(jù)類型和空間定義方面表現(xiàn)更好,更適合為農(nóng)產(chǎn)品溯源信息定義結(jié)構(gòu)[4]。然而使用不同的XSD文檔描述的農(nóng)產(chǎn)品數(shù)據(jù)在集成過程中會(huì)帶來相互沖突的問題,在農(nóng)產(chǎn)品XSD文檔中,許多元素具有相同的語義,但它們的名稱和結(jié)構(gòu)可能不同,相反許多元素具有相同的模型,但語義不同。因此,在農(nóng)產(chǎn)品數(shù)據(jù)的有效集成中,主要問題之一就是如何在XSD文檔中計(jì)算出元素之間的相似度,實(shí)現(xiàn)高質(zhì)量的模式匹配。
目前,關(guān)于XML模式匹配的研究已取得了一些研究成果。Kim等將樹-樹的匹配問題分步轉(zhuǎn)換成路徑-路徑、節(jié)點(diǎn)-節(jié)點(diǎn),最終轉(zhuǎn)換成單詞-單詞的匹配問題[5],該方法的不足之處在于語義匹配算法中沒有考慮數(shù)據(jù)類型和基數(shù)約束,匹配精度不高。Wojnar等提出了一種樹編輯距離算法,借鑒編輯距離的思想,用語言匹配計(jì)算得到元素對(duì)應(yīng)的語言相似值作為輸入,計(jì)算某一元素的結(jié)構(gòu)完全變?yōu)榱硪粋€(gè)元素結(jié)構(gòu)的操作步數(shù),從而計(jì)算結(jié)構(gòu)相似值,其理論主要集中在結(jié)構(gòu)計(jì)算[6]。Lee等通過聚合DTD的元素來計(jì)算出DTD樹之間的相似度[7],Ye等在其聚合方法中增加了權(quán)值因素[8]。文獻(xiàn)[7]提出的聚合方法(XClust)允許相似的信息存儲(chǔ)在一起,分類信息的標(biāo)準(zhǔn)越高,聚合數(shù)據(jù)的質(zhì)量就越高。然而,XClust方法主要依賴于人為判斷和結(jié)構(gòu)化信息去聚合DTD元素;更重要的是,該方法沒有考慮DTD中屬性的數(shù)據(jù)類型相似度。近幾年,部分研究借鑒實(shí)體識(shí)別研究領(lǐng)域的思想來進(jìn)行模式匹配研究,例如使用一個(gè)原型工具Dedoop(使用 Hadoop 的重復(fù)刪除技術(shù))在大數(shù)據(jù)集中實(shí)現(xiàn)實(shí)體識(shí)別[9]。另外,基于維基百科,WordNet等的知識(shí)網(wǎng)絡(luò)從實(shí)例角度吸引了從事調(diào)查數(shù)據(jù)源管理研究者的興趣[10]。WordNet廣泛用于匹配系統(tǒng)[11]中,例如網(wǎng)絡(luò)搜索[12]和網(wǎng)絡(luò)查詢擴(kuò)展[13]。在本研究中也使用WordNet來計(jì)算元素的名稱相似度。
現(xiàn)階段的一些研究方法只考慮元素的名稱相似度或者結(jié)構(gòu)相似度的計(jì)算[5-6],雖然有些研究已經(jīng)都考慮語義和結(jié)構(gòu)[7],但其度量標(biāo)準(zhǔn)中的部分因素需要通過人為判斷來確定。針對(duì)農(nóng)產(chǎn)品溯源信息的XML數(shù)據(jù)量巨大,且包含對(duì)于數(shù)據(jù)類型和基數(shù)約束的多種定義,需要更標(biāo)準(zhǔn)的度量標(biāo)準(zhǔn)得出精確的相似度值。因此,本研究綜合考慮元素的語義匹配和結(jié)構(gòu)匹配,提出一種新的XML Schema模式匹配方法。語義匹配中,綜合考慮元素的名稱、數(shù)據(jù)類型以及基數(shù)約束,提出相應(yīng)的度量標(biāo)準(zhǔn)計(jì)算相似度,無需人為判斷,提高匹配精度和效率;結(jié)構(gòu)匹配中,考慮元素中節(jié)點(diǎn)的祖先相似度,同時(shí)將語義相似度作為計(jì)算的參數(shù)之一,提高結(jié)構(gòu)匹配的精確度。通過性能研究以及同相關(guān)方法對(duì)比實(shí)現(xiàn)對(duì)本研究方法的評(píng)估,可以從XSD農(nóng)產(chǎn)品溯源數(shù)據(jù)中通過全自動(dòng)化的方式計(jì)算出元素之間的語義和結(jié)構(gòu)相似度,實(shí)現(xiàn)模式匹配。
1 模式匹配概念
模式是代表一件設(shè)計(jì)物的一個(gè)比較正式的結(jié)構(gòu),如XML模式、SQL模式和實(shí)體-關(guān)系模式等[14]。對(duì)于任意的模式S1和S2,模式S1中的某些元素映射到模式S2中的某些元素,其中的映射元素又稱為匹配元素對(duì),映射叫匹配結(jié)果。模式匹配的目標(biāo)是利用模式間的所有可用信息,得出模式間最匹配的元素。
模式匹配定義:模式匹配定義為一個(gè)函數(shù),輸入值為2個(gè)模式,輸出值為模式之間的相似度計(jì)算結(jié)果。
相似度計(jì)算:對(duì)于模式S和T,元素s∈S,t∈T。相似度計(jì)算表示一個(gè)函數(shù),輸入值為s和t,輸出值為s和t之間的相似度sim(s,t),其中0≤sim(s,t) ≤1。
相似度表示2個(gè)元素之間的相似性,為了精確地評(píng)估一個(gè)元素對(duì)的相似度,相似度計(jì)算應(yīng)該充分考慮元素的特征以及其結(jié)構(gòu)。相似值的大小范圍是[0,1],0代表2個(gè)元素基本不相似,1代表2個(gè)元素相似度極高甚至是完全相同。
2 匹配算法設(shè)計(jì)
2.1 語義匹配
概念的語義性在文本文檔的集成過程中具有重要的作用[14]。XML Schema的語義包含詞匯、內(nèi)容模式以及數(shù)據(jù)類型。通常來說,XML Schema使用標(biāo)準(zhǔn)的命名空間(xs或xsd)和對(duì)應(yīng)的統(tǒng)一資源標(biāo)識(shí)符(URI)作為文檔開頭;利用XML Schema,可以定義文檔中元素可能出現(xiàn)的次數(shù),分別表示為maxOccurs和minOccurs 2種屬性;更重要的是,簡(jiǎn)單類型和復(fù)雜類型元素幫助區(qū)分元素中2種屬性類型的數(shù)據(jù)類型相似度[15]。
本研究中,對(duì)于任意2個(gè)元素s1∈T1,s2∈T2,其語義相似度綜合考慮元素名稱、數(shù)據(jù)類型和基數(shù)約束3個(gè)方面,如公式(1)所示:
式中:Sesim為語義相似度;α和β為程序設(shè)定的權(quán)值;Namesim(e1,e2)、Dsim(d1,d2)、Csim(e1,e2)分別為名稱相似度,數(shù)據(jù)類型相似度以及基數(shù)約束相似度,具體計(jì)算分3步驟完成。
2.1.1 步驟1名稱匹配 語義相似度計(jì)算中的關(guān)鍵因素是元素本身的語言相似度。在實(shí)際的農(nóng)產(chǎn)品溯源XML Schema文檔中,表示同一對(duì)象的元素可能出現(xiàn)縮寫,帶有連接符號(hào)等形式,導(dǎo)致基于語言本身的差異。首先進(jìn)行3個(gè)預(yù)處理步驟:(1)使用符號(hào)分析器,將復(fù)合詞組拆分為獨(dú)立的單詞;(2)通過查找WordNet,將縮寫的單詞還原成詞匯本體;(3)刪除慣詞、介詞等修飾詞。預(yù)處理完成后,利用表格中的算法對(duì)元素e1和e2進(jìn)行名稱相似度的計(jì)算。其中,在WordNet中e2的同義詞庫(kù)中,利用深度優(yōu)先搜索算法查找是否含有e2的同義詞,直到e2被匹配。如果沒有匹配結(jié)果,則語言相似度返回0,否則其值為0.9distance。具體算法如表1所示。
2.1.2 步驟2數(shù)據(jù)類型匹配 在XML Schema文檔,每個(gè)元素都是簡(jiǎn)單類型或者復(fù)雜類型。如果2個(gè)元素有相同的名稱,且數(shù)據(jù)類型屬性是相同的,二者之間的語義相似度可能高于其他情況。對(duì)于2個(gè)葉元素,考慮其數(shù)據(jù)類型描述。由于數(shù)據(jù)類型伴隨著屬性元素,數(shù)據(jù)類型相似度的計(jì)算僅適用于2種元素都為屬性的情況。當(dāng)2種元素,其一為復(fù)雜類型而其二為簡(jiǎn)單類型,則二者的數(shù)據(jù)類型相似度為0。
不同于文獻(xiàn)[16]提出的方法,數(shù)據(jù)類型相似度值通過用戶判斷決定,本研究探索每個(gè)數(shù)據(jù)類型的內(nèi)部特征,并比較數(shù)據(jù)類型之間的關(guān)聯(lián)性,通過具體的公式計(jì)算實(shí)現(xiàn)。基于文獻(xiàn)[17]關(guān)于XML Schema數(shù)據(jù)類型的總結(jié),本研究對(duì)數(shù)據(jù)類型的各個(gè)約束方面求出數(shù)據(jù)類型相似度。在此,將其命名為Dsim,由以下公式得出:
Dsim(d1,d2)=∑i|{cfi|d1[cfi]=d2[cfi],1< (2)
式中:d1和d2為表1中的任意數(shù)據(jù)類型;cfi為數(shù)據(jù)類型約束方面的列表,其中包括長(zhǎng)度、最小長(zhǎng)度、最大長(zhǎng)度、模式、枚舉數(shù)、空格數(shù)等等;ncf為約束方面的總個(gè)數(shù),本例中ncf為12。
表2顯示了XML Schema中6種典型屬性類型的數(shù)據(jù)類型相似度結(jié)果。表中的具體值由公式(2)計(jì)算得出。在表1中,整數(shù)型與小數(shù)型2者之間的相似度大于其他類型。當(dāng)2種元素?cái)?shù)據(jù)類型相同時(shí),二者相似度最高,為1.0。
2.1.3 步驟3基數(shù)約束匹配 基數(shù)約束可以描述為XML Schema文檔中minOccurs(最小可能)和maxOccurs(最大可能),分別定義1個(gè)元素在XML文檔中出現(xiàn)次數(shù)的最小值和最大值。
定義Csim(e1,e2)為元素d1和d2之間的基數(shù)約束相似度。不同于文獻(xiàn)[15]提出的約束表格需要通過人為判斷得出,本研究通過具體公式來計(jì)算約束相似度。對(duì)于具體的minOccurs和maxOccurs值,使用公式(3)計(jì)算基數(shù)約束相似度:
式中,min和max分別為minOccurs和maxOccurs的縮寫。一般情況下,minOccurs被指定為0或1,而maxOccurs被指定為1或無窮大。為了計(jì)算出具體Csim的值,參考文獻(xiàn)[18]的分析,使用公式如下:
結(jié)合公式(3)和(4),可以計(jì)算出屬性基數(shù)約束的相似度,如表3所示。其中unbound=5。
2.2 結(jié)構(gòu)匹配
在樹結(jié)構(gòu)中,2個(gè)元素節(jié)點(diǎn)的結(jié)構(gòu)相似度取決于二者在樹中的所處位置。即使2個(gè)元素節(jié)點(diǎn)的語義相似,也無法得出它們各自的祖先相似;但僅僅考慮元素的祖先相似度并不可取,原因在于可能存在2個(gè)節(jié)點(diǎn)結(jié)構(gòu)相同但語義完全不同。本研究采取計(jì)算節(jié)點(diǎn)的祖先相似度,同時(shí)考慮節(jié)點(diǎn)的語義相似度的方法,提高結(jié)構(gòu)匹配的精確度。
范數(shù)定義:設(shè)V=[x1,x2,…,xn]為一個(gè)向量,且V∈Rn,則其范數(shù)(歐幾里得距離)表示為‖V‖=2∑n i=1xi2。
利用范數(shù)可以更有效地運(yùn)用權(quán)值概念。舉例說明,如果S=(a,b,b,a,c,b,c)為一組節(jié)點(diǎn),其中a,b,c的權(quán)值分別為2,3,2。因此,如果將這些權(quán)值保存在如N=[2,3,2]的向量中,則S的范數(shù)為‖S‖=222+32+22=217。該范數(shù)將起到相似度值的規(guī)范化作用。
設(shè)T1和T2分別表示XML Schema文檔的2棵樹,提出其相似度計(jì)算如公式(5)所示:
式中:Sesim(e1i,e2j)為元素e1i和e2j的語義相似度值(由公式(1)計(jì)算得到);PCC(r1→e1i,r2→e2j)(Path Context Coefficient)表示分別從根節(jié)點(diǎn)r1和r2到e1i和e2j的路徑相似度。實(shí)際上,PCC(r1→e1i,r2→e2j)為元素e1i和e2j的祖先相似度;當(dāng)2個(gè)節(jié)點(diǎn)在語義上相同或者高度相似時(shí),只要節(jié)點(diǎn)的祖先不相似,則二者不相似。PCC(r1→e1i,r2→e2j)的具體計(jì)算公式如下:
式中:Sesim(n1k,n2l)為節(jié)點(diǎn)n1k和n2l的語義相似度值;節(jié)點(diǎn)n1k和n2l分別屬于路徑r1→e1i和r2→e2j;p和q分別為2條路徑上的節(jié)點(diǎn)數(shù)目;P1和P2為2個(gè)向量,其值分別表示為從屬于2條路徑上的節(jié)點(diǎn)權(quán)值。
原則上,公式(7)應(yīng)該適用于所有節(jié)點(diǎn);然而,假設(shè)元素e1i和e2j中至少一個(gè)為根節(jié)點(diǎn),則其很明顯沒有祖先。因此,該相似度計(jì)算在系統(tǒng)上存在偏差。為了彌補(bǔ)系統(tǒng)偏差,當(dāng)出現(xiàn)上述情況時(shí),令PCC(r1→e1i,r2→e2j)=1。
2.3 元素匹配
本研究同時(shí)考慮XML Schema樹中元素的結(jié)構(gòu)性和語義性。因此,2個(gè)XML Schema中的元素相似度可以由上述2個(gè)部分計(jì)算得到:
當(dāng)計(jì)算得到2個(gè)XML Schema中所有的元素對(duì)的相似度,可以計(jì)算出2個(gè)XML Schema的相似度。2棵XML Schema樹的相似度由下式計(jì)算可得:
3 試驗(yàn)評(píng)估
為了驗(yàn)證此方法的有效性,將本研究方法與現(xiàn)有的2種方法,即XClust[7]和XMLSim[19]進(jìn)行試驗(yàn)對(duì)比。試驗(yàn)數(shù)據(jù)源選用超過20組的XML Schemas(以及對(duì)應(yīng)的DTDs)。試驗(yàn)采用的硬件環(huán)境為Intel Core i3 CPU,內(nèi)存為4GB,操作系統(tǒng)為Windows 7,測(cè)試平臺(tái)是Altova Spy和Microsoft Visual Studio 2010標(biāo)準(zhǔn)環(huán)境,系統(tǒng)代碼通過C#實(shí)現(xiàn)。試驗(yàn)中選取的權(quán)值分別為α=0.3,β=0.3,δ=0.6,ε=0.6。通過上述3種匹配算法得到的結(jié)果顯示在表4中。
如表4中所示,XMLSim匹配率最低,原因在于XML文檔中的實(shí)例數(shù)目是可變的,且各文檔之間大多不相同。當(dāng)文檔中的節(jié)點(diǎn)與另一個(gè)文檔中的節(jié)點(diǎn)匹配成功后,算法開始計(jì)算下一對(duì)節(jié)點(diǎn)。因此,如果2個(gè)文檔中的節(jié)點(diǎn)數(shù)目不同時(shí),匹配值將會(huì)下降。
為了更好地評(píng)價(jià)3種匹配方法,本研究使用Do H-H[20]提出的評(píng)價(jià)標(biāo)準(zhǔn),分別為查準(zhǔn)率(precision)、查全率(recall)、F_measure,如下公式:
試驗(yàn)在相同的權(quán)值和相似度閾值的條件下,得出本研究方法Esim與XMLSim以及XClust方法的計(jì)算結(jié)果,如圖1所示。
試驗(yàn)結(jié)果表明,本研究方法的匹配質(zhì)量高于XMLSim和XClust這2種方法。原因在于,XClust方法沒有考慮元素之間的數(shù)據(jù)類型相似度,然而一些元素對(duì)可能有同樣的名稱,但數(shù)據(jù)類型不同。XMLSim方法過于重視信息本身內(nèi)容的相似度,而沒有考慮元素之間的數(shù)據(jù)類型和基數(shù)約束相似度,匹配質(zhì)量最低。
4 結(jié)論
本研究針對(duì)基于XML的農(nóng)產(chǎn)品溯源信息平臺(tái)中異構(gòu)源XML數(shù)據(jù)集成問題,提出了一種基于元素語義性和結(jié)構(gòu)性的模式匹配方法。語義性方面,綜合考慮數(shù)據(jù)名稱、數(shù)據(jù)類型以及基數(shù)約束3個(gè)方面,通過研究分析推斷出具體計(jì)算公式,無需人為判定;結(jié)構(gòu)性方面,同時(shí)考慮元素的祖先相似度與語義相似度,提高相似度計(jì)算精度。通過試驗(yàn)比較目前的相似度計(jì)算方法,本研究提出的方法計(jì)算精確度更高,具有較好的可行性。本方法實(shí)現(xiàn)了完全自動(dòng)化轉(zhuǎn)換,大大減少了人工勞動(dòng),提高了效率,具有一定的研究意義。下一步,結(jié)合本研究的模式匹配算法,將對(duì)農(nóng)產(chǎn)品溯源信息平臺(tái)的異構(gòu)XML數(shù)據(jù)集成模塊進(jìn)行研究設(shè)計(jì)。
參考文獻(xiàn):
[1]白紅武,孫愛東,陳 軍,等. 基于物聯(lián)網(wǎng)的農(nóng)產(chǎn)品質(zhì)量安全溯源系統(tǒng)[J]. 江蘇農(nóng)業(yè)學(xué)報(bào),2013,29(2):415-420.
[2]毛 林,程 濤,成維莉,等. 農(nóng)產(chǎn)品質(zhì)量安全追溯智能終端系統(tǒng)構(gòu)建與應(yīng)用[J]. 江蘇農(nóng)業(yè)學(xué)報(bào),2014,30(1):205-211.
[3]楊信廷,錢建平,趙春江,等. 基于XML的蔬菜溯源信息描述語言構(gòu)建及在數(shù)據(jù)交換中的應(yīng)用[J]. 農(nóng)業(yè)工程學(xué)報(bào),2007,23(11):201-205.
[4]Amano S,David C,Libkin L,et al. XML schema mappings:data exchange and metadata management[J]. Journal of the ACM,2014,61(2):488-507.
[5]Kim J,Peng Y,Ivezic N,et al. An optimization approach for semantic-based XML schema matching[J]. Int J Trade Econ,F(xiàn)inance,2011,2(1):78-86.
[6]Wojnar A,Mlnková I,Dokulil J. Structural and semantic aspects of similarity of Document Type Definitions and XML schemas[J]. Information Sciences,2010,180(10):1817-1836.
[7]Lee M L,Yang L H,Hsu W,et al. XClust:clustering XML schemas for effective integration[M]. ACM Press,2002:292-299.
[8]Ye Y,Li X,Wu B,et al. A comparative study of feature weighting methods for document co-clustering[C]. IJITCC,2011:206-220
[9]Kolb L,Thor A,Rahm E. Dedoop:efficient deduplication with Hadoop[J]. Proceedings of the VLDB Endowment,2012,5(12):1878-1881.
[10]Tagarelli A. Exploring dictionary-based semantic relatedness in labeled tree data[J]. Information Sciences,2013,220:244-268.
[11]Shvaiko P,Giunchiglia F,Yatskevich M. Semantic matching with S-Match[M]. Semantic Web Information Management:A Model-Based Perspective,2010:183-202.
[12]Pyshkin E,Kuznetsov A. Approaches for web search user interfaces:how to improve the search quality for various types of information[J]J Conver,2010,1(1):1-8.
[13]Klyuev V,Yokoyama A. Web query expansion:a strategy utilizing Japanese WordNet[J]. J Conver,2010,1(1):23-28.
[14]Agreste S,de Meo P,F(xiàn)errara E,et al. XML matchers:approaches and challenges[J]. Knowledge-Based Systems,2014,66:190-209.
[15]Gong J,Cheng R,Cheung D W. Efficient management of uncertainty in XML schema matching[J]. The VLDB Journal,2012,21(3):385-409.
[16]Algergawy A,Nayak R,Saake G. Element similarity measures in XML schema matching[J]. Information Sciences,2010,180(24):4975-4998.
[17]Dan V. XML schema-data types quick reference[EB/OL]. [2015-04-01]. http://www.xml.dvint.com.
[18]Thu P T T,Lee Y K,Lee S. Semantic and structural similarities between XML Schemas for integration of ubiquitous healthcare data[J]. Personal and Ubiquitous Computing,2013,17(7):1331-1339.
[19]Resnik P. Semantic similarity in a taxonomy:An information-based measure and its application to problems of ambiguity in natural language[J]. Journal of Artificial Intelligence Research,1999,11:95-130.
[20]Do H H. Schema matching and mapping-based data integration[D]. University of Leipzig,2005.