Unicode 5.0:言語の分裂に挑み続けるUnicodeの新バージョン

Unicode Consortiumの究極的な目的は、人間界で用いられているすべての言語をコンピュータ上で再現するための標準を定めることだ。こうした目的を完全に達成するのはしばらく先のことになりそうだが、およそ3年をかけた作業の成果としてリリースされるUnicodeバージョン5.0の登場は、目標達成に向けて更なる一歩を前進させることになるだろう。こう説明するのは、同標準の創設者の1人でありUnicode委員会の代表を務めるMark Davis氏である。最終的な公開日が至近に迫った先日、Davis氏は多忙な中時間を割き、Unicodeの開発過程と克服すべき課題について語ってくれた。

Unicodeによるエンコードは、キャラクタとそのプロパティおよび文書による説明という3つの要素で構成されていると、Davis氏は説明する。ただし誤解されがちだが、ここで言うキャラクタとは特定のフォントセット内で数値コードとペアにされた文字としての図形を指すのではなく、1つの文字を示すのに必要な総体としての“抽象的キャラクタ”を意味する。「たとえば“A”というキャラクタにしても、その字体としての表記法は様々です」とDavis氏は説明する。「Unicodeでエンコードされるのは抽象的キャラクタとしての“A”ですが、その際には該当する膨大な数の字体に対応する必要があります」。

こうした抽象的キャラクタの定義において、大文字と小文字が存在するか、改行箇所に配置された場合に前後のキャラクタとどう影響するか、などの情報を指定するのがプロパティである。「こうしたプロパティを規定するのは、コンピュータがキャラクタ群を処理する際にどのような情報が必要となるかです」とDavis氏は説明するが、つまりそうした情報が欠落していた場合、テキストの検索やWeb上での表示が適切に行えなくなる可能性が生じてくる。

最後の“文書による説明”とは、UTF-8UTF-16などのUnicode標準におけるプログラム的な実装において「プロパティとキャラクタがどのように処理されるべきか」を記述したものである。この説明のベースとなるのが、手書き文字の場合に当該キャラクタはどう扱われているか、および、様々な状況において個々のキャラクタをプログラム的に処理するために定められたルールにどう従わせるか、という情報だ。なおこうした説明は、Unicodeのエンコード方式ごとに個別に記述する必要がある。

標準としてのUnicodeの信頼性を確保するには、こうしたプロパティと文書による説明を可能な限り完全なものにしておく必要がある。ここでいったん時計の針をUnicodeが登場する以前の1980年代に戻そう。当時Davis氏は、Macintosh用オペレーティングシステムの日本語版とヘブライ語版の開発に従事していたが、その際には双方のシステムごとに異なるテキストレンダリング方式を構築する必要があった。「当時私たちはコンピュータでテキストを処理させるための作業をしていたのですが、それはあたかも(以前は統一されていた人間界の言葉を混乱させ様々な言語の誕生につながったとされる)伝説のバベルの塔を建造しているようなものでした」と同氏は振り返っている。「そのときの混乱ぶりはひどいもので、なにしろ同じキャラクタであっても割り当てられたコードは違うというケースがゴロゴロしていたのですから。それはつまり、キャラクタとしては同じはずなのにコンピュータ用には2つのコードが割り当てられている、あるいは、1つのコードで代表されているのに意味的には2つの異なる使われ方がある、といった具合です」。

Unicode標準が生まれる母体となったのは、1980年中盤にXeroxで進められていた中国語と日本語の文字コードの共通化を目指していたグループと、Appleで進められていた文字コードの完全共通化に関するグループという、2つの独立した活動であった。そして1988年、これら2つのグループが合流し、共同で作業を進めることを決定した。そしてこの年の終わり頃になると、当事者たちがこの共同作業を「Unicode」という名称で呼び始めていたのである。その後数年にわたっていくつかの大手企業による参入が続き、1991年にはUnicode Consortiumが設立され、同標準のファーストバージョンがリリースされた。もっともその当時からUnicodeに対してはアジア系言語の実装方式についての批判が投げかけられており、特に中国語、日本語、朝鮮語の文字コードの共通化は不完全であって各自の文字文化を正確に再現できないとされていたが、その後20年を経た現在、多くの言語をカバーすると同時にISO-8559などのエンコード標準との共通化も図られたUnicodeは、安定して利用できるキャラクタエンコード方式として一定の地位を築いたと見ていいだろう。

