RDF简介

颜新
2023-12-01

RDF简介

RDF, Resource Description Framework, 资源描述框架,是一个数据模型,由一系列对象-属性-值三元组

或者可以称为主语 谓语 宾语三元组组成。刻画RDF可以用XML语法或者也可以使用turtle,N-Triple语法。

RDF,只是简单的三元组堆叠而成,很难针对某个特定领域进行推理。

而我下一篇介绍的RDFS,可以用来描述特定领域的语义,并据此进行简单得推理。

RDF 三元组

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描述RDF的例子

<? 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容器用于描述一组事物。

  • 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 集合用于描述仅包含指定成员的组。集合是通过属性 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>
 类似资料: