9.1 Introduction à RDF

Écrit par Neil Deakin , mise à jour par les contributeurs à MDC .
Traduit par Vincent S. (08/06/2004), mise à jour par Alain B. (04/04/2007) .
Page originale : http://developer.mozilla.org/en/docs/XUL_Tutorial/Introduction_to_RDF

Attention : Ce tutoriel est ancien et n'est pas mis à jour. Bien que beaucoup d'informations soient encore valables pour les dernières versions de gecko, beaucoup sont aussi obsolètes. Il est préférable d'aller consulter cette page sur la version française de ce tutoriel sur developer.mozilla.org.

Dans cette section, nous allons nous intéresser à RDF (Resource Description Framework).

Resource Description Framework

Nous pouvons utiliser l'élément tree pour afficher un ensemble de données, telles que des marque-pages ou des courriels. Cependant, il ne serait pas pratique de le faire en entrant les données directement dans le fichier XUL. Il serait très difficile de modifier les marque-pages s'ils étaient directement dans le fichier XUL. Le moyen de résoudre cette difficulté est d'utiliser des sources de données RDF.

RDF (Resource Description Framework) est un format qui peut être utilisé pour stocker des ressources telles que des marque-pages ou des courriels. Alternativement, on peut utiliser des données dans d'autres formats et écrire du code qui va lire le fichier et créer le fichier de données RDF. C'est de cette façon que Mozilla fonctionne quand il lit des données telles que les marque-pages, l'historique ou les messages de courriel. Mozilla fournit des sources de données pour ces données communes pour que vous puissiez facilement les utiliser.

Vous pouvez utiliser n'importe quelles sources de données RDF fournies pour peupler les arbres tree avec des données ou vous pouvez désigner un fichier RDF au format XML contenant les données. Elles sont très commodes pour afficher des arbres contenant beaucoup de lignes. RDF peut aussi peupler d'autres éléments XUL comme les listbox et les menu. Nous verrons cela dans la prochaine section.

Un très bref aperçu de RDF sera fourni ici. Pour un guide de RDF plus détaillé, lisez Introduction to the RDF Model (en). Il est recommandé de lire ce guide si vous êtes débutant en RDF.

Pour plus d'information sur le RDF, consultez les spécifications RDF (en).

RDF/XML

RDF consiste en un modèle, qui est une représentation des données sous forme de graphe. RDF/XML est un langage XML utilisé pour représenter des données RDF. Il contient un ensemble assez simple d'éléments. L'exemple ci-dessous montre un gabarit RDF minimal.

<?xml version="1.0"?>
<RDF:RDF
     xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
     ...
</RDF:RDF>

Il a quelques similitudes avec l'en-tête XUL. À la place de l'élément window, l'élément RDF est utilisé. Vous pouvez voir que l'espace de nommage pour RDF a été déclaré pour que les éléments RDF soient reconnus proprement. À l'intérieur de l'élément RDF, vous placerez les données. Pour voir quelques exemples de fichiers RDF/XML, regardez ceux présents avec Mozilla. Ils ont une extension .rdf.

Base de données RDF

Prenons l'exemple d'une liste de marque-pages générée à partir de RDF. Une liste de marque-pages contient un ensemble d'enregistrements, chacun avec un ensemble de données associées, telles que l'URL, le titre et une date de visite.

Pensez aux marque-pages comme une base de données qui est stockée comme une grande table avec de nombreux champs. Dans le cas de RDF cependant, les listes peuvent être hiérarchisées. C'est nécessaire pour que nous puissions avoir des dossiers ou des catégories de marque-pages. Chacun des champs dans la base de données RDF est une ressource, avec un nom associé. Le nom est décrit par un URI.

Par exemple, une selection de champs dans la liste de marque-pages de Mozilla est décrite par les URIs ci-dessous :

Namehttp://home.netscape.com/NC-rdf#NameNom du marque-page
URLhttp://home.netscape.com/NC-rdf#URLURL correspondante
Descriptionhttp://home.netscape.com/NC-rdf#Description description du marque-page
Last Visitedhttp://home.netscape.com/WEB-rdf#LastVisitDate Date de dernière visite

