RDF 1.2 概念和抽象数据模型

W3C 候选推荐快照

关于本文档的更多详细信息
本版本:
https://www.w3.org/TR/2026/CR-rdf12-concepts-20260407/
最新发布版本:
https://www.w3.org/TR/rdf12-concepts/
最新编辑草案:
https://w3c.github.io/rdf-concepts/spec/
历史:
https://www.w3.org/standards/history/rdf12-concepts/
提交历史
测试套件:
https://w3c.github.io/rdf-tests/rdf/rdf12/
实现报告:
https://w3c.github.io/rdf-tests/rdf/rdf12/reports/
最新推荐标准:
https://www.w3.org/TR/rdf11-concepts
编辑:
Gregg Kellogg(至 2025-09-06),谨致纪念
Olaf Hartig
Pierre-Antoine Champin
Andy Seaborne
前任编辑:
Richard Cyganiak(RDF 1.1)
David Wood(RDF 1.1,主席)
Markus Lanthaler(RDF 1.1)
Graham Klyne(RDF 1.0)
Jeremy J. Carroll(RDF 1.0)
Brian McBride(RDF 1.0,主席)
反馈:
GitHub w3c/rdf-concepts拉取请求新议题未关闭议题
public-rdf-star-wg@w3.org 主题行为 [rdf12-concepts] … 消息主题 …存档

摘要

资源描述框架(RDF)是一个用于 在 Web 上表示信息的框架。 本文档定义了一种抽象数据模型, 用于连接所有基于 RDF 的语言和规范。 该抽象数据模型具有两个关键数据结构:

与 RDF 1.1 相比,RDF 1.2 引入了将一个 RDF 三元组 作为 三元组项,用于另一个 三元组宾语位置的能力。 RDF 1.2 还引入了带方向的语言标记字符串, 它们包含一个基方向组件,允许为用户代理的呈现指定 初始文本方向。 最后,为了简化从 RDF 1.1 到 RDF 1.2 的过渡, 本规范引入了一种机制,用于 显式传达 给定数据片段所使用的 RDF 版本。

本规范引入了 RDF 1.2 的关键概念和术语,随后讨论 数据类型,以及 RDF 图中 IRI 内片段标识符的处理。

本文档状态

本节描述本文档在发布时的状态。 当前 W3C 出版物列表以及本技术报告的最新修订版本,可在 W3C 标准和草案 索引中找到。

本文档是 RDF 1.2 文档套件的一部分。 它是 RDF 1.2 的核心规范,并定义了核心 RDF 概念。 构建在本文档之上的若干 RDF 1.2 规范的测试套件和实现报告可从 rdf-tests 仓库 中的 rdf-tests/rdf/rdf12 获取,如各规范中所引用。

RDF 1.2 Concepts(本规范)描述了一种抽象数据模型, 并且没有独立的测试套件,因为它并不直接在软件中实现。 相反,它由构建在其之上的规范实现。 因此,要退出 W3C 候选推荐 阶段, W3C RDF & SPARQL 工作组 要求 [RDF12-SEMANTICS] 以及至少一项具体 语法规范(例如 [RDF12-N-TRIPLES]) 已满足其自身的 W3C 候选 推荐阶段退出标准。

RDF 1.2 Concepts 是对 [RDF11-CONCEPTS] 的更新, 后者本身又是对 [RDF-CONCEPTS-20040210] 的更新。

本文档由 RDF & SPARQL 工作组作为 候选推荐快照发布,并使用 推荐标准轨道

作为候选推荐发布并不 意味着得到 W3C 及其成员的认可。候选 推荐快照已经接受 广泛审查,旨在 收集 实现经验, 并且工作组成员承诺为实现提供 免版税许可

此即将发布的推荐标准的未来更新可能会纳入 新特性

本候选推荐预计不会早于 2026 年 5 月 5 日 进入推荐标准阶段。

本文档由一个根据 W3C 专利 政策 运行的工作组制作。 W3C 维护一份与该组交付物相关的任何专利 披露的 公开列表; 该页面还包括 披露专利的说明。若个人实际 知悉其认为包含 基本权利要求 的专利,则必须按照 W3C 专利政策第 6 节披露相关信息。

本文档受 2025 年 8 月 18 日 W3C 流程文档约束。

1. 引言

本节是非规范性的。

资源描述框架(RDF)是一个用于 在 Web 上表示信息的框架。

本文档定义了一种抽象数据模型, 用于连接所有基于 RDF 的语言和规范, 包括以下内容:

1.1 基于图的抽象数据 模型

抽象数据模型的核心结构是一组 三元组,每个三元组由一个主语、 一个谓语和一个宾语组成。这样一组三元组称为 一个 RDF 图。RDF 图可被可视化为一个节点和 有向弧图,其中每个三元组都表示为一个 节点-弧-节点链接。

1 一个 RDF 图,包含两个节点(主语和宾语)以及连接它们的一条弧(谓语)。

RDF 图中可以出现四种节点IRI字面量空白 节点,以及三元组项

根据此定义可以推出,当一个项出现在多个 三元组中时,这些只是同一个项的多次出现。例如,在一个包含两个三元组的图中(此处用常见的 集合元组记法表示,并 使用抽象名称作为不同的项):

{ (R1, P1, R3),
  (R2, P2, R3) }

项 R3 是同一个单一项被使用了两次,并且总共有五个项。 这在二维图示中更容易展示, 其中一个单一节点可以简单地通过带标签的弧连接到多个其他 节点或由多个其他节点连接而来。

2 一个 RDF 图,包含三个节点(R1、R2 和 R3)以及两条弧(P1 和 P2),这些 弧分别将 R1 和 R2 连接到 R3。

此抽象数据模型可以用不同方式编码,同时 保留相同的结构,如 1.9 RDF 文档 和语法中所述。

1.2 资源和语句

任何 IRI字面量指称 世界中的某个事物(“论域”)。 这些事物称为 资源。任何事物都可以是资源, 包括物理事物、文档、抽象概念、数字 和字符串;该术语与 RDF 1.2 Semantics [RDF12-SEMANTICS] 中所用的 “实体”同义。 由一个 IRI 指称的资源称为其 所指对象,由字面量指称的 资源称为其 字面量值。字面量具有 数据类型,用于定义可能 值的范围,例如字符串、数字和日期。特殊种类的字面量 — 带语言标记的字符串带方向的语言标记字符串 — 分别指称自然语言中的纯文本字符串,以及包含初始文本方向的自然语言纯文本 字符串。

断言一个 RDF 三元组表示:某种关系, 由谓语指示,在由 主语宾语指称资源之间成立 (如下文 所解释,并非所有三元组都会被断言)。 与一个 RDF 三元组对应的这个语句称为 RDF 语句。 谓语本身是一个 IRI,并 指称一个 属性, 即一个可被视为二元关系的资源。 (涉及两个以上实体的关系只能 在 RDF 中间接 表达 [SWBP-N-ARYRELATIONS]。)

不同于 IRI字面量空白 节点不标识特定 资源。涉及空白节点的语句 表示某个具有给定关系的事物 存在,而不显式命名它。

1.3 IRI 的所指对象

由一个 IRI指称资源 也称为其所指对象。对于一些具有特定 含义的 IRI,例如标识 XSD 数据类型的 IRI,其所指对象由 本规范固定。对于所有其他 IRI,任何给定 IRI 究竟指称什么,并不由本 规范定义。其他 规范可以固定 IRI 的所指对象,或 对任何 IRI 的所指对象可能是什么 施加其他约束。

关于确定一个 IRI所指对象的准则, 可在其他文档中找到,例如 万维网架构,第一卷 [WEBARCH] 以及 语义 Web 的 Cool URI [COOLURIS]。 以下给出一个非常简略、非正式且不完整的说明:

IRI 在 Web 架构中也许最重要的特征是它们可以被 解引用, 因而可作为与远程服务器交互的起点。 本规范并不涉及此类交互。 它不定义交互模型。它只将 IRI 视为图数据模型中用于描述资源的全局 唯一标识符。 然而,这些交互对于 关联数据设计问题 [LINKED-DATA] 的概念至关重要,后者使用 RDF 抽象语法具体 RDF 语法, 后者也称为序列化格式。

1.4 RDF 词汇表和 命名空间 IRI

RDF 词汇表是一组 旨在用于 RDF 图IRI。 例如, [RDF12-SCHEMA] 中记录的 IRI 是 RDF Schema 词汇表。 RDF Schema 本身也可用于定义和记录其他 RDF 词汇表。RDF 1.2 Primer [RDF12-PRIMER] 中提到了一些这样的词汇表。

RDF 词汇表中的 IRI 通常以 一个共同的子串开头,该子串称为命名空间 IRI。 一些命名空间 IRI 按约定与一个称为 命名空间前缀的短名称关联。

本规范中使用的一些命名空间前缀和 IRI
命名空间前缀 命名空间 IRI RDF 词汇表
rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# RDF 内建词汇表 [RDF12-SCHEMA]
rdfs http://www.w3.org/2000/01/rdf-schema# RDF Schema 词汇表 [RDF12-SCHEMA]
xsd http://www.w3.org/2001/XMLSchema# RDF 兼容的 XSD 类型

在一些序列化格式中,常见做法是 将某些 命名空间 IRI 与任意的 命名空间前缀关联起来, 并通过使用相应的 命名空间前缀 来缩写以这些 命名空间 IRI 之一开头的 IRI,从而提高可读性。 例如, 基于上表中的前缀映射, IRI http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral 将被缩写为 rdf:XMLLiteral。 但请注意,这样的缩写并非旨在作为 IRI 直接处理, 也不得用于期望 IRI 的语法上下文中。 还请注意,命名空间 IRI命名空间 前缀并不是 RDF 抽象数据模型的正式组成部分。 它们只是用于缩写 IRI 的语法便利; 在处理时,实际 IRI 通过将每个命名空间前缀替换为相应的命名空间 IRI 来重构。

命名空间”这一术语本身在 RDF 的上下文中没有 明确定义的含义,但有时会被非正式地 用来表示“命名空间 IRI”或“RDF 词汇表”。

1.5 三元组项和具体化

三元组项是作为 另一个三元组中的 RDF 项使用的 RDF 三元组。 作为一个 RDF 三元组,它指称一个命题

具体化三元组是一个三元组,其中谓语rdf:reifies, 且宾语是一个三元组项。 该三元组的主语称为具体化者,并且它可以 是其他三元组的 主语或宾语。

具体化者可以指称与三元组项的命题相关的多种事物, 例如该命题成立的语句或信念。 预期具体化者(而非三元组项)将被 用于进一步的语句。 本节简要描述这种常见用法。 更多示例请参见 RDF 1.2 Primer [RDF12-PRIMER]。

