本節書摘來自華章出版社《語義網基礎教程(原書第3版)》一 書中的第2章,第2.7節,作者:(希)grigoris antoniou(荷)paul groth(荷)frank van harmelen(荷)rinke hoekstra ,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
本節中,我們形式化定義rdf和rdf模式的模組化原語的含義。因而,可以獲得rdf和rdfs的語義。
我們使用的形式語言是謂詞邏輯(predicate logic),它作為所有(符号)知識表示的基礎被廣泛接受。在形式化過程中使用的公式被稱為公理(axiom)。
通過使用形式語言(如邏輯形式語言)來描述rdf和rdfs的語義,使得語義沒有二義性并且機器可存取。另外,我們通過自動推理機操縱邏輯公式的能力提供了對推理的支援。
rdf和rdf模式中的所有語言原語被表示成常量:resource、class、property、subclassof,等等。一些預先定義的謂詞被用作表達這些常量之間聯系的基礎。
使用連結清單的一個輔助理論,它包括下面的函數符号
nil(空連結清單)
cons(x, l)(添加一個元素到連結清單的頭部)
first(l)(傳回第一個元素)
rest(l)(傳回連結清單的剩餘部分)
和謂詞符号
item(x, l)(取值為真,當且僅當一個元素出現在連結清單中)
list(l)(取值為真,當且僅當l是一個連結清單)
連結清單在rdf中被用于表達容器。它也在更豐富的本體語言中用于表達某些結構的含義(例如基數限制)。
大多數公理提供了類型資訊。例如

表示subclassof是一個屬性。我們使用帶等式的謂詞邏輯(predicate logic with equality)。變量名以?開頭。所有公理都隐式地全稱量化。
下面我們展示rdf和rdf模式中大多數元素的定義。完整語言的公理化語義可以在一個線上文檔中檢視,參見建議閱讀中的文檔fikes和mcguinness (2001)。
基本謂詞包括:
propval(p, r, v),一個包含3個參數的謂詞,它被用于表達一個包含資源r、屬性p和取值v的rdf聲明。
type(r, t),是propval(type, r, t)的縮寫,它指出一個資源r的類型是t。
一個rdf聲明(三元租)(r, p, v)表示為propval(p, r, v)。
類
在我們的語言中,我們有常量class、resource、property和literal。所有的類都是class的執行個體,即它們的類型是class:
resource是最一般的類:每個對象都是一個資源。是以,每個類和每個屬性都是一個資源:
最後,一個rdf聲明中的謂語必須是一個屬性:
類型屬性
type是一個屬性:
注意,它和propval(type, type, property)等價:type的類型是property。type可以用于資源,并且取值是一個類:
輔助的funcprop屬性
一個函數型屬性是一個函數:它将一個資源關聯到最多一個值。函數型屬性不是一個rdf的概念,但是它用于其他原語的公理化。
常量funcprop表示所有函數型屬性的類。p是一個函數型屬性,當且僅當它是一個屬性,并且不存在x、y1和y2,滿足p(x, y1),p(x, y2),且y1≠y2。
具體化聲明
常量statement表示所有具體化聲明的類。所有具體化聲明都是資源,同時statement是class的一個執行個體:
一個具體化聲明可以分解成一個rdf三元組的3個部分:
subject、predicate和object是函數型屬性。也就是說,每個聲明隻能有一個主語、一個謂語和一個賓語:
它們的類型資訊是
最後一個公理的含義是,如果object作為屬性出現在一個rdf聲明中,那麼它必須應用到一個具體化聲明上,并且取值是一個資源或者一個文字。
容器
所有的容器都是資源:
容器是連結清單:
容器可以是包、序列或者選擇:
包和序列是不相交的:
對于每個自然數n>0,存在一個選擇器_n,它選擇一個容器中的第n個元素。它是一個函數型屬性
并且隻用于容器:
子類和子屬性
subclassof是一個屬性:
如果一個類c是另一個類c'的子類,那麼c的所有執行個體也都是c'的執行個體:
對于subpropertyof也類似。p是p'的一個子屬性,僅當有p(x, y)時必有p'(x, y):
限制
每個限制資源是一個資源:
限制屬性是屬性,也是限制資源:
domain和range是限制屬性:
domain和range分别定義了一個屬性的定義域和值域。回想一個屬性p的定義域是p可以應用在的一個對象集合。如果p的定義域是d,那麼對于任意p(x, y),有x∈d。
一個屬性p的值域是p可以取的值的集合。如果p的值域是r,那麼對于任意p(x, y),有y∈r。
從上述公式可以推導出:
是以,我們已經形式化定義了rdf和rdfs的語義。裝配這種知識的軟體能夠産生有趣的結論。例如,給定rents的值域是residentialunit,而residentialunit是unit的一個子類,有rents(jeffmeyer, baronwayapartment),那麼agent可以使用謂詞邏輯語義或任何一個謂詞邏輯證明系統來自動地演繹出unit(baronwayapartment)。