Chapitre 3. Évaluation de requêtes et ontrle d'aès
3.3. Système de transitions pour une requête élémentaire nonatomique
nonatomique
Considéronsmaintenant leasplusgénéral,elui d'unerequêteélémentaire
non-atomique/
C i =
/axis0 i
::σ i 0
[L 0 i
℄[F i
℄,ontenantunltrenonloal[F i
℄. Unetellerequête peutêtre éritesouslaforme
/
C i = step 0 i
[step 1 i
[step 2 i
[. . .
[step k(i) i
℄. . .
℄,pour un ertain entier naturel
k(i)
, où haque étapestep p i =
axisp i
::σ p i
[L p i
℄, pour0 ≤ p ≤ k(i)
,estatomique(.àd.,[L p i
℄neontientauunaxedenavigation). Pour tout0 ≤ p ≤ k(i)
,ondénitd'abordunsystèmedetransitionsS i p
appeléSTS(singlesteptransitionsystem),orrespondantà l'étape
step p i
. L'ETSS i
orrespondantà la requêteélémentaire/C i
estalorsdéniommeuneonaténationdesSTSsS i p
,pour0 ≤ p ≤ k(i)
.Pour tout
p ∈ {0, . . . , k(i)}
, notons parα ip
la donnéeσ p i
[L p i
℄, et parα ip
sonomplémentaire
σ p i
[L p i
℄. Laonstrution duSTSS i p
dépenddurlejouéparl'étapedeloalisation
step p i =
axisp i
::σ i p
[L p i
℄orrespondante. Il yatroistypesd'étapesde loalisation :•
/step 0 i
[Cetteétape orrespond à la partie de navigation de la requête élémentaire /
C i
,qui est suivie par un ltre nonloal [
F i
℄. L'ensemble des états du STSS i 0
orrespondant est
States 0 i = {init 0 i , f ail i 0 , ok i 0 [−]},
etson ensemble des transitions est obtenu à partir de lauses
t1 − t6
de laSe-tion3.2, enremplaçant lesétats
init i
,f ail i
,ok i
respetivement parinit 0 i
,f ail i 0
,ok i 0 [−]
.•
[step p i
[Danse as
p ∈ {1, . . . , k(i) − 1}
,etette étape orrespondà unltre nonloalsuiviparunautreltrenonloal. L'ensembledesétatsduSTS
S i p
orrespondant estStates p i = { init p i [−], f ail p i [−], f ail i p [⊥], ok i p [−]} ,
etl'ensemble de ses transitions est obtenu à partir de lauses
t1 − t6
de laSe-tion3.2, enremplaçant :
dansleslauses
t1
ett2
lesétatsinit i
,f ail i
,ok i
respetivementparinit p i [−]
,f ail i p [⊥]
,ok p i [−]
,dansles lauses
t3 − t6
les étatsinit i
,f ail i
,ok i
respetivement parinit p i [−]
,f ail i p [−]
,ok p i [−]
.•
[step k(i) i
℄Cette étape orrespond au dernier ltre nonloal [
step k(i) i
℄ de la requêteélé-mentaire /
C i
onsidérée. L'ensemble desétats duSTSS i k(i)
estdéni par:States k(i) i = {init k(i) i [−], f ail i k(i) [−], f ail k(i) i [⊥], ok i k(i) [⊤]},
etelui de sestransitionsestobtenu àpartir delauses
t1 − t6
delaSetion 3.2,enremplaçant :
dansleslauses
t1−t2
,lesétatsinit i
,f ail i
,ok i
respetivementparinit k(i) i [−]
,f ail i k(i) [⊥]
,ok i k(i) [⊤]
,dansleslauses
t3−t6
,lesétatsinit i
,f ail i
,ok i
respetivementparinit k(i) i [−]
,f ail i k(i) [−]
,ok i k(i) [⊤]
.Lestransitions du STS
S i 0
servent à trouverdesn÷uds potentiellement séletionnés par /C 1
/. . .
/C i
,.àd.,desn÷udsv
,telsquet(v) | = σ 0 i
[L 0 i
℄,ettelsqu'ilexisteunn÷ud
u
séletionné par la partie /C 1
/. . .
/C i−1
satisfaisantu
dir-axis0 i v
. Le rledessystèmes
S p i
,pour1 ≤ p ≤ k(i)
,estparsuitedevalider esséletionspotentielles deS i 0
: parmi des n÷uds séletionnés parS i 0
ils retiendront seulement eux pour lesquels leltre[F i
℄s'évalue envrai.Aprèsavoironstruitlessystèmes
S i p
pour0 ≤ p ≤ k(i)
,onpeut dénirl'ETSS i
orrespondant à la requête élémentaire /
C i =
/step 0 i
[step 1 i
[step 2 i
[. . .
[step k(i) i
℄. . .
℄quiontientunltrenonloal[
F i
℄=[step 1 i
[step 2 i
[. . .
[step k(i) i
℄. . .
℄. L'ensembledesétats de eETS
S i
est dénipar :States i ={init 0 i , f ail 0 i } ∪
k(i) [
p=1
init p i [γ], f ail p i [γ] | γ ∈ {−, ⊥, ⊤} ∪
{ok i k(i) [⊤]} ∪
k(i)−1
[
p=0
ok i p [γ ] | γ ∈ {−, ⊥, ⊤} ,
etsonensemble destransitions estl'union desensembles destransitions de tousles
S i p
,pour0 ≤ p ≤ k(i)
.Étant donné un doument
t
, on dénit le run d'un tel ETSS i
surt
ommeune fontion
M i : N odes t → P(States i )
,qui estonforme ave lestransitions deS i
,et ave les transitions
1 − 11
données plus bas. Avant de présenter les transitions1−11
,nousintroduisonsquelquesnotations. Ononsidèreunelogiqueàtroisvaleurs{1, 0, ω}
, telles que0 < ω < 1
, où le symboleω
représente la valeur indénie. Onpose :
1 = 0
,0 = 1
,ω = ω
. Pour toutp ∈ {0, . . . , k(i)}
, on dénit ensuite unprédiatunaire
Ω p i
,pouvantavoirtroisvaleurs1
,0
,ouω
. Ceprédiatvaêtreévaluéréursivement,à haque n÷ud
u
dudoumentt
,de lafaçon suivante :•
Casoù Fin-axisp i (u)
estvrai :
Ω p i (u) = 1
ssiM i (u)
ontient un étatde laformeq i p [⊤]
,
Ω p i (u) = 0
ssiM i (u)
ontient un étatde laformeq i p [⊥]
,
Ω p i (u) = ω
ailleurs.•
Casoù Fin-axisp i (u)
estfaux :
Ω p i (u) = Sup v {Ω p i (v) | u
dir-axisp i v}
Voiilestransitionsquidoiventêtresatisfaitesparlerun
M i
. Lesymbolev
représenteun n÷ud du doument
t
,p ∈ {0, . . . , k(i)}
, la notationhs, vi
est utilisée pour direquel'état
s
estdansl'ensembleM i (v)
,etq ∈ {init, f ail, ok}
:1. règlede passage entre
S i−1
etS i
:hinit 0 i , vi ← v = Root t
,sii = 1
,hinit 0 i , vi ← hok i−1 , vi
,sii > 1
2. règlede passage entre
S i p
etS i p+1
:hinit p+1 i [−], vi ← hok i p [−], vi
,sip ≤ k(i) − 1
3. règlede propagation de
[⊤]
toutaulong duhemin traversé parS i
:hq i p [⊤], vi ← hq i p [−], vi, Ω p i (v)
,pourp ≥ 1
4. signalerau système
S i p−1
quel'étapestep p i
estsatisfaite env
:hok i p−1 [⊤], vi ← hok i p−1 [−], vi, hinit p i [⊤], vi
5. validation dénitive delaséletion potentielle en
v
:hok i , vi ← hok 0 i [⊤], vi
6. ontinuerlerun
M i
à partird'unn÷udv
séletionné :hinit 0 i , vi ← hok i , vi
, siaxisi 6∈ {
self, hild, parent}
7. l'étape
step p i
n'est pasvalidéesurla branhe ourante:h f ail p i [⊥], v i ← h f ail i p [−], v i
, Fin-axisp i (v)
,sip ≥ 1
8. règlede propagation de
[⊥]
toutaulong duhemin traversé parS i
:hq i p [⊥], vi ← hq i p [−], vi, Ω p i (v)
,sip ≥ 1
9. signalerau système
S i p−1
,quel'étapestep p i
n'est passatisfaiteenv
:hok i p−1 [⊥], vi ← hok i p−1 [−], vi, hinit p i [⊥], vi
,siaxisp−1 i ∈ {
self,hild,parent}
10. sil'étape
step p i
n'est passatisfaite aun÷udv
,alors poursuivreavestep p−1 i
:hinit p−1 i [−], vi ← hok i p−1 [−], vi, hinit p i [⊥], vi
,siaxisp−1 i 6∈ {
self,hild,parent}
11. ontinuerlerun
M i
àpartird'unn÷udv
oùlaséletionpotentielleétaitrejetée:h init 0 i , v i ← h ok i 0 [⊥], v i
,siaxisi 6∈ {
self, hild, parent}
.Remarquons que le systèmeEST orrespondant à une requête élémentaire
non-atomique estdéterministe (ommedansleasd'un ETSpourune requête
élémen-taireatomique). Lerledurun
M i
duS i
surundoumentt
,estdeséletionnertout n÷udu
det
où : le testσ i 0
[L 0 i
℄ est validé par la donnéet(u)
, et le ltre [F i
℄ estsatisfaiten
u
.Le run
M i
ommene par assigner l'étatinit 0 i
(lause1
) à tous les n÷udsv i−1
qui ont été séletionnés par le système
S i−1
(.àd., qui répondent à la requête/
C 1
/. . .
/C i−1
).Ensuite, grâe aux transitions
t1 − t6
de STSS i 0
, il ontinue suivant les heminsdénis par axis
0 i
. Il assigne : l'étatf ail 0 i
aux n÷uds où la donnée ne valide pasσ i 0
[L 0 i
℄,etl'étatok 0 i [−]
aupremier n÷udv 0 i
(surhaquehemin)où letestσ 0 i
[L 0 i
℄est validé par
t(v 0 i )
. Chaun de es n÷udsv i 0
est potentiellement séletionné, etil seraséletionnéultérieurementparlerunM i
,sietseulementsileltre[F i
℄s'évalueen vrai en
v i 0
.Pour vérierlasatisfation du ltre [
F i
℄ env i 0
,le runM i
utilise les transitions des STSS i p
,pour1 ≤ p ≤ k(i)
. Pour0 ≤ p ≤ k(i)−1
,dénotonsparv p i
toutn÷udauquelle run du
S i
a assigné l'étatok i p [−]
. Le runM i
ontinue, en utilisant la lause2
,etajoutel'état
init p+1 i
àl'ensembleM i (v i p )
. Ensuite iltraverse ledoument suivantles heminsdénis par axis
p+1
i
, en utilisant les transitionst1 − t6
du STSS i p+1
. Ilassigne:
•
l'étatf ail p+1 i [−]
àhaque n÷udoù ladonnéene valide pasσ p+1 i
[L p+1 i
℄,•
sip + 1 < k(i)
, l'étatok i p+1 [−]
au premier n÷ud renontré sur haque hemin,oùladonnée valide
σ i p+1
[L p+1 i
℄,•
sip + 1 = k(i)
,l'étatok k(i) i [⊤]
aupremiern÷udrenontrésurhaquehemin,oùladonnéevalide
σ k(i) i
[L k(i) i
℄.Notons,queleltre [
step p+1 i
℄ n'estpassatisfaitau n÷udv p i
sietseulement sipourtout n÷ud
w
tel quev p i
axisp+1 i w
,la donnée enw
ne valide pasσ i p+1
[L p+1 i
℄. Danse as, et si en plus axis
p
i 6∈ {
self, hild, parent}
, le runM i
utilise les lauses7, 8
et10
(avep := p + 1
),et assignel'étatinit p i [−]
au n÷udv i p
. Par suite,le runM i
peutontinuerlareherhe d'autresn÷uds où ladonnéevalideσ p i
[L p i
℄.•
Une séletion potentielle dev 0 i
validée :Sil'état
ok k(i) i [⊤]
estatteintparlerunM i
,leslauses3
,4
sontutiliséespourpropagerle symbole de validation
[⊤]
à tout n÷udu
traversé parM i
. En partiulier, l'étatok i 0 [⊤]
est ajoutéà l'ensembleM i (v i 0 )
,etgrâe àlalause5
l'état séletionnantok i
estatteint au n÷ud
v i 0
(ok i ∈ M i (v i 0 )
).•
Une séletion potentielle dev 0 i
rejetée :Laséletion potentielle dun÷ud
v i 0
nepeutpasêtre validée,sileltre[F i
℄ s'évalueenfaux en
v i 0
. Danseas,lesymboled'éhe[⊥]
estpropagéenutilisant leslauses7
9
. En partiulier, l'étatok 0 i [⊥]
estajouté à l'ensembleM i (v 0 i )
,et par onséquentlen÷ud
v i 0
ne peutpasêtreséletionné.Après avoir validé ou rejeté la séletion potentielle du n÷ud
v 0 i
, et si en plusaxis
i 6∈ {
self, hild, parent}
, les lauses6
et11
permettent de poursuivre lerun
M i
à partirdev i 0
,pourreherherd'autresn÷udsrépondantà/C 1
/. . .
/C i
. Onillustrel'évaluationd'unerequêteélémentairenonatomiquedansl'exemplequisuit.
Exemple 3.1. Ils'agitd'évaluerlarequête
Q =
/desendant::a
[anestor::b
℄surledoument
t
représentésur laFigure 3.1. Lesn÷udsdet
sontdénotésparleurspo-ε b
a a c a
Root
2 1
12 11
Figure3.1. undoumentXML
t
sitions. LaFigure3.2représente lerun
M 1
duETSS 1
,quiévalue larequêteélémen-taire /
C 1 =
/desendant::a
[anestor::b
℄. Tout d'abord, on onsidère l'étape denavigation de /
C 1
, .àd.,step 0 1 =
desendant::a
. En ommençant par la rainetive
Root t
det
, le runM i
parourt le doumentt
du hautvers le bas (en suivantl'axe desendant), onformémentà la résolution lausale suivante :
hinit 0 1 , Rooti ← hok 1 0 [−], 2i ← hf ail 1 0 , εi
(3.1)hf ail 1 0 , εi ← hinit 0 1 , Rooti hok 1 0 [−], 11i ← hf ail 1 0 , 1i
(3.2)hf ail 1 0 , 1i ← hf ail 1 0 , εi hok 1 0 [−], 12i ← hf ail 1 0 , 1i.
(3.3)Les états représentés sur la Figure 3.2 à gauhe, sont alors assignés aux n÷uds de
t
. L'étatok 0 1 [−]
aux n÷uds2
,11
,12
signie que es n÷uds sont potentiellement séletionnés,etpourvalider ou rejeter leur séletion ilfaut évaluer l'étape [step 1 1
℄=
[anestor::
b
℄, pour voir s'ils ont un anêtreb
. L'évaluation de ette étape est représentée sur la Figure 3.2 à droite. Tout d'abord, la lausehinit 1 1 [−], ui ← hok 1 0 [−], ui
(3.4)fail
Figure3.2. Évaluationde/desendant::
a
[anestor::b
℄surt
est utilisée, aux n÷uds
u = 2, 11, 12
. Ensuite, le runM i
utilise les transitions suiv-antes du STSS 1 1
:hf ail 1 1 [−], 1i ← hinit 1 1 [−], 11i, hok 1 1 [⊤], εi ← hf ail 1 1 [−], 1i,
(3.5)hf ail 1 1 [−], 1i ← hinit 1 1 [−], 12i, hok 1 1 [⊤], εi ← hinit 1 1 [−], 2i,
(3.6)Maintenant, en utilisant la lause
3
de la dénition du run,M i
propage le symbole[⊤]
(satisfation de ltre [step 1 1
℄=
[anestor::b
℄) à partir deε
aux n÷uds1
,2
, etensuite à partir de
1
au11
et12
. Finalement, grâe à la lause :hok 1 , ui ← hok 0 1 [⊤], ui,
(3.7)l'état séletionnant
ok 1
est assigné aux n÷udsu = 11
,12
et2
, qui onstituent laREPONSE à