例如,下图表示一个具体化三元组,其对象是一个三元组项;并且还包含一个三元组,该三元组将 具体化者 作为主语。 后者将该具体化者描述为一个由 :Bob 提出的主张,即由被具体化的三元组项指称的命题成立。 换言之,:Bob 主张 :Alice 的 姓氏是 "Liddell"。

3 一个 RDF 图,包含一个具体化 三元组,它从一个具体化者引用一个三元组项(该三元组项未被断言, 用灰色虚线弧表示);并包含一个描述该 具体化者的三元组。

在此示例中,由三元组项指称的命题(即 :Alice 的姓氏是 "Liddell" 这一命题)并未被声称为 真。 只有当作为三元组项使用的三元组也是 RDF 图中的一个断言三元组时,才会如此。 通过使用如图中所示的未断言三元组项,可以对未断言的 语句作出陈述; 例如,当不确定 :Alice 的姓氏是否确实是 "Liddell" 时。

以下是 3 所示图的一个变体。它表示一个图, 其中一个断言三元组对应于一个 具体化三元组三元组项宾语。 在这种情况下, 包括以具体化者为主语的三元组子集——如这些示例中所示—— 称为三元组注解

4 一个 RDF 图,包含一个三元组 注解,其中一个具体化三元组三元组项对应一个断言三元组。 由于存在该断言三元组,图示将命题表示为事实,意味着该 关系成立。

具体语法,例如 Turtle [RDF12-TURTLE],可以为更 简洁地指定具体化三元组三元组注解 提供快捷写法。

最后,出现在三元组项中的 RDF 项,与它们出现在断言三元组中时,具有相同的 指称,该断言三元组位于 中。 例如,来自三元组项的项 :Alice断言三元组中的 :Alice 都指称同一 资源。 因此,我们说三元组项是 透明的

如前所述,具体化者旨在服务于广泛的用例: 某个命题为真的语句或信念、 命题为真的情境、 导致命题成为真的事件, 等等。 由于这种多样性, rdf:reifies 属性的含义是有意保持通用的。

同一抽象命题可以关联多个不同的具体化者, 例如具有不同来源的语句,或 具有不同特征的情境。一个具体化者也可以 用于具体化多个不同的命题, 例如表达同一情境可能源自不同命题这一事实。

由于被具体化的命题不一定成立,因此可以 对任何类型的语句作出陈述,包括一个未断言的 语句,该语句与另一个语句相矛盾,无论后者是否被断言。

1.6 RDF 与随时间变化

RDF 抽象数据模型是非时间性的RDF 图 是信息的静态快照。

然而,给定适当的 词汇表项,RDF 图可以表达关于事件以及其他实体时间方面的信息。

由于 RDF 图被定义为数学 集合,因此向 RDF 图添加或从其中移除三元组会得到一个不同的 RDF 图。

我们非正式地使用术语 RDF 源来指代 一个持久但可变的 RDF 图来源或容器。RDF 源是一个资源, 可以说它具有会随时间变化的状态。 其状态快照可以表示为一个 RDF 图。 例如,任何具有承载 RDF 表示的 Web 文档 都可被视为 RDF 源。像所有资源一样,RDF 源可以 用 IRI 命名,因此也可以在 其他 RDF 图中被描述。

直观地说,论域中的变化 可以通过以下方式体现:

1.7 处理多个 RDF 图

由于 RDF 图是三元组的集合,它们可以 很容易地合并,从而支持使用来自 多个来源的数据。尽管如此,有时仍希望在保持内容分离的同时 处理多个 RDF 图。 RDF 数据集支持这一需求。

RDF 数据集RDF 图的集合。除其中一个图外,所有这些图都有 一个关联的 IRI 或空白节点。它们称为 命名 图,而该 IRI 或空白节点 称为图名。 剩余的图没有关联的 IRI,称为 RDF 数据集的 默认图

RDF 数据集有许多可能的用途。 其中一种用途是保存多个 RDF 源的快照。

1.8 等价性、 蕴涵和不一致性

一个 RDF 三元组指称一个命题 — 一个 简单的逻辑表达式,描述两个实体之间的关系。 断言三元组是对相应命题为真的主张。 RDF 图是其断言三元组所作全部主张的合取(逻辑 AND)。 RDF 三元组RDF 图这一含义的精确细节 是 RDF 1.2 Semantics [RDF12-SEMANTICS] 的主题,它得出 RDF 图之间的以下关系:

蕴涵
如果使 A 为真的每一种可能的世界安排 也会使 B 为真,则一个 RDF 图 A 蕴涵另一个 RDF 图 B。 当 A 蕴涵 B 时,如果 A 的真被假定或证明, 那么 B 的真也就被确立。
等价性
如果两个 RDF 图 AB 对世界作出相同的主张,则它们是等价的。 当且仅当 A 蕴涵 B 并且 B 蕴涵 A 时, A 等价于 B
不一致性
如果一个 RDF 图包含 内部矛盾,则它是不一致的。不存在任何可能的世界安排 能使该表达式为真。

蕴涵机制 [RDF12-SEMANTICS] 是一种规范, 它定义使这些关系成立的精确条件。 RDF 本身只识别一些基本的蕴涵、等价性 和不一致性情况。其他规范,例如 RDF 1.2 Schema [RDF12-SCHEMA] 以及 OWL 2 [OWL2-OVERVIEW], 增加了更强大的蕴涵机制, 某些特定领域的 词汇表也如此。

本规范不约束实现如何 使用由 蕴涵机制定义的逻辑关系。 实现可以检测,也可以不检测 不一致性,并且可以向用户提供全部、 部分或不提供任何被蕴涵的信息。

1.9 RDF 文档和语法

RDF 文档 是一种用具体 RDF 语法编码 RDF 图RDF 数据集的文档, 例如 N-Triples [RDF12-N-TRIPLES]、Turtle [RDF12-TURTLE]、RDFa [RDFA-CORE]、JSON-LD [JSON-LD11],或 TriG [RDF12-TRIG]。RDF 文档支持在系统之间交换 RDF 图和 RDF 数据集。

具体 RDF 语法可以提供 多种不同方式来编码同一个 RDF 图RDF 数据集,例如通过使用 命名空间前缀IRI 引用空白节点标识符, 以及三元组的不同排序。虽然这些方面会极大 影响处理 RDF 文档时的便利性, 但它们对其含义并不重要。

具体 RDF 语法的基础是 抽象数据模型的结构, 称为抽象语法; 概括在以下两个表中。

RDF 图的抽象语法
产生式 定义为
RDF 图 三元组集合,包含零个或多个三元组
三元组 一个由 主语谓语宾语组成的三元组
主语 或者是一个 IRI 或者是一个空白节点
谓语 一个 IRI
宾语 或者是一个 IRI 或者是一个空白节点 或者是一个字面量 或者是一个三元组

RDF 数据集的抽象语法
产生式 定义为
RDF 数据集 一个由默认图零个或多个命名图集合组成的
默认图 一个 RDF 图
命名图 一个由 图名和一个 RDF 图 组成的
图名 或者是一个 IRI 或者是一个空白节点

1.10 RDF 版本声明

为了让 RDF 解析器尽早对不支持的 RDF 版本报错或发出警告, RDF 序列化格式预期允许指定版本, 方式可以是媒体类型参数、 格式特定语法中的版本声明, 或两者兼用。

当版本同时在媒体类型参数和语法中指示时, 它们预期应当相同。 如果它们不同, 解析器会使用媒体类型参数中的版本,并可能就不匹配发出警告。

为了尽可能广泛地保持与旧解析器的兼容性, 仅鼓励使用 RDF 1.2 特定功能的 RDF 文档 声明其版本(即,对于未使用 RDF 1.2 特定功能的 RDF 文档,不鼓励声明版本)。

要在使用 Content-Type 标头的 HTTP 响应中声明版本, 服务器预期使用 version 参数, 如以下示例响应所示。

HTTP/1.1 200 OK
Content-Type: text/turtle; version=1.2
Location: http://example.com/document.ttl

当格式支持内联版本声明时, 服务器也预期以内联方式声明版本 (例如 RDF 1.2 Turtle [RDF12-TURTLE])。

从 HTTP 服务器请求 RDF 文档时,客户端 可以在内容协商 [WEBARCH]期间 使用 version 参数, 通过将其包含在 Accept 请求标头中, 如以下示例请求所示。

GET /document.ttl HTTP/1.1
Host: example.com
Accept: text/turtle; version=1.2

2.1 版本标签一节定义了 与 version 参数以及具体 RDF 语法一起使用的版本标签

由于 HTTP 内容协商是建议性的, 因此接收文档的客户端应准备好正确处理所请求媒体类型的文档, 即便该文档可能具有与所请求版本不同的 version。 客户端可以考虑自行将内容降级到适当版本, 如2.1.1 服务器考量中所讨论。

2. 一致性

除标记为非规范性的章节外,本规范中的所有编写指南、图示、示例和注释都是非规范性的。 本规范中的其他所有内容都是规范性的。

本文档中的关键字 MAYMUSTMUST NOTRECOMMENDEDSHOULDSHOULD NOT 应按照 BCP 14 [RFC2119] [RFC8174] 中的描述解释,但仅当它们如这里所示全部以 大写形式出现时才如此。

本规范 RDF 1.2 Concepts and Abstract Data Model 定义了一个抽象数据模型和相关词汇表,供 其他规范使用,例如 具体 RDF 语法、 API 规范和查询语言。 实现无法直接符合 RDF 1.2 Concepts and Abstract Data Model, 但可以符合规范性引用此处定义术语的其他规范。

本规范建立了两个一致性级别:

2.1 版本标签

版本标签是一个字符串,用于标识 RDF 数据的语法和语义一致性。

版本标签
版本标签 语法 语义
"1.2" RDF 1.2 语法 RDF 1.2 Semantics
"1.2-basic" 不含三元组项的 RDF 1.2 语法 RDF 1.2 Semantics
"1.1" 除使用版本指令外的 RDF 1.1 语法 RDF 1.1 Semantics

符合版本 "1.1" 的数据作为版本 "1.2-basic" 的数据是有效的, 符合版本 "1.2-basic" 的数据作为版本 "1.2" 的数据也是有效的。 符合版本 "1.1" 的数据在 RDF 1.1 SemanticsRDF 1.2 Semantics 下具有相同的语义。

有关将 "1.2" 编码为 "1.2-basic" 的详细信息,请参见 RDF 1.2 Interoperability

对于支持内联版本声明的序列化, 版本声明SHOULD尽早在文档中作出, 并且当然应在序列化任何依赖该版本的特性之前作出。

2.1.1 服务器考量

本节是非规范性的。

