--# -path=.:../abstract:../../prelude --1 The Top-Level Russian Resource Grammar -- -- Janna Khegai 2003 -- on the basis of code for other languages by Aarne Ranta -- -- This is the Russian concrete syntax of the multilingual resource -- grammar. Most of the work is done in the file $syntax.RusU.gf$. -- However, for the purpose of documentation, we make here explicit the -- linearization types of each category, so that their structures and -- dependencies can be seen. -- Another substantial part is the linearization rules of some -- structural words. -- -- The users of the resource grammar should not look at this file for the -- linearization rules, which are in fact hidden in the document version. -- They should use $resource.Abs.gf$ to access the syntactic rules. -- This file can be consulted in those, hopefully rare, occasions in which -- one has to know how the syntactic categories are -- implemented. The parameter types are defined in $types.RusU.gf$. concrete StructuralRus of Structural = CategoriesRus, NumeralsRus ** open Prelude, SyntaxRus in { flags coding=utf8 ; lin -- First mount the numerals. UseNumeral i = i ; -- Then an alphabetical list of structural words above_Prep = { s2 = "над" ; c = Inst} ; after_Prep = { s2 = "после" ; c = Gen }; all8mass_Det = vesDet ** {n = Sg; g = PNoGen; c = Nom} ; all_NDet = vseDetPl ** { g = PNoGen; c = Nom} ; almost_Adv = ss "почти" ; although_Subj = ss "хотя" ; and_Conj = ss "и" ** {n = Pl} ; because_Subj = ss ["потому что"] ; before_Prep ={ s2 = "перед" ; c = Inst}; behind_Prep = { s2 = "за" ; c = Inst }; between_Prep = { s2 = "между" ; c = Inst}; both_AndConjD = sd2 "как" [", так и"] ** {n = Pl} ; by8agent_Prep = { s2 = ["с помощью"] ; c = Gen}; by8means_Prep = { s2 = ["с помощью"] ; c = Gen}; can8know_VV = verbMoch ; can_VV = verbMoch ; during_Prep = { s2 = ["в течение"] ; c = Gen}; either8or_ConjD = sd2 "либо" [", либо"] ** {n = Sg} ; -- comma is not visible in GUI! every_Det = kazhdujDet ** {n = Sg ; g = PNoGen; c= Nom} ; everybody_NP = mkNounPhrase Pl (noun2CommNounPhrase (eEnd_Decl "вс")) ; everything_NP = pron2NounPhrase pronVseInanimate Inanimate; everywhere_Adv = ss "везде" ; from_Prep = { s2 = "от" ; c = Gen }; he_NP = pron2NounPhrase pronOn Animate; how_IAdv = ss "как" ; how8many_IDet = skolkoSgDet ** {n = Sg; g = (PGen Neut); c= Gen}; i_NP = pron2NounPhrase pronYa Animate; if_Subj = ss "если" ; in8front_Prep = { s2 = "перед" ; c = Inst}; in_Prep = { s2 = "в" ; c = Prepos }; it_NP = pron2NounPhrase pronOno Inanimate; many_Det = mnogoSgDet ** {n = Sg; g = (PGen Neut); c= Gen} ; most_Det = 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 = { s2 = "на" ; c = Prepos }; or_Conj = ss "или" ** {n = Sg} ; otherwise_Adv = ss "иначе" ; part_Prep = { s2 = "" ; c = Nom}; -- missing in Russian possess_Prep = { s2 = "" ; c = Gen}; --- ?? AR 19/2/2004 quite_Adv = ss "довольно" ; she_NP = pron2NounPhrase pronOna Animate; so_Adv = ss "так"; somebody_NP = pron2NounPhrase pronKtoTo Animate; some_Det = nekotorujDet ** {n = Sg; g = PNoGen; c= Nom} ; some_NDet = nekotorujDet ** { g = PNoGen; c= Nom} ; something_NP = pron2NounPhrase pronChtoTo Inanimate ; somewhere_Adv = ss "где-нибудь" ; --- TheseNumNP n = { s =\\_ => [] ; n = Pl; p = P3; g= PGen Fem ; --- anim = Animate ; pron = True} ; -- missing in Russian --- ThoseNumNP n = { s =\\_ => [] ; n = Pl; p = P3; g=PGen Fem ; --- anim = Animate ; pron = True} ; -- missing in Russian that_Det = totDet ** {n = Sg; g = PNoGen; c= Nom} ; that_NP = det2NounPhrase totDet ; -- inanimate form only therefore_Adv = ss "следовательно" ; these_NDet = etotDet ** { g = PNoGen; c= Nom} ; they8fem_NP = pron2NounPhrase pronOni Animate; they_NP = pron2NounPhrase pronOni Animate; this_Det = etotDet ** {n = Sg; g = PNoGen; c= Nom} ; this_NP = det2NounPhrase etotDet ; -- inanimate form only those_NDet = totDet ** {g = PNoGen; c= Nom} ; thou_NP = pron2NounPhrase pronTu Animate; through_Prep = { s2 = "через" ; c = Acc }; to_Prep = { s2 = "к" ; c = Dat }; too_Adv = ss "слишком" ; under_Prep = { s2 = "под" ; c = Inst }; very_Adv = ss "очень" ; want_VV = verbKhotet ; we_NP = pron2NounPhrase pronMu Animate ; what8many_IP = pron2NounPhraseNum pronChto Inanimate Pl; what8one_IP = pron2NounPhraseNum pronChto Inanimate Sg; when_IAdv = ss "когда" ; when_Subj = ss "когда" ; where_IAdv = ss "где" ; which8many_IDet = kotorujDet ** {n = Pl; g = PNoGen; c= Nom} ; which8one_IDet = kotorujDet ** {n = Sg; g = PNoGen; c= Nom} ; who8many_IP = pron2NounPhraseNum pronKto Animate Pl; who8one_IP = pron2NounPhraseNum pronKto Animate Sg; why_IAdv = ss "почему" ; with_Prep = { s2 = "с" ; c = Inst}; without_Prep = { s2 = "без" ; c = Gen}; ye_NP = pron2NounPhrase pronVu Animate; yes_Phr = ss ["Да ."] ; you_NP = pron2NounPhrase pronVu Animate; --- 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 = pron2NounPhrase pronNikto Animate; ---NothingNP = pron2NounPhrase 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 = { s2 = "" ; c = Nom}; -- missing in Russian } ;