Some additions to lexicon

This commit is contained in:
Roman Suzi
2020-08-16 09:03:46 +03:00
parent 98f65975ae
commit 4abec966a9
12 changed files with 4373 additions and 23 deletions

View File

@@ -12,9 +12,61 @@ lin
ill_VP = mkVP ( P.mkA "больной" "" "1*b" PrefShort) ; ill_VP = mkVP ( P.mkA "больной" "" "1*b" PrefShort) ;
ready_VP = mkVP L.ready_A ; ready_VP = mkVP L.ready_A ;
is_right_VP = mkVP (P.mkA "правый" "" "1a'" PrefShort) ;
is_wrong_VP = mkVP (P.mkA "неправый" "" "1a'" PrefShort) ;
-- : NP -> NP -> Cl ; -- x is married to y / x on naimisissa y:n kanssa (Fin)
married_Cl np1 np2 =
let married : A = case np1.a of {
Ag (GSg Fem) _ => P.mkA "замужем" "" "0" ;
_ => P.mkA "женатый" "" "1a" PrefShort
} in
let cc : Prep = case np1.a of {
Ag (GSg Fem) _ => behind_Prep ;
_ => on_Prep
} in {
subj=np1.s ! Nom ;
adv=[];
verb=copulaEll ; -- ???
dep=[] ;
compl=\\_ => (PositA married).short ! np1.a ++ applyPrep cc np2 ;
a=np1.a ; ---
} ;
-- : NP -> QCl ; -- how far is x / quanto dista x (Ita)
how_far_QCl np = QuestIComp (CompIAdv (AdvIAdv how_IAdv L.far_Adv)) np ;
-- : NP -> QCl ; -- what is x's name / wie heisst x (Ger) -- : NP -> QCl ; -- what is x's name / wie heisst x (Ger)
what_name_QCl np = QuestIAdv how_IAdv (GenericCl (ComplSlash (SlashV2a (P.mkV2 (P.mkV Imperfective "звать" "зову" "зовёт") Acc)) np)) ; what_name_QCl np = QuestIAdv how_IAdv (GenericCl (ComplSlash (SlashV2a (P.mkV2 (P.mkV Imperfective "звать" "зову" "зовёт") Acc)) np)) ;
-- : Card -> VP ; -- x is y years old / x a y ans (Fre)
has_age_VP card = {
adv=\\a => [] ;
verb=copulaEll ;
dep=[] ;
compl=\\p,a => (timeunitAdv card year_Timeunit).s;
} ;
-- : NP -> QCl ; -- how old is x / quanti anni ha x (Ita)
how_old_QCl np = {
subj=how8much_IAdv.s ;
adv=[] ;
compl=\\p => np.s ! Dat ++ "лет";
verb=copulaEll ;
dep=[] ;
a=Ag (GSg Neut) P3
} ;
-- : AP -> Cl ; -- it is warm / il fait chaud (Fre)
weather_adjCl ap = {
subj=[] ;
adv=[] ;
verb=copulaEll ;
dep=ap.short ! Ag (GSg Neut) P3 ;
compl=\\p=>[] ;
a=Ag (GSg Neut) P3
} ;
-- : NP -> NP -> Cl ; -- x's name is y / x s'appelle y (Fre) -- : NP -> NP -> Cl ; -- x's name is y / x s'appelle y (Fre)
have_name_Cl np np1 = { have_name_Cl np np1 = {
subj=[]; subj=[];

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,10 @@ lin
obj_no_Prep = {s="" ; c=Acc ; neggen=True ; hasPrep=False} ; obj_no_Prep = {s="" ; c=Acc ; neggen=True ; hasPrep=False} ;
to2_Prep = P.mkPrep v_prep_mod Acc ; to2_Prep = P.mkPrep v_prep_mod Acc ;
to_dat_Prep = {s="" ; c=Dat ; neggen=False ; hasPrep=False} ; to_dat_Prep = {s="" ; c=Dat ; neggen=False ; hasPrep=False} ;
obj_neg_Prep = lin Prep {s="" ; c=Gen ; neggen=False ; hasPrep=False} ;
nom_Prep = lin Prep {s="" ; c=Nom ; neggen=True ; hasPrep=False} ;
dat_Prep = lin Prep {s="" ; c=Dat ; neggen=False ; hasPrep=False} ;
u_Prep = lin Prep {s="у" ; c=Gen ; neggen=False ; hasPrep=True} ;
on_to_Prep = P.mkPrep "до" Gen ; on_to_Prep = P.mkPrep "до" Gen ;
along_Prep = P.mkPrep "по" Loc ; along_Prep = P.mkPrep "по" Loc ;
from2_Prep = from2 ; from2_Prep = from2 ;
@@ -18,10 +22,6 @@ lin
be_V3 = P.mkV3 be_ell_V nom_Prep dat_Prep; be_V3 = P.mkV3 be_ell_V nom_Prep dat_Prep;
oper oper
nom_Prep : Prep = lin Prep {s="" ; c=Nom ; neggen=True ; hasPrep=False} ;
obj_neg_Prep : Prep = lin Prep {s="" ; c=Gen ; neggen=False ; hasPrep=False} ;
dat_Prep : Prep = lin Prep {s="" ; c=Dat ; neggen=False ; hasPrep=False} ;
u_Prep : Prep = lin Prep {s="у" ; c=Gen ; neggen=False ; hasPrep=True} ;
est_V : V = lin V { est_V : V = lin V {
inf="есть"; inf="есть";
infrefl="" ; infrefl="" ;

View File

@@ -1,16 +1,19 @@
abstract ExtraRusAbs = Cat ** { abstract ExtraRusAbs = Cat ** {
fun fun
obj_no_Prep : Prep ;
obj_neg_Prep : Prep ;
about_Prep : Prep ; about_Prep : Prep ;
to2_Prep : Prep ;
to_dat_Prep : Prep ;
on_to_Prep : Prep ;
along_Prep : Prep ; along_Prep : Prep ;
be_V3 : V3 ;
dat_Prep : Prep ;
from2_Prep : Prep ; from2_Prep : Prep ;
have_V3 : V3 ;
have2_V3 : V3 ; have2_V3 : V3 ;
have_not_V3 : V3 ; have_not_V3 : V3 ;
be_V3 : V3 ; have_V3 : V3 ;
nom_Prep : Prep ;
obj_neg_Prep : Prep ;
obj_no_Prep : Prep ;
on_to_Prep : Prep ;
to2_Prep : Prep ;
to_dat_Prep : Prep ;
u_Prep : Prep ;
} }

View File

@@ -125,6 +125,9 @@ lin
-- : A -> Ord ; -- : A -> Ord ;
OrdSuperl a = long_superlative a ; OrdSuperl a = long_superlative a ;
-- : Numeral -> A -> Ord ; -- third largest
OrdNumeralSuperl num a = ord_long_superlative num.o a ;
-- : Pron -> Quant ; -- my (house) -- : Pron -> Quant ; -- my (house)
PossPron pron = { PossPron pron = {
s=mkPronTable pron.poss ; s=mkPronTable pron.poss ;

View File

@@ -128,6 +128,9 @@ oper
mkA : Str -> Str -> A ; -- same, but comparative given as a second argument mkA : Str -> Str -> A ; -- same, but comparative given as a second argument
mkA : Str -> Str -> (idx : Str) -> A ; -- nom masc, comparative and third parameter is Zaliznyak's dictionary index, for example, "1a" mkA : Str -> Str -> (idx : Str) -> A ; -- nom masc, comparative and third parameter is Zaliznyak's dictionary index, for example, "1a"
mkA : Str -> Str -> (idx : Str) -> ShortFormPreference -> A ; -- same, but with short form preference given mkA : Str -> Str -> (idx : Str) -> ShortFormPreference -> A ; -- same, but with short form preference given
mkA : Str -> ZAIndex -> A ;
mkA : Str -> Str -> ZAIndex -> A ;
mkA : Str -> Str -> ZAIndex -> ShortFormPreference -> A
} ; } ;
ShortenA : A -> A ; ShortenA : A -> A ;
@@ -149,6 +152,7 @@ oper
mkV : (inf : Str) -> (sg1 : Str) -> V ; -- guess some I conjugation verbs (not "ё") from infinitive and Sg P1, perfective, transitive mkV : (inf : Str) -> (sg1 : Str) -> V ; -- guess some I conjugation verbs (not "ё") from infinitive and Sg P1, perfective, transitive
mkV : (inf : Str) -> (sg1 : Str) -> (sg3 : Str) -> V ; -- guess verb forms given Inf, Sg P1, Sg P3, perfective, transitive mkV : (inf : Str) -> (sg1 : Str) -> (sg3 : Str) -> V ; -- guess verb forms given Inf, Sg P1, Sg P3, perfective, transitive
mkV : Aspect -> (inf : Str) -> (sg1 : Str) -> (sg3 : Str) -> V ; -- same, but aspect as first parameter mkV : Aspect -> (inf : Str) -> (sg1 : Str) -> (sg3 : Str) -> V ; -- same, but aspect as first parameter
mkV : Aspect -> Transitivity -> (inf : Str) -> V ; -- for irregular verbs
mkV : Aspect -> Transitivity -> (inf : Str) -> (sg1 : Str) -> (sg3 : Str) -> V ; -- aspect, transitivity, Inf, Sg P1, Sg P3 mkV : Aspect -> Transitivity -> (inf : Str) -> (sg1 : Str) -> (sg3 : Str) -> V ; -- aspect, transitivity, Inf, Sg P1, Sg P3
mkV : Aspect -> Transitivity -> (inf : Str) -> (sg1 : Str) -> (sg3 : Str) -> (idx : Str) -> V -- aspect, transitivity, Inf, Sg P1, Sg P3 and index from Zaliznyak's dictionary, eg "14a" mkV : Aspect -> Transitivity -> (inf : Str) -> (sg1 : Str) -> (sg3 : Str) -> (idx : Str) -> V -- aspect, transitivity, Inf, Sg P1, Sg P3 and index from Zaliznyak's dictionary, eg "14a"
} ; } ;
@@ -275,10 +279,18 @@ oper
= \nom -> lin A (guessAdjectiveForms nom) ; = \nom -> lin A (guessAdjectiveForms nom) ;
mkA : Str -> Str -> A mkA : Str -> Str -> A
= \nom, comp -> lin A ((guessAdjectiveForms nom) ** {comp=comp}) ; = \nom, comp -> lin A ((guessAdjectiveForms nom) ** {comp=comp}) ;
mkA : Str -> Z.ZAIndex -> A
= \nom, zi -> lin A (makeAdjectiveFormsUseIndex nom "" zi PreferFull) ;
mkA : Str -> Str -> Str -> A mkA : Str -> Str -> Str -> A
= \nom, comp, zi -> lin A (makeAdjectiveForms nom comp zi PreferFull) ; = \nom, comp, zi -> lin A (makeAdjectiveForms nom comp zi PreferFull) ;
mkA : Str -> Str -> Z.ZAIndex -> A
= \nom, comp, zi -> lin A (makeAdjectiveFormsUseIndex nom comp zi PreferFull) ;
mkA : Str -> Str -> Str -> ShortFormPreference -> A mkA : Str -> Str -> Str -> ShortFormPreference -> A
= \nom, comp, zi, spf -> lin A (makeAdjectiveForms nom comp zi spf) ; = \nom, comp, zi, spf -> lin A (makeAdjectiveForms nom comp zi spf) ;
mkA : Str -> Str -> Z.ZAIndex -> ShortFormPreference -> A
= \nom, comp, zi, spf -> lin A (makeAdjectiveFormsUseIndex nom comp zi spf) ;
mkA : PronForms -> A
= \pf -> pronToAdj pf ;
} ; } ;
ShortenA : A -> A ShortenA : A -> A
@@ -310,6 +322,8 @@ oper
= \asp,inf,sg1 -> lin V (guessVerbForms asp Transitive inf sg1 (Z.sg1StemFromVerb sg1 + "ет")) ; = \asp,inf,sg1 -> lin V (guessVerbForms asp Transitive inf sg1 (Z.sg1StemFromVerb sg1 + "ет")) ;
mkV : Aspect -> Str -> Str -> Str -> V mkV : Aspect -> Str -> Str -> Str -> V
= \asp,inf,sg1,sg3 -> lin V (guessVerbForms asp Transitive inf sg1 sg3) ; = \asp,inf,sg1,sg3 -> lin V (guessVerbForms asp Transitive inf sg1 sg3) ;
mkV : Aspect -> Transitivity -> Str -> V -- for irregular verbs
= \asp,tran,inf -> lin V (guessIrregularVerbForms asp tran inf) ;
mkV : Aspect -> Transitivity -> Str -> Str -> V mkV : Aspect -> Transitivity -> Str -> Str -> V
= \asp,tran,inf,sg1 -> lin V (guessVerbForms asp tran inf sg1 (Z.sg1StemFromVerb sg1 + "ет")) ; = \asp,tran,inf,sg1 -> lin V (guessVerbForms asp tran inf sg1 (Z.sg1StemFromVerb sg1 + "ет")) ;
mkV : Aspect -> Transitivity -> Str -> Str -> Str -> V mkV : Aspect -> Transitivity -> Str -> Str -> Str -> V

