improved the performance of Romance while retaining correct agreement ; removed Diff modules from Phrasebook

This commit is contained in:
aarne
2010-04-06 20:35:12 +00:00
parent 40ec2f5229
commit f3ae4092d5
49 changed files with 161 additions and 240 deletions

View File

@@ -90,24 +90,21 @@ instance DiffSpa of DiffRomance = open CommonRomance, PhonoSpa, BeschSpa, Prelud
infForm _ _ _ _ = True ;
mkImperative b p vp = {
s = \\pol,agr =>
mkImperative b p vp =
\\pol,g,n =>
let
pe = case b of {True => P3 ; _ => p} ;
---- agr = aag ** {p = pe} ;
aag = verbAgr agr ; ----
agr = {g = g ; n = n ; p = pe} ;
clpr = <[],[],False> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ;
----e verb = case <aag.n, pol,pe> of {
----e <Sg,Neg,P2> => (vp.s ! VPInfinit Simul clpr.p3).inf ! aag ;
----e _ => (vp.s ! VPImperat).fin ! agr
----e } ;
verb = vp.s.s ! vImperForm agr ;
verb = vp.s.s ! vImper n pe ;
neg = vp.neg ! pol ;
compl = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! pol
in
neg.p1 ++ verb ++ bindIf clpr.p3 ++ clpr.p1 ++ compl ;
} ;
negation : Polarity => (Str * Str) = table {
Pos => <[],[]> ;

View File

@@ -4,27 +4,27 @@ concrete IdiomSpa of Idiom = CatSpa **
flags optimize=all_subs ;
lin
ImpersCl vp = mkClause [] True (agrP3 Masc Sg) vp ;
ImpersCl vp = mkClause [] True False (agrP3 Masc Sg) vp ;
GenericCl vp =
mkClause [] True (agrP3 Masc Sg) (insertRefl vp) ; ---- just Italian ?
mkClause [] True False (agrP3 Masc Sg) (insertRefl vp) ; ---- just Italian ?
CleftNP np rs = mkClause [] True (agrP3 Masc Sg)
CleftNP np rs = mkClause [] True False (agrP3 Masc Sg)
(insertComplement (\\_ => rs.s ! Indic ! np.a)
(insertComplement (\\_ => (np.s ! rs.c).ton) (predV copula))) ;
CleftAdv ad s = mkClause [] True (agrP3 Masc Sg)
CleftAdv ad s = mkClause [] True False (agrP3 Masc Sg)
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
(insertComplement (\\_ => ad.s) (predV copula))) ;
ExistNP np =
mkClause [] True (agrP3 Masc Sg)
mkClause [] True False (agrP3 Masc Sg)
(insertComplement (\\_ => (np.s ! Acc).ton) (predV (verboV (hay_3 "haber")))) ;
ExistIP ip = {
s = \\t,a,p,_ =>
ip.s ! Nom ++
(mkClause [] True (agrP3 Masc Sg) (predV (verboV (hay_3 "haber")))).s ! DDir ! t ! a ! p ! Indic
(mkClause [] True False (agrP3 Masc Sg) (predV (verboV (hay_3 "haber")))).s ! DDir ! t ! a ! p ! Indic
} ;
ProgrVP vp =
@@ -39,7 +39,7 @@ concrete IdiomSpa of Idiom = CatSpa **
(predV (verboV (estar_2 "estar"))) ;
ImpPl1 vp = {s =
(mkImperative False P1 vp).s ! Pos ! Ag Masc Pl P1 ; --- fem
mkImperative False P1 vp ! Pos ! Masc ! Pl ; --- fem
} ;
}

View File

@@ -111,7 +111,7 @@ oper
} ;
a = Ag g n p ;
hasClit = True
hasClit = True ; isPol = False
} ;

View File

@@ -314,7 +314,7 @@ oper
}
} ;
makeNP x g n = {s = (pn2np (mk2PN x g)).s; a = agrP3 g n ; hasClit = False} ** {lock_NP = <>} ;
makeNP x g n = {s = (pn2np (mk2PN x g)).s; a = agrP3 g n ; hasClit = False ; isPol = False} ** {lock_NP = <>} ;
mk5A a b c d e =
compADeg {s = \\_ => (mkAdj a b c d e).s ; isPre = False ; lock_A = <>} ;