mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-16 08:19:31 -06:00
100 lines
3.6 KiB
Plaintext
100 lines
3.6 KiB
Plaintext
--# -path=.:../abstract:../common:../../prelude
|
|
|
|
concrete CatRus of Cat = CommonX ** open ResRus, Prelude in {
|
|
|
|
flags optimize=all_subs ; coding=utf8 ;
|
|
|
|
lincat
|
|
|
|
-- Tensed/Untensed
|
|
|
|
S = {s : Str} ;
|
|
QS = {s : QForm => Str} ;
|
|
RS = {s : GenNum => Case => Animacy => Str} ;
|
|
SlashS = {s : Str; s2: Str ; c: Case} ;
|
|
|
|
-- Sentence
|
|
-- clause (variable tense) e.g. "John walks"/"John walked"
|
|
Cl ={s : Polarity => ClForm => Str} ;
|
|
Slash = {s : Polarity => ClForm => Str; s2: Str; c: Case} ;
|
|
Imp = { s: Polarity => Gender => Number => Str } ;
|
|
|
|
-- Question
|
|
|
|
QCl = {s :Polarity => ClForm => QForm => Str};
|
|
IP = { s : PronForm => Str ; n : Number ; p : Person ;
|
|
g: PronGen ; anim : Animacy ; pron: Bool} ;
|
|
IComp = {s : Str} ;
|
|
IDet = Adjective ** {n: Number; g: PronGen; c: Case} ;
|
|
|
|
-- Relative
|
|
|
|
RCl = {s : Polarity => ClForm => GenNum => Case => Animacy => Str} ;
|
|
RP = {s : GenNum => Case => Animacy => Str} ;
|
|
|
|
-- Verb
|
|
-- Polarity =>
|
|
Comp, VP = {s : ClForm => GenNum => Person => Str ; asp : Aspect ; w: Voice}
|
|
** {s2 : Str ; s3 : Gender => Number => Str ; negBefore: Bool} ;
|
|
|
|
|
|
-- Adjective
|
|
|
|
AP = {s : AdjForm => Str; p : IsPostfixAdj} ;
|
|
|
|
-- Noun
|
|
|
|
CN = {s : Number => Case => Str; g : Gender; anim : Animacy} ;
|
|
NP = { s : PronForm => Str ; n : Number ; p : Person ;
|
|
g: PronGen ; anim : Animacy ; pron: Bool} ;
|
|
Pron = { s : PronForm => Str ; n : Number ; p : Person ;
|
|
g: PronGen ; pron: Bool} ;
|
|
|
|
-- Determiners (only determinative pronouns
|
|
-- (or even indefinite numerals: "много" (many)) in Russian) are inflected
|
|
-- according to the gender of nouns they determine.
|
|
-- extra parameters (Number and Case) are added for the sake of
|
|
-- the determinative pronoun "bolshinstvo" ("most");
|
|
-- Gender parameter is due to multiple determiners (Numerals in Russian)
|
|
-- like "mnogo"
|
|
-- The determined noun has the case parameter specific for the determiner
|
|
--- DEPREC QuantSg, QuantPl ,
|
|
Det = {s : AdjForm => Str; n: Number; g: PronGen; c: Case} ;
|
|
Predet, Quant= {s : AdjForm => Str; g: PronGen; c: Case} ;
|
|
|
|
-- Numeral
|
|
|
|
Num, Numeral = {s : Case => Gender => Str ; n : Number} ;
|
|
Digits = {s : Str ; n : Number} ; ----
|
|
|
|
-- Structural
|
|
-- The conjunction has an inherent number, which is used when conjoining
|
|
-- noun phrases: "Иван и Маша поют" vs. "Иван или Маша поет"; in the
|
|
-- case of "или", the result is however plural if any of the disjuncts is.
|
|
|
|
Conj = {s : Str ; n : Number} ;
|
|
DConj = {s1,s2 : Str ; n : Number} ;
|
|
Subj = {s : Str} ;
|
|
Prep = {s : Str ; c: Case } ;
|
|
|
|
-- Open lexical classes, e.g. Lexicon
|
|
|
|
V, VS, VV, VQ, VA = Verbum ; -- = {s : VerbForm => Str ; asp : Aspect } ;
|
|
V2, V2A = Verbum ** Complement ;
|
|
V2V, V2S, V2Q = Verbum ** Complement ; --- AR
|
|
V3 = Verbum ** Complement** {s4 : Str; c2: Case} ;
|
|
-- VV = {s : VVForm => Str ; isAux : Bool} ;
|
|
|
|
Ord = {s : AdjForm => Str} ;
|
|
A = {s : Degree => AdjForm => Str} ;
|
|
A2 = A ** Complement ;
|
|
|
|
-- Substantives moreover have an inherent gender.
|
|
N = {s : SubstForm => Str ; g : Gender ; anim : Animacy } ;
|
|
N2 = {s : Number => Case => Str; g : Gender; anim : Animacy} ** Complement ;
|
|
N3 = {s : Number => Case => Str; g : Gender; anim : Animacy} ** Complement ** {s3 : Str; c2: Case} ;
|
|
PN = {s : Case => Str ; g : Gender ; anim : Animacy} ;
|
|
|
|
}
|
|
|