RDF 1.2 N-Quads

RDF 데이터셋을 위한 줄 기반 구문

W3C 작업 초안

이 문서에 대한 자세한 정보
이 버전:
https://www.w3.org/TR/2026/WD-rdf12-n-quads-20260612/
최신 공개 버전:
https://www.w3.org/TR/rdf12-n-quads/
최신 편집자 초안:
https://w3c.github.io/rdf-n-quads/spec/
이력:
https://www.w3.org/standards/history/rdf12-n-quads/
커밋 이력
테스트 스위트:
https://w3c.github.io/rdf-tests/rdf/rdf12/rdf-n-quads/
최신 권고안:
https://www.w3.org/TR/n-quads
편집자:
Gregg Kellogg (2025-09-06까지), 추모
Dominik Tomaszuk
이전 편집자:
Gavin Carothers (RDF 1.1)
피드백:
GitHub w3c/rdf-n-quads (풀 리퀘스트, 새 이슈, 열린 이슈)
public-rdf-star-wg@w3.org[rdf12-n-quads] … 메시지 주제 … 제목 줄로 보내십시오(아카이브)

초록

N-Quads는 RDF 데이터셋을 인코딩하기 위한 줄 기반의 일반 텍스트 형식입니다.

RDF 1.2 N-Quads는 트리플 용어RDF 용어의 네 번째 종류로 도입하며, 이는 다른 트리플객체로 사용될 수 있어, 다른 문장에 대한 문장을 만들 수 있게 합니다. RDF 1.2 N-Quads는 또한 방향성이 있는 언어 태그 문자열을 지원합니다.

이 문서의 상태

이 절은 이 문서가 게시된 시점의 문서 상태를 설명합니다. 현재 W3C 간행물 목록과 이 기술 보고서의 최신 개정판은 W3C 표준 및 초안 색인에서 확인할 수 있습니다.

이 문서는 RDF 1.2 문서 모음의 일부입니다. N-Quads 형식은 줄 기반 RDF 구문이며, N-Triples [RDF12-N-TRIPLES]의 확장입니다. 주요 차이점은 N-Quads가 RDF 데이터셋을 나타내는 단일 문서 안에서 여러 그래프를 인코딩할 수 있다는 점입니다.

이 문서는 RDF & SPARQL 워킹 그룹권고안 트랙을 사용하여 작업 초안으로 게시했습니다.

작업 초안으로 게시되었다고 해서 W3C 및 그 회원들의 승인을 의미하지는 않습니다.

이것은 초안 문서이며 언제든지 다른 문서로 업데이트, 대체 또는 폐기될 수 있습니다. 이 문서를 진행 중인 작업이 아닌 다른 것으로 인용하는 것은 부적절합니다. 이 예정된 권고안의 향후 업데이트에는 새 기능이 포함될 수 있습니다.

이 문서는 W3C 특허 정책에 따라 운영되는 그룹에서 작성했습니다. W3C는 해당 그룹의 산출물과 관련하여 이루어진 모든 특허 공개의 공개 목록을 유지합니다. 해당 페이지에는 특허 공개 지침도 포함되어 있습니다. 개인이 필수 청구항을 포함한다고 믿는 특허에 대한 실제 지식이 있는 경우, W3C 특허 정책 6절에 따라 해당 정보를 공개해야 합니다.

이 문서는 2025년 8월 18일 W3C 프로세스 문서의 적용을 받습니다.

1. 소개

이 절은 비규범적입니다.

이 문서는 RDF [RDF12-CONCEPTS]를 위한 구체 구문이며, N-Triples [RDF12-N-TRIPLES]의 확장인 N-Quads를 정의합니다. N-Quads는 구문 분석이 쉬운 줄 기반 RDF 데이터셋 [RDF12-CONCEPTS]용 구체 구문입니다.

N-Triples와 마찬가지로, N-Quads 문서는 콘텐츠의 RDF 버전을 알리기 위한 한 종류의 구문 분석 지시문을 포함할 수 있습니다. 2.2 버전 선언을 참조하십시오.

N-Quads 문장은 주어, 술어, 그리고 객체를 나타내는 RDF 용어들의 시퀀스이며, RDF 트리플의 구성요소와 RDF 데이터셋 안에서 그 트리플과 관련된 명명된 그래프를 식별하는 선택적 그래프 이름으로 이루어집니다. 이것은 RDF 데이터셋 안의 쿼드라고도 합니다. 이들은 공백 문자(스페이스 및/또는 )로 구분될 수 있습니다. 이 시퀀스는 마침표(.)로 종료되며, 선택적으로 공백 문자 및/또는 주석이 뒤따를 수 있고, 새 줄로 끝납니다(문서 끝에서는 선택 사항).

예제 1: N-Quads에서 주석 사용

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

RDF 데이터셋N-Quads 문서가 나타내는 것으로, N-Quads statement 생성식과 일치하는 각 쿼드를 정확히 포함합니다.

이 명세는 RDF 1.1 N-Quads [N-QUADS]에서 정의된 원래 N-Quads 구문을 확장하여, RDF 1.2 개념 및 추상 데이터 모델 [RDF12-CONCEPTS]에서 도입된 새 기능을 지원합니다. 이 확장은 완전한 하위 호환성을 가집니다.

2. N-Quads 언어