View File

@@ -11,7 +11,7 @@ oper
small_num : pattern Str = #("1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|"10"|"11"|"12"|"13"|"14"|"15"|"16") ; small_num : pattern Str = #("1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|"10"|"11"|"12"|"13"|"14"|"15"|"16") ;
stress_schema : pattern Str = #("a'"|"a"|"b'"|"b"|"c''"|"c'"|"c"|"d'"|"d"|"e"|"f''"|"f'"|"f") ; stress_schema : pattern Str = #("a'"|"a"|"b'"|"b"|"c''"|"c'"|"c"|"d'"|"d"|"e"|"f''"|"f'"|"f") ;
adj_stress_schema : pattern Str = #("b/c''"|"a/c''"|"a/b'"|"a/c'"|"b/a'"|"b/b'"|"b/c'"|"b/c"|"b/a"|"b/b"|"a/a'"|"a/a"|"a/c"|"a/b"|"a'"|"b'"|"a"|"b"|"c") ; adj_stress_schema : pattern Str = #("b/c''"|"a/c''"|"a/b'"|"a/c'"|"b/a'"|"b/b'"|"b/c'"|"b/c"|"b/a"|"b/b"|"a/a'"|"a/a"|"a/c"|"a/b"|"a'"|"b'"|"a"|"b"|"c") ;
verb_stress_schema : pattern Str = #("a/c'"|"b/c'"|"c/c'"|"a/c"|"b/c"|"c/c"|"a/b"|"a/c"|"b/b"|"b/c"|"c/b"|"c/c"|"a"|"b"|"c") ; verb_stress_schema : pattern Str = #("a/c'"|"b/c'"|"c/c'"|"a/c"|"b/c"|"c/c"|"a/b"|"a/c"|"b/b"|"b/c"|"c/b"|"c/c"|"c'"|"a"|"b"|"c") ;
param param
Gender = Masc | Fem | Neut ; -- род Gender = Masc | Fem | Neut ; -- род

