1
0
forked from GitHub/gf-core

updated ExistIP for all languages

This commit is contained in:
aarne
2006-05-16 18:29:41 +00:00
parent c1aea3c2a9
commit e074720425
12 changed files with 79 additions and 35 deletions

View File

@@ -4,11 +4,24 @@ concrete IdiomDan of Idiom = CatDan **
flags optimize=all_subs ;
lin
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
GenericCl vp = mkClause "man" (agrP3 neutrum Sg) vp ;
ExistNP np =
mkClause "det" (agrP3 neutrum Sg) (insertObj
(\\_ => np.s ! accusative) (predV (depV finne_V))) ;
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
GenericCl vp = mkClause "man" (agrP3 neutrum Sg) vp ;
ExistIP ip = {
s = \\t,a,p =>
let
cls =
(mkClause "det" (agrP3 neutrum Sg) (predV (depV finne_V))).s ! t ! a ! p ;
who = ip.s ! accusative
in table {
QDir => who ++ cls ! Inv ;
QIndir => who ++ cls ! Sub
}
} ;
ProgrVP vp =
insertObj (\\a => ["ved å"] ++ infVP vp a) (predV verbBe) ;

View File

@@ -36,11 +36,12 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in {
VP = {
s : Tense => Anteriority => Polarity => Order => Agr => {fin, inf : Str} ;
prp : Str ; -- present participle
prp : Str ; -- present participle
inf : Str ; -- infinitive
ad : Str ;
s2 : Agr => Str
} ;
Comp = {s : Agr => Str} ;
SC = {s : Str} ;

View File

@@ -10,12 +10,7 @@ concrete IdiomEng of Idiom = CatEng ** open Prelude, ResEng in {
mkClause "there" (agrP3 np.a.n) (insertObj (\\_ => np.s ! Acc) (predAux auxBe)) ;
ExistIP ip =
let cl =
mkClause (ip.s ! Nom) (agrP3 ip.n) (insertObj (\\_ => "there") (predAux auxBe))
in {
s = \\t,a,b,_ => cl.s ! t ! a ! b ! ODir --- "what is there", no "what there is"
} ;
mkQuestion (ss (ip.s ! Nom)) (mkClause "there" (agrP3 ip.n) (predAux auxBe)) ;
ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ;

View File

@@ -41,19 +41,4 @@ concrete QuestionEng of Question = CatEng ** open ResEng, Prelude in {
CompIAdv a = a ;
oper
mkQuestion :
{s : Str} -> Clause ->
{s : Tense => Anteriority => Polarity => QForm => Str} = \wh,cl ->
{
s = \\t,a,p =>
let
cls = cl.s ! t ! a ! p ;
why = wh.s
in table {
QDir => why ++ cls ! OQuest ;
QIndir => why ++ cls ! ODir
}
} ;
}

View File

@@ -180,6 +180,7 @@ resource ResEng = ParamX ** open Prelude in {
s2 : Agr => Str
} ;
--- The order gets wrong with AdV, but works around a parser
--- generation bug.
@@ -390,4 +391,18 @@ resource ResEng = ParamX ** open Prelude in {
_ => ten + "th"
} ;
mkQuestion :
{s : Str} -> Clause ->
{s : Tense => Anteriority => Polarity => QForm => Str} = \wh,cl ->
{
s = \\t,a,p =>
let
cls = cl.s ! t ! a ! p ;
why = wh.s
in table {
QDir => why ++ cls ! OQuest ;
QIndir => why ++ cls ! ODir
}
} ;
}

View File

@@ -33,5 +33,4 @@ concrete VerbEng of Verb = CatEng ** open ResEng in {
CompNP np = {s = \\_ => np.s ! Acc} ;
CompAdv a = {s = \\_ => a.s} ;
}

View File

@@ -14,6 +14,15 @@ concrete IdiomFin of Idiom = CatFin **
mkClause noSubj (agrP3 Sg) (insertObj
(\\_,b,_ => "olemassa" ++ np.s ! cas b) (predV olla)) ;
ExistIP ip =
let
cas : NPForm = NPCase Part ; --- dep on num, pol?
vp = insertObj (\\_,b,_ => "olemassa") (predV olla) ;
cl = mkClause (subjForm (ip ** {isPron = False ; a = agrP3 Sg}) cas) (agrP3 Sg) vp
in {
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
} ;
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
GenericCl vp = mkClause noSubj (agrP3 Sg) {

View File

@@ -7,15 +7,14 @@ concrete IdiomFre of Idiom = CatFre **
ImpersCl vp = mkClause "il" (agrP3 Masc Sg) vp ;
GenericCl vp = mkClause "on" (agrP3 Masc Sg) vp ;
ExistNP np =
mkClause "il" (agrP3 Masc Sg)
(insertClit2 "y" (insertComplement (\\_ => np.s ! Ton Acc) (predV avoir_V))) ;
ExistIP ip = {
s = \\t,a,p,_ =>
(mkClause (ip.s ! Nom) (agrP3 ip.a.g ip.a.n)
(insertClit2 "y" (predV avoir_V))).s ! t ! a ! p ! Indic
ip.s ! Nom ++
(mkClause "il" (agrP3 Masc Sg) (insertClit2 "y" (predV avoir_V))).s ! t ! a ! p ! Indic
} ;
ProgrVP vp =

View File

@@ -4,13 +4,21 @@ 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
ExistNP np =
mkClause [] (agrP3 np.a.g np.a.n)
(insertClit2 (elision "ci" "c'" "ci")
(insertComplement (\\_ => np.s ! Ton Nom)
(predV copula))) ;
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
GenericCl vp = mkClause "si" (agrP3 Masc Sg) vp ; ---- non se ci fanno cose
ExistIP ip = {
s = \\t,a,p,_ =>
ip.s ! Nom ++
(mkClause [] (agrP3 ip.a.g ip.a.n)
(insertClit2 (elision "ci" "c'" "ci") (predV copula))).s ! t ! a ! p ! Indic
} ;
ProgrVP vp =
insertComplement

View File

@@ -7,7 +7,7 @@ resource PhonoIta = open Prelude in {
oper
vocale : Strs = strs {
"a" ; "e" ; "h" ; "i" ; "o" ; "u"
"a" ; "e" ; "h" ; "i" ; "o" ; "u" ; "è"
} ;
sImpuro : Strs = strs {

View File

@@ -4,11 +4,25 @@ concrete IdiomNor of Idiom = CatNor **
flags optimize=all_subs ;
lin
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
GenericCl vp = mkClause "man" (agrP3 neutrum Sg) vp ;
ExistNP np =
mkClause "det" (agrP3 neutrum Sg) (insertObj
(\\_ => np.s ! accusative) (predV (depV finne_V))) ;
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
GenericCl vp = mkClause "man" (agrP3 neutrum Sg) vp ;
ExistIP ip = {
s = \\t,a,p =>
let
cls =
(mkClause "det" (agrP3 neutrum Sg) (predV (depV finne_V))).s ! t ! a ! p ;
who = ip.s ! accusative
in table {
QDir => who ++ cls ! Inv ;
QIndir => who ++ cls ! Sub
}
} ;
ProgrVP vp =
insertObj (\\a => ["ved å"] ++ infVP vp a) (predV verbBe) ;

View File

@@ -4,11 +4,17 @@ 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 ?
ExistNP np =
mkClause [] (agrP3 Masc Sg)
(insertComplement (\\_ => np.s ! Ton Acc) (predV (verboV (hay_3 "haber")))) ;
ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ;
GenericCl vp = mkClause "se" (agrP3 Masc Sg) vp ; ---- just Italian ?
ExistIP ip = {
s = \\t,a,p,_ =>
ip.s ! Nom ++
(mkClause [] (agrP3 Masc Sg) (predV (verboV (hay_3 "haber")))).s ! t ! a ! p ! Indic
} ;
ProgrVP vp =
insertComplement