RDF入门(三)

简介

RDF模式为RDF数据提供了一个数据建模词汇表,同时也是RDF的语义扩展,它提供了描述相关资源组以及这些资源之间的关系的机制。

资源可以被分组为类,类的成员被称为该类的实例,类本身就是资源。它们通常由IRI识别,并可以使用RDF属性进行描述。rdf:type 属性可用于声明资源是类的实例。

RDF区分类与它的实例集,与每个类现相关联的是一个集合,称为该类的扩展,它是该类的实例集。两个类可能含有相同的实例集但它们是不同的类。一个类可以是其自身的类扩展中的一个成员,也可以是其本身的一个实例。属于RDF模式类的资源组本身就是一个被称为 rdfs:Class 的类。

所有数据类型都是类。属于一个数据类型的类的实例是该数据类型的值空间的成员。

rdfs:Resource

RDF描述的所有东西都被称为资源,并且是类 rdfs:Resource 的实例。其他所有类都是该类的子类。 rdfs:Resourcerdfs:Class 类的实例。

rdfs:Class

该类是属于RDF类的资源类。 rdfs:Classrdfs:Class 类的实例。

rdfs:Literal

该类是Literal值的类,例如String和Integer。rdfs:Literalrdfs:Class 的实例,也是 rdfs:Resource 的子类。

rdfs:Datatype

该类是数据类型类,其中所有实例都对应于RDF模型中的数据类型。该类同时是 rdf:Class 类的子类和实例,并且该类的每个实例都是 rdfs:Literal 类的子类。

rdf:langString

该类是表示语言标记的字符串值的类,同时是 rdfs:Datatype 类的实例和 rdfs:Literal 类的子类。

rdf:HTML

该类是表示HTML文本值的类,同时是 rdfs:Datatype 类的实例和 rdfs:Literal 类的子类。

rdf:XMLLiteral

该类是表示XML文本值的类,同时是 rdfs:Datatype 类的实例和 rdfs:Literal 类的子类。

rdf:Property

该类是表示RDF属性的类,同时是 rdfs:Class 类的实例。

属性

RDF抽象语法将属性定义为描述subject和object的关系。

rdfs:range

该类是 rdf:Property 类的实例,用于声明属性的值是一个或多个类的实例。例如,三元组 P rdfs:range C 声明P是 rdf:Property 类的实例,C是 rdf:Class 类的实例,由谓词为P的三元组的object表示的资源是类C的实例。

rdfs:domain

该类是 rdf:Property 类的实例,用于声明任何具有给定属性的资源都是一个或多个类的实例。例如,三元组 P rdfs:domain C 声明P是 rdf:Property 类的实例,C是 rdf:Class 类的实例,由谓词为P的三元组的subject所表示的资源是C类的实例。

rdf:type

该类是 rdf:Property 类的实例,用于声明一个资源是某个类的实例。例如,三元组 R rdf:type C 表示C是 rdfs:Class类的实例,且R是C的实例。

rdfs:typerdfs:domainrdfs:Resourcerdfs:typerdfs:rangerdfs:Class

rdfs:subClassOf

该属性是 rdfs:Property 的实例,用于声明一个类的所有实例都是另一个类的实例。例如,三元组 C1 rdfs:subClassOf C2 声明C1、C2都是 rdfs:Class 类的实例且C1是C2的子类,该属性可传递。

该属性的 rdfs:domainrdfs:range 都是 rdfs:Class

rdfs:subPropertyOf

该属性是 rdfs:Property 的实例,用于声明与一个属性相关的所有资源也与另一个属性相关。例如,三元组 P1 rdfs:subPropertyOf P2 声明P1、P2都是 rdfs:Property 类的实例且P1是P2的子属性,该属性可传递。

该属性的 rdfs:domainrdfs:range 都是 rdfs:Property

rdfs:label

该类是 rdfs:Property 的实例,用于提供资源名称的人类可读版本。例如,三元组 R rdfs:label L 声明L是R的人类可读版本。

该类的 rdfs:domainrdfs:Resource。该类的 rdfs:rangerdfs:Literal

rdfs:comment

该类是 rdfs:Property 的实例,用于提供资源的人类可读描述。例如,三元组 R rdfs:label L 声明L是R的人类可读描述。

该类的 rdfs:domainrdfs:Resource。该类的 rdfs:rangerdfs:Literal

其他词汇表

本节定义了其他的类和属性,包括用于表示容器和RDF语句的构造,以及用于在万维网中部署RDF词汇表描述的构造。

