Generative Sawndip

Generative Language Art Project

About

Artist Statement

Sawndip is a logographic Chinese-derived writing system traditionally used by Tai-speaking people in Southern China and Northern Vietnam including ethnic Zhuang groups. Due to the lack of standardization, there are many variations of Sawndip characters. Generative Sawndip is a generative language art project using computer algorithms to create new Sawndip characters for the Zhuang minority language. Inspired by critical software art and generative art, I explored the possibilities between computer coding and critical social issues to find innovative ways of connecting underrepresented ethnic minority cultures with modern computer techniques. By using language data and following the historical rules of making Sawndip characters, the project generates the non-existing characters showing the nature of the Sawndip writing system and the Zhuang language culture. As a half Chinese and half Zhuang, the project is also to explore my cultural heritage and identity by making my version of Sawndip characters.

Rules

1. Non-standard Chinese-like characters are created via semantic compounds. E.g. for the word “bya” (mountain), “山丘” means “hill or mountain”.

2. Non-standard Chinese-like characters are created via phono-semantic compounds. E.g. for the word “Bouxcuengh” (Zhuang people), “亻“ represents people, and “查 (chá)” in Chinese sounds similar to the word pronunciation in Zhuang (“/pou˦˨ ɕuːŋ˧/“). This rule also widely exists in Chinese characters.

3. Standard Chinese characters borrowed solely for pronunciations do not have a matching meaning in Zhuang with Chinese, using the original meaning. E.g. the for the word "mwngz" (you), “茫” in Chinese sounds similar to the Zhuang pronunciation ("/mɯŋ˧˩/“) but doesn’t mean “you” in Chinese.

4. Standard Chinese characters borrowed solely for their meanings do not have a matching pronunciation in Zhuang with Chinese, using the native pronunciation. E.g. for the word “Vahcuengh” (Zhuang language), “文” represents “language” in Chinese, but the Chinese pronunciation doesn’t sound similar to the native Zhuang pronunciation.

5. Non-standard Chinese-like characters are created specifically for Zhuang to indicate the meaning (in accordance with indicative ideograms). E.g. for the word “raemx” (water), "氵" is the Chinese radical to represent “water”.

6. New characters are made by juxtaposing a pair of Chinese characters that “spell out” the pronunciation of the Zhuang word, which refers to the “fanqie” system in Chinese. E.g. for the word "Bouxhek" ("ethnic Chinese, guest”), its pronunciation is "/pou˦˨ heːk˧˥/“. “布” (bù) represents the first syllable and “會” (huì) represents the second syllable.

Generating Process

How do I find the Chinese characters based on the meaning and pronunciation of Zhuang words?

First of all, when inputting the Zhuang word, I also input a Chinese character (or two) that can indicate the same meaning of the Zhuang word. Therefore, later on, in any situation that needs to use the meaning-match Chinese characters, the inputted Chinese characters will be used. If you want to try my code but do not know Chinese, you can check this link, which is a p5.js sketch that helps you find the meaning-matching Chinese characters.

For the pronunciation-matching character, I use "regular expressions” to search for letters. Let's take the word "Bouxcuengh" (the Zhuang people) as an example. First I lookup the phonemes for the word, using the International Phonetic Alphabets (IPA) system. For "Bouxcuengh", the phonemes are "/pou˦˨ ɕuːŋ˧/". Second, since Zhuang words can be either monosyllabic and multisyllabic, I check if the phoneme string contains one or more spaces. If so, then it's a multisyllabic word, as in the case of "Bouxcuengh". Third, according to the commonly-used Soundex phonetic algorithm, it is consonants that primarily affect pronunciation similarity. Therefore, I match the consonants of the syllables for pronunciation, or the first IPA phone if the syllable doesn't contain a consonant. The table below demonstrates the mapping from the Zhuang alphabet to Chinese pinyin. Some letters may correspond to multiple pinyin letters, so, in these cases, the algorithm randomly selects one of the options, and then returns the pronunciation-matching character.

Run the code locally

You need “character_generator_code.js” and the JSON files in “Sorted_data”.

Back to home page ->