• Aucun résultat trouvé

D´efinition des op´erateurs

3.5 XQuery vers TGV

4.1.1 D´efinition des op´erateurs

Les op´erateurs de l’alg`ebre abstraite permettent de d´efinir une ´evaluation d’un en-semble de documents XML `a l’aide d’un groupement de motifs d’arbre. Chaque motif d’arbre poss`ede des caract´eristiques provenant du langage XQuery, certaines de celles-ci peuvent ˆetre traduites par des contraintes ou des hyperliens li´es aux motifs d’arbre. Ainsi, pour l’alg`ebre abstraite, six op´erateurs sont d´efinis pour le traitement d’ensemble de fragments XML. Chaque op´erateur prend en param`etre un groupement de motifs d’arbre tp et s’applique sur un ensemble de fragments XML τ . Le r´esultat d’un op´erateur produit un nouvel ensemble de documents. `A

4.4.1 Alg`ebre Abstraite pour TGV 105

eval{tp1 ∪ tp2}(τ ) = evaltp1(τ ) ∪ evaltp2(τ )

Tab. 4.1 – Distributivit´e de l’op´erateur eval sur des motifs d’arbre disjoints

chaque op´erateur est associ´e en indice son param`etre (noms de variable des motifs d’arbre) et entre parenth`eses l’ensemble de fragments XML τ : ftp(τ ).

Nous pouvons d´efinir l’´evaluation d’un TGV `a l’aide des op´erateurs suivants : – eval : Op´erateur d’´evaluation d’un ensemble de documents XML grˆace `a un

groupement de motifs d’arbre en param`etre, elle est d´ecomposable et distributive ; – σ : Op´erateur de restriction de l’ensemble de document XML. La restriction s´electionne les documents satisfaisant un ensemble de contraintes li´es `a un motif d’arbre r´esultat ;

– π : Op´erateur de projection des valeurs d’un document XML, les valeurs sont choisies grˆace aux hyperliens directionnels donn´es par un RTP ;

– β : Op´erateur de construction d’un document XML. Chaque nœud g´en`ere une balise, les fragments de τ sont utilis´es pour introduire les valeurs dans ce nouveau document XML ;

– α : Op´erateur d’agr´egation sur un ensemble de documents XML τ en utilisant la fonction d’agr´egat contenue dans un motif d’arbre d’agr´egation ;

– φ : Op´erateur de filtrage de documents XML grˆace aux motifs d’arbres. D´efinition 4.1 : Op´erateur evaltp(τ ) → τ

L’op´erateur eval ´evalue un ensemble de fragments XML grˆace aux informa-tion provenant du groupement de motifs d’arbre qui le compose. les motifs d’arbre qu’il contient peuvent ˆetre d´ecompos´es en op´erateurs de l’alg`ebre. La fonction eval est distributive sur les motifs d’arbre et les documents XML.

L’op´eration eval permet d’´evaluer un ensemble de documents XML grˆace `a aux motifs d’arbres donn´es en param`etre ; il produit en r´esultat un nouvel ensemble de document. Chaque ensemble de motifs d’arbre peut ˆetre d´ecompos´e en op´erateur(s) en fonction des propri´et´es des groupements de motifs d’arbre qui le compose. La fonction eval est distributive par rapport `a l’union des motifs d’arbre. La composition de l’op´erateur eval se comporte `a la mani`ere d’une multiplication sur une addition. Ainsi, l’´evaluation de fragments XML par l’union de motifs d’arbres disjoints (aucune op´eration commune entre les deux motifs d’arbre) ´equivaut `a l’union des ´evaluations distinctes de fragments XML par chaque groupement de motif d’arbre (cf tableau 4.1).

D´efinition 4.2 : Op´erateur σrtp(τ ) → τ

L’op´erateur σ restreint un ensemble de fragments τ `a l’aide de contraintes. Les contraintes proviennent des hyperliens de contraintes reli´ees au motif d’arbre r´esultat rtp. τ ne contient que les arbres de τ v´erifiant cette composition de contraintes.

