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