mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
preposition stranding in English and Scand
This commit is contained in:
@@ -10,4 +10,8 @@ abstract Extra = Cat ** {
|
||||
GenNP : NP -> Quant ; -- this man's
|
||||
ComplBareVS : VS -> S -> VP ; -- know you go
|
||||
|
||||
}
|
||||
StrandRelSlash : RP -> Slash -> RCl ; -- that he lives in
|
||||
EmptyRelSlash : RP -> Slash -> RCl ; -- he lives in
|
||||
StrandQuestSlash : IP -> Slash -> QCl ; -- whom does John live with
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,20 @@ concrete ExtraEng of ExtraEngAbs = CatEng ** open ResEng, Prelude in {
|
||||
GenNP np = {s = \\_ => np.s ! Gen} ;
|
||||
ComplBareVS v s = insertObj (\\_ => s.s) (predV v) ;
|
||||
|
||||
StrandRelSlash rp slash = {
|
||||
s = \\t,a,p,_ => rp.s ! RC Acc ++ slash.s ! t ! a ! p ! ODir ++ slash.c2 ;
|
||||
c = Acc
|
||||
} ;
|
||||
EmptyRelSlash rp slash = {
|
||||
s = \\t,a,p,_ => slash.s ! t ! a ! p ! ODir ++ slash.c2 ;
|
||||
c = Acc
|
||||
} ;
|
||||
|
||||
StrandQuestSlash ip slash =
|
||||
{s = \\t,a,b,q =>
|
||||
(mkQuestion (ss (ip.s ! Acc)) slash).s ! t ! a ! b ! q ++ slash.c2
|
||||
};
|
||||
|
||||
UncNegCl t a cl = {s = t.s ++ a.s ++ cl.s ! t.t ! a.a ! neg ! ODir} ;
|
||||
UncNegQCl t a cl = {s = \\q => t.s ++ a.s ++ cl.s ! t.t ! a.a ! neg !q} ;
|
||||
UncNegRCl t a cl = {
|
||||
|
||||
@@ -19,7 +19,7 @@ concrete QuestionEng of Question = CatEng ** open ResEng, Prelude in {
|
||||
|
||||
QuestSlash ip slash =
|
||||
mkQuestion (ss (slash.c2 ++ ip.s ! Acc)) slash ;
|
||||
--- stranding in ExtEng
|
||||
--- stranding in ExratEng
|
||||
|
||||
QuestIAdv iadv cl = mkQuestion iadv cl ;
|
||||
|
||||
|
||||
@@ -22,11 +22,12 @@ concrete RelativeEng of Relative = CatEng ** open ResEng in {
|
||||
c = Nom
|
||||
} ;
|
||||
|
||||
-- Preposition stranding: "that we are looking at". Pied-piping is
|
||||
-- deferred to $ExtEng.gf$ ("at which we are looking").
|
||||
-- Pied piping: "at which we are looking". Stranding and empty
|
||||
-- relative are defined in $ExtraEng.gf$ ("that we are looking at",
|
||||
-- "we are looking at").
|
||||
|
||||
RelSlash rp slash = {
|
||||
s = \\t,a,p,_ => rp.s ! RC Acc ++ slash.s ! t ! a ! p ! ODir ++ slash.c2 ;
|
||||
s = \\t,a,p,_ => slash.c2 ++ rp.s ! RPrep ++ slash.s ! t ! a ! p ! ODir ;
|
||||
c = Acc
|
||||
} ;
|
||||
|
||||
|
||||
@@ -8,4 +8,26 @@ incomplete concrete ExtraScand of ExtraScandAbs = CatScand ** open CommonScand,R
|
||||
|
||||
ComplBareVS v s = insertObj (\\_ => s.s ! Sub) (predV v) ;
|
||||
|
||||
StrandRelSlash rp slash = {
|
||||
s = \\t,a,p,ag =>
|
||||
rp.s ! ag.gn ! RNom ++ slash.s ! t ! a ! p ! Sub ++ slash.c2 ;
|
||||
c = NPAcc
|
||||
} ;
|
||||
EmptyRelSlash rp slash = {
|
||||
s = \\t,a,p,ag =>
|
||||
slash.s ! t ! a ! p ! Sub ++ slash.c2 ;
|
||||
c = NPAcc
|
||||
} ;
|
||||
|
||||
StrandQuestSlash ip slash = {
|
||||
s = \\t,a,p =>
|
||||
let
|
||||
cls = slash.s ! t ! a ! p ;
|
||||
who = ip.s ! accusative
|
||||
in table {
|
||||
QDir => who ++ cls ! Inv ++ slash.c2 ;
|
||||
QIndir => who ++ cls ! Sub ++ slash.c2
|
||||
}
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -23,15 +23,13 @@ incomplete concrete RelativeScand of Relative =
|
||||
c = NPNom
|
||||
} ;
|
||||
|
||||
--- We make this easy by using "som" and preposition stranding. It would be
|
||||
--- a proble to determine whether $slash$ takes a direct object, since
|
||||
--- $slash.c2$ is defined to be just a string.
|
||||
--
|
||||
-- The empty relative is left to $ExtScand$.
|
||||
-- This rule uses pied piping ("huset i vilket hon bor")
|
||||
-- Preposition stranding ("huset som hon bor i")
|
||||
-- and the empty relative ("huset hon bor i") are defined in $ExtraScand$.
|
||||
|
||||
RelSlash rp slash = {
|
||||
s = \\t,a,p,ag =>
|
||||
rp.s ! ag.gn ! RNom ++ slash.s ! t ! a ! p ! Sub ++ slash.c2 ;
|
||||
slash.c2 ++ rp.s ! ag.gn ! RPrep ++ slash.s ! t ! a ! p ! Sub ;
|
||||
c = NPAcc
|
||||
} ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user