容器类和属性

RDF容器是用于表示集合的资源。同一资源可能多次出现在容器中。

这里定义了三种不同类型的容器,三种容器的形式语义相同,但不同的类可以用来表示进一步的信息。

  • rdf:Bag:表示无序容器。
  • rdf:Seq:表示该容器按照容器中的成员属性进行显式的数值排序。
  • rdf:Alt:表示容器的典型操作是选择一个元素。

RDF容器由以下类和属性定义:

rdfs:Container

该类是其他类的父类。

rdf:Bag

该类通常向读者表明该容器是无序的。

rdf:Seq

该类通常向读者表明该容器按照容器中的成员属性进行显式的数值排序。

rdf:Alt

该类通常向读者表明该容器的典型操作是选择一个元素。默认选择容器中的第一个元素。

rdfs:ContainerMembershipProperty

该类用于声明资源是容器的成员,且它是 rdf:property 类的子类。例如,三元组 C rdf:_nnn O 中, nnn 是一个整数大于0且不含前导零的十进制表示,声明O是容器C的一个成员。

rdfs:member

该属性是 rdfs:Property 的实例,是所有容器成员属性的父属性。

该属性的 rdfs:domainrdfs:range 都是 rdfs:Resource

RDF集合

RDF集合表示一系列items。

rdf:List

该类是 rdfs:Class 类的实例,用于构建对列表和其他类似列表的结构的描述。

rdf:first

该类是 rdfs:Property 类的实例,用于构建对列表和其他类似列表的结构的描述。例如,三元组 L rdf:first O 声明L和O之间存在第一元素关系。

该类的 rdfs:domainrdfs:List。该类的 rdfs:rangerdfs:Resource

rdf:rest

该类是 rdfs:Property 类的实例,用于构建对列表和其他类似列表的结构的描述。例如,三元组 L rdf:rest O 声明L和O之间存在剩余列表关系。

该属性的 rdfs:domainrdfs:range 都是 rdfs:List

rdf:nil

该资源是 rdfs:List 类的实例,用于表示空列表或其他类似列表的结构。例如,三元组 L rdf:rest rdf:nil 声明L是 rdf:List 含有一个项的实例,该项能被 rdf:first 属性表示。

具体词汇表

rdf:Statement

该类是 rdfs:Class 类的实例,用于表示RDF语句。RDF语句的subject是 rdf:Resource 类的实例,predicate是 rdf:Property 类的实例,object是 rdf:Resource 类的实例。

rdf:subject

该类是 rdfs:Resource 类的实例,用于陈述RDF语句的subject。例如,三元组 S rdf:subject R 声明S是 rdf:Statement 的实例,S的subject是R。

该类的 rdfs:domainrdfs:Statement。该类的 rdfs:rangerdfs:Resource

rdf:predicate

该类是 rdfs:Property 类的实例,用于陈述RDF语句的predicate。例如,三元组 S rdf:predicate P 声明S是 rdf:Statement 的实例,P是 rdfs:Property 的实例,S的predicate是P。

该类的 rdfs:domainrdfs:Statement。该类的 rdfs:rangerdfs:Resource

rdf:object

该类是 rdfs:Resource 类的实例,用于陈述RDF语句的object。例如,三元组 S rdf:Object O 声明S是 rdf:Statement 的实例,S的object是O。

该类的 rdfs:domainrdfs:Statement。该类的 rdfs:rangerdfs:Resource

实用属性

rdfs:seeAlso

该属性是 rdfs:Property 类的实例,用于表示可能提供有关主题资源的附加信息的资源。例如,三元组 S rdfs:seeAlso O 声明资源O可以提供关于S的附加信息。

该属性的 rdfs:domainrdfs:range 都是 rdfs:Resource

rdfs:isDefinedBy

该类是 rdfs:Property 类的实例,用于表示定义subject资源的资源,且它是 rdfs:seeAlso 的子属性 。例如,三元组 S rdfs:isDefinedBy O 声明资源O定义了S。

该类的 rdfs:domainrdfs:range 都是 rdfs:Resource

rdf:value

该属性是 rdfs:Property 类的实例,用于描述结构化值。

该属性的 rdfs:domainrdfs:range 都是 rdfs:Resource

RDF模式总结

RDF类

RDF属性

结语

本读物详细描述了RDF模式中的类、属性以及其他词汇表的内容,并最终采用了表格来总结整本读物的内容。