• Aucun résultat trouvé

Pouvoir d'expression de la vue lausale pour le ontrle d'aès

Chapitre 3. Évaluation de requêtes et ontrle d'aès

3.7. Pouvoir d'expression de la vue lausale pour le ontrle d'aès

Pournirehapitre,onmontreommentenoder,enutilisantnotrevuelausale,

deux méthodes souvent utilisées pour traiter le problème du ontrle d'aès aux

doumentsXML.

I.) Pour ouvrir les approhes basées sur l'attribution des lefs aux n÷uds et/ou

leurs attributs, (voir par exemple [2℄ et[66 ℄), on dénit la notion de lef

K

surun

doument

t

,ommeunefontion(partielle)

K : N odes t ∪Att → 2 U ser

,telleque

K(x)

soitunensemblenid'utilisateurs. Voiileslausesenodantl'attribution deslefs:

Soit

u

unn÷udde

t

. Si

K(u)

neontientpasd'identiateur

B

,alorsl'utilisateur

B

ne peut aéderau n÷ud

u

,nià auun de sesdesendants

v

:

← U ser(B), u. ∗ [B 6∈ K(u)]

,

← U ser(B), v. ∗ [B 6∈ K(u), u.∗

desendant

v.∗]

.

Soit

att

unattributassoiéaun÷ud

u

. Si

K (att)

neontient pasd'identiateur

B

,alors l'utilisateur

B

n'a pasle droitd'aéder àla valeur d'attribut

att

:

← U ser(B), u.att [B 6∈ K(att)]

,

Supposons que l'utilisateur

B

évalue une requête

Q

sur un doument

t

assujetti à

une politique du ontrle d'aès

P

stipulant que

B 6∈ K(u)

. Sile run du système

S Q

atteintlen÷ud

u

,onajouteà

Hist B

leslauses

U ser(B) ←

,et

u.∗ ←

. Ensuite,

on ajoutera à

Hist B

les lauses

v.∗ ←

,et

[u.∗

desendant

v.∗] ←

, pour tout n÷ud

v

desendant de

u

,quiseront atteintsen desendant endessousde

u

.

II.)Pour enoder, à l'aide des lauses, la méthode présentée dans [71℄ (esquissée à

lapage 9 du présent rapport), onintroduitune fontion

Acc : N odes t → {−r, −R}

,

