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

来源:https://www.cnblogs.com/xiaowange/p/18236179
-Advertisement-
Play Games

**RDF(資源描述框架)**是一種用於機器理解網路資源的框架,使用XML編寫。它通過URI標識資源,用屬性描述資源,便於電腦應用程式處理信息。RDF在語義網上促進信息的確切含義和自動處理,使得網路信息可被整合。RDF語句由資源、屬性和屬性值組成。RDF文檔包括`<rdf:RDF>`根元素和`<r... ...


什麼是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,關註後即可獲取最新文章推送

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 各位熱愛 SeaTunnel 的小伙伴們,社區 5 月份月報來啦! SeaTunnel 正在迅猛發展,積極投入社區項目建設的小伙伴將促進SeaTunnel不斷提升數據同步的高可擴展性、高性能及高可靠性。歡迎關註每月月報更新,期待在下個月的Merge Star月度榜單看到你的身影哦~ SeaTunne ...
  • 本文分享自華為雲社區《DTSE Tech Talk × openGemini :從資料庫設計到性能調優,全面掌握openGemini應用開發最佳實踐》,作者:華為雲開源。 在本期《從資料庫設計到性能調優,全面掌握openGemini應用開發最佳實踐》的主題直播中,華為雲開源DTSE技術佈道師&ope ...
  • 本文分享自華為雲社區《【華為雲MySQL技術專欄】MySQL記憶體增長問題分析案例》,作者:GaussDB 資料庫。 前言 在現網環境中,偶爾會遇到客戶實例記憶體OOM(Out Of Memory,即記憶體耗盡或溢出)的情況。MySQL資料庫作為一款面向高併發應用場景的系統軟體,因其應用場景複雜且函數調用 ...
  • 前言 數據傳輸的數據格式有以下幾種常見的格式: JSON(JavaScript Object Notation):JSON是一種輕量級的數據交換格式,可讀性高且易於解析。它使用鍵值對的方式表示數據,並且支持多層嵌套。 XML(eXtensible Markup Language):XML是一種標 ...
  • 一、背景信息 早幾年買的小米盒子3增強版,放在家裡也沒怎麼用,娃最近總要看動畫片,網上去找一些軟體裝上了,但速度很慢,遙控器按下去要等個幾秒才能響應,系統里還到處都是廣告,就想著能不能刷下。 具體配置如下: 型號:小米盒子3增強版 (MDZ-18-AA) 安卓版本:5.2 小米版本:1.5.93 內 ...
  • 在Android桌面Launcher源碼淺析中介紹了Android的桌面程式Launcher是如何響應用戶點擊事件並啟動App的,這篇文章繼續介紹App在Android系統層的啟動流程。 一、啟動流程 sequenceDiagram participant User participant Laun ...
  • 前言 容器類庫是指一組用於存儲和管理數據的數據結構和演算法。它們提供了各種不同類型的容器,如數組、鏈表、樹、圖等,以及相關的操作和功能,如查找、插入、刪除、排序等。 容器類庫還可以包含其他數據結構和演算法,如堆、樹、圖等,以及相關的操作和功能,如排序、查找、遍歷等。它們可以用於解決各種不同的問題和場 ...
  • 一、併發 併發是指在一個時間段內,多個事件、任務或操作同時進行或者交替進行的方式。在電腦科學中,特指多個任務或程式同時執行的能力。併發可以提升系統的吞吐量、響應速度和資源利用率,並能更好地處理多用戶、多線程和分散式的場景。常見的併發模型有多線程、多進程、多任務、協程等。 1.併發概述 Ha ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...