APP下载

一种湘西民间苗文字形的动态生成方法及其实现途径

2016-10-12莫礼平周恺卿

关键词:字形湘西构件

莫礼平 周恺卿



一种湘西民间苗文字形的动态生成方法及其实现途径

莫礼平1,2,†周恺卿3

1.吉首大学信息科学与工程学院, 吉首 416000; 2.中南大学信息科学与工程学院, 长沙 410083; 3.马来西亚理工大学计算学院, 士古来 81310; †通信作者, E-mail: zmx89@163.com

为了有效地解决湘西民间苗文字形的生成及描述问题, 提出一种字形的动态生成方法。该方法将苗文字形的生成过程表示为由苗文构件作为操作数、由构件位置关系决定运算符的组合运算表达式, 将2~3个构件进行不同的组合运算, 即可动态生成不同结构的苗文字形。利用操作系统自带的表意文字描述序列解释机制, 将构件组合运算表达式转换为表意文字描述序列, 即可实现该方法。测试结果表明, 根据该方法编写的映射脚本生成的湘西民间苗文字形可以满足实用要求。

民间苗文; 字形; 上下文无关文法; 表意文字描述序列

湘西民间苗文由清朝末年以来一些民族知识分子创制, 主要包括板塘苗文、老寨苗文、古丈苗文三套方块苗文[1]。2011年以来, 随着《湖南武陵山片区区域发展与扶贫攻坚规划(2011–2020)》的全面实施, 以世界自然遗产旅游区张家界和国家历史文化名城凤凰重点旅游景区为依托的民族文化旅游产业得到迅速发展, 非物质民族文化遗产数字化保护工作也逐渐受到重视。然而, 作为武陵山片区民族文化主要载体的湘西民间苗文, 其信息处理研究工作和成果鲜有报道。近年来, 莫礼平等[2–4]针对三套方块苗文, 在字库设计、文字输入等方面开展了一系列研究, 并取得阶段性成果。

字形的生成及描述是湘西民间苗文在字层面信息处理技术研究的重要内容。本文提出一种基于构件组合运算的湘西民间苗文字形动态生成方法, 并结合Unicode提供的表意文字描述规范, 讨论该方法不占用编码区间的实现途径。

1 湘西民间苗文的造字原理及构字方式

1.1 造字原理

板塘苗文、老寨苗文和古丈苗文这三套湘西民间苗文均属于表意文字, 基本上都是合体字。创制者借鉴汉字的造字原理, 创造性地运用形声、会意、象形、假借等手段, 采用一字一音节的方法来标记一个语素或词。三套文字的结构类型大致分为4种[1]: 左右结构(最多)、上下结构(较多)、侧围结构(较少)和内外结构(极少)。表1给出不同结构的湘西民间苗文字例及其汉义。

表1 不同结构湘西民间苗文字例及汉义

湘西民间苗文创制时, 遵循“取个人认为最易认易记的汉字或符号作为代表符号”的标准, 直接用含义明确、结构或笔画较简单且日常使用频率较高的汉字或偏旁, 以及极个别无音无义的纯粹符号(如“X”、“~”)作为义符、声符或形符构件[5]。表2按构件拼音首字母次序给出从文献[1,5–6]整理出的、作为苗文构件使用的203个汉字(偏旁)和两个纯粹符号。

表2 湘西民间苗文构件

1.2 构字方式

湘西民间苗文的字形由构字方式决定。同一个字形可以呈现多种风貌, 但其构字规律固定。当一个苗文由3个及3个以上部分构成时, 按照构件选取标准, 其中的某2个或3个部分通常可组成一个简单汉字。此时, 宜将此简单汉字视为一个构件。对文献[1, 5–6]所提及湘西民间苗文进行统计的结果表明, 大部分苗文均可视为二构件型, 仅个别左右结构和上下结构的苗文需当作三构件型处理。