在序列化使用了与所请求版本不兼容特性的图或数据集时, 服务器可以考虑不同的替代方案:

  1. 通过使用如 RDF 1.2 Interoperability 中定义的基本编码等算法,消除三元组项 (从版本 "1.2" 降级到 "1.2-basic")。
  2. 带方向的语言标记字符串 替换为字面量,其具有一个使用 [JSON-LD11] 中定义的 i18n 命名空间数据类型 IRI (从版本 "1.2" 或 "1.2-basic" 降级到 "1.1")。
  3. 返回 406 "Not Acceptable"
  4. 忽略所请求的版本并返回原生表示。

这里的建议是遵循 鲁棒性原则 (也称为 Postel 定律): 服务器应在发送内容时保守,在接受内容时宽容。

2.1.2 客户端考量

本节是非规范性的。

如果文档未声明 version(无论通过 HTTP 标头还是内部声明), 系统可以假定版本为 "1.2",该版本继续 支持所有先前的 RDF 版本。

在解析带有冲突版本的文档时, 或在解析使用不受支持版本的文档时,解析器 可以执行以下任一操作:

  • 忽略版本指令。
  • 抛出错误并中止。
  • 发出警告并忽略该三元组。
  • 解析结构,并仅发出与声明版本一致的三元组。

2.2 RDF 中的字符串

RDF 使用 Unicode [Unicode] 作为字符串 值的基础表示。 在本规范及相关规范中,术语 RDF 字符串, 或简称为字符串, 用于描述由零个或多个 Unicode 码点 组成的有序序列,这些码点是 Unicode 标量值。 Unicode 标量值不包括 代理码点。 请注意,大多数 具体 RDF 语法要求使用 UTF-8 字符编码 [RFC3629], 并使用 \u0000\U00000000 形式来表示某些非字符 值。

如果一个字符串由相同的码点序列组成,则它与另一个字符串相同。 实现MAY通过比较 使用相同 Unicode 字符编码 (UTF-8 或 UTF-16)的两个字符串的 代码 单元来确定字符串相等性,而无需将字符串解码为 Unicode 码点序列。

3. RDF 图

RDF 图是一组 RDF 三元组

作为 RDF 图元素的 RDF 三元组也被称为在该 RDF 图中被断言

3.1 三元组

RDF 三元组 (通常简称为“三元组”) 是按如下方式归纳定义的三元组:

RDF 三元组的三个组成部分(s, p, o) 分别称为该三元组的主语谓语宾语

三元组的定义是递归的。 也就是说,一个三元组本身可以具有一个 宾语 组成部分,而该组成部分是另一个三元组。 然而,根据此定义,无法创建三元组的循环。

RDF 图节点集合 是该图的断言三元组主语宾语的集合。 谓语 IRI 也可能作为节点出现在 同一个图中。

三元组 相等性: 当且仅当以下三个条件全部成立时,两个三元组(s, p, o)和(s', p', o') 相等(即同一个 RDF 三元组)。

3.2 RDF 项

IRI字面量空白 节点三元组项统称为 RDF 项

IRI字面量空白节点被称为 基本 RDF 项

RDF 项相等性: 当且仅当以下四个条件之一成立时,两个 RDF 项 tt' 相等(即同一个 RDF 项):

出现在 RDF 三元组 t 中的RDF 项集合按如下方式归纳定义,其中 出现

引申地说,如果一个 RDF 项出现在某个 RDF 图断言 三元组中,则称其出现在该 RDF 图中。 如果一个 RDF 三元组是该图的断言 三元组,或者是一个三元组项出现在该图中, 则称其出现在一个 RDF 图中。

如果一个 RDF 项满足以下三个条件之一,则称其为基的

引申地说,如果一个 RDF 三元组主语谓语宾语 全部都是基的,则称该 RDF 三元组是基的。 如果一个 RDF 图的所有断言三元组都是基的,则称该 RDF 图是基的

3.3 IRI

RDF 图中的 IRI (Internationalized Resource Identifier,国际化资源标识符) 是一个符合 RFC 3987 [RFC3987] 所定义语法的 字符串

RDF 抽象语法中的 IRI MUST 按照 [RFC3986] 被解析,并且 MUST NOT 是一个相对引用IRI MAY 包含一个 片段标识符IRI SHOULD 遵循由 IRI 方案定义的规则。

IRI 相等性: 当且仅当两个 IRI 由相同的 Unicode 码点序列组成时, 它们相等,如 [RFC3987] 第 5.3.1 节中的简单字符串比较所述。 (这是在抽象语法中完成的,因此 IRI 是 已解析的 IRI,不带转义或编码。) 在此比较之前MUST NOT执行进一步规范化。

为方便起见,F. IRI 语法中提供了 来自 [RFC3987] 的完整 [ABNF] 语法。

URI 和 IRI: IRI 是 URI [RFC3986] 的泛化, 它允许更广范围的 Unicode 字符 [UNICODE]。 每个 URI 和 URL 都是 IRI,但并非每个 IRI 都是 URI。 在 RDF 中,IRI 被用作 IRI 引用,如 [RFC3987] 第 1.3 节中所定义。 IRI 引用是 Internationalized Resource Identifier 的常见用法。 IRI 引用指的是一个 已解析的 IRI 或一个相对 IRI 引用, 如 F. IRI 语法中的 IRI-reference 产生式所述。 抽象语法只使用完全解析的 IRI。 当 IRI 用于仅针对 URI 定义的操作时, 必须先按照 [RFC3987] 第 3.1 节 中定义的映射进行转换。一个显著 示例是通过 HTTP 协议进行检索。该映射涉及对非 ASCII 字符进行 UTF-8 编码、对 URI 中不允许的八位字节进行 %-编码,以及 对域名进行 Punycode 编码。

URL: URL 现行标准在很大程度上与 [RFC3987] IRI 兼容, 但它基于一种对 Web 浏览器内实现很重要的处理模型, 并且不是使用 [ABNF] 语法描述的。

3.3.1 RDF 引用 IRI

本节是非规范性的。

本节向数据发布者提供建议。

IRI用于 指称资源,并且每个 IRI 都应标识同一个 资源,无论该 IRI 在何处 使用。 请注意,由 [RFC3987] 定义的 IRI 通用语法可以表达 不满足作为全局引用这一要求的 IRI。某些 URI 方案会增加额外要求;例如, HTTP URI 方案定义了 http-URI,它 要求存在非空主机名,因此, 路径组件将以 / 开头。 [RFC3987] 语法允许 http:abcdhttp:///abcd 这样的 IRI, 但它们无效,因为它们不满足 HTTP URI 方案定义。

RDF 引用 IRI, 有时简称为 RDF 引用, 是一个适合作为全局引用使用的 IRI

引用解析: RDF 引用 IRI引用解析后保持不变。 在 httphttpsURI 方案中, 路径组件 是解析算法可见层次的一部分。解析后, 路径组件/ 字符开头,并且不包含 ... 段。 例如,https://example/data 相对于任何基 IRI 解析后仍为 https://example/data(不变),而 https://example/path/../data 相对于任意基 IRI 解析后为 https://example.com/data

相对 IRI 引用: 一些具体 RDF 语法允许 相对 IRI 引用 (参见 IRI 语法中的 irelative-ref 产生式) 作为一种方便的简写,使 RDF 文档可以在不知道其最终发布位置的情况下创作。 相对 IRI 引用必须 相对于一个 IRI解析。 因此,此类语法中序列化的 RDF 图只有在 IRI 可以建立时,才是明确定义的 [RFC3986]。

URI 方案: 鼓励实现遵循常见方案的特定于方案的规则,例如 HTTP/HTTPS 的方案规则DID 语法。 对于不识别的方案,实现会忽略 URI 方案规则。

IRI 规范化: 通过只创建按 [RFC3987] 第 5 节 规范化的 IRI,可以避免互操作性问题。

  • 在方案名称中使用小写字符。
  • 仅在 IRI 语法要求时使用字符的百分号编码。
  • 省略 HTTP 或 HTTPS 默认端口;http://example/ 优先于 http://example:80/
  • 在百分号编码三元组中使用大写十六进制字母; “%3F”优先于 “%3f”。
  • HTTP IRI 中的空路径 http://example/ 优先于 没有路径的 http://example
  • 规范化 IRI,以移除 IRI 路径 组件中的“/./”和“/../”。
  • 在域名中使用小写字符。 请注意,虽然域名中的 ASCII 字符不区分大小写, 但域名中的非 ASCII 字符区分大小写 [RFC5890]。 域名通常只用小写字母注册 [RFC5892]。
  • 避免在 IRI 中对国际化域名 [RFC5890] 使用 A-label (ASCII、punycode 编码名称])。
  • 使用 Unicode 规范化形式 C [I18N-Glossary] 中的 IRI。

3.4 字面量

字面量用于字符串、数字和日期等值。

字面量由 两个、三个或四个组成部分构成,如下所示:

  1. 词法形式,即一个 RDF 字符串
  2. 数据类型 IRI,即一个标识数据类型的 IRI, 该数据类型决定词法形式如何映射到 字面量值
  3. 当且仅当 数据类型 IRIhttp://www.w3.org/1999/02/22-rdf-syntax-ns#langStringhttp://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString 时,存在一个 非空的语言标签,如 [BCP47] 所定义。 语言标签MUST根据 [BCP47] 的 第 2.2.9 节 格式良好,并且MUST据此处理,即以不区分大小写的方式处理。 两个符合 [BCP47] 的字符串,如果仅大小写不同, 表示同一个语言标签
  4. 当且仅当 数据类型 IRIhttp://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString 时,存在一个 基方向,且该方向MUST是以下之一:
    • ltr,表示初始文本方向被设置为从左到右
    • rtl,表示初始文本方向被设置为从右到左

如果存在语言标签基方向不存在, 则字面量是一个带语言标记的字符串。 如果语言标签基方向 都存在,则字面量是一个带方向的语言标记字符串

字面量项相等性: 如果且仅如果以下全部为真,两个字面量就是项相等的(即同一个 RDF 项):

3.4.1 字面量的表示

一些具体语法支持 简单字面量,它们仅由一个 词法形式组成,不带任何数据类型 IRI语言标签基方向。 简单字面量是抽象语法 字面量的语法糖, 其数据类型 IRIhttp://www.w3.org/2001/XMLSchema#string (通常缩写为 xsd:string)。

类似地,大多数具体语法在表示 带语言标记的字符串带方向的语言标记字符串时不包含 数据类型 IRI,因为它总是分别为 http://www.w3.org/1999/02/22-rdf-syntax-ns#langStringrdf:langString) 或 http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangStringrdf:dirLangString)。

任何符合 [BCP47] 的字符串,都MAY用于在具体语法或实现中表示 语言标签。 此类字符串MAY进行大小写规范化 (例如,按 BCP 47 第 4.5 节定义进行规范化)。 或者,实现MAY保留原始表示中的大小写, 前提是以不区分大小写的方式处理它。

3.4.2 字面量值

字面量关联的 字面量值定义如下。

