(57)【特許請求の範囲】
【請求項１】
ビューが変化する時に、ビュー中の少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対する論理的関係の指示を維持するシステムであって、前記指示が、少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係であり、前記システムが、
少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係を表示するディスプレイを含み、
前記少なくとも１つの自由形式デジタルインク注釈を入力する入力デバイスを含み、
ビュー中において前記入力デバイスによって入力された前記少なくとも１つの自由形式デジタルインク注釈の前記少なくとも１つのオブジェクトに対するレイアウト関係に基づいて、前記少なくとも１つのオブジェクトからのオフセットであるアンカを作成することにより、前記少なくとも１つのオブジェクトに対する前記少なくとも１つの自由形式デジタルインク注釈の論理的関係をマッピングするプロセッサを含み、
前記論理的関係を格納して維持するメモリを含み、
前記プロセッサが、
第１ビューにおける変化に応答して、第２ビューを生成し、
前記第２ビューの生成に応答して、前記メモリに格納された前記論理的関係を取得し、
前記論理的関係に基づいて、前記第２ビューにおいて前記少なくとも１つの自由形式デジタルインク注釈をレンダリングして前記ディスプレイに表示し、
さらに、
前記少なくとも１つの自由形式デジタルインク注釈を複数のサブストロークに分割することにより、前記少なくとも１つの自由形式デジタルインク注釈をマッピングし、各サブストロークが、オブジェクトに近接する注釈の部分に対応し、前記第１ビュー中の複数のサブストロークの各々の前記少なくとも１つのオブジェクトに対するレイアウト関係に基づいて、複数のサブストロークの各々に対するアンカを作成する、
ことを特徴とする論理関係の指示維持システム。
【請求項２】
第２ビューが、前記少なくとも１つのオブジェクトの少なくとも２つのオブジェクトへの分割と、少なくとも２つのオブジェクトの分離とに応答して生成され、前記少なくとも１つの自由形式デジタルインク注釈が、少なくとも２つの自由形式デジタルインク注釈に分割され、その各々が、少なくとも２つのオブジェクトのうちの少なくとも１つに対応する、ことを特徴とする請求項１の論理関係の指示維持システム。
【請求項３】
ビューが変化する時に、ビュー中の少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対する論理的関係の指示を維持するシステムであって、前記指示が、少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係であり、前記システムが、
少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係を表示するディスプレイを含み、
前記少なくとも１つの自由形式デジタルインク注釈を入力する入力デバイスを含み、
ビュー中において前記入力デバイスによって入力された前記少なくとも１つの自由形式デジタルインク注釈の前記少なくとも１つのオブジェクトに対するレイアウト関係に基づいて、前記少なくとも１つのオブジェクトからのオフセットであるアンカを作成することにより、前記少なくとも１つのオブジェクトに対する前記少なくとも１つの自由形式デジタルインク注釈の論理的関係をマッピングするプロセッサを含み、
前記論理的関係を格納して維持するメモリを含み、
前記プロセッサが、
第１ビューにおける変化に応答して、第２ビューを生成し、
前記第２ビューの生成に応答して、前記メモリに格納された前記論理的関係を取得し、
前記論理的関係に基づいて、前記第２ビューにおいて前記少なくとも１つの自由形式デジタルインク注釈をレンダリングして前記ディスプレイに表示し、
前記第２ビューが、前記少なくとも１つのオブジェクトを少なくとも１つの新たなオブジェクトと置き換えることに応答して生成される、
ことを特徴とする論理関係の指示維持システム。
【請求項４】
ビューが変化する時に、ビュー中の少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対する論理的関係の指示を維持するシステムであって、前記指示が、少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係であり、前記システムが、
少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係を表示するディスプレイを含み、
前記少なくとも１つの自由形式デジタルインク注釈を入力する入力デバイスを含み、
ビュー中において前記入力デバイスによって入力された前記少なくとも１つの自由形式デジタルインク注釈の前記少なくとも１つのオブジェクトに対するレイアウト関係に基づいて、前記少なくとも１つのオブジェクトからのオフセットであるアンカを作成することにより、前記少なくとも１つのオブジェクトに対する前記少なくとも１つの自由形式デジタルインク注釈の論理的関係をマッピングするプロセッサを含み、
前記論理的関係を格納して維持するメモリを含み、
前記プロセッサが、
第１ビューにおける変化に応答して、第２ビューを生成し、
前記第２ビューの生成に応答して、前記メモリに格納された前記論理的関係を取得し、
前記論理的関係に基づいて、前記第２ビューにおいて前記少なくとも１つの自由形式デジタルインク注釈をレンダリングして前記ディスプレイに表示し、
前記少なくとも１つのオブジェクトが、少なくとも２つのオブジェクトを含み、第２ビューが、少なくとも２つのオブジェクトの併合に応答する、
ことを特徴とする論理関係の指示維持システム。
【請求項５】
ビューが変化する時に、ビュー中の少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対する論理的関係の指示を維持するシステムであって、前記指示が、少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係であり、前記システムが、
少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係を表示するディスプレイを含み、
前記少なくとも１つの自由形式デジタルインク注釈を入力する入力デバイスを含み、
ビュー中において前記入力デバイスによって入力された前記少なくとも１つの自由形式デジタルインク注釈の前記少なくとも１つのオブジェクトに対するレイアウト関係に基づいて、前記少なくとも１つのオブジェクトからのオフセットであるアンカを作成することにより、前記少なくとも１つのオブジェクトに対する前記少なくとも１つの自由形式デジタルインク注釈の論理的関係をマッピングするプロセッサを含み、
前記論理的関係を格納して維持するメモリを含み、
前記プロセッサが、
第１ビューにおける変化に応答して、第２ビューを生成し、
前記第２ビューの生成に応答して、前記メモリに格納された前記論理的関係を取得し、
前記論理的関係に基づいて、前記第２ビューにおいて前記少なくとも１つの自由形式デジタルインク注釈をレンダリングして前記ディスプレイに表示し、
前記少なくとも１つの自由形式デジタルインク注釈が、少なくとも２つの自由形式デジタルインク注釈を含み、前記少なくとも１つのオブジェクトが、少なくとも２つのオブジェクトを含み、その各々が、少なくとも２つの自由形式デジタルインク注釈のうちの１つに対応し、
前記プロセッサが、少なくとも２つのオブジェクトの併合に応答して、少なくとも２つの自由形式デジタルインク注釈を併合して、単一の自由形式デジタルインク注釈にする、
ことを特徴とする論理関係の指示維持システム。
【請求項６】
ビューが変化する時に、ビュー中の少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対する論理的関係の指示を維持するシステムであって、前記指示が、少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係であり、前記システムが、
少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係を表示するディスプレイを含み、
前記少なくとも１つの自由形式デジタルインク注釈を入力する入力デバイスを含み、
ビュー中において前記入力デバイスによって入力された前記少なくとも１つの自由形式デジタルインク注釈の前記少なくとも１つのオブジェクトに対するレイアウト関係に基づいて、前記少なくとも１つのオブジェクトからのオフセットであるアンカを作成することにより、前記少なくとも１つのオブジェクトに対する前記少なくとも１つの自由形式デジタルインク注釈の論理的関係をマッピングするプロセッサを含み、
前記論理的関係を格納して維持するメモリを含み、
前記プロセッサが、
第１ビューにおける変化に応答して、第２ビューを生成し、
前記第２ビューの生成に応答して、前記メモリに格納された前記論理的関係を取得し、
前記論理的関係に基づいて、前記第２ビューにおいて少なくとも１つの自由形式デジタルインク注釈をレンダリングして前記ディスプレイに表示し、
さらに、前記第２ビュー中の前記少なくとも１つの自由形式デジタルインク注釈の選択に応答して、前記第１ビューを前記ディスプレイに表示する、
ことを特徴とする論理関係の指示維持システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、変化するビューをディスプレイする電子システムに関する。詳細には、本発明は、電子メディアにおいて自由形式デジタルインク注釈付けを行うことを可能にし、メディアの変化するビューにおいて自由形式デジタルインク注釈とオブジェクトとの論理的関係を維持することに関する。
【０００２】
【従来の技術】
紙文書の自由形式インク注釈付けは、思考プロセス、類別プロセス、レビュープロセスを含むドキュメントワークを多くの面で手助けするので、広く行われている。要するに、自由形式インク注釈付けは、有力なコンプリヘンション（理解用）ツールであるということが判明した。紙文書や紙に似た文書（例えば、ＰＤＦ、ポストスクリプト、イメージファイルなど）は、スタティックなレイアウト及び内容を有する。このような文書はスタティックな性質を有するため、注釈付けは単純である。
【０００３】
しかし、我々が使用する文書の種類は、コンピュータを使ってディスプレイ上でデジタル式に作成され、示されることがますます多くなっている。このような文書は、たいていダイナミックである。従って、ディスプレイ中のオブジェクトに対する注釈の関係を正確に表現することは、ディスプレイが変化するため、不可能であった。例えば、ワードプロセッサ文書のディスプレイは、文書が修正されると、変わる。同様に、１９９５年５月のヒューマンファクターズ及びコンピューティングシステムズ（Human Factors and Computing Systems）に関するＡＣＭ ＳＩＧＣＨＩコンフェレンスの会報の中の「大きな組織図をビジュアル化するための双曲幾何学に基づくフォーカス＋コンテキストテクニック（A Focus + Context Technique Based on Hyperbolic Geometry for Visualizing Large Hierarchies）」という論文中でLamping他により示されたハイパボリックブラウザのような情報ビジュアル化システムは、情報スペースをユーザが進むにつれて、文書のディスプレイが変化する。
【０００４】
チボリ（Tivoli）として知られている自由形式デジタルインクホワイトボードは、ＵＩＳＴ '97、ＡＣＭプレスにおいて、Ｍｏｒａｎ他による「エレクトロニックホワイトボードにおいて材料を組織化するためのペンベースの対話技術（Pen-Based Interaction Techniques For Organizing Material on an Electronic Whiteboard）」に開示されている。チボリでは、ユーザはディスプレイ中の２つの領域同士の間のコネクション（関係）を識別することができ、そのコネクションは、それらの領域が移動され、ディスプレイが変わっても維持される。他のインク識別領域を囲むサークルマークと、２つの領域の境界を連結する自由形式デジタルインクマークは、それらの２つの領域同士の間のコネクションを形成する。このコネクションは、それらの領域が移動しても持続され、チボリは連結マークの形状を維持するように働く。
【０００５】
文書のナビゲーションをアシストするために、従来のシステムは、１セットのブックマークタイプを使用する。このようなナビゲーションシステムの例は、ＩＥＥＥ １９９６ バーチャルリアリティ定例国際シンポジウム（IEEE 1996 Visual Reality Annual International Symposium）の議事録２３９〜２４５ページ（１９９６年）の、ハルマン（Harmon）他による”Visual Annotation System”と、ＵＩＳＴ '97のビデオ会報２１〜３０ページ（1997）の、エルビンズ（Ｅｌｖｉｎｓ）他による”Worldlets: 3D Thumbnails for Wayfinding in Virtual Environments”において、示されている。ユーザはコメントする前に注釈コマンドを特定する必要があるので、これらのシステムにより、ユーザはナビゲーションシステムと自由に対話することができる。
【０００６】
最近のシステムは、３つの方法のうちの少なくとも１つにより、変化するビュー又はディスプレイ上で自由形式デジタルインク注釈を管理する（「ビュー」及び「ディスプレイ」という言葉は、本願を通じて互換性を持たせて使用する）。スタティックなアプローチとして知られる第1の方法は、単一のビューと関連するようにインク注釈を処理する。ドキュメントの表示又は内容が変わると、注釈は消滅するか、元のポジションに残るかのどちらかである。ＵＩＳＴ '93（1993）の議事録においてハードック（Hardock）他による”A Marking Based Interface for Collaborative Writing”で開示された「MATE」として知られるシステムは、スタティックな注釈付けされたバージョンと、注釈のない変化されるバージョンと、そしてこれら２つのバージョンの間の論理的リンクとを維持することにより、変化する内容をアドレスする。
【０００７】
スナップショートアプローチとして知られる第2の方法は、個別に注釈付けされることのできる一連のスタティックスナップショットとして、ダイナミックビューを処理する。このアプローチの例は、「ヒューマンコンピュータインタフェースデザイン（モルガンコーフマン出版社（Morgan Kaufman Publisher）（1996））」において、Francik著の”Rapid, Integrated Design of a Multimedia Communication System”で開示されたWangフリースタイルを含む。
【０００８】
第3の方法は、一時的関連づけアプローチとして知られ、インク注釈をビューから分離させ、一時的に２つをリンクすることにより、指定時につけられたマークをその時にビューと関連づける。この方法の例は、ＣＨＩ '94、ＡＣＭプレス（1994年４月）の会報の中の、ウェバー（Ｗｅｂｅｒ）他による”Ｍａｒｑｕｅｅ：Ａ Ｔｏｏｌ ｆｏｒ Ｒｅａｌ−Ｔｉｍｅ Ｖｉｄｅｏ Ｌｏｇｇｉｎｇ”と、ＣＨＩ '97、ＡＣＭプレス（1997年）の会報の中の、シリット（Ｓｃｈｉｌｉｔ）他による”Ｄｙｎｏｍｉｔｅ：Ａ Ｄｙｎａｍｉｃａｌｌｙ Ｏｒｇａｎｉｚｅｄ Ｉｎｋ ａｎｄ Ａｕｄｉｏ Ｎｏｔｅｂｏｏｋ”に開示されている。
【０００９】
【発明が解決しようとする課題】
自由形式デジタルインク注釈付けを行うことのできる従来のインタフェースでは、注釈と関連づけられたオブジェクトとの間の論理的関係の指示は、ビューが変化すると、維持されない。例えば、ユーザがドキュメントのテキストに注釈付けし、その後、注釈付けされたテキストが行をまたぐと、注釈はテキストの行をまたいだ部分には追随しない。従って、注釈付けされたテキストに潜在的な論理的関係があっても、新たなビューのレイアウトは、テキストの注釈との間のこの論理的関係を示さない。
【００１０】
従来技術として述べたシステムもまた、ビューが変化した場合に、注釈と関連づけられたオブジェクトとの間の論理的関係の指示を維持しない。チボリは、注釈付けされた領域が移動され、ディスプレイが変化すると、自由形式デジタルインク注釈を維持しない。むしろ、チボリは、ある特定タイプの注釈のみ、即ち、ある領域の別の領域に対する境界からのシングルストロークだけを維持する。この制限により、変化するディスプレイにおいて自由形式デジタルインク注釈を使用して、移動するオブジェクトをラベル付けしたり、ナビゲーションを促進したりすることができない。
【００１１】
ＭＡＴＥは、自由形式デジタルインク注釈と対応する基礎となるテキストとの間の論理的関係を維持するが、ビューが変化した場合には、このような論理的関係の指示を維持しない。
【００１２】
フリースタイルは、同一ドキュメントとの新たなビューに対しては、自由形式デジタルインク注釈付けを実行することができない。
【００１３】
Ｄｙｎｏｍｉｔｅは、ビュー上で直接的には注釈付けすることができないので、注釈は、ビューに対する変化に従って新たなビューにはレンダリングされない。
【００１４】
【課題を解決するための手段】
本発明の方法及びシステムは、変化するビューにおいて、自由形式デジタルインク注釈とオブジェクトとの間のレイアウト関係を維持する。ユーザがビュー上で自由形式のデジタルインク注釈付けを行う時とビューが変化する時に、本発明の方法及びシステムは、この変化に従ってマークを適応させる。よって、あるビューにおいて付けられた自由形式デジタルインク注釈とオブジェクトとの間の論理的関係は、レイアウト関係に基づいて、これから先のビューの中でも理解することができる。
【００１５】
本発明の方法及びシステムはまた、例えばビデオ及び対話式バーチャルワールドのようなダイナミックメディアにおいて自由形式デジタルインク注釈とオブジェクトとの間の論理的関係の表示を維持する。例えば、ハイパーボリックブラウザで情報スペースを探索しているユーザが、ツリーのノードに自由形式デジタルインク注釈付けを行う場合、ユーザがディスプレイを変えて、ツリーの別の部分に焦点を当てると、自由形式デジタルインク注釈がツリーと共に回転及びスケーリングして、自由形式デジタルインク注釈のノードに対する論理的関係が指示され続ける。
【００１６】
本発明の方法及びシステムは、注釈を付けられたオブジェクトのビューが変化する時に、ビュー中の自由形式デジタルインク注釈とオブジェクトとの間の論理的関係の指示を維持する。本発明により、用紙上で行うマーキングの経験を、ダイナミックメディア、ワードプロセッサドキュメント、情報のビジュアル化、バーチャルワールド、デジタルビデオ、及びワードプロセッサにも活かせる。
【００１７】
本発明のシステム及び方法は、自由形式デジタルインク注釈に論理的に関連づけられたオブジェクトが消去されたり、挿入されたり、コピーされたり、移動されたり、あるいは他の方法で変更されたとしても、論理的関係の指示を維持する。また、本発明のシステム及び方法は、ディスプレイ中のオブジェクトのリフロー、スケーリング、サイズ変化、回転、伸長、歪曲、変形といった場合や、レイアウト表示の他の点が変更された場合に、これらの変更が別々に起ころうが連続的に起ころうが、論理的関係の指示を維持する。
【００１８】
さらに、本発明のシステム及び方法の別例の実施の形態では、自由形式デジタルインク注釈が、ダイナミックドキュメントを航行するための有力なツールとなる航行上のマーカが提供される。ユーザは、任意のビューの中で自由形式デジタルインク注釈を選択でき、ディスプレイは、選択された自由形式デジタルインク注釈が付された時の状態に戻される。
本発明の第１の態様は、ビューが変化する時に、ビューにおける少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対する論理的関係の指示を維持する方法であって、前記指示が、少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係であり、前記方法が、
第１ビュー中の少なくとも１つの自由形式デジタルインク注釈と少なくとも１つのオブジェクトとのレイアウト関係に基づいて、少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対する論理的関係をマッピングするステップを含み、
第２ビューを生成するステップを含み、
前記第２ビューの生成に応答して、少なくとも１つの自由形式デジタルインク注釈をレンダリングするステップを含み、第２ビュー中の少なくとも１つの自由形式デジタルインク注釈と少なくとも１つのオブジェクトのレイアウト関係が、第１ビュー中の少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するマッピングされた論理的関係に基づく、
ことを特徴とする。
第２の態様は、第１の態様において、少なくとも１つのオブジェクトが、エレクトロニックブック及びドキュメントリーダ中にある、ことを特徴とする。
第３の態様は、第１の態様において、少なくとも１つのオブジェクトがワードプロセッサ中にある、ことを特徴とする。
第４の態様は、第１の態様において、第２ビューが、ドキュメントの構造における変化に応答して生成される、ことを特徴とする。
第５の態様は、第１の態様において、第２ビューが、ドキュメントのレイアウトにおける変化に応答して生成される、ことを特徴とする。
第６の態様は、第１の態様において、マッピングするステップが、少なくとも１つの自由形式デジタルインク注釈に対するアンカを作成することが含む、ことを特徴とする。
第７の態様は、第１の態様において、マッピングするステップが、少なくとも１つの自由形式デジタルインク注釈を複数のサブストロークに分割するステップを含み、各サブストロークが、オブジェクトに近接する注釈の部分に対応し、
第１ビュー中の複数のサブストロークの各々の少なくとも１つのオブジェクトに対するレイアウト関係に基づいて、複数のサブストロークの各々に対するアンカを作成するステップを含む、
ことを特徴とする。
第８の態様は、第７の態様において、サブストローク同士の間に接続ラインを生成するステップをさらに含む、ことを特徴とする。
第９の態様は、第７の態様において、少なくとも１つのオブジェクトが少なくとも２つのオブジェクトに分割され、レンダリングが、第２ビュー中の少なくとも２つのオブジェクトの分離に応答し、少なくとも１つの自由形式デジタルインク注釈が、少なくとも２つの自由形式デジタルインク注釈の分割されて、その各々が少なくとも２つのオブジェクトのうちの少なくとも１つに対応する、ことを特徴とする。
第１０の態様は、第１の態様において、少なくとも１つのオブジェクトが、少なくとも２つのオブジェクトを含み、第２ビューが、少なくとも２つのオブジェクトの併合に応答する、ことを特徴とする。
第１１の態様は、第１の態様において、第２ビューが、少なくとも１つのオブジェクトを少なくとも１つの新たなオブジェクトと置き換えることに応答する、ことを特徴とする。
第１２の態様は、第１の態様において、マッピングが、少なくとも１つの自由形式デジタルインク注釈の形状と、少なくとも１つの自由形式デジタルインク注釈のオブジェクトへの近接とに依存する、ことを特徴とする。
第１３の態様は、第１２の態様において、少なくとも１つの自由形式デジタルインク注釈が、アンダーライン及び取り消し注釈のうちの１つである、ことを特徴とする。
第１４の態様は、第１２の態様において、少なくとも１つの自由形式デジタルインク注釈が、挿入注釈である、ことを特徴とする。
第１５の態様は、第１２の態様において、少なくとも１つの自由形式デジタルインク注釈が、コネクタ注釈である、ことを特徴とする。
第１６の態様は、第１の態様において、マッピングが、ビュー中の少なくとも１つの自由形式デジタルインク注釈のロケーションに依存する、ことを特徴とする。
第１７の態様は、第１６の態様において、ロケーションが、第１ビューのマージン内にある、ことを特徴とする。
第１８の態様は、第１の態様において、第２ビュー中の少なくとも１つの自由形式デジタルインク注釈の選択に応答して、第１ビューをディスプレイするステップをさらに含む、ことを特徴とする。
第１９の態様は、第１の態様において、少なくとも１つの自由形式デジタルインク注釈が、少なくとも２つの自由形式デジタルインク注釈を含み、少なくとも１つのオブジェクトが、少なくとも２つのオブジェクトを含み、その各々が少なくとも２つの自由形式デジタルインク注釈に対応し、前記方法が、対応する少なくとも２つのオブジェクトが併合する時に、少なくとも２つの自由形式デジタルインク注釈を併合して単一の自由形式デジタルインク注釈にするステップをさらに含む、ことを特徴とする。
第２０の態様は、ビューが変化する時に、ビュー中の少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対する論理的関係の指示を維持するシステムであって、前記指示が、少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係であり、前記システムが、
少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係をディスプレイするディスプレイを含み、
ビュー中の少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するレイアウト関係に基づいて、少なくとも１つのオブジェクトに少なくとも１つの自由形式デジタルインク注釈をマッピングするプロセッサを含み、前記ディスプレイが、第１ビューにおける変化に応答して、第２ビューを生成し、第２ビューにおいて少なくとも１つの自由形式デジタルインク注釈をレンダリングし、第２ビュー中の少なくとも１つの自由形式デジタルインク注釈と少なくとも１つのオブジェクトのレイアウト関係が、第１ビュー中の少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトに対するマッピングされた論理的関係に基づく、
ことを特徴とする。
第２１の態様は、第２０の態様において、前記システムが、ワードプロセッサである、ことを特徴とする。
第２２の態様は、第２０の態様において、前記システムが、エレクトロニックブック及びドキュメントリーダである、ことを特徴とする。
第２３の態様は、第２０の態様において、前記ディスプレイ及び前記プロセッサを保持するハウジングをさらに含み、前記ハウジングが、システムを携帯できるほど小さいサイズである、ことを特徴とする。
第２４の態様は、第２３の態様において、ポインティングデバイスをさらに含む、ことを特徴とする。
第２５の態様は、第２０の態様において、第１ビューにおける変化が、ドキュメントの構造における変化である、ことを特徴とする。
第２６の態様は、第２０の態様において、第１ビューにおける変化が、ドキュメントのレイアウトにおける変化である、ことを特徴とする。
第２７の態様は、第２０の態様において、前記プロセッサが、少なくとも１つの自由形式デジタルインク注釈に対するアンカを作成することにより、少なくとも１つの自由形式デジタルインク注釈をマッピングする、ことを特徴とする。
第２８の態様は、第２０の態様において、前記プロセッサが、少なくとも１つの自由形式デジタルインク注釈を複数のサブストロークに分割することにより、少なくとも１つの自由形式デジタルインク注釈をマッピングし、各サブストロークが、オブジェクトに近接する注釈の部分に対応し、
第１ビュー中の複数のサブストロークの各々の少なくとも１つのオブジェクトに対するレイアウト関係に基づいて、複数のサブストロークの各々に対するアンカを作成する、
ことを特徴とする。
第２９の態様は、第２８の態様において、前記プロセッサが、サブストローク同士の間に接続ラインを生成することができる、ことを特徴とする。
第３０の態様は、第２８の態様において、第２ビューが、少なくとも１つのオブジェクトの少なくとも２つのオブジェクトへの分割と、少なくとも２つのオブジェクトの分離とに応答して生成され、少なくとも１つの自由形式デジタルインク注釈が、少なくとも２つの自由形式デジタルインク注釈に分割され、その各々が、少なくとも２つのオブジェクトのうちの少なくとも１つに対応する、ことを特徴とする。
第３１の態様は、第２０の態様において、第２ビューが、少なくとも１つのオブジェクトを少なくとも１つの新たなオブジェクトと置き換えることに応答して生成される、ことを特徴とする。
第３２の態様は、第２０の態様において、少なくとも１つのオブジェクトが、少なくとも２つのオブジェクトを含み、第２ビューが、少なくとも２つのオブジェクトの併合に応答する、ことを特徴とする。
第３３の態様は、第２０の態様において、前記プロセッサが、少なくとも１つの自由形式デジタルインク注釈の形状と、少なくとも１つの自由形式デジタルインク注釈の少なくとも１つのオブジェクトへの近接とに依存してマッピングする、ことを特徴とする。
第３４の態様は、第３３の態様において、少なくとも１つの自由形式デジタルインク注釈が、アンダーライン及び取り消し注釈のうちの１つである、ことを特徴とする。
第３５の態様は、第３３の態様において、少なくとも１つの自由形式デジタルインク注釈が、挿入注釈である、ことを特徴とする。
第３６の態様は、第３３の態様において、少なくとも１つの自由形式デジタルインク注釈が、コネクタ注釈である、ことを特徴とする。
第３７の態様は、第２０の態様において、前記プロセッサが、ビュー中の少なくとも１つの自由形式デジタルインク注釈のロケーションに依存してマッピングする、ことを特徴とする。
第３８の態様は、第３７の態様において、前記ロケーションが、第１ビューのマージン内にある、ことを特徴とする。
第３９の態様は、第２０の態様において、少なくとも１つの自由形式デジタルインク注釈が、少なくとも２つの自由形式デジタルインク注釈を含み、少なくとも１つのオブジェクトが、少なくとも２つのオブジェクトを含み、その各々が、少なくとも２つの自由形式デジタルインク注釈のうちの１つに対応し、前記プロセッサが、少なくとも２つのオブジェクトの併合に応答して、少なくとも２つの自由形式デジタルインク注釈を併合して、単一の自由形式デジタルインク注釈にする、ことを特徴とする。
第４０の態様は、第２０の態様において、前記ディスプレイがさらに、第２ビュー中の少なくとも１つの自由形式デジタルインク注釈の選択に応答して、第１ビューをディスプレイする、ことを特徴とする。
【００１９】
【発明の実施の形態】
図１は、本発明の電子システム１０の実施の形態の一例を示す。電子システム１０は、メモリ１４と通信するプロセッサ１２を含み、メモリ１４は本発明を実行するためのプログラム、ドキュメント、及び他のデータを格納する。プロセッサ１２はまた、入力／出力デバイス（Ｉ／Ｏ）２４を介して、ディスプレイ１６、キーボード１８、マウス２０、及びペン２２と通信する。キーボード１８、マウス２０、ペン２２、及び他の任意のインタフェースデバイス（図示せず）がユーザにより操作されて、電子システム１０の動作が制御される。電子システム１０の制御は、示されるインタフェースデバイスに制限されないと共に、特定のインタフェースデバイスを必要とすることもない。ディスプレイ１６は、スタンドアロン（独立型）ペンコンピュータか、従来のコンピュータにケーブルで接続されたタブレット、又は他の任意のタイプのディスプレイであってよい。
【００２０】
図1に示すように、システム１０は、プログラミングされた汎用コンピュータを用いて実行されるのが好ましい。しかし、システム１０は、特定目的コンピュータ、プログラミングされたマイクロプロセッサ又はマイクロコントローラ、及び任意の必要な周辺集積回路、ＡＳＩＣ又は他の集積回路、例えば個別エレメント回路のようなハードワイヤエレクトロニック又は論理回路、例えば、ＰＬＤ、ＰＬＡ、ＥＰＧＡ、ＰＡＬ等のプログラマブル論理デバイスであることも可能である。一般に、図４〜図１１で示すフローチャートを実行することのできる有限状態マシンを有する任意のデバイスを用いて、システム１０を実行することができる。
【００２１】
さらに、図1で示すように、メモリ１４は、スタティック又はダイナミックＲＡＭを用いて実行されるのが好ましい。しかし、メモリ１４はまた、フロッピーディスク及びディスクドライブ、書き込み可能な光学ディスク及びディスクドライブ、ハードドライブ、フラッシュメモリ等を用いて実行されることもできる。さらに、メモリ１４は、シングルメモリでも物理的離散メモリでもよいことを理解されたい。
【００２２】
さらに、メモリ１４、ディスプレイ１６、キーボード１８、マウス２０、ペン２２、及び入力／出力デバイス２４をプロセッサ１２に接続するリンク２６、２８、３０、３２、３４、３６は、ネットワーク（図示せず）にワイヤリンクされてもよいし、ワイヤレスリンクであってもよいことを理解されたい。これらのネットワークは、ローカルエリアネットワーク、ワイドエリアネットワーク、イントラネット、インターネット、又は他の任意の分散型処理及び格納ネットワークであることができる。
【００２３】
図２の（Ａ）は、ハイパーボリックブラウザ４０のビューのディスプレイを示す。ディスプレイ４０は、自由形式デジタルインク注釈４２を含む。図２の（Ｂ）は、図２の（Ａ）で示すドキュメントの代替ビューを示す。ビュー中の自由形式デジタルインク注釈のレイアウト表示がドキュメント４０中のオブジェクトのビューの変化と対応して、自由形式デジタルインク注釈４２とオブジェクトとの間の論理的関係の表示を維持するように、自由形式デジタルインク注釈４２がスケーリング及び移動されている。
【００２４】
図3の（Ａ）は、自由形式デジタルインク注釈５４、５６、及び５８を有するドキュメント５２の第1ビュー５０を示す。図3の（Ｂ）は、訂正された後のドキュメント５２の第2ビュー６０を示す。図3の（Ｂ）は、自由形式デジタルインク注釈５４、５６及び５８が、本発明の実施の形態により、ドキュメント５２中のオブジェクトに対する論理的関係に従って調整されることを示す。図3の（Ａ）で示すドキュメント５２の内容が編集されて、”ｉｓ ｓｏ ｍｕｃｈ ｆｕｎ ｔｏｄｏ”というテキストが６２の位置に挿入され、６４の位置の約2行のテキストが消去された。このような編集に応答して、５４の位置の注釈付けされたテキストは、２行にまたがり、「取り消し線」の自由形式デジタルインク注釈５４が基礎をなすテキストオブジェクトと共に次の行にまたがり、「取り消し線」の自由形式デジタルインク注釈５４と基礎をなすテキストオブジェクトとの間の論理的関係が示し続けられている。本発明はまた、５８の位置のインクストロークグループがマージンにおけるノートであることを認識し、システムは、このマージンにおけるマージンノート５８の垂直方向位置をわずかに調整して、マージンノート５８とリフローされた行との間の論理的関係を示し続けている。さらに、自由形式デジタルインク注釈５６は、６６の位置のアンカポイントと６８の位置のアンカポイントとの間で行が消去されたことに適応するように調整されて、テキストに対する論理的関係を示し続けている。
【００２５】
本発明の方法及びシステムの実施の形態は、少なくとも一つの３ステッププロセスを含む。第1ステップは、第１ビューにおいて自由形式デジタルインク注釈をオブジェクトに付加することである。第2ステップは、自由形式デジタルインク注釈のセグメントをビュー中の対応するオブジェクトにマッピングすることを含む。第3ステップは、ディスプレイが変化した時に、自由形式デジタルインク注釈と対応するオブジェクトとの間の論理的関係の表示を維持するように、自由形式デジタルインク注釈を移動したり、スケーリングしたり、あるいは変形したりすることを含む。
【００２６】
任意ではあるが、本発明の実施の形態において、自由形式デジタルインク注釈をナビゲーションマーカとして用いることもできる。例えば、ユーザはビューにおいて注釈を選択し、その注釈が作成されたときに存在した注釈付きビューに戻ることもできる。
【００２７】
本発明の実施の形態の変化するビューにおけるオブジェクトの自由形式インク注釈は、ビューに対するオブジェクトモデルに依存する。図2の（Ａ）及び（Ｂ）の例では、オブジェクトはハイパーボリックブラウザにおけるノードである。図3の（Ａ）及び（Ｂ）の例では、オブジェクトは、テキストキャラクタである。第3の例（図示せず）では、オブジェクトは、ビデオデータストリームにおいて実行されるオブジェクトトラッキングシステムからの出力である。
【００２８】
本発明の方法及びシステムの実施の形態は、基礎となるドキュメントにおいてアンカを配置することにより、ビュー中のオブジェクトに自由形式デジタルインク注釈をマッピングする。例えば、単純に囲みマーク、ハイライト、あるいは取り消し線マーク等は、ビュー中の自由形式デジタルインク注釈によりカバーされるキャラクタポジションの対応するスパンにアンカされる。図3の（Ａ）及び（Ｂ）で示す例では、マージンにおけるコメント５８は、対応するワード又はキャラクタ全ての近くのマージンにおけるドキュメント中の位置にアンカされる。
【００２９】
さらに複雑な自由形式デジタルインク注釈は、いくつかのアンカを有することが可能である。例えば、図3の（Ａ）で示すように、矢印６６につながれたサークル６８を含む自由形式デジタルインク注釈５６について考える。サークル６８は、サークルにより選択されるワード又はキャラクタのスパンにアンカされ、矢印６６の先はその端点にアンカされるが、サークル６８と矢印６６の先を結合するラインはアンカされない。
【００３０】
さらに複雑な自由形式デジタルインク注釈は、バーチャルワールド中の移動するオブジェクトに対する論理的関係を含み得る。このような注釈付けの例は、バーチャルワールドにおける部屋に対するドアの自由形式デジタルインク注釈付けを含む。ドアのレイアウトは、ドアが開閉されと、バーチャルワールドのビュー中で変化する。本発明の実施の形態の方法及びシステムは、ドアのビューが変化した時に自由形式デジタルインク注釈とドアとの間の論理的関係の表示を維持する。従って、ユーザはドアと共に回転する自由形式デジタルインク注釈を見ることができる。
【００３１】
この後の説明のために、以下のように定義する：ポジションとは、ビューにおける二次元座標である。ストロークとは、ビュー中のポジションのリストである。オフセットとは、ビューにおける或るポジションからの二次元オフセットである。領域とは、例えば境界ボックスやポジションのリストにより表わされる二次元ビューの一部である。キャラクタとは、テキスト文書におけるキャラクタである。テキストフロー中のキャラクタ同士の間のキャラクタポジションは、テキストが変化したときに維持される。マージンアンカは、左又は右のマージンに対するキャラクタのポジション及びブールフラッグである。シンプルアンカは、キャラクタ、キャラクタポジション、又はマージンアンカである。合成アンカは、オフセットを有する１対のシンプルアンカである。アンカは、シンプルアンカか合成アンカかのどちらかである。アンカされたストロークは、アンカ+オフセットのリストである。
【００３２】
本発明の方法及びシステムの実施の形態は、基礎となるアンカオブジェクトが動くと、アンカポイントを移動する。自由形式デジタルインクのアンカされないセグメントは、アンカされたポイント同士の間にフィットするようにストレッチされる。時には、基礎となるオブジェクトが離れるように移動するため、隣接するアンカポイントが離れるように移動することもある：例えば、（図３の（Ａ）及び（Ｂ）で示されるように）テキストフレーズが一行から二行にリフローする場合である。このような場合には、元々隣接していたポイント同士のつながりは、これらのポイント同士の散乱をなくすように維持され、これらのポイント同士の間のアンカされていないインクが除去できる。故に、図３の（Ｂ）で示すように、リフローされた自由形式デジタルインク注釈は分割され、２つの別個のテキストライン上にある２つのセグメント同士の間に延在するインクは示されていない。ストロークに対するアンカオブジェクトが消去されると、自由形式デジタルインク注釈は文書内の最も近い残りのオブジェクトに再度マッピングされる。自由形式デジタルインク注釈に対する全てのアンカオブジェクトが消去されると、注釈が消去されることができる。
【００３３】
自由形式デジタルインク注釈に対するアンカのタイプは、注釈の形状と、対応するオブジェクトの種類及び数とに依存する。以下に詳述するインクアンカを計算する１つの方法は、インクにおける各セグメントに対して最も近いオブジェクトを選択することである。あるいは、ストロークのタイプは、その形状から決定されるように、アンカオブジェクトを決定するために使用されることができる。別のケースでは、複数のアンカを用いる自由形式デジタルインク注釈は、ビューが変化した時に望ましくない乱れの原因となることがある。この問題を回避するために、本発明の実施の形態は、自由形式デジタルインク注釈のセグメントをひとまとめにして、アンカの数を減少する。
【００３４】
以前に手短に述べたように、本発明の方法及びシステムの実施の形態は、少なくとも３つのプロセスを用いる。第１プロセスは、ビュー中の自由形式デジタルインク注釈を受けとり、第２プロセスは、ビュー中のオブジェクトと自由形式デジタルインク注釈との間の論理的マッピングを計算し、第３プロセスは、変化したビューにおいて自由形式デジタルインク注釈をレンダリングする。任意の第４プロセスは、自由形式デジタルインク注釈を選択して、前の状態にナビゲーションする。
【００３５】
第１プロセスは、例えばマウスやペン等のポインティングデバイスからのデータポイントを感知し、ビューにおけるポイント同士を接続することにより、インクストロークをレンダリングし、インクストロークをひとまとめにして、１つの自由形式デジタルインク注釈を形成する。これらのインクストロークは、例えば単純な時間閾値により、グルーピングされ得る。第２プロセスは、自由形式デジタルインク注釈を入力として受け取り、オブジェクトと自由形式デジタルインク注釈との間でマッピングを行う。第３プロセスは、ドキュメントが変化する時にビューを更新する。このプロセスは、マッピングを用いて、ビューが変化する時にオブジェクト上に自由形式デジタルインク注釈をレンダリングする。
【００３６】
ここで述べる本発明の手順及び実施の形態は、ユーザがインクで注釈付けしている間は、オブジェクトが変化しないと仮定する。しかし、本発明の方法及びシステムは、注釈付けされているオブジェクトが変化しないアプリケーションに限定されない。例として、ビデオのケースでは、ビデオは、ユーザがマーキングする間、休止する可能性がある。あるいは、ビデオは、ユーザがマーキングしている間に継続していることもでき、ある時或るポイントにあるオブジェクトの状態を用いて、オブジェクトを解釈し、オブジェクトと自由形式デジタルインク注釈との間のマッピングを更新することができる。
【００３７】
第４プロセスは、ビュー上で選択を行い、自由形式デジタルインク注釈に対応するかどうかを判断し、自由形式デジタルインク注釈に対応する場合には、自由形式デジタルインク注釈が付けられたときに存在したビューと現在のビューを置き換える。このプロセスは、自由形式デジタルインク注釈から変化するビューの状態への追加マッピングを格納することが必要である。
【００３８】
本発明は、互いに分割され得るサブオブジェクトからオブジェクトが構築され得ることを認識する。１つの例は、ワードから構築されるテキストフレーズである。フレーズがサークルで囲む自由形式デジタルインク注釈を有する場合、及び、フレーズが２行にわたってリフローする場合、本発明は、この分割を認識し、自由形式デジタルインク注釈をいくつかのセグメントに分割して、それらが移動するときに、その各々を対応する基礎となるワードに追随させることにより、自由形式デジタルインク注釈をリフローするか、あるいはシステムが、サークルのマッチングするセグメント同士の間にラインを引くように選択することが可能である。あるいは、自由形式デジタルインク注釈は、個々のワードにおいて、より小さいスケールで複製されることも可能である。
【００３９】
ユーザは、フレーズを別のパラグラフにコピーすることができるが、これは、囲み注釈がなければ、分割の形態と考えたり、全く新しい無関係のオブジェクトとみなすこともできる。
【００４０】
逆に、オブジェクトは、より大きなエントリに併合されることもできる。例えば、注釈を付けられた２つのワード同士の間の、注釈付けされていないワードが消去されると、２つの注釈付けされたワードが「併合」され、注釈付けされた１つのフレーズが形成される。この２つの注釈は結合して、併合されたフレーズの単一の注釈が形成される。
【００４１】
オブジェクトはまた、完全に消えることもあり得る。例えば、テキストエディタ内のワードは、消去されることができる。この場合には、オブジェクトと関連づけられた自由形式デジタルインク注釈は、消えることができたり、周りのオブジェクト同士の間のロケーションに残ることもできる。
【００４２】
オブジェクトは変化することもできる。例えば、テキストエディタ内のユーザは、注釈付けされたワードを選択して、それを新らしいワードと置き換えることもできる。新しいワードは、元のオブジェクトの新たなバージョンとみなすことができる。元のワードの注釈は、新たなオブジェクトに関連付けられることが可能である。この場合、注釈はその形状を変え、例えば伸びたり縮んだりすることで、新たなワードに適応する。あるいは、注釈をディスプレイから除去することもできる。
【００４３】
本発明の方法及びシステムの実施の形態は、テキスト上のインクストロークをグルーピングして、単一の自由形式デジタルインク注釈を形成することも可能である。例として（制限するものではない）、注釈は、サークル、アンダーライン／取り消し、挿入、マージンノート、及びコネクタとして類別されることができる。サークルである注釈は、テキストを含むインクストロークサークルにより識別され、これらのインクストロークサークルは、インクストロークサークル内部のテキストオブジェクトにマッピングされる。アンダーライン／取り消し注釈は、テキスト上に直接存在するか、テキストの下に存在するかのどちらかである長尺状のマークにより識別される。これらの注釈は、上あるいは下に存在するテキストオブジェクトにマッピングされる。注釈は、注釈がテキストラインに入り込むと、挿入として識別され得る。挿入注釈は、例えば２つのキャラクタ同士の間など、挿入マークがテキスト中で表われるポジションにマッピングされる。マージンノート注釈は、注釈の垂直方法及び／又は水平方向ポジションに隣接するテキストにマッピングされる。コネクタ注釈は、注釈の終わりに表われる矢印又は輪縄（すなわち、サークルに線とシングルストロークをプラスしたもの）によるコネクタとして識別される。コネクタ注釈は、サークルとコネクタ部分に分割される。コネクタ注釈は、２つのオブジェクトに独立してマッピングされる。第１オブジェクトは、注釈の始まりに発生するオブジェクトであり、第２オブジェクトは、注釈の終わり付近に発生する。これらのオブジェクトは、テキスト内のポジションであってもよいし、あるいは他の注釈であってもよい。例えば、輪縄のライン部分の一端は、テキストにマッピングするサークル注釈にマッピングされる。別の例は、テキストからマージン注釈へのラインである。このラインの一端は、テキストにマッピングされ、他端は、マージン注釈にマッピングされる。
【００４４】
図１２は、自由形式デジタルインク注釈のいくつかのタイプを例示している。図１２は、文書４００のディスプレイを示し、文書４００は、サークル（又は囲み）注釈４０２及び４０４、アンダーライン注釈４０６、取り消し注釈４０８及び４１０、挿入注釈４１２及び４１４、マージン注釈４１６、マージン注釈に対するライン４１８（これはマージンノート４２０に関連する）、矢印コネクタ４２２を含む。多様な実施の形態の説明と共に示される自由形式デジタルインク注釈のタイプは、例示であって、注釈の特定の実施形態／タイプあるいはグラマに限定するものではないことを理解されたい。
【００４５】
本発明の方法及びシステムは、自由形式デジタルインク注釈に対してアンカが決定される概念に基づく。アンカは、オブジェクトからのオフセットである。自由形式デジタルインク注釈は、自由形式デジタルインク注釈の基礎のビューのオブジェクト構造にマッピングされる。マッピングは、例えばキャラクタ、フレーズ及びパラグラフ等の分類体系的なオブジェクトに対して行われることが可能であることが理解されるべきであるが、簡明さのために、以下は、単一レベルのマッピング：自由形式デジタルインク注釈とキャラクタ若しくはキャラクタ同士の間のポジションとの間：について、説明する。消去されたキャラクタに対して、テキストエディタはキャラクタとそれらの対応するキャラクタポジションとを消去されたとしてマークするが、テキストエディタは、キャラクタポジションと残りのキャラクタの間のいくつかのロケーションとの間の対応関係を維持する。
【００４６】
本発明の方法及びシステムの実施の形態は、キャラクタのシーケンス及び表現を格納するテキストエディタに依存する。この実施の形態は、キュラクタポジション、キャラクタ若しくはキャラクタのレンジが消去されたかどうかを決定することができ；キャラクタポジションに対応するビュー中のポジションを獲得することができ；キャラクタに対応するビュー中の領域を獲得することができ；キャラクタポジションに対応する左右のマージンポジションのレンジを得ることができ；ビュー中の領域に対応するキャラクタポジションのレンジを獲得することができ；各サブルトロークが単一キャラクタ又はキャラクタ同士の間のポジションに対応するように自由形式デジタルインク注釈をサブストローク又はセグメントのセットに分割することができる。
【００４７】
本発明の方法及びシステムの或る実施の形態はまた、アンカストロークを格納する注釈データベースを用いることも可能である。注釈データベースをアクセスして、アンカストロークをデータベースに追加したり、アンカストロークをデータベースから消去したり、アンカストロークの全てのリストを取得したりすることが可能である。
【００４８】
図４〜図９は、本発明の実施の形態に従って、基礎となるビュー中のオブジェクトに自由形式デジタルインク注釈をマッピングするためのコントロールルーチンを概説するフローチャートである。フローチャートは、以下の疑似コードに近似する。
【００４９】
まず、ストロークのグループを、サークル、アンダーライン／取り消し、挿入、マージンノート、又はコネクタとして分類する。これには、ストロークのいくつかを分割することが必要となる可能性があり、その結果いくつかのグループのストロークが発生し得る。次いで、
新たなグループのストロークがコネクトするどのグループの後にもコネクタが現れるように、新たなグループのストロークを分類する。
新たなグループのストロークに対して、
0003807181.tif 000002
0003807181.tif 000003
0003807181.tif 000004
0003807181.tif 000005
【００５０】
図４〜図９で示すコントロールルーチンは、ステップＳ１００で始まり、ステップＳ１０２に続く。ステップＳ１０２で、コントロールルーチンは、インクストロークを、サークル、アンダーライン／取り消し、挿入、マージン又はコネクタ等の注釈にグルーピングする。これには幾つかのストロークを分割することが必要かもしれず、その結果、幾つかのストロークグループが発生し得ることを理解されたい。次いで、コントロールルーチンはステップＳ１０４に進行し、ここで注釈は、コネクトされるあらゆるグループの後にコネクタが現れるように、分類される。次に、コントロールルーチンは、ステップＳ１０６に続き、これらの注釈の全てを反復処理するループを開始する。コントロールルーチンは、その注釈がサークルであるか、アンダーラインであるのか、あるいは取り消しであるのかを決定する。ステップＳ１０６で、コントロールルーチンにより、この注釈がサークル、アンダーライン又は取り消しであることが決定された場合には、コントロールルーチンは、ステップＳ１１６にジャンプする。一方、ステップＳ１０６で、この注釈がサークル、アンダーライン、又は取り消しを含まないことをコントロールルーチンが決定した場合、コントロールルーチンはステップＳ１０８に続く。ステップＳ１０８では、コントロールルーチンは、この注釈がインク挿入であるかどうかを決定する。ステップＳ１０８で、コントロールルーチンにより、現行注釈がインク挿入であると決定された場合には、コントロールルーチンはステップＳ１３８にジャンプする。一方、コントロールルーチンにより、現行注釈がインク挿入ではないことを決定された場合には、コントロールルーチンは、ステップＳ１１０に進行する。ステップＳ１１０で、コントロールルーチンは、現行注釈がマージン注釈であるかどうかを決定する。ステップＳ１１０で、現行注釈がマージン注釈であるとコントロールルーチンが決定した場合には、コントロールルーチンはステップＳ１５８にジャンプする。他方、ステップＳ１１０で、現行注釈がマージン注釈でないことをコントロールルーチンが決定した場合には、コントロールルーチンはステップＳ１８６にジャンプする。
【００５１】
図５〜図９のプロセス（これについては以下に詳述する）の１つを完了した後、コントロールルーチンは、ステップＳ１１２に進行し、まだ注釈を処理する必要があるかどうかを決定する。ステップＳ１１２で、コントロールルーチンが、注釈をまだ処理する必要があると決定した場合、コントロールルーチンはステップＳ１０６にリターンする。一方、コントロールルーチンが、もう注釈を処理する必要がないと決定した場合には、コントロールルーチンはステップＳ１１４に続き、コントロールは図４〜図９のコントロールルーチンが動作する環境に戻る。
【００５２】
ステップＳ１１６で、コントロールルーチンは、各々が対応するシングルキャラクタを有するサブストロークのリストに注釈を分割する。従って、コントロールルーチンは、注釈を分割して、サブストローク／キャラクタのぺアにする。コントロールルーチンはステップＳ１１８に続き、現行注釈中のサブストローク／キャラクタペアの各々を反復処理するループを開始する。ステップＳ１１８で、コントロールルーチンは現行キャラクタに対応する新たなシンプルアンカを作成する。コントロールルーチンはステップＳ１２０に続き、現行キャラクタに対応するビュー内の領域を獲得する。コントロールルーチンは次いで、ステップＳ１２２に進行し、アンカポジションをビュー中の領域の中心にセットする。コントロールルーチンはステップＳ１２４に進行し、シンプルアンカに基づく新たなアンカストロークを作成し、ステップＳ１２６に続く。ステップＳ１２６で、コントロールルーチンはサブストロークからアンカポジションをマイナスしたポジションにオフセットをセットし、ステップＳ１２８に進行する。ステップＳ１２８では、コントロールルーチンはオフセットのアンカストロークのリストにオフセットを追加し、ステップＳ１３０に進行する。ステップＳ１３０では、コントロールルーチンは、現行サブストローク中にまだポジションが存在するかどうかを決定する。コントロールルーチンがステップＳ１３０で現行サブストローク中にまだポジションが存在すると決定した場合には、コントロールルーチンはステップＳ１２６にリターンする。一方、コントロールルーチンが現行サブストローク中にもうポジションが存在しないことを決定した場合には、コントロールルーチンは、ステップＳ１３２に続く。ステップＳ１３２では、コントロールルーチンはアンカストロークを注釈データベースに追加し、ステップＳ１３４に続く。ステップＳ１３４では、コントロールルーチンは、現行注釈中にサブストローク／キャラクタペアがまだ存在するかどうかを決定する。ステップＳ１３４で、コントロールルーチンが現行注釈中にまだサブストローク／キャラクタペアが存在することを決定した場合には、コントロールルーチンはステップＳ１１８にリターンする。一方、コントロールルーチンがステップＳ１３４で、現行注釈中にもうサブストローク／キャラクタペアが存在しないことを決定した場合には、コントロールルーチンはステップＳ１３６に続き、ここでコントロールはステップＳ１１２にリターンする。
【００５３】
ステップＳ１３８で、コントロールルーチンは、注釈がテキスト中に入り込むキャラクタポジションに現行キャラクタポジションをセットする。コントロールルーチンは次いで、ステップＳ１４０に続き、現行キャラクタポジションに対応するポジションを獲得する。コントロールルーチンはステップＳ１４２に続き、ここでアンカポジションが現行キャラクタポジションにセットされる。コントロールルーチンはステップＳ１４４に進行し、注釈中の全てのストロークを処理するループを開始する。ステップＳ１４４で、コントロールルーチンはアンカとしての現行キャラクタポジションに基づいて、新たなアンカストロークを作成し、ステップＳ１４６に続く。ステップＳ１４６では、コントロールルーチンはストロークからアンカポジションをマイナスした現行キャラクタポジションにオフセットをセットし、ステップＳ１４８に進行する。ステップＳ１４８で、コントロールルーチンはオフセットのアンカストロークのリストにオフセットを追加し、ステップＳ１５０に続く。ステップＳ１５０で、コントロールルーチンは、現行ストローク中にまだポジションが存在するかどうかを決定する。ステップＳ１５０で、コントロールルーチンが現行ストローク中にまだポジションが存在することを決定した場合には、コントロールルーチンはステップＳ１４６にリターンする。一方、ステップＳ１５０で、コントロールルーチンが現行ストローク中にポジションがもう存在しないことを決定した場合には、コントロールルーチンはステップＳ１５２に進行する。ステップＳ１５２では、コントロールルーチンは注釈データベースにアンカストロークを追加し、ステップＳ１５４に進行する。ステップＳ１５４では、コントロールルーチンは、現行注釈中にまだストロークが存在するかどうかを決定する。ステップＳ１５４で、コントロールルーチンが、現行注釈中にストロークがまだ存在することを決定した場合には、コントロールルーチンはステップＳ１４４にリターンする。他方、コントロールルーチンがステップＳ１５４で、現行注釈中にもうストロークが存在しないと決定した場合、コントロールルーチンはステップＳ１１２に続く。
【００５４】
ステップＳ１５８で、コントロールルーチンは、現行注釈の垂直方向長さに対応する第１キャラクタポジションにキャラクタポジションをセットする。コントロールルーチンは次いで、ステップＳ１６０に進み、ここでテキストエディタが、キャラクタポジションに対応する左右のマージンポジションを獲得し、コントロールルーチンはステップＳ１６２に続く。ステップＳ１６２では、コントロールルーチンは、注釈が大部分、左マージンの左にあるかどうかを決定する。ステップＳ１６２で、コントロールルーチンが、左マージンの左に注釈が大部分存在することを決定した場合には、コントロールルーチンはステップＳ１６４に続く。他方、コントロールルーチンが、左マージンの左に注釈がほとんど存在しないことを決定した場合、コントロールルーチンはステップＳ１６８にジャンプする。ステップＳ１６４で、コントロールルーチンはマージンアンカをＬＥＦＴにセットし、コントロールルーチンはステップＳ１６６に続く。ステップＳ１６６では、コントロールルーチンはアンカポジションを左マージンにセットし、ステップＳ１７２に進行する。
【００５５】
ステップＳ１６８で、コントロールルーチンはマージンアンカをＲＩＧＨＴにセットして、ステップＳ１７０に進行する。ステップＳ１７０では、コントロールルーチンはアンカポジションを右マージンにセットし、ステップＳ１７２に続く。ステップＳ１７２では、コントロールルーチンは現行注釈中の全ストロークを処理するループを開始する。ステップ１７２で、コントロールルーチンはマージンアンカに基づいて新たなアンカストロークを作成し、ステップＳ１７４に続く。ステップＳ１７４では、コントロールルーチンは現行ストロークからアンカポジションをマイナスしたポジションにオフセットをセットし、ステップＳ１７６に進行する。ステップＳ１７６では、コントロールルーチンはオフセットのアンカストロークのリストにオフセットを追加し、ステップＳ１７８に続く。ステップＳ１７８では、コントロールルーチンは、現行ストローク中にまだポジションが存在するかどうかを決定する。ステップＳ１７８で、コントロールルーチンが現行ストローク中にまだポジションが存在することを決定した場合には、コントロールルーチンはステップＳ１７４にリターンする。他方、ステップＳ１７８でコントロールルーチンが現行ストローク中にもうポジションが存在しないと決定した場合、コントロールルーチンはステップＳ１８０に続く。ステップＳ１８０で、コントロールルーチンは、アンカストロークを注釈データベースに追加し、ステップＳ１８２に続く。ステップＳ１８２では、コントロールルーチンは、現行注釈中にまだストロークが存在するかどうかを決定する。ステップＳ１８２で、コントロールルーチンが現行注釈中にまだストロークが存在すると決定した場合には、コントロールルーチンはステップＳ１７２にリターンする。他方、コントロールルーチンが現行注釈中にもうストロークが存在しないと決定した場合、コントロールルーチンはステップＳ１５６に続き、ここでコントロールルーチンはステップＳ１１２にリターンする。
【００５６】
ステップＳ１８６で、コントロールルーチンは現行注釈中の全てのスターティングポジション又はエンディングポジションを処理するループを開始する。ステップＳ１８６で、コントロールルーチンは、別の注釈若しくはオブジェクトの近くに現行のスターティングポジション及びエンディングポジションが存在するかどうかを決定する。ステップＳ１８６で、現行ポジションが別の注釈の近くにあることをコントロールルーチンが決定した場合、コントロールルーチンはステップＳ１８８に進む。他方、コントロールルーチンがステップＳ１８６で、現行ポジションが別の注釈付近にないことを決定した場合には、コントロールルーチンはステップＳ１９２に続く。ステップＳ１８８で、コントロールルーチンは、シンプルアンカを現行注釈に対するアンカとしてセットし、ステップＳ１９０に続く。ステップＳ１９０で、コントロールルーチンは、アンカポジションをシンプルアンカの現行ポジションとしてセットし、ステップＳ１９６に続く。ステップＳ１９２で、コントロールルーチンはシンプルアンカを、現行のスターティングポジション又はエンディングポジション近くにあるオブジェクトに対するアンカとし、ステップＳ１９４に進行する。ステップＳ１９４では、コントロールルーチンはアンカポジションをオブジェクトの現行ポジションにセットし、ステップＳ１９６に進行する。ステップＳ１９６では、コントロールルーチンは現行ポジションからアンカポジションをマイナスしたポジションにオフセットをセットし、ステップＳ１９８に進む。ステップＳ１９８では、コントロールルーチンは、現行注釈中にスターティングポジション又はエンディングポジションがまだ存在するかどうかを決定する。ステップＳ１９８でコントロールルーチンが現行注釈中にスターティングポジション又はエンディングポジションがまだ存在することを決定した場合、コントロールルーチンはステップＳ１８６にリターンする。他方、コントロールルーチンがステップＳ１９８で、現行注釈中にスターティングポジション又はエンディングポジションがもう存在しないことを決定した場合には、コントロールルーチンはステップＳ２００に進行する。
【００５７】
ステップＳ２００で、コントロールルーチンは現行注釈中の全てのストロークを処理するループを開始する。ステップＳ２００で、コントロールルーチンはスターティングポジション及びエンディングポジションに対応するアンカに基づいて、合成アンカを有するアンカストロークを作成し、ステップＳ２０２に進む。ステップＳ２０２で、コントロールルーチンは、現行ストローク中の現行ポジションからスターティングポジションをマイナスしたポジションにオフセットをセットし、ステップＳ２０４に進行する。ステップＳ２０４では、コントロールルーチンはスターティングポジションとエンディングポジションとの間の距離でオフセットを割り、ステップＳ２０６に進行する。ステップＳ２０６では、コントロールルーチンはエンディングポジションからスターティングポジションを引いたものに等しい角度だけ、原点まわりにオフセットを回転させ、ステップＳ２０８に進む。ステップＳ２０８では、コントロールルーチンはオフセットのアンカストロークリストにオフセットを追加し、ステップＳ２１０に進む。ステップＳ２１０では、コントロールルーチンは、現行ストローク中にまだポジションが存在するかどうかを決定する。ステップＳ２１０で、コントロールルーチンが、現行ストローク中にまだポジションが存在することを決定した場合には、コントロールルーチンはステップＳ２０２にリターンする。他方、コントロールルーチンが、ステップＳ２１０において、現行ストローク中にもうポジションが存在しないことを決定した場合には、コントロールルーチンはステップＳ２１２に進行する。ステップＳ２１２では、コントロールルーチンは合成アンカを注釈データベースに追加し、ステップＳ２１４に続く。ステップＳ２１４では、コントロールルーチンは、現行注釈中にまだストロークが存在するかどうかを決定する。ステップＳ２１４において、コントロールルーチンが現行注釈中にまだストロークが存在することを決定した場合、コントロールルーチンはステップＳ２００にリターンする。他方、コントロールルーチンが現行注釈中にストロークがもう存在しないことを決定した場合には、コントロールルーチンはステップＳ２１６に続き、ここでコントロールルーチンはステップＳ１１２にリターンする。
【００５８】
図１０及び図１１は、変化されたビューにおいて自由形式デジタルインク注釈をレンダリングするコントロールルーチンを示す。フローチャートは、以下の疑似ルーチンに近似する。
【００５９】
注釈データベースを用いて、全てのアンカストロークのリストを得る
0003807181.tif 000006
0003807181.tif 000007
【００６０】
コントロールルーチンはステップＳ３００で始まり、ステップＳ３０２に続く。ステップＳ３０２で、コントロールルーチンは注釈データベースから全アンカストロークのリストを得て、ステップＳ３０４に進行する。ステップＳ３０４で、コントロールルーチンは、現行のアンカストロークからアンカとオフセットのリストを抽出し、ステップＳ３０６に進む。ステップＳ３０６で、コントロールルーチンはストロークを新たなストロークとし、ステップＳ３０８に進行する。ステップＳ３０８で、コントロールルーチンは、アンカがシンプルアンカであるか否かを決定する。ステップＳ３０８で、コントロールルーチンが、アンカがシンプルアンカであることを決定した場合、コントロールルーチンはステップＳ３１０に続く。他方、コントロールルーチンがステップＳ３０８で、アンカがシンプルアンカでないことを決定した場合、コントロールルーチンはステップＳ３２６にジャンプする。ステップＳ３１０で、コントロールルーチンは、キャラクタ若しくはキャラクタポジションが消去されたか否かを決定する。ステップＳ３１０で、コントロールルーチンが、キャラクタ若しくはキャラクタポジションが消去されたことを決定した場合、コントロールルーチンはステップＳ３２０にジャンプする。他方、コントロールルーチンが、キャラクタ若しくはキャラクタポジションが消去されなかったことを決定した場合、コントロールルーチンはステップＳ３１２に続く。ステップＳ３１２で、コントロールルーチンはアンカポジションを、オフセットに対するアンカのポジションにセットし、ステップＳ３１４に続く。コントロールルーチンはステップＳ３１４で、アンカポジションをプラスしたストロークからのオフセットを新たなポジションとし、ステップＳ３１６に続く。ステップＳ３１６では、コントロールルーチンはストロークに新たなポジションを追加し、ステップＳ３１８に続く。ステップＳ３１８では、コントロールルーチンは、アンカに対するオフセットがまだ存在するかどうかを決定する。ステップＳ３１８で、コントロールルーチンによりオフセットがまだ存在することが決定されれば、コントロールルーチンはステップＳ３１４にリターンする。他方、コントロールルーチンにより、もうオフセットが存在しないことが決定されれば、コントロールルーチンはステップＳ３２０にジャンプする。ステップＳ３２０では、コントロールルーチンはビュー上にストロークをレンダリングし、ステップＳ３２２に進行する。ステップＳ３２２では、コントロールルーチンは注釈データベース中にアンカストロークが存在するかどうかを決定する。ステップＳ３２２で、注釈データベース中にまだアンカストロークが存在することをコントロールルーチンが決定した場合には、コントロールルーチンはステップＳ３０４にリターンする。他方、ステップＳ３２２で、注釈データベース中にもうアンカストロークが存在しないことをコントロールルーチンが決定した場合には、コントロールルーチンはステップＳ３２４に進行し、ここでコントロールルーチンは、動作する環境にコントロールをリターンする。
【００６１】
ステップＳ３２６で、コントロールルーチンは、第１アンカ及び第２アンカの基礎をなすキャラクタ又はキャラクタポジションが消去されたかどうかを決定する。コントロールルーチンがステップＳ３２６で、このようなキャラクタ又はキャラクタポジションが消去されたことを決定した場合、コントロールルーチンはステップＳ３２０にリターンする。他方、コントロールルーチンがステップＳ３２６で、第１アンカ及び第２アンカの基礎をなすキャラクタ又はキャラクタポジションが消去されなかったと決定した場合、コントロールルーチンはステップＳ３２８に進行する。ステップＳ３２８では、コントロールルーチンは、第１アンカに第１オフセットをプラスしたポジションにスターティングポジションをセットし、ステップＳ３３０に進行する。ステップＳ３３０では、コントロールルーチンは、第２アンカに第２オフセットをプラスしたポジションにエンディングポジションをセットし、ステップＳ３３２に進行する。ステップＳ３３２では、コントロールルーチンは、エンディングポジションからスターティングポジションをマイナスしたものに等しい角度だけ回転させたアンカストロークからのオフセットに新たなオフセットをセットし、ステップＳ３３４に進行する。ステップＳ３３４では、コントロールルーチンは、新たなオフセットに、スターティングポジションとエンディングポジションの間の距離を乗算し、ステップＳ３３６に進行する。ステップＳ３３６では、コントロールルーチンは、新たなオフセットにスターティングポジションをプラスしたものに新たなポジションをセットし、ステップＳ３３８に進行する。ステップＳ３３８で、コントロールルーチンは、新たなポジションをストロークに追加し、ステップＳ３４０に続く。ステップＳ３４０では、コントロールルーチンはオフセットがまだ存在しているかどうかを決定する。ステップＳ３４０で、コントロールルーチンがオフセットがまだ存在していることを決定した場合には、コントロールルーチンはステップＳ３３２にリターンする。他方、コントロールルーチンがステップＳ３４０で、もうオフセットが存在しないことを決定した場合には、コントロールルーチンはステップＳ３２０にリターンする。
【００６２】
自由形式デジタルインク注釈は、ペン、マウス、又は時を超えて存在する他のポインティングデバイスを用いて作成される任意の形状の可視インクストロークを意味するものとする。ペンベースの入力デバイスは、ペンタブレット、ペンディスプレイ、ペンディスプレイタブレット、ペンコンピュータ及び／又はタッチスクリーンを含むものとする。本発明のシステム及び方法は、インクストロークの形状又は形態的特徴から何らかの意味を推論するが、一旦それらを認識すると、インクストロークを除去しない。
【００６３】
概して電子システムについて詳述してきたが、本発明の方法及びシステムは、変化するビューをディスプレイする任意のエレクトロニックブック及びドミュメントリーダにも適用可能であることを理解されたい。エレクトロニックブック及びドキュメントリーダは、ペン等のポインティングデバイスを用いてアクセスすることができ、自由形式デジタルインク注釈を入力として受け取る任意の電子的携帯デバイスを含む。エレクトロニックブック及びドキュメントリーダは、制限のない他の付加的な特徴を含み得る。
【００６４】
「テキスト」という言葉は、テキスト、デジタルインク、オーディオ、ビデオ、又はドキュメントの構造を含むドキュメントの他の任意の内容を含むものとする。オブジェクトは、例として（制限するものではない）、キャラクタ、ワード、フレーズ、センテンス、パラグラフ、ライン、セクション、チャプタ、シングルイメージ中又はビデオのようなイメジストリーム等の中のコンピュータビジョンにより識別可能なイメージの一部といった、ディスプレイの任意のコンポーネントであるものとする。
【００６５】
なお、ドキュメントの構造における変化は、オブジェクトの挿入、消去、コピー、及び移動等を含むものとする。また、ドキュメントのレイアウト構造における変化は、オブジェクトのリフロー、オブジェクトのサイズ変更、オブジェクトの回転、オブジェクトのストレッチング、オブジェクトの歪曲、オブジェクトのモルフィング等を含むものとする。
【００６６】
本発明を特定の実施の形態と共に述べてきたが、多くの変更及び変形が当業者には明らかであろう。従って、本発明の好適な実施の形態は、例示であって制限するものではない。本発明の主旨及び範囲から逸脱することなく、多様な変更を行うことができる。
【図面の簡単な説明】
【図１】本発明の変化するビューをディスプレイするためのシステムの実施の形態のブロック図である。
【図２】（Ａ）は、本発明の実施の形態に従う、注釈を付けられたハイパボリックブラウザのディスプレイであり、（Ｂ）は、変化されたビューと、本発明の実施の形態に従い、ビュー中の変化に従って調整された自由形式デジタルインク注釈とを有する、（Ａ）の注釈付きハイパボリックブラウザを示す。
【図３】（Ａ）は、注釈を付けられたドキュメントのディスプレイを示し、（Ｂ）は、ドキュメント変更後の（Ａ）の注釈付きドキュメントを示すと共に、本発明の実施の形態に従った自由形式デジタルインク注釈に対する調整を示している。
【図４】本発明の実施の形態に従ってディスプレイ中のオブジェクトに自由形式デジタルインク注釈をマッピングするコントロールルーチンを概説するフローチャートを示す。
【図５】本発明の実施の形態に従ってディスプレイ中のオブジェクトに自由形式デジタルインク注釈をマッピングするコントロールルーチンを概説するフローチャートを示す。
【図６】本発明の実施の形態に従ってディスプレイ中のオブジェクトに自由形式デジタルインク注釈をマッピングするコントロールルーチンを概説するフローチャートを示す。
【図７】本発明の実施の形態に従ってディスプレイ中のオブジェクトに自由形式デジタルインク注釈をマッピングするコントロールルーチンを概説するフローチャートを示す。
【図８】本発明の実施の形態に従ってディスプレイ中のオブジェクトに自由形式デジタルインク注釈をマッピングするコントロールルーチンを概説するフローチャートを示す。
【図９】本発明の実施の形態に従ってディスプレイ中のオブジェクトに自由形式デジタルインク注釈をマッピングするコントロールルーチンを概説するフローチャートを示す。
【図１０】本発明の実施の形態に従って、変化されたビュー上で自由形式デジタルインク注釈をレンダリングするコントロールルーチンを概説するフローチャートを示す。
【図１１】本発明の実施の形態に従って、変化されたビュー上で自由形式デジタルインク注釈をレンダリングするコントロールルーチンを概説するフローチャートを示す。
【図１２】異なるタイプの自由形式デジタルインク注釈の幾つかの例を示す。
【符号の説明】
１０    電子システム
１２    プロセッサ
１４    メモリ
１６    ディスプレイ
１８    キーボード
２０    マウス
２２    ペン
２４    入力／出力デバイス
【図１】
0003807181.tif 000008
【図２】
0003807181.tif 000009
【図３】
0003807181.tif 000010
【図４】
0003807181.tif 000011
【図５】
0003807181.tif 000012
【図６】
0003807181.tif 000013
【図７】
0003807181.tif 000014
【図８】
0003807181.tif 000015
【図９】
0003807181.tif 000016
【図１０】
0003807181.tif 000017
【図１１】
0003807181.tif 000018
【図１２】
0003807181.tif 000019