diff --git a/lib/resource-1.0/russian/IdiomRus.gf b/lib/resource-1.0/russian/IdiomRus.gf index 451e9aca7..f15741fdf 100644 --- a/lib/resource-1.0/russian/IdiomRus.gf +++ b/lib/resource-1.0/russian/IdiomRus.gf @@ -22,7 +22,17 @@ concrete IdiomRus of Idiom = CatRus ** open Prelude, ResRus, MorphoRus in { } } ; - ImpersCl vp = {s= \\ b, clf => let ne= case b of {Pos =>[]; Neg =>""} + CleftAdv adv sen = {s= \\ b, clf => let ne= case b of {Pos =>[]; Neg =>"не"} + in + "это" ++ ne ++ adv.s ++ sen.s }; + + CleftNP np rs = {s= \\ b, clf => let ne= case b of {Pos =>[]; Neg =>"не"} + in + "это" ++ ne ++ np.s ! (PF Nom No NonPoss) ++ rs.s ! ASg Masc!Nom!Animate }; + + ImpPl1 vp = {s= "давайте" ++ vp.s! (ClIndic Future Simul)! APl ! P2 }; + + ImpersCl vp = {s= \\ b, clf => let ne= case b of {Pos =>[]; Neg =>"не"} in ne ++ vp.s! clf! (ASg Neut) ! P3 }; diff --git a/lib/resource-1.0/russian/LangRus.gf b/lib/resource-1.0/russian/LangRus.gf index 0556d605d..a91740233 100644 --- a/lib/resource-1.0/russian/LangRus.gf +++ b/lib/resource-1.0/russian/LangRus.gf @@ -1,9 +1,17 @@ --# -path=.:../abstract:../common:../../prelude concrete LangRus of Lang = - GrammarRus, - LexiconRus ** { - - flags startcat = Phr ; unlexer = text ; lexer = text ; - - } ; + NounRus, + VerbRus, + AdjectiveRus, + AdverbRus, + NumeralRus, + SentenceRus, + QuestionRus, + RelativeRus, + ConjunctionRus, + PhraseRus, + TextX, + StructuralRus, + IdiomRus, + LexiconRus ** { flags startcat = Phr ; unlexer = text ; lexer = text ;} ; diff --git a/lib/resource-1.0/russian/LexiconRus.gf b/lib/resource-1.0/russian/LexiconRus.gf index 2958b9b6e..55c440902 100644 --- a/lib/resource-1.0/russian/LexiconRus.gf +++ b/lib/resource-1.0/russian/LexiconRus.gf @@ -9,18 +9,18 @@ flags coding=utf8 ; lin airplane_N = nTelefon "самолет" ; - answer_V2S = tvDir (mkRegVerb imperfective first "отвеча" "ю" "отвечал" "отвечай" "отвечать" ); + answer_V2S = dirV2 (regV imperfective first "отвеча" "ю" "отвечал" "отвечай" "отвечать" ); apartment_N = nMashina "квартир" ; apple_N = nChislo "яблок" ; art_N = nChislo "искусств" ; - ask_V2Q = tvDir (mkRegVerb imperfective first "спрашива" "ю" "спрашивал" "спрашивай" "спрашивать") ; + ask_V2Q = dirV2 (regV imperfective first "спрашива" "ю" "спрашивал" "спрашивай" "спрашивать") ; baby_N = nMalush "малыш"; bad_A = AKakoj_Nibud "плох" "" "хуже"; bank_N = nBank "банк" ; beautiful_A = AStaruyj "красив" "красивее"; - become_VA = mkRegVerb perfective second "станов" "лю" "стал" "стань" "стать" ; + become_VA = regV perfective second "станов" "лю" "стал" "стань" "стать" ; beer_N = nChislo "пив" ; - beg_V2V = tvDir (mkRegVerb imperfective second "про" "шу" "просил" "проси" "просить" ); + beg_V2V = dirV2 (regV imperfective second "про" "шу" "просил" "проси" "просить" ); big_A = AKakoj_Nibud "больш" "" "больше" ; bike_N = nTelefon "велосипед" ; bird_N = nEdinica "птиц" ; @@ -32,12 +32,12 @@ lin boss_N = nStomatolog "начальник" ; boy_N = nStomatolog "мальчик" ; bread_N = nAdres "хлеб" ; - break_V2 = tvDir (mkRegVerb imperfective first "прерыва" "ю" "прерывал" "прерывай" "прерывать" ); + break_V2 = dirV2 (regV imperfective first "прерыва" "ю" "прерывал" "прерывай" "прерывать" ); broad_A = AMalenkij "широк" "шире"; brother_N2 = mkN2 (nBrat ",брат") ; brown_A = AStaruyj "коричнев" "коричневее"; butter_N = nChislo "масл"; - buy_V2 = tvDir (mkRegVerb imperfective first "покупа" "ю" "покупал" "покупай" "покупать" ); + buy_V2 = dirV2 (regV imperfective first "покупа" "ю" "покупал" "покупай" "покупать" ); camera_N = nMashina "kamer" ; cap_N = nNoga "чашк" ; -- чаш-ек Pl-Gen car_N = nMashina "машин" ; @@ -51,29 +51,29 @@ child_N = mkN "ребёнок" "ребёнка" "ребёнку" "ребёнка city_N = nAdres "город" ; clean_A = AStaruyj "чист" "чище"; clever_A = AStaruyj "умн" "умнее"; - close_V2= tvDir (mkRegVerb imperfective first "закрыва" "ю" "закрывал" "закрывай" "закрывать" ); + close_V2= dirV2 (regV imperfective first "закрыва" "ю" "закрывал" "закрывай" "закрывать" ); coat_N = mkIndeclinableNoun "пальто" masculine inanimate ; cold_A = AStaruyj "холодн" "холоднее"; - come_V = mkRegVerb imperfective first "прихо" "жу" "приходил" "приходи" "приходить" ; + come_V = regV imperfective first "прихо" "жу" "приходил" "приходи" "приходить" ; computer_N = nTelefon "компьютер" ; country_N = nMashina "стран" ; cousin_N = nTelefon "кузен" ; cow_N = nMashina "коров" ; -die_V = mkRegVerb imperfective first "умира" "ю" "умирал" "умрай" "умирать" ; +die_V = regV imperfective first "умира" "ю" "умирал" "умрай" "умирать" ; dirty_A = AStaruyj "грязн" "грязнее" ; doctor_N = nAdres "доктор" ; dog_N = nNoga "собак" ; door_N = nBol "двер" ; -drink_V2 = tvDir (mkRegVerb imperfective firstE "пь" "ю" "пил" "пей" "пить" ); -eat_V2 = tvDir (mkRegVerb imperfective first "куша" "ю" "кушал" "кушай" "кушать" ); +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= mkRegVerb imperfective second "бо" "ю" "боял" "бой" "боять" ; -find_V2 = tvDir (mkRegVerb imperfective second "нахо" "жу" "находил" "находи" "находить" ); +fear_VS= regV imperfective second "бо" "ю" "боял" "бой" "боять" ; +find_V2 = dirV2 (regV imperfective second "нахо" "жу" "находил" "находи" "находить" ); fish_N = nMashina "рыб" ; floor_N = nTelefon "пол" ; -forget_V2= tvDir (mkRegVerb imperfective first "забыва" "ю" "забывал" "забывай" "забывать" ); +forget_V2= dirV2 (regV imperfective first "забыва" "ю" "забывал" "забывай" "забывать" ); fridge_N = nBank "холодильник" ; friend_N = mkN "друг" "друга" "другу" "друга" "другом" "друге" "друзья" "друзей" "друзьям" "друзей" "дузьями" "друзьях" masculine animate; fruit_N = nTelefon "фрукт" ; @@ -82,15 +82,15 @@ girl_N = nNoga "девочк" ; glove_N = nNoga "перчатк" ; gold_N = nChislo "золот" ; good_A = AKhoroshij "хорош" "лучше" ; -go_V= mkRegVerb imperfective second "хо" "жу" "ходил" "ходи" "ходить" ; +go_V= regV imperfective second "хо" "жу" "ходил" "ходи" "ходить" ; green_A = AStaruyj "зелен" "зеленее" ; harbour_N = nTelefon "залив" ; -hate_V2= tvDir (mkRegVerb imperfective second "ненави" "жу" "ненавидел" "ненавидь" "ненавидеть" ); +hate_V2= dirV2 (regV imperfective second "ненави" "жу" "ненавидел" "ненавидь" "ненавидеть" ); hat_N = nMashina "шляп" ; -have_V2= tvDir (mkRegVerb imperfective first "име" "ю" "имел" "имей" "иметь" ); -hear_V2= tvDir (mkRegVerb imperfective first "слуша" "ю" "слушал" "слушай" "слушать" ); +have_V2= dirV2 (regV imperfective first "име" "ю" "имел" "имей" "иметь" ); +hear_V2= dirV2 (regV imperfective first "слуша" "ю" "слушал" "слушай" "слушать" ); hill_N = nTelefon "холм" ; -hope_VS= mkRegVerb imperfective first "наде" "ю" "надеял" "надей" "надеять" ; +hope_VS= regV imperfective first "наде" "ю" "надеял" "надей" "надеять" ; horse_N = nBol "лошад" ; hot_A = AKhoroshij "горяч" "горячее" ; house_N = nAdres "дом" ; @@ -98,19 +98,19 @@ important_A = AStaruyj "важн" "важнее" ; industry_N = nChislo "производств" ; iron_N = nChislo "желез" ; king_N = mkN "король" "короля" "королю" "короля" "королем" "короле" "короли" "королей" "королям" "королей" "королями" "королях" masculine animate; -know_V2= tvDir (mkRegVerb imperfective first "зна" "ю" "знал" "знай" "знать" ); +know_V2= dirV2 (regV imperfective first "зна" "ю" "знал" "знай" "знать" ); lake_N = nChislo "озер" ; lamp_N = nMashina "ламп" ; -learn_V2= tvDir (mkRegVerb imperfective second "уч" "у" "учил" "учи" "учить" ); +learn_V2= dirV2 (regV imperfective second "уч" "у" "учил" "учи" "учить" ); leather_N = nEdinica "кож" ; -leave_V2= tvDir (mkRegVerb imperfective second "ухож" "у" "уходил" "уходи" "уходить" ); -like_V2= tvDir (mkRegVerb imperfective second "нрав" "лю" "нравил" "нравь" "нравить" ); -listen_V2= tvDir (mkRegVerb imperfective first "слуша" "ю" "слушал" "слушай" "слушать" ); -live_V= mkRegVerb imperfective firstE "жив" "у" "жил" "живи" "жить" ; +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 = tvDir (mkRegVerb imperfective first "теря" "ю" "терял" "теряй" "терять" ); +lose_V2 = dirV2 (regV imperfective first "теря" "ю" "терял" "теряй" "терять" ); love_N = nBol "любов" ; -love_V2= tvDir (mkRegVerb imperfective second "люб" "лю" "любил" "люби" "любить" ); +love_V2= dirV2 (regV imperfective second "люб" "лю" "любил" "люби" "любить" ); man_N = nStomatolog "человек" ; meat_N =nChislo "мяс" ; milk_N = nChislo "молок" ; @@ -123,18 +123,18 @@ new_A = AStaruyj "нов" "новее" ; newspaper_N = nMashina "газет" ; oil_N = nBol "нефть" ; old_A = AStaruyj "стар" "старше" ; -open_V2= tvDir (mkRegVerb imperfective first "открыва" "ю" "открывал" "открывай" "открывать" ); +open_V2= dirV2 (regV imperfective first "открыва" "ю" "открывал" "открывай" "открывать" ); paper_N = nNoga "бумаг" ; peace_N = nTelefon "мир" ; pen_N = nNoga "ручк" ; planet_N = nMashina "планет" ; plastic_N = nMashina "пластмасс" ; -play_V2 = tvDir (mkRegVerb imperfective first "игра" "ю" "играл" "играй" "играть" ); +play_V2 = dirV2 (regV imperfective first "игра" "ю" "играл" "играй" "играть" ); policeman_N = nTelefon "милиционер" ; priest_N = nStomatolog "священник" ; queen_N = nMashina "королев" ; radio_N = mkIndeclinableNoun "радио" neuter inanimate; -read_V2 = tvDir (mkRegVerb imperfective first "чита" "ю" "читал" "читай" "читать" ); +read_V2 = dirV2 (regV imperfective first "чита" "ю" "читал" "читай" "читать" ); red_A = AStaruyj "красн" "краснее" ; religion_N = nMalyariya "религи" ; restaurant_N = nTelefon "ресторан" ; @@ -142,15 +142,15 @@ river_N = nNoga "рек" ; rock_N = nUroven "кам" ; roof_N = nEdinica "крыш" ; rubber_N = nMashina "резин" ; -run_V = mkRegVerb imperfective first "бега" "ю" "бегал" "бегай" "бегать" ; -say_VS = mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить" ; +run_V = regV imperfective first "бега" "ю" "бегал" "бегай" "бегать" ; +say_VS = regV imperfective second "говор" "ю" "говорил" "говори" "говорить" ; school_N = nMashina "школ" ; science_N = nEdinica "наук" ; sea_N = nProizvedenie "мор" ; -seek_V2 = tvDir (mkRegVerb imperfective first "ищ" "у" "искал" "ищи" "искать" ); -see_V2 = tvDir (mkRegVerb imperfective second "виж" "у" "видел" "видь" "видеть" ); -sell_V3 = tvDirDir (mkRegVerb imperfective firstE "прода" "ю" "продавал" "продавай" "продавать" ); -send_V3 = tvDirDir (mkRegVerb imperfective first "посыла" "ю" "посылал" "посылай" "посылать" ); +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 "рубашк" ; @@ -159,11 +159,11 @@ shop_N = nTelefon "магазин" ; short_A = AMalenkij "коротк" "короче" ; silver_N = nChislo "серебр" ; sister_N = nMashina "сестр" ; -sleep_V = mkRegVerb imperfective second "сп" "лю" "спал" "спи" "спать" ; +sleep_V = regV imperfective second "сп" "лю" "спал" "спи" "спать" ; small_A = AMalenkij "маленьк" "меньше" ; snake_N = nTetya"зме" ; sock_N = nPotolok "нос" ; -speak_V2 = tvDir (mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить" ); +speak_V2 = dirV2 (regV imperfective second "говор" "ю" "говорил" "говори" "говорить" ); star_N = nMashina "звезд" ; steel_N = nBol "стал" ; stone_N = nNol "камен" ; @@ -171,47 +171,47 @@ stove_N = nBol "печ" ; student_N = nTelefon "студент" ; stupid_A = AMolodoj "тупой" "тупее" ; sun_N = mkN "солнце" "солнца" "солнцу" "солнце" "солнцем" "солнце" "солнца" "солнц" "солнцам" "солнца" "солнцами" "солнцах" neuter inanimate; -switch8off_V2 = tvDir (mkRegVerb imperfective first "выключа" "ю" "выключал" "выключай" "выключать") ; -switch8on_V2 = tvDir (mkRegVerb imperfective first "включа" "ю" "включал" "включай" "включать") ; +switch8off_V2 = dirV2 (regV imperfective first "выключа" "ю" "выключал" "выключай" "выключать") ; +switch8on_V2 = dirV2 (regV imperfective first "включа" "ю" "включал" "включай" "включать") ; table_N = nTelefon "стол" ; teacher_N = nNol "учител" ; -teach_V2 = tvDir (mkRegVerb imperfective second "уч" "у" "учил" "учи" "учить" ); +teach_V2 = dirV2 (regV imperfective second "уч" "у" "учил" "учи" "учить" ); television_N = nProizvedenie "телевидени" ; thick_A = AStaruyj "толст" "толще" ; thin_A = AMalenkij "тонк" "тоньше" ; train_N = nAdres "поезд" ; -travel_V = mkRegVerb imperfective first "путешеству" "ю" "путешествовал" "путешествуй" "путешествовать" ; +travel_V = regV imperfective first "путешеству" "ю" "путешествовал" "путешествуй" "путешествовать" ; tree_N = nChislo "дерев" ; --trousers_N = mkN "" "" "" "" "" "" "штаны" "штанов" "штанам" "штаны" "штанами" "штанах" masculine inanimate; ugly_A = AStaruyj "некрасив" "некрасивее" ; -understand_V2 = tvDir (mkRegVerb imperfective first "понима" "ю" "понимал" "понимай" "понимать" ); +understand_V2 = dirV2 (regV imperfective first "понима" "ю" "понимал" "понимай" "понимать" ); university_N = nTelefon "университет" ; village_N = nMalyariya "деревн" ; -wait_V2 = tvDir (mkRegVerb imperfective firstE "жд" "у" "ждал" "жди" "ждать" ); -walk_V = mkRegVerb imperfective first "гуля" "ю" "гулял" "гуляй" "гулять" ; +wait_V2 = dirV2 (regV imperfective firstE "жд" "у" "ждал" "жди" "ждать" ); +walk_V = regV imperfective first "гуля" "ю" "гулял" "гуляй" "гулять" ; warm_A = AStaruyj "тёпл" "теплее" ; war_N = nMashina "войн" ; -watch_V2 = tvDir (mkRegVerb imperfective second "смотр" "ю" "смотрел" "смотри" "смотреть" ); +watch_V2 = dirV2 (regV imperfective second "смотр" "ю" "смотрел" "смотри" "смотреть" ); water_N = nMashina "вод" ; white_A = AStaruyj "бел" "белее" ; window_N = nChislo "окн" ; wine_N = nChislo "вин" ; -win_V2 = tvDir (mkRegVerb imperfective first "выигрыва" "ю" "выигрывал" "выигрывай" "выигрывать" ); +win_V2 = dirV2 (regV imperfective first "выигрыва" "ю" "выигрывал" "выигрывай" "выигрывать" ); woman_N = nZhenchina "женщин" ; wood_N = nChislo "дерев" ; -write_V2 = tvDir (mkRegVerb imperfective first "пиш" "у" "писал" "пиши" "писать" ); +write_V2 = dirV2 (regV imperfective first "пиш" "у" "писал" "пиши" "писать" ); yellow_A = AStaruyj "жёлт" "желтее" ; young_A = AMolodoj "молод" "моложе"; - do_V2 = tvDir (mkRegVerb imperfective first "дела" "ю" "делал" "делай" "делать" ); + do_V2 = dirV2 (regV imperfective first "дела" "ю" "делал" "делай" "делать" ); now_Adv = mkAdv "сейчас" ; already_Adv = mkAdv "уже" ; song_N = nTetya "песн" ; - add_V3 = mkV3 (mkRegVerb imperfective first "складыва" "ю" "складывал" "складывай" "складывать" ) "" "в" accusative accusative; + add_V3 = mkV3 (regV imperfective first "складыва" "ю" "складывал" "складывай" "складывать" ) "" "в" accusative accusative; number_N = nChislo "числ" ; - put_V2 = tvDir (mkRegVerb imperfective firstE "клад" "у" "клал" "клади" "класть" ); - stop_V = mkRegVerb imperfective first "останавлива" "ю" "останавливал" "останавливай" "останавливать"; - jump_V = mkRegVerb imperfective first "прыга" "ю" "прыгал" "прыгай" "прыгать" ; + put_V2 = dirV2 (regV imperfective firstE "клад" "у" "клал" "клади" "класть" ); + stop_V = regV imperfective first "останавлива" "ю" "останавливал" "останавливай" "останавливать"; + jump_V = regV imperfective first "прыга" "ю" "прыгал" "прыгай" "прыгать" ; distance_N3 = mkN3 (nProizvedenie "расстоян") from_Prep to_Prep ; @@ -225,11 +225,11 @@ easy_A2V = mkA2 (AMalenkij "легк" "легче") "для" genitive ; empty_A = AMolodoj "пуст" "пустее"; married_A2 = mkA2 (adjInvar "замужем") "за" instructive ; -paint_V2A = tvDir (mkRegVerb imperfective first "рису" "ю" "рисовал" "рисуй" "рисовать" ) ; +paint_V2A = dirV2 (regV imperfective first "рису" "ю" "рисовал" "рисуй" "рисовать" ) ; probable_AS = AStaruyj "возможный" "возможнее"; rain_V0 = idetDozhd verbIdti; -- No such verb in Russian! -talk_V3 = mkV3 (mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить" ) "с" "о" instructive prepositional; -wonder_VQ = mkRegVerb imperfective first "интересу" "ю" "интересовал" "интересуй" "интересовать"; +talk_V3 = mkV3 (regV imperfective second "говор" "ю" "говорил" "говори" "говорить" ) "с" "о" instructive prepositional; +wonder_VQ = regV imperfective first "интересу" "ю" "интересовал" "интересуй" "интересовать"; -- Nouns @@ -323,57 +323,57 @@ wonder_VQ = mkRegVerb imperfective first "интересу" "ю" "интерес -- Verbs - bite_V2 = tvDir (mkRegVerb imperfective first "куса" "ю" "кусал" "кусай" "кусать"); - blow_V = mkRegVerb imperfective first "ду" "ю" "дул" "дуй" "дуть" ; - breathe_V = mkRegVerb imperfective second "дыш" "у" "дышал" "дыши" "дышать" ; - burn_V = mkRegVerb imperfective second "гор" "ю" "горел" "гори" "гореть" ; - count_V2 = tvDir (mkRegVerb imperfective first "счита" "ю" "считал" "считай" "считать" ) ; - cut_V2 = tvDir (mkRegVerb imperfective first "реж" "у" "резал" "режь" "резать" ) ; - dig_V = mkRegVerb imperfective first "копа" "ю" "копал" "копай" "копать" ; + 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 = mkRegVerb imperfective first "пада" "ю" "падал" "падай" "падать" ; + fall_V = regV imperfective first "пада" "ю" "падал" "падай" "падать" ; - fight_V2 = tvDir (mkRegVerb imperfective firstE "дер" "у" "драл" "дери" "драть" ) ; - float_V = mkRegVerb imperfective firstE "плыв" "у" "плыл" "плыви" "плыть" ; - flow_V = mkRegVerb imperfective firstE "тек" "у" "тёк" "теки" "течь" ; - fly_V = mkRegVerb imperfective second "лета" "ю" "летал" "летай" "летать" ; - freeze_V = mkRegVerb imperfective first "замерза" "ю" "замерзал" "замерзай" "замерзать" ; - give_V3 = tvDirDir (mkRegVerb imperfective firstE "да" "ю" "давал" "давай" "давать" ) ; + 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 = tvDir (mkRegVerb imperfective first "ударя" "ю" "ударял" "ударяй" "ударять" ); - hold_V2 = tvDir (mkRegVerb imperfective second "держ" "у" "держал" "держи" "держать" ); - hunt_V2 = tvDir (mkRegVerb imperfective second "охоч" "у" "охотил" "охоть" "охотить" ) ; - kill_V2 = tvDir (mkRegVerb imperfective first "убива" "ю" "убивал" "убивай" "убивать" ) ; + 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 = mkRegVerb imperfective firstE "сме" "ю" "смеял" "смей" "смеять" ; - lie_V = mkRegVerb imperfective firstE "лг" "у" "лгал" "лги" "лгать" ; - play_V = mkRegVerb imperfective first "игра" "ю" "играл" "играй" "играть" ; - pull_V2 = tvDir (mkRegVerb imperfective first "тян" "у" "тянул" "тяни" "тянуть" ) ; - push_V2 = tvDir (mkRegVerb imperfective first "толка" "ю" "толкал" "толкай" "толкать" ); - rub_V2 = tvDir (mkRegVerb imperfective firstE "тр" "у" "тёр" "три" "тереть" ); + 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 = tvDir (mkRegVerb imperfective first "чеш" "у" "чесал" "чеши" "чесать" ) ; + scratch_V2 = dirV2 (regV imperfective first "чеш" "у" "чесал" "чеши" "чесать" ) ; - sew_V = mkRegVerb imperfective firstE "шь" "ю" "шил" "шей" "шить" ; - sing_V = mkRegVerb imperfective firstE "по" "ю" "пел" "пой" "петь" ; + sew_V = regV imperfective firstE "шь" "ю" "шил" "шей" "шить" ; + sing_V = regV imperfective firstE "по" "ю" "пел" "пой" "петь" ; sit_V = mkVerbum imperfective "сижу" "сидишь" "сидит" "сидим" "сидите" "сидят" "сидел" "сиди" "сидеть" ; - smell_V = mkRegVerb imperfective first "пахн" "у" "пахнул" "пахни" "пахнуть" ; - spit_V = mkRegVerb imperfective firstE "плю" "ю" "плевал" "плюй" "плевать" ; - split_V2 = tvDir (mkRegVerb imperfective first "разбива" "ю" "разбивал" "разбей" "разбивать" ) ; - squeeze_V2 = tvDir (mkRegVerb imperfective first "сжима" "ю" "сжимал" "сжимай" "сжимать" ) ; - stab_V2 = tvDir (mkRegVerb imperfective first "кол" "ю" "колол" "коли" "колоть" ) ; - stand_V = mkRegVerb imperfective second "сто" "ю" "стоял" "стой" "стоять" ; - suck_V2 = tvDir (mkRegVerb imperfective firstE "сос" "у" "сосал" "соси" "сосать") ; - swell_V = mkRegVerb imperfective first "опуха" "ю" "опухал" "опухай" "опухать" ; - swim_V = mkRegVerb imperfective first "плава" "ю" "плавал" "плавай" "плавать" ; - think_V = mkRegVerb imperfective first "дума" "ю" "думал" "думай" "думать" ; - throw_V2 = tvDir (mkRegVerb imperfective first "броса" "ю" "бросал" "бросай" "бросать" ) ; - tie_V2 = tvDir (mkRegVerb imperfective first "вяж" "у" "вязал" "вяжи" "вязать") ; - turn_V = mkRegVerb imperfective first "поворачива" "ю" "поворачивал" "поворачивай" "поворачивать" ; - vomit_V = mkRegVerb imperfective firstE "рв" "у" "рвал" "рви" "рвать" ; - wash_V2 = tvDir (mkRegVerb imperfective first "мо" "ю" "мыл" "мой" "мыть" ) ; - wipe_V2 = tvDir (mkRegVerb imperfective first "вытира" "ю" "вытирал" "вытирай" "вытирать" ); + 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 "правильн" "правильнее"; @@ -394,7 +394,7 @@ wonder_VQ = mkRegVerb imperfective first "интересу" "ю" "интерес wet_A = AStaruyj "мокр" "мокрее"; wide_A = AMalenkij "широк" "шире"; -fear_V2 =tvDir (mkRegVerb imperfective first "бо" "ю" "боял" "бой" "боять" ); +fear_V2 =dirV2 (regV imperfective first "бо" "ю" "боял" "бой" "боять" ); paris_PN = mkPN "Париж" Masc Inanimate ; diff --git a/lib/resource-1.0/russian/ParadigmsRus.gf b/lib/resource-1.0/russian/ParadigmsRus.gf index 041feed4b..e5e104126 100644 --- a/lib/resource-1.0/russian/ParadigmsRus.gf +++ b/lib/resource-1.0/russian/ParadigmsRus.gf @@ -90,6 +90,11 @@ oper -- мужчина, мужчины, мужчине, мужчину, мужчиной, мужчине -- мужчины, мужчин, мужчинам, мужчин, мужчинами, мужчинах +-- The regular function captures the variants for some popular nouns +-- endings below: + + regN : Str -> N ; + -- Here are some common patterns. The list is far from complete. @@ -169,6 +174,11 @@ nPepel : Str -> N ; -- masculine, inanimate, ending with "-ел"- "пеп-л -- mkA : ( : Str) -> A ; +-- The regular function captures the variants for some popular adjective +-- endings below: + + regA : Str -> Str -> A ; + -- Invariable adjective is a special case. adjInvar : Str -> A ; -- khaki, mini, hindi, netto @@ -260,9 +270,9 @@ perfective: Aspect ; -- first person from with second person form: -- "я люб-лю", "ты люб-ишь". Stems shoud be the same. -- So the definition for verb "любить" looks like: --- mkRegVerb Imperfective Second "люб" "лю" "любил" "люби" "любить"; +-- regV Imperfective Second "люб" "лю" "любил" "люби" "любить"; - mkRegVerb :Aspect -> Conjugation -> (_,_,_,_,_ : Str) -> V ; + regV :Aspect -> Conjugation -> (_,_,_,_,_ : Str) -> V ; -- For writing an application grammar one usualy doesn't need -- the whole inflection table, since each verb is used in @@ -278,9 +288,9 @@ perfective: Aspect ; -- Two-place verbs, and the special case with direct object. Notice that -- a particle can be included in a $V$. - mkTV : V -> Str -> Case -> V2 ; -- "войти в дом"; "в", accusative + mkV2 : V -> Str -> Case -> V2 ; -- "войти в дом"; "в", accusative mkV3 : V -> Str -> Str -> Case -> Case -> V3 ; -- "сложить письмо в конверт" - tvDir : V -> V2 ; -- "видеть", "любить" + dirV2 : V -> V2 ; -- "видеть", "любить" tvDirDir : V -> V3 ; -- The definitions should not bother the user of the API. So they are @@ -358,6 +368,32 @@ dolzhen = Dolzhen; anim = anim } ** {lock_N = <>} ; + +regN = \ray -> + let + ra = Predef.tk 1 ray ; + y = Predef.dp 1 ray ; + r = Predef.tk 2 ray ; + ay = Predef.dp 2 ray ; + rays = + case y of { + "а" => nMashina ray ; + "ь" => nBol ray ; + "я" => case ay of { + "ия" => nMalyariya ray; + _ => nTetya ray }; + "е" => case ay of { + "ее" => nObezbolivauchee ray ; + "ое" => nZhivotnoe ray ; + _ => nProizvedenie ray }; + "о" => nChislo ray; + _=> nStomatolog ray + } + in + rays ; + + + nMashina = \s -> aEndInAnimateDecl s ** {lock_N = <>}; nEdinica = \s -> ej_aEndInAnimateDecl s ** {lock_N = <>}; nZhenchina = \s -> (aEndAnimateDecl s) ** { g = Fem ; anim = Animate } ** {lock_N = <>}; @@ -392,7 +428,7 @@ dolzhen = Dolzhen; -- An individual-valued function is a common noun together with the --- preposition prefixed to its argument ("клZ+ о' дома"). +-- preposition prefixed to its argument ("клZ+ о' дома"). -- The situation is analogous to two-place adjectives and transitive verbs. -- -- We allow the genitive construction to be used as a variant of @@ -421,6 +457,18 @@ dolzhen = Dolzhen; mkNP = \x,y,z -> UsePN (mkPN x y z) ; -- Adjective definitions + regA = \ray, comp -> + let + ay = Predef.dp 2 ray ; + rays = + case ay of { + "ый" => AStaruyj ray comp; + "ой" => AMolodoj ray comp; + "ий" => AMalenkij ray comp; + _=> AKhoroshij ray comp + } + in + rays ; adjInvar = \s -> { s = \\_,_ => s } ** {lock_A= <>}; @@ -462,7 +510,7 @@ dolzhen = Dolzhen; PRF APl P3 => plP3 }; - mkRegVerb a b c d e f g = verbDecl a b c d e f g ** {lock_V = <>} ; + regV a b c d e f g = verbDecl a b c d e f g ** {lock_V = <>} ; -- defined in morpho.RusU.gf {- mkV a b = extVerb a b ** {lock_V = <>}; -- defined in types.RusU.gf @@ -475,8 +523,8 @@ dolzhen = Dolzhen; VSubj gn => aller.s ! VFORM vox (VSUB gn) }; t = Present ; a = aller.asp ; w = vox ; lock_V = <>} ; -} - mkTV v p cas = v ** {s2 = p ; c = cas; lock_V2 = <>}; - tvDir v = mkTV v [] Acc; + mkV2 v p cas = v ** {s2 = p ; c = cas; lock_V2 = <>}; + dirV2 v = mkV2 v [] Acc; tvDirDir v = mkV3 v "" "" Acc Dat; diff --git a/lib/resource-1.0/russian/SentenceRus.gf b/lib/resource-1.0/russian/SentenceRus.gf index 08d700a8e..1fd376e39 100644 --- a/lib/resource-1.0/russian/SentenceRus.gf +++ b/lib/resource-1.0/russian/SentenceRus.gf @@ -57,7 +57,7 @@ concrete SentenceRus of Sentence = CatRus ** open Prelude, ResRus in { ImpVP inf = {s = \\pol, g,n => let dont = case pol of { - Neg => "don't" ; + Neg => "не" ; _ => [] } in