Welcome Guest Search | Active Topics | Members | Log In

Recursive Queries in SBQL Options · View
subieta
Posted: Wednesday, September 02, 2009 10:49:08 AM

Rank: Advanced Member

Joined: 12/22/2004
Posts: 675
Points: 704
Location: Legionowo
Udalo mi się skończyć taki rozdział, patrz http://www.sbql.pl/Topics/SBQL%20Recursive.html
Nie ma tam zbyt wiele nowości, jest troche nowych obserwacji i przykladów. Proszę o uwagi, jezeli kogoś to zainteresuje.
stencel
Posted: Thursday, September 03, 2009 11:21:21 AM

Rank: Advanced Member

Joined: 12/7/2004
Posts: 598
Points: 74
Location: Raszyn
Przeczytalem i kilka drobiazgow do poprawy widze. BTW, te przyklady sa piekne. Nie rozumiem, dlaczego ludzie wola paskudny SQL, w ktorym te same rzeczy zapisac mozna, ale w tak rozwlekly i nieczytelny sposob.


Zle sie odwzorowaly znaczki matematyczne do HTML. Oto miejsca w ktorych to widze.

1. W semantyce leaves by: if temporary_result <> Æ then [ zamiast pustego bagu ]
2. W semantyce fixpoint:
{xi1, xi2,…, xin} Í {x1, x2,…, xm}
x1(Æ), x2(Æ),…, xm(Æ) is pushed at top of ENVS; (Æ stands for empty bag).
3. E.FIX.6 where c £ 50);


DBQL transitive closures -> SBQL transitive closures

Akapit znajdujacy sie pod E.TC.2 dotyczy E.TC.1 i w tym miejscu, gdzie jest, jest niezrozumialy. Proponuje go przesunac przed akapit zaczynajacy sie od "Assuming there is no access"

E.TC.2 Nie wiem czy taka powinna byc skladnia cast. Raczej wyglada mi ze

(Aggregate)(e) -> ((Aggregate) e)

Poczawszy od E.TC.4 widac ze przydalyby sie wciecia w zapytaniach (do Twojej oceny). Moze zastosowac takie jak w artykulach?

casted -> cast [ cast jest nieregularny: cast, cast, cast ]

E.TC.7 Usunac blakajacy sie nawias w klatce pod "SBQL:"

where c is come already counted part independent from x. -> where c is some already counted part independent from x.


Przy fixpoint jest napisane:

sbql.pl wrote:
Note that a transitive closure query q1 close by q2 can be written as a fixed point equation x = q1 union x.q2, hence for sure the general fixed point equation x = f(x) offers at least the power of transitive closures. Probably, this power is much higher, however, it is not sure if such general fixed point equations would be sufficiently usable and understandable by the programmers. Moreover, such complex equations could be difficult to optimize and could result in unpredictable infinite loops.


To mozna uscislic, bo transitive closure jest rownie silny jak fixpoint. To mechanizmy rownowazne. W swojej ksiazce na stronie 135 (rownanie 7.31) pokazuję jak zapisac fixpoint za pomoca leaves by.


Czy nie bedzie przykladow na recursive views? Poprzednio jakies przyklady byly, teraz ich nie ma. Czy cos z nimi jest nie tak?
subieta
Posted: Thursday, September 03, 2009 12:23:11 PM

Rank: Advanced Member

Joined: 12/22/2004
Posts: 675
Points: 704
Location: Legionowo
Dzieki za uwagi, wprowadze przy najbliższej okazji. U mnie znaki dobrzse wychodzą, pewnie to jest problem z odwzorowaniem html do konkretnej przegladarki.
stencel wrote:
Czy nie bedzie przykladow na recursive views? Poprzednio jakies przyklady byly, teraz ich nie ma. Czy cos z nimi jest nie tak?

Na razie zrezygnowalem, aby sie nie zaplątac, byc moze wroce do tego tematu kiedy bede pisal o views. Problem polega na tym, że recursive views nie bardzo mają sens jezeli nie mają parametrów, a view z parametrem odbiega nieco od zasadniczej koncepcji w którym wolanie view jest syntaktycznie i semantycznie rownoważne odwolaniu sie do (kolekcji) zapamietanych obiektów. Byc moze daloby sie jakoś przemycić parametr przez środowisko, ale nie mam na to dobrego pomysłu.
stencel
Posted: Thursday, September 03, 2009 12:37:38 PM

Rank: Advanced Member

Joined: 12/7/2004
Posts: 598
Points: 74
Location: Raszyn
subieta wrote:
Dzieki za uwagi, wprowadze przy najbliższej okazji. U mnie znaki dobrzse wychodzą, pewnie to jest problem z odwzorowaniem html do konkretnej przegladarki.


To prawda. IE8 wyswietla dobrze, Firefox zle. Czy ktos mlodziezy ma pomysl, jak to wyleczyc? Najlepiej zeby byl to pomysl wygodny dla osoby, ktora te materialy opracowuje.

subieta
Posted: Thursday, September 03, 2009 6:03:04 PM

Rank: Advanced Member

