You are on page 1of 161

-1-

CHNG 1 CC KHI NIM C S 1.1 Ngn ng cp mt Mt ngn ng cp mt c xy dng trn mt b k t v nhng cng thc xy dng trn b k t . nh ngha 1.1 B k t bao gm lp cc k hiu: Hng: Bin: Cc k hiu hm: Cc k hiu v t: Cc hng v t: true, false Cc k hiu kt ni: (tng ng).

( ph nh), tuyn), hi), (ko theo), ( (

Cc k hiu lng t: (vi mi), (tn ti) Cp du ngoc n ( ), du phy (,) nh ngha 1.2 Hng thc c nh ngha qui nh sau: (i) Mi hng l mt hng thc. (ii) Mi bin l mt hng thc. (iii) Nu f l k hiu hm c n-ngi v t1,... tn l cc hng thc th f(t1,...,tn) l mt hng thc. (iv) Hng thc ch c sinh ra bi cc quy tc trn. nh ngha 1.3 Nu t1,...,tn l cc hng thc, p l k hiu v t n-ngi th p(t1,...,tn) c gi l mt nguyn t. Nguyn t nn l nguyn t khng cha bin.
-2-

literal l mt nguyn t hoc ph nh mt nguyn t. Mt nguyn t l literal dng v ph nh ca nguyn t l literal m. Vi p l mt nguyn t, literal m c k hiu p. nh ngha 1.4 Cng thc c nh ngha qui nh sau: (i) Nguyn t l mt cng thc. (ii) true v false l cc cng thc.
(iii)

Nu E v F l cc cng thc th: (E F), E, (E F), (E F), (E F) l cc cng thc. Nu E l cng thc, X l bin th (X) E, ( X) E l cc cng thc.

(iv)

(v) Cng thc ch c sinh ra bi mt s hu hn cc quy tc trn. nh ngha 1.5 Cng thc khng cha bin c gi l cng thc nn (ground formula). Nu trong cc cng thc (X) E hoc ( X) E cha cc bin X v c th thm mt s bin khc khng trong phm vi ca k hiu lng t , th bin X gi l bin rng buc, cc bin khc gi l bin t do. Cng thc ng l cng thc khng cha bin t do. V d 1.1 Y X (p(X,Y) q(X)) l cng thc ng. Tuy nhin X (p(X,Y) q(X)) khng phi l cng thc ng, v Y l bin t do.

1.2. Chng trnh logic 1.2.1 Mt s nh ngha nh ngha 1.6 Mnh l mt cng thc c dng : X1... Xs (L1 Ln) ...
-3-

(1)

trong L1,...,Ln l cc litereal, X1,...,Xs l cc bin xut hin trong L1 Ln ... Nu A1,...,Ak l tt c cc literal dng trong L1,...,Ln v B1,..., Bm l cc literal m trong L1,...,Ln th thay cho vic vit L1 Ln ta c th vit : ... A1 Ak B1 Bm ... ... B1 Bm c gi l tin ... A1 Ak c gi l h qu ... Ta xt cc trng hp sau y : Nu k=1 th mnh (1) c gi l mnh chng trnh v c th vit: A B1 Bm ... * Nu m=0 th (2) tr thnh: A v c gi l mnh n v hoc unit. Ng ngha ca unit: i vi cc bin xut hin trong mnh lun lun lm cho A c gi tr ng. * Nu m 0 th mnh (2) c gi l mt quy tc. Literal A c gi l u quy tc (head), B1 Bm l thn quy tc, cc Bi gi l cc ch con. ... Ng ngha ca quy tc: i vi cc bin xut hin trong quy tc lm cho tt c Bi (i=1,...,m) c gi tr true th A c gi tr true. Nu k=0 th mnh (1) c dng : B1 Bm ... (2) Mnh ny c gi l ch.Nu Y1,...,Yr l cc bin xut hin trong ch trn th mnh (2) c th vit: Y1... Yr (B1 Bm ) ... Hoc tng ng : Y1... Yr(B1 Bm) ... (2)

V d 1.2 Cho a,b l cc hng X,Y l cc bin f,g l cc hm p,q l cc v t


-4-

Cho cc mnh : r1: r2: r3: p(f(X,g(x,a)),b) q(x,g(f(a,y),g(x,b))) p(f(x,g(y,a)),b) q(x,g(f(a,y),g(x,b))) p(f(x,g(y,a)),) q(x,g(f(a,y),g(x,b)))

Ta c r1 l mt quy tc, r2 l mt unit, r3 l mt ch

nh ngha 1.7 Chng trnh logic l mt tp hp hu hn khc rng cc mnh chng trnh, tc l ch cha hai loi mnh : A A B1 Bm ... V d 1.3 Cho chng trnh logic P gm cc quy tc : r1 : p(a) r2 : p(s(X)) p(X) r3 : q(X,a,X) p(X) r4 : q(X,s(Y),s(Z)) q(X,Y,Z) trong p,q l cc v t, s l k hiu hm, a l k hiu hng, X,Y,Z l cc bin.

nh ngha 1.8 Php thay th l mt nh x t tp hp cc bin vo tp hp cc hng thc sao cho tp hp {X/(X) X} l hu hn, k hiu: = { X1/t1,...,Xn/tn} trong : Xi l cc bin, ti l cc hng thc, Xi ti
-5-

v (Xi) = ti ,(X) = X,

X {X1,...,Xn}.

Nu tt c cc ti l hng th c gi l php th nn. Nu l song nh th c gi l php i tn. nh ngha 1.9 Mt biu thc l mt hng thc, mt literal hoc hi cc literal hoc tuyn cc literal. nh ngha 1.10 Gi s E l mt biu thc v php th = {X1/t1,..., Xn/tn}. Lc E , gi l hin hnh ca E bi , l biu thc nhn c t E bng cch thay th ng thi cc bin Xi xut hin trong E bi cc ti (i = 1,.., n). Nu E khng cha bin th E c gi l mt hin hnh nn ca E. Nu l song nh th E c gi l variant ca E. nh ngha 1.11 Gi s ta c hai php th:

= {X1/t1, X2/t2..., Xn/tn} = {Y1/s1, Y2/s2,..., Ym/sm}


Hp ca v , l php th nhn c bng cch xa khi tp hp: {X1/t1 ,...,Xn/tn , Y1/s1,..., Ym/sm } mi phn t Xi/ti m Xi = ti v Yi/si m Yi {X1, X2..., Xn}. K hiu = . V d 1.4 Cho hai php th ={y/f(x), z/a} v = {x/a}. Hp ca v l php th = {y/ f(a), x/a, z/a}. nh ngha 1.12 Cho E v F l hai nguyn t. Lc :
1.

E v F gi l c th hp nht nu tn ti php th sao cho E = F , lc c gi l hp nht t (unifier) ca E v F. Php th gi l tng qut hn php th nu tn ti mt php th sao cho = .
-6-

2.

3.

Hp nht t ca E v F c gi l hp nht t tng qut nht (most general unifier) ca E v F nu tng qut hn mi hp nht t khc ca E v F, k hiu mgu(E, F).

Ch : R rng E v F c th hp nht c ch khi chng c cng k hiu mnh : E = p(....) v F = p(...) Nu E= p(t1,t2,...,tn) v F = p(s1,s2,...,sn), ta c: E v F c th hp nht c khi v ch khi tn ti php thay th sao cho ti = si vi mi i=1,...,n. Tp hp cc phng trnh k hiu c gi l h phng trnh k hiu. Hai h phng trnh k hiu c gi l tng ng nu chng c chung php hp nht tng qut nht. V d 1.5 Cho hai nguyn t: E = p(f(x),z) v F = p(y,a) Ta c E v F c th hp nht v = {y/ f(a), x/a, z/a} l mt hp nht t ca E v F. nh l 1.1 Gi s E v F l hai nguyn t. Lc tn ti thut ton tm mgu(E,F) nu E v F c th hp nht c, ngc li thng bo khng tn ti hp nht t. Thut ton 1.1 (Thut ton hp nht) Vo: Hai nguyn t A v B Ra: Cho mgu(A,B) nu tn ti, Tr li false nu khng tn ti mgu(A,B) Phng php: Bt u t h phng trnh A = B lp li cc bc sau cho n khi hoc l khng th tip tc hoc c thng bo false. 1. Thut ton dng v thng bo false nu mt trong cc trng hp sau xy ra : a. C phng trnh dng f(t1,t2,...,tk) = g(s1,s2,...,sm) y f v g l cc k hiu hm hoc k hiu v t v f g.
-7-

b. C phng trnh dng X = f(t1,t2,...,tn) trong X l bin xut hin mt trong cc hng thc t1,t2,...,tn. 2. Thc hin cc php bin i tng ng sau : a. i vi mi phng trnh c dng f = X, vi X l bin th thay bng X =f b. i vi mi phng trnh c dng f(t1,t2,...,tn) = g(s1,s2,...,sn) th thay bng tp cc phng trnh ti = si , i = 1,...,n. c. i vi mi phng trnh c dng X = t trong X l bin v t khng cha X th X c thay bi t mi phng trnh khc. 3. Chuyn ra khi h cc phng trnh c dng X = X : X1 = t1, X2 = t2 ,..., Xn = tn y Xi l bin, ti l hng thc khng cha Xi . Hp nht t tng qut nht ca A v B l = {X1/t1,X2/t2,...,Xn/tn} V d 1.6 Cho A = q(U,s(V),s(W)) B = q(X,X,s(X)) Phng trnh xut pht : q(U,s(V),s(W)) = q(X,X,s(X)) U=X s(V) = X s(W) = s(X) U=X X = s(V) W=X U = s(V) X = s(V) W= s(V) Vy = { U/s(V), X/s(V), W/s(V) } Ta c A = B = q(s(V),s(V),s(s(V))
-8-

1.2.2 Php th hin ca chng trnh logic nh ngha 1.13 Mt php th hin I ca ngn ng bc nht L bao gm mt min D khc rng v mt s php gn sau y : Mi hng C trong L c gn bi mt phn t CI ca D Mi mt k hiu hm f n bin trong L c gn bi mt nh x f I t Dn vo D. Mi k hiu v t p n bin trong L c gn bi nh x p I t Dn vo tp {true, false}. V d 1.7 Xt chng trnh logic P gm cc quy tc : r1 : p(a) r2 : p(s(X)) p(X) r3 : q(X,a,X) p(X) r4 : q(X,s(Y),s(Z)) q(X,Y,Z) Xt php th hin I nh sau : - Min D l tp N{0} - Hng a c gn bi s 0 ca D - K hiu hm s c gn bi hm : sI : D D nD : sI(n) = succ(n) - V t p c gn bi hm : pI : D {true,false} nD : pI(n) = true - V t q c gn bi hm : qI : D3{true,false} x,y,z D : qI(x,y,z) =
true neu x + y = z false neu x + y z

Cho I l php th hin ca ngn ng bc nht, lc mi nguyn t nn


-9-

trong L c gn bi mt trong hai gi tr l true v false. Nu E v F l cc mnh c gn gi tr th E E F, F, cc php lng ha , . Ta c nh ngha sau y : nh ngha 1.14 Gi s L l ngn ng bc nht, I l php th hin ca L, S l tp cc mnh hoc cc cng thc. (i) I c gi l m hnh ca S nu mi hin hnh c s ca cc cng thc trong S u c gi tr true i vi php th hin I, k hiu : I S. Ngc li ta bo I khng phi l m hnh ca S hay I khng lm tha mn S, k hiu I S. (ii) Nu tn ti mt m hnh I ca S th ta bo S l phi mu thun hoc S c th tha mn c. Ngc li ta bo S l mu thun hay khng th tha mn. V d 1.8 Xt ngn ng bc nht : - Hng a - Bin X - Cc v t p,q,r Chng trnh logic P : r(a) . p(X) r(X) q(X) p(X) Php th hin I : - D= {a} - Hng a c gn vi aD - p(a) = true, r(a) = true, q(a) = true
-10 E,

(X)E,

( X)E cng s c gn cc gi tr theo ngha ca cc php kt ni , ,

Vy ta c I

Xt php th hin J : - D= {a} - Hng a c gn vi aD - p(a) = false, r(a) = true, q(a) = true Ta c J P 1.2.3 Php th hin Herbrand Cho ngn ng bc nht L, gi s tp cc hng trong L l khc rng. t U l tp cc hng thc nn ca L. HB l tp cc nguyn t nn trong L. U gi l tp ph dng Herbrand (Herbrand Universe) HB gi l c s Herbrand (Herbrand Base) V d 1.9 Cho ngn ng L - c a, b l cc hng - f, g l cc k hiu hm mt bin - p l k hiu v t mt bin U = {a,b,f(a),f(b),f(f(a)),...} HB = { p(a), p(b), p(f(a)),...} nh ngha 1.15 Mt php th hin Herbrand I ca ngn ng bc nht L bao gm: (i) Mt min D l tp ph dng U (ii) Mi hng c gn bi chnh n (iii) Mi mt k hiu hm f n bin c gn bi mt nh x fI :Un U nh sau: t1,...,tn U, fI(t1,...,tn) f(t1,...,tn) (iv) Mi k hiu v t p n bin c gn bi nh x pI t Un {true, false} V d 1.10 Cho ngn ng bc nht L bao gm : - Hng a
-11-

- K hiu hm s - V t p, q - Chng trnh logic P : r1 : p(a) r2 : p(s(X)) p(X) r3 : q(X,a,X) p(X) r4 : q(X,s(Y),s(Z)) q(X,Y,Z) U= {a,s(a),s(s(a)),...} HB={p(a),p(s(a)),...,q(a,a,a),q(a,a,s(a)),q(a,a,s(s(a)),...,q(a,s(a),a),q((a,s(s(a)),a ),...} Ta nh ngha mt php th hin Hebrand ca ngn ng L nha sau : Hng a c gn bi chnh n. K hiu hm s c gn bi nh x : sI : X s(X), XU K hiu v t p c gn bi nh x : pI : x true xU K hiu v t q c gn bi nh x : qI : (x,y,z) true nu : n(x) + n(y) = n(z) trong n(t) l s k hiu s c mt trong hng thc t. Nhn xt: i vi mi php th hin Herbrand th php gn cc hng, cc k hiu hm l khng thay i, ch khc l php gn cc k hiu v t. Nh vy cc php th hin Herbrand ch khc nhau bi gi tr chn l ca cc nguyn t nn. Gi I l tp tt c cc nguyn t nn c gi tr chn l l true trong c s Herbrand. Tp hp I c gi l php th hin Herbrand. V d 1.11 Cho ngn ng bc nht L bao gm : - Hng a,b,c
-12-

- K hiu v t p,q,r - V t p, q - Chng trnh logic P: r(a,b) r(b,c) p(X,Y) r(X,Y) q(X,Y) r(X,Z) p(Z,Y) U={a,b,c} HB={r(a,b),r(b,c),r(a,c),r(b,a),r(c,b),r(c,a),r(a,a),r(b,b),r(c,c), p(a,b),p(b,c),p(a,c),p(b,a),p(c,b),p(c,a),p(a,a),p(b,b),p(c,c), q(a,b),q(b,c),q(a,c),q(b,a),q(c,b),q(c,a),q(a,a),q(b,b),q(c,c)} Tp I = {r(a,b),p(a,b),q(b,c) } l php th hin Herbrand: rI : (a,b) true (x,y) false (x,y) (a,b) pI : (a,b) true (x,y) false (x,y) (a,b) qI : (a,b) true (x,y) false (x,y) (b,c) nh ngha 1.16 (i) Php th hin Herbrand l mt m hnh ca tp cc cu S c gi l m hnh Herbrand ca S. (ii) M hnh Herbrand ca S c gi l m hnh nh nht (least model) nu n c cha trong mi m hnh Herbrand khc ca S v c gi l m hnh cc tiu (minimal model) nu n khng cha m hnh Herbrand no khc ca S. V d 1.12 Cho chng trnh logic P :
-13-

r(a) p(X) q(X)

q(X) p(X)

C s HB = { r(a), p(a), q(a)} I1 = { r(a), p(a) } v I2 = { r(a), q(a) } l cc m hnh cc tiu. P khng c m hnh nh nht. 1.2.4 im bt ng ca chng trnh logic Cho dn L = (V, ) , trong V l mt tp hp v nh ngha 1.17
1. 2.

l mt quan h th t.

Mt nh x T:VV c gi l mt ton t h qu trc tip trn L.

Nu T l mt ton t h qu trc tip trn L v aV sao cho T(a) = a th a c gi l mt im bt ng. 3. im bt ng a c gi l nh nht nu mi im bt ng b a th a b. K hiu a = LFP(T). 4. im bt ng a ca T c gi l cc tiu nu khng tn ti im bt ng khc b ca T sao cho b a. nh ngha 1.18 Ton t h qu trc tip T trn dn L = ( V, ) c gi l n iu nu: a,b V, a b

T(a) T(b)

nh l 1.1 Nu T l ton t h qu trc tip n iu trn dn L = (V, ) y th tn ti mt tp khc rng cc im bt ng ca T v hn na T c im bt ng nh nht LFP(T): LFP(T) = inf{ xV/ T(x)

x}

Chng minh : t xo = LFP(T) = inf{ xV / T(x) Suy ra : xo

x}

x x { xV / T(x) T(x)

x}

T(xo)

xV
-14-

T(xo) = inf{ xV/ T(x)

x }= xo

Vy xo l im bt ng

tp cc im bt ng l khc rng.

Gi x1 l im bt ng v x1 xo. Ta c x1 = T(x1) x1 { xV / T(x) x } xo

x1

1.2.5 Ton t h qu trc tip ca chng trnh logic Cho P l chng trnh logic, I l php th hin Hebrand ca P. Ta c L = (P(B), ) l mt dn y . Xy dng ton t h qu trc tip Tp trn L nh sau: Vi mi I P(B) v l mt php thay th, ta t : Tp(I) = {AHB / mnh p q1 2 qn ca P : A=p, I q ... hnh ca P khi v ch khi Tp(I) I. Chng minh : I l m hnh ca P I (q1 2 qn) q ...
I mnh

(q1 2 qn) } q ...

nh l 1.2 Cho chng trnh logic P v I l php th hin Herbrand. I l m p q1 2 qn ca P: A=p, q ...

Tp(I) I

H qu 1.1 Nu Tp l n iu th im bt ng nh nht ca Tp l m hnh nh nht ca P. nh ngha 1.19 (i) Mt quy tc c gi l dng nu n khng cha literal m v phi. (ii) Chng trnh logic c gi l dng nu mi quy tc ca n l dng nh l 1.3 Nu chng trnh logic Tp dng th Tp n iu. Chng minh : Ly I, J P(B) v gi s I J , ta chng minh Tp(I) Tp(J) Ly A Tp(I), theo nh ngha ca Tp(I) th tn ti mt hin hnh c s ca mt quy tc trong P sao cho A B1 2 Bn v I B1 2 Bn , suy ra: B ... B ... Bi I i=1,...,n. T Bi J, i=1,...,n . Do : Tn ti mt hin hnh c s ca mt quy tc trong P sao cho A B1 2 Bn v I B ... B1 2 Bn. Vy A Tp(J). B ...
-15-

H qu 1.2 Mi chng trnh logic dng c m hnh nh nht. 1.3 C s d liu suy din v chng trnh Datalog 1.3.1 C s d liu suy din nh ngha 1.17 Mt CSDL suy din l mt tp hu hn cc mnh c dng: p1 pm q1 qn ... ... (m

0, n

0)

(1)

trong pi (i = 0,..., m) l cc nguyn t v qj (j = 0,..., n) l cc literal. Tt c cc pi v qj u khng cha cc k hiu hm. Mt s trng hp c bit ca (1) : Trng hp m = 1, n 1. (1) c dng: p q1 qn v c gi l mt ... quy tc. Trng hp m > 1, n = 0. (1) c dng: p1 pm ... Nu tt c cc i trong mi v t pi l hng th n c gi l s kin tuyn. Trng hp m > 1, n 1. (1) c dng: p1 pm q1 qn ... ... c gi l quy tc Datalog dng tuyn. Mt CSDL suy din xc nh ch bao gm cc quy tc xc nh, ngha l cc quy tc c dng: p q1 qn ... p1 pm q1 qn ... ... (n 0) (m > 1, n 0) Mt CSDL suy din khng xc nh cho php cha cc quy tc c dng: Nu thn ca mi quy tc trong CSDL suy din khng xc nh P khng cha ph nh th P c gi l chng trnh Datalog dng tuyn. Ngc li, P c gi l chng trnh Datalog dng tuyn m rng. 1.3.2 C php ca chng trnh Datalog nh ngha 1.18 Mt chng trnh Datalog l mt CSDL suy din xc nh bao gm tp hu hn cc mnh Horn: p q1 qn ... Trong cc v t p, qi l cc nguyn t.
-16-

(n 0)

Nh vy chng trnh Datalog l chng trnh logic dng khng cha k hiu hm. nh ngha 1.19 Gi s P l chng trnh Datalog. 1 V t ni hm hoc v t IDB (Intensional Database predicate) l v t c nh ngha bi cc quy tc trong P. V t ngoi din hoc v t EDB l v t khng c nh ngha qua cc quy tc, n ch xut hin trong thn quy tc. 2 CSDL ngoi din hoc CSDL EDB ca chng trnh Datalog l tp cc s kin nn i vi cc v t EDB. CSDL ni hm hoc CSDL IDB l tp cc s kin nn c tnh i vi cc v t IDB bng cch p dng vic suy din trn cc quy tc ca P vi CSDL ban u EDB.
3

V t c ci sn l mt v t so snh s hc =, , . , >, <. Nu l v t c ci sn th ta vit X Y thay cho cch vit (X,Y).

Ch : Cc v t EDB ch xut hin trong thn ca quy tc cn cc v t IDB c th xut hin c thn v u ca quy tc. V t c ci sn ch c xut hin trong thn quy tc. nh ngha 1.20 Vi mi v t k-ngi q c t tng ng mt quan h Q c k thuc tnh. Gi tr ca quan h Q l mt tp cc b, mt b ca quan h Q c k thuc tnh c biu th bi b (a1,...,ak), trong cc ai l hng, q(a1,...,ak) l ng nu (a1,...,ak) thuc Q. Quan h i vi v t EDB (t.. IDB) gi l quan h EDB (t.. IDB). Vi mi chng trnh Datalog P, ta lin kt vi ngn ng cp mt L(P) bao gm cc v t, cc hng, cc cng thc trong P. Ta c nh ngha sau: nh ngha 1.21 Gi s P l chng trnh Datalog. Lc : V tr Herbrand ca P, k hiu UP, l tp tt c cc hng thc nn ca P. C s Herbrand ca P, k hiu BP, l tp tt c cc nguyn t nn ca P. Th hin Herbrand hoc n gin ta ch gi l th hin, l mt tp con I bt k ca c s Herbrand BP ca P.
-17-

- Nu A I, ta ni rng s kin A ng trong I v vit I

A. A.

- Nu A BP nhng A I, ta ni rng A sai trong I v vit I q(a,b) q(b,c) p(X,Y) q(X,Y) p(X,Y) p(X,Z) p(Z,Y)

V d 1.13 Xt chng trnh Datalog P gm cc quy tc nh sau:

V tr Herbrand ca P l UP = { a, b, c } v c s Herbrand ca P l: BP = { p(a,a), p(a,b), p(a,c), p(b,a), p(b,b), p(b,c), p(c,a), p(c,b), p(c,c), q(a,a), q(a,b), q(a,c), q(b,a), q(b,b), q(b,c), q(c,a), q(c,b), q(c,c) } nh ngha 1.22 Gi s P l chng trnh Datalog. Lc : (i) Mt th hin Herbrand I c gi l m hnh Herbrand (hoc n gin l m hnh) ca P, k hiu I P, nu vi mi quy tc p q1 qn trong P v ... mi php th nn i vi quy tc ny, iu kin sau y l tha: Nu qi I vi mi i = 1,..., n th p I (ii) M hnh I ca P c gi l m hnh cc tiu nu khng tn ti m hnh J no khc ca P sao cho J I. (iii) M hnh I ca P c gi l m hnh nh nht nu vi mi m hnh J ca P ta lun c I J. nh ngha 1.23 Gi s P l chng trnh Datalog. (i) th ph thuc ca P l mt th c hng DG(P) = <V, E>, trong V l tp nh gm cc v t IDB v EDB ca P, E l tp cnh, mt cnh t nh q n nh p nu P c cha quy tc vi p l u v q trong thn. (ii) Chng trnh P c gi l qui nu th ph thuc DG(P) c t nht mt chu trnh, ngc li P c gi l khng qui. V t nm trong mt chu trnh no ca th DG(P) gi l v t qui, ngc li gi l v t khng qui.
-18-

V d 1.14 Xt chng trnh Datalog sau y: q(X,Y) p(Z,X) p(Z,Y) q(X,Y) r(Z,X) r(Z,Y) p(X,Y) r(Z, Y) s(X, Z) r(X,Y) p(Z,Y) s(Z,X) th ph thuc ca chng trnh trn c dng nh hnh v:
s

Hnh 1.1: th ph thuc ca chng trnh trong v d 1.14 1.3.3 Gi thit th gii ng v cc tip cn xc nh ng ngha chng trnh Datalog 1.3.3.1 Gi thit th gii ng Trong CSDL suy din, gi thit th gii ng (CWA) ca Reiter ng vai tr ht sc quan trng. CWA c s dng nh mt quy tc ngm nh a ra kt lun i vi cc s kin ph nh. Di CWA, nu mt nguyn t nn p thuc c s Herbrand BP ca chng trnh Datalog P khng th suy ra c t nhng quan h EDB v cc quy tc trong P th p s c xem l ng. K hiu CWA(P) l tp c xc nh bi: CWA(P) = {p/ p BP v P p} Vi gi thit th gii ng, c ba tip cn khc nhau thng c s dng trong vic xc nh ng ngha ca chng trnh Datalog: tip cn theo
-19-

quan im l thuyt m hnh, tip cn theo quan im l thuyt chng minh v tip cn theo quan im l thuyt im bt ng. 1.3.3.2 Cc tip cn xc nh ng ngha chng trnh Datalog 1. Tip cn theo quan im l thuyt m hnh:Theo quan im l thuyt m hnh, cc quy tc trong chng trnh c xem l cng c xc nh m hnh. Mt th hin ca mt tp cc v t s gn gi tr chn l cho mi tnh hung c th c ca cc v t. l m hnh ca mt tp cc quy tc, mt th hin phi lm cho cc quy tc ng vi mi php gn tr cho cc bin trong mi quy tc c ly t min gi tr cho. Theo quan im ny, ng ngha ca chng trnh Datalog P l m hnh nh nht ca PEDB. V d 1.15 Xt chng trnh Datalog sau y: r1: p(X) q(X,Y) r2: q(X,Y) r(X) s(X,Y) trong p, q l cc v t IDB, r v s l cc v t EDB. Gi s CSDL EDB l {r(1), s(1,2)}. Xt th hin M1 = {r(1), s(1,2), q(1,2), p(1)}. Khi thay X = 1, Y = 2 vo quy tc r1 v r2 u lm cho r1 v r2 u ng nn M1 l mt m hnh. Cng vy, vi th hin M2 = {r(1), s(1,2), q(1,2), p(1), p(2)} th M2 cng l m hnh. Tuy nhin, vi th hin M3 = {r(1), s(1,2), q(1,2)} th M3 khng phi l mt m hnh. L do l khi thay X = 1, Y = 2 vo r1 ta c mt gi thit ng v mt kt lun sai. Trong v d ny, c th thy rng c mt s lng v hn cc m hnh ph hp vi CSDL {r(1), s(1,2)}. Th hin M1 l mt m hnh c bit, bi v n l m hnh cc tiu, theo ngha l chng ta khng th lm cho mt s kin ng trong m hnh tr thnh thnh sai m vn nhn c m hnh. rng m hnh M2 khng c c tnh ny, chng hn c th loi b s kin p(2), ngha l xem p(2) l sai, kt qu nhn c cng l mt m hnh. Hn na, m hnh cc tiu M1 l duy nht ph hp vi CSDL {r(1), s(1,2)}.
-20-

2. Tip cn theo quan im l thuyt chng minh:Theo quan im l thuyt chng minh, cc cng thc ca chng trnh c xem l cc tin c s dng trong chng minh. Ng ngha ca chng trnh Datalog P c nh ngha l tp tt c cc s kin c th c dn xut c t P bng cch p dng cc quy tc trong P v nhng s kin bit trong CSDL. Qu trnh c th c thc hin bt u t cc s kin EDB cho v tin hnh lp trn cc quy tc trong chng trnh t v phi sang v tri, tc l t thn n u, chng hn ta xt v d sau: V d 1.16 Xem chng trnh gm cc quy tc sau: r1: p(X,Y) q(X,Y) r2: p(X,Y) p(X,Z) p(Z,Y) trong q v t EDB , gi s q(a,e) v q(e,d) l cc s kin EDB. T quy tc r1 ta suy ra p(a,e) v p(e,d) ng v t quy tc r2 ta nhn c p(a,d) ng. Qu trnh suy dn chng minh p(a,d) c th m t nh hnh v sau:

p(a,d) p(a,e) p(e,d)

q(a,e) q(e,d) Hnh 1.1 Cy chng minh ca s kin p(a,d) 3. Tip cn theo quan im l thuyt im bt ng: Vi cc kt qu nghin cu ca Van Emden v Kowalski, Apt v Van Emden v l thuyt im bt ng trong chng trnh logic, ng ngha ca chng trnh Datalog P cng c th c xc nh l im bt ng nh nht ca ton t h qu trc tip TP. i vi mt th hin Herbrand I cho trc ca chng trnh Datalog P, ton t Tp xy dng nn mt th hin Herbrand ca P l Tp(I) -21-

cha cc s kin c dn xut bi cc quy tc trong P t nhng s kin trong I. nh ngha 1.24 Gi s P l chng trnh Datalog, BP l c s Herbrand ca P. K hiu 2 B l tp cc tp con ca BP. Ton t h qu trc tip i vi
P

chng trnh Datalog P l mt nh x Tp: 2 B 2 B c nh ngha nh sau:


P P

Vi mi I 2 B ,
P

Tp(I) = { A BP / quy tc p q1 q2 qn ca P v php th nn i ... vi quy tc ny sao cho p = A v I (q1 q2 qn) } ... V d 1.17 Xt quy tc p(a,X) q(X,Y) r(Y,a) ca chng trnh Datalog P. Gi s q(b,c), r(c,a) th hin Herbrand I v php th nn = {X/b, Y/c}. Lc ta c (q(X,Y) r(Y,a)) = q(b,c) r(c,a) I v p(a,X) = p(a,b) nn suy ra p(a,b) Tp(I). nh l sau y cho ta mt tnh cht quan trng ca ton t Tp: nh l 1.4 Gi s P l chng trnh Datalog. Lc : (i) Ton t TP l n iu tng v c im bt ng nh nht. (ii) im bt ng nh nht ca ton t TP chnh l m hnh nh nht ca P. Mnh sau y c suy ra trc tip t nh l trn: Mnh 1.1 Cho P l chng trnh Datalog. M hnh nh nht ca P l gii hn ca dy TPn, n N, trong TP0 = , TP(i+1) = TP(TPi). T mnh ny ta c thut ton: Thut ton 1.1 Vo: Chng trnh Datalog P v DB l CSDL EDB cho. Ra: M hnh nh nht ca P. Phng php: Thut ton c vit theo ngn ng ta Pascal nh sau: I := ; J :=Tp(DB); while J < > I do
-22-

begin I := J; J := Tp(DB I); end; output I; V d 1.18 Xt chng trnh Datalog P gm cc quy tc: r1 : path(X,Y) arc(X,Y) r2 : path(X,Z) arc(X,Y) path(Y,Z) Gi s th hin Herbrand I ca chng trnh c cho bi: I = {arc(1,2), arc(2,3), arc(3,4), arc(4,5)} Cc bc lp tnh m hnh nh nht ca P: I0 = TP0 = I1 = TP1 = TP(I0) = {arc(1,2), arc(2,3), arc(3,4), arc(4,5)} I2 = TP2 = TP(I1) = I1{path(1,2), path(2,3), path(3,4), path(4,5)} I3 = TP3 = TP(I2) = I2{path(1,3), path(2,4), path(3,5)} I4 = TP4 = TP(I3) = I3{path(1,4), path(2,5)} I5 = TP5 = TP(I4) = I4{path(1,5)} I6 = TP6 = TP(I5) = I5 Nh vy im bt ng nh nht ca TP chnh l TP(I5), cng chnh l m hnh nh nht ca P. Ch : Trong thut ton 1.1, cu lnh J := Tp(DB I) c th thc hin bng cch s dng cc php ton trong i s quan h. Ullman a ra thut ton chuyn i cc quy tc ca chng trnh Datalog P thnh cc phng trnh i s quan h v t cc phng trnh i s quan h ny s xc nh c m hnh nh nht ca P. Phn tip theo s trnh by chi tit v vn ny. Nhn xt: Trong c ba cch tip cn trn, i vi trng hp n gin l chng trnh Datalog, ngha l cc quy tc khng cha ph nh th tt c cc
-23-

phng php u cho ra cng mt kt qu. Trong trng hp tng qut, khi cho php s dng nhiu loi quy tc phc tp hn th ta c nhiu cch tip cn khc nhau, dn n nhiu cu tr li khc nhau. Trong nhiu trng hp, khng c g m bo ch c mt cu tr li duy nht c to ra. Chng hn, xem chng trnh ch gm mt quy tc sau: Trogiang(X) Giaovien(X), Giangvien(X) Ta gi s Anh l gio vin, ngha l s kin giaovien(Anh) l ng, ta c hai m hnh cc tiu, c hai u bao gm s kin giaovien(Anh). Mt m hnh cha s kin trogiang(A) v mt m hnh cha s kin giangvien(A): {giaovien(Anh), trogiang(Anh)} {giaovien(Anh), giangvien(Anh)} Khi c nhiu m hnh cc tiu th m hnh no c chn ? Trong v d ny c hai s kin giangvien(Anh) v trogiang(Anh) c th suy ra bi gi thit CWA. C mt phng php cho php ta chn mt m hnh cc tiu "tt nht" bng php xp x CWA, tuy nhin phng php ny khng p dng c cho tt c chng trnh Datalog m ch mt lp con c bit l chng trnh Datalog ph nh phn tng. tng c bn l : Khi tnh quan h cho mt quy tc c literal ph nh trong thn, trc ht tnh quan h cho cc v t c du ph nh. Lc CWA c p dng a phng i vi cc v t ny. Trong v d trn, trc ht tnh quan h cho v t giangvien. Trong chng trnh ny khng c cc quy tc v cc s kin m cho php ta suy ra cc s kin c dng giangvien(...), v vy tp cc s kin dng i vi v t ny l rng. iu ny c ngha giangvien(Anh) khng th nhn c, bng cch p dng gi thit CWA i vi v t ny ta nhn c s kin m

giangvien(Anh), vy mt m hnh ca chng trnh ny l {giaovien(Anh), trogiang(Anh)}. Vn ny s c xem xt chi tit trong chng 3.
-24-

-25-

CHNG 2 NG NGHA CHNG TRNH DATALOG Chng 2 s trnh by ng ngha chng trnh Datalog theo cch tip cn ca l thuyt m hnh.

2.1 Mt s nh ngha 2.1.1 Cc quy tc an ton tm m hnh nh nht ca chng trnh Datalog P ta ch cn tnh LFP(TP). Tuy nhin trong thn quy tc ca P c th c cc v t xy dng trong v cc bin c th ly gi tr trn mt tp v hn, iu ny dn n cc quy tc ca P c th dn ti cc quan h v hn, chng hn xt v d sau : V d 2.2 Quy tc biggerThan(X,Y) X>Y vi cc bin X,Y ly gi tr trn tp s nguyn. R rng quy tc ny s xc nh mt quan h v hn. trnh cc quy tc to ra cc quan h v hn ta cn "gii hn" cc bin xut hin trong quy tc. tng trc quan l : ta gi s tt c cc v t (khng phi l xy dng trong) trong thn quy tc tng ng vi cc quan h hu hn, sau ta m bo rng vi mi bin X c mt tp hu hn cc gi tri VX sao cho vi mi php gn gi tr trong VX cho cc bin s lm cho thn quy tc l true. Ta c nh ngha sau y v bin b chn : nh ngha 2.1 (i) Mi bin xut hin nh l i s trong mt ch con ca thn quy tc l b chn. (ii) Bin X xut hin trong cc v t xy dng trong X = a hay X = Y (trong a l hng, Y l bin b chn) l b chn.

-26-

nh ngha 2.2 (i) Mt quy tc l an ton nu tt c cc bin ca n l b chn. (ii) Chng trnh Datalog l an ton nu mi quy tc ca n l an ton V d 2.3 Xt quy tc sau y : p(X,Y) q(X,Z) W = a Y = W Bin X,Z,W,Y l b chn, do quy tc ny an ton. V d 2.4 Xt chng trnh Datalog P c cho bi cc quy tc sau y : p(X,Y) r(X,Y) X=a p(X,Y) s(X,Z) r(Z,Y) q(X,Y) p(X,b) X=Y q(X,Y) p(X,Z) s(Z,Y) Ta c P l chng trnh Datalog an ton 2.1.2 Cc quy tc chnh tc nh ngha 2.3 Mt quy tc an ton c gi l chnh tc nu u ca quy tc c dng p(X1,...,Xk) trong X1,...,Xk l cc bin tng i mt phn bit nhau. Ch : Cho quy tc r : p(Y1,...,Yk) s1 2 sn vi Yi l cc bin hoc hng, s ... si l cc ch con. Nu u quy tc r c cc bin hoc hng lp li th ta ta thc hin php bin i quy tc r thnh quy tc r' nh sau: Thay th u ca quy tc r bi p(X1,...,Xk) trong Xi l cc bin mi phn bit nhau v thm vo thn quy tc ch con Xi=Yi vi mi i. Nu Yi l bin th ta loi b tt c ch con Xi=Yi v thay Yi bi Xi ti tt c v tr tm thy trong quy tc. V d 2.5 Cho quy tc : r : p(U,U,a) q(U,V) q(V,W) trong U l bin, a l hng.
-27-

Bin i r bng cch a vo cc bin mi X,Y,Z ta c quy tc : r' : p(X,Y,Z) q(U,V) q(V,W) X=U Y=U Z=a Thay bin U bi X trong cc ch con q(U,V) , X=U, Y=U ta c quy tc : r'' : p(X,Y,Z) q(X,V) q(V,W) Y=X Z=a V d 2.6 Cho cc quy tc : r1: p(a,X,Y) r(X,Y) r2 : p(X,Y,X) r(X,Y) p dng php bin i ta c cc quy tc mi : r'1 : p(U,V,W) r(X,Y) U=a V=X W=Y r'2 : p(U,V,W) r(Y,X) U=X V=Y W=X Bin i tip ta c cc quy tc sau : r''1 : p(U,V,W) r(V,W) U=a r''2 : p(U,V,W) r(V,U) W=U T y v sau ta gi s cc quy tc l chnh tc. 2.2 nh gi chng trnh Datalog khng quy Trong phn ny ta s nghin cu chng trnh Datalog khng quy. rng, nu cc quy tc l khng quy th ta c th sp th t cc nt ca th ph thuc sao cho nu c mt cung t pi n pj th i<j. Lc ta c th tnh quan h i vi cc v t p1 ,..., pn theo th t ny. Vic tnh ton ca quan h i vi pi c chia thnh hai bc : Bc 1 : i vi mi quy tc r vi pi l u quy tc, tnh quan h tng ng vi thn quy tc r. Quan h ny c mt thnh phn i vi mi bin ca r. tnh quan h i vi thn quy tc r, ta dng php kt ni t nhin ca cc quan h tng ng vi cc ch con khc nhau ca r v cc bin xut hin trong cc v tr tng ng ca cc ch con c xem nh cc thuc tnh ca cc quan h ny. Do cc quy tc l khng quy, ta c th gi thit l cc quan h i vi mi ch con l c tnh ton ri.
-28-

Bc 2 : Tnh quan h i vi chnh pi bng cch thc hin php chiu ln cc thuc tnh ca cc quan h trong mi quy tc c u l pi ln trn cc thnh phn tng ng i vi cc bin ca u quy tc, sau ly hp trn tt c cc quy tc c pi l u. Thut ton 2.1 (Thut ton tnh quan h cho thn quy tc) Vo: Cho quy tc Datalog r v gi s thn ca quy tc r gm cc ch con S1,...,Sn cha cc bin X1,...,Xm v Gi s i vi mi ch con Si = vi
Ai1 ,..., Aik
i

Xi X j

i j
i

pi ( Ai1 ,..., Aik ) c

mt quan h Ri c tnh,

l cc i s, hoc l bin hoc l hng.

Ra: Mt biu thc i s quan h c k hiu : EVAL-RULE(r,R1,...,Rn) c tnh t cc quan h R1,...,Rn s to ra mt quan h R(X1,...,Xm) ca thn quy tc v ch cha tt c cc b (a1,...,am) sao cho khi thay aj cho Xj (1 j m) th tt c cc ch con S1,...,Sn u l true. Phng php : Mt biu thc i s quan h c xy dng theo cc bc sau y : Bc 1. i vi mi Si t Qi = Vi ( Fi ( Ri )) . Trong Vi l tp cc thnh phn m mi bin xut hin trong cc i s ca Si (chnh xc l thnh phn m ti bin X xut hin), F i l hi ca cc iu kin sau y : a) Nu ti v tr th k ca Si c mt hng ai th Fi c dng : $k = a b) Nu ti v tr th k v h ca Si u cha cng mt bin th Fi c dng : $k = $h Bc 2. i vi mi bin X khng tm thy trong cc ch con thng thng, X l bin), ta tnh mt biu thc DX to ra quan h mt ngi cha tt c gi tr m X c th c v lm cho cc ch con l true. V quy tc l an ton nn c mt vi bin Y m X=Y, vi Y l bin b chn.
-29-

a) Nu Y = a (hng) th DX = {a} b) Nu Y l bin xut hin nh i s th j ca ch con thng thng Si th DX = j ( Ri )

