(57)【特許請求の範囲】
【請求項１】
ディスプレイに表示された情報に電子インクを追加する、コンピュータにより実行される方法であって、
前記コンピュータが、前記電子インクを、該電子インクの形状と、前記ディスプレイの画面に表示された情報における該電子インクが位置する幾何学的領域とに基づいて分類するステップであって、前記形状が、前記電子インクの他の電子インクに対する距離、または前記電子インクの高さの幅に対する比率を含む、ステップと、
前記コンピュータが、分類した前記電子インクを、前記表示された情報に含まれた少なくとも１つのオブジェクトに関連付けるステップであって、前記表示された情報に含まれたどのオブジェクトに前記分類した電子インクが近接するかを、分類した前記電子インクの種類に基づいて判定することにより、前記少なくとも１つのオブジェクトが特定される、ステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、前記表示された情報はファイルに含まれ、前記少なくとも１つのオブジェクトは、前記ファイルにおけるファイル位置を有し、前記関連付けるステップは、
前記コンピュータが、前記電子インクを表す情報にリンクを追加することによって、前記電子インクを前記少なくとも１つのオブジェクトに係留するステップを含み、前記リンクは、前記電子インクが関連付けられた前記少なくとも１つのオブジェクトの前記ファイル位置を示すことを特徴とする方法。
【請求項３】
請求項１記載の方法において、前記表示された情報はファイルに含まれ、前記少なくとも１つオブジェクトは前記ファイルにおけるファイル位置を有し、前記関連付けるステップは、
前記コンピュータが、前記電子インクが関連付けられた前記少なくとも１つのオブジェクトの前記ファイル位置を前記ファイルに含めることによって、前記電子インクを前記少なくとも１つのオブジェクトに係留するステップを含むことを特徴とする方法。
【請求項４】
請求項１記載の方法において、前記表示された情報が、ラインに配列された部分を含み、前記分類するステップは、前記電子インクを、前記ラインに含まれたインラインの単語として分類することを特徴とする方法。
【請求項５】
請求項１記載の方法において、前記分類するステップは、前記電子インクを、テキストのマークとして分類することを特徴とする方法。
【請求項６】
請求項１記載の方法において、前記表示された情報が、ラインに配列された部分を含み、前記分類するステップは、前記電子インクを、前記ラインに含まれたインラインのパラグラフおよびスケッチとして分類することを特徴とする方法。
【請求項７】
請求項１記載の方法において、前記分類するステップは、前記電子インクを、余白の書き込みとして分類することを特徴とする方法。
【請求項８】
請求項１記載の方法において、前記分類するステップは、前記電子インクを、接続部として分類することを特徴とする方法。
【請求項９】
コンピュータ実行可能命令を記憶したコンピュータ読み取り可能記憶媒体であって、前記コンピュータ実行可能命令は、コンピュータにより実行されると、該コンピュータに、ディスプレイに表示された情報に電子インクを追加する方法を実行させ、該方法が、
前記電子インクを、該電子インクの形状と、前記ディスプレイの画面に表示された情報における該電子インクが位置する幾何学的領域とに基づいて分類するステップであって、前記形状が、前記電子インクの他の電子インクに対する距離、または前記電子インクの高さの幅に対する比率を含む、ステップと、
分類した前記電子インクを、前記表示された情報に含まれた少なくとも１つのオブジェクトに関連付けるステップであって、前記表示された情報に含まれたどのオブジェクトに前記分類した電子インクが近接するかを、分類した前記電子インクの種類に基づいて判定することにより、前記少なくとも１つのオブジェクトが特定される、ステップと、
を含む、コンピュータ読み取り可能記憶媒体。
【請求項１０】
請求項９記載のコンピュータ読み取り可能記憶媒体において、前記表示された情報はファイルに含まれ、前記少なくとも１つのオブジェクトは、前記ファイルにおけるファイル位置を有し、前記関連付けるステップは、
前記電子インクを表す情報にリンクを追加することによって、前記電子インクを前記少なくとも１つのオブジェクトに係留するステップを含み、前記リンクは、前記電子インクが関連付けられた前記少なくとも１つのオブジェクトの前記ファイル位置を示すことを特徴とするコンピュータ読み取り可能記憶媒体。
【請求項１１】
請求項９記載のコンピュータ読み取り可能記憶媒体において、前記表示された情報はファイルに含まれ、前記少なくとも１つオブジェクトは前記ファイルにおけるファイル位置を有し、前記関連付けるステップは、
前記電子インクが関連付けられた前記少なくとも１つのオブジェクトの前記ファイル位置を前記ファイルに含めることによって、前記電子インクを前記少なくとも１つのオブジェクトに係留するステップを含むことを特徴とするコンピュータ読み取り可能記憶媒体。
【請求項１２】
請求項９記載のコンピュータ読み取り可能記憶媒体において、前記表示された情報が、ラインに配列された部分を含み、前記分類するステップは、前記電子インクを、前記ラインに含まれたインラインの単語として分類することを特徴とするコンピュータ読み取り可能記憶媒体。
【請求項１３】
請求項９記載のコンピュータ読み取り可能記憶媒体において、前記分類するステップは、前記電子インクを、テキストのマークとして分類することを特徴とするコンピュータ読み取り可能記憶媒体。
【請求項１４】
請求項９記載のコンピュータ読み取り可能記憶媒体において、前記表示された情報が、ラインに配列された部分を含み、前記分類するステップは、前記電子インクを、前記ラインに含まれたインラインのパラグラフおよびスケッチとして分類することを特徴とするコンピュータ読み取り可能記憶媒体。
【請求項１５】
請求項９記載のコンピュータ読み取り可能記憶媒体において、前記分類するステップは、前記電子インクを、余白の書き込みとして分類することを特徴とするコンピュータ読み取り可能記憶媒体。
【請求項１６】
請求項９記載のコンピュータ読み取り可能記憶媒体において、前記分類するステップは、前記電子インクを、接続部として分類することを特徴とするコンピュータ読み取り可能記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的に、文書の電子表示に関する。更に特定すれば、本開示は、電子的に表示した文書におけるインクの配置および使用、ならびに注釈（ａｎｎｏｔａｔｉｏｎ）に関する。
【０００２】
【従来の技術】
本願は、２０００年６月２１日に出願された、”Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｃｌａｓｓｉｆｙｉｎｇ，Ａｎｃｈｏｒｉｎｇ，ａｎｄ  Ｔｒａｎｓｆｏｒｍｉｎｇ  Ｉｎｋ  Ａｎｎｏｔａｔｉｏｎｓ”（インク注釈分類、係留、および変換方法）と題する米国特許出願第６０／２１２，８２５号、および１９９９年１２月７日に出願された、”Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｃａｐｔｕｒｉｎｇ  ａｎｄ  Ｒｅｎｄｅｒｉｎｇ  Ｔｅｘｔ  Ａｎｎｏｔａｔｉｏｎｓ  Ｆｏｒ  Ｎｏｎ−Ｍｏｄｉｆｉａｂｌｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｅｎｔ”（変更不可能な電子コンテンツに対する注釈の取り込みおよびレンダリング方法および装置）と題する米国特許出願第０９／４５５，８０６号に関連がある。
【０００３】
今日、コンピュータおよびコンピュータ・ソフトウエアの開発は、多くの要因によって推し進められる。これらの要因の１つは、事実上いつでもどこでも情報にアクセスできるようにしたいという要望である。ノートブック型コンピュータ、パーソナル・ディジタル・アシスタント（ＰＤＡ）、およびその他のパーソナル電子デバイスの普及は、ユーザが、いつでも欲しいときにはどこでも情報にアクセスできるようにしたいという事実を反映している。情報アクセス可能性向上を容易にするために、情報の提示はできるだけなじみやすくしかも快適に行なわなければならない。
【０００４】
この場合、情報の電子提示の成功を促進する１つの方法は、ユーザに、なじみのあるやり方で情報を操作させることであろう。言い換えると、電子的に提示した情報の使用および操作は、その使用への導入として、ユーザに最もなじみのある枠組み、例えば、印刷文書を模擬するとよい。その結果、ユーザと彼らの「機械」との間の親近感が増すことによって、アクセス可能性が向上する。これは、機械が、ユーザの期待を超える能力を有し、より多くの内容を与える場合であっても当てはまる。一旦ユーザが新たな電子提示に対して満足感を得たなら、使用可能な機能性の全スペクトル（ｓｐｅｃｔｒｕｍ）を利用する可能性が更に高まることになる。
【０００５】
親近感を増す方法の１つは、情報を電子ブック・フォーマットで提示し、印刷した本に非常に似通ったやり方でコンピュータが情報を表示することである。印刷した文書を模擬する際、その完全性を高めるには、ユーザは、紙の書籍の余白に書き込むのと同様に、これらに文字の書き込み（ｔｅｘｔｕａｌ  ｎｏｔｅ）を記入できるようにする必要がある。また、ユーザは、選択した部分を強調したいという要望もある。何故なら、これらは、ユーザが電子書籍において見ることを期待する、実際の読み取り動作であるからである。ユーザは、図、矢印、下線、抹消（ｓｔｒｉｋｅ  ｔｈｒｏｕｇｈ）等を、紙の書籍における書き込みと同様に、付け加えたいという要望もある。最後に、ユーザは、ブックマークを付け加えたいという要望がある。
【０００６】
【発明が解決しようとする課題】
先に特定した、いわゆる「実際の読み出し」動作は可能である。テキストを表示するＧＵＩを有するコンピュータ・アプリケーションの場合、そのいずれでも、表示されたテキストはユーザにとって重要な意味があると想定することができる。主要なテキストにインク・マークを加えるプロセスが主要テキストの提示に悪影響を及ぼす場合、ユーザは電子情報にインクで注釈を付けることを頻繁に行なう可能性は低く、更に適正にインクで注釈を付けられる可能性は低い。その結果、紙の書籍よりも一段階進んだ電子ブック（即ち、ｅ−ブック）の見やすさ（ｐｅｒｃｅｐｔｉｏｎ）が損なわれる。ｅ−ブックのインク注釈機能を向上させ、紙の書籍における同様の動作に匹敵するまたはこれを凌駕する機構が求められている。
【０００７】
テキスト上での手書き、走り書き、および印付けは、文書上で短い図式コメントを捕えるために人間が有する最も高度に発達した技能である。コンピュータは、これらの動作に対応することができなければ、紙の扱いやすさに匹敵すると言うことはできない。手書きは、有用であるためには、コンピュータによって認識される必要はない。しかし、表示した文書ページ上に手書きすることを望めばいつでも適用可能でなければならない。書き込みは、文書の邪魔になることなく、しかも文書のレイアウトに全く変更を加えることなく、見ることができて当然である。文書に注釈を付ける公知の方法は、これらの目標を達成することができない。更に、常に注釈を単独エレメント（例えば、所与のページ）に関連付けると、文書のテキストをリフロー（ｒｅ−ｆｌｏｗ）する際に、レンダリングに問題が生ずる虞れがある。これらの問題は、注釈の元の主題とは異なる注釈をページにレンダリングすることを含む。
【０００８】
【課題を解決するための手段】
本発明は、電子的に表示した文書に電子インクを追加する技法を提供する。本発明においては、「文書」とは、書籍、説明書、参考書、絵本等を含み、しかもこれらに限定されない、電子的に表示可能な情報のあらゆある形態を包含することとする。電子インク（単に「インク」とも呼ぶ）は、図、書き込みテキスト（即ち、注釈）、および強調を含む。注釈を入れるには、ユーザは文書内のオブジェクトを選択し、注釈を置く場所を特定する。コンピュータ・システムは、どのオブジェクトが選択されたのか判断し、インク即ち注釈を係留する。ユーザは、注釈を加え、最終的に文書の読み取りに戻る。注釈は、ユーザの入力によって、フィルタ、ナビゲート、ソート、およびインデックス化することができる。注釈は、テキスト注釈、図、強調、ブックマーク等を含み、実際の読み取りの分野全域に関連する。一実施形態では、本システムは、文書の内容を変更し、アンカー（ａｎｃｈｏｒ）を文書に追加する。別の実施形態では、本システムは、選択したオブジェクトに関連するファイル位置、およびそのファイル位置に対するアンカーを判定する。
【０００９】
本発明では、表示「オブジェクト」は、テキスト、グラフィック、式、および表示文書に含まれるその他の関連エレメントを含むことができる。注釈は、強調、文字の書き込みの追加、図の追加（紙の書籍に対して鉛筆やペンで行なうとすることと同様）、およびブックマークの追加を含むことができる。
【００１０】
文書は、変更可能および変更不可能として分類することができる。変更可能文書に関して、システムは、文書を変更し、インクまたは注釈を含ませるか、少なくともインクまたは注釈に係留するオブジェクトのロケーションにインクを追加する。変更不可能な文書に関しては、システムは、変更不可能な文書におけるファイル位置に電子インクをリンクさせる。本発明は、例えば、単語（またはその他の表示エレメント）の最初のキャラクタのファイル位置を計算し、別個のリンク・ローカル・ファイルに、ファイル位置を注釈と共に記憶する。更に別の実施形態では、インクのファイル位置への係留は、変更可能文書においても同様に用いることができ、あるいは、変更不可能な文書がファイルの変更不可能部分を表す場合にも用いることができ、注釈はファイルの書き込み可能部分に追加される。
【００１１】
本発明の別の実施形態は、画面解像度や画面サイズの変更にも拘らず、インク注釈をスケーリングし、正しく見えるようにレンダリングすることに関する。インク注釈を取り込み、データ点として記憶する。一般に、注釈は、取り込んだ通りに表示される。これは、元のデータ点を用いてインク注釈をレンダリングすることを意味する。問題は、画面解像度が変化する可能性があり、あるいは画面サイズが変化する可能性があるため、その後に見ると、生成した注釈が大き過ぎたりまたは小さ過ぎてしまう場合があるという点にある。
【００１２】
ここで、本発明は、注釈を取り込んだシステムに関する情報と共に、注釈を記憶する。この情報は、画面サイズおよび画面解像度を含む。画面サイズまたは画面解像度が、表示装置上で、記憶されている情報とは異なる場合、本発明は、注釈を定義するデータ点をスケーリングし、新たな画面サイズまたは解像度に合わせる。
【００１３】
更に、点、オブジェクト、オブジェクトの範囲、または幾何学的領域に注釈を係留する方法は公知である。しかし、インク・ストロークは、その形状がそれ自体のグラフィック的な意味を有するため、そしてその形状および位置が多数の関連を形成することができるため、注釈の中で一意である。しかしながら、これらの係留方法は、十分な関連を維持しておらず、これらのストロークが、注釈を付けられたエレメント間の変更の後も残れるようにするために、これらの関連をインク・ストロークの形状と共に解釈するロジックも備えていなかった。
【００１４】
適切な関連を識別するために、本システムおよび方法は、最初に、形状を分類し、次いでこの分類を用いて、関連付けられる多数のエレメントを識別する際に役立てる。多数の独立したアンカーは、注釈を付けられた１つ以上のオブジェクトおよび／またはエリア、ならびに関連付けるのに十分近いその他のあらゆる注釈を含むことができる。最後に、本システムおよび方法は、これらその他のエレメントのいずれかが移動または変化したときに、複雑な方法で形状を変換するロジックを用いる。
【００１５】
本発明のこれらおよびその他の新規な利点、詳細、実施形態、特徴および目的は、以下の本発明の詳細な説明、本発明を説明する際に役立つ、ここにリストにした添付の特許請求の範囲および添付図面から、当業者には明白であろう。
【００１６】
【発明の実施の形態】
本発明は、注釈を取り込み、変更不可能な文書に関連付けるシステムおよび方法に関する。
【００１７】
必ずしも必須という訳ではないが、本発明の説明は、少なくとも部分的には、プログラム・モジュールのような、パーソナル・コンピュータが実行する一般的なコンピュータ実行可能命令に関連して行なう。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、スクリプト、コンポーネント、データ構造等を含み、特定のタスクを実行したり、あるいは特定の抽象的データ・タイプを実装する。更に、本発明は、別のコンピュータ・システム構成でも実施可能であることを当業者は認めよう。別のコンピュータ・システム構成は、限定する訳ではないが、分散型計算機環境を含み、この場合、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクを実行する。分散型計算機環境では、プログラム・モジュールは、ローカルおよびリモート・メモリ記憶装置双方に位置することができる。また、本発明は、パーソナル・コンピュータ（ＰＣ）、ハンド・ヘルド・デバイス、マルチプロセッサ・システム、マイクロプロセッサ系電子機器またはプログラマブル消費者電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ等においても実施可能である。
【００１８】
図１は、本発明を実現可能な計算機環境の概略図である。本発明は、従来のパーソナル・コンピュータ２００の形態の汎用計算機内において実現することができる。このパーソナル・コンピュータ２００は、演算装置２１０、システム・メモリ２２０、およびシステム・メモリから演算ユニット２１０までを含む種々のシステム・コンポーネントを結合するシステム・バス２３０を含む。システム・バス２３０は、数種類のバス構造のいずれでもよく、メモリ・バスまたはメモリ・コントローラ、周辺バス、および種々のバス構造のいずれかを用いてローカル・バスが含まれる。システム・メモリは、リード・オンリ・メモリ（ＲＯＭ）２４０およびランダム・アクセス・メモリ（ＲＡＭ）２５０を含む。
【００１９】
基本入出力システム２６０（ＢＩＯＳ）は、起動中のように、パーソナル・コンピュータ２００内のエレメント間におけるデータ転送を補助する基本的なルーティンを含み、ＲＡＭ２４０内に記憶されている。更に、パーソナル・コンピュータ２００は、図示しないハード・ディスクの読み書きを行なうハード・ディスク・ドライブ２７０、リムーバブル磁気ディスク２９０の読み書きを行なう磁気ディスク・ドライブ２８０、ＣＤ  ＲＯＭまたはその他の光媒体のようなリムーバブル光ディスク２９２の読み書きを行なう光ディスク・ドライブ２９１のような種々の周辺ハードウエア・デバイスも含む。ハード・ディスク・ドライブ２７０、磁気ディスク・ドライブ２８０、および光ディスク・ドライブ２９１は、それぞれ、ハード・ディスク・ドライブ・インターフェース２９２、磁気ディスク・ドライブ・インターフェース２９３、および光ドライブ・インターフェース２９４を介して、システム・バス２３０に接続されている。ドライブおよびそれに関連するコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラム・モジュールおよびパーソナル・コンピュータ２００のその他のデータの不揮発性記憶を行なう。
【００２０】
ここに記載する環境の一例は、ハード・ディスク、リムーバブル磁気ディスク２９０およびリムーバブル光ディスク２９２を採用するが、磁気カセット、フラッシュ・メモリ・カード、ディジタル・ビデオ・ディスク（ＤＶＤ）、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）等のように、コンピュータによるアクセスが可能なデータを記憶することができる、別の形式のコンピュータ読取可能媒体も、動作環境例では使用可能であることは、当業者には認められよう。
【００２１】
ハード・ディスク、磁気ディスク２９０、光ディスク２９２、ＲＯＭ２４０またはＲＡＭ２５０上には、多数のプログラム・モジュールを記憶可能であり、オペレーティング・システム２９５、１つ以上のアプリケーション・プログラム２９６、その他のプログラム・モジュール２９７、およびプログラム・データ２９８を含む。ユーザは、キーボード２０１およびポインティング・デバイス２０２のような入力デバイスによって、コマンドおよび情報をパーソナル・コンピュータ２００に入力することができる。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バスに結合するシリアル・ポート・インターフェース２０６のような周辺ハードウエア・デバイスを介して、演算装置２１０に接続されるが、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス（ＵＳＢ）のようなその他のインターフェースによって接続することも可能である。また、ビデオ・アダプタ２０８のような周辺ハードウエア・インターフェース・デバイスを介して、モニタ２０７またはその他の種類のディスプレイ装置もシステム・バス２３０に接続してある。モニタに加えて、パーソナル・コンピュータは、典型的に、スピーカおよびプリンタのような、その他の周辺出力デバイス（図示せず）を含む。
【００２２】
パーソナル・コンピュータ２００は、リモート・コンピュータ２０９のような１つ以上のリモート・コンピュータへの論理接続を用いれば、ネットワーク環境においても動作可能である。リモート・コンピュータ２０９は、別のパーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、典型的に、パーソナル・コンピュータ２００に関して先に述べたエレメントの多くまたは全てを含むが、図１にはメモリ記憶装置２１１のみを図示している。図１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）２１２およびワイド・エリア・ネットワーク（ＷＡＮ）２１３を含む。このようなネットワーク環境は、会社全域に及ぶコンピュータ・ネットワーク、イントラネットおよびインターネットでは一般的である。
【００２３】
ＬＡＮネットワーク環境で用いる場合、パーソナル・コンピュータ２００は、ネットワーク・インターフェースまたはアダプタ２１４を介してローカル・ネットワーク２１２に接続する。ＷＡＮネットワーク環境で用いる場合、パーソナル・コンピュータ２００は、典型的に、モデム２１５、またはインターネットのようなワイド・エリア・ネットワーク２１３を通じて通信を確立するその他の手段を含む。モデム２１５は、内蔵でも外付けでもよく、シリアル・ポート・インターフェース２０６を介してシステム・バス２３０に接続する。ネットワーク環境では、パーソナル・コンピュータ２００に関して図示したプログラム・モジュールまたはその一部は、リモートメモリ記憶装置に記憶することができる。
【００２４】
尚、図示のネットワーク接続は一例であり、コンピュータ間に通信リンクを確立する別の手段も使用可能であることは認められよう。ＴＣＰ／ＩＰ、イーサネット、ＦＴＰ、ＨＴＴＰ等のような、種々の周知のプロトコルは、いずれもその存在が想定され、システムは、クライアント−サーバ構成で動作し、ユーザにウェブ系サーバからウェブ・ページを検索させることができる。種々の従来からのウェブ・ブラウザのいずれでも、ウェブ・ページ上でデータを表示し操作するために用いることができる。
【００２５】
一実施形態では、ペン・ディジタイザ１６５および付随するペンまたはスタイラス１６６が設けられ、ディジタル的にフリーハンド入力を取り込む。ペン・ディジタイザ１６５および演算装置２１０間の直接的な接続を示すが、実際には、ペン・ディジタイザ１６５は、シリアル・ポート、パラレル・ポート、またはその他のインターフェースおよびシステム・バス２３０を介して、演算装置２１０に結合されている。これは、当技術分野では公知である。更に、ディジタイザ１６５は、モニタ２０７から離れて示されているが、ディジタイザ１６５の使用可能な入力エリアは、モニタ２０７の表示エリアと同じ範囲であることが好ましい。更にまた、ディジタイザ１６５は、モニタ２０７の中に一体化してもよく、あるいはモニタ２０７に被せるか、その他の方法でこれに取り付ける別個のデバイスとして存在してもよい。
【００２６】
図１に関して説明したシステムに加えて、本発明は、ハンドヘルド・コンピュータ上でも実施可能である。更に、目的構築デバイス（ｐｕｒｐｏｓｅ−ｂｕｉｌｔ  ｄｅｖｉｃｅ）も同様に本発明に対応することができる。端的に言えば、ハンドヘルド・コンピュータおよび目的構築デバイスは、図１のシステムと構造が類似しているが、ディスプレイ（人の指またはスタイラスの接触に感応することができる）、メモリ（ＲＡＭおよびＲＯＭを含む）、ならびにハンドヘルド・コンピュータおよび目的構築デバイスを他のコンピュータまたはネットワーク（インターネットを含む）に接続し、文書のダウンロードおよび／アップロードあるいは注釈のアップロードおよび／またはダウンロードを行なうための同期／モデム・ポートに限定される場合がある。ハンドヘルド・コンピュータおよび目的構築デバイスの説明は、当技術分野では公知であり、簡略化のために省略する。本発明は、Ｃを用いて実施することができる。また、Ｃ＋＋、アセンブリ言語等を含むその他の言語も使用可能であることは認められよう。
【００２７】
図２は、本発明の種々の態様にしたがって使用可能なタブレットＰＣ１６７を示す。図１のシステムにおける特徴、サブシステム、および機能のいずれもまたは全てを、図２のコンピュータに含ませることができる。タブレットＰＣ１６７は、大型表示面１６８、例えば、ディジタル化フラット・パネル・ディスプレイ、好ましくは、液晶表示（ＬＣＤ）システムを含み、その上に複数のウィンドウ１６９を表示する。スタイラス１７０を用いると、ユーザは、ディジタル化表示エリア上で、選択、強調、および書き込みを行なうことができる。適当なディジタル化表示パネルの例には、ＭｕｔｏｈまたはＷａｃｏｍのペン・ディジタイザのような、電磁ペン・ディジタイザが含まれる。他の種類のペン・ディジタイザ、例えば、光学ディジタイザも使用可能である。タブレットＰＣ１６７は、スタイラス１７０を用いて形成したマークを解釈し、データを操作し、テキストを入力し、スプレッドシート、ワード・プロセッシング・システム等のような従来からのコンピュータ・アプリケーション・タスクを実行する。
【００２８】
スタイラスは、ボタンやその他の機構を装備すれば、その選択機能を高めることができる。一実施形態では、スタイラスは、「鉛筆」または「ペン」として実現することができ、その場合、一端は書き込み部分を構成し、他端は「消しゴム」端を構成し、ディスプレイを横切って移動させると、消去する表示部分を示す。別の実施形態では、スタイラスは、一端または両端に書き込み部分のみを有してもよい。加えて、ユーザ自身の指を用いて、接触感応または近接感応ディスプレイ上に表示されていれる画像の部分を選択または指示することも可能である。したがって、「ユーザ入力デバイス」という用語は、ここで用いる場合、広い定義を有し、公知の入力デバイスに対する多くの変形も包含することを意図するものとする。
【００２９】
領域１７１は、フィード・バック領域または接触領域を示し、スタイラスがディジタイザに接触した場所をユーザが判定することができる。別の実施形態では、領域１７１は、本発明のホールド・ステータスに到達した場合、視覚的なフィードバックを与える。
【００３０】
図３は、本発明の実施形態にしたがってコンピュータ画面上に表示された文書を示す。好みによって、文書は、ｅ−ブックの紙による同等物、この場合、小説の外観に酷似した形態で表示する。文書読み取りウィンドウ１０１は、種々の部分から成り、文書の名称を掲示するタイトル・バー１０１、および本体１０２を含む。表示ウィンドウの本体１０２には、文書の種々の部分を表示することができる。図３は、名称１０４、章の番号１０５、章の名称１０６、および章１０７のテキストが表示されている一例を示す。実際の書籍と同様、余白１０８、１０９、１１０、１１１が、表示されているテキストの回りにある。ここで言及する場合、表示されるエレメントは独立して参照することができる。ここで、例えば、オブジェクト１０３「ｗｅ」の回りにボックスを置く図式注釈があり、これはユーザがそこに置いたものである。
【００３１】
電子的に表示可能な情報を記憶するためには、種々の方式が存在する。第１実施形態では、文書内のアンカー・ロケーションにインク即ち注釈を記憶する。あるいは、インクに関連するオブジェクトまたはその付近にアンカー・リンクを挿入し、レイアウト・レンダラが適正に文書および加えられたインク即ち注釈をレンダリングすることができるようにする。更に、システムは、文書内のファイル位置に係留してもよい。種々の記述がファイル位置の使用に、アンカーとして、関係する。尚、文書自体の変更を含むインク即ち注釈を係留し、アンカー位置のロケーションに注釈即ちアンカー・リンクを含ませるために、他の実施形態も使用可能であることは認められよう。
【００３２】
図４Ａおよび図４Ｂならびに関係する図は、インク即ち注釈を係留するためのファイル位置の使用を記述するものである。判定されたファイル位置は、文書が圧縮されていても伸長されていても、変更不可能な文書への直接的なランダム・アクセスのために用いることができる。一実施形態では、ファイル位置は、元のＵｎｉｃｏｄｅ（公知のテキスト記憶フォーマット）から得られるＵＴＦ−８（別の公知のテキスト記憶フォーマット）で指定する。しかしながら、空間を保存するためには、汎用の二進圧縮アルゴリズムを用いて、変更不可能な文書を圧縮し、伸長し、Ｕｎｉｃｏｄｅに変換して視認してもよい。このように、注釈のために記憶されるファイル位置は、種々の記憶方式および圧縮技法にわたって一貫性がある。テキストの記憶に関して、業界標準はＵｎｉｃｏｄｅ  ＵＣＳ−２である。ユニコードＵＣＳ−２は、キャラクタ毎に２バイトを用いてテキストをエンコードする。標準的な英語のアルファベットから外字やシンボルを含む複雑な記号までの文字は全て、２バイトを用いてエンコードする。図４Ａは、４対のバイトで記憶される、４文字単語の図を示す。別の記憶方式にはＵＴＦ−８が含まれ、この場合、単一バイトのみを用いて、標準的な文字（例えば、ＵＳ−ＡＳＣＩＩキャラクタ）をエンコードする。最初のバイトの一部は、図４Ｂに示すように、完全なキャラクタを定義する総バイト数を示すために用いられている。残りのバイトは、単一バイト・キャラクタを定義するために用いられる数値と混同することがない数値に制限される。標準的な文字を用いた大きなテキストでは、ＵＴＦ８−符号化ファイルは、Ｕｎｉｃｏｄｅの半分のサイズにすることができる。しかしながら、外字キャラクタまたは記号が多数ある状況では、記憶されているファイルのサイズが、実際に、多数の３バイト表現の文字または記号のために、Ｕｎｉｃｏｄｅのサイズよりも大きくなる場合もある。他の可変バイト長キャラクタ・エンコーディングも、業界では用いられている。例えば、Ｓｈｉｆｔ−ＪＩＳ規格は、１または２バイトでキャラクタをエンコードする（Ｕｎｉｃｏｄｅが引き出すよりも小さな集合から引き出す）。ＵＴＦ−８とは異なり、２バイト・キャラクタの２番目のバイトは、それ自体が単一バイト・キャラクタを表すために用いることもできる値を収容することができる。
【００３３】
図５は、本発明の実施形態にしたがって、ＵＴＦ８およびＵｎｉｃｏｄｅで文字を記憶するための異なるバイトを示す。図４Ａおよび図４Ｂに関して論じた２つの方式の一例を図５に示す。「ｂａｎａｎａ」という単語は、Ｕｎｉｃｏｄｅで表現するには１２バイトを要するが、ＵＴＦ８では６バイトを用いるに過ぎない。「ｆａｃａｄｅ」（外観）という単語は、Ｕｎｉｃｏｄｅでは１２バイトを要するが、ＵＴＦ８では８バイトである。当技術分野では、他の記憶方式も公知であるが、簡略化のために示さない。ＵＴＦ８およびＵｎｉｃｏｄｅ間の差は、一例として与えたに過ぎず、本発明を記憶方式の使用に限定する意図はない。
【００３４】
記憶モードの差は、注釈のためにファイル位置を固定する際に用いられる技法において関連してくるようになる。一方の記憶方式でファイル位置を決定した場合、そのファイル位置を別の記憶方式に移植すると、注釈のために同じ所望のファイル位置が得られない場合がある。したがって、単一方式の使用に基づいて、全ての注釈をファイル位置に固定するのがよい。好ましくは、文書を表示している間文書を保持するために用いる方式は、ファイル位置を決定するために用いる方式とする。こうすると、文書が閉じているか、または他の方式で圧縮されているかには拘らず、表示方式で再度開くときに、注釈に対するファイル位置は、作成したときと同じまま残っている。Ｕｎｉｃｏｄｅは、文書を表示する際に用いる方式とするとよい。あるいは、ＵＴＦ８も、別のテキスト・エンコーディング方式または圧縮方式として用い、表示のために文書にアクセスするようにしてもよい。
【００３５】
図６は、本発明の実施形態にしたがって、オブジェクトのファイル位置を決定するプロセスを示す。ステップ５０１において、ユーザは画面上でオブジェクトを選択する。ユーザは、マウス、タッチ・パッド、トラックボール、または同様のポインティング・デバイスによって制御されるカーソルを通じて、オブジェクトを選択することができる。あるいは、ユーザは、ディスプレイの表面がスタイラスまたは指による入力に対応する場合、これらを用いることもできる。
【００３６】
ステップ５０２において、システムは、ユーザが選択したオブジェクトを判定する。このステップは、ディスプレイ・デバイスから読み取りウィンドウ内部の座標への物理的座標変換に関係する。この変換から、ユーザが選択したオブジェクトがわかる。
【００３７】
ステップ５０２Ａはオプションである。これは、オブジェクトのアクション・ポスト選択のユーザ選択に関する。オブジェクトの選択後、ユーザにメニューが与えられ、注釈を追加する機能がメニュー上に備えられている場合、ステップ５０２Ａは、注釈機能の追加の選択に関係する。注釈追加の一例は、１９９９年１２月７日に出願された、”Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒＣａｐｔｕｒｉｎｇ  ａｎｄ  Ｒｅｎｄｅｒｉｎｇ  Ｔｅｘｔ  Ａｎｎｏｔａｔｉｏｎｓ  Ｆｏｒ  Ｎｏｎ−Ｍｏｄｉｆｉａｂｌｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｅｎｔ”（変更不可能な電子コンテンツに対するテキスト注釈の取り込みおよびレンダリング方法および装置）と題する米国特許出願第（ＢＷ０３７９７．８４６１８）号に詳細に記載されている。その内容は、この言及により、あらゆる必須の主題についても本願にも含まれるものとする。
【００３８】
ステップ５０３は、選択したオブジェクトのファイル位置の判定に関係する。
ファイル位置は、選択したオブジェクトの最初のバイトを含むことができる。あるいは、ファイル位置は、選択したオブジェクトの最後のキャラクタ（または最後のキャラクタに続くキャラクタの場合もある）の最初のバイトであってもよい。最初のキャラクタの最初のバイトを選択してファイル位置を判定すると、オブジェクトがページをまたぐ場合、次のページではなく、オブジェクトの先頭のページにあらゆる注釈を表示するという利点が得られる。選択したオブジェクト（または選択したオブジェクトの周囲）のいずれのバイトでも、オブジェクトのファイル位置を得るために選択できることは、当業者には認められよう。あるいは、オブジェクト、またはページのパラグラフ即ち一部（例えば、ページの上部、中間部または下部）がある行を選択してもよい。
【００３９】
ファイル位置を決定する際、あるわかっているファイル位置から、例えば、選択したオブジェクトの最初のキャラクタのロケーションまでのバイト数を計数してもよい。わかっているファイル位置は、ファイルの先頭とするとよく、あるいは、例えば、現パラグラフの先頭に対して以前に注目したファイル位置としてもよい。計数ステップは、注釈の生成前でも後でも、実行することができる。あるいは、計数ステップは、ユーザが注釈を作成している間に、背景で実行してもよい。尚、注釈ファイル位置は、常に、テキスト内においてＵＴＦ−８オフセットとして記憶するとよいことを注記しておく。何故なら、これは二進圧縮の前に位置するからである。しかしながら、テキストを表示するために用いるアルゴリズムは、Ｕｎｉｃｏｄｅキャラクタで動作する。したがって、この例では、選択したオブジェクトから、わかっているＵＴＦ−８の位置の文字に戻す必要がある。
【００４０】
元の刊行物（電子書籍、文書等）の二進ファイル・フォーマットは、マークアップ（タグ）をテキストと相互混成するので、（注釈を係留する）選択したオブジェクトのファイル位置を計算する際に、このようなタグによって占められるバイトを差し引く必要がある。しかしながら、これらのタグの内、殆どではないにしても、多くはディスプレイ表面上でキャラクタ位置を占有しない。したがって、ファイルにおける連続範囲（ｕｎｂｒｏｋｅｎ  ｒｕｎ）に対応する、ディスプレイ上のテキストのあらゆる範囲（ｒｕｎ）の開始ファイル位置を追跡することは重要である。テキストの「連続」範囲とは、開始または終了タグによって切断されない、ファイル内のテキストのことである。
【００４１】
したがって、選択したオブジェクトに注釈を係留するファイル位置を精度高く判定する際に伴うステップは、次のように一般化することができる。
１）データ構造を参照し、直前のパラグラフに記載されている「連続」範囲の開始がどの表示キャラクタ位置であるか調べる。
【００４２】
２）同じデータ構造から、先頭の表示キャラクタ位置に関連するファイル位置を取り込む。
３）先頭位置から選択開始位置までに及ぶストリングを判定する。このストリングは、ある数のＵｎｉｃｏｄｅキャラクタを含む。
【００４３】
４）ステップ３から、ＵＴＦ−８エンコードしたストリングを保持するために必要なＵＴＦ−８の数を判定する。
５）ステップ４からのＵＴＦ−８バイトカウントをステップ２からのファイル位置に加算する。
【００４４】
ステップ５０４は、注釈を永続させるファイルの作成に関係する。ステップ５０３の後に示すが、オブジェクトのファイル位置判定の前または最中に実行してもよいことは認められよう。ステップ５０５において、ファイルのヘッダ（またはファイルの一部）にファイル位置を置き、作成した注釈を記憶する。あるいは、ファイル位置を、見ているファイルに添付してもよい。
【００４５】
図７は、本発明の実施形態にしたがってオブジェクトのファイル位置を決定する別のプロセスを示す。ステップ６０１に示すように、ユーザはあるページにナビゲートする。ページ上では、システムは、ステップ６０２に示すように、ページ上の最初のオブジェクトの最初のバイトのファイル位置を判定する。ファイル位置は、新たなページを表示する毎に判定することができる。あるいは、システムは、最初のバイトに対するファイル位置の判定を開始する前に（例えば、２秒）休止し、ファイル位置判定を開始する前に、ユーザが新たなページにナビゲートできるようにしてもよい。この遅延によって、ユーザが素早くページをめくるときに、システムのワークロードを最少化するという利点が得られる。一旦ユーザが所与のページで落ち着いたなら、システムは最初のバイトのファイル位置を判定すればよい。
【００４６】
ステップ６０３において、ページのファイル位置を一時的にメモリに記憶する。
ステップ６０４において、システムは、オブジェクトの選択または別のページへのナビゲートのいずれかを待つ。実行のためにファイル位置を必要としない、他の選択肢も考えられる（例えば、１９９９年１２月７日に出願され、”Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｉｎｓｔａｌｌｉｎｇ  ａｎｄＵｓｉｎｇ  Ｒｅｆｅｒｅｎｃｅ  Ｍａｔｅｒｉａｌｓ  Ｉｎ  Ｃｏｎｊｕｎｃｔｉｏｎ  Ｗｉｔｈ  Ｒｅａｄｉｎｇ  Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｅｎｔ”（電子コンテンツの読み取りに関連して、参照素材をインストールし使用する方法および装置）と題する米国特許出願番号（ＢＷ０３７９７．８４６１９）号に開示されているように、参考文書内で用語を参照する。この言及により、実施を可能にするあらゆる開示についてその内容全体が本願にも含まれるものとする。）。
【００４７】
ステップ６０５において、オブジェクトが選択されたなら、選択されたオブジェクトの相対的な位置を、表示されているページ上の最初のオブジェクトの最初のバイトを参照して決定する。
【００４８】
ステップ６０６において、ステップ６０２で判定したこのページ上の最初のオブジェクトの最初のバイトのファイル位置ををメモリから検索し（ステップ６０３において記憶した）、ステップ６０５で判定した、選択したオブジェクトの最初のバイトの相対的位置に加算し、選択したオブジェクトのファイル位置を判定する。
【００４９】
ステップ６０７において、選択したオブジェクトのファイル位置を、作成した注釈と共に記憶する。ファイル位置の判定に関係するこれらのステップを実行するのは、オブジェクトに対する注釈の前でも後でもよい。あるいは、ファイル位置の判定は、注釈を作成している間に背景で実行してもよい。オブジェクト位置を判定するには、あらゆる数の技法が使用可能であり、これらも本発明の範囲内と見なされることを、当業者は認めよう。
【００５０】
図８は、ページをナビゲートする際に、作成した注釈を表示するプロセスを示す。ステップ７０１において、ユーザはあるページにナビゲートする。
ステップ７０２において、システムは、ページ上の最初のオブジェクトのファイル位置を判定する。
【００５１】
ステップ７０３において、システムは、ページ上の最後のオブジェクトのファイル位置を判定する。
ステップ７０４において、文書に対して記憶されている注釈を探索し、ステップ７０２で判定したファイル位置とステップ７０３で判定したファイル位置との間に、いずれかのファイル位置があるか否か判定を行なう。
【００５２】
ステップ７０５において、ファイル位置を有する注釈が、表示されているページ上での表示のために配されていない場合、システムはユーザの入力（例えば、新たなページへのナビゲート、注釈のためのオブジェクト選択、またはここに記載したその他の行為を含む）を待つ。
【００５３】
ステップ７０６において、ページ上のオブジェクトに関係する注釈を見つけ出す。ページ上のオブジェクトの位置を判定し、オブジェクトに対して注釈を表示する。オブジェクトのロケーションを判定するシステムは、注釈を付けられたオブジェクトのファイル位置から、ページ上の最初のオブジェクトのファイル位置を減算することを含んでもよい。次いで、この差を用いて、ページの最初のキャラクタから注釈を付けられたオブジェクトまでのバイト数を判定する。この時点で、ステップ７０６からステップ７０５に戻ることによって、更に別の注釈を付けることもできる。
【００５４】
あるいは、システムは、文書の先頭から再度計数し始め、どのオブジェクトに注釈を付けたのか判定することもできる。尚、注釈を付けたオブジェクトに対して注釈を表示するには、多数の方法が存在することは当業者には認められよう。
前述の例は、限定を意図する訳ではない。
【００５５】
コンテンツ（いずれかの所与の時点においてユーザが見るテキストの単位）の所与の「ページ」内に存在すると判定された注釈を表示する場合、コンピュータ・システムは、最初にグローバル状態の妥当性を判断する。これは、注釈を本当にレンダリングするのかについて判断する。例えば、ユーザには、図式注釈（および文字の書き込み、ブックマーク、強調等）を示すかまたは隠すかについて全域的に指定する機能が与えられている。オブジェクトの個々の注釈を表示する前に、コンピュータ・システムはこのグローバル設定をチェックし、特定の注釈をレンダリングするか否か判定を行なう。ユーザが特定の形式の注釈を隠すことを選択した場合、注釈のレンダリングを行なわない。
【００５６】
図９Ａおよび図９Ｂは、本発明の実施形態にしたがって注釈を記憶するための種々の記憶技法を示す。図９Ａは、変更可能な部分（８０３〜８０６）および変更不可能な部分（８０２）を有する文書８０１を示す。この種のファイルは、当技術分野では公知のように、インフォテキスト・ファイル・フォーマットを含む。注釈８０６は、ヘッダ８０３および本体８０６を有するファイルに記憶することができる。ヘッダ８０３は、例えば、オブジェクトのファイル位置８０４を含み、これと注釈８０６を関連付ける。また、ファイル部分８０５内における注釈８０６の形式の指示を含むこともできる。先に論じたように、注釈８０６は、オブジェクトを覆う強調、ブックマーク、図や、文字の注釈を含むことができる。
【００５７】
図９Ｂは、注釈ファイルとは離れた別個のファイルとして、変更不可コンテンツ８０９を示す。図９Ｂの注釈ファイル８０７は、図９Ａの注釈８０７と同様の構成エレメントを有する。注釈ファイル８０７は、それがリンクされている変更不可文書（ここでは、８０９）を示すファイル部分８０８を含むことができる。図９Ｂに明記する手法を用いると、１つのファイルは、あるユーザに対する注釈全てを記憶することができ、変更不可コンテンツ部分８０９は別個に記憶される。この手法は、一度に全ての注釈を素早く調べることができ、内部に記憶されている注釈を全て得るために文書８０１全て（変更不可部分８０２を含む）にアクセスしなくてもよいという利点がある。
【００５８】
図１０は、システム内に記憶されている注釈のソート、変更、探索、および名称変更を行なうための表示ウィンドウを示す。ウィンドウ９００は、名称識別部９０１を含み、ユーザに彼または彼女が注釈ペイン（ｐａｎｅ）９００にいることを知らせる。ウィンドウ９００は、２つのペイン９０２、９０３を含むことができる（必要に応じて、他のペインも追加することができる）。ペイン９０２、９０３は、文書毎に注釈９０４のリストを与えることができる。あるいは、これらは、ある人のシステムにおける注釈全てのリストを与えることもできる。ペイン９０２（ここでは、「書き込み」と題する）において、ユーザが形式（強調、図、文字、ブックマーク）によって注釈のリストをソートすることができる。ある注釈を選択すると、その注釈を含む文書の位置にナビゲートすることができる。注釈を選択して保持すると、その注釈を除去したり、その外観を変更したり、隠したりまたは示したり、あるいは注釈の名称を変更することができる。第２ペイン（ここでは、「ビュー」と題する）は、ユーザに、そのプロパティに基づいて注釈をソートさせる。例えば、作成時刻、最終アクセス時刻、形式、ＡＢＣ順、書籍順にソートすることができる。更に、個々の注釈は、ページ上の制御を用いて、オンおよびオフに切り替えることができる。また、全ての注釈をオフに切り替え（または、特定の形式の注釈だけをオフに切り替え）、別の注釈を作成した場合（または、そのクラスの別の注釈）、その形式の注釈全てをオンに再度切り替えることができる。これを拡張して、隠されている場合には、全ての注釈をオンに切り替え、新たな注釈を追加することを含むようにしてもよい。
注釈のスケーリング
注釈のスケーリングに関して、図１１は、第１解像度またはサイズを有する画面上の第１組の注釈、および第２の解像度またはサイズを有する画面上でスケーリングした注釈を示す。
【００５９】
以下の例を用いる。Ｐoriginal（ｘ，ｙ）を注釈のデータ点の元の位置とする。Ｎ（ｘ，ｙ）は新たな画面解像度である。Ｏ（ｘ，ｙ）は元の画面解像度である。各点Ｐnew（ｘ，ｙ）に対して、各々のｘおよびｙ成分について、新しい画面解像度の古い画面解像度に対する比率によって、スケーリングしたデータ点の新たなロケーションを与える。
【００６０】
【数１】
Pnew (Porignial x ・Nx/Ox), (Poriginal y・Ny/Oy))
これは、ｘおよびｙ成分が独立であることを仮定している。したがって、種々の解像度に容易に対応することができる（例えば、６４０×４８０および６４０×４００）。
【００６１】
代替実施形態は、正規化インク注釈を、指定されたフォーマットに対して含む。したがって、インク注釈を表示する場合、本発明は画面解像度を取り込んで用いる必要がない（何故なら、実際に、初期正規化プロセスによって、既にわかっているからである）。システムは、検索した全ての注釈を変換して、現在の画面解像度に合わせるだけでよい。別の代替案では、正規化した解像度を選択することによって、最も遅い計算機プラットフォームに対応付けることにより、処理を極力減らすことを含む。
【００６２】
インク注釈の情報との関連付け
多数の注釈、文書リフローまたはビューアの変更にも拘らず、基礎の文書を見ることができることに加えて、更にコンピュータの処理能力低下を避けるために、これらのインク・タスクは、従来の計算機タスクと共存することもできる。即ち、電子文書上で使用するには、インク注釈は、基礎の文書が変更されても、存続できなければならない。
【００６３】
この文脈における存続とは、インク・ストロークのグラフィック的な意味、および注釈を付けたエレメントとの関連双方を、これらのエレメントが移動または変化しても、伝え続けることを意味する。本発明は、インク注釈を分類、係留および変換し、注釈を付けられたエレメント間の変更があっても、これらが存続するようにした１組の方法を含む。例えば、図１３を参照のこと。これは、注釈を付けた主題に対する参照を維持する、文書リフロー前後の注釈を示す。
【００６４】
以下の説明および関連する図は、文書の外観変化によるインクおよび注釈の変換の様子を示す。文書は、当該文書のコンテンツ変更によって、外観が変化する場合もあり、基礎の文書コンテンツの修正はなくとも、ユーザの好みの変化（例えば、大きなサイズのフォントを選択する）によって、外観が変化する場合もある。双方の形式の変化に関係するインクの変換は、本発明の一部と見なす。
【００６５】
開始点：ストロークの分類、および多数の独立したアンカー
インク注釈は、グラフィック思考（スケッチ）、言語思考（手書き文字）、およびマーキング（例えば、下線、強調、丸囲み）を含む。これらの各々は、それ自体のグラフィック的な意味、および文書のレイアウトが変更された場合に、その形状を変化させる可能性がある関連性の双方を有する。例えば、スケッチでは、ストリーク（ＸおよびＹ）間に精度高い幾何学的関係を保ち、更にインライン・エレメント近くに保つがそれらが見えにくくならないようにすることが重要である。手書き文字の場合、最も重要なのは、単語を纏めて保持し、連続する単語（行および列）間のフロー関係を保つことである。テキスト上のマークでは、テキストが変更または移動しても、マークの関連する部分を適正に、位置およびサイズについてそれがマークするテキストに関係付けておくことが重要である。基礎のエレメントが移動または変化した際に、本システムおよび方法は、インク注釈の意味および関連を保存するために、どのストリーク、およびどのストローク・グループが、これらの処置の各々を必要とするか認識する。
【００６６】
最初に、ストロークの形状およびストロークが位置する幾何学的領域を用いて、数個の形式の１つにそれを分類する。次に、オブジェクトに対する近接度を用いて、細分類として機能する方法で、ストロークを係留する。図１４は、インク・ストリークの分類を、全てではないがその一部を例示するページ１３０１を示す。
【００６７】
１．アスタリスク１３０２は、グラフィック的な意味を有する形状である（本システムおよび方法はこれを認識する必要はなく、保存するだけである）。これは、余白に位置し、最も近いインライン・エレメントに係留されることに加えて、主に、当該エレメントを含む行に関連すると見なすことができる。
【００６８】
２．単語「Ｔｈｉｓ  ｉｎｋ’ｓ  ｏｖｅｒ  ｔｅｘｔ」１３０３は、「ストローク・チェーン」であり、その最初のストロークは、それの直上または直下にあるテキストに主に関係し、その他のストロークは主に最初のものに関連し、意味を付け加える。最初のストロークが正しい単語に関連付けられていることを保証するために、システムおよび方法は、追加の発見的方法を用いたり、ユーザにアンカーのフィードバックを与えたり、手作業の訂正を許すこともできる。例えば、システムは、平均または加重平均を用いて、「ストローク・チェーン」の中心を決定したり、この中心を最も近いテキストに関連付けることができる。また、システムはユーザに、注釈が言及するテキストを選択するように要求することもできる。
【００６９】
３．単語「ｕｎｄｅｒｌｙｉｎｇ  ｄｏｃｕｍｅｎｔ’ｓ  ｌａｙｏｕｔ」には、１対のストローク１３０４がマークされており、その内、第１のストロークは、単語の範囲をマークしていると見なされ（何故なら、これは行の流れに並行な方向に、その範囲に及んでいるからである）、第２のストロークは、最初のストロークに連鎖し、意味を追加していると見なすことができる。代替実施形態では、システムは、第２線を第１線と関連するものとして分類することもでき、あるいは時間間隔に基づいて、または第１および第２線の作成の間におけるイベントの存在に基づいて、同じテキストに関連するものとして分類することもできる。
【００７０】
４．左余白にある垂直線１３０８は、列の流れの方向に、ある範囲の単語に及んでおり、線１３０８の右側にある行をマークしていると見なされる。
５．「ｈａｎｄｗｒｉｔｉｎｇ  ａｎｄ  ｓｋｅｔｃｈｅｓ」で始まる単語のアウトライン１３０６は、セグメント・グループと見なされ、水平セグメントは単語をマークし、それ以外は行をマークする。
【００７１】
６．アウトラインを余白の書き込み１３０７に接続する線１３０９は、接続部であり、完全に独立したエレメントとすることができる２つの主アンカー（各端部に１つずつ）を有する。
【００７２】
７．余白の書き込み１３０７自体は、ストローク・チェーンであり、そのストロークの内最初に置かれたいずれかに主に関係するが、更に余白およびその最初のストロークに最も近いテキスト、ならびに長い行の近い方の端部にも関係する。
【００７３】
８．単語「Ｔｈｉｓ  ｉｎｋ’ｓ  ｉｎ−ｌｉｎｅ  ｗｉｔｈ  ｔｅｘｔ」１３０５は、注釈として見なすことができるが、これらはテキストの流れの中に挿入されているので、文書レイアウトの一部として分類し、係留や変換の対象とはしない。
【００７４】
要約すると、本システムおよび方法は、５つの基本的な形式のインクを有し、その内３つを注釈として分類する。
【００７５】
【表１】
0004981219.tif 000002
【００７６】
本システムおよび方法は、発見的方法を用いて、注釈として分類された各ストロークを係留することもできる。例えば、最初に、ストロークの開始のウィンドウにおけるＸＹ位置は、ウィンドウ・アンカーを与える。次に、ウィンドウのレイアウト・エンジンが追加の時間情報を基礎領域および近隣エレメントについて提供する場合、本システムおよび方法は追加のアンカーを作成し、これらを発見的方法において用い、アンカー・エレメントが移動または変更したときにはいつでも、インクの再レイアウトに対応するようにすることもできる。以下に、発見的方法の一例について説明するが、他の発見的方法も使用可能であり、本発明の範囲内と見なすことは認められよう。
【００７７】
１．ストロークを終了したときに、本システムおよび方法は、同様に関連がある可能性がある他の注釈に対する、その近接度をチェックする。
２．システムは、その形状をチェックし、直線である場合、システムはレイアウト・エンジンにグラフィック領域について問い合わせ、それが３つの直線クラスのいずれか１つに適合するか否か判定を行なう。３つのクラスとは、連続エレメント（１行内の多数のテキスト・キャラクタ。これらもインライン・インクまたはその他のオブジェクトに含まれる場合もある）の範囲に対して平行、このような範囲（列内にある多数の行等）のシーケンスに対して垂直、または１対の非連続エレメントに関連する接続線である。一実施形態では、システムは、高さ対幅の比率、および端部が隣接するボックスの対向する角に近いか否かについてのみ考慮する、単純な発見的方法を用いる。幅が高さに対してある比率だけ（例えば、デフォルトを５倍とすればよい）大きく、隣接するボックスの左右縁の中点がテキストをマークする場合、これを水平テキスト・マークとして分類する。最も近いテキストが下にある場合、システムは上方向に最も近いオブジェクトを求め、距離の比率に基づいてこれらの間を選択する。これによって、水平テキスト・マークの分類を下線に変更する（「上線」とはしない。これは余りなじみがないからである）。双方の端部がインライン・テキストまたはインクをマークし、その高さが幅よりもある比率だけ（例えば、デフォルトを７倍とすればよい）大きい場合、ある行範囲をマークする垂直線として分類する。そうでない場合、端部が対角線の角近くにあれば、これを接続線とする（２つのインライン・エレメントを接続するか、または１つを余白と接続する場合もある）。
【００７８】
３．ストロークをこれら直線クラスの１つとして分類しない場合、システムは、ストロークのＸＹ中点（単語スペース、タブ・スペース、および行間のような、見えないインライン・エレメントを含む）に最も近いインライン・エレメントを識別し、アンカーとして用いる。中点およびアンカー・エレメントがスレシホルド（例えば、０．２”）よりも多く水平方向に離れている場合、システムはこれを「横余白」としてマークする。これらがスレシホルドよりも多く垂直方向に離れている場合、システムはこれを「上／下余白」としてマークする。
【００７９】
４．余白にない場合、システムはアンカー・エレメントのサイズも記すので、アンカー・エレメントを再スケーリングする場合、インクを再スケーリングすることができる。
【００８０】
５．ウィンドウ、領域、およびエレメント・アンカーに加えて、システムはあらゆる近隣の重ね合わせエレメントにもリンクを付けることができる（典型的にはインク・ストロークであるが、画像、形状、またはテキスト・ラベルとすることも可能である）。これは、このような重ね合わせエレメントがスケッチまたは単語を形成する場合、互いに対してその位置を維持することは、埋め込みアンカーとの流れよりも重要であるからである。得られるストローク・チェーンは、手書き単語を一例とすると、チェーン内の最初のストロークの位置およびスケールに応じた単位として移動およびスケーリングする。例えば、近隣のインク・ストロークまでの距離がスレシホルド（例えば、０．１５”）未満である場合、一実施形態では、このストロークを追加アンカーと呼び、現アンカーに「ニア・インク」（ｎｅａｒ  ｉｎｋ）というフラグを立てる。
【００８１】
６．この時点で、システムは、埋め込みアンカーを十分に識別し、このストロークを十分に分類しているので、アンカーが変化したことがシステムに通知されたとき、システムは適切にインク注釈を変換することができる。
【００８２】
種々のアンカー変更に応答した種々のストローク・クラスの変換
本システムは、発見的方法を用いて、アンカーが移動したときに、ストロークを再レイアウトする。以下に、これら発見的方法の一実施形態について説明するが、多くの変形が可能である。この説明は、西洋文書（縦方向の欄、左から右への流れ）を想定する。東洋の文書では、方向が引っ繰り返るか、または回転し、双方向のフローが行毎に逆方向および順方向に引っ繰り返る。例は以下を含む。
【００８３】
１．ページ１４０１の図１５に示すように、余白内ではなく、インライン・フロー内の単一の位置に係留されているインク１４０３は、アンカー直前または直後のエレメントと共に、再位置付けおよび再スケーリングする。ここでは、２つページ間のテキストのリフローにも拘らず、少なくとも部分的にフォント・サイズの変更のために、ページ１４０１上のアウトライン１４０３が、ページ１４０２内のテキスト「インライン」のアウトライン１４０４としてあり続ける。
【００８４】
２．図１６に示すように、主アンカーが「横余白」であるインク１５０３が、同じ余白内で垂直方向に位置が変わり、そのアンカーを含むテキスト行と共に残っており、アンカー・サイズに独立してその余白が縮小した場合、水平方向に切り取られるかあるいは縮小する（これにより、テキストが見えにくくなること、またはページの縁にはみ出すことを回避する）。ここでは、インク１５０３は、ページ１５０１上のテキストに沿った余白に係留されている。テキストをリフローすると、インク１５０３は、アンカーされたテキストに追従し、マージン・サイズが調節され、１５０４のようにレンダリングされる。
【００８５】
３．主アンカーが「上／下余白」（例えば、アステリスク１３０２）であるインクが垂直方向にのみ位置が変わり、そのアンカーを含む行からの距離を維持する。余白が縮小する場合、ウィンドウの縁で垂直方向に削除してもよい。文書の再レイアウトによって、上または下余白の注釈が次のページまたは前のページに移動する可能性がある。この場合、同じ余白内に示される。編集によって、多数の注釈が同じ余白を占めることになる可能性がある。この場合、ユーザは、その係留を変更することなく、１つを移動させることができなければならない。
【００８６】
４．テキスト内の２点を接続する線は、そのアンカー間の距離が変化すると、Ｘおよび／またはＹ方向に、スケーリングおよび／または回転させるか、あるいは引っ繰り返さなければならない場合がある。
【００８７】
５．図１７に示すように、ページ１６０１においてインライン・エレメントを余白の書き込み１６０３に接続する線１６０６も、同様に、そのアンカー間の距離が変化すると、Ｘおよび／またはＹ方向に、スケーリングおよび／または回転させるか、あるいは引っ繰り返さなければならない場合がある。前述の第１章および図１５を参照したときのように、インライン端部は、そのアンカーと共に位置が変わる。また、余白の端部は、前述の第２章または第３章および図１６におけるように、そのアンカーの線と共に垂直方向に位置が変わる。この結果、線１６０７はページ１６０２上の余白の書き込み１６０４に添付される。
【００８８】
６．インライン・エレメントの範囲をマークする線またはセグメントは、そのアンカー間の距離が変化するに連れて、水平方向に拡大または縮小しなければならない。図１３のページ１２０１および二重下線１２０２を参照のこと。再レイアウトによってアンカーの一方がある行の端部からはみ出した場合、同じマーク１２０２を両方の線（１２０４および１２０５）に繰り返す。これは、開始アンカー（例えば、単語「ｕｎｄｅｒｌｙｉｎｇ」）および最初の行の端部間の線１２０４、および次の行の先頭および端部のアンカー（例えば、単語「ｌａｙｏｕｔ」）間の線１２０５として示される。追加のライン・ブレークが追加されると、行間を結ぶ追加の水平線が示される。これらの行は纏められ、１つとして選択される。したがって、単一の下線は、注釈を変換する必要に応じて、２つ、３つ、またはそれ以上の下線に分離される場合がある。更に、多数の線を１つにリフローするために、変換を逆に行なう場合もある。
【００８９】
７．前述のストローク分類のいずれかに属し、既存のインクに近いストロークは、その近隣のインクと共に再配置され、それと共にスケールされる（新たなインクが接続線である場合を除く。その場合、その端部における関連を維持するために、伸長する）。単語、インライン・フロー、およびスケッチを共に維持し、そのグラフィック的な意味を保存することを可能にするのは、近隣インクとの関連である。
【００９０】
データ・フォーマット、レンダリング、および永続性
インク注釈を多数のシステムおよび用途において用いるには、インクおよび関連するアンカー情報を永続させるために、共通の方法が必要となる。永続性フォーマットは、分類および係留情報を継承し、変換が、グラフィック的な意味を失うことなく、関連を伝え続けることができるようにする。
【００９１】
注釈およびインクは、永続性情報として、ソース、１つ以上のリンク、および１つ以上のターゲットを含む。また、インク注釈は、各ソースに関する情報を含むことができ、この情報には、作成情報（アプリケーション、ユーザ、および時刻）、オプションのスタイル情報（例えば、１２ｐｔ、太字、赤）、およびオプションの意味情報（例えば、スケッチ、単語、パラグラフ、疑似事実形式および／または文書形式）を有する、１つ以上のインク・ストロークが含まれる。インク注釈では、各リンクは、多数の独立したアンカーに対する参照を含むことができ、その一部は、他の注釈のソースであってもよい。
【００９２】
各インク注釈ソースは、次を含むことができる。
１）インク・ストローク毎の情報
Ａ）このストロークの最初のサンプルの、最初のストロークの最初のサンプルに対する、ＸＹ位置。
【００９３】
２）インク・サンプル毎の情報
Ｂ）サンプルのこのストロークの最初のサンプルに対するＸＹ位置。
各インク注釈ソースは、次も含むことができる。
【００９４】
１）ストローク毎のオプション・データ
Ａ）ストロークの開始に対するタイム・スタンプ
Ｂ）サンプル・レート
Ｃ）平均圧力
Ｄ）平均傾斜
２）サンプル毎のオプション・データ
Ａ）サンプルに対するタイム・スタンプ
Ｂ）圧力
Ｃ）傾斜
Ｄ）ベジエ制御
各インク注釈リンクは次を含む。
【００９５】
１）インク注釈毎の情報
Ａ）主アンカーに対する最初のストロークの最初のサンプルのＸＹ位置
Ｂ）注釈が付けられたときのアンカーのスケール
各インク注釈リンクは、以下も含んでもよい。
【００９６】
１）注釈毎にオプションの係留情報
Ａ）いずれの形状についても、余白タグ（位置方向フローについて）、および／または近隣のインク・アンカー
Ｂ）接続部について、接続部形式タグ、および第２端に対するアンカー情報、およびオプションの余白タグ
Ｃ）範囲について、範囲形式タグ、および第２端に対するアンカー情報、およびオプションのセグメント・タグ。
【００９７】
レイアウト・エンジンからの支援
レイアウト・エンジンは、当技術分野では公知である。公知のレイアウト・エンジンの１つは、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎｓのＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒブラウザのレイアウト・エンジンであるＴｒｉｄｅｎｔに用いられている。他のレイアウト・エンジンも当技術分野では公知である。レイアウト・エンジンは、オブジェクトおよび領域の位置を判定する。したがって、どのオブジェクトがインク・ストロークに最も近いか、そしてどの領域に該当するかを特定し、この情報を注釈リンクに含ませるために提供する。即ち、最も近いインライン・オブジェクトのロケーション、および当該オブジェクトまでの距離から、注釈のフローがインラインか、垂直か（横余白）、またはないか（上／下余白）について判定を行なう。更に、レイアウト・エンジンは、いずれかのアンカーが出現、移動、または外観の変更を行なった場合に通知を与え、インク注釈を正しく変換できるようにすることも可能である。
【００９８】
前述の明細書では、具体的な実施形態の一例を参照しながら本発明について説明した。種々の実施形態に関して本発明を説明したが、添付した特許請求の範囲に明記した本発明の精神および範囲内で、本発明の種々の変更、実施形態または変形も実施可能であることを、当業者は認めよう。全ては、本発明の領分（ｓｐｈｅｒｅ）、精神および範囲内であると見なす。したがって、本明細書および図面は、限定ではなく、例示の意味で解釈することとする。つまり、本発明は、添付した特許請求の範囲に鑑みて必要であるとされ得る以外には、限定されないことを意図するものとする。
【図面の簡単な説明】
【図１】本発明の実施形態による、汎用コンピュータを示す図である。
【図２】本発明の実施形態による、ハンドヘルド・コンピュータを示す図である。
【図３】本発明の実施形態によるコンピュータ・画面上に表示された文書を示す図である。
【図４】図４Ａは  本発明にしたがって文書を記憶するために使用可能な文書フォーマットを示す図である。
図４Ｂは  本発明にしたがって文書を記憶するために使用可能な文書フォーマットを示す図である。
【図５】本発明の実施形態にしたがって、ＵＴＦ８およびＵｎｉｃｏｄｅでキャラクタを記憶する、異なるバイトを示す図である。
【図６】本発明の実施形態にしたがって、オブジェクトのファイル位置を決定するプロセスを示す図である。
【図７】本発明の実施形態にしたがって、オブジェクトのファイル位置を決定する別のプロセスを示す図である。
【図８】本発明の実施形態にしたがって注釈を表示するプロセスを示す図である。
【図９】図９Ａは、本発明の実施形態にしたがって注釈を記憶する記憶技法を示す図であり、
図９Ｂは、本発明の実施形態にしたがって注釈を記憶する記憶技法を示す図である。
【図１０】本発明の実施形態にしたがって注釈を操作する画面を示す図である。
【図１１】本発明による注釈のスケーリングを示す図である。
【図１２】本発明の実施形態による注釈の一例を示す図である。
【図１３】本発明の実施形態による、注釈と表示された文書の部分との関連を示す図である。
【図１４】本発明の実施形態による、注釈と表示された文書の部分との関連を示す図である。
【図１５】本発明の実施形態による、注釈と表示された文書の部分との関連を示す図である。
【図１６】本発明の実施形態による、注釈と表示された文書の部分との関連を示す図である。
【図１７】本発明の実施形態による、注釈と表示された文書の部分との関連を示す図である。
【符号の説明】
１０１    文書読み取りウィンドウ
１０１    タイトル・バー
１０２    本体
１０３    オブジェクト
１０４    名称
１０５    章の番号
１０６    章の名称
１０７    章のテキスト
１０８、１０９、１１０、１１１    余白
１６５    ペン・ディジタイザ
１６６    ペンまたはスタイラス
１６７    タブレットＰＣ
１６８    大型表示面
１６９    ウィンドウ
１７０    スタイラス
１７１    領域
２００    パーソナル・コンピュータ
２０６    シリアル・ポート・インターフェース
２０７    モニタ
２０９    リモート・コンピュータ
２１０    演算装置
２１２    ローカル・エリア・ネットワーク（ＬＡＮ）
２１３    ワイド・エリア・ネットワーク（ＷＡＮ）
２１４    ネットワーク・インターフェース
２１５    モデム
２２０    システム・メモリ
２３０    システム・バス
２４０    リード・オンリ・メモリ（ＲＯＭ）
２５０    ランダム・アクセス・メモリ（ＲＡＭ）
２６０    基本入出力システム
２７０    ハード・ディスク・ドライブ
２８０    磁気ディスク・ドライブ
２９０    リムーバブル磁気ディスク
２９１    光ディスク・ドライブ
２９２    リムーバブル光ディスク
２９２    ハード・ディスク・ドライブ・インターフェース
２９３    磁気ディスク・ドライブ・インターフェース
２９４    光ドライブ・インターフェース
２９５    オペレーティング・システム
２９６    アプリケーション・プログラム
２９７    プログラム・モジュール
２９８    プログラム・データ
【図１】
0004981219.tif 000003
【図２】
0004981219.tif 000004
【図３】
0004981219.tif 000005
【図４】
0004981219.tif 000006
【図５】
0004981219.tif 000007
【図６】
0004981219.tif 000008
【図７】
0004981219.tif 000009
【図８】
0004981219.tif 000010
【図９】
0004981219.tif 000011
【図１０】
0004981219.tif 000012
【図１１】
0004981219.tif 000013
【図１２】
0004981219.tif 000014
【図１３】
0004981219.tif 000015
【図１４】
0004981219.tif 000016
【図１５】
0004981219.tif 000017
【図１６】
0004981219.tif 000018
【図１７】
0004981219.tif 000019