From 5053ace548f31295fb62503443a889cba0550a01 Mon Sep 17 00:00:00 2001 From: aarne Date: Sun, 5 Jun 2016 10:59:27 +0000 Subject: [PATCH] made preposition stranding default in LangEng (and SyntaxEng) questions and relatives, and that_RP in relatives; these are more natural in modern language and more often right; piped piping and which can be accessed via ExtraEng --- lib/src/english/ExtraEng.gf | 20 ++++++++++++++++++++ lib/src/english/ExtraEngAbs.gf | 3 ++- lib/src/english/QuestionEng.gf | 8 +++++--- lib/src/english/RelativeEng.gf | 21 ++++++++++++--------- 4 files changed, 39 insertions(+), 13 deletions(-) diff --git a/lib/src/english/ExtraEng.gf b/lib/src/english/ExtraEng.gf index 03b6f2208..3b7b2c1dc 100644 --- a/lib/src/english/ExtraEng.gf +++ b/lib/src/english/ExtraEng.gf @@ -13,6 +13,11 @@ concrete ExtraEng of ExtraEngAbs = CatEng ** a = RAg (agrP3 nu.n) } ; + PiedPipingRelSlash rp slash = { + s = \\t,a,p,agr => + slash.c2 ++ rp.s ! RPrep (fromAgr agr).g ++ slash.s ! t ! a ! p ! oDir ; + c = NPAcc + } ; StrandRelSlash rp slash = { s = \\t,a,p,ag => rp.s ! RC (fromAgr ag).g NPAcc ++ slash.s ! t ! a ! p ! oDir ++ slash.c2 ; @@ -23,6 +28,9 @@ concrete ExtraEng of ExtraEngAbs = CatEng ** c = NPAcc } ; + PiedPipingQuestSlash ip slash = + mkQuestion (ss (slash.c2 ++ ip.s ! NPAcc)) slash ; + StrandQuestSlash ip slash = {s = \\t,a,b,q => (mkQuestion (ss (ip.s ! NPAcc)) slash).s ! t ! a ! b ! q ++ slash.c2 @@ -285,6 +293,18 @@ lin a = RNoAg } ; + which_who_RP = + { s = table { + RC _ (NCase Gen) | RC _ NPNomPoss => "whose" ; + RC Neutr _ => "which" ; + RC _ NPAcc => "whom" ; + RC _ (NCase Nom) => "who" ; + RPrep Neutr => "which" ; + RPrep _ => "whom" + } ; + a = RNoAg + } ; + who_RP = { s = table { RC _ (NCase Gen) | RC _ NPNomPoss => "whose" ; diff --git a/lib/src/english/ExtraEngAbs.gf b/lib/src/english/ExtraEngAbs.gf index cfbbfe939..b9b6642a4 100644 --- a/lib/src/english/ExtraEngAbs.gf +++ b/lib/src/english/ExtraEngAbs.gf @@ -8,7 +8,8 @@ abstract ExtraEngAbs = Extra - [ProDrop] ** { CompoundCN : CN -> CN -> CN ; -- rock album - that_RP : RP ; -- "that" as a relational pronoun (IdRP is "which" / "who") + which_who_RP : RP ; -- "which" / "who" as a relative pronoun (used to be the default for IdRP) + that_RP : RP ; -- "that" as a relational pronoun (since 5/6/2016 default for IdRP) which_RP : RP ; -- force "which" who_RP : RP ; -- force "who" ; in Acc, also "who": "the girl who I saw" emptyRP : RP ; -- empty RP in Acc position: "the girl I saw" diff --git a/lib/src/english/QuestionEng.gf b/lib/src/english/QuestionEng.gf index 26666a5af..6603b9134 100644 --- a/lib/src/english/QuestionEng.gf +++ b/lib/src/english/QuestionEng.gf @@ -18,9 +18,11 @@ concrete QuestionEng of Question = CatEng ** open ResEng, Prelude in { in {s = \\t,a,b,_ => cl.s ! t ! a ! b ! oDir} ; ---- QuestSlash ip slash = - mkQuestion (ss (slash.c2 ++ ip.s ! NPAcc)) slash ; - --- stranding in ExratEng - + {s = \\t,a,b,q => + (mkQuestion (ss (ip.s ! NPAcc)) slash).s ! t ! a ! b ! q ++ slash.c2 + } ; + --- changed AR 5/6/2016: uses stranding; pied-piping in ExtraEng + QuestIAdv iadv cl = mkQuestion iadv cl ; QuestIComp icomp np = diff --git a/lib/src/english/RelativeEng.gf b/lib/src/english/RelativeEng.gf index 28c8b8ec2..eb597d7c8 100644 --- a/lib/src/english/RelativeEng.gf +++ b/lib/src/english/RelativeEng.gf @@ -22,13 +22,13 @@ concrete RelativeEng of Relative = CatEng ** open ResEng in { c = npNom } ; --- Pied piping: "at which we are looking". Stranding and empty --- relative are defined in $ExtraEng.gf$ ("that we are looking at", +-- Pied piping: "that we are looking at". Pied piping and empty +-- relative are defined in $ExtraEng.gf$ ("at which we are looking", -- "we are looking at"). RelSlash rp slash = { - s = \\t,a,p,agr => - slash.c2 ++ rp.s ! RPrep (fromAgr agr).g ++ slash.s ! t ! a ! p ! oDir ; + s = \\t,a,p,ag => + rp.s ! RC (fromAgr ag).g NPAcc ++ slash.s ! t ! a ! p ! oDir ++ slash.c2 ; c = NPAcc } ; @@ -37,14 +37,17 @@ concrete RelativeEng of Relative = CatEng ** open ResEng in { a = RAg np.a } ; - IdRP = + +-- relative pronoun "that" used by default, because it is always correct, even in absence of gender/animateness information + + IdRP = { s = table { RC _ (NCase Gen) | RC _ NPNomPoss => "whose" ; - RC Neutr _ => "which" ; - RC _ NPAcc => "whom" ; - RC _ (NCase Nom) => "who" ; + RC Neutr _ => "that" ; + RC _ NPAcc => "that" ; + RC _ (NCase Nom) => "that" ; RPrep Neutr => "which" ; - RPrep _ => "whom" + RPrep _ => "who" } ; a = RNoAg } ;