이 절은 비규범적입니다.

N-Quads 문서RDF 데이터셋을 텍스트 형식으로 기록할 수 있게 합니다. RDF 데이터셋은 주어, 술어, 객체, 선택적 그래프 이름 및 선택적 빈 줄로 이루어진 단순 문장으로 구성됩니다. 주석은 다른 어휘 토큰의 일부가 아닌 # 뒤에 제공될 수 있으며 줄 끝까지 계속됩니다.

2.1 단순 문장

단순 문장은 [RDF12-N-TRIPLES]의 단순 트리플의 정의를 선택적 명명된 그래프로 확장합니다.

가장 단순한 문장은 (주어, 술어, 객체) 용어들의 시퀀스로, RDF 트리플을 형성하며, 선택적 그래프 이름 (빈 노드 식별자 또는 IRI)은 해당 트리플이 속한 데이터셋 안의 명명된 그래프를 나타내며, 마침표(.)로 끝납니다. 공백 문자(스페이스 및/또는 )는 용어 주변에 올 수 있지만, 문법에서 유의미하다고 명시된 경우는 예외입니다.

주석은 공백 문자로 처리되며, 다른 어휘 토큰의 일부가 아닌 # 뒤에 제공되어 줄 끝까지 계속될 수 있습니다.

그래프 이름은 생략될 수 있으며, 이 경우 트리플은 RDF 데이터셋기본 그래프에 속하는 것으로 간주됩니다.

예제 2: 단순 문장

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

2.2 버전 선언

N-Quads 언어는 처음 만들어진 이후 발전해 왔으며, RDF 1.2는 새 구문을 추가합니다. RDF 1.2 N-Quads는 선택적 version 미디어 유형 매개변수와 함께 VERSION 지시문을 도입합니다. 초기 텍스트 방향이나 트리플 용어 같은 새 기능이 포함된 N-Quads를 각각 직렬화하고 구문 분석할 때, 작성자와 파서는 이러한 지시문을 사용하여 새 구문 형식의 사용을 알리고 감지할 수 있습니다. 마찬가지로 HTTP 클라이언트와 서버는 version 미디어 유형 매개변수를 사용할 수 있습니다.

N-Triples와 마찬가지로, 버전 선언은 대소문자를 구분합니다.

예제 3: 버전 선언

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

HTTP를 통해 콘텐츠를 제공할 때, 서버는 선택적 version 미디어 유형 매개변수를 사용하여 버전을 알릴 수 있습니다:

예제 4: HTTP 버전 선언

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

버전 선언 사용에 관한 추가 고려사항은 [RDF12-TURTLE]의 버전 선언을 참조하십시오.

2.3 트리플 용어

트리플 용어RDF 트리플객체가 될 수 있습니다.

트리플 용어<<(가 앞에 붙고 )>>가 뒤따르는 subject, predicate, 그리고 object를 가진 tripleTerm으로 표현됩니다. 트리플 용어는 중첩될 수 있음에 유의하십시오.

예제 5: 트리플 용어

_: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

N-Triples에서와 같이, IRI해결된 IRI로만 작성될 수 있습니다. IRI 앞에는 <가 오고, 뒤에는 >가 오며, 숫자 이스케이프 시퀀스를 포함할 수 있습니다. 예를 들어 <http://example.org/#green-goblin>입니다.

2.5 RDF 리터럴

N-Triples에서와 같이, 리터럴은 문자열, 숫자, 날짜와 같은 값을 식별하는 데 사용됩니다.

리터럴(문법 생성식 Literal)은 어휘 형식 뒤에 언어 태그 (가능한 경우 초기 텍스트 방향 포함), 데이터형 IRI, 또는 둘 중 어느 것도 아닌 것이 옵니다.

어휘 형식의 표현은 시작 구분자 ", 허용된 문자들의 시퀀스 또는 숫자 이스케이프 시퀀스문자열 이스케이프 시퀀스, 그리고 끝 구분자로 구성됩니다.

리터럴에는 ", LF, 또는 CR 문자가 포함될 수 없습니다. 단, 이스케이프된 형식은 예외입니다. 또한 \는 이스케이프 시퀀스의 일부인 경우를 제외하고 어떤 따옴표로 둘러싼 리터럴에도 나타날 수 없으며, " 문자는 이스케이프 시퀀스를 사용해서만 따옴표로 둘러싼 리터럴에 포함될 수 있습니다.

대응하는 어휘 형식은 이스케이프 시퀀스를 처리한 뒤 구분자 사이에 있는 문자들입니다. 존재하는 경우, LANG_DIR 터미널은 언어 태그와 선택적 초기 텍스트 방향에 일치합니다. 언어 태그 앞에는 @가 오며, 존재하는 경우 초기 텍스트 방향언어 태그--로 구분됩니다. 언어 태그가 없으면, 데이터형 IRI가 있을 수 있으며, 그 앞에는 ^^가 옵니다. 데이터형 IRI도 언어 태그도 없으면, 그것은 단순 리터럴이며, 데이터형은 http://www.w3.org/2001/XMLSchema#string입니다.

2.6 RDF 빈 노드

N-Triples에서와 같이, RDF 빈 노드_:로 표현되고, 그 뒤에는 BLANK_NODE_LABEL 생성식과 일치하는 빈 노드 레이블이 옵니다.

