forked from GitHub/gf-rgl
Some additions to lexicon
This commit is contained in:
@@ -12,9 +12,61 @@ lin
|
||||
ill_VP = mkVP ( P.mkA "больной" "" "1*b" PrefShort) ;
|
||||
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)
|
||||
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)
|
||||
have_name_Cl np np1 = {
|
||||
subj=[];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -7,6 +7,10 @@ lin
|
||||
obj_no_Prep = {s="" ; c=Acc ; neggen=True ; hasPrep=False} ;
|
||||
to2_Prep = P.mkPrep v_prep_mod Acc ;
|
||||
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 ;
|
||||
along_Prep = P.mkPrep "по" Loc ;
|
||||
from2_Prep = from2 ;
|
||||
@@ -18,10 +22,6 @@ lin
|
||||
be_V3 = P.mkV3 be_ell_V nom_Prep dat_Prep;
|
||||
|
||||
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 {
|
||||
inf="есть";
|
||||
infrefl="" ;
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
abstract ExtraRusAbs = Cat ** {
|
||||
|
||||
fun
|
||||
obj_no_Prep : Prep ;
|
||||
obj_neg_Prep : Prep ;
|
||||
about_Prep : Prep ;
|
||||
to2_Prep : Prep ;
|
||||
to_dat_Prep : Prep ;
|
||||
on_to_Prep : Prep ;
|
||||
along_Prep : Prep ;
|
||||
be_V3 : V3 ;
|
||||
dat_Prep : Prep ;
|
||||
from2_Prep : Prep ;
|
||||
have_V3 : V3 ;
|
||||
have2_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 ;
|
||||
}
|
||||
|
||||
@@ -125,6 +125,9 @@ lin
|
||||
-- : A -> Ord ;
|
||||
OrdSuperl a = long_superlative a ;
|
||||
|
||||
-- : Numeral -> A -> Ord ; -- third largest
|
||||
OrdNumeralSuperl num a = ord_long_superlative num.o a ;
|
||||
|
||||
-- : Pron -> Quant ; -- my (house)
|
||||
PossPron pron = {
|
||||
s=mkPronTable pron.poss ;
|
||||
|
||||
@@ -128,6 +128,9 @@ oper
|
||||
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) -> 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 ;
|
||||
@@ -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) -> (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 -> 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) -> (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) ;
|
||||
mkA : Str -> Str -> A
|
||||
= \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
|
||||
= \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
|
||||
= \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
|
||||
@@ -310,6 +322,8 @@ oper
|
||||
= \asp,inf,sg1 -> lin V (guessVerbForms asp Transitive inf sg1 (Z.sg1StemFromVerb sg1 + "ет")) ;
|
||||
mkV : Aspect -> Str -> Str -> Str -> V
|
||||
= \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
|
||||
= \asp,tran,inf,sg1 -> lin V (guessVerbForms asp tran inf sg1 (Z.sg1StemFromVerb sg1 + "ет")) ;
|
||||
mkV : Aspect -> Transitivity -> Str -> Str -> Str -> V
|
||||
|
||||
@@ -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") ;
|
||||
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") ;
|
||||
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
|
||||
Gender = Masc | Fem | Neut ; -- род
|
||||
|
||||
@@ -233,7 +233,7 @@ oper
|
||||
preferShort : ShortFormPreference
|
||||
} ;
|
||||
|
||||
noShorts : PronForms -> AdjForms -- ???
|
||||
pronToAdj : PronForms -> AdjForms
|
||||
= \base -> base ** {
|
||||
sm = [] ;
|
||||
sf = [] ;
|
||||
@@ -361,13 +361,20 @@ oper
|
||||
_ => doGuessAdjectiveForms word
|
||||
} ;
|
||||
|
||||
doMakeAdjectiveForms : Str -> Str -> Str -> ShortFormPreference -> AdjForms
|
||||
doMakeAdjectiveForms : Str -> Str -> ZAIndex -> ShortFormPreference -> AdjForms
|
||||
= \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
|
||||
af ** {comp=comp'} ;
|
||||
|
||||
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 {
|
||||
s + "ся" => appendToAF (doMakeAdjectiveForms s comp zi spf) "ся" ;
|
||||
_ => doMakeAdjectiveForms nom comp zi spf
|
||||
@@ -410,6 +417,31 @@ oper
|
||||
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
|
||||
= \s,pf -> {
|
||||
msnom = s ++ pf.msnom ;
|
||||
@@ -535,6 +567,22 @@ oper
|
||||
let corr_tran = case guessed.p2 of {Reflexive=>Intransitive ; NonReflexive=>tran} in
|
||||
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
|
||||
= \inf ->
|
||||
let stem_info = infStemFromVerb inf in
|
||||
@@ -764,7 +812,7 @@ oper
|
||||
BeFuture => case <m,temp, pol.p> of {
|
||||
<Ind, Past, _> => subj ++ pol.s ++ adv ++ verbPastAgree 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, Cond, _> => 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
|
||||
|
||||
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
|
||||
= \mo -> {
|
||||
msnom = mo + "й" ;
|
||||
|
||||
@@ -144,9 +144,9 @@ lin
|
||||
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} ;
|
||||
all_Predet = (adjFormsAdjective (noShorts all_Pron)) ** {size=NumAll};
|
||||
all_Predet = (adjFormsAdjective (pronToAdj all_Pron)) ** {size=NumAll};
|
||||
not_Predet = (adjFormsAdjective (mkA "не" "" "0")) ** {size=Num1} ;
|
||||
|
||||
how8many_IDet = {
|
||||
|
||||
@@ -759,6 +759,25 @@ oper
|
||||
pronounAdj1AstA : Str -> PronForms
|
||||
= \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
|
||||
= \word -> -- весь
|
||||
let cmp_base : Str = case word of {s + "ь" => s ; _ => word} in --
|
||||
@@ -881,7 +900,7 @@ oper
|
||||
s + ("ет" | "ется") => <s, I> ;
|
||||
s + ("ёт" | "ётся") => <s, I'> ;
|
||||
s + ("ит" | "ится") => <s, II> ;
|
||||
_ => Predef.error "Error: incorrect Sg P3 Pres/Fut"
|
||||
_ => Predef.error ("Error: incorrect Sg P3 Pres/Fut:" + v)
|
||||
} ;
|
||||
|
||||
parseVerbIndex : Str -> ZVIndex
|
||||
@@ -1045,4 +1064,149 @@ oper
|
||||
<_, 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
|
||||
} ;
|
||||
}
|
||||
@@ -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 ? 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 (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 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 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 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
|
||||
@@ -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 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 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 (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
|
||||
Reference in New Issue
Block a user