JSON-LD
1. 개요
JSON-LD는 JSON을 RDF 모델로 매핑하기 위한 JSON 기반의 형식이다. "컨텍스트" 개념을 사용하여 JSON 문서의 객체 속성을 온톨로지의 개념에 연결하며, 데이터의 유형 지정 및 언어 태그를 지원한다. JSON-LD는 리소스의 고유 식별자를 지정하기 위해 `@id` 키워드를 사용하고, Schema.org, 구글 지식 그래프 등에서 검색 엔진 최적화에 활용되며, 의료 정보학, 출처 정보 표현, 액티비티 스트림 및 액티비티펍과 같은 소셜 네트워킹, 사물 인터넷(IoT) 환경 등 다양한 분야에서 사용된다.
| 영어 | JSON-LD |
|---|
| 설명 | JSON 기반의 링크드 데이터 직렬화 포맷 |
|---|---|
| 파일 확장자 | .jsonld |
| 마임 유형 | application/ld+json |
| 장르 | 시맨틱 웹 |
| 컨테이너 | 링크드 데이터 |
| 기반 | JSON |
| 표준 | JSON-LD 1.1 JSON-LD 1.1 API |
| 공개 여부 | 예 |
| 제목 | JSON-LD 1.1 |
|---|---|
| 상태 | W3C 권고 |
| 시작 연도 | 2010년 |
| 편집자 | Gregg Kellogg Pierre-Antoine Champin Dave Longley |
| 이전 편집자 | Manu Sporny Markus Lanthaler |
| 작성자 | Manu Sporny, Dave Longley, Gregg Kellogg, Markus Lanthaler, Niklas Lindström |
| 기반 표준 | BCP 47 JavaScript Object Notation RDF URI scheme Internationalized Resource Identifier 유니코드 양방향 알고리즘 |
| 약칭 | JSON-LD |
| 도메인 | 시맨틱 웹, 데이터 직렬화 |
| 웹사이트 | json-ld.org JSON-LD 1.1 JSON-LD 1.1 Processing Algorithms and API JSON-LD 1.1 Framing |
-
자원 기술 프레임워크 -
웹 온톨로지 언어
웹 온톨로지 언어(OWL)는 시맨틱 웹 구축을 위한 지식 표현 언어로, W3C 웹 표준이며, 온톨로지 명시적 표현을 통해 데이터 공유 및 재사용을 가능하게 하고, 기술 논리에 기반하여 표현력 수준에 따라 다양한 종류를 제공한다. -
자원 기술 프레임워크 -
데이터 카탈로그 어휘
-
JSON -
JSON 웹 토큰
JSON 웹 토큰(JWT)은 헤더, 페이로드, 서명으로 구성되어 정보를 안전하게 전송하는 개방형 표준으로, 사용자 인증 및 권한 부여에 주로 사용되지만 알고리즘 관련 취약점, 키 관리, 토큰 무효화 등의 문제점도 존재한다. -
JSON -
BSON
BSON은 JSON과 유사한 이진 데이터 직렬화 형식으로, JSON보다 효율적인 저장 공간 활용과 빠른 검색 속도를 제공하며 다양한 데이터 유형을 지원하여 MongoDB의 주요 데이터 저장 및 전송 형식으로 사용된다. -
데이터 직렬화 포맷 -
XML
XML은 태그 중첩 방식 구문을 사용하는 범용 언어로서, 인터넷을 통한 구조화된 문서 및 데이터 공유를 용이하게 하고, 웰 폼 및 유효 XML 문서 개념을 통해 구문 정확성을 검사하며, 데이터 교환 등 다양한 분야에서 널리 사용된다. -
데이터 직렬화 포맷 -
S-표현식
S-표현식은 Lisp 구문에서 소스 코드와 데이터를 표현하는 기본 구조로, 원자와 `(x . y)` 형태의 표현식으로 정의되며, 이진 트리 표현, 다양한 데이터 형식 지원, 그리고 여러 분야에서 활용된다.
2. 디자인
JSON-LD는 "컨텍스트" 개념을 중심으로 설계되었으며, 이를 통해 JSON 문서의 객체 속성을 온톨로지의 개념에 연결하여 JSON 데이터를 RDF 모델로 매핑한다.
2.1. 컨텍스트
JSON-LD는 JSON을 RDF 모델로 매핑하기 위해 "컨텍스트" 개념을 사용한다. 컨텍스트는 JSON 문서 내 객체 속성을 온톨로지의 개념에 연결한다. JSON-LD 구문을 RDF에 매핑하기 위해 JSON-LD는 값을 특정 유형으로 변환하거나 언어 태그를 지정할 수 있도록 한다. 컨텍스트는 JSON-LD 문서에 직접 포함하거나, 별도 파일에 넣어 다른 문서(일반 JSON 문서에서 HTTP Link 헤더를 통해)에서 참조할 수 있다.
2.2. 데이터 유형
JSON-LD는 리소스 유형을 지정하기 위해 `@type` 키워드를 사용할 수 있다. 이를 통해 데이터의 의미를 명확하게 하고 RDF 모델과의 호환성을 높인다. JSON-LD는 값을 지정된 유형이나 태그가 지정된 언어로 강제할 수 있다.
2.3. 언어 태그
JSON-LD는 `@language` 키워드를 사용하여 문자열 값의 언어를 지정할 수 있다. 이는 다국어 데이터를 처리할 때 유용하며, 정보 검색 및 처리에 정확성을 높여준다.
3. 예시
다음은 FOAF (친구의 친구) 온톨로지를 기반으로 한 사람에 대해 설명하는 JSON-LD 예시다.
{
"@context": {
"name": "http://xmlns.com/foaf/0.1/name",
"homepage": {
"@id": "http://xmlns.com/foaf/0.1/workplaceHomepage",
"@type": "@id"
},
"Person": "http://xmlns.com/foaf/0.1/Person"
},
"@id": "https://me.example.com",
"@type": "Person",
"name": "John Smith",
"homepage": "https://www.example.com/"
}
위 예시에서 `name`, `homepage`, `Person` 유형은 FOAF 어휘집의 개념에 매핑된다. `homepage` 속성의 값은 `@id` 유형으로 지정되어, 홈페이지 ID가 컨텍스트 정의에서 IRI임을 나타낸다.
RDF 모델을 기반으로, 이는 문서에 설명된 사람이 IRI에 의해 명확하게 식별될 수 있도록 한다. 해결 가능한 IRI를 사용하면 더 많은 정보를 포함하는 RDF 문서를 전사하는 것이 가능하며, 클라이언트는 해당 링크를 따라가기만 하면 새로운 데이터를 발견할 수 있다. 이러한 원리는 '코를 따라가세요(Follow Your Nose)'라고 알려져 있다.
위 예시와 같이 모든 데이터가 의미적으로 주석 처리되어 있으면, RDF 프로세서는 문서에 사람(`@type`)에 대한 정보가 포함되어 있음을 식별할 수 있다. 또한, 프로세서가 FOAF 어휘집을 이해하면 어떤 속성이 사람의 이름과 홈페이지를 지정하는지 결정할 수 있다.
4. 활용
JSON-LD는 데이터 상호 운용성과 의미적 연결이 중요한 분야에서 널리 사용되며, 검색 엔진 최적화, 의료 정보학, 출처 정보 표현, 소셜 네트워킹, 사물 인터넷 등 다양한 분야에서 활용된다.
4.2. 의료 정보학
Schema.org, 구글 지식 그래프에서 이 인코딩을 사용하며, 주로 검색 엔진 최적화 활동에 활용된다. 또한 의료 정보학 및 출처 정보를 표현하는 데에도 사용된다.
4.3. 출처 정보 표현
Schema.org, 구글 지식 그래프,에서 이 인코딩을 사용하며, 주로 검색 엔진 최적화 활동에 활용된다. 또한 의료 정보학, 및 출처 정보를 표현하는 데에도 사용된다.
4.4. 소셜 네트워킹
JSON-LD는 "잠재적이고 완료된 활동에 대한 정보 교환"을 위한 형식인 액티비티 스트림의 기반 기술로 사용되며, 분산형 소셜 네트워킹 프로토콜인 액티비티펍에서도 활용된다.
5. 한국어 정보자원과의 연계
JSON-LD를 통해 한국어 위키백과를 포함한 다양한 한국어 정보 자원을 연계하면 데이터의 활용 가치를 더욱 높일 수 있다. 예를 들어, 한국어 위키백과의 인물, 기관, 사건 등의 정보를 JSON-LD로 표현하고, 이를 다른 데이터베이스나 지식 그래프와 연결하면 보다 풍부한 정보를 제공하고 새로운 지식을 발견할 수 있다.