1 簡單的類和個體
簡單的具名類:class, rdfs:subclassof
乙個領域中的最基本概念應分別對應於各個分類層次樹的根。owl中的所有個體都是類owl:thing的成員。因此,各個使用者自定義的類都隱含地是 owl:thing的乙個子類。要定義特定領域的根類,只需將它們宣告為乙個具名類(named class)即可。owl也可以定義空類,owl:nothing。
個體:要引入乙個個體(individual),只需將它們宣告為某個類的成員。關於owl中類與個體的區別,有一些重要的問題。乙個類僅是乙個名稱和一些描述某集合內個體的屬性;而個體是該集合的成員。因此,類應自然地對應於與某論域中的事物的出現集合,而個體應對應於可被歸入這些類的實際的實體。
2 簡單屬性
屬性:objectproperty, datatypeproperty, rdfs:subpropertyof, rdfs:domain, rdfs:range,乙個屬性是乙個二元關係。有兩種型別的屬性:
資料型別屬性(datatype properties),類例項與rdf文字或xml schema資料型別間的關係。
物件屬性(object properties),兩個類的例項間的關係。注意:物件屬性這個名稱並不是要反映與rdf術語rdf:object的聯絡.
根據是將個體關聯到個體,還是將個體關聯到資料型別,我們可以區分兩類屬性:前者稱為物件屬性;後者稱為資料型別屬性。型別屬性的值域範圍是rdf文字或者是xml schema資料型別中定義的那些簡單型別、
屬性特性:
1 transitiveproperty 傳遞屬性:如果乙個屬性p被宣告為傳遞屬性,那麼對於任意的x,y和z: p(x,y)與p(y,z) 蘊含 p(x,z);
2 symmetricproperty 對稱屬性:如果乙個屬性p被宣告為對稱屬性,那麼對於任意的x和y: p(x,y)當且僅當p(y,x)
3 functionalproperty 函式型屬性: 如果乙個屬性p被標記為函式型屬性,那麼對於所有的x , y, 和z: p(x,y)與p(x,z) 蘊含 y = z
4 inverseof 逆屬性:如果乙個屬性p1被標記為屬性p2的逆, 那麼對於所有的x 和 y: p1(x,y) 當且僅當p2(y,x)。請注意owl:inverseof的語法,它僅僅使用乙個屬性名作為引數。a 當且僅當b意思是 (a蘊含b)並且(b蘊含a).
5 inversefunctionalproperty--反函式屬性:如果乙個屬性p被標記為反函式型的,那麼對於所有的x, y和z: p(y,x)與p(z,x) 蘊含 y = z
。因為乙個函式型屬性的逆必定是反函式型的。反函式型屬性的值域中的元素可以看成是在資料庫意義上定義的乙個唯一的鍵值。owl:inversefunctional意味著屬性的值域中的元素為定義域中的每個元素提供了乙個唯一的標識。
3 屬性限制
在乙個明確的上下文owl:restriction中限制屬性的值域,owl:onproperty元素指出了受限制的屬性。 1
allvaluesfrom, somevaluesfrom
owl:allvaluesfrom屬性限制要求:對於每乙個有指定屬性例項的類例項,該屬性的值必須是由owl:allvaluesfrom從句指定的類的成
員。owl:somevaluesfrom限制與之相似。這兩種限制形式間的不同就是全稱量詞與存在量詞間的不同。
2 基數限制
使用owl:cardinality,這一約束允許對乙個關係中的元素數目作出精確的限制。
owl:maxcardinality能夠用來指定乙個上界。
owl:mincardinality能夠用來指定乙個下界。使用二者的組合就能夠將乙個屬性的基數限制為乙個數值區間。
3 hasvalue [owl dl]
hasvalue 使得我們能夠根據「特定的」屬性值的存在來標識類。因此,乙個個體只要至少有「乙個」屬性值等於hasvalue的資源,這
乙個體就是該類的成員。
4 本體對映
為了讓本體發揮最大的作用,就需要讓本體得到充分的共享,為了使得在開發本體時盡可能的節省人力,就需要使得開發出來的本體能夠被重要。更理想的情況是他們能夠被組合使用。在開發乙個本體的過程中,很多精力都被投入到將類與屬性聯絡起來以獲取最大意義的工作上去了,意識到這一點是很重要的。我們希望對類成員作出的斷言較為簡單同時又要有廣泛的和有用的含意在裡面。這也是在本體開發過程中最為困難的工作。如果你能找到已經經過廣泛使用和精煉的本體,那麼採用它才有意義。
1 類和屬性之間的等價關係--equivalentclass, equivalentproperty
屬性owl:equivalentclass被用來表示兩個類有著完全相同的例項。但我們要注意,在owl dl中,類僅僅代表著個體的集合而不是個體本身。然而在owl full中,我們能夠使用owl:sameas來表示兩個類在各方面均完全一致。類似的,owl:equivalentproperty屬性宣告表達屬性的等同。
2 個體間的同一性--sameas
描述個體之間相同的機制與描述類之間的相同的機制類似,僅僅只要將兩個個體宣告成一致的就可以了修飾(或引用)兩個類用sameas還是用equivalentclass效果是不同的。用sameas的時候,把乙個類解釋為乙個個體,就像在
owl full中一樣,這有利於對本體進行分類。
3 不同的個體--differentfrom, alldifferent
這一機制提供了與sameas相反的效果。
5 複雜類
1 集合運算子
交運算:intersectionof
並運算:unionof
補運算:complementof
2 列舉類 oneof
owl提供了一種通過直接列舉類的成員的方法來描述類。這是通過使用oneof結構來完成。特別地,這個定義完整地描述了類的外延,
因此任何其他個體都不能被宣告為屬於這個類。oneof結構的每乙個元素都必須是乙個有效宣告的個體。乙個個體必須屬於某個類。
3 不相交類 disjointwith
使用owl:disjointwith構造子可以表達一組類是不相交的。它保證了屬於某乙個類的個體不能同時又是另乙個指定類的例項。
6 本體的版本控制
本體和軟體一樣需要維護,因此它們將隨著時間的推移而改變。在乙個owl:ontology元素內,鏈結到乙個以前定義的本體版本是可能
的。屬性owl:priorversion被用來提供這種鏈結,並能用它跟蹤乙個本體的版本歷史。本體版本可能彼此互不相容,例如,乙個本體以前的版本可能包含與現在版本中的陳述相矛盾的陳述。在乙個owl:ontology元素中,
我們使用owl:backwardcompatiblewith和owl:incompatiblewith這些屬性來指出本體版本是相容還是不相容以前的版本。如果沒有進
行owl:backwardcompatiblewith宣告,那麼我們假定就不存在相容性。
owl full提供的表示能力能夠對乙個類進行任何型別的宣告,也即可以宣告乙個類可以是另乙個類的例項,或者乙個類(不是它的實
例)有乙個屬性和乙個對應的屬性值。這一框架就能被用來為版本跟蹤資訊建立乙個由類和屬性構成的本體。owl的名稱間中包括了兩
個預定義的類owl:deprecatedclass和 owl:deprecatedproperty來完成這個目的。他們被用來指明某個類或屬性在未來發布的版本中
可能以一種不相容的方式發生變化。
5分鐘了解OWL本體建模語言
一 概念 定義 一種定義和例項化web本體的語言 本體 與xml schema不同,是知識表示,而不是一種訊息格式 優點 可以推理 開放世界的假設 本體資訊只增加,可以存在矛盾衝突的事實 二 owl結構 1.命名空間 2.本體頭部 owl ontology元素是用來收集關於當前文件的owl元資料的。...
C語言基本知識
c語言中提供了一組標準函式,用來解決常見問題 每個標準函式有自己的名字 為了使用這個標準函式需要把 stdio.h 檔案的內容合併到原始檔中 為了使用標準函式需要編寫函式呼叫語句 n 表示換行,可以把後面的內容列印在下一行中 可以採用佔位符列印編寫程式的時候還不知道的數字 d 佔位符和整數型別字配對...
GO語言基本知識
go語言中,變數的宣告與pascal類似 var name int 先用var表示這是乙個變數,然後緊跟變數名,最後是變數型別。與c 一樣,存在指標型別,用 來取位址。數字型別,包括整數與浮點數。常用的用int32,int64,float32,float64。此外還有複數型別 complex64 注...