RDF 1.2 N-Triples

RDF 图的基于行的语法

W3C 工作草案

关于本文档的更多详情
本版本:
https://www.w3.org/TR/2026/WD-rdf12-n-triples-20260624/
最新发布版本:
https://www.w3.org/TR/rdf12-n-triples/
最新编辑草案:
https://w3c.github.io/rdf-n-triples/spec/
历史:
https://www.w3.org/standards/history/rdf12-n-triples/
提交历史
测试套件:
https://w3c.github.io/rdf-tests/rdf/rdf12/rdf-n-triples/
实现报告:
https://w3c.github.io/rdf-tests/rdf/rdf12/reports/
最新推荐标准:
https://www.w3.org/TR/n-triples
编辑:
Gregg Kellogg(至 2025-09-06),谨此 纪念
Dominik Tomaszuk
前任编辑:
Gavin Carothers(RDF 1.1)
Andy Seaborne(RDF 1.1)
作者:
David Beckett
反馈:
GitHub w3c/rdf-n-triples拉取请求新建议题未关闭议题
public-rdf-star-wg@w3.org 主题行请写 [rdf12-n-triples] … 消息主题 …存档

摘要

N-Triples 是一种基于行的纯文本格式,用于编码 RDF 图

RDF 1.2 N-Triples 引入了 三元组项 作为第四类 RDF 项, 可用作另一个 三元组对象, 从而可以对其他语句作出语句。 RDF 1.2 N-Triples 还新增了对 带方向的语言标记字符串的支持。

本文档状态

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

本文档是 RDF 1.2 文档套件的一部分。 N-Triples 格式是一种基于行的 RDF 语法, 基于 Turtle [RDF12-TURTLE] 的一个子集。

为退出 W3C 候选推荐标准阶段, W3C RDF & SPARQL 工作组 要求至少两个独立实现通过 专用测试套件中的每项测试。

本文档由 RDF & SPARQL 工作组作为 工作草案发布,并使用 推荐标准 轨道

发布为 工作草案并不意味着 W3C 及其成员的认可。

这是一份草案文档,随时可能被其他 文档更新、替换或废弃。除作为进行中的工作外, 不宜引用本文档。 此即将成为推荐标准的文档的未来更新可能会纳入 新特性

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

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

1. 引言

本节为非规范性内容。

本文档定义了 N-Triples,这是一种用于 RDF [RDF12-CONCEPTS] 的具体语法。 N-Triples 是 Turtle [RDF12-TURTLE] 的一个易于解析的基于行的子集。

该语法是最初在 RDF Test Cases [RDF-TESTCASES] 文档中定义的 N-Triples 的修订版本。 其最初意图是用于编写测试用例, 但事实证明它作为 RDF 数据的交换格式很受欢迎。 本规范进一步扩展了 [N-TRIPLES] 中定义的语法,以 支持 [RDF12-CONCEPTS] 引入的新特性。 此扩展完全向后兼容。

一个 N-Triples 文档可以包含一种解析 指令, 用于声明内容的 RDF 版本。 参见 2.2 版本声明

N-Triples 三元组是表示一个 RDF 三元组主语谓语宾语 的 RDF 项序列。 这些项可以由空白符(空格和/或 制表符)分隔。 此序列以句点(.)结束, 后面可选地跟随空白符和/或注释, 以及换行(在文档末尾可选)。

示例 1:N-Triples 中 注释的使用

<http://one.example/subject1> <http://one.example/predicate1> <http://one.example/object1> . # comments here
# or on a line by themselves
_:subject1 <http://an.example/predicate1> "object1" .
_:subject2 <http://an.example/predicate2> "object2" .

N-Triples 三元组也是 Turtle 简单三元组, 但 Turtle 包含 RDF 项的其他表示方式以及 RDF 三元组的缩写。 当由 Turtle 解析器解析时, N-Triples 格式的数据将产生与 N-Triples 语言解析器完全相同的三元组。

N-Triples 文档所表示的 RDF 图包含 与 N-Triples triple 产生式匹配的每一个 三元组

2. N-Triples 语言

本节为非规范性内容。

一个 N-Triples 文档允许以文本形式写下一个 RDF 图。 RDF 图由简单三元组组成, 这些三元组包含一个 主语谓语宾语 以及可选的空行。 注释可以出现在一个不属于 其他词法记号的 # 之后,并持续到行末。

