forked from GitHub/gf-core
fixes to Det and ComplSlash in Chi
This commit is contained in:
@@ -33,7 +33,7 @@ concrete CatChi of Cat = CommonX - [Tense, Temp, Adv] ** open ResChi, Prelude in
|
||||
|
||||
VP = ResChi.VP ;
|
||||
Comp = ResChi.VP ;
|
||||
VPSlash = ResChi.VP ** {c2 : Preposition} ;
|
||||
VPSlash = ResChi.VP ** {c2 : Preposition ; isPre : Bool} ; -- whether the missing arg is before verb
|
||||
|
||||
-- Adjective
|
||||
|
||||
@@ -43,7 +43,8 @@ concrete CatChi of Cat = CommonX - [Tense, Temp, Adv] ** open ResChi, Prelude in
|
||||
|
||||
CN = ResChi.Noun ;
|
||||
NP, Pron = ResChi.NP ;
|
||||
Det, Quant = Determiner ;
|
||||
Det = Determiner ;
|
||||
Quant = Determiner ** {pl : Str} ;
|
||||
Predet = {s : Str} ; ----
|
||||
Ord = {s : Str} ;
|
||||
Num = {s : Str ; numType : NumType} ;
|
||||
@@ -52,7 +53,8 @@ concrete CatChi of Cat = CommonX - [Tense, Temp, Adv] ** open ResChi, Prelude in
|
||||
|
||||
-- Numeral
|
||||
|
||||
Numeral, Card, Digits = {s : Str} ;
|
||||
Numeral = {s,p : Str} ;
|
||||
Card, Digits = {s : Str} ;
|
||||
|
||||
-- Structural
|
||||
|
||||
|
||||
@@ -17,35 +17,25 @@ lin
|
||||
green_A = mkA "绿" ; -- "lv"
|
||||
walk_V = mkV "走" ; -- "zou"
|
||||
sleep_V = mkV "睡" ; -- "shui"
|
||||
---- arrive_V = mkV "到" "了" [] [] "过"; -- "dao"
|
||||
love_V2 = mkV2 "爱" ; -- "ai"
|
||||
watch_V2 = mkV2 "看" ; -- "kan"
|
||||
--- please2_V2 = mkV "麻烦" ; -- "mafan"
|
||||
--- believe_VS = mkV "相信" ; -- "xiangxin"
|
||||
know_VS = mkV "知道" ; -- "zhidao"
|
||||
wonder_VQ = mkV "好奇" ; -- "haoqi"
|
||||
john_PN = mkPN "约翰" ; -- "yuehan"
|
||||
--- mary_PN = mkPN "玛丽" ; -- "mali"
|
||||
|
||||
|
||||
-- Swadesh
|
||||
|
||||
--big_A = mkA "大" ;
|
||||
long_A = mkA "长" ;
|
||||
wide_A = mkA "宽" ;
|
||||
thick_A = mkA "厚" ;
|
||||
heavy_A = mkA "重" ;
|
||||
--small_A = mkA "小" ;
|
||||
short_A = mkA "短" ;
|
||||
narrow_A = mkA "窄" ;
|
||||
thin_A = mkA "薄" ; -- [mark] for person mkA "瘦"
|
||||
--woman_N = mkN "女人" ;
|
||||
--man(adult_N = mkN "男人" ;
|
||||
--man(human_N = mkN "人" ;
|
||||
child_N = mkN "孩子" ;
|
||||
wife_N = mkN "妻子" ;
|
||||
husband_N = mkN "丈夫" ;
|
||||
--father_N = mkN "父亲" ;
|
||||
animal_N = mkN "动物" "只"; -- [mark] added classifier for nouns
|
||||
fish_N = mkN "鱼" "条";
|
||||
bird_N = mkN "鸟" "只";
|
||||
@@ -53,7 +43,6 @@ dog_N = mkN "狗" "只";
|
||||
louse_N = mkN "虱" "只";
|
||||
snake_N = mkN "蛇" "条";
|
||||
worm_N = mkN "虫" "只";
|
||||
--tree_N = mkN "树" ;
|
||||
forest_N = mkN "森林" "片";
|
||||
stick_N = mkN "树枝" ;
|
||||
fruit_N = mkN "水果" ;
|
||||
@@ -105,11 +94,9 @@ breathe_V = mkV "呼吸" ;
|
||||
laugh_V = mkV "笑" ;
|
||||
see_V2 = mkV2 "看" ;
|
||||
hear_V2 = mkV2 "听" ;
|
||||
--know_V = mkV "知道" ;
|
||||
think_V = mkV "想" ;
|
||||
smell_V = mkV "闻" ; -- [mark] "嗅" -> "闻", "闻" is the common form for smell.
|
||||
fear_V2 = mkV2 "怕" ;
|
||||
--sleep_V = mkV "睡" ;
|
||||
live_V = mkV "活" ;
|
||||
die_V = mkV "死" ;
|
||||
kill_V2 = mkV2 "杀" ;
|
||||
@@ -123,7 +110,6 @@ scratch_V2 = mkV2 "搔" ;
|
||||
dig_V = mkV "挖" ;
|
||||
swim_V = mkV "游泳" ;
|
||||
fly_V = mkV "飞" ;
|
||||
--walk_V = mkV "走" ;
|
||||
come_V = mkV "来" ;
|
||||
lie_V = mkV "躺" ;
|
||||
sit_V = mkV "坐" ;
|
||||
@@ -174,7 +160,6 @@ burn_V = mkV "烧" ;
|
||||
road_N = mkN "路" "条";
|
||||
mountain_N = mkN "山" "座";
|
||||
red_A = mkA "红" ;
|
||||
--green_A = mkA "绿" ;
|
||||
yellow_A = mkA "黄" ;
|
||||
white_A = mkA "白" ;
|
||||
black_A = mkA "黑" ;
|
||||
@@ -199,7 +184,7 @@ wet_A = mkA "湿" ;
|
||||
dry_A = mkA "干" ;
|
||||
correct_A = mkA "对" ;
|
||||
near_A = mkA "近" ;
|
||||
far_A = mkA "远" ;
|
||||
--far_A = mkA "远" ;
|
||||
left_Ord = ss "左" ;
|
||||
right_Ord = ss "右" ;
|
||||
name_N = mkN "名字" ; -- [mark] "名" --> "名字"
|
||||
@@ -234,10 +219,8 @@ cow_N = mkN "牛" "头";
|
||||
do_V2 = mkV2 "做" ;
|
||||
doctor_N = mkN "医生" "名";
|
||||
door_N = mkN "门" "扇";
|
||||
---easy_A2V = mkA "容易" ;
|
||||
factory_N = mkN "工厂" "间";
|
||||
far_Adv = mkAdv "远" ;
|
||||
---father_N2 = mkN2 "父亲" ;
|
||||
fear_VS = mkVS (mkV "怕") ;
|
||||
find_V2 = mkV2 "发现" ;
|
||||
forget_V2 = mkV2 "忘" ;
|
||||
@@ -245,20 +228,13 @@ friend_N = mkN "朋友" ;
|
||||
girl_N = mkN "姑娘" ;
|
||||
give_V3 = mkV3 "给" ;
|
||||
go_V = mkV "去" ;
|
||||
--go_N = mkN "往" ;
|
||||
grammar_N = mkN "语法" ;
|
||||
hat_N = mkN "帽子" "顶";
|
||||
--take_N = mkN "带" ;
|
||||
--have_N = mkN "有" ;
|
||||
--take_N = mkN "带" ;
|
||||
--have_N = mkN "有" ;
|
||||
hill_N = mkN "山" "座";
|
||||
hope_VS = mkV "希望" ;
|
||||
horse_N = mkN "马" "匹";
|
||||
hot_A = mkA "热" ;
|
||||
--how many_N = mkN "多少" ;
|
||||
important_A = mkA "重要" ;
|
||||
--heavy_A = mkA "重" ;
|
||||
industry_N = mkN "工业" [];
|
||||
jump_V = mkV "跳" ;
|
||||
know_V2 = mkV2 "知道" ;
|
||||
@@ -266,16 +242,11 @@ know_VQ = mkV "知道" ;
|
||||
lamp_N = mkN "灯" "盏";
|
||||
language_N = mkN "语言" "种";
|
||||
learn_V2 = mkV2 "学" ;
|
||||
--leave_N = mkN "离开" ;
|
||||
leave_V2 = mkV2 "离开" ; --[mark] "离" --> "离开", "离" itself is either a morpheme, or a marker indicating distance
|
||||
--walk_N = mkN "走" ;
|
||||
like_V2 = mkV2 "喜欢" ;
|
||||
--be willing_N = mkN "愿意" ;
|
||||
listen_V2 = mkV2 "听" ;
|
||||
lose_V2 = mkV2 "丢" ;
|
||||
--love_N = mkN "喜欢" ;
|
||||
love_V2 = mkV2 "爱" ;
|
||||
---mother_N2 = mkN2 "妈" ;
|
||||
music_N = mkN "音乐" [] ; -- [mark] usually without classifier
|
||||
newspaper_N = mkN "报纸" "张"; --[mark] "报" --> "报纸"
|
||||
now_Adv = mkAdv "现在" ;
|
||||
@@ -283,91 +254,43 @@ number_N = mkN "号码" ; -- [mark] "号" --> "号码"
|
||||
open_V2 = mkV2 "开" ;
|
||||
paint_V2A = mkV2A (mkV "画") ;
|
||||
paper_N = mkN "纸" "张";
|
||||
--place_N = mkN "地方" ;
|
||||
--part_N = mkN "部分" ;
|
||||
pen_N = mkN "笔" "只";
|
||||
--pen_N = mkN "钢笔" "只";
|
||||
person_N = mkN "人" ;
|
||||
--beat_N = mkN "打" ;
|
||||
--pull_N = mkN "拉" ;
|
||||
play_V2 = mkV2 "玩" ; --[mark] "玩儿" --> "玩"
|
||||
--perform_N = mkN "表演" ;
|
||||
--have_N = mkN "有" ;
|
||||
put_V2 = mkV2 "摆" ;
|
||||
--let go_N = mkN "放" ;
|
||||
question_N = mkN "问题" ;
|
||||
|
||||
--be enough_N = mkN "够" ;
|
||||
--very_N = mkN "很" ;
|
||||
rain_V0 = mkV "下雨";
|
||||
read_V2 = mkV2 "读" ;
|
||||
reason_N = mkN "道理" ;
|
||||
restaurant_N = mkN "饭店" "间";
|
||||
--appropriate_N = mkN "合适" ;
|
||||
--correct_N = mkN "正确" ;
|
||||
--run_N = mkN "跑步" ;
|
||||
run_V = mkV "跑" ;
|
||||
--road_N = mkN "道" ;
|
||||
school_N = mkN "学校" "所";
|
||||
science_N = mkN "科学" []; -- [mark] usually without classifier
|
||||
sell_V3 = mkV3 "卖" ;
|
||||
--go_N = mkN "去" ;
|
||||
send_V3 = mkV3 "寄" ;
|
||||
--clap_N = mkN "拍" ;
|
||||
sheep_N = mkN "羊" "只";
|
||||
ship_N = mkN "船" "艘";
|
||||
shoe_N = mkN "鞋" "只";
|
||||
shop_N = mkN "商店" "间";
|
||||
--of that kind_N = mkN "那样" ;
|
||||
--what_N = mkN "什么" ;
|
||||
song_N = mkN "歌" "首";
|
||||
--tell_N = mkN "讲" ;
|
||||
speak_V2 = mkV2 "说" ;
|
||||
--road_N = mkN "道" ;
|
||||
--live_N = mkN "住" ;
|
||||
--act as_N = mkN "当" ;
|
||||
student_N = mkN "学生" "名" ;
|
||||
table_N = mkN "桌子" "张";
|
||||
--word_N = mkN "话" ;
|
||||
talk_V3 = mkV3 "说" ;
|
||||
--talk_N = mkN "谈" ;
|
||||
--education_N = mkN "教育" ;
|
||||
teach_V2 = mkV2 "教" ;
|
||||
--coach_N = mkN "辅导" ;
|
||||
--teacher_N = mkN "先生" ;
|
||||
--master worker_N = mkN "师傅" ;
|
||||
teacher_N = mkN "老师" "名";
|
||||
television_N = mkN "电视" "台";
|
||||
--that_N = mkN "那个" ;
|
||||
--that_N = mkN "那" ;
|
||||
--from_N = mkN "从" ;
|
||||
--by way of_N = mkN "通过" ;
|
||||
--towards_N = mkN "向" ;
|
||||
--and_N = mkN "和" ;
|
||||
today_Adv = mkAdv "今天" ;
|
||||
--now_N = mkN "现在" ;
|
||||
--also_N = mkN "也" ;
|
||||
train_N = mkN "火车" "辆";
|
||||
travel_V = mkV "旅行" ;
|
||||
--below_N = mkN "下边" ;
|
||||
--understand_N = mkN "了解" ;
|
||||
understand_V2 = mkV2 "懂" ;
|
||||
--recognize_N = mkN "认识" ;
|
||||
--open up_N = mkN "通" ;
|
||||
university_N = mkN "大学" "所";
|
||||
wait_V2 = mkV2 "等" ;
|
||||
--need_N = mkN "需要" ;
|
||||
watch_V2 = mkV2 "看" ;
|
||||
--time_N = mkN "时候" ;
|
||||
--wait_N = mkN "等" ;
|
||||
--what_N = mkN "什么" ;
|
||||
--how_N = mkN "怎么" ;
|
||||
win_V2 = mkV2 "赢" ;
|
||||
--window_N = mkN "窗户" ;
|
||||
window_N = mkN "窗" "扇";
|
||||
wine_N = mkN "酒" "瓶";
|
||||
--leave_N = mkN "离" ;
|
||||
--do_N = mkN "作" ;
|
||||
write_V2 = mkV2 "写" ;
|
||||
young_A = mkA "年轻" ;
|
||||
|
||||
@@ -427,7 +350,7 @@ war_N = mkN "战争" "场" ; -- [mark] rewritten
|
||||
wood_N = mkN "木头" "块" ; -- [mark] "木" --> "木头"
|
||||
|
||||
|
||||
-- just missing
|
||||
-- from scratch, by Jolene
|
||||
|
||||
lin
|
||||
alas_Interj = ssword "唉" ;
|
||||
|
||||
@@ -10,7 +10,7 @@ concrete NounChi of Noun = CatChi ** open ResChi, Prelude in {
|
||||
UsePN pn = pn ;
|
||||
UsePron p = p ;
|
||||
|
||||
DetNP det = det ;
|
||||
DetNP det = {s = det.s ++ ge_s} ; ----
|
||||
|
||||
PredetNP pred np = mkNP (pred.s ++ possessive_s ++ np.s) ;
|
||||
|
||||
@@ -19,7 +19,10 @@ concrete NounChi of Noun = CatChi ** open ResChi, Prelude in {
|
||||
AdvNP np adv = mkNP (adv.s ++ possessive_s ++ np.s) ;
|
||||
|
||||
DetQuant quant num = {
|
||||
s = quant.s ++ num.s ;
|
||||
s = case num.numType of {
|
||||
NTFull => quant.pl ++ num.s ; -- to avoid yi in indef
|
||||
_ => quant.s ++ num.s
|
||||
} ;
|
||||
detType = case num.numType of {
|
||||
NTFull => DTNum ; -- five
|
||||
NTVoid n => case quant.detType of {
|
||||
@@ -33,15 +36,12 @@ concrete NounChi of Noun = CatChi ** open ResChi, Prelude in {
|
||||
s = quant.s ++ num.s ++ ord.s ;
|
||||
detType = case num.numType of {
|
||||
NTFull => DTNum ; -- five
|
||||
NTVoid n => case quant.detType of {
|
||||
DTPoss => DTPoss ; -- our
|
||||
_ => DTFull n -- these/this
|
||||
}
|
||||
NTVoid n => DTFull n -- these/this ; also our, when ord is present
|
||||
}
|
||||
} ;
|
||||
|
||||
PossPron p = {
|
||||
s = p.s ++ possessive_s ;
|
||||
s,pl = p.s ++ possessive_s ;
|
||||
detType = DTPoss
|
||||
} ;
|
||||
|
||||
@@ -52,15 +52,15 @@ concrete NounChi of Noun = CatChi ** open ResChi, Prelude in {
|
||||
NumDigits d = d ** {numType = NTFull} ;
|
||||
OrdDigits d = {s = ordinal_s ++ d.s} ;
|
||||
|
||||
NumNumeral numeral = numeral ** {hasC = True} ;
|
||||
NumNumeral numeral = {s = numeral.p} ; -- liang instead of yi
|
||||
OrdNumeral numeral = {s = ordinal_s ++ numeral.s} ;
|
||||
|
||||
AdNum adn num = {s = adn.s ++ num.s ; hasC = True} ;
|
||||
|
||||
OrdSuperl a = {s = superlative_s ++ a.s} ;
|
||||
|
||||
DefArt = mkDet the_s ;
|
||||
IndefArt = mkDet yi_s ; ---- in the plural ?
|
||||
DefArt = mkQuant [] [] DTPoss ; -- use that_Quant if you want the_s
|
||||
IndefArt = mkQuant yi_s [] (DTFull Sg) ; -- empty in the plural
|
||||
|
||||
MassNP cn = cn ;
|
||||
|
||||
|
||||
@@ -16,55 +16,53 @@ oper Wan : Zero => Str =
|
||||
|
||||
oper mkD : Str -> Str -> Str = \x,_ -> word x ; -- hiding the "formal" version
|
||||
|
||||
--lincat Numeral = {s : Str} ;
|
||||
lincat Digit = {s : Str} ;
|
||||
lincat Sub10 = {s : Str} ;
|
||||
lincat Sub100 = {inh : Zero ; s : Bform => Str} ;
|
||||
lincat Sub1000 = {inh : Zero ; s : Qform => Str} ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ;
|
||||
lincat Digit = {s,p : Str} ;
|
||||
lincat Sub10 = {s,p : Str} ;
|
||||
lincat Sub100 = {inh : Zero ; s,p : Bform => Str} ;
|
||||
lincat Sub1000 = {inh : Zero ; s,p : Qform => Str} ;
|
||||
lincat Sub1000000 = {s,p : Str} ;
|
||||
lin num x0 = x0 ;
|
||||
|
||||
-- 一二三四五六七八九十一百千
|
||||
--
|
||||
|
||||
lin n2 =
|
||||
{s = mkD "二" "贰"} ;
|
||||
{s = mkD "二" "贰" ; p = "两"} ;
|
||||
lin n3 =
|
||||
{s = mkD "三" "叁"} ;
|
||||
{s,p = mkD "三" "叁"} ;
|
||||
lin n4 =
|
||||
{s = mkD "四" "肆"} ;
|
||||
{s,p = mkD "四" "肆"} ;
|
||||
lin n5 =
|
||||
{s = mkD "五" "伍"} ;
|
||||
{s,p = mkD "五" "伍"} ;
|
||||
lin n6 =
|
||||
{s = mkD "六" "陆"} ;
|
||||
{s,p = mkD "六" "陆"} ;
|
||||
lin n7 =
|
||||
{s = mkD "七" "柒"} ;
|
||||
{s,p = mkD "七" "柒"} ;
|
||||
lin n8 =
|
||||
{s = mkD "八" "捌"} ;
|
||||
{s,p = mkD "八" "捌"} ;
|
||||
lin n9 =
|
||||
{s = mkD "九" "玖"} ;
|
||||
{s,p = mkD "九" "玖"} ;
|
||||
lin pot01 =
|
||||
{s = mkD "一" "壹"} ;
|
||||
{s,p = mkD "一" "壹"} ;
|
||||
lin pot0 d =
|
||||
{s = d.s} ;
|
||||
{s = d.s ; p = d.p} ;
|
||||
lin pot110 =
|
||||
{inh = nozero ;
|
||||
s = table {
|
||||
s,p = table {
|
||||
shi => mkD "一十" "壹拾" ;
|
||||
shi0 => mkD "一十" "壹拾" ;
|
||||
wan => mkD "一万" "壹万" ;
|
||||
wan0 => mkD "一万" "壹万"}} ;
|
||||
lin pot111 =
|
||||
{inh = nozero ;
|
||||
s = table {
|
||||
s,p = table {
|
||||
shi => mkD "十一" "拾壹" ;
|
||||
shi0 => mkD "一十一" "壹拾壹" ;
|
||||
wan => mkD "十一万" "拾壹万" ;
|
||||
wan0 => mkD "十一万" "拾壹万"}} ;
|
||||
lin pot1to19 d =
|
||||
{inh = nozero ;
|
||||
s = table {
|
||||
s,p = table {
|
||||
shi => mkD "一十" "壹拾" ++ d.s ;
|
||||
shi0 => mkD "一十" "壹拾" ;
|
||||
wan => mkD "一万" "壹万" ++ d.s ++ mkD "千" "仟" ;
|
||||
@@ -75,17 +73,23 @@ lin pot0as1 n =
|
||||
shi => n.s ;
|
||||
shi0 => n.s ;
|
||||
wan => n.s ++ mkD "千" "仟" ;
|
||||
wan0 => n.s ++ mkD "千" "仟"}} ;
|
||||
wan0 => n.s ++ mkD "千" "仟"} ;
|
||||
p = table {
|
||||
shi => n.p ;
|
||||
shi0 => n.s ;
|
||||
wan => n.s ++ mkD "千" "仟" ;
|
||||
wan0 => n.s ++ mkD "千" "仟"}
|
||||
} ;
|
||||
lin pot1 d =
|
||||
{inh = zero ;
|
||||
s = table {
|
||||
s,p = table {
|
||||
shi => d.s ++ mkD "十" "拾" ;
|
||||
shi0 => d.s ++ mkD "十" "拾" ;
|
||||
wan0 => d.s ++ "万" ;
|
||||
wan => d.s ++ "万"}} ;
|
||||
lin pot1plus d e =
|
||||
{inh = nozero ;
|
||||
s = table {
|
||||
s,p = table {
|
||||
shi => d.s ++ mkD "十" "拾" ++ e.s ;
|
||||
shi0 => d.s ++ mkD "十" "拾" ++ e.s ;
|
||||
wan => d.s ++ "万" ++ e.s ++ mkD "千" "仟" ;
|
||||
@@ -96,27 +100,32 @@ lin pot1as2 n =
|
||||
bai => n.s ! shi ;
|
||||
bai0 => n.s ! shi ;
|
||||
shiwan => n.s ! wan ;
|
||||
shiwan0 => n.s ! wan0} ;
|
||||
p = table {
|
||||
bai => n.p ! shi ;
|
||||
bai0 => n.s ! shi ;
|
||||
shiwan => n.s ! wan ;
|
||||
shiwan0 => n.s ! wan0}} ;
|
||||
lin pot2 d =
|
||||
{inh = zero ;
|
||||
s = table {
|
||||
s,p = table {
|
||||
bai => d.s ++ mkD "百" "佰" ;
|
||||
bai0 => d.s ++ mkD "百" "佰" ;
|
||||
shiwan0 => d.s ++ mkD "十万" "拾万" ;
|
||||
shiwan => d.s ++ mkD "十万" "拾万"}} ;
|
||||
lin pot2plus d e =
|
||||
{inh = nozero ;
|
||||
s = table {
|
||||
s,p = table {
|
||||
bai => d.s ++ mkD "" "佰" ++ (ling ! <e.inh,e.inh>) ++ e.s ! shi0 ;
|
||||
bai0 => d.s ++ mkD "" "佰" ++ (ling ! <e.inh,e.inh>) ++ e.s ! shi0 ;
|
||||
shiwan => d.s ++ mkD "" "拾" ++ (Wan ! (e.inh)) ++ e.s ! wan ;
|
||||
shiwan0 => d.s ++ mkD "" "拾" ++ (Wan ! (e.inh)) ++ e.s ! wan0}} ;
|
||||
lin pot2as3 n =
|
||||
{s = n.s ! bai} ;
|
||||
{s = n.s ! bai ; p = n.p ! bai} ;
|
||||
lin pot3 n =
|
||||
{s = n.s ! shiwan} ;
|
||||
{s,p = n.s ! shiwan} ;
|
||||
lin pot3plus n m =
|
||||
{s = (n.s ! shiwan0) ++ (ling ! <n.inh,m.inh>) ++ m.s ! bai0} ;
|
||||
{s,p = (n.s ! shiwan0) ++ (ling ! <n.inh,m.inh>) ++ m.s ! bai0} ;
|
||||
|
||||
|
||||
-- numerals as sequences of digits
|
||||
|
||||
@@ -287,6 +287,14 @@ p. 242 coverbs
|
||||
p. 255 disyllabic prepositions
|
||||
|
||||
|
||||
Today's work 6h AR, 3h Jolene. Total 29h.
|
||||
|
||||
Jolene worked 3 weeks for the extended mini Chinese. This means the complete (but not yet perfect) Chinese
|
||||
RGL implementation took 4 person weeks altogether. The remaining immediate fixes shouldn't take a lot of time.
|
||||
However, there is a lot of Chinese that we will leave outside the common RGL abstract syntax.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ resource ResChi = ParamX ** open Prelude in {
|
||||
exclmark_s = "!" ;
|
||||
ge_s = "个" ;
|
||||
di_s = "是" ; -- used in QuestSlash
|
||||
ba_s = "把" ;
|
||||
|
||||
emptyStr = [] ;
|
||||
|
||||
@@ -188,6 +189,7 @@ param
|
||||
|
||||
oper
|
||||
Determiner = {s : Str ; detType : DetType} ;
|
||||
Quantifier = Determiner ** {pl : Str} ;
|
||||
|
||||
mkDet = overload {
|
||||
mkDet : Str -> Determiner = \s -> {s = s ; detType = DTFull Sg} ;
|
||||
@@ -195,7 +197,11 @@ oper
|
||||
mkDet : Str -> DetType -> Determiner = \s,d -> {s = s ; detType = d} ;
|
||||
} ;
|
||||
|
||||
mkQuant : Str -> {s : Str} = ss ;
|
||||
mkQuant = overload {
|
||||
mkQuant : Str -> Quantifier = \s -> {s,pl = s ; detType = DTFull Sg} ;
|
||||
mkQuant : Str -> DetType -> Quantifier = \s,d -> {s,pl = s ; detType = d} ;
|
||||
mkQuant : Str -> Str -> DetType -> Quantifier = \s,p,d -> {s = s ; detType = d ; pl = p} ;
|
||||
} ;
|
||||
|
||||
pronNP : (s : Str) -> NP = \s -> {
|
||||
s = word s
|
||||
|
||||
@@ -6,8 +6,8 @@ concrete StructuralChi of Structural = CatChi **
|
||||
lin
|
||||
every_Det = mkDet "每" Sg ;
|
||||
|
||||
this_Quant = mkDet "这" ;
|
||||
that_Quant = mkDet "那" ;
|
||||
this_Quant = mkQuant "这" ;
|
||||
that_Quant = mkQuant "那" ;
|
||||
|
||||
i_Pron = pronNP "我" ;
|
||||
youSg_Pron = pronNP "你" ;
|
||||
@@ -23,8 +23,6 @@ lin
|
||||
in_Prep = mkPrep "里" [];
|
||||
possess_Prep = mkPrep "的" [];
|
||||
with_Prep = mkPrep "一起" "和";
|
||||
|
||||
ba_s = "把" ;
|
||||
|
||||
and_Conj = {s = table {
|
||||
CPhr CNPhrase => mkConjForm "和" ;
|
||||
@@ -71,9 +69,9 @@ under_Prep = mkPrep "下" ;
|
||||
why_IAdv = mkIAdvL "为什么" ;
|
||||
too_AdA = mkAdA "太" ;
|
||||
|
||||
before_Prep = mkPrep "从前" ; --s
|
||||
between_Prep = mkPrep "之间" ; --s
|
||||
but_PConj = mkPConjL "但是" ; --s
|
||||
before_Prep = mkPrep "从前" ;
|
||||
between_Prep = mkPrep "之间" ;
|
||||
but_PConj = mkPConjL "但是" ;
|
||||
|
||||
|
||||
can_VV = mkVerb "能" [] [] [] [] "不" ;
|
||||
@@ -83,23 +81,16 @@ but_PConj = mkPConjL "但是" ; --s
|
||||
can8know_VV = mkV "会" [] [] [] [] "不" ; ----
|
||||
|
||||
|
||||
except_Prep = mkPrep "除了" "以外" ; --s
|
||||
for_Prep = mkPrep "为了" ; --s
|
||||
from_Prep = mkPrep "从" ; --s
|
||||
---how8many_IDet = mkIDet "几" ; --s
|
||||
---how8much_IDet = mkIDet "多少" ; --s
|
||||
in8front_Prep = mkPrep "前边" ; --s
|
||||
it_Pron = pronNP "它" ; --s
|
||||
---less_CAdv = mkCAdv "少" ; --s
|
||||
much_Det = mkDet "多" Sg ; --s
|
||||
---more_CAdv = mkCAdv "更" ; --s
|
||||
---most_Predet = mkPredet "最" ; --s
|
||||
no_Quant = mkDet "不" ; --s
|
||||
except_Prep = mkPrep "除了" "以外" ;
|
||||
for_Prep = mkPrep "为了" ;
|
||||
from_Prep = mkPrep "从" ;
|
||||
in8front_Prep = mkPrep "前边" ;
|
||||
it_Pron = pronNP "它" ;
|
||||
much_Det = mkDet "多" Sg ;
|
||||
no_Quant = mkQuant "不" ;
|
||||
not_Predet = ssword "不" ;
|
||||
---only_Predet = mkPredet "只" ; --s
|
||||
otherwise_PConj = mkPConjL "还是" ; --s
|
||||
to_Prep = mkPrep "往" ; --s
|
||||
---which_IQuant = mkIQuant "哪" ; --s
|
||||
otherwise_PConj = mkPConjL "还是" ;
|
||||
to_Prep = mkPrep "往" ;
|
||||
|
||||
have_V2 = mkV2 "有" ;
|
||||
|
||||
@@ -109,7 +100,7 @@ no_Utt = ss neg_s ;
|
||||
oper
|
||||
mkConjForm : Str -> {s1,s2 : Str} = \s -> {s1 = [] ; s2 = word s} ;
|
||||
|
||||
-- manually by AR
|
||||
-- manually by AR, Jolene
|
||||
|
||||
lin
|
||||
always_AdV = ssword "一直" ;
|
||||
@@ -159,7 +150,8 @@ there7from_Adv = mkAdv "从那里" ; -- from there
|
||||
there7to_Adv = mkAdv "到那里" ;
|
||||
therefore_PConj = ssword "因此" ;
|
||||
through_Prep = mkPrep "通过" ;
|
||||
which_IQuant = ssword [] ; -- [mark] in sent, it depends on the context
|
||||
which_IQuant = mkIQuant "哪" ;
|
||||
--which_IQuant = ssword [] ; -- [mark] in sent, it depends on the context
|
||||
without_Prep = mkPrep "没有" [];
|
||||
youPol_Pron = ssword "您" ; -- polite you
|
||||
|
||||
|
||||
@@ -5,16 +5,16 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in {
|
||||
lin
|
||||
UseV = predV ;
|
||||
|
||||
SlashV2a v = predV v ** {c2 = v.c2} ;
|
||||
SlashV2a v = predV v ** {c2 = v.c2 ; isPre = False} ;
|
||||
|
||||
Slash2V3 v np = insertObj np (predV v) ** {c2 = v.c3} ; ---- to check arg order
|
||||
Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2} ;
|
||||
Slash2V3 v np = insertObj np (predV v) ** {c2 = v.c3 ; isPre = True} ;
|
||||
Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2 ; isPre = False} ;
|
||||
|
||||
SlashV2A v ap = insertObj ap (predV v) ** {c2 = v.c2} ;
|
||||
SlashV2A v ap = insertObj ap (predV v) ** {c2 = v.c2 ; isPre = True} ;
|
||||
|
||||
SlashV2V v vp = insertObj (mkNP (infVP vp)) (predV v) ** {c2 = v.c2} ;
|
||||
SlashV2S v s = insertObj s (predV v) ** {c2 = v.c2} ;
|
||||
SlashV2Q v q = insertObj q (predV v) ** {c2 = v.c2} ;
|
||||
SlashV2V v vp = insertObj (mkNP (infVP vp)) (predV v) ** {c2 = v.c2 ; isPre = True} ;
|
||||
SlashV2S v s = insertObj s (predV v) ** {c2 = v.c2 ; isPre = True} ;
|
||||
SlashV2Q v q = insertObj q (predV v) ** {c2 = v.c2 ; isPre = True} ;
|
||||
|
||||
ComplVV v vp = {
|
||||
verb = v ;
|
||||
@@ -26,16 +26,19 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in {
|
||||
ComplVQ v q = insertObj q (predV v) ;
|
||||
ComplVA v ap = insertObj ap (predV v) ;
|
||||
|
||||
ComplSlash vp np = insertObj (mkNP (appPrep vp.c2 np.s)) vp ;
|
||||
ComplSlash vp np = case vp.isPre of {
|
||||
True => insertAdv (mkNP (ba_s ++ np.s)) vp ; --- ba or vp.c2 ?
|
||||
False => insertObj (mkNP (appPrep vp.c2 np.s)) vp
|
||||
} ;
|
||||
|
||||
UseComp comp = comp ;
|
||||
|
||||
SlashVV v vp = ---- too simple?
|
||||
insertObj (mkNP (infVP vp)) (predV v) ** {c2 = vp.c2} ;
|
||||
insertObj (mkNP (infVP vp)) (predV v) ** {c2 = vp.c2 ; isPre = vp.isPre} ;
|
||||
|
||||
SlashV2VNP v np vp =
|
||||
insertObj np
|
||||
(insertObj (mkNP (infVP vp)) (predV v)) ** {c2 = vp.c2} ;
|
||||
(insertObj (mkNP (infVP vp)) (predV v)) ** {c2 = vp.c2 ; isPre = vp.isPre} ;
|
||||
|
||||
AdvVP vp adv = case adv.advType of {
|
||||
ATManner => insertObj (ss (deVAdv_s ++ adv.s)) vp ; -- he sleeps well
|
||||
|
||||
Reference in New Issue
Block a user