toki transitives

This commit is contained in:
2026-04-05 10:13:58 -06:00
parent ecdc0a85f6
commit 786340192f
6 changed files with 56 additions and 61 deletions

View File

@@ -42,18 +42,18 @@ lin bird_N = mkN "waso" ;
-- 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 = mkN "" ; lin book_N = mkN "lipu" ;
lin boy_N = mkN "mije" ; lin boy_N = mkN "mije" ;
-- lin bread_N = mkN "" ; -- lin bread_N = mkN "" ;
-- lin break_V2 = mkV2 "" ; lin break_V2 = mkV2 "pakala" ;
-- 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 "seli" ;
-- lin butter_N = mkN "" ; -- lin butter_N = mkN "" ;
-- lin buy_V2 = mkV2 "" ; lin buy_V2 = mkV2 "esun" ;
---- ----
-- C -- C
@@ -75,7 +75,7 @@ lin boy_N = mkN "mije" ;
-- 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 "" ; lin come_V = mkV "kama" ;
-- lin computer_N = mkN "" ; -- lin computer_N = mkN "" ;
-- lin correct_A = mkA "" ; -- lin correct_A = mkA "" ;
-- lin count_V2 = mkV2 "" ; -- lin count_V2 = mkV2 "" ;
@@ -104,13 +104,13 @@ lin dog_N = mkN "soweli" ;
---- ----
-- E -- E
-- lin ear_N = mkN "" ; lin ear_N = mkN "kute" ;
-- lin earth_N = mkN "" ; lin earth_N = mkN "ma" ;
-- lin eat_V2 = mkV "" ; lin eat_V2 = mkV "eat" ;
-- 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 "lukin" ;
---- ----
-- F -- F
@@ -127,7 +127,7 @@ lin dog_N = mkN "soweli" ;
-- 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 "kala" ;
-- lin float_V = mkV "" ; -- lin float_V = mkV "" ;
-- lin floor_N = mkN "" ; -- lin floor_N = mkN "" ;
-- lin flow_V = mkV "" ; -- lin flow_V = mkV "" ;
@@ -140,7 +140,7 @@ lin dog_N = mkN "soweli" ;
-- 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 "kili" ;
-- lin full_A = mkA "" ; -- lin full_A = mkA "" ;
-- --lin fun_AV -- --lin fun_AV
@@ -192,7 +192,7 @@ lin john_PN = mkPN "jan" "Jon" ;
-- 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 "sona" ;
-- lin know_VQ = mkVQ (mkV "") ; -- lin know_VQ = mkVQ (mkV "") ;
-- lin know_VS = mkV "" ; -- lin know_VS = mkV "" ;
@@ -218,7 +218,7 @@ lin language_N = mkN "toki" ;
-- lin lose_V2 = mkV2 "" ; -- lin lose_V2 = mkV2 "" ;
-- lin louse_N = mkN "" ; -- lin louse_N = mkN "" ;
lin love_N = mkN "olin" ; lin love_N = mkN "olin" ;
-- lin love_V2 = mkV2 "olin" ; lin love_V2 = mkV2 "olin" ;
---- ----
-- M -- M
@@ -227,7 +227,7 @@ lin love_N = mkN "olin" ;
-- lin married_A2 = mkA2 (mkA "") ; -- lin married_A2 = mkA2 (mkA "") ;
-- lin meat_N = mkN "" ; -- lin meat_N = mkN "" ;
-- lin milk_N = mkN "" ; -- lin milk_N = mkN "" ;
-- lin moon_N = mkN "" ; lin moon_N = mkN "mun" ;
-- lin mother_N2 = mkN2 (mkN "") ; -- lin mother_N2 = mkN2 (mkN "") ;
-- lin mountain_N = mkN "" ; -- lin mountain_N = mkN "" ;
-- lin mouth_N = mkN "" ; -- lin mouth_N = mkN "" ;
@@ -236,7 +236,7 @@ lin love_N = mkN "olin" ;
---- ----
-- N -- N
-- lin name_N = mkN "" ; lin name_N = mkN "nimi" ;
-- lin narrow_A = mkA "" ; -- lin narrow_A = mkA "" ;
-- lin near_A = mkA "" ; -- lin near_A = mkA "" ;
-- lin neck_N = mkN "" ; -- lin neck_N = mkN "" ;

View File

