1
0
forked from GitHub/gf-rgl

Some fixes

This commit is contained in:
Roman Suzi
2020-07-29 00:15:53 +03:00
parent a76a017064
commit 14f183a577
6 changed files with 42 additions and 33 deletions

View File

@@ -22,13 +22,13 @@ lincat
VP = { VP = {
adv : AgrTable ; -- modals are in position of adverbials ones numgen gets fixed adv : AgrTable ; -- modals are in position of adverbials ones numgen gets fixed
verb : ResRus.VerbForms ; verb : ResRus.VerbForms ;
dep : Str ; -- dependent infinites and such dep : Str ; -- dependent infinitives and such
compl : AgrTable compl : AgrTable
} ; } ;
VPSlash = { VPSlash = {
adv : AgrTable ; -- modals are in position of adverbials ones numgen gets fixed adv : AgrTable ; -- modals are in position of adverbials ones numgen gets fixed
verb : ResRus.VerbForms ; verb : ResRus.VerbForms ;
dep : Str ; -- dependent infinites and such dep : Str ; -- dependent infinitives and such
compl : AgrTable ; compl : AgrTable ;
c : ComplementCase c : ComplementCase
} ; ---- } ; ----
@@ -40,13 +40,13 @@ lincat
Cl = { Cl = {
subj,compl,adv : Str ; subj,compl,adv : Str ;
verb : VerbForms ; verb : VerbForms ;
dep : Str ; -- dependent infinites and such dep : Str ; -- dependent infinitives and such
a : Agr a : Agr
} ; } ;
ClSlash = { ClSlash = {
subj,compl,adv : Str ; subj,compl,adv : Str ;
verb : VerbForms ; verb : VerbForms ;
dep : Str ; -- dependent infiniteve and such dep : Str ; -- dependent infinitives and such
a : Agr ; a : Agr ;
c : ComplementCase c : ComplementCase
} ; } ;
@@ -70,7 +70,7 @@ lincat
QCl = { QCl = {
subj,compl,adv : Str ; subj,compl,adv : Str ;
verb : VerbForms ; verb : VerbForms ;
dep : Str ; -- dependent infinites and such dep : Str ; -- dependent infinitives and such
a : Agr a : Agr
} ; } ;
@@ -88,7 +88,7 @@ lincat
subj : AdjTable ; subj : AdjTable ;
compl,adv : AgrTable ; compl,adv : AgrTable ;
verb : VerbForms ; verb : VerbForms ;
dep : Str ; -- dependent infinites and such dep : Str ; -- dependent infinitives and such
a : Agr a : Agr
} ; } ;

View File