Bc 3. t E l ni t nhin ca tt c Qi c xc nh bc 1 v DX c xc nh bc 2. Trong php ni ny ta xem Qi nh l mt quan h m cc thuc tnh l cc bin xut hin trong Si v xem DX l quan h cha thuc tnh X. Bc 4. t EVAL-RULE(r, R1,...,Rn) =
F (E )

trong F l hi ca XY

i vi mi ch con xy dng trong XY xut hin trong p1,...,pn v E l biu thc c xc nh trong bc 3. Nu khng c ch con xy dng trong th biu thc i hi chnh l E. V d 2.7 Cho quy tc r : p(X,Y) q(a,X) r(X,Z,X) s(Y,Z) Gi s Q,R v S l cc quan h tng ng vi cc ch con q, r, s. Bi v ch con u tin i hi cc b ca Q c thnh phn u tin l a nn ta cn xy dng mt quan h vi thuc tnh l X v ch cha cc thnh phn th hai ca nhng b ny, nh vy ta nh ngha quan h : T(X) = 2 ( $1=a (Q)) T(X) = 2 ( $1=a (Q)) c xy dng t bc 1 ca thut ton t ch con u tin q(a,X) ca quy tc cho, T(X) chnh l Q1 trong thut ton. Quan h R c thnh phn th nht v thnh phn th ba l cc bin ging nhau nn ta nh ngha quan h i vi ch con ny : U(X,Z) = 1, 2 ( $1=$3 ( R)) U(X,Z) = 1, 2 ( $1=$3 ( R)) l Q2 c xy dng t ch con th hai r(X,Z,X). Q3 c xy dng t ch con th ba S(Y,Z) chnh l S(Y,Z). Do quy tc ny khng c cc ch con xy dng trong nn bc 2 v bc 4 c b qua. Vy :
-30-

EVAL-RULE(r,Q,R,S) = T(X) U(X,Z) S(Y,Z) l biu thc cui cng ca thn quy tc ny. Quan h ny bao gm cc b (x,y,z) tha mn : 1. (a,x) thuc Q 2. (x,z,y) thuc R v y=x 3. (y,z) thuc S V d 2.8 Xt quy tc: cousin(X,Y) parent(X,Xp) parent(Y,Yp) sibling(Xp,Yp) Gi s quan h P,S c tnh i vi cc v t parent v sibling tng ng. Quan h i vi thn quy tc ny l: R(X,Xp,Y,Yp) = P(X,Xp) P(Y,Yp) S(Xp,Xp) (1) Quan h R(X,Xp,Y,Yp) bao gm cc b (a,b,c,d) tha mn : 1. (a,b) thuc P 2. (c,d) thuc P v 3. (b,d) thuc S. V d 2.9 Xt quy tc: sibling(X,Y) parent(X,Z) parent(Y,Z) X Y Quan h i vi thn quy tc ny l : P Q(X,Y,Z) = X Y ( P( X , Z ) (Y , Z )) (2) Quan h Q(X,Y,Z) bao gm cc b (x,y,z) tha mn : 1. (x,z) thuc P 2. (y,z) thuc P v 3. x y nh l 2.1 Thut ton 1 l ng theo ngha quan h R cha v ch cha cc b (a1,...,am) sao cho khi ta thay aj cho Xj th mi ch con Si l true. Thut ton 2.2 (Tnh quan h i vi v t khng quy) Vo: Mt chng trnh Datalog khng quy v ng vi mi v t EDB c mt quan h EDB tng ng cho trc.
-31-

Ra: i vi mi v t IDB pi ta nhn c mt biu thc i s quan h Pi tng ng da trn cc quan h EDB cho trc. Phng php : Trc ht ta bin i cc quy tc sao cho u ca n khng c hng hay bin lp li. Tip theo ta xy dng th ph thuc i vi chng trnh Datalog v sp th t cc v t p1,...,pn sao cho nu trong th ph thuc c mt cung i t pi n pj th i<j Chng ta c th lm nh vy v chng trnh Datalog l khng quy v do th ph thuc khng c chu trnh. Lc vi i=1,...,n dng ca biu thc i vi quan h Pi (ca pi) nh sau : Nu pi l v t EDB, t Pi l quan h cho trc i vi pi , ngc li nu pi l v t IDB th thc hin theo cc bc sau : Bc 1. i vi mi quy tc r c pi l u quy tc, dng thut ton 2.1 tm mt biu thc Er m to ra quan h Rr i vi thn ca quy tc r. Bc 2. V chng trnh l khng quy nn tt c cc v t xut hin trong thn ca quy tc r c cc biu thc i vi cc quan h ca chng trong cc quan h EDB. Thay th biu thc thch hp i vi mi hin hnh ca mt quan h IDB trong biu thc Er c mt biu thc mi Fr. Bc 3. t tn li cc bin nu cn thit, chng ta s gi s rng u ca mi quy tc i vi pi l pi(X1,...,Xk) .Lc biu thc i vi Pi l hp ca tt c
X1 ,..., X ( Fr )
k

i vi mi quy tc r c pi l u.

Ni cch khc, gi s Hi l tp cc quy tc c u l pi, gi thit u ca cc pi c dng pi(X1,...,Xk) trong Xi Xj vi mi i j, Q1,...,Qm l cc v t EDB, P1,...,Pn l cc v t IDB, lc biu thc i vi Pi s l :
(F ) EVAL(pi, Q1,...,Qm, P1,...,Pn) = rH i X1 ,..., X k r

trong Fr = EVAL-RULE(r, Q1,...,Qm, P1,...,Pn) V d 2.10 Cho chng trnh Datalog nh sau : (1) p(a,Y) r(X,Y)
-32-

