close
Aller au contenu

JSON-LD

Un article de Wikipédia, l'encyclopédie libre.

JSON-LD
JavaScript Object Notation for Linked Data
Caractéristiques
Extension
.jsonld
Type MIME
application/ld+json
PUID
Développé par
Manu Sporny
Version initiale
Type de format
Basé sur
Norme
Site web

JSON-LD, ou JavaScript Object Notation for Linked Data, est une méthode permettant d'encoder des données structurées (en anglais linked data) en utilisant du JSON. Le but est de fournir un moyen simple aux développeurs de transformer des données existantes en JSON vers du JSON-LD[1]. Cela permet de sérialiser des données de la même manière qu'avec du JSON traditionnel[2]. JSON-LD est une recommandation du World Wide Web Consortium et, par conséquent, est considéré comme un standard[3]. JSON-LD est développé par le JSON for Linking Data Community Group.

Créé par Manu Sporny fin 2008[4], il est depuis le un standard du W3C[5].

JSON-LD ( JavaScript Object Notation for Linked Data ) est une méthode d'encodage de données liées utilisant JSON[6]. L'un des objectifs affichés était de rendre les données liées accessibles aux développeurs web ordinaires, qui peuvent les créer en modifiant des documents JSON ordinaires sans avoir besoin des outils spécialisés associés aux sérialisations RDF antérieures[7],[8]. JSON-LD est une recommandation du World Wide Web Consortium initialement développée par le JSON for Linking Data Community Group[9], transférée au RDF Working Group [10] pour examen, amélioration et normalisation[11], et maintenant maintenue par le JSON-LD Working Group[12].

JSON-LD est pensé autour du concept de « contexte » afin de fournir des associations depuis du JSON vers un modèle RDF. Ce contexte permet de lier des propriétés d'objets d'un document JSON vers des concepts dans une ontologie. Afin de faire le lien entre la syntaxe JSON-LD vers RDF, JSON-LD permet de convertir des valeurs en un type spécifié ou d'être étiqueté avec une langue. Un contexte peut être directement intégré dans un document JSON-LD ou placé dans un fichier séparé et référencé à partir de différents documents (à partir de documents JSON traditionnels via un lien d'en-tête HTTP).

{
  "@context": {
    "name": "http://xmlns.com/foaf/0.1/name",
    "homepage": {
      "@id": "http://xmlns.com/foaf/0.1/workplaceHomepage",
      "@type": "@id"
    },
    "Person": "http://xmlns.com/foaf/0.1/Person"
  },
  "@id": "http://me.example.com",
  "@type": "Person",
  "name": "John Smith",
  "homepage": "http://www.example.com/"
}

L'exemple ci-dessus décrit une personne basée sur l'ontologie RDF FOAF. Premièrement, les deux propriétés JSON name et homepage et le type Person sont mappés aux concepts du vocabulaire FOAF. Dans ce context, la valeur de la propriété homepage est spécifiée comme étant de type @id, c'est-à-dire qu'elle est spécifiée comme IRI dans la définition du contexte. Basé sur le modèle RDF, cela permet à la personne décrite dans le document d'être identifiée sans ambiguïté par un IRI. L'utilisation d'IRI résolvables permet aux documents RDF contenant plus d'informations d'être transcludés, ce qui permet aux clients de découvrir de nouvelles données simplement en suivant ces liens.

En ayant annoté sémantiquement toutes les données comme dans l'exemple, un parseur RDF peut identifier que le document contient des informations sur une personne (@type) et si le parseur comprend le vocabulaire FOAF, il peut déterminer quelles propriétés spécifient le nom de la personne et page d'accueil.

Cas d'utilisation

[modifier | modifier le code]

JSON-LD est utilisé par Google pour son Knowledge Graph[13].

Implémentations

[modifier | modifier le code]

Des bibliothèques pour JSON-LD existent pour ces langages de programmation: Javascript (jsonld.js), Python (PyLD, RDFLib-jsonld), PHP (php-json-ld, JsonLD), Ruby (JSON-LD for RDF.rb), Java (JSONLD-JAVA), C# (json-ld.net), Go (JSON-goLD).

Notes et références

