add standalone forms for VPS, i.e. version where clitics are not in the beginning

This commit is contained in:
Krasimir Angelov
2026-10-03 10:06:01 +02:00
parent 20c02ba2a5
commit 7c7659c9a3
+27 -8
View File
@@ -60,8 +60,11 @@ lin
TPastSimple = {s = [] ; t = Past} ; TPastSimple = {s = [] ; t = Past} ;
lincat lincat
VPS = {s : Agr => Str} ; -- s follows an overt subject, which hosts the second-position clitics.
[VPS] = {s1,s2 : Agr => Str} ; -- standalone is used without an overt subject and puts the finite verb
-- before the clitic cluster so that the cluster never starts the utterance.
VPS = {s,standalone : Agr => Str} ;
[VPS] = {s1,s2,standalone1 : Agr => Str} ;
VPI = {s : Agr => Str} ; VPI = {s : Agr => Str} ;
[VPI] = {s1,s2 : Agr => Str} ; [VPI] = {s1,s2 : Agr => Str} ;
[Comp] = {s1,s2 : Agr => Str} ; [Comp] = {s1,s2 : Agr => Str} ;
@@ -73,13 +76,29 @@ param
RNPHead = AntecedentHead | FixedHead Agr ; RNPHead = AntecedentHead | FixedHead Agr ;
lin lin
MkVPS temp pol vp = {s = \\a => MkVPS temp pol vp = {
tenseClitic temp.t a ++ vp.clit ! a ++ s = \\a =>
tenseVerb temp.t vp.verb a pol.p ++ vp.compl ! a tenseClitic temp.t a ++ vp.clit ! a ++
tenseVerb temp.t vp.verb a pol.p ++ vp.compl ! a ;
standalone = \\a =>
tenseVerb temp.t vp.verb a pol.p ++
tenseClitic temp.t a ++ vp.clit ! a ++ vp.compl ! a
} ;
BaseVPS x y = {
s1 = x.s ; s2 = y.s ;
standalone1 = x.standalone
} ;
ConsVPS x xs = {
s1 = \\a => x.s ! a ++ SOFT_BIND ++ "," ++ xs.s1 ! a ;
s2 = xs.s2 ;
standalone1 = \\a =>
x.standalone ! a ++ SOFT_BIND ++ "," ++ xs.standalone1 ! a ;
} ;
ConjVPS conj xs = {
s = \\a => conj.s1 ++ xs.s1 ! a ++ conj.s2 ++ xs.s2 ! a ;
standalone = \\a =>
conj.s1 ++ xs.standalone1 ! a ++ conj.s2 ++ xs.s2 ! a
} ; } ;
BaseVPS x y = {s1 = x.s ; s2 = y.s} ;
ConsVPS x xs = {s1 = \\a => x.s ! a ++ SOFT_BIND ++ "," ++ xs.s1 ! a ; s2 = xs.s2} ;
ConjVPS conj xs = {s = \\a => conj.s1 ++ xs.s1 ! a ++ conj.s2 ++ xs.s2 ! a} ;
PredVPS np vps = sentence True (np.s ! Nom) [] (vps.s ! np.a) ; PredVPS np vps = sentence True (np.s ! Nom) [] (vps.s ! np.a) ;
MkVPI vp = {s = \\a => vp.verb.inf ++ vp.clit ! a ++ vp.compl ! a} ; MkVPI vp = {s = \\a => vp.verb.inf ++ vp.clit ! a ++ vp.compl ! a} ;