(2) p(X,Y) s(X,Z) r(Z,Y) (3) q(X,X) p(X,b) (4) q(X,Y) p(X,Z) s(Z,Y) Trong r, s l cc v t EDB c cc quan h cho trc R, S V t p, q l cc v t IDB, i vi mi v t ny ta cn tnh cc quan h P v Q. Trc ht ta bin i cc quy tc ny (ch cn sa i quy tc (1) v (3)), ta c cc quy tc mi nh sau : (1) p(X,Y) r(Z,Y) X=a (2) p(X,Y) s(X,Z) r(Z,Y) (3) q(X,Y) p(X,b) X=Y (4) q(X,Y) p(X,Z) s(Z,Y) Th t thch hp lm vic l p trc ri n q v q ph thuc vo p nhng khng o li. Theo thut ton 2.1 th quan h i vi thn quy tc (1) l : R(Z,Y) DX(X) trong DX(X) = {a}, quan h i vi thn quy tc (2) l : S(X,Z) R(Z,Y). C hai biu thc ny phi chiu ln danh sch cc thuc tnh X,Y trc khi ly php hp. Nh vy biu thc i vi P l : P(X,Y) =
X ,Y ( R ( Z , Y ) a}( X )) X ,Y ( S ( X , Z ) ( Z , Y )) { R

Quan h i vi quy tc 3 c tnh nh sau : Dng thut ton 2.1, biu thc i vi ch con p(X,b) l :
X ( Z =b ( P ( X , Z ))

y Z l bin c chn ty khng xut hin trong php chiu Biu thc ny sinh ra mt quan h trn thuc tnh X v ta cn mt biu thc m c th to ra tt c cc gi tr c th c ca Y. Do Y=X nn cc gi tr ca X c th l gi tr ca Y, v vy ta c th ly mt i s X xut hin, chnh l i s u tin ca P, lm thnh mt min ca Y. Nh vy min ny c th c th biu th bi Y ( P(Y ,W )) , w l bin ty . Sau ta ly tch ca cc biu thc i vi p(X,b) vi min ca Y, ta chn X=Y do ch con X=Y
-33-

trong quy tc (3). Vy biu thc ca thn quy tc (3) l : X =Y ( X ( Z =b ( P ( X , Z ))) Y ( P (Y , W )) ) Cui cng, biu thc i vi thn quy tc (4) l : p(X,Z) S(Z,Y) vy biu thc i vi quan h Q l : S Q(X,Y)= X =Y ( X ( Z =b ( P( X , Z ))) Y ( P(Y ,W )) ) X ,Y ( P( X , Z ) ( Z , Y )) nh l 2.2 Thut ton 2.2 tnh ng quan h i vi mi v t theo ngha biu thc xy dng i vi mi v t IDB s sinh hai iu sau y : 1. Tp cc s kin i vi cc v t c th chng minh t cc s kin EDB v cc quy tc ca chng trnh Datalog. 2. M hnh cc tiu duy nht ca chng trnh Datalog. 2.3 nh gi chng trnh Datalog quy 2.3.1 H phng trnh i s quan h ng vi chng trnh Datalog Trong trng hp tng qut, Thut ton 2.2 khng th p dng cho cc chng trnh Datalog quy, bi v khng th sp th t cho cc v t thut ton c th p dng. iu c ngha bt c khi no c mt chu trnh trong th ph thuc th v t u tin trong chu trnh m chng ta th nh gi s c mt quy tc cha mt ch con m biu thc quan h ca n l cha th tm c. Tuy nhin s tip cn ca l thuyt chng minh vn cn c ngha nu t mt quy tc ta nhn c mt vi s kin v sau dng cc s kin mi ny trong thn quy tc nhn c cc s kin khc. Nu chng ta bt u vi mt c s d liu hu hn v ta ch dng cc quy tc Datalog th ch c mt s hu hn cc s kin khc nhau l c th nhn c, chng phi c dng p(a1,..,ak) trong p l mt v t IDB cho trong cc quy tc v a1,..,ak l cc hng xut hin trong c s d liu. Xt chng trnh Datalog vi cc quan h EDB R1,...,Rk cho v cc quan h IDB P1,...,Pm cn tnh. Vi mi i (1 i m) ta c th biu din cc
-34-

s kin c th chng t i vi v t pi (tng ng vi quan h IDB Pi) bng cch gn : Pi := EVAL( pi , R1 ,..., Rk , P1 ,..., Pm ) trong EVAL l hp ca EVAL-RULE i vi mi quy tc ca pi sau khi c chiu ln trn cc bin ca u quy tc. Nu ta bt u vi tt c Pi l rng v thc hin mt php gn nh th i vi mi i, lp li nhiu ln nh vy th n mt lc no s khng th c cc s kin no l c thm vo trong cc quan h ca Pi. Nh vy, php gn tr thnh php bng v tp cc s kin c th chng minh tha mn cc phng trnh : Pi = EVAL( pi , R1 ,..., Rk , P1 ,..., Pm ) = Ei(P1,...,Pm) i = 1,..., m H phng trnh ny c gi l h phng trnh i s quan h tng ng vi chng trnh Datalog P. Ch : Trong trng hp n gin, nu P l mt chng trnh Datalog khng quy th ta c th bin i h phng trnh trn nh sau : Ta c th nh s li cc v t pi sao cho nu i<j th khng tn ti quy tc vi u l pi v thn cha pj , khi trong Ei khng cha cc Pj vi j i. H phng trnh quan h trn tr thnh : P1 = E1(,...,) P2 = E2(P1,,...,) P3 = E3(P1,P2,,...,) ... Pn = En(P1,P2,...,Pn-1,) V d 2.11 Xt chng trnh Datalog: (1) sibling(X,Y) parent(X,Z) parent(Y,Z) X Y (2) cousin(X,Y) parent(X,Xp) parent(Y,Yp) sibling(Xp,Yp) (3) cousin(X,Y) parent(X,Xp) parent(Y,Yp) cousin(Xp,Yp) (4) related(X,Y) sibling(X,Y)
-35-

(5) related(X,Y) related(X,Z) parent(Y,Z) (6) related(X,Y) related(Z,Y) parent(X,Z) Gi S ,C v R ln lt l quan h tng ng vi cc v t IDB sibling, cousin, ralated, P l quan h tng ng vi cc v t EDB parent. T chng trnh Datalog trn ta c h phng trnh i s quan h sau y:
S ( X , Y ) = X ,Y ( X Y ( P ( X , Z ) (Y , Z ))) P C ( X , Y ) = X ,Y ( P ( X , X p ) (Y , Y p ) ( X P , Y p )) P S

X ,Y ( P ( X , X p ) (Y , Y p ) ( X P , Y p )) P C
R ( X , Y ) = S ( X , Y ) X ,Y ( R ( X , Z ) (Y , Z )) X ,Y ( R( Z , Y ) ( X , Z )) P P

2.3.2 Cc im bt ng ca h phng trnh Datalog nh ngha 2.4 Gi s R1,...,Rk l cc quan h EDB tng ng vi cc v t EDB r1,...,rk. Gi P1,...,Pm l cc quan h tng ng vi cc v t IDB p1,...,pm. Mt im bt ng ca h phng trnh Datalog l mt li gii h phng trnh Datalog. nh ngha 2.5 Mt im bt ng P1,...,Pm ca h phng trnh Datalog (ng vi cc quan h EDB R1,...,Rk ) cng vi cc quan h ny to ra mt m hnh ca cc quy tc sinh ra cc phng trnh. Nu S1= P1(1) ,..., Pm (1) v S2= P1( 2) ,..., Pm ( 2) l hai nghim ca tp cc phng trnh cho, ta bo S1 S2 nu quan h Pi l mt tp con ca quan h Pi i = 1,..., m . Lc So c gi l im bt ng nh nht (least fixed point) ca tp cc phng trnh i vi cc quan h EDB R1,...,Rk nu mi nghim Si ta u c
(1) ( 2)

So Si v tng qut hn, So l im bt ng cc tiu (minimal fixed point) nu khng c im bt ng S no khc m S So. Ch : Nu c im bt ng nh nht th l im bt ng cc tiu duy nht, tuy nhin c mt vi im bt ng cc tiu m khng th so snh bi quan h v trong trng hp khng c im bt ng nh nht. Tuy nhin, khng phi mi m hnh ca tp cc quy tc Datalog u l im bt ng i vi h phng trnh Datalog ca n bi v m hnh c th
-36-

c "qu nhiu" s kin v mt vi s kin xut hin v tri nhng khng xut hin v phi ca cc phng trnh. Ta s thy iu ny qua v d sau y : V d 2.12 Cho chng trnh Datalog sau y : (1) path(X,Y) arc(X,Y) (2) path(X,Y) path(X,Z) path(Z,Y) trong arc l v t EDB v arc(X,Y) l true nu c mt cung t nt X n nt Y, path l v t IDB. Quy tc (1) ni rng mt ng i c th l mt cung n v quy tc (2) ni rng vic kt ni ng i t X ti Z v mt ng i t Z ti Y s cho ta mt ng i t X ti Y. Gi A l quan h EDB tng ng vi v t arc, P l quan h tng ng vi v t IDB path, ta c quan h i vi v t path nh sau :
P ( X , Y ) = A( X , Y ) X ,Y ( P ( X , Z ) (Y , Z )) P

(3)

Gi s tp cc nt l {1,2,3} v A={(1,2),(2,3)} Quy tc (1) cho ta (1,2) v (2,3) trong P v t quy tc (2) suy ra (1,3) trong P. Tuy nhin ta khng i hi suy din thm s tn ti cc ng i khc, bi v tp {(1,2),(2,3),(1,3)} l mt nghim ca phng trnh i s quan h (3) bi v ng thc sau l ng :
{( {(1,2),(2,3),(1,3)} = {(1,2),(2,3)} X ,Y ({(1,2), (2,3), (1,3)} 1,2), (2,3), (1,3)})

Nghim ny l c chng minh theo ng ngha ca l thuyt chng minh bi v ta nhn c n t quan h EDB A mt cch chnh xc nhng g m quy tc mang li. D thy rng l m hnh cc tiu ca cc quy tc hoc l im bt ng ca phng trnh (3). Tuy nhin c cc li gii khc i vi phng trnh (3). rng (1,1) l trong P (trong quy tc (2) ly X=Y=Z=1). Cc quy tc cho khng a ra c cc ng i nokhc na, vi A={(1,2),(2,3)}, ta c P= {(1,1),(1,2),
-37-

(2,3),(1,3)} Nh vy mt nghim khc ca phng trnh (3) l : {(1,1),(1,2), (2,3),(1,3)} bi v ng thc sau l ng : {(1,1),(1,2),(2,3),(1,3)}= {(1,2),(2,3)}
{( X ,Y ({(1,1), (1,2), (2,3), (1,3)} 1,1), (1,2), (2,3), (1,3)})

Mc khc nu vn cho A={(1,2),(2,3)}, ta khng th t P={(1,1),(1,2),(2,3), (1,3),(3,1)} bi v :


X ,Y ({(1,2), (2,3), (1,3), (3,1)} 1,2), ( 2,3), (1,3), (3,1)}) = {(1,3), (2,1), (1,1), (3,2), (3,3)} {(

Ta c (3,2) l mt b khng xut hin v tri l tp {(1,1),(1,2),(2,3),(1,3), (3,1)}. Cui cng ta s xt mt m hnh m khng c im bt ng. t A = v P={(1,2)} Trong quy tc (1) khng c cch thc hin i vi thn quy tc arc(X,Y) tr thnh true v A = . Cng vy thn ca quy tc (2) cng khng th true. Vy cc quy tc (1) v (2) lun lun l true. Do {(1,2) }l mt m hnh ca cc quy tc cho. Tuy nhin phng trnh (3) khng th l true v v tri l{(1,2)} nhng v phi l . T P={(1,2)} khng phi l im bt ng ca phng trnh i s quan h (3). 2.3.3 Gii h phng trnh Datalog quy bng thut ton s ng Ta c th gii h phng trnh i s quan h bng cch gi s ban u cc Pi l rng v cc quan h EDB Ri cho trc. Lc p dng EVAL i vi cc gi tr hin ti ca cc quan h IDB v cc gi tr ca cc quan h EDB c cc gi tr mi i vi cc quan h IDB. Qu trnh ny c lp li cho n khi khng th thay i cc quan h Pi na. Thut ton 2.3 (Thut ton s ng) : Vo: Mt chng trnh Datalog vi cc v t EDB r1,...,rk tng ng vi cc quan h EDB R1,....,Rk cho trc v cc v t IDB p1,...,pm. Ra: H phng trnh Datalog ca chng trnh Datalog c nghim l im
-38-

bt ng nh nht. Phng php : Trc ht t cc quy tc ca chng trnh Datalog ta xy dng c h phng trnh i s quan h. H phng trnh ny c cc bin P1,...,Pm tng ng vi cc v t IDB p1,...,pm, v phng trnh i vi Pi l : Pi = EVAL(pi, R1,...,Rk, P1,...,Pm) Lc bc khi u ta cho cc Pi l rng v p dng lp li nhiu ln EVAL thu c cc gi tr mi ca Pi. Khi khng th thm c cc b no na i vi mi quan h IDB, ta thu c im bt ng nh nht. Chi tit thut ton c din t theo ngn ng "ta" Pascal nh sau : for i :=1 to m do Pi = ; repeat for i :=1 to m do Qi :=Pi; /*lu gi tr c ca Pi */ for i :=1 to m do Pi := EVAL(pi, R1,...,Rk, Q1,...,Qm) until Pi = Qi i=1,...,m; output Pi , i=1,...,m nh l 2.3 Thut ton 2.3 s to ra im bt ng nh nht ca h phng trnh Datalog c to ra t cc quy tc ca chng trnh Datalog. Chng minh : rng cc b c t trong Pi bao gm cc k hiu hoc thuc cc quan h EDB hoc thuc trong chnh cc quy tc. Trc tin ta chng minh bng quy np theo cc bc lp : i vi mi i, th gi tr ca Pi c to ra bc j l mt tp cc b bao gm cc b c to ra c to ra bc trc i vi quan h . Tht vy, trc bc lp 1 th cc Pi = vy yu cu trn ng. quy np, ch rng php ton EVAL l n iu. bc j>1 cc i s Ri ca EVAL trong thut ton l khng thay i v Qi l nhng gi tr ca
-39-

Pi c to ra bc j-1. Trong vic so snh, cc i s ca EVAL bc j1 l ging vi cc Ri v cc gi tr ca cc Pi c to ra b j-2 (nu j=2 th tt c cc Pi l rng). Bng gi thit quy np, cc gi tr ca P i c sinh ra bc j-1 l bao hm cc gi tr tng ng bc j-2. Do tnh n iu ca EVAL nn gi tr ca mi Pi c sinh ra bc j l mt tp bao hm cc gi tr ca Pi bc j-1. Vy mi Pi to ra mt dy cc gi tr Vi1,Vi2,... v l dy tng : Vi1 Vi2 ... Vik ... Mc khc rng i vi mt tp cc quy tc cho th c mt gii hn trn i vi bc ca cc v t, gi s l a. Cng vy i vi bng cc quan h cho ca cc v t EDB c mt s hu hn cc k hiu xut hin trong c s d liu v cc quy tc, gi s l b. Lc c nhiu nht ba b khc nhau c th xut hin trong mi quan h. Nh vy khng th c trng hp Pi gia tng s cc b ca n vt qu ba b trong cc bc lp. V c m v t IDB nn khng th c nhiu hn mba bc lp m Pi c thm cc b mi. Vy sau khng qu mba bc lp thut ton s dng. By gi ta chng minh khi thut ton dng th n to ra im bt ng nh nht. Trc ht d dng quy np trn s bc lp rng nu mt b c a vo Pi th trong Pi trong mi li gii ca cc phng trnh bi v phng trnh i vi Pi chnh xc l php gn i vi Pi : Pi := EVAL(pi, R1,...,Rk, Q1,...,Qm) Nu mi b trong mi quan h v phi c chng minh l c trong mi li gii th bt k b no xut hin trong v tri cng thuc Pi trong mi li gii. Nh vy nu So l danh sch cc quan h c sinh ra theo thut ton th So th So S vi mi li gii S. rng theo thut ton a ra th So chnh l nghim ca h. Tm li khi thut ton dng th n to ra im bt ng nh nht.
-40-

V d 2.13 Xt chng trnh Datalog P v d 2.11 Gi s bit cc quan h EDB ca P nh sau : P={ca,da,db,eb,fc,gc,hd,id,ie,fe,jf,jh,kg,ki} p dng thut ton s ng tm m hnh nh nht cho chng trnh Datalog trn, sau 7 bc lp thut ton s dng, kt qu nh sau:

Bc S 1 cd de fg hi if 2 cd de fg hi if 3 cd de fg hi if

C fh fi gh gi hi ii jk fh fi gh gi hi ii jk jj kk fh fi gh gi hi ii jk jj kk

R cd de fg hi if cd de fg hi if ch ci di df fk hk ij gd he ie jg cd de fg hi if ch ci di df fk hk ij gd he ie jg je ke cj ck dk dj gh gi hf ii jk cd de fg hi if ch ci di df fk hk ij gd he ie jg je ke cj ck dk dj gh gi hf ii jk hj ik jf kg cd de fg hi if ch ci di df fk hk ij gd he ie jg je ke cj ck dk dj gh gi hf ii jk hj ik jf kg jj kk cd de fg hi if ch

cd de fg hi if

cd de fg hi if

fh fi gh gi hi ii jk jj kk

cd de fg hi if

fh fi gh gi hi ii jk jj kk

cd de fg hi if

fh fi gh gi hi ii jk
-41-

jj kk

ci di df fk hk ij gd he ie jg je ke cj ck dk dj gh gi hf ii jk hj ik jf kg jj kk

2.3.4 Gii h phng trnh Datalog quy bng thut ton bn s ng Vn m ta quan tm l khi tnh cc gi tr mi ca Pi, cc b mi no c thm vo i vi cc v t IDB bc trc. iu quan trng l khi thc hin th tc EVAL, i vi mi b c sinh ra ta c th xc nh mt quy tc c th cho pi m t quy tc b c to ra. Hn na i vi mi ch con ca quy tc ta c th xc nh mt b ca quan h i vi ch con c dng to ra b . Phng php xy dng thut ton bn s ng nh sau : Theo phng php ca thut ton s ng, khi tnh Pi bc k+1 ta cn phi tnh li Pi bc k, iu ny gy ra vic lng ph thi gian v b nh. Thut ton bn s ng sau y khc phc c nhc im , tnh
Pi k +1

bc k+1 ta ch cn tnh cc b mi c sinh ra :

Pi k +1 = Pi k +1 Pi k

Xt quy tc r vi cc ch con thng thng S1,...,Sn (trong danh sch ny cc ch con khng phi l v t xy dng trong). t R1,...,Rn l cc quan h hin ti tng ng vi cc ch con S1,...,Sn v R1,..., Rn l danh sch cc quan h gia tng tng ng (Ri l tp hp cc b thm vo ca Ri vng lp gn nht ca thut ton s ng). Nhc li EVAL-RULE(r,T1,...,Tn) l biu thc i s quan h c dng thut ton 2.1 tnh quan h i vi thn ca quy tc r, khi thut ton dng quan h Ti nh l quan h i vi ch con Si (Ti l Ri trong thut ton 2.1). Lc quan h gia tng i vi quy tc r l hp ca n quan h : EVAL-RULE(r,R1,...,Ri-1, Ri,Ri+1..., Rn)
-42-

vi mi i=1,...,n

Nh vy, trong mi biu thc trn th chnh xc c mt quan h gia tng c thay th i vi ton b quan h . Ta nh ngha : EVAL-RULE-INCR(r,R1,...,Rn,R1,...,Rn) =
1i n

EVAL RULE (r , R1 ,..., Ri 1 , Ri , Ri +1 ,..., Rn )

Ta gi s i vi cc v t EDB r1,...,rk c cho tng ng bi cc quan h EDB R1,...,Rk. i vi mi v t IDB p1,...,pm c cho tng ng vi cc quan h IDB P1,...,Pm v cc quan h gia tng tng ng P1,...,Pm. Gi p l v t IDB, nh ngha : EVAL-INCR(p,R1,...,Rk,P1,...,Pm,P1,...,Pm) l hp ca cc EVAL-RULEINCR sinh ra i vi mi quy tc cha p. Trong EVAL-RULE-INCR cc quan h gia tng i vi v t EDB l rng, v vy cc hng thc i vi cc ch con ny l cc v t EDB khng xut hin trong php hp i vi EVAL-RULE-INCR. V d 2.14 Xt li v d 2.11 Gi P,S,C,R l cc quan h tng ng vi cc v t parent, sibling, cousin, related v S, C, R l cc quan h gia tng tung ng i vi cc v t IDB ny. Bi v sibling c nh ngha ch trong cc hng thc ca quan h EDB parent nn ta c : EVAL-INCR(sibling,P) = V t cousin c nh ngha bi quy tc (2) v (3) v nhng quy tc ny c duy nht mt v t IDB : sibling trong quy tc (2) v cousin trong quy tc (3). Nh vy i vi mi quy tc ny th EVAL-RULE-INCR c duy nht mt hng thc v cng thc i vi v t cousin l hp ca cc hng thc mi quy tc (2) v (3) : EVAL-INCR(cousin,P,S,C,S,C)=
X ,Y ( P ( X , X p ) (Y , Y p ) S ( X p , Y p )) P
X ,Y ( P( X , X p ) (Y , Y p ) C ( X p , Y p )) P

Sau cng cng thc c lng gia tng i vi related c tnh tng t
-43-

nh sau : EVAL-INCR(related,P,R,S,R,S)=
P P S(X,Y) X ,Y (R( X , Z ) (Y , Z )) X ,Y (R( Z , Y ) ( X , Z ))

Thut ton 2.4 (Thut ton bn s ng ) Vo: Mt tp hp cc quy tc Datalog chnh tc vi cc v t EDB r1,...,rk tng ng vi cc quan h EDB R1,....,Rk cho trc v cc v t IDB p1,...,pm tng ng vi cc quan h IDB cn tnh P1,...,Pm. Ra: im bt ng nh nht ca h phng trnh i s quan h nhn c t cc quy tc ny. Phng php : Ta dng EVAL mt ln tnh cc quan h khi u v ri dng EVAL-INCR lp i lp li trn cc quan h IDB gia tng. Trong chi tit thut ton sau, i vi mi v t IDB pi c mt quan h Pi tng ng m gi tt c cc b v c mt quan h gia tng Pi ch gi nhng b c thm vo bc trc. Chi tit thut ton c din t theo ngn ng "ta" Pascal nh sau : for i :=1 to m do begin Pi= EVAL(pi, R1,...,Rk, ,...,); Pi = Pi; end; repeat for i :=1 to m do Qi := Pi; /*lu gi tr c ca Pi */ for i :=1 to m do begin Pi := EVAL-INCR(pi,R1,...,Rk,P1,...,Pm, Q1,..., Qm); Pi := Pi-Pi /*Loi b nhng b "mi" thc ra xut hin trc */
-44-

end; for i :=1 to m do Pi := PiPi; until Pi := i=1,...,m; output Pi , i=1,...,m nh l 2.4 Thut ton 2.4 tnh ng im bt ng nh nht ca chng trnh Datalog cho v dng. Chng minh : Ta s ch ra rng thut ton 2.3 v 2.4 cho ra cng mt tp cc b i vi mi quan h IDB mi bc lp. Do thut ton 2.3 tm c im bt ng nh nht nh vy thut ton 2.3 cng tm c im bt ng nh nht. Gi thit quy np hin ti rng mt b c thm mt vi quan h IDB P trong bc j ca thut ton 2.3 m khng c t vo quan h cc bc trc s c t vo trong c hai P v P bc lp j ca thut ton 2.4. R rng bc 1 iu ny l ng bi v cng mt EVAL c dng trong c hai thut ton. quy np, ch rng bc i nu mt b c thm vo i vi mt vi quan h IDB P v b cha c trong quan h P cc bc trc th phi c mt vi quy tc r cha v t p (v t tng ng vi quan h P) v cc b trong cc quan h i vi tt c ch con ca r sao cho : (i) Nhng b ny sinh ra (ii) C t nht mt b c thm vo quan h T ca n bc lp i-1 Bng gi thit quy np vi j = i-1 v theo nhn xt (ii) trn th trong T khi ta bt u bc lp i ca thut ton 2.4. Do EVAL-INCR dng T (ni ng hn l cc Qi vi Qi := T) s sinh ra b bi v n dng ton b cc quan h i vi cc ch con ngoi tr mt quan h m to ra v s c to ra bi T. V d 2.15 Xt chng trnh Datalog P c cho trong v d 2.11
-45-

bc lp u tin, ch c quan h S i vi sibling l c cha mt s b, bi v ch c v t c mt quy tc m khng cha v t IDB trong thn. Nh vy vng lp th hai S v S c hai u l quan h y i vi sibling trong khi cc quan h IDB khc v cc quan h gia tng u l rng.Trong bc 2, tc l trong ln lp u tin ca repeat th S = v ta tnh c :
P C=C= X ,Y ( P( X , X p ) (Y , Y p ) S ( X p , Y p ))

R=R=S bc 3 v S l rng, cc quy tc (2) v (4) khng sinh thm cc b mi nhng v C v R c mt vi b, nh vy ta tnh cc C v R tip theo cng thc :
P C= X ,Y ( P( X , X p ) (Y , Y p ) C ( X p , Y p )) P P R= X ,Y (R( X , Z ) (Y , Z )) X ,Y (R( Z , Y ) ( X , Z ))

Cc gi tr C v R li c a vo C v R Lp li cc bc khc theo cng phng php nh vy. Thut ton kt thc sau 6 bc lp, kt qu nh sau : Bc S C R 1 fh fi gh cd de fg gi hi ii jk hi if 2 ch ci di jj kk df fk hk ij gd he ie jg C R fh fi gh gi cd de hi ii jk fg hi if fh fi gh gi cd de hi ii jk jj fg hi if kk ch ci di df fk hk ij gd he ie jg je ke cj cd de fg hi fh fi gh gi cd de
-46-

S cd de fg hi if cd de fg hi if

ck dk dj if gh gi hf ii jk

hi ii jk jj fg hi if kk ch ci di df fk hk ij gd he ie jg je ke cj ck dk dj gh gi hf ii jk hj ik jf cd de fg hi fh fi gh gi cd de kg if hi ii jk jj fg hi if kk ch ci di df fk hk ij gd he ie jg je ke cj ck dk dj gh gi hf ii jk hj ik jf kg jj kk cd de fg hi fh fi gh gi cd de if hi ii jk jj fg hi if kk ch ci di df fk hk ij
-47-

gd he ie jg je ke cj ck dk dj gh gi hf ii jk hj ik jf kg jj kk cd de fg hi fh fi gh gi cd de if hi ii jk jj fg hi if kk ch ci di df fk hk ij gd he ie jg je ke cj ck dk dj gh gi hf ii jk hj ik jf kg jj kk

2.4 nh gi chng trnh Datalog theo cc thnh phn lin thng mnh Cc thut ton s ng hoc bn s ng thng c s dng xc nh m hnh nh nht ca chng trnh Datalog theo cc bc lp. Qu trnh lp s kt thc khi khng cn s kin mi no c pht sinh. Vic tnh ton theo cch ny c nhc im l phi xem xt n tt c cc quy tc trong
-48-

chng trnh mi bc lp. Chng ta c th ci tin bng cch phn r qu trnh tnh ton thnh mt dy cc tnh ton nh hn, trong vic tnh ton c thc hin theo tng mc ca chng trnh. Ta c mt s nh ngha sau: nh ngha 2.6 Gi s P l chng trnh Datalog. Thnh phn lin thng mnh (SCC - Strongly Connected Component) ca th ph thuc DG(P) = (V,E) l tp ln nht C V sao cho vi mi cp nh u, v C c mt ng i t u ti v v ngc li. C hai kiu SCC: - SCC tm thng l SCC m tp cc cnh ca n l rng. SCC tm thng ch c mt nt. Cc SCC tm thng tng ng vi cc v t khng qui trong chng trnh. - SCC khng tm thng l SCC m tp cc cnh ca n khc rng. nh ngha 2.7 th ph thuc thu gn ca chng trnh Datalog P l mt th c hng G' = (V', E'), trong tp nh V' chnh l tp cc thnh phn lin thng mnh {S1,S2,..., Sk} ca G. Tp cnh E' = {(Si, Sj) / i j v p Si, q Sj : (p,q) E}. R rng th ph thuc thu gn G' l mt th c hng phi chu trnh. Ta c tnh cht sau: Mnh 2.1 Tn ti mt th t tuyn tnh trn th ph thuc thu gn G', ngha l mt s ch nh th t cc nh ca G' sao cho nu c mt cnh t nh i n nh j ca G' th i < j. nh ngha 2.8 (nh s hiu ca mc cho cc nh ca th ph thuc thu gn) Mi nh ca th ph thuc thu gn G' = (V', E') c gn mt s hiu ca mc, cc v t EDB thuc mc 0, mt nh Si c gi l c mc thp hn nh Sj nu c mt ng i t Si n Sj trong G', cc v t trong cng mt nh c gn bi s hiu mc ca nh . V d 2.16 Xem chng trnh Datalog P ( n gin ta b qua cc i) gm cc quy tc: P = { q r; q s; r u s; u r t }
-49-

Lc ta c th ph thuc thu gn ca P nh hnh v sau:

-50-

q r, u s t

Hnh 3.4 th ph thuc thu gn ca chng trnh trong v d 2.16 th ph thuc thu gn G' gm cc nh S1 = {s}, S2 = {t}, S3 = {r, u}, S4 = {q}, ta c S1, S2, S3, S4 l mt th t tuyn tnh ca G' v S1, S2 thuc mc 0, S3 thuc mc 1, S4 thuc mc 2. Thut ton 2.5 Vo: Chng trnh Datalog P, DB l CSDL EDB cho. Ra: M hnh nh nht ca P Phng php: Thc hin theo cc bc sau: 1. Xy dng cc thnh phn lin thng mnh ca chng trnh Datalog P v sp xp chng theo mt th t tuyn tnh. 2. Gi S1,..., Sk l cc nh ca th ph thuc thu gn ca P, thc hin vic nh s hiu mc cho cc nh Si, i = 1,..., k. 3. Gi Pi l tp cc quy tc trong P nh ngha cc v t thuc mc i. Qu trnh tnh ton c thc hin theo mi mc. D liu vo ca mi mc l li gii ca chng trnh mc trc . Gi
EVALPi (DB ) l

li gii vic nh gi

chng trnh Pi theo thut ton bn s ng vi CSDL EDB l DB cho. Bc 3 c vit theo ngn ng ta Pascal nh sau: I := ; for i := 1 to h do /* h l s mc ca chng trnh */ I :=
EVALPi ( DB I ) ;

output I;
-51-

nh l 2.5 Thut ton 2.5 l ng n v c phc tp tnh ton vi thi gian a thc. Chng minh: Tnh ng n: Do S1,..., Sk l cc nh ca th ph thuc thu gn v c sp xp theo cc mc nn v t trong cc chng trnh Pj vi j < i c th xem l cc v t EDB cho chng trnh Pi. Mt khc, cc quy tc c u thuc Pi th khng cha cc v t thuc Pi+1, t c th tnh cc quan h tng ng vi cc v t ca Pi. Nh vy vic xc nh m hnh nh nht ca P c th tin hnh theo tng Pi, d liu vo ca mi Pi l li gii ca mc trc . Tnh hi t ca thut ton c suy t tnh hi t ca thut ton bn s ng c p dng cho tng mc. V vy kt thc thut ton ta nhn c m hnh nh nht ca P. phc tp: Bi v thut ton xy dng cc thnh phn lin thng mnh ca th ph thuc DG(P) l tuyn tnh theo kch thc ca th v thut ton bn s ng c thc hin vi thi gian a thc nn phc tp ca thut ton trn cng c thc hin vi thi gian a thc theo kch thc ca chng trnh. Ch : Vic phn nh tnh ton theo cc mc c nhng thun li sau y: - C t quy tc c tnh ton mi bc lp. - Khng phi tt c cc nguyn t trong thn quy tc u phi tnh trn mi bc lp. - Cc chng trnh Datalog con trong mi mc c th c nhng tnh cht c bit no , chng hn chng trnh tuyn tnh. Trong trng hp vic nh gi chng trnh s n gin hn nhiu. V d 2.17 Xt chng trnh Datalog sau y: p1(X,Y) e1(X,Y) p1(X,Y) e1(X,Z) p1(Z,Y) p2(X,Y) e2(X,Y)
-52-

p2(X,Y) e2(X,Z) p2(Z,Y) p(X,Y) p1(X,Z) p2(Z,Y) trong e1, e2 l cc v t EDB, p1, p2, p l cc v t IDB, X, Y, Z l cc bin. Gi P1, P2, P l cc quan h IDB tng ng vi cc v t IDB p1, p2, p v Q1, Q2 l cc quan h EDB tng ng vi cc v t EDB e1, e2. Gi s cc quan h Q1, Q2 c cho bi: Q1 = {(a,b), (b,c), (c,d)} Q2 = {(d,f), (f,g), (g,h)} th ph thuc DG(P) nh hnh v sau y: p p1 p2

e1 e2 Hnh 3.5 th ph thuc ca chng trnh trong v d 2.17 th ph thuc thu gn G' gm cc nh S1 = {e1}, S2 = {e2}, S3 = {p1}, S4 = {p2}, S5 = {p} ta c S1, S2, S3, S4, S5 l mt th t tuyn tnh ca G' v S1, S2 thuc mc 0, S3, S4 thuc mc 1, S5 thuc mc 2. Chng trnh con P(1) : Gm cc quy tc sau : p1(X,Y) e1(X,Y) p1(X,Y) e1(X,Z) p1(Z,Y) p2(X,Y) e2(X,Y) p2(X,Y) e2(X,Z) p2(Z,Y) S dng thut ton bn s ng, ta nhn c quan h i vi v t p1 l: P1 = {(a,b), (b,c), (c,d), (a,c), (b,d), (a,d)} v quan h i vi v t p2 l: P2 = {(d,f), (f,g), (g,h), (d,g), (f,h), (d,h)} Chng trnh con P(2) ch gm mt quy tc:
-53-

p(X,Y) p1(X,Z) p2(Z,Y) Vi cc quan h i vi cc v t p1 v p2 tnh mc 1, ta tnh c quan h i vi v t p l P = {(a,h), (a,g), (a,f), (b,h), (b,g), (b,f), (c,h), (c,g), (c,f)}. 2.5. nh gi chng trnh Datalog trong cc trng hp c bit Trong trng hp tng qut h phng trnh i s quan h c suy ra t chng trnh Datalog c th gii bng phng php s ng hoc bn s ng, tuy nhin sau khi phn mc th cc chng trnh con P' c th c cc tnh cht c bit nh tuyn tnh hoc cc quy tc l tuyn tnh i vi cc v t no ... 2.5.1 Trng hp 1: Nu mi quy tc trong P' l tuyn tnh i vi mi v t pi v phi. Ta gi s rng u ca mi quy tc i vi pi l pi(X1,...,Xk), Hi l tp cc quy tc c u l pi, gi thit u ca cc pi c dng p(X1,...,Xk) trong Xi Xj vi mi i j. Lc EVAL-INCR(pi,P1,...,Pn,P1,...,Pn) l hp ca cc EVAL-RULEINCR sinh ra i vi mi quy tc cha pi, mc khc v mi quy tc trong P' l tuyn tnh i vi mi v t pi v phi nn ta c : EVAL-INCR(pi,P1,...,Pn,P1,...,Pn) = r XEVAL RULE INCR(r , P1 ,..., Pn , P1 ,..., Pn ) H X X ...
i 1 2 k

=1...nEVAL RULE (r, P1,..., Pj 1, Pj , Pj +1,..., Pn ) = rH X X ... X j


i 1 2 k

= j rX X ... XEVAL RULE (r , P1,..., Pj 1 , Pj , Pj +1 ,..., Pn ) =1...n H


i 1 2 k

EVAL ( pi , P1 ,..., Pj 1 , Pj , Pj +1 ,..., Pn ) = j =1...n

Php lp ca thut ton bn s ng tr thnh :


Pi(0) = Pi(0)

= (i=1,...,n) (k=0,1,2,...)
-54-

Pi( k +1) = Pi( k ) Pi( k +1)

trong :
Pi( k +1)

EVAL ( pi , P1 ,..., Pj 1 , Pj , Pj +1 ,..., Pn ) = j =1... n

Pi(k )

2.5.2 Trng hp 2: Nu P' l tuyn tnh, lc : Do mi quy tc ca P' u tuyn tnh nn ta c : EVAL-RULE-INCR(r,P1,...,Pn,P1,...,Pn) =
j = ... n 1

EVAL

RULE (r , P ,..., Pj 1 , P j , P j +1 ,..., Pn ) 1

EVAL RULE (r , P1 ,..., P j 1 , P j , P j +1 ,..., Pn )

Suy ra : EVAL-INCR(pi,P1,...,Pn,P1,...,Pn)

EVAL RULE (r, P1 ,..., Pj 1 , Pj , P j +1 ,..., Pn ) = j =1...n X1 k ... X


= Ei (P1 ,..., Pn ) Do php lp ca thut ton bn s ng tr thnh :
Pi(0) = Pi(0)

= (i=1,...,n) (k=0,1,2,...)
(k ) ( ( , p 2k ) ,..., p (jk ) , p (jk ) ,..., p nk ) ) 1

Pi( k +1) = Pi( k ) Pi( k +1)

trong :
Pi( k +1)

= j =1... Ei (p1 n

Pi(k )

2.5.3 Trng hp 3 : Nu trong chng trnh P' v phi ca mt quy tc ch cha mt v t IDB duy nht l u ca quy tc th php lp bn s ng n gin l :
Pi(0) = Pi(0)

= (i=1,...,n) (k=0,1,2,...)

Pi( k +1) = Pi( k ) Pi( k +1)

trong :
Pi( k +1)

( ( k) k) ( E i ( p1 k ) , p 2k ) ,..., pi(1 , pi( k ) , pi(+1 ,..., p nk ) ) - Pi(k )

-55-

BI TP 1. Chnh tc ha cc quy tc sau: p(X,Y,Z) q(X,X,Y,V) q(Z,V,Y,a) p(X,Y,Y) p(Y,Z,W) r(X,Y,Z,W,X) q(X,Y,Z,W) q(X,Y,Z,W)

trong r l v t EDB v a l hng. 2. Cho chng trnh Datalog: p(X,Y) q(X,Y) p(X,Y) p(X,A) p(A,B) p(B,Y) trong q l v t EDB. a) Gi s q biu din mt cung trong th. Cho bit ngha ca v t p? b) Trnh by kt qu nh gi chng trnh trn theo cc bc lp bng thut ton s ng v bn s ng. 3. Xem cc v t trong mt h thng thng tin v sch: author(A,B) A l tc gi ca cun sch B. copyright(B,Y) Y l nm bn quyn ca cun sch B. cost(B,C) C l gi ca cun sch B. publisher(P,B) P l nh xut bn ca cun sch B bookstore(S,L)L l a im ca nh sch S. sells(S,B) cun sch B c bn bi nh sch S. phone(L,T) T l s in thoi ca a im L. Gi s c 5 quy tc sau: published(P,B,A,Y) publisher(P,B) author(A,B) copyright(B,Y) bookInfo(B,A,Y,C) author(A,B) copyright(B,Y) cost(B,C) storeInfo(S,L,T) bookstore(S,L) phone(L,T) stocks(S,B,C) sells(S,B) cost(B,C) BordersInfo(L,T,B) bookstore("Borders",L)
-56-

phone(L,T)

sells("Borders",B) Tr li cc truy vn sau: a) Gi ca cun sch "Hamlet" nh sch Borders? b) Nh sch no bn cc cun sch c vit bi tc gi Edgar Allan Poe? c. Cho bit cc nh xut bn cc cun sch c bn bi nh sch Barnes v Noble? 4. Xem quy tc sau: p(X) :- q(X,Y) q(Y,X) r(Y). Gi s quan h Q i vi q cha cc b: {(1,2), (2,1), (3,3), (1,3), (3,2)} v quan h R i vi r cha cc b:{(1), (3), (4)}. Cho bit cc b ca quan h P i vi p? i vi mi b ca P, hy a mt php thay th tng ng. 5. Cho chng trnh Datalog: p(X) r(X,Y) s(Y,X). p(X) q(Y,X). q(X,Y) p(X) s(Y,X). Gi s quan h EDB R i vi r cha cc b:{ab,ac,bc,ad,dd} v quan h EDB S i vi s cha cc b {ba,ac,cb,dd}. a) Trnh by kt qu nh gi chng trnh trn theo cc bc lp bng thut ton s ng v bn s ng. b) Xem cc quy tc sau: chain(X,Y) eats(X,Y). chain(X,Y) chain(X,Z) chain(Z,Y). Chng minh rng i vi bt k v t EDB eats (c th c quan h v hn), chng trnh lun lun c m hnh cc tiu sao cho chain(X,Y) l ng nu v ch nu c dy Z1,...Zn, trong Z1=X, Zn=Y, and eats(Zi,Zi+1) vi mi i. c) Hy cho mt v d v mt chng trnh Datalog, trong c quan h EDB v hn v cc quy tc nh ngha v t IDB no m thut ton bn s
-57-

ng khng hi t. M hnh cc tiu ca n l g? 6. Gi s ta c cc quan h EDB: supports(Fan,Team) wears(Team,Color) likes(Fan,Color) Quan h th nht ch ra cc i bng m c ng vin ng h, quan h th hai cho bit cc mu m i bng mc, v quan h th ba ch ra mu m cc c ng vin thch. Hy nh ngha cc v t sau y bng cch dng cc quy tc Datalog an ton, khng cha ph nh: a. happy(F) l ng nu c ng vin F ng h t nht mt i mc mu m F thch. b. shouldSupport(F,T) l ng nu c ng vin F thch tt c cc mu m i T mc. c. veryHappy(F) l ng nu mi i m c ng vin F ng h mc t nht mt mu m F thch. d. grumpy(F) l ng nu c ng vin F khng ng h i mc mu m F thch

-58-

CHNG 3 MT S TIP CN NG NGHA CA CHNG TRNH DATALOG C CHA PH NH Trng hp chng trnh Datalog khng cha ph nh c ng ngha t nhin duy nht l m hnh nh nht ca cc qui tc. Khi chng trnh c cha ph nh mt vi qui tc th ng ngha ca n tr nn phc tp hn nhiu. Lc ny chng trnh c th c hn mt m hnh cc tiu nhng li khng c m hnh nh nht. Chng hn, xt chng trnh nh sau: p(X) r(X), q(X) q(X) r(X), p(X) (1) (2)

Ta gi P, Q v R ln lt l quan h cho nhng v t p, q v v t r. Gi s R c mt b d liu l {1}. Gi S1 l mt th hin trong P= v Q={1}, S2 l th hin trong P={1} v Q=. Chng trnh ny ch c S1 v S2 l nhng m hnh cc tiu v chng khng th so snh vi nhau c. V vy chng trnh ny khng c m hnh nh nht. Phng php trc gic c lng cc qui tc c cha cc ch con ph nh l ly phn b ca nhng quan h cho ch con ph nh. Tuy nhin, khi thc hin php ly phn b th c th dn n nhng quan h v hn nn ta khng th thc hin cc php chiu, php kt ni c th a cc qui tc v thnh cc biu thc i s quan h. Hn na trong cc php ton i s quan h th ch thc hin php ly hiu ch khng s dng php ly phn b. Chng ba s trnh by cc tip cn ng ngha i vi chng trnh Datalog c cha ph nh, bao gm ng ngha m hnh hon ho i vi lp chng trnh Datalog ph nh phn tng, phn tng a phng, ng ngha m hnh hon ho yu i vi lp chng trnh Datalog ph nh phn tng yu v ng ngha m hnh bn vng. Cc tip cn ng ngha ny u da trn logic 2 tr, trong cc s kin ch nhn mt trong hai gi tr ng hoc
-59-

sai. Trc khi tho lun chi tit cc vn trn, chng ta cn n mt s khi nim c s ca chng trnh Datalog v cc tip cn ng ngha i vi chng trnh Datalog. 3.1 Chng trnh Datalog ph nh phn tng nh ngha 3.1 Chng trnh Datalog c cha ph nh (Datalog ) P l chng trnh gm tp cc qui tc c dng: p q1 q2 qm r1 r2 rn (vi m, n 0) trong p, qi, rj (i = 1, 2, , m v j = 1, 2, , n) l cc nguyn t c cc i ch c th l bin hoc hng. Qui tc ny c gi l an ton nu qui tc p q1 q2 qm l an ton v mi bin xut hin trong cc ch con m cng xut hin trong ch con dng. Ta gi s mi qui tc ca chng trnh Datalog u an ton. nh ngha 3.2 th phn tng ca mt chng trnh Datalog P, k hiu SG(P), l mt th c hng c xy dng nh sau: - ng vi mi v t p trong chng trnh P, c mt nh c gn nhn l p. - C mt cnh c hng t nh p n nh q nu c qui tc vi p l v t u v q l ch con khng ph nh. Lc ta bo cnh p q l cnh dng. - C mt cnh c hng t nh p n nh q c gn nhn "_" nu c qui tc vi p l v t u v q l ch con ph nh. Lc ta bo cnh p q l cnh m v v t p l ph thuc m vo v t q. nh ngha 3.3 Mt chng trnh Datalog P gi l quy nu th phn tng ca n c chu trnh, ngc li P c gi l khng quy. V t nm trong chu trnh c gi l v t quy, ngc li gi l v t khng quy. nh ngha 3.4 Chng trnh Datalog c gi l chng trnh phn tng nu th SG(P) ca n khng c chu trnh cha mt hay nhiu cnh m, tc
-60

l khng c ch con ph nh quy. nh ngha 3.5 Tng ca v t p l s ln nht ca cc cnh m trn mt ng i ca SG(P) bt u t v t p. T nh ngha ny ta nhn thy: - Nu v t p ph thuc m vo v t q th tng ca p ln hn tng ca q. - Nu SG(P) khng c chu trnh cha cnh m (tc khng c ph nh quy) th tt c cc tng l hu hn (hoc nu chng trnh P phn tng th tt c cc tng l hu hn). Thut ton phn tng: Vo: Mt tp cc qui tc Datalog, c th c cc ch con ph nh. Ra: Cho bit chng trnh Datalog l c phn tng hay khng, nu c th a ra thut ton phn tng. Phng php: Khi u mi v t ca chng trnh c gn l tng 1. Bc lp : Nu mt qui tc c u l v t p v c ch con ph nh vi v t q, t i, j l cc tng tng ng ca p v q, nu i j th gn li tng ca p l j+1. Hn na, nu u qui tc l p v c ch con khng ph nh vi v t q thuc tng j v i < j th gn li p thuc tng j. Nu n mt lc no m khng tng no b thay i na th chng trnh Datalog l c s phn tng v thut ton to ra cc tng ca cc v t trong chng trnh. Cn nu ta i n tnh hung mt v t no c gn tng ln hn tng s v t th chng trnh Datalog l khng c s phn tng. Chi tit thut ton vit theo ngn ng "ta" Pascal nh sau : For mi v t p do tng[p]=1; Repeat for mi qui tc r c u l p do begin for mi ch con ph nh ca r vi v t q do
-61

tng[p]:=max{tng[p],tng[q]+1}; for mi ch con khng ph nh ca r vi v t q do tng[p]:=max{tng[p],tng[q]}; end; Until khng c s thay i i vi cc tng hay tng ca v t no vt qu s v t. Output Tr li "yes" (chng trnh Datalog l phn tng) nu khng c s thay i i vi cc tng v "no" (khng c xp tng) nu tng ca v t no vt qu s v t. V d 3.1 Xt chng trnh P: p(X) q(X), p(X) th SG(P) ca P nh sau: q p Tng ca p l . Chng trnh ny khng phn tng v th ny c chu trnh cha cnh m. V d 3.2 Cho chng trnh P: r1: p(X) r(X), q(X) r2: q(X) r(X), p(X) th SG(P) ca chng trnh ny nh sau: r p q th ny c chu trnh cha cnh m, v vy chng trnh P ny khng phn tng. V d 3.3 Xt chng trnh P c xc nh bi cc qui tc: r1: p(X,Y) e(X,Y)
-62

r2: p(X,Y) r3: q(X,Y)

p(X,Z), p(Z,Y) t(X,Y), p(X,Y)

th SG(P) ca chng trnh P nh sau: q t p

e Chng trnh ny l phn tng. V t q thuc tng 2, cc v t p, t, e thuc tng 1. Mc du v t q ph thuc m vo v t p nhng v t p khng ph thuc vo v t q. Nh vy ta c th tm ra quan h i vi v t p bng cch ch dng cc qui tc r1 v r2, dng qui tc r3 tm ra quan h cho v t q. Qu trnh ny, vi cc quan h cho i vi cc v t EDB r v e, s sinh ra m hnh ca chng trnh. Kt qu ca vic tnh ton cc v t theo cch ny thng c gi l m hnh hon ho. Thut ton tm m hnh hon ho ca chng trnh Datalog ph nh phn tng: tng: Vi chng trnh Datalog l phn tng v an ton th ta c th c lng cc v t IDB theo th t cc tng ca chng, bt u t tng thp nht. Ta sp xp cc tng theo th t bt u t tng thp nht. Gi s p l v t c tng i, nu qui tc c p l u v q l ch con c tng nh hn i th ta c th nhn c quan h ca q, bi v quan h ny hoc l quan h EDB hoc c tnh cc tng trc . Nu khng c ch con c tng ln hn i v nu q l ch con ph nh th tng ca q l nh hn i. Qu trnh ny s sinh ra mt trong s im bt ng cc tiu ca cc qui tc v n c gi l m hnh hon ho. Hn na, vic tnh cc v t IDB theo th t ca chng, s xut hin cc tng lun lun t nhin v cho ta im bt ng c gi l m
-63

