Russian parches by MG_UR

This commit is contained in:
aarne
2007-12-05 07:13:53 +00:00
parent 01e50c45e4
commit 61d745d928
5 changed files with 4604 additions and 3408 deletions

View File

@@ -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

View File

@@ -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 +++
} ;
}

View File

@@ -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
}