summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorNikita Frolov <frolov@chalmers.se>2012-12-27 21:04:26 +0000
committerNikita Frolov <frolov@chalmers.se>2012-12-27 21:04:26 +0000
commit67380fa39813b954e468cbc62f6c8e780fdd99d0 (patch)
tree0221966404fbe5b12704102feee502aae877382a /examples
parent4eef06e38e06ce84405bf3d4a0746610bc63d8a1 (diff)
RG and Phrasebook fixes
- added a paradigm for alternative plurals - fixed usage of alternative plurals in Numerals - added a distinction between numerals and posessive pronouns - verb omission and appropriate cases in some uses of to be/to have - fixed declination of personal names - added a gender parameter to pronouns (similar to Polish RG) - vowel insertion before short adjective suffix - don't generate short forms for relative adjectives (might need lexicon update) - minor Phrasebook fixes
Diffstat (limited to 'examples')
-rw-r--r--examples/phrasebook/SentencesRus.gf14
-rw-r--r--examples/phrasebook/WordsRus.gf37
2 files changed, 31 insertions, 20 deletions
diff --git a/examples/phrasebook/SentencesRus.gf b/examples/phrasebook/SentencesRus.gf
index 67e06d7f1..cdde941e1 100644
--- a/examples/phrasebook/SentencesRus.gf
+++ b/examples/phrasebook/SentencesRus.gf
@@ -1,9 +1,10 @@
concrete SentencesRus of Sentences = NumeralRus ** SentencesI - [
- NameNN, SHave, SHaveNo, SHaveNoMass, QDoHave, AHaveCurr
+ NameNN, SHave, SHaveNo, SHaveNoMass, QDoHave, AHaveCurr,
+ IMale, IFemale, YouFamMale, YouFamFemale, YouPolMale, YouPolFemale
] with
(Syntax = SyntaxRus),
(Symbolic = SymbolicRus),
- (Lexicon = LexiconRus), (Grammar = GrammarRus) ** open Prelude, SyntaxRus, (P = ParadigmsRus) in {
+ (Lexicon = LexiconRus), (Grammar = GrammarRus) ** open Prelude, SyntaxRus, ExtraRus, (P = ParadigmsRus), (R = ResRus), (M = MorphoRus) in {
lin
SHave p obj = mkS (mkCl (mkVP have_V3 obj p.name)) ;
SHaveNo p obj = mkS (mkCl (mkVP have_not_V3 (mkNP obj) p.name)) ;
@@ -12,6 +13,13 @@ concrete SentencesRus of Sentences = NumeralRus ** SentencesI - [
AHaveCurr p curr = mkCl (mkVP have_V3 (mkNP aPl_Det curr) p.name) ;
- lin NameNN = mkNP (P.mkN "NN") ;
+ lin
+ NameNN = mkNP (P.mkN "NN") ;
+ IMale = mkPerson (M.pronYa R.Masc) ;
+ IFemale = mkPerson (M.pronYa R.Fem) ;
+ YouFamMale = mkPerson (M.pronTu R.Masc) ;
+ YouFamFemale = mkPerson (M.pronTu R.Fem) ;
+ YouPolMale = mkPerson (M.pronVu R.Masc) ;
+ YouPolFemale = mkPerson (M.pronVu R.Fem) ;
} \ No newline at end of file
diff --git a/examples/phrasebook/WordsRus.gf b/examples/phrasebook/WordsRus.gf
index 357e4fcd9..71459f848 100644
--- a/examples/phrasebook/WordsRus.gf
+++ b/examples/phrasebook/WordsRus.gf
@@ -1,7 +1,7 @@
-- (C) 2009 Aarne Ranta under LGPL
concrete WordsRus of Words = SentencesRus **
- open SyntaxRus, (P = ParadigmsRus), (L = LexiconRus), Prelude in {
+ open SyntaxRus, (P = ParadigmsRus), (L = LexiconRus), ExtraRus, (R = ResRus), Prelude in {
flags coding = utf8 ;
@@ -71,7 +71,7 @@ flags coding = utf8 ;
CitRestaurant cit =
- mkCNPlace (mkCN cit (P.mkN "ресторан")) in_Prep to_Prep ;
+ mkCNPlace (mkCN cit (P.mkN "ресторан")) in_Prep to2_Prep ;
-- currencies
@@ -127,30 +127,36 @@ flags coding = utf8 ;
-- actions
- AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
+-- AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
+ AHasAge p num = mkCl (mkVP be_V3 (mkNP num L.year_N) p.name) ;
AHasName p name = mkCl (mkVP (P.mkV3 name_is_V "" "" P.nominative P.accusative) name p.name) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
+ AHasChildren p num = mkCl (mkVP have_V3 (mkNP num L.child_N) p.name) ;
+ AHasRoom p num = mkCl (mkVP have2_V3
(mkNP (mkNP a_Det (P.mkN "номер"))
- (SyntaxRus.mkAdv for_Prep (mkNP num (P.mkN "человек")))) ;
- AHasTable p num = mkCl p.name have_V2
+ (SyntaxRus.mkAdv for_Prep (mkNP num (L.man_N)))) p.name) ;
+ AHasTable p num = mkCl (mkVP have2_V3
(mkNP (mkNP a_Det (P.mkN "стол"))
- (SyntaxRus.mkAdv for_Prep (mkNP num (P.mkN "человек")))) ;
+ (SyntaxRus.mkAdv for_Prep (mkNP num (L.man_N)))) p.name) ;
AHungry 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 item (P.mkV2 (P.mkV P.imperfective "нравлюсь" "нравишься" "нравится" "нравимся" "нравитесь" "нравятся" "нравился" "нравься" "нравиться") [] P.dative) p.name ;
ALive p co = mkCl p.name (mkVP (mkVP (P.regV P.imperfective P.firstE "жив" "у" "жил" "живи" "жить")) (SyntaxRus.mkAdv in_Prep co)) ;
ALove p q = mkCl p.name (P.dirV2 (P.regV P.imperfective P.second "люб" "лю" "любил" "люби" "любить" )) q.name ;
- AMarried p = mkCl p.name (P.mkA "женатый") ;
+-- AMarried p = mkCl p.name (P.mkA "женатый") ;
+ AMarried p = let status = case p.name.g of {
+ R.PGen R.Masc => P.mkAdv "женат" ;
+ _ => P.mkAdv "замужем"
+ } in mkCl p.name status ;
AReady p = mkCl p.name (P.mkA "готовый") ;
AScared p = mkCl p.name (P.mkV P.imperfective "боюсь" "боишься" "боится" "боимся" "бойтесь" "боятся" "боялся" "бойся" "бояться") ;
ASpeak p lang = mkCl p.name (P.mkV2 (P.regV P.imperfective P.secondA "говор" "ю" "говорил" "говори" "говорить") "на" P.prepositional) lang ;
AThirsty p = mkCl p.name want_VV (mkVP (P.regV P.imperfective P.firstE "пь" "ю" "пил" "пей" "пить" )) ;
- ATired p = mkCl p.name (P.mkA "уставший") ;
+ ATired p = mkCl p.name (P.mkA "уставший" R.Rel) ;
AUnderstand p = mkCl p.name (P.regV P.imperfective P.first "понима" "ю" "понимал" "понимай" "понимать") ;
AWant p obj = mkCl p.name (P.dirV2 (P.regV P.imperfective P.mixed "хо" "чу" "хотел" "хоти" "хотеть")) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP (P.mkV P.imperfective "иду" "идёшь" "идёт" "идём" "идёте" "идут" "шёл" "иди" "идти")) place.to) ;
+ AWantGo p place = mkCl p.name want_VV (mkVP (mkVP (P.mkV P.perfective "пошёл" "пошёл" "пошёл" "пошли" "пошли" "пошли" "пошёл" "пойди" "пойти")) place.to) ;
+ --AWantGo p place = mkCl p.name want_VV (mkVP (mkVP (P.mkV P.imperfective "иду" "идёшь" "идёт" "идём" "идёте" "идут" "шёл" "иди" "идти")) place.to) ;
-- miscellaneous
@@ -261,12 +267,9 @@ flags coding = utf8 ;
by = SyntaxRus.mkAdv on_Prep (mkNP the_Det n)
} ;
- far_IAdv = ss "как далеко" ** {lock_IAdv = <>} ;
- long_IAdv = ss "как долго" ** {lock_IAdv = <>};
-
- mkSuperl : A -> Det = \a -> SyntaxRus.mkDet the_Art (SyntaxRus.mkOrd a) ;
-
-
+ far_IAdv = ss "как далеко" ** {lock_IAdv = <>} ;
+ long_IAdv = ss "как долго" ** {lock_IAdv = <>};
+ mkSuperl : A -> Det = \a -> SyntaxRus.mkDet the_Art (SyntaxRus.mkOrd a) ;
}