fixed the inverted negated word order with pronouns in French

This commit is contained in:
aarne
2007-02-25 22:06:25 +00:00
parent b9e8708024
commit ea102fda23
8 changed files with 37 additions and 35 deletions

View File

@@ -382,8 +382,8 @@ Finnish
French
- multiple clitics (with V3) not always right
- third person pronominal questions with inverted word order
have wrong form and position w.r.t. "pas"
(e.g. "comment ne fera-t-il pas " becomes "comment ne fera pas il")
have wrong forms if "t" is required e.g.
(e.g. "comment fera-t-il" becomes "comment fera il")
German

View File

@@ -4,25 +4,26 @@ concrete IdiomFre of Idiom = CatFre **
flags optimize=all_subs ;
lin
ImpersCl vp = mkClause "il" (agrP3 Masc Sg) vp ;
GenericCl vp = mkClause "on" (agrP3 Masc Sg) vp ;
ImpersCl vp = mkClause "il" True (agrP3 Masc Sg) vp ;
GenericCl vp = mkClause "on" True (agrP3 Masc Sg) vp ;
ExistNP np =
mkClause "il" (agrP3 Masc Sg)
mkClause "il" True (agrP3 Masc Sg)
(insertClit2 "y" (insertComplement (\\_ => np.s ! Ton Acc) (predV avoir_V))) ;
ExistIP ip = {
s = \\t,a,p,_ =>
ip.s ! Nom ++
(mkClause "il" (agrP3 Masc Sg) (insertClit2 "y" (predV avoir_V))).s
(mkClause "il" True (agrP3 Masc Sg)
(insertClit2 "y" (predV avoir_V))).s
! DDir ! t ! a ! p ! Indic ---- DInv
} ;
CleftNP np rs = mkClause elisCe (agrP3 Masc Sg)
CleftNP np rs = mkClause elisCe True (agrP3 Masc Sg)
(insertComplement (\\_ => rs.s ! Indic ! np.a)
(insertComplement (\\_ => np.s ! Ton rs.c) (predV copula))) ;
CleftAdv ad s = mkClause elisCe (agrP3 Masc Sg)
CleftAdv ad s = mkClause elisCe True (agrP3 Masc Sg)
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
(insertComplement (\\_ => ad.s) (predV copula))) ;

View File

@@ -4,19 +4,19 @@ concrete IdiomIta of Idiom = CatIta **
flags optimize=all_subs ;
lin
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
GenericCl vp = mkClause "si" (agrP3 Masc Sg) vp ; ---- non se ci fanno cose
ImpersCl vp = mkClause [] True (agrP3 Masc Sg) vp ;
GenericCl vp = mkClause "si" True (agrP3 Masc Sg) vp ; ---- non se ci fanno cose
CleftNP np rs = mkClause [] (agrP3 Masc Sg)
CleftNP np rs = mkClause [] True (agrP3 Masc Sg)
(insertComplement (\\_ => rs.s ! Indic ! np.a)
(insertComplement (\\_ => np.s ! Ton rs.c) (predV copula))) ;
CleftAdv ad s = mkClause [] (agrP3 Masc Sg)
CleftAdv ad s = mkClause [] True (agrP3 Masc Sg)
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
(insertComplement (\\_ => ad.s) (predV copula))) ;
ExistNP np =
mkClause [] (agrP3 np.a.g np.a.n)
mkClause [] True (agrP3 np.a.g np.a.n)
(insertClit2 (elision "ci" "c'" "ci")
(insertComplement (\\_ => np.s ! Ton Nom)
(predV copula))) ;
@@ -24,7 +24,7 @@ concrete IdiomIta of Idiom = CatIta **
ExistIP ip = {
s = \\t,a,p,_ =>
ip.s ! Nom ++
(mkClause [] (agrP3 ip.a.g ip.a.n)
(mkClause [] True (agrP3 ip.a.g ip.a.n)
(insertClit2 (elision "ci" "c'" "ci")
(predV copula))).s ! DDir ! t ! a ! p ! Indic
} ;

View File

@@ -17,7 +17,7 @@ incomplete concrete QuestionRomance of Question =
QuestVP qp vp = {
s = \\t,a,b,_ =>
let
cl = mkClause (qp.s ! Nom) (agrP3 qp.a.g qp.a.n) vp
cl = mkClause (qp.s ! Nom) False (agrP3 qp.a.g qp.a.n) vp
in
cl.s ! DDir ! t ! a ! b ! Indic
} ;
@@ -46,7 +46,7 @@ incomplete concrete QuestionRomance of Question =
s = \\t,a,p,_ =>
let
vp = predV copula ;
cls = (mkClause (np.s ! Aton Nom) np.a vp).s !
cls = (mkClause (np.s ! Aton Nom) np.hasClit np.a vp).s !
DInv ! t ! a ! p ! Indic ;
why = icomp.s ! {g = np.a.g ; n = np.a.n}
in why ++ cls

View File

@@ -15,12 +15,12 @@ incomplete concrete RelativeRomance of Relative =
RelVP rp vp = case rp.hasAgr of {
True => {s = \\ag =>
(mkClause
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom)
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom) False
{g = rp.a.g ; n = rp.a.n ; p = P3}
vp).s ! DDir ; c = Nom} ;
False => {s = \\ag =>
(mkClause
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom)
(rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom) False
ag
vp).s ! DDir ; c = Nom
}

