Перейти к содержимому

Преобразование JSON-LD в компактную форму — Numio

Сжимает (compaction) документ JSON-LD по заданному вами контексту с помощью jsonld.compact. Полные IRI превращаются в ваши термины или имена вида prefix:suffix, а массивы из одного элемента сворачиваются в простые значения.

Превратить громоздкий развёрнутый JSON-LD из RDF-инструмента в короткие читаемые ключи, заданные вашим контекстом.

JSON-LD

Context

Compacted

Когда пригодится

  • Превратить громоздкий развёрнутый JSON-LD из RDF-инструмента в короткие читаемые ключи, заданные вашим контекстом.
  • Проверить перед публикацией, что контекст сопоставляет ожидаемые IRI.

Как пользоваться

  1. Вставьте документ (развёрнутый или с любым контекстом) в редактор JSON-LD.
  2. Поместите целевой контекст в редактор Context в виде объекта с ключом @context.
  3. Изучите результат: контекст помещается в начало, а свойства используют его термины.

JSON-LD + контекст

// 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"
}

Подробности и ограничения

Свойства без подходящего термина используют префикс, если он определён (schema:datePublished); иначе сохраняют полный IRI.

Термин с "@type": "@id" позволяет сжимать ссылки до простых строк, как author выше.

Работает в браузере с jsonld.js. Оба редактора должны содержать корректный JSON; удалённые URL контекстов загружает ваш браузер. Если загрузка не удалась, страница показывает ошибку с URL контекста.

FAQ

Почему типизированное значение осталось объектом?

Значение с @type (как дата xsd:gYear) остаётся {"@type", "@value"}, если контекст не определяет для этого свойства термин с тем же @type.

Может ли редактор Context содержать URL?

Да, в виде {"@context": "https://..."}. Его загружает браузер, поэтому сервер должен разрешать кросс-доменные запросы; встроенные контексты этого не требуют.

Меняет ли сжатие данные?

Нет. Сжатие меняет только запись IRI и значений; развёртывание результата даёт тот же граф.

Спецификации и справка