Aller au contenu

Normaliser des données JSON-LD — Numio

Canonicalise du JSON-LD en N-Quads triés avec jsonld.normalize et son algorithme par défaut URDNA2015. Les blank nodes reçoivent des libellés déterministes (_:c14n0, _:c14n1), de sorte que des graphes égaux produisent un texte identique.

Produire la forme canonique qui est hachée ou signée pour les Verifiable Credentials et les Linked Data Proofs.

JSON-LD

Normalized

Quand l’utiliser

  • Produire la forme canonique qui est hachée ou signée pour les Verifiable Credentials et les Linked Data Proofs.
  • Vérifier si deux documents JSON-LD de structures ou de contextes différents décrivent le même graphe.

Mode d’emploi

  1. Collez le document JSON-LD dans l'éditeur JSON-LD.
  2. Examinez les N-Quads canoniques : un triplet par ligne, triés, avec les blank nodes renommés en _:c14nN.
  3. Faites un diff ou calculez le hash du texte de sortie pour comparer des graphes.

JSON-LD

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

N-Quads canoniques

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

Détails et limites

La page appelle normalize sans options, donc jsonld.js utilise URDNA2015 et une sortie N-Quads.

Les libellés des blank nodes dépendent du contenu du graphe, pas de l'ordre des clés dans votre JSON.

S'exécute dans votre navigateur ; les URL de @context distantes sont téléchargées par votre navigateur. En cas d'échec du téléchargement, la page affiche une erreur indiquant l'URL du contexte.

FAQ

Quelle différence avec la page JSON-LD to N-Quads ?

Les deux produisent des N-Quads. Cette page renomme les blank nodes de manière canonique (_:c14n0) et trie les lignes ; la page N-Quads conserve les libellés attribués par le processeur, comme _:b0.

Quel algorithme de canonicalisation est utilisé ?

URDNA2015, l'algorithme par défaut de jsonld.js, normalisé par le W3C sous le nom RDF Dataset Canonicalization (RDFC-1.0).

Pourquoi une propriété manque-t-elle dans la sortie ?

Les clés non définies dans le @context ne se développent pas en IRI et sont supprimées avant la conversion en quads.

Spécifications et références