1. 什么是RDF
REF是用于描述web资源的w3c标准,使用xml编写
2. RDF规则
RDF使用web标识符来标识事物,并通过属性和属性值来描述资源
- 资源:可拥有URI的任何事物(可在web中被标识的数据)
- 属性:拥有名称的资源
- 属性值:某个属性的取值
eg:
<?xml version="1.0"?>
<RDF>
<Description about="https://www.runoob.com//rdf">
<author>Jan Egil Refsnes</author>
<homepage>https://www.runoob.com/</homepage>
</Description>
</RDF>
该示例描述了一个资源
https://www.runoob.com//rdf
该资源所被描述的内容即为其属性author
和homepage
,其值被包含在标签中
假如某个URIhttp://www.recshop.fake/cd#
之下有两个资源如下所示
标题 | 艺术家 | 国家 | 公司 | 价格 | 年份 |
---|---|---|---|---|---|
Empire Burlesque | Bob Dylan | USA | Columbia | 10.90 | 1985 |
Hide your heart | Bonnie Tyler | UK | CBS Records | 9.90 | 1988 |
以上两个资源所对应的RDF描述则如下所示
<?xml version="1.0"?>
<!-- 第一行为xml声明 -->
<!-- 然后紧跟着 rdf:RDF RDF文档的根元素 -->
<!-- xmlns:rdf 指明了带有rdf前缀的元素所来自的命名空间 -->
<!-- xmlns:cd 指明了带有cd前缀的元素所来自的命名空间 -->
<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所标识的资源的描述 -->
<!-- 其内部的元素均为属性名包含属性值的形式 -->
<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>
3. RDF元素
- <rdf:RDF>: RDF文档的根元素,将xml文档定义为RDF文档,该元素包含了对于RDF命名空间的引用
- <rdf:Description>: 该元素通过其about属性标识要描述的资源,其内部包含要描述的资源的元素
- 属性:属性元素即为rdf所要描述的内容,该部分可以作为<rdf:Description>自闭和标签的内部属性,也可以由一对闭合的<rdf:Description>标签包含作为子标签,同时也可以使用其他rdf资源作为其值
eg:
<!-- 上个示例为子标签包含 -->
<!-- 本实例为作为属性值 -->
<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:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />
...
...
</rdf:Description>
4. RDF容器
RDF容器用于描述一组事物,例如所描述的资源的某个属性有着多个值
- <rdf:Bag>:该元素用于描述一个规定为无序的值的列表,可包含重复的元素
<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:Seq>:该元素用于描述一个规定为有序的值的列表,可包含重复的值
<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:Alt>:该元素用于描述一个可替换的值的列表(用户只能选择列出的值中的一个)
<rdf:Descriptio
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:Descriptio>
5. RDF集合
RDF容器规定了所包含的资源为成员,但没有规定其他成员是不被允许的
而RDF集合则用于描述仅包含指定成员的组,其他成员是不被允许的
集合通过rdf:parseType="Collection
来描述
<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>
6. RDF Schema (RDFS)
RDFS是对RDF的一种扩展
RDF通过类,属性和值来描述资源,此外还需要一种定义应用程序的专业的类和属性的方法,RDFS就是这样一种扩展
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.animals.fake/animals#">
<rdf:Description rdf:ID="animal">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Description>
<rdf:Description rdf:ID="horse">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#animal"/>
</rdf:Description>
</rdf:RDF>
horse是animal的子类
都柏林核心元数据倡议
一套供描述文档的预定义属性
属性 | 定义 |
---|---|
Contributor | 一个负责为资源内容作出贡献的实体(如作者)。 |
Coverage | 资源内容的氛围或作用域 |
Creator | 一个主要负责创建资源内容的实体。 |
Format | 物理或数字的资源表现形式。 |
Date | 在资源生命周期中某事件的日期。 |
Description | 对资源内容的说明。 |
Identifier | 一个对在给定上下文中的资源的明确引用 |
Language | 资源智力内容所用的语言。 |
Publisher | 一个负责使得资源内容可用的实体 |
Relation | 一个对某个相关资源的引用 |
Rights | 有关保留在资源之内和之上的权利的信息 |
Source | 一个对作为目前资源的来源的资源引用。 |
Subject | 一个资源内容的主题 |
Title | 一个给资源起的名称 |
Type | 资源内容的种类或类型。 |