Logika_2 - Zemris - Fakultet elektrotehnike i računarstva

Download Report

Transcript Logika_2 - Zemris - Fakultet elektrotehnike i računarstva

Predstavljanje znanja u informacijskim sustavima
Sveučilište u Zagrebu
Fakultet elektrotehnike i računarstva
Doktorski studij
Zimski semestar
Nositelj:
Prof.dr.sc. Nikola.Bogunović, D-309
[email protected]
Napomena:
Ova prezentacija smije se koristiti bez ograničenja samo u
nastavi na Sveučilištu u Zagrebu, Fakultet elektrotehnike i
računarstva.
1
Predstavljanje znanja u informacijskim sustavima
Specijalizacije formalne logike
2
Specijalizacije logike
Temeljni problemi dokazivanja uporabom logike predikata
1. Preslikavanje prirodnog jezika u formalan zapis.
2. Postavljanje hipoteze (supstitucija varijabli).
3. Izvođenje izjednačavanja i test na pojavu.
4. Poluodredivost (poluodlučljivost) predikatne logike.
5. Pojednostavljivanje baze znanja.
6. Tautologije u skupu klauzula.
7. Strategije izbora klauzula.
8. Jednakost u klauzulama (paramodulacija i demudulacija).
9. Aritmetika (Gödel) – nekompletnost i neispravnost predikatne
logike.
3
Specijalizacije logike
1972, Kowalski i Colmerauer: predlažu podsustav dokazivanja
teorema zasnovan na restrikcijama predikatne logike
Neka je dana normalizirana klauzula (univerzalno kvantificirana):
(Q1  Q2  ...  Qn  (P1)  ( P2)  ...  ( Pm))
Koristeći De Morganove zakone, gornja klauzula se može pisati:
(Q1  Q2  ...  Qn  ((P1  P2  ...  Pm)))
Poznavajući ((A)  B) = (A  B), gornja klauzula se može pisati:
(P1  P2  ...  Pm)  (Q1  Q2  ...  Qn)
Zamijenimo strane:
(Q1  Q2  ...  Qn)  (P1  P2  ...  Pm)
Q - izvorno nenegirani (pozitivni) literali povezani disjunkcijom.
P - izvorno negirani (negativni) literali povezani konjunkcijom.
4
Specijalizacije logike – restrikcija u predstavljnaju
Definicija (uz implicitnu pretpostavku o univerzalnoj kvantifikaciji):
Određena programska klauzula (engl. definite program clause)
Točno jedan (1) atomički član na TADA strani (posljedica) implikacije.
Operator konjunkcije se označuje zarezom, a klauzula završi točkom.
Implikacija se označuje strelicom.
Q  P1, P2, ... , Pm.
To je restrikcija (pojednostavljenje) normalizirane klauzule.
Q se naziva glava (engl. head), a konjunkcija (P1, P2, ... , Pm) tijelo
(engl. body)
Određena klauzula često se naziva i pravilo.
Određena klauzula s praznim tijelom je jedinična (činjenica):
Q .
5
Specijalizacije logike – Logički program
Definicija: Određen logički program
Određen logički program je konačan skup određenih klauzula.
Definicija: Definicija predikata
Definicija predikata je skup svih programskih klauzula s jednakim
predikatskim simbolom u glavi klauzule.
Definicija: Određen cilj (engl. definite goal)
Određen cilj je klauzula oblika:
 P1, P2, ... , Pm.
