RDF, Resource Description Framework, 资源描述框架,是一个数据模型,由一系列对象-属性-值三元组
或者可以称为主语 谓语 宾语三元组组成。刻画RDF可以用XML语法或者也可以使用turtle,N-Triple语法。
RDF,只是简单的三元组堆叠而成,很难针对某个特定领域进行推理。
而我下一篇介绍的RDFS,可以用来描述特定领域的语义,并据此进行简单得推理。
IRI(International resource identifier)是国际化资源标识符,是URI和URL得泛化和推广
在互联网中,每个IRI都唯一标识一个资源类似于我们的身份证。
blank node表示匿名资源(anonymous resource)
一个三元组得三个元素分别为主语(Subject), 谓语(Predicate), 宾语(Object)
Subject可以是: IRI, blank node
Predicate只能是: IRI(International Resource Identifiers)
Object可以是: literals, IRI, blank node
<? xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:info="http://zy.example.com/info#"
xmlns:rel="http://zy.example.com/rel#">
<rdf:Description rdf:about="http://zy.example.com/person/Tom">
<info:name>Tom</info:name>
<info:job>worker</info:job>
<rel:fatherof rdf:resource="http://zy.example.com/person/Jim"></rel:fatherof>
</rdf:Description>
</rdf:RDF>
需要注意的几点
RDF文件都是表示为一个带有标签rdf:RDF的XML元素
rdf:Description标签表示对一个资源进行描述
rdf:about属性用于引用已经存在的资源
rdf:nodeID用于创建匿名资源
创建匿名资源<rdf:Description rdf:nodeID="b"></rdf:Description>
引用匿名资源<rel:fatherof rdf:nodeID="b"/>
rdf:resource用于引用一个资源
RDF容器用于描述一组事物。
rdf:Bag元素用于描述一个规定为无序的值的列表,元素可以多次出现
<?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/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元素用于描述一个规定为有序的值的列表(已经排好序),元素可以多次出现
<?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/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元素用于一个可替换的值的列表(用户仅仅可以选择这些值的其中之一)
<?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/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:parseType=“Collection” 来描述的
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
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>