希字码
希字码,或 XCC( Charater Code),是希顶社区设计的,用于表示希顶语的字音的一套二进制编码系统。系统从实际的明文字音里抽象出不同元素的逻辑顺序,可以用于表示原希和希雅、标希、〇改等希顶方言的字音。
在此之外,除了二进制形式,我们另设计了对应的字符化形式(SXCC,Stringified Charater Code)与十进制形式(或称电码形式,分为标希用与希雅用)。
系统说明
编码格式
为保持与ASCII的兼容性,编码中每一字节的首位(高位)不包含编码信息,仅填入1。
| b0 | 5位,声母 | 2位,介母 | b0 | 4位,韵母 | 3位,编码后缀 |
|---|
如此安排,两个字节可表示一个希顶音节,即一个token。音节中对应的声、介、韵采用希顶拼写中的表层形式,不转化至音系上的底层形式。特别地,-、- 记为 ü-、ü-,因其拼写仅为字面上的简写:
| 0 | 4 | 8 | C | |
|---|---|---|---|---|
| 80+ | ∅ | | | |
| 90+ | | | | |
| A0+ | | | | |
| B0+ | | | | |
| C0+ | | | | |
| D0+ | | | | |
| E0+ | | | | |
| F0+ | | | 空 | 空 |
包含原希的29个声母与一个空声母,其中不包含扩充字母 、。右下角两个空位设计用于扩展或其他符号的兼容。
| +0 | ∅ |
| +1 | |
| +2 | |
| +3 | ü |
包含3个介母与一个空介母。其中 ü 用于拼写原希中的非规则音节(如 彪 ü)和 -、-。
| 1 | 9 | 11 | 19 | |
|---|---|---|---|---|
| 80+ | ∅ | | | |
| A0+ | | | | |
| C0+ | | | | |
| E0+ | | | | |
包含15个韵母和一个空韵母。其中构成原希中的非规则音节(如 私 )。
对于部首的编码。即只取声、介、韵之一,其余部分填充为空。所以用于排序时部首字母的顺序韵母最前、介母稍后、声母最后。
| 编码 | 含义 | SXCC形式 |
|---|---|---|
| -1 | 字音终止 | ! |
| ±0 | 平凡状态 | |
| +1 | 常态且字音终止 | Z! |
| +2 | 常态 | Z |
| +3 | 转置且字音终止 | X! |
| +4 | 转置 | X |
| +5 | 声旁、音节连接 | - |
编码后缀添加在音节或部首后,Z 和 X 用于处理 转置 和 常态,! 用于结束一个字音,- 用于连接多音节的声旁或无法用一码表示的复杂非规则音节。
容易发现,一个空音节(声、介、韵皆空)也可添加编码后缀,这是实用的:有时我们需要同时添加多个编码后缀,这时较为后者就应添加在序列随后的空音节上。值得注意的是,编码后缀独立出来和合并在前面的音节上是等价的,但储存时通常需正规化(计算NXCC时尤其需要注意),尽可能合并到一个音节上。(注:在多树希顶方言中,部首或许也与常态编码后缀等价。)
对应字音关系
希字码用于描述希顶语字音,亦实现希雅语为表层呈现(同时对应标希、〇改,但不构成双射)。可支持音译声旁和嵌套部首、多重H、整字部首等多种形式。作为希字码仅需按顺序罗列元素与所需的编码后缀,便于解析、分析、排序。
希字码到希顶语字音的过程称解码(decode),对于不同方言的实现不同。下面是对于希雅语所需的逻辑:
我们应逐token地处理XCC序列,并将结果暂时保存为由每步输出构成的(双向均需增加的)字符串列表而非单个字符串。第一个token通常应为一个音节或一个空音节。(如不构成音节或视同一个多(非1)音节声旁,或视为非法序列,更推荐的形式可以是一个空音节后加 - 。)如遇 - 则连接下一token成为多音节声旁。
我们记方向为 Δ,记反向操作为 -Δ,记前后为 ◅、▻。通常的初始Δ= ◅。遇到一般的部首、Z 时我们的 Δ 不变,仅需在Δ添加对应的部首或 。遇到 X 时Δ:=-Δ,并在Δ的序列上添加 '(如◅) 或 '(如▻)。特别注意,对于单音节声旁下的序列,第一次出现X对应的 ' 可省略,如后有声旁则 也可省略。多音节声旁应在其Δ添加一个 '。
如遇到第二个音节或空音节(仅限含 - 的),则代表进入一个子序列(用于构造整字部首)。我们按照递归的方式执行我们的解码过程,将结果用 "" 包裹,像部首一样添加在 Δ 上。
反复进行上述操作,直到序列尾的 !,如序列未闭合则为非法序列或用于检索查询的不完整序列。
在这之后我们对完整的字符串列表进行后处理,对相邻元素看起来成为音节但并非连续的部分添加 ',如原有 ' 则调整为 ''。
完毕。
希顶语字音到希字码的过程称编码(encode),对于不同方言的实现不同。下略。
SXCC
SXCC,Stringified Charater Code,是XCC的字符化形式。通常为逐token描写XCC的风貌。对于音节或部首,通常用聊天字母逐个写出,特例 作 S。对于空音节通常不写,但如无编码后缀则记 0。对于编码后缀如上文记 !、Z!、Z、X!、X、- 。
例如 ' 对应 9c a5 88 85 d0 82 记 tSX pX yZ!,""'' 对应 80 8E 96 8E 9C 89 B8 81 DC 89 9C 80 80 80 记 a- mua- ta s ka t! !。
对于已正规化的XCC,对应的SXCC也可不写 - 与一部分空格,如 a- mua- ta s ka t! ! 可记为 amuata s ka t!! 或 a-mua-ta s ka t!!。
NXCC
NXCC,Numfied Charater Code,是XCC的十进制数码形式,主要用于排序比较和文字编号(也可作为电码使用)。分为标希用与希雅用两种,前者为十进制浮点数,能描述所有合法XCC;后者为十进制整数,仅描述合法的标希字音。下略。
希雅语
↪ 请查看页面:希雅语
相关 demo 与解析库
……