1 / 31

Predstavljanje znanja u informacijskim sustavima

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 nikola.bogunovic@fer.hr Napomena:

uta
Download Presentation

Predstavljanje znanja u informacijskim sustavima

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 nikola.bogunovic@fer.hr Napomena: Ova prezentacija smije se koristiti bez ograničenja samo u nastavi na Sveučilištu u Zagrebu, Fakultet elektrotehnike i računarstva.

  2. Predstavljanje znanja u informacijskim sustavima Specijalizacije formalne logike

  3. Specijalizacije logike • Temeljni problemi dokazivanja uporabom logike predikata • Preslikavanje prirodnog jezika u formalan zapis. • Postavljanje hipoteze (supstitucija varijabli). • Izvođenje izjednačavanja i test na pojavu. • Poluodredivost (poluodlučljivost) predikatne logike. • Pojednostavljivanje baze znanja. • Tautologije u skupu klauzula. • Strategije izbora klauzula. • Jednakost u klauzulama (paramodulacija i demudulacija). • Aritmetika (Gödel) – nekompletnost i neispravnost predikatne logike.

  4. 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.

  5. 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 .

  6. 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.

  7. 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: • deklarativnu semantiku (što), kao opis domene. • proceduralnu semantiku (kako), kao opis postupka dokazivanja.

  8. 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.

  9. 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čkipronalazimo 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).

  10. 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.

  11. 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).

  12. 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).

  13. 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).

  14. Specijalizacije logike - nedostaci Prologa • Beskonačne petlje • p(a, b). • p(c, b). • p(X, Z) :- p(X, Y), p(Y, Z). • 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.

  15. 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.

  16. 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).

  17. 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.

  18. 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).

  19. 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 Pneistinit, nemoguće je slaganje s istinitim P prije "cut" predikata, pa se ispituje druga klauzula i not(P) je isitinit. • Ako je Pistinit, 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.

  20. 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.

  21. 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: naziv_relacije(A1, A2, …, An) Npr.: 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.

  22. 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).

  23. 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 podatakailidedukcijske 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

  24. 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).

  25. 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). Primjer: 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. 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)

  26. 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.

  27. Specijalizacije logike – Logika iBaze 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.

  28. Specijalizacije logike – Logika iBaze 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).

  29. Specijalizacije logike – Logika iBaze 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, . . .

  30. Specijalizacije logike – Logika iBaze 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)

  31. Specijalizacije logike – Logika iBaze 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.

More Related