Table of Contents

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)

Kroky:

  1. Příprava vertikály
  2. Konfigurace korpusu
  3. Konverze do formátu Manatee
  4. Instalace
  5. Konfigurace uživatelů
  6. 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.

  <s id="s1">
  Dnes    dnes    prší
  prší    pršet   #ROOT
  .   .   #ROOT
  </s>
  
  <s id="s2">
  To  to  nevadí
  nevadí  vadit   #ROOT
  .   .   #ROOT
  </s>

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:

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