t.j. klauzula s praznom glavom (posljedicom, TADA stranom).
Svaki Pi (i=1,...,m) je podcilj cilja. To su izvorno negirani atomi.
Definicija: Prazna klauzula
Prazna klauzula je klauzula bez glave i tijela. Predstavlja kontradikciju.
.
Definicija: Hornova klauzula
Hornova klauzula je određena programska klauzula (uključivo i jedinična)
ili određeni cilj.
6
Specijalizacije logike
Logičko programiranje
•
Sintaksa logičkog programiranja reducira skup normaliziranih klauzula
na skup Hornovih klauzula (0 ili 1 atomički predikat u glavi). Nije
moguće svaku formulu logike predikata preslikati u skup Hornovih
klauzula (npr. ((R1)  (R2)) nema ekvivalenta u Hornovim
klauzulama).
•
Deklarativna i proceduralna semantika
Interpretacija, evaluacija i model kao u logici predikata.
Kowalski (1979): Algoritam = logika + kontrolni mehanizmi.
"logika" = opis problema u nekom formalnom jeziku (Horn)
“kontrolni mehanizmi” = strategija izbora i izvođenja razrješavanja.
Logički program posjeduje:
1. deklarativnu semantiku (što), kao opis domene.
2. proceduralnu semantiku (kako), kao opis postupka dokazivanja.
7
Specijalizacije logike
Proceduralna semantika = Postupak dokazivanja
(razrješavanje i oborivost)
Postoji cilj:  A1, ..., An.
Slobodno (engl. arbitrarily) se izabere jedan podcilj Ai (1  i  n).
U slijedećem koraku u skupu klauzula (aksioma, pretpostavki)
traži se neodređeno (engl. nondeterministically) kaluzulu:
A'  B1, ..., Bm.
takvu da se njena glava A' može unificirati s odabranim
podciljem Ai, uz supstituciju varijabli .
Novi cilj postaje:
 (A1, ..., Ai-1, B1, ..., Bm, Ai+1, ..., An) .
Postupak se ponavlja do eventualne redukcije cilja na praznu
klauzulu.
Unija supstitucija govori pod kojom je interpretacijom izvorni cilj
istinit.
8
Specijalizacije logike
Npr. postoji skup Hornovih klauzula
1. A1.
2. A2 .
3. H  A1, A2.
_________
 H.
; H je cilj, po def. negirani atom
Izaberemo cilj (H) kao negirani atom i nedeterministički
pronalazimo jednaki pozitivni u glavi klauzule 3. Te dvije klauzule se
razriješe uz supst. varijabli, te novi cilj postaje razriješene klauzula:
 A1, A2.
