1
0
forked from GitHub/gf-rgl

(Extend) Add RelVPS : RP -> VPS -> RS

Implemented in Swe and Eng, empty variants in ExtendFunctor.
This commit is contained in:
Inari Listenmaa
2021-05-04 12:17:40 +08:00
parent 310e143bea
commit cc75637704
4 changed files with 19 additions and 2 deletions

View File

@@ -47,6 +47,7 @@ abstract Extend = Cat ** {
PredVPS : NP -> VPS -> S ; -- she [has walked and won't sleep]
SQuestVPS : NP -> VPS -> QS ; -- has she walked
QuestVPS : IP -> VPS -> QS ; -- who has walked
RelVPS : RP -> VPS -> RS ; -- which won't sleep
-- existentials that work in the absence of Cl
ExistS : Temp -> Pol -> NP -> S ; -- there was a party

View File

@@ -26,6 +26,7 @@ lin
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
RelVPS = variants {} ; -- RP -> VPS -> RS ; -- which won't sleep
MkVPI vp = variants {} ; -- Temp -> Pol -> VP -> VPI ; -- to sleep / hasn't slept
ConjVPI = variants {} ; -- Conj -> [VPI] -> VPI ; -- has walked and won't sleep
ComplVPIVV = variants {} ; -- VV -> VPI -> VP ; -- want to sleep and to walk

View File

@@ -5,7 +5,7 @@ concrete ExtendEng of Extend =
[
VPS, ListVPS, VPI, ListVPI, VPS2, ListVPS2, VPI2, ListVPI2, RNP, RNPList,
AdAdV, AdjAsCN, AdjAsNP, ApposNP, AdvIsNP,
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, QuestVPS, SQuestVPS,
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, QuestVPS, SQuestVPS, RelVPS,
MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
MkVPS2, BaseVPS2, ConsVPS2, ConjVPS2, ComplVPS2, ReflVPS2,
MkVPI2, BaseVPI2, ConsVPI2, ConjVPI2, ComplVPI2,
@@ -127,6 +127,11 @@ concrete ExtendEng of Extend =
QuestVPS ip vps = let vp = vps.s ! oDir ! toAgr ip.n P3 Neutr in {
s = \\q => ip.s ! npNom ++ vp.fin ++ vp.inf
} ;
RelVPS rp vps = {
s = \\agr => let vp = vps.s ! oDir ! agr in
rp.s ! RC (fromAgr agr).g npNom ++ vp.fin ++ vp.inf ;
c = npNom ;
} ;
MkVPI vp = mkVPI (lin VP vp) ;

View File

@@ -7,7 +7,7 @@ concrete ExtendSwe of Extend = CatSwe **
StrandRelSlash, EmptyRelSlash, StrandQuestSlash,
PassVPSlash, PassAgentVPSlash, UttVPShort, ByVP, InOrderToVP,
MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS,
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, RelVPS,
MkVPS2, ConjVPS2, ComplVPS2, ReflVPS2, MkVPI2, ConjVPI2, ComplVPI2,
ICompAP,ProDrop,EmbedSSlash,
AdAdV, PositAdVAdj, GerundCN, GerundNP, GerundAdv, PresPartAP, PastPartAP, PastPartAgentAP,
@@ -132,6 +132,16 @@ in {
}
} ;
RelVPS rp vps = {
s = \\ag,rcase =>
let agr = case rp.a of { -- RP's agr may override in the regular RelativeScand, is this true with VPS too?
RNoAg => ag ;
RAg g n p => {g = g ; n = n ; p = p}
} ;
in rp.s ! ag.g ! ag.n ! rcase ++ vps.s ! Sub ! agr ;
c = NPNom
} ;
MkVPS t p vp = {
s = \\o,a =>
let