摘要:提出了一種新的全自動的關系數(shù)據(jù)庫到本體的轉(zhuǎn)換方法,通過分析關系模式的主鍵、屬性、引用關系、完整性約束和部分數(shù)據(jù)來創(chuàng)建本體,盡量保持了關系數(shù)據(jù)庫的信息,并在構(gòu)建的過程中對信息進行初步的集成和分類。系統(tǒng)實踐證明,該方法可自動進行關系模式和數(shù)據(jù)到本體的等價轉(zhuǎn)換,而且完成了對關系數(shù)據(jù)庫中部分語義信息的輔助挖掘。
關鍵詞:數(shù)據(jù)集成;關系模式;本體;框架邏輯;資源描述框架
中圖分類號:TP311文獻標志碼:A
文章編號:1001-3695(2008)03-0767-04
0引言
計算機網(wǎng)絡的迅速發(fā)展推動了信息化和全球化的進程。企業(yè)與企業(yè)之間、企業(yè)各部門之間的信息交換越來越頻繁。由于地理位置的分布性和所采用技術(shù)的多樣性,直接導致了數(shù)據(jù)源的異構(gòu)性,數(shù)據(jù)模式和數(shù)據(jù)表示的差異給數(shù)據(jù)集成造成了很大困難。傳統(tǒng)的數(shù)據(jù)集成基于關系模式,只考慮了數(shù)據(jù)的語法信息,這在很大程度上影響了數(shù)據(jù)集成的準確性。
知識表示中的重要支撐工具是本體(ontology)[1]。本體是概念化的、明確的規(guī)范說明[2]。其中,概念化是指抽象出客觀世界中一些相關概念而得到模型,其表示的含義獨立于具體的環(huán)境狀態(tài);明確是指所使用的概念及使用這些概念的約束都有明確的定義;規(guī)范是指使用標準的、獨立于系統(tǒng)的形式化描述。作為一種概念的顯式表達方式,本體能夠以一個概念集的形式表示任何信息及它們之間的關系。
基于本體的數(shù)據(jù)集成主要借助于本體來描述數(shù)據(jù)源信息,通過定義共享詞匯集來揭示數(shù)據(jù)源模式的語義及其他的語義信息。與基于關系模式的數(shù)據(jù)集成相比較,它可以進一步豐富數(shù)據(jù)模式的語義表達能力,有效處理各種語義沖突。如何將關系模式映射到本體并盡量保持數(shù)據(jù)庫的語義信息是基于本體數(shù)據(jù)集成的重要組成部分。
1相關工作
在深度數(shù)據(jù)集成和逆向工程[3]的研究等方面,對于顯式定義和抽取數(shù)據(jù)庫模型的語義信息已經(jīng)作了不少研究,但是只有少部分方法把本體作為目標。其中,Irina Astrova提出的方法[4]與本文提出的方法最為相似。它提出了一套模式映射規(guī)則,對關系進行分類,通過分析主鍵、屬性和數(shù)據(jù)發(fā)掘關系之間的聯(lián)系,將關系模式映射到本體,然后將關系數(shù)據(jù)映射到本體實例。但是如果是海量數(shù)據(jù)時,該方法在分析所有屬性上的數(shù)據(jù)之間的全等、包含、交叉和分離是非常困難的。相對于Irina Astrova提出的方法,Stojanovic等人提出的方法[5]考慮了主/外鍵上數(shù)據(jù)全等和包含兩種情況,但沒有數(shù)據(jù)交叉和分離的情況;此外該方法是半自動化的,在確定概念繼承層次時需要更多的用戶交互。Kashyap給出的方案[6]需要大量的用戶交互,進行語義注釋,降低了系統(tǒng)自動化程度;此外該方案也沒有建立公理系統(tǒng),公理系統(tǒng)可以更深層次地描述本體實例間的關系。Dogan和Islamaj提出了一種全自動的模式和數(shù)據(jù)的轉(zhuǎn)換方法[7],把關系映射成概念、屬性映射成對應概念的謂詞、關系的元組映射成本體實例,但是沒有考慮信息集成和繼承層次,因此創(chuàng)建的本體更像一個關系型的本體。在國內(nèi),任保鋒等人在關系數(shù)據(jù)庫到本體的映射方面也作了一定的研究[8]。
本文提出了一種新的全自動的關系數(shù)據(jù)庫到本體的轉(zhuǎn)換方法。通過分析關系模式的主鍵、屬性、引用關系、完整性約束和引用關聯(lián)的關系中主鍵上數(shù)據(jù)的全等和包含關系來創(chuàng)建本體,給出了一組框架邏輯[9]描述的關系模式到本體概念和層次的映射規(guī)則,基于這種轉(zhuǎn)換,將關系數(shù)據(jù)遷移到本體示例。相對于已有的轉(zhuǎn)換方法,該方法在最大限度地保持關系模式的完整性的同時,轉(zhuǎn)換和遷移過程無須人工參與,基于規(guī)則保證了轉(zhuǎn)換過程的自動化。
2基本數(shù)據(jù)模型
關系數(shù)據(jù)庫的底層模型是關系模式,它是當前數(shù)據(jù)庫領域最重要的數(shù)據(jù)模式,有著廣泛的應用。本文擴展了通常的關系模式的形式定義。一個關系模式包括:
a)關系的有限集合R;
b)屬性的有限集合A;
c)基本數(shù)據(jù)類型集合T;
d)獲取關系屬性的函數(shù)attr:R→2A,給出特定關系的屬性集合;
e)獲取關系主鍵的函數(shù)key:R→2A,說明哪些屬性是關系的主鍵。因此對于r∈R,key(r)attr(r);
f)獲取屬性數(shù)據(jù)類型的函數(shù)type:A→T給出每個屬性的數(shù)據(jù)類型;
g)引入函數(shù)data:2A→V,V為值的集合,函數(shù)給出屬性組的取值集合。
另外關系還具有完整性約束特征,這包括:
a)實體完整性。例如主屬性不能取空值、default、not 1、unique等。
b)參照完整性。約束關系間的引用關系。
c)用戶定義完整性。例如某個屬性的取值在0~5等。
由于本體的靜態(tài)屬性,本文只對上述關系模式進行映射,而SQLDDL的動態(tài)特征(如觸發(fā)器、斷言等)將不予考慮。
下面給出一個關系模式的例子。關系dept有兩個屬性,即deptID和deptName,基本數(shù)據(jù)類型分別是integer和varchar,其中deptID是主鍵;關系student有兩個屬性,即stuID和deptID,基本數(shù)據(jù)類型都是integer,其中stuID是主鍵,deptID是參照關系DEPT的外鍵。
create table dept(deptID interger primary key,deptName varchar)
create table student(stuID interger primary key,deptID interger references dept)
一個本體包括:概念的集合C;謂詞的集合P;概念的繼承層次H:HC×C,H(C1,C2)說明C1是C2的子概念;謂詞到概念的映射domain:P→C,給出謂詞的主語來自的域;謂詞到概念的映射range:P→C,給出謂詞的賓語來自的域;公理系統(tǒng)A。
近年來,研究界提出了一些本體描述語言,如RDF(資源描述框架)+RDF schema、OWL、DAML+OIL等。本文使用框架邏輯語言來描述本體形式語義。一個用框架邏輯描述的本體可以轉(zhuǎn)換成相應的RDF描述[10]。無論是框架邏輯還是RDF schema都沒有基本數(shù)據(jù)類型,一切皆是對象,屬性與關聯(lián)也不作區(qū)分,對象與對象之間通過謂詞聯(lián)系。下面給出了對應上述兩個關系用框架邏輯描述的本體片斷。其中,dept、student是概念object的子概念。Dept有兩個謂詞deptID和deptName,student有兩個謂詞,即stuID和deptID。Student和dept之間通過deptID聯(lián)系;student的實例在謂詞deptID上的range值對應概念dept的一個實例。
dept::object.
student::object.
dept[deptID=〉〉integer,deptName=〉〉string].
student[stuID=〉〉integer,deptID=〉〉dept].
forall X,YY:dept〈-X:student[deptID-〉Y].
假設有一個通過關系模式定義的關系數(shù)據(jù)庫,需要將其轉(zhuǎn)換到本體,轉(zhuǎn)換后的本體與關系模式的區(qū)別在于:a)關系模型包含基本數(shù)據(jù)類型,但是在本體中一切都是概念。這里為每個基本類型創(chuàng)建一個對應的概念;b)關系數(shù)據(jù)庫中的屬性和關聯(lián)在本體中并不作區(qū)分,統(tǒng)一用謂詞表示;c)本體中的概念和謂詞可以組織成層次結(jié)構(gòu),表現(xiàn)更深層的語義;d)本體能提供信息的形式語義,建立公理系統(tǒng),進而進行機器分析和推理。
3轉(zhuǎn)換
3.1轉(zhuǎn)換過程
關系數(shù)據(jù)庫是數(shù)據(jù)遷移的源,本體是數(shù)據(jù)遷移的目標。關系模式不能為關系數(shù)據(jù)庫中的信息提供形式語義,該方法通過提供本體,盡量豐富關系數(shù)據(jù)庫的語義信息。由于在實際應用中,關系模式以3NF最為常見,該方法以滿足3NF的數(shù)據(jù)庫為輸入,數(shù)據(jù)遷移的過程如圖1所示,共有四步:
a)抽取關系數(shù)據(jù)庫的模式信息,如關系名、屬性名、主鍵、外鍵、完整性約束等;
b)分析主鍵、外鍵、屬性等信息,應用下文中給出的映射規(guī)則構(gòu)造本體、創(chuàng)建本體概念,將概念進行組織(分類、分層等),并去掉冗余關系;
c)抽取關系數(shù)據(jù)庫中的記錄;
d)將關系數(shù)據(jù)庫中的記錄映射為本體實例,形成知識庫。
其中:a)、b)是關系模式轉(zhuǎn)換;c)、d)是關系數(shù)據(jù)遷移。
3.2模式轉(zhuǎn)換
模式信息的抽取可通過標準ODBC或JDBC等的API來獲得,模式轉(zhuǎn)換則通過應用一系列轉(zhuǎn)換規(guī)則,對關系、屬性、主外鍵之間的關聯(lián)進行映射來完成。轉(zhuǎn)換規(guī)則的應用有一定的先后順序,進而本體也是逐步創(chuàng)建而成。本文引入以下輔助函數(shù):a)ttoc:T→C,表示將關系模式中的基本數(shù)據(jù)類型轉(zhuǎn)換成對應概念;b)concept:R→C,表示為關系模型中的關系創(chuàng)建對應概念;c)refer:R×R×A→boolean,refer(ri, rj, A)=true說明關系rj引用了關系ri中的屬性A;refer(ri, rj, A)=1說明rj沒有引用ri中的屬性A。下面描述了一個關系模型,表1給出了運用一系列轉(zhuǎn)換規(guī)則之后創(chuàng)建完成的本體。從關系映射、屬性及參照完整性映射和實體完整性映射三個方面來說明模式轉(zhuǎn)換過程:
關系模式R:
department(deptID,fullname,homepage)
student(stuID,name,sex,deptID references department)
phd(stuID references student,year,major)
excellent(stuIDreferences student,level)
course(courseID,subject)
choose(courseID references course, stuID references student)
teacher(teacherID,stuffroom)
teacher_Info(teacherID references teacher,phone,address)
teach(teacherIDreferences course,courseIDreferences course,deptID references department)
規(guī)則R1首先為關系模式中的基本關系——主鍵不引用任何其他關系的主鍵的關系——創(chuàng)建概念。關于學校的關系模式R中,首先為關系department、student、course、teacher創(chuàng)建概念;規(guī)則R2集成分散在多個關系中但表示同一事物的信息,它們共享同一概念。如關系teacher和teacher_Info,不必為teacher_Info創(chuàng)建概念;規(guī)則R3和R4識別關系模式中的層次關系,創(chuàng)建子概念并創(chuàng)建概念層次。如規(guī)則R3識別關系excellent和student之間的層次關系,規(guī)則R4識別關系phd和student之間的層次關系;規(guī)則R5處理只包含兩個外健屬性的關系。這種關系本身只表示另外兩個關系之間多對多的關系,不必為之創(chuàng)建概念,如不為關系choose創(chuàng)建概念;規(guī)則R6是缺省映射規(guī)則,當其他規(guī)則均不適用時,應用此規(guī)則,如對關系teach的處理。
3.2.2屬性及參照完整性映射規(guī)則
屬性映射之前,本體概念已創(chuàng)建完成。屬性的映射包括屬性到本體謂詞的映射及屬性的參照完整性約束映射。先介紹屬性到謂詞的映射及參照完整性映射。
這里引入一個約束ref,其框架邏輯定義如下:
forall C1, C2, Aref(C1, C2, A)〈-forall IAexists IC2IC2:C2 and(forall IAIA:C1 其含義為概念C2謂詞A的range值在概念C1的實例中。 一般地,一個屬性映射為一個概念的一個謂詞,但是由外鍵和主/外鍵體現(xiàn)的參照完整性表示的是模型中關系與關系之間的引用。為表示這種引用關系,可能不需要創(chuàng)建謂詞,也可能需要為多個概念創(chuàng)建相應謂詞。映射規(guī)則的形式描述如表3所示。 規(guī)則A1和規(guī)則A2處理沒有引用關系的屬性。如果它所屬關系創(chuàng)建了對應概念,應用規(guī)則A1,則為該概念創(chuàng)建一個謂詞;如果它所屬的關系對應概念不存在,應用規(guī)則A2,則這個關系一定集成到了其他關系中,為它們的共用概念創(chuàng)建對應的謂詞。如對關系department的三個屬性應用規(guī)則A1映射;對關系teacher_Info的屬性phone和address應用規(guī)則A2映射;規(guī)則A3處理關系之間的n:m關系的屬性映射。為所引用的關系對應的概念創(chuàng)建相應謂詞,同時創(chuàng)建約束。如對關系choose的屬性的映射;規(guī)則A4和A5處理存在引用關系且它所屬關系對應概念存在的屬性。如果存在父概念,應用規(guī)則A4則不創(chuàng)建相應謂詞;如果父概念不存在,應用規(guī)則A5,則為該概念及引用指向的概念創(chuàng)建謂詞,同時創(chuàng)建約束。如對關系phd的屬性stuID應用規(guī)則A4映射,對關系teach的屬性應用規(guī)則A5映射。 3.2.3實體完整性約束映射 為盡量保持關系數(shù)據(jù)庫中的語義信息,對SQL中的實體完整性約束(key、unique、not 1等)的映射是必不可少的。表4給出了一組實體完整性到框架邏輯的映射規(guī)則。 3.3數(shù)據(jù)遷移 數(shù)據(jù)遷移是在本體創(chuàng)建完成后,將關系數(shù)據(jù)庫中的元組映射到本體實例,形成知識庫。數(shù)據(jù)遷移過程的步驟如下: a)根據(jù)元組創(chuàng)建本體實例,為每個實例分派一個惟一的標志,將無參照完整性約束的屬性遷移到本體實例中; b)根據(jù)參照完整性(引用關系標志關系之間的聯(lián)系)創(chuàng)建本體實例之間的關系。 下面給出了數(shù)據(jù)遷移的例子: dept(deptID,deptName){\"3\",\"Computer Science\"} student(stuID,deptID references dept){\"2\",\"3\"} id1:dept[deptID->>3,deptName->>Computer Science]. id2:student[studID->>2,deptID->>id1]. 4系統(tǒng)實現(xiàn)與驗證 基于C/C++和Redland RDF Library[11]實現(xiàn)了基于規(guī)則的關系數(shù)據(jù)庫到本體的轉(zhuǎn)換系統(tǒng)。圖2給出了系統(tǒng)的實現(xiàn)架構(gòu)。其中數(shù)據(jù)源適配器負責從關系數(shù)據(jù)庫中抽取模式信息和數(shù)據(jù);關系分析器負責創(chuàng)建本體概念和概念間層次關系;本體概念創(chuàng)建完成后,屬性及參照完整性分析器負責屬性到本體謂詞的映射;實體完整性分析器負責字段的實體完整性約束到本體屬性限制的映射。這三個模塊完成模式轉(zhuǎn)換,輸出為不帶實例信息的本體結(jié)構(gòu)。數(shù)據(jù)遷移模塊根據(jù)獲取的本體結(jié)構(gòu)將數(shù)據(jù)庫中的記錄遷移到知識庫,最終輸出為RDF文檔。 為驗證轉(zhuǎn)換規(guī)則的完備性和轉(zhuǎn)換結(jié)果的等價性,本文設計了一組等價的RDQL[12]查詢和SQL查詢,分別施加在生成的RDF文檔和原數(shù)據(jù)庫上。該組查詢設計覆蓋了一個學校的關系模式。實驗證明,該方法保持了完整的關系數(shù)據(jù)庫的模式和數(shù)據(jù)信息,并挖掘了部分深層的語義信息(對象的相互關系)。 下面給出一個RDQL查詢與對應的SQL查詢示例。 RDQL查詢: SELECT ?x FROM〈school.rdf〉 WHERE〈?x,〈db:deptID〉,?y〉,〈?y,〈db:deptName〉,?z〉 AND ?z==\"Computer Science\" USING db for 〈http://olcalhost:8080/schooldb#〉,rdf for〈http://www.w3.org/1999/02/22rdfsyntaxns#〉 等價的SQL查詢: SELECT stuID FROM student,dept WHERE student.deptID=dept.deptID AND dept.deptName=\"Computer Science\" 5結(jié)束語 本文提出了一種基于規(guī)則的關系數(shù)據(jù)庫到本體的轉(zhuǎn)換方法,通過分析主鍵、屬性、引用關系、完整性約束和部分數(shù)據(jù),將關系模式映射到相應的本體結(jié)構(gòu),集成信息,創(chuàng)建概念層次,然后將數(shù)據(jù)庫中的數(shù)據(jù)映射到本體實例。該方法最大限度地保持了關系模式的完整性,可自動化地進行轉(zhuǎn)換,完成了基于本體的數(shù)據(jù)集成的第一步工作——創(chuàng)建本地本體。實現(xiàn)的系統(tǒng)可被用于多種語義數(shù)據(jù)集成環(huán)境中。 然而,在關系映射規(guī)則中對數(shù)據(jù)關系的分析仍然比較簡單,如何通過分析關系數(shù)據(jù)的等價、包含、相交等關系確定本體概念間深層次的關系同時保證其正確性和效率,仍是需要進一步研究的問題。對所實現(xiàn)系統(tǒng)的API進行封裝,做成可被廣泛使用的中間件也是進一步的工作。 參考文獻: [1]LENZERINI M.Data integration: a theoretical perspective[C]//Proc of the 21st ACM SIGMODSIGACTSIGART Symposium on Principles of Database Systems.New York:ACM Press,2002:233-246. [2]王淵,盧鼎正,陳玉.一種基于Ontology的數(shù)據(jù)集成方法[J].計算機工程與科學,2005,27(6):67-69. [3]CHIANG R,BARRON T,STOREY V.A framework for the design and evaluation of reverse engineering methods for relational databases[J].Data and Knowledge Engineering,1996,21(1):57-77. [4]ASTROVA I.Reverse engineering of relational databases to ontologies[C]//Proc of the 1st European Semantic Web Symposium.Heidelberg:SpringerVerlag,2004:327-341. [5]STOJANOVIC L,STOJANOVIC N,VOLZ R.Migrating dataintensive Web sites into the semantic Web[C]//Proc of the 17th ACM Symposium on Applied Computing.New York:ACM Press, 2002:11001107. [6]KASHYAP V.Design and creation of ontologies for environmental information retrieval[C]//Proc of the 12th Workshop on Knowledge Acquisition, Modeling and Management.Alberta:[s.n.],1999:118. [7]DOGAN G,ISLAMAJ R.Importing relational databases into the semantic Web[EB/OL]. (2002).[20061105].http://www. mindswap.org/webai/2002/fall/Importing_20Relational_20Databases_20into_20the_20Semantic_20Web.html. [8]任保鋒,肖衛(wèi)東,唐九陽,等.關系模式到OWL的映射研究[J].計算機應用研究,2006, 23(9):33-35. [9]KIFER M,LAUSENL G,WU J.Logical foundations of object oriented and framebased languages[J].Journal ACM,1995,42(4):741-843. [10]DECKER S,BRICKLEY D,SAARELA J,et al.A query and inference service for RDF[EB/OL].(19981203).http://www.w3.org/TandS/QL/QL98. [11]BECKETT D.Redland RDF libraries[EB/OL].[20061015]. http://librdf.org/. [12]SEABORNE A.RDQL:a query language for RDF[EB/ OL]. (20040109).[20061015].http://www.w3c.org/Submission/RDQL. “本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”