(57)【要約】【課題】他のアノテーションの削除により生じるアノテーションの埋め込み位置のずれを防ぐことができるアノテーションプログラム、アノテーション装置及びアノテーション方法を提供することを目的とする。【解決手段】コンピュータを、Ｗｅｂ資源を受信する受信手段１０と、Ｗｅｂ資源に対する操作ログをアノテーション操作ログ記憶手段２１から取り出すアノテーション操作ログ取得手段１２と、操作ログを時系列に選択し、操作ログがアノテーションの付与操作であるとき、Ｗｅｂ資源に埋め込むアノテーションにマーカを付与するアノテーションマーカ付与手段１４と、操作ログを時系列に選択し、操作ログがアノテーションの削除操作であるとき、マーカを利用して、Ｗｅｂ資源から削除操作の対象であるアノテーションを特定して削除するアノテーション特定削除手段１６，１７として動作させることにより上記課題を解決する。【選択図】  図３
2010204863.tif 000002
【特許請求の範囲】
【請求項１】
アノテーション情報を管理するコンピュータを動作させるアノテーションプログラムであって、
前記コンピュータを、
Ｗｅｂ資源を受信する受信手段と、
受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの付与操作であるとき、前記Ｗｅｂ資源に埋め込むアノテーションに、前記アノテーションを識別可能なマーカを付与するアノテーションマーカ付与手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの削除操作であるとき、前記マーカを利用して、前記Ｗｅｂ資源に埋め込まれている削除操作の対象であるアノテーションを特定して削除するアノテーション特定削除手段と
して動作させるアノテーションプログラム。
【請求項２】
前記コンピュータを、
前記アノテーション操作ログ記憶手段に記憶されているアノテーションの付与操作及び削除操作の操作ログの対のうち、削除しても他のアノテーションの付与位置に影響を与えないアノテーションの付与操作及び削除操作の操作ログの対を分析するアノテーション位置影響分析手段と、
削除しても他のアノテーションの付与位置に影響を与えないアノテーションの付与操作及び削除操作の操作ログの対を前記アノテーション操作ログ記憶手段から削除するように書き換えるアノテーション操作ログ書き換え手段と
して動作させる請求項１記載のアノテーションプログラム。
【請求項３】
アノテーション情報を管理するコンピュータを動作させるアノテーションプログラムであって、
前記コンピュータを、
Ｗｅｂ資源を受信する受信手段と、
受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログが既に削除されているアノテーションの付与操作であるとき、他のアノテーションの付与位置に影響を与え、前記アノテーションの作用時に影響を与えないダミーアノテーションの生成を行うダミーアノテーション生成手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログが存在するアノテーションの付与操作であるとき、前記アノテーションを前記Ｗｅｂ資源に埋め込み、前記操作ログが既に削除されているアノテーションの付与操作であるとき、前記ダミーアノテーションを前記Ｗｅｂ資源に埋め込むアノテーション埋込手段と
して動作させるアノテーションプログラム。
【請求項４】
アノテーション情報を管理するアノテーション装置であって、
Ｗｅｂ資源を受信する受信手段と、
受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの付与操作であるとき、前記Ｗｅｂ資源に埋め込むアノテーションに、前記アノテーションを識別可能なマーカを付与するアノテーションマーカ付与手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの削除操作であるとき、前記マーカを利用して、前記Ｗｅｂ資源に埋め込まれている削除操作の対象であるアノテーションを特定して削除するアノテーション特定削除手段と
を有するアノテーション装置。
【請求項５】
アノテーション情報を管理するアノテーション装置のアノテーション方法であって、
Ｗｅｂ資源を受信する受信ステップと、
受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得ステップと、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの付与操作であるとき、前記Ｗｅｂ資源に埋め込むアノテーションに、前記アノテーションを識別可能なマーカを付与するアノテーションマーカ付与ステップと、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの削除操作であるとき、前記マーカを利用して、前記Ｗｅｂ資源に埋め込まれている削除操作の対象であるアノテーションを特定して削除するアノテーション特定削除ステップと
を有するアノテーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アノテーションプログラム、アノテーション装置及びアノテーション方法に係り、特に利用者からの付与要求に基づき情報へアノテーションを付与し、又は利用者からの参照要求に基づき情報にアノテーションを作用させるアノテーションプログラム、アノテーション装置及びアノテーション方法に関する。
【背景技術】
【０００２】
近年、インターネットやイントラネット等のネットワーク上の情報資源（例えばＷｅｂページ）に二次情報としてアノテーションを付与するＷｅｂアノテーション技術が、よく利用されるようになった。
【０００３】
Ｗｅｂアノテーション技術はネットワーク上のＷｅｂページに対してＷｅｂページの作者と異なる別の第三者が、そのＷｅｂページに対して、付箋，下線，又はマーカなどのアノテーションを付与し、そのＷｅｂページの閲覧（参照）時に、付与したアノテーションをＷｅｂページと同時に表示したり、又は付与したアノテーションに基づいた処理をＷｅｂページに加えたりするものである。
【０００４】
通常はアノテーションが付与されたときに、そのＷｅｂページに対する一意の名前（例えばＵＲＬ）を保持しておき、そのＵＲＬで指定されるＷｅｂページの閲覧時に、Ｗｅｂページに付与したアノテーションを復元することにより、時間をおいてのＷｅｂページの閲覧や、アノテーションを付与したアノテータと異なる第三者による閲覧であってもアノテーションを復元できる。
【０００５】
このようなＷｅｂアノテーション技術は、情報共有、校正支援、レビュー支援、調査支援、広告システムなど、広く利用されている。
【０００６】
従来、Ｗｅｂページに対してアノテーションを付与し、付与したアノテーションを複数の利用者で共有する場合は、共通サーバにＷｅｂページのＵＲＬと、そのＵＲＬで示されるＨＴＭＬファイルに付与されたアノテーションの位置及び内容とを管理テーブルに登録することがよく行われている。
【０００７】
利用者がＵＲＬを指定してＷｅｂサーバにＨＴＭＬファイルを要求すると、共通サーバはＷｅｂサーバからＨＴＭＬファイルを取得する。次に、共通サーバは管理テーブルを参照し、指定されたＵＲＬに対応するアノテーションが登録されていれば、アノテーションをＨＴＭＬファイルに埋め込んで利用者のクライアントに送信する。共通サーバは、上記のようにすることで、Ｗｅｂページに付与されたアノテーションを複数の利用者で共有させることができる（例えば引用文献１参照）。
【０００８】
なお、引用文献１に記載されている技術は、電子書籍のようなデジタルコンテンツを対象としているため、アノテーションの位置の特定に、ページ識別子と行識別子とを用いている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−１５５７６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、アノテーション付与時とアノテーション復元時とは時間的なずれがあるため、アノテーションを付与してから復元するまでの間に、そのＷｅｂページに対して他のアノテーションが付与される操作や付与されていたアノテーションが削除される操作が行われているかもしれないし、あるいはアノテーションの対象となっているＷｅｂページ自身がニュース記事やブログなどのように変更されているかもしれない。
【００１１】
Ｗｅｂアノテーション技術では、このようなアノテーションの操作やＷｅｂページの変更などがあっても、アノテーション付与時の意図した位置（ＸＹ座標のような物理的な位置ではなく、Ｗｅｂページとの関係をとらえた位置）にアノテーションを復元したいという要望があった。
【００１２】
実際のＷｅｂページは、ＨＴＭＬやＸＭＬ等のＷｅｂページ記述言語（以下、ＨＴＭＬを例に説明する）で記述されている。ＷｅｂページではアノテーションもＨＴＭＬフラグメントとして記述される。ここでは説明のために各ＨＴＭＬフラグメントを文字で示した一次元の文字列で説明する。
【００１３】
アノテーションの無いＷｅｂページは「ＡＢＣＤＥＦＧＨＩＪ」で示される。「ＡＢＣＤＥＦＧＨＩＪ」の各文字は、実際、<table><tr><td>1</td><td>2</td></tr></table>のようなHTMLフラグメントである。
【００１４】
ここではＷｅｂページにアノテーション「Ｘ」を付与したものとする。アノテーション「Ｘ」は、実際、<div class="annotation">アノテーション</div>のようなHTMLフラグメントである。アノテーション「Ｘ」はＷｅｂページ中の位置を持つ。
【００１５】
例えば「Ｃ」と「Ｄ」との間に付与される場合、アノテーション「Ｘ」は「３」という位置を持つ。実際、ＨＴＭＬは図１のような木構造で表現される。図１は木構造で表現されたＨＴＭＬの一例の構成図である。図１において、「body」の下の２番目（左から２番目）の「h2」を指定するには、例えば「/html/body/h2[2]」という木構造のパス表現（Ｘｐａｔｈ）が用いられる。
【００１６】
Ｘｐａｔｈとは、ＸＹ座標のような表示に依存する物理的な位置ではなく、何段落目の何文字目のような表示と独立な文字の位置をいう。ＸｐａｔｈはＷ３Ｃが勧告した標準仕様でＸＭＬ文書の特定の要素を指し示す記述方法である。
【００１７】
例えば位置「３」にアノテーション「Ｘ」が付与されると、アノテーションを保持するデータベース（ＤＢ）にはアノテーションの位置と内容とが保持される。ここでは、アノテーションの位置と内容とを（３，Ｘ）と表現する。
【００１８】
ここで注意すべき点は、Ｗｅｂページが、インターネット上の他のＷｅｂサーバ上に存在することである。つまり、そのＷｅｂページ自身は管理下にはない。すなわち、Ｗｅｂページはこちら（本システム）側で自由に書き換えることができないし、また、こちらが意図しないうちに内容が書き換えられるかもしれない。このように、本システム側で管理するのは、どのＷｅｂページのどの位置にどのようなアノテーションが付与されているかという情報である。
【００１９】
例えば（３，Ｘ）というアノテーションが付与されたＷｅｂページ「ＡＢＣＤＥＦＧＨＩＪ」は、本システムに取り込まれると、「ＡＢＣＸＤＥＦＧＨＩＪ」（実際はＨＴＭＬ文書である）と復元される。復元されたＷｅｂページは、Ｗｅｂ閲覧器（ブラウザ）等に渡されることでオリジナルのＷｅｂページに対してアノテーション「Ｘ」が付与されるように処理される。
【００２０】
例えばアノテーション「Ｘ」は付箋紙のような形式で「Ｃ」と「Ｄ」との間の位置に表示される。図２は付箋紙のような形式のアノテーションが表示されたＷｅｂページの一例の画面イメージ図である。図２中、アノテーション１は元のＨＴＭＬに対して、ＨＴＭＬフラグメントであり、これらが一緒になって一つのＨＴＭＬとなっている。
【００２１】
図２のようにアノテーションされているＷｅｂページに対し、さらに「Ｇ」と「Ｈ」との間にアノテーション「Ｙ」を付与する場合は、既にアノテーション「Ｘ」が付与されているため、アノテーション「Ｙ」の位置が「８」となる。アノテーションを保持するＤＢには（８，Ｙ）が登録される。
【００２２】
この結果、Ｗｅｂページのアノテーションは（３，Ｘ）、（８，Ｙ）となり、本システムに取り込まれると、「ＡＢＣＸＤＥＦＧＹＨＩＪ」（実際はＨＴＭＬ文書である）と復元される。
【００２３】
さらに「Ｅ」と「Ｆ」との間にアノテーション「Ｚ」を付与されると、アノテーションを保持するＤＢには（６，Ｚ）が登録される。アノテーションを保持するＤＢは、それぞれのアノテーション付与の順序関係を保つように（３，Ｘ）、（８，Ｙ）、（６，Ｚ）が保持される。
【００２４】
本システムでは、それぞれのアノテーション付与の順序関係を保ち、アノテーションの作用においても付与の順序関係を保つ。例えば「３」の位置にアノテーション「Ｘ」を付与することで、Ｗｅｂページは「ＡＢＣＸＤＥＦＧＨＩＪ」と復元される。次に「８」の位置にアノテーション「Ｙ」を付与することで、Ｗｅｂページは「ＡＢＣＸＤＥＦＧＹＨＩＪ」と復元される。最後に「６」の位置にアノテーション「Ｚ」を付与することで、Ｗｅｂページは「ＡＢＣＸＤＥＺＦＧＹＨＩＪ」と復元される。このように、本システムではアノテーションの位置を正しく復元できる。
【００２５】
例えば、アノテーション付与の順序関係を破り、アノテーション（８，Ｙ）の前にアノテーション（６，Ｚ）を付与してしまうと、アノテーション（８，Ｙ）は意図通りの位置に復元できない。
【００２６】
上述したように、本システムでは、アノテーション付与の順序関係を保存し、その順序でアノテーションを復元することで、同一のＷｅｂページに対して複数のアノテーションが存在しても正しい位置にアノテーションを復元できるようになっている。
【００２７】
しかし、本システムではアノテーションの一部が削除されると、残りのアノテーションが意図どおりに復元されないという問題があった。例えば、アノテーションを保持するＤＢは、アノテーション付与の順序関係を保つように（３，Ｘ）、（８，Ｙ）、（６，Ｚ）が保持されたものとする。ここでは、アノテーション（３，Ｘ）が削除されたものとして説明する。
【００２８】
前述したように、アノテーションとはＷｅｂページに直接付与するものではなく、どのＷｅｂページのどの位置にどんなアノテーションを付与したかを保持したデータベースのレコードである。したがって、アノテーションの削除とは、このレコードを削除することを意味している。
【００２９】
アノテーションを保持するＤＢからレコードを削除することで、そのアノテーションはＷｅｂページ上に復元されなくなり、Ｗｅｂページ上からそのアノテーションが削除されたようにみえる。この場合、アノテーションを保持するＤＢでは（８，Ｙ）、（６，Ｚ）が保持される。このＷｅｂページ「ＡＢＣＤＥＦＧＨＩＪ」にアクセスし、「８」の位置にアノテーション「Ｙ」を復元しようとすると、本システムでは、アノテーション「Ｙ」の位置を決めたときに存在したアノテーション「Ｘ」が無くなってしまったため、「８」の位置が「Ｇ」と「Ｈ」との間でなく「Ｈ」の後ろになってしまう。同様に、本システムではアノテーション「Ｚ」の位置を決めたときに存在したアノテーション「Ｘ」が無くなってしまったため、「６」の位置が「Ｅ」と「Ｆ」との間でなく「Ｆ」の後ろになってしまう。
【００３０】
結果、Ｗｅｂページは期待した「ＡＢＣＤＥＺＦＧＹＨＩＪ」でなく、「ＡＢＣＤＥＦＺＧＨＹＩＪ」となってしまうという問題があった。
【００３１】
本発明の一実施形態は、上記の点に鑑みなされたもので、他のアノテーションの削除により生じるアノテーションの埋め込み位置のずれを防ぐことができるアノテーションプログラム、アノテーション装置及びアノテーション方法を提供することを目的とする。
【課題を解決するための手段】
【００３２】
上記課題を解決するため、本発明の一実施形態は、アノテーション情報を管理するコンピュータを動作させるアノテーションプログラムであって、前記コンピュータを、Ｗｅｂ資源を受信する受信手段と、受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得手段と、前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの付与操作であるとき、前記Ｗｅｂ資源に埋め込むアノテーションに、前記アノテーションを識別可能なマーカを付与するアノテーションマーカ付与手段と、前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの削除操作であるとき、前記マーカを利用して、前記Ｗｅｂ資源に埋め込まれている削除操作の対象であるアノテーションを特定して削除するアノテーション特定削除手段として動作させるアノテーションプログラムである。
【００３３】
なお、本発明の一実施形態の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００３４】
上述の如く、本発明の一実施形態によれば、他のアノテーションの削除により生じるアノテーションの埋め込み位置のずれを防ぐことができるアノテーションプログラム、アノテーション装置及びアノテーション方法を提供できる。
【図面の簡単な説明】
【００３５】
【図１】木構造で表現されたＨＴＭＬの一例の構成図である。
【図２】付箋紙のような形式のアノテーションが表示されたＷｅｂページの一例の画面イメージ図である。
【図３】本実施例のＷｅｂアノテーションシステムの説明図である。
【図４】本実施例のＷｅｂアノテーションシステムの他の例の説明図である。
【図５】本実施例のＷｅｂアノテーションシステムの他の例の説明図である。
【図６】本実施例のＷｅｂアノテーションシステムの一実施例の構成図である。
【図７】コンピュータシステムの一例の構成図である。
【図８】アノテーション作用装置のアノテーション表示処理を表したフローチャートである。
【図９】木構造の一例を示す説明図である。
【図１０】アノテーション操作ログＤＢに記録されている操作ログの一例を示す説明図である。
【図１１】木構造とＸＰａｔｈが示す位置との関係を説明するための説明図である。
【図１２】最初のアノテーションが埋め込まれたＷｅｂ資源解析結果を表す木構造の説明図である。
【図１３】２番目のアノテーションが埋め込まれたＷｅｂ資源解析結果を表す木構造の説明図である。
【図１４】div id=001以下が削除されたＷｅｂ資源解析結果を表す木構造の説明図である。
【図１５】木構造の一例を示す説明図である。
【図１６】文字列の一部に対してアノテーションが付与されたＷｅｂ資源解析結果を表す木構造の説明図である。
【図１７】アノテーションＸが埋め込まれた木構造の説明図である。
【図１８】アノテーションＸにアノテーションYが付与された木構造の説明図である。
【図１９】アノテーションＸが削除された木構造の説明図である。
【図２０】アノテーションが付与されたアノテーションをＷｅｂ資源解析結果から削除する処理を表したフローチャートである。
【図２１】アノテーション付与装置の処理を表したフローチャートである。
【図２２】アノテーション付与操作の処理を表したフローチャートである。
【図２３】アノテーション削除操作の処理を表したフローチャートである。
【図２４】対応付与操作特定の処理を表したフローチャートである。
【図２５】アノテーション削除操作の処理を表した他の例のフローチャートである。
【図２６】アノテーション位置影響分析処理を表したフローチャートである。
【図２７】付与操作および削除操作の操作ログをアノテーション操作ログＤＢから、どのようなときに取り除けて、どのようなときに取り除けないかを表した説明図である。
【図２８】付与操作および削除操作の操作ログをアノテーション操作ログＤＢから取り除けるかどうかを判定する処理を表したフローチャートである。
【図２９】アノテーション操作ログＤＢの他の例の構成図である。
【図３０】削除済の痕跡が残るＷｅｂ資源解析結果を表す木構造の説明図である。
【図３１】アノテーション作用装置のアノテーション表示処理を表したフローチャートである。
【図３２】本実施例のアノテーションプログラムを適用したブラウザの一例の構成図である。
【発明を実施するための形態】
【００３６】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。
【００３７】
（本実施例の概要）
本実施例は、時系列操作保持によるＷｅｂアノテーション位置復元方式について説明するものである。本実施例では、アノテーション位置をＸＰａｔｈのような構造位置情報で保持し、各アノテーションの構造位置情報から外部のＷｅｂページ（テキスト）上のアノテーション対応位置を求めてアノテーションを一時的に埋め込むＷｅｂアノテーションシステムについて説明する。
【００３８】
Ｗｅｂアノテーションシステムは、他のアノテーションの存在によって、構造位置情報からＷｅｂテキスト上のアノテーションを埋め込む具体的な位置を求める計算が影響を受ける。したがって、Ｗｅｂアノテーションシステムでは、あるアノテーションを付与する時に存在した他のアノテーションが削除されると、構造位置情報がずれ、アノテーションの埋め込み位置がずれるという問題が発生していた。
【００３９】
Ｗｅｂアノテーションシステムは、アノテーションの埋め込み位置がずれないようにするため、アノテーション付与時に存在していた他のアノテーションが削除されて存在しなくなったとしてもＷｅｂ資源（Ｗｅｂページ）解析結果上にダミーとして一時的に存在させる。このように、Ｗｅｂアノテーションシステムは、残りのアノテーションを埋め込む位置の位置計算を正しく行えるようにする。
【００４０】
さらに、Ｗｅｂアノテーションシステムはダミーとして付与したアノテーションを後で消去あるいは無視する処理を加えることで、他のアノテーションの削除等による埋め込み位置のずれの問題を解決する。
【００４１】
本実施例は、Ｗｅｂ資源に対してＷｅｂ資源上の位置をＸＰａｔｈのような構造位置情報として外部記憶装置（アノテーションＤＢ）に保持し、このアノテーションＤＢに保持されている構造位置情報にしたがってＷｅｂ資源に一時的にアノテーションテキストフラグメントを埋め込むことでアノテーションを行うＷｅｂアノテーションシステムを一例として説明する。
【００４２】
本実施例のＷｅｂアノテーションシステムでは、あるＷｅｂアノテーションを付与する時に存在していた他のＷｅｂアノテーションがアノテーションＤＢから削除されることによって引き起こされる構造位置情報計算のずれを補正し、付与時と同一の位置にＷｅｂアノテーションを復元する。
【００４３】
上述の例では、アノテーション（３，Ｘ）、（８，Ｙ）、（６，Ｚ）が登録された後、アノテーション（３，Ｘ）が削除されたとしても、意図どおりにアノテーションが「ＡＢＣＤＥＺＦＧＹＨＩＪ」と復元される。
【００４４】
本実施例のＷｅｂアノテーションシステムでは、アノテーションの削除があったときに単純にアノテーションＤＢからアノテーションデータを削減してしまったのでは位置を復元できなくなってしまう。例えばアノテーションの削除があったときに意図どおりにアノテーションを復元する為には、削除も含めてすべてのアノテーションＤＢに対する操作を履歴として保持し、アノテーションＤＢに対する操作をＷｅｂ資源の解析結果であるＷｅｂ資源解析結果に対して復元するという方法が考えられる。
【００４５】
しかし、アノテーションの削除は本来履歴を復元するだけならばアノテーションＤＢから対応するレコードを削除することになるが、これだけだとＷｅｂ資源解析結果に反映されたアノテーションテキストフラグメントが残ったままになってしまうという問題が新たに発生する。すなわち、各時点でのアノテーションＤＢの状態が反映されて作成されるＷｅｂ資源解析結果においては、アノテーションの付与・削除というアノテーションＤＢに対する個々の操作からＷｅｂ資源解析結果の差分を求め、本来直接的な操作が行われるのではないＷｅｂ資源解析結果上で履歴を復元することが課題となる。
【００４６】
具体的な例で示すと、<html><head><title>タイトル</title></head><body><h1>ヘッダー</h1><div>テキスト1</div><div class="annotation">アノテーション</div><div>テキスト２</div>< div class="annotation">アノテーション</div><div>テキスト３</div></body></html>というようなWeb資源解析結果においては、アノテーションＤＢ上の一つのアノテーションが削除された時、削除された後のアノテーションＤＢから新たなＷｅｂ資源解析結果を作成するのではなく、この一つのアノテーションが削除されたという履歴から、Ｗｅｂ資源解析結果を正しく改変することが課題となる。
【００４７】
この課題を解決するため、本実施例のＷｅｂアノテーションシステムはアノテーション付与操作のときにマーカを付与して埋め込んでおくことで、アノテーションＤＢからアノテーションが削除された時に、対応するマーカをＷｅｂ資源解析結果から探し出して削除するという操作を加える。
【００４８】
あるいは、本実施例のＷｅｂアノテーションシステムはアノテーションテキストフラグメントをＷｅｂ資源解析結果に付与するとき、そのアノテーションテキストフラグメントが後で削除されるアノテーションに対応するものであるかどうかを判定する。
【００４９】
後で削除されるアノテーションである場合、本実施例のＷｅｂアノテーションシステムは位置計算時に存在するものとして計算されるが作用時に無いものとして取り扱われるようなマーカを持ったアノテーションテキストフラグメントを付与する。
【００５０】
操作ログを保持し、その履歴情報の操作順に再生する技術は例えば特開平７−１３４７１６号公報などで開示されている。特開平７−１３４７１６号公報ではハイパーメディア文書の状態を復元するため、時系列に操作履歴を保持しておき、後で操作履歴の先頭から操作を再実行することが示されている。特開平７−１３４７１６号公報に「対応する処理と同一の処理が行われる」とあるように、従来技術における履歴の再生とは、通常操作と同一の処理が行われることが前提となっている。例えばテキストの削除では、テキスト上のある位置からある位置までの範囲そのものと、削除という動作が直接履歴に残され、再生時に、その履歴に残された処理そのものが復元される。
【００５１】
ここで示すアノテーションでは、一般に削除操作がアノテーションＤＢから対応するレコードを削除するという処理が行われるだけのものであり、Ｗｅｂ資源解析結果に対して何の操作も行われない。
【００５２】
したがって、特開平７−１３４７１６号公報で示されるような履歴情報の再生を行っただけでは、Ｗｅｂ資源解析結果に一旦反映されてしまったアノテーションテキストフラグメントが残ったままになってしまう。もし、アノテーションＤＢから対応するレコードを取り除いた時点で新たにＷｅｂ資源解析結果を最初から作り直したのでは、従来の技術の課題として示したようにアノテーションの位置がずれてしまうという問題が起きる。すなわち特開平７−１３４７１６号公報に示されるような再生処理だけでは本課題が解決されない。
【００５３】
すなわち、アノテーションの削除という操作に対して、通常のアノテーションＤＢ上のレコードの削除という操作に加えて、本来削除されてＷｅｂ資源解析結果に存在しないはずなのに、履歴の再生という処理を設けてしまったせいでＷｅｂ資源解析結果に埋め込まれてしまったアノテーションテキストフラグメントを見つけだして、これをＷｅｂ資源解析結果から取り除く処理を新たに設けることが必要になる。この点は、従来の一般的なエディタにおける履歴の保存、及び、その実行履歴を再生する手法と本実施例のＷｅｂアノテーションシステムとの大きな相違点になる。
【００５４】
なお、対応するアノテーションテキストフラグメントを見つけ出す為には、正しく対応するアノテーションテキストフラグメントを同定することが必要であり、アノテーション付与操作のときにマーカを付与して埋め込んでおくことが必要になる。
【００５５】
例えばアノテーション（３，Ｘ）というような、そもそも埋め込みが行われたときの位置情報は、ずれている可能性がある。Ｗｅｂページ「ＡＢＣＸＤＥＦＧＨＩＪ」は、アノテーション（３，Ｙ）が付与されると、Ｗｅｂページ「ＡＢＣＹＸＤＥＦＧＨＩＪ」となり、「３」という位置にアノテーション「Ｙ」に対応するアノテーションテキストフラグメントが見つかるのであってアノテーション「Ｘ」に対応するアノテーションテキストフラグメントが見つかるものではない。
【００５６】
（本実施例の原理）
図３は本実施例のＷｅｂアノテーションシステムの説明図である。図３は、Ｗｅｂ資源取得部１０，Ｗｅｂ資源解析結果準備部１１，アノテーション操作ログ取得部１２，アノテーション復元部１３，アノテーションマーカ付与部１４，アノテーション埋込部１５，アノテーションフラグメント特定部１６，アノテーションフラグメント削除部１７，アノテーション作用部１８，Ｗｅｂ資源解析結果１９，アノテーションＤＢ２０，アノテーション操作ログＤＢ２１を表している。
【００５７】
Ｗｅｂ資源取得部１０は、特定のＷｅｂ資源の所在情報（ＵＲＬ）を指定されたときに指定されたＵＲＬのＷｅｂ資源をネットワークから取り出す。Ｗｅｂ資源解析結果準備部１１は、取り出されたＷｅｂ資源をそのままＷｅｂ資源解析結果１９とすることも可能であるが、通常、Ｗｅｂ資源をパージングした結果である木構造をＷｅｂ資源解析結果１９として保持する。
【００５８】
アノテーション復元部１３は、取り出されたＷｅｂ資源に付与されたアノテーションの情報をアノテーションＤＢ２０から取り出す。アノテーション埋込部１５は、Ｗｅｂ資源解析結果１９上でアノテーション情報に指示されている構造位置を探し出し、その構造位置にアノテーション内容を適切な形式で埋め込む。ここまでの処理は、Ｗｅｂ資源に関連するすべてのアノテーションに対して行われる。
【００５９】
アノテーション作用部１８は、アノテーション情報が埋め込まれたＷｅｂ資源解析結果１９を作用させる。アノテーション作用部１８が行う作用は、典型的に、レンダリングエンジンによって見える形に変換して表示させることである。
【００６０】
アノテーション操作ログＤＢ２１は、アノテーションＤＢ２０とは別にアノテーションに関する操作，アノテーション構造位置情報、アノテーション内容を保持している。アノテーション操作ログ取得部１２は、現Ｗｅｂ資源に対するアノテーション操作ログ（以降単に操作ログと記す）を取り出す。
【００６１】
アノテーション復元部１３では、アノテーションＤＢの情報にしたがって復元するのではなく、操作ログに記述されているアノテーション操作とアノテーション位置にしたがって時系列に処理する。操作ログに記録されたアノテーション操作がアノテーション付与であるとき、アノテーション埋込部１５は操作ログに記述されている構造位置情報にしたがってＷｅｂ資源解析結果１９上の位置を見つけ、アノテーション内容にしたがって作成したアノテーションテキストフラグメントを埋め込む。
【００６２】
そのとき、アノテーションマーカ付与部１４は埋め込むアノテーションテキストフラグメントに対して、後で削除する際に識別可能なマーカを付与して埋め込む。従来、削除されたアノテーションはアノテーションＤＢ２０に無いため何もできなかった。本実施例では削除されたアノテーションも一旦Ｗｅｂ資源解析結果１９にアノテーションテキストフラグメントとして埋め込まれていることになるので、アノテーションの削除に対して対応するアノテーションテキストフラグメントをＷｅｂ資源解析結果１９から削除することが必要になる。
【００６３】
そのため、アノテーションテキストフラグメント特定部１６は、アノテーションテキストフラグメントに埋め込まれた識別マーカを手がかりに、削除されたアノテーションに対応するアノテーションテキストフラグメントをＷｅｂ資源解析結果１９上から探し出す。アノテーションフラグメント削除部１７は削除されたアノテーションに対応するアノテーションテキストフラグメントをＷｅｂ資源解析結果１９上から取り除く。
【００６４】
以上のように、本実施例のＷｅｂアノテーションシステムでは、アノテーション付与だけでなくアノテーション削除も含めて操作ログとして記録し、削除されたアノテーションも一旦Ｗｅｂ資源解析結果１９に埋め込んでおく。
【００６５】
他のアノテーションの付与を行ったあとで、操作ログにしたがって実際に削除されたタイミングで、そのアノテーションテキストフラグメントをＷｅｂ資源解析結果１９から削除することで、本実施例のＷｅｂアノテーションシステムは一部のアノテーションの削除があっても、残りのアノテーションの位置を正しく復元することが可能である。
【００６６】
なお、本実施例のＷｅｂアノテーションシステムでは、アノテーション操作ログＤＢ２１にアノテーション情報のすべてを保持することで、アノテーションＤＢ２０をなくすこともできるし、操作ログの基本情報のみをアノテーション操作ログＤＢに保持２１し、アノテーションの詳細情報をアノテーションＤＢ２０に保持するようにしてもよい。
【００６７】
本実施例のＷｅｂアノテーションシステムは、例えばアノテーション付与時に、Ｗｅｂページ「ＡＢＣＤＥＦＧＨＩＪ」に対してまず、位置「３」にアノテーション「Ｘ」が付与されると、アノテーションを保持するアノテーションＤＢ２０に、アノテーション位置とアノテーション内容とが保持される。同時に、本実施例のＷｅｂアノテーションシステムでは、アノテーション操作ログＤＢ２１に、位置「３」にアノテーション「Ｘ」を付与（挿入）と記録する。
【００６８】
ここで、本実施例のＷｅｂアノテーションシステムは、アノテーション操作ログＤＢ２１に、（＃１，ｉｎｓｅｒｔ，３，Ｘ）と記述することとする。なお、「＃１」は、あとでアノテーション操作（イベント）を参照するための識別ＩＤ（イベント番号）である。
【００６９】
次に、本実施例のＷｅｂアノテーションシステムは「Ｇ」と「Ｈ」との間の位置にアノテーション「Ｙ」を付与したことを、（＃２，ｉｎｓｅｒｔ，８，Ｙ）とアノテーション操作ログＤＢ２１に記録する。なお、「Ｇ」と「Ｈ」との間の位置はアノテーション「Ｘ」が既に付与されているため、位置「８」となっている。
【００７０】
次に、本実施例のＷｅｂアノテーションシステムは「Ｅ」と「Ｆ」との間の位置にアノテーション「Ｚ」を付与したことを、（＃３，ｉｎｓｅｒｔ，６，Ｚ）とアノテーション操作ログＤＢ２１に記録する。なお、「Ｅ」と「Ｆ」との間の位置はアノテーション「Ｘ」が既に付与されているため、位置「６」となっている。
【００７１】
その後、本実施例のＷｅｂアノテーションシステムはアノテーション「Ｘ」が削除されたことを（＃４，ｄｅｌｅｔｅ，＃１）としてアノテーション操作ログＤＢ２１に記録する。（＃４，ｄｅｌｅｔｅ，＃１）は、イベント１（＃１）で付与したアノテーションを削除したという意味である。つまり、削除したアノテーションはアノテーション操作ログＤＢ２１においてイベント番号で示されている。以上のように、アノテーション操作ログＤＢ２１は操作ログを保持する。
【００７２】
アノテーション作用時、本実施例のＷｅｂアノテーションシステムは、アノテーション操作ログＤＢ２１から操作ログとして、（＃１，ｉｎｓｅｒｔ，３，Ｘ）、（＃２，ｉｎｓｅｒｔ，８，Ｙ）、（＃３，ｉｎｓｅｒｔ，６，Ｚ）、（＃４，ｄｅｌｅｔｅ，＃１）を取り出す。取り出した操作ログは、Ｗｅｂページ「ＡＢＣＤＥＦＧＨＩＪ」に対して一旦アノテーション「Ｘ」が付与されて「ＡＢＣＸＤＥＦＧＨＩＪ」となり、アノテーション「Ｙ」が付与されて「ＡＢＣＸＤＥＦＧＹＨＩＪ」となり、アノテーション「Ｚ」が付与されて「ＡＢＣＸＤＥＺＦＧＹＨＩＪ」となる。
【００７３】
実際に、アノテーション「Ｘ」にマーカとして「＃１」のような識別子が付与されているので、操作ログ（＃４，ｄｅｌｅｔｅ，＃１）によりマーカ「＃１」が付与されているアノテーション「Ｘ」が取り除かれてＷｅｂページは「ＡＢＣＤＥＺＦＧＹＨＩＪ」となる。
【００７４】
以上、本実施例のＷｅｂアノテーションシステムはアノテーションの一部が削除されたとしても、削除されたアノテーションが存在する状態で、残ったアノテーションの位置が求められる。そして、本実施例のＷｅｂアノテーションシステムは削除が起こったタイミングでアノテーションの削除が行われるので、残りのアノテーションを正しい位置に復元できる。
【００７５】
図４は本実施例のＷｅｂアノテーションシステムの他の例の説明図である。図４のＷｅｂアノテーションシステムは、図３のＷｅｂアノテーションシステムのアノテーション操作ログ取得部１２とアノテーション復元部１３との間に、アノテーション位置影響分析部３０及びアノテーション操作ログ書き換え部３１が設けられている。
【００７６】
図３のＷｅｂアノテーションシステムは操作ログを真正直にすべて再生している。操作ログをすべて再生するのでは、アノテーションの付与と削除とが繰り返されたような場合に時間的オーバヘッドが大きくなってしまう。そこで、図４のＷｅｂアノテーションシステムでは、時間的オーバヘッドを削減するために、アノテーション位置影響分析部３０及びアノテーション操作ログ書き換え部３１を設け、アノテーション位置影響分析部３０が他のアノテーションの位置に影響を与えないアノテーション操作をアノテーション操作ログＤＢ２１から取り除いている。
【００７７】
図３のＷｅｂアノテーションシステムでは、（＃１，ｉｎｓｅｒｔ，３，Ｘ）、（＃２，ｉｎｓｅｒｔ，８，Ｙ）、（＃３，ｄｅｌｅｔｅ，＃２）、（＃４，ｉｎｓｅｒｔ，６，Ｚ）のような操作ログに対しても正直にアノテーションY（＃２）を付与し、アノテーションY（＃２）を削除する。
【００７８】
しかし、（＃１，ｉｎｓｅｒｔ，３，Ｘ）、（＃２，ｉｎｓｅｒｔ，８，Ｙ）、（＃３，ｄｅｌｅｔｅ，＃２）、（＃４，ｉｎｓｅｒｔ，６，Ｚ）のような操作ログの場合、アノテーションＹ（＃２）が付与されてから削除されるまでに他のアノテーション操作がなく、アノテーションＹの付与・削除の再生は無意味である。
【００７９】
（＃１，ｉｎｓｅｒｔ，３，Ｘ）、（＃２，ｉｎｓｅｒｔ，８，Ｙ）、（＃３，ｄｅｌｅｔｅ，＃２）、（＃４，ｉｎｓｅｒｔ，６，Ｚ）のような操作ログの場合は、（＃２，ｉｎｓｅｒｔ，８，Ｙ）、（＃３，ｄｅｌｅｔｅ，＃２）の対を削除できる。
【００８０】
同様に、（＃１，ｉｎｓｅｒｔ，３，Ｘ）、（＃２，ｉｎｓｅｒｔ，８，Ｙ）、（＃３，ｉｎｓｅｒｔ，６，Ｚ）、（＃４，ｄｅｌｅｔｅ，＃２）のような操作ログの場合、（＃２，ｉｎｓｅｒｔ，８，Ｙ）と（＃４，ｄｅｌｅｔｅ，＃２）との間に（＃３，ｉｎｓｅｒｔ，６，Ｚ）があるが、（＃３，ｉｎｓｅｒｔ，６，Ｚ）は（＃２，ｉｎｓｅｒｔ，８，Ｙ）の前方への付与なのでアノテーションＹ（＃２）に位置の計算が影響されないため、アノテーションＹの付与・削除の再生は無意味である。
【００８１】
（＃１，ｉｎｓｅｒｔ，３，Ｘ）、（＃２，ｉｎｓｅｒｔ，８，Ｙ）、（＃３，ｉｎｓｅｒｔ，６，Ｚ）、（＃４，ｄｅｌｅｔｅ，＃２）のような操作ログの場合は、（＃２，ｉｎｓｅｒｔ，８，Ｙ）、（＃４，ｄｅｌｅｔｅ，＃２）の対を削除できる。
【００８２】
このように、図４のＷｅｂアノテーションシステムでは、アノテーション位置の影響を分析し、他のアノテーションの位置計算に影響を与えないアノテーション操作の対をアノテーション位置影響分析部３０が見つけ出し、アノテーション操作ログ書き換え部３１がアノテーション操作ログＤＢ２１から他のアノテーションの位置計算に影響を与えないアノテーション操作の対のレコードを削除する。
【００８３】
図５は本実施例のＷｅｂアノテーションシステムの他の例の説明図である。図５のＷｅｂアノテーションシステムは、図３のＷｅｂアノテーションシステムのアノテーションマーカ付与部１４，アノテーションフラグメント特定部１６，アノテーションフラグメント削除部１７に替えて、ダミーアノテーションテキストフラグメント生成部４０が設けられていると共に、削除済みアノテーション認識手段４１が新たに設けられている。
【００８４】
図５のＷｅｂアノテーションシステムは、削除されたアノテーションをアノテーションテキストフラグメントとしてＷｅｂ資源解析結果１９に埋め込む時、真のアノテーションテキストフラグメントを埋め込むのではなく、ダミーアノテーションテキストフラグメントを埋め込む。
【００８５】
ダミーアノテーションテキストフラグメントは、Ｗｅｂ資源解析結果１９に埋め込まれることにより、アノテーションの埋め込みポイントの位置を求めようとしたとき、正常に求められるようになり、アノテーション作用部１８で処理しようとすると何もないのと同等になる。ダミーアノテーションテキストフラグメント生成部４０はダミーアノテーションテキストフラグメントを生成する。
【００８６】
図５のＷｅｂアノテーションシステムは、アノテーション操作ログＤＢ２１に記録されている操作ログのうちアノテーション操作が付与の操作ログが、後に削除されているかどうかを判定する削除済みアノテーション認識手段４１が設けられている。そして、削除済みアノテーション認識手段４１はアノテーション操作ログＤＢ２１にある付与操作のアノテーションが、後に削除されているかどうかを判定する。
【００８７】
そして、図５のＷｅｂアノテーションシステムは、アノテーション操作ログＤＢ２１を用いて操作ログを時系列に処理する。アノテーション埋込部１５は通常のアノテーション付与操作に対して、Ｗｅｂ資源解析結果１９上の対応する位置に通常のアノテーションテキストフラグメントを埋め込む。
【００８８】
また、アノテーション埋込部１５は削除されたアノテーションのアノテーション付与操作に対して、ダミーアノテーションテキストフラグメント生成部４０が生成したダミーアノテーションテキストフラグメントを、Ｗｅｂ資源解析結果１９上の対応する位置に埋め込む。
【００８９】
ダミーアノテーションテキストフラグメントは、後でアノテーション作用部１８が処理するときに無視される（何も効果を示さない）が、アノテーションの位置計算においてアノテーションが付与されているときと同じ効果を示す。
【００９０】
例えばアノテーション操作ログＤＢ２１にはＷｅｂページ「ＡＢＣＤＥＦＧＨＩＪ」に対する操作ログ（＃１，ｉｎｓｅｒｔ，３，Ｘ）、（＃２，ｉｎｓｅｒｔ，８，Ｙ）、（＃３，ｉｎｓｅｒｔ，６，Ｚ）があるものとする。次にアノテーションＸ（＃１）が削除されたとすると、図５のＷｅｂアノテーションシステムは、アノテーション操作ログＤＢ２１に（＃４，ｄｅｌｅｔｅ，＃１）を記録する。
【００９１】
ただし、図５のＷｅｂアノテーションシステムは図３のＷｅｂアノテーションシステムとことなり、削除操作のログを後で利用しないため、削除操作のログをアノテーション操作ログＤＢ２１に記録しなくてもよい。ただし、図５のＷｅｂアノテーションシステムはアノテーション操作ログＤＢ２１の操作ログ（＃１，ｉｎｓｅｒｔ，３，Ｘ）に対して削除済みのマークを与える。
【００９２】
この結果、図５のＷｅｂアノテーションシステムは、後でアノテーション位置を復元する際、アノテーション「Ｘ」のアノテーション付与がダミーであることを表す「ｘ」というアノテーションテキストフラグメントが付与されるので、Ｗｅｂページ「ＡＢＣＤＥＦＧＨＩＪ」は「ＡＢＣｘＤＥＦＧＨＩＪ」となり、アノテーション「Ｙ」，「Ｚ」が正しいアノテーション位置である「ＡＢＣｘＤＥＺＦＧＹＨＩＪ」と復元される。
【００９３】
しかも「ｘ」はダミーなので、アノテーション作用時に何も効果を示さず、完全に削除されたのとほぼ同じ効果になる。ちなみに、図５のＷｅｂアノテーションシステムはアノテーションＸ（＃１）が削除されたあと、「Ｆ」と「Ｇ」との間に、新たに「Ｗ」というアノテーションが付与されたとき、アノテーション「Ｘ」の痕跡「ｘ」が「ＡＢＣｘＤＥＺＦＧＹＨＩＪ」というように残っているので、計算すると、アノテーション「Ｗ」の位置が「８」になる。一方、図３のＷｅｂアノテーションシステムは「ＡＢＣＤＥＺＦＧＹＨＩＪ」に基づいて計算するのでアノテーション「Ｗ」の位置が「７」になる。
【実施例１】
【００９４】
図６は、本実施例のＷｅｂアノテーションシステムの一実施例の構成図である。図６のＷｅｂアノテーションシステムは、アノテーション付与装置５０，アノテーション作用装置５１，アノテーション管理サーバ５２，アノテーション操作ログ管理装置５３を有している。
【００９５】
アノテーション付与装置５０は、Ｗｅｂ閲覧器６１，アノテーション付与拡張部６２，アノテーション操作ログ拡張部６３を有する。アノテーション作用装置５１は、アノテーション作用拡張部６４，アノテーション操作ログ拡張部６５，Ｗｅｂ閲覧器６６を有する。アノテーション管理サーバ５２は、アノテーションＤＢ管理部６７，アノテーションＤＢ６８を有する。アノテーション操作ログ管理装置５３は、アノテーション一覧管理部６９，アノテーション操作ログＤＢ７０を有する。
【００９６】
図６のＷｅｂアノテーションシステムはＷｅｂアノテーションをＷｅｂ閲覧器６１，６６の拡張機能として実施される。アノテーション付与装置５０は、ユーザの特定の操作を受け、アノテーションを付与したり削除したりする。アノテーション作用装置５１は、Ｗｅｂ資源にアクセスした際にアノテーションを表示させるあるいは作用させる。
【００９７】
アノテーション付与装置５０およびアノテーション作用装置５１の一つの実施形態はＷｅｂ閲覧器６１，６６を拡張するものである。なお、アノテーション付与装置５０およびアノテーション作用装置５１は同時に一つの閲覧器を拡張することができる。
【００９８】
図３のＷｅｂアノテーションシステムの場合、Ｗｅｂ資源取得部１０，Ｗｅｂ資源解析結果準備部１１，アノテーション操作ログ取得部１２，アノテーション復元部１３，アノテーションマーカ付与部１４，アノテーション埋込部１５，アノテーションフラグメント特定部１６，アノテーションフラグメント削除部１７，アノテーション作用部１８が、図６のアノテーション作用装置５１に対応する。
【００９９】
図４のＷｅｂアノテーションシステムの場合、Ｗｅｂ資源取得部１０，Ｗｅｂ資源解析結果準備部１１，アノテーション操作ログ取得部１２，アノテーション復元部１３，アノテーションマーカ付与部１４，アノテーション埋込部１５，アノテーションフラグメント特定部１６，アノテーションフラグメント削除部１７，アノテーション作用部１８，アノテーション位置影響分析部３０，アノテーション操作ログ書き換え部３１が、図６のアノテーション作用装置５１に対応する。
【０１００】
図５のＷｅｂアノテーションシステムの場合、Ｗｅｂ資源取得部１０，Ｗｅｂ資源解析結果準備部１１，アノテーション操作ログ取得部１２，アノテーション復元部１３，アノテーション埋込部１５，アノテーション作用部１８，ダミーアノテーションテキストフラグメント生成部４０が、図６のアノテーション作用装置５１に対応する。
【０１０１】
図６のアノテーション付与装置５０，アノテーション作用装置５１，アノテーション管理サーバ５２，アノテーション操作ログ管理装置５３は、例えば図７に示すコンピュータシステムにより実現できる。
【０１０２】
図７はコンピュータシステムの一例の構成図である。コンピュータシステムは、それぞれバスＢで相互に接続されている入力装置８１，出力装置８２，ドライブ装置８３，補助記憶装置８４，主記憶装置８５，演算処理装置８６およびインターフェース装置８７を有する。
【０１０３】
入力装置８１はキーボードやマウスなどで構成され、各種信号を入力するために用いられる。出力装置８２はディスプレイ装置などで構成され、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置８７は、モデム，ＬＡＮカードなどであり、ネットワークに接続する為に用いられる。
【０１０４】
本実施例のアノテーションプログラムはアノテーション付与装置５０，アノテーション作用装置５１を制御する各種プログラムの少なくとも一部である。アノテーションプログラムは例えば記録媒体８８の配布やネットワークからのダウンロードなどによって提供される。アノテーションプログラムを記録した記録媒体８８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【０１０５】
また、アノテーションプログラムを記録した記録媒体８８がドライブ装置８３にセットされると、アノテーションプログラムは記録媒体８８からドライブ装置８３を介して補助記憶装置８４にインストールされる。ネットワークからダウンロードされたアノテーションプログラムは、インターフェース装置８７を介して補助記憶装置８４にインストールされる。補助記憶装置８４は、インストールされたアノテーションプログラムを格納すると共に、必要なファイル，データ等を格納する。
【０１０６】
主記憶装置８５は、コンピュータの起動時に補助記憶装置８４からアノテーションプログラムを読み出して格納する。そして、演算処理装置８６は主記憶装置８５に格納されたアノテーションプログラムに従って、後述するような各種処理を実現している。
【０１０７】
以下では、本実施例のＷｅｂアノテーションシステムにおいてアノテーションを表示する（作用させる）処理、アノテーションを付与する処理、アノテーションを削除する処理について説明する。
【０１０８】
（アノテーション作用装置５１が図３の構成である例）
本実施例のアノテーションプログラムを組み込んだＷｅｂ閲覧器（あるいは一般にＷｅｂクライアント）６１，６６は、図８に示すフローチャートのような動作を行う。図８はアノテーション作用装置のアノテーション表示処理を表したフローチャートである。
【０１０９】
ステップＳ１に進み、Ｗｅｂ閲覧器６６は表示（作用）するＷｅｂ資源の所在情報（ＵＲＬ）を受け取る。ステップＳ２に進み、Ｗｅｂ閲覧器６６は受け取ったＵＲＬで指定されるＷｅｂ資源をネットワークから読み込む。ステップＳ３に進み、Ｗｅｂ閲覧器６６は読み込んだＷｅｂ資源（ＨＴＭＬなどで記述されたテキストファイル）をパーサによって解析し、構造を抽出する。抽出された構造は木構造（ツリー）の形をとる（例えばＤＯＭツリー）。
【０１１０】
例えばＷｅｂ資源として以下のようなＨＴＭＬ<html><head><title>タイトル</title></head><body><h1>ヘッダー</h1><div>テキスト1</div><div>テキスト２</div><div>テキスト３</div></body></html>があったとすると、パージング結果である木構造は、図９に示すようになる。図９は木構造の一例を示す説明図である。
【０１１１】
Ｗｅｂ閲覧器６６は図９に示すような木構造をレンダリングエンジンに送り、タグを解釈し（例えば<title>はタイトル、<h2>はヘッダー、<p>は段落など）、見える形に変換して表示する（あるいはレンダリングの代わりに何らかの作用が行われる）。
【０１１２】
上記は静的なページの動きである。動的なページでは、Ｗｅｂ閲覧器６６がＷｅｂ資源をパーサによって解析したあと、例えばＪａｖａｓｃｒｉｐｔで記述されたプログラムをＪａｖａｓｃｒｉｐｔエンジンに送って実行し、木構造を変更する（動的に文書が作り出される）。
【０１１３】
Ｗｅｂ閲覧器６６は木構造をレンダリングエンジンに送り、表示する。場合により、Ｗｅｂ閲覧器６６はユーザのアクションにより木構造を書き換え、新しい木構造をレンダリングエンジンに送り、表示するということを繰り返す。
【０１１４】
本実施例のアノテーションプログラムを組み込んだＷｅｂ閲覧器６６は通常のＷｅｂアノテーションが組み込まれたＷｅｂ閲覧器６６と同様、読み込んだＷｅｂ資源をパーサで解析した結果（例えばＤＯＭツリー）を、Ｗｅｂ資源解析結果として、すぐにレンダリングエンジンに渡さずに以下の処理を行う。
【０１１５】
アノテーション作用拡張部６４は、現在表示（作用）しようとしているＷｅｂ資源に関連するアノテーションデータを、アノテーション管理サーバ５２のアノテーションＤＢ６８からアノテーションＤＢ管理部６７を介して取り出し、アノテーションテキストフラグメントをＷｅｂ資源解析結果に埋め込んでいく（木構造上で接ぎ木する）。
【０１１６】
通常のＷｅｂアノテーションが組み込まれたＷｅｂ閲覧器６６では、ＷｅｂページのＵＲＬ等を手がかりにアノテーションＤＢ６８からアノテーションデータを取り出し、アノテーションが付与された順に、Ｗｅｂ資源解析結果の指定された位置にアノテーションテキストフラグメントを埋め込んで行く。
【０１１７】
なお、削除されたアノテーションのアノテーションデータはアノテーションＤＢ６８に存在しないため、Ｗｅｂ資源解析結果に反映されない。一方、本実施例のアノテーションプログラムを組み込んだＷｅｂ閲覧器６６は、アノテーション操作ログＤＢ７０が存在するので、アノテーションＤＢ６８にアクセスするのではなく、アノテーション操作ログＤＢ７０にアクセスする。
【０１１８】
ステップＳ４に進み、アノテーション操作ログ拡張部６５はアノテーション操作ログＤＢ７０から、ＷｅｂページのＵＲＬ等を手がかりに操作ログをすべて取り出し、古い方から順に並べる。
【０１１９】
図１０はアノテーション操作ログＤＢに記録されている操作ログの一例を示す説明図である。図１０に示す操作ログは、ＩＤ，操作種類，ＸＰａｔｈ又はＩＤ，アノテーション内容，アノテーションレコードをフィールドとして持つ。
【０１２０】
ＩＤは各操作につけられたＩＤである。ＩＤは例えば一連番号でよい。操作種類はアノテーションに関する操作の種類を記述したものである。操作種類は、「付与」あるいは「削除」という値が記述されている。
【０１２１】
ＸＰａｔｈ又はＩＤは、操作が「付与」のとき、アノテーションが付与された構造位置としてＸＰａｔｈが記述され、操作が「削除」のとき、どのアノテーションが削除されたのかを表す操作ログ上のＩＤが記述されている。アノテーション内容は、付与されたアノテーションに記述された情報である。アノテーション内容は、アノテーションテキストフラグメントの中に反映するものであり、文字列やリンクであったり、場合によってはＨＴＭＬそのものが記述されたりしてもよい。
【０１２２】
アノテーションレコードは、付与されたアノテーションのアノテーションＤＢ６８上のレコードを示すポインタである。アノテーションレコードは、アノテーションの削除操作が行われた時に、削除しようとしているアノテーションを指しているのかどうかを確認するために用いられるものである。
【０１２３】
なお、図１０ではＸＰａｔｈ及びアノテーション内容をアノテーション操作ログＤＢ７０の中に直接記述する例を示した。ＸＰａｔｈ及びアノテーション内容はアノテーションＤＢ６８中のアノテーション情報とも重なるので、アノテーションレコードのポインタをたどってアノテーションＤＢ６８にアクセスして、取り出すこともできる。
【０１２４】
ただし、ＸＰａｔｈ及びアノテーション内容をアノテーションＤＢ６８から取り出す場合は、アノテーションが削除されたときにアノテーションＤＢ６８から単純にレコードを削除してしまったのでは、操作ログの復元ができなくなってしまう。
【０１２５】
アノテーションの削除の際には、アノテーションＤＢ６８の削除するレコードの内容をどこかに転記／保存しておき、操作ログのアノテーションレコードが、転記／保存場所を示すようにしておくことが必要である。
【０１２６】
また、アノテーションの削除の際には、アノテーションＤＢ６８の削除するレコードを削除済みとマークし、データ自身を削除しないようにするということで対応することもできる。
【０１２７】
ステップＳ５に進み、アノテーション操作ログ拡張部６５は、操作ログの中の最初の（一番古い）操作（レコード）に注目する。ステップＳ６に進み、アノテーション操作ログ拡張部６５は現在注目している操作（レコード）がある間、ステップＳ７に進む。ステップＳ７では、アノテーション操作ログ拡張部６５が、注目している操作を付与か削除かで切り分ける。
【０１２８】
注目している操作が付与であった場合、アノテーション操作ログ拡張部６５はステップＳ８に進み、付与操作のときに付与されたアノテーション情報(ＸＰａｔｈ、アノテーション内容）を得る。ステップＳ９に進み、アノテーション操作ログ拡張部６５はステップＳ８で得た構造位置情報（ＸＰａｔｈ）から、Ｗｅｂ資源解析結果におけるアノテーションの位置を求める。
【０１２９】
例えば図１０の操作ログに含まれる/html/body/div[1]は、Web資源解析結果の木構造を上から順にhtml、body、divというノードを辿ることを示している。ここでdiv[1]はdivの1番目を示している。したがって、/html/body/div[1]は、図１１の木構造において矢印で示したノードを示すことになる。図１１は木構造とＸＰａｔｈが示す位置との関係を説明するための説明図である。
【０１３０】
なお、上記ではＷｅｂ資源解析結果を木構造として示している。しかし、木構造は元のＨＴＭＬと対応しているのでＷｅｂ資源解析結果として、<html><head><title>タイトル</title></head><body><h1>ヘッダー</h1><div>テキスト1</div><div>テキスト２</div><div>テキスト３</div></body></html>のように元のテキストのまま保持し、テキスト上で処理を進めることも可能である。
【０１３１】
ステップＳ１０に進み、アノテーション操作ログ拡張部６５はアノテーション内容からアノテーションテキストフラグメントを作成する。このとき、アノテーション操作ログ拡張部６５のアノテーションマーカ付与部１４に相当する部分がテキストに識別マーカを付与する。識別マーカとしては、例えば操作ログのＩＤ（一連番号）を用いる。
【０１３２】
なお、アノテーションとしてどう作用させるかはテキストフラグメントにより作成することもできるし、<div class="annotation" id="001">X</div>のようなアノテーションテキストフラグメントのｃｌａｓｓ属性とその値を与え、ＣＳＳ(Cascading Style Sheets)を使って処理することもできる。なお、タグで囲まれた部分にはアノテーション内容（アノテーションＤＢ６８の対応するレコードに記述されている具体的なテキストや画像へのリンクを含むＨＴＭＬテキストなど）を与える。
【０１３３】
ステップＳ１１に進み、アノテーション操作ログ拡張部６５は識別マーカをつけたアノテーションテキストフラグメントを、ステップＳ９で求めたＷｅｂ資源解析結果の位置に埋め込む。埋め込む位置は指定されたノードの前、後、下など取り決めによって決めることができる。
【０１３４】
ここでは指定されたノードの後（弟）に埋め込むものとし、最初のアノテーションを埋め込んだＷｅｂ資源解析結果を図１２に示す。図１２は最初のアノテーションが埋め込まれたＷｅｂ資源解析結果を表す木構造の説明図である。なお、ＸＰａｔｈのツリー表現では本来属性もノードで表現される。図１２の木構造は簡略的に示したものである。図１２において「Ｘ」とした部分はＸＰａｔｈとして#text（文字列）であるが、他の#textとの区別を明確にするために「Ｘ］と示している。その他の木構造を示す説明図においても同様である。
【０１３５】
図１２のツリーのテキスト表現は、<html><head><title>タイトル</title></head><body><h1>ヘッダー</h1><div>テキスト1</div><div class="annotation" id="001">X</div><div>テキスト２</div><div>テキスト３</div></body></html>となる。以上で、注目している付与操作の復元は終わる。
【０１３６】
ステップＳ１２に進み、アノテーション操作ログ拡張部６５は操作ログの中の次の操作に注目位置を移してステップＳ６に戻る。アノテーション操作ログ拡張部６５は、最初の付与操作（ＩＤ＝００１）と同様にして、次の付与操作（ＩＤ＝００２）に対する処理を行う。付与操作（ＩＤ＝００２）に対する処理が終わったときのＷｅｂ資源解析結果の状態は図１３に示すようになる。図１３は２番目のアノテーションが埋め込まれたＷｅｂ資源解析結果を表す木構造の説明図である。
【０１３７】
図１３のツリーのテキスト表現は、<html><head><title>タイトル</title></head><body><h1>ヘッダー</h1><div>テキスト1</div><div class="annotation" id="001">X</div><div>テキスト２</div><div class="annotation" id="002">Y</div><div>テキスト３</div></body></html>となる。
【０１３８】
ステップＳ７において、注目している操作が削除であった場合、アノテーション操作ログ拡張部６５はステップＳ１３に進み、どのアノテーションが削除されたのかの情報として削除されたアノテーションの識別マーカを得る。例えば図１０の操作ログでは、削除されたアノテーションの識別マーカとして、アノテーションが付与された時の操作ログのＩＤが記述されている。
【０１３９】
ステップＳ１４に進み、アノテーション操作ログ拡張部６５は、Ｗｅｂ資源解析結果上の削除された（識別マーカが付いた）アノテーションテキストフラグメントを求める。ステップＳ１５に進み、アノテーション操作ログ拡張部６５はステップＳ１４で求めたテキストフラグメントをＷｅｂ資源解析結果から削除する。
【０１４０】
図１３の例では、div id=001以下（テキスト表現では<div class="annotation" id="001">X</div>）が削除される。図１４は、div id=001以下が削除されたＷｅｂ資源解析結果を表す木構造の説明図である。図１４のツリーのテキスト表現は、<html><head><title>タイトル</title></head><body><h1>ヘッダー</h1><div>テキスト1</div><div>テキスト２</div><div class="annotation" id="002">Y</div><div>テキスト３</div></body></html>となる。
【０１４１】
なお、ここでは単純に削除を行っているが、アノテーションにアノテーションが付与されている場合もあるので、もう少し厳密な処理が必要である。なお、アノテーションにアノテーションが付与された実施例は後述する。
【０１４２】
ステップＳ６においてアノテーション操作ログＤＢ７０上の操作ログすべてをＷｅｂ資源解析結果に反映したと判定したら、アノテーション作用拡張部６４及びアノテーション操作ログ拡張部６５はＷｅｂ資源解析結果をレンダリングエンジンに渡す（あるいはレンダリング以外の作用を起こす）。
【０１４３】
なお、ここまでの例ではアノテーションが<div>から</div>までのような構造に対して付与される例を示してきた。しかし、アノテーションは文字列（#text）の一部に対して付与することもできる。例えば<html><head><title>タイトル</title></head><body><h1>ヘッダー</h1><p>テキスト1</p><p>abcde</p><p>テキスト３</p></body></html>は図１５のようにツリー表現される。図１５は木構造の一例を示す説明図である。
【０１４４】
ここでは、図１５のツリーのａｂｃｄｅという文字列のｂとｃとの間にＸ、ｄとｅとの間にＹというアノテーションを順に付与した場合について説明する。この場合のツリーのテキスト表現は、<html><head><title>タイトル</title></head><body><h1>ヘッダー</h1><p>テキスト1</p><p>ab<div class="annotation" id="001">X</div>cd<div class="annotation" id="002">Y</div>e</p><p>テキスト３</p></body></html>となる。また、この場合の木構造は図１６に示すようになる。図１６は文字列の一部に対してアノテーションが付与されたＷｅｂ資源解析結果を表す木構造の説明図である。
【０１４５】
アノテーションXの構造位置を単に/html/body/p[2]/#text[1]としてしまうのでは、#textの何文字目に挿入されているのかわからなくなってしまうので、/html/body/p[2]/#text [1]:2というように前の#textブロックの構造位置と、その何文字目の後に挿入されているかのオフセット（上記例では:の後の数字）を記録している。同様にアノテーションYの構造位置は/html/body/p[2]/#text[2]:2と記録している。
【０１４６】
ここで、アノテーションXが削除されたとすると、アノテーションYの位置が解決できなくなる（#text[2]:2ではなく#text[1]:4になる）のはアノテーションが<div>から</div>までのような構造に対して付与される例と同様である。
【０１４７】
アノテーションXが削除されたとすると、アノテーションYの位置が解決できなくなる問題は、テキストに対してアノテーションした場合も、アノテーションが<div>から</div>までのような構造に対して付与される例と同様に解決される。
【０１４８】
また、アノテーションはアノテーションに対して付与することもできる。図１７はアノテーションＸが埋め込まれた木構造の説明図である。ここでは、アノテーションＸという文字列（ＸＰａｔｈは/html/body/div[2]/#text）に対してアノテーションYを付与したとする。なお、アノテーションＸは何文字かの文字列であって、その中の任意の何文字かを指定することもできるが、アノテーションＸ全体が選択されたとして説明する。
【０１４９】
図１８はアノテーションＸにアノテーションYが付与された木構造の説明図である。図１８のツリーのテキスト表現は、<html><head><title>タイトル</title></head><body><h1>ヘッダー</h1><div>テキスト1</div><div class="annotation" id="001">X<div class="annotation" id="002">Y</div></div><div>テキスト２</div><div>テキスト３</div></body></html>となる。
【０１５０】
このとき、アノテーションＹのＸＰａｔｈは、/html/body/div[2]/#text:n(nはXの文字数）と記録されることになる。従来は、アノテーションＸが削除されると、div id=001のノードが作成されないので、アノテーションＹはdiv id=001の後のノードの下に付与されることになってしまっていた。
【０１５１】
このようなケースも考慮したアノテーションテキストフラグメントの削除するステップＳ２３の処理は以下のようになる。例えばdiv id=001のノードを削除するとはdiv id=001のノード以下のすべてを単純に削除するのでなく、ノード以下にある他のアノテーションノードを保存するように削除する。すなわち、上記の例では、div id=001とXというテキスト部分とを削除し、div id=002以下をbodyの下（元のdiv id=001の位置）になるようにする（テキストでは、<body>‥<div id="001">X<div id="002">Y</div></div>‥</body>を<body>‥<div id="002">Y</div>‥</body>と変換することに相当する）。
【０１５２】
すなわち、図１９に示すような木構造になる。図１９はアノテーションＸが削除された木構造の説明図である。図１９のツリーのテキスト表現は、<html><head><title>タイトル</title></head><body><h1>ヘッダー</h1><div>テキスト1</div><div class="annotation" id="002">Y</div><div>テキスト２</div><div>テキスト３</div></body></html>となる。
【０１５３】
図２０はアノテーションが付与されたアノテーションをＷｅｂ資源解析結果から削除する処理を表したフローチャートである。ステップＳ２１に進み、アノテーション操作ログ拡張部６５は削除対象のノードとしてdiv id=001をＰとする。ステップＳ２２に進み、アノテーション操作ログ拡張部６５はＰの子ども要素としてノードＸ，ノードdiv id=002を注目要素として順にたどる。まず、アノテーション操作ログ拡張部６５は注目要素としてノードＸを処理する。
【０１５４】
ステップＳ２３に進み、未処理の注目要素があるため、アノテーション操作ログ拡張部６５はステップＳ２４に進む。アノテーション操作ログ拡張部６５は注目要素のノードＸが他のアノテーションでないため、ステップＳ２５に進み、注目要素のノードＸ以下をＰから取り除く。ステップＳ２７に進み、アノテーション操作ログ拡張部６５は次の注目要素をノードdiv id=002としてステップＳ２３に戻る。
【０１５５】
ステップＳ２３に進み、未処理の注目要素があるため、アノテーション操作ログ拡張部６５はステップＳ２４に進む。アノテーション操作ログ拡張部６５は注目要素のノードdiv id=002以下が他のアノテーションであるため、ステップＳ２６に進む。ステップＳ２６では、アノテーション操作ログ拡張部６５が、注目要素のノードdiv id=002以下を残したままステップＳ２７に進む。
【０１５６】
ステップＳ２７に進み、アノテーション操作ログ拡張部６５は次の注目要素を選択せずにステップＳ２３に戻る。未処理の注目要素がないため、アノテーション操作ログ拡張部６５はステップＳ２８に進み、Ｐを残した要素であるノードdiv id=002以下に置き換えられる（ここでは残されたアノテーションが一つだったが、複数のアノテーションがあれば順序を保持しながらPを置き換える）。
【０１５７】
（アノテーション付与装置５０）
図６のアノテーション付与装置５０は、例えば図２１のフローチャートに示すような処理を行う。図２１はアノテーション付与装置の処理を表したフローチャートである。
【０１５８】
ステップＳ３１に進み、アノテーション付与拡張部６２は、注目しているＷｅｂ資源に対して、Ｗｅｂ資源を表示する前に、そこに付与されているアノテーションを表示する処理を行って、アノテーションが付与されている状態でＷｅｂ資源の表示を行う。
【０１５９】
ステップＳ３２に進み、アノテーション付与拡張部６２はユーザの操作を受ける。アノテーション付与拡張部６２はユーザの操作がＷｅｂ資源に対するアノテーション付与ならステップＳ３３に進み、アノテーション付与拡張部６２はアノテーション付与部（図示せず）の呼び出しを行い、アノテーションの付与を行わせる。
【０１６０】
アノテーション付与拡張部６２はユーザの操作がＷｅｂ資源に対するアノテーション削除ならステップＳ３４に進み、アノテーション削除部（図示せず）の呼び出しを行い、アノテーションの削除を行わせる。
【０１６１】
アノテーション付与拡張部６２はアノテーションの付与・削除が反映された結果をアノテーションＤＢ６８に記憶して、次のユーザ操作を待つ。また、アノテーション操作ログ拡張部６３はアノテーションの付与・削除の結果をアノテーション操作ログＤＢ７０に記憶して、次のユーザ操作を待つ。
【０１６２】
図２２はアノテーション付与操作の処理を表したフローチャートである。アノテーション付与操作は、ユーザに画面上の適当な位置を指定させ、アノテーション内容となるテキストを入力、あるいはファイル上の画像を指定させることによって行われる。
【０１６３】
ステップＳ４１に進み、アノテーション付与部はユーザに指定された画面上の位置が現在表示されているＷｅｂ資源のどの位置であるかを表すＸＰａｔｈを求める。このようにアノテーション付与部はＷｅｂ資源のＵＲＬ，ＸＰａｔｈ，アノテーション内容等をアノテーション情報として受け取る。
【０１６４】
ステップＳ４２に進み、アノテーション付与拡張部６２は受け取ったＷｅｂ資源のＵＲＬ，ＸＰａｔｈ，アノテーション内容等をアノテーション情報としてアノテーションＤＢ６８に登録する。なお、ＸＰａｔｈは現在表示されているＷｅｂ資源に対して求められるため、アノテーションが既に付与されているならば、アノテーションを含めたＸＰａｔｈで求められる。
【０１６５】
ステップＳ４３に進み、アノテーション操作ログ拡張部６３はアノテーション操作ログＤＢ７０にアノテーション付与のアノテーション操作ログを登録する。アノテーション操作ログ拡張部６３は、現在のＷｅｂ資源の操作ログを記録しているアノテーション操作ログＤＢ７０の一連のレコードの最後に、操作種類として付与、アノテーション構造位置としてＸＰａｔｈ、アノテーション内容、アノテーションレコードを登録する処理がさらに加わる。
【０１６６】
図２３はアノテーション削除操作の処理を表したフローチャートである。アノテーション削除操作は、ユーザが画面上のアノテーションを指定した後のアノテーション削除アクション（例えば用意されたボタンやメニューなど）によって行われる。
【０１６７】
ステップＳ５１に進み、アノテーション削除部は、どのアノテーションに対する削除アクションであるかを認識する。ステップＳ５２に進み、アノテーション付与拡張部６２は削除対象のアノテーションに対応するアノテーションＤＢ６８上のレコードを求める。
【０１６８】
ステップＳ５３に進み、アノテーション付与拡張部６２は削除対象のアノテーションに対応する対応付与操作のレコードをアノテーションＤＢ６８上で特定する。ステップＳ５３の処理の詳細は後述する。ステップＳ５４に進み、アノテーション付与拡張部６２はアノテーションＤＢ６８からステップＳ５３で特定したレコードを削除する。
【０１６９】
ステップＳ５５に進み、アノテーション操作ログ拡張部６３はアノテーション操作ログＤＢ７０にアノテーション削除のアノテーション操作ログを登録する。アノテーション操作ログ拡張部６３は削除されたアノテーションが何であったかをＩＤ（識別マーカ）でアノテーション操作ログＤＢ７０に記録しておく。
【０１７０】
ＩＤ（識別マーカ）としては、例えば付与されたときの操作ログ上でのＩＤを利用することができる。アノテーション操作ログ拡張部６３は、現在のＷｅｂ資源の操作ログを記録しているアノテーション操作ログＤＢ７０の一連のレコードの最後に、操作種類として削除、ＩＤ（識別マーカ）を登録する処理がさらに加わる。
【０１７１】
図２４は、対応付与操作特定の処理を表したフローチャートである。対応付与操作特定の処理は、削除されたアノテーションがアノテーション操作ログＤＢ７０上の操作ログで表される、どの操作で付与されたのかを特定するものである。アノテーション操作ログ拡張部６３は、現在のＷｅｂ資源の操作ログを最新のものから順にたどっていき、付与操作の中から、現在削除しようとしているアノテーションとアノテーション内容が一致する操作を求め、その付与操作のＩＤを対応付与操作のＩＤ（識別マーカ）とすればよい。アノテーション操作ログＤＢ７０へのアノテーション削除操作の登録は、操作種類フィールドに削除、ＸＰａｔｈまたはＩＤフィールドにＩＤ（識別マーカ）を登録する。
【０１７２】
ステップＳ６１に進み、アノテーション操作ログ拡張部６３はアノテーション操作ログＤＢ７０上の最新の操作ログに注目する。ステップＳ６２に進み、アノテーション操作ログ拡張部６３は注目した操作ログの操作種類が付与ならば、ステップＳ６３に進む。
【０１７３】
ステップＳ６３では、アノテーション操作ログ拡張部６３が、注目した操作ログに記述されているアノテーションレコードに基づき、アノテーションＤＢ６８のレコードを読み出す。アノテーション操作ログ拡張部６３は、読み出したアノテーションのレコードが現在削除しようとしているアノテーションのレコードと一致するかを判定する。
【０１７４】
読み出したアノテーションのレコードが現在削除しようとしているアノテーションのレコードと一致すれば、現在の注目操作が現在削除しようとしているアノテーションに対応する付与操作なので、アノテーション操作ログ拡張部６３は現在注目している操作のＩＤをアノテーション付与拡張部６２に返して図２４のフローチャートの処理を終了する。
【０１７５】
読み出したアノテーションのレコードが現在削除しようとしているアノテーションのレコードと一致しなければ、現在の注目操作が現在削除しようとしているアノテーションに対応する付与操作でないので、アノテーション操作ログ拡張部６３はステップＳ６４に進み、注目する操作ログを一つ過去の操作ログに移し、ステップＳ６２の処理に戻る。
【０１７６】
（アノテーション作用装置５１が図４の構成である例）
図４に示したアノテーション位置影響分析部３０及びアノテーション操作ログ書き換え部３１は、任意のタイミングにおいてアノテーション操作ログＤＢ７０を走査して、操作ログを書き換えることができる。典型的な実施形態は、アノテーション削除操作の処理において、操作ログに「削除操作」を登録したタイミングで行われるものである。
【０１７７】
すなわち、今回削除されたアノテーションに対して、アノテーション位置影響分析部３０は、今回削除されたアノテーションに対応する付与操作と共に操作ログから削除しても他のアノテーション位置に影響がないかどうかを分析する。
【０１７８】
影響がないならばアノテーション操作ログ書き換え部３１は操作ログから対応する付与操作のレコードを削除する。また、アノテーション操作ログ拡張部６３は今回の削除操作も操作ログに登録しない。
【０１７９】
もし影響があるならば、操作ログの付与操作のレコードはそのままにして、今回の削除操作も操作ログに残すものである。アノテーション作用装置５１が図４の構成である場合は図２３に示したアノテーション削除操作の処理を以下のフローチャートに置き換えることになる。
【０１８０】
図２５はアノテーション削除操作の処理を表した他の例のフローチャートである。図２５のフローチャートのステップＳ７１〜Ｓ７５の処理は、上記の図２３のフローチャートのステップＳ５１〜Ｓ５５の処理と同様である。ステップＳ７６のアノテーション位置影響分析処理は、削除されたアノテーションに対して、そのアノテーションが付与された時点から削除までの間に、付与された他のアノテーションとの位置影響関係を求め、影響がある操作が一つもないときに、付与と削除の対を消す。
【０１８１】
位置影響関係は、自分よりも前方、あるいは木構造の別ブロックかどうかを判定することで求める。また、対を消したことによって、これまでは消すことができなかった付与と削除の対の中で消すことができるようになった対をさらに消す。
【０１８２】
図２６はアノテーション位置影響分析処理を表したフローチャートである。ステップＳ８１に進み、アノテーション位置影響分析部３０は、削除されたアノテーションの操作ログ上のＩＤ（識別マーカ）を受け取る。アノテーション位置影響分析部３０は受け取ったＩＤだけを要素とする要素数１のリストを作り、削除イベントリストとする。
【０１８３】
ステップＳ８２に進み、アノテーション位置影響分析部３０は削除イベントリストから先頭の要素を取り出す。最初、削除イベントリストは要素数１のリストである。このためステップＳ８２で取り出されるＩＤは、ステップＳ８１で設定されたＩＤ（このＩＤで指定される操作は必ず削除である）である。また、要素を取り出した結果として、削除イベントリストは空になる。
【０１８４】
ステップＳ８３に進み、アノテーション位置影響分析部３０はステップＳ８２で取り出したＩＤに対応する付与時のＩＤを求める。図２３に示したアノテーション削除操作の処理では、操作ログにおける操作種類が削除のレコードに、対応する付与操作のＩＤ（識別マーカ）が登録されているので、操作ログにおける操作種類の値を取り出す。ここまでの処理により、アノテーション位置影響分析部３０はアノテーションを削除する削除操作のＩＤと、削除操作に対応するアノテーションを付与した付与操作のＩＤとが得られる。
【０１８５】
ステップＳ８４に進み、アノテーション位置影響分析部３０はアノテーション操作ログＤＢ７０に記録されている操作ログを参照し、ステップＳ８３で求めた付与操作から削除操作までの間に、ステップＳ８３で求めた付与操作の操作ログを消すと、位置再現に影響のあるアノテーションの有無を判定する。ステップＳ８４の処理の詳細は後述する。
【０１８６】
位置再現に影響のあるアノテーションがあれば、アノテーション位置影響分析部３０はステップＳ８５に進み、ステップＳ８３で求めた付与操作の操作ログを消去できないと判断し、アノテーション操作ログＤＢ７０に、ステップＳ８３で求めた付与操作及び削除操作の操作ログを、そのまま残す。
【０１８７】
ステップＳ８５に続いてステップＳ８６に進み、アノテーション位置影響分析部３０は削除イベントリストが空かを判定する。削除イベントリストが空であれば、アノテーション位置影響分析部３０は図２６のフローチャートの処理を終了する。削除イベントリストが空でなければ、アノテーション位置影響分析部３０はステップＳ８２に戻る。
【０１８８】
一方、アノテーション位置影響分析部３０はステップＳ８４において、位置再現に影響のあるアノテーションがなければ、ステップＳ８３で求めた付与操作の操作ログを消去できると判断する。アノテーション位置影響分析部３０はステップＳ８７に進み、ステップＳ８３で求めた対となる付与操作及び削除操作の操作ログを、アノテーション操作ログ書き換え部３１にアノテーション操作ログＤＢ７０から削除させる。
【０１８９】
例えば操作ログが（＃１，ｉｎｓｅｒｔ，３，Ｘ）、（＃２，ｉｎｓｅｒｔ，５，Ｙ）、（＃３，ｄｅｌｅｔｅ，＃１）である場合、＃３における削除操作の時点では、＃２で付与されたアノテーションＹの存在により＃１と＃３との対（ペア）を操作ログから取り除くことができない。
【０１９０】
しかし、（＃４，ｄｅｌｅｔｅ，＃２）という削除操作が加わると、＃２と＃４とのペアは操作ログから取り除くことができる。すると、＃１と＃３とのペアの間に影響のある付与操作が無くなり、＃１と＃３とのペアは操作ログから取り除くことができる。このような波及効果を実現するために、アノテーション位置影響分析部３０はステップＳ８７に続いてステップＳ８８に進み、取り除いた付与操作及び削除操作の操作ログの間にある削除操作のＩＤを削除イベントリストに付け加えてステップＳ８２の処理に戻る。ステップＳ８２〜Ｓ８８の処理を繰り返し行うことで、アノテーション位置影響分析部３０は波及して取り除ける操作ログを求めることができる。
【０１９１】
ステップＳ８４の処理である影響有無判定処理は、次のように行う。付与操作と削除操作の操作ログ上のＩＤが与えられたとき、アノテーション位置影響分析部３０は、この付与操作および削除操作の操作ログをアノテーション操作ログＤＢ７０から取り除けるかどうかを判定する。
【０１９２】
図２７は付与操作および削除操作の操作ログをアノテーション操作ログＤＢから、どのようなときに取り除けて、どのようなときに取り除けないかを表した説明図である。例えばアノテーション操作ログＤＢ７０から操作ログを取り除きたいノードはノードＩであるとする。
【０１９３】
ノードＩの操作ログをアノテーション操作ログＤＢ７０から取り除けるのは、ノードＩが付与されて削除されるまでの間に付与されたすべてのアノテーションの構造位置（ＸＰａｔｈ）が、ノードＩの有無によらず不変であるときである。ノードＩが付与されて削除されるまでの間に付与されたアノテーションの構造位置が、ノードＩの有無により一つでも変化してしまうのであれば、ノードＩの操作ログはアノテーション操作ログＤＢ７０から取り除けない。
【０１９４】
図２７のノードＩの子孫であるノードＪ，Ｋは、ノードＩが無くなると当然構造位置が変わってしまう。また、ノードＩの弟であるノードＬと、その子孫であるノードＭ，ＮもノードＩが無くなると構造位置が変わってしまう。
【０１９５】
一方、ノードＩと親を共通にしないノードＢ，Ｃ，Ｄ，Ｏ，Ｐ及びＱは、ノードＩが無くなっても構造位置が不変である。ノードＩと親が共通であっても、ノードＩの前方にある兄であるノードＦと、その子孫であるノードＧ，Ｈとは、ノードＩが無くなっても構造位置が不変である。
【０１９６】
結局、ノードＩの付与から削除までの間に、自分自身（ノードＩ）の子孫、あるいは弟とその子孫になる位置に一つでもアノテーションが付与されたならば、アノテーション位置影響分析部３０はノードＩの操作ログをアノテーション操作ログＤＢ７０から取り除けないと判定する。また、ノードＩの付与から削除までの間に、自分自身の子孫、あるいは弟とその子孫になる位置にアノテーションが付与されなければ、アノテーション位置影響分析部３０はノードＩの操作ログをアノテーション操作ログＤＢ７０から取り除けると判定する。
【０１９７】
図２８は付与操作および削除操作の操作ログをアノテーション操作ログＤＢから取り除けるかどうかを判定する処理を表したフローチャートである。
【０１９８】
ステップＳ９１に進み、アノテーション位置影響分析部３０は、付与操作のＩＤをｉとし、削除操作のＩＤをｊとする。ステップＳ９２に進み、アノテーション位置影響分析部３０はｉの構造位置（ＸＰａｔｈ）を求めてｐとする。
【０１９９】
なお、アノテーションＤＢ６８やアノテーション操作ログＤＢ７０に登録されている構造位置は、どのノードの後にアノテーションを挿入するかの位置である。例えば図２７の場合、ノードＩは構造位置としてノードＦが指定されている。しかし、ここではノードＦの構造位置ではなくノードＩ自身の構造位置をｐとする。
【０２００】
ステップＳ９３に進み、アノテーション位置影響分析部３０は注目する操作ログ上の位置ｉを、現在のｉの次の操作ログのＩＤとする。なお、操作ログはアノテーション操作ログＤＢ７０から取り除かれていることもあるため、現在のｉの次の操作ログのＩＤが連番でないこともある。
【０２０１】
ステップＳ９４に進み、アノテーション位置影響分析部３０は注目する操作ログ上の位置ｉが削除操作（ｊ）よりも過去に行われた操作であるかを判定する。注目する操作ログ上の位置ｉが削除操作（ｊ）よりも過去に行われた操作であれば、アノテーション位置影響分析部３０はステップＳ９５に進む。
【０２０２】
ステップＳ９５では、アノテーション位置影響分析部３０が、ｉで示される操作が付与操作であるかを判定する。ｉで示される操作が付与操作であれば、アノテーション位置影響分析部３０はステップＳ９６に進み、ｉで示される付与操作の構造位置を取り出し、その構造位置をｑとする。なお、ここではｐと同様に、付与されたアノテーション自身の構造位置をｑとする。
【０２０３】
そして、ステップＳ９７に進み、アノテーション位置影響分析部３０はｑがｐの子孫であるか、あるいは弟であるか、あるいは弟の子孫であるかを判定する。ｑがｐの子孫であるか、あるいは弟であるか、あるいは弟の子孫であれば、アノテーション位置影響分析部３０は、影響のあるアノテーションが存在すると判定する。ｑがｐの子孫でなく、あるいは弟でなく、あるいは弟の子孫でなければ、アノテーション位置影響分析部３０は、ステップＳ９３に戻る。
【０２０４】
なお、ステップＳ９４において、注目する操作ログ上の位置ｉが削除操作（ｊ）よりも過去に行われた操作でなければ（ｊと一致）、アノテーション位置影響分析部３０は影響のあるアノテーションが存在しないと判定する。ステップＳ９５において、ｉで示される操作が付与操作でなければ、アノテーション位置影響分析部３０はステップＳ９３に戻る。
【０２０５】
（アノテーション作用装置５１が図５の構成である例）
図５の構成のアノテーション作用装置５１は、アノテーションの削除操作に対し、アノテーション操作ログＤＢ７０内の対応するレコードに、図２９に示すように、削除済みのマーカを付与する。図２９はアノテーション操作ログＤＢの他の例の構成図である。図２９のアノテーション操作ログＤＢ７０は、図１０に示したアノテーション操作ログＤＢ７０と、付与したアノテーションが削除済か否かのマーカが記録されることが異なる。
【０２０６】
また、図２９のアノテーション操作ログＤＢ７０には、削除操作の操作ログが記録されない（記録されたとしても無視される）。図２９のアノテーション操作ログＤＢ７０では操作種類のフィールドが残されているが、記録される操作ログが付与操作だけである為、操作種類のフィールドを無くしてもよい。
【０２０７】
また、図２９のアノテーション操作ログＤＢ７０はＩＤ００３のＸＰａｔｈが図１０のアノテーション操作ログＤＢ７０と異なっている。この理由はＷｅｂ資源解析結果に削除済の痕跡が残るからである。図３０は、削除済の痕跡が残るＷｅｂ資源解析結果を表す木構造の説明図である。図３０では、div class=deletedという削除済の痕跡が残っているため、アノテーションＺの構造位置が/html/body/div[4]となる。
【０２０８】
図３１はアノテーション作用装置のアノテーション表示処理を表したフローチャートである。図３１のフローチャートは、図８のフローチャートと比べて、アノテーションを表示（作用）するときに「削除済」マーカを考慮すること、削除済みのアノテーションを認識し「削除済」マーカを付与すること、とが異なる。
【０２０９】
具体的に、図３１のフローチャートは、図８のフローチャートと以下の点が異なっている。第１に、図５の構成のアノテーション作用装置５１は、削除操作をアノテーション操作ログＤＢ７０に記録しないため、図８のフローチャートにおけるステップＳ７，Ｓ１３〜Ｓ１５が不要となる。
【０２１０】
第２に、図５の構成のアノテーション作用装置５１は、図８のフローチャートにおけるステップＳ１０のテキストフラグメント化に対応する処理おいて、「削除済」マーカがある場合と「削除済」マーカがない場合とで作成するテキストフラグメントが異なる。第３に、図５の構成のアノテーション作用装置５１は、後で操作ログを削除する必要がないので識別マーカも不要である。
【０２１１】
ステップＳ１０１〜Ｓ１０６、Ｓ１０７，Ｓ１０８，Ｓ１１２，Ｓ１１３の処理は図８のステップＳ１〜Ｓ６、Ｓ８、Ｓ９、Ｓ１２、Ｓ１６の処理と同様であるため、説明を省略する。
【０２１２】
ステップＳ１０９に進み、アノテーション操作ログ拡張部６５はアノテーションをテキストフラグ化する際に、アノテーションが既に削除されているか否かをアノテーション操作ログＤＢ７０のマーカのフィールドを参照して確認する。「削除済」マーカが付いていなければ、アノテーション操作ログ拡張部６５はアノテーションが存在すると判定し、ステップＳ１１０に進む。ステップＳ１１０では、アノテーション操作ログ拡張部６５が図８のステップＳ１０と同様、アノテーション内容からアノテーション用のテキストフラグメントを作成するが、特に識別マーカをテキストフラグメントに埋め込む必要はない。
【０２１３】
もし、「削除済」マーカが付いていれば、アノテーション操作ログ拡張部６５は、既にアノテーションが削除されていると判定し、ステップＳ１１４に進む。ステップＳ１１４ではアノテーション操作ログ拡張部６５がダミーのアノテーションテキストフラグメントを作成する。ダミーのアノテーションテキストフラグメントは、構造位置を計算する時にアノテーションがあるのと同様な働きをするが、表示や作用のときに何も効果を生じないようなテキストフラグメントである。具体的に、例えば属性値としてdeletedを持ち、テキスト要素が空のテキストフラグメントとして<div class="annotation deleted"/>を作成する。
【０２１４】
削除済みアノテーションを認識する典型的な実施例は、アノテーションの削除操作が行われたときに呼び出されるものである。例えば、図２３のアノテーション削除の実施例においてステップＳ５５のアノテーション操作ログに「削除」を登録する代わりに、図３１のフローチャートは、対応する付与操作（これは図２３のフローチャートではステップＳ５３において求まっている）のレコードに削除済というマーカを付与する点で異なる。
【０２１５】
また、図５の削除済みアノテーション認識手段４１は、アノテーションの削除操作時点で何もせず、ステップＳ１０９でアノテーションが既に削除されているかどうかを確認する際、「削除済」マーカの有無を確認するのではなく、アノテーションＤＢ６８にアクセスし、そのアノテーションのレコードが存在するかどうかでアノテーションが存在するか削除されているかを確認できる。なお、このやり方の場合には操作ログの「削除済」マーカのフィールドは不要である。なお、アノテーションＤＢ６８へのアクセスは、このタイミングでなくステップＳ１０７でアノテーション情報を取り出すときに行ってもよい。
【０２１６】
（アノテーションプログラムがブラウザに適用された例）
図３２は、本実施例のアノテーションプログラムを適用したブラウザの一例の構成図である。図３２のブラウザ２００は、典型的な構成を示したものであり、説明に不要なＣＳＳの処理やＰＤＦプラグイン等の細かい部分を省略している。
【０２１７】
ネットワークを経由して受信されたＨＴＭＬ文書１００をＨＴＭＬパーサ２０１は解析して、木構造（DOMツリー）２０２を生成する。これと同時に、Ｊａｖａｓｃｒｉｐｔプログラム２０５はＨＴＭＬ文書１００中にあったＪａｖａｓｃｒｉｐｔプログラム２０５を実行し、DOMツリー２０２の中身を書き換える。書き換えられたＤＯＭツリー２０２はレンダリングエンジン２０３に送られる。
【０２１８】
レンダリングエンジン２０３は送られてきたＤＯＭツリー２０２を画面で見える形に変換する。そして、ユーザインタフェース２０４を介したユーザの操作等によってＪａｖａｓｃｒｉｐｔプログラム２０５はDOMツリー２０２を書き換え、表示させる内容を変化させる。
【０２１９】
アノテーションプログラム２１０は、典型的にブラウザ２００の中に保持される（すなわち、ブラウザ２００に組込まれる、あるいは機能拡張として付け加えられる形で実現される）。
【０２２０】
そして、読み込まれたＨＴＭＬ文書１００のＪａｖａｓｃｒｉｐｔプログラム２０５が実行されるのに追加して、アノテーションプログラム２１０は実行され、ＤＯＭツリー２０２を書き換える。なお、アノテーションプログラム２１０が参照するアノテーションＤＢ等のデータはブラウザ２００の外部に保持される。
【０２２１】
アノテーションプログラム２１０を保持する別の実施形態としては、読み込まれるＨＴＭＬ文書に、アノテーションプログラム２１０を保持しておくことが考えられる。この実施形態では、適用できるＷｅｂページが限定されるが、ブラウザ２００にアノテーションプログラム２１０を保持するのと同じ効果を持たせることができる。
【０２２２】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
アノテーション情報を管理するコンピュータを動作させるアノテーションプログラムであって、
前記コンピュータを、
Ｗｅｂ資源を受信する受信手段と、
受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの付与操作であるとき、前記Ｗｅｂ資源に埋め込むアノテーションに、前記アノテーションを識別可能なマーカを付与するアノテーションマーカ付与手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの削除操作であるとき、前記マーカを利用して、前記Ｗｅｂ資源に埋め込まれている削除操作の対象であるアノテーションを特定して削除するアノテーション特定削除手段と
して動作させるアノテーションプログラム。
（付記２）
前記コンピュータを、
前記アノテーション操作ログ記憶手段に記憶されているアノテーションの付与操作及び削除操作の操作ログの対のうち、削除しても他のアノテーションの付与位置に影響を与えないアノテーションの付与操作及び削除操作の操作ログの対を分析するアノテーション位置影響分析手段と、
削除しても他のアノテーションの付与位置に影響を与えないアノテーションの付与操作及び削除操作の操作ログの対を前記アノテーション操作ログ記憶手段から削除するように書き換えるアノテーション操作ログ書き換え手段と
して動作させる付記１記載のアノテーションプログラム。
（付記３）
アノテーション情報を管理するコンピュータを動作させるアノテーションプログラムであって、
前記コンピュータを、
Ｗｅｂ資源を受信する受信手段と、
受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログが既に削除されているアノテーションの付与操作であるとき、他のアノテーションの付与位置に影響を与え、前記アノテーションの作用時に影響を与えないダミーアノテーションの生成を行うダミーアノテーション生成手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログが存在するアノテーションの付与操作であるとき、前記アノテーションを前記Ｗｅｂ資源に埋め込み、前記操作ログが既に削除されているアノテーションの付与操作であるとき、前記ダミーアノテーションを前記Ｗｅｂ資源に埋め込むアノテーション埋込手段と
して動作させるアノテーションプログラム。
（付記４）
アノテーション情報を管理するアノテーション装置であって、
Ｗｅｂ資源を受信する受信手段と、
受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの付与操作であるとき、前記Ｗｅｂ資源に埋め込むアノテーションに、前記アノテーションを識別可能なマーカを付与するアノテーションマーカ付与手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの削除操作であるとき、前記マーカを利用して、前記Ｗｅｂ資源に埋め込まれている削除操作の対象であるアノテーションを特定して削除するアノテーション特定削除手段と
を有するアノテーション装置。
（付記５）
アノテーション情報を管理するアノテーション装置であって、
Ｗｅｂ資源を受信する受信手段と、
受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログが既に削除されているアノテーションの付与操作であるとき、他のアノテーションの付与位置に影響を与え、前記アノテーションの作用時に影響を与えないダミーアノテーションの生成を行うダミーアノテーション生成手段と、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログが存在するアノテーションの付与操作であるとき、前記アノテーションを前記Ｗｅｂ資源に埋め込み、前記操作ログが既に削除されているアノテーションの付与操作であるとき、前記ダミーアノテーションを前記Ｗｅｂ資源に埋め込むアノテーション埋込手段と
を有するアノテーション装置。
（付記６）
アノテーション情報を管理するアノテーション装置のアノテーション方法であって、
Ｗｅｂ資源を受信する受信ステップと、
受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得ステップと、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの付与操作であるとき、前記Ｗｅｂ資源に埋め込むアノテーションに、前記アノテーションを識別可能なマーカを付与するアノテーションマーカ付与ステップと、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログがアノテーションの削除操作であるとき、前記マーカを利用して、前記Ｗｅｂ資源に埋め込まれている削除操作の対象であるアノテーションを特定して削除するアノテーション特定削除ステップと
を有するアノテーション方法。
（付記７）
アノテーション情報を管理するアノテーション装置のアノテーション方法であって、
Ｗｅｂ資源を受信する受信ステップと、
受信したＷｅｂ資源に対する操作ログを、Ｗｅｂ資源の識別情報と操作ログとを対応付けて時系列に記憶しているアノテーション操作ログ記憶手段から取り出すアノテーション操作ログ取得ステップと、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログが既に削除されているアノテーションの付与操作であるとき、他のアノテーションの付与位置に影響を与え、前記アノテーションの作用時に影響を与えないダミーアノテーションの生成を行うダミーアノテーション生成ステップと、
前記アノテーション操作ログ記憶手段から取り出した前記Ｗｅｂ資源に対する操作ログを時系列に選択し、前記操作ログが存在するアノテーションの付与操作であるとき、前記アノテーションを前記Ｗｅｂ資源に埋め込み、前記操作ログが既に削除されているアノテーションの付与操作であるとき、前記ダミーアノテーションを前記Ｗｅｂ資源に埋め込むアノテーション埋込ステップと
を有するアノテーション方法。
【０２２３】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２２４】
１    アノテーション
１０    Ｗｅｂ資源取得部
１１    Ｗｅｂ資源解析結果準備部
１２    アノテーション操作ログ取得部
１３    アノテーション復元部
１４    アノテーションマーカ付与部
１５    アノテーション埋込部
１６    アノテーションフラグメント特定部
１７    アノテーションフラグメント削除部
１８    アノテーション作用部
１９    Ｗｅｂ資源解析結果
２０    アノテーションＤＢ
２１    アノテーション操作ログＤＢ
３０    アノテーション位置影響分析部
３１    アノテーション操作ログ書き換え部
４０    ダミーアノテーションテキストフラグメント生成部
４１    削除済みアノテーション認識手段
５０    アノテーション付与装置
５１    アノテーション作用装置
５２    アノテーション管理サーバ
５３    アノテーション操作ログ管理装置
６１    Ｗｅｂ閲覧器
６２    アノテーション付与拡張部
６３    アノテーション操作ログ拡張部
６４    アノテーション作用拡張部
６５    アノテーション操作ログ拡張部
６６  Ｗｅｂ閲覧器
６７    アノテーションＤＢ管理部
６８    アノテーションＤＢ
６９    アノテーション一覧管理部
７０    アノテーション操作ログＤＢ
８１    入力装置
８２    出力装置
８３    ドライブ装置
８４    補助記憶装置
８５    主記憶装置
８６    演算処理装置
８７    インターフェース装置
１００    ＨＴＭＬ文書
２００    ブラウザ
２０１    ＨＴＭＬパーサ
２０２    ＤＯＭツリー
２０３    レンダリングエンジン
２０４    ユーザインタフェース
２０５    Ｊａｖａｓｃｒｉｐｔプログラム
２０６    Ｊａｖａｓｃｒｉｐｔエンジン
【図１】
2010204863.tif 000003
【図２】
2010204863.tif 000004
【図３】
2010204863.tif 000005
【図４】
2010204863.tif 000006
【図５】
2010204863.tif 000007
【図６】
2010204863.tif 000008
【図７】
2010204863.tif 000009
【図８】
2010204863.tif 000010
【図９】
2010204863.tif 000011
【図１０】
2010204863.tif 000012
【図１１】
2010204863.tif 000013
【図１２】
2010204863.tif 000014
【図１３】
2010204863.tif 000015
【図１４】
2010204863.tif 000016
【図１５】
2010204863.tif 000017
【図１６】
2010204863.tif 000018
【図１７】
2010204863.tif 000019
【図１８】
2010204863.tif 000020
【図１９】
2010204863.tif 000021
【図２０】
2010204863.tif 000022
【図２１】
2010204863.tif 000023
【図２２】
2010204863.tif 000024
【図２３】
2010204863.tif 000025
【図２４】
2010204863.tif 000026
【図２５】
2010204863.tif 000027
【図２６】
2010204863.tif 000028
【図２７】
2010204863.tif 000029
【図２８】
2010204863.tif 000030
【図２９】
2010204863.tif 000031
【図３０】
2010204863.tif 000032
【図３１】
2010204863.tif 000033
【図３２】
2010204863.tif 000034