hnh hon ho. y c xem l ng ngha ca chng trnh Datalog phn tng an ton. Ngc li, chng trnh khng phn tng c th li cho chng ta khng mt im bt ng no "ng" c, mc du c nhiu s la chn t chng. Nu qui tc r cha ch con ph nh q(X1,...,Xn) c n i. Gi Q l quan h tnh i vi q (hoc cho nu q l v t EDB). Quan h q(X1,...,Xn) l : DOM x DOM x ...x DOM - Q n ln Trong DOM l tp hp tt c hng xut hin trong cc quan h EDB v trong cc qui tc ca chng trnh. Vo: Mt chng trnh Datalog phn tng an ton P, cc quan h i vi cc v t EDB ca chng trnh. Ra: M hnh hon ho ca P. Phng php: 1. Tnh DOM ca P bng cch chiu tt c quan h EDB ln cc thnh phn ca chng v sau ly hp ca cc php chiu ny v tp cc hng xut hin trong cc qui tc nu c. 2. p dng thut ton xp tng nh s tng cho tt c cc v t trong P, gi s Pi l chng trnh con ca P ng vi tng th i (i =1,...,k). 3. Vi mi tng i (i=1,...,k) thc hin cc bc sau: i. Tnh cc quan h cho cc v t c du ph nh cc tng j (j < i) ii. Xem cc quan h ca cc v t tng thp hn l cc v t EDB, tnh im bt ng nh nht ca Pi (c th dng cc thut ton s ng hay bn s ng).

i vi

-64-

V d 3.4 Xt chng trnh Datalog P c xp tng, gm cc qui tc sau: r1: a(X) r(X) r2: a(X) a(X) r3: b(X) s(X), a(X) th SG(P) nh sau: b _ s r a

Ta c a, r, s thuc tng 1 v b thuc tng 2. Gi R, S l cc quan h EDB tng ng vi cc v t EDB r, s. Gi A, B l cc quan h IDB tng ng vi v t IDB a, b. Gi s R = {1}, S = {1,2}. Do cc qui tc khng cha i l hng nn ta c: DOM = ( R) ( S ) = R S tng 1, ta c ngay quan h ca A chnh bng R, sang tng 2 ta c quan h i vi a(X) l : V A = R nn T ta c :
B(X) = S(X) (X) = S(X) A(X) = S(X) (S(X) R(X)) = S(X) R(X) A
_ _ _

= DOM - A = RS - A. {2} = {1,2} - {1} =

A = SR =

{2} Ta c m hnh hon ho ca chng trnh ny l : A ={1} v B ={2} V d 3.5 Xt chng trnh Datalog P sau y: r1: p(X,Y) s(X,Y), t(X) r2: q(X,Y) s(X,Y), p(Y,X) r3: r(X,Y) q(X,Y) , t(Y) Gi s quan h i vi v t EDB s gm cc b (1,2), (2,3) v quan h i
-65

vi v t EDB t ch gm mt hng l 2. Chng trnh ny l phn tng v ta c s, t thuc tng 1; p thuc tng 2; q, r thuc tng 3. M hnh hon ho ca P l: {p(1,2), q(1,2), q(2,3), r(2,3)}. 3.2 Chng trnh Datalog phn tng a phng Cc chng trnh phn tng c th m rng thnh cc chng trnh phn tng a phng theo mt c s EDB cho, trong trng hp ny cc v t c i l hng c th ph thuc m vo chnh n vi iu kin, khi cc qui tc ca chng trnh Datalog c th hin vi cc i l hng th khng c chu trnh xy ra. Mt chng trnh c th phn tng a phng i vi mt c s EDB nhng khng phn tng a phng i vi mt c s EDB khc. nh ngha 3.6 Mt qui tc th hin l qui tc nhn c bng cch thay th tt c cc i bi cc hng chp nhn c, nhng loi b cc qui tc th hin lm cho ch con EDB l sai. nh ngha 3.7 Chng trnh Datalog P l phn tng a phng nu th SG(P) ca cc qui tc th hin ca P khng c chu trnh m. nh ngha 3.8 Vi c s EDB cho trc, mt chng trnh Datalog phn tng a phng c chnh xc mt m hnh hon ho v n c xem l ng ngha ca chng trnh. Vic xc nh m hnh hon ho c thc hin ging nh trng hp ca chng trnh Datalog phn tng. V d 3.6 Xt chng trnh ch gm mt qui tc: s(X) t(X,Y), s(Y) R rng v t s ph thuc m vo chnh n, v vy chng trnh ny khng c phn tng. Gi s quan h EDB ca v t t gm cc b (1,2), (2,3), (1,3). Ta c ba qui tc th hin ca chng trnh ny nh sau: r1: s(1) t(1,2), s(2) r2: s(1) t(1,3), s(3) r3: s(2) t(2,3), s(3)
-66

- s(2) s(1) Chng trnh ny phn tng a phng v s(3) thuc tng 1; s(2) thuc tng 2 v s(1) thuc tng 3. Ta c: Tng 1: s(3) l sai. Tng 2: T qui tc r3 suy ra s(2) ng. Tng 3: T qui tc r2 suy ra s(1) ng. Vy m hnh hon ho ca chng trnh ny l {s(1), s(2)} Ta c cc mnh sau y th hin mi quan h gia chng trnh Datalog phn tng v phn tng a phng: Mnh 3.1 Mi chng trnh Datalog phn tng th u l phn tng a phng v trong trng hp chng trnh Datalog phn tng a phng cng phn tng th m hnh hon ho ca chng trnh Datalog phn tng a phng ng nht vi m hnh hon ho ca chng trnh Datalog phn tng. Chng minh: Gi s chng trnh P l chng trnh Datalog phn tng. Khi P khng c ch con ph nh quy, suy ra chng trnh th hin ca P cng khng c ch con ph nh quy. V vy P phn tng a phng. Mnh 3.2 M hnh hon ho ca chng trnh Datalog phn tng (a phng) cng l m hnh cc tiu v trong trng hp chng trnh Datalog khng cha ph nh trong thn cc qui tc th m hnh hon ho ng nht vi m hnh nh nht. Chng minh: Vi c s EDB cho trc, mt chng trnh Datalog phn tng a phng c chnh xc mt m hnh hon ho v n c xem l ng ngha ca chng trnh, do m hnh hon ho cng chnh l m hnh cc tiu. Trong trng hp chng trnh Datalog khng cha ph nh trong thn cc qui tc th chng c ng ngha t nhin duy nht l m hnh nh nht ca
-67

th SG(P) nh hnh v: s(3)

cc qui tc v m hnh hon ho ng nht vi m hnh nh nht. 3.3 Chng trnh Datalog phn tng yu Lp cc chng trnh Datalog vi ng ngha m hnh hon ho c nhiu tnh cht ng mong i, tuy nhin chng b gii hn bi s phn tng hay phn tng a phng. rng c nhng chng trnh Datalog m chng khng c m hnh hon ho. V d 3.7 Xem chng trnh Datalog P c cho bi: p(1,2) q(X) p(X,Y) q(Y) Khi thay cc i ca cc v t p v q bi cc hng 1,2, ta nhn c chng trnh P nh sau: p(1,2) q(1) p(1,2) q(2) q(1) p(1,1) q(1) q(2) p(2,2) q(2) q(2) p(2,1) q(1) (1) (2) (3) (4) (5)

Chng trnh ny khng phn tng a phng. Hn na, d thy rng P khng c m hnh hon ho. Chng trnh P dng nh tng ng v ng ngha i vi chng trnh phn tng a phng P* ch bao gm cc quy tc (1) v (2). Cc quy tc (3), (4), (5) c v hon ton khng lin quan, bi v p(1,1), p(2,1), p(2,2) c th gi thit l sai trong P. ng thi chng l nhng quy tc ph v tnh phn tng a phng ca P v gy ra vic khng tn ti m hnh hon ho. H. Przymushinska v T. C. Przymusinski ([ ]) a ra mt m rng t nhin ca lp chng trnh logic phn tng a phng thnh mt lp rng hn gi l lp chng trnh logic phn tng yu v ng ngha ca n gi l m hnh hon ho yu. Trong phn ny chng ti gii hn trn lp chng
-68-

trnh Datalog phn tng yu, mi chng trnh Datalog phn tng yu c duy nht mt m hnh hon ho yu v nu mt chng trnh Datalog c c m hnh hon ho v m hnh hon ho yu th chng phi ng nht. V vy ng ngha m hnh hon ho yu l tng thch hon ton vi ng ngha m hnh hon ho. tng chnh ng sau cc khi nim ny l loi b cc quan h khng lin quan trong th th ph thuc DG(P) ca chng trnh Datalog v thay th cc thnh phn ca th DG(P) cho cc nh ca n. xc nh ng ngha ca chng trnh Datalog phn tng yu ta phn tch chng trnh thnh cc tng v ng ngha ca chng da vo s tip cn m hnh nh nht. Tuy nhin s phn tch thnh cc tng c thc hin ng hn l tnh. Trong trng hp chng trnh ch gm mt tng th ng ngha m hnh hon ho yu l n gin tng ng vi ng ngha m hnh nh nht. Kt qu ta nhn c mt lp rng hn cc chng trnh m ng ngha ca chng c cng cc nt c trng t nhin nh ng ngha m hnh hon ho. c bit, cc m hnh hon ho yu l cc m hnh cc tiu. Ta gi s cc quy tc ca chng trnh Datalog l nhng quy tc c th hin vi cc i l hng trong chng trnh. nh ngha 3.9 th ph thuc ca chng trnh Datalog P, k hiu DG(P), c xc nh nh sau: - Cc nh ca DG(P) ca chng trnh P l tt c cc nguyn t nn xut hin trong P. - Cc cnh ca DG(P) c xc nh nh sau: i vi mi quy tc p q1 q2 qn r1 2 rm ... r ... trong P v vi mi i n, c mt cnh dng c hng t qi n p trong DG(P) v vi mi j m c mt cnh m c hng t rj n p trong DG(P). th ph thuc DG(P) ca chng trnh trong v d 3.7 nh hnh v:
-69

q(2) _ _ q(1)

p(1,1) p(1,2) p(2,1) p(2,2) nh ngha 3.10 Trn tp nh ca DG(P), ta xc nh cc quan h ph thuc < v nh sau: (i) p q nu v ch nu c mt ng i c hng t p n q (ii) p < q nu v ch nu c mt ng i c hng t p n q c i qua cc cnh m. nh ngha 3.11 Quan h ~ gia cc nguyn t nn ca P c xc nh nh sau: p ~ q (p = q) (p < q q < p) D thy ~ l quan h tng ng. Theo nh ngha ny th hai nguyn t nn p v q l tng ng nu chng c quan h quy ph nh ln nhau, tc l c s quy i vi ch con ph nh. quy ph nh ln nhau l nguyn nhn chnh gy ra nhiu kh khn trong vic xc nh mt m hnh thch hp ca chng trnh logic. nh ngha 3.12 Ta gi cc lp tng ng ca quan h tng ng ~ l cc thnh phn ca th ph thuc DG(P). Mt thnh phn l tm thng nu n cha mt phn t n p sao cho p < p. nh ngha 3.13 Gi C1 v C2 l hai thnh phn ca th ph thuc DG(P). Ta nh ngha quan h nh sau: C1
C2

(C1 C2) ( A1 C1 A2 C2 : A1 < A2)

Thnh phn C1 gi l thnh phn cc tiu nu khng c thnh phn C2 m C2 1. C


-70-

R rng quan h v bc cu.

quan h th t b phn, tc l n c tnh phn i xng

Mnh 3.3 Cho chng trnh Datalog P, nhng iu sau y l tng ng: (i) P l phn tng a phng (ii) Quan h ph thuc < c tnh cht : Khng cha dy v hn A0 > A1 > A2 > ... (iii) Mi thnh phn ca DG(P) l tm thng Quan h c mt tnh cht n gin nhng quan trng: i vi cc thnh phn phn bit C, C', trong c t nht mt thnh phn khng tm thng th hoc chng c lp ln nhau theo ngha khng c A C v B C' v A B hay B A hoc C C' hoc C' C (nhng khng th c hai do l th t b phn). Mnh 3.4 Gi s C v C' l hai thnh phn phn bit v c t nht mt thnh phn khng tm thng, gi s A C v B C' v A B. Lc C C'. Mnh ny suy ra rng nu C v C' l hai thnh phn khng tm thng v chng khng c quan h C C' hoc C' C th cc m hnh ca P hn ch i vi cc thnh phn ny l c lp hon ton vi nhau, bi v chng bao gm cc v t khng b lin h bi quan h ph thuc. nh ngha 3.14 (i) Tng y S(P) ca P l hp tt c cc thnh phn cc tiu ca DG(P), tc l: S(P) = {C: C l thnh phn cc tiu ca DG(P)} (ii) Lp y L(P) ca P l chng trnh con ca P, c xc nh bi tp hp: L(P) = Tp cc quy tc ca P m u quy tc thuc vo S(P). (iii) M hnh Herbrand ca chng trnh con L(P) c ng nht vi tp con c du ca tng y S(P). V d 3.8 Xem chng trnh P trong v d 3.7. Ta c cc quan h ph thuc
-71-

sau:

q(1) < q(2), q(2) < q(1) q(1) p(1,2), q(1) p(1,1), q(2) p(2,2), q(2) p(2,1)

Chng trnh P c 5 thnh phn: C1= {q(1), q(2)}, C2 = {p(1,2)}, C3 = {p(1,1)}, C4 = {p(2,2)}, v C5 = {p(2,1)} R rng Ck C1 vi k=2,...,5. V vy, tng y S(P) ca P s l: S(P) = {p(1,2), p(1,1), p(2,2), p(2,1)} v lp y L(P) ca P l hp tt c cc quy tc c u thuc S(P) l : L(P) = {p(1,2)} rng lp y L(P) ca chng trnh P trn c m hnh Herbrand nh nht: M = {p(1,2), p(1,1), p(2,2), p(2,1)} Nu lp y L(P) ca P c m hnh nh nht M th ta c th dng n loi b khi P tt c cc cc trc kin "khng thch ng" v cc quy tc. Mt cch tng qut hn, ta a ra mt php ton bin i chng trnh P cho theo th hin M ca n. nh ngha 3.15 Cho P l mt chng trnh Datalog v M l mt th hin ca P. Vi A l mt nguyn t trong c s Herbrand HP, ta bo M /=A nu A l thuc vo M v M /= A nu A thuc vo M. Mt php bin i i vi chng trnh P theo th hin M bao gm ba bc: Bc 1: Loi b khi P tt c quy tc cha L m M /= L hoc u ca n thuc M, ni cch khc, loi b khi quy tc ng trong M. Bc 2: Loi b L ra khi tt c cc quy tc cn li m tha mn M /= L. Bc 3: Cui cng, chng ta cng loi b khi chng trnh kt qu tt c nhng quy tc khng n v m u ca n xut hin nh cc quy tc n v trong chng trnh. Kt qu ta nhn c mt chng trnh mi, k hiu
-72P M

Cc chng trnh c thu hp nh vy khng cha mi nguyn t (dng hay m) xut hin trong M. Trong v d 3.7 chng trnh thu hp P' =P/M ch cha mt quy tc: q(1) q(2) rng chng trnh ny, chng ta loi b cc quy tc khng thch ng (3), (4), (5) trong P. tng ca m hnh hon ho yu l nh sau: Vi mi chng trnh P, ta t P=P0, M0= . Gi P1 = M , tm m hnh nh nht M1 ca lp y L(P1) 0 ca P1 v thu hp P modulo M0 M1, nhn c mt chng trnh mi P2=
M 0 M1 P P

Tm lp y M(P2) v m hnh nh nht M2 ca n v t P3 = Tip tc qu trnh nh vy cho n khi:

P M0 1 2 M M

Hoc chng trnh th k Pk l rng, lc MP =M0 M1 M2 ... Mk-1 l m hnh hon ho yu ca P, hoc nu khng: Qu trnh tip tc cho n khi hoc S(Pk) l rng hoc L(Pk) khng c m hnh nh nht, trong trng hp MP = M0 M1 M2 ... Mk-1 l m hnh hon ho yu b phn ca P. Ta c nh ngha v m hnh hon ho yu MP ca chng trnh Datalog P.

nh ngha 3.16 Gi s P l mt chng trnh Datalog v t P= P0 , M0 = . Gi s > 0 l mt ch s m c sao cho P v th hin b phn M c xc nh ri vi mi < . t:
P
N = 0 < < M

P = N , S= S(P), L= L(P).

Nu chng trnh P l rng th qu trnh xy dng l dng v MP = N l m hnh hon ho yu ca P.


-73-

Ngc li, nu tng y S= S(P) ca P l rng hoc nu m hnh nh nht ca lp y L= L(P) ca P khng tn ti th qu trnh cng dng v MP = N l m hnh hon ho yu b phn ca P.

Ngc li, th hin b phn M c xc nh nh l m hnh nh nht ca lp y L= L(P) ca P v qu trnh xy dng tip tc.

Trong hai trng hp u tin th c gi l su ca P v c k hiu l (P). Vi 0 < < (P) th tp S c gi l tng th ca P v chng trnh L c gi l lp th ca P. Trong qu trnh xy dng tng S , mt vi nguyn t nn c th b loi b bi php thu hp v khng ri vo mt tng no c. Cc nguyn t nh vy s c thm vo mt tng ty , v d tng u tin v c gi thit l sai trong MP. Qu trnh xy dng lun lun dng sau mt s hu hn bc v v vy m hnh hon ho yu (b phn) MP ca chng trnh P lun lun xc nh v duy nht. Mt trng hp c bit quan trng ca nh ngha trn xy ra khi tt c cc tng S ch cha cc thnh phn tm thng hoc tng ng - khi tt c lp chng trnh L l cc chng trnh Datalog. nh ngha 3.17 Mt chng trnh Datalog P c gi l phn tng yu nu n c m hnh hon ho yu v nu tt c cc tng S ca n ch cha cc thnh phn tm thng hoc - mt cch tng ng - khi tt c lp L ca n l cc chng trnh Datalog. Trong trng hp ny, ta gi tp cc tng {S : 0 < < (P) } ca chng trnh l mt php phn tng yu ca P. rng v mi chng trnh Datalog l c m hnh nh nht, mt chng trnh P l phn tng yu nu v ch nu bt c khi no P khng rng th S = S(P) cng khng rng v ch cha cc thnh phn tm thng. V d 3.9 Xt chng trnh P trong v d 3.7. Ta nhn c: P1 = P, S1 = S(P) = {p(1,2), p(1,1), p(2,2), p(2,1)}, L1 =
-74

L(P) =

{p(1,2)}, V vy: M1 = {p(1,2), p(1,1), p(2,2), p(2,1)} Do : P2 = M = {q(1) q(2)}, S2 = S(P2) = {q(2)} l hp cc thnh phn 1 cc tiu ca P2 v L2 = L(P2) = l tp cc quy tc thuc P2 m u thuc vo S2. V vy M2 = {q(2)}. Ta c: P3 = M
1

P1

M = {q(1)}, S3 = {q(1)}, L3 = P3 v M3 = S3 = {q(1)}


2

P2

Bi v P4 =

P3 M1 2 3 M M

= nn qu trnh xy dng kt thc, P l chng

trnh phn tng yu, {S1, S2, S3} l php phn tng yu ca P v MP = M1M2M3 = {p(1,2), q(1), p(1,1), p(2,2), p(2,1), q(2)} l m hnh hon ho yu duy nht ca P. Ta sa i v d trn minh ha khi nim m hnh hon ho yu b phn. V d 3.10 Xem chng trnh v d 3.7 vi s b sung s kin nguyn t p(2,1). i vi chng trnh P mi ny ta c: P1 = P, S1 = S(P) = {p(1,2), p(1,1), p(2,2), p(2,1)}, L1 = L(P) = {p(1,2) , p(1,2)}, V vy: M1 = {p(1,2), p(2,1), p(2,2), p(1,1)} Do : P2 = M = {q(1) q(2), q(2) q(1)}, S2 = {q(1), q(2)}, L2 = P2. 1 V L2 khng c m hnh nh nht, vic xy dng dng y v ta nhn c m hnh hon ho yu b phn : MP = {p(1,2), p(2,1), p(2,2), p(1,1)} Lp cc chng trnh tha nhn m hnh hon ho yu l rng hn lp chng trnh phn tng yu. V d 3.11 Cho chng trnh P bao gm cc quy tc:
-75P1

p q q p Lc P c mt thnh phn n v do m hnh hon ho yu ca n l m hnh nh nht ca P, chnh l tp MP = {p, q} (xem h qu ). R rng P khng phn tng yu. Cc tnh cht ca m hnh hon ho yu Lp cc chng trnh phn tng yu m rng lp cc chng trnh phn tng a phng. Ta c nh l sau: nh l 3.1 Mi chng trnh phn tng a phng l phn tng yu. Chng minh: Trc ht, rng nu P l phn tng a phng th chng trnh thu hp P' = P/M cng vy, i vi mi th hin b phn M. V vy, vi mi th chng trnh P cng phn tng a phng. Theo nhn xt trn, iu ny S = S(P) l khc rng v ch cha cc thnh phn tm thng mi khi P khng rng. Theo mnh 3.3, tt c thnh phn ca P l tm thng. V vy S = S(P) ch cha cc thnh phn tm thng v khng rng, min l P khng rng. nh l 3.2 Mi m hnh hon ho yu l m hnh cc tiu. Chng minh: Gi s M l m hnh hon ho yu v khng phi l m hnh cc tiu. Nh vy tn ti m hnh N nh hn ca chng trnh P. t < (P) l ch s nh nht sao cho M/S N/S, trong M/S l k hiu ca m hnh M thu hp trn tp con S ca c s Herbrand HP ca P. Theo nh ngha th M/S l m hnh nh nht ca L. Bi v M/S = N/S vi mi < , d thy rng N/S cng phi l m hnh ca L v n hon ton nh hn M/S. iu ny l v l. Nh s ch ra trong nh l sau y, i vi chng trnh P c m hnh hon ho, tnh trng rng ca tng y ca chng trnh con P' khng rng ca n c th l nguyn nhn duy nht ca s khng tn ti m hnh hon
-76-

ho yu ca P. nh l 3.3 Gi s chng trnh Datalog P c m hnh hon ho. Nu tt c chng trnh con khc rng P c xy dng trong nh ngha c tng y S = S(P) khc rng th P cng c m hnh hon ho yu v hai m hnh ny l ng nht. c bit, nu chng trnh c th hin P l hu hn th vic tn ti m hnh hon ho ca n bo m s tn ti m hnh hon ho yu. H qu 3.1 Nu chng trnh Datalog P c m hnh hon ho th P c m hnh hon ho yu v hai m hnh ny l ng nht. Chng minh: Gi s chng trnh Datalog P c m hnh hon ho. Th hin ca chng trnh Datalog P lun lun hu hn, v vy tp cc thnh phn ca DG(P) l hu hn, do tt c cc tng y S, vi < (P) l khc rng. nh l cng suy ra rng ng ngha m hnh hon ho yu l tng thch hon ton vi ng ngha m hnh hon ho. D dng thy rng ng ngha m hnh hon ho yu da trn nguyn l ca ng ngha m hnh nh nht (2 gi tr). c bit, i vi cc chng trnh c mt tng n th ng ngha m hnh hon ho yu ng nht vi ng ngha m hnh nh nht. H qu 3.2 Nu chng trnh Datalog P cha mt tng n th i vi m hnh M ca P : M l hon ho yu M l hon ho M l m hnh nh nht ca P. Chng minh: Gi s P cha mt tng n. Theo nh ngha, M l m hnh hon ho yu ca P nu v ch nu M l m hnh nh nht ca P. Hn na, r rng t nh ngha ca m hnh hon ho, m hnh nh nht ca mi chng trnh Datalog u l m hnh hon ho. V vy, iu ny chng t rng nu M l m hnh hon ho ca P th n l m hnh nh nht ca P.
-77

3.4 Ng ngha m hnh bn vng hai gi tr. Phn ny gii thiu mt m rng khc ca ng ngha m hnh hon ho c gi l ng ngha m hnh bn vng, n c xut bi Gelfond v Lifschitz. Ng ngha m hnh bn vng c xt trong phn ny da trn logic hai gi tr, tc l mi nguyn t nn ch nhn mt trong hai gi tr l ng hoc sai, ng ngha ny c th p dng cho mt s chng trnh khng phn tng. Chng ta xt chng trnh Datalog P vi cc quy tc th hin bi tp cc hng cho ca P. Nh vy, tt c nguyn t trong P u l nguyn t nn v tp cc quy tc to ra l hu hn. i vi mi tp M cc nguyn t ca P, t PM l chng trnh nhn c t P bng cch loi b: (i) Cc quy tc c trc kin m B trong thn ca n vi B M, v (ii) Tt c trc kin m trong cc thn ca cc quy tc cn li. R rng PM l chng trnh khng c ph nh, n l chng trnh Datalog, v vy PM c m hnh nh nht. Ta c nh ngha: nh ngha 3.18 Nu m hnh cc tiu ca PM ng nht vi M th ta bo M l tp bn vng ca P. nh l 3.4 Mi tp bn vng ca P l m hnh cc tiu ca P. Chng minh: Gi M l tp bn vng ca P. Trc ht ta chng minh M l mt m hnh ca P. Gi r l mt quy tc ca P. Nu thn quy tc r cha mt trc kin m B vi B M th r ng trong M. Cn nu B M, ta xem quy tc r' nhn c t r bng cch xa i cc trc kin m khi thn ca n. V r' l mt trong nhng quy tc ca PM v M l m hnh cc tiu ca PM nn r rng r' l ng trong M. Mc khc, r duy dn logic t r', vy r ng trong M. Tip theo, ta chng minh M l m hnh cc tiu. Gi s M1 l tp con ca M v M1 l m hnh ca P. Ta s chng t rng M1 cng l m hnh ca PM. Xem quy tc bt k r' ca PM, r' nhn c t quy tc r no ca P bng cch loi b khi thn quy tc cc trc kin m B vi B M. Do r ng
-78

trong M1 (v M1 l m hnh ca P) v mi trc kin m B trong thn ca r l ng trong M1 (v B M v M1 M) v r' c th nhn c t r nh vo cc trc kin ny. T r' l ng trong M1. Nh vy M1 l m hnh ca PM v v M l m hnh cc tiu ca PM nn M1 = M. nh ngha 3.19 Cc tp bn vng ca chng trnh Datalog P c gi l cc m hnh bn vng ca P. Nu P c chnh xc mt m hnh bn vng th m hnh ny c xem l ng ngha ca chng trnh P. V d 3.12 Xem chng trnh Datalog P sau y: p(1,2) q(x) p(x,y) q(y) Chng trnh P l khng phn tng, v vy ng ngha m hnh hon ho khng th p dng c. Ta th tm ng ngha m hnh bn vng ca P. Chng trnh P thu c sau khi thay th tt c cc i ca cc v t bi cc hng 1, 2 l: p(1,2) q(1) p(1,2) q(2) t M = {q(2)}. Lc PM l: p(1,2) M hnh cc tiu ca m hnh ny l {p(1,2)}, n khc vi M. V vy M khng phi l m hnh bn vng. By gi, nu ta t M = {p(1,2), q(1)}. Lc PM l: p(1,2) q(1) p(1,2) M hnh cc tiu ca chng trnh ny l {p(1,2), q(1)}chnh l M. Vy {p(1,2), q(1)} l m hnh bn vng. C th kim tra rng m hnh bn vng ny l duy nht v n chnh l ng ngha m hnh bn vng ca P. Mnh 3.5 i vi mi quy tc ca chng trnh Datalog ch cha duy
-79

nht mt ch con dng th l m hnh bn vng duy nht ca P. Chng minh: Vi mi tp M cc nguyn t nn ca P th thn ca mi quy tc trong PM l khc rng, v vy m hnh cc tiu ca PM l . V d 3.13 Xt chng trnh P sau: p q r q r r p p q

M hnh cc tiu duy nht ca P l v n cng chnh l m hnh bn vng. rng c hai loi chng trnh m ng ngha m hnh bn vng khng th p dng c: cc chng trnh khng c m hnh bn vng v cc chng trnh c nhiu m hnh bn vng. Chng hn cc chng trnh cho trong nhng v d sau khng c ng ngha m hnh bn vng: V d 3.14 Xt chng trnh ch gm mt quy tc: p p V d 3.15 Xt chng trnh gm hai quy tc: p q q p Chng trnh ny c hai m hnh bn vng l {p} v {q}. V d 3.16 Xem chng trnh p(1,2) p(2,1) q(x) p(x,y) q(y) Chng trnh ny c hai m hnh bn vng: {p(1,2),p(2,1),q(1)} v {p(1,2),p(2,1),q(2)} Mi lin h vi cc tip cn ng ngha khc. nh l 3.5 Nu P l chng trnh phn tng hoc phn tng a phng th n c m hnh bn vng duy nht v m hnh ny ng nht vi m hnh
-80-

hon ho ca P. V d 3.17 Xt chng trnh: p(X) q(X,Y) p(Y) Gi s quan h EDB ca v t q gm cc b (1,2), (2,3), (1,3). Ta c ba quy tc th hin ca chng trnh ny nh sau: r1: p(1) q(1,2) p(1) r2: p(1) q(1,3) p(2) r3: p(2) q(2,3) p(3) Chng trnh ny c m hnh hon ho l {p(1), p(2)}, n cng chnh l m hnh bn vng duy nht. Ch : C cc chng trnh c ng ngha m hnh bn vng nhng chng trnh khng c m hnh hon ho, chng hn xt v d sau: V d 3.18 Xt chng trnh: p q q p p p Chng trnh ny c m hnh bn vng duy nht l {p} nhng khng c m hnh hon ho. Ch : C hai loi chng trnh m ng ngha m hnh bn vng khng th p dng c: cc chng trnh khng c m hnh bn vng v cc chng trnh c nhiu m hnh bn vng. Chng hn cc chng trnh cho trong nhng v d sau khng c ng ngha m hnh bn vng: V d 1.19 Xt chng trnh: p q q p Chng trnh ny c hai m hnh bn vng l {p} v {q}. V d 1.20 Xt chng trnh:
-81-

p p Chng trnh ny khng c m hnh bn vng, bi v ta lun c P{} = {p} v P{p} = . Mnh 3.6 i vi cc chng trnh Datalog P khng cha ph nh th m hnh nh nht chnh l m hnh bn vng duy nht. Chng minh: Bin i chng trnh P bng cch thay tt c i trong cc v t ca cc quy tc bi cc hng trong P. Gi M l tp ty cc nguyn t nn ca P. V P khng c cc quy tc cha ch con ph nh nn PM chnh xc l P. Vy m hnh cc tiu ca PM chnh l m hnh nh nht ca P. Nu ta xut pht t m hnh nh nht ny th suy ra n l m hnh bn vng ca P. Nu ta xut pht t tp M khc vi m hnh nh nht th PM cng c m hnh nh nht ny, do n khng l m hnh bn vng. Mnh 3.7 Nu mi qui tc ca chng trnh Datalog P ch c duy nht mt ch con dng th m hnh bn vng duy nht l . Chng minh: Vi moi tp cc nguyn t nn I ca P th thn ca mi qui tc trong PI l khc , v vy m hnh cc tiu ca PI l v y cng l m hnh bn vng duy nht. V d 1.21 Xt chng trnh P gm cc qui tc: p q r q r r p p q

M hnh cc tiu duy nht ca P l v n cng chnh l m hnh bn vng duy nht. BI TP 1. Xt chng trnh Datalog P nh sau : p(X) r(X) p(X) p(X) q(X) s(X) p(X)
-82

Chng trnh ny c phn tng khng? 2. Chng trnh Datalog P sau y c phn tng hay khng? r1 : p1(X) q1(X) q2(X) r2 : p2(X) q2(X) p2(X) r3 : p3(X) q1(X) p2(X) 1. Xem chng trnh sau: p0(X) q(X) p1(X) q(X) p0(X) p2(X) q(X) p1(X) p3(X) q(X) p2(X) p4(X) q(X) p3(X) p5(X) q(X) p4(X) p6(X) q(X) p5(X) p7(X) q(X) p6(X) p8(X) q(X) p7(X) p9(X) q(X) NOT p8(X) trong q l v t EDB c quan h cha mt hng a. a) Chng trnh ny c bao nhiu m hnh cc tiu. b) Trong s cc m hnh cc tiu ny, m hnh no l m hnh hon ho? 2. Cho chng trnh sau: p(x) r(x) s(x) r(x) p(x) t(x) Gi s c s d liu EDB = { s(1), t(1), s(2) } p dng php bin i GL i vi cc m hnh sau, cho bit m hnh no l bn vng: a) M = EDB + {p(1), p(2)} b) M = EDB + {p(1), r(1)}
-83

3. Cho chng trnh sau: p r p t q t r s s q t p u v p dng php bin i GL i vi cc m hnh sau, cho bit m hnh no l bn vng: a) M = {q, t, u, v} b) M = {p, r, s} 4. Mt tip cn khc v ng ngha ca chng trnh Datalog c cha ph nh l ng ngha lm pht. y, chng ta bt t tp s kin IDB l rng v p dng cc quy tc ch mt ln suy ra cc s kin IDB mi. Mt khi tm c cc s kin IDB th chng khng bao gi tr thnh sai. Mt cch hnh thc, ng ngha lm pht c xc nh bi: a. Bt u bng cc v t IDB l rng. b. p dng ch mt ln cho cc quy tc ca chng trnh bng cch s dng cc s kin EDB v nhng s kin IDB nhn c t vng lp trc. c. Nu t nht mt s kin mi c suy ra th: i. Thm tt c s kin mi vo tp cc s kin IDB c. ii. Quay li bc b. V d: Xem chng trnh logic v t sau: p q q r
-84-

