[摘要]本文提出了一種基于軟件工程開發(fā)的領(lǐng)域本體構(gòu)建框架,其中利用結(jié)構(gòu)化方法從整體上將領(lǐng)域本體構(gòu)建過程劃分為規(guī)劃、分析、設(shè)計(jì)、實(shí)施與運(yùn)行5個(gè)階段,而在領(lǐng)域本體分析階段又利用原型化方法進(jìn)行領(lǐng)域概念及概念關(guān)系的分析與設(shè)計(jì)。在領(lǐng)域本體構(gòu)建中將兩種軟件工程開發(fā)方法相結(jié)合,揚(yáng)棄了各自的優(yōu)缺點(diǎn),使生成的領(lǐng)域本體更高效地滿足用戶的需求。
[關(guān)鍵詞]領(lǐng)域本體;本體構(gòu)建;結(jié)構(gòu)化方法;原型化方法
[中圖分類號(hào)]TP311
[文獻(xiàn)標(biāo)識(shí)碼]A
(文章編號(hào))1008—0821(2012)08—0037—04
目前流行的領(lǐng)域本體構(gòu)建方法有:英國Edinbunrgh大學(xué)AI應(yīng)用研究所的Enterprise項(xiàng)目組開發(fā)的“骨架法”,該方法使用middle—out開發(fā)方式提供與商業(yè)和企業(yè)有關(guān)的術(shù)語及其定義的集合;加拿大Toronto大學(xué)企業(yè)集成實(shí)驗(yàn)室開發(fā)了TOVE項(xiàng)目本體,通過該本體來建立指定知識(shí)的邏輯模型;Bernaras等人開發(fā)的歐洲Eaprit KACTUS項(xiàng)目中由應(yīng)用來控制本體的開發(fā),每個(gè)應(yīng)用都有相應(yīng)的知識(shí)本體,這些本體即能復(fù)用其他的本體,又能集成到項(xiàng)目以后的本體應(yīng)用中;西班牙Madrid理工大學(xué)AI實(shí)驗(yàn)室開發(fā)的,Methontology法構(gòu)建知識(shí)級(jí)本體;美國Southern California大學(xué)信息科學(xué)研究所開發(fā)的Sensus法,主要通過自然語言處理,提取和合并不同電子知識(shí)源的信息而得到該領(lǐng)域本體的內(nèi)容。
本文借鑒了上述傳統(tǒng)領(lǐng)域本體構(gòu)建方法中的基本思想,并在構(gòu)建框架中融合了軟件工程開發(fā)方法中的結(jié)構(gòu)化開發(fā)方法和原型化開發(fā)方法。
1 傳統(tǒng)領(lǐng)域本體構(gòu)建方法分析
1.1 共同點(diǎn)分析
縱觀上述“骨架法”、“評(píng)估法”、“Bernaras”、“Methonotology”及“Sensus”方法構(gòu)建領(lǐng)域本體過程中的思路,它們之間存在以下共同點(diǎn):
(1)許多本體構(gòu)建方法都以一個(gè)具體任務(wù)為起點(diǎn),這樣易于知識(shí)的獲取和本體功能的描述。
(2)本體構(gòu)建大致可劃分為階段法(如骨架法)和演化法(如Methontology法)。
(3)在構(gòu)建過程中可分為“非形式化描述本體”和用正規(guī)描述語言“形式化描述本體”前后兩個(gè)階段。
(4)希望通過累積的方法構(gòu)建本體,即先構(gòu)建一個(gè)基礎(chǔ)本體,然后做進(jìn)一步開發(fā)。
(5)對(duì)于由同一個(gè)基礎(chǔ)本體構(gòu)建出的領(lǐng)域本體,由于高層概念的共享,本體系統(tǒng)之間具有互操作能力。
1.2 缺陷分析
IEEE 1074—1995標(biāo)準(zhǔn)是軟件開發(fā)生命周期過程的標(biāo)準(zhǔn),其中包括模型階段、項(xiàng)目管理階段、軟件開發(fā)階段與集成階段4個(gè)開發(fā)階段,其中軟件開發(fā)階段的具體步驟如下:
(1)開發(fā)前期:主要進(jìn)行可行性研究等活動(dòng);
(2)開發(fā)階段:主要進(jìn)行需求分析、設(shè)計(jì)和實(shí)現(xiàn)等活動(dòng);
(3)開發(fā)后期:主要進(jìn)行軟件的安裝、試運(yùn)行、操作和維護(hù)等活動(dòng)。
與IEEE 1074—1995標(biāo)準(zhǔn)對(duì)比而言,目前領(lǐng)域本體構(gòu)建還遠(yuǎn)遠(yuǎn)沒有成為一種工程性活動(dòng),還具有如下缺陷:
(1)沒有一種方法是完全成熟的,不論是Bemaras法、Sensus法、骨架法、評(píng)估法,還是Methontology法。
(2)缺乏工程化的本體通用構(gòu)造方法和標(biāo)準(zhǔn)。由于每個(gè)研發(fā)團(tuán)隊(duì)處于不同的學(xué)科領(lǐng)域,雖然總結(jié)出各個(gè)領(lǐng)域不同的開發(fā)方法和體系結(jié)構(gòu),但是各個(gè)本體開發(fā)方法都不盡統(tǒng)一,缺乏通用的標(biāo)準(zhǔn)。
本文在領(lǐng)域本體構(gòu)建過程中揚(yáng)棄上述5種領(lǐng)域本體構(gòu)建方法中的優(yōu)缺點(diǎn),而且借鑒了軟件工程開發(fā)的基本標(biāo)準(zhǔn)。
2 基于軟件工程開發(fā)的領(lǐng)域本體構(gòu)建
2.1 構(gòu)建框架
本文在領(lǐng)域本體框架構(gòu)建的形式上采用結(jié)構(gòu)化方法中分段式模式,將整個(gè)領(lǐng)域本體構(gòu)建過程分為領(lǐng)域本體規(guī)劃階段、領(lǐng)域本體分析階段、領(lǐng)域本體設(shè)計(jì)階段、領(lǐng)域本體實(shí)施階段及領(lǐng)域本體運(yùn)行階段,每個(gè)階段都有自己獨(dú)立的目標(biāo)及主要任務(wù),前一階段任務(wù)的完成是后一階段任務(wù)開始的前提和基礎(chǔ),后一階段任務(wù)通常是對(duì)前一階段提出的解決問題方法的進(jìn)一步具體化,即該過程是按照軟件工程開發(fā)的生命周期流程來逐步解決問題的。在領(lǐng)域本體分析階段,根據(jù)領(lǐng)域本體規(guī)劃階段提出的具體要求和目標(biāo),采用原型化方法不斷地對(duì)分析結(jié)果進(jìn)行修改和完善。其構(gòu)建框架如圖1所示。
2.2 構(gòu)建框架分析
2.2.1 領(lǐng)域本體規(guī)劃階段
(1)確定領(lǐng)域本體的用途和范圍
確定領(lǐng)域本體范圍的方式之一是設(shè)計(jì)并填寫本體的性能調(diào)查表,以下從需求的角度對(duì)本體支持的性能調(diào)查表進(jìn)行簡單的分類:
①需求細(xì)化。需求細(xì)化過程必須滿足何種標(biāo)準(zhǔn)?會(huì)產(chǎn)生多余的需求嗎?需求是客戶的清晰表述嗎?
②需求追溯能力。需求還能分解嗎?需求的來源是什么?誰記錄需求?需求在特定的設(shè)計(jì)團(tuán)隊(duì)中適用嗎?
③需求滿足。需求能夠滿足嗎?兩個(gè)或多個(gè)需求間相互沖突嗎?更高抽象級(jí)別的需求怎樣滿足評(píng)估?
④文檔生成。需求屬于哪類文檔?哪些是與需求文檔中的段落相符的需求?不屬于客戶報(bào)告的需求有哪些(商業(yè)機(jī)密)?
⑤升級(jí)。這是需求的最新版本嗎?需求的舊版本有哪些?為什么還要改變需求?變化對(duì)需求文檔的一致性和完整性有影響嗎?
(2)考慮復(fù)用現(xiàn)有領(lǐng)域本體
一些本體已經(jīng)初具規(guī)模,可以在網(wǎng)上找到相應(yīng)的本體庫及相關(guān)資料,在具體開發(fā)之前,有必要在這些本體中尋找系統(tǒng)可以重用的本體,這樣可以省去元本體和頂層本體的建立,而把本體建立的目標(biāo)重點(diǎn)放在領(lǐng)域本體的建立上。
2.2.2領(lǐng)域本體分析階段
(1)定義類和類層次
類描述了領(lǐng)域的概念而非單詞。在類和類層次的定義過程中,需要依據(jù)以下8個(gè)原則:
①確保類層次的正確性
恰當(dāng)使用is—a和kind-of等類間關(guān)系,is-a關(guān)系指類A是類B的子類,前提是B的每個(gè)實(shí)例也是A的實(shí)例。類的子類表示概念是kind-of父類表示的概念;層次關(guān)系間具有傳遞性,并應(yīng)區(qū)分直接子類和間接子類的關(guān)系;避免類層次的循環(huán),確保類層次隨著領(lǐng)域發(fā)展而進(jìn)化。
②分析類層次中的兄弟關(guān)系
在類層次中,兄弟關(guān)系是同一類的直接子類,并在同一抽象級(jí)別上。關(guān)于直接子類的個(gè)數(shù)并沒有明確規(guī)定,但父類一般只有2-12個(gè)直接子類,過多或過少不都合適。
③多重繼承關(guān)系
一個(gè)類可以是幾個(gè)類的子類,則子類的實(shí)例是其所有父類的實(shí)例,子類將繼承所有父類的屬性和關(guān)系約束。
④引入新類的時(shí)機(jī)
當(dāng)類的子類有其父類不具有的新屬性,或有已定義的新屬性值,或覆蓋父類屬性的約束,此時(shí)可以引入一個(gè)新類。新類可以沒有任何新的屬性,沒有必要為了一個(gè)額外的限定條件來創(chuàng)建新類。
⑤新類或特性值
如果有不同屬性值的概念變成其他類中不同屬性的約束,則應(yīng)該生成新類,以便加以區(qū)別;類的單個(gè)實(shí)例不應(yīng)經(jīng)常改變,當(dāng)使用概念的外在(非固有)屬性來區(qū)別類時(shí),這些類的實(shí)例將需從一個(gè)類移動(dòng)到另一類。
⑥類或?qū)嵗?/p>
判斷類結(jié)束和單個(gè)實(shí)例開始依賴于知識(shí)表示中最低的粒度級(jí),而粒度級(jí)又由本體應(yīng)用來確定;如果概念已經(jīng)形成自然的層次,則應(yīng)表述為類,單個(gè)實(shí)例是最特殊的概念表述,實(shí)例沒有層次性。
⑦限定范圍
確保不包括類具有的所有特性,僅在本體中表述類最突出的特性,不增添所有類(術(shù)語)間全部的關(guān)系。
⑧不相關(guān)子類
很多系統(tǒng)明確指定某些子類不相交,如果類沒有任何共同的實(shí)例,則它們不相交。
(2)定義類的屬性及其約束
類的屬性是描述類和實(shí)例的特性,也是類間區(qū)分的特性。通常有四種對(duì)象特性能變成本體中的屬性:
①固有的特性,如圓柱的半徑和高度。
②外在的屬性,如螺旋的設(shè)計(jì)者。
③局部,若對(duì)象是結(jié)構(gòu)化的,物理和抽象的部分。
④與其他個(gè)體間的關(guān)系。
不同的約束可以用來描述屬性的值類型、值范圍、值基準(zhǔn),及值的其他特征。下面從5個(gè)方面來描述屬性普通的約束:
①屬性基數(shù)?;鶖?shù)定義屬性有多少值。有些系統(tǒng)定義單一和多個(gè)基數(shù),而有些系統(tǒng)用最小和最大基數(shù)來描述屬性值的個(gè)數(shù)。有些屬性設(shè)置最大基數(shù)為O,目的是為了表示特定子類的屬性不能有任何值。
②屬性值類型。通常屬性值類型可分為字符串型(String)、“浮點(diǎn)或整數(shù)”數(shù)值型(Float或Integer Number)、“是或否”布爾型(Yes或No Boolean)、枚舉型或符號(hào)型(Enumerated或Symbol)、實(shí)例型(Instance)。
③屬性的領(lǐng)域和范圍
屬性應(yīng)能描述其領(lǐng)域中所有的類,屬性應(yīng)能填充其范圍內(nèi)所有類的實(shí)例,同時(shí)不應(yīng)指定屬性的范圍是本體中最通用的類。
④逆屬性
屬性值可能會(huì)依賴于另一屬性值,稱為逆關(guān)系,在兩個(gè)方向保存此數(shù)據(jù)是冗余的,通常使用逆屬性,可以自動(dòng)填充另一逆關(guān)系的值。
⑤默認(rèn)值
如果類的多數(shù)實(shí)例的特定屬性值是相同的,則可把該值定義成默認(rèn)值。當(dāng)類的每個(gè)新實(shí)例包含這個(gè)屬性值時(shí),系統(tǒng)自動(dòng)填充默認(rèn)值,還能把此值改成約束允許的其他值。
(3)生成實(shí)例
定義類的單個(gè)實(shí)例首先需要選擇類,接著生成這些類的單個(gè)實(shí)例,最后填充屬性值。
為了使生成的類、類間層次關(guān)系、類屬性及約束、類實(shí)例等更符合構(gòu)建目標(biāo)和用途,并為了保障在較短時(shí)間內(nèi)適合用戶的需求,在領(lǐng)域?qū)<业闹笇?dǎo)下,采用原型化軟件工程開發(fā)方法對(duì)該階段產(chǎn)生的成果不斷修改和完善。
2.2.3 領(lǐng)域本體設(shè)計(jì)階段
(1)領(lǐng)域本體的形式化表示
一般用語義模型表示領(lǐng)域本體。Perez等人用分類法組織領(lǐng)域本體,歸納出5個(gè)基本建模元語:
①類(Classes)或概念(Concepts)
從語義上講,它表示的是對(duì)象的集合,其定義一般采用框架(Frame)結(jié)構(gòu),包括概念的名稱、與其他概念之間的關(guān)系集合、以及用自然語言對(duì)概念的描述。
②關(guān)系(Relatiom)
在領(lǐng)域中概念之間的交互作用,形式上定義為n維笛卡爾積的子集,即:R=C1×C2×……×Cn
③函數(shù)(Functions)
一類特殊的關(guān)系。該關(guān)系的前n-1個(gè)元素可以惟一決定第n個(gè)元素。形式化定義為F:C1×C2×……×Cn-1→Cn。
④公理(Axioms)
代表永真斷言,如概念乙屬于概念甲的范圍。
⑤實(shí)例(Instances)
代表元素,從語義上講實(shí)例表示的就是對(duì)象。
另外,從語義上講基本的關(guān)系有4種:整體與部分關(guān)系(Part—Whole)、分類關(guān)系(Is—A)、實(shí)例與概念關(guān)系(Instance—Concept)和屬性關(guān)系(Attribute-of)。但在實(shí)際建模過程中,概念之間的關(guān)系不限于上述4類關(guān)系,可以根據(jù)領(lǐng)域的具體情況定義相應(yīng)的關(guān)系。
(2)領(lǐng)域本體的形式化描述語言
領(lǐng)域本體可用自然語言、框架、語義網(wǎng)絡(luò)或邏輯語言等來描述。但對(duì)計(jì)算機(jī)來說,形式化描述語言做為一種可供計(jì)算機(jī)處理的概念模型,應(yīng)具備以下條件:
①應(yīng)該具有較強(qiáng)的表示能力,同時(shí)也應(yīng)兼顧推理能力,以滿足智能檢索中進(jìn)一步實(shí)現(xiàn)推理的需求。
②應(yīng)該具有較強(qiáng)的內(nèi)在邏輯系統(tǒng)支持。
③應(yīng)該具備一致的描述概念和表示數(shù)據(jù)的能力。
④應(yīng)該盡可能與W3C已有標(biāo)準(zhǔn)兼容,從而保證其持續(xù)發(fā)展需求。
⑤應(yīng)該具備XML語法特性,最好是基于語義Web。
⑥所表示的領(lǐng)域知識(shí)是形式化的,即機(jī)器可讀和可理解的。
目前已經(jīng)開發(fā)了6種本體語言,有些是直接基于XML語言的語法,如簡單HTML本體擴(kuò)展(Simple Html OntologyExtension,SHOE)、本體標(biāo)記語言(Ontology Markup Language,OML)和基于XML的本體交換語言(XML—based Ontology Exchange Language,XOL);另外有2種本體語言是建立于RDF(S)之上,以便改善RDF(S)的特征:本體交互語言(Ontology Interchange Language,OIL)和DARPA主體標(biāo)記語言+本體推理層(DARAP Agent Markup Language with Ontology Inference Layer,DAML+OIL)。最近,以O(shè)IL和DAML+OIL語言為起點(diǎn),已開發(fā)出語義網(wǎng)所用的Web本體語言(Web Ontology Language,OWL)。各個(gè)本體語言之間的層次化關(guān)系如圖2所示:
(3)領(lǐng)域本體的文檔化構(gòu)建和存儲(chǔ)
構(gòu)建領(lǐng)域本體文檔,可對(duì)后續(xù)領(lǐng)域本體修改和進(jìn)化奠定基礎(chǔ)。1個(gè)OWL文檔由以下4個(gè)部分組成:
①本體首部:包含了文檔的元數(shù)據(jù),如導(dǎo)入數(shù)據(jù)、版本數(shù)據(jù)及與其他OWL文檔的兼容數(shù)據(jù)。
②類的定義:通過(owl:Class)標(biāo)簽定義類,使用(rdfs:subClassOf)來繼承1個(gè)或多個(gè)類,由此建立類的層次關(guān)系。類的語義用類的描述來表達(dá)。OWL區(qū)分了6種類的描述:1個(gè)類標(biāo)識(shí),1個(gè)詳細(xì)的列舉,1個(gè)屬性的限定,2個(gè)或多個(gè)類描述的交,2個(gè)或多個(gè)類描述的并,1個(gè)類描述的補(bǔ)。
③屬性的定義:OWL存在2種類型的屬性,即對(duì)象屬性(Object Property)和數(shù)據(jù)類型屬性(Datatype Property)。對(duì)象屬性是用來表述2個(gè)類實(shí)例之間的關(guān)系,而數(shù)據(jù)類型屬性則描述類的實(shí)例、RDF Literals,以及XML Schema數(shù)據(jù)類型之間的關(guān)系。屬性之間還能夠定義子屬性關(guān)系以及為屬性聲明額外的特征(傳遞屬性和逆屬性)。如能夠定義father是parent的子屬性,定義anceator為傳遞屬性,定義child為parent的逆屬性。
④個(gè)體(實(shí)例)的定義:一個(gè)個(gè)體是一個(gè)特定類的實(shí)例,并與其屬性相聯(lián)系。
2.2.4 領(lǐng)域本體實(shí)施和運(yùn)行階段
(1)領(lǐng)域本體評(píng)價(jià)
這里采用Gruber在1995年提出的5條準(zhǔn)則:
①清晰性。所定義的術(shù)語應(yīng)盡量客觀,避免受社會(huì)背景和客觀環(huán)境的影響;給出的定義應(yīng)盡可能完整。
②一致性。即本體中定義的公理應(yīng)該是邏輯一致的,概念和概念間關(guān)系在邏輯上也應(yīng)該是一致的。
③可擴(kuò)展性。本體應(yīng)該能夠保證添加新的通用或?qū)S眯g(shù)語,而不需要修改原有的定義,即能支持在已有的概念基礎(chǔ)上定義新術(shù)語。
④編碼偏好程度最小。概念應(yīng)該在知識(shí)層次上說明,而不應(yīng)該依賴于特定的符號(hào)層次的編碼,因?yàn)椴煌南到y(tǒng)可能采用不同的表示風(fēng)格。
⑤最小本體承諾。一般地,本體承諾只要滿足特定的知識(shí)共享需求即可,這可以通過定義約束最弱的公理及只定義交流所需的基本詞匯來保證。
(2)領(lǐng)域本體試運(yùn)行
可針對(duì)某一應(yīng)用目標(biāo),可利用初始生成的領(lǐng)域本體在特定的應(yīng)用范圍內(nèi)進(jìn)行試運(yùn)行,來驗(yàn)證初始領(lǐng)域本體是否能夠滿足領(lǐng)域范圍應(yīng)用的需求,特別是要檢驗(yàn)其一致性、完整性和可擴(kuò)展性。經(jīng)過試運(yùn)行,若符合要求則轉(zhuǎn)向(4);若不符合要求則要重新經(jīng)過本體分析階段,然后轉(zhuǎn)向(3)與(4)。
(3)領(lǐng)域本體文檔的修改
針對(duì)試運(yùn)行的結(jié)果,可在OWL文檔的基礎(chǔ)上做一些標(biāo)注性的修改。
(4)領(lǐng)域本體應(yīng)用
對(duì)于修改后的領(lǐng)域本體,可正式投入實(shí)際運(yùn)行應(yīng)用過程。
3 總結(jié)和展望
本文在總結(jié)與分析傳統(tǒng)領(lǐng)域本體構(gòu)建方法中的基本思想及缺陷的基礎(chǔ)上,提出了基于軟件工程開發(fā)角度來構(gòu)建領(lǐng)域本體的思路。其中利用結(jié)構(gòu)化開發(fā)方法構(gòu)建領(lǐng)域本體整體開發(fā)流程,充分借鑒了結(jié)構(gòu)化開發(fā)方法中的用戶至上原則,結(jié)構(gòu)化、模塊化、自頂向下地對(duì)系統(tǒng)進(jìn)行分析和設(shè)計(jì)等優(yōu)點(diǎn),但由于結(jié)構(gòu)化開發(fā)方法中存在開發(fā)周期過長、不易滿足用戶需求并難易修改等缺陷,因此在領(lǐng)域本體構(gòu)建的重要環(huán)節(jié),即在領(lǐng)域本體分析階段采用原型化開發(fā)方法,使用戶與開發(fā)者通過不斷地溝通盡快確定領(lǐng)域本體初始模型,并通過結(jié)構(gòu)化開發(fā)方法所劃分的層次結(jié)構(gòu)過程不斷地優(yōu)化和修改初始模型,使其能夠盡快滿足用戶的需求。