1
0
forked from GitHub/gf-core

copula in romance: ser/estar for Cat,Spa, just essere/etre in Ita,Fra. Controlled by the param type CopulaType in DiffRomance.

This commit is contained in:
aarne
2015-07-20 13:41:01 +00:00
parent 42d5efbe08
commit 53c477d2a2
16 changed files with 58 additions and 27 deletions

View File

@@ -35,7 +35,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol]
QCl = {s : RTense => Anteriority => RPolarity => QForm => Str} ;
IP = {s : Case => Str ; a : AAgr} ;
IComp = {s : AAgr => Str} ;
IComp = {s : AAgr => Str ; cop : CopulaType} ;
IDet = {s : Gender => Case => Str ; n : Number} ;
IQuant = {s : Number => Gender => Case => Str} ;
@@ -51,7 +51,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol]
VP = ResRomance.VP ;
VPSlash = ResRomance.VP ** {c2 : Compl} ;
Comp = {s : Agr => Str} ;
Comp = {s : Agr => Str ; cop : CopulaType} ;
-- Adjective

View File

@@ -52,6 +52,13 @@ interface DiffRomance = open CommonRomance, Prelude in {
oper mkImperative : Bool -> Person -> VP -> RPolarity => Gender => Number => Str ;
-- To render the copula (ser/estar in Spa,Cat)
oper CopulaType : PType ;
oper selectCopula : CopulaType -> Verb ;
oper serCopula : CopulaType ;
oper estarCopula : CopulaType ;
--2 Constants that must derivatively depend on language

View File

@@ -34,7 +34,7 @@ incomplete concrete ExtraRomance of ExtraRomanceAbs = CatRomance **
isNeg = False
} ;
CompIQuant iq = {s = \\aa => iq.s ! aa.n ! aa.g ! Nom} ;
CompIQuant iq = {s = \\aa => iq.s ! aa.n ! aa.g ! Nom ; cop = serCopula} ;
PrepCN prep cn = {s = prep.s ++ prepCase prep.c ++ cn.s ! Sg} ;

View File

@@ -49,7 +49,7 @@ incomplete concrete QuestionRomance of Question =
QuestIComp icomp np = {
s = \\t,a,p,_ =>
let
vp = predV copula ;
vp = predV (selectCopula icomp.cop) ;
cls = (mkClause (np.s ! Nom).comp np.hasClit np.isPol np.a vp).s !
DInv ! t ! a ! p ! Indic ;
why = icomp.s ! complAgr np.a ;
@@ -95,9 +95,9 @@ incomplete concrete QuestionRomance of Question =
AdvIAdv i a = {s = i.s ++ a.s} ;
CompIAdv a = {s = \\_ => a.s} ;
CompIAdv a = {s = \\_ => a.s ; cop = estarCopula} ;
CompIP p = {s = \\_ => p.s ! Nom} ;
CompIP p = {s = \\_ => p.s ! Nom ; cop = serCopula} ;
lincat
QVP = ResRomance.VP ;

View File

@@ -87,17 +87,18 @@ incomplete concrete VerbRomance of Verb =
-}
UseComp comp = insertComplement comp.s (predV copula) ;
UseComp comp = insertComplement comp.s (predV (selectCopula comp.cop)) ;
UseCopula = predV copula ;
CompAP ap = {s = \\ag => let agr = complAgr ag in ap.s ! AF agr.g agr.n} ;
CompAP ap = {s = \\ag => let agr = complAgr ag in ap.s ! AF agr.g agr.n ; cop = serCopula} ;
CompCN cn = { s = \\ag =>
let agr = complAgr ag in
artIndef False cn.g agr.n Nom ++ cn.s ! agr.n
let agr = complAgr ag in
artIndef False cn.g agr.n Nom ++ cn.s ! agr.n ;
cop = serCopula
}; --- RE 7/12/2010 -- AR added indef 2/8/2011
CompNP np = {s = \\_ => (np.s ! Nom).ton} ;
CompAdv a = {s = \\_ => a.s} ;
CompNP np = {s = \\_ => (np.s ! Nom).ton ; cop = serCopula} ;
CompAdv a = {s = \\_ => a.s ; cop = estarCopula} ;
AdvVP vp adv = insertAdv adv.s vp ;
ExtAdvVP vp adv = insertAdv (embedInCommas adv.s) vp ;