visual - grafický dotazovací jazyk
DESCRIPTION
VISUAL - Grafický dotazovací jazyk. David Hoksza. Obsah. Model syst ému, práce se systémem VISUAL do OQL VISUAL do Komplexní algebry D-VISUAL. Vlastnosti. Vizuální návrh dotazů Objektový návrh Převod do OQL Prostorové dotazy. Význačné prvky VISUAL. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/1.jpg)
VISUAL-
Grafický dotazovací jazyk
David Hoksza
![Page 2: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/2.jpg)
Obsah
Model systému, práce se systémem VISUAL do OQL VISUAL do Komplexní algebry D-VISUAL
![Page 3: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/3.jpg)
Vlastnosti
Vizuální návrh dotazů Objektový návrh Převod do OQL Prostorové dotazy
![Page 4: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/4.jpg)
Význačné prvky VISUAL
1) Objektově orientovaný specifikační model
2) Klient-server model dotazů
3) Jednotná interpretace a násobné vykonání
4) Jednotné vyhodnocení metod, agregačních funkcí a množinových operací
![Page 5: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/5.jpg)
OOS model
I dotazy jsou objekty Při vyhodnocování spolu komunikují objekty
![Page 6: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/6.jpg)
Výhody OOS modelu
Jednotnost Sdílení dotazů Paralelní/Distributivní zpracování dotazů Omezení času zpracování dotazu Synchronizované zpracování dotazu Bezpečnost Hierarchie, dědičnost, přetěžování, …
![Page 7: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/7.jpg)
Klient-server model dotazů
Objekt jehož služby jsou využívány – server Objekt, který vyžaduje služby jiného dotazu
– klient Každý dotaz (mimo hlavního) – server i
klient
![Page 8: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/8.jpg)
Jednotná interpretace, násobné vykonání
Vykonání (pod)dotazu lze provést několika způsoby – komplexní algebra, OQL, … (a to v rámci jednoho dotazu)
![Page 9: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/9.jpg)
Jednotné vyhodnocení
Společné vlastnosti metod, agregačních funkcí, množinových operátorů
Existence operátoru “Method Aplier” pracující s těmito vlastnostmi
Jednotná metoda optimalizace
![Page 10: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/10.jpg)
Objekt Základní primitivum
Skládá se z: Atomických objektů (integer, …) Komplexních objektů Kolekcí (množina, sekvence, …)
![Page 11: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/11.jpg)
Oblast zájmu (doména) (1) V této prezentaci – vlastnosti materiálu Termíny:
Částice (Perticles) Porucha (Fracture) Dělení částic (Particle splitting) Mřížka (Grid) – plocha rozdělena mřížkou Rámeček (Frame) – mikrosnímek v mřížce Shluk (Cluster) – velikost, hustota, okraje Experiment navíc obsahuje
– grafy, histogramy, audio, video, komentáře, sekvence mřížek, čas počátku a konce experimentu
![Page 12: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/12.jpg)
Doména (2) Každý rámeček obsahuje čas vzniku (z
mřížky) Částice se mohou dělit (singleEvolve), nebo
spojovat (splitEvolve) v průběhu času
![Page 13: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/13.jpg)
Schéma DB
![Page 14: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/14.jpg)
Dotazy Typy dotazů:
Hlavní dotaz Externí dotaz Interní dotaz
Části dotazů: Objekt hlavičky dotazu Objekt tělo dotazu
V jednom okně může být více ikon dotazů se stejným jménem, pak je výsledkem jejich sjednocení
![Page 15: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/15.jpg)
Hlavička dotazu Obsahuje:
Jméno dotazu Parametry (seznam vstupních a výstupních atributů) Specifikaci výstupního typu
Vstupní parametry se liší podle typu dotazu: Interní dotazy
– Nemá vstupní parametry (pouze implicitní) Hlavní a externí dotazy
– Parametry v závorce za jménem spolu s typy (VISUAL je silně typovaný jazyk)
![Page 16: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/16.jpg)
Tělo dotazu Může obsahovat:
Ikonizované objekty Podmínkové okénka Reference na interní a externí dotazy
Podmínkové okénka obsahují Aritmetické výrazy
– Za operandy mohou mít agregační funkce operující na dotazech
Množinové výrazy– Mohou se odkazovat na výstupy dotazů
![Page 17: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/17.jpg)
Příklad dotazu
![Page 18: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/18.jpg)
Ikonizované objekty Čtyři typy ikonizovaných objektů:
Doménové objekty – obsahuje:• Jméno proměnné• Specifikaci typu• Doménu (volitelně)• Grafickou reprezentaci
Objekty metod Rozsahové objekty (range objects) Prostorové objekty (spatial enforcement region
objects)
![Page 19: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/19.jpg)
Vztahy mezi objekty Typy vztahů:
Prostorový vztah Kompoziční vztah (compostition membership) Vztah kolekce (collection membership) – nastává:
1) Vnější objekt reprezentuje volání dotazu
2) Vnější objekt má atribut, který je kolekcí vnitřních objektů
![Page 20: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/20.jpg)
Prostorové vztahy (1) Prostorový atribut
– Atribut doménového objketu specifikující geometrické souřadnice objektu
Prostorový objekt– Objekt obsahující prostorový atribut
Neprostorový objekt– Objekt, který není prostorový
![Page 21: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/21.jpg)
Prostorové vztahy (2) Prostorové vztahy mezi prostorovými
objekty jsou vyjádřeny zvýrazněnou oblastí uvnitř těla dotazu
Pro různé domény se zvýrazněné oblasti mohou různě uživatelsky definovat podle jejich významu
Tyto oblasti nazýváme “prostorovými oblastmi” (spatial-enforcement region)
![Page 22: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/22.jpg)
Příklad prostorových vztahů
F …rámeček (frame)
P …částice (particle)
W …okno (window)
A …anotace (neprostorový objekt)
![Page 23: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/23.jpg)
Kompoziční vztah
E …experiment
A’ …anotace
![Page 24: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/24.jpg)
Vztah třída-podtřída
![Page 25: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/25.jpg)
Příklad prostorový a kompozičních vztahů
![Page 26: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/26.jpg)
Neúplná cesta V případě, kdy neexistuje nejednoznačnost
v cestě k objektu, je možno nezadávat celou cestu, např.:
![Page 27: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/27.jpg)
Operátor odhnízdění V minulém příkladě pouze neklastrované
částice Zavedení operátoru odhnízdění, který
“zploští” hierarchii:
![Page 28: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/28.jpg)
Externí dotazy Podobný koncept jako procedury a funkce Jsou volány z těla dotazu ikonou s názvem
externího dotazu Při volání musí být předávané parametry
svázané s nějakou proměnnou volajícího dotazu
![Page 29: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/29.jpg)
Interní dotazy
Má pouze výstupní parametry Vstupní parametry jsou implicitně děděné z
dotazu, ve kterém je interní dotaz definován
![Page 30: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/30.jpg)
Příklad interního dotazu
![Page 31: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/31.jpg)
Metody
Uživatelské metody vyjádřeny ikonami a čárami, které je spojují
Ikona metody je spojena s jejími parametry tlustou čarou
![Page 32: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/32.jpg)
Metody – příklad
![Page 33: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/33.jpg)
Množinové operátory (1)
![Page 34: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/34.jpg)
Množinové operátory (2)
![Page 35: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/35.jpg)
VISUAL do OQL
Lze provést mapování VISUALu do OQL VISUAL jako front-end k OQL
![Page 36: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/36.jpg)
Mapování do OQL
Je třeba vyřešit mapování:
Objektu hlavního dotazu Externích a interních dotazů Návratových typů Podmínkových okének Grafických objektů
![Page 37: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/37.jpg)
Mapování hlavního dotazu V OQL nejsou metody pro explicitní
předávání parametrů Parametry externích objektů musí být
konstruovány jako nově vytvořené objekty v hlavním dotazu
Atributy interních dotazů budou přístupné v interním dotazu jako vázané, díky tomu, že v OQL je viditelnost z podbloků
![Page 38: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/38.jpg)
Mapování externích a interních dotazů
Všechny vstupní parametry konstruovány v hlavním dotazu
Externí dotazy jsou konvertovány na interní dotazy
Výstupní parametry jsou ukládány do objektu vytvořeného vnějším objektem
![Page 39: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/39.jpg)
Mapování návratových hodnot
VISUAL povoluje různé návratové typy, stejné jako OQL
Sémantika návratových typů a operací mezi nimi je stejná
![Page 40: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/40.jpg)
Mapování podmínek Různé typy podmínek mapovány do
různých struktur OQL Aritmetické výrazy
– Mapovány do “where” části výrazu ”select from where” Výrazy náležení
– Náležení je mapováno do operátoru “in”
– Nenáležení mapováno jako kombinace unárního operátoru “not” a testování náležení
Množinový výrazy– VISUAL obsahuje , , , – Existuje více způsobů mapování
![Page 41: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/41.jpg)
Mapování množinových výrazů
1. Mapování pomocí binárních množinových operací (union, intersect, except):
• A B na (((A - B) = {}) and ((B - A) != {}))• A B na ((A - B) = {})• A B na (((A - B) = {}) and ((B - A) = {}))
2. Mapování pomocí univerzálního a existenčního kvantifikátoru
• A B na (for all x in A:(x in B)) and (exists x in B:(not (x in A))))
• A B na (for all x in A:(x in B))• A B na ((for all x in A:(x in B)) and ((for all x in B:(x in A))
![Page 42: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/42.jpg)
Mapování grafických objektů
Vztahy a objekty, které je třeba mapovat:
Doménový grafický objekt uvnitř doménového grafického objektu
Doménový grafický objekt uvnitř dotazového grafického objektu
Ikony metod, prostorová okna, prostorové ikony
![Page 43: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/43.jpg)
Doménový objekt uvnitř doménového objektu
Kompoziční hierarchie Oba objekty jsou v kartézském součinu (za
“from”) a určení náležení je v “where” Př.:
Select … from …e:Experiment, F:Frame where F.experimentIn( ) = e
![Page 44: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/44.jpg)
Doménový objekt uvnitř dotazu
Typy objektů určují návratovou hodnotu dotazu
Mapováno pomocí “select from where” – from a where určují tělo dotazu– select odpovídá doménovým objektům– Počet selectů je určen počtem vnitřních objektů
![Page 45: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/45.jpg)
Ikony metod, prostorová okna, prostorové oblasti
Metody jsou mapovány do booleovských funkcí, které se uplatňují ve “where” části dotazu
Prostorová okna mají smysl pouze tehdy, když jsou v prostorové oblasti
Prostorové vztahy jsou mapovány na funkce v OQL (porovnávají souřadnice)
![Page 46: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/46.jpg)
Příklad převodu do OQL
![Page 47: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/47.jpg)
Převod z VISUAL do komplexní algebry (1)
Komplexní algebra vyhodnocuje odspoda nahoru
Kvůli efektivitě Tři fáze:
1) Překlad hlavičky dotazu
2) Překlad těla dotazu
3) Připojení poddotazů
![Page 48: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/48.jpg)
Převod z VISUAL do komplexní algebry (2)
Před převodem je vytvořen orientovaný graf, kde vrcholy jsou dotazy a hrany vedou do poddotazů
Graf je topologicky setříděn Je-li nalezen cyklus => chyba Dotazy jsou vyhodnocovány v opačném
pořadí k topologickému setřídění
![Page 49: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/49.jpg)
KA - Kompoziční hierarchie (1)
Pro převod kompozičních hierarchií je vytvořen graf z grafické reprezentace
![Page 50: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/50.jpg)
KA - Kompoziční hierarchie (2)
Aplikace odhnízdění na každou větev grafu
{f} F
{c1,c2} C
{p1,p2,p3} P1
{p4,p5} c1
{p6,p7} c2
Cesta (F-C-P2) = {(f, c1, p4), (f, c1, p5), (f, c2, p6), (f, c2, p7)}
Cesta (F-P1) = {(f, p1), (f, p2), (f, p3)}
![Page 51: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/51.jpg)
KA - Operátor odhnízdění a hierarchie
Řeší se stejně jako v obecném případě, ale nejdřív je aplikován operátor odhnízdění
- zde je potřeba přidat nové proměnné pro členy, které nejsou v hierarchii
![Page 52: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/52.jpg)
KA - Spojení dotazů (1)
Dotaz A využívá služby dotazu B při třech akcích:
Volání metody (zahrnuje přímé volání dotazů skrz ikony)
Počítání agregačních funkcí Vyhodnocování množinových operátorů
Všechny akce jsou prováděny jednotně
![Page 53: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/53.jpg)
KA - Spojení dotazů (2) Všechny tři akce mají společné:
Mají vstupní kolekci Jsou to aplikace metod (funkcí) na členy vstupní
kolekce Produkují výstupní kolekci obsahující výsledky
aplikace metody na členy vnitřní kolekce
=> Aplikátor metod => Jednotnost optimalizačních metod pro
metody (funkce), agregační funkce, množinové operace
![Page 54: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/54.jpg)
KA – Aplikátor metod Černá skříňka
Vstup– “Vstupní funkce” - metoda, agregační funkce,
množinová operace
– „Vstupní množina“ – doména související funkce• Obsahuje přirozené spojení domén parametrů vstupní
funkce – to může být více, než vstupní funkce žádá => projekce
– Obecná projekce – umožňuje duplikaci vstupních parametrů na rozdíl od klasické projekce
– Výstup má tvar nový_element.výstup_funkce, kde “.” je zřetězení a nový_element je element vzniklý přirozeným spojením
![Page 55: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/55.jpg)
KA – Aplikátor metod pro metody
![Page 56: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/56.jpg)
KA – Aplikátor metod pro metody - příklad
SP – predikát selekce
Výstup SP = {(p, p1, false), (p, p2, false), (p, p3, true), (p, p4, false)}
![Page 57: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/57.jpg)
KA – Aplikátor metod pro agregační funkce (1)
Používá se GROUP-By šablona, která říká, které hodnoty “groupovacích” atributů se budou uvažovat
Na výstup jdou atributy z šablony spolu s výstupem => odpadá problém s prázdným dotazem (i COUNT(prázdná tabulka) nic nevrací)
![Page 58: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/58.jpg)
KA – Aplikátor metod pro agregační funkce (2)
![Page 59: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/59.jpg)
KA – Aplikátor metod pro agregační funkce - příklad
![Page 60: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/60.jpg)
KA – Aplikátor metod pro množinové operace
![Page 61: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/61.jpg)
KA - Aplikátor metod pro množinové operace – př.
GROUP1 a GROUP2 jsou nové atributy vytvořené Group-by-template
Výstupy group operátoru na Frames(E,F) a Frames_With_Cluster(E,F1) jsou:
(E, GROUP1) = {(e1,{f1,f2,f3}), (e2,{f4,f5}), (e3,{f6})}
(E, GROUP2) = {(e1,{f1,f2,f3}), (e2,{f4})}
![Page 62: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/62.jpg)
D-VISUAL Nosný jazyk VISUAL Tvořen pravidly => D(atalog)-VISUAL Podobný relačnímu kalkulu s množinami
(RC/S) Umožňuje rekurzi Nemá univerzální kvantifikátor (nahrazuje jej
množinovými operátory)
![Page 63: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/63.jpg)
Predikáty D-VISUAL (1)1. X θ1 Y , kde θ1 {=, , <, , >, }, X,Y jsou konstanty nebo
proměnné
2. X θ2 S, kde θ2 {,}, X je konstanta nebo proměnná a Y je množina
3. S1 θ3 S2 , kde θ3 {,,,,}, S1, S2 jsou množiny
4. S1 θ4 S2 = , kde θ4 {,,-}, S1, S2 jsou množiny a značí prázdnou množinu
5. S = , kde S je množina
6. S = Ik, kde S je množina stupně k, I je množina celých čísel, Ii = IxIi-1, I>1, a x značí kartézský součin
![Page 64: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/64.jpg)
Predikáty D-VISUAL (2) Používá pozitivní a negativní (nevestavěné
predikáty) R(X) a ¬R(X), kde R je relace a X je vektor proměnných a konstant
![Page 65: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/65.jpg)
Množiny v D-VISUAL Množina je:
množina konstant definovaných operátorem {,} pozitivní predikát formule tvaru <pravidlo1,,…, pravidlok>
Množinové operátory:– Pro manipulace s množinami
, , -
– Operátory porovnání ,,,,
– Operátory náležení ,
![Page 66: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/66.jpg)
Program D-VISUAL Skládá se z množiny pravidel typu “hlava:-
tělo” Hlava je pozitivní predikát a tělo je
konjunkce predikátů
![Page 67: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/67.jpg)
Bezpečné výrazy v D-VISUAL
Aby D-VISUAL neprodukoval nekonečné výsledky, nebo nevyhodnocoval nekonečně dlouhou, zavádíme omezení:
Proměnná z hlavičky se objeví také v těle dotazu Všechny proměnné v těle dotazu (mimo těch, které
jsou pouze v množinách) jsou omezené. Proměnná x je omezená, když:
– X je členem pozitivního predikátu mimo množinu v těle– X je členem X S, kde S je množina bez X v libovolném
ze svých pravidel– X je členem X = Y a Y je omezená
Každé pravidlo definující množinu splňuje (a) a (b)
![Page 68: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/68.jpg)
Příklady D-VISUAL (1) experiment(eid, first-time, last-time), frame(fid, ftime, parent, eid), cluster(cid,fid, centroid_X,
centroid_Y), particle(pid, fid, centroid_X,
centroid_Y), particle-in-cluster(pid, cid), splitEvolves(pid, pid),
![Page 69: VISUAL - Grafický dotazovací jazyk](https://reader035.vdocuments.mx/reader035/viewer/2022081603/56813f93550346895daa85e5/html5/thumbnails/69.jpg)
Příklady D-VISUAL (2) Particles_In_Window(P) :- experiment(e,,), frame(F,,,e),
particle(P,F,X,Y), window_Xlow X, X window_Xhigh, window_Ylow Y, Y window_Yhigh
Experiment_With_All_Frames_Having_Clusters(E) :- experiment(E,,), Frames(E,F1) :- experiment(E,,), frame(F1,,,E)<Frames_With_Cluster(E,F2) :- experiment(E,,), frame(F2,,,E), cluster(C,F2,,)
Frames_With_No_Clusters(F) :- experiment(e,,),frame(F,,,e), F Frames_With_Cluster(F’) :- frame(F’,,,), cluster(C,F’,,)