# RDFa

RDFa (pour « Resource Description Framework dans des Attributs ») est une recommandation du W3C définissant une syntaxe permettant d'ajouter des données structurées dans une page HTML ou n'importe quel document XML. Ainsi formellement décrites, les données peuvent alors faire l'objet de traitements automatisés complexes, via des outils adaptés. Le code RDFa est invisible pour l'internaute et n'affecte pas ce qui est affiché.
RDFa a atteint le statut de recommandation 1.0 le 14 octobre 2008 et 1.1 le 22 août 2013.

## Principe

RDFa est un ensemble d'éléments et d'attributs. Cette syntaxe est conforme au modèle Resource Description Framework (RDF) : des données décrites en RDFa peuvent donc être facilement transformées en données RDF. À ce titre, RDFa est une technique permettant de mettre en œuvre le Web sémantique.
RDFa utilise pour partie la syntaxe HTML existante :
* l'attribut class - permettant de spécifier le type de l'objet
* l'attribut id - indirectement, servant à définir l'URI d'un objet dans la page
* les attributs rel, rev et href - spécifiant une relation avec une autre ressource
RDFa ajoute ses propres éléments, les attributs :
* about - une URI spécifiant la ressource décrite par les métadonnées ; en son absence, il s'agit du document en cours;
* property - spécifiant une propriété pour le contenu d'un élément;
* content - attribut optionnel qui remplace le contenu d'un élément quand on utilise l'attribut de propriété.
* datatype - attribut optionnel qui spécifie le type de donnée du contenu;
* resource - attribut optionnel spécifiant une ressource externe, en général non cliquable. Il remplace @href et @src dans les éléments qui ne sont pas identifiés comme liens. Il représente aussi la destination de la propriété (et non la source comme c'est le cas pour @about).

## Comparaison avec les microformats

RDFa est une technique proche des microformats en ce qu'elle permet d'ajouter de la sémantique au contenu d'une page. Elles diffèrent cependant sur deux principaux aspects :
* RDFa est extensible très facilement du fait qu'il utilise des espaces de nom ;
* RDFa 1.0 n'était normalement utilisable qu'avec XHTML 1.1 et supérieurs ; les microformats, en revanche, s'adaptent aux deux normes les plus répandues sur le Web, HTML 4.01 et XHTML 1.0. RDFa 1.1, quant à lui, permet l'utilisation de RDFa avec HTML5 ou n'importe quel document XML.

## Exemple de code RDFa

L'exemple suivant montre l'ajout de métadonnées du Dublin Core à une page HTML. Les propriétés du Dublin core sont utilisées pour décrire un livre ou un article (titre, auteur, sujet, etc.).
RDFa peut aussi s'inscrire naturellement dans le flot du contenu :

## Exemples d'usages

À l'aide d'une extension du navigateur Firefox, il est possible, en fonction des données RDFa :
* de localiser automatiquement géographiquement un individu (à l'aide d'un service comme Google Maps)
* de visualiser le fichier FOAF d'une personne (description détaillée en RDF) à l'aide du service Foaf Explorer
Autre type d'exemple, la saisie de métadonnées RDFa dans un outil de gestion de contenu, peut permettre à ce dernier d'afficher automatiquement les définitions de Wikipédia des concepts ainsi décrits.