(57)【要約】  電子ペンによる入力に対する応答を作成するシステムは、電子ペンが書込みに使用される時に位置を記録する処理ユニットと、書込み中に処理ユニットによって作成されたペンデータを受け取るソフトウェアモジュールとを備える。このソフトウェアモジュールは、特定のイベントの発生を表すペンデータを特定することによって前記ペンデータをリファイン変換し、上記特定のイベントが発生することを表すイベントデータを作成する。このシステムは、さらに、電子ペンによる入力に応答して実行される処理命令を提供するアプリケーションを備える。このアプリケーションは、書込みが行われる印刷文書に関する情報を含む電子ファイルを前記ソフトウェアモジュールにロードし、前記ソフトウェアモジュールにセットアップ命令を提供するように構成される。セットアップ命令は、アプリケーション固有であり、アプリケーションに合わせてソフトウェアモジュールをカスタマイズする。
2010533337.tif 000002
【特許請求の範囲】
【請求項１】
電子ペンによる入力に対する応答を作成するシステムであって、
電子ペン内に備えられる処理ユニットであって、前記処理ユニットは、位置情報を受け取るように構成され、前記位置情報は、前記電子ペンが印刷文書での書込みに使用される時に記録されるものであり、前記処理ユニットは、前記印刷文書に関して前記位置情報を前記電子ペンの検出された位置の並びに変換するようにさらに構成される、前記処理ユニットと、
書込み中に前記処理ユニットによって作成されるペンデータを受け取るように構成されるソフトウェアモジュールであって、前記ペンデータが、前記検出された位置の並びを含み、前記ソフトウェアモジュールが、特定のイベントの発生を表すペンデータを特定することによって前記ペンデータをリファイン変換し、その特定のイベントの発生を表すイベントデータを作成するように構成される、前記ソフトウェアモジュールと、
前記電子ペンによる入力に応答して実行される処理命令を提供するアプリケーションであって、前記アプリケーションが、前記ソフトウェアモジュールに電子ファイルをロードするように構成され、前記電子ファイルが、前記印刷文書に関する情報を含み、前記アプリケーションが、前記ソフトウェアモジュールがどのようにしてペンデータをリファイン変換すべきかをセットアップすることを含むセットアップ命令を前記ソフトウェアモジュールに提供するように構成され、前記セットアップ命令が、アプリケーション固有であり、かつ、前記アプリケーションに合わせて前記ソフトウェアモジュールをカスタマイズするものであり、前記ソフトウェアモジュールが、前記セットアップ命令によってセットアップされて、イベントの発生を特定するために前記ペンデータを前記電子ファイルの情報と比較し、前記アプリケーションが、前記ソフトウェアモジュールからイベントデータを受け取り、特定のイベントの発生を表すイベントデータに関連する命令を処理するようにさらに構成される、前記アプリケーションと、
を備えることを特徴とするシステム。
【請求項２】
前記処理ユニットは、前記印刷文書上の位置コード化パターンのイメージの形で位置情報を受け取るように構成される、請求項１に記載のシステム。
【請求項３】
前記アプリケーションは、前記アプリケーションの開始時に、前記セットアップ命令を前記ソフトウェアモジュールに提供するように構成される、請求項１または２に記載のシステム。
【請求項４】
前記アプリケーションは、マスターアプリケーションおよび複数のサブアプリケーションを含み、前記マスターアプリケーションは、複数のサブアプリケーションを複数の特定のイベントに関連付けるように構成され、ある特定のイベントの発生を表すイベントデータが前記マスターアプリケーションによって受け取られる時に、前記マスターアプリケーションは、関連するサブアプリケーションを開始し、前記サブアプリケーションは、前記ソフトウェアモジュールがペンデータをどのようにリファイン変換すべきかをセットアップするためのセットアップ命令を提供する、請求項１または２に記載のシステム。
【請求項５】
前記電子ファイルは、前記印刷文書上のアクティブエリアのレイアウトの記述を含み、前記アプリケーションは、前記ソフトウェアモジュールをセットアップするセットアップ命令を提供するように構成され、アクティブエリア内の検出された位置を表すペンデータを特定するために前記検出された位置の並びをアクティブエリアの前記レイアウトの前記記述と比較し、前記電子ペンが前記アクティブエリアでの書込みに使用されることを表すイベントデータを作成するように前記ソフトウェアモジュールをセットアップする、請求項１ないし４のいずれか一項に記載のシステム。
【請求項６】
前記アプリケーションは、前記ソフトウェアモジュールが複数のステップでイベントデータを作成するように、イベントデータハンドラのリンクをセットアップするセットアップ命令を提供するように構成され、イベントデータは、ペンデータの段階的なリファイン変換を提供するイベントデータハンドラの前記リンクを介して伝えられる、請求項１ないし５のいずれか一項に記載のシステム。
【請求項７】
前記ソフトウェアモジュールは、前記ソフトウェアモジュールのアルゴリズムを呼び出すアプリケーションプログラミングインターフェースを含み、前記アプリケーションは、前記アプリケーションプログラミングインターフェースの機能によって前記セットアップ命令を提供するように構成される、請求項１ないし６のいずれか一項に記載のシステム。
【請求項８】
前記ソフトウェアモジュールは、前記電子ペンのプロセッサ上で動作するように構成される、請求項１ないし７のいずれか一項に記載のシステム。
【請求項９】
前記ソフトウェアモジュールは、前記電子ペンからペンデータを受け取るように構成された外部コンピューティングデバイス上で実行されるように構成される、請求項１ないし７のいずれか一項に記載のシステム。
【請求項１０】
複数の処理ユニットを有する複数の電子ペンをさらに含み、前記ソフトウェアモジュールは、前記複数の電子ペンからペンデータを受け取り、前記イベントデータを作成させるべき前記電子ペンの識別子を示すイベントデータを作成するように構成される、請求項９に記載のシステム。
【請求項１１】
電子ペンによる入力に対する応答を作成する方法であって、前記電子ペンは、処理ユニットを備えており、前記処理ユニットは、位置情報を受け取るように構成され、前記位置情報は、前記電子ペンが印刷文書での書込みに使用される時に記録されるものであり、前記処理ユニットは、前記印刷文書に関して前記位置情報を前記電子ペンの検出された位置の並びに変換するように構成され、前記方法は、前記電子ペンによる入力に応答して実行される処理命令を提供するアプリケーションによって実行され、
前記方法は、
ソフトウェアモジュールにアクセスすることであって、前記ソフトウェアモジュールは、書込み中に前記処理ユニットによって作成されるペンデータを受け取るように構成されており、前記ペンデータは、前記検出された位置の並びを含むものであり、前記ソフトウェアモジュールは、特定のイベントの発生を表すペンデータを特定することによって前記ペンデータをリファイン変換し、その特定のイベントの発生を表すイベントデータを作成するように構成されている、前記ソフトウェアモジュールにアクセスすることと、
前記印刷文書に関する情報を含む電子ファイルを、前記ソフトウェアモジュールにロードすることと、
前記ソフトウェアモジュールがどのようにしてペンデータをリファイン変換すべきかをセットアップすることを含むセットアップ命令を前記ソフトウェアモジュールに提供することであって、前記セットアップ命令は、アプリケーション固有であり、かつ、前記アプリケーションに合わせて前記ソフトウェアモジュールをカスタマイズするものであり、前記ソフトウェアモジュールは、前記セットアップ命令によってセットアップされて、イベントの発生を特定するために前記ペンデータを前記電子ファイルの情報と比較するものである、前記セットアップ命令を提供することと、
前記ソフトウェアモジュールからイベントデータを受け取ることと、
特定のイベントの発生を表すイベントデータに関連する命令を処理することと、
を含むことを特徴とする方法。
【請求項１２】
前記処理ユニットは、前記印刷文書上の位置コード化パターンのイメージの形で位置情報を受け取るように構成される、請求項１１に記載の方法。
【請求項１３】
前記電子ファイルは、前記印刷文書上のアクティブエリアのレイアウトの記述を含んでおり、前記セットアップ命令を提供することは、前記ソフトウェアモジュールをセットアップして、アクティブエリア内の検出された位置を表すペンデータを特定するために前記検出された位置の並びをアクティブエリアの前記レイアウトの前記記述と比較し、前記電子ペンが前記アクティブエリアでの書込みに使用されることを表すイベントデータを作成することを含む、請求項１１または１２に記載の方法。
【請求項１４】
前記ロードすることおよび前記セットアップ命令を提供することは、前記アプリケーションが開始される時に前記電子ペンによる入力に応答して処理命令を提供するために前記アプリケーションによって実行される、請求項１１ないし１３のいずれか一項に記載の方法。
【請求項１５】
前記アプリケーションが前記ソフトウェアモジュールから前記イベントデータを受け取るために、前記アプリケーションを前記ソフトウェアモジュールに登録することをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記アプリケーションは、マスターアプリケーションおよび複数のサブアプリケーションを含み、前記マスターアプリケーションは、複数のサブアプリケーションを複数の特定のイベントに関連付けるように構成され、ある特定のイベントの発生を表すイベントデータが前記マスターアプリケーションによって受け取られる時に、前記マスターアプリケーションは、関連するサブアプリケーションを開始し、前記サブアプリケーションは、前記ソフトウェアモジュールがペンデータをどのようにリファイン変換すべきかをセットアップするためにセットアップ命令を提供する、請求項１１ないし１３のいずれか一項に記載の方法。
【請求項１７】
前記セットアップ命令を提供することは、前記ソフトウェアモジュールが複数のステップでイベントデータを作成するように、イベントデータハンドラのリンクをセットアップすることを含み、イベントデータは、ペンデータの段階的なリファイン変換を提供するイベントデータハンドラの前記リンクを介して伝えられる、請求項１１ないし１６のいずれか一項に記載の方法。
【請求項１８】
前記セットアップ命令は、前記ソフトウェアモジュールのアプリケーションプログラミングインターフェースの機能として提供される、請求項１１ないし１７のいずれか一項に記載の方法。
【請求項１９】
前記ソフトウェアモジュールは、前記電子ペンのプロセッサ上で動作するように構成される、請求項１１ないし１８のいずれか一項に記載の方法。
【請求項２０】
前記ソフトウェアモジュールは、前記電子ペンからペンデータを受け取るように構成された外部コンピューティングデバイス上で動作するように構成される、請求項１１ないし１８のいずれか一項に記載の方法。
【請求項２１】
前記ソフトウェアモジュールは、複数の電子ペンからペンデータを受け取り、前記イベントデータを作成させる前記電子ペンの識別子を示すイベントデータを作成するように構成される、請求項２０に記載の方法。
【請求項２２】
請求項１１ないし２１のいずれか一項に記載の方法を実施するコンピュータ実行可能命令が記録されたことを特徴とするコンピュータ読取り可能媒体。
【請求項２３】
電子ペンによる入力をリファイン変換する方法であって、前記電子ペンは、処理ユニットを備えており、前記処理ユニットは、位置情報を受け取るように構成されており、前記位置情報は、前記電子ペンが印刷文書での書込みに使用される時に記録されるものであり、前記処理ユニットは、前記位置情報を前記電子ペンの検出された位置の並びに変換するように構成されており、前記リファイン変換は、特定のイベントの発生を表すペンデータを特定することと、その特定のイベントが発生することを表すイベントデータを作成することとを含み、
前記方法は、
書込み中に前記処理ユニットによって作成されるペンデータであって、前記検出された位置の並びを含むペンデータを受け取ることと、
電子ファイルを受け取ることであって、前記電子ファイルは、前記印刷文書に関する情報を含んでおり、前記電子ペンによる入力に応答して実行される処理命令を提供するアプリケーションから受け取られるものである、前記電子ファイルを受け取ることと、
前記アプリケーションからアプリケーション固有のセットアップ命令を受け取ることと、
前記受け取ったセットアップ命令に従ってペンデータのリファイン変換をセットアップすることであって、これにより、前記リファイン変換が、イベントの発生を特定するために前記ペンデータを前記受け取った電子ファイルの情報と比較することを含むように構成される、前記ペンデータのリファイン変換をセットアップすることと、
を含むことを特徴とする方法。
【請求項２４】
前記電子ファイルは、前記印刷文書上のアクティブエリアのレイアウトの記述を含んでおり、前記リファイン変換は、前記受け取ったセットアップ命令に従ってセットアップされる時に、アクティブエリア内の検出された位置を表すペンデータを特定するために前記検出された位置の並びをアクティブエリアの前記レイアウトの前記記述と比較することと、前記電子ペンが前記アクティブエリア内での書込みに使用されていることを表すイベントデータを作成することとを含むように構成される、請求項２３に記載の方法。
【請求項２５】
前記ペンデータのリファイン変換をセットアップすることは、イベントデータが複数のステップで作成されるように、イベントデータハンドラのリンクをセットアップすることを含み、イベントデータは、ペンデータの段階的なリファイン変換を提供するイベントデータハンドラの前記リンクを介して伝えられる、請求項２３または２４に記載の方法。
【請求項２６】
請求項２３ないし２５のいずれか一項に記載の方法を実施するコンピュータ実行可能命令が記録されたことを特徴とするコンピュータ読取り可能媒体。
【請求項２７】
電子ペンによる入力をリファイン変換するソフトウェアモジュールであって、前記電子ペンは、処理ユニットを備えており、前記処理ユニットは、位置情報を受け取るように構成されており、前記位置情報は、前記電子ペンが印刷文書での書込みに使用される時に記録されるものであり、前記処理ユニットは、前記印刷文書に関して前記位置情報を前記電子ペンの検出された位置の並びに変換するように構成されており、前記ソフトウェアモジュールは、書込み中に前記処理ユニットによって作成されるペンデータを受け取るように構成されており、前記ペンデータは、前記検出された位置の並びを含んでおり、前記ソフトウェアモジュールは、特定のイベントの発生を表すペンデータを特定することによって前記ペンデータをリファイン変換し、その特定のイベントが発生することを表すイベントデータを作成するように構成されており、前記ソフトウェアモジュールは、前記電子ペンによる入力に応答して実行される処理命令を提供する異なるアプリケーションに固有の異なる方法でペンデータをリファイン変換するように構成可能であり、前記ソフトウェアモジュールは、前記ソフトウェアモジュールのリファイン変換の機能にアクセスするアプリケーションプログラミングインターフェースをさらに含み、
前記リファイン変換の機能は、
前記印刷文書に関する情報を含む電子ファイルを前記ソフトウェアモジュールにロード可能にする機能と、
前記ソフトウェアモジュールがペンデータをどのようにリファイン変換すべきかをセットアップ可能にする機能であって、イベントの発生を特定するために前記ペンデータを前記電子ファイルの情報と比較するように前記ソフトウェアモジュールをセットアップ可能にすることを含む機能と、
を含むことを特徴とするソフトウェアモジュール。
【請求項２８】
前記電子ファイルは、前記印刷文書上のアクティブエリアのレイアウトの記述を含むものであり、前記リファイン変換の機能は、アクティブエリア内の検出された位置を表すペンデータを特定するために前記検出された位置の並びをアクティブエリアの前記レイアウトの前記記述と比較し、前記電子ペンが前記アクティブエリア内での書込みに使用されることを表すイベントデータを作成するように前記ソフトウェアモジュールをセットアップ可能にする機能である、請求項２７に記載のソフトウェアモジュール。
【請求項２９】
前記リファイン変換の機能は、前記ソフトウェアモジュールが複数のステップでイベントデータを作成するようにイベントデータハンドラのリンクをセットアップ可能にする機能を含み、イベントデータは、ペンデータの段階的なリファイン変換を提供するイベントデータハンドラの前記リンクを介して伝えられる、請求項２７または２８に記載のソフトウェアモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、電子ペンによる入力の処理に関する。この処理には、書込み中に電子ペンによって作成されるペンデータのリファイン変換および入力に対する応答の作成が含まれる。
【背景技術】
【０００２】
本発明の出願人は、ペンおよび書込み表面の使用をディジタル化するシステムを開発した。紙などの書込み表面は、位置コード化パターンを設けられる。電子ペンは、書込み表面で書き込むのに使用され、それと同時に、位置コード化された表面の位置を記録することができる。電子ペンは、センサによって位置コード化パターンを検出し、書き込まれたペンストロークに対応する位置を計算する。そのような位置コード化パターンが、例えば米国特許第６６６３００８号に記載されている。
【０００３】
電子ペンは、ユーザが、従来のペンおよび紙を使用するのに非常に似た形でディジタルシステムへの入力を行うことを可能にする。電子ペンによって行われる入力は、例えば、ディジタルシステムに情報を入力し、またはディジタルシステムのデバイスで動作するアプリケーションを制御するのに使用することができる。したがって、ペン入力は、電子ペンによって行われる入力を受け取るアプリケーションによって適切なアクションが行われるようにするために管理される必要がある。
【０００４】
国際公開第２００６／００４５０５号には、電子ペンによって記録されたディジタル位置データを処理する情報管理システムが開示されている。電子ペンは、位置データベースと共に提供される。この位置データベースは、位置コード化パターンの異なるセグメントのテンプレートを提供する。テンプレートは、ペンの動作に影響する可能性があるすべての機能エリアのサイズ、配置、および、機能を定義する。テンプレートは、すべてのパターンページに共通する機能エリアのレイアウト、すなわち、セグメント内の単一の物理ページに対応する位置コード化パターンの一部を提供する。しかし、位置データベースは、特定のパターンページ内のさらなる機能エリアのサイズ、配置、および、機能を定義するページ記述をも含むことができる。
【０００５】
この電子ペンは、さらに、トランスレータモジュールを含む。このトランスレータモジュールは、検出された位置を位置データベースのテンプレートおよびページ記述と比較することによって、検出された位置が機能エリアに含まれるかどうかを決定する。検出された位置が機能エリア内であることをトランスレータモジュールが識別することに応答して、トランスレータモジュールは、対応するイベントを生成する。そのようなイベントは、電子ペン内の解釈モジュールによって使用されることができる。この解釈モジュールは、イベントに関連するペンストロークに対して解釈機能を動作させることができる。
【０００６】
国際公開第２００６／００４５０５号のトランスレータモジュールは、検出された位置に関わりなく同一の形でイベントを作成する。このことは、イベントの作成が、ペン入力を処理するアプリケーションに適合され得ないことを意味する。異なる情報が、異なるアプリケーションに関係する場合がある。しかし、国際公開第２００６／００４５０５号によれば、情報は、トランスレータモジュールから一方向でのみ出力される。
【０００７】
国際公開第０１／８６４０５号では、ペンベースの入力を処理する別の情報管理システムが開示されている。この情報管理システムは、中央処理サブシステムに接続される手書き取込インターフェースを含む。中央処理サブシステムは、手書き取込インターフェースを介して取り込まれたペンベース入力を解釈して処理する。中央処理サブシステムは、さらに、電子メッセージを介して、アプリケーションを実行する外部コンピューティングデバイスと通信する。中央処理サブシステムは、アプリケーション固有の情報を電子メッセージに含めることもできる。したがって、電子メッセージは、電子メッセージを受け取るアプリケーションに依存して異なる可能性がある。しかし、中央処理サブシステムは、どの入力がペンを用いて行われたのかによってアプリケーションがアクションを解釈して独立に決定できるように、アプリケーションにペンベースの入力を提供するのではない。その代わり、アプリケーションの機能は、電子メッセージ内のアプリケーション固有の情報によってトリガすることができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許第６６６３００８号明細書
【特許文献２】国際公開第２００６／００４５０５号
【特許文献３】国際公開第０１／８６４０５号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、柔軟な形で電子ペンの入力を処理することである。本発明のさらなる目的は、ペン入力をどのように処理すべきかの制御を容易にすることである。
【課題を解決するための手段】
【００１０】
一般に、本発明の目的は、独立請求項による方法、コンピュータ読取り可能媒体、ソフトウェアモジュール、およびシステムによって少なくとも部分的に達成され、好ましい実施形態は、従属請求項によって定義される。
【００１１】
本発明の第１の態様によれば、電子ペンによる入力に対する応答を作成するシステムが提供される。このシステムは、処理ユニットとソフトウェアモジュールとアプリケーションを備える。処理ユニットは、電子ペン内に備えられる処理ユニットである。処理ユニットは、位置情報を受け取るように構成され、位置情報は、電子ペンが印刷文書での書込みに使用される時に記録されるものである。処理ユニットは、印刷文書に関して位置情報を電子ペンの検出された位置の並びに変換するように構成される。ソフトウェアモジュールは、書込み中に処理ユニットによって作成されるペンデータを受け取るように構成される。ペンデータは、検出された位置の並びを含む。ソフトウェアモジュールは、特定のイベントの発生を表すペンデータを特定することによってペンデータをリファイン変換し、その特定のイベントの発生を表すイベントデータを作成するように構成される。アプリケーションは、電子ペンによる入力に応答して実行される処理命令を提供する。このアプリケーションは、ソフトウェアモジュールに電子ファイルをロードするように構成される。電子ファイルは、印刷文書に関する情報を含む。アプリケーションは、ソフトウェアモジュールがどのようにしてペンデータをリファイン変換すべきかをセットアップすることを含むセットアップ命令をソフトウェアモジュールに提供する。セットアップ命令は、アプリケーション固有であり、アプリケーションに合わせてソフトウェアモジュールをカスタマイズするものである。ソフトウェアモジュールは、セットアップ命令によってセットアップされ、イベントの発生を特定するためにペンデータを電子ファイルの情報と比較する。アプリケーションは、ソフトウェアモジュールからイベントデータを受け取り、特定のイベントの発生を表すイベントデータに関連する命令を処理するように構成される。
【００１２】
本発明の第２の態様によれば、電子ペンによる入力に対する応答を作成する方法が提供される。電子ペンは、処理ユニットを備える。処理ユニットは、位置情報を受け取るように構成される。位置情報は、電子ペンが印刷文書での書込みに使用される時に記録される。処理ユニットは、印刷文書に関して位置情報を電子ペンの検出された位置の並びに変換するように構成される。この方法は、電子ペンによる入力に応答して実行される処理命令を提供するアプリケーションによって実行される。そして、この方法は、ソフトウェアモジュールにアクセスすることと、ソフトウェアモジュールに電子ファイルをロードすることと、ソフトウェアモジュールがどのようにしてペンデータをリファイン変換すべきかをセットアップすることを含むセットアップ命令をソフトウェアモジュールに提供することと、ソフトウェアモジュールからイベントデータを受け取ることと、特定のイベントの発生を表すイベントデータに関連する命令を処理することと、を含む。ソフトウェアモジュールは、書込み中に処理ユニットによって作成されるペンデータを受け取るように構成される。ペンデータは、検出された位置の並びを含む。ソフトウェアモジュールは、特定のイベントの発生を表すペンデータを特定することによってペンデータをリファイン変換し、その特定のイベントの発生を表すイベントデータを作成するように構成される。電子ファイルは、印刷文書に関する情報を含む。セットアップ命令は、アプリケーション固有であり、アプリケーションに合わせてソフトウェアモジュールをカスタマイズするものである。ソフトウェアモジュールは、イベントの発生を特定するためにペンデータを電子ファイルの情報と比較するようにセットアップ命令によってセットアップされる。
【００１３】
本発明の第３の態様によれば、第２の態様の方法を実施するコンピュータ実行可能命令が記録されたコンピュータ読取り可能媒体が提供される。
【００１４】
本発明の第４の態様によれば、電子ペンによる入力をリファイン変換する方法が提供される。電子ペンは、処理ユニットを備える。処理ユニットは、位置情報を受け取るように構成される。位置情報は、電子ペンが印刷文書での書込みに使用される時に記録される。処理ユニットは、位置情報を電子ペンの検出された位置の並びに変換するように構成される。リファイン変換は、特定のイベントの発生を表すペンデータを特定することと、その特定のイベントが発生することを表すイベントデータを作成することとを含む。この方法は、書込み中に処理ユニットによって作成されるペンデータを受け取ることと、電子ファイルを受け取ることと、アプリケーションからセットアップ命令を受け取ることと、受け取ったセットアップ命令に従ってペンデータのリファイン変換をセットアップすることと、を含む。ペンデータは、検出された位置の並びを含む。電子ファイルは、印刷文書に関する情報を含む。この電子ファイルは、電子ペンによる入力に応答して実行される処理命令を提供するアプリケーションから受け取られる。セットアップ命令は、アプリケーション固有である。これにより、リファイン変換は、イベントの発生を特定するためにペンデータを受け取られた電子ファイルの情報と比較することを含むように構成される。
【００１５】
本発明の第５の態様によれば、第４の態様の方法を実施するコンピュータ実行可能命令が記録されたコンピュータ読取り可能媒体が提供される。
【００１６】
本発明の第６の態様によれば、電子ペンによる入力をリファイン変換するソフトウェアモジュールが提供される。電子ペンは、処理ユニットを備える。処理ユニットは、位置情報を受け取るように構成される。位置情報は、電子ペンが印刷文書での書込みに使用される時に記録される。処理ユニットは、印刷文書に関して位置情報を電子ペンの検出された位置の並びに変換するように構成される。ソフトウェアモジュールは、書込み中に処理ユニットによって作成されるペンデータを受け取るように構成される。ペンデータは、検出された位置の並びを含む。ソフトウェアモジュールは、特定のイベントの発生を表すペンデータを特定することによってペンデータをリファイン変換し、その特定のイベントが発生することを表すイベントデータを作成するように構成される。ソフトウェアモジュールは、電子ペンによる入力に応答して実行される処理命令を提供する異なるアプリケーションに固有の異なる形でペンデータをリファイン変換するように構成可能である。ソフトウェアモジュールは、ソフトウェアモジュールのリファイン変換の機能にアクセスするアプリケーションプログラミングインターフェースをさらに含む。リファイン変換の機能は、電子ファイルをソフトウェアモジュールにロード可能にする機能と、ソフトウェアモジュールがペンデータをどのようにリファイン変換すべきかをセットアップ可能にする機能とを含む。電子ファイルは、印刷文書に関する情報を含む。セットアップ可能にする機能は、イベントの発生を特定するためにペンデータを電子ファイルの情報と比較するように、ソフトウェアモジュールをセットアップ可能にする機能を含む。
【００１７】
これらの態様の１つの利益は、ペンデータをリファイン変換するソフトウェアモジュールを、動的に制御できることである。したがって、ペン入力を処理するアプリケーションは、例えばアプリケーションが開始される時に、ソフトウェアモジュールを動的にセットアップすることができる。アプリケーションは、どの電子ファイルが印刷文書の電子的表現を保持しているかを知っている。これは、ペン入力をアプリケーションに与えるために書込み用に使用される。このようなソフトウェアモジュールの構成のおかげで、電子ファイルは、アプリケーションが開始される時にソフトウェアモジュールにロードされることができ、ソフトウェアモジュールは、検出された位置を、位置コード化パターンのうちで現在関心を持たれている部分を記述するロードされた電子ファイルのみと比較することができる。さらに、ソフトウェアモジュールは、ソフトウェアモジュールからデータを現在受け取っているアプリケーションにペンデータのリファイン変換が合うように、設計され得る。これは、関心を持たれているデータだけがソフトウェアモジュールから供給される必要があることを意味する。
【００１８】
また、ソフトウェアモジュールは、まず、第１アプリケーションのアプリケーション固有のセットアップ命令に従ってペンデータのリファイン変換を提供するようにセットアップされ得る。第２アプリケーションが実行される時には、同一のソフトウェアモジュールが、第２アプリケーションのアプリケーション固有のセットアップ命令（異なるアプリケーション固有のセットアップ命令）に従ってペンデータのリファイン変換を提供するようにセットアップされ得る。このようにして、ソフトウェアモジュールは、そのソフトウェアモジュールからデータを受け取っているアプリケーションに合わせてカスタマイズされ得る。
【００１９】
本発明のさらに他の目的、特徴、態様、および利益は、次の詳細な開示、添付の従属請求項、ならびに図面から明白になる。
【図面の簡単な説明】
【００２０】
以下、本発明の実施形態を、付随する概略図を参照してより詳細に説明する。
【図１Ａ】異なるサブストレート部材上に異なるコード化パターンとフォームレイアウトを合わせることによって、どのように独自の位置コード化された製品が作られるかを示す図である。
【図１Ｂ】電子ペンと図１Ａの製品を使用する情報取込用および情報処理用のシステムを示す図である。
【図２Ａ】複数のパターンページに論理的に区分される広大な位置コード化パターンの一部を示す図である。
【図２Ｂ】同一の座標で複数のパターンページを符号化する位置コード化パターンを示す概念図である。
【図３】文書の電子的表現とそれに対応する印刷文書との間の対応を示す概念図である。
【図４】ＡＦＤファイルのストレージセクションを示す図である。
【図５】ＡＦＤファイルの一実施形態を示す図である。
【図６】文書レイアウトをパターンページにマッピングする規約を示す概念図である。
【図７】電子ペンの長さ方向の断面を示す概略図である。
【図８】リアルタイムペンデータを処理する相互作用モジュールを示す図である。
【図９】リアルタイムペンデータを処理する方法を示すフロー図である。
【図１０】アプリケーション、相互作用モジュール、および、電子ペンの間の情報の移動を示す概略図である。
【図１１】相互作用モジュールを通したイベントのストリームの推移を示す図である。
【発明を実施するための形態】
【００２１】
（１．全般）
以下、本発明を、あるシステムを参照して詳細に説明する。このシステムでは、電子ペンが、印刷文書上での書き込みに使用される時に位置情報を記録するように構成されている。このシステムは、電子ペンの位置を求めるために位置コード化パターンを使用することができる。位置コード化パターンは、受動的な機械可読パターンであり、それは、紙などの製品表面に適用して、その上に位置データを符号化することができるものである。位置データは、電子ペンを使用することによって、符号化された製品表面から取り出すことができる。この電子ペンは、光学的に読取り可能な位置コード化パターンを撮像するイメージセンサと、撮像されたパターンを分析するプロセッサとを有することができる。ペンが製品表面と接触している間にイメージセンサをアクティブ化することによって、位置データの並び（ペンストローク）を記録して、製品表面上でのペンの移動を表すことができる。このようにして、手書きの電子的表現を生成することができる。
【００２２】
機械可読パターンは、人間が理解できるグラフィックスと一緒に印刷することができる。製品表面の各々に異なるパターンが印刷され、異なる位置データがもたらされる場合には、異なる製品表面を出どころとする位置データの間で区別をすることが可能である。
【００２３】
この原理を、情報取込および処理に使用することができる。図１Ａおよび１Ｂに示されているように、電子的に表されたマルチページフォーム１は、各ページ上に、独自のパターン２と共に印刷することができる。印刷されたフォーム３が電子ペン４を使用して記入される時に、結果として得られる位置データは、電子ペン４からバックエンド処理システム５に伝えられ得る。このバックエンド処理システム５では、位置データは、出どころとするフォームの個々のページに相関させられ得る。例えば、位置データは、オペレータに表示されてもよく、および／または、その特定のフォームのための処理ルールに従って処理されてもよい。結果として得られるデータは、データベース６に格納されてもよい。同一のフォームの異なるコピー（印刷されたコピー）は、異なるパターンを担持してもよい。その結果、位置データは、バックエンドシステムで、出どころとするフォームコピーを一意に特定するようになる。適切には、電子ペン４は、一意なｐｅｎＩＤ（ペンＩＤ）を有する。このペンＩＤは、位置データと一緒に伝えられて、出どころとなるペンをバックエンドシステム５が特定することを可能にするか、あるいは、少なくとも受け取られたデータを異なるペンの間で区別することを可能にする。
【００２４】
明らかに、このタイプのシステムは、各ページ（およびおそらくは各コピー）が一意パターンを与えられる必要があるので、大きな位置コード化パターンを必要とする。
【００２５】
図２Ａに示された一実施形態では、位置コード化パターン１０は、グローバルなｘｙ座標系１２（ｘｇ，ｙｇ）における多数の位置を符号化するために実装される。したがって、位置コード化パターン１０は、複数の位置の広大な連続した表面を表す。この膨大なパターンは、一つの物理ページに適したサイズのアドレス可能な複数の単位１４、すなわち複数のパターンページに、論理的に副分割される。したがって、各ページは、異なるパターンページ１４からのパターンを用いて印刷される。その結果、各印刷されたページは、グローバル座標系１２内の一意な位置を用いて符号化される。位置コード化パターンの副分割は、システム内で知られており、その結果、関連するパターンページ１４のページアドレス（ＰＡ）を、各記録された位置から導出できるようになる。図２Ａに示されているように、各パターンページ１４を、ローカル座標系１４’に関連付けることができる。これによって、記録された位置（グローバル座標系１２内の位置）を、ページアドレスおよびそのページアドレスによって特定されるパターンページ１４のローカル位置（ローカル座標系１４’内の位置）に変換することができる。そのようなコード化パターンおよびその副分割は、米国特許第６６６３００８号および米国特許出願第ＵＳ２００３／００６１１８８号に開示されている。
【００２６】
図２Ｂに示された別の実施形態では、位置コード化パターン１０が、その符号化によってパターンページ１４に分割される。具体的に言うと、位置コード化パターン１０は、複数の一意なパターンページ１４を符号化し、このパターンページ１４では、符号化された位置が、異なるパターンページの間で同一であるが、各パターンページは、一意な識別子を用いて符号化される。したがって、電子ペンは、一意な識別子（ページアドレス、すなわちＰＡ）とパターンページ内のｘｙ座標の形で位置データを記録する。そのようなコード化パターンは、米国特許第６３３０９７６号、米国特許第５６６１５０６号、および米国特許第６７６６９４４号から既に知られている。
【００２７】
電子ペンは、位置コード化パターン１０を設けられた表面での書込みに使用される時に、ペンデータを生成する。ペンデータは、検出された位置と、ペンがストロークを仕上げるために持ち上げられていることと、ペンがリモート装置に接続されていることなどの情報を含む。ペンデータは、ペン内またはペンデータを受け取るリモート装置内でリファイン変換することができる。ペンデータのリファイン変換は、アプリケーションによって制御することができる。このアプリケーションは、ペン入力を処理し、受け取られたペンデータに関連する処理命令を提供するように構成される。アプリケーションは、ペンデータをリファイン変換するソフトウェアモジュールをセットアップし、ソフトウェアモジュールがアプリケーションの望むペンデータを供給するように構成される。アプリケーションは、特に、ソフトウェアモジュールに電子ファイルをロードすることができる。ここで、電子ファイルは、電子ペンを使用して書込みが入力される印刷文書に関する情報を含む。ソフトウェアモジュールは、ペンデータのリファイン変換において電子ファイルを使用することができる。ペンデータは、例えば文書上のアクティブエリアに関係付けられることができる。このアクティブエリアは、ある種の処理ルールに関連付けられている。このようにして、アプリケーションは、ペンデータのリファイン変換を制御することができ、アプリケーションが必要とするものに適した形でリファイン変換された情報および関連する情報だけを受け取るようになる。
【００２８】
ここでは、電子ペンを用いる書込みは、特定の意味を有する文字を描くことだけではなく、絵を描いたり、製品表面上でボックスをマークするなど、電子ペンを用いて製品表面上に描かれるすべての種類のストロークまたはドットとしても解釈されなければならないことを理解されたい。
【００２９】
電子ファイルは、ペンデータを解釈するのに使用できる印刷文書の情報を提供する任意のファイルであってよい。したがって、ソフトウェアモジュールは、ペンデータをリファイン変換するのに電子ファイルを使用することができる。電子ファイルは、印刷文書の電子的表現を提供する電子文書であってよい。この電子的表現は、印刷文書の物理的外見を定義するグラフィックスおよび印刷文書の部分に関連する機能性に関する情報を含んでよい。しかしながら、この電子ファイルは、印刷文書の電子的表現全体である必要はなく、代替案として、ペンデータをリファイン変換するために必要な特定の情報だけを含んでもよい。通常、そのような電子ファイルは、特定の機能性に関連する印刷文書内のエリアの情報を含んでよい。これにより、ソフトウェアモジュールがペンデータをそのようなエリアに関係付けることが可能になる。しかしながら、電子ファイルは、文書、または、印刷文書の異なるページについて、一意なページ識別子だけを関連付けてもよい。これにより、ソフトウェアモジュールが関係する識別子を見つけて、ペンデータを関係する識別子に関連付けることが可能になる。
【００３０】
以下では、アプリケーションが、ペンデータをリファイン変換するためにソフトウェアモジュールをどのようにセットアップできるかをさらに説明する。これについての完全な理解を与えるために、まず、新しいタイプの電子文書の構造を詳細に説明する。つぎに、電子ペンの詳細を説明する。その後、ペンデータのリファイン変換を説明する。
【００３１】
（２．電子文書）
位置コード化パターンを設けられた文書の物理的なコピーは、対応する電子的表現を有してよい。そのような電子文書は、複数の文書ページを含んでおり、文書の各物理的なコピーおよびその文書ページの別々の表現をも含むことができる。電子文書の特定の物理的なコピーの特定の文書ページを、「ページインスタンス」とも称する。ページインスタンスは、文書ページのすべてのコピーに共通する内容およびそのページインスタンスに固有の内容を含んでよい。その内容は、通常は人間が理解できるグラフィックスであってよい。このグラフィックスは、紙のどこに何を書くべきかをユーザを案内する。電子文書は、それぞれのパターンページを各ページインスタンスに関連付けてもよい。このパターンページは、ページインスタンスごとに一意なものでもよい。これは、位置コード化パターン内の１つの位置を、文書の一意なコピーおよびページに関連付けられることを意味する。
【００３２】
電子文書は、さらに、文書ページに対するパターンページまたはその部分の相対的な配置を定義するレイアウトマッピングデータを含んでもよい。レイアウトマッピングデータは、文書の各インスタンスの明示的な場所データ（ロケーションデータ）を含んでもよい。この場所データは、パターンページのどの部分をどこに配置すべきかを定義する。
【００３３】
さらに、電子文書のレイアウトマッピングデータは、ある種の処理ルールに関連付けられる各文書ページ内のアクティブエリアを定義することができる。ペンストロークが、そのようなアクティブエリア内で記録される場合には、そのペンストロークは、関連する処理ルールに従って処理される。これらの処理ルールは、例えば、エリア内のペンストロークが、手書き認識の対象になることを定義してよく、これによって、そのエリアに入力された情報は、バックエンドシステム内で処理されてよい。別の例によれば、あるエリアは、チェックボックスに対応してもよい。チェックボックスをマークすることによって、ペンまたはバックエンドシステムの機能を開始することができる。
【００３４】
アクティブエリアは、文書の物理的なコピー（本明細書では「印刷文書」と呼ぶ）で識別可能ではない。代わりに、レイアウトマッピングデータが、印刷文書から記録された位置データの後続処理での使用のために１つまたは複数の文書ページのアクティブエリアの電子的表現を与える。しかしながら、印刷文書上の人間が理解できるグラフィックスが、アクティブエリアの位置と、アクティブエリア内のペンストロークがどのように解釈されるかと、を示してもよい。これは、人間が理解できるグラフィックス（アクティブエリアを囲むボックスを含む）と、アクティブエリアの処理ルールを説明するテキストおよび／または例示する絵と、によって達成することができる。
【００３５】
最も単純化した形では、文書ページは、ページ全体をカバーする１つのエリアだけからなるものでよい。さらに、このエリア内でのペン入力は、入力されたペンストロークを絵要素として格納するためにのみ処理されてよい。アクティブエリアのレイアウトは、アクティブエリアの個数を増やしたり、アクティブエリアを他の処理ルールに関連付けたり、無数の方法で変更されてよい。
【００３６】
レイアウトマッピングデータは、文書ページ上のパターンページの配置および文書ページ内のアクティブエリアの配置を定義するものであるが、このレイアウトマッピングデータは、アクティブエリアの一部である位置コード化パターンの位置を求めるのにも使用される。このようにして、アクティブエリアの位置が定義される。以下の「レイアウトマッピング」という見出しを付けられたセクションでは、少量のデータしか必要としないレイアウトマッピングを達成する方法を、さらに説明する。
【００３７】
電子文書は、通常、システム開発者／展開者またはページレイアウトの専用のデザイナによって作成されてよい。デザイナは、印刷文書に書き込むユーザに提示される情報、すなわち人間が理解できるグラフィックスをデザインする。人間が理解できるグラフィックスは、例えばフォーム（用紙）にどのように記入するかをユーザを案内すべきものである。デザイナは、さらに、アクティブエリアのレイアウトを作成して、文書の異なる部分に入力された情報の間での区別を可能にし、異なる形での情報の処理を可能にする。人間が理解できるグラフィックスのレイアウトは、使い易く理解しやすいフォームの作成を専門とする第１デザイナによってデザインされてよい。アクティブエリアのレイアウトは、プログラミングを専門とする第２デザイナによってデザインされてよく、適切な機能をアクティブエリアに関連付けられてよい。
【００３８】
デザインされた文書は、印刷されてよく、印刷された文書は、専用のユーザに分配されてよい。アクティブエリアのレイアウトは、電子文書に組み込まれてよく、この電子文書は、印刷された文書での書込みからペン入力を受け取る処理ユニットに送られる。処理ユニットは、電子ペン内またはペンデータを受け取る装置内にあってもよい。
【００３９】
電子文書をデザインする際には、電子文書の処理に適合された特殊なソフトウェアプログラムを使用してもよい。そのような特殊なプログラムの例を、以下では「文書モジュール」と称する。文書モジュールは、正しいファイルフォーマットで電子文書を作成し、その中に含まれるデータを操作するように適合されている。文書モジュールは、電子文書をデザインする際に使用することができるが、電子文書を読む際および書く際にも使用することができる。したがって、文書モジュールは、電子文書がデザインされる時と、データが読まれる又は電子文書に書かれる時の両方に使用されてよい。例えば、電子文書内に電子ペンによる入力を格納するためなどのような場合である。具体的には、文書モジュールは、ＡＰＩ（アプリケーションプログラミングインターフェース）を提供する。このＡＰＩは、電子文書を読むため、ファイル内のデータを削除するため、および、ファイルにデータを追加するためのものである。文書モジュールＡＰＩは、データがＡＦＤファイル内の正しい場所で矛盾のない形で読み取られ／書き込まれることを保証する。文書モジュールは、ソフトウェア基本構成要素を提供する。これにより、システム開発者／展開者は、カスタマイズされたソフトウェアにモジュールを一体化するために、ＡＰＩを使用できる。
【００４０】
以下でさらに詳細に説明するように、電子文書は、ファイル構造によって有利に表すことができる。ここで、文書に関連するアクティブエリアのレイアウトは、どのパターンページが文書およびグラフィックス（人間が理解できるグラフィックス）に含まれるかの定義から分離される。これは、アクティブエリアのレイアウトを電子文書から簡単に取り出すことができることを意味する。このことは、電子文書の処理を容易にする。また、アクティブエリアのレイアウトは、それぞれの文書ページに関連付けられてもよい。これにより、文書ページ内のアクティブエリアの特定のレイアウトが、簡単に取り出されるようになる。具体的には、印刷文書でのペン入力の処理が、以下でさらに説明するように容易にされる。
【００４１】
（２．１．例示的なファイル構造）
共通のファイルフォーマット（ＡＦＤ、Ａｎｏｔｏ  Ｆｕｎｃｔｉｏｎａｌｉｔｙ  Ｄｏｃｕｍｅｎｔ）が、電子ペンによる入力を処理するシステム内でデータを送るのに有利に使用される。ＡＦＤファイルフォーマットを、これから詳細に説明する。
【００４２】
一実施形態では、データは、文書ページによって、および、おそらくはページインスタンスによって、ＡＦＤファイル内で構造化される。代替実施形態では、データは、ページアドレスによって、ＡＦＤファイル内で構造化される。
【００４３】
どちらの場合でも、文書モジュールＡＰＩが、各文書ページの個々のインスタンスへのインデックスを使用してＡＦＤファイルにアクセスすることを可能にすることが好ましい。適切には、このインデックスは、コピー番号（ｃｏｐｙ＃）およびページ番号（ｐａｇｅ＃）の組合せによって各インスタンスを参照する。これによって、文書の電子的表現とその最終的な印刷された対応部分との間に、理解できるような対応があり、この対応は、複数のコピー（各コピーが複数のページからなる）として実現される（図３参照）。物理的な世界とディジタル世界との間のこの類似性は、システム開発者／展開者にとって大いに助けになり得る。データがページアドレスによってＡＦＤファイル内で構造化されている場合、ファイルは、ページアドレスをページインスタンス（ｃｏｐｙ＃，ｐａｇｅ＃）に関係付ける変換データを含むことが好ましく、文書モジュールＡＰＩは、インスタンス（ｃｏｐｙ＃，ｐａｇｅ＃）からページアドレスにおよびその逆に変換する機能を含むことが好ましい。
【００４４】
アクセス速度および可読性を促進にするために、ＡＦＤファイルは、それぞれがデータの特定のカテゴリ専用の必須ストレージセクションに構造化されてよい。これらのストレージセクション内で、データは、適宜、（ｃｏｐｙ＃，ｐａｇｅ＃）および／またはページアドレスによって構造化されてよい。
【００４５】
ＡＦＤフォーマットは、システム開発者／展開者がカスタマイズされたストレージセクションを追加することができるように、適切に設計される。このカスタマイズされたストレージセクションは、上記の文書モジュールＡＰＩによって無視されるが、選ばれたファイルリーダーを介してアクセスされ得る。これは、システム開発者／展開者がＡＦＤファイルを介して任意のタイプのデータを文書に関連付けることを可能にする。このために、ＡＦＤファイルが標準ファイルリーダーおよび／またはテキストエディタを介してアクセス可能であることが望ましい。
【００４６】
一実施形態では、ＡＦＤファイルは、ＸＭＬなどの記述的マークアップ言語で記述され、異なるストレージセクションを識別するためにタグ付けされる。
【００４７】
別の実施形態では、ＡＦＤファイルは、適切には各ファイルを圧縮した後に、多数のファイルを１つに集約するアーカイブファイルとして実装される。これは、異なるタイプのファイルをそのオリジナルフォーマットでＡＦＤファイル内に格納することを可能にし、ＡＦＤファイルのファイルサイズをより小さくすることを実現する。ＡＦＤファイル内の異なるストレージセクションは、アーカイブファイル内のフォルダおよび／またはファイルによって与えることができる。ある特定の実施形態では、アーカイブファイルがＺＩＰファイルである。
【００４８】
図４に示された一実施形態では、ＡＦＤファイルは、「ＧＥＮＥＲＡＬ」、「ＰＡＴＴＥＲＮ」、「ＳＴＡＴＩＣ」、「ＤＹＮＡＭＩＣ」、「ＲＥＳＯＵＲＣＥＳ」、および「ＧＥＮＥＲＡＴＥＤ  ＤＡＴＡ」という６つの必須のデータカテゴリを含む。これらのカテゴリは、ＡＦＤファイル内で明示的なストレージセクションとして与えられてもよく、また、与えられなくてもよい。ＧＥＮＥＲＡＬは、文書に関するメタデータを含み、これには、パターンページとページインスタンスとの間のマッピングを示すマッピングデータが含まれる。ＰＡＴＴＥＲＮは、１つまたは複数のパターンライセンスを含み、パターンライセンスのそれぞれは、パターンページのセットを定義する。ＳＴＡＴＩＣは、ページ仕様（ページテンプレート）を含む。このページ仕様（ページテンプレート）は、各文書ページの不変レイアウトを定義するものであり、すなわち、文書ページのすべてのインスタンス（コピー）に関係するレイアウトデータである。このレイアウトデータは、グラフィカル要素、アクティブエリア、および、アクティブエリアに関連するプロパティを含んでよい。グラフィカル要素は、人間が理解できる要素（線、アイコン、テキスト、イメージなど）ならびにパターンエリア（すなわち、実際のコード化パターンのサブセット）を含む。ＤＹＮＡＭＩＣは、インスタンス固有のレイアウトデータを定義するページ仕様、すなわち、文書ページの特定のインスタンス（コピー）に一意なレイアウトデータを含む。このレイアウトデータも、グラフィカル要素、アクティブエリア、および、アクティブエリアに関連するプロパティを含んでよい。ＲＥＳＯＵＲＣＥＳは、リソースを含む。このリソースは、文書に共通するか、静的または動的なページ仕様によって参照されるか、のいずれかである。ＧＥＮＥＲＡＴＥＤ  ＤＡＴＡは、ペンストローク、ピクチャ、サウンドなど、物理的文書（印刷された時のコード化された製品）に関連して生成されるデータを含む。
【００４９】
アーカイブファイルとして実装されたＡＦＤフォーマットの実施形態を、図５に概略的に示すが、図５では、理解を容易にするために、異なるデータストレージセクションが、大括弧内に示されている。
【００５０】
ＧＥＮＥＲＡＬセクションは、ＡＦＤファイルの最上位フォルダ内に３つのＸＭＬファイルすなわち、「ｍａｉｎ．ｉｎｆｏ」、「ｍａｉｎ．ｄｏｃｕｍｅｎｔ」、および「ｍａｉｎ．ｐａｔｔｅｒｎ」を含む。この「．ｉｎｆｏ」ファイルは、ＡＦＤファイルに関するグローバルデータ（メタデータ）を含む。このグローバルデータは、プラットフォームでの単純化された処理のために、ＡＦＤファイルから選択的に抽出されてよい。例えば、複数のＡＦＤファイルの中で正しいＡＦＤファイルを突き止めるためや、正しい宛先にＡＦＤファイルをルーティングするなどのためにである。「．ｄｏｃｕｍｅｎｔ」ファイルは、文書データ（メタデータ）を含む。この文書データは、ＡＦＤファイルの他のデータストレージセクション内のデータにアクセスする時に、通常は読取り動作、書込み動作、またはマッピング動作で使用される。「．ｐａｔｔｅｒｎ」ファイルは、基本的なページマッピングデータを含む。したがって、パターンライセンスがＡＦＤファイルに追加される時に、必ず、「．ｐａｔｔｅｒｎ」ファイルが更新されることが理解される。
【００５１】
ＰＡＴＴＥＲＮセクションは、１つまたは複数のパターンライセンスファイルを保持する“ｌｉｃｅｎｓｅｓ”フォルダを含む。各「．ｌｉｃｅｎｓｅ」ファイルは、その開始ページアドレスによって特定される。
【００５２】
ＳＴＡＴＩＣセクションは、静的ページ仕様を保持する。このＳＴＡＴＩＣセクションは、ページ番号（ｐａｇｅ＃）によって与えられ、文書のページごとのサブフォルダを有する“ｐａｇｅｓ”フォルダを含む。各そのようなサブフォルダは、「ｐａｇｅ．ａｒｅａｓ」ファイルによって与えられるエリアコレクション、「ｐａｇｅ．ｇｆｘ」ファイルによって与えられるグラフィックスコレクション、および、１つまたは複数のプロパティコレクションを保持することができる。異なるファイル拡張子（ｓｕｆｆｉｘ）が、異なるプロパティコレクションを互いに区別するのに使用される。エリアコレクションは、アクティブエリア（ａｒｅａＩＤ（エリアＩＤ）によって与えられる）、すなわち、処理するアプリケーションによって使用されるエリアを定義する。グラフィックスコレクションは、集合的にページの可視レイアウトを形成するグラフィカル要素を定義または特定する。
【００５３】
各プロパティコレクションは、「．ａｒｅａｓ」ファイルによって定義されるアクティブエリアに特定のプロパティを関連付けるのに使用される。具体的には、プロパティコレクションは、エリアＩＤのセットをデータストリングに関連付ける。プロパティコレクションは、あるページのアクティブエリアをエリア名、文字認識タイプ（数、文字、電子メール、電話番号など）、オーディオファイル名、機能呼出し、ペンフィードバック振動タイプ（１回、２回など）に関連付けるのに使用することができる。
【００５４】
ＤＹＮＡＭＩＣセクションは、動的ページ仕様を保持する。このＤＹＮＡＭＩＣセクションは、ＳＴＡＴＩＣセクションと同様に構造化され、対応するデータを格納する。具体的には、このセクションは、“ｐａｇｅｓ”フォルダの“ｉｎｓｔａｎｃｅｓ”サブフォルダを含む。このサブフォルダは、インスタンスごとに、エリアコレクション、グラフィックコレクション、および、１つまたは複数のプロパティコレクションを保持することができる。各コレクションは、コピー番号（ｃｏｐｙ＃）およびページ番号（ｐａｇｅ＃）によって与えられ、関係するインスタンスを識別するファイル名を与えられる。
【００５５】
ＲＥＳＯＵＲＣＥＳセクションは、“ｐａｇｅｓ”フォルダの“ｒｅｓｏｕｒｃｅｓ”サブフォルダを含む。ｒｅｓｏｕｒｃｅｓサブフォルダは、任意のタイプのファイルを保持することができる。このファイルは、文書に共通するか、静的または動的なページ仕様で参照されるか、のいずれかである。リソースは、記録された位置データを表示する時に使用される異なる解像度の背景イメージ、オーディオファイル、それぞれのグラフィカル要素を示すイメージファイル、ワードプロセシング文書などの文書ファイル、ＰＤＦファイル、プレゼンテーション文書、スプレッドシート文書などを含むことができる。
【００５６】
ＧＥＮＥＲＡＴＥＤ  ＤＡＴＡセクションは、“ｄａｔａ”フォルダを含む。このフォルダは、印刷された時の文書に関連して生成されるすべてのデータを保持する。記録された位置データは、タイムスタンプ付きペンストロークとして格納される。図示の例では、ペンストロークは、「．ｓｔｆ」ファイルフォーマットで格納され、含まれるペンストロークの時間範囲（すなわち、ファイル内の最も古いタイムスタンプ、および、最も新しいタイムスタンプ）を示すファイル名とともに格納される。この名前付けの規約は、時間マッピングを容易にするため、すなわち、記録時間に基づいてペンストロークをすばやく見つけるのを簡単にするために使用される。
【００５７】
ペンストロークは、サブフォルダの構造内に格納され、好ましくはページアドレスおよびペンＩＤによってソートされて格納される。したがって、ページアドレスは、ペンストロークが記録されたパターンページを示し、ペンＩＤは、ペンストロークを記録した電子ペンを示す。ＡＦＤファイルの他の部分とは対照的に、ペンストロークは、好ましくはインスタンス（ｃｏｐｙ＃，ｐａｇｅ＃）ではなく、その出どころのページアドレスに関連付けられる。ページアドレスは、システム全体の中で一意なものであるが、インスタンスは、特定のＡＦＤファイル内でのみ一意なものである。ペンストロークがページアドレスに関連付けられる場合には、それらのペンストロークは異なるＡＦＤファイルの間で簡単に送ることができる。さらに、電子ペンは、ペンストロークの入れ物としてＡＦＤフォーマットを使用することが望ましい場合がある。一般に、電子ペンは、特定の文書のページマッピングに関する情報を有しておらず、したがって、インスタンスに基づいてペンストロークを格納することはできない。
【００５８】
また、他の生成されたデータも、“ｄａｔａ”フォルダ内または適切なサブフォルダ内に格納されてよく、好ましくは、時間範囲を示すファイル名を用いて、適切にはデータのタイプを示すファイル拡張子を用いて格納されてよい。生成されたデータは、印刷文書に関連してペンまたはアクセサリデバイスで撮影された写真、印刷文書に関連して記録されたオーディオファイル、印刷文書に関連して記録されたバーコード、ペンストロークの手書き認識処理（ＨＷＲ処理）から得られたテキストなどを含むことができる。
【００５９】
タイムスタンプ、ページアドレス、およびペンＩＤに基づくファイル名を使用することによって、互いに関連して作成されたファイルがリンクされる。例えば、同時に記録されたペンストローク、写真、およびＧＰＳ位置は、同一のファイル名を用いて、ファイル拡張子だけが異なって格納される。これは、これらのリンクされたファイルを簡単に一緒に取り出すことができることを意味する。
【００６０】
（２．２．レイアウトマッピング）
ＡＦＤファイルは、文書ページに対するパターンページまたはその部分の相対的な配置を定義するレイアウトマッピングデータをも含む。レイアウトマッピングデータは、文書のインスタンスごとに明示的な場所データ（ロケーション）を含むことができ、この場所データは、パターンページのどの部分をどこに配置すべきかを定義する。
【００６１】
しかしながら、処理を単純化し、ＡＦＤファイルサイズを減らすために、レイアウトマッピングデータは、好ましくは部分的に、規約によるマッピングに基づいている。以上で説明したように（図２Ａ〜２Ｂ参照）、すべてのパターンページ１４を、パターンページ上の既知の原点、例えばその左上角を有するローカル座標系１４’（「パターンページ座標系」とも称する）に関連付けることができる。図６に示されているように、すべての文書ページ１８は、同様に、文書ページ上の既知の原点、例えばその左上角を有するローカル座標系１８’（「紙座標系」とも称する）に関連付けることができる。図６に示された一実施形態では、規約により、パターンページ１４が関連付けられた文書ページ１８に完全にオーバーラップするように、これらの座標系１４’と１８’との間に既知の決められた関係がある。図６の例では、紙座標系１８’の原点を、パターンページ座標系１４’内の負でないｘｙ座標の対として表すことができる。したがって、この規約を使用すると、文書ページ１８は、既知の方法でパターンページ１４に概念的に重畳される。さらなる規約によって、パターンページの選択されたサブセット（パターンエリア１９）は、オーバーラップしている位置で文書ページ１８に配置される。したがって、パターンエリア１９を（パターンページ座標系１４’で）指定することによって、文書ページ１８上のその位置（紙座標系１８’での位置）が、自動的に与えられる。逆も同様であり、パターンエリア１９は、文書ページ１８上で指定される（紙座標系１８’で）すべての領域について、自動的に既知になる。概念上、これを、カバーシートのヒンジ付きのドアを開いて、隠された下にあるシートを明らかにすることができる「クリスマスカレンダ」になぞらえることができる。領域が文書ページ１８上で定義される時に、下にあるパターン（パターンエリア１９）が、明らかにされるのである。
【００６２】
文書ページ１８上でパターンエリア１９を指定するのには、少量のデータだけが必要であり、結果として、ＡＦＤファイルのサイズを減らすことができる。これは、例えば、文書ページ上の領域の位置を定義するのに十分である。パターンの内容は、規約によって既知である。
【００６３】
一実施形態では、システム開発者／展開者は、紙座標系１８’およびパターンページ座標系１４’のうちの１つだけを見せられる。したがって、アクティブエリアおよびグラフィカル要素の位置およびサイズは、すべて、これらの座標系の一方で定義される。同様に、電子ペンは、この座標系で与えられる位置データを出力する。現在の好ましい実施形態では、開発者／展開者は、物理的な世界とディジタル世界との間の類似性の質を高めるために、紙座標系１８’を見せられる。したがって、ＡＦＤファイル内で与えられるグラフィカル要素の位置は、印刷された製品上のグラフィカル要素の位置と一致する。この好ましい実施形態では、電子ペンは、パターンページ座標系１４’の位置を紙座標系１８’の位置に変換する必要がある。この変換は、単純な線形座標シフトによって行われる。
【００６４】
（３．電子ペン）
電子ペンは、ペンが製品表面での書込みに使用される時に製品表面上の位置を検出する機能を有する。この電子ペンは、複数の異なる方法で位置情報を記録するように構成することができる。例えば、電子ペンは、カメラを含んでもよく、製品表面上の光学的に読取り可能な位置コード化パターンのイメージを記録するように構成されてよい。代替案では、位置コード化パターンは、光学的に読取り可能なパターンのイメージではなく、適切な手段によって検出される、電気的、化学的、またはある他のタイプのパターンとして適用することができる。ペンは、例えば、電気パターンを検出する導電率センサを有してもよい。
【００６５】
電子ペンは、さらに、書込み中に電子ペンによって記録された位置情報を検出された位置の並び（シーケンス）に変換できる処理ユニットを含む。処理ユニットは、製品表面上の位置コード化パターンを検出するセンサから、位置情報を受け取る。処理ユニットは、検出されたパターンを位置に復号するソフトウェアを含んでもよい。このソフトウェアは、位置コード化パターンの構造の情報を保持し、したがって、パターンの検出された部分から位置を求めることができる。
【００６６】
電子ペンは、検出された位置の並びを、別のデバイスに送るように構成してもよく、この別のデバイスは、検出された位置をさらに解釈できるものでもよい。このように実装される電子ペンは、非常に単純なものでもよく、位置のストリームを出力することだけができるものでもよい。電子ペンは、無線接続または有線接続によって別のデバイスに接続されるように構成することができる。このために、電子ペンは、ストレージメモリさえ含む必要がなく、すべての検出された位置は、別のデバイスに直接に送られることができる。
【００６７】
しかしながら、電子ペンは、さらなる機能性を含んでもよい。例えば、電子ペンは、要求があった時に別のデバイスに送られてよい検出された位置を格納するメモリを含んでもよい。電子ペンは、ディスプレイやスピーカなど、ユーザにフィードバックを提供するユニットを含んでもよい。電子ペンは、さらなるセンサを含んでもよく、このセンサは、検出された位置に関連付けることができるさらなる情報を検出する。電子ペンは、光学的に読取り可能な位置コード化パターンを検出するカメラとは別のカメラ（写真を得るためのカメラ）、音声を記録するマイクロホン、製品表面でペンによって印加される圧力を検出する力センサなどを含んでもよい。
【００６８】
以下では、図７を参照しながら、以上に説明したタイプのシステムで使用できる電子ペン４００の実施形態についての詳細な説明を続ける。ペンは、それを介してイメージを記録できるウィンドウまたは開口４０４を定めるペン形状のケーシングまたはシェル４０２を有する。ケーシングは、カメラシステム４０６、電子システム、および電源を含む。
【００６９】
カメラシステム４０６は、少なくとも１つの照明光源、レンズ、および光学イメージリーダー（図面には示さず）を含む。光源は、適切には発光ダイオード（ＬＥＤ）またはレーザダイオードである。この光源は、赤外線放射によって、製品表面上のエリアのうちで、ウィンドウ４０４を通して見ることのできる部分を照らす。見ることができたエリアのイメージは、レンズによってイメージリーダーに映される。イメージリーダーは、２次元のＣＣＤまたはＣＭＯＳの検出器であってよく、固定レートまたは可変レート（通常は約７０〜１００Ｈｚ）でイメージを取り込むためにトリガされる。
【００７０】
ペン４００の電源は、有利には、少なくとも１つのバッテリ４０８である。このバッテリは、その代わりに、主電源（図示せず）に置き換えるか、これによって補うことができる。
【００７１】
電子システムは、メモリ部４１２に接続される処理ユニット４１０を含む。処理ユニット４１０は、電子ペン内の様々な機能の責任を負う。したがって、処理ユニットは、以下では制御ユニット４１０とも呼ばれる。制御ユニット４１０は、有利には、ＣＰＵ（中央処理装置）などの市販マイクロプロセッサによって、ＤＳＰ（ディジタル信号プロセッサ）によって、あるいはＦＰＧＡ（フィールドプログラマブルゲートアレイ）もしくはその代わりにＡＳＩＣ（特定用途向け集積回路）、ディスクリートのアナログコンポーネントおよびディジタルコンポーネント、または上記のある組合せなどのある他のプログラマブル論理デバイスによって、実装することができる。メモリ部４１２は、好ましくは、様々なタイプのメモリを含み、例えば、作業メモリ（ＲＡＭなど）、ならびに、プログラムコードおよび持続性ストレージメモリ（不揮発性メモリ、例えばフラッシュメモリ）などを含む。関連するソフトウェアは、メモリ部４１２に格納され、電子ペンの動作に関するペン制御システムを提供するために、制御ユニット４１０によって実行される。この種の電子ペンのペン制御システムの一実施形態が、これによって参照によって組み込まれる国債公開第２００６／０４９５７３号に記載されている。制御ユニット４１０によって提供される１つの機能は、相対時刻およびオプションで絶対時刻を、制御ユニット４１０内で実行中のソフトウェアによって取り出すことを可能にするクロックである。クロックは、制御ユニット４１０自体の中でまたは外部ユニット（図示せず）を使用して実装することができる。
【００７２】
また、ケーシング４０２は、ペン先４１４を担持する。ペン先４１４は、ユーザが、顔料ベースのマーキングインクによって、製品表面上で物理的に書くか描くことを可能にする。ペン先４１４内のマーキングインクは、電子ペンでの光電子検出に干渉するのを避けるために、適切には照明放射に対して透明である。接触センサ４１６は、ペン先４１４に動作可能に接続されて、ペンが製品表面に押し付けられ（ペンダウン）および／または持ち上げられる（ペンアップ）時を検出し、オプションで、印加された圧力を求めることを可能にする。接触センサ４１６の出力に基づいて、カメラシステム４０６は、ペンダウンとペンアップとの間に、１つまたは複数のイメージを取り込むように制御される。これらのイメージは制御ユニット４１０によって処理されて、製品表面の撮像されたエリア上の位置コード化パターンによって表される位置が復号される。このように、制御ユニット４１０は、表面上のペンの絶対位置または相対位置と移動とを表す位置の並びを定める位置データを生成する。
【００７３】
生成された位置データは、ペンによって、通信インターフェースとして機能する組込み型トランシーバ４１８を介して近くのまたはリモートの装置に出力することができる。このために、トランシーバ４１８は、有線または無線の短距離通信（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＵＳＢ、ＲＳ２３２シリアル、無線伝送、赤外線伝送、超音波伝送、誘導結合など）のコンポーネント、および／または、有線または無線リモート通信（通常はコンピュータ通信ネットワーク、電話通信網、または衛星通信網を介し、例えばＴＣＰ／ＩＰを利用する）のコンポーネントを提供することができる。
【００７４】
制御ユニット４１０は、ペンで発生する重要な変化を登録してもよい。重要な変化を登録する時に、制御ユニット４１０は、その変化を記述するペンデータを作成する。重要な変化は、ペン内のユニット（ペンとその外部との間の関係に関して情報を収集するユニット）が変化を登録する時に発生する。したがって、制御ユニット４１０は、例えば、接触センサ４１６がペンダウンまたはペンアップを検出することに対応するペンデータや、トランシーバ４１８が通信インターフェースを介して装置に接続するか装置から切断することに対応するペンデータを作成することができる。また、制御ユニット４１０は、復号される新しい位置ごとにペンデータを作成してもよい。さらに、復号がなんらかの理由で不成功の場合には、エラーを示すペンデータを作成してもよい。
【００７５】
制御ユニット４１０によって作成されたペンデータは、ペンまたはペンから入力を受け取る装置によって行われるアクションの制御に使用されてよい。ペンデータは、ペンで発生する重要な変化に対するリアルタイム応答を可能にする。アクションを行うべきであることを決定するためのペンデータの処理を、以下で詳細に説明する。
【００７６】
ペンは、ユーザフィードバックのために選択的にアクティブ化されるＭＭＩ（マンマシンインターフェース）４２０をも含むことができる。ＭＭＩは、ディスプレイ、インジケータランプ、バイブレータ、スピーカなどを含んでよい。
【００７７】
さらに、ペンは、１つまたは複数のボタン４２２を含んでもよく、このボタンによって、ペンは、起動および／または制御され得る。
【００７８】
ペンは、独立のデータを生成するハードウェアおよび／またはソフトウェアを含んでもよい。独立のデータは、例えば、オーディオデータ、イメージデータ、ビデオデータ、バーコードデータ、および／または文字コード化されたデータなどである。また、ペンは、例えば、オーディオデータを記録するマイクロホン、バーコードデータを記録し処理する光学センサおよびソフトウェア、ならびに／または、手書きを表す位置データを文字コード化されたデータに変換する手書き認識（ＨＷＲ）ソフトウェアを含んでもよい。
【００７９】
ペンのメモリ部４１２は、ペン常駐パラメータ、例えば、ペンを一意に特定するペンＩＤ、言語識別子、名前、所在地住所、電子メールアドレス、電話番号、ポケットベル番号、ファックス番号、クレジットカード番号などを格納することができる。ペン常駐パラメータは、ペンの製造時にペンに格納されてもよく、および／または、ペンの使用中にメモリ部にダウンロードされてもよい。
【００８０】
（４．イベント処理）
以上で説明したように、電子ペンの制御ユニット４１０は、ペンの重要な変化を記述するペンデータを作成する。このペンデータは、電子ペンがどのように使用されるかの基本情報を提供する。さらに、このペンデータは、電子ペンがどのように使用されるかのリアルタイム情報（より特定のリアルタイム情報）を作成するために使用してもよい。言い換えると、ペンデータは、特定の関心を持たれている情報を構成するようにリファイン変換することができる。この目的のために、ペンデータは、ある要件を満足するペンデータを特定するために調べられてよく、これによって、その要件によって指定されるイベントが発生したことを示すことができる。そのようなペンデータが特定される時に、イベントの発生を指定するデータレコードが作成されてよい。以下では、用語「イベント」を、イベントの発生を指定する単一のデータレコードを指すのにも使用する。リファイン変換されていないデータレコード、したがってペンの重要な変化を記述するデータレコードは、「基本イベント」と呼ばれる。
【００８１】
ペンデータのリファイン変換は、ペンデータの処理に特に適合されたソフトウェアモジュールによって実行することができる。このソフトウェアモジュールは、ペンの制御ユニット４１０またはペンデータを受け取る装置で実行することができる。このソフトウェアモジュールは、特定の要件を満足する発生を記述するペンデータを特定するアルゴリズムを提供するように構成されてよい。アルゴリズムを起動するために、ソフトウェアモジュールに対する機能呼出しを行うことができる。このようにして、ソフトウェアモジュールによって実行されるペンデータのリファイン変換を、機能呼出しによって制御することができる。このことは、アプリケーション（例えば、ペン入力を処理するソフトウェアプログラム）が、図８に示されているように、アプリケーションが望むような方法でイベントデータを提供するためにソフトウェアモジュールがペンデータをどのようにリファイン変換すべきかを、アプリケーションに特有の方法でセットアップすることができることを意味する。例えば、機能呼出しは、電子ファイルをソフトウェアモジュールにロードすることを可能にする。ソフトウェアモジュールは、ペンデータをリファイン変換するために、電子ファイルの情報を使用することができる。ペンデータは、電子ファイルと比較することができる。その結果、ソフトウェアモジュールは、例えば、検出された位置データが文書ページにどのように関係するのか、を特定できるようになる。電子ファイルのロードが完了した時に、ソフトウェアモジュールは、セットアップされて、例えば、検出された位置がアクティブエリア内であるかどうかを特定することができるようになる。したがって、ソフトウェアモジュールは、検出された位置を、ユーザによって行われるペン入力を解釈するためのコンテキスト部分に置くことができる。
【００８２】
電子ファイルは、例えば、電子ファイルへのポインタを与えることによって、ソフトウェアモジュールにロードすることができる。これにより、ソフトウェアモジュールは、メモリ内の電子ファイルにアクセスできるようになる。電子ファイルは、その代わりに、ソフトウェアモジュールからアクセス可能なローカルメモリに格納することができる。ソフトウェアモジュールは、アプリケーションによってセットアップされてリファイン変換されたペンデータを供給している限り、電子ファイルにアクセスすることだけを必要とする。したがって、アプリケーションが停止された時に、ソフトウェアモジュールは、電子ファイルへのポインタを解放することができる。これによって、電子ファイルがソフトウェアモジュールからアクセス可能なローカルメモリに格納されているときに、メモリが解放される。
【００８３】
イベントデータは、ペン入力に対する応答をトリガするために使用してもよい。イベントデータを受け取るアプリケーションは、処理命令をイベントのタイプに関連付けてよい。したがって、イベントがアプリケーションによって受け取られる場合に、アプリケーションは、適切なアクションを行うことができる。例えば、ペンストロークがアクティブエリア内で入力されたことを示すイベントが受け取られる場合に、アプリケーションは、アクティブエリアに関連する動作（写真を表示する、オーディオファイルを再生する、ストロークをファイルに格納する、電子ペンにファイルをロードするなど）を実行することができる。
【００８４】
イベントデータは、データレコードのストリームとして供給されてよい。その代わりに、イベントデータは、別々のデータパッケージとして供給されてもよい。それぞれのイベントは、例えば、データの記録の時刻の情報、ペンＩＤ、ならびに、イベントに固有の情報（ページアドレスおよび／または位置コード化パターン内の位置、アクティブエリアのエリアＩＤなど）を保持することができる。
【００８５】
（４．１．イベント処理のアプリケーション制御）
以上で示したように、ソフトウェアモジュールによるペンデータのリファイン変換は、ソフトウェアモジュールへの機能呼出しを介して制御することができる。したがって、図９に示されているように、ペン入力を処理するアプリケーションは、ソフトウェアモジュールの機能を制御することができる。アプリケーションが開始される時に（ステップ９０２）、そのアプリケーションは、ソフトウェアモジュールを呼び出して（ステップ９０４）、ペンデータのリファイン変換をセットアップすることができる。これは、ソフトウェアモジュールに電子文書をロードすること（ステップ９０６）およびソフトウェアモジュールの機能をセットアップするための機能呼出しを介して命令を供給すること（ステップ９０８）を含むことができる。アプリケーションは、ソフトウェアモジュールからのイベントデータをリスン処理することができ（ステップ９１０）、このイベントデータは、単にアプリケーションに関連する情報を保持することができる。アプリケーションは、特定のイベントデータに関連する命令をさらに処理することができる（ステップ９１２）。
【００８６】
ソフトウェア開発者／展開者は、アプリケーションを作成し、ソフトウェアモジュールの機能呼出しを使用するようにアプリケーションを適合させてよい。これにより、アプリケーションは、実行された時に、ソフトウェアモジュールをセットアップして、アプリケーションが望むような形でペンデータをリファイン変換するようになる。システム開発者／展開者は、アプリケーションを作成する時に、１つまたは複数の関連する電子ファイルをアプリケーションに関連付けることができる。アプリケーションは、関連する情報を含む電子ファイル（１つまたは複数）を使用してソフトウェアモジュールをセットアップして、アプリケーションが望むような形でペンデータをリファイン変換してもよい。
【００８７】
ソフトウェアモジュールは、電子ペンからペンデータを受け取る装置（パーソナルコンピュータ、携帯電話機、または携帯情報端末など）で動作するように構成されてよい。また、アプリケーションは、ペンデータを受け取るように構成された装置で動作されてもよい。これによって、アプリケーションは、ソフトウェアモジュールに簡単にアクセスして、ペンデータのリファイン変換をセットアップすることができる。代替案では、アプリケーションは、更に別の装置で動作させてもよく、ペンデータを受け取る装置で動作するソフトウェアモジュールを制御するのに使用してもよい。次に、リファイン変換されたペンデータは、ソフトウェアモジュールから更に別の装置で動作するアプリケーションに送られてもよい。
【００８８】
ここで図１０を参照して、アプリケーション、ソフトウェアモジュール、およびペンの間の情報の移動を説明する。アプリケーションが開始される時に、アプリケーションは、ソフトウェアモジュールに開始コマンドを送る（ステップ１０００）。アプリケーションは、さらに、ペンデータを受け取るように構成された装置にペンが接続されているのか切断されているのかに関する情報を受け取る要求を送る。アプリケーションは、ペンが接続されることを示すペンデータをソフトウェアモジュールが受け取る時に（ステップ１００２）、ペンデータがアプリケーションに送られるように（ステップ１００４）、ソフトウェアモジュールに登録する。ここで、アプリケーションは、電子ペンがソフトウェアモジュールに接続されてソフトウェアモジュールが電子ペンからペンデータを受け取り始めることを知る。そこで、アプリケーションは、ソフトウェアモジュールをセットアップして、ペンデータが所望の形でリファイン変換されるようにする。これに関連して、アプリケーションは、アプリケーション固有の機能呼出し（ペンデータのリファイン変換をセットアップして、これをアプリケーションに合わせてカスタマイズするためのアプリケーション固有の機能呼出し）をソフトウェアモジュールに送る（ステップ１００６）。例示されているように、アプリケーションは、ストロークが印刷文書のアクティブエリアに入ることを表すイベントを生成するように、ソフトウェアモジュールに要求することができる。この目的のために、アプリケーションは、ソフトウェアモジュールの機能呼出し（検出された位置を表すペンデータ（受け取ったペンデータ）と電子ファイルのアクティブエリアのレイアウトとを、ソフトウェアモジュールに比較させる機能呼出し）を使用することができる。また、アプリケーションは、アプリケーションが受け取ることを望むイベントのタイプをソフトウェアモジュールに知らせて（ステップ１００８）、ソフトウェアモジュールがアプリケーションにそのようなイベントを送るようにする。ソフトウェアモジュールは、受け取ったペンデータの処理で、要求されたアルゴリズムを使用する。このようにして、ソフトウェアモジュールがペンから新しい座標を受け取る時に（ステップ１０１０）、ソフトウェアモジュールは、それが電子ファイルによって指定される新しいアクティブエリア内であるかどうかを調べる。そうでない場合には、ソフトウェアモジュールは、検出された位置の情報を全く追加せずに、アプリケーションに新しい座標を表すイベントを送ってもよい（ステップ１０１２）。ソフトウェアモジュールは、新しい座標がアクティブエリア内であることが分かった場合には、ストロークがアクティブエリアに入ったことを表すイベントを作成し、このイベントをアプリケーションに送る（ステップ１０１４）。ソフトウェアモジュールは、さらなるペンデータが受け取られる限り、アプリケーションにイベントを送り続けることができる。電子ペンが接続を切断される時には、ソフトウェアモジュールは、その切断を登録し、ペン切断に関するデータをアプリケーションに送る（ステップ１０１６）。アプリケーションは、アプリケーションが終了される前に、ソフトウェアモジュールへの接続を解放することができる（ステップ１０１８）。
【００８９】
アプリケーションは、そのアプリケーションが実行される装置を操作するユーザによって開始することができる。しかしながら、その装置で動作するマスターアプリケーションがあってもよい。このマスターアプリケーションは、ソフトウェアモジュールから新しい座標に関する情報を受け取るためにソフトウェアモジュールを最初にセットアップする。マスターアプリケーションは、ソフトウェアモジュールからの様々なイベント（位置コード化パターン内の特定の範囲内の新しい座標またはエリアに入るイベントなど）に、アプリケーションを関連付けることができる。したがって、マスターアプリケーションは、そのようなイベントを受け取る時に、関連するアプリケーションを開始することができる。開始されたアプリケーションは、そのアプリケーションの必要に従ってソフトウェアモジュールをセットアップすることができ、ソフトウェアモジュールから所望のイベントを受け取ることができる。アプリケーションは、受け取られるイベントを考慮して、実行すべき処理命令を供給する。動作中のアプリケーションが関連付けられている範囲内ではない新しい位置が受け取られる時には、マスターアプリケーションは、どのアプリケーションがその新しい位置に関連するのかをもう一度チェックし、新しい関連するアプリケーションを開始することができる。したがって、マスターアプリケーションは、例えばどの位置がペンから受け取られるのかに応じて、ソフトウェアモジュールからイベントを受け取る異なるアプリケーションの間で切り替えるのに使用することができる。さらに、アプリケーションは、電子ペンによって開始されてもよく、ペンが使用される前に装置でアプリケーションが開始される必要はない。
【００９０】
代替案によれば、アプリケーションは、電子ペンにロードされてもよく、例えば、電子ペンの制御ユニット４１０上で動作させることができる。このようにして、アプリケーションは、ペンの制御ユニット４１０上で動作するように構成されたソフトウェアモジュールを制御することができる。ソフトウェアモジュールの制御は、図１０を参照しながら上で説明したものと同様の方法で実行することができる。アプリケーションが電子ペンの制御ユニット４１０上で実行される時に、ペンは、受け取られたイベントに関連して実行される関連するアプリケーションを見つけ、それらの間で切り替えることのできるマスターアプリケーションを便利に実行することができる。これは、アプリケーションが処理命令を供給する位置範囲内における任意の位置を検出することであってよい。これは、その代わりに、特定の開始位置を検出することであってもよい。その場合に、電子ペンのユーザは、電子ペン内の異なるアプリケーションを開始するアイコンを有するカードを有することができる。このカードには、位置コード化パターンが設けられており、ペンがアイコンをポイントする時に、ペンがそのアイコンに関連するアプリケーションの開始位置を検出できるようになっている。マスターアプリケーションは、通常、ペンが起動される時に、例えばキャップを外すことまたはボタンを押すことによって、開始することができる。
【００９１】
異なるアプリケーションの間の切り替えを可能にするマスターアプリケーションを実行するのではなく、ソフトウェアモジュールが、位置コード化パターンの位置に関連するアプリケーションのリストを含んでもよい。ソフトウェアモジュールが位置データを受け取り、アプリケーションが動作していない時には、ソフトウェアモジュールは、関連するアプリケーションを開始するために、位置をアプリケーションのリストと比較することができる。さらに、動作中のアプリケーションがそのアプリケーションに関連付けられていない位置の位置データを受け取る時には、ソフトウェアモジュールは、別のアプリケーションを開始するために、新しい位置をアプリケーションのリストと比較することができる。ソフトウェアモジュールは、ソフトウェアモジュール内のアプリケーションのリストにアプリケーションを追加することを可能にする登録機能を有してもよい。
【００９２】
さらに、ソフトウェアモジュールは、異なるアプリケーションによって異なる方法でセットアップされ得る。したがって、第１のアプリケーションが、そのアプリケーションに固有の方法でソフトウェアモジュールをセットアップするように実行され、その後、第２のアプリケーションが、第２のアプリケーションに固有の別の方法でソフトウェアモジュールをセットアップするように実行されてもよい。このように、ソフトウェアモジュールによるイベントデータの作成は、動的に制御されてもよく、ソフトウェアモジュールから入力を現在受け取っているアプリケーションに合わせてカスタマイズされてもよい。
【００９３】
（５．相互作用モジュール）
ここで、ペンデータをリファイン変換するソフトウェアモジュールの例を、詳細に説明する。このソフトウェアモジュール例を、以下では「相互作用モジュール」と呼ぶ。相互作用モジュールは、アプリケーションプログラミングインターフェース（ＡＰＩ）を有するソフトウェア基本構成要素であり、システム開発者／展開者がモジュールをカスタマイズされたソフトウェアに一体化することを可能にするものである。相互作用モジュールＡＰＩを介して、システム開発者／展開者によって作成されたアプリケーションは、基本イベントが相互作用モジュールによってどのようにリファイン変換されるべきかをカスタマイズすることができる。したがって、システム開発者／展開者は、相互作用モジュールＡＰＩを介して相互作用モジュールを制御するアプリケーションを設計でき、その結果、相互作用モジュールによるペンデータのリファイン変換が、正しくセットアップされるようになる。
【００９４】
相互作用モジュールは、有利には、ペン入力を解釈するために電子文書を使用してもよい。上記のように、電子文書は、各文書ページ内のアクティブエリアのレイアウトの情報を提供する。相互作用モジュールは、記録された位置が属する文書ページがどれであるのかを、その位置をパターンページおよび電子文書のレイアウトマッピングと比較することによって、簡単に決定することができる。このようにして、関連する文書ページのアクティブエリアのレイアウトがアクセスされてよく、アクティブエリアのレイアウトに位置が相関させられてよい。相互作用モジュールは、記録された位置がアクティブエリア内であると決定した場合に、アクティブエリアに入ったことをシグナリングするイベントを作成することができる。そのようなＡｒｅａＥｎｔｅｒイベントは、例えばアクティブエリアに関連する処理命令によってペン入力を処理するためにアプリケーションプログラムによって使用することができる。
【００９５】
このようにして、相互作用モジュールは、アクティブエリアの関連するレイアウトにすばやくアクセスし、記録された位置がアクティブエリア内であるかどうかを決定するように、セットアップすることができる。さらに、電子文書のフォーマットのおかげで、相互作用モジュールは、関連する文書ページのアクティブエリアのレイアウトにアクセスすることだけを必要とする。したがって、レイアウトをすばやく読み取ることができ、少量のメモリだけが必要とされる。
【００９６】
相互作用モジュールは、ペンデータに基づいて作成される基本イベントのストリームを供給する。相互作用モジュールＡＰＩを使用して、アプリケーションは、ストリームからイベントをフィルタリングするかストリームに新しいイベントを作成することができるオブジェクトをセットアップすることができる。これらのオブジェクトを、ＥｖｅｎｔＨａｎｄｌｅｒ（イベントハンドラ）と呼ぶ。イベントハンドラは、相互作用モジュール内で使用可能であり、相互作用モジュールの機能を制御するアプリケーションによってアクティブ化できるアルゴリズムのセットである。イベントハンドラは、ストリームからイベントをフィルタリングするかストリームに新しいイベントを生成するようにイベントハンドラをセットアップする所定の機能呼出しを含む。したがって、イベントハンドラを開始することによって、関連するイベントデータを生成するためにアプリケーションから複数の機能呼出しが使用可能になる。アプリケーションは、複数のイベントハンドラのリンクを作成してもよい。これにより、あるイベントハンドラが前のイベントハンドラからのイベントのストリームをリスン処理（またはこれにサブスクライブ処理）し、後続イベントハンドラにイベントのストリームをさらに送る前にイベントをフィルタリングし、および／または、生成することができるようになる。イベントハンドラのリンクのセットアップの可能性は、基本イベントの段階的なリファイン変換をもたらし、ペン入力の適切な処理の生成を容易にする。具体的には、相互作用モジュールの機能を制御するアプリケーションは、有利には、所望のイベントデータを作るために相互作用モジュールを制御するイベントハンドラのリストをセットアップすることができる。アプリケーションは、所望のイベントデータを受け取るために最後のイベントハンドラからのイベントのストリームをリスン処理することができる。代替案では、アプリケーションは、アプリケーションが異なるリファイン変換レベルのデータを受け取るように、リンク内のすべてのイベントハンドラからのイベントデータを受け取るように構成することができる。
【００９７】
相互作用モジュールは、電子ペンの内部で使用されて、ペン制御システムにリアルタイムイベントを供給してもよい。あるいは、外部の受取り装置内で使用されて、ペンデータに基づいてリアルタイムでユーザにフィードバックを与えるように設計された対話アプリケーションに、リアルタイムイベントを供給してもよい。そのようなアプリケーションは、製品表面上のペンの操作に基づいて、電子ペンのユーザにフィードバック（本質的には瞬間的なフィードバック、触覚的なフィードバック、視覚的なフィードバック、聴覚的なフィードバック、または、視聴覚的なフィードバック）を提供することができる。
【００９８】
相互作用モジュールは、ペンでの変化を記述する制御ユニットによって作成されたペンデータを操作する。これに関連して、相互作用モジュールは、ペンの制御ユニットからペンデータを受け取るように接続される。イベントデータがアプリケーションに正しい形で情報を提示するために、相互作用モジュールは、ペンの制御ユニットによって供給されるペンデータの形に一体化される必要がある。したがって、相互作用モジュールは、位置データを受け取るアプリケーションで使用される座標系において位置データが供給されることを保証するようにセットアップされる。したがって、要求された場合には、相互作用モジュールは、位置データを所望の座標系に変換することができる。相互作用モジュールによって受け取られる位置データは、グローバル座標系１２で表されることができ、ページアドレスおよびページアドレスによって特定されるパターンページ１４のローカル位置（ローカル座標系１４’の位置）に、または、その逆に変換される。
【００９９】
また、相互作用モジュールによって作成される各基本イベントは、ペンＩＤおよびタイムスタンプと共に供給される。相互作用モジュールがペン内に一体化されるときに、ペンＩＤは、通常、メモリ部４１２の永続ストレージメモリから取り出されてよく、相互作用モジュールによって作成される基本イベントに含められる。相互作用モジュールが外部の受取りデバイス内に配置される場合に、ペンは、外部の受取りデバイスに送られるペンデータのストリームにペンＩＤを含めるように構成される。ペンの制御ユニットは、クロックによってタイムスタンプを提供することができる。しかしながら、相互作用モジュールは、相対タイムスタンプを絶対タイムスタンプに変換する必要がある場合がある。
【０１００】
相互作用モジュールは、ペン制御システムへの相互作用モジュールの一体化を処理する特定のＡＰＩ（すなわち、ＰｅｎＥｖｅｎｔＡＰＩ（ペンイベントＡＰＩ））を提供する。このペンイベントＡＰＩは、ソフトウェア開発者／展開者がイベントに含まれるペンＩＤおよびタイムスタンプを提供できるようにする機能を含む。さらに、ソフトウェア開発者／展開者は、位置データのフォーマットに対応するペンイベントＡＰＩ内の適切な機能を使用することができる。このようにして、相互作用モジュールは、グローバル座標系１２で表された位置データをページアドレスおよびページアドレスによって特定されるパターンページ１４のローカル位置に変換するようにセットアップすることができる。
【０１０１】
（５．１．ペンデータの処理のセットアップ）
以下、システム開発者／展開者がペンデータの処理をセットアップするのに相互作用モジュールをどのように使用できるかを、さらに詳細に説明する。相互作用モジュールは、システム開発者／展開者によって開発されるアプリケーションンによって制御されてよく、アプリケーションが開始された時に相互作用モジュールがセットアップされるようにすることができる。
【０１０２】
相互作用モジュールは、ＢａｓｉｃＥｖｅｎｔＧｅｎｅｒａｔｏｒ（基本イベントジェネレータ）と呼ばれる基本的なイベントハンドラを含む。基本イベントジェネレータは、相互作用モジュールのペン制御システムへの一体化によって指定された形でペンデータを受け取る。基本イベントジェネレータは、ペンデータの基本イベントを、すべてのアプリケーションに、または、基本イベントジェネレータをリスン処理するイベントハンドラに見せる。これらのイベントは、ＰｅｎＣｏｎｎｅｃｔｅｄ（ペンがリモート装置に接続されていることを示し、接続されたペンのペンＩＤを与える）、ＰｅｎＤｉｓｃｏｎｎｅｃｔｅｄ（ペンの接続が切断されたことを示す）、Ｅｒｒｏｒ（データのストリーム内のデータエラーを示す）、ＰｅｎＵｐ（ペンが製品表面から持ち上げられたことを示す）、Ｃｏｏｒｄ（位置データの１つのアイテムを含む）、ＮｅｗＰａｇｅＡｄｄｒｅｓｓ（位置データが新しいパターンページから受け取られたことを示す）、および、ＮｏＣｏｄｅ（パターンを検出できないことを示す）を含む。
【０１０３】
相互作用モジュールは、基本イベントジェネレータによって提供される基本イベントをさらにどのように扱うべきかをセットアップするＡＰＩ（すなわち、ＥｖｅｎｔＬｉｎｋＡＰＩ（イベントリンクＡＰＩ））を含む。イベントリンクＡＰＩを使用して、アプリケーションは、基本イベントジェネレータからのイベントのストリームにサブスクライブ処理するさらなるイベントハンドラをセットアップすることができる。これらのイベントハンドラは、アプリケーションに関連するイベントだけを保持するために基本イベントをフィルタリングすることができる。イベントハンドラは、より特定のイベントをも生成することができる。イベントハンドラを、第１のイベントハンドラが基本イベントジェネレータからイベントのストリームを受け取り、第２のイベントハンドラが第１のイベントハンドラからイベントを受け取り、第３のイベントハンドラが第２のイベントハンドラからイベントを受け取り、以下同様になるように、リンク内で順次順序付けることができる。これは、イベントのストリームを、ペン入力に関して必要な情報を抽出するために段階的にリファイン変換できることを意味する。また、イベントハンドラがリンクされるので、イベントのストリームの処理のセットアップが、容易にされる。最後に、アプリケーションを、最後のイベントハンドラからイベントを受け取るようにセットすることができる。したがって、図１１に示されている構造を、ペンデータのリファイン変換を提供し、アプリケーションに関連情報を提供するためにセットアップすることができる。矢印は、この構造を通って推移するイベントのストリームの方向を示す。
【０１０４】
しかし、イベントハンドラｓを、線形シーケンスではなく、より複雑な形で互いに接続できることに留意されたい。例えば、第１のイベントハンドラを、リンク内の第３のイベントハンドラからのイベントにサブスクライブ処理するように構成することができ、これによって、イベントのストリームを、イベントハンドラのリンク内でフィードバックすることができる。これは、ペンデータのリファイン変換に関するフィードバックループをもたらすことができる。さらに、イベントハンドラのリンクは、２つの異なるイベントハンドラが同一イベントハンドラからのイベントをリスン処理でき、そのイベントデータを異なる形で処理できるように、分岐を含むことができる。各分岐の１つまたは複数のイベントハンドラを介する処理の後に、より後のイベントハンドラが、両方の分岐からのイベントデータを受け取ることができる。したがって、イベントハンドラの使用は、相互作用モジュールのアルゴリズムのセットの複雑なリンクを介するペンデータの段階的リファイン変換を可能にする。
【０１０５】
相互作用モジュールは、別のＡＰＩ（すなわち、ＩｎｔｅｒａｃｔｉｏｎＥｖｅｎｔｓＡＰＩ（相互作用イベントＡＰＩ））を含む。相互作用イベントＡＰＩを使用して、アプリケーションは、イベントハンドラによって作られるイベントからの情報にアクセスしてもよく、これにより、アプリケーションがイベントのストリームからの必要な情報を使用できるようになる。
【０１０６】
（５．２．実施例：アクティブエリア内の位置の処理）
以下、アクティブエリアに入るストロークの描画に応答してどのようにセットアップすべきかの例をあげて、相互作用モジュールをさらに説明する。
【０１０７】
相互作用モジュールは、特定のイベントハンドラを作成するイベントリンクＡＰＩ内の複数の異なる機能を提供する。情報は、イベントハンドラにロードされてもよく、これにより、イベントハンドラがイベントのストリームを受け取る時に情報を使用できるようになる。このようにして、イベントハンドラは、イベントのストリームをロードされた情報と比較することによって、新しいイベントを作成することができる。
【０１０８】
具体的には、イベントハンドラは、アクティブエリア内での位置データの記録に対応するイベントを生成するようにセットアップしてもよい。そのようなイベントハンドラを、以下ではＡｒｅａＥｖｅｎｔＧｅｎｅｒａｔｏｒ（エリアイベントジェネレータ）と呼ぶ。まず、電子文書、好ましくはＡＦＤファイルが、エリアイベントジェネレータがそれにアクセスできるようにロードされる。ＡＦＤファイルは、複数のストレージセクションに構造化されるので、エリアイベントジェネレータは、ＡＦＤファイルのうちで関連する情報を保持する特定の部分にアクセスすることが可能である。具体的には、エリアイベントジェネレータは、ＡＦＤファイルからエリアコレクションにアクセスすることができる。このエリアコレクションは、記録された位置がアクティブエリア内であるかどうかを決定するために使用することができる。これは、イベントリンクＡＰＩを使用してアプリケーションによってセットアップされてもよい。
【０１０９】
エリアイベントジェネレータは、基本イベントジェネレータからのイベントのストリームにサブスクライブ処理するようにセットアップすることができる。基本イベントジェネレータは、これによって、とりわけ、ＮｅｗＰａｇｅＡｄｄｒｅｓｓイベントおよびＣｏｏｒｄイベントをエリアイベントジェネレータに供給する。エリアイベントジェネレータは、ＮｅｗＰａｇｅＡｄｄｒｅｓｓイベントを受け取った時に、新しいページアドレスがロードされたＡＦＤに属するかどうかを判定する。これに関連して、新しいページアドレスは、ＡＦＤファイルの「．ｐａｔｔｅｒｎ」ファイルと比較されて、新しいページアドレスがＡＦＤファイルのパターンの一部であるかどうかが判定される。一部であった場合には、新しいページアドレスに対応するページインスタンスが求められる。このようにして、エリアイベントジェネレータは、関連するページインスタンスのエリアコレクションを提供する「．ａｒｅａｓ」ファイルをロードする。エリアイベントジェネレータは、そのページインスタンスの「ｐａｇｅ＃」および「ｃｏｐｙ＃」を提供するＰａｇｅＥｎｔｅｒイベントを生成することもできる。
【０１１０】
エリアコレクションがロードされた時に、エリアイベントジェネレータは、各Ｃｏｏｒｄイベントのローカル座標をロードされたエリアコレクションと比較して、記録された位置がアクティブエリア内であるかどうかを判定する。その位置がアクティブエリア内であることをエリアイベントジェネレータが見い出した場合、エリアイベントジェネレータは、イベントデータ内でエリアＩＤを提供するＡｒｅａＥｎｔｅｒイベントを生成する。現在のエリアＩＤのアクティブエリアの外部の位置に対応するＣｏｏｒｄイベントが受け取られる時には、エリアイベントジェネレータは、ＡｒｅａＥｘｉｔイベントを生成する。
【０１１１】
以上で示したように、エリアイベントジェネレータは、アクティブエリアに入ったことおよびアクティブエリアから出たことの情報を提供するイベントを生成することができる。エリアイベントジェネレータは、記録された位置を処理し、これらのエリアイベントを特定するために、電子文書を使用する。ＡＦＤファイルのフォーマットのおかげで、エリアイベントジェネレータは、関連するエリアコレクションを簡単に見つけることができ、したがって、ＡｒｅａＥｎｔｅｒイベントとＡｒｅａＥｘｉｔイベントの判定を、効率的に行うことができる。代替案によれば、エリアイベントジェネレータは、エリアコレクションをロードするのではなく、ＡＦＤファイルの関連部分を参照することを利用する。
【０１１２】
エリアイベントジェネレータからのイベントは、そのイベントを処理するアプリケーションに送られてよい。このアプリケーションは、イベント情報（入ったアクティブエリアのエリアＩＤなど）を取り出すために、相互作用イベントＡＰＩの機能を使用してよい。このアプリケーションは、アクティブエリアに関連する処理命令をトリガしてもよい。アプリケーションは、電子ペンがアクティブエリア内で位置を記録したことに応答して、ＡＦＤファイルの対応するプロパティコレクションにアクセスして、実行すべきアクションを見つけてもよい。代替案では、アプリケーションは、アクティブエリアに入ったことが検出された時に、実行すべき特定の処理命令を提供してもよい。
【０１１３】
相互作用モジュールが電子ペン内に一体化される場合、アプリケーションは、電子ペン内のプロセッサ上で実行されてよい。アプリケーションは、ＡｒｅａＥｎｔｅｒイベントを受け取った時に、例えば、電子ペンをトリガして、ＭＭＩ４２０を介してユーザにフィードバックを提供してよい。例えば、インジケータランプが点灯されてもよく、メッセージが表示されてもよく、あるいは、バイブレータが起動されてもよい。相互作用モジュールが、ペンデータを受け取る装置で実行される場合、ＡｒｅａＥｎｔｅｒイベントは、例えば、ＡＦＤファイルに格納される受け取られたストロークをトリガしてもよく、あるいは、装置によって出力されるべきフィードバック（ビデオファイルもしくはオーディオファイルの再生または写真の表示など）をトリガしてもよい。
【０１１４】
相互作用モジュールは、エリアイベントジェネレータについての上記説明と同様の方法で、イベントのストリームへ他のイベントを生成するように構成されてもよい。したがって、他のイベントハンドラは、例えば、完了したペンストロークを示すイベントを生成するようにセットアップされてもよい。
【０１１５】
以上、本発明を、主に少数の実施形態を参照して説明した。しかし、当業者であれば容易に理解できるように、以上に開示されたもの以外の実施形態が、本発明の趣旨および範囲の中で同等に可能であり、本発明の趣旨および範囲は、添付の特許請求の範囲のみによって定義され、限定される。
【０１１６】
例えば、ペンデータがペンＩＤを含むので、ペン入力を受け取る装置内に配置された相互作用モジュールは、複数のペンからの入力を同時に処理することができる。したがって、複数の電子ペンは、同一の装置に接続されてもよく、異なるペンからのペンデータが何気なく混ぜられることがないように、ペンデータをアプリケーションに送ることができる。
【０１１７】
ＡＦＤファイルフォーマットの電子ファイルを使用することが必要ではないことを理解されたい。相互作用モジュールは、必ずしも、異なる情報を別々に格納するファイルを必要としない。電子ファイルのすべての情報は、１つの共通のファイル内で提供されてよい。あるいは、その代わりに、相互作用モジュールにロードされる電子ファイルが、単に、文書ページ内のエリアのレイアウトの情報を提供してもよい。例えば、人間が理解できるグラフィックスを含む必要はない。さらに、エリアのレイアウトは、位置コード化パターンのグローバル位置で定義されてもよい。
【０１１８】
さらに、位置情報は、光学的に読取り可能な位置コード化パターンとして提供される必要はない。したがって、電子ペンは、多くの異なる方法で、位置情報を記録するように構成されてよい。例えば、電気的または化学的な位置コード化パターンを検出するように構成されてもよく、あるいは、ペンの位置を三角測量によって測定できるように複数の送信器からの信号（例えば、超音波信号）を検出するように構成されてもよい。
【０１１９】
さらに、ペンデータは、おそらくは異なる装置で動作する相互作用モジュールの複数のインスタンスによって複数のステップでリファイン変換することを企図するものでもよい。例えば、第１の装置が、電子ペンからペンデータを受け取るように構成されてよい。第１の装置で動作する第１のアプリケーションは、ＡｒｅａＥｖｅｎｔデータを作成するように第１の相互作用モジュールをセットアップする。第１のアプリケーションは、イベントデータを第２の装置に送る。第２の装置で動作する第２のアプリケーションは、第１の装置から受け取られたＡｒｅａＥｖｅｎｔデータをリファイン変換するように第２の相互作用モジュールをセットアップする。このようにして、第２のアプリケーションは、入った特定のエリアに関係するイベント（例えば、ログインエリアに入ったことに対応するログインイベントなど）のような、より処理されたＡｒｅａＥｖｅｎｔ情報を受け取ることができる。第１の装置でのペンデータの処理は、第１の装置と第２の装置との間で送られるデータの量が最小化されることを保証する。さらに、第１の装置は、例えばＰＤＡなどの単純な装置であってよい。その結果、ペンデータの処理の大部分は、より高い処理能力を有する第２の装置で実行されることが望ましいことがある。
【０１２０】
さらに、レイアウトマッピングは、単一のパターンページに関連する文書ページに制限される必要はない。文書ページは、位置コード化パターンの異なるエリアからの位置コード化パターンの部分に関連付けられてよい。相互作用モジュールは、ロードされた電子ファイルを介して、記録された位置に対応する文書ページ上の位置を求めることができる。このようにして、相互作用モジュールは、ストロークが位置コード化パターンの非常に異なるエリアから記録された位置の並びを含む場合であっても、ストロークを再構成することができる。また、アクティブエリア内に位置が入っていることは、アクティブエリアのレイアウトをそれぞれの文書ページ内のストロークの位置（求められた位置）と比較することによって検出することができる。
【図１Ａ】
2010533337.tif 000003
【図１Ｂ】
2010533337.tif 000004
【図２Ａ】
2010533337.tif 000005
【図２Ｂ】
2010533337.tif 000006
【図３】
2010533337.tif 000007
【図４】
2010533337.tif 000008
【図５】
2010533337.tif 000009
【図６】
2010533337.tif 000010
【図７】
2010533337.tif 000011
【図８】
2010533337.tif 000012
【図９】
2010533337.tif 000013
【図１０】
2010533337.tif 000014
【図１１】
2010533337.tif 000015
【国際調査報告】
2010533337.tif 000016
2010533337.tif 000017
2010533337.tif 000018
2010533337.tif 000019