由上可知,两个字面量可以具有相同的值, 但不是同一个 RDF 项。 例如:

"1"^^xsd:integer
"01"^^xsd:integer

指称相同的,但不是 同一个字面量 RDF 项,因为它们的 词法形式不同。

3.4.3 初始文本方向

本节是非规范性的。

带方向的 语言标记字符串基方向 提供了一种建立文本初始方向的方式, 包括混合从右到左和从左到右文字的文本。 Unicode 双向算法 [I18N-Glossary] 支持 自动按逻辑顺序呈现 字符序列, 使其按预期的视觉顺序排列, 但这并不总是足以正确呈现双向文本。

考虑书名 "HTML and CSS: Designing Websites" 的阿拉伯语译文。 在从左到右的上下文中(例如英文网页), 具备适当的双向隔离没有显式 基方向时, 它会被错误地显示如下:

HTML و CSS: تصميم مواقع الويب

而正确的呈现如下:

HTML و CSS: تصميم مواقع الويب

该示例表明,在可能遇到双向文本的上下文中, 使用带方向的 语言标记字符串 而不是简单的带语言标记的字符串 是很重要的。

请注意,语言和基方向处理的是字符串外部的双向问题, 这些问题与在上下文中正确显示字符串有关 (例如,避免溢出效应 问题)。它不处理字符串内部的方向问题, 后者可能出现在更复杂的示例中,例如:

"HTML و CSS: تصميم مواقع الويب" is the Arabic title of the book.

表示该示例的带方向的语言标记字符串 将具有语言标签 en 和基方向 ltr, 但还需要特定的 Unicode 双向格式化字符,以隔离并标记 引号之间的文本为 rtl

其他数据类型提供了它们自己的方式来编码语言和双向文本, 例如 rdf:HTMLrdf:XMLLiteral

3.5 空白节点

空白节点IRI字面量不相交。除此之外, 可能的空白节点集合是任意的。RDF 不引用 空白节点的任何内部结构。

空白节点 相等性: 当且仅当两个空白节点是同一个空白节点时,它们相等。

空白节点标识符 是在某些 具体 RDF 语法 或 RDF 存储实现中使用的局部标识符。 它们始终局部限定于文件或 RDF 存储, 并且不是空白节点的持久或可移植标识符。 空白节点标识符不是 RDF 抽象数据模型的一部分,而完全依赖于 具体语法或实现。因此,空白节点标识符的语法限制 (如果有)也取决于 具体 RDF 语法或实现。处理具体语法中空白节点 标识符的实现需要小心,不要从同一个空白节点标识符的多次出现 创建同一个空白节点, 除非语法支持这种情况。

术语 "blank node label" 有时被非正式地 用作术语空白节点标识符的替代说法。 这一替代说法也曾在 一些 RDF 相关规范的早期版本中使用,例如 [SPARQL11-QUERY]。 为了一致性,现在不鼓励使用这一替代 术语。

3.6 三元组项

作为另一个三元组宾语使用的 RDF 三元组称为三元组项。 在给定的 RDF 图中,一个三元组可以作为 三元组项断言 三元组,或两者同时出现。

三元组项相等性: 由于三元组项是三元组,三元组项的相等性与三元组相等性相同。

3.7 图比较

本节引入 RDF 图 的图同构概念,它基于RDF 项之间的映射, 该映射将空白节点映射到空白节点, 并且对 IRI 和字面量是恒等函数。

从所有 RDF 项的集合到同一集合的函数 M 称为同构 RDF 项映射, 如果它具有以下所有性质:

两个 RDF 图 GG'同构的 (也就是说,它们具有相同的形式), 如果存在一个同构 RDF 项映射 M,使得 三元组(s, p, o)在 G 中,当且仅当 三元组(M(s), M(p), M(o))在 G' 中。

根据此定义,M 表明如何将 G 中的每个空白节点替换为 一个新的空白节点,从而得到 G'。图同构 是支持 RDF Test Cases [RDF11-TESTCASES] 规范所必需的。

4. RDF 数据集

RDF 数据集RDF 图的集合,并由以下内容组成:

空白 节点可以在 一个 RDF 数据集中的多个图之间共享。

尽管“命名图”中使用了“名称”一词, 图名并不要求指称该图。它 只是从语法上与图配对。RDF 对图名可以指称什么 资源没有任何 形式限制, 也不限制该资源与图之间的关系。 关于不同 RDF 数据集语义的讨论可见于 [RDF11-DATASETS]。

一些 RDF 数据集实现不会 跟踪空的命名图。应用 可以通过不重视空命名图是否存在来避免 互操作性问题。

SPARQL 版本 1.2 [SPARQL12-CONCEPTS] 使用 与 RDF 版本 1.1 和 1.2 相同的 RDF 数据集概念, 其中命名图的图名可以是 IRI 或空白节点。 相比之下,SPARQL 查询语言版本 1.1 [SPARQL11-QUERY] 只允许图名为 IRI。

4.1 RDF 数据集比较

两个 RDF 数据集 D1D2 (分别具有默认图 DG1DG2,以及 命名图集合 NG1NG2) 当且仅当存在一个同构 RDF 项映射 M 使以下所有性质成立时,它们是数据集同构的

4.2 RDF 数据集的 内容协商

本节是非规范性的。

Web 资源可以具有多个表示,这些表示可通过 内容协商 [WEBARCH] 提供。某个表示可以 以支持表达 RDF 数据集RDF 图二者的 RDF 序列化 格式返回。如果返回的是 RDF 数据集, 而消费者期望的是 RDF 图, 则消费者预期使用该RDF 数据集的默认图。

4.3 作为四元组集合的数据集

本节是非规范性的。

四元组是一个与可选图 名关联的三元组, 并在引用 RDF 数据集中的三元组时使用。

四元组可以 表示为由主语谓语宾语 和一个可选图名组成的元组。

RDF 数据集可被视为一个四元组集合, 其中没有图名的四元组提供默认图三元组, 而具有相同图名的四元组 提供具有该名称的命名图的三元组。

虽然没有图名四元组三元组由相同的三个组成部分构成, 但它是一个不同的概念, 因为它专门捕捉 RDF 数据集默认图 内的三元组这一概念。

5. 数据类型

数据类型与 RDF 字面量 一起用于表示字符串、数字和日期等值。 RDF 中使用的数据类型抽象与 XML Schema [XMLSCHEMA11-2] 兼容。 任何符合 此抽象的数据类型定义都MAY用于 RDF,即使它不是 以 XML Schema 定义的。RDF 复用了许多 XML Schema 内建数据类型,并定义了三个附加数据类型: rdf:JSONrdf:HTMLrdf:XMLLiteral

数据类型由一个词法空间、 一个值 空间以及一个词法到值映射组成,并 由一个或多个 IRI标识。

数据类型的词法空间是一组字符串

数据类型的词法到值映射是一组 对,其第一个元素属于词法空间, 第二个元素属于该数据类型的值空间。 词法空间的每个成员都与恰好 一个值配对,并且是该值的词法表示。 该映射可被视为一个从词法空间到值空间的函数。

带语言标记的字符串具有数据类型 IRI http://www.w3.org/1999/02/22-rdf-syntax-ns#langString (通常缩写为 rdf:langString)。 没有为此 IRI 正式定义数据类型, 因为 数据类型的定义无法容纳 语言标签位于词法空间中。 与此数据类型 IRI 关联的值空间是由字符串和语言标签组成的所有对的集合。 类似地,带方向的语言标记字符串 http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString (通常缩写为 rdf:dirLangString) 在值空间中还具有一个基方向。 与此数据类型 IRI 关联的值空间是由字符串、语言标签和基方向组成的所有三元组的集合。

例如,XML Schema 数据类型 xsd:boolean 定义如下,其中值空间的每个成员都有两个词法 表示:

词法空间:
{"true", "false", "1", "0"}
值空间:
{true, false}
词法到值映射
{ <"true", true>, <"false", false>, <"1", true>, <"0", false>, }

可以使用此 数据类型定义的字面量 为:

此表列出 xsd:boolean 类型的字面量。
字面量
<"true", xsd:boolean> true
<"false", xsd:boolean> false
<"1", xsd:boolean> true
<"0", xsd:boolean> false

5.1 XML Schema 内建 数据类型

形如 http://www.w3.org/2001/XMLSchema#xxxIRI, 其中 xxx 是数据类型的名称,指称 W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes [XMLSCHEMA11-2] 中定义的内建数据类型。 下表列出的 XML Schema 内建类型是 RDF 兼容的 XSD 类型RECOMMENDED使用它们。

读者可能会注意到,用于传输 二进制信息的唯一安全数据类型是 xsd:hexBinaryxsd:base64Binary

RDF 兼容 XSD 类型及其简短描述列表
数据类型 值空间(资料性)
核心类型 xsd:string 字符串
xsd:boolean true、false
xsd:decimal 任意精度十进制数
xsd:integer 任意大小整数
IEEE 浮点
xsd:double 64 位浮点数,含 ±Inf、±0、NaN
xsd:float 32 位浮点数,含 ±Inf、±0、NaN
时间和日期 xsd:date 日期(yyyy-mm-dd),带或不带时区
xsd:time 时间(hh:mm:ss.sss…),带或不带时区
xsd:dateTime 日期和时间,带或不带时区
xsd:dateTimeStamp 带必需时区的日期和时间
重复和
部分日期
xsd:gYear 公历年份
xsd:gMonth 公历月份
xsd:gDay 公历每月中的日期
xsd:gYearMonth 公历年份和月份
xsd:gMonthDay 公历月份和日
持续时间 xsd:duration 时间持续时长
xsd:yearMonthDuration 时间持续时长(仅月份和年份)
xsd:dayTimeDuration 时间持续时长(仅天、小时、分钟、秒)
有限范围
整数
xsd:byte -128…+127(8 位)
xsd:short -32768…+32767(16 位)
xsd:int -2147483648…+2147483647(32 位)
xsd:long -9223372036854775808…+9223372036854775807(64 位)
xsd:unsignedByte 0…255(8 位)
xsd:unsignedShort 0…65535(16 位)
xsd:unsignedInt 0…4294967295(32 位)
xsd:unsignedLong 0…18446744073709551615(64 位)
xsd:positiveInteger 整数 >0
xsd:nonNegativeInteger 整数 ≥0
xsd:negativeInteger 整数 <0
xsd:nonPositiveInteger 整数 ≤0
编码后的二进制数据 xsd:hexBinary 十六进制编码的二进制数据
xsd:base64Binary Base64 编码的二进制数据
其他
XSD 类型
xsd:anyURI 已解析或相对的 URIIRI 引用
xsd:language 按 [BCP47] 的语言标签
xsd:normalizedString 空白规范化后的字符串
xsd:token 标记化字符串
xsd:NMTOKEN XML NMTOKEN
xsd:Name XML Name
xsd:NCName XML NCName

