1
0
forked from GitHub/gf-core

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

@@ -78,7 +78,7 @@ concrete CatBul of Cat = CommonX - [IAdv,CAdv] ** open ResBul, Prelude, Predef,
V2, V2A = Verb ** {c2 : Preposition} ;
V2V, V2S, V2Q = Verb ** {c2 : Preposition} ; --- AR
V3 = Verb ** {c2, c3 : Preposition} ;
VV = Verb ;
VV = Verb ** {typ : VVType};
A = {s : AForm => Str; adv : Str} ;
A2 = {s : AForm => Str; adv : Str; c2 : Str} ;

View File

@@ -14,22 +14,30 @@ concrete ConjunctionBul of Conjunction =
s = (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj;
} ;
ConjIAdv conj ss = {
s = \\qform => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!qform;
} ;
ConjNP conj ss = {
s = \\role => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!role;
a = {gn = conjGenNum (gennum (AMasc NonHuman) conj.n) ss.a.gn; p = ss.a.p}
} ;
---- RS rules by AR 7/4/2010 to make API compile
ConjRS conj ss = {
s = \\role => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!role
} ;
ConjAP conj ss = {
s = \\aform => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!aform;
adv = (linCoordSep [])!conj.distr!conj.conj++ss.adv!conj.distr!conj.conj;
isPre = ss.isPre
} ;
ConjRS conj ss = {
s = \\role => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!role
} ;
ConjCN conj ss = {
s = \\nform => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!nform;
g = ss.g
} ;
-- These fun's are generated from the list cat's.
BaseS x y = {s = \\d,t=>x.s++linCoord!t++ y.s} ;
ConsS x xs = {s = \\d,t=>x.s++(linCoordSep comma)!d!t++xs.s!d!t} ;
@@ -37,6 +45,9 @@ concrete ConjunctionBul of Conjunction =
BaseAdv x y = {s = \\d,t=>x.s++linCoord!t++ y.s} ;
ConsAdv x xs = {s = \\d,t=>x.s++(linCoordSep comma)!d!t++xs.s!d!t} ;
BaseIAdv x y = {s = \\d,t,qform=>x.s!qform++linCoord!t++ y.s!qform} ;
ConsIAdv x xs = {s = \\d,t,qform=>x.s!qform++(linCoordSep comma)!d!t++xs.s!d!t!qform} ;
BaseNP x y =
{s = \\d,t,role=>x.s!role++linCoord!t++y.s!role;
a = conjAgr x.a y.a} ;
@@ -44,11 +55,6 @@ concrete ConjunctionBul of Conjunction =
{s = \\d,t,role=>x.s!role++(linCoordSep comma)!d!t++xs.s!d!t!role;
a = conjAgr xs.a x.a} ;
BaseRS x y =
{s = \\d,t,role=>x.s!role++linCoord!t++y.s!role} ;
ConsRS x xs =
{s = \\d,t,role=>x.s!role++(linCoordSep comma)!d!t++xs.s!d!t!role} ;
BaseAP x y =
{s = \\d,t,aform=>x.s!aform++linCoord!t++y.s!aform;
adv= \\d,t =>x.adv ++linCoord!t++y.adv;
@@ -58,10 +64,25 @@ concrete ConjunctionBul of Conjunction =
adv= \\d,t =>x.adv ++(linCoordSep comma)!d!t++xs.adv!d!t;
isPre = andB x.isPre xs.isPre} ;
BaseRS x y =
{s = \\d,t,role=>x.s!role++linCoord!t++y.s!role} ;
ConsRS x xs =
{s = \\d,t,role=>x.s!role++(linCoordSep comma)!d!t++xs.s!d!t!role} ;
BaseCN x y =
{s = \\d,t,nform=>x.s!nform++linCoord!t++y.s!nform;
g = x.g} ;
ConsCN x xs =
{s = \\d,t,nform=>x.s!nform++(linCoordSep comma)!d!t++xs.s!d!t!nform;
g = x.g} ;
lincat
[S] = {s : Bool => Ints 2 => Str} ;
[Adv] = {s : Bool => Ints 2 => Str} ;
[IAdv] = {s : Bool => Ints 2 => QForm => Str} ;
[NP] = {s : Bool => Ints 2 => Role => Str; a : Agr} ;
[RS] = {s : Bool => Ints 2 => Agr => Str} ;
[AP] = {s : Bool => Ints 2 => AForm => Str; adv : Bool => Ints 2 => Str; isPre : Bool} ;
[RS] = {s : Bool => Ints 2 => Agr => Str} ;
[CN] = {s : Bool => Ints 2 => NForm => Str; g : AGender} ;
}

View File

