diff --git a/src/russian/CatRus.gf b/src/russian/CatRus.gf index ddc185c22..8a56a6f1c 100644 --- a/src/russian/CatRus.gf +++ b/src/russian/CatRus.gf @@ -22,13 +22,13 @@ lincat VP = { adv : AgrTable ; -- modals are in position of adverbials ones numgen gets fixed verb : ResRus.VerbForms ; - dep : Str ; -- dependent infinites and such + dep : Str ; -- dependent infinitives and such compl : AgrTable } ; VPSlash = { adv : AgrTable ; -- modals are in position of adverbials ones numgen gets fixed verb : ResRus.VerbForms ; - dep : Str ; -- dependent infinites and such + dep : Str ; -- dependent infinitives and such compl : AgrTable ; c : ComplementCase } ; ---- @@ -40,13 +40,13 @@ lincat Cl = { subj,compl,adv : Str ; verb : VerbForms ; - dep : Str ; -- dependent infinites and such + dep : Str ; -- dependent infinitives and such a : Agr } ; ClSlash = { subj,compl,adv : Str ; verb : VerbForms ; - dep : Str ; -- dependent infiniteve and such + dep : Str ; -- dependent infinitives and such a : Agr ; c : ComplementCase } ; @@ -70,7 +70,7 @@ lincat QCl = { subj,compl,adv : Str ; verb : VerbForms ; - dep : Str ; -- dependent infinites and such + dep : Str ; -- dependent infinitives and such a : Agr } ; @@ -88,7 +88,7 @@ lincat subj : AdjTable ; compl,adv : AgrTable ; verb : VerbForms ; - dep : Str ; -- dependent infinites and such + dep : Str ; -- dependent infinitives and such a : Agr } ; diff --git a/src/russian/IdiomRus.gf b/src/russian/IdiomRus.gf index b8c86675b..211458689 100644 --- a/src/russian/IdiomRus.gf +++ b/src/russian/IdiomRus.gf @@ -1,6 +1,6 @@ --# -path=.:../abstract:../common:../../prelude -concrete IdiomRus of Idiom = CatRus ** open Prelude, TenseRus, ResRus, Coordination, MorphoRus in { +concrete IdiomRus of Idiom = CatRus ** open Prelude, ParamX, TenseRus, ResRus, Coordination, MorphoRus in { flags optimize=all_subs ; coding=utf8 ; lin @@ -12,20 +12,20 @@ lin -- : NP -> RS -> Cl ; -- it is I who did it CleftNP np rs = { - subj=np.s ! Nom ; - adv="это" ; - verb=nullVerb ; -- ??? + subj="это" ++ np.s ! Nom ; + adv=[]; + verb=copulaEll ; -- ??? dep=[] ; compl=embedInCommas (rs.s ! agrGenNum np.a ! Animate ! Nom) ; -- TODO: here or in subj??? a=np.a } ; -- : Adv -> S -> Cl ; -- it is here she slept CleftAdv adv s = { - subj="это" ++ adv.s ++ comma ++ s.s ! Ind ; -- TODO: Check what is expressed by this? Why comma? - adv=[] ; + subj="это" ; + adv=adv.s ; verb=nullVerb ; -- ??? dep=[] ; - compl=[] ; + compl=s.s ! Ind ; a=Ag (GSg Neut) P3 } ; @@ -49,7 +49,7 @@ lin ImpPl1 vp = let a = Ag GPl P1 in let pol = PPos in - let parts = verbAgr vp.verb Infinitive Pres a pol.p in + let parts = verbAgr vp.verb Infinitive Pres a pol.p in -- colloquial, should be Fut, but then present fails... let p1 = "давайте" in { s = p1 ++ pol.s ++ vp.adv ! a ++ parts.p2 ++ vp.dep ++ vp.compl ! a } ; diff --git a/src/russian/RelativeRus.gf b/src/russian/RelativeRus.gf index 93ccaf35c..fed76c3f1 100644 --- a/src/russian/RelativeRus.gf +++ b/src/russian/RelativeRus.gf @@ -27,7 +27,7 @@ lin -- : RP -> VP -> RCl ; -- who loves John RelVP rp vp = { subj=rp.s; - adv=\\a=>[] ; + adv=\\a=>vp.adv ! Ag (GSg Neut) P3 ; verb=vp.verb ; dep=vp.dep ; compl=vp.compl ; diff --git a/src/russian/ResRus.gf b/src/russian/ResRus.gf index 59aa8bc89..09dd59f11 100644 --- a/src/russian/ResRus.gf +++ b/src/russian/ResRus.gf @@ -104,7 +104,6 @@ oper } in noMinorCases nfb ; - -- TODO: gender can help identify cases more precisely guessLessNounForms : Str -> Gender -> Animacy -> NounForms = \word, g, anim -> let nfb : NounFormsBase = diff --git a/src/russian/SentenceRus.gf b/src/russian/SentenceRus.gf index c52bb0c88..bcf5feca4 100644 --- a/src/russian/SentenceRus.gf +++ b/src/russian/SentenceRus.gf @@ -24,9 +24,8 @@ lin -- : Temp -> Pol -> RCl -> RS ; -- that had not slept UseRCl temp pol rcl = { s = \\gn,anim,cas => - let a=genNumAgrP3 gn in - let parts = R.verbAgr rcl.verb Ind temp.t a pol.p in - temp.s ++ parts.p1 ++ pol.s ++ rcl.subj ! gn ! anim ! cas ++ rcl.adv ! a ++ parts.p2 ++ rcl.dep ++ rcl.compl ! a ; + let parts = R.verbAgr rcl.verb Ind temp.t rcl.a pol.p in + temp.s ++ parts.p1 ++ pol.s ++ rcl.subj ! gn ! anim ! Nom ++ rcl.adv ! rcl.a ++ parts.p2 ++ rcl.dep ++ rcl.compl ! rcl.a ; c = Nom } ; @@ -86,7 +85,6 @@ lin -- : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today AdvSlash cls adv = cls ** { --- subj=cls.subj ++ adv.s -- two variants? TODO: check adv=cls.adv ++ adv.s } ; diff --git a/src/russian/todo.txt b/src/russian/todo.txt index 5f1bc6b6c..31fe208c6 100644 --- a/src/russian/todo.txt +++ b/src/russian/todo.txt @@ -1,19 +1,16 @@ # Some problematic places > l UttS (AdvS (AdAdv quite_Adv (ComparAdvAdj less_CAdv narrow_A everything_NP)) (UseCl (TTAnt TPres ASimul) PNeg (ExistNP something_NP))) -довольно менее узко , чем всё не существовает что &+ -то +довольно менее узко , чем всё что &+ -то не существует Lang: DetCN (DetQuantOrd (PossPron he_Pron) (NumCard (NumDigits (IDig D_0))) (OrdSuperl bad_A)) (RelCN (ConjCN both7and_DConj (BaseCN (UseN2 mother_N2) (UseN lamp_N))) (UseRCl (TTAnt TPast ASimul) PNeg (RelCl (ImpersCl ready_VP)))) -LangRus: 0 его самых плохих как матерей , так и ламп , таких не , что бы &+ ли готовым +LangRus: 0 его самых плохих как матерей , так и ламп , не таких , что бы &+ ли готовым Lang: AdvS there7from_Adv (UseCl (TTAnt TFut AAnter) PPos (CleftNP everybody_NP (UseRCl (TTAnt TPres AAnter) PPos (RelSlash (FunRP in8front_Prep (languageNP polish_Language) IdRP) (SlashPrep (PredVP somebody_NP hungry_VP) through_Prep))))) -LangRus: оттуда все это , польский перед которыми голоден - -Lang: ComplN3 distance_N3 (DetCN (DetQuant (PossPron youPol_Pron) NumSg) (SentCN (ComplN2 brother_N2 everything_NP) (EmbedVP hungry_VP))) -LangRus: расстояние от вашего брат всего быть голодно до +LangRus: оттуда все это , через польского перед которыми кто &+ -то голоден AllRusAbs: UseCl (TTAnt TPres AAnter) PNeg (CleftNP (PredetNP not_Predet (CountNP somePl_Det everybody_NP)) (UseRCl (TTAnt TFut AAnter) PNeg (RelVP IdRP ready_VP))) -AllRus: не некоторые из всех не это , которые не будут готовыми +AllRus: не некоторые из всех не это , не которые будут готовыми > l PrepNP above_Prep (UsePron i_Pron) над мной @@ -21,15 +18,30 @@ AllRus: не некоторые из всех не это , которые не - verb zv index does not support "*", it figures forms out from 3 given examples instead. Most of the time. - AllRusAbs: UttImpPol PPos (ImpVP (ComplSlash (Slash2V3 add_V3 everybody_NP) (PPartNP somebody_NP drink_V2))) AllRus: складываем &+ те всех в кого &+ -то пит -** UseCl (TTAnt TPres ASimul) PPos (ExistNP (CountNP someSg_Det (DetCN (DetQuant this_Quant (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot1 ∅))))))) (UseN worm_N)))) -LangRus-NEW> некоторое из этих двадцати червей существует - Inherent number for nouns. eg, for geonames or pluralia tantum. -** UseCl (TTAnt TPres ASimul) PPos (CleftNP (UsePron she_Pron) (UseRCl (TTAnt TPres ASimul) PPos (RelSlash ∅ (SlashVP somebody_NP (SlashV2a write_V2))))) -LangRus-NEW> она это , которую кто &+ -то пишет +** UseCl (TTAnt TPres ASimul) PPos (CleftNP (UsePron she_Pron) (UseRCl (TTAnt TCond ASimul) PPos (RelSlash IdRP (SlashVP somebody_NP (SlashV2a write_V2))))) +LangRus-NEW> она это , которую кто &+ -то писал бы LangRus-OLD> это она , которую кто-то пишет + +** UseCl (TTAnt TPres ASimul) PPos (CleftNP (UsePron she_Pron) (UseRCl (TTAnt TPres ASimul) PPos (RelVP (FunRP with_Prep somebody_NP IdRP) thirsty_VP))) +LangRus-NEW> она это, кто-то с которой хочет пить +LangRus-OLD> это она , кто-то с которой хочет пить + +** UseCl (TTAnt TPres ASimul) PPos (ImpersCl (ReflVP (SlashV2A paint_V2A (PositA ∅)))) +LangRus-NEW> рисует горячее себя +LangRus-OLD> рисует горячим себя + +AllRusAbs> l UseCl (TTAnt TPres ASimul) PPos (ImpersCl (ReflVP (SlashV2A paint_V2A (PositA hot_A)))) +рисует горячее себя + +AllRusAbs> p "рисуешь горячий себя" +UseCl (TTAnt TPres ASimul) PPos (GenericCl (ReflVP (SlashV2A paint_V2A (PositA hot_A)))) + +** UseCl (TTAnt TPres ASimul) PPos (GenericCl (ComplSlash (SlashV2A paint_V2A (PositA hot_A)) (UsePron she_Pron))) +LangRus-NEW> рисуешь горячую неё +LangRus-OLD> ты рисуешь горячим её +