词法到值映射对于 xsd:floatxsd:double MUST使用与 doubleLexicalMap一致的方法, 该方法MUST严格符合 floatPtRound [XMLSCHEMA11-2] 中描述的舍入方法。

其他 XML Schema 内建数据类型由于各种原因并不适合, 并且SHOULD NOT使用:

xsd:doublexsd:float值空间并不 包含所有十进制数。对于 这两个数据类型中任一数据类型的每个字面量,其 字面量值都是一个可以表示为相应精度的 IEEE 754-2008 二进制浮点表示的值。 例如,词法形式为 "0.1" 且数据类型为 xsd:float 的字面量指称 数字 0.100000001490116119384765625。 若要准确捕获任意十进制数,可以使用 数据类型 xsd:decimal, 而不是 xsd:doublexsd:float

5.2 数据类型 IRI

数据类型由 IRI标识。

如果形如 http://www.w3.org/2001/XMLSchema#xxx 的任何 IRI 由 RDF 实现处理,那么对于第 5.1 节列出的每个 XSD 类型, 它都MUST指向名为 xsd:xxx 的 RDF 兼容 XSD 类型。

由以下三个 IRI 标识的数据类型定义于 附录 A. 附加数据类型

RDF 实现不要求处理所有数据类型。 任何类型化为 RDF 实现未处理数据类型的字面量 都像未知 IRI 一样处理,即 指向未知事物。 如果应用无法确定类型化字面量中所用 IRI 的 所指对象,它们MAY给出警告消息。 RDF 实现SHOULD NOT 将具有未知数据类型的字面量作为语法或 语义错误而拒绝。

其他规范MAY数据类型 IRI施加附加约束,例如,要求支持 某些数据类型。

RDF 的语义扩展可能选择 识别其他数据类型 IRI, 并要求它们各自指向固定的数据类型。 有关语义扩展的更多信息,请参见 RDF 1.2 Semantics [RDF12-SEMANTICS]。

Web Ontology Language [OWL2-OVERVIEW] 提供了用于正式定义 可与 RDF 一起使用的自定义 数据类型的功能。此外,[SWBP-XSCH-DATATYPES] 建议了一种 标识 用户定义的简单 XML Schema 数据类型 的实践。RDF 实现 不要求支持这两种功能中的任一种。

在 RDF 1.1 中,已识别的数据类型 IRI 定义于 RDF Concepts 中,与 RDF Semantics 中“识别” 用于语义扩展的数据类型 IRI 的概念重叠。

6. 片段标识符

本节是非规范性的。

RDF 使用 IRI,它们 可以包含 片段 标识符, 作为资源标识符。 片段标识符的语义 定义于 RFC 3986 [RFC3986]:它们标识 次级资源, 该资源通常是主要资源的一部分、视图、定义于其中或描述于其中, 且其精确语义取决于 对主要资源执行检索操作后可能得到的表示集合。

本节讨论在编码 RDF 图的表示中 如何处理片段标识符。

在主要资源的携带 RDF 的表示中,例如 <https://example.com/foo>, 由片段标识符(例如 bar)标识的次级资源, 是在 RDF 图中由完整 IRI 指称资源,在本例中即 <https://example.com/foo#bar>。 由于 RDF 图中的 IRI 可以指称任何事物,这可以是 表示之外的事物,甚至可以是 Web 之外的事物。

通过这种方式,携带 RDF 的表示充当 可通过 Web 访问的主要资源与某组可能 非 Web 或抽象实体之间的中介,而这些实体可能由 RDF 图描述。

在其他规范约束携带 RDF 的表示中 片段标识符语义的情况下,编码的 RDF 图应以与这些约束一致的方式使用片段标识符。 例如,在 HTML+RDFa 文档 [HTML-RDFA] 中, 像 chapter1 这样的片段标识符可以通过 HTML 的 @name@id 属性语义标识一个文档章节。这样的 IRI,例如 <#chapter1>,随后应被视为在同一文档内任何 RDFa 编码的 三元组指称同一章节。 类似地,在具有多个表示且这些表示通过 内容 协商 [WEBARCH] 提供的资源中, 片段标识符也应被一致使用。例如,如果片段标识符 chapter1 在主要资源的 HTML 表示中标识一个 文档章节,那么 IRI <#chapter1> 应被视为 在同一主要资源的所有携带 RDF 的表示中 指称该 同一章节。

7. RDF 三元组、图和数据集的 泛化

本节是非规范性的。

有时放宽对 RDF 三元组的要求会很方便。例如,借助 对称 RDF 三元组的概念,更容易展示 RDFS 蕴涵规则的完备性。

7.1 对称 RDF

对称 RDF 三元组允许主语是 对象位置允许的任何 RDF 项,即 IRI空白节点字面量, 或三元组项 (其本身可以是对称 RDF 三元组)之一。 对称 RDF 图是一组对称 RDF 三元组。 对称 RDF 数据集 由一个特定的对称 RDF 图,以及零个 或多个对组成,每个对将一个 IRI 或一个空白 节点 与一个对称 RDF 图关联。

对称 RDF 三元组、图和数据集与 标准的、规范性 RDF 三元组数据集 的区别仅在于允许 IRI空白 节点字面量三元组项 出现在主语和宾语位置。

7.2 广义 RDF

广义 RDF 三元组是一个具有主语、 谓语和宾语的三元组,其中每个组成部分都可以是一个 IRI空白节点字面量三元组项 (其本身可以是广义 RDF 三元组)。 广义 RDF 图 是一组广义 RDF 三元组。一个 广义 RDF 数据集 由一个特定的广义 RDF 图,以及零个 或多个对组成,每个对将一个 IRI、 一个空白节点、 一个字面量 或一个三元组项 (其本身可以是广义 RDF 三元组) 与一个广义 RDF 图关联。

广义 RDF 三元组、图和数据集与 标准的、规范性 RDF 三元组数据集的唯一区别 是允许 IRI空白 节点字面量三元组项出现在 任意位置,即作为主语、谓语、宾语或图名。

任何使用 对称或广义 RDF 三元组、图或数据集的用户都需要 意识到这些概念是 RDF 的非标准扩展,其使用可能导致互操作性问题。 并不要求任何 RDF 工具 接受、处理或产生超出标准 规范性 RDF 三元组、图和数据集之外的任何内容。

A. 附加数据类型

本节定义 RDF 实现MAY支持的附加数据类型

A.1 rdf:HTML 数据类型

RDF 提供将 HTML 内容作为可能的字面量值。 这允许在字面量值中包含标记。此类内容在 RDF 图中通过一个字面量指示,该字面量的数据类型 被设置为 rdf:HTML

rdf:HTML 数据类型定义如下:

指称此 数据类型的 IRI
http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML
值空间
是 DOM DocumentFragment 节点 [DOM] 的集合。两个 DocumentFragment 节点 nodeotherNode 被认为相等,当且仅当 DOM 方法 node.isEqualNode(otherNode) [DOM] 返回 true
词法到值映射

词法空间的每个成员都与 应用以下算法的结果关联:

HTML 内容中所需的任何语言注解(lang="…")、 文本方向性注解(dir="…")或 XML 命名空间(xmlns) 都必须显式包含在 HTML 字面量中。诸如 href 等属性中的相对 URL 没有明确定义的 基 URL,因此最好避免。 RDF 应用可以使用附加的等价关系, 例如将一个 xsd:string 与一个 对应于同一字符串的单个文本节点的 rdf:HTML 字面量关联起来的关系。

A.2 rdf:XMLLiteral 数据类型

RDF 提供将 XML 内容作为可能的字面量值。 此类内容在 RDF 图中通过一个字面量指示, 其数据类型被设置为 rdf:XMLLiteral

rdf:XMLLiteral 数据类型定义如下:

指称此 数据类型IRI
http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
词法空间
是所有字符串的集合,这些字符串是良好平衡的、 自包含的 XML 内容 [XML11]; 并且将其嵌入到任意 XML 开始标签和结束标签之间会得到一个符合 Namespaces in XML 1.0 (Third Edition) [XML-NAMES] 的文档。
值空间
是 DOM DocumentFragment 节点 [DOM] 的集合。两个 DocumentFragment 节点 nodeotherNode 被认为相等,当且仅当 DOM 方法 node.isEqualNode(otherNode) 返回 true
词法到值映射

词法空间的每个成员都与应用以下 算法的结果关联:

XML 内容中所需的任何 XML 命名空间声明(xmlns)、 语言注解(xml:lang)或基 URI 声明 (xml:base)都必须显式包含 在 XML 字面量中。请注意,某些具体 RDF 语法 可以定义从上下文继承它们的机制(例如, RDF/XML [RDF12-XML] 中的 @parseType="literal")。

A.3 rdf:JSON 数据类型

RDF 提供将 JSON 内容作为可能的字面量值。 这包括允许在字面量值中包含标记。此类内容在 RDF 图中被指示为一个字面量,其数据类型被设置 为 rdf:JSON

rdf:JSON 数据类型定义如下:

指称此数据类型IRI
http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON
词法空间
是所有符合 JSON 语法RDF 字符串的集合,如 [RFC8259] 第 2 节 JSON 语法中所述, 并且还符合 The I-JSON Message Format [RFC7493] 的要求。
The JavaScript Object Notation (JSON) Data Interchange Format [RFC8259] 允许字符串包含 代理码点, 而这些码点在 RDF 字符串中不被允许, 并且在 [RFC7493] 中也被排除, 因此 JSON 字面量的词法表示不包括那些包含 代理码点的表示。
值空间
是包含以下内容的最小集合: 字符串、 数字(xsd:double)、 有限无序映射(将 字符串映射到值 空间中的值)、 列表 (其元素为值空间中的值),以及来自 Infra Standard [INFRA] 和 W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes [XMLSCHEMA11-2] 的字面量值(truefalsenull)。

有限无序映射和 列表的值空间 不包含以自身为成员的值, 这种值无法用 JSON 表示。

当且仅当两个值是值空间中的同一个元素时,才认为它们相等。

词法到值映射
将词法空间中的每个元素映射为将其解析成 字符串、 数字(xsd:double)、 有限无序映射、 列表或 字面量值(truefalsenull)后的结果。

有限无序映射可以通过 系统性地按键对键值对排序(使用 Unicode 码点顺序),用 有序 映射 [INFRA] 来实现。 这确保了仅对象成员顺序不同的词法形式(例如 {"a": "b", "c": "d"}{"c": "d", "a": "b"})会映射到同一个 值。

B. 用 IRI 替换空白节点

空白节点在 RDF 抽象数据模型中没有标识符。某些具体语法引入的 空白节点标识符 只有局部作用域,并且纯粹是序列化的产物。