qui marquedesn÷uds qui sont interdits d'aès. Par suite, l'approhe du[71 ℄ peut

être enodée par leslauses suivantes:

interdition pour tout utilisateurd'aéder aun÷ud

u

et tous sesattributs

← U ser(∗), u. ∗ [Acc(u) = −r]

;

interdition pour tout utilisateur d'aéder au n÷ud

u

et ses desendants ainsi

queleurs attributs

← U ser(∗), u. ∗ [Acc(u) = −R]

,

← U ser(∗), v. ∗ [Acc(u) = −R, u.∗

hild

v.∗]

.

Requêtes sur douments ompressés

Dans e hapitre nous présentons une approhe qui permet d'évaluer les requêtes

positivesdeCoreXPath,surlesdoumentsompressésdetypeXML,sansnéessiterune

déompressionpréalable. Ellereposesurseptautomatesdemots,quiorrespondent aux

septaxesdebasedeCoreXPath. Enutilisantetteapprohe,onpeutévaluerlesrequêtes

diretement sur les douments partiellement ou totalement ompressés. La omplexité

d'unetelleévaluationestlinéaireparrapportàlatailledelarequêteetlenombred'arêtes

dudoument. Ce hapitreest struturé omme suit : Nous ommençonspar introduire

la notion de trdag (Setion 4.1), et elle de grammaire normalisée (Setion 4.2), qui

nous serviront pour modéliser les douments XML ompressés. Dans les Setions 4.3

et 4.4 nous onstruisons nos sept automates, et présentons notre approhe pour les

requêtes dites de base. Les résultats sur la omplexité de notre méthode se trouvent

danslaSetion4.5. LaSetion4.6estonsaréeàl'évaluationdesrequêtesomposées:

onjontives,disjontiveset imbriquées. Finalement,danslaSetion4.7,nous adaptons

notreapprohe, pourpouvoir déduire, àpartirde laREPONSEàunerequêtedonnée

Q

surundoumentompressé

t

,laREPONSEà

Q

surl'arbre

b t

équivalentà

t

. Notonsque

laméthode présentéeii aété publiéedans[30 ℄.

4.1. Représentation ompressée de douments arboresents

LesvolumesdedonnéesreprésentéespardesdoumentsXMLsontengénéraltrès

importants. Par onséquent,les arbresXMLpeuventouperbeauoupd'espaede

mémoire. Deplus, lareprésentation arboresenten'est paslaplusoptimale,ar sur

un arbre la même information peut être représentée plusieurs fois par exemple,

lapremière,deuxièmeetquatrièmefeuillede l'arbredelaFigure4.1représentent la

même information

a

. De nombreusesreherhessur une présentation plus éonome des douments XML ont été menées durant la dernière déennie. Diérentes

mé-thodesdeompressiond'arbresXMLontétédéveloppées(voirlaSetion 1.3). Dans

etravailonutiliseralesgraphesorientéssansylesdags(del'anglaisdiretedayli

graphs) pour représenter des douments XML. Notons qu'une telle vision permet

d'obtenir un gain exponentiel d'espae de stokage d'un doument, par rapport à

l'espae néessaire pour stoker le même doument sous forme arboresente. On

introduit maintenant lanotion de trdag grapheà l'aideduquel on modélisera un

doument XML ompressé ounon ompressé.

Dénition 4.1. Soit un alphabet de symboles

Σ

. Un trdag sur

Σ

est un ouple

t = ((N odes t , Edges t ), name t )

,

(N odes t , Edges t )

est un dag, ayant un seul

n÷ud raine noté

root t

, les arêtes sortant du même n÷ud sont ordonnées, et

name t : N odes t → Σ

est une fontion, assignant à haque n÷ud

v

de

t

un nom

name t (v) ∈ Σ

.

Remarquons que tout arbre ordonné, étiqueté par des symboles d'un alphabet

Σ

,

est un trdag sur

Σ

, mais la réiproque est fausse. La Figure 4.1 représente trois

trdags sur

Σ = {a, b, f }

, dont seulement lepremier à gauhe est un arbre. Notons

compressé

f

a b

a a

f

a b

f

a b a

arbre partiellement

compressé totalement

Figure4.1. Exemplesdetrdags

aussi, que dans le as où

t

n'est pas un arbre, deux diérents enfants d'un n÷ud

peuventêtrereprésentés parunseul n÷uddu

t

. Parexemple,surletrdagaumilieu

delaFigure4.1, lepremier,deuxièmeainsiquelequatrièmeenfantdelaraine sont

représentésparlemêmen÷udayant lenom

a

. Unn÷uddonnéd'untrdagpeutalors

représenter son propre frère,ou avoirplus qu'un père.

Soit

t

untrdagdonné. Pour haquen÷ud

v

de

t

,ondénitd'unefaçonréursive

l'ensembledespositions représentées par

v

sur

t

,noté

pos t (v)

:

si

v = root t

,alors

pos t (v) = {ε}

,

si

v 6= root t

, alors

pos t (v) = {α.i | α ∈ pos t (w),

w ∈ P arents t (v)

et

γ(w) = (u 1 , . . . , u i−1 , v, u i+1 , . . . , u n )}

.

Ondénit ensuitel'ensembledespositions dutrdag

t

,noté

P os t

,par :

P os t = [

v∈N odes t

pos t (v).

La fontion

name t

peut être naturellement étendue à l'ensemble

P os t

; il sut de

poser:

name t (α) = name t (v),

pour tout

α ∈ pos t (v).

Notons que, si

t

est un arbre, les ensembles

N odes t

et

P os t

sont en une bijetion

naturelle,etpeuvent êtreonfondus.

Soituntrdag

t

surunalphabet

Σ

. Onappellearbre équivalent à

t

,unarbresur

Σ

(uniqueàisomorphisme près),noté

b t

,quipeutêtre onstruitd'une façonanonique

(voir[35℄), enposant :

N odes b t = P os t ,

(

b t

)

Edges b t = {(α, α.i) | α, α.i ∈ P os t },

name b t (α) = name t (α).

Ondiraalors que

t

estune ompression de

b t

. Onappelle surjetion deompression,

lasurjetion

c : N odes b t → N odes t

,dénie par :

c (α) = v,

sietseulement si

α ∈ pos t (v).

Par

t| v

on désignera le soustrdag de

t

, rainé en

v

. On dira qu'un trdag

t

est

totalement ompressé, si et seulement si, pour toute paire

v, u

de n÷uds de

t

: si

v 6= u

,alors les arbres

c t| v

et

t| c u

(équivalents aux soustrdags

t| v

et

t| u

) nesont pas

isomorphes. Tout trdag qui n'est pas totalement ompressé sera dit partiellement

ompressé. Sur la Figure 4.1 on présente un trdag totalement ompressé (elui au

milieu), etdeuxtrdags partiellement ompressés(à gauhe età droite).

Commedansleasd'unereprésentationarboresente,ononfondraundoument

XML donné ave le trdagquile représente.

4.2. Trdag vu omme grammaire

On onstruit maintenant une grammaire assoiée à un trdag

t

. On utilisera

ensuitelegraphededépendanedeettegrammairepourévaluerdesrequêtesXPath

surle doument

t

.

Dénition 4.2. Soitun trdag

t

donnée. On appellegrammaire normalisée assoiée

à

t

,unegrammairerégulière d'arbres,notée

L t

,quisatisfaitlesonditionssuivantes:

1.

L t

n'aepte que

t

,

2. lenombre denonterminaux de

L t

est égal au nombre de n÷uds du

t

,

3. pour haque nonterminal

A i

, il existe exatement une prodution de la forme

A i → σ(A j 1 , . . . , A j k )

, telle que pour tout

r ∈ {1, . . . , k}

, on a

i < j r

; on note

alors

Sons(A i ) = {A j 1 , . . . , A j k }

, et

symb L t (A i ) = σ

.

Bien évidemment, une telle grammaire peut être produite en temps linéaire par

rapport à la taille (nombre d'arêtes) du trdag orrespondant, et elle est unique au

renommage des nonterminaux près. La Figure 4.2 présente un trdag

t

et la

gram-maire normalisée

L t

assoiée. Les onditions

2

et

3

de laDénition 4.2 impliquent,

b

:

c

b a

t f L t :

A 1 → f (A 2 , A 3 , A 4 , A 5 , A 2 ), A 2 → c,

A 3 → a(A 5 ), A 4 → b, A 5 → b

Figure 4.2. Un trdag

t

etsa grammairenormalisée

L t

enpartiulier, quel'ensembledesn÷udsde

t

etl'ensembledesnonterminauxde

L t

sont en bijetion préservant les symboles. Onremarque que la grammaire

normal-iséede

t

estunegrammairestraightline,danslesensdénidans[17 ℄,.àd.,haque nonterminal produitexatement un soustrdag de

t

,etil n ya pasde yles dans

larelation dedépendane entre lesnonterminaux de

L t

.

Soituntrdag

t

,etsagrammairenormalisée

L t

. Notonspar

n

lenombreden÷uds

de

t

. Onappelle graphe dedépendane de

L t

,ungraphe

omposéde

n

n÷uds quiportent les nomsdesnonterminaux

A 1 , . . . , A n

de

L t

,

ontenant une arête orientée du n÷ud

A i

vers le n÷ud

A j

, si et seulement si

A j ∈ Sons(A i )

.

On étend e graphe en ajoutant une raine supplémentaire (père de n÷ud nommé

A 1

), qui portele nom

A 0

;e n÷udsupplémentaire représentera la raine tive du

doument XML modélisé par

t

. A haque n÷ud

v

du graphe de dépendanede

L t

ainsiétendu, on ajouteunlabel

label(v)

déniommesuit :

label(v) =

( (Root, −),

si

name(v) = A 0

(symb L t (A i ), −),

si

name(v) = A i

et

i ∈ {1, . . . , n } .

(Notonsquelelabel

label(v)

utilisédanse travail étendlanotiondelabellassique

de XML :sapremière omposante estle nomd'élément représentépar

v

don le

label au sens de XML , et sa deuxième omposante (qui pourra être

1

,

0

, ou

)

nousindiqueralerledun÷ud

v

par rapportàlarequêteévaluée,f. lasémantique

dans la setion suivante.) Le graphe labelé ainsiobtenu, noté

D t

, sera appelé rlag

dedépendane de

L t

(rlagétant uneabréviation derooted labeled ayligraph). Le rlagdedépendane

D t

neontientjamaisdeuxarêtesparallèles. Deplus,l'ensemble de n÷uds de

D t

, qui portent les noms

A 1 , . . . , A n

, est en bijetion ave l'ensemble

de n÷uds de

t

; on identiera souvent don un n÷ud de

t

ave son image sur

D t

.

Le deuxième graphe sur la Figure 4.3 est le rlag de dépendane de la grammaire

normalisée dutrdag

t

représenté à gauhe.

A

Figure4.3. trdag

t

,rlag

D t

et l'ensembledeshaînonsorrespondants

Soit

t

untrdagdonné,

L t

sagrammairenormalisée,et

D t

legraphededépendane

orrespondant. Remarquons que le rlag

D t

est susant pour enoder des relations

vertiales(pèrels)représentéespar

t

. Néanmoins,fauted'arêtesparallèles,en'est

pasune manièreappropriée pour représenter lesrelations horizontales(entre frères)

du

t

. Pour es dernières, on utilisera une autre famille de graphes, dont voii la

onstrution :

Pourhaqueprodution

A i → σ(A j 1 , . . . , A j k )

de

L t

,ononstruitungraphelinéaire

ontenant

j k

n÷uds nomméspar

A j 1 , . . . , A j k

,telque:

pour tout

l ∈ {1, . . . , k − 1}

, le n÷ud portant le nom

A j l

soit le père du n÷ud

portant le nom

A j l+1

.

On omplète e graphe en ajoutant un n÷ud raine (tive) portant le nom

A 0 i

.

Ensuite, à haque n÷ud

v

d'un tel graphe étendu, on dénit un label de la façon

suivante :

label(v) =

( (Root i , −),

si

name(v) = A 0 i

(symb L t (A j l ), −),

si

name(v) = A j l .

Le graphe ainsi obtenu sera appelé

i

ème haînon de

L t

, et sera noté

F i

. On

notera par

F 0

le graphe omposée de deux n÷uds : la raine portant le nom

A 0 0

et le label

label(v) = (Root 0 , −)

, et son unique ls portant le nom

A 1

et le label

(symb L t (A 1 ), −)

. A droite de la Figure 4.3 on représente les haînons

F 0

,

F 1

et

F 3

, orrespondants aux produtions de la grammaire normalisée

L t

donnée sur la

Figure4.2.

Soit un doument

t

(ompressé ou non), et une requête

Q

. Pour trouver la

REPONSE à

Q

sur

t

, on utilisera les runs des automates de mots onstruits

dans la suite de e hapitre sur le rlag

D t

et sur les haînons de la grammaire

L t

assoiée. L'absene d'arêtes parallèles sur le rlag

D t

implique que e dernier

fournit une représentation très onise du doument

t

(souvent plus onise que

t

luimême). C'estavantageuxpourlaomplexitédenotreapprohed'évaluation,qui

est (voir laSetion 4.5) linéaire par rapportà lataille du graphesur lequelourent

nosautomates. Notons aussique l'approhe présentéedansles Setions4.34.6 sert

à trouver tous les n÷uds qui répondent à la requête

Q

sur

t

. Dans la Setion 4.7,

on adaptera ette méthode pour déduire quels sont les n÷uds qui répondent à la

requête

Q

surlareprésentation arboresente de

t

.

4.3. Évaluation de requêtes à l'aide des automates de mots

L'approhe que l'on présente dans e hapitre, pour évaluer des requêtes

posi-tives de Core XPath sur les douments ompressés, est appropriée aux douments

représentés sous une forme totalement ou partiellement ompressée, ou sous une

forme déployée arboresente. Elle ouvre es requêtes en forme standardisée

Q std

(voirlaSetion 2.4) quel'on peutgénérer à l'aidede lagrammairesuivante:

S std : Root |

A::

x | S std and S std | S std or S std E std :

A::

[

S std

|

A::

[

E std

Q std :

//

∗ |

//

[

S std

|

//

[

E std

℄.

Toutes les requêtes onsidérées dans e hapitre seront de e type. Notons que

notre approhe peutêtre naturellement étendue à toutes les requêtes standardisées

généréesàpartir delagrammairedonnéedanslaTable2.3,même ellesdelaforme

//

[

Y std conn Y std

℄. Laméthodeprésentéeiiestbaséesurseptautomatesdemots

A Q

,orrespondant auxseptrequêtes,appeléesrequêtes debase,quisontdelaforme

Q =

//

[axis::

σ

℄,axisestunaxedebasedeCoreXPath. Soientundoument

t

,et une requête de base

Q =

//

[axis::

σ

℄. Pour évaluer

Q

sur

t

, on utilisera le

run topdownde l'automate

A Q

:

siaxisestunaxevertial,alors l'automate

A Q

ourrasurlerlagde dépendane

D t

dénidanslasetion préédente,

siaxisest unaxehorizontal, alors l'automate

A Q

ourrasur l'ensemble detous

leshaînons de lagrammaire

L t

assoiéeà

t

.

Notons que

A Q

est nondéterministe (plusieurs runs possibles sur le même rlag), maisgrâe à une stratégie dite de priorité maximale, on dénira e qu'on appellera

runde prioritémaximale (voirlaDénition4.4) quiseraunique etserviraàévaluer

larequête

Q

sur

t

.

Formalisonsmaintenantlesidéesprésentéesplushaut. Soitunalphabet

Σ

. On

in-troduitquatresymboles

s, η, ⊤, ⊤

quin'appartiennentpasà

Σ

. Onappellerallpaire

toutouple appartenant à l'ensemble

{(s, 1), (η, 1), (η, 0), (⊤ , 1), (⊤, 1), (⊤, 0)}

. Ces

ouples onstituerons par lasuite lesétats de nosautomates. Considérons untrdag

t

sur

Σ

. Dans lasuite dee hapitre, onnotera par

G t

:

lerlag

D t

,si axisastun axevertial,

touthaînon

F

de

L t

,siaxis estun axehorizontal.

On dénit lafontion

llab : N odes G t → Σ ∪ {s, η}

,omme la projetion de

label(v)

sursapremière omposante :

llab(v) = π 1 (label(v)),

pour tout

v ∈ N odes G t .

Ainsi lelabel au n÷ud

v

est une paire ordonnée, notée

label(v)

, etle llab au n÷ud

v

estlapremière omposante de ettepaire. Pendant l'évaluationdesrequêtes

om-posées(Setion4.6),leslabelsvont évoluer,etles n÷udsdurlag

D t

serontrelabelés

par des llpaires (parfois plusieurs fois) avant d'obtenir la REPONSE à la requête

onsidérée. Le label

label(v)

nous informera onformément à la sémantique de laTable4.1 surle rle du n÷ud

v

par rapportà lapartie de larequêteque l'on

vient d'évaluer : n÷ud séletionnéou non (premièreomposante), ayant ounon un

desendant séletionné(deuxièmeomposante).

L'automate

A Q

qui permetd'évaluer la requête de base

Q =

//

[axis::

σ

℄,

σ ∈ Σ ∪ {∗}

,est dénit ommeunuplet

A Q = (Σ ∪ {s, η}, States Q , {init}, ∆ Q ),

States Q ⊆ {init} ∪ {(s, 1), (η, 1), (η, 0), (⊤ , 1), (⊤, 1), (⊤, 0)}

est l'ensemble des

états,

init

estleseul étatinitial, et

∆ Q

estl'ensemble destransitionsde laforme

(q, τ ) → q ,

q, q ∈ States Q

, et

τ ∈ Σ ∪ {∗, s, η}

. La omposition des ensembles

States Q

et

Q

varie suivant l'axe axis utilisé par la requête

Q =

//

[axis::

σ

℄. Les sept

automates

A Q

, orrespondant aux sept requêtes de base

Q =

//

[axis::

σ

sont

représentés sur les Figures 4.4, 4.64.11. La onstrution des automates

A Q

obéit

auxrègles généralessuivantes:

Remarque 4.1. Pour toutes les transitions

(q, τ ) → q

del'automate

A Q

, on a :

(i)

si

τ = σ

, alors

q ∈ {(⊤ , 1), (⊤, 1), (⊤, 0)}

,

(ii)

si

τ 6= σ

, alors

q ∈ {(s, 1), (η, 1), (η, 0)}

,

(iii)

toute transition allant d'unellpaire ave la deuxièmeomposante

0

, vavers

une llpaire ave la deuxième omposante

0

.

Soient une requête de base

Q =

//

[axis::

σ

℄, l'automate

A Q

orrespondant, undoument

t

,etle rlag

G t

. Voii omment ondénit lerun de

A Q

sur

G t

.

Dénition 4.3. Le run de l'automate

A Q

sur

G t

est une fontion

r : N odes G t → States Q

,dénie réursivement omme suit: pour tout

v ∈ N odes G t

si

llab(v) = Root

,ou

llab(v) = Root i

, alors

r(v) = init

,

si

v

n'est pas la raine de

G t

, alors

r(v)

est une llpaire, telle que pour tout

w ∈ P arents(v)

, la transition

(r(w), llab(v)) → r(v)

soit dans

∆ Q

.

Lerun

r

del'automate

A Q

sur

G t

estainsiunefontiononstruitedefaçonréursive,

topdown(suivanttouslesheminsrainefeuillede

G t

). Elleassignel'étatinitialàla

rainede

G t

,etensuiteunellpaire

r(v)

àhaquen÷ud

v

de

G t

progressivement. Soit

v

un n÷udde

G t

. La deuxième onditionde ladénition impose, que pour pouvoir

dénir la valeur

r(v)

, il faut d'abord onnaître les valeurs

r(w)

,pour haque n÷ud

w

pèrede

v

. De plus, l'état

r(v)

doitêtre onforme (parrapportauxtransitions de

∆ Q

) ave tous les états

r(w)

, pour tout n÷ud

w

père de

v

. La Remarque 4.1et la

Dénition4.3impliquentquel'état

r(v)

esttoujoursdéterminé par

llab(v)

,.àd.,:

• r(v) = init

,si

llab(v) = Root

,

• r(v) ∈ {(⊤, 0), (⊤, 1), (⊤ , 1)}

,si

llab(v) = σ

,

• r(v) ∈ {(η, 0), (η, 1), (s, 1)}

, si

llab(v) 6= σ

.

Pour simplier la notation, on pose

η := s

, et on utilisera souvent la notation

{(l, 0), (l, 1), (l , 1)}

,ou

l ∈ {η, ⊤}

,pourdésignerlegroupe desllpairesenquestion.

Soit une requête de base

Q

,et l'automate

A Q

assoié. Comme nous allonsvoir

danslesSetions4.3.1et4.3.2,nosautomatesnesontpasdéterministes,donàpriori

il existe plusieurs runs possibles de

A Q

sur le même rlag

G t

. Pourtant l'automate

A Q

est onstruit pour que sur tout rlag

G t

, il existe un seul run de

A Q

qui permet

d'évaluerla requête

Q

surle doument

t

. Cerun assignera à haquen÷ud

v

de

G t

,

unétatdontlasémantiquenousinformeraquelleestlasigniationde

v

parrapport

àlarequêteonsidérée. Lasémantiquedesétatsdel'automate

A Q

,orrespondantà larequêtedebase

Q =

//

[axis::

σ

℄,estprésentéedanslaTable4.1. Soitunétat

(ℓ, x)

assigné à un n÷ud

v

de

G t

,par lerun de l'automate

A Q

,évaluant larequête

Q

sur

t

. La première omposante

, nous dit si le n÷ud

v

répond (

ℓ ∈ {s, ⊤ }

) ou

non(

ℓ ∈ {η, ⊤}

) àlarequête

Q

. Ladeuxième omposante

x = 1

(resp.

x = 0

),nous

informesilen÷ud

v

possèdeaumoinsun(resp. nepossèdeauun)n÷uddesendant

qui répond à

Q

. Par suite, onformément à la sémantique présentée dans la Table 4.1, les états

(s, 1)

et

(⊤ , 1)

seront appelés séletionnant. Le onept d'utiliser des étatsenformedeouplesesttrèspratique,arilpermetdereprésenterlaREPONSE

à larequête

Q

,d'une façon onise. En eet,pour représenter la partie du rlag

G t

,

quiontienttouteslesréponsesà

Q

,ilsutdegarderseulement esn÷udsauxquels

lerun a assignéunétat dont ladeuxièmeomposanteest

1

(voirl'Exemple 4.4).

nom d'état assignable au n÷ud

v

tel que

(s, 1) llab(v) 6= σ

et

v

est une réponseà

Q (η, 1) llab(v) 6= σ

et

v

n'est pasune réponseà

Q

,

maisilexiste un desendant de

v

répondant à

Q (η, 0) llab(v) 6= σ

et

v

n'est pasune réponseà

Q

,

etauun desendant de

v

n'est pasune réponseà

Q (⊤ , 1) llab(v) = σ

et

v

est une réponseà

Q

(⊤ , 1) llab(v) = σ

et

v

n'est pasune réponseà

Q

,

maisilexiste un desendant de

v

répondant à

Q (⊤, 0) llab(v) = σ

et

v

n'est pasune réponseà

Q

,

etauun desendant de

v

n'est pasune réponseà

Q init llab(v) = Root

ou

llab(v) = Root i

Table4.1. Lasémantiquedesétatsdel'automate

A Q

orrespondantà

Q =

//

[axis::

σ

Surl'ensemble desllpaires,on introduit unordre partiel, ditordre depriorité :

(η, 0) > (η, 1) > (s, 1)

et

(⊤, 0) > (⊤, 1) > (⊤ , 1).

L'unique run de

A Q

évaluant la requête

Q

, sera appelé run de priorité maximale.

Pouronstruireerun,onutiliseequ'onappelleunestratégiedeprioritémaximale,

quiexigequelerun

r

del'automate

A Q

surlerlag

G t

doiveêtreune fontiontotale,

etpourtoutn÷ud

v

de

G t

,lallpaire

r(v)

doiveêtrelaplusprioritairepossibleparmi toutes les llpairesqui peuvent être assignéesà

v

en utilisant lestransitions de

A Q

.

Cettestratégieexpliquelehoixde prioritéentrelesllpaires: onpose

(l, 0) > (l, 1)

pour nepas assigner

(l, 1)

à un n÷udqui ommeneune branhe ou il n'ya pasde

n÷uds répondant à

Q

, et

(l, 1) > (l , 1)

pour ne passéletionner des n÷uds qui ne répondent pasà

Q

. Voii ladénitionformelle du run depriorité maximale.

Dénition 4.4. (MP) Soientunerequête debase

Q

,l'automate

A Q

orrespondant, un doument

t

, et son rlag

G t

assoié. Une appliation

r : N odes G t → States Q

est

appelée runde priorité maximale de

A Q

sur

G t

siet seulement si, pour toutn÷ud

v

de

G t

,ellesatisfait les onditions suivantes :

• r(v)

est déni (

r

est totale),

• r(v)

est déterminé par

llab(v)

,

pour haque n÷ud

w

parent de

v

, l'automate

A Q

ontient la transition de la

forme

(r(w), llab(v)) → r(v)

,

• r(v)

est la llpaire maximale par rapport à l'ordre de priorité, qui satisfait les

onditions préédentes.

Remarquons que la deuxième et la troisième ondition de la dénition idessus,

impliquent que le run de priorité maximale de

A Q

sur

G t

est bien un run au sens

de la dénition 4.3. La quatrième ondition de la Dénition 4.4 garantit que le

run de priorité maximale de

A Q

sur

G t

est unique. Grâe à ette uniité, on dira

que l'automate

A Q

est nonambigu, et par la suite on ne sera intéressé que par

le run de priorité maximale. Sans mention ontraire, le mot run désignera le run

de priorité maximale. On prouve dans la Proposition 4.1, que le run de priorité

maximale de

A Q

sur

G t

, est le seul run qui permette d'évaluer la requête

Q

sur le

doument

t

. Dans la Setion 4.5 on donne un algorithme qui onstruit le run de

priorité maximalede l'automate

A Q

,surunrlagdonné

G t

. Onymontreégalement,

qu'une telleonstrution est linéaire par rapportaunombred'arêtesde

G t

.

4.3.1. Requêtes utilisant les axes vertiaux

Dansette setionon présente les automates

A Q

orrespondant auxrequêtes de base

Q =

//

[axis::

σ

℄,axisestself, hild,parent,desendant,anestor.

Automate pour

Q =

//

[self::

σ

La Figure 4.4 présente l'automate

A Q

, permettant d'évaluer la requête de base

Q =

//

[self::

σ

℄. Cet automaten'aquequatreétats :

init, (η, 0), (η, 1)

et

(⊤ , 1)

.

σ init

η , 1

T , 1

= σ γ

= σ γ

= σ γ

= σ

= σ γ γ

= σ γ

= σ γ

η , 0

σ σ

Figure 4.4. Automate

A Q

,

Q =

//

[self::

σ

Ce sont les seules llpaires onformesave la sémantiquedonnée dansla Table 4.1.

Ce sont les seules llpaires onformesave la sémantiquedonnée dansla Table 4.1.

Documents relatifs