高俊濤 侯 寧
(東北石油大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院 大慶 163318)
現(xiàn)階段,各個(gè)油田企業(yè)布署和運(yùn)行了大量信息系統(tǒng),各個(gè)系統(tǒng)之間獨(dú)立開(kāi)發(fā)與發(fā)布,形成眾多的信息孤島。由于缺少對(duì)數(shù)據(jù)資源的統(tǒng)一標(biāo)準(zhǔn)描述和信息服務(wù),導(dǎo)致各系統(tǒng)間協(xié)同難、數(shù)據(jù)開(kāi)發(fā)應(yīng)用效率低,無(wú)法形成高效的公共數(shù)據(jù)服務(wù)產(chǎn)品[1]。
為屏蔽這些信息孤島,各個(gè)油田開(kāi)始進(jìn)行數(shù)據(jù)集成,將各個(gè)獨(dú)立開(kāi)發(fā)的信息系統(tǒng)相互關(guān)聯(lián)起來(lái),使得用戶(hù)可以透明的訪(fǎng)問(wèn)這些數(shù)據(jù)。而數(shù)據(jù)集成中數(shù)據(jù)映射是重要的一個(gè)步驟[2]。目前許多數(shù)據(jù)集成的方法用于解決數(shù)據(jù)結(jié)構(gòu)上的異構(gòu),卻沒(méi)有較好的解決數(shù)據(jù)語(yǔ)義上的異構(gòu),這一直以來(lái)也都是一個(gè)難點(diǎn)[3]。
文獻(xiàn)[4]提出了數(shù)據(jù)元在國(guó)內(nèi)外標(biāo)準(zhǔn)化信息術(shù)語(yǔ)中的作用,說(shuō)明了數(shù)據(jù)元在數(shù)據(jù)集成中的重要性。文獻(xiàn)[5]為了表達(dá)數(shù)據(jù)元的語(yǔ)義,用了語(yǔ)義樹(shù),采取了數(shù)據(jù)元表達(dá)數(shù)據(jù)模型的語(yǔ)義。但是通過(guò)語(yǔ)義樹(shù)的方式過(guò)于復(fù)雜,提高了前期工作的門(mén)檻。文獻(xiàn)[6]以數(shù)據(jù)元為中介實(shí)現(xiàn)數(shù)據(jù)映射,采取數(shù)據(jù)元的方法對(duì)數(shù)據(jù)映射。
因此正文引出數(shù)據(jù)模型的映射,用數(shù)據(jù)元關(guān)鍵字的方式,用數(shù)據(jù)模型里的數(shù)據(jù)項(xiàng)與數(shù)據(jù)元與配對(duì),然后對(duì)數(shù)據(jù)模型中數(shù)據(jù)項(xiàng)用數(shù)據(jù)元表達(dá)。通過(guò)關(guān)鍵字描述數(shù)據(jù)元的語(yǔ)義,避免構(gòu)建語(yǔ)義樹(shù)、本體等帶來(lái)的麻煩,降低了前期工作的門(mén)檻和映射的復(fù)雜性。通過(guò)兩個(gè)模型中的數(shù)據(jù)項(xiàng)所配對(duì)的數(shù)據(jù)元的聯(lián)系,構(gòu)建兩個(gè)數(shù)據(jù)模型中的數(shù)據(jù)項(xiàng)的匹配,從而構(gòu)建兩個(gè)模型的映射,以更好地做數(shù)據(jù)服務(wù)。
基本的、不可分割的數(shù)據(jù)單元是數(shù)據(jù)元,它用屬性表達(dá)其標(biāo)識(shí)、定義、允許值和表示[7]。
數(shù)據(jù)元語(yǔ)義可以看作由以下三個(gè)部分組成[8]。
對(duì)象詞:它具有清晰的概念,可以定義其屬性和行為,是對(duì)現(xiàn)實(shí)世界事物的抽象描述,可以作為面向?qū)ο缶幊讨械膶?duì)象來(lái)理解,在數(shù)據(jù)模型中類(lèi)似于實(shí)體名稱(chēng)。例如:尾管、生產(chǎn)井、水管、設(shè)備、管柱。
特性詞:特性詞表示對(duì)對(duì)象的一種性質(zhì)描述,它在數(shù)據(jù)模型中類(lèi)似于實(shí)體屬性,例如:長(zhǎng)度、深度、外徑、內(nèi)徑、尺寸、壓力、產(chǎn)量。
限定詞:它主要包含對(duì)象詞的限定詞和特性詞的限定詞,它是用來(lái)修飾對(duì)象詞和特性詞的,它可以有零個(gè)。如:懸掛、回接、下入、年。
設(shè)數(shù)據(jù)元關(guān)鍵字表為K:
其中pty 為特性詞,obj 為對(duì)象詞,Qobj 為對(duì)象詞的限定詞集合,Qpty 為特性詞的限定詞集合,C 為約束條件中的常數(shù)值集合。
進(jìn)一步簡(jiǎn)化:把C 中的常數(shù)值作為相應(yīng)的限定詞,劃分到Qobj與Qpty中,得出:
通過(guò)以上三個(gè)部分實(shí)現(xiàn)對(duì)數(shù)據(jù)元語(yǔ)義的表達(dá)。表1展示了數(shù)據(jù)元語(yǔ)義的組成成分。
表1 數(shù)據(jù)元的組成成分
數(shù)據(jù)特征的抽象表示是數(shù)據(jù)模型,包含數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)約束和數(shù)據(jù)操作[9],因?yàn)閿?shù)據(jù)操作是在數(shù)據(jù)庫(kù)上操作,所以這里不探討它。結(jié)合它的特征,用數(shù)據(jù)模型里的表和數(shù)據(jù)項(xiàng)表達(dá)數(shù)據(jù)模型。模型里表的表達(dá)基于數(shù)據(jù)項(xiàng)的表達(dá)。根據(jù)上述的表述,數(shù)據(jù)元作為數(shù)據(jù)的規(guī)范,可以用來(lái)描述數(shù)據(jù)項(xiàng)。
這里先構(gòu)建數(shù)據(jù)項(xiàng)與數(shù)據(jù)元的配對(duì)表達(dá)數(shù)據(jù)項(xiàng)的語(yǔ)義。
目前有許多相似度算法,廣義上大體分成基于序列的相似度度量、基于集合的相似度度量[10]。編輯距離算法是基于序列的相似度度量,它具有可行性高效果好的優(yōu)點(diǎn)[11],這里采用編輯距離算法度量數(shù)據(jù)項(xiàng)和數(shù)據(jù)元,它是基于字面進(jìn)行相似度度量。
設(shè)編輯距離算法用dsim(x,y)表達(dá),用來(lái)計(jì)算x轉(zhuǎn)變到y(tǒng) 的最低成本。字符串轉(zhuǎn)換通過(guò)以下方式實(shí)現(xiàn),刪去、插入和替換字符串。例如,將x=“累積油產(chǎn)量”變?yōu)樽址畒=“累積地層油產(chǎn)量”的代價(jià)是dsim(x,y)=2,需要執(zhí)行的操作依次是在“累積”后面插入一個(gè)字符“地”,在“累積地”后面插入一個(gè)字符“層”。
編輯距離直觀(guān)上反映的是人們犯得一些編輯錯(cuò)誤,比如插入了一個(gè)額外的字符(如“累積油產(chǎn)量”少寫(xiě)了一個(gè)“產(chǎn)”字,變成了“累積油量”),或者兩個(gè)字符順序反了(如“累積油產(chǎn)量”錯(cuò)寫(xiě)成了“積累油產(chǎn)量”)等。編輯距離dsim(x,y)可用以下公式轉(zhuǎn)為相像度度量函數(shù)sim(x,y):
例如,“累積油產(chǎn)量”轉(zhuǎn)換為“累積地層油產(chǎn)量”的相似度度量結(jié)果為
下面以一個(gè)數(shù)據(jù)項(xiàng)“尾管懸掛下深”為例,與數(shù)據(jù)元字典里的數(shù)據(jù)元進(jìn)行相似度度量,表2 中得到相像度較高的數(shù)據(jù)元配對(duì)結(jié)果。
表2 數(shù)據(jù)項(xiàng)與數(shù)據(jù)元相像度結(jié)果[12]
從以上結(jié)果得知,匹配的數(shù)據(jù)元中“尾管懸掛下入深度”相似度較高,“下入深度”的縮寫(xiě)是“下深”,確實(shí)能表達(dá)數(shù)據(jù)項(xiàng)“尾管懸掛下深”的語(yǔ)義。因此,數(shù)據(jù)項(xiàng)“尾管懸掛下深”與數(shù)據(jù)元“尾管懸掛下入深度”匹配。
通過(guò)以上相似度度量方法,可以得出與數(shù)據(jù)模型中數(shù)據(jù)項(xiàng)匹配的數(shù)據(jù)元。當(dāng)匹配數(shù)據(jù)元不唯一時(shí),按相似度進(jìn)行排序,并進(jìn)行人工確認(rèn)。由于表名、業(yè)務(wù)域、主鍵字段名中隱含數(shù)據(jù)項(xiàng)的上下文語(yǔ)義信息,這些信息可以作為數(shù)據(jù)元關(guān)鍵匹配的依據(jù)。
在上文定義了模型之后,即通過(guò)數(shù)據(jù)元對(duì)源模型和目標(biāo)模型都完成了數(shù)據(jù)項(xiàng)的語(yǔ)義表達(dá)后,就可以進(jìn)行數(shù)據(jù)模型映射。在目標(biāo)數(shù)據(jù)模型中指定一個(gè)目標(biāo)數(shù)據(jù)表,從源數(shù)據(jù)模型找出與此表對(duì)應(yīng)的多個(gè)源表,并建立從源表到目標(biāo)表的各字段的對(duì)應(yīng)關(guān)系。
不同的實(shí)體間的某屬性可以使用同個(gè)數(shù)據(jù)元表達(dá),同實(shí)體中的屬性可以逐個(gè)與數(shù)據(jù)元配對(duì),見(jiàn)圖1。
圖1 數(shù)據(jù)元與數(shù)據(jù)模型關(guān)系圖
針對(duì)目標(biāo)表的每個(gè)數(shù)據(jù)項(xiàng)匹配如下:
DE1(key11,key12,…key1m)DE2(key21,key22,…key2n),keyij 是數(shù)據(jù)元DEi 的關(guān)鍵字。當(dāng)相似度SIM12=1時(shí),兩個(gè)數(shù)據(jù)項(xiàng)對(duì)應(yīng)的數(shù)據(jù)元名稱(chēng)相等。如果數(shù)據(jù)元名稱(chēng)不相等,則按以下方法:
其中,DSIM(DE1,DE1)為雙方數(shù)據(jù)元名稱(chēng)的編輯距離算法相像度。而KSIM是兩個(gè)數(shù)據(jù)元的關(guān)鍵字集合之間的項(xiàng)集相像度:KSIM=交集項(xiàng)個(gè)數(shù)/并集項(xiàng)個(gè)數(shù),得出的結(jié)果是杰卡德系數(shù),它是雙方集合A和B的交集元素在并集A和B中的比[13],用符號(hào)J(A,B)表示,用下面的公式表達(dá):
通過(guò)不同的系數(shù)值選取和大量的實(shí)驗(yàn),確定系數(shù)WD 和WK 的值,其中系數(shù)WD 和WK 的和為1。WD、WK 分別為兩個(gè)相似度的權(quán)重,對(duì)系數(shù)WD 和WK 按照表的取值進(jìn)行計(jì)算,發(fā)現(xiàn)表3 在A(yíng)=0.3,b=0.7的時(shí)候效果最好。
表3 系數(shù)選取
為了構(gòu)建兩個(gè)模型的映射,用數(shù)據(jù)元作為中介,用雙方數(shù)據(jù)元匹配。不能完全配對(duì),但有較高相像度的,作為可能映射[14]。這里以數(shù)據(jù)元“尾管懸掛下入深度”為例,按照關(guān)鍵詞分類(lèi),對(duì)象詞是“尾管”,它的限定詞是“懸掛”,特性詞是“深度”,它的限定詞是“下入”[15],在表4 中得出數(shù)據(jù)元字典中匹配到的前幾個(gè)數(shù)據(jù)元以及相似度結(jié)果。
表4 數(shù)據(jù)元與數(shù)據(jù)元相像度結(jié)果
通過(guò)上表得出“試油”數(shù)據(jù)模型中數(shù)據(jù)元“尾管懸掛下入深度”與“試油試采”數(shù)據(jù)模型中數(shù)據(jù)元“尾管懸掛下入深度”相似度為1,直接匹配。因此,它們所對(duì)應(yīng)的數(shù)據(jù)項(xiàng)“尾管懸掛下深”和“尾管懸掛下入深度”也能直接匹配。這兩個(gè)數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的表“地質(zhì)設(shè)計(jì)鉆井及套管基礎(chǔ)數(shù)據(jù)表”和“套管基礎(chǔ)數(shù)據(jù)表”也匹配。
通過(guò)數(shù)據(jù)元、數(shù)據(jù)項(xiàng)和實(shí)體對(duì)兩個(gè)模型表達(dá)之后,為數(shù)據(jù)映射字典打下了基礎(chǔ),基于XML 的映射字典的設(shè)計(jì),用于表達(dá)兩個(gè)模型的映射聯(lián)系[16]。
1)xml:表示xml文件版本號(hào)和編碼。
2)MapDocument:表示映射字典的根節(jié)點(diǎn),此節(jié)點(diǎn)有一個(gè)子節(jié)點(diǎn)Mapping表示映射關(guān)系[17]。
3)Mapping:表示映射關(guān)系節(jié)點(diǎn),此節(jié)點(diǎn)有三個(gè)屬性,user表示公司,name 表示映射名稱(chēng),type 表示映射類(lèi)型,主要根據(jù)平臺(tái)使用者進(jìn)行劃分。此節(jié)點(diǎn)有三個(gè)子節(jié)點(diǎn),DRDModel,RDLModel,Entities。
4)DRDModel:表示源數(shù)據(jù)模型。
5)RDLModel:表示目標(biāo)數(shù)據(jù)模型。
6)Entities:表示實(shí)體,RDL_Entity 是它的一個(gè)子節(jié)點(diǎn)。
7)RDL_Entity:表示目標(biāo)數(shù)據(jù)模型實(shí)體,name、code 是它的兩個(gè)屬性,分別表示實(shí)體名、實(shí)體代碼。Source,Row是它的兩個(gè)子節(jié)點(diǎn)。
8)Source:表示數(shù)據(jù)來(lái)源(源數(shù)據(jù)模型),此節(jié)點(diǎn)有一個(gè)子節(jié)點(diǎn)DM_Entity。
9)DM_Entity:表示源數(shù)據(jù)模型,有兩個(gè)屬性name表示實(shí)體名,code表示實(shí)體代碼[18]。
10)Row:表示行,Attribute是它的一個(gè)子節(jié)點(diǎn)。
11)Attribute:表示屬性,其中它有6 個(gè)屬性,RDL_name 表示目標(biāo)數(shù)據(jù)模型屬性。RDL_code 表示目標(biāo)數(shù)據(jù)模型屬性代碼,element_name 表示數(shù)據(jù)元名稱(chēng),element_code 表示數(shù)據(jù)元代碼,DM_name表示源數(shù)據(jù)模型屬性,DM_code表示源數(shù)據(jù)模型屬性代碼[19]。
映射字典結(jié)構(gòu)如下所示。
<?xml version=“”encoding=“”?>
本文通過(guò)數(shù)據(jù)元來(lái)表達(dá)數(shù)據(jù)模型中的數(shù)據(jù)項(xiàng),并通過(guò)關(guān)鍵詞來(lái)表達(dá)數(shù)據(jù)元的語(yǔ)義。利用編輯距離算法和杰卡德算法的思想,對(duì)數(shù)據(jù)項(xiàng)與數(shù)據(jù)元進(jìn)行配對(duì),對(duì)數(shù)據(jù)元與數(shù)據(jù)元之間的相像性進(jìn)行配對(duì),間接定位數(shù)據(jù)項(xiàng)的語(yǔ)義映射聯(lián)系,從而得出數(shù)據(jù)表的映射聯(lián)系。最終為表達(dá)異構(gòu)模型的映射引出一個(gè)映射文件。將中國(guó)石油企業(yè)的數(shù)據(jù)元為試驗(yàn)數(shù)據(jù),對(duì)中石油數(shù)據(jù)模型中的數(shù)據(jù)項(xiàng)進(jìn)行了標(biāo)準(zhǔn)化,以保證研究的實(shí)用性。