图1给出不同结构湘西民间苗文字例的字形拓扑结构和构字方式。图1(a)~(d)所示的二构件型字例的字形分别取决于构件“口”“打”、构件“尖”“口”、构件“毛”“比”和构件“门”、“竺”。图1(e)~(f)所示的三构件型字例的字形分别取决于构件“扌”、“氵”、“井”和构件“合”“目”“目”。尽管“打”、“尖”、“竺”和“目目”均可进一步分解为两个构件, 但按照构件选取原则, “打”、“尖”和“竺”宜作为一个构件使用, 无须再拆分为虚线框内的两个部分, 而“目目”则宜继续分解为两个构件“目”和“目”。

2 湘西民间苗文字形动态生成方法

2.1 基本思想

当前计算机处理表意文字时, 主要在“单字”层面上对其逐一编码, 相应的字体设计也必须“逐字”进行。这种方法使得表意文字的字体设计工作量巨大, 同时导致编码字符集也难以瘦身。

与通过26 个字母的自由组合即动态生成很多的英文单词字形一样, 将有限构件按照一定规则进行组合, 理应也能动态生成无穷多的湘西民间苗文字形。根据造字原理和构字方式, 湘西民间苗文的字形可视为由2~3个构件组合运算得到。按照构件在苗文合体字中的位置关系, 可以将组合运算分为6种: 左右连(left-right link, LRL)、上下连(up-down link, UDL)、左上包(left-up contain, LUC)、左下包 (left-down contain, LDC)、右上包(right-up contain, RUC)和全包(all contain, AC)。两个构件经某种运算生成一个二构件型的苗文字形, 生成结果再与另一个构件进行某种运算, 即可得到一个三构件型的苗文字形。

取表2中的205个构件作操作数进行6种运算, 不仅能够生成文献[1, 5–6]中提及的所有湘西民间苗文字形, 还能创制很多新字形。这意味着湘西民间苗文可视为一个开放的文字集合, 采用字形动态生成方法, 能够生成用户所需的各种新的苗文字形。具体例子如下。

1)左取构件“女”、“米”、“衤”、“亻”和“蛋”, 右取构件“能”, 通过左右连运算, 可分别生成汉义为“年轻媳妇”、“稻谷”、“穿衣”、“人”、“蛋”的二构件型左右结构苗文字形。

2)上取构件“雨”, 下取构件“加”、“龙”、“助”、“奴”、“送”、“号”、“者”、“朽”、“气”、“风”、“白”等, 通过上下连运算, 可生成表示天气的一组二构件型上下结构苗文字形。

3)上取构件“虫”, 下取构件“~”, 通过上下连运算, 可以生成汉义为“蛇”的二构件型上下结构苗文字形。

4)左取构件“疒”, 右取构件“相”, 通过左上包运算, 可生成汉义为“生病”的二构件型侧围结构苗文字形。

5)左取构件“色”, 右取构件“白”、“黑” “青” “红” “绿”等, 通过左下包运算, 可生成表示颜色的一组二构件型侧围结构苗文字形。

6)左取构件“扌”、“口”、“月”或“乙”, 右取构件“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”、“十”、“百”、“千”、“万”等, 通过左右连或左下包运算, 可生成4组与数字相关的二构件型左右结构或侧围结构苗文字形。

7)左取构件“去”, 右取构件“飞”, 通过右上包运算, 可生成汉义为“飞去”的二构件型侧围结构苗文字形。

8)外取构件“门”, 内取构件“出”, 通过全包运算, 可生成汉义为“出去”的二构件型内外结构苗文字形。

9)上取构件“合”, 下取两个构件“目”进行左右连运算的结果, 再作上下连运算, 可生成汉义为“打瞌睡”的三构件型上下结构苗文字形。

2.2 运算符的定义

设为任意湘西民间苗文构件,和为整数, 用(,)表示像素点位置, 则苗文构件的二值图像可用函数F(,)定义。F(,)=1时, 图像为黑像素, 表示构件有笔画经过(,)点;F(,)=0时, 图像为白像素, 表示构件无笔画经过(,)点。

任意取两个湘西民间苗文构件和, 其二值图像函数分别为F(,)和F(,)。将F(,)=1和F(,)=1时和的最大、最小值分别记为maxx(), maxx(), maxy(), maxy(), minx(), minx(), miny()和miny(), 则上述6种运算符的定义可用逻辑公式描述如下。