Podciljevi su povezani konjunkcijom, te se moraju oba zadovoljiti. U
redoslijedu dokazivanja možemo slobodno izabrati podcilj A1, ili A2.
Izaberemo npr. A2. Taj podcilj, kao negativna klauzula se razriješi sa
pozitivnom glavom u klauzuli 2, a drugi podcilj A1 (negativni atom) se
razriješi sa pozitivnom glavom u klauzuli 1. Slijedi prazna klauzula.
Time je cilj H dokazan (potvrđen kao istinit).
9
Specijalizacije logike
•
•
•
Raniji primjer pokazuje da logičko programiranje slijedi postupak
dokazivanja teorema u logici predikata ali s Hornovim klauzulama
(reduciranim normaliziranim klauzulama).
Upravljački tijek je isti kao kod dokazivanja u logici predikata.
U slijedećem koraku želimo uvesti restrikciju (fiksirati) na tijek
upravljanja (do sada je bio nedetermiistički izbor glave za
razrješavanje i slobodan odabir podcilja).
SLD razrješavanje
(Kowalski 1974. pokazao da je ispravno i kompletno)
S – slobodan odabir pravila (funkcije) selekcije (pretraga za
odgovarajućom glavom i odabir podcilja).
L - linearno razrješavanje (započinje se s ciljem, a u razrješavanju jedna
klauzula je uvijek raniji rezultat).
D – postupak se temelji na određenim klauzulama (engl. definite).
Za neke funkcije selekcije (S=konkretna funkcija) SLD postupak ne mora
uvijek završiti u konačnom vremenu.
10
Specijalizacije logike
Prolog jezik i sustav logičkog programiranja
Sintatksa: konačan broj Hornovih klauzula uz oznake:
Jedinična klauzula (činjenica):
A :-.
(ili samo A. )
Određena klauzula (pravilo):
B :- C1, ..., Cn.
Cilj ili upit:
:- D1, ..., Dm.
Proceduralna semantika: OLD (engl. Ordered Linear Definite)
Slobodno pravilo S se reducira/uređuje (2. ograničenje) na:
selekcijsko pravilo R:
s lijeva na desno unutar ciljne klauzule
izborno pravilo Z:
s vrha do dna liste klauzula (po redu)
Primjer od ranije:
1. A1 :-.
2. A2 :-.
3. H :- A1, A2.
:- H.
Cilj H se razrješava s nekom glavom u skupu klauzula idući s vrha prema
dolje, a od podciljeva prvo se razrješava A1 (s lijeva na desno).
11
Specijalizacije logike
- Prolog primjer
prija(pizza, dobro).
prija(hambi, lose).
prija(hot_dog, dobro).
hrana(hambi).
hrana(pizza).
hrana(hot_dog).
voli(bobi, X) :- hrana(X), prija(X, dobro).
:- voli(bobi, Y).
• Razriješimo cilj s voli(bobi, X) uz Y=X. Novi složeni cilj: hrana(X), prija(X, dobro).
• Slaganje hrana(X) u skupu s hrana(hambi) uz X=hambi i Y=hambi, jer Y=X.
• Postoji još mogućih slaganja s hrana(X), Prolog označuje to mjesto.
• Supstitucija X=hambi traži drugi podcilj: prija(hambi, dobro).
• Slaganje se ne nalazi, Prolog se vraća (backtracks) do označene točke.
• Oslobađaju se varijable X=hambi, Y=hambi, ali ostaje Y=X.
• Drugo slaganje s hrana(X) nalazi se hrana(pizza) uz X=pizza, Y=X=pizza.
• Postoje još mogućnosti sad se sada na to mjesto stavlja oznaka.
• X=pizza se supstituira u drugi član, te se traži: prija(pizza, dobro).
• Predikat nalazi među činjenicama. Jedan cilj je dokazan uz Y=pizza.
• Ostalo je označeno mjesto, pa se Prolog vraća, oslobađa sve varijable vezane
nakon toga, t.j. X se oslobađa, ali Y=X. Novo rješenje s hrana(X), X=Y=hot_dog.
• Uz supstituciju u drugi član, novi podcilj je: prija(hot_dog, dobro).
• Taj se predikat nalazi u činjenicama, te je konačno: Y=hot_dog (2 solutions). 12
Specijalizacije logike -
nedostaci Prologa
Beskonačne petlje
Opis domene: i, j konstante, X,Y,Z varijable
1. roditelj(i, j).
2. roditelj(j, k).
3. predak(X, Y) :- predak(Z, Y), roditelj(X, Z).
4. predak(X, Y) :- roditelj(X, Y).
:- predak(X, k)
// tko su sve preci od k
• Ne koristimo Prolog proceduralnu semantiku, već sukladno SLD-u
slobodno selektiramo.
• Cilj predak(X, k) razriješimo npr. s klauzulom 3, uz Y=k, te slijedi novi
cilj: :- predak(Z, k), roditelj(X, Z)
• Slobodno izaberemo podcilj: roditelj(X, Z) i nalazimo u 1 uz X=i, Z=j.
• Supstituiramo vrijednosti varijabli, te tražimo drugi podcilj: predak(j, k).
• Nalazimo u 4. Uvrstimo nove vrijednosti varijabli X=j, Y=k, , i tražimo
potvrdu novoga cilja roditelj(j, k). Nalazimo u 2, te je cilj dokazan.
• Prolog s OLD procedurom neće dokazati cilj.
• Prolog će naći cilj ako se literali u 3. klauzuli zamijene (rekurzija na
kraju).
• Zaključujemo: OLD nije kompletan (pa tako ni Prolog).
13
Specijalizacije logike -
nedostaci Prologa
Beskonačne petlje
1. p(a, b).
2. p(c, b).
3. p(X, Z) :- p(X, Y), p(Y, Z).
4. P(X, Y) :- p(Y, X).
:- p(a, c).
U ovom primjeru nikakav redoslijed klauzula ne
omogućuje pronalaženje rješenja (dokaza za cilj) OLD
postupkom. Slobodan izbor (SLD) dokazuje cilj.
Prolog sustav nije kompletan.
14
Specijalizacije logike -
nedostaci Prologa
Logički program i negacije
Neka je dan program P:
student(ivan):- .
student(hrvoje):- .
student(marija):- .
Pokušavamo dokazati (student(pero)).
Uporabom SLD razrješavanja, nije moguće dokazati negativnu klauzulu
jer u bazi ne postoji niti jedna negativna klauzula.
Novo pravilo:
Reiter (1978) zatvoreni svijet (CWA) - (engl. closed world assumption)
Moguće instancije predikata su samo one eksplicitno navedene.
Svi predikati, koje se ne može dokazati (ma iz kojega razloga), su lažni.
Umjesto (student(pero)), dokazujemo student(pero).
Budući da student(pero) nije logička posljedica programa P,
zaključujemo da je (student(pero)) istinit.
15
Specijalizacije logike -
nedostaci Prologa
Logički program i negacije
•
•
Zbog neodređenosti (engl. undecidability), t.j. potencijalno
beskonačnog prostora vrijednosti varijabli logike prvoga reda, ne
postoji algoritam koji će garantirati dokaz po volji izabranog cilja u
konačnom vremenu.
Ako program ostane u beskonačnoj petlji, zbog nedokazivanja pozitivne
instancije predikata, pogrešno se može zaključiti istinitost negacije cilja.
Uvodimo dodatno pravilo:
Clark 1978: NEGACIJA KAO NEUSPJEH - NF (engl. negation as failure).
Samo ako je A u skupu dokazljivih ciljeva SLD postupkom u konačnom
vremenu, može se zaključiti:
- ako je A u konačnom vremenu dokazano istinit,
zaključi da je A neistinit.
- ako je A u konačnom vremenu dokazano neistinit,
zaključi da je A istinit.
SLD se proširuje u SLDNF, a OLD na OLDNF (Prolog).
16
Specijalizacije logike -
nedostaci Prologa
Negacija u tijelu klauzule
•
•
•
•
•
Postoji potreba za iskazivanjem negacije predikata u klauzulama.
Negacija predikata nije isto što i logička negacija "".
Intuitivna semantika negacije predikata u tijelu klauzule:
operatorom "not", "komplementiramo"istinitost.
Unifikacija se ne izvodi s negativnim atomima. Negacija je samo test
(operator), te je rezultat toga testa samo T ili F.
Samo pod pretpostavkom zatvorenog svijeta (CWA) negacije notP i P
mogu imati istu semantiku. Ako ne pretpostavljamo CWA, notP znači da
"nije poznato da je P istinit", dok P znači logičku negaciju.
Komplementiranje predikata nije dobro definirana operacija.
Istiniti negativni predikat (not q(X1, ..., Xn)) interpretiramo:
"Ne postoje vrijednosti varijabli X1, ..., Xn, za koje bi pozitivni predikat
q() bio istinit."
Slijedi da moramo ispitati sve vrijednosti varijabli.
17
Specijalizacije logike -
nedostaci Prologa
Ispravna uporaba "not" operatora u Prologu:
voli(ivo, X) :- voli(marija, X), not(mrzi(ivo, X)).
Interpretacija:
Voli Ivo sve što voli Marija, ako to nije ujedno u skupu da Ivo mrzi.
(svi objekti koje voli Marija) minus (objekti iz tog skupa koje mrzi Ivo)
Može i dalje postojati nešto što mrzi Ivo, ali ako to nije u skupu onoga
što voli Marija, ne utječe na istinitost klauzule.
X se povezuje u voli(marija, X), a zatim se vezani X ispituju u
mrzi(ivo, X).
U negativnom predikatu moraju se pojaviti samo vezane varijable.
Neispravna uporaba "not" operatora:
voli(ivo, X) :- ne(mrzi(ivo, X)), voli(marija, X).
U trenutku ispitivanja mrzi(ivo, X), X još nije vezan.
Ako postoji bilo što, što je na popisu da Ivo mrzi, to daje neistinost cijeloj
klauzuli i to bez obzira na voli(marija, X). Drugi podcilj se ne ispituje.
Dakle čim se nešto može izjednačiti sa mrzi(ivo, X), slijedi neistinitost, što
nije bila intencija (deklarativno značenje).
18
Specijalizacije logike -
nedostaci Prologa
Nemonotona obilježja Prologa
Ugrađeni atomički predikati:
• "fail" - uvijek daje neistinitu vrijednost.
• "cut", označen simbolom "!", ne dozvoljava vraćanje natrag
preko mjesta u kojem se pojavljuje, te reducira prostor pretraživanja.
"Cut" nema jasno deklarativno značenje.
Često se koristi u definiranju negacije.
not(P) :- P, !, fail.
not(P).
Ispitujemo istinitost not(P), gdje je P bilo koji predikat.
Ako je P neistinit, nemoguće je slaganje s istinitim P prije "cut"
predikata, pa se ispituje druga klauzula i not(P) je isitinit.
Ako je P istinit, prelaskom preko "cut" u prvoj klauzuli ne ispituje se
druga klauzula, već "fail" daje neistinitost za not(P), jer P je istinit.
Zbog "fail" bi morali ispitati drugu klauzulu, ali "cut" ne dozvoljava.
19
Specijalizacije logike -
nedostaci Prologa
Nemonotona obilježja Prologa
Neka je dan program:
p :- a, !, b.
p.
a.
:- p.
U traženju dokaza za p, u prvoj klauzuli tražimo i nalazimo potvrdu za prvi
podcilj a.
Zatim prelazimo preko "cat" na drugi podcilj b.
Taj podcilj ne nalazimo u skupu klauzula.
"cat" nam ne dozvoljava vraćanje i potragu u drugim klauzulama za
istinitim predikatom p.
Pogrešno zaključujemo not p umjesto istinitog p koji bi našli u drugoj
klauzuli kad ne bi bilo "cat".
Prolog je "logistički" programski jezik koji je posudio neke
ideje iz formalne logike.
20
Specijalizacije logike –
Baze podataka
Relacijska baza podataka
Relacija:
Podskup kartezijskog produkta domena niza atributa Ai, t.j.podskup od
{dom(A1)  …  dom(An)}.
Atributi su značajke nekog objekta, domena je skup svih mogućih
vrijednosti atributa. Konkretna vrijednost atributa je instancija.
Shema (model, format) relacije:
Npr.:
naziv_relacije(A1, A2, …, An)
Zaposlenik(Ime, Plaća, Odjel)
Primjer relacije Zaposlenik predstavljene tablicom:
Zaposlenik
= naziv relacije
Ime
Plaća
Odjel
= atributi
"Smith"
6000
"Prodaja"
= instancije atributa (n-torka)
"Jones"
4000
"Administracija" = instancije atributa (n-torka)
…
…
…
Korisnik postavlja "upit" (engl. query) na relaciju Zaposlenik predstavljenu
gornjom tablicom instancija atributa.
Rasuđivanje o podacima je temeljeno na logici predikata prvoga reda.
21
Specijalizacije logike –
Baze podataka
Tablica s ranije slike može se prikazati kao
logički program (logička baza podataka).
To je skup formula (temeljnih izjava, činjenica) u nekoj logici (jeziku) L:
Npr. u jeziku logičkog programa:
zaposlenik(Smith, 6000, prodaja)  .
zaposlenik(Jones, 4000, administracija)  .
. . .
U terminologiji baza podataka korisnik postavlja "upit" (engl. query).
U terminologiji logičkog programiranja korisnik postavlja "cilj" (engl. goal).
Semantički, cilj je formula koja može ili ne mora biti logička posljedica
baze podataka.
Npr. cilj može biti:
 zaposlenik(x, y, "Administracija").
