mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Russian parches by MG_UR
This commit is contained in:
@@ -1,409 +1,398 @@
|
||||
--# -path=.:../abstract:../common:../../prelude
|
||||
|
||||
--
|
||||
concrete LexiconRus of Lexicon = CatRus **
|
||||
open ParadigmsRus, Prelude, StructuralRus, MorphoRus in {
|
||||
--, IrregRus
|
||||
flags
|
||||
optimize=values ;
|
||||
coding=utf8 ;
|
||||
lin
|
||||
airplane_N = nTelefon "самолет" ;
|
||||
answer_V2S = dirV2 (regV imperfective first "отвеча" "ю" "отвечал" "отвечай" "отвечать" );
|
||||
apartment_N = nMashina "квартир" ;
|
||||
apple_N = nChislo "яблок" ;
|
||||
art_N = nChislo "искусств" ;
|
||||
ask_V2Q = dirV2 (regV imperfective first "спрашива" "ю" "спрашивал" "спрашивай" "спрашивать") ;
|
||||
baby_N = nMalush "малыш";
|
||||
bad_A = AKakoj_Nibud "плох" "" "хуже";
|
||||
bank_N = nBank "банк" ;
|
||||
beautiful_A = AStaruyj "красив" "красивее";
|
||||
become_VA = regV perfective second "станов" "лю" "стал" "стань" "стать" ;
|
||||
beer_N = nChislo "пив" ;
|
||||
beg_V2V = dirV2 (mkV imperfective "прошу" "просишь" "просит" "просим" "просите" "просят" "просил" "проси" "просить" );
|
||||
big_A = AKakoj_Nibud "больш" "" "больше" ;
|
||||
bike_N = nTelefon "велосипед" ;
|
||||
bird_N = nEdinica "птиц" ;
|
||||
black_A = AStaruyj "чёрн" "чернее";
|
||||
blue_A = AMolodoj "голуб" "голубее";
|
||||
boat_N = nMashina "лодк" ;
|
||||
book_N = nNoga "книг" ;
|
||||
boot_N = nBank "сапог" ;
|
||||
boss_N = nStomatolog "начальник" ;
|
||||
boy_N = nStomatolog "мальчик" ;
|
||||
bread_N = nAdres "хлеб" ;
|
||||
break_V2 = dirV2 (regV imperfective first "прерыва" "ю" "прерывал" "прерывай" "прерывать" );
|
||||
|
||||
broad_A = AMalenkij "широк" "шире";
|
||||
brother_N2 = mkN2 (nBrat "брат") ;
|
||||
brown_A = AStaruyj "коричнев" "коричневее";
|
||||
butter_N = nChislo "масл";
|
||||
buy_V2 = dirV2 (regV imperfective first "покупа" "ю" "покупал" "покупай" "покупать" );
|
||||
camera_N = nMashina "kamer" ;
|
||||
cap_N = nNoga "чашк" ; -- чаш-ек Pl-Gen
|
||||
car_N = nMashina "машин" ;
|
||||
carpet_N = mkN "ковёр" "ковра" "ковру" "ковёр" "ковром" "ковре" "ковры" "ковров" "коврам" "ковры" "коврами" "коврах" masculine inanimate;
|
||||
cat_N = nMashina "кошк" ;
|
||||
ceiling_N = nPotolok "потол" ;
|
||||
chair_N = nStul "стул" ;
|
||||
cheese_N = nTelefon "сыр" ;
|
||||
child_N = mkN "ребёнок" "ребёнка" "ребёнку" "ребёнка" "ребёнком" "ребёнке" "дети" "детей" "детям" "детей" "детьми" "детях" masculine animate ;
|
||||
church_N = mkN "церковь" "церкви" "церкви" "церковь" "церковью" "церкви" "церкви" "церквей" "церквям" "церкви" "церквями" "церквях" masculine inanimate;
|
||||
city_N = nAdres "город" ;
|
||||
|
||||
clean_A = AStaruyj "чист" "чище";
|
||||
clever_A = AStaruyj "умн" "умнее";
|
||||
close_V2= dirV2 (regV imperfective first "закрыва" "ю" "закрывал" "закрывай" "закрывать" );
|
||||
coat_N = mkIndeclinableNoun "пальто" masculine inanimate ;
|
||||
cold_A = AStaruyj "холодн" "холоднее";
|
||||
come_V = regV imperfective first "прихо" "жу" "приходил" "приходи" "приходить" ;
|
||||
computer_N = nTelefon "компьютер" ;
|
||||
country_N = nMashina "стран" ;
|
||||
cousin_N = nTelefon "кузен" ;
|
||||
cow_N = nMashina "коров" ;
|
||||
die_V = regV imperfective first "умира" "ю" "умирал" "умирай" "умирать" ;
|
||||
dirty_A = AStaruyj "грязн" "грязнее" ;
|
||||
doctor_N = nAdres "доктор" ;
|
||||
dog_N = nNoga "собак" ;
|
||||
door_N = nBol "двер" ;
|
||||
drink_V2 = dirV2 (regV imperfective firstE "пь" "ю" "пил" "пей" "пить" );
|
||||
eat_V2 = dirV2 (regV imperfective first "куша" "ю" "кушал" "кушай" "кушать" );
|
||||
enemy_N = nStomatolog "враг" ;
|
||||
factory_N = nNoga "фабрик" ;
|
||||
father_N2 = mkN2 (mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate);
|
||||
fear_VS= regV imperfective second "бо" "ю" "боял" "бой" "боять" ;
|
||||
find_V2 = dirV2 (mkV imperfective "нахожу" "находишь" "находит" "находим" "находите" "находят" "находил" "находи" "находить" );
|
||||
fish_N = nMashina "рыб" ;
|
||||
floor_N = nTelefon "пол" ;
|
||||
forget_V2= dirV2 (regV imperfective first "забыва" "ю" "забывал" "забывай" "забывать" );
|
||||
fridge_N = nBank "холодильник" ;
|
||||
friend_N = mkN "друг" "друга" "другу" "друга" "другом" "друге" "друзья" "друзей" "друзьям" "друзей" "дузьями" "друзьях" masculine animate;
|
||||
fruit_N = nTelefon "фрукт" ;
|
||||
garden_N = nTelefon "сад" ;
|
||||
girl_N = nNoga "девочк" ;
|
||||
glove_N = nNoga "перчатк" ;
|
||||
gold_N = nChislo "золот" ;
|
||||
good_A = AKhoroshij "хорош" "лучше" ;
|
||||
go_V= regV imperfective second "хо" "жу" "ходил" "ходи" "ходить" ;
|
||||
green_A = AStaruyj "зелен" "зеленее" ;
|
||||
harbour_N = nTelefon "залив" ;
|
||||
hate_V2= dirV2 (regV imperfective second "ненави" "жу" "ненавидел" "ненавидь" "ненавидеть" );
|
||||
hat_N = nMashina "шляп" ;
|
||||
have_V2= dirV2 (regV imperfective first "име" "ю" "имел" "имей" "иметь" );
|
||||
hear_V2= dirV2 (regV imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
|
||||
hill_N = nTelefon "холм" ;
|
||||
hope_VS= regV imperfective first "наде" "ю" "надеял" "надей" "надеять" ;
|
||||
horse_N = nBol "лошад" ;
|
||||
hot_A = AKhoroshij "горяч" "горячее" ;
|
||||
house_N = nAdres "дом" ;
|
||||
|
||||
important_A = AStaruyj "важн" "важнее" ;
|
||||
industry_N = nChislo "производств" ;
|
||||
iron_N = nChislo "желез" ;
|
||||
king_N = mkN "король" "короля" "королю" "короля" "королем" "короле" "короли" "королей" "королям" "королей" "королями" "королях" masculine animate;
|
||||
know_V2= dirV2 (regV imperfective first "зна" "ю" "знал" "знай" "знать" );
|
||||
lake_N = nChislo "озер" ;
|
||||
lamp_N = nMashina "ламп" ;
|
||||
learn_V2= dirV2 (regV imperfective second "уч" "у" "учил" "учи" "учить" );
|
||||
leather_N = nEdinica "кож" ;
|
||||
leave_V2= dirV2 (regV imperfective second "ухож" "у" "уходил" "уходи" "уходить" );
|
||||
like_V2= dirV2 (regV imperfective second "нрав" "лю" "нравил" "нравь" "нравить" );
|
||||
listen_V2= dirV2 (regV imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
|
||||
live_V= regV imperfective firstE "жив" "у" "жил" "живи" "жить" ;
|
||||
long_A = AStaruyj "длинн" "длиннее" ;
|
||||
lose_V2 = dirV2 (regV imperfective first "теря" "ю" "терял" "теряй" "терять" );
|
||||
love_N = nBol "любов" ;
|
||||
love_V2= dirV2 (regV imperfective second "люб" "лю" "любил" "люби" "любить" );
|
||||
man_N = nStomatolog "человек" ;
|
||||
meat_N =nChislo "мяс" ;
|
||||
milk_N = nChislo "молок" ;
|
||||
moon_N = nMashina "лун" ;
|
||||
mother_N2 = mkN2 ( nMashina "мам") ;
|
||||
mountain_N = nMashina "гор" ;
|
||||
music_N = nNoga "музык" ;
|
||||
narrow_A = AStaruyj "узк" "уже" ;
|
||||
|
||||
new_A = AStaruyj "нов" "новее" ;
|
||||
newspaper_N = nMashina "газет" ;
|
||||
oil_N = nBol "нефть" ;
|
||||
old_A = AStaruyj "стар" "старше" ;
|
||||
open_V2= dirV2 (regV imperfective first "открыва" "ю" "открывал" "открывай" "открывать" );
|
||||
paper_N = nNoga "бумаг" ;
|
||||
peace_N = nTelefon "мир" ;
|
||||
pen_N = nNoga "ручк" ;
|
||||
planet_N = nMashina "планет" ;
|
||||
plastic_N = nMashina "пластмасс" ;
|
||||
play_V2 = mkV2 (regV imperfective first "игра" "ю" "играл" "играй" "играть" ) "c" instructive;
|
||||
policeman_N = nTelefon "милиционер" ;
|
||||
priest_N = nStomatolog "священник" ;
|
||||
queen_N = nMashina "королев" ;
|
||||
radio_N = mkIndeclinableNoun "радио" neuter inanimate;
|
||||
read_V2 = dirV2 (regV imperfective first "чита" "ю" "читал" "читай" "читать" );
|
||||
red_A = AStaruyj "красн" "краснее" ;
|
||||
religion_N = nMalyariya "религи" ;
|
||||
restaurant_N = nTelefon "ресторан" ;
|
||||
river_N = nNoga "рек" ;
|
||||
rock_N = nUroven "кам" ;
|
||||
roof_N = nEdinica "крыш" ;
|
||||
rubber_N = nMashina "резин" ;
|
||||
run_V = regV imperfective first "бега" "ю" "бегал" "бегай" "бегать" ;
|
||||
say_VS = regV imperfective second "говор" "ю" "говорил" "говори" "говорить" ;
|
||||
school_N = nMashina "школ" ;
|
||||
science_N = nNoga "наук" ;
|
||||
sea_N = nProizvedenie "мор" ;
|
||||
seek_V2 = dirV2 (regV imperfective first "ищ" "у" "искал" "ищи" "искать" );
|
||||
see_V2 = dirV2 (regV imperfective second "виж" "у" "видел" "видь" "видеть" );
|
||||
sell_V3 = tvDirDir (regV imperfective firstE "прода" "ю" "продавал" "продавай" "продавать" );
|
||||
send_V3 = tvDirDir (regV imperfective first "посыла" "ю" "посылал" "посылай" "посылать" );
|
||||
sheep_N = nMashina "овц" ;
|
||||
ship_N = nNol "корабл" ;
|
||||
|
||||
shirt_N = nNoga "рубашк" ;
|
||||
shoe_N = mkN "туфля" "туфли" "туфле" "туфлю" "туфлей" "туфле" "туфли" "туфель" "туфлям" "туфли" "туфлями" "туфлях" masculine inanimate;
|
||||
shop_N = nTelefon "магазин" ;
|
||||
short_A = AMalenkij "коротк" "короче" ;
|
||||
silver_N = nChislo "серебр" ;
|
||||
sister_N = nMashina "сестр" ;
|
||||
sleep_V = regV imperfective second "сп" "лю" "спал" "спи" "спать" ;
|
||||
small_A = AMalenkij "маленьк" "меньше" ;
|
||||
snake_N = nTetya"зме" ;
|
||||
sock_N = nPotolok "нос" ;
|
||||
speak_V2 = dirV2 (regV imperfective second "говор" "ю" "говорил" "говори" "говорить" );
|
||||
star_N = nMashina "звезд" ;
|
||||
steel_N = nBol "стал" ;
|
||||
stone_N = nNol "камен" ;
|
||||
stove_N = nBol "печ" ;
|
||||
student_N = nTelefon "студент" ;
|
||||
stupid_A = AMolodoj "тупой" "тупее" ;
|
||||
sun_N = mkN "солнце" "солнца" "солнцу" "солнце" "солнцем" "солнце" "солнца" "солнц" "солнцам" "солнца" "солнцами" "солнцах" neuter inanimate;
|
||||
switch8off_V2 = dirV2 (regV imperfective first "выключа" "ю" "выключал" "выключай" "выключать") ;
|
||||
switch8on_V2 = dirV2 (regV imperfective first "включа" "ю" "включал" "включай" "включать") ;
|
||||
table_N = nTelefon "стол" ;
|
||||
teacher_N = nNol "учител" ;
|
||||
teach_V2 = dirV2 (regV imperfective second "уч" "у" "учил" "учи" "учить" );
|
||||
television_N = nProizvedenie "телевидени" ;
|
||||
thick_A = AStaruyj "толст" "толще" ;
|
||||
thin_A = AMalenkij "тонк" "тоньше" ;
|
||||
train_N = nAdres "поезд" ;
|
||||
travel_V = regV imperfective first "путешеству" "ю" "путешествовал" "путешествуй" "путешествовать" ;
|
||||
tree_N = nChislo "дерев" ;
|
||||
--trousers_N = mkN "" "" "" "" "" "" "штаны" "штанов" "штанам" "штаны" "штанами" "штанах" masculine inanimate;
|
||||
ugly_A = AStaruyj "некрасив" "некрасивее" ;
|
||||
understand_V2 = dirV2 (regV imperfective first "понима" "ю" "понимал" "понимай" "понимать" );
|
||||
university_N = nTelefon "университет" ;
|
||||
village_N = nMalyariya "деревн" ;
|
||||
wait_V2 = dirV2 (regV imperfective firstE "жд" "у" "ждал" "жди" "ждать" );
|
||||
walk_V = regV imperfective first "гуля" "ю" "гулял" "гуляй" "гулять" ;
|
||||
warm_A = AStaruyj "тёпл" "теплее" ;
|
||||
war_N = nMashina "войн" ;
|
||||
watch_V2 = dirV2 (regV imperfective second "смотр" "ю" "смотрел" "смотри" "смотреть" );
|
||||
water_N = nMashina "вод" ;
|
||||
white_A = AStaruyj "бел" "белее" ;
|
||||
|
||||
window_N = nChislo "окн" ;
|
||||
wine_N = nChislo "вин" ;
|
||||
win_V2 = dirV2 (regV imperfective first "выигрыва" "ю" "выигрывал" "выигрывай" "выигрывать" );
|
||||
woman_N = nZhenchina "женщин" ;
|
||||
wood_N = nChislo "дерев" ;
|
||||
write_V2 = dirV2 (regV imperfective first "пиш" "у" "писал" "пиши" "писать" );
|
||||
yellow_A = AStaruyj "жёлт" "желтее" ;
|
||||
young_A = AMolodoj "молод" "моложе";
|
||||
|
||||
do_V2 = dirV2 (regV imperfective first "дела" "ю" "делал" "делай" "делать" );
|
||||
now_Adv = mkAdv "сейчас" ;
|
||||
already_Adv = mkAdv "уже" ;
|
||||
song_N = nTetya "песн" ;
|
||||
add_V3 = mkV3 (regV imperfective first "складыва" "ю" "складывал" "складывай" "складывать" ) "" "в" accusative accusative;
|
||||
number_N = nChislo "числ" ;
|
||||
put_V2 = dirV2 (regV imperfective firstE "клад" "у" "клал" "клади" "класть" );
|
||||
stop_V = regV imperfective first "останавлива" "ю" "останавливал" "останавливай" "останавливать";
|
||||
jump_V = regV imperfective first "прыга" "ю" "прыгал" "прыгай" "прыгать" ;
|
||||
|
||||
distance_N3 = mkN3 (nProizvedenie "расстояни") from_Prep to_Prep ;
|
||||
|
||||
-- in Russian combinations with verbs are expressed with adverbs:
|
||||
-- "легко понять" ("easy to understand"), which is different from
|
||||
-- adjective expression "легкий для понимания" ("easy for understanding")
|
||||
-- So the next to words are adjectives, since there are such adjectives
|
||||
-- in Russian, but to use them with verb would be wrong in Russian:
|
||||
fun_AV = AStaruyj "весёл" "веселее";
|
||||
easy_A2V = mkA2 (AMalenkij "лёгк" "легче") "для" genitive ;
|
||||
|
||||
empty_A = AMolodoj "пуст" "пустее";
|
||||
married_A2 = mkA2 (adjInvar "замужем") "за" instructive ;
|
||||
paint_V2A = dirV2 (regV imperfective first "рису" "ю" "рисовал" "рисуй" "рисовать" ) ;
|
||||
probable_AS = AStaruyj "возможн" "возможнее";
|
||||
rain_V0 = idetDozhd verbIdti; -- No such verb in Russian!
|
||||
talk_V3 = mkV3 (regV imperfective second "говор" "ю" "говорил" "говори" "говорить" ) "с" "о" instructive prepositional;
|
||||
wonder_VQ = regV imperfective first "интересу" "ю" "интересовал" "интересуй" "интересовать";
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N = nZhivotnoe "животн" ;
|
||||
ashes_N = nPepel "пеп" ;
|
||||
back_N = nMashina "спин" ;
|
||||
bark_N = mkN "лай" "лая" "лаю" "лай" "лаем" "лае" "лаи" "лаев" "лаям" "лаи" "лаями" "лаях" masculine inanimate;
|
||||
belly_N = nTelefon "живот" ;
|
||||
bird_N = nEdinica "птиц" ;
|
||||
blood_N = nBol "кров" ;
|
||||
bone_N = nBol "кост" ;
|
||||
breast_N = nBol "грудь" ;
|
||||
|
||||
cloud_N = nChislo "облак" ;
|
||||
day_N = mkN "день" "дня" "дню" "день" "днём" "дне" "дни" "дней" "дням" "дни" "днями" "днях" masculine inanimate ;
|
||||
|
||||
dust_N = nBol "пыл" ;
|
||||
ear_N = nChislo "ухо" ;
|
||||
earth_N = nTetya "земл" ;
|
||||
egg_N = nChislo "яйц" ;
|
||||
eye_N = nAdres "глаз" ;
|
||||
fat_N = nBank "жир" ;
|
||||
|
||||
-- father_N = UseN2 father_N2 ;
|
||||
feather_N = mkN "перо" "пера" "перу" "пера" "пером" "пере" "перья" "перьев" "перьям" "перьев" "перьями" "перьях" neuter inanimate ;
|
||||
fingernail_N = mkN "ноготь" "ногтя" "ногтю" "ногтя" "ногтем" "ногте" "ногти" "ногтей" "ногтям" "ногтей" "ногтями" "ногтях" masculine inanimate ;
|
||||
fire_N = mkN "огонь" "огня" "огню" "огня" "огнём" "огне" "огни" "огней" "огням" "огней" "огнями" "огнях" masculine inanimate ;
|
||||
fish_N = nMashina "рыб" ;
|
||||
flower_N = mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate ;
|
||||
fog_N = nTelefon "туман" ;
|
||||
foot_N = nTetya "ступн" ;
|
||||
forest_N = nAdres "лес" ;
|
||||
fruit_N = nTelefon "фрукт";
|
||||
grass_N = nMashina "трав" ;
|
||||
guts_N = nBol "внутренност" ;
|
||||
hair_N = nTelefon "волос" ;
|
||||
hand_N = nNoga "рук" ;
|
||||
head_N = nMashina "голов" ;
|
||||
heart_N = mkN "сердце" "сердца" "сердцу" "сердца" "сердцем" "сердце" "сердца" "сердец" "сердцам" "сердец" "сердцами" "сердцах" neuter inanimate;
|
||||
horn_N = nAdres "рог" ;
|
||||
husband_N = mkN "муж" "мужа" "мужу" "мужа" "мужем" "муже" "мужья" "мужей" "мужьям" "мужей" "мужьями" "мужьях" masculine animate ;
|
||||
ice_N = mkN "лёд" "льда" "льду" "льда" "льдом" "льде" "льды" "льдов" "льдам" "льдов" "льдами" "льдах" masculine inanimate ;
|
||||
knee_N = mkN "колено" "колена" "колену" "колена" "коленом" "колене" "колени" "колен" "коленам" "колен" "коленями" "коленях" neuter inanimate ;
|
||||
lake_N = nChislo "озер" ;
|
||||
leaf_N = nStul "лист" ;
|
||||
leg_N = nNoga "ног" ;
|
||||
liver_N = nBol "печен" ;
|
||||
louse_N = mkN "вошь" "вши" "вши" "вошь" "вошью" "вше" "вши" "вшей" "вшам" "вшей" "вшами" "вшах" feminine animate ;
|
||||
|
||||
meat_N = nChislo "мяс" ;
|
||||
moon_N = nMashina "лун" ;
|
||||
|
||||
|
||||
mountain_N = nMashina "гор" ;
|
||||
mouth_N = mkN "рот" "рта" "рту" "рот" "ртом" "рте" "рты" "ртов" "ртам" "рты" "ртами" "ртах" masculine inanimate;
|
||||
name_N = mkN "имя" "имени" "имени" "имя" "именем" "имени" "имена" "имён" "именам" "имена" "именами" "именах" neuter inanimate;
|
||||
neck_N = nTetya "ше" ;
|
||||
night_N = nBol "ноч" ;
|
||||
nose_N = nTelefon "нос" ;
|
||||
person_N = nBol "личность" ;
|
||||
rain_N = nNol "дожд" ;
|
||||
|
||||
road_N = nNoga "дорог" ;
|
||||
root_N = nUroven "кор" ;
|
||||
rope_N = nNoga "веревк" ;
|
||||
salt_N = nBol "сол" ;
|
||||
sand_N = mkN "песок" "песка" "песку" "песок" "песком" "песке" "пески" "песков" "пескам" "песков" "песками" "песках" masculine inanimate ;
|
||||
sea_N = nProizvedenie "мор" ;
|
||||
seed_N = mkN "семя" "семени" "семении" "семя" "семенем" "семени" "семена" "семян" "семенам" "семена" "семенами" "семенах" neuter inanimate ;
|
||||
skin_N = nEdinica "кож" ;
|
||||
sky_N = mkN "небо" "неба" "небу" "небо" "небом" "небе" "небеса" "небес" "небесам" "небес" "небесами" "небесах" neuter inanimate ;
|
||||
smoke_N = nTelefon "дым" ;
|
||||
snake_N = nTetya "зме" ;
|
||||
snow_N = nAdres "снег" ;
|
||||
star_N = nMashina "звезд" ;
|
||||
stick_N = nNoga "палк" ;
|
||||
|
||||
|
||||
tail_N = nTelefon "хвост" ;
|
||||
tongue_N = nBank "язык" ;
|
||||
tooth_N = nTelefon "зуб" ;
|
||||
tree_N = nChislo "дерев" ;
|
||||
water_N = nMashina "вод" ;
|
||||
wife_N = nMashina "жен" ;
|
||||
wind_N = mkN "ветер" "ветра" "ветру" "ветер" "ветром" "ветра" "ветров" "ветра" "ветрам" "ветров" "ветрами" "ветрах" masculine inanimate ;
|
||||
wing_N = mkN "крыло" "крыла" "крылу" "крыло" "крылом" "крыле" "крылья" "крыльев" "крыльям" "крылья" "крыльями" "крыльях" neuter inanimate ;
|
||||
|
||||
worm_N = nNol "черв" ;
|
||||
year_N = nAdres "год" ;
|
||||
|
||||
|
||||
-- Verbs
|
||||
|
||||
bite_V2 = dirV2 (regV imperfective first "куса" "ю" "кусал" "кусай" "кусать");
|
||||
blow_V = regV imperfective first "ду" "ю" "дул" "дуй" "дуть" ;
|
||||
breathe_V = regV imperfective second "дыш" "у" "дышал" "дыши" "дышать" ;
|
||||
burn_V = regV imperfective second "гор" "ю" "горел" "гори" "гореть" ;
|
||||
count_V2 = dirV2 (regV imperfective first "счита" "ю" "считал" "считай" "считать" ) ;
|
||||
cut_V2 = dirV2 (regV imperfective first "реж" "у" "резал" "режь" "резать" ) ;
|
||||
dig_V = regV imperfective first "копа" "ю" "копал" "копай" "копать" ;
|
||||
|
||||
|
||||
fall_V = regV imperfective first "пада" "ю" "падал" "падай" "падать" ;
|
||||
|
||||
fight_V2 = dirV2 (regV imperfective firstE "дер" "у" "драл" "дери" "драть" ) ;
|
||||
float_V = regV imperfective firstE "плыв" "у" "плыл" "плыви" "плыть" ;
|
||||
flow_V = regV imperfective firstE "тек" "у" "тёк" "теки" "течь" ;
|
||||
fly_V = regV imperfective second "лета" "ю" "летал" "летай" "летать" ;
|
||||
freeze_V = regV imperfective first "замерза" "ю" "замерзал" "замерзай" "замерзать" ;
|
||||
give_V3 = tvDirDir (regV imperfective firstE "да" "ю" "давал" "давай" "давать" ) ;
|
||||
|
||||
hit_V2 = dirV2 (regV imperfective first "ударя" "ю" "ударял" "ударяй" "ударять" );
|
||||
hold_V2 = dirV2 (regV imperfective second "держ" "у" "держал" "держи" "держать" );
|
||||
hunt_V2 = dirV2 (regV imperfective second "охоч" "у" "охотил" "охоть" "охотить" ) ;
|
||||
kill_V2 = dirV2 (regV imperfective first "убива" "ю" "убивал" "убивай" "убивать" ) ;
|
||||
|
||||
laugh_V = regV imperfective firstE "сме" "ю" "смеял" "смей" "смеять" ;
|
||||
lie_V = regV imperfective firstE "лг" "у" "лгал" "лги" "лгать" ;
|
||||
play_V = regV imperfective first "игра" "ю" "играл" "играй" "играть" ;
|
||||
pull_V2 = dirV2 (regV imperfective first "тян" "у" "тянул" "тяни" "тянуть" ) ;
|
||||
push_V2 = dirV2 (regV imperfective first "толка" "ю" "толкал" "толкай" "толкать" );
|
||||
rub_V2 = dirV2 (regV imperfective firstE "тр" "у" "тёр" "три" "тереть" );
|
||||
|
||||
scratch_V2 = dirV2 (regV imperfective first "чеш" "у" "чесал" "чеши" "чесать" ) ;
|
||||
|
||||
sew_V = regV imperfective firstE "шь" "ю" "шил" "шей" "шить" ;
|
||||
sing_V = regV imperfective firstE "по" "ю" "пел" "пой" "петь" ;
|
||||
sit_V = mkV imperfective "сижу" "сидишь" "сидит" "сидим" "сидите" "сидят" "сидел" "сиди" "сидеть" ;
|
||||
smell_V = regV imperfective first "пахн" "у" "пахнул" "пахни" "пахнуть" ;
|
||||
spit_V = regV imperfective firstE "плю" "ю" "плевал" "плюй" "плевать" ;
|
||||
split_V2 = dirV2 (regV imperfective first "разбива" "ю" "разбивал" "разбей" "разбивать" ) ;
|
||||
squeeze_V2 = dirV2 (regV imperfective first "сжима" "ю" "сжимал" "сжимай" "сжимать" ) ;
|
||||
stab_V2 = dirV2 (regV imperfective first "кол" "ю" "колол" "коли" "колоть" ) ;
|
||||
stand_V = regV imperfective second "сто" "ю" "стоял" "стой" "стоять" ;
|
||||
suck_V2 = dirV2 (regV imperfective firstE "сос" "у" "сосал" "соси" "сосать") ;
|
||||
swell_V = regV imperfective first "опуха" "ю" "опухал" "опухай" "опухать" ;
|
||||
swim_V = regV imperfective first "плава" "ю" "плавал" "плавай" "плавать" ;
|
||||
think_V = regV imperfective first "дума" "ю" "думал" "думай" "думать" ;
|
||||
throw_V2 = dirV2 (regV imperfective first "броса" "ю" "бросал" "бросай" "бросать" ) ;
|
||||
tie_V2 = dirV2 (regV imperfective first "вяж" "у" "вязал" "вяжи" "вязать") ;
|
||||
turn_V = regV imperfective first "поворачива" "ю" "поворачивал" "поворачивай" "поворачивать" ;
|
||||
vomit_V = regV imperfective firstE "рв" "у" "рвал" "рви" "рвать" ;
|
||||
wash_V2 = dirV2 (regV imperfective first "мо" "ю" "мыл" "мой" "мыть" ) ;
|
||||
wipe_V2 = dirV2 (regV imperfective first "вытира" "ю" "вытирал" "вытирай" "вытирать" );
|
||||
|
||||
|
||||
correct_A = AStaruyj "правильн" "правильнее";
|
||||
dry_A = AMolodoj "сух" "суше";
|
||||
|
||||
|
||||
dull_A = AStaruyj "скучн" "скучнее";
|
||||
far_Adv = mkAdv "далеко";
|
||||
full_A = AStaruyj "полн" "полнее";
|
||||
heavy_A = AStaruyj "тяжел" "тяжелее";
|
||||
left_Ord = (uy_j_EndDecl "лев" ) ** {lock_A = <>};
|
||||
near_A = AMalenkij "близк" "ближе";
|
||||
right_Ord = (uy_j_EndDecl "прав") ** {lock_A = <>} ;
|
||||
rotten_A = AMolodoj "гнил" "гнилее";
|
||||
round_A = AStaruyj "кругл" "круглее";
|
||||
sharp_A = AStaruyj "остр" "острее";
|
||||
smooth_A = AMalenkij "гладк" "глаже";
|
||||
straight_A = AMolodoj "прям" "прямее";
|
||||
wet_A = AStaruyj "мокр" "мокрее";
|
||||
wide_A = AMalenkij "широк" "шире";
|
||||
|
||||
fear_V2 =dirV2 (regV imperfective first "бо" "ю" "боял" "бой" "боять" );
|
||||
paris_PN = mkPN "Париж" Masc Inanimate ;
|
||||
|
||||
--# -path=.:../abstract:../common:../../prelude
|
||||
|
||||
--
|
||||
concrete LexiconRus of Lexicon = CatRus **
|
||||
open ParadigmsRus, Prelude, StructuralRus, MorphoRus in {
|
||||
--, IrregRus
|
||||
flags
|
||||
optimize=values ;
|
||||
coding=utf8 ;
|
||||
lin
|
||||
add_V3 = mkV3 (regV imperfective first "складыва" "ю" "складывал" "складывай" "складывать" ) "" "в" accusative accusative;
|
||||
airplane_N = nTelefon "самолет" ;
|
||||
already_Adv = mkAdv "уже" ;
|
||||
animal_N = nZhivotnoe "животн" ;
|
||||
answer_V2S = dirV2 (regV imperfective first "отвеча" "ю" "отвечал" "отвечай" "отвечать" );
|
||||
apartment_N = nMashina "квартир" ;
|
||||
-- apple_N = nChislo "яблок" ; -- +++ MG_UR: wrong! +++
|
||||
-- art_N = nChislo "искусств" ; -- +++ MG_UR: wrong! +++
|
||||
art_N = nSlovo "искусств" ; -- +++ MG_UR: added +++
|
||||
ashes_N = nPepel "пеп" ;
|
||||
ask_V2Q = dirV2 (regV imperfective first "спрашива" "ю" "спрашивал" "спрашивай" "спрашивать") ;
|
||||
baby_N = nMalush "малыш";
|
||||
back_N = nMashina "спин" ;
|
||||
bad_A = AKakoj_Nibud "плох" "" "хуже";
|
||||
bank_N = nBank "банк" ;
|
||||
bark_N = mkN "лай" "лая" "лаю" "лай" "лаем" "лае" "лае" "лаи" "лаев" "лаям" "лаи" "лаями" "лаях" "лаях" masculine inanimate ;
|
||||
beautiful_A = AStaruyj "красив" "красивее";
|
||||
become_VA = regV perfective second "станов" "лю" "стал" "стань" "стать" ;
|
||||
-- beer_N = nChislo "пив" ; -- +++ MG_UR: wrong! +++
|
||||
beer_N = nSlovo "пив" ; -- +++ MG_UR: added +++
|
||||
beg_V2V = dirV2 (mkV imperfective "прошу" "просишь" "просит" "просим" "просите" "просят" "просил" "проси" "просить" );
|
||||
belly_N = nTelefon "живот" ;
|
||||
big_A = AKakoj_Nibud "больш" "" "больше" ;
|
||||
bike_N = nTelefon "велосипед" ;
|
||||
bird_N = nEdinica "птиц" ;
|
||||
bite_V2 = dirV2 (regV imperfective first "куса" "ю" "кусал" "кусай" "кусать");
|
||||
black_A = AStaruyj "чёрн" "чернее";
|
||||
blood_N = nBol "кров" ;
|
||||
blow_V = regV imperfective first "ду" "ю" "дул" "дуй" "дуть" ;
|
||||
blue_A = AMolodoj "голуб" "голубее";
|
||||
boat_N = nMashina "лодк" ;
|
||||
bone_N = nBol "кост" ;
|
||||
book_N = nNoga "книг" ;
|
||||
boot_N = nBank "сапог" ;
|
||||
boss_N = nStomatolog "начальник" ;
|
||||
boy_N = nStomatolog "мальчик" ;
|
||||
bread_N = nAdres "хлеб" ;
|
||||
break_V2 = dirV2 (regV imperfective first "прерыва" "ю" "прерывал" "прерывай" "прерывать" );
|
||||
breast_N = nBol "грудь" ;
|
||||
breathe_V = regV imperfective second "дыш" "у" "дышал" "дыши" "дышать" ;
|
||||
--- bridge_N = nMost "мост" ;
|
||||
broad_A = AMalenkij "широк" "шире";
|
||||
brother_N2 = mkN2 (nBrat "брат") ;
|
||||
brown_A = AStaruyj "коричнев" "коричневее";
|
||||
burn_V = regV imperfective second "гор" "ю" "горел" "гори" "гореть" ;
|
||||
-- butter_N = nChislo "масл"; -- +++ MG_UR: wrong! +++
|
||||
butter_N = nSlovo "масл"; -- +++ MG_UR: added +++
|
||||
buy_V2 = dirV2 (regV imperfective first "покупа" "ю" "покупал" "покупай" "покупать" );
|
||||
camera_N = nMashina "kamer" ;
|
||||
--- candle_N = nSvecha "свеч" ; -- +++ MG_UR: added +++
|
||||
cap_N = nNoga "чашк" ; -- чаш-ек Pl-Gen
|
||||
car_N = nMashina "машин" ;
|
||||
carpet_N = mkN "ковёр" "ковра" "ковру" "ковёр" "ковром" "ковре" "ковре" "ковры" "ковров" "коврам" "ковры" "коврами" "коврах" "коврах" masculine inanimate ;
|
||||
cat_N = nMashina "кошк" ;
|
||||
ceiling_N = nPotolok "потол" ;
|
||||
chair_N = nStul "стул" ;
|
||||
cheese_N = nTelefon "сыр" ;
|
||||
--- child2_N = nRebenok "реб" ; -- Achtung: Hier 'child' im Sinne von "junge Lebewesen" (dann keine Suppletivformen(?))!
|
||||
child_N = mkN "ребёнок" "ребёнка" "ребёнку" "ребёнка" "ребёнком" "ребёнке" "ребёнке" "дети" "детей" "детям" "детей" "детьми" "детях" "детях" masculine animate ;
|
||||
church_N = mkN "церковь" "церкви" "церкви" "церковь" "церковью" "церкви" "церкви" "церкви" "церквей" "церквям" "церкви" "церквями" "церквях" "церквях" masculine inanimate ;
|
||||
--- citizen_N = nGrazhdanin "господ" ; -- +++ MG_UR: added +++
|
||||
city_N = nAdres "город" ;
|
||||
clean_A = AStaruyj "чист" "чище";
|
||||
clever_A = AStaruyj "умн" "умнее";
|
||||
close_V2= dirV2 (regV imperfective first "закрыва" "ю" "закрывал" "закрывай" "закрывать" );
|
||||
-- cloud_N = nChislo "облак" ; -- +++ MG_UR: wrong! +++
|
||||
cloud_N = nChislo "облак" "облаков" ; -- +++ MG_UR: added +++
|
||||
coat_N = mkIndeclinableNoun "пальто" masculine inanimate ;
|
||||
cold_A = AStaruyj "холодн" "холоднее";
|
||||
come_V = regV imperfective first "прихо" "жу" "приходил" "приходи" "приходить" ;
|
||||
computer_N = nTelefon "компьютер" ;
|
||||
correct_A = AStaruyj "правильн" "правильнее";
|
||||
count_V2 = dirV2 (regV imperfective first "счита" "ю" "считал" "считай" "считать" ) ;
|
||||
country_N = nMashina "стран" ;
|
||||
cousin_N = nTelefon "кузен" ;
|
||||
cow_N = nMashina "коров" ;
|
||||
cut_V2 = dirV2 (regV imperfective first "реж" "у" "резал" "режь" "резать" ) ;
|
||||
--- daughter_N = nDoch "доч" ; -- +++ MG_UR: added +++
|
||||
-- day_N = mkN "день" "дня" "дню" "день" "днём" "дне" "дне" "дни" "дней" "дням" "дни" "днями" "днях" "днях" masculine inanimate ;
|
||||
day_N = nDen "д" ; -- +++ MG_UR: class better than mkN +++
|
||||
--- desk_N = nStol "стол" ;
|
||||
--- dictionary_N = nSlovar "словар" ;
|
||||
die_V = regV imperfective first "умира" "ю" "умирал" "умирай" "умирать" ;
|
||||
dig_V = regV imperfective first "копа" "ю" "копал" "копай" "копать" ;
|
||||
dirty_A = AStaruyj "грязн" "грязнее" ;
|
||||
distance_N3 = mkN3 (nProizvedenie "расстояни") from_Prep to_Prep ;
|
||||
do_V2 = dirV2 (regV imperfective first "дела" "ю" "делал" "делай" "делать" );
|
||||
doctor_N = nAdres "доктор" ;
|
||||
dog_N = nNoga "собак" ;
|
||||
door_N = nBol "двер" ;
|
||||
drink_V2 = dirV2 (regV imperfective firstE "пь" "ю" "пил" "пей" "пить" );
|
||||
dry_A = AMolodoj "сух" "суше";
|
||||
dull_A = AStaruyj "скучн" "скучнее";
|
||||
dust_N = nBol "пыл" ;
|
||||
-- ear_N = nChislo "ухо" ; -- +++ MG_UR: wrong! +++
|
||||
earth_N = nTetya "земл" ;
|
||||
easy_A2V = mkA2 (AMalenkij "лёгк" "легче") "для" genitive ;
|
||||
eat_V2 = dirV2 (regV imperfective first "куша" "ю" "кушал" "кушай" "кушать" );
|
||||
-- egg_N = nChislo "яйц" ; -- +++ MG_UR: wrong! +++
|
||||
egg_N = nChislo "яйц" "яиц" ; -- +++ MG_UR: added +++
|
||||
empty_A = AMolodoj "пуст" "пустее";
|
||||
enemy_N = nStomatolog "враг" ;
|
||||
eye_N = nAdres "глаз" ;
|
||||
factory_N = nNoga "фабрик" ;
|
||||
fall_V = regV imperfective first "пада" "ю" "падал" "падай" "падать" ;
|
||||
far_Adv = mkAdv "далеко";
|
||||
fat_N = nBank "жир" ;
|
||||
father_N2 = mkN2 (mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" "отцах" masculine animate);
|
||||
fear_V2 =dirV2 (regV imperfective first "бо" "ю" "боял" "бой" "боять" );
|
||||
fear_VS = regV imperfective second "бо" "ю" "боял" "бой" "боять" ;
|
||||
feather_N = mkN "перо" "пера" "перу" "пера" "пером" "пере" "пере" "перья" "перьев" "перьям" "перьев" "перьями" "перьях" "перьях" neuter inanimate ;
|
||||
--- fellow_N = nTovarish "товарищ" ; -- +++ MG_UR: added +++
|
||||
fight_V2 = dirV2 (regV imperfective firstE "дер" "у" "драл" "дери" "драть" ) ;
|
||||
find_V2 = dirV2 (mkV imperfective "нахожу" "находишь" "находит" "находим" "находите" "находят" "находил" "находи" "находить" );
|
||||
fingernail_N = mkN "ноготь" "ногтя" "ногтю" "ногтя" "ногтем" "ногте" "ногте" "ногти" "ногтей" "ногтям" "ногтей" "ногтями" "ногтях" "ногтях" masculine inanimate ;
|
||||
fire_N = mkN "огонь" "огня" "огню" "огня" "огнём" "огне" "огне" "огни" "огней" "огням" "огней" "огнями" "огнях" "огнях" masculine inanimate ;
|
||||
fish_N = nMashina "рыб" ;
|
||||
--- flag_N = nVremja "зна" ;
|
||||
float_V = regV imperfective firstE "плыв" "у" "плыл" "плыви" "плыть" ;
|
||||
floor_N = nTelefon "пол" ;
|
||||
flow_V = regV imperfective firstE "тек" "у" "тёк" "теки" "течь" ;
|
||||
flower_N = mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" "отцах" masculine animate ;
|
||||
fly_V = regV imperfective second "лета" "ю" "летал" "летай" "летать" ;
|
||||
fog_N = nTelefon "туман" ;
|
||||
foot_N = nTetya "ступн" ;
|
||||
forest_N = nLes "лес" ;
|
||||
forget_V2= dirV2 (regV imperfective first "забыва" "ю" "забывал" "забывай" "забывать" );
|
||||
freeze_V = regV imperfective first "замерза" "ю" "замерзал" "замерзай" "замерзать" ;
|
||||
fridge_N = nBank "холодильник" ;
|
||||
-- friend_N = mkN "друг" "друга" "другу" "друга" "другом" "друге" "друге" "друзья" "друзей" "друзьям" "друзей" "дузьями" "друзьях" "друзьях" masculine animate ;
|
||||
friend_N = nDrug "дру" ; -- +++ MG_UR: class better than mkN +++
|
||||
fruit_N = nTelefon "фрукт" ;
|
||||
full_A = AStaruyj "полн" "полнее";
|
||||
fun_AV = AStaruyj "весёл" "веселее";
|
||||
garden_N = nTelefon "сад" ;
|
||||
girl_N = nNoga "девочк" ;
|
||||
give_V3 = tvDirDir (regV imperfective firstE "да" "ю" "давал" "давай" "давать" ) ;
|
||||
glove_N = nNoga "перчатк" ;
|
||||
go_V= regV imperfective second "хо" "жу" "ходил" "ходи" "ходить" ;
|
||||
-- gold_N = nChislo "золот" ; -- +++ MG_UR: wrong! +++
|
||||
gold_N = nSlovo "золот" ; -- +++ MG_UR: added +++
|
||||
good_A = AKhoroshij "хорош" "лучше" ;
|
||||
grammar_N = nNoga "грамматик";
|
||||
grass_N = nMashina "трав" ;
|
||||
green_A = AStaruyj "зелен" "зеленее" ;
|
||||
guts_N = nBol "внутренност" ;
|
||||
hair_N = nTelefon "волос" ;
|
||||
hand_N = nNoga "рук" ;
|
||||
harbour_N = nTelefon "залив" ;
|
||||
hat_N = nMashina "шляп" ;
|
||||
hate_V2= dirV2 (regV imperfective second "ненави" "жу" "ненавидел" "ненавидь" "ненавидеть" );
|
||||
have_V2= dirV2 (regV imperfective first "име" "ю" "имел" "имей" "иметь" );
|
||||
head_N = nMashina "голов" ;
|
||||
hear_V2= dirV2 (regV imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
|
||||
heart_N = mkN "сердце" "сердца" "сердцу" "сердца" "сердцем" "сердце" "сердце" "сердца" "сердец" "сердцам" "сердец" "сердцами" "сердцах" "сердцах" neuter inanimate ;
|
||||
--- heaven_N = nNebo "неб" ; -- +++ MG_UR: added +++
|
||||
heavy_A = AStaruyj "тяжел" "тяжелее";
|
||||
hill_N = nTelefon "холм" ;
|
||||
hit_V2 = dirV2 (regV imperfective first "ударя" "ю" "ударял" "ударяй" "ударять" );
|
||||
hold_V2 = dirV2 (regV imperfective second "держ" "у" "держал" "держи" "держать" );
|
||||
hope_VS= regV imperfective first "наде" "ю" "надеял" "надей" "надеять" ;
|
||||
horn_N = nAdres "рог" ;
|
||||
-- horse_N = nBol "лошад" ; -- +++ MG_UR: wrong! +++
|
||||
horse_N = nLoshad "лошад" ; -- +++ MG_UR: added +++
|
||||
hot_A = AKhoroshij "горяч" "горячее" ;
|
||||
house_N = nAdres "дом" ;
|
||||
hunt_V2 = dirV2 (regV imperfective second "охоч" "у" "охотил" "охоть" "охотить" ) ;
|
||||
husband_N = mkN "муж" "мужа" "мужу" "мужа" "мужем" "муже" "муже" "мужья" "мужей" "мужьям" "мужей" "мужьями" "мужьях" "мужьях" masculine animate ;
|
||||
ice_N = mkN "лёд" "льда" "льду" "льда" "льдом" "льде" "льде" "льды" "льдов" "льдам" "льдов" "льдами" "льдах" "льдах" masculine inanimate ;
|
||||
important_A = AStaruyj "важн" "важнее" ;
|
||||
-- industry_N = nChislo "производств" ; -- +++ MG_UR: wrong! +++
|
||||
industry_N = nSlovo "производств" ; -- +++ MG_UR: added +++
|
||||
-- iron_N = nChislo "желез" ; -- +++ MG_UR: wrong! +++
|
||||
iron_N = nSlovo "желез" ; -- +++ MG_UR: added +++
|
||||
jump_V = regV imperfective first "прыга" "ю" "прыгал" "прыгай" "прыгать" ;
|
||||
kill_V2 = dirV2 (regV imperfective first "убива" "ю" "убивал" "убивай" "убивать" ) ;
|
||||
king_N = mkN "король" "короля" "королю" "короля" "королем" "короле" "короле" "короли" "королей" "королям" "королей" "королями" "королях" "королях" masculine animate ;
|
||||
knee_N = mkN "колено" "колена" "колену" "колена" "коленом" "колене" "колене" "колени" "колен" "коленам" "колен" "коленями" "коленях" "коленях" neuter inanimate ;
|
||||
know_V2= dirV2 (regV imperfective first "зна" "ю" "знал" "знай" "знать" );
|
||||
-- lake_N = nChislo "озер" ; -- +++ MG_UR: wrong! +++
|
||||
lake_N = nChislo "озер" "озёр"; -- +++ MG_UR: added +++
|
||||
lamp_N = nMashina "ламп" ;
|
||||
language_N = nBank "язык" ;
|
||||
laugh_V = regV imperfective firstE "сме" "ю" "смеял" "смей" "смеять" ;
|
||||
leaf_N = nStul "лист" ;
|
||||
learn_V2= dirV2 (regV imperfective second "уч" "у" "учил" "учи" "учить" );
|
||||
leather_N = nEdinica "кож" ;
|
||||
leave_V2= dirV2 (regV imperfective second "ухож" "у" "уходил" "уходи" "уходить" );
|
||||
left_Ord = (uy_j_EndDecl "лев" ) ** {lock_A = <>};
|
||||
leg_N = nNoga "ног" ;
|
||||
lie_V = regV imperfective firstE "лг" "у" "лгал" "лги" "лгать" ;
|
||||
like_V2= dirV2 (regV imperfective second "нрав" "лю" "нравил" "нравь" "нравить" );
|
||||
listen_V2= dirV2 (regV imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
|
||||
live_V= regV imperfective firstE "жив" "у" "жил" "живи" "жить" ;
|
||||
liver_N = nBol "печен" ;
|
||||
long_A = AStaruyj "длинн" "длиннее" ;
|
||||
lose_V2 = dirV2 (regV imperfective first "теря" "ю" "терял" "теряй" "терять" );
|
||||
louse_N = mkN "вошь" "вши" "вши" "вошь" "вошью" "вше" "вше" "вши" "вшей" "вшам" "вшей" "вшами" "вшах" "вшах" feminine animate ;
|
||||
love_N = nBol "любов" ;
|
||||
love_V2= dirV2 (regV imperfective second "люб" "лю" "любил" "люби" "любить" );
|
||||
man_N = nStomatolog "человек" ;
|
||||
married_A2 = mkA2 (adjInvar "замужем") "за" instructive ;
|
||||
-- meat_N = nChislo "мяс" ; -- +++ MG_UR: wrong! +++
|
||||
-- milk_N = nChislo "молок" ; -- +++ MG_UR: wrong! +++
|
||||
--- mister_N = nGospodin "господ" ; -- +++ MG_UR: added +++
|
||||
--- mom_N = nMat "мат" ; -- +++ MG_UR: added +++
|
||||
--- month_N = nMesjac "месяц" ; -- +++ MG_UR: added +++
|
||||
moon_N = nMashina "лун" ;
|
||||
mother_N2 = mkN2 ( nMashina "мам") ;
|
||||
mountain_N = nMashina "гор" ;
|
||||
mouth_N = mkN "рот" "рта" "рту" "рот" "ртом" "рте" "рте" "рты" "ртов" "ртам" "рты" "ртами" "ртах" "ртах" masculine inanimate ;
|
||||
--- museum_N = nMusej "музе" ; -- +++ MG_UR: added +++
|
||||
music_N = nNoga "музык" ;
|
||||
-- name_N = mkN "имя" "имени" "имени" "имя" "именем" "имени" "имени" "имена" "имён" "именам" "имена" "именами" "именах" "именах" neuter inanimate ;
|
||||
name_N = nVremja "и" ; -- +++ MG_UR: class better than mkN +++
|
||||
narrow_A = AStaruyj "узк" "уже" ;
|
||||
near_A = AMalenkij "близк" "ближе";
|
||||
neck_N = nTetya "ше" ;
|
||||
new_A = AStaruyj "нов" "новее" ;
|
||||
newspaper_N = nMashina "газет" ;
|
||||
-- night_N = nBol "ноч" ; -- +++ MG_UR: wrong! +++
|
||||
night_N = nNoch "ноч" ; -- +++ MG_UR: added +++
|
||||
nose_N = nTelefon "нос" ;
|
||||
now_Adv = mkAdv "сейчас" ;
|
||||
number_N = nChislo "числ" "чисел" ;
|
||||
--- ocean_N = nMorje "мор" ; -- +++ MG_UR: added +++
|
||||
oil_N = nBol "нефть" ;
|
||||
old_A = AStaruyj "стар" "старше" ;
|
||||
open_V2= dirV2 (regV imperfective first "открыва" "ю" "открывал" "открывай" "открывать" );
|
||||
--- organise_V2 = dirV2 (regV imperfective foreign "организу" "ю" "организовал" "организуй" "организовать" ); -- +++ MG_UR: added +++
|
||||
paint_V2A = dirV2 (regV imperfective first "рису" "ю" "рисовал" "рисуй" "рисовать" ) ;
|
||||
--- palace_N = nDvorec "двор" ; -- +++ MG_UR: added +++
|
||||
paper_N = nNoga "бумаг" ;
|
||||
paris_PN = mkPN "Париж" Masc Inanimate ;
|
||||
peace_N = nTelefon "мир" ;
|
||||
pen_N = nNoga "ручк" ;
|
||||
person_N = nBol "личность" ;
|
||||
planet_N = nMashina "планет" ;
|
||||
plastic_N = nMashina "пластмасс" ;
|
||||
play_V = regV imperfective first "игра" "ю" "играл" "играй" "играть" ;
|
||||
play_V2 = mkV2 (regV imperfective first "игра" "ю" "играл" "играй" "играть" ) "c" instructive;
|
||||
policeman_N = nTelefon "милиционер" ;
|
||||
priest_N = nStomatolog "священник" ;
|
||||
probable_AS = AStaruyj "возможн" "возможнее";
|
||||
pull_V2 = dirV2 (regV imperfective first "тян" "у" "тянул" "тяни" "тянуть" ) ;
|
||||
push_V2 = dirV2 (regV imperfective first "толка" "ю" "толкал" "толкай" "толкать" );
|
||||
put_V2 = dirV2 (regV imperfective firstE "клад" "у" "клал" "клади" "класть" );
|
||||
queen_N = nMashina "королев" ;
|
||||
radio_N = mkIndeclinableNoun "радио" neuter inanimate;
|
||||
rain_N = nNol "дожд" ;
|
||||
rain_V0 = idetDozhd verbIdti; -- No such verb in Russian!
|
||||
read_V2 = dirV2 (regV imperfective first "чита" "ю" "читал" "читай" "читать" );
|
||||
red_A = AStaruyj "красн" "краснее" ;
|
||||
religion_N = nMalyariya "религи" ;
|
||||
restaurant_N = nTelefon "ресторан" ;
|
||||
right_Ord = (uy_j_EndDecl "прав") ** {lock_A = <>} ;
|
||||
river_N = nNoga "рек" ;
|
||||
road_N = nNoga "дорог" ;
|
||||
rock_N = nUroven "кам" ;
|
||||
roof_N = nEdinica "крыш" ;
|
||||
root_N = nUroven "кор" ;
|
||||
rope_N = nNoga "веревк" ;
|
||||
rotten_A = AMolodoj "гнил" "гнилее";
|
||||
round_A = AStaruyj "кругл" "круглее";
|
||||
rub_V2 = dirV2 (regV imperfective firstE "тр" "у" "тёр" "три" "тереть" );
|
||||
rubber_N = nMashina "резин" ;
|
||||
-- rule_N = nChislo "правил" ; -- +++ MG_UR: wrong! +++
|
||||
rule_N = nSlovo "правил" ; -- +++ MG_UR: added +++
|
||||
run_V = regV imperfective first "бега" "ю" "бегал" "бегай" "бегать" ;
|
||||
salt_N = nBol "сол" ;
|
||||
sand_N = mkN "песок" "песка" "песку" "песок" "песком" "песке" "песке" "пески" "песков" "пескам" "песков" "песками" "песках" "песках" masculine inanimate ;
|
||||
say_VS = regV imperfective second "говор" "ю" "говорил" "говори" "говорить" ;
|
||||
school_N = nMashina "школ" ;
|
||||
science_N = nNoga "наук" ;
|
||||
scratch_V2 = dirV2 (regV imperfective first "чеш" "у" "чесал" "чеши" "чесать" ) ;
|
||||
sea_N = nProizvedenie "мор" ;
|
||||
-- see_V2 = dirV2 (regV imperfective second "виж" "у" "видел" "видь" "видеть" );
|
||||
see_V2 = dirV2 (regV imperfective second "ви" "жу" "видел" "видь" "видеть" ); -- changed !!
|
||||
-- seed_N = mkN "семя" "семени" "семении" "семя" "семенем" "семени" "семени" "семена" "семян" "семенам" "семена" "семенами" "семенах" "семенах" neuter inanimate ;
|
||||
seed_N = nVremja "се" ; -- +++ MG_UR: class better than mkN +++
|
||||
seek_V2 = dirV2 (regV imperfective first "ищ" "у" "искал" "ищи" "искать" );
|
||||
sell_V3 = tvDirDir (regV imperfective firstE "прода" "ю" "продавал" "продавай" "продавать" );
|
||||
send_V3 = tvDirDir (regV imperfective first "посыла" "ю" "посылал" "посылай" "посылать" );
|
||||
sew_V = regV imperfective firstE "шь" "ю" "шил" "шей" "шить" ;
|
||||
sharp_A = AStaruyj "остр" "острее";
|
||||
sheep_N = nMashina "овц" ;
|
||||
ship_N = nNol "корабл" ;
|
||||
shirt_N = nNoga "рубашк" ;
|
||||
shoe_N = mkN "туфля" "туфли" "туфле" "туфлю" "туфлей" "туфле" "туфле" "туфли" "туфель" "туфлям" "туфли" "туфлями" "туфлях" "туфлях" masculine inanimate ;
|
||||
shop_N = nTelefon "магазин" ;
|
||||
short_A = AMalenkij "коротк" "короче" ;
|
||||
-- silver_N = nChislo "серебр" ; -- +++ MG_UR: wrong! +++
|
||||
silver_N = nSlovo "серебр" ; -- +++ MG_UR: added +++
|
||||
sing_V = regV imperfective firstE "по" "ю" "пел" "пой" "петь" ;
|
||||
sister_N = nMashina "сестр" ;
|
||||
sit_V = mkV imperfective "сижу" "сидишь" "сидит" "сидим" "сидите" "сидят" "сидел" "сиди" "сидеть" ;
|
||||
skin_N = nEdinica "кож" ;
|
||||
sky_N = mkN "небо" "неба" "небу" "небо" "небом" "небе" "небе" "небеса" "небес" "небесам" "небес" "небесами" "небесах" "небесах" neuter inanimate ;
|
||||
sleep_V = regV imperfective second "сп" "лю" "спал" "спи" "спать" ;
|
||||
small_A = AMalenkij "маленьк" "меньше" ;
|
||||
smell_V = regV imperfective first "пахн" "у" "пахнул" "пахни" "пахнуть" ;
|
||||
smoke_N = nTelefon "дым" ;
|
||||
smooth_A = AMalenkij "гладк" "глаже";
|
||||
snake_N = nTetya "зме" ;
|
||||
snake_N = nTetya"зме" ;
|
||||
snow_N = nAdres "снег" ;
|
||||
sock_N = nPotolok "нос" ;
|
||||
--- son_N = nSyn "сын" ; -- +++ MG_UR: added +++
|
||||
song_N = nTetya "песн" ;
|
||||
speak_V2 = dirV2 (regV imperfective second "говор" "ю" "говорил" "говори" "говорить" );
|
||||
spit_V = regV imperfective firstE "плю" "ю" "плевал" "плюй" "плевать" ;
|
||||
split_V2 = dirV2 (regV imperfective first "разбива" "ю" "разбивал" "разбей" "разбивать" ) ;
|
||||
squeeze_V2 = dirV2 (regV imperfective first "сжима" "ю" "сжимал" "сжимай" "сжимать" ) ;
|
||||
stab_V2 = dirV2 (regV imperfective first "кол" "ю" "колол" "коли" "колоть" ) ;
|
||||
stand_V = regV imperfective second "сто" "ю" "стоял" "стой" "стоять" ;
|
||||
star_N = nMashina "звезд" ;
|
||||
steel_N = nBol "стал" ;
|
||||
stick_N = nNoga "палк" ;
|
||||
stone_N = nNol "камен" ;
|
||||
stop_V = regV imperfective first "останавлива" "ю" "останавливал" "останавливай" "останавливать";
|
||||
stove_N = nBol "печ" ;
|
||||
straight_A = AMolodoj "прям" "прямее";
|
||||
student_N = nTelefon "студент" ;
|
||||
stupid_A = AMolodoj "тупой" "тупее" ;
|
||||
suck_V2 = dirV2 (regV imperfective firstE "сос" "у" "сосал" "соси" "сосать") ;
|
||||
sun_N = mkN "солнце" "солнца" "солнцу" "солнце" "солнцем" "солнце" "солнце" "солнца" "солнц" "солнцам" "солнца" "солнцами" "солнцах" "солнцах" neuter inanimate ;
|
||||
swell_V = regV imperfective first "опуха" "ю" "опухал" "опухай" "опухать" ;
|
||||
swim_V = regV imperfective first "плава" "ю" "плавал" "плавай" "плавать" ;
|
||||
switch8off_V2 = dirV2 (regV imperfective first "выключа" "ю" "выключал" "выключай" "выключать") ;
|
||||
switch8on_V2 = dirV2 (regV imperfective first "включа" "ю" "включал" "включай" "включать") ;
|
||||
table_N = nTelefon "стол" ;
|
||||
tail_N = nTelefon "хвост" ;
|
||||
talk_V3 = mkV3 (regV imperfective second "говор" "ю" "говорил" "говори" "говорить" ) "с" "о" instructive prepositional;
|
||||
teach_V2 = dirV2 (regV imperfective second "уч" "у" "учил" "учи" "учить" );
|
||||
-- teacher_N = nNol "учител" ; -- +++ MG_UR: wrong! +++
|
||||
teacher_N = nUchitel "учител" ; -- +++ MG_UR: added +++
|
||||
television_N = nProizvedenie "телевидени" ;
|
||||
thick_A = AStaruyj "толст" "толще" ;
|
||||
thin_A = AMalenkij "тонк" "тоньше" ;
|
||||
think_V = regV imperfective first "дума" "ю" "думал" "думай" "думать" ;
|
||||
throw_V2 = dirV2 (regV imperfective first "броса" "ю" "бросал" "бросай" "бросать" ) ;
|
||||
tie_V2 = dirV2 (regV imperfective first "вяж" "у" "вязал" "вяжи" "вязать") ;
|
||||
--- time_N = nVremja "вре" ; -- +++ MG_UR: added +++
|
||||
tongue_N = nBank "язык" ;
|
||||
tooth_N = nTelefon "зуб" ;
|
||||
train_N = nAdres "поезд" ;
|
||||
travel_V = regV imperfective first "путешеству" "ю" "путешествовал" "путешествуй" "путешествовать" ;
|
||||
tree_N = nDerevo "дерев" ; -- +++ MG_UR: added +++
|
||||
turn_V = regV imperfective first "поворачива" "ю" "поворачивал" "поворачивай" "поворачивать" ;
|
||||
ugly_A = AStaruyj "некрасив" "некрасивее" ;
|
||||
understand_V2 = dirV2 (regV imperfective first "понима" "ю" "понимал" "понимай" "понимать" );
|
||||
university_N = nTelefon "университет" ;
|
||||
village_N = nMalyariya "деревн" ;
|
||||
--- vocationalschool_N = nUchilishe "училищ" ; -- +++ MG_UR: added +++
|
||||
vomit_V = regV imperfective firstE "рв" "у" "рвал" "рви" "рвать" ;
|
||||
wait_V2 = dirV2 (regV imperfective firstE "жд" "у" "ждал" "жди" "ждать" );
|
||||
walk_V = regV imperfective first "гуля" "ю" "гулял" "гуляй" "гулять" ;
|
||||
--- want_V2 = dirV2 (regV imperfective mixed "хо" "чу" "хотел" "хоти" "хотеть" );
|
||||
war_N = nMashina "войн" ;
|
||||
warm_A = AStaruyj "тёпл" "теплее" ;
|
||||
wash_V2 = dirV2 (regV imperfective first "мо" "ю" "мыл" "мой" "мыть" ) ;
|
||||
watch_V2 = dirV2 (regV imperfective second "смотр" "ю" "смотрел" "смотри" "смотреть" );
|
||||
water_N = nMashina "вод" ;
|
||||
--- way_N = nPut "пут" ; -- +++ MG_UR: added +++
|
||||
wet_A = AStaruyj "мокр" "мокрее";
|
||||
white_A = AStaruyj "бел" "белее" ;
|
||||
wide_A = AMalenkij "широк" "шире";
|
||||
wife_N = nMashina "жен" ;
|
||||
win_V2 = dirV2 (regV imperfective first "выигрыва" "ю" "выигрывал" "выигрывай" "выигрывать" );
|
||||
wind_N = mkN "ветер" "ветра" "ветру" "ветер" "ветром" "ветра" "ветра" "ветров" "ветра" "ветрам" "ветров" "ветрами" "ветрах" "ветрах" masculine inanimate ;
|
||||
-- window_N = nChislo "окн" ; -- +++ MG_UR: wrong! +++
|
||||
window_N = nChislo "окн" "окон" ; -- +++ MG_UR: added +++
|
||||
-- wine_N = nChislo "вин" ; -- +++ MG_UR: wrong! +++
|
||||
wine_N = nSlovo "вин" ; -- +++ MG_UR: added +++
|
||||
-- wing_N = mkN "крыло" "крыла" "крылу" "крыло" "крылом" "крыле" "крыле" "крылья" "крыльев" "крыльям" "крылья" "крыльями" "крыльях" "крыльях" neuter inanimate ;
|
||||
wing_N = nDerevo "крыл" ; -- +++ MG_UR: class better than mkN +++
|
||||
wipe_V2 = dirV2 (regV imperfective first "вытира" "ю" "вытирал" "вытирай" "вытирать" );
|
||||
woman_N = nZhenchina "женщин" ;
|
||||
wonder_VQ = regV imperfective first "интересу" "ю" "интересовал" "интересуй" "интересовать";
|
||||
-- wood_N = nChislo "дерев" ; -- +++ MG_UR: wrong! +++
|
||||
wood_N = nDerevo "дерев" ; -- +++ MG_UR: added +++
|
||||
--- word_N = nSlovo "слов" ; -- +++ MG_UR: added +++
|
||||
worm_N = nNol "черв" ;
|
||||
write_V2 = dirV2 (regV imperfective first "пиш" "у" "писал" "пиши" "писать" );
|
||||
year_N = nAdres "год" ;
|
||||
yellow_A = AStaruyj "жёлт" "желтее" ;
|
||||
young_A = AMolodoj "молод" "моложе";
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,416 +1,419 @@
|
||||
--# -path=.:../abstract:../common:../../prelude
|
||||
|
||||
--1 Russian auxiliary operations.
|
||||
|
||||
-- This module contains operations that are needed to make the
|
||||
-- resource syntax work. To define everything that is needed to
|
||||
-- implement $Test$, it moreover contains regular lexical
|
||||
-- patterns needed for $Lex$.
|
||||
|
||||
resource ResRus = ParamX ** open Prelude in {
|
||||
|
||||
flags coding=utf8 ; optimize=all ;
|
||||
|
||||
--2 Enumerated parameter types
|
||||
--
|
||||
-- These types are the ones found in school grammars.
|
||||
-- Their parameter values are atomic.
|
||||
|
||||
-- Some parameters, such as $Number$, are inherited from $ParamX$.
|
||||
param
|
||||
Gender = Masc | Fem | Neut ;
|
||||
Case = Nom | Gen | Dat | Acc | Inst | Prepos ;
|
||||
Animacy = Animate | Inanimate ;
|
||||
Voice = Act | Pass ;
|
||||
Aspect = Imperfective | Perfective ;
|
||||
RusTense = Present | PastRus | Future ;
|
||||
-- Degree = Pos | Comp | Super ;
|
||||
AfterPrep = Yes | No ;
|
||||
Possessive = NonPoss | Poss GenNum ;
|
||||
-- Anteriority = Simul | Anter ;
|
||||
ClForm = ClIndic RusTense Anteriority | ClCondit | ClInfinit | ClImper;
|
||||
-- "naked infinitive" clauses
|
||||
|
||||
-- A number of Russian nouns have common gender. They can
|
||||
-- denote both males and females: "умница" (a clever person), "инженер" (an engineer).
|
||||
-- We overlook this phenomenon for now.
|
||||
|
||||
-- The AfterPrep parameter is introduced in order to describe
|
||||
-- the variations of the third person personal pronoun forms
|
||||
-- depending on whether they come after a preposition or not.
|
||||
|
||||
-- Declination forms depend on Case, Animacy , Gender:
|
||||
-- "большие дома" - "больших домов" (big houses - big houses'),
|
||||
-- Animacy plays role only in the Accusative case (Masc Sg and Plural forms):
|
||||
-- Accusative Animate = Genetive, Accusaive Inanimate = Nominative
|
||||
-- "я люблю большие дома-"я люблю больших мужчин"
|
||||
-- (I love big houses - I love big men);
|
||||
-- and on Number: "большой дом - "большие дома"
|
||||
-- (a big house - big houses).
|
||||
-- The plural never makes a gender distinction.
|
||||
|
||||
GenNum = ASg Gender | APl ;
|
||||
|
||||
-- Coercions between the compound gen-num type and gender and number:
|
||||
oper
|
||||
gNum : Gender -> Number -> GenNum = \g,n ->
|
||||
case n of
|
||||
{ Sg => case g of
|
||||
{ Fem => ASg Fem ;
|
||||
Masc => ASg Masc ;
|
||||
Neut => ASg Neut } ;
|
||||
Pl => APl
|
||||
} ;
|
||||
|
||||
|
||||
-- The Possessive parameter is introduced in order to describe
|
||||
-- the possessives of personal pronouns, which are used in the
|
||||
-- Genetive constructions like "моя мама" (my mother) instead of
|
||||
-- "мама моя" (the mother of mine).
|
||||
|
||||
--2 For $Noun$
|
||||
-- Nouns decline according to number and case.
|
||||
-- For the sake of shorter description these parameters are
|
||||
-- combined in the type SubstForm.
|
||||
param
|
||||
SubstForm = SF Number Case ;
|
||||
|
||||
|
||||
-- Real parameter types (i.e. ones on which words and phrases depend)
|
||||
-- are mostly hierarchical. The alternative would be cross-products of
|
||||
-- simple parameters, but this would usually overgenerate.
|
||||
|
||||
-- However, we use the cross-products in complex cases
|
||||
-- (for example, aspect and tense parameter in the verb description)
|
||||
-- where the relationship between the parameters are non-trivial
|
||||
-- even though we aware that some combinations do not exist
|
||||
-- (for example, present perfective does not exist, but removing
|
||||
-- this combination would lead to having different descriptions
|
||||
-- for perfective and imperfective verbs, which we do not want for the
|
||||
-- sake of uniformity).
|
||||
|
||||
param PronForm = PF Case AfterPrep Possessive;
|
||||
|
||||
oper Pronoun = { s : PronForm => Str ; n : Number ; p : Person ;
|
||||
g: PronGen ; pron: Bool} ;
|
||||
|
||||
-- Gender is not morphologically determined for first
|
||||
-- and second person pronouns.
|
||||
|
||||
param PronGen = PGen Gender | PNoGen ;
|
||||
|
||||
-- The following coercion is useful:
|
||||
|
||||
oper
|
||||
pgen2gen : PronGen -> Gender = \p -> case p of {
|
||||
PGen g => g ;
|
||||
PNoGen => variants {Masc ; Fem} --- the best we can do for ya, tu
|
||||
} ;
|
||||
|
||||
|
||||
oper
|
||||
extCase: PronForm -> Case = \pf -> case pf of
|
||||
{ PF Nom _ _ => Nom ;
|
||||
PF Gen _ _ => Gen ;
|
||||
PF Dat _ _ => Dat ;
|
||||
PF Inst _ _ => Inst ;
|
||||
PF Acc _ _ => Acc ;
|
||||
PF Prepos _ _ => Prepos
|
||||
} ;
|
||||
|
||||
mkPronForm: Case -> AfterPrep -> Possessive -> PronForm =
|
||||
\c,n,p -> PF c n p ;
|
||||
|
||||
CommNounPhrase: Type = {s : Number => Case => Str; g : Gender; anim : Animacy} ;
|
||||
|
||||
NounPhrase : Type = { s : PronForm => Str ; n : Number ;
|
||||
p : Person ; g: PronGen ; anim : Animacy ; pron: Bool} ;
|
||||
|
||||
mkNP : Number -> CommNounPhrase -> NounPhrase = \n,chelovek ->
|
||||
{s = \\cas => chelovek.s ! n ! (extCase cas) ;
|
||||
n = n ; g = PGen chelovek.g ; p = P3 ; pron =False ;
|
||||
anim = chelovek.anim
|
||||
} ;
|
||||
|
||||
det2NounPhrase : Adjective -> NounPhrase = \eto ->
|
||||
{s = \\pf => eto.s ! (AF (extCase pf) Inanimate (ASg Neut)); n = Sg ; g = PGen Neut ; pron = False ; p = P3 ; anim = Inanimate } ;
|
||||
|
||||
|
||||
|
||||
pron2NounPhraseNum : Pronoun -> Animacy -> Number -> NounPhrase = \ona, anim, num ->
|
||||
{s = ona.s ; n = num ; g = ona.g ;
|
||||
pron = ona.pron; p = ona.p ; anim = anim } ;
|
||||
|
||||
|
||||
-- Agreement of $NP$ is a record. We'll add $Gender$ later.
|
||||
-- oper Agr = {n : Number ; p : Person} ;
|
||||
|
||||
|
||||
----2 For $Verb$
|
||||
|
||||
-- Mood is the main verb classification parameter.
|
||||
-- The verb mood can be infinitive, subjunctive, imperative, and indicative.
|
||||
|
||||
-- Note: subjunctive mood is analytical, i.e. formed from the past form of the
|
||||
-- indicative mood plus the particle "ли". That is why they have the same GenNum
|
||||
-- parameter. We choose to keep the "redundant" form in order to indicate
|
||||
-- the presence of the subjunctive mood in Russian verbs.
|
||||
|
||||
-- Aspect and Voice parameters are present in every mood, so Voice is put
|
||||
-- before the mood parameter in verb form description the hierachy.
|
||||
-- Moreover Aspect is regarded as an inherent parameter of a verb entry.
|
||||
-- The primary reason for that is that one imperfective form can have several
|
||||
-- perfective forms: "ломать" - "сломать" - "поломать" (to break).
|
||||
-- Besides, the perfective form could be formed from imperfective
|
||||
-- by prefixation, but also by taking a completely different stem:
|
||||
-- "говорить"-"сказать" (to say). In the later case it is even natural to
|
||||
-- regard them as different verb entries.
|
||||
-- Another reason is that looking at the Aspect as an inherent verb parameter
|
||||
-- seem to be customary in other similar projects:
|
||||
-- http://starling.rinet.ru/morph.htm
|
||||
|
||||
-- Note: Of course, the whole inflection table has many redundancies
|
||||
-- in a sense that many verbs do not have all grammatically possible
|
||||
-- forms. For example, passive does not exist for the verb
|
||||
-- "любить" (to love), but exists for the verb "ломаться" (to break).
|
||||
-- In present tense verbs do not conjugate according to Genus,
|
||||
-- so parameter GenNum instead Number is used for the sake of
|
||||
-- using for example as adjective in predication.
|
||||
|
||||
-- Depending on the tense verbs conjugate according to combinations
|
||||
-- of gender, person and number of the verb objects.
|
||||
-- Participles (Present and PastRus) and Gerund forms are not included in the
|
||||
-- current description. This is the verb type used in the lexicon:
|
||||
|
||||
oper Verbum : Type = { s: VerbForm => Str ; asp : Aspect };
|
||||
|
||||
param
|
||||
|
||||
VerbForm = VFORM Voice VerbConj ;
|
||||
VerbConj = VIND GenNum VTense | VIMP Number Person | VINF | VSUB GenNum ;
|
||||
VTense = VPresent Person | VPast | VFuture Person ;
|
||||
|
||||
oper
|
||||
getVTense : RusTense -> Person -> VTense= \t,p ->
|
||||
case t of { Present => VPresent p ; PastRus => VPast; Future => VFuture p } ;
|
||||
|
||||
getTense : Tense -> RusTense= \t ->
|
||||
case t of { Pres => Present ; Fut => Future; _ => PastRus} ;
|
||||
|
||||
|
||||
getVoice: VerbForm -> Voice = \vf ->
|
||||
case vf of {
|
||||
VFORM Act _ => Act;
|
||||
VFORM Pass _ => Pass
|
||||
};
|
||||
oper sebya : Case => Str =table {
|
||||
Nom => "";
|
||||
Gen => "себя";
|
||||
Dat=> "себе";
|
||||
Acc => "себя";
|
||||
Inst => "собой";
|
||||
Prep =>"себе"};
|
||||
|
||||
Verb : Type = {s : ClForm => GenNum => Person => Str ; asp : Aspect ; w: Voice} ;
|
||||
-- Verb phrases are discontinuous: the parts of a verb phrase are
|
||||
-- (s) an inflected verb, (s2) verb adverbials (not negation though), and
|
||||
-- (s3) complement. This discontinuity is needed in sentence formation
|
||||
-- to account for word order variations.
|
||||
|
||||
VerbPhrase : Type = Verb ** {s2: Str; s3 : Gender => Number => Str ;
|
||||
negBefore: Bool} ;
|
||||
|
||||
|
||||
-- This is one instance of Gazdar's *slash categories*, corresponding to his
|
||||
-- $S/NP$.
|
||||
-- We cannot have - nor would we want to have - a productive slash-category former.
|
||||
-- Perhaps a handful more will be needed.
|
||||
--
|
||||
-- Notice that the slash category has the same relation to sentences as
|
||||
-- transitive verbs have to verbs: it's like a *sentence taking a complement*.
|
||||
|
||||
SlashNounPhrase = Clause ** Complement ;
|
||||
Clause = {s : Polarity => ClForm => Str} ;
|
||||
|
||||
-- This is the traditional $S -> NP VP$ rule.
|
||||
|
||||
predVerbPhrase : NounPhrase -> VerbPhrase -> SlashNounPhrase =
|
||||
\Ya, tebyaNeVizhu -> { s = \\b,clf =>
|
||||
let
|
||||
{ ya = Ya.s ! (mkPronForm Nom No NonPoss);
|
||||
khorosho = tebyaNeVizhu.s2;
|
||||
vizhu = tebyaNeVizhu.s ! clf !(gNum (pgen2gen Ya.g) Ya.n)! Ya.p;
|
||||
tebya = tebyaNeVizhu.s3 ! (pgen2gen Ya.g) ! Ya.n
|
||||
}
|
||||
in
|
||||
ya ++ khorosho ++ vizhu ++ tebya;
|
||||
s2= "";
|
||||
c = Nom
|
||||
} ;
|
||||
|
||||
-- Questions are either direct ("Ты счастлив?")
|
||||
-- or indirect ("Потом он спросил счастлив ли ты").
|
||||
|
||||
param
|
||||
QuestForm = DirQ | IndirQ ;
|
||||
|
||||
---- The order of sentence is needed already in $VP$.
|
||||
--
|
||||
-- Order = ODir | OQuest ;
|
||||
|
||||
oper
|
||||
getActVerbForm : ClForm -> Gender -> Number -> Person -> VerbForm = \clf,g,n, p -> case clf of
|
||||
{ ClIndic Future _ => VFORM Act (VIND (gNum g n) (VFuture p));
|
||||
ClIndic PastRus _ => VFORM Act (VIND (gNum g n) VPast);
|
||||
ClIndic Present _ => VFORM Act (VIND (gNum g n) (VPresent p));
|
||||
ClCondit => VFORM Act (VSUB (gNum g n));
|
||||
ClInfinit => VFORM Act VINF ;
|
||||
ClImper => VFORM Act (VIMP n p)
|
||||
};
|
||||
|
||||
getPassVerbForm : ClForm -> Gender -> Number -> Person -> VerbForm = \clf,g,n, p -> case clf of
|
||||
{ ClIndic Future _ => VFORM Pass (VIND (gNum g n) (VFuture p));
|
||||
ClIndic PastRus _ => VFORM Pass (VIND (gNum g n) VPast);
|
||||
ClIndic Present _ => VFORM Pass (VIND (gNum g n) (VPresent p));
|
||||
ClCondit => VFORM Pass (VSUB (gNum g n));
|
||||
ClInfinit => VFORM Pass VINF ;
|
||||
ClImper => VFORM Pass (VIMP n p)
|
||||
};
|
||||
|
||||
|
||||
--2 For $Adjective$
|
||||
param
|
||||
AdjForm = AF Case Animacy GenNum | AdvF;
|
||||
|
||||
oper
|
||||
Complement = {s2 : Str ; c : Case} ;
|
||||
|
||||
oper Refl ={s: Case => Str};
|
||||
oper sam: Refl=
|
||||
{s = table{
|
||||
Nom => "сам";
|
||||
Gen => "себя";
|
||||
Dat => "себе";
|
||||
Acc => "себя";
|
||||
Inst => "собой";
|
||||
Prepos => "себе"
|
||||
}
|
||||
};
|
||||
|
||||
pgNum : PronGen -> Number -> GenNum = \g,n ->
|
||||
case n of
|
||||
{ Sg => case g of
|
||||
{ PGen Fem => ASg Fem ;
|
||||
PGen Masc => ASg Masc ;
|
||||
PGen Neut => ASg Neut ;
|
||||
_ => ASg Masc } ; -- assuming pronoun "I" is a male
|
||||
Pl => APl
|
||||
} ;
|
||||
-- _ => variants {ASg Masc ; ASg Fem} } ;
|
||||
-- "variants" version cause "no term variants" error during linearization
|
||||
|
||||
|
||||
|
||||
oper numGNum : GenNum -> Number = \gn ->
|
||||
case gn of { APl => Pl ; _ => Sg } ;
|
||||
|
||||
oper genGNum : GenNum -> Gender = \gn ->
|
||||
case gn of { ASg Fem => Fem; ASg Masc => Masc; _ => Neut } ;
|
||||
|
||||
oper numAF: AdjForm -> Number = \af ->
|
||||
case af of { AdvF => Sg; AF _ _ gn => (numGNum gn) } ;
|
||||
|
||||
oper genAF: AdjForm -> Gender = \af ->
|
||||
case af of { AdvF => Neut; AF _ _ gn => (genGNum gn) } ;
|
||||
|
||||
oper caseAF: AdjForm -> Case = \af ->
|
||||
case af of { AdvF => Nom; AF c _ _ => c } ;
|
||||
|
||||
-- The Degree parameter should also be more complex, since most Russian
|
||||
-- adjectives have two comparative forms:
|
||||
-- attributive (syntactic (compound), declinable) -
|
||||
-- "более высокий" (corresponds to "more high")
|
||||
-- and predicative (indeclinable)- "выше" (higher) and more than one
|
||||
-- superlative forms: "самый высокий" (corresponds to "the most high") -
|
||||
-- "высочайший" (the highest).
|
||||
|
||||
-- Even one more parameter independent of the degree can be added,
|
||||
-- since Russian adjectives in the positive degree also have two forms:
|
||||
-- long (attributive and predicative) - "высокий" (high) and short (predicative) - "высок"
|
||||
-- although this parameter will not be exactly orthogonal to the
|
||||
-- degree parameter.
|
||||
-- Short form has no case declension, so in principle
|
||||
-- it can be considered as an additional case.
|
||||
|
||||
-- Note: although the predicative usage of the long
|
||||
-- form is perfectly grammatical, it can have a slightly different meaning
|
||||
-- compared to the short form.
|
||||
-- For example: "он - больной" (long, predicative) vs.
|
||||
-- "он - болен" (short, predicative).
|
||||
|
||||
--3 Adjective phrases
|
||||
--
|
||||
-- An adjective phrase may contain a complement, e.g. "моложе Риты".
|
||||
-- Then it is used as postfix in modification, e.g. "человек, моложе Риты".
|
||||
|
||||
IsPostfixAdj = Bool ;
|
||||
|
||||
|
||||
-- Simple adjectives are not postfix:
|
||||
|
||||
-- Adjective type includes both non-degree adjective classes:
|
||||
-- possesive ("мамин"[mother's], "лисий" [fox'es])
|
||||
-- and relative ("русский" [Russian]) adjectives.
|
||||
|
||||
Adjective : Type = {s : AdjForm => Str} ;
|
||||
|
||||
-- A special type of adjectives just having positive forms
|
||||
-- (for semantic reasons) is useful, e.g. "финский".
|
||||
|
||||
AdjPhrase = Adjective ** {p : IsPostfixAdj} ;
|
||||
|
||||
|
||||
mkAdjPhrase : Adjective -> IsPostfixAdj -> AdjPhrase = \novuj ,p -> novuj ** {p = p} ;
|
||||
|
||||
----2 For $Relative$
|
||||
--
|
||||
-- RAgr = RNoAg | RAg {n : Number ; p : Person} ;
|
||||
-- RCase = RPrep | RC Case ;
|
||||
--
|
||||
--2 For $Numeral$
|
||||
|
||||
param DForm = unit | teen | ten | hund ;
|
||||
param Place = attr | indep ;
|
||||
param Size = nom | sgg | plg ;
|
||||
--param Gend = masc | fem | neut ;
|
||||
oper mille : Size => Str = table {
|
||||
{nom} => "тысяча" ;
|
||||
{sgg} => "тысячи" ;
|
||||
_ => "тысяч"} ;
|
||||
|
||||
oper gg : Str -> Gender => Str = \s -> table {_ => s} ;
|
||||
|
||||
-- CardOrd = NCard | NOrd ;
|
||||
|
||||
----2 Transformations between parameter types
|
||||
--
|
||||
|
||||
oper
|
||||
|
||||
numSF: SubstForm -> Number = \sf -> case sf of
|
||||
{
|
||||
SF Sg _ => Sg ;
|
||||
_ => Pl
|
||||
} ;
|
||||
|
||||
caseSF: SubstForm -> Case = \sf -> case sf of
|
||||
{
|
||||
SF _ Nom => Nom ;
|
||||
SF _ Gen => Gen ;
|
||||
SF _ Dat => Dat ;
|
||||
SF _ Inst => Inst ;
|
||||
SF _ Acc => Acc ;
|
||||
SF _ Prepos => Prepos
|
||||
} ;
|
||||
|
||||
}
|
||||
--# -path=.:../abstract:../common:../../prelude
|
||||
|
||||
--1 Russian auxiliary operations.
|
||||
|
||||
-- This module contains operations that are needed to make the
|
||||
-- resource syntax work. To define everything that is needed to
|
||||
-- implement $Test$, it moreover contains regular lexical
|
||||
-- patterns needed for $Lex$.
|
||||
|
||||
resource ResRus = ParamX ** open Prelude in {
|
||||
|
||||
flags coding=utf8 ; optimize=all ;
|
||||
|
||||
--2 Enumerated parameter types
|
||||
--
|
||||
-- These types are the ones found in school grammars.
|
||||
-- Their parameter values are atomic.
|
||||
|
||||
-- Some parameters, such as $Number$, are inherited from $ParamX$.
|
||||
param
|
||||
Gender = Masc | Fem | Neut ;
|
||||
Case = Nom | Gen | Dat | Acc | Inst | Prepos | Prepos2 ; -- +++ MG_UR: new case Prepos2 introduced! +++
|
||||
Animacy = Animate | Inanimate ;
|
||||
Voice = Act | Pass ;
|
||||
Aspect = Imperfective | Perfective ;
|
||||
RusTense = Present | PastRus | Future ;
|
||||
-- Degree = Pos | Comp | Super ;
|
||||
AfterPrep = Yes | No ;
|
||||
Possessive = NonPoss | Poss GenNum ;
|
||||
-- Anteriority = Simul | Anter ;
|
||||
ClForm = ClIndic RusTense Anteriority | ClCondit | ClInfinit | ClImper;
|
||||
-- "naked infinitive" clauses
|
||||
|
||||
-- A number of Russian nouns have common gender. They can
|
||||
-- denote both males and females: "умница" (a clever person), "инженер" (an engineer).
|
||||
-- We overlook this phenomenon for now.
|
||||
|
||||
-- The AfterPrep parameter is introduced in order to describe
|
||||
-- the variations of the third person personal pronoun forms
|
||||
-- depending on whether they come after a preposition or not.
|
||||
|
||||
-- Declination forms depend on Case, Animacy , Gender:
|
||||
-- "большие дома" - "больших домов" (big houses - big houses'),
|
||||
-- Animacy plays role only in the Accusative case (Masc Sg and Plural forms):
|
||||
-- Accusative Animate = Genetive, Accusaive Inanimate = Nominative
|
||||
-- "я люблю большие дома-"я люблю больших мужчин"
|
||||
-- (I love big houses - I love big men);
|
||||
-- and on Number: "большой дом - "большие дома"
|
||||
-- (a big house - big houses).
|
||||
-- The plural never makes a gender distinction.
|
||||
|
||||
GenNum = ASg Gender | APl ;
|
||||
|
||||
-- Coercions between the compound gen-num type and gender and number:
|
||||
oper
|
||||
gNum : Gender -> Number -> GenNum = \g,n ->
|
||||
case n of
|
||||
{ Sg => case g of
|
||||
{ Fem => ASg Fem ;
|
||||
Masc => ASg Masc ;
|
||||
Neut => ASg Neut } ;
|
||||
Pl => APl
|
||||
} ;
|
||||
|
||||
|
||||
-- The Possessive parameter is introduced in order to describe
|
||||
-- the possessives of personal pronouns, which are used in the
|
||||
-- Genetive constructions like "моя мама" (my mother) instead of
|
||||
-- "мама моя" (the mother of mine).
|
||||
|
||||
--2 For $Noun$
|
||||
-- Nouns decline according to number and case.
|
||||
-- For the sake of shorter description these parameters are
|
||||
-- combined in the type SubstForm.
|
||||
param
|
||||
SubstForm = SF Number Case ;
|
||||
|
||||
|
||||
-- Real parameter types (i.e. ones on which words and phrases depend)
|
||||
-- are mostly hierarchical. The alternative would be cross-products of
|
||||
-- simple parameters, but this would usually overgenerate.
|
||||
|
||||
-- However, we use the cross-products in complex cases
|
||||
-- (for example, aspect and tense parameter in the verb description)
|
||||
-- where the relationship between the parameters are non-trivial
|
||||
-- even though we aware that some combinations do not exist
|
||||
-- (for example, present perfective does not exist, but removing
|
||||
-- this combination would lead to having different descriptions
|
||||
-- for perfective and imperfective verbs, which we do not want for the
|
||||
-- sake of uniformity).
|
||||
|
||||
param PronForm = PF Case AfterPrep Possessive;
|
||||
|
||||
oper Pronoun = { s : PronForm => Str ; n : Number ; p : Person ;
|
||||
g: PronGen ; pron: Bool} ;
|
||||
|
||||
-- Gender is not morphologically determined for first
|
||||
-- and second person pronouns.
|
||||
|
||||
param PronGen = PGen Gender | PNoGen ;
|
||||
|
||||
-- The following coercion is useful:
|
||||
|
||||
oper
|
||||
pgen2gen : PronGen -> Gender = \p -> case p of {
|
||||
PGen g => g ;
|
||||
PNoGen => variants {Masc ; Fem} --- the best we can do for ya, tu
|
||||
} ;
|
||||
|
||||
|
||||
oper
|
||||
extCase: PronForm -> Case = \pf -> case pf of
|
||||
{ PF Nom _ _ => Nom ;
|
||||
PF Gen _ _ => Gen ;
|
||||
PF Dat _ _ => Dat ;
|
||||
PF Inst _ _ => Inst ;
|
||||
PF Acc _ _ => Acc ;
|
||||
PF Prepos _ _ => Prepos ;
|
||||
PF Prepos2 _ _ => Prepos2 -- +++ MG_UR: added +++
|
||||
} ;
|
||||
|
||||
mkPronForm: Case -> AfterPrep -> Possessive -> PronForm =
|
||||
\c,n,p -> PF c n p ;
|
||||
|
||||
CommNounPhrase: Type = {s : Number => Case => Str; g : Gender; anim : Animacy} ;
|
||||
|
||||
NounPhrase : Type = { s : PronForm => Str ; n : Number ;
|
||||
p : Person ; g: PronGen ; anim : Animacy ; pron: Bool} ;
|
||||
|
||||
mkNP : Number -> CommNounPhrase -> NounPhrase = \n,chelovek ->
|
||||
{s = \\cas => chelovek.s ! n ! (extCase cas) ;
|
||||
n = n ; g = PGen chelovek.g ; p = P3 ; pron =False ;
|
||||
anim = chelovek.anim
|
||||
} ;
|
||||
|
||||
det2NounPhrase : Adjective -> NounPhrase = \eto ->
|
||||
{s = \\pf => eto.s ! (AF (extCase pf) Inanimate (ASg Neut)); n = Sg ; g = PGen Neut ; pron = False ; p = P3 ; anim = Inanimate } ;
|
||||
|
||||
|
||||
|
||||
pron2NounPhraseNum : Pronoun -> Animacy -> Number -> NounPhrase = \ona, anim, num ->
|
||||
{s = ona.s ; n = num ; g = ona.g ;
|
||||
pron = ona.pron; p = ona.p ; anim = anim } ;
|
||||
|
||||
|
||||
-- Agreement of $NP$ is a record. We'll add $Gender$ later.
|
||||
-- oper Agr = {n : Number ; p : Person} ;
|
||||
|
||||
|
||||
----2 For $Verb$
|
||||
|
||||
-- Mood is the main verb classification parameter.
|
||||
-- The verb mood can be infinitive, subjunctive, imperative, and indicative.
|
||||
|
||||
-- Note: subjunctive mood is analytical, i.e. formed from the past form of the
|
||||
-- indicative mood plus the particle "ли". That is why they have the same GenNum
|
||||
-- parameter. We choose to keep the "redundant" form in order to indicate
|
||||
-- the presence of the subjunctive mood in Russian verbs.
|
||||
|
||||
-- Aspect and Voice parameters are present in every mood, so Voice is put
|
||||
-- before the mood parameter in verb form description the hierachy.
|
||||
-- Moreover Aspect is regarded as an inherent parameter of a verb entry.
|
||||
-- The primary reason for that is that one imperfective form can have several
|
||||
-- perfective forms: "ломать" - "сломать" - "поломать" (to break).
|
||||
-- Besides, the perfective form could be formed from imperfective
|
||||
-- by prefixation, but also by taking a completely different stem:
|
||||
-- "говорить"-"сказать" (to say). In the later case it is even natural to
|
||||
-- regard them as different verb entries.
|
||||
-- Another reason is that looking at the Aspect as an inherent verb parameter
|
||||
-- seem to be customary in other similar projects:
|
||||
-- http://starling.rinet.ru/morph.htm
|
||||
|
||||
-- Note: Of course, the whole inflection table has many redundancies
|
||||
-- in a sense that many verbs do not have all grammatically possible
|
||||
-- forms. For example, passive does not exist for the verb
|
||||
-- "любить" (to love), but exists for the verb "ломаться" (to break).
|
||||
-- In present tense verbs do not conjugate according to Genus,
|
||||
-- so parameter GenNum instead Number is used for the sake of
|
||||
-- using for example as adjective in predication.
|
||||
|
||||
-- Depending on the tense verbs conjugate according to combinations
|
||||
-- of gender, person and number of the verb objects.
|
||||
-- Participles (Present and PastRus) and Gerund forms are not included in the
|
||||
-- current description. This is the verb type used in the lexicon:
|
||||
|
||||
oper Verbum : Type = { s: VerbForm => Str ; asp : Aspect };
|
||||
|
||||
param
|
||||
|
||||
VerbForm = VFORM Voice VerbConj ;
|
||||
VerbConj = VIND GenNum VTense | VIMP Number Person | VINF | VSUB GenNum ;
|
||||
VTense = VPresent Person | VPast | VFuture Person ;
|
||||
|
||||
oper
|
||||
getVTense : RusTense -> Person -> VTense= \t,p ->
|
||||
case t of { Present => VPresent p ; PastRus => VPast; Future => VFuture p } ;
|
||||
|
||||
getTense : Tense -> RusTense= \t ->
|
||||
case t of { Pres => Present ; Fut => Future; _ => PastRus} ;
|
||||
|
||||
|
||||
getVoice: VerbForm -> Voice = \vf ->
|
||||
case vf of {
|
||||
VFORM Act _ => Act;
|
||||
VFORM Pass _ => Pass
|
||||
};
|
||||
oper sebya : Case => Str =table {
|
||||
Nom => "";
|
||||
Gen => "себя";
|
||||
Dat=> "себе";
|
||||
Acc => "себя";
|
||||
Inst => "собой";
|
||||
Prep =>"себе"};
|
||||
|
||||
Verb : Type = {s : ClForm => GenNum => Person => Str ; asp : Aspect ; w: Voice} ;
|
||||
-- Verb phrases are discontinuous: the parts of a verb phrase are
|
||||
-- (s) an inflected verb, (s2) verb adverbials (not negation though), and
|
||||
-- (s3) complement. This discontinuity is needed in sentence formation
|
||||
-- to account for word order variations.
|
||||
|
||||
VerbPhrase : Type = Verb ** {s2: Str; s3 : Gender => Number => Str ;
|
||||
negBefore: Bool} ;
|
||||
|
||||
|
||||
-- This is one instance of Gazdar's *slash categories*, corresponding to his
|
||||
-- $S/NP$.
|
||||
-- We cannot have - nor would we want to have - a productive slash-category former.
|
||||
-- Perhaps a handful more will be needed.
|
||||
--
|
||||
-- Notice that the slash category has the same relation to sentences as
|
||||
-- transitive verbs have to verbs: it's like a *sentence taking a complement*.
|
||||
|
||||
SlashNounPhrase = Clause ** Complement ;
|
||||
Clause = {s : Polarity => ClForm => Str} ;
|
||||
|
||||
-- This is the traditional $S -> NP VP$ rule.
|
||||
|
||||
predVerbPhrase : NounPhrase -> VerbPhrase -> SlashNounPhrase =
|
||||
\Ya, tebyaNeVizhu -> { s = \\b,clf =>
|
||||
let
|
||||
{ ya = Ya.s ! (mkPronForm Nom No NonPoss);
|
||||
khorosho = tebyaNeVizhu.s2;
|
||||
vizhu = tebyaNeVizhu.s ! clf !(gNum (pgen2gen Ya.g) Ya.n)! Ya.p;
|
||||
tebya = tebyaNeVizhu.s3 ! (pgen2gen Ya.g) ! Ya.n
|
||||
}
|
||||
in
|
||||
ya ++ khorosho ++ vizhu ++ tebya;
|
||||
s2= "";
|
||||
c = Nom
|
||||
} ;
|
||||
|
||||
-- Questions are either direct ("Ты счастлив?")
|
||||
-- or indirect ("Потом он спросил счастлив ли ты").
|
||||
|
||||
param
|
||||
QuestForm = DirQ | IndirQ ;
|
||||
|
||||
---- The order of sentence is needed already in $VP$.
|
||||
--
|
||||
-- Order = ODir | OQuest ;
|
||||
|
||||
oper
|
||||
getActVerbForm : ClForm -> Gender -> Number -> Person -> VerbForm = \clf,g,n, p -> case clf of
|
||||
{ ClIndic Future _ => VFORM Act (VIND (gNum g n) (VFuture p));
|
||||
ClIndic PastRus _ => VFORM Act (VIND (gNum g n) VPast);
|
||||
ClIndic Present _ => VFORM Act (VIND (gNum g n) (VPresent p));
|
||||
ClCondit => VFORM Act (VSUB (gNum g n));
|
||||
ClInfinit => VFORM Act VINF ;
|
||||
ClImper => VFORM Act (VIMP n p)
|
||||
};
|
||||
|
||||
getPassVerbForm : ClForm -> Gender -> Number -> Person -> VerbForm = \clf,g,n, p -> case clf of
|
||||
{ ClIndic Future _ => VFORM Pass (VIND (gNum g n) (VFuture p));
|
||||
ClIndic PastRus _ => VFORM Pass (VIND (gNum g n) VPast);
|
||||
ClIndic Present _ => VFORM Pass (VIND (gNum g n) (VPresent p));
|
||||
ClCondit => VFORM Pass (VSUB (gNum g n));
|
||||
ClInfinit => VFORM Pass VINF ;
|
||||
ClImper => VFORM Pass (VIMP n p)
|
||||
};
|
||||
|
||||
|
||||
--2 For $Adjective$
|
||||
param
|
||||
AdjForm = AF Case Animacy GenNum | AdvF;
|
||||
|
||||
oper
|
||||
Complement = {s2 : Str ; c : Case} ;
|
||||
|
||||
oper Refl ={s: Case => Str};
|
||||
oper sam: Refl=
|
||||
{s = table{
|
||||
Nom => "сам";
|
||||
Gen => "себя";
|
||||
Dat => "себе";
|
||||
Acc => "себя";
|
||||
Inst => "собой";
|
||||
Prepos => "себе";
|
||||
Prepos2 => "себе" -- +++ MG_UR: added +++
|
||||
}
|
||||
};
|
||||
|
||||
pgNum : PronGen -> Number -> GenNum = \g,n ->
|
||||
case n of
|
||||
{ Sg => case g of
|
||||
{ PGen Fem => ASg Fem ;
|
||||
PGen Masc => ASg Masc ;
|
||||
PGen Neut => ASg Neut ;
|
||||
_ => ASg Masc } ; -- assuming pronoun "I" is a male
|
||||
Pl => APl
|
||||
} ;
|
||||
-- _ => variants {ASg Masc ; ASg Fem} } ;
|
||||
-- "variants" version cause "no term variants" error during linearization
|
||||
|
||||
|
||||
|
||||
oper numGNum : GenNum -> Number = \gn ->
|
||||
case gn of { APl => Pl ; _ => Sg } ;
|
||||
|
||||
oper genGNum : GenNum -> Gender = \gn ->
|
||||
case gn of { ASg Fem => Fem; ASg Masc => Masc; _ => Neut } ;
|
||||
|
||||
oper numAF: AdjForm -> Number = \af ->
|
||||
case af of { AdvF => Sg; AF _ _ gn => (numGNum gn) } ;
|
||||
|
||||
oper genAF: AdjForm -> Gender = \af ->
|
||||
case af of { AdvF => Neut; AF _ _ gn => (genGNum gn) } ;
|
||||
|
||||
oper caseAF: AdjForm -> Case = \af ->
|
||||
case af of { AdvF => Nom; AF c _ _ => c } ;
|
||||
|
||||
-- The Degree parameter should also be more complex, since most Russian
|
||||
-- adjectives have two comparative forms:
|
||||
-- attributive (syntactic (compound), declinable) -
|
||||
-- "более высокий" (corresponds to "more high")
|
||||
-- and predicative (indeclinable)- "выше" (higher) and more than one
|
||||
-- superlative forms: "самый высокий" (corresponds to "the most high") -
|
||||
-- "высочайший" (the highest).
|
||||
|
||||
-- Even one more parameter independent of the degree can be added,
|
||||
-- since Russian adjectives in the positive degree also have two forms:
|
||||
-- long (attributive and predicative) - "высокий" (high) and short (predicative) - "высок"
|
||||
-- although this parameter will not be exactly orthogonal to the
|
||||
-- degree parameter.
|
||||
-- Short form has no case declension, so in principle
|
||||
-- it can be considered as an additional case.
|
||||
|
||||
-- Note: although the predicative usage of the long
|
||||
-- form is perfectly grammatical, it can have a slightly different meaning
|
||||
-- compared to the short form.
|
||||
-- For example: "он - больной" (long, predicative) vs.
|
||||
-- "он - болен" (short, predicative).
|
||||
|
||||
--3 Adjective phrases
|
||||
--
|
||||
-- An adjective phrase may contain a complement, e.g. "моложе Риты".
|
||||
-- Then it is used as postfix in modification, e.g. "человек, моложе Риты".
|
||||
|
||||
IsPostfixAdj = Bool ;
|
||||
|
||||
|
||||
-- Simple adjectives are not postfix:
|
||||
|
||||
-- Adjective type includes both non-degree adjective classes:
|
||||
-- possesive ("мамин"[mother's], "лисий" [fox'es])
|
||||
-- and relative ("русский" [Russian]) adjectives.
|
||||
|
||||
Adjective : Type = {s : AdjForm => Str} ;
|
||||
|
||||
-- A special type of adjectives just having positive forms
|
||||
-- (for semantic reasons) is useful, e.g. "финский".
|
||||
|
||||
AdjPhrase = Adjective ** {p : IsPostfixAdj} ;
|
||||
|
||||
|
||||
mkAdjPhrase : Adjective -> IsPostfixAdj -> AdjPhrase = \novuj ,p -> novuj ** {p = p} ;
|
||||
|
||||
----2 For $Relative$
|
||||
--
|
||||
-- RAgr = RNoAg | RAg {n : Number ; p : Person} ;
|
||||
-- RCase = RPrep | RC Case ;
|
||||
--
|
||||
--2 For $Numeral$
|
||||
|
||||
param DForm = unit | teen | ten | hund ;
|
||||
param Place = attr | indep ;
|
||||
param Size = nom | sgg | plg ;
|
||||
--param Gend = masc | fem | neut ;
|
||||
oper mille : Size => Str = table {
|
||||
{nom} => "тысяча" ;
|
||||
{sgg} => "тысячи" ;
|
||||
_ => "тысяч"} ;
|
||||
|
||||
oper gg : Str -> Gender => Str = \s -> table {_ => s} ;
|
||||
|
||||
-- CardOrd = NCard | NOrd ;
|
||||
|
||||
----2 Transformations between parameter types
|
||||
--
|
||||
|
||||
oper
|
||||
|
||||
numSF: SubstForm -> Number = \sf -> case sf of
|
||||
{
|
||||
SF Sg _ => Sg ;
|
||||
_ => Pl
|
||||
} ;
|
||||
|
||||
caseSF: SubstForm -> Case = \sf -> case sf of
|
||||
{
|
||||
SF _ Nom => Nom ;
|
||||
SF _ Gen => Gen ;
|
||||
SF _ Dat => Dat ;
|
||||
SF _ Inst => Inst ;
|
||||
SF _ Acc => Acc ;
|
||||
SF _ Prepos => Prepos ;
|
||||
SF _ Prepos2 => Prepos2 -- +++ MG_UR: added +++
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,134 +1,135 @@
|
||||
--# -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} ;
|
||||
almost_AdA = {s= "почти"} ;
|
||||
almost_AdN = {s= "почти"} ;
|
||||
although_Subj = ss "хотя" ;
|
||||
always_AdV = ss "всегда" ;
|
||||
and_Conj = ss "и" ** {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} ;
|
||||
everybody_NP = mkNP Pl (UseN ((eEnd_Decl "вс")**{lock_N=<>})) ;
|
||||
everything_NP = UsePron (pronVseInanimate ** {lock_Pron=<>}) ;
|
||||
everywhere_Adv = ss "везде" ;
|
||||
few_Det = (ij_EndK_G_KH_Decl "немног") **{lock_Det= <>; n= Sg; g = PNoGen; c = Nom}; -- AMalenkij
|
||||
first_Ord = (uy_j_EndDecl "перв" ) ** {lock_A = <>}; --AStaruyj
|
||||
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};
|
||||
i_Pron = pronYa ;
|
||||
if_Subj = ss "если" ;
|
||||
in8front_Prep = { s = "перед" ; c = Inst};
|
||||
in_Prep = { s = "в" ; c = Prepos };
|
||||
it_Pron = pronOno ;
|
||||
less_CAdv = ss "менее" ;
|
||||
many_Det = mnogoSgDet ** {n = Sg; g = (PGen Neut); c= Gen} ;
|
||||
more_CAdv = ss "более" ;
|
||||
most_Predet = bolshinstvoSgDet ** {n = Sg; g = (PGen Neut); c= Gen} ;
|
||||
-- inanimate, Sg: "большинство телефонов безмолству-ет"
|
||||
-- most8many_Det = bolshinstvoPlDet ** {n = Pl; g = (PGen Neut); c= Gen} ;
|
||||
-- animate, Pl: "большинство учащихся хорошо подготовлен-ы"
|
||||
much_Det = mnogoSgDet ** {n = Sg; g = (PGen Neut); c= Gen} ; -- same as previous
|
||||
must_VV = verbDolzhen ;
|
||||
no_Phr = ss ["Нет ."] ;
|
||||
on_Prep = { s = "на" ; c = Prepos };
|
||||
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 };
|
||||
or_Conj = ss "или" ** {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} ;
|
||||
somePl_Det = nekotorujDet ** {n = Pl; g = PNoGen; c= Nom} ;
|
||||
something_NP = UsePron (pronChtoTo** {lock_Pron=<> }) ;
|
||||
somewhere_Adv = ss "где-нибудь" ;
|
||||
these_NP = UsePron (pronEti** {lock_Pron = <>}); -- missing in Russian
|
||||
those_NP = UsePron (pronTe** {lock_Pron = <>}); -- missing in Russian
|
||||
that_Quant = totDet ** {n = Sg; g = PNoGen; c= Nom} ;
|
||||
that_NP = det2NounPhrase totDet ; -- inanimate form only
|
||||
there_Adv = ss "там" ;
|
||||
there7to_Adv = ss "туда" ;
|
||||
there7from_Adv = ss "оттуда" ;
|
||||
therefore_PConj = ss "следовательно" ;
|
||||
-- these_NDet = etotDet ** { g = PNoGen; c= Nom} ;
|
||||
-- they8fem_NP = UsePron pronOni Animate;
|
||||
they_Pron = pronOni;
|
||||
this_Quant = etotDet ** {n = Sg; g = PNoGen; c= Nom} ;
|
||||
this_NP = det2NounPhrase etotDet ; -- inanimate form only
|
||||
-- those_NDet = totDet ** {g = PNoGen; c= Nom} ;
|
||||
-- thou_NP = UsePron pronTu Animate;
|
||||
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 ;
|
||||
whatPl_IP = pron2NounPhraseNum pronChto Inanimate Pl;
|
||||
whatSg_IP = pron2NounPhraseNum pronChto Inanimate Sg;
|
||||
when_IAdv = ss "когда" ;
|
||||
when_Subj = ss "когда" ;
|
||||
where_IAdv = ss "где" ;
|
||||
whichPl_IDet = kotorujDet ** {n = Pl; g = PNoGen; c= Nom} ;
|
||||
whichSg_IDet = kotorujDet ** {n = Sg; 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;
|
||||
yes_Phr = ss ["Да ."] ;
|
||||
youSg_Pron = pronVu;
|
||||
youPol_Pron = pronVu;
|
||||
|
||||
--- 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
|
||||
}
|
||||
|
||||
--# -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} ;
|
||||
almost_AdA = {s= "почти"} ;
|
||||
almost_AdN = {s= "почти"} ;
|
||||
although_Subj = ss "хотя" ;
|
||||
always_AdV = ss "всегда" ;
|
||||
and_Conj = ss "и" ** {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} ;
|
||||
everybody_NP = mkNP Pl (UseN ((eEnd_Decl "вс")**{lock_N=<>})) ;
|
||||
everything_NP = UsePron (pronVseInanimate ** {lock_Pron=<>}) ;
|
||||
everywhere_Adv = ss "везде" ;
|
||||
few_Det = (ij_EndK_G_KH_Decl "немног") **{lock_Det= <>; n= Sg; g = PNoGen; c = Nom}; -- AMalenkij
|
||||
first_Ord = (uy_j_EndDecl "перв" ) ** {lock_A = <>}; --AStaruyj
|
||||
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};
|
||||
i_Pron = pronYa ;
|
||||
if_Subj = ss "если" ;
|
||||
in8front_Prep = { s = "перед" ; c = Inst};
|
||||
--in_Prep = { s = "в" ; c = Prepos };
|
||||
in_Prep = { s = "в" ; c = Prepos2 } ; -- +++ MG_UR: new case Prepos2 introduced! +++
|
||||
it_Pron = pronOno ;
|
||||
less_CAdv = ss "менее" ;
|
||||
many_Det = mnogoSgDet ** {n = Sg; g = (PGen Neut); c= Gen} ;
|
||||
more_CAdv = ss "более" ;
|
||||
most_Predet = bolshinstvoSgDet ** {n = Sg; g = (PGen Neut); c= Gen} ;
|
||||
-- inanimate, Sg: "большинство телефонов безмолству-ет"
|
||||
-- most8many_Det = bolshinstvoPlDet ** {n = Pl; g = (PGen Neut); c= Gen} ;
|
||||
-- animate, Pl: "большинство учащихся хорошо подготовлен-ы"
|
||||
much_Det = mnogoSgDet ** {n = Sg; g = (PGen Neut); c= Gen} ; -- same as previous
|
||||
must_VV = verbDolzhen ;
|
||||
no_Phr = ss ["Нет ."] ;
|
||||
--on_Prep = { s = "на" ; c = Prepos };
|
||||
on_Prep = { s = "на" ; c = Prepos2 }; -- +++ MG_UR: new case Prepos2 introduced! +++
|
||||
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 };
|
||||
or_Conj = ss "или" ** {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} ;
|
||||
somePl_Det = nekotorujDet ** {n = Pl; g = PNoGen; c= Nom} ;
|
||||
something_NP = UsePron (pronChtoTo** {lock_Pron=<> }) ;
|
||||
somewhere_Adv = ss "где-нибудь" ;
|
||||
these_NP = UsePron (pronEti** {lock_Pron = <>}); -- missing in Russian
|
||||
those_NP = UsePron (pronTe** {lock_Pron = <>}); -- missing in Russian
|
||||
that_Quant = totDet ** {n = Sg; g = PNoGen; c= Nom} ;
|
||||
that_NP = det2NounPhrase totDet ; -- inanimate form only
|
||||
there_Adv = ss "там" ;
|
||||
there7to_Adv = ss "туда" ;
|
||||
there7from_Adv = ss "оттуда" ;
|
||||
therefore_PConj = ss "следовательно" ;
|
||||
-- these_NDet = etotDet ** { g = PNoGen; c= Nom} ;
|
||||
-- they8fem_NP = UsePron pronOni Animate;
|
||||
they_Pron = pronOni;
|
||||
this_Quant = etotDet ** {n = Sg; g = PNoGen; c= Nom} ;
|
||||
this_NP = det2NounPhrase etotDet ; -- inanimate form only
|
||||
-- those_NDet = totDet ** {g = PNoGen; c= Nom} ;
|
||||
-- thou_NP = UsePron pronTu Animate;
|
||||
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 ;
|
||||
whatPl_IP = pron2NounPhraseNum pronChto Inanimate Pl;
|
||||
whatSg_IP = pron2NounPhraseNum pronChto Inanimate Sg;
|
||||
when_IAdv = ss "когда" ;
|
||||
when_Subj = ss "когда" ;
|
||||
where_IAdv = ss "где" ;
|
||||
whichPl_IDet = kotorujDet ** {n = Pl; g = PNoGen; c= Nom} ;
|
||||
whichSg_IDet = kotorujDet ** {n = Sg; 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;
|
||||
yes_Phr = ss ["Да ."] ;
|
||||
youSg_Pron = pronVu;
|
||||
youPol_Pron = pronVu;
|
||||
|
||||
--- 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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user