mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 08:58:55 -06:00
Fixing issues
This commit is contained in:
@@ -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
|
||||
} ;
|
||||
|
||||
@@ -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" ;
|
||||
|
||||
@@ -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 "говорить" "говорю" "говорит" ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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}) ;
|
||||
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
|
||||
@@ -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> ты рисуешь горячим её
|
||||
|
||||
|
||||
Reference in New Issue
Block a user