mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
(Extend) Add RelVPS : RP -> VPS -> RS
Implemented in Swe and Eng, empty variants in ExtendFunctor.
This commit is contained in:
@@ -47,6 +47,7 @@ abstract Extend = Cat ** {
|
|||||||
PredVPS : NP -> VPS -> S ; -- she [has walked and won't sleep]
|
PredVPS : NP -> VPS -> S ; -- she [has walked and won't sleep]
|
||||||
SQuestVPS : NP -> VPS -> QS ; -- has she walked
|
SQuestVPS : NP -> VPS -> QS ; -- has she walked
|
||||||
QuestVPS : IP -> VPS -> QS ; -- who has walked
|
QuestVPS : IP -> VPS -> QS ; -- who has walked
|
||||||
|
RelVPS : RP -> VPS -> RS ; -- which won't sleep
|
||||||
|
|
||||||
-- existentials that work in the absence of Cl
|
-- existentials that work in the absence of Cl
|
||||||
ExistS : Temp -> Pol -> NP -> S ; -- there was a party
|
ExistS : Temp -> Pol -> NP -> S ; -- there was a party
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ lin
|
|||||||
MkVPS vp = variants {} ; -- Temp -> Pol -> VP -> VPS ; -- hasn't slept
|
MkVPS vp = variants {} ; -- Temp -> Pol -> VP -> VPS ; -- hasn't slept
|
||||||
ConjVPS = variants {} ; -- Conj -> [VPS] -> VPS ; -- has walked and won't sleep
|
ConjVPS = variants {} ; -- Conj -> [VPS] -> VPS ; -- has walked and won't sleep
|
||||||
PredVPS = variants {} ; -- NP -> VPS -> S ; -- 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
|
MkVPI vp = variants {} ; -- Temp -> Pol -> VP -> VPI ; -- to sleep / hasn't slept
|
||||||
ConjVPI = variants {} ; -- Conj -> [VPI] -> VPI ; -- has walked and won't sleep
|
ConjVPI = variants {} ; -- Conj -> [VPI] -> VPI ; -- has walked and won't sleep
|
||||||
ComplVPIVV = variants {} ; -- VV -> VPI -> VP ; -- want to sleep and to walk
|
ComplVPIVV = variants {} ; -- VV -> VPI -> VP ; -- want to sleep and to walk
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ concrete ExtendEng of Extend =
|
|||||||
[
|
[
|
||||||
VPS, ListVPS, VPI, ListVPI, VPS2, ListVPS2, VPI2, ListVPI2, RNP, RNPList,
|
VPS, ListVPS, VPI, ListVPI, VPS2, ListVPS2, VPI2, ListVPI2, RNP, RNPList,
|
||||||
AdAdV, AdjAsCN, AdjAsNP, ApposNP, AdvIsNP,
|
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,
|
MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||||
MkVPS2, BaseVPS2, ConsVPS2, ConjVPS2, ComplVPS2, ReflVPS2,
|
MkVPS2, BaseVPS2, ConsVPS2, ConjVPS2, ComplVPS2, ReflVPS2,
|
||||||
MkVPI2, BaseVPI2, ConsVPI2, ConjVPI2, ComplVPI2,
|
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 {
|
QuestVPS ip vps = let vp = vps.s ! oDir ! toAgr ip.n P3 Neutr in {
|
||||||
s = \\q => ip.s ! npNom ++ vp.fin ++ vp.inf
|
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) ;
|
MkVPI vp = mkVPI (lin VP vp) ;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ concrete ExtendSwe of Extend = CatSwe **
|
|||||||
StrandRelSlash, EmptyRelSlash, StrandQuestSlash,
|
StrandRelSlash, EmptyRelSlash, StrandQuestSlash,
|
||||||
PassVPSlash, PassAgentVPSlash, UttVPShort, ByVP, InOrderToVP,
|
PassVPSlash, PassAgentVPSlash, UttVPShort, ByVP, InOrderToVP,
|
||||||
MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||||
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS,
|
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, RelVPS,
|
||||||
MkVPS2, ConjVPS2, ComplVPS2, ReflVPS2, MkVPI2, ConjVPI2, ComplVPI2,
|
MkVPS2, ConjVPS2, ComplVPS2, ReflVPS2, MkVPI2, ConjVPI2, ComplVPI2,
|
||||||
ICompAP,ProDrop,EmbedSSlash,
|
ICompAP,ProDrop,EmbedSSlash,
|
||||||
AdAdV, PositAdVAdj, GerundCN, GerundNP, GerundAdv, PresPartAP, PastPartAP, PastPartAgentAP,
|
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 = {
|
MkVPS t p vp = {
|
||||||
s = \\o,a =>
|
s = \\o,a =>
|
||||||
let
|
let
|
||||||
|
|||||||
Reference in New Issue
Block a user