• Aucun résultat trouvé

De la requête à l’arbre d’exploration : le générateur de génotype

4.2 Module de structuration de l’information

4.2.5 De la requête à l’arbre d’exploration : le générateur de génotype

Le composant de génération de génotype permet d’appliquer un génome à un ensemble de don- nées afin de produire un génotype. La transformation permettant d’obtenir un génotype à partir d’un génome est la suivante :

– l’élément racineGenome est transformé en un élément Genotype ;

– les niveaux d’explorations et les labels sont conservés tels quels, et dupliqués au besoin ; – les éléments génériques sont dupliqués pour chaque élément de l’ensemble de donnée corres-

pondant à leur niveau d’exploration respectif ;

– les attributs sont initialisés à l’aide d’informations présentes dans l’ensemble de données et des valeurs par défauts de manière à respecter leur typage.

Si le génome décrit la structuration des données de l’interface graphique, il est écrit dans un format générique et ne contient pas les requêtes exactes permettant d’extraire l’information correspondante dans l’ensemble de données. Le composant de génération de génotype (voir figure 4.11) permet donc de transformer le génome en un ensemble de requêtes compatibles avec l’ensemble de données en entrée du système et permettant de produire un génotype. Ces requêtes sont composées de critères de recherche hiérarchiques permettant de décrire les niveaux d’exploration et de sélectionner les élé- ments qu’ils contiennent, ainsi que de critères de représentation permettant de sélectionner les attributs qui seront associés à ces éléments.

Dans la section 2.4, nous présentons un grand nombre de systèmes de gestion d’ensembles de données, chacun possédant son propre langage de requête. Afin d’être compatible avec notre techno- logie, il est donc nécessaire d’implémenter un composant, nommé traducteur, qui produit un génotype conforme à la définition 4.2.2 à partir des requêtes spécifiques au système de gestion de données. Le traducteur permet d’imbriquer un certain nombre d’éléments issus du génome (comme par exemple les opérateursExplo, Elem, . . . ) avec des fonctions issues du langage de requête associé à l’ensemble

4.2. MODULE DE STRUCTURATION DE L’INFORMATION 55

Figure 4.11 – Pipeline de production d’un génotype.

de donnée. Par exemple, si l’ensemble de donnée est sauvegardé en XML, la requête pourra être définie sous forme d’un fichier XQuery mêlant les balises du génome à des fonctions XQuery (voir le programme 4.3 donné en exemple).

Programme 4.3 Extrait de requête XQuery pour la création d’un génotype. Les éléments indiqués en violet sont directement extraits du génome.

<Genotype name="CatalogueVideo">

{

(: base de donnée en entrée du système :)

let $vod := doc($inputDocument)/Catalogue ...

<Explo name="Realisateurs">

{

(: niveau d'exploration 2 : extraction des realisateurs :)

for $r in $vod/Film/Realisateur/Nom order by $r

return

<Elem name="{$r}">

<Att type="color" r="{$r/../Coul/@r} g="{$r/../Coul/@g} b="{$r/../Coul/@b}"/> <Explo name="Films">

... </Explo> </Elem> } </Explo> } </Genotype>

La requête obtenue est appelée requête génomée et correspond à un génome (représentant la struc- ture exploratoire de l’interface graphique 3D) augmenté de fonctions d’extraction définies dans le lan- gage de requête de l’ensemble de données. Ainsi, tous les éléments invariants du génotype sont décrits dans la partie de la requête extraite du génome, tandis que les éléments dépendant de l’ensemble de données sont décrits à l’aide des fonctions du langage de requête.

Dans certains cas, la structuration de l’information peut être définie directement à partir d’une ap- plication de gestion de l’ensemble de données, comme par exemple lors de l’utilisation du protocole Google WebSearch permettant de récupérer le résultat d’une recherche effectuée à l’aide du moteur de recherche de Google sous forme d’un fichier XML. La requête correspondante est alors directement définie dans le langage de requête associé à l’ensemble de données (dans le cas du protocole Google

56 CHAPITRE 4. FORMALISME POUR LA CRÉATION D’INTERFACES GRAPHIQUES 3D

WebSearch, une requête HTML) et ne possède aucun lien avec un génome (voir figure 4.12). Elle contient toutes les informations permettant de sélectionner et de hiérarchiser les données nécessaires à la création du génotype (éléments à représenter, attributs, . . . ), mais le résultat obtenu est sauve- gardé dans un format spécifique à l’application (par exemple, le format spécifique de WebSearch). Dans ce cas, le résultat obtenu peut être transformé en un génotype par un traducteur associé à l’en- semble de données. Par exemple, si le résultat de la requête est exporté en XML, il peut être traduit à l’aide d’une feuille de style XSLT.

Figure 4.12 – Pipeline de production d’un génotype à partir du résultat d’une requête externe au for- malisme.

Lorsque le génotype n’est pas créé à partir d’un génome, la réutilisation de la structuration des don- nées sur un autre ensemble de données n’est pas directement possible. Dans ce cas, le génome peut être extrait du génotype à l’aide d’une feuille de style spécifique. Ce génome pourra alors être appliqué à un ensemble de données différent pour lequel un traducteur de génome en requête génomée est disponible.

Deux solutions permettent donc la création d’un génotype à partir d’un ensemble de données : – l’intégration du génome dans la requête initiale permettant de produire automatiquement un gé-

notype ;

– la définition d’un traducteur permettant de traduire le résultat d’une requête classique en un génotype.

Dans le premier cas, l’utilisation d’un génome pour définir la structuration des données assure la géné- ricité du module de structuration. En effet, ce génome peut être réutilisé sur un ensemble de données différent, que ce soit du point de vue du système de gestion choisi ou du domaine applicatif des don- nées. Dans le deuxième cas, l’extraction automatique du génome à partir du génotype permet de conserver les avantages de la généricité du génome malgré l’utilisation d’un système de gestion de requêtes non directement basé sur notre architecture.

Nous avons implémenté la première solution pour produire directement un génotype à partir du catalogue de vidéos à la demande d’Orange. La requête génomée est crée en XQuery et intègre direc- tement les balises du génome correspondantes. Cette requête XQuery est ensuite appliquée au fichier XML représentant la base de données de vidéos à la demande et permet la production automatique de génotypes à partir de génomes.

Nous avons également implémenté la deuxième solution pour des bases de données crées à partir d’OpenOffice Calc. Une fois les données triées à l’aide de l’interface graphique d’OpenOffice, nous avons effectué un export XML de la feuille de calcul auquel une feuille de style XSLT est appliquée pour produire le génotype correspondant. Dans ce cas, aucun génome n’est préalablement défini.