什麼是RDF?
RDF代表 資源描述框架
RDF是用於描述網路資源的框架
RDF旨在被計算機閱讀和理解
RDF並非設計用於供人閱讀
RDF以 XML
編寫
示例
- 描述購物商品的屬性,如價格和可用性
- 描述網路活動的時間表
- 描述網頁的資訊(內容,作者,建立和修改日期)
- 描述網路圖片的內容和評級
- 為搜尋引擎描述內容
- 描述電子圖書館
RDF旨在提供一種通用的描述資訊的方式,以便計算機應用程式可以閱讀和理解。RDF描述並不是設計用於在網路上顯示。RDF文件以XML編寫。 RDF使用的XML語言稱為RDF/XML。透過使用XML,可以輕鬆地在使用不同型別的作業系統和應用程式語言的不同型別的計算機之間交換RDF資訊。
RDF與“語義網路”
- 網路資訊具有確切的含義
- 網路資訊可以被計算機理解和處理
- 計算機可以整合來自網路的資訊
RDF使用Web識別符號(URI)來標識資源。 RDF使用屬性和屬性值描述資源。RDF資源,屬性和屬性值RDF使用Web識別符號(URI)標識事物,並使用屬性和屬性值描述資源。
RDF語句
資源,屬性和屬性值的組合形成語句(稱為語句的主題,謂詞和賓語)
RDF示例
以下是來自CD列表的兩個記錄:
標題 | 藝術家 | 國家 | 公司 | 價格 | 年份 |
---|---|---|---|---|---|
帝國脫衣舞 | Bob Dylan | 美國 | 哥倫比亞 | 10.90 | 1985 |
隱藏你的心 | Bonnie Tyler | 英國 | CBS Records | 9.90 | 1988 |
以下是RDF文件中的幾行:
<?xml version="1.0"?>
<rdf:RDF
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist>Bob Dylan</cd:artist>
<cd:country>USA</cd:country>
<cd:company>Columbia</cd:company>
<cd:price>10.90</cd:price>
<cd:year>1985</cd:year>
</rdf:Description>
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Hide your heart">
<cd:artist>Bonnie Tyler</cd:artist>
<cd:country>UK</cd:country>
<cd:company>CBS Records</cd:company>
<cd:price>9.90</cd:price>
<cd:year>1988</cd:year>
</rdf:Description>
...
</rdf:RDF>
RDF文件的第一行是XML宣告。 XML宣告後面是RDF文件的根元素:rdf:RDF。xmlns:cd名稱空間指定了帶有cd字首的元素來自名稱空間“http://www.recshop.fake/cd#”。rdf:Description元素包含了由rdf:about屬性標識的資源的描述。元素:cd:artist,cd:country,cd:company等是資源的屬性RDF文件,檢查您的語法,並生成您的RDF文件的表格和圖形檢視。
RDF元素
RDF的主要元素是根元素 <RDF>
和 <Description>
元素,它標識了一個資源。
<rdf:RDF>
元素
<rdf:RDF>
是RDF文件的根元素。 它定義XML文件為RDF文件。 它還包含對RDF名稱空間的引用:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
...描述放在這裡...
</rdf:RDF>
<rdf:Description>
元素
<rdf:Description>
元素使用 about
屬性標識一個資源。
<?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/Empire Burlesque">
<cd:artist>Bob Dylan</cd:artist>
<cd:country>USA</cd:country>
<cd:company>Columbia</cd:company>
<cd:price>10.90</cd:price>
<cd:year>1985</cd:year>
</rdf:Description>
</rdf:RDF>
元素 artist
,country
,company
,price
和 year
在 http://www.recshop.fake/cd#
名稱空間中定義。 此名稱空間位於RDF之外(不是RDF的一部分)。 元素 artist
,country
,company
,price
和 year
必須由其他人(公司,組織,個人等)定義。
屬性作為屬性
屬性元素也可以定義為屬性(而不是元素):
<?xml version="1.0"?>
<rdf:RDF
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque"
cd:artist="Bob Dylan" cd:country="USA"
cd:company="Columbia" cd:price="10.90"
cd:year="1985" />
</rdf:RDF>
屬性作為資源,屬性元素也可以定義為資源:
<?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/Empire Burlesque">
<cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />
...
...
</rdf:Description>
</rdf:RDF>
在上面的示例中,屬性 artist
沒有值,但是有一個對包含有關藝術家資訊的資源的引用。
RDF 容器
RDF容器用於描述一組事物。以下RDF元素用於描述組:<Bag>
、<Seq>
和<Alt>
。
<rdf:Bag>
元素
<rdf:Bag>
元素用於描述一個值列表,這些值不必按特定順序排列。
<rdf:Bag>
元素可以包含重複值。
示例
<?xml version="1.0"?>
<rdf:RDF
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>
元素
<rdf:Seq>
元素用於描述一個有序的值列表(例如,按字母順序)。
<rdf:Seq>
元素可以包含重複值
示例
<?xml version="1.0"?>
<rdf:RDF
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>
元素
<rdf:Alt>
元素用於描述備選值列表(使用者只能選擇其中一個值)。
示例
<?xml version="1.0"?>
<rdf:RDF
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 集合描述只能包含指定成員的組。
rdf:parseType="Collection"
屬性
容器說明包含的資源是成員,但並未規定其他成員不允許存在。
RDF 集合用於描述只能包含指定成員的組。
透過屬性 rdf:parseType="Collection"
描述集合。
示例
<?xml version="1.0"?>
<rdf:RDF
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>
RDF 模式和應用類
RDF 模式(RDFS)是對 RDF 的擴充套件。RDF 用類、屬性和值描述資源。此外,RDF 還需要一種方法來定義特定於應用程式的類和屬性。必須使用 RDF 的擴充套件來定義特定於應用程式的類和屬性。
RDF 模式(RDFS)
RDF 模式不提供實際的特定於應用程式的類和屬性。相反,RDF 模式提供了描述特定於應用程式的類和屬性的框架。RDF 模式中的類與物件導向程式語言中的類非常相似。這允許資源被定義為類的例項,並且類的子類。
RDFS 示例
以下示例演示了一些 RDFS 功能:
<?xml version="1.0"?>
<rdf:RDF
xml:base="http://www.animals.fake/animals#">
<rdf:Description rdf:ID="animal">
</rdf:Description>
<rdf:Description rdf:ID="horse">
<rdfs:subClassOf rdf:resource="#animal"/>
</rdf:Description>
</rdf:RDF>
在上面的示例中,“horse”資源是“animal”類的子類。
示例簡寫
由於 RDFS 類是 RDF 資源,我們可以簡化上面的示例,使用 rdfs:Class
代替 rdf:Description
,並且省略 rdf:type
資訊:
<?xml version="1.0"?>
<rdf:RDF
xml:base="http://www.animals.fake/animals#">
<rdfs:Class rdf:ID="animal" />
<rdfs:Class rdf:ID="horse">
<rdfs:subClassOf rdf:resource="#animal"/>
</rdfs:Class>
</rdf:RDF>
達布林核心
達布林核心後設資料倡議(DCMI)已經建立了一些預定義屬性來描述文件。RDF 是後設資料(關於資料的資料)。RDF 用於描述資訊資源。達布林核心是一組用於描述文件的預定義屬性。第一個達布林核心屬性是在 1995 年在俄亥俄州達布林的後設資料研討會上定義的,目前由達布林核心後設資料倡議維護。
屬性 | 定義 |
---|---|
Contributor | 對資源內容做出貢獻的實體 |
Coverage | 資源內容的範圍或覆蓋範圍 |
Creator | 對資源內容負主要責任的實體 |
Format | 資源的物理或數字表示 |
Date | 資源生命週期中的事件日期 |
Description | 資源內容的說明 |
Identifier | 在給定上下文中對資源的明確引用 |
Language | 資源的知識內容語言 |
Publisher | 使資源可用的實體 |
Relation | 到相關資源的引用 |
Rights | 資源所擁有的和持有的權利資訊 |
Source | 當前資源的來源參考 |
Subject | 資源內容的主題 |
Title | 資源的名稱 |
Type | 資源內容的性質或型別 |
快速檢視上面的表格表明,RDF 非常適合表示達布林核心資訊。
RDF 示例
以下示例演示了 RDF 文件中一些達布林核心屬性的使用:
<?xml version="1.0"?>
<rdf:RDF>
<rdf:Description rdf:about="http://example.org/resource">
<dc:description>W3Schools - Free tutorials</dc:description>
<dc:publisher>Refsnes Data as</dc:publisher>
<dc:date>2008-09-01</dc:date>
<dc:type>Web Development</dc:type>
<dc:format>text/html</dc:format>
<dc:language>en</dc:language>
</rdf:Description>
</rdf:RDF>
RDFS / RDF 類
元素 | 類 | 子類 |
---|---|---|
rdfs:Class | 所有類 | |
rdfs:Datatype | 資料型別 | 類 |
rdfs:Resource | 所有資源 | 類 |
rdfs:Container | 容器 | 資源 |
rdfs:Literal | 文字和數字的文字值 | 資源 |
rdf:List | 列表 | 資源 |
rdf:Property | 屬性 | 資源 |
rdf:Statement | 宣告 | 資源 |
rdf:Alt | 備選項容器 | 容器 |
rdf:Bag | 無序容器 | 容器 |
rdf:Seq | 有序容器 | 容器 |
rdfs:ContainerMembershipProperty | 容器成員屬性 | 屬性 |
rdf:XMLLiteral | XML 文字值 | 文字 |
RDFS / RDF 屬性
元素 | 域 | 範圍 | 描述 |
---|---|---|---|
rdfs:domain | 屬性 | 類 | 資源的域 |
rdfs:range | 屬性 | 類 | 資源的範圍 |
rdfs:subPropertyOf | 屬性 | 屬性 | 屬性的子屬性 |
rdfs:subClassOf | 類 | 類 | 資源是類的子類 |
rdfs:comment | 資源 | 文字 | 資源的人類可讀描述 |
rdfs:label | 資源 | 文字 | 資源的人類可讀標籤(名稱) |
rdfs:isDefinedBy | 資源 | 資源 | 資源的定義 |
rdfs:seeAlso | 資源 | 資源 | 關於資源的額外資訊 |
rdfs:member | 資源 | 資源 | 資源的成員 |
rdf:first | 列表 | 資源 | |
rdf:rest | 列表 | 列表 | |
rdf:subject | 宣告 | 資源 | 資源在 RDF 宣告中的主題 |
rdf:predicate | 宣告 | 資源 | 資源在 RDF 宣告中的謂詞 |
rdf:object | 宣告 | 資源 | 資源在 RDF 宣告中的物件 |
rdf:value | 資源 | 資源 | 用於值的屬性 |
rdf:type | 資源 | 類 | 資源是類的例項 |
RDF 屬性
屬性 | 描述 |
---|---|
rdf:about | 定義正在描述的資源 |
rdf:Description | 資源描述的容器 |
rdf:resource | 定義要 |
識別屬性的資源
| rdf:datatype | 定義元素的資料型別 |
| rdf:ID | 定義元素的 ID |
| rdf:li | 定義一個列表 |
| rdf:_n | 定義一個節點 |
| rdf:nodeID | 定義元素節點的 ID |
| rdf:parseType | 定義應如何解析元素 |
| rdf:RDF | RDF 文件的根 |
| xml:base | 定義 XML 基礎 |
| xml:lang | 定義元素內容的語言 |
最後
為了方便其他裝置和平臺的小夥伴觀看往期文章:
微信公眾號搜尋:Let us Coding
,關注後即可獲取最新文章推送
看完如果覺得有幫助,歡迎點贊、收藏、關注