diff --git a/src/toki-pona/AdjectiveTok.gf b/src/toki-pona/AdjectiveTok.gf index 9cb459b64..18895b9b7 100644 --- a/src/toki-pona/AdjectiveTok.gf +++ b/src/toki-pona/AdjectiveTok.gf @@ -10,14 +10,10 @@ concrete AdjectiveTok of Adjective = CatTok ** open ResTok, Prelude in { } ; -- : A -> AP ; - PositA a = a ** { - compar = [] ; - } ; + PositA a = a ; -- : A -> NP -> AP ; - ComparA a np = a ** { - compar = np.s - } ; + ComparA a np = a ; -- Not straightforward for Toki Pona. -- : A2 -> NP -> AP ; -- married to her -- ComplA2 a2 np = a2 ** { } ; diff --git a/src/toki-pona/CatTok.gf b/src/toki-pona/CatTok.gf index 46eb4c63c..fccaf9607 100644 --- a/src/toki-pona/CatTok.gf +++ b/src/toki-pona/CatTok.gf @@ -108,7 +108,7 @@ concrete CatTok of Cat = CommonX ** open ResTok, Coordination, Prelude in { N = ResTok.LinN ; N2 = ResTok.LinN ; N3 = ResTok.LinN ; - PN = SS ; + PN = ResTok.LinPN ; -- From the Names module, not in the official API as of 2023-08 GN = SS ; -- Given name, e.g. "George" diff --git a/src/toki-pona/LexiconTok.gf b/src/toki-pona/LexiconTok.gf index 22783198c..eb3ceff1b 100644 --- a/src/toki-pona/LexiconTok.gf +++ b/src/toki-pona/LexiconTok.gf @@ -22,14 +22,14 @@ lin apartment_N = mkN "tomo" ; -- lin baby_N = mkN "" ; -- lin back_N = mkN "" ; -- lin bad_A = mkA "" ; --- lin bank_N = mkN "" ; +lin bank_N = mkN "tomo mani" ; -- lin bark_N = mkN "" ; -- lin beautiful_A = mkA "" ; -- lin become_VA = mkVA (mkV "") ; --- lin beer_N = mkN "" ; +lin beer_N = mkN "telo nasa" ; -- lin beg_V2V = mkV2V (mkV "") ; -- lin belly_N = mkN "" ; --- lin big_A = mkA "" ; +lin big_A = mkA "suli" ; -- lin bike_N = mkN "" ; lin bird_N = mkN "waso" ; @@ -151,9 +151,9 @@ lin dog_N = mkN "soweli" ; -- lin girl_N = mkN "" ; -- lin give_V3 = mkV3 (mkV "") ; -- lin glove_N = mkN "" ; --- lin go_V = mkV "" ; +lin go_V = mkV "tawa" ; -- lin gold_N = mkN "" ; --- lin good_A = mkA "pona" ; +lin good_A = mkA "pona" ; -- lin grammar_N = mkN "" ; -- lin grass_N = mkN "" ; -- lin green_A = mkA "" ; @@ -162,11 +162,11 @@ lin dog_N = mkN "soweli" ; -- H -- lin hair_N = mkN "" ; --- lin hand_N = mkN "" ; +lin hand_N = mkN "luka" ; -- lin harbour_N = mkN "" ; --- lin hat_N = mkN "" ; +lin hat_N = mkN "len lawa" ; -- lin hate_V2 = mkV2 "" ; --- lin head_N = mkN "" ; +lin head_N = mkN "lawa" ; -- lin hear_V2 = mkV2 "" ; -- lin heart_N = mkN "" ; -- lin heavy_A = mkA "" ; @@ -177,7 +177,7 @@ lin dog_N = mkN "soweli" ; -- lin horn_N = mkN "" ; -- lin horse_N = mkN "" ; -- lin hot_A = mkA "" ; --- lin house_N = mkN "" ; +lin house_N = mkN "tomo" ; -- lin hunt_V2 = mkV2 "" ; -- lin husband_N = mkN "" ; @@ -187,7 +187,7 @@ lin dog_N = mkN "soweli" ; -- lin ice_N = mkN "" ; -- lin industry_N = mkN "" ; -- lin iron_N = mkN "" ; --- lin john_PN = mkPN "" ; +lin john_PN = mkPN "jan" "Jon" ; -- lin jump_V = mkV "" ; -- lin kill_V2 = mkV2 "" ; -- lin king_N = mkN "" ; @@ -256,7 +256,7 @@ lin love_N = mkN "olin" ; -- lin open_V2 = mkV2 "" ; -- lin paint_V2A = mkV2A (mkV "") ; -- lin paper_N = mkN "" ; --- lin paris_PN = mkPN "Paris" ; +lin paris_PN = mkPN "ma" "Pawi" ; -- lin peace_N = mkN "" ; -- lin pen_N = mkN "" ; lin person_N = mkN "jan" ; @@ -326,8 +326,8 @@ lin red_A = mkA "loje" ; -- lin sit_V = mkV "" ; -- lin skin_N = mkN "" ; -- lin sky_N = mkN "" ; --- lin sleep_V = mkV "" ; --- lin small_A = mkA "" ; +lin sleep_V = mkV "lape" ; +lin small_A = mkA "lili" ; -- lin smell_V = mkV "" ; -- lin smoke_N = mkN "" ; -- lin smooth_A = mkA "" ; @@ -335,7 +335,7 @@ lin red_A = mkA "loje" ; -- lin snow_N = mkN "" ; -- lin sock_N = mkN "" ; -- lin song_N = mkN "" ; --- lin speak_V2 = mkV2 "" ; +-- lin speak_V2 = mkV2 "toki" ; -- lin spit_V = mkV "" ; -- lin split_V2 = mkV2 "" ; -- lin squeeze_V2 = mkV2 "" ; @@ -345,7 +345,7 @@ lin red_A = mkA "loje" ; -- lin steel_N = mkN "" ; -- lin stick_N = mkN "" ; -- lin stone_N = mkN "" ; --- lin stop_V = mkV "" ; +lin stop_V = mkV "pini" ; -- lin stove_N = mkN "" ; -- lin straight_A = mkA "" ; -- lin student_N = mkN "" ; @@ -397,7 +397,7 @@ lin red_A = mkA "loje" ; -- lin warm_A = mkA "" ; -- lin wash_V2 = mkV2 "" ; -- lin watch_V2 = mkV2 "" ; --- lin water_N = mkNoun "" ; +lin water_N = mkN "telo" ; -- lin wet_A = mkA "" ; -- lin white_A = mkA "" ; -- lin wide_A = mkA "" ; diff --git a/src/toki-pona/NounTok.gf b/src/toki-pona/NounTok.gf index 8d94b658a..2ee47b0eb 100644 --- a/src/toki-pona/NounTok.gf +++ b/src/toki-pona/NounTok.gf @@ -14,7 +14,11 @@ concrete NounTok of Noun = CatTok ** open ResTok, Prelude in { -- : PN -> NP ; -- Assuming that lincat PN = lincat NP - -- UsePN pn = pn ; + UsePN pn = { + s = pn.head ++ pn.tail ; + p = P3 ; + li = NotMiSina ; + } ; -- : Pron -> NP ; -- Assuming that lincat Pron = lincat NP @@ -204,4 +208,6 @@ concrete NounTok of Noun = CatTok ** open ResTok, Prelude in { DetDAP det = det ; -} + -- : AP -> CN -> CN + AdjCN = \ap,cn -> { s = cn.s ++ ap.s ;}; } diff --git a/src/toki-pona/ParadigmsTok.gf b/src/toki-pona/ParadigmsTok.gf index e18c908ce..ab025e485 100644 --- a/src/toki-pona/ParadigmsTok.gf +++ b/src/toki-pona/ParadigmsTok.gf @@ -21,7 +21,7 @@ oper } ; mkPN : overload { - mkPN : Str -> PN ; -- Proper nouns + mkPN : Str -> Str -> PN ; -- Proper nouns } ; --2 Adjectives @@ -122,7 +122,9 @@ oper } ; mkPN = overload { - mkPN : Str -> PN = \s -> ss s ; + mkPN : Str -> Str -> PN = \head,tail -> lin PN { + head = head; tail = tail + } } ; --2 Adjectives diff --git a/src/toki-pona/ResTok.gf b/src/toki-pona/ResTok.gf index 6ecb3f89f..1c7a4555b 100644 --- a/src/toki-pona/ResTok.gf +++ b/src/toki-pona/ResTok.gf @@ -66,7 +66,8 @@ oper ; LinPN : Type = { - s : Str ; + head : Str ; + tail : Str } ; -- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56 diff --git a/src/toki-pona/StructuralTok.gf b/src/toki-pona/StructuralTok.gf index f42516e8b..5aa0dd4c8 100644 --- a/src/toki-pona/StructuralTok.gf +++ b/src/toki-pona/StructuralTok.gf @@ -147,7 +147,7 @@ lin they_Pron = ona_Pron ; ------ -- Utt --- lin language_title_Utt = ss "" ; +lin language_title_Utt = ss "toki pona" ; -- lin no_Utt = ss "" ; -- lin yes_Utt = ss "" ;