This site works better with JavaScript enabled!

Index for Spices in Korean (Hangul writing)

The Korean writing system is one of the most elegant and most clearly constructed in the world. It consists of a large number of syllable signs called hangul which are quite transparently conposed of smaller units (letters, jamo) coding individual consonants and vowels. In turn, the jamo follow the featural principle, this is, features of the sound like articulation locus (palatal, alveolar, labial ect.) and articulation mode (voiced, nasal, plosiv, fricative) are reflected in the graphical shape of the corresponding letter.

The consonants are built according to a rather transparent principle, although one apparent irregularity meets the eye. Sound associated with the same articulator share a common shape that iconically represents the articulator (tongue, palate, lips). In Korean, there is no contrast between voiced and voiceless, but rather distinguishes simple, tense and aspirated plosives (also sibilants and fricatives). The simple series may take voice, depending on the environment within a word, but the other two series are always voiceless. Word-finally, and in a voiceless environment, the contrast between all three series is removed. The only intrinsically voiced consonants are the three nasals and the coronal liquid, which has many allophones sounding like L, R or N, and it is mute in some cases.

Consonant type
Articulator and iconic motivation
empty simple tense aspirated nasal liquid
Velar plosives (back of the tongue raises to the palate) G ㄱ (k/g/ng) GG ㄲ (kk)/K ㅋ (k’)
Palatale affricate (middle of tongue touches the palate [shown]) J ㅈ (ch/j) JJ ㅉ (cch)C ㅊ (ch’)
Sibilantes (middle of tongue approaches the palate [not shown]) S ㅅ (s/t)SS ㅆ (ss/t)
Coronal (tip of tongue touchs the rim of teeth) D ㄷ (t/d)DD ㄸ (tt)T ㅌ (t’)N ㄴ (n/l)R/L ㄹ (r/l/n)
Labial (closed lips) B ㅂ (p/b/m)BB ㅃ (pp)P ㅍ (p’)M ㅁn (m)
Glottal (cross-section of throat) (empty) ㅇ(ʿ ㆆ)H ㅎ (h)NG ㅇ (ng)

Apart from doubling the sign to indicate tense sounds (which is a younger innovation), the iconic principles are loosely applied. Aspirated signs have an additional horizontal stroke (note that the B element is simplified in the P sign), and a long horizontal stroke on the top usually indicated plosives. Classifying S as a palatal is somewhat surprising, given the modern pronunciaion.

The glottal series seems poorly motivated. The empty consonant (which is used for syllables starting with a vowel) has now the same glyph as the velar nasal which cannot lead to confusion as the latter appears only syllable-finally; yet originally they were distinct, the empty consonant being a simple circle and the nasal velar being a circle with a vertical top stroke. The two characters are partially conflated in Unicode, and most modern fonts don’t distinguish them in precomposed hangul. The simple glottal plosiv has fallen out of the language, and the corresponding sign is no longer used.

The table also shows possible romanization of the consonants according to the McCune–Reischauer system, which is the most common transliteration system for Korean outside of Korea. It often has alternative representations for one jamo which are chosen according to the actual pronunciation, which is usually determined by neighbouring sounds within a word. For example, simple plosives are spoken voiced (and thus romanized g/j/d/b) inter-vocally or next to M, N or L/R, or an S becomes t in a voiceless environment. The most complicated letter is the one which Unicode calls R at the start of a syllable and L syllable-finally; a host of rather un-intuitive rules governs its romanization as l, r or n. Unfortunately, the McCune–Reischauer system cannot applied algorithmically, but there are some minor aspects that require knowledge of the language.

With the exception of JJ, DD and BB, all these consonants may also appear at the end of a syllable. Korean syllable structure, however, is (C)V((C)C) and allows a few syllable-final consonants clusters, which are, however, only fully pronounced if a vowel follows; otherwise, some sort of simplification takes place. To write syllable-final consonants clusters, a few more jamo signs are needed, which are formed transparently from the basic shapes.