@@ -1,6 +1,6 @@
--# -path=.:../abstract:../common:../../prelude --# -path=.:../abstract:../common:../../prelude
concrete IdiomRus of Idiom = CatRus ** open Prelude, TenseRus, ResRus, Coordination, MorphoRus in { concrete IdiomRus of Idiom = CatRus ** open Prelude, ParamX, TenseRus, ResRus, Coordination, MorphoRus in {
flags optimize=all_subs ; coding=utf8 ; flags optimize=all_subs ; coding=utf8 ;
lin lin
@@ -12,20 +12,20 @@ lin
-- : NP -> RS -> Cl ; -- it is I who did it -- : NP -> RS -> Cl ; -- it is I who did it
CleftNP np rs = { CleftNP np rs = {
subj=np.s ! Nom ; subj="это" ++ np.s ! Nom ;
adv="это" ; adv=[];
verb=nullVerb ; -- ??? verb=copulaEll ; -- ???
dep=[] ; dep=[] ;
compl=embedInCommas (rs.s ! agrGenNum np.a ! Animate ! Nom) ; -- TODO: here or in subj??? compl=embedInCommas (rs.s ! agrGenNum np.a ! Animate ! Nom) ; -- TODO: here or in subj???
a=np.a a=np.a
} ; } ;
-- : Adv -> S -> Cl ; -- it is here she slept -- : Adv -> S -> Cl ; -- it is here she slept
CleftAdv adv s = { CleftAdv adv s = {
subj="это" ++ adv.s ++ comma ++ s.s ! Ind ; -- TODO: Check what is expressed by this? Why comma? subj="это" ;
adv=[] ; adv=adv.s ;
verb=nullVerb ; -- ??? verb=nullVerb ; -- ???
dep=[] ; dep=[] ;
compl=[] ; compl=s.s ! Ind ;
a=Ag (GSg Neut) P3 a=Ag (GSg Neut) P3
} ; } ;
@@ -49,7 +49,7 @@ lin
ImpPl1 vp = ImpPl1 vp =
let a = Ag GPl P1 in let a = Ag GPl P1 in
let pol = PPos in let pol = PPos in
let parts = verbAgr vp.verb Infinitive Pres a pol.p in let parts = verbAgr vp.verb Infinitive Pres a pol.p in -- colloquial, should be Fut, but then present fails...
let p1 = "давайте" in { let p1 = "давайте" in {
s = p1 ++ pol.s ++ vp.adv ! a ++ parts.p2 ++ vp.dep ++ vp.compl ! a s = p1 ++ pol.s ++ vp.adv ! a ++ parts.p2 ++ vp.dep ++ vp.compl ! a
} ; } ;

View File

@@ -27,7 +27,7 @@ lin
-- : RP -> VP -> RCl ; -- who loves John -- : RP -> VP -> RCl ; -- who loves John
RelVP rp vp = { RelVP rp vp = {
subj=rp.s; subj=rp.s;
adv=\\a=>[] ; adv=\\a=>vp.adv ! Ag (GSg Neut) P3 ;
verb=vp.verb ; verb=vp.verb ;
dep=vp.dep ; dep=vp.dep ;
compl=vp.compl ; compl=vp.compl ;

View File

@@ -104,7 +104,6 @@ oper
} in } in
noMinorCases nfb ; noMinorCases nfb ;
-- TODO: gender can help identify cases more precisely
guessLessNounForms : Str -> Gender -> Animacy -> NounForms guessLessNounForms : Str -> Gender -> Animacy -> NounForms
= \word, g, anim -> = \word, g, anim ->
let nfb : NounFormsBase = let nfb : NounFormsBase =

View File

@@ -24,9 +24,8 @@ lin
-- : Temp -> Pol -> RCl -> RS ; -- that had not slept -- : Temp -> Pol -> RCl -> RS ; -- that had not slept
UseRCl temp pol rcl = { UseRCl temp pol rcl = {
s = \\gn,anim,cas => s = \\gn,anim,cas =>
let a=genNumAgrP3 gn in let parts = R.verbAgr rcl.verb Ind temp.t rcl.a pol.p in
let parts = R.verbAgr rcl.verb Ind temp.t a pol.p in temp.s ++ parts.p1 ++ pol.s ++ rcl.subj ! gn ! anim ! Nom ++ rcl.adv ! rcl.a ++ parts.p2 ++ rcl.dep ++ rcl.compl ! rcl.a ;
temp.s ++ parts.p1 ++ pol.s ++ rcl.subj ! gn ! anim ! cas ++ rcl.adv ! a ++ parts.p2 ++ rcl.dep ++ rcl.compl ! a ;
c = Nom c = Nom
} ; } ;
@@ -86,7 +85,6 @@ lin
-- : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today -- : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today
AdvSlash cls adv = cls ** { AdvSlash cls adv = cls ** {
-- subj=cls.subj ++ adv.s -- two variants? TODO: check
adv=cls.adv ++ adv.s adv=cls.adv ++ adv.s
} ; } ;

View File

@@ -1,19 +1,16 @@
# Some problematic places # Some problematic places
> l UttS (AdvS (AdAdv quite_Adv (ComparAdvAdj less_CAdv narrow_A everything_NP)) (UseCl (TTAnt TPres ASimul) PNeg (ExistNP something_NP))) > l UttS (AdvS (AdAdv quite_Adv (ComparAdvAdj less_CAdv narrow_A everything_NP)) (UseCl (TTAnt TPres ASimul) PNeg (ExistNP something_NP)))
довольно менее узко , чем всё не существовает что &+ -то довольно менее узко , чем всё что &+ -то не существует
Lang: DetCN (DetQuantOrd (PossPron he_Pron) (NumCard (NumDigits (IDig D_0))) (OrdSuperl bad_A)) (RelCN (ConjCN both7and_DConj (BaseCN (UseN2 mother_N2) (UseN lamp_N))) (UseRCl (TTAnt TPast ASimul) PNeg (RelCl (ImpersCl ready_VP)))) Lang: DetCN (DetQuantOrd (PossPron he_Pron) (NumCard (NumDigits (IDig D_0))) (OrdSuperl bad_A)) (RelCN (ConjCN both7and_DConj (BaseCN (UseN2 mother_N2) (UseN lamp_N))) (UseRCl (TTAnt TPast ASimul) PNeg (RelCl (ImpersCl ready_VP))))
LangRus: 0 его самых плохих как матерей , так и ламп , таких не , что бы &+ ли готовым LangRus: 0 его самых плохих как матерей , так и ламп , не таких , что бы &+ ли готовым
Lang: AdvS there7from_Adv (UseCl (TTAnt TFut AAnter) PPos (CleftNP everybody_NP (UseRCl (TTAnt TPres AAnter) PPos (RelSlash (FunRP in8front_Prep (languageNP polish_Language) IdRP) (SlashPrep (PredVP somebody_NP hungry_VP) through_Prep))))) Lang: AdvS there7from_Adv (UseCl (TTAnt TFut AAnter) PPos (CleftNP everybody_NP (UseRCl (TTAnt TPres AAnter) PPos (RelSlash (FunRP in8front_Prep (languageNP polish_Language) IdRP) (SlashPrep (PredVP somebody_NP hungry_VP) through_Prep)))))
LangRus: оттуда все это , польский перед которыми голоден LangRus: оттуда все это , через польского перед которыми кто &+ -то голоден
Lang: ComplN3 distance_N3 (DetCN (DetQuant (PossPron youPol_Pron) NumSg) (SentCN (ComplN2 brother_N2 everything_NP) (EmbedVP hungry_VP)))
LangRus: расстояние от вашего брат всего быть голодно до
AllRusAbs: UseCl (TTAnt TPres AAnter) PNeg (CleftNP (PredetNP not_Predet (CountNP somePl_Det everybody_NP)) (UseRCl (TTAnt TFut AAnter) PNeg (RelVP IdRP ready_VP))) AllRusAbs: UseCl (TTAnt TPres AAnter) PNeg (CleftNP (PredetNP not_Predet (CountNP somePl_Det everybody_NP)) (UseRCl (TTAnt TFut AAnter) PNeg (RelVP IdRP ready_VP)))
AllRus: не некоторые из всех не это , которые не будут готовыми AllRus: не некоторые из всех не это , не которые будут готовыми
> l PrepNP above_Prep (UsePron i_Pron) > l PrepNP above_Prep (UsePron i_Pron)
над мной над мной
@@ -21,15 +18,30 @@ AllRus: не некоторые из всех не это , которые не
- verb zv index does not support "*", it figures forms out from 3 given examples instead. Most of the time. - verb zv index does not support "*", it figures forms out from 3 given examples instead. Most of the time.
AllRusAbs: UttImpPol PPos (ImpVP (ComplSlash (Slash2V3 add_V3 everybody_NP) (PPartNP somebody_NP drink_V2))) AllRusAbs: UttImpPol PPos (ImpVP (ComplSlash (Slash2V3 add_V3 everybody_NP) (PPartNP somebody_NP drink_V2)))
AllRus: складываем &+ те всех в кого &+ -то пит AllRus: складываем &+ те всех в кого &+ -то пит
** UseCl (TTAnt TPres ASimul) PPos (ExistNP (CountNP someSg_Det (DetCN (DetQuant this_Quant (NumCard (NumNumeral (num (pot2as3 (pot1as2 (pot1 ∅))))))) (UseN worm_N))))
LangRus-NEW> некоторое из этих двадцати червей существует
Inherent number for nouns. eg, for geonames or pluralia tantum. Inherent number for nouns. eg, for geonames or pluralia tantum.
** UseCl (TTAnt TPres ASimul) PPos (CleftNP (UsePron she_Pron) (UseRCl (TTAnt TPres ASimul) PPos (RelSlash (SlashVP somebody_NP (SlashV2a write_V2))))) ** UseCl (TTAnt TPres ASimul) PPos (CleftNP (UsePron she_Pron) (UseRCl (TTAnt TCond ASimul) PPos (RelSlash IdRP (SlashVP somebody_NP (SlashV2a write_V2)))))
LangRus-NEW> она это , которую кто &+ -то пишет LangRus-NEW> она это , которую кто &+ -то писал бы
LangRus-OLD> это она , которую кто-то пишет LangRus-OLD> это она , которую кто-то пишет
** UseCl (TTAnt TPres ASimul) PPos (CleftNP (UsePron she_Pron) (UseRCl (TTAnt TPres ASimul) PPos (RelVP (FunRP with_Prep somebody_NP IdRP) thirsty_VP)))
LangRus-NEW> она это, кто-то с которой хочет пить
LangRus-OLD> это она , кто-то с которой хочет пить
** UseCl (TTAnt TPres ASimul) PPos (ImpersCl (ReflVP (SlashV2A paint_V2A (PositA ∅))))
LangRus-NEW> рисует горячее себя
LangRus-OLD> рисует горячим себя
AllRusAbs> l UseCl (TTAnt TPres ASimul) PPos (ImpersCl (ReflVP (SlashV2A paint_V2A (PositA hot_A))))
рисует горячее себя
AllRusAbs> p "рисуешь горячий себя"
UseCl (TTAnt TPres ASimul) PPos (GenericCl (ReflVP (SlashV2A paint_V2A (PositA hot_A))))
** UseCl (TTAnt TPres ASimul) PPos (GenericCl (ComplSlash (SlashV2A paint_V2A (PositA hot_A)) (UsePron she_Pron)))
LangRus-NEW> рисуешь горячую неё
LangRus-OLD> ты рисуешь горячим её