home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / std / internat / 1295 < prev    next >
Encoding:
Internet Message Format  |  1993-01-24  |  6.7 KB

  1. Path: sparky!uunet!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!yale!mintaka.lcs.mit.edu!ai-lab!wheat-chex!glenn
  2. From: glenn@wheat-chex.ai.mit.edu (Glenn A. Adams)
  3. Newsgroups: comp.std.internat
  4. Subject: Re: Radicals Instead of Characters
  5. Date: 24 Jan 1993 06:03:43 GMT
  6. Organization: MIT Artificial Intelligence Laboratory
  7. Lines: 137
  8. Message-ID: <1jtbfvINNqvr@life.ai.mit.edu>
  9. References: <1jfgq1INNqmn@flop.ENGR.ORST.EDU> <2791@titccy.cc.titech.ac.jp> <1jpj9sINNlie@flop.ENGR.ORST.EDU>
  10. NNTP-Posting-Host: wheat-chex.ai.mit.edu
  11.  
  12. In article <1jpj9sINNlie@flop.ENGR.ORST.EDU> crowl@jade.CS.ORST.EDU (Lawrence Crowl) writes:
  13. >An encoding every variant of every character ever written is not?  At
  14. >214 radicals, we can represent a radical in eight bits, and a character
  15. >in 8*(average number of radicals per character).  Your non-unified
  16. >approach would require roughly eighteen bits per character.
  17.  
  18. Forget about encoding Han characters as a string of radicals (at least
  19. the Kangxi radicals).  It won't work.  Take the first 10 Unihan characters
  20. as a test.  Each of these are composed of radical 1 (meaning 'one') plus
  21. additional strokes as follows, with the additional strokes further
  22. decomposable as follows:
  23.  
  24. 4E00    rad 1 + 0 strokes = rad 1
  25. 4E01    rad 1 + 1 strokes = rad 1 + rad 6
  26. 4E02    rad 1 + 1 strokes = rad 1 + ?
  27. 4E03    rad 1 + 1 strokes = rad 1 + rad 5
  28. 4E04    rad 1 + 1 strokes = rad 1 + rad 2
  29. 4E05    rad 1 + 1 strokes = rad 1 + rad 2
  30. 4E06    rad 1 + 1 strokes = rad 1 + rad 4
  31. 4E07    rad 1 + 2 strokes = rad 1 + ?
  32. 4E08    rad 1 + 2 strokes = rad 1 + ?
  33. 4E09    rad 1 + 2 strokes = rad 1 + rad 7
  34.  
  35. 4E02, 4E07, and 4E08 do not have a complete decomposition by these radicals;
  36. on the other hand, 4E04 and 4E05 have the same decomposition.  The main
  37. problems with your proposal (which frequently appears and soon disappears)
  38. are (1) more component radicals are needed than in the Kanxi radical set,
  39. and (2) a mechanism is needed to disambiguate identical decompositions.
  40.  
  41. Another component set, called the Chiao-tung set, contains 446 components
  42. and has been shown to generate more than 48,700 characters; however, even
  43. it fails to describe certain characters.  Perhaps as many as 1,200 components
  44. are needed to fully describe all known characters.
  45.  
  46. To disambiguate identical decompositions, it is necessary to tag each
  47. decomposed component with a position and size metric.  The fully decomposed
  48. character can then be unambiguously described as the sum of N components,
  49. each having a specified position and size.
  50.  
  51. This more thorough method would only suffice to describe characters as
  52. abstract shapes.  It would not be sufficient to describe the glyphs which
  53. correspond to these characters.  A glyph decomposition would have to
  54. use a collection of strokes, perhaps as few as 40, along with the position
  55. and size of each stroke, to describe each glyph a Han character might
  56. take.  Furthermore, since more than one glyph can represent the same
  57. character, some mechanism by which such a family of glyphs could be
  58. interrelated would probably be needed.
  59.  
  60. There are a number of text processing domains where character decomposition
  61. might be useful:
  62.  
  63. 1. character encoding
  64. 2. character input
  65. 3. text compression
  66.  
  67. Similarly, glyph decomposition might be useful in the following domains:
  68.  
  69. 1. font encoding
  70. 2. glyph representation
  71. 3. glyph recognition (OCR)
  72.  
  73. Since the present discussion revolves around character encoding issues,
  74. it is useful to say how decomposition may affect character representation
  75. and processing:
  76.  
  77. 1. Reduces character code element requirements:  the number of code elements
  78.    required could be as few as N components + P relative positions +
  79.    S relative sizes.  Assuming that 1200 components could fully generate all
  80.    characters; and assuming that P and S could be digitized to a small
  81.    set of discrete values (say 10 or fewer each), then perhaps as few as
  82.    1220 character code positions would be required.
  83.  
  84. 2. Increases string lengths:  my guess is that, on the average, approximately
  85.    4-5 components would be necessary, and, since each would require a position
  86.    and size attribute, total string length would be increased by 9-12 times
  87.    over a fully precomposed character encoding.  This could be reduced by
  88.    multiply encoding each component, with one encoding for each position and
  89.    size which that component could take.  In this case, if we assume that
  90.    a fourth of the possible 10*10 position/size feature space was actually
  91.    used by each component (on average), then 25*1200 code points would be
  92.    needed, bringing us up to 25,000 code points.  A string would now increase
  93.    only 3-4 times in size (in the average case), since position and size would
  94.    be implicit.  However, the attraction of a small number of code points would
  95.    be lost.
  96.  
  97. 3. Increase compression efficiency in the case of only using 1220 code
  98.    positions; most compression schemes compress at a ratio which is
  99.    directly proportional to the symbol count:  fewer symbols mean better
  100.    compression.
  101.  
  102. 4. Allows for simple creation of new Han character symbols using combinatorial
  103.    methods.
  104.  
  105. 5. Text operations which must operate on each such decomposed Han character
  106.    must now parse the string to find the boundaries of each decomposed Han
  107.    character.  Indexing now becomes a O(n) problem, rather than a O(1)
  108.    problem.
  109.  
  110.  
  111. To summarize, a decomposed Han character approach may reduce the number of
  112. code points needed from approximately 2^16 to approximately 2^11; however
  113. text storage sizes will have a commensurate increase.  So, to roughly gauge
  114. this, we might have:
  115.  
  116.   precomposed encoding
  117.  
  118.   2^20 precomposed characters *
  119.   2^16 bits/precomposed character =
  120.   2^36 bits
  121.  
  122.   decomposed encoding
  123.  
  124.   2^20 precomposed characters *
  125.   2^4  decomposed characters/precomposed character *
  126.   2^11 bits/decomposed character =
  127.   2^35 bits
  128.  
  129. Thus a decomposed encoding may produce a 2 times space savings overall;
  130. perhaps more still if the average decomposition is much smaller than 16
  131. elements.  However, the cost of processing now increases dramatically
  132. since indexing is no longer possible without parsing a string.  Furthermore,
  133. nobody is going to use 11 bit character codes.  Once you go over 8 bits,
  134. the only logical choice is 16 bits, or perhaps 32 bits.  Since 32 bits is
  135. clearly overkill, there remains a 16-bit encoding model:  Unicode.
  136.  
  137. Perhaps further investigation of decomposition is justified in the context
  138. of finding good compression algorithms; however, it is not justified in
  139. the context of finding a reasonably simple yet adequate character encoding.
  140.  
  141. Some information regarding Han character and glyph decomposition which was
  142. used above was taken from "On the Formalization of Glyph in Chinese
  143. Language," by C. C. Hsieh, C. T. Chang, and Jack K. T. Huang, Feb 6, 1990,
  144. a contribution to the Kyoto meeting of AFII (Association for Font Information
  145. and Interchange).
  146.  
  147. Glenn Adams
  148.  
  149.