====== Jak na Manatee / Bonito: Tipy pro správce ====== //Tento dokument se vztahuje na Manatee verzi 1.49. Nesnažím se zde o úplnost, ale o přehled toho, co jsem seznal užitečným a co mi stačilo.// ===== Instalace Manatee ===== Máme: server na síti Chceme: připojit se k němu z Bonita a browsit v korpusech Dokumentace k Manatee: (v adresáři manatee) README Postupujeme podle instrukcí v Makefile. Až se Manatee nainstaluje, musí se nakonfigurovat server, aby přijímal požadavky. Je k tomu potřeba běžící a fungující xinetd. V adresáři /etc/xinet.d vytvoříme soubor manatee. V něm buď: service manatee { socket_type = stream protocol = tcp user = corpman wait = no server = /usr/bin/perl server_args = /path/to/manatee/runm.pl } V souboru /etc/services se objev řádek: manatee 5016/tcp # Manatee Server Port 5016 (nebo jiný specifikovaný v /etc/services) musí být otevřený - o to se postará admin serveru. ===== Příprava korpusu ===== Máme: korpus v PML (nebo v jiném formátu, který přelouská btred) Chceme: korpus přístupný přes bonito Dokumentace k Manatee: (v adresáři manatee) * krok 1: vertical.txt * krok 2: corpconf.txt * krok 3,4: README * krok 5: $ ./chuser -help * krok 6: bonito/doc/* Kroky: - Příprava vertikály - Konfigurace korpusu - Konverze do formátu Manatee - Instalace - Konfigurace uživatelů - Připojení z Bonita ==== 1. Příprava vertikály ==== Vertikála je textový formát, ze kterého jediného lze zkonstruovat korpus přístupný pro systém Manatee/Bonito. Je třeba dopředu definovat hodnoty, které se pro tokeny zakódují. Hodnoty každého tokenu jsou pak na zvláštním řádku oddělené tabulátorem. Příklad: Chceme-li v korpusu mít formu, lemma a formu rodiče, mohou věty "//Dnes prší. To nevadí.//" vypadat ve vertikále takto: Dnes dnes prší prší pršet #ROOT . . #ROOT To to nevadí nevadí vadit #ROOT . . #ROOT Věty jsou odděleny prázdným řádkem. Kódování se specifikuje v konfiguráku (viz krok 2). Atributy (sloupce) mohou být vícehodnotové. Např. při nedisambiguované morfologické analýze může být pro každý token více tagů a lemmat. V konfiguráku se nastaví, že atribut je vícehodnotový a jakým znakem jsou hodnoty separovány. Budeme-li sledovat formu a vícehodnotové lemma s oddělovačem mezerou, pak věta "Žena prasata jí." bude mít vertikální zápis: Žena žena hnát prasata prase jí ona jíst . . Kromě tokenů se ve vertikále mohou vyskytovat i XML tagy. Vertikála však není XML dokument, takže žádný kořenový tag, žádné DTD atd. Každý tag na zvláštním řádku. Dnes dnes prší prší pršet #ROOT . . #ROOT To to nevadí nevadí vadit #ROOT . . #ROOT ==== 2. Konfigurace korpusu ==== Jméno konfiguračního souboru musí být shodné se jménem korpusu, jak se bude jevit v Bonitu. Cesta k němu (pouze adresář) je dána proměnnou prostředí **MANATEE_REGISTRY**. Konfigurák má formu dvojic jméno_atributu - hodnota. Hodnota buď "uvozena", není-li formy céčkového identifikátoru. Za ní může následovat {blok} a v něm další dvojice jméno-hodnota, které se týkají tohoto atributu. Uvádívám tyto atributy: * PATH: kam se mají zapsat soubory korpusu (klíďo relativní cesta). * ENCODING: kódování vertikály. POZOR! latin-2 má tvar "iso8859-2" a žádný jiný! * VERTICAL: cesta k vertikále. * STRUCTURE: deklarace XML tagu * ATTRIBUTE: definice atributu (sloupce ve vertikále); Atributu ATTRIBUTE lze specifikovat atributy LOCALE, MULTIVALUE a MULTISEP (a možná další - viz dokumentaci) Příklad vertikály výše by mohl mít konfigurák: PATH "korpusy/pokus" ENCODING "iso8859-2" VERTICAL "data/pokus/vertikala.txt" ATTRIBUTE form{ LOCALE "cs_CZ" } ATTRIBUTE lemma{ LOCALE "cs_CZ" MULTIVALUE yes MULTISEP " " } ATTRIBUTE parent STRUCTURE s Atribut //parent// by měl taky mít uvedené lokále. Vynechal jsem ho, aby bylo patrno, že v definici atributu se blok použít nemusí. ==== 3. Konverze do formátu Manatee ==== Z vertikály se soubory čitelné programem Manatee udělají pomocí programu **encodevert**, který je v adresáři manatee. Příklad: export MANATEE_REGISTRY=. #konfigurák je v aktuálním adresáři /opt/manatee/encodevert -c pokus Toto způsobí, že se v adresáři ./korpusy/pokus objeví soubory našeho korpusu. ==== 4. Instalace ==== Korpus může být buď na serveru nebo na lokálním počítači. V Bonitu si uživatel vybírá, zda se chce připojit na server nebo spustit manateesrv lokálně. Jest-li korpus na lokální mašině, je nejjednodušší, když je binárka manateesrv v témže adresáři jako bonito a konfigurák korpusu. Cesta k manateesrv jde ale specifikovat v běžícím Bonitu i v jeho konfiguráku (resource). Taktéž umístění konfiguráku korpusu jde specifikovat pomocí nastavení proměnné prostředí **MANATEE_REGISTRY**. Chceme-li mít korpus na serveru a připojovat se po síti, pak je potřeba dát konfigurák korpusu i korpus sám na serveru do správných adresářů. Ty jsou dány na začátku souboru runm.pl, což je wrapper pro manateesrv. ==== 5. Konfigurace uživatelů ==== V adresáři manatee je soubor users, ve kterém se nastavuje, který uživatel může přistupovat k jakému korpusu, jaké je jeho jeslo atd. V políčku před poslední dvojtečkou je mezerami oddělený seznam jmen korpusů, ke kterým se uživatel může připojit. Tam je potřeba nově instalovaný korpus uvést. Pokud má být instalovaný korpus defaultní, uvede se to v runm.pl (síťová verze) nebo jako argument pro manateesrv v resource (lokální verze). Přidávání uživatelů a rýpání v heslech je nejlépe provádět pomocí skriptu chuser. ==== 6. Připojení z Bonita ==== Zatím se zdá, že k verzi Manatee 1.49 se lze připojit jakýmkoliv Bonitem (tedy že zpětná kompatibilita je ze strany klienta zachována). Stará TCLková verze vyžaduje TCL/TK na uživatelské mašině. Nová binárková verze zase vyžaduje libstdc++, která je zastaralá a je ji potřeba doinstalovávat. Pro síťové připojení je potřeba mít otevřený port 5016 popř. jiný, na který je manatee na serveru nakonfigurován. Na straně Bonita se port specifikuje v souboru resource jako "*options.serverport: 5016" (s tabem).