From 4810860afca393f15d5ab9e85042e0c94fe435f4 Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Fri, 5 Dec 2014 12:46:17 +0000 Subject: [PATCH] store the accusative as well as the dative clitics in Bulgarian --- lib/src/bulgarian/CatBul.gf | 2 +- lib/src/bulgarian/ExtraBul.gf | 8 ++++---- lib/src/bulgarian/ResBul.gf | 15 +++++++++++--- lib/src/bulgarian/StructuralBul.gf | 18 ++++++++-------- lib/src/translator/DictionaryBul.gf | 32 ++++++++++++++--------------- 5 files changed, 42 insertions(+), 33 deletions(-) diff --git a/lib/src/bulgarian/CatBul.gf b/lib/src/bulgarian/CatBul.gf index 031b66c87..543650e68 100644 --- a/lib/src/bulgarian/CatBul.gf +++ b/lib/src/bulgarian/CatBul.gf @@ -51,7 +51,7 @@ concrete CatBul of Cat = CommonX - [IAdv,CAdv] ** open ResBul, Prelude, Predef, CN = {s : NForm => Str; g : AGender} ; NP = {s : Role => Str; a : Agr; p : Polarity} ; - Pron = {s : Role => Str; gen : AForm => Str; a : Agr} ; + Pron = {s : Role => Str; clit : Case => Str; gen : AForm => Str; a : Agr} ; Det = {s : Bool => AGender => Role => Str; nn : NNumber; spec : Species; p : Polarity} ; Predet = {s : GenNum => Str} ; Ord = {s : AForm => Str} ; diff --git a/lib/src/bulgarian/ExtraBul.gf b/lib/src/bulgarian/ExtraBul.gf index 03be3a653..c28c374ad 100644 --- a/lib/src/bulgarian/ExtraBul.gf +++ b/lib/src/bulgarian/ExtraBul.gf @@ -31,8 +31,8 @@ concrete ExtraBul of ExtraBulAbs = CatBul ** role = RObj Acc } ; - i8fem_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" (GSg Fem) P1 ; - i8neut_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" (GSg Neut) P1 ; + i8fem_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" (GSg Fem) P1 ; + i8neut_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" (GSg Neut) P1 ; whatSg8fem_IP = mkIP "" "" (GSg Fem) ; whatSg8neut_IP = mkIP "" "" (GSg Neut) ; @@ -40,8 +40,8 @@ concrete ExtraBul of ExtraBulAbs = CatBul ** whoSg8fem_IP = mkIP "" "" (GSg Fem) ; whoSg8neut_IP = mkIP "" "" (GSg Neut) ; - youSg8fem_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" (GSg Fem) P2 ; - youSg8neut_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" (GSg Neut) P2 ; + youSg8fem_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" (GSg Fem) P2 ; + youSg8neut_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" (GSg Neut) P2 ; onePl_Num = {s = table { CFMasc Indef _ | CFFem Indef | CFNeut Indef => "" ; diff --git a/lib/src/bulgarian/ResBul.gf b/lib/src/bulgarian/ResBul.gf index b1c3d6313..59d414f68 100644 --- a/lib/src/bulgarian/ResBul.gf +++ b/lib/src/bulgarian/ResBul.gf @@ -641,14 +641,23 @@ resource ResBul = ParamX ** open Prelude, Predef in { gn = gn } ; - mkPron : (az,men,mi,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite : Str) -> GenNum -> Person -> {s : Role => Str; gen : AForm => Str; a : Agr} = - \az,men,mi,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite,gn,p -> { + mkPron : (az,men,me,mi,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite : Str) -> + GenNum -> Person -> {s : Role => Str; + clit : Case => Str; + gen : AForm => Str; + a : Agr + } = + \az,men,me,mi,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite,gn,p -> { s = table { RSubj => az ; RObj Acc => men ; - RObj Dat => mi ; + RObj Dat => "" ++ men ; RVoc => az } ; + clit = table { + Acc => me; + Dat => mi + } ; gen = table { ASg Masc Indef => moj ; ASg Masc Def => moia ; diff --git a/lib/src/bulgarian/StructuralBul.gf b/lib/src/bulgarian/StructuralBul.gf index 974e1bc72..4b2b23120 100644 --- a/lib/src/bulgarian/StructuralBul.gf +++ b/lib/src/bulgarian/StructuralBul.gf @@ -34,7 +34,7 @@ concrete StructuralBul of Structural = CatBul ** --- first_Ord = ss "first" ; DEPRECATED for_Prep = mkPrep "" Acc ; from_Prep = mkPrep "" Acc ; - he_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" (GSg Masc) P3 ; + he_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" (GSg Masc) P3 ; here_Adv = ss "" ; here7to_Adv = ss [" "] ; here7from_Adv = ss [" "] ; @@ -43,11 +43,11 @@ concrete StructuralBul of Structural = CatBul ** how8many_IDet = {s = \\_ => table QForm ["";""]; n = Pl; nonEmpty = False} ; if_Subj = ss "" ; in8front_Prep = mkPrep "" Acc ; - i_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" (GSg Masc) P1 ; + i_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" (GSg Masc) P1 ; in_Prep = mkPrep (pre { "" ; "" / strs {"" ; "" ; "" ; ""} }) Acc ; - it_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" (GSg Neut) P3 ; + it_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" (GSg Neut) P3 ; less_CAdv = {s=""; sn="-"} ; many_Det = mkDeterminerPl "" ; more_CAdv = {s=[]; sn=""} ; @@ -81,7 +81,7 @@ concrete StructuralBul of Structural = CatBul ** please_Voc = ss "" ; possess_Prep = mkPrep [] Dat ; quite_Adv = ss "" ; - she_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" (GSg Fem) P3 ; + she_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" (GSg Fem) P3 ; so_AdA = ss "" ; somebody_NP = mkNP "" (GSg Masc) P3 Pos; someSg_Det = mkDeterminerSg "" "" "" ; @@ -94,7 +94,7 @@ concrete StructuralBul of Structural = CatBul ** there7to_Adv = ss [" "] ; there7from_Adv = ss [" "] ; therefore_PConj = ss [" "] ; - they_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" GPl P3 ; + they_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" GPl P3 ; this_Quant = mkQuant "" "" "" "" ; through_Prep = mkPrep "" Acc ; too_AdA = ss "" ; @@ -102,7 +102,7 @@ concrete StructuralBul of Structural = CatBul ** under_Prep = mkPrep "" Acc ; very_AdA = ss "" ; want_VV = mkVV (stateV (mkV186 "")) ; - we_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" GPl P1 ; + we_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" GPl P1 ; whatPl_IP = mkIP "" "" GPl ; whatSg_IP = mkIP "" "" (GSg Masc) ; when_IAdv = mkIAdv "" ; @@ -120,9 +120,9 @@ concrete StructuralBul of Structural = CatBul ** "" / strs {"" ; "" ; "" ; ""} }) Acc ; yes_Utt = ss "" ; - youSg_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" (GSg Masc) P2 ; - youPl_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" GPl P2 ; - youPol_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" GPl P2 ; + youSg_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" (GSg Masc) P2 ; + youPl_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" GPl P2 ; + youPol_Pron = mkPron "" "" "" "" "" "" "" "" "" "" "" "" "" GPl P2 ; have_V2 = dirV2 (stateV (mkV186 "")) ; diff --git a/lib/src/translator/DictionaryBul.gf b/lib/src/translator/DictionaryBul.gf index 8b33957a7..1e4bca0d0 100644 --- a/lib/src/translator/DictionaryBul.gf +++ b/lib/src/translator/DictionaryBul.gf @@ -1,4 +1,4 @@ -concrete DictionaryBul of Dictionary = CatBul ** open MorphoBul, ResBul, (S = StructuralBul), ParadigmsBul, Prelude in { +concrete DictionaryBul of Dictionary = CatBul ** open MorphoBul, ResBul, (S = StructuralBul), (E = ExtraBul), ParadigmsBul, Prelude in { flags coding=utf8 ; @@ -26181,7 +26181,7 @@ lin hazel_PN = mkPN "Хазел" Masc; lin hazelnut_N = dualN (mkN014 "лешник") (mkA076 "лешников"); lin haziness_N = variants {mkN049 "мъгливост"; mkN049 "мъглявост"}; ---- lin hazy_A = variants {mkA076 "мъглив"; mkA079 "смътен"}; ---- -lin he_Pron = mkPron "той" "него" "му" "негов" "неговия" "неговият" "негова" "неговата" "негово" "неговото" "негови" "неговите" (GSg Masc) P3; +lin he_Pron = S.he_Pron; lin he_goat_N = mkN008 "козел"; lin he_man_N = variants {}; lin head_A = mkA079 "главен" ; @@ -28064,8 +28064,8 @@ lin hysterosalpingogram_N = mkN047 "хистеросалпингография"; lin hysteroscopy_N = mkN047 "хистероскопия"; lin hysterotomy_N = mkN039 "хистеротомия"; lin hythe_PN = mkPN "Хитхе" Masc; -lin i_Pron = mkPron "аз" "мен" "ми" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Masc) P1; -lin iFem_Pron = mkPron "аз" "мен" "ми" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Fem) P1; +lin i_Pron = S.i_Pron; +lin iFem_Pron = E.i8fem_Pron; lin i_e__Adv = variants {}; lin iamb_N = mkN001 "ямб"; lin iambic_A = mkA079 "ямбичен"; @@ -30323,7 +30323,7 @@ lin issuer_N = mkN007 "емитент"; lin istanbul_PN = mkPN "Истанбул" Masc; lin isthmian_A = variants {}; lin isthmus_N = mkN014 "провлак"; ---- -lin it_Pron = mkPron "то" "него" "му" "негов" "неговия" "неговият" "негова" "неговата" "негово" "неговото" "негови" "неговите" (GSg Neut) P3 ; +lin it_Pron = S.it_Pron; lin italian_A = mkA078 "италиански"; lin italianMasc_N = dualN (mkN008a "италианец") (mkA078 "италиански"); lin italianFem_N = dualN (mkN041 "италианка") (mkA078 "италиански"); @@ -51697,7 +51697,7 @@ lin shavian_N = mkN065 "шоу"; lin shaving_brush_N = variants {}; lin shawl_N = mkN001 "шал" ; lin shawm_N = variants {}; -lin she_Pron = mkPron "тя" "нея" "и" "неин" "нейния" "нейният" "нейна" "нейната" "нейно" "нейното" "нейни" "нейните" (GSg Fem) P3; +lin she_Pron = S.she_Pron; lin she_goat_N = variants {}; lin sheaf_N = mkN007 "сноп" ; lin shear_N = mkN071 "срязване"; @@ -58430,8 +58430,8 @@ lin thessaloniki_PN = mkPN "Тесалоники" Masc; lin theta_N = mkN074 "тета"; lin thetford_PN = mkPN "Тетфорд" Masc; lin theurgy_N = mkN047 "магия"; ---- -lin theyFem_Pron = mkPron "те" "тях" "им" "техен" "техния" "техният" "тяхна" "тяхната" "тяхно" "тяхното" "техни" "техните" GPl P3; -lin they_Pron = mkPron "те" "тях" "им" "техен" "техния" "техният" "тяхна" "тяхната" "тяхно" "тяхното" "техни" "техните" GPl P3; +lin theyFem_Pron = S.they_Pron; +lin they_Pron = S.they_Pron; lin thiabendazole_N = mkN007 "тиабендазол"; lin thiazide_N = mkN033 "тиазиден"; lin thiazine_N = mkN007 "тиазин"; @@ -64064,8 +64064,8 @@ lin ways_N = mkN007 "начин" ; ---- lin wayside_N = variants {}; lin wayward_A = variants {mkA076 "дръпнат"; mkA079 "капризен"; mkA079 "своенравен"}; ---- lin wc_N = mkN041 "тоалетна"; -lin weFem_Pron = mkPron "ние" "нас" "ни" "наш" "нашия" "нашият" "наша" "нашата" "наше" "нашето" "наши" "нашите" GPl P1; -lin we_Pron = mkPron "ние" "нас" "ни" "наш" "нашия" "нашият" "наша" "нашата" "наше" "нашето" "наши" "нашите" GPl P1; +lin weFem_Pron = S.we_Pron; +lin we_Pron = S.we_Pron; lin weak_A = mkA076 "слаб" ; lin weak_kneed_A = variants {}; lin weaken_V = dualV (mkV186 "отслабвам") (mkV173 "отслабя"); @@ -65496,12 +65496,12 @@ lin yorkley_PN = mkPN "Йоркли" Masc; lin yorkshire_PN = mkPN "Йоркшир" Masc; lin yottabit_N = variants {}; lin yottabyte_N = variants {}; -lin youPl_Pron = mkPron "вие" "вас" "ви" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" GPl P2; -lin youPlFem_Pron = mkPron "вие" "вас" "ви" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" GPl P2; -lin youPol_Pron = mkPron "вие" "вас" "ви" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" GPl P2; -lin youPolFem_Pron = mkPron "вие" "вас" "ви" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" GPl P2; -lin youSg_Pron = mkPron "ти" "теб" "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Masc) P2; -lin youSgFem_Pron = mkPron "ти" "теб" "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Masc) P2; +lin youPl_Pron = S.youPl_Pron; +lin youPlFem_Pron = S.youPl_Pron; +lin youPol_Pron = S.youPol_Pron; +lin youPolFem_Pron = S.youPol_Pron; +lin youSg_Pron = S.youSg_Pron; +lin youSgFem_Pron = E.youSg8fem_Pron; lin young_A = mkA076 "млад" ; lin young_N = dualN (mkN042 "младеж") (mkA078 "младежки"); lin younger_A = mkA078 "младши"; ----