xulfr.org

6.5 Introduction à RDF

Écrit par Neil Deakin. Traduit par Vincent S. (08/06/2004).
Page originale : http://www.xulplanet.com/tutorials/xultu/intrordf.html xulplanet.com

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 messages courriel. Cependant, il serait incommode de le faire en entrant les données directement dans le fichier XUL. Cela rendrait très difficile de modifier les marque-pages s'ils étaient directement dans le fichier XUL. Le moyen de résoudre cela est d'utiliser les 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 quelle source de données RDF fournies pour peupler les tree avec des données ou vous pouvez pointer vers un fichier RDF stocké en XML qui contient les données. Cela est très commode pour afficher des arbres contenant beaucoup de lignes. RDF peut aussi peupler d'autres éléments XUL comme les listbox et les menu. Nous allons voir 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 voir quelques exemples de fichiers RDF/XML, regardez ceux fournis avec Mozilla. Ils ont l'extension rdf.

RDF consiste en un modèle, qui est une représentation des données sous forme de graphe. RDF/XML est un langage XML qui peut être 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'entê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. A l'intérieur de l'élément RDF, vous placerez les données.

Une brève description de RDF sera donnée ici. Pour plus d'informations à propos de RDF, regardez les spécifications RDF (NdT : RDF est une recommandation du W3C). 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 hierarchisé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 utiliser ceci 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 autres arbres.

Ci-dessous, un exemple de fichier RDF/XML est montré, listant une table avec trois enregistrements et trois champs.

<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:ANIMAUX="http://www.un-zoo-factice.com/rdf#">

  <RDF:Seq RDF:about="http://www.un-zoo-factice.com/tous-les-animaux">
    <RDF:li>
       <RDF:Description RDF:about="http://www.un-zoo-factice.com/mammiferes/lion">
         <ANIMAUX:nom>Lion</ANIMAUX:nom>
         <ANIMAUX:espece>Panthera leo</ANIMAUX:espèce>
         <ANIMAUX:classe>Mammifère</ANIMAUX:classe>
       </RDF:Description>
    </RDF:li>
    <RDF:li>
       <RDF:Description RDF:about="http://www.un-zoo-factice.com/arachnides/tarantule">
         <ANIMAUX:nom>Tarantule</ANIMAUX:nom>
         <ANIMAUX:espece>Avicularia avicularia</ANIMAUX:espèce>
         <ANIMAUX:classe>Arachnide</ANIMAUX:classe>
       </RDF:Description>
    </RDF:li>
    <RDF:li>
       <RDF:Description RDF:about="http://www.un-zoo-factice.com/mammiferes/hippopotame">
         <ANIMAUX:nom>Hippopotame</ANIMAUX:nom>
         <ANIMAUX:espece>Hippopotamus amphibius</ANIMAUX:espèce>
         <ANIMAUX:classe>Mammifère</ANIMAUX:classe>
       </RDF:Description>
    </RDF:li>
  </RDF:Seq>
</RDF:RDF>
Note du Traducteur : 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écris, un pour chaque animal. Chaque balise RDF:Description décrit un seul enregistrement. A l'intérieur de chaque enregistrement, trois champs sont décrit, nom, espece et classe. Il n'est pas nécessaire pour tous les enregistrements d'avoir les mêmes champs mais cela donne plus de sens.

A chacun des trois champs a été donné un espace de nommage appelé ANIMAUX, dont l'URL a été déclaré dans la balise RDF. Le nom a été sélectionné car cela a du sens dans ce cas, mais nous aurions pu choisir quelque chose d'autre. La fonctionnalité d'espace de nommage est utile car le champ classe (NdT : traduction de class, dans la version originale) 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. A la place de l'élément Seq, vous pouvez aussi utiliser Bag pour indiquer des données désordonnées, et Alt pour indiquer des données où chaque enregistrement spécifie des valeurs alternatives (tel que des URLs mirroirs).

Les ressources peuvent faire réference à l'intérieur d'un fichier XUL en combinant l'URL de l'espace de nommage suivit du nom du champ. Dans l'exemple ci-dessus, ont peut générer les URIs suivants qui peuvent être utilisés pour référer aux champs spécifiques :

Nomhttp://www.un-zoo-factice.com/rdf#nom
Espècehttp://www.un-zoo-factice.com/rdf#espece
Classehttp://www.un-zoo-factice.com/rdf#classe

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