s p Bc 0: Khng c v t p, q, r, and s l ng. Bc 1: Quy tc 2 v 3 cho ta suy ra q v s ng. Vy m hnh lm pht lc ny l {q,s}. Bc 2: Lc ny do q ng nn quy tc 1 cho ta p ng, vy lc ny m hnh lm pht s l {p,q,s}. Bc 3: Khng cn s kin no c suy ra. Vy m hnh lm pht l {p,q,s}. Cho chng trnh: greenPath(X,Y) green(X,Y) greenPath(X,Z) greenPath(X,Z) greenPath(Z,Y) monopoly(X,Y) red(X,Y) greenPath(X,Y) Gi s c s d liu EDB = {red(1,2), red(2,3), green(1,2)}. Tm ng ngha lm pht ca chng trnh ny? 4. Cho chng trnh: win(X) move(X,Y) win(Y) a) Gi s c s d liu EDB = {move(1,2), move(2,3), move(3,4), move(3,1)}. Chng trnh ny c phn tng a phng hay khng? Tm m hnh hon ho (nu c) ca chng trnh ny. b) Gi s c s d liu EDB = {move(1,2), move(2,3), move(3,4), move(3,1), move(4,5)}. Chng trnh ny c phn tng a phng hay khng? Tm m hnh hon ho (nu c) ca chng trnh ny. 5. Cho chng trnh: p(X,Y) q(X,Y) r(X). r(X) s(X,Y) t(Y). r(X) s(X,Y) r(Y). a) Xc nh tng ca mi v t? Chng trnh ny phn tng hay khng?
-85-

b) Gi s quan h EDB i vi cc v t s, t, v q ln lt l S = {ab,bc,ca}, T = {a,b,c}, v Q = {ab,bc,cd,de}. Tm m hnh hon ho ca chng trnh ny. c) Tm m hnh cc tiu khc ca chng trnh ny vi CSDL EDB cu b). 6. Cho chng trnh: minpath2(X,Y) arc(X,Z) arc(Z,Y) arc(X,Y) minpath3(X,Y) arc(X,Z) arc(Z,W) arc(W,Y) arc(X,Y) minpath2(X,Y) a) Xc nh tng ca mi v t? Chng trnh ny phn tng hay khng? b) Gi s c s d liu EDB = { arc(1; 2), arc(2; 3), and arc(3; 4) }. Tm m hnh hon ho. c) Tm m hnh cc tiu khc ca chng trnh ny vi CSDL EDB cu 7. Cho chng trnh: p(X) a(X,Y) q(Y) q(X) a(X,Y) p(Y) Gi s c s d liu EDB = { a(1; 2), a(2; 3), a(3; 1) }. a) Hy vit cc quy tc th hin ca chng trnh ny. b) V th ph thuc ca chng trnh nhn c cu a). Chng trnh ny c phn tng a phng hay khng? c) Hy cho mt v d chng trnh cho phn tng a phng.

-86-

CHNG 4 NG NGHA CHNG TRNH DATALOG C CHA PH NH DA TRN LOGIC 3-TR i vi cc chng trnh Datalog, m hnh Herbrand nh nht mang li mt ng ngha thch ng ca chng trnh. Khi chng trnh c cha mt vi quy tc khng dng Horn, m hnh Herbrand nh nht khng tn ti trong trng hp tng qut v mt s m hnh c xut l ng ngha. Hai dng ng ngha xt n trong chng 3 l ng ngha m hnh hon ho v ng ngha m hnh bn vng cng ch c th p dng cho mt s lp hn ch cc chng trnh. Hin nay, m rng cc dng ng ngha ny, logic 3-tr (ng, sai v khng xc nh) c th c s dng biu din cc m hnh. Cc m hnh da trn logc-tr biu din tri thc xut pht t s kin tri thc ca chng ta v th gii l hu nh lun lun cha y , hy xem chng trnh sau: p(X) q(X,Y) p(Y) Gi s quan h EDB ca v t q gm cc b (a,b), (b,a), (b,c), (c,d). R rng p(d) sai, v vy p(c) l ng. Mt khc ta khng c thng tin xc nh gi tr chn l ca cc s kin p(a) v p(b). Chng 3 trnh by v ng ngha ca chng trnh Datalog c cha ph nh trn c s logic 3-tr. Ng ngha ny c xc nh da trn cch tip cn im bt ng v l s m rng ca ng ngha m hnh bn vng trn c s logic 2-tr. 4.1 Mt s khi nim v kt qu lin quan Gi s P l chng trnh Datalog , ngha l P bao gm cc quy tc c dng: p q1 q2 qm h1 h2 ... n ... h trong cc p, qi, hj l nhng nguyn t c i l hng hoc bin.
-87

nh ngha 4.1 Mt th hin 3-tr I ca P l mt cp <TI, FI>, trong TI v FI l hai tp con ri nhau ca c s Herbrand BP ca P. Cc nguyn t nn thuc tp TI (t. thuc tp FI) gi l ng (t. sai) trong I v gi tr chn l ca cc nguyn t nn cn li trong UI = BP - (TI FI) c xem l khng xc nh. K hiu gi tr ng l 1, sai l 0 v khng xc nh l 2 . Nh vy, mt th hin 3-tr l mt th hin 2-tr nu v ch nu BP = TI FI, hoc tng ng UI = . nh ngha 4.1 c th pht biu tng ng: nh ngha 4.2 Th hin 3-tr I = <TI, FI> ca chng trnh Datalog P c biu din tng ng nh mt nh x I: BP {0, 2 ,1}, t c s Herbrand BP ca P vo tp 3 gi tr = {0, 2 ,1}, c xc nh bi: p BP, I(p) = 0
1 2 1 1

nu p FI nu p UI

1 nu p TI Dng gi tr chn l ca nguyn t nn, ta c th m rng gi tr chn l i vi tp cc cng thc ng nh sau: nh ngha 4.3 Gi s I l mt th hin 3-tr, C l tp cc cng thc ng ca ngn ng cp mt. M rng ca I l nh x : C {0, 2 ,1} c nh ngha qui nh sau: Nu p l mt nguyn t nn th (p) = I(p).

1

Nu S l cng thc th (S) = 1-(S) Nu S v V l cc cng thc th: (S = min{(S), (V)} V) (S = max{(S), (V)} V) 1 (VS) (S)
-88-

nu (V)

0 nu ngc li

nh ngha 4.4 Gi s P l chng trnh Datalog . K hiu ground(P) l chng trnh nhn c t P bng cch thay th tt c cc bin trong cc quy tc bi cc hng trong P, ngha l: ground(P) = {(p q1 q2 qn) / (p q1 q2 qn) P, l php th c ... ... s i vi quy tc ny v (X) dom(P), bin X trong p q1 2 qn } q ... nh ngha 4.5 Mt th hin 3-tr M l mt m hnh 3-tr ca chng trnh Datalog P nu mi quy tc ca P ng trong M, tc l vi mi quy tc: p q1 qm ca ground(P) th (p) (q1 qm). ... ... Nh vy, M l m hnh ca P nu v ch nu gi tr chn l ca u ca mi quy tc ln hn hoc bng gi tr chn l ca thn quy tc. Ta c iu hin nhin sau: Mnh 4.1 Mt th hin 3-tr M l m hnh 3-tr ca chng trnh Datalog P nu v ch nu M l m hnh 3-tr ca ground(P). Mnh ny cho php ta t y c th ng nht chng trnh P vi ground(P). Trn cc th hin 3-tr, ta c th nh ngha cc quan h sau: nh ngha 4.6 Gi s I = <TI, FI> v J = <TJ, FJ> l hai th hin 3-tr ty ca chng trnh Datalog P. Ta nh ngha cc quan h:

I J nu v ch nu TI TJ v FI FJ. I J nu TI TJ v FI FJ.

nh ngha 4.7 Gi s P l chng trnh Datalog v I l tp cc th hin 3tr ca P. Lc :

Mt th hin 3-tr I I c gi l cc tiu (t.. -cc tiu) trong I nu khng c th hin 3-tr J I sao cho J I (t.. J I) v J I. Mt th hin 3-tr I ca P c gi l nh nht (t.. -nh nht) trong I nu I J (t.. I J) vi mi th hin 3-tr J I. M hnh 3-tr M ca P c gi l m hnh 3-tr cc tiu (t.. nh nht)
-89-

nu M l cc tiu (t.. nh nht ) trong cc m hnh 3-tr ca P. M hnh 3-tr M ca P c gi l m hnh 3-tr -cc tiu (t.. -nh nht) nu M l -cc tiu (t.. -nh nht) trong cc m hnh 3-tr ca P.

Ch : Th hin 3-tr nh nht ca P l <, BP> v th hin 3-tr -nh nht ca P l <, >. nh ngha 4.8 Cho P l chng trnh Datalog v I = <TI, FI> l mt th hin 3-tr ca P. Gi PI l chng trnh nhn c t P bng cch thay tt c literal m p trong thn cc quy tc ca P bi I(p), ngha l: 1 FI I(p) =
1 2

nu p nu p

TI nu p UI Nh vy, trong phn thn cc quy tc ca PI s khng cn tn ti cc literal m v thay vo l cc k hiu gi tr chn l 0,
1 2

v 1. Lc PI

c gi l chng trnh Datalog m rng 3 gi tr. Mi chng trnh Datalog m rng 3-tr PI c duy nht mt m hnh 3tr cc tiu [ ]. K hiu P(I) l m hnh 3-tr cc tiu ca PI. nh ngha 4.9 Mt th hin 3-tr I ca chng trnh Datalog c gi l m hnh bn vng 3-tr ca P nu v ch nu I l m hnh 3-tr cc tiu ca chng trnh PI, ngha l P(I) = I. Mnh 4.2 M hnh bn vng 3-tr ca chng trnh Datalog P l m hnh cc tiu ca P. Chng minh: t I = P(I) l m hnh bn vng 3-tr ca P. Gi s r l quy tc ty ca P: p p1 p2 pm q1 q2 qn ... ... Gi r' l quy tc tng ng ca r trong PI, r' nhn c bng cch thay tt c cc literal m qi bi I(qi), r rng r' ng trong I. iu ny suy ra r
-90

cng ng trong I, nh vy I l m hnh ca P. Ta chng minh tip I l m hnh cc tiu ca P. Gi J l m hnh ca P m J I. Gi r l quy tc ty ca P, r' v r'' l cc quy tc tng ng vi r nhn c trong chng trnh PI v chng trnh PJ. V J l m hnh ca P nn J tha quy tc r''. Mc khc v J I v literal qi m nn J cng tha r'. Vy J cng l m hnh ca PI. Lc v I l m hnh cc tiu ca PI nn iu ny suy ra I = J. Ch : Nu m hnh bn vng 3-tr l m hnh 2-tr th n chnh l m hnh bn vng c nh ngha bi Gelfond-Lifchitz trong [ ]. nh ngha sau l s m rng ca ton t h qu trc tip TP trn chng trnh Datalog m rng 3-tr: nh ngha 4.10 Gi s P l chng trnh Datalog m rng 3-tr, I l mt th hin 3-tr ca P. Ton t P : 2 BP x 2 BP 2 BP x 2 BP c xc nh bi: I 2 BP x 2 BP , P(I) = <TI, FI>, trong : TI = {p / (p p1 pn) P, (pi) = 1,i = 1,..., n} ... FI = {p / (p p1 pn) P, (p1 pn) = 0} ... ... Ngha l: vi mi p I, ta c: 1 nu c quy tc p p1 pn trong P sao ... cho P(I)(p) =
0

(pi) = 1, i = 1,..., n nu vi mi quy tc p p1 pn trong ... P,

(p1 pn) = 0 ... trong cc trng hp khc nh l 4.1 Cho P l chng trnh Datalog m rng 3-tr. Lc :
1 2

(i) P l n iu tng theo quan h v c im bt ng nh nht. (ii) im bt ng nh nht ca P l m hnh 3-tr cc tiu duy nht ca P.
-91-

H qu 2.1 M hnh 3-tr cc tiu ca chng trnh Datalog m rng 3-tr P l cn trn nh nht ca dy Pn, n N, trong P0 = <, BP> v P(i+1) = P(P(i)). Chng minh: Do c s Herbrand BP l hu hn, P n iu tng theo , nn im bt ng nh nht ca P chnh l cn trn nh nht ca dy Pn, n N, trong P0 = <, BP> v P(i+1) = P(P(i)). T h qu ny ta c thut ton: Thut ton 4.1 (Tm m hnh 3-tr cc tiu) Vo: Chng trnh Datalog m rng 3-tr P. Ra: M hnh 3-tr cc tiu ca P. Phng php: Thut ton c vit theo ngn ng ta Pascal: I := <, BP>; repeat J := I; I := P(J); until J = I; output I l m hnh 3-tr cc tiu ca P. V d 4.1 Cho chng trnh P: P = {p r, q r p, s t, t q s, u t p s }
1 1 1

v I = <{p, q}, {r}> l mt th hin 3-tr. Khi : PI = {p 1, q 1 p, s 2 , t q 2 , u 2 p s} P(I) c tnh theo cc bc lp sau: I0 = PI 0 = <,{p, q, r, s, t, u}>; I1 = PI 1 = PI (I0) = <{p},{q, r, t, u}>; I2 = PI 2 = PI (I1) = <{p, q},{r, t}>; I3 = PI 3 = PI (I2) = <{p, q},{r}>; I4 = PI 4 = PI (I3) = <{p, q}, {r}>. Vy m hnh 3-tr cc tiu ca chng trnh PI l P(I) = <{p, q},{r}>, chnh l I nn I l m hnh bn vng 3-tr ca P.
-92-

Ch : Trong trng hp tng qut, P c th c nhiu hn mt m hnh bn vng 3-tr. Chng hn, trong v d trn P c I = <{p, q}, {r}> l m hnh bn vng 3-tr, ta xt tip th hin J = <{p, q, t}, {r, s, u}> ca P. Ta c PJ = { p 1, q 1 p, s 0, t q 1, u 0 p s } Cc bc lp tnh P(I1) l:
PJ 0 = <, {p, q, r, s, t, u}>; PJ 1 = PI1 (I0) = <{p},{q, r, s, t , u}>; PJ 2 = PJ (I1) = <{p, q}, {r, s, t, u}>; PJ 3 = PJ (I2) = <{p, q, t},{r, s, u}>; PJ 4 = PJ 3.

Vy P(J) = J, do J cng l m hnh bn vng 3-tr ca P. nh l 4.2 Thut ton 4.1 tm m hnh 3-tr cc tiu ca chng trnh Datalog m rng 3-tr c thc hin vi thi gian a thc. Chng minh: Khng nh ca nh l c suy t kt qu: thut ton xc nh m hnh nh nht ca chng trnh Datalog c thc hin vi thi gian a thc. 4.2 Ng ngha ca chng trnh Datalog P Trong [ ] chng minh rng mi chng trnh Datalog P c duy nht m hnh bn vng 3-tr -nh nht MP. Nh vy MP l m hnh nh nht trong tt c cc m hnh bn vng theo ngha MP cha mt s lng nh nht cc s kin ng hoc sai, do MP cha nhiu nht cc s kin khng xc nh. nh ngha 4.11 Ng ngha ca chng trnh Datalog P l m hnh bn vng 3-tr -nh nht ca P, k hiu MP. nh ngha 4.12 Trn tp cc th hin 3-tr 2 BP x 2 BP , ta nh ngha ton t P : 2 BP x 2 BP 2 BP x 2 BP c xc nh bi: I 2 BP x 2 BP , P(I) l m hnh nh nht ca chng trnh Datalog m rng 3-tr PI, ngha l P(I) = P(I). 4.2.1 Thut ton tnh m hnh bn vng 3-tr -nh nht da vo quan h
-93

B 4.1 Ton t P phn n iu theo quan h , ngha l nu I v J l cc th hin 3-tr ca P v I J th P(J) P(I). Chng minh: Gi s I v J l hai th hin 3-tr ca P v I J. Ta chng minh P(J) P(I). Ta c, vi mi q BP th I(q) J(q) nn I(q) J(q). Gi r l quy tc ty : p s1 sm q1 qn trong P v quy tc ... ... p s1 sm 1I nI (t.. p s1 sm 1J nJ ) vi ... ... ... ...
1 2

iI , iJ {0,

,1} l quy tc tng ng vi r trong PI (tng ng PJ). Khi , ta c: kI

kJ , k = 1,.., n. Suy ra PI ( I 0 )( p) PJ ( J 0 )( p) vi I0 = J0 = <, BP>, p

BP. t I1 = PI ( I 0 )( p) , J1 = PJ ( J 0 )( p) , suy ra I1 J1. Dng quy np ta c


lim lim P(I) = n PI ( I n ) n PJ ( J n ) = P(J).
2 B 4.2 Ton t p = P P n iu tng theo quan h .

Chng minh: Gi s I1 v I2 l hai th hin 3-tr ca P v I1 I2. Lc


2 2 P(I2) P(I1), suy ra P(P(I1)) P(P(I2)), ngha l p (I1) p (I2). 2 Vy p n iu.

nh l 4.3 Cho P l chng trnh Datalog , MP l m hnh bn vng 3-tr -nh nht ca P. Lc :
2 (i) Ton t p c im bt ng nh nht IB = <TB, FB>.

(ii) Tp cc s kin ng ca MP l TB v tp cc s kin sai ca MP l tp cc s kin sai F'B ca P(IB). Chng minh:
2 2 (i) Do ( 2 BP x 2 BP , ) l dn y v p n iu nn p c im bt ng

nh nht IB = <TB, FB>. (ii) Do P phn n iu nn I'B = P(IB) =<T'B, F'B> l im bt ng ln nht
2 ca p .Trc ht ta chng minh I = <TB, F'B> l m hnh bn vng 3-tr ca

-94-

P, ngha l cn chng minh P(I) = I. Ta chng minh p BP, nu I(p) = {0, 2 , 1} th P(I)(p) = . T IB I I'B, P(IB) = I'B v P(I'B) = IB nn ta c: IB P(I) I'B. Ta c nu I(p) = 0 th P(I)(p) = 0 v nu I(p) = 1 th P(I)(p) = 1. By gi nu I(p) =
1 2 1

, ta s chng minh P(I)(p) =

1 2

. Ta c P(I)(p)

khng th bng 1. Tht vy, nu P(I)(p) = 1 th cc quy tc c s dng suy ra p ch cha cc s kin c gi tr 0 v 1. Do nhng s kin ny c cng gi tr trong IB v I'B nn cc quy tc ny c dng trong c PI B v PI 'B suy ra p. V vy IB(p) = I'B(p) = I(p) = 1. iu ny mu thun vi gi thit l I(p) = 2. Theo nh ngha ca I ta c IB(p) = 0 v I'B(p) = 1. Do P(IB) = I'B nn P(IB)(p) = 1. Ta c P(IB) l gii hn ca dy PI B (I) n .Gi k l gi tr i nh nht sao cho PI B ( I ) i (p) =1, ta s chng minh qui np theo k rng P(I)(p)
1 2 1

. Tht vy, nu k = 1 th tn ti trong P mt quy tc c dng:

p hoc

p q1 qn vi IB(qj) = 0 (j = 1,.., n). Ta nhn thy trng hp th nht ... khng th xy ra, bi v nu ngc li th I'B(p) = IB(p) = 1 v do I(p) =1, mu thun vi I(p) = 2 . Lp lun tng t, I'B(qj) = 1, v vy I(qj) = 1,..., n, suy ra P(I)(p)
1 2 1 1 2

vi j =

. By gi ta gi s khng nh trn ng vi k = i.

Ta chng minh khng nh cng ng vi k = i+1. Tht vy, lc trong P tn ti quy tc p p1 pm 1 qn sao cho: IB(qj) = 0 v PI B (I) i (ps) = 1 ... q ... vi mi j = 1,..., n v s = 1,..., m. V IB(qj) = 0, I(qj) khc, theo gi thit qui np P(I)(pk)
1 2 1 2

nn I(qj)
1 2

1 2

. Mt

suy ra P(I)(p)

. Vy P(I) = I

nn I l m hnh bn vng 3-tr ca P. Tip theo ta chng minh I l m hnh bn vng 3-tr - nh nht ca P.
-95-

R rng vi mi m hnh bn vng 3-tr M ca P th: IB M I'B. T I M. Vy I l m hnh bn vng 3-tr - nh nht ca P. Thut ton sau c suy ra trc tip t nh l 4.3: Thut ton 4.2: Vo: Chng trnh Datalog P. Ra: M hnh bn vng 3-tr - nh nht ca P. Phng php: Thut ton c thc hin theo cc bc: 1. Tnh im bt ng nh nht IB = <TB, FB> ca ton t 2 . P 2. Tnh im bt ng nh nht P(IB) = <T'B, F'B> 3. M hnh bn vng 3-tr -nh nht ca P l <TB, F'B>. V d 4.2 Xt chng trnh: P = {a b, b c, c a, d , e a } d
2 t J0 = <, {a, b, c, d, e}>, Ji+1 = p (Ji), i = 0, 1, 2,... Ta c th tnh m

hnh bn vng 3-tr -nh nht nh sau:


2 Bc 1: Tnh im bt ng nh nht IB = <TB, FB> ca ton t p :

Khi u: J0 = <, {a, b, c, d, e}>


2 Bc 11: Tnh J1 = p (J0) = P(P(J0))

Ta c: PJ 0 = { a 1, b 1, c 1, d , e a 1 } * Trc ht, ta tnh P(J0), cc bc lp nh sau:


P 0 = <, {a, b, c, d, e}>; P 1 = <{a, b, c, d}, {e}> ; J0 J0 P 2 = <{a, b, c, d, e}, >; P 3 = P 2; J0 J0 J0

Vy P(J0) = <{a, b, c, d, e}, >. * Cc bc lp tnh J1 = P(P(J0)): Ta c: P P ( J 0 ) = {a 0, b 0, c 0, d , e a } 0


P ( J 0 ) 0 = <, {a, b, c, d, e}>; P ( J 0 ) 1 = <{d}, {a, b, c, e}> ; P ( J 0 )

2 = <{d}, {a, b, c, e} > = P ( J 0 ) 1;


-96-

2 Vy J1 = p (J0) = <{d}, {a, b, c, e} > 2 Bc 12: Tnh J2 = p (J1) = P(P(J1))

Ta c: PJ1 = {a 1, b 1, c 1, d , e a } 0 Vy P(J1) = <{ a, b, c, d}, {e}>;


P P ( J1 ) = {a 0, b 0, c 0, d , e a } 0

Vy J2 = P(P(J1)) = <{d}, {a, b, c, e}> = J1. Do tp cc s kin ng ca m hnh bn vng 3-tr -nh nht l TB = {d}. Bc 2: Tnh im bt ng nh nht P(IB), ta c IB = J2 = <{d}, {a, b, c, e}> Ta c PJ 2 ={a 1, b 1, c 1, d , e a 0 } Vy P(IB) = <{a, b, c, d }, {e}>. Do tp cc s kin sai ca m hnh bn vng 3-tr -nh nht l {e}. Bc 3: M hnh bn vng 3-tr -nh nht ca P l <{d}, {e}>. V d 4.3 Xt chng trnh Datalog P v d 4.1: P ={p r, q r p, s t, t q s, u t p s }
2 t J0 = <, {p, q, r, s, t, u}>, Ji+1 = p (Ji), i = 0, 1, 2,... Ta c th tnh m

hnh bn vng 3-tr -nh nht nh sau:


2 Bc 1: Tnh im bt ng nh nht IB = <TB, FB> ca ton t p :

Khi u: J0 = <, {p, q, r, s, t, u}>


2 Bc 11: Tnh J1 = p (J0) = P(P(J0))

Ta c: PJ 0 = { p 1, q 1 p, s 1, t q 1, u 1p s } * Trc ht, ta tnh P(J0), cc bc lp nh sau:


P 0 = <, {p, q, r, s, t, u}>; P 1 = <{p, s}, {q, r, t, u}> ; J0 J0 P 2 = <{p, q, s, u}, {r, t}> ; P 3 = <{p, q, s, t, u}, {r}> ; J0 J0 P 4 = P 3. Vy (J ) = <{ p, q, s, t, u}, {r}>. P 0 J0 J0

-97-

* Cc bc lp tnh J1 = P(P(J0)): Ta c: P P ( J 0 ) = {p 1, q 1 p, s 0, t q 0, u 0 p s }
P ( J 0 ) 1 = <{p}, {q, r, s, t, u}> ; P ( J 0 ) 2 = <{p, q}, {r, s, t, u} > ; P ( J 0 ) 3 = P ( J 0 ) 2. Vy J1 = 2 (J0) = <{p, q}, {r, s, t, u}> p
2 Bc 12: Tnh J2 = p (J1) = P(P(J1))

Ta c: PJ1 = { p 1, q 1 p, s 1, t q 1, u 1 p s } = PJ 0 Vy IB = 2 (J1) = <{p, q}, {r, s, t, u}>, do tp cc s kin ng ca p m hnh bn vng 3-tr -nh nht l TB ={p, q}. Bc 2: Tnh im bt ng nh nht P(IB), ta c IB = <{p, q},{r, s, t, u}> Ta c PJ 2 ={p 1, q 1 p, s 1, t q 1, u 1 p s} = PJ 0 Vy P(IB) = <{p, q, s, t, u}, {r}>. Do tp cc s kin sai ca m hnh bn vng 3-tr -nh nht l {r}. Bc 3: M hnh bn vng 3-tr -nh nht ca P l <{p, q}, {r}>. Vic xc nh m hnh bn vng 3-tr -nh nht MP trn c thc hin da vo quan h trn cc th hin. Sau y l mt cch tnh khc ca MP nhng da vo quan h . 4.2.2 Thut ton tnh m hnh bn vng 3-tr -nh nht da vo quan h nh l 4.4 Cho P l chng trnh Datalog . Lc : (i) Ton t P l n iu tng theo quan h . (ii) P c im bt ng -nh nht v cng l m hnh bn vng 3-tr -nh nht ca P. Chng minh: (i) Gi s I1 I2, t PIi (I) = <Ti, Fi>, i = 1, 2. Ta chng minh <T1, F1> <T2, F2>. Nu p T1 th c quy tc p p1 ... pn trong P sao cho I(pi) = 1 vi mi i =1,..., n theo I1. Suy ra I(pi) =1 vi mi i =1,..., n theo I2, vy p
-98

T2. Tng t nu p F1 th vi mi quy tc p p1 pn trong P, I(p1 pn) ... ... = 0 theo I1, suy ra I(p1 pn) = 0 theo I2, t p F2. Tm li ta c ...
PI 2 (I),

PI (I) 1

s dng php quy np ta c P ( I1 ) P ( I 2 ) .

(ii) Do P n iu tng theo quan h v c s Herbrand BP hu hn nn P c im bt ng -nh nht M'P. Mt khc, P c m hnh bn vng 3-tr -nh nht MP cng l im bt ng ca P, vy M'P = MP. Thut ton sau c suy ra trc tip t nh l 4.4: Thut ton 4.3: Vo: Chng trnh Datalog P.

Ra: M hnh bn vng 3-tr - nh nht ca P. Phng php: Thut ton c vit theo ngn ng ta Pascal: I := <, >; repeat J := I; I := P(J); until J = I; output I l m hnh bn vng 3-tr -nh nht ca P. V d 4.4 Xt chng trnh P trong v d 4.2: P = {a b, b c, c a, d , e a } d Khi u: I0 = P0 = <, > Bc 1:
1 1 1 1 Ta c: PI0 = {a 2 , b 2 , c 2 , d 1, e a 2 }

Cc bc lp tnh I1 = P(I0):
PI 0 = <,{a, b, c, d, e}>; PI 1 = <{d}, {e}>; PI 2 = <{d}, >; 0 0 0 PI 3 = PI 2. Vy I1 = <{d}, > 0 0

Bc 2:
-99-

1 1 1 Ta c: PI1 ={a 2 , b 2 , c 2 , d 1, e a 0 }

Cc bc lp tnh I2 = P(I1)
PI 0 = <, {a, b, c, d, e}>, PI 1 = <{d}, {e}>, PI 2 = PI1 1 1 1 1

Vy I2 = <{d}, {e}>, lc PI 2 = PI1 . Do <{d}, {e}> l m hnh bn vng 3-tr -nh nht ca P. V d 4.5 Xt chng trnh cho trong v d 4.1 {p r, q r p, s t, t q s,u t p s} Khi u: I0 = P0 = <, > Bc 1: Ta c:
PI0 = {p 1 , q 1 p, s 1 , t q 1 , u 1 p s} 2 2 2 2 2

Cc bc lp tnh I1 = P(I0):
PI 0 = <, {p, q, r, s, t, u}>; PI 1 = <, {q, r, t, u}>; 0 0 PI 2 = <, {r, t}> 0 PI 3 = <, {r}> ; PI 4 = <, {r}> = PI0 3. Vy I1 = <, {r}>. 0 0

Bc 2: Ta c:
PI1 = {p 1, q 1 p, s 1 , t q 1 , u 1 p s} 2 2 2

Cc bc lp tnh I2 = P(I1):
PI 0 = <, {p, q, r, s, t, u}>; PI 1 = <{p},{q, r, t, u}>; 1 1 PI 2 = <{p, q}, {r, t}>; PI 3 = <{p, q}, {r}> ; PI 4 = PI 3. 1 1 1 1

Vy I2 = <{p, q}, {r}> Bc 3: Ta c:


PI 2 = {p 1, q 1 p, s 1 , t q 1 , u 1 p s} = PI1 2 2 2

Vy sau 3 bc lp ta nhn c m hnh 3-tr -nh nht ca P l <{p, q}, {r}>. V d 4.6 Xt chng trnh sau:
-100-

P = { u , s u p, p q, r p, q r} Khi u: I0 = P0 = <, > Bc 1: Ta c:


PI0 = { u , s 1 p, p 1 , r 1 , q 1 } 2 2 2 2

Cc bc lp tnh I1 = P(I0):
PI 0 = <, {u, s, p, r, q}>; PI 1 = <{u}, {s}>; PI 2 = <{u}, > 0 0 0 PI 3 = PI 2. Vy I1 = <{u}, >. 0 0

Bc 2: Ta c:
PI1 = { u , s 0 p, p 1 , r 1 , q 1 }
2 2 2

Cc bc lp tnh I2 = P(I1):
PI 0 = <, {u, s, p, r, q}>; PI 1 = <{u}, {s}>; PI 2 = PI 1 1 1 1 1

Bc 3: Ta c:
PI 2 = { u , s 0 p, p 1 , r 1 , q 1 } = PI1 2 2 2

Do m hnh bn vng 3-tr -nh nht ca P l P(I2) = <{u}, {s}>. nh l 4.5 Cc thut ton 4.2 v 4.3 tnh m hnh bn vng 3-tr -nh nht c thc hin vi thi gian a thc. Chng minh: Bi v P l chng trnh Datalog nn c s Herbrand BP ca P l hu hn v vi cc bc lp trong thut ton 4.2 v 4.3 ta suy ra ngay m hnh bn vng 3-tr -nh nht c tnh vi thi gian a thc theo kch thc ca BP. 4.2.3 Mi quan h gia m hnh bn vng 3-tr -nh nht vi m hnh bn vng 2-tr v m hnh hon ho Trong trng hp tng qut, m hnh bn vng 3-tr -nh nht ca chng trnh Datalog P cha hn l m hnh bn vng (2-tr) ca P. V d 4.7 Chng trnh p p khng c m hnh bn vng 2-tr nhng m hnh bn vng 3-tr -nh nht ca n l <, >.
-101

nh l 4.6 Nu chng trnh Datalog P c m hnh bn vng 3-tr -nh nht l 2-tr th n chnh l m hnh bn vng 2-tr duy nht ca P. iu ngc li l khng ng. Chng minh: Gi s I = <TI, FI> l m hnh bn vng 3-tr -nh nht ca P v l m hnh 2-tr. Nh vy tp cc s kin khng xc nh ca P l rng. Lc vi mi quy tc trong chng trnh PI, nu tr 1 xut hin trong thn quy tc th n c th xa khi quy tc v nu tr 0 xut hin trong thn quy tc th quy tc c th loi b m khng gy nh hng g. Mt khc mi quy tc trong PI u khng cha gi tr chn l
1 2

trong thn. Vy PI nhn

c bi php bin i Gelfond-Lifchitz trong [ ]. iu ny suy ra I l m hnh bn vng 2-tr ca P. Hn na r rng I l m hnh bn vng 2-tr duy nht. iu ngc li ca nh l l khng ng. Tht vy, xem chng trnh sau y: P = { b a, a b, p p, p a } Chng trnh ny c m hnh bn vng 2-tr duy nht l <{p, b}, {a}> nhng m hnh bn vng 3-tr -nh nht ca n l <, >. V d 4.8 Xem chng trnh sau: P ={q(1,2) , p(1) q(1,2) p(2), p(1) q(1,1) p(1), p(2) q(2,2) p(2), p(2) q(2,1) p(1)} Ta tm m hnh bn vng 3-tr -nh nht ca P. Khi u: I0 = P0 = <, > Bc 1: Cc bc lp tnh I1 = P(I0)
1 1 Ta c: PI0 = {q(1,2) 1, p(1) q(1,2) 2 , p(1) q(1,1) 2 , 1 1

p(2) q(2,2) 2 , p(2) q(2,1) 2 }


PI 0 = <, {q(1,1), q(1,2), q(2,1), q(2,2), p(1), p(2)}> 0 -102-

PI 1 = <{q(1,2)}, {q(1,1), q(2,1), q(2,2), p(1), p(2)} 0 PI 2 = <{q(1,2)}, {q(1,1), q(2,1), q(2,2), p(2)} 0 PI 3 = <{q(1,2)}, {q(1,1), q(2,1), q(2,2), p(2)} = PI 2 0 0

Vy I1 = <{q(1,2)}, {q(1,1), q(2,1), q(2,2), p(2)}> Bc 2: Cc bc lp tnh I2 = P(I1)


1 Ta c: PI1 = {q(1,2) 1, p(1) q(1,2) 1, p(1) q(1,1) 2 ,

p(2) q(2,2) p(2) q(2,1) 2 } 1,


PI 0 = <, {q(1,1), q(1,2), q(2,1), q(2,2), p(1), p(2)}>, 1 PI 1 = <{q(1,2)}, {q(1,1), q(2,1), q(2,2), p(1), p(2)}> 1 PI 2 = <{q(1,2), p(1)}, {q(1,1), q(2,1), q(2,2), p(2)} 1 PI 3 = <{q(1,2), p(1)}, {q(1,1), q(2,1), q(2,2), p(2)} = PI 2 1 1

Bc 3: Cc bc lp tnh I3 = P(I2) Ta c: PI 2 = { q(1,2) 1, p(1) q(1,2) 1, p(1) q(1,1) 0, p(2) q(2,2) 1, p(2) q(2,1) 0}.
PI 0 = <, {q(1,1), q(1,2), q(2,1), q(2,2), p(1), p(2)}>, 1 PI 1 = <{q(1,2)}, {q(1,1), q(2,1), q(2,2), p(1), p(2)}> 1 PI 2 = <{{q(1,2), p(1)}, {q(1,1), q(2,1), q(2,2), p(2)} 1 PI 3 = <{q(1,2), p(1)}, {q(1,1), q(2,1), q(2,2), p(2)} = PI 2 1 1

Vy PI 2 c m hnh 3-tr cc tiu l I3 = <{q(1,2), p(1)}, {q(1,1), q(2,1), q(2,2), p(2)}> v l m hnh bn vng 3-tr -nh nht ca P. Do I l m hnh 2-tr nn I chnh l m hnh bn vng 2-tr duy nht ca chng trnh P. nh l 4.7 Nu P l chng trnh Datalog phn tng a phng v m hnh bn vng 3-tr -nh nht l 2-tr th n l m hnh hon ho ca P. Chng minh: V P phn tng a phng nn P c m hnh bn vng 2-tr duy nht I v l m hnh hon ho ca P. Mt khc, P c m hnh 3-tr -nh
-103

nht J l 2-tr nn theo nh l 4.6 th J l m hnh bn vng 2-tr duy nht ca P. Vy J I.

-104-

BI TP 1. Cho chng trnh: win(X) move(X,Y) win(Y) a) Gi s c s d liu EDB = {move(1,2), move(2,3), move(3,4), move(3,1)} Tm m hnh m hnh bn vng 3-tr -nh nht ca chng trnh ny. b) Gi s c s d liu EDB = {move(1,2), move(2,3), move(3,4), move(3,1), move(4,5)} Tm m hnh m hnh bn vng 3-tr -nh nht ca chng trnh ny.

