劉 萍
(江陰職業(yè)技術(shù)學(xué)院,江蘇 江陰 214405)
目前我國(guó)高校各部門各自先后開發(fā)了管理信息系統(tǒng),形成了一個(gè)個(gè)信息孤島,無法統(tǒng)一訪問各個(gè)系統(tǒng)中的異構(gòu)信息資源,因此,需要對(duì)異構(gòu)信息資源集成.傳統(tǒng)的信息資源集成方式,如:基于XML的信息集成[1],能較好地解決信息源結(jié)構(gòu)和語法上的異構(gòu),卻無法解決語義異構(gòu).因本體對(duì)資源在語義層次上的形式化描述和對(duì)邏輯推理的支持[2],可解決語義異構(gòu)問題.本文提出了基于本體的信息資源集成模型體系結(jié)構(gòu),并對(duì)該模型的關(guān)鍵技術(shù)進(jìn)行了研究,最終設(shè)計(jì)原型系統(tǒng)驗(yàn)證了該模型的可行性.
混合本體方法[3]是基于本體的信息資源集成方法中的一種,該方法建立局部本體與各信息資源之間的關(guān)系,并在局部本體之上使用共享的詞匯集合,即全局本體,它包含了領(lǐng)域中的基本術(shù)語,它是構(gòu)建局部本體的基礎(chǔ).經(jīng)典的“Wrapper/ Mediator(包裝器/調(diào)節(jié)器)”體系結(jié)構(gòu),它通過提供所有異構(gòu)信息源的虛擬視圖進(jìn)行集成[4].本文借鑒混合本體和“Wrapper/ Mediator”體系結(jié)構(gòu),并結(jié)合Web Services技術(shù)提出基于本體的信息資源集成模型體系結(jié)構(gòu),如圖1所示.該模型不僅適合高校信息資源集成,而且還可以通過改變本體定義和信息資源改變模型的應(yīng)用范圍,該模型若應(yīng)用到企業(yè),可以集成企業(yè)各供應(yīng)鏈上的信息資源,給企業(yè)決策提供支持,因此,該模型具有通用性.
圖1 基于本體的信息資源集成模型體系結(jié)構(gòu)
模型分為以下三個(gè)層次.
(1)信息資源抽取層,該層主要負(fù)責(zé)獲取分布在各個(gè)異構(gòu)信息資源中的信息.該層設(shè)計(jì)了Wrapper,其功能是將對(duì)底層信息資源的查詢封裝成查詢服務(wù),并把根據(jù)局部本體和本體映射構(gòu)建服務(wù)描述信息注冊(cè)到服務(wù)注冊(cè)中心.該層信息源可以有結(jié)構(gòu)化、非結(jié)構(gòu)化和半結(jié)構(gòu)化等.本文主要研究關(guān)系數(shù)據(jù)庫(kù)的異構(gòu)信息集成.
(2)信息集成中介層,該層查詢分析器對(duì)用戶請(qǐng)求按本體庫(kù)進(jìn)行推理,找到語義上相似的概念擴(kuò)展原請(qǐng)求,并按本體庫(kù)轉(zhuǎn)換成全局Ontology_SQL查詢,該查詢類似SQL,但查詢中所用術(shù)語是本體庫(kù)中的概念和屬性;接著把該查詢提交給查詢分解器,按分解算法分解為Ontology_SQL子查詢集,子查詢集由查詢翻譯器根據(jù)本體庫(kù)翻譯為SQL子查詢,SQL子查詢提交給查詢處理器,通過發(fā)現(xiàn)服務(wù)注冊(cè)中心的查詢服務(wù)獲取查詢結(jié)果,并將結(jié)果進(jìn)行合并、去冗余、排序、轉(zhuǎn)換等處理,將查詢結(jié)果返回給用戶.
(3)用戶接口層,該層為用戶提供統(tǒng)一訪問界面,用戶輸入查詢請(qǐng)求,然后在界面上會(huì)得到返回結(jié)果.
本體在信息集成中起著語義描述、為查詢提供全局視圖和本體推理等作用.因此,本體是解決語義異構(gòu)問題的核心.下文對(duì)本體進(jìn)行構(gòu)建.
(1)全局本體構(gòu)建需要在領(lǐng)域?qū)<业膸椭陆5].包含如下4個(gè)步驟:①分析信息源;②查找和確定術(shù)語;③定義全局本體:全局本體中的概念一部分來源于領(lǐng)域?qū)<业某槿?,另一部分來源于局部信息源集合,如某信息源中具有代表性的信息?jīng)專家判定后可歸納到本體中;④本體編碼:形式化描述出來,因OWL提供豐富的語義表達(dá)機(jī)制,因此,本文采用OWL來描述本體.
(2)高校信息資源中主要信息源為關(guān)系數(shù)據(jù)庫(kù),本文主要討論該種類型信息源的局部本體構(gòu)建,并同時(shí)產(chǎn)生局部本體與信息資源的映射.基于關(guān)系數(shù)據(jù)庫(kù)的局部本體創(chuàng)建策略[6]:每個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)一個(gè)局部本體,表對(duì)應(yīng)局部本體里的類,表名即為類名,用owl:class表示,表中的字段對(duì)應(yīng)局部本體中該類的屬性,屬性名即為字段名,用owl:datatypeProperty表示,除外鍵外所有字段都定義為該形式.外鍵字段定義為類的owl:objectProperty,設(shè)置rdfs:range為所參照的表轉(zhuǎn)換的類,rdfs:domain表示該字段所屬的表轉(zhuǎn)換的類.
(3)本體映射是解決語義異構(gòu)問題的核心.建立本體映射為查詢分解提供支持.本文中通過如下規(guī)則建立全局本體與局部本體映射.
①兩個(gè)概念有相同的父概念,或者有相同的子概念,或者有相同的兄弟,或者存在相同的實(shí)例,或者存在相同的屬性,則表示這兩個(gè)概念可能相同;
②若兩個(gè)屬性存在相同的定義域或值域,或者存在相同的父屬性,或者存在相同的子屬性,則表示這兩個(gè)屬性可能相同.
全局Ontology_SQL查詢,定義:設(shè)C為全局本體中的概念,A為屬性,全局Ontology_SQL查詢定義為元組
全局查詢分解算法就是使用局部本體中等價(jià)的術(shù)語替換全局Ontology_SQL查詢語句中的術(shù)語.本文提出了一個(gè)簡(jiǎn)單易用的全局查詢分解算法[7]:
輸入:全局Ontology_SQL查詢,以及全局本體與局部本體之間的映射文件mapping.owl.
輸出:針對(duì)每個(gè)局部本體的子查詢(也即針對(duì)各信息源的子查詢).
算法:
(1)對(duì)全局Ontology_SQL查詢進(jìn)行子句分離,分離其Select、From、Where子句.對(duì)于Select子句中的每一個(gè)形如Ci.Aij的子項(xiàng),在mapping.owl中查找類Ci,使用Jena API對(duì)該映射文件進(jìn)行解析,取出與Ci對(duì)應(yīng)的等價(jià)類.同理查找屬性Aij,取與之對(duì)應(yīng)的等價(jià)屬性,將類與屬性的等價(jià)結(jié)果組裝成對(duì)應(yīng)各個(gè)局部本體的子表達(dá)式,將結(jié)果寫入Select列表.
(2)對(duì)于From子句,在mapping.owl中查找類,取與之對(duì)應(yīng)的等價(jià)類進(jìn)行替換,將結(jié)果整合寫入From列表.
(3)對(duì)于Where子句中每一個(gè)形如C.m
(4)最后合并對(duì)應(yīng)的三個(gè)子句,組裝出對(duì)應(yīng)各個(gè)局部本體的子查詢.
為驗(yàn)證模型,本文采用JavaEE平臺(tái)下的SSH框架進(jìn)行原型系統(tǒng)開發(fā).開發(fā)環(huán)境采用MyEclipse2014,應(yīng)用服務(wù)器采用Tomcat7.0.系統(tǒng)采用當(dāng)前開發(fā)Web的主流技術(shù):Struts、Spring、Hibernate、Web Services和Jena等,采用MySQL數(shù)據(jù)庫(kù)存儲(chǔ)信息.用戶通過瀏覽器訪問該原型系統(tǒng),例如:輸入關(guān)鍵字“學(xué)生”進(jìn)行查詢,如圖2所示,查詢出來的結(jié)果集里不僅包括“學(xué)生”的結(jié)果,還包含“新生”、“畢業(yè)生”、“成教生”等結(jié)果.實(shí)驗(yàn)結(jié)果驗(yàn)證了本文提出的模型能夠解決語義異構(gòu)問題.
圖2 原型系統(tǒng)的用戶界面
本文提出基于本體的信息資源集成模型采用全局本體為信息資源集成提供全局視圖,局部本體描述各信息源的語義,本體的兩級(jí)映射降低了集成系統(tǒng)的耦合性.由于高校信息資源中不僅有各類關(guān)系數(shù)據(jù)庫(kù),還有很多資源是網(wǎng)頁和電子文檔,本文僅研究了對(duì)關(guān)系數(shù)據(jù)庫(kù)這類資源的局部本體構(gòu)建,未來將研究如何自動(dòng)創(chuàng)建網(wǎng)頁和電子文檔等信息資源的局部本體,還將在本體映射、查詢優(yōu)化等問題上繼續(xù)研究.