2.1 简单三元组

最简单的三元组语句是 (主语谓语宾语)项的序列, 并以句点(.)终止。 空白符(空格 U+0020 或制表符 U+0009) 可以出现在各项周围, 但语法中说明为有意义的位置除外。

注释按空白符处理,并且可以出现在一个不属于 其他词法记号的 # 之后, 并持续到行末。

示例 2: 简单三元组

<http://example.org/#spiderman> <http://www.perceive.net/schemas/relationship/enemyOf> <http://example.org/#green-goblin> .

2.2 版本声明

N-Triples 语言自诞生以来不断演进,RDF 1.2 添加了新语法。 RDF 1.2 N-Triples 引入了 VERSION 指令, 以及可选的 version 媒体类型参数。 在分别序列化和解析带有新特性(例如 初始文本方向三元组项)的 N-Triples 时, 作者和解析器可以使用这些指令来声明和检测新语法形式的使用; 类似地, HTTP 客户端和服务器可以使用 version 媒体类型 参数

与 Turtle 不同,版本声明区分大小写。

示例 3:版本声明

VERSION "1.2"
<http://example.org/#spiderman> <http://www.perceive.net/schemas/relationship/enemyOf> <http://example.org/#green-goblin> .

通过 HTTP 传输内容时,发送方和接收方可以使用可选的 version 媒体类型参数 声明或请求版本:

示例 4:HTTP 版本声明

GET /document.nt HTTP/1.1
Host: example.com
Accept: application/n-triples; version=1.2

有关使用版本声明的更多考量,参见 [RDF12-TURTLE] 中的 版本声明

2.3 三元组项

三元组项 可以作为一个 RDF 三元组宾语

三元组项 表示为一个 tripleTerm,其中包含 subjectpredicateobject, 前面带有 <<(, 后面跟有 )>>。 注意,三元组项 可以嵌套。

示例 5: 三元组项

