1
0
forked from GitHub/gf-rgl

Fixed past passive participles full forms by adding its own stem to the verb

This commit is contained in:
Roman Suzi
2020-09-12 10:47:54 +03:00
parent eb08304c10
commit f072f56f3f
9 changed files with 40 additions and 10 deletions

View File

@@ -4138,8 +4138,8 @@ lin
skoree_Adv = mkAdv skoryj_A.comp ;
skoraja_N = mkN skoryj_A feminine inanimate ;
uvidennyi_A = mkA (uvidetq_V ** {pppss="увиден"}) Pass Past ; --# notpresent
uvidevshyi_A = mkA (uvidetq_V ** {pppss="увиден"}) Act Past ; --# notpresent
uvidennyi_A = mkA (uvidetq_V ** {pppss="увиден"; ppps="увиден"}) Pass Past ; --# notpresent
uvidevshyi_A = mkA (uvidetq_V ** {pppss="увиден"; ppps="увиден"}) Act Past ; --# notpresent
vedshij_A = mkA vesti_V Act Past ;--# notpresent
vedomyj_A = mkA vesti_V Pass Pres ;
@@ -4153,4 +4153,7 @@ lin
napravlennyj_A = mkA napravitq_V Pass Past ; --# notpresent
okazavshijsja_A = mkA okazatqsja_V Act Past ; --# notpresent
vzjvshij_A = mkA vzjatq_V Act Past ; --# notpresent
vzjatyj_A = mkA vzjatq_V Pass Past ; --# notpresent
}

View File

@@ -4135,4 +4135,6 @@ fun
napravivshij_A : A ;
napravlennyj_A : A ;
okazavshijsja_A : A ;
vzjatyj_A : A ;
vzjvshij_A : A ;
}

View File

@@ -179,6 +179,7 @@ oper
isg2="";
isg2refl="" ;
ipl1="";
ppps="явленн"; --*
pppss="явлен"; --*
prtr="существуя"; --*
ptr="существовав"; --*
@@ -198,6 +199,7 @@ oper
isg2="";
isg2refl="" ;
ipl1="";
ppps=["не явленн"]; --*
pppss=["не явлен"]; --*
prtr=["не существуя"]; --*
ptr=["не существовав"]; --*

View File

