RDFa ( pour Resource Des­crip­tion Framework dans des Attributs ») est un format de données re­com­mandé par le World Wide Web Con­sor­tium (sigle W3C) en tant que norme pour l’ajout des données RDF dans des pages HTML, XHTML et autres langages XML. Les pro­gram­meurs utilisent le RDFa pour mieux spécifier les contenus de sites Internet avec des mé­ta­don­nées. De cette manière, les liens cor­res­pon­dants sont compris par les pro­grammes tels que les na­vi­ga­teurs ou les robots d’in­dexa­tion. Le modèle RDF est donc un élément fon­da­men­tal du Web sé­man­tique. RDFa, le module de XHTML, a été développé à partir de 2004. Une re­com­man­da­tion du W3C pour le RDFa 1.0 a suivi en 2008. Le format de données est com­pa­tible avec les pro­grammes clas­siques tels que HTML et HMTL5 depuis que la version 1.1 a été in­tro­duite en 2012 pa­ral­lè­le­ment à une variante pour débutant de moindre mesure appelée RDFa Lite.

RDF dans une page HTML

En principe, RDFa re­pré­sente une des nom­breuses pos­si­bi­li­tés avec laquelle les données RDF peuvent être notées. Ainsi, les éléments cor­res­pon­dants du RDFa sont in­tro­duits dans le langage de balisage HTML pour traiter au­to­ma­ti­que­ment les contenus Web qui sont destinés aux uti­li­sa­teurs en tant que données struc­tu­rées. Cet ajout se réalise via des attributs/valeurs dans les balises HTML. Ainsi, RDFa est com­pa­rable à d’autres formats de données de dis­tinc­tion sé­man­tique comme par exemple les micro-formats ou les micro-données. RDFa ne dispose que d’une mé­ta­syn­taxe pour les dis­tinc­tions sé­man­tiques. Un vo­ca­bu­laire précis est né­ces­saire pour décrire ces liens avec les mé­ta­don­nées. Plusieurs normes telles que FOAF, SKOS, Dublin Core ou SIOC sont à la dis­po­si­tion des pro­gram­meurs. Les moteurs de recherche Google, Bing, Yahoo et Yandex re­com­man­dent néanmoins l’ini­tia­tive schema.org pour créer des données struc­tu­rées homogènes.  

Ap­pli­ca­tion des balises RDFa

Lors de l’ajout de mé­ta­don­nées, la spé­ci­fi­ca­tion RDFa conduit à un certain nombre de nouveaux attributs qui élar­gis­sent le ré­per­toire de chaque langage de balisage (par exemple HTML, XHTML ou HTML5). La liste suivante montre les attributs du sous-ensemble RDFa Lite :

Attribut Des­crip­tion
vocab L’attribut vocab définit le vo­ca­bu­laire souhaité qui est à la base de la ca­rac­té­ris­tique 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 » con­for­mé­ment au vo­ca­bu­laire choisi.
property Avec l’attribut property, des pro­prié­tés sont affectées aux éléments.
resource L’attribut resource permet aux pro­gram­meurs de s’assigner des éléments à des ca­rac­té­ris­tiques in­di­vi­duelles soit les « iden­ti­fier ».
prefix L’attribut prefix donne aux pro­gram­meurs la pos­si­bi­lité d’indiquer plus qu’un vo­ca­bu­laire au cas où les notions du premier vo­ca­bu­laire ne suffisent pas à la ca­rac­té­ris­tique souhaitée.

