Définissez votre site Web avec RDFa d’après schema.org

RDFa ( pour Resource Description Framework dans des Attributs ») est un format de données recommandé par le World Wide Web Consortium (sigle W3C) en tant que norme pour l’ajout des données RDF dans des pages HTML, XHTML et autres langages XML. Les programmeurs utilisent le RDFa pour mieux spécifier les contenus de sites Internet avec des métadonnées. De cette manière, les liens correspondants sont compris par les programmes tels que les navigateurs ou les robots d’indexation. Le modèle RDF est donc un élément fondamental du Web sémantique. RDFa, le module de XHTML, a été développé à partir de 2004. Une recommandation du W3C pour le RDFa 1.0 a suivi en 2008. Le format de données est compatible avec les programmes classiques tels que HTML et HMTL5 depuis que la version 1.1 a été introduite en 2012 parallèlement à une variante pour débutant de moindre mesure appelée RDFa Lite.

RDF dans une page HTML

En principe, RDFa représente une des nombreuses possibilités avec laquelle les données RDF peuvent être notées. Ainsi, les éléments correspondants du RDFa sont introduits dans le langage de balisage HTML pour traiter automatiquement les contenus Web qui sont destinés aux utilisateurs en tant que données structurées. Cet ajout se réalise via des attributs/valeurs dans les balises HTML. Ainsi, RDFa est comparable à d’autres formats de données de distinction sémantique comme par exemple les micro-formats ou les micro-données. RDFa ne dispose que d’une métasyntaxe pour les distinctions sémantiques. Un vocabulaire précis est nécessaire pour décrire ces liens avec les métadonnées. Plusieurs normes telles que FOAF, SKOS, Dublin Core ou SIOC sont à la disposition des programmeurs. Les moteurs de recherche Google, Bing, Yahoo et Yandex recommandent néanmoins l’initiative schema.org pour créer des données structurées homogènes.  

Application des balises RDFa

Lors de l’ajout de métadonnées, la spécification RDFa conduit à un certain nombre de nouveaux attributs qui élargissent le répertoire de chaque langage de balisage (par exemple HTML, XHTML ou HTML5). La liste suivante montre les attributs du sous-ensemble RDFa Lite :

Attribut

Description

vocab

L’attribut vocab définit le vocabulaire souhaité qui est à la base de la caractéristique des éléments avec RDFa (comme schema.org par exemple).

typeof

Avec l’attribut typeof, les éléments sont classés en schemata, soit les fameux « types » conformément au vocabulaire choisi.

property

Avec l’attribut property, des propriétés sont affectées aux éléments.

resource

L’attribut resource permet aux programmeurs de s’assigner des éléments à des caractéristiques individuelles soit les « identifier ».

prefix

L’attribut prefix donne aux programmeurs la possibilité d’indiquer plus qu’un vocabulaire au cas où les notions du premier vocabulaire ne suffisent pas à la caractéristique souhaitée.

Les balises HTML, en tant éléments de support, sont avant tout faites pour les attributs RDFa sans sémantique propre. Les métadonnées se trouvent souvent dans les balises div ou span. En principe, les données RDF peuvent néanmoins être intégrées via RDFa dans toutes les balises HTML. En général, le processus est le suivant :

Basic RDFa syntax schema:
<div vocab="http://schema.org/" typeof="Schema">
  <span property="propriete">élément texte</span>
<div> 

Une adresse postale avec RDFa

Le code suivant représente une adresse postale dans son format classique :

HTML-Code d’une adresse postale :
<p>
  Google Inc.<br>
  P.O. Box 1234<br>
  Mountain View, CA<br>
  94043<br>
  United States<br>
</p>

Alors qu’un internaute reconnaît ce format d’adresse américaine au premier coup d‘œil, un navigateur ou un robot d’indexation aura, quant à lui, besoin de métadonnées supplémentaires pour pouvoir lire ces informations :

Balises RDFa d’une adresse postale :
<p vocab="http://Schema.org/" typeof="PostalAddress"><br>
  <span property="name">Google Inc.</span><br>
  P.O. Box <span property="postOfficeBoxNumber">1234</span><br>
  <span property="addressLocality">Mountain View</span>,<br>
  <span property="addressRegion">CA</span><br>
  <span property="postalCode">94043</span><br>
  <span property="addressCountry">United States</span><br>
</p>

Dans la ligne 01, la balise HTML <p> sert d’élément de support pour l’attribut RDFa « vocab » et « typeof ». Les programmes qui peuvent lire de tels codes apprennent ainsi d’un côté que le vocabulaire d’après schema.org est valable pour toutes les données à l’intérieur des balises « p », et également que les informations sont classées dans le schéma ou sous attribut « postalAddress ». D’après le projet schema.org, il est spécifié que chaque schéma peut être muni de caractéristiques particulières : les adresses postales ont donc leur propre vocabulaire de code. Si les navigateurs peuvent parfaitement lire ces données, il convient alors d’utiliser l’attribut RDFa « property ». Dans l’exemple actuel, les informations de contacts « name », « postOfficeBoxNumber », « addressLocality », « addressRegion », « postalCode » et « addressCountry » sont définies en tant que « PostalAddress » avec des valeurs correspondantes. Ainsi, un programme qui lit le code HTML est également capable de comprendre une information telle que « Google Inc » ou « 94043 ».

