From ea102fda23711399e2710c2d009b604e9aa0298d Mon Sep 17 00:00:00 2001 From: aarne Date: Sun, 25 Feb 2007 22:06:25 +0000 Subject: [PATCH] fixed the inverted negated word order with pronouns in French --- lib/resource-1.0/doc/index.txt | 4 ++-- lib/resource-1.0/french/IdiomFre.gf | 13 +++++++------ lib/resource-1.0/italian/IdiomIta.gf | 12 ++++++------ lib/resource-1.0/romance/QuestionRomance.gf | 4 ++-- lib/resource-1.0/romance/RelativeRomance.gf | 4 ++-- lib/resource-1.0/romance/ResRomance.gf | 13 +++++++------ lib/resource-1.0/romance/SentenceRomance.gf | 10 +++++----- lib/resource-1.0/spanish/IdiomSpa.gf | 12 ++++++------ 8 files changed, 37 insertions(+), 35 deletions(-) diff --git a/lib/resource-1.0/doc/index.txt b/lib/resource-1.0/doc/index.txt index b06281499..9b0df1827 100644 --- a/lib/resource-1.0/doc/index.txt +++ b/lib/resource-1.0/doc/index.txt @@ -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 diff --git a/lib/resource-1.0/french/IdiomFre.gf b/lib/resource-1.0/french/IdiomFre.gf index fd13e44aa..3f12683fa 100644 --- a/lib/resource-1.0/french/IdiomFre.gf +++ b/lib/resource-1.0/french/IdiomFre.gf @@ -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))) ; diff --git a/lib/resource-1.0/italian/IdiomIta.gf b/lib/resource-1.0/italian/IdiomIta.gf index 34ac5a7e8..7b74df6b2 100644 --- a/lib/resource-1.0/italian/IdiomIta.gf +++ b/lib/resource-1.0/italian/IdiomIta.gf @@ -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 } ; diff --git a/lib/resource-1.0/romance/QuestionRomance.gf b/lib/resource-1.0/romance/QuestionRomance.gf index f8a52c695..134448629 100644 --- a/lib/resource-1.0/romance/QuestionRomance.gf +++ b/lib/resource-1.0/romance/QuestionRomance.gf @@ -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 diff --git a/lib/resource-1.0/romance/RelativeRomance.gf b/lib/resource-1.0/romance/RelativeRomance.gf index 0cf3a2c69..2051c283d 100644 --- a/lib/resource-1.0/romance/RelativeRomance.gf +++ b/lib/resource-1.0/romance/RelativeRomance.gf @@ -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 } diff --git a/lib/resource-1.0/romance/ResRomance.gf b/lib/resource-1.0/romance/ResRomance.gf index 1b245c9f3..1bd0c95e1 100644 --- a/lib/resource-1.0/romance/ResRomance.gf +++ b/lib/resource-1.0/romance/ResRomance.gf @@ -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 diff --git a/lib/resource-1.0/romance/SentenceRomance.gf b/lib/resource-1.0/romance/SentenceRomance.gf index ef7919c19..9b0bad4cf 100644 --- a/lib/resource-1.0/romance/SentenceRomance.gf +++ b/lib/resource-1.0/romance/SentenceRomance.gf @@ -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 of { => - (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 diff --git a/lib/resource-1.0/spanish/IdiomSpa.gf b/lib/resource-1.0/spanish/IdiomSpa.gf index 67bca3662..0697942ac 100644 --- a/lib/resource-1.0/spanish/IdiomSpa.gf +++ b/lib/resource-1.0/spanish/IdiomSpa.gf @@ -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 =