mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-27 11:48:55 -06:00
parametrized participle-clitic agreement
This commit is contained in:
@@ -49,10 +49,13 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
partAgr : VType -> VPAgr = \vtyp -> case vtyp of {
|
partAgr : VType -> VPAgr = \vtyp -> case vtyp of {
|
||||||
VHabere => VPAgrNone ;
|
VHabere => vpAgrNone ;
|
||||||
_ => VPAgrSubj
|
_ => VPAgrSubj
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
vpAgrClit : Agr -> VPAgr = \a ->
|
||||||
|
VPAgrClit (aagr a.g a.n) ; --- subty
|
||||||
|
|
||||||
negation : Polarity => (Str * Str) = table {
|
negation : Polarity => (Str * Str) = table {
|
||||||
Pos => <[],[]> ;
|
Pos => <[],[]> ;
|
||||||
Neg => <elisNe,"pas">
|
Neg => <elisNe,"pas">
|
||||||
|
|||||||
@@ -40,16 +40,16 @@ resource CommonRomance = ParamRomance ** open Prelude in {
|
|||||||
|
|
||||||
appVPAgr : VPAgr -> AAgr -> AAgr = \vp,agr ->
|
appVPAgr : VPAgr -> AAgr -> AAgr = \vp,agr ->
|
||||||
case vp of {
|
case vp of {
|
||||||
VPAgrNone => aagr Masc Sg ;
|
|
||||||
VPAgrSubj => agr ;
|
VPAgrSubj => agr ;
|
||||||
VPAgrClit a => a
|
VPAgrClit a => a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
vpAgrNone : VPAgr = VPAgrClit (aagr Masc Sg) ;
|
||||||
|
|
||||||
param
|
param
|
||||||
VPAgr =
|
VPAgr =
|
||||||
VPAgrNone -- elle a dormi
|
VPAgrSubj -- elle est partie, elle s'est vue
|
||||||
| VPAgrSubj -- elle est partie, elle s'est vue
|
| VPAgrClit -- elle a dormi; elle les a vues
|
||||||
| VPAgrClit -- elle les a vues
|
|
||||||
{g : Gender ; n : Number} ;
|
{g : Gender ; n : Number} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,44 @@
|
|||||||
interface DiffRomance = open CommonRomance, Prelude in {
|
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 ;
|
-- Which types of verbs exist, in terms of auxiliaries.
|
||||||
VType ;
|
-- (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 ;
|
dative : Case ;
|
||||||
genitive : Case ;
|
genitive : Case ;
|
||||||
|
|
||||||
|
vRefl : VType ;
|
||||||
|
isVRefl : VType -> Bool ;
|
||||||
|
|
||||||
|
|
||||||
|
--2 Strings
|
||||||
|
|
||||||
prepCase : Case -> Str ;
|
prepCase : Case -> Str ;
|
||||||
|
|
||||||
partitive : Gender -> Case -> Str ;
|
partitive : Gender -> Case -> Str ;
|
||||||
@@ -21,17 +46,10 @@ oper
|
|||||||
artDef : Gender -> Number -> Case -> Str ;
|
artDef : Gender -> Number -> Case -> Str ;
|
||||||
artIndef : 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) ;
|
auxVerb : VType -> (VF => Str) ;
|
||||||
negation : Polarity => (Str * Str) ;
|
negation : Polarity => (Str * Str) ;
|
||||||
copula : Verb ;
|
copula : Verb ;
|
||||||
|
|
||||||
partAgr : VType -> VPAgr ;
|
|
||||||
|
|
||||||
conjThan : Str ;
|
conjThan : Str ;
|
||||||
conjThat : Str ;
|
conjThat : Str ;
|
||||||
|
|
||||||
@@ -44,13 +62,10 @@ oper
|
|||||||
|
|
||||||
reflPron : Number => Person => Case => Str ;
|
reflPron : Number => Person => Case => Str ;
|
||||||
|
|
||||||
vRefl : VType ;
|
|
||||||
isVRefl : VType -> Bool ;
|
|
||||||
|
|
||||||
auxPassive : Verb ;
|
auxPassive : Verb ;
|
||||||
|
|
||||||
|
|
||||||
-- These are needed above.
|
--2 Contants needed in type signatures above
|
||||||
|
|
||||||
param
|
param
|
||||||
Case = Nom | Acc | CPrep Prep ;
|
Case = Nom | Acc | CPrep Prep ;
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ oper
|
|||||||
cc : Str * Str * VPAgr = case <c.isDir, c.c, np.c> of {
|
cc : Str * Str * VPAgr = case <c.isDir, c.c, np.c> of {
|
||||||
<False,_,_> |
|
<False,_,_> |
|
||||||
<_,_,Clit0> => <[], c.s ++ np.s ! Ton c.c, vp.agr> ;
|
<_,_,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>
|
_ => <np.s ! Aton c.c, [], vp.agr>
|
||||||
} ;
|
} ;
|
||||||
high = case np.c of { -- whether the new clitic comes closer to verb
|
high = case np.c of { -- whether the new clitic comes closer to verb
|
||||||
|
|||||||
Reference in New Issue
Block a user