NDBI006 - Dotazovací jazyky II Jaroslav Pokorný a Peter Vojtáš LS 2008/09
Dotazovací jazyky IIPřídavky2 Dotazovací jazykyII – co není v skriptechJP 1.Materiál o XML (knížka JP a kol.) 2.Co se stane s našimi modely, když připustíme funkční symboly (např. bohatší datové struktury (s rekurzí), metody, …) 3.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ůStatic program analysis 4.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
Dotazovací jazyky IIPřídavky3 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, …
Dotazovací jazyky IIPřídavky4 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)
Dotazovací jazyky IIPřídavky5 Srovnání Datalogu a logického programování Logické programování Datalog (proměnné z hlavy v těle, nemá funkce) Model-theoretic semantics I nekonečné modelyJenom konečné modely Fixpoint semanticsAno pro pozitivníVždy (nejmenší, minimální (závisí na , rekurzi, …)) Proof-theoretic semantics SLD rezoluce + unifikace SLD rezoluce Expressive powerr.e.PTIME Typické použitíMéně (žádná] data, více pravidel, data částí programu, complex data structure Více dat, méně pravidel, 1NF, chápe se jako zobrazení z edb idb
Dotazovací jazyky IIPřídavky6 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í)
Dotazovací jazyky IIPřídavky7 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
Dotazovací jazyky IILogické programování8 NDBI006 – Dotazovací jazyky II Peter Vojtáš 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í
Dotazovací jazyky IILogické programování9 Prolog – komplexní datové struktury seznam([H|T]) element(H), seznam(T). alternativy seznam([ | ]). binStrom([R|T 1 |T 2 ]) element(R), binStrom(T 1 ), binStrom(T 2 ). 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
Dotazovací jazyky IILogické programování10 Predikátový počet prvního řádu – jazyk L L - L F funkční, L P predikátové symboly, L C konstanty, … Netypovaný, arita: L P U L F N +, syntaktické objekty - termy f(c 1, …,c n, x 1, …,x m ), formule p(f 1 (cx),…), , &, v, ,, … M struktura(interpretace) jazyka L (možný svět) sestává z: M – nosná množina, f M : M ar(f) M (interpretace funkčního symbolu f ve struktuře M ), c M M (interpretace konstantního symbolu c ve struktuře M ), p M M ar(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 …
Dotazovací jazyky IILogické programování11 Herbrandovská struktura jazyka L L - L F funkční, L P predikátové symboly, L C konstanty, …stejné H Herbrandovská struktura jazyka, sestává z Herbrandova univerza U L ´ ´ = {KT L, f L …, c L … }, a to z KT L = { množina konstantních termů jazyka L, např. f(t 1,…,t ar(f) )} f L : (KT L ) ar(f ) KT L definováno fixně, f L (t 1,…,t ar(f) ) = f(t 1,…,t ar(f) ) c L = c KT L definováno fixně (c je konstantní term), a p H (KT L ) ar(p ) interpretace predikátů. Zde se můžou H. struktury lišit. Pro H = { U L, p H … } je H ╞ definováno jako v klas. logice. Obecné struktury jazyka mají více stupňů volnosti, H „jen jeden“
Dotazovací jazyky IILogické programování12 H = KT L, f L …, c L …, p H … , H ╞ definováno klasicky, H ╞ p(t 1,…,t ar(p) ) iff (t 1,…,t ar(p) ) p H (KT L ) ar(p), alternativa B L = p(t 1,…,t ar(p) ): p L P, t i KT L se nazývá Herbrandova báze, zde se U L ´ = {KT L, f L …, c L … } nemění, ale místo interpretací každého z predikátů jednotlivě vyberu I H B L, které kóduje interpretaci všech predikátů. Pro I H = KT L, f L …, c L …, I H definujeme splňování I H ╞ p(t 1,…,t ar(p) ) iff p(t 1,…,t ar(p) ) I H, přechod H I H H je jednoznačný a zachovává ╞ Alternativní reprezentace Herbrand. struktur
Dotazovací jazyky IILogické programování13 Definitní/pozitivní prologovské programy Definitní prologovské programy (definite programs je terminologie komunity, totéž jako pozitivní) P sestávají z pravidel typu ( x 1,…,x n )(H(t 1, …,t ar(H) ) B 1 (t 1 1, …,t 1 ar(B1) ), …, B n (t n 1, …,t n ar(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ž L F = tak adom( L ) = KT L 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.
Dotazovací jazyky IILogické programování14 Herbrandovské modely definitních programů Někdy místo H, B L, … jestliže L je jazykem programu P píšeme H P, B P - Herbrandovská báze programu P, Struktura B P když I = B P (vsechny tabulky jsou „plné“) Pozorování. Pro definitní (data/pro)logovský program P platí 1. B P ╞ P 2. Nechť M i B P jsou (Herbrandovské) modely programu P,pak M i ╞ P 3. Průnik všech Herbrandovských modelů definitního Datalogovského programu P je nejmenší Herbrandovský model programu P, označme ho M P B P
Dotazovací jazyky IILogické programování15 Herbrandovské modely definitních programů Důkaz (1. ostatní analogicky). Definitní programy nemají v těle negaci, pravidla ( x 1,…,x n )H(t 1, …,t ar(H) ) B 1 (t 1 1, …,t 1 ar(B1) ), …, B n (t n 1, …,t n ar(B1) ) jsou univezálně kvantifikována, pro každé zobrazení e: Var KT P je t[e] M P, 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(t 1 [e],…,t ar(p [e]) iff p(t 1 [e],…,t ar(p [e]) I B P Pro (Data/pro)logovské pravidlo (s KT) to znamená že v I platí, pokud z B 1 (t 1 1, …,t 1 ar(B1) ), …, B n (t n 1, …,t n ar(B1) ) I plyne H(t 1, …,t ar(H) ) I, což je pro I=B P triviální. Qed.
Dotazovací jazyky IILogické 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 I N B P taková, že I N ╞ P. Důkaz. Definujme p(t 1,…,t ar(p ) I N iff (t N 1,…,t N ar(p ) p N, definice je korektní. Mějme pravidlo programu P s konst. termy, H(t 1, …,t ar(H) ) B 1 (t 1 1, …,t 1 ar(B1) ), …, B n (t n 1, …,t n ar(B1) ) a nechť B 1 (t 1 1, …,t 1 ar(B1) ), …, B n (t n 1, …,t n ar(B1) ) I N, z definice ((t i 1 ) N, …,(t i ar(Bi) ) N ) (B i ) N a jelikož N je modelem programu P platí ((t 1 ) N, …,(t ar(H) ) N ) (H) N, opět z definice H(t 1, …,t ar(H) ) I N Qed.
Dotazovací jazyky IILogické programování17 Herbrandovské modely definitních programů Věta. Nechť P je definitní program. Pak M P = {A B P : A je logický důsledek programu P }. Důkaz. ( ) Nechť A B P (konstantní atom) a platí P ╞ A, tedy pro každé N ╞ P platí N ╞ A, speciélně pro každé I B P jež je modelem P platí I ╞ A, tedy A I, A M P ( ) 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 I N B P, model P, takový, že p(t 1,…,t ar(p ) I N (t N 1,…,t N ar(p ) p N Tedy A I N, spor, Qed.
Dotazovací jazyky IILogické programování18 Korektnost a úplnost semantiky 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 Dotaz-odpovědi: vypočítané správné nekorektní neúplné
Dotazovací jazyky IILogické programování19 Produkční operátor Mějme definitní pravidlo R = H B 1, … B n, pro : Var KT L R je instancí pravidla R, pokud Var(R ) = pak R = A A 1, … A n se nazývá konstatní instance Definujme následovně: pro I B P, T P (I) = {A B P : pro nějakou konstantní instanci A A 1, … A n pravidla z P platí {A 1, … A n } I} Pozorování. T P je monotóní, tj. I 1 I 2 implikuje T P (I 1 ) T P (I 2 ) (díky tomu, že program neobsahuje negaci)
Dotazovací jazyky IILogické 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 1.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 tedy splňena vždy 3. v procedurálním chápaní implikace A A1, …, An lze chá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á
Dotazovací jazyky IILogické programování21 Tarského věta o fixpointu Věta. Nechť L je úplný svaz, T : L L monotó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 T 2 a Ta, takže i Ta A, tedy a Ta, tedy a=Ta Odsud a=minA=lfp(T).
Dotazovací jazyky IILogické programování22 Tarského věta o fixpointu Věta. Nechť P je definitní program, pak I ⊨ P iff T P (I) I Důkaz. …na tabuli, viz foto Důsledek. Minimální Herbrandovský model M P = lfp(T P ) Důkaz. …na tabuli, viz foto
Dotazovací jazyky IILogické programování23 Vypočítatelnost minimálního fixpointu Důkaz. …na tabuli, viz foto
Dotazovací jazyky IILogické programování24 Vypočítatelnost minimálního fixpointu Důkaz. …na tabuli, viz foto
Dotazovací jazyky IILogické 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
Dotazovací jazyky IILogické programování26 Příklad přednáška
Dotazovací jazyky IILogické programování27 Příklady cvičení
Dotazovací jazyky IILogické programování28 Příklady cvičení
Dotazovací jazyky IILogické programování29 Osobní závěr Jacques HerbrandJacques Herbrand, 1908–31, nehoda, asi zde.nehodazde Herbrandův/Herbrandovský důkaz Goedelovy věty, Každá konzistentní … teorie má model Model „postaven“ z prvků jazyka Život, kariéra, hory, …