비공식적으로, _: 뒤의 첫 번째 문자는 PN_CHARS_U와 일치하는 문자이거나 숫자입니다. 뒤따르는 문자가 있는 경우, PN_CHARS와 일치하거나 .일 수 있습니다. 단, .는 마지막 문자로 허용되지 않습니다.

문서 안의 각 고유한 빈 노드 식별자마다 새로운 RDF 빈 노드가 할당됩니다. 동일한 빈 노드 식별자를 반복해서 사용하면 동일한 빈 노드를 식별합니다.

예제 6: N-Quads의 빈 노드

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

3. N-Quads의 정규 형식

이 절은 완전히 지정된 레이아웃을 갖는 N-Quads의 정규 형식을 정의합니다. 이 언어의 문법은 변경되지 않습니다.

정규 N-Quads는 [RDF12-N-TRIPLES]의 정규 N-Triples를 확장하여 graphLabel을 포함합니다.

N-Quads 구문은 RDF 데이터의 표현과 레이아웃에 대한 선택지를 허용하지만, N-Quads의 정규 형식은 모든 쿼드에 대해 고유한 구문 표현을 제공합니다. 각 코드 포인트는 표현 선택이 허용되는 관련 생성식에서 UCHAR, ECHAR, 또는 인코딩되지 않은 문자 중 하나로만 표현될 수 있습니다. 각 쿼드는 지정된 공백을 사용하여 완전히 한 줄에 표현됩니다.

정규 N-Quads에는 레이아웃에 대해 다음과 같은 추가 제약이 있습니다:

4. 적합성

비규범적이라고 표시된 절뿐 아니라, 이 명세의 모든 작성 지침, 도표, 예제 및 참고 사항은 비규범적입니다. 이 명세의 그 밖의 모든 내용은 규범적입니다.

이 문서의 핵심어 MAY, MUST, MUST NOT, 및 SHOULD는 여기에 표시된 것처럼 모두 대문자로 나타날 때, 그리고 오직 그럴 때에만 BCP 14 [RFC2119] [RFC8174]에 설명된 대로 해석되어야 합니다.

이 명세는 다음에 대한 적합성 기준을 정의합니다:

적합한 N-Quads 문서5. N-Quads 문법에서 정의된 문법 및 추가 제약을 nquadsDoc 생성식부터 시작하여 따르는 RDF 문자열입니다. N-Quads 문서는 RDF 데이터셋을 직렬화합니다.

참고

N-Quads 문서는 RDF 데이터셋의 일부일 수 있는 빈 그래프를 직렬화하는 방법을 제공하지 않습니다.

적합한 정규 N-Quads 문서는 정규 N-Quads의 추가 제약을 따르는 N-Quads 문서입니다.

적합한 N-Quads 파서는 애플리케이션을 대신하여 N-Quads 문서를 읽을 수 있는 시스템입니다. 이는 6. 구문 분석에서 정의된 대로 직렬화된 RDF 데이터셋을 일반적으로 어떤 형태의 API를 통해 애플리케이션에 제공합니다.

N-Quads 언어를 식별하는 IRI는 다음과 같습니다: http://www.w3.org/ns/formats/N-Quads

4.1 미디어 유형 및 콘텐츠 인코딩

N-Quads의 미디어 유형은 application/n-quads입니다. N-Quads의 콘텐츠 인코딩은 항상 UTF-8입니다. 미디어 유형 등록 양식은 N-Quads 미디어 유형을 참조하십시오.

4.1.1 기타 미디어 유형

원래 명세인 N-Quads: 컨텍스트로 N-Triples 확장은 7비트 US-ASCII를 사용하는 인코딩과 함께 미디어 유형 text/x-nquads의 사용을 제안했습니다.

5. N-Quads 문법

N-Quads 문서는 UTF-8 [RFC3629]로 인코딩된 RDF 문자열입니다. U+0000부터 U+D7FF까지 및 U+E000부터 U+10FFFF까지의 범위에 있는 유니코드 스칼라 값만 허용됩니다. 이는 U+D800부터 U+DFFF까지의 범위인 서로게이트 코드 포인트를 제외합니다.

5.1 공백

공백(spaces 및/또는 tabs)은 터미널 바깥에서 허용됩니다. 아래의 대문자 규칙 이름은 공백이 유의미한 위치를 나타냅니다.

공백은 STRING_LITERAL_QUOTE 생성식에서 유의미합니다.

공백 및/또는 주석만으로 이루어진 빈 줄statement 생성식이 허용되는 곳이면 어디에나 나타날 수 있으며, 공백으로 처리됩니다.

참고

N-Triples [RDF12-N-TRIPLES]와 마찬가지로, N-Quads는 수평 공백(spaces 또는 tabs)만 허용합니다.

5.2 주석

N-Quads의 주석은 IRIREF 또는 STRING_LITERAL_QUOTE 바깥에 있는 #에서 시작하며, 문자 CR 또는 LF로 표시되는 줄 끝까지, 또는 주석 표시 뒤에 줄 끝이 없는 경우 파일 끝까지 계속됩니다. 주석은 공백으로 처리됩니다.

5.3 문법

여기서 사용된 EBNF는 XML 1.0 [EBNF-NOTATION]에서 정의됩니다.

