This is an old revision of the document!
Table of Contents
To do
Infrastructure
- 14.3.2008: During the last two weeks I made substantial changes to all the drivers due to extensive driver testing and new strict encoding procedures. After all tests pass successfully, the whole thing should be committed to SVN. Besides, it should be re-tested with the parser adaptation project.
- Clean up
tagset::common
w.r.t. the various algorithms of enforcing permitted values. - Query feature value: a shared function detects array and if it is array, searches it for a given value.
- New test in driver-test.pl: does a driver decode into arrays? If so, what features are affected? If not, is it capable of encoding arrays (i.e. does it call the function that gets rid of arrays)?
- New test in driver-test.pl: how many tags / what proportion of the tagset are decoded using the
other
feature? Enumerate them. Maybe, tags that set theother
feature should not be considered when building the list of possible feature structures? (Sometimes it happens that a feature-value combination is permitted only in another
tag. Although the set of set/unset features could be used as an additional clue leading to this tag, such tags are often marginal stuff that one does not want to use as default.) - Extend the
print_permitted_fs.pl
tool so that it can search all available drivers. If it is called that way, it prints the name of the driver in front of every feature structure generated by that driver. Print to STDOUT (now it prints to STDERR). Let the user query and filter the feature structure directly: '$_→{mood} eq “ind” && $_→{other} =~ m/^X/'. Grepping the textual output is less powerful.
Features and values
- Ve všech ovladačích nastavovat hodnotu rysu
tagset
tak, aby odpovídala názvu ovladače, se kterým se volají obecné funkceencode()
adecode()
. Zapsat i do dokumentace k rysům (a případně též do kapitoly “Jak psát ovladač”, že se to tak doporučuje dělat. - Udělat pořádek v zájmenech, determinátorech, tázacích příslovcích apod. U starších ovladačů jsem používal jiný přístup než u novějších (počínaje bulharštinou), mělo by se to sjednotit. Samostatný slovní druh zájmeno přestane existovat.
- Přece jen přidat kategorie zájmen? Dánové mají: demonstrative, indefinite, interrogative/relative, personal, possessive, reciprocal. Zrušit podkategorie wh?
- Členy a zájmena by se možná vůbec měly rozlišit jinak. Na nejvyšší úrovni by se rozlišovala substantivnost/atributivnost, pak teprve zda to má být raději člen nebo zájmeno. Případně osobní a přivlastňovací zájmena by mohla být zvlášť už na nejvyšší úrovni, protože ta se s žádnými členy plést nebudou.
- Ze subpos=clit udělat samostatnou vlastnost, aby se usnadnil dotaz, zda je zájmeno osobní. Nebo tuto vlastnost spíš zrušit. Tohle je jednak problém změny práce se zájmeny, jednak připravované koncepce práce se staženými tvary (viz níže).
- Jemněji roztřídit interpunkci. Dánové mají vlastní interpunkci, potom symboly (+, $), potom podivnosti, které my ani za interpunkci nepovažujeme. “U-21”.
- Classification of coordinative conjunctions: copulative, adversative etc. Example: sv::mamba.
- Udělat přehled častých prvků, které nemají vlastní slovní druh. Např. jak se řeší částice označující infinitiv.
- Projít jednotlivé sady a udělat jakýsi globální přehled třídění malých slovních druhů, zejména částic, předložek a spojek, možná samostatně i interpunkce. (Teď nemluvíme o zájmenech a členech, ty jsou samostatnou kapitolou.)
- Vymyslet koncepci pro stažené (contracted) tvary, kde se do jednoho slova dostaly dva různé slovní druhy. Zatím to na různých místech řeším různě. Patří sem české “proň”, “bylť”, německé “zum” a nejspíš další jevy v dalších jazycích. Zvláštním případem jsou také zájmena-klitika, která se v některých jazycích mohou nebo musí spojit se slovesem či dalšími slovními druhy (české “byls”, “sis”, “tys”, “žes”; španělské “despiértate”, “despertarse”, “démelo”). V arabštině je podobný problém mnohem větších rozměrů, protože se tam běžně lepí malá slova k velkým (např. spojka “wa”, člen “al” aj.)
Things to think about (not sure that these changes should really be made):
- Sloučit vlastnosti
verbform
amood
? V současnosti (29.3.2008) semood
vyskytuje v ar::conll, bg::conll, cs::pdt, da::conll, de::stts, sv::hajic a sadách z nich odvozených. Všude se vyskytuje pouze u určitých sloves (verbform = fin
), pouze u sv::hajic se vyskytuje ještě u supina, ale tam je stejně uveden indikativ a nic se tím nerozlišuje. Na druhou stranu to, že máme způsob (mood) oddělený, umožňuje nejen říkat tomu správně způsob, ale také nastavit obecné finitní sloveso při dekódování sad značek, které způsob nezachycují. Otázka je, jestli v takovém případě není vždy způsob oznamovací. Divně by to mohlo vypadat v jazycích, kde se způsob tvoří výhradně analyticky, pokud takové jsou. Pokud tyto rysy zůstanou oddělené, mohli zavést nový test (jehož výsledkem by nebyla chyba, ale jen varování), který by hlídal, že když je nastaven způsob, je slovesný tvar nastaven nafin
. - Příčestí by mělo mít vlastní slovní druh. S tím, že některé sady ho řadí pod sloveso a jiné pod přídavné jméno, jsou jenom problémy.
- Pokud se osvědčí nové třídění zájmen, posvítit si i na číslovky. Některé přesunout k zájmenům (“kolik”, “kolikátý”), jiné jako zvláštní podkategorie podstatných jmen (“čtvrtina”, “sedmero”), přídavných jmen (“čtvrtý”, “dvojí”) a příslovcí (“čtyřikrát”, “poprvé”).
- Předělat binární vlastnosti na hodnoty “yes” a “no”. Nebo “1” a “0”? Nebo “1” a “”? (Tohle by se na rozdíl od “yes” a “no” alespoň lépe používalo v Perlu.)
- Přejmenovat number = plu na plur?
- Zrušit
subpos = voc
. Zatím se používá pro vokalizované tvary českých předložek v cs::pdt (a odvozeném cs::conll; nikde jinde). Místo toho by se ale dalo využítvariant = long
. U tříd předložek to teď narušuje členění na předložky, záložky a “okololožky” (cirkumpozice). Problém: jak vokalizované, tak nevokalizované předložky se také vyskytují svariant = 1
. Nemůžu do jednoho rysu nacpat současnělong
a1
, a nemůžu ani říct, že z1
taky plyne vokalizovanost.
Specific drivers
- cs::pdt - reimplement “type L” pronouns as collective pronouns (introduced due to Bulgarian)