在需要更强标识的情况下,系统MAY 系统性地将 RDF 图中的部分或全部空白节点替换为 IRI。希望这样做的系统SHOULD 为每个被替换的空白节点铸造一个新的、全局 唯一的 IRI(即 Skolem IRI)。

此变换会产生一个蕴涵原图的新图 (另见 Skolemization。 在此上下文中,重要的是要注意 Skolem IRI 和空白节点在本质上 不同:IRI 直接指称资源,而空白节点只表示 某个资源的存在。通过产生 Skolem IRI,我们为这种存在创建了具体见证。 由于 Skolem IRI 不是局部的,这允许其他图 后续使用它们,而这对于空白节点而言是不可能的。

系统可能希望以某种方式铸造 Skolem IRI,使它们能够 识别这些 IRI 是仅为替换空白节点而引入的。 在某些上下文中,这允许系统在需要时将 Skolem IRI 映射回空白节点。

希望 Skolem IRI 能在系统边界之外被识别的系统 SHOULD使用一个具有已注册名称 genid 的知名 IRI [RFC8615]。这是一个使用 HTTP 或 HTTPS 方案, 或另一个已指定使用知名 IRI 的方案,并且其 路径组件以 /.well-known/genid/ 开头的 IRI

例如,负责域 example.com 的权威机构可以铸造以下可识别的 Skolem IRI

http://example.com/.well-known/genid/d26a2d0e98334696f4ad70a677abc1f6

RFC 8615 [RFC8615] 只规定 知名 URI, 而不是 IRI。就本文档而言,知名 IRI 是任何在进行 IRIURI 映射 [RFC3987] 后 得到知名 URIIRI

C. 隐私考量

本节是非规范性的。

RDF 用于表达任意应用数据, 其中可能包括个人可识别信息(PII) 或其他可被视为敏感的信息。 建议发布此类信息的作者仔细 考虑发布此类信息的需求和用途, 以及数据预计被消费和可能被披露的地区所适用的法规(例如 GDPRCCPA其他法规), 尤其是访问这些数据是否需要授权措施。

D. 安全考量

本节是非规范性的。

RDF 抽象数据模型不直接用于传达信息。 具体序列化形式才是专门用于此目的的。

应用可以评估给定数据以推断更多断言,或解引用 IRI, 从而触发该 IRI 所用方案的安全考量。 尤其请注意 [RFC3023] 第 10 节中关于 HTTP IRI 的隐私问题。 从不准确或恶意数据源获得的数据可能导致不准确或误导性的结论, 以及对非预期 IRI 的解引用。 必须小心使所咨询资源的信任程度与 数据预期用途的敏感性相匹配; 对潜在医疗治疗的推断很可能需要不同于 旅行规划推断的信任程度。

RDF 用于表达任意应用数据; 安全考量将因使用领域而异。 适用于文本的安全工具和协议 (例如 PGP 加密、校验和验证、受密码保护的压缩) 也可用于 RDF 文档。 应强制采用反映嵌入信息敏感性的安全/隐私协议。

RDF 可以表达呈现给用户的数据,例如 RDF Schema 标签。 渲染从不受信任 RDF 文档中检索的字符串, 或使用未转义字符的应用, 应使用警告和其他适当手段来限制 恶意字符串可能被用来误导读者的可能性。 XML 媒体类型注册中的安全考量([RFC3023] 第 10 节) 提供了关于表达任意数据和标记的额外指导。

RDF 使用 IRI 作为项 标识符。 解释以 RDF 表达的数据的应用应处理 Internationalized Resource Identifiers (IRIs) [RFC3987] 第 8 节,以及 Uniform Resource Identifier (URI): Generic Syntax [RFC3986] 第 7 节中的安全问题。

多个 IRI 可以 具有相同外观。 不同文字系统中的字符可能看起来相似(例如, 西里尔字母“о”可能看起来类似拉丁字母“o”)。 一个字符后跟组合字符可能具有与另一个字符相同的视觉表示 (例如,LATIN SMALL LETTER "E" 后跟 COMBINING ACUTE ACCENT 与 LATIN SMALL LETTER "E" WITH ACUTE 具有相同的视觉表示)。 任何编写或解释 RDF 数据的人或应用 都必须注意使用与预期语义相匹配的 IRI, 并避免可能看起来相似的 IRI。 关于匹配视觉上相似字符的更多信息可见于 Unicode Security Considerations [UNICODE-SECURITY] 和 Internationalized Resource Identifiers (IRIs) [RFC3987] 第 8 节。

比较图, 或对其进行推理, 通常依赖于计算(子)图同构, 而众所周知,这在最坏情况下具有计算复杂性。 查询图也可能涉及计算复杂的 操作。 这意味着恶意图可以被构造出来,使 RDF 实现停滞或耗尽 内存。 处理来自不受信任来源的图的实现预期应提供缓解措施; 示例见 [RDF-CANON] 中关于 Dataset Poisoning 的章节。

这些考量是 [RDF12-TURTLE]、[RDF12-TRIG]、 [RDF12-N-TRIPLES] 和 [RDF12-N-QUADS] 的安全考量的更通用形式。

E. 国际化 考量

本节是非规范性的。

Unicode [UNICODE] 提供了一种在字符串内发出方向信号的机制 (参见 Unicode 双向算法 [I18N-Glossary])。 RDF 提供了一种机制,用于指定 带方向的语言标记字符串基方向, 以发出字符串初始文本方向的信号。 对于大多数人类语言字符串,尤其是那些 基方向无法从字符串内容准确确定的字符串, 拥有一个外部指示符对于获得值的正确显示和隔离 是很有价值的。 此类指示符的一个示例是 [HTML] dir 属性; 参见 [STRING-META]。

JSON-LD 1.1 [JSON-LD11] 引入了 i18n 命名空间,以使用 一种数据类型同时指定 RDF 字面量的基方向和语言标签

F. IRI 语法

本节是非规范性的。

以下 [ABNF] 语法将 [RFC3987] 和 [RFC6874] 中的变更应用于 [RFC3986] 中的 URI 的汇总 ABNF章节,以给出 IRI 的合并 语法。

这仅为方便而提供。 如果它与 [RFC3986]、[RFC3987] 或任何后续 更新中的定义不同, 则应使用那些定义。

IRI            = scheme ":" ihier-part [ "?" iquery ] [ "#" ifragment ]

ihier-part     = "//" iauthority ipath-abempty
               / ipath-absolute
               / ipath-rootless
               / ipath-empty

IRI-reference  = IRI / irelative-ref

absolute-IRI   = scheme ":" ihier-part [ "?" iquery ]

irelative-ref  = irelative-part [ "?" iquery ] [ "#" ifragment ]

irelative-part = "//" iauthority ipath-abempty
               / ipath-absolute
               / ipath-noscheme
               / ipath-empty

scheme         = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

iauthority     = [ iuserinfo "@" ] ihost [ ":" port ]
iuserinfo      = *( iunreserved / pct-encoded / sub-delims / ":" )
ihost          = IP-literal / IPv4address / ireg-name
port           = *DIGIT

IP-literal     = "[" ( IPv6address / IPv6addrz / IPvFuture  ) "]"

ZoneID         = 1*( unreserved / pct-encoded )

IPv6addrz      = IPv6address "%25" ZoneID

IPvFuture      = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )

IPv6address    =                            6( h16 ":" ) ls32
               /                       "::" 5( h16 ":" ) ls32
               / [               h16 ] "::" 4( h16 ":" ) ls32
               / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
               / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
               / [ *3( h16 ":" ) h16 ] "::"    h16 ":"   ls32
               / [ *4( h16 ":" ) h16 ] "::"              ls32
               / [ *5( h16 ":" ) h16 ] "::"              h16
               / [ *6( h16 ":" ) h16 ] "::"

h16            = 1*4HEXDIG
ls32           = ( h16 ":" h16 ) / IPv4address
IPv4address    = dec-octet "." dec-octet "." dec-octet "." dec-octet

dec-octet      = DIGIT                 ; 0-9
               / %x31-39 DIGIT         ; 10-99
               / "1" 2DIGIT            ; 100-199
               / "2" %x30-34 DIGIT     ; 200-249
               / "25" %x30-35          ; 250-255

ireg-name      = *( iunreserved / pct-encoded / sub-delims )

ipath          = ipath-abempty   ; begins with "/" or is empty
               / ipath-absolute  ; begins with "/" but not "//"
               / ipath-noscheme  ; begins with a non-colon segment
               / ipath-rootless  ; begins with a segment
               / ipath-empty     ; zero characters

ipath-abempty  = *( "/" isegment )
ipath-absolute = "/" [ isegment-nz *( "/" isegment ) ]
ipath-noscheme = isegment-nz-nc *( "/" isegment )
ipath-rootless = isegment-nz *( "/" isegment )
ipath-empty    = 0

isegment       = *ipchar
isegment-nz    = 1*ipchar
isegment-nz-nc = 1*( iunreserved / pct-encoded / sub-delims / "@" )
               ; non-zero-length segment without any colon ":"

ipchar         = iunreserved / pct-encoded / sub-delims / ":" / "@"

iquery         = *( ipchar / iprivate / "/" / "?" )

ifragment      = *( ipchar / "/" / "?" )

iunreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~" / ucschar

ucschar        = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF
               / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD
               / %x40000-4FFFD / %x50000-5FFFD / %x60000-6FFFD
               / %x70000-7FFFD / %x80000-8FFFD / %x90000-9FFFD
               / %xA0000-AFFFD / %xB0000-BFFFD / %xC0000-CFFFD
               / %xD0000-DFFFD / %xE1000-EFFFD

iprivate       = %xE000-F8FF / %xF0000-FFFFD / %x100000-10FFFD

pct-encoded    = "%" HEXDIG HEXDIG

unreserved     = ALPHA / DIGIT / "-" / "." / "_" / "~"
reserved       = gen-delims / sub-delims
gen-delims     = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims     = "!" / "$" / "&" / "'" / "(" / ")"
               / "*" / "+" / "," / ";" / "="

ABNF 也可以直接从 iri-grammar.abnf 访问。

G. 致谢

本节是非规范性的。

G.1 RDF 1.0 致谢

本节是非规范性的。

本规范原始版本的编辑是 Graham Klyne(Nine by Nine)和 Jeremy J. Carroll(Hewlett Packard Labs)。

本文档包含来自 Pat Hayes、Sergey Melnik 和 Patrick Stickler 的重要贡献, 在他们的领导下,开发了 RDF 规范系列中描述的 用于表示带数据类型值(如整数和日期)的框架。

编辑感谢以下人员的宝贵贡献: Frank Manola、Pat Hayes、Dan Brickley、Jos de Roo、Dave Beckett、 Patrick Stickler、Peter F. Patel-Schneider、Jerome Euzenat、Massimo Marchiori、 Tim Berners-Lee、Dave Reynolds 和 Dan Connolly。

