From 966716cc7d4db2ef75aee98ebf67258b25c34c97 Mon Sep 17 00:00:00 2001 From: Ayberk Tosun Date: Tue, 21 Aug 2018 14:49:53 +0300 Subject: [PATCH] Transfer all updates from ayberkt/GF/structural --- src/turkish/StructuralTur.gf | 187 +++++++++++++++++++++++++++++++++-- 1 file changed, 181 insertions(+), 6 deletions(-) diff --git a/src/turkish/StructuralTur.gf b/src/turkish/StructuralTur.gf index 1cf6acd1b..fd0db2320 100644 --- a/src/turkish/StructuralTur.gf +++ b/src/turkish/StructuralTur.gf @@ -11,7 +11,9 @@ concrete StructuralTur of Structural = CatTur ** mkPron "o" "onu" "ona" "onun" "onda" "ondan" "onlu" "onsuz" Sg P3 ; i_Pron = - mkPron "ben" "beni" "bana" "benim" "bende" "benden" "benli" "bensiz" Sg P1 ; + mkPron "ben" "beni" "bana" "benim" + "bende" "benden" "benli" "bensiz" + Sg P1 ; it_Pron = mkPron "o" "onu" "ona" "onun" "onda" "ondan" "onlu" "onsuz" Sg P3 ; @@ -29,6 +31,9 @@ concrete StructuralTur of Structural = CatTur ** this_Quant = mkQuant "bu" ; + no_Quant = + mkQuant "hiç" ; + we_Pron = mkPron "biz" "bizi" "bize" "bizim" "bizde" "bizden" "bizli" "bizsiz" Pl P1 ; @@ -68,6 +73,8 @@ concrete StructuralTur of Structural = CatTur ** in_Prep = variants {mkPrep "içinde" Gen; mkPrep "içerisinde" Gen} ; + except_Prep = mkPrep "dışında" Nom | mkPrep "dışında" Gen ; + -- ... sırasında during_Prep = mkPrep "sırasında" Nom ; @@ -76,9 +83,9 @@ concrete StructuralTur of Structural = CatTur ** between_Prep = mkPrep "arasındaki" Gen ; - and_Conj = ss "ile" ; + and_Conj = mkConj "ile" ; - or_Conj = ss "veya" ; + or_Conj = mkConj "veya" ; yes_Utt = ss "evet" ; no_Utt = ss "hayır" ; @@ -86,11 +93,179 @@ concrete StructuralTur of Structural = CatTur ** always_AdV = {s = "her zaman"} ; but_PConj = ss "ama" ; + therefore_PConj = ss "dolayısıyla" ; - at_most_AdN = ss "en fazla" ; + everybody_NP = mkNP (mkN "herkes") Sg P3 ; + everything_NP = mkNP (mkN "herşey") Sg P3 ; + nothing_NP = mkNP (mkN "hiçbir şey") Sg P3 ; + somebody_NP = mkNP (mkN "biri") Sg P3 ; + something_NP = mkNP (mkN "bir şey") Sg P3 ; - at_least_AdN = ss "en az" ; + -- The sentence (PredVP (UsePron he_Pron) (UseV sing_V)) would be + -- linearized as + -- > nobody sings + -- in English, whereas in Turkish it would literally translate to + -- > nobody doesn't sing + -- Linearizing (PredVP (UsePron he_Pron) (UseV sing_V)) will yield + -- nobody sings regardless. The double negation will be implemented + -- when `UseCl` is implemented eventually. + nobody_NP = mkNP (mkN "hiç kimse") Sg P3 ; - as_CAdv = {s = "kadar"; p = "kadar"} ; + many_Det = mkDet "birçok" Sg NoGen ; + every_Det = mkDet "her" Sg NoGen ; + all_Predet = {s = "her"} ; + almost_AdA = {s = "neredeyse"} ; + almost_AdN = {s = "neredeyse"} ; + + by8agent_Prep = mkPrep "tarafından" Gen ; + by8means_Prep = mkPrep "tarafından" Gen ; + + although_Subj = {s = "buna rağmen"} ; + + that_Subj = {s = "o"} ; + + -- TODO: this does not straightforwardly translate to Turkish which does + -- not have a "when" as a subordinating conjunction. + when_Subj = {s = "[TODO]"} ; + + because_Subj = {s = "çünkü"} ; + + here_Adv = mkAdv "burada" ; + + everywhere_Adv = mkAdv "her yerde" ; + + if_Subj = {s = "eğer"} ; + + both7and_DConj = mkConj "hem" "hem de" ; + either7or_DConj = mkConj "ya" "ya da" ; + + few_Det = mkDet "birkaç" Sg NoGen ; + + for_Prep = mkPrep "için" Nom ; + + under_Prep = mkPrep "altında" Gen ; + + to_Prep = mkPrep "" Dat ; + from_Prep = mkPrep "" Ablat ; + + -- TODO: this is probably not correct. There is no straightforward + -- translation for `possess_Prep` in Turkish. + possess_Prep = mkPrep "" Gen ; + + -- There are four senses of "through" as a preposition in English: + -- + -- 1. from one side of an opening to the other ("go through the window"), + -- 2. entering, then later leaving ("drive through the town"), + -- 3. by means of ("win through intimidation"), and + -- 4. to or up to ("1945 to 1991"). + -- + -- All four of these would be translated in a different way to Turkish + -- so I don't know what's the best way to implement `through_Prep`. The + -- best thing to do is to just probably implement the most common use. + -- TODO: implement linearization for through_Prep. + + -- TODO: there is really no have_V2 in Turkish. + -- have_V2 + + -- This is really just `here_Adv` in ablative form. + here7from_Adv = mkAdv "buradan" ; + + -- This is really just `here_Adv` in dative form. + here7to_Adv = mkAdv "buraya" ; + + somewhere_Adv = mkAdv "bir yere" ; + there_Adv = mkAdv "oraya" ; + + how8many_IDet = {s = "kaç tane"} ; + + how8much_IAdv = {s = "ne kadar"} ; + + how_IAdv = {s = "nasıl"} ; + + -- Conditionals in Turkish are handled through inflections. + -- I will decide what to do with this later. + if_then_Conj = mkConj "foo" "bar" ; + + -- TODO: in8front_Prep + in8front_Prep = mkPrep "önünde" Gen ; + + language_title_Utt = {s = "Türkçe"} ; + + more_CAdv = {s = "daha"; p = "daha"} ; + + most_Predet = {s = "en çok"} ; + + much_Det = mkDet "çok" Pl NoGen ; + + without_Prep = mkPrep "" (Abess Neg) ; + + please_Voc = {s = "lütfen"} ; + + very_AdA = {s = "çok"} ; + + why_IAdv = {s = "neden"} ; + where_IAdv = {s = "nerede"} ; + + can8know_VV = { + s = "(TODO: can8know_VV)" + } ; + + can_VV = { + s = "(TODO: can_VV)" + } ; + + must_VV = { + s = "(TODO: must_VV)" + } ; + + not_Predet = { + s = "(TODO: not_Predet)" + } ; + + quite_Adv = { + s = "bayağı" + } ; + + -- TODO: there is probably a better translation for this and it is quite + -- tricky. + so_AdA = { s = "çok" } ; + + -- TODO: not tested, probably wrong. + somePl_Det = { s = "bazı" ; n = Pl ; useGen = NoGen } ; + + -- TODO: not tested, probably wrong. + someSg_Det = { s = "bazı" ; n = Sg ; useGen = NoGen } ; + + there7from_Adv = { s = "oradan" } ; + + there7to_Adv = { s = "oraya" } ; + + too_AdA = { s = "fazla" } ; + + -- TODO: this depends on the linearization for `ComplVV` and is really a + -- morphological construct so it might be a bit tricky to implement. + want_VV = { s = "(TODO: want_VV)" } ; + + whatPl_IP = { s = "neler" } ; + + whatSg_IP = { s = "ne" } ; + + -- Not sure what this is for given that we have separate functions for the + -- plural "what" case and the singular "what" case. + what_IP = { s = "ne" } ; + + when_IAdv = { s = "ne zaman" } ; + + which_IQuant = { s = "hangi" } ; + + whoPl_IP = { s = "kimler" } ; + + whoSg_IP = { s = "kim" } ; + + -- TODO: depends on `PredetNP`; test after the work in `NounTur.gf` has + -- been merged. + only_Predet = { s = "sadece" } ; + + otherwise_PConj = { s = "(TODO: otherwise_PConj)" } ; }