YAML-LD 1.0

W3C 工作草案

关于本文档的更多详细信息
此版本:
https://www.w3.org/TR/2026/WD-yaml-ld-10-20260728/
最新发布版本:
https://www.w3.org/TR/yaml-ld-10/
最新编辑草案:
https://w3c.github.io/yaml-ld/
历史:
https://www.w3.org/standards/history/yaml-ld-10/
提交历史
测试套件:
https://w3c.github.io/yaml-ld/tests/
编辑:
Anatoly Scherbakov (受邀专家)
Gregg Kellogg (受邀专家)(截至 2025-09-06),谨此纪念
作者:
Gregg Kellogg (受邀专家)
Anatoly Scherbakov (受邀专家)
Roberto Polli (Par-Tec)
反馈:
GitHub w3c/yaml-ld (拉取请求新建议题开放议题)
public-linked-json@w3.org 主题行请写为 [yaml-ld-10] … 消息主题 …归档

摘要

[JSON-LD11] 是一种基于 JSON 的格式,用于序列化链接数据 [LINKED-DATA]。 近年来,[YAML] 已成为一种更 简洁的格式, 用来表示此前以 [JSON] 序列化的信息, 包括 API 规范、数据模式和链接数据。

本文档将 YAML-LD 定义为一组基于 YAML 的约定, 这些约定指定如何基于 JSON-LD 的语法、语义和 API, 将链接数据序列化为 YAML。

由于 YAML 比 JSON 表达能力更强, 无论是在可用的数据类型方面,还是在文档结构方面 (见 [RFC9512]), 本文档标识了对 YAML 的约束, 使任何 YAML-LD 文档都可以用 JSON-LD 表示。

本文档状态

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

本规范最初由 JSON-LD 社区组开发。

本文档由 JSON-LD 工作组作为 工作草案发布,并使用 推荐 路线

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

这是一个草案文档,可能随时由其他文档更新、替换或废弃。 除作为进行中的工作外,不应引用本文档。

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

本文档受 2025 年 8 月 18 日 W3C 流程文档管辖。

1. 引言

YAML-LD 将 JSON-LD 的数据模型和处理模型应用于 YAML, 从而使关联数据能够使用 YAML 语法编写,同时仍可 表示为 JSON-LD。

它适用于由人类和软件代理读取和编写的文档, 包括基于大型语言模型的软件代理。

下面给出了一个 YAML-LD 入门示例

示例 1:YAML-LD 入门文档
"@context":
  schema: https://schema.org/
  dbo: http://dbpedia.org/ontology/
  dbp: http://dbpedia.org/property/
  dbr: http://dbpedia.org/resource/
  xsd: http://www.w3.org/2001/XMLSchema#
  dbp:discovered:
    "@type": xsd:date
  dbp:star:
    "@type": "@id"

"@id": dbr:Proxima_Centauri_b
"@type": dbo:Planet
schema:description: >-
  The closest known exoplanet to Earth,
  orbiting in Proxima Centauri's habitable zone.
dbp:discovered: 2016-08-24
dbp:star: dbr:Proxima_Centauri
dbpedia.org/resource/Proxi ma_Centauri_b dbpedia.org/ontology/Planet 📅 2016-08-24 The closest known exoplanet to Earth, orbiting in Proxima Centauri’s habitable zone. dbpedia.org/resource/Proxi ma_Centauri w3.org/1999/02/22-rdf-synt ax-ns#type dbpedia.org/property/discov ered schema.org/description dbpedia.org/property/star

1.1 如何阅读本文档

本节为非规范性内容。

要理解本规范的基础,必须熟悉以下内容:

本文档主要面向以下两类受众。

1.2 术语

本节为非规范性内容。

本文档使用以下在外部规范中定义的术语, 并定义 JSON-LD 专用术语。

YAML-LD 流是一个YAML 流, 由YAML-LD 文档组成。 在磁盘上或通过网络传输时,YAML-LD 始终以YAML-LD 流的形式交换 (每个文件或 HTTP 正文对应一个流),其中包含一个或多个YAML-LD 文档

