From 6e1e5ba94576415dbae932aa6ad7f135182d3df6 Mon Sep 17 00:00:00 2001 From: Aarne Ranta Date: Mon, 21 Aug 2017 14:10:00 +0300 Subject: [PATCH] compilable TranslateUrd adapted from Hindi --- src/chunk/ChunkUrd.gf | 48 +++ src/translator/DictionaryUrd.gf | 497 ++++++++++++++++++++++++++++++++ src/translator/ExtensionsUrd.gf | 154 ++++++++++ src/translator/TranslateUrd.gf | 36 +++ 4 files changed, 735 insertions(+) create mode 100644 src/chunk/ChunkUrd.gf create mode 100644 src/translator/DictionaryUrd.gf create mode 100644 src/translator/ExtensionsUrd.gf create mode 100644 src/translator/TranslateUrd.gf diff --git a/src/chunk/ChunkUrd.gf b/src/chunk/ChunkUrd.gf new file mode 100644 index 000000000..8f3717b72 --- /dev/null +++ b/src/chunk/ChunkUrd.gf @@ -0,0 +1,48 @@ +concrete ChunkUrd of Chunk = CatUrd, ExtensionsUrd [VPS,VPI] ** + ChunkFunctor - [Adv_Chunk, Prep_Chunk] + with (Syntax = SyntaxUrd), (Extensions = ExtensionsUrd) ** + open + SyntaxUrd, (E = ExtensionsUrd), Prelude, CommonHindustani, + (R = ResUrd), (P = ParadigmsUrd) in { + +lin + Adv_Chunk adv = mkUtt adv ; + Prep_Chunk prep = pss (prep.s ! Masc) ; ---- + +oper + emptyNP = mkNP (P.mkPN []) ; + pss = Prelude.ss ; + +lin + NP_Acc_Chunk np = mkUtt np ; + NP_Gen_Chunk np = mkUtt (mkAdv possess_Prep np) ; + +---- VPI_Chunk vpi = vpi ; + + copula_inf_Chunk = pss " है " ; + + refl_SgP1_Chunk, + refl_SgP2_Chunk, + refl_SgP3_Chunk, + refl_PlP1_Chunk, + refl_PlP2_Chunk, + refl_PlP3_Chunk = pss " आप " ; ---- + + neg_Chunk = pss " नहीं " ; + copula_Chunk = pss " है " ; + copula_neg_Chunk = pss " नहीं है " ; + + past_copula_Chunk = pss " था " ; + past_copula_neg_Chunk = pss " नहीं था " ; + + future_Chunk = pss " हीं होगा " ; + future_neg_Chunk = pss " नहीं होगा " ; + + cond_Chunk = pss " हीं होगा " ; ---- same as future + cond_neg_Chunk = pss " नहीं होगा " ; + perfect_Chunk = pss " है " ; + perfect_neg_Chunk = pss " नहीं " ; + past_perfect_Chunk = pss " था " ; + past_perfect_neg_Chunk = pss " नहीं " ; + +} \ No newline at end of file diff --git a/src/translator/DictionaryUrd.gf b/src/translator/DictionaryUrd.gf new file mode 100644 index 000000000..58f6b578b --- /dev/null +++ b/src/translator/DictionaryUrd.gf @@ -0,0 +1,497 @@ +-- Hindi lexicon for GF, produced from: +-- Pushpak Bhattacharyya's Hindi WordNet +-- GF version generated by hdict2gf, Shafqat Virk March 2012 + +concrete DictionaryUrd of Dictionary = CatUrd ** open ParadigmsUrd, (P=ParadigmsUrd), Prelude, (S = StructuralUrd), NounUrd,ParamX,MorphoUrd,CommonHindustani in { +flags +coding=utf8 ; + +-- initializing with StructuralUrd and LexiconUrd + +-- concrete StructuralUrd of Structural = CatUrd ** +-- open MorphoUrd, ParadigmsUrd, Prelude, NounUrd,ParamX,CommonHindustani in { + +lin + above_Prep = mkPrep ["کے اوپر"] ["کے اوپر"] ; + after_Prep = mkPrep ["کے بعد"] ["کے بعد"] ; + all_Predet = ss "تمام" ; + almost_AdA, almost_AdN = mkAdN "تقریبا" ; + although_Subj = ss "اگرچہ" ; + always_AdV = ss "ہمیشہ" ; + and_Conj = sd2 [] "اور" ** {n = Pl} ; + because_Subj = ss "کیونکہ" ; + before_Prep = mkPrep ["سے پہلے"] ["سے پہلے"] ; + behind_Prep = mkPrep ["کے پیچھے"] ["کے پیچھے"] ; + between_Prep = mkPrep "درمیاں" "درمیاں" ; + both7and_DConj = sd2 "دونوں" "اور" ** {n = Pl} ; + but_PConj = ss "لیکن" ; + by8agent_Prep = mkPrep "سے" "" ; + by8means_Prep = mkPrep "پر" "" ; + can8know_VV,can_VV = mkV "سکنا" ** { isAux = True} ; + during_Prep = mkPrep ["کے درمیاں"] ["کے درمیاں"] ; + either7or_DConj = sd2 "کوی ایک" "یا" ** {n = Sg} ; + everybody_NP = MassNP (UseN (P.mkN "ہر کوی" "ہر کوی" "ہر کوی" "ہر کوی" "ہر کوی" "ہر کوی" Masc )); -- not a good way coz need to include NounUrd + every_Det = mkDet "ہر" "ہر" "ہر" "ہر" Sg; + everything_NP = MassNP (UseN (P.mkN "ہر چیز" "ہر چیز" "ہر چیزو" "سب چیزیں" "سب چیزوں" "سب چیزو" Masc )); + everywhere_Adv = mkAdv "ہر جگہ" ; + few_Det = mkDet "چند" "چند" "چند" "چند" Pl ; + first_Ord = {s = "پعہلا" ; n = Sg} ; --DEPRECATED + for_Prep = mkPrep "کیلیے" "کیلیے" ; + from_Prep = mkPrep "سے" "سے" ; + he_Pron = personalPN "وہ" "اس" "" ["اس کا"] ["اس کی"] ["اس کے"] ["اس کی"] Sg Masc Pers3_Distant ; + here_Adv = mkAdv "یہاں" ; + here7to_Adv = mkAdv ["یہاں پر"] ; + here7from_Adv = mkAdv ["یہاں سے"] ; + how_IAdv = ss "کیسے" ; + how8many_IDet = makeIDet "کتنے" "کتنی" Pl ; + how8much_IAdv = ss "کتنا" ; + if_Subj = ss "اگر" ; + in8front_Prep = mkPrep ["کے سامنے"] ["کے سامنے"] ; + i_Pron = personalPN "میں" "مجھ" "" "میرا" "میری" "میرے" "میری" Sg Masc Pers1; + in_Prep = mkPrep "میں" "میں" ; + it_Pron = personalPN "یہ" "اس" "اس" ["اس کا"] ["اس کی"] ["اس کے"] ["اس کی"] Sg Masc Pers3_Near; + less_CAdv = {s = "کم" ; p = ""} ; + many_Det = mkDet "بہت زیادہ" "بہت زیادہ" "بہت زیادہ" "بہت زیادہ" Pl ; + more_CAdv = {s = "زیادہ" ; p = "سے" } ; + most_Predet = ss "زیادہ تر" ; + much_Det = mkDet "بہت" "بہت" "بہت" "بہت" Sg ; +-- must_VV = { +-- s = table { +-- VVF VInf => ["ہاvع تo"] ; +-- VVF VPres => "مuست" ; +-- VVF VPPart => ["ہاد تo"] ; +-- VVF VPresPart => ["ہاviنگ تo"] ; +-- VVF VPast => ["ہاد تo"] ; --# notpresent +-- VVPastNeg => ["ہادn'ت تo"] ; --# notpresent +-- VVPresNeg => "مuستn'ت" +-- } ; +-- isAux = True +-- } ; +-----b no_Phr = ss "نo" ; + no_Utt = ss "نہیں" ; + on_Prep = mkPrep "پر" "پر" ; +-- one_Quant = demoPN "ایک" "ایک" "ایک" ; -- DEPRECATED + only_Predet = ss "صرف" ; + or_Conj = sd2 [] "یا" ** {n = Sg} ; + otherwise_PConj = ss "یا پھر" ; + part_Prep = mkPrep "" "" ; + please_Voc = ss "مہربانی" ; + possess_Prep = mkPrep "کا" "کی" ; + -- quite_Adv = ss "خاموش" ; + she_Pron = personalPN "وہ" "اس" "وہ" ["اس کی"] ["اس کی"] ["اس کے"] ["اس کی"] Sg Fem Pers3_Distant ; + so_AdA = ss "اس لیے" ; + somebody_NP = MassNP (UseN (P.mkN "کوی" "کوی" "کوی" "کوی" "کوی" "کوی" Masc )); + someSg_Det = mkDet "کچھ" "کچھ" "کچھ" "کچھ" Sg ; + somePl_Det = mkDet "کچھ" "کچھ" "کچھ" "کچھ" Pl ; + something_NP = MassNP (UseN (P.mkN "کوی چیز" "کوی چیز" "کوی چیز" "کھ چیزیں" "کھ چیزوں" "کھ چیزو" Masc )); + somewhere_Adv = mkAdv ["کہیں پر"] ; + that_Quant = demoPN "وہ" "اس" "ان" ; + that_Subj = ss "کہ"; + there_Adv = mkAdv "وہاں" ; + there7to_Adv = mkAdv ["وہاں پر"] ; + there7from_Adv = mkAdv ["وہاں سے"] ; + therefore_PConj = ss "اس لیے" ; + they_Pron = personalPN "وہ" "وہ" "وہ" ["ان کا"] ["ان کی"] ["ان کے"] ["ان کی"] Pl Masc Pers3_Distant ; ---- + this_Quant = demoPN "یہ" "اس" "ان"; + through_Prep = mkPrep ["میں سے"] ["میں سے"] ; + too_AdA = ss "بہت" ; + to_Prep = mkPrep "کو" "کو" ; -- ** {lock_Prep = <>}; + under_Prep = mkPrep "کے نیچے" "کے نیچے" ; -- ** {lock_Prep = <>}; + very_AdA = ss "بہت" ; + want_VV = mkV "چاہنا" ** { isAux = False} ; + we_Pron = personalPN "ہم" "ہم" "ہم" "ہمارا" "ہماری" "ہمارے" "ہماری" Pl Masc Pers1 ; + whatSg_IP = mkIP "کیا" "کس" "کس" Sg Masc ; + whatPl_IP = mkIP "کیا" "کن" "کن" Pl Masc ; + when_IAdv = ss "کب" ; + when_Subj = ss "جب" ; + where_IAdv = ss "کہاں" ; +-- which_IQuant = {s = \\_ => "کون سی"} ; + which_IQuant = mkIQuant "کون" ; +-- whichPl_IDet = makeDet "کون سا" "کون سی" "کون سے" "کون سی" ; +-- whichSg_IDet = makeDet "کون سا" "کون سی" "کون سے" "کون سی" ; + whoSg_IP = mkIP "کون" "کس" "کس" Sg Masc ; + whoPl_IP = mkIP "کون" "کن" "کنہوں" Pl Masc ; + why_IAdv = ss "کیوں" ; + without_Prep = mkPrep ["کے بغیر"] ["کے بغیر"] ; + with_Prep = mkPrep ["کے ساتھ"] ["کے ساتھ"] ; +-- yes_Phr = ss "ہاں" ; + yes_Utt = ss "ہاں" ; + youSg_Pron = personalPN "تو" "تو" "تو" "تیرا" "تیری" "تیرے" "تیری" Sg Masc Pers2_Casual ; + youPl_Pron = personalPN "تم" "تم" "تم" "تمھارا" "تمھاری" "تمھارے" "تمھاری" Pl Masc Pers2_Casual ; + youPol_Pron = personalPN "آپ" "آپ" "آپ" ["آپ کا"] ["آپ کی"] ["آپ کے"] ["آپ کی"] Pl Masc Pers2_Respect ; + no_Quant = demoPN " کوی نہیں" "کوی نہیں" "کوی نہیں" ; + not_Predet = {s="نہیں"} ; + if_then_Conj = sd2 "اگر" "تو" ** {n = Sg} ; + at_least_AdN = mkAdN ["کم از کم"] ; + at_most_AdN = mkAdN ["زیادہ سے زیادہ"]; + nothing_NP = MassNP (UseN (P.mkN "کوی چیز نہیں" "کوی چیز نہیں" "کوی چیز نہیں" "کوی چیز نہیں" "کوی چیز نہیں" "کوی چیز نہیں" Masc )); + except_Prep = mkPrep "کے سواے" "کے سواے" ; + nobody_NP = MassNP (UseN (P.mkN "کوی نہیں" "کوی نہیں" "کوی نہیں" "کوی نہیں" "کوی نہیں" "کوی نہیں" Masc )); + + as_CAdv = {s = "اتنا" ; p = "جتنا"} ; + + have_V2 = mkV2 (mkV "رکھنا") "" ; + + language_title_Utt = ss "اردو" ; + +--concrete LexiconUrd of Lexicon = CatUrd ** +--open ResUrd, ParadigmsUrd, Prelude in { + +lin + airplane_N = P.mkN "جہاز" ; + answer_V2S = mkV2 (compoundV "جواب" (mkV "دینا")) ; + apartment_N = P.mkN "کمرہ" ; + apple_N = P.mkN "سیب" ; + art_N = P.mkN "فن" ; + ask_V2Q = mkV2 (mkV "پوچھنا") ; + baby_N = P.mkN "بچہ" ; + bad_A = mkA "برا" ; + bank_N = P.mkN "بینک" ; + beautiful_A = mkA "خوبصورت" ; + become_VA = mkV "بننا"; + beer_N = P.mkN "بییر" ; + beg_V2V = mkV2V (compoundV "التجا" (mkV "کرنا")) "سے" "کہ" False; + big_A = mkA "بڑا" ; + bike_N = P.mkN "سایکل" feminine ; + bird_N = P.mkN "پرندہ" ; + black_A = mkA "کالا" ; + blue_A = mkA "نیلا" ; + boat_N = P.mkN "کشتی" ; + book_N = P.mkN "کتاب" feminine ; + boot_N = P.mkN "جوتا" ; + boss_N = P.mkN "صاحب" ; + boy_N = P.mkN "لڑکا" ; + bread_N = P.mkN "روٹی" ; + break_V2 = mkV2 (mkV "توڑنا") ; + broad_A = mkA "کھلا" ; + brother_N2 = mkN2 (P.mkN "بھای") (mkPrep "کا" "کا") "کے" ; --not correct + brown_A = mkA "نسواری" ; + butter_N = P.mkN "مکھن" ; + buy_V2 = mkV2 (mkV "خریدنا") "کو"; + camera_N = P.mkN "کیمرہ" ; + cap_N = P.mkN "ٹوپی" ; + car_N = P.mkN "گاڑی" ; + carpet_N = P.mkN "تپائی" ; + cat_N = P.mkN "بلی" ; + ceiling_N = P.mkN "چھت" feminine ; + chair_N = P.mkN "کرسی" ; + cheese_N = P.mkN "پنیر" feminine ; + child_N = P.mkN "بچہ" ; + church_N = mkCmpdNoun "گرجا" (P.mkN "گھر") ; + city_N = P.mkN "شہر" ; + clean_A = mkA "صاف" ; + clever_A = mkA "ہوشیار" ; + close_V2 = mkV2 (compoundV "بند" do_V2); + coat_N = P.mkN "کوٹ" ; + cold_A = mkA "ٹھنڈا" ; + come_V = mkV "آنا" ; + computer_N = P.mkN "کمپیوٹر" ; + country_N = P.mkN "ملک" ; + cousin_N = mkCmpdNoun "چچا" (P.mkN "زاد") ; -- a compund noun made of two nouns + cow_N = P.mkN "گاے" feminine ; + die_V = mkV "مرنا" ; + dirty_A = mkA "گندا" ; + distance_N3 = mkN3 (P.mkN "فاصلہ") (mkPrep "کا" "کا") "کے" "سے" ; + doctor_N = P.mkN "معالج" ; + dog_N = P.mkN "کتا" ; + door_N = P.mkN "دروازہ" ; + drink_V2 = mkV2 (mkV "پینا"); + easy_A2V = mkA "آسان" "" ; + eat_V2 = mkV2 (mkV "کھانا") "" ; + empty_A = mkA "خالی" ; + enemy_N = P.mkN "دشمن" ; + factory_N = P.mkN "کارخانہ" ; + father_N2 = mkN2 (P.mkN "ابا") (mkPrep "کا" "کا") "کے" ; + fear_VS = mkV "ڈرنا"; + find_V2 = mkV2 (mkV "پانا") ; + fish_N = P.mkN "مچھلی" ; + floor_N = P.mkN "فرش" ; + forget_V2 = mkV2 (mkV "بھولنا") ; + fridge_N = P.mkN "فریج" ; + friend_N = P.mkN "دوست" masculine ; + fruit_N = P.mkN "پھل" ; +-- fun_AV = mkAV (regA "f?ن") ; + garden_N = P.mkN "باغ" ; + girl_N = P.mkN "لڑکی" ; + glove_N = P.mkN "دستانہ" ; + gold_N = P.mkN "سونا" ; + good_A = mkA "اچھا" ; + go_V = mkV "جانا" ; + green_A = mkA "سبز" ; + harbour_N = mkCmpdNoun "بندر" (P.mkN "گاہ") ; + hate_V2 = mkV2 (compoundV "نفرت" do_V2) ; + hat_N = P.mkN "ٹوپی" ; +-- have_V2 = dirV2 (mk5V "ہa?ع" "ہاس" "ہاد" "ہاد" "ہa??نگ") ; + hear_V2 = mkV2 (mkV "سننا") ; + hill_N = P.mkN "پہاڑی" ; + hope_VS = (compoundV "امید" do_V2); + horse_N = P.mkN "گھوڑا" ; + hot_A = mkA "گرم" ; + house_N = P.mkN "گھر" ; + important_A = mkA "اہم" ; + industry_N = P.mkN "صنعت" feminine ; + iron_N = P.mkN "لوہا" ; + king_N = P.mkN "بادشاہ" ; + know_V2 = mkV2 (mkV "جاننا") ; + know_VS = (mkV "جاننا") ; + know_VQ = (mkV "جاننا") ; + lake_N = P.mkN "جھیل" feminine ; + lamp_N = P.mkN "لیمپ" ; + learn_V2 = mkV2 (mkV "سیکھنا") ; + leather_N = P.mkN "چمڑا" ; + leave_V2 = mkV2 (mkV "جانا") ; + like_V2 = mkV2 (compoundV "پسند" do_V2) "کو"; + listen_V2 = mkV2 (mkV "سننا") ; + live_V = mkV "رہنا" ; ---- touch + long_A = mkA "لمبا" ; + lose_V2 = mkV2 (compoundV "کھو" do_V2) ; + love_N = P.mkN "محبت" ; + love_V2 = mkV2 (compoundV "پیار" do_V2) "کو"; + man_N = P.mkN "آدمی" "آدمی" "آدمی" "آدمی" "آدمیوں" "آدمیو" masculine ; + married_A2 = mkA "شادی شدہ" "سے" ; + meat_N = P.mkN "گوشت" ; + milk_N = P.mkN "دودھ" ; + moon_N = P.mkN "چاند" ; + mother_N2 = mkN2 (P.mkN "ماں") (mkPrep "کی" "کی") "کے"; -- not covered need to be discussed + mountain_N = P.mkN "پہاڑی" ; + music_N = P.mkN "موسیقی" ; + narrow_A = mkA "باریک" ; + new_A = mkA "نیا" ; + newspaper_N = P.mkN "اخبار" ; + oil_N = P.mkN "تیل" ; + old_A = mkA "بوڑھا" ; + open_V2 = mkV2 (mkV "کھولنا") ; + paint_V2A = mkV2 (compoundV "رنگ" do_V2) ; + paper_N = P.mkN "کاغز" ; + paris_PN = mkPN "پیرس" ; + peace_N = P.mkN "امن" ; + pen_N = P.mkN "پنسل" ; + planet_N = P.mkN "سیارہ" ; + plastic_N = P.mkN "پلاسٹک" ; + play_V2 = mkV2 (mkV "کھیلنا") ; + policeman_N = mkCmpdNoun "پولیس" (P.mkN "والا") ; + priest_N = (P.mkN "پیغمبر") ; +-- probable_AS = mkAS (regA "پr?بابلع") ; + queen_N = P.mkN "شہزادی" ; + radio_N = P.mkN "ریڈیو" ; + rain_V0 = compoundV "بارش" (mkV "ہونا" ) ; + read_V2 = mkV2 (mkV "پڑھنا"); + red_A = mkA "لال" ; + religion_N = P.mkN "مزہب" ; + restaurant_N = P.mkN "ہوٹل" ; +-- river_N = P.mkN "دریا" masculine ; + rock_N = P.mkN "چٹان" ; +-- roof_N = P.mkN "چھت" masculine ; + rubber_N = P.mkN "ربڑ" ; + run_V = mkV "دوڑنا" ; + say_VS = mkV "کہنا" ; + school_N = P.mkN "سکول" ; + science_N = P.mkN "سانس" ; + sea_N = P.mkN "سمندر" ; + seek_V2 = mkV2 (compoundV "تلاش" do_V2) ; + see_V2 = mkV2 (mkV "دیکھنا") ; + sell_V3 = mkV3 (mkV "بیچنا") "کو" ""; + send_V3 = mkV3 (mkV "بھیجنا") "کو" ""; + sheep_N = P.mkN "بھیڑ" feminine ; + ship_N = P.mkN "جہاز" ; + shirt_N = P.mkN "قمیص" feminine; + shoe_N = P.mkN "جوتا" ; + shop_N = P.mkN "دوکان" feminine ; + short_A = mkA "چھوٹا" ; + silver_N = P.mkN "چاندی" ; + sister_N = P.mkN "بہن" feminine ; + sleep_V = mkV "سونا" ; + small_A = mkA "چھوٹا" ; + snake_N = P.mkN "سانپ" ; + sock_N = P.mkN "جراب" feminine ; + speak_V2 = mkV2 (mkV "بولنا") ; + star_N = P.mkN "ستارا" ; + steel_N = P.mkN "سٹیل" ; + stone_N = P.mkN "پتھر" ; + stove_N = P.mkN "چولہا" ; + student_N = mkCmpdNoun "طالب" (P.mkN "علم") ; + stupid_A = mkA "احمق" ; + sun_N = P.mkN "سورج" ; + switch8off_V2 = mkV2 (mkV "چلانا") ; + switch8on_V2 = mkV2 (compoundV "بند" do_V2) ; + table_N = P.mkN "میز" feminine ; + talk_V3 = mkV3 (mkV "بولنا") "سے" "[کے بارے میN]"; + teacher_N = P.mkN "استاد" ; + teach_V2 = mkV2 (mkV "پڑھنا") ; + television_N = P.mkN "تیلیویژن" ; + thick_A = mkA "موٹا" ; + thin_A = mkA "پتلا" ; + train_N = P.mkN "گاڑی" ; + travel_V = (compoundV "سفر" do_V2) ; +-- tree_N = P.mkN "درخت" masculine ; +-- ---- trousers_N = P.mkN "تr??سعرس" ; + ugly_A = mkA "بدصورت" ; + understand_V2 = mkV2 (mkV "سمجھنا") ; + university_N = P.mkN "یونیورسٹی" ; + village_N = P.mkN "گاوں" ; + wait_V2 = mkV2 (compoundV "انتظار" do_V2) ; + walk_V = mkV "چلنا" ; + warm_A = mkA "گرم" ; + war_N = P.mkN "جنگ" ; + watch_V2 = mkV2 (mkV "دیکھنا") ; + water_N = P.mkN "پانی" ; -- not covered masculine ending with y + white_A = mkA "سفید" ; + window_N = P.mkN "کھڑکی" ; + wine_N = P.mkN "شراب" feminine ; + win_V2 = mkV2 (mkV "جیتنا") ; + woman_N = P.mkN "عورت" feminine ; + wonder_VQ = compoundV "حیران" (mkV "ہونا") ; + wood_N = P.mkN "لکڑی" ; + write_V2 = mkV2 (mkV "لکھنا") ; + yellow_A = mkA "پیلا" ; + young_A = mkA "جوان" ; + do_V2 = mkV2 (mkV "کرنا") ; + now_Adv = mkAdv "اب" ; + already_Adv = mkAdv "[پہلے ہy]" ; + song_N = P.mkN "گانا" ; + add_V3 = mkV3 (compoundV "اضافہ" do_V2) "" "" ; + number_N = P.mkN "ہندسہ" ; + put_V2 = mkV2 (mkV "ڈالنا") ; + stop_V = mkV "رکنا" ; + jump_V = mkV "چھلانگنا" ; + + left_Ord = {s = "بایاں" ; n = singular}; + right_Ord = {s= "دایاں" ; n = singular}; + far_Adv = mkAdv "دور" ; + correct_A = mkA "صیح" ; + dry_A = mkA "خشک" ; + dull_A = mkA "نالایق" ; + full_A = mkA "مکمل" ; + heavy_A = mkA "بھاری" ; + near_A = mkA "قریبی" ; + rotten_A = mkA "خراب" ; + round_A = mkA "گول" ; + sharp_A = mkA "تیز" ; + smooth_A = mkA "ہموار" ; + straight_A = mkA "سیدھا" ; + wet_A = mkA "گیلا" ; ---- + wide_A = mkA "کھلا" ; + animal_N = P.mkN "جانور" ; + ashes_N = P.mkN "راکھ" feminine; -- FIXME: plural only? + back_N = P.mkN "قمر" feminine ; + bark_N = P.mkN "بارک" ; + belly_N = P.mkN "دھنی" ; + blood_N = P.mkN "خون" ; + bone_N = P.mkN "ہڈی" ; + breast_N = P.mkN "چھاتی" ; + cloud_N = P.mkN "بادل" ; + day_N = P.mkN "دن" ; + dust_N = P.mkN "دھول" ; + ear_N = P.mkN "کان" ; + earth_N = P.mkN "زمین" feminine ; + egg_N = P.mkN "انڈہ" ; + eye_N = P.mkN "آنکھ" feminine ; + fat_N = P.mkN "موٹا" ; + feather_N = P.mkN "پر" ; + fingernail_N = P.mkN "ناخن" ; + fire_N = P.mkN "آگ" feminine ; + flower_N = P.mkN "پھول" ; + fog_N = P.mkN "دھند" feminine ; + foot_N = P.mkN "پاوں" ; -- not properly covered need to be discussed + forest_N = P.mkN "جنگل" ; + grass_N = P.mkN "گھاس" feminine ; + guts_N = P.mkN "گٹ" ; -- FIXME: no singular + hair_N = P.mkN "بال" ; + hand_N = P.mkN "ہاتھ" ; + head_N = P.mkN "سر" ; + heart_N = P.mkN "دل" ; + horn_N = P.mkN "گھنٹی" ; + husband_N = P.mkN "شوہر" ; + ice_N = P.mkN "برف" feminine ; + knee_N = P.mkN "کہنی" ; + leaf_N = P.mkN "پتہ" ; + leg_N = P.mkN "ٹانگ" feminine ; + liver_N = P.mkN "جگر" ; + louse_N = P.mkN "گھر" ; + mouth_N = P.mkN "منہ" ; + name_N = P.mkN "نام" ; + neck_N = P.mkN "گردن" feminine ; + night_N = P.mkN "رات" feminine ; + nose_N = P.mkN "ناک" ; + person_N = P.mkN "شخص" ; + rain_N = P.mkN "بارش" feminine ; + road_N = P.mkN "سڑک" ; + root_N = P.mkN "جڑ" feminine ; + rope_N = P.mkN "رسی" ; + salt_N = P.mkN "نمک" feminine ; + sand_N = P.mkN "ریت" feminine ; + seed_N = P.mkN "بیج" ; + skin_N = P.mkN "جلد" feminine ; + sky_N = P.mkN "آسمان" ; + smoke_N = P.mkN "دھواں"; -- singular masc nouns ending with aN,wN yet to be implemented + snow_N = P.mkN "برف" feminine ; + stick_N = P.mkN "چھڑی" ; + tail_N = P.mkN "دم" ; + tongue_N = P.mkN "زبان" feminine ; +-- tooth_N = P.mkN "دانت" masculine; + wife_N = P.mkN "بیوی" ; + wind_N = P.mkN "آندھی" ; + wing_N = P.mkN "پر" ; + worm_N = P.mkN "گرم" ; + year_N = P.mkN "سال" ; + blow_V = mkV "چلنا" ; + breathe_V = compoundV "سانس" (mkV "لینا" ) ; + burn_V = mkV "جلنا" ; + dig_V = mkV "کھودنا" ; + fall_V = mkV "گرنا" ; + float_V = mkV "تیرنا" ; + flow_V = mkV "بہنا" ; + fly_V = mkV "اڑنا" ; + freeze_V = mkV "جمنا"; + give_V3 = mkV3 (mkV "دینا") "کو" ""; + laugh_V = mkV "ہنسنا" ; +-- lie_N = P.mkN "جھوت" masculine ; + lie_V = compoundV "جھوٹ" (mkV "بولنا" ); + play_V = mkV "کھیلنا" ; + sew_V = mkV "سینا" ; + sing_V = mkV "گانا" ; + sit_V = mkV "بیٹھنا" ; + smell_V = mkV "سونگنا" ; + spit_V = mkV "تھوکنا" ; + stand_V = compoundV "کھڑے" (mkV "ہونا" ); + swell_V = mkV "سوجھنا" ; + swim_V = mkV "تیرنا" ; + think_V = mkV "سوچنا" ; + turn_V = mkV "مڑنا"; + vomit_V = compoundV "التی" (mkV "کرنا") ; + bite_V2 = mkV2 (mkV "کاٹنا") ; + count_V2 = mkV2 (mkV "گننا") ; + cut_V2 = mkV2 (mkV "کاتنا") ; + fear_V2 = mkV2 (mkV "ڈرنا") ; + fight_V2 = mkV2 (mkV "لڑنا") ; + hit_V2 = mkV2 (compoundV "ٹھوکر" (mkV "مارنا" )); + hold_V2 = mkV2 (mkV "پکڑنا") ; + hunt_V2 = mkV2 (compoundV "شکار" do_V2); + kill_V2 = mkV2 (compoundV "مار" (mkV "ڈالنا" )) ; + pull_V2 = mkV2 (mkV "کھنچنا"); + push_V2 = mkV2 (mkV "دھکیلنا") "کو" ; + rub_V2 = mkV2 (mkV "رگڑنا") ; + scratch_V2 = mkV2 (mkV "کھرچنا") "کو" ; + split_V2 = mkV2 (mkV "بانٹنا") "کو" ; +-- squeeze_V2 = dirV2 (regV "سq?ععزع") ; +-- stab_V2 = dirV2 (regDuplV "ستاب") ; + suck_V2 = mkV2 (mkV "چوسنا") ; + throw_V2 = mkV2 (mkV "پھینکنا") ; + tie_V2 = mkV2 (mkV "باندھنا") ; + wash_V2 = mkV2 (mkV "دھونا") ; + wipe_V2 = mkV2 (compoundV "صاف" (mkV "کرنا" )); + +---- other_A = regA "؟تہعر" ; + + grammar_N = P.mkN "گردان" ; + language_N = P.mkN "زبان" feminine ; + rule_N = P.mkN "اصول" ; + +---- added 4/6/2007 + john_PN = mkPN "جان" ; + question_N = P.mkN "سوال" ; + ready_A = mkA "تیار" ; + reason_N = P.mkN "وجہ" feminine ; + today_Adv = mkAdv "آج" ; + uncertain_A = mkA ["غیریقینی"] ; +} diff --git a/src/translator/ExtensionsUrd.gf b/src/translator/ExtensionsUrd.gf new file mode 100644 index 000000000..e3c194110 --- /dev/null +++ b/src/translator/ExtensionsUrd.gf @@ -0,0 +1,154 @@ +--# -path=.:../abstract + +concrete ExtensionsUrd of Extensions = + CatUrd ** open MorphoUrd, ResUrd, ParadigmsUrd, CommonHindustani, (E = ExtraUrd), Prelude in { + +flags coding = utf8 ; + +lincat +---- VPI = E.VPI ; +---- ListVPI = E.ListVPI ; + VPS = E.VPS ; + ListVPS = E.ListVPS ; + +lin +---- MkVPI = E.MkVPI ; +---- ConjVPI = E.ConjVPI ; +---- ComplVPIVV = E.ComplVPIVV ; + + MkVPS = E.MkVPS ; + ConjVPS = E.ConjVPS ; + PredVPS = E.PredVPS ; + +---- BaseVPI = E.BaseVPI ; +---- ConsVPI = E.ConsVPI ; + BaseVPS = E.BaseVPS ; + ConsVPS = E.ConsVPS ; + + GenNP = E.GenNP ; +---- GenIP = E.GenIP ; +---- GenRP = E.GenRP ; + +---- PassVPSlash = E.PassVPSlash ; +---- PassAgentVPSlash = E.PassAgentVPSlash ; + +---- EmptyRelSlash = E.EmptyRelSlash ; + + +lin + + CompoundN noun cn = { + s = \\n,c => cn.s ! Sg ! Dir ++ noun.s ! n ! c; + g = cn.g + } ; + + GerundN v = { + s = \\n,c => v.cvp ++ v.s ! Inf ; -- v.s ! VF Imperf Pers2_Casual n Masc ++ hwa (Ag Masc n Pers2_Casual) ; --the main verb of compound verbs + g = Masc + } ; + + GerundAP v = { + s = \\n,g,_,_ => v.cvp ++ v.s ! VF Imperf Pers2_Casual n g ++ hwa (Ag g n Pers2_Casual) ; + } ; + +---- PastPartAP v = { +---- s = \\n,g,_,_ => v.cvp ++ v.s ! VF Imperf Pers2_Casual n g ; -- the main verb of compound versb needs to be attached here +---- } ; + + OrdCompar a = {s = a.s ! Sg ! Masc ! Dir ! Compar ; n = Sg } ; + + PositAdVAdj a = {s = a.s ! Sg ! Masc ! Dir ! Posit} ; +--------------- +--SlashV2V v p vp = insertVV (infV2V v.isAux vp) (predV v) vp.embComp ** {c2 = {s = sE ; c = VTrans}}; -- changed from VTransPost +ComplVV v a p vp = insertTrans (insertVV (infVV v.isAux vp) (predV v) vp.embComp ) VTrans; -- changed from VTransPost +--------------- + + + UseQuantPN q pn = {s = \\c => q.s ! Sg ! pn.g ! Dir ++ pn.s ! Dir ; a = agrP3 pn.g Sg} ; + +PredVPosv np vp = mkClause np vp ; --{ +{- s = \\t,a,b,o => + let + verb = vp.s ! t ! a ! b ! o ! np.a ; + compl = vp.s2 ! np.a + in + case o of { + ODir => compl ++ "," ++ np.s ! npNom ++ verb.aux ++ vp.ad ++ verb.fin ++ verb.adv ++ verb.inf ; + OQuest => verb.aux ++ compl ++ "," ++ np.s ! npNom ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf + } + } ; +-} + PredVPovs np vp = mkClause np vp ; --{ +{- s = \\t,a,b,o => + let + verb = vp.s ! t ! a ! b ! o ! np.a ; + compl = vp.s2 ! np.a + in + case o of { + ODir => compl ++ verb.aux ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ++ np.s ! npNom ; + OQuest => verb.aux ++ compl ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ++ np.s ! npNom + } + } ; +-} + +{- + SlashV2V v p vp = insertObjc (\\a => p.s ++ case p.p of {CPos => ""; _ => "not"} ++ + v.c3 ++ + infVP v.typ vp a) + (predVc v) ; + + ComplPredVP np vp = { + s = \\t,a,b,o => + let + verb = vp.s ! t ! a ! b ! o ! np.a ; + compl = vp.s2 ! np.a + in + case o of { + ODir => compl ++ "," ++ np.s ! npNom ++ verb.aux ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ; + OQuest => verb.aux ++ compl ++ "," ++ np.s ! npNom ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf + } + } ; +-} +CompVP ant p vp = {s = \\a => ant.s ++ p.s ++ + infVP False vp a} ; -- check for vp.isAux + + that_RP = { + s = \\_,_ => "कि" ; + a = RNoAg + } ; + --no_RP = { + -- s = \\_,_ => "" ; + -- a = RNoAg + -- } ; + + CompS s = {s = \\_ => "कि" ++ s.s} ; +-- CompVP vp = {s = \\a => infVP VVInf vp a} ; + +lin + PPos = {s = [] ; p = Pos} ; + PNeg = {s = [] ; p = Neg} ; -- contracted: don't + UncNeg = {s = [] ; p = Neg} ; + + VPSlashPrep vp p = vp ** {c2 = {s = p.s!Masc ; c = VTrans}} ; + + PastPartRS ant pol vps = { + s = \\agr => (vps.s!VPTense VPPast agr).inf ; + c = Dir + } ; + + PresPartRS ant pol vp = { + s = \\agr => (vp.s!VPTense VPPres agr).inf ; + c = Dir + } ; + + ApposNP np1 np2 = { + s = \\c => np1.s!NPC Dir ++ "," ++ np2.s ! c ; + a = np2.a + } ; + + AdAdV = cc2 ; + + UttAdV adv = adv; + + +} diff --git a/src/translator/TranslateUrd.gf b/src/translator/TranslateUrd.gf new file mode 100644 index 000000000..eb4654dc1 --- /dev/null +++ b/src/translator/TranslateUrd.gf @@ -0,0 +1,36 @@ +--# -path=.:../chunk:alltenses + +concrete TranslateUrd of Translate = + TenseX - [AdN,Adv,SC], + CatUrd, + NounUrd - [PPartNP], + AdjectiveUrd, + NumeralUrd, + SymbolUrd [ + PN, Symb, String, CN, Card, NP, MkSymb, SymbPN, CNNumNP + ], + ConjunctionUrd, + VerbUrd - [ + UseCopula, + PassV2 -- generalized in Extensions + ], + AdverbUrd, + PhraseUrd, + SentenceUrd, + QuestionUrd, + RelativeUrd, + IdiomUrd, +---- ConstructionUrd, +---- DocumentationUrd, + + ChunkUrd, + ExtensionsUrd [ ListVPS,BaseVPS,ConsVPS,ConjVPS,ListVPI,BaseVPI,ConsVPI,ConjVPI, +CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash], + + DictionaryUrd ** +open MorphoUrd, ResUrd, ParadigmsUrd, SyntaxUrd, CommonScand, (E = ExtraUrd), Prelude in { + +flags + literal=Symb ; + +}