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)。边则代表资源之间的属性关系。例如下图:
图中包含了两个资源,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奠定了基础,是一个广泛应用的语言。