-105-

CHNG 5 TI U CU TRUY VN I VI CHNG TRNH DATALOG 5.1 X l vng lp v hn trong qu trnh nh gi cu truy vn Hai phng php nhm ngn chn cc vng lp v hn trong qu trnh nh gi cu truy vn i vi cc chng trnh Datalog c xem xt l php bin i ma tp v php nh gi bng SLG, chng u l nhng thut ton hng ch, c th c p dng nh gi cu truy vn i vi chng trnh Datalog. 5.1.1 nh gi SLD SLD l phng php nh gi cu truy vn theo kiu trn xung. Phng php ny l y , ngha l tt c cc cu tr li ng c biu din trong cy SLD. Cy SLD to ra mt s phn chia chnh xc trong khng gian tm kim: cn tnh ton g v th t tnh ton l nh th no. Mt iu ng tic i vi phng php ny l n khng hiu qu, vic tnh ton trn cy SLD c th ko di v hn. nh ngha 5.1 Gi s P l mt chng trnh Datalog v Q l mt ch truy vn. Cy SLD ca ch truy vn Q i vi chng trnh P c xc nh nh sau: Mi nt ca cy l mt ch v gn kt vi mt php thay th.

ch Q l nt gc, php thay th ca Q l rng.

Nu Q' = q1 q2 qn (n 1) l mt nt trong cy v q1 l v t IDB. ... Cc nt con ca Q c xy dng nh sau: Vi mi quy tc r trong P m u ca r v q1 l c th hp nht c, t: H B1 B2 Bm l ... mt bin th ca r bng cch dng cc bin mi. Lc mt nt con Q ca Q l : (B1 B2 Bm q2 qn) ... ...

trong l hp nht t tng qut nht (mgu) ca q1 v H. Php thay th tnh ton Q'' l trong l php thay th tnh ton Q'.
-106-

Nu Q' = q1 q2 qn (n 1) l mt nt trong cy v q1 l v t EDB. ... Cc nt con ca Q c xc nh nh sau: Vi mi php thay th nn

m q1 thuc CSDL EDB ca P th (q2 qn) l nt con ca Q. ...

Nt kt thc l nt khng c nt con, k hiu l nt kt thc.

nh ngha 5.2 Vic nh gi cu truy vn trn chng trnh Datalog da vo cy SLD c gi l php nh gi SLD. Php nh gi SLD l mt chin lc x l cu truy vn theo kiu trn xung. Qu trnh nh gi bt u t ch truy vn v lp li cc php thay th i vi thn quy tc. Qu trnh nh gi cu truy vn s thnh cng nu tt c cc literal trong ch l c tm ra, c ngha khi ch l nt kt thc. V d 5.1 Xt chng trnh Datalog P sau y : r1 : p(X,Y) e(X,Y) r2 : p(X,Z) e(X,Y) p(Y,Z) Cu truy vn (Q) : ? p(1,Y) Trong p l v t IDB v e l v t EDB, gi s quan h ca v t e c cho bi tp E = {(1,2),..., (n-1,n)}. Cy SLD i vi cu truy vn p(1,Y) nh sau: p(1,Y) e(1,Y) e(1,Z) p(Z,Y) p(2,Y) Y=2 e(2,Y) Y=3 e(2,Z) p(Z,Y) p(3,Y) .
-107-

. . p(n,Y) e(n,Y) e(n,Z) p(Z,Y)

Hnh 5.1 Cy SLD i vi cu truy vn p(1,Y) trong v d 5.1 Php nh gi SLD c th s ko di v hn trong trng hp cy SLD l v hn. Chng ta xt v d sau: V d 5.2 Xt chng trnh Datalog P sau y: r1: p(X,Y) p(X,Z) p(Z,Y) r2: p(X,Y) a(X,Y) Cu truy vn: ? p(1,Y) Trong a l v t EDB, gi s quan h ca v t a gm cc b: (1,2), (1,3), (2,3), p l v t IDB. Cy hp gii SLD i vi chng trnh ny v cu truy vn cho nh sau: p(1,Y) p(1,Z) p(Z,Y) a(1,2) a(1,3)

p(1,Z1) p(Z1,Y)

a(1,2) p(2,Y) a(1,3) p(3,Y)

... Hnh 5.2 Cy SLD i vi cu truy vn p(1,Y) trong v d 5.2 Nhnh bn tri nht ca cy hp gii ny l ko di v hn, v vy php nh gi SLD s i vo vng lp v hn khi tm kim cc li gii ca cu truy

-108-

vn. Trong phn tip theo, chng ti trnh by hai phng php hiu qu x l tnh hung ny. 5.1.2 nh gi bng K thut nh gi bng m rng kh nng ca cc ngn ng lp trnh logic v n c th c dng nh gi cc cu truy vn qui nh trong Prolog nhng vi cc tnh cht kt thc tt hn nhiu. Phng php ny s ngn chn cc vng lp v hn nh xy ra trong phng php nh gi SLD v m bo vic nh gi s kt thc i vi chng trnh Datalog. tng chnh ca phng php nh gi bng nh sau: trong sut qu trnh nh gi cu truy vn, cc ch con v cc cu tr li c lu gi vo mt bng. Mt bng bao gm mt tp cc ch con, mi ch con gn lin vi mt tp cc cu tr li, hai ch con hoc cc cu tr li c xem l ng nht vi nhau trong bng nu chng l cc bin th ca nhau. Mi li gi n ch con phi c kim tra xem ch con ny (hoc mt bin th ca n) c c gi trc hay khng. Nu khng c th ch con ny c chn vo bng v cc quy tc c hp gii da vo ch con ny y nh trong phng php nh gi SLD. Kt qu ca vic nh gi s c a vo bng. Nu c mt bin th ca ch con c gi trc , ch con s c hp gii da vo cc cu tr li c trong bng. Cc cu tr li mi nhn c, n lt n s c thm vo bng v gn lin vi mt ch con trong sut qu trnh nh gi. Vic nh gi s kt thc khi tt c cc quy tc v cc cu tr li c hp gii nh vo vic p dng tt c cc ch con. nh ngha 5.3 (H thng SLG) Mt h thng SLG l mt rng cy SLG c xy dng nh sau:

Nt gc ca cy SLG c dng: q q, trong q l mt ch con,

Cc nt khng phi l nt gc c mt trong hai dng: - Nt tht bi (k hiu fail) c thm vo nh mt nt l ca cc nhnh tht bi, hoc:
-109-

- Nt c dng: Answer_template Goal_list, trong Answer_template l mt nguyn t biu din cc s kin ca cc ch con c xp vo bng trong qu trnh nh gi, Goal_list cha danh sch cc nguyn t vn cn phi hp gii. nh ngha 5.4 (nh gi SLG) Gi s P l chng trnh Datalog, nh gi SLG i vi ch truy vn root l mt dy cc rng cy F0, F1,..., Fn, sao cho:

F0 l rng cha mt cy n root root

Vi mi i 0 hu hn, Fi+1 nhn c t Fi bng cch p dng mt trong cc php ton SLG (nh ngha 5.5). Nu khng c php ton no c p dng vo Fn th Fn c gi l h thng cui cng ca nh gi SLG. nh ngha 5.5 (Cc php ton SLG) (i) ch con mi: Gi s N l nt khng phi nt gc: Answer_Template S Goal_List trong ch con S c xp vo bng. Nu S l ch con mi i vi vic nh gi th thm mt cy mi vi gc l S S. (ii) Hp gii quy tc: - Vi N l mt nt gc S S v R l quy tc Head Body, trong Head hp nht vi ch con S vi mgu l . Thm (S Body) l mt nt con ca nt N nu n l nt mi .
-

Vi nt N : Answer_Template S Goal_List khng phi l nt gc, ch con S khng xp vo bng, R l quy tc Head Body, trong Head hp nht vi ch con S vi mgu l . Thm (Answer_Template Body goal_list) l nt con ca nt N.

(iii) Hp gii cu tr li: Gi s N khng phi nt gc m ch con S c chn ca n l c xp vo bng v Ans l mt nt tr li. Gi N' l hp
-110-

nht ca N v Ans trn S. Lc nu N' khng phi l con ca N th thm N' nh l nt con ca N. minh ha cc php ton trong nh ngha 5.5 ta xt v d sau: V d 5.3 Xt tr li chng trnh Datalog P trong v d 5.2: r1: p(X,Y) p(X,Z) p(Z,Y) r2: p(X,Y) a(X,Y) Cu truy vn: ? p(1,Y) Trong a l v t EDB, gi s quan h ca v t a gm cc b: (1,2), (1,3), (2,3). nh gi SLG ca chng trnh P nh hnh v sau:

1. p(1,Y) p(1,Y) 3.p(1,Y) a(1,Y) ch Tr con li 5. p(1,Y) p(2,Y) 11. p(1,Y) p(3,Y) 4. p(1,Y p(1,2 ) ), p(1,2) 20. p(1,3) p(1,3 ) P(2,Y p(2,3 10. p(1,3) 17. Fail ) ) P(3,Y ) 6. p(2,Y) p(2,Y) 12. p(3,Y) p(3,Y)
-111-

2. p(1,Y) p(1,Z) p(Z,Y)

7. p(2,Y) p(2,Z) p(Z,Y) a(Z,Y) 14. p(3,Y) a(3,Y) 18. p(2,Y) p(3,Y) 15. Fail 19. Fail

8.p(2,Y) a(2,Y) 13. p(3,Y) p(3,Z)

9. p(2,3)

16. Fail

Hnh 5.3 nh gi SLG ca chng trnh P trong v d 5.3 Trong v d ny, h thng SLG khi u t nt 1. Cc nt 6, 12 c to ra bng cch dng php ton to ch con mi. Cc nt 2, 3, 7, 8, 13, 14, 4, 9, 20 c to ra bng php ton hp gii quy tc. Cc nt 5, 11, 18 c to ra bng php ton hp gii cu tr li. nh ngha 5.6 (nh gi y ) Cho F l h thng SLG, mt tp S cc ch con ca F gi l c nh gi y nu mi ch con q S, c t nht mt trong cc iu kin sau y c tha mn: (i) q c mt nt tr li l mt bin th ca q, hoc (ii) i vi mi nt N trong cy c gc l q, - ch con c chn SL ca N l y , hoc - SL S v khng cn p dng c cc php ton SLG i vi SL. Trong v d 5.3, ta c {p(3,Y)}, {p(2,Y), p(3,Y)}, {p(1,Y), p(2,Y), p(3,Y)} l cc tp c nh gi y . Gi s F l h thng SLG i vi nh gi SLG ca mt chng trnh P v cu truy vn Q. Th hin b phn ca F, k hiu I(F), l tp cc nguyn t nn c xy dng nh sau: A I(F) nu A l mt trong cc cu tr li trong
-112-

F, A I(F) nu A l mt hin hnh ca mt nguyn t p v cy SLG i vi p l y trong F nhng khng cha A l mt trong cc cu tr li. nh l 5.1 Cho Q l cu truy vn i vi chng trnh Datalog P. Lc php nh gi SLG s t n mt h thng cui cng Fn m trong mt nguyn t nn A thuc vo I(Fn) nu v ch nu n thuc vo MPP/S, trong MPP/S l m hnh cc tiu ca P c gii hn i vi tp cc ch con S trong F. 5.1.3 Phng php ma tp Cng vi phng php nh gi bng, phng php ma tp (magic set) cng l phng php hiu qu nh gi cu truy vn trn chng trnh Datalog. Sau y l mt s khi nim chnh ca phng php ma tp. 5.1.3.1 T im T im (adornment) l cch ch thch trn cc v t cung cp thng tin v cc v t s c s dng nh th no trong qu trnh nh gi cu truy vn. nh ngha 5.7 Mt i ca mt ch con trong quy tc r c gi l buc nu trong sut qu trnh nh gi cu truy vn, mi ch c to ra t ch con ny c mt tp cc hng v tr ca i ny. Ngc li, i c gi l t do.

Mt t im i vi v t p(t1,t2,...,tk) l mt nh x :{1,2,...,k} {b, f}. Ta thng k hiu t im l (1)(2)...(k). Nu k hiu th i ca t im l b th i th i ca p l buc, nu k hiu th i ca t im l f th i th i ca p l t do. Ch c cc v t IDB l c t im.

Cho quy tc p q1 q2 qn v l t im ca v t p, t im i ca cc ... ch con qi(ti,1,...,ti,ni ) c xc nh nh sau: Nu ti,j l hng hoc bin xut hin trong ch con qk trc (k < i) hoc trong mt v tr buc ca p th i[j] = b, ngoi ra th i[j] = f (vi i[j] l k hiu v tr th j ca t im).
-113-

Cho chng trnh P, chng trnh t im ca P, k hiu l Pad, gm cc quy tc trong P c t im. T im ca cu truy vn p(t1,...,tn) c xc nh bi: [i] = b nu ti l hng v [i] = f nu ngc li.

5.1.3.2 Truyn thng tin sang ngang Mt chin lc truyn thng tin sang ngang (Sips-Sideway infomation passing strategy) l mt quyt nh v cch thc lan truyn thng tin ngang trong thn quy tc khi nh gi quy tc. Chin lc ny ch ra cch thc cc tr buc trong u quy tc c s dng, th t m cc ch con trong thn s c tnh v cch thc cc tr buc ny truyn sang ngang gia cc ch con trong thn quy tc. S dng Sips ta c th truyn cc tr buc ca u quy tc v cc tr buc nhn c t vic nh gi cc ch con trc vo cc ch con cha c nh gi. iu ny tng ng vi vic tnh ton cc quy tc trong nh gi trn xung nhng y quyt nh c thc hin thi gian dch. Chin lc truyn thng tin sang ngang c th biu din bng cc quy tc c t im. V d 5.4 S dng chin lc truyn thng tin t tri sang phi, chng trnh P trong v d 5.1 c th bin i thnh chng trnh t im Pad nh sau: ? pbf(1,Y) ar1 : pbf(X,Y) e(X,Y) ar2 : pbf(X,Z) e(X,Y) pbf(Y,Z) 5.1.3.3 Php bin i ma tp Vo: Chng trnh Datalog P, cu truy vn q. Gi Pad l chng trnh t im nhn c t P theo mt chin lc truyn thng tin ngang cho. Ra: Mt chng trnh mi, k hiu Mag_Pad. Vic nh gi trn chng trnh Mag_Pad s cho cng kt qu cu truy vn q trn chng trnh P. Phng php: Php bin i ma tp c thc hin theo cc bc:
-114-

1. i

vi mi v t p vi i l

trong chng trnh Pad, to ra mt v t mi


_ _ _

mag_p( t b ) vi
2. i

tb

l i b buc ca v t p.

vi mi quy tc r trong Pad: p( t ) q1( t1 ) ... qn( t n ) ta sa i thnh


_ _ _

mt quy tc trong Mag_Pad: p( t ) mag_p( t b ) q1( t1 ) ... qn( t n )


3. i

vi mi quy tc r trong Pad : p( t ) q1( t1 ) ... qn( t n ) v vi mi v t mag_qi( t ib ) mag_p( t b ) q1( t1 ) ... qi-1( t i 1 )
_ _

IDB qi, 1 i n ta thm vo Mag_Pad cc quy tc magic:


_ _

4. Thm

mt s kin ht nhn mag_q( c ), trong

l tp cc hng tng

ng vi cc i b buc ca cu truy vn. Tnh ng n ca php bin i ma tp c th hin bi nh l: nh l 5.2 Gi s P l chng trnh Datalog v q l cu truy vn. Dng php bin i ma tp bin i P v q thnh chng trnh Mag_Pad, chng trnh ny s tng ng vi P theo ngha khi nh gi Mag_Pad s cho ra cng kt qu ca cu truy vn q. 5.1.3.4 Phng php ma tp Phng php ma tp c thc hin qua hai bc sau y : 1. Dng php bin i ma tp vit li chng trnh P v cu truy vn q thnh chng trnh Mag_Pad. 2. nh gi chng trnh Mag_Pad bng cc thut ton kiu di ln nh s ng, bn s ng. V d 5.5 S dng php bin i ma tp i vi chng trnh Pad trong v d 5.4, ta nhn c chng trnh Mag_Pad sau y : mar1 : pbf(X,Y) mar2 : pbf(X,Z) mar5 : mag_pbf(1)
-115-

mag_pbf(X) e(X,Y) mag_pbf(X) e(X,Y) pbf(Y,Z)

mar3 : mag_pbf(Y) mag_pbf(X) e(X,Y)

Gi s quan h ca v t e c cho bi tp E = {(1,2), (2,3), (3,4)}. Bc 1: mag_pbf(1) c to ra Bc 2: pbf(1,2), mag_pbf(2) c thm vo. Bc 3: pbf(2,3), mag_pbf(3) c thm vo. Bc 4: pbf(3,4), mag_pbf(4) c thm vo. Bc 5: Kt thc, khng cn s kin mi c pht sinh. 5.1.4 So snh v cc phng php Cc li gi trong phng php nh gi SLD c biu din bi cc v t magic trong phng php ma tp. Mt khc, bc 3 ca php bin i ma tp, u quy tc magic c cng t im nh cc v t magic c thm vo quy tc. V vy cc t im trong v t magic biu din cc i buc v cc i t do ca mt li gi. C hai phng php nh gi bng v ma tp thc cht thc hin cng mt s tnh ton v u l cc thut ton hng ch. S khc nhau c bn trong vic thc hin ca c hai cch tip cn ny l v mt cu trc d liu. Phng php nh gi bng duy tr mt cy stack ca php tnh sao cho cc cu tr li c tr v trc tip i vi cc php tnh ton. Vi phng php nh gi ma tp, cc cu tr li c a ra bng cch thc hin php ton ni. Mc d chin lc nh gi bng c xem l thuc cch tip cn trn xung v php bin i ma tp c xem l di ln, nhng iu ng ghi nhn l nh gi bng trnh by mt thnh phn di ln trong khi php bin i ma tp trnh by mt thnh phn trn xung trong cc chin lc chung ca chng. Mt im bt li ca hai phng php nh gi bng v ma tp l qu trnh tm cu tr li truy vn khng tch ri c khng gian tm kim ra khi chin lc tm kim. Phng php ma tp loi b mt nt c trng ca phng php nh gi bng, l chia s cu tr li gia cc li gi ging nhau.
-116-

5.2 p dng phng php ma tp trn mt s lp con ca chng trnh Datalog 5.2.1 Phng php ma tp trn chng trnh Datalog tuyn tnh phi nh ngha 5.8 Xt chng trnh Datalog P ch gm mt v t IDB p v cu truy vn p c t im , gi s t im biu th k i u tin ca p l b buc v h i cn li l t do. Chng trnh P c gi l tuyn tnh phi nu: (i) Mi quy tc qui ca P c dng: p (X1,...,Xk,Y1,...,Yh) q1 ... qm p (Z1,...,Zk,Y1,...,Yh)

(R)

trong q1,...,qm l cc v t EDB v tha mn cc iu kin sau: Cc bin Y1,...,Yh phn bit v xut hin chnh xc hai ln trong quy tc, mt ln trong u v mt ln trong ch con qui theo cng mt v tr, chng khng xut hin trong bt k ch con q1,..., qm. Cc bin Z1,...,Zk hoc xut hin trong cc i ca q1,...,qm hoc thuc vo cc bin X1,...,Xk. (ii) Mi quy tc khng qui ca P c dng: p (X1,...,Xk,Y1,...,Yh) e(X1,...,Xk,Y1,...,Yh)

(E)

Trong e l hi ca cc v t EDB. Cc bin xut hin trong p cng phi xut hin trong e. Trn lp chng trnh Datalog tuyn tnh phi, php bin i ma tp c thc hin theo cc bc:
1. i

vi v t qui p trong chng trnh P ta to ra mt v t mag_p trong Mag_Pad. 2. i vi mi quy tc qui tuyn tnh phi c bin i thnh hai quy tc: mar1: mag_p (Z1,...,Zk)

mag_p (X1,...,Xk) q1 qm ...

mar2:p (X1,...,Xk,Y1,...,Yh) mag_p (X1,...,Xk) q1 ... qm p (Z1,...,Zk,Y1,...,Yh) 3. i vi mi quy tc khng qui c bin i thnh quy tc:
-117

mar3: p (X1,...,Xk,Y1,...,Yh) mag_p (X1,...,Xk) e(X1,...,Xk,Y1,...,Yh) 4. Cu truy vn p (c1,...,ck,Y1,...,Yh), vi c1,...,ck l cc hng, c vit thnh: mar4: mag_p (c1,...,ck) V d 5.6 Xt chng trnh Datalog tuyn tnh phi nh ngha quan h totien: r1 : totien(X,Y) bome(X,Y) r2 : totien(X,Y) bome(X,Z) totien(Z,Y) Cu truy vn (Q) : ? totien(x0,Y) Gi s quan h ca v t EDB bome c cho bi tp hp: E = {(x0,x1), (x1,x2),..., (xn-1,xn)} Chng trnh c vit li bi php bin i ma tp l: mar1 : totienbf(X,Y) mar2 : totienbf(X,Y) mag_totienbf(X) bome(X,Y) mag_totienbf(X) bome(X,Z) totienbf(Z,Y)

mar3 : mag_totienbf(Z) mag_totienbf(X) bome(X,Z) mar4 : mag_totienbf(x0) S dng thut ton nh gi di ln i vi chng trnh ny, chng hn thut ton bn s ng, ta nhn c n b mag_totienbf(xi), 0 i n, do vi mi b mag_totien(xi), ta nhn c b totien(xi,xj), 0 i < j n. iu ny c ngha s cc b c to ra i vi v t totien l 0(n2). Tuy nhin, ch vi nhng b pht sinh i vi v t mag_totien bao gm tt c cc b cn tm ca cu truy vn, v vy quy tc mar1 c th c p dng tm c li gii cu truy vn. Trong khi quy tc mar2 li tnh cc b t tin ca nhng t tin ca a, r rng iu ny l tha. Do quy tc mar2 c th loi b, nh vy s gim s cc b cn tnh i vi v t mag_totien xung cn O(n). Ta c ci tin php bin i ma tp sau y: Thut ton 5.1 (Php bin i ma tp trn chng trnh Datalog tuyn tnh phi)
-118-

Vo: Chng trnh Datalog P qui tuyn tnh phi v cu truy vn p(c1,...,ck,Y1,...,Yh), vi c1,..., ck l cc hng. Ra: Chng trnh RMag_Pad sao cho khi nh gi RMag_Pad (bng cc thut ton nh s ng, bn s ng,...) s cho ra kt qu ca cu truy vn p . Phng php: Thut ton thc hin theo cc bc: vi v t qui p trong chng trnh Pad ta to ra mt v t mag_p trong chng trnh RMag_Pad. 2. i vi mi quy tc qui tuyn tnh phi c dng (R) trong nh ngha 5.8, c bin i thnh quy tc:
1. i

mar1: mag_p (Z1,...,Zk) mag_p (X1,...,Xk) q1 ... qm 3. i vi mi quy tc khng qui c dng (E) trong nh ngha 5.8, c bin i thnh quy tc: mar2: p (X1,...,Xk,Y1,...,Yh) mag_p (X1,...,Xk) e(X1,...,Xk,Y1,...,Yh)
4. Cu

truy vn p (c1,...,ck,Y1,...,Yh) tr thnh: mar3: mag_p (c1,...,ck).

p dng php bin i trn vo chng trnh v d 5.6, n loi b quy tc mar2 c to ra bi php bin i ma tp. nh l 5.3 Vic nh gi trn chng trnh RMag_Pad bng thut ton bn s ng s sinh ra cng kt qu vi vic nh gi trn chng trnh P, mt khc n hiu qu hn khi nh gi trn chng trnh Mag_Pad. Chng minh: Vi cc iu kin trong nh ngha 5.8, vi u quy tc t im p th ch con p trong thn cng c t im v mt cu tr li i vi ch con p cng l mt cu tr li i vi u quy tc bi v cc i t do ca p c cng cc bin nh trong u. Mt khc, khi mt cu tr li i vi mt ch con c thay th trong thn ca quy tc qui th cng khng to ra thm cu tr li no khc i vi u quy tc. Do quy tc mar2 c to ra bi php bin i ma tp l tha, v vy vic nh gi trn chng trnh RMag_Pad v Mag_Pad l cho cng kt qu ca cu truy vn. T theo nh
-119

l 5.2, vic nh gi ny s cho cng kt qu khi nh gi trn P. Thut ton ny l hiu qu hn thut ton ma tp nh vo vic n loi b c mt quy tc qui khng cn thit. V d 5.7 p dng php bin i ma tp tuyn tnh phi vo chng trnh v d 5.6, quy tc mar2 c to ra bi php bin i ma tp s b loi b, kt qu ta nhn c chng trnh: mar1: mag_totienbf(Z) mag_totienbf(X) bome(X,Z) mar3: totienbf(X,Y) mag_totienbf(X) bome(X,Y) mar4: mag_totienbf(x0) Chng trnh ny s tnh cc b ca v t mag_totien vi thi gian l O(n), t li gii ca cu truy vn ?totien(x0,Y) gm n b s c tnh cng vi thi gian O(n). 5.2.2 Php bin i ma tp trn chng trnh Datalog khng qui R rng i vi cc chng trnh khng qui th khng nht thit phi dng n php bin i ma tp, tuy nhin chng ti mun tho lun php bin i ma tp trn lp chng trnh ny ch nhm nu ln tnh hiu qu tng i ca phng php. Do phng php ma tp s dng mt chin lc truyn thng tin sang ngang bin i chng trnh ban u, v vy nu trong chng trnh c s lp li cc v t trong thn quy tc th khi p dng php bin i ma tp, lun lun dn ti mt chng trnh qui. V d 5.8 Xem chng trnh Datalog P gm cc quy tc sau: r1: ongba(X,Z) p(X,Y) p(Y,Z) r2: p(X,Y) bome(X,Y) Cu truy vn (Q) ? ongba(a,Z) Chng trnh ny l khng qui, p dng php bin i ma tp i vi chng trnh P ta nhn c chng trnh Mag_Pad nh sau: mar1: ongba(X,Z) mag_ongbabf(X) pbf(X,Y) pbf(Y,Z) mar2: p(X,Y) mag_pbf(X) bome(X,Y)
-120-

mar1: mag_pbf(X)

mag_ongbabf(X)

mar3: mag_pbf(Y) mag_ongbabf(X) pbf(X,Y) Cu truy vn (Q) ? ongba(a,Z) Chng trnh ny l qui do th ph thuc c chu trnh p mag_p p Php bin i ma tp a vo v t magic truyn thng tin sang ngang. T th ph thuc ca mt chng trnh Datalog, ta c th kt hp vi mt chin lc truyn thng tin sang ngang xy dng nn mt th khc m ta gi l th ph thuc m rng. C th xem th ph thuc m rng l s m rng ca th ph thuc bng cch thm vo th ph thuc mt chin lc truyn thng tin sang ngang. th ph thuc m rng ca mt chng trnh Datalog P, k hiu EDG(P), l mt th c hng c gn nhn, nhn c bng cch m rng th ph thuc DG(P) ca chng trnh Datalog P. th EDG(P) c xy dng nh sau: i vi mi v t p trong chng trnh P, to ra mt nt c gn nhn l p. i vi mi v t IDB p trong chng trnh P, to ra mt nt thng tin c gn nhn l m_p.

th EDG(P) c hai loi cnh: cnh ph thuc (k hiu bi ) v cc cnh thng tin (k hiu bi ). Vi mi quy tc c dng: r: p q1 q2 qn ... cc cnh ca th EDG(P) nhn c nh sau: - Cnh ph thuc qi p vi mi i = 1,..., n - Cnh thng tin m_p m_qj, trong qj l ch con IDB u tin trong quy tc r. - Gi qi l ch con trong quy tc r, qj l ch con IDB u tin (nu c) sau ch con qi. Cnh thng tin qi m_qj nhn c t mi ch con qi.
-121-

- Cnh thng tin m_p

p nhn c t mi quy tc c dng:

p q1 q2 qn ... th ph thuc m rng c cho bi hnh v sau:

-122-

ongba p m_p

m_ongba