Jeremy Carroll 感谢 Oreste Signore, 他在意大利 W3C 办公室以及 Istituto di Scienza e Tecnologie dell'Informazione "Alessandro Faedo" (Consiglio Nazionale delle Ricerche 的一部分)接待了 Jeremy,Jeremy 在那里担任访问研究员。

本文档是 RDFcore 工作组长期审议的成果, 其成员包括: Art Barstow(W3C)、Dave Beckett(ILRT)、Dan Brickley (ILRT)、Dan Connolly(W3C)、 Jeremy Carroll(Hewlett Packard)、Ron Daniel(Interwoven Inc)、Bill dehOra(InterX)、 Jos De Roo(AGFA)、Jan Grant(ILRT)、Graham Klyne(Nine by Nine)、 Frank Manola(MITRE Corporation)、Brian McBride(Hewlett Packard)、 Eric Miller(W3C)、Stephen Petschulat(IBM)、Patrick Stickler(Nokia)、 Aaron Swartz(HWG)、Mike Dean(BBN Technologies / Verizon)、 R. V. Guha(Alpiri Inc)、Pat Hayes(IHMC)、Sergey Melnik(Stanford University)以及 Martyn Horner(Profium Ltd)。

本规范还借鉴了 Ora Lassilla 和 Ralph Swick 编辑的早期 RDF Model and Syntax 文档, 以及 Dan Brickley 和 R. V. Guha 编辑的 RDF Schema。 对这项早期工作作出贡献的 RDF 和 RDF Schema 工作组成员包括: Nick Arnett(Verity)、Tim Berners-Lee(W3C)、Tim Bray (Textuality)、 Dan Brickley(ILRT / University of Bristol)、Walter Chang(Adobe)、Sailesh Chutani(Oracle)、 Dan Connolly(W3C)、Ron Daniel(DATAFUSION)、Charles Frankston(Microsoft)、 Patrick Gannon(CommerceNet)、 R. V. Guha(Epinions,曾任职于 Netscape Communications)、Tom Hill(Apple Computer)、 Arthur van Hoff(Marimba)、Renato Iannella(DSTC)、Sandeep Jain(Oracle)、 Kevin Jones(InterMind)、Emiko Kezuka(Digital Vision Laboratories)、 Joe Lapp(webMethods Inc.)、Ora Lassila(Nokia Research Center)、Andrew Layman(Microsoft)、 Ralph LeVan(OCLC)、John McCarthy(Lawrence Berkeley National Laboratory)、 Chris McConnell(Microsoft)、Murray Maloney(Grif)、 Michael Mealling(Network Solutions)、Norbert Mikula(DataChannel)、 Eric Miller(OCLC)、Jim Miller(W3C,荣休)、 Frank Olken(Lawrence Berkeley National Laboratory)、Jean Paoli(Microsoft)、 Sri Raghavan(Digital/Compaq)、Lisa Rein(webMethods Inc.)、 Paul Resnick(University of Michigan)、Bill Roberts(KnowledgeCite)、 i Tsuyoshi Sakata(Digital Vision Laboratories)、Bob Schloss(IBM)、 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.)以及 Lauren Wood(SoftQuad)。

G.2 RDF 1.1 致谢

本节是非规范性的。

本规范 RDF 1.1 版本的编辑是 Richard Cyganiak(DERI)、 David Wood(3 Round Stones)和 Markus Lanthaler(Graz University of Technology)。

编辑感谢 Thomas Baker、 Tim Berners-Lee、David Booth、Dan Brickley、Gavin Carothers、Jeremy Carroll、 Pierre-Antoine Champin、Dan Connolly、John Cowan、Martin J. Dürst、 Alex Hall、Steve Harris、Sandro Hawke、Pat Hayes、Ivan Herman、Peter F. Patel-Schneider、 Addison Phillips、Eric Prud'hommeaux、Nathan Rixham、Andy Seaborne、Leif Halvard Silli、 Guus Schreiber、Dominik Tomaszuk 和 Antoine Zimmermann 的宝贵贡献。

RDF 工作组成员包括 Thomas Baker、 Scott Bauer、Dan Brickley、Gavin Carothers、Pierre-Antoine Champin、 Olivier Corby、Richard Cyganiak、Souripriya Das、Ian Davis、Lee Feigenbaum、 Fabien Gandon、Charles Greer、Alex Hall、Steve Harris、Sandro Hawke、 Pat Hayes、Ivan Herman、Nicholas Humfrey、Kingsley Idehen、Gregg Kellogg、 Markus Lanthaler、Arnaud Le Hors、Peter F. Patel-Schneider、 Eric Prud'hommeaux、Yves Raimond、Nathan Rixham、Guus Schreiber、 Andy Seaborne、Manu Sporny、Thomas Steiner、Ted Thibodeau、Mischa Tuffield、 William Waites、Jan Wielemaker、David Wood、Zhe Wu 和 Antoine Zimmermann。

G.3 RDF 1.2 致谢

本节是非规范性的。

除编辑外,以下人员也为本规范作出了贡献: Denis Ah-Kang, doerthe, Dominik Tomaszuk, Enrico Franconi, james anderson, Niklas Lindström, Peter F. Patel-Schneider, Ruben Taelman, Sarven Capadisli, Ted Thibodeau Jr, Thomas Tanon, and William Van Woensel

RDF & SPARQL 工作组成员包括 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,以及 Antoine Zimmermann。

编辑说明

是否认可任务组成员?贡献者列表并不容易找到。

H. RDF 1.1 和 RDF 1.2 之间的变更

本节是非规范性的。

RDF 版本 1.1 和 1.2 之间差异的详细概览可见于 What’s New in RDF 1.2 [RDF12-NEW]。

I. 索引

I.1 本规范定义的术语

I.2 通过引用定义的术语

J. 参考文献

J.1 规范性参考文献

[BCP47]
用于标识语言的标签。A. Phillips,编;M. Davis,编。IETF。2009 年 9 月。最佳当前实践。URL:https://www.rfc-editor.org/rfc/rfc5646
[DOM]
DOM 标准。Anne van Kesteren。WHATWG。 现行标准。URL:https://dom.spec.whatwg.org/
[HTML5]
HTML5。Ian Hickson;Robin Berjon;Steve Faulkner;Travis Leithead;Erika Doyle Navara;Theresa O'Connor;Silvia Pfeiffer。W3C。2018 年 3 月 27 日。W3C 推荐标准。URL:https://www.w3.org/TR/html5/
[I18N-GLOSSARY]
国际化术语表。 Richard Ishida;Addison Phillips。W3C。2024 年 10 月 17 日。W3C 工作组说明。URL:https://www.w3.org/TR/i18n-glossary/
[INFRA]
Infra 标准。Anne van Kesteren;Domenic Denicola。WHATWG。现行标准。URL:https://infra.spec.whatwg.org/
[RDF11-TESTCASES]
RDF 1.1 测试用例。Gregg Kellogg; Markus Lanthaler。W3C。2014 年 2 月 25 日。W3C 工作组说明。URL:https://www.w3.org/TR/rdf11-testcases/
[RFC2119]
RFC 中用于表示 要求等级的关键词。S. Bradner。IETF。1997 年 3 月。最佳当前实践。URL:https://www.rfc-editor.org/rfc/rfc2119
[RFC3629]
UTF-8,ISO 10646 的一种变换格式。F. Yergeau。IETF。2003 年 11 月。互联网标准。URL:https://www.rfc-editor.org/rfc/rfc3629
[RFC3986]
统一资源标识符(URI):通用 语法。T. Berners-Lee;R. Fielding;L. Masinter。IETF。2005 年 1 月。互联网 标准。URL:https://www.rfc-editor.org/rfc/rfc3986
[RFC3987]
国际化资源标识符 (IRI)。M. Duerst;M. Suignard。IETF。2005 年 1 月。拟议标准。URL:https://www.rfc-editor.org/rfc/rfc3987
[RFC7493]
I-JSON 消息格式。T. Bray,编。IETF。2015 年 3 月。拟议标准。URL:https://www.rfc-editor.org/rfc/rfc7493
[RFC8174]
RFC 2119 关键词中大写与小写的歧义。B. Leiba。IETF。2017 年 5 月。最佳当前实践。URL:https://www.rfc-editor.org/rfc/rfc8174
[RFC8259]
JavaScript 对象表示法(JSON)数据 交换格式。T. Bray,编。IETF。2017 年 12 月。互联网标准。URL:https://www.rfc-editor.org/rfc/rfc8259
[RFC8615]
知名统一资源标识符 (URI)。M. Nottingham。IETF。2019 年 5 月。拟议标准。URL:https://www.rfc-editor.org/rfc/rfc8615
[Unicode]
Unicode 标准。Unicode Consortium。URL:https://www.unicode.org/versions/latest/
[XML-NAMES]
XML 1.0 中的命名空间(第三版)。 Tim Bray;Dave Hollander;Andrew Layman;Richard Tobin;Henry Thompson 等。W3C。2009 年 12 月 8 日。 W3C 推荐标准。URL:https://www.w3.org/TR/xml-names/
[XML11]
可扩展标记语言(XML)1.1(第二 版)。Tim Bray;Jean Paoli;Michael Sperberg-McQueen;Eve Maler;François Yergeau;John Cowan 等。W3C。2006 年 8 月 16 日。W3C 推荐标准。URL:https://www.w3.org/TR/xml11/
[XMLSCHEMA11-2]
W3C XML Schema 定义语言(XSD)1.1 第 2 部分:数据类型。David Peterson;Sandy Gao;Ashok Malhotra;Michael Sperberg-McQueen;Henry Thompson;Paul V. Biron 等。W3C。2012 年 4 月 5 日。W3C 推荐标准。URL: https://www.w3.org/TR/xmlschema11-2/

J.2 资料性参考文献

