290 likes | 415 Views
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, …)
E N D
NDBI006 - Dotazovací jazyky II Jaroslav Pokorný a Peter Vojtáš LS 2008/09
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
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
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
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
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
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í
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í
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), pMMar(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í
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í
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 IHBL , 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í
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) HvB, H, a Q je Q v SLD zamítání, u nás ?-Q zůstává dotazem. Logické programování
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í
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í
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í
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í
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í
Produkční operátor Mějme definitní pravidlo R = H B1, … Bn, pro : Var KTL Rje 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í
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í
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: Txx}. A , a = infA, pak pro xA, a x a pak Ta Tx x, tedy Ta je dolní ohraničení pro A, z vlastnosti infima Ta a, tedy aA. Navíc T2a Ta, takže i Ta A, tedyaTa, tedy a=Ta Odsud a=minA=lfp(T). Logické programování
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í
Vypočítatelnost minimálního fixpointu Důkaz. …na tabuli, viz foto Logické programování
Vypočítatelnost minimálního fixpointu Důkaz. …na tabuli, viz foto Důkaz. …na tabuli, viz foto Logické programování
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í
Příklad přednáška Logické programování
Příklady cvičení Logické programování
Příklady cvičení Logické programování
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í