Protégé構(gòu)建本體
1 3種OWL語(yǔ)言
OWL可以分為三種子語(yǔ)言:OWL-Lite,OWL-DL,OWL-Full。子語(yǔ)言的特征是由它的描述能力來分類的。其中,OWL-Lite描述能力最弱,OWL-Full描述能力最強(qiáng),OWL-DL的能力屬于中間,同時(shí),OWL-Full可以視為是OWL-DL的一個(gè)擴(kuò)展。
1.1 OWL-Lite
在語(yǔ)法上,OWL-Lite是最簡(jiǎn)單的語(yǔ)言。一般用于只有一個(gè)簡(jiǎn)單的類層次和定義的約束比較簡(jiǎn)單的情況。比如,根據(jù)一個(gè)現(xiàn)有的百科全書建立的本體。
1.2 OWL-DL
OWL-DL是建立在描述邏輯基礎(chǔ)上的的,描述能力比OWL-Lite強(qiáng)得多。描述邏輯是第一順序邏輯的決定性部分,可以進(jìn)行自動(dòng)推理。因此,可以自動(dòng)的計(jì)算分類層次,并且檢查本體的一致性。
1.3 OWL-Full
OWL-Full的表達(dá)能力是最強(qiáng)的。OWL-Full可以適用于需要很強(qiáng)的表達(dá)能力的情況。
2 OWL本體的組成
OWL本體由個(gè)體、關(guān)聯(lián)和類組成,三者分別和實(shí)例(Instances)、擴(kuò)展連接點(diǎn)(Slot)、類(Classes)相通信。
2.1 個(gè)體(Individuals)
個(gè)體就是在領(lǐng)域中,我們所感興趣的物體。Protégé和OWL之間有一個(gè)顯著的區(qū)別,就是OWL沒有獨(dú)立名字假定(Unique Name Assumption, UNA)。這意味著兩個(gè)不同的名字可以指向同一個(gè)個(gè)體。個(gè)體就是我們常說的實(shí)例,個(gè)體可以被理解為“類的實(shí)例”。
2.2 關(guān)聯(lián)(Properties)
關(guān)聯(lián)指的是兩個(gè)個(gè)體之間的二元關(guān)系,比如,一個(gè)關(guān)聯(lián)可以把兩個(gè)個(gè)體連接在一起。
例:關(guān)聯(lián)hasSibling,因?yàn)镸atthew和Gemma是兩兄弟,就可以通過hasSibling這個(gè)關(guān)系把Matthew和Gemma連在了一起,
關(guān)聯(lián)也可以只有一個(gè)參數(shù),如使某種功能化的關(guān)聯(lián),如transitive(傳遞)或symmetric(對(duì)稱)。
在Protégé中,關(guān)聯(lián)基本和擴(kuò)展連接點(diǎn)(Slot)的意思是一致的。在描述邏輯中,擴(kuò)展連接點(diǎn)是一個(gè)角色,在UML中是關(guān)系,也可以是指向其他物體的概念。在GRAIL(另一種本體語(yǔ)言)和其他的形式化語(yǔ)言中,也被稱作屬性。
2.3 類(Classes)
OWL類是一組包含了個(gè)體的集合。它是通過使用形式化的數(shù)學(xué)語(yǔ)言,精確描述類成員的特性。比如,類Cat包括了特定領(lǐng)域中所有包括“貓”的類。類由超類(superclass)和子類(subclass)的層次結(jié)構(gòu)分類構(gòu)成,也被稱作taxonomy。子類是超類的細(xì)化,子類可以繼承超類的性質(zhì),也就是說,超類的條件是形成子類的必要條件。同時(shí)超類-子類關(guān)系式OWL-DL的關(guān)鍵特性之一,這可以為推理機(jī)自動(dòng)調(diào)用。
同時(shí),概念(concept)一詞也類中也時(shí)有出現(xiàn),類是表述概念的基礎(chǔ)。
建立一個(gè)OWL類,就是建立一個(gè)說明類的環(huán)境的描述,這個(gè)環(huán)境首先必須滿足描述此類的一個(gè)個(gè)體成員的要求。
3 OWL本體的構(gòu)建
3.1 建立類
3.1.1 一個(gè)類層次(class hierarchy)也被稱之為一個(gè)分類法(taxonomy)。
3.1.2 不相交類(disjoint class)
不相交類的定義是,一個(gè)個(gè)體(或事物)不可能成為多個(gè)(>1)類的實(shí)例。
子類(subclass)
3.2 建立關(guān)聯(lián)(properties)
關(guān)聯(lián)的作用是表示兩個(gè)個(gè)體之間的關(guān)系。關(guān)聯(lián)主要分為兩種:事物關(guān)聯(lián)(object properties)和數(shù)據(jù)類型關(guān)聯(lián)(datatype properties)。
事物關(guān)聯(lián)連接兩個(gè)個(gè)體。數(shù)據(jù)類型關(guān)聯(lián)連接一個(gè)個(gè)體和一個(gè)XML Schema 數(shù)據(jù)類型值(XML Schema Datatype value)或RDF描述(RDF literal)。OWL也有第三種關(guān)聯(lián),稱為注釋關(guān)聯(lián)(Annotation properties),注釋關(guān)聯(lián)可以向類、個(gè)體或者事物/數(shù)據(jù)類型關(guān)聯(lián)里添加信息(元數(shù)據(jù))
3.2.1 逆關(guān)聯(lián)(Inverse Properties)
每個(gè)事物關(guān)聯(lián)都可能有一個(gè)逆關(guān)聯(lián)。如果一個(gè)關(guān)聯(lián)連接個(gè)體a和b,那么它的逆關(guān)聯(lián)就將連接b和a。比如關(guān)聯(lián)hasChild就是關(guān)聯(lián)hasParent的逆關(guān)聯(lián)
3.2.2 OWL關(guān)聯(lián)的特征(OWL Property Characteristics)
3.2.3 功能性關(guān)聯(lián)(Functional Properties)
具有某種特定功能的關(guān)聯(lián)。最常見的是,通過一個(gè)關(guān)聯(lián),將兩個(gè)個(gè)體連接在一起。
3.2.4 反向功能關(guān)聯(lián)(Inverse Functional Properties)
3.2.5 傳遞關(guān)聯(lián)(Transitive Properties)
若一個(gè)關(guān)聯(lián)是傳遞的,那么如果關(guān)聯(lián)P關(guān)聯(lián)了a和b,且P也關(guān)聯(lián)了b和c,那么,可以推知,P也可以關(guān)聯(lián)a和c。
3.2.6 對(duì)稱關(guān)聯(lián)(Symmetric Properties)
若關(guān)聯(lián)P是對(duì)稱的,P關(guān)聯(lián)了個(gè)體a和b,那么P同樣可以關(guān)聯(lián)a和b。
3.3 關(guān)聯(lián)的定義域和值域
關(guān)聯(lián)把個(gè)體從定義域連接到值域。例子……
在關(guān)聯(lián)P中,把個(gè)體從定義域a連接到值域b。那么在它的反向關(guān)聯(lián)P’中,定義域就是b,值域是a,就是把個(gè)體從定義域b連接到值域a。
3.4 描述和定義類
3.4.1 關(guān)聯(lián)約束
OWL關(guān)聯(lián)的作用是定義約束,約束的作用是限制歸屬類的個(gè)體,OWL中的約束主要有三種:
? 計(jì)量約束(Quantifier Restrictions)
? 基數(shù)約束(Cardinality Restrictions)
? 賦值約束(hasVaule Restrictions)
首先我們來看計(jì)量約束:
? 存在約束(existential restrictions ])
? 任意約束(universal restrictions ∨)
例如,約束 ]hasTopping MozzarellaTopping表示存在一個(gè)個(gè)體中類或者集合,其中至少有一個(gè)個(gè)體含有MozzarellaTopping。事實(shí)上,約束所描述的是一個(gè)佚名的類,這個(gè)類包含的個(gè)體滿足這個(gè)約束。當(dāng)約束描述一個(gè)類的時(shí)候,它事實(shí)上也描述了(限定)這個(gè)類的超類,比如,MargheritaPizza是一個(gè)事物的子類,那么Pizza也至少含有一個(gè)滿足MozzarellaTopping的子類。
3.4.2 存在約束
在OWL本體中,存在約束是最常用的約束。存在約束定義了,存在一個(gè)特定類的個(gè)體,滿足一個(gè)給定的關(guān)聯(lián)關(guān)系。
例如,]hasBase PizzaBase描述了在所有的個(gè)體中,至少有一個(gè)個(gè)體,滿足在hasBase關(guān)聯(lián)中,與類PizzaBase的一個(gè)個(gè)體相連接。
3.5 使用推理機(jī)
前面談到OWL有3種子語(yǔ)言:OWL-Lite,OWL-DL(Description Logics)和OWL-Full。本體的一個(gè)主要特征就是可以被OWL-DL語(yǔ)言所描述,并被推理機(jī)所運(yùn)行。
推理機(jī)的一個(gè)主要服務(wù)就是測(cè)試一個(gè)類是否是其他類的一個(gè)子類,測(cè)試的結(jié)果被放在Protégé的inferred ontology class hierarchy中。
推理機(jī)提供的另一個(gè)標(biāo)準(zhǔn)服務(wù)是一致性檢查,推理機(jī)給予類的描述可以確定,類是否可能擁有實(shí)例,當(dāng)類被認(rèn)為是不可能實(shí)例化的,類就是不一致的,比如與其他的類(如父類)的定義相沖突。
3.5.1 使用RACER
首先,本體的推理是通過Protégé-OWL的DIG接口進(jìn)行的,首先要安裝完整的RACER機(jī),并且打開它。Protégé默認(rèn)的推理機(jī)URL是http://localhost:8080,如果要使用其他的推理端口,就要在Protégé的OWL Preferences Dialog中設(shè)置它。
3.5.2 調(diào)用RACER