定义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()), 且当,满足(minx()≤≤maxx())∧miny()≤≤maxy())时,F(,)=0, 则称左上包, 记为LUC。

定义4 如果(minx()<minx()≤maxx()≤maxx())∧(miny()<miny()≤maxy()≤maxy()), 且当,满足(minx()≤≤maxx())∧miny()≤≤maxy())时,F(,)=0, 则称左下包, 记为LDC。

定义5 如果(minx()≤minx()≤maxx()<maxx())∧(miny()≤miny()≤max()<maxy()), 且当,满足(minx()≤≤maxx())∧miny()≤≤maxy())时,F(,)=0, 则称右上包, 记为RUC。

定义6 如果(minx()<minx())∧(maxx()>maxx())∧(miny()<miny())∧(maxy()>maxy()), 且当满足(minx()≤≤maxx())∧miny()≤≤maxy())时,F()=0, 则称全包, 记为AC。

2.3 运算表达式的构成

根据上述思想, 苗文字形的动态生成过程可表示为由苗文构件作操作数、由构件位置关系决定组合运算符的中缀表达式。表达式中, 所有运算符优先级相同, 均服从左结合规律, 括号内运算符优先级高于括号外运算符。

由于湘西民间苗文大部分为二构件型, 仅个别为三构件型, 所以运算表达式通常只有如下4种形式: 1)构件+运算符+构件; 2)构件+运算符+构件+运算符+构件; 3)(构件+运算符+构件) +运算符+构件; 4)构件+运算符+(构件+运算符+构件)。其中, 形式2和形式3等价。

3 湘西民间苗文字形动态生成方法的实现途径

3.1 基于IDS的实现途径

湘西民间苗文字形动态生成方法实现的最直接途径是, 根据运算符定义和组合运算表达式形式, 设计构件组合运算算法和构件像素坐标提取算法, 并通过构造不同构件笔画的生成函数, 动态获取各种不同的苗文字形。但是, 该实现途径的工作量较大。表意文字描述规范[7]为湘西民间苗文字形动态生成方法的实现提供了一种简捷的途径。

表意文字描述规范最早出现在Unicode 3.0中。该规范定义了12个表意文字描述符(ideo-graphic description characters, IDC), 给出了基于递归定义的表意文字描述算法。算法将表意文字递归地分解为部件的组合, 将文字的结构类型符作为操作符, 文字或部件作为操作数, 用操作符和操作数组成的前缀表达式表示文字字形。算法的理论依据是, 所有的表意文字都可以拆分为更小的部件, 而这些部件本身是表意文字。由于算法允许IDS本身继续被分解, 且Unicode字符集中表意文字部件存在重复出现情况, 所以, 一个表意文字的字形描述序列可能不唯一。原则上, IDS越短越好。采用IDS描述表意文字字形时, 限制序列长度不得多于16个Unicode码位; 若无IDC分隔, 构成序列的部件最多6个。表意文字描述规范使得表意文字字形描述与现有文字编码系统相结合, 为表意文字字形动态生成技术的实用化奠定了坚实基础。目前, IDS已成功应于古籍数字化[8]和错字处理[9], 以及繁体汉字向量组字编辑器[10]、文字影系统(Kage System)[10–11]等动态组字技术研究中。

表3 IDC与运算符的对应关系

3.2 实现途径的上下文无关文法表示

湘西民间苗文字形动态生成方法实现时, 苗文字形的IDS构成可用定义7给出的上下文无关文法进行描述。

定义7(N,T,,)。N和T分别表示非空有穷的非终结符集和终结符集, 且N∩T=Ø;为形如“”的产生式集;为文法G的开始符,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,

