From 29e40b92e149abd3f187f9fae00d5a5580000474 Mon Sep 17 00:00:00 2001 From: Nick Frolov Date: Thu, 7 Jul 2011 17:10:14 +0000 Subject: [PATCH] The stub of Russian Phrasebook is tweaked to start giving sane output --- examples/phrasebook/GreetingsRus.gf | 15 ++--- examples/phrasebook/PhrasebookRus.gf | 4 +- examples/phrasebook/SentencesRus.gf | 3 +- examples/phrasebook/WordsRus.gf | 88 ++++++++++++++-------------- 4 files changed, 55 insertions(+), 55 deletions(-) diff --git a/examples/phrasebook/GreetingsRus.gf b/examples/phrasebook/GreetingsRus.gf index 3c6be0abd..cb6f9a37a 100644 --- a/examples/phrasebook/GreetingsRus.gf +++ b/examples/phrasebook/GreetingsRus.gf @@ -2,13 +2,10 @@ concrete GreetingsRus of Greetings = open Prelude in { flags coding = utf8 ; -lincat - Greeting = SS ; - lin GBye = ss "до свидания" ; GCheers = ss "ура" ; - GDamn = ss "проклинать" ; + GDamn = ss "чёрт" ; GExcuse, GExcusePol = ss "извините" ; GGoodDay = ss "добрый день" ; ---- GGoodEvening = ss "добрый вечер" ; @@ -16,17 +13,17 @@ lin GGoodNight = ss "спокойной ночи" ; GGoodbye = ss "до свидания" ; GHello = ss "привет" ; - GHelp = ss "помощь" ; + GHelp = ss "помогите" ; GHowAreYou = ss "Как поживаете" ; GLookOut = ss "смотреть" ; - GNiceToMeetYou, GNiceToMeetYouPol = ss "приятно встретиться с вами" ; + GNiceToMeetYou, GNiceToMeetYouPol = ss "приятно познакомиться" ; GPleaseGive, GPleaseGivePol = ss "пожалуйста" ; GSeeYouSoon = ss "до скорой встречи" ; GSorry, GSorryPol = ss "Мне жаль" ; GThanks = ss "спасибо" ; GTheCheck = ss "проверить" ; - GCongratulations = ss "Поздравляю"; - GHappyBirthday = ss "С Днем Рождения" ; - GGoodLuck = ss "удача" ; + GCongratulations = ss "поздравляю"; + GHappyBirthday = ss "с днем рождения" ; + GGoodLuck = ss "желаю удачи" ; } diff --git a/examples/phrasebook/PhrasebookRus.gf b/examples/phrasebook/PhrasebookRus.gf index 7afe0204f..a79b9cbd5 100644 --- a/examples/phrasebook/PhrasebookRus.gf +++ b/examples/phrasebook/PhrasebookRus.gf @@ -6,7 +6,7 @@ concrete PhrasebookRus of Phrasebook = SyntaxRus, Prelude in { -lin - PGreeting g = lin Text g ; +--lin +-- PGreeting g = lin Text g ; } diff --git a/examples/phrasebook/SentencesRus.gf b/examples/phrasebook/SentencesRus.gf index 9f3c8adaf..b02fb5b1f 100644 --- a/examples/phrasebook/SentencesRus.gf +++ b/examples/phrasebook/SentencesRus.gf @@ -3,4 +3,5 @@ concrete SentencesRus of Sentences = NumeralRus ** SentencesI - [ ] with (Syntax = SyntaxRus), -- (Symbolic = SymbolicRus), - (Lexicon = LexiconRus) ; + (Lexicon = LexiconRus) ** open Prelude, SyntaxRus in { +} \ No newline at end of file diff --git a/examples/phrasebook/WordsRus.gf b/examples/phrasebook/WordsRus.gf index c196429a7..01d640463 100644 --- a/examples/phrasebook/WordsRus.gf +++ b/examples/phrasebook/WordsRus.gf @@ -55,9 +55,9 @@ flags coding = utf8 ; Hotel = mkPlace (P.mkN "отель") in_Prep ; Museum = mkPlace (P.mkN "музей") in_Prep ; Park = mkPlace (P.mkN "парк") in_Prep ; - Parking = mkPlace (P.mkN "автостоянки") on_Prep ; + Parking = mkPlace (P.mkN "автостоянка") on_Prep ; Pharmacy = mkPlace (P.mkN "аптека") in_Prep ; - PostOffice = mkPlace (P.mkN "почтовое") in_Prep ; + PostOffice = mkPlace (P.mkN "почта") on_Prep ; Pub = mkPlace (P.mkN "паб") in_Prep ; Restaurant = mkPlace (P.mkN "ресторан") in_Prep ; Shop = mkPlace (P.mkN "магазин") in_Prep ; @@ -76,38 +76,37 @@ flags coding = utf8 ; -- currencies - DanishCrown = mkCN (P.mkA "датско") (P.mkN "венец") ; + DanishCrown = mkCN (P.mkA "датский") (P.mkN "крона") ; Dollar = mkCN (P.mkN "доллар") ; Euro = mkCN (P.mkN "евро") ; Lei = mkCN (P.mkN "лей") ; - Leva = mkCN (P.mkN "левов") ; - NorwegianCrown = mkCN (P.mkA "норвежец") (P.mkN "венец") ; + Leva = mkCN (P.mkN "лев") ; + NorwegianCrown = mkCN (P.mkA "норвежский") (P.mkN "крона") ; Pound = mkCN (P.mkN "фунт"); Rouble = mkCN (P.mkN "рубль") ; - SwedishCrown = mkCN (P.mkA "шведский") (P.mkN "венец") ; + SwedishCrown = mkCN (P.mkA "шведский") (P.mkN "крона") ; Zloty = mkCN (P.mkN "злотый") ; -- Nationalities - Belgian = P.mkA "Belgisch" ; - Belgium = mkNP (P.mkPN "België") ; - Bulgarian = mkNat "болгарском" "Болгарии" ; - Catalan = mkNat "каталонский" "Каталонии" ; - Danish = mkNat "датском" "Дании" ; - Dutch = mkNat "голландский" "Нидерландов" ; - English = mkNat "английский" "Англии" ; - Finnish = mkNat "финском" "Финляндии" ; - Flemish = mkNP (P.mkPN "Vlaams") ; - French = mkNat "французском" "Франции" ; - German = mkNat "немецкого" "Германии" ; - Italian = mkNat "итальянский" "Италии" ; - Norwegian = mkNat "норвежец" "Норвегии" ; - Polish = mkNat "польский" "Польши" ; - Romanian = mkNat "румынском" "Румынии" ; - Russian = mkNat "русский." "России" ; - Spanish = mkNat "испанском" "Испании" ; - Swedish = mkNat "шведский" "Швеции" ; +-- Belgian = mkNat "бельгийский" (P.mkN "Бельгия" "Бельгии" "Бельгию" "Бельгию" "Бельгией" "Бельгии" "Бельгии" "Бельгии" "Бельгий" "Бельгиям" "Бельгии" "Бельгиями" "Бельгиях" P.feminine P.animate) ; + Bulgarian = mkNat "болгарский" (P.mkN "Болгария" "Болгарии" "Болгарию" "Болгарию" "Болгарией" "Болгарии" "Болгарии" "Болгарии" "Болгарий" "Болгариям" "Болгарии" "Болгариями" "Болгариях" P.feminine P.animate) ; + Catalan = mkNat "каталонский" (P.mkN "Каталония" "Каталонии" "Каталонию" "Каталонию" "Каталонией" "Каталонии" "Каталонии" "Каталонии" "Каталоний" "Каталониям" "Каталонии" "Каталониями" "Каталониях" P.feminine P.animate) ; + Danish = mkNat "датский" (P.mkN "Дания" "Дании" "Данию" "Данию" "Данией" "Дании" "Дании" "Дании" "Даний" "Даниям" "Дании" "Даниями" "Даниях" P.feminine P.animate) ; + Dutch = mkNat "нидерландский" (P.mkN "Нидерланды" P.animate) ; + English = mkNat "английский" (P.mkN "Англия" "Англии" "Англию" "Англию" "Англией" "Англии" "Англии" "Англии" "Англий" "Англиям" "Англии" "Англиями" "Англиях" P.feminine P.animate) ; + Finnish = mkNat "финский" (P.mkN "Финляндия" "Финляндии" "Финляндию" "Финляндию" "Финляндией" "Финляндии" "Финляндии" "Финляндии" "Финляндий" "Финляндиям" "Финляндии" "Финляндиями" "Финляндиях" P.feminine P.animate) ; +-- Flemish = mkNat "фландрийский" (P.mkN "Фландрия" "Фландрии" "Фландрию" "Фландрию" "Фландрией" "Фландрии" "Фландрии" "Фландрии" "Фландрий" "Фландриям" "Фландрии" "Фландриями" "Фландриях" P.feminine P.animate) ; + French = mkNat "французский" (P.mkN "Франция" "Франции" "Францию" "Францию" "Францией" "Франции" "Франции" "Франции" "Франций" "Франциям" "Франции" "Франциями" "Франциях" P.feminine P.animate) ; + German = mkNat "немецкий" (P.mkN "Германия" "Германии" "Германию" "Германию" "Германией" "Германии" "Германии" "Германии" "Германий" "Германиям" "Германии" "Германиями" "Германиях" P.feminine P.animate) ; + Italian = mkNat "итальянский" (P.mkN "Италия" "Италии" "Италию" "Италию" "Италией" "Италии" "Италии" "Италии" "Италий" "Италиям" "Италии" "Италиями" "Италиях" P.feminine P.animate) ; + Norwegian = mkNat "норвежский" (P.mkN "Норвегия" "Норвегии" "Норвегию" "Норвегию" "Норвегией" "Норвегии" "Норвегии" "Норвегии" "Норвегий" "Норвегиям" "Норвегии" "Норвегиями" "Норвегиях" P.feminine P.animate) ; + Polish = mkNat "польский" (P.mkN "Польша" "Польши" "Польшу" "Польшу" "Польшей" "Польше" "Польше" "Польши" "Польш" "Польшам" "Польши" "Польшами" "Польшах" P.feminine P.animate) ; + Romanian = mkNat "румынский" (P.mkN "Румыния" "Румынии" "Румынию" "Румынию" "Румынией" "Румынии" "Румынии" "Румынии" "Румыний" "Румыниям" "Румынии" "Румыниями" "Румыниях" P.feminine P.animate) ; + Russian = mkNat "русский" (P.mkN "Россия" "России" "Россию" "Россию" "Россией" "России" "России" "России" "Россий" "Россиям" "России" "Россиями" "Россиях" P.feminine P.animate) ; + Spanish = mkNat "испанский" (P.mkN "Испания" "Испании" "Испанию" "Испанию" "Испанией" "Испании" "Испании" "Испании" "Испаний" "Испаниям" "Испании" "Испаниями" "Испаниях" P.feminine P.animate) ; + Swedish = mkNat "шведский" (P.mkN "Швеция" "Швеции" "Швецию" "Швецию" "Швецией" "Швеции" "Швеции" "Швеции" "Швеций" "Швециям" "Швеции" "Швециями" "Швециях" P.feminine P.animate) ; -- Means of transportation @@ -138,7 +137,7 @@ flags coding = utf8 ; (mkNP (mkNP a_Det (P.mkN "стол")) (SyntaxRus.mkAdv for_Prep (mkNP num (P.mkN "человек")))) ; AHungry p = mkCl p.name (P.mkAdv "голоден") ; - AIll p = mkCl p.name (P.mkA "олен") ; + AIll p = mkCl p.name (P.mkA "болен") ; AKnow p = mkCl p.name (P.regV P.imperfective P.first "зна" "ю" "знал" "знай" "знать" ) ; ALike p item = mkCl p.name (P.dirV2 (P.regV P.imperfective P.second "нрав" "лю" "нравил" "нравь" "нравить" )) item ; ALive p co = mkCl p.name (mkVP (mkVP (P.regV P.imperfective P.firstE "жив" "у" "жил" "живи" "жить")) (SyntaxRus.mkAdv in_Prep co)) ; @@ -150,7 +149,7 @@ flags coding = utf8 ; "на" P.prepositional) lang ; AThirsty p = mkCl p.name (P.mkA "жажду") ; ATired p = mkCl p.name (P.mkA "устал") ; - AUnderstand p = mkCl p.name (P.regV P.imperfective P.first "понима" "ю" "понимал" "понимай" "понимать"); ; + AUnderstand p = mkCl p.name (P.regV P.imperfective P.first "понима" "ю" "понимал" "понимай" "понимать") ; AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ; AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; @@ -192,13 +191,13 @@ flags coding = utf8 ; -- week days - Monday = mkDay "понедельник" ; - Tuesday = mkDay "вторник" ; - Wednesday = mkDay "среда" ; - Thursday = mkDay "четверг" ; - Friday = mkDay "пятница" ; - Saturday = mkDay "суббота" ; - Sunday = mkDay "воскресенье" ; + Monday = mkDay "понедельник" P.masculine ; + Tuesday = mkDay "вторник" P.masculine ; + Wednesday = mkDay "среда" P.feminine ; + Thursday = mkDay "четверг" P.masculine ; + Friday = mkDay "пятница" P.feminine ; + Saturday = mkDay "суббота" P.feminine ; + Sunday = mkDay "воскресенье" P.neuter ; Tomorrow = P.mkAdv "завтра" ; @@ -230,19 +229,22 @@ flags coding = utf8 ; oper - mkNat : Str -> Str -> NPNationality = \nat,co -> - mkNPNationality (mkNP (P.mkPN nat)) (mkNP (P.mkPN co)) (P.mkA nat) ; + mkNat : Str -> N -> NPNationality = \la,co -> + mkNPNationality (mkNP (P.mkPN la P.masculine P.animate)) (mkNP co) (P.mkA la) ; - mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d -> - mkNPDay (mkNP (P.mkPN d)) (mkAdv (P.mkPrep []) (mkNP (P.mkPN d))) + mkDay : Str -> P.Gender -> {name : NP ; point : Adv ; habitual : Adv} = \d,g -> + mkNPDay (mkNP (P.mkPN d g P.inanimate)) (mkAdv (P.mkPrep [] P.nominative) (mkNP (P.mkPN d g P.inanimate))) ---- (mkAdv on_Prep (mkNP (P.mkPN d))) - (mkAdv on_Prep (mkNP a_Quant plNum (mkCN (P.mkN d (d + "en") P.utrum)))) ; + (mkAdv on_Prep (mkNP a_Quant plNum (mkCN (P.mkN d)))) ; - mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> - mkCNPlace (mkCN p) (P.mkPrep i) to_Prep ; +-- mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> +-- mkCNPlace (mkCN p) (P.mkPrep i P.prepositional) to_Prep ; + mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep ; isPl : Bool} = \p,i -> + mkCNPlace (mkCN p) i to_Prep; --- open_A = P.mkA ? ; seem to use a verb --- closed_A = P.mkA ? ; + + open_A = P.mkA "открыт" ; + closed_A = P.mkA "закрыт" ; xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> relativePerson n (mkCN x) (\a,b,c -> mkNP (mkNP the_Quant a c) (SyntaxRus.mkAdv possess_Prep b)) p ; @@ -253,7 +255,7 @@ flags coding = utf8 ; } ; far_IAdv = ss "как далеко" ** {lock_IAdv = <>} ; - long_IAdv = ss "Как долго" ** {lock_IAdv = <>}; + long_IAdv = ss "как долго" ** {lock_IAdv = <>}; mkSuperl : A -> Det = \a -> SyntaxRus.mkDet the_Art (SyntaxRus.mkOrd a) ;