G ㄱJ ㅈS ㅅT ㅌB ㅂP ㅍM ㅁH ㅎ
G ㄱ GS ㄳ
N ㄴ NJ ㄵ NH ㄶ
L ㄹLG ㄺ LS ㄽLT ㄾLB ㄼLP ㄿLM ㄻLH ㅀ
B ㅂ BS ㅄ

Jamo symbols for vowels are also constructed according to clear principles. The systematics behind their shapes, however, are not so easy to grasp because some vowels changed their phonetic value in the time after the script was intoduced, and the principle of vowel harmony (bright/dark) has since become less apparent in the language. There are only six basic shapes: The nucleus of all vowel jamo is a long stroke, vertically for (at that time) low vowels (E, EO, I) and horizontally for (at that time) high vowels (O, U, EU). Those vowels which may be preceded by a Y are marked with a short stroke, which is directed upwards or right for bright vowels (A, O) and downwards or left for dark vowels (U, EO). I counts as neither dark nor bright, but doesn’t need such a stroke since YI does not exist. The symbolism behind that is inspired by the Chinese yin/yang dichotomy.

Preceding Y (Iotaization) is indicated by doubling the short stroke. Preceding W (labialization) is indicated by squeezing a O or U (according to the harmony class) to the left of the vowel. There are also several old diphthongs with I, which are written with an additional vertical stroke (the I sign) to the right of the vowel; in most cases,however, there is no I element audible in the modern pronunciation of these vowels. The following table tries to arrange all the vowel signs systematically, and gives their McCune–Reischauer romanization.

Bright vowel harmony classDark vowel harmony classneutral class
BasicLabialized (O)Iotated (Y)BasicLabialized (U)Iotated (Y)
high or
SimpleO ㅗ (o)YO ㅛ (yo)U ㅜ (u)YU ㅠ (yu)
Di­phthongOE ㅚ (oe)WI ㅟ (wi)
SimpleEU ㅡ (ŭ)
Di­phthongYI ㅢ (ŭi)
SimpleA ㅏ (a)WA ㅘ (wa)YA ㅑ (ya)EO ㅓ (ŏ)WEO ㅝ (wŏ)YEO ㅕ (yŏ)
Di­phthongAE ㅐ (ae)WAE ㅙ (wae)YAE ㅒ (yae)E ㅔ (e)WE ㅞ (we)YE ㅖ (ye)
I ㅣ (i)

To actually write Korean text, the letters (jamo) must first be combined into syllable signs (hangul). The number of possible hangul is enormous: The syllable contains of one of 19 lead consonants (including the empty consonant), plus one of 21 vowels, plus an optional tail of 27 consonants or consonant clusters. This resuls in 11172 possible hangul signs, all of which do appear in the language. Yet that large number can be handled easily, as the building principle is simple enough.


Lead, vowel and tail jamos occupy rather fixed positions within the square hangul: The lead goes to the top left corner, and the tail moves down to the lower baseline. Depending on its shape, the vowel is written (a) into the right top quarter (if it is basically of vertical shape, like A ㅏ), (b) to the vertically middle third (if it is basically of horizontal shape, like U ㅜ) or (c) it engulfs the lead jamo (in the top left corner) from right and below. The latter happens with labialized vowels like WA ㅘ. All three components may have to expand or shrink a little to fill the available space. All hangul have the same quadratic shape and height, which allows to mix them freely with Chinese logographs within a text. In the past, this was common practise, but since the century, usage of Chinese charactes in Korean texts is declining, giving rise to almost pure hangul texts.

A missing tail consonant (in an open syllable) is just omitted, which allows the other components to expand considerably. Yet a missing head consonant must be written with the empty consonant sign. Thus, every hangul consists of at least two jamo, even if the syllable is just one isolated vowel. If the syllable ends in a consonant cluster, the compound jamo symbol gets no more space than a simple one, which may give rise to a rather cramped appearance.

At the time of their introduction in the century, the script was more phonetic than it is now. Orthgraphy reforms and evolution of the language have now made it a mostly morpophonemic system, that does not reflect pronunciation very well but allows to identify underlying roots and makes word formation more transparent. In that respect, Korean writing is somewaht comparable to English orthography: The correspondence between night and nocturn is more easily recognizable in written than in spoken form. Yet, Korean hangul are in that respect certainly much more successful than the historic English orthography. They are a well designed masterpiece and perhaps the most scientifically constructed writing system of any importance.

