RDF簡介
RDF, Resource Description Framework, 資源描述框架,是一個數據模型,由一系列對象-屬性-值三元組組成或則可以稱爲主語 謂語 賓語三元組。刻畫RDF可以用XML語法或者也可以使用turtle,N-Triple語法。
RDF,只是簡單的三元組堆疊而成,很難針對某個特定領域進行推理。
而我下一篇介紹的RDFS,可以用來描述特定領域的語義,並據此進行簡單得推理。
RDF 三元組
IRI是國際化資源標識符,是URI和URL得泛化和推廣,在互聯網中,每個IRI都唯一標識一個資源
類似於我們得身份證
blank node表示匿名資源
一個三元組得三個元素分別爲主語(Subject), 謂語(Predicate), 賓語(Object)
Subject可以是: IRI, blank node
Predicate只能是: IRI(International Resource Identifiers)
Object可以是: literals, IRI, blank node
一個簡單得XML描述RDF的例子
<? xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:info="http://zy.example.com/info#"
xmlns:rel="http://zy.example.com/rel#">
<rdf:Description rdf:about="http://zy.example.com/person/Tom">
<info:name>Tom</info:name>
<info:job>worker</info:job>
<rel:fatherof rdf:resource="http://zy.example.com/person/Jim"></rel:fatherof>
</rdf:Description>
</rdf:RDF>
需要注意的幾點
-
RDF文件都是表示爲一個帶有標籤rdf:RDF的XML元素
-
rdf:Description標籤表示對一個資源進行描述
-
rdf:about屬性用於引用已經存在的資源
rdf:ID屬性用於創建新的資源
無名,用於創建匿名資源(也就是blank node)
-
rdf:resource用於引用一個資源
RDF容器
RDF容器用於描述一組事物。
-
rdf:Bag元素用於描述一個規定爲無序的值的列表
<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cd="http://www.recshop.fake/cd#"> <rdf:Description rdf:about="http://www.recshop.fake/cd/Beatles"> <cd:artist> <rdf:Bag> <rdf:li>John</rdf:li> <rdf:li>Paul</rdf:li> <rdf:li>George</rdf:li> <rdf:li>Ringo</rdf:li> </rdf:Bag> </cd:artist> </rdf:Description> </rdf:RDF>
-
rdf:Seq元素用於描述一個規定爲有序的值的列表(已經排好序)
<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cd="http://www.recshop.fake/cd#"> <rdf:Description rdf:about="http://www.recshop.fake/cd/Beatles"> <cd:artist> <rdf:Seq> <rdf:li>George</rdf:li> <rdf:li>John</rdf:li> <rdf:li>Paul</rdf:li> <rdf:li>Ringo</rdf:li> </rdf:Seq> </cd:artist> </rdf:Description> </rdf:RDF>
-
rdf:Alt元素用於一個可替換的值的列表(用戶僅僅可以選擇這些值的其中之一)
<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cd="http://www.recshop.fake/cd#"> <rdf:Description rdf:about="http://www.recshop.fake/cd/Beatles"> <cd:format> <rdf:Alt> <rdf:li>CD</rdf:li> <rdf:li>Record</rdf:li> <rdf:li>Tape</rdf:li> </rdf:Alt> </cd:format> </rdf:Description> </rdf:RDF>
RDF集合
RDF集合用於描述僅包含指定成員的組。正如在前面的章節所看到的,我們無法關閉一個容器。容器規定了所包含的資源爲成員 - 它沒有規定其他的成員是不被允許的。RDF 集合用於描述僅包含指定成員的組。集合是通過屬性 rdf:parseType=“Collection” 來描述的
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://recshop.fake/cd#">
<rdf:Description
rdf:about="http://recshop.fake/cd/Beatles">
<cd:artist rdf:parseType="Collection">
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/George"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/John"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Paul"/>
<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Ringo"/>
</cd:artist>
</rdf:Description>
</rdf:RDF>