From 593152871ea226cb2ab1b34f0909f7357aa3ad7c Mon Sep 17 00:00:00 2001 From: aarne Date: Sat, 26 Feb 2011 10:24:32 +0000 Subject: [PATCH] generalized V2V construction to present participles --- lib/src/english/CatEng.gf | 2 +- lib/src/english/LexiconEng.gf | 2 ++ lib/src/english/ParadigmsEng.gf | 6 ++++-- lib/src/english/VerbEng.gf | 4 ++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/src/english/CatEng.gf b/lib/src/english/CatEng.gf index 667f94677..1ac8392ab 100644 --- a/lib/src/english/CatEng.gf +++ b/lib/src/english/CatEng.gf @@ -77,7 +77,7 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in { V2, V2A, V2Q, V2S = Verb ** {c2 : Str} ; V3 = Verb ** {c2, c3 : Str} ; VV = {s : VVForm => Str ; typ : VVType} ; - V2V = Verb ** {c2 : Str ; typ : VVType} ; + V2V = Verb ** {c2,c3 : Str ; typ : VVType} ; A = {s : AForm => Str} ; A2 = {s : AForm => Str ; c2 : Str} ; diff --git a/lib/src/english/LexiconEng.gf b/lib/src/english/LexiconEng.gf index 7164f227f..6eb06eab5 100644 --- a/lib/src/english/LexiconEng.gf +++ b/lib/src/english/LexiconEng.gf @@ -21,6 +21,8 @@ lin become_VA = mkVA (irregV "become" "became" "become") ; beer_N = regN "beer" ; beg_V2V = mkV2V (regDuplV "beg") noPrep toP ; + -- prevent_V2V = ingV2V (mkV "prevent") noPrep (mkPrep "from") ; + -- make_V2V = mkV2V make_V noPrep noPrep ; big_A = duplADeg "big" ; bike_N = regN "bike" ; bird_N = regN "bird" ; diff --git a/lib/src/english/ParadigmsEng.gf b/lib/src/english/ParadigmsEng.gf index 776d61ade..6db672bd0 100644 --- a/lib/src/english/ParadigmsEng.gf +++ b/lib/src/english/ParadigmsEng.gf @@ -307,7 +307,8 @@ oper mkV2S : V -> Prep -> V2S ; -- e.g. tell (NP) (that S) mkVV : V -> VV ; -- e.g. want (to VP) ingVV : V -> VV ; -- e.g. start (VPing) - mkV2V : V -> Prep -> Prep -> V2V ; -- e.g. want (NP) (to VP) + mkV2V : V -> Prep -> Prep -> V2V ; -- e.g. want (noPrep NP) (to VP) + ingV2V : V -> Prep -> Prep -> V2V ; -- e.g. prevent (noPrep NP) (from VP-ing) mkVA : V -> VA ; -- e.g. become (AP) mkV2A : V -> Prep -> V2A ; -- e.g. paint (NP) (AP) mkVQ : V -> VQ ; -- e.g. wonder (QS) @@ -555,7 +556,8 @@ mkSubj : Str -> Subj = \s -> lin Subj {s = s} ; --% mkV0 v = v ; mkV2S v p = lin V2S (prepV2 v p) ; - mkV2V v p t = lin V2V (prepV2 v p ** {typ = VVInf}) ; + mkV2V v p t = lin V2V (prepV2 v p ** {c3 = t.s ; typ = VVAux}) ; + ingV2V v p t = lin V2V (prepV2 v p ** {c3 = t.s ; typ = VVPresPart}) ; mkVA v = lin VA v ; mkV2A v p = lin V2A (prepV2 v p) ; mkV2Q v p = lin V2Q (prepV2 v p) ; diff --git a/lib/src/english/VerbEng.gf b/lib/src/english/VerbEng.gf index ed055dc0f..2bd9940b8 100644 --- a/lib/src/english/VerbEng.gf +++ b/lib/src/english/VerbEng.gf @@ -16,7 +16,7 @@ concrete VerbEng of Verb = CatEng ** open ResEng in { ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ; ComplVA v ap = insertObj (ap.s) (predV v) ; - SlashV2V v vp = insertObjc (\\a => infVP v.typ vp a) (predVc v) ; + SlashV2V v vp = insertObjc (\\a => v.c3 ++ infVP v.typ vp a) (predVc v) ; SlashV2S v s = insertObjc (\\_ => conjThat ++ s.s) (predVc v) ; SlashV2Q v q = insertObjc (\\_ => q.s ! QIndir) (predVc v) ; SlashV2A v ap = insertObjc (\\a => ap.s ! a) (predVc v) ; ---- @@ -28,7 +28,7 @@ concrete VerbEng of Verb = CatEng ** open ResEng in { {c2 = vp.c2} ; SlashV2VNP vv np vp = insertObjPre (\\_ => vv.c2 ++ np.s ! Acc) - (insertObjc (\\a => infVP vv.typ vp a) (predVc vv)) ** + (insertObjc (\\a => vv.c3 ++ infVP vv.typ vp a) (predVc vv)) ** {c2 = vp.c2} ; UseComp comp = insertObj comp.s (predAux auxBe) ;