middle polarity for French in Romance (for "personne ne dort")

This commit is contained in:
aarne
2012-05-27 12:55:32 +00:00
parent 25435a6912
commit bc522704cd
27 changed files with 88 additions and 80 deletions

View File

@@ -1,10 +1,14 @@
incomplete concrete CatRomance of Cat = CommonX - [SC]
incomplete concrete CatRomance of Cat = CommonX - [SC,Pol]
** open Prelude, CommonRomance, ResRomance, (R = ParamX) in {
flags optimize=all_subs ;
lincat
-- exception to CommonX, due to the distinction ne/ne-pas
Pol = {s : Str ; p : RPolarity} ;
-- Tensed/Untensed
S = {s : Mood => Str} ;
@@ -19,16 +23,16 @@ incomplete concrete CatRomance of Cat = CommonX - [SC]
-- Sentence
Cl = {s : Direct => RTense => Anteriority => Polarity => Mood => Str} ;
Cl = {s : Direct => RTense => Anteriority => RPolarity => Mood => Str} ;
ClSlash = {
s : AAgr => Direct => RTense => Anteriority => Polarity => Mood => Str ;
s : AAgr => Direct => RTense => Anteriority => RPolarity => Mood => Str ;
c2 : Compl
} ;
Imp = {s : Polarity => ImpForm => Gender => Str} ;
Imp = {s : RPolarity => ImpForm => Gender => Str} ;
-- Question
QCl = {s : RTense => Anteriority => Polarity => QForm => Str} ;
QCl = {s : RTense => Anteriority => RPolarity => QForm => Str} ;
IP = {s : Case => Str ; a : AAgr} ;
IComp = {s : AAgr => Str} ;
IDet = {s : Gender => Case => Str ; n : Number} ;
@@ -37,7 +41,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC]
-- Relative
RCl = {
s : Agr => RTense => Anteriority => Polarity => Mood => Str ;
s : Agr => RTense => Anteriority => RPolarity => Mood => Str ;
c : Case
} ;
RP = {s : Bool => AAgr => Case => Str ; a : AAgr ; hasAgr : Bool} ;
@@ -95,7 +99,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC]
V, VQ, VA = Verb ;
V2, VV, V2S, V2Q = Verb ** {c2 : Compl} ;
V3, V2A, V2V = Verb ** {c2,c3 : Compl} ;
VS = Verb ** {m : Polarity => Mood} ;
VS = Verb ** {m : RPolarity => Mood} ;
A = {s : Degree => AForm => Str ; isPre : Bool} ;
A2 = {s : Degree => AForm => Str ; c2 : Compl} ;

View File

@@ -233,18 +233,21 @@ oper
oper
VPC : Type = {
s : VPForm => {
fin : Agr => Str ; -- ai
inf : AAgr => Str -- dit
fin : Agr => Str ; -- ai
inf : AAgr => Str -- dit
} ;
agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
neg : Polarity => (Str * Str) ; -- ne-pas
clit1 : Str ; -- le/se
clit2 : Str ; -- lui
clit3 : Str ; -- y en
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
ext : Polarity => Str ; -- que je dors / que je dorme
agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
neg : RPolarity => (Str * Str) ; -- ne-pas
clit1 : Str ; -- le/se
clit2 : Str ; -- lui
clit3 : Str ; -- y en
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
ext : RPolarity => Str ; -- que je dors / que je dorme
} ;
-- Polarity: three values (Fre positive,ne-pas,ne), presence of polarity element line "aucun"
param RPolarity = RPos | RNeg Bool ; -- RNeg True = "ne", RNeg False = "ne - pas"
}

View File

@@ -49,7 +49,8 @@ interface DiffRomance = open CommonRomance, Prelude in {
-- To render imperatives (with their clitics etc).
oper mkImperative : Bool -> Person -> VP -> Polarity => Gender => Number => Str ;
oper mkImperative : Bool -> Person -> VP -> RPolarity => Gender => Number => Str ;
--2 Constants that must derivatively depend on language
@@ -76,7 +77,7 @@ interface DiffRomance = open CommonRomance, Prelude in {
possCase : Gender -> Number -> Case -> Str ;
auxVerb : VType -> (VF => Str) ;
negation : Polarity => (Str * Str) ;
negation : RPolarity => (Str * Str) ;
copula : Verb ;
conjThan : Str ;
@@ -105,15 +106,16 @@ oper
VP : Type = {
s : Verb ;
agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
neg : Polarity => (Str * Str) ; -- ne-pas
clit1 : Str ; -- le/se
clit2 : Str ; -- lui
clit3 : Str ; -- y en
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
ext : Polarity => Str ; -- que je dors / que je dorme
agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
neg : RPolarity => (Str * Str) ; -- ne-pas
clit1 : Str ; -- le/se
clit2 : Str ; -- lui
clit3 : Str ; -- y en
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
ext : RPolarity => Str ; -- que je dors / que je dorme
} ;
--2 Workarounds, to be eliminated
-- This should be provided by $pronArg$ above, but causes trouble in compilation.

View File

@@ -166,7 +166,7 @@ oper
ext = vp.ext ;
} ;
insertExtrapos : (Polarity => Str) -> VP -> VP = \co,vp -> {
insertExtrapos : (RPolarity => Str) -> VP -> VP = \co,vp -> {
s = vp.s ;
agr = vp.agr ;
clit1 = vp.clit1 ;
@@ -179,19 +179,8 @@ oper
mkVPSlash : Compl -> VP -> VP ** {c2 : Compl} = \c,vp -> vp ** {c2 = c} ;
tmpVP : Type = {
s : Verb ;
agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
neg : Polarity => (Str * Str) ; -- ne-pas
clit1 : Str ; -- le/se
clit2 : Str ; -- lui
clit3 : Str ; -- y en
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
ext : Polarity => Str ; -- que je dors / que je dorme
} ;
mkClause : Str -> Bool -> Bool -> Agr -> VP ->
{s : Direct => RTense => Anteriority => Polarity => Mood => Str} =
{s : Direct => RTense => Anteriority => RPolarity => Mood => Str} =
\subj, hasClit, isPol, agr, vp -> {
s = \\d,te,a,b,m =>
let
@@ -252,8 +241,8 @@ oper
let
iform = False ; ---- meaning: no clitics
inf = vp.s.s ! VInfin iform ;
neg = vp.neg ! Pos ; --- Neg not in API
obj = neg.p2 ++ vp.comp ! agr ++ vp.ext ! Pos ; ---- pol
neg = vp.neg ! RPos ; --- Neg not in API
obj = neg.p2 ++ vp.comp ! agr ++ vp.ext ! RPos ; ---- pol
refl = case vp.s.vtyp of {
VRefl => reflPron agr.n agr.p Acc ; ---- case ?
_ => []

View File

@@ -1,6 +1,6 @@
incomplete concrete TenseRomance of Tense =
CatRomance [Tense,Temp], TenseX [Ant,Pol,AAnter,ASimul,PNeg,PPos] **
open ResRomance, CommonRomance in {
CatRomance [Tense,Temp], TenseX [Ant,AAnter,ASimul] **
open ResRomance, CommonRomance, Prelude in {
lin
TTAnt t a = {s = a.s ++ t.s ; a = a.a ; t = t.t} ;
@@ -9,4 +9,7 @@ incomplete concrete TenseRomance of Tense =
TFut = {s = []} ** {t = RFut} ; --# notpresent
TCond = {s = []} ** {t = RCond} ; --# notpresent
PPos = {s = [] ; p = RPos} ;
PNeg = {s = [] ; p = RNeg False} ;
}