VERSION                                                     "1.2"
_:e38  <ex:familyName>                                      "Smith" .
_:anno <http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies> <<( _:e38 <http://example.com/jobTitle> "Designer" )>> .
_:anno <http://example.com/accordingTo>                     _:e22 .

2.4 IRI

IRI 只能写成 已解析的 IRI。 IRI 前面带有 <, 后面跟有 >, 并且可以包含数值转义序列。 例如 <http://example.org/#green-goblin>

2.5 RDF 字面量

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

字面量(语法产生式 Literal) 具有一种词法形式,后面跟有 语言标记 (可能包括初始文本方向)、 数据类型 IRI, 或者两者都没有。

词法形式的表示由一个 初始定界符 "、 一系列允许的字符或 数值转义序列字符串转义序列, 以及一个最终定界符组成。

字面量不得包含字符 "LFCR, 除非这些字符采用转义形式。 此外,\ 不得出现在任何带引号的字面量中,除非它是转义序列的一部分, 并且 " 字符 只能使用转义序列包含在带引号的字面量中。

相应的词法形式 是处理任何转义序列之后、位于定界符之间的字符。 如果存在,LANG_DIR 终结符会匹配语言标记 以及可选的初始文本方向语言标记 前面带有 @, 如果存在,初始文本方向语言标记 之间由 -- 分隔。 如果没有语言标记,则可以有一个 数据类型 IRI, 前面带有 ^^。 如果没有数据类型 IRI,也没有语言标记,则 它是一个简单字面量, 且数据类型为 http://www.w3.org/2001/XMLSchema#string

示例 6: N-Triples 中的字面量

VERSION     "1.2"
<http://example.org/show/218> <http://www.w3.org/2000/01/rdf-schema#label> "That Seventies Show"^^<http://www.w3.org/2001/XMLSchema#string> . # literal with XML Schema string datatype
<http://example.org/show/218> <http://www.w3.org/2000/01/rdf-schema#label> "That Seventies Show" . # same as above
<http://example.org/show/218> <http://example.org/show/localName> "That Seventies Show"@en . # literal with a language tag
<http://example.org/show/218> <http://example.org/show/localName> "That Seventies Show"@en-ltr . # literal with a language tag and an initial text direction
<http://example.org/show/218> <http://example.org/show/localName> "Cette Série des Années Septante"@fr-be .  # literal outside of ASCII range with a region subtag
<http://example.org/#spiderman> <http://example.org/text> "This is a multi-line literal with many quotation marks (""""") and two apostrophes ('')." .
<http://en.wikipedia.org/wiki/Helium> <http://example.org/elements/atomicNumber> "2"^^<http://www.w3.org/2001/XMLSchema#integer> . # xsd:integer
<http://en.wikipedia.org/wiki/Helium> <http://example.org/elements/specificGravity> "1.663E-4"^^<http://www.w3.org/2001/XMLSchema#double> .     # xsd:double

2.6 RDF 空白节点

RDF 空白节点表示为 _: 后跟与 BLANK_NODE_LABEL 产生式匹配的空白节点标签。

非正式地说, _: 之后的第一个字符要么是 PN_CHARS_U 匹配的字符,要么是数字。后续字符(如果存在)由 PN_CHARS. 匹配, 但 . 不允许作为最后一个字符。

会为文档中的每一个唯一 空白节点标识符分配一个新的 RDF 空白节点。 重复使用同一个 空白节点标识符 会标识同一个空白节点。

示例 7:N-Triples 中的空白 节点

_:alice <http://xmlns.com/foaf/0.1/knows> _:bob .
_:bob   <http://xmlns.com/foaf/0.1/knows> _:alice .

3. N-Triples 的规范形式

本节定义了 N-Triples 的一种规范形式, 其布局完全指定。 该语言的语法不变。

虽然 N-Triples 语法允许在 RDF 数据的表示和布局方面作出选择, 但 N-Triples 的规范形式为任何三元组提供唯一的句法表示。 每个码点 只能由 UCHARECHAR 或未编码字符中的一种方式表示, 在相关产生式允许选择表示方式的情况下也是如此。 每个三元组都在单行中表示,并带有指定的空白符。

规范 N-Triples 对布局有以下附加约束:

4. 一致性

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

本文档中的关键词 MAYMUSTMUST NOTSHOULD 应按 BCP 14 [RFC2119] [RFC8174] 中所述进行解释,当且仅当它们像这里所示那样全部 大写出现时。

本规范为以下内容定义一致性准则:

符合要求的 N-Triples 文档是一个 RDF 字符串, 它符合 5. N-Triples 语法中定义的语法和附加约束, 并以 ntriplesDoc 产生式开始。 N-Triples 文档序列化一个 RDF 图

符合要求的 规范 N-Triples 文档是一个 遵循规范 N-Triples 附加约束N-Triples 文档

符合要求的 N-Triples 解析器是一个能够代表应用程序 读取 N-Triples 文档的系统。 它将序列化的 RDF 图 (如 6. 解析中定义) 提供给应用程序,通常通过某种形式的 API。

标识 N-Triples 语言的 IRI 是:http://www.w3.org/ns/formats/N-Triples

4.1 媒体类型和内容 编码

N-Triples 的媒体类型是 application/n-triples。 N-Triples 的内容编码始终为 UTF-8 [RFC3629]。 有关媒体类型注册表,参见 N-Triples 媒体类型

4.1.1 其他媒体类型

N-Triples 历史上曾使用其他媒体类型提供。 N-Triples 也可以作为 text/plain 提供。 当以这种方式使用时,N-Triples 必须使用任何 US-ASCII 之外字符的转义形式。 由于 N-Triples 是 Turtle 的一个子集,N-Triples 文档也可以作为 text/turtle 提供。 在这两种情况下,该文档都不是 N-Triples 文档,因为 N-Triples 文档仅以 application/n-triples 提供。

5. N-Triples 语法

N-Triples 文档是一个以 UTF-8 [RFC3629] 编码的 RDF 字符串。 只允许 Unicode 标量值, 范围为 U+0000U+D7FF 以及 U+E000U+10FFFF。 这排除了 代理码点, 即 U+D800U+DFFF 范围。

5.1 空白符

空白符(空格和/或 制表符)允许出现在终结符之外。 下面以大写形式出现的规则名称表示空白符在这些位置具有意义。

空白符在产生式 STRING_LITERAL_QUOTE 中具有意义。

空行由仅包含空白符和/或 注释组成, 可以出现在允许 triple 产生式出现的任何位置, 并按空白符处理。

与 Turtle [RDF12-TURTLE] 相比,N-Triples 只允许水平空白符(空格制表符), 而 Turtle 也将 LFCR 视为空白符。

5.2 注释

N-Triples 中的注释开始于 #, 该字符位于 IRIREFSTRING_LITERAL_QUOTE 之外, 并持续到行尾 —— 由字符 CRLF 标记 —— 或持续到文件末尾(如果注释标记之后没有行尾)。 注释按空白符处理。

5.3 语法

这里使用的 EBNF 定义于 XML 1.0 [EBNF-NOTATION]。

转义序列规则与 Turtle [RDF12-TURTLE] 相同。 但是,由于只允许 STRING_LITERAL_QUOTE 产生式,字面量中的换行必须被转义。

'VERSION' 终结符用单引号括起, 表示它区分大小写。

[1] ntriplesDoc ::= statement? (EOL statement)* EOL?
[2] statement ::= directive | triple
[3] directive ::= versionDirective
[4] versionDirective ::= 'VERSION' versionSpecifier
[5] versionSpecifier ::= STRING_LITERAL_QUOTE
[6] triple ::= subject predicate object '.'
[7] subject ::= IRIREF | BLANK_NODE_LABEL
[8] predicate ::= IRIREF
[9] object ::= IRIREF | BLANK_NODE_LABEL | literal | tripleTerm
[10] literal ::= STRING_LITERAL_QUOTE (('^^' IRIREF) | LANG_DIR)?
[11] tripleTerm ::= '<<(' subject predicate object ')>>'

终结符产生式

[13] IRIREF ::= '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
[14] BLANK_NODE_LABEL ::= '_:' (PN_CHARS_U | [0-9]) ((PN_CHARS | '.')* PN_CHARS)?
[15] LANG_DIR ::= '@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)* ('--' [a-zA-Z]+)?
[16] STRING_LITERAL_QUOTE ::= '"' ([^#x22#x5C#x0A#x0D] | ECHAR | UCHAR)* '"'
[17] UCHAR ::= ('\u' HEX HEX HEX HEX) | ('\U' HEX HEX HEX HEX HEX HEX HEX HEX)
[18] ECHAR ::= '\' [tbnrf\"']
[19] PN_CHARS_BASE ::= [A-Z]
| [a-z]
| [#xC0-#xD6]
| [#xD8-#xF6]
| [#xF8-#x02FF]
| [#x0370-#x037D]
| [#x037F-#x1FFF]
| [#x200C-#x200D]
| [#x2070-#x218F]
| [#x2C00-#x2FEF]
| [#x3001-#xD7FF]
| [#xF900-#xFDCF]
| [#xFDF0-#xFFFD]
| [#x00010000-#x000EFFFF]
[20] PN_CHARS_U ::= PN_CHARS_BASE | '_'
[21] PN_CHARS ::= PN_CHARS_U | '-' | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
[22] HEX ::= [0-9] | [A-F] | [a-f]
[23] EOL ::= [#x0D#x0A]+

该语法的文本版本可在此处获得。

5.4 选定的终结字面 字符串

本文档使用一些特定的终结字面字符串 [EBNF-NOTATION]。 为阐明这些终结字面字符串所使用的 Unicode 码点,以下 表格描述了本文档中使用的特定字符和序列。

代码 字形 描述
U+0008 BS 退格
U+0009 HT 水平制表符
U+000A LF 换行
U+000B VT 垂直制表符
U+000C FF 换页
U+000D CR 回车
U+0022 " 引号
U+0023 # 数字符号
U+002D - 连字符
U+002E . 句点
U+0030 0 数字零
U+0039 9 数字九
U+003B : 冒号
U+003C < 小于号
U+003E > 大于号
U+0040 @ At 符号
U+0041 A 拉丁大写字母 A
U+0046 F 拉丁大写字母 F
U+005C \ 反斜杠
U+005F _ 下划线
U+0061 a 拉丁小写字母 a
U+007A z 拉丁小写字母 z
U+007F DEL 删除
U+00B7 · 中点
U+203F 下连线
U+2040 字符连线

其他短终结字面字符串由特定的 Unicode 字符序列组成:

space
U+0020
<<(
两个连接的小于号字符,每个字符的码点均为 U+003C, 后跟一个左括号字符,其码点为 U+0028
)>>
一个左括号字符,其码点为 U+0029, 后跟两个连接的大于号字符,每个字符的码点均为 U+003E
^^
两个连接的抑扬符字符,每个字符的码点均为 U+005E
_:
_ 后跟 :
--
两个连接的 - 字符

6. 解析

本节通过将匹配产生式和词法记号的字符串 映射到 RDF 项或其组成部分(例如语言标记、字面量的词法形式), 将符合 5.3 语法中语法的字符串 映射为三元组流。 语法产生式会改变解析器状态并发出三元组。

检测到输入错误的处理器必须将其作为错误或警告发出信号。 本规范不定义处理器的确切输出,包括是否 会发出任何三元组。 任何输出应当只包含从输入中 无错误区域解析所发出三元组的子集。

虽然本规范的早期版本未规定对无法识别输入的任何行为, 但工作组已知的所有实现都已经按与上述要求一致的方式运行。 尤其是,当遇到这些早期版本无法识别的任何 RDF 1.2 特定语法时, 包括 VERSION 指令, 这些实现会发出错误信号。 它们不会静默忽略或误解释此类语法。

6.1 解析器状态

解析 N-Triples 需要包含两个项目的状态:

6.2 RDF 项构造器

此表将产生式和词法记号映射到 RDF 项,或映射到RDF 项的组成部分,这些内容列于 6. 解析

产生式 类型 过程
versionSpecifier 字面量 curVersion 取自一个字面量, 该字面量使用匹配的 RDF 字符串 词法形式和 xsd:string 数据类型。
BLANK_NODE_LABEL 空白节点 _: 之后的字符串 是 bnodeLabels 中的键。 如果映射中没有对应的空白节点, 则分配一个。
IRIREF IRI <> 之间的字符, 并对转义序列解除转义, 以形成 IRI。 所得 IRI 必须符合通用 IRI 语法的 句法限制, 并且应当符合 [RFC3986] 的 第 3.3 节, 并遵守相应 IRI 方案规范所施加的任何更窄限制。
LANG_DIR 语言标记 @ 后面的字符 形成语言标记 以及可选的初始文本方向, 如果匹配的字符包含 -- 语言标记 必须按照 [BCP47] 的 第 2.2.9 节 是格式良好的。 如果存在,初始文本方向 必须ltrrtl
STRING_LITERAL_QUOTE 词法形式 取最外层引号(")之间的字符, 并对转义序列解除转义, 以形成词法形式字符串
literal 字面量 该字面量具有第一个规则实参 STRING_LITERAL_QUOTE词法形式, 并且根据哪条规则匹配了输入, 要么具有来自 LANG_DIR语言标记 及可选的初始文本方向, 要么具有 iri数据类型 IRI。 如果 LANG_DIR 规则匹配, 则语言标记初始文本方向 取自 LANG_DIR。 如果没有初始文本方向, 则数据类型为 rdf:langString。 如果有初始文本方向, 则数据类型为 rdf:dirLangString。 如果 LANG_DIR数据类型 IRI均未匹配, 则该字面量的数据类型为 xsd:string
tripleTerm 三元组项 三元组项 由从 subjectpredicateobject 产生式 构造出的项组成。

6.3 RDF 三元组构造

N-Triples 文档定义一个 由一组三元组组成的 RDF 图triple 产生式 发出一个三元组,该三元组由为 subjectpredicateobject 构造的项定义。

A. 隐私考量

本节为非规范性内容。

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

B. 安全考量

本节为非规范性内容。

STRING_LITERAL_QUOTE 产生式允许使用未转义的控制字符。 虽然本规范不会将此内容直接暴露给最终用户, 但它可能通过用户代理呈现,这可能导致所呈现的文本 因这些字符的呈现而被混淆。

N-Triples 是一种通用断言语言; 应用程序可以评估给定数据,以推断更多断言,或解引用 IRI, 从而触发该 IRI 所属方案的安全考量。 特别注意 [RFC3023] 第 10 节中有关 HTTP IRI 的隐私问题。 从不准确或恶意数据源获取的数据可能导致不准确或误导性的结论, 以及解引用非预期的 IRI。 必须谨慎使对所咨询资源的信任与 数据预期用途的敏感性相匹配; 对潜在医疗处理的推断可能需要不同于 旅行规划推断的信任程度。

N-Triples 语言用于表达任意应用数据; 安全考量会因使用领域而异。 适用于文本的安全工具和协议 (例如 PGP 加密、校验和验证、受密码保护的压缩) 也可以用于 N-Triples 文档。 必须施加能够反映嵌入信息敏感性的安全/隐私协议。

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

N-Triples 使用 IRI 作为项标识符。 解释 N-Triples 中表达的数据的应用程序应当处理 国际化 资源标识符(IRI) [RFC3987] 第 8 节以及 统一资源 标识符(URI):通用语法 [RFC3986] 第 7 节中的安全问题。

多个 IRI 可能 具有相同的外观。 不同书写系统中的字符可能看起来相似(例如, 西里尔字母 “о” 可能看起来类似于拉丁字母 “o”)。 一个字符后跟组合字符可能与另一个字符 具有相同的视觉表示(例如,LATIN SMALL LETTER “E” 后跟 COMBINING ACUTE ACCENT 与 LATIN SMALL LETTER “E” WITH ACUTE 具有相同的视觉表示)。 任何在 N-Triples 中编写或解释数据的人或应用程序 都必须谨慎使用与预期语义匹配的 IRI, 并避免使用可能看起来相似的 IRI。 有关匹配视觉上相似字符的更多信息,可见 Unicode 安全考量 [UNICODE-SECURITY] 以及 国际化 资源标识符(IRI) [RFC3987] 第 8 节。

C. 互联网媒体类型和文件 扩展名

N-Triples 的互联网媒体类型(以前称为 MIME 类型)是 “application/n-triples”。

以下信息已提交给互联网工程指导组(IESG)进行审查、 批准并向 IANA 注册。

类型名称:
application
子类型名称:
n-triples
必需参数:
可选参数:
version
此参数是可选的。 如果存在,version 的可接受值 定义于 [RDF12-CONCEPTS] 或后续 规范中的 2.1 版本标签
profile
此参数是可选的,用于包含额外信息。 当在不了解 profile 的情况下处理时, 它不会改变资源表示的语义。 profile 参数的值是一个由空格分隔的非空 URI 列表。 有关更多信息和背景,请参见 [RFC6906]。
编码考量:
N-Triples 的语法以 Unicode [UNICODE] 中的码点表示。 编码始终为 UTF-8 [UTF-8]。
Unicode 码点也可以使用 \uXXXX(U+0 到 U+FFFF)或 \UXXXXXXXX 语法(用于 U+10000 及之后的码点)表示,其中 X 是十六进制数字 [0-9A-F]
安全考量:
参见B. 安全 考量
互操作性考量:
没有已知的互操作性问题。
已发布规范:
本规范。
使用此媒体类型的应用程序:
N-Triples 广泛用于表示 RDF 数据。 大多数常见编程语言中都有可用实现。
其他信息:
魔数:
无。
文件扩展名:
.nt;
可联系以获取更多信息的人员及电子邮件地址:
RDF & SPARQL 工作组 <public-rdf-star-wg@w3.org>
预期用途:
通用
使用限制:
作者:
N-Triples 规范是 RDF & SPARQL WG 的成果。W3C 保留对此规范的变更控制权。

客户端可以使用 profile 参数在内容协商过程中表达其偏好, 服务器也可以使用它来指示 关于响应的额外信息。

如果客户端给出了 profile 参数,服务器应当 返回一个遵循列表中所有 且被服务器识别的 profile 的文档。 服务器不应仅基于 profile 值而以错误响应。

如果服务器给出了 profile 参数,客户端可以选择忽略它。

建议 profile URI 可被解引用, 并在该 URI 处提供有用文档。

当作为 媒体类型参数 [RFC4288] 用于 HTTP Content-Type 标头HTTP Accept 标头 [RFC7231] 时, 如果 profile 参数的值包含特殊字符,例如空白符,包括任何用于 分隔多个 profile URI 的空格, 则需要将该值括在引号(ASCII ")中。

需要注意的是,profile 参数的值 包含一个或多个 URI,而不是 IRI。因此可能需要 按照 [RFC3987] 中 第 3 节 IRI 与 URI 的关系 所规定,在 IRI 与 URI 之间进行转换。

D. 致谢

本节为非规范性内容。

D.1 RDF 1.1 致谢

本节为非规范性内容。

RDF 1.1 版本的编辑感谢 Gregg Kellogg、Eric Prud'hommeaux、Dave Beckett、David Robillard、Gregory Williams、Pat Hayes、Richard Cyganiak、Henry S. Thompson、 Peter Ansell、Evan Patton 和 David Booth 的宝贵贡献。

本规范是 RDF 工作组 成员长期审议的成果。 它借鉴了 [RDF-TESTCASES] 中较早的规范, 该规范由 Dave Beckett 编辑。

D.2 RDF 1.2 致谢

本节为非规范性内容。

RDF 1.2 版本的编辑感谢 Andy Seaborne 的宝贵贡献。

除编辑外,以下人员也为本规范作出了贡献: Andy Seaborne, Denis Ah-Kang, Gregory Todd Williams, Niklas Lindström, Peter F. Patel-Schneider, Pierre-Antoine Champin, Sarven Capadisli, Ted Thibodeau Jr, and Thomas Tanon

RDF & SPARQL 工作组成员包括
James Anderson, Dörthe Arndt, Jerven Bolleman, Erich Bremer, Pierre-Antoine Champin, Souripriya Das, Enrico Franconi, Adrian Gschwend, Olaf Hartig, Gregg Kellogg†, Ora Lassila, Niklas Lindström, Thomas Lörtsch, Peter Patel-Schneider, Dave Raggett, Felix Sasaki, Andy Seaborne, Ruben Taelman, Thomas Pellissier Tanon, Ted Thibodeau Jr, Dominik Tomaszuk, Gregory Williams, William Van Woensel, and Antoine Zimmermann
† Gregg Kellogg 于 2025 年 9 月去世。谨此感谢他对 RDF 及相关标准更广泛生态系统所作出的巨大贡献。

编辑注

是否要认可 Task Force 成员?贡献者列表并不容易找到。

E. RDF 1.1 与 RDF 1.2 之间的变更

本节为非规范性内容。

本规范扩展了 [N-TRIPLES] 中定义的原始 N-Triples 语法,以 支持 [RDF12-CONCEPTS] 引入的新特性。 此扩展完全向后兼容: 任何符合旧版本的文档都符合新版本,并会解析为同一个图。 此外,任何符合新版本且仅包含 RDF 1.1 特性的文档也 符合较早版本 (VERSION 指令除外;参见 2.2 版本声明)。 最后,新的句法构造在旧语法中都不是有效的。 这意味着任何使用 RDF 1.2 特性的 N-Triples 文档都不 符合本规范的先前版本,也不能在该版本下 被解释为不同的图。

更具体地说,已作出以下变更:

F. 索引

本节为非规范性内容。

F.1 由本 规范定义的术语

F.2 由引用定义的术语

G. 议题摘要

本节为非规范性内容。

本规范中未列出任何议题。

H. 参考文献

H.1 规范性参考文献

[BCP47]
用于标识语言的标签。A. Phillips,编辑;M. Davis,编辑。IETF。2009 年 9 月。最佳当前实践。URL:https://www.rfc-editor.org/rfc/rfc5646
[EBNF-NOTATION]
EBNF 表示法。Tim Bray;Jean Paoli;Michael Sperberg-McQueen;Eve Maler;François Yergeau 等。W3C。W3C 推荐标准。URL:https://www.w3.org/TR/xml/#sec-notation
[I18N-GLOSSARY]
国际化术语表。 Richard Ishida;Addison Phillips。W3C。2024 年 10 月 17 日。W3C 工作组说明。URL:https://www.w3.org/TR/i18n-glossary/
[RDF12-CONCEPTS]
RDF 1.2 概念与抽象数据 模型。Andy Seaborne;Gregg Kellogg;Olaf Hartig;Pierre-Antoine Champin。W3C。2026 年 4 月 7 日。W3C 候选推荐标准。URL:https://www.w3.org/TR/rdf12-concepts/
[RDF12-TURTLE]
RDF 1.2 Turtle。Gregg Kellogg;Andy Seaborne;Dominik Tomaszuk。W3C。2026 年 6 月 12 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-turtle/
[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
[RFC6906]
“profile” 链接关系类型。 E. Wilde。IETF。2013 年 3 月。资料性。URL:https://www.rfc-editor.org/rfc/rfc6906
[RFC8174]
RFC 2119 关键词中大小写的歧义。B. Leiba。IETF。2017 年 5 月。最佳当前实践。URL:https://www.rfc-editor.org/rfc/rfc8174
[UNICODE]
Unicode 标准。Unicode Consortium。URL:https://www.unicode.org/versions/latest/
[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/

H.2 资料性参考文献

[N-TRIPLES]
RDF 1.1 N-Triples。Gavin Carothers;Andy Seaborne。W3C。2014 年 2 月 25 日。W3C 推荐标准。URL:https://www.w3.org/TR/n-triples/
[RDF-TESTCASES]
RDF 测试用例。jan grant;Dave Beckett。W3C。2004 年 2 月 10 日。W3C 推荐标准。URL:https://www.w3.org/TR/rdf-testcases/
[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 年 6 月 12 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-n-quads/
[RDF12-NEW]
RDF 1.2 新增内容。W3C RDF & SPARQL 工作组。W3C。W3C 编辑草案。URL:https://w3c.github.io/rdf-new/spec/
[RDF12-PRIMER]
RDF 1.2 入门。Pierre-Antoine Champin;Niklas Lindström。W3C。2026 年 4 月 16 日。DNOTE。URL:https://www.w3.org/TR/rdf12-primer/
[RDF12-SCHEMA]
RDF 1.2 Schema。Dominik Tomaszuk。 W3C。2026 年 3 月 28 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-schema/
[RDF12-SEMANTICS]
RDF 1.2 语义。Peter Patel-Schneider;Enrico Franconi;Dörthe Arndt。W3C。2026 年 4 月 7 日。W3C 候选推荐标准。 URL:https://www.w3.org/TR/rdf12-semantics/
[RDF12-TRIG]
RDF 1.2 TriG。Gregg Kellogg;Dominik Tomaszuk。W3C。2026 年 6 月 12 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-trig/
[RDF12-XML]
RDF 1.2 XML 语法。Gregg Kellogg; Jerven Bolleman。W3C。2026 年 6 月 18 日。W3C 工作草案。URL:https://www.w3.org/TR/rdf12-xml/
[RFC3023]
XML 媒体类型。M. Murata;S. St. Laurent;D. Kohn。IETF。2001 年 1 月。拟议标准。URL:https://www.rfc-editor.org/rfc/rfc3023
[RFC4288]
媒体类型规范和注册 程序。N. Freed;J. Klensin。IETF。2005 年 12 月。最佳当前实践。 URL:https://www.rfc-editor.org/rfc/rfc4288
[RFC7231]
超文本传输协议(HTTP/1.1): 语义和内容。R. Fielding,编辑;J. Reschke,编辑。IETF。2014 年 6 月。 拟议标准。URL:https://httpwg.org/specs/rfc7231.html
[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。2026 年 4 月 9 日。W3C 工作草案。URL:https://www.w3.org/TR/sparql12-entailment/
[SPARQL12-FEDERATED-QUERY]
SPARQL 1.2 联合 查询。Ruben Taelman;Gregory Williams。W3C。2026 年 4 月 23 日。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。2026 年 4 月 26 日。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 年 6 月 17 日。 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。2026 年 3 月 28 日。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。2026 年 3 月 28 日。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 年 4 月 23 日。W3C 工作 草案。URL:https://www.w3.org/TR/sparql12-service-description/
[SPARQL12-UPDATE]
SPARQL 1.2 更新。Ruben Taelman; Andy Seaborne;Thomas Pellissier Tanon。W3C。2026 年 6 月 12 日。W3C 工作草案。URL:https://www.w3.org/TR/sparql12-update/
[UNICODE-SECURITY]
Unicode 安全 考量。Mark Davis;Michel Suignard。Unicode Consortium。2014 年 9 月 19 日。 Unicode 技术报告 #36。URL:https://www.unicode.org/reports/tr36/tr36-15.html