翻译是一种心理活动,是对原语的解码并提取意义,然后用目标语言进行编码的过程。方梦之也认为“翻译过程中译者受多种心理机制的作用,译者的心理状态对转换行为产生直接影响”。[1]“翻译心理学从文化心理学的角度分析把“误译”分为“有意识误译”和“无意识误译”。“无意识误译”源自于译者的无意识误读,这不属于翻译心理学研究的范畴。而“有意识误译”是指译者翻译时故意误读;译者的故意误读受控于译者的文化心理因素,如译者的本土文化意识形态(包括政治态度)[2]24,有意识误译实际上就是归化的表现。

,

U+4E00……| U+9FFF,

U+0020……|U+007E。

中各符号的含义见表4。

表4 G中的文法符号含义

图1(a)~(f)中6个湘西民间苗文字例的字形生成IDS如表5所示。按照构件选取标准, 图1(a)~(d)和(f)中字例的字形只有一种描述序列, 而图1(e)中字例的字形可以有两种描述序列。

表5 动态生成湘西民间苗文字形的IDS示例

4 湘西民间苗文的字形生成测试

目前, 已完成OpenType字体布局表的规划, 并以湘西民间苗文的字形动态生成方法及基于IDS的实现途径为基础, 设计了构件组合映射脚本, 初步创建了湘西民间苗文OpenType字库。以微软OpenType字体布局设计软件VOLT提供的Proofing Tool为测试工具, 对字库进行了初步测试。测试结果表明, 映射脚本生成的湘西民间苗文字形整齐规范, 基本上达到实用要求。对应左右连运算和左下包运算的组合映射脚本所生成的二构件型左右结构和侧围结构苗文字形的测试结果如图2所示。

5 结语

以往研究将湘西民间苗文编码限定在Unicode私用区[U+EF00~U+FFFF], 每个字形占用一个码位, 已创建的苗文TrueType字库中的每个文字皆以独立的字形轮廓进行描述。这种方式虽然可行, 但不利于移植。本文提出的方法, 通过2个或3个构件和6种组合运算符构造运算表达式, 再利用IDC及苗文构件的Unicode编码的组合描述序列来实现运算表达式, 借助操作系统自带的IDS解释机制, 便能动态生成用户所需的各种湘西民间苗文字形, 这对于实现湘西民间苗文字形的高效存储和快速显示技术有重要作用。

下一步, 拟研究湘西民间苗文字形动态生成方法在无字库苗文处理系统中及互联网上跨平台苗文信息传播中的应用技术。

[1]赵丽明, 刘自齐. 湘西方块苗文. 民族语文, 1990, 12(1): 44-49

[2]莫礼平, 周恺卿, 蒋效会. 板塘苗文的计算机编码及字库创建. 吉首大学学报: 自然科学版, 2013, 34(2): 31-35

[3]莫礼平, 周恺卿, 张兆海. 基于Windows IMM-IME的接口式方块苗文输入法的实现. 计算机应用与软件, 2014, 31(3): 64-66, 81

[4]莫礼平, 曾水玲, 周恺卿. 音形结合的方块苗文输入编码方案研究. 计算机科学与探索, 2014, 8(8): 1017-1024

[5]杨再彪, 罗红源. 湘西苗族民间苗文造字体系. 吉首大学学报: 社会科学版, 2008, 29(6): 130-134

[6]龙正海. 渝、湘、鄂酉水流域方块苗文造字法再探. 重庆教育学院学报, 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]肖禹, 王昭. 动态组字的发展及其在古籍数字化中的应用. 科技情报开发与经济, 2013, 23(5): 118-122

[9]李小庆. 面向汉字教学的错字处理工具设计与实现[D]. 内蒙古: 内蒙古师范大学, 2010: 17-29

[10]百度百科. 动态组字[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; 网络出版日期: 2015-09-29

国家自然科学基金(61462029)和中国计算机学会中文信息技术开放课题基金(CCF2014-02-01)资助

猜你喜欢

字形湘西构件
钢筋混凝土构件裂缝控制
异体字字形类似偏旁的互用类型综合字图构建
湘西剿匪:七十年前的历史风云
甲骨文中的字形直立化二则
复习生字字形的方法
走进湘西凤凰城
湘西 国画
基于构件的软件工程技术与理论方法探讨
添一笔变个字
基于构件的软件开发实践