forked from GitHub/gf-core
Pinyin files using diacritics instead of numbers
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
concrete ExtraChi of ExtraChiAbs = CatChi **
|
concrete ExtraChi of ExtraChiAbs = CatChi **
|
||||||
open ResChi, Coordination, Prelude in {
|
open ResChi, Coordination, (S = StructuralChi), Prelude in {
|
||||||
|
|
||||||
flags coding = utf8 ;
|
flags coding = utf8 ;
|
||||||
|
|
||||||
@@ -11,6 +11,7 @@ concrete ExtraChi of ExtraChiAbs = CatChi **
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
PassVPSlash vps = insertAdv (mkNP passive_s) vps ;
|
PassVPSlash vps = insertAdv (mkNP passive_s) vps ;
|
||||||
|
PassAgentVPSlash vps np = insertAdv (ss (appPrep S.by8agent_Prep np.s)) (insertAdv (mkNP passive_s) vps) ;
|
||||||
|
|
||||||
MkVPS t p vp = {s = t.s ++ p.s ++ (mkClause [] vp).s ! p.p ! t.t} ;
|
MkVPS t p vp = {s = t.s ++ p.s ++ (mkClause [] vp).s ! p.p ! t.t} ;
|
||||||
ConjVPS c = conjunctDistrSS (c.s ! CSent) ;
|
ConjVPS c = conjunctDistrSS (c.s ! CSent) ;
|
||||||
@@ -35,18 +36,18 @@ concrete ExtraChi of ExtraChiAbs = CatChi **
|
|||||||
lincat
|
lincat
|
||||||
Aspect = {s : Str ; a : ResChi.Aspect} ;
|
Aspect = {s : Str ; a : ResChi.Aspect} ;
|
||||||
lin
|
lin
|
||||||
PredBareAP np ap = case ap.hasAdA of {
|
CompBareAP ap = case ap.hasAdA of {
|
||||||
True => mkClause np.s (insertObj (mkNP ap.s) (predV nocopula [])) ;
|
True => insertObj (mkNP ap.s) (predV nocopula []) ;
|
||||||
False => mkClause np.s (insertObj (mkNP ap.s) (predV hen_copula []))
|
False => insertObj (mkNP ap.s) (predV hen_copula [])
|
||||||
} ;
|
} ;
|
||||||
QuestRepV cl = {
|
QuestRepV cl = {
|
||||||
s = \\p,a =>
|
s = \\_,p,a => ---- also for indirect questions?
|
||||||
let
|
let
|
||||||
v = cl.vp.verb ;
|
v = cl.vp.verb ;
|
||||||
verb = case a of {
|
verb = case a of {
|
||||||
APlain => v.s ++ v.neg ++ v.sn ;
|
APlain => v.s ++ v.neg ++ v.sn ;
|
||||||
APerf => v.s ++ "bu4" ++ v.sn ++ v.pp ;
|
APerf => v.s ++ "bù" ++ v.sn ++ v.pp ;
|
||||||
ADurStat => v.s ++ "bu4" ++ v.sn ;
|
ADurStat => v.s ++ "bù" ++ v.sn ;
|
||||||
ADurProg => v.dp ++ v.neg ++ v.dp ++ v.sn ; -- mei or bu
|
ADurProg => v.dp ++ v.neg ++ v.dp ++ v.sn ; -- mei or bu
|
||||||
AExper => v.s ++ v.neg ++ v.sn ++ v.ep
|
AExper => v.s ++ v.neg ++ v.sn ++ v.ep
|
||||||
}
|
}
|
||||||
@@ -54,6 +55,6 @@ concrete ExtraChi of ExtraChiAbs = CatChi **
|
|||||||
cl.np ++ cl.vp.prePart ++ verb ++ cl.vp.compl
|
cl.np ++ cl.vp.prePart ++ verb ++ cl.vp.compl
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
TopicAdvCl adv cl = mkClause (adv.s ++ cl.np) cl.vp ;
|
TopicAdvVP vp adv = insertTopic adv vp ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,373 +8,373 @@ lin
|
|||||||
|
|
||||||
-- LexiconCmn
|
-- LexiconCmn
|
||||||
|
|
||||||
man_N = mkN "nan2ren2" "ge4"; -- "nanren" "ge" first being noun, second is classifier(counter)
|
man_N = mkN "nánrén" "gè"; -- "nanren" "ge" first being noun, second is classifier(counter)
|
||||||
woman_N = mkN "nu:3ren2" "ge4"; -- "nvren" "ge" classifier behaves like the "cup" in "cup of tea"
|
woman_N = mkN "nǚrén" "gè"; -- "nvren" "ge" classifier behaves like the "cup" in "cup of tea"
|
||||||
house_N = mkN "fang2zi3" "jian1"; -- "fangzi" "jian"
|
house_N = mkN "fángzǐ" "jiān"; -- "fangzi" "jian"
|
||||||
tree_N = mkN "shu4" "ke1"; -- "shu" "ke"
|
tree_N = mkN "shù" "kē"; -- "shu" "ke"
|
||||||
big_A = mkA "da4" ; -- "da"
|
big_A = mkA "dà" ; -- "da"
|
||||||
small_A = mkA "xiao3" ; -- "xiao"
|
small_A = mkA "xiaǒ" ; -- "xiao"
|
||||||
green_A = mkA "lu:4" ; -- "lv"
|
green_A = mkA "lǜ" ; -- "lv"
|
||||||
walk_V = mkV "zou3" ; -- "zou"
|
walk_V = mkV "zoǔ" ; -- "zou"
|
||||||
sleep_V = mkV "shui4" ; -- "shui"
|
sleep_V = mkV "shuìjiaò" ; -- "shui"
|
||||||
love_V2 = mkV2 "ai4" ; -- "ai"
|
love_V2 = mkV2 "aì" ; -- "ai"
|
||||||
watch_V2 = mkV2 "kan1" ; -- "kan"
|
watch_V2 = mkV2 "kān" ; -- "kan"
|
||||||
know_VS = mkV "zhi1dao4" ; -- "zhidao"
|
know_VS = mkV "zhīdaò" ; -- "zhidao"
|
||||||
wonder_VQ = mkV "hao3ji1" ; -- "haoqi"
|
wonder_VQ = mkV "haǒjī" ; -- "haoqi"
|
||||||
john_PN = mkPN "yao1han4" ; -- "yuehan"
|
john_PN = mkPN "yaōhàn" ; -- "yuehan"
|
||||||
|
|
||||||
|
|
||||||
-- Swadesh
|
-- Swadesh
|
||||||
|
|
||||||
long_A = mkA "chang2" ;
|
long_A = mkA "cháng" ;
|
||||||
wide_A = mkA "kuan1" ;
|
wide_A = mkA "kuān" ;
|
||||||
thick_A = mkA "hou4" ;
|
thick_A = mkA "hoù" ;
|
||||||
heavy_A = mkA "chong2" ;
|
heavy_A = mkA "chóng" ;
|
||||||
short_A = mkA "duan3" ;
|
short_A = mkA "duǎn" ;
|
||||||
narrow_A = mkA "zhai3" ;
|
narrow_A = mkA "zhaǐ" ;
|
||||||
thin_A = mkA "bo2" ; -- [mark] for person mkA "shou4"
|
thin_A = mkA "bó" ; -- [mark] for person mkA "shoù"
|
||||||
child_N = mkN "hai2zi3" ;
|
child_N = mkN "haízǐ" ;
|
||||||
wife_N = mkN "qi1zi3" ;
|
wife_N = mkN "qīzǐ" | mkN "aìrén" ;
|
||||||
husband_N = mkN "zhang4fu1" ;
|
husband_N = mkN "zhàngfū" ;
|
||||||
animal_N = mkN "dong4wu4" "qi2"; -- [mark] added classifier for nouns
|
animal_N = mkN "dòngwù" "qí"; -- [mark] added classifier for nouns
|
||||||
fish_N = mkN "yu2" "tiao2";
|
fish_N = mkN "yú" "tiaó";
|
||||||
bird_N = mkN "niao3" "qi2";
|
bird_N = mkN "niaǒ" "qí";
|
||||||
dog_N = mkN "gou3" "qi2";
|
dog_N = mkN "goǔ" "qí";
|
||||||
louse_N = mkN "shi1" "qi2";
|
louse_N = mkN "shī" "qí";
|
||||||
snake_N = mkN "she2" "tiao2";
|
snake_N = mkN "shé" "tiaó";
|
||||||
worm_N = mkN "chong2" "qi2";
|
worm_N = mkN "chóng" "qí";
|
||||||
forest_N = mkN "sen1lin2" "pian1";
|
forest_N = mkN "sēnlín" "piān";
|
||||||
stick_N = mkN "shu4zhi1" ;
|
stick_N = mkN "shùzhī" ;
|
||||||
fruit_N = mkN "shui3guo3" ;
|
fruit_N = mkN "shuǐguǒ" ;
|
||||||
seed_N = mkN "zhong3zi3" "li4";
|
seed_N = mkN "zhǒngzǐ" "lì";
|
||||||
leaf_N = mkN "ye4zi3" "pian1"; -- [mark] "ye4" -> "ye4zi3" , "ye4" is often treated as morpheme
|
leaf_N = mkN "yèzǐ" "piān"; -- [mark] "yè" -> "yèzǐ" , "yè" is often treated as morpheme
|
||||||
root_N = mkN "shu4gen1" ; -- [mark] "gen1" --> "shu4gen1"(tree root)
|
root_N = mkN "shùgēn" ; -- [mark] "gēn" --> "shùgēn"(tree root)
|
||||||
bark_N = mkN "shu4pi2" "kuai1";
|
bark_N = mkN "shùpí" "kuaī";
|
||||||
flower_N = mkN "hua1" "duo3";
|
flower_N = mkN "huā" "duǒ";
|
||||||
grass_N = mkN "cao3" "ke1";
|
grass_N = mkN "caǒ" "kē";
|
||||||
rope_N = mkN "sheng2" "gen1";
|
rope_N = mkN "shéng" "gēn";
|
||||||
skin_N = mkN "pi2" "kuai1";
|
skin_N = mkN "pí" "kuaī";
|
||||||
meat_N = mkN "rou4" "kuai1";
|
meat_N = mkN "roù" "kuaī";
|
||||||
blood_N = mkN "xie3" "di1"; -- [mark] several classifiers, "di1"(drop), "tan1"(puddle)
|
blood_N = mkN "xiě" "dī"; -- [mark] several classifiers, "dī"(drop), "tān"(puddle)
|
||||||
bone_N = mkN "gu3tou2" "kuai1"; -- [mark] "gu3" -> "gu3tou2" , "gu3" is often treated as morpheme
|
bone_N = mkN "gǔtoú" "kuaī"; -- [mark] "gǔ" -> "gǔtoú" , "gǔ" is often treated as morpheme
|
||||||
fat_N = mkN "zhi1fang2" "dui1"; -- [mark] often without classifier
|
fat_N = mkN "zhīfáng" "duī"; -- [mark] often without classifier
|
||||||
egg_N = mkN "dan4" "ke1";
|
egg_N = mkN "dàn" "kē";
|
||||||
horn_N = mkN "jiao3" "gen1";
|
horn_N = mkN "jiaǒ" "gēn";
|
||||||
tail_N = mkN "wei3ba1" "tiao2"; -- [mark] "wei3" -> "wei3ba1" , "wei3" is often treated as morpheme, or if stands alone, it is a classifier itself
|
tail_N = mkN "weǐbā" "tiaó"; -- [mark] "weǐ" -> "weǐbā" , "weǐ" is often treated as morpheme, or if stands alone, it is a classifier itself
|
||||||
feather_N = mkN "yu3mao2" "gen1";
|
feather_N = mkN "yǔmaó" "gēn";
|
||||||
hair_N = mkN "tou2fa1" "gen1"; -- [mark] several classifiers , "gen1"(single hair), "ba3"(several hairs)
|
hair_N = mkN "toúfā" "gēn"; -- [mark] several classifiers , "gēn"(single hair), "bǎ"(several hairs)
|
||||||
head_N = mkN "tou2" "ke1";
|
head_N = mkN "toú" "kē";
|
||||||
ear_N = mkN "er3duo3" "qi2";
|
ear_N = mkN "ěrduǒ" "qí";
|
||||||
eye_N = mkN "yan3jing1" "qi2";
|
eye_N = mkN "yǎnjīng" "qí";
|
||||||
nose_N = mkN "bi2zi3" ;
|
nose_N = mkN "bízǐ" ;
|
||||||
mouth_N = mkN "zui3" "zhang1";
|
mouth_N = mkN "zuǐ" "zhāng";
|
||||||
tooth_N = mkN "ya2chi3" "ke1";
|
tooth_N = mkN "yáchǐ" "kē";
|
||||||
tongue_N = mkN "she2" "gen1";
|
tongue_N = mkN "shé" "gēn";
|
||||||
fingernail_N = mkN "zhi3jia3" "pian1";
|
fingernail_N = mkN "zhǐjiǎ" "piān";
|
||||||
foot_N = mkN "jiao3" "qi2";
|
foot_N = mkN "jiaǒ" "qí";
|
||||||
leg_N = mkN "tui3" "tiao2";
|
leg_N = mkN "tuǐ" "tiaó";
|
||||||
knee_N = mkN "xi1gai4" ; -- [mark] "xi1" -> "xi1gai4"
|
knee_N = mkN "xīgaì" ; -- [mark] "xī" -> "xīgaì"
|
||||||
hand_N = mkN "shou3" "qi2";
|
hand_N = mkN "shoǔ" "qí";
|
||||||
wing_N = mkN "chi4bang3" "qi2"; -- [mark] "yi4" -> "chi4bang3", "chi4bang3" is the common form for wing.
|
wing_N = mkN "chìbǎng" "qí"; -- [mark] "yì" -> "chìbǎng", "chìbǎng" is the common form for wing.
|
||||||
belly_N = mkN "du3zi3" ;
|
belly_N = mkN "dǔzǐ" ;
|
||||||
guts_N = mkN "chang2zi3" "gen1";
|
guts_N = mkN "chángzǐ" "gēn";
|
||||||
neck_N = mkN "bo2zi3" ;
|
neck_N = mkN "bózǐ" ;
|
||||||
back_N = mkN "bei1" ;
|
back_N = mkN "beī" ;
|
||||||
breast_N = mkN "xiong1" ;
|
breast_N = mkN "xiōng" ;
|
||||||
heart_N = mkN "xin1zang1" "ke1";
|
heart_N = mkN "xīnzāng" "kē";
|
||||||
liver_N = mkN "gan1" ;
|
liver_N = mkN "gān" ;
|
||||||
drink_V2 = mkV2 "he1" ;
|
drink_V2 = mkV2 "hē" ;
|
||||||
eat_V2 = mkV2 "chi1" ;
|
eat_V2 = mkV2 "chī" ;
|
||||||
bite_V2 = mkV2 "yao3" ;
|
bite_V2 = mkV2 "yaǒ" ;
|
||||||
suck_V2 = mkV2 "xi1" ;
|
suck_V2 = mkV2 "xī" ;
|
||||||
spit_V = mkV "tu3" ;
|
spit_V = mkV "tǔ" ;
|
||||||
vomit_V = mkV "ou3" ;
|
vomit_V = mkV "oǔ" ;
|
||||||
blow_V = mkV "chui1" ;
|
blow_V = mkV "chuī" ;
|
||||||
breathe_V = mkV "hu1xi1" ;
|
breathe_V = mkV "hūxī" ;
|
||||||
laugh_V = mkV "xiao4" ;
|
laugh_V = mkV "xiaò" ;
|
||||||
see_V2 = mkV2 "kan1" ;
|
see_V2 = mkV2 "kān" ;
|
||||||
hear_V2 = mkV2 "ting1" ;
|
hear_V2 = mkV2 "tīng" ;
|
||||||
think_V = mkV "xiang3" ;
|
think_V = mkV "xiǎng" ;
|
||||||
smell_V = mkV "wen2" ; -- [mark] "xiu4" -> "wen2", "wen2" is the common form for smell.
|
smell_V = mkV "wén" ; -- [mark] "xiù" -> "wén", "wén" is the common form for smell.
|
||||||
fear_V2 = mkV2 "pa4" ;
|
fear_V2 = mkV2 "pà" ;
|
||||||
live_V = mkV "huo2" ;
|
live_V = mkV "huó" ;
|
||||||
die_V = mkV "si3" ;
|
die_V = mkV "sǐ" ;
|
||||||
kill_V2 = mkV2 "sha1" ;
|
kill_V2 = mkV2 "shā" ;
|
||||||
fight_V2 = mkV2 "da2jia4" ; -- [mark] "chao3jia4" -> "da2jia4", "chao3jia4" = quarrel, argue
|
fight_V2 = mkV2 "dájià" ; -- [mark] "chaǒjià" -> "dájià", "chaǒjià" = quarrel, argue
|
||||||
hunt_V2 = mkV2 "da2lie4" ; -- [mark] "da2lie4" is iv, can't think of proper translation in v2 form for hunt
|
hunt_V2 = mkV2 "dáliè" ; -- [mark] "dáliè" is iv, can't think of proper translation in v2 form for hunt
|
||||||
hit_V2 = mkV2 "da2" ;
|
hit_V2 = mkV2 "dá" ;
|
||||||
cut_V2 = mkV2 "ge1" ;
|
cut_V2 = mkV2 "gē" ;
|
||||||
split_V2 = mkV2 "pi1kai1" ;
|
split_V2 = mkV2 "pīkaī" ;
|
||||||
stab_V2 = mkV2 "ci4" ;
|
stab_V2 = mkV2 "cì" ;
|
||||||
scratch_V2 = mkV2 "sao1" ;
|
scratch_V2 = mkV2 "saō" ;
|
||||||
dig_V = mkV "wa1" ;
|
dig_V = mkV "wā" ;
|
||||||
swim_V = mkV "you2yong3" ;
|
swim_V = mkV "yoúyǒng" ;
|
||||||
fly_V = mkV "fei1" ;
|
fly_V = mkV "feī" ;
|
||||||
come_V = mkV "lai2" ;
|
come_V = mkV "laí" ;
|
||||||
lie_V = mkV "tang3" ;
|
lie_V = mkV "tǎng" ;
|
||||||
sit_V = mkV "zuo4" ;
|
sit_V = mkV "zuò" ;
|
||||||
stand_V = mkV "zhan4" ;
|
stand_V = mkV "zhàn" ;
|
||||||
turn_V = mkV "zhuan3" ;
|
turn_V = mkV "zhuǎn" ;
|
||||||
fall_V = mkV "la4xia4" ;
|
fall_V = mkV "làxià" ;
|
||||||
hold_V2 = mkV2 "wo4" ;
|
hold_V2 = mkV2 "wò" ;
|
||||||
squeeze_V2 = mkV2 "ji3" ;
|
squeeze_V2 = mkV2 "jǐ" ;
|
||||||
rub_V2 = mkV2 "rou2" ;
|
rub_V2 = mkV2 "roú" ;
|
||||||
wash_V2 = mkV2 "xi3" ;
|
wash_V2 = mkV2 "xǐ" ;
|
||||||
wipe_V2 = mkV2 "ca1" ;
|
wipe_V2 = mkV2 "cā" ;
|
||||||
pull_V2 = mkV2 "la1" ;
|
pull_V2 = mkV2 "lā" ;
|
||||||
push_V2 = mkV2 "tui1" ;
|
push_V2 = mkV2 "tuī" ;
|
||||||
throw_V2 = mkV2 "reng1" ;
|
throw_V2 = mkV2 "rēng" ;
|
||||||
tie_V2 = mkV2 "bang3" ;
|
tie_V2 = mkV2 "bǎng" ;
|
||||||
sew_V = mkV "feng2" ;
|
sew_V = mkV "féng" ;
|
||||||
count_V2 = mkV2 "shu3" ;
|
count_V2 = mkV2 "shǔ" ;
|
||||||
say_VS = mkVS (mkV "shui4") ;
|
say_VS = mkVS (mkV "shuì") ;
|
||||||
sing_V = mkV "chang4" ;
|
sing_V = mkV "chànggē" ;
|
||||||
play_V = mkV "wan2" ;
|
play_V = mkV "wán" ;
|
||||||
float_V = mkV "fu2" ;
|
float_V = mkV "fú" ;
|
||||||
flow_V = mkV "liu2" ;
|
flow_V = mkV "liú" ;
|
||||||
freeze_V = mkV "jie1bing1" ;
|
freeze_V = mkV "jiēbīng" ;
|
||||||
swell_V = mkV "peng2zhang4" ;
|
swell_V = mkV "péngzhàng" ;
|
||||||
sun_N = mkN "tai4yang2" ;
|
sun_N = mkN "taìyáng" ;
|
||||||
moon_N = mkN "yue4liang4" ;
|
moon_N = mkN "yuèliàng" ;
|
||||||
star_N = mkN "xing1xing1" "ke1";
|
star_N = mkN "xīngxīng" "kē";
|
||||||
water_N = mkN "shui3" "di1";
|
water_N = mkN "shuǐ" "dī";
|
||||||
rain_N = mkN "yu3" "chang3";
|
rain_N = mkN "yǔ" "chǎng";
|
||||||
river_N = mkN "he2" "tiao2";
|
river_N = mkN "hé" "tiaó";
|
||||||
lake_N = mkN "hu2" ;
|
lake_N = mkN "hú" ;
|
||||||
sea_N = mkN "hai3" "pian1";
|
sea_N = mkN "haǐ" "piān";
|
||||||
salt_N = mkN "yan2" "ping2";
|
salt_N = mkN "yán" "píng";
|
||||||
stone_N = mkN "dan4tou2" "kuai1";
|
stone_N = mkN "dàntoú" "kuaī";
|
||||||
sand_N = mkN "sha1" "li4";
|
sand_N = mkN "shā" "lì";
|
||||||
dust_N = mkN "chen2tu3" [];
|
dust_N = mkN "chéntǔ" [];
|
||||||
earth_N = mkN "deqiu2" ;
|
earth_N = mkN "deqiú" ;
|
||||||
cloud_N = mkN "yun2" "duo3";
|
cloud_N = mkN "yún" "duǒ";
|
||||||
fog_N = mkN "wu4" "chang3";
|
fog_N = mkN "wù" "chǎng";
|
||||||
sky_N = mkN "tian1kong1" "pian1";
|
sky_N = mkN "tiānkōng" "piān";
|
||||||
wind_N = mkN "feng1" "zhen4";
|
wind_N = mkN "fēng" "zhèn";
|
||||||
snow_N = mkN "xue3" "chang3";
|
snow_N = mkN "xuě" "chǎng";
|
||||||
ice_N = mkN "bing1" "kuai1";
|
ice_N = mkN "bīng" "kuaī";
|
||||||
smoke_N = mkN "yan1" "zhen4";
|
smoke_N = mkN "yān" "zhèn";
|
||||||
fire_N = mkN "huo3" "chang3";
|
fire_N = mkN "huǒ" "chǎng";
|
||||||
ashes_N = mkN "hui1" [];
|
ashes_N = mkN "huī" [];
|
||||||
burn_V = mkV "shao1" ;
|
burn_V = mkV "shaō" ;
|
||||||
road_N = mkN "lu4" "tiao2";
|
road_N = mkN "lù" "tiaó";
|
||||||
mountain_N = mkN "shan1" "zuo4";
|
mountain_N = mkN "shān" "zuò";
|
||||||
red_A = mkA "hong2" ;
|
red_A = mkA "hóng" ;
|
||||||
yellow_A = mkA "huang2" ;
|
yellow_A = mkA "huáng" ;
|
||||||
white_A = mkA "bai2" ;
|
white_A = mkA "baí" ;
|
||||||
black_A = mkA "hei1" ;
|
black_A = mkA "heī" ;
|
||||||
night_N = mkN "ye4wan3" ; -- [mark] "ye4wan3" 's classifier is "ge4"
|
night_N = mkN "yèwǎn" ; -- [mark] "yèwǎn" 's classifier is "gè"
|
||||||
day_N = mkN "bai2tian1" []; -- [mark] "bai2tian1" -> "tian1", "tian1" itself is classifier
|
day_N = mkN "baítiān" []; -- [mark] "baítiān" -> "tiān", "tiān" itself is classifier
|
||||||
year_N = mkN "nian2" [] ; -- [mark] "nian2" itself is classifier
|
year_N = mkN "nián" [] ; -- [mark] "nián" itself is classifier
|
||||||
warm_A = mkA "wen1nuan3" ;
|
warm_A = mkA "wēnnuǎn" ;
|
||||||
cold_A = mkA "leng3" ;
|
cold_A = mkA "lěng" ;
|
||||||
full_A = mkA "man3" ;
|
full_A = mkA "mǎn" ;
|
||||||
new_A = mkA "xin1" ;
|
new_A = mkA "xīn" ;
|
||||||
old_A = mkA "lao3" ; -- [mark] "lao3" for person, "jiu4" for things
|
old_A = mkA "laǒ" ; -- [mark] "laǒ" for person, "jiù" for things
|
||||||
good_A = mkA "hao3" ;
|
good_A = mkA "haǒ" ;
|
||||||
bad_A = mkA "huai4" ;
|
bad_A = mkA "huaì" ;
|
||||||
rotten_A = mkA "lan4" ;
|
rotten_A = mkA "làn" ;
|
||||||
dirty_A = mkA "zang1" ;
|
dirty_A = mkA "zāng" ;
|
||||||
straight_A = mkA "zhi2" ;
|
straight_A = mkA "zhí" ;
|
||||||
round_A = mkA "yuan2" ;
|
round_A = mkA "yuán" ;
|
||||||
sharp_A = mkA "jian1" ;
|
sharp_A = mkA "jiān" ;
|
||||||
dull_A = mkA "dun4" ;
|
dull_A = mkA "dùn" ;
|
||||||
smooth_A = mkA "guang1gu3" ;
|
smooth_A = mkA "guānggǔ" ;
|
||||||
wet_A = mkA "shi1" ;
|
wet_A = mkA "shī" ;
|
||||||
dry_A = mkA "gan1" ;
|
dry_A = mkA "gān" ;
|
||||||
correct_A = mkA "dui4" ;
|
correct_A = mkA "duì" ;
|
||||||
near_A = mkA "jin4" ;
|
near_A = mkA "jìn" ;
|
||||||
--far_A = mkA "yuan3" ;
|
--far_A = mkA "yuǎn" ;
|
||||||
left_Ord = ss "zuo3" ;
|
left_Ord = ss "zuǒ" ;
|
||||||
right_Ord = ss "you4" ;
|
right_Ord = ss "yoù" ;
|
||||||
name_N = mkN "ming2zi4" ; -- [mark] "ming2" --> "ming2zi4"
|
name_N = mkN "míngzì" ; -- [mark] "míng" --> "míngzì"
|
||||||
|
|
||||||
-- HSK
|
-- HSK
|
||||||
|
|
||||||
add_V3 = mkV3 "jia1" ;
|
add_V3 = mkV3 "jiā" ;
|
||||||
airplane_N = mkN "fei1ji1" "jia4";
|
airplane_N = mkN "feījī" "jià";
|
||||||
already_Adv = mkAdv "yi3jing1" ;
|
already_Adv = mkAdv "yǐjīng" ;
|
||||||
answer_V2S = mkV2S (mkV "hui2da1") ;
|
answer_V2S = mkV2S (mkV "huídā") ;
|
||||||
apple_N = mkN "pin2guo3" ;
|
apple_N = mkN "pínguǒ" ;
|
||||||
art_N = mkN "yi4shu4" []; -- [mark] usually without classifier
|
art_N = mkN "yìshù" []; -- [mark] usually without classifier
|
||||||
ask_V2Q = mkV2Q (mkV "wen4") ;
|
ask_V2Q = mkV2Q (mkV "wèn") ;
|
||||||
bank_N = mkN "yin2hang2" "jian1";
|
bank_N = mkN "yínháng" "jiān";
|
||||||
beautiful_A = mkA "piao1liang4" ;
|
beautiful_A = mkA "piaōliàng" ;
|
||||||
become_VA = mkV "bian4" ;
|
become_VA = mkV "biàn" ;
|
||||||
beer_N = mkN "pi2jiu3" "bei1";
|
beer_N = mkN "píjiǔ" "beī";
|
||||||
bike_N = mkN "zi4hang2che1" "tai2";
|
bike_N = mkN "zìhángchē" "taí";
|
||||||
blue_A = mkA "la" ;
|
blue_A = mkA "la" ;
|
||||||
boat_N = mkN "chuan2" "sao1";
|
boat_N = mkN "chuán" "saō";
|
||||||
book_N = mkN "shu1" "ben3";
|
book_N = mkN "shū" "běn";
|
||||||
bread_N = mkN "mian4bao1" ;
|
bread_N = mkN "miànbaō" ;
|
||||||
buy_V2 = mkV2 "mai3" ;
|
buy_V2 = mkV2 "maǐ" ;
|
||||||
cap_N = mkN "mao4zi3" "ding3";
|
cap_N = mkN "maòzǐ" "dǐng";
|
||||||
car_N = mkN "qi4che1" "tai2";
|
car_N = mkN "qìchē" "taí";
|
||||||
chair_N = mkN "yi3zi3" "ba3";
|
chair_N = mkN "yǐzǐ" "bǎ";
|
||||||
city_N = mkN "cheng2shi4" ; -- [mark] "shi4" --> "cheng2shi4"
|
city_N = mkN "chéngshì" ; -- [mark] "shì" --> "chéngshì"
|
||||||
clean_A = mkA "gan1jing4" ;
|
clean_A = mkA "gānjìng" ;
|
||||||
coat_N = mkN "yi1fu2" "jian4";
|
coat_N = mkN "yīfú" "jiàn";
|
||||||
country_N = mkN "guo2jia1" ; -- [mark] "guo2" --> "guo2jia1"
|
country_N = mkN "guójiā" ; -- [mark] "guó" --> "guójiā"
|
||||||
cow_N = mkN "niu2" "tou2";
|
cow_N = mkN "niú" "toú";
|
||||||
do_V2 = mkV2 "zuo4" ;
|
do_V2 = mkV2 "zuò" ;
|
||||||
doctor_N = mkN "yi1sheng1" "ming2";
|
doctor_N = mkN "yīshēng" "míng";
|
||||||
door_N = mkN "men2" "shan1";
|
door_N = mkN "mén" "shān";
|
||||||
factory_N = mkN "gong1chang3" "jian1";
|
factory_N = mkN "gōngchǎng" "jiān";
|
||||||
far_Adv = mkAdv "yuan3" ;
|
far_Adv = mkAdv "yuǎn" ;
|
||||||
fear_VS = mkVS (mkV "pa4") ;
|
fear_VS = mkVS (mkV "pà") ;
|
||||||
find_V2 = mkV2 "fa1xian4" ;
|
find_V2 = mkV2 "fāxiàn" ;
|
||||||
forget_V2 = mkV2 "wang4" ;
|
forget_V2 = mkV2 "wàng" ;
|
||||||
friend_N = mkN "peng2you3" ;
|
friend_N = mkN "péngyoǔ" ;
|
||||||
girl_N = mkN "gu1niang2" ;
|
girl_N = mkN "gūniáng" ;
|
||||||
give_V3 = mkV3 "gei3" ;
|
give_V3 = mkV3 "geǐ" ;
|
||||||
go_V = mkV "qu4" ;
|
go_V = mkV "qù" ;
|
||||||
grammar_N = mkN "yu3fa3" ;
|
grammar_N = mkN "yǔfǎ" ;
|
||||||
hat_N = mkN "mao4zi3" "ding3";
|
hat_N = mkN "maòzǐ" "dǐng";
|
||||||
hill_N = mkN "shan1" "zuo4";
|
hill_N = mkN "shān" "zuò";
|
||||||
hope_VS = mkV "xi1wang4" ;
|
hope_VS = mkV "xīwàng" ;
|
||||||
horse_N = mkN "ma3" "pi1";
|
horse_N = mkN "mǎ" "pī";
|
||||||
hot_A = mkA "re4" ;
|
hot_A = mkA "rè" ;
|
||||||
important_A = mkA "chong2yao1" ;
|
important_A = mkA "chóngyaō" ;
|
||||||
industry_N = mkN "gong1ye4" [];
|
industry_N = mkN "gōngyè" [];
|
||||||
jump_V = mkV "tiao4" ;
|
jump_V = mkV "tiaò" ;
|
||||||
know_V2 = mkV2 "zhi1dao4" ;
|
know_V2 = mkV2 "zhīdaò" ;
|
||||||
know_VQ = mkV "zhi1dao4" ;
|
know_VQ = mkV "zhīdaò" ;
|
||||||
lamp_N = mkN "deng1" "zhan3";
|
lamp_N = mkN "dēng" "zhǎn";
|
||||||
language_N = mkN "yu3yan2" "zhong3";
|
language_N = mkN "yǔyán" "zhǒng";
|
||||||
learn_V2 = mkV2 "xue2" ;
|
learn_V2 = mkV2 "xué" ;
|
||||||
leave_V2 = mkV2 "li2kai1" ; --[mark] "li2" --> "li2kai1", "li2" itself is either a morpheme, or a marker indicating distance
|
leave_V2 = mkV2 "líkaī" ; --[mark] "lí" --> "líkaī", "lí" itself is either a morpheme, or a marker indicating distance
|
||||||
like_V2 = mkV2 "xi3huan1" ;
|
like_V2 = mkV2 "xǐhuān" ;
|
||||||
listen_V2 = mkV2 "ting1" ;
|
listen_V2 = mkV2 "tīng" ;
|
||||||
lose_V2 = mkV2 "diu1" ;
|
lose_V2 = mkV2 "diū" ;
|
||||||
love_V2 = mkV2 "ai4" ;
|
love_V2 = mkV2 "aì" ;
|
||||||
music_N = mkN "yin1le4" [] ; -- [mark] usually without classifier
|
music_N = mkN "yīnlè" [] ; -- [mark] usually without classifier
|
||||||
newspaper_N = mkN "bao4zhi3" "zhang1"; --[mark] "bao4" --> "bao4zhi3"
|
newspaper_N = mkN "baòzhǐ" "zhāng"; --[mark] "baò" --> "baòzhǐ"
|
||||||
now_Adv = mkAdv "xian4zai4" ;
|
now_Adv = mkAdv "xiànzaì" timeAdvType ;
|
||||||
number_N = mkN "hao2ma3" ; -- [mark] "hao2" --> "hao2ma3"
|
number_N = mkN "haómǎ" ; -- [mark] "haó" --> "haómǎ"
|
||||||
open_V2 = mkV2 "kai1" ;
|
open_V2 = mkV2 "kaī" ;
|
||||||
paint_V2A = mkV2A (mkV "hua4") ;
|
paint_V2A = mkV2A (mkV "huà") ;
|
||||||
paper_N = mkN "zhi3" "zhang1";
|
paper_N = mkN "zhǐ" "zhāng";
|
||||||
pen_N = mkN "bi3" "qi2";
|
pen_N = mkN "bǐ" "qí";
|
||||||
person_N = mkN "ren2" ;
|
person_N = mkN "rén" ;
|
||||||
play_V2 = mkV2 "wan2" ; --[mark] "wan2er2" --> "wan2"
|
play_V2 = mkV2 "wán" ; --[mark] "wánér" --> "wán"
|
||||||
put_V2 = mkV2 "bai3" ;
|
put_V2 = mkV2 "baǐ" ;
|
||||||
question_N = mkN "wen4ti2" ;
|
question_N = mkN "wèntí" ;
|
||||||
|
|
||||||
rain_V0 = mkV "xia4yu3";
|
rain_V0 = mkV "xiàyǔ";
|
||||||
read_V2 = mkV2 "dou4" ;
|
read_V2 = mkV2 "doù" ;
|
||||||
reason_N = mkN "dao4li3" ;
|
reason_N = mkN "daòlǐ" ;
|
||||||
restaurant_N = mkN "fan4dian4" "jian1";
|
restaurant_N = mkN "fàndiàn" "jiān";
|
||||||
run_V = mkV "pao3" ;
|
run_V = mkV "paǒ" ;
|
||||||
school_N = mkN "xue2jiao4" "suo3";
|
school_N = mkN "xuéjiaò" "suǒ";
|
||||||
science_N = mkN "ke1xue2" []; -- [mark] usually without classifier
|
science_N = mkN "kēxué" []; -- [mark] usually without classifier
|
||||||
sell_V3 = mkV3 "mai4" ;
|
sell_V3 = mkV3 "maì" ;
|
||||||
send_V3 = mkV3 "ji4" ;
|
send_V3 = mkV3 "jì" ;
|
||||||
sheep_N = mkN "yang2" "qi2";
|
sheep_N = mkN "yáng" "qí";
|
||||||
ship_N = mkN "chuan2" "sao1";
|
ship_N = mkN "chuán" "saō";
|
||||||
shoe_N = mkN "xie2" "qi2";
|
shoe_N = mkN "xié" "qí";
|
||||||
shop_N = mkN "shang1dian4" "jian1";
|
shop_N = mkN "shāngdiàn" "jiān";
|
||||||
song_N = mkN "ge1" "shou3";
|
song_N = mkN "gē" "shoǔ";
|
||||||
speak_V2 = mkV2 "shui4" ;
|
speak_V2 = mkV2 "shuì" ;
|
||||||
student_N = mkN "xue2sheng1" "ming2" ;
|
student_N = mkN "xuéshēng" "míng" ;
|
||||||
table_N = mkN "zhuo1zi3" "zhang1";
|
table_N = mkN "zhuōzǐ" "zhāng";
|
||||||
talk_V3 = mkV3 "shui4" ;
|
talk_V3 = mkV3 "shuì" ;
|
||||||
teach_V2 = mkV2 "jiao1" ;
|
teach_V2 = mkV2 "jiaō" ;
|
||||||
teacher_N = mkN "lao3shi1" "ming2";
|
teacher_N = mkN "laǒshī" "míng";
|
||||||
television_N = mkN "dian4shi4" "tai2";
|
television_N = mkN "diànshì" "taí";
|
||||||
today_Adv = mkAdv "jin1tian1" ;
|
today_Adv = mkAdv "jīntiān" timeAdvType ;
|
||||||
train_N = mkN "huo3che1" "liang4";
|
train_N = mkN "huǒchē" "liàng";
|
||||||
travel_V = mkV "lu:3hang2" ;
|
travel_V = mkV "lǚháng" ;
|
||||||
understand_V2 = mkV2 "dong3" ;
|
understand_V2 = mkV2 "dǒng" ;
|
||||||
university_N = mkN "da4xue2" "suo3";
|
university_N = mkN "dàxué" "suǒ";
|
||||||
wait_V2 = mkV2 "deng3" ;
|
wait_V2 = mkV2 "děng" ;
|
||||||
watch_V2 = mkV2 "kan1" ;
|
watch_V2 = mkV2 "kān" ;
|
||||||
win_V2 = mkV2 "ying2" ;
|
win_V2 = mkV2 "yíng" ;
|
||||||
window_N = mkN "chuang1" "shan1";
|
window_N = mkN "chuāng" "shān";
|
||||||
wine_N = mkN "jiu3" "ping2";
|
wine_N = mkN "jiǔ" "píng";
|
||||||
write_V2 = mkV2 "xie3" ;
|
write_V2 = mkV2 "xiě" ;
|
||||||
young_A = mkA "nian2qing1" ;
|
young_A = mkA "niánqīng" ;
|
||||||
|
|
||||||
-- from Google
|
-- from Google
|
||||||
|
|
||||||
apartment_N = mkN "gong1yu4" "jian1" ;
|
apartment_N = mkN "gōngyù" "jiān" ;
|
||||||
baby_N = mkN "ying1er2" ;
|
baby_N = mkN "yīngér" ;
|
||||||
boot_N = mkN "xue1zi3" "qi2" ; -- [mark] "ji1" --> "xue1zi3"
|
boot_N = mkN "xuēzǐ" "qí" ; -- [mark] "jī" --> "xuēzǐ"
|
||||||
boss_N = mkN "lao3ban3" ;
|
boss_N = mkN "laǒbǎn" ;
|
||||||
boy_N = mkN "nan2hai2" ;
|
boy_N = mkN "nánhaí" ;
|
||||||
brother_N2 = mkN2 "di4di4" ;
|
brother_N2 = mkN2 "dìdì" ;
|
||||||
butter_N = mkN "huang2you2" "he2";
|
butter_N = mkN "huángyoú" "hé";
|
||||||
camera_N = mkN "she4xiang4tou2" ;
|
camera_N = mkN "shèxiàngtoú" ;
|
||||||
carpet_N = mkN "detan3" "zhang1";
|
carpet_N = mkN "detǎn" "zhāng";
|
||||||
cat_N = mkN "mao1" "qi2" ;
|
cat_N = mkN "maō" "qí" ;
|
||||||
ceiling_N = mkN "tian1hua1ban3" ; --[mark] "tian1hua1ban3shang4" --> "tian1hua1ban3"
|
ceiling_N = mkN "tiānhuābǎn" ; --[mark] "tiānhuābǎnshàng" --> "tiānhuābǎn"
|
||||||
cheese_N = mkN "nai3lao4" "kuai1";
|
cheese_N = mkN "naǐlaò" "kuaī";
|
||||||
church_N = mkN "jiao1tang2" "suo3" ;
|
church_N = mkN "jiaōtáng" "suǒ" ;
|
||||||
computer_N = mkN "ji4suan4ji1" "tai2" ;
|
computer_N = mkN "jìsuànjī" "taí" ;
|
||||||
cousin_N = mkN "biao3di4" ;
|
cousin_N = mkN "biaǒdì" ;
|
||||||
distance_N3 = mkN3 (mkN "deju4li2") emptyPrep emptyPrep ; ----
|
distance_N3 = mkN3 (mkN "dejùlí") emptyPrep emptyPrep ; ----
|
||||||
enemy_N = mkN "di2ren2" ;
|
enemy_N = mkN "dírén" ;
|
||||||
father_N2 = mkN2 "fu4qin1" ;
|
father_N2 = mkN2 "fùqīn" ;
|
||||||
floor_N = mkN "deban3" ; -- [mark] floor "deban3"(have you cleaned the floor) "lou2ceng2"(which floor do you live?)
|
floor_N = mkN "debǎn" ; -- [mark] floor "debǎn"(have you cleaned the floor) "loúcéng"(which floor do you live?)
|
||||||
fridge_N = mkN "bing1xiang1" "tai2" ;
|
fridge_N = mkN "bīngxiāng" "taí" ;
|
||||||
garden_N = mkN "hua1yuan2" "zuo4";
|
garden_N = mkN "huāyuán" "zuò";
|
||||||
glove_N = mkN "shou3tao4" "fu4";
|
glove_N = mkN "shoǔtaò" "fù";
|
||||||
gold_N = mkN "jin1zi3" "kuai1"; -- [mark] also without classifier
|
gold_N = mkN "jīnzǐ" "kuaī"; -- [mark] also without classifier
|
||||||
harbour_N = mkN "hai3gang3" ;
|
harbour_N = mkN "haǐgǎng" ;
|
||||||
iron_N = mkN "tie3" "kuai1"; -- [mark] also without classifier
|
iron_N = mkN "tiě" "kuaī"; -- [mark] also without classifier
|
||||||
king_N = mkN "guo2wang2" ;
|
king_N = mkN "guówáng" ;
|
||||||
leather_N = mkN "pi2ge2" "kuai1";
|
leather_N = mkN "pígé" "kuaī";
|
||||||
love_N = mkN "ai4" [] ; -- [mark] "kuai1" --> [], often without classifier
|
love_N = mkN "aì" [] ; -- [mark] "kuaī" --> [], often without classifier
|
||||||
milk_N = mkN "niu2nai3" "bei1" ; -- [mark] "nai3" --> "niu2nai3", which literaly means cow milk
|
milk_N = mkN "niúnaǐ" "beī" ; -- [mark] "naǐ" --> "niúnaǐ", which literaly means cow milk
|
||||||
mother_N2 = mkN2 "mu3qin1";
|
mother_N2 = mkN2 "mǔqīn";
|
||||||
oil_N = mkN "you2" "tong3" ; -- [mark] rewritten
|
oil_N = mkN "yoú" "tǒng" ; -- [mark] rewritten
|
||||||
peace_N = mkN "he2ping2" []; -- [mark] often without classifier
|
peace_N = mkN "hépíng" []; -- [mark] often without classifier
|
||||||
planet_N = mkN "xing1qiu2" ;
|
planet_N = mkN "xīngqiú" ;
|
||||||
plastic_N = mkN "su4liao4" "kuai1"; -- [mark] "su4liao4zhi4cheng2" --> "su4liao4" often without classifier
|
plastic_N = mkN "sùliaò" "kuaī"; -- [mark] "sùliaòzhìchéng" --> "sùliaò" often without classifier
|
||||||
policeman_N = mkN "jing3cha2" "ming2" ;
|
policeman_N = mkN "jǐngchá" "míng" ;
|
||||||
priest_N = mkN "mu4shi1" "wei4";
|
priest_N = mkN "mùshī" "weì";
|
||||||
queen_N = mkN "nu:3wang2" ;
|
queen_N = mkN "nǚwáng" ;
|
||||||
radio_N = mkN "shou1yin1ji1" "tai2" ;
|
radio_N = mkN "shoūyīnjī" "taí" ;
|
||||||
religion_N = mkN "zong1jiao1" []; -- [mark] also without classifier
|
religion_N = mkN "zōngjiaō" []; -- [mark] also without classifier
|
||||||
rock_N = mkN "dan4tou2" "kuai1" ;
|
rock_N = mkN "dàntoú" "kuaī" ;
|
||||||
roof_N = mkN "wu1ding3" ;
|
roof_N = mkN "wūdǐng" ;
|
||||||
rubber_N = mkN "xiang4jiao1" "kuai1";
|
rubber_N = mkN "xiàngjiaō" "kuaī";
|
||||||
rule_N = mkN "gui1ze2" "xiang4"; -- [mark] "yuan2ze2" --> "gui1ze2"
|
rule_N = mkN "guīzé" "xiàng"; -- [mark] "yuánzé" --> "guīzé"
|
||||||
shirt_N = mkN "chen4shan1" "jian4" ;
|
shirt_N = mkN "chènshān" "jiàn" ;
|
||||||
silver_N = mkN "yin2zi3" "kuai1"; -- [mark] "yin2" --> "yin2zi3"
|
silver_N = mkN "yínzǐ" "kuaī"; -- [mark] "yín" --> "yínzǐ"
|
||||||
sister_N = mkN "mei4mei4" ;
|
sister_N = mkN "meìmeì" ;
|
||||||
sock_N = mkN "wa4zi3" "qi2";
|
sock_N = mkN "wàzǐ" "qí";
|
||||||
steel_N = mkN "gang1" "kuai1";
|
steel_N = mkN "gāng" "kuaī";
|
||||||
stove_N = mkN "lu2zi3" ;
|
stove_N = mkN "lúzǐ" ;
|
||||||
village_N = mkN "cun1zhuang1" "zuo4";
|
village_N = mkN "cūnzhuāng" "zuò";
|
||||||
war_N = mkN "zhan4zheng1" "chang3" ; -- [mark] rewritten
|
war_N = mkN "zhànzhēng" "chǎng" ; -- [mark] rewritten
|
||||||
wood_N = mkN "mu4tou2" "kuai1" ; -- [mark] "mu4" --> "mu4tou2"
|
wood_N = mkN "mùtoú" "kuaī" ; -- [mark] "mù" --> "mùtoú"
|
||||||
|
|
||||||
|
|
||||||
-- from scratch, by Jolene
|
-- from scratch, by Jolene
|
||||||
|
|
||||||
lin
|
lin
|
||||||
alas_Interj = ssword "ai1" ;
|
alas_Interj = ssword "aī" ;
|
||||||
beg_V2V = mkV2V (mkV "qi3qiu2") ; -- beg him to do something
|
beg_V2V = mkV2V (mkV "qǐqiú") ; -- beg him to do something
|
||||||
break_V2 = mkV2 "da2po4" ;
|
break_V2 = mkV2 "dápò" ;
|
||||||
broad_A = mkA "kuan1" ;
|
broad_A = mkA "kuān" ;
|
||||||
brown_A = mkA "zong1" ;
|
brown_A = mkA "zōng" ;
|
||||||
clever_A = mkA "cong1ming2" ;
|
clever_A = mkA "cōngmíng" ;
|
||||||
close_V2 = mkV2 "guan1bi4" ;
|
close_V2 = mkV2 "guānbì" ;
|
||||||
easy_A2V = mkA2 "jian3chan2" ;
|
easy_A2V = mkA2 "jiǎnchán" ;
|
||||||
empty_A = mkA "kong1" ;
|
empty_A = mkA "kōng" ;
|
||||||
fun_AV = mkA "you3qu4" ;
|
fun_AV = mkA "yoǔqù" ;
|
||||||
hate_V2 = mkV2 "tao3yan4" ;
|
hate_V2 = mkV2 "taǒyàn" ;
|
||||||
married_A2 = mkA2 "jie1hun1" ;
|
married_A2 = mkA2 "jiēhūn" ;
|
||||||
paris_PN = mkPN "ba1li2" ;
|
paris_PN = mkPN "bālí" ;
|
||||||
probable_AS = mkA "ke3neng2" ;
|
probable_AS = mkA "kěnéng" ;
|
||||||
ready_A = mkA "zhun3bei4hao3" ; -- [mark] "zhun3bei4hao3": 准备(v) + 好(adj,complement)
|
ready_A = mkA "zhǔnbeìhaǒ" ; -- [mark] "zhǔnbeìhaǒ": 准备(v) + 好(adj,complement)
|
||||||
seek_V2 = mkV2 "xun2qiu2" ;
|
seek_V2 = mkV2 "xúnqiú" ;
|
||||||
stop_V = mkV "ting2zhi3" ;
|
stop_V = mkV "tíngzhǐ" ;
|
||||||
stupid_A = mkA "ben4" ;
|
stupid_A = mkA "bèn" ;
|
||||||
switch8off_V2 = mkV2 "guan1" ;
|
switch8off_V2 = mkV2 "guān" ;
|
||||||
switch8on_V2 = mkV2 "kai1" ;
|
switch8on_V2 = mkV2 "kaī" ;
|
||||||
ugly_A = mkA "chou3" ;
|
ugly_A = mkA "choǔ" ;
|
||||||
uncertain_A = mkA "bu4que4ding4" ; -- [mark] "bu4que4ding4": 不("un-") + 确定("certain")
|
uncertain_A = mkA "bùquèdìng" ; -- [mark] "bùquèdìng": 不("un-") + 确定("certain")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,12 +12,12 @@ main = do
|
|||||||
pinyinFile = "pinyin.txt"
|
pinyinFile = "pinyin.txt"
|
||||||
|
|
||||||
resModules = [mo | mo <-
|
resModules = [mo | mo <-
|
||||||
["DictEng","Extra","Lexicon", "Numeral", "Paradigms","Res", "Structural","Symbol"]
|
["Extra","Lexicon", "Numeral", "Paradigms","Res", "Structural","Symbol"]
|
||||||
]
|
]
|
||||||
|
|
||||||
mkPinyin ma mo = do
|
mkPinyin ma mo = do
|
||||||
s <- readFile mo
|
s <- readFile ("../" ++ mo ++ "Chi.gf")
|
||||||
writeFile (mo ++ "-cmn") (useMapGF ma s)
|
writeFile ("tmp/" ++ mo ++ "Chi.gf") (useMapGF ma s)
|
||||||
|
|
||||||
|
|
||||||
--import Pinyin (c2pMap, useMapGF, mkList)
|
--import Pinyin (c2pMap, useMapGF, mkList)
|
||||||
@@ -46,7 +46,38 @@ useMapGF m s = case s of
|
|||||||
where
|
where
|
||||||
convert cs = case cs of
|
convert cs = case cs of
|
||||||
'"':s -> '"' : useMapGF m s
|
'"':s -> '"' : useMapGF m s
|
||||||
c :s -> maybe [c] (head . words) (Map.lookup [c] m) ++ convert s
|
c :s -> maybe [c] (tone2tone . head . words) (Map.lookup [c] m) ++ convert s
|
||||||
_ -> cs
|
_ -> cs
|
||||||
|
|
||||||
c2pMap ws = Map.fromList [(c,unwords ps) | (_,(c,ps)) <- ws]
|
c2pMap ws = Map.fromList [(c,unwords ps) | (_,(c,ps)) <- ws]
|
||||||
|
|
||||||
|
-- from numeric tones to diacritics
|
||||||
|
tone2tone :: String -> String
|
||||||
|
tone2tone = combine . change . analyse where
|
||||||
|
analyse :: String -> [String] -- four parts: ch,a,ng,1
|
||||||
|
analyse s = case reverse s of
|
||||||
|
i:'r': v:x | elem i "1234" -> [reverse x,[v],"r", [i]]
|
||||||
|
i:'n': v:x | elem i "1234" -> [reverse x,[v],"n", [i]]
|
||||||
|
i:'g':'n':v:x | elem i "1234" -> [reverse x,[v],"ng",[i]]
|
||||||
|
i: v:x | elem i "1234" -> [reverse x,[v],"", [i]]
|
||||||
|
'r': v:x -> [reverse x,[v],"r", []]
|
||||||
|
'n': v:x -> [reverse x,[v],"n", []]
|
||||||
|
'g':'n': v:x -> [reverse x,[v],"ng",[]]
|
||||||
|
v :x -> [reverse x,[v],"", []]
|
||||||
|
_ -> error $ "illegal pinyin: " ++ s
|
||||||
|
|
||||||
|
change ss@[x,[v],ng,i] = case i of
|
||||||
|
[] -> ss
|
||||||
|
_ -> [x,[accent v !! (read i - 1)],ng]
|
||||||
|
|
||||||
|
combine = concat
|
||||||
|
|
||||||
|
accent v = case v of
|
||||||
|
'a' -> "āáǎà"
|
||||||
|
'e' -> "ēéěè"
|
||||||
|
'i' -> "īíǐì"
|
||||||
|
'o' -> "ōóǒò"
|
||||||
|
'u' -> "ūúǔù"
|
||||||
|
'ü' -> "ǖǘǚǜ"
|
||||||
|
'v' -> "ǖǘǚǜ"
|
||||||
|
_ -> error $ "no accents for " ++ [v]
|
||||||
|
|||||||
@@ -7,19 +7,19 @@ param Qform = bai | bai0 | shiwan | shiwan0 ;
|
|||||||
param Bform = shi | shi0 | wan | wan0 ;
|
param Bform = shi | shi0 | wan | wan0 ;
|
||||||
param Zero = zero | nozero ;
|
param Zero = zero | nozero ;
|
||||||
oper ling : Zero * Zero => Str =
|
oper ling : Zero * Zero => Str =
|
||||||
table {<zero,z> => "ling2" ;
|
table {<zero,z> => "líng" ;
|
||||||
<z,zero> => "ling2" ;
|
<z,zero> => "líng" ;
|
||||||
<nozero,nozero> => []} ;
|
<nozero,nozero> => []} ;
|
||||||
oper Wan : Zero => Str =
|
oper Wan : Zero => Str =
|
||||||
table {zero => "wan4" ;
|
table {zero => "wàn" ;
|
||||||
nozero => []} ;
|
nozero => []} ;
|
||||||
|
|
||||||
oper mkD : Str -> Str -> Str = \x,_ -> word x ; -- hiding the "formal" version
|
oper mkD : Str -> Str -> Str = \x,_ -> word x ; -- hiding the "formal" version
|
||||||
|
|
||||||
lincat Digit = {s,p : Str} ;
|
lincat Digit = {s,p : Str} ; -- s/p: without/with classifier (er/liang)
|
||||||
lincat Sub10 = {s,p : Str} ;
|
lincat Sub10 = {s,p,t : Str} ; -- t: with "shi wan"
|
||||||
lincat Sub100 = {inh : Zero ; s,p : Bform => Str} ;
|
lincat Sub100 = {end0,beg0 : Zero ; s,p : Bform => Str} ; -- end0: ends with zeros, e.g. 20 ; beg0: begins with zeros, e.g. 02
|
||||||
lincat Sub1000 = {inh : Zero ; s,p : Qform => Str} ;
|
lincat Sub1000 = {end0,beg0 : Zero ; s,p : Qform => Str} ; -- end0: ends with zeros, e.g. 210 ; beg0: begins with zeros, e.g. 021
|
||||||
lincat Sub1000000 = {s,p : Str} ;
|
lincat Sub1000000 = {s,p : Str} ;
|
||||||
lin num x0 = x0 ;
|
lin num x0 = x0 ;
|
||||||
|
|
||||||
@@ -27,105 +27,116 @@ lin num x0 = x0 ;
|
|||||||
--
|
--
|
||||||
|
|
||||||
lin n2 =
|
lin n2 =
|
||||||
{s = mkD "er4" "er4" ; p = "liang3"} ;
|
{s = mkD "èr" "èr" ; p = "liǎng"} ;
|
||||||
lin n3 =
|
lin n3 =
|
||||||
{s,p = mkD "san1" "san1"} ;
|
{s,p = mkD "sān" "sān"} ;
|
||||||
lin n4 =
|
lin n4 =
|
||||||
{s,p = mkD "si4" "si4"} ;
|
{s,p = mkD "sì" "sì"} ;
|
||||||
lin n5 =
|
lin n5 =
|
||||||
{s,p = mkD "wu3" "wu3"} ;
|
{s,p = mkD "wǔ" "wǔ"} ;
|
||||||
lin n6 =
|
lin n6 =
|
||||||
{s,p = mkD "liu4" "liu4"} ;
|
{s,p = mkD "liù" "liù"} ;
|
||||||
lin n7 =
|
lin n7 =
|
||||||
{s,p = mkD "qi1" "qi1"} ;
|
{s,p = mkD "qī" "qī"} ;
|
||||||
lin n8 =
|
lin n8 =
|
||||||
{s,p = mkD "ba1" "ba1"} ;
|
{s,p = mkD "bā" "bā"} ;
|
||||||
lin n9 =
|
lin n9 =
|
||||||
{s,p = mkD "jiu3" "jiu3"} ;
|
{s,p = mkD "jiǔ" "jiǔ"} ;
|
||||||
lin pot01 =
|
lin pot01 =
|
||||||
{s,p = mkD "yi1" "yi1"} ;
|
{s,p = mkD "yī" "yī" ; t = []} ; -- t used in "(*yi) shi wan"
|
||||||
lin pot0 d =
|
lin pot0 d =
|
||||||
{s = d.s ; p = d.p} ;
|
{s,t = d.s ; p = d.p} ;
|
||||||
lin pot110 =
|
lin pot110 =
|
||||||
{inh = nozero ;
|
{beg0 = nozero ; end0 = zero ;
|
||||||
s,p = table {
|
s,p = table {
|
||||||
shi => mkD "yi1shi2" "yi1shi2" ;
|
shi => mkD "shí" "shí" ;
|
||||||
shi0 => mkD "yi1shi2" "yi1shi2" ;
|
shi0 => mkD "yīshí" "yīshí" ;
|
||||||
wan => mkD "yi1wan4" "yi1wan4" ;
|
wan => mkD "yīwàn" "yīwàn" ;
|
||||||
wan0 => mkD "yi1wan4" "yi1wan4"}} ;
|
wan0 => mkD "yīwàn" "yīwàn"
|
||||||
|
}} ;
|
||||||
lin pot111 =
|
lin pot111 =
|
||||||
{inh = nozero ;
|
{beg0 = nozero ; end0 = nozero ;
|
||||||
s,p = table {
|
s,p = table {
|
||||||
shi => mkD "shi2yi1" "shi2yi1" ;
|
shi => mkD "shíyī" "shíyī" ;
|
||||||
shi0 => mkD "yi1shi2yi1" "yi1shi2yi1" ;
|
shi0 => mkD "yīshíyī" "yīshíyī" ;
|
||||||
wan => mkD "yi1wan4yi1qian1" "yi1wan4yi1qian1" ; -- 11.16 by chenpeng wan => mkD "shi2yi1wan4" "shi2yi1wan4" ;
|
wan => mkD "yīwànyīqiān" "yīwànyīqiān" ; -- 11.16 by chenpeng wan => mkD "shíyīwàn" "shíyīwàn" ;
|
||||||
wan0 => mkD "yi1wan4yi1qian1" "yi1wan4yi1qian1"}} ; -- 11.16 by chenpeng wan0 => mkD "shi2yi1wan4" "shi2yi1wan4"}} ;
|
wan0 => mkD "yīwànyīqiān" "yīwànyīqiān"
|
||||||
|
}} ; -- 11.16 by chenpeng wan0 => mkD "shíyīwàn" "shíyīwàn"}} ;
|
||||||
lin pot1to19 d =
|
lin pot1to19 d =
|
||||||
{inh = nozero ;
|
{beg0 = nozero ; end0 = nozero ;
|
||||||
s,p = table {
|
s,p = table {
|
||||||
shi => mkD "yi1shi2" "yi1shi2" ++ d.s ;
|
shi => mkD "shí" "yīshí" ++ d.s ;
|
||||||
shi0 => mkD "yi1shi2" "yi1shi2" ;
|
shi0 => mkD "yīshí" "yīshí" ++ d.s ;
|
||||||
wan => mkD "yi1wan4" "yi1wan4" ++ d.s ++ mkD "qian1" "qian1" ;
|
wan => mkD "yīwàn" "yīwàn" ++ d.s ++ mkD "qiān" "qiān" ;
|
||||||
wan0 => mkD "yi1wan4" "yi1wan4" ++ d.s ++ mkD "qian1" "qian1"}} ;
|
wan0 => mkD "yīwàn" "yīwàn" ++ d.s ++ mkD "qiān" "qiān"
|
||||||
|
}} ;
|
||||||
lin pot0as1 n =
|
lin pot0as1 n =
|
||||||
{inh = zero ;
|
{beg0 = zero ; end0 = nozero ;
|
||||||
s = table {
|
s = table {
|
||||||
shi => n.s ;
|
shi => n.s ;
|
||||||
shi0 => n.s ;
|
shi0 => n.s ;
|
||||||
wan => n.s ++ mkD "qian1" "qian1" ;
|
wan => n.p ++ mkD "qiān" "qiān" ;
|
||||||
wan0 => n.s ++ mkD "qian1" "qian1"} ;
|
wan0 => n.p ++ mkD "qiān" "qiān"
|
||||||
|
} ;
|
||||||
p = table {
|
p = table {
|
||||||
shi => n.p ;
|
shi => n.p ;
|
||||||
shi0 => n.s ;
|
shi0 => n.s ;
|
||||||
wan => n.s ++ mkD "qian1" "qian1" ;
|
wan => n.p ++ mkD "qiān" "qiān" ;
|
||||||
wan0 => n.s ++ mkD "qian1" "qian1"}
|
wan0 => n.p ++ mkD "qiān" "qiān"
|
||||||
|
}
|
||||||
} ;
|
} ;
|
||||||
lin pot1 d =
|
lin pot1 d =
|
||||||
{inh = nozero ; -- inh = zero
|
{beg0 = nozero ; end0 = zero ; -- inh = nozero ;
|
||||||
s,p = table {
|
s,p = table {
|
||||||
shi => d.s ++ mkD "shi2" "shi2" ;
|
shi => d.s ++ mkD "shí" "shí" ;
|
||||||
shi0 => d.s ++ mkD "shi2" "shi2" ;
|
shi0 => d.s ++ mkD "shí" "shí" ;
|
||||||
wan0 => d.s ++ "wan4" ;
|
wan0 => (d.p | d.s) ++ "wàn" ;
|
||||||
wan => d.s ++ "wan4"}} ;
|
wan => (d.p | d.s) ++ "wàn"
|
||||||
|
}} ;
|
||||||
lin pot1plus d e =
|
lin pot1plus d e =
|
||||||
{inh = nozero ;
|
{beg0 = nozero ; end0 = nozero ; -- inh = nozero ;
|
||||||
s,p = table {
|
s,p = table {
|
||||||
shi => d.s ++ mkD "shi2" "shi2" ++ e.s ;
|
shi => d.s ++ mkD "shí" "shí" ++ e.s ;
|
||||||
shi0 => d.s ++ mkD "shi2" "shi2" ++ e.s ;
|
shi0 => d.s ++ mkD "shí" "shí" ++ e.s ;
|
||||||
wan => d.s ++ "wan4" ++ e.s ++ mkD "qian1" "qian1" ;
|
wan => (d.p | d.s) ++ "wàn" ++ e.s ++ mkD "qiān" "qiān" ;
|
||||||
wan0 => d.s ++ "wan4" ++ e.s ++ mkD "qian1" "qian1"}} ;
|
wan0 => (d.p | d.s) ++ "wàn" ++ e.s ++ mkD "qiān" "qiān"
|
||||||
|
}} ;
|
||||||
lin pot1as2 n =
|
lin pot1as2 n =
|
||||||
{inh = zero ;
|
{beg0 = zero ; end0 = n.end0 ; -- inh = zero ;
|
||||||
s = table {
|
s = table {
|
||||||
bai => n.s ! shi ;
|
bai => n.s ! shi ;
|
||||||
bai0 => n.s ! shi ;
|
bai0 => n.s ! shi0 ;
|
||||||
shiwan => n.s ! wan ;
|
shiwan => n.s ! wan ;
|
||||||
shiwan0 => n.s ! wan0} ;
|
shiwan0 => n.s ! wan0
|
||||||
|
} ;
|
||||||
p = table {
|
p = table {
|
||||||
bai => n.p ! shi ;
|
bai => n.p ! shi ;
|
||||||
bai0 => n.s ! shi ;
|
bai0 => n.s ! shi0 ;
|
||||||
shiwan => n.s ! wan ;
|
shiwan => n.s ! wan ;
|
||||||
shiwan0 => n.s ! wan0}} ;
|
shiwan0 => n.s ! wan0
|
||||||
|
}} ;
|
||||||
lin pot2 d =
|
lin pot2 d =
|
||||||
{inh = zero ;
|
{beg0 = nozero ; end0 = zero ; -- inh = zero ;
|
||||||
s,p = table {
|
s,p = table {
|
||||||
bai => d.s ++ mkD "bai3" "bai3" ;
|
bai => (d.p | d.s) ++ mkD "baǐ" "baǐ" ;
|
||||||
bai0 => d.s ++ mkD "bai3" "bai3" ;
|
bai0 => (d.p | d.s) ++ mkD "baǐ" "baǐ" ;
|
||||||
shiwan0 => d.s ++ mkD "shi2wan4" "shi2wan4" ;
|
shiwan0 => d.t ++ mkD "shíwàn" "shíwàn" ;
|
||||||
shiwan => d.s ++ mkD "shi2wan4" "shi2wan4"}} ;
|
shiwan => d.t ++ mkD "shíwàn" "shíwàn"
|
||||||
|
}} ;
|
||||||
lin pot2plus d e =
|
lin pot2plus d e =
|
||||||
{inh = nozero ;
|
{beg0 = nozero ; end0 = e.end0 ; -- inh = nozero ;
|
||||||
s,p = table {
|
s,p = table {
|
||||||
bai => d.s ++ mkD "bai3" "bai3" ++ (ling ! <e.inh,e.inh>) ++ e.s ! shi0 ; --why omit "bai3"? i add it /chenpeng
|
bai => (d.p | d.s) ++ mkD "baǐ" "baǐ" ++ (ling ! <nozero,e.beg0>) ++ e.s ! shi0 ; --why omit "baǐ"? i add it /chenpeng
|
||||||
bai0 => d.s ++ mkD "bai3" "bai3" ++ (ling ! <e.inh,e.inh>) ++ e.s ! shi0 ; --why omit "bai3"? i add it /chenpeng
|
bai0 => (d.p | d.s) ++ mkD "baǐ" "baǐ" ++ (ling ! <nozero,e.beg0>) ++ e.s ! shi0 ; --why omit "baǐ"? i add it /chenpeng
|
||||||
shiwan => d.s ++ mkD "shi2" "shi2" ++ (Wan ! (e.inh)) ++ e.s ! wan ; --why omit "shi2"? i add it /chenpeng
|
shiwan => d.t ++ mkD "shí" "shí" ++ (Wan ! (e.end0)) ++ e.s ! wan ; --why omit "shí"? i add it /chenpeng
|
||||||
shiwan0 => d.s ++ mkD "shi2" "shi2" ++ (Wan ! (e.inh)) ++ e.s ! wan0}} ;--why omit "shi2"? i add it /chenpeng
|
shiwan0 => d.t ++ mkD "shí" "shí" ++ (Wan ! (e.end0)) ++ e.s ! wan0
|
||||||
|
}} ;--why omit "shí"? i add it /chenpeng
|
||||||
lin pot2as3 n =
|
lin pot2as3 n =
|
||||||
{s = n.s ! bai ; p = n.p ! bai} ;
|
{s = n.s ! bai ; p = n.p ! bai} ;
|
||||||
lin pot3 n =
|
lin pot3 n =
|
||||||
{s,p = n.s ! shiwan} ;
|
{s,p = n.s ! shiwan} ;
|
||||||
lin pot3plus n m =
|
lin pot3plus n m =
|
||||||
{s,p = (n.s ! shiwan0) ++ (ling ! <n.inh,m.inh>) ++ m.s ! bai0} ;
|
{s,p = (n.s ! shiwan0) ++ (ling ! <n.end0,m.beg0>) ++ m.s ! bai0} ;
|
||||||
|
|
||||||
|
|
||||||
-- numerals as sequences of digits
|
-- numerals as sequences of digits
|
||||||
|
|||||||
@@ -23,7 +23,10 @@ oper
|
|||||||
|
|
||||||
|
|
||||||
mkPN : (john : Str) -> PN
|
mkPN : (john : Str) -> PN
|
||||||
= \s -> lin PN {s = word s} ;
|
= \s -> lin PN {s = word s} ; -- normal name, in Chinese characters
|
||||||
|
|
||||||
|
foreignPN : (john : Str) -> PN
|
||||||
|
= \s -> lin PN {s = s} ; -- foreign name, in Latin or other non-Chinese characters
|
||||||
|
|
||||||
mkA = overload {
|
mkA = overload {
|
||||||
mkA : (small : Str) -> A
|
mkA : (small : Str) -> A
|
||||||
@@ -40,6 +43,8 @@ oper
|
|||||||
v + "+" + p => lin V (regVerb (v + p)) ;
|
v + "+" + p => lin V (regVerb (v + p)) ;
|
||||||
_ => lin V (regVerb walk)
|
_ => lin V (regVerb walk)
|
||||||
} ;
|
} ;
|
||||||
|
mkV : (walk,out : Str) -> V
|
||||||
|
= \v,p -> lin V (regVerb (v + p)) ; ----
|
||||||
mkV : (arrive : Str) -> Str -> Str -> Str -> Str -> V
|
mkV : (arrive : Str) -> Str -> Str -> Str -> Str -> V
|
||||||
= \arrive,pp,ds,dp,ep -> lin V (mkVerb arrive pp ds dp ep neg_s) ;
|
= \arrive,pp,ds,dp,ep -> lin V (mkVerb arrive pp ds dp ep neg_s) ;
|
||||||
mkV : (arrive : Str) -> Str -> Str -> Str -> Str -> Str -> V
|
mkV : (arrive : Str) -> Str -> Str -> Str -> Str -> Str -> V
|
||||||
@@ -80,10 +85,13 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkVS = overload {
|
mkVS = overload {
|
||||||
mkVS : V -> VS =
|
|
||||||
\v -> lin VS v ;
|
|
||||||
mkVS : Str -> VS =
|
mkVS : Str -> VS =
|
||||||
\v -> lin VS (regVerb v) ;
|
\v -> lin VS (regVerb v) ;
|
||||||
|
mkVS : Str -> Str -> VS =
|
||||||
|
\s,t -> lin VS (regVerb (s + t)) ; ----
|
||||||
|
|
||||||
|
mkVS : V -> VS =
|
||||||
|
\v -> lin VS v ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkVA = overload {
|
mkVA = overload {
|
||||||
@@ -131,15 +139,17 @@ oper
|
|||||||
mkAdv = overload {
|
mkAdv = overload {
|
||||||
mkAdv : Str -> Adv
|
mkAdv : Str -> Adv
|
||||||
= \s -> lin Adv {s = word s ; advType = getAdvType s} ;
|
= \s -> lin Adv {s = word s ; advType = getAdvType s} ;
|
||||||
|
mkAdv : Str -> Str -> Adv
|
||||||
|
= \s,t -> lin Adv {s = word (s + t) ; advType = getAdvType s} ; ----
|
||||||
mkAdv : Str -> AdvType -> Adv
|
mkAdv : Str -> AdvType -> Adv
|
||||||
= \s,at -> lin Adv {s = word s ; advType = at} ;
|
= \s,at -> lin Adv {s = word s ; advType = at} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvType : Type
|
AdvType : Type
|
||||||
= ResChi.AdvType ;
|
= ResChi.AdvType ;
|
||||||
placeAdvType : AdvType -- without "zai4" included
|
placeAdvType : AdvType -- without "zaì" included
|
||||||
= ATPlace False ;
|
= ATPlace False ;
|
||||||
zai_placeAdvType : AdvType -- with "zai4" included
|
zai_placeAdvType : AdvType -- with "zaì" included
|
||||||
= ATPlace True ;
|
= ATPlace True ;
|
||||||
timeAdvType : AdvType
|
timeAdvType : AdvType
|
||||||
= ATTime ;
|
= ATTime ;
|
||||||
@@ -168,12 +178,16 @@ oper
|
|||||||
= \s -> lin AdN {s = word s} ;
|
= \s -> lin AdN {s = word s} ;
|
||||||
mkSubj : Str -> Subj
|
mkSubj : Str -> Subj
|
||||||
= \s -> lin Subj (ResChi.mkSubj s []) ;
|
= \s -> lin Subj (ResChi.mkSubj s []) ;
|
||||||
mkConj : Str -> Conj
|
mkConj = overload {
|
||||||
= \s -> lin Conj {s = \\_ => mkConjForm s} ;
|
mkConj : Str -> Conj
|
||||||
|
= \s -> lin Conj {s = \\_ => mkConjForm s} ;
|
||||||
|
mkConj : (both,and : Str) -> Conj
|
||||||
|
= \s,t -> lin Conj {s = \\_ => mkConjForm2 s t} ;
|
||||||
|
} ;
|
||||||
mkpDet : Str -> Det
|
mkpDet : Str -> Det
|
||||||
= \s -> lin Det {s = word s ; detType = DTFull Sg} ;
|
= \s -> lin Det {s = word s ; detType = DTFull Sg} ;
|
||||||
mkQuant : Str -> Quant
|
mkQuant : Str -> Quant
|
||||||
= \s -> lin Quant {s,pl = s ; detType = DTFull Sg} ;
|
= \s -> lin Quant {s,pl = word s ; detType = DTFull Sg} ;
|
||||||
mkAdA : Str -> AdA
|
mkAdA : Str -> AdA
|
||||||
= \s -> lin AdA {s = word s} ;
|
= \s -> lin AdA {s = word s} ;
|
||||||
mkNum : Str -> Num
|
mkNum : Str -> Num
|
||||||
|
|||||||
@@ -17,44 +17,44 @@ resource ResChi = ParamX ** open Prelude in {
|
|||||||
|
|
||||||
defaultStr = "" ;
|
defaultStr = "" ;
|
||||||
|
|
||||||
than_s = "bi3" ;
|
than_s = "bǐ" ;
|
||||||
progressive_s = defaultStr ;
|
progressive_s = defaultStr ;
|
||||||
de_s, possessive_s = "de" ; -- also used for AP + NP
|
de_s, possessive_s = "de" ; -- also used for AP + NP
|
||||||
deAdvV_s = "de" ; -- between Adv and V
|
deAdvV_s = "de" ; -- between Adv and V
|
||||||
deVAdv_s = "de2" ; -- between V and Adv
|
deVAdv_s = "dé" ; -- between V and Adv
|
||||||
imperneg_s = neg_s ;
|
imperneg_s = neg_s ;
|
||||||
conjThat = emptyStr ; ----
|
conjThat = emptyStr ; ----
|
||||||
reflPron = word "zi4ji3" ; -- pron + refl
|
reflPron = word "zìjǐ" ; -- pron + refl
|
||||||
passive_s = "bei4" ;
|
passive_s = "beì" ;
|
||||||
relative_s = possessive_s ; -- relative
|
relative_s = possessive_s ; -- relative
|
||||||
superlative_s = "zui4" ; -- superlative, sup + adj + de
|
superlative_s = "zuì" ; -- superlative, sup + adj + de
|
||||||
zai_s = "zai4" ; -- copula for place
|
zai_s = "zaì" ; -- copula for place
|
||||||
you_s = "you3" ; -- to have
|
you_s = "yoǔ" ; -- to have
|
||||||
|
|
||||||
copula_s = "shi4" ;
|
copula_s = "shì" ;
|
||||||
exist_s = word "cun2zai4" ;
|
exist_s = word "cúnzaì" ;
|
||||||
neg_s = "bu4" ;
|
neg_s = "bù" ;
|
||||||
question_s = "ma3" ;
|
question_s = "mǎ" ;
|
||||||
yi_s = "yi1" ;
|
yi_s = "yī" ;
|
||||||
ordinal_s = "di4" ;
|
ordinal_s = "dì" ;
|
||||||
xie_s = "xie1" ;
|
xie_s = "xiē" ;
|
||||||
the_s = "na3" ;
|
the_s = "nǎ" ;
|
||||||
geng_s = "geng1" ; -- more, in comparison
|
geng_s = "gēng" ; -- more, in comparison
|
||||||
hen_s = "hen3" ; -- very, or predicating a monosyllabic adjective
|
hen_s = "hěn" ; -- very, or predicating a monosyllabic adjective
|
||||||
taN_s = "ta1" ;
|
taN_s = "tā" ;
|
||||||
|
|
||||||
zai_V = mkVerb "zai4" [] [] [] [] "bu4" ;
|
zai_V = mkVerb "zaì" [] [] [] [] "bù" ;
|
||||||
fullstop_s = "。" ;
|
fullstop_s = "。" ;
|
||||||
questmark_s = "?" ;
|
questmark_s = "?" ;
|
||||||
exclmark_s = "!" ;
|
exclmark_s = "!" ;
|
||||||
ge_s = "ge4" ;
|
ge_s = "gè" ;
|
||||||
di_s = "shi4" ; -- used in QuestSlash
|
di_s = "shì" ; -- used in QuestSlash
|
||||||
ba_s = "ba3" ; -- ba4, object marker
|
ba_s = "bǎ" ; -- ba4, object marker
|
||||||
ba0_s = "ba1" ; -- ba, used in imperatives
|
ba0_s = "bā" ; -- ba, used in imperatives
|
||||||
men_s = "men" ;
|
men_s = "men" ;
|
||||||
zan_s = "za2" ;
|
zan_s = "zá" ;
|
||||||
|
|
||||||
say_s = "shui4" ; -- used in embedded sentences: she answers him that we sleep
|
say_s = "shuì" ; -- used in embedded sentences: she answers him that we sleep
|
||||||
|
|
||||||
duncomma = "、" ;
|
duncomma = "、" ;
|
||||||
chcomma = "," ;
|
chcomma = "," ;
|
||||||
@@ -67,6 +67,11 @@ resource ResChi = ParamX ** open Prelude in {
|
|||||||
bword : Str -> Str -> Str = \x,y -> x + y ; -- change to x + y to treat words as single tokens
|
bword : Str -> Str -> Str = \x,y -> x + y ; -- change to x + y to treat words as single tokens
|
||||||
|
|
||||||
word : Str -> Str = \s -> case s of {
|
word : Str -> Str = \s -> case s of {
|
||||||
|
x@? + y@? + z@? + u@? + v@? + w@? + a@? + b@? + c@? + d@? + e@? =>
|
||||||
|
bword x (bword y (bword z (bword u (bword v (bword w (bword a (bword b (bword c (bword d e))))))))) ;
|
||||||
|
x@? + y@? + z@? + u@? + v@? + w@? + a@? + b@? + c@? + d@? =>
|
||||||
|
bword x (bword y (bword z (bword u (bword v (bword w (bword a (bword b (bword c d)))))))) ;
|
||||||
|
x@? + y@? + z@? + u@? + v@? + w@? + a@? + b@? + c@? => bword x (bword y (bword z (bword u (bword v (bword w (bword a (bword b c))))))) ;
|
||||||
x@? + y@? + z@? + u@? + v@? + w@? + a@? + b@? => bword x (bword y (bword z (bword u (bword v (bword w (bword a b)))))) ;
|
x@? + y@? + z@? + u@? + v@? + w@? + a@? + b@? => bword x (bword y (bword z (bword u (bword v (bword w (bword a b)))))) ;
|
||||||
x@? + y@? + z@? + u@? + v@? + w@? + a@? => bword x (bword y (bword z (bword u (bword v (bword w a))))) ;
|
x@? + y@? + z@? + u@? + v@? + w@? + a@? => bword x (bword y (bword z (bword u (bword v (bword w a))))) ;
|
||||||
x@? + y@? + z@? + u@? + v@? + w@? => bword x (bword y (bword z (bword u (bword v w)))) ;
|
x@? + y@? + z@? + u@? + v@? + w@? => bword x (bword y (bword z (bword u (bword v w)))) ;
|
||||||
@@ -89,13 +94,19 @@ param
|
|||||||
CPosType = CAPhrase | CNPhrase | CVPhrase ;
|
CPosType = CAPhrase | CNPhrase | CVPhrase ;
|
||||||
DeForm = DeNoun | NdNoun ; -- parameter created for noun with/out partical "de"
|
DeForm = DeNoun | NdNoun ; -- parameter created for noun with/out partical "de"
|
||||||
|
|
||||||
AdvType = ATPlace Bool | ATTime | ATManner ; -- ATPlace True = has zai_s already
|
AdvType = ATPlace Bool | ATTime | ATManner | ATPoss ; -- ATPlace True = has zai_s already
|
||||||
|
|
||||||
-- parts of speech
|
-- parts of speech
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
VP = {verb : Verb ; compl : Str ; prePart : Str} ;
|
VP = {
|
||||||
|
topic : Str ; -- topicalized item, before subject
|
||||||
|
prePart : Str ; -- between subject and verb
|
||||||
|
verb : Verb ;
|
||||||
|
compl : Str -- after verb
|
||||||
|
} ;
|
||||||
|
|
||||||
NP = {s : Str} ;
|
NP = {s : Str} ;
|
||||||
|
|
||||||
-- for morphology
|
-- for morphology
|
||||||
@@ -116,16 +127,16 @@ oper
|
|||||||
_ => mkAdj s False
|
_ => mkAdj s False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
copula : Verb = mkVerb "shi4" [] [] [] [] "bu4" ;
|
copula : Verb = mkVerb "shì" [] [] [] [] "bù" ;
|
||||||
hen_copula : Verb =
|
hen_copula : Verb =
|
||||||
{s = hen_s ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "bu4"} ; ---
|
{s = hen_s ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "bù"} ; ---
|
||||||
nocopula : Verb =
|
nocopula : Verb =
|
||||||
{s = [] ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "bu4"} ; ---
|
{s = [] ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "bù"} ; ---
|
||||||
adjcopula : Verb =
|
adjcopula : Verb =
|
||||||
{s = "shi4" ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "bu4"} ; ---
|
{s = "shì" ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "bù"} ; ---
|
||||||
|
|
||||||
regVerb : (walk : Str) -> Verb = \v ->
|
regVerb : (walk : Str) -> Verb = \v ->
|
||||||
mkVerb v "le" "zhao1" "zai4" "guo4" "bu4" ; -- 没" ;
|
mkVerb v "le" "zhaō" "zaì" "guò" "bù" ; -- 没" ;
|
||||||
|
|
||||||
noVerb : Verb = regVerb [] ; ---?? -- used as copula for verbal adverbs
|
noVerb : Verb = regVerb [] ; ---?? -- used as copula for verbal adverbs
|
||||||
|
|
||||||
@@ -143,48 +154,60 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
Neg => table {
|
Neg => table {
|
||||||
APlain => v.neg ++ v.sn ; --- neg?
|
APlain => v.neg ++ v.sn ; --- neg?
|
||||||
APerf => "bu4" ++ v.sn ++ v.pp ;
|
APerf => "不" ++ v.sn ++ v.pp ;
|
||||||
ADurStat => "bu4" ++ v.sn ;
|
ADurStat => "不" ++ v.sn ;
|
||||||
ADurProg => v.neg ++ v.dp ++ v.sn ; -- mei or bu
|
ADurProg => v.neg ++ v.dp ++ v.sn ; -- mei or bu
|
||||||
AExper => v.neg ++ v.sn ++ v.ep
|
AExper => v.neg ++ v.sn ++ v.ep
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
infVP : VP -> Str = \vp -> vp.prePart ++ vp.verb.s ++ vp.compl ;
|
infVP : VP -> Str = \vp -> vp.topic ++ vp.prePart ++ vp.verb.s ++ vp.compl ;
|
||||||
|
|
||||||
predV : Verb -> Str -> VP = \v,part -> {
|
predV : Verb -> Str -> VP = \v,part -> {
|
||||||
verb = v ;
|
verb = v ;
|
||||||
compl = part ;
|
compl = part ;
|
||||||
prePart = [] ;
|
prePart, topic = [] ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertObj : NP -> VP -> VP = \np,vp -> {
|
insertObj : NP -> VP -> VP = \np,vp -> {
|
||||||
verb = vp.verb ;
|
verb = vp.verb ;
|
||||||
compl = np.s ++ vp.compl ;
|
compl = np.s ++ vp.compl ;
|
||||||
prePart = vp.prePart
|
prePart = vp.prePart ;
|
||||||
|
topic = vp.topic
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertObjPost : NP -> VP -> VP = \np,vp -> {
|
insertObjPost : NP -> VP -> VP = \np,vp -> {
|
||||||
verb = vp.verb ;
|
verb = vp.verb ;
|
||||||
compl = vp.compl ++ np.s ;
|
compl = vp.compl ++ np.s ;
|
||||||
prePart = vp.prePart
|
prePart = vp.prePart ;
|
||||||
|
topic = vp.topic
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertAdv : SS -> VP -> VP = \adv,vp -> {
|
insertAdv : SS -> VP -> VP = \adv,vp -> {
|
||||||
verb = vp.verb ;
|
verb = vp.verb ;
|
||||||
compl = vp.compl ;
|
compl = vp.compl ;
|
||||||
prePart = adv.s ++ vp.prePart
|
prePart = adv.s ++ vp.prePart ;
|
||||||
|
topic = vp.topic
|
||||||
|
} ;
|
||||||
|
|
||||||
|
insertTopic : SS -> VP -> VP = \adv,vp -> {
|
||||||
|
verb = vp.verb ;
|
||||||
|
compl = vp.compl ;
|
||||||
|
prePart = vp.prePart ;
|
||||||
|
topic = adv.s ++ vp.topic
|
||||||
} ;
|
} ;
|
||||||
insertAdvPost : SS -> VP -> VP = \adv,vp -> {
|
insertAdvPost : SS -> VP -> VP = \adv,vp -> {
|
||||||
verb = vp.verb ;
|
verb = vp.verb ;
|
||||||
compl = vp.compl ;
|
compl = vp.compl ;
|
||||||
prePart = vp.prePart ++ adv.s
|
prePart = vp.prePart ++ adv.s ;
|
||||||
|
topic = vp.topic
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertPP : SS -> VP -> VP = \pp,vp -> {
|
insertPP : SS -> VP -> VP = \pp,vp -> {
|
||||||
verb = vp.verb ;
|
verb = vp.verb ;
|
||||||
compl = vp.compl ;
|
compl = vp.compl ;
|
||||||
prePart = vp.prePart ++ pp.s
|
prePart = vp.prePart ++ pp.s ;
|
||||||
|
topic = vp.topic
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertExtra : SS -> VP -> VP = \ext,vp ->
|
insertExtra : SS -> VP -> VP = \ext,vp ->
|
||||||
@@ -211,8 +234,8 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkClauseCompl : Str -> VP -> Str -> Clause = \np,vp,compl -> {
|
mkClauseCompl : Str -> VP -> Str -> Clause = \np,vp,compl -> {
|
||||||
s = \\p,a => np ++ vp.prePart ++ useVerb vp.verb ! p ! a ++ vp.compl ++ compl ;
|
s = \\p,a => vp.topic ++ np ++ vp.prePart ++ useVerb vp.verb ! p ! a ++ vp.compl ++ compl ;
|
||||||
np = np ;
|
np = vp.topic ++ np ;
|
||||||
vp = insertObj (ss compl) vp ;
|
vp = insertObj (ss compl) vp ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -228,15 +251,15 @@ oper
|
|||||||
Quantifier = Determiner ** {pl : Str} ;
|
Quantifier = Determiner ** {pl : Str} ;
|
||||||
|
|
||||||
mkDet = overload {
|
mkDet = overload {
|
||||||
mkDet : Str -> Determiner = \s -> {s = s ; detType = DTFull Sg} ;
|
mkDet : Str -> Determiner = \s -> {s = word s ; detType = DTFull Sg} ;
|
||||||
mkDet : Str -> Number -> Determiner = \s,n -> {s = s ; detType = DTFull n} ;
|
mkDet : Str -> Number -> Determiner = \s,n -> {s = word s ; detType = DTFull n} ;
|
||||||
mkDet : Str -> DetType -> Determiner = \s,d -> {s = s ; detType = d} ;
|
mkDet : Str -> DetType -> Determiner = \s,d -> {s = word s ; detType = d} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkQuant = overload {
|
mkQuant = overload {
|
||||||
mkQuant : Str -> Quantifier = \s -> {s,pl = s ; detType = DTFull Sg} ;
|
mkQuant : Str -> Quantifier = \s -> {s,pl = word s ; detType = DTFull Sg} ;
|
||||||
mkQuant : Str -> DetType -> Quantifier = \s,d -> {s,pl = s ; detType = d} ;
|
mkQuant : Str -> DetType -> Quantifier = \s,d -> {s,pl = word s ; detType = d} ;
|
||||||
mkQuant : Str -> Str -> DetType -> Quantifier = \s,p,d -> {s = s ; detType = d ; pl = p} ;
|
mkQuant : Str -> Str -> DetType -> Quantifier = \s,p,d -> {s = word s ; detType = d ; pl = p} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
pronNP : (s : Str) -> NP = \s -> {
|
pronNP : (s : Str) -> NP = \s -> {
|
||||||
@@ -252,10 +275,16 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
getAdvType : Str -> AdvType = \s -> case s of {
|
getAdvType : Str -> AdvType = \s -> case s of {
|
||||||
"zai4" + _ => ATPlace True ; -- certain that True
|
"的" => ATPoss ;
|
||||||
|
"在" + _ => ATPlace True ; -- certain that True
|
||||||
_ => ATPlace False -- uncertain whether ATPlace
|
_ => ATPlace False -- uncertain whether ATPlace
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
possessiveIf : AdvType -> Str = \at -> case at of {
|
||||||
|
ATPoss => [] ; --- to avoid double "de"
|
||||||
|
_ => possessive_s
|
||||||
|
} ;
|
||||||
|
|
||||||
mkSubj : Str -> Str -> {prePart : Str ; sufPart : Str} = \p,s -> {
|
mkSubj : Str -> Str -> {prePart : Str ; sufPart : Str} = \p,s -> {
|
||||||
prePart = word p ;
|
prePart = word p ;
|
||||||
sufPart = word s
|
sufPart = word s
|
||||||
|
|||||||
@@ -4,58 +4,58 @@ concrete StructuralChi of Structural = CatChi **
|
|||||||
flags coding = utf8 ;
|
flags coding = utf8 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
every_Det = mkDet "mei3" Sg ;
|
every_Det = mkDet "meǐ" Sg ;
|
||||||
|
|
||||||
this_Quant = mkQuant "zhe4" ;
|
this_Quant = mkQuant "zhè" ;
|
||||||
that_Quant = mkQuant "na3" ;
|
that_Quant = mkQuant "nǎ" ;
|
||||||
|
|
||||||
i_Pron = pronNP "wo3" ;
|
i_Pron = pronNP "wǒ" ;
|
||||||
youSg_Pron = pronNP "ni3" ;
|
youSg_Pron = pronNP "nǐ" ;
|
||||||
he_Pron = pronNP "ta1" ;
|
he_Pron = pronNP "tā" ;
|
||||||
she_Pron = pronNP "ta1" ;
|
she_Pron = pronNP "tā" ;
|
||||||
we_Pron = pronNP "wo3men" ;
|
we_Pron = pronNP "wǒmen" ;
|
||||||
youPl_Pron = pronNP "ni3men" ;
|
youPl_Pron = pronNP "nǐmen" ;
|
||||||
they_Pron = pronNP "ta1men" ;
|
they_Pron = pronNP "tāmen" ;
|
||||||
|
|
||||||
very_AdA = ssword "fei1chang2" ;
|
very_AdA = ssword "feīcháng" ;
|
||||||
|
|
||||||
by8means_Prep = mkPrep [] "pang2bian1" mannerAdvType ;
|
by8means_Prep = mkPrep [] "pángbiān" mannerAdvType ;
|
||||||
-- in_Prep = mkPrep "li3" []; --- in Paris
|
-- in_Prep = mkPrep "lǐ" []; --- in Paris
|
||||||
in_Prep = mkPrep "zai4" "zhong1" ; --- in the house, the car, etc
|
in_Prep = mkPrep "zaì" "zhōng" ; --- in the house, the car, etc
|
||||||
possess_Prep = mkPrep [] "de" ;
|
possess_Prep = mkPrep [] "de" ATPoss ;
|
||||||
with_Prep = mkPrep "he2" "yi1qi3" ;
|
with_Prep = mkPrep "hé" "yīqǐ" (ATPlace True) ; -- "with you"
|
||||||
---- with_Prep = mkPrep [] "he2"; -- an alternative for some uses
|
---- with_Prep = mkPrep "hé" [] ; -- "with bread"
|
||||||
|
|
||||||
and_Conj = {s = table {
|
and_Conj = {s = table {
|
||||||
CPhr CNPhrase => mkConjForm "he2" ;
|
CPhr CNPhrase => mkConjForm "hé" ;
|
||||||
CPhr CAPhrase => mkConjForm "er2" ;
|
CPhr CAPhrase => mkConjForm "ér" ;
|
||||||
CPhr CVPhrase => mkConjForm "you4" ;
|
CPhr CVPhrase => mkConjForm "yoù" ;
|
||||||
CSent => mkConjForm "bing4qie3" --modified by chenpneg 11.19
|
CSent => mkConjForm "bìngqiě" --modified by chenpneg 11.19
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
or_Conj = {s = table {
|
or_Conj = {s = table {
|
||||||
CPhr _ => mkConjForm "huo4" ;
|
CPhr _ => mkConjForm "huò" ;
|
||||||
CSent => mkConjForm "hai2shi4"
|
CSent => mkConjForm "haíshì"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
although_Subj = mkSubj "sui1ran2" "dan4";
|
although_Subj = mkSubj "suīrán" "dàn";
|
||||||
because_Subj = mkSubj "yin1wei2" "suo3yi3" ;
|
because_Subj = mkSubj "yīnweí" "suǒyǐ" ;
|
||||||
when_Subj = mkSubj [] "deshi2hou4" ;
|
when_Subj = mkSubj [] "deshíhoù" ;
|
||||||
|
|
||||||
here_Adv = mkAdv "zhe4li3" ;
|
here_Adv = mkAdv "zhèlǐ" ;
|
||||||
there_Adv = mkAdv "na3li3" ;
|
there_Adv = mkAdv "nǎlǐ" ;
|
||||||
whoSg_IP, whoPl_IP = mkIPL "shei2" ;
|
whoSg_IP, whoPl_IP = mkIPL "sheí" ;
|
||||||
whatSg_IP, whatPl_IP = mkIPL " shen2ma" ;
|
whatSg_IP, whatPl_IP = mkIPL " shénma" ;
|
||||||
where_IAdv = mkIAdvL "na3li3" ;
|
where_IAdv = mkIAdvL "nǎlǐ" ;
|
||||||
when_IAdv = mkIAdvL "shen2mashi2hou4" ;
|
when_IAdv = mkIAdvL "shénmashíhoù" ;
|
||||||
how_IAdv = mkIAdvL "ru2he2" ;
|
how_IAdv = mkIAdvL "rúhé" ;
|
||||||
all_Predet = ssword "suo3you3" ;
|
all_Predet = ssword "suǒyoǔ" ;
|
||||||
many_Det = mkDet (word "hen3duo1") DTPoss ;
|
many_Det = mkDet (word "hěnduō") DTPoss ;
|
||||||
someSg_Det = mkDet (word "yi1xie1") Sg ;
|
someSg_Det = mkDet (word "yīxiē") Sg ;
|
||||||
somePl_Det = mkDet (word "yi1xie1") Sg ;
|
somePl_Det = mkDet (word "yīxiē") Sg ;
|
||||||
few_Det = mkDet "shao3" Pl ;
|
few_Det = mkDet "shaǒ" Pl ;
|
||||||
other_A = mkA "qi2ta1" ;
|
other_A = mkA "qítā" ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mkIPL, mkIAdvL, mkAdA, mkIDetL, mkPConjL, mkIQuant = ssword ;
|
mkIPL, mkIAdvL, mkAdA, mkIDetL, mkPConjL, mkIQuant = ssword ;
|
||||||
@@ -65,115 +65,115 @@ oper
|
|||||||
lin
|
lin
|
||||||
|
|
||||||
|
|
||||||
above_Prep = mkPrep [] "shang4bian1" ;
|
above_Prep = mkPrep [] "shàngbiān" ;
|
||||||
after_Prep = mkPrep [] "yi3hou4" timeAdvType ;
|
after_Prep = mkPrep [] "yǐhoù" timeAdvType ;
|
||||||
under_Prep = mkPrep [] "xia4" ;
|
under_Prep = mkPrep [] "xià" ;
|
||||||
why_IAdv = mkIAdvL "wei2shen2ma" ;
|
why_IAdv = mkIAdvL "weíshénma" ;
|
||||||
too_AdA = mkAdA "tai4" ;
|
too_AdA = mkAdA "taì" ;
|
||||||
|
|
||||||
before_Prep = mkPrep [] "zhi1qian2" timeAdvType ;
|
before_Prep = mkPrep [] "zhīqián" timeAdvType ;
|
||||||
between_Prep = mkPrep [] "zhi1jian1" ;
|
between_Prep = mkPrep [] "zhījiān" ;
|
||||||
but_PConj = mkPConjL "dan4shi4" ;
|
but_PConj = mkPConjL "dànshì" ;
|
||||||
|
|
||||||
|
|
||||||
can_VV = mkVerb "neng2" [] [] [] [] "bu4" ;
|
can_VV = mkVerb "néng" [] [] [] [] "bù" ;
|
||||||
must_VV = mkVerb "bi4xu1" [] [] [] [] "bu4" ; ---- False "bu4neng2"
|
must_VV = mkVerb "bìxū" [] [] [] [] "bù" ; ---- False "bùnéng"
|
||||||
want_VV = mkVerb "xiang3" [] [] [] [] "bu4" ;
|
want_VV = mkVerb "xiǎng" [] [] [] [] "bù" ;
|
||||||
|
|
||||||
can8know_VV = mkV "hui4" [] [] [] [] "bu4" ; ----
|
can8know_VV = mkV "huì" [] [] [] [] "bù" ; ----
|
||||||
|
|
||||||
|
|
||||||
except_Prep = mkPrep "yi3wai4" "chu2le" mannerAdvType ;
|
except_Prep = mkPrep "yǐwaì" "chúle" mannerAdvType ;
|
||||||
for_Prep = mkPrep "wei2le" ;
|
for_Prep = mkPrep "weíle" ;
|
||||||
from_Prep = mkPrep "cong1" ;
|
from_Prep = mkPrep "cōng" "" (ATPlace True) ;
|
||||||
in8front_Prep = mkPrep zai_s "qian2bian1" ;
|
in8front_Prep = mkPrep zai_s "qiánbiān" ;
|
||||||
it_Pron = pronNP "ta1" ;
|
it_Pron = pronNP "tā" ;
|
||||||
much_Det = mkDet "duo1" Sg ;
|
much_Det = mkDet "duō" Sg ;
|
||||||
no_Quant = mkQuant "bu4" ;
|
no_Quant = mkQuant "bù" ;
|
||||||
not_Predet = ssword "bu4" ;
|
not_Predet = ssword "bù" ;
|
||||||
otherwise_PConj = mkPConjL "hai2shi4" ;
|
otherwise_PConj = mkPConjL "haíshì" ;
|
||||||
to_Prep = mkPrep "wang3" ;
|
to_Prep = mkPrep "wǎng" ;
|
||||||
|
|
||||||
have_V2 = mkV2 (mkV "you3" "le" "zhao1" "zai4" "guo4" "mei2") ;
|
have_V2 = mkV2 (mkV "yoǔ" "le" "zhaō" "zaì" "guò" "meí") ;
|
||||||
|
|
||||||
yes_Utt = ss "dui4" ;
|
yes_Utt = ss "duì" ;
|
||||||
no_Utt = ss neg_s ;
|
no_Utt = ss neg_s ;
|
||||||
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
always_AdV = ssword "yi1zhi2" ;
|
always_AdV = ssword "yīzhí" ;
|
||||||
part_Prep = mkPrep possessive_s ;
|
part_Prep = mkPrep [] "de" ATPoss ;
|
||||||
language_title_Utt = ssword "zhong1wen2" ;
|
language_title_Utt = ssword "zhōngwén" ;
|
||||||
please_Voc = ss "qing3" ;
|
please_Voc = ss "qǐng" ;
|
||||||
quite_Adv = mkAdA "de2hen3" ;
|
quite_Adv = mkAdA "déhěn" ;
|
||||||
|
|
||||||
-- just missing
|
-- just missing
|
||||||
|
|
||||||
lin
|
lin
|
||||||
almost_AdA = ssword "ji1hu1" ;
|
almost_AdA = ssword "jīhū" ;
|
||||||
almost_AdN = ssword "ji1hu1" ;
|
almost_AdN = ssword "jīhū" ;
|
||||||
as_CAdv = {s = word "he2" ; p = word "yi1yang4" } ; -- modified by chenpeng 11.24
|
as_CAdv = {s = word "hé" ; p = word "yīyàng" } ; -- modified by chenpeng 11.24
|
||||||
at_least_AdN = ssword "zui4shao3" ; -- at least five
|
at_least_AdN = ssword "zuìshaǒ" ; -- at least five
|
||||||
at_most_AdN = ssword "zui4duo1" ;
|
at_most_AdN = ssword "zuìduō" ;
|
||||||
behind_Prep = mkPrep "zai4" "hou4mian4" ;
|
behind_Prep = mkPrep "zaì" "hoùmiàn" ;
|
||||||
|
|
||||||
both7and_DConj = {s = table { -- modified by chenpeng 11.19
|
both7and_DConj = {s = table { -- modified by chenpeng 11.19
|
||||||
CPhr CNPhrase => mkConjForm2 "bao1kuo4" "he2" ;
|
CPhr CNPhrase => mkConjForm2 "baōkuò" "hé" ;
|
||||||
CPhr CAPhrase => mkConjForm2 "ji2" "you4" ;
|
CPhr CAPhrase => mkConjForm2 "jí" "yoù" ;
|
||||||
CPhr CVPhrase => mkConjForm2 "bu4dan4" "er2qie3" ;
|
CPhr CVPhrase => mkConjForm2 "bùdàn" "érqiě" ;
|
||||||
CSent => mkConjForm2 "bu4dan4" "er2qie3"
|
CSent => mkConjForm2 "bùdàn" "érqiě"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
by8agent_Prep = mkPrep "bei4" [] mannerAdvType; -- by for agent in passive
|
by8agent_Prep = mkPrep "beì" [] mannerAdvType; -- by for agent in passive
|
||||||
-- [mark] 被
|
-- [mark] 被
|
||||||
during_Prep = mkPrep "zai4" "qi1jian1" timeAdvType ; -- [mark] often equivalent to nothing
|
during_Prep = mkPrep "zaì" "qījiān" timeAdvType ; -- [mark] often equivalent to nothing
|
||||||
-- translation for "he swam during this summer. " and "he swam this summer." are often the same
|
-- translation for "he swam during this summer. " and "he swam this summer." are often the same
|
||||||
|
|
||||||
either7or_DConj = {s = table { -- modified by chenpeng 11.19
|
either7or_DConj = {s = table { -- modified by chenpeng 11.19
|
||||||
CPhr CNPhrase => mkConjForm2 "huo4zhe3" "huo4zhe3" ;
|
CPhr CNPhrase => mkConjForm2 "huòzhě" "huòzhě" ;
|
||||||
CPhr CAPhrase => mkConjForm2 "yao1ma" "yao1ma" ;
|
CPhr CAPhrase => mkConjForm2 "yaōma" "yaōma" ;
|
||||||
CPhr CVPhrase => mkConjForm2 "yao1ma" "yao1ma" ;
|
CPhr CVPhrase => mkConjForm2 "yaōma" "yaōma" ;
|
||||||
CSent => mkConjForm2 "yao1ma" "yao1ma"
|
CSent => mkConjForm2 "yaōma" "yaōma"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
everybody_NP = ssword "mei3ge4ren2" ; -- [mark] "mei3ge4ren2": 每(every)+个(classifier)+人(person)
|
everybody_NP = ssword "meǐgèrén" ; -- [mark] "meǐgèrén": 每(every)+个(classifier)+人(person)
|
||||||
everything_NP = ssword "mei3jian4shi4" ; -- [mark] "mei3jian4shi4": 每(every)+件(classifier)+事(thing)
|
everything_NP = ssword "meǐjiànshì" ; -- [mark] "meǐjiànshì": 每(every)+件(classifier)+事(thing)
|
||||||
everywhere_Adv = mkAdv "dao4chu3" ;
|
everywhere_Adv = mkAdv "daòchǔ" ;
|
||||||
here7from_Adv = mkAdv "cong1zhe4li3" ; -- from here
|
here7from_Adv = mkAdv "cōngzhèlǐ" ; -- from here
|
||||||
here7to_Adv = mkAdv "dao4zhe4li3" ; -- to here
|
here7to_Adv = mkAdv "daòzhèlǐ" ; -- to here
|
||||||
-- [mark] "cong1zhe4li3" 从(from) 这里(here)
|
-- [mark] "cōngzhèlǐ" 从(from) 这里(here)
|
||||||
-- "dao4zhe4li3" 到( to ) 这里(here)
|
-- "daòzhèlǐ" 到( to ) 这里(here)
|
||||||
how8many_IDet = mkIDet "duo1shao3" ;
|
how8many_IDet = mkIDet "duōshaǒ" ;
|
||||||
how8much_IAdv = ssword "duo1shao3" ;
|
how8much_IAdv = ssword "duōshaǒ" ;
|
||||||
if_Subj = mkSubj "ru2guo3" [] ; --"jiu4" ; -- [mark] "jiu4" often comes between NP and VP
|
if_Subj = mkSubj "rúguǒ" [] ; --"jiù" ; -- [mark] "jiù" often comes between NP and VP
|
||||||
less_CAdv = {s = than_s ; p = word "mei2geng1"} ; -- modified by chenpeng 11.24
|
less_CAdv = {s = than_s ; p = word "meígēng"} ; -- modified by chenpeng 11.24
|
||||||
more_CAdv = {s = than_s ; p = word "geng1"} ; -- modified by chenpeng 11.24
|
more_CAdv = {s = than_s ; p = word "gēng"} ; -- modified by chenpeng 11.24
|
||||||
most_Predet = ssword "da4duo1shu3" ;
|
most_Predet = ssword "dàduōshǔ" ;
|
||||||
if_then_Conj = {s = table { -- added by chenpeng 11.19
|
if_then_Conj = {s = table { -- added by chenpeng 11.19
|
||||||
CPhr CNPhrase => mkConjForm [] ;
|
CPhr CNPhrase => mkConjForm [] ;
|
||||||
CPhr CAPhrase => mkConjForm [] ;
|
CPhr CAPhrase => mkConjForm [] ;
|
||||||
CPhr CVPhrase => mkConjForm [] ;
|
CPhr CVPhrase => mkConjForm [] ;
|
||||||
CSent => mkConjForm2 "ru2guo3" "na3ma"
|
CSent => mkConjForm2 "rúguǒ" "nǎma"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
nobody_NP = ssword "mei2ren2" ;
|
nobody_NP = ssword "meírén" ;
|
||||||
nothing_NP = ssword "mei2you3shen2ma" ;
|
nothing_NP = ssword "meíyoǔshénma" ;
|
||||||
on_Prep = mkPrep "zai4" "shang4" ;
|
on_Prep = mkPrep "zaì" "shàng" ;
|
||||||
only_Predet = ssword "qi2you3" ; -- only John
|
only_Predet = ssword "qíyoǔ" ; -- only John
|
||||||
so_AdA = ssword "ru2ci3" ;
|
so_AdA = ssword "rúcǐ" ;
|
||||||
somebody_NP = ssword "mou3ren2" ;
|
somebody_NP = ssword "moǔrén" ;
|
||||||
something_NP = ssword "mou3shi4" ; -- [mark] in sent, it depends on the context
|
something_NP = ssword "moǔshì" ; -- [mark] in sent, it depends on the context
|
||||||
somewhere_Adv = mkAdv "mou3chu3" ;
|
somewhere_Adv = mkAdv "moǔchǔ" ;
|
||||||
that_Subj = mkSubj [] chcomma ; -- that + S [mark] comma
|
that_Subj = mkSubj [] chcomma ; -- that + S [mark] comma
|
||||||
there7from_Adv = mkAdv "cong1na3li3" ; -- from there
|
there7from_Adv = mkAdv "cōngnǎlǐ" ; -- from there
|
||||||
there7to_Adv = mkAdv "dao4na3li3" ;
|
there7to_Adv = mkAdv "daònǎlǐ" ;
|
||||||
therefore_PConj = ssword "yin1ci3" ;
|
therefore_PConj = ssword "yīncǐ" ;
|
||||||
through_Prep = mkPrep "tong1guo4" ;
|
through_Prep = mkPrep "tōngguò" ;
|
||||||
which_IQuant = mkIQuant "na3" ;
|
which_IQuant = mkIQuant "nǎ" ; --
|
||||||
--which_IQuant = ssword [] ; -- [mark] in sent, it depends on the context
|
--which_IQuant = ssword [] ; -- [mark] in sent, it depends on the context
|
||||||
without_Prep = mkPrep "mei2you3" [] mannerAdvType ;
|
without_Prep = mkPrep "meíyoǔ" [] mannerAdvType ;
|
||||||
youPol_Pron = ssword "nin2" ; -- polite you
|
youPol_Pron = ssword "nín" ; -- polite you
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:../abstract:../common
|
--# -path=.:../abstract:../common:../prelude
|
||||||
|
|
||||||
concrete SymbolChi of Symbol = CatChi ** open Prelude, ResChi in {
|
concrete SymbolChi of Symbol = CatChi ** open Prelude, ResChi in {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user