In hangul can rightly be called elegant, their representaton in the Uncode standard is rather bloated. Korean script is scattered over a couple of Unicode blocks:

Hangul Jamo U+1100 – U+11FF Combining Jamo (could be used for Korean text)
CJK Symbols and Punctuation U+3000 – U+303F Very few Korean-related signs.
Hangul Compatibility Jamo U+3130 – U+318F Non-combining Jamo (hardly useful except for instruction)
Enclosed CJK Letters and Months U+3200 – U+32FF Among much other, some decorated Korean syllables
Hangul Syllables U+AC00 – U+D7AF Precomposed syllables (normally used for Korean text)
The Hangul Syllables range contains an astounding 11172 precomposed syllable characters, filling one-sixth of the available BMP code space, but all of them are redundant, since they always could be composed on the fly using combining Jamos from the Hangul Jamo range, which are conjoining and canonically equivalent to the hangul. There are different Hangul Jamo codepoints for head and tail consonants that differ in their joining behaviour. The Hangul Compatibility Jamo range contains non-joining jamo that are mostly useless for typesetting Korean, but are needed in instruction texts about Korean writing, like the one you are currently reading (actually, there was a historic movement trying to abolish Hangul and writing linear sequences with Jamo, but it never really got followers).

The fact that well-formed sequences of jamo (from the Hangul Jamo range) are canonically equivalent to the respective Hangul Syllables means that one can encode Korean text either alphabetically or syllabically. The former is, however, poorly supported with current rendering software, and is likely to confuse any text search or text matching application; moreover, file sizes would be almost tripled. Therefore, encoding as precomposed hangul is the only practical option. Note that while, for example, the hangul syllable GGABS may be represented as hangul GGABS, as hangul GGA plus jamo BS-tail, or as three jamo GG-head A-vowel BS-tail, the compound jamo may not be decomposed, and representations line G-head G-head A-vowel B-tail S-tail or even hangul GGAB plus jamo S-tail are not valid.

The following table shows some stunts with Jamo and Hangul characters, proving (or disproving) your systems Unicode capabilities. The sequences are first describes with Unicode names, then shown with Compatibility Jamos, then actually tried with true combining Jamos; the last column comments on what you should see in the third column.

Jamo H-head + Jamo A + Jamo L-tail ㅎㅏㄹ 할 should combine into Hangul HAL
Hangul HA + Jamo L-tail 하ㄹ 할
Jamo H-tail + Jamo A + Jamo L-tail ㅎㅏㄹ ᇂᅡᆯ illegal sequence should not combine into Hangul HAL
Jamo H-head + Jamo A + Jamo LT-tail ㅎㅏㄾ 핥 should combine into Hangul HALT
Hangul HA + Jamo LT-tail 하ㄾ 핥
Jamo H-head + Jamo A + Jamo L-tail + Jamo T-tail ㅎㅏㄹㅌ 할ᇀ illegal sequence should not combine into Hangul HALT
Hangul HAL + Jamo T-tail 할ㅌ 할ᇀ
Jamo H-head + Jamo A + archaic Jamo LD-tail ㅎㅏㅪ 하ᇎ should combine into Hangul HALD, looking like a hybrid of HAL and HAD
Hangul HA + Jamo LD-tail 하ㅪ 하ᇎ
Jamo H-head + Jamo A + archaic Jamo LBS-tail ㅎㅏㅫ 하ᇓ should combine into Hangul HALBS, with three jamo in the bottom row, looking like a hybrid of HAL , HAB and HAS
Jamo empty-head + Jamo EU ㅇㅡ 으 Should combine into Hangul EU
Jamo empty-head + achaic Jamo EUEU ㅇ   ᆖ ᄋᆖ Should combine into a Hangul that looks like the previous, but with doubled horizontal line

Unicode Encoded Validate using the WDG validator Validate using the VALIDOME validator