Files
gf-core/lib/src/russian/StructuralRus.gf
Nikita Frolov 9f9c6abb82 RG and Phrasebook fixes
- added a paradigm for alternative plurals
- fixed usage of alternative plurals in Numerals
- added a distinction between numerals and posessive pronouns
- verb omission and appropriate cases in some uses of to be/to have 
- fixed declination of personal names
- added a gender parameter to pronouns (similar to Polish RG)
- vowel insertion before short adjective suffix
- don't generate short forms for relative adjectives (might need lexicon update)
- minor Phrasebook fixes
2012-12-27 21:04:26 +00:00

138 lines
6.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
--# -path=.:../abstract:../common:../../prelude
concrete StructuralRus of Structural = CatRus **
open ResRus, MorphoRus, (P = ParadigmsRus), Prelude, NounRus in {
flags optimize=all ; coding=utf8 ;
lin
-- First mount the numerals.
-- UseNumeral i = i ;
-- Then an alphabetical list of structural words
above_Prep = { s = "над" ; c = Inst} ;
after_Prep = { s = "после" ; c = Gen };
-- all8mass_Det = vesDet ** {n = Sg; g = PNoGen; c = Nom} ;
all_Predet = vseDetPl ** { g = PNoGen; c = Nom; size = nom} ;
almost_AdA = {s= "почти"} ;
almost_AdN = {s= "почти"} ;
although_Subj = ss "хотя" ;
always_AdV = ss "всегда" ;
and_Conj = {s1 = [] ; s2 = "и" ; n = Pl} ;
because_Subj = ss ["потому что"] ;
before_Prep ={ s = "перед" ; c = Inst};
behind_Prep = { s = "за" ; c = Inst };
between_Prep = { s = "между" ; c = Inst};
both7and_DConj = sd2 "как" [", так и"] ** {n = Pl} ;
but_PConj = ss "но" ;
by8agent_Prep = { s = ["с помощью"] ; c = Gen};
by8means_Prep = { s = ["с помощью"] ; c = Gen};
can8know_VV = verbMoch ;
can_VV = verbMoch ;
during_Prep = { s = ["в течение"] ; c = Gen};
either7or_DConj = sd2 "либо" [", либо"] ** {n = Sg} ;
-- comma is not visible in GUI!
every_Det = kazhdujDet ** {n = Sg ; g = PNoGen; c= Nom; size = nom} ;
everybody_NP = mkNP Pl (UseN ((eEnd_Decl "вс")**{lock_N=<>})) ;
everything_NP = UsePron (pronVseInanimate ** {lock_Pron=<>}) ;
everywhere_Adv = ss "везде" ;
few_Det = nemnogoSgDet **{lock_Det= <>; n= Sg; g = PNoGen; c = Nom; size = plg};
--- DEPREC first_Ord = (uy_j_EndDecl "перв" ) ** {lock_A = <>}; --AStaruyj
for_Prep = { s = "для" ; c = Gen };
from_Prep = { s = "от" ; c = Gen };
he_Pron = pronOn ;
here_Adv = ss "здесь" ;
here7to_Adv = ss "сюда" ;
here7from_Adv = ss "отсюда" ;
how_IAdv = ss "как" ;
how8many_IDet = skolkoSgDet ** {n = Pl; g = (PGen Neut); c= Gen};
how8much_IAdv = ss "сколько" ;
i_Pron = pronYa Masc ;
if_Subj = ss "если" ;
in8front_Prep = { s = "перед" ; c = Inst};
in_Prep = { s = "в" ; c = Prepos PrepVNa } ;
it_Pron = pronOno ;
less_CAdv = {s="менее"; p=""} ;
many_Det = mnogoSgDet ** {n = Sg; g = (PGen Neut); c= Gen; size = plg} ;
more_CAdv = {s="более"; p=""} ;
most_Predet = bolshinstvoSgDet ** {n = Sg; g = (PGen Neut); c= Gen; size = plg} ;
-- inanimate, Sg: "большинство телефонов безмолству-ет"
-- most8many_Det = bolshinstvoPlDet ** {n = Pl; g = (PGen Neut); c= Gen} ;
-- animate, Pl: "большинство учащихся хорошо подготовлен-ы"
much_Det = mnogoSgDet ** {n = Sg; g = (PGen Neut); c= Gen; size = plg} ; -- same as previous
must_VV = verbDolzhen ;
no_Utt = ss ["Нет"] ;
on_Prep = { s = "на" ; c = Prepos PrepVNa };
--- DEPREC one_Quant = odinDet ** {lock_QuantSg = <>; n= Sg; g = PNoGen; c = Nom };
--AStaruyj :
only_Predet = (uy_j_EndDecl "единственн" ) ** {lock_Predet = <>; n= Sg; g = PNoGen; c = Nom; size = nom };
or_Conj = {s1= [] ; s2 = "или" ; n = Sg} ;
otherwise_PConj = ss "иначе" ;
part_Prep = { s = "" ; c = Nom}; -- missing in Russian
please_Voc = ss "пожалуйста" ;
possess_Prep = { s = "" ; c = Gen}; --- ?? AR 19/2/2004
quite_Adv = ss "довольно" ;
she_Pron = pronOna ;
so_AdA = ss "так";
somebody_NP = UsePron (pronKtoTo** {lock_Pron = <>});
someSg_Det = nekotorujDet ** {n = Sg; g = PNoGen; c= Nom; size = nom} ;
somePl_Det = nekotorujDet ** {n = Pl; g = PNoGen; c= Nom; size = nom} ;
something_NP = UsePron (pronChtoTo** {lock_Pron=<> }) ;
somewhere_Adv = ss "где-нибудь" ;
that_Quant = totDet ** {n = Sg; g = PNoGen; c= Nom; size = nom} ;
there_Adv = ss "там" ;
there7to_Adv = ss "туда" ;
there7from_Adv = ss "оттуда" ;
therefore_PConj = ss "следовательно" ;
they_Pron = pronOni;
this_Quant = etotDet ** {n = Sg; g = PNoGen; c= Nom; size = nom} ;
through_Prep = { s = "через" ; c = Acc };
to_Prep = { s = "к" ; c = Dat };
too_AdA = ss "слишком" ;
under_Prep = { s = "под" ; c = Inst };
very_AdA = ss "очень" ;
want_VV = verbKhotet ;
we_Pron = pronMu Masc;
whatPl_IP = pron2NounPhraseNum pronChto Inanimate Pl;
whatSg_IP = pron2NounPhraseNum pronChto Inanimate Sg;
when_IAdv = ss "когда" ;
when_Subj = ss "когда" ;
where_IAdv = ss "где" ;
which_IQuant = {
s = \\_ => kotorujDet.s ;
g = PNoGen;
c= Nom
} ;
whoPl_IP = pron2NounPhraseNum pronKto Animate Pl;
whoSg_IP = pron2NounPhraseNum pronKto Animate Sg;
why_IAdv = ss "почему" ;
with_Prep = { s = "с" ; c = Inst};
without_Prep = { s = "без" ; c = Gen};
youPl_Pron = pronVu Masc;
yes_Utt = ss ["Да"] ;
youSg_Pron = pronTu Masc;
youPol_Pron = pronVu Masc;
have_V2= P.dirV2 (P.regV P.imperfective P.first "име" "ю" "имел" "имей" "иметь" );
have_V3 = P.mkV3 (P.mkV P.imperfective "есть" "есть" "есть" "есть" "есть" "есть" "был" "будь" "есть") "" "у" Nom Gen;
have_not_V3 = P.mkV3 (P.mkV P.imperfective "нет" "нет" "нет" "нет" "нет" "нет" "не было" "не будь" "нет") "" "у" Gen Gen;
--- NoDet = nikakojDet ** {n = Sg; g = PNoGen; c= Nom} ;
--- AnyDet = lubojDet ** {n = Sg; g = PNoGen; c= Nom} ;
--- AnyNumDet = mkDeterminerNum (lubojDet ** {n = Pl; g = PNoGen; c= Nom} );
--- NoNumDet = mkDeterminerNum (nikakojDet ** {n = Pl; g = PNoGen; c= Nom} );
---NobodyNP = UsePron pronNikto Animate;
---NothingNP = UsePron pronNichto Inanimate;
-- In case of "neither.. no" expression double negation is not
-- only possible, but also required in Russian.
-- There is no means of control for this however in the resource grammar.
--- NeitherNor = sd2 "ни" [", ни"] ** {n = Sg} ;
--- NowhereNP = ss "нигде" ;
--- AgentPrep = { s = "" ; c = Nom}; -- missing in Russian
lin language_title_Utt = ss "Русский" ;
}