forked from GitHub/gf-rgl
Merge branch 'hungarian' of github.com:inariksit/gf-rgl into hungarian
This commit is contained in:
@@ -12,7 +12,7 @@ lin
|
||||
|
||||
-- : Prep -> NP -> Adv ;
|
||||
PrepNP prep np = {
|
||||
s = np.s ! prep.c ++ prep.s ;
|
||||
s = prep.pr ++ np.s ! prep.c ++ prep.s ;
|
||||
} ;
|
||||
|
||||
-- Adverbs can be modified by 'adadjectives', just like adjectives.
|
||||
|
||||
@@ -87,7 +87,7 @@ concrete CatHun of Cat = CommonX ** open ResHun, Prelude in {
|
||||
-- Constructed in StructuralHun.
|
||||
Conj = ResHun.Conj ;
|
||||
Subj = SS ;
|
||||
Prep = ResHun.Postposition ;
|
||||
Prep = ResHun.Adposition ;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ lincat
|
||||
lin
|
||||
BaseNP x y = twoTable Case x y ** y ;
|
||||
ConsNP x xs = consrTable Case comma x xs ** xs ;
|
||||
ConjNP co xs = conjunctDistrTable Case co xs ** xs ;
|
||||
ConjNP co xs = conjunctDistrTable Case co xs ** xs ** {agr = <P3,co.n>};
|
||||
|
||||
-- Relative sentences
|
||||
lincat
|
||||
|
||||
@@ -8,7 +8,7 @@ concrete NounHun of Noun = CatHun ** open ResHun, Prelude, Coordination in {
|
||||
|
||||
-- : Det -> CN -> NP
|
||||
DetCN det cn = emptyNP ** det ** {
|
||||
s = \\c => det.s ! c ++ cn.s ! det.n ! c ;
|
||||
s = \\c => det.s ! Nom ++ cn.s ! det.n ! c ;
|
||||
agr = <P3,det.n> ;
|
||||
} ;
|
||||
|
||||
|
||||
@@ -37,7 +37,8 @@ oper
|
||||
|
||||
mkA2 : overload {
|
||||
mkA2 : Str -> Prep -> A2 ;
|
||||
mkA2 : Str -> Case -> A2
|
||||
mkA2 : Str -> Case -> A2 ;
|
||||
mkA2 : A -> Prep -> A2 ;
|
||||
} ;
|
||||
|
||||
--2 Verbs
|
||||
@@ -85,6 +86,9 @@ oper
|
||||
mkPrep : Str -> Case -> Prep ; -- Postposition and case
|
||||
} ;
|
||||
|
||||
prePrep : Str -> Case -> Prep -- Preposition
|
||||
= \s,c -> lin Prep {pr=s ; s=[] ; c=c} ;
|
||||
|
||||
casePrep : Case -> Prep ; -- No postposition, only case
|
||||
|
||||
-- mkConj : (_,_ : Str) -> Number -> Conj = \s1,s2,num ->
|
||||
@@ -146,10 +150,13 @@ oper
|
||||
} ;
|
||||
|
||||
mkA2 = overload {
|
||||
mkA2 : A -> A2 = \a -> a ** {c2 = casePrep Nom} ;
|
||||
mkA2 : Str -> Prep -> A2 = \s,p ->
|
||||
lin A2 {s = (mkAdj s).s ; c2 = p} ;
|
||||
mkA2 : Str -> Case -> A2 = \s,c ->
|
||||
lin A2 {s = (mkAdj s).s ; c2 = {s = [] ; c = c}}
|
||||
lin A2 {s = (mkAdj s).s ; c2 = casePrep c} ;
|
||||
mkA2 : A -> Prep -> A2 = \a,p ->
|
||||
lin A2 (a ** {c2 = p}) ;
|
||||
} ;
|
||||
|
||||
mkV = overload {
|
||||
|
||||
@@ -102,14 +102,18 @@ oper
|
||||
} ;
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Postpositions
|
||||
-- Adpositions
|
||||
|
||||
-- TODO: personal suffixes, e.g. felettem, általam, not *felett/által én
|
||||
Postposition : Type = {s : Str ; c : Case} ;
|
||||
Adposition : Type = {
|
||||
pr : Str ; -- Preposition
|
||||
s : Str ; -- Postposition
|
||||
c : Case ;
|
||||
} ;
|
||||
|
||||
mkPrep : Str -> Postposition = \str -> {s=str ; c=Nom} ;
|
||||
mkPrep : Str -> Adposition = \str -> {s=str ; c=Nom ; pr=[]} ;
|
||||
|
||||
emptyPP : Postposition = mkPrep [] ;
|
||||
emptyAdp : Adposition = mkPrep [] ;
|
||||
|
||||
------------------
|
||||
-- Conj
|
||||
@@ -144,7 +148,7 @@ oper
|
||||
s : Degree => Number => Str
|
||||
} ;
|
||||
Adjective2 : Type = Adjective ** {
|
||||
c2 : Postposition ;
|
||||
c2 : Adposition ;
|
||||
} ;
|
||||
|
||||
mkAdj : Str -> Adjective = \sg -> {
|
||||
@@ -274,6 +278,10 @@ oper
|
||||
"vannak"
|
||||
"lenni" ;
|
||||
|
||||
megvan : Verb = copula ** {
|
||||
s = \\vf => "meg" + copula.s ! vf ;
|
||||
} ;
|
||||
|
||||
------------------
|
||||
-- VP
|
||||
|
||||
@@ -326,9 +334,14 @@ oper
|
||||
Sentence : Type = {s : Str} ;
|
||||
|
||||
predVP : NounPhrase -> VerbPhrase -> ClSlash = \np,vp -> vp ** {
|
||||
s = let rel : RClause = relVP' (np2rp np) vp ;
|
||||
in \\t,a,p => rel.s ! t ! a ! p ! np.agr.p2 ! sc2case vp.sc
|
||||
++ np.empty ; -- standard trick for prodrop+metavariable problem
|
||||
s = \\t,a,p => let subjcase : Case = case vp.sc of {
|
||||
SCNom => Nom ;
|
||||
SCDat => Dat }
|
||||
in np.s ! subjcase
|
||||
++ vp.s ! agr2vf np.agr
|
||||
++ vp.obj
|
||||
++ vp.adv
|
||||
++ np.empty -- standard trick for prodrop+metavariable problem
|
||||
} ;
|
||||
|
||||
-- Relative
|
||||
@@ -344,12 +357,12 @@ oper
|
||||
|
||||
relVP' : RP ** {agr : Person*Number} -> VerbPhrase -> RClause = \rp,vp -> {
|
||||
s = \\t,a,p,n,c => let subjcase : Case = case vp.sc of {
|
||||
SCNom => c ;
|
||||
SCNom => Nom ;
|
||||
SCDat => Dat }
|
||||
in rp.s ! n ! subjcase
|
||||
++ vp.s ! VFin rp.agr.p1 n -- variable by number
|
||||
++ vp.obj
|
||||
++ vp.adv
|
||||
++ vp.s ! VFin rp.agr.p1 n -- variable by number
|
||||
} ;
|
||||
|
||||
relSlash : RP -> ClSlash -> RClause = \rp,cls -> {
|
||||
|
||||
@@ -15,7 +15,7 @@ lin
|
||||
|
||||
--2 Clauses missing object noun phrases
|
||||
-- : NP -> VPSlash -> ClSlash ;
|
||||
SlashVP np vps = predVP np (vps ** {s = vps.s ! Def ; obj = []}) ;
|
||||
SlashVP np vps = predVP np (vps ** {s = vps.s ! Indef ; obj = []}) ;
|
||||
{-
|
||||
-- : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today
|
||||
AdvSlash cls adv = cls ** insertAdv adv cls ;
|
||||
|
||||
@@ -65,8 +65,8 @@ lin few_Det = mkDet "kevés" Def Sg ; -- TODO check
|
||||
lin many_Det = mkDet "sok" Def Sg ; -- TODO check
|
||||
--lin much_Det =
|
||||
|
||||
lin somePl_Det = mkDet "némely" Indef Pl ;
|
||||
lin someSg_Det = mkDet "némely" Indef Sg ;
|
||||
lin somePl_Det = mkDet "néhány" Indef Sg ;
|
||||
lin someSg_Det = mkDet "néhány" Indef Sg ;
|
||||
--lin no_Quant =
|
||||
|
||||
lin that_Quant = mkQuant "az" "az" ;
|
||||
@@ -215,6 +215,11 @@ lin yes_Utt = ss "igen" ;
|
||||
-- Verb
|
||||
|
||||
lin have_V2 = datV2 copula ;
|
||||
-- uncomment if prefer def obj with megvan
|
||||
-- ** {
|
||||
-- s = table {Indef => copula.s } ;
|
||||
-- - Def => megvan.s } ;
|
||||
-- } ;
|
||||
{-lin can8know_VV = can_VV ; -- can (capacity)
|
||||
lin can_VV = mkVV "" ; -- can (possibility)
|
||||
lin must_VV = mkVV "" ;
|
||||
|
||||
@@ -2,34 +2,31 @@
|
||||
-- These need to be correct --
|
||||
------------------------------
|
||||
|
||||
--"aki" instead of "amit" for most examples
|
||||
--"ami" instead of "amit" for most examples
|
||||
|
||||
-- LangEng: I see a man that flies
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant IndefArt NumSg) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseV fly_V))))))))) NoVoc
|
||||
LangHun: én látok egy férfit aki repül
|
||||
LangHun: én látok egy férfit ami repül
|
||||
|
||||
-- LangEng: I see the man that flies
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseV fly_V))))))))) NoVoc
|
||||
LangHun: én látom a férfit aki repül
|
||||
LangHun: én látom a férfit ami repül
|
||||
|
||||
-- LangEng: I see the man that sees a cat
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant IndefArt NumSg) (UseN cat_N))))))))))) NoVoc
|
||||
LangHun: én látom a férfit aki lát egy macskát
|
||||
--more natural sentence would be "... aki egy macskát lát" but I think this is still correct
|
||||
LangHun: én látom a férfit ami egy macskát lát
|
||||
|
||||
-- LangEng: I see the man that sees the cat
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant DefArt NumSg) (UseN cat_N))))))))))) NoVoc
|
||||
LangHun: én látom a férfit aki látja a macskát
|
||||
--more natural sentence would be "... aki a macskat látja"
|
||||
LangHun: én látom a férfit ami a macskát látja
|
||||
|
||||
-- LangEng: I see the man that has a cat
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (UseN cat_N))))))))))) NoVoc
|
||||
LangHun: én látom a férfit akinek egy macskája van
|
||||
-- from "akinek van egy macska" to "akinek egy macskája van"
|
||||
LangHun: én látom a férfit aminek egy macskája van
|
||||
|
||||
-- LangEng: I see the man that has the cat
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant DefArt NumSg) (UseN cat_N))))))))))) NoVoc
|
||||
LangHun: én látom a férfit akinek megvan a macska
|
||||
LangHun: én látom a férfit aminek megvan a macska
|
||||
-- vet inte riktigt hur jag ska tänka med "the cat", tyckte det kändes mer rätt med "meg-" konstruktionen
|
||||
|
||||
-- LangEng: I see the cat that flies and that is red
|
||||
@@ -41,7 +38,7 @@ LangHun: én látom a macskát ami repül és piros
|
||||
|
||||
-- LangEng: I see the man that flies and that has a cat
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN man_N) (ConjRS and_Conj (BaseRS (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (UseV fly_V))) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a have_V2) (DetCN (DetQuant IndefArt NumSg) (UseN cat_N))))))))))))) NoVoc
|
||||
LangHun: én látom a férfit aki repül és akinek egy macskája van
|
||||
LangHun: én látom a férfit ami repül és aminek egy macskája van
|
||||
|
||||
|
||||
-------------------------------------------------------------
|
||||
@@ -50,12 +47,12 @@ LangHun: én látom a férfit aki repül és akinek egy macskája van
|
||||
|
||||
-- LangEng: I see the man that the cat sees
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelSlash IdRP (SlashVP (DetCN (DetQuant DefArt NumSg) (UseN cat_N)) (SlashV2a see_V2)))))))))) NoVoc
|
||||
LangHun: én látom a férfit akit a macska lát
|
||||
LangHun: én látom a férfit amit a macska lát
|
||||
|
||||
-- LangEng: I see a man that the cat sees
|
||||
-- Should this be "amit a macska lát"? Yes
|
||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant IndefArt NumSg) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelSlash IdRP (SlashVP (DetCN (DetQuant DefArt NumSg) (UseN cat_N)) (SlashV2a see_V2)))))))))) NoVoc
|
||||
LangHun: én látok egy férfit akit a macska lát
|
||||
LangHun: én látok egy férfit amit a macska lát
|
||||
|
||||
--These last cases not corrected due to "van" confusion
|
||||
-- LangEng: I see a cat that the man has
|
||||
|
||||
Reference in New Issue
Block a user