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
surundoument
t
,ommeunefontion(partielle)K : N odes t ∪Att → 2 U ser
,tellequeK(x)
soitunensemblenid'utilisateurs. Voiileslausesenodantl'attribution deslefs:
•
Soitu
unn÷uddet
. SiK(u)
neontientpasd'identiateurB
,alorsl'utilisateurB
ne peut aéderau n÷udu
,nià auun de sesdesendantsv
:← U ser(B), u. ∗ [B 6∈ K(u)]
,← U ser(B), v. ∗ [B 6∈ K(u), u.∗
desendantv.∗]
.•
Soitatt
unattributassoiéaun÷udu
. SiK (att)
neontient pasd'identiateurB
,alors l'utilisateurB
n'a pasle droitd'aéder àla valeur d'attributatt
:← U ser(B), u.att [B 6∈ K(att)]
,Supposons que l'utilisateur
B
évalue une requêteQ
sur un doumentt
assujetti àune politique du ontrle d'aès
P
stipulant queB 6∈ K(u)
. Sile run du systèmeS Q
atteintlen÷udu
,onajouteàHist B
leslausesU ser(B) ←
,etu.∗ ←
. Ensuite,on ajoutera à
Hist B
les lausesv.∗ ←
,et[u.∗
desendantv.∗] ←
, pour tout n÷udv
desendant deu
,quiseront atteintsen desendant endessousdeu
.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÷udu
et tous sesattributs← U ser(∗), u. ∗ [Acc(u) = −r]
;•
interdition pour tout utilisateur d'aéder au n÷udu
et ses desendants ainsiqueleurs attributs
← U ser(∗), u. ∗ [Acc(u) = −R]
,← U ser(∗), v. ∗ [Acc(u) = −R, u.∗
hildv.∗]
.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'arbreb t
équivalentàt
. Notonsquelamé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érentesmé-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 ouplet = ((N odes t , Edges t ), name t )
, où(N odes t , Edges t )
est un dag, ayant un seuln÷ud raine noté
root t
, où les arêtes sortant du même n÷ud sont ordonnées, etname t : N odes t → Σ
est une fontion, assignant à haque n÷udv
det
un nomname 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 troistrdags sur
Σ = {a, b, f }
, dont seulement lepremier à gauhe est un arbre. Notonscompressé
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÷udpeuventêtrereprésentés parunseul n÷uddu
t
. Parexemple,surletrdagaumilieudelaFigure4.1, lepremier,deuxièmeainsiquelequatrièmeenfantdelaraine sont
représentésparlemêmen÷udayant lenom
a
. Unn÷uddonnéd'untrdagpeutalorsreprésenter son propre frère,ou avoirplus qu'un père.
Soit
t
untrdagdonné. Pour haquen÷udv
det
,ondénitd'unefaçonréursivel'ensembledespositions représentées par
v
surt
,notépos t (v)
:•
siv = root t
,alorspos t (v) = {ε}
,•
siv 6= root t
, alorspos t (v) = {α.i | α ∈ pos t (w),
où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'ensembleP os t
; il sut deposer:
name t (α) = name t (v),
pour toutα ∈ pos t (v).
Notons que, si
t
est un arbre, les ensemblesN odes t
etP os t
sont en une bijetionnaturelle,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 deb 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 det
, rainé env
. On dira qu'un trdagt
esttotalement ompressé, si et seulement si, pour toute paire
v, u
de n÷uds det
: siv 6= u
,alors les arbresc t| v
ett| c u
(équivalents aux soustrdagst| v
ett| u
) nesont pasisomorphes. 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 utiliseraensuitelegraphededé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éeL t
,quisatisfaitlesonditionssuivantes:1.
L t
n'aepte quet
,2. lenombre denonterminaux de
L t
est égal au nombre de n÷uds dut
,3. pour haque nonterminal
A i
, il existe exatement une prodution de la formeA i → σ(A j 1 , . . . , A j k )
, telle que pour toutr ∈ {1, . . . , k}
, on ai < j r
; on notealors
Sons(A i ) = {A j 1 , . . . , A j k }
, etsymb 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 lagram-maire normalisée
L t
assoiée. Les onditions2
et3
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éeL t
enpartiulier, quel'ensembledesn÷udsde
t
etl'ensembledesnonterminauxdeL 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 det
,etil n ya pasde yles danslarelation dedépendane entre lesnonterminaux de
L t
.Soituntrdag
t
,etsagrammairenormaliséeL t
. Notonsparn
lenombreden÷udsde
t
. Onappelle graphe dedépendane deL t
,ungraphe•
omposéden
n÷uds quiportent les nomsdesnonterminauxA 1 , . . . , A n
deL t
,•
ontenant une arête orientée du n÷udA i
vers le n÷udA j
, si et seulement siA j ∈ Sons(A i )
.On étend e graphe en ajoutant une raine supplémentaire (père de n÷ud nommé
A 1
), qui portele nomA 0
;e n÷udsupplémentaire représentera la raine tive dudoument XML modélisé par
t
. A haque n÷udv
du graphe de dépendanedeL t
ainsiétendu, on ajouteunlabel
label(v)
déniommesuit :label(v) =
( (Root, −),
siname(v) = A 0
(symb L t (A i ), −),
siname(v) = A i
eti ∈ {1, . . . , n } .
(Notonsquelelabel
label(v)
utilisédanse travail étendlanotiondelabellassiquede XML :sapremière omposante estle nomd'élément représentépar
v
don lelabel 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émantiquedans la setion suivante.) Le graphe labelé ainsiobtenu, noté
D t
, sera appelé rlagdedépendane de
L t
(rlagétant uneabréviation derooted labeled ayligraph). Le rlagdedépendaneD t
neontientjamaisdeuxarêtesparallèles. Deplus,l'ensemble de n÷uds deD t
, qui portent les nomsA 1 , . . . , A n
, est en bijetion ave l'ensemblede n÷uds de
t
; on identiera souvent don un n÷ud det
ave son image surD 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
,rlagD t
et l'ensembledeshaînonsorrespondantsSoit
t
untrdagdonné,L t
sagrammairenormalisée,etD t
legraphededépendaneorrespondant. Remarquons que le rlag
D t
est susant pour enoder des relationsvertiales(pèrels)représentéespar
t
. Néanmoins,fauted'arêtesparallèles,en'estpasune 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 laonstrution :
Pourhaqueprodution
A i → σ(A j 1 , . . . , A j k )
deL t
,ononstruitungraphelinéaireontenant
j k
n÷uds nommésparA j 1 , . . . , A j k
,telque:•
pour toutl ∈ {1, . . . , k − 1}
, le n÷ud portant le nomA j l
soit le père du n÷udportant 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çonsuivante :
label(v) =
( (Root i , −),
siname(v) = A 0 i
(symb L t (A j l ), −),
siname(v) = A j l .
Le graphe ainsi obtenu sera appelé
i
ème haînon deL t
, et sera notéF i
. Onnotera par
F 0
le graphe omposée de deux n÷uds : la raine portant le nomA 0 0
et le label
label(v) = (Root 0 , −)
, et son unique ls portant le nomA 1
et le label(symb L t (A 1 ), −)
. A droite de la Figure 4.3 on représente les haînonsF 0
,F 1
etF 3
, orrespondants aux produtions de la grammaire normaliséeL t
donnée sur laFigure4.2.
Soit un doument
t
(ompressé ou non), et une requêteQ
. Pour trouver laREPONSE à
Q
surt
, on utilisera les runs des automates de mots onstruitsdans la suite de e hapitre sur le rlag
D t
et sur les haînons de la grammaireL t
assoiée. L'absene d'arêtes parallèles sur le rlagD t
implique que e dernierfournit une représentation très onise du doument
t
(souvent plus onise quet
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
surt
. 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 det
.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éesurseptautomatesdemotsA Q
,orrespondant auxseptrequêtes,appeléesrequêtes debase,quisontdelaformeQ =
//∗
[axis::σ
℄,oùaxisestunaxedebasedeCoreXPath. Soientundoumentt
,et une requête de baseQ =
//∗
[axis::σ
℄. Pour évaluerQ
surt
, on utilisera lerun topdownde l'automate
A Q
:•
siaxisestunaxevertial,alors l'automateA Q
ourrasurlerlagde dépendaneD t
dénidanslasetion préédente,•
siaxisest unaxehorizontal, alors l'automateA Q
ourrasur l'ensemble detousleshaî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 appellerarunde prioritémaximale (voirlaDénition4.4) quiseraunique etserviraàévaluer
larequête
Q
surt
.Formalisonsmaintenantlesidéesprésentéesplushaut. Soitunalphabet
Σ
. Onin-troduitquatresymboles
s, η, ⊤, ⊤ ′
quin'appartiennentpasàΣ
. Onappellerallpairetoutouple appartenant à l'ensemble
{(s, 1), (η, 1), (η, 0), (⊤ ′ , 1), (⊤, 1), (⊤, 0)}
. Cesouples onstituerons par lasuite lesétats de nosautomates. Considérons untrdag
t
surΣ
. Dans lasuite dee hapitre, onnotera parG t
:•
lerlagD t
,si axisastun axevertial,•
touthaînonF
deL t
,siaxis estun axehorizontal.On dénit lafontion
llab : N odes G t → Σ ∪ {s, η}
,omme la projetion delabel(v)
sursapremière omposante :
llab(v) = π 1 (label(v)),
pour toutv ∈ N odes G t .
Ainsi lelabel au n÷ud
v
est une paire ordonnée, notéelabel(v)
, etle llab au n÷udv
estlapremière omposante de ettepaire. Pendant l'évaluationdesrequêtesom-posées(Setion4.6),leslabelsvont évoluer,etles n÷udsdurlag
D t
serontrelabeléspar 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÷udv
par rapportà lapartie de larequêteque l'onvient 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 baseQ =
//∗
[axis::σ
℄, oùσ ∈ Σ ∪ {∗}
,est dénit ommeunupletA Q = (Σ ∪ {s, η}, States Q , {init}, ∆ Q ),
où
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 ′ ,
où
q, q ′ ∈ States Q
, etτ ∈ Σ ∪ {∗, s, η}
. La omposition des ensemblesStates Q
et
∆ Q
varie suivant l'axe axis utilisé par la requêteQ =
//∗
[axis::σ
℄. Les septautomates
A Q
, orrespondant aux sept requêtes de baseQ =
//∗
[axis::σ
℄ sontreprésentés sur les Figures 4.4, 4.64.11. La onstrution des automates
A Q
obéitauxrègles généralessuivantes:
Remarque 4.1. Pour toutes les transitions
(q, τ ) → q ′
del'automateA Q
, on a :(i)
siτ = σ
, alorsq ′ ∈ {(⊤ ′ , 1), (⊤, 1), (⊤, 0)}
,(ii)
siτ 6= σ
, alorsq ′ ∈ {(s, 1), (η, 1), (η, 0)}
,(iii)
toute transition allant d'unellpaire ave la deuxièmeomposante0
, vaversune llpaire ave la deuxième omposante
0
.Soient une requête de base
Q =
//∗
[axis::σ
℄, l'automateA Q
orrespondant, undoumentt
,etle rlagG t
. Voii omment ondénit lerun deA Q
surG t
.Dénition 4.3. Le run de l'automate
A Q
surG t
est une fontionr : N odes G t → States Q
,dénie réursivement omme suit: pour toutv ∈ N odes G t
•
sillab(v) = Root
,oullab(v) = Root i
, alorsr(v) = init
,•
siv
n'est pas la raine deG t
, alorsr(v)
est une llpaire, telle que pour toutw ∈ P arents(v)
, la transition(r(w), llab(v)) → r(v)
soit dans∆ Q
.Lerun
r
del'automateA Q
surG t
estainsiunefontiononstruitedefaçonréursive,topdown(suivanttouslesheminsrainefeuillede
G t
). Elleassignel'étatinitialàlarainede
G t
,etensuiteunellpairer(v)
àhaquen÷udv
deG t
progressivement. Soitv
un n÷uddeG t
. La deuxième onditionde ladénition impose, que pour pouvoirdénir la valeur
r(v)
, il faut d'abord onnaître les valeursr(w)
,pour haque n÷udw
pèredev
. De plus, l'étatr(v)
doitêtre onforme (parrapportauxtransitions de∆ Q
) ave tous les étatsr(w)
, pour tout n÷udw
père dev
. La Remarque 4.1et laDénition4.3impliquentquel'état
r(v)
esttoujoursdéterminé parllab(v)
,.àd.,:• r(v) = init
,sillab(v) = Root
,• r(v) ∈ {(⊤, 0), (⊤, 1), (⊤ ′ , 1)}
,sillab(v) = σ
,• r(v) ∈ {(η, 0), (η, 1), (s, 1)}
, sillab(v) 6= σ
.Pour simplier la notation, on pose
η ′ := s
, et on utilisera souvent la notation{(l, 0), (l, 1), (l ′ , 1)}
,oul ∈ {η, ⊤}
,pourdésignerlegroupe desllpairesenquestion.Soit une requête de base
Q
,et l'automateA Q
assoié. Comme nous allonsvoirdanslesSetions4.3.1et4.3.2,nosautomatesnesontpasdéterministes,donàpriori
il existe plusieurs runs possibles de
A Q
sur le même rlagG t
. Pourtant l'automateA Q
est onstruit pour que sur tout rlagG t
, il existe un seul run deA Q
qui permetd'évaluerla requête
Q
surle doumentt
. Cerun assignera à haquen÷udv
deG t
,unétatdontlasémantiquenousinformeraquelleestlasigniationde
v
parrapportàlarequêteonsidérée. Lasémantiquedesétatsdel'automate
A Q
,orrespondantà larequêtedebaseQ =
//∗
[axis::σ
℄,estprésentéedanslaTable4.1. Soitunétat(ℓ, x)
assigné à un n÷udv
deG t
,par lerun de l'automateA Q
,évaluant larequêteQ
surt
. La première omposanteℓ
, nous dit si le n÷udv
répond (ℓ ∈ {s, ⊤ ′ }
) ounon(
ℓ ∈ {η, ⊤}
) àlarequêteQ
. Ladeuxième omposantex = 1
(resp.x = 0
),nousinformesilen÷ud
v
possèdeaumoinsun(resp. nepossèdeauun)n÷uddesendantqui 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 rlagG t
,quiontienttouteslesréponsesà
Q
,ilsutdegarderseulement esn÷udsauxquelslerun 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= σ
etv
est une réponseàQ (η, 1) llab(v) 6= σ
etv
n'est pasune réponseàQ
,maisilexiste un desendant de
v
répondant àQ (η, 0) llab(v) 6= σ
etv
n'est pasune réponseàQ
,etauun desendant de
v
n'est pasune réponseàQ (⊤ ′ , 1) llab(v) = σ
etv
est une réponseàQ
(⊤ , 1) llab(v) = σ
etv
n'est pasune réponseàQ
,maisilexiste un desendant de
v
répondant àQ (⊤, 0) llab(v) = σ
etv
n'est pasune réponseàQ
,etauun desendant de
v
n'est pasune réponseàQ init llab(v) = Root
oullab(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êteQ
, sera appelé run de priorité maximale.Pouronstruireerun,onutiliseequ'onappelleunestratégiedeprioritémaximale,
quiexigequelerun
r
del'automateA Q
surlerlagG t
doiveêtreune fontiontotale,etpourtoutn÷ud
v
deG t
,lallpairer(v)
doiveêtrelaplusprioritairepossibleparmi toutes les llpairesqui peuvent être assignéesàv
en utilisant lestransitions deA Q
.Cettestratégieexpliquelehoixde prioritéentrelesllpaires: onpose
(l, 0) > (l, 1)
pour nepas assigner
(l, 1)
à un n÷udqui ommeneune branhe ou il n'ya pasden÷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'automateA Q
orrespondant, un doumentt
, et son rlagG t
assoié. Une appliationr : N odes G t → States Q
estappelée runde priorité maximale de
A Q
surG t
siet seulement si, pour toutn÷udv
de
G t
,ellesatisfait les onditions suivantes :• r(v)
est déni (r
est totale),• r(v)
est déterminé parllab(v)
,•
pour haque n÷udw
parent dev
, l'automateA Q
ontient la transition de laforme
(r(w), llab(v)) → r(v)
,• r(v)
est la llpaire maximale par rapport à l'ordre de priorité, qui satisfait lesonditions 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
surG t
est bien un run au sensde 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
surG t
est unique. Grâe à ette uniité, on diraque l'automate
A Q
est nonambigu, et par la suite on ne sera intéressé que parle 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
surG t
, est le seul run qui permette d'évaluer la requêteQ
sur ledoument
t
. Dans la Setion 4.5 on donne un algorithme qui onstruit le run depriorité 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 baseQ =
//∗
[axis::σ
℄,où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 baseQ =
//∗
[self::σ
℄. Cet automaten'aquequatreétats :init, (η, 0), (η, 1)
et(⊤ ′ , 1)
.σ init
η , 1
T ’ , 1
= σ γ
= σ γ
= σ γ
= σ
= σ γ γ
= σ γ
= σ γ
η , 0
σ σ
Figure 4.4. Automate
A Q
,où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.