Les contenus de site Web avec RDFa pour les rich snippets

Les données structurées sont pertinentes avant tout dans le cadre des recherches sur Internet. Si un administrateur définit les informations de son site Internet de manière sémantique, les moteurs de recherche sont capables d’extraire des informations adaptées et de les utiliser pour les rich snippets par exemple. Ces derniers caractérisent des extraits de contenus de sites Web qui figurent sous les résultats des moteurs de recherche. En ce sens, une annotation sémantique contribue à l’optimisation d’un site sur les moteurs de recherche. Le leader du marché Google prend en charge un attribut RDFa pour les rich snippets pour les types de données, les produits, les recettes, les critiques, les logiciels et les articles journalistiques. En ce qui concerne les vidéos, les rich snippets sont exclusivement pris en charge dans leur format actuel, soit en micro-données ou en JSON-LD. Si les rich snippets sont générés dans le cadre d’événements, il convient d’utiliser des attributs avec JSON-LD. Voici un exemple de rich snippets pour illustrer l’évaluation d’un produit :

Evaluation d’un produit avec RDFa

Les évaluations de produits qui apparaissent dans les rich snippets des SERPs (page de résultats de moteurs de recherche, de l’anglais search engine results page) contiennent en général le nom du produit en question, une image, une notation sous la forme d’étoiles ainsi qu’un commentaire d’utilisateur avec un nom, une date et un titre. Le code suivant permet aux navigateurs de lire ces informations :

Balise RDFa dans l’évaluation d’un produit :
<div vocab="http://schema.org/" typeof="Product">
  <img property="image" src="www.fournisseur.fr/photoproduit.jpg" alt="description"/>
  <span property="name">nom du produit</span>
  <div property="review" typeof="Review"> Review:
    <span property="reviewRating" typeof="Rating">
      <span property="ratingValue">5</span> -
    </span>
    <b>"<span property="name">titre de la description</span>"</b> von
    <span property="author" typeof="Person">
      <span property="name">Name des Autors</span>
    </span>, écrit le 
    <meta property="datePublished" content="2006-05-04">4. Mai 2006
    <div property="reviewBody">texte d’évaluation</div>
    <span property="publisher" typeof="Organisation">
      <meta property="name" content="nom du commentateur">
    </span>
  </div>
</div>

Dans la ligne de code 01, le projet schema.org est spécifié en tant que vocabulaire de base pour les balises. L’attribut typeof définit les données allant des lignes 01 à 17 comme étant le schéma standard du « product ». D’après schema.org, les produits peuvent présenter une série de propriétés (properties). L’exemple précédent illustre sémantiquement un produit avec un nom (property= « name »), une image (property= « image ») ainsi qu’une critique (property= « review »). La syntaxe RDFa prévoit la possibilité de décrire les propriétés comme des schémas et de les garnir de propriétés. Ainsi, l'attribut « review » de la ligne 04 est défini en tant que schéma (ou sous-attribut) « review » ce qui précise son rôle.

Extrait :
 <div property="review" typeof="Review"> Review:

Beaucoup de critiques ou commentaires contiennent des notations avec des étoiles. Afin que les navigateurs puissent les lire, l’attribut « reviewRating » est classé dans le schéma « review » qui se décrit lui-même à son tour en tant que schéma « rating » avec l’attribut « ratingValue » et avec une note concrète (lignes 05 à 06).

Extrait :
  <div property="review" typeof="Review"> Review:
    <span property="reviewRating" typeof="Rating">
      <span property="ratingValue">5</span> -

Il existe d’autres propriétés du schéma « review » comme le titre (property="name"), l‘auteur (property="author"), la date de publication (property="datePublished") ainsi que le texte d’évaluation (property="reviewBody") et une information au sujet de l’éditeur (property="publisher"). De leur côté, l’auteur et l’éditeur sont considérés comme des attributs spécifiques (personne voire une organisation) grâce aux valeurs typeof et sont pourvus de propriétés (par exemple « name »). Il convient donc de veiller au fait que chaque sous-attribut typeof à l’intérieur de la balise HTML soit imbriqué d’un attribut parent typeof.

Cet article illustre le degré de la complexité de la balise RDFa. Elle permet une annotation sémantique particulièrement détaillée mais son l’utilisation exige néanmoins davantage de connaissances que les formats de données plus modernes comme JSON-LD.