In the languages of the western world based on the Latin, Cyrillic and Greek scripts, there is no difference between how text is stored for data processing and how it is presented on a display or a printer. The text is read on horizontal lines from left to right, the lines progress from top to bottom and the characters are stored in a manner identical to how they are presented.
Not all the languages of the world have these characteristics.
In this document, complex-text languages are defined as those languages for which the text has a different layout when presented from when it is stored for data processing. The term layout, which is equivalent, in this context, to the term format, refers to the shape of the characters and the direction of portions of the text.
Typical complex-text languages are those with a bi-directional script. Usually they are written from right to left, with some portions of text, such as numbers and embedded Latin-based text, written from left to right. Bi-directional languages include the languages of the Middle East and Africa (Arabic, Hebrew, Urdu, Farsi, Yiddish, and so on). Other complex-text languages include some languages of Asia that do not limit their encoding to a double-byte scheme (Thai, Lao, Vietnamese, Korean, and so on).
There is nothing in these languages themselves that is more complex than in the Latin-based languages; they are special only in that the presented text does not necessarily look identical to the text as stored.
Though the term complex is used to describe the text of the bi-directional and some other Asian languages, enabling a program to work in these languages is relatively simple, once the peculiarities of these languages are understood.
Layout Transformations and Related Attributes
To enter, process and present a text in a complex-text language, it is necessary to perform transformations between the processing layouts and the presentation layouts. The processing layout is the layout of text when stored or processed. The presentation layout is the layout of text when presented on a display or a printer.
These transformations have to take into account specific text attributes, including directionality, shaping, composition of characters and national numbers. Text attributes that describe bi-directional writing systems are defined in Bi-directional Languages.
The bi-directional languages are used mainly in the Middle East. They include Arabic, Urdu, Farsi, Hebrew and Yiddish.1
In a bi-directional language, the general flow of text proceeds horizontally from right to left, but numbers are written from left to right, the same way as they are written in English. In addition, if an English or another left-to-right language text (addresses, acronyms or quotations) is embedded, it is also written from left to right.
Aspects of Bi-directional Language Writing Systems
This section discusses aspects of bi-directional texts, related to directionality, shaping and national numbers as well as keyboard input and compliance with common user access guidelines. The text attributes described here also pertain to some degree to other complex-text languages such as the languages of Asia (for example, Thai, Lao, Korean).
In the context of bi-directionality, the following are key concepts:
Text-types and associated reordering methods
These attributes are described below.
A bi-directional text may consist of a main part that has one directionality (for example, an Arabic text written from right to left), and portions that have an opposite directionality (for example, an English address written from left to right.) The portion of text with a different directionality is called a segment. A bi-directional text thus might have a body bicolor=”#FFFFFF” of right-to-left text with embedded left-to right segments. Sometimes a segment with one directionality might itself have embedded or nested within it an additional segment with an opposite directionality. It is conceptually possible to have many levels of
nesting; in most cases, however, there are no more than two levels.
One level of nesting is necessary for the entry of numbers within Arabic or Hebrew text. To simulate bi-directional scripts in the following examples, Hebrew and Arabic text is represented by lower-case English letters, while upper-case letters represents English text.
In Hebrew, it is customary to write the name of the street before the number of the house, as shown below:
b ecnartne 25 teerts elpam
*——— -* *———–
The street name is entered from right to left. The flow then has to be reversed to allow correct entry of the number from left to right (this being the nested left-to-right segment.) Then the flow must be reversed again to allow the entry of the entrance information from right to left.
Imagine somebody bicolor=”#FFFFFF” writing a letter in English to somebody who can read Hebrew too, and writing his or her address in Hebrew. In this case, the address in Hebrew is actually a nested segment of the English text.
MY ADDRESS IS b ecnartne 25 teerts elpam THIS MONTH.
————**——— -* *———– ———*
NEST LEVEL: 0000000000000011111111111221111111111111000000000000
Because the nested segment of the address has itself a nested segment (the street number), there are two levels of nesting.
Bi-directional text may consist of mainly right-to-left text with some left-to-right nested segments (such as an Arabic text with some information in English), or mainly left-to-right with some right-to-left segments (such as an English letter with a Hebrew address nested within it). The predominant direction is called the global orientation; it cannot always be quickly deduced from the general context.
FRED DOES NOT BELIEVE taht yas syawla i
This sentence has one meaning when the reading is from left to right (Fred does not believe I always say that), and another meaning when read from right to left (I always say that Fred does not believe). In the first half of the above example, the global orientation of the text is left-to-right and in the second half it is right-to-left.
Because the global orientation is not always obvious from the context2 it must be known to the application developer whose product is processing the bi-directional data.
Not to be confused with the global orientation of the text is the physical orientation of the presentation device. A display terminal has, for example, a right-to-left physical orientation if the first character on the screen is the one in the upper right-hand corner and the general cursor movement is from right to left (and top to bottom.)
In a bi-directional text a programmer must clearly distinguish between the physical order in which the text is presented, and the logical order in which its segments are processed (or pronounced if read aloud). Some segments may need to be reordered to a logical or physical order.
There are different approaches to how bi-directional text is to be reordered, and at present none can be said to be prevalent.
The concept text-type is used to point to which approach is applicable for a specific text. The physical and logical order and the different text-types are discussed further below.
MY WIFE’S NAME IS ilin
The global orientation is left-to-right. The first letter in the text is M, followed by Y and so forth. In the physical order, after the letters I and S comes the letter i of the segment containing my wife’s name in Hebrew. Note, however, that my wife’s name is pronounced “nili”. In the logical order the first letter of the name segment is thus the letter n, followed by i, l and i.
Sometimes, for example in on-line help, it is convenient to store the bi-directional text exactly as presented – that is, in the physical order. But if there is intent to process the text (for example, to sort it), the segments must be stored in their logical order. There is no meaning, in the above example, to sort the name “ilin”. It makes sense to reorder the text, so the directional segment containing the name “nili” is inverted, before being stored for further processing. The logical order is the preferred sequence for entering text and for processing. Conceptually, any storage device can be seen as storing the data from left to right. If a programmer wants to perform straightforward processing on the stored text (sorting, collating, indexing) without the need to preprocess each segment, the bi-directional data has to be stored in its logical sequence. This means reversing segments whose direction is opposite to the global orientation.
Text-types and Reordering Techniques
Different text-types require different approaches to reordering:
The oldest approach, dating from the time when there was no processing capability at the workstation, is simply to copy the entire screen to storage, and storage to screen (possibly inverting every row, depending on the physical orientation of the screen). It is up to each application programmer to know where the embedded segments are located and to process them accordingly. This text-type is called visual because it is a replication of the presented form. Many legacy applications3 and their files have this type of text.
In the implicit text-type it is assumed that the letters of the Latin alphabet have a strong inherent left-to-right directionality, and those of the Arabic, Farsi, Urdu and Hebrew alphabet have a strong right-to-left inherent directionality. An algorithm of implicit text processing recognizes segments based on their inherent directional characteristics, and segment inversion is performed automatically. The concept of an implicit algorithm is simple to understand. Its main limitation is that it cannot correctly handle some strings that have numbers and intermixed left-to-right and right-to-left letters.
The explicit text-type assumes that there are additional control characters, embedded in the text, that instruct an explicit algorithm to perform segment inversions, shaping or numeral selections, and other transformations.
Thus, a text with visual text-type is stored in its physical order, and a text with an implicit text-type is stored in its logical order, which is better suited for automatic processing. A text with an explicit text-type is usually stored in logical order, but because of the embedded controls in the text, the automatic processing is not always straightforward.
There is no one type of text that can be used in all cases. The implicit techniques are usually heuristic and thus have some limitations as noted previously. The explicit techniques, while alleviating the limitations of implicit techniques, introduce other limitations such as the need for automatic processes to cope with embedded controls.
One specific technique, the Basic Display Algorithm,4 tries to be a bridge between the implicit and explicit techniques. In principle it is an implicit reordering algorithm, but it can deal with a few specific directional controls embedded in the text.
There are applications and related databases for all three text-types. It is possible for bi-directional text that is presented one way to be stored in a different layout. A programmer need only know what text-type or reordering algorithm was used, to correctly transform or process the bi-directional text.
Some characters, such as the greater-than sign, have an implied directional meaning and have a complementary symmetric character with an opposite directional meaning (the less-than sign). When used within a segment that is presented right-to-left but is inverted (left-to-right) when stored for processing, such a character might have to be replaced by its symmetric sibling to ensure that the correct meaning of the text is preserved. The replacement of such a character by its complement during transformation of a bi-directional text is called symmetrical swapping.
Example: Example of Symmetrical Swapping
On a right-to-left window of the screen, the expression: b * a is read as a is greater than b. In storage the orientation is always left-to-right; the first character in storage is thus a, followed by * and then b. So the result in storage is: a * b which is of course incorrect. In this case, to preserve the correct meaning of the expression, the * character must be exchanged in storage with *.
Other graphic characters that require symmetrical swapping include the parentheses, square brackets, braces, and so on.
Although symmetrical swapping is a characteristic of bi-directional languages, it is not always mandatory for the software functions that transform different bi-directional-language text layouts. Sometimes this function is performed automatically by the workstation hardware or micro code.
Shaping is the process by which characters are rendered in the appropriate presentation forms. This might involve the presentation of characters in a form different from the one in which they are stored. In general, to simplify processing, an unshaped (abstract or basic) representation is used internally. Shaping takes into account the character being shaped and the characters in its vicinity, and replaces its abstract representation (or that of its parts) with the proper shape. Shaping is a characteristic of many complex text languages, in particular the languages of the Middle East.
The Arabic scripts are cursive. A writing system is cursive if it is suited to handwriting rather than printing, with adjacent characters in a word connected to each other. Some letters can only connect to the letter on their right. This is the only way in which Arabic script is used, whether in books, newspapers, signs, or workstation displays. (English can be handwritten in a cursive style, for personal communications, but is seldom published or displayed that way. Thus English is not considered a cursive script.)
Shaping in Cursive Script Languages
In cursive scripts, letters might assume different shapes according to their position in the word and to the connectivity properties they and the adjacent letters have. There are as many as four shapes for each letter. As described in Shapes of the Arabic Characters may have initial, middle, final, and isolated forms (not all characters have all forms). Only one shape per letter is represented on Arabic keyboards, but all shapes must be available for presentation. Similarly, in most cases, a cursive language text is not stored with full shapes. Each character has a base form, which is an abstraction to allow selection of a cursive character without specifying its shape.
The proper shape can be selected by a shape determination routine, which allows for automatic (algorithmic) selection of the appropriate shape according to the context as directed by the software or the user. It may allow for user or software-controlled selection of any of the four shapes mentioned above. Alternatively, it may allow transparent throughput of data: that is, it may become temporarily deactivated under software or user control. Whenever cursive-language characters are folded by processing to one shape, they must be reshaped using the same algorithm prior to presentation. In some very specific cases, this processing may corrupt data, as the algorithm may not be perfectly reversible. As an analogy, in English, converting 12Ab2 to upper case would result in 12AB2; the return to lower case would result in 12ab2, which is not the same as the original.
Though in most cases a cursive language text would be stored in basic shapes only, there are cases where it may be stored with characters shaped as presented, as in the case of messages or on-line help text.
Character Composition, Ligatures and Diacritics
In complex-text languages, it is possible that there is not a one-to-one correspondence between the number of characters of text stored for processing and the number of characters of the presented text. Sometimes two or more characters might be represented by a single glyph occupying one presentation cell:
In the cursive languages, ligatures use one glyph to represent two or more specific letters. For example, the ligature: Lamalif is used to represent the frequently used pair of letters Lam and Alif.
These are marks above, near, within or below a consonant. They are used in bi-directional languages, among other functions, to represent vowels. When kept in storage for processing, these marks occupy physical positions, but if used for representation, they might occupy the same cell as the associated consonants.
As a compromise, given existing limitations (in the graphical capabilities and resolution of the display devices and the number of code points available), bi-directional languages such as Hebrew have in many implementations given up the ability to represent vowels by diacritics. The vowels sounds have to be surmised by readers based on their knowledge of the language and according to the semantics of the text.
However this guesswork is not acceptable for specific applications, such as poetry or processing of a classical text, which requires the use of diacritics. In some complex-text languages, such as Thai, the use of vowel symbols and tone marks is mandatory.
In Arabic, spacing diacritics are currently used as a compromise. In the present Arabic systems, some or all of the Arabic diacritics are implemented as separate characters to be rendered following the character to which the diacritics belong.
In both Latin-based languages and Hebrew, numbers are represented using the so-called Arabic digits (1, 2, 3, 4, 5, 6, 7, 8, 9 and 0). However, the cursive languages, (Arabic, Farsi, and Urdu), as well as many other complex-text languages, have their own national glyphs for digits.5 The local name for numbers used in the cursive languages is not “Arabic numbers”, but Hindi or sometimes Arabic-Indic numbers. The direction of the numbers is always left-to-right. Mathematical formulae in Arabic are written from right to left and in Farsi they are written from left to right.
It is important to understand that in most cases, the text stored for processing has numbers encoded in their Arabic (western) code. When it comes to presentation, these numbers might be presented using either national glyphs for digits or ordinary Arabic digits, according to the intent of the user or application developer.
Bi-directional Data Entry
To those unfamiliar with bi-directional languages, understanding how segments of text with different directionality can actually be entered from a keyboard is somewhat of a puzzle.
The order in which bi-directional data is typed into a workstation is the order in which the text is meant to be read – the logical order.
The keyboards used for bi-directional languages are similar to those used for English, but on the same key tops on which Latin characters and symbols are engraved, character symbols specific to the other language are added. In the case of the cursive languages, such as Arabic, the character symbols engraved are the basic characters only. Special key combinations are used to switch between the English keyboard layer and the national-language keyboard layer. For example, in some cases, the Hebrew layer is made active, on a Hebrew keyboard, by simultaneously pressing the *Alt* and *Right Shift* keys. Such key combinations are also used to enter appropriate input modes. For example, in some environments, simultaneously pressing *Shift* and *Num Lock* enter push mode. Push mode is a keyboard input mode in which characters are pushed in the direction opposite to the base direction of the segment and the cursor does not move, in the same way the digits behave on the screen of a pocket calculator.
Bi-directional Typing Interfaces
To allow for bi-directional text entry from a keyboard, the interfaces must be able to intercept and process each keystroke. These interfaces can be part of the terminal and associated controller’s hardware or micro code, or they can be a specific routine that is added to the operating system. There are two typing interfaces to consider:
Manual typing method
Automatic (logical) typing method.
Manual Typing Method
In the manual typing method the user informs the system in which direction the characters are to be typed. For mixed-direction typing, the user makes extensive use of the Push and End Push keyboard functions.
The manual method also supports an Automatic Push (Auto Push) mode. When the Auto Push setting is active, the Push Mode is started and terminated automatically, according to the actual characters being typed.
When the manual typing method is active, the keyboard language group and cursor direction are handled separately by the system. This means that the user has separate control for:
The direction of the typed text – controlled by the Push and End Push keyboard functions.
The keyboard language group – controlled by the keyboard language group switching keys.
Automatic (Logical) Typing Method
This convention provides some automatic handling of directionality. When this method is active, the system determines the directionality of each part of the text (each segment) based on the actual characters being typed, using a set of predefined rules.
The method is called logical because the direction of the text is logically deduced based on the language of the characters.
Another feature of this method is that it handles text in typing order; that is, the system remembers the order in which the characters were initially typed. It then uses this knowledge along with a set of predefined rules, to determine how the text is displayed, processed and deleted by the application.
If the cursor is in the Home position (the first logical position in the field or window) and a character of a language other than the default language of the current orientation is entered, the screen or window orientation is reversed automatically. That is, if the character entered is Hebrew, the window orientation is right-to-left; if the character is English, the window orientation is left-to-right.
Common User Access and Bi-directional Languages
The basic rule for applications that are to conform to Common User Access guidelines is that “… All pieces of data must be displayed in the orientation that is correct for the application user. Data input must be supported in the orientation that is natural for users”.
Thai Language and its Writing System
The Thai language is representative of a class of complex-text languages whose characters are composed of a number of symbols or elements. Thai belongs to the Sino-Tibetan family of languages. Like the Chinese languages, which also belong to this family, Thai is a monosyllabic tone language. While it resembles Chinese structurally and though much of its basic vocabulary is of Chinese origin, it has also been greatly influenced by both Pali and Sanskrit.
The Thai writing system was developed from the Devanagari system, which originated in India and came to Thailand from Cambodia. A major difference between the Chinese and Thai writing systems is that while Chinese makes use of a large number of pictorial symbols, Thai uses an alphabet of consonants, vowels, tone marks, diacritics and special symbols. With some exceptions, a Thai word can be pronounced correctly on sight, in a similar manner to Italian or French.
Writing Thai Characters – Graphic Representation
Thai is written from left to right, without spaces between words. Each word is represented by one or more syllables; each syllable consists of a consonant, a vowel, a tone and a final consonant or a final diacritic. Spaces in the text indicate the ends of phrases or sentences, and are thus used as a form of punctuation. Thus, individual words are recognized only by scanning the text for syllable boundaries. Compared to western writing systems, the composed characters tend to be taller and thinner.
A line of Thai text can be considered to be logically divided into four parallel lines:
The base line, on which consonants, some vowels, some Thai symbols and Thai numbers are written
The line below the base line, used for writing lower vowels and lower diacritics
The line above the base line, used for writing upper vowels and upper diacritics
The line above the upper vowel line, used for writing tone marks and upper diacritics. (If there is no upper vowel, the tone mark or the upper diacritic is written on the upper vowel line.)
Thai Written Symbols
Generally speaking, the more than 2,000 characters in the Thai writing system can be categorised into 20 types of written symbols, with 88 basic symbols:
10 base line numerics
44 base line consonants
3 base line ancient signs
2 base line special symbols
1 base line currency sign
1 base line Thai word break character
5 base line leading vowels (vowel in front of consonant)
3 base line type 1 following vowels
1 base line type 2 following vowels
2 base line type 3 following vowels
1 upper vowel line type 1 upper vowel
2 upper vowel line type 2 upper vowel
2 upper vowel line type 3 upper vowel
1 upper vowel line ancient sign (or upper vowel line type 3 upper diacritic)
4 tone mark line tone marks
2 tone mark line type 1 upper diacritic symbol
1-tone mark line type 2 upper diacritic symbols
1 lower vowel line type 1 lower vowel
1 lower vowel line type 2 lower vowel
1 lower vowel line lower diacritic symbol
Normally, Thai data is encoded using a single-byte code page, where each symbol has an adequate code point. The symbols are used to enter Thai data on a Thai keyboard. Thus the Thai data is stored, for processing purposes, as symbol elements.
These elements have to be combined into characters for rendering purposes.
In the most common writing order, first a base line symbol is written, and then optionally, an upper vowel or lower vowel symbol is written above or below it. A tone mark symbol may then optionally be written either above the base line symbol, or above the upper vowel symbol, if present.
Base line consonant symbol
Base line consonant symbol and tone mark symbol
Base line consonant symbol and upper diacritic symbol
Base line consonant symbol and upper vowel symbol
Base line consonant symbol, upper vowel symbol and tone mark symbol
Base line consonant symbol, upper vowel symbol and upper diacritic symbol
Base line consonant symbol and lower vowel symbol
Base line consonant symbol and lower diacritic symbol
Base line consonant symbol, lower vowel symbol and tone mark symbol.
Any other combinations would be considered invalid.
What is a Thai Character?
From a linguistic or phonetic point of view, the Thai writing system is actually more complex than that described above.
Consonants are written on the base line. A middle vowel can be written either before, after or straddling the related consonant.
Upper-vowels are written above, and lower vowels below, their related consonant. Vowels are always pronounced and collated after the consonant. The tone mark is usually written after the upper vowel or lower vowel, but some people might write it after the consonant. The left and right pieces of a middle vowel, which straddle a consonant, are included as separate components in some encoding schemes.
To prevent confusion, the term-composed character is used here for the representation of one syllable at a writing position, and the term symbol is used for the components of a composed character.
Although Western numerals (Arabic numbers) are now widely used in Thai writing, there are also ten Thai glyphs for numbers.
In Thai, the equivalent of the Arabic digits 1, 2, 3, 4, 5, 6, 7, 8, 9 and 0 are respectively:
Figure: Shape of the National Numbers in Thai
According to the rules for writing Thai, only certain combinations of symbols are possible. When someone fluent in Thai is writing or reading a line, a process of composition is taking place. In about 74 percent of cases a character is formed from a single symbol; in about 22 percent of cases, it is formed from two symbols; and in 4 percent of cases it is formed from three symbols.
A Thai speaker does not think of a composed character as, for example, an accented character in French. This difference in thinking is reflected in the difference between European and Thai keyboards. In European keyboards, dead keys are used to place accents on characters. The dead key is pressed first to show the accent, and then the character key is pressed. The cursor moves only after the character has been entered. All character manipulation is done at the cursor position.
In Thai the consonant or middle vowel is entered first. It is displayed, and the cursor then moves one position to the right. The upper and lower (dead key) vowels and tone marks are then added to the character to the left of the cursor. The rightmost column of positions on the screen is used to display the cursor only, and data is not allowed in this column. Usually vowels and tone marks are stacked on the consonants to compose syllables. The exception is middle vowels, which stay independently at the same level as the consonants.
Thai Character Rendering
Some other base line symbols with a descender do not change their shape. Instead, when these symbols are combined with a lower vowel, the vertical or horizontal position of that lower vowel is changed. Similarly, when some base line symbols with an ascender are combined with an upper vowel, a tone mark or both, the location of the upper vowel, tone mark or both is shifted horizontally.
The vertical position of a tone mark is dependent upon the presence or absence of an upper vowel. If an upper vowel is not present, the tone mark is positioned at the level that an upper vowel would occupy.
A specific base line vowel partially overlaps with the associated previous consonant. If the associated consonant does not have an ascender, the vowel is moved up and to the left, to hang over the right side of the previous base line consonant. If the associated consonant has an ascender, the vowel is split into two pieces, with one piece positioned to the left of the ascender and another to the right.
It is thus possible to recognize a similarity between character composition in Thai, and ligatures composition and shaping in bi-directional languages. The character presented is not identical with the symbols stored, so a shaping or composing algorithm must be applied.
Similarly, there are cases where the shaping transformation must not to be performed at rendering, but at a previous stage. When using the high-quality printers adapted for double-byte character set (DBCS), a shaping of characters (maximum three-symbol), is performed as part of the transformation of text to a double-byte encoding scheme. In this case, the text can be considered stored in a shaped form for higher-efficiency printing. This resembles the case in which Arabic message text is kept in storage in a shaped layout.
Conclusions and Guidelines
Though so different in their appearances, all complex-text languages – the bi-directional ones such as Arabic, Farsi, Urdu, Hebrew and Yiddish, or the languages such as Thai, Lao, or Korean – have a distinct common characteristic: the form of the rendered text is different from that of the stored text. The transformation functions needed to perform the changes between rendered and stored text depend on descriptive information pertaining to the attributes of complex-text languages: global orientation, text-type, symmetrical swapping, shaping and national numbers.
Application developers should be aware of the fact that in the complex-text languages there is a need for transformations between the different text layouts. They should allow for user or system exits to facilitate invoking these transformations, in those places where a transformation might be expected (at input, before output, before a collating process, and so on). Programs must be able to identify the location and content of the complex-text attributes, and be able to change their content if needed.
Just as for any other language, an application meant to be used for complex-text languages should utilize the appropriate language code page and cultural data (date and time layout, collating sequence, monetary layout, and so on).
Application developers should design their products in such a way that they use, as much as possible, the standard functions and controls provided by the operating system services or toolkits for these languages. They might choose to use the APIs offered in the national language versions of the operating system services or toolkits to perform such transformations (when available).
1.Arabic is spoken mainly in Algeria, Bahrain, Egypt, Iraq, Israel, Jordan, Kuwait, Lebanon, Libya, Morocco, Oman, Qatar, Saudi Arabia, Sudan, Syria, Tunisia, United Arab Emirates, and Yemen. Urdu is spoken mainly in Pakistan. Farsi is spoken mainly in Iran. Hebrew is spoken mainly in Israel, and Yiddish is spoken mainly in Israel, Europe, and North America.
2.Sometimes it is possible to have a contextual global orientation, where the global orientation is set according to the directional characteristic of the first character in the data stream that has a distinct directionality.
3.Legacy applications are those that have been inherited from a prior era. They may be obsolete, but must be supported.
4.The Basic Display Algorithm was initially published in the Directionality Appendix A of the Unicode standard.
5.Other complex-text languages that have their own national glyphs for decimal digits are Devanagari, Gurmukhi, Gujarati, Oriya, Bengali, Tamil, Telugu, Malayalam, Sinhalese, Khmer (Cambodian), Lao, Mongolian, Chinese, Tibetan and Thai.
The Blackwell Encyclopedia of Writing Systems defines a writing system as “a set of visible or tactile signs used to represent units of language in a systematic way”. This simple explanation encompasses a huge spectrum of writing systems with vastly different stylistic and structural characteristics spanning across many regions of this planet.
Writing provides a way of extending human memory by imprinting into media less fickle than the human brain. However, many early philosophers, such as Plato, have branded writing as a detriment to the human intellect. They argued that it makes the brain lazy and decreases the capacity of memory. It is true that many non-writing cultures often pass long poems and proses from generation to generation without any change, and writing cultures can’t seem to do that. But writing was a very useful invention for complex and high-population cultures.
Writing was used for record keeping to correctly counting agricultural products, for keeping the calendar to plant crops at the correct time. And writing was used for religious purpose (divination and communicating with the supernatural world) and socio-political functions (reinforcing the kingship).
However, writing isn’t an absolute requirement of urban culture. In past centuries, scientists had used writing as one of the “signs” of civilization, which is an incorrect assumption. The Incas and earlier Andean civilizations never developed a writing system. They, in turn, came up with interesting solutions: they used the quips (a series of ropes with knots indicating amounts) for record keeping, and complex tapestries as calendars. The Mississipians who built Cahokia didn’t seem to have used any kind of record keeping at all, but they built very impressive cities in the American Midwest.
Because writing is so intricate there has been many theories concerning the origins of writing.
Writing systems differ structure, stylistically, familiarly, geographically, and so on. Here’s the several ways I categorize them:
Types: Classification according to how the system works.
Families: Classification according to “genetic” relations.
Regions: Classification according to geographical regions.
A to Z: Alphabetical listing of scripts, just for your convenience.
The study of writing systems is a very broad field, and I cannot claim that this website will reveal every detail. Far from it, in fact. I think I only cover 10% of all writing systems of the world. There are many good books out there, and you can start in my Bibliography section.
Created March 19, 2000
Among many ancient societies, writing held a extremely special and important roll. Often writing is so revered that myths and deities were drawn up to explain its divine origin.
In ancient Egypt, for example, the invention of writing is attributed to the god Thoth or Tehuti (Dhwty in Egyptian), who was not only the scribe and historian of the gods but also kept the calendar and invented art and science. In some Egyptian myths, Thoth is also portrayed as the creator of speech and possessing the power to transform speech into material objects.
In Mesopotamia, among the Sumerians the god Enlil was the creator of writing. Later during Assyrian, and Babylonian periods, the god Nabu was credited as the inventor of writing and scribe of the gods. And similar to Thoth, Mesopotamian scribal gods also exhibit the power of creation via divine speech.
Among the Maya, the supreme deity Itzamna was a shaman and sorcerer as well as the creator of the world. (In fact, the root of his name, “itz”, can be roughly translated as “magical substance, usually secreted by some object, that sustains the gods”). Itzamna was also responsible for the creation of writing and time keeping. Strangely enough, though, Itzamna isn’t a scribal god. This duty falls on usually a pair of monkey gods as depicted on many Maya pots and is also preserved in the highland Maya epic “Popol Vuh”. Still, in one rare case, the scribe is a rabbit.
In China, the invention of writing was not attributed to a deity but instead to a legendary ancient sage named Fu Hsi, who also invented divination of the future by using turtle shells (hence the oracle bones). He’s also an amazing marketing guru too. Next time you visit a Chinese household, look up when you’re at the front door, and you might see a little circular mirror surrounded by eight multi-line symbols. These symbols (trig rams) are used to communicate with spirits, and together with the mirror they serve as evil repellent too. Just imagine how many of these have been sold in the past 4,000 years! Move over Bill Gates! If Fu Hsi had filed for patents he would have owned the whole world by now!
Ahem … anyway, in these ancient cultures, the creation and use of writing was closely tied to divine creative powers. By uttering or writing down a word, objects get created or people get immortal. They reinforced the notion of writing as supernatural and therefore enforced the exclusivity of the “scribe” class.
Okay, let’s jump ahead in time to the 19th century. Overzealous and Euro centric (I’m using euphemisms here), scholars held that writing was invented only once in Mesopotamia, and all subsequent writing systems were offshoot of this original. They claim that Chinese and Indus writing were evolved from Middle Eastern prototypes, and they completely treat Maya not as a writing system but as a purely calendrical and mnemonic system.
What’s worse is that they started abusing poor Darwin’s theory of evolution. They separate writing systems into functional types, which is okay and still scientific. But then they assigned “evolved-ness” to each group, with alphabet being the most evolved and inherently the best system. Logographic systems like Chinese are considered primitive, archaic, and much inferior, and syllabic systems fall somewhere in between. Their rationale is that alphabets have a small number of signs (easy on your memory) and allow the writer to specify every phonetic value in the language down to the most minute detail.
The biggest problem with this monogenesis and evolution of writing system is obviously that of culturally tinted views. It easily placed Europe as the pinnacle of civilization, relegated the rest of the world to the “primitive” and “unevolved” nature of all other continents of the world, and helped to justify Europe’s imperialistic age.
This whole thing started to crack when the evidence for the indigenous origin of Chinese became very strong with the discovery of the oracle bones and the lack of any earlier text in the vast space between the Iranian plateau and the Yellow River.
Modern Day Views
Nowadays there is more-or-less consensus on these points:
Writing was invented in parallel in at least three, or four, places: Mesopotamia, China, Mesoamerica, and possibly Indus. No type of writing system is superior or inferior to another, as the type is often dependent on the language they represent (unless it’s English). Writing system is not a marker of civilization, as many major urban culture did not employ (full evolved) writing such as the Incas.
The Rabbit Scribe
Rabbits have been the embodiment of different natural and human attributes. Sometimes they are seen as symbols of fertility (as they reproduce so quickly and in great numbers). Other times they are associated with the moon, as the gray patches on the moon to many cultures is a leaping rabbit. Yet some other time they are tricksters, helping the heroes of a story in defeating the bad guys.
But in a Classic Maya funerary vase from northern Guatemala, now in the Princeton University Art Museum, the rabbit was made into a scribal god! Among the Maya, divine scribes usually are monkeys. It is not known if there were any rabbit scribe gods among the Maya. The scene on the vase describes the ghastly rituals in the underworld. It may even be an illustrated chapter from the adventures of the Hero Twins (as recorded in the Quich? Maya holy book Popol Vuh). The rabbit sits below an important old god, perhaps diligently recording the human sacrifice happening in front of the old god in a jaguar-pelt bound codex. Or perhaps he’s doing something else…writing poetry, history, jokes, obscene stories?
Transforming the Rabbit Scribe…
The old rabbit, as I scanned it from a black-and-white drawing. Notice the background scene:
Somebody’s foot, and the dark band in the middle which is the raised floor of a house.
My updates to the scan…Added color, erased the background drawings, and enlarged his eye and moved it forward to make him look cuter.
Created Sept 5, 1997
Types of Writing Systems
Writing systems can be classified in “types” by the way they represent the underlying language. Note, however, that not every script neatly fits into each type.
Proto-Writing: This is the most rudimentary type of writing system. Examples of this type usually have small inventory of signs and large room for interpretation. They don’t denote full running texts but instead serve more like mnemonic devices for the reader.
However, they are writing systems because in some small way they do represent the underlying language, no matter how poorly. Naxi Mixtec
Logographic: A system of this kind uses a tremendous number of signs, each to represent a morpheme. A morpheme is the minimal unit in a language that carries some meaning. So, a logogram, a sign in a logographic system, may represent a word, or part of a word (like a suffix to denote a plural noun). Because of this, the number of signs could grow to staggering numbers like Chinese which has more than 10,000 signs (most of them unused in everyday usage).
Logo-phonetic: This is sort of like stripped down versions of logographic systems. In essence, there are two types of signs, ones denoting morphemes and ones denoting sound. Most of the logo-phonetic are logo-syllabic, meaning that they denote syllables.
An exception is Egyptian, whose phonetic signs denote consonants. Akkadian/Assyrian cuneiform Hieroglyphic Luwian
Syllabic: In a syllabic writing system, the overwhelming number of signs are used solely for their phonetic values. A few non-phonetic are used for numbers, punctuation, and commonly used words.
Byblos Script (?)
Consonantal Alphabetic: Vowels are not written in purely consonantal alphabets, which are descendents of Proto-Canaanite. “Alphabet” for this type of script is somewhat controversial, because you can also argue that it is a syllabic script where each sign consists of consonant and a vowel, but the vowel is not specified.
Berber and Tifinagh
Proto-Canaanite & Phoenician
Syllabic Alphabetic: South Asian scripts such as Brahmi and its descendents fit into both syllabary and alphabet. It is syllabic because the basic sign contains a consonant and a vowel. However, every sign has the same vowel, such as /a/ in Brahmi. To make syllables with a different vowel, you add special markings to the basic sign, which is somewhat like an alphabet. Hence the name “syllabic alphabet”.
C and V Alphabetic: Nearly all the sounds in a language can be represented by an appropriate consonant and vowel alphabet. However, just take a look at English spelling and you can almost feel we’re back to logographic systems !
Unknown: Sometimes it is possible to infer what type a script is by counting the number of signs it has. However, sometimes it is impossible because there isn?t enough textual evidence to establish what the type is. The most famous example of this is the Phaistos Disc.
What about ideographic?
You may have also encountered the term “ideographic”. What it describes is a writing system whose symbols represent ideas. So, any person speaking any language given that they know which symbol in the system represents which idea can read an ideographic writing system. However, the concept of an “ideographic” writing system does not apply to any known writing system. Every writing system in the world replicates a language, so it encodes sounds and grammatical rules. Even at the most primitive level, in writing systems like Naxi or Mixtec, where extremely pictorial signs consist of the main bulk of the system, tricks to spell names using the rebus principle can still be detected.
Futhermore, because of the nature of language, putting words together make more complex ideas. Since there are an infinite number of combinations of words, there clearly cannot be sufficient signs to represent each idea in a language. So, the writing system must mimick the natural language by putting two signs together to form a compound that represents the more complex idea. However, when this happens, signs don’t just get juxtaposed randomly, but instead in some predescribed way that follows the grammatical rule of the language. All of a sudden, this turns into a logographic system!
My point is that ideographic systems don’t exist. It is a myth. Any writing system starts off as logographic and grows from there.
This is, of course, just my opinion, but I feel that it rests relatively well on solid data from writing systems of the world