摘要:當前,網絡信息資源呈現爆炸式增長趨勢,用戶對信息查詢的要求也越來越高,傳統的各種信息查詢技術已經很難滿足這種要求。未來的因特網作為人類的信息庫、知識庫,應該支持用戶以自然語言的方式來完成信息查詢,并具備理解語義,進行自動擴展、聯想的智能化查詢系統。該文提出一個基于Ontology的信息查詢系統模型,實現支持自然語言的理解和語義層面的智能化查詢功能。
關鍵詞:本體;信息查詢;自然語言理解
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2008)23-876-03
The Ontology-Based Information Inquiry System Research
ZHAN Ke-qiang
(Software Engineering Dep., Fujian Polytechnic of Information Technology, Fuzhou 350003, China)
Abstract: Currently, With the explosive growth of network information resources, the information inquiry request for users become more and more high. Traditional information inquiry technologies cannot meet the requirements. In the future, as the information and knowledge database for humans, Internet should support information inquiry completed by the way of natural language. The informaton inquiry system should have the abilities of semantic understanding, automatic extension and intelligent suggestion. This paper will introduce a informaton inquiry system which achieve the functions of support for natural language understanding and intelligent inquiry for semantics based on Ontology.
Key words: ontology; informaton inquiry; Natural language understanding
1 引言
目前網絡信息查詢的方式,主要有兩種方式:對于非結構化的大量異構資源的查詢,主要是基于關鍵詞的搜索引擎技術和分類主題查詢技術;而對于結構化的信息資源,主要是基于相應的數據模式和深層次網絡資源檢索。如目前文獻數據庫中普遍采用的全文檢索技術,是將用戶的查詢請求和全文中的每個詞進行匹配,它并不考慮查詢請求的語義,雖然能夠保證實現較全面的查詢,但準確度很低,且耗費時間長;采用深層次網絡資源檢索,又需要用戶了解系統中數據的格式,因此無法處理復雜的語義關系,更無法用自然語言來表達查詢意愿。針對這一問題,本體理論和相關技術被引入信息查詢等領域的研究。
2 本體的相關理論
2.1 本體的起源
本體(Ontology)最早是一個哲學的范疇[1],誕生于17世紀,起源于對萬物本源的追問。哲學上本體是關于“存在”的學問,即對客觀存在的事物(或實體)的解釋和說明。隨著近年來人工智能(Agent)的發展,本體的概念被人工智能界借用,賦予了新的定義。
在人工智能領域,為了減少“知識工程”(knowledge engineering)中構建知識庫的代價,出現了知識的復用技術。通過復用,系統開發者可以在已有知識基礎上更加專注于幾個特定領域的知識構建。同時,數據庫管理系統(DBMS)研究領域也發現,早期數據庫的概念模型是專門化的,導致了數據庫的不一致性,使得數據集成和共享變得非常困難。同時,在軟件工程領域,伴隨著日益龐大而復雜的應用的出現,程序的可重用性的問題也越來越顯得突出,領域建模也越來越成為軟件工程研究領域的重中之重。
以上幾個方面的發展都面臨著一個類似的問題,即對某個領域進行通用概念上的描述,也就是要回答:某個領域內,本質上存在哪些對象、過程、屬性和關系,各個對象之間有何聯系。這也是本體論所研究的主要內容。
2.2 本體的概念
本體理論的發展,同萬物的發展一樣,經歷了從誕生到不斷完善、成熟的過程。人們對本體(Ontology)的理解并不完善,這些定義也出在不斷的發展變化中,比較有代表性的定義如表1所列。
目前使用較廣的關于本體的定義是最后一種,即共享概念模型的明確的形式化規范說明。定義的說明體現了本體(Ontology)的四層含義:
1)概念模型(cerptualization):通過抽象出客觀世界中一些現象的相關概念而得到的模型,其表示的含義獨立于具體的環境狀態;
2)明確(explicit):所使用的概念及使用這些概念的約束都有明確的定義;
3)形式化(formal):Ontology是計算機可讀的;
4)共享(share):Ontology中體現的是共同認可的知識,反映的是相關領域中公認的概念集,它所針對的是團體而不是個體。
本體的目標是捕獲相關的領域的知識,提供對該領域知識的共同理解,確定該領域內共同認可的詞匯,并從不同層次的形式化模式上給出這些詞匯(或術語、符號等)之間相互關系的明確定義。
2.3 本體的構成
根據以上定義,把本體歸納為5個基本的建模元語(Modeling Primitives):
1)類(classes)或概念(concepts):指任何事務,如工作描述、功能、行為、策略和推理過程。從語義上講,它表示的是對象的集合,其定義一般采用框架(frame)結構,包括概念的名稱,與其他概念之間的關系的集合,以及用自然語言對概念的描述;
2)關系(relations):在領域中概念之間的交互作用,形式上定義為n維笛卡兒積的子集:R:C1×C2×…×Cn;
3)函數(functions):一類特殊的關系。該關系的前n-1個元素可以唯一決定第n個元素。形式化的定義為F: C1×C2×…×Cn-1→Cn;
4)公理(axioms):代表永真斷言,如概念1屬于概念2的范疇;
5)實例(instances):代表元素。從語義上講實例表示的就是對象。
從語義上講,本體中使用的基本的關系共有4種,如表2所示。
3 本體庫的建立
為了在協同設計系統中實現對語義一致化的支持,關鍵的一步是建立本體庫,以實現服務的標準化存儲,并實現基于功能語義的智能推理和服務查找。本體庫主要由三部分組成:通用本體庫、領域本體庫和領域規則庫。它們之間的結構關系如圖1所示。
通用本體庫用來描述各學科領域本體所要應用的通用概念集,如空間、時間、對象、主體、動作等。它的主要作用是為了提供概念的可重用性,同時也可以避免概念的冗余定義。在通用本體庫中還定義了各學科領域本體庫的結構、語義的對應關系,統一各學科領域資源的不同表達形式,解決學科結構沖突的問題。
領域本體庫是用來描述各學科領域的概念知識,是對特定學科領域概念的抽象和表示。因此不同的學科都有各自不同的領域本體庫。同時,在學科領域本體庫中也定義了學科內的標準化概念與非標準化概念的聯系,用來處理本學科內的語義異構。我們以計算機領域中微型計算機的組成部件的描述信息為例,給出其在學科領域本體庫相關描述。
<owl:Ontology rdf:about=\"computer\">
<dc:Object>PC</dc:Object>
<dc:Versioninfo>4.0</dc:Versioninfo>
<dc:Description>
<part rdf:ID=\"p1\">
<rdfs:name>CPU</rdfs:name>
<rdfs:part type=\"c1\">Controller</rdfs:part>
<rdfs:part type=\"c2\">Calculator</rdfs:part>
<rdfs:parameter type=\"string\">frequency</rdfs:parameter>
<rdfs:unit type=\"string\">GHz</rdfs:unit>
<rdfs:value type=\"float\">1.8</rdfs:value>
</part>
<part rdf:ID=\"p2\">
<rdfs:name>Memory</rdfs:name>
<rdfs:parameter type=\"string\">capacity</rdfs:parameter>
<rdfs:unit type=\"string\">MB</rdfs:unit>
<rdfs:value type=\"int\">256</rdfs:value>
</part>
<part rdf:ID=\"p3\">
<rdfs:name>Hard disk</rdfs:name>
<rdfs:parameter type=\"string\">capacity</rdfs:parameter>
<rdfs:unit type=\"string\">GB</rdfs:unit>
<rdfs:value type=\"int\">120</rdfs:value>
</part>
<part rdf:ID=\"p4\">
<rdfs:name>Monitor</rdfs:name>
<rdfs:parameter type=\"string\">size</rdfs:parameter>
<rdfs:unit type=\"string\">inch</rdfs:unit>
<rdfs:value type=\"float\">15.1</rdfs:value>
</part>
</dc:Description>
</owl:Ontology>
前面這段代碼定義了微型計算機的組成部件的基本描述信息。其中<dc:Object>定義了所描述的對象;<dc:Versioninfo>定義了該基本信息的版本信息,如果參與者修改了基本信息中的相關數據,則版本信息要相應的發生變化,這樣其它參與者在調用此信息時,就可以通過版本信息查看與剛才的調用信息是否一致;<dc:Description>是對此領域中本體信息的概略性描述。
領域規則庫主要用于定義和組織應用于該領域的規則,形成一個可以應用于特定領域的完備的規則集。我們以計算機的內存儲器為例,其中概念“C”在語義上表示“容量”,它屬于對象類“Memory”,取值為“string”;
<owl:class rdf:about=\"C\">
<rdfs:domain>
<owl:class rdf:about=\"#Memory\">
</rdfs:domain>
<rdfs:range> <xsd:string/> </rdfs:range>
<owl:Restriction>
<owl:onProperty rdf:resource=\"#transform\">
<owl:hasValue rdf:about=\"MB\">256</owl:hasValue>
<un:rule>*</un:rule>
<owl:toClass rdf:about=\"B\">268435456</owl:toClass>
</owl:Restriction>
</owl:class>
在前面本體的構建中,我們多次用到了RDF[7]。RDF即資源定義框架(Resource Description Framework)。它以XML語法為基礎,提供了描述網絡資源(web resource),以及資源之間關系的模型與語法格式。采用RDF格式定義的信息,是機器可理解的(machine-understandable),這樣就可以支持網絡資源的自動處理,也能夠在此之上實現Internet上的互操作。而RDF Schema提出了抽象世界中主要關系,由此建立了類型系統(Type System),從而支持了從客觀世界到抽象世界的映射,為本體共享打下基礎,解決了RDF的語義問題。在RDF Schema中使用類(class)、屬性(property)、約束(constrain)的概念,通過從屬于哪些類的資源來定義屬性[8]。RDF Schema的基本模型是class和subclass-of statement(定義類層次),property和subproperty-of statement(定義property層次),domain和range statement(限制對上面的class和property的組合),type statement(用于聲明class的一個實例resource)。使用這些模型我們就可以定義一個領域的本體。
4 基于Ontology的信息查詢系統的結構模型
為了能夠讓不同學科的Agent了解自己學科所定義的相關參數等的信息,就需要系統能夠基于語義按需查找到相應的本體信息。因此,要解決的主要問題就歸結為如何由用戶輸入的功能描述信息自動地定位相關的本體信息上。我們采用的思想是:利用Ontology知識從服務描述的不同表達中抽象出其相同點和不同點,從而辨別出兩個參數或其它信息上是否相同。
4.1 系統的結構模型
基于Ontology的信息查詢系統,采用目前流行的瀏覽器/服務器(B/S)結構。系統采用3層架構,分別為顯示層、中間層和數據層:顯示層處理用戶界面接口問題;中間層負責自然語言處理,進行語義推理以及構造查詢表達式等功能;數據層存儲參照本體進行標引后的信息資源(RDF文件和本體資源)。圖2表示了基于Ontology的信息查詢系統的結構模型。