摘要:以關系型數據庫、XML文件、HTML文件、一般文檔為信息源,運用不同的方法分別將多信息源映射為概念圖,并按照擬定的概念邏輯結構進行統一存儲,最后運用抽取算法實現本體的自動抽取。
關鍵詞:本體抽取; 語義網; 本體映射
中圖分類號:TP311文獻標志碼:A
文章編號:1001-3695(2007)11-0183-02
作為一種能在知識層提供知識表達和共享的概念體系,本體為語義網的實現奠定了語義基礎。本體也可定義Web服務間交互消息中的概念和意圖,以提高Web服務的表達能力和組合能力[1]。出于對各自問題域和具體工程的考慮,構造本體的過程各不相同,目前還沒有一個標準的本體構造方法。現階段的通常做法是在領域專家對信息進行提取和歸納的基礎上,以手工方式構建本體。然而,本體的手工構建是一項工作量巨大并且異常繁雜的任務。在這種背景下,如何從已有的網頁、數據庫、文檔等信息源中自動抽取領域本體,提高本體的創建效率和質量已成為近年來語義網和語義Web服務研究的熱點。
1多信息源的概念映射
1)關系型數據庫映射
關系型數據庫的數據組織規范、結構明確。關系型數據庫管理系統提供了數據表的關系視圖導航表示法,通過關系視圖導航工具可以直觀地獲取數據關系,同時可以通過生成SQL腳本工具來生成關系腳本文件。利用逆向方法可獲取數據庫的數據邏輯結構,進而抽取出相關系統的本體概念。在數據庫中,每個數據表可映射為概念圖概念節點的實體類;數據表的屬性可映射為概念圖概念節點的屬性類;參照關系可映射為概念圖的連接類;數據表中的屬性值域可映射為概念的類標號,有效性規則可映射為約束。
2)XML文件映射
DTD或XML schema定義了XML文檔的結構和約束,規定了元素清單、屬性、文檔中的實體及其相互關系,為本體的抽取奠定了基礎。DTD包括內部DTD、外部DTD和公用DTD三種形式。
a)內部DTD包含在XML文件的序言中,其XML文件結構為
〈?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"yes\"?〉
〈!DOCTYPE 根元素名[元素描述]〉
文件體…
b)外部DTD是以DTD獨立文件形式存在的,引用其XML文件的結構為
〈?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"no\"?〉
〈!DOCTYPE 根元素名SYSTEM \"外部DTD文件的URL\"〉
c)公用DTD是由權威機構制定的提供給特定行業或公眾使用的DTD。其引用形式為
〈!DOCTYPE 根元素 PUBLIC \"DTD名稱\" \"外部DTD的URL\"〉
進行DTD的概念映射時,內部DTD需要截取序言中的定義部分;外部和公用DTD需要首先獲得指定的文件,然后將包含有成組元素的元素映射為概念圖中概念節點的實體類。成組元素中的子元素如果不可映射為實體類,則映射為概念圖節點的屬性類。如果被包含的子元素可映射為實體類,則兩實體類之間存在的相互關系可映射為概念圖的連接類。元素內容模型中以正則表達式表示的規則映射為對應元素的約束。XML schema定義了簡單類型(simpleType)和復雜類型(complexType)兩種主要的數據類型。在進行本體映射時,簡單類型的元素映射為概念圖中節點的屬性類;復雜類型的元素映射為概念圖中概念節點的實體類。復雜類型的元素嵌套復雜類型的元素時,就建立了兩實體類之間的關系;簡單類型的約束對應著相應元素的約束。
3)HTML文件映射
Web是供應鏈內部發布和獲取信息的主要渠道。WWW已成為快速增長的巨大信息庫。HTML頁面中部分有規律的信息可作為本體抽取的信息源。其中,頁面中數據表部分可從〈Table〉〈/Table〉中抽取本體的實體類;顯示表結構的〈tr〉〈/tr〉中系列的〈td〉〈/td〉映射為屬性類;表中嵌套的表可映射為兩實體類之間的關系。針對頁面縱欄式數據部分,文本類對象的id值可映射為概念圖中節點的屬性類;緊接系列屬性類的對象的id值映射為概念圖中概念節點的實體類;屬性類值的超鏈接映射為類間關系[2~4]。
4)一般文檔映射
日常管理中產生了大量文檔,但規律性不強,經整理后可作為本體抽取的信息源。抽取時,首先對文檔進行預處理,將停用詞、標點符號、英文字母、數學運算符等其他非漢字字符用空格代替;取出所有空格分割的字符串,并統計這些字符串的出現頻數,去掉頻數小于一定閾值的字符串,得到統計模式的詞條集合候選集。采用TFIDF(term frequency inverse document frequency)法計算詞在文檔中的權重,構建詞—文檔矩陣。權重TFIDF的公式為
2概念圖存儲
在獲取概念關系的前提下,可以將多信息源映射為概念圖,并按照擬定的概念邏輯結構統一存儲以便供抽取本體之用[6]。在進行存儲時所依據的原則有:
a)一個概念節點的邏輯結構可以用一個記錄表示。這個記錄有概念標記ID、概念標記、概念類型三個屬性。概念標記ID是概念系統中所給出的惟一編碼;概念標記是指概念的規范名稱;概念類型是概念的類別說明,包括實體類、屬性類、實體子類、泛化類等。
b)屬性類的有效性規則可用具有屬性ID、概念標記ID、屬性名、所指域和規則表達式五個屬性的記錄表示。屬性ID給定屬性的惟一標志號;概念標記ID依從于概念節點;屬性名為概念屬性的規范命名;所指域是該屬性必須有的值的集合;規則表達式則是使用正則表達式語法定義的規則模式。
c)一個關系節點可用具有關系ID、關系名和關系類型三個屬性的記錄表示。關系ID是關系的惟一標志碼;關系名對應于概念之間聯系的規范名稱;關系類型表明關系的類別,包括partof、kindof、instanceof、attributeof等關系。
d)一個連接概念節點和關系節點的記錄具有概念標記ID、關系ID和關系標記三個屬性。概念標記ID依從于概念節點,關系ID依從于關系節點。
通過連接概念節點和關系節點的記錄可建立概念節點與關系節點的連接關系。這樣的結構符合面向對象的關系數據庫設計準則,是相對穩定的,可以滿足數據搜索的需求。概念圖邏輯存儲結構視圖如圖1所示。
3本體自動抽取算法
概念邏輯結構以數據表方式存儲,概念之間關系映射為數據表之間的聯系。這樣在抽取本體時就可利用 SQL語句直接進行運算。首先定義A(c)為概念c的所有屬性的集合;res(a)表示屬性類a的約束;range(a)表示屬性類a的值域;R(c,a)表示概念c具有屬性a,或者a是概念c的屬性;C(r)表示關系r所聯系的概念類的集合;R(C(r))表示C(r)中的概念間關系為r[7]。本體抽取算法的具體步驟如下:
a)提取概念進入概念集合C(c)
//select ConceptLabel from ConceptNote;
b)for each Concept c in C(c) do
提取屬性進入概念屬性集合A(c) /*select AttributeLabel from AttributeNote,ConceptNote where AttributeNote.ConceptID=ConceptNote.ConceptID and ConceptLabel=c*/
提取規則進入約束集合res(a) /*select RuleExpress from AttributeNote,ConceptNote where AttributeNote.ConceptID=ConceptNote.ConceptID and ConceptLabel=c*/
提取屬性的值域進入值域集合range(a) /*select Range from AttributeNote,ConceptNote where AttributeNote.ConceptID=ConceptNote.ConceptID and ConceptLabel=c*/
提取屬性關系進入關系集合R(c,a)
調用泛化函數Find_Abstract_Concept(A(c))得到泛化類、類間關系、轉移約束
調用分類函數Find_Sub_Concept(A(c))得到子類、類間關系;
c)提取概念間關系進入類關系集合R(r)
//select RelationLabel from RelationNote;
d)for each Relation r in R(r) do
提取關系所聯系的概念集C(r) /*select ConceptNote.ConceptLabel from Relation,RelationNote where RelationNote.RelationLabel=r and Relation.RelationID=RelationNote.RelationID and Relation.ConceptID=ConceptNote.ConceptID*/
構造概念關系R(C(r))
提取子關系和互反關系 /*select Relation.RelationLabel from RelationNote,Relation where RelationNote.RelationLabel=r and Relation.RelationID=RelationNote.RelationID*/;
f)選用本體描述語言表示類、關系、約束、值域。
其中,泛化函數Find_Abstract_Concept(A(c))通過放寬屬性的約束和值域而得到更加抽象的父類。其計算過程如下:
當未定義初始屬性x時,令x=a
for each Attribute x in A(c) do
獲取屬性x的約束res(x)和值域range(x),放寬屬性的約束和值域得到新的抽象類c′以及該類下的屬性x的新約束res(x)和新值域rang(x)
抽取子父類關系R(c,c′)
以x為初始屬性,調用泛化函數Find_Abstract_Concept(A(c′))
從A(c)中除去屬性x的約束res(x)和值域range(x)
相反,分類函數Find_Sub_Concept(A(c))則是通過收縮屬性的約束和值域來得到更加具體的子類。其計算過程如下:
當未定義初始屬性x時,令x=a
for each Attribute a in A(c) do
獲取屬性x的約束res(x)和值域range(x),收縮屬性的約束和值域得到新的抽象類c′以及該類下的屬性x的新約束res(x)和新值域range(x)
抽取父子類關系R(c,c′)
以x為初始屬性,調用分類函數Find_Sub_Concept(A(c′))
從A(c)中恢復屬性x的約束res(x)和值域range(x)
A(c)=A(c)-c
4結束語
本文在分析關系型數據庫、XML文件、HTML文件和一般文檔特征的基礎上,提出了多信息源下本體的自動抽取方法。這種方法有利于克服單一信息源下本體抽取的不完整性以及發揮各類信息源在本體抽取中的優勢,提高本體的創建效率和質量。同時,本體的自動抽取過程也需要人工進行檢驗和完善,以避免抽取的本體中存在著重復和矛盾。此外,本體自動抽取的學習機制、本體的一致性檢測、本體映射等問題還有待于進一步研究。
參考文獻:
[1]KERRIGAN M.WSMOViz:an ontology visualization approach for WSMO[C]//Proc of the Information Visualization.Baltimore:IEEE Computer Society,2006:411-416.
[2]成瑜,何潔月.本體驅動的半結構化Web生物數據抽取[J].計算機工程,2006,32(5):192-194.
[3]王放,顧寧,吳國文.基于本體的Web表格信息抽取[J].小型微型計算機系統,2003,24(12):2142-2146.
[4]TANAKA M,ISHIDA T.Ontology extraction from tables on the Web[C]//Proc of the 2005 Symposium on Applications and the Internet.Washington D C:IEEE Computer Society,2006:284-290.
[5]董慧,余傳明.中文本體的自動獲取與評估算法分析[J].情報理論與實踐,2005,28(4):415-418.
[6]黃偉,金遠平.形式概念分析在本體構建中的應用[J].微機發展,2005,15(2):28-31.
[7]馬峻.一種從線性概念圖中自動抽取本體概念的算法[J].計算機工程與應用,2004,40(23):161-164.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”