mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
(Som) Fixes in verb constructors, still WIP
This commit is contained in:
@@ -5,414 +5,414 @@ concrete LexiconSom of Lexicon = CatSom **
|
|||||||
-- A
|
-- A
|
||||||
|
|
||||||
lin add_V3 = mkV3 "dar" ku noPrep ;
|
lin add_V3 = mkV3 "dar" ku noPrep ;
|
||||||
-- lin airplane_N = mkN "" ;
|
-- lin airplane_N = mkN [] ;
|
||||||
-- lin alas_Interj = mkInterj "" ;
|
-- lin alas_Interj = mkInterj [] ;
|
||||||
-- lin already_Adv = mkA "" ;
|
-- lin already_Adv = mkA [] ;
|
||||||
lin animal_N = mkN "xayawaan" ;
|
lin animal_N = mkN "xayawaan" ;
|
||||||
lin answer_V2S = mkV2S "jawaab" ku ;
|
lin answer_V2S = mkV2S "jawaab" ku ;
|
||||||
-- lin apartment_N = mkN "" ;
|
-- lin apartment_N = mkN [] ;
|
||||||
-- lin apple_N = mkN "" ;
|
-- lin apple_N = mkN [] ;
|
||||||
-- lin art_N = mkN "" ;
|
-- lin art_N = mkN [] ;
|
||||||
-- lin ashes_N = mkN "" ;
|
-- lin ashes_N = mkN [] ;
|
||||||
-- lin ask_V2Q = mkV2 "" ;
|
-- lin ask_V2Q = mkV2 [] ;
|
||||||
|
|
||||||
----
|
----
|
||||||
-- B
|
-- B
|
||||||
|
|
||||||
-- lin baby_N = mkN "" ;
|
-- lin baby_N = mkN [] ;
|
||||||
-- lin back_N = mkN "" ;
|
-- lin back_N = mkN [] ;
|
||||||
-- lin bad_A = mkA "" ;
|
-- lin bad_A = mkA [] ;
|
||||||
-- lin bank_N = mkN "" ;
|
-- lin bank_N = mkN [] ;
|
||||||
-- lin bark_N = mkN "" ;
|
-- lin bark_N = mkN [] ;
|
||||||
-- lin beautiful_A = mkA "" ;
|
-- lin beautiful_A = mkA [] ;
|
||||||
-- lin become_VA = mkVA "" ;
|
-- lin become_VA = mkVA [] ;
|
||||||
-- lin beer_N = mkN "" ;
|
-- lin beer_N = mkN [] ;
|
||||||
-- lin beg_V2V = mkV2 "" ;
|
-- lin beg_V2V = mkV2 [] ;
|
||||||
-- lin belly_N = mkN "" ;
|
-- lin belly_N = mkN [] ;
|
||||||
lin big_A = mkA "weyn" ;
|
lin big_A = mkA "weyn" ;
|
||||||
-- lin bike_N = mkN "" ;
|
-- lin bike_N = mkN [] ;
|
||||||
lin bird_N = mkN "shimbir" fem ;
|
lin bird_N = mkN "shimbir" fem ;
|
||||||
-- lin bite_V2 = mkV2 "" ;
|
-- lin bite_V2 = mkV2 [] ;
|
||||||
lin black_A = mkA "madow" ;
|
lin black_A = mkA "madow" ;
|
||||||
-- lin blood_N = mkN "" ;
|
-- lin blood_N = mkN [] ;
|
||||||
-- lin blow_V = mkV "" ;
|
-- lin blow_V = mkV [] ;
|
||||||
-- lin blue_A = mkA "" ;
|
-- lin blue_A = mkA [] ;
|
||||||
-- lin boat_N = mkN "" ;
|
-- lin boat_N = mkN [] ;
|
||||||
-- lin bone_N = mkN "" ;
|
-- lin bone_N = mkN [] ;
|
||||||
-- lin boot_N = mkN "" ;
|
-- lin boot_N = mkN [] ;
|
||||||
-- lin boss_N = mkN "" ;
|
-- lin boss_N = mkN [] ;
|
||||||
lin book_N = (mk2N "buug" "buugaag") ** {gda = MF GA TA} ;
|
lin book_N = (mk2N "buug" "buugaag") ** {gda = MF GA TA} ;
|
||||||
lin boy_N = mk2N "wiil" "wiilal" ;
|
lin boy_N = mk2N "wiil" "wiilal" ;
|
||||||
lin bread_N = mkN "rooti" ; --masc/fem
|
lin bread_N = mkN "rooti" ; --masc/fem
|
||||||
-- lin break_V2 = mkV2 "" ;
|
-- lin break_V2 = mkV2 [] ;
|
||||||
-- lin breast_N = mkN "" ;
|
-- lin breast_N = mkN [] ;
|
||||||
-- lin breathe_V = mkV "" ;
|
-- lin breathe_V = mkV [] ;
|
||||||
-- lin broad_A = mkA "" ;
|
-- lin broad_A = mkA [] ;
|
||||||
-- lin brother_N2 = mkN "" ;
|
-- lin brother_N2 = mkN [] ;
|
||||||
-- lin brown_A = mkA "" ;
|
-- lin brown_A = mkA [] ;
|
||||||
-- lin burn_V = mkV "" ;
|
-- lin burn_V = mkV [] ;
|
||||||
-- lin butter_N = mkN "" ;
|
-- lin butter_N = mkN [] ;
|
||||||
lin buy_V2 = mkV2 "iibso" ;
|
lin buy_V2 = mkV2 "iibso" ;
|
||||||
|
|
||||||
----
|
----
|
||||||
-- C
|
-- C
|
||||||
|
|
||||||
-- lin camera_N = mkN "" ;
|
-- lin camera_N = mkN [] ;
|
||||||
-- lin cap_N = mkN "" ;
|
-- lin cap_N = mkN [] ;
|
||||||
lin car_N = mkN "baabuur" masc ;
|
lin car_N = mkN "baabuur" masc ;
|
||||||
-- lin carpet_N = mkN "" ;
|
-- lin carpet_N = mkN [] ;
|
||||||
lin cat_N = mkN "bisad" ;
|
lin cat_N = mkN "bisad" ;
|
||||||
-- lin ceiling_N = mkN "" ;
|
-- lin ceiling_N = mkN [] ;
|
||||||
lin chair_N = mkN "kursi" ;
|
lin chair_N = mkN "kursi" ;
|
||||||
-- lin cheese_N = mkN "" ;
|
-- lin cheese_N = mkN [] ;
|
||||||
-- lin child_N = mkN "" ;
|
-- lin child_N = mkN [] ;
|
||||||
-- lin church_N = mkN "" ;
|
-- lin church_N = mkN [] ;
|
||||||
lin city_N = mkN "magaalo" ;
|
lin city_N = mkN "magaalo" ;
|
||||||
-- lin clean_A = mkA "" ;
|
-- lin clean_A = mkA [] ;
|
||||||
-- lin clever_A = mkA "" ;
|
-- lin clever_A = mkA [] ;
|
||||||
-- lin close_V2 = mkV2 "" ;
|
-- lin close_V2 = mkV2 [] ;
|
||||||
-- lin cloud_N = mkN "" ;
|
-- lin cloud_N = mkN [] ;
|
||||||
-- lin coat_N = mkN "" ;
|
-- lin coat_N = mkN [] ;
|
||||||
-- lin cold_A = mkA "" ;
|
-- lin cold_A = mkA [] ;
|
||||||
lin come_V = mkV "iman" ;
|
lin come_V = mkV "iman" ;
|
||||||
-- lin computer_N = mkN "" ;
|
-- lin computer_N = mkN [] ;
|
||||||
-- lin correct_A = mkA "" ;
|
-- lin correct_A = mkA [] ;
|
||||||
-- lin count_V2 = mkV2 "" ;
|
-- lin count_V2 = mkV2 [] ;
|
||||||
-- lin country_N = mkN "" ;
|
-- lin country_N = mkN [] ;
|
||||||
-- lin cousin_N = mkN "" ;
|
-- lin cousin_N = mkN [] ;
|
||||||
-- lin cow_N = mkN "" ;
|
-- lin cow_N = mkN [] ;
|
||||||
-- lin cut_V2 = mkV2 "" ;
|
-- lin cut_V2 = mkV2 [] ;
|
||||||
--
|
--
|
||||||
-- ----
|
-- ----
|
||||||
-- -- D
|
-- -- D
|
||||||
--
|
--
|
||||||
-- lin day_N = mkN "" ;
|
-- lin day_N = mkN [] ;
|
||||||
-- lin die_V = mkV "" ;
|
-- lin die_V = mkV [] ;
|
||||||
-- lin dig_V = mkV "" ;
|
-- lin dig_V = mkV [] ;
|
||||||
-- lin dirty_A = mkA "" ;
|
-- lin dirty_A = mkA [] ;
|
||||||
-- lin distance_N3 = mkN "" ;
|
-- lin distance_N3 = mkN [] ;
|
||||||
-- lin do_V2 = lin V2 egin_V ;
|
-- lin do_V2 = lin V2 egin_V ;
|
||||||
-- lin doctor_N = mkN "" ;
|
-- lin doctor_N = mkN [] ;
|
||||||
-- lin dog_N = mkN "" ;
|
-- lin dog_N = mkN [] ;
|
||||||
-- lin door_N = mkN "" ;
|
-- lin door_N = mkN [] ;
|
||||||
lin drink_V2 = mkV2 "cab" ;
|
lin drink_V2 = mkV2 "cab" ;
|
||||||
-- lin dry_A = mkA "" ;
|
-- lin dry_A = mkA [] ;
|
||||||
-- lin dull_A = mkA "" ;
|
-- lin dull_A = mkA [] ;
|
||||||
-- lin dust_N = mkN "" ;
|
-- lin dust_N = mkN [] ;
|
||||||
|
|
||||||
----
|
----
|
||||||
-- E
|
-- E
|
||||||
|
|
||||||
-- lin ear_N = mkN "" ;
|
-- lin ear_N = mkN [] ;
|
||||||
-- lin earth_N = mkN "" ;
|
-- lin earth_N = mkN [] ;
|
||||||
lin eat_V2 = mkV2 "cun" ;
|
lin eat_V2 = mkV2 "cun" ;
|
||||||
-- lin egg_N = mkN "" ;
|
-- lin egg_N = mkN [] ;
|
||||||
-- lin empty_A = mkA "" ;
|
-- lin empty_A = mkA [] ;
|
||||||
-- lin enemy_N = mkN "" ;
|
-- lin enemy_N = mkN [] ;
|
||||||
-- lin eye_N = mkN "" ;
|
-- lin eye_N = mkN [] ;
|
||||||
|
|
||||||
----
|
----
|
||||||
-- F
|
-- F
|
||||||
|
|
||||||
-- lin factory_N = mkN "" ;
|
-- lin factory_N = mkN [] ;
|
||||||
-- lin fall_V = mkV "" ;
|
-- lin fall_V = mkV [] ;
|
||||||
-- lin far_Adv = mkA "" ;
|
-- lin far_Adv = mkA [] ;
|
||||||
-- lin fat_N = mkN "" ;
|
-- lin fat_N = mkN [] ;
|
||||||
lin father_N2 = mkN2 (shortPossN (mkN "aabbe")) ;
|
lin father_N2 = mkN2 (shortPossN (mkN "aabbe")) ;
|
||||||
-- lin fear_V2 = mkV2 "" ;
|
-- lin fear_V2 = mkV2 [] ;
|
||||||
-- lin fear_VS = mkVS "" ;
|
-- lin fear_VS = mkVS [] ;
|
||||||
-- lin feather_N = mkN "" ;
|
-- lin feather_N = mkN [] ;
|
||||||
-- lin fight_V2 = mkV2 "" ;
|
-- lin fight_V2 = mkV2 [] ;
|
||||||
-- lin find_V2 = mkV2 "" ;
|
-- lin find_V2 = mkV2 [] ;
|
||||||
-- lin fingernail_N = mkN "" ;
|
-- lin fingernail_N = mkN [] ;
|
||||||
-- lin fire_N = mkN "" ;
|
-- lin fire_N = mkN [] ;
|
||||||
-- lin fish_N = mkN "" ;
|
-- lin fish_N = mkN [] ;
|
||||||
-- lin float_V = mkV "" ;
|
-- lin float_V = mkV [] ;
|
||||||
-- lin floor_N = mkN "" ;
|
-- lin floor_N = mkN [] ;
|
||||||
-- lin flow_V = mkV "" ;
|
-- lin flow_V = mkV [] ;
|
||||||
-- lin flower_N = mkN "" ;
|
-- lin flower_N = mkN [] ;
|
||||||
-- lin fly_V = mkV "" ;
|
-- lin fly_V = mkV [] ;
|
||||||
-- lin fog_N = mkN "" ;
|
-- lin fog_N = mkN [] ;
|
||||||
-- lin foot_N = mkN "" ;
|
-- lin foot_N = mkN [] ;
|
||||||
-- lin forest_N = mkN "" ;
|
-- lin forest_N = mkN [] ;
|
||||||
-- lin forget_V2 = mkV2 "" ;
|
-- lin forget_V2 = mkV2 [] ;
|
||||||
-- lin freeze_V = mkV "" ;
|
-- lin freeze_V = mkV [] ;
|
||||||
-- lin fridge_N = mkN "" ;
|
-- lin fridge_N = mkN [] ;
|
||||||
-- lin friend_N = mkN "" ;
|
-- lin friend_N = mkN [] ;
|
||||||
-- lin fruit_N = mkN "" ;
|
-- lin fruit_N = mkN [] ;
|
||||||
-- lin full_A = mkA "" ;
|
-- lin full_A = mkA [] ;
|
||||||
-- --lin fun_AV
|
-- --lin fun_AV
|
||||||
|
|
||||||
----
|
----
|
||||||
-- G
|
-- G
|
||||||
|
|
||||||
-- lin garden_N = mkN "" ;
|
-- lin garden_N = mkN [] ;
|
||||||
lin girl_N = mkN "gabadh" "gabdho" fem ;
|
lin girl_N = mkN "gabadh" "gabdho" fem ;
|
||||||
lin give_V3 = mkV3 "sii" ;
|
lin give_V3 = mkV3 "sii" ;
|
||||||
-- lin glove_N = mkN "" ;
|
-- lin glove_N = mkN [] ;
|
||||||
lin go_V = mkV "tag" ;
|
lin go_V = mkV "tag" ;
|
||||||
-- lin gold_N = mkN "" ;
|
-- lin gold_N = mkN [] ;
|
||||||
-- lin good_A = mkA "" ;
|
-- lin good_A = mkA [] ;
|
||||||
-- lin grammar_N = mkN "" ;
|
-- lin grammar_N = mkN [] ;
|
||||||
-- lin grass_N = mkN "" ;
|
-- lin grass_N = mkN [] ;
|
||||||
-- lin green_A = mkA "" ;
|
-- lin green_A = mkA [] ;
|
||||||
|
|
||||||
----
|
----
|
||||||
-- H
|
-- H
|
||||||
|
|
||||||
-- lin hair_N = mkN "" ;
|
-- lin hair_N = mkN [] ;
|
||||||
-- lin hand_N = mkN "" ;
|
-- lin hand_N = mkN [] ;
|
||||||
-- lin harbour_N = mkN "" ;
|
-- lin harbour_N = mkN [] ;
|
||||||
-- lin hat_N = mkN "" ;
|
-- lin hat_N = mkN [] ;
|
||||||
-- lin hate_V2 = mkV2 "" ;
|
-- lin hate_V2 = mkV2 [] ;
|
||||||
-- lin head_N = mkN "" ;
|
-- lin head_N = mkN [] ;
|
||||||
-- lin hear_V2 = mkV2 "" ;
|
-- lin hear_V2 = mkV2 [] ;
|
||||||
-- lin heart_N = mkN "" ;
|
-- lin heart_N = mkN [] ;
|
||||||
-- lin heavy_A = mkA "" ;
|
-- lin heavy_A = mkA [] ;
|
||||||
-- lin hill_N = mkN "" ;
|
-- lin hill_N = mkN [] ;
|
||||||
-- lin hit_V2 = mkV2 "" ;
|
-- lin hit_V2 = mkV2 [] ;
|
||||||
-- lin hold_V2 = mkV2 "" ;
|
-- lin hold_V2 = mkV2 [] ;
|
||||||
-- lin hope_VS = mkV "" ;
|
-- lin hope_VS = mkV [] ;
|
||||||
-- lin horn_N = mkN "" ;
|
-- lin horn_N = mkN [] ;
|
||||||
-- lin horse_N = mkN "" ;
|
-- lin horse_N = mkN [] ;
|
||||||
-- lin hot_A = mkA "" ;
|
-- lin hot_A = mkA [] ;
|
||||||
lin house_N = mkN "guri" ;
|
lin house_N = mkN "guri" ;
|
||||||
-- lin hunt_V2 = mkV2 "" ;
|
-- lin hunt_V2 = mkV2 [] ;
|
||||||
-- lin husband_N = mkN "" ;
|
-- lin husband_N = mkN [] ;
|
||||||
|
|
||||||
--------
|
--------
|
||||||
-- I - K
|
-- I - K
|
||||||
|
|
||||||
-- lin ice_N = mkN "" ;
|
-- lin ice_N = mkN [] ;
|
||||||
-- lin industry_N = mkN "" ;
|
-- lin industry_N = mkN [] ;
|
||||||
-- lin iron_N = mkN "" ;
|
-- lin iron_N = mkN [] ;
|
||||||
-- lin john_PN = mkPN "Jon" ;
|
-- lin john_PN = mkPN "Jon" ;
|
||||||
lin jump_V = mkV "bood" ;
|
lin jump_V = mkV "bood" ;
|
||||||
-- lin kill_V2 = mkV2 "" ;
|
-- lin kill_V2 = mkV2 [] ;
|
||||||
-- lin king_N = mkN "" ;
|
-- lin king_N = mkN [] ;
|
||||||
-- lin knee_N = mkN "" ;
|
-- lin knee_N = mkN [] ;
|
||||||
-- lin know_V2 = mkV2 "" ;
|
-- lin know_V2 = mkV2 [] ;
|
||||||
-- lin know_VQ = mkVQ "" ;
|
-- lin know_VQ = mkVQ [] ;
|
||||||
lin know_VS = mkV "ogaan" ; -- copula ** {sii = "og"} ;
|
lin know_VS = mkV "ogaan" ; -- copula ** {sii = "og"} ;
|
||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
-- L
|
-- L
|
||||||
|
|
||||||
-- lin lake_N = mkN "" ;
|
-- lin lake_N = mkN [] ;
|
||||||
-- lin lamp_N = mkN "" ;
|
-- lin lamp_N = mkN [] ;
|
||||||
lin language_N = mkN "af" ;
|
lin language_N = mkN "af" ;
|
||||||
-- lin laugh_V = mkV "" ;
|
-- lin laugh_V = mkV [] ;
|
||||||
-- lin leaf_N = mkN "" ;
|
-- lin leaf_N = mkN [] ;
|
||||||
-- lin learn_V2 = mkV2 "" ;
|
-- lin learn_V2 = mkV2 [] ;
|
||||||
-- lin leather_N = mkN "" ;
|
-- lin leather_N = mkN [] ;
|
||||||
-- lin leave_V2 = mkV2 "" ;
|
-- lin leave_V2 = mkV2 [] ;
|
||||||
-- lin leg_N = mkN "" ;
|
-- lin leg_N = mkN [] ;
|
||||||
-- lin lie_V = mkV "" ;
|
-- lin lie_V = mkV [] ;
|
||||||
-- lin like_V2 = mkV2 "" ;
|
-- lin like_V2 = mkV2 [] ;
|
||||||
-- lin listen_V2 = mkV2 "" ;
|
-- lin listen_V2 = mkV2 [] ;
|
||||||
lin live_V = copula ** {sii = "nool"} ;
|
lin live_V = copula ** {sii = "nool"} ;
|
||||||
-- lin liver_N = mkN "" ;
|
-- lin liver_N = mkN [] ;
|
||||||
-- lin long_A = mkA "" ;
|
-- lin long_A = mkA [] ;
|
||||||
-- lin lose_V2 = mkV2 "" ;
|
-- lin lose_V2 = mkV2 [] ;
|
||||||
-- lin louse_N = mkN "" ;
|
-- lin louse_N = mkN [] ;
|
||||||
-- lin love_N = mkN "" ;
|
-- lin love_N = mkN [] ;
|
||||||
-- lin love_V2 = mkV2 "" ;
|
-- lin love_V2 = mkV2 [] ;
|
||||||
|
|
||||||
----
|
----
|
||||||
-- M
|
-- M
|
||||||
|
|
||||||
lin man_N = (mk2N "nin" "niman") ** {gda = MM KA KA} ;
|
lin man_N = (mk2N "nin" "niman") ** {gda = MM KA KA} ;
|
||||||
-- lin married_A2 = mkA "" ;
|
-- lin married_A2 = mkA [] ;
|
||||||
lin meat_N = mkN "hilib" "hilbo" masc ;
|
lin meat_N = mkN "hilib" "hilbo" masc ;
|
||||||
-- lin milk_N = mkN "" ;
|
-- lin milk_N = mkN [] ;
|
||||||
-- lin moon_N = mkN "" ;
|
-- lin moon_N = mkN [] ;
|
||||||
lin mother_N2 = mkN2 (shortPossN (mkN "hooyo")) ;
|
lin mother_N2 = mkN2 (shortPossN (mkN "hooyo")) ;
|
||||||
-- lin mountain_N = mkN "" ;
|
-- lin mountain_N = mkN [] ;
|
||||||
-- lin mouth_N = mkN "" ;
|
-- lin mouth_N = mkN [] ;
|
||||||
-- lin music_N = mkN "" ;
|
-- lin music_N = mkN [] ;
|
||||||
|
|
||||||
----
|
----
|
||||||
-- N
|
-- N
|
||||||
|
|
||||||
lin name_N = mkN "magac" ;
|
lin name_N = mkN "magac" ;
|
||||||
-- lin narrow_A = mkA "" ;
|
-- lin narrow_A = mkA [] ;
|
||||||
-- lin near_A = mkA "" ;
|
-- lin near_A = mkA [] ;
|
||||||
-- lin neck_N = mkN "" ;
|
-- lin neck_N = mkN [] ;
|
||||||
-- lin new_A = mkA "" ;
|
-- lin new_A = mkA [] ;
|
||||||
-- lin newspaper_N = mkN "" ;
|
-- lin newspaper_N = mkN [] ;
|
||||||
-- lin night_N = mkN "" ;
|
-- lin night_N = mkN [] ;
|
||||||
-- lin nose_N = mkN "" ;
|
-- lin nose_N = mkN [] ;
|
||||||
-- lin now_Adv = mkA "" ;
|
-- lin now_Adv = mkA [] ;
|
||||||
-- lin number_N = mkN "" ;
|
-- lin number_N = mkN [] ;
|
||||||
--
|
--
|
||||||
-- --------
|
-- --------
|
||||||
-- -- O - P
|
-- -- O - P
|
||||||
--
|
--
|
||||||
--
|
--
|
||||||
-- lin oil_N = mkN "" ;
|
-- lin oil_N = mkN [] ;
|
||||||
-- lin old_A = mkA "" ;
|
-- lin old_A = mkA [] ;
|
||||||
lin open_V2 = mkV2 "fur" ;
|
lin open_V2 = mkV2 "fur" ;
|
||||||
lin paint_V2A = mkV2A "rinjiyee" ;
|
lin paint_V2A = mkV2A "rinjiyee" ;
|
||||||
-- lin paper_N = mkN "" ;
|
-- lin paper_N = mkN [] ;
|
||||||
-- lin paris_PN = mkPN "Paris" ;
|
-- lin paris_PN = mkPN "Paris" ;
|
||||||
-- lin peace_N = mkN "" ;
|
-- lin peace_N = mkN [] ;
|
||||||
-- lin pen_N = mkN "" ;
|
-- lin pen_N = mkN [] ;
|
||||||
lin person_N = mkNoun "dad" "dadka" "dad" "dadka" Masc ;
|
lin person_N = mkNoun "dad" "dadka" "dad" "dadka" Masc ;
|
||||||
-- lin planet_N = mkN "" ;
|
-- lin planet_N = mkN [] ;
|
||||||
-- lin plastic_N = mkN "" ;
|
-- lin plastic_N = mkN [] ;
|
||||||
-- lin play_V = mkV "" ;
|
-- lin play_V = mkV [] ;
|
||||||
-- lin policeman_N = mkN "" ;
|
-- lin policeman_N = mkN [] ;
|
||||||
-- lin priest_N = mkN "" ;
|
-- lin priest_N = mkN [] ;
|
||||||
-- lin pull_V2 = mkV2 "" ;
|
-- lin pull_V2 = mkV2 [] ;
|
||||||
-- lin push_V2 = mkV2 "" ;
|
-- lin push_V2 = mkV2 [] ;
|
||||||
-- lin put_V2 = mkV2 "" ;
|
-- lin put_V2 = mkV2 [] ;
|
||||||
--
|
--
|
||||||
-- --------
|
-- --------
|
||||||
-- -- Q - R
|
-- -- Q - R
|
||||||
--
|
--
|
||||||
-- lin queen_N = mkN "" ;
|
-- lin queen_N = mkN [] ;
|
||||||
-- lin question_N = mkN "" ;
|
-- lin question_N = mkN [] ;
|
||||||
-- lin radio_N = mkN "" ;
|
-- lin radio_N = mkN [] ;
|
||||||
-- lin rain_N = mkN "" ;
|
-- lin rain_N = mkN [] ;
|
||||||
-- lin rain_V0 = mkV "" ;
|
-- lin rain_V0 = mkV [] ;
|
||||||
lin read_V2 = mkV2 "akhri" ;
|
lin read_V2 = mkV2 "akhri" ;
|
||||||
-- lin ready_A = mkA "" ;
|
-- lin ready_A = mkA [] ;
|
||||||
-- lin reason_N = mkN "" ;
|
-- lin reason_N = mkN [] ;
|
||||||
-- lin red_A = mkA "" ;
|
-- lin red_A = mkA [] ;
|
||||||
-- lin religion_N = mkN "" ;
|
-- lin religion_N = mkN [] ;
|
||||||
-- lin restaurant_N = mkN "" ;
|
-- lin restaurant_N = mkN [] ;
|
||||||
-- lin river_N = mkN "" ;
|
-- lin river_N = mkN [] ;
|
||||||
-- lin road_N = mkN "" ;
|
-- lin road_N = mkN [] ;
|
||||||
-- lin rock_N = mkN "" ;
|
-- lin rock_N = mkN [] ;
|
||||||
-- lin roof_N = mkN "" ;
|
-- lin roof_N = mkN [] ;
|
||||||
-- lin root_N = mkN "" ;
|
-- lin root_N = mkN [] ;
|
||||||
-- lin rope_N = mkN "" ;
|
-- lin rope_N = mkN [] ;
|
||||||
-- lin rotten_A = mkA "" ;
|
-- lin rotten_A = mkA [] ;
|
||||||
-- lin round_A = mkA "" ;
|
-- lin round_A = mkA [] ;
|
||||||
-- lin rub_V2 = mkV2 "" ;
|
-- lin rub_V2 = mkV2 [] ;
|
||||||
-- lin rubber_N = mkN "" ;
|
-- lin rubber_N = mkN [] ;
|
||||||
-- lin rule_N = mkN "" ;
|
-- lin rule_N = mkN [] ;
|
||||||
-- lin run_V = mkV "" ;
|
-- lin run_V = mkV [] ;
|
||||||
|
|
||||||
----
|
----
|
||||||
-- S
|
-- S
|
||||||
|
|
||||||
lin salt_N = mkN "cusbo" ;
|
lin salt_N = mkN "cusbo" ;
|
||||||
-- lin sand_N = mkN "" ;
|
-- lin sand_N = mkN [] ;
|
||||||
-- lin say_VS = mkVS "" ;
|
-- lin say_VS = mkVS [] ;
|
||||||
-- lin school_N = mkN "" ;
|
-- lin school_N = mkN [] ;
|
||||||
-- lin science_N = mkN "" ;
|
-- lin science_N = mkN [] ;
|
||||||
-- lin scratch_V2 = mkV2 "" ;
|
-- lin scratch_V2 = mkV2 [] ;
|
||||||
lin sea_N = mkN "bad" fem ;
|
lin sea_N = mkN "bad" fem ;
|
||||||
lin see_V2 = mkV2 "ark" ;
|
lin see_V2 = mkV2 (mkV "arag" "arkaa") noPrep ;
|
||||||
-- lin seed_N = mkN "" ;
|
-- lin seed_N = mkN [] ;
|
||||||
-- lin seek_V2 = mkV2 "" ;
|
-- lin seek_V2 = mkV2 [] ;
|
||||||
-- lin sell_V3 = mkV3 "" ;
|
-- lin sell_V3 = mkV3 [] ;
|
||||||
-- lin send_V3 = mkV3 "" ;
|
-- lin send_V3 = mkV3 [] ;
|
||||||
-- lin sew_V = mkV "" ;
|
-- lin sew_V = mkV [] ;
|
||||||
-- lin sharp_A = mkA "" ;
|
-- lin sharp_A = mkA [] ;
|
||||||
lin sheep_N = mkN "lax" fem ;
|
lin sheep_N = mkN "lax" fem ;
|
||||||
-- lin ship_N = mkN "" ;
|
-- lin ship_N = mkN [] ;
|
||||||
-- lin shirt_N = mkN "" ;
|
-- lin shirt_N = mkN [] ;
|
||||||
-- lin shoe_N = mkN "" ;
|
-- lin shoe_N = mkN [] ;
|
||||||
-- lin shop_N = mkN "" ;
|
-- lin shop_N = mkN [] ;
|
||||||
-- lin short_A = mkA "" ;
|
-- lin short_A = mkA [] ;
|
||||||
-- lin silver_N = mkN "" ;
|
-- lin silver_N = mkN [] ;
|
||||||
-- lin sing_V = mkV "" ;
|
-- lin sing_V = mkV [] ;
|
||||||
-- lin sister_N = mkN "" ;
|
-- lin sister_N = mkN [] ;
|
||||||
-- lin sit_V = mkV "" ;
|
-- lin sit_V = mkV [] ;
|
||||||
-- lin skin_N = mkN "" ;
|
-- lin skin_N = mkN [] ;
|
||||||
-- lin sky_N = mkN "" ;
|
-- lin sky_N = mkN [] ;
|
||||||
-- lin sleep_V = mkV "" ;
|
-- lin sleep_V = mkV [] ;
|
||||||
lin small_A = mkA "yar" ;
|
lin small_A = mkA "yar" ;
|
||||||
-- lin smell_V = mkV "" ;
|
-- lin smell_V = mkV [] ;
|
||||||
-- lin smoke_N = mkN "" ;
|
-- lin smoke_N = mkN [] ;
|
||||||
-- lin smooth_A = mkA "" ;
|
-- lin smooth_A = mkA [] ;
|
||||||
-- lin snake_N = mkN "" ;
|
-- lin snake_N = mkN [] ;
|
||||||
-- lin snow_N = mkN "" ;
|
-- lin snow_N = mkN [] ;
|
||||||
-- lin sock_N = mkN "" ;
|
-- lin sock_N = mkN [] ;
|
||||||
-- lin song_N = mkN "" ;
|
-- lin song_N = mkN [] ;
|
||||||
lin speak_V2 = mkV2 "hadlo" ;
|
lin speak_V2 = mkV2 "hadlo" ;
|
||||||
-- lin spit_V = mkV "" ;
|
-- lin spit_V = mkV [] ;
|
||||||
-- lin split_V2 = mkV2 "" ;
|
-- lin split_V2 = mkV2 [] ;
|
||||||
-- lin squeeze_V2 = mkV2 "" ;
|
-- lin squeeze_V2 = mkV2 [] ;
|
||||||
-- lin stab_V2 = mkV2 "" ;
|
-- lin stab_V2 = mkV2 [] ;
|
||||||
-- lin stand_V = mkV "" ;
|
-- lin stand_V = mkV [] ;
|
||||||
-- lin star_N = mkN "" ;
|
-- lin star_N = mkN [] ;
|
||||||
-- lin steel_N = mkN "" ;
|
-- lin steel_N = mkN [] ;
|
||||||
-- lin stick_N = mkN "" ;
|
-- lin stick_N = mkN [] ;
|
||||||
-- lin stone_N = mkN "" ;
|
-- lin stone_N = mkN [] ;
|
||||||
-- lin stop_V = mkV "" ;
|
-- lin stop_V = mkV [] ;
|
||||||
-- lin stove_N = mkN "" ;
|
-- lin stove_N = mkN [] ;
|
||||||
-- lin straight_A = mkA "" ;
|
-- lin straight_A = mkA [] ;
|
||||||
-- lin student_N = mkN "" ;
|
-- lin student_N = mkN [] ;
|
||||||
-- lin stupid_A = mkA "" ;
|
-- lin stupid_A = mkA [] ;
|
||||||
-- lin suck_V2 = mkV2 "" ;
|
-- lin suck_V2 = mkV2 [] ;
|
||||||
-- lin sun_N = mkN "" ;
|
-- lin sun_N = mkN [] ;
|
||||||
-- lin swell_V = mkV "" ;
|
-- lin swell_V = mkV [] ;
|
||||||
-- lin swim_V = mkV "" ;
|
-- lin swim_V = mkV [] ;
|
||||||
|
|
||||||
----
|
----
|
||||||
-- T
|
-- T
|
||||||
|
|
||||||
|
|
||||||
-- lin table_N = mkN "" ;
|
-- lin table_N = mkN [] ;
|
||||||
-- lin tail_N = mkN "" ;
|
-- lin tail_N = mkN [] ;
|
||||||
-- lin talk_V3 = mkV3 "" ;
|
-- lin talk_V3 = mkV3 [] ;
|
||||||
lin teach_V2 = mkV2 "bar" ku ;
|
lin teach_V2 = mkV2 "bar" ku ;
|
||||||
lin teacher_N = mkN "macallin" ;
|
lin teacher_N = mkN "macallin" ;
|
||||||
-- lin television_N = mkN "" ;
|
-- lin television_N = mkN [] ;
|
||||||
-- lin thick_A = mkA "" ;
|
-- lin thick_A = mkA [] ;
|
||||||
-- lin thin_A = mkA "" ;
|
-- lin thin_A = mkA [] ;
|
||||||
-- lin think_V = mkV "" ;
|
-- lin think_V = mkV [] ;
|
||||||
-- lin throw_V2 = mkV2 "" ;
|
-- lin throw_V2 = mkV2 [] ;
|
||||||
-- lin tie_V2 = mkV2 "" ;
|
-- lin tie_V2 = mkV2 [] ;
|
||||||
-- lin today_Adv = mkA "" ;
|
-- lin today_Adv = mkA [] ;
|
||||||
-- lin tongue_N = mkN "" ;
|
-- lin tongue_N = mkN [] ;
|
||||||
-- lin tooth_N = mkN "" ;
|
-- lin tooth_N = mkN [] ;
|
||||||
-- lin train_N = mkN "" ;
|
-- lin train_N = mkN [] ;
|
||||||
-- lin travel_V = mkV "" ;
|
-- lin travel_V = mkV [] ;
|
||||||
-- lin tree_N = mkN "" ;
|
-- lin tree_N = mkN [] ;
|
||||||
-- lin turn_V = mkV "" ;
|
-- lin turn_V = mkV [] ;
|
||||||
|
|
||||||
--------
|
--------
|
||||||
-- U - V
|
-- U - V
|
||||||
|
|
||||||
-- lin ugly_A = mkA "" ;
|
-- lin ugly_A = mkA [] ;
|
||||||
-- lin uncertain_A = mkA "" ;
|
-- lin uncertain_A = mkA [] ;
|
||||||
-- lin understand_V2 = mkV2 "" ;
|
-- lin understand_V2 = mkV2 [] ;
|
||||||
-- lin university_N = mkN "" ;
|
-- lin university_N = mkN [] ;
|
||||||
-- lin village_N = mkN "" ;
|
-- lin village_N = mkN [] ;
|
||||||
-- lin vomit_V = mkV2 "" ;
|
-- lin vomit_V = mkV2 [] ;
|
||||||
|
|
||||||
--------
|
--------
|
||||||
-- W - Y
|
-- W - Y
|
||||||
|
|
||||||
lin wait_V2 = mkV2 "sug" ;
|
lin wait_V2 = mkV2 "sug" ;
|
||||||
-- lin walk_V = mkV "" ;
|
lin walk_V = mkV "soco" "socday" ;
|
||||||
-- lin war_N = mkN "" ;
|
-- lin war_N = mkN [] ;
|
||||||
-- lin warm_A = mkA "" ;
|
-- lin warm_A = mkA [] ;
|
||||||
-- lin wash_V2 = mkV2 "" ;
|
-- lin wash_V2 = mkV2 [] ;
|
||||||
-- lin watch_V2 = mkV2 "" ;
|
-- lin watch_V2 = mkV2 [] ;
|
||||||
lin water_N = mkNoun "biyo" "biyaha" "biyo" "biyaha" Masc ; -- ?? gender
|
lin water_N = mkNoun "biyo" "biyaha" "biyo" "biyaha" Masc ; -- ?? gender
|
||||||
-- lin wet_A = mkA "" ;
|
-- lin wet_A = mkA [] ;
|
||||||
lin white_A = mkA "cad" ;
|
lin white_A = mkA "cad" ;
|
||||||
-- lin wide_A = mkA "" ;
|
-- lin wide_A = mkA [] ;
|
||||||
-- lin wife_N = mkN "" ;
|
-- lin wife_N = mkN [] ;
|
||||||
-- lin win_V2 = mkV2 "" ;
|
-- lin win_V2 = mkV2 [] ;
|
||||||
-- lin wind_N = mkN "" ;
|
-- lin wind_N = mkN [] ;
|
||||||
-- lin window_N = mkN "" ;
|
-- lin window_N = mkN [] ;
|
||||||
-- lin wine_N = mkN "" ;
|
-- lin wine_N = mkN [] ;
|
||||||
-- lin wing_N = mkN "" ;
|
-- lin wing_N = mkN [] ;
|
||||||
-- lin wipe_V2 = mkV2 "" ;
|
-- lin wipe_V2 = mkV2 [] ;
|
||||||
lin woman_N = mkN "naag" fem ;
|
lin woman_N = mkN "naag" fem ;
|
||||||
-- lin wonder_VQ = mkVQ "" ;
|
-- lin wonder_VQ = mkVQ [] ;
|
||||||
-- lin wood_N = mkN "" ;
|
-- lin wood_N = mkN [] ;
|
||||||
-- lin worm_N = mkN "" ;
|
-- lin worm_N = mkN [] ;
|
||||||
-- lin write_V2 = mkV2 "" ;
|
-- lin write_V2 = mkV2 [] ;
|
||||||
-- lin year_N = mkN "" ;
|
-- lin year_N = mkN [] ;
|
||||||
-- lin yellow_A = mkA "" ;
|
-- lin yellow_A = mkA [] ;
|
||||||
-- lin young_A = mkA "" ;
|
-- lin young_A = mkA [] ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -214,20 +214,26 @@ oper
|
|||||||
|
|
||||||
mkV = overload {
|
mkV = overload {
|
||||||
mkV : (imp : Str) -> V = \v -> lin V (regV v) ;
|
mkV : (imp : Str) -> V = \v -> lin V (regV v) ;
|
||||||
mkV : (imp,pl2,sg1 : Str) -> V = \i,p,s -> lin V (mkVerb i p s) ;
|
mkV : (imp, sg1 : Str) -> V = \i,s1 -> lin V (reg2V i s1) ;
|
||||||
|
mkV : (imp,sg1,sg2,pl2 : Str) -> V = \i,s1,_,_ -> lin V (reg2V i s1) ; -- TODO: 4-place constructor
|
||||||
mkV : Str -> V -> V = \s,v -> lin V (prefixV s v)
|
mkV : Str -> V -> V = \s,v -> lin V (prefixV s v)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
copula = ResSom.copula ;
|
copula = ResSom.copula ;
|
||||||
|
|
||||||
regV : Str -> Verb = \s -> case s of {
|
regV : Str -> Verb = \s -> case s of {
|
||||||
_ + #c + #c + "o" => cJoogso s ;
|
_ + #c + #c + "o" => mkVerb (cJoogso s) ;
|
||||||
_ + "o" => cQaado s ; ----
|
_ + "o" => mkVerb (cQaado s) ; ----
|
||||||
_ + "i" => cKari s ;
|
_ + "i" => mkVerb (cKari s) ;
|
||||||
_ + "ee" => cYaree s ;
|
_ + "ee" => mkVerb (cYaree s) ;
|
||||||
_ => cSug s
|
_ => mkVerb (cSug s)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
reg2V : Str -> Str -> Verb = \arag,arkaa -> case arag of {
|
||||||
|
_ + #c => mkVerb (cArag arag arkaa) ;
|
||||||
|
_ => regV arag
|
||||||
|
} ;
|
||||||
|
|
||||||
mkV2 = overload {
|
mkV2 = overload {
|
||||||
mkV2 : Str -> V2 = \s -> lin V2 (regV s ** {c2 = noPrep}) ;
|
mkV2 : Str -> V2 = \s -> lin V2 (regV s ** {c2 = noPrep}) ;
|
||||||
mkV2 : Str -> Adposition -> V2 = \s,p -> lin V2 (regV s ** {c2 = p}) ;
|
mkV2 : Str -> Adposition -> V2 = \s,p -> lin V2 (regV s ** {c2 = p}) ;
|
||||||
|
|||||||
@@ -505,99 +505,72 @@ oper
|
|||||||
-- Saeed page 79:
|
-- Saeed page 79:
|
||||||
-- "… the reference form is the imperative singular form
|
-- "… the reference form is the imperative singular form
|
||||||
-- since it corresponds to the form of the basic root."
|
-- since it corresponds to the form of the basic root."
|
||||||
mkVerb : (imperative,sg1,pl2 : Str) -> Verb = \qaado,qaat,ark ->
|
|
||||||
let stems : {p1 : Str ; p2 : Str} = case ark of {
|
|
||||||
a + r@#c + k@#c -- two consonants need a vowel in between
|
|
||||||
=> <ark + "i", a + r + a + voiced k> ;
|
|
||||||
_ + #c -- if the pl2 root ends in consonant, infinitive needs a vowel
|
|
||||||
=> <ark + "i", ark> ;
|
|
||||||
yar + "ee" -- double e turns into ey
|
|
||||||
=> <ark + "n", yar + "ey"> ;
|
|
||||||
_ => <ark + "n", ark> -- no changes, just add n for infinitive
|
|
||||||
} ;
|
|
||||||
arki = stems.p1 ;
|
|
||||||
arag = stems.p2 ;
|
|
||||||
arkin = case last arki of { -- The negative past tense ends in n:
|
|
||||||
"n" => arki ; -- if infinitive ends in n, no change;
|
|
||||||
_ => arki + "n" } ; -- otherwise add n.
|
|
||||||
|
|
||||||
|
VerbRoots8 : Type = {imper,sg1stem,sg2stem,pl1stem,progr,inf,negpast,impernegpl : Str} ;
|
||||||
|
|
||||||
progr : Str = case qaat of { -- Progressive
|
mkVerb : VerbRoots8 -> Verb = \vr ->
|
||||||
_ + "eey" => stems.p2 + "nay" ; -- bireey -> bireynay
|
let arag : Str = vr.imper ;
|
||||||
_ + ("y"|"n") => init qaat + "nay" ; -- akhriy -> akhrinay ; gashad -> gashanay
|
qaat : Str = vr.sg1stem ; -- +aa -- hayst, boogd, joogsad, bilaab, ark, akhriy,
|
||||||
_ + #v + "t" => qaat + "ay" ;
|
hadash : Str = vr.sg2stem ; -- +aa -- haysat, booqat, joogsat, bilowd, aragt, akhris,
|
||||||
_ + #c + "t" => init qaat + "anay" ;
|
qaadann : Str = vr.pl1stem ; -- +aa --
|
||||||
_ => qaat + "ay" } ;
|
arki : Str = vr.inf ;
|
||||||
|
arkin : Str = vr.negpast ;
|
||||||
-- Some predictable sound changes
|
qaada : Str = init vr.negpast ; -- TODO: is this correct? is 2sg neg imperative same as negative past root?
|
||||||
t : Str = case arag of { -- kari+seen, bixi noq+deen, (sug|joogsa|qaada)+teen,
|
ay : Str = case arag of {
|
||||||
_ + ("i"|"y") => "s" ; -- t changes into s in front of i/y
|
_ + ("i"|"e") => "ey" ;
|
||||||
_ + ("x"|"q"|"c") => "d" ; -- t changes into d in front of x/q/c
|
_ => "ay" } ;
|
||||||
_ => "t" } ;
|
in {
|
||||||
ay : Str = case ark of {
|
s = table {
|
||||||
_ + ("i"|"e") => "ey" ;
|
|
||||||
_ => "ay" } ;
|
|
||||||
n : Str = case arag of {
|
|
||||||
_ + #v => "nn" ; -- n duplicates after vowel
|
|
||||||
_ + "r" => "r" ; -- Saeed p. 35: agreement marker n (1PL)
|
|
||||||
_ + "l" => "l" ; -- assimilates to stem final r or.
|
|
||||||
_ => "n" } ;
|
|
||||||
an : Str = case qaado of {
|
|
||||||
_ + "o" => "an" ; -- Allomorph for imperatives
|
|
||||||
_ => "in" } ;
|
|
||||||
|
|
||||||
in { s = table {
|
|
||||||
VPres Simple Sg1_Sg3Masc pol
|
VPres Simple Sg1_Sg3Masc pol
|
||||||
=> qaat + if_then_Pol pol "aa" "o" ;
|
=> qaat + if_then_Pol pol "aa" "o" ;
|
||||||
VPres Simple Sg2_Sg3Fem pol
|
VPres Simple Sg2_Sg3Fem pol
|
||||||
=> arag + t + if_then_Pol pol "aa" "o" ;
|
=> hadash + if_then_Pol pol "aa" "o" ;
|
||||||
VPres Simple Pl1_ pol => arag + n + if_then_Pol pol "aa" "o" ;
|
VPres Simple Pl1_ pol => qaadann + if_then_Pol pol "aa" "o" ;
|
||||||
VPres Simple Pl2_ pol => arag + t + "aan" ;
|
VPres Simple Pl2_ pol => hadash + "aan" ;
|
||||||
VPres Simple Pl3_ pol => qaat + "aan" ;
|
VPres Simple Pl3_ pol => qaat + "aan" ;
|
||||||
|
|
||||||
VPres Progressive Sg1_Sg3Masc pol
|
VPres Progressive Sg1_Sg3Masc pol
|
||||||
=> progr + if_then_Pol pol "aa" "o" ;
|
=> vr.progr + if_then_Pol pol "aa" "o" ;
|
||||||
VPres Progressive Sg2_Sg3Fem pol
|
VPres Progressive Sg2_Sg3Fem pol
|
||||||
=> progr + if_then_Pol pol "saa" "so" ;
|
=> vr.progr + if_then_Pol pol "saa" "so" ;
|
||||||
VPres Progressive Pl1_ pol
|
VPres Progressive Pl1_ pol
|
||||||
=> progr + if_then_Pol pol "naa" "no" ;
|
=> vr.progr + if_then_Pol pol "naa" "no" ;
|
||||||
VPres Progressive Pl2_ pol => progr + "saan" ;
|
VPres Progressive Pl2_ pol => vr.progr + "saan" ;
|
||||||
VPres Progressive Pl3_ pol => progr + "aan" ;
|
VPres Progressive Pl3_ pol => vr.progr + "aan" ;
|
||||||
|
|
||||||
VPast Simple Sg1_Sg3Masc
|
VPast Simple Sg1_Sg3Masc
|
||||||
=> qaat + ay ;
|
=> qaat + ay ;
|
||||||
VPast Simple Sg2_Sg3Fem => arag + t + ay ; -- t, d or s
|
VPast Simple Sg2_Sg3Fem => hadash + ay ;
|
||||||
VPast Simple Pl1_ => arag + n + ay ;
|
VPast Simple Pl1_ => qaadann + ay ;
|
||||||
VPast Simple Pl2_ => arag + t + "een" ; -- t, d or s
|
VPast Simple Pl2_ => hadash + "een" ;
|
||||||
VPast Simple Pl3_ => qaat + "een" ;
|
VPast Simple Pl3_ => qaat + "een" ;
|
||||||
|
|
||||||
VPast Progressive Sg1_Sg3Masc
|
VPast Progressive Sg1_Sg3Masc => vr.progr + "ey" ;
|
||||||
=> progr + "ey" ;
|
VPast Progressive Sg2_Sg3Fem => vr.progr + "sey" ;
|
||||||
VPast Progressive Sg2_Sg3Fem => progr + "sey" ;
|
VPast Progressive Pl1_ => vr.progr + "ney" ;
|
||||||
VPast Progressive Pl1_ => progr + "ney" ;
|
VPast Progressive Pl2_ => vr.progr + "seen" ;
|
||||||
VPast Progressive Pl2_ => progr + "seen" ;
|
VPast Progressive Pl3_ => vr.progr + "een" ;
|
||||||
VPast Progressive Pl3_ => progr + "een" ;
|
|
||||||
|
|
||||||
VNegPast Simple => arkin ;
|
VNegPast Simple => arkin ;
|
||||||
VNegPast Progressive => progr + "n" ;
|
VNegPast Progressive => vr.progr + "n" ;
|
||||||
|
|
||||||
-- TODO check conjugations 2 and 3
|
-- TODO check conjugations 2 and 3
|
||||||
VNegCond PlInv => arag + n + "een" ;
|
VNegCond SgMasc => qaat + "een" ; -- for most verbs same as VPast Simple Pl3_
|
||||||
VNegCond SgMasc => qaat + "een" ; -- for most verbs same as VPast Simple Pl3_
|
VNegCond SgFem => hadash + "een" ; -- for most verbs same as VPast Simple Pl2_
|
||||||
VNegCond SgFem => arag + t + "een" ; -- for most verbs same as VPast Simple Pl2_
|
VNegCond PlInv => qaadann + "een" ; --
|
||||||
|
|
||||||
VImp Sg Pos => arag ;
|
VImp Sg Pos => arag ;
|
||||||
VImp Pl Pos => qaat + "a" ;
|
VImp Pl Pos => qaat + "a" ;
|
||||||
VImp Sg Neg => arag + an ;
|
VImp Sg Neg => qaada + "n" ;
|
||||||
VImp Pl Neg => qaat + "ina" ;
|
VImp Pl Neg => vr.impernegpl ;
|
||||||
|
|
||||||
VInf => arki ;
|
VInf => arki ;
|
||||||
VRel SgMasc => qaat + "a" ;
|
VRel SgMasc => qaat + "a" ;
|
||||||
VRel SgFem => arag + t + "a" ;
|
VRel SgFem => hadash + "a" ;
|
||||||
VRel PlInv => arag + "na" ;
|
VRel PlInv => qaadann + "a" ;
|
||||||
VRelNeg => qaat + "o" -- TODO check
|
VRelNeg => qaat + "o" -- TODO check
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
sii, dhex = [] ;
|
sii, dhex = [] ;
|
||||||
isCopula = False ;
|
isCopula = False ;
|
||||||
} ;
|
} ;
|
||||||
@@ -605,33 +578,101 @@ oper
|
|||||||
-------------------------
|
-------------------------
|
||||||
-- Regular verb paradigms
|
-- Regular verb paradigms
|
||||||
|
|
||||||
cSug, cKari, cYaree, cJoogso, cQaado : Str -> Verb ;
|
cSug, cBilaab, cKari, cYaree, cHayso, cJoogso, cQaado : Str -> VerbRoots8 ;
|
||||||
|
cArag : (arag,arkaa : Str) -> VerbRoots8 ;
|
||||||
|
|
||||||
-- 1: Root verbs with no lexical affixes, e.g. sug TR 'wait for', kar INTR 'boil, cook';
|
-- 1: Root verbs with no lexical affixes, e.g. sug TR 'wait for', kar INTR 'boil, cook';
|
||||||
|
-- NB. imperative unable to distinguish whether stem consonant is K or G: sug~sugaa vs. bug~bukaa
|
||||||
cSug sug =
|
cSug sug =
|
||||||
let cabb : Str = case sug of {
|
let cabb : Str = case sug of {
|
||||||
_ + "b" => sug + "b" ; -- TODO: more duplication patterns
|
ca + "b" => ca + "bb" ; -- TODO: more duplication patterns
|
||||||
_ => sug }
|
_ => sug } ;
|
||||||
in mkVerb sug cabb sug ;
|
in cArag sug (cabb+"aa") ;
|
||||||
|
|
||||||
|
-- Imperative only cannot distinguish whether the vowel is epenthetic, and whether stem consonant is G/K or N/M
|
||||||
|
cArag arag arkaa = -- analogously: bug~bukaa, tartan~tartamaa
|
||||||
|
let ark : Str = init (init arkaa) ;
|
||||||
|
n : Str = case arag of {
|
||||||
|
_ + #v => "nn" ; -- n duplicates after vowel
|
||||||
|
_ + "r" => "r" ; -- Saeed p. 35: agreement marker n (1PL)
|
||||||
|
_ + "l" => "l" ; -- assimilates to stem final r or.
|
||||||
|
_ => "n" } ;
|
||||||
|
t : Str = case arag of { -- kari+saa, noq+daa, (sug|joogsa|qaada)+taa, hadh+aa
|
||||||
|
_ + ("x"|"q"|"c") => "d" ; -- t changes into d after x/q/c
|
||||||
|
_ + "dh" => [] ; -- duplicates after dh, but not written
|
||||||
|
_ => "t" } ;
|
||||||
|
hadash : Str = case arag of {
|
||||||
|
hada + "l" => hada + "sh" ;
|
||||||
|
_ => arag + t
|
||||||
|
} ;
|
||||||
|
|
||||||
|
in { imper = arag ;
|
||||||
|
sg1stem = ark ;
|
||||||
|
sg2stem = hadash ;
|
||||||
|
pl1stem = arag + n ;
|
||||||
|
inf = ark + "i" ;
|
||||||
|
progr = ark + "ay" ;
|
||||||
|
negpast = ark + "in" ;
|
||||||
|
impernegpl = ark + "ina" } ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Predictable stem alterations: aab->ow
|
||||||
|
cBilaab bilaab =
|
||||||
|
let bilow : Str = init (init (init bilaab)) + "ow" ;
|
||||||
|
in cArag bilaab (bilaab + "aa") ** {
|
||||||
|
sg2stem = bilow + "d" ;
|
||||||
|
pl1stem = bilow + "n" } ;
|
||||||
|
|
||||||
|
|
||||||
-- 2A: Verbs derived from root verbs by the causative affix -i/-is, e.g. kari TR 'cook' (from conjugation 1 kar INTR 'boil, cook');
|
-- 2A: Verbs derived from root verbs by the causative affix -i/-is, e.g. kari TR 'cook' (from conjugation 1 kar INTR 'boil, cook');
|
||||||
-- 2B: Verbs derived from nouns and adjectives by the causative/factitive affix -eel-ayn, e.g. yaree 'make small' (from yar ADJ 'small');
|
-- 2B: Verbs derived from nouns and adjectives by the causative/factitive affix -eel-ayn, e.g. yaree 'make small' (from yar ADJ 'small');
|
||||||
cKari, cYaree = \kari -> mkVerb kari (kari+"y") kari ;
|
cKari kari = { imper = kari ;
|
||||||
|
sg1stem = kari + "y" ;
|
||||||
|
sg2stem = kari + "s" ;
|
||||||
|
pl1stem = kari + "nn" ;
|
||||||
|
inf, negpast = kari + "n" ;
|
||||||
|
progr = kari + "nay" ;
|
||||||
|
impernegpl = kari + "nina" } ;
|
||||||
|
|
||||||
|
cYaree yaree =
|
||||||
|
let yar : Str = init (init yaree) ;
|
||||||
|
yarey : Str = case yaree of {
|
||||||
|
yar + "ee" => yar + "ey" ;
|
||||||
|
_ => yaree + "n" -- ideally shouldn't happen; this constructor should only be applied to imperatives that end in ee
|
||||||
|
} ;
|
||||||
|
in { imper = yaree ;
|
||||||
|
sg1stem = yaree + "y" ;
|
||||||
|
sg2stem = yarey + "s" ;
|
||||||
|
pl1stem = yarey + "n" ;
|
||||||
|
inf, negpast = yarey + "n" ;
|
||||||
|
progr = yarey + "nay" ;
|
||||||
|
impernegpl = yar + "aynina" } ;
|
||||||
|
|
||||||
|
|
||||||
-- 3A: Verbs derived from verbal stems by the middle voice affix -ol/at
|
-- 3A: Verbs derived from verbal stems by the middle voice affix -ol/at
|
||||||
-- e.g. karsó 'cook for oneself (from conjugation 2 kâri TR 'cook');
|
-- e.g. karsó 'cook for oneself (from conjugation 2 kâri TR 'cook');
|
||||||
cJoogso joogso =
|
cJoogso joogso =
|
||||||
let joogsa = init joogso + "a" ;
|
let joogsa = init joogso + "a" ;
|
||||||
in mkVerb joogso (joogsa + "d") joogsa ;
|
in { imper = joogso ;
|
||||||
|
sg1stem = joogsa + "d" ;
|
||||||
|
sg2stem = joogsa + "t" ;
|
||||||
|
pl1stem = joogsa + "nn" ;
|
||||||
|
inf, negpast = joogsa + "n" ;
|
||||||
|
progr = joogsa + "nay" ;
|
||||||
|
impernegpl = joogsa + "nina" } ;
|
||||||
|
|
||||||
|
cHayso hayso = -- otherwise like joogso, but sg1 is different
|
||||||
|
let hays : Str = init hayso ;
|
||||||
|
in cJoogso hayso ** {sg1stem = hays + "t"} ;
|
||||||
|
|
||||||
|
|
||||||
-- 3B: As conjugation 3A but verbs whose syllable structure triggers
|
-- 3B: As conjugation 3A but verbs whose syllable structure triggers
|
||||||
-- stem contraction and subsequent sandhi rules, e.g. qaadó 'take for oneself
|
-- stem contraction and subsequent sandhi rules, e.g. qaadó 'take for oneself
|
||||||
-- (from conjugation 1 qàad TR 'take').
|
-- (from conjugation 1 qàad TR 'take').
|
||||||
cQaado qaado =
|
cQaado qaado =
|
||||||
let qaa = init (init qaado)
|
let qaa = init (init qaado)
|
||||||
in mkVerb qaado -- Imperative sg, with the vowel
|
in cJoogso qaado ** { sg1stem = qaa + "t" } ;
|
||||||
(qaa + "t") -- Per1 Sg, Per3 Pl and Per3 Sg Masc
|
|
||||||
(qaa + "da") ; -- Per2 Pl and others
|
|
||||||
|
|
||||||
-- Constructs verbs like u baahan+ahay
|
-- Constructs verbs like u baahan+ahay
|
||||||
prefixV : Str -> Verb -> Verb = \s,v -> v ** {
|
prefixV : Str -> Verb -> Verb = \s,v -> v ** {
|
||||||
@@ -676,7 +717,7 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
have_V : Verb =
|
have_V : Verb =
|
||||||
let hold_V = mkVerb "hayso" "haysat" "haysa" in hold_V ** {
|
let hold_V = mkVerb (cHayso "hayso") in hold_V ** {
|
||||||
s = table {
|
s = table {
|
||||||
VPres _ Sg1_Sg3Masc Pos => "leeyahay" ;
|
VPres _ Sg1_Sg3Masc Pos => "leeyahay" ;
|
||||||
VPres _ Sg2_Sg3Fem Pos => "leedahay" ;
|
VPres _ Sg2_Sg3Fem Pos => "leedahay" ;
|
||||||
@@ -700,7 +741,7 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
fail_V : Verb =
|
fail_V : Verb =
|
||||||
let waa_V : Verb = cSug "waay" in waa_V ** {
|
let waa_V : Verb = mkVerb (cSug "waay") in waa_V ** {
|
||||||
s = table {
|
s = table {
|
||||||
VPres _ Sg2_Sg3Fem _
|
VPres _ Sg2_Sg3Fem _
|
||||||
=> "waayday" ;
|
=> "waayday" ;
|
||||||
@@ -1037,9 +1078,9 @@ oper
|
|||||||
<Pres,Simul> => presV vp ;
|
<Pres,Simul> => presV vp ;
|
||||||
<Past,Simul> => pastV vp ;
|
<Past,Simul> => pastV vp ;
|
||||||
<Pres,Anter> => vp.s ! VInf ++ presCopula ! agrPol ; ---- just guessing
|
<Pres,Anter> => vp.s ! VInf ++ presCopula ! agrPol ; ---- just guessing
|
||||||
<Past,Anter> => vp.s ! VInf ++ pastV (cSug "jir") ;
|
<Past,Anter> => vp.s ! VInf ++ pastV (mkVerb (cSug "jir")) ;
|
||||||
<Fut,Simul> => vp.s ! VInf ++ presV (cSug "doon") ;
|
<Fut,Simul> => vp.s ! VInf ++ presV (mkVerb (cSug "doon")) ;
|
||||||
<Fut,Anter> => vp.s ! VInf ++ pastV (cSug "doon")
|
<Fut,Anter> => vp.s ! VInf ++ pastV (mkVerb (cSug "doon"))
|
||||||
}
|
}
|
||||||
where {
|
where {
|
||||||
agrPol : {agr:Agreement ; pol:Polarity} = {agr=agr; pol=p} ;
|
agrPol : {agr:Agreement ; pol:Polarity} = {agr=agr; pol=p} ;
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ lin have_V2 = mkV2 have_V noPrep ; -- TODO: check if {sii = "l" ++ BIND ; isCopu
|
|||||||
lin can8know_VV = can_VV ; -- can (capacity)
|
lin can8know_VV = can_VV ; -- can (capacity)
|
||||||
lin can_VV = mkVV "kar" ; -- can (possibility)
|
lin can_VV = mkVV "kar" ; -- can (possibility)
|
||||||
lin must_VV = mkVV waa_in ;
|
lin must_VV = mkVV waa_in ;
|
||||||
lin want_VV = mkVV (mkV "rabid" "rab" "rab") subjunctive ;
|
lin want_VV = mkVV (mkV "rab" "rabaa") subjunctive ;
|
||||||
|
|
||||||
|
|
||||||
------
|
------
|
||||||
|
|||||||
Reference in New Issue
Block a user