Deduktív adatbázisok
Adatbázisok típusai: normál (OLTP) elemi adat elemi adat DSS (OLAP) elemi adat összesítő adat DSS (DM) elemi adat szabály deduktív elemi adat, szabály elemi adat nem igazán terjedt el: számolásigényes műveletek még kerestetik egy hatékony megoldás predikátum kalkulusok elvén nyugszik
Szignatúra: = (S,,) ahol S ={s} : típusok véges halmaza S* ={s1s2s3..sn} : típusok véges listája = {w,s | w S*, s S} : függvényhalmazok véges halmaza w: argumentumok típuslistája s : érték típusa f w,s : s típusú, w argumentumú függvény = {w | w S*} : predikátumhalmazok véges halmaza p w : w argumentumú predikátum az üres listát jelöli .s : konstans szimbólum : logikai változó
számhalmazok példája = (S,,) ahol S ={Z, Q} : egész és racionális számok ,Z = {..,-4,-3,-2,-1,0,1,2,..} ,Q = {..,-4/3,-4/2,-4/1,-3/2,..} ZZ,Q = {osztás} QQ,Q = {szorzás} Q,Z = {egészrész} ZZ ={osztja} Q ={egész} …
Szimbólum (term): T(X) = {T(X)s | s S} ahol = (S,,) : szignatúra X = {Xs | s S} :változóhalmazok véges halmaza és x Xs x T(X)s : :minden változó szimbólum ti T(X)si , f s1s2s3..,s f(t1,t2,..) T(X)s : a függvényhivatkozások is szimbólumok minden szimbólum típussal rendelkezik T () : alapszimbólumok halmaza (változó nélküliek) szigorú típus: T ()
számhalmazok példája T(X) ahol XZ ={i,j,k,l,m,n} XQ ={p,q,r,s,t} i T(X)Z q T(X)Q 1 T(X)Z 3/2 T(X)Q szorzás(3/3,4/2) T(X)Q szorzás(q,4/2) T(X)Q osztás (4, egészrész(5/2)) T(X)Q …
Atomi formulák: A(X) = {p(t1,t2,..) } ahol = (S,,) : szignatúra X = {Xs | s S} :változóhalmazok véges halmaza ti T(X)si p(t1,t2,..) s1s2 A() : alapatomok halmaza (változó nélküliek) osztja(5,4) osztja(i,j) egész(4/3) egész(q) egész(osztás(4,i))
Formulák: F(X) ahol true, false F(X) W A(X) W F(X) W F(X) W F(X) W1,W2 F(X) W1W2 F(X) W1,W2 F(X) W1W2 F(X) W1,W2 F(X) W1W2 F(X) W1,W2 F(X) W1W2 F(X) W F(X), x X x(W) F(X) W F(X), x X x(W) F(X)
Szabad változók: free(W) - atomi kifejezések változói osztja(i,3) - nem kötöttek kvantorhoz osztja(i,6) osztja(i,2) Kötött változók: bound(W) - kvantorhoz kötött i(osztja(i,2)) j(osztja(2,j) F(X) osztja (4, egészrész(5/2)) osztja(i,3) osztja(i,5) osztja(i,6) osztja(i,2) i(osztja(i,2)) j(osztja(2,j)
-lezárt Y-ra: Y(W) = x1x2..(W) ahol Y X {x1x2..} = free(W)/Y -lezárt: (W) = (W) -lezárt Y-ra: Y(W) = x1x2..(W) (W) = (W) minden változó csak egy kvantorhoz köthető
- interpretáció I = I (D,F,R) ahol (S,,) : szignatúra D = {Ds | s S} :domain-ek halmaza a típusokhoz F = {Fw,s | w,s } Fw,s = {f’:Ds1Ds2 … Ds | f s1s2,s} R = {Rw | w } Rw = {p’ Ds1Ds2 … | p s1s2} - értékeket rendelünk a típusokhoz - konkrét leképzési szabályokat definiálunk - konkrét predikátumokat definiálunk (mikor lesz true és false) *
Változó-helyettesítés: = {s | s S} s: Xs Ds Szimbólum kiértékelés: = {s | s S} s: T(X)s Ds szorzás(q,4/2) Q(q) = 3/1 F: (szorzas(x,y)) x*y s (szorzás(q,4/2)) = 6/1 minden változó egy domain-beli értéket kap *
Változó-helyettesítés módosítása: <x1/d1,x2/d2,…> ahol <x1/d1,x2/d2,…>(y) = di, ha y = xi (y) különben Formula kiértékelés : F(X) {true, false} (p(t1,t2,..)) = true, ha ((t1), (t2)..) p’ false, különben az összetett formulák kiértékelésénél az operátorok interpretációja a megszokott értelmű (de lehetne más is)
Modell fogalma: I(W) modellje W-nek, ha (W) = true ahol I: I (D,F,R) interpretáció W F(X) : formula I(W) modellje V={W}-nek, ha W V : (W) = true készíts modellt az alábbi formulákhoz: (x=y y < 4, x>y x=3) *
Formulák ellentmondás-mentessége: A V(W) kielégíthető, ha létezik modellje Formulák szemantika konzekvenciája: V |= W ha V minden modellje egyben W-nek is modellje Ekkor V |= W akkor és csak akkor, ha V{W} ellentmondásos, nem kielégíthető. *
Formulák normál alakja Konjuktív normálforma: W = Q1x1Q2x2…W’ ahol Q {, } W’ : kvantormentes W’ = (L11 L12 ..) (L21 L22 ..) .. L: literál, azaz atomi formula vagy negált atomi formula Skolem normálforma: W : konjuktív Q {} *
A konjuktív normálformák skolem normálformára hozhatók A kvantor eliminálásának lépései: - A létezik kvantorhoz tartozó változók eliminálódnak - A kivett változó helyettesítődik egy olyan függvénnyel, mely a tőle kisebb minden kvantorhoz kötött változókon értelmezett x y z v (p (x,y,z,v)) => y z (p (a, y, z, b(y,z))) *
Klauza: W = (L11 L12 ..) ahol L: literál, azaz atomi formula vagy negált atomi formula W : -lezárt Horn klauza: W maximum egy pozitív literált tartalmaz Klauza normálforma: W = W1 W2 .. Wi :klauza *
Herbrand interpretációk H-univerzum: T () H-bázis: A(X) H-interpretáció: alaphalmaz a H-univerzum, minden függvény maga által reprezentált Herbrand-modell: H-interpretáció és modell egyben A klauzák halmazára teljesül, hogy - ha van modellje, akkor van Herbrand modellje is - akkor és csak akkor ellentmondásos, ha nincs Herbrand modellje
Deduktív rendszer: D = (F,S) ahol F F(X) : formulák halmaza S = {Si} : deduktív szabályok halmaza Si = W1W2.. /W :szabály (azt jelzi, hogy W1,W2,..-ből következik W) /W : axióma W levezetése D-ből: W1W2…Wn Wn = W Wi F vagy Sj S: Sj = Wi1Wi2 …/Wi ,ij<i Jelölés: F |- W *
S: /W1(W2 W1) /(W1 (W2 W3)) ((W1 W2) (W1 W3)) W1 W2,W1 / W2 W: p p levezetés: 1: /(p (W p)) ((p W) (W)) 2: /p (W p) 3: (p (W p)) ((p W) (W)), p (W p) / (p W) W 4: (p W) W, p W / W *
Változó helyettesítés: : X T(X) ahol = {s} s = Xs T(X)s jelölés: [x/ (x),…] Változó átnevezés: : X X s = Xs Xs
Kifejezés előfordulása: ahol E:kifejezés :helyettesítés Kifejezés előfordulásainak halmaza |E| Általánosabb kifejezés: E1 E2 ha |E1| |E2| Alaphelyettesítések: ||E|| = |E| T(X)
Általánosabb helyettesítés: 1 2 ha 3: 2 = 1 3 Unifikátor: olyan helyettesítés, mely két kifejezést azonos alakra hoz E1 = E2 (E1 = E2) Egyenlethalmaz: C = {Ci} = {(Ei1 = Ei2)} C megoldható, ha : (Ei1 = Ei2) C : Ei1 = Ei2 Általános unifikátor: mgu(C) = unifikátor és minden más unifikátornál általánosabb
Unifikációs algoritmusok: C {A1 = A1} / C {A1 = A2} C {p(t1,..) = p(r1,..)} / C {t1 = r1,..} C {f(t1,..) = f(r1,..)} / C {t1 = r1,..} C {x = x} / C C {t = x} / C {x = t}, ha t X C {x = t} / C[x/t] {x = t} ahol : diszjunkt unió
Resolution elv: (p q) (p r) (q r) szabályok: C1 {A1}, C2 {A2} / C1 C2, mgu(A1, A2) C {L1 L2} / C {L1}, mgu(L1, L2) Tétel: W |- C W |= C és W |= C W {C} |- false ahol W:klauzák halmaza C :klauza *
W = {{r(x) , p(x)},{p(a)},{s(a)}} = C = x(s(x) r(x)) levezetés: C = { s(x) r(x)} {r(x) p(x)} {p(a)} / {r(a)} { s(x) r(x)} {s(a)} / { r(a)} {r(a)} { r(a)} / false tehát valóban következménye C a W-nek *