(57)【特許請求の範囲】
【請求項１】
マルチフィールド文字列の表示を変更する方法であって、
ユーザ制御と、それぞれが文字列の異なる表現を含む別個のフィールドを有するマルチフィールド文字列オブジェクトとの間にインタフェースを提供するステップと、
前記マルチフィールド文字列オブジェクトの現表示フィールドのコンテンツを前記ユーザ制御中に表示するステップと、
前記マルチフィールド文字列オブジェクトの現表示フィールドを選択的に変更するための選択制御を提供するステップと、
前記選択制御のユーザ起動に応答して、前記マルチフィールド文字列オブジェクト内の全フィールドのコンテンツをユーザ選択のための一覧として表示するステップと、
を含み、前記選択制御のユーザ起動に応答して、前記マルチフィールド文字列オブジェクト内の全フィールドのコンテンツをユーザ選択のための一覧として表示する前記ステップが、
前記文字列が入力されたときの第一の人間言語によって使用される文字を含む、前記マルチフィールド文字列オブジェクト内の第一のフィールドからの第一の文字列と、
前記文字列を発音どおりにつづるために前記第一の人間言語によって使用される文字を含む、前記マルチフィールド文字列オブジェクト内の第二のフィールドからの第二の文字列と、
前記文字列を発音どおりにつづる第二の人間言語によって使用される文字を含む、前記マルチフィールド文字列オブジェクト内の第三のフィールドからの第三の文字列と、
を一覧表示することを特徴とする方法。
【請求項２】
ユーザ制御と、それぞれが文字列の異なる表現を含む別個のフィールドを有するマルチフィールド文字列オブジェクトとの間にインタフェースを提供する前記ステップが、
前記マルチフィールド文字列オブジェクトの第一のフィールド内で第一の人間言語によって前記文字列を前記第一の人間言語で表すために使用される第一の文字セットからの文字を含む第一の文字列を記憶するステップと、
前記マルチフィールド文字列オブジェクトの第二のフィールド内で第二の人間言語によって前記文字列を前記第二の人間言語で表すために使用される第二の文字セットからの文字を含む第二の文字列を記憶するステップと、
をさらに含む請求項１記載の方法。
【請求項３】
前記マルチフィールド文字列オブジェクトの現表示フィールドのコンテンツを前記ユーザ制御中に表示する前記ステップが、
前記マルチフィールド文字列オブジェクトのどのフィールドが前記現表示フィールドであるかを識別するステップと、
識別した前記フィールドから文字列を検索するステップと、
検索した前記文字列を前記ユーザ制御内の表示区域中に表示するステップと、
をさらに含む請求項１記載の方法。
【請求項４】
前記一覧からの前記マルチフィールド文字列オブジェクト内のフィールドの新たな現表示フィールドとしてのユーザ選択に応答して、前記マルチフィールド文字列オブジェクト内の前記現表示フィールドを前記新たな現表示フィールドに変更するステップをさらに含む請求項１記載の方法。
【請求項５】
前記新たな現表示フィールドから文字列を検索するステップと、
検索した前記文字列を前記ユーザ制御内の表示区域中に表示するステップとをさらに含む請求項４記載の方法。
【請求項６】
前記現表示フィールドからの文字列を前記ユーザ制御内の表示区域中に表示するステップと、
前記現表示フィールドのコンテンツを選択的に編集するための編集制御を前記ユーザ制御内に提供するステップと、
前記選択制御のユーザ起動に応答して、前記現表示フィールドに入力するための新たな文字列を受けるステップと、
前記新たな文字列を前記マルチフィールド文字列オブジェクト内の前記現表示フィールド中に記憶するステップとをさらに含む請求項１記載の方法。
【請求項７】
マルチフィールド文字列の表示を変更するためのシステムであって、
ユーザ制御と、それぞれが文字列の異なる表現を含む別個のフィールドを有するマルチフィールド文字列オブジェクトとの間にインタフェースを提供するための手段と、
前記マルチフィールド文字列オブジェクトの現表示フィールドのコンテンツを前記ユーザ制御中に表示するための手段と、
前記マルチフィールド文字列オブジェクトの現表示フィールドを選択的に変更するための選択制御を提供するための手段と、
前記選択制御のユーザ起動に応答して、前記マルチフィールド文字列オブジェクト内の全フィールドのコンテンツをユーザ選択のための一覧として表示するための手段と、
を含み、前記選択制御のユーザ起動に応答して、前記マルチフィールド文字列オブジェクト内の全フィールドのコンテンツをユーザ選択のための一覧として表示するための前記手段が、
前記文字列が入力されたときの第一の人間言語によって使用される文字を含む、前記マルチフィールド文字列オブジェクト内の第一のフィールドからの第一の文字列と、
前記文字列を発音どおりにつづるために前記第一の人間言語によって使用される文字を含む、前記マルチフィールド文字列オブジェクト内の第二のフィールドからの第二の文字列と、
前記文字列を発音どおりにつづる第二の人間言語によって使用される文字を含む、前記マルチフィールド文字列オブジェクト内の第三のフィールドからの第三の文字列と、
を一覧表示することを特徴とするシステム。
【請求項８】
ユーザ制御と、それぞれが文字列の異なる表現を含む別個のフィールドを有するマルチフィールド文字列オブジェクトとの間にインタフェースを提供するための前記手段が、
前記マルチフィールド文字列オブジェクトの第一のフィールド内で第一の人間言語によって前記文字列を前記第一の人間言語で表すために使用される第一の文字セットからの文字を含む第一の文字列を記憶するための手段と、
前記マルチフィールド文字列オブジェクトの第二のフィールド内で第二の人間言語によって前記文字列を前記第二の人間言語で表すために使用される第二の文字セットからの文字を含む第二の文字列を記憶するための手段と、
をさらに含む請求項７記載のシステム。
【請求項９】
前記マルチフィールド文字列オブジェクトの現表示フィールドのコンテンツを前記ユーザ制御中に表示するための前記手段が、
前記マルチフィールド文字列オブジェクトのどのフィールドが前記現表示フィールドであるかを識別するための手段と、
識別した前記フィールドから文字列を検索するための手段と、
検索した前記文字列を前記ユーザ制御内の表示区域中に表示するための手段と、
をさらに含む請求項７記載のシステム。
【請求項１０】
前記一覧からの前記マルチフィールド文字列オブジェクト内のフィールドの新たな現表示フィールドとしてのユーザ選択に応答して、前記マルチフィールド文字列オブジェクト内の前記現表示フィールドを前記新たな現表示フィールドに変更するための手段をさらに含む請求項７記載のシステム。
【請求項１１】
前記新たな現表示フィールドから文字列を検索するための手段と、
検索した前記文字列を前記ユーザ制御内の表示区域中に表示するための手段とをさらに含む請求項１０記載のシステム。
【請求項１２】
前記現表示フィールドからの文字列を前記ユーザ制御内の表示区域中に表示するための手段と、
前記現表示フィールドのコンテンツを選択的に編集するための編集制御を前記ユーザ制御内に提供するための手段と、
前記選択制御のユーザ起動に応答して、前記現表示フィールドに入力するための新たな文字列を受けるための手段と、
前記新たな文字列を前記マルチフィールド文字列オブジェクト内の前記現表示フィールド中に記憶するための手段とをさらに含む請求項７記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、文字列のユーザ・インタフェース表示の変更に関し、特に、マルチフィールド文字列オブジェクトのユーザ・インタフェース表示の変更に関する。さらに具体的には、本発明は、ユーザ・インタフェース表示内でのマルチフィールド文字列オブジェクトからのフィールドの選択的な表示に関する。
【０００２】
【従来の技術】
多国籍企業は、地球上に分散した多数の地域に及ぶ情報システム（ＩＳ）ネットワークを運用することが多い。そのようなネットワークの有用性を最大限にするため、各国内での運用は、その国の現地語で実施される傾向にある。可能ならば、ユーザ・アプリケーションにおける抽象オブジェクトの名称は現地語であり、抽象オブジェクトが表す現地語の機関、都市または人名に適合する。システム管理ソフトウェアの場合、しばしば抽象オブジェクトは、全世界的企業の現地オフィスそれぞれを表す。
【０００３】
抽象オブジェクトの名称が現地語および現地語の基礎にある文字セットを使用する場合、そのような全世界的ネットワークの集中管理は困難であるか、不可能である。エジプトにあるオフィスの場合、抽象オブジェクトはしごく当然にアラビア語で命名されるだろうし、ロシアにあるオフィスの場合、キリール文字セットを使用してオブジェクトを命名するだろうし、日本にあるオフィスの場合、オブジェクトは日本語で命名されるだろう。しかし、企業の本部のＩＳスタッフがこれらのオブジェクトを審査しようとすると、問題が生じる。米国にある多国籍企業本部のＩＳスタッフは、アラビア語や日本語を読める可能性は低く、キリール文字でさえ理解する可能性は低い。
【０００４】
たとえば日本語は、単なる音を表すアルファベットを有さず、その代わり、単なる音ではなく概念およびオブジェクトに対応する記号（「表意文字」）を有する非常に大きな文字セットを有する表意文字言語である。たとえば、１９８１年に採用された日本語の常用漢字表は１９４５個の記号を含む。漢字になじみのないユーザにとって、日本語で命名された特定の抽象オブジェクトを識別することは困難であり、また、そのような抽象オブジェクトに関して英語および日本語を話す相手と電話で話し合うことさえ困難である。
【０００５】
さらには、日本語では、同じ文字が多数の意味または発音をもつことがあるため、表意文字を見るだけでは、正しい意味または発音に関して手がかりを得ることはできない。たとえば、図９に示す文字は「West」または「Spain」のいずれを表すこともでき、図１０に示す記号は「hayashi」または「rin」（もしくは「lin」）のいずれにも発音することができ、図１１に示す文字は「suga  no」、「suga  ya」、「kan  no」または「kan  ya」のいずれにも発音することができる。この状況は、一部には、漢字を中国語から採用した日本語の歴史に基づく。したがって、たとえば、図１０に示す「rin」記号は音読み、すなわち、基本的にはこの文字が日本に輸入された当時の中国語発音を模したものであり、一方「hayashi」は訓読み、すなわち、同じ意味を有する、この文字に割り当てられた日本語である。
【０００６】
したがって、ユーザ・インタフェースにおける文字列の表示言語を選択的に制御するための機構を提供することが望ましい。さらに、その機構が、ユーザがユーザ・インタフェースの表示言語を変更し、表示フィールドのコンテンツを編集することを許すならば、有利である。
【０００７】
【発明が解決しようとする課題】
したがって、本発明の一つの目的は、文字列のユーザ・インタフェース表示を変更する方法、システムおよびコンピュータ・プログラムを提供することである。
【０００８】
本発明のもう一つの目的は、マルチフィールド文字列オブジェクトのユーザ・インタフェース表示を変更する方法、システムおよびコンピュータ・プログラムを提供することである。
【０００９】
本発明のさらに別の目的は、ユーザ・インタフェース表示内のマルチフィールド文字列オブジェクトからのフィールドを選択的に表示する方法、システムおよびコンピュータ・プログラムを提供することである。
【００１０】
【課題を解決するための手段】
前記目的は、以下に記載するようにして達成される。文字列の異なる表現（たとえば漢字記号、漢字記号を発音どおりにつづる表音文字および漢字記号を発音どおりにつづるローマ字）をそれぞれが含む別個のフィールドを有するマルチフィールド文字列オブジェクト内のフィールドのコンテンツを選択的に表示および／または編集するためのユーザ制御を提供する。したがって、種々のフィールドは、一つの文字列の識別名、意味および発音情報をカプセル化する。ユーザ制御とマルチフィールド文字列オブジェクトとの間の制御インタフェースが、ユーザ制御内のメソッドをマルチフィールド文字列オブジェクトに対して実行することを可能にする。マルチフィールド文字列オブジェクトに現在選択されている表示フィールドのコンテンツが選択制御とともに表示される。選択制御を起動すると、マルチフィールド文字列オブジェクト内の全フィールドのコンテンツの順序付け一覧を表示することができ、表示された一覧からフィールドを選択することによって現表示フィールドを変更することができる。したがって、文字列の一つの表現に基づいて文字列を認識、理解または発音することができないユーザは、ビューを切り換えて、同じ文字列の、ユーザにとってなじみのある異なる表現を見ることができる。また、現在選択されている表示フィールドのコンテンツを編集することもできる。
【００１１】
以下の詳細な説明により、本発明の上記ならびにさらなる目的、特徴および利点が明らかになる。
【００１２】
【発明の実施の形態】
ここで図面、特に図１を参照すると、本発明の好ましい実施態様を実現することができるデータ処理システムのブロック図が示されている。データ処理システム１００は、たとえば、International  Business  Machines社（ニューヨーク州Armonk）から市販されているパーソナル・コンピュータのAptiva（登録商標）の１機種であることができる。データ処理システム１００はプロセッサ１０２を含み、例示する実施態様では、このプロセッサがレベル２（Ｌ２）キャッシュ１０４に接続され、このキャッシュが逆にシステム・バス１０６に接続されている。例示する実施態様では、データ処理システム１００は、表示装置１２０のためのユーザ・インタフェース情報を受けるシステム・バス１０６に接続されたグラフィックス・アダプタ１１８を含む。
【００１３】
同じくシステム・バス１０６には、システム・メモリ１０８および入出力（Ｉ／Ｏ）バス・ブリッジ１１０が接続されている。Ｉ／Ｏバス・ブリッジ１１０は、Ｉ／Ｏバス１１２をシステム・バス１０６に結合して、一方のバスから他方のバスへのデータ・トランザクションを中継および／または変換する。周辺装置、たとえばハードディスク・ドライブであってもよい不揮発性記憶装置１１４および従来のマウス、トラックボールなどを含むキーボード／ポインティング・デバイス１１６がＩ／Ｏバス１１２に接続されている。
【００１４】
図１に示す例示的な実施態様は、本発明を説明する目的のみに提示したものであり、当業者は、形態および機能の両方において多数の変形が可能であることを認識するであろう。たとえば、データ処理装置１００はまた、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）もしくはデジタル・ビデオ・ディスク（ＤＶＤ）ドライブ、サウンド・カードおよびオーディオ・スピーカならびに他多数のオプション部品を含むかもしれない。そのような変形はすべて本発明の本質および範囲に入るものと考えられる。データ処理システム１００および以下に示すJava実現例は、説明のための例としてのみ提供するものであり、機器構成の限定を暗示するものではない。当業者は、利用することができる多数のプログラム言語を認識するであろう。それらはすべて本発明の本質および範囲に包含されると考えられる。
【００１５】
図２を参照すると、本発明の好ましい実施態様にしたがって、ユーザ・インタフェースに代替表示言語選択を提供するために使用されるマルチフィールド文字列クラスの図が示されている。データを複数の人間言語で表示しなければならない国際的コンピューティング環境における根本的な問題は、発話される語が一般に情報を、たとえばその語の意味を通じて、文脈からおよび／または語尾変化から多数の態様または属性でカプセル化することである。語は、データ処理システムにおける操作または表示のために視覚的または電子的表現に簡約されると、いくつかの属性および連想される意味の多くを失うおそれがある。データ処理システムにとってもっとも重大なことに、語の視覚的表現は、その語の正しい翻訳もしくは発音または指定されたソート順序内での語の正しい配置に関して手がかりを与えることができない。この問題に対処するためには、国際文字列（「IString」）クラス２０２を用いることができる。
【００１６】
IStringクラス２０２は、好ましくは、類似メソッドを含めることによってJava文字列クラスのように挙動する、Java文字列クラスに類似したJavaクラスである。文字列クラスの元の挙動の大部分が保存され、さらなる機能が追加され、必要な場合にのみ使用されるはずである。IStringクラス２０２は、発話される語の意味のうち、その語が視覚的表現に簡約された場合に通常は失われる部分を捕らえるデータ型である。IStringクラス２０２は、好ましくは、システム内のすべてのオブジェクト名およびシステム・メッセージに使用される。
【００１７】
IStringクラス２０２構造は、名前、メッセージ、データまたは文字列オブジェクトごとに３個の異なる文字列、すなわちbaseString２０４、sortString２０６およびaltString２０８を含む。baseString２０４は、ユーザ・インタフェース表示装置中でデフォルトによって用いられるIString２０２内の文字列であり、普通はIStrongオブジェクトが生成される現地語でユーザによって入力される元の文字列を含むことができる。sortString２０６もまた、文字列であることができ、非音声的言語およびbaseString２０４の２進値だけに基づいてソートするのが困難な言語の正しいソートを可能にするために用いられる。altString２０８は、いかなる文字列であることもできるが、従来は、baseString２０４に含まれるデータの発音のローマ字セット表現で満たされているべきである。したがって、IStringクラス２０２は、オブジェクト名、システム・メッセージおよび他のデータのための元の文字列（baseString２０４）、ソート・キー（sortString２０６）および発音キー（altString２０８）を含む。
【００１８】
Javaで実現されると、IStirngクラス２０２オブジェクトのコンストラクタは、以下のフィールドからなることができる。
【００１９】
0003841991.tif 000002
【００２０】
ＩＳＯ−３１６６によって定義される大文字２文字のＩＳＯ国コードおよびＩＳＯ−６３９によって定義される小文字２文字のＩＳＯ言語コードは、インターネット上の多様なソースから用意に入手することができる。
【００２１】
表Ｉは、IStringデータ型２０２内のデータがテーブルとして表現されたときにどのように見えるかを示す。
【００２２】
0003841991.tif 000003
【００２３】
コンテンツが言語または地域から独立している新たな空のIStringクラス・オブジェクト２０２のJavaコンストラクタは、以下のものであることができる。
【００２４】
0003841991.tif 000004
【００２５】
IStringクラス２０２データ型のオブジェクトをオブジェクト・データベース（ＯＤＢ）に記憶し、ただし、共通オブジェクト要求ブローカ・アーキテクチャ（ＣＯＲＢＡ）アプリケーションによるIStringデータの操作を可能にするため、インタフェース定義言語（ＩＤＬ）クラスが次のように定義されるべきである。
【００２６】
0003841991.tif 000005
【００２７】
baseString２０４、sortString２０６およびaltString２０８のコンテンツは、IStringクラス２０２内のデータ入力メソッド２１０によって入力されるユニコード文字列であることが好ましいが、必ずしもそうである必要はない。データ入力メソッド２１０ならびにbaseString２０４、sortString２０６およびaltString２０８のコンテンツは、少なくとも一部には、sourceLocaleフィールド２１２、sourceLanguageフィールド２１４、targetLocaleフィールド２１６および言語およびtargetLanguageフィールド２１８によって定義される言語および地域パラメータに依存する。
【００２８】
データ入力メソッド２１０は、基礎にあるホスト・システムによって用いられる地域および／または言語に依存するため、新たなIStringオブジェクト２０２の生成は、好ましくは、IStringオブジェクト２０２が生成されるホスト・システムの地域および言語特性をsourceLocaleフィールド２１２およびsourceLanguageフィールド２１４に配置する結果となる。IStringクラス・オブジェクト２０２が生成されるホスト・システムから決定された指定地域および言語の新たな空のIStringを割り当てるためのコンストラクタは、以下のものであることができる。
【００２９】
0003841991.tif 000006
【００３０】
IStringクラス２０２オブジェクトへのデータの入力は、好ましくは、地域依存性または言語依存性である。sourceLanguage属性２１４およびtargetLanguage属性２１８が、データ入力メソッド２１０によってデータがIStringクラス２０２オブジェクトに入力される方法を制御する。sourceLanguage属性２１４は、IStringクラス・オブジェクトが生成されるホスト・システムの言語属性にセットすることもできる。targetLanguage属性２１８は、その言語にセットしてもよいし、あるいはまた、共通の'全世界的'言語、たとえば英語にセットしてもよい。データ入力メソッド２１０は、sourceLanguage属性２１４とtargetLanguage属性２１８とを比較して、IStringクラス・オブジェクト２０２の中で何をbaseString２０４、sortString２０６およびaltString２０８に入力するのかを決定する。
【００３１】
文字列がIStringクラス２０２のデータ入力メソッド２１０によってbaseString２０４、sortString２０６およびaltString２０８のフィールドに入力される。このメソッドは、ユーザの直接入力もしくは仕様からのデータ、音訳エンジン２２０からのデータまたは入力メソッド・エディタ（ＩＭＥ）２２４からのデータを選択的に利用することができる。targetLanguage属性２１８がデフォルトとして英語にセットされている場合には、データ入力メソッド２１０は、データがユーザによって入力される際の言語（sourceLanguage属性２１４）によって用いられる文字セットに基づいてbaseString２０４、sortString２０６およびaltString２０８のフィールドのコンテンツを決定する。
【００３２】
ローマ字セットを使用する言語の場合、ユーザ入力は、データ入力メソッド２１０により、IStringクラス２０２の３フィールド（baseString２０４、sortString２０６およびaltString２０８）すべてに配置される。適当なコンストラクタは、以下のものであることができる。
【００３３】
0003841991.tif 000007
【００３４】
大部分の地域および言語の場合、入力される文字列は、IStringオブジェクト２０２の３フィールドすべてに入力される。targetLanguage属性２１８が英語にセットされていないならば、sourceLanguage属性２１４およびtargetLanguage属性２１８で識別される言語が共通の文字セットを使用する（たとえばスペイン語とアフリカーンスの場合のように両方ともローマ字を使用する）ときには、データ入力メソッド２２４は、ユーザ入力文字列を３フィールドすべてに入力することになる。
【００３５】
表IIは、ホスト言語および地域がローマ字セットを使用する場合にデータをIStringクラス２０２フィールドに入力する方法を示す。
【００３６】
0003841991.tif 000008
【００３７】
望むならば、フィールドを個々に編集し、ソート目的のために、より低いソート値（たとえば「AAA_Hetherington」）を有する文字列をsortString２０６に挿入することによってオブジェクトを人工的にプロモート(artifical promotion)してもよい。
【００３８】
ローマ字セットを使用しないが、ローマ字セットに音声マッピングすることができる文字セットを使用する言語の場合、ユーザ入力は、データ入力メソッド２１０により、baseString２０４およびsortString２０６に入力されるが、その入力の音訳された発音どおりの表現はaltString２０８に配置される。音訳エンジン２２０内の内部メソッドを使用して、パスされた文字列をaltString２０８の発音どおりのローマ字表現に音声マッピングして、入力された文字を、元の言語の文字セットになじみのない人々にとって理解できる他の文字に音訳する。
【００３９】
altString２０８のコンテンツを生成するため、音訳エンジン２２０は、マッピングテーブルを含む適当なJavaリソース・ファイル２２２を選択して、altString２０８に配置すべき代替文字列を生成する。使用される具体的なリソース・ファイルの選択は、ソース言語と標的言語との組み合わせに依存する。Javaリソース・ファイル２２２は、マッピングが実行される言語の組み合わせのために命名される。図２に示す実施例では、ru_en.classが、ロシア語（キリール文字）を英語（ローマ字）にマッピングするためのものである。リソース・ファイル２２２の構造は、外国語文字および対応するローマ字のための関連のエントリを有するテーブルである。
【００４０】
パスされた文字列からaltString２０８が音訳されるIStringオブジェクトに適当なコンストラクタは、以下のものであることができる。
【００４１】
0003841991.tif 000009
【００４２】
'変形'メソッドは、上述した音訳エンジン２２０内の内部メソッドである。入力された文字が音訳されて得られる文字セットは、例示する実施態様では英語にセットされているとみなされるtargetLanguage属性２１８から決定される。しかし、適当なリソース・ファイル２２２を与えられると、文字は、いかなる二言語間ででも音訳することができ、そのために、一方の言語の文字が他方の言語の１個以上の文字に音声マッピングされる。
【００４３】
表IIIは、言語が、ローマ字セットに対してマッピングする非ローマ字セット、たとえばロシア語のキリール文字を使用する場合にデータ入力メソッド２１０によってデータをIStringクラス２０２に入力する方法を示す。
【００４４】
0003841991.tif 000010
【００４５】
以下に示す例では、ユーザによって入力される文字列は、baseString２０４およびsortString２０６の両方に挿入されるが、altString２０８に入力される文字列は、音訳エンジン２２０により、ロシア語のキリール文字から英語文字への音声マッピングのリソース・テーブルを使用して選択される。したがって、baseString２０４の発音どおりの表現は、キリール文字セットになじみのないユーザにとっての発音キーとしてaltString２０８に入力される。
【００４６】
ローマ字セットまたはローマ字セットに音声マッピングすることができる文字セットを使用しない言語の場合、データ入力メソッド２１０が、データをbaseString２０４、sortString２０６およびaltString２０８のフィールドに入力し、これは、入力メソッド・エディタ（ＩＭＥ）２２４から導出される。ＩＭＥ２２４は、カスタマイズされた入力メソッド・エディタであってもよいし、Microsoft社（ワシントン州Redmond）から市販されているWindows  NTオペレーティング・システムのアジア版に統合された入力メソッド・エディタであってもよい。Windows  NT入力メソッド・エディタを使用するならば、適当なデータをWindows  NT入力メソッド・エディタ内部データ記憶装置から抽出しなければならない。
【００４７】
表IVは、ローマ字セットをも、ローマ字セットに音声マッピングすることができる文字セットをも使用しない表意文字言語、たとえば日本語の場合にデータ入力メソッド２１０によってデータをIStringクラス２０２に入力する方法を示す。
【００４８】
0003841991.tif 000011
【００４９】
表意文字言語は、アルファベットをもたず、その代わり、単なる音ではなく概念およびオブジェクトに対応する記号（「表意文字」）の非常に大きな文字セットを有する。たとえば、１９８１年に採用された日本語の常用漢字表は１９４５個の記号を含む。通常のコンピュータ・キーボードは、この言語の１記号ごとに１個を割り当てられる数のキーを含むことはできず、そのため、入力は、キーストロークの組み合わせを発音どおりに使用して２種類の表音文字、ひらがなまたはカタカナのいずれかから文字を選択し、漢字記号の生成のための辞書検索して達成される。このプロセスは、上述したWindows  NT入力メソッド・エディタで実現されている。
【００５０】
したがって、表意文字言語の場合、altString２０８に入力されるデータは、所望の表意文字を構成するためにユーザによってタイプされるローマ字である。sortString２０６に入力されるデータは、所望の表意文字を発音どおりにつづり、表意文字の中間的表現を提供する表音文字である。baseString２０４に入力されるデータは、ユーザによって選択される最終的な表意文字である。上述したような非ローマ字の音訳と同様に、targetLanguage属性が英語以外の言語にセットされており、ＩＭＥ２２４が、英語以外の言語での発音どおりのつづりによる表意文字の構成をサポートするならば、非ローマ字をaltString２０８に入力することもできる。たとえば、ＩＭＥ２２４が、ロシア語での発音どおりのつづりによる日本語の漢字の構成を可能にするならば、IStringオブジェクト２０２は、日本語の漢字をbaseString２０４に含み、ひらがなをsortString２０６に含み、キリール文字をaltString２０８に含むかもしれない。
【００５１】
IStringオブジェクト２０２に入力するためのデータ入力メソッド２１０によってbaseString２０４、sortString２０６およびaltString２０８をＩＭＥ２２４から受けるのに適したコンストラクタは、以下のものであることができる。
【００５２】
0003841991.tif 000012
【００５３】
baseString２０４、sortString２０６およびaltString２０８のコンテンツは、ＩＭＥ２２４から導出されたデータからそれぞれのフィールドに入力され、sourceLocale２１２およびsourceLanguage２１４のコンテンツは、データがIStringオブジェクト２０２に入力されているホスト・システムによって指定されるデフォルト地域および言語属性から入力される。targetLocale２１６およびtargetLanguage２１８のコンテンツは、通常、ローマ字セットを使用する言語の地域／言語コード、たとえば「ｅｎ＿ＵＳ」（英語−アメリカ合衆国）である。
【００５４】
文字列がIStringクラス・オブジェクト２０２に入力されるときの言語にかかわらず、データ入力メソッド２１０によってbaseString２０４、sortString２０６およびaltString２０８それぞれに自動的に入力されるデータは、他のメソッドを使用して打ち消したり変更したりすることができる。IStringオブジェクト２０２のフィールドは、好ましくは、個々に独立して編集して、上述したようなsortStringフィールド２０６内の人工的なプロモーション、baseStringフィールド２０４中の誤選択された表意文字の交換またはaltString２０８内の発音どおりのつづりの訂正を可能にする。
【００５５】
上述したメソッドは、ソース言語および標的言語をホスト・システム・デフォルトからとると仮定したが、データはまた、コンストラクタを使用して、指定されたソース言語および標的言語のbaseString２０４、sortString２０６およびaltString２０８に入力してもよい。
【００５６】
0003841991.tif 000013
【００５７】
このコンストラクタでは、baseString２０４、sortString２０６およびaltString２０８に入力される文字を選択するために使用されるソースおよび標的言語および地域を指定することができる。この後者のコンストラクタを使用して、ホスト・システム・デフォルト言語以外で、すなわち、IStringオブジェクト２０２のデータが別のシステムから受けられ、局所インスタンスが生成されるホスト・システムで、IStringオブジェクト２０２を生成することができる。
【００５８】
音訳エンジン２２０およびメッセージング・メソッド２２６は必ずしも図２に示すようにIStringクラス２０２内で実現する必要はなく、ＩＭＥメソッド２２０を別々に実現する必要もないことを理解すべきである。代わりに、音訳エンジン２２０およびメッセージング・メソッド２２６を、必要に応じてIStringクラス２０２によって適切に構成および／または起動される別々のサブクラス内で実現し、ＩＭＥ２２４を、IStringクラス２０２内のメソッドとして実現してもよい。
【００５９】
音訳エンジン２２０およびＩＭＥ２２４は、特定の地域および言語属性設定の下でIStringクラス２０２オブジェクトのための入力データを集めるためにデータ入力メソッド２１０によって要求されるだけである。他の方法では、適当なコンストラクタを起動することによってデータをbaseString２０４、sortString２０６およびaltString２０８にプログラム的に入力することもできる。IString２０２内でフィールドをプログラム的に取得し、セットするために実行時にプログラムによって起動することができるメソッドは、以下を含む。
【００６０】
0003841991.tif 000014
【００６１】
このメソッドは、IStringオブジェクト２０２のためのbaseString２０４のコンテンツを戻す。同様なメソッドが、sortString２０６およびaltString２０８のコンテンツを戻す。
【００６２】
0003841991.tif 000015
【００６３】
このメソッドはまた、baseString２０４、sortString２０６およびaltString２０８の設定を含む。
【００６４】
0003841991.tif 000016
【００６５】
0003841991.tif 000017
【００６６】
0003841991.tif 000018
【００６７】
プログラムは、IStringオブジェクト２０２のためのbaseString２０４、sortString２０６およびaltString２０８の取得および設定に加えて、IStringオブジェクト２０２の表示地域または言語を取得または設定しなければならないかもしれない。したがって、プログラムがIStringデータの地域または言語属性を取得および／または設定することを許すための他のメソッドが提供される。
【００６８】
0003841991.tif 000019
0003841991.tif 000020
0003841991.tif 000021
【００６９】
これらのメソッドは利用可能であるが、IStringクラス２０２は、好ましくは、プログラマ／ユーザがIStringクラス２０２のために実現されるメソッドに関して何も知る必要がないような「ブラック・ボックス」動作を示す。IStringクラス２０２は、baseString２０４に関する余計な情報をカプセル化し、文字をある文字セットから別の文字セットに変換するためのいくつかのメソッドを含むデータ型として見えるだけである。baseString２０４に加えて、またはその代わりにsortStringフィールド２０６またはaltStringフィールド２０８が編集のため、または表示だけのためにユーザに露呈されなければならない特殊な場合に備えて、別個のセットの制御を提供してもよい。
【００７０】
本発明では、IStringクラス２０２は、異なる言語を使用するシステム間で人間言語データを効果的に転送するために使用される。baseString２０４のコンテンツは、IStringオブジェクト２０２を生み出すシステムのデフォルト言語にある文字列の固有の表現を提供する。しかし、各システムが、異なる人間言語で稼働する他のシステムとでデータの交換に参与する場合、IStringオブジェクト２０２のtargetLocale属性２１６およびtargetLanguage２１８属性は、好ましくは、共通の値に設定される（たとえばtargetLocale＝「ＵＳ」、targetLanguage＝「ｅｎ」）。したがって、altString２０８のコンテンツは、言語間で共通する文字列の表現を含む。オブジェクトを受けるシステムのデフォルト言語がbaseString２０４のコンテンツの言語から異なるシステムでは、IStringクラス・オブジェクト２０２は、altString２０８のコンテンツを、表示または処理すべき文字列として提示するよう、自動的に切り換わることができる。
【００７１】
図３を参照すると、本発明の実施態様にしたがって、個々のマルチフィールド文字列クラス・オブジェクトまたはマルチフィールド文字列クラス・オブジェクトの離散的セットの表示および編集を制御するための機構が示されている。すべてのJava  ＡＷＴ（Abstract  Windowing  Toolkit）制御を動作可能にしてIString情報を使用し、表示するために、文字列マネージャ・クラス、IStringControl３０２およびIStringコントローラ・インタフェース３１２が定義されている。IStringコントローラ・インタフェース３１２は、IStringオブジェクト３０４に対するすべての表示要求をインタセプトして、そのような表示要求に応答して、現表示フィールドのコンテンツを制御にパスする。したがって、IStringコントローラ・インタフェース３１２は、専用の表示制御なしで、レガシー制御がIStringオブジェクト３０４のコンテンツを表示することを可能にする。
【００７２】
IStringControl３０２のコンストラクタは、そのパラメータとして、IStringクラス３０４およびＪＦＣ（Java  Foundation  Class）制御３０６、メニュー項目３０８またはsetText()メソッドを有する他の制御３１０をとる。IStringControl３０２は、どのIStringフィールド（baseString、sortStringまたはaltString）を、それが管理する制御の中で見せるのかを管理し、IStringオブジェクト３０４内で文字列を入力または変更するためのメソッドを実現する責任を負う。IStringControl３０２は、制御のsetText()メソッドに対するすべての呼び出しに介入して、制御を使用しながらIStringオブジェクト３０４のフィールドに文字列を入力するために必要な処理を実行する。
【００７３】
ユーザ・インタフェース対話内の文字列制御のインスタンスごとに、ＪＦＣ制御にsetText()メソッドを呼び出す代わりに、IStringコントローラ・インタフェース３１２およびＪＦＣ制御が、ＪＦＣ制御を管理するためのIStringControl３０２とともに生成される。これは、多数の単一値文字列ベースの制御（たとえばJlabelまたはJtextフィールド）を含む対話またはフレームがIString値を見せることを可能にする。さらには、IStringControl３０２は、ＪＦＣ制御をそのコンストラクタ・パラメータの１種としてとる代わりに、java.awt.Componentをとり、内省を使用してsetText()メソッドを捜し、IStringサポートを潜在的に偏在させることもできる。
【００７４】
IStringコントローラ（「IStringControlActions」）インタフェース３１２はまた、IStringControl３０２を構成し、照会するためのメソッドによって定義される。そのようなメソッドは、以下を含む。
【００７５】
public void setText( IString  text ),
public IString getText(),
public void setVisibleField( int field ),
public int getVisibleField(),
setPopupEnabled( boolean enabled ),および
isPopupEnabled().
【００７６】
getText()およびgetVisibleField()メソッドは、コントローラ・インタフェース３１２内で無効化されず、コントローラ・インタフェース３１２が、現表示フィールド（「visibleField」）のコンテンツをレガシー制御、たとえばJava  ＡＷＴ制御、たとえばJlable制御３０６、ＪＦＣ制御、たとえばメニュー項目３０８またはgetText()メソッドを含む他の制御３１０にパスすることを許す。
【００７７】
専用のIStringControl３０２が、レガシー制御内のsetText()メソッドに対する呼び出しに介入するはずであるため、コントローラ・インタフェース３１２内のgetText()およびsetVisibleField()メソッドは無効化される。上述したメソッド中のパラメータ「フィールド」は、IStringControl.BASE、IStringControl.SORTまたはIStringControl.ALTのいずれかである。上述した最後の二つのメソッドが、ポップアップ表示をIStringフィールド・コンテンツとともに示すかどうかを決定する。
【００７８】
さらには、IStringControlOptionsメソッドを実現する、ButtonGroupに類似し、例ではIStringControlGroupと呼ばれるグルーピング・クラス３１４を定義することができる。IStringControl３０２のインスタンス３１６をグルーピング・クラス３１４に加えると、すべての制御を一度に構成することができる文脈、たとえば対話または全アプリケーションを生成することができる。図３に示し、上述した構造では、アプリケーションおよびプログラマでさえ、アプリケーション内のIStringデータを使用するために実行すべき余計な作業がほとんどないが、所望により、特殊な操作のためのメソッドのより豊富なセットを使用してもよい。
【００７９】
コントローラ・インタフェース３１２はまた、メッセージングを介してIStringデータの表示を変更するための機構を提供する。言語および／または地域コードを含むメッセージ、たとえば言語変更メッセージ、地域変更メッセージまたは表示変更メッセージに関して、IStringデータ・オブジェクト３０４、制御３０２、３０６、３０８および３１０ならびにグループ・コントローラ３１４は、すべてリスナ(listner)として、コントローラ・インタフェース３１２に登録することができる。言語および地域変更メッセージは、基礎にあるシステム内で言語および地域属性設定を変更することができるが、表示変更メッセージは、単に、基礎にあるシステムの言語および地域属性を変更することなくIStringデータ表示フィールドを選択するために使用される言語および／または地域を変更する（別々に、または合わせて）ことができるだけである。
【００８０】
言語、地域および表示変更メッセージは、ユーザがコントローラ・インタフェース３１２との対話を介して起動することもできるし、アプリケーションが適当なメッセージを送ることによって起動することもできる。新たな言語および／または地域が選択されると、動作可能にされたすべての加入者は、人間の言語をロードし直し、地域特定のデータをフォーマットし直すことによってメッセージに対応することができる。言語、地域および表示変更メッセージは、図２に示すIStringオブジェクト２０２内で１個以上のメッセージング・メソッド２２４を呼び出すことができる。
【００８１】
言語変更メッセージを受けると、IStringオブジェクト３０２は、それらのデータに対して論理的に演算を加える。いくつかのIStringオブジェクト３０２は、言語の変更に対して挙動変化を示さず、地域の変化に対して挙動変化を示すかもしれない。たとえば、数値データ表示は、選択された地域（たとえば米国からヨーロッパ）に依存してその提示フォーマットを変更するが、数字は変更しないであろう。他のオブジェクトは、提示フォーマットならびにテキストの月名および曜日名を変更するテキスト日付表示におけるように、言語および地域の両方に関して挙動変化を有する。
【００８２】
図４および５を参照すると、本発明の好ましい実施態様にしたがって、マルチフィールド文字列クラス・オブジェクトの表示を制御する方法のユーザ・インタフェース図が示されている。図４は、オブジェクト名が含まれるユーザ・インタフェースを示す。このユーザ・インタフェースの中では、マルチフィールド文字列オブジェクトが、例示的な実施態様では、漢字記号を発音どおりにつづるカタカナ文字をbaseString（図示せず）とともに含むsortStringフィールドである第一のフィールドのコンテンツとともに表示されている。
【００８３】
図３に示し、上述した制御は、マルチフィールド文字列オブジェクトの表示を制御するために使用することができる。図５は、オブジェクト名の表示フィールドがaltStringフィールドのコンテンツに変更された同じオブジェクトを表示するユーザ・インタフェースを示す。
【００８４】
次に図６および７を参照すると、本発明の好ましい実施態様にしたがって、マルチフィールド文字列オブジェクトの現表示フィールドを選択または編集するためのユーザ・インタフェース制御が示されている。図６および７は、図２および３と関連させて参照するためのものである。制御５０２は、好ましくは、ISStringオブジェクト内のどのフィールドのコンテンツをも要求することができる専用のIString制御３０２である。
【００８５】
制御５０２は、IStringオブジェクト２０２または３０４の現表示フィールドのコンテンツを表示するための表示区域５０４と、表示すべき異なるフィールドの選択を起動するための選択制御５０６とを含む。IStringオブジェクト２０２または３０４の現在選択されている表示フィールドのコンテンツは、表示のためのgetVisibleFieldメソッドによって検索することができる。IStringオブジェクト２０２または３０４内のvisibleFieldパラメータが、どのフィールド、baseString２０４、sortString２０６またはaltString２０８が、現在表示に選択されているかを識別する。visibleFieldパラメータに基づき、getVisibleFieldメソッドは、「フィールド」パラメータがIString.BASE、IString.SORTまたはIString.ALTであるIStringオブジェクト２０２または３０４に対してgetText( field )プロセスを効果的に実行して、現在表示に選択されているフィールド内の文字列を検索する。
【００８６】
選択制御５０６は、選択制御５０６をクリックし、カーソルが選択制御５０６の上に来るまでポインティング・デバイスを操作したのち、ポインティング・デバイスまたはポインティング・デバイス上の特定のボタンを起動することによって起動される従来の下向き矢印であってもよい。起動されると、選択制御５０６は、IStringオブジェクト２０２または３０４の三つのフィールドすべてをbaseString２０４、sortString２０６およびaltString２０８の順で含むドロップダウン・ボックス５０８を生成する。三つのフィールドすべてのコンテンツは、IString.BASE、IString.SORTおよびIString.ALTに対して複数のgetText()メソッドを実行することによって検索することができる。すると、三つの文字列を、公知の技術にしたがってドリップダウン・ボックス５０８内に順序付きの一覧として表示することができる。
【００８７】
従来のプルダウン・メニューおよびドロップダウン・ボックスと同様に、カーソルが現在位置するドロップダウン・ボックス５０８内のエントリがバー５１０によって強調表示される。ユーザは、ドロップダウン・ボックス５０８内の所望のエントリをクリックすることによって異なるフィールドを表示に選択することができる。すると、制御５０２がsetVisibleTextメソッドを実行してvisibleTextパラメータを適宜にIString.BASE、IString.SORTまたはIString.ALTに変更したのち、新たに選択された現表示フィールドのコンテンツを表示区域５０４にロードし直す。
【００８８】
ユーザは、編集すべきフィールドが表示されている間に表示区域５０４をダブルクリックすることにより、残りのフィールドのコンテンツを変更することなく、現在選択された表示フィールドのコンテンツを編集することができる。いかなる文字をも含むことができるユーザ指定文字列がgetText()メソッドによって現在表示されているフィールドに記憶される。現在表示されていないフィールドのコンテンツを編集するためには、ユーザは、選択制御５０６を使用して編集すべきフィールドを現表示フィールドとして選択する。そして、表示区域５０４内のフィールドを編集する。
【００８９】
制御５０２は、状態バー内で適切に実現することもできるし、図７に示すように、対話ボックス５１２の中に他の制御とともに統合することもできる。図示するように、他の制御は、たとえば、選択制御５０６が動作可能であるか、動作不能であるか、また、表示区域５０４のコンテンツが読取り専用であるか、編集可能であるかを制御するラジオ・ボタン５１４を含むことができる。このように、選択制御５０６および表示区域５０４の対応するパラメータを単独で、または組み合わせて使用しながら、制御５０２は、ユーザが、指定のIStringオブジェクトの現表示フィールドを変更したり、指定のIStringオブジェクトでフィールドのコンテンツを編集したり、指定のIStringオブジェクト内の指定のフィールドのコンテンツを編集したりすることを防ぐことができる。
【００９０】
次に図８を参照すると、本発明の好ましい実施態様にしたがって、マルチフィールド文字列内のフィールドを選択的に表示または編集するためのユーザ制御の動作の高レベル流れ図が示されている。図示するプロセスは、図６および７に示す制御５０２が動作するためのプロセスである。プロセスはステップ６０２で始まり、ユーザ制御５０２が起動されることによってIStringオブジェクトを表示したのち、ステップ６０４に進んで、どのフィールドが現表示フィールドであるかを判定し、そのフィールドのコンテンツを制御内に表示する。
【００９１】
次にプロセスはステップ６０６に進み、ユーザが選択制御５０６を起動するなどによって表示フィールドの変更が起動されたかどうかを判定する。起動されたならば、プロセスはステップ６０８に進み、IStringオブジェクトのすべてのフィールドをドロップダウン・ボックス５０８中に順に表示し、新たなフィールドが現表示フィールドとして選択されるならば、表示ウィンドウ５０４のコンテンツを変更する。ひとたびユーザが表示のためのフィールドを選択したならば、ドロップダウン・ボックス５０８は除かれる。
【００９２】
現表示フィールドの変更が起動されないのならば、プロセスはステップ６１０に進み、ユーザが表示ウィンドウ５０４をダブルクリックするなどによって現表示フィールドのコンテンツの編集が起動されたかどうかを判定する。起動されたならば、プロセスはステップ６１２に進み、IStringのソース言語および標的言語ならびに編集されるフィールドに依存して簡単なエディタ、音訳エンジンまたはＩＭＥを使用して、現表示フィールドのコンテンツを編集する。
【００９３】
ステップ６０８または６１２のいずれかから、プロセスは次に、ステップ６１４に進み、制御５０２によるIStringオブジェクトの表示が終了したかどうかを判定する。終了していないならば、プロセスはステップ６０６に戻り、表示フィールドの変更または編集のさらなるユーザ起動を待つ。しかし、終了したならば、プロセスはステップ６１６に進み、制御５０２を使用してのIStringオブジェクトの別の表示が起動されるまでアイドル状態になる。
【００９４】
本発明のユーザ制御は、ユーザが、IStringオブジェクトの異なるフィールドの間でビューを切り換えて文字列の異なる表現を見ることにより、IStringクラスの利点を導出することを可能にする。現表示フィールド内に記憶された表現に基づいて文字列を認識、理解または発音することができないユーザは、別の表現、たとえば文字列の発音どおりのつづりに切り換えることができる。これが、ある言語で入力された文字列を、その文字列が入力されたときの言語になじみのないユーザが認識、理解または発音することを可能にする。
【００９５】
本発明を完全に機能的なデータ処理システムおよび／またはネットワークに関連して説明したが、当業者が本発明の機構を多様な形態のコンピュータ使用可能な命令媒体の形態で分散させられることを認識し、本発明がその分散を実際に実施するために使用される信号搬送媒体の特定のタイプにかかわらず等しく適用されることを理解することが重要である。コンピュータ使用可能な媒体の例は、不揮発性のハードコード化タイプ媒体、たとえば読み取り専用メモリ（ＲＯＭ）または消去可能な電気的にプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、記録可能なタイプの媒体、たとえばフロッピー・ディスク、ハードディスク・ドライブおよびＣＤーＲＯＭならびに伝送タイプ媒体、たとえばデジタルおよびアナログ通信リンクを含む。
【００９６】
好ましい実施態様を参照しながら本発明を具体的に示し、説明したが、本発明の本質および範囲を逸することなく、形態および詳細における種々の変更を加えてもよいことが当業者によって理解されるであろう。
【図面の簡単な説明】
【図１】  本発明の好ましい実施態様を実現することができるデータ処理システムを示す図である。
【図２】  本発明の好ましい実施態様にしたがって、ユーザ・インタフェースに代替表示言語選択を提供するために使用されるマルチフィールド文字列クラスを示す図である。
【図３】  本発明の好ましい実施態様にしたがって、個々のマルチフィールド文字列クラス・オブジェクトまたはマルチフィールド文字列クラス・オブジェクトの離散的セットの表示および編集を制御するための機構を示す図である。
【図４】  本発明の好ましい実施態様にしたがって、マルチフィールド文字列クラス・オブジェクトの表示を制御する方法を示すユーザ・インタフェース図である。
【図５】  本発明の好ましい実施態様にしたがって、マルチフィールド文字列クラス・オブジェクトの表示を制御する方法を示すユーザ・インタフェース図である。
【図６】  本発明の好ましい実施態様にしたがって、マルチフィールド文字列クラス・オブジェクトの現表示フィールドを選択または編集するためのユーザ・インタフェース制御を示す図である。
【図７】  本発明の好ましい実施態様にしたがって、マルチフィールド文字列クラス・オブジェクトの現表示フィールドを選択または編集するためのユーザ・インタフェース制御を示す図である。
【図８】  本発明の好ましい実施態様にしたがって、マルチフィールド文字列内のフィールドを選択的に表示または編集するためのユーザ制御の動作を示す高レベル流れ図である。
【図９】  多数の意味または発音を有する一つの表意文字を示す図である。
【図１０】  多数の意味または発音を有するもう一つの表意文字を示す図である。
【図１１】  多数の意味または発音を有するさらに別の表意文字を示す図である。
【符号の説明】
２０２  Istringクラス
２０４、２０６、２０８、２１２、２１４、２１６、２１８  フィールド
２１０  データ入力メソッド
２２０  音訳エンジン
２２２  Javaリソース・ファイル
２２４  入力メソッド・エディタ
２２６  メッセージング・メソッド
【図１】
0003841991.tif 000022
【図２】
0003841991.tif 000023
【図３】
0003841991.tif 000024
【図４】
0003841991.tif 000025
【図５】
0003841991.tif 000026
【図６】
0003841991.tif 000027
【図７】
0003841991.tif 000028
【図８】
0003841991.tif 000029
【図９】
0003841991.tif 000030
【図１０】
0003841991.tif 000031
【図１１】
0003841991.tif 000032