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

来源: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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...