完成了RACER或者其他的推理機(jī)的設(shè)置以后,本體會(huì)“自動(dòng)的”發(fā)送到推理機(jī),自動(dòng)計(jì)算分類層次,并且檢查本體的邏輯完整性。Protégé中,手動(dòng)建立的類層次叫做“asserted hierarchy”,通過推理過后生成的類層次叫做“inferred hierarchy”。
3.6 必要和充分條件(Necessary And Sufficient Conditions)
目前,我們創(chuàng)建的所有類,都只用了必要條件來描述。必要條件就是,如果某個(gè)個(gè)體是一個(gè)類的成員,那么它必須滿足的條件。換句話說,就是如果某個(gè)個(gè)體滿足這些條件,那么它一定是這個(gè)類的成員。
如果一個(gè)類只有必要條件,我們稱之為簡(jiǎn)單類(Primitive Class)。
如果一個(gè)類至少含有一組充分必要條件,我們稱之為規(guī)范類(Defined Class)。
如果一個(gè)類只有必要條件,也可稱之為部分類(Partial Class),如果一個(gè)類至少含有一組充分必要條件,就可以成為完整類(Complete Class)。
如果類A有一個(gè)必要條件,我們就可以說如果一個(gè)個(gè)體是類A的成員,它一定滿足該條件。但是我們不能說任意滿足這個(gè)條件的個(gè)體一定是類A的成員。
如果類A是規(guī)范的,有一個(gè)充分必要條件,我們可以說,如果某個(gè)個(gè)體滿足這個(gè)條件,這個(gè)個(gè)體就是A的成員;且任意一個(gè)滿足這個(gè)條件的個(gè)體,都一定是類A的成員,這個(gè)條件不僅對(duì)A的成員是必要的,也是充分的,因此,滿足此條件的個(gè)體,一定是A的成員。
簡(jiǎn)單類和規(guī)范類(Primitive And Defined Classes)
至少有一組充分必要條件的類就是規(guī)范類,我們可以定義,任何一個(gè)滿足這個(gè)定義的個(gè)體都是這個(gè)類的成員。只有一個(gè)必要條件的類是簡(jiǎn)單類。
3.7 自動(dòng)分類
使用OWL-DL子語(yǔ)言可以自動(dòng)的對(duì)本體的類層次進(jìn)行分類,當(dāng)建立一個(gè)很大的本體時(shí),我們可以通過推理機(jī)計(jì)算子類-超類之間的關(guān)系,從而提高一個(gè)大規(guī)模本體的可維護(hù)性,保持其處于一個(gè)邏輯上的正確狀態(tài)。當(dāng)一個(gè)本體的類有很多的超類的時(shí)候,最好的辦法就是把類層次關(guān)系構(gòu)建成為一個(gè)樹的結(jié)構(gòu)。因此,在asserted hierarchy中(人工構(gòu)建的層次)的類不能有多個(gè)超類。計(jì)算和維護(hù)復(fù)雜的類關(guān)系是推理機(jī)的主要功能,通過推理計(jì)算,使類之間的關(guān)系保持一個(gè)可維護(hù)和標(biāo)準(zhǔn)的狀態(tài)。這不僅提高了本體的可重用性,也把維護(hù)復(fù)雜層次關(guān)系時(shí)的人工錯(cuò)誤降到了最低。
3.8 任意約束(universal restrictions)
任意約束限制了在一個(gè)給定的關(guān)聯(lián)關(guān)系中,和某一個(gè)個(gè)體相連接的一個(gè)特定類的所有成員;該約束所包括的是符合這一條件的所有成員,而不是特定成員。
任意約束和存在約束的區(qū)別在于,在一個(gè)給定的關(guān)聯(lián)中,任意約束不是指定一個(gè)關(guān)系的存在,它僅僅表示,如果一個(gè)關(guān)聯(lián)關(guān)系存在,其關(guān)聯(lián)的個(gè)體一定是特定類的所有成員。
3.9 自動(dòng)分類和開放世界推理(Automatic Classification and Open World Reasoning)
3.9.1 閉合公理(Closure Axioms)
關(guān)聯(lián)的閉合公理由一個(gè)任意約束構(gòu)成,表示只能被特定的參數(shù)所填充的關(guān)聯(lián)關(guān)系。此約束有一個(gè)參數(shù)集,該參數(shù)集是所有該關(guān)聯(lián)的存在約束參數(shù)的并集。
例如,對(duì)MargheritalPizza而言,hasTopping的閉合公理是關(guān)聯(lián)hasTopping的任意約束,其參數(shù)是MozzarellaTopping和TomatoTopping的并集,就是∨hasTopping (MozzarellaTopping∪TomatoTopping)。
3.10 值分割(Value Partitions)
值分割不是OWL的一部分,也不是其他本體語(yǔ)言的內(nèi)容,而是一種設(shè)計(jì)模式(design pattern),其作用是用于改進(jìn)對(duì)類的描述。在本體設(shè)計(jì)中,設(shè)計(jì)模式的作用類似于在面向?qū)ο蟪绦蛟O(shè)計(jì)中——對(duì)一個(gè)模式化的問題可以重復(fù)使用的解決方案。這些設(shè)計(jì)模式通常由專家設(shè)計(jì),其正確性經(jīng)過證明,可以解決一般的模式化問題。
比如,創(chuàng)建一個(gè)“SpicinessValuePartition”的值分割,用于描述PizzaTopping的香味,值分割限定了一個(gè)可能值范圍的一個(gè)詳細(xì)列表,其中枚舉出所有可能值。比如,在SpicinessValuePartition中限定范圍為“Mild”,“Medium”,“Hot”。
3.10.1 覆蓋公理(Covering Axioms)
覆蓋公理包括兩部分,被覆蓋的類和形成覆蓋的類。
例如,我們有類A、B和C,類B和C是A的子類。假設(shè)A被B和C所覆蓋,這意味著A的成員必須是B和/或C的成員。如果B和C是不相交(disjoint)的,A的成員必須是B或者C的成員。
3.11 基數(shù)約束(Cardinality Restrictions)
OWL中,我們可以描述與其他個(gè)體或者數(shù)據(jù)類型有關(guān)系的類的個(gè)體的至少、至多或者準(zhǔn)確的數(shù)目。這個(gè)描述的約束就是基數(shù)約束。對(duì)于一個(gè)給定的關(guān)聯(lián)P,最小基數(shù)約束定義了可以加入P關(guān)系的個(gè)體的最小數(shù)目;最大基數(shù)約束確定了這個(gè)最大數(shù)目;也可以確定可以加入P關(guān)系的個(gè)體的準(zhǔn)確個(gè)數(shù)。
4 開放世界推理(Open World Reasoning)
這一章說明了開放世界推理的細(xì)節(jié)。
? :非符號(hào)
5 在Protégé-OWL中建立其他OWL結(jié)構(gòu)
5.1 建立個(gè)體
OWL可以定義個(gè)體且維護(hù)他們的關(guān)聯(lián)。個(gè)體可以使用在類描述,也就是在hasValue約束和可數(shù)的類中。
5.2 hasValue約束(hasValue Restrictions)
hasValue約束用符號(hào)∈(此符號(hào)需要反過來)表示,表示了一個(gè)個(gè)體集有至少一個(gè)特定關(guān)聯(lián)關(guān)系的個(gè)體。
例如,有hasValue約束 hasCountryOfOrigin∈Italy(Italy是一個(gè)個(gè)體),表示了一個(gè)個(gè)體集(一組個(gè)體的任意類),和個(gè)體Italy至少有一個(gè)hasCountryOfOrigin關(guān)聯(lián)關(guān)系。
如果我們要表示MozzarellaTopping是來自Italy的,在pizza本體中有多個(gè)國(guó)家(包括Italy)個(gè)體,我們就可以在MozzarellaTopping的hasValue約束中定義這個(gè)關(guān)系。
5.3 可數(shù)類(Enumerated Classes)
在描述類的時(shí)候,除了可以直接命名超類和通過約束定義佚名的超類的時(shí)候,也可以通過列舉類的成員個(gè)體的形式定義超類。如,我們可以通過列舉類DaysOfTheWeek的個(gè)體{Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}來定義一個(gè)可數(shù)類。
5.4 注釋關(guān)聯(lián)(Annotation Properties)
OWL允許類、關(guān)聯(lián)、個(gè)體和本體本身(技術(shù)上講是本體的頭文件)可以通過添加信息或者元數(shù)據(jù)來進(jìn)行注釋。這些信息片段可以成為審計(jì)(auditing)和編輯的信息。比如,創(chuàng)建日期、作者、資源的引用燈信息,OWL-Full對(duì)注釋關(guān)聯(lián)的應(yīng)用沒有任何的限制,但是OWL-DL對(duì)此有所限制,主要是:
? 注釋關(guān)聯(lián)的參數(shù)必須是可讀數(shù)據(jù)(data literal)、URI引用或者個(gè)體。
? 注釋關(guān)聯(lián)不能用在關(guān)聯(lián)公理中(property axioms)——例如,不能用在關(guān)聯(lián)層次中,因此這個(gè)關(guān)聯(lián)不能含有子關(guān)聯(lián),也不能是其他關(guān)聯(lián)的子關(guān)聯(lián)。同樣,注釋關(guān)聯(lián)也要有定義域和值域。
OWL有五種頭定義(pre-defined)的注釋關(guān)聯(lián),用于注釋類(包括任意類,比如約束)、關(guān)聯(lián)和個(gè)體。具體略P98
5.5 充分必要條件的多重集合(Multiple Sets Of Necessary & Sufficient Conditions)
在OWL中,可能有多個(gè)充分必要條件的集合。
6 其他
6.1 語(yǔ)言概述
6.2 名字空間(Namespace)
每個(gè)本體都有一個(gè)名字空間—被稱之為默認(rèn)名字空間,本體也可以使用別的名字空間。一個(gè)名字空間是一串類、關(guān)聯(lián)、個(gè)體前綴的字符,用于標(biāo)識(shí)本體。通過獲得不同本體的不同的名字空間,使一個(gè)本體引用另一個(gè)本體中的類成為可能。例如,一個(gè)本體要引用類owl:Thing,其名字空間就是:http://www.w3.org/2002/07/owl#。為了保證名字空間的唯一性,其唯一資源標(biāo)識(shí)(Unique Resource Identifiers,URI)須以“/”或者“#”結(jié)尾。
名字空間的作用是在本體引用其他本體的類、關(guān)聯(lián)和個(gè)體的時(shí)候避免名字沖突。比如,在本體AircraftOntology中有一個(gè)類Wing,另一個(gè)本體BirdOntology中也有一個(gè)類Wing。AircraftOntology的名字空間是http://www.ontologies.com/aircraft#,BirdOntology的名字空間是http://www.birds.com/ontologies/BirdOntology#。很顯然,AircraftOntology中的類Wing不同于BirdOntology中的類Wing,假設(shè)把AircraftOntology引入到BirdOntology中,AircraftOntology中的Wing的全名就是http://www.ontologies.com/aircraft#Wing。BirdOntology中的Wing的全名是http://www.birds.com/ontologies/BirdOntology#Wing。這樣,AircraftOntology和BirdOntology類之間就沒有名字沖突了。
同時(shí),我們可以通過使用一個(gè)名字空間前綴來使名字空間更加簡(jiǎn)化,比如可以使用“ac”來代表AircraftOntology的名字空間http://www.ontologies.com/aircraft#;使用“bird”來代表BirdOntology的名字空間http://www.birds.com/ontologies/BirdOntology#。簡(jiǎn)化后的類全名如ac:Wing或者bird:Wing。
6.3 本體的引入
本體的引入就會(huì)涉及到名字空間的使用問題。在引入本體時(shí),必須同時(shí)引入它的名字空間,建立名字空間的前綴。在往Protégé-OWL中引入本體時(shí),我們必須首先定位本體,確定本體的URL。
可選的位置(Alternative Locations)
在引入一個(gè)本體時(shí),名字空間URI會(huì)轉(zhuǎn)換成為URL(例如,從一個(gè)指針到一個(gè)物理地址),因而能找到該本體。但是,當(dāng)這個(gè)本體沒有名字空間URI或者沒有網(wǎng)絡(luò)連接時(shí),我們可以在Protégé中定義一個(gè)可選的位置,用于表示該本體的本地的拷貝。
6.4 Protégé-OWL元數(shù)據(jù)本體
Protégé-OWL很多的功能性插件都依賴于Protégé-OWL的注釋關(guān)聯(lián)。包括Protégé-OWL的元數(shù)據(jù)本體。
6.5 本體測(cè)試(Ontology Test)
Protégé-OWL提供了一個(gè)測(cè)試框架,包括了對(duì)本體編輯的若干測(cè)試方案。測(cè)試的范圍,包括健壯性檢查,比如檢查關(guān)聯(lián)的參數(shù)是否與其逆關(guān)聯(lián)的參數(shù)相一致。OWL-DL檢查,用于尋找元類(metaclasses)結(jié)構(gòu),使本體進(jìn)化成為OWL-Full。
愛華網(wǎng)



