JSON-LD

format de donnée

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.

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

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

JSON-LD est designé 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).

Exemple

modifier
{
  "@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

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

Implémentations

modifier

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
  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. (en) « Method Entities in Search », sur Google Developers (consulté le )

Voir aussi

modifier

Articles connexes

modifier
  • 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