De RDF à l’annotation sémantique de l’HTML : RDFa, les microdonnées et JSON-LD

Définis en tant que standard par le W3C, RDF, RDFa, les microdonnées et JSON-LD répondent à la même logique mais présentent des fonctions distinctes. RDF est spécifié en 1994. Il s’agit d’un langage balisé dérivé d’XML créé initialement comme modèle dans des applications de gestion des connaissances. Plusieurs initiatives menées ultérieurement visent à insérer le contenu sémantique directement dans les pages HTML plutôt que dans un fichier externe. Alors que des métadonnées peuvent être insérée dans les balises <meta> de l’en-tête HTML, RDFa (2008) et les microdonnées (2011) implémentent une logique descriptive dans les valeurs et attributs des balises HTML au plus proche du code. Créé en 2008, JSON-LD apporte une méthode plus légère et synthétique en terme de notation. Des échanges automatiques d’informations sur les pages du web entre serveurs, moteurs de recherche et applications dédiées à la gestion des connaissances deviennent alors possibles de différentes manières. Les mêmes informations sémantiques peuvent être « sérialisées / écrites » de différentes façons.

Le W3C (World Wide Web Consortium) débute dès 1994 ses travaux sur le web sémantique encore appelé web des données. Il s’agit d’un projet à long terme visant à répertorier de manière structurée les connaissances stockées dans les pages du web afin de permettre une recherche plus précise et une réutilisation dans d’autres applications. Les formats de métadonnées RDF, RDFa et microdata / microdonnées sont successivement spécifiés en 1999, 2008 et 2011 par le World Wide Web Consortium (W3C) et par le Web Hypertext Application Technology Working Group (WHATWG). Implémentés dans les logiciels des bibliothèques, des éditeurs, des centres d’archivage et des musées, mais aussi dans les gestionnaires de contenu, ils sont susceptibles de servir pour les échanges de métadonnées entre logiciels – pour l’interopérabilité – ou bien pour le référencement par les moteurs de recherche.

Plan

  1. RDF (Resource Description Framework)
  2. RDFa (Ressource Description Framework in attributes)
  3. Les microdonnées
  4. JSON-LD

1. RDF (Resource Description Framework)

Le langage pilier du web sémantique RDF est publié sous forme de recommandation en 1999. Une deuxième version paraît en 2004. RDF permet la description des ressources du Web à l’aide d’assertions (ou statements) qui prennent la forme d’un triplet : sujet, prédicat, objet. Le sujet identifie la ressource à décrire, le prédicat indique un type de relation et l’objet précise la valeur du prédicat. Dans l’assertion « Jacques habite Amance », « Jacques » est le sujet, « habite » est le prédicat et « Amance » est l’objet. Ce triplet deviendrait significatif dans le cadre d’une page personnelle relative à Jacques.

Sujets et objets doivent être identifiés de manière permanente et unique avec un identifiant du type URI (Uniform Ressource Identifier) ou URL (Uniform Ressource Locator). Le prédicat – « Lieu d’habitation » dans l’exemple – est formalisé dans une ontologie. RDF est un langage puissant de description des données qui permet la création d’inférences. Plusieurs assertions peuvent par exemple être combinées pour en déduire de nouvelles. Si on ajoute à l’exemple précédent l’assertion « Amance se trouve en Meurthe et Moselle », on réalise l’inférence « Jacques habite en Meurthe et Moselle ». Un autre exemple d’assertion est « une personne – identifiée par sa page web d’employé », a créé « une page index.html sur le site http://www.example.org ».

Une assertion peut être représentée à l’aide d’un graphe dans lequel sujet et objet sont en quelque sorte les nœuds et le prédicat est la flèche. Dans le cadre du web de données, l’exemple suivant représente l’assertion : La page html  « http://www.example.org/index.html &raquo; a été créée par la personne identifiée par l’URI « http://www.example.org/staffid/85740 &raquo;. Sujets, prédicats et objets sont identifiés sur le web par un URL qui donne des renseignements complémentaires sur le contexte d’utilisation. Le prédicat « creator » est ici défini à l’aide de l’ontologie (du vocabulaire) Dublin Core (dcterm:creator) et renseigne sur l’auteur de la page web.

Une expression équivalente de ce graphe, en XML/RDF est la suivante :

<!-- Déclaration du format-->
<?xml version="1.0"?>
<!-- Déclaration des espaces de nom RDF et Dublin Core-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/">
   <!-- Description de l’objet identifié par son URL -->
   <rdf:Description rdf:about="http://www.example.org/index.html">
      <!-- L’auteur de l'objet est identifié par une URL -->
      <dc:creator rdf:resource="http://www.example.org/staffid/85740"/>
   </rdf:Description>
</rdf:RDF>

