Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

# -path=.:../abstract:../../prelude

Russian Lexical Paradigms

Aarne Ranta, Janna Khegai 2003 This is an API to the user of the resource grammar for adding lexical items. It give shortcuts for forming expressions of basic categories: nouns, adjectives, verbs. Closed categories (determiners, pronouns, conjunctions) are accessed through the resource syntax API, resource.Abs.gf. The following files are presupposed:
  resource ParadigmsRus = open (Predef=Predef), Prelude, SyntaxRus, ResourceRus in {
  
  flags  coding=utf8 ;

Parameters

To abstract over gender names, we define the following identifiers.
  oper
    masculine : Gender ;
    feminine  : Gender ;
    neuter    : Gender ;
To abstract over case names, we define the following.
    nominative    : Case ;
    genitive      : Case ;
    dative        : Case ;
    accusative    : Case ; 
    instructive   : Case ;
    prepositional : Case ;
In some (written in English) textbooks accusative case is put on the second place. However, we follow the case order standard for Russian textbooks. To abstract over number names, we define the following.
    singular : Number ;
    plural   : Number ;

Nouns

Best case: indeclinabe nouns: кофе, пальто, ВУЗ.
     mkIndeclinableNoun: Str -> Gender -> Animacy -> N ; 
Worst case - give six singular forms: Nominative, Genetive, Dative, Accusative, Instructive and Prepositional; corresponding six plural forms and the gender. May be the number of forms needed can be reduced, but this requires a separate investigation. Animacy parameter (determining whether the Accusative form is equal to the Nominative or the Genetive one) is actually of no help, since there are a lot of exceptions and the gain is just one form less.
    mkN  : (_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Animacy -> N ; 
  
       -- мужчина, мужчины, мужчине, мужчину, мужчиной, мужчине
       -- мужчины, мужчин, мужчинам, мужчин, мужчинами, мужчинах
Here are some common patterns. The list is far from complete. Feminine patterns.
    nMashina   : Str -> N ;    -- feminine, inanimate, ending with "-а", Inst -"машин-ой"
    nEdinica   : Str -> N ;    -- feminine, inanimate, ending with "-а", Inst -"единиц-ей"
    nZhenchina : Str -> N ;    -- feminine, animate, ending with "-a"
    nNoga      : Str -> N ;    -- feminine, inanimate, ending with "г_к_х-a"
    nMalyariya  : Str -> N ;    -- feminine, inanimate, ending with "-ия"   
    nTetya     : Str -> N ;    -- feminine, animate, ending with "-я"   
    nBol       : Str -> N ;    -- feminine, inanimate, ending with "-ь"(soft sign)     
Neuter patterns.
    nObezbolivauchee : Str -> N ;   -- neutral, inanimate, ending with "-ee" 
    nProizvedenie : Str -> N ;   -- neutral, inanimate, ending with "-e" 
    nChislo : Str -> N ;   -- neutral, inanimate, ending with "-o" 
Masculine patterns.
    nStomatolog : Str -> N ;    -- masculine, animate, ending with consonant
  
                                -- the next two differ only in 
                                -- plural nominative (= accusative) form(s) :
    nAdres     : Str -> N ;     -- адрес-а
    nTelefon   : Str -> N ;     -- телефон-ы
                                -- masculine, inanimate, ending with consonant
  
    nNol       : Str -> N ;    -- masculine, inanimate, ending with "-ь" (soft sign)
    nUroven    : Str -> N ;    -- masculine, inanimate, ending with "-ень"
Nouns used as functions need a preposition. The most common is with Genitive.
    mkFun  : N -> Preposition -> Case -> Fun ;
    funGen : N -> Fun ;
Proper names.
    mkPN  : Str -> Gender -> Animacy -> PN ;          -- "Иван", "Маша"
On the top level, it is maybe CN that is used rather than N, and NP rather than PN.
    mkCN  : N -> CN ;
    mkNP  : Str -> Gender -> Animacy -> NP ;

Adjectives

Non-comparison (only positive degree) one-place adjectives need 28 (4 by 7) forms in the worst case: Masculine | Feminine | Neutral | Plural Nominative Genitive Dative Accusative Inanimate Accusative Animate Instructive Prepositional Notice that 4 short forms, which exist for some adjectives are not included in the current description, otherwise there would be 32 forms for positive degree. mkAdj1 : ( : Str) -> Adj1 ; Invariable adjective is a special case.
     adjInvar : Str -> Adj1 ;          -- khaki, mini, hindi, netto
Some regular patterns depending on the ending.
     adj1Staruyj : Str -> Adj1 ;             -- ending with "-ый"
     adj1Malenkij : Str -> Adj1 ;            -- endign with "-ий"
     adj1Molodoj : Str -> Adj1 ;             -- ending with "-ой", 
                                             -- plural - молод-ые"
     adj1Kakoj_Nibud : Str -> Str -> Adj1 ;  -- ending with "-ой", 
                                             -- plural - "как-ие"
Two-place adjectives need a preposition and a case as extra arguments.
     mkAdj2 : Adj1 -> Str -> Case -> Adj2 ;  -- "делим на"
Comparison adjectives need a positive adjective (28 forms without short forms). Taking only one comparative form (non-syntaxic) and only one superlative form (syntaxic) we can produce the comparison adjective with only one extra argument - non-syntaxic comparative form. Syntaxic forms are based on the positive forms.
     mkAdjDeg : Adj1 -> Str -> AdjDeg ;
On top level, there are adjectival phrases. The most common case is just to use a one-place adjective.
     ap : Adj1  -> IsPostfixAdj -> AP ;

Verbs

In our lexicon description (Verbum) there are 62 forms: 2 (Voice) by { 1 (infinitive) + [2(number) by 3 (person)](imperative) + [ [2(Number) by 3(Person)](present) + [2(Number) by 3(Person)](future) + 4(GenNum)(past) ](indicative)+ 4 (GenNum) (subjunctive) } Participles (Present and Past) and Gerund forms are not included, since they fuction more like Adjectives and Adverbs correspondingly rather than verbs. Aspect regarded as an inherent parameter of a verb. Notice, that some forms are never used for some verbs. Actually, the majority of verbs do not have many of the forms. The worst case need 6 forms of the present tense in indicative mood (я бегу, ты бежишь, он бежит, мы бежим, вы бежите, они бегут), a past form (singular, masculine: я бежал), an imperative form (singular, second person: беги), an infinitive (бежать). Inherent aspect should also be specified.
     mkVerbum : Aspect -> (_,_,_,_,_,_,_,_,_ : Str) -> Verbum ;
Common conjugation patterns are two conjugations: first - verbs ending with -ать/-ять and second - -ить/-еть. Instead of 6 present forms of the worst case, we only need a present stem and one ending (singular, first person): я люб-лю, я жд-у, etc. To determine where the border between stem and ending lies it is sufficient to compare first person from with second person form: я люб-лю, ты люб-ишь. Stems shoud be the same. So the definition for verb любить looks like: mkRegVerb Imperfective Second люб лю любил люби любить;
     mkRegVerb :Aspect -> Conjugation -> (_,_,_,_,_ : Str) -> Verbum ; 
For writing an application grammar one usualy doesn't need the whole inflection table, since each verb is used in a particular context that determines some of the parameters (Tense and Voice while Aspect is fixed from the beginning) for certain usage. The V type, that have these parameters fixed. We can extract the V from the lexicon.
     mkV: Verbum -> Voice -> Tense -> V ;
     mkPresentV: Verbum -> Voice -> V ;
Two-place verbs, and the special case with direct object. Notice that a particle can be included in a V.
     mkTV     : V   -> Str -> Case -> TV ;   -- "войти в дом"; "в", accusative
     tvDir    : V -> TV ;                    -- "видеть", "любить"
The definitions should not bother the user of the API. So they are hidden from the document.