GRDDL

Extraire des informations d'un document pour générer du RDF

GRDDL est un mécanisme destiné à glaner des descriptions de ressources dans les dialectes des langages. Cette spécification GRDDL introduit un balisage, fondé sur les standards existants, afin de déclarer qu'un document XML contient des données compatibles avec le cadre de descriptions de ressources (RDF) et afin d'associer des algorithmes, typiquement dans une représentation XSLT, pour en extraire les données.

Le balisage inclut un attribut qualifié par un espace de noms pour les documents XML d'utilisation générale et un lien d'association qualifié par un profil pour les documents XHTML. Le mécanisme GRDDL permet également de déclarer dans un document d'espace de noms XML (ou un document de profil XHTML) que chaque document associé à cet espace de noms (ou profil) contient des données à glaner, et d'associer un algorithme pour recueillir les données.

Remarque

Bien que les recommandations initiales proposent d'extraire les dialectes pour générer du RDF, il est tout à fait possible de générer un autre langage…

Principe

Les transformations d'extractions sont écrites en XSLT 1.0, même si d'autres langages sont possibles.

Le méchanisme s'effectue en 2 temps :

  1. Insertion des transformations à appliquer dans le document de données (source).

  2. Exécuter les transformations sur le document source afin de produire la (les) document(s) cible.

Mise en oeuvre

Ajout des transformations au document source

Ajouter du GRDDL à du XML bien formé

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:grddl="http://www.w3.org/2003/g/data-view#"
grddl:transformation="transform1.xsl
http://lien/vers/transform2.xsl"
>
<head>
<title>Mon titre</title>
[...]
</html>

grddl:transformation contient la liste des transformations à appliquer, séparées par un espace.

Utiliser GRDDL avec des documents d'espaces de noms XML

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http:.../Order-1.0"
targetNamespace="http:.../Order-1.0"
version="1.0"
[...]
xmlns:data-view="http://www.w3.org/2003/g/data-view#" data-view:transformation="http://www.w3.org/2003/g/embeddedRDF.xsl">
<xsd:element name="Order" type="OrderType">
<xsd:annotation <xsd:documentation>Cet élément est l'élément racine.</xsd:documentation>
</xsd:annotation>
[...]
<xsd:annotation>
<xsd:appinfo>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://www.w3.org/2003/g/po-ex">
<data-view:namespaceTransformation rdf:resource="grokPO.xsl"/>
</rdf:Description>
</rdf:RDF>
</xsd:appinfo>
</xsd:annotation>
[...]

Utiliser GRDDL du XHTML valide

<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://www.w3.org/2003/g/data-view">
<title>Un document</title>

<link rel="transformation" href="http://lien/vers/transform1.xsl"/>
<link rel="transformation" href="http://lien/vers/transform2.xsl"/>
[...]
<meta name="DC.Subject" content="ADAM; Simple Search; Index+; prototype"/>
[...]
</head>
[...]
</html>

Il faut un balise link rel="transformation" par transformation à appliquer.

Exécution des transformations

Extraction des informations GRDDL

Avant toute chose, il faut pouvoir extraire du document source les instructions relatives aux transformations à exécuter.