RDF est parfois qualifié de « modèle de graphe ». Ce formalisme rend possible la description d’une multitude d’objets du web de différentes natures. La notion d’ontologie ou vocabulaire émerge au début des années 2000 pour reprendre en la renommant la notion préexistante de schéma de métadonnées.

Un peu comme pour une langue, il convient que les vocabulaires soient très largement employés afin de favoriser les échanges entre utilisateurs. Parmi les vocabulaires, Dublin Core est créé en 1995 pour décrire de manière brève et générale toute page du web, FOAF (Friend Of A Friend) est créé en 2005 et employé pour décrire les personnes et les organisations. Mis au point en 2009, Bibo rend possible la description sur le web des documents des bibliothèques. Ce vocabulaire est conçu pour être utilisé conjointement avec Dublin Core et FOAF.

De manière classique, les ontologies sont décrites à l’aide de langages eux-mêmes basés sur RDF tels que RDFS (RDF Schema) ou OWL (Web Ontology Language). Le langage SKOS (Simple Knowledge Organisation System) permet de formaliser une liste finie de concepts comme les termes d’un dictionnaire ou d’un thésaurus par exemple.

2. RDFa (Ressource Description Framework in attributes)

L’intégration d’informations sémantiques plus fines, localisées au sein du code HTML, est apparue nécessaire aux membres du W3C. Publié en 2008, RDFa (Ressource Description Framework in attributes) propose l’incorporation des métadonnées sémantiques sous forme d’attribut et de valeur de balises localisées dans tout document XML, XHTML ou HTML5. RDFa se sert d’un ensemble d’attributs spécifiques (rel, rev, content, src, about, property, resource, datatype, typeof) pour transmettre la sémantique. Les ontologies employées sont spécifiées à l’aide de l’attribut xmlns dans la balise html, venant spécifier l’espace de nom et l’abréviation de cet espace, par exemple dc pour Dublin Core.

Exemple de document RDFa 1.0 et XHTML étendu avec FOAF et Dublin Core. Les attributs RDFa de valeurs rel, property, resource, href, marqués en bleu dans cet exemple prennent des valeurs définies par l’espace de nom et le nom du champ. L’objet correspond au contenu de la balise.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
 "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<!-- Déclaration des espaces de nom FOAF et Dublin Core-->
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:foaf="http://xmlns.com/foaf/0.1/"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 version="XHTML+RDFa 1.0" xml:lang="en">
 <head>
  <title>John's Home Page</title>
  <base href="http://example.org/john-d/" />
  <meta property="dc:creator" content="Jonathan Doe" />
  <link rel="foaf:primaryTopic" href="http://example.org/john-d/#me" />
 </head>
 <body about="http://example.org/john-d/#me">
  <h1>John's Home Page</h1>
  <!-- Les attributs property, rel et href fournissent l’information sémantique -->
  <p>My name is <span property="foaf:nick">John D</span> and I like
   <a href="http://www.neubauten.org/" rel="foaf:interest" xml:lang="de">Einstürzende Neubauten</a>.
  </p>
  <p>
   <!-- resource spécifie un identifiant non “clickable” -->
   My <span rel="foaf:interest" resource="urn:ISBN:0752820907">
      favorite book is the inspiring
       <span about="urn:ISBN:0752820907"><cite property="dc:title">Weaving the Web</cite> by
        <span property="dc:creator">Tim Berners-Lee</span>
       </span>
      </span>
  </p>
 </body>
</html>

On apprend ainsi à l’aide du code précédent que le livre préféré de « Jonathan Doe » est « Weaving the Web » (Tisser le web) écrit par Tim Berners-Lee. L’ISBN de ce livre est « ISBN:0752820907 ». Johnathan Doe est de langue allemande et son surnom est « John D ».

Des gestionnaires de contenu comme WordPress ou Drupal, des moteurs de recherche spécialisés comme OpenGrey, exposent ainsi leurs métadonnées en RDFa. Les moteurs de recherche tels que Google, ou Isidore au CNRS prennent en compte les balises RDFa que leurs robots d’indexation détectent dans les sites parcourus. La version 1.1 de RDFa prévoit la spécification d’une partie cœur commune, et d’adaptations spécifiques à différents formats. Des adaptations pour XHML1 et HTM5 sont prévues. Des outils en ligne permettent de visualiser de manière didactique les métadonnées contenues dans une page HTML. On peut par exemple en cliquant ici voir les métadonnées de l’article que vous lisez.

3. Les microdonnées

HTML Microdata (Microdonnées en français) est publié par le W3C en 2011 sous forme de recommandation en cours d’élaboration. Elle est produite conjointement par le W3C et par Google, Yahoo et Microsoft (Bing) qui publient conjointement schema.org, une ontologie à portée générale visant à décrire les pages du web. Les moteurs de recherche souhaitent pouvoir enrichir la présentation et la pertinence des résultats de recherche. Les microdonnées reprennent la logique de RDFa tout en en modifiant la syntaxe. Les informations sémantiques se trouvent localisées dans des attributs de balises HTML standards. 5 attributs sont définis : itemid, itemprop, itemref, itemscope, itemtype.

