mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-25 12:32:50 -06:00
preserve 1.0
This commit is contained in:
@@ -1,380 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="generator" CONTENT="http://txt2tags.sf.net">
|
||||
<TITLE> Russian Lexical Paradigms</TITLE>
|
||||
</HEAD><BODY BGCOLOR="white" TEXT="black">
|
||||
<P ALIGN="center"><CENTER><H1> Russian Lexical Paradigms</H1>
|
||||
<FONT SIZE="4">
|
||||
<I>Last update: 2006-06-22 17:53:54 CEST</I><BR>
|
||||
</FONT></CENTER>
|
||||
|
||||
<P></P>
|
||||
<HR NOSHADE SIZE=1>
|
||||
<P></P>
|
||||
<UL>
|
||||
<LI><A HREF="#toc1">Parameters</A>
|
||||
<LI><A HREF="#toc2">Nouns</A>
|
||||
<LI><A HREF="#toc3">Adjectives</A>
|
||||
<LI><A HREF="#toc4">Adverbs</A>
|
||||
<LI><A HREF="#toc5">Verbs</A>
|
||||
</UL>
|
||||
|
||||
<P></P>
|
||||
<HR NOSHADE SIZE=1>
|
||||
<P></P>
|
||||
<P>
|
||||
Produced by
|
||||
gfdoc - a rudimentary GF document generator.
|
||||
(c) Aarne Ranta (<A HREF="mailto:aarne@cs.chalmers.se">aarne@cs.chalmers.se</A>) 2002 under GNU GPL.
|
||||
</P>
|
||||
<P>
|
||||
Janna Khegai 2003--2006
|
||||
</P>
|
||||
<P>
|
||||
This is an API for the user of the resource grammar
|
||||
for adding lexical items. It gives functions for forming
|
||||
expressions of open categories: nouns, adjectives, verbs.
|
||||
</P>
|
||||
<P>
|
||||
Closed categories (determiners, pronouns, conjunctions) are
|
||||
accessed through the resource syntax API, <CODE>Structural.gf</CODE>.
|
||||
</P>
|
||||
<P>
|
||||
The main difference with <CODE>MorphoRus.gf</CODE> is that the types
|
||||
referred to are compiled resource grammar types. We have moreover
|
||||
had the design principle of always having existing forms, rather
|
||||
than stems, as string arguments of the paradigms.
|
||||
</P>
|
||||
<P>
|
||||
The structure of functions for each word class <CODE>C</CODE> is the following:
|
||||
first we give a handful of patterns that aim to cover all
|
||||
regular cases. Then we give a worst-case function <CODE>mkC</CODE>, which serves as an
|
||||
escape to construct the most irregular words of type <CODE>C</CODE>.
|
||||
</P>
|
||||
<P>
|
||||
The following modules are presupposed:
|
||||
</P>
|
||||
<PRE>
|
||||
resource ParadigmsRus = open
|
||||
(Predef=Predef),
|
||||
Prelude,
|
||||
MorphoRus,
|
||||
CatRus,
|
||||
NounRus
|
||||
in {
|
||||
|
||||
flags coding=utf8 ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<A NAME="toc1"></A>
|
||||
<H2>Parameters</H2>
|
||||
<P>
|
||||
To abstract over gender names, we define the following identifiers.
|
||||
</P>
|
||||
<PRE>
|
||||
oper
|
||||
Gender : Type ;
|
||||
masculine : Gender ;
|
||||
feminine : Gender ;
|
||||
neuter : Gender ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
To abstract over case names, we define the following.
|
||||
</P>
|
||||
<PRE>
|
||||
Case : Type ;
|
||||
|
||||
nominative : Case ;
|
||||
genitive : Case ;
|
||||
dative : Case ;
|
||||
accusative : Case ;
|
||||
instructive : Case ;
|
||||
prepositional : Case ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
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.
|
||||
</P>
|
||||
<PRE>
|
||||
Number : Type ;
|
||||
|
||||
singular : Number ;
|
||||
plural : Number ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<A NAME="toc2"></A>
|
||||
<H2>Nouns</H2>
|
||||
<P>
|
||||
Best case: indeclinabe nouns: <I>кофе</I>, <I>пальто</I>, <I>ВУЗ</I>.
|
||||
</P>
|
||||
<PRE>
|
||||
Animacy: Type ;
|
||||
|
||||
animate: Animacy;
|
||||
inanimate: Animacy;
|
||||
|
||||
mkIndeclinableNoun: Str -> Gender -> Animacy -> N ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
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.
|
||||
</P>
|
||||
<PRE>
|
||||
mkN : (nomSg, genSg, datSg, accSg, instSg, preposSg,
|
||||
nomPl, genPl, datPl, accPl, instPl, preposPl: Str) -> Gender -> Animacy -> N ;
|
||||
|
||||
-- мужчина, мужчины, мужчине, мужчину, мужчиной, мужчине
|
||||
-- мужчины, мужчин, мужчинам, мужчин, мужчинами, мужчинах
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
The regular function captures the variants for some popular nouns
|
||||
endings below:
|
||||
</P>
|
||||
<PRE>
|
||||
regN : Str -> N ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
Here are some common patterns. The list is far from complete.
|
||||
Feminine patterns.
|
||||
</P>
|
||||
<PRE>
|
||||
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)
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
Neuter patterns.
|
||||
</P>
|
||||
<PRE>
|
||||
nObezbolivauchee : Str -> N ; -- neutral, inanimate, ending with "-ee"
|
||||
nProizvedenie : Str -> N ; -- neutral, inanimate, ending with "-e"
|
||||
nChislo : Str -> N ; -- neutral, inanimate, ending with "-o"
|
||||
nZhivotnoe : Str -> N ; -- masculine, inanimate, ending with "-ень"
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
Masculine patterns.
|
||||
Ending with consonant:
|
||||
</P>
|
||||
<PRE>
|
||||
nPepel : Str -> N ; -- masculine, inanimate, ending with "-ел"- "пеп-ла"
|
||||
|
||||
nBrat: Str -> N ; -- animate, брат-ья
|
||||
nStul: Str -> N ; -- same as above, but inanimate
|
||||
nMalush : Str -> N ; -- малышей
|
||||
nPotolok : Str -> N ; -- потол-ок - потол-ка
|
||||
|
||||
-- the next four differ in plural nominative and/or accusative form(s) :
|
||||
nBank: Str -> N ; -- банк-и (Nom=Acc)
|
||||
nStomatolog : Str -> N ; -- same as above, but animate
|
||||
nAdres : Str -> N ; -- адрес-а (Nom=Acc)
|
||||
nTelefon : Str -> N ; -- телефон-ы (Nom=Acc)
|
||||
|
||||
nNol : Str -> N ; -- masculine, inanimate, ending with "-ь" (soft sign)
|
||||
nUroven : Str -> N ; -- masculine, inanimate, ending with "-ень"
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
Nouns used as functions need a preposition. The most common is with Genitive.
|
||||
</P>
|
||||
<PRE>
|
||||
mkFun : N -> Prep -> N2 ;
|
||||
mkN2 : N -> N2 ;
|
||||
mkN3 : N -> Prep -> Prep -> N3 ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
Proper names.
|
||||
</P>
|
||||
<PRE>
|
||||
mkPN : Str -> Gender -> Animacy -> PN ; -- "Иван", "Маша"
|
||||
nounPN : N -> PN ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
On the top level, it is maybe <CODE>CN</CODE> that is used rather than <CODE>N</CODE>, and
|
||||
<CODE>NP</CODE> rather than <CODE>PN</CODE>.
|
||||
</P>
|
||||
<PRE>
|
||||
mkCN : N -> CN ;
|
||||
mkNP : Str -> Gender -> Animacy -> NP ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<A NAME="toc3"></A>
|
||||
<H2>Adjectives</H2>
|
||||
<P>
|
||||
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.
|
||||
mkA : ( : Str) -> A ;
|
||||
The regular function captures the variants for some popular adjective
|
||||
endings below. The first string agrument is the masculine singular form,
|
||||
the second is comparative:
|
||||
</P>
|
||||
<PRE>
|
||||
regA : Str -> Str -> A ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
Invariable adjective is a special case.
|
||||
</P>
|
||||
<PRE>
|
||||
adjInvar : Str -> A ; -- khaki, mini, hindi, netto
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
Some regular patterns depending on the ending.
|
||||
</P>
|
||||
<PRE>
|
||||
AStaruyj : Str -> Str -> A ; -- ending with "-ый"
|
||||
AMalenkij : Str -> Str -> A ; -- ending with "-ий", Gen - "маленьк-ого"
|
||||
AKhoroshij : Str -> Str -> A ; -- ending with "-ий", Gen - "хорош-его"
|
||||
AMolodoj : Str -> Str -> A ; -- ending with "-ой",
|
||||
-- plural - молод-ые"
|
||||
AKakoj_Nibud : Str -> Str -> Str -> A ; -- ending with "-ой",
|
||||
-- plural - "как-ие"
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
Two-place adjectives need a preposition and a case as extra arguments.
|
||||
</P>
|
||||
<PRE>
|
||||
mkA2 : A -> Str -> Case -> A2 ; -- "делим на"
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
Comparison adjectives need a positive adjective
|
||||
(28 forms without short forms).
|
||||
Taking only one comparative form (non-syntactic) and
|
||||
only one superlative form (syntactic) we can produce the
|
||||
comparison adjective with only one extra argument -
|
||||
non-syntactic comparative form.
|
||||
Syntactic forms are based on the positive forms.
|
||||
mkADeg : A -> Str -> ADeg ;
|
||||
On top level, there are adjectival phrases. The most common case is
|
||||
just to use a one-place adjective.
|
||||
ap : A -> IsPostfixAdj -> AP ;
|
||||
</P>
|
||||
<A NAME="toc4"></A>
|
||||
<H2>Adverbs</H2>
|
||||
<P>
|
||||
Adverbs are not inflected.
|
||||
</P>
|
||||
<PRE>
|
||||
mkAdv : Str -> Adv ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<A NAME="toc5"></A>
|
||||
<H2>Verbs</H2>
|
||||
<P>
|
||||
In our lexicon description (<I>Verbum</I>) 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 is regarded as an inherent parameter of a verb.
|
||||
Notice, that some forms are never used for some verbs.
|
||||
</P>
|
||||
<PRE>
|
||||
Voice: Type;
|
||||
Aspect: Type;
|
||||
Bool: Type;
|
||||
Conjugation: Type ;
|
||||
|
||||
first: Conjugation; -- "гуля-Ешь, гуля-Ем"
|
||||
firstE: Conjugation; -- Verbs with vowel "ё": "даёшь" (give), "пьёшь" (drink)
|
||||
second: Conjugation; -- "вид-Ишь, вид-Им"
|
||||
mixed: Conjugation; -- "хоч-Ешь - хот-Им"
|
||||
dolzhen: Conjugation; -- irregular
|
||||
|
||||
true: Bool;
|
||||
false: Bool;
|
||||
|
||||
active: Voice ;
|
||||
passive: Voice ;
|
||||
imperfective: Aspect;
|
||||
perfective: Aspect ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
The worst case need 6 forms of the present tense in indicative mood
|
||||
(<I>я бегу</I>, <I>ты бежишь</I>, <I>он бежит</I>, <I>мы бежим</I>, <I>вы бежите</I>, <I>они бегут</I>),
|
||||
a past form (singular, masculine: <I>я бежал</I>), an imperative form
|
||||
(singular, second person: <I>беги</I>), an infinitive (<I>бежать</I>).
|
||||
Inherent aspect should also be specified.
|
||||
</P>
|
||||
<PRE>
|
||||
mkVerbum : Aspect -> (presentSgP1,presentSgP2,presentSgP3,
|
||||
presentPlP1,presentPlP2,presentPlP3,
|
||||
pastSgMasculine,imperative,infinitive: Str) -> V ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
Common conjugation patterns are two conjugations:
|
||||
first - verbs ending with <I>-ать/-ять</I> and second - <I>-ить/-еть</I>.
|
||||
Instead of 6 present forms of the worst case, we only need
|
||||
a present stem and one ending (singular, first person):
|
||||
<I>я люб-лю</I>, <I>я жд-у</I>, etc. To determine where the border
|
||||
between stem and ending lies it is sufficient to compare
|
||||
first person from with second person form:
|
||||
<I>я люб-лю</I>, <I>ты люб-ишь</I>. Stems shoud be the same.
|
||||
So the definition for verb <I>любить</I> looks like:
|
||||
regV Imperfective Second <I>люб</I> <I>лю</I> <I>любил</I> <I>люби</I> <I>любить</I>;
|
||||
</P>
|
||||
<PRE>
|
||||
regV :Aspect -> Conjugation -> (stemPresentSgP1,endingPresentSgP1,
|
||||
pastSgP1,imperative,infinitive : Str) -> V ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
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 <I>V</I> type, that have these parameters fixed.
|
||||
We can extract the <I>V</I> from the lexicon.
|
||||
mkV: Verbum -> Voice -> V ;
|
||||
mkPresentV: Verbum -> Voice -> V ;
|
||||
Two-place verbs, and the special case with direct object. Notice that
|
||||
a particle can be included in a <CODE>V</CODE>.
|
||||
</P>
|
||||
<PRE>
|
||||
mkV2 : V -> Str -> Case -> V2 ; -- "войти в дом"; "в", accusative
|
||||
mkV3 : V -> Str -> Str -> Case -> Case -> V3 ; -- "сложить письмо в конверт"
|
||||
dirV2 : V -> V2 ; -- "видеть", "любить"
|
||||
tvDirDir : V -> V3 ;
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>
|
||||
The definitions should not bother the user of the API. So they are
|
||||
hidden from the document.
|
||||
</P>
|
||||
|
||||
<!-- html code generated by txt2tags 2.3 (http://txt2tags.sf.net) -->
|
||||
<!-- cmdline: txt2tags -thtml -\-toc russian/ParadigmsRus.txt -->
|
||||
Reference in New Issue
Block a user