extensions to the English and the Bulgarian grammars. Infinitives with polarity and anteriority

This commit is contained in:
kr.angelov
2012-08-31 09:31:36 +00:00
parent 25144980ba
commit 5c1183ebc8
22 changed files with 247 additions and 156 deletions

View File

@@ -13,7 +13,7 @@ concrete BackwardEng of Backward = CatEng ** open ResEng in {
ComplV3 v np np2 =
insertObj (\\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc) (predV v) ;
ComplV2V v np vp =
insertObj (\\a => infVP v.isAux vp a)
insertObj (\\a => infVP v.isAux vp Simul CPos a)
(insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ;
ComplV2S v np s =
insertObj (\\_ => conjThat ++ s.s)
@@ -33,7 +33,7 @@ concrete BackwardEng of Backward = CatEng ** open ResEng in {
SlashVVV2 np vv v2 =
mkClause (np.s ! Nom) np.a
(insertObj (\\a => infVP vv.isAux (predV v2) a) (predVV vv)) **
(insertObj (\\a => infVP vv.isAux (predV v2) Simul CPos a) (predVV vv)) **
{c2 = v2.c2} ;
-- from Noun 19/4/2008

View File

@@ -9789,7 +9789,7 @@ lin designate_V2V = mkV2V (mkV "designate") noPrep to_Prep ;
lin designate_VS = mkVS (mkV "designate");
lin designation_N = mkN "designation" "designations";
lin designedly_Adv = mkAdv "designedly";
lin designer_N = mkN "designer" "designers";
lin designer_N = mkN human (mkN "designer" "designers");
lin designing_A = compoundA (mkA "designing");
lin designing_N = mkN "designing" ;
lin desirability_N = mkN "desirability" ;
@@ -19875,6 +19875,7 @@ lin keenness_N = mkN "keenness" ;
lin keep_N = mkN "keep" "keeps";
lin keep_V = IrregEng.keep_V;
lin keep_V2 = mkV2 (IrregEng.keep_V);
lin keep_V2V = mkV2V (IrregEng.keep_V) noPrep to_Prep;
lin keep_VA = mkVA (IrregEng.keep_V);
lin keep_VS = mkVS (IrregEng.keep_V);
lin keep_VV = ingVV (IrregEng.keep_V);
@@ -30690,6 +30691,7 @@ lin relocation_N = mkN "relocation" ;
lin reluctance_N = mkN "reluctance" ;
lin reluctant_A = compoundA (mkA "reluctant");
lin rely_V = mkV "rely" "relies" "relied" "relied" "relying";
lin rely_on_V2V = mkV2V (mkV "rely" "relies" "relied" "relied" "relying") (mkPrep "on") to_Prep;
lin remain_V = mkV "remain";
lin remain_V2 = mkV2 (mkV "remain");
lin remain_VA = mkVA (mkV "remain" "remains" "remained" "remained" "remaining");
@@ -37085,10 +37087,11 @@ lin supply_N = mkN "supply" "supplies";
lin supply_V2 = mkV2 (mkV "supply" "supplies" "supplied" "supplied" "supplying");
lin support_N = mkN "support" "supports";
lin support_V2 = mkV2 (mkV "support" "supports" "supported" "supported" "supporting");
lin support_VV = ingVV (mkV "support" "supports" "supported" "supported" "supporting");
lin supportable_A = compoundA (mkA "supportable");
lin supporter_N = mkN "supporter" "supporters";
lin suppose_V2 = mkV2 (mkV "suppose" "supposes" "supposed" "supposed" "supposing");
lin suppose_VV = mkVV (mkV "suppose" "supposes" "supposed" "supposed" "supposing");
lin suppose_V2V = mkV2V (mkV "suppose" "supposes" "supposed" "supposed" "supposing") noPrep to_Prep;
lin suppose_VS = mkVS (mkV "suppose" "supposes" "supposed" "supposed" "supposing");
lin supposed_A = compoundA (mkA "supposed");
lin supposition_N = mkN "supposition" "suppositions";
@@ -40461,7 +40464,7 @@ lin unlawful_A = compoundA (mkA "unlawful");
lin unlearn_V2 = mkV2 (mkV "unlearn" "unlearns" "unlearned" "unlearned" "unlearning");
lin unleash_V2 = mkV2 (mkV "unleash" "unleashes" "unleashed" "unleashed" "unleashing");
lin unleavened_A = compoundA (mkA "unleavened");
lin unless_Prep = mkPrep "unless";
lin unless_Subj = mkSubj "unless";
lin unlettered_A = compoundA (mkA "unlettered");
lin unlicensed_A = compoundA (mkA "unlicensed");
lin unlighted_A = compoundA (mkA "unlighted");
@@ -42281,7 +42284,8 @@ lin whereas_Prep = mkPrep "whereas";
lin whereat_Adv = mkAdv "whereat";
lin whereby_Adv = mkAdv "whereby";
lin wherefore_Adv = mkAdv "wherefore";
lin wherein_Adv = mkAdv "wherein";
lin wherein_IAdv = {s="wherein"};
lin wherein_Subj = mkSubj "wherein";
lin whereof_Adv = mkAdv "whereof";
lin whereon_Adv = mkAdv "whereon";
lin wheresoever_Adv = mkAdv "wheresoever";

View File

@@ -19851,6 +19851,7 @@ fun keenness_N : N;
fun keep_N : N;
fun keep_V : V;
fun keep_V2 : V2;
fun keep_V2V : V2V;
fun keep_VA : VA;
fun keep_VS : VS;
fun keep_VV : VV;
@@ -30638,6 +30639,7 @@ fun relocation_N : N;
fun reluctance_N : N;
fun reluctant_A : A;
fun rely_V : V;
fun rely_on_V2V : V2V;
fun remain_V : V;
fun remain_V2 : V2;
fun remain_VA : VA;
@@ -37020,10 +37022,11 @@ fun supply_N : N;
fun supply_V2 : V2;
fun support_N : N;
fun support_V2 : V2;
fun support_VV : VV;
fun supportable_A : A;
fun supporter_N : N;
fun suppose_V2 : V2;
fun suppose_VV : VV;
fun suppose_V2V : V2V;
fun suppose_VS : VS;
fun supposed_A : A;
fun supposition_N : N;
@@ -40391,7 +40394,7 @@ fun unlawful_A : A;
fun unlearn_V2 : V2;
fun unleash_V2 : V2;
fun unleavened_A : A;
fun unless_Prep : Prep ;
fun unless_Subj : Subj ;
fun unlettered_A : A;
fun unlicensed_A : A;
fun unlighted_A : A;
@@ -42211,7 +42214,8 @@ fun whereas_Prep : Prep ;
fun whereat_Adv : Adv;
fun whereby_Adv : Adv;
fun wherefore_Adv : Adv;
fun wherein_Adv : Adv;
fun wherein_IAdv : IAdv;
fun wherein_Subj : Subj;
fun whereof_Adv : Adv;
fun whereon_Adv : Adv;
fun wheresoever_Adv : Adv;

View File

@@ -95,9 +95,9 @@ concrete ExtraEng of ExtraEngAbs = CatEng **
isPre = False ---- depends on whether there are complements
} ;
EmbedPresPart vp = {s = infVP VVPresPart vp (agrP3 Sg)} ; --- agr
EmbedPresPart vp = {s = infVP VVPresPart vp Simul CPos (agrP3 Sg)} ; --- agr
UttVPShort vp = {s = infVP VVAux vp (agrP3 Sg)} ;
UttVPShort vp = {s = infVP VVAux vp Simul CPos (agrP3 Sg)} ;
do_VV = {
s = table {

View File

@@ -24,9 +24,9 @@ concrete IdiomEng of Idiom = CatEng ** open Prelude, ResEng in {
ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ;
ImpPl1 vp = {s = "let's" ++ infVP VVAux vp (AgP1 Pl)} ;
ImpPl1 vp = {s = "let's" ++ infVP VVAux vp Simul CPos (AgP1 Pl)} ;
ImpP3 np vp = {s = "let" ++ np.s ! NPAcc ++ infVP VVAux vp np.a} ;
ImpP3 np vp = {s = "let" ++ np.s ! NPAcc ++ infVP VVAux vp Simul CPos np.a} ;
}

View File

@@ -66,14 +66,13 @@ lin
UseQuantPN q pn = {s = \\c => q.s ! False ! Sg ++ pn.s ! npcase2case c ; a = agrgP3 Sg pn.g} ;
SlashV2V v p vp = insertObjc (\\a => p.s ++ case p.p of {CPos => ""; _ => "not"} ++
v.c3 ++
infVP v.typ vp a)
(predVc v) ;
SlashV2V v ant p vp = insertObjc (\\a => v.c3 ++ ant.s ++ p.s ++
infVP v.typ vp ant.a p.p a)
(predVc v) ;
SlashVPIV2V v p vpi = insertObjc (\\a => p.s ++ case p.p of {CPos => ""; _ => "not"} ++
v.c3 ++
vpi.s ! VVAux ! a)
SlashVPIV2V v p vpi = insertObjc (\\a => p.s ++
v.c3 ++
vpi.s ! VVAux ! a)
(predVc v) ;
PredVPosv np vp = {
@@ -83,7 +82,7 @@ lin
compl = vp.s2 ! np.a
in
case o of {
ODir => compl ++ "," ++ np.s ! npNom ++ verb.aux ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ;
ODir => compl ++ "," ++ np.s ! npNom ++ verb.aux ++ vp.ad ++ verb.fin ++ verb.adv ++ verb.inf ;
OQuest => verb.aux ++ compl ++ "," ++ np.s ! npNom ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf
}
} ;
@@ -110,11 +109,12 @@ lin
} ;
CompS s = {s = \\_ => "that" ++ s.s} ;
CompVP vp = {s = \\a => infVP VVInf vp a} ;
CompVP ant p vp = {s = \\a => ant.s ++ p.s ++
infVP VVInf vp ant.a p.p a} ;
PassVS vs vp =
let
vps = insertObj (\\a => infVP VVInf vp a) (predV vs) ;
vps = insertObj (\\a => infVP VVInf vp Simul CPos a) (predV vs) ;
be = predAux auxBe ;
ppt = vps.ptp
in {
@@ -134,6 +134,20 @@ lin
a = np.a
} ;
{- GerundRS rp vp = {
s = \\t,ant,b,ag =>
let
agr = case rp.a of {
RNoAg => ag ;
RAg a => a
} ;
cl = mkClause (rp.s ! RC (fromAgr agr).g npNom) agr vp
in
cl.s ! t ! ant ! b ! ODir ;
c = npNom
} ;
-}
lin
PPos = {s = [] ; p = CPos} ;
PNeg = {s = [] ; p = CNeg True} ; -- contracted: don't

View File

@@ -41,18 +41,23 @@ fun CompoundCN : Num -> N -> CN -> CN ;
UseQuantPN : Quant -> PN -> NP;
SlashV2V : V2V -> Pol -> VP -> VPSlash ;
SlashV2V : V2V -> Ant -> Pol -> VP -> VPSlash ;
SlashVPIV2V : V2V -> Pol -> VPI -> VPSlash ;
SlashSlashV2V : V2V -> Ant -> Pol -> VPSlash -> VPSlash ;
PredVPosv,PredVPovs : NP -> VP -> Cl ;
that_RP, no_RP : RP ;
CompS : S -> Comp ;
CompVP : VP -> Comp ;
CompVP : Ant -> Pol -> VP -> Comp ;
PassVS : VS -> VP -> VP ;
PPartNP : NP -> VPSlash -> NP ;
UncNeg : Pol ;
-- GerundRS : Anter -> Pol -> VP -> RS ;
}

View File

@@ -12,7 +12,7 @@ concrete PhraseEng of Phrase = CatEng ** open Prelude, ResEng in {
UttIP ip = {s = ip.s ! npNom} ; --- Acc also
UttIAdv iadv = iadv ;
UttNP np = {s = np.s ! npNom} ;
UttVP vp = {s = infVP VVInf vp (agrP3 Sg)} ;
UttVP vp = {s = infVP VVInf vp Simul CPos (agrP3 Sg)} ;
UttAdv adv = adv ;
UttCN n = {s = n.s ! Sg ! Nom} ;
UttCard n = {s = n.s ! Nom} ;

View File

@@ -376,13 +376,20 @@ resource ResEng = ParamX ** open Prelude in {
presVerb : {s : VForm => Str} -> Agr -> Str = \verb ->
agrVerb (verb.s ! VPres) (verb.s ! VInf) ;
infVP : VVType -> VP -> Agr -> Str = \typ,vp,a ->
vp.ad ++
case typ of {
VVAux => vp.inf ;
VVInf => "to" ++ vp.inf ;
_ => vp.prp
} ++
infVP : VVType -> VP -> Anteriority -> CPolarity -> Agr -> Str = \typ,vp,ant,cb,a ->
case cb of {CPos => ""; _ => "not"} ++
case ant of {
Simul => case typ of {
VVAux => vp.ad ++ vp.inf ;
VVInf => "to" ++ vp.ad ++ vp.inf ;
_ => vp.ad ++ vp.prp
};
Anter => case typ of {
VVAux => "have" ++ vp.ad ++ vp.ptp ;
VVInf => "to" ++ "have" ++ vp.ad ++ vp.ptp ;
_ => "having" ++ vp.ad ++ vp.ptp
}
} ++
vp.s2 ! a ;
agrVerb : Str -> Str -> Agr -> Str = \has,have,agr ->

View File

@@ -12,7 +12,7 @@ concrete SentenceEng of Sentence = CatEng ** open Prelude, ResEng in {
s = \\pol,n =>
let
agr = AgP2 (numImp n) ;
verb = infVP VVAux vp agr ;
verb = infVP VVAux vp Simul CPos agr ;
dont = case pol of {
CNeg True => "don't" ;
CNeg False => "do" ++ "not" ;
@@ -39,7 +39,7 @@ concrete SentenceEng of Sentence = CatEng ** open Prelude, ResEng in {
EmbedS s = {s = conjThat ++ s.s} ;
EmbedQS qs = {s = qs.s ! QIndir} ;
EmbedVP vp = {s = infVP VVInf vp (agrP3 Sg)} ; --- agr
EmbedVP vp = {s = infVP VVInf vp Simul CPos (agrP3 Sg)} ; --- agr
UseCl t p cl = {
s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! ctr p.p ! ODir

View File

@@ -11,12 +11,12 @@ concrete VerbEng of Verb = CatEng ** open ResEng in {
Slash3V3 v np =
insertObjc (\\_ => v.c3 ++ np.s ! NPAcc) (predVc v) ; ----
ComplVV v vp = insertObj (\\a => infVP v.typ vp a) (predVV v) ;
ComplVV v vp = insertObj (\\a => infVP v.typ vp Simul CPos a) (predVV v) ;
ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
ComplVA v ap = insertObj (ap.s) (predV v) ;
SlashV2V v vp = insertObjc (\\a => v.c3 ++ infVP v.typ vp a) (predVc v) ;
SlashV2V v vp = insertObjc (\\a => v.c3 ++ infVP v.typ vp Simul CPos a) (predVc v) ;
SlashV2S v s = insertObjc (\\_ => conjThat ++ s.s) (predVc v) ;
SlashV2Q v q = insertObjc (\\_ => q.s ! QIndir) (predVc v) ;
SlashV2A v ap = insertObjc (\\a => ap.s ! a) (predVc v) ; ----
@@ -24,11 +24,11 @@ concrete VerbEng of Verb = CatEng ** open ResEng in {
ComplSlash vp np = insertObjPre (\\_ => vp.c2 ++ np.s ! NPAcc) vp ;
SlashVV vv vp =
insertObj (\\a => infVP vv.typ vp a) (predVV vv) **
insertObj (\\a => infVP vv.typ vp Simul CPos a) (predVV vv) **
{c2 = vp.c2} ;
SlashV2VNP vv np vp =
insertObjPre (\\_ => vv.c2 ++ np.s ! NPAcc)
(insertObjc (\\a => vv.c3 ++ infVP vv.typ vp a) (predVc vv)) **
(insertObjc (\\a => vv.c3 ++ infVP vv.typ vp Simul CPos a) (predVc vv)) **
{c2 = vp.c2} ;
UseComp comp = insertObj comp.s (predAux auxBe) ;