1 / 29

N DBI006 - Dotazovací jazyky II

N DBI006 - Dotazovací jazyky II. Jaroslav Pokorný a Peter Vojtáš LS 200 8 /0 9. Dotazova cí jazykyII – co není v skriptechJP. Materiál o XML (knížka JP a kol.) Co se stane s našimi modely, když připustíme funkční symboly (např. bohatší datové struktury (s rekurzí), metody, …)

Download Presentation

N DBI006 - Dotazovací jazyky II

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. NDBI006 - Dotazovací jazyky II Jaroslav Pokorný a Peter Vojtáš LS 2008/09

  2. Dotazovací jazykyII – co není v skriptechJP • Materiál o XML (knížka JP a kol.) • Co se stane s našimi modely, když připustíme funkční symboly (např. bohatší datové struktury (s rekurzí), metody, …) • Podívat se na dotaz (dotazovací jazyk) jako na program (programovací jazyk) který transformuje vstup na výstup – aplikace statické analýzy kódu (Static program analysis) na dotazy, použití na optimalizaci dotazů • Data na webu (modely dotazování) • Stručné opakování hledisek (paradigmat) podle kterých jsme jeli – formální a neformální pojem vypočítatelnosti Přídavky

  3. Pojem vypočítatelnosti Church: neformální pojem vypočítatelnosti (na číslech) Churchova teze (úplnost, ekvivalence, …) Formálně: Turingovy stroje Rekurzivní funkce a … Codd: datová vypočítatelnost Coddova teze – relační úplnost Formálně: relační algebra, kalkul, ale transitivní uzávěr nejde …(v Datalogu ano) Jiné modely? Vypočítatelnost na textech, obrázcích, video, geny, temporální (dynamické) aspekty, lidské aspekty, počítání „from scratch“ nebo pamatuji si předešlé výpočty, učím se, … Přídavky

  4. Datová vypočítatelnost • Působí na množinách n-tic • Používá vlastnosti n-tic (ne nejakých ukazatelů mimo) • Abstrakce (nemluví o fyzickém uložení) • Modely vychází z • Algebry – relační algebra • Logiky – relační kalkul • Logické programování – Datalog (s/bez negace, rekurze) Přídavky

  5. Srovnání Datalogu a logického programování Přídavky

  6. Srovnání Datalogu a logického programování Pro danný program P a dotaz ?-Q Modelově teoretická sémantika dáva správné odpovědi Důkazová sémantika dává vypočítané odpovědi Výpočtová úplnost je požadavek, že obě se rovnají a případně se rovnají nejmenšímu (minimálnímu) pevnému bodu (sémantika pevného bodu) Úplnost pro Datalog máme (s diskuzí detailů), pevný bod je triviální z konečnosti (pro Prolog to není triviální) Přídavky

  7. Obsah 9. Herbrandovské struktury a báze, svazy a Tarského věta o fixpointu, produkční operátor 10. Tablo dotazy a statická analýza dotazů, složitost dotazovacích problemů, inkluze dotazů 11. Tablo dotazy a optimalizace dotazů, minimalizace počtu spojení 12. Web jako databáze. Datový model RDF. 13. Dotazovací jazyky na Webem. SPARQL Přídavky

  8. NDBI006 – Dotazovací jazyky II Logické programování, Herbrandovské univerzum, struktury a báze, svazy a Tarského věta o fixpointu, produkční operátor Modelová a fixpointová sémantika logického programování Peter Vojtáš Logické programování

  9. Prolog – komplexní datové struktury seznam([H|T])  element(H), seznam(T).alternativy seznam([ | ]). binStrom([R|T1|T2])  element(R), binStrom(T1), binStrom(T2). binStrom([ | | ]). použití: leq(0, x)  Generuj! leq(s(x), s(y))  leq(x, y). Testuj! leq(x, +(x, y))  leq(x, z)  leq(x, y), leq(y, z). notace: (ne)typovaná validniHTML()… ?proměnné X validniXML() … ?predikát p Logické programování

  10. Predikátový počet prvního řádu – jazyk L L - LF funkční, LP predikátové symboly, LC konstanty, … Netypovaný, arita: LPULF N+, syntaktické objekty - termy f(c1, …,cn, x1, …,xm), formule p(f1(cx),…),, &, v, , , … Mstruktura(interpretace) jazyka L (možný svět) sestává z: M – nosná množina, fM : Mar(f) M (interpretace funkčního symbolu f ve struktuře M), cM M(interpretace konstantního symbolu c ve struktuře M), pMMar(p)(interpretace predikátového symbolu p ve struktuře M), M ╞ pravdivost, splňování, (sémantický důsledek), … jazyk  termy, formule  struktury  splňování  axiomy  … Logické programování

  11. Herbrandovská struktura jazyka L L- LF funkční, LP predikátové symboly, LC konstanty, …stejné HHerbrandovská struktura jazyka, sestává z Herbrandova univerzaUL´ ´= {KTL, fL…, cL …}, a to z KTL = { množina konstantních termů jazyka L, např. f(t1,…,tar(f))} fL:(KTL)ar(f) KTLdefinováno fixně, fL(t1,…,tar(f)) = f(t1,…,tar(f)) cL = c  KTLdefinováno fixně (c je konstantní term), a pH(KTL)ar(p)interpretace predikátů. Zde se můžou H. struktury lišit. Pro H = {UL, pH …} jeH ╞ definováno jako v klas. logice. Obecné struktury jazyka mají více stupňů volnosti, H „jen jeden“ Logické programování

  12. Alternativní reprezentace Herbrand. struktur H=  KTL , fL…, cL…, pH…, H ╞ definováno klasicky, H ╞ p(t1,…,tar(p)) iff (t1,…,tar(p))  pH(KTL)ar(p) , alternativa BL =  p(t1,…,tar(p)): p LP , ti  KTL se nazývá Herbrandova báze, zde se UL´= {KTL, fL…, cL …} nemění, ale místo interpretací každého z predikátů jednotlivě vyberu IHBL , které kóduje interpretaci všech predikátů. Pro IH =  KTL, fL…, cL …, IH definujeme splňování IH╞ p(t1,…,tar(p)) iff p(t1,…,tar(p))  IH, přechod H  IH Hje jednoznačný a zachovává ╞ Logické programování

  13. Definitní/pozitivní prologovské programy Definitní prologovské programy (definite programs je terminologie komunity, totéž jako pozitivní) P sestávají z pravidel typu (x1,…,xn)(H(t1, …,tar(H))  B1(t11, …,t1ar(B1)), …, Bn(tn1, …,tnar(B1))) pro která nemusí nutně platit podmínky ze slidů JP o Datalogu a předpokládáme jenom, že všechny atomy v pravidlech jsou pozitivní (neobsahují negaci), může tam být rekurze (všechny výsledky co následuje platí i pro Datalog). Povšimněme si, že když LF =  tak adom(L) = KTL Pravidlo H se nazývá fakt. V prologovské komunitě se používá klauzální notace (my zůstaneme u  protože se nezabýváme důkazovou sémantikou) HvB, H, a Q je Q v SLD zamítání, u nás ?-Q zůstává dotazem. Logické programování

  14. Herbrandovské modely definitních programů Někdy místoH , BL , …jestližeLje jazykem programu P píšeme HP, BP- Herbrandovská báze programu P , Struktura BPkdyž I = BP(vsechny tabulky jsou „plné“) Pozorování. Pro definitní (data/pro)logovský program P platí 1. BP ╞ P 2. Nechť Mi BP jsou (Herbrandovské) modely programu P ,pak Mi╞ P 3. Průnik všech Herbrandovských modelů definitního Datalogovského programu P je nejmenší Herbrandovský model programu P, označme ho MP BP Logické programování

  15. Herbrandovské modely definitních programů Důkaz (1. ostatní analogicky). Definitní programy nemají v těle negaci, pravidla (x1,…,xn)H(t1, …,tar(H))  B1(t11, …,t1ar(B1)), …, Bn(tn1, …,tnar(B1)) jsou univezálně kvantifikována, pro každé zobrazení e: Var  KTP je t[e]  MP , a tedy konstantní term, Důležité, pro herbrandovské struktury je ohodnocení proměnných prvky H totéž jako substituce konstatních termů Pak, splnitelnost I╞ p(t1[e],…,tar(p[e]) iff p(t1[e],…,tar(p[e])  I  BP Pro (Data/pro)logovské pravidlo (s KT) to znamená že v I platí, pokud z  B1(t11, …,t1ar(B1)), …, Bn(tn1, …,tnar(B1))   I plyne H(t1, …,tar(H))  I, což je pro I=BP triviální . Qed. Logické programování

  16. Herbrandovské modely definitních programů Věta. Nechť P je definitní program, N (obecně ne-Herbrandovská) struktura jazyka programu P taková, že N ╞ P , pak existuje Herbrandovská struktura IN BP taková, že IN╞ P . Důkaz. Definujme p(t1,…,tar(p)  IN iff (tN1,…,tNar(p)  pN , definice je korektní.Mějme pravidlo programu Ps konst. termy, H(t1, …,tar(H))  B1(t11, …,t1ar(B1)), …, Bn(tn1, …,tnar(B1)) a nechť  B1(t11, …,t1ar(B1)), …, Bn(tn1, …,tnar(B1))   IN , z definice ((ti1)N, …,(tiar(Bi))N)  (Bi)N a jelikož N je modelem programu P platí ((t1)N, …,(tar(H))N)  (H)N , opět z definice H(t1, …,tar(H))  INQed. Logické programování

  17. Herbrandovské modely definitních programů Věta. Nechť P je definitní program. Pak MP = {A BP: A je logický důsledek programuP}. Důkaz.() Nechť A BP(konstantní atom) a platí P╞ A, tedy pro každé N╞P platí N╞ A, speciélně pro každé I  BP jež je modelem P platí I╞ A, tedy A  I, A MP () Sporem. Nechť A je konstatní atom a platí ve všech Herbrand. Strukturách, a nechť N je model P ve kterém neplatí A, máme tedy N╞A Z předešlého víme že existuje IN BP , model P, takový, že p(t1,…,tar(p)  IN  (tN1,…,tNar(p)  pN Tedy A IN , spor, Qed. Logické programování

  18. Korektnost a úplnost semantiky Dotaz-odpovědi: vypočítané správné neúplné nekorektní Správné – anotované lidmi – korpus, jeden/vícero anotátorů - formule, pravdivé v modelu (logika,╞) Vypočítané- výpočet ~ důkaz (├ s OWA, CWA, rezoluce, modus ponens, … - pro pozitivní stačí jen Herbrandovy modely s funkčními symboly Logické programování

  19. Produkční operátor Mějme definitní pravidlo R = H B1, … Bn, pro : Var  KTL Rje instancí pravidla R, pokud Var(R) =  pak R = A A1, … An se nazývákonstatní instance Definujme následovně: pro I  BP , TP(I) = {A  BP : pro nějakou konstantní instanci A A1, … An pravidla z P platí {A1, … An}  I} Pozorování. TP je monotóní, tj. I1 I2 implikuje TP(I1)  TP(I2) (díky tomu, že program neobsahuje negaci) Logické programování

  20. Produkční operátor- poznámky • Na předešlém slidu. • A  (implikace s prázdnym tělem) se chápe • v splňování jako A  true (tedy je pravdivá jen když A je • pravdivé) • 2. v definici produkčního operátoru jako • A  {} (zde {} je prázdnámnožina) a podmínka • {}  I je tedysplňena vždy • 3. v procedurálním chápaní • implikace A  A1, …, An lzechápat tak, že procedura • A ke svému splňení volá procedury A1, …, An (pořadí se může • měnit) a odevzdají A vazby při nichž musí být úspěšná, když • tedy A  „nic nevolá“ musí být uspěšná tak jak je napsaná Logické programování

  21. Tarského věta o fixpointu Věta. Nechť L je úplný svaz, T : L Lmonotónní, pak existuje nejmenší pevný bod operátoru T, lfp(T) a platí lfp(T) = min {x  L: T(x)  x} Důkaz. (už to bylo někde v algebře) položme A={x: Txx}. A  , a = infA, pak pro xA, a  x a pak Ta  Tx  x, tedy Ta je dolní ohraničení pro A, z vlastnosti infima Ta  a, tedy aA. Navíc T2a  Ta, takže i Ta A, tedyaTa, tedy a=Ta Odsud a=minA=lfp(T). Logické programování

  22. Tarského věta o fixpointu Věta. Nechť P je definitní program, pak I ⊨ P iff TP(I)  I Důkaz. …na tabuli, viz foto Důsledek. Minimální Herbrandovský model MP = lfp(TP) Důkaz. …na tabuli, viz foto Logické programování

  23. Vypočítatelnost minimálního fixpointu Důkaz. …na tabuli, viz foto Logické programování

  24. Vypočítatelnost minimálního fixpointu Důkaz. …na tabuli, viz foto Důkaz. …na tabuli, viz foto Logické programování

  25. Příklady - poznámka V přešlém (a dalších příkladech) a, b, … - písmena ze začátku abecedy označují konstanty x, y, … - písmena z konce abecedy označují proměnné p, q, r, … - označují predikáty, arita daná značením f, g, h … - označují funkční symboly Logické programování

  26. Příklad přednáška Logické programování

  27. Příklady cvičení Logické programování

  28. Příklady cvičení Logické programování

  29. Osobní závěr Jacques Herbrand, 1908–31, nehoda, asi zde. Herbrandův/Herbrandovský důkaz Goedelovy věty, Každá konzistentní … teorie má model Model „postaven“ z prvků jazyka Život, kariéra, hory, … Logické programování

More Related