(57)【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
入力メソッドエディタファンクションを実行するための命令を含む入力メソッドコードに対するクライアント装置からの要求に応答して、前記クライアント装置に前記入力メソッドコードを供給するステップであって、前記入力メソッドコードは表語文字法を用いる言語に対応する、ステップと、
前記クライアント装置から入力メソッドコンテキストを受信するステップと、
前記入力メソッドコンテキストに基づいて、入力メソッドインスタンスに対するライブラリモデルを識別するステップと、
前記識別された入力メソッドエディタライブラリモデルに対する前記クライアント装置のアクセスを供給するステップと
を具備することを特徴とする方法。
【請求項２】
クライアント装置に入力メソッドコードを供給するステップは、クライアント装置にブラウザスクリプトを供給するステップを具備することを特徴とする請求項１に記載の方法。
【請求項３】
前記クライアント装置から入力メソッドコンテキストを受信するステップは、検索エンジンに対するテキストエントリボックスに入力された前記入力メソッドコンテキストを受信するステップを具備することを特徴とする請求項１に記載の方法。
【請求項４】
前記入力メソッドエディタファンクションは、ウェブブラウザ及びツールバーのうちの１つにおいて起動されることを特徴とする請求項１に記載の方法。
【請求項５】
前記入力メソッドコンテキストに基づいて、入力メソッドインスタンスに対するライブラリモデルを識別するステップは、検索フィールドライブラリモデルを識別するステップを具備することを特徴とする請求項１に記載の方法。
【請求項６】
前記入力メソッドコンテキストに基づいて、入力メソッドインスタンスに対するライブラリモデルを識別するステップは、ドキュメント編集ライブラリモデルを識別するステップを具備することを特徴とする請求項１に記載の方法。
【請求項７】
クライアント装置に入力メソッドコードを供給するステップは、ぴん音入力メソッドエディタを画定する入力メソッドコードをクライアント装置に供給するステップを具備することを特徴とする請求項１に記載の方法。
【請求項８】
前記ライブラリモデルは、１つまたは複数の言語モデルに基づくことを特徴とする請求項１に記載の方法。
【請求項９】
検索ログデータに基づいて、前記１つまたは複数の言語モデルをトレーニングするステップを具備することを特徴とする請求項８に記載の方法。
【請求項１０】
前記検索ログデータは、ウェブ検索クエリを有することを特徴とする請求項９に記載の方法。
【請求項１１】
前記識別された入力メソッドエディタライブラリに対する前記クライアント装置のアクセスを供給するステップは、前記クライアント装置に前記入力メソッドエディタライブラリモデルを供給するステップを具備することを特徴とする請求項１に記載の方法。
【請求項１２】
コンピュータで実施される方法であって、
前記方法は、
入力メソッドエディタコンテキストを識別するデータをクライアント装置から受信するステップと、
前記識別された入力メソッドエディタコンテキストに対して最適化される入力メソッドエディタライブラリを選択するステップと
を具備し、
前記入力メソッドエディタライブラリは、コンポジション入力と文字との関連付けを有し、
前記方法は、
前記選択された入力メソッドエディタライブラリに対する前記クライアント装置のアクセスを供給するステップと、
入力メソッドエディタファンクションを実行するための命令を含む入力メソッドエディタコードに対する前記クライアント装置からの要求に応答して、前記クライアント装置に前記入力メソッドエディタコードを供給するステップであって、前記入力メソッドエディタコードは表語文字法を用いる言語に対応する、ステップと
を具備し、
前記入力メソッドエディタコードは、前記クライアント装置において入力メソッドインスタンスを生成するように構成され、
前記入力メソッドインスタンスは、複数の入力メソッドエディタコンテキストに対するコンポジション入力を処理するとともに、前記選択された入力メソッドエディタライブラリに含まれる前記コンポジション入力と文字との関連付けに従う候補文字を識別するために、前記コンポジション入力を処理するように動作可能であることを特徴とする方法。
【請求項１３】
前記コンポジション入力は、ぴん音入力を有するとともに、
前記文字は、漢字を有することを特徴とする請求項１２に記載の方法。
【請求項１４】
前記クライアント装置に入力メソッドエディタコードを供給するステップは、
クライアント装置にブラウザスクリプトを供給するステップを具備することを特徴とする請求項１２に記載の方法。
【請求項１５】
入力メソッドエディタコンテキストを識別するクライアント装置からデータを受信するステップは、前記クライアント装置においてインスタンスが作成された編集環境の識別を受信するステップを具備することを特徴とする請求項１２に記載の方法。
【請求項１６】
前記選択された入力メソッドエディタライブラリに対する前記クライアント装置のアクセスを供給するステップは、前記選択された入力メソッドエディタライブリを前記クライアント装置に供給するステップを具備することを特徴とする請求項１２に記載の方法。
【請求項１７】
システムであり、
前記システムは、
入力メソッドエディタライブラリを保存するように構成されたデータストアを具備し、
各入力メソッドエディタライブラリは、対応する入力メソッドエディタコンテキストに対して最適化されるとともに、各入力メソッドエディタライブラリは、コンポジション入力と文字との関連付けを有し、
前記システムは、
入力メソッドエディタエンジンを具備し、
前記入力メソッドエディタエンジンは、
入力メソッドエディタコンテキストを識別する入力メソッドエディタコンテキストデータを受信し、前記識別された入力メソッドエディタコンテキストに対して最適化される入力メソッドエディタライブラリを選択し、かつ前記入力メソッドエディタライブラリに対するクライアント装置のアクセスを供給するとともに、
入力メソッドエディタファンクションを実行するための命令を含む入力メソッドエディタコードに対する前記クライアント装置からの要求に応答して、前記クライアント装置に前記入力メソッドエディタコードを供給するように構成され、前記入力メソッドエディタコードは表語文字法を用いる言語に対応し、
前記入力メソッドエディタコードは、前記クライアント装置において入力メソッドエディタインスタンスを生成するように構成され、
前記入力メソッドエディタインスタンスは、複数の入力メソッドエディタコンテキストに対するコンポジション入力を処理し、かつ前記選択された入力メソッドエディタライブラリに含まれるコンポジション入力と文字との関連付けに従う候補文字を識別するために前記コンポジション入力を処理するように動作可能であることを特徴とするシステム。
【請求項１８】
前記コンポジション入力は、ぴん音入力を有するとともに、
前記文字は、漢字を有することを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記入力メソッドエディタコードは、ブラウザスクリプトを有することを特徴とする請求項１７に記載のシステム。
【請求項２０】
前記入力メソッドエディタコードは、ツールバープラグインにおいて使用されるように構成されることを特徴とする請求項１７に記載のシステム。
【請求項２１】
コンピュータで実施される方法であって、
入力メソッドエディタファンクションを実行するための命令を含む入力メソッドエディタコードをクライアント装置において受信するステップであって、前記入力メソッドエディタコードは表語文字法を用いる言語に対応する、ステップと、
複数の入力メソッドエディタコンテキストに対するコンポジション入力を処理するように動作可能である入力メソッドエディタインスタンスを作成するように、入力メソッドエディタコードを実行するステップと、
前記入力メソッドエディタインスタンスが使用されている入力メソッドエディタコンテキストを識別するステップと、
前記入力メソッドエディタコンテキストを識別するデータを入力メソッドエディタサーバに供給するステップと、
前記入力メソッドエディタインスタンスに対する入力メソッドエディタライブラリにアクセスするステップと
を具備し、
前記入力メソッドエディタライブラリは、前記入力メソッドエディタコンテキストに対して最適化されるコンテキストライブラリであることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力メソッドに関するものである。
【背景技術】
【０００２】
本出願は、２００７年４月９日に提出された米国仮特許出願第６０／９２２，７１０号、および２００７年４月１６日に提出された中国特許出願第２００７１０１０１８１６．３号の利益を主張するものであり、それらの全開示は、引用により本明細書に組み込まれる。
【０００３】
１つまたは２つの文字がおよそ１つの単語または意味に対応する表語文字法を使用する言語は、コンピュータのキーボード、または携帯装置のキーパッドのような標準入力装置上のキーよりも多くの文字を有している。たとえば、中国語は、基本となるぴん音要素および５つの声調によって画定される発音を有する何万個もの文字を含んでいる。多くの可能性の中から１つの関連付けへのマッピングは、入力装置上に見られない文字および記号の入力を容易にする、入力メソッドによって実施することができる。したがって、中国語の文字を入力するために、欧米式のキーボードを使用することができる。同様に、入力メソッドは、欧米式キーボードまたは他のいくつかの入力装置を使用して日本語、韓国語、および他の言語のような表意文字を含む他の多くの言語を入力するために、使用することができる。
【０００４】
入力メソッドを実施するために、ユーザは、典型的に、クライアント側のソフトウェアアプリケーションプログラムおよびライブラリをインストールしなければならない。しかし、そのようなインストールは、ユーザの所有ではないコンピュータ装置（例として、公共のコンピュータ装置、または作業環境における２台目のコンピュータなど）において、ユーザが作業をする場合に、不便であることがある。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書は、入力メソッドエディタに関する技術を記載する。いくつかの実施態様において、入力メソッドエディタはクライアント装置に供給されるとともに、入力メソッドコンテキストはクライアント装置から受信される。入力メソッドコンテキストに基づいて、入力メソッドインスタンスに対するライブラリモデルは、選択されるとともに、クライアント装置に供給されるライブラリモデルにアクセスする。ライブラリモデルは、クライアント装置における入力メソッドインスタンスに対する入力メソッド処理を供給するために、使用することができる。
【０００６】
いくつかの実施態様において、入力メソッドエディタコンテキストを識別するデータは、クライアント装置から受信することができる。識別された入力メソッドエディタコンテキストに対して最適化された入力メソッドエディタライブラリを、選択することができる。選択された入力メソッドエディタライブラリは、コンポジション入力と文字との関連付けを含むことができる。選択された入力メソッドエディタライブラリに対するアクセスを、クライアント装置に供給することができる。入力メソッドエディタコードは、クライアント装置に供給することができ、入力メソッドエディタコードは、クライアント装置における入力メソッドエディタインスタンスを生成するように構成されている。入力メソッドエディタインスタンスは、複数の入力メソッドエディタコンテキストに対するコンポジション入力を処理するように動作可能である。入力メソッドエディタインスタンスは、同様に、選択された入力メソッドエディタライブラリに含まれるコンポジション入力と文字との関連付けに従って候補文字を識別するために、コンポジション入力を処理するように動作可能である。
【０００７】
いくつかの実施形態において、システムは、データストアおよび入力メソッドエディタエンジンを含んでいる。データストアは、入力メソッドエディタライブラリを保存するように構成され、各入力メソッドエディタライブラリは、対応する入力メソッドエディタコンテキストに対して最適化されるとともに、各入力メソッドエディタライブラリは、コンポジション入力と文字との関連付けを含んでいる。入力メソッドエディタエンジンは、入力メソッドエディタコンテキストを識別する入力メソッドエディタコンテキストデータを受信し、識別された入力メソッドエディタコンテキストに対して最適化される入力メソッドエディタライブラリを選択するとともに、入力メソッドエディタライブラリに対するクライアント装置のアクセスを供給するように構成されている。入力メソッドエディタは、同様に、クライアント装置に入力メソッドエディタコードを供給するように構成されている。入力メソッドエディタコードは、クライアント装置における入力メソッドエディタインスタンスを生成するように構成されている。入力メソッドエディタインスタンスは、複数の入力メソッドエディタコンテキストに対するコンポジション入力を処理するとともに、選択された入力メソッドエディタライブラリに含まれるコンポジション入力と文字との関連付けに従う候補文字を識別するために、コンポジション入力を処理するように動作可能である。
【０００８】
いくつかの実施態様において、入力メソッドコードは、クライアント装置において受信するとともに、複数の入力メソッドエディタコンテキストにおいて使用することができる入力メソッドエディタインスタンスを作成する（instantiate）ように実行することができる。入力メソッドコンテキストを識別するデータは、入力メソッドエディタサーバに供給することができるとともに、それに応答して、入力メソッドエディタライブラリは、入力メソッドエディタインスタンスによってアクセスすることができる。入力メソッドエディタライブラリは、入力メソッドエディタコンテキストに対して最適化されたコンテキストライブラリである。
【０００９】
本明細書に記載する発明の主題の１つまたは複数の実施形態の詳細は、添付の図面および以下の記載において説明する。発明の主題における他の特徴、態様、および利点は、本明細書、添付の図面、および添付の特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００１０】
【図１】本明細書で説明するシステムおよび方法を実施するために、使用することができる例示的な環境のブロック図である。
【図２】例示的な入力メソッドエディタプロセスのフロー図である。
【図３】別の例示的な入力メソッドエディタプロセスのフロー図である。
【発明を実施するための形態】
【００１１】
様々な図面において同様の参照符号および表記は、同様のエレメントを示す。
【００１２】
図１は、本明細書で説明するシステムおよび方法を実施するために、使用することができる例示的な環境のブロック図である。前記環境は、クライアント装置１００を含み、たとえば、パーソナルコンピュータ装置のようなコンピュータ装置、または携帯電話、移動体通信装置、携帯情報端末（ＰＤＡ）などのような、他の電子装置であることが可能である。本明細書のシステムおよび方法は、クライアント装置に対する、入力メソッドエディタコード、ならびに／または、１つもしくは複数の入力メソッドエディタ言語およびライブラリモデルの動的なダウンロードを容易にする。言語およびライブラリモデルは、たとえば、クライアント装置において検出されたコンテキストに基づいて選択することができる。
【００１３】
例示的な装置１００は、処理装置１０２、第１データストア１０４、第２データストア１０６、入力装置１０８、出力装置１１０、およびネットワークインタフェース１１２を含んでいる。たとえば、データバスおよびマザーボードを含む、バスシステム１１４は、コンポーネント１０２，１０４，１０６，１０８，１１０，および１１２間のデータ通信を確立および制御するために使用することができる。他のシステムアーキテクチャも同様に使用することができる。
【００１４】
処理システム１０２は、たとえば、１つまたは複数のマイクロプロセッサを含むことができる。第１データストア１０４は、たとえば、ダイナミックランダムアクセスメモリのようなランダムアクセスメモリ記憶装置、または他の種類のコンピュータ可読媒体メモリ装置を含むことができる。第２データストア１０６は、たとえば、１つもしくは複数のハードドライブ、フラッシュメモリ、および／もしくはリードオンリメモリ、または他の種類のコンピュータ可読媒体メモリ装置を含むことができる。
【００１５】
例示的な入力装置１０８は、キーボード、マウス、スタイラスなどを含むことができるとともに、例示的な出力装置１１０は、ディスプレイ装置、オーディオ装置などを含むことができる。ネットワークインタフェース１１２は、たとえば、ネットワーク１１６と相互にデータを通信するように動作可能な有線または無線ネットワーク装置を含むことができる。ネットワーク１１６は、１つもしくは複数のローカルエリアネットワーク（ＬＡＮ）、および／またはインターネットのようなワイドエリアネットワーク（ＷＡＮ）を含むことができる。
【００１６】
いくつかの実施態様において、クライアント装置１００は、入力メソッドエディタ（ＩＭＥ）サーバ１１８から入力メソッドエディタ（ＩＭＥ）コード１０１を受信するとともに、データストア１０４のようなデータストアに入力メソッドエディタコード１０１を保存することができる。入力メソッドエディタコード１０１は、実行時、処理装置１０２に入力メソッド編集ファンクションを実行させる命令を、含むことができる。入力メソッドエディタコード１０１は、たとえば、ウェブブラウザ環境において実行されるスクリプト命令（例として、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、またはＥＣＭＡＳｃｒｉｐｔ命令）のような、インタプリタ型命令を具備することができる。たとえば、スタンドアロンアプリケーション、アプレット、プラグインモジュールなど、他の実施態様も同様に使用することができる。
【００１７】
入力メソッドエディタコード１０１の実行は、入力メソッドエディタインスタンス１０３を生成または起動する。装置１００が、たとえば漢字のような、入力文字または記号に対するコンポジション（composition）入力を受信することができる間、入力メソッドエディタインスタンス１０３は、クライアント装置１００における１つまたは複数の入力メソッドの処理を容易にする。たとえば、ユーザは、漢字識別のためのコンポジション入力を入力するために、１つまたは複数の入力装置１０８（例として、欧米式キーボードのようなキーボード、手書き認識エンジンとともに使用されるスタイラスなど）を使用することができる。いくつかの実施例において、漢字は、複数のコンポジション入力から構成することができる。
【００１８】
ＩＭＥコード１０１は、表語文字法を用いる任意の言語に対して動的に供給することができる。たとえば、ＩＭＥコード１０１は、ウェブブラウザ、ツールバー、または他のいくつかの編集環境において、ユーザが起動している入力メソッドエディタファンクションのような、潜在的要求（implicit request）に応答して供給することができる。いくつかの実施態様において、装置１００は、１つまたは複数のぴん音コンポジション入力を受信するとともに、コンポジション入力を漢字に変換することができる。クライアント装置１００は、たとえば、漢字を表すためのキーストロークから受信された、ぴん音の音節または文字のコンポジションを使用することができる。各ぴん音の音節は、たとえば、欧米式キーボードにおける１つまたは複数のキーストロークに対応することができる。ぴん音ＩＭＥ（入力メソッドエディタ）を使用して、ユーザは、漢字の音を表す１つまたは複数のぴん音の音節を含むコンポジション入力を使用することにより、漢字を入力することができる。
【００１９】
いくつかの実施態様において、入力メソッドの処理は、入力メソッドエディタサーバ１１８によって部分的に容易になる。クライアント装置１００は、入力メソッドエディタサーバ１１８に入力メソッドエディタコンテキスト（ＩＭＥＣ）１５０を供給することができ、たとえば、特定のコンテキストを示すデータメッセージを供給する。入力メソッドエディタコンテキスト１０５は、たとえば、入力メソッドエディタインスタンス１０３が使用されているコンテキストを画定することができる。たとえば、第１コンテキスト１０５ａは、エディタコンテキスト（例として、ウェブベースの文書処理環境）であることが可能であり、第２コンテキスト１０５ｂは、検察コンテキスト（例として、検索エンジンに対するテキストエントリボックス）であること可能であるとともに、第３コンテキスト１０５ｃは、メッセージコンテキスト（例として、インスタントメッセージ編集環境、または電子メール編集環境）であることが可能である。たとえば、地図環境、スクリプト環境、チャット環境、または他の種類の編集環境、および／もしくはブラウザセッション中のユーザの入力履歴、ならびに／またはユーザプロファイルのような、他の入力メソッドエディタコンテキストも同様に使用することができる。
【００２０】
入力メソッドエディタサーバ１１８は、たとえば、入力メソッドエディタエンジン１２０、文字データストア１２２、コンポジション入力データストア１２４、およびライブラリ／言語モデルデータストア１２６を含むことができる。他の記憶アーキテクチャも同様に使用することができる。文字データストア１２２は、１つまたは複数の言語モデルで使用される表語文字法の文字を含んでいる。いくつかの実施態様において、文字データストア１２２は、同様に、文字間の関係に関する情報を含んでいる。たとえば、文字データストア１２２は、ある文字に隣接する文字に依存して、その文字に割り当てられるスコアまたは確率値を含むことができる。他のコンテキスト関係データも同様に使用することができる。
【００２１】
コンポジション入力データストア１２４は、コンポジション入力と文字データストア１２２に保存された文字との関連付けを含んでいる。いくつかの実施態様において、コンポジション入力データストア１２４は、文字データストア１２２内の各文字を、入力メソッドエディタエンジン１２０によって使用されるコンポジション入力にリンクすることができる。たとえば、入力メソッドエディタエンジン１２０は、コンポジション入力データストア１２４内の１つまたは複数のコンポジション入力とともに、文字データストア１２２内の１つまたは複数の文字を関連付ける、および／または識別するために、文字データストア１２２およびコンポジション入力データストア１２２内の情報を使用することができる。
【００２２】
ライブラリ／言語モデルデータストア１２６は、言語モデルに対する１つまたは複数のライブラリ（たとえば、漢字に対して画定することができるいくつかのライブラリ）を画定することができる。各ライブラリは、たとえば、文字１２２およびコンポジション入力テーブル１２４の特定の関連付けを画定することができる。いくつかの実施態様において、ライブラリ（たとえば、ライブラリ（ＬＩＢ）１３０）は、入力メソッドエディタコンテキスト１０５に基づいて選択することができる。たとえば、エディタコンテキストである入力メソッドエディタコンテキスト１０５ａに対して、対応する文書処理ライブラリ１３０ａを選択することができる。ライブラリ１３０ａは、たとえば、入力メソッドエディタインスタンス１３０の特定のコンテキストに対して最適化することができ、例として、エディタコンテキスト１０５ａに対するライブラリ１３０ａは、検索コンテキスト１０５ｂに対するライブラリ１３０ｂよりも堅牢であり得る。たとえば、検索クエリは多く場合、完全な文の形式ではないため、検索コンテキスト１０５ｂに対するライブラリは、文字１２２とコンポジション入力テーブルとの関連付けにおける文法規則および共通のストップワードを実装し得ない。しかし、エディタコンテキスト１０５ａを通常起動するエディタは、典型的に完全な文をタイプするために使用されているため、エディタコンテキスト１０５ｂに対するライブラリは、文法規則および共通のストップワードを実装し得る。
【００２３】
選択されたライブラリ（例として、入力メソッドエディタコンテキスト１５０ａに対するライブラリ１３０ａ）は、たとえば、クライアント装置１００に供給することができる。クライアント装置１００におけるライブラリ１３０ａの受信時、入力メソッドエディタインスタンス１０３は、コンポジション入力と、選択された文字に隣接する、またはカーソル位置に隣接する文字とに基づいて、候補の文字を選択することができる。入力メソッドエディタインスタンス１０３は、たとえば、ユーザによって変更または修正される文字の選択、および次のコンポジション入力のような、表語文字法における文字の選択を受信することができる。そのような入力および選択に基づいて、ユーザは、編集セッションにおいて所望の文字を入力することができる。
【００２４】
いくつかの実施態様において、ユーザの選択および入力は、クライアント装置１００から入力メソッドエディタサーバ１１８に供給することができるとともに、入力メソッドエディタエンジン１２０は、選択されたライブラリ１３０に基づいてクライアント装置に対する入力メソッド処理を供給するように構成することができる。
【００２５】
いくつかの実施態様において、ツールバーの統合は、たとえば、ウェブページにＪａｖａ（登録商標）Ｓｃｒｉｐｔのスニペットを追加することによって、テキストボックスを伴うウェブサイトのようなオンラインウェブアプリケーションに対して、入力メソッド編集機能（capability）を提供する。そのような実装は、たとえば、ブラウザ装置において使用することができるとともに、既存のオンラインアプリケーションと統合することができる。ツールバー統合の選択は、入力メソッドエディタインタフェースを生成するＪａｖａ（登録商標）Ｓｃｒｉｐｔのスクリプトをロードさせることができる。入力メソッドエディタインタフェースは、ウェブアプリケーションの全テキスト入力イベントを識別するとともに、ユーザ入力のコンテキストに基づいてライブラリ１３０を要求するように構成することができる。ライブラリ１３０は、入力メソッドエディタサーバ１１８によって動的に供給することができるとともに、たとえば、ウェブ検索クエリおよびキャッシュされたドキュメントを含み得るログデータを使用してトレーニングされる、１つまたは複数の言語モデルに基づいてもよい。したがって、入力メソッドエディタインタフェースによって要求される特定のライブラリ、またはサーバによって選択されたライブラリは、コンテキストに基づいて要求または選択される。他の実施態様も同様に使用することができ、たとえば、入力メソッド編集環境を実装するために、ソフトウェアおよび／またはハードウェアスタックにおける他のレイヤを使用することができる。
【００２６】
いくつかの実施態様において、入力メソッドエディタサーバ１１８は、最初にユーザ入力のコンテキスト（例として、電子メールのためのクエリまたは編集領域）を検出または認識することによって、ライブラリ１３０を適応的に供給することができる。たとえば、検索ボックスに対して、入力メソッドエディタサーバ１１８は、クエリデータによってトレーニングされたライブラリを供給してもよい。電子メールのインタフェースのような、ライティングまたは編集領域に対して、入力メソッドエディタサーバ１１８は、キャッシュされたドキュメントによってトレーニングされたライブラリを供給してもよい。入力メソッドエディタサーバ１１８のライブラリは、周期的にアップデートしてもよい。
【００２７】
図２は、例示的な入力メソッドエディタプロセス２００のフロー図である。前記プロセス２００は、たとえば、図１の環境１００において実施することができる。
【００２８】
プロセス２００は、クライアント装置に入力メソッドコードを供給する（２０２）。たとえば、ＩＭＥサーバ１１８は、クライアント装置１００から入力メソッドエディタコード１０１に対する要求を受信するとともに、それに応答して、入力メソッドエディタコード１０１をクライアント装置１００に供給することができる。
【００２９】
プロセス２００は、クライアント装置から入力メソッドエディタコンテキストを受信する（２０４）。たとえば、ＩＭＥサーバ１１８は、クライアント装置１００のユーザが、検索エンジン入力フィールドにおいてテキストをタイピングする際に、入力メソッドエディタプロセスの起動を試みた場合、クライアント装置１００から入力メソッドコンテキスト（例として、検索コンテキスト１０５ｂ）を受信することができる。
【００３０】
プロセス２００は、入力メソッドコンテキストに基づいて、入力メソッドエディタインスタンスに対するライブラリモデルを識別する（２０６）。たとえば、ＩＭＥエンジン１２０は、入力メソッドコンテキスト１０５ｂに基づいて、入力メソッドエディタインスタンス１０３に対するライブラリモデル（例として、ライブラリモデル１３０ｂ）を識別することができる。一実施態様において、入力メソッドエディタエンジン１２０は、クライアント装置１００に対する入力メソッドエディタ処理を供給することができる。別の実施態様において、ライブラリ１３０は、クライアントシステム１００に供給することができるとともに、入力メソッドエディタインスタンス１０３は、入力メソッドエディタ処理を供給することができる。
【００３１】
図３は、別の例示的な入力メソッドエディタプロセス３００のフロー図である。プロセス３００は、たとえば、図１の環境１００において実施することができる。
【００３２】
プロセス３００は、クライアント装置において入力メソッドコードを受信する（３０２）。たとえば、ＩＭＥサーバ１１８は、クライアント装置１００から入力メソッドエディタコード１０１に対する要求を受信するとともに、それに応答して、入力メソッドエディタコード１０１をクライアント装置１００に供給することができる。クライアント装置１００は、入力メソッドエディタコード１０１を受信することができる。
【００３３】
プロセス３００は、入力メソッドエディタサーバに入力メソッドエディタを供給する（３０４）。たとえば、クライアント装置１００のユーザが、検索エンジン入力フィールドにおいてテキストをタイピングする際に、入力メソッドエディタプロセスを起動するように試みる場合、入力メソッドエディタコンテキスト（例として、入力メソッドエディタコンテキスト１０５ｂ）は、入力メソッドエディタサーバ１１８に送信することができる。
【００３４】
プロセス３００は、入力メソッドエディタコンテキストに基づいて、入力メソッドインスタンスに対するライブラリモデルを受信する（３０６）。たとえば、ＩＭＥエンジン１２０は、入力メソッドコンテキスト１０５ｂに基づいて、入力メソッドエディタインスタンス１０３に対するライブラリモデル（例として、ライブラリモデル１３０ｂ）を識別することができる。ライブラリ１３０は、クライアント１００に供給することができるとともに、入力メソッドエディタ１０３は、入力メソッドエディタ処理を供給することができる。
【００３５】
特定の言語のコンテキストおよび入力メソッドの例において記載したが、本明細書に記載したシステムおよび方法は、表語文字法を用いる任意の言語に対して使用することができる。たとえば、本明細書に記載したシステムおよび方法は、日本語、韓国語、および他の言語のような表意文字を含む他の多くの言語に対して使用することができる。
【００３６】
本明細書に記載した発明の主題および機能的動作の実施形態は、本明細書に記載した構造、およびそれらの構造的等価物、またはそれらの１つもしくは複数の組み合わせを含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて実施することができる。本明細書に記載された発明の主題の実施形態は、１つまたは複数のコンピュータプログラム製品、すなわち、データ処理装置による実行のための、またはその動作を制御するための有形のプログラムキャリア上でエンコードされたコンピュータプログラム命令の１つまたは複数のモジュールとして、実施することができる。有形のプログラムキャリアは、伝播信号またはコンピュータ可読媒体であることが可能である。伝播信号は、コンピュータによる実行のため、適切な受信装置に送信する情報をエンコードするために生成される、人工的に生成された信号（例として、マシン生成の電気的、光学的または電磁気的信号）である。コンピュータ可読媒体は、マシン可読記憶装置、マシン可読記憶基板、メモリ装置、マシン可読伝播信号を生じさせる物の構成、またはそれらの１つもしくは複数の組み合わせであってもよい。
【００３７】
用語「データ処理装置」は、例示として、プログラマブルプロセッサ、コンピュータ、または多重プロセッサもしくはコンピュータを含む、データを処理するための、全ての装置、デバイス、およびマシンを包含する。装置は、ハードウェアに加えて、当該コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの１つもしくは複数の組み合わせを構成するコードを含むことができる。
【００３８】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている）は、コンパイル型もしくはインタプリタ型言語、または宣言型もしくは手続型言語を含む、プログラム言語の任意の形式で記述することができるとともに、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境における使用に適した他のユニットとして含まれる任意の形式で、展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しない。プログラムは、他のプログラムまたはデータ（たとえば、マークアップ言語ドキュメントに保存された１つもしくは複数のスクリプト）を保持するファイルの一部に、当該プログラム専用の単一ファイル、または複数の組織（coordinated）ファイル（たとえば、１つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を保存するファイル）に保存することができる。コンピュータプログラムは、１つのコンピュータ上で、または１つのサイトに位置する、もしくは複数のサイトにわたって分散された多重コンピュータ上で実行されるとともに、通信ネットワークによって相互接続されるように展開することができる。
【００３９】
本明細書に記載したプロセスおよび論理フローは、入力データに対する動作、および出力の生成による機能を実施するように、１つまたは複数のコンピュータプログラムを実行する１つまたは複数のプログラマブルプロセッサによって実施することができる。プロセスおよび論理フローは、同様に、特別な目的の論理回路、たとえば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途集積回路）によって同様に実施することができるとともに、装置は、同様に、それらのものとして実装することができる。
【００４０】
コンピュータプログラムの実行に適したプロセッサは、例示として、一般的および特別な目的のマイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの１つまたは複数のプロセッサを含む。一般的に、プロセッサは、リードオンリメモリ、ランダムアクセスメモリ、またはその両方から命令およびデータを受信する。コンピュータの基本的なエレメントは、命令を実施するプロセッサと、命令およびデータを保存する１つまたは複数のメモリ装置である。一般的に、コンピュータは、同様に、データを保存する１つまたは複数の大容量記憶装置（例として、磁気、光磁気ディスク、または光ディスク）を含む、またはそれらからデータを受信する、それらにデータを送信する、またはその両方のために動作するよう接続されている。しかし、コンピュータは、そのような装置を有する必要はない。さらに、コンピュータは、別の装置、例を挙げると、たとえば、携帯電話、携帯情報端末（ＰＤＡ）、携帯オーディオ、または動画プレイヤ、ゲーム機、全方位測位システム（ＧＰＳ）受信機に組み込むことができる。
【００４１】
コンピュータプログラム命令およびデータの保存に適したコンピュータ可読媒体は、例示として、半導体メモリ装置（たとえば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ装置）、磁気ディスク（たとえば、内蔵ハードディスクまたはリムーバブルディスク）、光磁気ディスク、ならびにＣＤ  ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む、不揮発性メモリ、媒体、およびメモリ装置の全ての形式を含む。プロセッサおよびメモリは、特別な目的の論理回路によって補完する、またはそれに組み込むことができる。
【００４２】
ユーザとの相互作用を提供するために、本明細書に記載した発明の主題の実施形態は、ユーザに対して情報を表示するディスプレイ装置、たとえばＣＲＴ（陰極線管）またはＬＣＤ（液晶ディスプレイ）モニタと、キーボードと、ユーザがコンピュータに入力を供給することができるポインティング装置、たとえばマウスまたはトラックボールとを有するコンピュータ上で実施することができる。ユーザとの相互作用を提供するために、他の種類の装置を同様に使用することができ、たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック（例として、視覚的フィードバック、聴覚的フィードバック、触覚的フィードバック）であることが可能であるとともに、ユーザからの入力は、音響、声、または接触入力を含む任意の形式で受信することができる。
【００４３】
本明細書に記載した発明の主題の実施形態は、たとえばデータサーバのようなバックエンドコンポーネントを含む、またはミドルウェアコンポーネント、たとえばアプリケーションサーバを含む、またはフロントエンドコンポーネント、たとえば、本明細書に記載した発明の主題の実施態様、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの１つもしくは複数の組み合わせを用いてユーザが相互作用することができる、グラフィカルユーザインタフェースもしくはウェブブラウザを有するクライアントコンピュータを含む、コンピューティングシステム内で実施することができる。システムのコンポーネントは、デジタルデータ通信の任意の形式または媒体、たとえば、通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク（ＬＡＮ）と、ワイドエリアネットワーク（ＷＡＮ）、たとえばインターネットとを含む。
【００４４】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般的に互いに遠隔であるとともに、典型的に、通信ネットワークを通して相互作用することができる。クライアントおよびサーバの関係は、各コンピュータ上で動作し、かつ互いにクライアント−サーバの関係を有するコンピュータプログラムによって生じる。
【００４５】
本明細書は、多くの特別な実施態様の詳細を含む一方で、それらは、本発明、または主張されるものの範囲を限定するものとしてではなく、むしろ特定の発明の特別な実施形態を特定し得る特徴の記載として解釈されるべきである。個別の実施形態と関連して本明細書に記載した特定の特徴は、同様に、単一の実施形態の組み合わせにおいて実施することができる。反対に、単一の実施形態に関連して記載した様々な特徴は、同様に、複数の各実施形態において、または適切なサブコンビネーションにおいて実施することができる。さらに、特徴は、特定の組み合わせにおいて実行されるものとして上述し、かつそのように最初に主張したが、主張される組み合わせからの１つまたは複数の特徴は、いくつかのケースにおいて、その組み合わせから削除されるとともに、主張される組み合わせは、サブコンビネーション、またはサブコンビネーションの組み合わせに指向され得る。
【００４６】
同様に、動作を特定の順番によって図面に表した一方で、所望の結果を達成するように、示された特定の順番でもしくは逐次の順番で実施されるそのような動作を、または実施される全ての例示動作を要求するものとして理解されるべきではない。特定の環境において、マルチタスキングおよび並列処理は、有効である。さらに、上述の実施形態における様々なシステムコンポーネントの分離は、全ての実施形態におけるそのよう分離を要求するものとして理解されるべきではないとともに、記載したプログラムコンポーネントおよびシステムは、一般的に、単一のシステム製品に一緒に統合する、または複数のソフトウェア製品にパッケージすることができる。
【００４７】
本明細書に記載した発明の主題における特定の実施形態を記載した。他の実施形態も、添付の特許請求の範囲内である。たとえば、特許請求の範囲に記載した動作は、異なる順番で実施してもなお所望の結果を達成することができる。一例として、所望の結果を達成するために、添付の図面に表したプロセスは、必ずしも示された特定の順番、または逐次の順番を必ずしも要求しない。特定の実施態様において、マルチタスキングおよび並列処理は、有効である。
【符号の説明】
【００４８】
１００  クライアント装置
１０１  入力メソッドエディタコード
１０２  処理装置
１０３  入力メソッドインスタンス
１０４  第１データストア
１０５  入力メソッドコンテキスト
１０５ａ  第１コンテキスト
１０５ｂ  第２コンテキスト
１０５ｃ  第３コンテキスト
１０６  第２データストア
１０８  入力装置
１１０  出力装置
１１２  ネットワークインタフェース
１１４  バスシステム
１１６  ネットワーク
１１８  入力メソッドエディタサーバ
１２０  入力メソッドエディタエンジン
１２２  文字データストア
１２４  コンポジション入力データストア
１２６  ライブラリ／言語モデルデータストア
１３０ａ，１０３ｂ，１３０ｃ  ライブラリ
【図１】
0005794779.tif 000002
【図２】
0005794779.tif 000003
【図３】
0005794779.tif 000004