Značenje: nađi sve trojke, tako da je
zaposlenik(x, y, "Administracija")
logička posljedica baze (x, y su varijable koje treba povezati s vrijednostima
u bazi).
22
Specijalizacije logike –
Baze podataka
Baze podataka podržavaju poglede (engl. view):
create view admin_emp as
select ime, placa from zaposlenik
where odjel = "Administracija" ;
Pogled se može preslikati u slijedeću logičku formulu:
admin_emp(x, y)  zaposlenik(x, y, "Administracija").
Zaključujemo: Relacijske baze podataka su poseban slučaj (specijalizacija)
logičkih programa.
Pogled na baze podataka kao specijalne logičke programe nazivamo
logičke baze podataka ili dedukcijske baze.
Takav pogled omogućuje:
- Bolje utemeljenu teoriju i značenje (semantika), teorija modela.
- Optimizacija izvođenja cilja (upita).
- Proširenje izražajnosti.
U logičkoj bazi:
skup temeljnih izjava (činjenice) = ekstenzijski dio baze (EDB)
skup pravila, aksioma, ograničenja cjelovitost = intenzijski (IDB), nakana
23
Specijalizacije logike –
Baze podataka
Jezici (formalizmi) logičkih baza podataka (dedukcijskih)
1. Datalog
Tipovi formula:
•
•
•
•
•
•
•
•
P  .
P  Q1, …, Qn .
 Q1, …, Qn .
