forked from GitHub/gf-rgl
Prints to facilitate all form checks; Participles - first draft
This commit is contained in:
@@ -1153,6 +1153,7 @@ lin
|
||||
dostatq_V = mkV perfective transitive "достать" "достану" "достанет" "15a" ;
|
||||
dostatqsja_V = mkV perfective intransitive "достаться" "достанусь" "достанется" "15a" ;
|
||||
dostigatq_V = mkV imperfective transitive "достигать" "достигаю" "достигает" "1a" ;
|
||||
dostigatqsja_V = mkV imperfective transitive "достигаться" "достигаюсь" "достигается" "1a" ;
|
||||
dostignutq_V = mkV perfective transitive "достигнуть" "достигну" "достигнет" ;
|
||||
dohoditq_V = mkV imperfective transitive "доходить" "дохожу" "доходит" "4c" ;
|
||||
drozhatq_V = mkV imperfective transitive "дрожать" "дрожу" "дрожит" "5b" ;
|
||||
@@ -1607,6 +1608,7 @@ lin
|
||||
polagatq_V = mkV imperfective transitive "полагать" "полагаю" "полагает" "1a" ;
|
||||
polagatq_VS = mkVS polagatq_V ;
|
||||
polagatqsja_V = mkV imperfective intransitive "полагаться" "полагаюсь" "полагается" "1a" ;
|
||||
polzti_V = mkV imperfective intransitive "ползти" "ползу" "ползёт" "7b/b" ;
|
||||
poleztq_V = mkV perfective transitive "полезть" "полезу" "полезет" "7a" ;
|
||||
poleztq_VV = mkVV poleztq_V ;
|
||||
poletetq_V = mkV perfective transitive "полететь" "полечу" "полетит" "5b" ;
|
||||
@@ -4137,4 +4139,6 @@ lin
|
||||
skoree_Adv = mkAdv skoryj_A.comp ;
|
||||
skoraja_N = mkN skoryj_A feminine inanimate ;
|
||||
|
||||
uvidennyi_A = mkA (uvidetq_V ** {pppss="увиден"}) Pass Past ;
|
||||
uvidevshyi_A = mkA (uvidetq_V ** {pppss="увиден"}) Act Past ;
|
||||
}
|
||||
@@ -1138,6 +1138,7 @@ fun
|
||||
dostatq_V : V;
|
||||
dostatqsja_V : V;
|
||||
dostigatq_V : V;
|
||||
dostigatqsja_V : V;
|
||||
dostignutq_V : V;
|
||||
dohoditq_V : V;
|
||||
drozhatq_V : V;
|
||||
@@ -1592,6 +1593,7 @@ fun
|
||||
polagatq_V : V;
|
||||
polagatq_VS : VS;
|
||||
polagatqsja_V : V;
|
||||
polzti_V : V;
|
||||
poleztq_V : V;
|
||||
poleztq_VV : VV;
|
||||
poletetq_V : V;
|
||||
@@ -4121,4 +4123,7 @@ fun
|
||||
|
||||
skoree_Adv : Adv ;
|
||||
skoraja_N : N ;
|
||||
|
||||
uvidennyi_A : A ;
|
||||
uvidevshyi_A : A ;
|
||||
}
|
||||
@@ -22,6 +22,13 @@ lin
|
||||
wherefrom_IAdv = ss "откуда" ;
|
||||
whereto_IAdv = ss "куда" ;
|
||||
|
||||
-- : IQuant ;
|
||||
what_kind_of_IQuant = (adjFormsAdjective (makeAdjectiveForms "какой" "" "3b" PreferFull)) ** {
|
||||
preferShort=PreferFull ;
|
||||
g=Neut ;
|
||||
c=Nom
|
||||
} ;
|
||||
|
||||
-- near deixis
|
||||
presently_Adv = P.mkAdv "теперь" ;
|
||||
therefore_Adv = P.mkAdv "поэтому" ;
|
||||
|
||||
@@ -25,6 +25,8 @@ fun
|
||||
wherefrom_IAdv : IAdv ;
|
||||
whereto_IAdv : IAdv ;
|
||||
|
||||
what_kind_of_IQuant : IQuant ;
|
||||
|
||||
presently_Adv : Adv ;
|
||||
therefore_Adv : Adv ;
|
||||
fromhere_Adv : Adv ;
|
||||
|
||||
@@ -86,7 +86,7 @@ oper
|
||||
non_reflexive : Reflexivity
|
||||
= NonReflexive ;
|
||||
|
||||
-- Voice (not yet used)
|
||||
-- Voice
|
||||
active : Voice
|
||||
= Act ;
|
||||
passive : Voice
|
||||
@@ -131,7 +131,8 @@ oper
|
||||
mkA : Str -> ZAIndex -> A ;
|
||||
mkA : Str -> Str -> ZAIndex -> A ;
|
||||
mkA : Str -> Str -> ZAIndex -> ShortFormPreference -> A ;
|
||||
mkA : A -> Str -> A -> A -- Compound adjective like социально-экономический
|
||||
mkA : A -> Str -> A -> A ; -- Compound adjective like социально-экономический
|
||||
mkA : V -> Voice -> Tense -> A ; -- make participles
|
||||
} ;
|
||||
|
||||
ShortenA : A -> A ;
|
||||
@@ -301,6 +302,25 @@ oper
|
||||
= \pf -> pronToAdj pf ;
|
||||
mkA : A -> Str -> A -> A
|
||||
= \a1,link,a2 -> lin A (mkCompoundA a1 link a2) ;
|
||||
mkA : V -> Voice -> Tense -> A
|
||||
= \v,voice,t -> case <voice,t> of {
|
||||
<Pass,Past|Cond> => lin A (guessAdjectiveForms (v.pppss + "ный")) ;
|
||||
<Pass,Pres> => lin A ( -- overgenerated
|
||||
let s : Str = case v.prpl1 of {
|
||||
f + #consonant + "ём" => (Predef.tk 2 v.prpl1) + "омый" ;
|
||||
_ => v.prpl1 + "ый"
|
||||
} in
|
||||
makeAdjectiveFormsUseIndex s "" (Z.ZA 1 Z.No Z.A_ Z.NoC) PreferFull) ;
|
||||
<Act,Pres> => lin A (
|
||||
makeAdjectiveFormsUseIndex (Z.addRefl ((Predef.tk 1 v.prpl3) + "щий")) "" (Z.ZA 4 Z.No Z.A_ Z.NoC) PreferFull) ;
|
||||
<Act,Past|Cond> => lin A (
|
||||
let s : Str = case v.inf of {
|
||||
_ + ("сти"|"зти") => (Predef.tk 1 v.prsg1) + "ший" ; -- TODO: check if not all of these cases are ok
|
||||
_ => (Predef.tk 1 v.psgm) + "вший"
|
||||
} in
|
||||
makeAdjectiveFormsUseIndex (Z.addRefl s) "" (Z.ZA 4 Z.No Z.A_ Z.NoC) PreferFull) ;
|
||||
_ => Predef.error "Error: participle for this voice and tense does not exist"
|
||||
} -- TODO: suppress comp and short for all but Pass Pres; take sya into account
|
||||
} ;
|
||||
|
||||
ShortenA : A -> A
|
||||
|
||||
@@ -1563,4 +1563,54 @@ oper
|
||||
applyIPronPrep : ComplementCase -> IPronounForms -> Str
|
||||
= \prep,ip -> prep.s ++ selectIPronCase ip prep.c ;
|
||||
|
||||
printNounInflections : NounForms -> Str = \nf ->
|
||||
nf.snom ++ "-"
|
||||
++ nf.snom ++ "," ++ nf.pnom ++ ","
|
||||
++ nf.sgen ++ "," ++ nf.pgen ++ ","
|
||||
++ nf.sdat ++ "," ++ nf.pdat ++ ","
|
||||
++ nf.sacc ++ "," ++ nf.pacc ++ ","
|
||||
++ nf.sins ++ "," ++ nf.pins ++ ","
|
||||
++ nf.sprep ++ "," ++ nf.pprep ++ ","
|
||||
++ nf.sloc ++ "," ++ nf.sptv ;
|
||||
|
||||
printAdjectiveInflections : AdjForms -> Str = \af ->
|
||||
let mf = makeNFFromAF af Masc Inanimate in
|
||||
let ff = makeNFFromAF af Fem Inanimate in
|
||||
let nf = makeNFFromAF af Neut Inanimate in
|
||||
let mfa = makeNFFromAF af Masc Animate in
|
||||
let ffa = makeNFFromAF af Fem Animate in
|
||||
let nfa = makeNFFromAF af Neut Animate in
|
||||
af.msnom ++ "-"
|
||||
++ mf.snom ++ "," ++ ff.snom ++ "," ++ nf.snom ++ "," ++ mf.pnom ++ ","
|
||||
++ mf.sgen ++ "," ++ ff.sgen ++ "," ++ nf.sgen ++ "," ++ mf.pgen ++ ","
|
||||
++ mf.sdat ++ "," ++ ff.sdat ++ "," ++ nf.sdat ++ "," ++ mf.pdat ++ ","
|
||||
++ mf.sacc ++ "," ++ ff.sacc ++ "," ++ nf.sacc ++ "," ++ mf.pacc ++ ","
|
||||
++ mfa.sacc ++ "," ++ ffa.sacc ++ "," ++ nfa.sacc ++ "," ++ mfa.pacc ++ ","
|
||||
++ mf.sins ++ "," ++ ff.sins ++ "," ++ nf.sins ++ "," ++ mf.pins ++ ","
|
||||
++ mf.sprep ++ "," ++ ff.sprep ++ "," ++ nf.sprep ++ "," ++ mf.pprep ++ ","
|
||||
++ af.sm ++ "," ++ af.sf ++ "," ++ af.sn ++ "," ++ af.sp ++ ","
|
||||
++ af.comp
|
||||
;
|
||||
|
||||
printVerbInflections : VerbForms -> Str = \v ->
|
||||
let fut : Agr=>Str = \\a => verbFutAgree v a in
|
||||
let pres : Agr=>Str = \\a => verbPresAgree v a in
|
||||
let past : Agr=>Str = \\a => verbPastAgree v a "" in
|
||||
let imp : Agr=>Str = \\a => ((verbImperativeAgree v a).p1 ++ (verbImperativeAgree v a).p2) in
|
||||
let ppp : GenNum=>Str = \\gn => shortPastPassPart v gn in
|
||||
let inf = verbInf v in
|
||||
inf ++ "-"
|
||||
++ inf ++ ","
|
||||
++ pres ! Ag (GSg Masc) P1 ++ "," ++ pres ! Ag GPl P1 ++ ","
|
||||
++ pres ! Ag (GSg Masc) P2 ++ "," ++ pres ! Ag GPl P2 ++ ","
|
||||
++ pres ! Ag (GSg Masc) P3 ++ "," ++ pres ! Ag GPl P3 ++ ","
|
||||
++ v.prtr ++ verbRefl v ++ ","
|
||||
++ past ! Ag (GSg Masc) P1 ++ "," ++ past ! Ag (GSg Fem) P1 ++ "," ++ past ! Ag (GSg Neut) P1 ++ "," ++ past ! Ag GPl P1 ++ ","
|
||||
++ imp ! Ag (GSg Masc) P2 ++ "," ++ imp ! Ag GPl P2 ++ ","
|
||||
++ v.ptr ++ verbRefl v
|
||||
++ case v.tran of {
|
||||
Transitive => "," ++ ppp ! (GSg Masc) ++ "," ++ ppp ! (GSg Fem) ++ "," ++ ppp ! (GSg Neut) ++ "," ++ ppp ! GPl ;
|
||||
_ => ""
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -241,6 +241,8 @@ gt UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (CountNP (DetQuant DefArt oba_N
|
||||
gt TFullStop (PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) ? (PredVP (UsePN paris_PN) (UseComp (CompNomNP (MassNP (PartNP (UseN stolica_N) (MassNP (UseN country_N))))))))) NoVoc) TEmpty | l -treebank
|
||||
|
||||
gt ImpVP (AdvVP (AdVVP (PositAdVAdj dull_A) (SelfAdvVP hungry_VP)) (weekdayNextAdv friday_Weekday)) |l -treebank
|
||||
gt UseCl (TTAnt TPres ASimul) PPos (PredSCVP (EmbedQS (UseQCl (TTAnt TPres ASimul) PPos (QuestIAdv how_IAdv (PredVP (UsePron theyFem_Pron) (ComplVV can_VV (UseV dostigatqsja_V)))))) (UseComp (CompAP (UseComparA ehffektivnyj_A)))) | l -treebank
|
||||
gt UseCl (TTAnt TPres ASimul) PPos (PredSCVP (EmbedQS (UseQCl (TTAnt TPres AAnter) PPos (QuestIComp (CompIQuant what_kind_of_IQuant) (MassNP (UseN apple_N))))) (UseV fall_V)) | l -treebank
|
||||
|
||||
gt UseCl (TTAnt ? ASimul) ? (PredVP (MassNP (UseN apple_N)) (UseComp (CompBareCN (PartNP (UseN cvet_N) (MassNP (UseN haki_N)))))) | l -treebank
|
||||
gt UseCl (TTAnt TFut ASimul) PPos (PredVP (MassNP (UseN apple_N)) (AdvVP UseCopula (PrepCN obj_neg_Prep (AdjCN (PositA green_A) (UseN cvet_N))))) | l -treebank
|
||||
@@ -333,6 +335,8 @@ gt UseCl (TTAnt TPast ASimul) PPos (PredVP (AdvNP (DetCN (DetQuant DefArt NumPl)
|
||||
gt UttS (ExtAdvS naprimer_Adv (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron youPlFem_Pron) (AdvVP (UseV narisovatq_V) (PrepCN nom_Prep (AdvCN (UseN person_N) (PrepNP in_Prep (DetCN (DetQuant DefArt (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3)))))))) (UseN sluchaj_N))))))))) | l -treebank
|
||||
gt UttS (AdvS (PrepNP nom_Prep (UsePron he_Pron)) (UseCl (TTAnt TPres AAnter) PPos (ImpersCl (ComplSlashPartLast (VPSlashPrep (ComplSlashPartLast (VPSlashPrep (UseV prinositq_V) nom_Prep) (DetCN (DetQuant IndefArt NumPl) (UseN apple_N))) to_dat_Prep) (UsePron youPol_Pron))))) | l -treebank
|
||||
|
||||
gt AdvS (PrepNP ins_Prep (DetCN (DetQuant DefArt NumPl) (UseN issledovanie_N))) (UseCl (TTAnt TPast AAnter) PPos (ImpersCl (PassVPSlash (VPSlashPrep (UseV ustanovitq_V) to_dat_Prep)))) | l -treebank
|
||||
|
||||
gt UttAccNP (DetCN (DetQuant (PossPron youPlFem_Pron) NumSg) (SentCN (AdvCN (UseN nebo_N) (PrepNP for_Prep (UsePron we_Pron))) (EmbedQS (UseQCl (TTAnt TPres ASimul) PPos (QuestIComp (CompIAdv how_IAdv) (MassNP (UseN zerkalo_N))))))) |l -treebank
|
||||
|
||||
gt UseCl (TTAnt TPres ASimul) PPos (PredVP (MassNP (AdjCN (PositA rovnyj_A) (AdjCN (PositA (CompoundA white_A blue_A)) (UseN svet_N)))) (AdvVP (UseV pronizyvatq_V) (PrepNP obj_neg_Prep (AdvNP (UsePron she_Pron) iznutri_Adv)))) | l -treebank
|
||||
|
||||
Reference in New Issue
Block a user