participle agreement with RP and IP in romance

This commit is contained in:
aarne
2006-06-13 13:23:58 +00:00
parent 784a1db90a
commit 161924b0e6
5 changed files with 44 additions and 14 deletions

View File

@@ -14,7 +14,10 @@ incomplete concrete CatRomance of Cat =
-- Sentence -- Sentence
Cl = {s : Tense => Anteriority => Polarity => Mood => Str} ; Cl = {s : Tense => Anteriority => Polarity => Mood => Str} ;
Slash = {s : Tense => Anteriority => Polarity => Mood => Str} ** {c2 : Compl} ; Slash = {
s : AAgr => Tense => Anteriority => Polarity => Mood => Str ;
c2 : Compl
} ;
Imp = {s : Polarity => AAgr => Str} ; Imp = {s : Polarity => AAgr => Str} ;
-- Question -- Question

View File

@@ -25,7 +25,7 @@ incomplete concrete QuestionRomance of Question =
QuestSlash ip slash = { QuestSlash ip slash = {
s = \\t,a,p => s = \\t,a,p =>
let let
cls = slash.s ! t ! a ! p ! Indic ; cls = slash.s ! ip.a ! t ! a ! p ! Indic ;
who = slash.c2.s ++ ip.s ! slash.c2.c who = slash.c2.s ++ ip.s ! slash.c2.c
in table { in table {
QDir => who ++ cls ; QDir => who ++ cls ;

View File

@@ -27,8 +27,11 @@ incomplete concrete RelativeRomance of Relative =
RelSlash rp slash = { RelSlash rp slash = {
s = \\ag,t,a,p,m => s = \\ag,t,a,p,m =>
slash.c2.s ++ rp.s ! False ! {g = ag.g ; n = ag.n} ! slash.c2.c ++ let aag = {g = ag.g ; n = ag.n}
slash.s ! t ! a ! p ! m ; in
slash.c2.s ++
rp.s ! False ! aag ! slash.c2.c ++
slash.s ! aag ! t ! a ! p ! m ; --- ragr
c = Acc c = Acc
} ; } ;

View File

@@ -134,6 +134,20 @@ oper
ext = vp.ext ; ext = vp.ext ;
} ; } ;
-- Agreement with preceding relative or interrogative:
-- "les femmes que j'ai aimées"
insertAgr : AAgr -> VP -> VP = \ag,vp -> {
s = vp.s ;
agr = vpAgrClit (agrP3 ag.g ag.n) ;
clAcc = vp.clAcc ;
clDat = vp.clDat ;
clit2 = vp.clit2 ;
neg = vp.neg ;
comp = vp.comp ;
ext = vp.ext ;
} ;
insertAdv : Str -> VP -> VP = \co,vp -> { insertAdv : Str -> VP -> VP = \co,vp -> {
s = vp.s ; s = vp.s ;
agr = vp.agr ; agr = vp.agr ;

View File

@@ -11,23 +11,33 @@ incomplete concrete SentenceRomance of Sentence =
ImpVP = mkImperative ; ImpVP = mkImperative ;
SlashV2 np v2 = SlashV2 np v2 =
mkClause {s = \\ag =>case <v2.c2.c,v2.c2.isDir> of {
(np.s ! Aton Nom) np.a <Acc,True> =>
(predV v2) ** (mkClause (np.s ! Aton Nom) np.a
{c2 = v2.c2} ; (insertAgr ag (predV v2))).s ;
_ => (mkClause (np.s ! Aton Nom) np.a (predV v2)).s
} ;
c2 = v2.c2
} ;
SlashVVV2 np vv v2 = SlashVVV2 np vv v2 =
mkClause {s = \\_ =>
(np.s ! Aton Nom) np.a (mkClause
(insertComplement (\\a => prepCase vv.c2.c ++ v2.s ! VInfin) (predV vv)) ** (np.s ! Aton Nom) np.a
{c2 = v2.c2} ; (insertComplement
(\\a => prepCase vv.c2.c ++ v2.s ! VInfin) (predV vv))).s ;
c2 = v2.c2
} ;
AdvSlash slash adv = { AdvSlash slash adv = {
s = \\t,a,b,m => slash.s ! t ! a ! b ! m ++ adv.s ; s = \\ag,t,a,b,m => slash.s ! ag ! t ! a ! b ! m ++ adv.s ;
c2 = slash.c2 c2 = slash.c2
} ; } ;
SlashPrep cl prep = cl ** {c2 = {s = prep.s ; c = prep.c ; isDir = False}} ; SlashPrep cl prep = {
s = \\_ => cl.s ;
c2 = {s = prep.s ; c = prep.c ; isDir = False}
} ;
EmbedS s = {s = conjThat ++ s.s ! Indic} ; --- mood EmbedS s = {s = conjThat ++ s.s ! Indic} ; --- mood
EmbedQS qs = {s = qs.s ! QIndir} ; EmbedQS qs = {s = qs.s ! QIndir} ;