parametrized participle-clitic agreement

This commit is contained in:
aarne
2006-01-30 19:59:24 +00:00
parent 9d6586b43c
commit c0b8ec02fd
4 changed files with 41 additions and 23 deletions

View File

@@ -49,10 +49,13 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
} ;
partAgr : VType -> VPAgr = \vtyp -> case vtyp of {
VHabere => VPAgrNone ;
VHabere => vpAgrNone ;
_ => VPAgrSubj
} ;
vpAgrClit : Agr -> VPAgr = \a ->
VPAgrClit (aagr a.g a.n) ; --- subty
negation : Polarity => (Str * Str) = table {
Pos => <[],[]> ;
Neg => <elisNe,"pas">

View File

@@ -40,16 +40,16 @@ resource CommonRomance = ParamRomance ** open Prelude in {
appVPAgr : VPAgr -> AAgr -> AAgr = \vp,agr ->
case vp of {
VPAgrNone => aagr Masc Sg ;
VPAgrSubj => agr ;
VPAgrClit a => a
} ;
vpAgrNone : VPAgr = VPAgrClit (aagr Masc Sg) ;
param
VPAgr =
VPAgrNone -- elle a dormi
| VPAgrSubj -- elle est partie, elle s'est vue
| VPAgrClit -- elle les a vues
VPAgrSubj -- elle est partie, elle s'est vue
| VPAgrClit -- elle a dormi; elle les a vues
{g : Gender ; n : Number} ;
}

View File

@@ -1,19 +1,44 @@
interface DiffRomance = open CommonRomance, Prelude in {
--2 Constants whose definitions depend on language.
--2 Constants whose definitions fundamentally depend on language
-- Prepositions that fuse with the article vary.
-- Prepositions that fuse with the article
-- (Fre, Spa "de", "a"; Ita also "in", "con").
param
param Prep ;
Prep ;
VType ;
-- Which types of verbs exist, in terms of auxiliaries.
-- (Fre, Ita "avoir", "être", and refl; Spa only "haber" and refl).
oper
param VType ;
-- Derivatively, if/when the participle agrees to the subject.
-- (Fre "elle est partie", Ita "lei è partita", Spa not)
oper partAgr : VType -> VPAgr ;
-- Whether participle agrees to foregoing clitic.
-- (Fre "je l'ai vue", Ita "io la ho visto")
oper vpAgrClit : Agr -> VPAgr ;
-- Whether a preposition is repeated in conjunction
-- (Fre "la somme de 3 et de 4", Ita "la somma di 3 e 4").
oper conjunctCase : NPForm -> NPForm ;
--2 Constants that must derivatively depend on language
dative : Case ;
genitive : Case ;
vRefl : VType ;
isVRefl : VType -> Bool ;
--2 Strings
prepCase : Case -> Str ;
partitive : Gender -> Case -> Str ;
@@ -21,17 +46,10 @@ oper
artDef : Gender -> Number -> Case -> Str ;
artIndef : Gender -> Number -> Case -> Str ;
-- This regulates whether a preposition is repeated in conjunction
-- (Fre "la somme de 3 et de 4", Ita "la somma di 3 e 4").
conjunctCase : NPForm -> NPForm ;
auxVerb : VType -> (VF => Str) ;
negation : Polarity => (Str * Str) ;
copula : Verb ;
partAgr : VType -> VPAgr ;
conjThan : Str ;
conjThat : Str ;
@@ -44,13 +62,10 @@ oper
reflPron : Number => Person => Case => Str ;
vRefl : VType ;
isVRefl : VType -> Bool ;
auxPassive : Verb ;
-- These are needed above.
--2 Contants needed in type signatures above
param
Case = Nom | Acc | CPrep Prep ;

View File

@@ -86,7 +86,7 @@ oper
cc : Str * Str * VPAgr = case <c.isDir, c.c, np.c> of {
<False,_,_> |
<_,_,Clit0> => <[], c.s ++ np.s ! Ton c.c, vp.agr> ;
<_,Acc,_> => <np.s ! Aton c.c, [], VPAgrClit (aagr np.a.g np.a.n)> ; --- subty
<_,Acc,_> => <np.s ! Aton c.c, [], vpAgrClit np.a> ;
_ => <np.s ! Aton c.c, [], vp.agr>
} ;
high = case np.c of { -- whether the new clitic comes closer to verb