(57)【要約】      （修正有）【課題】手書き文字についてどの認識結果が正確であるかを選択することができるようにユーザに複数の代替案を提供するコンピューティング・システムにおいて、電子インクの複雑な表現に対処する。【解決手段】文書のコンテンツをツリー構造に配列し、さらに、テキスト情報の代替表現もまた、前記ツリー構造に含めることにより、ソフトウェア・オペレーティング・システムまたはアプリケーションは、前記ツリー構造を容易にトラバースし、必要なときに代替案を取得することができるようにする。【選択図】図５
2006164259.tif 000002
【特許請求の範囲】
【請求項１】
電子インクに関する情報と、前記電子インクに関する認識結果の代替案とを含むツリー構造と対話するための方法であって、
前記ツリーからの認識結果の代替案を取得する要求であって、前記ツリー構造内の１つまたは複数のノードを指定する要求を前記ツリー構造に送信するステップと、
前記ツリー構造内の前記１つまたは複数のノードから代替案を受信するステップと
を備えることを特徴とする方法。
【請求項２】
前記送信ステップは、取り出される代替案の最大数の指示を含み、
受信される代替案の数は、前記指示で示される前記代替案の数以下である
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記ツリー構造内の前記ノードの代替案を要求することによってユーザが前記ツリー構造をより多く表示することを可能にすることを特徴とする請求項１に記載の方法。
【請求項４】
電子インクに関する情報と、前記電子インクに関する認識結果の代替案とを含むツリー構造と対話するための方法であって、
前記ツリーからの認識結果の代替案を取得する要求であって、前記ツリー構造内の１つまたは複数のストロークを指定する要求を前記ツリー構造に送信するステップと、
前記ツリー構造内の前記１つまたは複数のストロークに関する代替案を受信するステップと
を備えることを特徴とする方法。
【請求項５】
前記送信ステップは、取り出される代替案の最大数の指示を含み、
受信される代替案の数は、前記指示で示される前記代替案の数以下であることを特徴とする請求項４に記載の方法。
【請求項６】
前記ツリー構造内のノードの代替案を要求することによってユーザが前記ツリー構造を上や下に移動することを可能にすることを特徴とする請求項４に記載の方法。
【請求項７】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するための方法であって、
代替案の指定を含む要求を前記ツリー構造に送信するステップと、
前記指定された代替案をオブジェクト内の最上位代替案として設定するように前記ツリー構造を修正するステップと
を備えることを特徴とする方法。
【請求項８】
前記要求を送信する前記ステップは、
前記ツリー構造の後の修正に拘らず、前記指定された代替案を前記最上位代替案として保持するための指示を前記ツリー構造に送信することをさらに備える
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記要求を送信する前記ステップは、
前記指定された代替案が後に認識器に送信されることを防ぐことをさらに備える
ことを特徴とする請求項７に記載の方法。
【請求項１０】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するための方法であって、
前記ツリー構造に、ストロークおよびノードのうちの少なくとも１つを指定する要求を送信するステップと、
前記ストロークおよびノードのうちの前記少なくとも１つを参照する、前記ストロークおよびノード以外のものの集合を含む応答を前記ツリー構造から受信するステップと
を備えることを特徴とする方法。
【請求項１１】
前記要求はストロークを指定し、前記集合は、前記指定されたストロークを参照するすべてのノードを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記要求はストロークを指定し、前記集合は、前記指定されたストロークのすべてを参照するノードだけを含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記要求はノードを指定し、前記集合は、前記指定されたノードを参照するすべてのストロークを含むことを特徴とする請求項１０に記載の方法。
【請求項１４】
前記要求はノードを指定し、前記集合は、前記指定されたノードのすべてを参照するストロークだけを含むことを特徴とする請求項１０に記載の方法。
【請求項１５】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するための方法であって、
テキスト範囲を指定する要求を前記ツリー構造に送信するステップと、
前記ツリー構造から、前記指定されたテキスト範囲を含むコンテクスト・ノードの集合を受信するステップと
を備えることを特徴とする方法。
【請求項１６】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するための方法であって、
１つまたは複数のコンテクスト・ノードを指定する要求を前記ツリー構造に送信するステップと、
前記ツリー構造から前記コンテンツ・ノードに関するテキスト範囲を受信するステップと
を備えることを特徴とする方法。
【請求項１７】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
前記ツリー構造を格納する記憶装置と、
前記記憶装置から前記ツリー構造を取り出して、
前記ツリーからの認識結果の代替案を取得する要求をであって、前記ツリー構造内の１つまたは複数のノードを指定する要求を前記ツリー構造に送信するステップと、
前記ツリー構造内の前記１つまたは複数のノードから代替案を受信するステップと
を実行するプロセッサと
を備えることを特徴とするシステム。
【請求項１８】
前記送信ステップは、取り出される代替案の最大数の指示を含み、
受信される代替案の数は、前記指示で示される前記代替案の数以下である
ことを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記ツリー構造内の前記ノードの代替案を要求することによってユーザが前記ツリー構造をより多く表示することを可能にすることを特徴とする請求項１７に記載のシステム。
【請求項２０】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
前記ツリー構造を格納する記憶装置と、
前記記憶装置から前記ツリー構造を取り出すプロセッサであって、
前記ツリーからの認識結果の代替案を取得する要求であって、前記ツリー構造内の１つまたは複数のストロークを指定する要求を前記ツリー構造に送信するステップと、
前記ツリー構造内の前記１つまたは複数のストロークに関する代替案を受信するステップと
を実装しているプロセッサと
を備えることを特徴とするシステム。
【請求項２１】
前記送信ステップは、取り出される代替案の最大数の指示を含み、
受信される代替案の数は、前記指示で示される前記代替案の数以下であることを特徴とする請求項２０に記載のシステム。
【請求項２２】
前記プロセッサは、前記ツリー構造内のノードの代替案を要求することによってユーザが前記ツリー構造を上や下に移動することを可能にすることを特徴とする請求項２０に記載のシステム。
【請求項２３】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
前記ツリー構造を格納する記憶装置と、
前記記憶装置から前記ツリー構造を取得するプロセッサであって、
代替案の指定を含む要求を前記ツリー構造に送信するステップと、
前記指定された代替案を前記オブジェクト内の最上位代替案として設定するように前記ツリー構造を修正するステップと
を実装しているプロセッサと
を備えることを特徴とするシステム。
【請求項２４】
前記要求を送信する前記ステップは、
前記ツリー構造の後の修正に拘らず、前記指定された代替案を前記最上位代替案として保持するための表示を前記ツリー構造に送信する
ことをさらに備えることを特徴とする請求項２３に記載のシステム。
【請求項２５】
前記要求を送信する前記ステップは、
前記指定された代替案が後に認識器に送信されることを防ぐことをさらに備える
ことを特徴とする請求項２３に記載のシステム。
【請求項２６】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
前記ツリー構造を格納する記憶装置と、
前記記憶装置から前記ツリー構造を取得するプロセッサであって、
前記ツリー構造に、ストロークおよびノードのうちの少なくとも１つを指定する要求を送信するステップと、
前記ストロークおよびノードのうちの前記少なくとも１つを参照する、前記ストロークおよびノード以外のものの集合を含む応答を前記ツリー構造から受信するステップと
を実施するプロセッサと
を備えることを特徴とするシステム。
【請求項２７】
前記要求はストロークを指定し、前記集合は、前記指定されたストロークを参照するすべてのノードを含むことを特徴とする請求項２６に記載のシステム。
【請求項２８】
前記要求はストロークを指定し、前記集合は、前記指定されたストロークのすべてを参照するノードだけを含むことを特徴とする請求項２６に記載のシステム。
【請求項２９】
前記要求はノードを指定し、前記集合は、前記指定されたノードを参照するすべてのストロークを含むことを特徴とする請求項２６に記載のシステム。
【請求項３０】
前記要求はノードを指定し、前記集合は、前記指定されたノードのすべてを参照するストロークだけを含むことを特徴とする請求項２６に記載のシステム。
【請求項３１】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
前記ツリー構造を格納する記憶装置と、
前記記憶装置から前記ツリー構造を取得するプロセッサであって、
テキスト範囲を指定する要求を前記ツリー構造に送信するステップと、
前記ツリー構造から、指定されたテキスト範囲を含むコンテクスト・ノードの集合を受信するステップと
を実施するプロセッサと
を備えることを特徴とするシステム。
【請求項３２】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
前記ツリー構造を格納する記憶装置と、
前記記憶装置から前記ツリー構造を取得するプロセッサであって、
１つまたは複数のコンテクスト・ノードを指定する要求を前記ツリー構造に送信するステップと、
前記ツリー構造から前記コンテンツ・ノードに関するテキスト範囲を受信するステップと
を実施するプロセッサと
を備えることを特徴とするシステム。
【請求項３３】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
前記ツリーからの認識結果の代替案を取得する要求であって、前記ツリー構造内の１つまたは複数のノードを指定する要求を前記ツリー構造に送信する手段と、
前記ツリー構造内の前記１つまたは複数のノードから代替案を受信する手段と
を備えることを特徴とするシステム。
【請求項３４】
前記送信手段は、取り出される代替案の最大数の指示を含み、
受信される代替案の数は、前記指示で示される前記代替案の数以下であることを特徴とする請求項３３に記載のシステム。
【請求項３５】
前記ツリー構造内の前記ノードの代替案を要求することによってユーザが前記ツリー構造をより多く表示することを可能にすることを特徴とする請求項３３に記載のシステム。
【請求項３６】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
前記ツリーからの認識結果の代替案を取得する要求であって、前記ツリー構造内の１つまたは複数のストロークを指定する要求を前記ツリー構造に送信する手段と、
前記ツリー構造内の前記１つまたは複数のストロークに関する代替案を受信する手段と
を備えることを特徴とするシステム。
【請求項３７】
前記送信手段は、取り出される代替案の最大数の指示を含み、
受信される代替案の数は、前記指示で示される前記代替案の数以下であることを特徴とする請求項３６に記載のシステム。
【請求項３８】
前記ツリー構造内のノードの代替案を要求することによってユーザが前記ツリー構造を上や下に移動することを可能にすることを特徴とする請求項３６に記載のシステム。
【請求項３９】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
前記ツリー構造に代替案の指定を含む要求を送信する手段と、
前記指定された代替案を前記オブジェクト内の最上位代替案として設定するように修正する手段と
を備えることを特徴とするシステム。
【請求項４０】
前記要求を送信する前記手段は、
前記ツリー構造の後の修正に拘らず、前記指定された代替案を前記最上位代替案として保持するための表示を前記ツリー構造に送信する手段をさらに備える
ことを特徴とする請求項３９に記載のシステム。
【請求項４１】
前記要求を送信する前記手段は、
前記指定された代替案が後に認識器に送信されることを防ぐ手段をさらに備えることを特徴とする請求項３９に記載のシステム。
【請求項４２】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
前記ツリー構造に、ストロークおよびノードのうちの少なくとも１つを指定する要求を送信する手段と、
前記ストロークおよびノードのうちの前記少なくとも１つを参照する、前記ストロークおよびノード以外のものの集合を含む応答を前記ツリー構造から受信する手段と
を備えることを特徴とするシステム。
【請求項４３】
前記要求はストロークを指定し、前記集合は、前記指定されたストロークを参照するすべてのノードを含むことを特徴とする請求項４２に記載のシステム。
【請求項４４】
前記要求はストロークを指定し、前記集合は、前記指定されたストロークのすべてを参照するノードだけを含むことを特徴とする請求項４２に記載のシステム。
【請求項４５】
前記要求はノードを指定し、前記集合は、前記指定されたノードを参照するすべてのストロークを含むことを特徴とする請求項４２に記載のシステム。
【請求項４６】
前記要求はノードを指定し、前記集合は、前記指定されたノードのすべてを参照するストロークだけを含むことを特徴とする請求項４２に記載のシステム。
【請求項４７】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
テキスト範囲を指定する要求を前記ツリー構造に送信する手段と、
前記ツリー構造から、指定されたテキスト範囲を含むコンテクスト・ノードの集合を受信する手段と
を備えることを特徴とするシステム。
【請求項４８】
電子インクに関する情報と、前記電子インクに関する代替の認識結果とを含むツリー構造と対話するためのシステムであって、
１つまたは複数のコンテクスト・ノードを指定する要求を前記ツリー構造に送信する手段と、
前記ツリー構造から前記コンテンツ・ノードに関するテキスト範囲を受信する手段と
を備えることを特徴とするシステム。
【請求項４９】
格納されたデータ構造を有するコンピュータ読み取り可能媒体であって、前記データ構造は、
インクに関連付けられた階層構造を表すツリーを表す第１の部分と、
前記ツリーに関連付けられた１つまたは複数のノードの集合を含む選択ラティスを表す第２の部分と
を備えることを特徴とするコンピュータ読み取り可能媒体。
【請求項５０】
電子インクの階層的な性質を表すツリー構造のコンテンツにアクセスするための方法であって、
ユーザによってインク・ストロークを指定するステップであって、前記指定されたインク・ストロークは複数のインクの行からのインク・ストロークを含むように指定するステップと、
前記指定されたインク・ストロークへの参照を選択ラティスとして格納するステップと
を備えることを特徴とする方法。
【請求項５１】
前記指定されたインク・ストロークに関連付けられたラティス・カラムを決定するステップと、
前記インク・ストロークに関連付けられ、前記選択ラティスを形成するラティス・カラムの集合を返すステップと
をさらに備えることを特徴とする請求項５０に記載の方法。
【請求項５２】
前記ラティス・カラムのそれぞれは、前記インク・ストロークの最上位の代替認識を含むことを特徴とする請求項５０に記載の方法。
【請求項５３】
前記選択ラティスは、行ノードに関連付けられたラティス・カラムを含むことを特徴とする請求項５０に記載の方法。
【請求項５４】
前記選択ラティスは、段落ノードに関連付けられたラティス・カラムを含むことを特徴とする請求項５０に記載の方法。
【請求項５５】
前記選択ラティスは、語ノードに関連付けられたラティス・カラムを含むことを特徴とする請求項５０に記載の方法。
【請求項５６】
前記選択ラティスは、数学ノードに関連付けられたラティス・カラムを含むことを特徴とする請求項５０に記載の方法。
【請求項５７】
前記選択ラティスは、任意のコンテクスト・ノードに関連付けられたラティス・カラムを含むことを特徴とする請求項５０に記載の方法。
【請求項５８】
少なくとも１つのプロパティを前記ラティス・カラム内に格納するステップをさらに備えることを特徴とする請求項５１に記載の方法。
【請求項５９】
前記階層的な構造はラティスとして表現され、
少なくとも１つのプロパティを前記ラティス内に格納するステップをさらに備えることを特徴とする請求項５０に記載の方法。
【請求項６０】
前記選択ラティスは、代替案を含むラティス・カラムを含み、前記代替案はインクの認識結果の代替案であることを特徴とする請求項５０に記載の方法。
【請求項６１】
前記選択ラティスは、代替案を含むラティス・カラムを含み、前記代替案は前記ツリー構造の代替ビューであることを特徴とする請求項５０に記載の方法。
【請求項６２】
階層的な構造を表すラティスを作成するための方法であって、
インクを解析するステップと、
前記解析されたインクを認識するステップと、
前記認識するステップからの代替案をラティス・カラム内に格納するステップと
をさらに備え、
前記代替案は前記インクの異なる階層構造を表すことを特徴とする方法。
【請求項６３】
少なくとも１つのプロパティを前記ラティス内に格納するステップをさらに備えることを特徴とする請求項６２に記載の方法。
【請求項６４】
少なくとも１つのプロパティを前記ラティス・カラム内に格納するステップをさらに備えることを特徴とする請求項６２に記載の方法。
【請求項６５】
前記ラティス・カラムはラティス要素を含み、
少なくとも１つのプロパティを前記ラティス要素内に格納するステップをさらに備えることを特徴とする請求項６２に記載の方法。
【請求項６６】
階層構造を表すラティスを作成するための方法であって、
インクを解析するステップと、
前記解析されたインクを認識するステップと、
前記認識ステップからの代替案をラティス・カラム内に格納するステップと
をさらに備え、
前記代替案は前記認識されたインクの異なるデータ・タイプを表すことを特徴とする方法。
【請求項６７】
前記異なるデータ・タイプは、インク語と描画とを含むことを特徴とする請求項６６に記載の方法。
【請求項６８】
前記異なるデータ・タイプは、インク語と数式とを含むことを特徴とする請求項６６に記載の方法。
【請求項６９】
前記異なるデータ・タイプは、インク語と音符とを含むことを特徴とする請求項６６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の態様は、コンピューティング・システムに関する。より詳細には、本発明の態様は、認識システムからの代替案に対処することに関する。
【背景技術】
【０００２】
テキストを扱うことに加えて、コンピュータは現在、電子インクを記録し、修正する能力を有する。電子インクは、その固有の形で保たれることができ、またはテキストとして認識されことができる。電子インクの認識は、必ずしも完璧であるとは限らない。認識プロセスは、人が書いている文脈に加えて、人の手書き文字の読みやすさに基づいて変化する傾向がある。
【０００３】
【非特許文献１】Internet Printout: Http://msdn.microsoft.com/library/en-us/tpcsdk10/locestar/appendix/tbconrecolatticestruct...-Recognizer Lattice Structure, dated October 14,
【発明の開示】
【発明が解決しようとする課題】
【０００４】
コンピューティング・システムは、ユーザが受信された手書き文字についてどの認識結果が正確であるかを選択することができるように、ユーザに複数の代替案を提供する。しかし、代替案の従来の表現は、電子インクの複雑な表現に対処していない。たとえば、代替案の従来の表現は、電子インクの１つのライン（行）を解析することに制限されている。コンピューティング・システムは、所与の任意のライン（行）から外れた範囲の電子インクのコンテクスト上の価値を考慮していなかった。
【０００５】
代替案を表現し、それをインクのツリー構造全体に関連付けるための改良型の解析システムおよびプロセスが求められている。
【課題を解決するための手段】
【０００６】
本発明の態様は、上述の問題の１つまたは複数に対処し、それによって、認識システムからの代替案に対処するやり方を提供する。
【発明を実施するための最良の形態】
【０００７】
本発明は、例示にしたがって説明されており、添付の諸図面中で限定されていない。図面では、同様の参照番号は、類似の要素を示す。
【０００８】
本発明の態様は、電子インクの（複数の）代替表現を認識し、それに対処することに関する。態様は、代替の分析結果をツリーの一部として表現することを含む。
【０００９】
この文書は、読者の助けとなるように複数のセクションに分けられている。これらのセクションは、概要、インクの特性、用語、汎用コンピューティング環境、代替案の表現、オブジェクトおよびオブジェクト・リレーションシップ、アプリケーション・プログラミング・インターフェース、ラティス作成、および実施例、を含む。
【００１０】
要素間の様々な接続について以下の説明で述べられていることに留意されたい。これらの接続は一般に、また特段の定めがない限り、直接的でも、非直接（間接）的でもよく、本明細書は、この点で制限するものではないことに留意されたい。
【００１１】
概要
本発明の様々な実施例によれば、文書のコンテンツは、ツリー構造に配列することができる。ツリー構造は、電子インクと、そのインクのテキスト表現の両方を含むことができる。ツリーは、それだけに限らないが、ネイティブ・テキスト、インクから認識されるテキスト、音声から認識されるテキスト、描画、ピクチャ、チャート、プレゼンテーション、スプレッドシート、数式、音符、オーディオおよび／またはビデオ・クリップならびに他の情報を含めて、非インクのコンテンツをも含むことができる。テキスト表現は人の手書き文字の文脈および読みやすさに基づいて変化する可能性があるので、テキスト情報の代替表現もまた、ツリー構造内に含めることができる。本発明の態様は、代替の認識結果を含む１つまたは複数のラティスを使用することによるツリー構造の表現を含む。
【００１２】
ツリー構造を使用して、ソフトウェア・オペレーティング・システムまたはアプリケーションは、ツリー構造を容易にトラバースし、必要なときに代替案を取得することができる。ツリー構造は、文書内の様々な要素を定義することができる。たとえば、データ構造内のノードは、インクのストロークに対応することができ、そのインク・ストロークをテキストのインク・ストロークまたは描画のインク・ストロークにさらに分類することができる。
【００１３】
このタイプのデータ構造は、文書の要素を複数の語（words）、複数の行（lines）および複数の段落など、意味のあるグループ内に関連付けることもできる。したがって、ソフトウェア・アプリケーションが、手書き文字の電子インクの段落を表すツリー構造を維持する場合、その葉ノードは、電子インクの個々のストロークを段落内の語に対応する語ノードに関連付けることができる。次いで、ツリー構造は、その語ノードを、段落内の行に対応する行ノードに関連付けることができる。次いで、それぞれの行ノードは、段落に対応するノードに関連付けることができる。さらに、ソフトウェア・オペレーティング・システムまたはアプリケーションは、電子インク・ストロークに対応するノードを認識結果に関連付けるツリーまたは他のデータ構造を維持することができる。したがって、これらのデータ構造は、関連付けられた電子インク・ストローク間のリレーションシップの定義すること、およびインクの代替認識結果の取扱いを向上させること、の両方のために使用することができる。
【００１４】
以下で述べるように、これらのデータ構造は、文書内の電子インクを分析するために、本発明の様々な実施例によるインク分析ツールで使用されることができる。本発明の様々な実施例によれば、ソフトウェア・オペレーティング・システムまたはアプリケーションは、まず文書のデータ構造を作成することによって、文書内の電子インクの分析を取得することができる。データ構造は、既に分析されている文書要素間のリレーションシップを表し、したがって新しい電子インクが分析されることになるコンテクストを提供する。このデータ構造すなわち「インク分析器オブジェクト」は、未だ分析されていない新しい電子インクをも含む。すなわち、インク分析器オブジェクトは、他の文書要素とのリレーションシップが確立されていない電子インクをも含む。
【００１５】
少なくとも２つの操作が、受信されるインクに対して実施することができる。第１の操作は、受信されるインクを分析し、ツリー構造を作成する解析プロセスである、第２の操作は、電子インクを認識し、そのツリー構造から、電子インクの（複数の）代替の認識を含むラティスを作成する認識プロセスである。他の操作も同様に、受信されるインクに対して実施されることができ、本明細書で述べる解析および認識プロセスに限定されない。たとえば、解析は、ストロークの局所的なグループ化を決定する。認識は、その複数のストロークがある言語のどの語（あるいは形状、または他のタイプのデータ）を表現しているかを決定する。
【００１６】
認識の代替案は、ラティスに関連付けられ、親文書または他のファイルと共に転送することができる。あるいは、ラティスおよび代替認識結果は、各コンピューティング・システム上で新たに作成することができる。マシン間でラティスおよび認識結果の交換を可能にすることの利点は、インク、および以前に取得された情報のあるマシンから別のマシンへの持続性である。ここでは、第２のマシンは、その代替の認識結果がそのラティスに関連付けられているので、認識器に新しい結果を要求する必要はない。したがって、そのラティスおよび代替案は、一度存在すると、認識器を備えた、および備えないマシン上で使用することができる。この能力はさらに、下流のマシンがインクまたは他の入力を認識する能力を有するかどうかに拘らず、すべてのマシンへの認識結果の拡張性をサポートすることができる。
【００１７】
ラティス要素は、データを格納する（または少なくとも参照する）、ラティス内のエンティティとすることができる。ラティス要素内のデータは、テキストに限定されない。ラティス要素は、それだけに限らないが、認識されるインク、認識されないインク、タイプされるテキスト、数式、音符などを含めて、任意の数の認識可能なエンティティを、含んだりまたは参照したりすることができる。たとえば、数学認識器を使用していた場合、要素のそれぞれは、各要素の値として、数学ＸＭＬ（または同様のもの）を有することができる。それぞれ異なる要素は特定のストロークおよび次のカラムをやはり参照することができるが、データは、プレーン・テキストに限定されない。
【００１８】
インクの特性
インク・ペンを使用するユーザには知られているように、物理的なインク（インク壷を備えたペンを使用して紙上に書かれる種類のインク）は、線分（line segments）によって接続された一連の座標より多くの情報を伝達することができる。たとえば、物理インクは、（インクの厚さによる）ペンの圧力、（線または曲線分の形状、および離散点の周りのインクの振舞いによる）ペンの角度、ならびに（直線度、線幅、および線または曲線の進路上で変化する線幅による）ペン先の速度、を反映することができる。さらなる例は、インクが、それが置かれた紙の繊維、または他の表面への吸収された態様を含む。これらの微妙な特性は、上記で挙げたプロパティを伝達するのにも役立つ。これらの付加的なプロパティのために、感情、個性、強調などは、ポイント間で一様な線幅を備えたものよりもさらに瞬間的に伝達することができる。
【００１９】
電子インク（すなわちインク）は、ユーザがスタイラス・ベースの入力装置を使用する場合にキャプチャされる電子情報のキャプチャおよび表示に関する。電子インクは、ストロークのシーケンス、またはストロークの任意の集合を指し、ただし、各ストロークは、複数の点からなるシーケンスで構成される。ストロークは、一度に描画され、あるいは収集されることも、独立した時および位置で、また独立した理由のために描画される、または収集されることもある。この複数の点は、デカルト座標（Ｘ，Ｙ）、極座標（ｒ，Θ）および当技術分野で知られている他の技術を含めて、様々な周知の技術を使用して表現することができる。電子インクは、圧力、角度、速度、色、スタイラスのサイズ、およびインクの不透明性を含めて、本物のインクのプロパティの表現を含むことができる。電子インクはさらに、とりわけ、インクがページ上に置かれた順序（ほとんどの西洋言語では左から右、次いで下へのラスタ・パターン）、タイムスタンプ（インクがいつ置かれたかを示す）、そのインクの筆者の識別、および発信元の装置（originating device）（インクが描かれたマシンの識別、またはインクを置くために使用されたペンの識別のうちの少なくとも１つ）をさらに含むことができる。
【００２０】
上述の特性のうちで、一連の座標である複数のストロークおよび１つのストロークの時間的順序が主として使用される。すべてのこれらの特性も同様に使用されることができる。
【００２１】
【表１−１】
2006164259.tif 000003
【００２２】
【表１−２】
2006164259.tif 000004
【００２３】
汎用コンピューティング環境
図１に、本発明を実装することができる適切なコンピューティング・システム環境１００の一例を示す。コンピューティング・システム環境１００は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定について示唆するためのものではない。またコンピューティング環境１００は、例示的なオペレーティング環境１００内に示す構成要素のいずれか１つまたは組合せに関する依存関係または要件を有するものと解釈すべきでない。
【００２４】
本発明は、多くの他の汎用または特定目的のコンピューティング・システム環境または構成で動作することができる。本発明の使用に適切なよく知られているコンピューティング・システム、環境および／または構成の例には、それだけに限らないが、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルドまたはラップトップ装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのシステム、セットトップボックス、プログラマブルな家電、ネットワークＰＣ、ミニ・コンピュータ、メインフレーム・コンピュータ、上記システムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
【００２５】
本発明について、コンピュータによって実行されるプログラム・モジュールなどのコンピュータ実行可能命令の一般な文脈で述べることができる。一般に、プログラム・モジュールは、特定のタスクを遂行し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。本発明は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実施される分散コンピューティング環境内で実施されることもできる。分散コンピューティング環境内では、プログラム・モジュールは、メモリ記憶装置を含めて、ローカルとリモートの両方のコンピュータ記憶媒体内に置くことができる。
【００２６】
図１を参照すると、本発明を実装するための例示的なシステムが、コンピュータ１１０の形の汎用コンピューティング装置を含んでいる。コンピュータ１１０の構成要素は、それだけに限らないが、処理装置１２０、システム・メモリ１３０、ならびにシステム・メモリを含めて様々なシステム構成要素を処理装置１２０に結合するシステム・バス１２１を含むことができる。システム・バス１２１は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および様々なバス・アーキテクチャのいずれかを用いたローカル・バスを含めて、複数タイプのバス構造のいずれかとすることができる。限定するためではなく、例を挙げると、こうしたアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ：Industry Standard Architecture）バス、マイクロ・チャネル・アーキテクチャー（ＭＣＡ：Micro Channel Architecture）バス、拡張ＩＳＡ（ＥＩＳＡ：Enhanced ISA）バス、ビデオ電子規格協会（ＶＥＳＡ：Video Electronics Standards Association）ローカル・バス、およびメザニン・バスとも呼ばれる周辺コンポーネント相互接続（ＰＣＩ：Peripheral Component Interconnect）バスが含まれる。
【００２７】
コンピュータ１１０は一般に、様々なコンピュータ読み取り可能媒体を含む。コンピュータ読み取り可能媒体は、コンピュータ１１０によってアクセスすることができる任意の使用可能な媒体とすることができ、揮発性と不揮発性、取り外し可能と取り外し不可能の両方の媒体を含む。限定するためではなく、例を挙げると、コンピュータ読み取り可能媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造体、プログラム・モジュールまたは他のデータなどの情報を格納するための任意の方法または技術で実施された揮発性と不揮発性、取り外し可能と取り外し不可能媒体の両方を含む。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために使用されることができ、またコンピュータ１１０によってアクセスされることができる他の任意の媒体が含まれる。通信媒体は一般に、コンピュータ読み取り可能命令、データ構造体、プログラム・モジュールまたは他のデータを、搬送波や他のトランスポート機構などの変調されたデータ信号で具現化し、任意の情報送達媒体を含む。用語「変調されたデータ信号」は、信号の情報を符号化するなどのやり方でその特性の１つまたは複数が設定されまたは変更された信号を意味する。限定のためではなく、例を挙げると、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線などの無線媒体、および他の無線媒体が含まれる。上記内容のいずれかの組合せもまた、コンピュータ読み取り可能媒体の範囲内に含まれるべきである。
【００２８】
システム・メモリ１３０は、読出し専用メモリ（ＲＯＭ：read only memory）１３１およびランダム・アクセス・メモリ（ＲＡＭ：random access memory）１３２などの揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム（ＢＩＯＳ：basic input/output system）１３３は一般に、ＲＯＭ１３１に格納される。ＲＡＭ１３２は一般に、処理装置１２０によってダイレクトにアクセス可能であり、かつ／またはそれによるオペレーションを現在受けているデータおよび／またはプログラム・モジュールを含む。限定するためではなく、例示するために、図１に、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６およびプログラム・データ１３７を示す。
【００２９】
コンピュータ１１０は、他の取り外し可能／取り外し不可能、揮発性／不揮発性のコンピュータ記憶媒体をも含むことができる。例示するためだけに、図１に、取り外し不可能な不揮発性の磁気媒体から読み出しまたはそこに書き込むハードディスク・ドライブ１４１、取り外し可能な不揮発性の磁気ディスク１５２から読み出しまたはそこに書き込む磁気ディスク・ドライブ１５１、およびＣＤ−ＲＯＭや他の光媒体などの取り外し可能な不揮発性の光ディスク１５６から読み出しまたはそこに書き込む光ディスク・ドライブ１５５を示す。例示的なオペレーティング環境内で使用可能な他の取り外し可能／取り外し不可能、揮発性／不揮発性のコンピュータ記憶媒体には、それだけに限らないが、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスク・ドライブ１４１は一般に、インターフェース１４０などの取り外し不可能メモリ・インターフェースによってシステム・バス１２１に接続され、磁気ディスク・ドライブ１５１および光ディスク・ドライブ１５５は一般に、インターフェース１５０などの取り外し可能メモリ・インターフェースによってシステム・バス１２１に接続される。
【００３０】
上記で論じ、また図１に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ読み取り可能命令、データ構造体、プログラム・モジュールおよび他のデータの記憶域を提供する。図１では、たとえば、ハードディスク・ドライブ１４１は、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６およびプログラム・データ１４７を格納するものとして示されている。これらの構成要素は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６およびプログラム・データ１３７と同じでも、それとは異なっていてもよいことに留意されたい。少なくともそれらがそれぞれ異なるコピーであることを示すために、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、およびプログラム・データ１４７には異なる番号がここでは付与されている。ユーザは、キーボード１６２、およびマウス、トラック・ボールまたはタッチ・パッドと一般に称されるポインティング装置１６１などの入力装置を用いて、コンピュータ２０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）は、マイク、ジョイスティック、ゲームパッド、パラボラ・アンテナ、スキャナなどを含むことができる。これらのおよび他の入力装置はしばしば、システム・バスに結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス（ＵＳＢ：universal serial bus）などの他のインターフェースおよびバス構造によって接続されることもできる。モニタ１９１または他のタイプの表示装置もまた、ビデオ・インターフェース１９０などのインターフェースを介してシステム・バス１２１に接続される。モニタに加えて、コンピュータは、出力周辺インターフェース１９５を介して接続することができる、スピーカ１９６およびプリンタ１９７などの他の周辺出力装置をも含むことができる。
【００３１】
コンピュータ１１０は、リモート・コンピュータ１８０などの１つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク化された環境内で動作することができる。リモート・コンピュータ１８０は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、または他の一般的なネットワーク・ノードとすることができ、また図１にはメモリ記憶装置１８１だけが示されているが、コンピュータ１１０に関して上記で述べた要素の多くまたはすべてを一般に含む。図１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）１７１、および広域ネットワーク（ＷＡＮ：wide area network）１７３を含むが、他のネットワークをも含むことができる。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータ・ネットワーク、イントラネットおよびインターネットでは一般的である。
【００３２】
ＬＡＮネットワーキング環境内で使用される場合、コンピュータ１１０は、ネットワーク・インターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境内で使用される場合、コンピュータ１１０は一般に、モデム１７２、またはインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。内部にあることも、外部にあることもあるモデム１７２は、ユーザ入力インターフェース１６０または他の適切な機構を介してシステム・バス１２１に接続することができる。ネットワーク環境内では、コンピュータ１１０に関して示したプログラム・モジュール、またはその一部は、リモートメモリ記憶装置内に格納することができる。限定のためではなく、例示するために、図１に、メモリ装置１８１内に常駐するリモート・アプリケーション・プログラム１８５を示す。図示するネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段を使用することができることが理解されよう。
【００３３】
態様によっては、手書き文字の入力をデジタルでキャプチャするために、ペン・デジタイザ１６５、および付属のペンまたはスタイラス１６６が提供される。ペン・デジタイザ１６５とユーザ入力インターフェース１６０の間の直接接続が示されているが、実際にはペン・デジタイザ１６５は、無線を含めた任意の技術によって直接に処理装置１１０、パラレル・ポートまたは他のインターフェース、およびシステム・バス１３０に結合されることができる。またペン１６６は、それに関連付けられたカメラと、カメラによってキャプチャされたイメージ情報をバス１３０と対話するインターフェースに無線で送信するためのトランシーバとを含むことができる。さらに、ペンは、カメラに加えてまたはその代わりに、加速計、磁気計およびジャイロスコープを含めて、電子インクのストロークを決定するための他の感知システムを含むことができる。
【００３４】
図示するネットワーク接続は例示的であり、コンピュータ間の通信リンクを確立する他の手段を使用することができることが理解されよう。ＴＣＰ／ＩＰ、イーサネット（登録商標）、ＦＴＰ、ＨＴＴＰなど、様々な周知のプロトコルのいずれかの存在が想定され、したがって、このシステムは、ユーザがウェブ・ベースのサーバからウェブ・ページを取り出すことを可能にするためにクライアント−サーバ構成でオペレーションを実行することができる。様々な従来型ウェブ・ブラウザのいずれかを、ウェブ・ページ上のデータを表示し操作するために使用することができる。
【００３５】
プログラミング・インターフェース（すなわち、より単純にインターフェース）は、コードの１つまたは複数のセグメントが、コードの１つまたは複数の他のセグメントによって提供される機能と通信し、またはそれにアクセスすることを可能にするための任意の機構、プロセス、プロトコルと見なすことができる。あるいは、プログラミング・インターフェースは、他のコンポーネントの１つまたは複数の機構、メソッド、関数呼出し、モジュールなどに通信可能に結合することができるシステムのコンポーネントの１つまたは複数の機構、メソッド、関数呼出し、モジュール、オブジェクトなどと見なすことができる。前文の「コードのセグメント」は、適用される用語に関係なく、あるいはコード・セグメントがそれぞれ別個にコンパイルされようが、あるいはコード・セグメントがソース、中間物（intermediate）またはオブジェクト・コードとして提供されようが、コード・セグメントが実行時のシステムまたはプロセスで使用されようが、あるいはそれが同じまたは異なるマシンに置かれ、または複数のマシンに渡って分散されようが、あるいはコード・セグメントによって表された機能が完全にソフトウェアで、完全にハードウェアで、またはハードウェアとソフトの組合せで実装されようが、１つまたは複数の命令または複数行のコードを含むものであり、たとえばコード・モジュール、オブジェクト、サブルーチン、関数などを含むものである。
【００３６】
概念的には、プログラミング・インターフェースは、図１Ｂまたは図１Ｃに示すように一般的に表すことができる。図１Ｂに、第１および第２のコード・セグメントが通信するための導管（conduit：コンジット）として、インターフェースＩｎｔｅｒｆａｃｅ１を示す。図１Ｃに、システムの第１と第２のコード・セグメントが媒体Ｍを介して通信することを可能にする、（第１および第２コード・セグメントの一部であっても、そうでなくてもよい）インターフェース・オブジェクトＩ１およびＩ２を備えるインターフェースを示す。図１Ｃの図では、インターフェース・オブジェクトＩ１およびＩ２を同じシステムの別個のインターフェースと見なすことができ、またオブジェクトＩ１およびＩ２、それに加えて媒体Ｍがインターフェースを構成すると見なすこともできる。図１Ｂおよび１Ｃは双方向のフロー、およびフローの各側のインターフェースを示しているが、特定の実装は、一方向の情報フローだけを有することがあり（または後述するように情報フローがない）、あるいは１つの側だけにインターフェースを有することがある。限定のためではなく、例を挙げると、アプリケーション・プログラミング・インターフェース（ＡＰＩ：application programming interface）、エントリ・ポイント、メソッド、関数、サブルーチン、リモート・プロシージャ・コールおよびコンポーネント・オブジェクト・モデル（ＣＯＭ：component object model）インターフェースなどの用語は、プログラミング・インターフェースの定義内に包含される。
【００３７】
こうしたプログラミング・インターフェースの態様は、第１コード・セグメントが第２コード・セグメントに情報（ただし、「情報」はその最も広い意味で使用されており、データ、コマンド、要求などを含む）を送信するためのメソッド、第２コード・セグメントがその情報を受信するメソッド、ならびにその情報の構造、シーケンス、構文、編成、スキーマ、タイミングおよびコンテンツを含むことができる。この点で、基礎をなすトランスポート媒体自体は、その媒体が有線、または無線、あるいは両方の組合せであれ、インターフェースによって定義されるやり方で情報が移送される限りインターフェースの操作にとって重要でないことがある。特定の状況では、情報は、従来の意味での一方向または両方向には渡されない、というのは、その情報の転送が別の機構（たとえばコード・セグメント間の情報フローとは別にバッファ、ファイルなどに置かれた情報など）で行われる場合、またはあるセグメントが第２コード・セグメントによって実施される機能に単純にアクセスする場合のような、情報転送が存在しないこともある。特定の状況、たとえばコード・セグメントが、緩く結合されまたは密接に結合された構成内のシステムの一部であるかどうかに依存する場合では、これらの態様のいずれかまたはすべてが、重要になる可能性あり、したがって、このリストは、例示的であり、非定的であると考えなければならない。
【００３８】
プログラミング・インターフェースのこの概念は、当業者には知られており、また本発明の上記の詳細な説明から明らかである。しかし、プログラミング・インターフェースを実装する他のやり方もあり、これらも、明示的に除外されない限り、それらも本願の特許請求の範囲によって包含されるものである。こうした他のやり方は、図１Ｂおよび１Ｃの極めて単純な図に比べて洗練されまたは複雑に見えるかも知れないが、類似の機能を実施して、同じ総体的な結果を達成する。プログラミング・インターフェースのいくつかの例示的な代替実装について次に簡潔に述べる。
【００３９】
Ａ．ファクタリング（factoring：要素への分界）  
あるコード・セグメントから別のコード・セグメントへの通信は、その通信を複数の個別の通信に分割することによって間接的に達成することができる。これは、図１Ｄおよび１Ｅに概略的に示されている。図示するように、いくつかのインターフェースは、機能性についての分割可能な複数の集合（sets）として表現することができる。したがって、図１Ｂおよび１Ｃのインターフェース機能は、同じ結果を達成するように、たとえば、数学的に２４、すなわち２×２×３×２を提供することができるように、要素に分解することができる。したがって、図１Ｄに示すように、インターフェースＩｎｔｅｒｆａｃｅ１によって提供される機能を細分して、そのインターフェースの通信を複数のインターフェースＩｎｔｅｒｆａｃｅ１Ａ、Ｉｎｔｅｒｆａｃｅ１Ｂ、Ｉｎｔｅｒｆａｃｅ１Ｃなどに変換し、、同じ結果を達成することができる。図１Ｅに図示するように、ＩｎｔｅｒｆａｃｅＩ１によって提供される機能は、複数のインターフェースＩ１ａ、Ｉ１ｂ、Ｉ１ｃなどにさらに分割し、同じ結果を達成することができる。同様に、第１コード・セグメントから情報を受信する第２コード・セグメントのインターフェースＩ２は、複数のインターフェースＩ２ａ、Ｉ２ｂ、Ｉ２ｃなどに、分解することができる。ファクタリングを行う場合、第１コード・セグメントに含まれるインターフェースの数は、第２コード・セグメントに含まれるインターフェースの数に一致する必要はない。図１Ｄおよび１Ｅのいずれの場合にも、インターフェースＩｎｔｅｒｆａｃｅ１およびＩ１の機能的な意味（spirit）は、それぞれ図１Ｂおよび１Ｃと同じままである。インターフェースのファクタリングは、結合（associative）、可換（commutative）および他の数学的な特性に従うこともでき、ファクタリングの認識が困難することができる。たとえば、操作の順序付けは重要ではないことがあり、その場合、あるインターフェースによって実施される機能は、そのインターフェースに達する前に、別のコードまたはインターフェースによって実施したり、あるいはシステムの別個のコンポーネントによって実施したりすることができる。さらに、プログラミング分野の当業者には、同じ結果を達成する、異なる機能呼出しを行う様々なやり方があることが理解されよう。
【００４０】
Ｂ．再定義（redefinition）  
場合によっては、意図される結果を依然として達成しながら、プログラミング・インターフェースの特定の態様（パラメータなど）を、無視し、追加しまたは再定義することが可能である。これは、図１Ｆおよび１Ｇに示されている。たとえば、図１ＢのインターフェースＩｎｔｅｒｆａｃｅ１が関数呼出しＳｑｕａｒｅ（入力、精度、出力）、すなわち３つのパラメータ、入力、精度および出力を含んでおり、また第１コード・セグメントから第２コード・セグメントに発行される呼出しを含むと仮定する。中間のパラメータ精度が所与のシナリオにおいて無関係である場合、図１Ｆに示すように、それは無視されることも、さらには（この状況において）意味のないパラメータで置き換えられることもある。無関係な追加のパラメータを追加することもできる。いずれの場合でも、入力が第２コード・セグメントによって二乗された後に出力が返される限り、二乗の機能は達成することができる。精度は、コンピュータ・システムのいくつかの下流または他の部分にとっては十分に意味のあるパラメータで非常にある可能性があるが、しかし、二乗の計算の狭義の目的にとっては精度が必要ないと認識されると、置き換られるかまたは無視されることができる。たとえば、有効な精度値を渡す代わりに、誕生日などの意味のない値を渡しても、結果に悪影響を及ぼさないと考えられる。同様に、図１Ｇに示すように、ＩｎｔｅｒｆａｃｅＩ１は、パラメータを無視し、またはそれにパラメータを追加するように再定義されたＩｎｔｅｒｆａｃｅＩ１’で置き換えられる。ＩｎｔｅｒｆａｃｅＩ２も同様に、不必要なパラメータ、または他のどこかで処理されることができるパラメータを無視するように再定義されたＩｎｔｅｒｆａｃｅＩ２’として再定義されることができる。ここでの重要な点は、場合によってはプログラミング・インターフェースは、一部の目的には必要ないパラメータなどの態様を含むことがあり、したがって、それは、無視されたりまたは再定義されたりすることができ、あるいは他の目的にために他のどこかで処理されることができる、ということである。
【００４１】
Ｃ．インライン・コーディング  
２つの別個のコード・モジュールの機能の一部またはすべてをマージして、その２つの別個のコード・モジュール間の「インターフェース」の形態を変更することが便利である場合がある。たとえば、図１Ｂおよび１Ｃの機能は、図１Ｈおよび１Ｉの機能にそれぞれ変換することができる。図１Ｈでは、図１Ｂにあった以前の第１および第２コード・セグメントは、その両方を含むモジュールにマージされている。この場合、コード・セグメントは依然として互いに通信していることがあるが、インターフェースは、その単一のモジュールにより適した形に適応させることができる。したがって、たとえば、形式的な呼出しおよび戻りのステートメントはもはや不要である可能性があるが、インターフェースＩｎｔｅｒｆａｃｅ１に従う類似の処理または応答もやはり行われる可能性がある。同様に、図１Ｉに示すように、図１ＣのＩｎｔｅｒｆａｃｅＩ２の一部（またはすべて）は、ＩｎｔｅｒｆａｃｅＩ１内にインライン・コーディングして、ＩｎｔｅｒｆａｃｅＩ１”を形成することができる。図示するように、ＩｎｔｅｒｆａｃｅＩ２はＩ２ａおよびＩ２ｂに分割され、インターフェース部分Ｉ２ａは、インターフェース１Ｉでインライン・コーディングされて、ＩｎｔｅｒｆａｃｅＩ１”を形成している。具体的な例として、図１ＣからのＩｎｔｅｒｆａｃｅＩ１が関数呼出しＳｑｕａｒｅ（入力、出力）を実施し、この関数呼出しはＩｎｔｅｒｆａｃｅＩ２によって受信され、このＩｎｔｅｒｆａｃｅＩ２は、第２コード・セグメントによって（入力の二乗の計算のため）入力で渡される値を処理した後に、二乗された結果を出力で戻すことを考慮されたい。こうした場合では、第２コード・セグメントによって実施される処理（入力の二乗）は、インターフェースを呼び出すことなく、第１コード・セグメントによって実施することができる。
【００４２】
Ｄ．分離（divorce）  
あるコード・セグメントから別のコード・セグメントへの通信は、通信を複数の別個の通信に分割することによって間接的に達成することができる。これは、図１Ｊおよび１Ｋに概略的に示されている。図１Ｊに示すように、第１インターフェースＩｎｔｅｒｆａｃｅ１上の通信を、別のインターフェース、この場合にはインターフェースＩｎｔｅｒｆａｃｅ２Ａ、Ｉｎｔｅｒｆａｃｅ２ＢおよびＩｎｔｅｒｆａｃｅ２Ｃに準拠するように変換するために、１つまたは複数のコード（元のインターフェースからの機能および／またはインターフェース機能を分離するので、分離インターフェース（Divorce Interface）と言う）が提供される。これは、たとえばＩｎｔｅｒｆａｃｅ１プロトコルによって、たとえばオペレーティング・システムと通信するように設計されたインストール・ベースのアプリケーションが存在する場合であり、しかし、この場合、オペレーティング・システムは、別のインターフェース、この場合はインターフェースＩｎｔｅｒｆａｃｅ２Ａ、Ｉｎｔｅｒｆａｃｅ２ＢおよびＩｎｔｅｒｆａｃｅ２Ｃを使用するように変更される。重要な点は、第２コード・セグメントによって使用される元のインターフェースが、第１コード・セグメントによって使用されるインターフェースともはや互換性がないように変更され、したがって、媒介手段を使用して、古いインターフェースと新しいインターフェースの互換を取ることである。同様に、図１Ｋに示すように、第３コード・セグメントを導入し、インターフェースＩ１からの通信をその分離ＩｎｔｅｒｆａｃｅＤＩ１で受け取り、その分離ＩｎｔｅｒｆａｃｅＤＩ２から、そのＤＩ２と連携して動作するように再設計された、たとえばＩｎｔｅｒｆａｃｅＩ２ａおよびＩ２ｂにインターフェース機能を送信して、機能的に同じ結果を提供することができる。同様に、ＤＩ１およびＤＩ２は、共に働いて、図１ＣのＩｎｔｅｒｆａｃｅＩ１およびＩ２の機能を新しいオペレーティング・システム向けに変換し、機能的に同じまたは類似の結果を提供することができる。
【００４３】
Ｅ．再書き込み（rewriting）  
さらに別の可能な変形体（variant）は、コードを動的に再書き込みして、インターフェース機能を何か別のものに置き換える、全体的な同じ結果を達成することができる。たとえば、実行環境（．ＮＥＴフレームワーク、Ｊａｖａ（登録商標）ランタイム環境、または他の類似のランタイムタイプの環境など）で、中間言語（Ｍｉｃｒｏｓｏｆｔ  ＩＬ、Ｊａｖａ（登録商標）  ＢｙｔｅＣｏｄｅなど）で提示されたコード・セグメントがジャスト・イン・タイム（ＪＩＴ：just-in-time）コンパイラまたはインタプリタに提供されるシステムが考えられる。ＪＩＴコンパイラは、第１コード・セグメントから第２コード・セグメントへの通信を動的に変換して、すなわち第２コード・セグメント（元のまたは異なる第２コード・セグメント）によって必要とされる可能性のある異なるインターフェースにそれを準拠させるように書くことができる。これは、図１Ｌおよび１Ｍに示されている。図１Ｌで分かるように、この手法は、上述の分離シナリオに類似する。インストール・ベースのアプリケーションがＩｎｔｅｒｆａｃｅ１プロトコルによるオペレーティング・システムと通信するように設計されているが、次いでそのオペレーティング・システムが異なるインターフェースを使用するように変更される場合に行われる。ＪＩＴコンパイラを使用して、インストールされたベースのアプリケーションからの通信をオペレーティング・システムの新しいインターフェースにオンザフライ（on the fly:直ちに）で準拠させることができる。図１Ｍに示すように、インターフェースを動的に再書き込みするこの手法は、インターフェースの動的なファクタリングやその他の動的な変更にも同様に適用することができる。
【００４４】
代替の実施形態によってインターフェースと同じまたは類似の結果を達成するための上記のシナリオは、様々なやり方で直列にかつ／または並列に、あるいは他の介在するコードと組み合わせられることもできることにも留意されよう。したがって、上記で提示した代替の諸実施形態は、相互排他的ではなく、図１Ｂおよび１Ｃに提示された一般的なシナリオと同じまたはそれに等価のシナリオをもたらすために、混在させ、整合させ、組み合わせることができる。ほとんどのプログラミング構造物と同様に、本明細書では説明されていないが、しかし本発明の趣旨および範囲によって表される、同じまたは類似のインターフェース機能を達成する他の類似のやり方があることにも留意されたい。つまり、本明細書で説明した方法は、少なくとも部分的には、インターフェースの価値の基礎をなすインターフェースによって表される機能、およびそれによって可能になる有利な結果であることに留意されたい。
【００４５】
図２に、本発明の様々な態様にしたがって使用することができる例示的なタブレットＰＣ２０１を示す。図１のシステムの特徴、サブ・システムおよび機能のいずれかまたはすべては、図２のコンピュータ内に含めることができる。タブレットＰＣ２０１は、複数のウィンドウ２０３が表示される大きい表示面２０２、たとえばデジタル化フラット・パネル・ディスプレイ、好ましくは液晶ディスプレイ（ＬＣＤ：liquid crystal display）画面を含む。スタイラス２０４を使用して、ユーザは、デジタル化表示面２０２上で選択し、強調しかつ／または書き込むことができる。適切なデジタル化表示面２０２の例には、ＭｕｔｏｈやＷａｃｏｍペン・デジタイザなどの電磁ペン・デジタイザが含まれる。他のタイプのペン・デジタイザ、たとえば光デジタイザも使用することができる。タブレットＰＣ２０１は、データを操作し、テキストを入力し、図面を作成し、かつ／またはスプレッドシート、ワード処理プログラムなどの従来のコンピュータ・アプリケーション・タスクを実行するためにスタイラス２０４を使用して行われるジェスチャを解釈する。
【００４６】
スタイラス２０４は、その選択能力を向上させるための１つまたは複数のボタン、あるいは他の特徴を備える可能性がある。ある実施形態では、スタイラス２０４は、「鉛筆」または「ペン」として実施されることができ、この場合、一方の端部は書く部分を構成し、およびその他方の端部は「消しゴム」からなる端部を構成し、この消しゴムの端部は、それが画面上で移動されるときに、表示の一部が消去されることを表している。マウス、トラック・ボールなどの他のタイプの入力装置を使用することができる。さらに、ユーザ自身の指をスタイラス２０４としることができ、接触感知または接近感知型（proximity-sensitive）ディスプレイ上で表示されたイメージの部分を選択しまたは示すために使用することができる。したがって、本明細書では、用語「ユーザ入力装置」は、広い定義を有し、スタイラス２０４などの周知の入力装置についての多くの変形体を包含するものである。領域２０５は、スタイラス２０４がどこで表示面２０２に接触したかをユーザが判断することを可能にするフィードバック領域または接触領域を示す。
【００４７】
様々な実施形態では、システムは、アプリケーションがインクをキャプチャし、操作し格納するために使用することができる１組のＣＯＭ（component object model：コンポーネント・オブジェクト・モデル）サービス、を提供する。あるサービスは、アプリケーションが開示されるインク表現を使用してインクを読み書きすることを可能にする。インク・プラットフォームは、拡張マークアップ言語（ＸＭＬ：extensible markup language）のような言語を含めたマークアップ言語をも含むことができる。さらに、このシステムは、別の実装としてＤＣＯＭを使用することができる。Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ社からのＷｉｎ３２プログラミングモデルおよび．Ｎｅｔプログラミングモデルを含めて、さらに別の実装を使用することができる。
【００４８】
代替案の表現
図３は、解析され、図４のツリーとして表現された電子インクを示している。図３の電子インクは、語句「ｈｅｌｌｏ，  ｔｈｉｓ  ｉｓ  ａ  ｔｅｓｔ」であり、ラベルＡ〜Ｅによって表されている語句からなる５つの語を備えている。語「ｈｅｌｌｏ」Ａは、２つのストローク３０１および３１１を含む。語「ｔｈｉｓ」Ｂは、３つのストローク３０２〜３０４を含む。語「ｉｓ」Ｃは、２つのストローク３０５〜３０６を含む。語「ａ」Ｄは、１つのストローク３０７を含む。語「ｔｅｓｔ」Ｅは、ストローク３０８〜３１０を含む。この語句は、２つの行、Ｆ（「ｈｅｌｌｏ，  ｔｈｉｓ  ｉｓ」）およびＧ（「ａ  ｔｅｓｔ」）を使用している。これらの行が一緒になって、段落Ｈを形成している。
【００４９】
図４は、図３の電子インクの解析を表している。ルート・ノード４０１は、それから分岐する段落ノードＨを有する。段落ノードＨは、行ノードＦおよびＧを含む。行ノードＦは、語ノードＡ〜Ｃを含む、行ノードＧは、語ノードＤおよびＥを含み、それぞれの語ノードは、図３に示す複数のストロークを含む。それぞれのノードＡ〜Ｈは、コンテクスト・ノードと呼ぶことができる。各コンテクスト・ノードは、分析、認識または他の目的のために、他のノードについてのコンテクストを提供する。たとえば、ノードＢ内の各ストロークの認識は、ストロークが個々に、またはノードＢのすべてのストロークに関して分析される場合の複数の結果からなる１つの集合を有することができる。しかし、複数の認識結果、またはその複数の認識結果の順序付けは、ノードＢ内の複数のストロークの分析がノードＡおよびＣの複数のストロークの分析（または前の分析結果）を含む場合には、異なる可能性がある。同様に、認識結果は、ノードＢの分析に含まれるコンテクスト・ノードＤ〜Ｈの数が増えると向上する可能性がある。
【００５０】
（文全体を含む）文ノード、（リストを含む）リスト・ノード、および（リストのある要素を含む）リスト・アイテム・ノードを含めて、様々なノードをさらに（または上記のノードの代わりに）使用することができることを理解されたい。
【００５１】
図５は、図４のツリーから導出された代替案を含むラティスを表している。このラティスは、ノード・レベルからのツリーの表現である。たとえば、このラティスは、行ノード・レベルから、語ノード・レベルから、段落ノード・レベルなどからツリーを表することができる。図５で、それぞれの行ノード毎に、ラティスが存在している。それぞれのラティスは、カラム（ラティス・カラムと称される）を含む。複数のカラムは、各行ノードに関連付けられた複数の語（ラティス・カラム内のラティス要素と称される各代替案を含む）を表す。また、複数の語の間のリレーションシップの定義に役立てるために、場所を保持するカラム（スペーシングまたはＮＵＬＬカラムとも称される）を複数の語の間に置くことができる。
【００５２】
Ｆのラティスは、５つのカラムを含む。それぞれのカラムは、認識エンジンからの複数の代替の認識結果を表す複数の代替案を含む。カラムＦ0は、図３に示されるように、語「ｈｅｌｌｏ，」を表している。ここでは、「ｈｅｌｌｏ，」は、最上位の代替案と呼ぶことができる。このラティス・カラムは、語（ここではストロークＳ301およびＳ311）を構成するストロークへの参照を含む。ラティス・カラムＦ0は、追加の代替案（ここでは、「ｈｅｌｌｏｓ」および「ｈｅｌｌｏ．」）をも含む。ラティス・カラムＦ2は、ストロークＳ302〜Ｓ306を参照し、また「ｔｈｉｓ」、ならびに代替案「ｔｈｅｓｉｓ」および「Ｔｈｉｓ」のエントリを含む。ラティス・カラムＦ4は、ストロークＳ305およびＳ306を参照し、また「ｉｓ」、および代替案「ｉ５」を含む。ラティス・カラムＦ1およびＦ3は、セパレータ（またはスペーサー）カラムである。Ｇのラティスは、３つのカラムを含む。ラティス・カラムＧ0は、ストロークＳ307〜Ｓ310を参照し、また「ａ」と、複数の代替案｛ａｎ，ｏｒ，ａｗ，Ａｎ，ａｔｔｅｓｔ，ｄｅｔｅｓｔ｝を含む。ラティス・カラムＧ2は、ストロークＳ308〜Ｓ310を参照し、認識結果「ｔｅｓｔ」を含むが、代替案は含まない。ラティス・カラムＧ1は、セパレータのカラムである。
【００５３】
ツリー構造は、１つまたは複数のラティスを含むことができる。図５に関して、ＦのラティスおよびＧのラティスは組み合わせられて、より大きいラティスになる可能性がある。ＦのラティスおよびＧのラティスの組合せとしてのラティスは合計９個のカラムを含み、その９番目のカラムは、ＦのラティスとＧのラティスの間のセパレータ・カラムである。具体的には、この新しいセパレータ・カラムは、セパレータ・カラムＦ5として加えることができる。同様に、ラティスをより小さいラティスに分けることができる。個々のラティスは、個々にまたはグループで認識器に送信され、あるいは情報問い合わせされることができる。セパレータ・カラムがより小さいラティスを開始しまたは終了する場合、コンテンツを含むカラムが残るように、セパレータ・カラムを取り除くことができる。もちろん、代替の手法として、セパレータ・カラムが残る可能性もある。
【００５４】
それぞれのラティス・カラムに格納された認識結果および代替案は、ラティス要素と呼ぶことができる。それぞれのラティス要素は、認識結果を作成するためにいくつのストロークが使用されたかについての指定を含むことができる。たとえば、ラティス・カラムＦ0内の第２のエントリ「ｈｅｌｌｏｓ」は、認識結果を形成するためにいくつのストロークが使用されたかを表す指定（ここでは「２」）を含む。カラムＦ2では、認識結果「ｔｈｉｓ」は、この結果を形成するために３つのストロークを使用している。しかし、認識結果「ｔｈｅｓｉｓ」は、この結果を形成するために５つのストロークを使用している。次いで、それぞれのラティス要素は、次のカラムへのポインタを含む。ここでは、カラムＦ0のラティス要素は、カラムＦ1を指している。同様に、カラムＦ2の「ｔｈｉｓ」ラティス要素は、次のカラムを有するカラムＦ3を指している。しかし、カラムＦ2の「ｔｈｅｓｉｓ」ラティス要素は、既存のカラム（ここではカラム５と表される）を指していない。もちろん、存在していないカラムへの各ラティス要素のポインタは、そうではなく、ラティスの最後を表す所定のカラムへのポインタである可能性がある。
【００５５】
カラム間のラティス要素の指定は、ラティス・パスと呼ぶことができる。このラティス・パスは、（たとえばインクの特定の解釈を格納する）特定の代替認識値を示す。
【００５６】
ラティス配列は、複数の語に渡る選択に関する複数のオペレーションの表現をサポートする。図６は、ユーザが行Ｆの語を選択しており、結果として生じる選択を選択ラティス（すなわち、ラティス内の選択されたノードの集合）として表すことができる。ここでは、選択ラティスは、カラムＦ0〜Ｆ4を含む。図７は、２つの行からの語の代替選択を示している。ここでは、選択は、｛ｔｈｉｓ  ｉｓ  ｔｅｓｔ｝を含み、結果として生じる選択ラティスは、カラムＦ2、Ｆ3、Ｆ4、Ｇ1およびＧ2を含むことができる。カラムＦ4とＧ1を互いに適切に間隔を置くために、セパレータ・カラムＧ1が自動的に加えられても、加えられなくてもよい。
【００５７】
図５のラティスは、図４の行レベル・ノードに基づいて作成されている。ラティスは、図４のいくつかの複数のレベルで形成することができる。図８は、段落ノードＨに対応するラティスを示している。ここでは、合計９個のカラムが示されている。ラティス・カラムは、図４の語ノードおよびその代替案を表す。図９のラティスは、語ノードＡに対応するラティスを示している。
【００５８】
図８は、２つの行を分離するセパレータ・カラムＨ6を含むことも、含まないこともある。これは、言語によっては行間でセパレータ列が使用されないからである。たとえば文字ベースの言語（中国語など）では、スペースは使用されることはない。こうした状況では、空文字が、セパレータ・カラムの代わりに使用されることがある。認識器は、必要に応じてセパレータ・カラムまたは空カラムを規定することができる。たとえば、英語の後に日本語の文字が続き、その後にさらなる英語が続くインクの文では、（たとえば、言語または認識器でインクを識別することによって）様々な部分を解析し、それを適切な認識器に向けることができる。英語認識器は、セパレータ・スペースで境界が定められた代替案を返すことができる。日本語認識器は、空文字で境界が定められた代替案を返すことができる。その出力は、セパレータ・カラムと、それぞれ異なる認識器からの結果を分離する空文字との組合せを含む単一のラティスを作成するようにマージすることができる。もちろん、同じタイプの分離スペース／空文字を作成する認識器（たとえば英語認識器および仏語認識器）を使用すると、同じタイプの言語パターンが使用されるので、２つではなく１つだけの分離スペース／空文字の格納がもたらされる可能性がある。
【００５９】
さらに、分離スペース／空文字は、左右のような指向性を有する存在である必要はなく。そうではなく、その位置は、使用される言語の方向（水平のラスタ、垂直のラスタ、および他の方向）によって決定される。
【００６０】
オブジェクトおよびオブジェクト・リレーションシップ
このセクションおよび以下のセクション（アプリケーション・プログラミング・インターフェース）では、オブジェクト、その相互間リレーションシップ、および様々なモデルと対話するためのインターフェースについて述べる。
【００６１】
上述のラティス・オブジェクト間に様々なリレーションシップが存在する。図１０に、そのリレーションシップの例示的な実施例を示す。一部、すべてまたは追加の情報が、以下で述べる各オブジェクト内に含まれることができる。
【００６２】
ラティス１００１は、解析器または認識器によって作成されることができるオブジェクトである。ラティスは、単一のノードから容易にアクセスされることができるためにシリアライズされることができる。所与のノードにラティスを要求することによって、ラティス全体にアクセスすることができる。ラティス・オブジェクトに情報を要求することによって、ラティス内のそれぞれ異なるレベルでの認識データを取得することができる。既存のラティスをマージしたり、または分割したりすることによって、所与のノードでラティスを作成することができる。ノードについて返されるラティスは、そのノード下で見られるストロークだけを参照することができる。単一のラティス内のツリーのすべての認識データを見るために、ツリーのルート・ノードに関連付けられたラティスを要求することができる。
【００６３】
ラティス１００１は、以下を含むことができる。  
・セパレータが存在しているかどうかの表示、および任意選択でその識別（セパレータはあるラティスを別のラティスとマージするときに使用することができる。ラティスのセパレータとのマージは言語に依存し、たとえば、英語では語がスペースによって分離されるが、日本語ではスペースが使用される必要はない）  
・ラティス・カラムのリスト（または第１カラムを指すポインタ）  
・（ラティス１００１が文書のどこに存在するかを示す）コンテクスト・ノード  
・プロパティ集合  
・ラティス・パスの最上位の代替案  
・その識別値（またはストロークの指標値）あるいは両方によりストロークを識別する、そのラティス内に含まれるストローク  
・そのラティスのサイズ
セパレータ（左右、上下他）は、カラムの一部として、またはラティス内の切断されたカラムとして格納することができる。この左右のセパレータは一般に、セパレータの文字データを備えた単一の要素だけをもつ。この左右セパレータは、このカラムの最上位の代替案としてマーク付けされる。しかし、それは、ラティスに代替案を要求するときに代替案として返されない。これは、ラティス内の代替案のより容易なマージを可能にする。あるいは、このセパレータ・カラムは、必要に応じて、返されたり、または削除されたりすることができる。
【００６４】
ラティスに対して様々なメソッドが実施されることができる。それは以下を含む。  
・ラティスに関連付けられたストロークを要求する  
・ラティスとの対話に基づいてツリーのセグメンテーションが更新されること（たとえば、語の結合すること）を要求する  
・ラティスを持続可能なフォーマット（persistable format）にシリアライズされることを要求する  
・左または右セパレータを要求する  
・指定されたストロークに関連付けられたカラムを要求する
ラティス・カラム１００４は、ラティス内のカラムである。ラティス・カラムは一般に、ラティス内のセグメンテーションに対応する。代替案は、各カラム内の様々なラティス要素へのポインタを格納することによって参照される。ラティス要素が最上位の代替案である場合、そのカラムは、そのラティス要素を最上位の代替案として参照する。
【００６５】
ラティス・カラムは、以下を含むことができる。  
・ラティス・カラム内のストロークの識別  
・各カラム内に含まれるラティス要素  
・各カラム内の代替案の最上位の代替要素  
・プロパティ集合  
・親ラティスへの参照
ラティス・カラムに対して、以下のメソッドを実施することができる。  
・ラティス・カラムに関連付けられたストロークを要求する  
・ラティス・カラムに関連付けられたラティスを要求する  
・ラティス・カラムに関連付けられた要素を要求する  
・ラティス・カラムの最上位の代替要素を要求しまたは指定する
ラティス要素１００５は、各カラム内に存在することができる。ラティス要素は、ラティス・パスの一部である。ラティス要素は、ストロークまたは語に関連付けられた列データを格納する。ラティス要素に関連付けられたストロークは一般に、ラティス・カラムに関連付けられたストロークのリストの最初から取られる。このことは、別のラティス・カラムがストロークのサブセットを含み、またそのサブセットに関連付けられた別個のラティス要素をもつことを可能にする。ラティス要素は、ラティス・カラムによって、カラムの最上位の代替案として指定することができる。
【００６６】
ラティス要素は、以下を含むことができる。  
・ストローク数  
・ラティス要素に関連付けられたデータまたは列  
・ラティス要素を含むラティス・カラムへの参照  
・前のラティス・カラムへの参照  
・次のラティス・カラムへの参照  
・プロパティ集合  
・認識エンジンからの認識結果がどの程度信頼できるかを示す認識信頼度
ラティス要素に対して操作可能なメソッドは、以下を含むことができる。  
・ラティス要素に関連付けられたストロークを要求する  
・現在のラティス・カラムの親ラティス・カラムを要求する  
・ラティス要素に関連する認識信頼度スコア（すなわち、インクが適切に認識された認識器がどの程度信頼できるか）  
・次のラティス・カラムを要求する  
・前のラティス・カラムを要求する  
・ラティス要素からの認識された列データを要求する
ラティス・パス１００２は、ラティス・カラムを通るパスであり、複数のラティスに渡るラティス要素の集合を含む。ラティス・パスは、以下を含むことができる。  
・ラティス・パスを構成するラティス要素の集合  
・パスが単一のラティス上に広がるかどうかの表示  
・ラティス・パスに関連付けられたストローク  
・ラティス・パスに関連付けられた認識データまたは列  
・認識エンジンからの認識結果がどの程度信頼できるかを示す認識信頼度
以下のメソッドは、ラティス・パスで実施されることができる。
【００６７】
・ラティス・パスが単一のラティスを越えて広がるかどうか決定する  
・ラティス要素の集合を要求する  
・ラティス・パスに関連付けられたストロークを要求する  
・ストロークの集合に基づいてテキストを要求する  
・指定された列にプッシュされる情報を要求する  
・テキスト範囲に対応するストロークを要求する  
・ノードに対応するストロークを要求する  
・ストロークに対応するテキスト範囲を要求する  
・認識エンジンからの認識結果がどの程度信頼できるかを示す認識信頼度
選択ラティス１００３は、ラティスのように働くが、単一のノードに対応する必要はない論理エンティティである。ラティス・オブジェクトが行レベルで格納される場合、単一の行の語のいくつか、１つまたは複数の行のいくつかのストローク、単一の行のすべての語、あるいは複数の行からのいくつかの語などについて選択ラティス・オブジェクトを作成することができる。選択ラティスは、同じラティス・オブジェクトからのものである必要はないラティス・カラムのリストを格納する。ストロークの選択は、選択されたインクを参照するインク語またはセグメントを含むように拡張されることができる。２つのラティス・オブジェクトが一緒にマージされて選択ラティス・オブジェクトになるときに、左右セパレータのカラムは、カラムのリスト内に適切に挿入されることができる。選択ラティス・オブジェクトは、以下を含むことができる。  
・選択ラティスを備えるラティス・カラム  
・選択ラティスがまたがるラティス  
・選択ラティス内の各カラムの最上位の代替案
選択ラティス・オブジェクトは、一般のメソッドをサポートすることができる。  
・ラティス・パスに基づいて最上位の代替案を要求する  
・選択ラティスに関連するラティス・カラムを要求する
代替集合１００６は、選択ラティスを参照するオブジェクトである。代替の集合は、以下を含むことができる。  
・選択ラティス
以下に、代替の集合で使用可能である可能性があるメソッドの例を提供する。他のメソッドについては、次の節で以下に述べる。  
・ラティス・パスに代替案を要求する。  
・コンテクスト・ノードについての代替案を要求する。
【００６８】
様々なオブジェクトは、それに関連付けられたメソッドも同様に有することができる。これらのメソッドは、アプリケーション・プログラミング・インターフェース（ＡＰＩ）によって呼び出すことができる。以下のクラスは、ツリー内の情報をよりよく取り扱うために使用することができる。
【００６９】
第１に、インク分析エンジンから代替案を取得するためにメソッドを使用することができる。インク分析オブジェクトに関する第１のメソッドは、ツリー全体、指定されたノードまたは指定されたストロークについての代替オブジェクトの集合を返す「代替の取得」を含む。ここでは、このメソッドは、提供されたノードを参照するコンテクスト・ノードを要求する。したがって、たとえば、所与の行ノードに代替案を要求することができる。このシステムは、所与のノードについて、代替案の集合、または少なくとも最上位レベルの代替案で応答する。
【００７０】
新しいオブジェクト・クラス（分析代替クラス）が提供されることができる。分析代替クラスに対して操作可能なメソッドは、テキスト認識信頼度を返すことができる。ここでは、ラティス要素内の信頼度データのレベルを決定することができる。また、分析代替クラスに対して操作可能な別なメソッドは、「認識された列の取得」メソッドを含む。ここでは、このメソッドは、この代替案のラティス・パス内のラティス要素に関連付けられた認識結果を取得する。
【００７１】
第２に、オブジェクトの分析代替集合クラスが使用されることもできる。このクラスは、上記のインク分析器に関する「代替案取得」メソッド内の戻り値の結果である可能性がある「この分析代替案の取得」を含めて、複数のメソッドを含む。
【００７２】
以下のメソッドは、分析コンテクスト・ツリーで使用することができる。第１に、「代替案取得」メソッドが、分析代替集合に適用されることができる。このメソッドは、代替案が探し求められる対象のコンテクスト・ノードの指定を含むことができる。第２に、別の「代替案取得」メソッドが分析代替集合に適用されることができるが、ここでは代替案の最大数が指定されることもできる。たとえば、図５のラティス・カラムＧ0を参照すると、ラティス・カラムに関連付けられた代替集合全体と比べて、数個の代替案を要求することができる。
【００７３】
第３の「代替案取得」メソッドは、指定ストロークについての代替案、および返される指定ストロークについての代替案を要求することができる。
【００７４】
別のメソッドは、「最上位代替案の修正」メソッドを含むことができ、これは、どの代替案が最上位の代替案として指定されるべきかを修正することができる。たとえば、ユーザがある代替案よりも別の代替案を選択した場合、選択された代替案は、これからの選択についての最上位の代替案であると見なされることになる。しかし、別のメソッドは、代替の選択が、その周りで他のインク分析が行われている間に最上位の代替案としてとどまるように、その代替選択を自動的に確認する「最上位代替案の修正」メソッドを含むことができる。たとえば、ユーザは、新しい最上位代替案を選択することができる。この新しい最上位代替案は、ツリーの異なるセグメンテーションを有することができる。この新しいセグメンテーションは、この代替案の選択に基づく、ツリーの好ましいセグメンテーションと見なされる。好ましいセグメンテーションは、ストロークおよび／または語のグループ化を変更することによってツリーの形状を変更する。この点で、新しい代替案の各選択は、完全に新しいツリー内に波及することになる。
【００７５】
複数の代替案は、ノードまたはストロークを分析コンテクストに渡すことによって取得することができる。これらのストロークは、コンテクスト・ツリー（たとえば上記の図７を参照）の連続した部分からのものである必要はない。インク分析器オブジェクトは、ノード内のストロークが、ＧｅｔＡｌｔｅｒｎａｔｅｓ（）メソッドを介して渡されるストロークまたはノードに一致する、葉コンテクスト・ノードの配列を返すことができる。これらの葉ノードから、クライアントは、親または子ノードまたはストロークを取得するときにその焦点を移動し、これらのノードが最上位の代替案内にあるかのように、完全なツリー構造を探索することができる。
【００７６】
ラティス代替案は、プロパティ（認識信頼度など）を伴う、語の文字データ、およびその語に対応するストロークの集合である。葉ノードは、語毎に１つを作成することができる。親ノードを作成するために、同じストローク集合から生じることも、生じないこともある複数の葉ノードについて考慮することができる。非葉ノードはさらに、代替案として適用することができる。
【００７７】
アプリケーション・プログラミング・インターフェース
様々なアプリケーション・プログラミング・インターフェースが、本発明の態様で使用することができる。以下に、アプリケーション・プログラミング・インターフェースおよびその機能をリストする。
【００７８】
分析コンテクストは、ツリー内のルート・ノードである可能性がある。分析コンテクスト内のインクの分析を対象とする１組のメソッドが公開される。この分析コンテクストは、本明細書で述べるコンテクスト・ツリー内のルート・ノードである。この分析コンテクストに関連するインク分析器オブジェクトは、少なくとも２組のメソッドを公開する。
【００７９】
第１に、「代替案取得（get alternate）」の１組のメソッドを公開することができる。この「代替案取得」セットは、様々な定義を含むことができる。本明細書では、そのうちの４つについて述べる。ＧｅｔＡｌｔｅｒｎａｔｅｓ（Ｃｏｎｔｅｘｔ  Ｎｏｄｅ［  ］ノード）は、コンテクスト・ノード（たとえば行、語、段落または他のノード）に代替案を要求し、代替案が取得される対象のノードを指定する。たとえば、図５に適用されているように、ノードＡに適用されるＧｅｔＡｌｔｅｒｎａｔｅｓは、「ｈｅｌｌｏ，」、「ｈｅｌｌｏｓ」および「ｈｅｌｌｏ．」の集合を返す。ＧｅｔＡｌｔｅｒｎａｔｅｓは、１つまたは複数のストロークの指定に基づいて適用されることもできる。たとえば、ストロークＳ302〜Ｓ304に適用されるＧｅｔＡｌｔｅｒｎａｔｅｓは、「ｔｈｉｓ」、「ｔｈｅｓｉｓ」および「Ｔｈｉｓ」の集合を返すことができる。返されるテキストは、追加のストロークを含むことも、含まないこともある。「ｔｈｅｓｉｓ」の場合では、追加のストロークＳ305〜Ｓ306も使用することができる。
【００８０】
ＧｅｔＡｌｔｅｒｎａｔｅｓメソッドは、返される代替案の最大数の表示を含むことも、含まないこともある。したがって、代替案の最大数が２に設定されている場合、ＧｅｔＡｌｔｅｒｎａｔｅｓ（ノードＡ）は、「ｈｅｌｌｏ，」および「ｈｅｌｌｏｓ」を返すが、「ｈｅｌｌｏ．」は返さない。
【００８１】
さらに、コンテクスト・ノードまたはストロークが指定されない場合、ＧｅｔＡｌｔｅｒｎａｔｅｓは、分析コンテクスト全体についての代替案を返すことができる。
【００８２】
第２に、別のメソッドは、最上位代替物修正（Modify Top Alternate）を含むことができる。ここでは、最上位代替案修正は、選択された代替案が適用される場合に分析コンテクストがどのように見えるかを表す。図５の実施例で代替案「ｔｈｅｓｉｓ」が選択される場合、最上位代替案修正からの結果、「ｈｅｌｌｏ，  ｔｈｅｓｉｓ  ａ  ｔｅｓｔ」を含むことができる。上記のＧｅｔＡｌｔｅｒｎａｔｅｓで返される各代替案では、異なっているが、全部揃った分析コンテクスト・ツリーが表示されることになる。代替案取得および最上位代替案修正は、上記ラティス内へのビューである。さらに、最上位代替案修正は、新しく選択される代替案のセグメンテーションに一致するようにツリー構造を修正することもできる。
【００８３】
代替修正は、代替選択が将来の分析よって代替案の現在の選択が置き換えられることを防ぐべきかどうか指定できることをも含むことができる。この指定は、たとえば、最上位代替案が置き換えられるべきことの確認として「最上位代替案修正」メソッドへの呼出し内で指定されるＢｏｏｌｅａｎ引数とすることができる。
【００８４】
代替案取得から返される各代替オブジェクトは、代替案取得メソッド内に渡される１組のストロークまたはノードについての葉コンテクスト・ノードの配列を参照することができる。ストロークおよびノードを取得するための代替案取得メソッドおよび他のメソッドを使用して、ユーザは、親および子のノードおよびストロークを取得し、代替案が適用される場合にツリーがどのように見えるかを評価することができる。
【００８５】
代替ツリーは、事前に作成することができ、または代替案取得メソッドによって要求されると、動的に作成することができる。代替案を要求するまで待機することの１つの利点は、この手法が、望まれないツリーの不必要な作成を最小限に抑えることである。この後者の手法では、代替オブジェクトが作成されると、それは、該当する葉コンテクスト・ノードだけを参照することができる。（葉ノードの親を求めることによって）ユーザによってツリーがさらに探索される場合、それぞれの親ノードは、要求に応じて動的に作成することができる。
【００８６】
以下のメソッドは、インク分析器オブジェクトで使用することができる。これらのメソッドは、ノードを見つけ、コンテクスト・ノードとストローク間で変換するのに役立つ。ＳｔｒｏｋｅｓＴｏＣｏｎｔｅｘｔＮｏｄｅｓは、ストロークの集合を取り、そのストロークを参照するコンテクスト・ノードの配列を返す。第１の手法では、それぞれのストロークは、１つのノードだけによって参照されることができる（親および祖父母ノードは結果として、その１つのノードを参照することができる）。ここでは、最上位の代替案だけがストロークを参照する。代替の手法では、代替案の組合せが、単一のストロークを参照する。具体的には、複数のコンテクスト・ノードが、あるストロークを参照することができる（たとえば、ストロークＳ305およびＳ306は、ノードＢおよびＣに対応するラティス・カラムＦ2およびＦ4によって参照されている）。これらの場合では、ＳｔｒｏｋｅｓＴｏＣｏｎｔｅｘｔＮｏｄｅｓは、ストロークを参照するコンテクスト・ノードを返すことができる。ＳｔｒｏｋｅｓＴｏＣｏｎｔｅｘｔＮｏｄｅｓメソッドに応答して、返される１組のコンテクスト・ノードは、渡されたストローク以外のストロークを含むノードを含むことも、含まないこともある。
【００８７】
代替方法として、または任意選択として、場合によっては複数のノードは、（段落ノードを含めて）より高位のノードを含むことができる。この任意選択の手法は、提供されたストロークを参照するコンテクスト・ノードの全体像を提供するために実施することができる。
【００８８】
たとえば、図５で、ストロークに関連付けられたノード、次いで、返されたノードに関連付けられたすべてのストロークを要求することができる。ストロークＳ301で開始する場合、結果は、ストロークＳ305およびＳ311を含むことができる。同様に、ストロークＳ301およびＳ306で開始する場合、結果は、ストロークＳ301、Ｓ311、Ｓ305およびＳ306をもたらすることができる。
【００８９】
次のメソッド、ＣｏｎｔｅｘｔＮｏｄｅｓＴｏＳｔｒｏｋｅｓは、コンテクスト・ノードを渡し、参照されたコンテクスト・ノード内に含まれるストロークの集合を返す。語、行および段落、ならびにルート・ノードは、このメソッドで渡されることになる。音符ノード、数学ノード、描画ノード、ピクチャ・ノード、チャート・ノード、ならびに書き込み領域、位置合わせレベルなどを定義するノードを含めて、他のタイプのノードも同様に含めることができる。
【００９０】
分析代替クラスに関して、３つのメソッドが、そのクラスに関連付けられることができる。第１に、ＲｅｃｏｇｎｉｔｉｏｎＣｏｎｆｉｄｅｎｃｅは、結果と共に認識器の信頼度を取り出すことを可能にする。第２に、ＲｅｃｏｇｎｉｚｅｄＳｔｒｉｎｇは、代替案の文字列値を指定する。ＲｅｃｏｇｎｉｚｅｄＳｔｒｉｎｇを使用して、上述したようにコンテクスト・ノードを増分的にトラバースする必要なしに、ノードに関連付けられた代替案の値を要求することができる。第３に、ＧｅｔＰｒｏｐｅｒｔｙは、分析代替クラス内のオブジェクトの認識器によってラティス・オブジェクト上に設定される任意のプロパティ（たとえば認識信頼度）を取得することを可能にする。ここでは、ＧＵＩＤまたは他の識別情報を指定し、プロパティの値を取得することができる。
【００９１】
テキスト範囲に関連する情報を取得するために、２つのメソッドを使用することができる。第１に、ＧｅｔＮｏｄｅＦｒｏｍＴｅｘｔＲａｎｇｅは、テキスト範囲に基づいて特定のコンテクスト・ノードを取得することを可能にする。テキスト範囲は、開始および停止位置、開始および長さ情報、またはテキスト範囲の他の表現であることができる。図３のインクおよび図４のＦのラティスを使用して、テキスト範囲（７，４）間でマップして、ストローク３０２、３０３、３０４を取得することができる。ここで、７は、最初の６文字「ｈｅｌｌｏ，」のスキップを意味し、４は、その次の４文字の取得を意味する。（７，６）は３０２〜３０６をもたらす。このシステムは、認識器からの語の分離を防ぐことができ、したがって、（０，１）、（０，２）、（０，３）、（０，４）、（０，５）および（０，６）は、すべてｓ３０１、ｓ３１１をもたらす。
【００９２】
第２のメソッドＧｅｔＴｅｘｔＲａｎｇｅＦｒｏｍＮｏｄｅｓは、提供されたコンテクスト・ノードから特定のテキスト範囲を取得することを可能にする。提供されたコンテクスト・ノードから、開始および停止位置、開始および長さ情報、またはテキスト範囲の他の表現を受信することができる。このメソッドは、完全な語だけが確実に含まれるようにストロークの集合を拡張することができる。
【００９３】
コンテクスト・ノード・オブジェクトは同じである可能性がある。あるいは、それは、それがどのノードを参照するかに基づいて異なる可能性がある。たとえば、語および行特有のコンテクスト・ノードは、ストローク（たとえば、インクのアセンダ、ディセンダ、中線、ベースライン特性に関連する情報）を含めて、追加のプロパティを有することができる。これらのプロパティの戻り値は、様々な点を含むことができる。たとえば、第１の点は、行の最初のｘ，ｙ座標を表することができる。第２の点は、終点のｘ，ｙ座標を表することができる。これらの値は、含まれるインク語（ink words）の最初および最後の値を使用することによって行レベルで計算されることができ、またはそこに含まれるインク語についての平均である可能性がある。このことは、特に、行ノード、段落ノード、リスト・ノードおよびリスト・アイテム・ノードにも当てはまるということができる。
【００９４】
このシステムは、インクの分析の状況に関する追加のクラスをサポートすることができる。たとえば、このシステムは、分析状況クラスを含むことができる。ここでは、アプリケーションは、分析の実行がエラーなしに成功したかどうか知ることを望むことができる。分析操作の結果は、実行の状態を要約する分析状況オブジェクトを返すことができる。このオブジェクトは、分析の成功に関する情報を含むことができる。たとえば、オブジェクトは、分析の成功を表す単純論理式（Boolean representing）（たとえば、分析の実行に警告またはエラーがなかった場合には「真」）を含むことができる。実行が成功しなかった場合、オブジェクトは、警告のリスト、およびその警告の影響を含むことができる。オブジェクトは、分析によって変更された領域のリストを含むことができる。
【００９５】
ラティスの作成
図１１に、ラティスの作成のための様々なプロセスを示す。ステップ１１０１で、システムは、インクを受信する。インクは、記憶装置（ローカルまたはリモート）、あるいはデジタイザ上のユーザ入力情報から受信することができる。次いで、ステップ１１０２で、システムは、インクを解析することができる。インクの解析からの結果は、ツリー１１０３である。任意選択で、ラティス１１０４上への破線パスによって示すように、システムは、解析されたインクからの情報に基づいてラティスを作成することができる。ツリー１１０３が作成された後に、ステップ１１０５でシステムは、手書き文字認識エンジンを使用してインクを識別することができる。ラティス１１０４が前に作成されていた場合、システムは、認識ステップ１１０５からの代替案でラティスを更新することができる。あるいは、上記で作成されていなかった場合、ラティス１１０４は、インク認識ステップ１１０５の前に作成されることができる。
【００９６】
実施例
以下は、インク情報についての複数の代替案を提供する実施例に関する。図１２Ａ〜１９は、複数の代替案がどのように分析コンテクスト・ツリーに適用されることができるかについての様々な実施例を示している。図１２Ａに、分析コンテクスト・ツリーを代替案と共に示す。分析コンテクスト・ツリー内で見られるインク情報は、語句「Ｔｏｄａｙ  ｉｓ  Ｍｏｎｄａｙ」である。分析コンテクスト・ツリーは、最上位のノード分析コンテクストＡ、段落ノードＢ、行ノードＣ、および３つのインク語に対応する３つのインク語ノードＤ〜Ｆを有する。
【００９７】
ここでは、ユーザは、語「Ｍｏｎｄａｙ」への選択を行っている。上述の「代替案取得（get alternates）」のうちの１つを呼び出して、システムは、複数の代替案を返す。Ｆ’によって表される第１の代替案は「Ｍｏｎｏｌｏｇ」である。Ｆ”によって表される第２の代替案は「Ｍｏｎｏｌａｙ」である。ユーザがインク語「Ｍｏｎｏｌｏｇ」に関連する行ノードを見ることを要求する場合、システムは、図１２Ｂで、「Ｍｏｎｏｌｏｇ」Ｆ’に関連付けられた行ノードＣ’を作成する。次いでユーザが行ノードＣ’の子を求める場合、図１２Ｃで示すように、システムはさらに、代替案１のツリーを、インク語Ｄ’およびＥ’、ならびに代替行ノードＣ’（同じ値であるが、異なるツリーの部分である）を含むように拡張する。さらに、ユーザがその親について行ノードＣ’を求める場合、段落ノードＢ’が動的に含めることができる。ユーザが継続し、段落ノードＢ’の親を求める場合、図１２Ｄに示すように、ルート・ノードＡ’が含めることができる。
【００９８】
図１２Ａ〜１２Ｄに関して述べたように、代替案に基づくツリーの作成は、ユーザによって要求されるときにだけ行うことができる。あるいは、システムは、すべての代替ツリーを作成し、それをラティス内に格納しようと試みることができる。ユーザによって実際に要求されるまで代替ツリーの作成を遅らせることの１つの利点は、非関連ツリーの作成のために費やされる処理時間を最小限に抑えることを含む。
【００９９】
図１３Ａおよび１３Ｂは、２行に渡って広がる語句「ｔｈｅ  ｑｕｉｃｋ  ｂｒｏｗｎ  ｆｏｘ」を示している。ここでは、図１３Ａは、分析コンテクストＡ、段落Ｂ、語ＥおよびＦを含む行Ｃ、ならびに語ＧおよびＨを含む行Ｄを含む。選択は、語「ｑｕｉｃｋ」Ｆおよび「ｆｏｘ」Ｈを含む。図１３Ｂは、選択された語についての代替案１および２を示している。ここでは、代替案１は、Ｆについての代替案「ｂｒｉｃｋ」Ｆ’、およびＨについての代替案「ｂｏｘ」Ｈ’を含む。代替案２は、代替案「ｂｒｉｃｋ」Ｆ”および「ｌｏｘ」Ｈ”を含む。
【０１００】
図１４は、代替セグメンテーション修正を示している。分析コンテクスト・ツリーの使用は、分析コンテクストＡ、段落Ｂ、行Ｃおよびインク語「ｔｈｅ」Ｄ、「ｑｕｉｃｋ」Ｅ、「ｂｒｏｗｎ」Ｆおよび「ｆｏｘ」Ｇを含む。選択された語は、「ｂｒｏｗｎ」Ｆおよび「ｆｏｘ」Ｇである。代替案１は、インク語ＦおよびＧについての新しいセグメンテーションを示している。ここでは、新しいインク語「Ｂｏｏｎｔｏｎ」がＦ’として表されている。代替案２は、代替案「ｂｒｏｗｎｅ」Ｆ”および「ｆｏｒ」Ｇ”を含む元のセグメンテーションを示している。
【０１０１】
図１５は、セグメンテーションおよび代替案の別の例を示している。ここでは、分析コンテクスト・ツリーは、分析コンテクスト・ノードＡ、段落ノードＢ、行ノードＣ、およびインク語「ｔｏｇｅｔｈｅｒ」を含む。代替案１は、２つの語「Ｔｏｇ」Ｄ’および「ｅｔｈｅｒ」Ｅ’に分けられたインク語「ｔｏｇｅｔｈｅｒ」Ｄを示している。代替案２は、インク語「Ｔｏ」Ｄ”、「ｇｅｔ」Ｅ”および「ｈｅｒ」Ｆ”を示している。新しい代替案のため、行および段落ノードは、代替案１ではＣ’およびＢ’でそれぞれ表されており、代替案２ではＣ”およびＢ”でそれぞれ表されている。
【０１０２】
図１６は、図（drawings）およびインク語を含む代替案を含む分析コンテクスト・ツリーを示す。語句「Ｏ  Ｃａｎａｄａ」を解析して、図１６の分析コンテクスト・ツリーは、分析コンテクストＡ、段落Ｂ、行Ｃおよびインク語「Ｏ」Ｄおよび「Ｃａｎａｄａ」Ｅを含んでいる。代替案１は、段落Ｂ’、行Ｃ’およびインク語「ＯＣａｎａｄａ」Ｄ’を含む。代替案２は、インク語「Ｏ」Ｄの異なる分析を含む。それをインク語と見なすのではなく、認識器によって作成される代替案のうちの１つは、「Ｏ」が（具体的には円としてここでは認識された）描画Ｄ”であるという可能性である。ここでは、代替案２は、段落Ｂ”、行Ｃ”およびインク語「Ｃａｎａｄａ」Ｅ”を含む。それは、円「Ｏ」Ｄ”を含む描画グループＦ”をも含む。
【０１０３】
本発明の一部の態様では、ユーザは、語の認識がどうであるべきかを厳密に示すようにラティスを修正することができる。図１７に、語句「Ｈｉ．Ｈｏｗ  ａｒｅ  ｙｏｕ？」を含む手書き文字のインクを示す。図１８は、インク語「ａｒｅ」がユーザによって語「ａｒｅ」として適切に認識されたものとして示されている、結果として生じる１組の分析コンテクスト・ツリーを示す。結果として生じるこの１組の分析コンテクスト・ツリーは、それ自体のコンテクスト・ツリーを有する厳密に識別された語（ここでは「ａｒｅ」）に、それを囲む他の分析コンテクスト・ツリーと共に、分けることができる。
【０１０４】
図１８は、３つの分析コンテクスト・ツリーを示している。第１の分析コンテクスト・ツリーでは、図示の５つのノードは、分析コンテクストＡ、段落Ｂ、行Ｃ、インク語「Ｈｉ」およびインク語「Ｈｏｗ」Ｅを含む。代替案は、段落ノードＢ’、行Ｃ’、ならびにインク語ＤおよびＥを「Ｈｅｌｌｏ」Ｄ’として形成するために使用されるすべてのストロークの代替認識を含む代替案１として示されている。
【０１０５】
次に、図１８は、分析コンテクストＦ、段落Ｇ、行Ｈおよびインク語「ａｒｅ」Ｉを含む第２の分析コンテクスト・ツリーを含んでいる。ここでは、ユーザは、インク語「ａｒｅ」Ｉを厳密に識別している（すなわち「固定」している）。
【０１０６】
最後に、図１８は、分析コンテクストＪ、段落Ｋ、行Ｌおよびインク語「ｙｏｕ？」Ｍを有する第３の分析コンテクスト・ツリーを含んでいる。この分析コンテクスト・ツリーの代替案１は、段落Ｋ’、行Ｌ’およびインク語「ｙｏｎ」Ｍ’を含んでいる。
【０１０７】
あるいは、図１８に示す３つのツリーは、組み合わせられたり、または単一のツリーとして残されたりする。たとえば、ユーザがある代替案を選択すると、その代替案は固定することができるが、他のノードについての他の代替案は、代替案の後の選択に基づいてさらに修正することができる。ノードを別個のツリーに分けるのと比べて、ここではノードは、単一のツリーのままである可能性がある。
【０１０８】
本発明は、その好ましいおよび例示的な実施形態に関して述べられている。本開示を精査することから、本発明の特許請求の範囲の範囲および精神内の多くの他の実施形態、修正および変形を当業者は考え出すであろう。
【図面の簡単な説明】
【０１０９】
【図１Ａ】本発明の特定の態様を実装することが可能なれることができる、汎用デジタル・コンピューティング環境の概略図である。
【図１Ｂ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｃ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｄ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｅ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｆ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｇ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｈ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｉ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｊ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｋ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｌ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図１Ｍ】本発明の１つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。
【図２】本発明の態様によるタブレット・コンピュータの説明のための一例を示す図である。
【図３】本発明の態様による電子インクの一例を示す図である。
【図４】本発明の態様によるコンテクスト・ツリーの説明のための一例を示す図である。
【図５】本発明の態様によるラティスの一例を示す図である。
【図６】本発明の態様による選択ラティスを示す図である。
【図７】本発明の態様による選択ラティスを示す図である。
【図８】本発明の態様によるラティスを示す図である。
【図９】本発明の態様によるラティスを示す図である。
【図１０】本発明の態様によるオブジェクト・リレーションシップを示す図である。
【図１１】本発明の態様による、ラティスを作成するための例示的なプロセスを示す図である。
【図１２Ａ】本発明の態様によるコンテクスト・ツリーおよび代替案を示す図である。
【図１２Ｂ】本発明の態様によるコンテクスト・ツリーおよび代替案を示す図である。
【図１２Ｃ】本発明の態様によるコンテクスト・ツリーおよび代替案を示す図である。
【図１２Ｄ】本発明の態様によるコンテクスト・ツリーおよび代替案を示す図である。
【図１３Ａ】本発明の態様によるコンテクスト・ツリーおよび代替案を示す図である。
【図１３Ｂ】本発明の態様によるコンテクスト・ツリーおよび代替案を示す図である。
【図１４】本発明の態様によるコンテクスト・ツリーおよび代替案を示す図である。
【図１５】本発明の態様によるコンテクスト・ツリーおよび代替案を示す図である。
【図１６】本発明の態様によるコンテクスト・ツリーおよび代替案を示す図である。
【図１７】本発明の態様による電子インクを示す図である。
【図１８】本発明の態様によるコンテクスト・ツリーおよび代替案を示す図である。
【符号の説明】
【０１１０】
１２０    処理装置
１２１    システム・バス
１３０  システム・メモリ
１３４    オペレーティング・システム
１３５    アプリケーション・プログラム
１３６    他のプログラム・モジュール
１３７    プログラム・データ
１４０    取外し不可能な不揮発性メモリ・インターフェース
１４４    オペレーティング・システム
１４５    アプリケーション・プログラム
１４６    他のプログラム・モジュール
１４７    プログラム・データ
１５０    取外し可能な不揮発性メモリ・インターフェース
１６０    ユーザ入力インターフェース
１６１    マウス
１６２    キーボード
１６５    デジタイザ
１７０    ネットワーク・インターフェース
１７１    ローカル・エリア・ネットワーク
１７２    モデム
１７３    広域ネットワーク
１８０    リモート・コンピュータ
１８１    メモリ
１８５    アプリケーション・プログラム
１９０    ビデオ・インターフェース
１９１    モニタ
１９５    出力周辺インターフェース
１９６    スピーカ
１９７    プリンタ
２０１    タブレットＰＣ
２０２    表示面
２０３    ウィンドウ
２０４    スタイラス
２０５    領域
１００１    ラティス
１００２    ラティス・パス
１００３    選択ラティス
１００４    ラティス・カラム
１００５    ラティス要素
１００６    代替選択
１１０１    インクの受信
１１０２    インクの解析
１１０３    ツリー
１１０４    ラティス
１１０５    インクの認識
【図１Ａ】
2006164259.tif 000005
【図１Ｂ】
2006164259.tif 000006
【図１Ｃ】
2006164259.tif 000007
【図１Ｄ】
2006164259.tif 000008
【図１Ｅ】
2006164259.tif 000009
【図１Ｆ】
2006164259.tif 000010
【図１Ｇ】
2006164259.tif 000011
【図１Ｈ】
2006164259.tif 000012
【図１Ｉ】
2006164259.tif 000013
【図１Ｊ】
2006164259.tif 000014
【図１Ｋ】
2006164259.tif 000015
【図１Ｌ】
2006164259.tif 000016
【図１Ｍ】
2006164259.tif 000017
【図２】
2006164259.tif 000018
【図３】
2006164259.tif 000019
【図４】
2006164259.tif 000020
【図５】
2006164259.tif 000021
【図６】
2006164259.tif 000022
【図７】
2006164259.tif 000023
【図８】
2006164259.tif 000024
【図９】
2006164259.tif 000025
【図１０】
2006164259.tif 000026
【図１１】
2006164259.tif 000027
【図１２Ａ】
2006164259.tif 000028
【図１２Ｂ】
2006164259.tif 000029
【図１２Ｃ】
2006164259.tif 000030
【図１２Ｄ】
2006164259.tif 000031
【図１３Ａ】
2006164259.tif 000032
【図１３Ｂ】
2006164259.tif 000033
【図１４】
2006164259.tif 000034
【図１５】
2006164259.tif 000035
【図１６】
2006164259.tif 000036
【図１７】
2006164259.tif 000037
【図１８】
2006164259.tif 000038
【外国語明細書】
2006164259000001.pdf