希字碼
希字碼,或 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 與解析庫
……