Skip to content

JSON-LD to Normalized Form — Numio

Canonicalizes JSON-LD into sorted N-Quads using jsonld.normalize with its default URDNA2015 algorithm. Blank nodes get deterministic labels (_:c14n0, _:c14n1), so equal graphs produce identical text.

Producing the canonical form that is hashed or signed for Verifiable Credentials and Linked Data Proofs.

JSON-LD

Normalized

When to use it

  • Producing the canonical form that is hashed or signed for Verifiable Credentials and Linked Data Proofs.
  • Checking whether two JSON-LD documents with different layouts or contexts describe the same graph.

How to use

  1. Paste the JSON-LD document into the JSON-LD editor.
  2. Read the canonical N-Quads: one triple per line, sorted, with blank nodes renamed to _:c14nN.
  3. Diff or hash the output text to compare graphs.

JSON-LD

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

Canonical 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> .

Details and limitations

The page calls normalize without options, so jsonld.js uses URDNA2015 and N-Quads output.

Blank node labels depend on the graph content, not on the order of keys in your JSON.

Runs in your browser; remote @context URLs are fetched by your browser. If the download fails, the page shows an error naming the context URL.

FAQ

How is this different from the JSON-LD to N-Quads page?

Both output N-Quads. This page relabels blank nodes canonically (_:c14n0) and sorts the lines; the N-Quads page keeps processor-assigned labels like _:b0.

Which canonicalization algorithm is used?

URDNA2015, the default in jsonld.js, which was standardized by the W3C as RDF Dataset Canonicalization (RDFC-1.0).

Why is a property missing from the output?

Keys not defined in the @context do not expand to IRIs and are dropped before conversion to quads.

Specifications and references