====== 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).