From 1c2b1828b1a537f82954770c53da624dadbc2a66 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 7 Dec 2010 20:23:57 +0000 Subject: [PATCH] CompCN added to Ger Fin Dut Rus Pol --- lib/src/dutch/VerbDut.gf | 3 ++- lib/src/finnish/VerbFin.gf | 10 +++++++++ lib/src/german/VerbGer.gf | 8 +++++-- lib/src/polish/ResPol.gf | 6 +++++ lib/src/polish/VerbPol.gf | 2 ++ lib/src/russian/VerbRus.gf | 45 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 71 insertions(+), 3 deletions(-) diff --git a/lib/src/dutch/VerbDut.gf b/lib/src/dutch/VerbDut.gf index 6e37a346c..e44b04d81 100644 --- a/lib/src/dutch/VerbDut.gf +++ b/lib/src/dutch/VerbDut.gf @@ -63,7 +63,8 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in { insertObj (\\_ => appPrep v.c2 np.s) ( predVv v)))) ** {c2 = v.c2} ; - UseComp comp = insertAdv (comp.s ! agrP3 Sg) (predV zijn_V) ; -- agr not used + UseComp comp = insertObj comp.s (predV zijn_V) ; -- agr not used + CompCN cn = {s = \\a => cn.s ! Strong ! NF a.n Nom} ; CompAP ap = {s = \\_ => ap.s ! APred} ; CompNP np = {s = \\_ => np.s ! NPNom} ; CompAdv a = {s = \\_ => a.s} ; diff --git a/lib/src/finnish/VerbFin.gf b/lib/src/finnish/VerbFin.gf index 9f6e20837..d7e2fe02f 100644 --- a/lib/src/finnish/VerbFin.gf +++ b/lib/src/finnish/VerbFin.gf @@ -99,6 +99,16 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in { } --- definiteness of NP ? in ap.s ! False ! (NCase n c) } ; + CompCN cn = { + s = \\agr => + let + n = complNumAgr agr ; + c = case n of { + Sg => Nom ; -- min olen iso ; te olette iso + Pl => Part -- me olemme isoja ; te olette isoja + } --- definiteness of NP ? + in cn.s ! (NCase n c) + } ; CompNP np = {s = \\_ => np.s ! NPCase Nom} ; CompAdv a = {s = \\_ => a.s} ; diff --git a/lib/src/german/VerbGer.gf b/lib/src/german/VerbGer.gf index cdd5e1466..cd3cfca2b 100644 --- a/lib/src/german/VerbGer.gf +++ b/lib/src/german/VerbGer.gf @@ -63,14 +63,18 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer in { insertObj (\\_ => appPrep v.c2 np.s) ( predV v)))) ** {c2 = v.c2} ; - UseComp comp = insertAdv (comp.s ! agrP3 Sg) (predV sein_V) ; -- agr not used + UseComp comp = insertObj comp.s (predV sein_V) ; -- agr not used -- we want to say "ich liebe sie nicht" but not "ich bin alt nicht" CompAP ap = {s = \\_ => ap.s ! APred} ; CompNP np = {s = \\_ => np.s ! NPC Nom} ; CompAdv a = {s = \\_ => a.s} ; --- CompCN cn + CompCN cn = {s = \\a => case numberAgr a of { + Sg => "ein" + pronEnding ! GSg cn.g ! Nom ++ cn.s ! Strong ! Sg ! Nom ; + Pl => cn.s ! Strong ! Pl ! Nom + } + } ; AdvVP vp adv = insertAdv adv.s vp ; AdVVP adv vp = insertAdV adv.s vp ; diff --git a/lib/src/polish/ResPol.gf b/lib/src/polish/ResPol.gf index 66f6421bd..1fc0a54f3 100644 --- a/lib/src/polish/ResPol.gf +++ b/lib/src/polish/ResPol.gf @@ -221,6 +221,12 @@ -- possible problem: dzieci ,ktorych piecioro bawilo sie... / okna, ktorych piec stalo opartych o sciane... param GenNum = MascPersSg | MascAniSg | MascInaniSg | FemSg | NeutSg | MascPersPl | OthersPl; + --- AR 7/12/2010 for VerbPol.CompCN + oper numGenNum : GenNum -> Number = \n -> case n of { + MascPersPl | OthersPl => Pl ; + _ => Sg + } ; + param MaybeGenNum = NoGenNum | JustGenNum GenNum; oper diff --git a/lib/src/polish/VerbPol.gf b/lib/src/polish/VerbPol.gf index c8ff9ad9d..0f9e41c73 100644 --- a/lib/src/polish/VerbPol.gf +++ b/lib/src/polish/VerbPol.gf @@ -40,6 +40,8 @@ lin -- CompAP : AP -> Comp ; -- (be) small CompAP ap = { s = \\gn => ap.s ! AF gn Nom }; + CompCN cn = { s = \\gn => cn.s ! numGenNum gn ! Nom }; --- AR 7/12/2010 + -- CompNP : NP -> Comp ; -- (be) a man CompNP np = { s = \\gn => np.dep !InstrC }; diff --git a/lib/src/russian/VerbRus.gf b/lib/src/russian/VerbRus.gf index 6c0623d82..024c78466 100644 --- a/lib/src/russian/VerbRus.gf +++ b/lib/src/russian/VerbRus.gf @@ -82,6 +82,51 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in { s3 = \\g,n=> "" } ; +-- AR 7/12/2010 --- hmmm + CompCN zloj ={ + s= \\clf,gn,p => + let num = numGenNum gn ; + zlojsg = zloj.s ! NF Sg Nom ; + zlojpl = zloj.s ! NF Pl Nom + in + case clf of { +-- person is ignored ! + ClInfinit => "быть" ++ zloj.s ! NF Sg Inst ; + ClImper => case gn of + { (GSg _) => "будь" ++ zloj.s ! NF Sg Inst ; + GPl => "будьте" ++ zloj.s ! NF Pl Inst + }; +-- infinitive does not save GenNum, +-- but indicative does for the sake of adjectival predication ! + ClIndic Present _ => zloj.s ! NF num Nom ; + ClIndic PastRus _ => case gn of + { (GSg Fem) => "была" ++ zlojsg ; + (GSg Masc) => "был" ++ zlojsg ; + (GSg Neut) => "был" ++ zlojsg ; + GPl => "были" ++ zlojpl + }; + ClIndic Future _ => case gn of + { GPl => case p of + { P3 => "будут" ++ zlojpl ; + P2 => "будете" ++ zlojpl ; + P1 => "будем" ++ zlojpl + } ; + (GSg _) => case p of + {P3 => "будет" ++ zlojsg ; + P2 => "будешь"++ zlojsg ; + P1=> "буду" ++ zlojsg + } + }; + ClCondit => "" + } ; + + asp = Imperfective ; + w = Act; + negBefore = True; + s2 = ""; + s3 = \\g,n=> "" + } ; + -- Verb phrases can also be formed from adjectives (" молод"), -- common nouns (" человек"), and noun phrases (" самый молодой").