mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
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
This commit is contained in:
@@ -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" ;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
Reference in New Issue
Block a user