本節書摘來自華章出版社《語義網基礎教程(原書第3版)》一 書中的第2章,第2.5節,作者:(希)grigoris antoniou(荷)paul groth(荷)frank van harmelen(荷)rinke hoekstra ,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
rdf模式提供模組化原語來表達2.5節中的資訊。一個必須做的決定是使用什麼樣的形式語言。使用rdf本身并不讓人吃驚:rdf模式的模組化原語使用資源和屬性定義。通過觀察圖2-6可以驗證這個決定。我們将這個圖表達為一個類/屬性的層次以及執行個體,但是它本身當然也僅僅是一個帶标簽的圖,可以用rdf編碼。記住rdf允許表達有關任何資源的聲明,并且任何擁有uri的事物都可以作為資源。是以,如果想讓類“apartment”是“residential unit”的一個子類,我們可能會
1)為apartment、residential unit和subclassof定義所需的資源;
2)定義subclassof為一個屬性;
3)編寫三元租(apartment subclassof residential unit)。
所有這些步驟都包含在rdf的表達能力中。是以,一個rdfs文檔僅僅是一個rdf文檔,而我們可以使用某種rdf标準文法來編寫。
現在,我們定義rdf模式的模組化原語。
核心類包括:
rdfs:resource,所有資源的類。
rdfs:class,所有類的類。
rdfs:literal,所有文字(字元串)的類。
rdf:property,所有屬性的類。
rdf:statement,所有具體化聲明的類。
用來定義聯系的核心屬性包括:
rdf:type,将一個資源關聯到它的類(參見2.4.1節)。該資源被聲明為該類的一個執行個體。
rdfs:subclassof,将一個類關聯到它的超類。一個類的所有執行個體都是它的超類的執行個體。注意,一個類可能是多個類的子類。例如,類femaleprofessor可能同時是female和professor的子類。
rdfs:subpropertyof,将一個屬性關聯到它超屬性中的一個。
這裡有一個例子,表達了所有的較高價的電梯大廈都是居住單元:

注意,rdfs:subclassof和rdfs:subpropertyof被定義為傳遞的。并且很有趣的是,rdfs:class是rdfs:resource的一個子類(所有的類都是資源),同時rdfs:resource是rdfs:class的一個執行個體(rdfs:resource是所有資源的類,是以它是一個類!)出于同樣的原因,每個類都是rdfs:class的執行個體。
用來限制屬性的核心屬性包括:
rdfs:domain,指定一個屬性p的定義域,聲明任何擁有某個給定屬性的資源是定義域類的一個執行個體。
rdfs:range,指定一個屬性p的值域,聲明一個屬性的取值是值域類的執行個體。
這裡有一個例子聲明當任何資源有一個位址時,它(通過推理)是一個單元并且取值是一個文字:
下面是一些對具體化有用的屬性:
rdf:subject,将一個具體化聲明關聯到它的主語。
rdf:predicate,将一個具體化聲明關聯到它的謂語。
rdf:object,将一個具體化屬性關聯到它的賓語。
rdf還允許用一個标準的方式表達容器。可以表達包、序列或選擇。
rdf:bag,包的類。
rdf:seq,序列的類。
rdf:alt,選擇的類。
rdfs:container,所有容器類的超類,包括前面提到的3種。
一個資源可以在網際網路上的許多地方被定義和描述。下列屬性允許我們定義連結到這些位址:
rdfs:seealso,将一個資源關聯到另一個解釋它的資源。
rdfs:isdefinedby,它是rdfs:seealso的一個子屬性,将一個資源關聯到它的定義之處,一般是一個rdf模式。
為人類讀者提供更多的資訊常常很有用。這可以通過以下屬性來實作:
rdfs:comment,注釋,一般是長的文本,可以與一個資源關聯。
rdfs:label,将一個人類友好的标簽(名字)與一個資源關聯。其中的一個目的是用作rdf文檔的圖形化表示中節點的名稱。
我們展示一個住房供給的例子,并提供該領域的概念模型,即一個本體。
這裡,我們介紹一個簡單的汽車本體。圖2-7展示了它的類層次。