YAML-LD 文档是指任何 YAML 文档,对其 转换为 [JSON] 会产生 一个有效的 JSON-LD 文档,并且该文档可解释为 [LINKED-DATA]。

术语 媒体类型引自 [RFC6838]。

术语 JSON引自 [JSON]。

术语 JSON 文档表示一种资源的序列化, 该资源符合 [JSON] 语法。

术语 JSON-LD 文档,以及 值对象 引自 [JSON-LD11]。

术语 内部 表示,以及 documentLoader 引自 [JSON-LD11-API]。

术语 数组布尔值映射映射条目null,以及 字符串 引自 [INFRA]。

术语 数值 引自 [ECMASCRIPT]。

术语 YAMLYAML 表示图YAML 流YAML 指令TAG 指令YAML 文档YAML 序列 (即 块序列流式序列)、 YAML 映射 (即 块映射流式映射)、 节点标量节点锚点节点标签, 以及 别名 节点, 均引自 [YAML]。

术语 内容 协商 引自 [RFC9110]。

术语 RDF 字面量带语言标签的 字符串数据类型 IRI,以及 语言标签 引自 [RDF11-CONCEPTS]。

本文档中的术语 片段片段 标识符 应按照 [URI] 中的含义解释。

术语 链接数据 引自 [LINKED-DATA]。

1.3 命名空间前缀

本节为非规范性内容。

本规范使用以下命名空间前缀:

前缀 IRI
ex https://example.org/
i18n https://www.w3.org/ns/i18n#
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#
schema https://schema.org/
prov http://www.w3.org/ns/prov#
编者注
请参阅此表的 YAML-LD 版本: namespace-prefixes.yamlld

这些前缀在本文档中用作 紧凑 IRI 的一部分, 作为所得 IRI 的简写, 例如使用 schema:url 表示 https://schema.org/url

2. 一致性

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

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

如果一个 YAML-LD 文档遵循本规范中的规范性陈述, 并且可以转换为 [JSON-LD11] 表示, 然后在不丢失语义信息的情况下再转换回符合要求的 YAML-LD 文档, 则该文档符合本规范的 YAML-LD 基本配置文件

为方便起见,针对文档的规范性陈述通常表述为 关于文档属性的陈述。

2.1 基础规范版本

YAML-LD 支持 JSON-LD 1.1 [JSON-LD11] 及 后续版本。

YAML-LD 基于 YAML Ain't Markup Language (YAML™) version 1.2.2 [YAML]。 YAML-LD 处理器 MUST 使用 YAML 1.2(或更高的向后兼容版本) 实现;请参见 8. 互操作性考量,了解 YAML 1.1 所产生的互操作性问题。 实现者 MAY 使用 %YAML 指令 在给定文档中指定 YAML 版本。

2.2 测试套件

为符合要求,实现 MUST 满足以下测试套件中的所有测试用例:

……但忽略以下测试用例:

由于 YAML 是 JSON 的超集,用 JSON-LD 测试套件中的测试用例来测试 YAML-LD 实现应当是很简单的。

3. 基本概念

本节为非规范性内容。

3.1 JSON 与 YAML 比较

[YAML] 是 [JSON] 的超集,即, 每个有效的 JSON 文档也都是有效的 YAML 文档。 YAML 还提供了许多额外功能,其中最主要的是,由于最大限度地减少了 标点符号要求,因此提高了人类可读性。

如下方比较表所示,YAML 比 JSON 更灵活。

