diff --git a/src/abstract/Extend.gf b/src/abstract/Extend.gf index 2781e92af..a5eb3e24a 100644 --- a/src/abstract/Extend.gf +++ b/src/abstract/Extend.gf @@ -27,9 +27,11 @@ abstract Extend = Cat ** { CompBareCN : CN -> Comp ; -- (is) teacher + PiedPipingQuestSlash : IP -> ClSlash -> QCl ; -- with whom does John live + PiedPipingRelSlash : RP -> ClSlash -> RCl ; -- with whom John lives StrandQuestSlash : IP -> ClSlash -> QCl ; -- whom does John live with - StrandRelSlash : RP -> ClSlash -> RCl ; -- that he lives in - EmptyRelSlash : ClSlash -> RCl ; -- he lives in + StrandRelSlash : RP -> ClSlash -> RCl ; -- that he lives with + EmptyRelSlash : ClSlash -> RCl ; -- he lives with -- $VP$ conjunction, separate categories for finite and infinitive forms (VPS and VPI, respectively) diff --git a/src/common/ExtendFunctor.gf b/src/common/ExtendFunctor.gf index a5711b37c..1b78fd204 100644 --- a/src/common/ExtendFunctor.gf +++ b/src/common/ExtendFunctor.gf @@ -22,9 +22,11 @@ lin GenModNP num np cn = DetCN (DetQuant DefArt num) (AdvCN cn (PrepNP possess_Prep np)) ; -- this man's car(s) ; DEFAULT the car of this man GenModIP = variants {} ; -- Num -> IP -> CN -> IP ; -- whose car(s) CompBareCN cn = CompCN cn ; -- (is) teacher ; DEFAULT is a teacher - StrandQuestSlash = QuestSlash ; -- whom does John live with ; DEFAULT with whom does John live - StrandRelSlash = RelSlash ; -- that he lives in ; DEFAULT in which he lives - EmptyRelSlash = RelSlash IdRP ; -- he lives in ; DEFAULT in which he lives + StrandQuestSlash = QuestSlash ; -- whom does John live with (default in Eng) + StrandRelSlash = RelSlash ; -- that he lives in (standard in Eng) + PiedPipingQuestSlash = QuestSlash ; -- with whom does John live (default in most languages) + PiedPipingRelSlash = RelSlash ; -- in which he lives (default in most languages) + EmptyRelSlash = RelSlash IdRP ; -- he lives in ; that he lives in MkVPS vp = variants {} ; -- Temp -> Pol -> VP -> VPS ; -- hasn't slept ConjVPS = variants {} ; -- Conj -> [VPS] -> VPS ; -- has walked and won't sleep PredVPS = variants {} ; -- NP -> VPS -> S ; -- has walked and won't sleep diff --git a/src/english/ExtendEng.gf b/src/english/ExtendEng.gf index c43e535a0..ec15e1ce9 100644 --- a/src/english/ExtendEng.gf +++ b/src/english/ExtendEng.gf @@ -16,7 +16,8 @@ concrete ExtendEng of Extend = FocusAP, FocusAdV, FocusAdv, FocusObj, GenIP, GenModIP, GenModNP, GenNP, GenRP, GerundAdv, GerundCN, GerundNP, IAdvAdv, ICompAP, InOrderToVP, NominalizeVPSlashNP, PassAgentVPSlash, PassVPSlash, ProgrVPSlash, PastPartAP, PastPartAgentAP, PositAdVAdj, PredVPSVV, PredetRNP, PrepCN, - EmbedSSlash, PredIAdvVP, PresPartAP, PurposeVP, ReflPoss, ReflPron, ReflRNP, SlashBareV2S, SlashV2V, StrandQuestSlash, StrandRelSlash, + EmbedSSlash, PredIAdvVP, PresPartAP, PurposeVP, ReflPoss, ReflPron, ReflRNP, SlashBareV2S, SlashV2V, + StrandQuestSlash, StrandRelSlash, PiedPipingQuestSlash, PiedPipingRelSlash, UncontractedNeg, UttAccIP, UttAccNP, UttAdV, UttDatIP, UttDatNP, UttVPShort, WithoutVP, A2VPSlash, N2VPSlash, CardCNCard, ProDrop, theyFem_Pron, theyNeutr_Pron ] @@ -50,6 +51,15 @@ concrete ExtendEng of Extend = GenModNP num np cn = DetCN (DetQuant (GenNP (lin NP np)) num) cn ; GenModIP num ip cn = IdetCN (IdetQuant (GenIP (lin IP ip)) num) cn ; + PiedPipingRelSlash rp slash = { + s = \\t,a,p,agr => + slash.c2 ++ rp.s ! RPrep (fromAgr agr).g ++ slash.s ! t ! a ! p ! oDir ; + 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 diff --git a/src/english/QuestionEng.gf b/src/english/QuestionEng.gf index 775a8f867..95ba15107 100644 --- a/src/english/QuestionEng.gf +++ b/src/english/QuestionEng.gf @@ -21,7 +21,7 @@ concrete QuestionEng of Question = CatEng ** open ResEng, Prelude in { {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 + --- changed AR 5/6/2016: uses stranding; pied-piping in ExtraEng and ExtendEng QuestIAdv iadv cl = mkQuestion iadv cl ; diff --git a/src/english/RelativeEng.gf b/src/english/RelativeEng.gf index 512d6e1a8..d2572a3e0 100644 --- a/src/english/RelativeEng.gf +++ b/src/english/RelativeEng.gf @@ -22,8 +22,8 @@ concrete RelativeEng of Relative = CatEng ** open ResEng, Prelude in { c = npNom } ; --- Pied piping: "that we are looking at". Pied piping and empty --- relative are defined in $ExtraEng.gf$ ("at which we are looking", +-- Preposition stranding: "that we are looking at". Pied piping and empty +-- relative are defined in $ExtendEng.gf$ ("at which we are looking", -- "we are looking at"). RelSlash rp slash = { diff --git a/src/finnish/VerbFin.gf b/src/finnish/VerbFin.gf index cee24034d..0bade5825 100644 --- a/src/finnish/VerbFin.gf +++ b/src/finnish/VerbFin.gf @@ -80,7 +80,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in { -} ---- - SlashV2VNP = StemFin.slashV2VNP ; ---- compilation to pgf takes too long 6/8/2013 hence a simplified version in stemmed/ +SlashV2VNP = StemFin.slashV2VNP ; ---- compilation to pgf takes too long 6/8/2013 hence a simplified version in stemmed/ AdvVP vp adv = insertAdv (\\_ => adv.s) vp ; ExtAdvVP vp adv = insertAdv (\\_ => embedInCommas adv.s) vp ;