mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-07 02:02:51 -06:00
extensions to the English and the Bulgarian grammars. Infinitives with polarity and anteriority
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
@@ -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 ->
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
Reference in New Issue
Block a user