Copyright © 2004-2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
RDF Schema 为 RDF 数据提供一种数据建模词汇表。RDF Schema 是基本 RDF 词汇表的扩展。
本节描述本文档在发布时的状态。当前 W3C 出版物列表以及本技术报告的最新修订版可在 W3C 标准与草案索引中找到。
本文档是 2014 年 RDF Schema 推荐标准的编辑版本。此次修订的目的是使本文档 可作为 RDF 1.2 文档集的一部分提供。变更 仅限于勘误、修订引用、术语更新以及对 引言的调整。 文档标题已从 RDF Schema 1.1 更改为 RDF 1.2 Schema。 文档的技术内容未发生变化。变更详情 列在变更一节中。 由于对本文档的编辑不构成技术 变更,主任决定不需要新的实现报告。
本文档由 RDF & SPARQL 工作组 作为工作草案发布,并使用 推荐标准轨道。
作为工作草案发布并不 意味着得到 W3C 及其成员的认可。
这是一份草案文档,可能随时被其他 文档更新、替换或废弃。除作为正在进行中的工作外, 不宜引用本文档。 此即将发布的推荐标准的未来更新可能会纳入 新特性。
本文档由一个根据 W3C 专利 政策运作的工作组制作。 W3C 维护一份 公开的专利 披露清单, 其中列出与该组交付物相关的任何专利披露; 该页面还包括 披露专利的说明。任何实际 知悉某项专利,且认为该专利包含 基本权利要求的个人, 必须按照 W3C 专利政策第 6 节 披露该信息。
本文档受 2025 年 8 月 18 日 W3C 流程文档约束。
RDF Schema 为 RDF 数据提供一种数据建模词汇表。 它由若干配套文档补充,这些文档 描述 RDF 的基本概念和抽象语法 [RDF12-CONCEPTS]、RDF 的形式语义 [RDF12-SEMANTICS],以及 RDF 的各种具体语法,例如 Turtle [RDF12-TURTLE]、 TriG、[RDF12-TRIG] 和 JSON-LD [JSON-LD11]。RDF 入门 [RDF12-PRIMER] 对本文档中规定的概念提供非正式介绍和 使用示例。
本文档服务于两个互补目的:
rdf: 和
rdfs: 命名空间内定义的所有术语,包括与
本体构建相关的术语,以及在
RDF 应用中广泛使用的通用术语。
本文档旨在为那些认为形式语义 规范 [RDF12-SEMANTICS] 令人望而生畏的读者,提供一份清晰的 RDF Schema 规范。因此,本文档会重复 RDF 语义规范中同样规定的材料。如果本文档 与 RDF 语义规范之间存在不一致,则应以 RDF 语义规范 为准。
RDF Schema 是 RDF 的一种语义 扩展。它提供了用于描述相关资源组 以及这些资源之间关系的机制。RDF Schema 使用本文档中描述的术语以 RDF 编写。这些资源用于 确定其他资源的特征,例如属性的定义域 和值域。
RDF Schema 的类和属性系统类似于 Java 等
面向对象编程语言的类型系统。RDF
Schema 与许多此类系统不同,因为它并不是根据
类的实例可能具有的属性来定义类,而是根据
属性所适用的资源类来描述
属性。这正是本规范中描述的定义域
和值域
机制的作用。例如,我们可以
定义 eg:author 属性,使其定义域为 eg:Document
且值域为
eg:Person;而经典的面向对象系统可能
通常会定义一个 eg:Book 类,并带有一个名为
eg:author、类型为 eg:Person 的属性。使用 RDF
方法,其他人之后很容易定义额外的
属性,使其定义域为 eg:Document 或值域为
eg:Person。这可以在无需重新定义
这些类的原始描述的情况下完成。RDF 以属性为中心的方法的一个好处是,
它
允许任何人扩展对现有资源的描述,这是
Web 的
架构原则之一 [RDF-NOT]。
然而,RDF Schema 还在 rdf: 和 rdfs: 命名空间中包含大量术语,用以支持更广泛的 RDF 功能 和通用数据表示需求。这些术语并不专门 绑定于本体规范,而是在 RDF 更广泛的 架构中发挥关键作用。
本规范不试图枚举表示 RDF 类和属性含义的所有可能形式。 相反,RDF Schema 的策略是 承认有许多技术可以用来描述类和属性的含义。 更丰富的词汇表或“本体” 语言,例如 OWL [OWL2-OVERVIEW]、 推理规则 语言和其他形式体系(例如时序逻辑)都将 促进我们捕获 Web 中 数据有意义泛化的能力。
本规范中定义的语言由一组
RDF 资源组成,这些资源可用于在
应用特定的 RDF 词汇表中描述其他 RDF 资源。核心词汇表定义在
此处非正式称为 rdfs 的命名空间中。
RDF 词汇表中的 IRI 通常以 一个称为命名空间 IRI 的公共子串开头。 按照约定,某些命名空间 IRI 会关联一个称为命名空间前缀的短名称。
| 命名空间前缀 | 命名空间 IRI |
|---|---|
| rdf | http://www.w3.org/1999/02/22-rdf-syntax-ns#
|
| rdfs | http://www.w3.org/2000/01/rdf-schema#
|
| xsd | http://www.w3.org/2001/XMLSchema#
|
为方便阅读,本规范使用一种缩写
形式来表示 IRI。形如 prefix:suffix 的名称应
解释为一个 IRI,它由与 prefix 关联的 IRI
连接 suffix 而成。
资源可以划分为称为类的组。一个
类的成员称为该类的实例。类
本身也是
资源。它们通常由 IRI
标识,
并且可以使用 RDF 属性来描述。rdf:type
属性可用于声明某个
资源是某个类的实例。
RDF 区分类和其实例集合。 与每个类相关联的是一个集合,称为该类的类扩展, 它是 该类实例的集合。两个类可能具有相同的实例 集合, 但仍然是不同的类。例如,税务机关可以 定义与本文档编辑住在同一地址的人的 类。邮局可以定义地址 与作者地址具有相同邮政编码的人的类。 这些类可能具有完全相同的实例, 但具有不同的属性。 其中只有一个类具有由税务机关定义这一属性, 另一个类才具有由 邮局定义这一属性。
一个类可以是其自身类扩展的成员,也可以是 它自身的实例。
作为 RDF Schema 类的资源组本身也是一个类,
称为 rdfs:Class。
如果类 C 是类 C' 的子类,则 C 的所有实例
也将
是 C' 的实例。rdfs:subClassOf
属性可用于声明一个类是另一个类的子类。
术语超类用作子类的反义词。如果类 C'
是类 C 的超类,则 C 的所有实例也都是
C' 的实例。
RDF 概念和抽象语法 [RDF12-CONCEPTS] 规范 定义了 RDF 数据类型这一 RDF 概念。所有数据类型都是类。一个作为 数据类型的类的实例,是该数据类型值空间的成员。
RDF 所描述的所有事物都称为资源,并且是
rdfs:Resource 类的实例。这是
万物之类。所有其他类都是此类的子类。
rdfs:Resource 是 rdfs:Class 的实例。
这是由 RDF 类构成的资源类。
rdfs:Class 是 rdfs:Class. 的实例。
rdfs:Literal 类是字面量
值的类,例如字符串和整数。诸如文本
字符串这样的属性值是 RDF 字面量的示例。
rdfs:Literal 是 rdfs:Class 的实例。
rdfs:Literal 是 子类,其父类为 rdfs:Resource。
rdfs:Datatype 是数据类型的类。
rdfs:Datatype 的所有实例
都对应于 RDF 概念规范
[RDF12-CONCEPTS] 中描述的数据类型的 RDF 模型。
rdfs:Datatype 同时
是 rdfs:Class 的实例和子类。rdfs:Datatype
的每个实例都是 rdfs:Literal 的子类。
rdf:Property 是 RDF 属性的类。
rdf:Property 是 rdfs:Class 的实例。
RDF 概念和抽象语法规范 [RDF12-CONCEPTS] 将 RDF 属性这一概念描述为主体 资源和对象资源之间的关系。
本规范定义子属性的概念。rdfs:subPropertyOf
属性可用于声明一个属性是
另一个属性的子属性。
如果属性 P 是属性 P' 的子属性,则所有由
P 关联的资源对也由 P' 关联。术语
超属性通常
用作子属性的反义词。如果属性 P' 是属性 P 的超属性,
则所有由 P 关联的资源对
也由 P' 关联。本规范未定义一个作为所有属性
超属性的顶层属性。
rdfs:domain
和 rdfs:range 提供的基本设施,并不提供任何
直接方式来表示局部于某个类的属性限制。
虽然可以结合使用 rdfs:domain
和 rdfs:range 与子属性
层次结构,但对此类声明的直接支持由更丰富的
Web 本体语言提供,例如 OWL [OWL2-OVERVIEW]。
rdfs:range 是 rdf:Property 的实例,
它用于声明
某个属性的值是一个或多个类的实例。
三元组
P rdfs:range C
声明 P 是 rdf:Property 类的实例,
C 是 rdfs:Class 类的实例,
并且谓词为 P 的三元组对象所表示的资源
是 C 类的实例。
当 P 具有多个 rdfs:range 属性时,
谓词为 P 的三元组对象所表示的资源
是所有由这些 rdfs:range 属性声明的类的实例。
rdfs:range 属性可以应用于自身。
rdfs:range 的 rdfs:range 是类 rdfs:Class。
这声明任何作为 rdfs:range 属性值的资源
都是 rdfs:Class 的实例。
rdfs:range 属性应用于属性。这
可以在 RDF 中使用 rdfs:domain
属性表示。rdfs:range 的 rdfs:domain
是
类 rdf:Property。这
声明
任何具有 rdfs:range 属性的资源都是
rdf:Property 的实例。
rdfs:domain 是 rdf:Property 的实例,
它用于声明
任何具有给定属性的资源都是一个或多个
类的实例。
形如下列形式的三元组:
P rdfs:domain C
声明 P 是 rdf:Property 类的实例,
C 是 rdfs:Class 类的一个实例,
并且谓词为 P 的三元组主体所表示的资源
是类 C 的实例。
当属性 P 具有多个 rdfs:domain 属性时,
谓词为 P 的三元组主体所表示的资源
是所有由这些 rdfs:domain
属性声明的类的实例。
rdfs:domain 属性可以应用于自身。
rdfs:domain 的 rdfs:domain 是类 rdf:Property。
这声明任何
具有 rdfs:domain 属性的资源都是
rdf:Property 的实例。
rdfs:domain 的 rdfs:range
是类 rdfs:Class。
这声明任何作为 rdfs:domain
属性值的资源都是
rdfs:Class 的实例。
rdf:type 是 rdf:Property 的实例,
它用于
声明某个资源是某个类的实例。
形如下列形式的三元组:
R rdf:type C
声明 C 是 rdfs:Class 的实例,
且 R 是 C 的实例。
rdf:type 的 rdfs:domain
是 rdfs:Resource。
rdf:type 的 rdfs:range 是 rdfs:Class。
rdfs:subClassOf 属性是 rdf:Property 的实例,用于声明
一个类的所有实例也是另一个类的实例。
形如下列形式的三元组:
C1 rdfs:subClassOf C2
声明 C1 是 rdfs:Class 的实例,
C2 是 rdfs:Class 的实例,
并且 C1 是 C2 的子类。rdfs:subClassOf
属性是传递的。
rdfs:subClassOf 的 rdfs:domain
是 rdfs:Class。
rdfs:subClassOf 的 rdfs:range
是 rdfs:Class。
rdfs:subPropertyOf 属性是 rdf:Property 的实例,用于声明
由一个属性关联的所有资源也由
另一个属性关联。
形如下列形式的三元组:
P1 rdfs:subPropertyOf P2
声明 P1 是 rdf:Property 的实例,
P2 是 rdf:Property 的实例,
并且 P1 是 P2 的子属性。rdfs:subPropertyOf
属性是传递的。
rdfs:subPropertyOf 的 rdfs:domain
是 rdf:Property。
rdfs:subPropertyOf 的 rdfs:range
是 rdf:Property。
rdfs:label 是 rdf:Property 的实例,
可用于提供资源名称的
人类可读版本。
形如下列形式的三元组:
R rdfs:label L
声明 L 是 R 的人类可读标签。
rdfs:label 的 rdfs:domain
是 rdfs:Resource。
rdfs:label 的 rdfs:range 是
rdfs:Literal。
多语言标签通过 RDF 字面量的语言 标记设施得到支持。
rdfs:comment 是 rdf:Property 的实例,
可用于提供某个
资源的人类可读描述。
形如下列形式的三元组:
R rdfs:comment L
声明 L 是 R 的人类可读描述。
rdfs:comment 的 rdfs:domain
是 rdfs:Resource。
rdfs:comment 的 rdfs:range
是 rdfs:Literal。
文本注释有助于阐明 RDF 类和 属性的含义。 这种内联文档补充了形式 技术 (本体和规则语言)以及非正式形式(散文文档、 示例、 测试用例)的使用。可以组合多种文档形式来 指示 RDF 词汇表中所描述类和属性的预期含义。由于 RDF 词汇表表示为 RDF 图, 因此可以使用 其他命名空间中定义的词汇表来提供更丰富的 文档。
多语言文档通过使用 RDF 字面量的语言 标记设施得到支持。
rdfs:seeAlso 是 rdf:Property 的实例,
用于指示一个
可能提供关于主体资源的额外信息的
资源。
形如下列形式的三元组:
S rdfs:seeAlso O
声明资源 O 可能提供关于 S 的额外信息。它 可能可以从 Web 检索 O 的表示,但 这不是 必需的。当此类表示可以被检索时,不对 这些表示的格式 施加约束。
rdfs:seeAlso 的 rdfs:domain
是 rdfs:Resource。
rdfs:seeAlso 的 rdfs:range
是
rdfs:Resource。
rdfs:isDefinedBy 是 rdf:Property 的实例,
用于指示一个
定义主体资源的资源。此属性可用于
指示
描述某个资源的 RDF 词汇表。
形如下列形式的三元组:
S rdfs:isDefinedBy O
声明资源 O 定义 S。可能可以从 Web
检索
O 的表示,但这不是必需的。当
此类
表示可以被检索时,不对
这些表示的格式
施加约束。rdfs:isDefinedBy 是 子属性,
其父属性为 rdfs:seeAlso。
rdfs:isDefinedBy 的 rdfs:domain
是 rdfs:Resource。
rdfs:isDefinedBy 的 rdfs:range
是
rdfs:Resource。
本节为非规范性内容。
本规范引入一种 RDF 词汇表,用于描述 RDF 数据中属性和类的有意义使用。例如,一个 RDF 词汇表可能描述某个属性适用值类型的限制, 或者描述将此类属性归属于哪些类 是有意义的。
RDF Schema 提供一种用于描述此类信息的机制,但
并不说明应用是否应使用它或如何使用它。例如,
虽然 RDF 词汇表可以断言 author 属性
用于
表示作为 Person 类实例的资源,
但它
并不说明应用在处理该
值域信息时是否应采取行动或如何行动。不同应用会以
不同方式使用这些信息。例如,数据检查工具可能用它
帮助发现某些数据集中的错误,交互式编辑器可能建议
合适的值,而推理应用可能使用它从实例数据中推断
附加信息。
RDF 词汇表可以描述
来自多个独立开发词汇表的词汇项之间的关系。
由于 IRI 用于在 Web 上标识类和属性,因此可以创建
新的
属性,使其 domain 或 range 的
值
是另一个命名空间中定义的类。
RDF 数据类型是字面量值的类,具有相关联的值空间、词法空间和 词法到值映射, 由数据类型 IRI 标识 [RDF12-CONCEPTS]。
RDF 1.2 既识别 RDF 原生数据类型(例如 rdf:langString、
rdf:dirLangString、
rdf:HTML、rdf:XMLLiteral、rdf:JSON),也识别
XML Schema 1.1
数据类型中与 RDF 兼容的子集,后者如下枚举。
rdf:langString 类是
带语言标记的字符串值的类。
rdf:langString 是
rdfs:Datatype 的实例,并且是 子类,
其父类为 rdfs:Literal。
rdf:dirLangString 类是
带方向的语言标记
字符串值的类。rdf:dirLangString 是
rdfs:Datatype 的实例,并且是 子类,
其父类为 rdfs:Literal。
本节为非规范性内容。
rdf:HTML 类是
HTML 字面量值的类。
rdf:HTML 是
rdfs:Datatype 的实例,并且是 子类,
其父类为 rdfs:Literal。
本节为非规范性内容。
rdf:XMLLiteral 类是
XML 字面量值的类。
rdf:XMLLiteral 是
rdfs:Datatype 的实例,并且是 子类,
其父类为 rdfs:Literal。
本节为非规范性内容。
rdf:JSON 类是
JSON 字面量值的类。
rdf:JSON 是
rdfs:Datatype 的实例,并且是 子类,
其父类为 rdfs:Literal。
W3C XML Schema
定义
语言(XSD)1.1 第 2 部分:数据类型 [XMLSCHEMA11-2]
中定义的所有内置数据类型
都使用形如 http://www.w3.org/2001/XMLSchema#xxx 的 IRI 标识,
其中 xxx 是该数据类型的本地名称。在完整
的 XSD 数据类型集合中,下面列出的子集包括那些
与 RDF 数据模型兼容的数据类型,并称为与 RDF 兼容的
XSD 数据类型 [RDF12-CONCEPTS]。
xsd:stringxsd:booleanxsd:decimalxsd:integerxsd:doublexsd:floatxsd:datexsd:timexsd:dateTimexsd:dateTimeStampxsd:gYearxsd:gMonthxsd:gDayxsd:gYearMonthxsd:gMonthDayxsd:durationxsd:yearMonthDurationxsd:dayTimeDurationxsd:bytexsd:shortxsd:intxsd:longxsd:unsignedBytexsd:unsignedShortxsd:unsignedIntxsd:unsignedLongxsd:positiveIntegerxsd:nonNegativeIntegerxsd:negativeIntegerxsd:nonPositiveIntegerxsd:hexBinaryxsd:base64Binaryxsd:anyURIxsd:languagexsd:normalizedStringxsd:tokenxsd:NMTOKENxsd:Namexsd:NCName本节为非规范性内容。
RDF 容器在开放这一意义上是开放的:核心 RDF 规范 未定义用于声明不再有更多成员的机制。RDF Collection 的类和属性词汇表可以描述一个封闭的 集合,即不能再有更多成员的集合。
集合表示为一个项目列表,这种表示对于 有 Lisp 及类似编程语言经验的人来说会很熟悉。 Turtle 语法规范中有一种用于表示集合的简写 记法。
RDFS 不要求类列表结构只能有一个第一个元素, 甚至不要求类列表结构具有第一个 元素。
RDF 提供了一个用于描述集合(即“列表 结构”)的词汇表,其描述方式基于头尾链接。集合不同于 容器,因为它们允许分支结构,并且具有 显式终止符,使应用能够确定集合中项目的确切 集合。
与容器一样,除 rdf:nil 的类型为 rdf:List 之外,
不会对该词汇表施加特殊语义条件。它
通常旨在用于这样的语境:容器使用
空白节点来连接一个“良构”的项目序列,其中每个项目由
两个形如下列形式的三元组描述
_:c1 rdf:first aaa .
_:c1 rdf:rest _:c2 .
其中最后一个项目通过使用 rdf:nil 作为
rdf:rest 属性的值来指示。按照一种熟悉的约定,rdf:nil
可以被认为是空集合。任何这样的图都相当于断言
该集合存在,并且由于集合成员可以通过检查确定,
这通常足以使应用能够确定
其含义。语义不要求任何集合存在,
除了图中明确提到的集合(以及空集合)之外。
例如,包含两个项目的集合的存在并不会自动
保证项目顺序置换后的类似集合也存在:
_:c1 rdf:first ex:aaa .
_:c1 rdf:rest _:c2 .
_:c2 rdf:first ex:bbb .
_:c2 rdf:rest rdf:nil .
并不蕴涵
_:c3 rdf:first ex:bbb .
_:c3 rdf:rest _:c4 .
_:c4 rdf:first ex:aaa .
_:c4 rdf:rest rdf:nil .
此外,RDF 不对该词汇表的使用施加“良构性” 条件,因此可以编写 RDF 图来断言 高度奇特对象的存在,例如具有分叉 或非列表尾部,或者多个头部的列表:
_:666 rdf:first ex:aaa .
_:666 rdf:first ex:bbb .
_:666 rdf:rest ex:ccc .
_:666 rdf:rest rdf:nil .
也可以编写一组三元组,由于未能指定其
rdf:rest 属性值而使某个集合描述不足。
语义扩展可以
对该词汇表的使用施加额外的句法良构性限制,
以便排除这类图。它们可以
排除对集合词汇表的解释中违反以下约定的情形:
以上述形式描述的、由两个三元组项目组成的“链接”集合,
并以一个以 rdf:nil 结束的项目结尾,其主体表示一个完全
有序的序列,其成员是各项目的 rdf:first
值的所指对象,顺序通过从主体沿 rdf:rest 属性
追踪到 rdf:nil 得到。这允许序列包含
其他序列。
RDFS 语义条件要求,rdf:first 属性的任何
主体,以及 rdf:rest 属性的任何主体或对象,
均为 rdf:type rdf:List。
rdf:List 是 rdfs:Class 的实例,
可用于构建列表和其他类列表
结构的描述。
rdf:first 是 rdf:Property 的实例,
可用于构建列表和其他类列表
结构的描述。
形如下列形式的三元组:
L rdf:first O
声明 L 与 O 之间存在第一个元素关系。
rdf:first 的 rdfs:domain
是 rdf:List。rdf:first 的 rdfs:range
是 rdfs:Resource。
rdf:rest 是 rdf:Property 的实例,
可用于构建列表和其他类列表
结构的描述。
形如下列形式的三元组:
L rdf:rest O
声明 L 与 O 之间存在列表其余部分关系。
rdf:rest 的 rdfs:domain
是 rdf:List。rdf:rest 的 rdfs:range
是 rdf:List。
资源 rdf:nil 是 rdf:List 的实例,
可用于表示空列表或其他类列表
结构。
形如下列形式的三元组:
L rdf:rest rdf:nil
三元组项是 [RDF12-CONCEPTS] 中定义的一种构造,由一个被用作 值的 RDF 三元组组成,具体而言,是作为另一个三元组的对象位置中的值。此用法表示对一个 命题的引用, 并且重要的是,三元组项本身并不蕴含断言;也就是说,它所指示的命题 不一定是 RDF 图所断言的事实。只有当该三元组也 在 RDF 图中被断言时——也就是说,当它是该三元组集合的直接元素时——才是如此。 否则,它保持未断言状态,并主要作为引用。 这使得可以表示关于三元组的元数据或评论,无论这些三元组是否属于 被断言的图内容,包括潜在的矛盾关系。
出现在三元组项中的 RDF 术语,与它们出现在图中被断言的 三元组时具有相同的指称。因此,三元组项被称为透明的。
三元组项可以作为谓词为
rdf:reifies 的三元组对象。在这种情况下,所得三元组称为
具体化三元组,其主体
称为具体化者。
当一个具体化三元组的三元组项也作为被断言三元组出现在同一个图中时,
共享同一个具体化者作为主体的三元组子集称为
三元组注释。
三元组项始终指称抽象的逻辑命题,而具体化者可以指称与这些命题相关的多种
事物(例如认为该命题成立的陈述或信念,或者使该命题为真的
事件或情境)。因此,预期三元组
项通常用作具体化三元组的对象,而具体化者(而不是三元组
项)用于进一步描述。由于具体化者旨在
服务的用例具有多样性,rdf:reifies 属性的含义被有意设定为通用的。对于同一命题,
可以存在多个不同的具体化者(例如来自不同来源或语境),并且
反过来,一个具体化者也可以用于多个命题。
rdfs:Proposition 是命题的类,即描述两个实体之间关系的简单逻辑表达式。
rdfs:Proposition 是 rdfs:Class 的实例,
并且是 子类,其父类为 rdfs:Resource。
rdf:reifies 是 rdf:Property 的实例,
用于将资源与命题相关联。
rdf:reifies 的 rdfs:domain
是 rdfs:Resource。
rdf:reifies 的 rdfs:range 是
rdfs:Proposition。
以下实用类和属性定义在 RDF 核心 命名空间中。
rdf:value 是 rdf:Property 的实例,
可用于
描述结构化值。
rdf:value 本身没有含义。它作为一段
词汇表提供,可用于如下例所示的
惯用法中:
<http://www.example.com/2002/04/products#item10245>
<http://www.example.org/terms/weight> [
rdf:value 2.4 ;
<http://www.example.org/terms/units> <http://www.example.org/units/kilograms>
] .
尽管 缺少对该属性含义的形式化规定, 但定义它仍有 价值,因为这能鼓励在此类 示例中使用一种通用惯用法。
rdf:value 的 rdfs:domain
是 rdfs:Resource。
rdf:value 的 rdfs:range
是 rdfs:Resource。
本节为非规范性内容。
本节描述 RDF 和 RDF Schema 早期版本中定义的词汇表。 出于历史和兼容性原因,这些词汇表仍在某些 应用和数据集中使用。 然而,对于新的开发和现代基于 RDF 的系统, 通常建议优先采用本文档前面 各节中介绍的词汇表和构造作为替代。
本节为非规范性内容。
RDF 容器是用于表示集合的资源。 同一个资源可以在一个容器中出现 多次。与物理世界中的包含不同,容器可以 包含自身。
定义了三种不同类型的容器。尽管所有三类容器的形式
语义 [RDF12-SEMANTICS] 是相同的,
但可以使用不同的类来非正式地指示更多
信息。rdf:Bag 用于指示该容器旨在
无序。rdf:Seq 用于指示由该容器的容器
成员属性
的数字顺序所表示的顺序旨在具有意义。rdf:Alt 容器
用于
指示对该容器的典型处理将是选择
其中一个
成员。
正如鸡舍可以具有由木头制成这一属性, 但这并不意味着它所包含的所有母鸡都是木头制成的, 容器的属性不一定是其所有成员的属性。
RDF 提供了用于描述三类 容器的词汇表。容器具有类型,其成员可以 通过使用一组固定的容器成员 属性来枚举。这些属性用整数作为索引, 以提供一种将成员彼此区分的方式,但这些 索引不一定应被理解为定义容器本身的 顺序;某些容器被视为无序。
RDFS 词汇表添加了一个通用成员 属性,该属性不考虑位置,同时还添加了包含 所有容器和所有成员属性的类。
应当将该词汇表理解为用于描述 容器,而不是作为构造它们的工具,如编程语言中 通常会提供的那样。实际的容器是语义宇宙中的实体, 使用该词汇表的 RDF 图只是提供关于这些实体的非常基础的 信息,使 RDF 图能够 表征容器类型,并给出关于容器成员的部分信息。 由于 RDF 容器词汇表 非常有限,许多关于 RDF 容器的自然假设 不能被 RDF 形式语义正式认可。这不应被理解为 这些假设是错误的,而只是 RDF 并未正式蕴涵它们必然为真。
容器
词汇表没有特殊语义条件:RDF 假定其容器
具有的唯一结构,是可以从该词汇表的使用
以及一般 RDF 语义条件中推断出的结构。这相当于知道容器的类型,
并对容器中的项目进行部分
枚举。
预期的使用方式是,类型为 rdf:Bag
的事物被认为是无序但允许重复;类型为
rdf:Seq 的事物被认为是有序的,而类型
为 rdf:Alt 的事物被认为表示
一组选项,可能带有偏好顺序。
如果容器属于有序类型,则容器中项目的顺序旨在由
容器成员属性的数字顺序
指示,这些属性被假定为单值。
然而,这些非正式条件并未反映在任何形式 RDF
蕴涵中。
RDF 语义不支持任何可能因以不同顺序枚举
无序 rdf:Bag 的元素而产生的蕴涵。例如,
_:xxx rdf:type rdf:Bag .
_:xxx rdf:_1 ex:a .
_:xxx rdf:_2 ex:b .
并不蕴涵
_:xxx rdf:_1 ex:b .
_:xxx rdf:_2 ex:a .
(如果这 c> 有效,则 将其添加到原始图所得的结果会被该图蕴涵,而这将断言两个元素 同时处于两个 位置。这是 RDF 作为一种纯 断言性语言这一事实的结果。)
不存在容器的某个属性适用于 该容器的任何元素,或反之亦然的假设。
也没有形式要求
三个容器类彼此不相交,因此例如
断言某个事物既是 rdf:Bag 又是 rdf:Seq 是一致的。
也不存在容器无空隙的假设,因此例如
_:xxx rdf:type rdf:Seq.
_:xxx rdf:_1 ex:a .
_:xxx rdf:_3 ex:c .
并不蕴涵
_:xxx rdf:_2 _:yyy .
RDF 中没有办法断言 一个容器只包含固定数量的成员。这反映了这样一个事实: 向图中添加一个断言任意容器成员属性的三元组 始终是一致的。最后, 也没有内置假设认为 RDF 容器 只具有有限多个成员。
RDF 容器由以下类和属性定义。
rdf:Bag 类是 RDF “包”
容器的类。它是
子类,其父类为 rdfs:Container。
尽管在形式上它与 rdf:Seq 或
rdf:Alt 没有
不同,但 rdf:Bag
类按惯例用于向人类读者指示该容器
旨在
无序。
rdf:Seq 类是 RDF “序列”
容器的类。
它是 子类,其父类为 rdfs:Container。
尽管在形式上它与 rdf:Bag 或
rdf:Alt 没有
不同,但 rdf:Seq
类按惯例用于向人类读者指示该容器的容器成员
属性的数字
顺序旨在具有意义。
rdf:Alt 类是 RDF “替代项”
容器的类。它是 子类,其父类为 rdfs:Container。尽管在形式上
它与 rdf:Seq 或
rdf:Bag 没有
不同,但 rdf:Alt
类按惯例用于向人类读者指示典型处理
将会是
选择容器成员之一。容器的第一个成员,
即 rdf:_1
属性的值,是
默认选择。
rdfs:ContainerMembershipProperty 类的
实例
是 rdf:_1, rdf:_2, rdf:_3 ... 等属性,
它们用于声明
某个资源是容器的成员。
rdfs:ContainerMembershipProperty 是 子类,
其父类为 rdf:Property。rdfs:ContainerMembershipProperty
的每个
实例都是 rdfs:subPropertyOf
rdfs:member 属性。
给定一个容器 C,形如下列形式的三元组:
C rdf:_nnn O
其中 nnn 是一个大于 0 且
不带前导零的整数的十进制表示,声明 O 是容器 C 的成员。
容器成员属性可以应用于容器以外的 资源。
rdfs:member 是 rdf:Property 的实例,
它是所有
容器成员属性的超属性,即每个容器成员
属性
都具有到 rdfs:member 属性的 rdfs:subPropertyOf
关系。
rdfs:member 的 rdfs:domain
是 rdfs:Resource。
rdfs:member 的 rdfs:range
是
rdfs:Resource。
本节为非规范性内容。
该词汇表的预期含义是允许一个 RDF 图作为描述其他 RDF 三元组的元数据。
考虑一个包含单个三元组的示例图:
ex:a ex:b ex:c .
并假设 IRI ex:graph1
用于标识该图。
这种标识究竟如何实现,属于 RDF 模型之外的事项,
但它可以通过该 IRI 解析为
描述该图的具体语法文档来实现,
或者通过该 IRI 作为数据集中
命名图的关联名称来实现。
假设该 IRI 可用于指称
该三元组,
则具体化词汇表允许我们在另一个图中描述第一个图:
ex:graph1 rdf:type rdf:Statement .
ex:graph1 rdf:subject ex:a .
ex:graph1 rdf:predicate ex:b .
ex:graph1 rdf:object ex:c .
第二个图称为第一个图中三元组的具体化。
具体化不是一种引用形式。相反,具体化描述的是
三元组的一个标记与该三元组所指称资源之间的关系。
rdf:subject 属性的值不是
主体 IRI 本身,而是它所指称的事物;
rdf:predicate 和 rdf:object 也是如此。
例如,如果 ex:a 的所指对象是珠穆朗玛峰,
那么被具体化三元组的主体也是那座山,而不是指称它的 IRI。
具体化可以用空白节点作为主体来书写, 也可以用一个不标识任何三元组具体实现的 IRI 主体来书写, 在这两种情况下,它们只是断言所描述三元组的存在。
具体化的主体旨在指称 RDF 三元组的一个具体实现,例如 表面语法中的一个文档,而不是作为抽象对象考虑的三元组。这支持如下 用例:将组合日期或溯源信息等属性应用于 被具体化三元组;只有当它被理解为 指称某个三元组的特定实例或标记时,这些属性才有意义。
三元组的具体化并不蕴涵该三元组,也不由该三元组蕴涵。 具体化只表示三元组标记存在以及它关于什么, 而不是表示它为真,因此它不蕴涵该三元组。 另一方面,断言一个三元组并不会自动意味着 被该三元组描述的宇宙中存在任何 三元组标记。 例如,该三元组可能是描述 动物的本体的一部分,而该本体可以由这样一种解释满足: 其宇宙只包含动物,因此对该三元组的具体化 为假。
由于在任何 RDF 图或图集合中,三元组与三元组 具体化之间的关系不必是一一对应的,因此断言关于某个由具体化描述的实体 的属性,并不需要 蕴涵同一属性也适用于另一个这样的实体,即使 它具有相同的组成部分。例如,
_:xxx rdf:type rdf:Statement .
_:xxx rdf:subject ex:subject .
_:xxx rdf:predicate ex:predicate .
_:xxx rdf:object ex:object .
_:yyy rdf:type rdf:Statement .
_:yyy rdf:subject ex:subject .
_:yyy rdf:predicate ex:predicate .
_:yyy rdf:object ex:object .
_:xxx ex:property ex:foo .
并不蕴涵
_:yyy ex:property ex:foo .
rdf:Statement 是 rdfs:Class 的实例。
它旨在表示 RDF 陈述的类。RDF
陈述是由 RDF 三元组的一个标记作出的陈述。RDF
陈述的主体是由三元组主体标识的 rdfs:Resource
实例。RDF
陈述的谓词是由三元组谓词标识的 rdf:Resource
实例。RDF
陈述的对象是由三元组对象标识的 rdfs:Resource
实例。
rdf:Statement 位于属性 rdf:predicate、rdf:subject
和 rdf:object 的定义域中。不同的
单个 rdf:Statement 实例可能对其 rdf:predicate、
rdf:subject
和 rdf:object 属性具有相同的
值。
RDF 陈述不是 RDF 图中的三元组,因此其
rdf:predicate 的值在该图中不需要是
rdf:Property 的实例,
尽管在大多数情况下它们会是。
rdf:subject 是 rdf:Property 的实例,
用于声明
陈述的主体。
形如下列形式的三元组:
S rdf:subject R
声明 S 是 rdf:Statement 的实例,
且 S 的主体是
R。
rdf:subject 的 rdfs:domain
是
rdf:Statement。rdf:subject 的 rdfs:range
是
rdfs:Resource。
rdf:predicate 是 rdf:Property 的实例,
用于声明
陈述的谓词。
形如下列形式的三元组:
S rdf:predicate P
声明 S 是 rdf:Statement 的实例,
P 是
rdfs:Resource 的实例,并且
S 的谓词
是 P。
rdf:predicate 的 rdfs:domain
是 rdf:Statement,
而 rdfs:range 是 rdfs:Resource。
rdf:object 是 rdf:Property 的实例,
用于声明
陈述的对象。
形如下列形式的三元组:
S rdf:object O
声明 S 是 rdf:Statement 的实例,
且 S 的对象是
O。
rdf:object 的 rdfs:domain
是 rdf:Statement。
rdf:object 的 rdfs:range
是
rdfs:Resource。
本节为非规范性内容。
本节中的表格提供 RDF Schema 词汇表的概览。
| 类名 | 注释 |
|---|---|
rdfs:Resource |
资源类,万物。 |
rdfs:Literal |
字面量值的类,例如文本字符串和 整数。 |
rdf:langString |
带语言标记的字符串字面量值的类。 |
rdf:dirLangString |
带方向的语言标记字符串字面量值的类。 |
rdf:HTML |
HTML 字面量值的类。 |
rdf:XMLLiteral |
XML 字面量值的类。 |
rdf:JSON |
JSON 字面量值的类。 |
rdfs:Class |
类的类。 |
rdf:Property |
RDF 属性的类。 |
rdfs:Proposition |
具体化三元组的类。 |
rdfs:Datatype |
RDF 数据类型的类。 |
rdf:Statement |
RDF 陈述的类。 |
rdf:Bag |
无序容器的类。 |
rdf:Seq |
有序容器的类。 |
rdf:Alt |
替代项容器的类。 |
rdfs:Container |
RDF 容器的类。 |
rdfs:ContainerMembershipProperty
|
容器成员属性的类,rdf:_1、rdf:_2、
...,它们都是“member”的子属性。 |
rdf:List |
RDF 列表的类。 |
| 属性名 | 注释 | 定义域 | 值域 |
|---|---|---|---|
rdf:type |
主体是某个类的实例。 | rdfs:Resource |
rdfs:Class |
rdf:reifies |
将资源与具体化三元组相关联。 | rdfs:Resource |
rdfs:Proposition |
rdfs:subClassOf |
主体是某个类的子类。 | rdfs:Class |
rdfs:Class |
rdfs:subPropertyOf |
主体是某个属性的子属性。 | rdf:Property |
rdf:Property |
rdfs:domain |
主体属性的一个定义域。 | rdf:Property |
rdfs:Class |
rdfs:range |
主体属性的一个值域。 | rdf:Property |
rdfs:Class |
rdfs:label |
主体的人类可读名称。 | rdfs:Resource |
rdfs:Literal |
rdfs:comment |
主体资源的描述。 | rdfs:Resource |
rdfs:Literal |
rdfs:member |
主体资源的一个成员。 | rdfs:Resource |
rdfs:Resource |
rdf:first |
主体 RDF 列表中的第一个项目。 | rdf:List |
rdfs:Resource |
rdf:rest |
主体 RDF 列表中第一个项目之后的其余部分。 | rdf:List |
rdf:List |
rdfs:seeAlso |
关于主体资源的更多信息。 | rdfs:Resource |
rdfs:Resource |
rdfs:isDefinedBy |
主体资源的定义。 | rdfs:Resource |
rdfs:Resource |
rdf:value |
用于结构化值的惯用属性。 | rdfs:Resource |
rdfs:Resource |
rdf:subject |
主体 RDF 陈述的主体。 | rdf:Statement |
rdfs:Resource |
rdf:predicate |
主体 RDF 陈述的谓词。 | rdf:Statement |
rdfs:Resource |
rdf:object |
主体 RDF 陈述的对象。 | rdf:Statement |
rdfs:Resource |
除了这些类和属性之外,RDF 还使用称为
rdf:_1、rdf:_2、rdf:_3 等的属性,
每一个都是 rdfs:member 的子属性,同时也是
rdfs:ContainerMembershipProperty 类的
实例。
还有一个名为 rdf:nil 的 rdf:List 实例,
它是
一个空的 rdf:List。
本节为非规范性内容。
本节根据 W3C 流程 [W3C-PROCESS] 中的 § 6.5 注册表轨道,为 RDF 核心命名空间中的词汇表定义一个注册表。
此注册表的目的是提供一个中心索引,使任何人都可以 查明 RDF 核心命名空间中存在哪些词汇表条目,以及它们 在何处被正式定义,从而避免冲突和重复。
每个注册表表格都有以下三个字段:一个 IRI、主管 规范,以及任何相关注释(例如适用范围)。
对现有条目进行变更的策略如下:
所有注册表表格的托管方是 RDF & SPARQL 工作组。
本节为非规范性内容。
以下注册表表格列出 rdf: 命名空间中定义的所有 IRI。
此表格的机器可读版本位于
http://www.w3.org/1999/02/22-rdf-syntax-ns。
| IRI | 规范 | 注释 |
|---|---|---|
rdf:Alt |
本文档 | |
rdf:Bag |
本文档 | |
rdf:Seq |
本文档 | |
rdf:HTML |
本文档 | |
rdf:JSON |
本文档 | |
rdf:XMLLiteral |
本文档 | |
rdf:List |
本文档 | |
rdf:Property |
本文档 | |
rdf:Statement |
本文档 | |
rdf:nil |
本文档 | |
rdf:rest |
本文档 | |
rdf:dirLangString |
本文档 | |
rdf:first |
本文档 | |
rdf:langString |
本文档 | |
rdf:object |
本文档 | |
rdf:predicate |
本文档 | |
rdf:subject |
本文档 | |
rdf:reifies |
本文档 | |
rdf:type |
本文档 | |
rdf:value |
本文档 | |
rdf:CompoundLiteral |
[JSON-LD11] | 应考虑使用 rdf:dirLangString。该术语被
认为是古旧的,但为与 JSON-LD 兼容而保留。 |
rdf:direction |
[JSON-LD11] | 应考虑使用 rdf:dirLangString。该术语被
认为是古旧的,但为与 JSON-LD 兼容而保留。 |
rdf:language |
[JSON-LD11] | 应考虑使用 rdf:dirLangString。该术语被
认为是古旧的,但为与 JSON-LD 兼容而保留。 |
rdf:PlainLiteral |
[RDF-PLAIN-LITERAL] | 仅在 OWL [OWL2-OVERVIEW] 中使用 |
rdf:langRange |
[RDF-PLAIN-LITERAL] | 仅在 OWL [OWL2-OVERVIEW] 中使用 |
rdf:PropositionForm |
[RDF-INTEROP] | 保留用于命题的基本编码。 |
rdf:propositionFormSubject |
[RDF-INTEROP] | 保留用于命题的基本编码。 |
rdf:propositionFormPredicate |
[RDF-INTEROP] | 保留用于命题的基本编码。 |
rdf:propositionFormObject |
[RDF-INTEROP] | 保留用于命题的基本编码。 |
本节为非规范性内容。
以下注册表表格列出 rdfs: 命名空间中定义的所有 IRI。
此表格的机器可读版本位于 http://www.w3.org/2000/01/rdf-schema。
| IRI | 规范 |
|---|---|
rdfs:Class |
本文档 |
rdfs:Container |
本文档 |
rdfs:ContainerMembershipProperty |
本文档 |
rdfs:Datatype |
本文档 |
rdfs:Literal |
本文档 |
rdfs:Proposition |
本文档 |
rdfs:Resource |
本文档 |
rdfs:comment |
本文档 |
rdfs:domain |
本文档 |
rdfs:isDefinedBy |
本文档 |
rdfs:label |
本文档 |
rdfs:member |
本文档 |
rdfs:range |
本文档 |
rdfs:seeAlso |
本文档 |
rdfs:subClassOf |
本文档 |
rdfs:subPropertyOf |
本文档 |
本节为非规范性内容。
参见 RDF 1.2 概念和抽象数据模型 [RDF12-CONCEPTS] 中的隐私考量。
本节为非规范性内容。
参见 RDF 1.2 概念和抽象数据模型 [RDF12-CONCEPTS] 中的安全考量。
本节为非规范性内容。
本节为非规范性内容。
RDF Schema 设计最初由 RDF Schema 工作组 (1997-2000)制作。
IBM 的 David Singer 在本规范的大部分开发过程中担任原 RDF Schema 组的主席; 我们感谢 David 的努力,并感谢 IBM 在这项工作中支持他和我们。 还要特别感谢 Andrew Layman 对本规范早期版本所做的编辑工作。
原 RDF Schema 工作组成员包括:
Nick Arnett (Verity), Dan Brickley (ILRT / University of Bristol), Walter Chang (Adobe), Sailesh Chutani (Oracle), Ron Daniel (DATAFUSION), Charles Frankston (Microsoft), Joe Lapp (webMethods Inc.), Patrick Gannon (CommerceNet), RV Guha (Epinions, previously of Netscape Communications), Tom Hill (Apple Computer), Renato Iannella (DSTC), Sandeep Jain (Oracle), Kevin Jones, (InterMind), Emiko Kezuka (Digital Vision Laboratories), Ora Lassila (Nokia Research Center), Andrew Layman (Microsoft), John McCarthy (Lawrence Berkeley National Laboratory), Michael Mealling (Network Solutions), Norbert Mikula (DataChannel), Eric Miller (OCLC), Frank Olken (Lawrence Berkeley National Laboratory), Sri Raghavan (Digital/Compaq), Lisa Rein (webMethods Inc.), Tsuyoshi Sakata (Digital Vision Laboratories), Leon Shklar (Pencom Web Works), David Singer (IBM), Wei (William) Song (SISU), Neel Sundaresan (IBM), Ralph Swick (W3C), Naohiko Uramoto (IBM), Charles Wicksteed (Reuters Ltd.), Misha Wolf (Reuters Ltd.)
本节为非规范性内容。
当前规范很大程度上是对该设计的编辑性 澄清,并且极大受益于 RDF Core 工作组 成员的辛勤工作,以及 许多 RDF 兴趣组成员的实现反馈。 2013-2014 年,Guus Schreiber 代表 RDF 工作组 编辑了本文档,使其与 RDF 1.1 规范保持一致。
本节为非规范性内容。
除编辑外,以下人员也为本规范做出了贡献: Andy Seaborne, Denis Ah-Kang, Gregg Kellogg, Niklas Lindström, Peter F. Patel-Schneider, Pierre-Antoine Champin, and Ted Thibodeau Jr
RDF & SPARQL 工作组 Group 的成员包括 Vladimir Alexiev, James Anderson, Amin Anjomshoaa, Julián Arenas-Guerrero, Dörthe Arndt, Bilal Ben Mahria, Erich Bremer, Dan Brickley, Kurt Cagle, Sarven Capadisli, Rémi Ceres, Pierre-Antoine Champin, David Chaves-Fraga, Souripriya Das, Daniil Dobriy, Enrico Franconi, Jeffrey Phillips Freeman, Fabien Gandon, Benjamin Goering, Damien Graux, Adrian Gschwend, Olaf Hartig, Timothée Haudebourg, Ian Horrocks, Gregg Kellogg, Mark Kim, Jose Emilio Labra Gayo, Ora Lassila, Richard Lea, Niklas Lindström, Pasquale Lisena, Thomas Lörtsch, Matthew Nguyen, Peter Patel-Schneider, Thomas Pellissier Tanon, Dave Raggett, Jean-Yves ROSSI, Felix Sasaki, Andy Seaborne, Alan Snyder, Stuart Sutton, Ruben Taelman, Ted Thibodeau Jr, Dominik Tomaszuk, Raphaël Troncy, William Van Woensel, Gregory Williams, Jesse Wright, Achille Zappa, and Antoine Zimmermann。
认可任务组成员?不容易找到贡献者列表。
本节为非规范性内容。
RDF 1.1 推荐标准的变更
rdf:langString 和 rdf:HTML。
rdf:HTML 和 rdf:XMLLiteral
标记为非规范性内容。本节为非规范性内容。
rdf:dirLangString。
rdf:JSON。rdfs:Proposition 和属性 rdf:reifies。