Une hiérarchie de classes et de propriétés sont définies dans Schema. Des principes généraux accompagnés d’exemples d »implémentation guident les utilisateurs. Plusieurs méthodes d’implémentation dans le code HTML sont proposées : sous forme de microdonnées tout d’abord puis ultérieurement au format JSON-LD. Parmi les classes susceptibles d’intéresser les musées, les bibliothèques, les archives et la recherche on peut citer Article, Book, Review, MediaObject, Painting, Photograph, Sculture, WebPage, et aussi Organization, Place, Person, Intangible.

Exemple de page personnelle intégrant les microdonnées de schema.org :

<section itemscope itemtype="http://schema.org/Person"> 
	Hello, my name is 
	<span itemprop="name">John Doe</span>, 
	I am a 
	<span itemprop="jobTitle">graduate research assistant</span> 
	at the 
	<span itemprop="affiliation">University of Dreams</span>. 
	My friends call me 
	<span itemprop="additionalName">Johnny</span>. 
	You can visit my homepage at 
	<a href="http://www.JohnnyD.com" itemprop="url">www.JohnnyD.com</a>. 
	<section itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
		I live at 
		<span itemprop="streetAddress">1234 Peach Drive</span>,
		<span itemprop="addressLocality">Warner Robins</span>,
		<span itemprop="addressRegion">Georgia</span>.
	</section>
</section>

4. JSON-LD

Créé par Manu Sporny fin 2008, JSON-LD est devenu depuis le 14 janvier 2014 un standard du W3C. Des métadonnées en JSON se trouvent insérées dans une balise « script » contenue dans le corps d’un document HTML. On a dans l’exemple suivant une page HTML qui contient un résumé de son contenu. Elle décrit une personne identifiée comme John Lennon par son identifiant dbpedia et par sa valeur de « name ». Nous apprenons sa date de naissance et le nom de l’une de ses épouses. JSON-LD constitue un format actuellement promu par schema.org, au même titre que les microdonnées, mais plus aisé à implémenter dans une application.

<script type="application/ld+json">
{
   "@context": "https://json-ld.org/contexts/person.jsonld",
   "@id": "http://dbpedia.org/resource/John_Lennon",
   "name": "John Lennon",
   "born": "1940-10-09",
   "spouse": "http://dbpedia.org/resource/Cynthia_Lennon" }
</script>

Un autre exemple en provenance de schema.org : Lien. L’espace de nom est spécifié à l’aide de @context, la classe @type permet de préciser qu’une entité de la classe Person est décrite, dont l’adresse, de la classe PostalAddress, admet les propriétés addressLocality, addressRegion, postalCode et streetAddress. Le niveau de la structuration de la description est laissé au choix de l’utilisateur. Une adresse non typée aurait pu être renseignée en valeur de « address », les différentes parties de l’adresse étant fusionnées, séparées par une virgule. Des générateurs facilitent également la génération du code JSON-LD, alors que d’autres outils permettent de vérifier leur validité.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Seattle",
    "addressRegion": "WA",
    "postalCode": "98052",
    "streetAddress": "20341 Whitworth Institute 405 N. Whitworth"
  },
  "colleague": [
    "http://www.xyz.edu/students/alicejones.html",
    "http://www.xyz.edu/students/bobsmith.html"
  ],
  "email": "mailto:jane-doe@xyz.edu",
  "image": "janedoe.jpg",
  "jobTitle": "Professor",
  "name": "Jane Doe",
  "telephone": "(425) 123-4567",
  "url": "http://www.janedoe.com"
}
</script>

En conclusion

Les robots d’indexation des moteurs de recherche de même que les bases sémantiques ont en commun l’objectif de partager des séries de connaissances factuelles à l’aide de pages du web. Différentes méthodes permettent d’exposer les métadonnées des pages servies par différentes catégories de gestionnaires de contenus. Le format RDF intéresse les triple stores essentiellement et se montre distinct d’HTML. Le renseignement des balises meta de l’entête HTML reste toujours d’actualité pour tout webmestre qui souhaite optimiser son référencement. Des ontologie simples telles qu’OpenGraph de FaceBook de même que des outils Twitter se montrent également efficaces.

RDFa permet l’intégration des informations sémantique dans le code HTML. Ce format est généralement pris en compte par Google et se trouve implémenté dans des gestionnaires de contenus tels que WordPress, Drupal, Typo3 sous forme de modules. Les microdonnées constituent une alternative. Bien compris des moteurs de recherche, JSON-LD permet d’alléger le code et s’avère relativement aisé à implémenter.

Un commentaire

Laisser un commentaire