이스케이프 시퀀스 규칙은 N-Triples [RDF12-N-TRIPLES] 및 Turtle [RDF12-TURTLE]과 동일합니다. 그러나 STRING_LITERAL_QUOTE 생성식만 허용되므로 리터럴 안의 새 줄은 이스케이프되어야 MUST 합니다.

'VERSION' 터미널은 대소문자를 구분함을 나타내기 위해 작은따옴표 안에 표시됩니다.

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

터미널 생성식

[14] IRIREF ::= '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
[15] BLANK_NODE_LABEL ::= '_:' (PN_CHARS_U | [0-9]) ((PN_CHARS | '.')* PN_CHARS)?
[16] LANG_DIR ::= '@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)* ('--' [a-zA-Z]+)?
[17] STRING_LITERAL_QUOTE ::= '"' ([^#x22#x5C#x0A#x0D] | ECHAR | UCHAR)* '"'
[18] UCHAR ::= ('\u' HEX HEX HEX HEX) | ('\U' HEX HEX HEX HEX HEX HEX HEX HEX)
[19] ECHAR ::= '\' [tbnrf\"']
[20] 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]
[21] PN_CHARS_U ::= PN_CHARS_BASE | '_'
[22] PN_CHARS ::= PN_CHARS_U | '-' | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
[23] HEX ::= [0-9] | [A-F] | [a-f]
[24] EOL ::= [#x0D#x0A]+

이 문법의 텍스트 버전은 여기에서 확인할 수 있습니다.

5.4 선택된 터미널 리터럴 문자열

이 문서는 일부 특정 터미널 리터럴 문자열 [EBNF-NOTATION]을 사용합니다. 이러한 터미널 리터럴 문자열에 사용된 유니코드 코드 포인트를 명확히 하기 위해, 다음 표는 이 문서 전반에서 사용되는 특정 문자와 시퀀스를 설명합니다.

코드 글리프 설명
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 숫자 0
U+0039 9 숫자 9
U+003B : 콜론
U+003C < 보다 작음 기호
U+003E > 보다 큼 기호
U+0040 @ 앳 기호
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 문자 연결 기호

그 밖의 짧은 터미널 리터럴 문자열은 특정 유니코드 문자 시퀀스로 구성됩니다:

space
U+0020
<<(
각각 코드 포인트 U+003C를 갖는 두 개의 이어진 보다 작음 기호 문자와, 그 뒤에 코드 포인트 U+0028를 갖는 왼쪽 괄호 문자가 옵니다
)>>
코드 포인트 U+0029를 갖는 왼쪽 괄호 문자와, 그 뒤에 각각 코드 포인트 U+003E를 갖는 두 개의 이어진 보다 큼 기호 문자가 옵니다
각각 코드 포인트 U+003E를 갖는 두 개의 이어진 보다 큼 기호 문자입니다
^^
각각 코드 포인트 U+005E를 갖는 두 개의 이어진 곡절 악센트 문자입니다
_:
_ 뒤에 :가 옵니다
--
두 개의 이어진 - 문자입니다

6. 구문 분석

N-Quads를 구문 분석하려면 두 항목의 상태가 필요합니다:

6.1 RDF 용어 생성자

이 표는 생성식과 어휘 토큰을 RDF 용어 또는 RDF 용어의 구성요소로 매핑하며, 이는 6. 구문 분석에 나열되어 있습니다:

생성식 유형 절차
versionSpecifier 리터럴 curVersion은 일치한 RDF 문자열 어휘 형식과 xsd:string 데이터형을 사용하는 리터럴에서 가져옵니다.
BLANK_NODE_LABEL 빈 노드 _: 뒤의 문자열은 bnodeLabels의 키입니다. 맵에 대응하는 빈 노드가 없으면, 하나가 할당됩니다.
IRIREF IRI <> 사이의 문자를 이스케이프 시퀀스를 해제하여 가져오고, 이를 IRI로 형성합니다. 결과 IRI는 일반 IRI 구문의 구문적 제한을 준수해야 MUST 하며, [RFC3986]의 3.3절을 준수하는 것이 SHOULD 하며, 해당 IRI 스킴 명세가 부과하는 더 좁은 제한도 준수해야 합니다.
LANG_DIR 언어 태그 @ 뒤의 문자는 언어 태그를 형성하고, 일치한 문자에 --가 포함되어 있으면 선택적으로 초기 텍스트 방향도 형성합니다.
언어 태그는 [BCP47]의 2.2.9절에 따라 잘 형성되어야 MUST 합니다. 존재하는 경우, 초기 텍스트 방향ltr 또는 rtl 중 하나여야 MUST 합니다.
STRING_LITERAL_QUOTE RDF 어휘 형식 가장 바깥쪽 따옴표(") 사이의 문자를 이스케이프 시퀀스를 해제하여 가져오고, 이를 어휘 형식문자열로 형성합니다.
literal 리터럴 리터럴은 첫 번째 규칙 인수인 STRING_LITERAL_QUOTE어휘 형식을 가지며, 입력에 일치한 규칙에 따라 LANG_DIR에서 가져온 선택적 초기 텍스트 방향이 있는 언어 태그 또는 iri데이터형 IRI를 가집니다. LANG_DIR 규칙이 일치한 경우, 언어 태그초기 텍스트 방향LANG_DIR에서 가져옵니다. 초기 텍스트 방향이 없으면, 데이터형은 rdf:langString입니다. 초기 텍스트 방향이 있으면, 데이터형은 rdf:dirLangString입니다. LANG_DIR데이터형 IRI도 일치하지 않으면, 리터럴의 데이터형은 xsd:string입니다.
tripleTerm 트리플 용어 트리플 용어subject, predicate, 및 object 생성식에서 구성된 용어들로 이루어집니다.
참고

입력에서 오류를 감지하는 처리기는 입력에 설명된 것보다 더 적은 트리플을 포함하는 데이터셋 (트리플이 전혀 없는 경우 포함)을 결과로 만들 수 있으므로, 소비자는 결과 데이터셋을 사용할 때 신호된 오류 정보를 고려해야 하며, 해당 데이터셋은 불완전하거나 잘못 형식화된 또는 잘못 구성된 용어를 포함할 수 있습니다.

6.2 RDF 데이터셋 구성

N-Quads 문서RDF 트리플의 집합으로 구성된 RDF 그래프들로 이루어진 RDF 데이터셋을 정의합니다. statement 생성식은 subject, predicate, 및 object를 위해 구성된 용어들로 정의되는 트리플을 생성합니다. 이 RDF 트리플은 graphLabel 생성식으로 레이블이 지정된 그래프에 추가되며, graphLabel이 없으면 트리플은 RDF 데이터셋의 기본 그래프에 추가됩니다.

A. 개인정보 보호 고려사항

이 절은 비규범적입니다.

N-Quads 형식은 임의의 애플리케이션 데이터를 표현하는 데 사용되며, 여기에는 개인 식별 정보(PII) 또는 민감하다고 간주될 수 있는 다른 정보의 표현이 포함될 수 있습니다. 이러한 정보를 게시하는 작성자는 그러한 정보를 게시할 필요와 사용 방식을 신중히 고려하고, 데이터가 소비되고 잠재적으로 공개될 것으로 예상되는 지역에 적용되는 규정 (예: GDPR, CCPA, 기타)도 고려하는 것이 권장되며, 특히 데이터 접근에 권한 부여 조치가 필요한지 여부를 고려해야 합니다.

B. 보안 고려사항

이 절은 비규범적입니다.

STRING_LITERAL_QUOTE 생성식은 이스케이프되지 않은 제어 문자의 사용을 허용합니다. 이 명세가 이 콘텐츠를 최종 사용자에게 직접 노출하지는 않지만, 사용자 에이전트를 통해 표시될 수 있으며, 그러한 문자의 표시로 인해 표시된 텍스트가 난독화될 수 있습니다.

N-Quads는 범용 단언 언어입니다. 애플리케이션은 주어진 데이터를 평가하여 더 많은 단언을 추론하거나 IRI를 역참조할 수 있으며, 그 IRI의 스킴에 대한 보안 고려사항이 적용됩니다. 특히 HTTP IRI에 대해서는 [RFC3023] 10절의 개인정보 보호 문제에 유의하십시오. 부정확하거나 악의적인 데이터 소스에서 얻은 데이터는 부정확하거나 오해를 일으키는 결론과 의도하지 않은 IRI의 역참조로 이어질 수 있습니다. 참조한 리소스에 대한 신뢰 수준을 데이터의 의도된 사용의 민감도에 맞추도록 주의해야 합니다. 예를 들어 잠재적 의료 치료에 대한 추론은 여행 계획에 대한 추론과는 다른 수준의 신뢰를 요구할 가능성이 큽니다.

N-Quads 언어는 임의의 애플리케이션 데이터를 표현하는 데 사용됩니다. 보안 고려사항은 사용 영역에 따라 달라집니다. 텍스트에 적용 가능한 보안 도구와 프로토콜 (예: PGP 암호화, 체크섬 검증, 암호로 보호된 압축)도 N-Quads 문서에 사용할 수 있습니다. 포함된 정보의 민감도를 반영하는 보안/개인정보 보호 프로토콜이 적용되어야 합니다.

N-Quads는 RDF Schema 레이블과 같이 사용자에게 표시되는 데이터를 표현할 수 있습니다. 신뢰할 수 없는 N-Quads 문서에서 검색한 문자열을 렌더링하거나 이스케이프되지 않은 문자를 사용하는 애플리케이션은 악의적인 문자열이 독자를 오도하는 데 사용될 가능성을 제한하기 위해 경고 및 기타 적절한 수단을 사용해야 SHOULD 합니다. XML 미디어 유형 등록의 보안 고려사항([RFC3023] 10절)은 임의의 데이터와 마크업의 표현에 대한 추가 지침을 제공합니다.

N-Quads는 용어 식별자로 IRI를 사용합니다. N-Quads로 표현된 데이터를 해석하는 애플리케이션은 Internationalized Resource Identifiers (IRIs) [RFC3987] 8절과 Uniform Resource Identifier (URI): Generic Syntax [RFC3986] 7절의 보안 문제를 다루어야 SHOULD 합니다.

여러 IRI가 동일하게 보일 수 있습니다. 서로 다른 문자 체계의 문자가 비슷하게 보일 수 있습니다(예를 들어, 키릴 문자 "о"가 라틴 문자 "o"와 비슷하게 보일 수 있습니다). 결합 문자가 뒤따르는 문자는 다른 문자와 동일한 시각적 표현을 가질 수 있습니다 (예를 들어, LATIN SMALL LETTER "E" 뒤에 COMBINING ACUTE ACCENT가 오는 경우 LATIN SMALL LETTER "E" WITH ACUTE와 동일한 시각적 표현을 가집니다). N-Quads로 데이터를 작성하거나 해석하는 모든 사람 또는 애플리케이션은 의도한 의미와 일치하는 IRI를 사용하고, 비슷하게 보일 수 있는 IRI를 피하도록 주의해야 합니다. 시각적으로 유사한 문자를 매칭하는 것에 대한 자세한 정보는 Unicode Security Considerations [UNICODE-SECURITY] 및 Internationalized Resource Identifiers (IRIs) [RFC3987] 8절에서 확인할 수 있습니다.

C. 인터넷 미디어 유형 및 파일 확장자

N-Quads의 인터넷 미디어 유형(이전 명칭 MIME 유형)은 "application/n-quads"입니다.

다음 정보는 검토, 승인 및 IANA 등록을 위해 Internet Engineering Steering Group (IESG)에 제출되었습니다.

유형 이름:
application
하위 유형 이름:
n-quads
필수 매개변수:
없음
선택적 매개변수:
version
이 매개변수는 선택 사항입니다. 존재하는 경우, version의 허용 값은 [RDF12-CONCEPTS]의 2.1 버전 레이블에서 정의됩니다.
profile
이 매개변수는 선택 사항이며 추가 정보를 포함하는 데 사용됩니다. 프로필에 대한 지식 없이 처리될 때 리소스 표현의 의미를 변경하지 않습니다. profile 매개변수의 값은 공백으로 구분된 URI의 비어 있지 않은 목록입니다. 더 많은 정보와 배경은 [RFC6906]을 참조하십시오.
인코딩 고려사항:
N-Quads의 구문은 유니코드 [UNICODE]의 코드 포인트 위에서 표현됩니다. 인코딩은 항상 UTF-8 [UTF-8]입니다.
유니코드 코드 포인트는 \uXXXX (U+0000부터 U+FFFF까지) 또는 \UXXXXXXXX 구문(최대 U+10FFFF까지의 코드 포인트)으로도 표현될 수 있으며, 여기서 X는 16진수 숫자 [0-9A-F]입니다
보안 고려사항:
B. 보안 고려사항을 참조하십시오.
상호운용성 고려사항:
알려진 상호운용성 문제는 없습니다.
게시된 명세:
이 명세.
이 미디어 유형을 사용하는 애플리케이션:
N-Quads는 RDF 데이터를 표현하는 데 널리 사용됩니다. 대부분의 일반적인 프로그래밍 언어에서 사용할 수 있는 구현이 있습니다.
추가 정보:
매직 넘버:
없음.
파일 확장자:
.nq
추가 정보를 위한 연락 담당자 및 이메일 주소:
RDF & SPARQL Working Group <public-rdf-star-wg@w3.org>
의도된 사용:
일반
사용 제한:
없음
작성자:
N-Quads 명세는 RDF & SPARQL WG의 산출물입니다. W3C는 이 명세에 대한 변경 관리를 보유합니다.
참고

profile 매개변수는 클라이언트가 콘텐츠 협상 과정에서 자신의 선호를 표현하는 데 사용할 수 있으며, 서버가 응답에 대한 추가 정보를 나타내는 데 사용할 수 있습니다.

클라이언트가 profile 매개변수를 제공한 경우, 서버는 서버가 인식하는 목록의 모든 프로필을 존중하는 문서를 반환해야 합니다. 서버는 profile 값만을 근거로 오류로 응답해서는 안 됩니다.

서버가 profile 매개변수를 제공한 경우, 클라이언트는 이를 무시하도록 선택할 수 있습니다.

참고

프로필 URI는 역참조 가능하고 해당 URI에서 유용한 문서를 제공하는 것이 권장됩니다.

참고

미디어 유형 매개변수 [RFC4288]로 HTTP Content-Type 헤더 또는 HTTP Accept 헤더 [RFC7231]에서 사용될 때, profile 매개변수 값에 공백과 같은 특수 문자가 포함되어 있으면, 여러 profile URI를 구분하는 데 사용되는 공백을 포함하여, 그 값은 따옴표(ASCII ")로 묶어야 합니다.

profile 매개변수의 값에는 IRI가 아니라 하나 이상의 URI가 포함된다는 점에 유의하는 것이 중요합니다. 따라서 [RFC3987]의 3절 IRI와 URI의 관계에 명시된 대로 IRI와 URI 사이의 변환이 필요할 수 있습니다.

D. 감사의 말

이 절은 비규범적입니다.

D.1 RDF 1.1에 대한 감사의 말

이 절은 비규범적입니다.

RDF 1.1 판의 편집자는 Gregg Kellogg, Andy Seaborne, Eric Prud'hommeaux, Dave Beckett, David Robillard, Gregory Williams, Antoine Zimmermann, Sandro Hawke, Richard Cyganiak, Pat Hayes, Henry S. Thompson, Bob Ferris, Henry Story, Andreas Harth, Lee Feigenbaum, Peter Ansell, Evan Patton 및 David Booth의 귀중한 기여에 감사를 표합니다.

이 명세는 Guus Schreiber와 David Wood가 의장을 맡은 RDF Working Group 구성원들의 광범위한 숙고의 산물입니다. 이는 Richard Cyganiak, Andreas Harth, Aidan Hogan이 편집한 N-Quads: Extending N-Triples with Context의 이전 명세를 바탕으로 합니다.

D.2 RDF 1.2에 대한 감사의 말

이 절은 비규범적입니다.

RDF 1.2 판의 편집자들은 Andy Seaborne의 귀중한 기여에 감사를 표합니다.

편집자들 외에도 다음 사람들이 이 명세에 기여했습니다: Andy Seaborne, Denis Ah-Kang, Jim Smart, Niklas Lindström, Peter F. Patel-Schneider, Pierre-Antoine Champin, Ted Thibodeau Jr, and Thomas Tanon

RDF & SPARQL Working Group Group의 구성원에는 다음이 포함되었습니다
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 사이의 변경 사항

이 절은 비규범적입니다.

이 명세는 RDF 1.1 N-Quads [N-QUADS]에서 정의된 원래 N-Quads 구문을 확장하여, RDF 1.2 Concepts and Abstract Data Model [RDF12-CONCEPTS]에서 도입된 새 기능을 지원합니다. 이 확장은 완전한 하위 호환성을 가집니다: 이전 버전을 준수하는 모든 문서는 새 버전도 준수하며, 동일한 그래프로 구문 분석됩니다. 또한 새 버전을 준수하고 RDF 1.1 기능만 포함하는 모든 문서도 이전 버전을 준수합니다 (VERSION 지시문은 예외입니다. 2.2 버전 선언 참조). 마지막으로, 새로운 구문 구성 중 어떤 것도 이전 구문에서는 유효하지 않습니다. 이는 RDF 1.2 기능을 사용하는 모든 N-Quads 문서가 이 명세의 이전 버전을 준수하지 않으며, 그 이전 버전 아래에서 다른 그래프로 해석될 수 없음을 의미합니다.

보다 구체적으로 다음 변경 사항이 이루어졌습니다:

F. 색인

이 절은 비규범적입니다.

F.1 이 명세에서 정의된 용어

F.2 참조로 정의된 용어

G. 이슈 요약

이 절은 비규범적입니다.

이 명세에는 나열된 이슈가 없습니다.

H. 참고문헌

H.1 규범 참고문헌

[BCP47]
Tags for Identifying Languages. A. Phillips, Ed.; M. Davis, Ed. IETF. 2009년 9월. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc5646
[EBNF-NOTATION]
EBNF Notation. Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. W3C Recommendation. URL: https://www.w3.org/TR/xml/#sec-notation
[I18N-GLOSSARY]
Internationalization Glossary. Richard Ishida; Addison Phillips. W3C. 2024년 10월 17일. W3C Working Group Note. URL: https://www.w3.org/TR/i18n-glossary/
[RDF12-CONCEPTS]
RDF 1.2 Concepts and Abstract Data Model. Andy Seaborne; Gregg Kellogg; Olaf Hartig; Pierre-Antoine Champin. W3C. 2026년 4월 7일. W3C Candidate Recommendation. URL: https://www.w3.org/TR/rdf12-concepts/
[RDF12-N-TRIPLES]
RDF 1.2 N-Triples. Gregg Kellogg; Dominik Tomaszuk. W3C. 2026년 5월 15일. W3C Working Draft. URL: https://www.w3.org/TR/rdf12-n-triples/
[RDF12-TURTLE]
RDF 1.2 Turtle. Gregg Kellogg; Andy Seaborne; Dominik Tomaszuk. W3C. 2026년 5월 28일. W3C Working Draft. URL: https://www.w3.org/TR/rdf12-turtle/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. 1997년 3월. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC3629]
UTF-8, a transformation format of ISO 10646. F. Yergeau. IETF. 2003년 11월. Internet Standard. URL: https://www.rfc-editor.org/rfc/rfc3629
[RFC3986]
Uniform Resource Identifier (URI): Generic Syntax. T. Berners-Lee; R. Fielding; L. Masinter. IETF. 2005년 1월. Internet Standard. URL: https://www.rfc-editor.org/rfc/rfc3986
[RFC3987]
Internationalized Resource Identifiers (IRIs). M. Duerst; M. Suignard. IETF. 2005년 1월. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc3987
[RFC6906]
The 'profile' Link Relation Type. E. Wilde. IETF. 2013년 3월. Informational. URL: https://www.rfc-editor.org/rfc/rfc6906
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. 2017년 5월. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174
[UNICODE]
The Unicode Standard. Unicode Consortium. URL: https://www.unicode.org/versions/latest/
[XML11]
Extensible Markup Language (XML) 1.1 (Second Edition). Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau; John Cowan et al. W3C. 2006년 8월 16일. W3C Recommendation. URL: https://www.w3.org/TR/xml11/

H.2 정보 참고문헌

[N-QUADS]
RDF 1.1 N-Quads. Gavin Carothers. W3C. 2014년 2월 25일. W3C Recommendation. URL: https://www.w3.org/TR/n-quads/
[RDF12-INTEROP]
RDF 1.2 Interoperability. Pierre-Antoine Champin. W3C. W3C Editor's Draft. URL: https://w3c.github.io/rdf-interop/spec/
[RDF12-NEW]
What’s New in RDF 1.2. The W3C RDF & SPARQL Working Group. W3C. W3C Editor's Draft. URL: https://w3c.github.io/rdf-new/spec/
[RDF12-PRIMER]
RDF 1.2 Primer. 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 Working Draft. URL: https://www.w3.org/TR/rdf12-schema/
[RDF12-SEMANTICS]
RDF 1.2 Semantics. Peter Patel-Schneider; Enrico Franconi; Dörthe Arndt. W3C. 2026년 4월 7일. W3C Candidate Recommendation. URL: https://www.w3.org/TR/rdf12-semantics/
[RDF12-TRIG]
RDF 1.2 TriG. Gregg Kellogg; Dominik Tomaszuk. W3C. 2026년 5월 28일. W3C Working Draft. URL: https://www.w3.org/TR/rdf12-trig/
[RDF12-XML]
RDF 1.2 XML Syntax. Gregg Kellogg; Jerven Bolleman. W3C. 2026년 4월 9일. W3C Working Draft. URL: https://www.w3.org/TR/rdf12-xml/
[RFC3023]
XML Media Types. M. Murata; S. St. Laurent; D. Kohn. IETF. 2001년 1월. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc3023
[RFC4288]
Media Type Specifications and Registration Procedures. N. Freed; J. Klensin. IETF. 2005년 12월. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc4288
[RFC7231]
Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. R. Fielding, Ed.; J. Reschke, Ed. IETF. 2014년 6월. Proposed Standard. URL: https://httpwg.org/specs/rfc7231.html
[SPARQL12-CONCEPTS]
SPARQL 1.2 Concepts. The W3C RDF & SPARQL Working Group. W3C. W3C Editor's Draft. URL: https://w3c.github.io/sparql-concepts/spec/
[SPARQL12-ENTAILMENT]
SPARQL 1.2 Entailment Regimes. Peter Patel-Schneider. W3C. 2026년 4월 9일. W3C Working Draft. URL: https://www.w3.org/TR/sparql12-entailment/
[SPARQL12-FEDERATED-QUERY]
SPARQL 1.2 Federated Query. Ruben Taelman; Gregory Williams. W3C. 2026년 4월 23일. W3C Working Draft. URL: https://www.w3.org/TR/sparql12-federated-query/
[SPARQL12-GRAPH-STORE-PROTOCOL]
SPARQL 1.2 Graph Store Protocol. Andy Seaborne; Thomas Pellissier Tanon. W3C. 2024년 12월 19일. W3C Working Draft. URL: https://www.w3.org/TR/sparql12-graph-store-protocol/
[SPARQL12-NEW]
What’s New in SPARQL 1.2. The W3C RDF & SPARQL Working Group. W3C. W3C Editor's Draft. URL: https://w3c.github.io/sparql-new/spec/
[SPARQL12-PROTOCOL]
SPARQL 1.2 Protocol. Andy Seaborne; Ruben Taelman; Gregory Williams; Thomas Pellissier Tanon. W3C. 2026년 4월 26일. W3C Working Draft. URL: https://www.w3.org/TR/sparql12-protocol/
[SPARQL12-QUERY]
SPARQL 1.2 Query Language. Olaf Hartig; Andy Seaborne; Ruben Taelman; Gregory Williams; Thomas Pellissier Tanon. W3C. 2026년 5월 28일. W3C Working Draft. URL: https://www.w3.org/TR/sparql12-query/
[SPARQL12-RESULTS-CSV-TSV]
SPARQL 1.2 Query Results CSV and TSV Formats. Ruben Taelman; Gregory Williams; Thomas Pellissier Tanon. W3C. 2026년 3월 28일. W3C Working Draft. URL: https://www.w3.org/TR/sparql12-results-csv-tsv/
[SPARQL12-RESULTS-JSON]
SPARQL 1.2 Query Results JSON Format. Andy Seaborne; Ruben Taelman; Gregory Williams; Thomas Pellissier Tanon. W3C. 2026년 3월 28일. W3C Working Draft. URL: https://www.w3.org/TR/sparql12-results-json/
[SPARQL12-RESULTS-XML]
SPARQL 1.2 Query Results XML Format. Ruben Taelman; Dominik Tomaszuk; Thomas Pellissier Tanon. W3C. 2024년 12월 27일. W3C Working Draft. URL: https://www.w3.org/TR/sparql12-results-xml/
[SPARQL12-SERVICE-DESCRIPTION]
SPARQL 1.2 Service Description. Ruben Taelman; Gregory Williams. W3C. 2026년 4월 23일. W3C Working Draft. URL: https://www.w3.org/TR/sparql12-service-description/
[SPARQL12-UPDATE]
SPARQL 1.2 Update. Ruben Taelman; Andy Seaborne; Thomas Pellissier Tanon. W3C. 2026년 4월 23일. W3C Working Draft. URL: https://www.w3.org/TR/sparql12-update/
[UNICODE-SECURITY]
Unicode Security Considerations. Mark Davis; Michel Suignard. Unicode Consortium. 2014년 9월 19일. Unicode Technical Report #36. URL: https://www.unicode.org/reports/tr36/tr36-15.html