~~NOTOC~~
v rámečku jsou moduly, které se na fázi podílejí
všechny fáze pracují na ''$sentRoot'' - potomek technického kořene
(až na finální sestavení sekvence slov - :?:)
----
{{:user:ptacek:faze1.png|na pocatku}}
====== translation - transfer ======
* u překladu navíc adjectivize: pták -> ptačí
====== preprocess ======
Preprocess
NumeralsWrapper
* (sádlo), (máslo), (olej) -> (sádlo, máslo, olej)
* ''undef($this->{tag})''
* nastav ''$this->{ord}'' podle zobrazení v tredu
* correct_numbers
- číselná t-lemmata
- změna zavěšení :!: nepatri prilis do preprocessu, pozdeji?
====== formémy ======
prochází se do hloubky
Processing
Vallex
Diathesis
Derivation
* pro klauze (top-level a verba): setClauseType
* ''coap'': technické
* ''nv-denom|vocat|partl'': neslovesné top-level
* ''v-vn'': verbonominální
* ''v-imp'': rozkazovací
* ''v-compl'': func COMPL
* ''v-pred'': ostatní
* ''-'': infinitivy
* pro VP:
* nastav fragment xml do ''vallexFrame''
* normalizace framu - jen jeden (teď beru první) form pro functor a form type (kriteria pro výběr?)
* zvol diatezi ''setDiathesis''
* B: base - ACT subjektem
* D1: PAT subjektem
* D2: PAT subjektem + být + participium trpné
* D3: má ustláno od
* uprav frame, aby odpovídal diatezi
* ''Agreement::getSb($node)'' podle diateze
* derivuj - nastav ''synPOS, m_lemma''
* projdi děti:
* identifikuj agreement šipky
* nastav ''frame_element'' - xml formy pro jeden functor
* pro obecný člen:
* derivace pokud už neproběhla
* mám ''frame_element'' nebo dostanu default
* nastav fragment xml do ''vallexFrame''
* normalizace framu - jen jeden (teď beru první) form pro functor a form type (kriteria pro výběr?)
* projdi děti:
* identifikuj agreement šipky
* nastav ''frame_element'' - xml formy pro jeden functor
====== morfo kategorie ======
Vallex
* realize_frame_elements (vybere jednu realizaci z framu a nastaví dětem morfo kategorie)
* m_case
* m_number
* m_negative
* pokud je v rámci určené i něco víc -> píšu rovnou do tagu
* nastaví ''assigned_form'' - už jen jedna forma pro tento functor
====== agreement ======
Agreement
Processing - hledání šipek
====== compounds ======
Compounds
předložky podle ''assigned_form''
složené slovesné tvary podle
* ''isDiathesis()''
* ''isTrTense()''
* ''getDeontmod()''
* ''getVerbmod()''
pozor: spojky až později
====== conjugation + declination ======
Morphology
NumeralsWrapper
pro numerické se volá ''assignNumForm()''
* derivuje podle ''numerType''
* shoda uvnitř víceslovných číslených číslovek
* flexe
pro ostatní uzly
* ''assignTag()''
* ''assignForm()''
====== první reorder ======
PreReorder
* RSTR.adj pod n vlevo
* MANN.adj pod n vlevo
* complex RSTR.adj vpravo
* RSTR.v připojené pomocí vztažného ''který'' vpravo
* lokace a časové určení pod n vpravo
* APP.n \neq ''#PersPron'' vpravo
* EXT \neq ''n.quant'' \lor complex vlevo
* REG.(not v) pod adj|adv vlevo
* DIFF.(not v) pod adj|adv vlevo
* CPR.v.(not inf) rodiče vpravo od děda
* ID vpravo
* adj/adv/n.pron.indef.inter vlevo za případné ''a/i/ale''
Reorder
* ty, co už mají nastavené příznaky, kde se tam ale vzaly :?: Processing :?:
* ''reorderLeftLeftmostParent''
* ''reorderRightLeftmostParent''
* ''reorderRhem''
* ''reorderCprLeftTo''
* ''isPossessive()'' - vlevo před rodiče a rstr bratry
* ''isGenitiveNoun()'' - ihned vpravo za rodiče
====== punctuation + spojky ======
Processing2
Connectors
průchod do hloubky
''$context'' obsahuje informace o pořadí uvnitř skupiny, případně carry bit - oddělit předchozí zleva
zpracování sentencí, klauzí a obecných členů
pouze vytvoření seznamů levých konektorů - čárek a spojek
====== druhý reorder ======
druhý průchod do šířky mohl objednat dalsi presuny pro autosemanticke konektory doleva
příznak ''reorderLeftLeftmostParent''
====== punctuation + spojky ======
vyrobit uzly pro čárky a spojky
až po reordru, takže reorder nepřehazuje čárky
====== reorder klitik ======
až po spojkách, počítají se do pozic
====== vokalizace ======
====== capitalization ======
====== sekvence slov ======