forked from GitHub/gf-core
fixed the inverted negated word order with pronouns in French
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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))) ;
|
||||
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 =
|
||||
|
||||
Reference in New Issue
Block a user