[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

This is an old revision of the document!


Návrh řešení vstupů a výstupů v DZ Parseru

S výjimkou dočasných ladících výstupů na STDERR má monopol na výstup modul vystup. Všechny ostatní moduly volají jeho funkci vystup($nazev_vystupu).

Výchozí nastavení má být takové, že funkce vystup() posílá nejvýše jeden druh výstupu (s jedním názvem) na STDOUT, všechny ostatní na STDERR.

Veškerá další nastavení musí být v konfiguračním souboru. Napadají mě následující možnosti:
- na stdout jde jiný než výchozí výstup
- kopie stdoutu na stderr
- kopie stdoutu nebo stderru do souboru
- přesměrování některého výstupu pouze do souboru
- výstupy do souboru pouze v případě, že je zadána / existuje pracovní složka
- kopie některého výstupu do mailu (asi skládat všechny do jednoho mailu, který se pošle po skončení výstupu, u jiných variant mě zatím nenapadá využití)

U train.pl jde na STDOUT výstup “stat” (soubor se statistikou, řádově desítky megabajtů).
U parse.pl jde na STDOUT výstup “csts” (ostromečkovaný vstup).


Výchozí nastavení vstupu má být následující:
- pokud po přečtení voleb z příkazového řádku zbyly nějaké argumenty, interpretují se jako cesty k souborům, jejichž obsah se má přečíst
- pokud žádné argumenty nejsou / nezbyly, čte se standardní vstup

U programů jako parse.pl jsou potřeba 2 vstupy (jednak soubor k rozebrání, jednak model). V tom případě je jeden vstup hlavní (zde soubor k rozebrání) a zachází se s ním způsobem uvedeným výše. Druhý (zde model) je vedlejší a musí být povinně uveden jako argument nějaké volby na příkazovém řádku (tedy ne jako samostatný argument, např. “model.stat”, ale vždy pohromadě s volbou, např. “-s model.stat”).


Soubor s konfigurací je vlastně zvláštní druh vstupu. Nikdy by neměl být vyžadován jako povinný. Vždy by mělo být možné použít nejvýchozejší hodnoty zadrátované přímo ve zdrojáku (nejlépe u funkce, která umí číst konfigurační soubor), případně v proměnných prostředí. Pokud chceme použít soubor s konfigurací, předáme ho jako alternativní vstup, jak bylo uvedeno výše (“-ini konfig.ini”). Měli bychom odbourat dosavadní praxi, že se defaultně čte nějaký soubor “parser.ini”, pokud se najde v aktuální složce - uživatel si pak hůř udrží přehled, co se vlastně děje.

Pokud se konfigurační soubor použije, může předefinovat chování ostatních vstupů: pro každý vstup řekne cestu k souboru (nebo k více souborům pomocí zástupných znaků), které se mají na dotyčný vstup napojit. Lze použít i “-” pro STDIN, ale tím se trochu složitě vracíme k něčemu, co se dá udělat jednodušeji.


Jak tedy na výše nastíněný model přejít z toho, co mám teď? Ze všeho nejdřív asi musím odbourat konfigurační soubor. Z něj se mi pořád načítají cesty, odkud co číst a kam co psát.


[ Back to the navigation ] [ Back to the content ]