(57)【特許請求の範囲】
【請求項１】
ユーザにより入力された明瞭に定められない入力シーケンスを明瞭化する明瞭化システムにおいて、
（ａ）複数の入力を具備し、複数の入力のそれぞれは複数の文字、符号に関連し、入力シーケンスはユーザ入力装置の操作により入力が選択される度に生成され、生成された入力シーケンスは選択された入力のシーケンスに対応し、生成された入力シーケンスは各入力に関連する複数の文字、符号のために明瞭に定められないテキスト解釈を有するユーザ入力装置と、
（ｂ）複数のオブジェクトを構成するために使用されるデータを含み、複数のオブジェクトのそれぞれは入力シーケンスおよび相対的な使用頻度に関連し、全てのオブジェクトは複数のノードからなるツリー構造でメモリに記憶され、各ノードは入力シーケンスおよび１以上のオブジェクトに関連し、複数のノードは複数の通路により接続され、複数の通路のそれぞれは親ノードのベース入力シーケンスおよび付加的な入力選択に関連する子ノードとベース入力シーケンスに関連する親ノードとを連結し、子ノードに関連するオブジェクトは、子ノードが連結されている対応する親ノードに関連するオブジェクトに基づいており、かつ、対応する親ノードに関連するオブジェクトを変更するためにメモリ中に予め記憶されたコードを使用して構成され、対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用されるコードは、対応する親ノードに関連するオブジェクトのオブジェクトリストインデックスを特定するコードと、親ノードを子ノードに連結する付加的な入力選択に関連する文字、符号のうちの１つの文字、符号の論理シンボルインデックスを特定するコードとを含んでいるメモリと、
（ｃ）システム出力をユーザに示すディスプレイと、
（ｄ）ユーザ入力装置とメモリとディスプレイとに結合されているプロセッサとを具備し、
プロセッサは、
（ｉ）生成された各入力シーケンスに関連するメモリ中の１以上のオブジェクトから、最高の使用頻度を有する少なくとも１つの候補オブジェクトを識別し、前記候補オブジェクトは、少なくとも１つのワードオブジェクトが、生成された入力シーケンスに関連しているとき、ワードオブジェクトであり、前記候補オブジェクトは、生成された入力シーケンスに関連しているワードオブジェクトがないとき、ワードステムオブジェクトであり、
（ｉｉ）生成された入力シーケンスのテキスト解釈として、生成された各入力シーケンスに関連する少なくとも１つの識別された候補オブジェクトをディスプレイに表示させる出力信号を生成し、
前記メモリツリー構造は冗長親ノードを削除するように構成され、
コードが同じシーケンスで生成されて、同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定し、さらに、子ノードを２つの冗長親ノードのそれぞれに連結させている全ての入力に対して、前記子ノードも冗長であって、冗長親ノードの両者に存在する所定の入力に関連する全てのコードが同一であるときに、ツリーの２つの親ノードは冗長であり、
前記冗長親ノードのうちの１つはメモリ中のツリー構造から削除され、残りの冗長親ノードは任意のコードと融合され、削除された冗長親ノードにのみ存在していた子ノードに連結する明瞭化システム。
【請求項２】
特別な区別マークを含む１以上の文字、符号は、特別な区別マークがない対応した文字、符号が関連する同じ入力に関連する請求項１記載のシステム。
【請求項３】
特別な区別マークを含む１以上の文字、符号は、特別の区別マークのない対応した文字、符号と関連する入力では現れない請求項２記載のシステム。
【請求項４】
ワードステムオブジェクトの使用頻度が、予め定められたファクターだけ、生成された入力シーケンスに関連する任意のワードオブジェクトに関連する最高の使用頻度を超えるとき、かつ生成された入力シーケンスに関連する任意のワードオブジェクトに関連する前記最高の使用頻度が、使用頻度の予め定められたしきい値より低いまたは等しいとき、生成された入力シーケンスのテキスト解釈として表示される最高の使用頻度を有する少なくとも１つの識別された候補オブジェクトは、ワードステムオブジェクトである請求項１記載のシステム。
【請求項５】
生成された入力シーケンスのテキスト解釈として暫定的に表示される、最高の使用頻度を有する少なくとも１つのオブジェクトは、１以上の文字、符号を明瞭に生成することになる任意の入力を入れるとき、生成された入力シーケンスのテキスト解釈として出力されることが確認され、前記１以上の明瞭に定められた文字、符号は前記確認されたテキスト解釈にすぐ続いて出力される請求項１記載のシステム。
【請求項６】
対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用されるコードは、そのコードが子ノードに関連するオブジェクトを生成するコードシーケンスの最終コードであるか否かの仕様をさらに含んでいる請求項１記載のシステム。
【請求項７】
親ノードに連結された子ノードに対応する付加的な入力選択の数およびアイデンティティは、前記子ノードの数およびアイデンティティを示す有効なキービットのフィールドにより親ノードにおいて示される請求項１記載のシステム。
【請求項８】
子ノードに関連するオブジェクトを生成するために使用される１以上のコードの各セットには前記子ノードに対するポインタが直後に続き、１以上のコードの１以上のセットと後続するポインタは、前記子ノードの数およびアイデンティティを示す有効なキービットと同一の順序で親ノード内のメモリに連続して位置付けられている請求項７記載のシステム。
【請求項９】
オブジェクトの減少する使用頻度にしたがってオブジェクトがオブジェクトリスト中で順序付けられるように、子ノードに関連するオブジェクトを生成するコードがメモリ中において順序付けられている請求項１記載のシステム。
【請求項１０】
各入力に関連する文字、符号のインデックスは、メモリのワードオブジェクト中の文字、符号の発生頻度が減少する順序で、文字、符号に連続して割当てられている請求項１記載のシステム。
【請求項１１】
論理シンボルインデックスは、単一の文字、符号、または複数の文字、符号を有するストリングのいずれかに割り当てられている請求項１記載のシステム。
【請求項１２】
対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用されるコードは、オブジェクトタイプの仕様も含んでいる請求項１０記載のシステム。
【請求項１３】
オブジェクトタイプの仕様は、構成されたオブジェクトの品詞を識別する請求項１２記載のシステム。
【請求項１４】
特定されたオブジェクトタイプは、構成されたオブジェクトの大文字化についての情報を含んでいる請求項１２記載のシステム。
【請求項１５】
特定されたオブジェクトタイプは、構成されたオブジェクトに付加されるかもしれない変化語尾および接尾辞についての情報を含んでいる請求項１２記載のシステム。
【請求項１６】
特定されたオブジェクトタイプは、メモリ中のオブジェクトの中から、構成されたオブジェクトを特有に識別するコードを含んでいる請求項１２記載のシステム。
【請求項１７】
特定されたオブジェクトタイプは、構成されたオブジェクトの使用頻度についての情報を含んでいる請求項１２記載のシステム。
【請求項１８】
特定されたオブジェクトタイプは、構成されたオブジェクトが完全なワードであるか否かについての情報を含んでいる請求項１２記載のシステム。
【請求項１９】
各入力に関連する文字、符号のインデックスは、対応する親ノードに関連するオブジェクトにおいて直前に先行する文字、符号に続く文字、符号の発生頻度が減少する順序で連続して文字、符号に割当てられ、対応する親ノードには子ノードに関連するオブジェクトを形成するために文字、符号が付加されている請求項１記載のシステム。
【請求項２０】
コードが同じシーケンスで生成されて、同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定し、さらに、子ノードを２つの冗長親ノードのそれぞれに連結させている全ての入力に対して、前記子ノードも冗長であって、冗長親ノードの両者に存在する所定の入力に関連する全てのコードが同一であるときのみ、ツリーの２つの親ノードは冗長であるとして規定される請求項１記載のシステム。
【請求項２１】
コードが同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定するとき、所定の入力に関連し、かつ、前記冗長親ノードの両者に存在する１以上のコードは、同一であるとして規定される請求項１記載のシステム。
【請求項２２】
対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用される１以上のコードは、子ノードに関連する構成されたオブジェクトに関連するオブジェクトタイプの仕様も含んでおり、
２つのコードが、同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定するとき、および２つのコードのうちのせいぜい１つのコードがオブジェクトタイプを特定するとき、２つのコードは同一であると規定され、
任意のコードと融合され、削除された冗長親ノードにのみ存在していた子ノードに連結する残りの冗長親ノードに存在するコードは、前記オブジェクトタイプの仕様を含んでいる請求項１記載のシステム。
【請求項２３】
特定されたオブジェクトタイプは、ノードを使用するその他の入力シーケンスから、構成されたオブジェクトに対応する入力シーケンスを識別するための情報を含んでいる請求項２２記載のシステム。
【請求項２４】
ユーザにより入力された明瞭に定められない入力シーケンスを明瞭化する明瞭化システムにおいて、
（ａ）複数の入力を有し、複数の入力のそれぞれは複数の文字、符号に関連し、入力シーケンスはユーザ入力装置の操作により入力が選択される度に生成され、生成された入力シーケンスは選択された入力のシーケンスに対応し、生成された入力シーケンスは各入力に関連する複数の文字、符号のために明瞭に定められないテキスト解釈を有するユーザ入力装置と、
（ｂ）複数のオブジェクトを含み、複数のオブジェクトのそれぞれは入力シーケンスに関連し、メモリ中の複数のオブジェクトのそれぞれはさらに使用頻度に関連しているメモリと、
（ｃ）システム出力をユーザに表示するディスプレイと、
（ｄ）ユーザ入力装置とメモリとディスプレイとに結合されているプロセッサとを具備しており、
プロセッサは、
（ｉ）メモリ中の複数のオブジェクトから、生成された各入力シーケンスに関連し、最高の使用頻度を有する少なくとも１つのオブジェクトを識別する識別コンポーネントと、
（ｉｉ）生成された入力シーケンスのテキスト解釈として、生成された各入力シーケンスに関連する少なくとも１つの識別されたオブジェクトを表示し、各入力シーケンスと関連するオブジェクトは使用頻度が減少する順序で表示される出力コンポーネントと、
（ｉｉｉ）明瞭に定められた選択入力の１以上の操作を検出したとき、テキスト入力表示位置に入れるために識別されたオブジェクトのうちの１つを選択するための選択コンポーネントとを具備し、
入力のうち少なくとも１つの入力は複数の句読符号に関連する明瞭に定められない句読入力であり、
プロセッサは、明瞭に定められない句読入力の選択を検出したとき、関連する句読符号のうちの１つを暫定的に出力し、
目的とする句読符号を決定する文脈を設定する次の入力の選択を検出したとき、先に出力された句読符号が目的とする符号であることを決定する文脈を前記次の入力が設定する場合に、先に出力された句読符号を確認し、または、
明瞭に定められない句読入力に関連する複数の句読符号のうちの別のものを出力するために正確な文脈を設定する次の入力の選択を検出したとき、先に出力された句読符号を、次の入力選択により設定される文脈に対する目的とする句読符号に置換する明瞭化システム。
【請求項２５】
明瞭に定められない句読入力はピリオド、ハイフン、アポストロフィに関連する請求項２４記載のシステム。
【請求項２６】
明瞭に定められない句読入力の選択を検出し、前記明瞭に定められない句読入力を現在の生成された入力シーケンスに付加して、完全なワードに対応するメモリ中の任意のオブジェクトに関連しないシーケンスを形成するとき、プロセッサは、関連する句読符号のうちの１つを暫定的に出力し、
１以上のアルファベット文字に関連するが、文字“ｓ”に関連しない明瞭に定められない入力である次の入力の選択を検出したとき、プロセッサは、先に出力された句読符号をハイフンに変更し、明瞭に定められない句読入力の選択の前に、現在の生成された入力シーケンスの暫定的に出力されたテキスト解釈を確認し、前記次の明瞭に定められない入力を含む新しく生成された入力シーケンスを開始し、
文字“ｓ”を含む１以上のアルファベット文字に関連する明瞭に定められない入力である次の入力の選択を検出したとき、プロセッサは、明瞭に定められない句読入力の選択の前に、現在の生成された入力シーケンスの暫定的に出力されたテキスト解釈を確認し、前記次の明瞭に定められない入力を含む新しく生成された入力シーケンスを開始し、先に出力された句読符号をアポストロフィに置換し、前記新しく生成された入力シーケンスのテキスト解釈として文字“ｓ”を暫定的に付加し、１以上のアルファベット文字に関連する明瞭に定められない入力であるさらに別の次の入力の選択を検出したとき、先に出力されたアポストロフィをハイフンに置換し、前記さらに別の次の明瞭に定められない入力が続く文字“ｓ”を含む１以上のアルファベット文字に関連する明瞭に定められない入力を備えた新しく生成された入力シーケンスを開始し、前記ハイフンに続く前記新しく開始された入力シーケンスに関連するメモリ中のオブジェクトを出力し、１以上のアルファベット文字に関連しない次の入力の選択を検出したとき、プロセッサは、先に出力された句読符号を確認する請求項２４記載のシステム。
【請求項２７】
明瞭に定められない句読入力の選択を検出し、前記明瞭に定められない句読入力を現在の生成された入力シーケンスに付加して、メモリ中の任意のオブジェクトに関連しないシーケンスを形成するとき、プロセッサは、明瞭に定められない句読入力の選択を検出する前に、生成された入力シーケンスに関連する最高の使用頻度を有する暫定的に表示されたオブジェクトを受入れ、明瞭に定められない句読入力に関連するデフォルト句読符号を暫定的に出力し、明瞭に定められない句読入力を含む長さ１の新しい入力シーケンスを生成させる請求項２５記載のシステム。
【請求項２８】
生成された入力シーケンス中で明瞭に定められない句読入力の発生を検出したとき、プロセッサは、明瞭に定められた選択入力を複数回操作することにより選択できる別のテキスト解釈のシーケンスを生成し、別のテキスト解釈の前記シーケンスの第１のものは、明瞭に定められない句読入力に関連する句読符号のうちの１つを、明瞭に定められない句読入力に先行して入力された、生成された入力シーケンス中の入力のシーケンスに関連する最高の使用頻度を有するオブジェクトに付加し、その後、明瞭に定められない句読入力に後続して入力された、生成された入力シーケンス中の入力のシーケンスに関連する最高の使用頻度を有するオブジェクトを付加することにより生成され、その後、明瞭に定められない句読入力に先行して入力された、生成された入力シーケンス中の入力のシーケンスに関連する順次より低い使用頻度を有するオブジェクトと、明瞭に定められない句読入力に後続して入力された、生成された入力シーケンス中の入力のシーケンスに関連する順次より低い使用頻度を有するオブジェクトも含むオブジェクトの他の組み合わせが後続し、生成されるオブジェクトは前記２つのオブジェクトの組み合わされた使用頻度ランキングの減少する順序で生成される請求項２４記載のシステム。
【請求項２９】
明瞭に定められた選択入力の第１の選択が後続する、１以上の明瞭に定められない入力のシーケンスの選択を検出したとき、プロセッサは、最高の使用頻度を有するオブジェクトを選択し、前記選択されたオブジェクトとそれに後続する１つのスペースをディスプレイに出力し、明瞭に定められた選択入力の、後続する反復された連続的な各選択を検出したとき、識別されたオブジェクトから次に低い使用頻度を有するオブジェクトを選択し、先に出力された１つのスペースに先行するディスプレイ位置における先に出力されたオブジェクトを、前記連続して選択された各オブジェクトに置換する請求項２４記載のシステム。
【請求項３０】
明瞭に定められない句読入力の選択を検出し、明瞭に定められない句読入力を現在の生成された入力シーケンスに付加して、前記明瞭に定められない句読入力に関連する句読符号で終了し、最高の使用頻度を有するメモリ中の完全なワードオブジェクトに関連するシーケンスを形成するとき、および１以上のアルファベット文字に関連する明瞭に定められない入力である次の入力の選択を検出したとき、プロセッサは、明瞭に定められない句読入力の選択を含む現在の生成された入力シーケンスのテキスト解釈として前記完全なワードオブジェクトの出力を確認し、前記次の明瞭に定められない入力を含む新しく生成された入力シーケンスを開始する請求項２４記載のシステム。
【請求項３１】
明瞭に定められない入力シーケンスを明瞭化する方法において、
（ａ）複数の入力から入力シーケンスを生成し、複数の入力のそれぞれは複数の文字、符号にそれぞれ関連し、生成された入力シーケンスは各入力に関連する複数の文字、符号のために明瞭に定められないテキスト解釈を有し、
（ｂ）複数のオブジェクトを構成するために使用されるデータを記憶し、複数のオブジェクトのそれぞれは入力シーケンスおよび相対的な使用頻度に関連し、全てのオブジェクトは複数のノードからなるツリー構造で記憶され、各ノードは入力シーケンスおよび１以上のオブジェクトに関連し、複数のノードは複数の通路により接続され、複数の通路のそれぞれは親ノードのベース入力シーケンスおよび付加的な入力選択に関連する子ノードとベース入力シーケンスに関連する親ノードとを連結し、子ノードに関連するオブジェクトは、子ノードが連結されている対応する親ノードに関連するオブジェクトに基づいており、かつ、対応する親ノードに関連するオブジェクトを変更するためにメモリ中に予め記憶されたコードを使用して構成され、対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用されるコードは、対応する親ノードに関連するオブジェクトのオブジェクトリストインデックスを特定するコードと、親ノードを子ノードに連結する付加的な入力選択に関連する文字、符号のうちの１つの文字、符号の論理シンボルインデックスを特定するコードとを含んでおり、
（ｃ）生成された各入力シーケンスに関連する１以上のオブジェクトから、最高の使用頻度を有する少なくとも１つの候補オブジェクトを識別し、前記候補オブジェクトは、少なくとも１つのワードオブジェクトが、生成された入力シーケンスに関連しているとき、ワードオブジェクトであり、前記候補オブジェクトは、生成された入力シーケンスに関連しているワードオブジェクトがないとき、ワードステムオブジェクトであり、
（ｄ）生成された入力シーケンスのテキスト解釈として、生成された各入力シーケンスに関連する少なくとも１つの識別された候補オブジェクトを表示し、
前記全てのオブジェクトをツリー構造で記憶することは、冗長親ノードを削除することを含み、
コードが同じシーケンスで生成されて、同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定し、さらに、子ノードを２つの冗長親ノードのそれぞれに連結させている全ての入力に対して、前記子ノードも冗長であって、２つの冗長親ノードの両者に存在する所定の入力に関連する全てのコードが同一であるときに、ツリーの２つの親ノードは冗長であり、
前記冗長親ノードのうちの１つはメモリ中のツリー構造から削除され、残りの冗長親ノードは任意のコードと融合され、削除された冗長親ノードにのみ存在していた子ノードに連結し、
削除された親ノードが子である任意の親ノードからの全てのリンクが残りの冗長親ノードへのリンクとして書き換えられる方法。
【請求項３２】
ワードステムオブジェクトの使用頻度が、予め定められたファクターだけ、生成された入力シーケンスに関連する任意のワードオブジェクトに関連する最高の使用頻度を超えるとき、かつ生成された入力シーケンスに関連する任意のワードオブジェクトに関連する最高の使用頻度が、使用頻度の予め定められたしきい値より低いまたは等しいとき、生成された入力シーケンスのテキスト解釈として表示される最高の使用頻度を有する少なくとも１つの識別された候補オブジェクトは、ワードステムオブジェクトである請求項３１記載の方法。
【請求項３３】
生成された入力シーケンスのテキスト解釈として暫定的に表示される、最高の使用頻度を有する少なくとも１つのオブジェクトは、１以上の文字、符号を明瞭に生成することになる任意の入力を入れるとき、生成された入力シーケンスのテキスト解釈として出力されることが確認され、前記１以上の明瞭に定められた文字、符号は前記確認されたテキスト解釈にすぐ続いて出力される請求項３１記載の方法。
【請求項３４】
対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用されるコードは、そのコードが子ノードに関連するオブジェクトを生成するコードシーケンスの最終コードであるか否かの仕様をさらに含んでいる請求項３１記載の方法。
【請求項３５】
親ノードに連結された子ノードに対応する付加的な入力選択の数およびアイデンティティは、前記子ノードの数およびアイデンティティを示す有効なキービットのフィールドにより親ノードにおいて示される請求項３１記載の方法。
【請求項３６】
子ノードに関連するオブジェクトを生成するために使用される１以上のコードの各セットには前記子ノードに対するポインタが直後に続き、１以上のコードの１以上のセットと後続するポインタは、前記子ノードの数およびアイデンティティを示す有効なキービットと同一の順序で親ノード内のメモリに連続して位置付けられている請求項３５記載の方法。
【請求項３７】
オブジェクトの減少する使用頻度にしたがってオブジェクトがオブジェクトリスト中で順序付けられるように、子ノードに関連するオブジェクトを生成するコードがメモリ中において順序付けられている請求項３１記載の方法。
【請求項３８】
各入力に関連する文字、符号のインデックスは、メモリのワードオブジェクト中の文字、符号の発生頻度が減少する順序で、文字、符号に連続して割当てられている請求項３１記載の方法。
【請求項３９】
論理シンボルインデックスは、単一の文字、符号、または複数の文字、符号を有するストリングのいずれかに割り当てられている３１記載の方法。
【請求項４０】
対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用されるコードは、オブジェクトタイプの仕様も含んでいる請求項３８記載の方法。
【請求項４１】
特定されたオブジェクトタイプは、メモリ中のオブジェクト中から、構成されたオブジェクトを特有に識別するコードを含んでいる請求項４０記載の方法。
【請求項４２】
特定されたオブジェクトタイプは、構成されたオブジェクトの使用頻度についての情報を含んでいる請求項４０記載の方法。
【請求項４３】
特定されたオブジェクトタイプは、構成されたオブジェクトが完全なワードであるか否かについての情報を含んでいる請求項４０記載の方法。
【請求項４４】
各入力に関連する文字、符号のインデックスは、対応する親ノードに関連するオブジェクトにおいて直前に先行する文字、符号に続く文字、符号の発生頻度が減少する順序で連続して文字、符号に割当てられ、対応する親ノードには子ノードに関連するオブジェクトを形成するために文字、符号が付加されている請求項３１記載の方法。
【請求項４５】
コードが同じシーケンスで生成されて、同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定し、さらに、子ノードを２つの冗長親ノードのそれぞれに連結させている全ての入力に対して、前記子ノードも冗長であって、冗長親ノードの両者に存在する所定の入力に関連する全てのコードが同一であるときのみ、ツリーの２つの親ノードは冗長であるとして規定される請求項３１記載の方法。
【請求項４６】
コードが同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定するとき、所定の入力に関連し、かつ、前記冗長親ノードの両者に存在する１以上のコードは、同一であるとして規定される請求項３１記載の方法。
【請求項４７】
対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用される１以上のコードは、子ノードに関連する構成されたオブジェクトに関連するオブジェクトタイプの仕様も含んでおり、
２つのコードが、同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定するとき、および２つのコードのうちのせいぜい１つのコードがオブジェクトタイプを特定するとき、２つのコードは同一であると規定され、
任意のコードと融合され、削除された冗長親ノードにのみ存在していた子ノードに連結する残りの冗長親ノードに存在するコードは、前記オブジェクトタイプの仕様を含んでいる請求項３１記載の方法。
【請求項４８】
特定されたオブジェクトタイプは、ノードを使用するその他の入力シーケンスから、構成されたオブジェクトに対応する入力シーケンスを識別するための情報を含んでいる請求項４７記載の方法。
【請求項４９】
明瞭に定められない入力シーケンスを明瞭化するためのコンピュータの実行可能なコンポーネントを有するコンピュータの読取り可能な媒体において、
（ａ）複数の入力を処理し、複数の入力のそれぞれは複数の文字、符号に関連し、生成された入力シーケンスは各入力に関連する複数の文字、符号のために明瞭に定められないテキスト解釈を有するユーザ入力コンポーネントと、
（ｂ）複数のオブジェクトを構成するために使用されるデータを含んでおり、複数のオブジェクトのそれぞれは入力シーケンスおよび使用頻度に関連し、全てのオブジェクトは複数のノードからなるツリー構造で記憶され、各ノードは入力シーケンスおよび１以上のオブジェクトに関連し、複数のノードは複数の通路により接続され、複数の通路のそれぞれは親ノードのベース入力シーケンスおよび付加的な入力選択に関連する子ノードとベース入力シーケンスに関連する親ノードとを連結し、子ノードに関連するオブジェクトは、子ノードが連結されている対応する親ノードに関連するオブジェクトに基づいており、かつ、対応する親ノードに関連するオブジェクトを変更するためにメモリ中に予め記憶されたコードを使用して構成され、対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用されるコードは、対応する親ノードに関連するオブジェクトのオブジェクトリストインデックスを特定するコードと、親ノードを子ノードに連結する付加的な入力選択に関連する文字、符号のうちの１つの文字、符号の論理シンボルインデックスを特定するコードとを含んでいる記憶コンポーネントと、
（ｃ）生成された各入力シーケンスに関連する１以上のオブジェクトから、最高の使用頻度を有する少なくとも１つの候補オブジェクトを識別し、前記候補オブジェクトは、少なくとも１つのワードオブジェクトが、生成された入力シーケンスに関連しているとき、ワードオブジェクトであり、前記候補オブジェクトは、生成された入力シーケンスに関連しているワードオブジェクトがないとき、ワードステムである識別コンポーネントと、
（ｄ）生成された入力シーケンスのテキスト解釈として、生成された各入力シーケンスに関連する少なくとも１つの識別された候補オブジェクトを表示する出力コンポーネントとを具備し、
前記ツリー構造は冗長親ノードを削除するように構成され、
コードが同じシーケンスで生成されて、同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定し、さらに、子ノードを２つの冗長親ノードのそれぞれに連結させている全ての入力に対して、前記子ノードも冗長であって、２つの冗長親ノードの両者に存在する所定の入力に関連する全てのコードが同一であるときに、ツリーの２つの親ノードは冗長であり、
前記冗長親ノードのうちの１つはメモリ中のツリー構造から削除され、残りの冗長親ノードは任意のコードと融合され、削除された冗長親ノードにのみ存在していた子ノードに連結し、
削除された親ノードが子である任意の親ノードからの全てのリンクが残りの冗長親ノードへのリンクとして書き換えられるコンピュータの読取り可能な媒体。
【請求項５０】
ワードステムオブジェクトの使用頻度が、予め定められたファクターだけ、生成された入力シーケンスに関連する任意のワードオブジェクトに関連する最高の使用頻度を超えるとき、かつ生成された入力シーケンスに関連する任意のワードオブジェクトに関連する前記最高の使用頻度が、使用頻度の予め定められたしきい値より低いまたは等しいとき、生成された入力シーケンスのテキスト解釈として表示される最高の使用頻度を有する少なくとも１つの識別された候補オブジェクトは、ワードステムオブジェクトである請求項４９記載のコンピュータの読取り可能な媒体。
【請求項５１】
生成された入力シーケンスのテキスト解釈として暫定的に表示される、最高の使用頻度を有する少なくとも１つのオブジェクトは、１以上の文字、符号を明瞭に生成することになる任意の入力を入れるとき、生成された入力シーケンスのテキスト解釈として出力されることが確認され、前記１以上の明瞭に定められた文字、符号は前記確認されたテキスト解釈にすぐ続いて出力される請求項４９記載のコンピュータの読取り可能な媒体。
【請求項５２】
対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用されるコードは、そのコードが子ノードに関連するオブジェクトを生成するコードシーケンスの最終コードであるか否かの仕様をさらに含んでいる請求項４９記載のコンピュータの読取り可能な媒体。
【請求項５３】
親ノードに連結された子ノードに対応する付加的な入力選択の数およびアイデンティティは、前記子ノードの数およびアイデンティティを示す有効なキービットのフィールドにより親ノードにおいて示される請求項４９記載のコンピュータの読取り可能な媒体。
【請求項５４】
子ノードに関連するオブジェクトを生成するために使用される１以上のコードの各セットには前記子ノードに対するポインタが直後に続き、１以上のコードの１以上のセットと後続するポインタは、前記子ノードの数およびアイデンティティを示す有効なキービットと同一の順序で親ノード内のメモリに連続して位置付けられている請求項５３記載のコンピュータの読取り可能な媒体。
【請求項５５】
オブジェクトの減少する使用頻度にしたがってオブジェクトがオブジェクトリスト中で順序付けられるように、子ノードに関連するオブジェクトを生成するコードがメモリ中において順序付けられている請求項４９記載のコンピュータの読取り可能な媒体。
【請求項５６】
各入力に関連する文字、符号のインデックスは、メモリのワードオブジェクト中の文字、符号の発生頻度が減少する順序で、文字、符号に連続して割当てられている請求項４９記載のコンピュータの読取り可能な媒体。
【請求項５７】
論理シンボルインデックスは、個々の文字、符号、または複数の文字、符号を有するストリングのいずれかに割当てられている請求項４９記載のコンピュータの読取り可能な媒体。
【請求項５８】
対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用されるコードは、オブジェクトタイプの仕様も含んでいる請求項４９記載のコンピュータの読取り可能な媒体。
【請求項５９】
特定されたオブジェクトタイプは、メモリ中のオブジェクトの中から、構成されたオブジェクトを特有に識別するコードを含んでいる請求項５８記載のコンピュータの読取り可能な媒体。
【請求項６０】
特定されたオブジェクトタイプは、構成されたオブジェクトの使用頻度についての情報を含んでいる請求項５８記載のコンピュータの読取り可能な媒体。
【請求項６１】
特定されたオブジェクトタイプは、構成されたオブジェクトが完全なワードであるか否かについての情報を含んでいる請求項５８記載のコンピュータの読取り可能な媒体。
【請求項６２】
各入力に関連する文字、符号のインデックスは、対応する親ノードに関連するオブジェクトにおいて直前に先行する文字、符号に続く文字、符号の発生頻度が減少する順序で連続して文字、符号に割当てられ、対応する親ノードには子ノードに関連するオブジェクトを形成するために文字、符号が付加されている請求項４９記載のコンピュータの読取り可能な媒体。
【請求項６３】
コードが同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定するとき、所定の入力に関連し、かつ、前記冗長親ノードの両者に存在する１以上のコードは、同一であるとして規定される請求項４９記載のコンピュータの読取り可能な媒体。
【請求項６４】
コードが同じシーケンスで生成されて、同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定し、さらに、子ノードを２つの冗長親ノードのそれぞれに連結させている全ての入力に対して、前記子ノードも冗長であって、冗長親ノードの両者に存在する所定の入力に関連する全てのコードが同一であるときのみ、ツリーの２つの親ノードは冗長であるとして規定される請求項４９記載のコンピュータの読取り可能な媒体。
【請求項６５】
対応する親ノードに関連するオブジェクトを変更することにより子ノードに関連するオブジェクトを構成するために使用される１以上のコードは、子ノードに関連する構成されたオブジェクトに関連するオブジェクトタイプの仕様も含んでおり、
２つのコードが、同じオブジェクトリストインデックスおよび同じ論理シンボルインデックスを特定するとき、および２つのコードのうちのせいぜい１つのコードがオブジェクトタイプを特定するとき、２つのコードは同一であると規定され、
任意のコードと融合され、削除された冗長親ノードにのみ存在していた子ノードに連結する残りの冗長親ノードに存在するコードは、前記オブジェクトタイプの仕様を含んでいる請求項４９記載のコンピュータの読取り可能な媒体。
【請求項６６】
特定されたオブジェクトタイプは、ノードを使用するその他の入力シーケンスから、構成されたオブジェクトに対応する入力シーケンスを識別するための情報を含んでいる請求項６５記載のコンピュータの読取り可能な媒体。
【請求項６７】
ユーザにより入力された明瞭に定められない入力シーケンスを明瞭化する方法において、
（ａ）複数の入力から入力シーケンスを生成し、複数の入力のそれぞれは複数の文字、符号に関連し、生成された入力シーケンスは各入力に関連する複数の文字、符号のために明瞭に定められないテキスト解釈を有し、複数の入力のうち少なくとも１つの入力は複数の句読符号に関連する明瞭に定められない句読入力であり、複数の入力は少なくとも１つの明瞭に定められた入力を含み、入力シーケンスはユーザが明瞭に定められた入力を操作したときに終了され、
（ｂ）複数のオブジェクトを記憶し、複数のオブジェクトのそれぞれは入力シーケンスおよび使用頻度に関連する文字、符号のシーケンスを含み、
（ｃ）複数のオブジェクトから、生成された各入力シーケンスに関連し、最高の使用頻度を有する少なくとも１つのオブジェクトを識別し、
（ｄ）生成された入力シーケンスのテキスト解釈として、生成された各入力シーケンスに関連する最高の使用頻度を有する少なくとも１つの識別されたオブジェクトを表示し、各入力シーケンスに関連するオブジェクトは使用頻度が減少する順序で表示され、
（ｅ）明瞭に定められた選択入力の１以上の選択を検出したとき、生成された入力シーケンスのテキスト解釈として、識別されたオブジェクトの１つを選択することを含み、
（ｆ）明瞭に定められない句読入力を含む入力シーケンスの生成を検出し、
（ｇ）前記明瞭に定められない句読入力の選択を検出したときに、関連する句読符号のうちの１つを暫定的に出力し、
（ｈ）目的とする句読符号を決定する文脈を設定する次の入力の選択を検出したとき、先に出力された句読符号が目的とする符号であることを決定する文脈を前記次の入力が設定する場合に、先に出力された句読符号を確認し、または、
（ｉ）明瞭に定められない句読入力に関連する複数の句読符号のうちの別のものを出力するために正確な文脈を設定する次の入力の選択を検出したとき、先に出力された句読符号を、次の入力により設定される文脈に対する目的とする句読符号に置換することを含む方法。
【請求項６８】
（ａ）明瞭に定められない句読入力の選択を検出し、前記明瞭に定められない句読入力を現在の生成された入力シーケンスに付加して、メモリ中の任意のオブジェクトに関連しないシーケンスを形成するとき、関連する句読符号のうちの１つを暫定的に出力し、
（ｂ）１以上のアルファベット文字に関連するが、文字“ｓ”に関連しない明瞭に定められない入力である次の入力の選択を検出したとき、
（ｉ）先に出力された句読符号をハイフンに変更し、
（ｉｉ）明瞭に定められない句読入力の選択の前に、現在の生成された入力シーケンスの暫定的に出力されたテキスト解釈を確認し、
（ｉｉｉ）前記次の明瞭に定められない入力を含む新しく生成された入力シーケンスを開始し、
（ｃ）文字“ｓ”を含む１以上のアルファベット文字に関連する明瞭に定められない入力である次の入力の選択を検出したとき、
（ｉ）明瞭に定められない句読入力の選択の前に、現在の生成された入力シーケンスの暫定的に出力されたテキスト解釈を確認し、
（ｉｉ）前記次の明瞭に定められない入力を含む新しく生成された入力シーケンスを開始し、
（ｉｉｉ）先に出力された句読符号をアポストロフィに置換し、前記新しく生成された入力シーケンスのテキスト解釈として文字“ｓ”を暫定的に付加し、
（ｄ）１以上のアルファベット文字に関連しない次の入力の選択を検出したとき、先に出力された句読符号を確認することをさらに含む請求項６７記載の方法。
【請求項６９】
明瞭に定められない句読入力の選択を検出し、前記明瞭に定められない句読入力を現在の生成された入力シーケンスに付加して、メモリ中の任意のオブジェクトに関連しないシーケンスを形成するとき、
（ａ）明瞭に定められない句読入力の選択を検出する前に、生成された入力シーケンスに関連する最高の使用頻度を有する暫定的に表示されたオブジェクトを受入れ、
（ｂ）明瞭に定められない句読入力に関連するデフォルト句読符号を暫定的に出力し、
（ｃ）明瞭に定められない句読入力を含む長さ１の新しい入力シーケンスを生成することをさらに含む請求項６７記載の方法。
【請求項７０】
生成された入力シーケンス中で明瞭に定められない句読入力の発生を検出したとき、
（ａ）明瞭に定められた選択入力を複数回操作することにより選択できる別のテキスト解釈のシーケンスを生成し、別のテキスト解釈の前記シーケンスの第１のものは、明瞭に定められない句読入力に関連する句読符号のうちの１つを、明瞭に定められない句読入力に先行して入力された、生成された入力シーケンス中の入力のシーケンスに関連する最高の使用頻度を有するオブジェクトに付加し、その後、明瞭に定められない句読入力に後続して入力された、生成された入力シーケンス中の入力のシーケンスに関連する最高の使用頻度を有するオブジェクトを付加することにより生成され、その後、明瞭に定められない句読入力に先行して入力された、生成された入力シーケンス中の入力のシーケンスに関連する順次より低い使用頻度を有するオブジェクトと、明瞭に定められない句読入力に後続して入力された、生成された入力シーケンス中の入力のシーケンスに関連する順次より低い使用頻度を有するオブジェクトも含むオブジェクトの他の組み合わせが後続し、生成されるオブジェクトは前記２つのオブジェクトの組み合わされた使用頻度ランキングの減少する順序で生成され、
（ｂ）明瞭に定められた選択入力の操作を１回以上検出したとき、これらの別のテキスト解釈のうちの１つを選択することをさらに含む請求項６７記載の方法。
【請求項７１】
（ａ）明瞭に定められた選択入力の第１の選択が後続する、１以上の明瞭に定められない入力のシーケンスの選択を検出したとき、最高の使用頻度を有するオブジェクトを選択し、前記選択されたオブジェクトとそれに後続する１つのスペースをディスプレイに出力し、
（ｂ）明瞭に定められた選択入力の、後続する反復された連続的な各選択を検出したとき、
（ｉ）識別されたオブジェクトから次に低い使用頻度を有するオブジェクトを選択し、
（ｉｉ）先に出力された１つのスペースに先行するディスプレイ位置における先に出力されたオブジェクトを、前記連続して選択された各オブジェクトに置換することをさらに含む請求項６７記載の方法。
【請求項７２】
明瞭に定められない句読入力の選択を検出し、明瞭に定められない句読入力を現在の生成された入力シーケンスに付加して、前記明瞭に定められない句読入力に関連する句読符号で終了し、最高の使用頻度を有するメモリ中の完全なワードオブジェクトに関連するシーケンスを形成するとき、および１以上のアルファベット文字に関連する明瞭に定められない入力である次の入力の選択を検出したとき、
（ａ）明瞭に定められない句読入力の選択を含む現在の生成された入力シーケンスのテキスト解釈として前記完全なワードオブジェクトの出力を確認し、
（ｂ）前記次の明瞭に定められない入力を含む新しく生成された入力シーケンスを開始することをさらに含む請求項６７記載の方法。
【請求項７３】
明瞭に定められない入力シーケンスを明瞭化するためのコンピュータの実行可能なコンポーネントを有するコンピュータの読取り可能な媒体において、
（ａ）複数の入力を処理し、複数の入力のそれぞれは複数の文字、符号に関連し、生成された入力シーケンスは各入力に関連する複数の文字、符号のために明瞭に定められないテキスト解釈を有するユーザ入力コンポーネントと、
（ｂ）複数のオブジェクトを含み、複数のオブジェクトのそれぞれは入力シーケンスおよび使用頻度に関連する記憶コンポーネントと、
（ｃ）複数のオブジェクトから、生成された各入力シーケンスに関連し、最高の使用頻度を有する少なくとも１つのオブジェクトを識別する識別コンポーネントと、
（ｄ）生成された入力シーケンスのテキスト解釈として、生成された各入力シーケンスに関連する少なくとも１つの識別されたオブジェクトを表示し、各入力シーケンスに関連するオブジェクトが使用頻度の減少する順序で表示される出力コンポーネントと、
（ｅ）明瞭に定められた選択入力の１以上の選択を検出したとき、生成された入力シーケンスのテキスト解釈として、識別されたオブジェクトの１つを選択する選択コンポーネントとを具備し、
（ｆ）複数の入力のうちの少なくとも１つの入力は複数の句読符号に関連する明瞭に定められない句読入力であり、
（ｇ）前記明瞭に定められない句読入力の選択を検出したときに、関連する句読符号のうちの１つを暫定的に出力し、
（ｈ）目的とする句読符号を決定する文脈を設定する次の入力の選択を検出したとき、先に出力された句読符号が目的とする符号であることを決定する文脈を前記次の入力が設定する場合に、先に出力された句読符号を確認し、または、
（ｉ）明瞭に定められない句読入力に関連する複数の句読符号のうちの別のものを出力するために正確な文脈を設定する次の入力の選択を検出したとき、先に出力された句読符号を、次の入力により設定される文脈に対する目的とする句読符号に置換するコンピュータの読み取り可能な媒体。
【請求項７４】
（ａ）明瞭に定められない句読入力の選択を検出し、前記明瞭に定められない句読入力を現在の生成された入力シーケンスに付加して、メモリ中の任意のオブジェクトに関連しないシーケンスを形成するとき、出力コンポーネントは関連する句読符号のうちの１つを暫定的に出力し、
（ｂ）１以上のアルファベット文字に関連するが、文字“ｓ”に関連しない明瞭に定められない入力である次の入力の選択を検出したとき、出力コンポーネントは、先に出力された句読符号をハイフンに変更し、明瞭に定められない句読入力の選択の前に、現在の生成された入力シーケンスの暫定的に出力されたテキスト解釈を確認し、前記次の明瞭に定められない入力を含む新しく生成された入力シーケンスを開始し、
（ｃ）文字“ｓ”を含む１以上のアルファベット文字に関連する明瞭に定められない入力である次の入力の選択を検出したとき、出力コンポーネントは、明瞭に定められない句読入力の選択の前に、現在の生成された入力シーケンスの暫定的に出力されたテキスト解釈を確認し、前記次の明瞭に定められない入力を含む新しく生成された入力シーケンスを開始し、先に出力された句読符号をアポストロフィに置換し、前記新しく生成された入力シーケンスのテキスト解釈として文字“ｓ”を暫定的に付加し、入力コンポーネントが、１以上のアルファベット文字に関連する明瞭に定められない入力であるさらに別の次の入力の選択を検出したとき、出力コンポーネントが、先に出力されたアポストロフィをハイフンに置換し、入力コンポーネントが、前記さらに別の次の明瞭に定められない入力が続く文字“ｓ”を含む１以上のアルファベット文字に関連する明瞭に定められない入力を備えた新しく生成された入力シーケンスを開始し、出力コンポーネントが、前記ハイフンに続く前記新しく開始された入力シーケンスに関連する、識別コンポーネントにより識別されたオブジェクトを出力し、
（ｄ）１以上のアルファベット文字に関連しない次の入力の選択を検出したとき、出力コンポーネントは、先に出力された句読符号を確認する請求項７３記載のコンピュータの読取り可能な媒体。
【請求項７５】
明瞭に定められない句読入力の選択を検出し、前記明瞭に定められない句読入力を現在の生成された入力シーケンスに付加して、メモリ中の任意のオブジェクトに関連しないシーケンスを形成するとき、出力コンポーネントは、明瞭に定められない句読入力の選択を検出する前に、生成された入力シーケンスに関連する最高の使用頻度を有する暫定的に表示されたオブジェクトを受入れ、明瞭に定められない句読入力に関連するデフォルト句読符号を暫定的に出力し、明瞭に定められない句読入力を含む長さ１の新しい入力シーケンスを生成させる請求項７３記載のコンピュータの読取り可能な媒体。
【請求項７６】
生成された入力シーケンス中で明瞭に定められない句読入力の発生を検出したとき、
（ａ）出力コンポーネントは、明瞭に定められた選択入力を複数回選択することにより選択できる別のテキスト解釈のシーケンスを生成し、別のテキスト解釈の前記シーケンスの第１のものは、明瞭に定められない句読入力に関連する句読符号の１つを、明瞭に定められない句読入力に先行して入力された、生成された入力シーケンス中の入力のシーケンスに関連する最高の使用頻度を有するオブジェクトに付加し、その後、明瞭に定められない句読入力に後続して入力された、生成された入力シーケンス中の入力のシーケンスに関連する最高の使用頻度を有するオブジェクトを付加することにより生成され、その後、明瞭に定められない句読入力に先行して入力された、生成された入力シーケンス中の入力のシーケンスに関連する順次より低い使用頻度を有するオブジェクトと、明瞭に定められない句読入力に後続して入力された、生成された入力シーケンス中の入力のシーケンスに関連する順次より低い使用頻度を有するオブジェクトも含むオブジェクトの他の組み合わせが後続し、生成されるオブジェクトは前記２つのオブジェクトの組み合わされた使用頻度ランキングの減少する順序で生成され、
（ｂ）選択コンポーネントは、明瞭に定められた選択入力の操作を１回以上検出したとき、これらの別のテキスト解釈のうちの１つを選択する請求項７３記載のコンピュータの読取り可能な媒体。
【請求項７７】
（ａ）明瞭に定められた選択入力の第１の選択が後続する、１以上の明瞭に定められない入力のシーケンスの選択を検出したとき、選択コンポーネントは、最高の使用頻度を有するオブジェクトを選択し、出力コンポーネントは、前記選択されたオブジェクトとそれに後続する１つのスペースをディスプレイに出力し、
（ｂ）明瞭に定められた選択入力の、後続する反復された連続的な各選択を検出したとき、選択コンポーネントは、識別されたオブジェクトから次に低い使用頻度を有するオブジェクトを選択し、出力コンポーネントは、先に出力された１つのスペースに先行するディスプレイ位置における先に出力されたオブジェクトを、前記連続して選択された各オブジェクトに置換する請求項７３記載のコンピュータの読取り可能な媒体。
【請求項７８】
明瞭に定められない句読入力の選択を検出し、明瞭に定められない句読入力を現在の生成された入力シーケンスに付加して、前記明瞭に定められない句読入力に関連する句読符号で終了し、最高の使用頻度を有するメモリ中の完全なワードオブジェクトに関連するシーケンスを形成するとき、および１以上のアルファベット文字に関連する明瞭に定められない入力である次の入力の選択を検出したとき、出力コンポーネントは、明瞭に定められない句読入力の選択を含む現在の生成された入力シーケンスのテキスト解釈として前記完全なワードオブジェクトの出力を確認し、前記次の明瞭に定められない入力を含む新しく生成された入力シーケンスを開始する請求項７３記載のコンピュータの読取り可能な媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本願は1997年９月25日出願の米国特許第60/060,223号明細書の利点をクレームする。米国特許第60/060,223号明細書の主題はここで参照文献とされる。
本発明は減少されたキーボードシステム、特に不明瞭なキーストロークを解決するためにワードレベルの明瞭化を使用する減少されたキーボードシステムに関する。
【従来の技術】
多年にわたって、ポータブルコンピュータは小型化が進みつつある。小型のポータブルコンピュータを製造するための努力において主要なサイズ限定要素はキーボードである。標準的なタイプライターサイズのキーが使用されるならば、ポータブルコンピュータは少なくともキーボードと同程度の大きさでなければならない。小型のキーボードがポータブルコンピュータで使用されているが、小型のキーボードのキーは非常に小さいのでユーザによって容易にまたは迅速に操作されることができないことが発見されている。
ポータブルコンピュータにフルサイズのキーボードを設けることもコンピュータの真のポータブルな使用を妨げる。ほとんどのポータブルコンピュータは、ユーザが両手でタイプできるように平らな作業表面上にコンピュータを配置せずに動作されることができない。ユーザは立ちながら、或いは移動しながらポータブルコンピュータを容易に使用することはできない。パーソナルデジタルアシスタント（ＰＤＡ）と呼ばれる最近の世代の小型のポータブルコンピュータでは、会社はＰＤＡに手書き認識ソフトウェアを設けることによってこの問題を解決しようとしている。ユーザはタッチ感応パネルまたはスクリーンに書込むことによりテキストを直接入力する。この手書きテキストはその後、認識ソフトウェアによってデジタルデータへ変換される。残念ながら、ペンによる印刷または書き込みは通常タイプよりも遅いことに加えて、手書き認識ソフトウェアの正確度および速度は今日まで満足すべきものではない。さらに悪いことに、テキスト入力を必要とする今日のハンドヘルドコンピュータ装置はさらに小さくなっている。最近の双方向ページング、セルラ電話、その他のポータブル無線技術における最近の進歩により、小型でポータブルな双方向メッセージングシステム、特に電子メール（“ｅメール”）の送信および受信の両者が可能なシステムが要望されている。
【発明が解決しようとする課題】
それ故、ユーザがコンピュータを片方の手で保持しながら、小型で動作可能なコンピュータへテキストを他方の手で入力するためのキーボードを開発することが有効である。従来の開発作業はキー数を減少されたキーボードを使用することを考えている。押しボタン式電話のキーパッドレイアウトにより示唆されているように、多数の減少されたキーボードは３×４アレイのキーを使用している。キーアレイの各キーは多数の文字、符号を含んでいる。それ故、各キーストロークは幾つかの文字のうちの１つを示すので、ユーザがキーのシーケンスを入力するとき不明瞭さが存在する。キーストロークのシーケンスの不明瞭さを解決するための幾つかの方法が提案されている。
減少されたキーボードで入力される文字、符号を明瞭に特定するための１つの示唆された方法は、ユーザが各文字を特定するのに２以上のキーストロークを入力することを必要とする。キーストロークは同時に（コーディング）または連続的に（多ストローク仕様）入力されてもよい。コーディングも多ストローク仕様も適切な簡潔性と使用効率を有するキーボードを生成しない。多ストローク仕様は非効率的であり、コーディングは学習と使用が複雑である。
不明瞭なキーストロークシーケンスに対応する正確な符号シーケンスを決定するためのその他の提案された方法は、文献（“Probabilistic Character Disambiguation for Reduced Keyboards Using Small Text Samples ”、Journal of the International Society for Augmentative and Alternative Communication出版、John L. ArmottとMuhammad Y.Javad（以後“Armottの文献”とする））に要約されている。Armott等の文献は、大部分の明瞭化方法が所定のコンテキストの符号の不明瞭さを解決するために関連する言語の符号シーケンスの既知の統計を使用することに留意している。即ち、既存の明瞭化システムは、キーストロークの適切な解釈を決定するため、不明瞭のキーストロークグルーピングがユーザにより入力されるとき、それを統計的に解析する。Armottの文献はまた、幾つかの明瞭化システムが減少されたキーボードからのテキストを復号するためにワードレベルの明瞭化を使用しようとしていることにも留意している。ワードレベルの明瞭化は、ワードの最後を意味する明瞭な符号を受信した後、受信されたキーストロークを辞書中の可能な整合と比較することによりワード全体を明瞭化する。Armottの文献はワードレベルの明瞭化の多数の欠点を述べている。例えば、珍しいワードを識別する限定および辞書にないワードを復号できないことにより、ワードレベルの明瞭化はしばしばワードを正確に復号できない。復号限定のために、ワードレベルの明瞭化は１つの符号当たりに１回のキーストロークの効率で、制限されていない英文テキストをエラーなく復号しない。Armottの文献はそれ故、ワードレベルの明瞭化ではなく符号レベルの明瞭化に集中し、符号レベルの明瞭化が最も有望な明瞭化技術であるように思われることを示している。
ワードレベルの明瞭化に基づく１つの示唆された方法は文献（テキストブックの題名“Principles of Computer Speech ”、I.H.Witten著、Academic Press出版、1982年（以後、“Witten方法”とする））に記載されている。Wittenは電話機のタッチパッドを使用して入力されたテキストから不明瞭さを減少するためのシステムについて説明している。24,500ワード辞書中の約92％のワードでは、キーストロークシーケンスと辞書とを比較するとき、不明瞭さは生じないことをWittenは認識している。しかしながら不明瞭さが生じたとき、不明瞭さをユーザへ示して複数の不明瞭なエントリからユーザに選択を求めるシステムによってこれらは対話式に解決されなければならないことにWittenは留意している。それ故、ユーザは各ワードの最後でシステムの予測に応答しなければならない。このような応答はシステムの効率を遅くし、テキストの所定のセグメントを入力するのに必要なキーストローク数を増加する。
不明瞭なキーストロークシーケンスの明瞭化は継続して挑戦されている問題である。前述したように、テキストのセグメントを入力するのに必要とされるキーストローク数を最少にする適切な解決策は、ポータブルコンピュータで使用するのに許容可能である減少された明瞭化キーボードでは必要な効率を実現できない。ワードレベルの明瞭化における応用に直面した１つの重要な挑戦は、その使用が最も有効である種類のハードウェアプラットフォームでそれを適切に実行することである。前述したように、このような装置は双方向ページャ、セルラ電話、その他のハンドヘルド無線通信装置を含んでいる。これらのシステムは電池付勢であり、結果としてハードウェア設計とリソース使用ではできる限り倹約して設計される。このようなシステムで動作されるように設計されたアプリケーションはプロセッサの帯域幅利用とメモリの必要性との両者を最少にしなければならない。これらの２つの要因は通常、相反して関連される傾向である。ワードレベルの明瞭化システムは機能するために大きなワードデータベースを必要とし、適切なユーザインターフェイスを与えるために入力されたキーストロークに対して迅速に応答しなければならないので、これを使用するために必要な処理時間に対してそれ程悪影響せずに、必要なデータベースを圧縮できることが非常に有効であろう。
ワードレベルの明瞭化の任意のアプリケーションに直面する別の問題は、入力されるキーストロ−クロールについてユーザに十分なフィードバックを与えることである。普通のタイプライターまたはワードプロセッサでは、各キーストロークは入力されるとすぐにユーザに表示されることができる特有の文字、符号を表している。しかしワードレベルの明瞭化では、各キーストロークは多数の文字、符号を表し、キーストロークのシーケンスは多数のワードまたはワードステムに一致するので、これは可能ではない場合が多い。特に、ユーザがスペリングまたはキーストロークエラーをしたとき、ユーザはキーシーケンスの入力が完結し所望のワードが現れないときまでエラーが生じたことを確認できないため問題である。ワードレベルの明瞭化を使用する従来のシステムは、スペース等のワード終端キーとしてシステムにより認識されるキーが選択されるまでフィードバックを与えることができない。さらに、最近の文献はワードレベルの明瞭化を使用することから離れて、文字、符号レベルの明瞭化技術に焦点を当てている。それ故、入力されたキーストロークの不明瞭さを最小にし、またテキストの入力中に生じる不明瞭さをユーザが解決できるような効率を最大にする明瞭化システムを開発することが望まれている。
【課題を解決するための手段】
本発明は、キーストロークの不明瞭さを解決するためにワードレベルの明瞭化を使用する減少されたキーボードを提供する。１実施形態では、システムはタッチ感応式のディスプレイパネルを含んでおり、ここでディスプレイ表面との接触は接触位置に対応してシステムに入力信号を発生する。代わりに、キーボードはフルサイズの機械的なキーで構成されることができる。
１つの好ましい実施形態では、３乃至６の付加的な特別の機能キーと共に、９つのシンボルおよび文字キーが３×３アレイでグループ化されている。複数の文字およびシンボルはキーのうちの幾つかに割当てられ、それによってこれらのキーのキーストローク（以下“データキー”と呼ぶ）は不明瞭である。ユーザはキーストロークシーケンスを入力し、各キーストロークはワードの１文字の入力に対応する。個々のキーストロークは不明瞭であるので、キーストロークシーケンスは同数の文字を有する１以上のワードと潜在的に整合することができる。キーストロークシーケンスは記憶されたワードまたはその他の翻訳に対応するシーケンスと整合するボキャブラリモジュールによって処理される。キーストロークのシーケンスと整合するワードとワードステムは、各キーストロークが受信されるときにディスプレイ上の選択リストでユーザに示される。
本発明の１特徴にしたがって、キーのうちの１つが複数の句読符号に割当てられる。１つの好ましい実施形態では、ピリオド“．”およびハイフン“−”とアポストロフィー“´”はキーのうちの１つに割当てられる。ユーザは、句読符号の所望される点でキーを一度付勢することによりキーの符号のうちの１つをタイプすることができる。複数の句読符号がキーに割当てられるので、キーストロークは不明瞭である。本発明のシステムは、先行および後続するキーストロークから意図している句読符号を決定してこれを自動的に生成する。キーストロークシーケンスの代わりの解釈は選択リスト中のユーザにも与えられることができる。
本発明の別の特徴にしたがって、ワード解釈は減少された使用頻度の順番で示され、最も普通に使用されるワードが最初に示される。選択リストのアイテムは選択キーを１回以上押すことにより選択される。キーストロークはバックスペースキーを押すことにより“取消し”される。
本発明のさらに別の特徴にしたがって、入力したキーストロークシーケンスを限定にするためにユーザは選択キーを押す。選択キーの受信後、明瞭化システムは最も頻繁に使用するワードを選択し、構成されている文章にワードを付加する選択キーは入力されたキーストロークシーケンスを限定するために使用される。別々の明示スペースキーはスペース符号を生成するために使用され、入力されたキーストロークシーケンスを限定する。別の好ましい実施形態では、選択キーは選択されたワードに続いてスペースを生成するので、第２の機能で“オーバーロード”され、即ち、減少されたキーボード明瞭化システムは自動的に適切なスペースをワード間に挿入する。
本発明の別の特徴にしたがって、選択キーはまたユーザに示された選択リストから通常使用されることの少ないワードを選択するためにも使用される。選択リストの上部でユーザに示されるワードが所望のワードではないならば、ユーザは選択キーを再度押し、最も使用頻度の高いワードから次に使用頻度の高いワードへ進み、それから再び使用頻度が３番目のワードへ進む。減少されたキーボード明瞭化システムのこの実施形態は、一度選択すると入力を行うための専用の“実行”または“アクセプト”キーをもたない。所望のワードが一度ユーザにより選択されると、これは自動的に“アクセプト”されて出力され、次のシンボルまたは文字キーストロークを受信したときに構成されるセンテンスに付加される。
本発明の別の特徴にしたがって、キーストロークの明瞭化に使用される言語データベースは、システムが第１のオブジェクトとしてワードまたはワードステムオブジェクトを与えられることを可能にする情報を含んでおり、ワードまたはワードステムオブジェクトは、現時点のキーストロークシーケンスに対応するノードに関する最も使用頻度の高いものではないが、長いワードまたは複数のワードのステムを形成し、その総頻度は現時点のノードに関する最も使用頻度の高いワードよりも大きい。この“ステムプロモーション”特徴は、ユーザが挿入点で表示されるワードを観察できるだけであるスクリーン上に選択リストからの第１のオブジェクトしか実際に表示されることができる限定された表示区域を有するシステムでは特に便利である。結果は、オブジェクトが全体としてキーストロークからキーストロークへそれ程頻繁ではなく変化し、“ジャンプ”が少なく、結果的にインターフェイスを混乱しない。
本発明の別の特徴にしたがって、キーストロークシーケンスの多数の解釈が選択リスト中のユーザへ与えられる。キーストロークシーケンスは１以上のワードを構成するものと解釈され、これらの対応するワードは選択リスト中に表示される。同時に、キーストロークシーケンスは数として解釈され、この数も選択リスト中のアイテムの１つとして表示される。さらにキーストロークシーケンスは、不明瞭性のないスペリング方法を使用して入力されたワード、不完全なワードのステム、システム命令として解釈されることができる。これらの多数の変換符号は、ユーザにより入力された各キーストロークを受信したときユーザに同時に示される。ユーザは選択キーを複数回押すことにより、またはタッチスクリーン上に示された選択リスト中の所望の解釈を直接タッチすることにより代わりの変換符号から選択される。
本発明のさらに別の特徴にしたがって、ワードはツリーデータ構造を使用してボキャブラリーモジュール中に記憶される。特定のキーストロークシーケンスに対応するワードは直接先行するキーストロークシーケンス（即ち最後のキーストロークのない特定のキーストロークシーケンス）に関連する１組のワードおよびワードステムを使用して構成される。この方法によるワードの構成は、ワードステムがツリー構造の上部に一度だけ記憶されこれらから構成された全てのワードにより共有されるので、ボキャブラリーモジュールの記憶スペースを減少する。記憶されたオブジェクトを突止めるために検索は必要とされないので、ツリー構造はまた非常に処理の要件を減少する。ツリーデータ構造中に記憶されるワードとワードステムは頻度と、ユーザに最初に表示されるアイテムを示すその他のランキング情報を含んでもよく、したがってさらに処理要求を減少する。さらに、このツリーデータ構造は、キーストロークシーケンスに関連するオブジェクトの検索に使用されるとき付加的な処理負担を生むことなくデータベースに必要な総サイズをさらに圧縮する特別なアルゴリズムを使用して変更される。変更されたツリー構造のさらに別の特徴は、オブジェクトをキーストロークシーケンスに関連づける一般化されたルールの自動識別である。このようなルールでは、ボキャブラリモジュールは、高い可能性の成功率で、キーストロークシーケンスを、生成に最初は使用されなかったワードとワードステムオブジェクトに関連づけることができる。
【０００２】
好ましい実施形態におけるキーの内部的な、論理的表示は実際のキーのラベルによって表される物理的整列を反映する必要はない。例えば、フランス語のボキャブラリモジュールを表すように構成されたデータベースでは、３つの付加的なシンボル（Ａアクサン・シルコンフレックスＣセディーユＡアクサン・クラーヴ）もアクセントのない符号に関連するキーＡＢＣに関連されることができる。これは特別なアクセント符号を含んでいるワードをユーザがリコールしタイプすることを可能にし、関連するアクセント文字、符号の論理的に関連する物理的なキーを単に付勢することによって１符号に１度のみのキー付勢を行う。
【０００３】
複数の文字のキーへの割当てと、選択キーを使用するワードの限定と、選択リスト中の第１のワードとして最も普通に生じるワードまたはワードステムの表示と、選択リスト中の多数の変換の包含と、次のワードの第１のキーストロークによる選択されたワードのセンテンスへの自動付加と、スペースの自動付加と、重大な処理ペナルティを生じることなく不明瞭をなくすための大きなデータベースの圧縮能力と、アクセントのない文字に関連するキーをタイプすることによる埋め込まれた特別なアクセント符号を有するワードを生成する能力と、キーストロークの文脈に基づいて１つのキーに割当てられた多数の句読符号を自動的に明瞭化する能力とを組合わせた効果は驚異的な結果を生み、即ち多数の言語に対してテキスト材料の代表的な辞書に見られる９９％にわたるワードが非常に高い効率でシステムでタイプされることができる。約９５％のこれらのワードでは、同一数のキーストロークは、一般的なキーボードによるワード入力のように、減少されたキー明瞭化システムによりワードを入力することに必要とされる。ワードがアクセント符号を含むとき、しばしばワード入力は一般的なキーボードよりも少ないキーストロークで実現されることができる。ワードが使用頻度の順序で示されるとき、所望のワードは大抵は第１に示されるワードであり、多くは唯一の示されるワードである。ユーザは、続いて、単に通常の数のキーストロークにより次のワードを入力することができる。高速度のテキスト入力はそれ故、フルサイズキーが少数のキーボードを使用して実現される。
【０００４】
ここで説明する減少されたキーボード明瞭化システムは、システムを含むコンピュータまたはその他の装置のサイズを減少する。キー数の減少は装置がユーザの片手で保持され他方の手で動作されるように構成されることを可能にする。説明したシステムはＰＤＡ、双方向ページャ、またはその他の小型の電子装置で使用されるのに特に有効であり、これは正確な高速度テキスト入力によって得られる利点である。システムは圧縮されたデータベースを使用するとき付加的な処理帯域幅を必要とせずにキーストロークシーケンスの不明瞭さをなくすために大きいデータベースを実効的に圧縮する。システムは、タッチスクリーンベースの装置、またはディスプレイスクリーン区域を限定する限定された数の機械的なキーを有する装置で実行したとき、効率性および簡潔性との両者を与えることができる。
【０００５】
【発明の実施の形態】
本発明の前述の特徴および多数の付随する利点は、添付図面を伴った以下の詳細な説明を参照することによって良好に理解されるときさらに容易に認識されるであろう。
Ｉ．システム構造および基本動作
図１を参照すると、本発明にしたがって構成された減少されたキーボード明瞭化システム50がパームトップポータブルコンピュータ52中に含まれて示されている。ポータブルコンピュータ52はタッチスクリーンディスプレイ53に設けられている減少されたキー数の減少されたキーボード54を含んでいる。この明細書では、用語“キーボード”は、キーの限定された区域を有するタッチスクリーン、ディスクリートな機械キー、薄膜キー等を含む限定区域を有している任意の入力装置を含むものとして広義に限定されている。キーボード54は標準的なＱＷＥＲＴＹキーボードからデータ入力キーの数の減少したキーを有している。１つの好ましい実施形態では、キーボードは４列×４行に配列された１６の標準的なフルサイズのキーを含んでいる。特に、好ましいキーボードは、句読キー63を含んだ３×３アレイに配列された９のデータキー56と、選択キー60とシフトキー62とスペースキー64とを含んだ左側の列の３つのシステムキー58と、先のキーストロークを削除するための上部行59のバックスペースキー65とを含んでいる。上部行のシステムキー59はまたアクセント文字、数、シンボルをそれぞれタイプするモードを入力するためのアクセント、数、シンボルとラベルの付けられた３つのＭＯＤＥキーを含んでいる。
【０００６】
キーボード54の各キー上の文字の好ましい配列が図１に示されている。図１はまた英語用のキーボード54の明瞭に識別できないデータキー63に関係する句読符号の好ましい配列を示している。
【０００７】
減少されたキーボード54のキーストロークにより明瞭化システムへデータが入力される。ユーザがこのキーボードを使用してキーストロークシーケンスを入力するとき、テキストはコンピュータディスプレイ53上に表示される。２つの区域がディスプレイ上に限定され、ユーザへ情報を表示する。上部テキスト区域66はユーザにより入力されるテキストを表示し、テキスト入力および編集用のバッファとして作用する。テキスト区域の下方に位置する選択リスト区域70は、ユーザにより入力されるキーストロークシーケンスに対応するワードのリストまたはその他の変換された符号を提供する。さらに以下詳細に説明するように、選択リスト区域70は入力されたキーストロークの不明瞭さの解決においてユーザを助ける。別の好ましい実施形態では、システムは限定されたディスプレイスペースで装置に設けられ、生成されたテキストの挿入点88で、現時点に選択されたまたは最も可能性の高いワードオブジェクトだけを表示する。
【０００８】
減少されたキーボードの明瞭化システムのハードウェアが図２に示されている。キーボード54とディスプレイ53は適切なインターフェイス回路によりプロセッサ100 に結合される。任意選択的に、スピーカ102 もまたプロセッサに結合される。プロセッサ100 はキーボードから入力を受信し、ディスプレイとスピーカへの全ての出力を制御する。プロセッサ100 はメモリ104 に結合されている。メモリはランダムアクセスメモリ（ＲＡＭ）のような一時記憶媒体と、読取り専用メモリ（ＲＯＭ）、フロッピーディスク、ハードディスクまたはＣＤ−ＲＯＭのような永久記憶媒体との組合わせを含んでいる。メモリ104 はシステム動作を支配する全てのソフトウェアルーチンを含んでいる。好ましくは、メモリはオペレーティングシステム106 、明瞭化ソフトウェア108 、以下さらに詳細に説明する関連するボキャブラリモジュール110 とを含んでいる。任意選択的に、メモリは１以上のアプリケーションプログラム112 、114 を含んでもよい。アプリケーションプログラムの例は、ワードプロセッサ、ソフトウェアディクショナリ、外国語翻訳器を含んでいる。音声合成ソフトウェアもアプリケーションプログラムとして与えられることができ、減少されたキーボード明瞭化システムがコミュニケーション補助として機能することを可能にする。
【０００９】
図１に戻ると、減少されたキーボード明瞭化システム50はユーザがテキストまたはその他のデータを片手だけを使用して迅速に入力することを可能にする。データはデータキー56を使用して入力される。各データキーは多数の文字、数、その他のシンボルによりキー上で表された多数の意味を有する（この説明の目的では、各データキーは例えば右上のデータキーを識別するためのＤＥＦのようにデータキーの中心行中のシンボルにより識別される）。個々のキーは多数の意味を有するので、キーストロークシーケンスはそれらの意味するものに関しては明瞭に規定できない。ユーザがデータを入力したとき、種々のキーストローク解釈がディスプレイ上の多数の区域で表示され、ユーザの不明瞭さを解決する。利用可能な十分なディスプレイ区域を有するシステムでは、入力されたキーストロークの可能な解釈における選択リスト76は選択リスト区域70でユーザへ与えられる。選択リスト中の第１のエントリ78はデフォルト解釈として選択され、挿入点88でテキスト区域66に表示される。好ましい実施形態では、このエントリは選択リスト76と挿入点88との両者で周囲を実線のボックスに囲まれて表示される。フォーマッティングは挿入点オブジェクトと選択リストの間に視覚的関係を設け、このオブジェクトが現時点の選択リストで最も頻度の高いオブジェクトであるために盲目的に選択されたことを示す。代わりに、選択リストが与えられず、明白に選択したならば、デフォルトオブジェクト（選択キーを付勢する前に選択リストに最初に表示されるオブジェクト）または現在選択されたオブジェクトだけが挿入点88で表示される。
【００１０】
入力されたキーストロークの可能な解釈による変換表示の選択リスト76は複数の方法で順番を付けられる。通常の動作モードでは、キーストロークは最初にワードを綴る文字のエントリとして解釈される（以後“ワード解釈”とする）。選択リスト変換表示のエントリ78、79、80はそれ故、入力されたキーストロークシーケンスに対応する最も普通のワードが最初にリストされるような順序のエントリを有する入力されたキーストロークシーケンスに対応するワードである。例えば、図１で示されているように、キーストロークシーケンスＡＢＣ、ＧＨＩ、ＤＥＦはユーザにより入力される。キーが入力されたとき、一致したキーストロークシーケンスを有するワードを突止めるためボキャブラリモジュール検索が同時に行われる。ボキャブラリモジュールから識別されたワードは選択リスト76でユーザに表示される。ワードは使用頻度にしたがって分類され、最も普通に使用されるワードが最初にリストされる。例示的なキーストロークシーケンスを使用して、ワード“ａｇｅ”、“ａｉｄ”、“ｂｉｄ”がキーストロークシーケンスに対応する最も確率の高いワードとしてボキャブラリモジュールから識別された。３つの識別されたワードのうち、“ａｇｅ”が“ａｉｄ”または“ｂｉｄ”よりも使用頻度が高く、選択リストの最初にリストされている。最初のワードはデフォルト解釈としても考慮され、挿入点88でテキストとして臨時的に通知される。選択キー60を押す前に、デフォルト解釈として採用されたこの最初のワードは同一のフォーマッティングを使用して挿入点88と選択リスト76中に表示される。例えば、図１のように、ワードはそれを含むのに丁度十分な大きさである実線で描かれたボックス内にテキストとして現れる。スクリーン上で実際の選択リストを示すのに十分な表示区域のないシステムでは、潜在的に整合するワードリストはメモリに保持され、整合したテキストオブジェクトの相対的な頻度にしたがって分類される。
【００１１】
好ましい実施形態では、所望のワードに対応するキーストロークシーケンスのエントリに続いてユーザは単にスペースキー64を押す。デフォルトワード（選択リストの最初のワード）は挿入点で直ぐに出力され、選択リストがクリアされ、スペースが挿入点88のテキスト区域に直ちに出力される。その代わりに、はっきり不明瞭でない文字、符号を生成する任意のその他の手段（シンボルモードを入力し、シンボルモードの１つの特定の符号に対して明瞭に関連するキーを押す等）は、（スペースではなく）特定の明瞭な符号が挿入点88の出力ワードに添加される点を除いて、同一の結果を実現するように使用されることができる。代わりに、句読キー63は以下説明するようにピリオド、ハイフンまたはアポストロフィを生成するために押される。
【００１２】
選択リストの第１のエントリがキーストロークシーケンスの所望の解釈ではないならば、ユーザは選択キー60を反復的に押すことにより選択リストのアイテムを歩進させる。選択キーを押すと、選択リスト76の第１のエントリがその周囲に破線のボックスが描かれて再表示され、また挿入点88に第１のエントリがその周囲に同一にフォーマットされた破線ボックスが描かれて再表示される。概念上、実線から破線のボックスへの変更は、生成されるテキストに受入れ可能になりつつあり、選択キーをユーザが押すために明確に選択されつつあることを示している。選択リストの第１のエントリがキーストロークシーケンスの所望の解釈であるならば、ユーザはデータキー56を使用して次のワードを入力し続ける。選択キーがスペース生成機能とオーバーロードされたならば、スペースは次のワードのテキストを挿入する前に生成される。そうでなければ次のワードの開始はスペースを介さずに現在のワードの最後に連結される。選択キーを押す都度、選択リストの次のエントリが破線のボックスで囲まれ、エントリのコピーは暫定的に挿入点に示され（先に暫定的に示されたワードの置換）、破線のボックスに囲まれる。暫定的に次のエントリをテキスト区域に示すことは、ユーザが選択リストを参照する必要なくテキスト区域に注意を集中することを可能にする。ユーザの選択で、システムは選択キーの最初に押しを受信するとき、挿入点で暫定的に示されたワードは現在の選択リストのコピーを表示するために（垂直または水平に）拡張することができる。ユーザは選択リストのコピーに表示されるワードを最大数に選択してもよい。代わりに、ユーザは選択キーを最初に付勢する前でさえも選択リストを挿入点で常に表示させるように選択してもよい。明瞭化システムは（明瞭でないデータキー56の付勢または明確に不明瞭でなくなった符号の生成により通知されて）現在選択されたエントリが所望のエントリであることの確認であるとして次のワードの開始を解釈する。それ故、選択されたワードはユーザの選択として挿入点に残り、周囲のボックスは完全に消え、ワードは特別なフォーマットなしに通常のテキストに再表示される。
【００１３】
選択リストの第２のエントリが所望のワードであるならば、ユーザは選択キーを２度押した押した後に次のワードを入力するように進行し、明瞭化システムは通常のテキストとして第２のエントリをテキスト区域に自動的に示す。第２のエントリが所望のワードではないならば、ユーザは選択リストを検査し、次のワードの入力前に所望のエントリを選択するのに所望の回数だけ選択キーを押す。選択リストの最後に到達したとき、選択キーを付加的に押すと、選択リストをスクロールさせ、新しいエントリを選択リストの最後に付加させる。選択リストの上部のエントリはユーザに表示されるリストから除去される。選択キーを多数回押すことにより選択されたエントリは、ユーザがテキスト入力を継続するためにデータキー56をを押したときテキスト区域に自動的に示される。代わりに、所望のワードに対応するキーストロークシーケンスのエントリに続いて、ユーザは単に触ることによって選択リストから所望のワードを選択してもよい。スペースを付加せずに選択されたワードは直ちに挿入点に出力され、選択リストがクリアされる。ユーザはその後、スペースキーを押し、挿入点88のテキスト区域に直ちに出力されるスペースを生成する。
【００１４】
大多数のテキストエントリでは、キーストロークシーケンスはユーザによりワードを形成する文字として意図されるものである。しかしながら、各キーに関連する多数の文字、符号およびシンボルにより、個々のキーストロークとキーストロークシーケンスが幾つかの解釈を有することが可能であることを認識されよう。好ましいキー数の減少されたキーボード明瞭化システムでは、種々の異なる解釈が自動的に決定され、ユーザに表示され、同時にキーストロークシーケンスが解釈され、ワードのリストとしてユーザに表示される。
【００１５】
例えば、キーストロークシーケンスは、ユーザが入力している文字の可能な有効のシーケンスに対応するワードステムに関して解釈される（以後“ステム解釈”）。ワード解釈とは異なって、ワードステムは不完全なワードである。最後のキーストロークの可能な解釈を示すことによって、ユーザはワードステムが正確なキーストロークが入力されることを容易に確認し、またはワードの中間でユーザが注意を逸らすときタイピングを再開することができる。図１で示されているように、キーストロークシーケンスＡＢＣ  ＧＨＩ  ＤＥＦは有効なステム“ｃｈｅ”（ワード“check ”、“cheer ”等になる）と“ａｈｅ”（ワード“ahead ”、“ahem”等になる）を形成するものと解釈される。ステム解釈はそれ故、選択リストのエントリ81、82として与えられる。好ましくはステム解釈は、データキー上の付加的なキーストロークにより各ステムから生成されることができる全ての可能なワードのセットの複合頻度にしたがって分類される。表示されるこのようなエントリの最大数および最少の複合頻度はユーザにより選択され、またはシステムで構成されてもよく、幾つかのステム解釈は表示されない。現在の例では、ステム“ｂｉｆ”（ワード“bifocals”になる）、“ｃｉｄ”（ワード“cider ”になる）と“ｂｉｅ”（ワード“biennial”になる）は示されない。選択リストにステム解釈をリストするとき、ステム解釈が選択リストに示されるワードを重複したならば、ステムは省略される。しかしながら、ステムが省略されたとき、その省略されたステムに対応するワードは、このワードをステムとして有するさらに長いワードが存在することを示すためのシンボルでマークされてもよい。ステム解釈は正確なキーストロークが入力され、所望のワードがエントリされることを確認することによってユーザにフィードバックを与える。
【００１６】
減少されたキーボード明瞭化システムの動作は明瞭化ソフトウェア108 により支配される。システムの１つの好ましい実施形態では、選択キーは“オーバーロード”され、選択リストから所望のオブジェクトを選択し、適切なときに明確なスペース符号を生成する両機能を行う。このようなシステムでは、フラグ“ＯｖｅｒｌｏａｄＳｅｌｅｃｔ”（ブロック164 と 174Ａで参照）がＴＲＵＥに設定される。明確なスペース符号を生成するように限定された別々のスペースキーを有するシステムでは、フラグ“ＯｖｅｒｌｏａｄＳｅｌｅｃｔ”がＦＡＬＳＥに設定される。
【００１７】
図３、４は明瞭でないキーストロークシーケンスを明瞭化するときユーザを助けるための選択リストを生成する明瞭化ソフトウェアの主要なルーチンのフローチャートである。ブロック150 で、システムはキーボード54からのキーストロークの受信を待機する。キーストロークを受信したとき、ブロック 150Ａで、システムは図７で示されている句読キー63に必要な事前処理を行い、これについては以下詳細に説明する。決定ブロック151 で、受信されたキーストロークがモード選択キーであるか否かを決定する試験が行われる。受信されたキーストロークがモード選択キーであるならば、ブロック172 で、システムは現在のシステムモードを示すためのフラグを設定する。決定ブロック173 で、システムモードが変更されたか否かを決定するための試験が行われる。システムモードが変更されたならば、ブロック171 で、キートップは現在のシステムモードを反映するために必要なように書直される。システムモードが変更されていないならば、または変更されておりキートップがそれに続いて書き直されているならば、主要なルーチンはブロック150 へ戻り、別のキーストロークを待機する。
【００１８】
一方、キーストロークがモード選択キーではないことをブロック151 が決定したならば、決定ブロック152 で、受信されたキーストロークが選択キーであるか否かを決定する試験が行われる。キーストロークが選択キーではないならば、決定ブロック153 で、システムが明確な数モードのような特別な明確符号モードであるか否かを決定する試験が行われる。特別な明確符号モードであるならば、決定ブロック166 で、暫定的に選択されたアイテムが選択リスト中に存在するか否かを決定するための試験が行われる。選択リストに存在するならば、ブロック167 でアイテムが受け入れられ、通常のテキストとして出力される。暫定的に受けられたアイテムが選択リストにないならば、または既に受け入れられているならば、ブロック168 で、キーストロークに対応する明確な文字、符号がテキスト区域に出力される。次に、決定ブロック169 で、シンボルモードの場合のように、システムモードが自動的に変更されるべきであるか否かを決定するための試験が行われる。システムモードが自動的に変更されるべきであるならば、ブロック170 と171 へ実行が進行し、ここでシステムモードが先のアクティブモードへ戻り、キートップはそれにしたがって書き直される。実行はその後ブロック150 へ戻る。
【００１９】
ブロック153 で、明確な文字、符号モードがアクティブであるならば、ブロック154 で、キーストロークが記憶されたキーストロークシーケンスへ付加される。ブロック156 で、キーストロークシーケンスに対応するオブジェクトはシステムのボキャブラリモジュールから識別される。ボキャブラリモジュールはキーストロークシーケンスに関連されるオブジェクトのライブラリである。オブジェクトは、受信されたキーストロークシーケンスに基づいて検索される記憶されたデータの一部（piece ）である。例えば、ボキャブラリモジュール内のオブジェクトは、数、文字、ワード、ステム、フレーズ、またはシステム機能およびマクロを含んでもよい。これらの各オブジェクトを以下の表で簡単に説明する。
【００２０】
オブジェクト                対応するデータ
数              数、例えば２桁シーケンス“42”等の単一のキーストロークに対応する各桁。
文字            例えば３つの文字シーケンス“ｓｔｒ”のようにキーストローク対に対応する文字または文字のシーケンスである。各キーストローク対は個々の文字を入力する２ストロークの特定方法を使用して明瞭化に使用される。
ワード          ４つの文字ワード“done”等の１つまたは多数のキーストロークに対応するワード。
ステム          例えばワード“albeit”のステムとしての“albe”等、ワードを形成する長い文字シーケンスの有効部分を表した文字シーケンス。
フレーズ        例えば“To Whom it May Concern”等の単一または多数回のキーストロークに対応する使用者限定またはシステム限定のフレーズである。
システムマクロ  例えば現在のテキスト区域をクリアするための＜ｃｌｅａｒ＞等、システムまたはユーザ限定機能を説明したワードおよび関連するコードである。記述ワードに加えて、ボキャブラリモジュールでは、システムマクロオブジェクトは特定の機能を実行するのに必要な実行可能なコードに関連される。
好ましいボキャブラリオブジェクトについて前述したが、その他のオブジェクトが考慮されてもよいことが認識されよう。例えば、グラフィックオブジェクトが記憶されたグラフィックイメージに関連され、またはスピーチオブジェクトが記憶されたスピーチのセグメントに関連されてもよい。普通のスペリングミスしたワードのキーストロークシーケンスおよびタイピングエラーを正確なワードのスペリングに連結するスペリングオブジェクトが考慮されてもよい。例えば文字シーケンス“ｉｅ”または“ｅｉ”を含むワードは、これらの文字に対するキーストロークが適切なシーケンスと偶然的に反対であってもワードのリスト中に現れる。処理を簡単にするために、各ボキャブラリモジュールは類似のオブジェクトを含むことが好ましい。しかしながら、種々のオブジェクトがボキャブラリモジュール内で混合されてもよいことが認識されよう。
【００２１】
１つのキー540 の代表図が図１０で示されている。好ましい実施形態におけるキーの内部の論理表示は物理的整列を反映する必要はない。例えば541 はフランス語のボキャブラリモジュールに関連するキーの好ましい論理的記述である。３つの付加的な符号542 （Ａアクサン・シルコンフレックスＣセディーユＡアクサン・クラーヴ）はフランス語のアルファベットで必要とされている。またシンボルは好ましくはフランス語の語彙で使用頻度が減少する順序で543 でインデックスされる。拡張により、図１１はフランス語のワードのキー押しの明瞭化に使用するための論理的シンボルのインデックスをキーインデックスに関連づけた好ましい表である。
【００２２】
ワードオブジェクトボキャブラリモジュール110 の代表図が、図１４に示されている。ツリーデータ構造は対応するキーストロークシーケンスに基づいてボキャブラリモジュールでオブジェクトを組織するために使用される。図１４で示されているように、ボキャブラリモジュールツリーの各ノードＮ１，Ｎ２，…Ｎ９は特定のキーストロークシーケンスを表す。ツリーのノードは通路Ｐ１，Ｐ２，…Ｐ９により接続されている。明瞭化システムの好ましい実施形態には９の明瞭にされないデータキーが存在し、ボキャブラリモジュールツリーの各親ノードは９の子ノードに接続されることができる。通路により接続されるノードは有効なキーストロークシーケンスを示し、通路が存在しないノードは無効なキーストロークシーケンス、即ち任意の記憶されたワードに対応しないシーケンスを示している。
【００２３】
ボキャブラリモジュールツリーは受信されたキーストロークシーケンスに基づいてトラバースされる。例えばルートノード111 から最初のデータキーを押すと、ルートノード111 内から取出され評価される最初のキーに関するデータが生じ、その後、ノードＮ１への通路Ｐ１が横断される。最初のデータキーを押した後、９番目のデータキーを押すと、ノードＮ１から取出され評価される９番目のキーに関するデータが生じ、その後、ノードＮ19への通路Ｐ19が横断される。以下さらに詳細に説明するように、各ノードはキーストロークシーケンスに対応するオブジェクト数に関連される。各キーが受信され、対応するノードが処理されたとき、キーストロークシーケンスに対応するオブジェクトのオブジェクトリストが生成される。各ボキャブラリモジュールからのオブジェクトリストは選択リスト76を生成するために明瞭化システムの主要なルーチンにより使用される。
【００２４】
図１２のａは各ノードに関係する好ましいデータ構造400 のブロック図である。データ構造は、ボキャブラリモジュールツリー中の各親ノードを子ノードに連結する情報を含んでいる、データ構造はまたノードにより表される特定のキーストロークシーケンスに関連したオブジェクトを識別するための情報（命令）を含んでいる。
【００２５】
ノードデータ構造400 の第１のフィールドは、有効なキービットフィールド402 であり、これは親ノードに接続されている子ノードの数とアイデンティティを示し、その９の可能なキーはノードにより表される特定のキーストロークに関連したオブジェクトを識別するための情報（命令）に関係する。好ましい実施形態には９のデータキーが存在するから、最大で９個の子ノードが任意の親ノードに接続されることができ、それ故、子ノードの存在または不在を示すために９の有効なキービットが有効なキービットフィールドに設けられている。各有効なキービットは、ボキャブラリモジュール中のそれぞれの子ノードデータ構造に対するポインタを含んでいるポインタフィールド 404ａ， 404ｂ，… 404ｎに関連される。子ノードは、子ノードに関係するキーストロークが親ノードに関係するキーストロークシーケンスの有効な継続である場合のみ存在するので、ポインタフィールドの数は各ノードで変化する。例えば、有効なキービットフィールド402 は、可能な９のキーストロークのうちの６つだけが有効な子ノードになることを示している。６つのみの有効な通路が存在するので、６つのみのポインタフィールドが親ノードに対するデータ構造に含まれる。有効なキービットフィールド402 はノードデータ構造内に含まれるポインタフィールドのアイデンティティを確認するために使用される。キーストロークが有効な子ノードにならないならば、ボキャブラリモジュールを記憶するのに必要とされるメモリスペース量を維持するために関連するポインタフィールドはノードデータ構造から省略される。
【００２６】
各ノードとの関連は、ノードにより表されるキーストロークシーケンスに対応するオブジェクトの数である。各オブジェクトは、ノードデータ構造に含まれる有効なキービットフィールド402 のビットパターンにより示されるような特定の有効なキーに取付けられたパケット408 の命令406 により示される。
【００２７】
各パケット406 の各命令は各ノードにより表されるキーストロークシーケンスに対応するオブジェクトのうちの１つを記述する。オブジェクトの記述は２つのオブジェクトリストの維持を必要とする。図１５はボキャブラリモジュールツリー中の親および子からの明瞭化ソフトウェアプロセスによってダイナミックに生成された代表的なオブジェクトリストを示している。オブジェクトリスト430 は２つのキーストロークを表しているノードに関連するオブジェクト１−Ｎ1 を含んだオブジェクトリストである。オブジェクトリスト440 は３つのキーストロークを表したノードに関連するオブジェクト１−Ｎ2 を含んだオブジェクトリストである。各オブジェクトリストは各ノードに関連された全てのオブジェクトのリストを含んでいる。オブジェクトリスト430 は図１のキーボードからのキーストロークシーケンスＡＢＣ  ＡＢＣを表す親ノードに関連される。オブジェクトリスト440 はキーストロークシーケンスＡＢＣ  ＡＢＣ  ＴＵＶを表す子ノードと関連される。オブジェクトリストのサイズは各ノードに関連する実際のオブジェクト数を考慮するように変化されることが認識されよう。
【００２８】
子ノードに関連する各オブジェクトは親ノード用に構成されたオブジェクトへ文字シーケンスを付加することにより構成される。図１２のａの命令パケット406 はそれ故、図１２のｂのＯＢＪＥＣＴ−ＬＩＳＴ−ＩＮＤＥＸフィールド556を有する命令558 を含んでおり、これは親ノードオブジェクトリストから、子ノードオブジェクトリストの構成に使用されるオブジェクトを識別する。例えば図１５を参照して、古いオブジェクトリスト430 の第１のオブジェクト“ｂａ”は新しいオブジェクトリスト440 で第２のオブジェクト“ｂａｔ”を構成するために使用される。先のオブジェクト識別子フィールドＯＢＪＥＣＴ−ＬＩＳＴ−ＩＮＤＥＸフィールド556 はそれ故、新しいオブジェクトの構成に使用される古いオブジェクトを識別するため古いオブジェクトリストのエントリに対してリンクを設ける。
【００２９】
命令558 はまた新しいオブジェクトを構成するために、識別されたオブジェクトに付加するためのシンボルを示すためＬＯＧＩＣＡＬ−ＳＹＭＢＯＬ−ＩＮＤＥＸフィールド555 を含んでいる。ＬＯＧＩＣＡＬ−ＳＹＭＢＯＬ−ＩＮＤＥＸフィールドは、それ故、ノードのキーシーケンスの最後のキーからの文字を特定し、これは新しいオブジェクトを構成するように添付される。文字は図１１で示されるような表により特定され、ＬＯＧＩＣＡＬ−ＳＹＭＢＯＬ−ＩＮＤＥＸフィールドは表550 の第１の行の論理シンボルインデックス552 に対応し、特定化されたキーが現れる行は表の第１の列の所定のキーインデックスにより識別される。例えば、図１５を参照すると、新しいオブジェクトリスト440 の第１のオブジェクト“ＣＡＴ”は古いオブジェクトリスト430 の第２のオブジェクト“ＣＡ”を使用しＴを識別するためにさらにキーストロークを行うことにより構成される。図１１の論理シンボルインデックス表では、“Ｔ”はＴＵＶキー上の第１の論理的な文字であり、それ故、オブジェクト“ＣＡＴ”を生成した命令のＬＯＧＩＣＡＬ−ＳＹＭＢＯＬ−ＩＮＤＥＸフィールドは表中の第１の文字を示すため１に設定される。この方法によるオブジェクトのエンコードは、各ノードに関係する既知のキーシーケンスと、文字とキーの既知の関連を使用し、各ボキャブラリモジュールに必要な記憶スペース量を大きく減少させる。
【００３０】
ボキャブラリエンコード技術はまたサーチせずにボキャブラリモジュールエントリへのアクセスを可能にする。各新しい有効なキーストロークを受信したとき、システムは古いオブジェクトリストから新しいオブジェクトリストを構成するように現在のノードにおいてキーに関する命令を実行し、それに続いて適切な子ノードへ１つのポインタを与える。また、ボキャブラリモジュールにすべてのオブジェクトを記憶するのではなく、論理的・シンボル・インデックスフィールドを使用して、古い解釈へ付加するために新しいオブジェクトが限定される。したがってボキャブラリモジュール中の複数のオブジェクトを共有するワードステムは一度だけ記憶され、そこから得られる全てのオブジェクトを生成するために使用される。説明した記憶方法は子ノードのオブジェクトリストを構成するためボキャブラリモジュールツリーの親ノードからオブジェクトリストを維持することを必要とする。
【００３１】
図１１で示されているような論理シンボルインデックス表のエントリは１つの文字である必要はなく、任意のシーケンスが１つのエントリを占めてもよい。例えばＡＳＣＩＩストリング“ｔｌｉｋｅ”は、ワード“ｃａｔｌｉｋｅ”を形成するため古いオブジェクトリストからの第２のオブジェクト“ｃａ”に付加される。この方法では、入力されたキーストロークシーケンスの長さは必ずしも関連するオブジェクトの長さに直接対応する必要はない。シンボルインデックス表中のエントリに記憶されたＡＳＣＩＩシーケンスは、ボキャブラリオブジェクトが任意のキーシーケンスにより識別されること、即ちボキャブラリモジュールツリー内の任意の位置に記憶されることを可能にする。
【００３２】
任意のキーストロークシーケンスを有するオブジェクトを記憶する能力は、システムの省略および短縮処理を高速化することに使用される。省略および短縮は句読点を無視して、純粋なアルファベット内容に対応するキーストロークシーケンスにより識別することができる。その結果、省略および短縮は句読点を入力せずにユーザにより容易にアクセスされ、キーストロークを著しく省くことができる。例えば、ユーザが“ｎ”と“ｔ”との間にアポストロフィをタイプせずに“ｄｉｄ´ｔ”のキーストロークシーケンスを入力することができる。キーストロークシーケンス“ｄｉｄｔ”に対応するボキャブラリモジュール中の命令は、表中の１つのシンボルとして“ｎ”と“ｔ”との間にアポストロフィを有するＡＳＣＩＩシーケンスを参照する。それ故、ユーザが句読マークを入力する必要なく、明瞭化システムは正確なワード“ｄｉｄ´ｔ”をユーザに自動的に表示する。明瞭化システムは、特有の文字を有する外国語のワード（ＴＵＶキー上の単一のキーストロークとして入力される“Ｕのウムラウト”等）を適切に表示するのに同一の表を使用する。大文字使用も類似の方法で処理されてもよい。常に全て大文字で使用されるべきワードと、頭文字が大文字のワード、または中間部分の大文字のワードは大文字を示すキーストロークを省いたキーストロークシーケンスに関連され、ユーザがこのような大文字を入力する必要をなくす。オブジェクトタイプのフィールドはまた、構成されるオブジェクトについての付加的な情報を特定するように各命令558 に含まれてもよい。オブジェクトタイプのフィールドは、生成されたオブジェクトがワード、ワードステムまたは任意のその他のオブジェクトであるかを特定するためのコードを含んでもよい。それ故、オブジェクトタイプのフィールドは、所定のボキャブラリモジュール内で異なるタイプのオブジェクトが混合されることを可能にする。さらに、オブジェクトタイプのフィールドはまたワードの品詞に関する情報と、オブジェクトがどのように大文字使用されるかについての情報、または種々の語形変化および末尾を構成するために必要な情報を含んでもよい。品詞情報を有するボキャブラリモジュールを使用する減少されたキーボード明瞭化システムは、統語（シンタックス）解析を実行して明瞭化プロセスを改良するための付加的な情報を使用してもよい。オブジェクトタイプのフィールドはまた圧縮された形態のテキストの伝送を可能にするための特定のコードを含んでもよい。特定のコードは入力されたキーストロークシーケンスまたは関連する明瞭化符号を送信する代わりに、遠隔局へ送信される。
【００３３】
好ましいボキャブラリモジュールツリーデータ構造の主要な特徴のうちの１つは、各ノードに関係するオブジェクトが使用頻度にしたがってノードデータ構造400 に記憶されることである。即ち、パケット406 の第１の命令により構成されるオブジェクトは、406 の（存在するならば）第２の命令により構成されるオブジェクトよりも高い使用頻度を有し、この第２の命令により構成されるオブジェクトは、（存在するならば）第３の命令により構成されるオブジェクトよりも高い使用頻度を有する。この方法で、オブジェクトは自動的にオブジェクトリストに位置され、それによってこれらは使用頻度が減少するように分類される。この説明の目的で、ワードオブジェクトの使用頻度とは、代表的な使用コーパス（集積されたもの）内の所定のワードを使用する確率を言い、これは各ワードがコーパスで生じる回数に比例する。ワードステムオブジェクトの場合、使用頻度は同一ステムを共有する全てのワードの頻度を合計することによって決定される。
【００３４】
各ノードにおける使用頻度またはその他のランク情報の記憶は、システムが使用中であるとき各オブジェクトのランクを決定し分類する必要をなくす。記憶されたオブジェクトは非常に多数の長いワードに共通する共有ステムを含んでいる可能性があるので、これはワードオブジェクトボキャブラリでは重要な関係（implication ）である。これらのステムの相対的なランクのダイナミックな決定は、子ノードのツリー全体を横断し、各ステムについての情報を累積し、ポータブルコンピュータ装置の重要な処理オーバーヘッドを付加することを必要とする。したがって、前もってこの情報を決定し、これをボキャブラリデータに記憶することは、処理オーバーヘッドを減少する。さらに、使用頻度またはランクがノードのオブジェクト406 の順番を定めることにより暗黙的に表されるとき、付加的な記憶スペースがこの情報に対して必要とされる。
【００３５】
好ましくはオブジェクトは使用頻度にしたがった順序でノードデータ構造400内に記憶されるが、使用頻度のフィールドは各命令にも関連されることが認識されよう。使用頻度のフィールドは、関連するオブジェクトの使用頻度に対応する代表的な数を含んでいる。異なるオブジェクト間の使用頻度は、各オブジェクトの使用頻度のフィールドを比較することによって決定される。使用頻度のフィールドと各オブジェクトパケットとを関連づける後者の構成を使用する利点は、使用頻度のフィールドが明瞭化システムにより変更されることである。例えば、システムは、ユーザが代表的なテキストエントリ中にボキャブラリモジュール内のあるオブジェクトを使用した頻度を反映するために使用頻度のフィールドを変更する。
【００３６】
図３および４に戻ると、ブロック156 で、受信されたキーストロークシーケンスに対応するこれらのオブジェクトは各ボキャブラリモジュールで識別される。図１６は特定のボキャブラリモジュールの対応するオブジェクトを識別するように、受信されたキーストロークシーケンスを解析するためのサブルーチン600 のフローチャートである。サブルーチン600 は特定のキーストロークシーケンスのオブジェクトリストを構成する、ブロック602 は新しいオブジェクトリストをクリアする。ブロック604 はルートノード111 においてツリー110 の横断を開始する。ブロック604 は最初のキー押しを行う。ブロック 608乃至612 は全ての有効なキー押しを処理するためループを形成する。ブロック608 は図１７のサブルーチン620 を呼ぶ。決定ブロック610 は全ての有効なキー押しが処理されたか否かを決定する。処理されていないキー押しがあるならば、ブロック612 は次の有効なキー押しに進行する。全てのキー押しが処理されているならば、ブロック614は完了したオブジェクトリストに戻る。主ルーチンが新しいキーストロークシーケンスによりサブルーチン600 を反復的に呼ぶならば、最後のキーよりも１つ多いキーを有するキーと、最後のキーを除く全てのキーは先の実行と同一であり、サブルーチン620 が最も最近のキー押しのみを処理するように直接呼出されるならば、初期化ブロック602 および604 はバイパスされてもよいことが認識されよう。
【００３７】
図１７はサブルーチン600 から呼ばれるサブルーチン620 のフローチャートである。図３および４で示されている主ルーチンでは、キーストロークはブロック150 でシステムにより検出された。キーストロークに対応する子に対して有効な通路が存在するならば、新しいキーストロークの受信はボキャブラリモジュールツリーの下流方向の進行を生じさせる。図１７のブロック621 で、ノード400 のデータ構造の有効なキービットフィールドはそれ故、有効な構造およびポインタが受信されたキーストロークに対応するか否かを決定するために検査される。決定ブロック622 で、命令406 および 404ａのようなポインタフィールドからなる有効なパケット408 が入力されたキーストロークに対応して存在するか否かを決定するために有効なキービットフィールドを試験する。キーストロークに対応する有効なパケットが存在しないならば、受信されたキーストロークがボキャブラリモジュール内のオブジェクトに対応しない無効なキーストロークシーケンスの一部であるので、ブロック624 で、選択リストを生成するためにオブジェクトリストは主ルーチンに戻る。ブロック622 と624 を具備するサブルーチン620 の分岐はそれ故、無効なキーストロークシーケンスを無視し、明瞭化システムにより生成される選択リストに含まれることが可能な親ノードで発生されたオブジェクトリストを戻す。
【００３８】
決定ブロック622 で受信されたキーストロークに対応する有効なパケットが存在するならば、サブルーチンはブロック626 に進み、ここで新しいオブジェクトリストが古いオブジェクトリストにコピーされる。前述したように、新しいオブジェクトリストを構成するため、明瞭化システムは古いオブジェクトリストのコピーによって開始する。ブロック626 で、先のノードからのオブジェクトリストはそれ故、新しいオブジェクトリストの構成に使用されてもよいように記憶される。
【００３９】
ブロック628 は所定のキーに関連される第１の有効な命令を取出す。ブロック630 は第１の命令が新しいオブジェクトリストに第１のアイテムを生成するように反復子ＮＥＷ−ＩＮＤＥＸを１に初期化する。サブルーチンは有効な命令に関連するオブジェクトリストを構成するようにブロック632 乃至642 からなるループに入る。ブロック632 で、ＯＢＪＥＣＴ−ＬＩＳＴ−ＩＮＤＥＸフィールド556 が検査され、対応するオブジェクトは古いオブジェクトリストからロードされる。ブロック634 で、ＬＯＧＩＣＡＬ−ＳＹＭＢＯＬ−ＩＮＤＥＸフィールド555 が検査され、（図１１で示された550 のような論理シンボルインデックス表により受信されたキーストロークに関連する）適切なシンボルが識別されたオブジェクトの最後に添付される。所定のキー551 と論理符号インデックス552 におけるシンボル表550 のエントリが文字シーケンスを保持するならば、１よりも大きい長さのＡＳＣＩＩシーケンスがブロック634 において識別されたオブジェクトに付加されてもよいことが認識されよう。ブロック636 で、結合されたオブジェクトとシンボルは新しいオブジェクトリスト中に新しいオブジェクトとして記憶される。ブロック638 において、サブルーチンが所定のノードの所定のキーに関係する最後の有効な命令を処理したか否かを決定する試験が行われる。最後の有効な命令が処理されていないならば、ブロック640 で、次の有効な命令が取出される。ブロック642 で、ＮＥＷ−ＩＮＤＥＸがインクレメントされる。
【００４０】
決定ブロック638 における試験が、全てのオブジェクトがノードのために構成されていることを示したならば、サブルーチンはブロック644 に進み、関連するポインタを子ノードへ与える。ブロック646 で、選択リストを生成するために新しいオブジェクトリストが主ルーチンへ戻される。各ノードに関連するオブジェクトリストを生成するためのサブルーチン600 はユーザから受信された各キーストロークで実行されることが認識されるであろう。各キーストロークはボキャブラリモジュールツリー内で１つの付加的なレベルだけサブルーチンを進めるだけなので、ユーザが新しいキーストロークシーケンスを入力したときボキャブラリモジュールの“検索”は行われない。検索が各キーストロークについて行われないので、ボキャブラリモジュールは各ノードに関連するオブジェクトリストを最少の処理オーバーヘッドで戻す。
【００４１】
ボキャブラリモジュールオブジェクトとキーストロークシーケンスとの間の関係がボキャブラリモジュールの構成の詳細であることが認識されるであろう。現在の入力キーシーケンスに関連するノードを処理するとき、付加的な子ノードは、入力されたキーストロークシーケンスで開始してあるしきい値よりも大きい相対頻度で生じるキーストロークシーケンスを有する候補オブジェクトを識別するためにトラバースされてもよい。このしきい値は、ディスプレイ上の選択リスト区域70を満たすのに十分なオブジェクトを生成するか否かのような現在のノードの特性に基づいてダイナミックに調節されてもよい。オブジェクトはそれが識別されるまで、有効な通路に沿ってボキャブラリモジュールツリー中を下流方向に移動することにより識別される。このような候補オブジェクトはデータベースが入力ワードリストから構成されるときに識別されることができ、候補ワードの完了に対応するノードおよび命令は、ノードのトラバースが候補ワードの生成に対応するときをシステムが認識することを可能にする方法でマークされることができる。ツリー構造が以下説明する圧縮プロセスで変形された後、異なるワードに対応する異なる入力キーシーケンスを処理するために同一のノードおよび命令がトラバースされてもよいので、特別なマーキングが必要とされる。キーシーケンスの既知の位置のシーケンス長または特定のキー値等のその他のシーケンスから候補ワードシーケンスを弁別するのに十分な情報だけが付加される。代わりに、候補ワードの終端ノードは、これらが以下説明するようにその他のワードに使用されるノードと混合しないように特別にマークされてもよい。明瞭化ソフトウェアはその後、これらの候補オブジェクトの現在のノードの限定された子孫の近傍内で検索を先に進め、これはオブジェクトに対応する全てのキーストロークが入力される前に選択リストで発見される。これらのオブジェクトは入力キーストロークシーケンスに直接関連されるオブジェクトに加えて含まれる。（“ルックアヘッド”特性と呼ばれる）選択リスト中のさらに長いキーストロークシーケンスに関連されるオブジェクトを表示することによって、ユーザはオブジェクトを特定するために残りのキーストロークを完了する必要なく、すぐにオブジェクトを選択的に選ぶことができる。
【００４２】
図３、４に戻ると、ブロック 158乃至165 で、ボキャブラリモジュール中のキーストロークシーケンスを検索することにより発見されるオブジェクトは優先順位を与えられ、選択リスト76でユーザに表示される。選択リスト中に表示されるオブジェクトのシーケンスを決定するために、優先順位は各ボキャブラリモジュール間および各ボキャブラリモジュールからの戻されたオブジェクト間で設定される。
【００４３】
種々のボキャブラリモジュールから識別されたオブジェクトリストの優先順位を決定するために、ブロック158 で減少されたキーボードの明瞭化システムの動作モードが検査される。前述したように、正常の動作モードでは、ワード解釈は最初に選択リストに表示される。ワードボキャブラリモジュールからのオブジェクトリストはそれ故、その他のボキャブラリモジュールからのオブジェクトリストよりも高い優先順位を割当てられる。反対に、明瞭化システムが数的な動作モードであるならば、数的な解釈がその他のボキャブラリモジュールよりも高い優先順位を割当てられる。それ故、明瞭化システムのモードはボキャブラリモジュールオブジェクトリスト間の優先順位を示す。あるモードでは、ボキャブラリモジュールからのオブジェクトリストは選択リストから全体的に省略されてもよいことが認識されよう。
【００４４】
ボキャブラリモジュールから生成されたオブジェクトリストはただ１つのエントリだけを含んでもよく、またはこれらは多数のエントリを含んでもよい。ブロック160 で、同一のボキャブラリモジュールからのオブジェクト間の優先順位はそれ故、オブジェクトリストが多数のエントリを含む場合に解決される。所定のボキャブラリモジュールで検索された特定のキーストロークシーケンスに整合するオブジェクトも所定の優先順位を与えられ、これは相互に関する相対的な提示を決定する。前述したように、好ましくはデフォルト提示順序は代表的な使用コーパスにおける使用頻度を低くする。各オブジェクトに関係する優先順位データはそれ故、選択リストのオブジェクトの順位付けに使用される。選択リスト区域70は表示されるエントリ数で限定されるので、予め定められた最小の使用頻度よりも低いオブジェクトは選択リストの最初の表示から省略される。省略されたオブジェクトは、ユーザが表示されたリストの終わりまでスクロールしたとき、後で選択リストに付加されてもよい。選択リストは自動的にスクロールされ、現在選択されたオブジェクトは常に可視である。ユーザはまた付加的なオブジェクトを手動で視野にスクロールするために専用のスクロールボタンを使用してもよく、この場合、現在選択されたオブジェクトは視野外にスクロールされる。代わりに、選択リストの全てのオブジェクトは、ユーザリクエストの“ドロップダウン”リスト中に同時に表示されてもよい。
【００４５】
ボキャブラリモジュールで検索されたオブジェクトの表示に関係する多数の特性は適切なシステムメニューのアクセスによってユーザのプログラムが可能である。例えば、ユーザは選択リスト区域の個々のオブジェクトまたはオブジェクトクラスの順序を特定することができる。ユーザはまたボキャブラリモジュール間において、および各ボキャブラリモジュールから識別されたオブジェクト間において優先順位を決定する優先順位レベルを設定してもよい。この方法では、選択リスト区域においてユーザに示されたエントリの数は最少に維持されてもよい。選択リスト区域の付加的なエントリは常に選択キーを反復して押すことにより視野にスクロールされてもよい。
【００４６】
オブジェクト間の優先順位が解決した後、ブロック165 で、選択リストは識別されたオブジェクトから構成され、ユーザに示される。不明瞭なキーストロークシーケンスのデフォルト解釈がユーザにより入力されたとき、選択リスト中の第１のエントリは暫定的に示され、テキスト区域66の挿入点88で強調される。明瞭化ソフトウェアルーチンは、その後次のキーストロークを待機するためにブロック150 に戻る。
【００４７】
決定ブロック152 に戻り、検出されたキーストロークが選択キー60であるならば、“イエス”の分岐は決定ブロック152 から決定ブロック163 へ導かれ、ここでは現在の選択リストが空であるか否かの決定が行われる。現在の選択リストが空であるならば、ブロック164 で、ＯｖｅｒｌｏａｄＳｅｌｅｃｔフラグがＴＲＵＥに設定されたならば、明確なスペースが生成され、すぐにテキスト区域に出力される。ＯｖｅｒｌｏａｄＳｅｌｅｃｔフラグは、明確なスペースキー64を含まないシステムでＴＲＵＥに設定されていないシステムフラグであり、その場合にはスペース符号が選択キーの連続的な付勢シーケンスを最初に付勢するために生成され、または選択リストがそのとき空であるならば、選択キーが付勢される。受信されたキーストロークの最初の処理に続いて、ブロック 164Ｂで、システムは図８、９で示されている以下説明する句読キー63に必要な事後処理を行う。実行はブロック150 に戻る。決定ブロック163 において、選択が空でないならば、ブロック 174Ａに取られる分岐は“ない”。ブロック 174Ａで、ＯｖｅｒｌｏａｄＳｅｌｅｃｔフラグがＴＲＵＥに設定されるならば、スペースは選択リストの各テキストアイテムの最後と挿入点に付加される。ブロック174 で、選択リスト中の第１のエントリ周囲（およびそれが暫定的に示されている挿入点の）の実線のボックスは破線のボックスに変更される。図４で示されているブロック175 で、システムはユーザにより入力される次のキーストロークの検出を待機する。キーストロークを受信したとき、ブロック 175Ａで、システムは図６、７で示されている句読キー63に対して必要な予備処理を行い、それについては以下詳細に説明する。決定ブロック176 で、次のキーストロークが選択キーであるか否かを決定する試験が行われる。次のキーストロークが選択キーであるならば、ブロック178 で、システムは選択リスト中の次のエントリに進み、現在選択されたアイテムとしてこれをマークする。この受信されたキーストロークの初期プロセスに続いて、ブロック 178Ｂで、システムは図８、９で示されている以下詳細に説明する句読キー63に必要な事後処理を実行する。ブロック179 で、現在選択されたエントリはは選択リストと、エントリ周囲を破線で囲んだボックスを有する挿入点において暫定的に表示される。その後、ルーチンはユーザにより入力された次のキーストロークを検出するため、ボックス175 に戻る。ブロック 175−179 により形成されるループは、ユーザが選択キーを多数回押すことにより、使用頻度の少ない入力された明瞭に識別されないキーストロークシーケンスの種々の解釈を選択することが可能であることが認識されよう。
【００４８】
次のキーストロークが選択キーではないならば、決定ブロック176 から、ルーチンはブロック180 へ続き、ここで暫定的に表示されたエントリがキーストロークシーケンス解釈として選択され、テキスト区域で通常のテキストフォーマットに変換される。ブロック184 で、不明瞭なキーストロークを受信し、その後選択キーが新しい不明瞭なシーケンスの開始をシステムに示してから、古いキーストロークシーケンスがシステムメモリからクリアされる。新しく受信されたキーストロークがブロック154 で新しいキーストロークシーケンスを開始するために使用される。最高の使用頻度のワード解釈がデフォルト選択として示されるので、明瞭化ソフトウェアの主ルーチンは、選択キーの付加的な付勢が必要なインスタンスの数を最少にしてユーザがテキストを連続して入力することを可能にする。
【００４９】
前述したように、正常の動作モードでは、ワードに対応する選択リスト76中のエントリはリストの最初に示される。状況によっては、リストの最初に示されるその他のキーストロークシーケンス解釈を有することが望ましいこともある。例えば、ディスプレイスクリーン上に文字選択“ｌｉｓｔ”の表示を支持するのに十分な表示区域が存在しないシステムでは、データベースからの可能な整合オブジェクトのセットはソフトウェアにより内部に記憶され、デフォルトオブジェクトまたは明確に選択されたオブジェクトだけ（選択キーの１以上の付勢に続く）が挿入点に表示される。
【００５０】
このようなシステムでは、新しいキーストロークシーケンスに対応する最も頻度の高いワードが先の入力シーケンスに対応する最も頻度の高いワードにほとんど類似していないか全く類似していないかもしれないので、挿入点に表示されるオブジェクトは入力シーケンスに付加されるそれぞれのキーストロークと大きく変更する傾向がある。その結果、挿入点で表示されるオブジェクトがユーザに対して“ジャンプ”であるように見え、その絶え間なく変化する見掛けは、特に新しいまたは不慣れなユーザに対して紛らわしい。この挿入点における“ジャンプ性”を減少するため、システムは、現在のキーシーケンスに対応する最も頻度の高いワードオブジェクトを常に表示するのではなく、総頻度がしきい値を越える長いワードまたは複数のワードに対応するならば、ワードまたはワードステムオブジェクトが表示されるように構成されることができる。この“ステムプロモーション”の結果として、挿入点で頻繁に表示されるワードの変化は、単に先に表示されたテキストへ付加的な文字を添加することからなる。例えば、頻度の高いワード“ｔｈｉｓ”をタイプするとき、ユーザは４つのキーストロークＴＵＶ、ＧＨＩ、ＧＨＩ、ＰＱＲＳを押す。ステムプロモーションを行わずに、システムは後続するオブジェクトシーケンスを（一度に）挿入点“ｔ”、“ｖｉ”、“ｕｇｈ”、“ｔｈｉｓ”で表示する。ステムプロモーションが行われたとき、システムは“ｔ”、“ｔｈ”、“ｔｈｉ”、“ｔｈｉｓ”を表示する。結果として、新しいまたは不慣れなユーザが、明瞭化システムがユーザのキーストロークを正確に解釈するという確信をさらにもてる可能性が高くなる。図５のフローチャートは所定のキーストロークシーケンスの所定のノードで表示するためのオブジェクトをシステムが決定する態様について示している。
【００５１】
図５は、各ノードが不明瞭なキーストロークシーケンスに対応しているノードのツリー構造でワードのデータベースを生成させるソフトウェアプログラムルーチンのフローチャートである。キーストロークシーケンスにより生成される、可能性あるワードまたはワードステムに対応している多数のワードオブジェクトが各ノードで生成される。ブロック190 において、しきい値“ＭｉｎＦａｃｔｏｒ”が設定される。このしきい値は最小のファクターに対応している。ノードにおいて最も頻度の高いワードオブジェクト（すなわち、そのノードに対する選択リストで最初に表現されるデフォルトオブジェクト）に対してプロモートされるようにするためには、テキストオブジェクトの総頻度は、この最小ファクターだけ、ノードにおいて最も頻度の高いワードオブジェクトの総頻度を超えなければならない。ワードオブジェクトの総頻度は、ワード自体の頻度に、そのワードがステム（すなわち、より長いワードの最初のいくつかの頭文字に対応する）となっているより長い全てのワードの頻度の合計をプラスしたものである。ブロック191 で第２のしきい値“ＭａｘＷｏｒｄＦｒｅｑ”が設定される。この第２のしきい値は、それに対して別のステムがプロモートされるかもしれないワードの最大相対頻度に対応する。ブロック192 で、ツリーの全てのノードがトラバースされ、未処理としてマークされる。ブロック193 で、ルーチンはツリーの全てのノードが処理されているか否かを決定する。全てのノードが処理されているならば、ルーチンは停止し、そうでなければブロック194 で、システムは次の未処理のノードを取出し、最も頻度の高いワードオブジェクト（ＭｏｓｔＦｒｅｑＷｏｒｄ）の頻度と、そのワードがステムとなっている全てのワードとそのワードの総頻度（ＭｏｓｔＦｒｅｑＷｏｒｄＴｏｔ）と、そのオブジェクトがステムとなっている全てのワードの総頻度が、ノードに関連する全てのオブジェクトの中で最高である（ＭｏｓｔＦｒｅｑＳｔｅｍＴｏｔ）オブジェクトとを決定する。ブロック195 で、システムはＭｏｓｔＦｒｅｑＳｔｅｍＴｏｔが、少なくともＭｉｎＦａｃｔｏｒだけ、ＭｏｓｔＦｒｅｑＷｏｒｄＴｏｔ値を超えているか否かを試験する。超えていないならば、ノードに関連するデフォルトオブジェクトは変更されず、システムはブロック198 へ戻る。ここでノードはブロック193 に戻る前に既に処理されているものとしてマークされる。ブロック195 で、ＭｏｓｔＦｒｅｑＷｏｒｄＴｏｔが、少なくともＭｉｎＦａｃｔｏｒだけ超過しているならば、ブロック196 で、システムはノードに関連する現在のデフォルトオブジェクトの頻度（ＭｏｓｔＦｒｅｑＷｏｒｄ）が、それに対して別のオブジェクトがプロモートされるかもしれないワードの最大値（ＭａｘＷＷｏｒｄＦｒｅｑ）を超えているか否かを試験する。超えているならば、ノードに関連するデフォルトオブジェクトは変更されず、システムはブロック198 に戻る。超えていないならば、ＭｏｓｔＦｒｅｑＳｔｅｍＴｏｔに関連するオブジェクトが、ノードに関連するデフォルトオブジェクトとして指定されるように、ブロック198 に戻る前にブロック197 でノードが変更される。
【００５２】
ブロック196 における試験は、非常に普通のステムが普通のワードよりもプロモートされることを阻止することを必要とされる。例えばワード“ｆｏｒ”のステム“ｆｏ”は非常に高頻度で生じ、それによってＭｉｎＦａｃｔｏｒ（例えば値１．５）の合理的な値では、ブロック195 の試験は共通のワード“ｄｏ”が同一ノードで生じても満足される。ワード“ｄｏ”は明白に比較的高頻度で生じ、“ｄｏ”がそのノードのデフォルトオブジェクトとして現れない場合には明瞭化システムの効率に対して重大な損害である。
II．進歩されたシステム特性
１．句読の明瞭化
図１は本発明の１つの好ましい実施形態を示しており、ここではデータキー56の左上キー（“句読キー”）は句読符号ピリオド、ハイフン、アポストロフィに関連される。全てのこのような文字は例えば英語およびフランス語のような複数の言語で共通して使用される。その他の符号のセットの（例えば符号カンマ、ハイフン、長いダッシュ）はキーに割当てられ、本発明の明瞭化システムと同一の方法原理を使用して明瞭化されてもよい。システムは句読キー63のキーストローク周囲のキーストローク内容を使用し、それによって目的とする句読符号を決定する。句読キー63のデフォルト動作もある言語により示されるある特別なケースを処理するように変更される。
【００５３】
図６、７、８、９のフローチャートは、所定の句読キーの付勢で発生される符号をシステムが決定する態様を示している。句読キー63に関連する異なる句読符号を使用して生成される異なるテキストオブジェクトは選択リストに付加される。どのオブジェクトが選択リストの第１のオブジェクトとして付加されるかによって、句読キー63の付勢のデフォルト解釈が決定される。別の解釈はまた選択キーの付勢、または表示された選択リストの所望の解釈のタッピングにより選択される。図６および７は図３および４で示される通常のシステム処理前に、システムにより受信される各キーストロークを処理するルーチンを示しており、ここでシステムはキーストロークを現在の入力キーストロークシーケンスに付加し、新しいシーケンスに対応するワードを決定し、新しいシーケンスに基づいて更新された選択リストを生成する。図６および７で示されている処理は図３および４のブロック 150Ａと 175Ａで行われる。図８および９は新しく生成された選択リストを事後処理するルーチンを示す。図８および９で示された処理は図３および４のブロック 164Ｂ、 178Ｂで行われる。全てのフラグはシステムの初期時間でクリアされているものと推定される。
【００５４】
各キーストロークの事前処理を開始するため、図６のブロック200 で、フラグＣｌｅａｒＰｕｎｃｔＭｏｄｅがチェックされる。フラグとバッファに関連される全ての句読キーが次のキーストロークの処理開始時にクリアされるべきであることを示すためフラグＣｌｅａｒＰｕｎｃｔＭｏｄｅが設定される（ブロック262 ）。ブロック200 で、フラグが設定されていることが発見されたならば、ブロック202 で、句読キー63で明確に使用される全てのフラグとバッファはクリアされる。これらの同じフラグとバッファもシステム初期化時間においてクリアされる。ｃｕｒＰｕｎｃｔＷｏｒｄバッファは、テキストオブジェクトを保存するために使用され、それに句読キーソフトウェアが句読符号を添付し、選択リストに付加されるオブジェクトを生成する。ｐ状態フラグは句読キーソフトウェアの現在状態を保存し、句読キー63が付勢された文脈の異なる可能なケース間を弁別する。ブロック204 で、事前処理されている現在のキーが句読キー63であるならば、ブロック206 で現在のデフォルト（または明確に選択されたオブジェクト）がｃｕｒＰｕｎｃｔＷｏｒｄバッファ中に保留され、ブロック208 で、フラグｐ状態がＰＵＮＣＴ ＫＥＹに設定され、句読キー63が受信された最後のキーであったことを示す。ブロック212 は、ブロック151 または176 で開始する図３および４で示されるキーストロークの通常の処理を表している。コネクタＤから開始する図８および９で示された事後処理について実行を継続する。
【００５５】
ブロック204 で、現在のキーが句読キーではないならば、ブロック220 でｐ状態フラグが設定されていないならば、ブロック222 で、句読キー処理に明確に使用される全てのフラグとバッファはクリアされ、キーストロークの通常の処理はブロック212 において継続する。ブロック220 で、ｐ状態フラグがゼロではない値に設定されたならば、ブロック230 で現在のキーは不明瞭なデータキー56のうちの１つであるならば、システムはブロック232 へ進み、システムフラグＡｐｏｓｔｒｏｐｈｅ Ｓが設定されているか否かを試験する。Ａｐｏｓｔｒｏｐｈｅ Ｓフラグは、（ワード“ｉｓ”との所有格または短縮を形成するため）文字“ｓ”が後続するアポストロフィをワードの末尾に連結することが普通である英語のような言語に対してのＴＲＵＥに設定される。Ａｐｏｓｔｒｏｐｈｅ ＳフラグがＴＲＵＥに設定されたならば、ブロック234 で、ｐ状態フラグがＰＵＮＣＴ ＫＥＹに設定されることが発見され（先のワード付勢が句読キーであったことを示す）、ブロック236 で現在のキーが文字“ｓ”に関連するデータキー（図１のＰＱＲＳキー）であることが発見されたならば、ブロック238 で、ｐ状態フラグがＡＰＯＳ Ｓに設定され、句読キー63が受信され、“ｓ”が後続する特別なケースのアポストロフィが認識されたことを示す。試験（ブロック234 またはブロック236 ）が失敗したならば、ブロック237 で、ｐ状態フラグがＰＵＮＣＴ ＲＣＶＤに設定され、句読キー63が受信され、句読キー処理が実行されるべきであるが（“ｓ”に続くアポストロフィの認識等）特別なケースは現在与えられていないことを示している。どちらの場合にも、ｐ状態の設定後、キーストロークの通常の処理はブロック212 で続く。
【００５６】
ブロック230 で、現在のキーが不明瞭なデータキーでないことが決定されるならば、ブロック250 で、システムは現在のキーがバックスペースキーであるか否かを決定する。バックスペースキーであるあらば、ブロック252 で、フラグとバッファに関係する全ての句読キーは削除されたキーストローク前にそれらの状態に回復され、その後キーストロークの通常の処理（バックスペースキー）が（コネクタＣを介して）ブロック212 で継続する。ブロック250 で、現在のキーがバックスペースキーではないならば、ブロック260 で、現在のキーがモードキー、選択キーまたはシフトキー（即ち“受入れられ”テキストバッファに出力される現在のワードを生成しないキー）であるか否かを決定するための試験が行われる。それらのキーであるならば、キーストロークの通常の処理がブロック212 で（コネクタＣを介して）継続する。そうでなければ、ブロック260 で、キーは現在のワードを受入れさせるキーであることが決定され、ブロック262 でｐ状態フラグがクリアされ、ＣｌｅａｒＰｕｎｃｔモードフラグが設定され、したがってフラグとバッファに関係する全ての句読キーはブロック202 で次のキーストロークを受信したときにクリアされる。
【００５７】
ブロック232 で、Ａｐｏｓｔｒｏｐｈｅ Ｓフラグが設定されていないことが決定されるならば、ブロック270 で、システムはＡｐｏｓｔｒｏｐｈｅ Ｔｅｒｍフラグが設定されたか否かを決定し、ブロック272 で、ｐ状態フラグがＰＵＮＣＴ ＡＰＯＳに設定されたか否かを決定し、これは句読キー63が受信され、選択リストに付加されているアポストロフィで終るワードを認識していることを示す。Ａｐｏｓｔｒｏｐｈｅ Ｔｅｒｍフラグは、２つのワード間にスペースをタイプせずにアポストロフィで終る種々のワード（例えばｌ' 、ｄ' 等）が後続するワードに連結することが普通であるフランス語のような言語ではＴＲＵＥに設定される。このような言語では、明確に選択キーを付勢する必要なくユーザが後続のワードをすぐにタイプし始めることを可能にするため、システムに自動的に盲目的な“選択”を行わせることが非常に便利である。ブロック270 と272 との両者における試験が満足されたならば、現在のデフォルトまたは選択されたワードが受け入れられ、選択キーが付勢されていたかのようにテキストバッファに出力される。ブロック276 で、現在のキーストロークリストはクリアされ、ＣｌｅａｒＰｕｎｃｔモードフラグが設定される。一方で、ブロック270 でシステムがＡｐｏｓｔｒｏｐｈｅ Ｔｅｒｍフラグが設定されていないことを決定したならば、またはブロック272 でｐ状態フラグがＰＵＮＣＴ ＡＰＯＳに設定されていないことを決定したならば、ブロック278 で、ｐ状態フラグはＰＵＮＣＴ ＲＣＶＤに設定され、キーストロークの通常の処理はブロック212 で（コネクタＣ）を介して継続する。
【００５８】
図６および７のブロック212 により表されている（図３および４で詳細に示されている）キーストロークの通常の処理に続いて、図８、９で示されているようなコネクタＤから開始する事後処理が行われる。ブロック300 で、ｐ状態フラグが設定されていないならば、事後処理は必要とされず、サブルーチンは単にブロック320 で帰還する。ブロック 302、 304、 306は、Ａｐｏｓｔｒｏｐｈｅ Ｔｅｒｍフラグが設定されたか否かをチェックし、ｐ状態フラグはＰＵＮＣＴ ＫＥＹに設定され、現在のデフォルトワードはアポストロフィで終了する。３つの全ての状況が満たされたならば、ブロック308 で、ｐ状態フラグはＰＵＮＣＴ ＡＰＯＳに設定され、そうでなければシステムはｐ状態に対する新しい値を設定することなくブロック310に進む。ブロック310でｐ状態フラグがＰＵＮＣＴ ＡＰＯＳまたはＰＵＮＣＴ ＫＥＹに設定されるならば、ブロック 312、 314、 316で、ｃｕｒＰｕｎｃｔＷｏｒｄバッファに保存されたテキストオブジェクトが、ピリオド、ハイフン、アポストロフィをそれぞれ添付した後、選択リストに付加される。ブロック310 における試験が失敗し、ブロック330 でｐ状態がＡＰＯＳ Ｓに設定されたことが発見されたならば、ブロック332 で、ｃｕｒＰｕｎｃｔＷｏｒｄバッファに保存されたテキストオブジェクトはアポストロフィと“ｓ”を添付した後、選択リストに付加される。その後、ブロック 334、 336、 338、 340で、ｃｕｒＰｕｎｃｔＷｏｒｄバッファに保存されたテキストオブジェクトは、ＰＱＲＳキーに関連する各文字に後続してハイフンを添付した後選択リストに付加される。ｐ状態フラグはその後、ブロック342 でＰＵＮＣＴ ＲＣＶＤに設定される。
【００５９】
ブロック330 で、ｐ状態フラグがＡＰＯＳ Ｓに設定されないならば、ブロック352 でシステムは現在の選択リストが空であるか否かをチェックする。空ではないならば、１以上のオブジェクトがキーストロ−クバッファ（句読キーの少なくとも１度の付勢を含む）中の現在のキーシーケンスに明確に整合するデータベースで発見される。この場合、サブルーチンはキーストロークバッファの内容を変更せずに単にブロック364 で戻り、それによってユーザが意図するならばデータベースオブジェクトが綴られる。そうでなければ、データベースに整合するオブジェクトが存在しなくなると直ぐに、ブロック356 で、ｃｕｒＰｕｎｃｔワードバッファに保存されたテキストオブジェクトが、ハイフンの付与後に受入れられたテキストとして出力される。ブロック358 で、キーストロークがキーストロークバッファの開始から消去され、句読キーのキーストロークを含んでいる。ブロック360 で、データベースが問合わせされ、変更されたキーストロークバッファに基づいて更新された選択リストが生成される。最後に、ブロック362 で、句読キーの全てのバッファとフラグはサブルーチンから帰還する前にクリアされる。
【００６０】
２．ボキャブラリモジュールの記憶を最小にしながらの性能の最大化
図１４で示されているツリーデータ構造110 に対して動作する図１７で示されているサブルーチン620 のオブジェクト識別ソフトウェアのプロセスにキーストロークを組合わせることにおいて固有なことは、サブルーチン620 の処理時間を増加せずに使用するボキャブラリモジュールの記憶を少なくしながら大きなオブジェクトボキャブラリを検索するための幾つかの優れた手段があることである。
【００６１】
入力辞書の使用頻度にしたがって、所定のボキャブラリモジュールの論理的シンボルインデックス表550 の各行のシンボルの順序を定めることにより、ツリーデータ構造110 の全てのノード400 の大部分の命令558 は、ＬＯＧＩＣＡＬ−ＳＹＭＢＯＬ−ＩＮＤＥＸフィールド555 を１に等しくさせることができる。同様に、ステムとワードオブジェクトが言語の使用頻度が減少する順序でオブジェクトリスト440中 で生成されるように、全てのノード400 の406 のような全てのパケットの命令558 の順序を定めることによって、ツリー構造110 の全てのノード400 の大部分の命令558 はＯＢＪＥＣＴ−ＬＩＳＴ−ＩＮＤＥＸフィールド556 を１に等しくさせることができる。したがって、ツリー構造110 の多くのデータは冗長である。組織的に冗長を識別し、親ノードを子ノードに連結する通路を再度方向付けすることによりこれらを消去し、もはや参照されない子ノードを消去することは、もとのツリーよりもはるかに少ないノードと、はるかに少ない命令と、はるかに少ないリンクを含む高度に折畳まれ、または折返されたデータ構造につながり、さらにこれはもとのツリーから検索可能なオブジェクトをそれぞれ検索する。さらに、その命令がオブジェクトリスト400 の類似のオブジェクトを生成するもとのツリーを通る通路の異なるインスタンスは、折畳まれたツリーの共通の通路に融合され、これはルールを形成する（特別なものと反対に）一般化されたオブジェクトとして機能し、減少された構造が、所定のボキャブラリモジュールのツリー110 の限定に元来使用されたさらに多くのオブジェクトを生成することを可能にする。例えば30,000の英単語のリストから生成された折畳まれていないボキャブラリツリーは好ましい実施形態では78,000を超える命令を含んでいる。折り畳みプロセスの好ましい実施形態により折畳んだ後、変更されたツリーは29,000よりも少ない命令と、構造が所定の不明瞭なキーストロークシーケンスを検索できるワードオブジェクト数よりも少ない数と、図１６のフローチャートの好ましい方法で実施された検索プロセスとを含んでいる。各命令はキー押しに応答して１つのシンボルを付与することによってオブジェクトリスト430 の１つのオブジェクトを変更するだけであるので、顕著で優れた結果が生まれる。一般的なオブジェクト構造ルールのように、これは命令の共通シーケンスを再使用する折畳まれたツリーとソフトウェア検索プロセスの結果である。
【００６２】
図１３で示されているノードは例である。ノード560 は、その有効なキーフィールド562 の“010100000 ”の“１”により示されているように２つの有効なキーを有する。好ましい実施形態では、“１”の位置は第２、第４のキーが有効な通路であり、566 と568 のパケットに関連された子ノードに対する命令およびポインタのパケットを有することを示す。パケット566 は３つの命令“（1,1,0 ）”、“（1,2,0 ）”、“（2,1,1 ）”と、それに続いて子ノードに連結するポインタ“Ｐ”560 とを含んでいる。サブルーチン600 がノード560 につながるキーストロークのリストを処理しているならば、サブルーチン620 は“２”キーを処理するために呼出され、これは好ましい実施形態ではＡＢＣキーであり、以下のことが生じる。命令561 はキーＡＢＣの第１の論理シンボル（“ａ”）をインデックス１の古いオブジェクトに付加し、インデックス１で新しいオブジェクトを構築する。561 の第３のフィールド“０”はＳＴＯＰ  ＦＬＡＧ557 の誤った値であり、これは現在のパケットの最後の命令ではないことを示し、そこで次の命令563 が解釈される。命令563 はキーＡＢＣの第１の論理シンボル（“ａ”）をインデックス２における古いオブジェクトに付加し、インデックス２で新しいオブジェクトを構築する。構築される新しいオブジェクトのインデックスは命令自体の順序で盲目的であり、例えば第２の命令は常に第２のオブジェクトを構築するので、新しいオブジェクトのインデックスは２である。命令563 の第３のフィールド“０”はＳＴＯＰ  ＦＬＡＧ557 の誤った値であり、そこで次の命令567 が解釈される。命令567 はキーＡＢＣの第２の論理シンボル（“ｃ”）をインデックス１における古いオブジェクトに付加し、インデックス３で新しいオブジェクトを構築する。命令567 の第３のフィールド“１”はＳＴＯＰ  ＦＬＡＧ557 の真の値であり、これは現在のパケットの最後の命令であることを示し、そこでサブルーチン620 の実行はブロック638 からブロック644 へ通過する。
【００６３】
異なる命令パケット408 を含んだ２以上のノードを、別々に多数のノードと同一目的を行うことができる１つのノードに結合することが可能であり、ボキャブラリツリー110 中のあるノードはよい意味で冗長であることを意味している。本発明の目的に対して、１つのノードが図１８乃至２１の好ましい実施形態で示されたソフトウェアプロセスの動作により処理されることができる意味で、ワード“冗長”は２つのノードに関して使用される。
【００６４】
例えば図１３でノード560 とノード574 を比較する。キー２における命令パケット566 と571 は正確に一致するが、ノード560 のキー４における命令570 はノード574 におけるキー４の命令572 と対立し、その一方の動作を行うことができず、また２つのノードを両者の動作を行う１つのノードに結合することもできない。ノード560 とノード576 を比較する。各ノードのキー２に関連される命令パケット566 と577 は正確に一致する。命令569 と578 はＳＴＯＰ  ＦＬＡＧ557 の設定で異なるが、その差はこれらの両者を対立させない。図１８のサブルーチン620 のオブジェクト検索プロセスの基本的な結果は、所定のキーに対してノードで１組の命令を実行することにより生成される新しいオブジェクトリストである。付加的なオブジェクトがノードの子の正確な処理に悪影響せずに、オブジェクトリストの最後に付加されることができる。したがって、578 の後に付加的な命令を実行することによりノード576 の子の処理でエラーは生じない。処理の根本は、誤った命令が実行される場合のみ、または非常に多くの命令が実行された場合のみ妨害される。同様に、ノード576 のキー９に有効なキーが存在することは、ノード560 に有効な９のキーが存在しないことと矛盾しない。それ故、ノード560 とノード576 は冗長であり、両者の実質上の効果を実現する新しいノード582 に融合されることができ、両者の子の親ノードとして正確に機能する。ポインタも冗長を限定する役目を有することが認識されよう。長いワードのステムを形成するために続かないワードに関係するツリーのシーケンスの最後のキーストロークにおいて、有効なキーパケット408 のポインタは好ましい実施形態では特定値ＮＵＬＬを有し、さらに子が存在しないことを示す。このようなノードは“最終ノード”と呼ばれる。両ノードに共通の有効なキーにおいて子ノードを有する２つのノードに対しては、最終ノードに到達するまで、または比較されるノードに共通の有効なキーシーケンスにもはや子孫がなくなるまで、それぞれの子ノードは冗長である親ノードに対して冗長でなければならず、子から派生するノードにも対して冗長でなければならない。
【００６５】
図１８乃至２１は、図１４で示されているツリー110 と類似するボキャブラリモジュールツリーの圧縮および折り畳みを行うためのソフトウェアプロセスの好ましい実施形態のフローチャートを示している。図１８は圧縮されたボキャブラリモジュールを構築するためのソフトウェアプロセスの好ましい実施形態のフローチャートである。ブロック652 で、フランス語のボキャブラリモジュールに対する図１０のような物理キーで現れる以外の必要な付加的な不明瞭シンボルを識別するために辞書が走査される。ブロック 654-656では、シンボルは図１１の例のように、入力辞書の使用頻度の減少する順序でそれぞれのキーに論理的インデックスを割当てられる。オブジェクトの辞書に頻度が与えられると、ブロック658 がどのように形態110 のボキャブラリツリーを構築するかは当業者には明白であろう。ブロック660 で、冗長ノードが識別され、データの重複を最小にするために共に融合され、１つのオブジェクトに関係する隔離された命令シーケンスを、多数のオブジェクトを検索するための一般化されたルールに変更する。このプロセスは図１９で詳細に示されている。ブロック662 は最終ノードからの全ての残りのＮＵＬＬポインタを識別し、これらを多数の親を有するノードへのポイントへ変更し、したがってモジュールのルール数を増加する。その他のルールが子ノードをＮＵＬＬポインタへ割当てるために適用され、このようなルールは、処理されるキーストロークに関するファクターに基づいてオブジェクト検索のときにダイナミックに提供されることが認識されよう。ブロック664 で、各特有の命令558 とポインタ 404ａの残りのインスタンスがカウントされ、それによってスペースを確保するために、これらは高い頻度の命令とアドレスに割当てられる短いビットパターンを有する特有のビットパターンとしてエンコードされる。本発明の好ましい実施形態では、ハフマン符号化は最小の長さのビットパターンを命令とアドレスに割当てるために使用される。ハフマン符号化技術は技術でよく知られ、したがってここではさらに詳細に説明する必要はないことが認識されよう。さらに、多重親ノードの子ノードであるノードは特別な順序で記憶されてもよく、それによって迅速な検索を容易にし、これらをアドレスするのに必要なビット数を最小にする。最後に、前述したように生成されたデータはブロック666 でファイルに書込まれる。
【００６６】
ブロック658 でツリーを構築しながら記憶されるオブジェクトを記述するための命令558 を選択するとき、オブジェクトがワードまたはワードステムであるとき、それらの文字符号シーケンスは付加的なデータを含み、これはツリー110 のノードの冗長を増加するため有効に使用されてもよいことが認識されるであろう。例えば、英語の全ての文字対が等しく共通であるわけではなく、例えば“ｓ”は普通は“ｔ”と対にされる。文字対または２重字の統計は、先行する文字からオブジェクト中の次の文字になる可能性の高い文字を予測する。このような予測により、論理シンボルインデックス表550 中の不明瞭なシンボルの論理的な順序づけは、第１の位置の使用をさらに最適にするためにダイナミックに変更されることができる。予測は文字トリプレット、３重字、一般的にはｎ重字まで拡張されることができる。
【００６７】
図１９はボキャブラリモジュールのツリー110 を折畳むためのソフトウェアプロセスの好ましい実施形態のフローチャートである。ブロック670 は図１８のフローチャートのブロック660 から入る。ブロック672 はルートノード111 後に図１４のツリー110 の第１のノードで開始するためプロセスを初期化する。ブロック674 はノードの位置を突止めるために図２０のフローチャートの好ましい実施形態で示されているサブルーチン690 を呼出し、このノードは、これが存在するならば現在のノードと最大に冗長である。目的地ノードが発見されたならば、決定ブロック676 はプロセスをブロック678 へ導き、ここで冗長ノードが共に融合され、多数の個々の命令のインスタンスを共用のシーケンスへ合計するツリーから重複データを除去し、これはキーストロークシーケンスをオブジェクトに関連づける一般的なルールである。決定ブロック676 が失敗したならば、決定ブロック680はプロセスが行われたか否かを試験する。さらに処理するためのノードが存在するならば、フローチャートは別のノードを識別するためにブロック682 へ進む。
【００６８】
図２０は、所定のノードに関して最高の冗長度を有するノードをツリー110 で発見するためのソフトウェアプロセスの好ましい実施形態のフローチャートである。ブロック690 は図１９のフローチャートのブロック674 から入る。ブロック692は測定された冗長度のプレイスホルダーＭＡＸ−ＳＡＶＩＮＧＳを初期化する。ブロック694 は図１４のツリー110 のルートノード111 で開始する処理を初期化する。ブロック696 は現在のノードに関して所定のノードの冗長度を計算するために図２１の好ましい実施形態のフローチャートで示されたサブルーチン710 を呼出す。決定ブロック698 はＭＡＸ−ＳＡＶＩＮＧＳよりも大きい冗長度が報告されたか否かを試験する。報告されたならば、ブロック700 は所定のノードに関する最も大きな冗長度であることが暫定的に発見されたノードのアイデンティティＢＥＳＴ−ＮＯＤＥと、報告された測定冗長度をＭＡＸ−ＳＡＶＩＮＧＳとして記録する。決定ブロック702 は全てのノードが評価されたか否かを試験する。全てのノードが評価されていないならば、フローチャートはブロック704 に続き、現在のノードから次のノードへ進む。ブロック704 から処理フローはブロック696 へ戻る。決定ブロック702 における試験の結果として、最後のノードが評価されているならば、ブロック706 は最も冗長なノードのアイデンティティをそれが存在したとしても図１９のサブルーチン670 のブロック674 への所定のノードへ戻す。
【００６９】
図２１は、２つの特別なノード間の数的冗長度を計算するためのソフトウェアプロセスの好ましい実施形態のフローチャートである。ブロック710 は図２０のサブルーチン690 のフローチャートのブロック696 から入る。ブロック712 は重複命令のカウントを初期化する。ブロック714 はＫＥＹ−ＩＮＤＥＸを１に初期化する。ブロック716 はサブルーチンへのパラメータとして特定された２つの第１のノード400 の第１のものからキーＫＥＹ−ＩＮＤＥＸに関連された命令パケット406 を読取り、これらを一時的なリストＬＩＳＴ−Ａに置く。キーＫＥＹ−ＩＮＤＥＸが有効なキーではないならば、命令は読取れない。ブロック718 はサブルーチンへのパラメータとして特定された２つの第２のノード400 の第２のものからキーＫＥＹ−ＩＮＤＥＸに関連された命令パケット406 を読取り、これらを一時的なリストＬＩＳＴ−Ｂに置く。キーＫＥＹ−ＩＮＤＥＸが有効なキーではないならば、命令は読取られない。決定ブロック720 はＬＩＳＴ−ＡまたはＬＩＳＴ−Ｂが空であるか否かを決定する。空ではないならば、ブロック722 はＬＩＳＴ−ＡまたはＬＩＳＴ−Ｂから１つの命令を取り出し、それぞれに残る命令数を１つだけ減少する。決定ブロック724 は命令がＬＯＧＩＣＡＬ−ＳＹＭＢＯＬ−ＩＮＤＥＸおよびＯＢＪＥＣＴ−ＬＩＳＴ−ＩＮＤＥＸフィールドで同じであるか否かを試験する。同じではないならば、冗長がない故障コードがブロック726 でサブルーチン690 のブロック696 へ戻される。ブロック724 の決定がイエスであるならば、ブロック728 はカウントＳＡＶＥＤ−ＩＮＳＴＲＵＣＴＩＯＮＳをインクレメントする。制御は再びブロック720 へ移行する。決定ブロック720 がＴＲＵＥを試験したならば、制御は決定ブロック730 へ移り、これは２つのノードが全ての可能なキーに関して比較されているか否かを試験する。比較されていないならば、ブロック732 はＫＥＹ−ＩＮＤＥＸをインクレメントし、制御はブロック716 へ移る。ブロック730 の決定が正であるならば、制御はＫＥＹ−ＩＮＤＥＸを１へリセットするためにブロック734 へ移る。ブロック736 は２つのノードのキーＫＥＹ−ＩＮＤＥＸに関連するポインタを試験する。決定ブロック738 はポインタが空（ＮＵＬＬ）であるか否かを試験し、これは最終ノードのポインタまたは、有効ではない任意のキーの場合である。いずれのポインタも空ではないならば、制御はブロック740 に移行し、これは２つの空ではないポインタによって指向される子ノードが冗長であるか否かを試験するために反復的にサブルーチン710 を使用する。ブロック740 の結果は決定ブロック742 で試験される。２つの子ノードが冗長ではないことが発見されたならば、故障コードはブロック744 で戻される。そうでなければ、２つの子はブロック746 により累積されるある数値的なスコアを有する冗長であることが発見される。決定ブロック748 は最後のキー（好ましい実施形態ではキー９）に関連するポインタが試験されているか否かを試験する。試験されていないならば、ブロック752 はＫＥＹ−ＩＮＤＥＸをインクレメントし、制御をブロック736 へ移行させる。ブロック748 の試験が、全てのポインタがチェックされていることを決定したならば、サブルーチンがブロック710 に入ったときもとの識別された２つのノードの冗長度の累積された数的な尺度が戻される。
【００７０】
冗長度の数値の計算は、各ノードに存在するブランチ数および子としてノードを指向する親の数等の付加的なファクターを考慮するために加重されてもよいことが認識されよう。あるキーに関連する命令の順序付けのために２つのノードが冗長ではないならば、入力辞書の低い頻度のワードに関係する命令の順序は高い頻度のオブジェクトに関係する命令の優先順位に影響せずに再度順序付けされ、したがってツリーの冗長を増加することが認識されよう。
III ．代表的なシステム動作
図２２乃至３２は減少されたキーボード明瞭化システムを典型的に使用しているときのポータブルコンピュータ52のディスプレイ53を示している。ポータブルコンピュータの電源をオンにした後、テキスト区域66と選択リスト区域70は空である。図２２では、ユーザは語句“This is a test”をタイプしている。ボキャブラリモジュールは、最後の４つのキーストロークＴＵＶ、ＤＥＦ、ＰＱＲ、ＴＵＶのシーケンスの最も可能性の高い解釈をワード“test”として識別し、挿入点900 でこの解釈を暫定的に示し、またデフォルト解釈901 としてこのワードを選択リストの最初に位置させている。この選択リストの最初のエントリは、周囲を囲む実線のボックスが描かれて示されており（これが盲目的に選択されたオブジェクトであることを示している）、挿入点900 で、周囲に実線のボックスが描かれているテキスト区域中に暫定的に示される。ボキャブラリモジュールはまたワード解釈“ｖｅｓｔ”とステム解釈“ｖｅｒｔ”を識別し、これらの解釈を選択リストに位置する。図６、７および８、９に示されている句読キー処理ソフトウェアはｃｕｒＰｕｎｃｔＷｏｒｄバッファのテキストオブジェクト“test”をセーブ（保存）している。
【００７１】
図２３では、ユーザはそれに続いて．−´句読キー63を押している。データベースには４つのキーＴＵＶ、ＤＥＦ、ＰＱＲ、ＴＵＶとそれに後続する句読キー63のキーストロークシーケンスに整合するオブジェクトはない。したがって選択リストに現れるテキストオブジェクトだけが句読キー処理ソフトウェアにより付加されるテキストオブジェクトであり、付与されたピリオド911 、ハイフン913 、アポストロフィ914 を有するｃｕｒＰｕｎｃｔＷｏｒｄ“test”からなる。結果的なデフォルト選択リストオブジェクトは“test. ”911 であり、これはまた挿入点910 におけるテキスト区域に暫定的に示される。
【００７２】
図２４では、ユーザはそれに続いてスペースキー922 を押している。これは明確なスペース文字符号を生成し、現在のキーストロークシーケンスを終了し、システムに暫定的に示されたテキスト“test. ”を受入れさせる。それに続くスペースが出力された後、システムカーソル920 が現れる。キーストロークバッファは今は空であり、したがって現在の選択リスト921 も空である。これは、対応する句読点の文字を含んでいるデータベース中に整合するオブジェクトが存在せずに、スペース（または選択）キーを付勢する前に付勢されたときの句読キー63のデフォルト特性のうちの１つを例示しており、先のデフォルトテキストオブジェクトはピリオドが付与されて出力されている。
【００７３】
（フラグＡｐｏｓｔｒｏｐｈｅ ＳがＴＲＵＥに設定されている）英語用に設計されたシステムの場合、図２５はユーザが図２３に続いてＰＱＲＳキー932 を押したときの結果を示している。これは図８のブロック332 乃至342 で示されている処理をトリガーし、これによって句読キー処理ソフトウェアはオブジェクト“test's”、“test-s”、“test-r”、“test-p”、“test-q”をその順序で選択リストに付加する。したがって、結果的なデフォルト選択リストオブジェクトは“test's”931 であり、これも挿入点930 においてテキスト区域に暫定的に示される。
【００７４】
図２６は、（ハイフンを付けたワード“test-run”をタイプすることを考慮する場合の）ユーザが図２５に続いてＴＵＶキー932 を押したときの結果を示している。これは図８のブロック332 乃至340 で示されている処理をトリガーし、その結果、句読キー処理ソフトウェアはテキストオブジェクト“test- ”を受入れられるテキストとして出力させ、キーストロークバッファを最後の２つのキーストロークＰＱＲＳとＴＵＶのみを含むように変更させる。これらの２つのキーストロークに基づく（図８のブロック360 における）データベースの問合わせは図２６で示されている選択リストを生じる。テキストオブジェクト“ｓｔ”は最も頻度が高く、したがってデフォルト選択リストオブジェクト“ｓｔ”941として表れ、これもまた挿入点940 のテキスト区域に暫定的に示される。
【００７５】
図２７はユーザがハイフンを有するワード“test-run”のタイピングを終了するため図２６に続いてＭＮＯキー952 を押したときの結果を示している。全てのフラグが先のキーストロークを処理するため図９のブロック362 でクリアされて以降、特別な句読キー処理は行われない。したがってシステムは単に現在のキーシーケンスＰＱＲＳ、ＴＵＶ、ＭＮＯを単純に処理する。これらの３つのキーストロークに基づくデータベースの問合わせは図２７で示されている選択リストで行われる。テキストオブジェクト“run ”は最も頻度が高く、したがってデフォルト選択リストオブジェクト“run ”951 として表れ、挿入点950 においてテキスト区域に暫定的に示される。
【００７６】
図２８乃至３２は（フラグＡｐｏｓｔｒｏｐｈｅ ＴｅｒｍがＴＲＵＥに設定されている）フランス語用に設計されたシステムの１例を示している。この例では、ユーザはテキストオブジェクト“ｃ' ｅｓｔ”をタイプし、これは実際にはワード“ｅｓｔ”に連結したワード“ｃ' ”からなる。図２８はユーザがＡＢＣキー962 を押したときの結果を示している。選択リストはフランス語のＡＢＣキーに関連する１つの符号オブジェクトを示しており、アクセントを有する符号ａアクサン・グラーヴ、ａアクサン・シルコンフレックス、およびＣセディーユを含んでいる。フラグに関連する全ての句読キーは先にクリアされているので特別な句読キー処理は行われない。システムは単に現在の１つのキーシーケンスＡＢＣを処理する。これらに基づくデータベースの問合わせでは、このキーストロークの結果、図２８で示されている選択リストが生じる。テキストオブジェクト“ａアクサン・グラーヴ”は最も頻度が高く、デフォルト選択リストオブジェクト“ａアクサン・グラーヴ”961 として現れ、挿入点960 においてテキスト区域にも暫定的に示される。
【００７７】
図２９では、ユーザはそれに続いて“．−´”句読キー63を押す。オブジェクト“ｃ' ”と“ａ−”はデータベースに記憶され、データベースの問合わせ後図３のブロック156 乃至160 で選択リストに付加され、そのため結果的なデフォルト選択リストオブジェクトは“ｃ' ”971 である。結果的に、図８のブロック300 乃至306 の各試験が成功し、ｐ状態フラグがブロック308 のＰＵＮＣＴ ＡＰＯＳに設定される。選択リスト中のオブジェクト“ｃ' ”971 と“ａ−”973 に続いて、（図８のブロック 312、 314、 316の）句読キー処理ソフトウェアはｃｕｒＰｕｎｃｔＷｏｒｄ“ａアクサン・グラーヴ”からなるオブジェクト“ａアクサン・グラーヴ．”、“ａアクサン・グラーヴ−”、“ａアクサン・グラーヴ' ”にピリオド974 、ハイフン975 、アポストロフィ976 を付加する。結果的なデフォルト選択リストオブジェクトは“ｃ' ”971 であり、これも挿入点970 のテキスト区域に暫定的に示される。
【００７８】
図３０では、ユーザはそれに続いてＤＥＦキー982 を押している。図２９の先のキーストロークの処理結果としてｐ状態フラグがＰＵＮＣＴ ＡＰＯＳに設定されたので、句読キー処理ソフトウェアは図７のブロック274 、276 、262 を実行する。現在のデフォルト選択リストオブジェクト“ｃ' ”は許容されるテキスト983 として出力され、現在のキーストロークバッファがクリアされ、システムは、現在のキーストロークＤＥＦをクリアされたキーストロークバッファに付加した結果として結果的な１つのキーシーケンスＤＥＦを単に処理する。これらに基づくデータベースの問合わせでは、このキーストロークの結果、図３０で示されている選択リストが生じる。テキストオブジェクト“ｄ”は最も頻度が高く、デフォルト選択リストオブジェクト“ｄ”981 として現れ、挿入点980におけるテキスト区域にも暫定的に示される。
【００７９】
図３１と３２は、ユーザが図３０に続いて、ワード“ｅｓｔ”のタイピングを完了するため（図３０の）ＰＱＲＳキー992 と（図３２の）ＴＵＶキー997 を押したときの結果を示している。ＣｌｅａｒＰｕｎｃｔモードフラグが先のキーストロークの処理において図７のブロック262 で設定されたので、特別な句読キー処理は行われず、それによって句読キーの全てのバッファおよびフラグは図６のブロック202 においてクリアされた。したがって、システムは現在のキーシーケンスＤＥＦ、ＰＱＲＳ、ＴＵＶを単に処理する。これらに基づくデータベースの問合わせでは、３つのキーストロークの結果、図３２で示されている選択リストが生じる。テキストオブジェクト“ｅｓｔ”は最も頻度が高く、デフォルト選択リストオブジェクト“ｅｓｔ”996 として現れ、挿入点995 においてテキスト区域にも暫定的に示される。
【００８０】
フランス語は、le、ne、ce、de、me、se、je、que 、tu、te等の多数の非常に頻度が高く使用される不変化詞、前置詞、代名詞を含んでおり、母音で始まるワードに先行するとき、最後の母音をアポストロフィに変化し、それに続くワードの前にスペースはタイプされない。先の例に示されている句読キー63によりサポートされる動作がなくては、この頻度の高いワードオブジェクトの連結は、第２のオブジェクト（ｅｓｔ）をタイプする前に第１のワードオブジェクト（示されている例ではｃ' ）を終了するため、その他の方法でユーザが選択キーをさらにキー付勢することを必要とする。したがって、句読キー63がアポストロフィで終わるワードオブジェクトとの自動的な連結を支持する能力はフランス語等の言語システムの効率および自然な感覚を非常に増加する。
【００８１】
本発明の好ましい実施形態を示し説明したが、種々の変化が本発明の技術的範囲を逸脱せずに行われることが認識されよう。例えば、当業者は減少されたキーボード明瞭化システムのキーボード54が３より少ない、または２０よりも多いデータキーを具備してもよい。ここで説明した明瞭化技術は異なるサイズのキーボードにも同等に応用可能である。句読キー63と関連する特定の文字は変更されることができる。例えば当業者はある応用ではピリオドがカンマに置換されることを認識するであろう。さらに、異なる周囲のキーストローク内容で生成される句読符号の特定の選択も変更されることができる。例えば２つの連続的な句読キー63を付勢した結果、３つの連続する付勢が省略符号“…”を生成しながら、Ｅｍ  Ｄａｓｈ“−”を生成する。
【００８２】
当業者は付加的なボキャブラリモジュール、例えば法律用語、医学用語、外国語の用語を含んでいるボキャブラリモジュールがコンピュータ内でエネーブルされることができることも認識するであろう。システムメニューにより、ユーザはシステムを構成し、付加的なボキャブラリワードを特別に配色または強調して、可能なワードのリストの最初または最後に現れさせることができる。したがって、特許請求の範囲内で、本発明はここで特別に説明した以外に実施されることができることを認識するであろう。
【図面の簡単な説明】
【図１】  本発明の減少されたキーボード明瞭化システムを内蔵したポータブルコンピュータの好ましい実施形態の概略図。
【図２】  図１の減少されたキーボード明瞭化システムのハードウェアのブロック図。
【図３】  減少されたキーボード明瞭化システムのための明瞭化ソフトウェアの好ましい実施形態のフローチャート。
【図４】  減少されたキーボード明瞭化システムのための明瞭化ソフトウェアの好ましい実施形態のフローチャート。
【図５】  減少されたキーボード明瞭化システムのツリーデータ構造の各ノードにおけるデフォルトオブジェクトとして使用されるべきテキストオブジェクトを決定するためのソフトウェアの好ましい実施形態のフローチャート。
【図６】  減少されたキーボード明瞭化システムのキーに関連した複数の句読符号の中から目的とする句読符号を明瞭化するために各キーストロークで実行されるソフトウェアプロセスであり、キーストロークを最初に受信したときに実行されるプロセスを示している好ましい実施形態のフローチャート。
【図７】  減少されたキーボード明瞭化システムのキーに関連した複数の句読符号の中から目的とする句読符号を明瞭化するため各キーストロークで実行されるソフトウェアプロセスであり、キーストロークを最初に受信したときに実行されるプロセスを示している好ましい実施形態のフローチャート。
【図８】  減少されたキーボード明瞭化システムのキーに関連した複数の句読符号の中から目的とする句読符号を明瞭化するため各キーストロークで実行されるソフトウェアプロセスであり、キーストロークのその他の処理を実行する処理が完了する処理を示している好ましい実施形態のフローチャート。
【図９】  減少されたキーボード明瞭化システムのキーに関連した複数の句読符号の中から目的とする句読符号を明瞭化するため各キーストロークで実行されるソフトウェアプロセスであり、キーストロークのその他の処理を実行する処理が完了する処理を示している好ましい実施形態のフローチャート。
【図１０】  符号とキーの物理的関係と、物理キーで現れる符号の付加的なアクセントを有する変形を含んでいる論理的関係のインスタンスとの比較図。
【図１１】  論理シンボルをキーインデックスに関連付ける表の１例。
【図１２】  ボキャブラリモジュールのツリーのノードにおけるデータの好ましい内部配列と、命令の好ましい実施形態の意味論コンポーネントの図。
【図１３】  好ましい実施形態のノード構造における可能な内部データアイテムの４つの例を示す図。
【図１４】  圧縮されていないボキャブラリモジュールの好ましいツリー構造を示す図。
【図１５】  ボキャブラリモジュールから検索されるプロセスのオブジェクトを中間記憶するための好ましい実施形態であるオブジェクトリストの１例の状態を示す図。
【図１６】  キー押しのリストが与えられたボキャブラリモジュールからテキストオブジェクトを検索するためのソフトウェアプロセスの好ましい実施形態のフローチャート。
【図１７】  １つのキー押しが与えられたボキャブラリモジュールのツリー構造を横断し、オブジェクトリストの状態を変更するためのソフトウェアプロセスの好ましい実施形態のフローチャート。
【図１８】  折畳まれ、圧縮されたボキャブラリモジュールを構築するためのソフトウェアプロセスの好ましい実施形態のフローチャート。
【図１９】  ボキャブラリモジュールのツリーデータ構造を折畳むためのソフトウェアプロセスの好ましい実施形態のフローチャート。
【図２０】  所定のノードと比較して最大の冗長度を有するボキャブラリモジュールのツリーの第２のノードの位置を決めるためのソフトウェアプロセスの好ましい実施形態のフローチャート。
【図２１】  ボキャブラリモジュールのツリーの２つのノード間の冗長度を計算するためのソフトウェアプロセスの好ましい実施形態のフローチャート。
【図２２】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図２３】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図２４】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図２５】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図２６】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図２７】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図２８】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図２９】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図３０】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図３１】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図３２】  典型的な使用を行っている期間における減少されたキーボード明瞭化システムの好ましい実施形態の概略図。
【図１】
0004037608.tif 000002
【図２】
0004037608.tif 000003
【図３】
0004037608.tif 000004
【図４】
0004037608.tif 000005
【図５】
0004037608.tif 000006
【図６】
0004037608.tif 000007
【図７】
0004037608.tif 000008
【図８】
0004037608.tif 000009
【図９】
0004037608.tif 000010
【図１０】
0004037608.tif 000011
【図１１】
0004037608.tif 000012
【図１２】
0004037608.tif 000013
【図１３】
0004037608.tif 000014
【図１４】
0004037608.tif 000015
【図１５】
0004037608.tif 000016
【図１６】
0004037608.tif 000017
【図１７】
0004037608.tif 000018
【図１８】
0004037608.tif 000019
【図１９】
0004037608.tif 000020
【図２０】
0004037608.tif 000021
【図２１】
0004037608.tif 000022
【図２２】
0004037608.tif 000023
【図２３】
0004037608.tif 000024
【図２４】
0004037608.tif 000025
【図２５】
0004037608.tif 000026
【図２６】
0004037608.tif 000027
【図２７】
0004037608.tif 000028
【図２８】
0004037608.tif 000029
【図２９】
0004037608.tif 000030
【図３０】
0004037608.tif 000031
【図３１】
0004037608.tif 000032
【図３２】
0004037608.tif 000033