Pular para o conteúdo

Normalizar dados JSON-LD — Numio

Canonicaliza JSON-LD em N-Quads ordenados usando jsonld.normalize com o algoritmo padrão URDNA2015. Blank nodes recebem rótulos determinísticos (_:c14n0, _:c14n1), então grafos iguais produzem texto idêntico.

Gerar a forma canônica que é usada em hash ou assinada em Verifiable Credentials e Linked Data Proofs.

JSON-LD

Normalized

Quando usar

  • Gerar a forma canônica que é usada em hash ou assinada em Verifiable Credentials e Linked Data Proofs.
  • Verificar se dois documentos JSON-LD com estruturas ou contextos diferentes descrevem o mesmo grafo.

Como usar

  1. Cole o documento JSON-LD no editor JSON-LD.
  2. Confira os N-Quads canônicos: uma tripla por linha, ordenadas, com os blank nodes renomeados para _:c14nN.
  3. Faça diff ou calcule o hash do texto de saída para comparar grafos.

JSON-LD

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

N-Quads canônicos

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

Detalhes e limitações

A página chama normalize sem opções, então o jsonld.js usa URDNA2015 e saída N-Quads.

Os rótulos dos blank nodes dependem do conteúdo do grafo, não da ordem das chaves no seu JSON.

Roda no seu navegador; URLs de @context remotas são baixadas pelo seu navegador. Se o download falhar, a página mostra um erro com a URL do contexto.

FAQ

Qual a diferença para a página JSON-LD to N-Quads?

Ambas geram N-Quads. Esta página renomeia os blank nodes de forma canônica (_:c14n0) e ordena as linhas; a página de N-Quads mantém os rótulos atribuídos pelo processador, como _:b0.

Qual algoritmo de canonicalização é usado?

URDNA2015, o padrão do jsonld.js, que foi padronizado pelo W3C como RDF Dataset Canonicalization (RDFC-1.0).

Por que uma propriedade está faltando na saída?

Chaves não definidas no @context não se expandem para IRIs e são descartadas antes da conversão para quads.

Especificações e referências