GF Russian Resource Library
GF Russian Resource Library
GF Russian Resource Library
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
param PronForm = PF Case AfterPrep Possessive;<br />
oper Pronoun = { s : PronForm => Str ; n : Number ; p : Person ;<br />
g: PronGen ; pron: Bool} ;<br />
Gender is not morphologically determined for first and second person pronouns.<br />
param PronGen = PGen Gender | PNoGen ;<br />
The following coercion is useful:<br />
oper<br />
pgen2gen : PronGen -> Gender = \p -> case p of {<br />
PGen g => g ;<br />
PNoGen => variants {Masc ; Fem}<br />
} ;<br />
oper<br />
extCase: PronForm -> Case = \pf -> case pf of<br />
{ PF Nom _ _ => Nom ;<br />
PF Gen _ _ => Gen ;<br />
PF Dat _ _ => Dat ;<br />
PF Inst _ _ => Inst ;<br />
PF Acc _ _ => Acc ;<br />
PF Prepos _ _ => Prepos<br />
} ;<br />
mkPronForm: Case -> AfterPrep -> Possessive -> PronForm =<br />
\c,n,p -> PF c n p ;<br />
CommNounPhrase: Type = {s : Number => Case => Str;<br />
g : Gender; anim : Animacy} ;<br />
NounPhrase : Type = { s : PronForm => Str ; n : Number ;<br />
p : Person ; g: PronGen ; anim : Animacy ; pron: Bool} ;<br />
mkNP : Number -> CommNounPhrase -> NounPhrase = \n,chelovek -><br />
{s = \\cas => chelovek.s ! n ! (extCase cas) ;<br />
n = n ; g = PGen chelovek.g ; p = P3 ; pron =False ;<br />
anim = chelovek.anim<br />
} ;<br />
det2NounPhrase : Adjective -> NounPhrase = \eto -><br />
{s = \\pf => eto.s ! (AF (extCase pf) Inanimate (ASg Neut));<br />
n = Sg ; g = PGen Neut ; pron = False ; p = P3 ;<br />
anim = Inanimate } ;<br />
pron2NounPhraseNum : Pronoun -> Animacy -> Number -> NounPhrase =<br />
\ona, anim, num -><br />
{s = ona.s ; n = num ; g = ona.g ;<br />
pron = ona.pron; p = ona.p ; anim = anim } ;<br />
Agreement of NP is a record. We’ll add Gender later.<br />
oper Agr = {n : Number ; p : Person} ;<br />
11