[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
user:zeman:interset:to-do [2014/06/10 23:01]
zeman Hotovo, alespoň částečně.
user:zeman:interset:to-do [2014/06/18 22:01]
zeman Changes přejmenováno na Changes.txt.
Line 3: Line 3:
 ===== Interset 2.0 ===== ===== Interset 2.0 =====
  
-Interset is being completely rewritten using Moosethe object-oriented extension to Perl 5In the end it will be published on CPAN as ''Lingua::Interset''. +  * Udělat pořádek v metodách ''set()'' a ''get()'' třídy ''FeatureStructure''. Metodakterá vrací podle nálady buď skalár, nebo odkaz na pole, asi vůbec nemá smysl. Asi chci mít jeden get, který vrací vždy skaláry (v případě více hodnot seřazené podle abecedy a slepené svislítkem), a jiný get, který vrací vždy seznamy (v případě jedné hodnoty to bude jednoprvkový seznam)A možná ještě třetí, který vrací skaláry, ale bez svislítek, v případě více hodnot vrátí tu první nebo nejbezpříznakovější nebo tak něco. Naopak set by asi stačil jeden, který sám pozná, jestli má na vstupu jednu hodnotu, několik hodnot, svislítka, nebo odkaz(y) na pole. A pokud odkazy, tak ještě zkontroluje, zda to cílové pole není náhodou jen jednoprvkové. 
 +  * Opravit chybu: Jestliže mám hodnoty rysů pro ''decode()'' nachystané v tabulce a jestliže se mezi nimi vyskytne např. odkaz na pole, potom všechny struktury rysů, které ''decode()'' vrátí, budou toto pole sdílet, protože budou obsahovat stejný odkaz. Bylo by lepší místo toho dělat hloubkové kopie, aby si uživatel mohl obsah struktury bez obav měnit. Tohle by se dalo zařídit uvnitř metody ''multiset()''
 +  * Přesunout ovladače konkrétních sad značek o patro níž, např. z ''Lingua::Interset::EN::Penn'' se stane ''Lingua::Interset::Tagset::EN::Penn''Je to sice nechutně dlouhé, ale od toho nás stejně odstíní obecné funkce v hlavním modulu Intersetu. Naopak kdybychom to takhle nechali, tak máme zaděláno na problém s rozpoznáním, který modul je ovladač a který je něco jiného. A ten problém může s plnou silou udeřit později, až už budeme mít třeba 20 ovladačů a bude mnohem obtížnější to předělat. Třeba pokud se rozhodnu mít ještě nějakou další předem neohraničenou množinu modulů, které se budou třídit podle jazyka.
   * Projít ''###!!!'', zejména ve FeatureStructure:   * Projít ''###!!!'', zejména ve FeatureStructure:
-    * Přejmenovat prep na adp? 
-    * Úplně rozpustit subpos? 
-    * Dokumentace nových rysů: nountype, adjtype, verbtype, conjtype. 
     * Nemohli bychom zrušit rys synpos?     * Nemohli bychom zrušit rys synpos?
-    * Nová hodnota prn v prontype. 
-    * Sloučeny rysy tense a subtense. 
     * Co s číslovkami?     * Co s číslovkami?
-  * 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'). 
-      * Částečně už jsou zprovozněné, ale zatím k těm skutečným (novým, starých driverů se to netýká) přistupují staticky, bez vytvoření objektu třídy Tagset. To by se mělo nějak upravit kvůli přístupu ke zděděným metodám apod. Taky kvůli tomu, že cílové funkce jsou metody a očekávají parametr $self, takže u encode() a decode() teď dojde k posunu na zásobníku! Možná by měla přibýt obecná funkce, která vytvoří objekt driver pro daný tagset a vrátí ho. U starých driverů by měla vrátit nějaký obálkový objekt. 
-      * 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.   * Přenést všechny ovladače, které vznikly v Treexu a do SVN Intersetu se zatím nedostaly.
-  * Přenést celý projekt Interset i s historií ze serveru ''svn'' na Redmine.+  * Oprášit pravidelné kopírování wiki stránek Intersetu do repozitáře SVN (resp. Redmine). Nyní je tam zastaralá kopie.
   * Uspořádat seminář a brainstorming pro zájemce o Interset.   * Uspořádat seminář a brainstorming pro zájemce o Interset.
     * Do té doby prozkoumat Martinovy návrhy a udělat si na ně názor.     * Do té doby prozkoumat Martinovy návrhy a udělat si na ně názor.
   * Sepsat manuál pro nové autory ovladačů.   * 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.   * 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.
     * Sem patří i Tagzplorer!     * Sem patří i Tagzplorer!
-    * Interset by si zasloužil nějaké logo. 
  
 ===== Infrastructure ===== ===== 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.    * 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: 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 the ''other'' 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 an ''other'' 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'' and ''other'' 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.   * 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.   * 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.   * 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 ===== ===== Features and values =====

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