removed Eng-specific qforms from PredFunctor

This commit is contained in:
aarne
2014-03-07 10:58:28 +00:00
parent 743896c3c0
commit 5b799685d8
6 changed files with 175 additions and 58 deletions

View File

@@ -1,11 +1,93 @@
concrete PredEng of Pred = concrete PredEng of Pred =
CatEng [Ant,NP,Utt,IP,IAdv,IComp,Conj,RP,RS] ** CatEng [Ant,NP,Utt,IP,IAdv,IComp,Conj,RP,RS] **
PredFunctor - [QuestIComp] ---- IComp has no parameters in Eng PredFunctor - [
-- for all these, special qforms added in Eng
PassUseV,
AgentPassUseV,
UseVPC,
PredVP,
QuestVP,
RelVP,
QuestIComp ---- IComp has no parameters in Eng
]
with with
(PredInterface = PredInstanceEng) (PredInterface = PredInstanceEng)
** open PredInstanceEng, (R = ResEng) in { ** open PredInstanceEng, (R = ResEng) in {
-- overrides
lin
PassUseV x a t p v = initPrVerbPhraseV a t p v ** {
v = \\agr => tenseV (a.s ++ t.s ++ p.s) t.t a.a p.p passive agr v ;
inf = \\vt => tenseInfV a.s a.a p.p passive v vt ;
obj2 = <noObj, True> ; -- becomes subject control even if object control otherwise "*she was promised by us to love ourselves"
qforms = \\agr => qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
} ;
AgentPassUseV x a t p v np = initPrVerbPhraseV a t p v ** {
v = \\agr => tenseV (a.s ++ t.s ++ p.s) t.t a.a p.p passive agr v ;
inf = \\vt => tenseInfV a.s a.a p.p passive v vt ;
obj2 = <noObj, True> ; -- becomes subject control even if object control otherwise "*she was promised by us to love ourselves"
adv = appComplCase agentCase np ;
qforms = \\agr => qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
} ;
PredVP x np vp = vp ** {
v = applyVerb vp (agr2vagr np.a) ;
subj = appSubjCase np ;
adj = vp.adj ! np.a ;
obj1 = vp.part ++ strComplCase vp.c1 ++ vp.obj1.p1 ! np.a ; ---- apply complCase ---- place of part depends on obj
obj2 = strComplCase vp.c2 ++ vp.obj2.p1 ! (case vp.obj2.p2 of {True => np.a ; False => vp.obj1.p2}) ; ---- apply complCase
c3 = vp.c1 ; -- in case there is any free slot left ---- could be c2
qforms = qformsVP vp (agr2vagr np.a) ;
} ;
QuestVP x ip vp =
let
ipa = ipagr2agr ip.n
in {
v = applyVerb vp (ipagr2vagr ip.n) ;
foc = ip.s ! subjCase ;
focType = FocSubj ;
subj = [] ;
adj = vp.adj ! ipa ;
obj1 = vp.part ++ strComplCase vp.c1 ++ vp.obj1.p1 ! ipa ; ---- appComplCase
obj2 = strComplCase vp.c2 ++ vp.obj2.p1 ! (case vp.obj2.p2 of {True => ipa ; False => vp.obj1.p2}) ; ---- appComplCase
c3 = noComplCase ; -- for one more prep to build ClSlash ---- ever needed for QCl?
adv = vp.adv ;
adV = vp.adV ;
ext = vp.ext ;
qforms = qformsVP vp (ipagr2vagr ip.n) ;
} ;
RelVP rp vp =
let
cl : Agr -> PrClause = \a ->
let rpa = rpagr2agr rp.a a in
vp ** {
v = applyVerb vp (agr2vagr rpa) ;
subj = rp.s ! subjRPCase a ;
adj = vp.adj ! rpa ;
obj1 = vp.part ++ strComplCase vp.c1 ++ vp.obj1.p1 ! rpa ; ---- apply complCase ---- place of part depends on obj
obj2 = strComplCase vp.c2 ++ vp.obj2.p1 ! (case vp.obj2.p2 of {True => rpa ; False => vp.obj1.p2}) ; ---- apply complCase
c3 = noComplCase ; -- for one more prep to build ClSlash
qforms = qformsVP vp (agr2vagr rpa) ;
}
in {s = \\a => declCl (cl a) ; c = subjCase} ;
UseVPC x vpc = initPrVerbPhrase ** { ---- big loss of quality (overgeneration) seems inevitable
v = \\a => <[], [], vpc.s1 ++ vpc.v ! a> ;
inf = \\vt => vpc.inf ! defaultAgr ! vt ; ---- agr
imp = vpc.imp ;
c1 = vpc.c1 ;
c2 = vpc.c2 ;
qforms = \\a => <"do", vpc.inf ! defaultAgr ! vvInfinitive> ; ---- do/does/did
} ;
lin lin
QuestIComp a t p icomp np = QuestIComp a t p icomp np =
let vagr = (agr2vagr np.a) in let vagr = (agr2vagr np.a) in
@@ -17,12 +99,13 @@ lin
qforms = qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p vagr ; qforms = qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p vagr ;
} ; } ;
-- not in functor anyway
NomVPNP vpi = { NomVPNP vpi = {
s = \\c => vpi.s ! R.VVPresPart ! defaultAgr ; s = \\c => vpi.s ! R.VVPresPart ! defaultAgr ;
a = defaultAgr a = defaultAgr
} ; } ;
ByVP x vp vpi = vp ** {adv = "by" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr ByVP x vp vpi = vp ** {adv = "by" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr
WhenVP x vp vpi = vp ** {adv = "when" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr WhenVP x vp vpi = vp ** {adv = "when" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr
BeforeVP x vp vpi = vp ** {adv = "before" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr BeforeVP x vp vpi = vp ** {adv = "before" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr

View File

@@ -89,7 +89,6 @@ lin
v = \\agr => tenseV (a.s ++ t.s ++ p.s) t.t a.a p.p passive agr v ; v = \\agr => tenseV (a.s ++ t.s ++ p.s) t.t a.a p.p passive agr v ;
inf = \\vt => tenseInfV a.s a.a p.p passive v vt ; inf = \\vt => tenseInfV a.s a.a p.p passive v vt ;
obj2 = <noObj, True> ; -- becomes subject control even if object control otherwise "*she was promised by us to love ourselves" obj2 = <noObj, True> ; -- becomes subject control even if object control otherwise "*she was promised by us to love ourselves"
qforms = \\agr => qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
} ; } ;
AgentPassUseV x a t p v np = initPrVerbPhraseV a t p v ** { AgentPassUseV x a t p v np = initPrVerbPhraseV a t p v ** {
@@ -97,7 +96,6 @@ lin
inf = \\vt => tenseInfV a.s a.a p.p passive v vt ; inf = \\vt => tenseInfV a.s a.a p.p passive v vt ;
obj2 = <noObj, True> ; -- becomes subject control even if object control otherwise "*she was promised by us to love ourselves" obj2 = <noObj, True> ; -- becomes subject control even if object control otherwise "*she was promised by us to love ourselves"
adv = appComplCase agentCase np ; adv = appComplCase agentCase np ;
qforms = \\agr => qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
} ; } ;
UseAP x a t p ap = useCopula a t p ** { UseAP x a t p ap = useCopula a t p ** {
@@ -170,7 +168,6 @@ lin
obj1 = vp.part ++ strComplCase vp.c1 ++ vp.obj1.p1 ! np.a ; ---- apply complCase ---- place of part depends on obj obj1 = vp.part ++ strComplCase vp.c1 ++ vp.obj1.p1 ! np.a ; ---- apply complCase ---- place of part depends on obj
obj2 = strComplCase vp.c2 ++ vp.obj2.p1 ! (case vp.obj2.p2 of {True => np.a ; False => vp.obj1.p2}) ; ---- apply complCase obj2 = strComplCase vp.c2 ++ vp.obj2.p1 ! (case vp.obj2.p2 of {True => np.a ; False => vp.obj1.p2}) ; ---- apply complCase
c3 = vp.c1 ; -- in case there is any free slot left ---- could be c2 c3 = vp.c1 ; -- in case there is any free slot left ---- could be c2
qforms = qformsVP vp (agr2vagr np.a) ;
} ; } ;
SlashClNP x cl np = cl ** { -- Cl ::= Cl/NP NP SlashClNP x cl np = cl ** { -- Cl ::= Cl/NP NP
@@ -197,7 +194,6 @@ lin
adv = vp.adv ; adv = vp.adv ;
adV = vp.adV ; adV = vp.adV ;
ext = vp.ext ; ext = vp.ext ;
qforms = qformsVP vp (ipagr2vagr ip.n) ;
} ; } ;
QuestSlash x ip cl = QuestSlash x ip cl =
@@ -234,7 +230,6 @@ lin
adV = negAdV p ; adV = negAdV p ;
foc = icomp.s ! agr2icagr np.a ; foc = icomp.s ! agr2icagr np.a ;
focType = FocObj ; focType = FocObj ;
qforms = qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p vagr ;
} ; } ;
RelVP rp vp = RelVP rp vp =
@@ -249,7 +244,6 @@ lin
obj1 = vp.part ++ strComplCase vp.c1 ++ vp.obj1.p1 ! rpa ; ---- apply complCase ---- place of part depends on obj obj1 = vp.part ++ strComplCase vp.c1 ++ vp.obj1.p1 ! rpa ; ---- apply complCase ---- place of part depends on obj
obj2 = strComplCase vp.c2 ++ vp.obj2.p1 ! (case vp.obj2.p2 of {True => rpa ; False => vp.obj1.p2}) ; ---- apply complCase obj2 = strComplCase vp.c2 ++ vp.obj2.p1 ! (case vp.obj2.p2 of {True => rpa ; False => vp.obj1.p2}) ; ---- apply complCase
c3 = noComplCase ; -- for one more prep to build ClSlash c3 = noComplCase ; -- for one more prep to build ClSlash
qforms = qformsVP vp (agr2vagr rpa) ;
} }
in {s = \\a => declCl (cl a) ; c = subjCase} ; in {s = \\a => declCl (cl a) ; c = subjCase} ;
@@ -347,7 +341,7 @@ lin
imp = vpc.imp ; imp = vpc.imp ;
c1 = vpc.c1 ; c1 = vpc.c1 ;
c2 = vpc.c2 ; c2 = vpc.c2 ;
qforms = \\a => <"do", vpc.inf ! defaultAgr ! vvInfinitive> ; ---- do/does/did
} ; } ;
StartClC x c a b = { StartClC x c a b = {

View File

@@ -1,4 +1,50 @@
instance PredInstanceEng of PredInterface = open ResEng, (X = ParamX), Prelude in { instance PredInstanceEng of PredInterface - [
PrVerbPhrase, PrClause,
initPrVerbPhrase, initPrVerbPhraseV, initPrClause,
useCopula, questCl, linrefPrQCl
] =
open ResEng, (X = ParamX), Prelude in {
----- overrides ----------------
oper
PrVerbPhrase = BasePrVerbPhrase ** {qforms : VAgr => Str * Str} ;
PrClause = BasePrClause ** {qforms : Str * Str} ;
initPrVerbPhrase : PrVerbPhrase = initBasePrVerbPhrase ** {
qforms = \\agr => <[],[]> ;
} ;
initPrVerbPhraseV :
{s : Str ; a : Anteriority} -> {s : Str ; t : STense} -> {s : Str ; p : Polarity} -> PrVerb -> PrVerbPhrase =
\a,t,p,v -> initBasePrVerbPhraseV a t p v ** {
qforms = \\agr => qformsV (a.s ++ t.s ++ p.s) t.t a.a p.p agr v
} ;
initPrClause : PrClause = initBasePrClause ** {
qforms = <[],[]> ;
} ;
useCopula : {s : Str ; a : Anteriority} -> {s : Str ; t : STense} -> {s : Str ; p : Polarity} ->
PrVerbPhrase =
\a,t,p -> initPrVerbPhrase ** {
v = \\agr => tenseCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
inf = \\vt => tenseInfCopula a.s a.a p.p vt ;
imp = \\n => tenseImpCopula p.s p.p n ;
adV = negAdV p ;
qforms = \\agr => qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
} ;
questCl : PrQuestionClause -> Str = \cl -> case cl.focType of {
NoFoc => cl.foc ++ cl.qforms.p1 ++ cl.subj ++ cl.adV ++ cl.qforms.p2 ++ restCl cl ; -- does she sleep
FocObj => cl.foc ++ cl.qforms.p1 ++ cl.subj ++ cl.adV ++ cl.qforms.p2 ++ restCl cl ; -- who does she love
FocSubj => cl.foc ++ cl.v.p1 ++ cl.subj ++ cl.adV ++ cl.v.p2 ++ restCl cl -- who loves her
} ;
linrefPrQCl : PrQuestionClause -> Str = \qcl -> questCl qcl ;
--------------------- ---------------------
-- parameters ------- -- parameters -------
@@ -292,12 +338,6 @@ oper
declSubordCl : PrClause -> Str = declCl ; declSubordCl : PrClause -> Str = declCl ;
declInvCl : PrClause -> Str = declCl ; declInvCl : PrClause -> Str = declCl ;
questCl : PrQuestionClause -> Str = \cl -> case cl.focType of {
NoFoc => cl.foc ++ cl.qforms.p1 ++ cl.subj ++ cl.adV ++ cl.qforms.p2 ++ restCl cl ; -- does she sleep
FocObj => cl.foc ++ cl.qforms.p1 ++ cl.subj ++ cl.adV ++ cl.qforms.p2 ++ restCl cl ; -- who does she love
FocSubj => cl.foc ++ cl.v.p1 ++ cl.subj ++ cl.adV ++ cl.v.p2 ++ restCl cl -- who loves her
} ;
questSubordCl : PrQuestionClause -> Str = \cl -> questSubordCl : PrQuestionClause -> Str = \cl ->
let let
rest = cl.subj ++ cl.adV ++ cl.v.p1 ++ cl.v.p2 ++ restCl cl rest = cl.subj ++ cl.adV ++ cl.v.p1 ++ cl.v.p2 ++ restCl cl
@@ -307,6 +347,15 @@ oper
FocSubj => cl.foc ++ rest -- who loves her FocSubj => cl.foc ++ rest -- who loves her
} ; } ;
--- only needed in Eng because of do questions
qformsV : Str -> STense -> Anteriority -> Polarity -> VAgr -> PrVerb -> Str * Str ;
qformsCopula : Str -> STense -> Anteriority -> Polarity -> VAgr -> Str * Str ;
qformsVP : PrVerbPhrase -> VAgr -> Str * Str
= \vp,vagr -> vp.qforms ! vagr ;
that_Compl : Str = "that" | [] ; that_Compl : Str = "that" | [] ;
-- this part is usually the same in all reconfigurations -- this part is usually the same in all reconfigurations

View File

@@ -105,10 +105,6 @@ oper
vp.adj ! a ++ vp.c1 ++ vp.obj1.p1 ! a ++ vp.c2 ++ vp.obj2.p1 ! a ++ vp.adv ++ vp.ext ; vp.adj ! a ++ vp.c1 ++ vp.obj1.p1 ! a ++ vp.c2 ++ vp.obj2.p1 ! a ++ vp.adv ++ vp.ext ;
qformsV : Str -> STense -> Anteriority -> Polarity -> VAgr -> PrVerb -> Str * Str =
\sta,t,a,p,agr,v -> <[],[]> ; ----- not needed in Swedish
declCl : PrClause -> Str = \cl -> cl.subj ++ cl.v.p1 ++ cl.adV ++ cl.v.p2 ++ restCl cl ; declCl : PrClause -> Str = \cl -> cl.subj ++ cl.v.p1 ++ cl.adV ++ cl.v.p2 ++ restCl cl ;
declSubordCl : PrClause -> Str = \cl -> cl.subj ++ cl.adV ++ cl.v.p1 ++ (cl.v.p2 | []) ++ restCl cl ; declSubordCl : PrClause -> Str = \cl -> cl.subj ++ cl.adV ++ cl.v.p1 ++ (cl.v.p2 | []) ++ restCl cl ;
declInvCl : PrClause -> Str = \cl -> cl.v.p1 ++ cl.subj ++ cl.adV ++ cl.v.p2 ++ restCl cl ; declInvCl : PrClause -> Str = \cl -> cl.v.p1 ++ cl.subj ++ cl.adV ++ cl.v.p2 ++ restCl cl ;
@@ -185,12 +181,6 @@ oper
liftV : Verb -> PrVerb = \v -> liftV : Verb -> PrVerb = \v ->
{s = v.s ; p = v.part ; c1,c2 = [] ; isSubjectControl = True ; vtype = v.vtype ; vvtype = vvInfinitive} ; ---- vvtype {s = v.s ; p = v.part ; c1,c2 = [] ; isSubjectControl = True ; vtype = v.vtype ; vvtype = vvInfinitive} ; ---- vvtype
--- junk
qformsV : Str -> STense -> Anteriority -> Polarity -> VAgr -> PrVerb -> Str * Str =
\sta,t,a,p,agr,v -> <[],[]> ;
qformsCopula : Str -> STense -> Anteriority -> Polarity -> VAgr -> Str * Str =
\sta,t,a,p,agr -> <[],[]> ;
} }