前述したプロパティと文書による説明およびシンボルセットを定義するという活動は現在も継続されているが、それは既にUnicodeとして取り込み済みのキャラクタセットについても当てはまる話である。「プロパティは様々な理由によって変化するからです」とDavis氏は語る。「そうした理由の1つは、あるキャラクタに関して以前には知られていなかった情報が新たに得られた場合で、それは特に使用頻度ないし普及度の低い言語の手書き文字について当てはまる話ですが、変更が必要なキャラクタのプロパティについては適切な処置を施さなければなりません。つまりキャラクタの実際の用途がより詳しく判明したので、それに応じてキャラクタのプロパティを改訂する訳です。もっとも大部分のケースにおいては、いったん定められたプロパティは安定したものであり、ごく一部のキャラクタについては変更されることもあるという程度ですが」。Davis氏は、こうしたプロセスを生物分類学に好んで例えているが、それはどのような生物種であっても新たな発見があれば分類上の説明や位置関係は変更されるものだ、という意味だそうだ。

標準を改訂するその他の理由としては、個々のバージョンごとに確認される正誤情報を反映させることも挙げられる。Unicodeに関する訂正情報は逐次公開されているが、標準としての訂正は次回のマイナーないしメジャーバージョンアップを待ってから行うとのことだ。またセキュリティ的な理由から変更が施される場合もある。例えば初期バージョンのUTF-8におけるフォワードスラッシュ記号には複数のレンダリングパターンが存在したが、これを悪用してディレクトリ構造に不正侵入したり、異なるキャラクタセット間におけるコードの重複をアドレスやサイト情報のスプーフィングに利用する者が出てきたのである。その他、現行のUnicode標準で取りこぼされている少数派の言語を追加する目的で改訂されることもある。こうした様々な改訂理由のうち何が優先されるかは一概に決まるものではなく、また以前のバージョンに対する下位互換性の維持についてはかなり高い優先順位が与えられているものの、完全な保証はできないのが実際である。

Unicode 5.0における目立った変更箇所としては、下記のものが挙げられる。

  • キリル文字、ギリシア文字、ヘブライ文字、カナラ文字、ラテン文字、数学、発音記号用キャラクタおよび関連シンボルの追加
  • バリ語、N’Ko語(ギニア語の一種)とパスパ語および、歴史的な価値を有すフェニキア語とシュメール-アッカド語の楔形文字など、新規アルファベットとスクリプトの追加
  • ISO/IEC 10646:2003のキャラクタの導入による数学記号およびインドその他の地域で用いられている少数言語への対応
  • 大文字/小文字に関連したプロパティおよび、アラビア語やヘブライ語における双方向性文字の定義など、Unicodeデータベースにおけるプロパティ仕様の変更

「大幅な改訂ではありません」とDavis氏は新バージョンでの変更を説明している。「現状で、大がかりな変更をするつもりはないからです」。ただし同氏によると、既に将来的な計画として、ドメイン名の国際化(ASCIIコードにある通常の英文キャラクタ以外で入力する場合)に起因したセキュリティおよびレンダリングに関する問題に対処することおよび、同標準に網羅されていない一部の言語のエンコード化をすることを構想しているとのことである。

「私にとって、これは非常に興味をそそられる仕事です」とDavis氏は語る。「実際、この事業に自分が関与できて幸せだと思っています。それぞれの言語がどのように使用されているかを調査し、コンピュータ化によるメリットをどのようにして引き出すかを検討するわけですが、地球上に存在するあらゆる言語をカバーして、パーソナルコンピュータであるか携帯電話であるかを問わず、その画面上にすべてのユーザの母国語を表示できるようにする。それこそがUnicode Consortiumが目指してきた究極の目標なのです」。

『The Unicode 5.0 Standard』はAddison-Wesley Professionalから出版されるが、Unicode Consortiumに直接注文することもできる。

Bruce Byfieldは、コースデザイナ兼インストラクタ。またコンピュータジャーナリストとしても活躍しており、NewsForge、Linux.com、IT Manager’s Journalに定期的に寄稿している。

NewsForge.com 原文