JSON-LD
Το JSON-LD είναι συνηθισμένο JSON με ένα επιπλέον πεδίο, το @context, που λέει τι σημαίνουν τα υπόλοιπα πεδία. Το context αντιστοιχίζει κάθε σύντομο όνομα πεδίου σε ένα παγκοσμίως μοναδικό αναγνωριστικό, συνήθως μια διεύθυνση URL που δημοσίευσε όποιος όρισε το λεξιλόγιο, ώστε ένα σύστημα που δεν έχει ξαναδεί αυτά τα δεδομένα να μπορεί παρ' όλα αυτά να καταλάβει τι του λένε.
Το απλό JSON λέει πώς γράφονται τα δεδομένα, όχι τι σημαίνουν. Ένα πεδίο με το όνομα name μπορεί να περιέχει ένα πρόσωπο, μια εταιρεία ή ένα προϊόν, και δύο συστήματα μπορούν και τα δύο να στέλνουν έγκυρο JSON και ωστόσο να διαφωνούν για κάθε πεδίο του. Αυτό το κενό κλείνει συνήθως με γραπτή συμφωνία ανάμεσα στα δύο μέρη, κάτι που δουλεύει για μία ενοποίηση και παύει να δουλεύει μόλις ένα διαπιστευτήριο που εκδόθηκε σε μια χώρα πρέπει να διαβαστεί από έναν επαληθευτή σε μια άλλη, με τον οποίο κανείς δεν μίλησε εκ των προτέρων.
Το JSON-LD το κλείνει μέσα στο ίδιο το έγγραφο. Το @context αντιστοιχίζει κάθε σύντομο όνομα πεδίου σε ένα παγκοσμίως μοναδικό αναγνωριστικό, ώστε το πεδίο να παραμένει ευανάγνωστο για τον άνθρωπο και να γίνεται σαφές για τη μηχανή. Καμία από τις τιμές δεν αλλάζει, και ένας παραλήπτης που δεν αναγνωρίζει το λεξιλόγιο μπορεί ακόμη να διαβάσει το έγγραφο ως συνηθισμένο JSON και να αγνοήσει τα υπόλοιπα. Το JSON-LD 1.0 έγινε W3C Recommendation στις 16 Ιανουαρίου 2014, και η έκδοση 1.1 ακολούθησε στις 16 Ιουλίου 2020.
Πάνω σε αυτό είναι χτισμένο το W3C Verifiable Credentials Data Model 2.0. Κάθε διαπιστευτήριο ανοίγει με ένα @context του οποίου η πρώτη τιμή είναι το κοινό λεξιλόγιο διαπιστευτηρίων, ώστε ο εκδότης, το υποκείμενο, οι ημερομηνίες ισχύος και οι πληροφορίες κατάστασης να σημαίνουν παντού το ίδιο, ενώ κάθε περαιτέρω λεξιλόγιο δίνει τα πεδία που χρειάζεται ένας συγκεκριμένος τύπος διαπιστευτηρίου.
Η υπογραφή ενός εγγράφου συνδεδεμένων δεδομένων είναι επιλογή ανάμεσα σε δύο μηχανισμούς. Μια περιβάλλουσα απόδειξη όπως ένα JWT υπογράφει τα bytes ακριβώς όπως είναι, οπότε οτιδήποτε τα αναδιατάσσει ή τα ξαναμορφοποιεί στον δρόμο σπάει την υπογραφή. Μια ενσωματωμένη απόδειξη Data Integrity υπογράφει αντ' αυτού μια κανονική μορφή, που ορίζεται από το RDF Dataset Canonicalization, και αυτό είναι που επιτρέπει στην υπογραφή να επιβιώσει όταν το έγγραφο ξαναγραφτεί αλλού.
Δεν είναι καμία από τις μορφές διαπιστευτηρίων του EUDI Wallet. Το Architecture and Reference Framework ορίζει το SD-JWT VC και το mdoc, και κανένα από τα δύο δεν χρησιμοποιεί JSON-LD, οπότε ένας οργανισμός που εκδίδει προς το ευρωπαϊκό πορτοφόλι δεν θα συναντήσει ποτέ ένα @context. Το JSON-LD κερδίζει τη θέση του εκεί όπου τα δεδομένα πρέπει να ταξιδέψουν πέρα από το οικοσύστημα που τα όρισε: υλοποιήσεις διαπιστευτηρίων W3C, διαβατήρια προϊόντων και δεδομένα εφοδιαστικής αλυσίδας.
Η ίδια μορφή είναι επίσης ο τρόπος με τον οποίο ένας ιστότοπος λέει σε μια μηχανή αναζήτησης για τι πράγμα είναι μια σελίδα, με το @context να δείχνει στο schema.org αντί για ένα λεξιλόγιο διαπιστευτηρίων. Οι κανόνες επεξεργασίας είναι ίδιοι και στις δύο περιπτώσεις, πράγμα που κάνει τα δομημένα δεδομένα το ευκολότερο σημείο για να δει κανείς τι προσφέρει στην πραγματικότητα ένα context.
Διαβάστε την πλήρη εξήγηση
Αυτή η σελίδα δίνει τον σύντομο ορισμό. Η εξήγησή μας δείχνει τι σημαίνει στην πράξη: ποιοι συμμετέχουν, πώς λειτουργεί και τι αλλάζει για τον οργανισμό σας.
Το JSON-LD εξηγείταιΕίναι το JSON-LD μία από τις μορφές διαπιστευτηρίων του EUDI Wallet;
Όχι. Το Architecture and Reference Framework ορίζει το SD-JWT VC και το mdoc, και κανένα από τα δύο δεν είναι μορφή JSON-LD, οπότε ένα πορτοφόλι ή ένας επαληθευτής χτισμένος για τους ευρωπαϊκούς κανόνες δεν χρειάζεται καθόλου επεξεργαστή JSON-LD.
Αυτό είναι απόφαση εμβέλειας, όχι ετυμηγορία για τη μορφή. Και οι δύο μορφές που ορίζει το πλαίσιο έχουν σταθερό σχήμα, έναν μόνο μηχανισμό υπογραφής και κανένα έγγραφο που να πρέπει να ανακτήσει ένας επαληθευτής προτού ελέγξει οτιδήποτε, και αυτό ακριβώς ανταμείβουν ένα τηλέφωνο και ένας χρόνος απόκρισης μετρημένος σε χιλιοστά του δευτερολέπτου. Το JSON-LD απαντά σε άλλο ερώτημα, στο πώς δηλαδή τα δεδομένα διατηρούν το νόημά τους έξω από το οικοσύστημα που τα όρισε, και οι οργανισμοί που δουλεύουν και στους δύο κόσμους συνήθως καταλήγουν να υποστηρίζουν και τα δύο.
Ποια είναι η διαφορά ανάμεσα στο JSON-LD και στο απλό JSON;
Καμία στον τρόπο που γράφεται το έγγραφο: κάθε έγγραφο JSON-LD είναι έγκυρο JSON, και λογισμικό που χρειάζεται μόνο ένα πεδίο από αυτό μπορεί να το αντιμετωπίσει έτσι. Η διαφορά είναι το @context, που αντιστοιχίζει κάθε όνομα πεδίου σε ένα παγκοσμίως ορισμένο αναγνωριστικό, ώστε η σημασία των δεδομένων να ταξιδεύει μαζί με το έγγραφο αντί να ζει σε μια προδιαγραφή που τα δύο μέρη έπρεπε να συμφωνήσουν εκ των προτέρων.
Ο επιπλέον μηχανισμός μετράει μόνο όταν ένα έγγραφο επεκτείνεται στην πλήρη μορφή του ή κανονικοποιείται για υπογραφή, βήματα που ένας επαληθευτής που διαβάζει μία μόνο δήλωση δεν εκτελεί ποτέ. Το πραγματικό κόστος βρίσκεται αλλού: το context πρέπει να είναι διαθέσιμο, και ένας επαληθευτής που το ανακτά την ώρα που επαληθεύει έχει βάλει μια κλήση δικτύου και έναν απομακρυσμένο διακομιστή μέσα σε μια απόφαση ασφαλείας. Οι υλοποιήσεις καθηλώνουν τα context που αποδέχονται και τα παραδίδουν μαζί με το λογισμικό.