UNIVERZITA KARLOVA V PRAZE Matematicko-fyzika´lnı´ fakulta
´ CE DIPLOMOVA´ PRA Petr Va´clavek
Klient DIS
Katedra softwarove´ho inzˇeny´rstvı´ Vedoucı´ diplomove´ pra´ce: Mgr. Michal Kopecky´ Studijnı´ program: Informatika
listopad 2001
Ra´d bych podeˇkoval panu magistru Michalovi Kopecke´mu za vedenı´ a podporu prˇi tvorbeˇ diplomove´ pra´ce, Sla´vkovi Rydvalovi za pomoc prˇi sazbeˇ a Honzovi Palovi za vycˇerpa´vajı´cı´ korekturu.
Prohlasˇuji, zˇe jsem svou diplomovou pra´ci napsal samostatneˇ a vy´hradneˇ s pouzˇitı´m citovany´ch pramenu˚. Souhlası´m se zapu˚jcˇova´nı´m pra´ce. V Praze dne 10. prosince 2001 Petr Va´clavek
Obsah 1
´ vod U
7
2
Specifikace diplomove´ pra´ce
9
3
Vyhleda´va´nı´ na Internetu 3.1 Katalogove´ vyhleda´vacˇe . . . . . . . . . . . . . . . . . . . . . . 3.2 Fulltextove´ vyhleda´vacˇe . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Roboti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Databa´ze . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Uzˇivatelske´ prostrˇedı´ (mozˇnosti vyhleda´vacı´ho stroje) 3.2.4 Metavyhleda´vacˇe . . . . . . . . . . . . . . . . . . . . . . 3.2.5 Klientske´ vyhleda´vacˇe . . . . . . . . . . . . . . . . . . .
. . . . . . .
10 10 11 12 12 13 15 15
4
Obdobne´ aplikace 4.1 Copernic 2001 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Bulls Eye 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Babylon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17 17 20 22
5
Programa´torska´ dokumentace (implementace) 5.1 Vy´voj architektury . . . . . . . . . . . . . . . . 5.2 Popis rozhranı´ . . . . . . . . . . . . . . . . . . . 5.2.1 Syste´m parametru˚ . . . . . . . . . . . . 5.2.1.1 TDISParam . . . . . . . . . . . 5.2.1.2 TDISScalarParam . . . . . . . 5.2.1.3 TDISGroupParam . . . . . . . 5.2.1.4 Implementace parametru˚ . . . 5.2.1.5 Pole parametru˚ . . . . . . . . . 5.2.1.6 Prˇ´ıklady parametru˚ . . . . . . 5.2.2 Server . . . . . . . . . . . . . . . . . . . 5.2.2.1 Struktura DLL knihovny . . . 5.2.2.2 Vlastnı´ server . . . . . . . . . . 5.3 Pru˚beˇh polozˇenı´ dotazu . . . . . . . . . . . . . 5.4 Aplikace . . . . . . . . . . . . . . . . . . . . . . 5.4.1 Vy´stupnı´ sˇablony . . . . . . . . . . . . . 5.4.1.1 Popis souboru sˇablony . . . . 5.4.2 INI soubory . . . . . . . . . . . . . . . . 5.5 Implementace jednotlivy´ch serveru˚ . . . . . . . 5.5.1 Implementace webovy´ch vyhleda´vacˇu˚
25 25 28 28 31 31 32 32 33 34 35 35 36 36 40 40 42 42 44 44
3
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
OBSAH 5.5.1.1 Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implementace Oracle8i interMedia . . . . . . . . . . . . . . . . . .
46 50
Za´veˇr 6.1 Srovna´nı´ s konkurencˇnı´mi produkty . . . . . . . . . . . . . . . . . . . . . 6.2 Dalsˇ´ı vy´voj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Zhodnocenı´ a za´veˇr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51 51 52 52
5.5.2 6
A Uzˇivatelska´ dokumentace A.1 Prˇedmluva . . . . . . . . . . . . . . . . . . . . . . . . A.2 Pozˇadavky . . . . . . . . . . . . . . . . . . . . . . . . A.2.1 Minima´lnı´ konfigurace . . . . . . . . . . . . . A.2.2 Doporucˇena´ konfigurace . . . . . . . . . . . . A.2.3 Pozna´mky ke starsˇ´ım operacˇnı´m syste´mu˚m A.3 Instalace . . . . . . . . . . . . . . . . . . . . . . . . . A.4 Pra´ce s aplikacı´ . . . . . . . . . . . . . . . . . . . . . A.4.1 Popis aplikace . . . . . . . . . . . . . . . . . . A.4.2 Prˇihla´sˇenı´ . . . . . . . . . . . . . . . . . . . . A.4.3 Vytvorˇenı´ a editace dotazu . . . . . . . . . . A.4.4 Vyhleda´va´nı´ . . . . . . . . . . . . . . . . . . . A.4.5 Nastavenı´ . . . . . . . . . . . . . . . . . . . . A.4.6 Seznamy dokumentu˚, export . . . . . . . . . A.4.7 Dalsˇ´ı mozˇnosti aplikace . . . . . . . . . . . . A.4.8 Vyuzˇ´ıvane´ servery . . . . . . . . . . . . . . . A.5 Vlastnı´ sˇablona pro export . . . . . . . . . . . . . . . A.5.1 Popis souboru sˇablony . . . . . . . . . . . . . A.6 Kla´vesove´ zkratky . . . . . . . . . . . . . . . . . . . B Obsah prˇilozˇene´ho CD
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
55 55 55 55 57 57 57 59 59 61 61 64 67 68 69 71 71 71 73 74
4
Seznam tabulek 4.1 4.2 4.3
Informace o aplikaci Copernic 2001 . . . . . . . . . . . . . . . . . . . . . . Informace o aplikaci Bulls Eye 2 . . . . . . . . . . . . . . . . . . . . . . . . Informace o aplikaci Babylon . . . . . . . . . . . . . . . . . . . . . . . . .
19 22 24
5.1
Na´zvy a popisy tagu˚ sˇablony . . . . . . . . . . . . . . . . . . . . . . . . .
43
A.1 Na´zvy a popisy tagu˚ sˇablony . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Kla´vesove´ zkratky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72 73
5
Seznam obra´zku˚ 4.1 4.2 4.3
Copernic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bulls Eye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Babylon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18 20 23
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11
Vy´chozı´ architektura aplikace . . . . . . . Fina´lnı´ architektura aplikace . . . . . . . . Prapu˚vodnı´ popis rozhranı´ . . . . . . . . Objekty rozhranı´ . . . . . . . . . . . . . . Objekty rozhranı´ . . . . . . . . . . . . . . Vyuzˇitı´ balı´cˇku DISIfacePackage . . . . . Objekty ja´dra aplikace (DISEngine) . . . . Sestavenı´ pole parametru˚ dotazu . . . . . Strom parametru˚ . . . . . . . . . . . . . . Implementace serveru˚ . . . . . . . . . . . Graficke´ zna´zorneˇnı´ prvku˚ tokenu v textu
A.1 Sche´ma pra´ce aplikace DISClient ´ vodnı´ dialog . . . . . . . . . . . A.2 U A.3 Vy´beˇr adresa´rˇe . . . . . . . . . . A.4 Instalace prˇipravena . . . . . . . A.5 Instalace u´speˇsˇneˇ dokoncˇena . . A.6 Hlavnı´ okno aplikace . . . . . . . A.7 Dialog pro prˇihla´sˇenı´ . . . . . . . A.8 Za´kladnı´ vlastnosti dotazu . . . . A.9 Vy´beˇr serveru˚ . . . . . . . . . . . A.10 Parametry dotazu . . . . . . . . . A.11 Nalezene´ chyby dotazu . . . . . . A.12 Pru˚beˇh vyhleda´va´nı´ . . . . . . . A.13 Seznam nalezeny´ch dokumentu˚ . A.14 Chyby vznikle´ prˇi vyhleda´va´nı´ . A.15 Statistika vyhleda´va´nı´ . . . . . . A.16 Nastavenı´ . . . . . . . . . . . . . A.17 Nastavenı´ serveru˚ . . . . . . . . . A.18 Export seznamu dokumentu˚ . . . A.19 Prˇehled vsˇech parametru˚ . . . . . A.20 Seznamy dotazu˚ . . . . . . . . . . A.21 Seznam dostupny´ch serveru˚ . . .
. . . . . . . . . . . . . . . . . . . . .
6
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
26 27 28 29 30 33 37 38 41 45 47
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
56 57 58 58 59 60 61 62 62 63 64 65 65 66 66 67 68 69 70 70 71
Kapitola 1 ´ vod U Sveˇt je v soucˇasnosti zahlcova´n velky´m mnozˇstvı´m informacı´ (tiskove´ zpra´vy, vy´pisy, korespondence, prˇ´ıspeˇvky elektronicky´ch konferencı´, odborne´ cˇla´nky a v poslednı´ dobeˇ uzˇ i cele´ knihy), ktere´ je nutno zpracovat a ulozˇit k pozdeˇjsˇ´ımu pouzˇitı´. Toto zpracova´nı´ a ulozˇenı´ se nasˇteˇstı´ jizˇ prˇeva´zˇneˇ prova´dı´ v elektronicke´ podobeˇ. Pod pojmem pozdeˇjsˇ´ıho pouzˇitı´ se rozumı´ vyhleda´va´nı´ du˚lezˇity´ch informacı´ v teˇchto archı´vech. Bohuzˇel neexistuje jednotny´ forma´t teˇchto dat, natozˇ pak jednotne´ zpracova´nı´, archivova´nı´ a na´stroje pro vyhleda´va´nı´. Existuje neprˇeberne´ mnozˇstvı´ zpu˚sobu˚ (forma´tu˚), jak tyto data ulozˇit a dalsˇ´ı nove´ forma´ty vznikajı´. Tı´m se hleda´nı´ v textech sta´va´ komplikovaneˇjsˇ´ı, protozˇe na kazˇdy´ forma´t dat existujı´ jine´ na´stroje. Neˇktere´ forma´ty dokonce zˇa´dny´ rozumny´ zpu˚sob prohleda´va´nı´ neumozˇnˇujı´. Mezi nejcˇasteˇji pouzˇ´ıvane´ zdroje textovy´ch dat, se ktery´mi se beˇzˇny´ uzˇivatel pocˇ´ıtacˇe setka´ patrˇ´ı na´sledujı´cı´. E-mailova´ korespondence a prˇı´speˇvky elektronicky´ch konferencı´. Texty dopisu˚ jsou ulozˇeny v posˇtovnı´ch klientech (Microsoft OutLook, PegasusMail, Pine, Lotus Notes a dalsˇ´ı). Data v teˇchto aplikacı´ch jsou ukla´da´na ve vlastnı´m forma´tu, ktery´ je pro dalsˇ´ı vyuzˇitı´ ostatnı´mi aplikacemi veˇtsˇinou naprosto nevhodny´. Nasˇteˇstı´ veˇtsˇina teˇchto posˇtovnı´ch klientu˚ umozˇnˇuje exportovat data do cˇiste´ho textu, se ktery´m se pracuje podstatneˇ le´pe. Samostatne´ dokumenty na disku v ru˚zny´ch forma´tech. K veˇtsˇineˇ nı´zˇe uvedeny´m forma´tu˚m existujı´ aplikace pro vyhleda´va´nı´. Te´meˇrˇ vzˇdy to jsou aplikace, ve ktery´ch zmı´neˇne´ typy dokumentu˚ vznikajı´. Tyto na´stroje jsou omezene´ pouze na dany´ forma´t. Existuje i neˇkolik vy´jimek, naprˇ´ıklad Microsoft Index Server (soucˇa´st Internet Information Server a Windows NT Serveru, slouzˇ´ıcı´ pro indexaci a plnohodnotne´ vyhleda´va´nı´ dokumentu˚ prˇ´ıstupny´ch prˇes WWW) pracuje s forma´ty txt, html a s dokumenty kancela´rˇske´ho balı´ku MS Office. • Cˇisty´ text (.txt) – platformeˇ neza´visly´, snadno prˇenositelny´ a nestrukturovany´ (moc se nepouzˇ´ıva´). • Elektronicka´ kniha (.lit), neboli e-Book, prohlizˇitelna´ pomocı´ Microsoft Reader (ovsˇem obdobne´ forma´ty vyvı´jı´ i jine´ firmy, jako naprˇ´ıklad Adobe). • Dokumenty Microsoft Office (.doc). Velmi neprˇenositelne´, dokonce se jedna´ o forma´t nekompatibilnı´ mezi jednotlivy´mi verzemi Office. Bohuzˇel je velmi 7
oblı´ben, i kdyzˇ podstatneˇ lepsˇ´ı vlastnosti (co do zpracova´nı´ a prˇenositelnosti) ma´ Rich Text Format (.rtf). Tento forma´t se celkem dost rozsˇ´ırˇil a veˇtsˇina textovy´ch procesoru˚ s tı´mto forma´tem doka´zˇe pracovat (importovat a exportovat data). • Portable Document Format (.pdf) – platformeˇ neza´visly´ forma´t firmy Adobe, ktery´ lze prohlı´zˇet naprˇ´ıklad pomocı´ Adobe Acrobat Reader. • PostScript (.ps) – textovy´ soubor popisujı´cı´ vzhled tisˇteˇne´ stra´nky vcˇetneˇ textu a obra´zku˚. Je podporova´n nejen vy´robci softwaru, ale i hardwaru. Tyto soubory lze v prostrˇedı´ Windows prohlı´zˇet naprˇ´ıklad pomocı´ Ghost View. • Webove´ stra´nky (.htm, .html, .shtml, . . . ) jsou psa´ny jazykem HTML (Hypertext Markup Language). Te´meˇrˇ kazˇdy´ operacˇnı´ syste´m obsahuje prohlı´zˇecˇ tohoto forma´tu. • XML (.xml) – univerza´lnı´ a otevrˇeny´ forma´t (Extensible Markup Language) pro vy´meˇnu dat. V poslednı´ dobeˇ velmi oblı´beny´. Informace v databa´zı´ch. Velke´ mnozˇstvı´ textu˚ je ulozˇeno v databa´zı´ch. Je to jeden z nejlepsˇ´ıch zpu˚sobu˚ pro ulozˇenı´ dat. Nabı´zı´ pomeˇrneˇ snadnou spra´vu dat, umozˇnˇuje vyhleda´va´nı´ pomocı´ SQL prˇ´ıkazu˚. V soucˇasne´ dobeˇ veˇtsˇina databa´zovy´ch serveru˚ obsahuje bud’ specia´lnı´ rozsˇ´ırˇenı´ pro ukla´da´nı´ textu˚ (naprˇ´ıklad u serveru Oracle bylo drˇ´ıve rozsˇ´ırˇenı´ ConText Cartridge, nynı´ Oracle8i interMedia Text) prˇ´ıpadneˇ alesponˇ nabı´zı´ opera´tory umozˇnˇujı´cı´ rozumneˇ vyhleda´vat (naprˇ´ıklad v Microsoft SQL Serveru jsou opera´tory CONTAINS, CONTAINSTABLE, FREETEXT, FREETEXTTABLE). Internet. Ovsˇem nejvı´ce textu˚ se nacha´zı´ na Internetu v podobeˇ webovy´ch stra´nek. I v tomto prˇ´ıpadeˇ existuje zpu˚sob pro vyhleda´va´nı´. Jsou jı´m ru˚zne´ webove´ sluzˇby (katalogove´ a fulltextove´ vyhleda´vacˇe, hleda´nı´ v konferencı´ch, . . . ). Bohuzˇel v soucˇasne´ dobeˇ neexistuje zˇa´dny´ zpu˚sob, jak ve vy´sˇe uvedeny´ch zdrojı´ch informacı´ hromadneˇ vyhleda´vat. Neexistuje dokonce ani definice jazyka, ktery´ by byl jednotny´ pro specifikaci dotazu. Kazˇda´ aplikace si proto vytva´rˇ´ı vlastnı´ jazyk pro popsa´nı´ hledany´ch termu˚ a vztahu˚ mezi nimi. V databa´zovy´ch syste´mech se pouzˇ´ıva´ jazyk SQL (Structured Query Language) rozsˇ´ırˇeny´ o opera´tory pro fulltextove´ hleda´nı´, webove´ vyhleda´vacˇe pouzˇ´ıvajı´ syntaxi boolovske´ algebry rozsˇ´ırˇenou o vlastnı´ opera´tory pro hleda´nı´ v ru˚zny´ch sekcı´ch, dome´na´ch, . . . Uzˇivatele´ se tak k mnohy´m du˚lezˇity´m informacı´m ani nedostanou, protozˇe nejsou schopni (prˇ´ıpadneˇ jsou jizˇ znechuceni) vyuzˇ´ıt a prohledat vsˇechny zdroje dat. A nejsou ani schopni plneˇ vyuzˇ´ıt mozˇnosti, ktere´ jednotlive´ na´stroje nabı´zı´. Veˇtsˇinou se zameˇrˇ´ı na neˇkolik ma´lo na´stroju˚, ktere´ si vı´ce osvojı´ a tyto pouzˇ´ıvajı´.
8
Kapitola 2 Specifikace diplomove´ pra´ce Cı´lem diplomove´ pra´ce je vytvorˇit program usnadnˇujı´cı´ vyhleda´va´nı´ informacı´ v dokumentech, jezˇ jsou ulozˇeny na rozlicˇny´ch mı´stech a v ru˚zny´ch forma´tech. Jedna´ se tedy o program podobny´ webove´mu metavyhleda´vacˇi (viz Oddı´l 3.2.4) nebo spı´sˇe klientske´mu vyhleda´vacˇi (viz Oddı´l 3.2.5), ovsˇem s tı´m rozdı´lem, zˇe nebude oslovovat pouze webove´ vyhleda´vacı´ stroje, ale i dalsˇ´ı libovolne´ zdroje dat (Oracle a jine´ databa´ze, soubory na loka´lnı´m disku, . . . ). Mnozˇina zdroju˚, ktere´ se budou pro vyhleda´va´nı´ pouzˇ´ıvat, pu˚jde snadno rozsˇ´ırˇit o dalsˇ´ı, a to bez nutnosti rekompilace aplikace. Navı´c toto rozsˇ´ırˇenı´ zdroju˚ bude umozˇneˇno komukoliv – bude implementova´no v neza´visle´m modulu, ktery´ bude slouzˇit pro komunikaci mezi prˇ´ıslusˇny´m fyzicky´m serverem a aplikacı´. Hlavnı´ na´plnı´ je tedy navrhnout a implementovat rozhranı´ mezi aplikacı´ a vlastnı´m DIS serverem (ktery´ bude oslovova´n) tak, aby umozˇnilo uzˇivateli: • Maxima´lneˇ vyuzˇ´ıvat mozˇnosti prˇ´ıslusˇne´ho serveru. • Nenutilo jej zada´vat opakovaneˇ sta´le ty same´ u´daje pro kazˇdy´ server, ktery´ ma´ by´t dotazem osloven. • Pouzˇ´ıvat jednotnou syntaxi v dotazu pro vsˇechny servery. • Vytvorˇit dalsˇ´ı modul plnohodnotneˇ vyuzˇ´ıvajı´cı´ jine´ zdroje dat. Za´kladnı´ funkce a rysy vy´sledne´ aplikace: • Uzˇivatelsky prˇ´ıveˇtive´ a vı´ceuzˇivatelske´ prostrˇedı´. • Zada´va´nı´ dotazu pro neˇkolik ru˚zny´ch serveru˚ najednou. • Vlastnı´ vyhleda´va´nı´ relevantnı´ch dokumentu˚. • Uchova´va´nı´ a spra´va historie dotazu˚. • Zpracova´nı´ vy´sledku˚ do jednotne´ podoby. • Zı´ska´nı´ (zobrazenı´, ulozˇenı´) nalezeny´ch dokumentu˚. • Ukla´da´nı´ a nacˇ´ıta´nı´ dotazu˚, vy´sledku˚, . . . • Export vy´sledku˚ v neˇkolika forma´tech (HTML, Plain text, a prˇ´ıpadneˇ dalsˇ´ı).
9
Kapitola 3 Vyhleda´va´nı´ na Internetu Vyhleda´va´nı´ informacı´ na Internetu se da´ rozdeˇlit do neˇkolika kategoriı´ podle pouzˇity´ch na´stroju˚: • Katalogove´ vyhleda´vacˇe. • Fulltextove´ vyhleda´vacˇe. • Metavyhleda´vacˇe. • Klientske´ vyhleda´vacˇe.
3.1
Katalogove´ vyhleda´vacˇe
Katalogove´ vyhleda´vacˇe jsou postaveny na velke´ databa´zi stra´nek, ktera´ ma´ stromovou strukturu. Jednotlive´ odkazy jsou roztrˇ´ıdeˇny do neˇkolika (rˇa´doveˇ deseti) za´kladnı´ch kategoriı´, ktere´ se da´le deˇlı´ na podkategorie a tak da´le. Uzˇivatel mu˚zˇe tyto sluzˇby vyuzˇ´ıvat dvojı´m zpu˚sobem: • Procha´zı´ jednotlive´ kategorie, ktere´ ho zajı´majı´. • Pouzˇije jednoduche´ vyhleda´nı´ v te´to stromove´ strukturˇe. Odkazy jsou do databa´ze zada´va´ny rucˇneˇ (veˇtsˇinou se nepouzˇ´ıvajı´ zˇa´dne´ programy, ktere´ samy procha´zejı´ Internet), a to bud’ autory stra´nek (kazˇdy´ katalog obsahuje formula´rˇ pro zarˇazenı´ stra´nek do databa´ze. Vyrˇ´ızenı´ zˇa´dosti trva´ neˇkolik dnı´, nebot’jsou stra´nky prˇed vlastnı´m prˇida´nı´m do seznamu zkontrolova´ny) nebo vlastnı´mi spra´vci katalogu. Mezi nejzna´meˇjsˇ´ı katalogy u na´s patrˇ´ı: • Seznam (http://www.seznam.cz) – prvnı´ a nejzna´meˇjsˇ´ı katalog u na´s. • Atlas (http://www.atlas.cz) • Centrum (http://www.centrum.cz) • Quick (http://search.quick.cz) • RedBox (http://www.redbox.cz) 10
3.2. FULLTEXTOVE´ VYHLEDA´VACˇE Naprosta´ veˇtsˇina z nich (jak uva´dı´ [12]) vyuzˇ´ıva´ data projektu „DMOZ – open directory project“. Je to nejveˇtsˇ´ı a neju´plneˇjsˇ´ı katalog na webu, ktery´ spravuje komunita dobrovolny´ch uzˇivatelu˚. Stal se za´kladem veˇtsˇiny katalogovy´ch vyhleda´vacˇu˚ nejen u na´s, ale i ve sveˇteˇ (Netscape Search, AOL Search, Google, Lycos, HotBot, DirectHit, a stovek dalsˇ´ıch). V zahranicˇ´ı jsou asi nejzna´meˇjsˇ´ı: • DMOZ (http://dmoz.org) – Open Directory Project. • Yahoo (http://www.yahoo.com) • Excite (http://www.excite.com) • Lycos (http://dir.lycos.com) • Google (http://directory.google.com)
3.2 Fulltextove´ vyhleda´vacˇe Na rozdı´l od katalogovy´ch vyhleda´vacˇu˚ se stra´nky v jejich databa´zı´ch nedajı´ sekvencˇneˇ procha´zet. Umozˇnˇujı´ pouze nale´zt relevantnı´ stra´nky odpovı´dajı´cı´ zadane´mu dotazu. Veˇtsˇina vyhleda´vacˇu˚ tohoto typu pouzˇ´ıva´ „Boolovsky´ model“. Jedna´ se o jeden z nejstarsˇ´ıch modelu˚ DIS, jehozˇ za´klady byly navrzˇeny jizˇ v 50-ty´ch letech dvaca´te´ho stoletı´. Kazˇdy´ dokument modelu obsahuje mnozˇinu slov a vyhleda´va´nı´ je zalozˇeno na vyhodnocova´nı´ boolovsky´ch vy´razu˚ (AND, OR, NOT) jak je uvedeno v [1] a [2] . Naprˇ´ıklad dotazem Z AND (X OR Y) se naleznou dokumenty obsahujı´cı´ slovo Z a alesponˇ jedno ze slov X nebo Y. Tento model lze da´le rozsˇ´ırˇit o opera´tory vza´jemne´ polohy termu˚ v dokumentu (naprˇ´ıklad term X musı´ by´t maxima´lneˇ ve vzda´lenosti 10 slov od termu Y, prˇ´ıpadneˇ ve stejne´m odstavci, stra´nce, kapitole, . . . ). Hlavnı´ nevy´hodou boolovske´ho modelu je nemozˇnost ohodnotit slova (urcˇit, ktera´ slova jsou du˚lezˇita´ a ktera´ nikoliv. Typicky beˇzˇna´ slova, jako naprˇ´ıklad „ktery´“, „kolem“ a podobneˇ, jsou v cˇla´nku o JavaScriptu podstatneˇ me´neˇ du˚lezˇita´ nezˇ „toString“, „getDate“, . . . ) a to jak v dotazu, tak v samotne´m dokumentu, cozˇ ma´ neˇkolik sˇpatny´ch du˚sledku˚: • Obtı´zˇna´ formulace dotazu˚. • Nelze ohodnotit nalezene´ za´znamy dle relevance (vsˇechny dokumenty, ktere´ odpovı´dajı´ dotazu jsou stejneˇ dobre´). • Termy v dotazu i dokumentu jsou cha´pa´ny jako stejneˇ du˚lezˇite´. • Neintuitivnı´ vy´sledky. (T1 OR T2 OR ...OR Tn – vra´tı´ za´znamy se vsˇemi Ti , ale i takove´, ktere´ obsahujı´ jedine´ Ti . T1 AND T2 AND ...AND Tn – ve vy´sledku nebudou za´znamy neobsahujı´cı´ jediny´ Ti ). Tento nedostatek rˇesˇ´ı vektorovy´ model, kde jsou termy hodnoceny va´hou (0-1) a dotaz je reprezentova´n jako mnozˇina termu˚ a jejich ohodnocenı´. Vyhleda´va´nı´ pote´ spocˇ´ıva´ v porovna´va´nı´ vah termu˚ v dotazu a dokumentu. 11
3.2. FULLTEXTOVE´ VYHLEDA´VACˇE Fulltextove´ vyhleda´vacı´ stroje se skla´dajı´ z neˇkolika cˇa´stı´: • Roboti, kterˇ´ı procha´zejı´ web • Databa´ze • Uzˇivatelske´ prostrˇedı´
3.2.1
Roboti
Jinak te´zˇ zvanı´ „spiders“, „worms“ cˇi „web crawlers“ jsou programy, ktere´ procha´zejı´ web a indexujı´ nalezene´ stra´nky. Pod pojmem Indexace se rozumı´ zpracova´nı´ obsahu stra´nky – tedy zapsa´nı´ vsˇech du˚lezˇity´ch klı´cˇovy´ch slov stra´nky (a dalsˇ´ıch informacı´) do databa´ze. Kromeˇ hleda´nı´ novy´ch stra´nek majı´ za u´kol proveˇrˇovat aktua´lnost databa´ze. To znamena´, zˇe kontrolujı´ zda v nı´ obsazˇene´ dokumenty jsou sta´le jesˇteˇ prˇ´ıstupne´ a zda jejich obsah odpovı´da´ ulozˇeny´m informacı´m. Beˇhem jednoho dne stihnou tyto programy navsˇtı´vit neˇkolik milionu˚ stra´nek. Neˇktere´ fulltextove´ vyhleda´vacˇe umozˇnˇujı´ na´vsˇteˇvnı´ku˚m vlozˇit vlastnı´ stra´nky do databa´ze (jine´ toto neumozˇnˇujı´ a spole´hajı´ pouze na sve´ roboty). Samozrˇejmeˇ, zˇe se prˇi prˇijmutı´ pozˇadavku neprovede za´pis prˇ´ımo do databa´ze, ale uvedena´ adresa se podstrcˇ´ı robotovi, ktery´ ji zpracuje jako ostatnı´ stra´nky. Roboti kromeˇ zapsa´nı´ informacı´ o stra´nce zjistı´ take´ adresy, na ktere´ se odkazuje a vlozˇ´ı je do fronty odkazu˚, ktere´ pozdeˇji zpracuje (navsˇtı´vı´ a naindexuje). Je tedy zrˇejme´, zˇe cˇ´ım vı´ce odkazu˚ na stra´nku ukazuje, tı´m drˇ´ıve bude nalezena a zarˇazena do indexu. Pokud na stra´nku neexistuje zˇa´dny´ odkaz, nebude nalezena nikdy a pokud nebude zarˇazena do databa´ze rucˇneˇ, mu˚zˇe se sta´t, zˇe nebude nikdy naindexova´na. Dı´ky tomu, zˇe se indexova´nı´ prova´dı´ automaticky, existujı´ stra´nky, ktere´ nemohou by´t nikdy zarˇazeny do databa´ze. Jsou to zejme´na: • Stra´nky kde se vyzˇaduje registrace cˇi heslo. • Dynamicke´ stra´nky generovane´ z databa´zı´. • Komenta´rˇe ve zdrojovy´ch textech stra´nky. Obcˇas se mu˚zˇe sta´t, zˇe si autor neprˇeje, aby byly jeho stra´nky zarˇazeny do databa´ze (naprˇ´ıklad prˇed oficia´lnı´m zverˇejneˇnı´m webu a podobneˇ). Veˇtsˇinou to lze zarˇ´ıdit, dı´ky tomu, zˇe roboti by meˇli splnˇovat „Robot Exclusion Standard“ (viz [6]). Nenı´ tedy proble´m zajistit pomocı´ metatagu˚ ve stra´nce, prˇ´ıpadneˇ pomocı´ jednoho souboru v korˇenove´m adresa´rˇi serveru, vypnutı´ indexace.
3.2.2
Databa´ze
Obsahuje informace o naindexovany´ch stra´nka´ch. Kromeˇ seznamu klı´cˇovy´ch slov (termu˚), ktere´ stra´nka obsahuje, se mu˚zˇou ukla´dat i jine´ informace: porˇadı´ slov, zda slova tvorˇ´ı neˇjakou zna´mou fra´zi, datum modifikace stra´nky, linky z te´to stra´nky a na tuto stra´nku, informace o serveru, kde se stra´nka nacha´zı´, zda je mla´dezˇi prˇ´ıstupna´, atd. Za´lezˇ´ı na implementaci dane´ho syste´mu. Cˇ´ım vı´ce informacı´ se ukla´da´, tı´m vı´ce mozˇnostı´ ma´ uzˇivatel prˇi zada´va´nı´ dotazu a take´ prˇi prohlı´zˇenı´ vy´sledku˚. 12
3.2. FULLTEXTOVE´ VYHLEDA´VACˇE
3.2.3
Uzˇivatelske´ prostrˇedı´ (mozˇnosti vyhleda´vacı´ho stroje)
Za´kladnı´ mozˇnosti, ktere´ fulltextove´ vyhleda´vacˇe podporujı´ (viz [4] a [5]) jsou: • Vyhleda´va´nı´ fra´zı´ (slova, ktera´ se v hledane´m dokumentu musı´ vyskytovat u sebe). Prˇi zada´va´nı´ se pouzˇ´ıvajı´ uvozovky. • Podpora za´kladnı´ch opera´toru˚: AND, OR, NOT, NEAR (spojuje slova, ktera´ by se v dokumentu meˇla vyskytovat blı´zko sebe). Neˇktere´ stroje tyto opera´tory zjednodusˇujı´ na zname´nkovy´ prefix: – „+“ dokument musı´ obsahovat slovo uvedene´ za tı´mto znakem. – „-“ dokument nesmı´ obsahovat na´sledujı´cı´ slovo. Veˇtsˇinou je mozˇne´ mı´sto teˇchto opera´toru˚ psa´t jejich zkratky ( &, |, !). • Podpora zˇolı´ku˚ „*“ slouzˇ´ı pro nahrazenı´ libovolne´ho pocˇtu pı´smen (neˇkdy je z du˚vodu optimalizace umozˇneˇno pouzˇ´ıt zˇolı´ka pouze v prˇ´ıpadeˇ, zˇe je zada´n jisty´ pocˇet pı´smen. Navı´c je neˇkdy povoleno pouzˇ´ıvat zˇolı´ky pouze jednostranneˇ, to jest zˇe prˇedstavujı´ jen libovolnou koncovku, prˇ´ıpadneˇ prˇedponu). • Volba jazyku stra´nky (neˇkolik desı´tek mozˇnostı´). • Datum poslednı´ modifikace. • Omezenı´ pocˇtu vy´sledku˚ z jednoho serveru. Stra´nky na jednom serveru majı´ veˇtsˇinou velmi podobny´ obsah (zameˇrˇenı´). Takto lze zı´skat vı´ce relevantnı´ch stra´nek z vı´ce serveru˚ (z kazˇde´ho serveru se vybere pouze jedna, cˇi neˇkolik ma´lo, nejrelevantneˇjsˇ´ıch stra´nek). • Slova v ru˚zny´ch sekcı´ch stra´nky (text odkazu, na´zev obra´zku, odkaz, adresa, na´zev). • Zu´zˇenı´ vyhleda´va´nı´ pouze na urcˇitou dome´nu nebo server. Velmi du˚lezˇite´ u vyhleda´vacı´ch serveru˚ je take´ zpu˚sob hodnocenı´ dokumentu˚ a tedy jejich usporˇa´da´nı´ na vy´stupu. Porˇadı´ dokumentu mu˚zˇe za´lezˇet na mnoha faktorech: • Obsahuje-li hledane´ termy v na´zvu stra´nky (HTML tag <TITLE>). • Zda jsou hledana´ slova uvedena na zacˇa´tku textu stra´nky. • Pocˇet nalezeny´ch slov a jejich vy´skytu˚ v textu (cˇ´ım vı´ce z hledany´ch slov dokument obsahuje, tı´m ma´ lepsˇ´ı ohodnocenı´). Proto je rozumne´ zada´vat v dotazu hodneˇ podobny´ch termu˚. • Obsahuje-li vı´ce slov, ktere´ jsou oznacˇeny zname´nkem „+“ v dotazu. • Obsahuje-li slova, ktera´ byla nalezena na relativneˇ ma´lo jiny´ch stra´nka´ch. • Zda jsou hledana´ slova v dokumentu blı´zˇe u sebe. • Zda dokument obsahuje neˇktera´ slova jako fra´zi, acˇkoliv tato slova nebyla v dotazu uvedena v uvozovka´ch (naprˇ´ıklad cˇasto hledane´ spojenı´ typu „Bill Gates“ a podobneˇ). 13
3.2. FULLTEXTOVE´ VYHLEDA´VACˇE Pozdeˇji zacˇaly fulltextove´ vyhleda´vacˇe nabı´zet i dalsˇ´ı rozsˇirˇujı´cı´ sluzˇby, ktere´ s vyhleda´va´nı´m souvisı´: • Automaticky´ prˇeklad zobrazovany´ch stra´nek do jiny´ch jazyku˚. • Hleda´nı´ podobny´ch stra´nek. • Dalsˇ´ı hleda´nı´ mezi jizˇ nalezeny´mi stra´nkami (ladeˇnı´ dotazu). • Vra´cenı´ dalsˇ´ıch relevantnı´ch stra´nek z vybrane´ho serveru (v prˇ´ıpadeˇ, zˇe je zapnuta filtrace serveru˚). Prˇ´ıklady fulltextovy´ch vyhleda´vacˇu˚ u na´s: • Kompas (http://kompas.seznam.cz) – Soucˇa´st nejzna´meˇjsˇ´ıho cˇeske´ho katalogu Seznam. • Megatext (http://www.megatext.cz) – Chlubı´ se, zˇe patrˇ´ı mezi nejveˇtsˇ´ı a technologicky nejpokrocˇilejsˇ´ı fulltextove´ vyhleda´vacˇe u na´s. A to zejme´na dı´ky tomu, zˇe se jako jediny´ z velky´ch cˇesky´ch vyhleda´vacˇu˚ doka´zˇe plneˇ vyporˇa´dat s klı´cˇovy´mi proble´my slozˇite´ cˇeske´ gramatiky (viz [10]). Umı´ vyhleda´vat cˇeska´ ohy´bana´ slova ve vsˇech jejich morfologicky´ch tvarech. Ma´ pro rˇesˇenı´ tohoto proble´mu k dispozici rozsa´hly´ slovnı´k 50-ti tisı´c nejfrekventovaneˇjsˇ´ıch cˇesky´ch slov, s jehozˇ pomocı´ doka´zˇe hledane´ vy´razy spolehliveˇ identifikovat bez ohledu na to, v jake´m pa´du, cˇ´ısle nebo slovesne´m cˇase se dany´ termı´n na stra´nce vyskytuje. • Atlas (http://hledej.atlas.cz) • Redbox (http://www.redbox.cz) V zahranicˇ´ı: • Altavista (http://www.altavista.com) – Jeden z prvnı´ch a nejlepsˇ´ıch fulltextu˚ vu˚bec. Bohuzˇel v poslednı´ dobeˇ upada´ a je pomaly´. Na druhou stranu obsahuje neˇkolik zajı´mavy´ch sluzˇeb (hleda´nı´ obra´zku˚, hudby a multime´diı´, prˇeklad do jiny´ch jazyku˚, cˇisteˇ textova´ verze, . . . ). • Google (http://www.google.com) – V poslednı´ dobeˇ asi nejpouzˇ´ıvaneˇjsˇ´ı (obsahuje zajı´mave´ vylepsˇenı´ prohlı´zˇecˇe – prˇ´ıdavna´ lisˇta pro rychle´ vyhleda´va´nı´). • Excite (http://www.excite.com) • All The Web (http://www.alltheweb.com) • MSN (http://www.msn.com)
14
3.2. FULLTEXTOVE´ VYHLEDA´VACˇE
3.2.4
Metavyhleda´vacˇe
Metavyhleda´vacˇ je vyhleda´vacı´ stroj, ktery´ vyuzˇ´ıva´ ostatnı´ vyhleda´vacˇe. Po zada´nı´ dotazu jej prˇeda´ vyhleda´vacˇu˚m (veˇtsˇinou jich by´va´ neˇkolik), ktere´ jej paralelneˇ vyhodnocujı´, pocˇka´ si na vy´sledky a zpracuje je (setrˇ´ıdı´, odstranı´ duplicitnı´ odkazy, zobrazı´ vy´sledky v jednotne´m forma´tu, . . . ). Bohuzˇel ne kazˇdy´ vyhleda´vacˇ na webu, ktery´ o sobeˇ tvrdı´ zˇe je metavyhleda´vacˇ, jı´m skutecˇneˇ je. Veˇtsˇinou se jedna´ jen o stra´nku umozˇnˇujı´cı´ zadat dotaz na neˇkolik serveru˚, ale vy´sledky jednotlivy´ch vyhleda´vacˇu˚ se zobrazı´ na samostatny´ch stra´nka´ch, takzˇe za´kladnı´ a nejteˇzˇsˇ´ı funkce (zpracova´nı´ a sjednocenı´ vy´sledku˚ z ru˚zny´ch zdroju˚) nenı´ u nich implementova´na. Mezi za´kladnı´ vy´hody teˇchto syste´mu˚ patrˇ´ı mnozˇstvı´ naindexovany´ch stra´nek (je to podstatneˇ vı´ce nezˇ majı´ norma´lnı´ vyhleda´vacˇe), uzˇivatelska´ prˇ´ıveˇtivost (jednotny´ interface), rychlost (paralelnı´ zpracova´nı´). U na´s existuje zatı´m jediny´ metavyhleda´vacˇ: • Archon (http://www.archon.cz) Ve sveˇteˇ jich je podstatneˇ vı´ce: • Search.com (http://www.search.com) • Apollo 7 (http://www.apollo7.de) • Meta Crawler (http://www.metacrawler.com) • Monster Crawler (http://www.monstercrawler.com) • Search Caddy (http://www.searchcaddy.com)
3.2.5
Klientske´ vyhleda´vacˇe
Dalsˇ´ı mozˇnostı´, jak hledat informace na Internetu, jsou takzvane´ klientske´ vyhleda´vacˇe. Jedna´ se o aplikace nainstalovane´ na loka´lnı´m disku, ktere´ pro vlastnı´ vyhleda´va´nı´ pouzˇ´ıvajı´ neˇkolik (azˇ neˇkolik desı´tek) ru˚zny´ch katalogovy´ch, fulltextovy´ch a jiny´ch vyhleda´vacˇu˚. Jde tedy vlastneˇ o metavyhleda´vacˇe, ktere´ majı´ podobu klasicke´ aplikace. Vy´hod teˇchto syste´mu˚ je neˇkolik: • Uzˇivatelske´ prostrˇedı´ – jelikozˇ se jedna´ o aplikaci a ne o webovou stra´nku, mu˚zˇe se spousta rysu˚ velmi snadno nastavit a toto nastavenı´ ulozˇit (cozˇ ne kazˇdy´ vyhleda´vacˇ podporuje). • Podstatneˇ rychlejsˇ´ı start – aplikace je nainstalova´na na loka´lnı´m disku a na rozdı´l od webove´ho vyhleda´vacˇe nenı´ trˇeba prˇed vlastnı´m vyhleda´va´nı´m nic stahovat. • Veˇtsˇina teˇchto programu˚ uchova´va´ historii vyhleda´va´nı´ vcˇetneˇ vy´sledku˚ (seznamu nalezeny´ch dokumentu˚). Uzˇivatel se tak mu˚zˇe snadno vra´tit k prˇedchozı´m dotazu˚m a tyto dotazy da´le „ladit“. • Dalsˇ´ı sluzˇby – generova´nı´ reportu˚, mozˇnost automaticke´ho skenova´nı´ (hleda´nı´ zmeˇn, novinek, dalsˇ´ıch dokumentu˚, . . . ).
15
3.2. FULLTEXTOVE´ VYHLEDA´VACˇE Prˇ´ıklady klientsky´ch (meta)vyhleda´vacˇu˚: • BullsEye (http://www.intelliseek.com/prod/bullseye/bullseye.htm) • Copernic (http://www.copernic.com/) • Babylon (http://www.babylon.com/)
16
Kapitola 4 Obdobne´ aplikace Aplikace, ktera´ je soucˇa´stı´ diplomove´ pra´ce, se nejvı´ce podoba´ klientsky´m vyhleda´vacˇu˚m. V soucˇasne´ dobeˇ je jich na trhu neˇkolik. Jedna´ se prˇeva´zˇneˇ o sharewarove´ produkty s omezenou funkcˇnostı´ (jsou zaka´zane´ pokrocˇilejsˇ´ı operace, nelze pouzˇ´ıt vsˇechny vyhleda´vacı´ sluzˇby, ale pouze neˇktere´, . . . ). Nı´zˇe na´sleduje blizˇsˇ´ı popis neˇkolika aplikacı´ (viz [3]), ktery´mi byla ovlivneˇna tvorba programu DISClient. Existuje i spousta dalsˇ´ıch produktu˚ (Webferret, Search+, . . . ). Ty vsˇak nedosahujı´ takovy´ch kvalit a mozˇnostı´, proto zde nebudou uvedeny.
4.1
Copernic 2001
Copernic 2001 je klasicky´ desktopovy´ vyhleda´vacˇ, jenzˇ pro vlastnı´ vyhleda´va´nı´ vyuzˇ´ıva´ asi 80 webovy´ch vyhleda´vacı´ch stroju˚. Aktua´lnost je zajisˇt’ova´na automaticky´m updatem nastavenı´ vyhleda´vacı´ch serveru˚ prˇi startu aplikace cˇi vyhleda´va´nı´. Uzˇivatel se tak nemusı´ o nic starat (prˇ´ıpadneˇ mu˚zˇe to same´ prove´st prˇ´ıkazem z menu). Vzhled aplikace (Obra´zek 4.1) je vı´ceme´neˇ standardnı´ – v leve´ cˇa´sti seznam kategoriı´, vpravo seznam dotazu˚, pod nı´m prˇehled nalezeny´ch dokumentu˚ k aktua´lnı´mu dotazu a v leve´m dolnı´m rohu maly´ na´hled vybrane´ho dokumentu. Prˇi pra´ci je nejdrˇ´ıve trˇeba vybrat oblast, ve ktere´ se bude hledat. K vy´beˇru nabı´zı´ aplikace vı´ce nezˇ 40 kategoriı´. V neregistrovane´ verzi je k dispozici pouze prvnı´ch sˇest: web, diskusnı´ fo´ra, emailove´ adresy, na´kup knih, hardwaru a softwaru. Po registraci se nabı´dka rozsˇ´ırˇ´ı o mnoho dalsˇ´ıch (aukce, zdravı´, humor, obra´zky, filmy, MP3, recepty, veˇda, cestova´nı´, sport a podobneˇ), jine´ se nacha´zejı´ na stra´nka´ch vy´robce. Po zvolenı´ kategorie je nutno zadat vlastnı´ dotaz. To spocˇ´ıva´ v zada´nı´ neˇkolika termu˚ a zvolenı´ vztahu mezi teˇmito termy a hledany´mi dokumenty: zda dokumenty musı´ obsahovat vsˇechna slova, zda postacˇ´ı alesponˇ jedno nebo zda se jedna´ o prˇesnou fra´zi. Zajı´mavou volbou je mo´d „Odpoveˇd’ na ota´zku“, kdy se mı´sto klı´cˇovy´ch slov napı´sˇe ota´zka celou veˇtou a program uzˇ si to sa´m prˇevede (naprˇ´ıklad „Where was Albert Einstein born?“). Tady je nutne´ podotknout, zˇe cely´ program je anglicky, pouzˇ´ıva´ zahranicˇnı´ vyhleda´vacˇe a tedy je nutne´ tuto ota´zku polozˇit v anglicˇtineˇ. Take´ lze upravit seznam vyhleda´vacˇu˚, ktere´ se pro vlastnı´ hleda´nı´ pouzˇijı´. Plna´ verze programu umozˇnˇuje automaticke´ odstraneˇnı´ nedosazˇitelny´ch dokumentu˚. Vyhleda´va´nı´ pak sice trva´ de´le (kontroluje se existence nalezeny´ch dokumentu˚), ale uzˇivatel ma´ jistotu, zˇe nalezene´ dokumenty jsou dostupne´.
17
4.1. COPERNIC 2001
Obra´zek 4.1: Copernic Poslednı´m krokem editace dotazu je zada´nı´ maxima´lnı´ho pocˇtu vy´sledku˚ od jednotlivy´ch vyhleda´vacı´ch stroju˚ a pocˇet vy´sledku˚ celkem. Po potvrzenı´ se program pustı´ do vlastnı´ho vyhleda´va´nı´. Pru˚beˇh se zobrazuje v pomocne´m dialogove´m okneˇ, kde se take´ vypisuje kolik dokumentu˚ bylo nalezeno jednotlivy´mi kontaktovany´mi vyhleda´vacˇi. Vy´sledky (odpovı´dajı´cı´ dokumenty) se pote´ zobrazı´ v prˇehledne´m seznamu. Nalezene´ dokumenty lze samozrˇejmeˇ prohlı´zˇet – pro zobrazenı´ lze vyuzˇ´ıt jaky´koliv nainstalovany´ prohlı´zˇecˇ a nebo internı´ prohlı´zˇecˇ te´to aplikace, ktery´ dovede navı´c v zobrazovane´m dokumentu zvy´raznit hledana´ slova, snadno prˇecha´zet mezi jednotlivy´mi dokumenty a obsahuje i prˇ´ıjemne´ kla´vesove´ zkratky. Ve stejne´m prohlı´zˇecˇi lze take´ zobrazit seznam nalezeny´ch dokumentu˚, cozˇ se velmi podoba´ prohlı´zˇenı´ vy´sledku˚ na beˇzˇne´m webove´m fulltextu. Vybrane´ dokumenty lze kromeˇ prohlı´zˇenı´ take´ ulozˇit na disk (vcˇetneˇ obra´zku˚, cˇi bez nich). Zajı´mava´ je take´ mozˇnost zobrazit si dokument v jine´m jazyce (stacˇ´ı zadat z jake´ho do jake´ho jazyka se ma´ prˇelozˇit). K dispozici je anglicˇtina, francouzsˇtina, neˇmcˇina, italsˇtina, japonsˇtina, portugalsˇtina a sˇpaneˇlsˇtina. Ve fa´zi specifikace dotazu sice nelze odfiltrovat nefunkcˇnı´ odkazy (tedy ve freewarove´ verzi programu), ale po prohleda´nı´ jizˇ toto nasˇteˇstı´ prove´st lze. Je-li navra´ceny´ch dokumentu˚ prˇ´ılisˇ mnoho, lze je filtrovat. K tomu slouzˇ´ı prˇ´ıkaz Refine, ktery´ zkontroluje, zda vybrane´ dokumenty opravdu obsahujı´ uzˇivatelem zadana´ slova (prˇedtı´m se automaticky sta´hnou na pevny´ disk). Prˇitom je mozˇne´ poupravit slova, ktera´ ma´ dokument obsahovat (k dispozici jsou spojky AND, OR, EXCEPT, NOT, NEAR) a dotaz takto doladit.
18
4.1. COPERNIC 2001 Prˇehled nalezeny´ch dokumentu˚ odpovı´dajı´cı´ dotazu se da´ vyexportovat v neˇkolika ru˚zny´ch forma´tech: cˇisty´ text, HTML, CSV (Comma Separated Value – atributy jsou oddeˇleny cˇa´rkami. Forma´t podporovany´ trˇeba Excelem), DBF a XML. Vy´sledky jednotlivy´ch vyhleda´va´nı´ se ukla´dajı´ na disk do specia´lnı´ch adresa´rˇu˚, ktere´ lze snadno editovat. Dı´ky tomu se k nim mu˚zˇe uzˇivatel kdykoliv pozdeˇji vra´tit a da´le s nimi pracovat: pozmeˇnit dotaz, znovu vyhledat (prˇidajı´ se pouze noveˇ nalezene´ dokumenty), duplikovat a podobneˇ. Aplikace lze vizua´lneˇ upravovat – od zobrazova´nı´/schova´va´nı´ jednotlivy´ch prvku˚, prˇes sloupecˇky seznamu˚, nastavenı´ vy´chozı´ch voleb prˇi editaci dotazu azˇ po vlastnı´ skiny (uplna´ zmeˇna graficke´ho provedenı´ aplikace). Prˇi instalaci (prˇ´ıpadneˇ pozdeˇji v nastavenı´) tohoto produktu je mozˇno zabudovat neˇkolik rozsˇ´ırˇenı´ do Internet Exploreru: Prˇida´nı´ odkazu do na´strojove´ lisˇty a menu, nove´ polozˇky do kontextove´ho menu prohlı´zˇecˇe, nahrazenı´ standardnı´ho na´stroje pro vyhleda´va´nı´, prˇida´nı´ volby prˇekladu stra´nek. Acˇkoliv je freewarovy´ produkt odlehcˇenou (chybı´ mu neˇkolik prˇ´ıjemny´ch funkcı´) verzı´ placene´ho produktu, je plneˇ funkcˇnı´. Placena´ verze „Copernic Plus“ obsahuje navı´c prˇ´ıstup k 1000 vyhleda´vacı´ch stroju˚ v 93 kategoriı´ch a neobsahuje reklamnı´ prouzˇky. V jesˇteˇ drazˇsˇ´ı verzi „Copernic Pro“ je k dispozici neˇkolik novy´ch funkcı´ (automaticke´ odstranˇova´nı´ nefunkcˇnı´ch odkazu˚, vyhleda´va´cı´ agenti, e-mailove´ upozorneˇnı´ na nove´ dokumenty odpovı´dajı´cı´ dotazu a mnohe´ dalsˇ´ı). Na´zev a verze Adresa Vy´robce Typ Cena Pozˇadavky
Copernic 2001 Basic, verze 5.01 http://www.copernic.com Copernic Technologies Inc. Freeware Freewarova´ verze – $0, Copernic PLUS – $39.95, Copernic PRO – $79.95 486DX 66 MHz (a vysˇsˇ´ı), 15 MB RAM, 10 MB volne´ho mı´sta na disku, operacˇnı´ syste´m Microsoft Windows 95, 98, Me, NT4, 2000, XP, prohlı´zˇecˇ Netscape 3 nebo Internet Explorer 3 (a noveˇjsˇ´ı). Tabulka 4.1: Informace o aplikaci Copernic 2001
Klady: • Automaticka´ aktualizace prˇes Internet. • Mozˇnosti nastavenı´ prostrˇedı´. • Prˇeklad stra´nek do cizı´ch jazyku˚. • Validace dokumentu˚. • Vlastnı´ prohlı´zˇecˇ se zvy´razneˇnı´m hledany´ch termu˚. Za´pory: • Da´le nerozsˇirˇitelne´. • Omezene´ mozˇnosti dotazu (nepodporuje spojky a dalsˇ´ı opera´tory). 19
4.2. BULLS EYE 2 • Podpora a integrace pouze do prohlı´zˇecˇe MSIE. • Shareware (omezena´ funkcˇnost, cena).
4.2
Bulls Eye 2
Bulls Eye 2 je prˇ´ımo „Desktopovy´ vyhleda´vacı´ porta´l“. Hlavnı´ okno je rozdeˇleno na neˇkolik cˇa´stı´ (Obra´zek 4.2): Seznam vy´sledku˚, na´hled aktua´lneˇ vybrane´ho dokumentu v tomto seznamu a prˇehled kategoriı´, ve ktery´ch je mozˇno vyhleda´vat – nacha´zı´ se na leve´ straneˇ a obsahuje jednotlive´ typy vyhleda´va´nı´: Web, News, Jobs, Books, Software, Health a mnoho dalsˇ´ıch.
Obra´zek 4.2: Bulls Eye Po vybra´nı´ kategorie prˇi vytva´rˇenı´ nove´ho dotazu je trˇeba zadat hledane´ termy (k dispozici je prˇehled drˇ´ıve zada´vany´ch termu˚). V pokrocˇile´m mo´du lze vyuzˇ´ıt rozsˇ´ırˇene´ nastavenı´ a vytvorˇit podstatneˇ komplikovaneˇjsˇ´ı dotazy za pomoci opera´toru˚ AND, OR, NOT, NEAR. Je mozˇne´ si take´ prohle´dnout a prˇ´ıpadneˇ pozmeˇnit seznam vyhleda´vacı´ch webovy´ch serveru˚, ktere´ se budou pouzˇ´ıvat a nastavit dalsˇ´ı parametry (maxima´lnı´ pocˇet vy´sledku˚ zı´skany´ch od kazˇde´ho stroje, urcˇit jak majı´ by´t vy´sledky setrˇ´ıdeˇny). 20
4.2. BULLS EYE 2 Podle vybrane´ kategorie lze blı´zˇe specifikovat, kde se ma´ hledat (naprˇ´ıklad prˇi vyhleda´va´nı´ knih lze urcˇit, zda se termy ty´kajı´ na´zvu, autora, ISBN, zda se hleda´ knı´zˇka v obchodech nebo v knihovna´ch nebo zda chce uzˇivatel najı´t volneˇ stazˇitelnou knihu, . . . ). Poslednı´m krokem je volba zpu˚sobu analy´zy dokumentu˚ – zˇa´dny´, odstranˇova´nı´ neplatny´ch odkazu˚ nebo kontrola, zda dokument opravdu odpovı´da´ zadane´mu dotazu (v tom prˇ´ıpadeˇ je samozrˇejmeˇ nutne´ dokument nejdrˇ´ıve sta´hnout na loka´lnı´ disk a prozkoumat, cozˇ se provede automaticky). Po potvrzenı´ dotazu zacˇne probı´hat vlastnı´ vyhleda´va´nı´ a v seznamu nalezeny´ch dokumentu˚ se zacˇnou zobrazovat prvnı´ vy´sledky (cˇasem se dota´hnou a spra´vneˇ zarˇadı´ zby´vajı´cı´). V seznamu se uva´dı´ za´kladnı´ informace o nalezeny´ch dokumentech (relevantnost, adresa, na´zev stra´nky, jme´no vyhleda´vacˇe, ktery´ ji nalezl, . . . ) po prˇepnutı´ do detailnı´ho mo´du se zobrazı´ dalsˇ´ı informace (datum, velikost a stav dokumentu). Po odkliknutı´ dokumentu se tento nacˇte a zobrazı´ pod seznamem s vy´sledky. Lze nastavit, aby ra´mec s dokumentem prˇ´ıpadneˇ se seznamem byl prˇes cele´ okno nebo aby byly videˇt vy´sledky a dokument za´rovenˇ. Dalsˇ´ı mozˇnostı´ je otevı´rat vy´sledky v asociovane´m webove´m prohlı´zˇecˇi. Samozrˇejmostı´ je zvy´razneˇnı´ hledany´ch slov v prohlı´zˇene´m dokumentu a tlacˇ´ıtko pro prˇida´nı´ odkazu do za´lozˇek. Za zmı´nku take´ stojı´ informacˇnı´ prˇehled vyhleda´vacˇu˚, kam se dotaz posı´lal. Zde je uvedeno ktere´ servery nic nevyhledaly a hlavneˇ procˇ tomu tak je (nic nenasˇly, nepodarˇilo se na neˇ prˇipojit, jsou mimo provoz, . . . ). Z vybrany´ch dokumentu˚ si mu˚zˇe uzˇivatel vygenerovat report. Prˇi jeho tvorbeˇ je na vy´beˇr neˇkolik vy´sledny´ch forma´tu˚ (html, cˇisty´ text, . . . ). Vy´sledek se bud’ ulozˇ´ı na disk, nebo posˇle elektronickou posˇtou. V leve´ cˇa´sti okna, kde se vybı´ra´ kategorie vyhleda´va´nı´, se nale´za´ jesˇteˇ neˇkolik polozˇek. V jedne´ z nich je seznam pra´veˇ otevrˇeny´ch projektu˚ (maxima´lneˇ trˇi), v dalsˇ´ı je polozˇka obsahujı´cı´ za´lozˇky (a to od obou nainstalovany´ch prohlı´zˇecˇu˚ – tedy jak Netscape tak MSIE), ulozˇene´ projekty a jizˇ vy´sˇe zmı´neˇne´ reporty a historie dotazu˚. Dalsˇ´ı za´lozˇka – Track – slouzˇ´ı k automaticke´mu vyhleda´va´nı´ novy´ch dokumentu˚, ktere´ odpovı´dajı´ zadane´mu dotazu. Toto je uzˇ ale bohuzˇel rozsˇ´ırˇenı´ placene´ verze te´to aplikace (BullsEye 2 Pro). Odlehcˇena´ verze, ktera´ je zdarma, zobrazuje reklamnı´ bannery a azˇ na neˇkolik na´rocˇneˇjsˇ´ıch rozsˇ´ırˇenı´ je plneˇ funkcˇnı´. Instalace BullsEye 2 prˇida´ neˇkolik „za´stupcu˚“ do operacˇnı´ho syste´mu pro snazsˇ´ı a rychlejsˇ´ı spousˇteˇnı´ aplikace. Konkre´tneˇ do na´strojove´ oblasti hlavnı´ lisˇty (tool tray), do panelu na´stroju˚ nainstalovany´ch prohlı´zˇecˇu˚ (MSIE, Netscape) a do Start menu (Start/Search). Jednou za cˇas (rˇa´doveˇ neˇkolik dnı´) se aplikace zepta´ uzˇivatele, zda nema´ zkontrolovat vy´skyt novy´ch aktualizacı´ a prˇ´ıpadneˇ nabı´dne jejich stazˇenı´ a instalaci. Klady: • Mozˇnost vyuzˇ´ıvat za´kladnı´ spojky a dalsˇ´ı parametry prˇi vytva´rˇenı´ dotazu. • Automaticky´ update. • Podpora e-mailu (zası´la´nı´ reportu). • Integrace do syste´mu. 21
4.3. BABYLON Na´zev a verze Adresa Vy´robce Typ Cena Pozˇadavky
Bulls Eye 2, verze 2.5 http://www.intelliseek.com/prod/bullseye/bullseye.htm IntelliSeek Inc. Bulls Eye 2 – Freeware, Bulls Eye 3 Pro – Free Trial (15 dnı´) Freewarova´ verze – $0, Bulls Eye Plus – $49.99, Bulls Eye 3 Pro – $199 Pentium 300 MHz (a vysˇsˇ´ı), 64 MB RAM, 100 MB volne´ho mı´sta na disku, operacˇnı´ syste´m Microsoft Windows 98, ME, 2000, NT4.0 (SP6), prohlı´zˇecˇ Internet Explorer 5.01 SP1 (a noveˇjsˇ´ı). Tabulka 4.2: Informace o aplikaci Bulls Eye 2
• Napojenı´ na oba internetove´ prohlı´zˇecˇe. • Prˇehledne´ prostrˇedı´. Za´pory: • Pouze 3 soucˇasneˇ otevrˇene´ dotazy. • Nerozsˇirˇitelne´. • Nevyuzˇ´ıva´ plneˇ mozˇnostı´ fulltextu˚. • Shareware (omezena´ funkcˇnost, cena).
4.3
Babylon
Babylon je se od vy´sˇe uvedeny´ch aplikacı´ pomeˇrneˇ lisˇ´ı, ale sta´le jde o desktopovy´ vyhleda´vacˇ, ktery´ ale vyuzˇ´ıva´ encyklopedie, slovnı´ky a glosa´rˇe. Je to interaktivnı´ program, ktery´ okamzˇiteˇ po kliknutı´ na sloveˇ v libovolne´ windows aplikaci zobrazı´ prˇ´ıslusˇnou informaci o tomto vy´razu („instant information @ a click“). Po instalaci se aplikace usı´dlı´ v na´strojove´ lisˇteˇ a cˇeka´, azˇ jej uzˇivatel vyvola´ kla´vesomysˇ´ı zkratkou – prave´ nebo prostrˇednı´ tlacˇ´ıtko mysˇi plus prˇ´ıpadny´ prˇepı´nacˇ (Ctrl, Alt, Shift) – nad slovem, ktere´ chce objasnit. Mu˚zˇe se jednat o zkratku, cizı´ slovo, nezna´my´ vy´raz, na´zev a podobneˇ. Toto slovo se mu˚zˇe vyskytovat kdekoliv – ve Wordu, Za´pisnı´ku, v libovolne´m dialogu, ba dokonce jako na´zev tlacˇ´ıtka cˇi okna. Po kliknutı´ se objevı´ male´ okno (Obra´zek 4.3), ve ktere´m se program pokusı´ objasnit vy´znam dane´ho slova za pouzˇitı´ dostupny´ch glosa´rˇu˚. Kromeˇ glosa´rˇu˚ vyuzˇ´ıva´ i slovnı´ky prˇekla´dajı´cı´ mezi hlavnı´mi jazyky. Seznam slovnı´ku˚ a glosa´rˇu˚ se nacha´zı´ na webu vy´robce, kde jsou prˇehledneˇ roztrˇ´ıdeˇne´ do jednotlivy´ch kategoriı´ a podkategoriı´. Mezi dalsˇ´ı funkce, ktery´mi tato aplikace disponuje, patrˇ´ı prˇevody jednotek, zahranicˇnı´ch meˇn, cˇasovy´ch pa´sem (byl-li naprˇ´ıklad vyvola´n nad heslem „24 cm“ nabı´dne ihned konverzi centimetru˚ na jine´ de´lkove´ jednotky) a spra´vna´ vy´slovnost uzˇivatelem zkoumane´ho slova cˇi zkratky. Prima´rnı´ glosa´rˇe a slovnı´ky (ty, ktere´ se pouzˇijı´ prˇi prvnı´m vyhleda´va´nı´ vy´znamu zkoumane´ho slova) lze vyuzˇ´ıvat i bez stahova´nı´ (stacˇ´ı si je zaregistrovat). Pokud jsou 22
4.3. BABYLON
Obra´zek 4.3: Babylon
23
4.3. BABYLON ulozˇene´ na disku, pracuje program i bez prˇipojenı´ na Internet – uzˇivatel tı´m zı´ska´ rychlejsˇ´ı vyhleda´va´nı´, ale prˇijde o nejaktua´lneˇjsˇ´ı zmeˇny a mı´sto na disku). Jednotlive´ glosa´rˇe lze tedy prˇida´vat, ubı´rat, pokud jsou jen zaregistrovane´, tak i sta´hnout na disk, deaktivovat je a pozdeˇji znovu aktivovat, ohodnotit, prˇ´ıpadneˇ rovnou napsat autorovi neˇkolik pozna´mek. Nestacˇ´ı-li nabı´zene´ slovnı´ky, je mozˇnost vytvorˇit si vlastnı´ a da´t jej ostatnı´m k dispozici. K tomu je zapotrˇebı´ pouze Babylon Builder, ktery´ je zdarma dostupny´ na stra´nka´ch tohoto produktu. Nebylo -li hledane´ slovo nalezeno v zˇa´dne´m slovnı´ku (prˇ´ıpadneˇ nenı´-li uzˇivatel s vy´sledkem spokojen), mu˚zˇe jesˇteˇ zkusit sˇteˇstı´ v hleda´nı´ pomocı´ webovy´ch vyhleda´vacˇu˚, ktere´ jsou take´ k dispozici. Vy´sledkem je zobrazenı´ stra´nky s vy´sledky v internetove´m prohlı´zˇecˇi. Nalezene´ vy´klady hledany´ch slov lze pro pozdeˇjsˇ´ı pouzˇitı´ ulozˇit do specia´lnı´ slozˇky a snadno se k nim vra´tit. Na´zev a verze Adresa Vy´robce Typ Cena
Babylon, verze 3.1b http://www.babylon.com/ Babylon Ltd. Free Trial verze, 30 dnı´ Babylon-Pro $17.95 Tabulka 4.3: Informace o aplikaci Babylon
Klady: • Mala´ rychla´ aplikace, ktera´ je kdykoliv k dispozici, snadna´ aktivace. • Mozˇnost vytva´rˇet vlastnı´ slovnı´ky. Za´pory: • Zameˇrˇene´ pouze na vy´klad pojmu, slovnı´ky. • Shareware (omezena´ doba funkcˇnosti, cena).
24
Kapitola 5 Programa´torska´ dokumentace (implementace) 5.1
Vy´voj architektury
Pu˚vodnı´ na´vrh aplikace byl pomeˇrneˇ jednoduchy´ a pocˇ´ıtal s tı´m, zˇe se vlastnı´ program bude skla´dat z uzˇivatelske´ho prostrˇedı´ a DLL knihoven, ktere´ budou slouzˇit pro komunikaci s jednotlivy´mi servery (Obra´zek 5.1). Tyto knihovny budou napojeny na cı´love´ DIS servery, prˇ´ıpadneˇ webove´ vyhleda´vacı´ sluzˇby typu Altavista, Google, Serge a dalsˇ´ı. Propojenı´ mezi vlastnı´m uzˇivatelsky´m prostrˇedı´m a DLL knihovnami zajisˇt’uje spolecˇny´ interface obsahujı´cı´ za´kladnı´ objekty pro komunikaci. Aby byl syste´m da´le snadno rozsˇirˇitelny´, budou DLL knihovny linkova´ny dynamicky, tedy pro rozsˇ´ırˇenı´ mozˇnostı´ aplikace o dalsˇ´ı cı´lovy´ server stacˇ´ı dodat prˇ´ıslusˇnou DLL knihovnu implementujı´cı´ funkce rozhranı´ (zejme´na jde o definici parametru˚ nastavenı´ serveru, dotazu, vlastnı´ vyhleda´va´nı´, zı´ska´nı´ dokumentu, definova´nı´ zpu˚sobu zobrazenı´ dokumentu atd.). Pozdeˇji se tato architektura uka´zala nevy´hodna´ zejme´na z du˚vodu dalsˇ´ıho vyuzˇitı´. Proto byla vlastnı´ aplikace rozdeˇlena do dvou modulu˚ (Obra´zek 5.2). DISEngine Vlastnı´ ja´dro, ktere´ se stara´ o komunikaci s DLL knihovnami, vytvorˇenı´ dotazu vyuzˇ´ıvajı´cı´ zadane´ servery, vyhleda´va´nı´ prˇ´ıslusˇny´ch dokumentu˚ na za´kladeˇ parametru˚ dotazu, ukla´da´nı´ a nacˇ´ıta´nı´ dotazu˚ a dokumentu˚ na disk, . . . GUI Graficke´ uzˇivatelske´ rozhranı´ zajisˇt’uje komunikaci s uzˇivatelem. Jedna´ se o prˇ´ıveˇtive´ uzˇivatelske´ prostrˇedı´, ktere´ zprˇ´ıstupnˇuje uzˇivateli aplikace vesˇkere´ mozˇnostı´ ja´dra (DISEngine). V budoucnu mı´sto tohoto modulu mu˚zˇe by´t implementova´n jiny´. Dı´ky tomuto rozdeˇlenı´ lze snadno vytvorˇit jiny´ modul chovajı´cı´ se jako webova´ sluzˇba. Na rozdı´l od beˇzˇny´ch metavyhleda´vacˇu˚ nebude vyuzˇ´ıvat pouze klasicke´ webove´ vyhleda´vacˇe, ale i dalsˇ´ı servery (Oracle a jine´ databa´ze, soubory na disku, e-mailove´ konference ulozˇene´ v posˇtovnı´m klientu, . . . ). Tento modul bude prˇijı´mat pozˇadavky na vyhleda´va´nı´, ktere´ prˇijdou ze sı´teˇ. Vlastnı´ dotaz bude obsazˇen v cˇa´sti URL adresy a jako odpoveˇd’ se bude zası´lat HTML stra´nka obsahujı´cı´ seznam nalezeny´ch dokumentu˚.
25
5.1. VY´VOJ ARCHITEKTURY
Obra´zek 5.1: Vy´chozı´ architektura aplikace
26
5.1. VY´VOJ ARCHITEKTURY
Obra´zek 5.2: Fina´lnı´ architektura aplikace
27
5.2. POPIS ROZHRANI´
5.2
Popis rozhranı´
Rozhranı´ (interface) mezi ja´drem aplikace (DISEngine) a uzˇivatelsky´m prostrˇedı´m tvorˇ´ı knihovna definujı´cı´ objekty, ktere´ si tyto moduly prˇeda´vajı´. Prapu˚vodnı´ interface byl znacˇneˇ jednoduchy´ a nedomysˇleny´ (Obra´zek 5.3).
Obra´zek 5.3: Prapu˚vodnı´ popis rozhranı´ Fina´lnı´ verze rozhranı´ obsahuje mnoho novy´ch objektu˚, ktere´ se v prvnı´ verzi nevyskytovaly (Obra´zek 5.4 a 5.5). Blizˇsˇ´ı vysveˇtlenı´ funkcı´ jednotlivy´ch komponent rozhranı´ na´sleduje v dalsˇ´ım textu.
5.2.1
Syste´m parametru˚
Pro specifikaci dotazu˚ a nastavenı´ jednotlivy´ch serveru˚ bylo trˇeba vybudovat syste´m parametru˚. Bylo neˇkolik alternativ, jak tento syste´m vytvorˇit: • Obecny´ syste´m – v ja´drˇe aplikace by byly nadefinovane´ vsˇechny mozˇne´ parametry dotazu, ktere´ majı´ smysl. Prˇi editaci by se uzˇivateli tyto parametry zobrazily a on by je vyplnil. Seznam by pak dostaly vsˇechny servery a ty by vyuzˇily jen parametry, ktere´ samy podporujı´. Nevy´hody tohoto syste´mu jsou zrˇejme´ – ma´lo flexibilnı´, moc omezene´ a da´le nerozsˇirˇitelne´. Na jednu stranu by syste´m obsahoval zbytecˇne´ mnozˇstvı´ parametru˚, ktere´ zˇa´dny´ server nevyuzˇije (a uzˇivatel by je tedy vyplnˇoval zcela zbytecˇneˇ). Na stranu druhou by tento syste´m nebyl u´plny´ – vzˇdy by se nasˇel server s parametrem, ktery´ tento syste´m neobsahuje.
28
5.2. POPIS ROZHRANI´
Obra´zek 5.4: Objekty rozhranı´ 29
5.2. POPIS ROZHRANI´
Obra´zek 5.5: Objekty rozhranı´
30
5.2. POPIS ROZHRANI´ • Parametry definovane´ v DLL knihovna´ch. Tento syste´m by byl velmi flexibilnı´, bylo by mozˇne´ nadefinovat libovolny´ parametr. Nevy´hodou je, zˇe kazˇda´ DLL knihovna bude zbytecˇneˇ znovu definovat existujı´cı´ parametry. V tomto prˇ´ıpadeˇ jsou dveˇ mozˇnosti, jak definovat seznam parametru˚ pro uzˇivatele. Prvnı´ mozˇnostı´ je udeˇlat pru˚nik parametru˚, ktere´ nabı´zı´ uzˇivatelem vybrane´ servery, druhou mozˇnostı´ je vytvorˇit jejich sjednocenı´. Nevy´hodou je nejednoznacˇnost – dva servery mu˚zˇou definovat jeden parametr, ktery´ defacto plnı´ stejnou funkci, ru˚zneˇ. Uzˇivatel pak bude nucen tento parametr vyplnˇovat dvakra´t. • Konecˇne´ rˇesˇenı´ – je zalozˇeno na vyuzˇitı´ kladny´ch vlastnostı´ vy´sˇe uvedeny´ch mozˇnostı´. Parametry budou definova´ny v DLL knihovna´ch, ale urcˇita´ mnozˇina nejcˇasteˇjsˇ´ıch a nejobecneˇjsˇ´ıch parametru˚ bude definova´na mimo a bude volneˇ vyuzˇitelna´ vsˇemi knihovnami. Parametry budou jednoznacˇneˇ identifikova´ny a tak nebude proble´m vytvorˇit rozumne´ sjednocenı´ parametru˚ ru˚zny´ch serveru˚ bez ohledu na mı´sto vytvorˇenı´ parametru, bez toho aby se v tomto sjednocenı´ objevily duplicity. Za´kladem je abstraktnı´ objekt TDISParam, od neˇhozˇ je odvozen objekt reprezentujı´cı´ parametr obsahujı´cı´ vlastnı´ hodnotu (TDISScalarParam). Druhy´ odvozeny´ objekt (TDISGroupParam) slouzˇ´ı k seskupenı´ neˇkolika parametru˚ popisujı´cı´ch stejnou vlastnost do skupiny. 5.2.1.1
TDISParam
Mezi za´kladnı´ atributy objektu patrˇ´ı ParamID, ktery´ jednoznacˇneˇ identifikuje parametr. LikeParamID se vyuzˇ´ıva´ prˇi zatrˇ´ıdeˇnı´ parametru do seznamu prˇi jeho vizua´lnı´m zobrazenı´. Caption, Name a HelpStr slouzˇ´ı k popsa´nı´ vy´znamu vlastnı´ho parametru (nebo skupiny). Neˇktere´ parametry lze duplikovat. Jsou to ty, ktere´ majı´ MaxCount veˇtsˇ´ı nezˇ nula. OrdNum uva´dı´ cˇ´ıslo kopie parametru, origina´lnı´ (pu˚vodnı´ parametr, ktery´ byl duplikova´n) parametr ma´ OrdNum = 1. Pole serveru˚ Servers obsahuje seznam serveru˚, ktere´ tento parametr podporujı´ (pouze u parametru˚ na straneˇ aplikace, na straneˇ serveru je tento atribut nastaven na hodnotu nil). 5.2.1.2 TDISScalarParam Tento potomek TParam obsahuje vlastnı´ hodnotu. Ta je obsazˇena v rˇeteˇzcove´m atributu Value. Parametr mu˚zˇe obsahovat hodnotu ru˚zne´ho typu (ValueType): ˇ eteˇzec, prˇ´ıpadneˇ zasˇifrovany´ rˇeteˇzec (pro ulozˇenı´ hesla vtString, vtPassString R a jiny´ch u´daju˚, ktere´ se nesmı´ zobrazovat). vtBoolean Pravdivostnı´ hodnota, je ulozˇena jako rˇeteˇzec „1“ prˇ´ıpadneˇ „0“. vtNumber, vtDecNumber Cˇ´ıslo, prˇ´ıpadneˇ cˇ´ıslo s desetinnou cˇa´rkou.
31
5.2. POPIS ROZHRANI´ vtDate Datum, ktery´ je v rˇeteˇzcove´m atributu Value ulozˇen jako rˇeteˇzec reprezentujı´cı´ cˇ´ıslo s desetinnou cˇa´rkou (stejneˇ jako typ TDateTime obsahuje toto cˇ´ıslo prˇed desetinnou cˇa´rkou pocˇet dnı´ od roku 1899 a za cˇa´rkou cˇa´st dne). vtList Seznam, tedy vy´beˇr z prˇeddefinovany´ch hodnot, ktere´ se nacha´zı´ v poli ListValues. Vlastnı´ hodnota obsahuje index vybrane´ho prvku. 5.2.1.3
TDISGroupParam
Obsahuje pole Scalars da´le nedeˇlitelny´ch parametru˚ typu TDISScalarParam. Tyto parametry spolu souvisı´, proto jsou uvedeny ve skupineˇ (naprˇ´ıklad jme´no a heslo pro prˇihla´sˇenı´ na vzda´leny´ server, nebo datumove´ rozpeˇtı´ pro ulozˇenı´ poslednı´ zmeˇny dokumentu). 5.2.1.4
Implementace parametru˚
Pro snazsˇ´ı vytva´rˇenı´ parametru˚ obsahuje interface neˇkolik konstruktoru˚. Parametry mohou by´t vytva´rˇeny kdekoliv. Neˇktere´ parametry, ktere´ jsou nejbeˇzˇneˇjsˇ´ı (a tedy pro veˇtsˇinu serveru˚ spolecˇne´) jsou definova´ny ve zdrojove´m souboru GlobalParams. Pole teˇchto globa´lnı´ch parametru˚ prˇeda´va´ ja´dro aplikace jednotlivy´m serveru˚m prˇi jejich vytva´rˇenı´. Tyto servery si tak snadno mohou neˇktere´ z nich prˇidat (vytvorˇit si svou kopii) do sve´ho seznamu. Tı´m je zajisˇteˇna jista´ jednoznacˇnost za´kladnı´ch parametru˚. Dalsˇ´ı mozˇnostı´, kde vytva´rˇet parametry, je vlastnı´ server. Tady vznikl proble´m s vy´vojovy´m prostrˇedı´m (Delphi 6 firmy Borland), nebot’ za´kladnı´ metoda objektu TObject:
function InheritsFrom(AClass: TClass): Boolean;
nepracovala spra´vneˇ. V prˇ´ıpadeˇ, zˇe byla tato metoda vola´na v jine´m procesu nezˇ byl objekt vytvorˇen (naprˇ´ıklad pokud byl objekt vytvorˇen v DLL knihovneˇ a pak se testoval jeho typ ˇ esˇenı´m bylo zavedenı´ balı´cˇku obsahujı´cı´ vlastnı´ v aplikaci), vracela chybne´ vy´sledky. R rozhranı´ (DISIfacePackage.bpl), tedy definice vsˇech objektu˚. Tento balı´cˇek musı´ by´t vyuzˇ´ıva´n jak aplikacı´, tak vsˇemi DLL knihovnami (Obra´zek 5.6). Cı´lem implementace bylo, aby syste´m parametru˚ umozˇnˇoval pro libovolny´ server zadat libovolny´ parametr, tedy aby bylo mozˇne´ plneˇ vyuzˇitı´ serveru. Na druhe´ straneˇ byl meˇl ale zajistit uzˇivatelskou prˇ´ıveˇtivost. Rozhodneˇ by nemeˇl nutit uzˇivatele vyplnˇovat pro kazˇdy´ server parametry, ktere´ jsou shodne´ (naprˇ´ıklad termy, ktere´ musı´/nesmı´ hledany´ dokument obsahovat, jazyk dokumentu, . . . ). Proto byla implementova´na metoda na sle´va´nı´ polı´ parametru˚ (GetCommonParams). Vy´sledkem sle´va´nı´ je pole parametru˚, ktere´ obsahuje vsˇechny parametry vsˇech zvoleny´ch serveru˚, ale pokud servery obsahujı´ stejne´ parametry, jsou tyto ve vy´sledne´m seznamu uvedeny pouze jednou. Kazˇdy´ parametr v poli obsahuje seznam serveru˚ (Servers), ktere´ dany´ parametr dodaly. Toto pole ukazatelu˚ pote´ slouzˇ´ı ke zpeˇtne´mu nastavenı´ hodnot na stranu serveru˚ – DLL knihoven (SetCommonParams). Nejdu˚lezˇiteˇjsˇ´ı je funkce, ktera´ rozhoduje o tom, zda dva parametry jsou si rovny (a tedy budou slity do jednoho): 32
5.2. POPIS ROZHRANI´
Obra´zek 5.6: Vyuzˇitı´ balı´cˇku DISIfacePackage
function EqualParams (P1, P2: TDISParam; OrdSensitive: Boolean): boolean;
P1 a P2 jsou porovna´vane´ parametry, OrdSensitive urcˇuje, zda se ma´ prˇi porovna´va´nı´ bra´t v u´vahu jejich atribut OrdNum. Dva parametry jsou shodne´, pokud: • Jsou stejne´ho typu (TDISScalarParam, TDISScalarGroup). • Majı´ stejne´ ParamID. • Jedna´-li se o TDISScalarParam, musı´ mı´t shodny´ typ hodnoty (ValueType). • Jedna´-li se o TDISScalarGroup, musı´ mı´t shodny´ pocˇet skala´rnı´ch parametru˚ a tyto musı´ by´t shodne´. Tato definice mimo jine´ umozˇnˇuje, aby dveˇ ru˚zne´ DLL knihovny implementovaly shodne´ parametry bez toho, aby sdı´lely spolecˇny´ ko´d. Stacˇ´ı zna´t ParamID a typ parametru˚, cozˇ lze snadno zjistit prˇ´ımo v aplikaci. 5.2.1.5 Pole parametru˚ Pro pra´ci s parametry bylo trˇeba vytvorˇit objekt, ktery´ by obsahoval vı´ce parametru˚. K tomu je urcˇen TDISParamList – potomek objektu Delphi TObjectList. Obdobneˇ byly odvozeny objekty pro reprezentaci polı´ (seznamu˚) dalsˇ´ıch pouzˇ´ıvany´ch objektu˚ (serveru˚, dotazu˚, dokumentu˚, chyb, . . . ): TDISServerList, TDISQueryList, TDISDocumentList, TDISErrorList, TDISDocServerInfosList a take´ objekt TDISQueryServerInfosList. Byly implementova´ny dalsˇ´ı potrˇebne´ metody pro vyhleda´va´nı´, trˇ´ıdeˇnı´ a podobneˇ. 33
5.2. POPIS ROZHRANI´ Objekt TDISParamList obsahuje neˇkolik metod, ktere´ stojı´ za povsˇimnutı´.
FindParam(PrimID, SecID, OrdNum: integer; var Prim, Sec: TDISParam): boolean;
Slouzˇ´ı k hleda´nı´ parametru dany´ch vlastnostı´ (PrimID, SecID, OrdNum). PrimID obsahuje ID hledane´ skupiny, nebo skala´rnı´ho parametru, ktery´ nenı´ ve skupineˇ. SecID se pouzˇije pro hleda´nı´ parametru ve skupineˇ. V takove´m prˇ´ıpadeˇ PrimID obsahuje ID skupiny a SecID identifika´tor skala´rnı´ho parametru. OrdNum uda´va´ porˇadove´ cˇ´ıslo. V Prim bude navra´cen ukazatel na hledany´ skala´rnı´ parametr (pokud nenı´ ve skupineˇ), prˇ´ıpadneˇ na skupinu. Sec se pouzˇije v prˇ´ıpadeˇ hleda´nı´ skala´rnı´ho parametru, ktery´ se nacha´zı´ ve skupineˇ (ukazatel na skupinu bude v Prim).
GetParamValue (PrimID, SecID, OrdNum: integer; var Val: string): boolean;
Pokusı´ se najı´t zadany´ parametr a v promeˇnne´ Val vra´tı´ jeho hodnotu.
function EqualParam(AParam: TDISParam; OrdSensitive: Boolean = true): TDISParam;
Nalezne prvnı´ parametr shodny´ s AParam dle vy´sˇe uvedene´ definice v seznamu. 5.2.1.6 Prˇı´klady parametru˚ Parametr pro zada´nı´ slov, ktera´ ma´ hledany´ dokument obsahovat (nejbeˇzˇneˇjsˇ´ı parametr, ktery´ pouzˇ´ıva´ kazˇdy´ server).
TDISScalarParam.Create ( gpsidMainQueryAnd, gpsidMainQueryAnd, ’Musı ´ obsahovat’, ’Musı ´ obsahovat’, ’Slova, ktera ´ dokument musı ´ obsahovat.’, 1, NotCheckVal, NotCheckVal, vtString, ’’ );
34
5.2. POPIS ROZHRANI´ Parametr pro zada´nı´ cˇasove´ho intervalu, kdy byl dokument vytvorˇen, prˇ´ıpadneˇ modifikova´n. Jelikozˇ musı´ parametr obsahovat dva cˇasove´ u´daje, nejedna´ se o jeden skala´rnı´ parametr, ale o skupinu parametru˚. Skupina obsahuje dva skala´ry, ktere´ je nejprve trˇeba vytvorˇit. Scal1 := TDISScalarParam.Create ( gpsidDocDate_From, gpsidDocDate_From, ’Datum od’, ’Od’, ’Poc ˇa ´tek intervalu, kdy byl dokument vytvor ˇen’, 1, NotCheckVal, NotCheckVal, vtDate, ’’ ); Scal2 := TDISScalarParam.Create ( gpsidDocDate_To, gpsidDocDate_To, ’Datum do’, ’Do’, ’Konec intervalu, kdy byl dokument vytvor ˇen’, 1, NotCheckVal, NotCheckVal, vtDate, ’’ ); TDISScalarGroup.Create ( gpgidDocDate, gpgidDocDate, ’Datum dokumentu’, ’Datum modifikace dokumentu’, ˇasovy ’C ´ interval, kdy byl dokument vytvor ˇen’, 1, [Scal1, Scal2] );
5.2.2
Server
5.2.2.1 Struktura DLL knihovny DLL knihovna implementujı´cı´ DIS server musı´ exportovat funkci bez parametru˚, ktera´ vracı´ potomka objektu TDISServersInfo. Tento objekt (TDISServersInfo) slouzˇ´ı ke zjisˇteˇnı´ pocˇtu serveru˚, ktere´ tato knihovna implementuje (metoda GetServerCount), 35
˚ BEˇH POLOZˇENI´ DOTAZU 5.3. PRU a take´ k jejich vytvorˇenı´ metodou GetServer (i, GlobParams), kde i je index vytva´rˇene´ho serveru a GlobParams je pole za´kladnı´ch nejcˇasteˇji pouzˇ´ıvany´ch parametru˚, ktere´ server mu˚zˇe vyuzˇ´ıt (implementovat). Z vy´sˇe uvedene´ho vyply´va´, zˇe jedna DLL knihovna mu˚zˇe obsahovat neˇkolik serveru˚, cozˇ je velmi vy´hodne´. Obvzla´sˇteˇ v okamzˇiku, kdy jsou tyto servery velmi podobne´ a mohou se tak snadno odvodit od spolecˇne´ho prˇedka (jak to bylo provedeno v prˇ´ıpadeˇ implementace webovy´ch fulltextovy´ch vyhleda´vacˇu˚). 5.2.2.2
Vlastnı´ server
Vlastnı´ server je v DLL knihovneˇ implementova´n potomkem objektu TDISServer. Objekt obsahuje jednoduche´ atributy popisujı´cı´ server: jme´no (Name), jeho zkratku pouzˇ´ıvanou ve strucˇneˇjsˇ´ıch vy´pisech (ShortName), cˇ´ıslo verze (Version) a dalsˇ´ı informace (Info). Pro vlastnı´ nastavenı´ serveru slouzˇ´ı pole parametru˚ SettingParams. Obdobne´ pole QueryParams slouzˇ´ı k uchova´nı´ parametru˚ dotazu, jezˇ server poskytuje. Prˇi vlastnı´m vyhodnocenı´ dotazu se pouzˇ´ıva´ instance objektu TDISServerQuery. Pru˚beˇh vlastnı´ho vyhleda´va´nı´ se zobrazuje pomocı´ feedbackove´ funkce ProgressProc. Pokud si uzˇivatel prˇeje zastavit vyhleda´va´nı´, nastavı´ se atribut StopFind na True. Neˇkdy je potrˇeba pouzˇ´ıvat neˇkolik serveru˚ stejne´ho typu. Naprˇ´ıklad v prˇ´ıpadeˇ dat ulozˇeny´ch na neˇkolika serverech Oracle8i interMedia. Toto je rˇesˇene´ vytvorˇenı´m vı´ce kopiı´ serveru˚, ktere´ se budou lisˇit v nastavenı´ (budou mı´t ru˚zne´ adresy, jme´na, hesla, . . . ) a take´ v neˇktery´ch parametrech dotazu. O tom, zda server podporuje vytva´rˇenı´ dalsˇ´ıch kopiı´ rozhoduje jeho vlastnost EnableMoreServers. Tyto kopie se pak lisˇ´ı ve sve´m porˇadove´m cˇ´ısle (ServerNum). Pro jednoznacˇnou identifikaci serveru slouzˇ´ı atribut IDName. Z metod stojı´ za zmı´nku Login a Logout pro prˇipojenı´ a odpojenı´ od skutecˇne´ho DIS serveru, QueryCheck pro otestova´nı´ polozˇene´ho dotazu, a Find pro vlastnı´ hleda´nı´. Po zı´ska´nı´ seznamu dokumentu˚ odpovı´dajı´cı´ch dotazu by meˇl sever umeˇt sta´hnout dokumenty na loka´lnı´ disk a zobrazit je. Slouzˇ´ı k tomu metody GetDocFileName (zjisˇteˇnı´ jme´na dokumentu z objektu TDISDocument), SaveDoc (zı´ska´nı´ dokumentu a jeho ulozˇenı´ na disk) a GetOpenParams (nastavenı´ parametru˚ pro jeho zobrazenı´ v asociovane´ aplikaci funkcı´ ShellExecute).
5.3
Pru˚beˇh polozˇenı´ dotazu
Ja´dro aplikace (DISEngine, jeho objekty viz Obra´zek 5.7) prˇi prˇihla´sˇenı´ uzˇivatele vytvorˇ´ı seznam dostupny´ch DLL knihoven (tyto se musı´ nacha´zet v podadresa´rˇi Servers). Jedna knihovna mu˚zˇe obsahovat i neˇkolik ru˚zny´ch serveru˚. Jejich pocˇet a instance se zı´skajı´ prˇes potomka objektu TDISServersInfo (viz Oddı´l 5.2.2.1). Neˇktere´ servery mohou mı´t navı´c dalsˇ´ı kopie (viz Oddı´l 5.2.2.2). Z teˇchto serveru˚ se zı´ska´ jejich pole nastavovacı´ch parametru˚ (SettingParams), ze ktery´ch se poskla´da´ globa´lnı´ seznam parametru˚ nastavenı´ vsˇech serveru˚. Tento seznam neobsahuje zˇa´dne´ hodnoty. Ze sekce Global/ServersSetting ini souboru uzˇivatele (User.ini) se nacˇtou vsˇechny drˇ´ıve ulozˇene´ hodnoty tohoto seznamu. Nastavene´
36
˚ BEˇH POLOZˇENI´ DOTAZU 5.3. PRU
Obra´zek 5.7: Objekty ja´dra aplikace (DISEngine)
37
˚ BEˇH POLOZˇENI´ DOTAZU 5.3. PRU parametry se prˇekopı´rujı´ do loka´lnı´ch polı´ prˇ´ıslusˇny´ch serveru˚. Nynı´ je aplikace prˇipravena pro vyhodnocova´nı´ uzˇivatelovy´ch dotazu˚. Pro vytvorˇenı´ pra´zdne´ho dotazu je nutno zavolat metodu CreateNewQuery objektu TDISEngine. Prvnı´m parametrem je identifika´tor dotazu, ze ktere´ho se odvozuje (odvozenı´ slouzˇ´ı k prˇekopı´rova´nı´ hodnot z pu˚vodnı´ho dotazu, dojde vlastneˇ k vytvorˇenı´ kopie dotazu), prˇ´ıpadneˇ nil, pokud se jedna´ o zcela novy´ dotaz. Druhy´m parametrem je seznam serveru˚, ktere´ ma´ dotaz vyuzˇ´ıt. Tyto servery se prˇekopı´rujı´ do prˇ´ıslusˇne´ho seznamu QServers v noveˇ vytvorˇene´m objektu TDISQuery. Poslednı´m krokem vytvorˇenı´ nove´ho dotazu je zı´ska´nı´ seznamu parametru˚. Ten se zı´ska´ zavola´nı´m metody GetCommonParams.
Obra´zek 5.8: Sestavenı´ pole parametru˚ dotazu
38
˚ BEˇH POLOZˇENI´ DOTAZU 5.3. PRU Nynı´ je na uzˇivateli, aby vyplnil vlastnosti a dalsˇ´ı parametry dotazu. Prˇi tom ma´ sta´le mozˇnost prˇida´vat (TDISQuery.AddServer) a ubı´rat (TDISQuery.RemoveServer) servery, ktery´ch se bude dotaz ty´kat. Po kazˇde´ zmeˇneˇ seznamu serveru˚ je trˇeba prˇidat nove´ parametry, cˇi naopak odstranit prˇebytecˇne´. Tady je jesˇteˇ nutno poznamenat, zˇe prˇi prˇida´va´nı´ serveru je nejdrˇ´ıve nutne´ se na tento server prˇipojit vola´nı´m jeho metody Login. U neˇktery´ch serveru˚, kde nenı´ potrˇeba se prˇihla´sit (naprˇ´ıklad webove´ vyhleda´vacˇe), je tato metoda pra´zdna´. Pokud je vola´nı´ neu´speˇsˇne´, server nebude prˇida´n. Po ukoncˇenı´ editace se zkontrolujı´ uzˇivatelem zadane´ u´daje za pomoci metody ja´dra TDISEngine.QueryCheck. Jelikozˇ je kontrola parametru˚ za´visla´ na zvoleny´ch serverech, vyplnı´ tato metoda serverove´ objekty Query parametry dotazu a pote´ zavola´ QueryCheck jednotlivy´ch serveru˚ a zı´ska´ pole prˇ´ıpadny´ch chyb (TDISErrMsgList), ktere´ zobrazı´ uzˇivateli. Vlastnı´ vyhleda´va´nı´ je pomeˇrneˇ jednoduche´. Nastavı´ se parametry dotazu na straneˇ serveru (objekt Query typu TDISServerQuery) a pro kazˇdy´ server se vytvorˇ´ı hledacı´ vla´kno (TDISFindThread) s parametry: porˇadı´ serveru, zpeˇtneˇ volana´ funkce pro zobrazenı´ postupu hleda´nı´ GProgressProc, dalsˇ´ı zpeˇtneˇ volana´ funkce, ktera´ se vola´ prˇi skoncˇenı´ vyhleda´va´nı´ EndThreadProc a odkaz na prˇ´ıslusˇny´ server. Hledacı´ vla´kno okamzˇiteˇ po sve´m vytvorˇenı´ zacˇne vyhleda´vat, cozˇ spocˇ´ıva´ v zavola´nı´ metody Find prˇideˇlene´ho serveru a prˇeda´nı´ funkce na zobrazova´nı´ pru˚beˇhu. Prˇi ukoncˇenı´ aktivity vla´kna (vyhleda´va´nı´) se zavola´ metoda EndThreadProc. Pru˚beˇh hleda´nı´ lze take´ prˇedcˇasneˇ ukoncˇit nastavenı´m atributu StopFind = True serveru. Po ukoncˇenı´ hleda´nı´ server prˇipravı´ pole nalezeny´ch dokumentu˚ (ne vzˇdy je to tak trivia´lnı´ – viz Oddı´l 5.5.1). Pokud cı´lovy´ DIS server podporuje ohodnocenı´, musı´ by´t toto ohodnocenı´ prˇevedeno na procenta. Jakmile vsˇechny servery (vla´kna) ukoncˇily vyhleda´va´nı´, prˇicha´zı´ na rˇadu dalsˇ´ı fa´ze, kterou je zı´ska´nı´ vy´sledku˚. Metoda GetQueryResults projde vsˇechny oslovene´ servery a vytvorˇ´ı si informacˇnı´ objekt typu TDISQueryServerInfo, ktery´ popisuje vy´sledek vyhleda´va´nı´ dane´ho serveru (pocˇet nalezeny´ch dokumentu˚, pocˇet vra´ceny´ch dokumentu˚, pocˇet chyb, dotazovacı´ rˇeteˇzec, dobu trva´nı´ vyhodnocenı´ dotazu a dalsˇ´ı). Vra´tı´-li server neˇjake´ dokumenty, prˇida´ je do seznamu vsˇech nalezeny´ch dokumentu˚. Ale nejdrˇ´ıve zjistı´, zda uzˇ dany´ dokument nenı´ v seznamu obsazˇen (pomocı´ metody TDISDocumentList.EqualDoc). Je-li jizˇ v seznamu, spojı´ dokumenty do jednoho. Tedy prˇepocˇ´ıta´ vy´sledne´ sko´re a porˇadı´ dokumentu a do pole DocServerInfos dokumentu prˇida´ odkaz na dalsˇ´ı server. Nenı´-li v seznamu jesˇteˇ obsazˇen, prˇida´ jej tam a do pole DocServerInfos dokumentu vlozˇ´ı odkaz na informujı´cı´ objekt TDISDocServerInfo (kde je uveden odkaz na server, sko´re a porˇadı´ dosazˇene´ na tomto serveru). Zde nastal proble´m se zpu˚sobem usporˇa´da´va´nı´ dokumnetu˚ na vy´stupu. Jelikozˇ ne kazˇdy´ server vracı´ ohodnocenı´ dokumentu (mı´ru jeho relevantnosti vzhledem k polozˇene´mu dotazu), nelze pouzˇ´ıt sko´re (jak by se potom meˇly zarˇadit neohodonocene´ dokumenty?). Jednı´m z mozˇny´ch rˇesˇenı´ (ktere´ bylo nakonec pouzˇito) bylo vyuzˇitı´ porˇadı´ dokumentu, ktere´ vracı´ kazˇdy´ server. V prˇehledu nalezeny´ch dokumentu˚ tak prˇibyl dalsˇ´ı sloupecˇek informujı´cı´ o celkove´m porˇadı´. Toto Vy´sledne´ porˇadı´ (a stejneˇ tak sko´re) se vypocˇte jako aritmeticky´ pru˚meˇr porˇadı´ (sko´re) dosazˇeny´ch na jednotlivy´ch serverech. Zpu˚sob, jak tento proble´m rˇesˇ´ı ostatnı´ metavyhleda´vacˇe, se bohuzˇel nepodarˇilo zjistit (jejich vy´robci odmı´tli podat blizˇsˇ´ı popis z du˚vodu utajenı´ teˇchto algoritmu˚ prˇed konkurencı´).
39
5.4. APLIKACE
5.4
Aplikace
Pro zobrazova´nı´ nalezeny´ch dokumentu˚ bylo uvazˇova´no o neˇkolika alternativa´ch: • Zobrazenı´ pomocı´ externı´ho webove´ho prohlı´zˇecˇe – nesˇlo by prohlı´zˇet dokumenty jine´ho typu nezˇ HTML stra´nky (snad jen jesˇteˇ neˇktere´ dalsˇ´ı forma´ty v za´vislosti na pluginech nainstalovany´ch do prohlı´zˇecˇe). • Implementace vlastnı´ho prohlı´zˇecˇe v DLL knihovneˇ – zbytecˇneˇ slozˇite´, ma´lo flexibilnı´. Navı´c v prˇ´ıpadeˇ, zˇe mı´sto graficke´ho rozhranı´ by byl modul chovajı´cı´ se jako webova´ sluzˇba, by byl tento prohlı´zˇecˇ naprosto zbytecˇny´. • Zavola´nı´ externı´ho prohlı´zˇecˇe, ktery´ je asociova´n s koncovkou prˇ´ıslusˇne´ho dokumentu – tato mozˇnost se nakonec uka´zala jako optima´lnı´. DLL knihovna serveru, ktery´ dany´ dokument nalezl rozhoduje o jeho koncovce a take´ specifikuje parametry funkce ShellExecute, ktera´ dokument zobrazı´. Nenı´ proto slozˇite´ dodat za´rovenˇ s DLL knihovnou externı´ prohlı´zˇecˇ, ktery´ se bude volat. Dalsˇ´ı proble´m vznikl prˇi rˇesˇenı´ zobrazenı´ seznamu parametru˚ uzˇivateli. Pu˚vodneˇ se uvazˇovalo o jednoduche´m Layout manageru, ktery´ by rˇ´ıdil rozmı´steˇnı´ vstupnı´ch polı´ pro jednotlive´ parametry v dialogu. Toto se za´hy uka´zalo jako velmi slozˇite´ a neprˇehledne´, protozˇe vy´sledny´ seznam mu˚zˇe obsahovat azˇ neˇkolik desı´tek parametru˚ (plus dalsˇ´ı noveˇ vytvorˇene´ kopie). V konecˇne´m rˇesˇenı´ (Obra´zek 5.9) jsou parametry reprezentova´ny jednoduchy´m stromem, ktery´ obsahuje maxima´lneˇ dveˇ u´rovneˇ, ktery´mi jsou jednak vlastnı´ parametr (TDISScalarParam) s hodnotou a prˇ´ıpadneˇ skupina (TDISGroupParam), ktera´ parametr obsahuje. Komponenty pro zada´nı´ dat skupiny parametru˚ jsou v dialogu umı´steˇny jednodusˇe pod sebou. Toto rˇesˇenı´ je velmi prˇehledne´ a elegantnı´. Hodnoty nastaveny´ch parametru˚ lze videˇt prˇ´ımo ve stromeˇ a dialog nenı´ prˇepla´cany´ dı´ky tomu, zˇe se zobrazuje pouze vstupnı´ pole vybrane´ho parametru (prˇ´ıpadneˇ neˇkolik komponent, pokud je parametr soucˇa´stı´ skupiny). Uzˇivatelske´ prostrˇedı´ aplikace neobsahuje mnoho dalsˇ´ıch zajı´mavy´ch technik. Mozˇnosti, ktere´ uzˇivateli nabı´zı´ jsou blı´zˇe popsa´ny v uzˇivatelske´ dokumentaci. Jediny´mi zajı´mavy´mi oblastmi je export seznamu dokumentu˚ a forma´t ukla´da´nı´ dat (nastavenı´ aplikace).
5.4.1
Vy´stupnı´ sˇablony
Seznam nalezeny´ch dokumentu˚, ktery´ aplikace po vyhleda´nı´ zobrazı´ je mozˇne´ ulozˇit do souboru a pozdeˇji znovu nacˇ´ıst. Dalsˇ´ı mozˇnostı´ uchova´nı´ teˇchto dat je export. V soucˇasne´ dobeˇ jsou podporova´ny tyto forma´ty: HTML dokument (html). Vy´pis vygenerovany´ jako HTML stra´nka s pouzˇitı´m kaska´dovy´ch stylu˚. Comma Separated Value (csv). Tento forma´t lze nacˇ´ıst do veˇtsˇiny tabulkovy´ch programu˚ jako je naprˇ´ıklad Microsoft Excel (kde lze s daty da´le pracovat). Jednotlive´ hodnoty jsou ve vy´stupnı´m souboru oddeˇleny cˇa´rkou, veˇty jsou oddeˇleny odrˇa´dkova´nı´m. 40
5.4. APLIKACE
Obra´zek 5.9: Strom parametru˚
41
5.4. APLIKACE Cˇisty´ text (txt). Univerza´lnı´ forma´t. Neobsahuje zˇa´dne´ forma´tovacı´ tagy, vy´stup lze prohlı´zˇet na libovolne´ platformeˇ. Je zde take´ mozˇnost prˇidat dalsˇ´ı sˇablony pro export. Stacˇ´ı vytvorˇit prˇ´ıslusˇny´ textovy´ soubor (jeho popis bude na´sledovat da´le) a ulozˇit jej do podadresa´rˇe Export Templates. Na jeho jme´neˇ a koncovce neza´lezˇ´ı. 5.4.1.1
Popis souboru sˇablony
Sˇablonu exportu tvorˇ´ı jednoduchy´ textovy´ soubor, ktery´ kromeˇ vlastnı´ho forma´tova´nı´ vy´stupnı´ho exportu (naprˇ´ıklad HTML tagy v prˇ´ıpadeˇ HTML exportu) obsahuje i specia´lnı´ tagy, ktere´ aplikace nahradı´ prˇ´ıslusˇny´mi daty. Tyto tagy majı´ na´sledujı´cı´ syntaxi: <#JMENO_TAGU JMENO_ATRIBUTU=’HODNOTA’>
Jme´na mozˇny´ch tagu˚ i s vysveˇtlivkami viz Tabulka 5.1. Rozsˇirˇujı´cı´ atributy jsou pouzˇity pouze u jedine´ho tagu TEMPLATE INFO, ktery´ popisuje sˇablonu a musı´ by´t uveden na same´m zacˇa´tku souboru. Popis jeho atributu˚: Ext Koncovka, s jakou se bude soubor ukla´dat (html, txt, xml, . . . ). Tato koncovka je pomeˇrneˇ du˚lezˇita´, nebot’ to bude vy´chozı´ koncovka, pokud uzˇivatel nezapı´sˇe jinou. Take´ urcˇuje ktery´ prohlı´zˇecˇ se pouzˇije pro zobrazenı´ vy´sledne´ho exportu (dle nastavenı´ asociacı´ v syste´mu). Name Jme´no (mu˚zˇe by´t i s kra´tky´m komenta´rˇem), pod jaky´m bude sˇablona uvedena v seznamu dostupny´ch forma´tu˚ pro export.
5.4.2
INI soubory
Pro cˇitelne´ ukla´da´nı´ nastavenı´ aplikace, historie dotazu˚ a seznamu˚ nalezeny´ch dokumentu˚ bylo rozhodnuto pouzˇ´ıvat neˇjakou formu textove´ho souboru. Trˇ´ıda TIniFile implementovana´ ve vy´vojove´m prostrˇedı´ Delphi od jeho prvnı´ verze se za´hy uka´zala jako nedostatecˇna´ z neˇkolika du˚vodu˚: • Omezena´ velikost ukla´dany´ch dat. • Operace byly velmi pomale´. • Pouze dvou u´rovnˇova´ struktura ukla´dany´ch dat (sekce a vlastnı´ hodnoty). Proto byla vytvorˇena nova´ trˇ´ıda TSetFile, ktera´ vsˇechny vy´sˇe uvedene´ nedostatky plneˇ odstranˇuje: nenı´ omezena velikostı´ dat, operace jsou podstatneˇ rychlejsˇ´ı (za pomoci optimalizace) a umozˇnˇuje ukla´dat trˇ´ı-u´rovnˇovou strukturu dat (sekce, podsekce, vlastnı´ hodnota). Trˇ´ıda TSetFile umozˇnˇuje nacˇ´ıtat a ukla´dat promeˇnne´ typu Integer, Boolean, Extended, TDateTime a String (pro rˇeteˇzec je urcˇena jesˇteˇ jedna metoda na ukla´da´nı´ „dlouhe´ho“ rˇeteˇzce, ktery´ mu˚zˇe obsahovat odrˇa´dkova´nı´) 42
5.4. APLIKACE
Na´zev tagu ACT DATE USER NAME DOC COUNT QNAME QCREATED QEDITED QSEARCHED
Vy´znam Aktua´lnı´ datum a cˇas (tedy datum a cˇas exportu) Jme´no aktua´lneˇ prˇihla´sˇene´ho uzˇivatele Pocˇet nalezeny´ch dokumentu˚ Na´zev dotazu Datum a cˇas vytvorˇenı´ dotazu Datum a cˇas poslednı´ modifikace dotazu Datum a cˇas poslednı´ho vyhleda´va´nı´ dokumentu˚ odpovı´dajı´cı´ch dotazu QTOTAL COUNT Maxima´lnı´ pocˇet nalezeny´ch dokumentu˚ z jednoho serveru QSERVER COUNT Pocˇet dotazem vyuzˇ´ıvany´ch serveru˚ QSERVERS Seznam serveru˚, ktere´ dotaz pouzˇ´ıva´ pro vyhleda´va´nı´ QNOTE Pozna´mka k dotazu DNUM Aktua´lnı´ cˇ´ıslo dokumentu DNAME Na´zev dokumentu DLOCATION Lokace dokumentu DSCORE Celkove´ sko´re dosazˇene´ dokumentem DORDNUM Celkove´ porˇadı´ dokumentu DCREATED Datum vytvorˇenı´ dokumentu DMODIFIED Datum poslednı´ zmeˇny dokumentu DEXTRACT Uka´zka z dokumentu DNOTE Pozna´mka k dokumentu DSERVERINFOS Informace o hodnocenı´ dokumentu servery, ktere´ jej nalezly TEMPLATE INFO Tag popisujı´cı´ vlastnı´ sˇablonu, musı´ by´t uveden na zacˇa´tku souboru (tedy jako prvnı´ tag), ma´ dva atributy. LIST BEGIN Tag oznacˇujı´cı´ zacˇa´tek smycˇky, ktera´ obsahuje vsˇechny nalezene´ dokumenty. Mezi tagy LIST BEGIN a LIST END by meˇly by´t uvedeny tagy popisujı´cı´ dokument, ktere´ budou nahrazeny skutecˇny´mi vlastnostmi nalezeny´ch dokumentu˚. LIST END Konec smycˇky dokumentu˚ Tabulka 5.1: Na´zvy a popisy tagu˚ sˇablony
43
˚ 5.5. IMPLEMENTACE JEDNOTLIVY´CH SERVERU Vesˇkera´ data souboru se nacˇtou metodou Load do pameˇti, konkre´tneˇ do objektu TStringList, kde se jednotlive´ rˇa´dky prˇevedou na vnitrˇnı´ strukturu, ktera´ je optima´lneˇjsˇ´ı pro dalsˇ´ı pra´ci. To spocˇ´ıva´ mimo jine´ ve zrusˇenı´ uvozujı´cı´ch mezer a vypusˇteˇnı´ prˇebytecˇny´ch dat (pra´zdne´ rˇa´dky a komenta´rˇe). V kazˇde´m rˇa´dku vnitrˇnı´ struktury je na zacˇa´tku uvedeno jme´no hlavnı´ sekce a podsekce, pote´ na´sleduje jme´no atributu a vlastnı´ hodnota. Prˇ´ıklad prˇevodu dat na vnitrˇnı´ strukturu: Data v ulozˇene´m souboru: ; ------------------------------; Toto je INI soubor uzivatele ; ------------------------------[[Application]] [Window] Left=50 Top=62 Width=923 Height=644 [[Global]] [DuplServers] ServerCount=1 ServerClass0=TDISOracleServer Data ve vnitrˇnı´ strukturˇe: [Application][Window] [Application][Window]Left=50 [Application][Window]Top=62 [Application][Window]Width=923 [Application][Window]Height=644 [Global][DuplServers]ServerCount=1 [Global][DuplServers]ServerClass0=TDISOracleServer Jelikozˇ se tento forma´t pouzˇ´ıva´ prˇeva´zˇneˇ pro ukla´da´nı´ nastavenı´, je vysoce pravdeˇpodobne´, zˇe data se budou cˇ´ıst v tom porˇadı´, v jake´m jsou ulozˇena. Proto zde byla zavedena optimalizace spocˇ´ıvajı´cı´ v zapamatova´nı´ poslednı´ pozice, kde se data cˇetla. Prˇi dalsˇ´ım pozˇadavku se data hledajı´ od te´to pozice da´le, a teprve v prˇ´ıpadeˇ neu´speˇchu se zacˇne hledat od zacˇa´tku.
5.5 Implementace jednotlivy´ch serveru˚ 5.5.1
Implementace webovy´ch vyhleda´vacˇu˚
Pro realizaci webovy´ch fulltextovy´ch vyhleda´vacˇu˚ byl vytvorˇen TDISWebServer, ze ktere´ho se odvozujı´ objekty pro konkre´tnı´ servery (TDISAltavistaWebServer, TDISCentrumWebServer a TDISGoogleWebServer).
44
˚ 5.5. IMPLEMENTACE JEDNOTLIVY´CH SERVERU
Obra´zek 5.10: Implementace serveru˚
45
˚ 5.5. IMPLEMENTACE JEDNOTLIVY´CH SERVERU Hlavnı´m u´kolem tohoto objektu je komunikace s prˇ´ıslusˇny´m WWW serverem prˇes protokol HTTP (HyperText Transfer Protocol). Tuto komunikaci zajisˇt’ujı´ komponenty TIdHTTP a TIdLogDebug vy´vojove´ho na´stroje Delphi 6. Jelikozˇ TDISWebServer je jen meziobjekt, necha´va´ veˇtsˇinu du˚lezˇity´ch metod pra´zdnou, implementuje pouze spolecˇnou cˇa´st pro vsˇechny webove´ vyhleda´vacˇe: • Komunikace se serverem. • Zı´ska´nı´ (stazˇenı´) stra´nky ze serveru (SaveDoc). • Vytvorˇenı´ neˇktery´ch za´kladnı´ch spolecˇny´ch parametru˚ pro nastavenı´ serveru (nastavenı´ proxy) a pro dotaz. • Kontroly spolecˇny´ch parametru˚ (QueryCheck). • Metodu pro vlastnı´ vyhleda´va´nı´ a zı´ska´va´nı´ adekva´tnı´ch dokumentu˚. • Pomocne´ procedury pro pra´ci s cˇasto pouzˇ´ıvany´mi parametry. Ostatnı´ metody musı´ by´t implementova´ny azˇ u jednotlivy´ch potomku˚: • Vytvorˇenı´ parametru˚ specificky´ch pro dany´ server. • Kontrola teˇchto specificky´ch parametru˚. • Vytvorˇenı´ dotazove´ho rˇeteˇzce (tedy poskla´da´nı´ URL adresy smeˇrˇujı´cı´ na webovy´ vyhleda´vacˇ a obsahujı´cı´ vsˇechny prˇ´ıslusˇne´ parametry dotazu). • Vypreparova´nı´ vlastnı´ch hodnot z vra´cene´ HTML stra´nky za pomoci objektu TTextParser. 5.5.1.1 Parser Prˇi vyuzˇ´ıva´nı´ webovy´ch fulltextovy´ch vyhleda´vacˇu˚ vznikl proble´m, jak zı´skat informace, ktere´ jsou obsazˇeny v odpoveˇdnı´ stra´nce mezi dalsˇ´ım balastem, jezˇ tato stra´nka obsahuje. Proble´m byl vyrˇesˇen textovy´m parserem TTextParser s externı´m konfiguracˇnı´m souborem, ktery´ umozˇnˇuje snadno a pruzˇneˇ reagovat na zmeˇnu struktury stra´nky s vy´sledky (postacˇ´ı zmeˇnit neˇkolik rˇeteˇzcu˚). Vlastnı´ objekt TTextParser obsahuje pole objektu˚ typu TTokenGroup. Kazˇda´ skupina (TTokenGroup) se skla´da´ z neˇkolika (samozrˇejmeˇ mu˚zˇe obsahovat i jen jeden samotny´ token) tokenu˚ (TToken). Token je nejmensˇ´ı jednotka, prˇedstavujı´cı´ hledanou informaci v textove´m rˇeteˇzci. Skla´da´ se z teˇchto polozˇek (Obra´zek 5.11): Name Jme´no (identifika´tor) tokenu, du˚lezˇite´ prˇi zaveˇrecˇne´m zı´ska´va´nı´ dat z parseru. Value Vlastnı´ hodnota (u´daj, ktery´ je trˇeba zı´skat ze vstupnı´ho rˇeteˇzce). Mandatory Povinnost tokenu, vyuzˇije se prˇi parsovanı´ cele´ skupiny. Jestlizˇe skupina po naparsova´nı´ nezı´skala hodnotu tokenu, ktery´ ma´ nastaven Mandatory=True, pak cela´ skupina prˇi zı´ska´va´nı´ dat selhala. ˇ eteˇzec, ktery´ uvozuje vlastnı´ hodnotu Value, tedy rˇeteˇzec ve vstupnı´m StartTag R textu, za ktery´m na´sledujı´ du˚lezˇita´ data, ktera´ je trˇeba zı´skat. 46
˚ 5.5. IMPLEMENTACE JEDNOTLIVY´CH SERVERU EndTag Opak StartTagu – rˇeteˇzec, ktery´ se nacha´zı´ za du˚lezˇity´mi daty a oznacˇuje tak jejich konec. StopTag Pokud se prˇi parsova´nı´ textu za vlastnı´mi daty nenalezne EndTag, obsahoval by token nesmyslna´ data. Prˇ´ıpadneˇ by se EndTag mohl najı´t neˇkde da´le v teˇle dokumentu. StopTag slouzˇ´ı k vymezenı´ oblasti hleda´nı´ EndTagu. Pokud na neˇj Parser narazı´ (prˇi nacˇ´ıta´nı´ dat, tedy azˇ pote´ co nasˇel StartTag), znamena´ to, zˇe hodnota tokenu nebyla nalezena.
Obra´zek 5.11: Graficke´ zna´zorneˇnı´ prvku˚ tokenu v textu Prˇ´ıklad tokenu pro zı´ska´nı´ pocˇtu Altavistou nalezeny´ch stra´nek:
TokenName=”TotalFound” StartTag=”Inclusion\”>We found ” EndTag=” results:
” StopTag=”
”
Skupina Tokenu˚ (TTokenGroup) je urcˇena pro nacˇ´ıta´nı´ mnozˇiny dat, ktera´ se neˇkolikra´t v textu opakuje. Stra´nka, kterou vra´tı´ webovy´ vyhleda´vacˇ, obsahuje neˇkolik jedinecˇny´ch u´daju˚ (naprˇ´ıklad pocˇet vsˇech stra´nek odpovı´dajı´cı´ch polozˇene´mu dotazu) a da´le mnozˇinu u´daju˚, jejichzˇ struktura se neˇkolikra´t opakuje (naprˇ´ıklad informace o nalezeny´ch stra´nka´ch – na´zev, adresa, dosazˇene´ sko´re, uka´zka textu, datum). Neˇktere´ pozˇadovane´ u´daje z te´to mnozˇiny jsou nezbytne´ (URL stra´nky), jine´ jsou nepovinne´ (uka´zka, datum a podobneˇ). Pokud je trˇeba naparsovat jedinecˇny´ u´daj (tento je samozrˇejmeˇ definova´n pomocı´ jednoho tokenu), je pro snazsˇ´ı a jednotnou manipulaci pouzˇita skupina obsahujı´cı´ tento jediny´ token. Atribut ValueParsed skupiny urcˇuje, zda se povedlo prˇi parsova´nı´ nacˇ´ıst hodnotu. Tedy zda se nacˇetly hodnoty pro vsˇechny jejı´ tokeny s atributem Mandatory = True. RepeatCount uda´va´, kolikra´t se tato skupina tokenu˚ v parsovane´m textu opakuje (a tedy kolikra´t po sobeˇ se budou jejı´ hodnoty nacˇ´ıtat). Defaultneˇ je RepeatCount=0, cozˇ znamena´, zˇe se skupina nebude opakovaneˇ nacˇ´ıtat. S RepeatCount souvisı´ dalsˇ´ı atribut SeqNum, ktery´ urcˇuje, o kolika´tou instanci mnozˇiny jde. Hlavnı´ a nejdu˚lezˇiteˇjsˇ´ı metodou je
Parse (S: string; StartPos: integer): integer;
ktera´ projı´zˇdı´ rˇeteˇzec S od pozice StartPos a snazˇ´ı se v neˇm najı´t hranice a obsah tokenu˚ skupiny. K tomu vyuzˇ´ıva´ jednodusˇsˇ´ı metodu 47
˚ 5.5. IMPLEMENTACE JEDNOTLIVY´CH SERVERU
FindToken(S: string; var T: PToken; Start: integer): integer;
pro vyhleda´nı´ tokenu˚ skupiny. Postup je jednoduchy´ – projı´zˇdı´ pole tokenu˚ a hleda´ je v zadane´m textu. Uspeˇje-li prˇ´ı hleda´nı´ tokenu metodou FindToken, pokracˇuje hleda´nı´m dalsˇ´ıho od pozice, kterou tato metoda vra´tila. Neuspeˇje-li, hleda´ dalsˇ´ı token od stejne´ pozice (pokud nenalezeny´ token nebyl povinny´), nebo skoncˇ´ı s nezdarem (byl-li hledany´ token povinny´). Objekt TParser obsahuje pole skupin. Definice teˇchto skupin je bud’ obsazˇena prˇ´ımo v ko´du a vytvorˇ´ı se pomocı´ prˇ´ıslusˇny´ch pomocny´ch metod (Add, AddGroup, InsertGroup) a nebo se jejich struktura nacˇte z textove´ho souboru. V souboru lze pouzˇ´ıvat rˇa´dkove´ komenta´rˇe (vesˇkery´ text za znakem „%“), pro veˇtsˇ´ı prˇehlednost mohou by´t jednotlive´ rˇa´dky indentova´ny a prokla´da´ny pra´zdny´mi rˇa´dky. Kazˇdy´ jednotlivy´ u´daj musı´ by´t zapsa´n na samostatne´m rˇa´dku. Hodnoty tagu˚ (TOKENNAME, STARTTAG, ENDTAG, STOPTAG) nesmı´ volneˇ obsahovat znak „”“ (uvozovky), byl by totizˇ cha´pa´n jako konec rˇeteˇzce. Proto musı´ by´t escapova´n (uvozen znakem „\“). Stejneˇ tak musı´ by´t osˇetrˇen i samotny´ znak „\“. Ma´-li tedy tag obsahovat „\“, musı´ to by´t zapsa´no takto: „\\“. Jelikozˇ forma´t HTML nenı´ citlivy´ na pocˇet mezer cˇi odrˇa´dkova´nı´ ve zdrojove´m textu stra´nky, nenı´ trˇeba tyto znaky (dokonce je zaka´za´no zapsat do tagu odrˇa´dkova´nı´, mezery jsou povoleny) do obsahu tagu zapisovat. Prˇi porovna´va´nı´ jsou vesˇkere´ bı´le´ znaky (mezery, odrˇa´dkova´nı´, tabula´tor) ve vstupnı´m textu i v tagu ignorova´ny. Soubor obsahuje na´sledujı´cı´ klı´cˇova´ slova: TOKEN BEG, TOKEN END Klı´cˇova´ slova oznacˇujı´cı´ zacˇa´tek a konec tokenu. GROUP BEG, GROUP END Klı´cˇova´ slova oznacˇujı´cı´ zacˇa´tek a konec skupiny, skupina obsahuje definice tokenu˚. TOKENNAME, STARTTAG, ENDTAG, STOPTAG, MANDATORY a REPEATCOUNT Vlastnosti skupiny a tokenu˚. Dalsˇ´ı informace viz prˇedchozı´ popis objektu˚. Prˇ´ıklad ini souboru pro parser Altavisty: ;------------------------------------------; ParserSettings pro Altavistu ; Petr Vaclavek 4. 11. 2001 ;------------------------------------------TOKEN_BEG TokenName=”Hledane slovo” StartTag=”- Web Results for: ” EndTag=”” Mandatory=0 TOKEN_END ; Celkovy pocet nalezenych stranek TOKEN_BEG 48
˚ 5.5. IMPLEMENTACE JEDNOTLIVY´CH SERVERU TokenName=”TotalFound” StartTag=”Inclusion\”>We found” % <-- znak ” je escapovan! EndTag=” results:
” Mandatory=1 TOKEN_END ; Jednotlive stranky a informace o˜nich GROUP_BEG RepeatCount=1000 TOKEN_BEG TokenName=”DocURL” StartTag=”onMouseOver=\”status=’” EndTag=”’; return” Mandatory=1 TOKEN_END TOKEN_BEG TokenName=”DocName” StartTag=”true;\”>” EndTag=”” Mandatory=0 TOKEN_END TOKEN_BEG TokenName=”DocExtract” StartTag=”
” EndTag=”
<span” StopTag=”<span” Mandatory=0 TOKEN_END GROUP_END
Po vytvorˇenı´ pole skupin (at’uzˇ pomocı´ vola´nı´ metod nebo nacˇtenı´m struktury ze souboru) je trˇeba naparsovat vstupnı´ text. K tomu je urcˇena hlavnı´ metoda objektu TTextParser:
ParseText (S: string): boolean;
Tato metoda procha´zı´ polem skupin a pokousˇ´ı se je naparsovat. Uspeˇje-li a ma´-li se skupina opakovat (atribut RepeatCount>1), vytvorˇ´ı jejı´ kopii s nizˇsˇ´ım RepeatCount a vysˇsˇ´ım porˇadovy´m cˇ´ıslem SeqNum a opeˇt se ji pokusı´ naparsovat. Neuspeˇje-li, prˇejde na na´sledujı´cı´ skupinu.
49
˚ 5.5. IMPLEMENTACE JEDNOTLIVY´CH SERVERU Ke zjisˇteˇnı´ naparsovany´ch hodnot slouzˇ´ı metoda
GetTokenValue (TokName: string; SNum: integer; var Val: string): TTokenState;
Hledana´ hodnota je identifikova´na na´zvem tokenu a porˇadovy´m cˇ´ıslem skupiny. Na´vratova´ hodnota metody uda´va´, zda byl token nalezen a naparsova´n, cˇi nikoliv. Prˇed dalsˇ´ım parsova´nı´m je trˇeba odstranit kopie opakovany´ch skupin, jezˇ byly vytvorˇene´ minuly´m prohleda´va´nı´m. K tomu je urcˇena metoda ClearTokens.
5.5.2
Implementace Oracle8i interMedia
DLL knihovna implementujı´cı´ Oracle8i interMedia je jedina´, ktera´ vyuzˇ´ıva´ mozˇnosti vytva´rˇet vı´ce kopiı´ serveru. Dı´ky tomu umozˇnˇuje uzˇivateli paralelneˇ vyhleda´vat stejny´ dotaz na neˇkolika Oracle serverech. Parametry, ve ktery´ch se tyto instance odlisˇujı´, se ty´kajı´ zejme´na nastavenı´ (zdroj dat, jme´no, heslo, na´zev serveru) a take´ dotazu (jme´no tabulky, ve ktere´ se bude hledat, mapova´nı´ sloupcu˚ a dalsˇ´ı podmı´nky na atributy tabulky). Kazˇdy´ noveˇ vytvorˇeny´ server musı´ mı´t jine´ (jednoznacˇne´) ID teˇchto parametru˚, proto se prˇi vytva´rˇenı´ serveru vyuzˇije informace o cˇ´ısle instance serveru (ServerNum) a pu˚vodnı´ ID parametru se posune o prˇ´ıslusˇnou konstantu. Navı´c jsou jednotlive´ servery jednoznacˇneˇ identifikova´ny pomocı´ IDName. Komunikaci mezi DLL knihovnou a vlastnı´m Oracle serverem zajisˇt’ujı´ komponenty TADOConnection a TADOQuery. Na rozdı´l od ostatnı´ch implementovany´ch serveru˚ se v tomto prˇ´ıpadeˇ plneˇ vyuzˇ´ıva´ metoda Login. Slouzˇ´ı k vlastnı´mu prˇipojenı´ k serveru (pomocı´ TADOConnection) a take´ k zı´ska´nı´ du˚lezˇity´ch informacı´ o datech zde ulozˇeny´ch. Konkre´tneˇ se jedna´ o zı´ska´nı´ seznamu pouzˇitelny´ch tabulek, nad ktery´mi byl vytvorˇen textovy´ index. K teˇmto tabulka´m jesˇteˇ zjistı´ seznam jejich atributu˚. Vsˇechny uvedene´ u´daje vyplnı´ do prˇ´ıslusˇny´ch parametru˚ dotazu. Vlastnı´ vyhleda´va´nı´ spocˇ´ıva´ ve vytvorˇenı´ klasicke´ho SQL dotazu, ktery´ je zasla´n na server a zpracova´nı´ mnozˇiny za´znamu˚ odpovı´dajı´cı´ch dotazu. Dokumenty (texty, ktere´ jsou prohleda´va´ny) musı´ by´t obsazˇeny v tabulka´ch, nad ktery´mi jsou vytvorˇeny textove´ indexy. Navı´c je v aplikaci podporova´n pouze jeden zpu˚sob ulozˇenı´ textovy´ch dat, a to prˇ´ımo ve sloupecˇku tabulky (jine´ tabulky se v parametru pro vy´beˇr zdroje dat ani neobjevı´). To znamena´, zˇe prˇi vytva´rˇenı´ textove´ho indexu nad tabulkou byl nastaven parametr DATASTORE na DIRECT DATASTORE. Dalsˇ´ı informace o Oracle8i interMedia viz [11] .
50
Kapitola 6 Za´veˇr 6.1
Srovna´nı´ s konkurencˇnı´mi produkty
Jelikozˇ DISClient vyuzˇ´ıva´ pro vlastnı´ hleda´nı´ dokumentu˚ na Internetu fulltextove´ vyhleda´vacˇe, meˇl by uzˇivateli nabı´dnout stejne´ mozˇnosti. To se ty´cˇe jednak parametru˚ dotazu a jednak mozˇnostı´ prostrˇedı´. Parametry lze snadno dı´ky zavedene´mu syste´mu implementovat. S prostrˇedı´m je to horsˇ´ı, nebot’beˇzˇny´ uzˇivatel je zvykly´ na pouzˇ´ıva´nı´ oblı´bene´ho internetove´ho prohlı´zˇecˇe nejen pro vyhleda´va´nı´, ale i pro prohlı´zˇenı´ nalezeny´ch dokumentu˚. Je pro neˇj tedy nezvykle´ zada´vat dotazy v jedne´ aplikaci a vy´sledky si prohlı´zˇet v druhe´. Jednou z mozˇnostı´, jak alesponˇ cˇa´stecˇneˇ simulovat uzˇivateli prostrˇedı´ na jake´ je zvykly´, je zapnutı´ automaticke´ho exportu (Nastavenı´/Export/Automaticky zobrazovat). Vy´sledky se po ukoncˇenı´ vyhleda´va´nı´ exportujı´ do zvolene´ho forma´tu (naprˇ´ıklad HTML stra´nky) a zobrazı´ se v nastavene´m prohlı´zˇecˇi, kde si je mu˚zˇe uzˇivatel libovolneˇ prohlı´zˇet a procha´zet mezi nimi. Jinou mozˇnostı´ je implementace dalsˇ´ıho modulu vyuzˇ´ıvajı´cı´ ja´dro aplikace. Aplikace by se pak chovala jako dalsˇ´ı internetovy´ metavyhleda´vacˇ (viz Oddı´l 5.1 a take´ Obra´zek 5.2). Program vsˇak prˇina´sˇ´ı spoustu dalsˇ´ıch vy´hod a mozˇnostı´: ukla´da´ historii dotazu˚, takzˇe se k nim mu˚zˇe uzˇivatel kdykoliv vra´tit, znovu vyhledat, cˇi prˇ´ımo sta´hnout dokument z drˇ´ıve ulozˇene´ho seznamu. Po vyhleda´nı´ lze s vy´sledky da´le pracovat – ulozˇit seznam, trˇ´ıdit dle ru˚zny´ch krite´riı´ cˇi vyexportovat do libovolne´ho (i vlastnı´ho) textove´ho forma´tu. Navı´c uzˇivatel mu˚zˇe paralelneˇ vyhleda´vat v neˇkolika zdrojı´ch dat (i kdyzˇ to webove´ metavyhleda´vacˇe umozˇnˇujı´ take´) a tyto zdroje nemusı´ by´t pouze fulltexty na Internetu (to uzˇ dostupne´ metavyhleda´vacˇe neumı´). Dı´ky paralelnı´mu zpracova´nı´ je vyhleda´va´nı´ podstatneˇ rychlejsˇ´ı, nezˇ postupne´ rucˇnı´ procha´zenı´ jednotlivy´ch serveru˚ a zada´va´nı´ sta´le stejne´ho dotazu. Ve srovna´nı´ s dostupny´mi desktopovy´mi vyhleda´vacˇi (viz Kapitola 4, Obdobne´ aplikace) patrˇ´ı mezi za´kladnı´ prˇ´ınosy zastoupenı´ cˇesky´ch vyhleda´vacˇu˚, cena (jedna´ se o volneˇ sˇirˇitelny´ program), dostupnost zdrojovy´ch ko´du˚ a hlavneˇ rozsˇirˇitelnost. Kdokoliv mu˚zˇe vytvorˇit novou knihovnu pro vyhleda´va´nı´ nejen pomocı´ dalsˇ´ıch webovy´ch sluzˇeb, ale i pro jake´koliv jine´ zdroje dat (soubory na disku, data emailovy´ch klientu˚, data v databa´zı´ch, knihovnı´ syste´my, . . . ). Navı´c uzˇivatel smı´ vyuzˇ´ıvat te´meˇrˇ vesˇkere´ mozˇnosti, ktere´ nabı´zı´ jednotlive´ vyhleda´vacı´ servery, plneˇ ovlivnit zpu˚sob exportu vy´sledku˚ a podobneˇ. 51
6.2. DALSˇI´ VY´VOJ Na druhou stranu ale DISClient nedisponuje neˇktery´mi funkcemi, ktere´ uvedene´ aplikace obsahujı´: integrace do syste´mu, prohlı´zˇecˇe, vlastnı´ prohlı´zˇecˇ s vestaveˇny´mi vylepsˇenı´mi (naprˇ. zvy´razneˇnı´ hledany´ch slov), agenti na automaticke´ vyhleda´va´nı´ novy´ch dokumentu˚ odpovı´dajı´cı´ch dotazu, kontrola dokumentu (dosazˇitelnost, vlastnı´ explicitnı´ kontrola, zda opravdu vyhovuje dotazu) a dalsˇ´ı. Ovsˇem nenı´ proble´m vy´sˇe uvedene´ chybeˇjı´cı´ vlastnosti do aplikace doprogramovat.
6.2
Dalsˇı´ vy´voj
Aplikaci lze samozrˇejmeˇ da´le vyvı´jet a vytvorˇit tak plnohodnotny´ produkt dosahujı´cı´ (a v mnohy´ch ohledech prˇesahujı´cı´) mozˇnosti komercˇnı´ch aplikacı´. Hlavnı´ mozˇnosti rozsˇ´ırˇenı´ aplikace: • Vytvorˇenı´ novy´ch DLL knihoven pro dalsˇ´ı servery: – Dalsˇ´ı webove´ fulltextove´ vyhleda´vacˇe (Atlas, Excite, MSN, . . . ). – Jine´ webove´ sluzˇby, naprˇ´ıklad hleda´nı´ v diskusnı´ch skupina´ch (Google Groups, Serge), vyhleda´va´nı´ ve slovnı´cı´ch, encyklopediı´ch (Britannica) a dalsˇ´ı. – Vyhleda´va´nı´ dokumentu˚ v dalsˇ´ıch databa´zı´ch (MS SQL, Interbase, Sybase, Informix a podobneˇ). ´ plneˇ nove´ oblasti – fulltextove´ prohleda´va´nı´ souboru˚ na loka´lnı´m disku, – U korespondence v emailovy´ch klientech, . . . • Vylepsˇenı´ sta´vajı´cı´ch DLL knihoven: prˇida´nı´ dalsˇ´ıch parametru˚ zejme´na pro Oracle8i interMedia (naprˇ´ıklad zapojenı´ slovnı´ku, prohleda´va´nı´ v datech, ktere´ nejsou ulozˇeny prˇ´ımo ve sloupecˇku tabulky), vyuzˇitı´ kola´cˇku˚ (cookie) pro nastavenı´ webovy´ch vyhleda´vacˇu˚ (hlavnı´m prˇ´ınosem by bylo zı´ska´nı´ vı´ce informacı´ o nalezeny´ch dokumentech, nebot’tyto vlastnosti je trˇeba nastavit pra´veˇ pomocı´ cookie). • Mı´sto GUI vytvorˇit jiny´ modul, jenzˇ by vyuzˇ´ıval hledacı´ho ja´dra aplikace (DISEngine) viz Obra´zek 5.2. • Mnoho dalsˇ´ıch drobny´ch vylepsˇenı´ uzˇivatelske´ho prostrˇedı´, ktery´mi disponujı´ konkurencˇnı´ produkty (zejme´na jejich placene´ „Plus“ a „Pro“ verze).
6.3 Zhodnocenı´ a za´veˇr Vy´sledkem diplomove´ pra´ce nazvane´ „Klient DIS“ je plnohodnotna´ aplikace, ktera´ umozˇnˇuje uzˇivateli vyhleda´vat v neˇkolika ru˚znorody´ch datovy´ch zdrojı´ch. Velkou vy´hodou je skutecˇnost, zˇe acˇkoliv je program hotovy´, lze jej da´le rozsˇirˇovat, co do rozsahu implementovany´ch funkcı´ v jednotlivy´ch knihovna´ch DLL, tak do mnozˇstvı´ dalsˇ´ıch knihoven, ktere´ si dı´ky univerza´lnı´mu rozhranı´ mu˚zˇe kazˇdy´ vy´voja´rˇ napsat sa´m. Dalsˇ´ım velky´m kladem je oddeˇlenı´ vlastnı´ho ja´dra od uzˇivatelske´ho prostrˇedı´, nenı´ proto proble´m vytvorˇit zcela jinou aplikaci (sluzˇbu) vyuzˇ´ıvajı´cı´ toto „multivyhleda´vacı´ “ ja´dro. 52
6.3. ZHODNOCENI´ A ZA´VEˇR Jeden z hlavnı´ch prˇ´ınosu˚ je rˇesˇenı´ syste´mu parametru˚, ktery´ umozˇnˇuje vy´voja´rˇu˚m implementovat te´meˇrˇ libovolny´ parametr dotazu nove´ho DIS Serveru. Navı´c bylo pomeˇrneˇ elegantneˇ vyrˇesˇeno zobrazenı´ teˇchto parametru˚ uzˇivateli. Prˇi vy´voji byla snaha pokry´t vsˇechny nedostatky zjisˇteˇne´ u obdobny´ch na´stroju˚, ktery´mi byl vy´voj vlastnı´ aplikace znacˇneˇ inspirova´n, cozˇ se z velke´ cˇa´sti podarˇilo.
53
Literatura [1]
Jaroslav Pokorny´: Vy´beˇr informacı´ v textovy´ch ba´zı´ch dat, OVC CˇVUT, srpen 1989.
[2]
Jaroslav Pokorny´, Va´clav Sna´sˇel, and Dusˇan Hu´sek: Dokumentograficke´ informacˇnı´ syste´my, Karolinum, 1998.
[3]
Petr Va´clavek: Klientske´ vyhleda´vacˇe, Softwarove´ noviny 8/2001, strana 74-77.
[4]
Petr Va´clavek: Altavista, Softwarove´ noviny 11/2001, strana 64-67.
[5]
Petr Va´clavek: Fulltextove´ vyhleda´vacˇe, Softwarove´ noviny 12/2001, strana 80-82.
[6]
The Web Robots Pages, http://www.robotstxt.org/wc/robots.html.
[7]
AltaVista, http://www.altavista.com/sites/help.
[8]
Google, http://www.google.com/about.html.
[9]
fulltext.Centrum, http://fulltext.centrum.cz/index.php.
[10]
Megatext, http://www.megatext.cz/popis.htm.
[11]
Oracle8i Online Generic Documentation Library, http://mates.ms.mff.cuni.cz/oracle/doc/ora815nt/.
[12]
Open Directory, http://dmoz.org/help/helpmain.html.
54
Prˇı´loha A Uzˇivatelska´ dokumentace A.1
Prˇedmluva
DISClient je na´stroj slouzˇ´ıcı´ pro snadne´ fulltextove´ vyhleda´va´nı´ nejen pomocı´ zna´my´ch webovy´ch vyhleda´vacˇu˚ jako je naprˇ´ıklad Altavista, Google a podobneˇ, ale umozˇnˇuje take´ prˇida´vat dalsˇ´ı zdroje dat, ktere´ mohou obsahovat hledane´ dokumenty (naprˇ´ıklad data ulozˇena´ na Oracle8i interMedia). Hlavnı´ vy´hodou tohoto syste´mu je pocˇet osloveny´ch serveru˚ a prˇ´ıveˇtive´ prostrˇedı´, ve ktere´m si uzˇivatel definuje svu˚j dotaz. Dı´ky tomu se nemusı´ ucˇit speciality jednotlivy´ch vyhleda´vacı´ch serveru˚ a nemusı´ zna´t syntaxi na nich pokla´dany´ch dotazu˚. Pra´ce je tak podstatneˇ snazsˇ´ı, rychlejsˇ´ı a efektivneˇjsˇ´ı. Dalsˇ´ı vy´hodou je mozˇnost nastavenı´ prostrˇedı´, prˇednastavitelne´ specia´lnı´ funkce jako je naprˇ´ıklad rychle´ hleda´nı´, cˇi export. Nezanedbatelne´ je take´ uchova´va´nı´ historie hleda´nı´ a mozˇnost ulozˇenı´ a exportu vy´sledku˚. Kdykoliv se tak mu˚zˇe uzˇivatel vra´tit ke starsˇ´ımu dotazu a znovu vyhledat odpovı´dajı´cı´ dokumenty nebo jen nacˇ´ıst informace o drˇ´ıve nalezeny´ch dokumentech. Dı´ky tomu, zˇe aplikace vyuzˇ´ıva´ vı´ce zdroju˚ dat, zpracuje podstatneˇ vı´ce (a kvalitneˇji) jejich vy´sledky nezˇ by to provedl samotny´ uzˇivatel postupny´m pouzˇitı´m jednotlivy´ch serveru˚. Aplikace tyto servery oslovuje paralelneˇ a navı´c automaticky filtruje duplicity a umozˇnˇuje usporˇa´da´vat nalezene´ dokumenty. Vesˇkery´ popis pra´ce s aplikacı´ DISClient je na´plnı´ tohoto manua´lu. Pro pochopenı´ je potrˇeba zna´t za´kladnı´ pojmy a mı´t jiste´ znalosti prˇi pra´ci v prostrˇedı´ Microsoft Windows.
A.2
Pozˇadavky
A.2.1
Minima´lnı´ konfigurace
• Procesor kompatibilnı´ s procesorem Pentium 300 MHz. • 5 MB volne´ho mı´sta na pevne´m disku. • Operacˇnı´ syste´m Microsoft Windows 2000. • V prˇ´ıpadeˇ pouzˇ´ıva´nı´ knihovny pro Oracle je potrˇeba mı´t nakonfigurova´n ODBC ovladacˇ pro Oracle 8, odpovı´dajı´cı´ho klienta (ten je soucˇa´stı´ klientske´ instalace 55
A.2. POZˇADAVKY
Obra´zek A.1: Sche´ma pra´ce aplikace DISClient
56
A.3. INSTALACE Oracle) a podpora ADO (Microsoft ActiveX Data Objects) verze 2.1 (nebo vysˇsˇ´ı). Ta je jizˇ soucˇa´stı´ operacˇnı´ch syste´mu˚ Microsoft Windows 2000 a XP. Pro jine´ syste´my ji lze zdarma sta´hnout na stra´nka´ch Microsoftu (http://www.microsoft.com). • Internetove´ prˇipojenı´.
A.2.2
Doporucˇena´ konfigurace
• Procesor kompatibilnı´ s procesorem Pentium III 500 MHz. • Polohovacı´ zarˇ´ızenı´ (mysˇ, tablet, . . . ). • Aplikace pro prohlı´zˇenı´ nalezeny´ch dokumentu˚ a vygenerovany´ch exportu˚. A to zejme´na prohlı´zˇecˇ HTML stra´nek.
A.2.3
Pozna´mky ke starsˇı´m operacˇnı´m syste´mu˚m
Aplikace byla koncipova´na tak, aby beˇzˇela na operacˇnı´m syste´mu Windows 2000 hlavneˇ z du˚vodu chyb v drˇ´ıveˇjsˇ´ıch operacˇnı´ch syste´mech. Zejme´na se jedna´ o velmi cˇaste´ chyby, jezˇ obsahuje knihovna comctrl32.dll, ktery´mi trpı´ zejme´na produkty vytvorˇene´ v Delphi cˇi C++ Builderu. V zˇa´dne´m prˇ´ıpadeˇ tı´m ale nenı´ rˇecˇeno, zˇe by produkt na jine´ platformeˇ nezˇ Windows 2000 nebeˇzˇel, ale pouze to, zˇe tam nemusı´ pracovat tak, jak bylo zamy´sˇleno pra´veˇ dı´ky vy´sˇe zmı´neˇny´m proble´mu˚m.
A.3
Instalace
´ vodnı´ dialog Obra´zek A.2: U Instalace aplikace DIS Client je velmi jednoducha´ a probı´ha´ v neˇkolika ma´lo krocı´ch. Lze ji kdykoliv zastavit tlacˇ´ıtkem Zrusˇit. Uzˇivatel pak bude dota´za´n, zda opravdu chce instalaci ukoncˇit. K dokoncˇenı´ se pak mu˚zˇe kdykoliv vra´tit. 57
A.3. INSTALACE Prvnı´m krokem je spusˇteˇnı´ instalacˇnı´ho souboru DISClient.msi. Po inicializaci se objevı´ u´vodnı´ dialog (Obra´zek A.2). Po stisku tlacˇ´ıtka Dalsˇ´ı se zobrazı´ dialog pro zada´nı´ lokace na disku, kam se ma´ aplikace nainstalovat (Obra´zek A.3). Zmeˇna cı´love´ho adresa´rˇe se provede za pomoci tlacˇ´ıtka Procha´zet.
Obra´zek A.3: Vy´beˇr adresa´rˇe Nynı´ je instala´tor prˇipraven nainstalovat DIS Client na uzˇivatelu˚v disk. (Obra´zek A.4). To spocˇ´ıva´ v nakopı´rova´nı´ souboru˚ do zadane´ho adresa´rˇe, vytvorˇenı´ za´stupce v nabı´dce Start a prˇida´nı´ programu do seznamu nainstalovany´ch aplikacı´ (Start/Nastavenı´/Ovla´dacı´ panely/Prˇidat nebo odebrat programy), odkud lze kdykoliv snadno odinstalovat.
Obra´zek A.4: Instalace prˇipravena Po u´speˇsˇne´ instalaci se objevı´ informacˇnı´ dialog (Obra´zek A.5) a v hlavnı´ nabı´dce syste´mu START/Programy vznikne za´stupce pro spusˇteˇnı´ aplikace. 58
A.4. PRA´CE S APLIKACI´
Obra´zek A.5: Instalace u´speˇsˇneˇ dokoncˇena Nechce-li uzˇivatel instalovat aplikaci standardnı´m zpu˚sobem, postacˇ´ı kdyzˇ z instalacˇnı´ho CD zkopı´ruje adresa´rˇ DISClient na pevny´ disk a spusˇteˇnı´ pote´ provede souborem DISClient.exe. Odinstalova´nı´ aplikace se provede klasicky´m zpu˚sobem – pouzˇitı´m volby Prˇidat nebo odebrat programy z Ovla´dacı´ch panelu˚. Instalacˇnı´ soubor je vytvorˇen pomocı´ nove´ technologie „Windows Installer“. Mı´sto toho, aby kazˇdy´ produkt meˇl vlastnı´ instalacˇnı´ program, je instalace prova´deˇna pomocı´ tzv. instalacˇnı´ databa´ze (soubor s prˇ´ıponou .MSI). Tato databa´ze obsahuje informace o tom, kam se ma´ produkt instalovat, jake´ prˇ´ıpony se majı´ registrovat a dalsˇ´ı. V prˇ´ıpadeˇ instalace produktu na starsˇ´ı operacˇnı´ syste´m, kde jesˇteˇ tato technologie nenı´ zavedena, je potrˇeba ji dodatecˇneˇ nainstalovat (potrˇebny´ instala´tor lze najı´t na stra´nka´ch Microsoftu prˇ´ıpadneˇ na instalacˇnı´m CD v adresa´rˇi Servis, soubor InstMsi.exe).
A.4
Pra´ce s aplikacı´
A.4.1
Popis aplikace
Hlavnı´ okno aplikace (Obra´zek A.6) se skla´da´ z neˇkolika cˇa´stı´: hlavnı´ nabı´dka, nacha´zı´ se v hornı´ cˇa´sti okna. Hned pod nı´ je panel na´stroju˚, ktery´ obsahuje nejcˇasteˇji pouzˇ´ıvane´ akce z hlavnı´ nabı´dky. Panel pro rychle´ vyhleda´va´nı´ se vstupnı´m polı´cˇkem pro zada´nı´ hledane´ho vy´razu a tlacˇ´ıtkem pro vlastnı´ vyhleda´va´nı´. Nejveˇtsˇ´ı cˇa´st okna zabı´ra´ prˇehled dotazu˚ a seznam nalezeny´ch dokumentu˚. ktery´ se va´zˇe k oznacˇene´mu dotazu v prˇehledu. Nejspodneˇjsˇ´ı cˇa´st okna zabı´ra´ stavovy´ rˇa´dek, ktery´ zobrazuje informace o aktua´lneˇ vybrane´m tlacˇ´ıtku v panelu na´stroju˚ nebo o polozˇce v hlavnı´ nabı´dce.
59
A.4. PRA´CE S APLIKACI´
Obra´zek A.6: Hlavnı´ okno aplikace
60
A.4. PRA´CE S APLIKACI´
A.4.2
Prˇihla´sˇenı´
Prvnı´m krokem prˇi pouzˇ´ıva´nı´ aplikace DISClient je prˇihla´sˇenı´ uzˇivatele do syste´mu. Ru˚zne´ uzˇivatelske´ profily umozˇnˇujı´ individua´lnı´ nastavenı´ pracovnı´ho prostrˇedı´, vlastnı´ volbu serveru˚, historii dotazu˚ atd.
Obra´zek A.7: Dialog pro prˇihla´sˇenı´ Prˇi startu aplikace se objevı´ prˇihlasˇovacı´ obrazovka s logem (Obra´zek A.7), ktera´ nabı´zı´ seznam uzˇivatelu˚. Samozrˇejmeˇ je zde take´ mozˇnost vytvorˇit zcela nove´ho uzˇivatele. Jiny´ zpu˚sob prˇihla´sˇenı´ je spusˇteˇnı´ aplikace s parametrem, ktery´ prˇedstavuje jme´no uzˇivatele: ˇIVATEL DISClient.exe UZ
A.4.3
Vytvorˇenı´ a editace dotazu
Jelikozˇ je hlavnı´m posla´nı´m aplikace usnadnit vyhleda´va´nı´, je nejdu˚lezˇiteˇjsˇ´ım prvkem vlastnı´ dotaz. Novy´ dotaz se vytvorˇ´ı za pomoci polozˇky Dotaz/Novy´ dotaz v hlavnı´ nabı´dce, prˇ´ıpadneˇ lze pouzˇ´ıt odpovı´dajı´cı´ tlacˇ´ıtko v panelu na´stroju˚. Prvnı´m krokem je zada´nı´ na´zvu dotazu (ten slouzˇ´ı jen pro jeho identifikaci v seznamu dotazu˚). Zvolenı´ pocˇtu dokumentu˚, ktere´ si prˇi vyhleda´va´nı´ aplikace vyzˇa´da´ od kazˇde´ho oslovene´ho serveru. A prˇ´ıpadneˇ je mozˇne´ zapsat pozna´mku (Obra´zek A.8). Druhy´m krokem je vy´beˇr serveru˚ (Obra´zek A.9), ktere´ budou zadany´ dotaz vyhodnocovat. Neˇktere´ servery se musı´ prˇed vlastnı´m pouzˇitı´m inicializovat (naprˇ´ıklad 61
A.4. PRA´CE S APLIKACI´
Obra´zek A.8: Za´kladnı´ vlastnosti dotazu
Obra´zek A.9: Vy´beˇr serveru˚
62
A.4. PRA´CE S APLIKACI´ Oracle). Toto mu˚zˇe trvat delsˇ´ı dobu, ale deˇje se tak jen prˇi prvnı´m vyuzˇitı´ serveru. Pru˚beˇh prˇipojova´nı´ se zobrazuje ve zvla´sˇtnı´m okneˇ. Podle toho, ktere´ servery zde budou vybra´ny, bude vypadat strom parametru˚ dotazu v dalsˇ´ım kroku.
Obra´zek A.10: Parametry dotazu Na dalsˇ´ı za´lozˇce je zobrazen strom parametru˚ dotazu (Obra´zek A.10). Dotazy jsou dvojı´ho typu. Jednoduche´ prˇedstavujı´cı´ jedinou hodnotu (naprˇ´ıklad parametr „Jazyk“ pro specifikaci jazyku dokumentu) nebo skupinove´. Ty reprezentujı´ skupinu neˇkolika jednoduchy´ch parametru˚ spolecˇneˇ popisujı´cı´ jednu vlastnost hledane´ho dokumentu (naprˇ´ıklad parametr „Datum dokumentu“ pro vymezenı´ intervalu vzniku dokumentu nebo parametr „Slovo v sekci“ popisujı´cı´ ktera´ slova se musı´ prˇ´ıpadneˇ nesmı´ v zadane´ sekci vyskytovat). Po vybra´nı´ parametru se v prostrˇednı´ cˇa´sti okna objevı´ prˇ´ıslusˇna´ editacˇnı´ polı´cˇka pro vyplneˇnı´ jeho hodnoty (hodnot). Neˇkdy je potrˇebne´ vyplnit vı´ce parametru˚ stejne´ho typu. Naprˇ´ıklad prˇi specifikaci vy´sˇe zmı´neˇne´ho parametru „Slovo v sekci“ mu˚zˇe uzˇivatel potrˇebovat zadat jedno slovo, ktere´ se musı´ nacha´zet v urcˇite´ sekci a za´rovenˇ jesˇteˇ chce aby hledany´ dokument neobsahoval neˇjake´ jine´ slovo v jine´ sekci. Toto lze samozrˇejmeˇ u neˇktery´ch parametru˚ (u ktery´ch to ma´ smysl) prove´st. Slouzˇ´ı k tomu jednak polozˇka Prˇidej parametr v kontextove´ nabı´dce parametru, prˇ´ıpadneˇ te´to polozˇce odpovı´dajı´cı´ tlacˇ´ıtko nad stromem. Noveˇ vytvorˇeny´ parametr bude obsahovat stejne´ hodnoty jako origina´l. Libovolny´ noveˇ vytvorˇeny´ parametr, cˇi jeho origina´l, lze obdobneˇ smazat (polozˇka Smazˇ parametr). Poslednı´ dveˇ tlacˇ´ıtka v te´to na´strojove´ lisˇteˇ slouzˇ´ı pro kompletnı´ rozbalenı´ prˇ´ıpadneˇ sbalenı´ stromove´ struktury parametru˚. Prava´ cˇa´st dialogu zobrazuje pomocne´ informace o aktua´lneˇ vybrane´m parametru. Prvnı´ za´lozˇka zobrazuje na´poveˇdu, druha´ prˇehled serveru˚, ktere´ dany´ parametr vyuzˇ´ıvajı´. Vy´beˇr serveru˚ se na tomto mı´steˇ neda´ zmeˇnit, to lze prove´st v dialogu pod za´lozˇkou Pouzˇite´ servery viz prˇedcha´zejı´cı´ krok. V okamzˇiku, kdy je uzˇivatel spokojen s dotazem, potvrdı´ dialog tlacˇ´ıtkem Ok, prˇ´ıpadneˇ Vyhledej (pokud dotaz neobsahuje zˇa´dnou chybu, program se pokusı´ ihned zacˇ´ıt vyhleda´vat). V tomto okamzˇiku se provede kontrola uzˇivatelem zadany´ch dat a 63
A.4. PRA´CE S APLIKACI´ pokud se naleznou neˇjake´ chyby, nabı´dne uzˇivateli jejich zobrazenı´ v poslednı´ za´lozˇce tohoto dialogu (Obra´zek A.11).
Obra´zek A.11: Nalezene´ chyby dotazu Tato poslednı´ za´lozˇka obsahuje seznam chyb a informace o nich (popis, jme´no serveru, jme´no parametru, ktere´ho se ty´ka´ a prˇ´ıpadneˇ dalsˇ´ı informace v pozna´mce – typicky jak bude chybny´ parametr zpracova´n v prˇ´ıpadeˇ, zˇe nebude opraven). Rozhodne-li se uzˇivatel chybu opravit, stacˇ´ı na ni poklepat a dialog se automaticky prˇepne na prˇedchozı´ za´lozˇku a nalezne tento parametr ve stromu. Neobsahuje-li dotaz zˇa´dne´ chyby, je prˇipraven pro vyhleda´nı´ dokumentu˚, ktere´ tomuto dotazu odpovı´dajı´. Dokumenty budou hleda´ny pomocı´ serveru˚, jezˇ byly vybra´ny v druhe´m kroku. Jiny´ zpu˚sob vytvorˇenı´ nove´ho dotazu je jeho odvozenı´ od sta´vajı´cı´ho. Vznikne tı´m totozˇna´ kopie origina´lnı´ho dotazu. Toto je zejme´na vy´hodne´, kdyzˇ se uzˇivatel rozhodne ladit dotaz, ale chce si ponechat jeho kopii, aby se k neˇmu mohl pozdeˇji v prˇ´ıpadeˇ neu´speˇchu vra´tit. Existuje jesˇteˇ jeden zpu˚sob vytvorˇenı´ nove´ho dotazu. Stacˇ´ı do vstupnı´ho pole pod panelem na´stroju˚ zadat rˇeteˇzec, jezˇ se ma´ vyhledat a potvrdit tlacˇ´ıtkem Vyhledat. Parametry noveˇ vytva´rˇene´ho dotazu lze vyplnit v „sˇabloneˇ“, ktera´ se nacha´zı´ v nastavenı´. Noveˇ vytvorˇeny´ dotaz se zarˇadı´ do seznamu a ihned se zacˇne vyhleda´vat.
A.4.4
Vyhleda´va´nı´
Vyhleda´va´nı´ dokumentu˚ se spustı´ bud’ za pomoci polozˇky Dotaz/Vyhledat v hlavnı´ nabı´dce prˇ´ıpadneˇ odpovı´dajı´cı´m tlacˇ´ıtkem v na´strojove´ lisˇteˇ a nebo tlacˇ´ıtkem Vyhledat prˇ´ımo v dialogu pro editaci dotazu. V prˇ´ıpadeˇ, zˇe se s neˇktery´mi servery jesˇteˇ nepracovalo, probeˇhne jejich inicializace (naprˇ´ıklad Oracle). V na´sledujı´cı´m dialogu (Obra´zek A.12) se zobrazuje postup vyhleda´va´nı´ na jednotlivy´ch serverech. Pod na´zvem serveru je vzˇdy combobox se zpra´vami o pru˚beˇhu. Prˇi ukoncˇenı´ hleda´nı´ obsahuje toto polı´cˇko mimo jine´ pocˇet nalezeny´ch dokumentu˚.
64
A.4. PRA´CE S APLIKACI´
Obra´zek A.12: Pru˚beˇh vyhleda´va´nı´ Hleda´nı´ lze kdykoliv ukoncˇit tlacˇ´ıtkem Stop. Zmeˇnı´-li se popiska tohoto tlacˇ´ıtka na Ok, znamena´ to, zˇe vyhleda´va´nı´ bylo ukoncˇeno.
Obra´zek A.13: Seznam nalezeny´ch dokumentu˚ Nynı´ se ve spodnı´ cˇa´sti hlavnı´ho okna pod seznamem dotazu˚ zobrazı´ prˇehled nalezeny´ch dokumentu˚ (Obra´zek A.13). Tento seznam obsahuje neˇkolik informacı´ o kazˇde´m nalezene´m dokumentu: • Na´zev. • Celkove´ porˇadı´ a sko´re, ktere´ dokument dosa´hl. Pokud jeden a ten samy´ dokument byl nalezen vı´ce servery, tyto hodnoty prˇedstavujı´ pru˚meˇrnou hodnotu. Hodnoty, ktere´ dokument dosa´hl na jednotlivy´ch serverech jsou uvedeny ve sloupecˇku Servery. Zde je nutne´ poznamenat, zˇe ne kazˇdy´ server vracı´ ohodnocenı´ nalezeny´ch dokumentu˚. • Lokace dokumentu mu˚zˇe prˇedstavovat naprˇ´ıklad URL adresu nebo jiny´ identifika´tor dokumentu (naprˇ´ıklad u Oraclu je to jme´no tabulky a hodnota prima´rnı´ho klı´cˇe dokumentu). • Seznam zkratek serveru˚, ktere´ nasˇly dokument s uvedenı´m porˇadı´ a sko´re, jezˇ dokument na teˇchto serverech dosa´hl. 65
A.4. PRA´CE S APLIKACI´ • Datumy vytvorˇenı´ a modifikace dokumentu (pokud se tyto informace podarˇilo zjistit). • Pozna´mka. • Uka´zka z dokumentu se zobrazuje pod vy´sˇe uvedeny´mi informacemi. Zobrazova´nı´ te´to uka´zky je mozˇno vypnout pomocı´ volby Zobrazit/Uka´zka dokumentu. Se seznamem nalezeny´ch dokumentu˚ je mozˇno da´le pracovat (Oddı´l A.4.6). Jednotlive´ dokumenty lze prohlı´zˇet (polozˇka Otevrˇ´ıt dokument v kontextove´ nabı´dce seznamu dokumentu˚ nebo stacˇ´ı dvakra´t kliknout na za´znam) pomocı´ asociovane´ho prohlı´zˇecˇe. Dalsˇ´ı mozˇnostı´ je ulozˇenı´ dokumentu na disk (polozˇka Ulozˇit dokument). Spodnı´ cˇa´st okna obsahuje i dalsˇ´ı informace o pru˚beˇhu vyhleda´va´nı´, ktere´ jsou schova´ny pod dalsˇ´ımi za´lozˇkami:
Obra´zek A.14: Chyby vznikle´ prˇi vyhleda´va´nı´
Obra´zek A.15: Statistika vyhleda´va´nı´
Chyby Seznam chyb (Obra´zek A.14), ke ktery´m dosˇlo v pru˚beˇhu vyhleda´va´nı´, prˇ´ıpadneˇ chyby, ktere´ nebyly opraveny prˇi editaci dotazu. Statistika Obsahuje informace o celkove´ dobeˇ hleda´nı´, pocˇtu nalezeny´ch dokumentu˚, pocˇtu chyb (Obra´zek A.15). A take´ o tom, jak u´speˇsˇne´ byly jednotlive´ servery: • Jak dlouho jim hleda´nı´ trvalo. • Pocˇet vra´ceny´ch dokumentu˚.
66
A.4. PRA´CE S APLIKACI´ • Kolik dokumentu˚ celkem odpovı´dalo polozˇene´mu dotazu (z teˇchto bylo pouze neˇkolik prvnı´ch vra´ceno). • Pocˇet chyb. • Dotaz polozˇeny´ serveru. Tento rˇeteˇzec obsahuje dotaz jak jej server dostal. Pro kazˇdy´ server je tento dotaz odlisˇny´. Jedna´-li se naprˇ´ıklad o webovy´ fulltextovy´ vyhleda´vacˇ, je dotazem URL vyhleda´vacı´ho stroje, ktera´ je doplneˇna prˇ´ıslusˇny´mi parametry. V takove´m prˇ´ıpadeˇ se po dvojite´m kliknutı´ otevrˇe asociovany´ Internetovy´ prohlı´zˇecˇ a zobrazı´ HTML stra´nku obsahujı´cı´ nalezene´ dokumenty, kterou osloveny´ server vra´til. Naopak naprˇ´ıklad Oracle server vyplnˇuje toto polı´cˇko SQL dotazem. • Pozna´mka obsahuje dodatek k vlastnı´mu dotazu a dalsˇ´ı doplnˇujı´cı´ informace.
A.4.5
Nastavenı´
Obra´zek A.16: Nastavenı´ Dialog pro nastavenı´ (Obra´zek A.16) umozˇnˇuje nastavit za´kladnı´ vlastnosti aplikace. Jedna´ se zejme´na o parametry rychle´ho hleda´nı´, zobrazova´nı´ seznamu dokumentu˚ a nastavenı´ serveru˚. Tlacˇ´ıtko Parametry dotazu na prvnı´ za´lozˇce slouzˇ´ı k nastavenı´ sˇablony dotazu pro rychle´ vyhleda´va´nı´. Umozˇnˇuje nastavit vesˇkere´ parametry dotazu. Hledany´ rˇeteˇzec (to co uzˇivatel zada´) se dosadı´ do parametru, ktery´ je vybra´n v comboboxu pod tı´mto tlacˇ´ıtkem. Da´le zde lze jesˇteˇ urcˇit jak se ma´ zobrazovat uzˇivateli seznam nalezeny´ch dokumentu˚ prˇi rychle´m exportu. Na vy´beˇr je stejny´ seznam forma´tu˚ jako prˇi exportu (Oddı´l A.4.6). Navı´c je mozˇno zvolit automaticke´ zobrazova´nı´, ktere´ zaprˇ´ıcˇinı´ okamzˇite´ zobrazenı´ nalezeny´ch dokumentu˚ po vyhleda´nı´ ve zvolene´m forma´tu za pouzˇitı´ asociovane´ho prohlı´zˇecˇe. To vyuzˇijı´ uzˇivatele´ zejme´na v tom prˇ´ıpadeˇ, zˇe se jim nelı´bı´ sta´vajı´cı´ zobrazova´nı´. Vzhled vy´sledne´ho dokumentu lze zmeˇnit pozmeˇneˇnı´m sta´vajı´cı´ sˇablony nebo vytvorˇenı´m nove´ (viz Oddı´l A.5). 67
A.4. PRA´CE S APLIKACI´
Obra´zek A.17: Nastavenı´ serveru˚ Druha´ za´lozˇka (Obra´zek A.17) umozˇnˇuje nastavit vesˇkere´ parametry vsˇech dostupny´ch serveru˚. S tı´mto dialogem se pracuje obdobneˇ jako prˇi specifikaci parametru˚ dotazu. V soucˇasnosti lze nastavit parametry proxy serveru pro webove´ vyhleda´vacˇe a prˇihlasˇovacı´ u´daje pro Oracle server. Poslednı´ polozˇka v te´to skupineˇ parametru˚ (Popiska serveru) je uzˇivatelsky´ na´zev serveru. Tento na´zev bude ve vsˇech seznamech identifikovat server.
A.4.6
Seznamy dokumentu˚, export
Seznamy nalezeny´ch dokumentu˚ lze samozrˇejmeˇ ulozˇit pro pozdeˇjsˇ´ı pra´ci (polozˇka Dokument/Ulozˇit seznam dokumentu˚) a zpeˇtneˇ nacˇ´ıst (polozˇka Dokument/Nacˇ´ıst seznam dokumentu˚). O tom, zda k dotazu existuje ulozˇeny´ seznam nalezeny´ch dokumentu˚, informuje uzˇivatele mala´ ikona diskety ve druhe´m sloupci prˇehledu. Jiny´m zpu˚sobem ulozˇenı´ seznamu dokumentu˚ je jeho export (Dokument/Export seznamu dokumentu˚). Exportovat lze do neˇkolika forma´tu˚: HTML dokument (html) Report vygenerovany´ jako HTML stra´nka s pouzˇitı´m kaska´dovy´ch stylu˚. Comma Separated Value (csv) Tento forma´t lze nacˇ´ıst do veˇtsˇiny tabulkovy´ch programu˚ jako je naprˇ´ıklad Microsoft Excel (kde je mozˇno s daty da´le pracovat). Jednotlive´ hodnoty jsou ve vy´stupnı´m souboru oddeˇleny cˇa´rkou, veˇty jsou oddeˇleny odrˇa´dkova´nı´m. Cˇisty´ text (txt) Univerza´lnı´ forma´t, neobsahuje zˇa´dne´ forma´tovacı´ tagy, platformeˇ neza´visle´. Je zde take´ mozˇnost prˇidat dalsˇ´ı sˇablony pro export. Stacˇ´ı vytvorˇit prˇ´ıslusˇny´ textovy´ soubor (popis viz Oddı´l A.5) a ulozˇit jej do podadresa´rˇe Export Templates. Na jeho jme´neˇ a koncovce neza´lezˇ´ı. 68
A.4. PRA´CE S APLIKACI´
Obra´zek A.18: Export seznamu dokumentu˚ Pro vlastnı´ export (Obra´zek A.18) stacˇ´ı vybrat pozˇadovany´ forma´t, zadat jme´no souboru (koncovka je nepovinna´, pokud nebude uvedena, doplnı´ se automaticky dle vybrane´ho forma´tu) a porˇadı´ v jake´m majı´ by´t dokumenty na vy´stupu usporˇa´da´ny. Po u´speˇsˇne´m vygenerova´nı´ je mozˇno vy´sledek ihned prohle´dnout pomocı´ asociovane´ho prohlı´zˇecˇe. Uzˇivatel mu˚zˇe take´ vyuzˇ´ıt „rychly´ export“, ktery´ slouzˇ´ı pouze pro prohlı´zˇenı´ vy´sledku˚ (vy´sledek se ukla´da´ do pomocne´ho adresa´rˇe). Nenı´ trˇeba opakovaneˇ zada´vat vlastnosti tohoto exportu (ty lze editovat v nastavenı´, viz Oddı´l A.4.5).
A.4.7
Dalsˇı´ mozˇnosti aplikace
V aplikaci lze mı´rneˇ meˇnit vzhled zobrazova´nı´. Vesˇkere´ volby ty´kajı´cı´ se te´to oblasti jsou v podnabı´dce Zobrazit. Lze vypnout zobrazova´nı´ uka´zky dokumentu (v seznamu dokumentu˚ zabı´ra´ te´meˇrˇ vzˇdy nejvı´ce mı´sta), zobrazova´nı´ seznamu dokumentu˚, prˇ´ıpadneˇ seznamu dotazu˚. Spı´sˇe pro vy´voja´rˇe dalsˇ´ıch DLL knihoven rozsˇirˇujı´cı´ch spektrum vyhleda´vajı´cı´ch sluzˇeb je urcˇen prˇehled (Obra´zek A.19) vsˇech implementovany´ch parametru˚ (Informace/Seznam parametru˚). Pro prˇehledneˇjsˇ´ı a rychlejsˇ´ı pra´ci s aplikacı´ je vhodne´ pouzˇ´ıvat vı´ce seznamu˚ dokumentu˚. Dotazy tak budou rozumneˇ usporˇa´da´ny a take´ se tı´m zrychlı´ start a ukoncˇenı´ aplikace, kdy docha´zı´ k nacˇ´ıta´nı´ a ukla´da´nı´ historie dotazu˚. Prˇehled seznamu˚ dotazu˚ (Obra´zek A.20) se nacha´zı´ pod polozˇkou Dotaz/Seznamy dotazu˚. V tomto prˇehledu lze vytvorˇit novy´, smazat sta´vajı´cı´, cˇi nastavit zvoleny´ seznam jako aktua´lnı´.
69
A.4. PRA´CE S APLIKACI´
Obra´zek A.19: Prˇehled vsˇech parametru˚
Obra´zek A.20: Seznamy dotazu˚
70
A.5. VLASTNI´ SˇABLONA PRO EXPORT
A.4.8
Vyuzˇı´vane´ servery
Obra´zek A.21: Seznam dostupny´ch serveru˚ Za´kladnı´mi prvky cele´ aplikace jsou servery, ktere´ se vyuzˇ´ıvajı´ prˇi vyhleda´va´nı´. Jejich seznam (Obra´zek A.21) je prˇ´ıstupny´ prˇes polozˇku Nastavenı´/Dostupne´ servery. V seznamu jsou uvedeny nejen jejich na´zvy, ale i zkratky, ktere´ se zobrazujı´ v neˇktery´ch strucˇneˇjsˇ´ıch vy´pisech, DLL knihovna, ve ktere´ jsou implementova´ny a dalsˇ´ı informace. Neˇktere´ servery umozˇnˇujı´ svou duplikaci a tı´m rozsˇirˇujı´ rˇadu pouzˇitelny´ch zdroju˚. Jednı´m z prˇ´ıkladu˚ je server Oracle. Vytvorˇenı´m jeho dalsˇ´ı kopie tlacˇ´ıtkem Novy´ server (je povolene´ v okamzˇiku, kdy je vybra´n server umozˇnˇujı´cı´ vytva´rˇenı´ svy´ch kopiı´) vznikne dalsˇ´ı plnohodnotny´ zdroj pro vyhleda´va´nı´, ktery´ se od origina´lu lisˇ´ı nastavenı´m (to je mozˇno upravit v dialogu Nastavenı´/Nastavenı´). Duplicitnı´ servery lze samozrˇejmeˇ take´ smazat (tlacˇ´ıtko Smazat server). Jiny´m zpu˚sobem, jak rozsˇ´ırˇit mnozˇinu pouzˇitelny´ch serveru˚ je zı´ska´nı´ dalsˇ´ı DLL knihovny a to bud’ od vy´robce programu nebo od kohokoliv jine´ho. Nove´ knihovny je trˇeba nahra´t do adresa´rˇe Servers, ktery´ je v hlavnı´m adresa´rˇi aplikace.
A.5
Vlastnı´ sˇablona pro export
Vy´beˇr forma´tu˚ na export je v doda´vane´ verzi aplikace omezeny´ (HTML, CSV, TXT). Uzˇivatel si ale mu˚zˇe kdykoliv vytvorˇit vlastnı´ novou sˇablonu pro export do libovolny´ch dalsˇ´ıch forma´tu˚ (XML, TEX, . . . ). Tuto sˇablonu (textovy´ soubor, jehozˇ popis bude na´sledovat da´le) je trˇeba ulozˇit do podadresa´rˇe Export Templates adresa´rˇe, kde se nacha´zı´ vlastnı´ exe soubor aplikace. Na jeho jme´neˇ a koncovce neza´lezˇ´ı.
A.5.1
Popis souboru sˇablony
Sˇablonu exportu tvorˇ´ı jednoduchy´ textovy´ soubor. Kromeˇ vlastnı´ho forma´tova´nı´ vy´stupnı´ho exportu (naprˇ´ıklad HTML tagy v prˇ´ıpadeˇ HTML exportu) obsahuje i specia´lnı´ tagy, ktere´ aplikace nahradı´ prˇ´ıslusˇny´mi daty. Tyto tagy majı´ na´sledujı´cı´ syntaxi: <#JMENO TAGU JMENO ATRIBUTU=’HODNOTA’>.
71
A.5. VLASTNI´ SˇABLONA PRO EXPORT
Na´zev tagu ACT DATE USER NAME DOC COUNT QNAME QCREATED QEDITED QSEARCHED
Vy´znam Aktua´lnı´ datum a cˇas (tedy datum a cˇas exportu) Jme´no aktua´lneˇ prˇihla´sˇene´ho uzˇivatele Pocˇet nalezeny´ch dokumentu˚ Na´zev dotazu Datum a cˇas vytvorˇenı´ dotazu Datum a cˇas poslednı´ modifikace dotazu Datum a cˇas poslednı´ho vyhleda´va´nı´ dokumentu˚ odpovı´dajı´cı´ch dotazu QTOTAL COUNT Maxima´lnı´ pocˇet nalezeny´ch dokumentu˚ z jednoho serveru QSERVER COUNT Pocˇet dotazem vyuzˇ´ıvany´ch serveru˚ QSERVERS Seznam serveru˚, ktere´ dotaz pouzˇ´ıva´ pro vyhleda´va´nı´ QNOTE Pozna´mka k dotazu DNUM Aktua´lnı´ cˇ´ıslo dokumentu DNAME Na´zev dokumentu DLOCATION Lokace dokumentu DSCORE Celkove´ sko´re dosazˇene´ dokumentem DORDNUM Celkove´ porˇadı´ dokumentu DCREATED Datum vytvorˇenı´ dokumentu DMODIFIED Datum poslednı´ zmeˇny dokumentu DEXTRACT Uka´zka z dokumentu DNOTE Pozna´mka k dokumentu DSERVERINFOS Informace o hodnocenı´ dokumentu servery, ktere´ jej nalezly TEMPLATE INFO Tag popisujı´cı´ vlastnı´ sˇablonu, musı´ by´t uveden na zacˇa´tku souboru (tedy jako prvnı´ tag), ma´ dva atributy. LIST BEGIN Tag oznacˇujı´cı´ zacˇa´tek smycˇky, ktera´ obsahuje vsˇechny nalezene´ dokumenty. Mezi tagy LIST BEGIN a LIST END by meˇly by´t uvedeny tagy popisujı´cı´ dokument, ktere´ budou nahrazeny skutecˇny´mi vlastnostmi nalezeny´ch dokumentu˚. LIST END Konec smycˇky dokumentu˚ Tabulka A.1: Na´zvy a popisy tagu˚ sˇablony
72
A.6. KLA´VESOVE´ ZKRATKY Rozsˇirˇujı´cı´ atributy jsou pouzˇity pouze u jedine´ho tagu TEMPLATE INFO, ktery´ popisuje sˇablonu a musı´ by´t uveden na same´m zacˇa´tku souboru. Popis atributu˚ tohoto tagu: Ext Koncovka, s jakou se bude soubor ukla´dat (html, txt, xml, . . . ). Tato koncovka je pomeˇrneˇ du˚lezˇita´, nebot’ to bude vy´chozı´ koncovka, pokud uzˇivatel nezapı´sˇe jinou a jednak se na zobrazenı´ vy´sledne´ho exportu pouzˇije prohlı´zˇecˇ, ktery´ je s touto koncovkou asociova´n. Name Jme´no (mu˚zˇe by´t i s kra´tky´m komenta´rˇem) pod jaky´m bude sˇablona uvedena v seznamu dostupny´ch forma´tu˚ pro export.
A.6
Kla´vesove´ zkratky Kla´vesova´ zkratka Ctrl+N Ctrl+D Ctrl+E Shift+Del Ctrl+F Ctrl+S Ctrl+O Ctrl+T Ctrl+F1 F1 Ins
Popis Novy´ dotaz Odvodit novy´ dotaz Editace dotazu Smaza´nı´ dotazu Vyhledat Ulozˇit seznam dokumentu˚ Nacˇ´ıst seznam dokumentu˚ Zobrazit seznam sˇablonou Informace o aplikaci Na´poveˇda Prˇidanı´ parametru (ve stromeˇ parametru˚)
Tabulka A.2: Kla´vesove´ zkratky
73
Prˇı´loha B Obsah prˇilozˇene´ho CD Index.htm HTML stra´nky popisujı´cı´ obsah tohoto CD. DISClient.msi Instalacˇnı´ soubor aplikace DISClient. [DISClient] Adresa´rˇ obsahujı´cı´ vlastnı´ aplikaci, ktera´ se nemusı´ instalovat (stacˇ´ı obsah tohoto adresa´rˇe prˇekopı´rovat na cı´love´ mı´sto na disku) a spustit souborem DISClient.exe. [Documents] Dokumentace k programu a vlastnı´ diplomova´ pra´ce v neˇkolika forma´tech (.rtf, .pdf, .html). [Servis] Neˇkolik na´stroju˚, ktere´ by mohl uzˇivatel potrˇebovat (Oracle8i klient, Adobe Acrobat Reader 5.0, Windows Installer Engine pro starsˇ´ı operacˇnı´ syste´my). [Source] Zdrojove´ texty programu a cele´ diplomove´ pra´ce.
74