L’op´erateur σ permet de restreindre l’ensemble de document τ `a l’aide des contraintes associ´ees au motif d’arbre r´esultat rtp par l’interm´ediaire des hyperliens de contraintes (par h´eritage, un motif d’arbre d’agr´egation atp poss`ede des hyperliens de contraintes). Si la liste des contraintes reli´ee par les op´erateurs bool´eens est v´erifi´ee pour un arbre tǫτ , alors t est ajout´e `a τ.

D´efinition 4.3 : Op´erateur πrtp(τ ) → τ

L’op´erateur π projette les valeurs de τ grˆace aux hyperliens directionnels li´es `a rtp. τ contient un ensemble de groupes d’´el´ements projet´es, dont la racine est le nom de variable de rtp.

L’op´erateur π permet de projeter des fragments de τ , `a l’aide des hyperliens direc-tionnels reli´es aux ´el´ements du motif d’arbre de rtp. Ainsi, un hyperlien directionnel projette les valeurs de τ dans un document XML dont la racine est le nom de variable de rtp. Lorsqu’un hyperlien directionnel est optionnel, un ´el´ement vide est produit dans le cas o`u la valeur requise n’apparaˆıt pas dans τ .

D´efinition 4.4 : Op´erateur βrtp(τ ) → τ

L’op´erateur β construit des documents XML grˆace au motif d’arbre contenu dans rtp. Pour chaque fragment XML de τ , les nœuds du motif d’arbre pro-duisent la structure du document XML. Les nœuds li´es aux hyperliens di-rectionnels prennent les valeurs correspondantes de τ pour les associer au nouveau document XML.

L’op´erateur β permet de construire un nouveau document XML pour chaque frag-ment XML de τ . Chaque nœud du motif d’arbre rtp produit un ´el´efrag-ment du nouveau document XML, l’arborescence du motif d’arbre produit la structure du document. Si un nœud est reli´e `a un hyperlien directionnel, il prend alors la valeur correspon-dante de τ et la rattache au document XML. Les nœuds dont le lien (NodeLink ) est optionnel produisent un ´el´ement textuel. La racine de chaque document XML a pour nom la variable de rtp.

4.4.1 Alg`ebre Abstraite pour TGV 107 D´efinition 4.5 : Op´erateur αatp(τ ) → τ

L’op´erateur α applique une fonction d’agr´egation sur l’ensemble τ . La fonc-tion d’agr´egafonc-tion provient de la contrainte associ´e au motif d’arbre d’agr´ega-tion atp. chaque fragment g´en´er´e est associ´e `a la variable de atp.

L’op´erateur α permet d’agr´eger des fragments de τ `a partir de la fonction d’agr´egat de atp. τ est l’association de τ et du r´esultat de l’op´erateur α associ´e `a la variable de d´efinition de atp (un agr´egat est un let, il cr´e´e un nouvel ensemble, sans suppri-mer l’ancien). Dans le cas d’une requˆete imbriqu´ee, la fonction d’agr´egat groupe les valeurs requises par les contraintes li´ees au motif d’arbre (σ).

D´efinition 4.6 : Op´erateur φtp(τ ) → τ

L’op´erateur φ filtre les fragments de τ grˆace au motif d’arbre tp. Chaque fragment de τ contenant le motif obligatoire de tp est ajout´e `a τ associ´e au nom de variable de tp. Les fragments de τ contiennent les ´el´ements requis par le motif d’arbre, qu’ils soient obligatoires ou optionnels (s’ils sont pr´esents).

L’op´erateur φ permet de filtrer l’ensemble de document τ grˆace au motif d’arbre de tp. Tout fragment τ ne contenant pas le motif obligatoire n’est pas ajout´e `a τ. Les fragments de τ contiennent le motif d’arbre requis, ainsi que les balises optionnelles si celles-ci sont pr´esentes. La racine de chaque fragment est donn´e par le nom de variable de tp.

Les op´erateurs de l’alg`ebre abstraite que nous venons de d´etailler d´efinissent l’´eva-luation de motifs d’arbre sur un ensemble de documents XML. Chaque op´erateur prend les caract´eristiques de ces motifs d’arbre pour manipuler les fragments de document XML. Les motifs d’arbre proviennent d’un TGV d´ecompos´e. Les r`egles de d´ecomposition de l’op´erateur eval propos´e dans la section 4.1.2 g´en`ere un arbre alg´ebrique `a partir des motifs d’arbre composant un TGV.