home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / std / internat / 1050 < prev    next >
Encoding:
Text File  |  1993-01-06  |  43.8 KB  |  1,023 lines

  1. Path: sparky!uunet!not-for-mail
  2. From: avg@rodan.UU.NET (Vadim Antonov)
  3. Newsgroups: comp.std.internat
  4. Subject: Re: Language tagging
  5. Date: 5 Jan 1993 20:42:38 -0500
  6. Organization: UUNET Technologies Inc, Falls Church, VA
  7. Lines: 1011
  8. Message-ID: <1iddeeINN58g@rodan.UU.NET>
  9. References: <1993Jan3.203017.232@enea.se> <2609@titccy.cc.titech.ac.jp> <1iav6tINNee2@life.ai.mit.edu>
  10. NNTP-Posting-Host: rodan.uu.net
  11.  
  12.  
  13. Excuse me for the delay -- i've got a lot of things i have to do
  14. besides playing with flammable materials in USENET.
  15.  
  16. Well, i'll try to outline the rationale after my proposal.
  17.  
  18. First, let's define terms.
  19.  
  20. Localization is when a system is supposed to work with only one
  21. (user's) language. In practice, bilinguality is required because
  22. most programming languages and command-line interfaces heavily use
  23. English mnemonics.
  24.  
  25. Localized system's components apriori know the language of the texts
  26. they work with (including sorting/case conversion rules and, more
  27. important the alphabet). Since the (supposedly small) alphabet is
  28. used, there is no need to use multibyte characters (at least for
  29. European and Slavic languages) and there are already national
  30. standards in place. For Greek or Hebrew or Russian users Unicode/ISO10646
  31. offers nothing except wasted disk space.
  32.  
  33. Therefore, i'm discarding all claims that Unicode/ISO10646 is intended
  34. to provide means for localization ONLY. It is designed for
  35. internationalization, i.e. for supporting sufficiently multilingual
  36. environments; and this function is the only justification for
  37. its introduction.
  38.  
  39. Now, i think everybody agrees that the "ultimate encoding" is
  40. the one which provides the complete information about which
  41. language is used -- it sovles all the problems.
  42.  
  43. Such an encoding can be implemented with:
  44.  
  45. 1) register switching with (say) escape sequences.
  46.    This is highly impractical; moreover it is impossible
  47.    to determine the language if the information is available
  48.    from some point in the middle of file -- this situation
  49.    is especially troubling with Unix file pointer sharing.
  50.  
  51. 2) every character code is a pair (language-code, letter-number-in-alphabet)
  52.    It is hardly practical because of the storage considerations.
  53.    Codifying languages require at least 10-12 bits, ie. every
  54.    letter turns into at least 3-byte sequence.
  55.  
  56. Now, we can sacrifice some information to achieve better compression
  57. by assinging similar codes to similar LETTERS (note that i didn't
  58. use the word GLYPH).
  59.  
  60. First we need to determine which information CAN be dropped without
  61. making the encoding impractical.
  62.  
  63. Obviously, the visual representation (i.e. the set of glyphs) should
  64. be preserved -- it sets the lower boundary on the compression.
  65.  
  66. Let's analyse the other properties of the ultimate encoding:
  67.  
  68. 1) it explicitly distinguises between the natural languages.
  69.  
  70.    This information cannot be used for processing the texts anyway
  71.    because machines do not *understand* languages and therefore
  72.    do not care about the contents. The language indication can
  73.    be useful for selecting a dictionary; but the words themselves
  74.    are already good indicators of the language (with few exceptions)
  75.    involved. Moreover, the spell-checking is usually done at the
  76.    input where the language in question is known.
  77.  
  78.    I think this property can be easily dropped.
  79.  
  80. 2) there is an *algorithm* for converting from upper case to lower case
  81.    and vice versa.
  82.  
  83.    This property is extremely useful for everything involving
  84.    searches in texts and databases. The case-insensitive comparison
  85.    is simply inavoidable because of the rules of capitalization
  86.    in sentences (i.e. you can't easily tell if the word at the
  87.    beginning of sentence is capitalized because it is name or because
  88.    of the common rule). The database applications often require
  89.    preserving the strings as was entered while searching for
  90.    words with undefined capitalization.
  91.  
  92.    If an encoding does not provide this property it is nearly
  93.    useless for most library/groupware and business applications.
  94.  
  95.    Therefore this property MUST be preserved.
  96.  
  97.    (I have to remark here that neither Unicode nor ISO 10646 provide
  98.    a way to perform case-insensitive comparison without specifying
  99.    the exact language of the string -- if the language is kept
  100.    OUTSIDE the text the text itself can be encoded within the
  101.    alpabet of this particular language much more effectively).
  102.  
  103. 3) there is an *algorithm* for lexicographical sorting (and for
  104.    that matter for range comparisons).
  105.  
  106.    This is necessary if the now-ubiquotus semantics of regular
  107.    expressions, shell globbing and sorted directories (and, of
  108.    course, neat sorted reports) is to be preserved.
  109.  
  110.    Several people argued that this functionality is not actually
  111.    necessary because users will want to see strings sorted
  112.    accordingly to their native language's rules). While it is
  113.    a neat idea it still does not eliminate the necessity of a
  114.    generic algorithm used as fallback for "customized" sorting
  115.    algorithsm -- what, for example, is the idea of sorting Chinese
  116.    using rules of Finnish?
  117.  
  118.    Moreover, the usage of a "unversal" algorithm is inavoidable
  119.    when consumers of the pre-sorted information do not share
  120.    a cultural background.
  121.  
  122.    Therefore this property must be preserved as well.
  123.  
  124. 4) indication of the language is useful for hyphenation.
  125.  
  126.    There is no such thing as ideal hyphenation algorithms --
  127.    the hyphenation algorithms are nothing more than euristics
  128.    which yield more-less reasonable results.
  129.  
  130.    While the high-quality hyphenation algorithms require
  131.    dictionaries and heavily use language specifics the
  132.    reasonable results (sufficient for use in, say, columns
  133.    of tables or as a base for consequtive manual reaarangement)
  134.    can be achieved by relatively generic algorithms based on
  135.    knowledge of specific roles of letters (i.e. vowels and
  136.    modificators like hard/soft signs in Russian).
  137.  
  138.    Dictionary-based hyphenation algorithms do not need the
  139.    language specification because the words themselves indicate
  140.    the language; if the word is not in the dictionary the
  141.    generic rules should be applied.
  142.  
  143.    Therefore it is desireable (though not necessary) that
  144.    the letter classes (ie. which ones are vowels) are preserved.
  145.  
  146.    Fortunately, if a letter shared between languages it is
  147.    nearly certain that it is (is not) vowel in both languages.
  148.  
  149. 5) typographical-quality fonts often differentiate between
  150.    "similar" glyhps reproducible on lower-resolution devices.
  151.  
  152.    However, it is possible to create reasonably-looking fonts
  153.    shared between several languages if the basic graphic set
  154.    of the languages is common (say, Latin for European languages,
  155.    Cyrillic for most Slavic languages). Actually, it the way
  156.    the font designers work in the multi-lingual environments.
  157.  
  158.    The proposed encoding methodology (see later) "automatically"
  159.    separates graphic sets, so the ability to output typography-
  160.    quality text is essentially "free" in the proposed encoding.
  161.  
  162.  
  163. The way the ultimate encoding is compressed into the proposed
  164. encoding is quite simple:
  165.  
  166. The alphabets are separated into several groups; in every group
  167. conflicts between incompatible ordering resolved by duplicating
  168. codes for the conflicting letters. If there are letters which do
  169. not have upper/lowercase counterparts (like German eszat) new
  170. codes should be reserved to distinguish the corresponding printable
  171. signs as "special" (i.e. the special German S) or new glyphs should
  172. be added (SS). If there is ambiguity in converting case (like
  173. cyrillic/greek/german T) this glyph should be assigned several codes
  174. to eliminate ambiguity. If a glyph can represent differntly-behaving
  175. letters in different languages (like "o or l, c and h in Spanish) it
  176. should be assigned several codes to eliminate the ambiguity.
  177.  
  178. The "canonical" sorting order is the _dictionary_ one (dictionaries
  179. are usually more logical in their sorting conventions).
  180.  
  181. The criteria for separating alphabets into groups are simple as well -
  182. it simply comparing the number of new codes which are introduced
  183. by adding a new group with the number of new codes assigned by
  184. attempting to fit the language in existing groups (well, it's not
  185. that simple but still the problem is well-formalized and can be
  186. solved with known mathematical methods without reverting to
  187. truthsearching by voting).
  188.  
  189. It makes sense to keep codes in the order similar to the order of
  190. letters in alphabet to eliminate the need for large tables used by
  191. the universal sorting algortim. The canonical universal sorting algorithm
  192. should be included in the standard (contrary to the popular opinion
  193. it would not be THAT large -- i think everything can be fitted in
  194. less than 50 lines because sorting irregularities are specific for
  195. European languages for historical reasons [namely the idea of dictionary
  196. with sorted entries is European -- and the irregular rules were
  197. accepted before the importance of simple lexicographical sorting was
  198. realized -- see Knuth vol.3], the sorting rules for ancient languages
  199. were introduced _later_ as well as rules for languages which had no
  200. established writing at the time (most of Cyrillic-based languages for example
  201. had no written form before the nations were occupied by chauvinistic
  202. Russian imperialists which obviously did not care about the culture
  203. or ethnic miniorities and opressed them by inventing and introducing
  204. writing to be able to give orders in natives' languages -- that's for
  205. soc.culture.soviet readers).
  206.  
  207. The "customized" sorting algorithms (sorting everything Latin-based
  208. according to, say, Finnish rules) in most cases can be reduced to
  209. the universal sorting by trivial transliteration which makes possible
  210. introduction of table-driven generic customized sorting routines.
  211.  
  212. Apparently it makes sense to violate the lexicographical letter
  213. ordering for Latin-based languages to make the proposed encoding
  214. upward-compatible with ASCII. The price is nothing more than
  215. one additional transliteration table in the comparison/sorting algorithm.
  216.  
  217. Since the proposed encoding preserves the properties 2 & 3 of the
  218. ultimate encoding it is POSSIBLE to create truly internationalized
  219. applications without getting into local specifics (i.e. you can
  220. sort German file on a machine in Japan without any changes in
  221. environment). No additional off-text information is required which
  222. surely allows to preserve the existing interfaces like regular
  223. expressions/shell globbing/mailing systems etc and minimize changes
  224. in the existing software.
  225.  
  226. To ease hypenation problem it may make sense to add a zero-width
  227. "hyphenate hint" symbol (aka \% in troff). This symbol can be added
  228. manually or by language-specific hyphenation algorithm at the
  229. input (it may as well be a part of spell-checker, in this role
  230. it is essentially "free"). The idea is to leave ALL language
  231. specifics at the point of input where the language is supposedly
  232. known. If a "generic" hypenation algorithm is included in standard
  233. it may be possible to omit hyphenation hints in words which were
  234. split correctly by the standard algorithm.
  235.  
  236. The main inconvinience introduced by the proposed encoding is
  237. the possibility of confusion between several codes for a glyph.
  238. However, since practically all input is done in a sinlge or two
  239. languages it is not really a problem. Some people will object
  240. to explicit switching between languages, however; it they LIKE
  241. to include a foreign word into a letter as native it it supposed
  242. to be treated as native. Introducing spell-checking at input
  243. and emphasising selected languages by means of color, brightness
  244. or different font styles practically eliminates the problem.
  245.  
  246. ISO 10646 (unlike Unicode as in Plan 9) already provides several
  247. codes for identical glyphs in places where it is obviously
  248. absurd to do otherwise (as with T in cyrillic, greek and latin);
  249. but as old saying goes: "you can't be 30% pregnant". This
  250. does not solve all sorting and case conversion problems (unlike the
  251. systematic approach i outlined before) but introduces all
  252. inconviniences of having ambiguous glyph encodings.
  253.  
  254. Now, flame mode on (type 'n' if you think the following material
  255. can be offensive, tasteless or plain stupid):
  256.  
  257. -------
  258. From: Terry Lambert
  259.  
  260. >Other word processing operations (such as dictionary and thesaurus use
  261. >within the program) require knowledge of which language to use.
  262.  
  263. Phew! If a word is IN dictionary it is already known which language
  264. it is from. Thesaurus-collecting algorithms generally do not care
  265. about lagnuage at all.
  266.  
  267. >The idea of sort order should be (and is in Unicode) divorced from the
  268. >idea of information storage.  The fact that one will have text files,
  269. >data files, and text files which act as data files on the same machine
  270. >*requires* some type of promiscuous [out of data band] method of
  271. >determining the format of the data within a file.
  272.  
  273. NEVER say "impossible". As i just argued before it IS possible
  274. and no out-of-band information required for 99% of applications.
  275.  
  276. >This method, whether
  277. >it be language tagging of the files in the inode, or language tagging
  278. >of the user during the login process is imperitive.  To do otherwise
  279. >means that your localization data coexists with system data rather
  280. >than system data being localized as well.
  281.  
  282. Have it ever occured to you that texts may contain arbitrary numbers
  283. of languages? No external (out-of-text) tragging is sufficient
  284. in general case.
  285.  
  286. >The operations you wish to perform are the province of applications running
  287. >on the system, not the system itself.  Regardless of whether this is done
  288. >by an application programmer (as a per application localization) or by the
  289. >creator of a library used by applications (as part of developement system
  290. >localization), THE CODE BELONGS IN USER SPACE.
  291.  
  292. Nobody (surely, not me) ever said something about getting everything
  293. in the kernel. However, moving multilingual support from SYSTEM
  294. software to APPLICATION software is the best way to kill the idea.
  295. Somehow you forgot that what is not done once in system will be
  296. done in zillion incompatibe ways in user programs. Take MS-DOS
  297. as a live example.
  298.  
  299. >A point of contention: a logician is, by disipline, a philosopher, not a
  300. >mathematician.  Being the latter does not qualify one as the former.
  301.  
  302. If it IS the way the logic is taught here i feel pity for the
  303. American education. Philosophy is a matter of speculations;
  304. logic is a precise science and attempts to make "logical"
  305. decisions based on philosofical word games are plain stupid.
  306.  
  307. >The point of having to know what language a particular document is written
  308. >in in order to manipulate it was *not* omitted; it was taken as an *axiom*.
  309.  
  310. Er? That's the lack of logical thinking -- never question *axioms*.
  311.  
  312. >With all due respect, the ISO-8859-5 is an international standard to
  313. >which engineering outside of Russia is done for use in Russia.  Barring
  314. >another published standard for external use, this is probably what
  315. >Russian users are going to be stuck with for code originating outside
  316. >of Russia.  I suggest that if this concerns you, you should have the
  317. >"defacto standard" codified for use by external agencies.
  318.  
  319. KOI-8 became a standard in early 70s and sure is codified (apparetly
  320. not by ISO but by CCITT because it is based on "phonetical" system
  321. for sending cyrillic messages over international talegraph which
  322. predates computers).
  323.  
  324. >One wonders at the ECMA registration of a supposed "non-standard" by Russian
  325. >nationals if the standard is not used in Russia.
  326.  
  327. One wonders on X.25, X.29, X.400 and a lot of other stuff which
  328. was standartized BEFORE it become a proven practical solution.
  329. Need i to remind that ASCII defeated EBCDIC in the market before
  330. it become international standard.
  331.  
  332. As for ISO commitees -- USSR is surely was represented by petty
  333. bureaucrats from the Ministry of Communications who are utterly
  334. incompetent. Somehow international bodies never got interested
  335. in looking for really competent people if they do not represent
  336. government or corporate interests. Unfortunately we can do nothing
  337. about it. The only remedy is to oppose attemts to standartize
  338. things which gained no market acceptance.
  339.  
  340. >The process of "asking the user" is near 0 cost regardless of whether the
  341. >implementation is some means of file attribution per language or some
  342. >method of user attribution (ala proc struct, password file, or environment).
  343.  
  344. How do think you're going to attribute a single language to the user avg?
  345. I somehow write in Russian and English and often use both in
  346. the same phrase.
  347.  
  348. >It becomes more complicate if you are attemting a multinational document;
  349. >the point here is to enable localization with user supplied data seta
  350. >rather than providing a tool for linguistic scholars or multilingual
  351. >word processors.  It is possible to do both of these things within the
  352. >confines of Unicode, penalizing only the authors of the applications.
  353.  
  354. As i already said Unicode/ISO 10646 are USELESS for localization
  355. -- we don't need one more standard where old standards work
  356. just fine.
  357.  
  358. >I believe that multinational documented will be the exception, not the
  359. >rule.
  360.  
  361. Learn some foreighn language and try to use it in the real-life
  362. communications -- you'll find that mixed-language texts are
  363. far far more common than you think. Russian, for example
  364. do not have equivalents for "political correctness" or
  365. "mentally disadvantaged" simply because that plague avoided
  366. the Russian culture.
  367.  
  368. >I believe the goal is *NOT* multinationalization, but internationalization.
  369. >In this context, internationalization refers not to the ability to provide
  370. >perfect access to all supported languages (by way of glyph preference), but
  371. >refers instead to an enabling technology to allow better operating system
  372. >support for localization.
  373.  
  374. For "internationalization" as you understand it Unicode is
  375. nothing more than extra bytes and lot of pain in the ass.
  376.  
  377. >Multinational use is out of the question until modifications are made to
  378. >the file system in terms of supporting multiple nation name spaces for the
  379. >files.
  380.  
  381. You don't need changes in file systems to support multilingual texts.
  382. Having developed bilingual Unix i can assure you in that.
  383.  
  384. >Localization in terms of multinationalization requires other considerations
  385. >not directly possible, in particular, the concept of "well known file system
  386. >objects" must be adjusted.  Consider, if you will, the fact that such a
  387. >localization of the existing UNIX infrastructure is currently impossible
  388. >in this framework.  I am thinking in particular renaming the /etc directory
  389. >or the /etc/passwd file to localized non-English equivalents.
  390.  
  391. Renaming /etc or /etc/passwd in order to achieve "multinationalization"
  392. is plain stupid because these aren't human words but rather kinds
  393. of hierogliphs. Somehow French, Russian, German programmers never
  394. had troubles understanding that IF THEN ELSE means conditional
  395. excecution. It may be not so obvious for English speakers who
  396. grow up on COBOL but the computerish semantic units are easier to
  397. understand if not to mix them with the natural languages.
  398. I bet that schoolchilden in Russia have much less troubles
  399. understanding the difference between usage of conditional
  400. clauses in natural and algorithmic languages (simply *because*
  401. they're different).
  402.  
  403. >The idea
  404. >of multinationalization falls under its own weight.  Considr a system used
  405. >by users of several languages (ie: a multinational environment).  Providing
  406. >each use with their own language's view of file requires a minimum of the
  407. >number of well known file names times the number of languages (bearing in
  408. >mind that translation may effect name length) for directory information
  409. >alone.  Now consider that each of these users will want their names and
  410. >passwords to be in their own language in a single password file.
  411.  
  412. It means only that you don't understand what multinationalization is.
  413. I myself developed the system which is successfully used by
  414. people knowing English or Russian for a decade -- somehow it
  415. didn't collapsed.
  416.  
  417. To make system multinational you don't need to rename system
  418. utilities and files. Waht you need is to give users:
  419.  
  420. - ability to operate texts in their own language
  421. - print diagnostic messages in user's language
  422. - provide documentation in user's language
  423. - provide means for development of multinational applications
  424.   (i.e. make development tools to understand the user's language)
  425. - support filenames in user's language
  426. - provide a way to customize user's environment (aka aliases)
  427.   Unix already has adequate customization mechanizms.
  428.  
  429. >Multinationalization is possible, but of questionalble utility and merit
  430. >in current computing systems.  We ned only worry about providing the
  431. >mechanisms for concurrency of use for the translators.
  432.  
  433. Tell it to the secretary in DEMOS -- she somehow used to keep
  434. her whole stuff in a Unix machine for years without bothering
  435. to learn any English. What you think is impossible or of
  436. questionable utility is already used by lots of people for
  437. many many years.
  438.  
  439. >Consider now the goal of data-driven localization (a single translation
  440. >for all system application programs and switching of language environments
  441. >without application recompilation.
  442.  
  443. Ever heard about string files? It is as easy as that.
  444. You may also want to steal a look at Macintrash -- they had
  445. it from the very beginning.
  446.  
  447. >Rather than rewriting all applications which use text as data (cf: the C
  448. >compiler example), unification of the glyph sets makes more sense.
  449.  
  450. No logic here. Having several codes for a glyph does not
  451. hinder application's ability to treat that as a glyph.
  452.  
  453. >The only goal I am esposing here is enabling for localization.  For this
  454. >task, Unicode is far from useless.
  455.  
  456. Ah. Checked your logic lately? Tell the Russian users they'll
  457. need two bytes per letter instead of one to be able to do
  458. what they already can do with KOI-8 (well, not exactly; they'll
  459. be unable to sort without telling which language they mean).
  460. The bi-lingual encodings with pairs of separate alphabets
  461. fitting in one byte (or fitting in two bytes for Chinese and
  462. Japanese) are quite sufficient for localization; and moreover
  463. there already are standards.
  464.  
  465. >Then "real users" can supply a codified alternative in short order or lump it.
  466.  
  467. Real users do not play in bureaucratic games in international bodies,
  468. they simply pay money. Need i to teach Americans basics of capitalism?
  469.  
  470. >T: the lexical order argument is one of the sticking points against the
  471. >T: Japanese acceptance of Unicode, and is a valid argument in that arena.
  472. >T: The fact of the matter is that Unicode is not an information manipulation
  473. >T: standard, but (for the purposes of it's use in internationalization) a
  474. >T: storage and an I/O standard.  View this way, the lexical ordering argument
  475. >T: is nonapplicable.
  476.  
  477. >V: It'd be sticking point about Slavic languages as well, you may be sure.
  478. >V: Knowing ex-Soviet standard-making routine i think the official fishy-eyed
  479. >V: representatives will silentlly vote pro to get some more time for raving
  480. >V: in Western stores and nobody will use it since then.  The "working" standards
  481. >V: in Russia aren't made by commitees.
  482.  
  483. >Then this will have to change, or the Russian users will pay the price.
  484. >Those of us external to Russia are in no position to involve ourselves in
  485. >this process.  Any changes will have to originate in Russia.
  486.  
  487. Aha. I like your naivete. The fastest way to achieve the "changes"
  488. is to butcher every ex-communist official. Sure, Russian users
  489. will pay the price -- to companies which will offer them useable
  490. products which do not follow dead-born standards.
  491.  
  492. >Address information can not be hyphenated, at least in US and other Western
  493. >mail of which I am personally aware.  This is a non-issue.  This is also
  494. >something that is not the responsibility of the operating system or the
  495. >storage mechanism therein... unless you are arguing that UFS knows to store
  496. >documents without hyphenation, and that the "cat" and "more" programs will
  497. >hyphenate for you.  If you are talking about ANY OTHER APPICATION, THE
  498. >HYPHENATION IS THE APPLICATIONS RESPONSIBILITY.  PERIOD.
  499.  
  500. I always thought that the hyphenation routine's place is in the
  501. SYSTEM library. It's a reuseable piece of code. And there is
  502. a lot of places where strings need to be hyphenated (long diagnostics
  503. in windows of variable size) even by trivial programs.
  504. The behaviour of Unix utilities simply wrapping strings over
  505. the right edge is at the best case a kludge. I somehow hope
  506. that it'll change.
  507.  
  508. >T: Find another standard to tell you how to write a word processor.
  509. >V: Is there any? :-)
  510. >
  511. >No, there isn't; that was the point.  It is not the intent of the Unicode
  512. >standard to provide a means of performing the operations normally
  513. >associated with word processing.  That is the job of the word processor, and
  514. >is the reason people who write word processors are paid money by an employer
  515. >rather than starving to death.
  516.  
  517. The second and the third sentences have no logical link.
  518. Sure Unicode does not help for word processing.
  519.  
  520. >Again, font *changes* only become a problem if one attempts to print a
  521. >*multinational* document.  Since we aren't interested in multinationalization,
  522. >it's unlikely that a Unicode font containing all Unicode glyphs will be
  523. >used for that purpose.
  524.  
  525. Since Unicode does not provide any benefits for localization
  526. your statement is meaningless.
  527.  
  528. >In all likelyhood, use will be in a localized environmentn *NOT* a
  529. >multinational one.  Since this is the case, it follows that the sum total of
  530. >the Unicode font implemented in the US will be the ISO Latin-1 set.
  531. >Similarly, if you are printing a Cyrillic document, you will be using a
  532. >Cyrillic font; the "X" character you are concerned about will be *localized*
  533. >to the Cyrillic "X", *NOT* the Latin "X".
  534.  
  535. Somehow i use to print documents in both Russian and English without
  536. bothering to switch fonts. If Unicode does not allow me to do that
  537. i simply never switch to it (as well as many other users).
  538. I don't need to spend disk space for the benefit of being unable
  539. to do things i used to for years.
  540.  
  541. >V: I see no reasons why we should treat the regular expression matching
  542. >V: as "fancy" feature.
  543. >
  544. >Because globbing characters are language dependant.
  545.  
  546. >The globbing ("regular expression pattern match") characters
  547. >DO change for any patterns more complicated than "*".
  548.  
  549. Globbing is nothing more than sequential matching to a regular expression.
  550.  
  551. >V: Don't you think the ANY text is going to be fancy because Unicode
  552. >V: as it is does not provide adequate means for the trivial operations?
  553.  
  554. >Perhaps any multinational text, yes; for normal text, processing will be
  555. >done using the localized form, not the Unicode form; therefore the issue
  556. >will never come up, unless the application requires embedded attributes
  557. >(like a desktop publishing package.  Since multinational processing is
  558. >the exception rather than the rule, let the multinational users pay the
  559. >proce in terms of "Fancy text".
  560.  
  561. If processing is done using localized (non-Unicode) form then
  562. why do we need Unicode at all?
  563.  
  564. The assertion that the multilingual processing requires
  565. register-switching (aka "fancy mode") is simply wrong.
  566.  
  567. >Again, multinational software is not being addressed; however, were we to
  568. >address the issue, I suspect that it would, in all cases, be implementation
  569. >dependant upon the multinational application.
  570.  
  571. Then forget about Unicode. It is not supposed to be a mean of
  572. localization.
  573.  
  574. >I don't know how stridently I can express this: runic encoding destroys
  575. >information (such as file size = character count) and makes file system
  576. >processing re character substituion totally unacceptable...
  577.  
  578. Variable-length line encodings destroy information (such as
  579. file size = character count / record size) and makes file system
  580. processing re word substitution totally unacceptible...
  581.  
  582. (You've got to be a OS/370 zealot).
  583.  
  584. >consider the
  585. >case of a substitution of a character requiring 3 bytes to encode for on
  586. >that takes 1 byte (or 4 bytes) currently.  Say further that it is the
  587. >first character in a 2M file.  You are talking about either shifting the
  588. >contents of the entire file, or, MUCH WORSE, going to record oriented files
  589. >for text.  If there is defacto attribution of text vs. other files (shifting
  590. >the data is unacceptable.  period.), there is no reason to avoid making
  591. >that attribution as meaningful as possible.
  592.  
  593. consider the
  594. case of a substitution of a word requiring 3 bytes for on
  595. that takes 1 byte (or 4 bytes) currently.  Say further that it is the
  596. first character in a 2M file.  You are talking about either shifting the
  597. contents of the entire file, or, MUCH WORSE, going to record oriented files
  598. for text.  If there is defacto attribution of text vs. other files (shifting
  599. the data is unacceptable.  period.), there is no reason to avoid making
  600. that attribution as meaningful as possible.
  601.  
  602. I worry why don't you run around crying that Unix require
  603. record-oriented files and defacto attribution of text vs other
  604. files. You'd better think before posting anything to USENET.
  605.  
  606. V: Pretty soon it will be a dead standard because of the logical problems
  607. V: in the design. Voting is inadequate replacement for logic, you know.
  608. V: I'd better stick to a good standard from Zambia than to the brain-dead
  609. V: creature of ISO even if every petty bureaucrat voted for it.
  610.  
  611. >I agree; however, the peope involved were slightly more knowledgable about
  612. >the subject than your average "petty bureaucrat".
  613.  
  614. If they understand the problem as well as you do i somehow doubt that.
  615.  
  616. >And there has not been
  617. >a suggested alternative, only rantings of "not Unicode".
  618.  
  619. If someone comes to me declaring that he invented perpetuum mobile
  620. he can claim that i criticize him without providing an
  621. alternative too.
  622.  
  623. Moreover, it is not the case. Altough i cannot replace ISO
  624. in blessing standards i already provided my ideas on how to
  625. create a standard which will not be dead before birth.
  626.  
  627. >V: I expressed my point of view (and proposed some kind of solution) in
  628. >V: comp.std.internat, where the discussion should belong. I'd like you to
  629. >V: see the problem not as an excercise in wrestling consensus from an
  630. >V: international body but as a mathematical problem. From the logistical
  631. >V: point of view the solution is simply incorrect and no standard commitee
  632. >V: can vote out that small fact. The fundamental assumption Unicode is
  633. >V: based upon (i.e. one glyph - one code) makes the whole construction
  634. >V: illogical and it, unfortunately, cannot be mended without serious
  635. >V: redesign of the whole thing.
  636. >
  637. >Wrong, wrong, wrong.
  638. >
  639. >1)      We are not discussiong the embodiment of a standard, but the
  640. >        applicability of existing standards to a particular problem.
  641. >        Basically, we could care less about anything other than the
  642. >        existing or draft standards and their suitability to the task
  643. >        at hand, the international enabling of 386BSD.
  644.  
  645. Do you REALLY believe that if something blessed by a commitee it
  646. will work in the real life? I thought this mindset died
  647. with the communism.
  648.  
  649. >2)      We are not interested in "arriving" at a new standard or defending
  650. >        existing or draft standards, except as regards their suitability
  651. >        to our goal of enabling.
  652.  
  653. *We*'re not interested in spending life on perpetuating old mistakes
  654. and doing useless work. I'd prefer you not to talk in the name of
  655. all labouring people; although i'm immune to that kind of speech
  656. and it does not impress me i still find it repulsive.
  657.  
  658. >3)      The proposal of new soloutions (new standards) is neither useful
  659. >        nor interesting, in light of our need being "now" and the adoption
  660. >        of a new soloution or standard being "at some future date".
  661.  
  662. If it is not interesting to you you can simply say 'k'.
  663.  
  664. >4)      Barring a suggestion of a more suitable standard, I and others
  665. >        will begin coding to the Unicode standard.
  666.  
  667. Good luck. It is my belief that most people are unable to learn
  668. on mistakes of others but on their own only. I also do not care
  669. about 386BSD for a number of reasons.
  670.  
  671. >5)      Since we are discussing adoption of a standard for enabling of
  672. >        localization of 386BSD, and are neither intent on a general defense
  673. >        of any existing standard, nor the proposal of changes to an
  674. >        existing standard or the emobodiment of a new standard, this
  675. >        discussion doe *NOT* belong in comp.std.internat, since the
  676. >        subscribers of comp.unix.bsd are infinitely more qualified to
  677. >        determine which existing or draft standard they wish to use
  678. >        without a discussion of multinationalization (something only
  679. >        potentially useful to a limited audience, and then only at some
  680. >        future date when multinational processing on 386BSD becomes a
  681. >        generally desirable feature.
  682.  
  683. See before.
  684.  
  685. >V: Try to understand the argument about the redundance of encoding with
  686. >V: external restrictions provided i used earlier in this letter. The
  687. >V: Unicode commitee really get caught in a logical trap and it's a pity
  688. >V: few people realize that.
  689. >
  690. >I *understand* the argument; I simply *disagree* with it's applicability
  691. >to anything other than enabling multinationalization as opposed to
  692. >enabling localization, which is the goal.
  693.  
  694. "I understand that 2+2=4; I simply *disagree* with it's applicability
  695. to anything other than drawing figures on a blackboard as opposed to
  696. counting apples, which is the goal".
  697.  
  698. I wonder if you ever wrote a working program.
  699.  
  700. ---------
  701. From: Peter da Silva
  702.  
  703. >You have identified two problems with Unicode and ISO 10646: case conversion
  704. >and lexical ordering.
  705.  
  706. >> See how Unicode renders itself useless?
  707.  
  708. >Unless you want to work on multilingual documents, yes. It could be better,
  709. >certainly, but to say it's *useless* is hyperbole.
  710.  
  711. Yep, although it depends where your letter is goes to. If it'll
  712. be fed to something like SM/1 or grapeVINE the case conversion and
  713. sorting is necessary.
  714.  
  715. Now, let's be fair.  "Unicode is the standard applicable to writing
  716. letters only", right?  Do *you* need such standard?
  717.  
  718. ---------
  719. From: Dik T. Winter
  720.  
  721. >I move the discussion a bit: would we like sorting according to the texts
  722. >language or the users language?
  723.  
  724. >I do not know, but I do know that in many cases a Finn would like to handle
  725. >it differently from a German, regardless of the language of the text involved!
  726.  
  727. Neat idea. I'd like to see it implemented, though i don't know
  728. what is the Finnish idea of sorting Chinese.
  729.  
  730. Even if you have a customized sorting routine, the fall-back
  731. to universal routine is necessary.
  732.  
  733.  > So, even if sorting is not regular there always is a way around --
  734.  > with Unicode you can't do even that.
  735.  
  736. Eh?  I would think the same way around!
  737.  
  738. Nope. I propose encoding in which sorting is algorithm (i agree,
  739. the arithmetic sorting is not sufficient).
  740. You can't do it with Unicode/ISO 10646 because you lost
  741. necessary information.
  742.  
  743. >You are confused about a few things.  Unicode will help your sorting
  744. >Cyrillic names and Latin names just fine.
  745.  
  746. It does not help me with Ukrain and Russian and the fact that
  747. it has the separate cyrillic page is quite irrelevant.
  748.  
  749. >You are mixing soring with different
  750. >scripts and sorting different languages.
  751.  
  752. See example before. BTW, Ukrainian has a letter i which is found
  753. in the Latin code page.
  754.  
  755. >The latter makes no sense if
  756. >you use for each word the place it should occupy in its native language
  757. >(especially for loan-words).
  758.  
  759. If you're typing in loan-words you're typing it in the *your* language
  760. (and character codes used belong to your language) and it will be
  761. treated as you wished.
  762.  
  763. > > >It won't make sense. Lexical sorting makes only sense, if at all, in
  764. > > >*one* single language.
  765. > >
  766. > > See before.
  767. >
  768. >See before, you give different scripts not different languages.
  769.  
  770. See before, you missed the point compltely.
  771.  
  772. es> You've talked a lot about regular expressions etc. Frankly I
  773. es> don't give a damn about those. The main bulk of computer users
  774. es> are not programmers and don't know what a regular expression
  775. es> is, so why focus such specific issues?
  776.  
  777. >I agree completely here.  Shell globbing, regular expressions and
  778. >sorting by 'ls' are not relevant.
  779.  
  780. Tell it to the secretary which knows that ls gives sorted list
  781. of files from her directory with couple hundreds of names like
  782. "Letter1" and "IRS_request" in it.
  783.  
  784. >(There are still systems around
  785. >that do not sort the list of files at all.  Can you say IBM VM/CS?)
  786.  
  787. I knew that you ought to be MS-DOS zealot.
  788.  
  789. >Those things are indeed used by programmers only...
  790.  
  791. Obviously you don't earn your living by writing programs for
  792. real users. You're underestimating peoples intelligence;
  793. there *are* non-programmers who know a hell lot of shell
  794. and use it.
  795.  
  796. --------
  797. From: Lars Wirzenius
  798.  
  799. >If I understand your proposed solution correctly, it is the "each
  800. >language has a completely different set of character codes" solution
  801. >which I have disagreed with above.
  802.  
  803. You understood it incorrectly and therefore further discussion
  804. makes no sense.
  805.  
  806. --------
  807. From: Glenn A. Adams
  808.  
  809. >You're uninformed.  Try looking at Xerox Viewpoint (West European,
  810. >East European, Greek, Arabic, Hebrew, Chinese, Japanese, Korean, et al);
  811. >try looking at BB&N Slate (West & East European, Greek, Hebrew, Arabic,
  812. >Korean, Thai).  There are others: Nota Bene, Multilingual Scholar,
  813. >AlKatiib, etc.
  814.  
  815. Thank you for enlightening me, but i wonder if you can tell the
  816. difference between an entire operating system and a single
  817. application -- the localization of those are tasks differing
  818. in compexity for a couple orders of magnitude.
  819.  
  820. So far, MNOS RL 1.2 and DEMOS 2 are THE ONLY EXISTING true
  821. bilingual systems.
  822.  
  823.  
  824. >After reading this yet again, I now believe that this entire conversation
  825. >may be based on a misunderstanding.  Unicode does not unify Latin T,
  826. >Cyrillic T, and Greek T!  They are separate characters, as are Latin A,
  827. >Cyrillic A, and Greek A.  Nor does Unicode unify LATIN A WITH RING and
  828. >ANGSTROM SYMBOL.
  829.  
  830. Which Unicode? 16-bit or 32-bit? It already has multiple
  831. codes for similar glyphs but still does not allow algorithmic
  832. sorting or case conversion. What's the point? To combine the
  833. worst of both "one glyph - one code" and my proposal?
  834.  
  835. -------
  836. From: Professor David J. Birnbaum
  837.  
  838. [the text omitted]
  839.  
  840. Thank you for understanding!
  841.  
  842.  
  843. -------
  844. From: Erland Sommarskog
  845. Xref: uunet comp.std.internat:2106
  846.  
  847. >>Aw, don't be silly. It's trivial.
  848.  
  849. >When you can't explain write off the problem as trivial.
  850.  
  851. Nope. Simply add conversion CH -> _CH_ to the text editor on
  852. writing the otput file and reverse conversion on reading.
  853. Also, add the same conversion at the copying from raw list
  854. to cooked list in the tty driver.
  855.  
  856. Isn't it trivial?
  857.  
  858.  
  859. >>>What the hell has the number of bits to do with anything? Do computers
  860. >>>exist for the programmers of the users?
  861. >>
  862. >>Look, you've missed the logic completely. Read it please again. I also
  863. >>explained it several times in other postings.
  864. >
  865. >What logic? I want to be able to write and read text in European
  866. >languages. Period.
  867.  
  868. You can do it right now without Unicode, period.
  869.  
  870. >Then how many bits you use is not my issue, as
  871. >long as you give me something which I consider user-friendly. (Being
  872. >forced to keep track whether a certain dotted "a" is German or
  873. >Swedish is not.) How many bits you use is completely irrelevant.
  874. >(But since I want more than 256 symbols, you will have a pain if
  875. >you stay with eight bits.)
  876.  
  877. It IS issue when you're getting no benefits -- if you have to
  878. specify the language outside of the text you can as well live with
  879. several 8-bit codepages. The onky difference that you needn't
  880. 2 bytes for every letter.
  881.  
  882. >>What do you tell the poor user when he has a database with English
  883. >>and Russian company names (a case from my practice, to be real) --
  884. >>in both upper and lower case and the smart guys (apparently Erlands
  885. >>pupils) made a terminal which converts cyrillic codes for the letters
  886. >>of the same shape as latin to the latin codes? Go get a rope?
  887. >
  888. >Yes, that is precisely the confusion which is likely to happen when
  889. >you assign the same character different codes depending on language,
  890. >and when the application program is not smart enough to equate them.
  891.  
  892. You missed the example again completely. The problem was with
  893. the lot of letters like T which AREN'T the same in Russian
  894. and English when converted to lowercase.
  895.  
  896. >>The basic ASCII principles (after reordering and replacing several
  897. >>characters) remained the same -- there is a way to convert upper<->lower
  898. >>case and there is a way to sort without asking which language every word
  899. >>came from (it's known apriori).
  900. >
  901. >Nope. Not with German.
  902.  
  903. ASCII is not a German standard, nor it was designed for German.
  904.  
  905. >The problem with your idea is that you believe that everything is
  906. >known at input time. It isn't.
  907.  
  908. If the originator of information does not know which language he
  909. used who will know it? In many cases this inforamtion is available
  910. ONLY at input.
  911.  
  912. >You've talked a lot about regular expressions etc. Frankly I
  913. >don't give a damn about those. The main bulk of computer users
  914. >are not programmers and don't know what a regular expression
  915. >is, so why focus such specific issues?
  916.  
  917. I got to like that attitude. "I don't give a damn"...
  918. The user don't give a damn (and a dime, btw) for yor
  919. programs which are unable to do things they have now
  920. for granted.
  921.  
  922.  
  923. -------
  924. From: Kosta Kostis
  925.  
  926. >> The one which does not ask user which language he means every time
  927. >> he runs more -i.
  928. >
  929. >Nice. Your local language will be implied somehow and you can use it as
  930. >a default. What's your problem?
  931.  
  932. Nice. I have a file in both English and Russian. What is my local
  933. language?
  934.  
  935. >> Unfortunately there is a logical gap. I don't care WHICH algorith
  936. >> im used as long as it is ALGORITHM. There is no way to convert Unicode
  937. >> strings uppercase without "external" information.
  938. >
  939. >There is no way to convert non-US ASCII strings without "external"
  940. >information.
  941.  
  942. Non-US ASCII is an oxymoron.
  943.  
  944. >Simple "solutions" may work for "Russian and English"
  945. >or for "Greek and English", where you imply the language, but there's
  946. >no *general* solution. You don't seem to understand that.
  947.  
  948. Who said that there is NO solution for N languages where
  949. N is arbitrary? You don't seem to understand yourself.
  950.  
  951. >Nice for you you're bilingual, but there are companies and the like
  952. >that need support for much more than two languages and their
  953. >"common alphabet" won't fit in 8-bit, 9-bit or 10-bit.
  954.  
  955. That's ok, but why should i sacrifice things i have now for
  956. granted (like working sorting which do not ask me what do i mean).
  957.  
  958. >> Already discussed. I sure don't know everything but i know that
  959. >> you can made a minimal strictly ordered set from unification of
  960. >> strictly ordered sets by merging similar elements.
  961. >
  962. >You think you can do so. Implement it and try to sell it. Good luck.
  963.  
  964. I'm in a different business. When i did the internationalization
  965. project i did it quite successfully. You know, a 22 year-old
  966. hippie programmer does not usually get gold medal from the
  967. government for nothing.
  968.  
  969. >I can see 202 cyrillic characters (including diacritic marks) in
  970. >UniCode Version 1.0 - that's better than ISO 8859-5 (96 characters).
  971. >Does KOI-8 cover more than 202 cyrillic characters?
  972.  
  973. Nope. It was desinged for English and Russian ONLY and it
  974. does it work well. The other cyrillic languages have their
  975. own code pages.
  976.  
  977. >You have your way of sorting names, others have other ways of sorting.
  978. >Foreign names are written in German with German letters in Germany.
  979.  
  980. Then it's German words and what the fuss is about?
  981.  
  982. >UniCode is not a Russian-English encoding. It's a multilingual
  983. >encoding with advantages and drawbacks.
  984.  
  985. Thank you for reminding, i do not have amnesia. I do not care
  986. about "multilingual" encodings which do not allow me to
  987. do things i can do with the bilingual.
  988.  
  989. If you don't understand the difference between an example and
  990. proposal you'd better keep out of USENET or bought an asbesto
  991. suit.
  992.  
  993. >There are partial solutions for local problems, fine, but that's
  994. >it and that's what will be. No universal character set will ever
  995. >solve that [period].  (Now hear my shoe on the table ...  ;-) )
  996.  
  997. First get that shoe from your mouth.
  998.  
  999.  
  1000. --------
  1001. From: Johnny Eriksson
  1002.  
  1003. >Why not tell everyone about KOI-8 and the other cyrillic coding methods,
  1004. >code tables, design principles, whatever.  There may be more than one
  1005. >of us that are interested in that information.
  1006.  
  1007. KOI-8 is nothin more than a 8-bit ASCII extension with cyrillic
  1008. letters in codes from 0300 to 0377. It has completely separate
  1009. alphabets for Russian and English even though there is a number
  1010. of similar letters.
  1011.  
  1012. I used that code only as illustration of model bilingual
  1013. encoding.
  1014.  
  1015. There were Unicode-style encodings (GOST and DKOI) which
  1016. followed the "one-code -- one glyph" principle.
  1017. Those encodings are dead by now.
  1018.  
  1019.  
  1020. Flame mode off.
  1021.  
  1022. --vadim
  1023.