Joined: 12/22/2004
Posts: 675
Points: 704
Location: Legionowo
stencel wrote:

E.TC.7 Usunac blakajacy sie nawias w klatce pod "SBQL:"

Nie wiem o co chodzi, u mnie cos takiego nie występuje.
subieta
Posted: Thursday, September 03, 2009 6:12:33 PM

Rank: Advanced Member

Joined: 12/22/2004
Posts: 675
Points: 704
Location: Legionowo
stencel wrote:

To mozna uscislic, bo transitive closure jest rownie silny jak fixpoint. To mechanizmy rownowazne. W swojej ksiazce na stronie 135 (rownanie 7.31) pokazuję jak zapisac fixpoint za pomoca leaves by.

Generalnie masz chyba rację, ale w twoim ujęciu występują dwa problemy. Po pierwsze, zapytania q1,...qn przed leaves by zawierają zmienne x1...xn, które nie są zainicjowane. W obecnej semantyce SBQL-a jest to traktowane jako błąd typologiczny. Jezeli natomiast brak wiązania dla zmiennej potraktujemy jako pusty bag, to pojawia się problem fałszywego wiązania (brak enkapsulacji).

Lekarstwo na to jest proste: przed leaves by trzeba zmienne zainicjować pustymi bagami, a dopiero po leaves by użyć q1,...qn. Nie jestem także pewien, czy powinno być leaves unique by, bo to zmieniłoby semantykę: niezbieżny układ równań stawałby się zbieżny po przetransformowaniu go do tranzytywnego domknięcia.

Czy dobrze kombinuję?
subieta
Posted: Thursday, September 03, 2009 8:29:00 PM

Rank: Advanced Member

Joined: 12/22/2004
Posts: 675
Points: 704
Location: Legionowo
subieta wrote:
Nie jestem także pewien, czy powinno być leaves unique by, bo to zmieniłoby semantykę: niezbieżny układ równań stawałby się zbieżny po przetransformowaniu go do tranzytywnego domknięcia.

Muszę się wycofać: powinno być jednak leaves unique by, inaczej osiągnięcie fixpointu zaowocuje nieskończoną pętlą.
stencel
Posted: Thursday, September 03, 2009 10:12:47 PM

Rank: Advanced Member

Joined: 12/7/2004
Posts: 598
Points: 74
Location: Raszyn
subieta wrote:
Czy dobrze kombinuję?


Pozwzialem jednak pewne watpliwosci co do mojego rozwiazania. Jestem przekonany ze odpowiednik istnieje, tylko musze go bardziej przekonujaca sformulowac.

stencel
Posted: Thursday, September 03, 2009 10:16:18 PM

Rank: Advanced Member

Joined: 12/7/2004
Posts: 598
Points: 74
Location: Raszyn
stencel wrote:
E.TC.7 Usunac blakajacy sie nawias w klatce pod "SBQL:"


O rany. To znowu jest roznica miedzy przegladarkami. Jak otworzysz ten dokument w firefoxie zobaczysz, ze w klatce tabeli w ktorej jest SBQL: na dole blaka sie jeden nawias.

Ponawiam apel do naszych mlodych specow: poradzcie jak redagowac sbql.pl, zeby zminimalizowac niezgodnosci miedzy przegladarkami.

subieta
Posted: Friday, September 04, 2009 6:47:11 PM

Rank: Advanced Member

Joined: 12/22/2004
Posts: 675
Points: 704
Location: Legionowo
Nowa poprawiona wersja będzie w środę. Znalaż się tam taki kawałek:

Note that a transitive closure query q1 close by q2 can be written as a fixed point equation x = q1 union x.q2, hence the general fixed point equation x = f(x) offers the power of transitive closures. However, it is not sure if such general fixed point equations would be sufficiently usable and understandable by the programmers. Moreover, such complex equations could be difficult to optimize and could result in unpredictable infinite loops. It also easy to see that the power of the transitive closure operator is sufficient to express any system of fixpoint equations. The fixpoint system

fixpoint(xi1, xi2,…, xin) {x1 :- q1; x2 :- q2;… xm :- qm;}

is semantically equivalent to the following query with the leaves unique by operator:

(struct( bag() group as x1, bag() group as x2, … , bag() group as xm )

leaves unique by

struct( q1 group as x1, q2 group as x2, … , qm group as xm ) ).

struct( xi1 group as xi1, xi2 group as xi2, … , xin group as xin)

The equivalence stems from the fact that in both cases the evaluation procedure is the same. However, the fixpoint system offers much more compact and legible formulation of some recursive problems.
stencel
Posted: Friday, September 04, 2009 6:57:51 PM

Rank: Advanced Member

Joined: 12/7/2004
Posts: 598
Points: 74
Location: Raszyn
"Podpisuje" sie pod tym tekstem.
Users browsing this topic
Guest


Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Main Forum RSS : RSS

Powered by Yet Another Forum.net version 1.9.1.6 (NET v2.0) - 11/14/2007
Copyright © 2003-2006 Yet Another Forum.net. All rights reserved.
This page was generated in 0.079 seconds.