RDF入门(三)
简介
RDF模式为RDF数据提供了一个数据建模词汇表,同时也是RDF的语义扩展,它提供了描述相关资源组以及这些资源之间的关系的机制。
类
资源可以被分组为类,类的成员被称为该类的实例,类本身就是资源。它们通常由IRI识别,并可以使用RDF属性进行描述。rdf:type
属性可用于声明资源是类的实例。
RDF区分类与它的实例集,与每个类现相关联的是一个集合,称为该类的扩展,它是该类的实例集。两个类可能含有相同的实例集但它们是不同的类。一个类可以是其自身的类扩展中的一个成员,也可以是其本身的一个实例。属于RDF模式类的资源组本身就是一个被称为 rdfs:Class
的类。
所有数据类型都是类。属于一个数据类型的类的实例是该数据类型的值空间的成员。
rdfs:Resource
RDF描述的所有东西都被称为资源,并且是类 rdfs:Resource
的实例。其他所有类都是该类的子类。 rdfs:Resource
是 rdfs:Class
类的实例。
rdfs:Class
该类是属于RDF类的资源类。 rdfs:Class
是 rdfs:Class
类的实例。
rdfs:Literal
该类是Literal值的类,例如String和Integer。rdfs:Literal
是 rdfs: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:type
的 rdfs:domain
是 rdfs:Resource
。 rdfs:type
的 rdfs:range
是 rdfs:Class
。
rdfs:subClassOf
该属性是 rdfs:Property
的实例,用于声明一个类的所有实例都是另一个类的实例。例如,三元组 C1 rdfs:subClassOf C2
声明C1、C2都是 rdfs:Class
类的实例且C1是C2的子类,该属性可传递。
该属性的 rdfs:domain
和 rdfs:range
都是 rdfs:Class
。
rdfs:subPropertyOf
该属性是 rdfs:Property
的实例,用于声明与一个属性相关的所有资源也与另一个属性相关。例如,三元组 P1 rdfs:subPropertyOf P2
声明P1、P2都是 rdfs:Property
类的实例且P1是P2的子属性,该属性可传递。
该属性的 rdfs:domain
和 rdfs:range
都是 rdfs:Property
。
rdfs:label
该类是 rdfs:Property
的实例,用于提供资源名称的人类可读版本。例如,三元组 R rdfs:label L
声明L是R的人类可读版本。
该类的 rdfs:domain
是 rdfs:Resource
。该类的 rdfs:range
是 rdfs:Literal
。
rdfs:comment
该类是 rdfs:Property
的实例,用于提供资源的人类可读描述。例如,三元组 R rdfs:label L
声明L是R的人类可读描述。
该类的 rdfs:domain
是 rdfs:Resource
。该类的 rdfs:range
是 rdfs: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:domain
和 rdfs:range
都是 rdfs:Resource
。
RDF集合
RDF集合表示一系列items。
rdf:List
该类是 rdfs:Class
类的实例,用于构建对列表和其他类似列表的结构的描述。
rdf:first
该类是 rdfs:Property
类的实例,用于构建对列表和其他类似列表的结构的描述。例如,三元组 L rdf:first O
声明L和O之间存在第一元素关系。
该类的 rdfs:domain
是 rdfs:List
。该类的 rdfs:range
是 rdfs:Resource
。
rdf:rest
该类是 rdfs:Property
类的实例,用于构建对列表和其他类似列表的结构的描述。例如,三元组 L rdf:rest O
声明L和O之间存在剩余列表关系。
该属性的 rdfs:domain
和 rdfs: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:domain
是 rdfs:Statement
。该类的 rdfs:range
是 rdfs:Resource
。
rdf:predicate
该类是 rdfs:Property
类的实例,用于陈述RDF语句的predicate。例如,三元组 S rdf:predicate P
声明S是 rdf:Statement
的实例,P是 rdfs:Property
的实例,S的predicate是P。
该类的 rdfs:domain
是 rdfs:Statement
。该类的 rdfs:range
是 rdfs:Resource
。
rdf:object
该类是 rdfs:Resource
类的实例,用于陈述RDF语句的object。例如,三元组 S rdf:Object O
声明S是 rdf:Statement
的实例,S的object是O。
该类的 rdfs:domain
是 rdfs:Statement
。该类的 rdfs:range
是 rdfs:Resource
。
实用属性
rdfs:seeAlso
该属性是 rdfs:Property
类的实例,用于表示可能提供有关主题资源的附加信息的资源。例如,三元组 S rdfs:seeAlso O
声明资源O可以提供关于S的附加信息。
该属性的 rdfs:domain
和 rdfs:range
都是 rdfs:Resource
。
rdfs:isDefinedBy
该类是 rdfs:Property
类的实例,用于表示定义subject资源的资源,且它是 rdfs:seeAlso
的子属性 。例如,三元组 S rdfs:isDefinedBy O
声明资源O定义了S。
该类的 rdfs:domain
和 rdfs:range
都是 rdfs:Resource
。
rdf:value
该属性是 rdfs:Property
类的实例,用于描述结构化值。
该属性的 rdfs:domain
和 rdfs:range
都是 rdfs:Resource
。
RDF模式总结
RDF类
RDF属性
结语
本读物详细描述了RDF模式中的类、属性以及其他词汇表的内容,并最终采用了表格来总结整本读物的内容。