@@ -1212,7 +1212,7 @@ lin anchorite_N = variants {};
lin anchorman_N = variants {};
lin anchovy_N = variants {};
lin ancient_A = mkA078 "старовремски" ;
lin ancillary_A = variants {};
lin ancillary_A = mkA076 "подчинен";
lin ancona_PN = variants {};
lin and_Conj = {s=[]; conj=0; distr=False; n = Pl};
lin andante_A = variants {};
@@ -1566,7 +1566,7 @@ lin applique_V2 = variants {};
lin apply_V = stateV (mkV186 "кандидатствам");
lin apply_V2 = dirV2 (actionV (mkV186 "прилагам") (mkV176 "приложа"));
lin apply_V2V = variants {};
lin apply_VV = stateV (mkV186 "кандидатствам");
lin apply_VV = mkVV (stateV (mkV186 "кандидатствам"));
lin appoint_V2 = variants {};
lin appoint_V2V = variants {};
lin appoint_VS = variants {};
@@ -1959,8 +1959,8 @@ lin assent_N = variants {};
lin assent_V = variants {};
lin assert_V = variants {};
lin assert_V2 = variants {};
lin assert_VS = variants {};
lin assertion_N = variants {};
lin assert_VS = mkVS (stateV (mkV174 "твърдя"));
lin assertion_N = mkN072 "твърдение";
lin assertive_A = variants {};
lin assess_V2 = variants {};
lin assessment_N = mkN041 "преценка" ;
@@ -3094,8 +3094,8 @@ lin belgrade_PN = variants {};
lin belie_V2 = variants {};
lin belief_N = variants {};
lin believable_A = mkA079 "вероятен" ;
lin believe_V = variants {};
lin believe_V2 = variants {};
lin believe_V = stateV (mkV186 "вярвам");
lin believe_V2 = prepV2 (stateV (mkV186 "вярвам")) (mkPrep "на" Acc);
lin believe_V2V = variants {};
lin believe_VS = variants {};
lin believer_N = variants {};
@@ -3563,8 +3563,8 @@ lin blah_N = variants {};
lin blaina_PN = variants {};
lin blairgowrie_PN = variants {};
lin blame_N = variants {};
lin blame_V = variants {};
lin blame_V2 = variants {};
lin blame_V = actionV (mkV186 "обвинявам") (mkV174 "обвиня");
lin blame_V2 = dirV2 (actionV (mkV186 "обвинявам") (mkV174 "обвиня"));
lin blameless_A = variants {};
lin blameworthy_A = variants {};
lin blanch_V = variants {};
@@ -4257,7 +4257,7 @@ lin breakable_A = variants {};
lin breakage_N = variants {};
lin breakaway_N = variants {};
lin breakaways_N = variants {};
lin breakdown_N = variants {};
lin breakdown_N = mkN001 "срив";
lin breaker_N = variants {};
lin breakfast_N = mkN041 "закуска" ;
lin breakfast_V = actionV (mkV186 "закусвам") (mkV173 "закуся");
@@ -7191,7 +7191,7 @@ lin comprise_V2 = variants {};
lin compromise_N = mkN007 "компромис" ;
lin compromise_V = variants {};
lin compromise_V2 = variants {};
lin comptroller_N = variants {};
lin comptroller_N = mkN007a "контрольор" ;
lin compulsion_N = variants {};
lin compulsive_A = variants {};
lin compulsory_A = variants {};
@@ -9763,18 +9763,18 @@ lin deshabille_N = variants {};
lin desiccant_N = variants {};
lin desiccate_V2 = variants {};
lin desideratum_N = variants {};
lin design_N = mkN071 "проектиране" ;
lin design_V = variants {};
lin design_V2 = variants {};
lin design_V2V = variants {};
lin designate_A = variants {};
lin designate_V = variants {};
lin designate_V2 = variants {};
lin design_N = mkN007 "дизайн";
lin design_V = stateV (mkV186 "проектирам");
lin design_V2 = dirV2 (stateV (mkV186 "проектирам"));
lin design_V2V = mkV2V (stateV (mkV186 "проектирам")) noPrep noPrep;
lin designate_A = mkA076 "предназначен";
lin designate_V = actionV (mkV186 "предназначавам") (mkV176 "предназнача");
lin designate_V2 = dirV2 (actionV (mkV186 "предназначавам") (mkV176 "предназнача"));
lin designate_V2V = variants {};
lin designate_VS = variants {};
lin designation_N = mkN072 "предназначение" ;
lin designedly_Adv = variants {};
lin designer_N = variants {};
lin designer_N = mkN007a "дизайнер";
lin designing_A = variants {};
lin designing_N = variants {};
lin desirability_N = variants {};
@@ -10161,17 +10161,17 @@ lin dipstick_N = variants {};
lin diptych_N = variants {};
lin dir_N = variants {};
lin dire_A = variants {};
lin direct_A = mkA079 "директен" ;
lin direct_A = mkA079 "директен";
lin direct_Adv = variants {};
lin direct_V = variants {};
lin direct_V2 = variants {};
lin direct_VS = variants {};
lin direction_N = mkN072 "управление" ;
lin direction_N = mkN072 "направление";
lin direction_finder_N = variants {};
lin directional_A = variants {};
lin directive_N = mkN047 "дирекция" ;
lin directive_N = mkN041 "директива";
lin directness_N = variants {};
lin director_N = mkN007a "режисьор" ;
lin director_N = mkN007a "директор";
lin directorate_N = mkN071 "контраразузнаване" ;
lin directorship_N = mkN054 "директорство" ;
lin directory_N = variants {};
@@ -11409,10 +11409,10 @@ lin dyspeptic_A = variants {};
lin dyspeptic_N = variants {};
lin e'en_Adv = variants {};
lin e'er_Adv = variants {};
lin each_Det = variants {};
lin each_Det = mkDeterminerSg "всеки" "всяка" "всяко";
lin eager_A = variants {};
lin eagerness_N = variants {};
lin eagle_N = variants {};
lin eagle_N = mkN008 "орел";
lin eagle_eyed_A = variants {};
lin eaglescliffe_PN = variants {};
lin eaglet_N = variants {};
@@ -11432,7 +11432,7 @@ lin early_warning_A = variants {};
lin earmark_N = variants {};
lin earmark_V2 = variants {};
lin earn_V = variants {};
lin earn_V2 = variants {};
lin earn_V2 = dirV2 (actionV (mkV186 "спечелвам") (mkV173 "спечеля"));
lin earn_VA = variants {};
lin earnest_A = variants {};
lin earnest_N = variants {};
@@ -11580,7 +11580,7 @@ lin education_N = mkN049 "образованост" ;
lin educational_A = mkA079 "образователен" ;
lin educationalist_N = variants {};
lin educationist_N = variants {};
lin educator_N = variants {};
lin educator_N = mkN031a "учител";
lin educe_V2 = variants {};
lin edward_PN = variants {};
lin edwardian_A = variants {};
@@ -13209,7 +13209,7 @@ lin fawn_N = variants {};
lin fawn_V = variants {};
lin fbi_PN = variants {};
lin fealty_N = variants {};
lin fear_N = variants {};
lin fear_N = mkN001 "страх";
lin fear_V = variants {};
lin fear_V2 = variants {};
lin fear_VS = variants {};
@@ -14154,7 +14154,7 @@ lin foregone_A = variants {};
lin foreground_N = variants {};
lin forehand_A = variants {};
lin forehead_N = variants {};
lin foreign_A = mkA079 "уличен" ;
lin foreign_A = mkA079 "външен";
lin foreigner_N = variants {};
lin foreknow_V = variants {};
lin foreknow_V2 = variants {};
@@ -14489,7 +14489,7 @@ lin frequent_A = variants {};
lin frequent_V2 = variants {};
lin fresco_N = variants {};
lin fresco_V2 = variants {};
lin fresh_A = mkA076 "зелен" ;
lin fresh_A = mkA076 "свеж";
lin fresh_Adv = variants {};
lin freshen_V = variants {};
lin freshen_V2 = variants {};
@@ -15185,7 +15185,7 @@ lin gesticulation_N = mkN047 "жестикулация";
lin gesture_N = mkN001 "жест";
lin gesture_V = stateV (mkV186 "жестикулирам");
lin get_V = variants {};
lin get_V2 = variants {};
lin get_V2 = dirV2 (actionV (mkV186 "получавам") (mkV176 "получа"));
lin get_V2V = variants {};
lin get_VA = stateV (mkV186 "ставам");
lin get_VV = variants {};
@@ -15919,7 +15919,7 @@ lin grotty_A = variants {};
lin grouch_N = variants {};
lin grouch_V = variants {};
lin grouchy_A = variants {};
lin ground_N = mkN007 "терен" ;
lin ground_N = mkN041 "основа";
lin ground_V = variants {};
lin ground_V2 = variants {};
lin ground_bait_N = variants {};
@@ -15943,7 +15943,7 @@ lin grouse_VS = variants {};
lin grove_N = variants {};
lin grovel_V = variants {};
lin groveller_N = variants {};
lin grow_V = variants {};
lin grow_V = stateV (mkV145 "раста");
lin grow_V2 = variants {};
lin grow_V2V = variants {};
lin grow_VA = variants {};
@@ -16806,21 +16806,22 @@ lin helmeted_A = variants {};
lin helmsman_N = variants {};
lin helot_N = variants {};
lin help_N = mkN049 "помощ" ;
lin help_V = variants {};
lin help_V2 = variants {};
lin help_V2V = variants {};
lin help_VV = variants {};
lin help_V = actionV (mkV186 "помагам") (mkV152 "помогна");
lin help_V2 = prepV2 (actionV (mkV186 "помагам") (mkV152 "помогна")) (mkPrep "на" Acc);
lin help_V2V = mkV2V (actionV (mkV186 "помагам") (mkV152 "помогна")) (mkPrep "на" Acc) noPrep;
lin help_VV = mkVV (actionV (mkV186 "помагам") (mkV152 "помогна"));
lin help_VS = variants {};
lin helper_N = variants {};
lin helpful_A = variants {};
lin helpfulness_N = variants {};
lin helperMasc_N = mkN007b "помагач";
lin helperFem_N = mkN041 "помагачка";
lin helpful_A = mkA079 "полезен";
lin helpfulness_N = mkN049 "полезност";
lin helping_N = variants {};
lin helpless_A = variants {};
lin helplessness_N = variants {};
lin helpless_A = mkA079 "безпомощен";
lin helplessness_N = mkN049 "безпомощност";
lin helpmate_N = variants {};
lin helpmeet_N = variants {};
lin helsinki_PN = variants {};
lin helston_PN = variants {};
lin helsinki_PN = mkPN "Хелзинки" Masc;
lin helston_PN = mkPN "Хелстън" Masc;
lin helter_skelter_Adv = variants {};
lin helter_skelter_N = variants {};
lin helve_N = variants {};
@@ -18268,7 +18269,7 @@ lin incline_V2V = variants {};
lin inclose_V2 = variants {};
lin inclosure_N = variants {};
lin include_V = variants {};
lin include_V2 = variants {};
lin include_V2 = dirV2 (actionV (mkV186 "включвам") (mkV176 "включа"));
lin include_VV = variants {};
lin inclusion_N = mkN071 "включване" ;
lin inclusive_A = variants {};
@@ -19333,7 +19334,7 @@ lin israeli_A = variants {};
lin israeli_N = variants {};
lin issue_N = mkN001 "спор" ;
lin issue_V = actionV (mkV186 "издавам") (mkV168 "издам");
lin issue_V2 = variants {};
lin issue_V2 = dirV2 (actionV (mkV186 "издавам") (mkV168 "издам"));
lin istanbul_PN = mkPN "Истанбул" Masc;
lin isthmus_N = variants {};
lin it_Pron = mkPron "то" "него" "му" "негов" "неговия" "неговият" "негова" "неговата" "негово" "неговото" "негови" "неговите" (GSg Neut) P3 ;
@@ -19866,6 +19867,7 @@ lin keenness_N = variants {};
lin keep_N = variants {};
lin keep_V = variants {};
lin keep_V2 = variants {};
lin keep_V2V = variants {};
lin keep_VA = variants {};
lin keep_VS = variants {};
lin keep_VV = variants {};
@@ -21960,7 +21962,7 @@ lin mammal_N = variants {};
lin mammon_N = variants {};
lin mammoth_N = variants {};
lin mammy_N = variants {};
lin man_N = mkN007b "играч" ;
lin man_N = mkN024 "мъж";
lin man_V2 = variants {};
lin man_at_arms_N = variants {};
lin man_eater_N = variants {};
@@ -24794,7 +24796,7 @@ lin numeration_N = variants {};
lin numerator_N = variants {};
lin numeric_A = variants {};
lin numerical_A = variants {};
lin numerous_A = mkA085 "броен" ;
lin numerous_A = mkA085 "многоброен";
lin numinous_A = variants {};
lin numismatics_N = variants {};
lin numismatist_N = variants {};
@@ -24985,7 +24987,7 @@ lin occupy_V = variants {};
lin occupy_V2 = variants {};
lin occur_V = variants {};
lin occurr_V2 = variants {};
lin occurrence_N = variants {};
lin occurrence_N = mkN071 "срещане";
lin ocean_N = mkN007 "океан" ;
lin oceanic_A = mkA078 "океански" ;
lin ochre_N = variants {};
@@ -26205,7 +26207,7 @@ lin paraguayan_A = variants {};
lin paraguayan_N = variants {};
lin parakeet_N = variants {};
lin parallel_A = mkA079 "паралелен" ;
lin parallel_N = variants {};
lin parallel_N = mkN007 "паралел";
lin parallel_V2 = variants {};
lin parallelism_N = variants {};
lin parallelogram_N = variants {};
@@ -27823,7 +27825,7 @@ lin pogrom_N = variants {};
lin poignancy_N = variants {};
lin poignant_A = variants {};
lin poinsettia_N = variants {};
lin point_N = mkN001 "пункт" ;
lin point_N = mkN041 "точка";
lin point_V = variants {};
lin point_V2 = variants {};
lin point_blank_A = variants {};
@@ -28085,7 +28087,7 @@ lin portuguese_A = mkA078 "португалски" ;
lin portuguese_N = variants {};
lin pose_N = mkN054 "позьорство" ;
lin pose_V = variants {};
lin pose_V2 = variants {};
lin pose_V2 = dirV2 (actionV (mkV187 "поставям") (mkV173 "поставя"));
lin poser_N = variants {};
lin poseur_N = variants {};
lin poseuse_N = variants {};
@@ -29367,7 +29369,7 @@ lin purplish_A = variants {};
lin purport_N = variants {};
lin purport_V2 = variants {};
lin purport_V2V = variants {};
lin purpose_N = variants {};
lin purpose_N = mkN072 "предназначение";
lin purpose_V2 = variants {};
lin purpose_built_A = variants {};
lin purposeful_A = variants {};
@@ -29578,19 +29580,19 @@ lin quentin_PN = variants {};
lin quern_N = variants {};
lin querulous_A = variants {};
lin querulousness_N = variants {};
lin query_N = variants {};
lin query_V = variants {};
lin query_V2 = variants {};
lin quest_N = mkN071 "търсене" ;
lin quest_V = variants {};
lin question_N = mkN072 "съмнение" ;
lin question_V2 = variants {};
lin query_N = mkN071 "запитване";
lin query_V = actionV (mkV186 "запитвам") (mkV186 "запитам");
lin query_V2 = dirV2 (actionV (mkV186 "запитвам") (mkV186 "запитам"));
lin quest_N = mkN071 "издирване";
lin quest_V = actionV (mkV186 "издирвам") (mkV173 "издиря");
lin question_N = mkN007 "въпрос";
lin question_V2 = dirV2 (actionV (mkV186 "запитвам") (mkV186 "запитам"));
lin question_mark_N = variants {};
lin question_master_N = variants {};
lin questionable_A = mkA079 "спорен" ;
lin questionable_A = mkA079 "спорен";
lin questioner_N = variants {};
lin questioningly_Adv = variants {};
lin questionnaire_N = variants {};
lin questionnaire_N = mkN014 "въпросник";
lin quetzal_N = variants {};
lin queue_N = mkN041 "опашка";
lin queue_V = variants {};
@@ -30571,9 +30573,9 @@ lin regular_N = variants {};
lin regularity_N = variants {};
lin regularization_N = variants {};
lin regularize_V2 = variants {};
lin regulate_V2 = variants {};
lin regulate_V2 = dirV2 (stateV (mkV186 "регулирам"));
lin regulation_N = mkN071 "регулиране" ;
lin regulator_N = variants {};
lin regulator_N = mkN007 "регулатор";
lin regum_V2 = variants {};
lin regurgitate_V = variants {};
lin regurgitate_V2 = variants {};
@@ -30686,6 +30688,7 @@ lin relocation_N = variants {};
lin reluctance_N = mkN049 "нерешителност" ;
lin reluctant_A = variants {};
lin rely_V = variants {};
lin rely_on_V2V = variants {};
lin remain_V = variants {};
lin remain_V2 = variants {};
lin remain_VA = variants {};
@@ -30859,8 +30862,8 @@ lin replenish_V2 = variants {};
lin replenishment_N = variants {};
lin replete_A = mkA079 "пълен" ;
lin repletion_N = variants {};
lin replica_N = variants {};
lin replicate_V2 = variants {};
lin replica_N = mkN007 "дубликат";
lin replicate_V2 = dirV2 (actionV (mkV187 "повтарям") (mkV173 "повторя"));
lin reply_N = mkN007 "отговор" ;
lin reply_V = variants {};
lin reply_V2 = variants {};
@@ -31025,7 +31028,7 @@ lin resinated_A = variants {};
lin resinous_A = variants {};
lin resist_V = variants {};
lin resist_V2 = variants {};
lin resist_VV = variants {};
lin resist_VV = gerundVV (medialV (actionV (mkV187 "противопоставям") (mkV173 "противопоставя")) Acc);
lin resistance_N = mkN071 "противостоене" ;
lin resistant_A = mkA079 "резистентен";
lin resister_N = variants {};
@@ -31960,13 +31963,13 @@ lin ruin_V2 = variants {};
lin ruin_VS = variants {};
lin ruination_N = variants {};
lin ruinous_A = variants {};
lin rule_N = mkN054 "господство" ;
lin rule_V = variants {};
lin rule_N = mkN054 "правило";
lin rule_V = stateV (mkV186 "управлявам");
lin rule_V2 = variants {};
lin rule_VS = variants {};
lin ruler_N = variants {};
lin ruling_A = mkA078 "владетелски" ;
lin ruling_N = variants {};
lin ruling_A = mkA076 "управляващ";
lin ruling_N = mkN072 "управление";
lin rum_N = variants {};
lin rum_runner_N = variants {};
lin rumba_N = variants {};
@@ -33201,7 +33204,7 @@ lin selfishness_N = variants {};
lin selkirk_PN = variants {};
lin sell_N = variants {};
lin sell_V = variants {};
lin sell_V2 = variants {};
lin sell_V2 = dirV2 (actionV (mkV186 "продавам") (mkV168 "продам"));
lin sell_VA = variants {};
lin sell_VS = variants {};
lin seller_N = variants {};
@@ -33905,8 +33908,8 @@ lin shrimp_V = variants {};
lin shrine_N = variants {};
lin shrine_V2 = variants {};
lin shrink_N = variants {};
lin shrink_V = variants {};
lin shrink_V2 = variants {};
lin shrink_V = medialV (actionV (mkV186 "смалявам") (mkV174 "смаля")) Acc;
lin shrink_V2 = dirV2 (actionV (mkV186 "смалявам") (mkV174 "смаля"));
lin shrinkable_A = variants {};
lin shrinkage_N = variants {};
lin shrive_V2 = variants {};
@@ -35120,7 +35123,7 @@ lin sonority_N = variants {};
lin sonorous_A = variants {};
lin sonsy_A = variants {};
lin soochow_PN = variants {};
lin soon_Adv = variants {};
lin soon_Adv = {s="скоро"};
lin sooner_Adv = {s="по - скоро"};
lin soonest_Adv = variants {};
lin soot_N = variants {};
@@ -35318,7 +35321,7 @@ lin spareness_N = variants {};
lin sparing_A = variants {};
lin spark_N = variants {};
lin spark_V = variants {};
lin spark_V2 = variants {};
lin spark_V2 = dirV2 (actionV (mkV186 "разпръсквам") (mkV186 "разпръскам"));
lin spark_plug_N = variants {};
lin sparking_plug_N = variants {};
lin sparkle_N = variants {};
@@ -36101,7 +36104,7 @@ lin steelworks_N = variants {};
lin steely_A = variants {};
lin steelyard_N = variants {};
lin steenbok_N = variants {};
lin steep_A = variants {};
lin steep_A = mkA079 "стръмен";
lin steep_V = variants {};
lin steep_V2 = variants {};
lin steepen_V = variants {};
@@ -36852,8 +36855,8 @@ lin sue_V2V = variants {};
lin suede_N = variants {};
lin suet_N = variants {};
lin suety_A = variants {};
lin suffer_V = variants {};
lin suffer_V2 = variants {};
lin suffer_V = stateV (mkV186 "страдам");
lin suffer_V2 = prepV2 (stateV (mkV186 "страдам")) (mkPrep "от" Acc);
lin sufferable_A = variants {};
lin sufferance_N = variants {};
lin sufferer_N = variants {};
@@ -37080,13 +37083,14 @@ lin supplicate_V2 = variants {};
lin supplication_N = variants {};
lin supplier_N = variants {};
lin supply_N = mkN071 "снабдяване" ;
lin supply_V2 = variants {};
lin support_N = mkN049 "помощ" ;
lin support_V2 = variants {};
lin supply_V2 = dirV2 (actionV (mkV186 "снабдявам") (mkV174 "снабдя"));
lin support_N = mkN041 "поддръжка";
lin support_V2 = dirV2 (stateV (mkV186 "поддържам"));
lin support_VV = variants {};
lin supportable_A = variants {};
lin supporter_N = mkN014 "поддръжник" ;
lin suppose_V2 = variants {};
lin suppose_VV = variants {};
lin suppose_V2 = dirV2 (actionV (mkV186 "предполагам") (mkV176 "предположа"));
lin suppose_V2V = mkV2V (actionV (mkV186 "предполагам") (mkV176 "предположа")) noPrep noPrep;
lin suppose_VS = variants {};
lin supposed_A = mkA076 "предполагаем" ;
lin supposition_N = variants {};
@@ -37962,7 +37966,7 @@ lin telex_N = variants {};
lin telfer_N = variants {};
lin telford_PN = variants {};
lin tell_V = variants {};
lin tell_V2 = variants {};
lin tell_V2 = dirV2 (actionV (mkV186 "казвам") (mkV156 "кажа"));
lin tell_V2V = variants {};
lin tell_V2S = variants {};
lin tell_V2Q = variants {};
@@ -39036,7 +39040,7 @@ lin traction_engine_N = variants {};
lin tractor_N = mkN007 "трактор";
lin tracy_PN = variants {};
lin trad_N = variants {};
lin trade_N = mkN054 "занаятчийство" ;
lin trade_N = mkN047 "търговия";
lin trade_V = stateV (mkV186 "търгувам");
lin trade_V2 = dirV2 (stateV (mkV186 "търгувам"));
lin trade_in_N = variants {};
@@ -40455,7 +40459,7 @@ lin unlawful_A = variants {};
lin unlearn_V2 = variants {};
lin unleash_V2 = variants {};
lin unleavened_A = variants {};
lin unless_Prep = variants {};
lin unless_Subj = variants {};
lin unlettered_A = variants {};
lin unlicensed_A = variants {};
lin unlighted_A = variants {};
@@ -42275,7 +42279,8 @@ lin whereas_Prep = variants {};
lin whereat_Adv = variants {};
lin whereby_Adv = variants {};
lin wherefore_Adv = variants {};
lin wherein_Adv = variants {};
lin wherein_IAdv = mkIAdv "къде";
lin wherein_Subj = {s="където"};
lin whereof_Adv = variants {};
lin whereon_Adv = variants {};
lin wheresoever_Adv = variants {};
@@ -42297,7 +42302,7 @@ lin whichsoever_A = variants {};
lin whiff_N = variants {};
lin whig_N = variants {};
lin while_N = variants {};
lin while_Subj = variants {};
lin while_Subj = {s="докато"};
lin whilst_Subj = variants {};
lin while_V2 = variants {};
lin whim_N = variants {};
@@ -43024,7 +43029,7 @@ lin yha_N = variants {};
lin yiddish_N = variants {};
lin yield_N = mkN007 "приход";
lin yield_V = variants {};
lin yield_V2 = variants {};
lin yield_V2 = dirV2 (actionV (mkV186 "пораждам") (mkV174 "породя"));
lin yield_VA = variants {};
lin yielding_A = variants {};
lin ymca_N = variants {};

