Zum Inhalt springen

JSON-LD normalisieren — Numio

Kanonisiert JSON-LD mit jsonld.normalize und dessen Standardalgorithmus URDNA2015 zu sortierten N-Quads. Blank Nodes erhalten deterministische Labels (_:c14n0, _:c14n1), sodass gleiche Graphen identischen Text ergeben.

Die kanonische Form erzeugen, die für Verifiable Credentials und Linked Data Proofs gehasht oder signiert wird.

JSON-LD

Normalized

Wann sie hilft

  • Die kanonische Form erzeugen, die für Verifiable Credentials und Linked Data Proofs gehasht oder signiert wird.
  • Prüfen, ob zwei JSON-LD-Dokumente mit unterschiedlichem Aufbau oder Context denselben Graphen beschreiben.

Anwendung

  1. Füge das JSON-LD-Dokument in den Editor JSON-LD ein.
  2. Lies die kanonischen N-Quads: ein Tripel pro Zeile, sortiert, mit zu _:c14nN umbenannten Blank Nodes.
  3. Vergleiche oder hashe den Ausgabetext, um Graphen zu vergleichen.

JSON-LD

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

Kanonische 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 und Einschränkungen

Die Seite ruft normalize ohne Optionen auf, daher verwendet jsonld.js URDNA2015 und N-Quads-Ausgabe.

Blank-Node-Labels hängen vom Inhalt des Graphen ab, nicht von der Reihenfolge der Schlüssel in deinem JSON.

Läuft im Browser; entfernte @context-URLs werden von deinem Browser abgerufen. Schlägt der Download fehl, zeigt die Seite einen Fehler mit der Context-URL.

FAQ

Worin unterscheidet sich das von der Seite JSON-LD to N-Quads?

Beide geben N-Quads aus. Diese Seite benennt Blank Nodes kanonisch um (_:c14n0) und sortiert die Zeilen; die N-Quads-Seite behält vom Prozessor vergebene Labels wie _:b0.

Welcher Kanonisierungsalgorithmus wird verwendet?

URDNA2015, der Standard in jsonld.js, der vom W3C als RDF Dataset Canonicalization (RDFC-1.0) standardisiert wurde.

Warum fehlt eine Eigenschaft in der Ausgabe?

Schlüssel, die nicht im @context definiert sind, werden nicht zu IRIs expandiert und vor der Umwandlung in Quads verworfen.

Spezifikationen und Referenzen