View File

@@ -233,7 +233,7 @@ oper
preferShort : ShortFormPreference preferShort : ShortFormPreference
} ; } ;
noShorts : PronForms -> AdjForms -- ??? pronToAdj : PronForms -> AdjForms
= \base -> base ** { = \base -> base ** {
sm = [] ; sm = [] ;
sf = [] ; sf = [] ;
@@ -361,13 +361,20 @@ oper
_ => doGuessAdjectiveForms word _ => doGuessAdjectiveForms word
} ; } ;
doMakeAdjectiveForms : Str -> Str -> Str -> ShortFormPreference -> AdjForms doMakeAdjectiveForms : Str -> Str -> ZAIndex -> ShortFormPreference -> AdjForms
= \nom, comp, zi, spf -> = \nom, comp, zi, spf ->
let af = makeAdjective nom (parseAdjIndex zi) spf in let af = makeAdjective nom zi spf in
let comp' = case (Predef.length comp) of {0 => af.comp; _ => comp} in let comp' = case (Predef.length comp) of {0 => af.comp; _ => comp} in
af ** {comp=comp'} ; af ** {comp=comp'} ;
makeAdjectiveForms : Str -> Str -> Str -> ShortFormPreference -> AdjForms makeAdjectiveForms : Str -> Str -> Str -> ShortFormPreference -> AdjForms
= \nom, comp, zi_str, spf ->
let zi = parseAdjIndex zi_str in case nom of {
s + "ся" => appendToAF (doMakeAdjectiveForms s comp zi spf) "ся" ;
_ => doMakeAdjectiveForms nom comp zi spf
} ;
makeAdjectiveFormsUseIndex : Str -> Str -> ZAIndex -> ShortFormPreference -> AdjForms
= \nom, comp, zi, spf -> case nom of { = \nom, comp, zi, spf -> case nom of {
s + "ся" => appendToAF (doMakeAdjectiveForms s comp zi spf) "ся" ; s + "ся" => appendToAF (doMakeAdjectiveForms s comp zi spf) "ся" ;
_ => doMakeAdjectiveForms nom comp zi spf _ => doMakeAdjectiveForms nom comp zi spf
@@ -410,6 +417,31 @@ oper
p = af.p p = af.p
} ; } ;
ord_long_superlative : PronForms -> AdjForms -> AdjForms
= \pf,af -> {
msnom = pf.msnom ++ the_most.msnom ++ af.msnom ;
fsnom = pf.fsnom ++ the_most.fsnom ++ af.fsnom ;
nsnom = pf.nsnom ++ the_most.nsnom ++ af.nsnom ;
pnom = pf.pnom ++ the_most.pnom ++ af.pnom ;
msgen = pf.msgen ++ the_most.msgen ++ af.msgen ;
fsgen = pf.fsgen ++ the_most.fsgen ++ af.fsgen ;
pgen = pf.pgen ++ the_most.pgen ++ af.pgen ;
msdat = pf.msdat ++ the_most.msdat ++ af.msdat ;
fsacc = pf.fsacc ++ the_most.fsacc ++ af.fsacc ;
msins = pf.msins ++ the_most.msins ++ af.msins ;
fsins = pf.fsins ++ the_most.fsins ++ af.fsins ;
pins = pf.pins ++ the_most.pins ++ af.pins ;
msprep= pf.msprep++ the_most.msprep ++ af.msprep;
sm = pf.msnom ++ the_most.sm ++ af.sm ;
sf = pf.fsnom ++ the_most.sf ++ af.sf ;
sn = pf.nsnom ++ the_most.sn ++ af.sn ;
sp = pf.pnom ++ the_most.sp ++ af.sp ;
comp = pf.msnom ++ the_most.comp ++ af.comp ;
g=af.g ;
preferShort = PreferFull ;
p = af.p
} ;
prependPF : Str -> PronForms -> PronForms prependPF : Str -> PronForms -> PronForms
= \s,pf -> { = \s,pf -> {
msnom = s ++ pf.msnom ; msnom = s ++ pf.msnom ;
@@ -535,6 +567,22 @@ oper
let corr_tran = case guessed.p2 of {Reflexive=>Intransitive ; NonReflexive=>tran} in let corr_tran = case guessed.p2 of {Reflexive=>Intransitive ; NonReflexive=>tran} in
makeVerb inf sg1 sg3 guessed.p1 asp corr_tran guessed.p2 ; makeVerb inf sg1 sg3 guessed.p1 asp corr_tran guessed.p2 ;
guessIrregularVerbForms : Aspect -> Transitivity -> Str -> VerbForms
= \asp,tran,inf -> case inf of {
s + ("есть" |"есться") => makeVerbEst asp tran inf ;
s + ("дать" |"даться") => makeVerbDat6 asp tran inf ;
s + ("хотеть"|"хотеться") => makeVerbKhotet6 asp tran inf ;
s + ("быть" |"быться") => makeVerbByt6 asp tran inf ;
"идти" => makeVerbJti asp tran inf ;
s + ("йти" |"йтись") => makeVerbJti asp tran inf ;
_ => let stem_info = infStemFromVerb inf in
let stem = stem_info.p1 in
guessVerbForms asp tran inf (stem+"ю") (stem+"ет")
} ;
mkVplus : VerbForms -> VerbForms
= \vf -> vf ;
quickGuessVerbForms : Str -> VerbForms quickGuessVerbForms : Str -> VerbForms
= \inf -> = \inf ->
let stem_info = infStemFromVerb inf in let stem_info = infStemFromVerb inf in
@@ -764,7 +812,7 @@ oper
BeFuture => case <m,temp, pol.p> of { BeFuture => case <m,temp, pol.p> of {
<Ind, Past, _> => subj ++ pol.s ++ adv ++ verbPastAgree vf a "" ; <Ind, Past, _> => subj ++ pol.s ++ adv ++ verbPastAgree vf a "" ;
<Ind, Pres, Pos> => subj ++ pol.s ++ adv ++ verbPresAgree vf a ; <Ind, Pres, Pos> => subj ++ pol.s ++ adv ++ verbPresAgree vf a ;
<Ind, Pres, Neg> => subj ++ "нет" ++ adv ; <Ind, Pres, Neg> => subj ++ "не" ++ adv ;
<Ind, Fut, _> => subj ++ pol.s ++ adv ++ verbFutAgree vf a ; <Ind, Fut, _> => subj ++ pol.s ++ adv ++ verbFutAgree vf a ;
<Ind, Cond, _> => subj ++ pol.s ++ adv ++ verbPastAgree vf a "бы" ; <Ind, Cond, _> => subj ++ pol.s ++ adv ++ verbPastAgree vf a "бы" ;
<Sbjv, _, _> => subj ++ pol.s ++ adv ++ verbPastAgree vf a "бы" ; <Sbjv, _, _> => subj ++ pol.s ++ adv ++ verbPastAgree vf a "бы" ;
@@ -985,6 +1033,14 @@ oper
-- Possessive pronouns are more like adjectives -- Possessive pronouns are more like adjectives
mkP : Str -> Str -> PronForms
= \msnom, zi ->
case zi of {
"6*a" => pronoun6AstA msnom ;
"2*b" => pronoun2AstB msnom ;
_ => pronoun1A msnom -- add more when needed
} ;
doPossessivePronSgP1P2 : Str -> PronForms doPossessivePronSgP1P2 : Str -> PronForms
= \mo -> { = \mo -> {
msnom = mo + "й" ; msnom = mo + "й" ;

View File

@@ -144,9 +144,9 @@ lin
size = NumAll size = NumAll
} ; } ;
only_Predet = (adjFormsAdjective (noShorts only_Pron)) ** {size=Num1} ; only_Predet = (adjFormsAdjective (pronToAdj only_Pron)) ** {size=Num1} ;
most_Predet = (makeAdjectiveFromNoun (nounFormsNoun (guessNounForms "большинство"))) ** {size=Num5} ; most_Predet = (makeAdjectiveFromNoun (nounFormsNoun (guessNounForms "большинство"))) ** {size=Num5} ;
all_Predet = (adjFormsAdjective (noShorts all_Pron)) ** {size=NumAll}; all_Predet = (adjFormsAdjective (pronToAdj all_Pron)) ** {size=NumAll};
not_Predet = (adjFormsAdjective (mkA "не" "" "0")) ** {size=Num1} ; not_Predet = (adjFormsAdjective (mkA "не" "" "0")) ** {size=Num1} ;
how8many_IDet = { how8many_IDet = {

View File

@@ -759,6 +759,25 @@ oper
pronounAdj1AstA : Str -> PronForms pronounAdj1AstA : Str -> PronForms
= \word -> makeAdjective word (ZA 1 Ast A_ NoC) PreferFull ; = \word -> makeAdjective word (ZA 1 Ast A_ NoC) PreferFull ;
pronoun1A : Str -> PronForms
= \word -> -- Христов
let stem = word in
{
msnom=stem ;
fsnom=stem +"а" ;
nsnom=stem +"о" ;
pnom=stem +"ы" ;
msgen=stem +"а" ;
fsgen=stem +"ой" ;
pgen=stem +"ых" ;
msdat=stem +"у" ;
fsacc=stem +"у" ;
msins=stem +"ым" ;
fsins=stem +"ой" ; -- ою
pins=stem +"ыми" ;
msprep=stem +"ом" ;
} ;
pronoun2AstB : Str -> PronForms pronoun2AstB : Str -> PronForms
= \word -> -- весь = \word -> -- весь
let cmp_base : Str = case word of {s + "ь" => s ; _ => word} in -- let cmp_base : Str = case word of {s + "ь" => s ; _ => word} in --
@@ -881,7 +900,7 @@ oper
s + ("ет" | "ется") => <s, I> ; s + ("ет" | "ется") => <s, I> ;
s + ("ёт" | "ётся") => <s, I'> ; s + ("ёт" | "ётся") => <s, I'> ;
s + ("ит" | "ится") => <s, II> ; s + ("ит" | "ится") => <s, II> ;
_ => Predef.error "Error: incorrect Sg P3 Pres/Fut" _ => Predef.error ("Error: incorrect Sg P3 Pres/Fut:" + v)
} ; } ;
parseVerbIndex : Str -> ZVIndex parseVerbIndex : Str -> ZVIndex
@@ -1045,4 +1064,149 @@ oper
<_, s> => psgm+"ши" <_, s> => psgm+"ши"
} ; } ;
} ; } ;
makeVerbKhotet6 : Aspect -> Transitivity -> Str -> VerbForms
= \asp,tran,inf ->
let inf1 = dropRefl inf in
let stem_info = infStemFromVerb inf in
let inf_s : Str = stem_info.p1 in
let com : Str = case inf_s of {c + "те" => c ; _ => inf_s} in
let refl = stem_info.p2 in {
inf=inf1 ;
infrefl=inf1 + "ся" ;
prsg1=com + "чу";
prsg2=com + "чешь";
prsg3=com + "чет";
prpl1=com + "тим";
prpl2=com + "тите";
prpl3=com + "тят";
fut=NormalFuture ; -- ?
psgm=com + "тел";
psgs=com + "те";
isg2=com + "ти";
isg2refl=com + "тись";
ipl1=[];
pppss="";
prtr=com + "тя";
ptr=com + "тев";
asp=asp;
refl=refl;
tran=tran
} ;
makeVerbEst : Aspect -> Transitivity -> Str -> VerbForms
= \asp,tran,inf ->
let inf1 = dropRefl inf in
let stem_info = infStemFromVerb inf in
let inf_s : Str = stem_info.p1 in
let com : Str = case inf_s of {c + "с" => c ; _ => inf_s} in
let refl = stem_info.p2 in {
inf=inf1 ;
infrefl=inf1 + "ся" ;
prsg1=com + "м";
prsg2=com + "шь";
prsg3=com + "ст";
prpl1=com + "дим";
prpl2=com + "дите";
prpl3=com + "дят";
fut=NormalFuture ;
psgm=com + "л";
psgs=com ;
isg2=com + "шь";
isg2refl=com + "шься";
ipl1=[];
pppss="";
prtr=com + "дя";
ptr=com + "в";
asp=asp;
refl=refl;
tran=tran
} ;
makeVerbDat6 : Aspect -> Transitivity -> Str -> VerbForms
= \asp,tran,inf ->
let inf1 = dropRefl inf in
let stem_info = infStemFromVerb inf in
let com : Str = stem_info.p1 in
let refl = stem_info.p2 in {
inf=inf1 ;
infrefl=inf1 + "ся" ;
prsg1=com + "м";
prsg2=com + "шь";
prsg3=com + "ст";
prpl1=com + "дим";
prpl2=com + "дите";
prpl3=com + "дут";
fut=NormalFuture ;
psgm=com + "л";
psgs=com ;
isg2=com + "й";
isg2refl=com + "йся";
ipl1=[];
pppss="";
prtr=com + "вая";
ptr=com + "в";
asp=asp;
refl=refl;
tran=tran
} ;
makeVerbByt6 : Aspect -> Transitivity -> Str -> VerbForms
= \asp,tran,inf ->
let inf1 = dropRefl inf in
let stem_info = infStemFromVerb inf in
let inf_s : Str = stem_info.p1 in
let com : Str = case inf_s of {c + "ы" => c ; _ => inf_s} in
let refl = stem_info.p2 in {
inf=inf1 ;
infrefl=inf1 + "ся" ;
prsg1=com + "уду";
prsg2=com + "удешь";
prsg3=com + "удет";
prpl1=com + "удем";
prpl2=com + "удете";
prpl3=com + "удут";
fut=NormalFuture ;
psgm=com + "ыл";
psgs=com + "ы";
isg2=com + "удь";
isg2refl=com + "удься";
ipl1=[];
pppss="";
prtr=com + "ывая";
ptr=com + "ыв";
asp=asp;
refl=refl;
tran=tran
} ;
makeVerbJti: Aspect -> Transitivity -> Str -> VerbForms
= \asp,tran,inf ->
let inf1 = dropRefl inf in
let stem_info = infStemFromVerb inf in
let inf_s : Str = stem_info.p1 in
let com : Str = case inf_s of {"ид" => "и" ; c + "й" => inf_s ; _ => inf_s} in
let comPast : Str = case inf_s of {"ид" => "ш" ; _ => (Predef.tk 1 inf_s) + "ш" } in
let refl = stem_info.p2 in {
inf=inf1 ;
infrefl=inf1 + "сь" ;
prsg1=com + "ду";
prsg2=com + "дёшь";
prsg3=com + "дёт";
prpl1=com + "дём";
prpl2=com + "дёте";
prpl3=com + "дут";
fut=NormalFuture ;
psgm=comPast + "ёл";
psgs=comPast ;
isg2=com + "ди";
isg2refl=com + "дись";
ipl1=[];
pppss="";
prtr=com + "дя";
ptr=[];
asp=asp;
refl=refl;
tran=tran
} ;
} }