[modifier | modifier le code]
  1. « JSON-LD Syntax 1.0 », (consulté le ).
  2. « On Using JSON-LD to Create Evolvable RESTful Services », M. Lanthaler and C. Gütl in Proceedings of the 3rd International Workshop on RESTful Design (WS-REST 2012) at WWW2012.
  3. « What does "Web standard" mean? What is a "Recommendation"? ».
  4. « The Origins of JSON-LD », .
  5. « A JSON-based Serialization for Linked Data », .
  6. « On Using JSON-LD to Create Evolvable RESTful Services »"On Using JSON-LD to Create Evolvable RESTful Services"., M. Lanthaler and C. Gütl in Proceedings of the 3rd International Workshop on RESTful Design (WS-REST 2012) at WWW2012.
  7. « JSON-LD Syntax 1.1 », (consulté le )"JSON-LD Syntax 1.1". 2010-07-16. Retrieved 2020-12-10.
  8. Sporny, « JSON-LD and Why I Hate the Semantic Web », The Beautiful, Tormented Machine, Sporny, Manu (2014-01-22). "JSON-LD and Why I Hate the Semantic Web". The Beautiful, Tormented Machine.
  9. « JSON for Linking Data Community Group », json-ld.org
  10. « RDF Working Group », w3.org
  11. « JSON-LD 1.0, A JSON-based Serialization for Linked Data, W3C Recommendation 16 January 2014 », (consulté le )
  12. « JSON-LD Working Group », w3.org
  13. (en) « Method Entities in Search », sur Google Developers (consulté le ).

Utilisation

[modifier | modifier le code]

L'encodage est utilisé par Schema.org, [1] Google Knowledge Graph[2],[3],[4], et est principalement utilisé pour les activités d'optimisation des moteurs de recherche. Google recommande JSON-LD pour le balisage de données structurées lorsque la configuration d'un site le permet, le décrivant comme le format le plus facile à mettre en œuvre et à maintenir à grande échelle[5], et des enquêtes sur les données d'exploration du Web ont révélé qu'il s'agit du format de données structurées le plus largement adopté, devant Microdata et RDFa[6].

Il a également été utilisé pour des applications telles que l'informatique biomédicale[7], et la représentation d'informations de provenance[8]. Une sérialisation JSON-LD du modèle de données PROV, PROV-JSONLD, permet d'échanger des données de provenance au format JSON tout en préservant la sémantique RDF[9].

Articles connexes

[modifier | modifier le code]
  • JSON : un format de données textuelles dérivé de la notation des objets du langage JavaScript ;
  • BSON (Binary JSON) : un format étendant les possibilités du JSON (données temporelles, binaires, etc.), notamment utilisé par MongoDB ;
  • TopoJSON : un format de stockage des données topologiques ;
  • GeoJSON : un format de stockage des données géographiques ;
  • YAML : un autre langage de sérialisation de données.

Liens externes

[modifier | modifier le code]
  1. « Data Model », Schema.org (consulté le )
  2. « Understanding structured data », Bendev Junior,
  3. « Method Entities in Search », Google Developers (consulté le )
  4. « Structured data and JSON-LD requirements for Google Knowledge Panels », Lindy Panels, (consulté le )
  5. « Intro to How Structured Data Markup Works », Google Search Central, Google,
  6. Brinkmann, « Microdata, RDFa, JSON-LD, and Microformat Data Sets », Web Data Commons, University of Mannheim,
  7. Xin, Afrasiabi, Lelong et Adesara, « Cross-linking BioThings APIs through JSON-LD to facilitate knowledge exploration », BMC Bioinformatics, vol. 19, no 1, , p. 30 (PMID 29390967, PMCID 5796402, DOI 10.1186/s12859-018-2041-5)
  8. Trung Dong Huynh et Danius T. Michaelides « Provenance and annotation of data and processes: 6th International Provenance and Annotation Workshop, IPAW 2016, McLean, VA, USA, June 7-8, 2016, Proceedings » () (DOI 10.1007/978-3-319-40593-3_15, S2CID 44036472)
  9. Luc Moreau, Provenance and Annotation of Data and Processes, coll. « Lecture Notes in Computer Science », (DOI 10.1007/978-3-030-80960-7_4), « The PROV-JSONLD Serialization: A JSON-LD Representation for the PROV Data Model »