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.
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
- Füge das JSON-LD-Dokument in den Editor JSON-LD ein.
- Lies die kanonischen N-Quads: ein Tripel pro Zeile, sortiert, mit zu _:c14nN umbenannten Blank Nodes.
- 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.