資源描述框架的用途及實際應用解析

小万哥丶發表於2024-06-06

什麼是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:artistcd:countrycd: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>

元素 artistcountrycompanypriceyearhttp://www.recshop.fake/cd# 名稱空間中定義。 此名稱空間位於RDF之外(不是RDF的一部分)。 元素 artistcountrycompanypriceyear 必須由其他人(公司,組織,個人等)定義。

屬性作為屬性
屬性元素也可以定義為屬性(而不是元素):

<?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,關注後即可獲取最新文章推送

看完如果覺得有幫助,歡迎點贊、收藏、關注

相關文章