bome Hnh 5.6 th ph thuc m rng ca chng trnh trong v d 5.8 Trong th ph thuc m rng, cc cnh biu din mt chin lc truyn thng tin sang ngang gia cc ch con trong quy tc v s lan truyn cc tr buc t u quy tc ti thn quy tc. y chnh l cch thc m php bin i ma tp s dng bin i chng trnh ban u. Nh vy, ta c th lin kt mt nt thng tin m_p trong th ph thuc m rng EDG(P) ca chng trnh P vi mt v t mag_p trong chng trnh c vit li bi php bin i ma tp. Lc cc ng i trong EDG(P) biu din cc ng i trong th ph thuc ca chng trnh vit li ny. nh l sau y cho thy mi lin h gia th ph thuc ca chng trnh vit li bi php bin i ma tp v th EDG(P): nh l 5.4 Cho P l chng trnh Datalog v Mag_P l chng trnh vit li ca P bi php bin i ma tp. Lc Mag_P l qui khi v ch khi th ph thuc m rng EDG(P) c chu trnh. Chng minh: iu kin cn: cc th th EDG(P) v DG(Mag_P) c s tng ng 1-1 gia cc nt ca chng. Mc khc theo php bin i ma tp th mi quy tc r trong P c u l p c sa i thnh mt quy tc trong Mag_P bng cch thm v t mag_p vo thn ca n, v vy c mt cnh t mag_p n p, chnh l cnh thng tin trong EDG(P). Vi mi quy tc r trong P c u l p v ng vi mi v t IDB qi trong thn ca n, Mag_P c thm vo cc quy tc: u ca quy tc ny l mag_qi v thn bao gm v t mag_ p cng vi cc ch con ng trc qi trong quy tc r. iu ny suy ra trong
-123-

th DG(Mag_P) c cc cnh t mag_p n mag_q vi q l cc ch con IDB trong quy tc r nh ngha p v t q n mag_p vi q l ch con ng trc p trong quy tc r trong P. Theo nh ngha ca th EDG(P) th cc cnh ny tng ng vi cc ng i trong EDG(P). Tm li, mi cnh trong DG(Mag_P) u tng ng cc ng i trong EDG(P). Do nu DG(Mag_P) c chu trnh th EDG(P) cng c chu trnh. iu kin : Bi v mi cnh trong EDG(P) cng tng ng vi mt cnh trong DG(Mag_P) nn mi ng i trong th EDG(P) s c mt ng i trong DG(Mag_P). Do nu EDG(P) c chu trnh th DG(Mag_P) cng c chu trnh. Phng php ma tp trn chng trnh Datalog khng qui: Cc v t lp li l nguyn nhn sinh ra chng trnh qui sau khi p dng php bin i ma tp. V vy loi b vic lp li cc v t trng nhau trong thn cc quy tc ca mt chng trnh khng qui ta c th thc hin nh sau: i vi s xut hin k ln ca v t p trong thn cc quy tc th ta to ra bn sao ca v t p bi cc v t p1, p2,..., pk v khi thay th mi s xut hin ca p trong chng trnh bi p1, p2,..., pk, kt qu ta thu c cc quy tc tng ng m khng lp li cc ch con trong thn cc quy tc. T th ph thuc m rng EDG(P) ca chng trnh ny khng c chu trnh, v vy php bin i ma tp i vi P s to ra mt chng trnh khng qui. Ta c thut ton sau: Thut ton 5.2 Vo: Chng trnh Datalog P khng qui, cu truy vn q. Ra: Chng trnh Datalog Mag_P' khng qui. Phng php: Thut ton thc hin theo cc bc sau y: 1. Nu ch con p c mt k ln cc quy tc (k >1) ca P th to ra bn sao ca v t p bi p1, p2,..., pk v thay th mi s xut hin ca ch con p trong cc quy tc bi p1, p2,..., pk.
-124-

2. Gi P' l chng trnh mi nhn c. p dng php bin i ma tp vo chng trnh P' v cu truy vn q ta nhn c chng trnh Mag_P', Mag_P' l chng trnh khng qui. nh l 5.5 Thut ton 5.2 l ng n. Chng minh: R rng th ph thuc m rng EDG(P') khng c chu trnh, v vy theo nh l 5.4 th th ph thuc DG(Mag_P') cng khng c chu trnh. Chng trnh P' tng ng P, v vy vic nh gi trn chng trnh Mag_P' s cho ra kt qu ca cu truy vn q theo thut ton ma tp. V d 5.9 Xt chng trnh Datalog P cho trong v d 5.8 r1: ongba(X,Z) p(X,Y) p(Y,Z) r2: p(X,Y) bome(X,Y) Cu truy vn (Q) ? ongba(a,Z) Do v t p xut hin 2 ln trong quy tc r1 nn ta to ra hai bn sao p1 v p2 ca p. Chng trnh P' nhn c t P l: r1: ongba(X,Z) p1(X,Y) p2(Y,Z) r2: p1(X,Y) r3: p2(X,Y) bome(X,Y) bome(X,Y)

Cu truy vn (Q) ? ongba(a,Z) Php bin i ma tp trn P' to ra chng trnh khng qui. 5.3 Phng php ma tp ci tin Phn ny trnh by mt ci tin ca phng php ma tp. Trc ht nhn xt rng php bin i ma tp c thc hin qua hai giai on: Giai on 1 (Bc t im): Thc hin vic t im chng trnh ban u thnh mt chng trnh (k hiu Pad) theo mt chin lc truyn thng tin ngang c chn trc. Giai on 2 (Bc bin i chng trnh): Mt chng trnh mi, k hiu Mag_Pad, c to ra t chng trnh Pad gi l chng trnh magic. Phng php ma tp ci tin trn hai im chnh:
-125-

Ci tin giai on t im chng trnh ca php bin i ma tp. Ci tin vic thc thi chng trnh Mag_Pad c to ra trong giai on 2 ca php bin i ma tp. 5.3.1 Thut ton t im chng trnh Giai on hai ca php bin i ma tp c trnh by chi tit trong [ ], tuy nhin vn t im cc quy tc trong chng trnh ban u cha hn l r rng. Trc ht cn phi phn tch chi tit bc t im chng trnh, t xc nh mt thut ton t im chng trnh. Chng trnh t im Pad bao gm mt tp cc quy tc cha cc v t c t im. Qu trnh t im c bt u bng vic t im v t ca cu truy vn, t thc hin t im v t ca u cc quy tc. Thng tin v cc i buc s c truyn t u n thn v trong thn th thng tin c truyn gia cc ch con. Qu trnh t im mt quy tc r c th thc hin nh vo th truyn thng tin c xy dng cho quy tc . nh ngha 5.9 i vi mi quy tc r c cha t nht mt v t IDB trong thn, ta to ra mt th, k hiu IPG, c gi l th truyn thng tin ca quy tc r - l mt th c hng c xy dng nh sau: V t u quy tc r to thnh nt xut pht ca th v ch c cc cnh i. Mi v t IDB trong thn quy tc r c biu din bi mt nt trong IPG. Cc cnh c hng p S q t nt p n nt q c gn nhn l tp S cc bin. Cc cnh v nhn ch nh cch thc thng tin c truyn gia cc ch con. Cc cnh ca th ch ra mt th t cc ch con c nh gi, cc nhn ch nh thng tin c truyn sang ngang t ch con ny n ch con khc. Gi tr ca cc nhn c truyn t v t p n v t q gii hn s cc b c tnh trong q. Nu v phi ca quy tc cha mt vi v t cng tn th cn phn bit chng bng cc ch s di chng l phn bit nhau trong th IPG.

-126-

Quy tc c t im nh sau: Sau khi to ra th IPG i vi quy tc r cho v u ca quy tc ny c t im, ta c th da vo th ny t im thn quy tc: gn k t b cho cc i ca v t IDB q nu chng xut hin trong cc nhn ca tt c cc cnh dn n nt q trong th IPG v gn k t f cho cc i khc ca q. V d 5.10 Xem quy tc sau, trong p, q, s l cc v t IDB: p(X,Y) q(X,Z) s(Z,Y) Gi s i X ca v t p b buc bi hng 1, vic truyn thng tin trong quy tc r c biu din nh sau hnh v: p(X,Y) q(X,Z) s(Z,Y) X Z Hnh 5.7 Truyn thng tin ngang trong v d 5.10 Nh vy quy tc r c t im thnh quy tc: pbf(X,Y) qbf(X,Z) sbf(Z,Y) Khi hon thnh vic t im cc v t trong thn quy tc, ta c th tip tc vi cc quy tc nh ngha nhng v t ny. Nu c bin th khc ca t im ca v t c t im th ta to ra bn sao ca mi quy tc nh ngha v t v dng bin th mi ny t im cho u quy tc mi. Sau khi cc quy tc c x l bi k thut ny, thn ca quy tc mi s bt u c t im. Chng hn vi quy tc t im pbf(X,Y) qbf(X,Z) qfb(Y,Z), quy tc ny cha hai phin bn t im ca v t q, v vy ta to ra hai quy tc trong Pad cho mi quy tc trong P c u l q. Mt quy tc c t im bf v mt quy tc c t im fb. V d 5.11 Xem chng trnh Datalog : r1: p(X,Y) p1(X,Y) p2(Y,X) r2: p1(X,Y) e1(X,Y) r3: p1(X,Y) e1(X,Z) p1(Z,Y) r4: p2(Y,X) e2(Y,X)
-127-

r5: p2(Y,X) e2(Y,Z) p2(Z,X) Trong e1, e2 l nhng v t EDB, p1, p2, p l cc v t IDB. Cu truy vn ? p(a,Y). Xem quy tc r1 nh ngha v t p, i u tin X ca p b buc vo hng a. th truyn thng tin IPG ca quy tc r1 nh sau:
X p p1 X, p2 Y

Trong quy tc ny, thng tin c truyn t p vo p1 qua bin X v t v t p1, thng tin c truyn sang p2 qua cc bin X, Y. Nh vy quy tc r1 c t im thnh quy tc:
bb pbf(X,Y) p1bf ( X,Y ) p2 (Y,X )

Lc ny v t p1 c t im bf v v t p2 c t im bb, tip tc thc hin vic t im cho cc v t p1, p2. Xt quy tc r3 nh ngha v t p1, i u tin X ca p1 b buc. th truyn thng tin IPG ca quy tc r3 nh sau:
bf p1 ( X,Y ) e1(X,Z)

X Z p1 e1 p1

Nh vy quy tc r3 c t im thnh quy tc: p1bf ( Z , Y )


bb p2 (Z,X)

Tng t, quy tc r5 c t im thnh quy tc:


bb p 2 (Y,X ) e2(Y,Z)

Kt qu ta nhn c chng trnh t im sau: pbf(X,Y)


bb p1bf ( X,Y ) p2 (Y,X ) bf p1 ( X,Y ) e1(X,Y) bf bf p1 ( X,Y ) e1(X,Z) p1 ( Z,Y ) bb p2 (Y,X ) e2(Y,X) bb bb p2 (Y,X ) e2(Y,Z) p2 ( Z,X )

Trong v d ny th vic truyn thng tin l r rng bi v ta khng th chn cch thc truyn thng tin no khc khi xy dng th IPG. Tuy nhin c nhiu tnh hung m c th c nhiu cch chn truyn thng tin trong quy
-128-

tc, ta hy xem li quy tc r1 trong v d 5.11, nhng ta o ngc th t cc ch con: r1: p(X,Y) p2(Y,X) p1(X,Y) Lc ny th truyn thng tin IPG ca quy tc r1 nh sau:
X p p2 X, p1 Y

v ta c quy tc t im: pbf(X,Y) p2fb (Y,X ) p1bb ( X,Y ) Tip tc t im cho cc quy tc cn li, kt qu ta nhn c chng trnh t im: pbf(X,Y) p2fb (Y,X ) p1bb ( X,Y )
bb p1 ( X,Y ) e1(X,Y) bb bb p1 ( X,Y ) e1(X,Z) p1 ( Z,Y )

p2fb (Y,X ) e2(Y,X)


bb p2fb (Y,X ) e2(Y,Z) p2 ( Z,X )

Ta c thut ton sau: Thut ton 5.3 (T im chng trnh) Vo: Chng trnh Datalog P v cu truy vn q. Ra: Chng trnh t im Pad. Phng php: Thut ton thc hin theo cc bc sau y: 1. Khi u tp cc quy tc t im Pad ca chng trnh Datalog P l rng. 2. T im ch truy vn ca chng trnh ban u. Thm ch t im ny vo Pad. 3. T im u cc quy tc v chn cc quy tc ny vo Pad. 4. i vi mi quy tc r vi t im mi c thm vo trong tp quy tc t im, thc hin t im thn cc quy tc. 5. Nu ta nhn c mt t im ca mt v t cha c t im hoc mt bin th mi ca mt t im ca v t c t im ri th quay li
-129-

bc 3. Ngc li, dng qu trnh t im, ta nhn c chng trnh Pad gm cc quy tc c t im. nh l 5.6 Thut ton t im chng trnh 5.3 l ng n v dng sau mt s hu hn bc. Chng minh: Tnh ng n c suy t nh l 5.2. Qu trnh lp t im cc quy tc s dng do qu trnh lp t im v t khng bao gi lp li v t v do s v t IDB cng tp cc quy tc trong chng trnh l hu hn. 5.3.2 Ti u bc t im chng trnh Mt hn ch ca php bin i ma tp l khng xc nh c th t ti u gia cc ch con thc hin giai on t im. Cu truy vn c t im trc tin nhm xc nh cc i no ca mt v t l b buc v cc i no l t do. Chin lc truyn thng tin sang ngang cho trc s c dng trong sut qu trnh t im v th t cc ch con trong quy tc phi c ch ra thc hin t im. V vy k thut ma tp s hiu qu hn nu ta xc nh c mt th t gia cc ch con trong quy tc h tr cho qu trnh t im. Tuy nhin, thng th khng c nhiu thng tin lm c s nh gi chi ph v th t php ni gia cc ch con v khi p dng k thut ma tp th hoc chp nhn mt th t ging nh th t ca cc ch con trong quy tc hoc s dng mt th t c ch ra. Ta xt v d sau y: V d 5.12 Cho chng trnh P gm cc quy tc: r1: p(X,Y) q(X,Z) s(Z,Y) r2: q(X,Y) v(X,W,V,Y) w(Y,W,U,V) r3: s(X,Y) t(X,Z) u(X,Y) Cu truy vn: (Q) ? r(2,X) p(X,Y) Trong p, q, s l cc v t IDB, r, u, v, w v t l cc v t EDB. Trong bc t im, ch con p(X,Y) trong truy vn (Q) c t im bf bi v i th nht ca n l i th hai ca v t EDB r(2,X). V vy, quy tc r1
-130-

c t im vi u l pbf. Ta cn phi a ra mt quyt nh v th t gia cc ch con q v s trong quy tc r1. Lc ny thng tin duy nht c th s dng xc nh th t cc ch con q v s l bin X b buc vo mt tp cc hng v nh vy c th xc nh th t cc ch con trong quy tc r1 l l (q,s). Kt qu ta nhn c chng trnh t im Pad nh sau: ar1: pbf(X,Y) qbf(X,Z) sbf(Z,Y) ar2: qbf(X,Y) v(X,W,V,Y) w(Y,W,U,V) ar3: sbf(X,Y) t(X,Y) u(X,Y) Cu truy vn (Q) c t im: ? r(2,X) pbf(X,Y) Bc bin i chng trnh ca php bin i ma tp s bin i chng trnh Pad thnh chng trnh Mag_Pad sau y: mar1: pbf(X,Y) mag_pbf(X) qbf(X,Z) sbf(Z,Y) mar2: qbf(X,Y) mag_qbf(X) v(X,W,V,Y) w(Y,W,U,V) mar3: sbf(X,Y) mag_sbf(X) t(X,Y) u(X,Y) mar4: mag_pbf(X) r(2,X) mar5: mag_qbf(X) mag_pbf(X) mar6: mag_sbf(X) mag_pbf(X) qbf(X,Z) Cu truy vn: (Q) ? r(2,X) pbf(X,Y) Trong chng trnh Mag_Pad, vic nh gi trn quy tc mar1 ph thuc vo s cc b nhn c ca v t mag_pbf(X). Mt khc, t quy tc mar4, ta c th xc nh cc b ca r(2,X), t c th tnh c cc b ca mag_pbf(X). Nh vy, nu bit thng tin v cc v t cung cp tr buc th iu ny s gip ta xc nh c th t ca cc ch con trong bc t im. Tuy nhin, ch khi thc hin xong bc th nht th ta mi nhn c v t ny. Ta c th gii quyt vn ny bng cch p dng v t magic i vi cu truy vn (Q) ngay trong bc t im. T vic phn tch trn ta c th ci tin bc t
-131-

im chng trnh ca php bin i ma tp nh sau: S dng v t magic bin i cu truy vn, t xc nh mt th t gia cc ch con trong cc quy tc bin i chng trnh P thnh chng trnh t im Pad. V d 5.13 Xem chng trnh P trong v d 5.12. T cu truy vn (Q) ta to ra quy tc magic (mar4) nh ngha v t mag_pbf v thm v t magic ny nh l mt ch con vo quy tc r1, ta nhn c chng trnh P' gm cc quy tc: r1': pbf(X,Y) mag_pbf(X) q(X,Z) s(Z,Y) r2: q(X,Y) v(X,W,V,Y) w(Y,W,U,V) r3: s(X,Y) t(X,Y) u(X,Y) r4: mag_pbf(X) r(2,X) rng cc ch con trong quy tc r1' khng c t im bi v chng ta cha xc nh mt th t ni gia cc ch con q v s. Lc ny vi cc thng tin v v t mag_pbf(X) cng vi nhng thng tin ca cc ch con q v s ta c th xc nh mt th t ca cc ch con. 5.3.3 Ci tin vic thc thi chng trnh Mag_Pad 5.3.3.1 Hn ch tnh ton d tha trn chng trnh vit li bi thut ton ma tp Sau khi thc hin php bin i ma tp, ta nhn c mt chng trnh mi v vic tm kim li gii ca chng trnh vit li ny thng c thc hin bi cc thut ton nh gi di ln chng hn thut ton bn s ng, thut ton ny cho php ngn chn vic tnh ton li cc s kin c tnh bc trc. Tuy nhin, n khng ngn chn c vic dn xut ra cc v t magic d tha. Gia cc v t magic t im, mc du khng c quan h v c php nhng v mt ng ngha, mt v t magic t im c th cha cc v t magic t
-132-

im khc. Vn y chnh l s dng cc thng tin trong cc t im xc nh xem mt v t magic c cha v t magic khc hay khng. Vic kim tra quan h gia cc v t magic c th thu hp thnh vic kim tra gia cc v t tng ng ca chng. iu ny c thc hin qua thut ton sau y: Thut ton 5.4 (Kim tra quan h gia cc v t magic c t im) Vo: Gi s mag_ p1 (c) v mag_ p2 (d ) l hai v t magic ln lt c t im l v . Ra: Cho bit v t mag_ p1 (c) c cha v t mag_ p2 (d ) hay khng. Phng php: Thut ton thc hin theo cc bc: Bc 1: Bin i cc v t mag_ p1 (c) thnh hng thc p1( x ), trong gm cc hng trong
c x

bao

tng ng vi k t b v cc bin phn bit tng ng

vi k t f. Tng t, bin i v t mag_ p2 (d ) thnh hng thc p2( y ). Bc 2: Nu tn ti hp nht t tng qut nht (mgu) ca p1( x ) v p2( y ) sao cho p1 chnh l p2 th kt lun v t mag_ p1 (c) cha v t mag_ p2 (d ) , ngc li th mag_ p1 (c) khng cha v t mag_ p2 (d ) . nh l 5.7 Thut ton 5.4 l ng n. Chng minh: R rng nu tn ti mgu ca p1( x ) v p2( y ) sao cho p1( x ) = p2( y ) th p1( x ) cha p2( y ), iu ny c ngha mag_ p1 (c) cha mag_ p2 (d ) . rng php hp nht tr nn n gin hn nhiu nu mt trong hai v t cn hp nht l nguyn t nn. Trong trng hp ny th php hp nht thu hp thnh php i snh hng thc. V d 5.14 Xt hai v t mag_pbff(a) v mag_pbbf(a,b). Ta c mag_pbff(a) tng ng vi ch ?p(a,X,Y) v mag_pbbf(a,b) tng ng vi ch ?p(a,b,Z), mt khc hp nht t tng qut nht ca p(a,X,Y) v p(a,b,Z) l {X/b,Y/Z} v p(a,X,Y) = p(a,b,Z). V vy mag_pbff(a) cha mag_pbbf(a,b).
-133-

V d 5.15 Xt chng trnh Datalog P trong v d 5.6: r1: totien(X,Y) bome(X,Y) r2: totien(X,Y) bome(X,Z) totien(Z,Y) Trong : bome l v t EDB, totien l v t IDB. Gi s quan h i vi v t EDB bome gm cc b (a,b), (b,c), (c,d). Cu truy vn ?totien(X,d). S dng chin lc truyn thng tin t tri sang phi, sau giai on 1 ca php bin i ma tp ta nhn c chng trnh t im Pad sau y: ar1 : totienfb(X,Y) bome(X,Y) ar2 : totienfb(X,Y) totienfb(Z,Y) bome(X,Z) ar3 : totienbb(Z,Y) bome(X,Y) ar4 : totienbb(X,Y) totienbb(Z,Y) bome(X,Z) ch truy vn c t im: ? totienfb(X, d) Sau giai on 2 ca php bin i ma tp, ta nhn c chng trnh Mag_Pad: mar1 : totienfb(X,Y) mag_totienfb(Y) bome(X,Y) mar2 : totienfb(X,Y) mag_totienfb(Y) bome(X,Z) totienbb(Z,Y) mar3 : mag_totienbb(Z,Y) mag_totienfb(Y) bome(X,Z) mar4 : totienbb(X,Y) mag_totienbb(X,Y) bome(X,Y) mar5 : totienbb(X,Y) mag_totienbb(X,Y) bome(X,Z) totienbb(Z,Y) mar6 : mag_totienbb(Z,Y) mag_totienbb(X,Y) bome(X,Z) mar7 : mag_totienfb(d) p dng thut ton bn s ng cho chng trnh Mag_Pad ny, ta nhn c: Bc 1: mag_totienfb(d) c to ra. Bc 2: totienfb(c,d), mag_totienbb(b,d), mag_totienbb(c,d), mag_totienbb(d,d) c thm vo. Bc 3: totienbb(c,d) c thm vo.
-134-

Bc 4: totienbb(b,d), totienfb(b,d) c thm vo. Bc 5: totienfb(a,d) c thm vo. Bc 6: Kt thc, ta nhn c li gii cu truy vn (c,d), (b,d), (a,d). R rng cc v t mag_totienbb(b,d), mag_totienbb(c,d), mag_totienbb(d,d) c to ra bc 2 l cha trong v t magic biu din cu truy vn ban u mag_totienfb(d), v vy chng l d tha v khng cn phi tnh. Tm li, tnh ton d tha trong cc thut ton nh gi cu truy vn trn chng trnh vit li bi php bin i ma tp s trnh c bng cch kt hp thm thut ton kim tra v t magic c to ra mi bc c cha trong v t magic to ra bc trc hay khng, nu c th ta loi b n. 5.3.3.2 Kt hp cc chin lc Sips trong qu trnh nh gi chng trnh Mag_Pad Chng trnh Mag_Pad thng c nh gi bi cc thut ton lp kiu di ln, cc thut ton ny khng xem xt s cc s kin c pht sinh trong qu trnh nh gi cu truy vn, tc l s cc s kin c to ra trong mi bc lp. Trong mi bc lp nu ta chn c mt chin lc truyn thng tin tt th c th gim bt s pht sinh cc s kin d tha v t c hiu qu ti u. iu ny thng khng th nhn c trn chng trnh Mag_Pad theo chin lc truyn thng tin c chn trc. Vn t ra trong vic nh gi cu truy vn l lm th no trnh c vic chn mt chin lc Sips km hiu qu trong khi li khng bit c mt chin lc Sips tt nht. Trong trng hp tng qut ta khng th bit trc s cc s kin pht sinh khi nh gi cu truy vn v v vy khng th chn ra c mt chin lc Sips no l tt nht. Tuy nhin, ta c th c nhng thng tin b sung v s s kin c lin quan trong sut qu trnh nh gi cu truy vn. Trong vic xc nh mt chin lc Sips mi bc lp, ta cn xem xt mt s vn sau y: Cc v t magic c th cha cc v tmagic khc, chng hn mag_pbf(a) cha
-135-

mag_pbb(a,k). Ngha l, vi mt tp quy tcmagic cho m cc truy vn con mag_pbf(a) v mag_pbb(a,k) c to ra trong sut qu trnh nh gi, tt c cc cu tr li i vi truy vn con th hai cng s c to ra bi truy vn con u tin (tng qut hn). V vy, cc truy vn con mag_pbb(a,_) khng cn phi c nh gi trong tp quy tc ny. Cc quy tc ban u ch nn c xem xt li sau khi mt s kh ln cc s kin c pht sinh. Nh vy, chng ta cn c mt tiu chun chn xc nh vo thi im no th nn thay i sang mt chin lc Sips khc tt hn. V d 5.16 Xt chng trnh Datalog P trong v d 5.6: r1 : totien(X,Y) bome(X,Y) r2 : totien(X,Y) bome(X,Z) totien(Z,Y) Cu truy vn l ?totien(a,Y). Hai chin lc truyn thng tin c th c chn nh gi cc ch con trong thn quy tc ca totien l t tri sang phi v t phi sang tri. Dng chin lc tri sang phi ta nhn c tp cc quy tc sau: totienbf(X,Y) totienbf(X,Y) mag_totienbf(X) bome(X,Y) mag_totienbf(X) bome(X,Z) totien(Z,Y)

mag_totienbf(Z) mag_totienbf(X) bome(X,Z) Dng chin lc phi sang tri ta nhn c tp cc quy tc sau: totienbf(X,Y) mag_totienbf(X) bome(X,Y) totienbf(X,Y) mag_totienbf(X) totien(Z,Y) bome(X,Z) mag_totienff mag_totienbf(X) totienff(X,Y) totienff(X,Y) mag_totienff bome(X,Y) mag_totienff totien(Z,Y) bome(X,Z)

Hai chin lc ny dn n cc tp truy vn con Q1 = {mag_totienbf} v Q2 = {mag_totienbf,mag_totienff}. Trong Q2 truy vn con mag_totienff cha
-136-

truy vn con mag_totienbf. Nh vy vic chn chin lc Sips t phi sang tri nh gi cc ch con dn n qu trnh cu truy vn ?totien(X,Y) v kim tra a c thuc X khng? Tuy nhin, rng mag_totienff cha mag_totienbf, v vy chin lc t tri sang phi l tt hn chin lc t phi sang tri. 5.3.4 Phng php ma tp ci tin Vo: Chng trnh Datalog P v cu truy vn q. Ra: Cu tr li truy vn. Phng php: 1. T im chng trnh Datalog cho thnh chng trnh t im Pad theo thut ton t im chng trnh. 2. Bin i chng trnh P thnh chng trnh Mag_Pad. 3. nh gi chng trnh Mag_Pad bng thut ton di ln nh bn s ng, trong mi bc lp c kim tra quan h bao hm gia cc v t magic c t im hn ch tnh ton d tha v mt chin lc truyn thng tin s c chn da vo kch thc nh nht ca cc quan h ca cc v t c to ra ti thi im . nh l 5.8 Phng php ma tp ci tin l ng n v hiu qu hn phng php ma tp. Chng minh: Tnh ng n ca thut ton c suy ra t nh l 5.6 v 5.7. Tnh hiu qu ca phng php ma tp ci tin c th hin ch: trong qu trnh nh gi chng trnh Mag_Pad, mi bc lp c kim tra cc quan h bao hm gia cc v t magic hn ch tnh ton d tha, ng thi c xem xt s cc b ca cc quan h c to ra ti thi im . T kt hp c cc chin lc truyn thng tin khc nhau trong tng bc lp, iu ny gim c chi ph tnh ton i vi cc php ton ni trong thn quy tc trong qu trnh nh gi.

-137-

BI TP 1. Xt chng trnh P sau y: r1 : p(X,Y) e(X,Y) r2 : p(X,Z) e(X,Y) p(Y,Z) Cu truy vn (Q) : ?- p(1,Y) Quan h EDB ca v t e c cho bi tp hp E = {(1,2),...,(n-1,n)}. Xy dng cy hp gii SLD i vi cu truy vn ?- p(1,Y) 2. Xt chng trnh P sau y: r1 : p(X,Z) e(X,Y) p(Y,Z) r2 : p(n,Y) t(Y) Cu truy vn (Q) : ?- p(1,Y) Gi s quan h E i vi v t EDB e gm cc b (1,2),...,(n-1,n), quan h i vi v t EDB t gm cc b 1,2,...,m. Xy dng cy hp gii SLD i vi cu truy vn ?- p(1,Y) 3. Xt chng trnh P sau y : r1 : p(X,Z) p(X,Y) e(Y,Z) r2 : p(X,Y) e(X,Y) Cu truy vn (Q) : ?- p(1,Y) Quan h EDB ca v t e c cho bi tp hp E = {(1,2),...,(n-1,n)}. Xy dng cy hp gii SLD i vi cu truy vn ?- p(1,Y) 4. Xt chng trnh "cng th h" P sau y: sg(X,Y) X=Y sg(X,Y) par(X,Xp) sg(Xp,Yp) par(Y,Yp) Cu truy vn: ?-sg(1,Y) Xy dng cy hp gii SLG i vi cu truy vn ?- p(1,Y) 5. Xt chng trnh Datalog P sau y: p(X,Z) p(X,Y) p(Y,Z)
-138-

p(X,Z) e(X,Z) q(Z) Gi s quan h EDB i vi v t e gm l tp { (a,b), (a,d), (b,c) } v quan h i vi v t EDB q l {a, b, c}. Xy dng cy hp gii SLG i vi cu truy vn ?- p(a,Z)

-139-

CHNG 6 M RNG CHNG TRNH DATALOG TRONG TRNG HP CC QUY TC C CHA K HIU HM 6.1 M u Trong chng 2 khi xt cc quy tc ca chng trnh Datalog ta gi thit l cc i s ca cc v t ch l hng hoc bin. Tuy nhin c nhng tnh hung c m t d hn nhiu bng cch dng i s l cc hng thc c xy dng t bin, hng v k hiu hm. Cc b ca cc quan h EDB c th c cc thnh phn l cc hng thc thay v l cc hng nh trc y. Ta gi s cc hng thc trong quan h EDB l hng thc nn, ngha l khng cha bin. Khi cc quy tc l quy, vic s dng cc k hiu hm c th to ra mt tp v hn cc gi tr trong cc quan h, nh v d sau y : V d 6.1 Php cng c th nh ngha quy nh sau : Gi s int(X) l k hiu v t v int(X) l true nu X nguyn (khng m) v v t sum(X,Y,Z) l true nu Z=X+Y. Gi s succ l k hiu hm v succ(X) l s nguyn X+1. Hng 0 l s nguyn. Lc succ(0) ta gi l "1", succ(succ(0)) l "2", cc s nguyn khc ngoi tr 0 l khng tn ti trong dng khc. Lc ta c cc quy tc sau y tha mn nh ngha trn : (1) int(0) (2) (3) (4) int(succ(X)) int(X) sum(X,0,X) int(X) sum(X,succ(Y),succ(Z)) sum(X,Y,Z)

Hai quy tc (1) v (2) nh ngha 0, succ(0), succ(succ(0)),...l cc s nguyn,... Quy tc (3) ni rng tng ca mi s nguyn vi 0 l chnh s nguyn . Quy tc (4) ni rng X+(Y+1) = Z nu X+Y=Z Ch :
-140-

Cc v t int v sum to ra cc quan h v hn mc d cc quy tc cho l an ton. Mc du c php i vi cc k hiu hm v cc k hiu v t l nh nhau (chui bt u bng ch thng) nhng hon ton khng c s nhm ln gia hai kiu k hiu ny. Cc k hiu hm ly gi tr trn min nh cc i s v tr v cc gi tr ca min, cc k hiu v t cng ly gi tr trn min nh cc i s nhng tr v gi tr chn l (true hoc false). Nh v d trn th succ ly mt i s l s nguyn v tr v mt s nguyn, trong khi sum ly ba i s nguyn v tr v true nu thnh phn th ba bng tng thnh phn th nht v th hai, ngc li n tr v false.

6.2 nh gi cc quy tc Datalog c cha k hiu hm Trong phn ny ta s tng qut ha cc k thut nh gi cc quy tc Datalog khng cha k hiu hm xt n trong chng 2. Cc thut tan s ng v bn s ng s hi t n mt quan h hu hn khi cc quy tc l Datalog. Trng hp cc quy tc c cha k hiu hm, ta c th ch ra rng tn ti im bt ng nh nht nhng c th l khng hu hn, trong trng hp ny s khng c mt s hu hn cc bc lp trong thut ton s ng t n im bt ng nh nht. Trc khi i vo chi tit ta s xt xem thut ton s ng c s dng nh th no i vi v d cho trn, trong v d ny, v ch con khng cha k hiu hm nn php ton EVAL lm vic gn nh trong chng 2 nhng khi ta tm mt php thay th c kt qu i vi cc bin v thay vo u quy tc s nhn c cc hng thc khng tm thng. V d 6.2 Xt hai quy tc (1) v (2) trong v d 6.1 trn : (1) int(0) (2) int(succ(X)) int(X) Ta p dng thut ton s ng i vi cc quy tc ny. Cc quy tc ny khng cha v t EDB, gi I l quan h mt ngi IDB
-141-

