• Aucun résultat trouvé

Système de transitions pour une requête élémentaire nonatomique

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 =

/axis

0 i

::

σ i 0

[

L 0 i

℄[

F i

℄,ontenantunltrenonloal[

F i

℄. Unetelle

requê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)

, haque étape

step p i =

axis

p i

::

σ p i

[

L p i

℄, pour

0 ≤ p ≤ k(i)

,estatomique(.àd.,[

L p i

neontientauunaxedenavigation). Pour tout

0 ≤ p ≤ k(i)

,ondénitd'abordunsystèmedetransitions

S i p

appeléSTS(single

steptransitionsystem),orrespondantà l'étape

step p i

. L'ETS

S i

orrespondantà la requêteélémentaire/

C i

estalorsdéniommeuneonaténationdesSTSs

S i p

,pour

0 ≤ p ≤ k(i)

.

Pour tout

p ∈ {0, . . . , k(i)}

, notons par

α ip

la donnée

σ p i

[

L p i

℄, et par

α ip

son

omplémentaire

σ p i

[

L p i

℄. Laonstrution duSTS

S i p

dépenddurlejouéparl'étape

deloalisation

step p i =

axis

p 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 STS

S 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 la

Se-tion3.2, enremplaçant lesétats

init i

,

f ail i

,

ok i

respetivement par

init 0 i

,

f ail i 0

,

ok i 0 [−]

.

[

step p i

[

Danse as

p ∈ {1, . . . , k(i) − 1}

,etette étape orrespondà unltre nonloal

suiviparunautreltrenonloal. L'ensembledesétatsduSTS

S i p

orrespondant est

States 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 la

Se-tion3.2, enremplaçant :

dansleslauses

t1

et

t2

lesétats

init i

,

f ail i

,

ok i

respetivementpar

init p i [−]

,

f ail i p [⊥]

,

ok p i [−]

,

dansles lauses

t3 − t6

les états

init i

,

f ail i

,

ok i

respetivement par

init 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 duSTS

S 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états

init i

,

f ail i

,

ok i

respetivementpar

init k(i) i [−]

,

f ail i k(i) [⊥]

,

ok i k(i) [⊤]

,

dansleslauses

t3−t6

,lesétats

init i

,

f ail i

,

ok i

respetivementpar

init 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÷uds

v

,telsque

t(v) | = σ 0 i

[

L 0 i

℄,ettelsqu'ilexisteun

n÷ud

u

séletionné par la partie /

C 1

/

. . .

/

C i−1

satisfaisant

u

dir-axis

0 i v

. Le rle

dessystèmes

S p i

,pour

1 ≤ p ≤ k(i)

,estparsuitedevalider esséletionspotentielles de

S i 0

: parmi des n÷uds séletionnés par

S i 0

ils retiendront seulement eux pour lesquels leltre[

F i

s'évalue envrai.

Aprèsavoironstruitlessystèmes

S i p

pour

0 ≤ p ≤ k(i)

,onpeut dénirl'ETS

S 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

,pour

0 ≤ p ≤ k(i)

.

Étant donné un doument

t

, on dénit le run d'un tel ETS

S i

sur

t

omme

une fontion

M i : N odes t → P(States i )

,qui estonforme ave lestransitions de

S i

,

et ave les transitions

1 − 11

données plus bas. Avant de présenter les transitions

1−11

,nousintroduisonsquelquesnotations. Ononsidèreunelogiqueàtroisvaleurs

{1, 0, ω}

, telles que

0 < ω < 1

, le symbole

ω

représente la valeur indénie. On

pose :

1 = 0

,

0 = 1

,

ω = ω

. Pour tout

p ∈ {0, . . . , k(i)}

, on dénit ensuite un

prédiatunaire

p i

,pouvantavoirtroisvaleurs

1

,

0

,ou

ω

. Ceprédiatvaêtreévalué

réursivement,à haque n÷ud

u

dudoument

t

,de lafaçon suivante :

Cas Fin-axis

p i (u)

estvrai :

p i (u) = 1

ssi

M i (u)

ontient un étatde laforme

q i p [⊤]

,

p i (u) = 0

ssi

M i (u)

ontient un étatde laforme

q i p [⊥]

,

p i (u) = ω

ailleurs.

Cas Fin-axis

p i (u)

estfaux :

p i (u) = Sup v {Ω p i (v) | u

dir-axis

p i v}

Voiilestransitionsquidoiventêtresatisfaitesparlerun

M i

. Lesymbole

v

représente

un n÷ud du doument

t

,

p ∈ {0, . . . , k(i)}

, la notation

hs, vi

est utilisée pour dire

quel'état

s

estdansl'ensemble

M i (v)

,et

q ∈ {init, f ail, ok}

:

1. règlede passage entre

S i−1

et

S i

:

hinit 0 i , vi ← v = Root t

,si

i = 1

,

hinit 0 i , vi ← hok i−1 , vi

,si

i > 1

2. règlede passage entre

S i p

et

S i p+1

:

hinit p+1 i [−], vi ← hok i p [−], vi

,si

p ≤ k(i) − 1

3. règlede propagation de

[⊤]

toutaulong duhemin traversé par

S i

:

hq i p [⊤], vi ← hq i p [−], vi, Ω p i (v)

,pour

p ≥ 1

4. signalerau système

S i p−1

quel'étape

step p i

estsatisfaite en

v

:

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÷ud

v

séletionné :

hinit 0 i , vi ← hok i , vi

, siaxis

i 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-axis

p i (v)

,si

p ≥ 1

8. règlede propagation de

[⊥]

toutaulong duhemin traversé par

S i

:

hq i p [⊥], vi ← hq i p [−], vi, Ω p i (v)

,si

p ≥ 1

9. signalerau système

S i p−1

,quel'étape

step p i

n'est passatisfaiteen

v

:

hok i p−1 [⊥], vi ← hok i p−1 [−], vi, hinit p i [⊥], vi

,siaxis

p−1 i ∈ {

self,hild,parent

}

10. sil'étape

step p i

n'est passatisfaite aun÷ud

v

,alors poursuivreave

step p−1 i

:

hinit p−1 i [−], vi ← hok i p−1 [−], vi, hinit p i [⊥], vi

,siaxis

p−1 i 6∈ {

self,hild,parent

}

11. ontinuerlerun

M i

àpartird'unn÷ud

v

laséletionpotentielleétaitrejetée:

h init 0 i , v i ← h ok i 0 [⊥], v i

,siaxis

i 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

du

S i

surundoument

t

,estdeséletionnertout n÷ud

u

de

t

: le test

σ i 0

[

L 0 i

est validé par la donnée

t(u)

, et le ltre [

F i

est

satisfaiten

u

.

Le run

M i

ommene par assigner l'état

init 0 i

(lause

1

) à tous les n÷uds

v 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 STS

S i 0

, il ontinue suivant les hemins

dénis par axis

0 i

. Il assigne : l'état

f ail 0 i

aux n÷uds la donnée ne valide pas

σ i 0

[

L 0 i

℄,etl'état

ok 0 i [−]

aupremier n÷ud

v 0 i

(surhaquehemin) letest

σ 0 i

[

L 0 i

est validé par

t(v 0 i )

. Chaun de es n÷uds

v i 0

est potentiellement séletionné, etil seraséletionnéultérieurementparlerun

M i

,sietseulementsileltre[

F i

s'évalue

en vrai en

v i 0

.

Pour vérierlasatisfation du ltre [

F i

en

v i 0

,le run

M i

utilise les transitions des STS

S i p

,pour

1 ≤ p ≤ k(i)

. Pour

0 ≤ p ≤ k(i)−1

,dénotonspar

v p i

toutn÷udauquel

le run du

S i

a assigné l'état

ok i p [−]

. Le run

M i

ontinue, en utilisant la lause

2

,

etajoutel'état

init p+1 i

àl'ensemble

M i (v i p )

. Ensuite iltraverse ledoument suivant

les heminsdénis par axis

p+1

i

, en utilisant les transitions

t1 − t6

du STS

S i p+1

. Il

assigne:

l'état

f ail p+1 i [−]

àhaque n÷ud ladonnéene valide pas

σ p+1 i

[

L p+1 i

℄,

si

p + 1 < k(i)

, l'état

ok i p+1 [−]

au premier n÷ud renontré sur haque hemin,

oùladonnée valide

σ i p+1

[

L p+1 i

℄,

si

p + 1 = k(i)

,l'état

ok k(i) i [⊤]

aupremiern÷udrenontrésurhaquehemin,

ladonnéevalide

σ k(i) i

[

L k(i) i

℄.

Notons,queleltre [

step p+1 i

n'estpassatisfaitau n÷ud

v p i

sietseulement sipour

tout n÷ud

w

tel que

v p i

axis

p+1 i w

,la donnée en

w

ne valide pas

σ i p+1

[

L p+1 i

℄. Dans

e as, et si en plus axis

p

i 6∈ {

self, hild, parent

}

, le run

M i

utilise les lauses

7, 8

et

10

(ave

p := p + 1

),et assignel'état

init p i [−]

au n÷ud

v i p

. Par suite,le run

M i

peutontinuerlareherhe d'autresn÷uds ladonnéevalide

σ p i

[

L p i

℄.

Une séletion potentielle de

v 0 i

validée :

Sil'état

ok k(i) i [⊤]

estatteintparlerun

M i

,leslauses

3

,

4

sontutiliséespourpropager

le symbole de validation

[⊤]

à tout n÷ud

u

traversé par

M i

. En partiulier, l'état

ok i 0 [⊤]

est ajoutéà l'ensemble

M i (v i 0 )

,etgrâe àlalause

5

l'état séletionnant

ok i

estatteint au n÷ud

v i 0

(

ok i ∈ M i (v i 0 )

).

Une séletion potentielle de

v 0 i

rejetée :

Laséletion potentielle dun÷ud

v i 0

nepeutpasêtre validée,sileltre[

F i

s'évalue

enfaux en

v i 0

. Danseas,lesymboled'éhe

[⊥]

estpropagéenutilisant leslauses

7

9

. En partiulier, l'état

ok 0 i [⊥]

estajouté à l'ensemble

M i (v 0 i )

,et par onséquent

len÷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 plus

axis

i 6∈ {

self, hild, parent

}

, les lauses

6

et

11

permettent de poursuivre le

run

M i

à partirde

v i 0

,pourreherherd'autresn÷udsrépondantà/

C 1

/

. . .

/

C i

. On

illustrel'évaluationd'unerequêteélémentairenonatomiquedansl'exemplequisuit.

Exemple 3.1. Ils'agitd'évaluerlarequête

Q =

/desendant::

a

[anestor::

b

sur

ledoument

t

représentésur laFigure 3.1. Lesn÷udsde

t

sontdénotésparleurs

po-ε b

a a c a

Root

2 1

12 11

Figure3.1. undoumentXML

t

sitions. LaFigure3.2représente lerun

M 1

duETS

S 1

,quiévalue larequête

élémen-taire /

C 1 =

/desendant::

a

[anestor::

b

℄. Tout d'abord, on onsidère l'étape de

navigation de /

C 1

, .àd.,

step 0 1 =

desendant::

a

. En ommençant par la raine

tive

Root t

de

t

, le run

M i

parourt le doument

t

du hautvers le bas (en suivant

l'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'état

ok 0 1 [−]

aux n÷uds

2

,

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être

b

. L'évaluation de ette étape est représentée sur la Figure 3.2 à droite. Tout d'abord, la lause

hinit 1 1 [−], ui ← hok 1 0 [−], ui

(3.4)

fail

Figure3.2. Évaluationde/desendant::

a

[anestor::

b

sur

t

est utilisée, aux n÷uds

u = 2, 11, 12

. Ensuite, le run

M i

utilise les transitions suiv-antes du STS

S 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÷uds

1

,

2

, et

ensuite à partir de

1

au

11

et

12

. Finalement, grâe à la lause :

hok 1 , ui ← hok 0 1 [⊤], ui,

(3.7)

l'état séletionnant

ok 1

est assigné aux n÷uds

u = 11

,

12

et

2

, qui onstituent la

REPONSE à

Q

sur

t

.

Documents relatifs