功能 [JSON] [YAML] YAML-LD
允许的编码
UTF-8
UTF-16
UTF-32
原生数据类型
{} 对象
[] 数组
字符串
数字
整数
浮点 数
布尔值
null
功能
使用分隔符的字符串、数组和对象
无标点符号的字符串、数组和对象
自定义类型 ✅ 通过标签 仅限核心架构
每个文件的文档数 1 ⩾ 1,通过 YAML 流 ⩾ 1(取决于 extractAllScripts 标志,请参阅流处理
注释 视为空白
锚点和别名 锚点名称不承载语义信息
循环 ❌ 不允许
映射键类型 string YAML 中可表示的任何类型,从 字符串到映射 string
编者注
请参阅此表的 YAML-LD 版本: json-vs-yaml.yamlld

[eriksson-hallberg] 表明, 尽管对于某些深度嵌套的文档,YAML 可能比等效的 JSON 更大, 但对于许多结构较为扁平的文档,它比美化打印的 JSON 更小,同时仍具有人类可读性。 这种组合可以减少大型语言模型和其他软件代理 必须处理的文本量,而无需单独使用压缩编码。

3.2 本规范的目标

本规范的目标是允许将 JSON-LD 文档 处理并序列化为 YAML,然后再转换回 JSON-LD,而不会 丢失任何语义信息。

这始终是可行的,因为

示例 1 的 JSON-LD 序列化:

示例 2:入门示例的 JSON-LD 等效形式
{
  "@context": {
    "schema": "https://schema.org/",
    "dbo": "http://dbpedia.org/ontology/",
    "dbp": "http://dbpedia.org/property/",
    "dbr": "http://dbpedia.org/resource/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dbp:discovered": {
      "@type": "xsd:date"
    },
    "dbp:star": {
      "@type": "@id"
    }
  },
  "@id": "dbr:Proxima_Centauri_b",
  "@type": "dbo:Planet",
  "schema:description": "距离地球最近的已知系外行星,运行于比邻星的宜居带内。",
  "dbp:discovered": "2016-08-24",
  "dbp:star": "dbr:Proxima_Centauri"
}

4. 核心要求

YAML 不是标记语言 (YAML™)1.2.2 版分多个步骤描述了 YAML 处理,这些步骤重现于1中。 此处理在采用 YAML 语法的字符流(右侧)与所谓的 “原生数据结构”(左侧)之间进行双向转换。 在 JSON-LD 中,该数据结构是 JSON-LD 的内部表示

YAML 处理概述
1 YAML 处理概述,源自 [YAML]

本节描述 YAML-LD 对 YAML 处理步骤施加的要求, 方向为加载方向(1中从右向左)。 转储按相反方向进行,从兼容 JSON 的内部表示生成 符合要求的 YAML-LD 流

4.1 呈现

呈现是1中的 YAML 字符流。

4.1.1 编码

在不属于封闭生态系统的系统之间交换的 JSON 文本 必须使用 UTF-8 编码。

YAML-LD 流必须使用 UTF-8 编码; 否则,必须检测到 invalid-encoding 错误,并中止处理。

4.1.2 注释

注释属于呈现细节,不得对 序列化树或表示图产生任何影响。

YAML-LD 流中的注释被视为空白。

有关更多详细信息,请参阅 YAML 与 JSON 的互操作性 注意事项

4.1.3

YAML 允许同一个 YAML 呈现流包含多个序列化树, 其形式为由标记分隔的一系列文档。

YAML-LD 流可以包含多个 YAML-LD 文档,如下所示。

示例 3:一个文件中包含多个文档的 YAML-LD
"@context":
  dbo: http://dbpedia.org/ontology/
  dbr: http://dbpedia.org/resource/
"@id": dbr:Proxima_Centauri
"@type": dbo:Star
---
"@context":
  dbo: http://dbpedia.org/ontology/
  dbr: http://dbpedia.org/resource/
"@id": dbr:Proxima_Centauri_b
"@type": dbo:Planet
dbpedia.org/resource/Proxi ma_Centauri_b dbpedia.org/ontology/Planet dbpedia.org/resource/Proxi ma_Centauri dbpedia.org/ontology/Star w3.org/1999/02/22-rdf-synt ax-ns#type w3.org/1999/02/22-rdf-synt ax-ns#type
: YAML 流的互操作性注意事项

有关 YAML 流的互操作性注意事项, 请参阅 YAML 媒体类型中的相关章节

4.2 序列化

序列化是解析1中生成的有序树 (并由呈现使用)。

4.2.1 锚点和别名

锚点名称属于序列化细节,并在 组合完成后被丢弃。

在本规范中,锚点是指 YAML 的 节点锚点机制 (使用别名节点,在 序列化中使用 &*), 以便在序列化图中通过引用重用同一个逻辑节点。 它与 HTML 超链接URL 片段标识符无关。 请参阅 [YAML] §6.9.2 节点锚点

因此,锚点 名称 不得用于传达相关信息, 在处理文档时可以更改, 并且在 YAML-LD 处理期间可以丢弃。

锚点在 @context 块中特别有用。 当多个术语共享同一个术语定义时——例如,所有 以 IRI 为值的属性——可以为共享定义设置一次锚点,并 为每个术语使用别名,从而避免重复。 以下示例将 IRI 强制转换定义锚定为 &iri,并将其重用于三个属性:

示例 4:带锚点的 YAML-LD 上下文
"@context":
  dbo: http://dbpedia.org/ontology/
  dbp: http://dbpedia.org/property/
  dbr: http://dbpedia.org/resource/

  dbp:star:            &iri
    "@type": "@id"
  dbp:discoveryMethod: *iri
  dbp:discoverySite:   *iri

"@id": dbr:Proxima_Centauri_b
dbp:star:            dbr:Proxima_Centauri
dbp:discoveryMethod: dbr:Doppler_spectroscopy
dbp:discoverySite:   dbr:European_Southern_Observatory
dbpedia.org/resource/Proxi ma_Centauri_b dbpedia.org/resource/Europ ean_Southern_Observatory dbpedia.org/resource/Doppl er_spectroscopy dbpedia.org/resource/Proxi ma_Centauri dbpedia.org/property/discov erySite dbpedia.org/property/discov eryMethod dbpedia.org/property/star

解析所有锚点和别名后,等效的 JSON-LD 为:

示例 5:由带锚点的 YAML-LD 上下文生成的 JSON-LD
{
  "@context": {
    "dbo": "http://dbpedia.org/ontology/",
    "dbp": "http://dbpedia.org/property/",
    "dbr": "http://dbpedia.org/resource/",
    "dbp:star": {
      "@type": "@id"
    },
    "dbp:discoveryMethod": {
      "@type": "@id"
    },
    "dbp:discoverySite": {
      "@type": "@id"
    }
  },
  "@id": "dbr:Proxima_Centauri_b",
  "dbp:star": "dbr:Proxima_Centauri",
  "dbp:discoveryMethod": "dbr:Doppler_spectroscopy",
  "dbp:discoverySite": "dbr:European_Southern_Observatory"
}
:锚点 和别名是 YAML 序列化的功能

4.3 表示

表示是组合1中生成的 YAML 表示图

YAML-LD 文档的序列化中可以包含锚定节点别名节点, 但其表示 图不得包含循环; 否则,必须检测到 loading-document-failed 错误,并中止处理。

组合表示图时,每个别名节点 必须解析为其目标锚点所标识的节点。 构造 JSON-LD 内部表示时, 对该节点的每个引用 必须被视为该节点的副本。

4.3.1 标量值类型

组合完整的表示图时,YAML-LD 使用 YAML 核心架构进行标量类型 解析。 无法在 [JSON] 中表示的浮点值—— 具体而言,包括 无穷大(.inf-.inf+.inf)和 非数字(.nan)——在构造 JSON-LD 内部 表示时,必须导致引发 loading-document-failed 错误。

YAML 核心架构未定义 时间戳类型; 2018-04-01 等标量会解析为普通字符串。 但是,许多 YAML 库默认实现 YAML 1.1 时间戳解析, 并会静默地将此类标量转换为原生日期或日期时间对象。 YAML-LD 处理器不得执行此类转换,并且必须将这些值视为字符串。

除了由 YAML 核心架构定义的标量类型解析之外, YAML-LD 不会为节点标签 赋予额外的 JSON-LD 含义。

:核心 架构类型解析

4.4 原生数据结构

构造1中生成的原生数据结构 是 JSON-LD 内部表示

4.4.1 流处理

[JSON-LD11-API] 定义了 extractAllScripts 标志,该标志允许解析 HTML 文档中 多个包含 JSON-LD 内容的 <script> 标签。

符合要求的 YAML-LD 实现从 YAML-LD 构造 JSON-LD 内部 表示时,必须应用此标志。

  • 如果该标志为 true,则内部表示必须是 一个包含流中每个文档的构造值的数组, 即使该流仅包含一个文档也是如此。
  • 如果该标志为 false,则必须仅构造流中的第一个文档。

4.4.2 映射键类型

对象结构表示为一对花括号,其中包含零个或多个 名称/值对(或成员)。 名称是字符串。

因此,YAML-LD 中的所有映射键都必须string。 否则,将引发 mapping-key-error 错误,如以下示例所示:

示例 6:非字符串映射键(引发 mapping-key-error)
"@context":
  - https://json-ld.org/contexts/dollar-convenience.jsonld
  - dbo: http://dbpedia.org/ontology/
    dbp: http://dbpedia.org/property/
    dbr: http://dbpedia.org/resource/
    prov: http://www.w3.org/ns/prov#
    xsd: http://www.w3.org/2001/XMLSchema#
    dbp:discovered:
      "@type": xsd:date
    dbp:star: &iri
      "@type": "@id"
    prov:wasDerivedFrom: *iri

{ $id: dbr:Proxima_Centauri_b, $type: dbo:Planet, dbp:star: dbr:Proxima_Centauri }:
  dbp:discovered: 2016-08-24
  prov:wasDerivedFrom: https://dbpedia.org/page/Proxima_Centauri_b

4.4.3 JSON 字面量

本节为非规范性内容。

JSON-LD 1.1 中的 @json 关键字将JSON 字面量定义为一个值对象, 其中 @type@json,且 @value 包含 JSON 数据。处理器 会将此类值视为 JSON 字面量,而不会 将其进一步解释为 JSON-LD。请考虑以下示例。

示例 7:带有 Proxima Centauri b 轨道参数的 JSON 字面量
"@context":
  schema: https://schema.org/
  dbr: http://dbpedia.org/resource/

"@id": dbr:Proxima_Centauri_b
schema:additionalProperty:
  "@type": "@json"
  "@value":
    semiMajorAxis: 0.0485
    orbitalPeriod: 11.186
    equilibriumTemperature: 234
    eccentricity: 0.11
dbpedia.org/resource/Proxi ma_Centauri_b {“eccentricity“:0.11,“equilibri umTemperature“:234,“orbita lPeriod“:11.186,“semiMajor Axis“:0.0485} schema.org/additionalPrope rty

请看展开形式。

示例 8:带有 Proxima Centauri b 轨道参数的展开 JSON 字面量
[
  {
    "@id": "http://dbpedia.org/resource/Proxima_Centauri_b",
    "https://schema.org/additionalProperty": [
      {
        "@type": "@json",
        "@value": {
          "semiMajorAxis": 0.0485,
          "orbitalPeriod": 11.186,
          "equilibriumTemperature": 234,
          "eccentricity": 0.11
        }
      }
    ]
  }
]

虽然该关键词名为 @json,但它并不要求 @value 的值在 YAML-LD 中使用 JSON 语法书写。如本例所示,metadata 值对象在展开过程中会以其 JSON-LD 形式保留下来——这是该关键词所要求的。

当它被转换为 RDF 时,JSON 字面量的词法形式是由 JSON 文本内部表示重建而来。

5. YamlLdErrorCode

YamlLdErrorCode 表示有效 YAML-LD 错误代码的集合, 它扩展了 JsonLdErrorCode 定义。

WebIDLenum YamlLdErrorCode {
  "invalid-encoding",
  "mapping-key-error",
  "profile-error"
};
invalid-encoding
输入的字符编码无效。
mapping-key-error
发现了一个不是字符串YAML 映射键。
profile-error
解析后的 YAML 文档包含与指定配置文件不兼容的特性。

6. 安全考量

本节为非规范性内容。

参见 JSON-LD 1.1 中的安全考量+yaml 结构化语法后缀。

7. 隐私考量

本节为非规范性内容。

参见 JSON-LD 1.1 中的隐私考量

8. 互操作性考量

本节为非规范性内容。

关于在 [YAML] 中序列化 JSON 文档的一般互操作性考量,参见 YAML 以及 +yaml 结构化语法后缀的互操作性考量。

此处提供的考量和分析,包括互操作性 与安全考量,均基于 YAML 1.2.2 规范。

许多流行的 YAML 库默认使用 YAML 1.1 解析。 YAML 1.1 实现会导致互操作性问题;尤其是, 所谓的 “Norway problem” 会出现,因为 YAML 1.1 将 noNoNOyesonoff 以及类似值视为布尔值, 而 YAML 1.2 Core Schema 将它们视为普通字符串。 使用 YAML 1.1 库的 YAML-LD 处理器将无法通过一致性 测试,且不符合要求。

9. 在 HTML 文档中嵌入 YAML-LD

YAML-LD 内容可以很容易地嵌入 HTML [HTML] 中,方法是将其放入 <script> 元素,并将 type 属性设置为 application/ld+yaml,如下例所示。

示例 9:嵌入 HTML 的 YAML-LD 文档
<script type="application/ld+yaml">
  "@context":
    dbo: http://dbpedia.org/ontology/
    dbp: http://dbpedia.org/property/
    dbr: http://dbpedia.org/resource/
    xsd: http://www.w3.org/2001/XMLSchema#
    dbp:discovered:
      "@type": xsd:date
  "@id": dbr:Proxima_Centauri_b
  "@type": dbo:Planet
  dbp:discovered: "2016-08-24"
</script>
dbpedia.org/resource/Proxi ma_Centauri_b dbpedia.org/ontology/Planet 📅 2016-08-24 w3.org/1999/02/22-rdf-synt ax-ns#type dbpedia.org/property/discov ered

YAML 语法基于缩进。因此,在处理每个包含 YAML-LD 内容的 <script> 块时, YAML-LD 处理器 MUST 为 YAML 解析保留该块的内容 原样,包括空白字符。

如果 YAML-LD <script> 标签包含具有多个YAML 流中的多个YAML 文档,则其中每个文档都必须被视为包含在单独的 <script> 标签中。有关详细信息,请参阅流处理

A. IANA 考量

本节已提交给互联网工程指导组 (IESG)审查、批准并在 IANA 注册。

本节描述了根据 [RFC6838] 注册上述媒体类型所需的信息

A.1 application/ld+yaml

类型名称:
application
子类型名称:
ld+yaml
必需参数:
不适用
可选参数:
profile

一个由空格分隔的非空 URI 列表,用于标识根据 [RFC6906] 应用于YAML-LD 流的特定约束或约定。 在不了解配置文件的情况下处理资源表示时,配置文件不会改变其语义, 因此了解和不了解具有配置文件的资源的客户端都可以安全地使用相同的 表示。客户端可以使用 profile 参数 在内容协商过程中表达其偏好。 如果给出了配置文件参数,服务器应该返回一个 遵循列表中其所识别配置文件的文档, 并且必须忽略列表中其无法 识别的配置文件。 建议配置文件 URI 可以解引用,并在该 URI 处提供 有用的文档。有关更多信息和背景, 请参阅 [RFC6906]。

本规范允许使用 中列出的 profile 参数,并另外定义以下参数:

http://www.w3.org/ns/json-ld#extended
用于请求或指定 YAML-LD 扩展 配置文件
编者注
此处是一个占位符,用于指定类似 YAML-LD 扩展 配置文件 之类的内容,以利用 YAML 特有的功能。

当在 媒体类型 参数 [RFC4288] 中用作 HTTP Accept 标头字段 [RFC9110]时, 如果 profile 参数的值包含 空白等特殊字符,则必须用引号(")将其 括起来;组合多个配置文件 URI 时需要这样做。

处理“profile”媒体类型参数时,务必 注意其值包含的是一个或多个 URI,而不是 IRI。因此,在某些情况下, 可能需要按照 [RFC3987] 的 第 3 节 IRI 与 URI 之间的关系 中的规定,在 IRI 和 URI 之间进行转换。

编码考量:
+yaml 相同。
安全考量:
6. 安全 考量
互操作性考量:
8. 互操作性 考量
已发布规范:
http://www.w3.org/TR/yaml-ld
使用此媒体类型的应用:
任何需要交换 有向图的编程环境。
其他信息:
此类型的已弃用别名:
不适用
幻数:
application/yaml 相同
文件扩展名:
  • .yaml
  • .yamlld
Macintosh 文件类型代码:
application/yaml 相同
Windows 剪贴板名称:
application/yaml 相同
获取更多信息的联系人及电子邮件地址:
W3C JSON-LD 工作组 <public-json-ld-wg@w3.org>
预期用途:
通用
使用限制:
不适用
作者:
Roberto Polli, Gregg Kellogg
变更控制方:
W3C

B. 为什么注释被视为 空白?

本节为非规范性内容。

B.1 一致性

[TURTLE] 以及其他支持 注释的链接数据序列化
在处理文档并将其序列化为 其他格式时,不提供保留这些注释的方法
YAML
要求文档中未反映在 表示 图中的部分,例如
  • 注释
  • 指令
  • 映射键顺序
  • 锚点名称
不得用于传达应用级信息。

B.2 可预测性

理论上,我们可以尝试将 YAML 注释收集到 JSON-LD 文档中。我们会定义一个特定谓词,例如 https://json-ld.org/yaml-ld/comment,并把 每个 # My comment 片段转换为 JSON-LD 文档中的一个 {"yaml-ld:comment": "My comment"} 片段。

但是,这会对实现产生以下影响:

C. 致谢

本节为非规范性内容。

C.1 缅怀

Gregg Kellogg 是 JSON-LD 和 YAML-LD 故事中的核心人物。 他十多年如一日地致力于 JSON-LD 和许多其他规范, 直到 2025 年 9 月 6 日去世前仍是如此。Gregg 对以精巧方式解决 难题充满热情,而这份热情也只有他愿意与他人协作、 并鼓励他人一同抵达目标的意愿能够超越。JSON-LD 以及 更广泛的链接数据社区,将永远感激 Gregg 在这些社区最具 形成意义的岁月中所作出的持续、细致且友善的贡献。

C.2 贡献

编辑们特别感谢以下个人对本规范的编写和编辑作出的重要 贡献:

D. 参考文献

D.1 规范性引用

[HTML]
HTML 标准。Anne van Kesteren; Domenic Denicola;Dominic Farolino;Ian Hickson;Philip Jägenstedt;Simon Pieters。WHATWG。现行 标准。网址:https://html.spec.whatwg.org/multipage/
[INFRA]
Infra 标准。Anne van Kesteren;Domenic Denicola。WHATWG。现行标准。网址:https://infra.spec.whatwg.org/
[JSON]
JavaScript 对象表示法(JSON)数据 交换格式。T. Bray,编辑。IETF。2017 年 12 月。互联网标准。网址:https://www.rfc-editor.org/info/rfc8259/
[JSON-LD11]
JSON-LD 1.1。Gregg Kellogg; Pierre-Antoine Champin;Dave Longley。W3C。2020 年 7 月 16 日。W3C 推荐标准。网址:https://www.w3.org/TR/json-ld11/
[JSON-LD11-API]
JSON-LD 1.1 处理算法和 API。Gregg Kellogg;Dave Longley;Pierre-Antoine Champin。W3C。2020 年 7 月 16 日。W3C 推荐标准。网址:https://www.w3.org/TR/json-ld11-api/
[JSON-LD11-FRAMING]
JSON-LD 1.1 框架化。Dave Longley;Gregg Kellogg;Pierre-Antoine Champin。W3C。2020 年 7 月 16 日。W3C 推荐标准。网址:https://www.w3.org/TR/json-ld11-framing/
[RFC2119]
用于在 RFC 中指示 要求级别的关键词。S. Bradner。IETF。1997 年 3 月。最佳现行实践。网址:https://www.rfc-editor.org/info/rfc2119/
[RFC3986]
统一资源标识符(URI):通用 语法。T. Berners-Lee;R. Fielding;L. Masinter。IETF。2005 年 1 月。互联网 标准。网址:https://www.rfc-editor.org/info/rfc3986/
[RFC3987]
国际化资源标识符 (IRI)。M. Duerst;M. Suignard。IETF。2005 年 1 月。提议标准。网址:https://www.rfc-editor.org/info/rfc3987/
[RFC4288]
媒体类型规范和注册 程序。N. Freed;J. Klensin。IETF。2005 年 12 月。最佳现行实践。 网址:https://www.rfc-editor.org/info/rfc4288/
[RFC6838]
媒体类型规范和注册 程序。N. Freed;J. Klensin;T. Hansen。IETF。2013 年 1 月。最佳现行 实践。网址:https://www.rfc-editor.org/info/rfc6838/
[RFC6906]
“profile”链接关系 类型。E. Wilde。IETF。2013 年 3 月。资料性文件。网址:https://www.rfc-editor.org/info/rfc6906/
[RFC8174]
RFC 2119 关键词中大写与小写的 歧义。B. Leiba。IETF。2017 年 5 月。最佳现行实践。网址:https://www.rfc-editor.org/info/rfc8174/
[RFC9110]
HTTP 语义。R. Fielding,编辑; M. Nottingham,编辑;J. Reschke,编辑。IETF。2022 年 6 月。互联网标准。网址:https://httpwg.org/specs/rfc9110.html
[RFC9512]
YAML 媒体类型。R. Polli;E. Wilde;E. Aro。IETF。2024 年 2 月。资料性文件。网址:https://www.rfc-editor.org/info/rfc9512/
[YAML]
YAML 不是标记语言(YAML™) 1.2.2 版。Oren Ben-Kiki;Clark Evans;Ingy döt Net。YAML 语言开发团队。 2021-10-01。网址:https://yaml.org/spec/1.2.2/
[yaml-ld-extended-profile]
YAML-LD 扩展配置文件。 Gregg Kellogg;Pierre-Antoine Champin;Anatoly Scherbakov。W3C。W3C 小组说明草案。网址:https://www.w3.org/TR/yaml-ld-extended-profile/

D.2 资料性引用

[ECMASCRIPT]
ECMAScript 语言规范。 Ecma 国际。网址:https://tc39.es/ecma262/multipage/
[eriksson-hallberg]
JSON 与 YAML 数据序列化比较。Malin Eriksson;Victor Hallberg。 KTH 皇家理工学院。2011 年。学士学位论文。网址:https://www.csc.kth.se/utbildning/kth/kurser/DD143X/dkand11/Group2Mads/Rapport_Malin_Eriksson_Viktor_Hallberg.pdf
[LINKED-DATA]
关联数据设计 问题。Tim Berners-Lee。W3C。2006 年 7 月 27 日。W3C 内部文档。网址:https://www.w3.org/DesignIssues/LinkedData.html
[RDF11-CONCEPTS]
RDF 1.1 概念和抽象 语法。Richard Cyganiak;David Wood;Markus Lanthaler。W3C。2014 年 2 月 25 日。 W3C 推荐标准。网址:https://www.w3.org/TR/rdf11-concepts/
[RFC8259]
JavaScript 对象表示法(JSON)数据 交换格式。T. Bray,编辑。IETF。2017 年 12 月。互联网标准。网址:https://www.rfc-editor.org/info/rfc8259/
[TURTLE]
RDF 1.1 Turtle。Eric Prud'hommeaux;Gavin Carothers。W3C。2014 年 2 月 25 日。W3C 推荐标准。网址:https://www.w3.org/TR/turtle/
[URI]
统一资源标识符(URI):通用 语法。T. Berners-Lee;R. Fielding;L. Masinter。IETF。2005 年 1 月。互联网 标准。网址:https://www.rfc-editor.org/info/rfc3986/