摘要:XML因其結(jié)構(gòu)上的靈活性和易擴(kuò)展性已經(jīng)成為Web上異構(gòu)數(shù)據(jù)轉(zhuǎn)換和傳輸?shù)臉?biāo)準(zhǔn),但是含有不同模式的XML數(shù)據(jù)源之間卻很難進(jìn)行相互操作,這給XML數(shù)據(jù)檢索帶來了更大的不便#65377;先提出一種從XML模式到OWL本體的映射算法,然后借助共享全局本體和同義詞典實(shí)現(xiàn)多個(gè)映射后的本體在語義上的集成從而解決XML結(jié)構(gòu)異構(gòu)的問題,最后提出一種利用語義集成進(jìn)行XML語義查詢的框架并初步實(shí)現(xiàn)#65377;
關(guān)鍵詞:XML;本體;語義集成;語義查詢
中圖分類號(hào):TP391
文獻(xiàn)標(biāo)識(shí)碼:A
1引言
XML已經(jīng)成為Web上信息表達(dá)和數(shù)據(jù)交換的事實(shí)標(biāo)準(zhǔn)#65377;它提供了一種非常靈活的方式來表達(dá)數(shù)據(jù):用戶可以制定自己的標(biāo)簽來表示他們的數(shù)據(jù),XML在描述數(shù)據(jù)內(nèi)容的同時(shí)能突出對(duì)結(jié)構(gòu)的描述,從而體現(xiàn)出數(shù)據(jù)之間的關(guān)系#65377;
但XML的一個(gè)重要不足是: XML規(guī)范只聲明了數(shù)據(jù)在結(jié)構(gòu)上的關(guān)系,不能表達(dá)出被標(biāo)簽標(biāo)記的數(shù)據(jù)在語義上的聯(lián)系#65377;這造成兩個(gè)問題:1)同一種語義能夠用多種不同結(jié)構(gòu)的XML文檔表達(dá),而這些異構(gòu)的XML文檔之間很難實(shí)現(xiàn)相互操作;2)許多XML標(biāo)簽它們所表達(dá)出的含義是相同的,但是XML處理程序無法將其識(shí)別#65377;
本體因其對(duì)概念的明確形式化描述,以及對(duì)概念的屬性和概念間的聯(lián)系的清楚表達(dá),為解決 上面的問題提供一種有效的手段#65377;
2相關(guān)知識(shí)和研究背景
2.1XML模式和語義定義1一個(gè)XML的模式可以被表示成下面的形式[1]:S=(E,A,root,σ,τ)的形式,其中E表示所有元素的集合, A表示所有屬性的集合,root表示根元素#65377;σ和τ是兩個(gè)映射,其中δ∶E→2E表示元素與其子元素之間的映射,如果一個(gè)元素包含了多個(gè)相同的子元素,則認(rèn)為這些元素表達(dá)的語義是相同的;τ∶E→2 A表示元素與其包含的屬性之間的映射#65377;映射δ和τ體現(xiàn)了XML的結(jié)構(gòu)關(guān)系#65377;
XML的語義體現(xiàn)在XML的模式上#65377;XML沒有提供任何對(duì)語義表達(dá)的約束,因此XML模式只能表達(dá)語法而不能表達(dá)形式化語義,但是XML的元素與其屬性之間以及元素間的嵌套結(jié)構(gòu)中蘊(yùn)含著語義信息[2]#65377;
2.2語義Web和本體
語義Web以XML作為語法基礎(chǔ),建立數(shù)據(jù)在更深層次―語義上的互操作#65377;語義Web的主要特點(diǎn)是引入了本體的概念#65377;本體是共享概念模型的形式化規(guī)范說明,主要用來對(duì)描述屬性或類的術(shù)語的含義及術(shù)語間的關(guān)系進(jìn)行規(guī)約,為人和應(yīng)用程序系統(tǒng)之間在某個(gè)主題的交流上提供的共同理解#65377;
定義2一個(gè)完整的本體被定義為七元組的形式:O=(C, A,C, R, A,R, H,C, H,R, X)其中C表示概念的集合#65377;A C表示多個(gè)屬性集合組成的集合,其中每個(gè)屬性集合對(duì)應(yīng)于一個(gè)概念#65377;R是一個(gè)關(guān)系集合#65377;A R是由多個(gè)屬性集合組成的集合,其中每個(gè)屬性集合對(duì)應(yīng)于R中的一個(gè)關(guān)系#65377;H C表示概念之間的層次結(jié)構(gòu)關(guān)系,H R表示關(guān)系間的層次關(guān)系,X表示公理集合#65377;‘
3XML模式的語義映射和集成
3.1映射規(guī)則和算法
映射的目的是在S和O中包含的術(shù)語之間建立一種關(guān)聯(lián),以實(shí)現(xiàn)XML在語義層上的互操作#65377;雖然S和O覆蓋不同的層次,我們認(rèn)為它們有符合人們主觀認(rèn)識(shí)的對(duì)應(yīng)關(guān)系:1)S中定義的元素可以看作是O中定義的概念;2)元素包含的屬性(attribute)可以看作是概念所具有的屬性(property);3)元素之間的嵌套結(jié)構(gòu)可以看作是概念之間的關(guān)系#65377;
定義3對(duì)模式S中的任意元素e來說,當(dāng)δ(e)為空并且τ(e)也為空時(shí),稱e是simpletype元素;當(dāng)δ(e)非空時(shí),稱e是complextype元素;其余情況則稱e是commontype元素#65377;
由于映射只涉及到概念#65380;概念的屬性和概念間的關(guān)系,我們?cè)诒倔w完整定義的基礎(chǔ)上,給出簡單本體的定義:Os=(C, A c, R),用作與XML模式進(jìn)行相互映射#65377;這里選擇OWL DL作為描述本體Os的語言,在OWL中概念用建模原語owl:Class表示;概念的屬性用數(shù)據(jù)類型屬性owl:DatatypeProperty表示,概念間的關(guān)系用對(duì)象屬性owl:ObjectProperty表示#65377;下面是映射規(guī)則以及在OWL 中的表示形式:表1映射規(guī)則及本體表示:
我們用下面的方式定義每個(gè)本體的基本命名空間:如果某個(gè)OWL本體o是由XML模式文件s映射而得到的,那么它的基本命名空間為:http://www.xmltontology.com/schemafile.owl,其中schemafile是s的文件名#65377;下面具體的算法表示:
算法:CreateOnto-by-Mapping
輸入:已解析的XML模式Si
輸出:根據(jù)映射規(guī)則生成OWL本體Oi
步驟:1)使用Si構(gòu)建Oi的默認(rèn)命名空間前綴:prefixi;
2)對(duì)Si中每個(gè)complextype類型的元素ex,執(zhí)行:
(1) 在Oi中新建概念prefixi :cx;
(2) 對(duì)δ(ex)中的所有元素en,執(zhí)行:如果en是simple type類型元素,則新建數(shù)據(jù)類型屬性prefixi:ɑcxn,否則新建概念prefixi: en和對(duì)象屬性prefixi:contain(cx,cn);
(3) 對(duì)τ(ex)中的所有屬性ax,新建新的數(shù)據(jù)類型屬性prefixi:ɑcxx;
3) 對(duì)Si中的每個(gè)commontype類型的元素ec,執(zhí)行:
(1) 新建概念prefixi:cc;
(2) 對(duì)τ(ec)中的所有屬性aj,新建數(shù)據(jù)類型屬性prefixi:ɑccj;
3.2本體集成和語義補(bǔ)充
經(jīng)過映射,每一個(gè)XML模式文件都對(duì)應(yīng)到一個(gè)用來注釋該文件語義的本體上,這些本體雖然描述的是同一個(gè)領(lǐng)域的知識(shí),但彼此之間卻并沒有聯(lián)系#65377;另外本體中概念之間的真正關(guān)系通過上面的規(guī)則并沒有體現(xiàn)出來#65377;為解決這兩個(gè)問題,我們需要預(yù)先構(gòu)建一領(lǐng)域本體,里面定義該領(lǐng)域內(nèi)所涉及到的概念之間的復(fù)雜邏輯和語義關(guān)系#65377;該領(lǐng)域本體稱作全局本體,與定義2中的本體定義相同,用OG表示;而XML模式映射得到的本體稱為局部本體,用OL表示#65377;多個(gè)局部本體構(gòu)成一個(gè)集合,成為局部本體集,用OLSet表示#65377;本文采用混合本體的方法[5]對(duì)OLSet中的局部本體OL進(jìn)行集成,這種方法利用OG提供的建立在原語基礎(chǔ)上的共享詞匯集,使不同OL中的術(shù)語可以進(jìn)行相互比較#65377;與傳統(tǒng)的方法不同,我們參考了WordNet和SUMO本體之間映射的思想[6],引入同義詞典這個(gè)概念,采取一種本體加同義詞典的方法實(shí)現(xiàn)這種集成,并手工建立OG和同義詞典之間的映射#65377;同義詞典的表示如下:
定義4 同義詞典T=(CSynseti, ASynseti) i=1,2,3…其中CSynset表示概念的同義詞集,包含了局部本體中可能出現(xiàn)的具有相同語義的概念#65377;ASynset集合表示概念的屬性的同義詞集,包含了局部本體中可能出現(xiàn)的具有相同語義的屬性#65377;同義詞集在這里是指里面的詞匯在上下文中可以相互替換的集合#65377;映射將一個(gè) CSynset對(duì)應(yīng)到全局本體中的某個(gè)概念,ASynset對(duì)應(yīng)到某個(gè)屬性#65377;這里我們只考慮同義關(guān)系映射,即同義詞集里面詞語的含義與它映射到的概念或?qū)傩缘暮x是相同的#65377;
由于CSynset和ASynset分別包含了所有OL中可能出現(xiàn)的概念和屬性,只要找出OL中的概念和屬性在T中對(duì)應(yīng)的同義詞集,再根據(jù)T與OG之間的映射關(guān)系,就可以得到所有OL中概念/屬性與OG中語義相同概念/屬性的對(duì)應(yīng)關(guān)系,最后只需保存OLSet與同義詞典T的集成關(guān)系即可#65377;
對(duì)OL中關(guān)系的集成我們采用不同的方法,通過每個(gè)關(guān)系在OWL語法中的domain值和range值來確定這些關(guān)系的語義,然后對(duì)語義相同的關(guān)系集成#65377;具體做法是:
(1)定義集合R,稱為關(guān)系集,OLSet中所有局部本體中的關(guān)系都保存在R中,每個(gè)關(guān)系都有代表命名空間的前綴來保證不會(huì)出現(xiàn)命名沖突#65377;根據(jù)前綴還可以找到該關(guān)系所屬的局部本體#65377;
(2) 定義作用在概念上的操作:mapc和hc,mapc(cl)返回OL中概念cl在OG中所對(duì)應(yīng)的概念表示;hc(cg)返回OG中概念cg自身及其所有的父概念#65377;
(3) 對(duì)R中的每個(gè)關(guān)系r:contain(Cdom, Cran),在OG中找到同時(shí)滿足r.domain∈hc[mapc(Cdom)]和 r.range∈hc[mapc(Cran)]的關(guān)系#65377;然后在兩關(guān)系之間建立映射#65377;如果R中有多個(gè)關(guān)系映射到全局本體的同一個(gè)關(guān)系上,則將每個(gè)關(guān)系中的Cdom和Cran分別放入同一集合中,從而實(shí)現(xiàn)不同OL中關(guān)系的集成#65377;
本體集成及語義補(bǔ)充的過程中,OG#65380;OL和OLSet的關(guān)系如圖1所示:
4基于映射集成的語義查詢實(shí)驗(yàn)
4.1查詢實(shí)驗(yàn)方法
在上述映射與集成方法的基礎(chǔ)上,本文設(shè)計(jì)出一語義查詢系統(tǒng),實(shí)現(xiàn)對(duì)不同模式的XML數(shù)據(jù)進(jìn)行語義上的查詢,語義查詢利用全局本體對(duì)查詢語句中概念間的語義約束進(jìn)行DL推理,然后利用集成得到的豐富的語義信息對(duì)查詢進(jìn)行重構(gòu),最終轉(zhuǎn)換為針對(duì)不同XML模式的多個(gè)結(jié)構(gòu)查詢#65377;語義查詢隱藏了底層數(shù)據(jù)格式的細(xì)節(jié),是一種面向多個(gè)異構(gòu)數(shù)據(jù)源的查詢,并且能夠利用本體找到隱藏的等價(jià)語義信息,實(shí)現(xiàn)對(duì)數(shù)據(jù)的內(nèi)容而不是關(guān)鍵字匹配的查詢#65377;實(shí)驗(yàn)的整體框架如圖2所示:
其中XML數(shù)據(jù)庫我們選擇eXist原生數(shù)據(jù)庫,數(shù)據(jù)庫中存放了全局本體#65380;通過映射規(guī)則得到的局部本體集和語義集成的結(jié)果,同義詞典以表的形式存儲(chǔ)在MySQL關(guān)系數(shù)據(jù)庫中,關(guān)系數(shù)據(jù)庫里面還包含了與全局本體之間的映射信息;為實(shí)現(xiàn)在全局本體中的推理,我們使用Jena2開發(fā)包中自帶的OWLMini推理機(jī)#65377;整個(gè)框架建立在Java 1.5的運(yùn)行平臺(tái)上#65377;圖2實(shí)驗(yàn)結(jié)構(gòu)框圖
4.2實(shí)驗(yàn)結(jié)果測(cè)試
查詢是完全依賴與語義集成的,在語義查詢XML數(shù)據(jù)之前,必須先完成對(duì)模式文件的集成#65377;因篇幅原因,我們僅給出測(cè)試結(jié)果,其中“author\"和“writer\"在相同CSynset中,“book\"和“script\"在另一CSynset中,“title\",“caption\"和“header\"在相同ASynset中,“write\"和“writtenby\"在全局本體中是一對(duì)逆關(guān)系#65377;
測(cè)試1:測(cè)試XML模式與本體之間映射是否符合常識(shí)#65377;
查詢語句:select ?book.title
where book.publisher= “ABC”
查詢結(jié)果:“UML for Java\".
測(cè)試2:測(cè)試本體集成和概念間關(guān)系的語義獲取是否正確#65377;
查詢語句:select ?autor.namewhere
writtenby(book,author);
book.header= “XML and Java\"
查詢結(jié)果:“Harold \", “John \".]
測(cè)試3:測(cè)試對(duì)條件子句中隱含知識(shí)的推理#65377;
查詢語句:select ?book.titlewhere
write(author,book)
author.name=“Robert\"
查詢結(jié)果:“UML for Java \".
測(cè)試4:測(cè)試語義查詢是否是基于數(shù)據(jù)之間的語義而數(shù)據(jù)本身的查詢#65377;
查詢語句:select ?book.titlewhere write(author,book)
author.name=“John\"
查詢結(jié)果:“XML and Java\", “Semantic Web\".
通過測(cè)試可以看出查詢結(jié)果與預(yù)期的一致,這說明了這種基于本體的XML模式語義集成是一種可行的方法,同時(shí)也可以看出語義查詢與一般的結(jié)構(gòu)查詢相比,具有很大的優(yōu)勢(shì)#65377;
5結(jié)論
本文利用語義Web 中RDF和OWL等規(guī)范標(biāo)準(zhǔn),并借用WordNet和SUMO本體的映射思想,提出一種基于本體的XML語義集成和語義查詢的方法,并初步進(jìn)行了實(shí)驗(yàn)仿真#65377;
本文主要的貢獻(xiàn)在于提出了一種XML語義集成的方法和在集成基礎(chǔ)上進(jìn)行語義查詢的框架#65377;對(duì)于方案中的有些步驟還有很大的改進(jìn)空間,例如只考慮局部本體與全局本體中關(guān)系的一對(duì)一映射#65377;對(duì)最后的結(jié)果如何保存才能保證在查詢階段能快速方面的訪問,以及如何將rules引入到語義查詢處理中,使得查詢還能夠根據(jù)用戶自定義的規(guī)則進(jìn)行規(guī)則推理,這些是我們今后進(jìn)一步研究的地方#65377;
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。`