Maltese: all functions implemented (though not necessarily correct)

Oh, and glad Valborg!
This commit is contained in:
john
2013-04-30 14:23:17 +00:00
parent 20d63050a4
commit 6277bf04f9
18 changed files with 5514 additions and 4547 deletions

View File

@@ -8,10 +8,107 @@ concrete QuestionMlt of Question = CatMlt ** open ResMlt, ParamX, Prelude in {
flags optimize=all_subs ;
-- IAdv
-- IComp
-- IDet
-- IP
-- QCl
lin
-- Cl -> QCl
-- does John walk
QuestCl cl = {
s = \\t,a,p =>
let cls = cl.s ! t ! a ! p
in table {
QDir => cls ! OQuest ;
QIndir => "kieku" ++ cls ! ODir
}
} ;
-- IP -> VP -> QCl
-- who walks
QuestVP qp vp =
let
-- cl = mkClause (qp.s ! npNom) (agrP3 qp.n) vp
cl = mkClause qp.s (agrP3 qp.n Masc) vp
in {
s = \\t,a,p,_ => cl.s ! t ! a ! p ! ODir
} ;
-- IP -> ClSlash -> QCl
-- whom does John love
QuestSlash ip slash =
mkQuestion (ss (slash.c2.s ! Definite ++ ip.s)) slash ;
-- IAdv -> Cl -> QCl
-- why does John walk
QuestIAdv iadv cl = mkQuestion iadv cl ;
-- IComp -> NP -> QCl
-- where is John
QuestIComp icomp np =
mkQuestion icomp (mkClause (np.s ! npNom) np.a (predV copula_kien)) ;
-- Prep -> IP -> IAdv
-- with whom
PrepIP prep ip = {s = prep.s ! Definite ++ ip.s} ;
-- IP -> Adv -> IP
-- who in Paris
AdvIP ip adv = {
s = ip.s ++ adv.s ;
n = ip.n
} ;
-- IDet -> CN -> IP
-- which five songs
IdetCN idet cn = {
s = idet.s ++ cn.s ! num2nounnum idet.n ;
n = idet.n
} ;
-- IDet -> IP
-- which five
IdetIP idet = {
s = idet.s ;
n = idet.n
} ;
-- IQuant -> Num -> IDet
-- which (five)
IdetQuant iquant num = {
s = iquant.s ++ num.s ! NumNom ;
n = numform2num num.n
} ;
-- IAdv -> Adv -> IAdv
-- where in Paris
AdvIAdv iadv adv = ss (iadv.s ++ adv.s) ;
-- IAdv -> IComp
-- where (is it)
CompIAdv iadv = iadv ;
-- IP -> IComp
-- who (is it)
CompIP ip = ss (ip.s) ;
lincat
QVP = ResMlt.VerbPhrase ;
lin
-- VPSlash -> IP -> QVP
-- buys what
ComplSlashIP vp np = insertObjPre (\\_ => vp.c2.s ! Definite ++ np.s) vp ;
-- VP -> IAdv -> QVP
-- lives where
AdvQVP vp adv = insertObj (\\_ => adv.s) vp ;
-- QVP -> IAdv -> QVP
-- buys what where
AddAdvQVP qvp iadv = insertObj (\\_ => iadv.s) qvp ;
-- IP -> QVP -> QCl
-- who buys what where
QuestQVP ip vp =
let cl = mkClause (ip.s) (agrP3 ip.n Masc) vp
in {s = \\t,a,b,_ => cl.s ! t ! a ! b ! ODir} ;
}