mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-22 09:32:53 -06:00
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
This commit is contained in:
@@ -1,9 +1,10 @@
|
|||||||
concrete SentencesRus of Sentences = NumeralRus ** SentencesI - [
|
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
|
] with
|
||||||
(Syntax = SyntaxRus),
|
(Syntax = SyntaxRus),
|
||||||
(Symbolic = SymbolicRus),
|
(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
|
lin
|
||||||
SHave p obj = mkS (mkCl (mkVP have_V3 obj p.name)) ;
|
SHave p obj = mkS (mkCl (mkVP have_V3 obj p.name)) ;
|
||||||
SHaveNo p obj = mkS (mkCl (mkVP have_not_V3 (mkNP 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) ;
|
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) ;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
-- (C) 2009 Aarne Ranta under LGPL
|
-- (C) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
concrete WordsRus of Words = SentencesRus **
|
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 ;
|
flags coding = utf8 ;
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ flags coding = utf8 ;
|
|||||||
|
|
||||||
|
|
||||||
CitRestaurant cit =
|
CitRestaurant cit =
|
||||||
mkCNPlace (mkCN cit (P.mkN "ресторан")) in_Prep to_Prep ;
|
mkCNPlace (mkCN cit (P.mkN "ресторан")) in_Prep to2_Prep ;
|
||||||
|
|
||||||
|
|
||||||
-- currencies
|
-- currencies
|
||||||
@@ -127,30 +127,36 @@ flags coding = utf8 ;
|
|||||||
|
|
||||||
|
|
||||||
-- actions
|
-- 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) ;
|
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) ;
|
AHasChildren p num = mkCl (mkVP have_V3 (mkNP num L.child_N) p.name) ;
|
||||||
AHasRoom p num = mkCl p.name have_V2
|
AHasRoom p num = mkCl (mkVP have2_V3
|
||||||
(mkNP (mkNP a_Det (P.mkN "номер"))
|
(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) ;
|
||||||
AHasTable p num = mkCl p.name have_V2
|
AHasTable p num = mkCl (mkVP have2_V3
|
||||||
(mkNP (mkNP a_Det (P.mkN "стол"))
|
(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 "голодный") ;
|
AHungry p = mkCl p.name (P.mkA "голодный") ;
|
||||||
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 "зна" "ю" "знал" "знай" "знать" ) ;
|
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 ;
|
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)) ;
|
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 ;
|
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 "готовый") ;
|
AReady p = mkCl p.name (P.mkA "готовый") ;
|
||||||
AScared p = mkCl p.name (P.mkV P.imperfective "боюсь" "боишься" "боится" "боимся" "бойтесь" "боятся" "боялся" "бойся" "бояться") ;
|
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 ;
|
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 "пь" "ю" "пил" "пей" "пить" )) ;
|
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 "понима" "ю" "понимал" "понимай" "понимать") ;
|
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 ;
|
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
|
-- miscellaneous
|
||||||
|
|
||||||
@@ -266,7 +272,4 @@ flags coding = utf8 ;
|
|||||||
|
|
||||||
mkSuperl : A -> Det = \a -> SyntaxRus.mkDet the_Art (SyntaxRus.mkOrd a) ;
|
mkSuperl : A -> Det = \a -> SyntaxRus.mkDet the_Art (SyntaxRus.mkOrd a) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user