Datalog koristi podskup Hornovih klauzula (bez funkcijskih članova).
Predikati imaju konačnu domenu.
U klauzulama su samo određeni predikati (nema negacije u tijelu).
Dozvoljena rekurzija (SQL nema rekurziju).
Vrijedi pretpostavka zatvorenog svijeta (CWA) i negacije kao
neuspjeh (NF).
Vrijedi pretpostavka jedinstvenih simbola (UNA) - svaki objekt u bazi
ima jedinstveno ime.
Vrijedi pretpostavka zatvorene domene (DCA) - nema drugih
objekata osim onih navedenih u bazi.
Evaluacija cilja: "bottom-up", "top-down" (SDLNF), magic-sets, …
(vidi dodatnu literaturu).
24
Specijalizacije logike –
Baze podataka
2. Normalni programi (postoje negacije "" u tijelu klauzula)
A  L1, …, Ln .
Li je literal (može biti i negirani atomički predikat).
p(X)  q(X).
q(X)  p(X).
r(a).
U primjeru postoje dva modela: M1 = {r(a), p(a)}, i M2 = {r(a), q(a)}.
Presjek M1  M2 = {r(a)} nije model programa.
Primjer:
Model logičke baze temeljene na normalnom programu je složeniji od
Dataloga. Garancija završetka upita je stratifikacija takve baze.
Postupak stratifikacije: (garantira jedan minimalan model)
za svaku klauzulu
razina glave je veća ili jednaka razini pozitivnog literala u tijelu i
razina glave je veća od razine negativnog literala u tijelu
(razina - slijed evaluacije)
25
Specijalizacije logike –
Baze podataka
3. Disjunkcijske logičke baze podataka (EDDDB)
Minker 1986:
Uz moguće negacija u tijelu klauzule dozvoljavaju neodređenost
(postoje disjunkcije u glavi klauzule). Slično kao normalizirana
klauzula ali bez funkcijskih članova u predikatima.
Primjer:
N1  …  Np  M1, …, Mn, Mn+1, …, Mn+k
•
•
•
•
Ovisno o uporabi disjunkcija u glavi i negacija u tijelu postoje različiti
semantički koncepti prikladni za rasuđivanje u takvim bazama.
Za disjunkcijske baze (slično kao i pri uporabi negacija) postoji više
modela koji zadovoljavaju takve baze.
Disjunkcijske baze bez negacija s tzv. minimalnim modelima korektno
preslikavaju intencije korisnika.
Dedukcijske baze služe za istraživanje semantičkih koncepata.
26
Specijalizacije logike –
Logika i Baze podataka
Baze podataka i logičko programiranje
Dva nezavisno razvijana područja.
Baze podataka:
• Cilj baza je efikasno organiziranje, upravljanje i pohranjivanje
velike količine podataka (fokus na unutarnjoj organizaciji)
• Višekorisnički rad (integritet, privatnost).
• Postoji nekoliko temeljnih modela (najznačajniji relacijski model relacijska algebra).
Logičko programiranje:
• Nadogradnja istraživanja automatiziranog dokazivanja (ATP).
• Programiranje opisom (deklarativna semantika).
• Koristi logiku za predstavljanje znanja i dedukciju za izvođenje
logičkih posljedica (zaključaka).
Od kraja 70-tih istražuju se veze između logičkog programiranja i
relacijskih baza podataka.
27
Specijalizacije logike –
Logika i Baze podataka
Relacijske baze superiorne u:
- neovisnost podataka.
- podržanost paralelnog izvođenja i pristupa podacima.
Logičko programiranje superiorno u:
- veća izražajna moć (rekurzije), Prolog, Datalog, normalni programi,
disjunkcijske baze.
Relacijski jezici često su u nemogućnosti izraziti cjelokupne aplikacije, te
su stoga ugrađeni u tradicionalne programske jezike (problem
"neslaganja impedancija").
Logički program se s druge strane može koristiti kao programski jezik
opće namjene (izražavanje činjenica, deduktivnih informacija,
rekurzija, upita i ograničenja na homogen način).
28
Specijalizacije logike –
Logika i Baze podataka
Prolog bez funkcijskih članova = Datalog (empirički je pokazana
nekorisnost funkcijskihh članova za operacije nad relacijama)
Problemi dedukcijskih baza zasnovanih na Datalogu - 1
1. Datalog baze podataka ne mogu zadovoljiti povećane zahtjeve za
složenim aplikacijama jer Datalog i relacijski model na kojem počiva
koristi neizražajne strukture s kojima se ne mogu prirodno oblikovati
složene vrijednosti (npr. grafičke baze, multimedijske i sl.).
Nije dovoljno izražena podrška za:
- operacija sa skupovima
(npr. setOf predikat ima samo proceduralnu semantiku)
- nest, unnest, union, intersect, difference, join
(proširenje tradicionalne relacijske algebre).
Ponovno uvođenje funkcijskih članova i operacija sa skupovima nastaju
novi jezici:
LDL - Logical data language, COL - Complex objects language,
Relationlog, . . .
29
Specijalizacije logike –
Logika i Baze podataka
Problemi dedukcijskih baza zasnovanih na Datalogu - 2
2. Implementacija objektno usmjerene paradigme (OODB).
3. Dedukcijske baze ne mogu prirodno baratati sa shemama i
mogućnostima višeg reda (svaka relacija mora imati brojnost).
Sheme su osnovica za strukturu pohrane podataka i strategije
optimizacije upita).
4. Izmjene (nužno je moći mijenjati bazu, ali ne postoji očigledan način
za izražavanje toga kroz sučelja deduktivnih baza podataka).
U Datalogu (i Prologu) predikati assert i retract nemaju preciznu
semantiku.
•
•
•
Primjena paradigmi logičkog programiranja na obradbu upita baza
podataka su tekući istraživački problemi.
Cilj je pronaći jezik "dovoljno" izražajan i "upravljivo" složen koji se
može primijeniti na dosadašnji model podataka.
Traži se spoj logičkog i relacijskog modela (DBMS nema semantičku
informaciju o podacima)
30
Specijalizacije logike –
Logika i Baze podataka
Zašto nema komercijalnih izvedbi dedukcijskih baza podataka
•
•
•
•
•
•
Od 60-tih god. postoje mnogi prototipovi.
Prototipovi su izvedeni na sveučilištima. Bez potpore gospodarstva
u istraživanju i održavanju nema komercijalnog produkta (veliki su
troškovi komercijalne izvedbe, 50 do 100 M$).
Postoji relativno mali broj (komercijalnih) problema koji zahtijevaju
dedukcijske baze podataka (a ne samo relacijsku bazu).
Za relacijski model trebalo je 12 do 15 godina da zaživi.
SQL-2 preuzima mnoge ideje iz deukcijskih baza (npr. konstante
integriteta koje predstavljaju poseban skup izraza u bazi, neovisno
o određenoj tablici ili pogledu).
Nova generacija SQL-a (SQL-3) uvodi rekurzije (Oracle i DB2) i
optimizaciju obradbe upita.
Iako zajednica proizvođača i korisnika relacijskih baza često
ignorira činjenicu da su sve napredne tehnike u relacijskim
bazama proistekle iz logičkih (dedukcijskih) baza, ne bi trebali
biti zabrinuti nego zadovoljni što temeljna istraživanja logičkog
programiranja nalaze primjenu.
31