

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