View File

@@ -76,7 +76,7 @@ concrete ExtraBul of ExtraBulAbs = CatBul **
BaseVPI x y = {s = \\d,t,a=>x.s!a++linCoord!t++y.s!a} ;
ConsVPI x xs = {s = \\d,t,a=>x.s!a++(linCoordSep comma)!d!t++xs.s!d!t!a} ;
MkVPI vp = {s = daComplex vp ! Perf} ;
MkVPI vp = {s = daComplex Simul Pos vp ! Perf} ;
ConjVPI conj vpi = {
s = \\a => conj.s++(linCoordSep [])!conj.distr!conj.conj++vpi.s!conj.distr!conj.conj!a;
} ;

View File

@@ -61,6 +61,6 @@ concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
vtype = vp.vtype
} ;
ImpPl1 vp = {s = "íåêà" ++ daComplex vp ! Perf ! {gn = GPl ; p = P1}} ;
ImpPl1 vp = {s = "íåêà" ++ daComplex Simul Pos vp ! Perf ! {gn = GPl ; p = P1}} ;
}

View File

@@ -131,10 +131,13 @@ oper
mkVS : V -> VS ;
mkVS v = v ** {lock_VS = <>} ;
mkVV : V -> VV ;
mkVV v = v ** {lock_VV = <>} ;
mkVV v = v ** {typ = VVInf; lock_VV = <>} ;
gerundVV : V -> VV ;
gerundVV v = v ** {typ = VVGerund; lock_VV = <>} ;
mkVA : V -> VA ;
mkVA v = v ** {lock_VA = <>} ;

