朱丹翔 王璐 郝孝倞 潘寬
摘 要:介紹了領(lǐng)域本體構(gòu)建的基本流程,目的是為了更好地服務(wù)于語義web以及搜索引擎等。主要內(nèi)容包括本體的概念、分類、功能及本體構(gòu)建的方法、語言和工具,并以Java領(lǐng)域本體庫的構(gòu)建為例詳細(xì)闡述了本體的構(gòu)建過程。
關(guān) 鍵 詞:領(lǐng)域本體;Protégé;OWL;本體構(gòu)建;語義Web
1.引言
近年來,基于語義的搜索引擎異?;馃?,而本體作為語義搜索引擎的基石已成為研究熱點。本體是現(xiàn)實世界的模型,構(gòu)建的本體需要能客觀反映現(xiàn)實世界。因此,本體的開發(fā)流程應(yīng)該是一個不斷反復(fù)迭代的過程,這個反復(fù)迭代的過程作用于本體的整個生命周期。
2.本體簡介
本體最早起源于哲學(xué),其所研究的是世界萬物的本源,即所有事物的客觀,真實的存在[1]。在計算機(jī)領(lǐng)域有許多對本體這個名詞不同的解釋, 其中比較有代表性的定義是:“本體是共享概念模型明確的形式化規(guī)范說明”。其中,“概念模型”指通過抽象出客觀世界中一些現(xiàn)象的相關(guān)概念而得到的模型,“明確”指所使用的概念及使用這些概念的約束都有明確的定義,“形式化”指本體是計算機(jī)可讀的( 即能被計算機(jī)處理) ,“共享”指本體中體現(xiàn)的是共同認(rèn)可的知識,反映的是相關(guān)領(lǐng)域中公認(rèn)的概念集,即本體針對的是團(tuán)體而非個體的共識[2]。
本體根據(jù)不同的屬性,可以將其進(jìn)行不同的分類。根據(jù)領(lǐng)域依賴程度,可以把本體分為頂級、領(lǐng)域、任務(wù)、應(yīng)用四類。
由于本體功能的強(qiáng)大,目前本體已運用到許多的計算機(jī)領(lǐng)域,其中比較突出的是應(yīng)用于語義網(wǎng)。本體的功能可以總結(jié)為三類:
(1)作為知識表示方法,主要應(yīng)用于知識工程和知識管理等[3]。
(2)作為系統(tǒng)分析方法,應(yīng)用于信息建模、面向?qū)ο蠓治龊蛿?shù)據(jù)庫設(shè)計等[4]。
(3)作為信息語義的形式化表示方法,應(yīng)用于異構(gòu)信息集成、多智能體系統(tǒng)、語義Web等。
3.本體建模
本體建模是一個復(fù)雜的過程,涉及了多個學(xué)科的知識,包括哲學(xué)、邏輯學(xué)、知識工程等,目前還沒有通用的工程化方法。
本體建模工具主要使用Protégé。Protégé是斯坦福大學(xué)基于Java語言開發(fā)的本體編輯和知識獲取軟件,或者說是本體開發(fā)工具,它提供了大量的知識模型架構(gòu)與動作,用于創(chuàng)建、可視化、操縱各種表現(xiàn)形式的本體。
本體描述語言使用OWL(Web Ontology Language)。OWL是W3C開發(fā)的一種網(wǎng)絡(luò)本體語言,用于對本體進(jìn)行語義描述,有三種子語言,即OWL Lite、OWL DL和OWL Full,而且每個子語言的表達(dá)能力遞增。
(1)OWL Lite語言,它屬于OWL DL語言,主要提供給分類層次比較單一和屬性約束比較簡單的使用者。
(2)OWL DL語言,它涵蓋了OWL語言的所有語言成分,但使用時必須符合一定的約束,受到一定的限制。OWL DL提供了描述邏輯的推理功能,描述邏輯是OWL的形式化基礎(chǔ)。
(3)OWL Full語言,它包含OWL的所有語言成分并取消了OWL DL中的使用約束,它將RDFS擴(kuò)展成為一個完備的本體語言,支持那些無計算性保證但需要非常強(qiáng)表達(dá)能力和無使用限制的用戶。
4.領(lǐng)域本體構(gòu)建實例
為了能更好的闡述本體的構(gòu)建流程,下面以Java領(lǐng)域本體的構(gòu)建過程為例描述本體構(gòu)建的基本方法。學(xué)科知識可劃分成多個知識點, 知識點是系統(tǒng)處理的單元。知識點的大小是根據(jù)一定的教學(xué)策略或經(jīng)驗、教學(xué)目的和教學(xué)對象等確定的, 其大小相差可能很懸殊[5]。本文使用的建模工具是Protégé4.2,選擇的本體描述語言是OWL Full。本體構(gòu)建過程主要分為以下八步,具體如圖1所示。
(1)確定本體的領(lǐng)域和范圍。本實例構(gòu)建的本體是針對Java領(lǐng)域,所以將Java的所有知識點收集全是本體構(gòu)建的基礎(chǔ)。
(2)領(lǐng)域信息的收集和分析。確定好范圍后就可以收集目標(biāo)領(lǐng)域的概念及信息,例如Java的知識點有“封裝”“繼承”“多態(tài)”“線程”等。
(3)重點概念和關(guān)系的確定。確定各個知識點之間的關(guān)系,最普通的關(guān)系可以是part-of,其他的關(guān)系也可以自己定義。每個關(guān)系還可以定義逆關(guān)系,例如“自動裝箱”的逆關(guān)系為“自動拆箱”。
(4)建立本體框架。按照一定的邏輯規(guī)則將知識點進(jìn)行分組,一個本體的框架就大致建立好了。
(5)形式化編碼。本研究選擇Protégé工具對上述本體框架進(jìn)行形式化編碼。
(6)集成現(xiàn)有本體。對本體庫進(jìn)行優(yōu)化時,這一步必不可少。
(7)確認(rèn)和評價。本體建立好后就要投入實際應(yīng)用過程中,評估標(biāo)準(zhǔn)基本包括:正確性、一致性、可擴(kuò)展性和有效性。
(8)本體進(jìn)化。一個好的本體庫只有對此過程不斷的迭代,才能不斷完善。
圖2是Java領(lǐng)域本體用Protégé形式化編碼后的二級縮略圖,使用Protégé可以自動生成對應(yīng)的OWL代碼。這樣,一個Java領(lǐng)域本體構(gòu)建完畢。
5.小結(jié)
領(lǐng)域本體的構(gòu)建依賴于現(xiàn)實世界,由于現(xiàn)實世界是不斷變化的,因此構(gòu)建的本體也需要不斷的改善。本文在進(jìn)行本體構(gòu)建時采用的是手動構(gòu)建的方式,未來將嘗試使用半自動化甚至自動化的技術(shù)構(gòu)建本體。
參考文獻(xiàn)
[1] 李善平,等.本體論研究綜述[J].計算機(jī)研究與發(fā)展,2004,41(7):1041 -1052.
[2] STUDER R,BENJAMINS V R,F(xiàn)ENSEL D.Knowledge engineering,principles and methods[J].Data and Knowledge Engineering,1998,25(1/2):161-197.
[3] FEBSEL D.Ontology2based know ledge management[J].IEEE Computer,2002,35(11):56259.
[4] GUARINO N. Formal ontology and information systems[A].In: Proceedings of FOIS98[C].Trento:IO S Press,1998.
[5] 趙蔚,劉秀琴,邱百爽.語義網(wǎng)自適應(yīng)學(xué)習(xí)系統(tǒng)中領(lǐng)域本體的構(gòu)建[N].吉林大學(xué)學(xué)報(信息科學(xué)版),2008,26(5):514-518.