(57)【要約】【課題】ネットワーク上の任意の資源の機能をマッシュアップにより形成した新たな資源に引き継がせるマッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法を提供することを目的とする。【解決手段】コンピュータを、表示対象のＷｅｂ資源を貼り付け情報として含むアノテーション情報を取得する手段３と、アノテーション情報に含まれる切り取り情報に基づき、切り取り元のＷｅｂ資源を取得する手段４と、アノテーション情報に含まれる切り取り情報に基づき、切り取り元のＷｅｂ資源から切り取るべき断片を切り取る手段６と、切り取った断片を貼り付け先のＷｅｂ資源の環境に適合するように正規化する手段７と、正規化された断片をアノテーション情報に含まれる貼り付け情報に基づき、表示対象のＷｅｂ資源に貼り付ける手段９として動作させることにより上記課題を解決する。【選択図】  図１
2010282587.tif 000002
【特許請求の範囲】
【請求項１】
切り取り元のＷｅｂ資源から切り取った部分を貼り付け先のＷｅｂ資源に貼り付けるコンピュータを動作させるマッシュアッププログラムであって、
前記コンピュータを、
切り取り情報と貼り付け情報とが対応付けられているアノテーション情報と、表示対象のＷｅｂ資源の情報とに基づき、前記表示対象のＷｅｂ資源を貼り付け情報として含むアノテーション情報を取得するアノテーション情報取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、切り取り元のＷｅｂ資源を取得する切り取り元取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、前記切り取り元取得手段が取得した切り取り元のＷｅｂ資源から切り取るべき断片を切り取る切り取り手段と、
前記切り取り手段が切り取った断片を貼り付け先のＷｅｂ資源の環境に適合するように正規化する正規化手段と、
前記正規化手段により正規化された前記断片を、前記アノテーション情報取得手段が取得したアノテーション情報に含まれる貼り付け情報に基づき、表示対象のＷｅｂ資源に貼り付ける貼り付け手段と
して動作させるマッシュアッププログラム。
【請求項２】
前記正規化手段は、前記切り取り手段が切り取った断片の文字符号化方式を貼り付け先の文字符号化方式に変換する文字符号化方式変換を行う請求項１記載のマッシュアッププログラム。
【請求項３】
前記コンピュータを、更に、
前記切り取り手段が切り取った断片にフォーム入力をしてプログラムを呼び出す部分が存在する場合に、貼り付け先の文字符号化方式を切り取り元の文字符号化方式に変換してから前記プログラムを呼び出すラッパプログラムを生成し、前記断片に含まれる前記プログラムを呼び出す部分を、前記ラッパプログラムを呼び出すように書き換えるプログラム呼び出し書換手段と
して機能させる請求項１記載のマッシュアッププログラム。
【請求項４】
切り取り元のＷｅｂ資源から切り取った部分を貼り付け先のＷｅｂ資源に貼り付けるマッシュアップ装置であって、
切り取り情報と貼り付け情報とが対応付けられているアノテーション情報と、表示対象のＷｅｂ資源の情報とに基づき、前記表示対象のＷｅｂ資源を貼り付け情報として含むアノテーション情報を取得するアノテーション情報取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、切り取り元のＷｅｂ資源を取得する切り取り元取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、前記切り取り元取得手段が取得した切り取り元のＷｅｂ資源から切り取るべき断片を切り取る切り取り手段と、
前記切り取り手段が切り取った断片を貼り付け先のＷｅｂ資源の環境に適合するように正規化する正規化手段と、
前記正規化手段により正規化された前記断片を、前記アノテーション情報取得手段が取得したアノテーション情報に含まれる貼り付け情報に基づき、表示対象のＷｅｂ資源に貼り付ける貼り付け手段と
を有するマッシュアップ装置。
【請求項５】
切り取り元のＷｅｂ資源から切り取った部分を貼り付け先のＷｅｂ資源に貼り付けるコンピュータによって実行されるマッシュアップ方法であって、
前記コンピュータが、
切り取り情報と貼り付け情報とが対応付けられているアノテーション情報と、表示対象のＷｅｂ資源の情報とに基づき、前記表示対象のＷｅｂ資源を貼り付け情報として含むアノテーション情報を取得するアノテーション情報取得ステップと、
前記アノテーション情報取得ステップで取得したアノテーション情報に含まれる切り取り情報に基づき、切り取り元のＷｅｂ資源を取得する切り取り元取得ステップと、
前記アノテーション情報取得ステップで取得したアノテーション情報に含まれる切り取り情報に基づき、前記切り取り元取得ステップで取得した切り取り元のＷｅｂ資源から切り取るべき断片を切り取る切り取りステップと、
前記切り取りステップで切り取った断片を貼り付け先のＷｅｂ資源の環境に適合するように正規化する正規化ステップと、
前記正規化ステップで正規化された前記断片を、前記アノテーション情報取得ステップで取得したアノテーション情報に含まれる貼り付け情報に基づき、表示対象のＷｅｂ資源に貼り付ける貼り付けステップと
を実行するマッシュアップ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法に係り、特にネットワーク上の資源を合わせるマッシュアップ（ｍａｓｈ  ｕｐ）と呼ばれる技術を利用するマッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法に関する。
【背景技術】
【０００２】
近年、インターネットやイントラネット等のネットワーク上の情報資源（例えばＷｅｂページ）のマッシュアップと呼ばれる技術が、よく利用されている。マッシュアップは複数の異なる提供元のコンテンツや機能を合わせて新しいコンテンツやサービスを形成するものである。
【０００３】
Ｗｅｂにおけるマッシュアップでは、検索、写真、動画、地図などのサービスサイトがＡＰＩ（Application Program Interface）を公開することで、写真と撮影場所の地図とを組み合わせたり、郵便番号データと地図とを組み合わせたりするサービスが構築されてきた。
【０００４】
Ｗｅｂにおけるマッシュアップは、このようなサービスをプログラムレベルで構築するだけでなく、エンドユーザレベルで簡単にできるようになれば、気づきの共有、Ｗｅｂページの共同制作、進捗管理、ポータルの作成、広告システムなど様々な場面で利用されることが期待される。
【０００５】
あるＷｅｂページ上のコンテンツや機能の一部分を切り取り、別のＷｅｂページ上に貼り付けることで利用可能にする、すなわち、あるＷｅｂページにアクセスしたとき、その時点での別のＷｅｂページの内容を表示したり、検索や動画閲覧などの機能を可能にしたりするには、指定されたＷｅｂページの一部分を切り取る技術と、Ｗｅｂページの一部分を指定された別のＷｅｂページに貼り付ける技術とが必要になる。
【０００６】
あるＷｅｂページの一部分を切り取る技術はクリッピング技術あるいはスクレイピング技術として、以下のような技術が良く知られている。例えばＷｅｂクリッピング技術としては、指定されたＷｅｂページの一部分を画像（スナップショット）として切り取るものが知られている。Ｗｅｂスクレイピング技術としては、指定されたＷｅｂページに対してパターンマッチングやＸｐａｔｈによる位置指定などによりデータを抜き取るものが知られている（例えば特許文献１参照）。
【０００７】
一方、あるＷｅｂページに情報を付与する技術はＷｅｂアノテーション技術として知られており、テキストや画像、ＨＴＭＬ断片（注：Ｗｅｂページの記述にはＨＴＭＬ以外にもＸＨＴＭＬ、ＸＭＬ、ＣＨＴＭＬなど様々な形式があるが、これらを代表してＨＴＭＬとして記述する）などＨＴＭＬで扱えるデータを、別のＷｅｂページ（ＨＴＭＬ）に埋め込む。
【０００８】
このように、Ｗｅｂページからデータを切り取る技術と、別のＷｅｂページにデータを付与するアノテーション技術とを組み合わせれば、あるＷｅｂページからクリップないしスクレイプしたデータを別のＷｅｂページ上にマッシュアップ（合成）して表示することは可能である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−１１０４２７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、通常のクリッピングやスクレイピングでは元のＷｅｂページをスナップショットとして画像で保存する、あるいは元のＷｅｂページの構造化文書（ＨＴＭＬ）そのものの断片、または、構造化文書から構造（タグ）を取り除いたデータを保存しているため、マッシュアップした画面にアクセスした時点での最新の情報が反映されず、元のＷｅｂページにあった検索や動画等の機能も利用できない。
【００１１】
既存のシステムとして、あらかじめ用意されたガジェット（ウィジェット）を特定のＷｅｂページに貼り付けるものがある。また、既存のシステムとして、「これを自分のブログに貼り付けてください」ということで構造化文書の断片があらかじめ用意されているものもある。これらのシステムでは、特定の機能をもつ画面を別のＷｅｂページに貼り付けることができるが、用意されたものを貼り付けられるだけで、任意のＷｅｂページの一部分を貼り付けられるものではない。
【００１２】
本発明の一実施形態は、上記の点に鑑みなされたもので、ネットワーク上の任意の資源の機能をマッシュアップにより形成した新たな資源に引き継がせるマッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一実施形態は、切り取り元のＷｅｂ資源から切り取った部分を貼り付け先のＷｅｂ資源に貼り付けるコンピュータを動作させるマッシュアッププログラムであって、前記コンピュータを、切り取り情報と貼り付け情報とが対応付けられているアノテーション情報と、表示対象のＷｅｂ資源の情報とに基づき、前記表示対象のＷｅｂ資源を貼り付け情報として含むアノテーション情報を取得するアノテーション情報取得手段と、前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、切り取り元のＷｅｂ資源を取得する切り取り元取得手段と、前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、前記切り取り元取得手段が取得した切り取り元のＷｅｂ資源から切り取るべき断片を切り取る切り取り手段と、前記切り取り手段が切り取った断片を貼り付け先のＷｅｂ資源の環境に適合するように正規化する正規化手段と、前記正規化手段により正規化された前記断片を、前記アノテーション情報取得手段が取得したアノテーション情報に含まれる貼り付け情報に基づき、表示対象のＷｅｂ資源に貼り付ける貼り付け手段として動作させる。
【００１４】
なお、本発明の一実施形態の構成要素、表現又は構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１５】
本発明の一実施形態によれば、ネットワーク上の任意の資源の機能をマッシュアップにより形成した新たな資源に引き継がせるマッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法を提供できる。
【図面の簡単な説明】
【００１６】
【図１】本実施例によるマッシュアップ方法の一例の説明図である。
【図２】本実施例の課題を具体的に説明する為の説明図である。
【図３】プログラム呼び出し変換部の一例の構成図である。
【図４】プログラム呼び出し変換部が行う処理を説明する為の説明図である。
【図５】貼り付け先のＷｅｂページの一例のイメージ図である。
【図６】切り取り元のＷｅｂページの一例のイメージ図である。
【図７】赤枠により一部分が指定されたＷｅｂページの一例のイメージ図である。
【図８】切り取り元のＷｅｂページから切り取られた部分が貼り付けられた貼り付け先のＷｅｂページの一例のイメージ図である。
【図９】検索窓に「ＳａａＳ」と入力されたときＷｅｂページの一例のイメージ図である。
【図１０】切り取り元のＷｅｂページによる検索結果が表示された貼り付け先のＷｅｂページの一例のイメージ図である。
【図１１】検索窓に「特許庁」と入力されたときＷｅｂページの一例のイメージ図である。
【図１２】切り取り元のＷｅｂページによる検索結果が表示された貼り付け先のＷｅｂページの一例のイメージ図である。
【図１３】切り取り元のＷｅｂページによる検索結果が表示された貼り付け先のＷｅｂページの一例のイメージ図である。
【図１４】本実施例のマッシュアップ装置を含むシステムの一実施例の構成図である。
【図１５】コンピュータシステムの一例の構成図である。
【図１６】本実施例のマッシュアッププログラムを適用したＷｅｂ閲覧器の一例の構成図である。
【図１７】Ｗｅｂマッシュアップ実現装置の処理を表したフローチャートである。
【図１８】木構造の一例の構成図である。
【図１９】アノテーション情報の一例の構成図である。
【図２０】木構造の一例の構成図である。
【図２１】木構造上における切り取り位置を示した一例の構成図である。
【図２２】ＨＴＭＬテキストにおける切り出し位置を示した一例の構成図である。
【図２３】木構造上における貼り付け位置を示した一例の構成図である。
【図２４】切り取り元選定部の処理を表したフローチャートである。
【図２５】貼り付け先選定部の処理を表したフローチャートである。
【図２６】範囲提示選定部の処理を表したフローチャートである。
【図２７】正規化部の処理を表したフローチャートである。
【図２８】文字符号化方式の変換処理を表したフローチャートである。
【図２９】絶対パスの変換処理を表したフローチャートである。
【図３０】プログラム呼び出し変換処理を表したフローチャートである。
【発明を実施するための形態】
【００１７】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では、ネットワーク上の資源の一例としてＷｅｂページを例に説明する。
【００１８】
（本実施例の概要）
本実施例は、Ｗｅｂページが自由に改変できない環境下において、第１のＷｅｂページの画面上の指定領域に対して、第２のＷｅｂページのＷｅｂ構造上での位置情報を保持しておく。本実施例は、第１のＷｅｂページにアクセスしたときに、保持しておいた第２のＷｅｂ構造上の位置情報から現在の第２のＷｅｂページの情報を切り取り、第１のＷｅｂページに貼り付けたときにリンクやプログラムが正しく動作するように正規化をして現在アクセスしている第１のＷｅｂページに埋め込む。本実施例は第１のＷｅｂページにアクセスしたとき、第２のＷｅｂページの情報も埋め込んで表示することを実現した。
【００１９】
なお、従来技術では、任意のＷｅｂページの情報を切り取って、新しいＷｅｂページに貼り付けたとしても、任意のＷｅｂページの機能を、あたかも新しいＷｅｂページの機能として、そのまま引き継ぐことができなかった。
【００２０】
特に、検索窓のようなフォーム入力から、あるプログラムＰを呼び出すといった部分を任意のＷｅｂページから切り取った場合、切り取った部分の文字符号化方式を正規化するだけでは、貼り付け先の新しいＷｅｂページおいて、フォーム入力した文字列によってプログラムＰが呼び出されてしまう。したがって、検索窓のようなフォーム入力から、あるプログラムＰを呼び出すといった部分を任意のＷｅｂページから切り取った場合は、引数が貼り付け先の新しいＷｅｂページの文字符号化方式によってプログラムＰに与えられてしまい、正しい結果が得られないという問題があった。
【００２１】
すなわち、ＷｅｂページやＷｅｂページから呼び出されるプログラム自身を書き換えることのできない環境下で、ある任意のＷｅｂページに提供されている情報提供や検索などの機能を、単に切り貼りするだけで別のＷｅｂページ上でも情報提供や検索などの機能を正しく実現することが課題となっていた。
【００２２】
この課題を解決する方法として、本実施例では、任意のＷｅｂページの画面上の部分を切り取って（切り取り位置を取得して）、その位置情報を保持しておく。本実施例では指定された他のＷｅｂページにアクセスしたときに、切り取った任意のＷｅｂページ上の位置情報から現在の任意のＷｅｂページ上の情報を切り取り、貼り付ける他のＷｅｂページに合うように正規化を行って、現在アクセスしている他のＷｅｂページに一時的に埋め込む。このように、本実施例では、他のＷｅｂページにアクセスしたとき、任意のＷｅｂページ（複数のＷｅｂページであってもよい）の機能をそのままに、マッシュアップさせることを実現する。
【００２３】
図１は本実施例によるマッシュアップ方法の一例の説明図である。マッシュアップ（切り貼り）する情報は、切り取り元の所在情報（ＵＲＩ）、切り取り元の構造位置（例えばＸＰａｔｈなど）の切り取り情報と、貼り付け先の所在情報（ＵＲＩ）、貼り付け先の構造位置（例えばＸＰａｔｈなど）の貼り付け情報とを含むアノテーション情報１としてあらかじめデータベース（ＤＢ）等に登録されているものとする。所在情報（ＵＲＩ）２は現在注目している（表示しようとしている）Ｗｅｂページのものである。
【００２４】
アノテーション情報取得部３は現在注目しているＷｅｂページの所在情報を貼り付け先の所在情報とするアノテーション情報１を取得する。アノテーション情報取得部３が取得したアノテーション情報１には、何をマッシュアップするかの情報、すなわち、切り取り元の所在情報、切り取り元の構造位置が含まれる。したがって、切り取り元取得部４はアノテーション情報１に基づき、ネットワークから切り取り元の所在情報の切り取り元資源（Ｗｅｂページ）５を取得する。
【００２５】
切り取り部６は切り取り元取得部４が取得したＷｅｂページを解析し、アノテーション情報１に含まれる切り取り元の構造位置の情報に基づいて、切り取り元取得部４が取得したＷｅｂページから切り取るべき断片（ＨＴＭＬ断片）を切り取る。
【００２６】
正規化部７は切り取り部６が切り取ったＨＴＭＬ断片を、貼り付け先のＷｅｂページの環境に適合するように正規化する。具体的に、正規化としては、（１）切り取られた部分の文字符号化方式と貼り付け先の文字符号化方式とを推測し、切り取られた部分の文字符号化方式を貼り付け先の文字符号化方式に変換する文字符号化方式変換と、（２）切り取られた部分のデータ中にあるリンク、画像、プログラム等の中で相対パスにより記述されたＵＲＩを絶対パスに変換する絶対パス変換と、を行う。さらに、切り取られた部分にプログラムの呼び出しを含む場合には、プログラム呼び出し変換部８が、後述するようなプログラム呼び出し変換も行う。
【００２７】
貼り付け部９はアノテーション情報１に記述された貼り付け情報に基づき、正規化された断片を現在注目している（表示しようとしている）Ｗｅｂページに適切な形式で貼り付ける。具体的に貼り付け部９は現在注目しているＷｅｂページである貼り付け先資源１０の埋め込むべき構造位置に、適切な表示形式で表示されるようなＨＴＭＬ断片として埋め込む（木構造上で接ぎ木する）。なお、埋め込むと言っても表示上では浮き上がっているようなものでも構わない（ＨＴＭＬ上では、どこかに埋め込まれていることになる）。
【００２８】
貼り付け部９は、正規化されたＨＴＭＬ断片が埋め込まれたＨＴＭＬ（切り取り元のＷｅｂページの木構造が接ぎ木された木構造）をマッシュアップ結果データ１１として出力する。このデータ（木構造）は、一般的にＷｅｂ閲覧器のレンダリングエンジンによってレンダリングされる。レンダリングエンジンは現在注目しているＷｅｂページに切り取り元の情報や機能を貼り付けて表示する。
【００２９】
なお、Ｗｅｂページを解釈してディスプレイに表示（あるいはプリンタに出力、音声によって読み上げ)したり、リンクを辿る機能を持つソフトウェアは、ウェブブラウザ(インターネットブラウザ、WWWブラウザ、あるいは単にブラウザ)、Ｗｅｂ閲覧ソフトなどとも呼ばれるが、本明細書ではＷｅｂ閲覧器と称するものとする。
【００３０】
なお、実際にはアノテーション情報１を作成する（切り取る情報を指定する切り取り情報と、切り取った情報の貼り付け先を指定する貼り付け情報とを設定する）切り貼り情報設定部が別にある。
【００３１】
本実施例によるマッシュアップ方法では、切り取った情報の内容自身ではなく、切り取り元の所在情報及び構造位置と、貼り付け先の所在情報及び構造位置とがアノテーション情報１としてＤＢに格納されている。以上のように、本実施例によるマッシュアップ方法では、Ｗｅｂページ上の画面を切り取って、切り取り元の所在情報及び構造位置を保持しておく。
【００３２】
本実施例によるマッシュアップ方法では、指定された他のＷｅｂページにアクセスしたときに、切り取ったＷｅｂページの所在情報及び構造位置から現在の切り取り元のＷｅｂページの情報を取り出す。本実施例のマッシュアップ方法では、取り出した現在の切り取り元のＷｅｂページの情報を貼り付け先のＷｅｂページに合うように正規化し、現在アクセスしているＷｅｂページに一時的に埋め込むことで、複数のＷｅｂページの機能をそのままに、マッシュアップさせることを実現した。
【００３３】
図２は本実施例の課題を具体的に説明する為の説明図である。ＷｅｂページＪは文字符号化方式Ａによって記述されている。ＷｅｂページＪはユーザからの入力を受け付ける窓２１があり、窓２１にテキストが入力されてボタンクリックなどのアクションが行われることで、プログラムＰを呼び出すようになっている。窓２１に入力されたテキストＸは文字符号化方式ＡとしてプログラムＰに渡される。プログラムＰはテキストＸを文字符号化方式Ａであるとして処理する。
【００３４】
ここでは、窓２１にテキストＸが入力されるとプログラムＰを呼び出すＷｅｂページＪのＨＴＭＬ断片が切り取られ、切り取られたＨＴＭＬ断片が文字符号化方式ＢであるＷｅｂページＫに埋め込まれたとする。
【００３５】
正規化部７による正規化により、ＷｅｂページＪのＨＴＭＬ断片は文字符号化Ｂに変換されて埋め込まれるので、ＷｅｂページＫの上で正しく表示される。また、正規化部７による正規化により、ＷｅｂページＪのＨＴＭＬ断片は絶対パス変換が行われるので、入力窓２２にテキストＸが入力されるとプログラムＰを呼び出すことができる。
【００３６】
しかし、窓２２に入力されるテキストＸはＷｅｂページＫの文字符号化方式である文字符号化方式Ｂのテキストであり、文字符号化方式ＢのテキストＸがプログラムＰに渡されることになる。
【００３７】
文字符号化方式ＡとＢとが同じである場合や、プログラムＰが文字符号化方式Ｂにも対応できているような場合は別として、プログラムＰはテキストＸを文字符号化方式Ａとして処理してしまう。したがって、プログラムPは意図どおりに実行されない。
【００３８】
図２に示した本実施例の課題は、図１のプログラム呼び出し変換部８を図３のように構成することで解決できる。図３はプログラム呼び出し変換部の一例の構成図である。図１のプログラム呼び出し変換部８は、フォーム入力存在確認部３１，切り取り元文字コード確認部３２，貼り付け先文字コード確認部３３，ラッパプログラム生成部３４，プログラム呼び出し書換部３５を有する。
【００３９】
フォーム入力存在確認部３１は、フォーム入力をしてプログラムＰを呼び出す部分が切り取った部分に存在するかを確認する。切り取り元文字コード確認部３２は、切り取り元の文字符号化方式を確認する。貼り付け先文字コード確認部３３は、貼り付け先の文字符号化方式を確認する。フォーム入力存在確認部３１，切り取り元文字コード確認部３２及び貼り付け先文字コード確認部３３の処理は並行して行われる。
【００４０】
切り取った部分にフォーム入力があり、フォーム入力を引数としてプログラムＰを呼び出しているならば、ラッパプログラム生成部３４は引数を切り取り元の文字符号化方式に変換して元のプログラムＰを呼び出すラッパプログラムＰ′を生成する。プログラム呼び出し書換部３５は切り取った部分に含まれるプログラムＰを呼び出す部分を、ラッパプログラムＰ′を呼び出すように書き換える。
【００４１】
プログラム呼び出し変換部８が行う処理は例えば図４に示すようになる。図４はプログラム呼び出し変換部が行う処理を説明する為の説明図である。ラッパプログラム生成部３４は切り取った部分に含まれるプログラムＰで利用する引数のすべてを文字符号化方式Ｂから文字符号化方式Ａに変換して元のプログラムＰを呼び出すラッパプログラムＰ′を生成する。また、プログラム呼び出し書換部３５は切り取った部分に含まれるプログラムＰを呼び出す部分を、ラッパプログラムＰ′を呼び出すように書き換える。
【００４２】
これにより、本実施例ではラッパプログラムＰ′が生成されるとともに、プログラムＰを呼び出す部分がラッパプログラムＰ′を呼び出すように書き換えられる。本実施例では入力窓２２にテキストＸが入力されてボタンクリックなどのアクションが行われることにより、プログラムＰが直接呼び出されるのではなく、プログラムＰ′が呼び出され、テキストＸが文字符号化方式Ｂから文字符号化方式Ａに変換されたあと、プログラムＰが呼び出されるので、意図したどおりの結果が得られることになる。
【００４３】
なお、上記ではフォーム入力としたが、擬似的なフォーム入力（利用者が窓からテキストを入力するのではなく、あらかじめテキストが与えられていたり、何らかの処理結果によってテキストが生成されてプログラムに渡されたりするもの）も含むものとする。
【００４４】
ここでは、本実施例によるマッシュアップ方法を具体的なＷｅｂページを参照しつつ説明する。図５は貼り付け先のＷｅｂページの一例のイメージ図である。図６は切り取り元のＷｅｂページの一例のイメージ図である。図６の切り取り元のＷｅｂページは検索窓の部分６１を有する。ユーザはシステムがＷｅｂページ上で提示する例えば赤枠を移動させて適切な部分を選択し、所定のコマンド（ｃｔｒｌ−ｃ）等でＷｅｂページ上の部分を切り取る。
【００４５】
図７は赤枠により一部分が指定されたＷｅｂページの一例のイメージ図である。図７のＷｅｂページは赤枠７１により検索窓の部分６１が指定されている。ユーザは図７の状態でＷｅｂページ上の部分を切り取る所定のコマンドを入力することにより、切り取り元のＷｅｂページから検索窓の部分６１を切り取ることができる。
【００４６】
ユーザはシステムがＷｅｂページ上で提示する例えば赤枠を移動させて適切な部分を選択し、所定のコマンド（ｃｔｒｌ−ｖ）等でＷｅｂページ上の部分に貼り付ける。図８は切り取り元のＷｅｂページから切り取られた部分が貼り付けられた貼り付け先のＷｅｂページの一例のイメージ図である。
【００４７】
図８のＷｅｂページは赤枠８１により貼り付け部分が指定されている。ユーザはＷｅｂページ上の部分に貼り付ける所定のコマンドを入力することにより、切り取り元のＷｅｂページから切り取った検索窓の部分６１を貼り付け先のＷｅｂページに貼り付けることができる。図８のＷｅｂページは図７に示す切り取り元のＷｅｂページの検索窓の部分６１が赤枠８１により指定された貼り付け部分に埋め込まれている。
【００４８】
ここでは図８のＷｅｂページに埋め込まれた検索窓にテキストを入力したときの処理について説明する。図９は、検索窓に「ＳａａＳ」と入力されたときＷｅｂページの一例のイメージ図である。
【００４９】
ユーザは図９の状態で検索ボタン９１をクリックすることにより、切り取り元のＷｅｂページによる検索結果を貼り付け先のＷｅｂページに表示できる。図１０は切り取り元のＷｅｂページによる検索結果が表示された貼り付け先のＷｅｂページの一例のイメージ図である。
【００５０】
また、ここでは図８のＷｅｂページに埋め込まれた検索窓にテキストを入力したときの処理について説明する。図１１は、検索窓に「特許庁」と入力されたときＷｅｂページの一例のイメージ図である。
【００５１】
ユーザは図１１の状態で検索ボタン９１をクリックすることにより、切り取り元のＷｅｂページによる検索結果を貼り付け先のＷｅｂページに表示できる。図１２は切り取り元のＷｅｂページによる検索結果が表示された貼り付け先のＷｅｂページの一例のイメージ図である。
【００５２】
貼り付け先のＷｅｂページの文字符号化方式が「Ｓｈｉｆｔ−ＪＩＳ」、切り取り元のＷｅｂページの文字符号化方式が「ＵＴＦ−８」である場合、図１のプログラム呼び出し変換部８の処理が無ければ、検索窓に入力された「特許庁」という文字列は文字化けして正しく伝わらない。ユーザは図１２に示すように、切り取り元のＷｅｂページによる正しい検索結果を貼り付け先のＷｅｂページに表示できない。
【００５３】
一方、図１のプログラム呼び出し変換部８の処理が有れば、検索窓に入力された「特許庁」という文字列は文字化けせず、正しく伝わる。ユーザは図１３に示すように、切り取り元のＷｅｂページによる正しい検索結果を貼り付け先のＷｅｂページに表示することができる。図１３は切り取り元のＷｅｂページによる検索結果が表示された貼り付け先のＷｅｂページの一例のイメージ図である。
【００５４】
なお、上記の処理では切り取り元のＷｅｂページ及び貼り付け先のＷｅｂページに何ら手を加えていない。本実施例によるマッシュアップ方法のポイントは、切り取り元のＷｅｂページ上の画面（上記では検索窓の部分６１）を切り取って、その検索窓の部分６１の位置情報を保持しておく。
【００５５】
貼り付け先のＷｅｂページにアクセスしたとき、本実施例によるマッシュアップ方法は切り取り元のＷｅｂページの位置情報（検索窓のあるＸＰａｔｈ）から、その部分のＨＴＭＬ断片を切り取る。本実施例によるマッシュアップ方法は切り取ったＨＴＭＬ断片を貼り付け先のＷｅｂページ用に正規化（文字符号化方式をＵＴＦ−８からＳｈｉｆｔ−ＪＩＳに変換）する。本実施例によるマッシュアップ方法は、貼り付け先のＷｅｂページを表示する際、指定された位置にＨＴＭＬ断片を埋め込むことで、画面のマッシュアップを実現している。
【００５６】
本実施例によるマッシュアップ方法は、スナップショット（画像）の切り貼りではないため、検索窓にテキストを入力すれば、切り取り元のＷｅｂページの検索プログラムが動いて検索結果を貼り付け先のＷｅｂページに表示する。
【００５７】
また、本実施例によるマッシュアップ方法ではフォーム入力からプログラムＰを呼び出す際に、ラッパプログラムＰ′を呼び出すように変換する。ラッパプログラムＰ′は文字符号化方式を相手の文字符号化方式に変換してから相手のプログラムＰを呼び出す。このように、本実施例によるマッシュアップ方法では文字符号化方式が異なっている２つのＷｅｂページのマッシュアップにおけるプログラム連携も正しく行うことができる。
【００５８】
（本実施例の詳細）
図１４は本実施例のマッシュアップ装置を含むシステムの一実施例の構成図である。図１４のシステムは、Ｗｅｂマッシュアップ設定装置１００，Ｗｅｂマッシュアップ実現装置１１０，アノテーション管理サーバ１２０を有している。
【００５９】
Ｗｅｂマッシュアップ設定装置１００はユーザに切り取り部分および貼り付け先を指定させる。Ｗｅｂマッシュアップ実現装置１１０はユーザに指定された切り取り部分および貼り付け先に基づいたマッシュアップ結果を表示する。アノテーション管理サーバ１２０はマッシュアップするためのデータを管理する。Ｗｅｂマッシュアップ設定装置１００及びＷｅｂマッシュアップ実現装置１１０はＷｅｂ閲覧器の拡張機能として実施される。図１４ではＷｅｂマッシュアップ設定装置１００とＷｅｂマッシュアップ実現装置１１０とを分けているが、一つのＷｅｂ閲覧器の拡張機能として同時に実現してもよい。
【００６０】
Ｗｅｂマッシュアップ設定装置１００は、Ｗｅｂ閲覧器１０１，切り取り元選定部１０２，範囲提示選定部１０３，貼り付け先選定部１０４，アノテーション管理部１０５を有する。
【００６１】
範囲提示選定部１０３は、通常のＷｅｂ閲覧器１０１によるＷｅｂページの表示においてユーザの特定の操作を受けることで、切り取り範囲や貼り付け先の位置の候補をユーザのキーボードやマウス操作などによって提示する。範囲提示選定部１０３は、指定された操作（例えばｃｔｒｌ−ｃやｃｔｒｌ−ｖ）によって現在表示されている範囲に相当する木構造上の位置を返す。
【００６２】
切り取り元選定部１０２はユーザの特定の操作によって切り取り候補の提示・取得作業を開始し、指示された範囲の切り取りを行う（実際には切り取り位置を取得する）。貼り付け先選定部１０４はユーザの特定の操作（例えば切り取り終了や特定のキー操作）によって貼り付け候補の提示・取得作業を開始し、指示された位置を貼り付け先と決定（実際には貼り付け位置を取得する）し、切り取り情報（切り取ったＷｅｂページのＵＲＩと切り取った部分のＸＰａｔｈ）と貼り付け情報（貼り付けるＷｅｂページのＵＲＩである貼り付け先ＵＲＩと貼り付け位置のＸＰａｔｈ）とをセットとしてアノテーション管理部１０５に渡す。
【００６３】
アノテーション管理部１０５は与えられた切り取り情報と貼り付け情報とをセットにしたアノテーション情報の登録をアノテーション管理サーバ１２０に依頼する。なお、切り取りから貼り付けの間にはＷｅｂ閲覧器１０１による一般的なＷｅｂページ間の移動やＷｅｂページ内での移動などが行われる。
【００６４】
Ｗｅｂ閲覧器１０１による一般的なＷｅｂページ間の移動やＷｅｂページ内での移動などの作業が一連の作業として行われることを前提とする場合は、切り取り情報を一時的にメモリに保持しても良いが、切り取り作業の終了時に切り取り情報を外部のファイルに書き込み、貼り付け作業の開始時に適切な切り取り情報を外部のファイルから取り出すという形態でも良い。
【００６５】
アノテーション管理サーバ１２０は、アノテーションデータベース管理部１２１，アノテーションデータベース１２２を有する。アノテーションデータベース管理部１２１はＷｅｂマッシュアップ設定装置１００からの依頼を受け、切り取り情報と貼り付け情報とをセットとしたアノテーション情報をアノテーションデータベース１２２に登録する。
【００６６】
また、アノテーションデータベース管理部１２１はＷｅｂマッシュアップ実現装置１１０からの依頼を受け、指定されたＵＲＩを貼り付け先ＵＲＩとして持つアノテーション情報を返す。なお、アノテーション管理サーバ１２０は、Ｗｅｂマッシュアップ設定装置１００及びＷｅｂマッシュアップ実現装置１１０と同一のコンピュータ上に実現しても構わないし、ネットワークを介して繋がった別のコンピュータ上に実現しても構わない。
【００６７】
Ｗｅｂマッシュアップ実現装置１１０は、Ｗｅｂ閲覧器１１１，切り出し情報取得部１１２，正規化部１１３，貼り付け位置獲得部１１４，合成部１１５，アノテーション管理部１１６を有する。
【００６８】
Ｗｅｂ閲覧器１１１は指定されたＵＲＩのコンテンツ（Ｗｅｂページ）をネットワークから取り込む。このとき、アノテーション管理部１１６は指定されたＵＲＩに付与されたアノテーション情報をアノテーション管理サーバ１２０に要求して受け取る。切り出し情報取得部１１２は受け取ったアノテーション情報の個々について、アノテーション情報に記述された切り取り元のＵＲＩをＷｅｂ閲覧器１１１に渡し、切り取り元のＵＲＩのコンテンツをネットワークから取り込み、アノテーション情報に記述された切り取り元のＸＰａｔｈの部分（ＨＴＭＬ断片）を切り出す。
【００６９】
正規化部１１３は切り出されたＨＴＭＬ断片を、貼り付け先のＷｅｂページの環境に適合するように正規化する。貼り付け位置獲得部１１４はアノテーション情報に記述された貼り付け先のＸＰａｔｈからＨＴＭＬ断片を貼り付ける貼り付け位置を求める。
【００７０】
合成部１１５は、貼り付け位置獲得部１１４が求めた貼り付け位置に正規化されたＨＴＭＬ断片を貼り付ける。なお、正規化されたＨＴＭＬ断片が合成部１１５により貼り付けられたＷｅｂページのＤＯＭツリーは、後述するように、レンダリングエンジンによってレンダリングされて表示される。
【００７１】
図１４のＷｅｂマッシュアップ設定装置１００，Ｗｅｂマッシュアップ実現装置１１０及びアノテーション管理サーバ１２０は、例えば図１５に示すコンピュータシステムにより実現できる。
【００７２】
図１５はコンピュータシステムの一例の構成図である。コンピュータシステムは、それぞれバスＢで相互に接続されている入力装置１５１，出力装置１５２，ドライブ装置１５３，補助記憶装置１５４，主記憶装置１５５，演算処理装置１５６及びインターフェース装置１５７を有する。
【００７３】
入力装置１５１はキーボードやマウス等である。入力装置１５１は各種信号を入力するために用いられる。出力装置１５２はディスプレイ装置等である。出力装置１５２は各種ウインドウやデータ等を表示するために用いられる。インターフェース装置１５７はモデムやＬＡＮカードなどであり、ネットワークに接続する為に用いられる。
【００７４】
本実施例のマッシュアッププログラムはＷｅｂマッシュアップ設定装置１００，Ｗｅｂマッシュアップ実現装置１１０を制御する各種プログラムに含まれる。マッシュアッププログラムは例えば記録媒体１５８の配布やネットワークからのダウンロードなどによって提供される。マッシュアッププログラムを記録した記録媒体１５８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００７５】
マッシュアッププログラムを記録した記録媒体１５８がドライブ装置１５３にセットされると、マッシュアッププログラムは記録媒体１５８からドライブ装置１５３を介して補助記憶装置１５４にインストールされる。
【００７６】
ネットワークからダウンロードされたマッシュアッププログラムはインターフェース装置１５７を介して補助記憶装置１５４にインストールされる。補助記憶装置１５４はインストールされたマッシュアッププログラムを格納すると共に、必要なファイル，データ等を格納する。
【００７７】
主記憶装置１５５は、コンピュータの起動時に補助記憶装置１５４からマッシュアッププログラムを読み出して格納する。そして、演算処理装置１５６は主記憶装置１５５に格納されたマッシュアッププログラムに従って、後述の各種処理を実現している。
【００７８】
（マッシュアッププログラムがＷｅｂ閲覧器に適用された例）
図１６は、本実施例のマッシュアッププログラムを適用したＷｅｂ閲覧器の一例の構成図である。図１６のＷｅｂ閲覧器１６０は、典型的な構成を示したものであり、説明に不要なＣＳＳの処理やＰＤＦプラグイン等の細かい部分を省略している。
【００７９】
ネットワークを経由して受信されたＨＴＭＬ文書１６１をＨＴＭＬパーサ１６２は解析して、木構造（DOMツリー）１６３を生成する。これと同時に、Ｊａｖａｓｃｒｉｐｔエンジン１６５はＨＴＭＬ文書１６１中にあったＪａｖａｓｃｒｉｐｔプログラム１６４を実行し、DOMツリー１６３の中身を書き換える。書き換えられたＤＯＭツリー１６３はレンダリングエンジン１６６に送られる。
【００８０】
レンダリングエンジン１６６は送られてきたＤＯＭツリー１６３を画面で見える形に変換する。そして、ユーザインタフェース１６７を介したユーザの操作等によってＪａｖａｓｃｒｉｐｔエンジン１６５はＪａｖａｓｃｒｉｐｔプログラム１６４に従って、ＤＯＭツリー１６３を書き換え、表示させる内容を変化させる。
【００８１】
マッシュアッププログラム１６８は、典型的にＷｅｂ閲覧器１６０の中に保持される（すなわち、Ｗｅｂ閲覧器１６０に組込まれる、あるいは機能拡張として付け加えられる形で実現される）。
【００８２】
そして、読み込まれたＨＴＭＬ文書１６１のＪａｖａｓｃｒｉｐｔプログラム１６４が実行されるのに追加して、マッシュアッププログラム１６８は実行され、ＤＯＭツリー１６３を書き換える。
【００８３】
なお、マッシュアッププログラム１６８が参照するアノテーションデータベース等のデータはＷｅｂ閲覧器１６０の外部に保持される。マッシュアッププログラム１６８を保持する別の実施形態としては、読み込まれるＨＴＭＬ文書１６１に、マッシュアッププログラム１６８を保持しておくことが考えられる。この実施形態では、適用できるＷｅｂページが限定されるが、Ｗｅｂ閲覧器１６０にマッシュアッププログラム１６８を保持するのと同じ効果を持たせることができる。
【００８４】
以下では、図１４のシステムにおけるＷｅｂマッシュアップ設定装置１００及びＷｅｂマッシュアップ実現装置１１０の処理について説明する。
【００８５】
（Ｗｅｂマッシュアップ実現装置１１０）
本実施例のマッシュアッププログラム１６８を組み込んだＷｅｂ閲覧器（あるいは一般にＷｅｂクライアント）１１１は図１７に示すフローチャートのような動作を行う。図１７はＷｅｂマッシュアップ実現装置の処理を表したフローチャートである。
【００８６】
図１７中、ステップＳ１では、Ｗｅｂ閲覧器１１１が、表示するＷｅｂページのＵＲＩを受け取る。ステップＳ２に進み、Ｗｅｂ閲覧器１１１は受け取ったＵＲＩで指定されるＷｅｂページをネットワークから読み込む。ステップＳ３に進み、Ｗｅｂ閲覧器１１１は読み込んだＷｅｂページをパーサによって解析し、構造を抽出する。抽出された構造は木構造（ツリー）の形をとる（例えばＤＯＭツリー）。
【００８７】
また、ステップＳ４に進み、アノテーション管理部１１６は受け取ったＵＲＩをキーとしてアノテーション管理サーバ１２０にアクセスし、受け取ったＵＲＩが貼り付け先に指定されている全てのアノテーション情報を獲得する。そして、Ｗｅｂマッシュアップ実現装置１１０はステップＳ４で獲得したアノテーション情報のそれぞれに対してステップＳ５〜Ｓ１１までの処理を行う。
【００８８】
まず、ステップＳ５に進み、切り出し情報取得部１１２は受け取ったアノテーション情報に記述された切り取り元のＵＲＩを獲得する。ステップＳ６に進み、切り出し情報取得部１１２は獲得した切り取り元のＵＲＩをＷｅｂ閲覧器１１１に渡し、切り取り元のＵＲＩのＷｅｂページをネットワークから獲得する。ステップＳ７に進み、Ｗｅｂ閲覧器１１１は獲得した切り取り元のＵＲＩのＷｅｂページを、ＨＴＭＬパーサ１６２によって解析する。
【００８９】
ステップＳ８に進み、切り出し情報取得部１１２はアノテーション情報に記述された切り取り元のＸＰａｔｈから切り取り位置を求め、切り取り元のＷｅｂページの切り取り位置からＨＴＭＬ断片を取り出す。ステップＳ９に進み、正規化部１１３は取り出されたＨＴＭＬ断片を、貼り付け先のＷｅｂページの環境に適合するように正規化する。正規化の詳細は後述する。
【００９０】
ステップＳ１０に進み、貼り付け位置獲得部１１４はアノテーション情報に記述された貼り付け先のＸＰａｔｈと、ステップＳ３で抽出された木構造とに基づき、ＨＴＭＬ断片を貼り付ける木構造上の貼り付け位置を獲得する。ステップＳ１１に進み、合成部１１５は貼り付け位置獲得部１１４が獲得した貼り付け位置に、正規化されたＨＴＭＬ断片を埋め込む（接ぎ木する）。
【００９１】
ステップＳ４で獲得したアノテーション情報のそれぞれに対するステップＳ５〜Ｓ１１までの処理が終了すると、Ｗｅｂ閲覧器１１１はステップＳ１２に進み、アノテーション情報のそれぞれのＨＴＭＬ断片が埋め込まれた木構造をレンダリングエンジン１６６に渡してレンダリングする。
【００９２】
ここでは、図１７のフローチャートに示す処理を具体的な例によって説明する。例えば図８のＷｅｂページの例では、Ｗｅｂ閲覧器１１１に貼り付け先のＵＲＩとして
「http://www.xxx/cgi/link.cgi?URI=/shiryou/toukei/1402-027.htm」
が与えられる。Ｗｅｂ閲覧器１１１は貼り付け先のＵＲＩで与えられるＷｅｂページをネットワークから読み込み、パージングを行う。実際に、図８のＷｅｂページはｃｇｉ形式のプログラムで記述されている。
【００９３】
図８のＷｅｂページではｃｇｉ形式のプログラムが実行されて、図１８のような木構造が作成される。図１８は木構造の一例の構成図である。なお、図１８の木構造は一部省略している。
【００９４】
アノテーション管理部１１６はアノテーションデータベース１２２から貼り付け先のＵＲＩに
「http://www.xxx/cgi/link.cgi?URI=/shiryou/toukei/1402-027.htm」
を持つ図１９のようなアノテーション情報を取り出す。図１９はアノテーション情報の一例の構成図である。切り出し情報取得部１１２はアノテーション情報に記述された切り取り元のＵＲＩとして
「http://yyy/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8」
を取り出す。切り出し情報取得部１１２は取り出した切り取り元のＵＲＩをＷｅｂ閲覧器１１１に渡し、図６に示すＷｅｂページのコンテンツをネットワークから取得する。Ｗｅｂ閲覧器１１１は取得した図６に示すＷｅｂページをパージングして図２０のような木構造を作成する。図２０は木構造の一例の構成図である。なお、図２０の木構造は一部省略している。
【００９５】
切り出し情報取得部１１２はアノテーション情報に記述された切り取り元の切り取り位置としてＸＰａｔｈ「/html/body/div[1]/div[2]/div[6]/div[1]」を求め、パージングされた図２０のような木構造上における切り取り位置を求める。図２１は木構造上における切り取り位置を示した一例の構成図である。図２１の構成図では木構造上における切り取り位置を矢印で示している。
【００９６】
切り出し情報取得部１１２は、木構造上における切り取り位置で指定されるノード全体をＨＴＭＬ断片として取り出す。具体的には、図２２に示した
<div id=”searchBody” class=pBody”>から</div>
までのＨＴＭＬテキスト２２０になる。なお、図２２では説明に関係ないノードをまとめて表示している。取り出されたＨＴＭＬ断片は後述するように正規化部１１３が必要に応じて正規化する。
【００９７】
次に、貼り付け位置獲得部１１４はＨＴＭＬ断片を貼り付ける木構造上の貼り付け位置を求める。具体的には、貼り付け先のＷｅｂページのパージング結果である木構造上でアノテーション情報の貼り付け位置に相当する位置を求める。図１９のアノテーション情報の場合は貼り付け位置として「/html/body/table/tbody/tr[4]/th/h2」を求める。図２３は木構造上における貼り付け位置を示した一例の構成図である。図２３の構成図では木構造上における貼り付け位置を矢印で示している。
【００９８】
そして、合成部１１５は取り出して正規化したＨＴＭＬ断片を図２３の矢印の位置に埋め込む（接ぎ木する）ことで、切り取り元のＨＴＭＬ断片が埋め込まれた貼り付け先のＷｅｂページの出力を実現する。
【００９９】
実際の埋め込みでは、ＨＴＭＬ断片自身だけでなく、埋め込んだものを削除・移動・アイコン化したり、あるいは切り取ったものを貼り付けたものであることがわかるように枠で囲ったり、切り取り元のタイトルを示したり、切り取り元のＷｅｂページにアクセスできるようなリンクを設けるなどの機能や情報を備えたＨＴＭＬ断片に加工して貼り付け先のＷｅｂページに貼り付ける。
【０１００】
また、実際の埋め込み位置は、指定されたノードに対してあらかじめ取り決めた方法で埋め込む。例えば指定されたノードの子の最後に埋め込む場合、ＨＴＭＬ上では求められたノードの終了タグの直前に埋め込むことになる。すべてのアノテーション（図１９では１件だけである）の埋め込みが終了したならば、合成部１１５はアノテーションが埋め込まれた木構造をレンダリングエンジン１６６に渡してレンダリングする。
【０１０１】
例えばレンダリングエンジン１６６は木構造のタグを解釈することで、<title>はタイトル、<h2>はヘッダ、<p>は段落、として見える形に変換し表示することができる。
【０１０２】
（Ｗｅｂマッシュアップ設定装置１００）
Ｗｅｂマッシュアップ設定装置１００を組込んだ典型的なＷｅｂ閲覧器１０１は、切り取り元選定部１０２、範囲提示選定部１０３、貼り付け先選定部１０４、アノテーション管理部１０５を有する。
【０１０３】
図２４は、切り取り元選定部の処理を表したフローチャートである。切り取り元選定部１０２は、Ｗｅｂ閲覧器１０１に埋め込まれたコマンド（キー操作やメニュー、ボタンなど）により起動される。
【０１０４】
ステップＳ２１に進み、起動された切り取り元選定部１０２はモードを切り取りとして範囲提示選定部１０３を起動する。ステップＳ２２に進み、切り取り元選定部１０２は範囲提示選定部１０３から切り取り位置のノード（ＸＰａｔｈ）を受け取る。ステップＳ２３に進み、切り取り元選定部１０２は範囲提示選定部１０３から受け取った切り取り位置のノード（ＸＰａｔｈ）を切り取り情報として一時的に格納して終了する。
【０１０５】
図２５は、貼り付け先選定部の処理を表したフローチャートである。貼り付け先選定部１０４は、切り取り元選定部１０２の終了によって、あるいはＷｅｂ閲覧器１０１に埋め込まれたコマンド（キー操作やメニュー、ボタンなど）により起動される。
【０１０６】
ステップＳ３１に進み、起動された貼り付け先選定部１０４はモードを貼り付けとして範囲提示選定部１０３を起動する。ステップＳ３２に進み、貼り付け先選定部１０４は範囲提示選定部１０３から貼り付け位置のノード（ＸＰａｔｈ）を受け取る。
【０１０７】
ステップＳ３３に進み、貼り付け先選定部１０４はアノテーション管理部１０５を呼び出し、一時的に格納してあった切り取り情報と範囲提示選定部１０３から受け取った貼り付け位置のノード（ＸＰａｔｈ）である貼り付け情報とをセットにして、アノテーションデータベース１２２に登録する。
【０１０８】
図２６は、範囲提示選定部の処理を表したフローチャートである。範囲提示選定部１０３はユーザのアクション等により、切り取り位置、或いは、貼り付け位置のノード（ＸＰａｔｈ）を切り取り元選定部１０５又は貼り付け先選定部１０４に返すものである。具体的に範囲提示選定部１０３は、例えばマウスカーソルの移動によって現在注目している木構造上のノードを画面上で選定させ、木構造上のノードをマウスクリックによって確定させるものである。
【０１０９】
ステップＳ４１に進み、範囲提示選定部１０３は、現在が切り取り作業のための範囲提示なのか、貼り付け作業のための範囲提示なのかのモードを受け取る。例えば範囲提示選定部１０３は切り取り元選定部１０２から切り取り作業のための範囲提示であることを示す切り取りモードを受け付ける。また、範囲提示選定部１０３は貼り付け先選定部１０４から貼り付け作業のための範囲提示であることを示す貼り付けモードを受け付ける。範囲提示選定部１０３は受け付けたモードを起動させる。
【０１１０】
ステップＳ４２に進み、範囲提示選定部１０３は、画面上のマウスカーソルの位置を求める。ステップＳ４３に進み、範囲提示選定部１０３は画面上のマウスカーソルの位置に対応するＷｅｂページの木構造上の位置を求める。ステップＳ４４に進み、範囲提示選定部１０３は画面上のマウスカーソルの位置に対応するＷｅｂページの木構造上の位置から適切なノード（要素）を現在のノードとして求める。例えば範囲提示選定部１０３は文字や文字間（＃ｔｅｘｔノード）ならば、上位ノード（pノード、tdノード、h1ノードなど）を現在のノードとする。
【０１１１】
ステップＳ４５に進み、範囲提示選定部１０３は現在のノードを囲う枠をモードに合わせて表示する。範囲提示選定部１０３は例えば切り取り作業の枠の色と貼り付け作業の枠の色とを変更する。また、範囲提示選定部１０３はマウスカーサの動きにより枠を大きくしたり小さくしたりする。
【０１１２】
ステップＳ４６に進み、範囲提示選定部１０３は予め設定したアクション（マウスボタンをクリックするであるとか、指定されたキー入力など）による割り込みがあれば、その時点でのノード（枠が表示されている範囲）を切り取り元選定部１０２又は貼り付け先選定部１０４に返す。なお、範囲提示選定部１０３は予め設定したアクションによる割り込みがなければ、ステップＳ４２に戻り、処理を続ける。
【０１１３】
（正規化部１１３）
図２７は、正規化部の処理を表したフローチャートである。正規化部１１３は切り取られた部分データ（ＨＴＭＬ断片）を受け取ると、ステップＳ５１に進み、切り取られた部分データを貼り付け先のＷｅｂページの環境に適合するように、文字符号化方式の変換を行う。文字符号化方式の変換は、切り取られた部分の文字符号化方式および貼り付け先の文字符号化方式を推測し、切り取られた部分の文字符号化方式を貼り付け先の文字符号化方式に変換するものである。
【０１１４】
ステップＳ５２に進み、正規化部１１３はＨＴＭＬ断片を貼り付け先のＷｅｂページの環境に適合するように、絶対パスの変換を行う。絶対パスの変換は、切り取られた部分データ中にあるリンク、画像、プログラム等の相対パスで記述されたファイル名を絶対パスに変換するものである。なお、ステップＳ５１及びステップＳ５２の処理の順序は任意である。
【０１１５】
ステップＳ５３に進み、正規化部１１３はプログラム呼び出し変換部８を呼び出して後述のプログラム呼び出し変換を行う。
【０１１６】
ステップＳ５１の文字符号化方式の変換処理は例えば図２８のフローチャートに示す手順で行われる。図２８は文字符号化方式の変換処理を表したフローチャートである。
【０１１７】
ステップＳ６１に進み、正規化部１１３は切り取り元のＷｅｂページの文字符号化方式を取得する。ステップＳ６２に進み、正規化部１１３は貼り付け先のＷｅｂページの文字符号化方式を取得する。
【０１１８】
Ｗｅｂページの文字符号化方式を取得する一つの方法は、Ｗｅｂページのヘッダ部分に記述されている文字符号化方式の部分を参照する方法である。例えばｈｅａｄ要素に
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
のような記述があるＷｅｂページはcharset=utf-8と記述されているので文字符号化方式が「ＵＴＦ−８」であることがわかる。また、ｈｅａｄ要素に
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
のような記述があるＷｅｂページはcharset=Shift_JISと記述されているので文字符号化方式が「Ｓｈｉｆｔ−ＪＩＳ」であることがわかる。
【０１１９】
Ｗｅｂページの文字符号化方式を取得する別の方法は、使用されているテキストの文字コードから文字符号化方式を推定するものである。Ｗｅｂページの中には、自分の文字符号化方式を明記していないものもあり、必要に応じて文字符号化方式を推定することが必要である。文字符号化方式によって文字コードの使っている領域が異なるため、それなりに文字符号化方式が推定できることは良く知られている技術であるので、ここで詳しくは述べない。
【０１２０】
ステップＳ６３に進み、正規化部１１３は切り取り元のＷｅｂページの文字符号化方式と貼り付け先のＷｅｂページの文字符号化方式とを比較する。切り取り元のＷｅｂページの文字符号化方式と貼り付け先のＷｅｂページの文字符号化方式とが同じであれば、正規化部１１３は文字符号化方式の変換が不要であると判定し、図２８のフローチャートの処理を終了する。切り取り元のＷｅｂページの文字符号化方式と貼り付け先のＷｅｂページの文字符号化方式とが異なれば、正規化部１１３はステップＳ６４に進み、切り取られた部分データ（ＨＴＭＬ断片）を貼り付け先のＷｅｂページの文字符号化方式に変換する。
【０１２１】
ステップＳ５２の絶対パスの変換処理は例えば図２９のフローチャートに示す手順で行われる。図２９は絶対パスの変換処理を表したフローチャートである。
【０１２２】
ステップＳ７１に進み、正規化部１１３は正規化するＨＴＭＬ断片と共に、切り取り元のＷｅｂページを入力として受け取る。ステップＳ７２に進み、正規化部１１３は正規化するＨＴＭＬ断片から属性ノード（属性名と属性値との対）を探す。例えば
<form method="post" action="example.cgi"> 〜 </form>では、methodとpostとが一つの属性ノード（属性名と属性値との対）として見つかる。
【０１２３】
正規化するＨＴＭＬ断片から属性ノードが見つかれば、正規化部１１３はステップＳ７４に進み、属性ノードがＵＲＩを記述する属性であるかを判定する。例えばmethodは属性値としてＵＲＩを記述する属性ではない（getかpostをとる）と判定される。
【０１２４】
属性ノードがＵＲＩを記述する属性でないと判定すれば、正規化部１１３はステップＳ７７に進み、次の属性ノードを探し、ステップＳ７３に戻る。例えば
<form method="post" action="example.cgi"> 〜 </form>では、actionとexample.cgiとが次の属性ノードとして見つかる。正規化するＨＴＭＬ断片から次の属性ノードが見つかったため、正規化部１１３はステップＳ７４に進み、属性ノードがＵＲＩを記述する属性であるかを判定する。
【０１２５】
例えばactionは属性値としてデータの送信先（プログラム）のＵＲＩを要求するものであるため、属性値としてＵＲＩを記述する属性であると判定される。属性ノードがＵＲＩを記述する属性であると判定すれば、正規化部１１３はステップＳ７５に進み、属性値が相対パスであるかを判定する。例えばexample.cgiはＵＲＩであるが、相対パスの形式をしている。すなわち、example.cgiは、ＨＴＭＬ断片が http://foo1/bar1.htmlから切り取られたものであるならば、切り取り元サイトがhttp://foo1/ であり、
http://foo1/example.cgiを意味している。
【０１２６】
しかし、このままＨＴＭＬ断片をhttp://foo2/bar2.html上に貼り付けると、データの送信先はhttp://foo2/example.cgiを指すことになってしまう。そこで、actionの属性値を切り取り元サイトであるhttp://foo1/と合成して絶対パスである
http://foo1/example.cgiに変換する必要がある。
【０１２７】
同様に、ＨＴＭＬ断片にリンクを示すhref属性<a href="./index.html"> 〜 </a>
を含んでいれば、hrefはＵＲＩを属性値に持つので、属性値を、http://foo1/index.htmlに変換することが必要になる。どの属性の値を変換しなければならないかはテーブルで管理することができる。また、相対パスから絶対パスに変換すること自身は、広く知られている技術なので、ここでは詳しく述べない。
【０１２８】
属性値が相対パスであると判定すれば、正規化部１１３はステップＳ７６に進み、相対パスを絶対パスに変換し、ステップＳ７７に進む。ＨＴＭＬ断片中にあるすべての属性ノードを探索すると、正規化部１１３はステップＳ７３において正規化するＨＴＭＬ断片から属性ノードが見つからないと判定し、図２９のフローチャートの処理を終了する。図２９のフローチャートの処理により、正規化部１１３はＨＴＭＬ断片中にあるすべての属性ノードを探索し、すべての相対パスを絶対パスに変換する。
【０１２９】
（プログラム呼び出し変換部８）
プログラム呼び出し変換部８は、切り取り元のＷｅｂページから切り取られたＨＴＭＬ断片に、何らかのテキストの入力を受けて、入力されたテキストを引数として何らかのプログラムを呼び出しているプログラム呼び出しを含む場合に、プログラム呼び出し変換を行うものである。
【０１３０】
図３０はプログラム呼び出し変換処理を表したフローチャートである。ステップＳ８１に進み、プログラム呼び出し変換部８のフォーム入力存在確認部３１は切り取り元のＷｅｂページから切り取られたＨＴＭＬ断片に、何らかのテキストの入力を受けて、入力されたテキストを引数として何らかのプログラムを呼び出している部分（フォーム入力）が存在するかを確認する。
【０１３１】
フォーム入力が存在すれば、プログラム呼び出し変換部８の切り取り元文字コード確認部３２はステップＳ８２に進み、切り取り元の文字符号化方式を取得する。プログラム呼び出し変換部８の貼り付け先文字コード確認部３３はステップＳ８３に進み、貼り付け先の文字符号化方式を取得する。
【０１３２】
ステップＳ８４に進み、プログラム呼び出し変換部８のラッパプログラム生成部３４は貼り付け先の文字符号化方式を切り取り元の文字符号化方式に変換してから元々のプログラムであるＰを呼び出すようなラッパプログラムＰ′を生成する。
【０１３３】
ステップＳ８５に進み、プログラム呼び出し変換部８のプログラム呼び出し書換部３５は切り取られたＨＴＭＬ断片に含まれるプログラムＰを呼び出す部分をラッパプログラムＰ′を呼び出すように書き換える。なお、ステップＳ８１においてフォーム入力が存在しなければ、プログラム呼び出し変換部８は図３０のフローチャートの処理を終了する。図３０のフローチャートの処理後、プログラム呼び出し変換部８は正規化の結果としてＨＴＭＬ断片を正規化部７に返す。
【０１３４】
フォーム入力の存在は、ＨＴＭＬ断片に特定の要素（具体的にはformタグ）が存在するかどうかで確認できる。また、切り取り元の文字符号化方式の取得、貼り付け先の文字符号化方式の取得については、既に述べたとおりである。
【０１３５】
ラッパプログラムＰ′を生成する一つの方法は以下のようになる。ラッパプログラム生成部３４は呼び出しプログラム名、プログラムの引数となる名前、データ（引数）の送信形式を獲得する。
【０１３６】
ラッパプログラム生成部３４はデータの送信形式に合わせてデータを受け取り、それぞれのデータに対して、文字符号化方式をステップＳ８３で獲得した貼り付け先の文字符号化方式から切り取り元の文字符号化方式に変換するプログラムをかけたあと、呼び出しプログラムを呼び出すラッパプログラムＰ′を作成する。
【０１３７】
そして、プログラム呼び出し書換部３５は元のプログラム呼び出しをラッパプログラムＰ′を呼び出すように書き換える。
【０１３８】
なお、Ｗｅｂ閲覧器のすべてが対応しているわけではないが、ＨＴＭＬ４の規格ではform中で、accept-charset属性を使うことにより、受信する文字符号化方式を指定することができるようになっている。これを利用すれば、
<form name="searchbox" id="searchbox" class="searchbox" action="/wiki/%E7%89%B9%E5%88%A5:%E6%A4%9C%E7%B4%A2">
に対して、
<form name="searchbox" id="searchbox" class="searchbox" action="/wiki/%E7%89%B9%E5%88%A5:%E6%A4%9C%E7%B4%A2" accept charset="utf-8">
というように変換することで、切り取り元の文字符号化方式を指定することができるためラッパプログラムＰ′を実現できる。
【０１３９】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、マッシュアップ装置は図１４のＷｅｂマッシュアップ実現装置１１０を有する形態、Ｗｅｂマッシュアップ設定装置１００及びＷｅｂマッシュアップ実現装置１１０を有する形態、Ｗｅｂマッシュアップ設定装置１００，Ｗｅｂマッシュアップ実現装置１１０及びアノテーション管理サーバ１２０を有する形態など、様々な形態をとることができる。
【０１４０】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
切り取り元のＷｅｂ資源から切り取った部分を貼り付け先のＷｅｂ資源に貼り付けるコンピュータを動作させるマッシュアッププログラムであって、
前記コンピュータを、
切り取り情報と貼り付け情報とが対応付けられているアノテーション情報と、表示対象のＷｅｂ資源の情報とに基づき、前記表示対象のＷｅｂ資源を貼り付け情報として含むアノテーション情報を取得するアノテーション情報取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、切り取り元のＷｅｂ資源を取得する切り取り元取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、前記切り取り元取得手段が取得した切り取り元のＷｅｂ資源から切り取るべき断片を切り取る切り取り手段と、
前記切り取り手段が切り取った断片を貼り付け先のＷｅｂ資源の環境に適合するように正規化する正規化手段と、
前記正規化手段により正規化された前記断片を、前記アノテーション情報取得手段が取得したアノテーション情報に含まれる貼り付け情報に基づき、表示対象のＷｅｂ資源に貼り付ける貼り付け手段と
して動作させるマッシュアッププログラム。
（付記２）
前記正規化手段は、前記切り取り手段が切り取った断片の文字符号化方式を貼り付け先の文字符号化方式に変換する文字符号化方式変換を行う請求項１記載のマッシュアッププログラム。
（付記３）
前記コンピュータを、更に、
前記切り取り手段が切り取った断片にフォーム入力をしてプログラムを呼び出す部分が存在する場合に、貼り付け先の文字符号化方式を切り取り元の文字符号化方式に変換してから前記プログラムを呼び出すラッパプログラムを生成し、前記断片に含まれる前記プログラムを呼び出す部分を、前記ラッパプログラムを呼び出すように書き換えるプログラム呼び出し書換手段と
して機能させる請求項１記載のマッシュアッププログラム。
（付記４）
前記アノテーション情報は、切り取り元の所在情報，切り取り場所の構造位置情報を有する切り取り情報と、貼り付け先の所在情報，貼り付け先の構造位置情報を有する貼り付け情報とを含む付記１乃至３何れか一項記載のマッシュアッププログラム。
（付記５）
切り取り元のＷｅｂ資源から切り取った部分を貼り付け先のＷｅｂ資源に貼り付けるマッシュアップ装置であって、
切り取り情報と貼り付け情報とが対応付けられているアノテーション情報と、表示対象のＷｅｂ資源の情報とに基づき、前記表示対象のＷｅｂ資源を貼り付け情報として含むアノテーション情報を取得するアノテーション情報取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、切り取り元のＷｅｂ資源を取得する切り取り元取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、前記切り取り元取得手段が取得した切り取り元のＷｅｂ資源から切り取るべき断片を切り取る切り取り手段と、
前記切り取り手段が切り取った断片を貼り付け先のＷｅｂ資源の環境に適合するように正規化する正規化手段と、
前記正規化手段により正規化された前記断片を、前記アノテーション情報取得手段が取得したアノテーション情報に含まれる貼り付け情報に基づき、表示対象のＷｅｂ資源に貼り付ける貼り付け手段と
を有するマッシュアップ装置。
（付記６）
切り取り元のＷｅｂ資源から切り取った部分を貼り付け先のＷｅｂ資源に貼り付けるコンピュータによって実行されるマッシュアップ方法であって、
前記コンピュータが、
切り取り情報と貼り付け情報とが対応付けられているアノテーション情報と、表示対象のＷｅｂ資源の情報とに基づき、前記表示対象のＷｅｂ資源を貼り付け情報として含むアノテーション情報を取得するアノテーション情報取得ステップと、
前記アノテーション情報取得ステップで取得したアノテーション情報に含まれる切り取り情報に基づき、切り取り元のＷｅｂ資源を取得する切り取り元取得ステップと、
前記アノテーション情報取得ステップで取得したアノテーション情報に含まれる切り取り情報に基づき、前記切り取り元取得ステップで取得した切り取り元のＷｅｂ資源から切り取るべき断片を切り取る切り取りステップと、
前記切り取りステップで切り取った断片を貼り付け先のＷｅｂ資源の環境に適合するように正規化する正規化ステップと、
前記正規化ステップで正規化された前記断片を、前記アノテーション情報取得ステップで取得したアノテーション情報に含まれる貼り付け情報に基づき、表示対象のＷｅｂ資源に貼り付ける貼り付けステップと
を実行するマッシュアップ方法。
【符号の説明】
【０１４１】
１    アノテーション情報
２    所在情報（ＵＲＩ）
３    アノテーション情報取得部
４    切り取り元取得部
５    切り取り元資源（Ｗｅｂページ）
６    切り取り部
７    正規化部
８    プログラム呼び出し変換部
９    貼り付け部
１０    貼り付け先資源
１１    マッシュアップ結果データ
２１，２２    窓
３１    フォーム入力存在確認部
３２    切り取り元文字コード確認部
３３    貼り付け先文字コード確認部
３４    ラッパプログラム生成部
３５    プログラム呼び出し書換部
６１    検索窓の部分
７１，８１    赤枠
９１    検索ボタン
１００    Ｗｅｂマッシュアップ設定装置
１０１，１１１    Ｗｅｂ閲覧器
１０２    切り取り元選定部
１０３    範囲提示選定部
１０４    貼り付け先選定部
１０５，１１６    アノテーション管理部
１１０    Ｗｅｂマッシュアップ実現装置
１１２    切り出し情報取得部
１１３    正規化部
１１４    貼り付け位置獲得部
１１５    合成部
１２０    アノテーション管理サーバ
１２１    アノテーションデータベース管理部
１２２    アノテーションデータベース
１５１    入力装置
１５２    出力装置
１５３    ドライブ装置
１５４    補助記憶装置
１５５    主記憶装置
１５６    演算処理装置
１５７    インターフェース装置
１５８    記録媒体
１６０    Ｗｅｂ閲覧器
１６１    ＨＴＭＬ文書
１６２    ＨＴＭＬパーサ
１６３    ＤＯＭツリー
１６４    Ｊａｖａｓｃｒｉｐｔプログラム
１６５    Ｊａｖａｓｃｒｉｐｔエンジン
１６６    レンダリングエンジン
１６７    ユーザインタフェース
２２０    ＨＴＭＬテキスト
【図１】
2010282587.tif 000003
【図２】
2010282587.tif 000004
【図３】
2010282587.tif 000005
【図４】
2010282587.tif 000006
【図５】
2010282587.tif 000007
【図６】
2010282587.tif 000008
【図７】
2010282587.tif 000009
【図８】
2010282587.tif 000010
【図９】
2010282587.tif 000011
【図１０】
2010282587.tif 000012
【図１１】
2010282587.tif 000013
【図１２】
2010282587.tif 000014
【図１３】
2010282587.tif 000015
【図１４】
2010282587.tif 000016
【図１５】
2010282587.tif 000017
【図１６】
2010282587.tif 000018
【図１７】
2010282587.tif 000019
【図１８】
2010282587.tif 000020
【図１９】
2010282587.tif 000021
【図２０】
2010282587.tif 000022
【図２１】
2010282587.tif 000023
【図２２】
2010282587.tif 000024
【図２３】
2010282587.tif 000025
【図２４】
2010282587.tif 000026
【図２５】
2010282587.tif 000027
【図２６】
2010282587.tif 000028
【図２７】
2010282587.tif 000029
【図２８】
2010282587.tif 000030
【図２９】
2010282587.tif 000031
【図３０】
2010282587.tif 000032