View File

@@ -66,8 +66,10 @@ lin
a = np.a
} ;
SlashV2V vv p vp =
insertSlashObj2 (daComplex vp ! Perf) (slashV vv vv.c2) ;
SlashV2V vv ant p vp =
insertSlashObj2 (\\agr => ant.s ++ p.s ++
daComplex ant.a p.p vp ! Perf ! agr)
(slashV vv vv.c2) ;
PredVPosv np vp = {
s = \\t,a,p,o =>
@@ -86,9 +88,13 @@ lin
}
} ;
CompS s = {s = \\_ => "че" ++ s.s} ;
CompVP ant p vp = {s = \\agr => ant.s ++ p.s ++
daComplex ant.a p.p vp ! Perf ! agr} ;
PassVS vs vp =
insertObj (\\a => vs.s ! Perf ! VPassive (aform a.gn Indef (RObj Acc))
++ daComplex vp ! Perf ! a)
++ daComplex Simul Pos vp ! Perf ! a)
(predV verbBe) ;
}

View File

@@ -14,7 +14,7 @@ concrete PhraseBul of Phrase = CatBul ** open Prelude, ResBul in {
UttIP ip = {s = ip.s ! RSubj ! QDir} ;
UttIAdv iadv = {s = iadv.s ! QDir} ;
UttNP np = {s = np.s ! RSubj} ;
UttVP vp = {s = daComplex vp ! Perf ! agrP3 (GSg Neut)} ;
UttVP vp = {s = daComplex Simul Pos vp ! Perf ! agrP3 (GSg Neut)} ;
UttAdv adv = adv ;
UttCN n = {s = n.s ! NF Sg Indef} ;
UttCard n = {s = n.s ! CFNeut Indef} ;

View File

@@ -72,6 +72,8 @@ resource ResBul = ParamX ** open Prelude, Predef in {
| VPhrasal Case
;
VVType = VVInf | VVGerund ;
-- The order of sentence is needed already in $VP$.
Order = Main | Inv | Quest ;
@@ -469,14 +471,30 @@ resource ResBul = ParamX ** open Prelude, Predef in {
in verb.ad.s ++ li0 ++ verbs.aux.s1 ++ verbs.main ++ verbs.aux.s2 ;
daComplex : VP -> Aspect => Agr => Str =
daComplex : Anteriority -> Polarity -> VP -> Aspect => Agr => Str =
\a,p,vp -> \\asp,agr =>
let clitic = case vp.vtype of {
VNormal => {s=[]; agr=agr} ;
VMedial c => {s=reflClitics ! c; agr=agr} ;
VPhrasal c => {s=personalClitics ! c ! agr.gn ! agr.p; agr={gn=GSg Neut; p=P3}}
} ;
pol = case p of {Pos => ""; Neg => "íå"}
in vp.ad.s ++ "äà" ++ pol ++ clitic.s ++
case a of {
Simul => vp.s ! asp ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ;
Anter => auxBe ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ++
vp.s ! asp ! (VPerfect (aform clitic.agr.gn Indef (RObj Acc)))
} ++
vp.compl ! agr ;
gerund : VP -> Aspect => Agr => Str =
\vp -> \\asp,agr =>
let clitic = case vp.vtype of {
VNormal => {s=[]; agr=agr} ;
VMedial c => {s=reflClitics ! c; agr=agr} ;
VPhrasal c => {s=personalClitics ! c ! agr.gn ! agr.p; agr={gn=GSg Neut; p=P3}}
}
in vp.ad.s ++ "äà" ++ clitic.s ++ vp.s ! asp ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ++ vp.compl ! agr ;
in vp.ad.s ++ clitic.s ++ vp.s ! asp ! VGerund ++ vp.compl ! agr ;
-- For $Numeral$.

View File

@@ -49,7 +49,7 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
EmbedS s = {s = "," ++ "֌" ++ s.s} ;
EmbedQS qs = {s = qs.s ! QIndir} ;
EmbedVP vp = {s = daComplex vp ! Perf ! {gn=GSg Masc; p=P1}} ;
EmbedVP vp = {s = daComplex Simul Pos vp ! Perf ! {gn=GSg Masc; p=P1}} ;
UseCl t p cl = {
s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Main

View File

@@ -16,7 +16,11 @@ concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
insertSlashObj2 (\\_ => v.c3.s ++ np.s ! RObj v.c3.c) (slashV v v.c2) ;
ComplVV vv vp =
insertObj (daComplex vp ! Perf) (predV vv) ;
insertObj (case vv.typ of {
VVInf => daComplex Simul Pos vp ! Perf;
VVGerund => gerund vp ! Imperf
})
(predV vv) ;
ComplVS v s = insertObj (\\_ => "," ++ "֌" ++ s.s) (predV v) ;
ComplVQ v q = insertObj (\\_ => q.s ! QDir) (predV v) ;
@@ -36,13 +40,13 @@ concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
-- test: I saw a boy whom she begged to walk
SlashV2V vv vp =
insertSlashObj2 (daComplex vp ! Perf) (slashV vv vv.c2) ;
insertSlashObj2 (daComplex Simul Pos vp ! Perf) (slashV vv vv.c2) ;
-- test: I saw a car whom she wanted to buy
SlashVV vv slash = {
s = vv.s ;
ad = {isEmpty=True; s=[]};
compl1 = daComplex {s=slash.s; ad=slash.ad; compl=slash.compl1; vtype=slash.vtype} ! Perf ;
compl1 = daComplex Simul Pos {s=slash.s; ad=slash.ad; compl=slash.compl1; vtype=slash.vtype} ! Perf ;
compl2 = slash.compl2 ;
vtype = vv.vtype ;
c2 = slash.c2
@@ -53,7 +57,7 @@ concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
s = vv.s ;
ad = {isEmpty=True; s=[]};
compl1 = \\agr => vv.c2.s ++ np.s ! RObj vv.c2.c ++
daComplex {s=slash.s; ad=slash.ad; compl=slash.compl1; vtype=slash.vtype} ! Perf ! np.a ;
daComplex Simul Pos {s=slash.s; ad=slash.ad; compl=slash.compl1; vtype=slash.vtype} ! Perf ! np.a ;
compl2 = slash.compl2 ;
vtype = vv.vtype ;
c2 = slash.c2

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) ;