Fixing issues

This commit is contained in:
Roman Suzi
2020-07-30 00:02:54 +03:00
parent 14f183a577
commit f22f5d4abf
9 changed files with 24 additions and 44 deletions

View File

@@ -20,10 +20,10 @@ lin
-- : AP -> SC -> AP ; -- good that she is here
SentAP ap sc = ap ** {s = \\gn,a,c => ap.s ! gn ! a ! c ++ [", "] ++ sc.s ; isPost = True} ;
-- : A -> NP -> AP ; -- warmer than I - теплее меня
-- : A -> NP -> AP ; -- warmer than I - теплее меня
ComparA a np = {
s = \\gn,anim,cas => a.comp ++ (applyPrep {s="" ; c=Gen ; hasPrep=False} np) ; -- True?
short = \\ag=>a.comp ++ (applyPrep {s="" ; c=Gen ; hasPrep=True} np) ;
short = \\ag=>a.comp ++ (applyPrep {s="" ; c=Gen ; hasPrep=False} np) ;
isPost = False ;
preferShort = PrefShort
} ;
@@ -33,8 +33,8 @@ lin
-- : A2 -> NP -> AP ; -- married to him - замужем за ним (NB: gender change requires different word!)
ComplA2 a2 np = let af=adjFormsAdjective a2 in {
s = \\gn,anim,cas => af.s ! gn ! anim ! (a2.c.c) ++ a2.c.s ++ np.s ! (a2.c.c) ;
short = \\a=>af.short ! a ++ a2.c.s ++ np.s ! (a2.c.c) ;
s = \\gn,anim,cas => af.s ! gn ! anim ! (a2.c.c) ++ applyPrep a2.c np ;
short = \\a=>af.short ! a ++ applyPrep a2.c np ;
isPost = False ;
preferShort = a2.preferShort
} ;

View File

@@ -1,6 +1,6 @@
concrete ConstructionRus of Construction = CatRus **
open Predef, SyntaxRus, SymbolicRus, (P=ParadigmsRus), ResRus, Prelude,
QuestionRus, SentenceRus, AdverbRus, AdjectiveRus, VerbRus, IdiomRus, (E=ExtendRus), (EX=ExtraRus) in {
QuestionRus, SentenceRus, AdverbRus, AdjectiveRus, VerbRus, (N=NounRus), IdiomRus, (E=ExtendRus), (EX=ExtraRus) in {
lin
hungry_VP = mkVP (P.mkA "голодный" "" "1*a/c'" PrefShort) ;
@@ -11,7 +11,7 @@ lin
ready_VP = mkVP (P.mkA "готовый" "" "1a" PrefFull) ;
-- : NP -> QCl ; -- what is x's name / wie heisst x (Ger)
what_name_QCl np = E.PredIAdvVP how_IAdv (ComplSlash (SlashV2a (P.mkV2 (P.mkV Imperfective "звать" "зову" "зовёт") Gen)) np) ;
what_name_QCl np = E.PredIAdvVP how_IAdv (ComplSlash (SlashV2a (P.mkV2 (P.mkV Imperfective "звать" "зову" "зовёт") Acc)) np) ;
-- languages
lincat
@@ -29,17 +29,14 @@ oper
mkLanguage : Str -> Str -> N = \s,zi -> P.mkN s Masc Inanimate zi;
} ;
mkHour : Str -> Symb = \s -> lin Symb {s=s} ;
cardCN : Card -> N -> NP = \card,n -> (N.DetCN ((DetArtCard N.IndefArt card)**{type=NormalDet}) (N.UseN n)) ;
lin
-- : Card -> Timeunit -> Adv ; -- (for) three hours
timeunitAdv card time = P.mkAdv ((mkNP <lin Card card : Card> time).s ! Nom) ;
timeunitAdv card time = P.mkAdv ((cardCN card time).s ! Nom) ;
-- : Card -> Card -> Timeunit -> Adv ; -- (cats live) ten to twenty years
timeunitRange l u time = {
-- TODO: Fancier logic. Also reqrite with applyPrep
s = from_Prep.s ++ (P.mkAdv ((mkNP <lin Card l : Card> <lin N (ellNoun time) : N>).s ! from_Prep.c)).s
++ EX.on_to_Prep.s ++ (P.mkAdv ((mkNP <lin Card u : Card> time).s ! EX.on_to_Prep.c)).s
} ;
timeunitRange l u time = P.mkAdv (applyPrep from_Prep (cardCN l (ellNoun time)) ++ applyPrep EX.on_to_Prep (cardCN u time)) ;
oneHour = mkHour "1" ;
twoHour = mkHour "2" ;

View File

@@ -28,7 +28,7 @@ lin
big_A = (mkAltShort (mkA "большой" "больше") (mkA "великий")) ;
bike_N = mkN "велосипед" ;
bird_N = mkN "птица" feminine animate ;
bite_V2 = mkV2 (mkV imperfective "кусать" "кусаю");
bite_V2 = mkV2 (mkV imperfective "кусать" "кусаю") ;
black_A = (mkAltShort (mkA "чёрный") (mkA "черный")) ; -- workaround TODO: Any way to remove yo from stem?
blood_N = mkN "кровь" ;
blow_V = mkV imperfective "дуть" "дую" "дует";
@@ -246,7 +246,7 @@ lin
rub_V2 = mkV2 (mkV imperfective "тереть" "тру" "трёт");
rubber_N = mkN "резина" ;
rule_N = mkN "правило" ;
run_V = mkV imperfective intransitive "бегать" "бегу";
run_V = mkV imperfective intransitive "бегать" "бегу" "бежит" ;
salt_N = mkN "соль" ;
sand_N = (mkNplus (mkN "песок" masculine inanimate "3*b")) ** {sptv="песку"} ;
say_VS = mkV imperfective "говорить" "говорю" "говорит" ;

View File

@@ -218,7 +218,7 @@ lin
preferShort=PrefFull
} ;
-- DefArt = adjFormsAdjective the_forms ** {preferShort=PrefFull ; g=Neut ; c=Nom} ;
-- : Quant ; -- a (house), (houses)
-- : Quant ; -- a (house), (houses)
IndefArt = {
s=\\gn,anim,cas=>[] ;
type=EmptyIndef ;

View File

@@ -188,7 +188,7 @@ oper
mkV2 : V -> V2
= \vf -> lin V2 (vf ** {c={s=[] ; c=Acc ; hasPrep=False}}) ;
mkV2 : V -> Case -> V2
= \vf, c -> lin V2 (vf ** {c={s=[] ; c=c ; hasPrep=True}}) ;
= \vf, c -> lin V2 (vf ** {c={s=[] ; c=c ; hasPrep=False}}) ;
mkV2 : V -> Prep -> V2
= \vf, prep -> lin V2 (vf ** {c=prep}) ;

View File

@@ -16,7 +16,7 @@ lin
} ;
-- : RP -> ClSlash -> RCl ; -- whom John loves
RelSlash rp cls = {
subj=\\gn,anim,cas => cls.c.s ++ (rp.s ! gn ! Inanimate ! cls.c.c) ++ cls.subj ;
subj=\\gn,anim,cas => cls.c.s ++ (rp.s ! gn ! anim ! cls.c.c) ++ cls.subj ;
adv=\\a=>cls.adv ;
verb=cls.verb ;
dep=cls.dep ;

View File

@@ -24,9 +24,8 @@ lin
-- : Temp -> Pol -> RCl -> RS ; -- that had not slept
UseRCl temp pol rcl = {
s = \\gn,anim,cas =>
let parts = R.verbAgr rcl.verb Ind temp.t rcl.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 ;
c = Nom
let parts = R.verbAgr rcl.verb Ind temp.t (genNumAgrP3 gn) pol.p in
temp.s ++ parts.p1 ++ rcl.subj ! gn ! anim ! Nom ++ rcl.adv ! (genNumAgrP3 gn) ++ pol.s ++ parts.p2 ++ rcl.dep ++ rcl.compl ! (genNumAgrP3 gn)
} ;
-- : Temp -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen

View File

@@ -53,14 +53,14 @@ lin
} ;
-- : V2 -> VPSlash ; -- love (it)
SlashV2a v2 = {adv=\\a=>[] ; verb=v2 ; dep=[] ; compl=\\_ => [] ; c=v2.c} ; -- looses complement info?
SlashV2a v2 = {adv=\\a=>[] ; verb=v2 ; dep=[] ; compl=\\_ => [] ; c=v2.c} ;
-- : V3 -> NP -> VPSlash ; -- give it (to her)
Slash2V3 v3 np = {
adv=\\a=>[] ;
verb=v3 ;
dep=[] ;
compl=\\a=> v3.c.s ++ np.s ! v3.c.c;
compl=\\a=> applyPrep v3.c np ;
c=v3.c2
} ;
@@ -69,7 +69,7 @@ lin
adv=\\a=>[] ;
verb=v3 ;
dep=[] ;
compl=\\a=> v3.c2.s ++ np.s ! v3.c2.c;
compl=\\a=> applyPrep v3.c2 np ;
c=v3.c
} ;

View File

@@ -3,14 +3,11 @@
> 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))))
LangRus: 0 его самых плохих как матерей , так и ламп , не таких , что бы &+ ли готовым
> l UseCl (TTAnt TPres AAnter) PNeg (CleftNP (PredetNP not_Predet (CountNP somePl_Det everybody_NP)) (UseRCl (TTAnt TFut AAnter) PNeg (RelVP IdRP ready_VP)))
это не некоторые из всех не , не которые будут готовыми
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: оттуда все это , через польского перед которыми кто &+ -то голоден
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: не некоторые из всех не это , не которые будут готовыми
> l UseCl (TTAnt TPres AAnter) PNeg (CleftNP (PredetNP only_Predet (CountNP somePl_Det everybody_NP)) (UseRCl (TTAnt TFut AAnter) PNeg (RelVP IdRP ready_VP)))
это единственные некоторые из всех не , не которые будут готовыми
> l PrepNP above_Prep (UsePron i_Pron)
над мной
@@ -23,15 +20,7 @@ AllRus: складываем &+ те всех в кого &+ -то пит
Inherent number for nouns. eg, for geonames or pluralia tantum.
** 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-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 ∅))))
** UseCl (TTAnt TPres ASimul) PPos (ImpersCl (ReflVP (SlashV2A paint_V2A (PositA hot_A))))
LangRus-NEW> рисует горячее себя
LangRus-OLD> рисует горячим себя
@@ -40,8 +29,3 @@ AllRusAbs> l UseCl (TTAnt TPres ASimul) PPos (ImpersCl (ReflVP (SlashV2A paint_V
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> ты рисуешь горячим её