Copyright © 2020-2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
[JSON-LD11]은 링크드 데이터 [LINKED-DATA]를 직렬화하기 위한 JSON 기반 형식이다. 최근 몇 년 동안 [YAML]은 더 간결한 형식으로 부상했으며 이전에 [JSON]으로 직렬화되던 정보를 표현하는 데 쓰인다. 여기에는 API 명세, 데이터 스키마, 링크드 데이터가 포함된다.
이 문서는 YAML-LD를 YAML 위의 일련의 규약으로 정의하며, JSON-LD 구문, 의미론, API를 기반으로 링크드 데이터를 YAML로 직렬화하는 방법을 지정한다.
YAML은 사용 가능한 데이터 타입과 문서 구조 모두에서 JSON보다 더 표현력이 높기 때문에 ([RFC9512] 참조), 이 문서는 모든 YAML-LD 문서가 JSON-LD로 표현될 수 있도록 YAML에 대한 제약을 식별한다.
이 절은 이 문서가 공개된 시점의 상태를 설명한다. 현재 W3C 공개 문서 목록과 이 기술 보고서의 최신 개정판은 W3C 표준 및 초안 색인에서 찾을 수 있다.
이 명세는 처음에 JSON-LD 커뮤니티 그룹에서 개발되었다.
이 문서는 JSON-LD 워킹 그룹에 의해 권고안 트랙을 사용하는 워킹 드래프트로 공개되었다.
워킹 드래프트로 공개되었다고 해서 W3C와 그 회원들이 이를 승인했다는 의미는 아니다.
이는 초안 문서이며 언제든지 다른 문서에 의해 갱신, 대체 또는 폐기될 수 있다. 이 문서를 진행 중인 작업이 아닌 다른 것으로 인용하는 것은 부적절하다.
이 문서는 W3C 특허 정책에 따라 운영되는 그룹에 의해 작성되었다. W3C는 해당 그룹의 산출물과 관련하여 이루어진 모든 특허 공개의 공개 목록을 유지한다. 그 페이지에는 특허 공개 지침도 포함되어 있다. 어떤 개인이 자신이 알고 있는 특허가 필수 청구항을 포함한다고 실제로 알고 있는 경우, W3C 특허 정책 6절에 따라 그 정보를 공개해야 한다.
이 문서는 2025년 8월 18일 W3C 프로세스 문서의 적용을 받는다.
YAML-LD는 JSON-LD의 데이터 모델과 처리 모델을 YAML에 적용하여 연결 데이터를 YAML 구문으로 작성하면서도 JSON-LD로 표현할 수 있도록 한다.
이는 인간과 대규모 언어 모델을 기반으로 하는 에이전트를 포함한 소프트웨어 에이전트가 읽고 쓰는 문서를 대상으로 한다.
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
이 절은 비규범적이다.
이 명세의 기본 사항을 이해하려면 다음에 익숙해야 한다.
이 문서는 주로 아래에 설명된 두 주요 독자를 대상으로 한다.
관련 기술 중에서 JSON-LD에 대한 친숙함은 대부분의 YAML-LD 지원 애플리케이션을 구축하는 데 필요하지만, RDF에 대한 친숙함은 YAML-LD를 RDF 그래프로 변환하거나 그 반대로 변환하려는 경우에만 필요하다.
IT 분야 및 그 외 분야의 기타 전문가 중 YAML-LD 형식의 링크드 데이터 문서를 읽거나 작성하려는 사람. 이러한 문서는 —
이러한 사용자에게 JSON-LD에 대한 친숙함은 필수는 아니지만, 링크드 데이터 원칙에 대한 이해는 도움이 될 수 있다.
이 절은 비규범적이다.
이 문서는 외부 명세에서 정의된 다음 용어를 사용하며 JSON-LD에 특화된 용어를 정의한다.
YAML-LD 스트림은 YAML 스트림으로, YAML-LD 문서로 구성된다. 디스크 또는 네트워크상에서 YAML-LD는 항상 YAML-LD 스트림 (파일 또는 HTTP 본문당 하나의 스트림)으로 교환되며, 하나 이상의 YAML-LD 문서를 포함한다.
YAML-LD 문서는 [JSON]으로 변환했을 때 [LINKED-DATA]로 해석될 수 있는 유효한 JSON-LD 문서가 생성되는 모든 YAML 문서이다.
미디어 타입이라는 용어는 [RFC6838]에서 가져온 것이다.
JSON 문서라는 용어는 [JSON] 문법을 준수하는 리소스의 직렬화를 나타낸다.
JSON-LD 문서와 값 객체 용어는 [JSON-LD11]에서 가져온 것이다.
내부 표현과 documentLoader 용어는 [JSON-LD11-API]에서 가져온 것이다.
배열, 불리언, 맵, 맵 항목, null, 그리고 문자열 용어는 [INFRA]에서 가져온 것이다.
숫자 용어는 [ECMASCRIPT]에서 가져온 것이다.
YAML, YAML 표현 그래프, YAML 스트림, YAML 지시문, TAG 지시문, YAML 문서, YAML 시퀀스 ( 블록 시퀀스 또는 플로우 시퀀스), YAML 매핑 ( 블록 매핑 또는 플로우 매핑), 노드, 스칼라, 노드 앵커, 노드 태그, 그리고 별칭 노드 용어는 [YAML]에서 가져온 것이다.
콘텐츠 협상 용어는 [RFC9110]에서 가져온 것이다.
RDF 리터럴, 언어 태그가 붙은 문자열, 데이터타입 IRI, 그리고 언어 태그 용어는 [RDF11-CONCEPTS]에서 가져온 것이다.
이 문서에서 프래그먼트와 프래그먼트 식별자 용어는 [URI]에서의 의미로 해석해야 한다.
링크드 데이터 용어는 [LINKED-DATA]에서 가져온 것이다.
이 절은 비규범적이다.
이 명세는 다음 네임스페이스 접두사를 사용한다.
| 접두사 | 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# |
namespace-prefixes.yamlld
를 참조한다.
이들은 이 문서 안에서 축약 IRI의 일부로 사용되며,
결과 IRI에 대한 약어로 쓰인다.
예를 들어 schema:url은
https://schema.org/url을 나타내는 데 사용된다.
비규범으로 표시된 절뿐만 아니라, 이 명세의 모든 작성 지침, 다이어그램, 예제, 주석은 비규범적이다. 이 명세의 나머지 모든 내용은 규범적이다.
이 문서의 핵심어 MAY, MUST, MUST NOT, RECOMMENDED, SHOULD는 여기에 표시된 것처럼 모두 대문자로 나타날 때, 그리고 오직 그 경우에만 BCP 14 [RFC2119] [RFC8174]에 설명된 대로 해석해야 한다.
YAML-LD 문서는 이 명세의 YAML-LD Basic 프로파일을 준수한다. 그 조건은 이 명세의 규범적 진술을 따르고, 의미 정보의 손실 없이 [JSON-LD11] 표현으로 변환된 뒤 다시 적합한 YAML-LD 문서로 변환될 수 있어야 한다는 것이다.
편의를 위해 문서에 대한 규범적 진술은 종종 문서 속성에 관한 진술로 표현된다.
YAML-LD는 JSON-LD 1.1 [JSON-LD11] 및 이후 버전을 지원한다.
YAML-LD는 YAML
Ain't Markup Language (YAML™) version 1.2.2 [YAML]에 기반한다.
YAML-LD 처리기는 YAML 1.2(또는 이후의 하위 호환 버전)
구현을 MUST 사용해야 한다. YAML 1.1에서 발생하는
상호운용성 문제에 대해서는 8.
상호운용성 고려사항을 참조한다.
구현자는 %YAML 지시문을 사용하여
주어진 문서의 YAML 버전을 지정할 MAY 있다.
적합하려면 구현은 다음 테스트 모음의 모든 테스트 케이스를 MUST 만족해야 한다.
...다음에 해당하는 테스트 케이스는 제외한다.
json-ld-1.0으로 설정된 경우.
YAML은 JSON의 상위 집합이므로, JSON-LD 테스트 모음의 테스트 케이스에 대해 YAML-LD 구현을 테스트하는 것은 사소해야 한다.
이 절은 비규범적이다.
[YAML]은 [JSON]의 상위 집합이다. 즉, 모든 유효한 JSON 문서는 유효한 YAML 문서이기도 하다. YAML은 또한 여러 추가 기능을 제공하며, 그중 가장 중요한 기능은 구두점 요구사항을 최소화하여 사람이 읽기 쉽도록 개선한 것이다.
아래 비교 표에서 볼 수 있듯이 YAML은 JSON보다 더 유연하다.
| 기능 | [JSON] | [YAML] | YAML-LD |
|---|---|---|---|
| 허용되는 인코딩 | |||
| UTF-8 | ✅ | ✅ | ✅ |
| UTF-16 | ❌ | ✅ | ❌ |
| UTF-32 | ❌ | ✅ | ❌ |
| 네이티브 데이터 유형 | |||
{} 객체 |
✅ | ✅ | ✅ |
[] 배열 |
✅ | ✅ | ✅ |
| 문자열 | ✅ | ✅ | ✅ |
| 숫자 | ✅ |
✅
정수 부동 소수점 |
✅ |
| 불리언 | ✅ | ✅ | ✅ |
| null | ✅ | ✅ | ✅ |
| 기능 | |||
| 구분 기호가 있는 문자열, 배열, 객체 | ✅ | ✅ | ✅ |
| 구두점이 없는 문자열, 배열, 객체 | ❌ | ✅ | ✅ |
| 사용자 정의 유형 | ❌ | 태그를 통해 ✅ | 코어 스키마만 허용 |
| 파일당 문서 수 | 1 | YAML 스트림을 통해 ⩾ 1 | ⩾ 1 (extractAllScripts 플래그에 따라 다름, 스트림 처리 참조)
|
| 주석 | ❌ | ✅ | ✅ 공백으로 취급됨 |
| 앵커 및 별칭 | ❌ | ✅ | ✅ 앵커 이름은 의미 정보를 지니지 않음 |
| 순환 | ❌ | ✅ | ❌ 허용되지 않음 |
| 매핑 키 유형 | string |
문자열에서 매핑에 이르는 YAML로 표현 가능한 모든 유형 | string |
json-vs-yaml.yamlld
를 참조한다.
[eriksson-hallberg]는 YAML이 일부 깊게 중첩된 문서에서는 동등한 JSON보다 클 수 있지만, 많은 평면적인 문서에서는 사람이 읽을 수 있는 상태를 유지하면서 보기 좋게 출력된 JSON보다 작다는 것을 보여주었다. 이러한 조합은 별도의 최소화된 인코딩 없이도 대규모 언어 모델과 기타 소프트웨어 에이전트가 처리해야 하는 텍스트의 양을 줄일 수 있다.
이 명세의 목적은 JSON-LD 문서를 처리하여 YAML로 직렬화한 다음, 어떠한 의미 정보도 손실하지 않고 다시 JSON-LD로 변환할 수 있도록 하는 것이다.
이는 다음과 같은 이유로 항상 가능하다.
예제 1의 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"
}
YAML은 마크업 언어가 아니다 (YAML™) 버전 1.2.2에서는 YAML 처리를 여러 단계로 설명하며, 이를 그림 1에 재현한다. 이 처리는 YAML 구문의 문자 스트림(오른쪽)을 이른바 "네이티브 데이터 구조"(왼쪽)로 변환하거나 그 반대로 변환한다. JSON-LD에서 해당 데이터 구조는 JSON-LD 내부 표현이다.
이 절에서는 YAML-LD가 YAML 처리 단계에 부과하는 요구사항을 로드 방향(그림 1에서 오른쪽에서 왼쪽 방향)으로 설명한다. 덤프는 반대 방향으로 진행하여, JSON 호환 내부 표현으로부터 적합한 YAML-LD 스트림을 생성한다.
표현은 그림 1에 있는 YAML 문자 스트림이다.
폐쇄형 생태계에 속하지 않는 시스템 간에 교환되는 JSON 텍스트는 UTF-8을 사용하여 인코딩되어야 한다.
YAML-LD 스트림은 UTF-8로 인코딩되어야
한다.
그렇지 않으면
invalid-encoding
오류를 감지하고 처리를 중단해야 한다.
YAML에서는 마커로 구분된 일련의 문서로서 여러 직렬화 트리를 동일한 YAML 표현 스트림에 포함할 수 있다.
YAML-LD 스트림은 아래와 같이 둘 이상의 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
YAML 스트림의 상호 운용성 고려사항은 YAML 미디어 유형의 관련 절을 참조한다.
직렬화는 그림 1에서 구문 분석이 생성하고 (표현이 사용하는) 순서가 있는 트리이다.
앵커 이름은 직렬화의 세부사항이며 구성이 완료되면 폐기된다.
이 명세에서 앵커는 직렬화된 그래프에서 동일한 논리적 노드를 참조로
재사용하기 위한 YAML의 노드 앵커 메커니즘
(직렬화에서 &와 *를 사용하는
별칭 노드 포함)을 의미한다.
이는 HTML
하이퍼링크
또는 URL 프래그먼트 식별자와 관련이 없다.
[YAML]
§6.9.2 노드 앵커를 참조한다.
따라서 앵커 이름은 관련 정보를 전달하는 데 사용해서는 안 되며, 문서를 처리할 때 변경할 수 있고, YAML-LD 처리 중에 제거할 수 있다.
앵커는 @context 블록 내에서 특히 유용하다.
여러 용어가 동일한 용어 정의를 공유하는 경우(예: 모든
IRI 값을 갖는 속성) 공유 정의에 한 번 앵커를 지정하고
각 용어에서 별칭으로 참조하여 반복을 피할 수 있다.
다음 예제에서는 IRI 강제 변환 정의를
&iri로 앵커링하고 세 속성에서 재사용한다.
"@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
모든 앵커와 별칭이 확인되면 동등한 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"
}
표상은 그림 1에서 구성이 생성하는 YAML 표상 그래프이다.
YAML-LD 문서는 직렬화에 앵커가 지정된 노드와 별칭 노드를 포함할 수 있지만, 해당 표상 그래프에는 순환이 포함되어서는 안 된다. 그렇지 않으면 loading-document-failed 오류를 감지하고 처리를 중단해야 한다.
표상 그래프를 구성할 때 각 별칭 노드는 대상 앵커가 식별하는 노드로 해석되어야 한다. JSON-LD 내부 표현을 구성할 때 해당 노드에 대한 각 참조는 노드의 복사본으로 취급되어야 한다.
완전한 표상 그래프를 구성할
때 YAML-LD는
스칼라 유형 해석에
YAML 코어 스키마를
사용한다.
[JSON]으로 표현할 수 없는
부동 소수점 값, 구체적으로
무한대(.inf, -.inf, +.inf)와
숫자가 아님(.nan)은 JSON-LD 내부
표현을 구성할 때
loading-document-failed
오류가 발생하도록 해야 한다.
YAML 코어 스키마는
타임스탬프 유형을 정의하지 않는다.
2018-04-01과 같은 스칼라는 일반 문자열로 해석된다.
그러나 많은 YAML 라이브러리는 기본적으로 YAML 1.1 타임스탬프 해석을 구현하며
이러한 스칼라를 네이티브 날짜 또는 날짜·시간 객체로 자동 변환한다.
YAML-LD 프로세서는 이러한 변환을 수행해서는 안 되며 이러한
값을 문자열로 취급해야 한다.
그림 1에서 구축이 생성하는 네이티브 데이터 구조는 JSON-LD 내부 표현이다.
[JSON-LD11-API]는 HTML 문서에서
JSON-LD 콘텐츠가 포함된 여러 <script> 태그를 구문 분석할 수 있게 하는
extractAllScripts
플래그를 정의한다.
적합한 YAML-LD 구현은 YAML-LD 스트림에서 JSON-LD 내부 표현을 구성할 때 이 플래그를 적용해야 한다.
true이면 내부 표현은 스트림에 문서가 하나만 포함되어 있더라도
스트림에 있는 각 문서의 구성된 값을 포함하는
배열이어야 한다.
false이면 스트림의 첫 번째 문서만
구성해야 한다.
객체 구조는 중괄호 쌍으로 표현되며, 그 안에는 0개 이상의 이름/값 쌍(또는 멤버)이 포함된다. 이름은 문자열이다.
따라서 YAML-LD의 모든 매핑 키는 반드시 string이어야 한다.
그렇지 않으면 다음 예와 같이 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
이 절은 비규범적이다.
JSON-LD 1.1의 @json 키워드는 JSON 데이터가 포함된
@type @json과 @value를 갖는 값 객체로
JSON 리터럴을 정의한다.
프로세서는 이러한 값을 JSON-LD로 추가 해석하지 않고
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
확장된 형식을 살펴보자.
[
{
"@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이지만, YAML-LD에서 @value의
값을 JSON 구문으로 작성해야 하는 것은 아니다. 이 예제가 보여주듯이,
메타데이터
값 객체는 확장 과정에서 JSON-LD 형식으로 보존된다. — 이 키워드가 요구하는 바와 같다.
YamlLdErrorCode는 유효한 YAML-LD
오류 코드의 모음을 나타내며,
JsonLdErrorCode
정의를 확장한다.
WebIDLenum YamlLdErrorCode {
"invalid-encoding",
"mapping-key-error",
"profile-error"
};
invalid-encodingmapping-key-errorprofile-error이 절은 비규범적이다.
JSON-LD 1.1의 보안 고려사항과
+yaml 구조화 구문 접미사를 참조한다.
이 절은 비규범적이다.
JSON-LD 1.1의 개인정보 보호 고려사항을 참조한다.
이 절은 비규범적이다.
[YAML]에서
JSON
문서 직렬화에 관한 일반적인 상호운용성 고려사항은 YAML과
+yaml 구조화 구문 접미사의 상호운용성 고려사항을 참조한다.
상호운용성 및 보안 고려사항을 포함하여 여기에서 제공하는 고려사항과 분석은 YAML 1.2.2 명세를 기반으로 한다.
많은 널리 쓰이는 YAML 라이브러리는 기본적으로 YAML 1.1 파싱을 사용한다.
YAML 1.1 구현은 상호운용성 문제를 일으킨다. 특히 이른바
"노르웨이 문제"가 발생하는데, 이는 YAML 1.1이
no, No, NO, yes,
on, off 및 유사한 값을 불리언으로 취급하는 반면,
YAML 1.2 Core Schema는 이를 일반 문자열로 취급하기 때문이다.
YAML 1.1 라이브러리를 사용하는 YAML-LD 처리기는 적합성
테스트에 실패하며 적합하지 않다.
YAML-LD 콘텐츠는 아래 예제에 설명된 것처럼,
type 속성을 application/ld+yaml로 설정한
<script> 요소 안에 넣어 HTML [HTML]에 쉽게 삽입할 수 있다.
<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>
YAML 구문은 들여쓰기를 기반으로 한다. 따라서 YAML-LD 콘텐츠가 있는 각 <script> 블록을
처리할 때,
YAML-LD 처리기는 YAML 파싱을 위해 블록의 콘텐츠를 공백 문자를 포함하여
있는 그대로 보존해야 MUST 한다.
YAML-LD <script> 태그에 여러 YAML 문서가 포함된 YAML 스트림이 들어 있는 경우, 각 문서는 별도의
<script>
태그에 포함된 것처럼 취급되어야 한다. 자세한 내용은 스트림 처리를 참조한다.
이 절은 IANA의 검토, 승인 및 등록을 위해 Internet Engineering Steering Group(IESG)에 제출되었다.
이 절은 [RFC6838]에 따라 위 미디어 타입을 등록하는 데 필요한 정보를 설명한다.
profile[RFC6906]에 따라 YAML-LD
스트림에 적용되는 특정 제약 조건이나 규칙을 식별하는,
공백으로 구분된 URI의 비어 있지 않은 목록이다.
프로파일에 대한 지식 없이 처리하더라도 프로파일은 리소스 표현의 의미 체계를
변경하지 않으므로, 프로파일이 적용된 리소스를 알고 있는 클라이언트와
알지 못하는 클라이언트 모두 동일한 표현을 안전하게 사용할 수 있다.
클라이언트는 콘텐츠 협상 과정에서 자신의 선호 사항을 표현하기 위해
profile 매개변수를 사용할 수 있다.
profile 매개변수가 주어진 경우 서버는 자신이 인식하는 목록의 프로파일을
준수하는 문서를 반환하는 것이 좋으며,
자신이 인식하지 못하는 목록의 프로파일은 반드시
무시해야 한다.
프로파일 URI는 역참조할 수 있고 해당 URI에서 유용한 문서를 제공하는 것이
권장된다. 자세한 정보와 배경은
[RFC6906]을 참조한다.
이 명세는
에 나열된
profile 매개변수의 사용을 허용하며, 추가로
다음을 정의한다.
http://www.w3.org/ns/json-ld#extended
HTTP Accept
헤더 필드 [RFC9110]에서
미디어 유형
매개변수 [RFC4288]로 사용될 때,
profile 매개변수의 값에 공백과 같은 특수 문자가 포함되어 있으면
따옴표(")로 묶어야 한다. 이는 여러 프로파일 URI를
결합할 때 필요하다.
"profile" 미디어 유형 매개변수를 처리할 때는 그 값에 하나 이상의 IRI가 아니라 URI가 포함된다는 점에 유의해야 한다. 따라서 경우에 따라 [RFC3987]의 섹션 3 IRI와 URI의 관계에 명시된 대로 IRI와 URI 사이를 변환해야 할 수 있다.
+yaml과 동일.application/yaml과 동일.yaml.yamlldapplication/yaml과 동일application/yaml과 동일이 절은 비규범적이다.
이론적으로는 YAML 주석을
JSON-LD 문서로 수집해 볼 수도 있다. 예를 들어
https://json-ld.org/yaml-ld/comment 같은 특정 술어를 정의하고,
모든 # My comment 조각을 JSON-LD 문서의
{"yaml-ld:comment": "My comment"} 조각으로 변환할 수 있다.
그러나 이는 구현에 다음과 같은 영향을 미친다.
이 절은 비규범적이다.
Gregg Kellogg는 JSON-LD와 YAML-LD의 역사에서 중심적인 인물이었다. 그는 10년이 넘는 기간 동안 JSON-LD와 여러 다른 명세를 위해 지칠 줄 모르고 일했으며, 2025년 9월 6일 사망하기 직전까지도 그 일을 계속했다. 어려운 문제를 세련되게 해결하려는 Gregg의 열정은, 그 목표에 도달하는 과정에서 다른 사람들과 협력하고 그들을 격려하려는 그의 의지에 의해서만 능가되었다. JSON-LD와 더 넓은 링크드 데이터 커뮤니티는 가장 형성적인 시기에 Gregg가 제공한 일관되고 신중하며 친절한 기여에 영원히 감사할 것이다.
편집자들은 이 명세의 작성과 편집에 중요한 기여를 한 다음 개인들에게 특별히 감사하고자 한다.
Referenced in:
Referenced in:
4.1.2 주석
YAML-LD 스트림의 주석은 공백으로 취급한다.
자세한 내용은 YAML과 JSON의 상호 운용성 고려사항을 참조한다.