본문으로 건너뛰기

JSON-LD를 축약 형식으로 변환 — Numio

jsonld.compact를 사용해 지정한 context에 맞춰 JSON-LD 문서를 압축합니다. 전체 IRI는 직접 정의한 term이나 prefix:suffix 형태의 이름이 되고, 항목이 하나인 배열은 일반 값으로 축약됩니다.

RDF 도구가 출력한 장황한 확장형 JSON-LD를 자신의 context에서 정의한 짧고 읽기 쉬운 키로 바꿉니다.

JSON-LD

Context

Compacted

이럴 때 사용하세요

  • RDF 도구가 출력한 장황한 확장형 JSON-LD를 자신의 context에서 정의한 짧고 읽기 쉬운 키로 바꿉니다.
  • context를 공개하기 전에 IRI가 예상대로 매핑되는지 확인합니다.

사용 방법

  1. 문서(확장형이거나 임의의 context를 사용한 것)를 JSON-LD 편집기에 붙여 넣습니다.
  2. Context 편집기에 대상 context를 @context 키가 있는 객체로 넣습니다.
  3. 결과를 확인합니다. context가 맨 위에 놓이고 프로퍼티는 그 term을 사용합니다.

JSON-LD + context

// JSON-LD editor
{
  "@id": "http://example.org/book/1",
  "@type": "http://schema.org/Book",
  "http://schema.org/name": "Dune",
  "http://schema.org/author": {"@id": "http://example.org/frank-herbert"},
  "http://schema.org/datePublished": {"@value": "1965", "@type": "http://www.w3.org/2001/XMLSchema#gYear"}
}

// Context editor
{"@context": {"schema": "http://schema.org/", "title": "schema:name",
  "author": {"@id": "schema:author", "@type": "@id"}}}

압축된 JSON-LD

{
  "@context": {
    "schema": "http://schema.org/",
    "title": "schema:name",
    "author": {
      "@id": "schema:author",
      "@type": "@id"
    }
  },
  "@id": "http://example.org/book/1",
  "@type": "schema:Book",
  "author": "http://example.org/frank-herbert",
  "schema:datePublished": {
    "@type": "http://www.w3.org/2001/XMLSchema#gYear",
    "@value": "1965"
  },
  "title": "Dune"
}

세부 정보 및 제한 사항

일치하는 term이 없는 프로퍼티는 prefix가 정의되어 있으면 prefix를 사용하고(schema:datePublished), 그렇지 않으면 전체 IRI를 유지합니다.

"@type": "@id"가 있는 term을 쓰면 위의 author처럼 참조를 일반 문자열로 압축할 수 있습니다.

jsonld.js로 브라우저에서 실행됩니다. 두 편집기 모두 유효한 JSON이어야 하며, 원격 context URL은 브라우저가 가져옵니다. 다운로드에 실패하면 해당 context URL이 포함된 오류가 표시됩니다.

FAQ

타입이 지정된 값이 여전히 객체인 이유는 무엇인가요?

@type이 있는 값(xsd:gYear 날짜 등)은 context가 해당 프로퍼티에 같은 @type을 가진 term을 정의하지 않는 한 {"@type", "@value"} 형태로 남습니다.

Context 편집기에 URL을 넣을 수 있나요?

네, {"@context": "https://..."} 형태로 넣습니다. 브라우저가 다운로드하므로 서버가 cross-origin 요청을 허용해야 합니다. 인라인 context를 쓰면 이 문제를 피할 수 있습니다.

압축하면 데이터가 바뀌나요?

아니요. 압축은 IRI와 값의 표기 방식만 바꾸며, 결과를 확장하면 같은 그래프가 됩니다.

사양 및 참고 자료