Ils sont générés en prenant le nom de l'espace de nommage (NdT : exemple : http://home.netscape.com/NC-rdf) et en ajoutant le nom du champ (NdT : exemple : #Name). Dans la prochaine section, nous verrons comment les utiliser pour remplir les valeurs des champs automatiquement. Notez que la dernière date de visite a un espace de nommage légèrement différent des trois autres.

Exemple de fichier RDF/XML

Voici maintenant un exemple de fichier RDF/XML listant une table avec trois enregistrements et trois champs.

<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:ANIMALS="http://www.www.some-fictitious-zoo.com/rdf#">

  <RDF:Seq RDF:about="http://www.www.some-fictitious-zoo.com/all-animals">
    <RDF:li>
       <RDF:Description RDF:about="http://www.www.some-fictitious-zoo.com/mammals/lion">
         <ANIMALS:name>Lion</ANIMALS:name>
         <ANIMALS:species>Panthera leo</ANIMALS:species>
         <ANIMALS:class>Mammifère</ANIMALS:class>
       </RDF:Description>
    </RDF:li>
    <RDF:li>
       <RDF:Description RDF:about="http://www.www.some-fictitious-zoo.com/arachnids/tarantula">
         <ANIMALS:name>Tarantule</ANIMALS:name>
         <ANIMALS:species>Avicularia avicularia</ANIMALS:species>
         <ANIMALS:class>Arachnide</ANIMALS:class>
       </RDF:Description>
    </RDF:li>
    <RDF:li>
       <RDF:Description RDF:about="http://www.www.some-fictitious-zoo.com/mammals/hippopotamus">
         <ANIMALS:name>Hippopotame</ANIMALS:name>
         <ANIMALS:species>Hippopotamus amphibius</ANIMALS:species>
         <ANIMALS:class>Mammifère</ANIMALS:class>
       </RDF:Description>
    </RDF:li>
  </RDF:Seq>
</RDF:RDF>

NdT : les spécifications du format RDF précisent qu'il faut toujours indiquer l'espace de nom RDF pour les attributs du langage RDF comme ID about, resource etc. Pour être en conformité avec ces spécifications, vous devrez toujours déclarer un alias d'espace de nom (comme RDF dans l'exemple précédent : xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#") et l'utiliser pour les attributs RDF (ex : RDF:about="...").

Ici, trois enregistrements ont été décrits, un pour chaque animal. Chaque balise RDF:Description décrit un seul enregistrement. À l'intérieur de chaque enregistrement, trois champs sont décrits, name, species et class. Il n'est pas nécessaire que tous les enregistrements aient les mêmes champs mais cela donne plus de sens.

À chacun des trois champs a été donné un espace de nommage appelé ANIMALS, dont l'URL a été déclarée dans la balise RDF. Ce nom a été choisi pour sa signification dans ce cas précis, mais nous aurions pu en choisir un autre. La fonctionnalité d'espace de nommage est utile car le champ class peut entrer en conflit avec celui utilisé pour les styles.

Les éléments Seq et li sont utilisés pour indiquer que les enregistrements sont dans une liste. C'est la même façon dont les listes HTML sont déclarées. L'élément Seq est utilisé pour indiquer que les éléments sont ordonnés. À la place de l'élément Seq, vous pouvez aussi utiliser l'élément Bag pour indiquer des données non ordonnées, et Alt pour indiquer des données où chaque enregistrement spécifie des valeurs alternatives (telles que des URLs mirroirs).

À l'intérieur d'un fichier XUL, il est fait référence aux ressources en combinant l'URL de l'espace de nommage suivit du nom du champ. Dans l'exemple ci-dessus, les URIs suivants générés peuvent être utilisés pour référer aux champs spécifiques :

Nomhttp://www.www.some-fictitious-zoo.com/rdf#name
Espècehttp://www.www.some-fictitious-zoo.com/rdf#species
Classehttp://www.www.some-fictitious-zoo.com/rdf#class

Dans la suite, nous allons voir comment utiliser RDF pour peupler des éléments XUL


Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.