Obsah | Dal¹à | Pøedchozà |
Filtry i FilterManager pou¾Ãvajà pøi své èinnosti konfiguraènà soubory. Ty se nacházejà v adresáøi "config". Mezi konfiguraènà soubory patøà i kódovacà tabulky, které se také nacházejà v adresáøi "config".
"Filter Manager" spou¹tà jednotlivé filtry podle dané konfigurace, která je ulo¾ena v konfiguraènÃm souboru. Tìchto souborù mù¾e být nìkolik (pro dokumenty, pro dotazy, pro velké dokumenty, ...) nebo» "Filter Manager" pøi spu¹tìnà dostane jako parametr cestu k pøÃslu¹nému souboru a podle nìj jednotlivé filtry spou¹tÃ.
Syntaxe.
PøÃkazy pro "Filter Manager" se vkládajà do hranatých závorek. V¹e co je mimo hranaté závorky je pova¾ováno za komentáø. "Filter Manager" rozpoznává dva typy pøÃkazù. PøÃkaz EXE spustà filtr a pøÃkaz SET nastavuje polo¾ky v hlavièce. Èasto chceme spou¹tìt filtry nebo nastavovat hlavièku za urèitých podmÃnek a k tomu slou¾à podmÃnka IF. Lze pou¾Ãt tyto tøi zápisy:
SpeciálnÃm pøÃpadem je filtr Stoplist, který nenà naprogramován jako DLL knihovna a tak na jeho spu¹tìnà jsem zavedl samostatný pøÃkaz [ UseStoplist ]. PodmÃnka obsahuje výraz porovnávajÃcà øetìzec s polo¾kou hlavièky. Výraz má tvar:
(polo¾ka_hlavièky operátor øetìzec) ... polo¾ka_hlavièky (napø. type, author, language,...) ... operátory jsou dva: == nebo != ... øetìzec se porovnává s hodnotou nastavenou v hlavièce (hodnota 0 znamená nenastavenou polo¾ku v hlavièce)
V¹e je patrné z pøÃkladù.
Zji¹tìnà typu kódovánÃ. Pokud nenà nastaveno kódovánÃ, tak voláme filtr "Charset", který ho zjistÃ.
[ IF (charset == 0) EXE Charset ]
Pøekódovánà dokumentu. Pokud dokument nenà v kódovánà "win-1250", tak musÃme dokument pøekódovat (voláme filtr "Code").
[ IF (charset != win-1250) EXE Code ]
Zji¹tìnà jazykù. Pokud neznáme jazyk dokumentu, tak voláme filtry "TryENG" a "TryCZE".
[ IF (language == 0) EXE TryENG TryCZE ]
Volánà Stoplistu. Stoplist je spoleèný pro v¹echny jazyky, tak¾e ho voláme v¾dy. Samozøejmì, ¾e lze volat Stoplist i po podmÃnce IF.
[ UseStoplist ]
Filtry lze volat i bez podmÃnky.
[ EXE LemENG LemCZE StopENG StopCZE Count ]
Nastavenà hlavièky. NapøÃklad pokud nenà uveden autor, tak si zadáme vlastnÃho.
[ IF (author == 0) SET Já jsem autorem tohoto dokumentu ]
Mezery v pøÃkazech jsou pro pøehlednost (jsou ignorovány). Pouze u pøÃkazu SET se mezery zachovávajà (mezery uvnitø øetìzce se neodstraòujÃ). U pøÃkazu [ IF (...) SET   aa bb cc    ] se do hlavièky nastavà "aa bb cc". U podmÃnky docházà k hledánà zadaného øetìzce v øetìzci hlavièky (tj. øetìzec z podmÃnky musà být obsa¾en v øetìzci hlavièky). NapøÃklad u testovánà jazyka hledáme øetìzec "CZE" v øetìzci "ENG CZE GER" (nejedná se tedy o pøesné porovnávánÃ).
Konfiguraènà soubory pro filtry jsou v adresáøi "config". Kompletnà cesta k tomuto adresáøi musà být nastavena v hlavièce dokumentu a to v polo¾ce "path". Cestu mù¾e nastavit jádro Agenta, ale i pøÃkaz SET v konfiguraènÃm souboru pro "Filter Manager". Pokud nenà cesta nastavena, tak filtry potøebujÃcà konfiguraènà soubory ohlásà chybu.
Konfiguraènà soubor Charset.cfg
Tento soubor pou¾Ãvá filtr "Charset". Jsou v nìm v¹echny znaky kódovánà "win-1250" a u ka¾dého znaku je uvedeno, jestli jde o dobrý èi ¹patný znak. Dobré znaky jsou znaky pou¾Ãvané v textových dokumentech. Jeliko¾ je Agent zamìøen na èeské (popøÃpadì anglické) dokumenty, mezi dobré znaky patøÃ: znaky èeské abecedy, èÃslice + uvozovky, èárka, støednÃk, pomlèka, ... Mezi ¹patné patøà napøÃklad øÃdÃcà znaky nebo s,c,z,... s èárkou nebo a,e,i,o,u,... se støÃ¹kou a jiné "divné" znaky. Samozøejmì je mo¾né upravit nastavenà i pro jiné jazyky. Pokud chce administrátor zmìnit znak na dobrý èi ¹patný staèà jenom poopravit konfiguraènà soubor. Formát souboru je následujÃcÃ: Prvnà sloupec urèuje zda je znak dobrý (Y) èi ¹patný (N). Pokud se v prvnÃm sloupci objevà jiná hodnota ne¾ je "Y" nebo "N", bude pova¾ována jako "N". Tento sloupec je potøebný pro èinnost Agenta. ZbývajÃcà dva sloupce jsou pouze pro u¾ivatele (pro lep¹à orientaci v souboru). Druhý sloupec urèuje èÃslo znaku (kód znaku ve "win-1250") a ve tøetÃm sloupci je slovnà popis znaku. V konfiguraènÃm souboru se nesmà pøehazovat èi odstraòovat ¾ádné øádky. Je mo¾né odstranit druhý a tøetà sloupec, ale èinnost filtru se asi výraznì neurychlÃ.
Konfiguraènà soubor usechar.cfg
Tento soubor pou¾Ãvajà filtry, které zÃskávajà termy z
dokumentu. Jedná se o filtry "CutHTML" a
"CutTEXT". Soubor obsahuje v¹echny tisknutelné znaky
"win-1250" (znaky 32-255). V souboru je definováno
jaké znaky patøà mezi oddìlovaèe slov a také je zde
nastaven pøevod na malá pÃsmena. Je mo¾né tento pøevod
zru¹it a pak filtry budou zachovávat malá a velká pÃsmena,
tak jak se v dokumentu vyskytujÃ. Agent pracuje jen s prvnÃm
sloupcem. Druhý a tøetà sloupec jsou pro orientaci v souboru
(druhý sloupec...kód znaku, tøetà sloupec...popis znaku).
Øádky nelze pøehazovat (znaky jsou seøazeny podle kódù).
Hodnoty v prvnÃm sloupci majà následujÃcà význam:
"N"...znak je pova¾ován za oddìlovaè slov
(",.-/:? atd.).
"Y"...znak patøà do termu.
"XXX"...znak patøà do termu, ale je nahrazen znakem s
kódem XXX. (Jde o pøevedenà velkých pÃsmen na malé.
NapøÃklad u znaku "D" je uvedena hodnota 100, co¾ je
znak malé d).
Konfiguraènà soubor easytags.cfg
Tento soubor vyu¾Ãvá filtr "CutHTML". Soubor
obsahuje HTML tagy, které zvýrazòujà text v dokumentu. U
ka¾dého tagu je uvedena váha, která zmìnà aktuálnà váhu.
UvozujÃcà tag váhu zvy¹uje a uzavÃrajÃcà tag váhu
sni¾uje (vracà ji zpìt). U ka¾dého tagu je také parametr
BREAK (zalomenÃ). Zalomenà urèuje zda HTML tag rozdìluje
slova mezi kterými se nacházÃ.
NapøÃklad: kilogramy je v HTML zapsáno takto:
kilo<B>gram</B>y
V tomto pøÃpadì nesmà tag rozbÃt slovo
"kilogramy". Jiné tagy slova rozdìlujà (vìt¹inou
lámou øádku - napø. <H1>). Hodnota "Y" tedy
øÃká, ¾e tag rozdìluje text do kterého je vlo¾en.
NastavÃ-li administrátor v¹echny váhy na hodnotu 0, tak
dosáhne stejné ohodnocenà termù (váha bude 1) jako u filtru
CutTEXT, který zpracovává èistý text.
Konfiguraènà soubor entita.cfg
Dal¹à konfiguraènà soubor pro filtr "CutHTML". Soubor obsahuje pøepis HTML entit. V prvnÃm sloupci je uvedena entita zapsaná v HTML jazyce. V druhém sloupci je kód znaku pøÃslu¹ejÃcà entitì. Tøetà sloupec je pouze orientaènà a jedná se o slovnà popis znaku.
Konfiguraènà soubor TryCZE.cfg"
Konfiguraènà soubor je urèen pro filtr "TryCZE" a obsahuje èeská slova (velmi frekventovaná). Ka¾dé slovo musà být vlo¾eno mezi vìt¹Ãtka (<slovo>). Libovolné poznámky v souboru nemajà vliv na èinnost Agenta. Slova s háèky nebo èárky nejsou nejvhodnìj¹Ãmi, nebo» na Internetu se vyskytuje velká spousta dokumentù v èe¹tinì, ale bez diakritiky. Aby filtr bezpeènì poznal, ¾e se jedná o èe¹tinu, mù¾eme do konfiguraènÃho souboru zadat velké mno¾stvà slov. Ale je tøeba si uvìdomit, ¾e se èinnost filtru mù¾e zpomalit. Dal¹à poznámky je mo¾né najÃt pøÃmo v konfiguraènÃm souboru.
Konfiguraènà soubor TryENG.cfg"
Tento soubor pou¾Ãvá filtr "TryENG" a má stejný formát jako soubor TryCZE.cfg, ale obsahuje frekventovaná anglická slova.
Kódovacà tabulky pou¾Ãvajà dva filtry. Filtr "Charset" pøi rozpoznávánà kódovánà dokumentu a potom filtr "Code" pøi jeho pøekódovánÃ. Tabulky jsou ulo¾eny v adresáøi "config" a kompletnà cesta je nastavena v hlavièce (polo¾ka path). V¹echny kódovacà tabulky jsou jednosmìrné (pøevádà dané kódovánà do kódovánà "win-1250", ale ne zpìt). Kódovacà tabulka je soubor, který obsahuje 256 znakù. Jedná se o znaky ze znakové sady "win-1250". Uspoøádánà znakù závisà na typu kódovánÃ, které tabulka pøedstavuje. Na i-té pozici v tabulce je znak, který odpovÃdá znaku pøÃslu¹ného kódovánà (se znakovým kódem i). NapøÃklad znak '®' je na i-té pozici nebo» v daném kódovánà má kód s hodnotou i. Pøi vytváøenà tabulky mù¾e u¾ivatel narazit na problém: V daném kódovánà je znak, které kódovánà "win-1250" neobsahuje. Jsou dva zpùsoby øe¹enÃ. Buï se znak pøevede na podobný znak, který se ve "win-1250" vyskytuje, nebo se pøevede na nìjaký netisknutelný znak a v textu se neobjevà (dal¹à filtry ho vypustÃ). Takto jsem to provedl u kódovánà "iso-8859-2". To má na pozicÃch 128-159 øÃdÃcà znaky a ty jsem pøevedl na znak s èÃslem 5.
Pøi filtrovánà dat mù¾e nastat nìjaká chyba. Ta se zapisuje do hlavièky (polo¾ka error). Chyby vìt¹inou o¹etøuje aplikaènà server (A). Zde jsou v¹echna mo¾ná chybová hlá¹enÃ:
1999-02-14 | Radek Weisfeit |