**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: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
,關註後即可獲取最新文章推送
看完如果覺得有幫助,歡迎點贊、收藏、關註