@@ -873,7 +873,8 @@ oper
} ;
VerbPassPastPart : Type = {
pppss : Str
ppps : Str ; -- full form stem
pppss : Str -- short stem
} ;
VerbTransgressive : Type = {
@@ -987,6 +988,7 @@ oper
isg2=imp.isg2 ;
isg2refl=imp.isg2refl ;
ipl1=imp.ipl1 ;
ppps=ppp.ppps ;
pppss=ppp.pppss ;
prtr=tr.prtr ;
ptr=tr.ptr
@@ -1045,6 +1047,14 @@ oper
makeVerbPassPastPart : ConjType -> Str -> Str -> Str -> Str -> VerbPassPastPart =
\ct, infs, sg1, sg3, psgm -> {
ppps=case <ct,infs> of { -- TODO
<9|11|12|14|15|16,_> => case psgm of {s+"л"=>s+"т"; _=>psgm+"т"} ;
<4,_> => sg1 + "енн" ; -- TODO: ён
<5,s+("е"|"ё")> => sg1 + "енн" ; -- TODO: ён
<7|8,_> => sg3 + "енн" ; -- TODO: ён
<3|10,_> => infs + "т" ;
_ => infs + "нн"
} ;
pppss=case <ct,infs> of {
<9|11|12|14|15|16,_> => case psgm of {s+"л"=>s+"т"; _=>psgm+"т"} ;
<4,_> => sg1 + "ен" ; -- TODO: ён
@@ -1090,6 +1100,7 @@ oper
isg2=com + "ти";
isg2refl=com + "тись";
ipl1=[];
ppps=com + "тим"; -- incorrect, but prevents empty
pppss=com + "тим"; -- incorrect, but prevents empty
prtr=com + "тя";
ptr=com + "тев";
@@ -1119,6 +1130,7 @@ oper
isg2=com + "ги";
isg2refl=com + "гись";
ipl1=[];
ppps=com + "ган"; -- incorrect, but prevents parsing problems
pppss=com + "ган"; -- incorrect, but prevents parsing problems
prtr=com + "жа"; -- *
ptr=com + "жав";
@@ -1148,6 +1160,7 @@ oper
isg2=com + "шь";
isg2refl=com + "шься";
ipl1=[];
ppps=com + "денн"; -- *
pppss=com + "ден"; -- *
prtr=com + "дя";
ptr=com + "в";
@@ -1176,6 +1189,7 @@ oper
isg2=com + "й";
isg2refl=com + "йся";
ipl1=[];
ppps=com + "нн"; -- *
pppss=com + "н"; -- *
prtr=com + "вая";
ptr=com + "в";
@@ -1205,7 +1219,8 @@ oper
isg2=com + "удь";
isg2refl=com + "удься";
ipl1=[];
pppss="ыт"; -- *
ppps=com + "ыт"; -- *
pppss=com + "ыт"; -- *
prtr=com + "ывая";
ptr=com + "ыв";
asp=asp;
@@ -1235,7 +1250,8 @@ oper
isg2=com + "ди";
isg2refl=com + "дись";
ipl1=[];
pppss="ден"; -- *
ppps=com + "денн"; -- *
pppss="com + ден"; -- *
prtr=com + "дя";
ptr=[];
asp=asp;

View File

@@ -254,7 +254,7 @@ lin
science_N = mkN "наука" ;
scratch_V2 = mkV2 (mkV imperfective "чесать" "чешу" "чешет");
sea_N = mkN "море" neuter inanimate "2c" ;
see_V2 = (mkV2plus (mkV2 (mkV imperfective transitive "видеть" "вижу" "видит" "5a"))) ** {pppss="виден"} ;
see_V2 = (mkV2plus (mkV2 (mkV imperfective transitive "видеть" "вижу" "видит" "5a"))) ** {pppss="виден"; ppps="виденн"} ;
seed_N = mkN "семя" neuter inanimate "8°c" ;
seek_V2 = mkV2 (mkV imperfective "искать" "ищу" "ищет");
sell_V3 = tvDirDir (mkV imperfective "продавать" "продаю" "продаёт");

View File

@@ -306,8 +306,8 @@ oper
= \v,voice,t ->
let refl = case v.refl of {Reflexive => "ся" ; _ => ""} in
case <voice,t> of {
<Pass,Past|Cond> => lin A ( --# notpresent TODO: very rough. Cover more cases
guessAdjectiveForms (v.pppss + "ный") ** { --# notpresent
<Pass,Past|Cond> => lin A ( --# notpresent TODO: check
guessAdjectiveForms (v.ppps + "ый") ** { --# notpresent
sm=v.pppss ; --# notpresent
sf=v.pppss + "а"; --# notpresent
sn=v.pppss + "о"; --# notpresent

View File

@@ -94,7 +94,8 @@ oper
prsg1, prsg2, prsg3, prpl1, prpl2, prpl3,
psgm, psgs,
isg2, ipl1, isg2refl,
pppss, -- past passive participle. Here only short stem
ppps, -- past passive participle, stem
pppss, -- past passive participle, short stem
prtr, ptr -- present and past transgressives (converbs)
: Str ;
fut : SpecialFuture ;

View File

@@ -658,6 +658,7 @@ oper
isg2="будь";
isg2refl="явись" ; -- ?
ipl1="давайте будем";
ppps="явленн"; --*
pppss="явлен"; --*
prtr="будучи";
ptr="быв";
@@ -723,6 +724,7 @@ oper
isg2refl="будь способны" ; -- *
isg2="будь способен"; -- some improvisation here
ipl1="давайте будем способны"; -- maybe, special like for future?
ppps=""; --*
pppss=""; --*
prtr="могши"; --*
ptr="могши";
@@ -747,6 +749,7 @@ oper
isg2="желай";
isg2refl="желайся" ;
ipl1="давайте будем хотеть";
ppps="хотим"; -- *
pppss="хотим"; -- *
prtr="хотя";
ptr="хотев";
@@ -761,7 +764,7 @@ oper
prsg1, prsg2, prsg3, prpl1, prpl2, prpl3,
psgm, psgs,
isg2, isg2refl, ipl1,
pppss,
ppps, pppss,
prtr, ptr ="";
fut=NullFuture ;
asp=Imperfective;

View File

@@ -151,6 +151,9 @@ gt UseCl (TTAnt TPres ASimul) PPos (PredVP (AdvNP (UsePron he_Pron) ( PositAdvAd
gt UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron she_Pron) (ComplVA become_VA (AdAP (PositAdAAdj clean_A) (PositA old_A))))) | l -treebank
gt UttAdv (ComparAdvAdj rather_CAdv warm_A (UsePron he_Pron)) | l -treebank -unlextext
gt UseCl (TTAnt TPres ASimul) PPos (PredVP (MassNP (AdjCN (PositA vzjvshij_A) (UseN apple_N))) (UseV fall_V)) | l -treebank -unlextext
gt UseCl (TTAnt TPres ASimul) PPos (PredVP (MassNP (AdjCN (PositA vzjatyj_A) (UseN apple_N))) (UseV fall_V)) | l -treebank -unlextext
gt CountNP (ConjDet or_Conj (BaseDAP (DetDAP every_Det) (DetDAP many_Det))) (MassNP (UseN city_N)) |l -treebank
gt UseCl ? ? (married_Cl (MassNP (UseN man_N)) (MassNP (UseN woman_N))) |l -treebank