[ABNF]
用于语法规范的扩展 BNF: ABNF。D. Crocker,编;P. Overell。IETF。2008 年 1 月。互联网标准。URL:https://www.rfc-editor.org/rfc/rfc5234
[COOLURIS]
面向语义 Web 的酷 URI。Leo Sauermann;Richard Cyganiak。W3C。2008 年 12 月 3 日。W3C 工作组说明。URL:https://www.w3.org/TR/cooluris/
[did-core]
去中心化标识符(DID)v1.0。 Manu Sporny;Amy Guy;Markus Sabadello;Drummond Reed。W3C。2022 年 7 月 19 日。W3C 推荐标准。URL: https://www.w3.org/TR/did-core/
[HTML]
HTML 标准。Anne van Kesteren; Domenic Denicola;Dominic Farolino;Ian Hickson;Philip Jägenstedt;Simon Pieters。WHATWG。现行 标准。URL:https://html.spec.whatwg.org/multipage/
[HTML-RDFA]
HTML+RDFa 1.1 - 第二版。Manu Sporny。W3C。2015 年 3 月 17 日。W3C 推荐标准。URL:https://www.w3.org/TR/html-rdfa/
[JSON-LD11]
JSON-LD 1.1。Gregg Kellogg; Pierre-Antoine Champin;Dave Longley。W3C。2020 年 7 月 16 日。W3C 推荐标准。URL:https://www.w3.org/TR/json-ld11/
[LINKED-DATA]
链接数据设计 问题。Tim Berners-Lee。W3C。2006 年 7 月 27 日。W3C 内部文档。URL:https://www.w3.org/DesignIssues/LinkedData.html
[OWL2-OVERVIEW]
OWL 2 Web 本体语言文档概述 (第二版)。W3C OWL 工作组。W3C。2012 年 12 月 11 日。W3C 推荐标准。URL:https://www.w3.org/TR/owl2-overview/
[OWL2-SYNTAX]
OWL 2 Web 本体语言结构 规范和函数式语法(第二版)。Boris Motik;Peter Patel-Schneider;Bijan Parsia。W3C。2012 年 12 月 11 日。W3C 推荐标准。URL:https://www.w3.org/TR/owl2-syntax/
[RDF-CANON]
RDF 数据集规范化。Gregg Kellogg;Dave Longley;Dan Yamamoto。W3C。2024 年 5 月 21 日。W3C 推荐标准。URL:https://www.w3.org/TR/rdf-canon/
[RDF-CONCEPTS-20040210]
资源描述框架 (RDF):概念和抽象语法。Graham Klyne;Jeremy Carroll。W3C。2004 年 2 月 10 日。W3C 推荐标准。URL:https://www.w3.org/TR/2004/REC-rdf-concepts-20040210/
[RDF11-CONCEPTS]
RDF 1.1 概念和抽象 语法。Richard Cyganiak;David Wood;Markus Lanthaler。W3C。2014 年 2 月 25 日。 W3C 推荐标准。URL:https://www.w3.org/TR/rdf11-concepts/
[RDF11-DATASETS]
RDF 1.1:关于 RDF 数据集的语义。Antoine Zimmermann。W3C。2014 年 2 月 25 日。W3C 工作组说明。URL: https://www.w3.org/TR/rdf11-datasets/
[RDF11-MT]
RDF 1.1 语义。Patrick Hayes;Peter Patel-Schneider。W3C。2014 年 2 月 25 日。W3C 推荐标准。URL:https://www.w3.org/TR/rdf11-mt/
[RDF12-INTEROP]
RDF 1.2 互操作性。 Pierre-Antoine Champin。W3C。W3C 编辑草案。URL:https://w3c.github.io/rdf-interop/spec/
[RDF12-N-QUADS]
RDF 1.2 N-Quads。Gregg Kellogg; Dominik Tomaszuk。W3C。2026 年 3 月 20 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-n-quads/
[RDF12-N-TRIPLES]
RDF 1.2 N-Triples。Gregg Kellogg; Dominik Tomaszuk。W3C。2026 年 3 月 26 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-n-triples/
[RDF12-NEW]
RDF 1.2 新特性。W3C RDF & SPARQL 工作组。W3C。W3C 编辑草案。URL:https://w3c.github.io/rdf-new/spec/
[RDF12-PRIMER]
RDF 1.2 入门。Niklas Lindström; Pierre-Antoine Champin。W3C。2025 年 4 月 3 日。DNOTE。URL:https://www.w3.org/TR/rdf12-primer/
[RDF12-SCHEMA]
RDF 1.2 Schema。Dominik Tomaszuk。 W3C。2026 年 3 月 20 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-schema/
[RDF12-SEMANTICS]
RDF 1.2 语义。Peter Patel-Schneider;Dörthe Arndt;Enrico Franconi。W3C。2026 年 3 月 26 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-semantics/
[RDF12-TRIG]
RDF 1.2 TriG。Gregg Kellogg;Dominik Tomaszuk。W3C。2026 年 3 月 20 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-trig/
[RDF12-TURTLE]
RDF 1.2 Turtle。Gregg Kellogg; Dominik Tomaszuk。W3C。2026 年 3 月 20 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-turtle/
[RDF12-XML]
RDF 1.2 XML 语法。Gregg Kellogg; Jerven Bolleman。W3C。2026 年 3 月 26 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-xml/
[RDFA-CORE]
RDFa Core 1.1 - 第三版。Ben Adida;Mark Birbeck;Shane McCarron;Ivan Herman 等。W3C。2015 年 3 月 17 日。W3C 推荐标准。URL: https://www.w3.org/TR/rdfa-core/
[RFC3023]
XML 媒体类型。M. Murata;S. St. Laurent;D. Kohn。IETF。2001 年 1 月。拟议标准。URL:https://www.rfc-editor.org/rfc/rfc3023
[RFC5890]
应用中的国际化域名 (IDNA):定义和文档框架。J. Klensin。IETF。2010 年 8 月。拟议标准。URL:https://www.rfc-editor.org/rfc/rfc5890
[RFC5892]
Unicode 码点和应用中的国际化 域名(IDNA)。P. Faltstrom,编。IETF。2010 年 8 月。 拟议标准。URL:https://www.rfc-editor.org/rfc/rfc5892
[RFC6874]
在地址 字面量和统一资源标识符中表示 IPv6 区域标识符。B. Carpenter;S. Cheshire;R. Hinden。 IETF。2013 年 2 月。拟议标准。URL:https://www.rfc-editor.org/rfc/rfc6874
[rfc7230]
超文本传输协议(HTTP/1.1): 消息语法和路由。R. Fielding,编;J. Reschke,编。IETF。2014 年 6 月。 拟议标准。URL:https://httpwg.org/specs/rfc7230.html
[SPARQL11-QUERY]
SPARQL 1.1 查询语言。Steven Harris;Andy Seaborne。W3C。2013 年 3 月 21 日。W3C 推荐标准。URL:https://www.w3.org/TR/sparql11-query/
[SPARQL12-CONCEPTS]
SPARQL 1.2 概念。W3C RDF & SPARQL 工作组。W3C。W3C 编辑草案。URL:https://w3c.github.io/sparql-concepts/spec/
[SPARQL12-ENTAILMENT]
SPARQL 1.2 蕴涵机制。 Peter Patel-Schneider。W3C。2025 年 8 月 14 日。W3C 工作草案。URL:https://www.w3.org/TR/sparql12-entailment/
[SPARQL12-FEDERATED-QUERY]
SPARQL 1.2 联合 查询。Ruben Taelman;Gregory Williams。W3C。2026 年 1 月 26 日。W3C 工作草案。 URL:https://www.w3.org/TR/sparql12-federated-query/
[SPARQL12-GRAPH-STORE-PROTOCOL]
SPARQL 1.2 图存储 协议。Andy Seaborne;Thomas Pellissier Tanon。W3C。2024 年 12 月 19 日。W3C 工作草案。URL:https://www.w3.org/TR/sparql12-graph-store-protocol/
[SPARQL12-NEW]
SPARQL 1.2 新特性。W3C RDF & SPARQL 工作组。W3C。W3C 编辑草案。URL:https://w3c.github.io/sparql-new/spec/
[SPARQL12-PROTOCOL]
SPARQL 1.2 协议。Andy Seaborne;Ruben Taelman;Gregory Williams;Thomas Pellissier Tanon。W3C。2025 年 8 月 14 日。W3C 工作 草案。URL:https://www.w3.org/TR/sparql12-protocol/
[SPARQL12-QUERY]
SPARQL 1.2 查询语言。Olaf Hartig;Andy Seaborne;Ruben Taelman;Gregory Williams;Thomas Pellissier Tanon。W3C。2026 年 3 月 23 日。 W3C 工作草案。URL:https://www.w3.org/TR/sparql12-query/
[SPARQL12-RESULTS-CSV-TSV]
SPARQL 1.2 查询结果 CSV 和 TSV 格式。Ruben Taelman;Gregory Williams;Thomas Pellissier Tanon。W3C。2025 年 8 月 14 日。W3C 工作草案。URL:https://www.w3.org/TR/sparql12-results-csv-tsv/
[SPARQL12-RESULTS-JSON]
SPARQL 1.2 查询结果 JSON 格式。Andy Seaborne;Ruben Taelman;Gregory Williams;Thomas Pellissier Tanon。 W3C。2025 年 8 月 14 日。W3C 工作草案。URL:https://www.w3.org/TR/sparql12-results-json/
[SPARQL12-RESULTS-XML]
SPARQL 1.2 查询结果 XML 格式。Ruben Taelman;Dominik Tomaszuk;Thomas Pellissier Tanon。W3C。2024 年 12 月 27 日。W3C 工作草案。URL:https://www.w3.org/TR/sparql12-results-xml/
[SPARQL12-SERVICE-DESCRIPTION]
SPARQL 1.2 服务 描述。Ruben Taelman;Gregory Williams。W3C。2026 年 3 月 19 日。W3C 工作 草案。URL:https://www.w3.org/TR/sparql12-service-description/
[SPARQL12-UPDATE]
SPARQL 1.2 Update。Ruben Taelman; Andy Seaborne;Thomas Pellissier Tanon。W3C。2025 年 8 月 14 日。W3C 工作草案。URL:https://www.w3.org/TR/sparql12-update/
[STRING-META]
Web 上的字符串:语言和方向 元数据。Richard Ishida;Addison Phillips。W3C。2024 年 10 月 17 日。W3C 工作 组说明。URL:https://www.w3.org/TR/string-meta/
[SWBP-N-ARYRELATIONS]
在语义 Web 上定义 N 元关系。Natasha Noy;Alan Rector。W3C。2006 年 4 月 12 日。W3C 工作组说明。URL: https://www.w3.org/TR/swbp-n-aryRelations/
[SWBP-XSCH-DATATYPES]
RDF 和 OWL 中的 XML Schema 数据类型。Jeremy Carroll;Jeff Pan。W3C。2006 年 3 月 14 日。W3C 工作组说明。URL: https://www.w3.org/TR/swbp-xsch-datatypes/
[UNICODE-SECURITY]
Unicode 安全 考量。Mark Davis;Michel Suignard。Unicode Consortium。2014 年 9 月 19 日。Unicode 技术报告 #36。URL:https://www.unicode.org/reports/tr36/tr36-15.html
[URL]
URL 标准。Anne van Kesteren。WHATWG。 现行标准。URL:https://url.spec.whatwg.org/
[VOCAB-ORG]
组织本体。Dave Reynolds。W3C。2014 年 1 月 16 日。W3C 推荐标准。URL:https://www.w3.org/TR/vocab-org/
[WEBARCH]
万维网架构,第一 卷。Ian Jacobs;Norman Walsh。W3C。2004 年 12 月 15 日。W3C 推荐标准。URL:https://www.w3.org/TR/webarch/