Les balises HTML, en tant éléments de support, sont avant tout faites pour les attributs RDFa sans sé­man­tique propre. Les mé­ta­don­né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 re­pré­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 in­ter­naute reconnaît ce format d’adresse amé­ri­caine au premier coup d‘œil, un na­vi­ga­teur ou un robot d’in­dexa­tion aura, quant à lui, besoin de mé­ta­don­nées sup­plé­men­taires pour pouvoir lire ces in­for­ma­tions :

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 pro­grammes qui peuvent lire de tels codes ap­pren­nent ainsi d’un côté que le vo­ca­bu­laire d’après schema.org est valable pour toutes les données à l’intérieur des balises « p », et également que les in­for­ma­tions sont classées dans le schéma ou sous attribut « pos­ta­lAd­dress ». D’après le projet schema.org, il est spécifié que chaque schéma peut être muni de ca­rac­té­ris­tiques par­ti­cu­lières : les adresses postales ont donc leur propre vo­ca­bu­laire de code. Si les na­vi­ga­teurs peuvent par­fai­te­ment lire ces données, il convient alors d’utiliser l’attribut RDFa « property ». Dans l’exemple actuel, les in­for­ma­tions de contacts « name », « pos­tOf­fi­ce­Box­Num­ber », « ad­dress­Lo­ca­lity », « ad­dress­Re­gion », « pos­tal­Code » et « ad­dress­Coun­try » sont définies en tant que « Pos­ta­lAd­dress » avec des valeurs cor­res­pon­dantes. Ainsi, un programme qui lit le code HTML est également capable de com­prendre une in­for­ma­tion telle que « Google Inc » ou « 94043 ».

Les contenus de site Web avec RDFa pour les rich snippets

Les données struc­tu­rées sont per­ti­nentes avant tout dans le cadre des re­cherches sur Internet. Si un ad­mi­nis­tra­teur définit les in­for­ma­tions de son site Internet de manière sé­man­tique, les moteurs de recherche sont capables d’extraire des in­for­ma­tions adaptées et de les utiliser pour les rich snippets par exemple. Ces derniers ca­rac­té­ri­sent des extraits de contenus de sites Web qui figurent sous les résultats des moteurs de recherche. En ce sens, une an­no­ta­tion sé­man­tique contribue à l’op­ti­mi­sa­tion 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 jour­na­lis­tiques. En ce qui concerne les vidéos, les rich snippets sont ex­clu­si­ve­ment 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é­ne­ments, il convient d’utiliser des attributs avec JSON-LD. Voici un exemple de rich snippets pour illustrer l’éva­lua­tion d’un produit :

Eva­lua­tion d’un produit avec RDFa

Les éva­lua­tions de produits qui ap­pa­rais­sent dans les rich snippets des SERPs (page de résultats de moteurs de recherche, de l’anglais search engine results page) con­tien­nent en général le nom du produit en question, une image, une notation sous la forme d’étoiles ainsi qu’un com­men­taire d’uti­li­sa­teur avec un nom, une date et un titre. Le code suivant permet aux na­vi­ga­teurs de lire ces in­for­ma­tions :

Balise RDFa dans l’éva­lua­tion 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 vo­ca­bu­laire 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 pro­prié­tés (pro­per­ties). L’exemple précédent illustre sé­man­ti­que­ment un produit avec un nom (property= « name »), une image (property= « image ») ainsi qu’une critique (property= « review »). La syntaxe RDFa prévoit la pos­si­bi­lité de décrire les pro­prié­tés comme des schémas et de les garnir de pro­prié­tés. Ainsi, l'at­tri­but « 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 com­men­taires con­tien­nent des notations avec des étoiles. Afin que les na­vi­ga­teurs puissent les lire, l’attribut « re­vie­wRa­ting » 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 « ra­ting­Va­lue » 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 pro­prié­tés du schéma « review » comme le titre (property="name"), l‘auteur (property="author"), la date de pu­bli­ca­tion (property="da­te­Pu­bli­shed") ainsi que le texte d’éva­lua­tion (property="re­view­Body") et une in­for­ma­tion au sujet de l’éditeur (property="publisher"). De leur côté, l’auteur et l’éditeur sont con­si­dé­rés comme des attributs spé­ci­fiques (personne voire une or­ga­ni­sa­tion) grâce aux valeurs typeof et sont pourvus de pro­prié­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 com­plexité de la balise RDFa. Elle permet une an­no­ta­tion sé­man­tique par­ti­cu­liè­re­ment détaillée mais son l’uti­li­sa­tion exige néanmoins davantage de con­nais­sances que les formats de données plus modernes comme JSON-LD.

Aller au menu principal