mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-16 00:09:31 -06:00
determiners and more words in latin
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
--concrete AdverbLat of Adverb = CatLat ** open ResLat, Prelude in {
|
||||
--
|
||||
-- lin
|
||||
concrete AdverbLat of Adverb = CatLat ** open ResLat, Prelude in {
|
||||
|
||||
lin
|
||||
-- PositAdvAdj a = {s = a.s ! AAdv} ;
|
||||
-- ComparAdvAdj cadv a np = {
|
||||
-- s = cadv.s ++ a.s ! AAdv ++ "than" ++ np.s ! Nom
|
||||
@@ -8,9 +8,9 @@
|
||||
-- ComparAdvAdjS cadv a s = {
|
||||
-- s = cadv.s ++ a.s ! AAdv ++ "than" ++ s.s
|
||||
-- } ;
|
||||
--
|
||||
-- PrepNP prep np = {s = prep.s ++ np.s ! Acc} ;
|
||||
--
|
||||
|
||||
PrepNP prep np = {s = appPrep prep np.s} ;
|
||||
|
||||
-- AdAdv = cc2 ;
|
||||
--
|
||||
-- SubjS = cc2 ;
|
||||
|
||||
@@ -63,11 +63,9 @@ concrete CatLat of Cat = CommonX ** open ResLat, Prelude in {
|
||||
--
|
||||
---- Structural
|
||||
--
|
||||
-- Conj = {s1,s2 : Str ; n : Number} ;
|
||||
-----b Conj = {s : Str ; n : Number} ;
|
||||
-----b DConj = {s1,s2 : Str ; n : Number} ;
|
||||
Conj = {s1,s2 : Str ; n : Number} ;
|
||||
-- Subj = {s : Str} ;
|
||||
-- Prep = {s : Str} ;
|
||||
Prep = {s : Str ; c : Case} ;
|
||||
--
|
||||
---- Open lexical classes, e.g. Lexicon
|
||||
|
||||
@@ -85,6 +83,6 @@ concrete CatLat of Cat = CommonX ** open ResLat, Prelude in {
|
||||
N = Noun ;
|
||||
-- N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Str} ;
|
||||
-- N3 = {s : Number => Case => Str ; g : Gender} ** {c2,c3 : Str} ;
|
||||
-- PN = {s : Case => Str ; g : Gender} ;
|
||||
PN = {s : Case => Str ; g : Gender} ;
|
||||
--
|
||||
}
|
||||
|
||||
@@ -9,105 +9,105 @@ flags
|
||||
optimize=values ;
|
||||
|
||||
lin
|
||||
-- airplane_N = regN "airplane" ;
|
||||
-- airplane_N = mkN "airplane" ;
|
||||
-- answer_V2S = mkV2S (regV "answer") toP ;
|
||||
-- apartment_N = regN "apartment" ;
|
||||
-- apple_N = regN "apple" ;
|
||||
-- art_N = regN "art" ;
|
||||
-- apartment_N = mkN "apartment" ;
|
||||
-- apple_N = mkN "apple" ;
|
||||
art_N = mkN "ars" ;
|
||||
-- ask_V2Q = mkV2Q (regV "ask") noPrep ;
|
||||
-- baby_N = regN "baby" ;
|
||||
-- bad_A = mkADeg "bad" "worse" "worst" "badly" ;
|
||||
-- bank_N = regN "bank" ;
|
||||
-- beautiful_A = compoundADeg (regA "beautiful") ;
|
||||
baby_N = mkN "infans" ;
|
||||
bad_A = mkA "malus" ;
|
||||
-- bank_N = mkN "bank" ;
|
||||
beautiful_A = mkA "pulcher" ;
|
||||
-- become_VA = mkVA (irregV "become" "became" "become") ;
|
||||
-- beer_N = regN "beer" ;
|
||||
beer_N = mkN "cerevisia" ;
|
||||
-- beg_V2V = mkV2V (regDuplV "beg") noPrep toP ;
|
||||
-- big_A = duplADeg "big" ;
|
||||
-- bike_N = regN "bike" ;
|
||||
-- bird_N = regN "bird" ;
|
||||
-- black_A = regADeg "black" ;
|
||||
big_A = mkA "magnus" ;
|
||||
-- bike_N = mkN "bike" ;
|
||||
bird_N = mkN "avis" "avis" masculine ;
|
||||
black_A = mkA "niger" ;
|
||||
-- blue_A = regADeg "blue" ;
|
||||
-- boat_N = regN "boat" ;
|
||||
-- book_N = regN "book" ;
|
||||
-- boot_N = regN "boot" ;
|
||||
-- boss_N = mkN human (regN "boss") ;
|
||||
-- boy_N = mkN masculine (regN "boy") ;
|
||||
-- bread_N = regN "bread" ;
|
||||
-- break_V2 = dirV2 (irregV "break" "broke" "broken") ;
|
||||
-- boat_N = mkN "boat" ;
|
||||
book_N = mkN "liber" ;
|
||||
-- boot_N = mkN "boot" ;
|
||||
-- boss_N = mkN human (mkN "boss") ;
|
||||
boy_N = mkN "liber" ;
|
||||
bread_N = mkN "panis" "panis" masculine ;
|
||||
break_V2 = mkV2 (mkV "rumpo" "rupi" "ruptum" "rumpere") ;
|
||||
-- broad_A = regADeg "broad" ;
|
||||
-- brother_N2 = mkN2 (mkN masculine (mkN "brother")) (mkPrep "of") ;
|
||||
-- brown_A = regADeg "brown" ;
|
||||
-- butter_N = regN "butter" ;
|
||||
-- butter_N = mkN "butter" ;
|
||||
-- buy_V2 = dirV2 (irregV "buy" "bought" "bought") ;
|
||||
-- camera_N = regN "camera" ;
|
||||
-- cap_N = regN "cap" ;
|
||||
-- car_N = regN "car" ;
|
||||
-- carpet_N = regN "carpet" ;
|
||||
-- cat_N = regN "cat" ;
|
||||
-- ceiling_N = regN "ceiling" ;
|
||||
-- chair_N = regN "chair" ;
|
||||
-- cheese_N = regN "cheese" ;
|
||||
-- camera_N = mkN "camera" ;
|
||||
-- cap_N = mkN "cap" ;
|
||||
-- car_N = mkN "car" ;
|
||||
-- carpet_N = mkN "carpet" ;
|
||||
cat_N = mkN "felis" ;
|
||||
-- ceiling_N = mkN "ceiling" ;
|
||||
-- chair_N = mkN "chair" ;
|
||||
-- cheese_N = mkN "cheese" ;
|
||||
-- child_N = mk2N "child" "children" ;
|
||||
-- church_N = regN "church" ;
|
||||
-- city_N = regN "city" ;
|
||||
-- church_N = mkN "church" ;
|
||||
city_N = mkN "urbs" "urbis" feminine ;
|
||||
-- clean_A = regADeg "clean" ;
|
||||
-- clever_A = regADeg "clever" ;
|
||||
-- close_V2 = dirV2 (regV "close") ;
|
||||
-- coat_N = regN "coat" ;
|
||||
-- coat_N = mkN "coat" ;
|
||||
-- cold_A = regADeg "cold" ;
|
||||
-- come_V = (irregV "come" "came" "come") ;
|
||||
-- computer_N = regN "computer" ;
|
||||
-- country_N = regN "country" ;
|
||||
-- cousin_N = mkN human (regN "cousin") ;
|
||||
-- cow_N = regN "cow" ;
|
||||
-- computer_N = mkN "computer" ;
|
||||
-- country_N = mkN "country" ;
|
||||
-- cousin_N = mkN human (mkN "cousin") ;
|
||||
-- cow_N = mkN "cow" ;
|
||||
-- die_V = (regV "die") ;
|
||||
-- dirty_A = regADeg "dirty" ;
|
||||
-- distance_N3 = mkN3 (regN "distance") fromP toP ;
|
||||
-- doctor_N = mkN human (regN "doctor") ;
|
||||
-- dog_N = regN "dog" ;
|
||||
-- door_N = regN "door" ;
|
||||
-- distance_N3 = mkN3 (mkN "distance") fromP toP ;
|
||||
-- doctor_N = mkN human (mkN "doctor") ;
|
||||
-- dog_N = mkN "dog" ;
|
||||
-- door_N = mkN "door" ;
|
||||
-- drink_V2 = dirV2 (irregV "drink" "drank" "drunk") ;
|
||||
-- easy_A2V = mkA2V (regA "easy") forP ;
|
||||
-- eat_V2 = dirV2 (irregV "eat" "ate" "eaten") ;
|
||||
-- empty_A = regADeg "empty" ;
|
||||
-- enemy_N = regN "enemy" ;
|
||||
-- factory_N = regN "factory" ;
|
||||
-- enemy_N = mkN "enemy" ;
|
||||
-- factory_N = mkN "factory" ;
|
||||
-- father_N2 = mkN2 (mkN masculine (mkN "father")) (mkPrep "of") ;
|
||||
-- fear_VS = mkVS (regV "fear") ;
|
||||
-- find_V2 = dirV2 (irregV "find" "found" "found") ;
|
||||
-- fish_N = mk2N "fish" "fish" ;
|
||||
-- floor_N = regN "floor" ;
|
||||
-- floor_N = mkN "floor" ;
|
||||
-- forget_V2 = dirV2 (irregDuplV "forget" "forgot" "forgotten") ;
|
||||
-- fridge_N = regN "fridge" ;
|
||||
-- friend_N = mkN human (regN "friend") ;
|
||||
-- fruit_N = regN "fruit" ;
|
||||
-- fridge_N = mkN "fridge" ;
|
||||
-- friend_N = mkN human (mkN "friend") ;
|
||||
-- fruit_N = mkN "fruit" ;
|
||||
-- fun_AV = mkAV (regA "fun") ;
|
||||
-- garden_N = regN "garden" ;
|
||||
-- girl_N = mkN feminine (regN "girl") ;
|
||||
-- glove_N = regN "glove" ;
|
||||
-- garden_N = mkN "garden" ;
|
||||
-- girl_N = mkN feminine (mkN "girl") ;
|
||||
-- glove_N = mkN "glove" ;
|
||||
gold_N = mkN "aurum" ;
|
||||
good_A = mkA "bonus" ;
|
||||
-- go_V = mk5V "go" "goes" "went" "gone" "going" ;
|
||||
-- green_A = regADeg "green" ;
|
||||
-- harbour_N = regN "harbour" ;
|
||||
-- harbour_N = mkN "harbour" ;
|
||||
-- hate_V2 = dirV2 (regV "hate") ;
|
||||
-- hat_N = regN "hat" ;
|
||||
-- hat_N = mkN "hat" ;
|
||||
-- have_V2 = dirV2 (mk5V "have" "has" "had" "had" "having") ;
|
||||
-- hear_V2 = dirV2 (irregV "hear" "heard" "heard") ;
|
||||
-- hill_N = regN "hill" ;
|
||||
-- hill_N = mkN "hill" ;
|
||||
-- hope_VS = mkVS (regV "hope") ;
|
||||
-- horse_N = regN "horse" ;
|
||||
-- horse_N = mkN "horse" ;
|
||||
-- hot_A = duplADeg "hot" ;
|
||||
-- house_N = regN "house" ;
|
||||
-- house_N = mkN "house" ;
|
||||
-- important_A = compoundADeg (regA "important") ;
|
||||
-- industry_N = regN "industry" ;
|
||||
-- iron_N = regN "iron" ;
|
||||
-- king_N = mkN masculine (regN "king") ;
|
||||
-- industry_N = mkN "industry" ;
|
||||
-- iron_N = mkN "iron" ;
|
||||
-- king_N = mkN masculine (mkN "king") ;
|
||||
-- know_V2 = dirV2 (irregV "know" "knew" "known") ;
|
||||
-- lake_N = regN "lake" ;
|
||||
-- lamp_N = regN "lamp" ;
|
||||
-- lake_N = mkN "lake" ;
|
||||
-- lamp_N = mkN "lamp" ;
|
||||
-- learn_V2 = dirV2 (regV "learn") ;
|
||||
-- leather_N = regN "leather" ;
|
||||
-- leather_N = mkN "leather" ;
|
||||
-- leave_V2 = dirV2 (irregV "leave" "left" "left") ;
|
||||
-- like_V2 = dirV2 (regV "like") ;
|
||||
-- listen_V2 = prepV2 (regV "listen") toP ;
|
||||
@@ -118,99 +118,99 @@ lin
|
||||
love_V2 = mkV2 "amare" ;
|
||||
-- man_N = mkN masculine (mk2N "man" "men") ;
|
||||
-- married_A2 = mkA2 (regA "married") toP ;
|
||||
-- meat_N = regN "meat" ;
|
||||
-- milk_N = regN "milk" ;
|
||||
-- moon_N = regN "moon" ;
|
||||
-- meat_N = mkN "meat" ;
|
||||
-- milk_N = mkN "milk" ;
|
||||
-- moon_N = mkN "moon" ;
|
||||
-- mother_N2 = mkN2 (mkN feminine (mkN "mother")) (mkPrep "of") ;
|
||||
-- mountain_N = regN "mountain" ;
|
||||
-- music_N = regN "music" ;
|
||||
-- mountain_N = mkN "mountain" ;
|
||||
-- music_N = mkN "music" ;
|
||||
-- narrow_A = regADeg "narrow" ;
|
||||
-- new_A = regADeg "new" ;
|
||||
-- newspaper_N = regN "newspaper" ;
|
||||
-- oil_N = regN "oil" ;
|
||||
-- newspaper_N = mkN "newspaper" ;
|
||||
-- oil_N = mkN "oil" ;
|
||||
-- old_A = regADeg "old" ;
|
||||
-- open_V2 = dirV2 (regV "open") ;
|
||||
-- paint_V2A = mkV2A (regV "paint") noPrep ;
|
||||
-- paper_N = regN "paper" ;
|
||||
-- paper_N = mkN "paper" ;
|
||||
-- paris_PN = mkPN (mkN nonhuman (mkN "Paris")) ;
|
||||
-- peace_N = regN "peace" ;
|
||||
-- pen_N = regN "pen" ;
|
||||
-- planet_N = regN "planet" ;
|
||||
-- plastic_N = regN "plastic" ;
|
||||
-- peace_N = mkN "peace" ;
|
||||
-- pen_N = mkN "pen" ;
|
||||
-- planet_N = mkN "planet" ;
|
||||
-- plastic_N = mkN "plastic" ;
|
||||
-- play_V2 = dirV2 (regV "play") ;
|
||||
-- policeman_N = mkN masculine (mkN "policeman" "policemen") ;
|
||||
-- priest_N = mkN human (regN "priest") ;
|
||||
-- priest_N = mkN human (mkN "priest") ;
|
||||
-- probable_AS = mkAS (regA "probable") ;
|
||||
-- queen_N = mkN feminine (regN "queen") ;
|
||||
-- radio_N = regN "radio" ;
|
||||
-- queen_N = mkN feminine (mkN "queen") ;
|
||||
-- radio_N = mkN "radio" ;
|
||||
-- rain_V0 = mkV0 (regV "rain") ;
|
||||
-- read_V2 = dirV2 (irregV "read" "read" "read") ;
|
||||
-- red_A = duplADeg "red" ;
|
||||
-- religion_N = regN "religion" ;
|
||||
-- restaurant_N = regN "restaurant" ;
|
||||
-- river_N = regN "river" ;
|
||||
-- rock_N = regN "rock" ;
|
||||
-- roof_N = regN "roof" ;
|
||||
-- rubber_N = regN "rubber" ;
|
||||
-- religion_N = mkN "religion" ;
|
||||
-- restaurant_N = mkN "restaurant" ;
|
||||
-- river_N = mkN "river" ;
|
||||
-- rock_N = mkN "rock" ;
|
||||
-- roof_N = mkN "roof" ;
|
||||
-- rubber_N = mkN "rubber" ;
|
||||
-- run_V = (irregDuplV "run" "ran" "run") ;
|
||||
-- say_VS = mkVS (irregV "say" "said" "said") ;
|
||||
-- school_N = regN "school" ;
|
||||
-- science_N = regN "science" ;
|
||||
-- sea_N = regN "sea" ;
|
||||
-- school_N = mkN "school" ;
|
||||
-- science_N = mkN "science" ;
|
||||
-- sea_N = mkN "sea" ;
|
||||
-- seek_V2 = dirV2 (irregV "seek" "sought" "sought") ;
|
||||
-- see_V2 = dirV2 (irregV "see" "saw" "seen") ;
|
||||
-- sell_V3 = dirV3 (irregV "sell" "sold" "sold") toP ;
|
||||
-- send_V3 = dirV3 (irregV "send" "sent" "sent") toP ;
|
||||
-- sheep_N = mk2N "sheep" "sheep" ;
|
||||
-- ship_N = regN "ship" ;
|
||||
-- shirt_N = regN "shirt" ;
|
||||
-- shoe_N = regN "shoe" ;
|
||||
-- shop_N = regN "shop" ;
|
||||
-- ship_N = mkN "ship" ;
|
||||
-- shirt_N = mkN "shirt" ;
|
||||
-- shoe_N = mkN "shoe" ;
|
||||
-- shop_N = mkN "shop" ;
|
||||
-- short_A = regADeg "short" ;
|
||||
-- silver_N = regN "silver" ;
|
||||
-- silver_N = mkN "silver" ;
|
||||
-- sister_N = mkN2 (mkN feminine (mkN "sister")) (mkPrep "of") ;
|
||||
sleep_V = mkV "dormio" "dormivi" "dormitus" "dormire" ;
|
||||
-- small_A = regADeg "small" ;
|
||||
-- snake_N = regN "snake" ;
|
||||
-- sock_N = regN "sock" ;
|
||||
-- snake_N = mkN "snake" ;
|
||||
-- sock_N = mkN "sock" ;
|
||||
-- speak_V2 = dirV2 (irregV "speak" "spoke" "spoken") ;
|
||||
-- star_N = regN "star" ;
|
||||
-- steel_N = regN "steel" ;
|
||||
-- stone_N = regN "stone" ;
|
||||
-- stove_N = regN "stove" ;
|
||||
-- student_N = mkN human (regN "student") ;
|
||||
-- star_N = mkN "star" ;
|
||||
-- steel_N = mkN "steel" ;
|
||||
-- stone_N = mkN "stone" ;
|
||||
-- stove_N = mkN "stove" ;
|
||||
-- student_N = mkN human (mkN "student") ;
|
||||
-- stupid_A = regADeg "stupid" ;
|
||||
-- sun_N = regN "sun" ;
|
||||
-- sun_N = mkN "sun" ;
|
||||
-- switch8off_V2 = dirV2 (partV (regV "switch") "off") ;
|
||||
-- switch8on_V2 = dirV2 (partV (regV "switch") "on") ;
|
||||
-- table_N = regN "table" ;
|
||||
-- table_N = mkN "table" ;
|
||||
-- talk_V3 = mkV3 (regV "talk") toP aboutP ;
|
||||
-- teacher_N = mkN human (regN "teacher") ;
|
||||
-- teacher_N = mkN human (mkN "teacher") ;
|
||||
-- teach_V2 = dirV2 (irregV "teach" "taught" "taught") ;
|
||||
-- television_N = regN "television" ;
|
||||
-- television_N = mkN "television" ;
|
||||
-- thick_A = regADeg "thick" ;
|
||||
-- thin_A = duplADeg "thin" ;
|
||||
-- train_N = regN "train" ;
|
||||
-- train_N = mkN "train" ;
|
||||
-- travel_V = (regDuplV "travel") ;
|
||||
-- tree_N = regN "tree" ;
|
||||
-- ---- trousers_N = regN "trousers" ;
|
||||
-- tree_N = mkN "tree" ;
|
||||
-- ---- trousers_N = mkN "trousers" ;
|
||||
-- ugly_A = regADeg "ugly" ;
|
||||
-- understand_V2 = dirV2 (irregV "understand" "understood" "understood") ;
|
||||
-- university_N = regN "university" ;
|
||||
-- village_N = regN "village" ;
|
||||
-- university_N = mkN "university" ;
|
||||
-- village_N = mkN "village" ;
|
||||
-- wait_V2 = prepV2 (regV "wait") forP ;
|
||||
-- walk_V = (regV "walk") ;
|
||||
-- warm_A = regADeg "warm" ;
|
||||
-- war_N = regN "war" ;
|
||||
-- war_N = mkN "war" ;
|
||||
-- watch_V2 = dirV2 (regV "watch") ;
|
||||
-- water_N = regN "water" ;
|
||||
-- water_N = mkN "water" ;
|
||||
-- white_A = regADeg "white" ;
|
||||
-- window_N = regN "window" ;
|
||||
-- wine_N = regN "wine" ;
|
||||
-- window_N = mkN "window" ;
|
||||
-- wine_N = mkN "wine" ;
|
||||
-- win_V2 = dirV2 (irregDuplV "win" "won" "won") ;
|
||||
-- woman_N = mkN feminine (mk2N "woman" "women") ;
|
||||
-- wonder_VQ = mkVQ (regV "wonder") ;
|
||||
-- wood_N = regN "wood" ;
|
||||
-- wood_N = mkN "wood" ;
|
||||
-- write_V2 = dirV2 (irregV "write" "wrote" "written") ;
|
||||
-- yellow_A = regADeg "yellow" ;
|
||||
-- young_A = regADeg "young" ;
|
||||
@@ -218,9 +218,9 @@ lin
|
||||
-- do_V2 = dirV2 (mk5V "do" "does" "did" "done" "doing") ;
|
||||
-- now_Adv = mkAdv "now" ;
|
||||
-- already_Adv = mkAdv "already" ;
|
||||
-- song_N = regN "song" ;
|
||||
-- song_N = mkN "song" ;
|
||||
-- add_V3 = dirV3 (regV "add") toP ;
|
||||
-- number_N = regN "number" ;
|
||||
-- number_N = mkN "number" ;
|
||||
-- put_V2 = prepV2 (irregDuplV "put" "put" "put") noPrep ;
|
||||
-- stop_V = regDuplV "stop" ;
|
||||
-- jump_V = regV "jump" ;
|
||||
@@ -241,69 +241,69 @@ lin
|
||||
-- straight_A = regA "straight" ;
|
||||
-- wet_A = regA "wet" ; ----
|
||||
-- wide_A = regA "wide" ;
|
||||
-- animal_N = regN "animal" ;
|
||||
-- ashes_N = regN "ash" ; -- FIXME: plural only?
|
||||
-- back_N = regN "back" ;
|
||||
-- bark_N = regN "bark" ;
|
||||
-- belly_N = regN "belly" ;
|
||||
-- blood_N = regN "blood" ;
|
||||
-- bone_N = regN "bone" ;
|
||||
-- breast_N = regN "breast" ;
|
||||
-- cloud_N = regN "cloud" ;
|
||||
-- day_N = regN "day" ;
|
||||
-- dust_N = regN "dust" ;
|
||||
-- ear_N = regN "ear" ;
|
||||
-- earth_N = regN "earth" ;
|
||||
-- egg_N = regN "egg" ;
|
||||
-- eye_N = regN "eye" ;
|
||||
-- fat_N = regN "fat" ;
|
||||
-- feather_N = regN "feather" ;
|
||||
-- fingernail_N = regN "fingernail" ;
|
||||
-- fire_N = regN "fire" ;
|
||||
-- flower_N = regN "flower" ;
|
||||
-- fog_N = regN "fog" ;
|
||||
-- animal_N = mkN "animal" ;
|
||||
-- ashes_N = mkN "ash" ; -- FIXME: plural only?
|
||||
-- back_N = mkN "back" ;
|
||||
-- bark_N = mkN "bark" ;
|
||||
-- belly_N = mkN "belly" ;
|
||||
-- blood_N = mkN "blood" ;
|
||||
-- bone_N = mkN "bone" ;
|
||||
-- breast_N = mkN "breast" ;
|
||||
-- cloud_N = mkN "cloud" ;
|
||||
-- day_N = mkN "day" ;
|
||||
-- dust_N = mkN "dust" ;
|
||||
-- ear_N = mkN "ear" ;
|
||||
-- earth_N = mkN "earth" ;
|
||||
-- egg_N = mkN "egg" ;
|
||||
-- eye_N = mkN "eye" ;
|
||||
-- fat_N = mkN "fat" ;
|
||||
-- feather_N = mkN "feather" ;
|
||||
-- fingernail_N = mkN "fingernail" ;
|
||||
-- fire_N = mkN "fire" ;
|
||||
-- flower_N = mkN "flower" ;
|
||||
-- fog_N = mkN "fog" ;
|
||||
-- foot_N = mk2N "foot" "feet" ;
|
||||
-- forest_N = regN "forest" ;
|
||||
-- grass_N = regN "grass" ;
|
||||
-- guts_N = regN "gut" ; -- FIXME: no singular
|
||||
-- hair_N = regN "hair" ;
|
||||
-- hand_N = regN "hand" ;
|
||||
-- head_N = regN "head" ;
|
||||
-- heart_N = regN "heart" ;
|
||||
-- horn_N = regN "horn" ;
|
||||
-- husband_N = mkN masculine (regN "husband") ;
|
||||
-- ice_N = regN "ice" ;
|
||||
-- knee_N = regN "knee" ;
|
||||
-- forest_N = mkN "forest" ;
|
||||
-- grass_N = mkN "grass" ;
|
||||
-- guts_N = mkN "gut" ; -- FIXME: no singular
|
||||
-- hair_N = mkN "hair" ;
|
||||
-- hand_N = mkN "hand" ;
|
||||
-- head_N = mkN "head" ;
|
||||
-- heart_N = mkN "heart" ;
|
||||
-- horn_N = mkN "horn" ;
|
||||
-- husband_N = mkN masculine (mkN "husband") ;
|
||||
-- ice_N = mkN "ice" ;
|
||||
-- knee_N = mkN "knee" ;
|
||||
-- leaf_N = mk2N "leaf" "leaves" ;
|
||||
-- leg_N = regN "leg" ;
|
||||
-- liver_N = regN "liver" ;
|
||||
-- leg_N = mkN "leg" ;
|
||||
-- liver_N = mkN "liver" ;
|
||||
-- louse_N = mk2N "louse" "lice" ;
|
||||
-- mouth_N = regN "mouth" ;
|
||||
-- name_N = regN "name" ;
|
||||
-- neck_N = regN "neck" ;
|
||||
-- night_N = regN "night" ;
|
||||
-- nose_N = regN "nose" ;
|
||||
-- person_N = mkN human (regN "person") ;
|
||||
-- rain_N = regN "rain" ;
|
||||
-- road_N = regN "road" ;
|
||||
-- root_N = regN "root" ;
|
||||
-- rope_N = regN "rope" ;
|
||||
-- salt_N = regN "salt" ;
|
||||
-- sand_N = regN "sand" ;
|
||||
-- seed_N = regN "seed" ;
|
||||
-- skin_N = regN "skin" ;
|
||||
-- sky_N = regN "sky" ;
|
||||
-- smoke_N = regN "smoke" ;
|
||||
-- snow_N = regN "snow" ;
|
||||
-- stick_N = regN "stick" ;
|
||||
-- tail_N = regN "tail" ;
|
||||
-- tongue_N = regN "tongue" ;
|
||||
-- mouth_N = mkN "mouth" ;
|
||||
-- name_N = mkN "name" ;
|
||||
-- neck_N = mkN "neck" ;
|
||||
-- night_N = mkN "night" ;
|
||||
-- nose_N = mkN "nose" ;
|
||||
-- person_N = mkN human (mkN "person") ;
|
||||
-- rain_N = mkN "rain" ;
|
||||
-- road_N = mkN "road" ;
|
||||
-- root_N = mkN "root" ;
|
||||
-- rope_N = mkN "rope" ;
|
||||
-- salt_N = mkN "salt" ;
|
||||
-- sand_N = mkN "sand" ;
|
||||
-- seed_N = mkN "seed" ;
|
||||
-- skin_N = mkN "skin" ;
|
||||
-- sky_N = mkN "sky" ;
|
||||
-- smoke_N = mkN "smoke" ;
|
||||
-- snow_N = mkN "snow" ;
|
||||
-- stick_N = mkN "stick" ;
|
||||
-- tail_N = mkN "tail" ;
|
||||
-- tongue_N = mkN "tongue" ;
|
||||
-- tooth_N = mk2N "tooth" "teeth" ;
|
||||
-- wife_N = mkN feminine (mk2N "wife" "wives") ;
|
||||
-- wind_N = regN "wind" ;
|
||||
-- wing_N = regN "wing" ;
|
||||
-- worm_N = regN "worm" ;
|
||||
-- year_N = regN "year" ;
|
||||
-- wind_N = mkN "wind" ;
|
||||
-- wing_N = mkN "wing" ;
|
||||
-- worm_N = mkN "worm" ;
|
||||
-- year_N = mkN "year" ;
|
||||
-- blow_V = IrregLat.blow_V ;
|
||||
-- breathe_V = dirV2 (regV "breathe") ;
|
||||
-- burn_V = IrregLat.burn_V ;
|
||||
@@ -353,15 +353,15 @@ lin
|
||||
--
|
||||
---- other_A = regA "other" ;
|
||||
--
|
||||
-- grammar_N = regN "grammar" ;
|
||||
-- language_N = regN "language" ;
|
||||
-- rule_N = regN "rule" ;
|
||||
-- grammar_N = mkN "grammar" ;
|
||||
-- language_N = mkN "language" ;
|
||||
-- rule_N = mkN "rule" ;
|
||||
--
|
||||
---- added 4/6/2007
|
||||
-- john_PN = mkPN (mkN masculine (mkN "John")) ;
|
||||
-- question_N = regN "question" ;
|
||||
-- question_N = mkN "question" ;
|
||||
-- ready_A = regA "ready" ;
|
||||
-- reason_N = regN "reason" ;
|
||||
-- reason_N = mkN "reason" ;
|
||||
-- today_Adv = mkAdv "today" ;
|
||||
-- uncertain_A = regA "uncertain" ;
|
||||
--
|
||||
|
||||
@@ -43,11 +43,11 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude in {
|
||||
n = num.n
|
||||
} ;
|
||||
|
||||
-- DetNP det = {
|
||||
-- s = \\c => det.sp ; ---- case
|
||||
-- a = agrP3 det.n
|
||||
-- } ;
|
||||
--
|
||||
DetNP det = {
|
||||
s = det.sp ! Neutr ;
|
||||
g = Neutr ; n = det.n ; p = P3
|
||||
} ;
|
||||
|
||||
-- PossPron p = {
|
||||
-- s = \\_,_ => p.s ! Gen ;
|
||||
-- sp = \\_,_ => p.sp
|
||||
@@ -67,16 +67,12 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude in {
|
||||
-- AdNum adn num = {s = adn.s ++ num.s ; n = num.n} ;
|
||||
--
|
||||
-- OrdSuperl a = {s = a.s ! AAdj Superl} ;
|
||||
--
|
||||
-- DefArt = {
|
||||
-- s = \\c,n => artDef ;
|
||||
-- sp = \\c,n => case <n,c> of {
|
||||
-- <Sg,False> => "it" ;
|
||||
-- <Pl,False> => "they" ;
|
||||
-- _ => artDef
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
|
||||
DefArt = {
|
||||
s = \\_,_,_ => [] ;
|
||||
sp = \\n,g => (personalPronoun g n P3).s
|
||||
} ;
|
||||
|
||||
-- IndefArt = {
|
||||
-- s = \\c,n => case <n,c> of {
|
||||
-- <Sg,False> => artIndef ;
|
||||
@@ -116,17 +112,19 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude in {
|
||||
-- g = f.g ;
|
||||
-- c2 = f.c3
|
||||
-- } ;
|
||||
--
|
||||
-- AdjCN ap cn = {
|
||||
-- s = \\n,c => preOrPost ap.isPre (ap.s ! agrgP3 n cn.g) (cn.s ! n ! c) ;
|
||||
-- g = cn.g
|
||||
-- } ;
|
||||
|
||||
AdjCN ap cn = {
|
||||
s = \\n,c => preOrPost ap.isPre (ap.s ! cn.g ! n ! c) (cn.s ! n ! c) ;
|
||||
g = cn.g
|
||||
} ;
|
||||
|
||||
-- RelCN cn rs = {
|
||||
-- s = \\n,c => cn.s ! n ! c ++ rs.s ! agrgP3 n cn.g ;
|
||||
-- g = cn.g
|
||||
-- } ;
|
||||
-- AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s ; g = cn.g} ;
|
||||
--
|
||||
|
||||
AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s ; g = cn.g} ;
|
||||
|
||||
-- SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s ; g = cn.g} ;
|
||||
--
|
||||
-- ApposCN cn np = {s = \\n,c => cn.s ! n ! Nom ++ np.s ! c ; g = cn.g} ;
|
||||
|
||||
@@ -550,9 +550,21 @@ oper
|
||||
(mkQuantifG
|
||||
"hic" "hunc" "huius" "huic" "hoc" "haec" "hanc" "huius" "hac" "hoc" "huius" "hoc")
|
||||
(mkQuantifG
|
||||
"hi" "hos" "horum" "his" "his" "hae" "has" "harum" "his" "hocec" "horum" "his")
|
||||
"hi" "hos" "horum" "his" "his" "hae" "has" "harum" "his" "haec" "horum" "his")
|
||||
;
|
||||
|
||||
ille_Quantifier = mkQuantifier
|
||||
(mkQuantifG
|
||||
"ille" "illum" "illius" "illi" "illo"
|
||||
"illa" "illam" "illius" "illa"
|
||||
"illud" "illius" "illo")
|
||||
(mkQuantifG
|
||||
"illi" "illos" "illorum" "illis" "illis"
|
||||
"illae" "illas" "illarum" "illis"
|
||||
"illa" "illorum" "illis")
|
||||
;
|
||||
|
||||
mkPrep : Str -> Case -> {s : Str ; c : Case} = \s,c -> {s = s ; c = c} ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,433 +0,0 @@
|
||||
--# -path=.:common
|
||||
|
||||
resource ResLatin = open
|
||||
-- ParamX,
|
||||
Prelude
|
||||
|
||||
in {
|
||||
|
||||
param
|
||||
Number = Sg | Pl ;
|
||||
Person = P1 | P2 | P3 ;
|
||||
Gender = Masc | Fem | Neutr ;
|
||||
Case = Nom | Acc | Gen | Dat | Abl | Voc ;
|
||||
Degree = DPos | DComp | DSup ;
|
||||
|
||||
oper
|
||||
Noun : Type = {s : Number => Case => Str ; g : Gender} ;
|
||||
Adjective : Type = {s : Gender => Number => Case => Str} ;
|
||||
|
||||
-- worst case
|
||||
|
||||
mkNoun : (n1,_,_,_,_,_,_,_,_,n10 : Str) -> Gender -> Noun =
|
||||
\sn,sa,sg,sd,sab,sv,pn,pa,pg,pd, g -> {
|
||||
s = table {
|
||||
Sg => table {
|
||||
Nom => sn ;
|
||||
Acc => sa ;
|
||||
Gen => sg ;
|
||||
Dat => sd ;
|
||||
Abl => sab ;
|
||||
Voc => sv
|
||||
} ;
|
||||
Pl => table {
|
||||
Nom | Voc => pn ;
|
||||
Acc => pa ;
|
||||
Gen => pg ;
|
||||
Dat | Abl => pd
|
||||
}
|
||||
} ;
|
||||
g = g
|
||||
} ;
|
||||
|
||||
-- declensions
|
||||
|
||||
noun1 : Str -> Noun = \mensa ->
|
||||
let
|
||||
mensae = mensa + "a" ;
|
||||
mensis = init mensa + "is" ;
|
||||
in
|
||||
mkNoun
|
||||
mensa (mensa +"m") mensae mensae mensa mensa
|
||||
mensae (mensa + "s") (mensa + "rum") mensis
|
||||
Fem ;
|
||||
|
||||
noun2us : Str -> Noun = \servus ->
|
||||
let
|
||||
serv = Predef.tk 2 servus ;
|
||||
servum = serv + "um" ;
|
||||
servi = serv + "i" ;
|
||||
servo = serv + "o" ;
|
||||
in
|
||||
mkNoun
|
||||
servus servum servi servo servo (serv + "e")
|
||||
servi (serv + "os") (serv + "orum") (serv + "is")
|
||||
Masc ;
|
||||
|
||||
noun2er : Str -> Noun = \puer ->
|
||||
let
|
||||
puerum = puer + "um" ;
|
||||
pueri = puer + "i" ;
|
||||
puero = puer + "o" ;
|
||||
in
|
||||
mkNoun
|
||||
puer puerum pueri puero puero (puer + "e")
|
||||
pueri (puer + "os") (puer + "orum") (puer + "is")
|
||||
Masc ;
|
||||
|
||||
noun2um : Str -> Noun = \bellum ->
|
||||
let
|
||||
bell = Predef.tk 2 bellum ;
|
||||
belli = bell + "i" ;
|
||||
bello = bell + "o" ;
|
||||
bella = bell + "a" ;
|
||||
in
|
||||
mkNoun
|
||||
bellum bellum belli bello bello (bell + "e")
|
||||
bella bella (bell + "orum") (bell + "is")
|
||||
Neutr ;
|
||||
|
||||
-- smart paradigm for declensions 1&2
|
||||
|
||||
noun12 : Str -> Noun = \verbum ->
|
||||
case verbum of {
|
||||
_ + "a" => noun1 verbum ;
|
||||
_ + "us" => noun2us verbum ;
|
||||
_ + "um" => noun2um verbum ;
|
||||
_ + "er" => noun2er verbum ;
|
||||
_ => Predef.error ("noun12 does not apply to" ++ verbum)
|
||||
} ;
|
||||
|
||||
noun3c : Str -> Str -> Gender -> Noun = \rex,regis,g ->
|
||||
let
|
||||
reg = Predef.tk 2 regis ;
|
||||
rege : Str = case rex of {
|
||||
_ + "e" => reg + "i" ;
|
||||
_ + ("al" | "ar") => rex + "i" ;
|
||||
_ => reg + "e"
|
||||
} ;
|
||||
regemes : Str * Str = case g of {
|
||||
Neutr => <rex,reg + "a"> ;
|
||||
_ => <reg + "em", reg + "es">
|
||||
} ;
|
||||
in
|
||||
mkNoun
|
||||
rex regemes.p1 (reg + "is") (reg + "i") rege rex
|
||||
regemes.p2 regemes.p2 (reg + "um") (reg + "ibus")
|
||||
g ;
|
||||
|
||||
|
||||
noun3 : Str -> Noun = \labor ->
|
||||
case labor of {
|
||||
_ + "r" => noun3c labor (labor + "is") Masc ;
|
||||
fl + "os" => noun3c labor (fl + "oris") Masc ;
|
||||
lim + "es" => noun3c labor (lim + "itis") Masc ;
|
||||
cod + "ex" => noun3c labor (cod + "icis") Masc ;
|
||||
poem + "a" => noun3c labor (poem + "atis") Neutr ;
|
||||
calc + "ar" => noun3c labor (calc + "aris") Neutr ;
|
||||
mar + "e" => noun3c labor (mar + "is") Neutr ;
|
||||
car + "men" => noun3c labor (car + "minis") Neutr ;
|
||||
rob + "ur" => noun3c labor (rob + "oris") Neutr ;
|
||||
temp + "us" => noun3c labor (temp + "oris") Neutr ;
|
||||
vers + "io" => noun3c labor (vers + "ionis") Fem ;
|
||||
imag + "o" => noun3c labor (imag + "inis") Fem ;
|
||||
ae + "tas" => noun3c labor (ae + "tatis") Fem ;
|
||||
vo + "x" => noun3c labor (vo + "cis") Fem ;
|
||||
pa + "rs" => noun3c labor (pa + "rtis") Fem ;
|
||||
cut + "is" => noun3c labor (cut + "is") Fem ;
|
||||
urb + "s" => noun3c labor (urb + "is") Fem ;
|
||||
_ => Predef.error ("noun3 does not apply to" ++ labor)
|
||||
} ;
|
||||
|
||||
noun4us : Str -> Noun = \fructus ->
|
||||
let
|
||||
fructu = init fructus ;
|
||||
fruct = init fructu
|
||||
in
|
||||
mkNoun
|
||||
fructus (fructu + "m") fructus (fructu + "i") fructu fructus
|
||||
fructus fructus (fructu + "um") (fruct + "ibus")
|
||||
Masc ;
|
||||
|
||||
noun4u : Str -> Noun = \cornu ->
|
||||
let
|
||||
corn = init cornu ;
|
||||
cornua = cornu + "a"
|
||||
in
|
||||
mkNoun
|
||||
cornu cornu (cornu + "s") (cornu + "i") cornu cornu
|
||||
cornua cornua (cornu + "um") (corn + "ibus")
|
||||
Neutr ;
|
||||
|
||||
noun5 : Str -> Noun = \res ->
|
||||
let
|
||||
re = init res ;
|
||||
rei = re + "i"
|
||||
in
|
||||
mkNoun
|
||||
res (re+ "m") rei rei re res
|
||||
res res (re + "rum") (re + "bus")
|
||||
Fem ;
|
||||
|
||||
-- to change the default gender
|
||||
|
||||
nounWithGen : Gender -> Noun -> Noun = \g,n ->
|
||||
{s = n.s ; g = g} ;
|
||||
|
||||
-- smart paradigms
|
||||
|
||||
noun_ngg : Str -> Str -> Gender -> Noun = \verbum,verbi,g ->
|
||||
let s : Noun = case <verbum,verbi> of {
|
||||
<_ + "a", _ + "ae"> => noun1 verbum ;
|
||||
<_ + "us", _ + "i"> => noun2us verbum ;
|
||||
<_ + "um", _ + "i"> => noun2um verbum ;
|
||||
<_ + "er", _ + "i"> => noun2er verbum ;
|
||||
<_ + "us", _ + "us"> => noun4us verbum ;
|
||||
<_ + "u", _ + "us"> => noun4u verbum ;
|
||||
<_ + "es", _ + "ei"> => noun5 verbum ;
|
||||
_ => noun3c verbum verbi g
|
||||
}
|
||||
in
|
||||
nounWithGen g s ;
|
||||
|
||||
noun : Str -> Noun = \verbum ->
|
||||
case verbum of {
|
||||
_ + "a" => noun1 verbum ;
|
||||
_ + "us" => noun2us verbum ;
|
||||
_ + "um" => noun2um verbum ;
|
||||
_ + "er" => noun2er verbum ;
|
||||
_ + "u" => noun4u verbum ;
|
||||
_ + "es" => noun5 verbum ;
|
||||
_ => noun3 verbum
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
-- adjectives
|
||||
|
||||
mkAdjective : (_,_,_ : Noun) -> Adjective = \bonus,bona,bonum -> {
|
||||
s = table {
|
||||
Masc => bonus.s ;
|
||||
Fem => bona.s ;
|
||||
Neutr => bonum.s
|
||||
}
|
||||
} ;
|
||||
|
||||
adj12 : Str -> Adjective = \bonus ->
|
||||
let
|
||||
bon : Str = case bonus of {
|
||||
pulch + "er" => pulch + "r" ;
|
||||
bon + "us" => bon ;
|
||||
_ => Predef.error ("adj12 does not apply to" ++ bonus)
|
||||
}
|
||||
in
|
||||
mkAdjective (noun12 bonus) (noun1 (bon + "a")) (noun2um (bon + "um")) ;
|
||||
|
||||
-- verbs
|
||||
|
||||
param
|
||||
VActForm = VAct VAnter VTense Number Person ;
|
||||
VPassForm = VPass VTense Number Person ;
|
||||
VInfForm = VInfActPres | VInfActPerf ;
|
||||
VImpForm = VImpPres Number | VImpFut2 Number | VImpFut3 Number ;
|
||||
VGerund = VGenAcc | VGenGen |VGenDat | VGenAbl ;
|
||||
VSupine = VSupAcc | VSupAbl ;
|
||||
|
||||
VAnter = VSim | VAnt ;
|
||||
VTense = VPres VMood | VImpf VMood | VFut ;
|
||||
VMood = VInd | VConj ;
|
||||
|
||||
oper
|
||||
Verb : Type = {
|
||||
act : VActForm => Str ;
|
||||
-- pass : VPassForm => Str ;
|
||||
inf : VAnter => Str ;
|
||||
-- imp : VImpForm => Str ;
|
||||
-- ger : VGerund => Str ;
|
||||
-- sup : VSupine => Str ;
|
||||
-- partActPres : Adjective ;
|
||||
-- partActFut : Adjective ;
|
||||
-- partPassPerf : Adjective ;
|
||||
-- partPassFut : Adjective ;
|
||||
} ;
|
||||
|
||||
mkVerb :
|
||||
(cela,cele,celab,celo,celare,celavi,celatus,celabo,celabunt,celabi : Str)
|
||||
-> Verb =
|
||||
\cela,cele,celab,celo,celare,celavi,celatus,celabo,celabunt,celabi ->
|
||||
let
|
||||
celav = init celavi
|
||||
in {
|
||||
act = table {
|
||||
VAct VSim (VPres VInd) Sg P1 => celo ;
|
||||
VAct VSim (VPres VInd) n p => cela + actPresEnding n p ;
|
||||
VAct VSim (VPres VConj) n p => cele + actPresEnding n p ;
|
||||
VAct VSim (VImpf VInd) n p => celab + "ba" + actPresEnding n p ;
|
||||
VAct VSim (VImpf VConj) n p => celare + actPresEnding n p ;
|
||||
VAct VSim VFut Sg P1 => celabo ;
|
||||
VAct VSim VFut Pl P3 => celabunt ;
|
||||
VAct VSim VFut n p => celabi + actPresEnding n p ;
|
||||
VAct VAnt (VPres VInd) Pl P3 => celav + "erunt" ;
|
||||
VAct VAnt (VPres VInd) n p => celavi + actPerfEnding n p ;
|
||||
VAct VAnt (VPres VConj) n p => celav + "eri" + actPresEnding n p ;
|
||||
VAct VAnt (VImpf VInd) n p => celav + "era" + actPresEnding n p ;
|
||||
VAct VAnt (VImpf VConj) n p => celav + "isse" + actPresEnding n p ;
|
||||
VAct VAnt VFut Sg P1 => celav + "ero" ;
|
||||
VAct VAnt VFut n p => celav + "eri" + actPresEnding n p
|
||||
} ;
|
||||
inf = table {
|
||||
VSim => celare ;
|
||||
VAnt => celav + "isse"
|
||||
}
|
||||
} ;
|
||||
|
||||
actPresEnding : Number -> Person -> Str =
|
||||
useEndingTable <"m", "s", "t", "mus", "tis", "nt"> ;
|
||||
|
||||
actPerfEnding : Number -> Person -> Str =
|
||||
useEndingTable <"", "sti", "t", "mus", "stis", "erunt"> ;
|
||||
|
||||
useEndingTable : (Str*Str*Str*Str*Str*Str) -> Number -> Person -> Str =
|
||||
\es,n,p -> case n of {
|
||||
Sg => case p of {
|
||||
P1 => es.p1 ;
|
||||
P2 => es.p2 ;
|
||||
P3 => es.p3
|
||||
} ;
|
||||
Pl => case p of {
|
||||
P1 => es.p4 ;
|
||||
P2 => es.p5 ;
|
||||
P3 => es.p6
|
||||
}
|
||||
} ;
|
||||
|
||||
esseV : Verb =
|
||||
let
|
||||
esse = mkVerb "es" "si" "era" "sum" "esse" "fui" "*futus"
|
||||
"ero" "erunt" "eri" ;
|
||||
in {
|
||||
act = table {
|
||||
VAct VSim (VPres VInd) Sg P2 => "es" ;
|
||||
VAct VSim (VPres VInd) Pl P1 => "sumus" ;
|
||||
VAct VSim (VPres VInd) Pl P3 => "sunt" ;
|
||||
v => esse.act ! v
|
||||
} ;
|
||||
inf = esse.inf
|
||||
} ;
|
||||
|
||||
verb1 : Str -> Verb = \celare ->
|
||||
let
|
||||
cela = Predef.tk 2 celare ;
|
||||
cel = init cela ;
|
||||
celo = cel + "o" ;
|
||||
cele = cel + "e" ;
|
||||
celavi = cela + "vi" ;
|
||||
celatus = cela + "tus" ;
|
||||
in mkVerb cela cele cela celo celare celavi celatus
|
||||
(cela + "bo") (cela + "bunt") (cela + "bi") ;
|
||||
|
||||
verb2 : Str -> Verb = \habere ->
|
||||
let
|
||||
habe = Predef.tk 2 habere ;
|
||||
hab = init habe ;
|
||||
habeo = habe + "o" ;
|
||||
habea = habe + "a" ;
|
||||
habui = hab + "ui" ;
|
||||
habitus = hab + "itus" ;
|
||||
in mkVerb habe habea habe habeo habere habui habitus
|
||||
(habe + "bo") (habe + "bunt") (habe + "bi") ;
|
||||
|
||||
verb3 : (_,_,_ : Str) -> Verb = \gerere,gessi,gestus ->
|
||||
let
|
||||
gere = Predef.tk 2 gerere ;
|
||||
ger = init gere ;
|
||||
gero = ger + "o" ;
|
||||
geri = ger + "i" ;
|
||||
gera = ger + "a" ;
|
||||
in mkVerb geri gera gere gero gerere gessi gestus
|
||||
(ger + "am") (ger + "ent") gere ;
|
||||
|
||||
verb3i : (_,_,_ : Str) -> Verb = \iacere,ieci,iactus ->
|
||||
let
|
||||
iac = Predef.tk 3 iacere ;
|
||||
iaco = iac + "io" ;
|
||||
iaci = iac + "i" ;
|
||||
iacie = iac + "ie" ;
|
||||
iacia = iac + "ia" ;
|
||||
in mkVerb iaci iacia iacie iaco iacere ieci iactus
|
||||
(iac + "iam") (iac + "ient") iacie ;
|
||||
|
||||
verb4 : (_,_,_ : Str) -> Verb = \sentire,sensi,sensus ->
|
||||
let
|
||||
senti = Predef.tk 2 sentire ;
|
||||
sentio = senti + "o" ;
|
||||
sentia = senti + "a" ;
|
||||
sentie = senti + "e" ;
|
||||
in mkVerb senti sentia sentie sentio sentire sensi sensus
|
||||
(senti + "am") (senti + "ent") sentie ;
|
||||
|
||||
|
||||
-- smart paradigms
|
||||
|
||||
verb_pppi : (iacio,ieci,iactus,iacere : Str) -> Verb =
|
||||
\iacio,ieci,iactus,iacere ->
|
||||
case iacere of {
|
||||
_ + "are" => verb1 iacere ;
|
||||
_ + "ire" => verb4 iacere ieci iactus ;
|
||||
_ + "ere" => case iacio of {
|
||||
_ + "eo" => verb2 iacere ;
|
||||
_ + "io" => verb3i iacere ieci iactus ;
|
||||
_ => verb3 iacere ieci iactus
|
||||
} ;
|
||||
_ => Predef.error ("verb_pppi: illegal infinitive form" ++ iacere)
|
||||
} ;
|
||||
|
||||
verb : (iacere : Str) -> Verb =
|
||||
\iacere ->
|
||||
case iacere of {
|
||||
_ + "are" => verb1 iacere ;
|
||||
_ + "ire" => let iaci = Predef.tk 2 iacere
|
||||
in verb4 iacere (iaci + "vi") (iaci + "tus") ;
|
||||
_ + "ere" => verb2 iacere ;
|
||||
_ => Predef.error ("verb: illegal infinitive form" ++ iacere)
|
||||
} ;
|
||||
|
||||
-- pronouns
|
||||
|
||||
Pronoun : Type = {
|
||||
s : Case => Str ;
|
||||
g : Gender ;
|
||||
n : Number ;
|
||||
p : Person ;
|
||||
} ;
|
||||
|
||||
mkPronoun : (_,_,_,_,_ : Str) -> Gender -> Number -> Person -> Pronoun =
|
||||
\ego,me,mei,mihi,mee,g,n,p -> {
|
||||
s = pronForms ego me mei mihi mee ;
|
||||
g = g ;
|
||||
n = n ;
|
||||
p = p
|
||||
} ;
|
||||
|
||||
pronForms : (_,_,_,_,_ : Str) -> Case => Str =
|
||||
\ego,me,mei,mihi,mee -> table Case [ego ; me ; mei ; mihi ; mee ; ego] ;
|
||||
|
||||
personalPronoun : Gender -> Number -> Person -> Pronoun = \g,n,p -> {
|
||||
s = case <g,n,p> of {
|
||||
<_,Sg,P1> => pronForms "ego" "me" "mei" "mihi" "me" ;
|
||||
<_,Sg,P2> => pronForms "tu" "te" "tui" "tibi" "te" ;
|
||||
<_,Pl,P1> => pronForms "nos" "nos" "nostri" "nobis" "nobis" ; --- nostrum
|
||||
<_,Pl,P2> => pronForms "vos" "vos" "vestri" "vobis" "vobis" ; --- vestrum
|
||||
<Masc, Sg,P3> => pronForms "is" "eum" "eius" "ei" "eo" ;
|
||||
<Fem, Sg,P3> => pronForms "ea" "eam" "eius" "ei" "ea" ;
|
||||
<Neutr,Sg,P3> => pronForms "id" "id" "eius" "ei" "eo" ;
|
||||
<Masc, Pl,P3> => pronForms "ii" "eos" "eorum" "iis" "iis" ;
|
||||
<Fem, Pl,P3> => pronForms "ii" "eas" "earum" "iis" "iis" ;
|
||||
<Neutr,Pl,P3> => pronForms "ea" "ea" "eorum" "iis" "iis"
|
||||
} ;
|
||||
g = g ;
|
||||
n = n ;
|
||||
p = p
|
||||
} ;
|
||||
|
||||
}
|
||||
@@ -5,22 +5,22 @@ concrete StructuralLat of Structural = CatLat **
|
||||
flags optimize=all ;
|
||||
|
||||
lin
|
||||
-- above_Prep = ss "above" ;
|
||||
-- after_Prep = ss "after" ;
|
||||
above_Prep = mkPrep "super" Acc ;
|
||||
after_Prep = mkPrep "post" Acc ;
|
||||
-- all_Predet = ss "all" ;
|
||||
-- almost_AdA, almost_AdN = ss "almost" ;
|
||||
almost_AdA, almost_AdN = ss "quasi" ;
|
||||
-- although_Subj = ss "although" ;
|
||||
-- always_AdV = ss "always" ;
|
||||
always_AdV = ss "semper" ;
|
||||
-- and_Conj = sd2 [] "and" ** {n = Pl} ;
|
||||
-----b and_Conj = ss "and" ** {n = Pl} ;
|
||||
-- because_Subj = ss "because" ;
|
||||
-- before_Prep = ss "before" ;
|
||||
before_Prep = mkPrep "ante" Acc ;
|
||||
-- behind_Prep = ss "behind" ;
|
||||
-- between_Prep = ss "between" ;
|
||||
between_Prep = mkPrep "inter" Acc ;
|
||||
-- both7and_DConj = sd2 "both" "and" ** {n = Pl} ;
|
||||
-- but_PConj = ss "but" ;
|
||||
-- by8agent_Prep = ss "by" ;
|
||||
-- by8means_Prep = ss "by" ;
|
||||
but_PConj = ss "sed" ;
|
||||
by8agent_Prep = mkPrep "a" Abl ;
|
||||
by8means_Prep = mkPrep "per" Acc ;
|
||||
-- can8know_VV, can_VV = {
|
||||
-- s = table {
|
||||
-- VVF VInf => ["be able to"] ;
|
||||
@@ -41,19 +41,19 @@ concrete StructuralLat of Structural = CatLat **
|
||||
-- everywhere_Adv = ss "everywhere" ;
|
||||
-- few_Det = mkDeterminer Pl "few" ;
|
||||
----- first_Ord = ss "first" ; DEPRECATED
|
||||
-- for_Prep = ss "for" ;
|
||||
-- from_Prep = ss "from" ;
|
||||
-- he_Pron = mkPron "he" "him" "his" "his" Sg P3 Masc ;
|
||||
-- here_Adv = ss "here" ;
|
||||
for_Prep = mkPrep "pro" Abl ;
|
||||
from_Prep = mkPrep "de" Abl ;
|
||||
he_Pron = personalPronoun Masc Sg P3 ;
|
||||
here_Adv = ss "hic" ;
|
||||
-- here7to_Adv = ss ["to here"] ;
|
||||
-- here7from_Adv = ss ["from here"] ;
|
||||
-- how_IAdv = ss "how" ;
|
||||
-- how8many_IDet = mkDeterminer Pl ["how many"] ;
|
||||
-- if_Subj = ss "if" ;
|
||||
-- in8front_Prep = ss ["in front of"] ;
|
||||
i_Pron = personalPronoun Fem Sg P1 ;
|
||||
-- in_Prep = ss "in" ;
|
||||
-- it_Pron = mkPron "it" "it" "its" "its" Sg P3 Neutr ;
|
||||
in8front_Prep = mkPrep "coram" Abl ;
|
||||
i_Pron = personalPronoun Masc Sg P1 ;
|
||||
in_Prep = mkPrep "in" Abl ;
|
||||
it_Pron = personalPronoun Neutr Sg P3 ;
|
||||
-- less_CAdv = ss "less" ;
|
||||
-- many_Det = mkDeterminer Pl "many" ;
|
||||
-- more_CAdv = ss "more" ;
|
||||
@@ -72,37 +72,37 @@ concrete StructuralLat of Structural = CatLat **
|
||||
-- isAux = True
|
||||
-- } ;
|
||||
-----b no_Phr = ss "no" ;
|
||||
-- no_Utt = ss "no" ;
|
||||
no_Utt = ss "non" ;
|
||||
-- on_Prep = ss "on" ;
|
||||
------ one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED
|
||||
-- only_Predet = ss "only" ;
|
||||
only_Predet = ss "tantum" ;
|
||||
-- or_Conj = sd2 [] "or" ** {n = Sg} ;
|
||||
-- otherwise_PConj = ss "otherwise" ;
|
||||
-- part_Prep = ss "of" ;
|
||||
part_Prep = mkPrep [] Gen ;
|
||||
-- please_Voc = ss "please" ;
|
||||
-- possess_Prep = ss "of" ;
|
||||
possess_Prep = mkPrep [] Gen ;
|
||||
-- quite_Adv = ss "quite" ;
|
||||
-- she_Pron = mkPron "she" "her" "her" "hers" Sg P3 Fem ;
|
||||
-- so_AdA = ss "so" ;
|
||||
she_Pron = personalPronoun Fem Sg P3 ;
|
||||
so_AdA = ss "sic" ;
|
||||
-- somebody_NP = regNP "somebody" Sg ;
|
||||
-- someSg_Det = mkDeterminer Sg "some" ;
|
||||
-- somePl_Det = mkDeterminer Pl "some" ;
|
||||
-- something_NP = regNP "something" Sg ;
|
||||
-- somewhere_Adv = ss "somewhere" ;
|
||||
-- that_Quant = mkQuant "that" "those" ;
|
||||
that_Quant = ille_Quantifier ;
|
||||
-- there_Adv = ss "there" ;
|
||||
-- there7to_Adv = ss "there" ;
|
||||
-- there7from_Adv = ss ["from there"] ;
|
||||
-- therefore_PConj = ss "therefore" ;
|
||||
-- they_Pron = mkPron "they" "them" "their" "theirs" Pl P3 Masc ; ----
|
||||
they_Pron = personalPronoun Masc Pl P3 ;
|
||||
this_Quant = hic_Quantifier ;
|
||||
-- through_Prep = ss "through" ;
|
||||
-- too_AdA = ss "too" ;
|
||||
-- to_Prep = ss "to" ;
|
||||
-- under_Prep = ss "under" ;
|
||||
under_Prep = mkPrep "sub" Acc ;
|
||||
very_AdA = ss "valde" ;
|
||||
-- want_VV = P.mkVV (P.regV "want") ;
|
||||
-- we_Pron = mkPron "we" "us" "our" "ours" Pl P1 Masc ;
|
||||
we_Pron = personalPronoun Masc Pl P1 ;
|
||||
-- whatPl_IP = mkIP "what" "what" "what's" Pl ;
|
||||
-- whatSg_IP = mkIP "what" "what" "what's" Sg ;
|
||||
-- when_IAdv = ss "when" ;
|
||||
@@ -114,19 +114,11 @@ concrete StructuralLat of Structural = CatLat **
|
||||
-- whoPl_IP = mkIP "who" "whom" "whose" Pl ;
|
||||
-- whoSg_IP = mkIP "who" "whom" "whose" Sg ;
|
||||
-- why_IAdv = ss "why" ;
|
||||
-- without_Prep = ss "without" ;
|
||||
-- with_Prep = ss "with" ;
|
||||
-----b yes_Phr = ss "yes" ;
|
||||
-- yes_Utt = ss "yes" ;
|
||||
youSg_Pron = personalPronoun Fem Sg P2 ;
|
||||
-- youPl_Pron = mkPron "you" "you" "your" "yours" Pl P2 Masc ;
|
||||
-- youPol_Pron = mkPron "you" "you" "your" "yours" Sg P2 Masc ;
|
||||
--
|
||||
--
|
||||
--oper
|
||||
-- mkQuant : Str -> Str -> {s,sp : Bool => Number => Str} = \x,y -> {
|
||||
-- s,sp = \\_ => table Number [x ; y]
|
||||
-- } ;
|
||||
--
|
||||
without_Prep = mkPrep "sine" Abl ;
|
||||
with_Prep = mkPrep "cum" Abl ;
|
||||
yes_Utt = ss "sic" ;
|
||||
youSg_Pron = personalPronoun Masc Sg P2 ;
|
||||
youPl_Pron = personalPronoun Masc Pl P2 ;
|
||||
youPol_Pron = personalPronoun Masc Sg P2 ;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,11 +32,11 @@ concrete VerbLat of Verb = CatLat ** open ResLat in {
|
||||
-- {c2 = vp.c2} ;
|
||||
--
|
||||
UseComp comp = insertAdj comp.s (predV esse_V) ;
|
||||
--
|
||||
-- AdvVP vp adv = insertObj (\\_ => adv.s) vp ;
|
||||
--
|
||||
-- AdVVP adv vp = insertAdV adv.s vp ;
|
||||
--
|
||||
|
||||
AdvVP vp adv = insertObj adv.s vp ;
|
||||
|
||||
AdVVP adv vp = insertObj adv.s vp ;
|
||||
|
||||
-- ReflVP v = insertObjPre (\\a => v.c2 ++ reflPron ! a) v ;
|
||||
--
|
||||
-- PassV2 v = insertObj (\\_ => v.s ! VPPart) (predAux auxBe) ;
|
||||
|
||||
29
lib/next-resource/latin/notes.txt
Normal file
29
lib/next-resource/latin/notes.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
Renaming on Mac:
|
||||
|
||||
for each in *Eng.gf ;
|
||||
do
|
||||
mv $each $(basename $each Eng.gf)Lat.gf
|
||||
done
|
||||
|
||||
In-place change:
|
||||
|
||||
sed -e 's/Eng/Lat/g' -i *Lat.gf
|
||||
|
||||
Start with the following:
|
||||
|
||||
concrete GrammarLat of Grammar =
|
||||
NounLat,
|
||||
VerbLat,
|
||||
AdjectiveLat,
|
||||
-- AdverbLat,
|
||||
-- NumeralLat,
|
||||
SentenceLat,
|
||||
-- QuestionLat,
|
||||
-- RelativeLat,
|
||||
-- ConjunctionLat,
|
||||
-- PhraseLat,
|
||||
TextX,
|
||||
StructuralLat,
|
||||
-- IdiomLat
|
||||
|
||||
|
||||
Reference in New Issue
Block a user