tng ng vi v t IDB int. Khi u : Gn I= Bc 1: Quy tc (2) khng to ra b no do I=, quy tc (1) to ra b 0 i vi quan h I Bc 2: Quy tc (1) li cho ra b 0 mt ln na, nhng quy tc (2) by gi c gi tr 0 cho bin X, v vy quy tc (2) sinh ra b succ(0) cho I, b ny c mt thnh phn v thnh phn ny l mt hng thc vi k hiu hm succ. Bc 3: X c th ly gi tr succ(0), quan h i vi quy tc (2) l quan h trn thuc tnh X, l {0,succ(0)}. Gi tr mi ny ca X sinh ra b mi succ(succ(0)) cho I. Trong trng hp tng qut, bc i ca thut ton s ng s sinh ra mt b mi succi-1(0) cho quan h I. Nh vy c th thy rng quan h I biu th mt quan h v hn v tp cc s nguyn khng m {0,1,2,...} l tp cc b ca quan h I "nhn c" sau v hn ln cc bc lp. Mt qu trnh tng t nh vy cng xy ra i vi quy tc (3) v (4) tnh quan h sum. bc u tin cc ch con trong thn ca c hai quy tc c cc quan h rng, v vy khng c b mi no c to ra. bc 2, I cha 0 v vy quy tc (3) to ra b (0,0,0) cho sum. bc 3, I cng cha succ(0), v vy quy tc (3) to ra b (succ(0),0,succ(0)). Cng vy, sum cha (0,0,0), nn quy tc (4) to ra b (0,succ(0),succ(0)). Tng qut b: succ(succi(0),succj(0),succi+j(0)) c thm vo bc i+j+2, nu dng quy tc (3) th j = 0 v nu dng quy tc (4) th j > 0. Khng c b no khc l c thm vo i vi sum. Nh vy sum cng l mt quan h v hn Trong ng cnh ny khng th tnh cc quan h v hn nh int, sum v khng bao gi t n im bt ng nh nht ca cc quy tc, khng quan
-142-

trng vn thi gian thc hin thut ton. Mc khc, tnh khng th tnh ton c ca cc quan h khng mu thun vi s kin chng c xc nh kh tt bi qu trnh to ra im bt ng nh nht. Trong phn tip theo ta s thy lm th no c th dng cc quy tc c nh ngha bi cc quan h v hn v nhn c cu tr li trong khong thi gian hu hn. 6.2.1 Ghp hng thc (Term Matching) Thut ton ghp hng thc m ta s xt sau y ng vai tr ht sc quan trng trong vic m rng cc thut ton s ng, bn s ng khi cc quy tc Datalog c cha k hiu hm trong cc i s. Vi mt ch con l mt cng thc nguyn t thng thng cha cc bin, ta th ghp n vi mt nguyn t nn, tc l vi mt b ca quan h i vi cc v t xut hin trong ch con. Khi ta ghp mt cng thc nguyn t ty vi mt nguyn t nn, ta thay th mi bin ca cng thc u lm n y ht i vi cng thc th hai. Thut ton sau y kim tra xem tn ti mt php thay th nh vy hay khng v tim n nu tn ti. Thut ton 6.1: Thut ton ghp hng thc Vo: Mt cng thc nguyn t F vi cc bin X1,...,Xn (n 0) v mt nguyn t nn G. Ra: Kt qu l true nu tn ti php thay th duy nht trn cc bin X1,...,Xn sao cho i vi mi s xut hin ca Xi trong F ta thay th bi (Xi) s nhn c nguyn t nn G. Ta bo php ghp hng thc thnh cng. Kt qu l false nu khng tn ti php thay th nh vy. Ta bo php ghp hng thc tht bi. Phng php: Khi u, vi mi i, (Xi) khng c xc nh. Lc ta p dng th tc quy match sau y i vi F v G. Nu ln gi th tc match(F,G) thnh cng tc l cho kt qu true th (Xi) s c xc nh vi mi i v php thay th ny l php ghp hng thc c a ra nh mt output, nu ngc li (kt qu l fail) th khng tn ti php ghp hng thc.
-143-

Th tc ghp hng thc: procedure match(A,B) : Boolean; /* A l mt biu thc, B l mt biu thc khng cha bin, th tc s cho kt qu true nu n tm thy mt php ghp hng thc v false nu ngc li */ If A l mt bin n then If (A) khng c xc nh then begin (A) := B; return (true); end else /* (A) c xc nh */ if (A) = B then return (true) else /* (A) c xc nh v khng bng B */ return (false) else begin /* A khng phi l bin n */ let A = (T1,...,Tk) ; /* c th l mt v t hoc k hiu hm */ If B khng c dng (S1,...,Sk) then return (false) for i := 1 to k do match(Ti,Si); If mi ln gi quy u cho gi tr false then return (false) else return (true) end V d 6.3 Ghp cng thc nguyn t: p(f(X,Y),g(X)) vi nguyn t nn: p(f(h(a),b),g(h(a)))
-144-

(1) (2)

t A = p(f(X,Y),g(X)) B = p(f(h(a),b),g(h(a))) Lc ny p chnh l trong thut ton v : T1 = f(X,Y) T2 = g(X) S1 = f(h(a),b) S2 = g(h(a)) Vic gi th tc match(A,B) s dn n vic gi quy nh sau : match(A,B)
match( X , h(a )) ( X ) = h(a ) true match(T1 , S1 ) match(Y , b) (Y ) = b true match(T , S ) match( X , h(a)) true 2 2

return (true) Nh vy vic ghp hng thc l thnh cng v ta nhn c php thay th . V d 6.4 Kim tra php ghp hng thc i vi cng thc nguyn t p(X,X) v nguyn t nn p(a,a) c thnh cng khng ? t: A = p(X,X) B = p(a,b) Vic gi th tc match(A,B) s dn n vic gi quy nh sau : match(A,B) match( X , b) return (false) Trong phn tip theo ta s xt hai php ton ATOV v VTOA v c th nhn nhn chng nh cc php ton i s quan h c tng qut ho.. 6.2.2 Php ton ATOV (Arguments To Variables) Quan h i vi thn quy tc c xy dng t cc quan h i vi cc ch con ca thn. Mi quan h i vi mt ch con c cc thuc tnh tng ng vi cc i s ca v t i vi ch con . Trc tin ta chuyn i cc quan h i vi cc ch con thnh cc quan h c cc thuc tnh tng ng
-145match( X , a ) ( X ) = a true false

vi cc bin c trong ch con bng cch dng mt php ton m ta gi l ATOV. Tip theo dng php ni cc quan h c chuyn i tnh quan h cho thn quy tc. Thut ton 6.2 (Thut ton chuyn i t i sang bin) t P l quan h i vi ch con p(t1,...,tk); X1,...,Xn l cc bin xut hin trong ch con ny Gi Q l quan h output, c lc X1,...,Xn v c khi gn rng. for mi b (s1,...,sk) trong P do if tn ti mt php ghp hng thc i vi ch con p(t1,...,tk) v b p(s1,...,sk) then Thm vo Q b ((X1),..., (Xn)) end Thut ton ny chuyn i mt quan h P m cc thuc tnh ca n tng ng vi cc i s ca v t p thnh mt quan h Q = ATOV(G,P), quan h Q ny c cc thuc tnh tng ng vi cc bin xut hin trong ch con G, G l ch con vi v t p. Thut ton ghp hng thc c s dng i vi cng thc nguyn t G vi mi b ca P v mi thi im php ghp hng thc thnh cng, ta to c mt b ca Q t php ghp hng thc nhn c. V d 6.5 Xt quy tc sau y : p(f(X),g(X,Y)) q(h(Z),g(f(X),X)) r(Z,Y) Gi s quan h i vi q gm 2 b : Q1 Q2 h(c) g(f(a),a) h(h(d)) g(f(f(a)),f(a)) Quan h i vi ch con th hai r gm hai b : R1 R2 c b h(d) g(b,c)
-146-

Thc hin php ghp hng thc cho ch con q(h(Z),g(f(X),X)) vi nguyn t c s q(h(c),g(f(a),a)) ta nhn c 1(X) = a v 2(Z) = c. Cng vy, thc hin php ghp hng thc cho ch con q(h(Z),g(f(X),X)) vi nguyn t nn q(h(h(d)),g(f(f(a)),f(a))) ta nhn c 2(X) = f(a) v 2(Z) = h(d). Nh vy output ca thut ton khi p dng cho quan h i vi q v ch con th nht l : X Z a c f(a) h(d) Tng t thc hin php ghp hng thc cho ch con th hai r vi mi b trong quan h i vi r, ta c : Y Z b c g(b,c) h(d) Ly ni t nhin ca 2 quan h trn ta c quan h cho thn quy tc cho l : X Y Z a b c f(a) g(b,c) h(d) 6.2.3 Php ton VTOA (Variables To Arguments) Gi s R(X1,...,Xn) l quan h i vi thn ca mt quy tc an ton, ta c th xy dng quan h S i vi u quy tc: Vi mi b ca quan h R ca thn quy tc, thay th i vi mi bin X xut hin trong u quy tc bi gi tr ca thnh phn ca tng ng vi thuc tnh X. B nhn c s thuc quan h S = VTOA(H,R). Ta c thut ton nh sau : Thut ton 6.3 (Thut ton chuyn i t bin sang i) for mi b ca quan h R do
-147-

begin for mi bin X xut hin trong u H do Thay th tt c s xut hin ca bin X trong H bi [X]; t v t u kt qu l p(t1,...,tm); Thm b (t1,...,tm) vo S; end V d 6.6 Xt quy tc v d trn, ta tnh c quan h i vi thn quy tc ny l : X Y Z a b c f(a) g(b,c) h(d) Quan h ny cha 2 b, trong b th nht c ba thnh phn u l hng, trong b th hai, c ba thnh phn l cc hng thc khng tm thng. Khi thay th b u tin (a,b,c) i vi (X,Y,Z) trong u, u tr thnh p(f(a),g(a,b)), cc i s ca nguyn t ny tr thnh thnh phn th nht v th hai ca mt b trong quan h ca u quy tc. Thc hin php thay th tng t cho b th hai, ta nhn c b th hai ca quan h i vi u. Vy ta c kt qu quan h i vi u quy tc trong v d ny : P1 P2 f(a) g(a,b) f(f(a)) g(f(a)),g(b,c)) Ta tng kt cc php ton trn trong thut ton sau y tnh quan h i vi u quy tc t cc quan h i vi cc ch con ca quy tc . 6.2.4 Tnh quan h cho u quy tc t cc quan h i vi cc ch con ca n Thut ton 6.4: Vo: Cc quan h R1,...,Rk i vi cc ch con G1,...,Gk ca quy tc an ton r.
-148-

Ra: Quan h i vi u quy tc r. Phng php: t X1,...,Xm l ton b cc bin xut hin trong G1,...,Gk 1. i mi ch con thng thng, dng thut ton 2 chuyn i quan h Ri trn cc i ca v t ca Gi thnh quan h Qi = ATOV(Gi, Ri) trn cc bin xut hin trong Gi. ... Q 2. Thc hin php ni Q = Q1 k (b qua Qi nu Gi l ch con xy dng trong). 3. p dng vo Q mt php chn i vi mi ch con xy dng trong ca r nu c. Ch rng v cc quy tc gi s l an ton nn cc ch con xy dng trong c th c biu th trong cc hng thc ca cc thuc tnh ca Q. Kt qu ta c quan h i vi thn quy tc ca r. 4. Dng thut ton 3 tnh quan h cho u ca r t quan h i vi thn ca r. .2.5 Thut ton s ng m rng Thut ton sau y l mt s m rng ca thut ton s ng trnh by trong chng 2. Thut ton 6.5 Vo: Mt tp cc quy tc an ton, c th bao gm cc k hiu hm v quan h R1,...,Rk i vi cc v t EDB trong thn ca nhng quy tc ny. Ra: im bt ng nh nht ca cc quy tc cc quan h EDB cho nu n hu hn. Nu im bt ng nh nht l v hn th ta a ra mt dy cc xp x m hi t v im bt ng nh nht Phng php : Trc tin khi gn quan h P i vi mi v t IDB l rng. Gi s mt vi thi im ta c cc xp x P1,...,Pm i vi cc v t IDB p1,...,pm. Ta nhn c xp x k tip i vi pi bng cch tnh :
Pi' = EVAL( p i , R1 ,..., R k , P1 ,..., Pm )

nh sau : 1. Vi mi quy tc cha pi, p dng thut ton 6.4 tnh quan h cho u
-149-

quy tc bng cch dng quan h thch hp trong s cc quan h R1,...,Rk v P1,...,Pm i vi mi ch con thng thng ca quy tc . 2. Ly hp trn tt c quy tc cha pi ca cc quan h c xy dng 1, kt qu l Pi' . Tip theo ta so snh
Pi' Pi'

vi cc Pi. V EVAL l ton t n iu nn ta c Pi


Pi'

vi mi i. Nu Pi =

vi mi i th n hi t v im bt ng nh nht.
Pi' th

Nu c mt vi Pi l tp con thc s ca cc
Pi'

ta phi thay th cc Pi bi

tng ng v lp li qu trnh va m t, ta nhn c cc xp x mi


Pi'

i vi cc quan h IDB. Ch rng khi c cc k hiu hm trong cc quy tc th c th khng bao gi i n mt bc lp m cc P i v l bng nhau. Trong trng hp ny thut ton s lp v hn to ra cc xp x tng dn theo tng bc n im bt ng v hn. V d 6.7 Gi s c 3 khi hp: A, B, C v chng c th t vo trong cc chng nu cc chng l cc khi c th t kch thc gim dn. C 5 tnh hung c th xy ra nh sau: C B C A (a) A (b) B B (c) C A B

-150-

B C

A C

(d) (e) Cc s di chuyn hp l ca h thng c biu th bi quan h EDB GO(S,T) v c ng ngha l true nu v ch nu tng S c th tr thnh tng T bng mt php di chuyn. y di chuyn c ngha l thay i v tr ca mt khi, loi b n khi khi hay nn m n ng trn v t n hoc trn nn hoc trn khi ln hn. i vi cc tng ca hnh trn quan h GO cha 10 b c cho bi cc nguyn t c s nh sau : go(a,e) go(b,c) go(b,d) go(c,b) go(c,d) go(d,b) go(d,c) go(d,e) go(e,a) go(e,d) ta dng mt k hiu hm hai ngi g, t g(S,T) l mt hng thc biu din kh nng m tng S c th bin i thnh tng T bng mt hay nhiu php di chuyn. Ta nh ngha v t mt ngi true nh sau : (1) true(g(S,T)) go(S,T) trong go c xem l v t EDB c quan h EDB l GO. Ta cng cn mt quy tc nh ngha "i bng mt hay nhiu php di chuyn" : (2) true(g(S,T)) true(g(S,U)) true(g(U,T)) Ta p dng thut ton S ng m rng i vi hai quy tc (1) v (2) ny: Khi u ,quan h true l rng Bc 1: Quy tc (2) khng to ra iu g c. Quan h EDB GO gm 10 b cho, nh vy bc 1 quan h i vi quy tc (1) l GO(S,T). T mi b trong 10 b ca quan h ny ta xy dng mt hng thc g(S,T) v hng thc ny tr thnh thnh phn trong b gm mt thnh phn ca quan h mt ngi
-151-

i vi v t true. Vy sau bc 1 quan h i vi true cha 10 b : g(a,e) g(b,c) g(b,d) g(c,b) g(c,d) g(d,b) g(d,c) g(d,e) g(e,a) g(e,d) Trong cc bc sau khng to thm b mi i quy tc (1) nhng quy tc (2) bt u sinh ra cc b mi i vi true. Bc 2:Ta tnh quan h i vi quy tc (2), ta c sau bc 1, quan h i vi true gm 10 b trn . Nhc li rng quan h i i vi quy tc (2) c cc thuc tnh S, T, U tng ng vi 3 bin xut hin trong thn quy tc, mi b phi c cc gi tr s, t, v u i vi cc bin ny, sao cho c hai ch con true(g(S,U)) v true(g(U,T)) tr thnh cc b ca quan h i vi true khi ta thay th s cho S, t cho T v u cho U. Tin hnh ghp hng thc mi ch con vi mi b ca quan h true, iu ny cho chng ta cc gi tr i vi cc bin xut hin trong ch con , S v U i vi ch con th nht, T v U i vi ch con th hai, v ri ly ni t nhin ca tp cc b i vi mi ch con. Ghp ch con true(g(S,U)) vi mi b trong 10 b trong quan h true trn. V d, ghp g(S,U) vi b th nht g(a,e) ta thy rng php ghp hng thc l c th thc hin v gi tr ca S tr thnh a, U tr thnh e. D kim tra i vi mi b trong 10 b trn php ghp hng thc l thc hin c v ta nhn c quan h : {ae,bc,bd,cb,cd,db,dc,de,ea,ed} ta gi quan h ny l Q1(S,U) i vi ch con u tin ca quy tc (2). i vi ch con th hai true(g(U,T)), ta cng xy dng mt quan h gi l Q2(U,T), gi tr ca Q2(U,T)) d dng tm c l : {ae,bc,bd,cb,cd,db,dc,de,ea,ed} Tuy nhin Q1 l quan h trn cc thuc tnh S v U v Q2 l trn thuc tnh U, T. Q By gi ta ly ni R = Q1 2 nhn c quan h i vi quy tc (2), R
-152-

cha 22 b : {aea,aed,bcb,bcd,bdb,bdc,bde,cbc,cbd,cdb,cdc,cde,dbc,dbd,dcb,dcd,dea,ded,e ae,edb,edc,ede} mi b c cc thnh phn tng ng vi cc bin S, U v T . i vi mi b ta xy dng b mt thnh phn g(S,T) thuc quan h ca true . Vy 22 b ny to ra cc b ca true : g(a,a), g(a,d), g(b,b), g(b,d), g(b,c), g(b,e), g(c,c), g(c,d), g(c,b), g(c,e), g(d,c), g(d,d), g(d,b), g(d,a), g(e,e), g(e,b),g(e,c). Tin hnh tng t cho cc bc tip theo. Nhn xt: Vic tnh ton lp i lp li ca true bng cch dng cc quy tc (1) v (2) chc chn hi t, bi v ta khng xy dng cc hng thc ln dn theo tng bc, y tt c cc hng thc ca quan h true c dng g(x,y), trong x v y l cc gi tr xut hin trong quan h EDB GO, do GO l hu hn nn true khng th gm v hn cc b khc nhau. 6.2.6 Thut ton bn s ng m rng Tng ng vi thut ton 6.5 ta c mt thut ton hiu qu hn gi l thut ton bn s ng m rng. i vi mi v t IDB p ta c mt v t khc l P biu th s thay i i vi p trong mi bc lp, P = ton 5. Thay th quy tc H G1 G2 ... Gn cha mt hay nhiu ch con IDB bng mt quy tc i vi mi ch con IDB. Nu Gi l mt ch con IDB th ta c quy tc sau: H G1 G2 ... Gi-1 Gi Gi+1 ... Gn V d 6.8 Xt quy tc sau : true(and(X,Y)) true(X) true(Y) C hai ch con u l ch con IDB, vy ta c hai quy tc : true(and(X,Y)) true(X) true(Y) true(and(X,Y)) true(X) true(Y)
-153Pi' Pi

trong thut

Hai quy tc ny nh ngha v t true Thut ton 6.7 Vo: Mt tp cc quy tc an ton, c th bao gm cc k hiu hm v quan h R1,...,Rk i vi cc v t EDB ca nhng quy tc ny. Ra: im bt ng nh nht ca cc quy tc cha cc quan h EDB cho nu n hu hn. Ngc li, ta a ra mt dy cc xp x v hn nh trong thut ton s ng. Phng php : Ta bt u tnh cc quy tc vi phn i vi tt c v t IDB nh nu trn.Thut ton c th c vng lp v hn v to ra cc xp x lin tip i vi cc quan h IDB. Khi gn quan h P i vi mi v t IDB p l rng v ta tnh quan h P ban du i vi p bng cch p dng th tc EVAL ca thut ton 6 nhng ch vi cc quy tc cha p m khng c cc ch con IDB. Tip theo thc hin cc bc lp sau y : Bc 1: Nt tt c cc P l rng th thot khi vng lp, thut ton hi t n im bt ng nh nht l quan h P i vi v t IDB p. Bc 2: Ngc li, thay mi quan h IDB P bi PP Bc 3: i vi mi v t IDB p, tnh quan h vi phn mi P' bng cch p dng thut ton 5 i vi mi quy tc vi phn ca p bng cch s dng cc quan h EDB R1,...,Rk , cc quan h hin ti P1,...,Pm i vi cc v t IDB v cc quan h vi phn P1,..., Pm v ly hp trn tt c quy tc vi phn i vi p. Bc 4 : i vi mi quan h IDB P, tnh P = P' - P, quay li bc 1.

-154-

Ti liu tham kho a. Ti liu tham kho ting vit [1] Phan nh Diu (1999), L thuyt phc tp tnh ton, Khoa Cng ngh, HQG H Ni. [2] ng Huy Run (2000), L thuyt th v ng dng, NXB Khoa hc v K thut. [3] L Mnh Thnh, Trng Cng Tun (1998), Mt s phng php xc nh m hnh ca chng trnh Datalog v m rng ca n, K yu hi tho Quc gia v Tin hc ng dng, tr. 152-160. [4] L Mnh Thnh, Trng Cng Tun (2001), Mt s phng php c lng cu truy vn trong c s d liu suy din, Tp ch Khoa hc i hc Hu, (7), tr. 49-59. [5] L Mnh Thnh, Trng Cng Tun (2002), Ti u cu truy vn trn chng trnh Datalog, Bo co Hi ngh Ton hc ton quc ln VI ti Hu. [6] L Mnh Thnh, Trng Cng Tun (2002), Thut ton ma tp ci tin c lng cu truy vn i vi lp con ca chng trnh Datalog, Chuyn san Tp ch Bu chnh Vin thng Cc cng trnh nghin cu - Trin khai Vin thng v Cng ngh thng tin, (8), tr. 78-84. [7] L Mnh Thnh, Trng Cng Tun (2003), Ti u ha cu truy vn trong c s d liu suy din bng php bin i ma tp, Tp ch Tin hc v iu khin hc, 19(3), tr. 233-242. [8] L Mnh Thnh, Trng Cng Tun (2003), Mt s ci tin i vi php bin i ma tp ti u cu truy vn trn chng trnh Datalog, Chuyn san Tp ch Bu chnh Vin thng Cc cng trnh nghin cu - Trin khai Vin thng v Cng ngh thng tin, (9), tr. 77-81. [9] H Thun, L Mnh Thnh, Trng Cng Tun (2002), Phn tch mt s phng php x l vng lp v hn trong qu trnh c lng cu truy vn i vi chng trnh Datalog, Tp ch Tin hc v iu khin hc, 18(2), tr. 119-127. [10]H Thun, L Mnh Thnh, Trng Cng Tun (2003), Ng ngha chng trnh Datalog c cha ph nh da trn logic ba gi tr, K yu hi tho Khoa hc quc gia Nghin cu pht
-155-

trin v ng dng Cng ngh thng tin v Truyn thng (ICT.Rda), NXB Khoa hc v K thut, tr. 89-96. [11]Ullman J. D. (1989), Bin dch: Trn c Quang (1999), Nguyn l cc h C s d liu v C s tri thc, NXB Thng k.

B. Ti liu tham kho ting Anh [12]Abiteboul S. ,Hull R. ,Vianu V. (1995), Foundation of Databases, Addision Wesley Publishing, MA. [13]Aho A. V., Hopcroft J. E. , and Ullman J. D. (1980), The Design and Analysis of Computer Algorithms, Addison-Wesley Publishing Company. [14]Aho A. V., Hopcroft J. E., and Ullman J. D. (1983), Data Structures and Algorithms, Addison-Wesley Publishing Company. [15]Apt K. R. , Blair H. A., and Walker A. (1988), Towards a Theory of Declarative Knowledge, In J. Minker, editor, Foundation of Deductive Databases and Logic Programming, Morgan Kaufmann, pp. 89-142. [16]Apt K. R. (1990), Logic Programming, Elsevier Science Publishers. [17]Apt K. R., Van Emden M. (1982), Contributions to Theory of Logic Programming, JACM, 29(3), 841-862. [18]Beeri C., Ramakrishnan R. (1987), On the Power of Magic, Procceding of the ACM Symposium on the Principles of Databases Systems, CA. [19]Ceri S. , Gottlob G., Tanca L. (1990), Logic Programming and Databases, Springer-Verlag Berlin Heidelberg. [20]Ceri S., Gottlob G., Tanca L., Wiederhold G. (1989), Magic Semi-joins, Information Processing Letters, Elsevier Science Publishers, pp. 97-107. [21]Chen W. and Warren D.S. (1996), Tabled Evaluation with Delaying for General Logic Programs, JACM, 43(1), pp. 20-74. [22]Clark K. L. (1978), Negation as failure, in Logic and Databases, H. Gallaire and J. Minker, editors, Plenum Press, New
-156-

York, pp. 293-322. [23]Dahi V. (1982), On Database Systems Developtment through logic, ACM Trans, on Database Systems 7(1), pp. 102-123. [24]East D. and M. Truszczynski, (2000) Datalog with constraints an answer-set programming system, Proceedings of the 17th National Conference on Artificial Intelligence, MIT Press, 163168. [25]Faber W., Leone N., and Pfeifer G. (2001) Optimizing the Computation of heuristics for answer set Programming systems, Proceedings of the 6th International Conference on Logic Programming and Nonmonotonic Reasoning, Springer Verlag, 295-308. [26]Fitting M. C. (1985), A Kripke/Kleene semantics for logic programs, Journal of Logic Programming, pp. 295-312. [27]Feire J., Swift T., Warren D. S. (1997), Taking I/O Seriously: Resolution Reconsidered for Disk, In proceeding of the International Conference on Logic Programming. [28]Gallaire H., Minker J. and Nicolas J. (1984), Logic and Databases: A Deductive Approach, In Computing Survey, Vol 16. [29]Gelder A. V. (1986), A Message Passing Framework for Logical Query Evaluation, ACM, pp. 155-165. [30]Gelfond M., Lifschitz V. (1988), The Stable Model Semantics for Logic Programming, Proceedings of the Fifth Logic Programming Symposium, In R. Kowalski and K. Bowen, Editors, pp. 1070-1080. [31]Gottlob G., Erich Gradel, Helmut Veith (2002), Datalog LITE: A Deductive Query Language with Linear Time Model Checking, ACM Transactions on Computational Logic, 3(1), pp. 42-79. [32]Kowalski R.A. (1974), Predicate Logic As a Programming Language, In Pro, IFIP Congress, North Holland, 569-574. [33]Loyd J. W. (1984), Foundations of Logic Programming, First Edition. Springer-Verlag, New York. [34]Minker, J. (1982), On Indefinite Databases and the Closed World Assumption, Pro. 6th Int. Conf. on Automated Deduction, Lecture Notes in Computer Science, Spinger-Verlag, pp. 292-308.
-157-

[35]Przymusinski T. C. (1988), On the declarative semantics of stratified deductive databases and logic programs, In J. Minker, editor, Foundation of Deductive Databases and Logic Programming, Morgan Kaufmann, pp. 193-216. [36]Przymusinski T. C. (1995), Three-Value Non-Monotonic Formalisms And Semantics of Logic Programs, Journal of Artificial Intelligence, pp. 341-348. [37]Rajasekar, A., Lobo, J. and Minker, J. (1989), Weak Generalized Closed World Assumption, J. Automated Reasoning (5), pp. 293-307. [38]Ramakrishnan R. (1991), Magic Templates : A spellbinding Approach to Logic Programs, Journal of Logic Programming, (11), pp. 189-216. [39]Ramakrishnan R., Ullman J. D. (1995), A Survey of Deductive Database Systems, Journal of Logic Programming, 23(1), 125149. [40]Reiter R. (1984), Towards a Logical Reconstruction of Relational Database Theory, In M. Brodie and J. Mylopoulos, editors, Springer Verlag, New York, pp. 191-233. [41]Reiter, R. (1978), On Closed World Databases, In Logic and Databases (H. Gallaire and J. Minker eds.), Plenum, New York, pp. 55-76. [42]Simons P. (1999), Extending the Stable Model Sementics with more Expressive Rules, Proceedings of the 5th International Conference on logic Programming and nonmonotonic, Springer Verlag, 305-316. [43]Shepherdson J. C. (1987), Negation in Logic Programming, in Foundation of Deductive Databases and Logic Programming, Minker J., Los Altos. [44]Subrata Kumar Das (1992), Deductive Databases and Logic Programming, Addision Wesley Ed. [45]Ullman J. D. (1989), Principles of Database and KnowledgeBase Systems, Computer Science Press. [46]Van Emden M. and Kowalski R. (1976), The Semantics of Predicate Logic as a Programming Language, JACM, 23(4), pp. 733-742. [47]Widom J. , Garcia-Molina H., Ullman J. D. (2002), Database
-158-

Systems: The Complete Book, Prentice Hall, Inc.

-159-

CHNG 1
1.1 Ngn ng cp mt ....................................................................................2 1.2. Chng trnh logic...................................................................................3 1.2.1 Mt s nh ngha...............................................................................3 1.2.2 Php th hin ca chng trnh logic.................................................9 1.2.3 Php th hin Herbrand.....................................................................11 1.2.4 im bt ng ca chng trnh logic.............................................14 1.2.5 Ton t h qu trc tip ca chng trnh logic...............................15 1.3 C s d liu suy din v chng trnh Datalog.....................................16 1.3.1 C s d liu suy din......................................................................16 1.3.2 C php ca chng trnh Datalog...................................................16 1.3.3 Gi thit th gii ng v cc tip cn xc nh ng ngha chng trnh Datalog.......................................................................................................19 2.1 Mt s nh ngha ...................................................................................26 2.1.1 Cc quy tc an ton ..........................................................................26 2.1.2 Cc quy tc chnh tc........................................................................27 2.2 nh gi chng trnh Datalog khng quy.........................................28 2.3 nh gi chng trnh Datalog quy....................................................34 2.3.1 H phng trnh i s quan h ng vi chng trnh Datalog.......34 2.3.2 Cc im bt ng ca h phng trnh Datalog.............................36 2.3.3 Gii h phng trnh Datalog quy bng thut ton s ng........38 2.3.4 Gii h phng trnh Datalog quy bng thut ton bn s ng..42 2.4 nh gi chng trnh Datalog theo cc thnh phn lin thng mnh ...48 2.5. nh gi chng trnh Datalog trong cc trng hp c bit..............54 3.1 Chng trnh Datalog ph nh phn tng ............................................60 3.2 Chng trnh Datalog phn tng a phng.......................................66 3.3 Chng trnh Datalog phn tng yu....................................................68 3.4 Ng ngha m hnh bn vng hai gi tr.................................................78 4.1 Mt s khi nim v kt qu lin quan...................................................87 4.2 Ng ngha ca chng trnh Datalog P ...............................................93 4.2.1 Thut ton tnh m hnh bn vng 3-tr -nh nht da vo quan h 93 4.2.2 Thut ton tnh m hnh bn vng 3-tr -nh nht da vo quan h 98 -160-

4.2.3 Mi quan h gia m hnh bn vng 3-tr -nh nht vi m hnh bn vng 2-tr v m hnh hon ho................................................................................101 5.1 X l vng lp v hn trong qu trnh nh gi cu truy vn ..............106 5.1.1 nh gi SLD .................................................................................106 5.1.2 nh gi bng .................................................................................109 5.1.3 Phng php ma tp.......................................................................113 5.1.4 So snh v cc phng php...........................................................116 5.2 p dng phng php ma tp trn mt s lp con ca chng trnh Datalog..........117 5.2.1 Phng php ma tp trn chng trnh Datalog tuyn tnh phi ..117 5.2.2 Php bin i ma tp trn chng trnh Datalog khng qui......120 5.3 Phng php ma tp ci tin.................................................................125 5.3.1 Thut ton t im chng trnh....................................................126 5.3.2 Ti u bc t im chng trnh..................................................130 5.3.3 Ci tin vic thc thi chng trnh Mag_Pad.................................132 6.1 M u..................................................................................................140 6.2 nh gi cc quy tc Datalog c cha k hiu hm..............................141 6.2.1 Ghp hng thc (Term Matching)..................................................143 6.2.2 Php ton ATOV (Arguments To Variables).................................145 6.2.3 Php ton VTOA (Variables To Arguments).................................147 .2.5 Thut ton s ng m rng.............................................................149 6.2.6 Thut ton bn s ng m rng....................................................153

-161-

You might also like