This is an old revision of the document!
Table of Contents
To do
Interset 2.0
Interset is being completely rewritten using Moose, the object-oriented extension to Perl 5. In the end it will be published on CPAN as Lingua::Interset
.
- MooseX: “semi-affordance” jako v Treexu. Hodnota atributu x se nastavuje pomocí
set_x($hodnota)
, zjišťuje se pomocíx()
. - Nějak umravnit podle manuálu Moose to líné tvoření přehledu povolených struktur.
- Obdobně ve FeatureStructure.pm na řádku (momentálně) 1161 ve funkci get_similarity_of_arrays() volání funkce preprocess_list_of_replacements().
- Zkontrolovat, jaký kód ještě nebyl přenesen ze staré verze (zejména
tagset::common
) do nové.- Testy ovladačů.
- Obecné funkce pro přístup k ovladačům, např. Lingua::Interset::decode('en::penn'). Bude možné tyto funkce vyexportovat do hlavního jmenného prostoru?
- Vyrobit dočasnou obálku na staré ovladače, aby je mohl nový Interset využívat, než je všechny přepíšu přímo pro něj.
- Přenést všechny ovladače, které vznikly v Treexu a do SVN Intersetu se zatím nedostaly.
- Funkce typu
is_noun()
,is_pronoun()
atd. - Přenést celý projekt Interset i s historií ze serveru
svn
na Redmine. - Uspořádat seminář a brainstorming pro zájemce o Interset.
- Sepsat manuál pro nové autory ovladačů.
- Vlastní zveřejnění na CPANu:
- Zdeněk doporučuje Distzillu, která hodně usnadní výrobu balíčku k publikaci.
- Zdeněk má v Treexu nějaký skript, který promítne číslo revize SVN do čísla verze na CPAN.
- Jak prezentovat Interset neperlovému světu? Např. tabulky pro decode(). Jde o to, aby lidé mohli Interset snadno použít i v Pythonu, Javě, C a jinde.
Infrastructure
- 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.)- A workaround. Simulate decoding from foreign tagsets. 1. Decode all tags of tagset A. 2. Clear the features
tagset
andother
in all feature structures. 3. Now force the tags to defaults (some obscure categories are lost and the tags have to adapt themselves to the fallback categories). 4. Encode all tags again. 5. Check the resulting tags. It is OK if a tag was transformed into another correct tag. However, if a tag was rendered incorrect, it should be discarded from the set of tags that define the correct feature-value combinations.
- 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. - Enable checking out the latest development version directly from the Subversion repository.
- Create a web interface to DZ Interset. The user will be able to enter a tag from an arbitrary set (the interface will be able to recognize the set or sets) and get a detailed description in English or Czech of the feature values. Features and values could link to Wikipedia explanations. Conversions to other tagsets (including round-trip conversions) will be provided and all tags will link to similar descriptions of their own. Example words will be provided for every tag. The interface will also be able to read whole files in common corpus formats (CoNLL, PML, CSTS, RDT, TEI, Penn, Brill…), highlight word forms / lemmas / tags and link to tag descriptions. Conversion of tags in whole files will be provided.
- The package to download and the Subversion repository should contain a copy of this wiki pages, both in DokuWiki syntax and in HTML.
Features and values
- Normalize processing of pronouns, determiners, interrogative adverbs etc. Old drivers use a different approach from the new ones (beginning with Bulgarian). Pronoun as an independent part of speech will cease to exist.
- Remove
pos=“pron”
. Distribute pronouns to nouns, adjectives and adverbs. When encoding into a tagset that distinguishes pronouns, detect pronouns by non-emptyprontype
. Remove subposes of pronouns (pers
,clit
…) - Remove
subpos = pers
andsubpos = recip
. These features should now be captured byprontype
. - Move
subpos=clit
to an independent feature so that it is easier to ask whether a pronoun is personal. Or remove the feature. This is connected to the problem of changed processing of pronouns, and of the processing of contracted word forms (see below). - Create new value
prontype = oth
. It will be used when we know that a word is pronoun but we do not know its type and do not want to set the defaultprs
(personal). - Create a new feature or some other means of marking that a Czech pronoun contains an encliticised form of the 2nd person of the auxiliary verb “být”, as in “ses”, “sis”, “tos”, “tys”. The Multext East tagset defines a special feature called
clitic_s
, used only in Czech.
- Find more fine-grained classification of punctuation and symbols. Danish has punctuation proper, symbols (+, $), and strange strings like “U-21”.
- Classification of coordinative conjunctions: copulative, adversative etc. Example: sv::mamba.
- Create overview of common elements that do not have their own part of speech. E.g. infinitive particles. Specifically, make a global classification of “small parts of speech” (pavilón malých šelem ), especially particles, adpositions and conjunctions, punctuation and foreign words, hyphenated prefixes and abbreviations. (Pronouns, determiners and numerals are excluded as a separate chapter.)
- Create an overview of verb forms, moods and tenses in various languages, and their representation in DZ Interset.
- Design methodology for contracted word forms where two different parts of speech have merged in one word. Currently this is solved at different places in different ways. Examples: Czech “proň”, “bylť”, German “zum” and probably other phenomena in other languages. Enclitical pronouns are special case. In some languages they can or must join a verb or other words (Czech “byls”, “sis”, “tys”, “žes”; Spanish “despiértate”, “despertarse”, “démelo”). Similar problem (but to much greater extent) arises in Arabic where the grammar often requires small words being glued to big ones (e.g. “wa” (conjunction), “al” (article) etc.) Warning! I believe that currently the Czech “proň” is tagged differently in cs::pdt and cs::multext. Both set
subpos = preppron
but the former under pronoun, the latter under preposition.
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. - Define new value pluralia tantum (
ptan
) ofnumber
? It is present in the Bulgarian CoNLL tagset and it could theoretically be present in other languages, including Czech.
Specific drivers
- cs::pdt - reimplement “type L” pronouns as collective pronouns (introduced due to Bulgarian)