View File

@@ -88,6 +88,10 @@ gt UttS (UseCl (TTAnt TPres AAnter) PPos (PredVP (UsePron he_Pron) (ComplSlash (
gt UttS (UseCl (TTAnt TPres AAnter) PPos (PredVP (UsePron he_Pron) (ComplSlash (SlashV2a wait_V2) (MassNP (PartNP (AdvCN (UseN car_N) (PrepNP possess_Prep (UsePron she_Pron))) (DetCN (DetQuant DefArt NumPl) (UseN window_N))))))) | l -treebank gt UttS (UseCl (TTAnt TPres AAnter) PPos (PredVP (UsePron he_Pron) (ComplSlash (SlashV2a wait_V2) (MassNP (PartNP (AdvCN (UseN car_N) (PrepNP possess_Prep (UsePron she_Pron))) (DetCN (DetQuant DefArt NumPl) (UseN window_N))))))) | l -treebank
gt UttS (UseCl (TTAnt ? AAnter) ? (PredVP (UsePron he_Pron) (ComplSlash (VPSlashPrep (ComplSlash (VPSlashPrep (ComplSlash (SlashV2a count_V2) (DetCN (DetQuant IndefArt NumPl) (UseN car_N))) possess_Prep) (DetNP (DetQuant (PossPron she_Pron) NumPl))) part_Prep) (DetCN (DetQuant IndefArt NumPl) (UseN window_N))))) | l -treebank gt UttS (UseCl (TTAnt ? AAnter) ? (PredVP (UsePron he_Pron) (ComplSlash (VPSlashPrep (ComplSlash (VPSlashPrep (ComplSlash (SlashV2a count_V2) (DetCN (DetQuant IndefArt NumPl) (UseN car_N))) possess_Prep) (DetNP (DetQuant (PossPron she_Pron) NumPl))) part_Prep) (DetCN (DetQuant IndefArt NumPl) (UseN window_N))))) | l -treebank
gt MassNP (AdjCN (AdjOrd (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ) ) (UseN apple_N)) | l -treebank
gt MassNP (AdjCN ( AdjOrd (OrdNumeralSuperl (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) big_A) ) (UseN car_N)) |l -treebank
gt TFullStop (PhrUtt NoPConj (UttImpSg PPos (ImpVP (ComplSlash (SlashV2a do_V2) (MassNP (AdjCN (AdjOrd (OrdNumeralSuperl (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) big_A)) (UseN tree_N)))))) NoVoc) TEmpty |l -treebank
gt UttS (UseCl (TTAnt TCond AAnter) PNeg (PredVP (MassNP (UseN worm_N)) (ComplSlash (VPSlashPrep (UseV sit_V) in_Prep) (MassNP (PossNP (AdjCN (PositA red_A) (UseN apple_N)) (DetNP (DetQuant (PossPron he_Pron) NumSg))))))) gt UttS (UseCl (TTAnt TCond AAnter) PNeg (PredVP (MassNP (UseN worm_N)) (ComplSlash (VPSlashPrep (UseV sit_V) in_Prep) (MassNP (PossNP (AdjCN (PositA red_A) (UseN apple_N)) (DetNP (DetQuant (PossPron he_Pron) NumSg)))))))
gt UttS (UseCl (TTAnt TCond AAnter) PNeg (PredVP (MassNP (UseN worm_N)) (ComplSlash (VPSlashPrep (UseV sit_V) in_Prep) (MassNP (PossNP (AdjCN (CAdvAP less_CAdv (PositA full_A) (MassNP (UseN2 brother_N2))) (UseN apple_N)) (DetNP (DetQuant (PossPron he_Pron) NumSg))))))) gt UttS (UseCl (TTAnt TCond AAnter) PNeg (PredVP (MassNP (UseN worm_N)) (ComplSlash (VPSlashPrep (UseV sit_V) in_Prep) (MassNP (PossNP (AdjCN (CAdvAP less_CAdv (PositA full_A) (MassNP (UseN2 brother_N2))) (UseN apple_N)) (DetNP (DetQuant (PossPron he_Pron) NumSg)))))))
@@ -120,9 +124,25 @@ gt TFullStop (PhrUtt NoPConj (UttS (UseCl (TTAnt TFut AAnter) PPos (PredVP (UseP
gt UseCl (TTAnt TPast ASimul) PPos (PredVP (MassNP (UseN boy_N)) (AdvVP (UseV fly_V) (PrepCN on_Prep (UseN (CompoundN carpet_N airplane_N))))) |l -treebank gt UseCl (TTAnt TPast ASimul) PPos (PredVP (MassNP (UseN boy_N)) (AdvVP (UseV fly_V) (PrepCN on_Prep (UseN (CompoundN carpet_N airplane_N))))) |l -treebank
gt UseQCl ? ? (QuestIAdv how8much_IAdv (PredVP ( DetCN (DetQuant this_Quant NumSg) (UseN woman_N)) (UseV walk_V))) | l -treebank gt UseQCl ? ? (QuestIAdv how8much_IAdv (PredVP ( DetCN (DetQuant this_Quant NumSg) (UseN woman_N)) (UseV walk_V))) | l -treebank
gt UseCl ? ? (married_Cl (MassNP (UseN man_N)) (MassNP (UseN woman_N))) |l -treebank
gt UseCl ? ? (married_Cl (MassNP (UseN woman_N)) (MassNP (UseN man_N))) |l -treebank
gt UseCl ? ? (married_Cl ((DetCN (DetQuant (PossPron i_Pron) NumPl)) (UseN man_N)) (MassNP (UseN woman_N))) |l -treebank
gt UseCl ? ? (married_Cl (MassNP (UseN woman_N)) ( (DetCN (DetQuant (PossPron i_Pron) NumPl)) (UseN man_N) ) ) |l -treebank
gt UseCl ? ? (married_Cl ((DetCN (DetQuant (PossPron i_Pron) NumPl)) (UseN man_N)) ((DetCN (DetQuant (PossPron youSg_Pron) NumPl)) (UseN woman_N)) ) |l -treebank
gt UseComp (CompAdv here_Adv) | l -treebank gt UseComp (CompAdv here_Adv) | l -treebank
gt PredSCVP (EmbedVP (UseV think_V)) thirsty_VP | l -treebank gt PredSCVP (EmbedVP (UseV think_V)) thirsty_VP | l -treebank
gt UseCl (TTAnt TPres AAnter) PPos (CleftNP (UsePron ?) (UseRCl (TTAnt TPast AAnter) PPos (RelVP IdRP is_wrong_VP))) | l -treebank
gt UseCl (TTAnt TPres AAnter) PPos (CleftNP (UsePron he_Pron) (UseRCl (TTAnt TPast AAnter) ? (RelVP IdRP is_right_VP))) | l -treebank
gt AdjCN (PositA blue_A) (AdjCN (PositA big_A) (UseN house_N)) | l -treebank
gt AdjCN (AdjOrd (OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))))) (AdjCN (AdjOrd (OrdSuperl blue_A)) (UseN house_N)) | l -treebank
gt AdjCN (AdjOrd (OrdNumeralSuperl (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) blue_A)) (UseN house_N)| l -treebank
gt UttAP (AdjOrd (OrdNumeralSuperl (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) small_A)) | l -treebank
gt RelNP (MassNP (UseN woman_N)) (UseRCl (TTAnt ? ASimul) ? (RelCl (PredVP ( MassNP (AdjCN (AdjOrd (OrdNumeralSuperl (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) big_A)) (UseN tree_N)) ) (ComplSlashPartLast (SlashV2a love_V2) (UsePron she_Pron))))) | l -treebank
gt RelCl (PredVP (UsePN john_PN) (ComplSlashPartLast (SlashV2a love_V2) (UsePron she_Pron))) | l -treebank gt RelCl (PredVP (UsePN john_PN) (ComplSlashPartLast (SlashV2a love_V2) (UsePron she_Pron))) | l -treebank
gt UseRCl ? ? ( RelCl (PredVP (UsePN john_PN) (ComplSlashPartLast (SlashV2a love_V2) (UsePron she_Pron))) ) | l -treebank gt UseRCl ? ? ( RelCl (PredVP (UsePN john_PN) (ComplSlashPartLast (SlashV2a love_V2) (UsePron she_Pron))) ) | l -treebank
gt RelNP (MassNP (UseN woman_N)) (UseRCl (TTAnt ? ASimul) ? (RelCl (PredVP (UsePN john_PN) (ComplSlashPartLast (SlashV2a love_V2) (UsePron she_Pron))))) | l -treebank gt RelNP (MassNP (UseN woman_N)) (UseRCl (TTAnt ? ASimul) ? (RelCl (PredVP (UsePN john_PN) (ComplSlashPartLast (SlashV2a love_V2) (UsePron she_Pron))))) | l -treebank
@@ -199,6 +219,17 @@ gt ProgrVP (ComplDirectVQ know_VQ (UttAdv (weekdayNextAdv sunday_Weekday))) | l
gt UseCl (TTAnt TFut AAnter) PPos (PredVP (UsePN john_PN) (ComplDirectVS say_VS (UttAdv (weekdayNextAdv sunday_Weekday)))) | l -treebank gt UseCl (TTAnt TFut AAnter) PPos (PredVP (UsePN john_PN) (ComplDirectVS say_VS (UttAdv (weekdayNextAdv sunday_Weekday)))) | l -treebank
gt UseCl (TTAnt TPast AAnter) PPos (PredVP (UsePN john_PN) (ComplDirectVQ know_VQ (UttAdv (weekdayNextAdv sunday_Weekday)))) | l -treebank gt UseCl (TTAnt TPast AAnter) PPos (PredVP (UsePN john_PN) (ComplDirectVQ know_VQ (UttAdv (weekdayNextAdv sunday_Weekday)))) | l -treebank
gt has_age_VP ( (AdNum at_least_AdN (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n8))))))) ) |l -treebank
gt UseCl ? ? (PredVP (UsePN john_PN) ( has_age_VP ( (AdNum at_least_AdN (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n8))))))) ) ) ) |l -treebank
gt VPSlashPrep (has_age_VP (AdNum at_least_AdN (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n8)))))))) to_dat_Prep | l -treebank
gt ComplSlash (VPSlashPrep (has_age_VP (AdNum at_least_AdN (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n8)))))))) to_dat_Prep) (UsePN john_PN) |l -treebank
gt UseCl ? ? (ImpersCl (ComplSlash (VPSlashPrep (has_age_VP (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n8))))))) to_dat_Prep) (UsePN john_PN))) | l -treebank
gt UseCl ? ? (ImpersCl (ComplSlash (VPSlashPrep (has_age_VP (AdNum at_least_AdN (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n8)))))))) to_dat_Prep) (UsePN john_PN))) | l -treebank
gt UseCl ? ? (ImpersCl (ComplSlash (VPSlashPrep (has_age_VP (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))) to_dat_Prep) (MassNP (UseN apple_N)))) | l -treebank
gt UseCl ? ? (ImpersCl (ComplSlash (VPSlashPrep (has_age_VP (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot01))))))) to_dat_Prep) (UsePN john_PN))) | l -treebank
gt FocusObj (UsePron she_Pron) ( UseSlash (TTAnt TCond AAnter) ? (SlashVP (UsePN john_PN) (Slash3V3 talk_V3 (UsePN paris_PN))) ) | l -treebank gt FocusObj (UsePron she_Pron) ( UseSlash (TTAnt TCond AAnter) ? (SlashVP (UsePN john_PN) (Slash3V3 talk_V3 (UsePN paris_PN))) ) | l -treebank
gt UseCl (TTAnt ? ASimul) PNeg (ExistsNP (MassNP (UseN number_N))) | l -treebank gt UseCl (TTAnt ? ASimul) PNeg (ExistsNP (MassNP (UseN number_N))) | l -treebank
@@ -211,3 +242,9 @@ gt UseCl ? ? (PredVP (somebody_NP) (ComplVA become_VA ( SentAP (UseA2 easy_A2V)
gt UseCl ? ? ( PredSCVP (EmbedVP (UseV play_V)) (UseComp (CompAP (PositA clean_A)) ) ) |l -treebank gt UseCl ? ? ( PredSCVP (EmbedVP (UseV play_V)) (UseComp (CompAP (PositA clean_A)) ) ) |l -treebank
gt UseCl (TTAnt TPres ASimul) PPos (PredSCVP (EmbedVP (UseV play_V)) (UseComp (CompCN (AdjCN (PositA clean_A) (UseN war_N))))) | l -treebank gt UseCl (TTAnt TPres ASimul) PPos (PredSCVP (EmbedVP (UseV play_V)) (UseComp (CompCN (AdjCN (PositA clean_A) (UseN war_N))))) | l -treebank
gt UseQCl ? PPos (how_far_QCl (UsePN paris_PN)) | l -treebank
gt UseCl ? ? (weather_adjCl (PositA warm_A)) | l -treebank
gt UseQCl ? PPos (how_old_QCl (UsePron youPl_Pron)) |l -treebank
gt UseQCl ? PPos (how_old_QCl (UsePron youSg_Pron)) |l -treebank
gt UseQCl ? PPos (how_old_QCl (UsePron he_Pron)) |l -treebank
gt UseQCl ? ? (how_old_QCl (UsePron she_Pron)) |l -treebank