mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
Merge pull request #449 from Meowyam/master
Updates of passive, SlashV verbs in Malay rgl
This commit is contained in:
@@ -61,6 +61,7 @@ concrete AdjectiveMay of Adjective = CatMay ** open ResMay, Prelude in {
|
|||||||
-- AdAP ada ap = ap ** { } ;
|
-- AdAP ada ap = ap ** { } ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- It can also be postmodified by an adverb, typically a prepositional phrase.
|
-- It can also be postmodified by an adverb, typically a prepositional phrase.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,9 +20,13 @@ lin
|
|||||||
--AdAdv : AdA -> Adv -> Adv ; -- very quickly
|
--AdAdv : AdA -> Adv -> Adv ; -- very quickly
|
||||||
-- AdAdv ada adv = adv **
|
-- AdAdv ada adv = adv **
|
||||||
-- Like adverbs, adadjectives can be produced by adjectives.
|
-- Like adverbs, adadjectives can be produced by adjectives.
|
||||||
|
AdAdv ada adv = adv ** {
|
||||||
|
s = ada.s ++ adv.s ;
|
||||||
|
} ;
|
||||||
|
|
||||||
-- : A -> AdA ; -- extremely
|
-- : A -> AdA ; -- extremely
|
||||||
-- PositAdAAdj a = { } ;
|
-- PositAdAAdj a = { } ;
|
||||||
|
-- PositAdAAdj a = {s = a.s} ;
|
||||||
|
|
||||||
-- Subordinate clauses can function as adverbs.
|
-- Subordinate clauses can function as adverbs.
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ concrete ExtendMay of Extend = CatMay
|
|||||||
, ListVPI -- infinitive VP's (TODO: with anteriority and polarity)
|
, ListVPI -- infinitive VP's (TODO: with anteriority and polarity)
|
||||||
, MkVPS
|
, MkVPS
|
||||||
, PredVPS, RelVPS, QuestVPS, SQuestVPS
|
, PredVPS, RelVPS, QuestVPS, SQuestVPS
|
||||||
|
, PassVPSlash, PassAgentVPSlash
|
||||||
|
|
||||||
-- excluded because RGL funs needed for them not implemented yet
|
-- excluded because RGL funs needed for them not implemented yet
|
||||||
, PredAPVP
|
, PredAPVP
|
||||||
@@ -79,6 +80,7 @@ concrete ExtendMay of Extend = CatMay
|
|||||||
PastPartAP vp = {
|
PastPartAP vp = {
|
||||||
s = linVP vp
|
s = linVP vp
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- GenModNP : Num -> NP -> CN -> NP ; -- this man's car(s)
|
-- GenModNP : Num -> NP -> CN -> NP ; -- this man's car(s)
|
||||||
GenModNP n np cn = variants {};
|
GenModNP n np cn = variants {};
|
||||||
|
|
||||||
@@ -100,6 +102,22 @@ concrete ExtendMay of Extend = CatMay
|
|||||||
|
|
||||||
ByVP vp = cc2 by8means_Prep (GerundAdv vp) ;
|
ByVP vp = cc2 by8means_Prep (GerundAdv vp) ;
|
||||||
|
|
||||||
|
-- PassVPSlash : VPS -> VP ;
|
||||||
|
-- be begged to sleep
|
||||||
|
PassVPSlash vps = vps ** {
|
||||||
|
s = \\vf,pol => vps.s ! Passive ! pol ++ vps.adjCompl;
|
||||||
|
};
|
||||||
|
|
||||||
|
-- PassAgentVPSlash : VPSlash -> NP -> VP ; -- be begged by her to go
|
||||||
|
PassAgentVPSlash vps np = {
|
||||||
|
s = \\vf,pol => vps.s ! Passive ! pol ++ vps.adjCompl ++ (applyPrep by8agent_Prep np);
|
||||||
|
};
|
||||||
|
-- PassAgentVPSlash vps np = {
|
||||||
|
-- s = \\vf,pol => vps.s ! Passive ! pol ++ (applyPrep by8agent_Prep np) ;
|
||||||
|
-- };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- MkVPS2 : Temp -> Pol -> VPSlash -> VPS2 ; -- has loved
|
-- MkVPS2 : Temp -> Pol -> VPSlash -> VPS2 ; -- has loved
|
||||||
-- ConjVPS2 : Conj -> [VPS2] -> VPS2 ; -- has loved and now hates
|
-- ConjVPS2 : Conj -> [VPS2] -> VPS2 ; -- has loved and now hates
|
||||||
-- ComplVPS2 : VPS2 -> NP -> VPS ; -- has loved and now hates that person
|
-- ComplVPS2 : VPS2 -> NP -> VPS ; -- has loved and now hates that person
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ lin bank_N = mkN "bank" ;
|
|||||||
lin beautiful_A = mkA "cantik" ;
|
lin beautiful_A = mkA "cantik" ;
|
||||||
-- lin become_VA = mkVA "jadi" ;
|
-- lin become_VA = mkVA "jadi" ;
|
||||||
lin beer_N = mkN "bir" ;
|
lin beer_N = mkN "bir" ;
|
||||||
-- lin beg_V2V = mkV2 "" ;
|
lin beg_V2V = mkV2 "rayu" ;
|
||||||
-- lin belly_N = mkN "" ;
|
-- lin belly_N = mkN "" ;
|
||||||
lin big_A = mkA "besar" ;
|
lin big_A = mkA "besar" ;
|
||||||
lin bike_N = mkN "basikal" ;
|
lin bike_N = mkN "basikal" ;
|
||||||
@@ -95,8 +95,9 @@ lin day_N = mkN "hari" ;
|
|||||||
-- lin doctor_N = mkN "" ;
|
-- lin doctor_N = mkN "" ;
|
||||||
lin dog_N = mkN "anjing" ;
|
lin dog_N = mkN "anjing" ;
|
||||||
lin door_N = mkN "pintu" ;
|
lin door_N = mkN "pintu" ;
|
||||||
lin drink_V2 = let drink' : V2 = mkV2 "minum" in drink' ** {
|
lin drink_V2 = let drink' : V2 = mkV2 "minum" in drink' ** { s = table {
|
||||||
s = \\_ => "minum" ;
|
Passive => "diminum" ;
|
||||||
|
_ => "minum"} ;
|
||||||
};
|
};
|
||||||
-- lin dry_A = mkA "" ;
|
-- lin dry_A = mkA "" ;
|
||||||
-- lin dull_A = mkA "" ;
|
-- lin dull_A = mkA "" ;
|
||||||
@@ -108,7 +109,9 @@ lin drink_V2 = let drink' : V2 = mkV2 "minum" in drink' ** {
|
|||||||
-- lin ear_N = mkN "" ;
|
-- lin ear_N = mkN "" ;
|
||||||
-- lin earth_N = mkN "" ;
|
-- lin earth_N = mkN "" ;
|
||||||
lin eat_V2 = let eat' : V2 = mkV2 "makan" in eat' ** {
|
lin eat_V2 = let eat' : V2 = mkV2 "makan" in eat' ** {
|
||||||
s = \\_ => "makan" ;
|
s = table {
|
||||||
|
Passive => "dimakan" ;
|
||||||
|
_ => "makan"} ;
|
||||||
};
|
};
|
||||||
-- lin egg_N = mkN "" ;
|
-- lin egg_N = mkN "" ;
|
||||||
-- lin empty_A = mkA "" ;
|
-- lin empty_A = mkA "" ;
|
||||||
@@ -208,14 +211,15 @@ lin king_N = mkN "raja" ;
|
|||||||
-- lin language_N = mkN "" ;
|
-- lin language_N = mkN "" ;
|
||||||
-- lin laugh_V = mkV "" ;
|
-- lin laugh_V = mkV "" ;
|
||||||
-- lin leaf_N = mkN "" ;
|
-- lin leaf_N = mkN "" ;
|
||||||
lin learn_V2 = mkV2 (prefixV (mkV "ajar" Ber)) emptyPrep ;
|
lin learn_V2 = mkV2 (prefixV (mkV "belajar" NoPrefix)) emptyPrep ;
|
||||||
-- 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 = let like' : V2 = mkV2 "suka" in like' ** {
|
lin like_V2 = let like' : V2 = mkV2 "suka" in like' ** {
|
||||||
s = \\_ => "suka" ;
|
s = table {
|
||||||
passive = "disukai" ;
|
Passive => "disukai" ;
|
||||||
|
_ => "suka"} ;
|
||||||
};
|
};
|
||||||
-- lin listen_V2 = mkV2 "" ;
|
-- lin listen_V2 = mkV2 "" ;
|
||||||
-- lin live_V = mkV "";
|
-- lin live_V = mkV "";
|
||||||
@@ -224,11 +228,12 @@ lin long_A = mkA "panjang" ;
|
|||||||
-- 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 = let love' : V2 = mkV2 "cinta" in love' ** {
|
lin love_V2 = let love' : V2 = mkV2 "cinta" in love' ** {
|
||||||
-- s = \\_ => "mencintai" ;
|
s = table {
|
||||||
-- passive = "dicintai" ;
|
Passive => "dicintai" ;
|
||||||
-- } ;
|
_ => "mencintai" };
|
||||||
lin love_V2 = mkV4 "cinta" "i";
|
};
|
||||||
|
-- lin love_V2 = mkV4 "cinta" "i";
|
||||||
|
|
||||||
----
|
----
|
||||||
-- M
|
-- M
|
||||||
@@ -288,7 +293,7 @@ lin queen_N = mkN "ratu" ;
|
|||||||
-- lin radio_N = mkN "" ;
|
-- lin radio_N = mkN "" ;
|
||||||
lin rain_N = mkN "hujan" ;
|
lin rain_N = mkN "hujan" ;
|
||||||
lin rain_V0 = mkV "hujan" ;
|
lin rain_V0 = mkV "hujan" ;
|
||||||
lin read_V2 = mkV2 "baca" ;
|
lin read_V2 = mkV2 (prefixV (mkV "baca" Meng)) emptyPrep ;
|
||||||
-- lin ready_A = mkA "" ;
|
-- lin ready_A = mkA "" ;
|
||||||
-- lin reason_N = mkN "" ;
|
-- lin reason_N = mkN "" ;
|
||||||
-- lin red_A = mkA "" ;
|
-- lin red_A = mkA "" ;
|
||||||
@@ -336,7 +341,7 @@ lin sing_V = mkV "nyanyi" ;
|
|||||||
-- 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 "tidur" ;
|
||||||
lin small_A = mkA "kecil" ;
|
lin small_A = mkA "kecil" ;
|
||||||
-- lin smell_V = mkV "" ;
|
-- lin smell_V = mkV "" ;
|
||||||
-- lin smoke_N = mkN "" ;
|
-- lin smoke_N = mkN "" ;
|
||||||
@@ -345,7 +350,8 @@ lin small_A = mkA "kecil" ;
|
|||||||
-- lin snow_N = mkN "" ;
|
-- lin snow_N = mkN "" ;
|
||||||
-- lin sock_N = mkN "" ;
|
-- lin sock_N = mkN "" ;
|
||||||
lin song_N = mkN "lagu" ;
|
lin song_N = mkN "lagu" ;
|
||||||
-- lin speak_V2 = mkV2 "" ;
|
lin speak_V2 = mkV2 (prefixV (mkV "cakap" Ber)) emptyPrep ;
|
||||||
|
|
||||||
-- lin spit_V = mkV "" ;
|
-- lin spit_V = mkV "" ;
|
||||||
-- lin split_V2 = mkV2 "" ;
|
-- lin split_V2 = mkV2 "" ;
|
||||||
-- lin squeeze_V2 = mkV2 "" ;
|
-- lin squeeze_V2 = mkV2 "" ;
|
||||||
@@ -372,7 +378,7 @@ lin stop_V = mkV "henti" ;
|
|||||||
-- lin table_N = mkN "" ;
|
-- lin table_N = mkN "" ;
|
||||||
-- lin tail_N = mkN "" ;
|
-- lin tail_N = mkN "" ;
|
||||||
lin talk_V3 = mkV3 (mkV "cakap" Ber) (mkPrep "tentang") (mkPrep "dengan") ;
|
lin talk_V3 = mkV3 (mkV "cakap" Ber) (mkPrep "tentang") (mkPrep "dengan") ;
|
||||||
lin teach_V2 = mkV2 "ajar" ;
|
lin teach_V2 = mkV2 (prefixV (mkV "ajar" Meng)) emptyPrep;
|
||||||
-- lin teacher_N = mkN "" ;
|
-- lin teacher_N = mkN "" ;
|
||||||
-- lin television_N = mkN "" ;
|
-- lin television_N = mkN "" ;
|
||||||
-- lin thick_A = mkA "" ;
|
-- lin thick_A = mkA "" ;
|
||||||
@@ -402,7 +408,7 @@ lin ugly_A = mkA "jelek" ;
|
|||||||
-- W - Y
|
-- W - Y
|
||||||
|
|
||||||
-- lin wait_V2 = mkV2 "" ;
|
-- lin wait_V2 = mkV2 "" ;
|
||||||
lin walk_V = mkV "jalan" ;
|
lin walk_V = (prefixV (mkV "jalan" Ber)) ;
|
||||||
-- lin war_N = mkN "" ;
|
-- lin war_N = mkN "" ;
|
||||||
-- lin warm_A = mkA "" ;
|
-- lin warm_A = mkA "" ;
|
||||||
-- lin wash_V2 = mkV2 "" ;
|
-- lin wash_V2 = mkV2 "" ;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ concrete NounMay of Noun = CatMay ** open ResMay, Prelude in {
|
|||||||
-- TODO classifier is necessary if numeral comes after noun. See Mintz p. 298.
|
-- TODO classifier is necessary if numeral comes after noun. See Mintz p. 298.
|
||||||
-- ++ if_then_Str (isNum det.n) "buah" [] -- TODO store classifier in CN
|
-- ++ if_then_Str (isNum det.n) "buah" [] -- TODO store classifier in CN
|
||||||
++ case det.poss of {
|
++ case det.poss of {
|
||||||
Bare => cn.s ! NF (toNum det.n) poss ;
|
Bare => cn.s ! NF (toNum det.n) det.poss ;
|
||||||
_ => cn.s ! NF (toNum det.n) det.poss -- TODO check if this make sense
|
_ => cn.s ! NF (toNum det.n) det.poss -- TODO check if this make sense
|
||||||
} ++ det.s ++ cn.heavyMod ;
|
} ++ det.s ++ cn.heavyMod ;
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -75,12 +75,16 @@ oper
|
|||||||
-- mkVQ : Str -> VQ
|
-- mkVQ : Str -> VQ
|
||||||
-- = \s -> lin VQ (regV s) ;
|
-- = \s -> lin VQ (regV s) ;
|
||||||
|
|
||||||
|
mkV2A : overload {
|
||||||
|
mkV2A : Str -> V2A ;
|
||||||
|
} ;
|
||||||
--
|
--
|
||||||
-- mkV2A : Str -> V2A
|
-- mkV2A : Str -> V2A
|
||||||
-- = \s -> lin V2A (regV s ** {c2 = noPrep}) ;
|
-- = \s -> lin V2A (regV s ** {c2 = noPrep}) ;
|
||||||
-- mkV2Q : Str -> V2Q
|
mkV2Q : overload {
|
||||||
-- = \s -> lin V2Q (regV s ** {c2 = noPrep}) ;
|
mkV2Q : Str -> V2Q ;
|
||||||
|
mkV2Q : V -> Prep -> V2Q ;
|
||||||
|
} ;
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|||||||
@@ -27,9 +27,12 @@ oper
|
|||||||
|
|
||||||
prefix : Prefix -> Str -> Str = \p -> case p of {
|
prefix : Prefix -> Str -> Str = \p -> case p of {
|
||||||
Meng => prefixMeng ;
|
Meng => prefixMeng ;
|
||||||
Ber => prefixBer
|
Ber => prefixBer ;
|
||||||
|
NoPrefix => prefixNone
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
prefixNone : Str -> Str = \belajar -> belajar ;
|
||||||
|
|
||||||
prefixMeng : Str -> Str = \makan -> case makan of {
|
prefixMeng : Str -> Str = \makan -> case makan of {
|
||||||
|
|
||||||
? + ? + ? => "menge" + makan ;
|
? + ? + ? => "menge" + makan ;
|
||||||
@@ -63,8 +66,6 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
prefixBer : Str -> Str = \jalan -> case jalan of {
|
prefixBer : Str -> Str = \jalan -> case jalan of {
|
||||||
-- Exception
|
|
||||||
"ajar" => "belajar" ;
|
|
||||||
|
|
||||||
-- Drop the r
|
-- Drop the r
|
||||||
(#c + "er" + _ -- be+kerja
|
(#c + "er" + _ -- be+kerja
|
||||||
@@ -149,6 +150,7 @@ param
|
|||||||
Prefix =
|
Prefix =
|
||||||
Meng
|
Meng
|
||||||
| Ber
|
| Ber
|
||||||
|
| NoPrefix
|
||||||
; -- TODO more?
|
; -- TODO more?
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ concrete PhraseMay of Phrase = CatMay ** open Prelude, ResMay in {
|
|||||||
UttQS qs = qs ;
|
UttQS qs = qs ;
|
||||||
UttIAdv iadv = iadv ;
|
UttIAdv iadv = iadv ;
|
||||||
UttNP np = {s = np.s ! Bare} ;
|
UttNP np = {s = np.s ! Bare} ;
|
||||||
UttIP ip = {s = ip.sp ! NF Sg Bare} ;
|
UttIP ip = {s = ip.s ! Bare} ;
|
||||||
UttImpSg pol imp = {s = pol.s ++ imp.s ! Sg ! pol.p } ;
|
UttImpSg pol imp = {s = pol.s ++ imp.s ! Sg ! pol.p } ;
|
||||||
UttImpPol pol imp = {s = pol.s ++ imp.s ! Sg ! pol.p} ;
|
UttImpPol pol imp = {s = "tolong" ++ pol.s ++ imp.s ! Sg ! pol.p} ;
|
||||||
UttImpPl pol imp = {s = pol.s ++ imp.s ! Pl ! pol.p} ;
|
UttImpPl pol imp = {s = pol.s ++ imp.s ! Pl ! pol.p} ;
|
||||||
UttVP vp = {s = linVP vp} ;
|
UttVP vp = {s = linVP vp} ;
|
||||||
UttAP ap = {s = ap.s} ;
|
UttAP ap = {s = ap.s} ;
|
||||||
|
|||||||
@@ -8,8 +8,17 @@ concrete QuestionMay of Question = CatMay ** open
|
|||||||
-- determiners, with or without a noun.
|
-- determiners, with or without a noun.
|
||||||
lin
|
lin
|
||||||
-- : IDet -> CN -> IP ; -- which five songs
|
-- : IDet -> CN -> IP ; -- which five songs
|
||||||
IdetCN idet cn = NM.DetCN idet cn ** {
|
-- IdetCN idet cn = NM.DetCN idet cn ** {
|
||||||
sp = \\nf => idet.sp ! nf ++ cn.s ! nf
|
-- sp = \\nf => idet.sp ! nf ++ cn.s ! nf
|
||||||
|
-- } ;
|
||||||
|
IdetCN idet cn = emptyNP ** {
|
||||||
|
s = \\poss =>
|
||||||
|
idet.pr
|
||||||
|
++ case idet.poss of {
|
||||||
|
Bare => cn.s ! NF (toNum idet.n) idet.poss ;
|
||||||
|
_ => cn.s ! NF (toNum idet.n) idet.poss -- TODO check if this make sense
|
||||||
|
} ++ idet.s ++ cn.heavyMod ;
|
||||||
|
sp = \\nf => idet.sp ! nf ++ cn.s ! nf;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- : IDet -> IP ; -- which five
|
-- : IDet -> IP ; -- which five
|
||||||
|
|||||||
@@ -230,7 +230,7 @@ oper
|
|||||||
-- VV : Type = Verb ** {vvtype : VVForm} ;
|
-- VV : Type = Verb ** {vvtype : VVForm} ;
|
||||||
|
|
||||||
regVerb : Str -> Prefix -> Verb = \str,p ->
|
regVerb : Str -> Prefix -> Verb = \str,p ->
|
||||||
mkVerb str (prefix p str) ("di" + str) (str + "kan") ;
|
mkVerb str (prefix p str) ("di" + str) (str ++ BIND ++ "kan") ;
|
||||||
|
|
||||||
mkVerb : (makan, memakan, dimakan, makankan : Str) -> Verb = \rt,act,pass,imp -> {
|
mkVerb : (makan, memakan, dimakan, makankan : Str) -> Verb = \rt,act,pass,imp -> {
|
||||||
s = table {
|
s = table {
|
||||||
@@ -251,7 +251,7 @@ oper
|
|||||||
mkVerb4 : Verb -> Preposition -> Str -> Verb4 = \v,pr,str -> v ** {
|
mkVerb4 : Verb -> Preposition -> Str -> Verb4 = \v,pr,str -> v ** {
|
||||||
s = \\_ => v.s ! Active ++ str;
|
s = \\_ => v.s ! Active ++ str;
|
||||||
c2 = pr ;
|
c2 = pr ;
|
||||||
passive = "di" ++ BIND ++ v.s ! Root ++ str
|
-- passive = "di" ++ BIND ++ v.s ! Root ++ str
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
copula : Verb = {s = \\_ => "ada"} ; -- TODO
|
copula : Verb = {s = \\_ => "ada"} ; -- TODO
|
||||||
@@ -294,6 +294,9 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
useComp : Str -> VerbPhrase = \s -> {
|
useComp : Str -> VerbPhrase = \s -> {
|
||||||
|
s = \\vf,pol => verbneg pol ++ s ;
|
||||||
|
} ;
|
||||||
|
useCompN : Str -> VerbPhrase = \s -> {
|
||||||
s = \\vf,pol => nounneg pol ++ s ;
|
s = \\vf,pol => nounneg pol ++ s ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ lin
|
|||||||
oper
|
oper
|
||||||
|
|
||||||
advS : (comma : Str) -> Adverb -> S -> S = \comma,a,sent -> sent ** {
|
advS : (comma : Str) -> Adverb -> S -> S = \comma,a,sent -> sent ** {
|
||||||
s = sent.s ++ comma ++ a.s
|
s = a.s ++ comma ++ sent.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,9 +47,9 @@ lin or_Conj = {s2 = "atau" ; s1 = [] ; n = Sg} ;
|
|||||||
-- lin both7and_DConj = mkConj "" "" pl ;
|
-- lin both7and_DConj = mkConj "" "" pl ;
|
||||||
-- lin either7or_DConj = {s2 = \\_ => "" ; s1 = "" ; n = Sg} ;
|
-- lin either7or_DConj = {s2 = \\_ => "" ; s1 = "" ; n = Sg} ;
|
||||||
--
|
--
|
||||||
-- lin but_PConj = ss "" ;
|
lin but_PConj = ss "tetapi" ;
|
||||||
-- lin otherwise_PConj = ss "" ;
|
-- lin otherwise_PConj = ss "" ;
|
||||||
-- lin therefore_PConj = ss "" ;
|
lin therefore_PConj = ss "oleh itu" ;
|
||||||
|
|
||||||
|
|
||||||
-----------------
|
-----------------
|
||||||
@@ -104,7 +104,7 @@ lin by8agent_Prep = mkPrep "oleh" ; -- for pronoun agent, see Mintz p. 170, 5.4.
|
|||||||
lin by8means_Prep = mkPrep "dengan" ;
|
lin by8means_Prep = mkPrep "dengan" ;
|
||||||
-- lin during_Prep = mkPrep ;
|
-- lin during_Prep = mkPrep ;
|
||||||
-- lin except_Prep = mkPrep ;
|
-- lin except_Prep = mkPrep ;
|
||||||
-- lin for_Prep = mkPrep ;
|
lin for_Prep = mkPrep "untuk" ;
|
||||||
-- lin from_Prep = mkPrep "" ;
|
-- lin from_Prep = mkPrep "" ;
|
||||||
-- lin in8front_Prep = mkPrep "" ;
|
-- lin in8front_Prep = mkPrep "" ;
|
||||||
lin in_Prep = mkPrep "di" ;
|
lin in_Prep = mkPrep "di" ;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
concrete VerbMay of Verb = CatMay ** open ResMay, AdverbMay, Prelude in {
|
concrete VerbMay of Verb = CatMay ** open ResMay, AdverbMay, StructuralMay, Prelude in {
|
||||||
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
@@ -16,7 +16,7 @@ lin
|
|||||||
|
|
||||||
-- : VV -> VP -> VP ;
|
-- : VV -> VP -> VP ;
|
||||||
ComplVV vv vp = vp ** useV {
|
ComplVV vv vp = vp ** useV {
|
||||||
s = \\vf => vv.s ++ linVP vp
|
s = \\vf => vv.s ++ vp.s ! Root! Pos;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- : VA -> AP -> VP ; -- they become red
|
-- : VA -> AP -> VP ; -- they become red
|
||||||
@@ -56,7 +56,13 @@ lin
|
|||||||
|
|
||||||
-- : V3 -> NP -> VPSlash ; -- give (it) to her
|
-- : V3 -> NP -> VPSlash ; -- give (it) to her
|
||||||
Slash3V3 v3 iobj = useV {
|
Slash3V3 v3 iobj = useV {
|
||||||
s = \\vf => v3.s ! vf ++ applyPrep v3.c3 emptyNP ++ iobj.s ! Bare;
|
s = \\vf => v3.s ! vf ++
|
||||||
|
case iobj.a of {
|
||||||
|
IsPron p => applyPrep v3.c2 emptyNP ++ applyPrep v3.c3 iobj ;
|
||||||
|
_ => applyPrep v3.c2 iobj ++ applyPrep v3.c3 emptyNP
|
||||||
|
}
|
||||||
|
-- ++ applyPrep v3.c2 iobj ++
|
||||||
|
-- applyPrep v3.c3 emptyNP ;
|
||||||
--iobj.s ! Bare -- applyPrep v3.c3 iobj -- TODO check if this works for all -- probably not
|
--iobj.s ! Bare -- applyPrep v3.c3 iobj -- TODO check if this works for all -- probably not
|
||||||
} ** {
|
} ** {
|
||||||
c2 = v3.c2 ;-- Now the VPSlash is missing only the direct object
|
c2 = v3.c2 ;-- Now the VPSlash is missing only the direct object
|
||||||
@@ -72,20 +78,24 @@ lin
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- : V2V -> VP -> VPSlash ; -- beg (her) to go
|
-- : V2V -> VP -> VPSlash ; -- beg (her) to go
|
||||||
SlashV2V v2 vp = vp ** useV {
|
SlashV2V v2 vp = useV {
|
||||||
s = \\vf => v2.s ! vf ++ (linVP vp);
|
s = \\vf => v2.s ! vf;
|
||||||
} ** {
|
} ** {
|
||||||
c2 = v2.c2 ;
|
c2 = v2.c2 ;
|
||||||
adjCompl = [] ;
|
adjCompl = for_Prep.s ++ vp.s ! Root ! Pos;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
-- : V2S -> S -> VPSlash ; -- answer (to him) that it is good
|
-- : V2S -> S -> VPSlash ; -- answer (to him) that it is good
|
||||||
SlashV2S v2 s = useV v2 ** {
|
SlashV2S v2 s = useV v2 ** {
|
||||||
c2 = v2.c2;
|
c2 = v2.c2;
|
||||||
adjCompl = "yang" ++ s.s ; -- TODO check /Inari
|
adjCompl = "yang" ++ s.s ; -- TODO check /Inari
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
-- : V2Q -> QS -> VPSlash ; -- ask (him) who came
|
||||||
|
-- SlashV2Q v2q qs = useV v2q ** {
|
||||||
|
-- s =
|
||||||
|
-- };
|
||||||
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- : V2S -> S -> VPSlash ; -- answer (to him) that it is good
|
-- : V2S -> S -> VPSlash ; -- answer (to him) that it is good
|
||||||
@@ -102,12 +112,9 @@ lin
|
|||||||
-- : VPSlash -> NP -> VP
|
-- : VPSlash -> NP -> VP
|
||||||
ComplSlash vps np = vps ** {
|
ComplSlash vps np = vps ** {
|
||||||
s = \\vf,pol =>
|
s = \\vf,pol =>
|
||||||
vps.s ! vf ! pol
|
vps.s ! vf ! pol ++ applyPrep vps.c2 np ++ vps.adjCompl
|
||||||
++ applyPrep vps.c2 np ++ vps.adjCompl
|
|
||||||
-- s = \\vf,pol => vps.s ! vf ! pol ++ applyPrep vps.c2 np
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
-- : VV -> VPSlash -> VPSlash ;
|
-- : VV -> VPSlash -> VPSlash ;
|
||||||
SlashVV vv vps = ComplVV vv vps ** {
|
SlashVV vv vps = ComplVV vv vps ** {
|
||||||
c2 = vps.c2 ; -- like ComplVV except missing object
|
c2 = vps.c2 ; -- like ComplVV except missing object
|
||||||
@@ -141,7 +148,12 @@ lin
|
|||||||
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 ** {
|
||||||
|
s = \\vf,pol => vp.s ! vf ! pol ;
|
||||||
|
} ** {
|
||||||
|
c2 = prep ;
|
||||||
|
adjCompl =[] ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
--2 Complements to copula
|
--2 Complements to copula
|
||||||
@@ -152,10 +164,10 @@ lin
|
|||||||
CompAP ap = useComp ap.s ;
|
CompAP ap = useComp ap.s ;
|
||||||
|
|
||||||
-- : CN -> Comp ;
|
-- : CN -> Comp ;
|
||||||
CompCN cn = useComp (cn.s ! NF Sg Bare) ;
|
CompCN cn = useCompN (cn.s ! NF Sg Bare) ;
|
||||||
|
|
||||||
-- NP -> Comp ;
|
-- NP -> Comp ;
|
||||||
CompNP np = useComp (np.s ! Bare) ;
|
CompNP np = useCompN (np.s ! Bare) ;
|
||||||
|
|
||||||
-- : Adv -> Comp ;
|
-- : Adv -> Comp ;
|
||||||
--"Both bukan and tidak may negate prepositional phrases. The choice of either
|
--"Both bukan and tidak may negate prepositional phrases. The choice of either
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ LangMay: dia memberi kucing kepadaku
|
|||||||
|
|
||||||
Lang: UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron he_Pron) (ComplSlash (Slash3V3 give_V3 (UsePron i_Pron)) (MassNP (UseN cat_N)))))
|
Lang: UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron he_Pron) (ComplSlash (Slash3V3 give_V3 (UsePron i_Pron)) (MassNP (UseN cat_N)))))
|
||||||
LangMay: dia memberi aku kucing
|
LangMay: dia memberi aku kucing
|
||||||
|
-- dia memberi aku kepada kucing
|
||||||
|
|
||||||
-- Sentence complements
|
-- Sentence complements
|
||||||
|
|
||||||
|
|||||||
@@ -16,4 +16,4 @@ LangMay: buku itu dibaca
|
|||||||
|
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant that_Quant NumSg) (UseN book_N)) (AdvVP (PassV2 read_V2) (PrepNP to_Prep (UsePron youSg_Pron))))
|
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant that_Quant NumSg) (UseN book_N)) (AdvVP (PassV2 read_V2) (PrepNP to_Prep (UsePron youSg_Pron))))
|
||||||
LangEng: that book is read to you
|
LangEng: that book is read to you
|
||||||
LangMay: buku itu dibacakan kepada kamu
|
LangMay: buku itu dibaca kepadamu
|
||||||
@@ -8,7 +8,7 @@ LangMay: kamu suka lagu-lagu yang mana
|
|||||||
|
|
||||||
Lang: PhrUtt NoPConj (UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestSlash (IdetCN how8many_IDet (UseN cat_N)) (SlashVP (UsePron youPl_Pron) (SlashV2a have_V2))))) NoVoc
|
Lang: PhrUtt NoPConj (UttQS (UseQCl (TTAnt TPres ASimul) PPos (QuestSlash (IdetCN how8many_IDet (UseN cat_N)) (SlashVP (UsePron youPl_Pron) (SlashV2a have_V2))))) NoVoc
|
||||||
LangEng: how many cats do you have
|
LangEng: how many cats do you have
|
||||||
LangMay: kamu ada berapa kucing
|
LangMay: kamu ada berapa banyak kucing
|
||||||
|
|
||||||
Lang: PhrUtt NoPConj (UttIP (IdetCN how8many_IDet (UseN cat_N))) NoVoc
|
Lang: PhrUtt NoPConj (UttIP (IdetCN how8many_IDet (UseN cat_N))) NoVoc
|
||||||
LangEng: how many cats
|
LangEng: how many cats
|
||||||
@@ -71,3 +71,11 @@ LangMay: mengapa dia makan daging
|
|||||||
Lang: UseQCl (TTAnt TPast ASimul) PPos (QuestVP whatSg_IP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (RelCN (UseN meat_N) (UseRCl (TTAnt TPast ASimul) PPos (RelVP IdRP (PassV2 eat_V2))))))))
|
Lang: UseQCl (TTAnt TPast ASimul) PPos (QuestVP whatSg_IP (UseComp (CompNP (DetCN (DetQuant DefArt NumSg) (RelCN (UseN meat_N) (UseRCl (TTAnt TPast ASimul) PPos (RelVP IdRP (PassV2 eat_V2))))))))
|
||||||
LangEng: what was the meat that was eaten
|
LangEng: what was the meat that was eaten
|
||||||
LangMay: apa daging yang dimakan
|
LangMay: apa daging yang dimakan
|
||||||
|
|
||||||
|
AllEngAbs: (PassAgentVPSlash (SlashV2V beg_V2V (UseV go_V)) (UsePron i_Pron))
|
||||||
|
AllEng: be begged to go by me
|
||||||
|
AllMay: dirayu untuk pergi olehku
|
||||||
|
|
||||||
|
AllEngAbs: (PassVPSlash (SlashV2V beg_V2V (UseV sleep_V)))
|
||||||
|
AllEng: be begged to sleep
|
||||||
|
AllMay: dirayu untuk tidur
|
||||||
@@ -49,7 +49,7 @@ LangMay: bapanya memberi buku kepadanya
|
|||||||
-- 2. A book that her father gave her
|
-- 2. A book that her father gave her
|
||||||
-- TODO: would it be better as "buku yang bapanya beri kepadanya"? (Or any other variation?)
|
-- TODO: would it be better as "buku yang bapanya beri kepadanya"? (Or any other variation?)
|
||||||
Lang: DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPast ASimul) PPos (RelSlash IdRP (SlashVP (DetCN (DetQuant DefArt NumSg) (ComplN2 father_N2 (UsePron she_Pron))) (Slash3V3 give_V3 (UsePron she_Pron))))))
|
Lang: DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPast ASimul) PPos (RelSlash IdRP (SlashVP (DetCN (DetQuant DefArt NumSg) (ComplN2 father_N2 (UsePron she_Pron))) (Slash3V3 give_V3 (UsePron she_Pron))))))
|
||||||
LangMay: buku yang bapanya memberi kepada dia
|
LangMay: buku yang bapanya memberi kepadanya
|
||||||
|
|
||||||
-- The preposition "kepada" comes from the definition of give_V3 in LexiconMay.gf.
|
-- The preposition "kepada" comes from the definition of give_V3 in LexiconMay.gf.
|
||||||
-- If "buku yang bapanya beri kepadanya" is correct in general, but sometimes
|
-- If "buku yang bapanya beri kepadanya" is correct in general, but sometimes
|
||||||
@@ -64,7 +64,7 @@ LangMay: buku yang bapanya memberi kepada dia
|
|||||||
-- I want to read the book that my father gave me
|
-- I want to read the book that my father gave me
|
||||||
-- TODO check: would "aku mahu baca buku yang bapaku beri kepadaku" be better?
|
-- TODO check: would "aku mahu baca buku yang bapaku beri kepadaku" be better?
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashVV want_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPast ASimul) PPos (RelSlash IdRP (SlashVP (DetCN (DetQuant DefArt NumSg) (ComplN2 father_N2 (UsePron i_Pron))) (Slash3V3 give_V3 (UsePron i_Pron)))))))))
|
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashVV want_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPast ASimul) PPos (RelSlash IdRP (SlashVP (DetCN (DetQuant DefArt NumSg) (ComplN2 father_N2 (UsePron i_Pron))) (Slash3V3 give_V3 (UsePron i_Pron)))))))))
|
||||||
LangMay: aku mahu membaca buku yang bapaku memberi kepada aku
|
LangMay: aku mahu membaca buku yang bapaku memberi kepadaku
|
||||||
|
|
||||||
-- I want to read the book that my father read
|
-- I want to read the book that my father read
|
||||||
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashVV want_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPast ASimul) PPos (RelSlash IdRP (SlashVP (DetCN (DetQuant DefArt NumSg) (ComplN2 father_N2 (UsePron i_Pron))) (SlashV2a read_V2))))))))
|
Lang: UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashVV want_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPast ASimul) PPos (RelSlash IdRP (SlashVP (DetCN (DetQuant DefArt NumSg) (ComplN2 father_N2 (UsePron i_Pron))) (SlashV2a read_V2))))))))
|
||||||
|
|||||||
@@ -13,8 +13,9 @@ Lang: UseCl (TTAnt TFut ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumSg) (Use
|
|||||||
LangEng: the cat will walk
|
LangEng: the cat will walk
|
||||||
LangMay: kucing akan berjalan
|
LangMay: kucing akan berjalan
|
||||||
|
|
||||||
Lang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V beg_V2V (UseV go_V)) (UsePron she_Pron))
|
Lang: UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (SlashV2V beg_V2V (UseV go_V)) (DetNP (DetQuant (PossPron she_Pron) NumPl)))))
|
||||||
LangEng: I begged her to go
|
LangEng: I begged her to go
|
||||||
|
LangMay: aku merayu dia untuk pergi
|
||||||
|
|
||||||
-------------
|
-------------
|
||||||
-- Conditions
|
-- Conditions
|
||||||
|
|||||||
@@ -108,14 +108,14 @@ LangMay: sekiranya tidak hujan sekarang , aku akan berjalan
|
|||||||
|
|
||||||
Lang: UttImpSg PPos (ImpVP (ComplSlash (SlashV2a open_V2) (DetCN (DetQuant DefArt NumSg) (UseN door_N))))
|
Lang: UttImpSg PPos (ImpVP (ComplSlash (SlashV2a open_V2) (DetCN (DetQuant DefArt NumSg) (UseN door_N))))
|
||||||
LangEng: open the door
|
LangEng: open the door
|
||||||
LangMay: buka pintu
|
LangMay: bukakan pintu
|
||||||
|
|
||||||
Lang: UttImpSg PNeg (ImpVP (ComplSlash (SlashV2a open_V2) (DetCN (DetQuant DefArt NumSg) (UseN door_N))))
|
Lang: UttImpSg PNeg (ImpVP (ComplSlash (SlashV2a open_V2) (DetCN (DetQuant DefArt NumSg) (UseN door_N))))
|
||||||
LangEng: don't open the door
|
LangEng: don't open the door
|
||||||
LangMay: jangan buka pintu
|
LangMay: jangan bukakan pintu
|
||||||
|
|
||||||
Lang: UttImpPol PPos (ImpVP (ComplSlash (SlashV2a open_V2) (DetCN (DetQuant DefArt NumSg) (UseN door_N))))
|
Lang: UttImpPol PPos (ImpVP (ComplSlash (SlashV2a open_V2) (DetCN (DetQuant DefArt NumSg) (UseN door_N))))
|
||||||
LangEng: open the door
|
LangEng: open the door
|
||||||
LangMay: bukakan pintu
|
LangMay: tolong bukakan pintu
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
-- Questions
|
-- Questions
|
||||||
|
|||||||
Reference in New Issue
Block a user