@@ -51,11 +51,11 @@ concrete NounTok of Noun = CatTok ** open ResTok, Prelude in {
-- Determiners can form noun phrases directly. -- Determiners can form noun phrases directly.
-}
-- : Det -> NP ; -- : Det -> NP ;
DetNP det = emptyNP ** { DetNP det = emptyNP ** {
s = \\_ => linDet det ; s = det.s
} ; } ;
-}
-- MassNP : CN -> NP ; -- MassNP : CN -> NP ;
MassNP cn = emptyNP ** { MassNP cn = emptyNP ** {
s = linCN cn s = linCN cn

View File

@@ -146,13 +146,13 @@ oper
mkV : Str -> V = \s -> lin V (mkVerb s) ; mkV : Str -> V = \s -> lin V (mkVerb s) ;
} ; } ;
{-
mkV2 = overload { mkV2 = overload {
mkV2 : Str -> V2 = \s -> mkV2 : Str -> V2 = \s -> ss s
mkV2 : V -> Prep -> V2 = \s -> … -- mkV2 : V -> Prep -> V2 = \s -> …
} ; } ;
{-
mkV3 = overload { mkV3 = overload {
mkV3 : V -> V3 = \s -> … mkV3 : V -> V3 = \s -> …
mkV3 : V -> Prep -> Prep -> V3 = \s -> … mkV3 : V -> Prep -> Prep -> V3 = \s -> …

View File

@@ -17,35 +17,34 @@ lin
} ; } ;
} ; } ;
{-
-- : SC -> VP -> Cl ; -- that she goes is good -- : SC -> VP -> Cl ; -- that she goes is good
PredSCVP sc vp = ; -- PredSCVP sc vp = ;
--2 Clauses missing object noun phrases --2 Clauses missing object noun phrases
-- : NP -> VPSlash -> ClSlash ; -- : NP -> VPSlash -> ClSlash ;
SlashVP = -- SlashVP = \np,vps -> ss ()
-- : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today -- : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today
AdvSlash cls adv = -- AdvSlash cls adv =
-- : Cl -> Prep -> ClSlash ; -- (with whom) he walks -- : Cl -> Prep -> ClSlash ; -- (with whom) he walks
SlashPrep cl prep = cl ** {c2 = prep} ; -- SlashPrep cl prep = cl ** {c2 = prep} ;
-- Imperatives -- Imperatives
-- : VP -> Imp ; -- : VP -> Imp ;
ImpVP vp = -- ImpVP vp =
--2 Embedded sentences --2 Embedded sentences
-- : S -> SC ; -- : S -> SC ;
EmbedS s = -- EmbedS s =
-- : QS -> SC ; -- : QS -> SC ;
EmbedQS qs = -- EmbedQS qs =
-- : VP -> SC ; -- : VP -> SC ;
EmbedVP vp = -- EmbedVP vp =
-}
--2 Sentences --2 Sentences
-- : Temp -> Pol -> Cl -> S ; -- : Temp -> Pol -> Cl -> S ;

View File

@@ -74,7 +74,7 @@ concrete StructuralTok of Structural = CatTok **
-- lin no_Quant = -- lin no_Quant =
-- lin that_Quant = mkQuant "" ; -- lin that_Quant = mkQuant "" ;
-- lin this_Quant = mkQuant "" ; lin this_Quant = mkQuant "ni" ;
-- lin which_IQuant = mkQuant "" ; -- lin which_IQuant = mkQuant "" ;
----- -----
@@ -155,7 +155,7 @@ lin language_title_Utt = ss "toki pona" ;
------- -------
-- Verb -- Verb
-- lin have_V2 = lin have_V2 = mkV "jo" ;
lin can8know_VV = ss "ken" ; lin can8know_VV = ss "ken" ;
lin can_VV = ss "ken" ; lin can_VV = ss "ken" ;

View File

