JP5267342B2 - マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法 - Google Patents

マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法 Download PDF

Info

Publication number
JP5267342B2
JP5267342B2 JP2009137666A JP2009137666A JP5267342B2 JP 5267342 B2 JP5267342 B2 JP 5267342B2 JP 2009137666 A JP2009137666 A JP 2009137666A JP 2009137666 A JP2009137666 A JP 2009137666A JP 5267342 B2 JP5267342 B2 JP 5267342B2
Authority
JP
Japan
Prior art keywords
cut
pasting
program
information
cutting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009137666A
Other languages
English (en)
Other versions
JP2010282587A (ja
Inventor
文人 西野
照宣 粂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009137666A priority Critical patent/JP5267342B2/ja
Publication of JP2010282587A publication Critical patent/JP2010282587A/ja
Application granted granted Critical
Publication of JP5267342B2 publication Critical patent/JP5267342B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法に係り、特にネットワーク上の資源を合わせるマッシュアップ(mash up)と呼ばれる技術を利用するマッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法に関する。
近年、インターネットやイントラネット等のネットワーク上の情報資源(例えばWebページ)のマッシュアップと呼ばれる技術が、よく利用されている。マッシュアップは複数の異なる提供元のコンテンツや機能を合わせて新しいコンテンツやサービスを形成するものである。
Webにおけるマッシュアップでは、検索、写真、動画、地図などのサービスサイトがAPI(Application Program Interface)を公開することで、写真と撮影場所の地図とを組み合わせたり、郵便番号データと地図とを組み合わせたりするサービスが構築されてきた。
Webにおけるマッシュアップは、このようなサービスをプログラムレベルで構築するだけでなく、エンドユーザレベルで簡単にできるようになれば、気づきの共有、Webページの共同制作、進捗管理、ポータルの作成、広告システムなど様々な場面で利用されることが期待される。
あるWebページ上のコンテンツや機能の一部分を切り取り、別のWebページ上に貼り付けることで利用可能にする、すなわち、あるWebページにアクセスしたとき、その時点での別のWebページの内容を表示したり、検索や動画閲覧などの機能を可能にしたりするには、指定されたWebページの一部分を切り取る技術と、Webページの一部分を指定された別のWebページに貼り付ける技術とが必要になる。
あるWebページの一部分を切り取る技術はクリッピング技術あるいはスクレイピング技術として、以下のような技術が良く知られている。例えばWebクリッピング技術としては、指定されたWebページの一部分を画像(スナップショット)として切り取るものが知られている。Webスクレイピング技術としては、指定されたWebページに対してパターンマッチングやXpathによる位置指定などによりデータを抜き取るものが知られている(例えば特許文献1参照)。
一方、あるWebページに情報を付与する技術はWebアノテーション技術として知られており、テキストや画像、HTML断片(注:Webページの記述にはHTML以外にもXHTML、XML、CHTMLなど様々な形式があるが、これらを代表してHTMLとして記述する)などHTMLで扱えるデータを、別のWebページ(HTML)に埋め込む。
このように、Webページからデータを切り取る技術と、別のWebページにデータを付与するアノテーション技術とを組み合わせれば、あるWebページからクリップないしスクレイプしたデータを別のWebページ上にマッシュアップ(合成)して表示することは可能である。
特開2004−110427号公報
しかしながら、通常のクリッピングやスクレイピングでは元のWebページをスナップショットとして画像で保存する、あるいは元のWebページの構造化文書(HTML)そのものの断片、または、構造化文書から構造(タグ)を取り除いたデータを保存しているため、マッシュアップした画面にアクセスした時点での最新の情報が反映されず、元のWebページにあった検索や動画等の機能も利用できない。
既存のシステムとして、あらかじめ用意されたガジェット(ウィジェット)を特定のWebページに貼り付けるものがある。また、既存のシステムとして、「これを自分のブログに貼り付けてください」ということで構造化文書の断片があらかじめ用意されているものもある。これらのシステムでは、特定の機能をもつ画面を別のWebページに貼り付けることができるが、用意されたものを貼り付けられるだけで、任意のWebページの一部分を貼り付けられるものではない。
本発明の一実施形態は、上記の点に鑑みなされたもので、ネットワーク上の任意の資源の機能をマッシュアップにより形成した新たな資源に引き継がせるマッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法を提供することを目的とする。
本発明の一実施形態は、切り取り元のWeb資源から切り取った部分を貼り付け先のWeb資源に貼り付けるマッシュアップ装置としてコンピュータを機能させるマッシュアッププログラムであって、前記コンピュータを、前記切り取り元の切り取り情報を取得し、前記切り取り情報に基づいて、前記切り取り元からWeb資源を切り取る切取手段と、前記切取手段により切り取られたWeb資源に、フォーム入力をしてプログラムを呼び出す部分が存在する場合に、前記貼り付け先の文字符号化方式を前記切り取り元の文字符号化方式に変換してから前記プログラムを呼び出すラッパプログラムを生成するラッパプログラム生成手段と、前記貼り付け先の貼り付け情報を取得し、前記貼り付け情報に基づいて、前記切取手段により切り取られたWeb資源を前記貼り付け先に貼り付ける貼付手段と、前記貼り付け先において前記プログラムを呼び出す際に、前記ラッパプログラムを呼び出すように書き換えるプログラム呼び出し書換手段と、して機能させる。
なお、本発明の一実施形態の構成要素、表現又は構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
本発明の一実施形態によれば、ネットワーク上の任意の資源の機能をマッシュアップにより形成した新たな資源に引き継がせるマッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法を提供できる。
本実施例によるマッシュアップ方法の一例の説明図である。 本実施例の課題を具体的に説明する為の説明図である。 プログラム呼び出し変換部の一例の構成図である。 プログラム呼び出し変換部が行う処理を説明する為の説明図である。 貼り付け先のWebページの一例のイメージ図である。 切り取り元のWebページの一例のイメージ図である。 赤枠により一部分が指定されたWebページの一例のイメージ図である。 切り取り元のWebページから切り取られた部分が貼り付けられた貼り付け先のWebページの一例のイメージ図である。 検索窓に「SaaS」と入力されたときWebページの一例のイメージ図である。 切り取り元のWebページによる検索結果が表示された貼り付け先のWebページの一例のイメージ図である。 検索窓に「特許庁」と入力されたときWebページの一例のイメージ図である。 切り取り元のWebページによる検索結果が表示された貼り付け先のWebページの一例のイメージ図である。 切り取り元のWebページによる検索結果が表示された貼り付け先のWebページの一例のイメージ図である。 本実施例のマッシュアップ装置を含むシステムの一実施例の構成図である。 コンピュータシステムの一例の構成図である。 本実施例のマッシュアッププログラムを適用したWeb閲覧器の一例の構成図である。 Webマッシュアップ実現装置の処理を表したフローチャートである。 木構造の一例の構成図である。 アノテーション情報の一例の構成図である。 木構造の一例の構成図である。 木構造上における切り取り位置を示した一例の構成図である。 HTMLテキストにおける切り出し位置を示した一例の構成図である。 木構造上における貼り付け位置を示した一例の構成図である。 切り取り元選定部の処理を表したフローチャートである。 貼り付け先選定部の処理を表したフローチャートである。 範囲提示選定部の処理を表したフローチャートである。 正規化部の処理を表したフローチャートである。 文字符号化方式の変換処理を表したフローチャートである。 絶対パスの変換処理を表したフローチャートである。 プログラム呼び出し変換処理を表したフローチャートである。
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では、ネットワーク上の資源の一例としてWebページを例に説明する。
(本実施例の概要)
本実施例は、Webページが自由に改変できない環境下において、第1のWebページの画面上の指定領域に対して、第2のWebページのWeb構造上での位置情報を保持しておく。本実施例は、第1のWebページにアクセスしたときに、保持しておいた第2のWeb構造上の位置情報から現在の第2のWebページの情報を切り取り、第1のWebページに貼り付けたときにリンクやプログラムが正しく動作するように正規化をして現在アクセスしている第1のWebページに埋め込む。本実施例は第1のWebページにアクセスしたとき、第2のWebページの情報も埋め込んで表示することを実現した。
なお、従来技術では、任意のWebページの情報を切り取って、新しいWebページに貼り付けたとしても、任意のWebページの機能を、あたかも新しいWebページの機能として、そのまま引き継ぐことができなかった。
特に、検索窓のようなフォーム入力から、あるプログラムPを呼び出すといった部分を任意のWebページから切り取った場合、切り取った部分の文字符号化方式を正規化するだけでは、貼り付け先の新しいWebページおいて、フォーム入力した文字列によってプログラムPが呼び出されてしまう。したがって、検索窓のようなフォーム入力から、あるプログラムPを呼び出すといった部分を任意のWebページから切り取った場合は、引数が貼り付け先の新しいWebページの文字符号化方式によってプログラムPに与えられてしまい、正しい結果が得られないという問題があった。
すなわち、WebページやWebページから呼び出されるプログラム自身を書き換えることのできない環境下で、ある任意のWebページに提供されている情報提供や検索などの機能を、単に切り貼りするだけで別のWebページ上でも情報提供や検索などの機能を正しく実現することが課題となっていた。
この課題を解決する方法として、本実施例では、任意のWebページの画面上の部分を切り取って(切り取り位置を取得して)、その位置情報を保持しておく。本実施例では指定された他のWebページにアクセスしたときに、切り取った任意のWebページ上の位置情報から現在の任意のWebページ上の情報を切り取り、貼り付ける他のWebページに合うように正規化を行って、現在アクセスしている他のWebページに一時的に埋め込む。このように、本実施例では、他のWebページにアクセスしたとき、任意のWebページ(複数のWebページであってもよい)の機能をそのままに、マッシュアップさせることを実現する。
図1は本実施例によるマッシュアップ方法の一例の説明図である。マッシュアップ(切り貼り)する情報は、切り取り元の所在情報(URI)、切り取り元の構造位置(例えばXPathなど)の切り取り情報と、貼り付け先の所在情報(URI)、貼り付け先の構造位置(例えばXPathなど)の貼り付け情報とを含むアノテーション情報1としてあらかじめデータベース(DB)等に登録されているものとする。所在情報(URI)2は現在注目している(表示しようとしている)Webページのものである。
アノテーション情報取得部3は現在注目しているWebページの所在情報を貼り付け先の所在情報とするアノテーション情報1を取得する。アノテーション情報取得部3が取得したアノテーション情報1には、何をマッシュアップするかの情報、すなわち、切り取り元の所在情報、切り取り元の構造位置が含まれる。したがって、切り取り元取得部4はアノテーション情報1に基づき、ネットワークから切り取り元の所在情報の切り取り元資源(Webページ)5を取得する。
切り取り部6は切り取り元取得部4が取得したWebページを解析し、アノテーション情報1に含まれる切り取り元の構造位置の情報に基づいて、切り取り元取得部4が取得したWebページから切り取るべき断片(HTML断片)を切り取る。
正規化部7は切り取り部6が切り取ったHTML断片を、貼り付け先のWebページの環境に適合するように正規化する。具体的に、正規化としては、(1)切り取られた部分の文字符号化方式と貼り付け先の文字符号化方式とを推測し、切り取られた部分の文字符号化方式を貼り付け先の文字符号化方式に変換する文字符号化方式変換と、(2)切り取られた部分のデータ中にあるリンク、画像、プログラム等の中で相対パスにより記述されたURIを絶対パスに変換する絶対パス変換と、を行う。さらに、切り取られた部分にプログラムの呼び出しを含む場合には、プログラム呼び出し変換部8が、後述するようなプログラム呼び出し変換も行う。
貼り付け部9はアノテーション情報1に記述された貼り付け情報に基づき、正規化された断片を現在注目している(表示しようとしている)Webページに適切な形式で貼り付ける。具体的に貼り付け部9は現在注目しているWebページである貼り付け先資源10の埋め込むべき構造位置に、適切な表示形式で表示されるようなHTML断片として埋め込む(木構造上で接ぎ木する)。なお、埋め込むと言っても表示上では浮き上がっているようなものでも構わない(HTML上では、どこかに埋め込まれていることになる)。
貼り付け部9は、正規化されたHTML断片が埋め込まれたHTML(切り取り元のWebページの木構造が接ぎ木された木構造)をマッシュアップ結果データ11として出力する。このデータ(木構造)は、一般的にWeb閲覧器のレンダリングエンジンによってレンダリングされる。レンダリングエンジンは現在注目しているWebページに切り取り元の情報や機能を貼り付けて表示する。
なお、Webページを解釈してディスプレイに表示(あるいはプリンタに出力、音声によって読み上げ)したり、リンクを辿る機能を持つソフトウェアは、ウェブブラウザ(インターネットブラウザ、WWWブラウザ、あるいは単にブラウザ)、Web閲覧ソフトなどとも呼ばれるが、本明細書ではWeb閲覧器と称するものとする。
なお、実際にはアノテーション情報1を作成する(切り取る情報を指定する切り取り情報と、切り取った情報の貼り付け先を指定する貼り付け情報とを設定する)切り貼り情報設定部が別にある。
本実施例によるマッシュアップ方法では、切り取った情報の内容自身ではなく、切り取り元の所在情報及び構造位置と、貼り付け先の所在情報及び構造位置とがアノテーション情報1としてDBに格納されている。以上のように、本実施例によるマッシュアップ方法では、Webページ上の画面を切り取って、切り取り元の所在情報及び構造位置を保持しておく。
本実施例によるマッシュアップ方法では、指定された他のWebページにアクセスしたときに、切り取ったWebページの所在情報及び構造位置から現在の切り取り元のWebページの情報を取り出す。本実施例のマッシュアップ方法では、取り出した現在の切り取り元のWebページの情報を貼り付け先のWebページに合うように正規化し、現在アクセスしているWebページに一時的に埋め込むことで、複数のWebページの機能をそのままに、マッシュアップさせることを実現した。
図2は本実施例の課題を具体的に説明する為の説明図である。WebページJは文字符号化方式Aによって記述されている。WebページJはユーザからの入力を受け付ける窓21があり、窓21にテキストが入力されてボタンクリックなどのアクションが行われることで、プログラムPを呼び出すようになっている。窓21に入力されたテキストXは文字符号化方式AとしてプログラムPに渡される。プログラムPはテキストXを文字符号化方式Aであるとして処理する。
ここでは、窓21にテキストXが入力されるとプログラムPを呼び出すWebページJのHTML断片が切り取られ、切り取られたHTML断片が文字符号化方式BであるWebページKに埋め込まれたとする。
正規化部7による正規化により、WebページJのHTML断片は文字符号化Bに変換されて埋め込まれるので、WebページKの上で正しく表示される。また、正規化部7による正規化により、WebページJのHTML断片は絶対パス変換が行われるので、入力窓22にテキストXが入力されるとプログラムPを呼び出すことができる。
しかし、窓22に入力されるテキストXはWebページKの文字符号化方式である文字符号化方式Bのテキストであり、文字符号化方式BのテキストXがプログラムPに渡されることになる。
文字符号化方式AとBとが同じである場合や、プログラムPが文字符号化方式Bにも対応できているような場合は別として、プログラムPはテキストXを文字符号化方式Aとして処理してしまう。したがって、プログラムPは意図どおりに実行されない。
図2に示した本実施例の課題は、図1のプログラム呼び出し変換部8を図3のように構成することで解決できる。図3はプログラム呼び出し変換部の一例の構成図である。図1のプログラム呼び出し変換部8は、フォーム入力存在確認部31,切り取り元文字コード確認部32,貼り付け先文字コード確認部33,ラッパプログラム生成部34,プログラム呼び出し書換部35を有する。
フォーム入力存在確認部31は、フォーム入力をしてプログラムPを呼び出す部分が切り取った部分に存在するかを確認する。切り取り元文字コード確認部32は、切り取り元の文字符号化方式を確認する。貼り付け先文字コード確認部33は、貼り付け先の文字符号化方式を確認する。フォーム入力存在確認部31,切り取り元文字コード確認部32及び貼り付け先文字コード確認部33の処理は並行して行われる。
切り取った部分にフォーム入力があり、フォーム入力を引数としてプログラムPを呼び出しているならば、ラッパプログラム生成部34は引数を切り取り元の文字符号化方式に変換して元のプログラムPを呼び出すラッパプログラムP′を生成する。プログラム呼び出し書換部35は切り取った部分に含まれるプログラムPを呼び出す部分を、ラッパプログラムP′を呼び出すように書き換える。
プログラム呼び出し変換部8が行う処理は例えば図4に示すようになる。図4はプログラム呼び出し変換部が行う処理を説明する為の説明図である。ラッパプログラム生成部34は切り取った部分に含まれるプログラムPで利用する引数のすべてを文字符号化方式Bから文字符号化方式Aに変換して元のプログラムPを呼び出すラッパプログラムP′を生成する。また、プログラム呼び出し書換部35は切り取った部分に含まれるプログラムPを呼び出す部分を、ラッパプログラムP′を呼び出すように書き換える。
これにより、本実施例ではラッパプログラムP′が生成されるとともに、プログラムPを呼び出す部分がラッパプログラムP′を呼び出すように書き換えられる。本実施例では入力窓22にテキストXが入力されてボタンクリックなどのアクションが行われることにより、プログラムPが直接呼び出されるのではなく、プログラムP′が呼び出され、テキストXが文字符号化方式Bから文字符号化方式Aに変換されたあと、プログラムPが呼び出されるので、意図したどおりの結果が得られることになる。
なお、上記ではフォーム入力としたが、擬似的なフォーム入力(利用者が窓からテキストを入力するのではなく、あらかじめテキストが与えられていたり、何らかの処理結果によってテキストが生成されてプログラムに渡されたりするもの)も含むものとする。
ここでは、本実施例によるマッシュアップ方法を具体的なWebページを参照しつつ説明する。図5は貼り付け先のWebページの一例のイメージ図である。図6は切り取り元のWebページの一例のイメージ図である。図6の切り取り元のWebページは検索窓の部分61を有する。ユーザはシステムがWebページ上で提示する例えば赤枠を移動させて適切な部分を選択し、所定のコマンド(ctrl−c)等でWebページ上の部分を切り取る。
図7は赤枠により一部分が指定されたWebページの一例のイメージ図である。図7のWebページは赤枠71により検索窓の部分61が指定されている。ユーザは図7の状態でWebページ上の部分を切り取る所定のコマンドを入力することにより、切り取り元のWebページから検索窓の部分61を切り取ることができる。
ユーザはシステムがWebページ上で提示する例えば赤枠を移動させて適切な部分を選択し、所定のコマンド(ctrl−v)等でWebページ上の部分に貼り付ける。図8は切り取り元のWebページから切り取られた部分が貼り付けられた貼り付け先のWebページの一例のイメージ図である。
図8のWebページは赤枠81により貼り付け部分が指定されている。ユーザはWebページ上の部分に貼り付ける所定のコマンドを入力することにより、切り取り元のWebページから切り取った検索窓の部分61を貼り付け先のWebページに貼り付けることができる。図8のWebページは図7に示す切り取り元のWebページの検索窓の部分61が赤枠81により指定された貼り付け部分に埋め込まれている。
ここでは図8のWebページに埋め込まれた検索窓にテキストを入力したときの処理について説明する。図9は、検索窓に「SaaS」と入力されたときWebページの一例のイメージ図である。
ユーザは図9の状態で検索ボタン91をクリックすることにより、切り取り元のWebページによる検索結果を貼り付け先のWebページに表示できる。図10は切り取り元のWebページによる検索結果が表示された貼り付け先のWebページの一例のイメージ図である。
また、ここでは図8のWebページに埋め込まれた検索窓にテキストを入力したときの処理について説明する。図11は、検索窓に「特許庁」と入力されたときWebページの一例のイメージ図である。
ユーザは図11の状態で検索ボタン91をクリックすることにより、切り取り元のWebページによる検索結果を貼り付け先のWebページに表示できる。図12は切り取り元のWebページによる検索結果が表示された貼り付け先のWebページの一例のイメージ図である。
貼り付け先のWebページの文字符号化方式が「Shift−JIS」、切り取り元のWebページの文字符号化方式が「UTF−8」である場合、図1のプログラム呼び出し変換部8の処理が無ければ、検索窓に入力された「特許庁」という文字列は文字化けして正しく伝わらない。ユーザは図12に示すように、切り取り元のWebページによる正しい検索結果を貼り付け先のWebページに表示できない。
一方、図1のプログラム呼び出し変換部8の処理が有れば、検索窓に入力された「特許庁」という文字列は文字化けせず、正しく伝わる。ユーザは図13に示すように、切り取り元のWebページによる正しい検索結果を貼り付け先のWebページに表示することができる。図13は切り取り元のWebページによる検索結果が表示された貼り付け先のWebページの一例のイメージ図である。
なお、上記の処理では切り取り元のWebページ及び貼り付け先のWebページに何ら手を加えていない。本実施例によるマッシュアップ方法のポイントは、切り取り元のWebページ上の画面(上記では検索窓の部分61)を切り取って、その検索窓の部分61の位置情報を保持しておく。
貼り付け先のWebページにアクセスしたとき、本実施例によるマッシュアップ方法は切り取り元のWebページの位置情報(検索窓のあるXPath)から、その部分のHTML断片を切り取る。本実施例によるマッシュアップ方法は切り取ったHTML断片を貼り付け先のWebページ用に正規化(文字符号化方式をUTF−8からShift−JISに変換)する。本実施例によるマッシュアップ方法は、貼り付け先のWebページを表示する際、指定された位置にHTML断片を埋め込むことで、画面のマッシュアップを実現している。
本実施例によるマッシュアップ方法は、スナップショット(画像)の切り貼りではないため、検索窓にテキストを入力すれば、切り取り元のWebページの検索プログラムが動いて検索結果を貼り付け先のWebページに表示する。
また、本実施例によるマッシュアップ方法ではフォーム入力からプログラムPを呼び出す際に、ラッパプログラムP′を呼び出すように変換する。ラッパプログラムP′は文字符号化方式を相手の文字符号化方式に変換してから相手のプログラムPを呼び出す。このように、本実施例によるマッシュアップ方法では文字符号化方式が異なっている2つのWebページのマッシュアップにおけるプログラム連携も正しく行うことができる。
(本実施例の詳細)
図14は本実施例のマッシュアップ装置を含むシステムの一実施例の構成図である。図14のシステムは、Webマッシュアップ設定装置100,Webマッシュアップ実現装置110,アノテーション管理サーバ120を有している。
Webマッシュアップ設定装置100はユーザに切り取り部分および貼り付け先を指定させる。Webマッシュアップ実現装置110はユーザに指定された切り取り部分および貼り付け先に基づいたマッシュアップ結果を表示する。アノテーション管理サーバ120はマッシュアップするためのデータを管理する。Webマッシュアップ設定装置100及びWebマッシュアップ実現装置110はWeb閲覧器の拡張機能として実施される。図14ではWebマッシュアップ設定装置100とWebマッシュアップ実現装置110とを分けているが、一つのWeb閲覧器の拡張機能として同時に実現してもよい。
Webマッシュアップ設定装置100は、Web閲覧器101,切り取り元選定部102,範囲提示選定部103,貼り付け先選定部104,アノテーション管理部105を有する。
範囲提示選定部103は、通常のWeb閲覧器101によるWebページの表示においてユーザの特定の操作を受けることで、切り取り範囲や貼り付け先の位置の候補をユーザのキーボードやマウス操作などによって提示する。範囲提示選定部103は、指定された操作(例えばctrl−cやctrl−v)によって現在表示されている範囲に相当する木構造上の位置を返す。
切り取り元選定部102はユーザの特定の操作によって切り取り候補の提示・取得作業を開始し、指示された範囲の切り取りを行う(実際には切り取り位置を取得する)。貼り付け先選定部104はユーザの特定の操作(例えば切り取り終了や特定のキー操作)によって貼り付け候補の提示・取得作業を開始し、指示された位置を貼り付け先と決定(実際には貼り付け位置を取得する)し、切り取り情報(切り取ったWebページのURIと切り取った部分のXPath)と貼り付け情報(貼り付けるWebページのURIである貼り付け先URIと貼り付け位置のXPath)とをセットとしてアノテーション管理部105に渡す。
アノテーション管理部105は与えられた切り取り情報と貼り付け情報とをセットにしたアノテーション情報の登録をアノテーション管理サーバ120に依頼する。なお、切り取りから貼り付けの間にはWeb閲覧器101による一般的なWebページ間の移動やWebページ内での移動などが行われる。
Web閲覧器101による一般的なWebページ間の移動やWebページ内での移動などの作業が一連の作業として行われることを前提とする場合は、切り取り情報を一時的にメモリに保持しても良いが、切り取り作業の終了時に切り取り情報を外部のファイルに書き込み、貼り付け作業の開始時に適切な切り取り情報を外部のファイルから取り出すという形態でも良い。
アノテーション管理サーバ120は、アノテーションデータベース管理部121,アノテーションデータベース122を有する。アノテーションデータベース管理部121はWebマッシュアップ設定装置100からの依頼を受け、切り取り情報と貼り付け情報とをセットとしたアノテーション情報をアノテーションデータベース122に登録する。
また、アノテーションデータベース管理部121はWebマッシュアップ実現装置110からの依頼を受け、指定されたURIを貼り付け先URIとして持つアノテーション情報を返す。なお、アノテーション管理サーバ120は、Webマッシュアップ設定装置100及びWebマッシュアップ実現装置110と同一のコンピュータ上に実現しても構わないし、ネットワークを介して繋がった別のコンピュータ上に実現しても構わない。
Webマッシュアップ実現装置110は、Web閲覧器111,切り出し情報取得部112,正規化部113,貼り付け位置獲得部114,合成部115,アノテーション管理部116を有する。
Web閲覧器111は指定されたURIのコンテンツ(Webページ)をネットワークから取り込む。このとき、アノテーション管理部116は指定されたURIに付与されたアノテーション情報をアノテーション管理サーバ120に要求して受け取る。切り出し情報取得部112は受け取ったアノテーション情報の個々について、アノテーション情報に記述された切り取り元のURIをWeb閲覧器111に渡し、切り取り元のURIのコンテンツをネットワークから取り込み、アノテーション情報に記述された切り取り元のXPathの部分(HTML断片)を切り出す。
正規化部113は切り出されたHTML断片を、貼り付け先のWebページの環境に適合するように正規化する。貼り付け位置獲得部114はアノテーション情報に記述された貼り付け先のXPathからHTML断片を貼り付ける貼り付け位置を求める。
合成部115は、貼り付け位置獲得部114が求めた貼り付け位置に正規化されたHTML断片を貼り付ける。なお、正規化されたHTML断片が合成部115により貼り付けられたWebページのDOMツリーは、後述するように、レンダリングエンジンによってレンダリングされて表示される。
図14のWebマッシュアップ設定装置100,Webマッシュアップ実現装置110及びアノテーション管理サーバ120は、例えば図15に示すコンピュータシステムにより実現できる。
図15はコンピュータシステムの一例の構成図である。コンピュータシステムは、それぞれバスBで相互に接続されている入力装置151,出力装置152,ドライブ装置153,補助記憶装置154,主記憶装置155,演算処理装置156及びインターフェース装置157を有する。
入力装置151はキーボードやマウス等である。入力装置151は各種信号を入力するために用いられる。出力装置152はディスプレイ装置等である。出力装置152は各種ウインドウやデータ等を表示するために用いられる。インターフェース装置157はモデムやLANカードなどであり、ネットワークに接続する為に用いられる。
本実施例のマッシュアッププログラムはWebマッシュアップ設定装置100,Webマッシュアップ実現装置110を制御する各種プログラムに含まれる。マッシュアッププログラムは例えば記録媒体158の配布やネットワークからのダウンロードなどによって提供される。マッシュアッププログラムを記録した記録媒体158は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
マッシュアッププログラムを記録した記録媒体158がドライブ装置153にセットされると、マッシュアッププログラムは記録媒体158からドライブ装置153を介して補助記憶装置154にインストールされる。
ネットワークからダウンロードされたマッシュアッププログラムはインターフェース装置157を介して補助記憶装置154にインストールされる。補助記憶装置154はインストールされたマッシュアッププログラムを格納すると共に、必要なファイル,データ等を格納する。
主記憶装置155は、コンピュータの起動時に補助記憶装置154からマッシュアッププログラムを読み出して格納する。そして、演算処理装置156は主記憶装置155に格納されたマッシュアッププログラムに従って、後述の各種処理を実現している。
(マッシュアッププログラムがWeb閲覧器に適用された例)
図16は、本実施例のマッシュアッププログラムを適用したWeb閲覧器の一例の構成図である。図16のWeb閲覧器160は、典型的な構成を示したものであり、説明に不要なCSSの処理やPDFプラグイン等の細かい部分を省略している。
ネットワークを経由して受信されたHTML文書161をHTMLパーサ162は解析して、木構造(DOMツリー)163を生成する。これと同時に、Javascriptエンジン165はHTML文書161中にあったJavascriptプログラム164を実行し、DOMツリー163の中身を書き換える。書き換えられたDOMツリー163はレンダリングエンジン166に送られる。
レンダリングエンジン166は送られてきたDOMツリー163を画面で見える形に変換する。そして、ユーザインタフェース167を介したユーザの操作等によってJavascriptエンジン165はJavascriptプログラム164に従って、DOMツリー163を書き換え、表示させる内容を変化させる。
マッシュアッププログラム168は、典型的にWeb閲覧器160の中に保持される(すなわち、Web閲覧器160に組込まれる、あるいは機能拡張として付け加えられる形で実現される)。
そして、読み込まれたHTML文書161のJavascriptプログラム164が実行されるのに追加して、マッシュアッププログラム168は実行され、DOMツリー163を書き換える。
なお、マッシュアッププログラム168が参照するアノテーションデータベース等のデータはWeb閲覧器160の外部に保持される。マッシュアッププログラム168を保持する別の実施形態としては、読み込まれるHTML文書161に、マッシュアッププログラム168を保持しておくことが考えられる。この実施形態では、適用できるWebページが限定されるが、Web閲覧器160にマッシュアッププログラム168を保持するのと同じ効果を持たせることができる。
以下では、図14のシステムにおけるWebマッシュアップ設定装置100及びWebマッシュアップ実現装置110の処理について説明する。
(Webマッシュアップ実現装置110)
本実施例のマッシュアッププログラム168を組み込んだWeb閲覧器(あるいは一般にWebクライアント)111は図17に示すフローチャートのような動作を行う。図17はWebマッシュアップ実現装置の処理を表したフローチャートである。
図17中、ステップS1では、Web閲覧器111が、表示するWebページのURIを受け取る。ステップS2に進み、Web閲覧器111は受け取ったURIで指定されるWebページをネットワークから読み込む。ステップS3に進み、Web閲覧器111は読み込んだWebページをパーサによって解析し、構造を抽出する。抽出された構造は木構造(ツリー)の形をとる(例えばDOMツリー)。
また、ステップS4に進み、アノテーション管理部116は受け取ったURIをキーとしてアノテーション管理サーバ120にアクセスし、受け取ったURIが貼り付け先に指定されている全てのアノテーション情報を獲得する。そして、Webマッシュアップ実現装置110はステップS4で獲得したアノテーション情報のそれぞれに対してステップS5〜S11までの処理を行う。
まず、ステップS5に進み、切り出し情報取得部112は受け取ったアノテーション情報に記述された切り取り元のURIを獲得する。ステップS6に進み、切り出し情報取得部112は獲得した切り取り元のURIをWeb閲覧器111に渡し、切り取り元のURIのWebページをネットワークから獲得する。ステップS7に進み、Web閲覧器111は獲得した切り取り元のURIのWebページを、HTMLパーサ162によって解析する。
ステップS8に進み、切り出し情報取得部112はアノテーション情報に記述された切り取り元のXPathから切り取り位置を求め、切り取り元のWebページの切り取り位置からHTML断片を取り出す。ステップS9に進み、正規化部113は取り出されたHTML断片を、貼り付け先のWebページの環境に適合するように正規化する。正規化の詳細は後述する。
ステップS10に進み、貼り付け位置獲得部114はアノテーション情報に記述された貼り付け先のXPathと、ステップS3で抽出された木構造とに基づき、HTML断片を貼り付ける木構造上の貼り付け位置を獲得する。ステップS11に進み、合成部115は貼り付け位置獲得部114が獲得した貼り付け位置に、正規化されたHTML断片を埋め込む(接ぎ木する)。
ステップS4で獲得したアノテーション情報のそれぞれに対するステップS5〜S11までの処理が終了すると、Web閲覧器111はステップS12に進み、アノテーション情報のそれぞれのHTML断片が埋め込まれた木構造をレンダリングエンジン166に渡してレンダリングする。
ここでは、図17のフローチャートに示す処理を具体的な例によって説明する。例えば図8のWebページの例では、Web閲覧器111に貼り付け先のURIとして
「http://www.xxx/cgi/link.cgi?URI=/shiryou/toukei/1402-027.htm」
が与えられる。Web閲覧器111は貼り付け先のURIで与えられるWebページをネットワークから読み込み、パージングを行う。実際に、図8のWebページはcgi形式のプログラムで記述されている。
図8のWebページではcgi形式のプログラムが実行されて、図18のような木構造が作成される。図18は木構造の一例の構成図である。なお、図18の木構造は一部省略している。
アノテーション管理部116はアノテーションデータベース122から貼り付け先のURIに
「http://www.xxx/cgi/link.cgi?URI=/shiryou/toukei/1402-027.htm」
を持つ図19のようなアノテーション情報を取り出す。図19はアノテーション情報の一例の構成図である。切り出し情報取得部112はアノテーション情報に記述された切り取り元のURIとして
「http://yyy/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8」
を取り出す。切り出し情報取得部112は取り出した切り取り元のURIをWeb閲覧器111に渡し、図6に示すWebページのコンテンツをネットワークから取得する。Web閲覧器111は取得した図6に示すWebページをパージングして図20のような木構造を作成する。図20は木構造の一例の構成図である。なお、図20の木構造は一部省略している。
切り出し情報取得部112はアノテーション情報に記述された切り取り元の切り取り位置としてXPath「/html/body/div[1]/div[2]/div[6]/div[1]」を求め、パージングされた図20のような木構造上における切り取り位置を求める。図21は木構造上における切り取り位置を示した一例の構成図である。図21の構成図では木構造上における切り取り位置を矢印で示している。
切り出し情報取得部112は、木構造上における切り取り位置で指定されるノード全体をHTML断片として取り出す。具体的には、図22に示した
<div id=”searchBody” class=pBody”>から</div>
までのHTMLテキスト220になる。なお、図22では説明に関係ないノードをまとめて表示している。取り出されたHTML断片は後述するように正規化部113が必要に応じて正規化する。
次に、貼り付け位置獲得部114はHTML断片を貼り付ける木構造上の貼り付け位置を求める。具体的には、貼り付け先のWebページのパージング結果である木構造上でアノテーション情報の貼り付け位置に相当する位置を求める。図19のアノテーション情報の場合は貼り付け位置として「/html/body/table/tbody/tr[4]/th/h2」を求める。図23は木構造上における貼り付け位置を示した一例の構成図である。図23の構成図では木構造上における貼り付け位置を矢印で示している。
そして、合成部115は取り出して正規化したHTML断片を図23の矢印の位置に埋め込む(接ぎ木する)ことで、切り取り元のHTML断片が埋め込まれた貼り付け先のWebページの出力を実現する。
実際の埋め込みでは、HTML断片自身だけでなく、埋め込んだものを削除・移動・アイコン化したり、あるいは切り取ったものを貼り付けたものであることがわかるように枠で囲ったり、切り取り元のタイトルを示したり、切り取り元のWebページにアクセスできるようなリンクを設けるなどの機能や情報を備えたHTML断片に加工して貼り付け先のWebページに貼り付ける。
また、実際の埋め込み位置は、指定されたノードに対してあらかじめ取り決めた方法で埋め込む。例えば指定されたノードの子の最後に埋め込む場合、HTML上では求められたノードの終了タグの直前に埋め込むことになる。すべてのアノテーション(図19では1件だけである)の埋め込みが終了したならば、合成部115はアノテーションが埋め込まれた木構造をレンダリングエンジン166に渡してレンダリングする。
例えばレンダリングエンジン166は木構造のタグを解釈することで、<title>はタイトル、<h2>はヘッダ、<p>は段落、として見える形に変換し表示することができる。
(Webマッシュアップ設定装置100)
Webマッシュアップ設定装置100を組込んだ典型的なWeb閲覧器101は、切り取り元選定部102、範囲提示選定部103、貼り付け先選定部104、アノテーション管理部105を有する。
図24は、切り取り元選定部の処理を表したフローチャートである。切り取り元選定部102は、Web閲覧器101に埋め込まれたコマンド(キー操作やメニュー、ボタンなど)により起動される。
ステップS21に進み、起動された切り取り元選定部102はモードを切り取りとして範囲提示選定部103を起動する。ステップS22に進み、切り取り元選定部102は範囲提示選定部103から切り取り位置のノード(XPath)を受け取る。ステップS23に進み、切り取り元選定部102は範囲提示選定部103から受け取った切り取り位置のノード(XPath)を切り取り情報として一時的に格納して終了する。
図25は、貼り付け先選定部の処理を表したフローチャートである。貼り付け先選定部104は、切り取り元選定部102の終了によって、あるいはWeb閲覧器101に埋め込まれたコマンド(キー操作やメニュー、ボタンなど)により起動される。
ステップS31に進み、起動された貼り付け先選定部104はモードを貼り付けとして範囲提示選定部103を起動する。ステップS32に進み、貼り付け先選定部104は範囲提示選定部103から貼り付け位置のノード(XPath)を受け取る。
ステップS33に進み、貼り付け先選定部104はアノテーション管理部105を呼び出し、一時的に格納してあった切り取り情報と範囲提示選定部103から受け取った貼り付け位置のノード(XPath)である貼り付け情報とをセットにして、アノテーションデータベース122に登録する。
図26は、範囲提示選定部の処理を表したフローチャートである。範囲提示選定部103はユーザのアクション等により、切り取り位置、或いは、貼り付け位置のノード(XPath)を切り取り元選定部105又は貼り付け先選定部104に返すものである。具体的に範囲提示選定部103は、例えばマウスカーソルの移動によって現在注目している木構造上のノードを画面上で選定させ、木構造上のノードをマウスクリックによって確定させるものである。
ステップS41に進み、範囲提示選定部103は、現在が切り取り作業のための範囲提示なのか、貼り付け作業のための範囲提示なのかのモードを受け取る。例えば範囲提示選定部103は切り取り元選定部102から切り取り作業のための範囲提示であることを示す切り取りモードを受け付ける。また、範囲提示選定部103は貼り付け先選定部104から貼り付け作業のための範囲提示であることを示す貼り付けモードを受け付ける。範囲提示選定部103は受け付けたモードを起動させる。
ステップS42に進み、範囲提示選定部103は、画面上のマウスカーソルの位置を求める。ステップS43に進み、範囲提示選定部103は画面上のマウスカーソルの位置に対応するWebページの木構造上の位置を求める。ステップS44に進み、範囲提示選定部103は画面上のマウスカーソルの位置に対応するWebページの木構造上の位置から適切なノード(要素)を現在のノードとして求める。例えば範囲提示選定部103は文字や文字間(#textノード)ならば、上位ノード(pノード、tdノード、h1ノードなど)を現在のノードとする。
ステップS45に進み、範囲提示選定部103は現在のノードを囲う枠をモードに合わせて表示する。範囲提示選定部103は例えば切り取り作業の枠の色と貼り付け作業の枠の色とを変更する。また、範囲提示選定部103はマウスカーサの動きにより枠を大きくしたり小さくしたりする。
ステップS46に進み、範囲提示選定部103は予め設定したアクション(マウスボタンをクリックするであるとか、指定されたキー入力など)による割り込みがあれば、その時点でのノード(枠が表示されている範囲)を切り取り元選定部102又は貼り付け先選定部104に返す。なお、範囲提示選定部103は予め設定したアクションによる割り込みがなければ、ステップS42に戻り、処理を続ける。
(正規化部113)
図27は、正規化部の処理を表したフローチャートである。正規化部113は切り取られた部分データ(HTML断片)を受け取ると、ステップS51に進み、切り取られた部分データを貼り付け先のWebページの環境に適合するように、文字符号化方式の変換を行う。文字符号化方式の変換は、切り取られた部分の文字符号化方式および貼り付け先の文字符号化方式を推測し、切り取られた部分の文字符号化方式を貼り付け先の文字符号化方式に変換するものである。
ステップS52に進み、正規化部113はHTML断片を貼り付け先のWebページの環境に適合するように、絶対パスの変換を行う。絶対パスの変換は、切り取られた部分データ中にあるリンク、画像、プログラム等の相対パスで記述されたファイル名を絶対パスに変換するものである。なお、ステップS51及びステップS52の処理の順序は任意である。
ステップS53に進み、正規化部113はプログラム呼び出し変換部8を呼び出して後述のプログラム呼び出し変換を行う。
ステップS51の文字符号化方式の変換処理は例えば図28のフローチャートに示す手順で行われる。図28は文字符号化方式の変換処理を表したフローチャートである。
ステップS61に進み、正規化部113は切り取り元のWebページの文字符号化方式を取得する。ステップS62に進み、正規化部113は貼り付け先のWebページの文字符号化方式を取得する。
Webページの文字符号化方式を取得する一つの方法は、Webページのヘッダ部分に記述されている文字符号化方式の部分を参照する方法である。例えばhead要素に
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
のような記述があるWebページはcharset=utf-8と記述されているので文字符号化方式が「UTF−8」であることがわかる。また、head要素に
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
のような記述があるWebページはcharset=Shift_JISと記述されているので文字符号化方式が「Shift−JIS」であることがわかる。
Webページの文字符号化方式を取得する別の方法は、使用されているテキストの文字コードから文字符号化方式を推定するものである。Webページの中には、自分の文字符号化方式を明記していないものもあり、必要に応じて文字符号化方式を推定することが必要である。文字符号化方式によって文字コードの使っている領域が異なるため、それなりに文字符号化方式が推定できることは良く知られている技術であるので、ここで詳しくは述べない。
ステップS63に進み、正規化部113は切り取り元のWebページの文字符号化方式と貼り付け先のWebページの文字符号化方式とを比較する。切り取り元のWebページの文字符号化方式と貼り付け先のWebページの文字符号化方式とが同じであれば、正規化部113は文字符号化方式の変換が不要であると判定し、図28のフローチャートの処理を終了する。切り取り元のWebページの文字符号化方式と貼り付け先のWebページの文字符号化方式とが異なれば、正規化部113はステップS64に進み、切り取られた部分データ(HTML断片)を貼り付け先のWebページの文字符号化方式に変換する。
ステップS52の絶対パスの変換処理は例えば図29のフローチャートに示す手順で行われる。図29は絶対パスの変換処理を表したフローチャートである。
ステップS71に進み、正規化部113は正規化するHTML断片と共に、切り取り元のWebページを入力として受け取る。ステップS72に進み、正規化部113は正規化するHTML断片から属性ノード(属性名と属性値との対)を探す。例えば
<form method="post" action="example.cgi"> 〜 </form>では、methodとpostとが一つの属性ノード(属性名と属性値との対)として見つかる。
正規化するHTML断片から属性ノードが見つかれば、正規化部113はステップS74に進み、属性ノードがURIを記述する属性であるかを判定する。例えばmethodは属性値としてURIを記述する属性ではない(getかpostをとる)と判定される。
属性ノードがURIを記述する属性でないと判定すれば、正規化部113はステップS77に進み、次の属性ノードを探し、ステップS73に戻る。例えば
<form method="post" action="example.cgi"> 〜 </form>では、actionとexample.cgiとが次の属性ノードとして見つかる。正規化するHTML断片から次の属性ノードが見つかったため、正規化部113はステップS74に進み、属性ノードがURIを記述する属性であるかを判定する。
例えばactionは属性値としてデータの送信先(プログラム)のURIを要求するものであるため、属性値としてURIを記述する属性であると判定される。属性ノードがURIを記述する属性であると判定すれば、正規化部113はステップS75に進み、属性値が相対パスであるかを判定する。例えばexample.cgiはURIであるが、相対パスの形式をしている。すなわち、example.cgiは、HTML断片が http://foo1/bar1.htmlから切り取られたものであるならば、切り取り元サイトがhttp://foo1/ であり、
http://foo1/example.cgiを意味している。
しかし、このままHTML断片をhttp://foo2/bar2.html上に貼り付けると、データの送信先はhttp://foo2/example.cgiを指すことになってしまう。そこで、actionの属性値を切り取り元サイトであるhttp://foo1/と合成して絶対パスである
http://foo1/example.cgiに変換する必要がある。
同様に、HTML断片にリンクを示すhref属性<a href="./index.html"> 〜 </a>
を含んでいれば、hrefはURIを属性値に持つので、属性値を、http://foo1/index.htmlに変換することが必要になる。どの属性の値を変換しなければならないかはテーブルで管理することができる。また、相対パスから絶対パスに変換すること自身は、広く知られている技術なので、ここでは詳しく述べない。
属性値が相対パスであると判定すれば、正規化部113はステップS76に進み、相対パスを絶対パスに変換し、ステップS77に進む。HTML断片中にあるすべての属性ノードを探索すると、正規化部113はステップS73において正規化するHTML断片から属性ノードが見つからないと判定し、図29のフローチャートの処理を終了する。図29のフローチャートの処理により、正規化部113はHTML断片中にあるすべての属性ノードを探索し、すべての相対パスを絶対パスに変換する。
(プログラム呼び出し変換部8)
プログラム呼び出し変換部8は、切り取り元のWebページから切り取られたHTML断片に、何らかのテキストの入力を受けて、入力されたテキストを引数として何らかのプログラムを呼び出しているプログラム呼び出しを含む場合に、プログラム呼び出し変換を行うものである。
図30はプログラム呼び出し変換処理を表したフローチャートである。ステップS81に進み、プログラム呼び出し変換部8のフォーム入力存在確認部31は切り取り元のWebページから切り取られたHTML断片に、何らかのテキストの入力を受けて、入力されたテキストを引数として何らかのプログラムを呼び出している部分(フォーム入力)が存在するかを確認する。
フォーム入力が存在すれば、プログラム呼び出し変換部8の切り取り元文字コード確認部32はステップS82に進み、切り取り元の文字符号化方式を取得する。プログラム呼び出し変換部8の貼り付け先文字コード確認部33はステップS83に進み、貼り付け先の文字符号化方式を取得する。
ステップS84に進み、プログラム呼び出し変換部8のラッパプログラム生成部34は貼り付け先の文字符号化方式を切り取り元の文字符号化方式に変換してから元々のプログラムであるPを呼び出すようなラッパプログラムP′を生成する。
ステップS85に進み、プログラム呼び出し変換部8のプログラム呼び出し書換部35は切り取られたHTML断片に含まれるプログラムPを呼び出す部分をラッパプログラムP′を呼び出すように書き換える。なお、ステップS81においてフォーム入力が存在しなければ、プログラム呼び出し変換部8は図30のフローチャートの処理を終了する。図30のフローチャートの処理後、プログラム呼び出し変換部8は正規化の結果としてHTML断片を正規化部7に返す。
フォーム入力の存在は、HTML断片に特定の要素(具体的にはformタグ)が存在するかどうかで確認できる。また、切り取り元の文字符号化方式の取得、貼り付け先の文字符号化方式の取得については、既に述べたとおりである。
ラッパプログラムP′を生成する一つの方法は以下のようになる。ラッパプログラム生成部34は呼び出しプログラム名、プログラムの引数となる名前、データ(引数)の送信形式を獲得する。
ラッパプログラム生成部34はデータの送信形式に合わせてデータを受け取り、それぞれのデータに対して、文字符号化方式をステップS83で獲得した貼り付け先の文字符号化方式から切り取り元の文字符号化方式に変換するプログラムをかけたあと、呼び出しプログラムを呼び出すラッパプログラムP′を作成する。
そして、プログラム呼び出し書換部35は元のプログラム呼び出しをラッパプログラムP′を呼び出すように書き換える。
なお、Web閲覧器のすべてが対応しているわけではないが、HTML4の規格では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">
というように変換することで、切り取り元の文字符号化方式を指定することができるためラッパプログラムP′を実現できる。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、マッシュアップ装置は図14のWebマッシュアップ実現装置110を有する形態、Webマッシュアップ設定装置100及びWebマッシュアップ実現装置110を有する形態、Webマッシュアップ設定装置100,Webマッシュアップ実現装置110及びアノテーション管理サーバ120を有する形態など、様々な形態をとることができる。
本発明は、以下に記載する付記のような構成が考えられる。
(付記1)
切り取り元のWeb資源から切り取った部分を貼り付け先のWeb資源に貼り付けるコンピュータを動作させるマッシュアッププログラムであって、
前記コンピュータを、
切り取り情報と貼り付け情報とが対応付けられているアノテーション情報と、表示対象のWeb資源の情報とに基づき、前記表示対象のWeb資源を貼り付け情報として含むアノテーション情報を取得するアノテーション情報取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、切り取り元のWeb資源を取得する切り取り元取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、前記切り取り元取得手段が取得した切り取り元のWeb資源から切り取るべき断片を切り取る切り取り手段と、
前記切り取り手段が切り取った断片を貼り付け先のWeb資源の環境に適合するように正規化する正規化手段と、
前記正規化手段により正規化された前記断片を、前記アノテーション情報取得手段が取得したアノテーション情報に含まれる貼り付け情報に基づき、表示対象のWeb資源に貼り付ける貼り付け手段と
して動作させるマッシュアッププログラム。
(付記2)
前記正規化手段は、前記切り取り手段が切り取った断片の文字符号化方式を貼り付け先の文字符号化方式に変換する文字符号化方式変換を行う請求項1記載のマッシュアッププログラム。
(付記3)
前記コンピュータを、更に、
前記切り取り手段が切り取った断片にフォーム入力をしてプログラムを呼び出す部分が存在する場合に、貼り付け先の文字符号化方式を切り取り元の文字符号化方式に変換してから前記プログラムを呼び出すラッパプログラムを生成し、前記断片に含まれる前記プログラムを呼び出す部分を、前記ラッパプログラムを呼び出すように書き換えるプログラム呼び出し書換手段と
して機能させる請求項1記載のマッシュアッププログラム。
(付記4)
前記アノテーション情報は、切り取り元の所在情報,切り取り場所の構造位置情報を有する切り取り情報と、貼り付け先の所在情報,貼り付け先の構造位置情報を有する貼り付け情報とを含む付記1乃至3何れか一項記載のマッシュアッププログラム。
(付記5)
切り取り元のWeb資源から切り取った部分を貼り付け先のWeb資源に貼り付けるマッシュアップ装置であって、
切り取り情報と貼り付け情報とが対応付けられているアノテーション情報と、表示対象のWeb資源の情報とに基づき、前記表示対象のWeb資源を貼り付け情報として含むアノテーション情報を取得するアノテーション情報取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、切り取り元のWeb資源を取得する切り取り元取得手段と、
前記アノテーション情報取得手段が取得したアノテーション情報に含まれる切り取り情報に基づき、前記切り取り元取得手段が取得した切り取り元のWeb資源から切り取るべき断片を切り取る切り取り手段と、
前記切り取り手段が切り取った断片を貼り付け先のWeb資源の環境に適合するように正規化する正規化手段と、
前記正規化手段により正規化された前記断片を、前記アノテーション情報取得手段が取得したアノテーション情報に含まれる貼り付け情報に基づき、表示対象のWeb資源に貼り付ける貼り付け手段と
を有するマッシュアップ装置。
(付記6)
切り取り元のWeb資源から切り取った部分を貼り付け先のWeb資源に貼り付けるコンピュータによって実行されるマッシュアップ方法であって、
前記コンピュータが、
切り取り情報と貼り付け情報とが対応付けられているアノテーション情報と、表示対象のWeb資源の情報とに基づき、前記表示対象のWeb資源を貼り付け情報として含むアノテーション情報を取得するアノテーション情報取得ステップと、
前記アノテーション情報取得ステップで取得したアノテーション情報に含まれる切り取り情報に基づき、切り取り元のWeb資源を取得する切り取り元取得ステップと、
前記アノテーション情報取得ステップで取得したアノテーション情報に含まれる切り取り情報に基づき、前記切り取り元取得ステップで取得した切り取り元のWeb資源から切り取るべき断片を切り取る切り取りステップと、
前記切り取りステップで切り取った断片を貼り付け先のWeb資源の環境に適合するように正規化する正規化ステップと、
前記正規化ステップで正規化された前記断片を、前記アノテーション情報取得ステップで取得したアノテーション情報に含まれる貼り付け情報に基づき、表示対象のWeb資源に貼り付ける貼り付けステップと
を実行するマッシュアップ方法。
1 アノテーション情報
2 所在情報(URI)
3 アノテーション情報取得部
4 切り取り元取得部
5 切り取り元資源(Webページ)
6 切り取り部
7 正規化部
8 プログラム呼び出し変換部
9 貼り付け部
10 貼り付け先資源
11 マッシュアップ結果データ
21,22 窓
31 フォーム入力存在確認部
32 切り取り元文字コード確認部
33 貼り付け先文字コード確認部
34 ラッパプログラム生成部
35 プログラム呼び出し書換部
61 検索窓の部分
71,81 赤枠
91 検索ボタン
100 Webマッシュアップ設定装置
101,111 Web閲覧器
102 切り取り元選定部
103 範囲提示選定部
104 貼り付け先選定部
105,116 アノテーション管理部
110 Webマッシュアップ実現装置
112 切り出し情報取得部
113 正規化部
114 貼り付け位置獲得部
115 合成部
120 アノテーション管理サーバ
121 アノテーションデータベース管理部
122 アノテーションデータベース
151 入力装置
152 出力装置
153 ドライブ装置
154 補助記憶装置
155 主記憶装置
156 演算処理装置
157 インターフェース装置
158 記録媒体
160 Web閲覧器
161 HTML文書
162 HTMLパーサ
163 DOMツリー
164 Javascriptプログラム
165 Javascriptエンジン
166 レンダリングエンジン
167 ユーザインタフェース
220 HTMLテキスト

Claims (5)

  1. 切り取り元のWeb資源から切り取った部分を貼り付け先のWeb資源に貼り付けるマッシュアップ装置としてコンピュータを機能させるマッシュアッププログラムであって、
    前記コンピュータを、
    前記切り取り元の切り取り情報を取得し、前記切り取り情報に基づいて、前記切り取り元からWeb資源を切り取る切取手段と、
    前記切取手段により切り取られたWeb資源に、フォーム入力をしてプログラムを呼び出す部分が存在する場合に、前記貼り付け先の文字符号化方式を前記切り取り元の文字符号化方式に変換してから前記プログラムを呼び出すラッパプログラムを生成するラッパプログラム生成手段と、
    前記貼り付け先の貼り付け情報を取得し、前記貼り付け情報に基づいて、前記切取手段により切り取られたWeb資源を前記貼り付け先に貼り付ける貼付手段と、
    前記貼り付け先において前記プログラムを呼び出す際に、前記ラッパプログラムを呼び出すように書き換えるプログラム呼び出し書換手段と、
    して機能させるマッシュアッププログラム。
  2. 前記切り取り情報は、前記切り取り元の所在情報と、前記切り取り元において前記切取手段によりWeb資源を切り取られる場所に係る構造位置情報とを含み、
    前記貼り付け情報は、前記貼り付け先の所在情報と、前記貼り付け先において前記貼付手段によりWeb資源を貼り付けられる場所に係る構造位置情報とを含む
    ことを特徴とする請求項1に記載のマッシュアッププログラム。
  3. 前記切取手段は、前記切り取り情報と前記貼り付け情報とが対応付けられて記憶されているアノテーションデータベースから、前記切り取り情報を取得し、
    前記貼付手段は、前記アノテーションデータベースから、前記貼り付け情報を取得すること、
    を特徴とする請求項1又は請求項2に記載のマッシュアッププログラム。
  4. 切り取り元のWeb資源から切り取った部分を貼り付け先のWeb資源に貼り付けるマッシュアップ装置であって、
    前記切り取り元の切り取り情報を取得し、前記切り取り情報に基づいて、前記切り取り元からWeb資源を切り取る切取手段と、
    前記切取手段により切り取られたWeb資源に、フォーム入力をしてプログラムを呼び出す部分が存在する場合に、前記貼り付け先の文字符号化方式を前記切り取り元の文字符号化方式に変換してから前記プログラムを呼び出すラッパプログラムを生成するラッパプログラム生成手段と、
    前記貼り付け先の貼り付け情報を取得し、前記貼り付け情報に基づいて、前記切取手段により切り取られたWeb資源を前記貼り付け先に貼り付ける貼付手段と、
    前記貼り付け先において前記プログラムを呼び出す際に、前記ラッパプログラムを呼び出すように書き換えるプログラム呼び出し書換手段と、
    を有するマッシュアップ装置。
  5. 切り取り元のWeb資源から切り取った部分を貼り付け先のWeb資源に貼り付けるコンピュータによって実行されるマッシュアップ方法であって、
    前記コンピュータが、
    前記切り取り元の切り取り情報を取得し、前記切り取り情報に基づいて、前記切り取り元からWeb資源を切り取る切取ステップと、
    前記切取ステップで切り取られたWeb資源に、フォーム入力をしてプログラムを呼び出す部分が存在する場合に、前記貼り付け先の文字符号化方式を前記切り取り元の文字符号化方式に変換してから前記プログラムを呼び出すラッパプログラムを生成するラッパプログラム生成ステップと、
    前記貼り付け先の貼り付け情報を取得し、前記貼り付け情報に基づいて、前記切取ステップで切り取られたWeb資源を前記貼り付け先に貼り付ける貼付ステップと、
    前記貼り付け先において前記プログラムを呼び出す際に、前記ラッパプログラムを呼び出すように書き換えるプログラム呼び出し書換ステップと、
    を実行するマッシュアップ方法。
JP2009137666A 2009-06-08 2009-06-08 マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法 Expired - Fee Related JP5267342B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009137666A JP5267342B2 (ja) 2009-06-08 2009-06-08 マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009137666A JP5267342B2 (ja) 2009-06-08 2009-06-08 マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法

Publications (2)

Publication Number Publication Date
JP2010282587A JP2010282587A (ja) 2010-12-16
JP5267342B2 true JP5267342B2 (ja) 2013-08-21

Family

ID=43539232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009137666A Expired - Fee Related JP5267342B2 (ja) 2009-06-08 2009-06-08 マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法

Country Status (1)

Country Link
JP (1) JP5267342B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5476867B2 (ja) * 2009-08-28 2014-04-23 富士通株式会社 マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法
JP2012185761A (ja) 2011-03-08 2012-09-27 Konica Minolta Business Technologies Inc 画像形成装置、文書データの自動編集方法およびコンピュータプログラム
JP6171919B2 (ja) * 2013-12-19 2017-08-02 富士通株式会社 情報提供プログラム、情報提供方法および情報提供装置
JP6264910B2 (ja) * 2014-02-03 2018-01-24 富士通株式会社 アグリゲーションプログラム、端末装置及びアグリゲーション方法
WO2016039254A1 (ja) 2014-09-08 2016-03-17 日本電信電話株式会社 アノテーション装置、アノテーション方法、及びアノテーションプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4055944B2 (ja) * 2002-09-18 2008-03-05 日立ソフトウエアエンジニアリング株式会社 Webコンテンツ変換方法及びシステム
JP2005025295A (ja) * 2003-06-30 2005-01-27 Fujitsu Ltd コンテンツ変換プログラム、コンテンツ変換方法、およびコンテンツ変換装置

Also Published As

Publication number Publication date
JP2010282587A (ja) 2010-12-16

Similar Documents

Publication Publication Date Title
JP3857663B2 (ja) 構造化文書編集装置、構造化文書編集方法及びプログラム
JP5947888B2 (ja) 統合開発環境におけるライブ・ブラウザー・ツーリング
KR101099272B1 (ko) 외부 프로그램 테마를 사용하는 웹페이지 렌더링을 위한 테마 적용 방법
US20110035435A1 (en) Method and system for converting desktop application to web application
US20100223541A1 (en) Automated and user customizable content retrieval from a collection of linked documents to a single target document
US20150317288A1 (en) Method and system to maintain a web page
US20120047423A1 (en) Virtual html anchor
US20100229081A1 (en) Method for Providing a Navigation Element in an Application
JP5267342B2 (ja) マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法
JP2017504129A (ja) ウェブブラウザにおいて表わされる状態表現の構築
Nichols et al. Highlight: a system for creating and deploying mobile web applications
US20110145699A1 (en) Annotation driven representational state transfer (rest) web services
JP2010170453A (ja) 静的Webサイト構築方法及び静的Webサイト構築サービス提供方法及び動的/静的変換処理装置及び動的/静的変換処理プログラム
JP5151696B2 (ja) ユニフォームリソースロケータ情報を書き換えるプログラム
JP5039946B2 (ja) クライアント装置およびサーバ装置の間の通信を中継する技術
KR101975111B1 (ko) 대용량 웹페이지 문서 변환 시스템 및 그 방법
JP5476867B2 (ja) マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法
JP2009026013A (ja) コンテンツ登録・提供装置、コンテンツ登録・提供制御方法、および、コンテンツ登録・提供制御プログラム
JP4018528B2 (ja) 文書処理装置、文書処理方法およびプログラム
JP2002229578A (ja) 音声合成装置及び音声合成方法並びに音声合成プログラムを記録したコンピュータ読み取り可能な記録媒体
US8639732B2 (en) Method for storing and reading-out data handled by application operating on HTTP client, data storage program, and data read-out program
JP2007265420A (ja) 構造化文書のハイパーリンク方法及びハイパーリンク装置
JP2010204863A (ja) アノテーションプログラム、アノテーション装置及びアノテーション方法
JPH10111866A (ja) ハイパーテキスト作成装置及び方法並びにハイパーテキスト作成プログラムを記録したコンピュータで読み取り可能な記録媒体
JP2008117339A (ja) Webアプリケーションの任意の機能に対するショートカットを定義する方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130422

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees