mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
Fixing issues
This commit is contained in:
@@ -23,7 +23,7 @@ lin
|
|||||||
-- : A -> NP -> AP ; -- warmer than I - теплее меня
|
-- : A -> NP -> AP ; -- warmer than I - теплее меня
|
||||||
ComparA a np = {
|
ComparA a np = {
|
||||||
s = \\gn,anim,cas => a.comp ++ (applyPrep {s="" ; c=Gen ; hasPrep=False} np) ; -- True?
|
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 ;
|
isPost = False ;
|
||||||
preferShort = PrefShort
|
preferShort = PrefShort
|
||||||
} ;
|
} ;
|
||||||
@@ -33,8 +33,8 @@ lin
|
|||||||
|
|
||||||
-- : A2 -> NP -> AP ; -- married to him - замужем за ним (NB: gender change requires different word!)
|
-- : A2 -> NP -> AP ; -- married to him - замужем за ним (NB: gender change requires different word!)
|
||||||
ComplA2 a2 np = let af=adjFormsAdjective a2 in {
|
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) ;
|
s = \\gn,anim,cas => af.s ! gn ! anim ! (a2.c.c) ++ applyPrep a2.c np ;
|
||||||
short = \\a=>af.short ! a ++ a2.c.s ++ np.s ! (a2.c.c) ;
|
short = \\a=>af.short ! a ++ applyPrep a2.c np ;
|
||||||
isPost = False ;
|
isPost = False ;
|
||||||
preferShort = a2.preferShort
|
preferShort = a2.preferShort
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
concrete ConstructionRus of Construction = CatRus **
|
concrete ConstructionRus of Construction = CatRus **
|
||||||
open Predef, SyntaxRus, SymbolicRus, (P=ParadigmsRus), ResRus, Prelude,
|
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
|
lin
|
||||||
hungry_VP = mkVP (P.mkA "голодный" "" "1*a/c'" PrefShort) ;
|
hungry_VP = mkVP (P.mkA "голодный" "" "1*a/c'" PrefShort) ;
|
||||||
@@ -11,7 +11,7 @@ lin
|
|||||||
ready_VP = mkVP (P.mkA "готовый" "" "1a" PrefFull) ;
|
ready_VP = mkVP (P.mkA "готовый" "" "1a" PrefFull) ;
|
||||||
|
|
||||||
-- : 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 = 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
|
-- languages
|
||||||
lincat
|
lincat
|
||||||
@@ -29,17 +29,14 @@ oper
|
|||||||
mkLanguage : Str -> Str -> N = \s,zi -> P.mkN s Masc Inanimate zi;
|
mkLanguage : Str -> Str -> N = \s,zi -> P.mkN s Masc Inanimate zi;
|
||||||
} ;
|
} ;
|
||||||
mkHour : Str -> Symb = \s -> lin Symb {s=s} ;
|
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
|
lin
|
||||||
-- : Card -> Timeunit -> Adv ; -- (for) three hours
|
-- : 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
|
-- : Card -> Card -> Timeunit -> Adv ; -- (cats live) ten to twenty years
|
||||||
timeunitRange l u time = {
|
timeunitRange l u time = P.mkAdv (applyPrep from_Prep (cardCN l (ellNoun time)) ++ applyPrep EX.on_to_Prep (cardCN 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
|
|
||||||
} ;
|
|
||||||
|
|
||||||
oneHour = mkHour "1" ;
|
oneHour = mkHour "1" ;
|
||||||
twoHour = mkHour "2" ;
|
twoHour = mkHour "2" ;
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ lin
|
|||||||
rub_V2 = mkV2 (mkV imperfective "тереть" "тру" "трёт");
|
rub_V2 = mkV2 (mkV imperfective "тереть" "тру" "трёт");
|
||||||
rubber_N = mkN "резина" ;
|
rubber_N = mkN "резина" ;
|
||||||
rule_N = mkN "правило" ;
|
rule_N = mkN "правило" ;
|
||||||
run_V = mkV imperfective intransitive "бегать" "бегу";
|
run_V = mkV imperfective intransitive "бегать" "бегу" "бежит" ;
|
||||||
salt_N = mkN "соль" ;
|
salt_N = mkN "соль" ;
|
||||||
sand_N = (mkNplus (mkN "песок" masculine inanimate "3*b")) ** {sptv="песку"} ;
|
sand_N = (mkNplus (mkN "песок" masculine inanimate "3*b")) ** {sptv="песку"} ;
|
||||||
say_VS = mkV imperfective "говорить" "говорю" "говорит" ;
|
say_VS = mkV imperfective "говорить" "говорю" "говорит" ;
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ oper
|
|||||||
mkV2 : V -> V2
|
mkV2 : V -> V2
|
||||||
= \vf -> lin V2 (vf ** {c={s=[] ; c=Acc ; hasPrep=False}}) ;
|
= \vf -> lin V2 (vf ** {c={s=[] ; c=Acc ; hasPrep=False}}) ;
|
||||||
mkV2 : V -> Case -> V2
|
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
|
mkV2 : V -> Prep -> V2
|
||||||
= \vf, prep -> lin V2 (vf ** {c=prep}) ;
|
= \vf, prep -> lin V2 (vf ** {c=prep}) ;
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ lin
|
|||||||
} ;
|
} ;
|
||||||
-- : RP -> ClSlash -> RCl ; -- whom John loves
|
-- : RP -> ClSlash -> RCl ; -- whom John loves
|
||||||
RelSlash rp cls = {
|
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 ;
|
adv=\\a=>cls.adv ;
|
||||||
verb=cls.verb ;
|
verb=cls.verb ;
|
||||||
dep=cls.dep ;
|
dep=cls.dep ;
|
||||||
|
|||||||
@@ -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 parts = R.verbAgr rcl.verb Ind temp.t rcl.a pol.p in
|
let parts = R.verbAgr rcl.verb Ind temp.t (genNumAgrP3 gn) 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 ++ rcl.subj ! gn ! anim ! Nom ++ rcl.adv ! (genNumAgrP3 gn) ++ pol.s ++ parts.p2 ++ rcl.dep ++ rcl.compl ! (genNumAgrP3 gn)
|
||||||
c = Nom
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- : Temp -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
|
-- : Temp -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
|
||||||
|
|||||||
@@ -53,14 +53,14 @@ lin
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- : V2 -> VPSlash ; -- love (it)
|
-- : 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)
|
-- : V3 -> NP -> VPSlash ; -- give it (to her)
|
||||||
Slash2V3 v3 np = {
|
Slash2V3 v3 np = {
|
||||||
adv=\\a=>[] ;
|
adv=\\a=>[] ;
|
||||||
verb=v3 ;
|
verb=v3 ;
|
||||||
dep=[] ;
|
dep=[] ;
|
||||||
compl=\\a=> v3.c.s ++ np.s ! v3.c.c;
|
compl=\\a=> applyPrep v3.c np ;
|
||||||
c=v3.c2
|
c=v3.c2
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ lin
|
|||||||
adv=\\a=>[] ;
|
adv=\\a=>[] ;
|
||||||
verb=v3 ;
|
verb=v3 ;
|
||||||
dep=[] ;
|
dep=[] ;
|
||||||
compl=\\a=> v3.c2.s ++ np.s ! v3.c2.c;
|
compl=\\a=> applyPrep v3.c2 np ;
|
||||||
c=v3.c
|
c=v3.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -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)))
|
> 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))))
|
> l UseCl (TTAnt TPres AAnter) PNeg (CleftNP (PredetNP not_Predet (CountNP somePl_Det everybody_NP)) (UseRCl (TTAnt TFut AAnter) PNeg (RelVP IdRP ready_VP)))
|
||||||
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)))))
|
> l UseCl (TTAnt TPres AAnter) PNeg (CleftNP (PredetNP only_Predet (CountNP somePl_Det everybody_NP)) (UseRCl (TTAnt TFut AAnter) PNeg (RelVP IdRP ready_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)))
|
|
||||||
AllRus: не некоторые из всех не это , не которые будут готовыми
|
|
||||||
|
|
||||||
> l PrepNP above_Prep (UsePron i_Pron)
|
> l PrepNP above_Prep (UsePron i_Pron)
|
||||||
над мной
|
над мной
|
||||||
@@ -23,15 +20,7 @@ AllRus: складываем &+ те всех в кого &+ -то пит
|
|||||||
|
|
||||||
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 TCond ASimul) PPos (RelSlash IdRP (SlashVP somebody_NP (SlashV2a write_V2)))))
|
** UseCl (TTAnt TPres ASimul) PPos (ImpersCl (ReflVP (SlashV2A paint_V2A (PositA hot_A))))
|
||||||
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 ∅))))
|
|
||||||
LangRus-NEW> рисует горячее себя
|
LangRus-NEW> рисует горячее себя
|
||||||
LangRus-OLD> рисует горячим себя
|
LangRus-OLD> рисует горячим себя
|
||||||
|
|
||||||
@@ -40,8 +29,3 @@ AllRusAbs> l UseCl (TTAnt TPres ASimul) PPos (ImpersCl (ReflVP (SlashV2A paint_V
|
|||||||
|
|
||||||
AllRusAbs> p "рисуешь горячий себя"
|
AllRusAbs> p "рисуешь горячий себя"
|
||||||
UseCl (TTAnt TPres ASimul) PPos (GenericCl (ReflVP (SlashV2A paint_V2A (PositA hot_A))))
|
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> ты рисуешь горячим её
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user