Visualizátor

prototypový systém pro visualizaci 6D modelu fulltextového vyhledávání


Úvodem:

Aplikace je napsána čistě v programovacím jazyce Java (použita SUN-ovská distribuce Java(TM) 2 SDK, Standard Edition - Version 1.3.0). Tím míním, že jsem použil pouze třídy základních balíků (JFC jsou taktéž v základní distribuci) a nevyužíval žádné další knihovny z třetí strany. Proto je aplikace spustitelná na základním virtuálním stroji.

Tento přístup, kdy jsem začal stavět na zelené louce má možná tu nevýhodu, že jsem mnohdy znovu vynalézal kolo, ale na druhou stranu jsem právě díky tomu získal cenné zkušenosti (zejména v oblasti zpracování regulárních výrazů a vykreslování grafů).

Systém byl programován, odladěn a testován nad operačním systémem Windows 98 SE, na počítači s technickými parametry: Intel Celeron 300 MHz, 128 MB RAM.
Pro provozování bych doporučil rozlišení alespoň 800x600 pixelů.

Instalace:

Archívy obsahující zdrojovou i zkompilovanou verzi textové části diplomové práce ve formátu .latex, .dvi a .ps jsou k dispozici na webovské adrese:

http://www.fi.muni.cz/~xpojer/DP/

Na těchto stránkách je taktéž ke stažení kompletní program včetně zdojových kódů v podobě archivů.

Po rozbalení získáme adresáře diploma a gfx, což jsou balíčky implementující v prvním případě dynamické vytváření grafu (konečného automatu) a ve druhém případě některé pomocné grafické operace (vykreslování křivek). Funkce main je obsažena ve třídě diploma.GUI.

Dále archív obsahuje dokumentaci ve formátu HTML, která je dostupná taktéž přímo z programu v menu Help. Soubor description.html obsahuje základní popis programu, obsahu distribučního archívu, instalace, kompilace, spuštění a ovládání programu. V souboru theory.html pak najdete teoretické podklady pro moji diplomovou prácí (obsaženo i v tištěné verzi) a v souboru credits.html pak kontakty na mě a vedoucího diplomové práce. Ostatní soubory dokumentace jsou umístěny v adresáři /DOC.

Kompilace:

Předpokládám, že je nastavena proměnná cesty k binárním souborům Javy a že jsme v pracovním adresaři, kam jsme rozbalili archiv. Kompilace se potom provede příkazem:

javac diploma/*.java
javac gfx/*.java

Spuštění:

Předpokládám, že je nastavena proměnná cesty k binárním souborům Javy a že jsme v pracovním adresaři, kam jsme rozbalili archiv. Spuštění se potom provede příkazem:

java diploma.GUI

Grafické rozhraní:

Grafické rozhraní obsahuje několik sekcí. V horní části leží roletové menu, obsahující položky File, Tools, Action a Help. Jejich bližší popis bude uveden vzápětí.

Grafické rozhraní

Pod menu najdeme řadu comboboxů, které slouží k nastavení všech šesti parametrů 6D modelu. Navíc je zde možno navolit míru chybovosti pro aproximativní vyhledávání. Úplně vpravo pak můžeme do textového pole zadat specifikaci hledaného vzorku pomocí syntaxe jednoduchého regulárního výrazu.

Největší plochu zabírá posouvatelný vykreslovací panel pro zobrazení nákresu grafu a průběhu animace.

Ve spodní části pak nalezneme dvě textové oblasti - první je editovatelná a slouží pro zadávání prohledávaného textu, druhá needitovatelná je využívána pro informační sdělení uživateli.


Menu File Menu File obsahuje, jak sám název napovídá, položky pro práci se soubory. První tři umožňují postupně načíst, uložit případně vymazat text v editovatelné textové oblasti okna. Jedná se o libovolný text, který bude prohledáván na výskyt hledaného vzorku. Předpokládá se používání krátkých textů, přesto umožňuje práci se soubory do 32000 znaků.

Další dvě položky slouží k načtení popř. uložení ukázkových příkladů. Ukládá se nejenom text ale také vzorek.

Poslední položkou je možno práci s programem ukončit.



Menu Tools Menu Tools obsahuje položky pro nastavování parametrů (lze nastavit například souřadnice počátku grafu v obou osách, vzdálenost mezi uzly na mřížce v obou osách, minimální odstup hrany od uzlu, odstup vícenásobných hran mezi uzly, parametry pro vykreslování smyčky, animační pauzu). Tyto parametry je možno taktéž uložit do externího souboru a při startu programu opět načíst.

Dále zde nalezneme položku Info - informuje nás o celkové a volné paměti virtuálního stroje a vypisuje statistiku aktuálního grafu.

Další možností je volba vzhledu aplikace.



Menu - Action První položka spouští animaci vyhledávání v automatickém režimu, kdy se proces animace zastavuje v pevně daných intervalech bez účasti uživatele.

Druhá položka pak spouští animaci v manuálním režimu, kdy každý další krok je třeba vyvolat stiskem tlačítka myši.

Další dvě položky mají podobné chování, liší se pouze v tom, že tentokrát není vyhledávání ukončeno po prvním výskytu vzorku, ale animace pokračuje až do okamžiku prohledání celého textu.



Menu - Help Poslední menu obsahuje položky informačního a dokumentačního charakteru. V první nalezneme právě tento manuál, v druhé trochu teorie na pozadí problému a ve třetí kontakty na autora a vedoucího DP.

Specifikace vzorku:

Vzorek můžeme specifikovat pomocí jednoduchého regulárního výrazu (viz. definice v theory.html). Skládá se z libovolných znaků pouze s tím omezením, že některým znakům je přiřazen řídící význam. Mezi tyto znaky patří:
+ ... (odděluje jednotlivá slova zadaná ve vzorku)
* ... (označuje iteraci předchozí sekce, tj. nemusí se vysktytovat vůbec, jednou či vícekrát)
() ... (vymezují sekci, která se bude iterovat)
? ... (označuje don't care symbol, zastupuje libovolný znak)

Příklad: abc+ef*g+h(ij(kl)*m)*+n?p

Taktéž je možno použít řídících znaků, pokud jejich význam odstíníme nejprve zpětným lomítkem.

Parametry:

1.Combobox - spojitost vzorku
S (String) - řetězec znaků
Q (Sequence) - posloupnost znaků
2.Combobox - integrita vzorku
F (Full pattern) - celý vzorek
S (Subpattern) - část vzorku
3.Combobox - počet vzorků
O (One) - jeden
F (Finite) - konečný počet
I (Infinite) - nekonečný počet
4.Combobox - tolerance chyb
E (Exact) - zcela přesně
R (R-match) - Hammingova metrika
D (DIR-match) - Levenshteinova metrika
G (DIRT-match) - Obecná Levensteinova metrika
5.Combobox
Errors - počet tolerovaných chyb pro aproximativní vyhledávání
6.Combobox - důležitost symbolů
C (Care) - záleží na všech znacích
D (Don't care) - na některých znacích nezáleží
7.Combobox - počet instancí vzorku
O (One) - jedna
S (Finite) - konečný počet

Příklady:

Několik předdefinovaných příkladů je uloženo v adresáři examples. Všechny dodržují následující syntaxi pro svůj název:

ex[num]_[SQ][FS][OFI][ERDG][CD][OS].[k] např. ex12_SFFECO.0

kde num je číslo příkladu, dalších 6 položek označuje doporučené nastavení parametrů a k na konci je počet tolerovaných chyb.

Příklady lze snadno načítat a ukládat pomocí položek menu File.