RDF 参考手册


RDF参考手册

什么是RDF?

RDF全称为资源描述框架(Resource Description Framework),是一种用于描述万维网资源的语言。它采用三元组方式表示资源及其属性,其中三元组由主语(subject),谓语(predicate),宾语(object)组成。主语描述的是一个资源的URI,谓语描述的是主语和宾语之间的属性,宾语描述的是属性的值。

RDF语法

基本结构

RDF采用XML格式表示,每个RDF文档都由一个<rdf:RDF> 标签 开始和结束。一个RDF文档通常包含以下几个元素:

  • RDF文档的命名空间定义: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  • 资源声明:以<rdf:Description> 开始和结束,里面包含该资源的所有属性。
  • 资源名称:以一个resource的XML属性表示,例如 rdf:about (表示绝对URI) 或 rdf:ID(表示相对URI)。
  • 资源的属性: 以一个谓词URI为节点名称,对应的属性值以指定的标签为节点,例如<ex:title> (ex是一个URI的简写)。

举例

下面是一个简单的例子,表示一个人的名字:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:ex="http://example.org/people/">
 <rdf:Description rdf:about="http://example.org/people/JohnDoe">
    <ex:name>John Doe</ex:name>
 </rdf:Description>
</rdf:RDF>

在上面的例子中,“http://example.org/people/JohnDoe” 为该资源的URI名称,”ex:name” 是该资源的属性标签,”John Doe”是该资源的属性值。

RDF数据模型

RDF数据模型是基于图(graph)的数据模型,其中节点(node)表示资源,边(edge)表示资源间关系。在RDF中,节点可以是URI或者字面(literal)。边则代表资源之间的属性关系。例如下图:

rDFS_GRAPH.png

图中包含了两个资源,John和Mary。其中,每个资源都用一个URI表示。URI用于标识唯一的资源,通常以“http://”开头。除此之外,还有字面值属性 (literal property),代表那些没有URI标识的值。

RDF Schema

RDF Schema通常用于定义RDF的词汇表,可以用来验证和推理RDF数据。RDF Schema提供了表示类(class)和属性(property)的机制。其中类描述资源的类型,而属性描述资源之间的关系。RDF Schema提供了描述RDF数据类型和属性约束(如域和范围)等元素的方式。

例如下面的例子定义了Person类和name属性:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 xmlns:ex="http://example.org/people/">
 <rdf:Description rdf:about="http://example.org/people/JohnDoe"
   rdf:type="http://example.org/people/Person">
   <ex:name>John Doe</ex:name>
 </rdf:Description>
 <rdfs:Class rdf:ID="Person">
   <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource" />
 </rdfs:Class>
 <rdf:Property rdf:ID="name">
   <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Property" />
   <rdfs:domain rdf:resource="http://example.org/people/Person" />
   <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal" />
 </rdf:Property>
</rdf:RDF>

在上面的例子中,我们定义了Person类以及该类的一个属性name。Person类是Resource的子类,而name属性的域是Person类,它的范围是literal。同时,我们使用rdf:type来为资源声明类型,使用rdf:ID来为类和属性生成一个本地标识符。

RDFS和OWL

RDFS (RDF Schema)和OWL(Web Ontology Language) 是基于RDF的W3C推荐标准。RDFS提供了简单灵活的机制来描述资源的类 (class)和属性(property),而OWL则更加规范化,灵活的提供了更多的语言元素来支持本体 (ontology)。

总结

本文提供了RDF的基础知识和一些常用的元素和语法。学习RDF可以让您更好地理解Web上的复杂关系和数据,它为构建语义web奠定了基础,是一个广泛应用的语言。