莫禮平 周愷卿
?
一種湘西民間苗文字形的動態(tài)生成方法及其實(shí)現(xiàn)途徑
莫禮平1,2,?周愷卿3
1.吉首大學(xué)信息科學(xué)與工程學(xué)院, 吉首 416000; 2.中南大學(xué)信息科學(xué)與工程學(xué)院, 長沙 410083; 3.馬來西亞理工大學(xué)計算學(xué)院, 士古來 81310; ?通信作者, E-mail: zmx89@163.com
為了有效地解決湘西民間苗文字形的生成及描述問題, 提出一種字形的動態(tài)生成方法。該方法將苗文字形的生成過程表示為由苗文構(gòu)件作為操作數(shù)、由構(gòu)件位置關(guān)系決定運(yùn)算符的組合運(yùn)算表達(dá)式, 將2~3個構(gòu)件進(jìn)行不同的組合運(yùn)算, 即可動態(tài)生成不同結(jié)構(gòu)的苗文字形。利用操作系統(tǒng)自帶的表意文字描述序列解釋機(jī)制, 將構(gòu)件組合運(yùn)算表達(dá)式轉(zhuǎn)換為表意文字描述序列, 即可實(shí)現(xiàn)該方法。測試結(jié)果表明, 根據(jù)該方法編寫的映射腳本生成的湘西民間苗文字形可以滿足實(shí)用要求。
民間苗文; 字形; 上下文無關(guān)文法; 表意文字描述序列
湘西民間苗文由清朝末年以來一些民族知識分子創(chuàng)制, 主要包括板塘苗文、老寨苗文、古丈苗文三套方塊苗文[1]。2011年以來, 隨著《湖南武陵山片區(qū)區(qū)域發(fā)展與扶貧攻堅規(guī)劃(2011–2020)》的全面實(shí)施, 以世界自然遺產(chǎn)旅游區(qū)張家界和國家歷史文化名城鳳凰重點(diǎn)旅游景區(qū)為依托的民族文化旅游產(chǎn)業(yè)得到迅速發(fā)展, 非物質(zhì)民族文化遺產(chǎn)數(shù)字化保護(hù)工作也逐漸受到重視。然而, 作為武陵山片區(qū)民族文化主要載體的湘西民間苗文, 其信息處理研究工作和成果鮮有報道。近年來, 莫禮平等[2–4]針對三套方塊苗文, 在字庫設(shè)計、文字輸入等方面開展了一系列研究, 并取得階段性成果。
字形的生成及描述是湘西民間苗文在字層面信息處理技術(shù)研究的重要內(nèi)容。本文提出一種基于構(gòu)件組合運(yùn)算的湘西民間苗文字形動態(tài)生成方法, 并結(jié)合Unicode提供的表意文字描述規(guī)范, 討論該方法不占用編碼區(qū)間的實(shí)現(xiàn)途徑。
1 湘西民間苗文的造字原理及構(gòu)字方式
1.1 造字原理
板塘苗文、老寨苗文和古丈苗文這三套湘西民間苗文均屬于表意文字, 基本上都是合體字。創(chuàng)制者借鑒漢字的造字原理, 創(chuàng)造性地運(yùn)用形聲、會意、象形、假借等手段, 采用一字一音節(jié)的方法來標(biāo)記一個語素或詞。三套文字的結(jié)構(gòu)類型大致分為4種[1]: 左右結(jié)構(gòu)(最多)、上下結(jié)構(gòu)(較多)、側(cè)圍結(jié)構(gòu)(較少)和內(nèi)外結(jié)構(gòu)(極少)。表1給出不同結(jié)構(gòu)的湘西民間苗文字例及其漢義。
表1 不同結(jié)構(gòu)湘西民間苗文字例及漢義
湘西民間苗文創(chuàng)制時, 遵循“取個人認(rèn)為最易認(rèn)易記的漢字或符號作為代表符號”的標(biāo)準(zhǔn), 直接用含義明確、結(jié)構(gòu)或筆畫較簡單且日常使用頻率較高的漢字或偏旁, 以及極個別無音無義的純粹符號(如“X”、“~”)作為義符、聲符或形符構(gòu)件[5]。表2按構(gòu)件拼音首字母次序給出從文獻(xiàn)[1,5–6]整理出的、作為苗文構(gòu)件使用的203個漢字(偏旁)和兩個純粹符號。
表2 湘西民間苗文構(gòu)件
1.2 構(gòu)字方式
湘西民間苗文的字形由構(gòu)字方式?jīng)Q定。同一個字形可以呈現(xiàn)多種風(fēng)貌, 但其構(gòu)字規(guī)律固定。當(dāng)一個苗文由3個及3個以上部分構(gòu)成時, 按照構(gòu)件選取標(biāo)準(zhǔn), 其中的某2個或3個部分通??山M成一個簡單漢字。此時, 宜將此簡單漢字視為一個構(gòu)件。對文獻(xiàn)[1, 5–6]所提及湘西民間苗文進(jìn)行統(tǒng)計的結(jié)果表明, 大部分苗文均可視為二構(gòu)件型, 僅個別左右結(jié)構(gòu)和上下結(jié)構(gòu)的苗文需當(dāng)作三構(gòu)件型處理。
圖1給出不同結(jié)構(gòu)湘西民間苗文字例的字形拓?fù)浣Y(jié)構(gòu)和構(gòu)字方式。圖1(a)~(d)所示的二構(gòu)件型字例的字形分別取決于構(gòu)件“口”“打”、構(gòu)件“尖”“口”、構(gòu)件“毛”“比”和構(gòu)件“門”、“竺”。圖1(e)~(f)所示的三構(gòu)件型字例的字形分別取決于構(gòu)件“扌”、“氵”、“井”和構(gòu)件“合”“目”“目”。盡管“打”、“尖”、“竺”和“目目”均可進(jìn)一步分解為兩個構(gòu)件, 但按照構(gòu)件選取原則, “打”、“尖”和“竺”宜作為一個構(gòu)件使用, 無須再拆分為虛線框內(nèi)的兩個部分, 而“目目”則宜繼續(xù)分解為兩個構(gòu)件“目”和“目”。
2 湘西民間苗文字形動態(tài)生成方法
2.1 基本思想
當(dāng)前計算機(jī)處理表意文字時, 主要在“單字”層面上對其逐一編碼, 相應(yīng)的字體設(shè)計也必須“逐字”進(jìn)行。這種方法使得表意文字的字體設(shè)計工作量巨大, 同時導(dǎo)致編碼字符集也難以瘦身。
與通過26 個字母的自由組合即動態(tài)生成很多的英文單詞字形一樣, 將有限構(gòu)件按照一定規(guī)則進(jìn)行組合, 理應(yīng)也能動態(tài)生成無窮多的湘西民間苗文字形。根據(jù)造字原理和構(gòu)字方式, 湘西民間苗文的字形可視為由2~3個構(gòu)件組合運(yùn)算得到。按照構(gòu)件在苗文合體字中的位置關(guān)系, 可以將組合運(yùn)算分為6種: 左右連(left-right link, LRL)、上下連(up-down link, UDL)、左上包(left-up contain, LUC)、左下包 (left-down contain, LDC)、右上包(right-up contain, RUC)和全包(all contain, AC)。兩個構(gòu)件經(jīng)某種運(yùn)算生成一個二構(gòu)件型的苗文字形, 生成結(jié)果再與另一個構(gòu)件進(jìn)行某種運(yùn)算, 即可得到一個三構(gòu)件型的苗文字形。
取表2中的205個構(gòu)件作操作數(shù)進(jìn)行6種運(yùn)算, 不僅能夠生成文獻(xiàn)[1, 5–6]中提及的所有湘西民間苗文字形, 還能創(chuàng)制很多新字形。這意味著湘西民間苗文可視為一個開放的文字集合, 采用字形動態(tài)生成方法, 能夠生成用戶所需的各種新的苗文字形。具體例子如下。
1)左取構(gòu)件“女”、“米”、“衤”、“亻”和“蛋”, 右取構(gòu)件“能”, 通過左右連運(yùn)算, 可分別生成漢義為“年輕媳婦”、“稻谷”、“穿衣”、“人”、“蛋”的二構(gòu)件型左右結(jié)構(gòu)苗文字形。
2)上取構(gòu)件“雨”, 下取構(gòu)件“加”、“龍”、“助”、“奴”、“送”、“號”、“者”、“朽”、“氣”、“風(fēng)”、“白”等, 通過上下連運(yùn)算, 可生成表示天氣的一組二構(gòu)件型上下結(jié)構(gòu)苗文字形。
3)上取構(gòu)件“蟲”, 下取構(gòu)件“~”, 通過上下連運(yùn)算, 可以生成漢義為“蛇”的二構(gòu)件型上下結(jié)構(gòu)苗文字形。
4)左取構(gòu)件“疒”, 右取構(gòu)件“相”, 通過左上包運(yùn)算, 可生成漢義為“生病”的二構(gòu)件型側(cè)圍結(jié)構(gòu)苗文字形。
5)左取構(gòu)件“色”, 右取構(gòu)件“白”、“黑” “青” “紅” “綠”等, 通過左下包運(yùn)算, 可生成表示顏色的一組二構(gòu)件型側(cè)圍結(jié)構(gòu)苗文字形。
6)左取構(gòu)件“扌”、“口”、“月”或“乙”, 右取構(gòu)件“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”、“十”、“百”、“千”、“萬”等, 通過左右連或左下包運(yùn)算, 可生成4組與數(shù)字相關(guān)的二構(gòu)件型左右結(jié)構(gòu)或側(cè)圍結(jié)構(gòu)苗文字形。
7)左取構(gòu)件“去”, 右取構(gòu)件“飛”, 通過右上包運(yùn)算, 可生成漢義為“飛去”的二構(gòu)件型側(cè)圍結(jié)構(gòu)苗文字形。
8)外取構(gòu)件“門”, 內(nèi)取構(gòu)件“出”, 通過全包運(yùn)算, 可生成漢義為“出去”的二構(gòu)件型內(nèi)外結(jié)構(gòu)苗文字形。
9)上取構(gòu)件“合”, 下取兩個構(gòu)件“目”進(jìn)行左右連運(yùn)算的結(jié)果, 再作上下連運(yùn)算, 可生成漢義為“打瞌睡”的三構(gòu)件型上下結(jié)構(gòu)苗文字形。
2.2 運(yùn)算符的定義
設(shè)為任意湘西民間苗文構(gòu)件,和為整數(shù), 用(,)表示像素點(diǎn)位置, 則苗文構(gòu)件的二值圖像可用函數(shù)F(,)定義。F(,)=1時, 圖像為黑像素, 表示構(gòu)件有筆畫經(jīng)過(,)點(diǎn);F(,)=0時, 圖像為白像素, 表示構(gòu)件無筆畫經(jīng)過(,)點(diǎn)。
任意取兩個湘西民間苗文構(gòu)件和, 其二值圖像函數(shù)分別為F(,)和F(,)。將F(,)=1和F(,)=1時和的最大、最小值分別記為maxx(), maxx(), maxy(), maxy(), minx(), minx(), miny()和miny(), 則上述6種運(yùn)算符的定義可用邏輯公式描述如下。
定義1 若(maxx()≤minx())∧((miny()≤miny()≤maxy()≤maxy())∨(miny()≤miny()≤maxy()≤maxy())), 則稱左右連, 記為LRL。
定義2 如果(miny()≥maxy())∧((minx()≤minx()≤maxx()≤maxx())∨(minx()≤minx()≤maxx()≤maxx())), 則稱上下連, 記為UDL。
定義3 如果(minx()<minx()≤maxx()≤maxx())∧(miny()≤miny()≤maxy()<maxy()), 且當(dāng),滿足(minx()≤≤maxx())∧miny()≤≤maxy())時,F(,)=0, 則稱左上包, 記為LUC。
定義4 如果(minx()<minx()≤maxx()≤maxx())∧(miny()<miny()≤maxy()≤maxy()), 且當(dāng),滿足(minx()≤≤maxx())∧miny()≤≤maxy())時,F(,)=0, 則稱左下包, 記為LDC。
定義5 如果(minx()≤minx()≤maxx()<maxx())∧(miny()≤miny()≤max()<maxy()), 且當(dāng),滿足(minx()≤≤maxx())∧miny()≤≤maxy())時,F(,)=0, 則稱右上包, 記為RUC。
定義6 如果(minx()<minx())∧(maxx()>maxx())∧(miny()<miny())∧(maxy()>maxy()), 且當(dāng)滿足(minx()≤≤maxx())∧miny()≤≤maxy())時,F()=0, 則稱全包, 記為AC。
2.3 運(yùn)算表達(dá)式的構(gòu)成
根據(jù)上述思想, 苗文字形的動態(tài)生成過程可表示為由苗文構(gòu)件作操作數(shù)、由構(gòu)件位置關(guān)系決定組合運(yùn)算符的中綴表達(dá)式。表達(dá)式中, 所有運(yùn)算符優(yōu)先級相同, 均服從左結(jié)合規(guī)律, 括號內(nèi)運(yùn)算符優(yōu)先級高于括號外運(yùn)算符。
由于湘西民間苗文大部分為二構(gòu)件型, 僅個別為三構(gòu)件型, 所以運(yùn)算表達(dá)式通常只有如下4種形式: 1)構(gòu)件+運(yùn)算符+構(gòu)件; 2)構(gòu)件+運(yùn)算符+構(gòu)件+運(yùn)算符+構(gòu)件; 3)(構(gòu)件+運(yùn)算符+構(gòu)件) +運(yùn)算符+構(gòu)件; 4)構(gòu)件+運(yùn)算符+(構(gòu)件+運(yùn)算符+構(gòu)件)。其中, 形式2和形式3等價。
3 湘西民間苗文字形動態(tài)生成方法的實(shí)現(xiàn)途徑
3.1 基于IDS的實(shí)現(xiàn)途徑
湘西民間苗文字形動態(tài)生成方法實(shí)現(xiàn)的最直接途徑是, 根據(jù)運(yùn)算符定義和組合運(yùn)算表達(dá)式形式, 設(shè)計構(gòu)件組合運(yùn)算算法和構(gòu)件像素坐標(biāo)提取算法, 并通過構(gòu)造不同構(gòu)件筆畫的生成函數(shù), 動態(tài)獲取各種不同的苗文字形。但是, 該實(shí)現(xiàn)途徑的工作量較大。表意文字描述規(guī)范[7]為湘西民間苗文字形動態(tài)生成方法的實(shí)現(xiàn)提供了一種簡捷的途徑。
表意文字描述規(guī)范最早出現(xiàn)在Unicode 3.0中。該規(guī)范定義了12個表意文字描述符(ideo-graphic description characters, IDC), 給出了基于遞歸定義的表意文字描述算法。算法將表意文字遞歸地分解為部件的組合, 將文字的結(jié)構(gòu)類型符作為操作符, 文字或部件作為操作數(shù), 用操作符和操作數(shù)組成的前綴表達(dá)式表示文字字形。算法的理論依據(jù)是, 所有的表意文字都可以拆分為更小的部件, 而這些部件本身是表意文字。由于算法允許IDS本身繼續(xù)被分解, 且Unicode字符集中表意文字部件存在重復(fù)出現(xiàn)情況, 所以, 一個表意文字的字形描述序列可能不唯一。原則上, IDS越短越好。采用IDS描述表意文字字形時, 限制序列長度不得多于16個Unicode碼位; 若無IDC分隔, 構(gòu)成序列的部件最多6個。表意文字描述規(guī)范使得表意文字字形描述與現(xiàn)有文字編碼系統(tǒng)相結(jié)合, 為表意文字字形動態(tài)生成技術(shù)的實(shí)用化奠定了堅實(shí)基礎(chǔ)。目前, IDS已成功應(yīng)于古籍?dāng)?shù)字化[8]和錯字處理[9], 以及繁體漢字向量組字編輯器[10]、文字影系統(tǒng)(Kage System)[10–11]等動態(tài)組字技術(shù)研究中。
表3 IDC與運(yùn)算符的對應(yīng)關(guān)系
3.2 實(shí)現(xiàn)途徑的上下文無關(guān)文法表示
湘西民間苗文字形動態(tài)生成方法實(shí)現(xiàn)時, 苗文字形的IDS構(gòu)成可用定義7給出的上下文無關(guān)文法進(jìn)行描述。
定義7(N,T,,)。N和T分別表示非空有窮的非終結(jié)符集和終結(jié)符集, 且N∩T=?;為形如“”的產(chǎn)生式集;為文法G的開始符,N且至少在一條產(chǎn)生式中作為左部出現(xiàn)。N,T和取值如下:
N{,,,,};
T{U+2FF0, U+2FF1, U+2FF4, U+2FF5, U+2FF8, U+2FF9, U+2FFA, U+4E00……U+9FFF, U+0020……U+007E};
{,
U+2FF0U+2FF1U+2FF4U+2FF5U+2FF8U+2FF9U+2FFA,
翻譯是一種心理活動,是對原語的解碼并提取意義,然后用目標(biāo)語言進(jìn)行編碼的過程。方夢之也認(rèn)為“翻譯過程中譯者受多種心理機(jī)制的作用,譯者的心理狀態(tài)對轉(zhuǎn)換行為產(chǎn)生直接影響”。[1]“翻譯心理學(xué)從文化心理學(xué)的角度分析把“誤譯”分為“有意識誤譯”和“無意識誤譯”。“無意識誤譯”源自于譯者的無意識誤讀,這不屬于翻譯心理學(xué)研究的范疇。而“有意識誤譯”是指譯者翻譯時故意誤讀;譯者的故意誤讀受控于譯者的文化心理因素,如譯者的本土文化意識形態(tài)(包括政治態(tài)度)[2]24,有意識誤譯實(shí)際上就是歸化的表現(xiàn)。
,
U+4E00……| U+9FFF,
U+0020……|U+007E。
中各符號的含義見表4。
表4 G中的文法符號含義
圖1(a)~(f)中6個湘西民間苗文字例的字形生成IDS如表5所示。按照構(gòu)件選取標(biāo)準(zhǔn), 圖1(a)~(d)和(f)中字例的字形只有一種描述序列, 而圖1(e)中字例的字形可以有兩種描述序列。
表5 動態(tài)生成湘西民間苗文字形的IDS示例
4 湘西民間苗文的字形生成測試
目前, 已完成OpenType字體布局表的規(guī)劃, 并以湘西民間苗文的字形動態(tài)生成方法及基于IDS的實(shí)現(xiàn)途徑為基礎(chǔ), 設(shè)計了構(gòu)件組合映射腳本, 初步創(chuàng)建了湘西民間苗文OpenType字庫。以微軟OpenType字體布局設(shè)計軟件VOLT提供的Proofing Tool為測試工具, 對字庫進(jìn)行了初步測試。測試結(jié)果表明, 映射腳本生成的湘西民間苗文字形整齊規(guī)范, 基本上達(dá)到實(shí)用要求。對應(yīng)左右連運(yùn)算和左下包運(yùn)算的組合映射腳本所生成的二構(gòu)件型左右結(jié)構(gòu)和側(cè)圍結(jié)構(gòu)苗文字形的測試結(jié)果如圖2所示。
5 結(jié)語
以往研究將湘西民間苗文編碼限定在Unicode私用區(qū)[U+EF00~U+FFFF], 每個字形占用一個碼位, 已創(chuàng)建的苗文TrueType字庫中的每個文字皆以獨(dú)立的字形輪廓進(jìn)行描述。這種方式雖然可行, 但不利于移植。本文提出的方法, 通過2個或3個構(gòu)件和6種組合運(yùn)算符構(gòu)造運(yùn)算表達(dá)式, 再利用IDC及苗文構(gòu)件的Unicode編碼的組合描述序列來實(shí)現(xiàn)運(yùn)算表達(dá)式, 借助操作系統(tǒng)自帶的IDS解釋機(jī)制, 便能動態(tài)生成用戶所需的各種湘西民間苗文字形, 這對于實(shí)現(xiàn)湘西民間苗文字形的高效存儲和快速顯示技術(shù)有重要作用。
下一步, 擬研究湘西民間苗文字形動態(tài)生成方法在無字庫苗文處理系統(tǒng)中及互聯(lián)網(wǎng)上跨平臺苗文信息傳播中的應(yīng)用技術(shù)。
[1]趙麗明, 劉自齊. 湘西方塊苗文. 民族語文, 1990, 12(1): 44-49
[2]莫禮平, 周愷卿, 蔣效會. 板塘苗文的計算機(jī)編碼及字庫創(chuàng)建. 吉首大學(xué)學(xué)報: 自然科學(xué)版, 2013, 34(2): 31-35
[3]莫禮平, 周愷卿, 張兆海. 基于Windows IMM-IME的接口式方塊苗文輸入法的實(shí)現(xiàn). 計算機(jī)應(yīng)用與軟件, 2014, 31(3): 64-66, 81
[4]莫禮平, 曾水玲, 周愷卿. 音形結(jié)合的方塊苗文輸入編碼方案研究. 計算機(jī)科學(xué)與探索, 2014, 8(8): 1017-1024
[5]楊再彪, 羅紅源. 湘西苗族民間苗文造字體系. 吉首大學(xué)學(xué)報: 社會科學(xué)版, 2008, 29(6): 130-134
[6]龍正海. 渝、湘、鄂酉水流域方塊苗文造字法再探. 重慶教育學(xué)院學(xué)報, 2012, 25(5): 56-59
[7]Lu Qin, Chan Shiutong, Li Yin,et al. Decomposition for ISO/IEC 10646 ideographic characters [EB/OL]. (2004–06–01) [2015–01–06]. http://www.aclweb.org/ anthology/W/W02/W02-1209.pdf
[8]肖禹, 王昭. 動態(tài)組字的發(fā)展及其在古籍?dāng)?shù)字化中的應(yīng)用. 科技情報開發(fā)與經(jīng)濟(jì), 2013, 23(5): 118-122
[9]李小慶. 面向漢字教學(xué)的錯字處理工具設(shè)計與實(shí)現(xiàn)[D]. 內(nèi)蒙古: 內(nèi)蒙古師范大學(xué), 2010: 17-29
[10]百度百科. 動態(tài)組字[EB/OL]. (2010-07-10) [2015-01-19].http://baike.baidu.com/view/908298.htm?fr= aladdin
[11]Miyazaki I, Tomabechi T. Omega/CHISE: a type-setting framework based on the character information service environment [EB/OL]. (2004–05–13) [2015–02–08].http://coe21.zinbun.kyoto-u.ac.jp/papers/ws-type- 2003/077-Omega-CHISE.pdf
[12]The Unicode Consortium. Unicode7.0 character code charts [EB/OL]. (2014–07–16) [2015–03–29]. http://www. Unicode.org/Public/UCD/latest/charts/CodeCharts.pdf
A Dynamical Glyph Generation Method of Xiangxi Folk Hmong Characters and Its Implementation Approach
MO Liping1,2,?, ZHOU Kaiqing3
1. College of Information Science & Engineering, Ji Shou University, Jishou 416000; 2. Institute of Information Science & Engineering, Central South University, Changsha 410083; 3. Faculty of Computing, University Teknologi Malaysia, Skudai 81310;? Corresponding author, E-mail: zmx89@163.com
To effectively solve the glyph generation and glyph description problem, a dynamical glyph generation method of Xiangxi folk Hmong characters is proposed. According to this method, the glyph generation process can be described as a combination arithmetic expression. Hmong characters component acts as the operand, and the location relationship between the components decides the operator. Glyphs in different structure can be dynamically generated by combination of two or three components. Further, if combination arithmetic expression is converted to ideographic description sequence (IDS), the proposed method can be implemented with the help of the IDS explain mechanism of operation system. Test results illustrate that, the Xiangxi Hmong characters glyph, which generated by the mapping script based on the proposed method, can meet practical requirements.
Folk Hmong characters; glyph; context-free grammar; ideographic description sequence (IDS)
10.13209/j.0479-8023.2016.019
TP391
2015-06-04;
2015-08-15; 網(wǎng)絡(luò)出版日期: 2015-09-29
國家自然科學(xué)基金(61462029)和中國計算機(jī)學(xué)會中文信息技術(shù)開放課題基金(CCF2014-02-01)資助