@@ -14,7 +14,7 @@ lin
-- PassV2 v2 = -- PassV2 v2 =
-- : VPSlash -> VP ; -- : VPSlash -> VP ;
-- ReflVP vps = ReflVP vps = vps ;
-- : VV -> VP -> VP ; -- : VV -> VP -> VP ;
ComplVV vv vp = { s = vv.s ++ vp.s ;} ; ComplVV vv vp = { s = vv.s ++ vp.s ;} ;
@@ -34,61 +34,58 @@ lin
-} -}
-------- --------
-- Slash -- Slash
{-
-- : V2 -> VPSlash -- : V2 -> VPSlash
SlashV2a v2 = SlashV2a v2 = v2 ;
-- : V3 -> NP -> VPSlash ; -- give it (to her) -- : V3 -> NP -> VPSlash ; -- give it (to her)
Slash2V3 v3 dobj = -- Slash2V3 v3 dobj =
-- : V3 -> NP -> VPSlash ; -- give (it) to her -- : V3 -> NP -> VPSlash ; -- give (it) to her
Slash3V3 v3 iobj = -- Slash3V3 v3 iobj =
SlashV2A v2 adj = -- SlashV2A v2 adj =
-- : V2S -> S -> VPSlash ; -- answer (to him) that it is good -- : V2S -> S -> VPSlash ; -- answer (to him) that it is good
SlashV2S v2s s = -- SlashV2S v2s s =
-- : V2V -> VP -> VPSlash ; -- beg (her) to go -- : V2V -> VP -> VPSlash ; -- beg (her) to go
SlashV2V v2v vp = ; -- SlashV2V v2v vp = ;
-- : V2Q -> QS -> VPSlash ; -- ask (him) who came -- : V2Q -> QS -> VPSlash ; -- ask (him) who came
SlashV2Q v2q qs = ; -- SlashV2Q v2q qs = ;
-- : V2A -> AP -> VPSlash ; -- paint (it) red -- : V2A -> AP -> VPSlash ; -- paint (it) red
SlashV2A v2a ap = ; -- SlashV2A v2a ap = ;
-- : VPSlash -> NP -> VP -- : VPSlash -> NP -> VP
-- Often VPSlash has a field called c2, which is used to pick right form of np complement -- Often VPSlash has a field called c2, which is used to pick right form of np complement
ComplSlash vps np = vps ** { ComplSlash vps np = ss (vps.s ++ "e" ++ np.s) ;
compl = np.s ! vps.c2
} ;
-- : VV -> VPSlash -> VPSlash ; -- : VV -> VPSlash -> VPSlash ;
SlashVV vv vps = ComplVV vv vps ** { -- SlashVV vv vps = ComplVV vv vps ** {
} ; -- } ;
-- : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy -- : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy
SlashV2VNP v2v np vps = -- SlashV2VNP v2v np vps =
-- : VP -> Adv -> VP ; -- sleep here -- : VP -> Adv -> VP ; -- sleep here
AdvVP vp adv = -- AdvVP vp adv =
-- : AdV -> VP -> VP ; -- always sleep -- : AdV -> VP -> VP ; -- always sleep
AdVVP adv vp = -- AdVVP adv vp =
-- : VPSlash -> Adv -> VPSlash ; -- use (it) here -- : VPSlash -> Adv -> VPSlash ; -- use (it) here
AdvVPSlash = insertAdv ; -- AdvVPSlash = insertAdv ;
-- : VP -> Adv -> VP ; -- sleep , even though ... -- : VP -> Adv -> VP ; -- sleep , even though ...
ExtAdvVP vp adv = ; -- ExtAdvVP vp adv = ;
-- : AdV -> VPSlash -> VPSlash ; -- always use (it) -- : AdV -> VPSlash -> VPSlash ; -- always use (it)
AdVVPSlash adv vps = vps ** { adv = adv.s ++ vps.adv } ; -- AdVVPSlash adv vps = vps ** { adv = adv.s ++ vps.adv } ;
-- : VP -> Prep -> VPSlash ; -- live in (it) -- : VP -> Prep -> VPSlash ; -- live in (it)
VPSlashPrep vp prep = vp ** {c2 = prep} ; -- VPSlashPrep vp prep = vp ** {c2 = prep} ;
--2 Complements to copula --2 Complements to copula
@@ -96,19 +93,18 @@ lin
-- Adjectival phrases, noun phrases, and adverbs can be used. -- Adjectival phrases, noun phrases, and adverbs can be used.
-- : AP -> Comp ; -- : AP -> Comp ;
CompAP ap = -- CompAP ap =
-- : CN -> Comp ; -- : CN -> Comp ;
CompCN cn = -- CompCN cn =
-- NP -> Comp ; -- NP -> Comp ;
CompNP np = -- CompNP np =
-- : Adv -> Comp ; -- : Adv -> Comp ;
CompAdv adv = -- CompAdv adv =
-- : VP -- Copula alone; -- : VP -- Copula alone;
UseCopula = -- UseCopula =
-}
} }