mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
restricted VP conjunction in English and Scand
This commit is contained in:
@@ -14,4 +14,17 @@ abstract Extra = Cat ** {
|
|||||||
EmptyRelSlash : RP -> Slash -> RCl ; -- he lives in
|
EmptyRelSlash : RP -> Slash -> RCl ; -- he lives in
|
||||||
StrandQuestSlash : IP -> Slash -> QCl ; -- whom does John live with
|
StrandQuestSlash : IP -> Slash -> QCl ; -- whom does John live with
|
||||||
|
|
||||||
|
-- $VP$ conjunction, which has different fragments implemented in
|
||||||
|
-- different languages - never a full $VP$, though.
|
||||||
|
|
||||||
|
cat
|
||||||
|
VPI ;
|
||||||
|
[VPI] {2} ;
|
||||||
|
|
||||||
|
fun
|
||||||
|
MkVPI : VP -> VPI ;
|
||||||
|
ConjVPI : Conj -> [VPI] -> VPI ;
|
||||||
|
ComplVPIVV : VV -> VPI -> VP ;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
concrete ExtraEng of ExtraEngAbs = CatEng ** open ResEng, Prelude in {
|
concrete ExtraEng of ExtraEngAbs = CatEng **
|
||||||
|
open ResEng, Coordination, Prelude in {
|
||||||
|
|
||||||
lin
|
lin
|
||||||
GenNP np = {s = \\_ => np.s ! Gen} ;
|
GenNP np = {s = \\_ => np.s ! Gen} ;
|
||||||
@@ -18,6 +19,24 @@ concrete ExtraEng of ExtraEngAbs = CatEng ** open ResEng, Prelude in {
|
|||||||
(mkQuestion (ss (ip.s ! Acc)) slash).s ! t ! a ! b ! q ++ slash.c2
|
(mkQuestion (ss (ip.s ! Acc)) slash).s ! t ! a ! b ! q ++ slash.c2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
lincat
|
||||||
|
VPI = {s : VPIForm => Agr => Str} ;
|
||||||
|
[VPI] = {s1,s2 : VPIForm => Agr => Str} ;
|
||||||
|
|
||||||
|
param
|
||||||
|
VPIForm = VPIInf | VPIPPart ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
BaseVPI = twoTable2 VPIForm Agr ;
|
||||||
|
ConsVPI = consrTable2 VPIForm Agr comma ;
|
||||||
|
|
||||||
|
MkVPI vp = {
|
||||||
|
s = \\v,a => vp.ad ++ vp.inf ++ vp.s2 ! a
|
||||||
|
} ;
|
||||||
|
ConjVPI = conjunctTable2 VPIForm Agr ;
|
||||||
|
ComplVPIVV vv vpi =
|
||||||
|
insertObj (\\a => (if_then_Str vv.isAux [] "to") ++ vpi.s ! VPIInf ! a) (predVV vv) ;
|
||||||
|
|
||||||
UncNegCl t a cl = {s = t.s ++ a.s ++ cl.s ! t.t ! a.a ! neg ! ODir} ;
|
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} ;
|
UncNegQCl t a cl = {s = \\q => t.s ++ a.s ++ cl.s ! t.t ! a.a ! neg !q} ;
|
||||||
UncNegRCl t a cl = {
|
UncNegRCl t a cl = {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
incomplete concrete ExtraScand of ExtraScandAbs = CatScand ** open CommonScand,ResScand in {
|
incomplete concrete ExtraScand of ExtraScandAbs = CatScand **
|
||||||
|
open CommonScand,Coordination,ResScand in {
|
||||||
lin
|
lin
|
||||||
GenNP np = {
|
GenNP np = {
|
||||||
s = \\n,_,g => np.s ! NPPoss (gennum g n) ;
|
s = \\n,_,g => np.s ! NPPoss (gennum g n) ;
|
||||||
@@ -30,4 +30,21 @@ incomplete concrete ExtraScand of ExtraScandAbs = CatScand ** open CommonScand,R
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
VPI = {s : VPIForm => Agr => Str} ;
|
||||||
|
[VPI] = {s1,s2 : VPIForm => Agr => Str} ;
|
||||||
|
|
||||||
|
param
|
||||||
|
VPIForm = VPIInf | VPISup ; ---- sup not yet used
|
||||||
|
|
||||||
|
lin
|
||||||
|
BaseVPI = twoTable2 VPIForm Agr ;
|
||||||
|
ConsVPI = consrTable2 VPIForm Agr comma ;
|
||||||
|
|
||||||
|
MkVPI vp = {
|
||||||
|
s = \\v,a => infVP vp a ---- no sup
|
||||||
|
} ;
|
||||||
|
ConjVPI = conjunctTable2 VPIForm Agr ;
|
||||||
|
ComplVPIVV vv vpi = insertObj (\\a => vv.c2 ++ vpi.s ! VPIInf ! a) (predV vv) ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user