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

Конвертировать JSON-LD в нормализованную форму — Numio

Канонизирует JSON-LD в отсортированные N-Quads с помощью jsonld.normalize и его алгоритма по умолчанию URDNA2015. Пустые узлы получают детерминированные метки (_:c14n0, _:c14n1), поэтому одинаковые графы дают идентичный текст.

Получить каноническую форму, которую хешируют или подписывают для Verifiable Credentials и Linked Data Proofs.

JSON-LD

Normalized

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

  • Получить каноническую форму, которую хешируют или подписывают для Verifiable Credentials и Linked Data Proofs.
  • Проверить, описывают ли два документа JSON-LD с разной структурой или контекстом один и тот же граф.

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

  1. Вставьте документ JSON-LD в редактор JSON-LD.
  2. Изучите канонические N-Quads: по одной тройке на строку, отсортированы, пустые узлы переименованы в _:c14nN.
  3. Сравните выводы через diff или хеш, чтобы сопоставить графы.

JSON-LD

{
  "@context": {"@vocab": "http://schema.org/"},
  "@type": "Person",
  "name": "Jane Doe",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Seattle"
  }
}

Канонические N-Quads

_:c14n0 <http://schema.org/addressLocality> "Seattle" .
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/PostalAddress> .
_:c14n1 <http://schema.org/address> _:c14n0 .
_:c14n1 <http://schema.org/name> "Jane Doe" .
_:c14n1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person> .

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

Страница вызывает normalize без опций, поэтому jsonld.js использует URDNA2015 и вывод в N-Quads.

Метки пустых узлов зависят от содержимого графа, а не от порядка ключей в вашем JSON.

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

FAQ

Чем это отличается от страницы JSON-LD to N-Quads?

Обе выводят N-Quads. Эта страница канонически переименовывает пустые узлы (_:c14n0) и сортирует строки; страница N-Quads сохраняет метки, назначенные процессором, например _:b0.

Какой алгоритм канонизации используется?

URDNA2015 — алгоритм по умолчанию в jsonld.js, стандартизированный W3C как RDF Dataset Canonicalization (RDFC-1.0).

Почему свойство отсутствует в выводе?

Ключи, не определённые в @context, не разворачиваются в IRI и отбрасываются до преобразования в quads.

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