From 78fc62517488012ebface287c8ab3e0812a2bb80 Mon Sep 17 00:00:00 2001 From: Aarne Ranta Date: Fri, 26 Jul 2024 16:47:43 +0200 Subject: [PATCH] added VPS functions to Romance Extend modules --- src/catalan/ExtendCat.gf | 35 +++++++++++++++++++++++++++++++++-- src/french/ExtendFre.gf | 8 +++++++- src/italian/ExtendIta.gf | 30 +++++++++++++++++++++++++++++- src/portuguese/ExtendPor.gf | 30 +++++++++++++++++++++++++++++- src/spanish/ExtendSpa.gf | 10 +++++++++- 5 files changed, 107 insertions(+), 6 deletions(-) diff --git a/src/catalan/ExtendCat.gf b/src/catalan/ExtendCat.gf index c0de2ffd9..2dc10164b 100644 --- a/src/catalan/ExtendCat.gf +++ b/src/catalan/ExtendCat.gf @@ -1,7 +1,10 @@ --# -path=alltenses:../common:../abstract:../romance concrete ExtendCat of Extend = CatCat ** ExtendRomanceFunctor-- - - -- [ - -- ] + [ + + BaseVPS, ConsVPS, PredVPS, MkVPS, ConjVPS, RelVPS + + ] -- don't forget to put the names of your own -- definitions here with @@ -15,4 +18,32 @@ concrete ExtendCat of Extend = CatCat ** ExtendRomanceFunctor-- - ParadigmsCat in { -- put your own definitions here + + lincat + VPS = {s : Mood => Agr => Bool => Str} ; + [VPS] = {s1,s2 : Mood => Agr => Bool => Str} ; + + lin + BaseVPS x y = twoTable3 Mood Agr Bool x y ; + ConsVPS = consrTable3 Mood Agr Bool comma ; + + lin + PredVPS np vpi = { + s = \\m => (np.s ! Nom).comp ++ vpi.s ! m ! np.a ! np.isNeg + } ; + MkVPS tm p vp = { + s = \\m,agr,isNeg => + tm.s ++ p.s ++ + (mkClausePol (orB isNeg vp.isNeg) [] False False agr vp).s + ! DDir ! tm.t ! tm.a ! p.p ! m + } ; + ConjVPS = conjunctDistrTable3 Mood Agr Bool ; + + RelVPS rp vpi = { + s = \\m, agr => rp.s ! False ! complAgr agr ! Nom ++ vpi + .s ! m ! (Ag rp.a.g rp.a.n P3) ! False ; + c = Nom + } ; + + } ; diff --git a/src/french/ExtendFre.gf b/src/french/ExtendFre.gf index 2260b3ee3..ce0937587 100644 --- a/src/french/ExtendFre.gf +++ b/src/french/ExtendFre.gf @@ -7,7 +7,7 @@ concrete ExtendFre of Extend = GenRP, ExistCN, ExistMassCN, ExistPluralCN, RNP, ReflRNP, PassVPSlash, PassAgentVPSlash, PastPartAP, PastPartAgentAP, ApposNP, CompoundN, - BaseVPS, ConsVPS, PredVPS, MkVPS, ConjVPS + BaseVPS, ConsVPS, PredVPS, MkVPS, ConjVPS, RelVPS ] -- put the names of your own definitions here with (Grammar = GrammarFre) ** @@ -153,5 +153,11 @@ lin UseDAP = \dap -> ! DDir ! tm.t ! tm.a ! p.p ! m } ; ConjVPS = conjunctDistrTable3 Mood Agr Bool ; + + RelVPS rp vpi = { + s = \\m, agr => rp.s ! False ! complAgr agr ! Nom ++ vpi + .s ! m ! (Ag rp.a.g rp.a.n P3) ! False ; + c = Nom + } ; } diff --git a/src/italian/ExtendIta.gf b/src/italian/ExtendIta.gf index ecac47954..bdc365140 100644 --- a/src/italian/ExtendIta.gf +++ b/src/italian/ExtendIta.gf @@ -2,7 +2,9 @@ concrete ExtendIta of Extend = CatIta ** ExtendRomanceFunctor - [ GenRP, - PassVPSlash, PassAgentVPSlash + PassVPSlash, PassAgentVPSlash, + BaseVPS, ConsVPS, PredVPS, MkVPS, ConjVPS, RelVPS + ] -- don't forget to put the names of your own -- definitions here @@ -45,4 +47,30 @@ oper comp = \\a => vps.comp ! a ++ (let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) ++ agent ; } ; + lincat + VPS = {s : Mood => Agr => Bool => Str} ; + [VPS] = {s1,s2 : Mood => Agr => Bool => Str} ; + + lin + BaseVPS x y = twoTable3 Mood Agr Bool x y ; + ConsVPS = consrTable3 Mood Agr Bool comma ; + + lin + PredVPS np vpi = { + s = \\m => (np.s ! Nom).comp ++ vpi.s ! m ! np.a ! np.isNeg + } ; + MkVPS tm p vp = { + s = \\m,agr,isNeg => + tm.s ++ p.s ++ + (mkClausePol (orB isNeg vp.isNeg) [] False False agr vp).s + ! DDir ! tm.t ! tm.a ! p.p ! m + } ; + ConjVPS = conjunctDistrTable3 Mood Agr Bool ; + + RelVPS rp vpi = { + s = \\m, agr => rp.s ! False ! complAgr agr ! Nom ++ vpi + .s ! m ! (Ag rp.a.g rp.a.n P3) ! False ; + c = Nom + } ; + } diff --git a/src/portuguese/ExtendPor.gf b/src/portuguese/ExtendPor.gf index 50a696e6c..c04bfef03 100644 --- a/src/portuguese/ExtendPor.gf +++ b/src/portuguese/ExtendPor.gf @@ -17,7 +17,8 @@ concrete ExtendPor of Extend = CatPor ** ExtendRomanceFunctor - youPlFem_Pron, youPolFem_Pron, youPolPlFem_Pron, - youPolPl_Pron + youPolPl_Pron, + BaseVPS, ConsVPS, PredVPS, MkVPS, ConjVPS, RelVPS ] -- don't forget to put the names of your own -- definitions here with @@ -120,4 +121,31 @@ concrete ExtendPor of Extend = CatPor ** ExtendRomanceFunctor - youPolPlFem_Pron = pronAgr youPolPl_Pron Fem Pl P2 ; theyFem_Pron = mkPronFrom S.they_Pron "elas" "as" "lhes" "elas" Fem Pl P3 ; + lincat + VPS = {s : Mood => Agr => Bool => Str} ; + [VPS] = {s1,s2 : Mood => Agr => Bool => Str} ; + + lin + BaseVPS x y = twoTable3 Mood Agr Bool x y ; + ConsVPS = consrTable3 Mood Agr Bool comma ; + + lin + PredVPS np vpi = { + s = \\m => (np.s ! Nom).comp ++ vpi.s ! m ! np.a ! np.isNeg + } ; + MkVPS tm p vp = { + s = \\m,agr,isNeg => + tm.s ++ p.s ++ + (mkClausePol (orB isNeg vp.isNeg) [] False False agr vp).s + ! DDir ! tm.t ! tm.a ! p.p ! m + } ; + ConjVPS = conjunctDistrTable3 Mood Agr Bool ; + + + RelVPS rp vpi = { + s = \\m, agr => rp.s ! False ! complAgr agr ! Nom ++ vpi + .s ! m ! (Ag rp.a.g rp.a.n P3) ! False ; + c = Nom + } ; + } ; diff --git a/src/spanish/ExtendSpa.gf b/src/spanish/ExtendSpa.gf index d51218d3f..ac27e32f0 100644 --- a/src/spanish/ExtendSpa.gf +++ b/src/spanish/ExtendSpa.gf @@ -20,7 +20,9 @@ concrete ExtendSpa of Extend = CatSpa ** ExtendRomanceFunctor - youPolPlFem_Pron, youPolPl_Pron, PassVPSlash, PassAgentVPSlash, - UseComp_estar, UseComp_ser + UseComp_estar, UseComp_ser, + BaseVPS, ConsVPS, PredVPS, MkVPS, ConjVPS, RelVPS + ] -- don't forget to put the names of your own -- definitions here with @@ -125,4 +127,10 @@ oper lin AnaphPron np = agr2pron ! np.a ; + + RelVPS rp vpi = { + s = \\m, agr => rp.s ! False ! complAgr agr ! Nom ++ vpi + .s ! m ! (Ag rp.a.g rp.a.n P3) ! False ; + c = Nom + } ; } ;