* 早稲田大学 情報科学研究教育センター
〒169 新宿区大久保4-3-1理工学部情報学科小原研究室
** 早稲田大学 理工学部 情報学科
〒169 新宿区大久保4-3-1理工学部情報学科小原研究室
Tel: 03-3232-0551, Fax: 03-3232-0551
E-mail: kataoka@ohara.info.waseda.ac.jp
また、異なる国籍を持つ、異なる言語・文字の使用者が、同一の計算機を共 有することも稀ではなくなっている。特に、安価なパーソナル・コンピュータ のネットワークへの参加が、計算機の利用を大きく変貌させ、語学教育、図書 館データベースで、複数の異なる言語で使用される文字群の混在処理が、必須 となった。
ところが、全世界の文字と言語、その正書法に関し、文字の理解が困難なこ とから、文字、言語、正書法は、互いに依存しあうものとされ、それぞれが、 異なる情報の集合として分離可能であることが理解されて来なかった。即ち、 文字の表示及びテキスト処理は常に言語に依存し、言語を指定しなければ可能 ではないと考えられてきた。そのため、英語と1言語のみの混在を許すPOS IX Localeの地域化モデルが考案され、計算機の利用を大幅に制限す ることとなった。さらに、MIME、SGML、HTML等においても、複数 の文字コードの混在は考慮されておらず、今日の計算機に要求されている、複 数文字コードの混在は、実質的に不可能である。
さらに、文字に対する理解の欠如が、ISO10646などの、全世界の人 口の半数以上に使用されているペルソ・アラビア文字、デーバナーガリ文字や タイ文字などの結合音節文字に対し、正しく1文字とそれに与えるべき図形を 全く決定できない文字コードを制定する原因となっている。これらの文字コー ドは、通信にもテキスト処理にも使用できない。
このような混乱を招いた原因は、単純に、文字に対する調査と理解不足であ る。早稲田大学では、全世界の文字の混在処理、即ち国際化と、言語情報に依 存する処理、即ち多言語化の両者を満足する、国際化・多言語環境を作成した。 本システムは、実際に全世界の文字、文字コード、正書法を調査し、それらの 特徴を数値化可能な情報として抽出し、言語情報に依存せずに基本的なテキス ト処理を含む国際化が可能であることを示した。それに基づいて、ISO20 22を全て満足し、各種国家規格と国際規格を受理し、単一の文字集合に変換 し、それに正しい文字図形を与え、テキスト処理を行なうライブラリを開発し た。さらに、その文字に言語情報を付加し、言語固有の情報による排他的言語 依存処理をも可能とした。
本稿では、地域化の問題点を示し、国際化と多言語化に関して必須事項を解 説し、次にそれらの問題点を解決し必須事項を満足する、早稲田国際化多言語 環境について概要を述べる。
規格上、ソフトウエアの実行時にLocaleを変更してはいけないという 制限はない。しかし、Localeを変更すると、あるLocaleが他のL ocaleに対し、排他的であることも可能であり、文字が別の文字に変わっ てしまったり、入出力が不可能になることもあり得る。即ち、内部コードであ るWCが、異なるLocaleであっても正しく文字を保存するとは限らない。 即ち、Localeの実行時の変更の結果は、不定である[2]。 また、mbのデフォールトのデジグネーションとインボケーションが、Loc aleによってシステム依存となるため、同じLocaleであっても動作の 保証はない。即ち、異なるシステム間での同一動作の保証もない。さらに、フ ランス、インド、タイの国家規格文字コードは、不定長文字コードであり、m btowc関数では、正しく変換される保証はない。また、複数文字コードを 混在させた場合のコレーションも一意に定めることはできない[3]。
従って、Localeモデルでは、多数のLocaleを集めても、同時に 多数の文字コードを使用できる保証はなく、国際化とはならない。
これは、Localeが、真に言語に依存する処理、例えばソフトウエアか らの利用者へのメッセージのように、使用者の言語に合わせるべき処理と、言 語に依存せずに処理すべき、文字コードの混在などの処理を分離していないか らである。即ち、1言語に真に依存する(必要のある)排他的処理は、上述のメッ セージや、ハイフネーション、スペル・チェッキングといった処理だけであり、 他のほとんどの一般的処理は言語に依存しない、文字コードの混在処理として 実現されなければならない[4]。
文字コードも文字も、言語の情報を含んではいない。読み手がその情報を付 加して読んでいるのである。文字の表示も、単に、文字が持っている表示時の 約束によって表記されているのである。また、単独の文字コードでも複数の異 なる表示上の規約を持つ集合は存在する。従って、文字コードに対し、「利用 者」が選択・設定した表記方法の規約を文字そのものに与えれば、正しく表記 することは可能である。この表は、同一の文字コードを複数の言語で使用し、 その場合の表記方法が異なれば、複数必要であることは自明である。しかし、 互いに排他的言語情報が文字の表示に必要なのではなく、文字に表示時の規約 を与えれば良いのである。従って、文字コードに対し、たった一つの言語のた めにハード・コーデッドな情報を付加する必要は全くない[4]。
このように、複数の文字コードを混在させても、その文字コードで示される 文字を文字の集合に変換し、その文字の集合の要素である文字に対し、表示時 の規約を付加すれば、全く言語に依存せずにあらゆる文字を混在表記すること が可能となる[5]。ここに言語への依存性をハード・コーデッドする必要がないこ とを再度明記しておく。
同様に、基本テキスト処理である、検索、置換、挿入、削除といった処理に 関しても、言語依存性は全く不必要である[6]。ここでの条件は、各文字コー ドが指定する文字の持つ番号が、他の文字コードの番号と重ならなければ良い、 ということだけである。この条件は、正しい逆変換が可能でなければならない ことを示している。
入力に関しては、入力機構のルールは言語に依存するが、プログラマブルな 入力機構によって、入力機構そのものを言語依存にする必要はない。また、そ れによって、同一の入力機構で、多数の異なる文字コードを異なる言語との組 合せで使用し、入力することが可能であり、Localeによって入力言語を 制限される必要はない。
このように、国際化とは、言語に非依存な処理を示す。即ち、テキスト処理 は、国際化可能な処理と、互いに排他的な言語依存の処理に分れる。しかし、 互いに排他的な処理であっても、異なる複数の言語のテキストを同時処理でき ないということではない。ほとんどの基本的処理は、国際化処理で対応可能で ある。そして、利用者へのメッセージのように、排他的且つ1種の言語である べき時、特定の言語を指定することこそが地域化であり、機能的には、地域化 は国際化の真部分集合であると定義できる[7]。
注意: 文字コードは、文字を直接指定しているわけではない。文字の部品に よって構成された文字コードも多数存在する。従って、国際化を満足するため には、文字コードから、「文字」に変換し、文字の集合として扱わなければな らない[8]。
古典的言語依存処理では、単一の文字コードが複数の言語を表記しうる場合、 矛盾が生じる。特に、ISO8859シリーズを処理する場合、複数の言語の 処理は不可能である。従って、基本的にISO8859シリーズをモデルに作 成されたISO10646には、複数言語の同時処理に対する工夫はない。従っ て、ISO10646を用いた場合、一見複数言語の同時処理が可能であるよ うに見えるが、実際には不可能である。
一方、内部コードの1文字を示す単位に言語を示すタグを付加し、各々に言 語情報を与えれば、単一の内部コードであっても、なんら矛盾なく複数言語の 同時処理が可能となる。本システムでは、この言語情報を持つ内部コードをT MC(Text Manipulation Code)と命名し、WCから変換して作成される[6, 8, 9]。
極めて類似した言語及び単語が存在するため、自動的にWCのシークエンス に言語情報を付加することは可能ではない。
注意: 特定の言語情報を持つ文字コード列であっても、コーリング・コンベ ンションを揃え、統一された手法で言語固有処理を行なうことが可能である [6, 9, 10]。
文字を音価で分類することは、実際は極めて危険である。単独文字での音価 と文字列中での音価は必ずしも一致しない。また、基本的には音素文字であっ ても、ギリシャ文字のように有気音化する記号を付加し、音節記号化する場合 がある。勿論、ペルソ・アラビア文字やヘブライ文字の用に、一般に音素文字 と思われているが、ロゴグラムである場合もある。さらに、本来音節文字であ るデーバナーガリ文字やタイ文字を音素文字と強引にみなすと、文字としての 処理単位が不明となる。即ち、文字に関しては、音価ではなく、文字の持つ構 造と処理単位で分析する必要がある[3, 6, 9, 10]。
世界の文字をその構造で分類すると、構造を持つ文字群と持たない文字群に 分れる。構造を持つ文字群は、結合音節文字が主である[6, 9]。これらの文字 群は、一般に結合前の基本音節文字に音節のモディファイアを結合し、音節を 形成する[3, 6, 9]。従って、基本的に、音節が文字の単位となる。この音節 の数は、無制限にあるわけではなく、さらに、無限集合は、計算可能な集合で もない。ある種のソフトウエアのように、無制限に組み合わせることは、明ら かな間違いである。組合せが間違っていると、読者が音節の区切りを発見でき ない。結合の組合せは、正しく文字コードがデザインされていれば、BNFで 明確に記述できる[6, 9]。
しかしながら、結合音節文字であっても音節が文字の処理単位とは限らない。 処理の目的によって、複数の文字の集合が存在する[9]。そして、特定の文字 の集合の要素である文字に対して図形を割り当てることが出力である。
従って、文字は図形ではなく、図形の集合に対する名称である[3]。そして、 その集合から適切な図形を選択することが出力である。ある種の文字は、偶然 に図形が同じであるに過ぎないので、全て同一の、次の手順で図形を決定する ことができる。1) 表記方向による図形の集合の選択。2) 語中の位置による最 終決定。また、文字自身が表記方向を持つことによって、右書き文字と左書き 文字の混在が可能となる。
以上のことから、文字の図形は、文字自身の表記方向、表記方向の原点、文 字列中の位置で決定可能である。ここで、文字自身が表記方向を持たない場合 があり、これは、前後の文字の表記方向及び、単語の表記される方向で定める ことができる。以上の情報から、文字コードに文字の表記方向などの情報を含 めることなく、無矛盾に文字を表記できることがわかる。同様に、文字を表記 する場合、単独の1文字だけでは、正しい図形が定まらず、正しい図形を定め るためには、最小の長さの文字列が必要であることが明らかである。
また、文字によっては、物理的な横書きもしくは縦書きの文字がある。これ らの文字を混在させる際には、必然的にどちらかの文字を90度回転させなけれ ばならない。また、当然、物理的水平と垂直の混在表記が可能でなければ、利 用者の要求を満たさない。このことは、1行のみの表示だけでなく、文字を2 次元に配置させる機能が必須であることを示している[9, 11]。
入力機構は、縦書きでの上下双方の入力と、横書きでの左右両方向の入力が 可能でなければならない[12]。従って、現在の左横書きにのみ対応するXIM プロトコルでは、全く対応できない。
一方、インドとタイの国家規格は、それぞれ、正しく1文字の決定が可能で あり、ISO10646で生じる問題は発生しない。
ISOでは、ISO2022によって、文字コードの拡張を許している。一 般にISO2022の完全なサポートは困難であると言われているが、困難で あるのではなく、単に理解が困難なだけである。ISO2022は、単純な関 数を組み合わせるだけで実現可能である[3, 5, 7, 8]。しかし、インドの国家 規格であるIS13194は、ISO2022による拡張を越えており、これ らの規格も満足する必要がある。これらの拡張には、文字のバリエーションが 一定の範囲内であるため、可能な種類は少ない。従って、これらを満足するこ とは不可能ではない。
これらの文字コードの拡張を完全に満足すれば、通信上、問題の発生は極め て少ない。しかし、上述のように、文字の物理表記方向等の情報はISO20 22には含まれない。ISO6429がそれらの情報の送受を規定しているが、 プリンタなどの表示機器を対象としており、双方向通信には不適切である[12]。
このように、実際のテキスト処理の単位(対象)は、必ずしも内部コード上の 文字とは一致しない。即ち処理によって異なる文字集合が存在する。これらの 集合の変換情報は、文字コードの表現形式の中に保持されなければならない。 従って、内部文字コードは、単純に文字のインデックス番号だけの情報では不 足する[3]。
特に、全ての文字列において、自動的に正しく改行位置を決定可能なわけで はないことに注意が必要である。タイ文字やラオ文字では、入力者が明示的に 決定しなければ、正しい改行位置を示すことはできない。従って、WWWやS GMLにおいて、ブラウザが自動的に改行位置を決定可能であるという仮定は 成り立たない。従って、何らかの構造によって、改行の抑制を示す必要がある [9, 10]。
また、文字は、二次元座標に配置され、単語の表記方向と文字の単語内の表 記方向は必ずしも一致しない。むしろ、左右両方向へ表示する文字を混在した 場合、もはや、メモリー上での文字の順番と表示平面上での文字の順番は一致 しない。従って、メモリー上の位置から表示平面上での位置を計算し且つ、そ の逆の計算を行なう処理が必須となる[9, 11]。そのため、表示機能は、テキ ストの編集機能の一部として実現されなければならない。
この基本的な機能として、ある文字列がどの特定の文字コードに由来するか を抽出する機能も必須である。これは、特定のスペル・チェッキング・ソフト ウエアが、特定の文字コードのみを受理するからである。従って、多数の文字 コードからなる文字列中から、特定の文字コード由来の文字列を抽出し、特定 のエンコーディングに変換する必要がある[11, 12]。これをフィルタリングと 呼ぶ。このエンコーディングは、受理側によって定まるため、送信側のデフォー ルトのエンコーディングは必ずしも使用できない。このことから、常に自由な エンコーディングの変換が可能な機能を用意し、実行中のソフトウエアのエン コーディングから独立した通信機能として実現しなければならないことが自明 である[12]。
本システムは、メタコンバータ・システムと命名された文字コード変換機構 が、外部に定義された変換データベースをコンパイルして得られた最適化関数 を仮想記憶内にロードすることによって、極めて高速に動作する[2, 4, 5, 8, 14]。この中心部は、全てのプロセスによって共有されるため、既存のソフト ウエアのように大量の資源を消費しない。同様の手法によって、内部文字集合 に対し、最適化された関数によって図形を与え、この部分も全プロセスが共 有する[2, 4, 5, 8,14]。従って、各プロセスは、変換時の情報を保持する極 めて小さな資源のみプロセス固有となる。この変換時の情報は、任意の個数を 保持可能なため、いかなる初期値を持つ文字コードへの対応も可能である。
本システムのモデルは、システムに何も指示をしない時には、全ての文字コー ドの混在処理のためのデフォールト条件が与えられ、ISO2022を完全に 満足し同時に各国家規格のための拡張を満足する。この状態でのモデルをGl obalモデルと呼ぶ。これに対し、特定のデフォールトを選択し、特定の複 数のエンコーディングの設定を可能とするモデルをMulti−Locale モデルと呼ぶ。このモデルでは、設定されていない初期値に対しては、Glo balモデルでの初期値が使用されるため、使用不可能な文字コードは生じな い。さらに、特定の1エンコーディングのデフォールトのみを許可するモデル が、Localeモデルとなる。Localeモデルであっても、初期値にな い文字コードは、Globalモデルでの初期値を使用することにより、正し く動作する。当然ながら、アプリケーションの実行時にLocaleを変更し てもエンコーディングを変更しても、なんら問題は起きない。また、単一のア プリケーションに対し、複数個のLocaleを同時に使用し正しく動作する ことを保証している。これらのモデルに関しては、参考文献を参照されたい。
これらのモデルは、Multi−LocaleモデルがGlobalモデル の、LocaleモデルがMulti−Localeモデルの、それぞれがサ ブセットとなっており、POSIXに規定された関数であっても、互いに矛盾 しないようにデザインされている。従って前述の問題は発生しない。また、こ れらのモデルは、混在実行が可能である。
メタコンバータ・システムを用いて、テキスト処理、入出力、通信機構が実 現され、全体の統一性と無矛盾性を保っている。さらに、これらの機構を使用 して、X11ライブラリとOSライブラリが置換され、これらを先にリンクす ることによって、Xウインドウ・システムとOSのLocale関連関数が全 て国際化される。また、ウイジェットは、二次元配置処理機構を実現し、ほぼ 完全に新たなウイジェットとなった。しかし、コーリング・コンベンションと リソースは過去のウイジェットに対し上位互換である。
また、TMC関数を効率良く利用する言語処理系として、FORTHを作成 した[10]。本FORTHは、国際化多言語処理用に拡張したCommon L ISPを作成するに十分な機能を持ち、極めて省資源で高効率である。本処理 系は、全システム・コールをリンク可能としており、新たなエディタ等の作成 に用いられている。
入力機構は、あらゆるタイプの入力手法を満足し、同時に非母国語入力者へ の便宜のため、極めて高い自由度を持つ構造をしており、各機能を任意にプロ グラマブルなオートマトンに設定可能である。これによって、容易に目的に即 した入力手法を実現することができる[12]。
また、教育・データベースにおいては、言語の依存情報と非依存情報を分離 したため、極めて高度な利用が可能となった。また、分散環境における文字と 図形の無矛盾性を保証できるため、計算機を使用した語学教育で、電子メイル を使用して、より頻繁な作文添削が可能となった。さらに、複数言語処理が可 能となったため、ICAIといったシステムで、文字コードや言語の制限に縛 られることなく、より多数の関連言語を利用した教育が可能となった。特にデー タベースにおいては、既存のデータを変更することなく、本システムによって アクセスすることが可能であり、本システムの内部コードを使用することによっ て、現在使用されている出力装置を活用しながら、国際化することが可能であ る。
これらの知見と国際化多言語環境によって、いまだ未解読の文字もしくは、 歴史的な資料へのアプローチが極めて容易となった。現在、コード化されてい ない文字群が多数存在するが、可能な文字コードの構造を予め予測して最適化 した変換関数を用意してあるため、極めて容易に使用文字群を増加することが できる。従って、完全に文字コードを決定する前に、データ表を変更して、最 適な文字コードをデザインすることが可能である。実際に蒙古語関連文字群の コード化に使用し、極めて短時間に文字コード群の提案が可能であった[15]。 これは、極めて多数存在する異なる文字群で記述された、仏経典の処理に有効 であることも示している。
本システムは、より多くの自然言語処理を可能とするため、入出力機構とし て、画像と音声の処理機能を付加する予定である。9章で述べた書き言葉と話 し言葉の差の情報をもとに、新たな自然言語処理、特に歴史的表記法を採って いるために現在の音声表現との差が大きい言語の処理に効果が得られると考え られる。
本システムは、フォントの調整が予定どおり進めば、1996年度中に第1版が 配布される予定である。
本研究の一部は、文部省及び通産省の助成を受けており、関係各位に深く感 謝の意を表する。
[2] Kataoka, Y., et al. Multilingual I/O and Text Manipulation System (1): The total design of the generalized system based on the world's writing scripts and code sets. Proc. 49th Annual Convention IPS Japan, 3:299--300, September 1994.
[3] Kataoka, Y., et al. Codeset Independent Full Multilingual Operating System: Principles, Model and Optimal Architecture. IPSJ SIG Notes, System Software & Operating System, 95(36):25--32, March 1995.
[4] Kataoka, Y., et al. The worldwide multilingual computing (1): Essentials, principles and scope covering all characters in the world. Proc. 51th Annual Convention IPS Japan, 3:245--246, September 1995.
[5] Uezono, K., et al. Multilingual I/O and Text Manipulation System (2): The Structure of the Output Method rawing the World's Writing Scripts beyond ISO 2022, Proc. 49th Annual Convention IPS Japan, 3:301--302, September 1994.
[6] Kataoka, T., et al. Multilingual I/O and Text Manipulation System (3): Extracting the Essential Informations from World's Writing Scripts for Designing TMC and for the Generalizing Text Manipulation, Proc. 49th Annual Convention IPS Japan, 3:303--304, September 1994.
[7] Uezono, K., et al. The Worldwide Multilingual Computing (2): Functions, Model, Design and Architecture of Multilingual I/O TM/C System, Proc. 51th Annual Convention IPS Japan, 3:247--248, September 1995.
[8] Tanaka, T., et al. Multilingual I/O and Text Manipulation System (4): The Optimal Data Format Converter to/from MB/WC/TMC, Proc. 49th Annual Convention IPS Japan, 3:305--306, September 1994.
[9] Kataoka, T., et al. The Worldwide Multilingual Computing (4): Essentials for the Multilingual Text Manipulation, Proc. 51th Annual Convention IPS Japan, 3:251--252, September 1995.
[10] Maruyama, K., et al. The Worldwide Multilingual Computing (7): Multilingual Programming Language for Advanced Researches, Proc. 51th Annual Convention IPS Japan, 3:257--258, September 1995.
[11] Oya, T., et al. The Worldwide Multilingual Computing (5): Multilingual Text Manipulation and Text Widget, Proc. 51th Annual Convention IPS Japan, 3:253--254, September 1995.
[12] Daikokuya, H., et al. The Worldwide Multilingual Computing (6): Multilingual Text Interprocess Communication and Input Mechanism, Proc. 51th Annual Convention IPS Japan, 3:255--256, September 1995.
[13] Yamanishi, S., et al. The Worldwide Multilingual Computing (8): Multilingual Basic Environment - C Language and OS, Proc. 51th Annual Convention IPS Japan, 3:257--258, September 1995.
[14] Tanaka, T., et al. The Worldwide Multilingual Computing (3): An Implementation of the Multilingual I/O TM/C System and Waseda X11, Proc. 51th Annual Convention IPS Japan, 3:249--250, September 1995.
[15] Kataoka, T., et al. Definition of the Mongolian Character Codesets Enabling Multilingual Text Manipulation, IPSJ SIG Notes, Computer and Humanities, 96(15):61--66, January 1996.