View File

@@ -99,19 +99,24 @@ oper
applyVerb : PrVerbPhrase -> VAgr -> Str * Str * Str applyVerb : PrVerbPhrase -> VAgr -> Str * Str * Str
= \vp,a -> vp.v ! a ; = \vp,a -> vp.v ! a ;
--- only needed in Eng because of do questions
qformsV : Str -> STense -> Anteriority -> Polarity -> VAgr -> PrVerb -> Str * Str ;
qformsCopula : Str -> STense -> Anteriority -> Polarity -> VAgr -> Str * Str ;
qformsVP : PrVerbPhrase -> VAgr -> Str * Str
= \vp,vagr -> vp.qforms ! vagr ;
------------------------------- -------------------------------
--- type synonyms --- type synonyms
------------------------------- -------------------------------
oper oper
PrVerb = { PrVerb = BasePrVerb ;
PrVerbPhrase = BasePrVerbPhrase ;
PrClause = BasePrClause ;
PrQuestionClause = BasePrQuestionClause ;
initPrVerb = initBasePrVerb ;
initPrVerbPhrase = initBasePrVerbPhrase ;
initPrVerbPhraseV = initBasePrVerbPhraseV ;
initPrClause = initBasePrClause ;
BasePrVerb = {
s : VForm => Str ; s : VForm => Str ;
p : Str ; -- verb particle p : Str ; -- verb particle
c1 : ComplCase ; c1 : ComplCase ;
@@ -121,7 +126,7 @@ oper
vvtype : VVType ; vvtype : VVType ;
} ; } ;
initPrVerb : PrVerb = { initBasePrVerb : BasePrVerb = {
s = \\_ => [] ; s = \\_ => [] ;
p = [] ; p = [] ;
c1 = noComplCase ; c1 = noComplCase ;
@@ -131,7 +136,7 @@ oper
vvtype = vvInfinitive ; vvtype = vvInfinitive ;
} ; } ;
PrVerbPhrase = { BasePrVerbPhrase = {
v : VAgr => Str * Str * Str ; -- would,have,slept v : VAgr => Str * Str * Str ; -- would,have,slept
inf : VVType => Str ; -- (not) ((to)(sleep|have slept) | (sleeping|having slept) inf : VVType => Str ; -- (not) ((to)(sleep|have slept) | (sleeping|having slept)
imp : ImpType => Str ; imp : ImpType => Str ;
@@ -145,10 +150,9 @@ oper
adv : Str ; adv : Str ;
adV : Str ; adV : Str ;
ext : Str ; ext : Str ;
qforms : VAgr => Str * Str -- special Eng for introducing "do" in questions
} ; } ;
initPrVerbPhrase : PrVerbPhrase = { initBasePrVerbPhrase : BasePrVerbPhrase = {
v : VAgr => Str * Str * Str = \\_ => <[],[],[]> ; v : VAgr => Str * Str * Str = \\_ => <[],[],[]> ;
inf : VVType => Str = \\_ => [] ; inf : VVType => Str = \\_ => [] ;
imp : ImpType => Str = \\_ => [] ; imp : ImpType => Str = \\_ => [] ;
@@ -162,12 +166,11 @@ oper
adv : Str = [] ; adv : Str = [] ;
adV : Str = [] ; adV : Str = [] ;
ext : Str = [] ; ext : Str = [] ;
qforms : VAgr => Str * Str = \\_ => <[],[]> -- special Eng for introducing "do" in questions
} ; } ;
initPrVerbPhraseV : initBasePrVerbPhraseV :
{s : Str ; a : Anteriority} -> {s : Str ; t : STense} -> {s : Str ; p : Polarity} -> PrVerb -> PrVerbPhrase = {s : Str ; a : Anteriority} -> {s : Str ; t : STense} -> {s : Str ; p : Polarity} -> PrVerb -> BasePrVerbPhrase =
\a,t,p,v -> initPrVerbPhrase ** { \a,t,p,v -> initBasePrVerbPhrase ** {
v = \\agr => tenseV (a.s ++ t.s ++ p.s) t.t a.a p.p active agr v ; v = \\agr => tenseV (a.s ++ t.s ++ p.s) t.t a.a p.p active agr v ;
inf = \\vt => tenseInfV a.s a.a p.p active v vt ; inf = \\vt => tenseInfV a.s a.a p.p active v vt ;
imp = \\it => imperativeV p.s p.p it v ; imp = \\it => imperativeV p.s p.p it v ;
@@ -178,10 +181,9 @@ oper
obj2 = <noObj, v.isSubjectControl> ; obj2 = <noObj, v.isSubjectControl> ;
vvtype = v.vvtype ; vvtype = v.vvtype ;
adV = negAdV p ; --- just p.s in Eng adV = negAdV p ; --- just p.s in Eng
qforms = \\agr => qformsV (a.s ++ t.s ++ p.s) t.t a.a p.p agr v ;
} ; } ;
PrClause = { BasePrClause = {
v : Str * Str * Str ; v : Str * Str * Str ;
adj,obj1,obj2 : Str ; adj,obj1,obj2 : Str ;
adv : Str ; adv : Str ;
@@ -189,25 +191,34 @@ oper
ext : Str ; ext : Str ;
subj : Str ; subj : Str ;
c3 : ComplCase ; -- for a slashed adjunct, not belonging to the verb valency c3 : ComplCase ; -- for a slashed adjunct, not belonging to the verb valency
qforms : Str * Str
} ; } ;
initPrClause : PrClause = { initBasePrClause : BasePrClause = {
v : Str * Str * Str = <[],[],[]> ; v : Str * Str * Str = <[],[],[]> ;
adj,obj1,obj2 : Str = [] ; adj,obj1,obj2 : Str = [] ;
adv,adV,ext : Str = [] ; adv,adV,ext : Str = [] ;
subj : Str = [] ; subj : Str = [] ;
c3 : ComplCase = noComplCase ; -- for a slashed adjunct, not belonging to the verb valency c3 : ComplCase = noComplCase ; -- for a slashed adjunct, not belonging to the verb valency
qforms : Str * Str = <[],[]>
} ; } ;
PrQuestionClause = PrClause ** { BasePrQuestionClause = PrClause ** {
foc : Str ; -- the focal position at the beginning: *who* does she love foc : Str ; -- the focal position at the beginning: *who* does she love
focType : FocusType ; --- if already filled, then use other place: who loves *who* focType : FocusType ; --- if already filled, then use other place: who loves *who*
} ; } ;
PrAdverb = {s : Str ; isAdV : Bool ; c1 : ComplCase} ; PrAdverb = {s : Str ; isAdV : Bool ; c1 : ComplCase} ;
useCopula : {s : Str ; a : Anteriority} -> {s : Str ; t : STense} -> {s : Str ; p : Polarity} ->
PrVerbPhrase =
\a,t,p -> initPrVerbPhrase ** {
v = \\agr => tenseCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
inf = \\vt => tenseInfCopula a.s a.a p.p vt ;
imp = \\n => tenseImpCopula p.s p.p n ;
adV = negAdV p ;
} ;
linrefPrVP : PrVerbPhrase -> Str = \vp -> linrefPrVP : PrVerbPhrase -> Str = \vp ->
let let
agr = defaultAgr ; agr = defaultAgr ;
@@ -264,13 +275,4 @@ oper
not_Str : Polarity -> Str ; not_Str : Polarity -> Str ;
useCopula : {s : Str ; a : Anteriority} -> {s : Str ; t : STense} -> {s : Str ; p : Polarity} -> PrVerbPhrase =
\a,t,p -> initPrVerbPhrase ** {
v = \\agr => tenseCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
inf = \\vt => tenseInfCopula a.s a.a p.p vt ;
imp = \\n => tenseImpCopula p.s p.p n ;
adV = negAdV p ;
qforms = \\agr => qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
} ;
} }

View File

@@ -19,7 +19,6 @@ lin
obj1 = vp.part ++ strComplCase vp.c1 ++ vp.obj1.p1 ! rpa ; ---- apply complCase ---- place of part depends on obj obj1 = vp.part ++ strComplCase vp.c1 ++ vp.obj1.p1 ! rpa ; ---- apply complCase ---- place of part depends on obj
obj2 = strComplCase vp.c2 ++ vp.obj2.p1 ! (case vp.obj2.p2 of {True => rpa ; False => vp.obj1.p2}) ; ---- apply complCase obj2 = strComplCase vp.c2 ++ vp.obj2.p1 ! (case vp.obj2.p2 of {True => rpa ; False => vp.obj1.p2}) ; ---- apply complCase
c3 = noComplCase ; -- for one more prep to build ClSlash c3 = noComplCase ; -- for one more prep to build ClSlash
qforms = qformsVP vp (agr2vagr rpa) ;
} }
in {s = \\a,c => declCl (cl a c) ; c = subjCase} ; in {s = \\a,c => declCl (cl a c) ; c = subjCase} ;