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