上一节:

  XML RDF

  • 定义和使用

    RDF 代表资源描述框架
    RDF 是用于描述Web资源的框架
    RDF 旨在供计算机阅读和理解
    RDF 并非旨在向人们展示
    RDF 用 XML 编写
    RDF 是2004年2月10日以来的W3C建议。
    RDF 文档以 XML 编写; RDF 使用的 XML 语言称为 RDF/XML。
    通过使用XML,可以使用不同类型的操作系统和应用程序语言在不同类型的计算机之间轻松交换RDF信息。
    RDF 使用 Web 标识符(URI)标识事物,并使用属性和属性值描述资源。
    资源,属性和属性值的解释:
    • 资源是可以具有URI的任何内容,例如 "http://www.w3schools.com/rdf"
    • 属性是具有名称的资源,例如 "author" 或 "homepage"
    • 属性值是属性的值,例如 "Jan Egil Refsnes" 或 "http://www.w3schools.com”(请注意,属性值可以是其他资源)
    以下RDF文档可以描述资源 "http://www.w3schools.com/rdf":
    <?xml version="1.0"?>
    
    <RDF>
      <Description about="http://www.w3schools.com/rdf">
        <author>Jan Egil Refsnes</author>
        <homepage>http://www.w3schools.com</homepage>
      </Description>
    </RDF>
    
    上面的示例已简化。 命名空间被省略。
  • RDF 声明

    资源,属性和属性值的组合形成一个语句(称为语句的主题,谓词和宾语)。
    让我们看一些示例语句以获得更好的理解:
    声明:"http://www.w3schools.com/rdf 的作者是 Jan Egil Refsnes"。
    以上声明的主题是:http://www.w3schools.com/rdf
    谓词为:作者
    对象是:Jan Egil Refsnes
    声明:"http://www.w3schools.com/rdf的主页是http://www.w3schools.com"。
    以上声明的主题是:http://www.w3schools.com/rdf
    谓词是:首页
    该对象是:http://www.w3schools.com
    这是CD列表中的两条记录:
    标题 作家 国家 公司 价格 年份
    Empire Burlesque Bob Dylan USA Columbia 10.90 1985
    Hide your heart Bonnie Tyler UK CBS Records 9.90 1988
    <?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/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>
    
    RDF 文档的第一行是 XML 声明。 XML 声明后跟 RDF 文档的根元素:<rdf:RDF>。
    xmlns:rdf 命名空间指定具有rdf前缀的元素来自命名空间 "http://www.w3.org/1999/02/22-rdf-syntax-ns#"。
    xmlns:cd 命名空间指定具有cd前缀的元素来自命名空间 "http://www.recshop.fake/cd#"。
    <rdf:Description> 元素包含对由 rdf:about 属性标识的资源的描述。
    <cd:artist>,<cd:country>,<cd:company>等元素是资源的属性。
  • RDF 元素

    RDF 的主要元素是根元素 <RDF> 和 <Description>元素,它们标识资源。
    <rdf:RDF> 是RDF文档的根元素。 它将XML文档定义为RDF文档。 它还包含对RDF名称空间的引用:
    <?xml version="1.0"?>
    
    <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      ...说明在这里...
    </rdf:RDF>
    
    <rdf:Description> 元素使用about属性标识资源。
    <rdf:Description> 元素包含描述资源的元素:
    <?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/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:RDF>
    
    元素,艺术家,国家,公司,价格和年份在 http://www.recshop.fake/cd# 名称空间中定义。 该名称空间在RDF之外(而不是RDF的一部分)。 RDF仅定义框架。 元素,艺术家,国家,公司,价格和年份必须由其他人(公司,组织,个人等)定义。
    属性元素也可以定义为属性(而不是元素):
    <?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/Empire Burlesque"
    cd:artist="Bob Dylan" cd:country="USA"
    cd:company="Columbia" cd:price="10.90"
    cd:year="1985" />
    
    </rdf:RDF>
    
    属性元素也可以定义为资源:
    <?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/Empire Burlesque">
      <cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />
      ...
      ...
    </rdf:Description>
    
    </rdf:RDF>
    
    在上面的示例中,属性艺术家没有值,但是对包含有关艺术家的信息的资源的引用。
    RDF 容器用于描述事物组。
    以下RDF元素用于描述组:<Bag>,<Seq>和<Alt>。
    <rdf:Bag> 元素用于描述不必按特定顺序排列的值列表。
    <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> 元素用于描述值的有序列表(例如,按字母顺序)。
    <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>
    
  • RDF架构(RDFS)

    RDF 架构(RDFS)是 RDF 的扩展。
    RDF 用类,属性和值描述资源。
    另外,RDF 还需要一种方法来定义特定于应用程序的类和属性。 必须使用 RDF 的扩展定义特定于应用程序的类和属性。
    一种此类扩展是 RDF Schema。
    RDF Schema 不提供实际的特定于应用程序的类和属性。
    相反,RDF Schema 提供了描述特定于应用程序的类和属性的框架。
    RDF Schema 中的类非常类似于面向对象的编程语言中的类。 这允许将资源定义为类的实例以及类的子类。
    下面的示例演示了一些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(动物)" 的子类。
    由于 RDFS 类是 RDF 资源,因此我们可以使用 rdfs:Class 而不是 rdf:Description 来简化上述示例,并删除 rdf:type 信息:
    <?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#">
    
    <rdfs:Class rdf:ID="animal" />
    
    <rdfs:Class rdf:ID="horse">
      <rdfs:subClassOf rdf:resource="#animal"/>
    </rdfs:Class>
    
    </rdf:RDF>
    
    下面的示例演示了RDF文档中某些Dublin Core属性的用法:
    <?xml version="1.0"?>
    
    <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc= "http://purl.org/dc/elements/1.1/">
    
    <rdf:Description rdf:about="http://www.w3schools.com">
      <dc:description>W3Schools - Free tutorials</dc:description>
      <dc:publisher>Refsnes Data as</dc:publisher>
      <dc:date>2008-09-01</dc:date>
      <dc:type>Web Development</dc:type>
      <dc:format>text/html</dc:format>
      <dc:language>en</dc:language>
    </rdf:Description>
    
    </rdf:RDF>
    
  • RDFS/RDF 类

    元素 子类
    rdfs:Class All classes  
    rdfs:Datatype Data types Class
    rdfs:Resource All resources Class
    rdfs:Container Containers Resource
    rdfs:Literal Literal values (text and numbers) Resource
    rdf:List Lists Resource
    rdf:Property Properties Resource
    rdf:Statement Statements Resource
    rdf:Alt Containers of alternatives Container
    rdf:Bag Unordered containers Container
    rdf:Seq Ordered containers Container
    rdfs:ContainerMembershipProperty Container membership properties Property
    rdf:XMLLiteral XML literal values Literal
  • RDFS/RDF 属性

    元素 域名 范围 描述
    Element Domain Range Description
    rdfs:domain Property Class 资源的领域
    rdfs:range Property Class 资源范围
    rdfs:subPropertyOf Property Property 该属性是属性的子属性
    rdfs:subClassOf Class Class 资源是类的子类
    rdfs:comment Resource Literal 人类可读的资源描述
    rdfs:label Resource Literal 资源的人类可读标签(名称)
    rdfs:isDefinedBy Resource Resource 资源的定义
    rdfs:seeAlso Resource Resource 有关资源的其他信息
    rdfs:member Resource Resource 资源成员
    rdf:first List Resource  
    rdf:rest List List  
    rdf:subject Statement Resource RDF声明中资源的主题
    rdf:predicate Statement Resource RDF语句中资源的谓词
    rdf:object Statement Resource RDF语句中资源的对象
    rdf:value Resource Resource 用于值的属性
    rdf:type Resource Class 资源是类的实例
上一节: