Saltar al contenido

Normalizar datos JSON-LD — Numio

Canonicaliza JSON-LD en N-Quads ordenados con jsonld.normalize y su algoritmo por defecto URDNA2015. Los blank nodes reciben etiquetas deterministas (_:c14n0, _:c14n1), así que grafos iguales producen texto idéntico.

Generar la forma canónica que se hashea o firma para Verifiable Credentials y Linked Data Proofs.

JSON-LD

Normalized

Cuándo usarla

  • Generar la forma canónica que se hashea o firma para Verifiable Credentials y Linked Data Proofs.
  • Comprobar si dos documentos JSON-LD con estructuras o contextos distintos describen el mismo grafo.

Cómo usarla

  1. Pega el documento JSON-LD en el editor JSON-LD.
  2. Revisa los N-Quads canónicos: una tripleta por línea, ordenadas, con los blank nodes renombrados a _:c14nN.
  3. Compara con diff o calcula el hash del texto de salida 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> .

Detalles y limitaciones

La página llama a normalize sin opciones, así que jsonld.js usa URDNA2015 y salida N-Quads.

Las etiquetas de los blank nodes dependen del contenido del grafo, no del orden de las claves en tu JSON.

Se ejecuta en tu navegador; las URL de @context remotas las descarga tu navegador. Si la descarga falla, la página muestra un error con la URL del contexto.

FAQ

¿En qué se diferencia de la página JSON-LD to N-Quads?

Ambas generan N-Quads. Esta página reetiqueta los blank nodes de forma canónica (_:c14n0) y ordena las líneas; la página de N-Quads conserva las etiquetas asignadas por el procesador, como _:b0.

¿Qué algoritmo de canonicalización se usa?

URDNA2015, el predeterminado en jsonld.js, que el W3C estandarizó como RDF Dataset Canonicalization (RDFC-1.0).

¿Por qué falta una propiedad en la salida?

Las claves no definidas en el @context no se expanden a IRI y se descartan antes de la conversión a quads.

Especificaciones y referencias