From 6b7ea904058dcc6f40cae208833a0cd24a5f7b5d Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 19 Apr 2020 14:02:20 +0200 Subject: [PATCH 1/9] (Hun) Retain VPs subjectcase in relVP --- src/hungarian/ResHun.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hungarian/ResHun.gf b/src/hungarian/ResHun.gf index 4d669793..ff7379b7 100644 --- a/src/hungarian/ResHun.gf +++ b/src/hungarian/ResHun.gf @@ -344,7 +344,7 @@ 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 From 84ff6b4f46682b93d6f98d104ebe8dda84de3e1b Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 19 Apr 2020 17:05:51 +0200 Subject: [PATCH 2/9] (Hun) Generalise Postposition to Adposition, allow it to preposition --- src/hungarian/AdverbHun.gf | 2 +- src/hungarian/CatHun.gf | 2 +- src/hungarian/ParadigmsHun.gf | 3 +++ src/hungarian/ResHun.gf | 14 +++++++++----- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/hungarian/AdverbHun.gf b/src/hungarian/AdverbHun.gf index 78a9bbb5..ed7b7473 100644 --- a/src/hungarian/AdverbHun.gf +++ b/src/hungarian/AdverbHun.gf @@ -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. diff --git a/src/hungarian/CatHun.gf b/src/hungarian/CatHun.gf index 159b97ad..287dc718 100644 --- a/src/hungarian/CatHun.gf +++ b/src/hungarian/CatHun.gf @@ -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 ; diff --git a/src/hungarian/ParadigmsHun.gf b/src/hungarian/ParadigmsHun.gf index 247fe301..d58f52bd 100644 --- a/src/hungarian/ParadigmsHun.gf +++ b/src/hungarian/ParadigmsHun.gf @@ -85,6 +85,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 -> diff --git a/src/hungarian/ResHun.gf b/src/hungarian/ResHun.gf index ff7379b7..ea358939 100644 --- a/src/hungarian/ResHun.gf +++ b/src/hungarian/ResHun.gf @@ -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 -> { From 73fb39164f6d0bbabf9f478fcb720b272b9e2c94 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 19 Apr 2020 17:06:09 +0200 Subject: [PATCH 3/9] (Hun) More constructors for mkA2 --- src/hungarian/ParadigmsHun.gf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/hungarian/ParadigmsHun.gf b/src/hungarian/ParadigmsHun.gf index d58f52bd..e2b7787c 100644 --- a/src/hungarian/ParadigmsHun.gf +++ b/src/hungarian/ParadigmsHun.gf @@ -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 @@ -149,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 { From 0b133c7122d0b3d1ebce840a8262780abd63a0e4 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 19 Apr 2020 17:06:27 +0200 Subject: [PATCH 4/9] (Hun) Fix agreement in DetCN --- src/hungarian/NounHun.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hungarian/NounHun.gf b/src/hungarian/NounHun.gf index d2672263..b995be70 100644 --- a/src/hungarian/NounHun.gf +++ b/src/hungarian/NounHun.gf @@ -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 = ; } ; From 8ddc50897a2998a2df0b4e7ff660f3a7d3be0931 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 19 Apr 2020 17:35:34 +0200 Subject: [PATCH 5/9] (Hun) Fix number in ConjNP --- src/hungarian/ConjunctionHun.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hungarian/ConjunctionHun.gf b/src/hungarian/ConjunctionHun.gf index ddf55672..f7bac722 100644 --- a/src/hungarian/ConjunctionHun.gf +++ b/src/hungarian/ConjunctionHun.gf @@ -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 = }; -- Relative sentences lincat From 5661a7ba01d57427f66f7e1f2f599d2e121e6d22 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 19 Apr 2020 18:23:54 +0200 Subject: [PATCH 6/9] (Hun) Change word order in relVP --- src/hungarian/ResHun.gf | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/hungarian/ResHun.gf b/src/hungarian/ResHun.gf index ea358939..5426e0d2 100644 --- a/src/hungarian/ResHun.gf +++ b/src/hungarian/ResHun.gf @@ -278,6 +278,10 @@ oper "vannak" "lenni" ; + megvan : Verb = copula ** { + s = \\vf => "meg" + copula.s ! vf ; + } ; + ------------------ -- VP @@ -330,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 @@ -351,9 +360,9 @@ oper 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 -> { From 5c5a6d1f04c9119d3a06c7c8011f257b4fe8a6b1 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 19 Apr 2020 18:24:13 +0200 Subject: [PATCH 7/9] (Hun) Use Indef agreement in SlashVP --- src/hungarian/SentenceHun.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hungarian/SentenceHun.gf b/src/hungarian/SentenceHun.gf index 7cbafa7c..82f884ca 100644 --- a/src/hungarian/SentenceHun.gf +++ b/src/hungarian/SentenceHun.gf @@ -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 ; From 6a77c4a5d4eba2c8a9a16e18e9e2ae1b7bef5983 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 19 Apr 2020 18:26:06 +0200 Subject: [PATCH 8/9] (Hun) Fix some words --- src/hungarian/StructuralHun.gf | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/hungarian/StructuralHun.gf b/src/hungarian/StructuralHun.gf index c7411544..d95b845e 100644 --- a/src/hungarian/StructuralHun.gf +++ b/src/hungarian/StructuralHun.gf @@ -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 "" ; From 4d11e68e07f679e3b3711749bda575a721eaff87 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 19 Apr 2020 18:26:20 +0200 Subject: [PATCH 9/9] (Hun) Update word order in relative clauses in tests --- src/hungarian/unittest/relative.gftest | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/hungarian/unittest/relative.gftest b/src/hungarian/unittest/relative.gftest index 27ab27d8..5a2dce4d 100644 --- a/src/hungarian/unittest/relative.gftest +++ b/src/hungarian/unittest/relative.gftest @@ -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