View File

@@ -194,9 +194,9 @@ oper
ext = \\p => vp.ext ! p ++ co ! p ;
} ;
mkClause : Str -> Agr -> VP ->
mkClause : Str -> Bool -> Agr -> VP ->
{s : Direct => RTense => Anteriority => Polarity => Mood => Str} =
\subj,agr,vp -> {
\subj,hasClit,agr,vp -> {
s = \\d,t,a,b,m =>
let
tm = case t of {
@@ -217,13 +217,14 @@ oper
DDir =>
subj ++ neg.p1 ++ clpr.p1 ++ vp.clit2 ++ verb ++ neg.p2 ++ inf ;
DInv =>
neg.p1 ++ clpr.p1 ++ vp.clit2 ++ verb ++ neg.p2 ++ inf ++ subj
neg.p1 ++ clpr.p1 ++ vp.clit2 ++ verb ++
preOrPost hasClit subj (neg.p2 ++ inf)
}
++ compl
} ;
--- in French, pronouns should be before neg.v2 in inverted clauses
--- and have a "-" with possibly a special verb form with "t":
--- "comment ne fera-t-il pas" vs. "comment ne fera pas Pierre"
--- in French, pronouns should
--- have a "-" with possibly a special verb form with "t":
--- "comment fera-t-il" vs. "comment fera Pierre"
infVP : VP -> Agr -> Str = \vp,agr ->
let

View File

@@ -4,9 +4,9 @@ incomplete concrete SentenceRomance of Sentence =
flags optimize=all_subs ;
lin
PredVP np vp = mkClause (np.s ! Aton Nom) np.a vp ;
PredVP np vp = mkClause (np.s ! Aton Nom) np.hasClit np.a vp ;
PredSCVP sc vp = mkClause sc.s (agrP3 Masc Sg) vp ;
PredSCVP sc vp = mkClause sc.s False (agrP3 Masc Sg) vp ;
ImpVP vp = {
s = \\p,i,g => case i of {
@@ -17,9 +17,9 @@ incomplete concrete SentenceRomance of Sentence =
SlashV2 np v2 =
{s = \\d,ag =>case <v2.c2.c,v2.c2.isDir> of {
<Acc,True> =>
(mkClause (np.s ! Aton Nom) np.a
(mkClause (np.s ! Aton Nom) np.hasClit np.a
(insertAgr ag (predV v2))).s ! d ;
_ => (mkClause (np.s ! Aton Nom) np.a (predV v2)).s ! d
_ => (mkClause (np.s ! Aton Nom) np.hasClit np.a (predV v2)).s ! d
} ;
c2 = v2.c2
} ;
@@ -27,7 +27,7 @@ incomplete concrete SentenceRomance of Sentence =
SlashVVV2 np vv v2 =
{s = \\d,_ =>
(mkClause
(np.s ! Aton Nom) np.a
(np.s ! Aton Nom) np.hasClit np.a
(insertComplement
(\\a => prepCase vv.c2.c ++ v2.s ! VInfin False) (predV vv))).s ! d;
c2 = v2.c2

View File

@@ -4,25 +4,25 @@ concrete IdiomSpa of Idiom = CatSpa **
flags optimize=all_subs ;
lin
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
GenericCl vp = mkClause "se" (agrP3 Masc Sg) vp ; ---- just Italian ?
ImpersCl vp = mkClause [] True (agrP3 Masc Sg) vp ;
GenericCl vp = mkClause "se" True (agrP3 Masc Sg) vp ; ---- just Italian ?
CleftNP np rs = mkClause [] (agrP3 Masc Sg)
CleftNP np rs = mkClause [] True (agrP3 Masc Sg)
(insertComplement (\\_ => rs.s ! Indic ! np.a)
(insertComplement (\\_ => np.s ! Ton rs.c) (predV copula))) ;
CleftAdv ad s = mkClause [] (agrP3 Masc Sg)
CleftAdv ad s = mkClause [] True (agrP3 Masc Sg)
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
(insertComplement (\\_ => ad.s) (predV copula))) ;
ExistNP np =
mkClause [] (agrP3 Masc Sg)
mkClause [] True (agrP3 Masc Sg)
(insertComplement (\\_ => np.s ! Ton Acc) (predV (verboV (hay_3 "haber")))) ;
ExistIP ip = {
s = \\t,a,p,_ =>
ip.s ! Nom ++
(mkClause [] (agrP3 Masc Sg) (predV (verboV (hay_3 "haber")))).s ! DDir ! t ! a ! p ! Indic
(mkClause [] True (agrP3 Masc Sg) (predV (verboV (hay_3 "haber")))).s ! DDir ! t ! a ! p ! Indic
} ;
ProgrVP vp =