From 52b2d9e72888c2e135a8f4efef954f2a01754a84 Mon Sep 17 00:00:00 2001 From: krasimir Date: Thu, 28 Feb 2008 14:59:02 +0000 Subject: [PATCH] added VV category --- lib/resource/bulgarian/CatBul.gf | 1 + lib/resource/bulgarian/ParadigmsBul.gf | 6 +++- lib/resource/bulgarian/SentenceBul.gf | 10 ++++++ lib/resource/bulgarian/StructuralBul.gf | 45 +++++++++---------------- lib/resource/bulgarian/VerbBul.gf | 9 ++++- 5 files changed, 40 insertions(+), 31 deletions(-) diff --git a/lib/resource/bulgarian/CatBul.gf b/lib/resource/bulgarian/CatBul.gf index a40101137..d7ca0785a 100644 --- a/lib/resource/bulgarian/CatBul.gf +++ b/lib/resource/bulgarian/CatBul.gf @@ -100,6 +100,7 @@ concrete CatBul of Cat = open ResBul, Prelude, (R = ParamX) in { V, VS, VQ, VA = Verb ; V2, V2A = Verb ** {c2 : Preposition} ; V3 = Verb ** {c2, c3 : Preposition} ; + VV = Verb ; A = {s : AForm => Str} ; A2 = {s : AForm => Str ; c2 : Str} ; diff --git a/lib/resource/bulgarian/ParadigmsBul.gf b/lib/resource/bulgarian/ParadigmsBul.gf index c902f9ccb..6a0b6a31c 100644 --- a/lib/resource/bulgarian/ParadigmsBul.gf +++ b/lib/resource/bulgarian/ParadigmsBul.gf @@ -89,6 +89,8 @@ oper mkVS : V -> VS ; + mkVV : V -> VV ; + mkPN : Str -> Gender -> PN ; mkIAdv : Str -> IAdv ; @@ -105,7 +107,9 @@ oper dirdirV3 v = dirV3 v noPrep ; mkVS v = v ** {lock_VS = <>} ; - + + mkVV v = v ** {lock_VV = <>} ; + mkPN s g = {s = s; g = g ; lock_PN = <>} ; mkIAdv s = {s1 = s; s2 = s + "то"; lock_IAdv = <>} ; diff --git a/lib/resource/bulgarian/SentenceBul.gf b/lib/resource/bulgarian/SentenceBul.gf index 40b836ade..6f7047de4 100644 --- a/lib/resource/bulgarian/SentenceBul.gf +++ b/lib/resource/bulgarian/SentenceBul.gf @@ -19,6 +19,16 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in { SlashV2 np v2 = mkClause (np.s ! RSubj) np.a (predV v2) ** {c2 = v2.c2} ; + SlashVVV2 np vv v2 = + mkClause (np.s ! RSubj) np.a + (let vp = predV vv + in { s = \\t,a,p,agr,q => vp.s ! t ! a ! p ! agr ! q ++ "да" ++ v2.s ! (VPres (numGenNum agr.gn) agr.p) ; + imp = vp.imp ; + s2 = vp.s2 ; + subjRole = vp.subjRole + }) ** + {c2 = v2.c2} ; + AdvSlash slash adv = { s = \\t,a,b,o => slash.s ! t ! a ! b ! o ++ adv.s ; c2 = slash.c2 diff --git a/lib/resource/bulgarian/StructuralBul.gf b/lib/resource/bulgarian/StructuralBul.gf index 132351135..e8ce1673d 100644 --- a/lib/resource/bulgarian/StructuralBul.gf +++ b/lib/resource/bulgarian/StructuralBul.gf @@ -19,20 +19,7 @@ concrete StructuralBul of Structural = CatBul ** but_PConj = ss "но" ; by8agent_Prep = mkPrep "чрез" Acc ; by8means_Prep = mkPrep "чрез" Acc ; -{- - can8know_VV, can_VV = { - s = table { - VVF VInf => ["be able to"] ; - VVF VPres => "can" ; - VVF VPPart => ["been able to"] ; - VVF VPresPart => ["being able to"] ; - VVF VPast => "could" ; --# notpresent - VVPastNeg => "couldn't" ; --# notpresent - VVPresNeg => "can't" - } ; - isAux = True - } ; --} + can8know_VV, can_VV = mkVV (mkV166 "мога") ; during_Prep = mkPrep ["по време на"] Acc ; either7or_DConj = sd2 "или" "или" ** {n = Sg} ; everybody_NP = mkNP "всеки" (GSg Masc) P3 ; @@ -61,20 +48,22 @@ concrete StructuralBul of Structural = CatBul ** more_CAdv = {s=[]; sn="повече"} ; most_Predet = {s = \\_ => "повечето"} ; much_Det = mkDeterminerSg "много" "много" "много"; -{- - must_VV = { + must_VV = mkVV { s = table { - VVF VInf => ["have to"] ; - VVF VPres => "must" ; - VVF VPPart => ["had to"] ; - VVF VPresPart => ["having to"] ; - VVF VPast => ["had to"] ; --# notpresent - VVPastNeg => ["hadn't to"] ; --# notpresent - VVPresNeg => "mustn't" - } ; - isAux = True + VPres _ _ => "трябва" ; + VAorist _ _ => "трябваше" ; + VImperfect _ _ => "трябвало" ; + VPerfect _ => "трябвало" ; + VPluPerfect _ => "трябвало" ; + VPassive _ => "трябвало" ; + VPresPart _ => "трябвало" ; + VImperative Sg => "трябвай" ; + VImperative Pl => "трябвайте" ; + VGerund => "трябвайки" + } ; + vtype=VNormal ; + lock_V=<> } ; --} no_Phr = ss "не" ; on_Prep = mkPrep "на" Acc ; ---- one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED @@ -108,9 +97,7 @@ concrete StructuralBul of Structural = CatBul ** to_Prep = mkPrep "до" Acc ; under_Prep = mkPrep "под" Acc ; very_AdA = ss "много" ; -{- - want_VV = P.mkVV (P.regV "want") ; --} + want_VV = mkVV (mkV186 "искам") ; we_Pron = mkPron "ние" "нас" "ни" "наш" "нашия" "нашият" "наша" "нашата" "наше" "нашето" "наши" "нашите" GPl P1 ; whatPl_IP = mkIP "какви" "какви" GPl ; whatSg_IP = mkIP "какъв" "какъв" (GSg Masc) ; diff --git a/lib/resource/bulgarian/VerbBul.gf b/lib/resource/bulgarian/VerbBul.gf index db522c29a..486809304 100644 --- a/lib/resource/bulgarian/VerbBul.gf +++ b/lib/resource/bulgarian/VerbBul.gf @@ -1,4 +1,4 @@ -concrete VerbBul of Verb = CatBul ** open ResBul, ParadigmsBul in { +concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in { flags optimize=all_subs ; @@ -8,6 +8,13 @@ concrete VerbBul of Verb = CatBul ** open ResBul, ParadigmsBul in { ComplV3 v np np2 = insertObj (\\_ => v.c2.s ++ np.s ! RObj v.c2.c ++ v.c3.s ++ np2.s ! RObj v.c3.c) (predV v) ; + ComplVV vv vp = { + s = \\t,a,p,agr,q => (predV vv).s ! t ! a ! p ! agr ! q ++ "да" ++ vp.s ! Pres ! Simul ! Pos ! agr ! False ; + imp = vp.imp ; + s2 = vp.s2 ; + subjRole = vp.subjRole + } ; + ComplVS v s = insertObj (\\_ => "," ++ "че" ++ s.s) (predV v) ; UseComp comp = insertObj comp.s (predV verbBe) ;