JP5476867B2 - Mashup program, mashup device, and mashup method - Google Patents

Mashup program, mashup device, and mashup method Download PDF

Info

Publication number
JP5476867B2
JP5476867B2 JP2009198484A JP2009198484A JP5476867B2 JP 5476867 B2 JP5476867 B2 JP 5476867B2 JP 2009198484 A JP2009198484 A JP 2009198484A JP 2009198484 A JP2009198484 A JP 2009198484A JP 5476867 B2 JP5476867 B2 JP 5476867B2
Authority
JP
Japan
Prior art keywords
node
cut
range
identifier
action element
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
JP2009198484A
Other languages
Japanese (ja)
Other versions
JP2011048764A (en
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 JP2009198484A priority Critical patent/JP5476867B2/en
Publication of JP2011048764A publication Critical patent/JP2011048764A/en
Application granted granted Critical
Publication of JP5476867B2 publication Critical patent/JP5476867B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法に係り、特にネットワーク上の資源を合わせるマッシュアップ(mash up)と呼ばれる技術を利用するマッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法に関する。   The present invention relates to a mashup program, a mashup device, and a mashup method, and more particularly to a mashup program, a mashup device, and a mashup method that use a technique called mashup that matches resources on a network.

近年、インターネットやイントラネット等のネットワーク上の情報資源(例えばWebページ)のマッシュアップと呼ばれる技術が、よく利用されている。マッシュアップは複数の異なる提供元のコンテンツや機能を合わせて新しいコンテンツやサービスを形成するものである(例えば特許文献1参照)。   In recent years, a technique called mashup of information resources (for example, Web pages) on a network such as the Internet or an intranet is often used. The mashup is to form new contents and services by combining contents and functions of a plurality of different providers (see, for example, Patent Document 1).

Webにおけるマッシュアップでは、検索、写真、動画、地図などのサービスサイトがAPI(Application Program Interface)を公開することで、写真と撮影場所の地図とを組み合わせたり、郵便番号データと地図とを組み合わせたりするサービスが構築されてきた。   In web mashups, search, photos, videos, maps, and other service sites publish APIs (Application Program Interface) to combine photos and shooting location maps, or zip code data and maps. Service to do has been built.

Webにおけるマッシュアップは、このようなサービスをプログラムレベルで構築するだけでなく、エンドユーザレベルで簡単にできるようになれば、気づきの共有、Webページの共同制作、進捗管理、ポータルの作成、広告システムなど様々な場面で利用されることが期待される。   Web mashups not only build such services at the program level, but also become easier at the end-user level, if you can share awareness, collaborate on web pages, progress management, portal creation, advertising It is expected to be used in various situations such as systems.

あるWebページ上のコンテンツや機能の一部分を切り取り、別のWebページ上に貼り付けることで利用可能にする、すなわち、あるWebページにアクセスしたとき、その時点での別のWebページの内容を表示したり、検索や動画閲覧などの機能を可能にしたりするには、指定されたWebページの一部分を切り取る技術と、Webページの一部分を指定された別のWebページに貼り付ける技術とが必要になる。   A part of content or function on a certain web page can be cut and pasted on another web page to make it available. That is, when accessing a certain web page, the contents of another web page at that time are displayed. And enabling a function such as search and video browsing require a technique for cutting a part of a specified Web page and a technique for pasting a part of a Web page to another specified Web page. Become.

あるWebページの一部分を切り取る技術はクリッピング技術あるいはスクレイピング技術として、以下のような技術が良く知られている。例えばWebクリッピング技術としては、指定されたWebページの一部分を画像(スナップショット)として切り取るものが知られている。Webスクレイピング技術としては、指定されたWebページに対してパターンマッチングやXpathによる位置指定などによりデータを抜き取るものが知られている(例えば特許文献2参照)。   As a technique for cutting out a part of a Web page, the following techniques are well known as clipping techniques or scraping techniques. For example, as a Web clipping technique, one that cuts out a part of a specified Web page as an image (snapshot) is known. As a web scraping technique, a technique is known in which data is extracted from a designated web page by pattern matching or position designation by Xpath (see, for example, Patent Document 2).

一方、あるWebページに情報を付与する技術はWebアノテーション技術として知られており、テキストや画像、HTML断片(注:Webページの記述にはHTML以外にもXHTML、XML、CHTMLなど様々な形式があるが、これらを代表してHTMLとして記述する)などHTMLで扱えるデータを、別のWebページ(HTML)に埋め込む。   On the other hand, a technique for giving information to a certain Web page is known as a Web annotation technique, and there are various formats such as text, images, HTML fragments (Note: In addition to HTML, there are various formats such as XHTML, XML, and CHTML for Web page descriptions. Data that can be handled in HTML, such as those described as HTML on behalf of them, is embedded in another Web page (HTML).

このように、Webページからデータを切り取る技術と、別のWebページにデータを付与するアノテーション技術とを組み合わせれば、あるWebページからクリップないしスクレイプしたデータを別のWebページ上にマッシュアップ(合成)して表示することは可能である。   In this way, if the technology for cutting data from a web page and the annotation technology for adding data to another web page are combined, data clipped or scraped from one web page can be mashed up (composited) on another web page. ) Can be displayed.

特開2008−299414号公報JP 2008-299414 A 特開2004−110427号公報JP 2004-110427 A

しかしながら、通常のクリッピングやスクレイピングでは元のWebページをスナップショットとして画像で保存する、あるいは元のWebページの構造化文書(HTML)そのものの断片、または、構造化文書から構造(タグ)を取り除いたデータを保存しているため、マッシュアップした画面にアクセスした時点での最新の情報が反映されず、元のWebページにあった検索や動画等の機能も利用できない。   However, in normal clipping and scraping, the original Web page is saved as an image as a snapshot, or a fragment of the original Web page structured document (HTML) itself, or a structure (tag) is removed from the structured document. Since the data is stored, the latest information at the time when the mashup screen is accessed is not reflected, and the functions such as search and moving image that were in the original Web page cannot be used.

既存のシステムとして、あらかじめ用意されたガジェット(ウィジェット)を特定のWebページに貼り付けるものがある。また、既存のシステムとして、「これを自分のブログに貼り付けてください」ということで構造化文書の断片があらかじめ用意されているものもある。これらのシステムでは、特定の機能をもつ画面を別のWebページに貼り付けることができるが、用意されたものを貼り付けられるだけで、任意のWebページの一部分を貼り付けられるものではない。   As an existing system, there is a system in which a gadget (widget) prepared in advance is pasted on a specific Web page. In addition, as an existing system, there is a system in which a fragment of a structured document is prepared in advance by saying “Please paste this on your blog”. In these systems, a screen having a specific function can be pasted on another Web page, but only a prepared one can be pasted, and a part of an arbitrary web page cannot be pasted.

さらに、ユーザはWebページ上のコンテンツや機能の一部分を切り取り、別のWebページ上に貼り付けることで、何らかの機能が別のWebページに引き継がれることを常識的に期待している。しかし、ユーザが期待する機能を別のWebページに引き継ぐためには、あるWebページからHTMLフラグメントの適切な範囲を切り取らなければならない。   Further, the user commonly expects that some function is handed over to another Web page by cutting a part of the content or function on the Web page and pasting it on another Web page. However, in order to transfer the function expected by the user to another Web page, it is necessary to cut out an appropriate range of the HTML fragment from a certain Web page.

しかしながら、一般的なユーザにとって、期待する機能を別のWebページに引き継ぐ為に、あるWebページからHTMLフラグメントの適切な範囲を切り取ることは容易でなかった。   However, it is not easy for a general user to cut out an appropriate range of an HTML fragment from a certain Web page in order to transfer the expected function to another Web page.

本発明の一実施形態は、上記の点に鑑みなされたもので、ネットワーク上の任意の資源の機能をマッシュアップにより形成した新たな資源に引き継がせるマッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法を提供することを目的とする。   One embodiment of the present invention has been made in view of the above points, and provides a mashup program, a mashup device, and a mashup method for transferring a function of an arbitrary resource on a network to a new resource formed by mashup. The purpose is to provide.

本発明の一実施形態は、切り取り元のWeb資源から切り取った切り取り範囲を貼り付け先のWeb資源に貼り付けるコンピュータを動作させるマッシュアッププログラムであって、前記コンピュータを、機能の実現に単独で意味をなさない部品タグと前記部品タグをまとめて機能を実現する構成タグとが対応付けられているテーブルに基づき、切り取り範囲として与えられたノードが未解決部品ではない場合、前記ノードの木構造の下位に未解決部品ノードがあるかを確認する未解決部品確認手段と、前記未解決部品ノードがあると確認されたとき、前記切り取り範囲として与えられたノードの木構造の上位ノードである前記未解決部品ノードに対応する構成ノードを見つけ、見つけた前記構成ノード以下の要素を正規化切り取り範囲とする関連構成取得手段として動作させる。 One embodiment of the present invention is a mashup program for operating a computer that pastes a cut range cut from a cut-off Web resource to a paste-destination Web resource, and that means that the computer is independent for realizing a function. If a node given as a cut-out range is not an unresolved part based on a table in which a component tag that does not form a component and a configuration tag that realizes a function by combining the component tags, the tree structure of the node An unresolved part confirmation unit for confirming whether there is an unresolved part node at a lower level, and when the unresolved part node is confirmed, the unresolved part node is an upper node of the tree structure of the node given as the cut range. Find the configuration node corresponding to the solution part node, and use the elements below the found configuration node as the normalization cut range. It operates as a related configuration acquisition unit.

なお、本発明の一実施形態の構成要素、表現又は構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。   In addition, what applied the component, the expression, or the arbitrary combinations of the component of one Embodiment of this invention to a method, an apparatus, a system, a computer program, a recording medium, a data structure, etc. is also effective as an aspect of this invention. .

本発明の一実施形態によれば、ネットワーク上の任意の資源の機能をマッシュアップにより形成した新たな資源に引き継がせるマッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法を提供できる。   According to an embodiment of the present invention, it is possible to provide a mashup program, a mashup device, and a mashup method that allow a function of an arbitrary resource on a network to be transferred to a new resource formed by mashup.

切り取り元のWebページの一例のイメージ図である。It is an image figure of an example of the Web page of cut origin. 貼り付け先のWebページの一例のイメージ図である。It is an image figure of an example of the web page of a paste destination. 切り取り元のWebページから切り取られた部分が貼り付けられた貼り付け先のWebページの一例のイメージ図である。It is an image figure of an example of the web page of the paste destination where the part cut from the web page of cut origin was pasted. 切り取り元のWebページの一例のイメージ図である。It is an image figure of an example of the Web page of cut origin. 部品・構成タグ一覧テーブルの一例の構成図である。It is a block diagram of an example of a components and a structure tag list table. 切り取り範囲を拡張する第1の方法を示す説明図である。It is explanatory drawing which shows the 1st method of extending a cutting range. 切り取り元のWebページの一例のイメージ図である。It is an image figure of an example of the Web page of cut origin. ドキュメントツリーの一例の構成図である。It is a block diagram of an example of a document tree. 切り取り範囲を拡張する第2の方法を示す説明図である。It is explanatory drawing which shows the 2nd method of extending a cutting range. アクション要素テーブルの一例の構成図である。It is a block diagram of an example of an action element table. 切り取り範囲を拡張する第3の方法を示す説明図である。It is explanatory drawing which shows the 3rd method of extending a cutting range. 切り取り範囲を拡張する第4の方法を示す説明図である。It is explanatory drawing which shows the 4th method of extending a cutting range. 本実施例のマッシュアップ装置を含むシステムの一実施例の構成図である。It is a block diagram of one Example of the system containing the mashup apparatus of a present Example. コンピュータシステムの一例の構成図である。It is a block diagram of an example of a computer system. 本実施例のマッシュアッププログラムを適用したWeb閲覧器の一例の構成図である。It is a block diagram of an example of the web browsing device to which the mashup program of a present Example is applied. 切り取り元選定部の処理を表したフローチャートである。It is a flowchart showing the process of the cutting source selection part. 貼り付け先選定部の処理を表したフローチャートである。It is a flowchart showing the process of the attachment destination selection part. 範囲提示選定部の処理を表したフローチャートである。It is a flowchart showing the process of the range presentation selection part. Webマッシュアップ実現装置の処理を表したフローチャートである。It is a flowchart showing the process of the web mashup realization apparatus. 未解決部品確認部の処理手順を表した一例のフローチャートである。It is a flowchart of an example showing the process sequence of the unresolved parts confirmation part. 未解決部品確認部のオプションの処理手順を表した一例のフローチャートである。It is a flowchart of an example showing the processing procedure of the option of an unresolved parts confirmation part. 関連構成取得部の処理手順を表した一例のフローチャートである。It is an example flowchart showing the processing procedure of the related configuration acquisition unit. 切り取り範囲を拡張する第2の方法の処理手順を表した一例のフローチャートである。It is a flowchart of an example showing the process sequence of the 2nd method of extending a cutting range. スクリプトソース記述可能属性テーブルの一例の構成図である。It is a block diagram of an example of a script source description attribute table. 切り取り範囲を拡張する第3の方法の処理手順を表した一例のフローチャートである。It is an example of the flowchart showing the process sequence of the 3rd method of extending a cutting range. 正規化切り取り範囲とアクション要素との関連度を判定する処理手順を表した一例のフローチャートである。It is a flowchart of an example showing the process sequence which determines the relevance degree of the normalization cut range and an action element. 切り取り範囲を拡張する第4の方法の処理手順を表した一例のフローチャートである。It is a flowchart of an example showing the process sequence of the 4th method which expands a cutting range. アクション要素の参照・定義表の一例の構成図である。It is a block diagram of an example of the reference / definition table of an action element. 識別子管理表の一例の構成図である。It is a block diagram of an example of an identifier management table. 識別子管理表の一例の構成図である。It is a block diagram of an example of an identifier management table.

次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では、ネットワーク上の資源の一例としてWebページを例に説明する。   Next, modes for carrying out the present invention will be described based on the following embodiments with reference to the drawings. In this embodiment, a Web page will be described as an example of a resource on the network.

(本実施例の概要)
本実施例は、Webページ上の画面を切り取って、指定された他のWebページに貼付するマッシュアップ装置において、フォーム入力等の切り取り元のWebページの持つ機能が正しく実行されるようにするために、切り取り元のWebページの切り取り範囲から構成タグ検索,アクション要素検索,アクション要素の絞り込みにより、最低限必要な情報を切り取って保持することで、貼り付け先のWebページにおいて正しい機能が実行されるようにしている。本実施例は必要となる正規化を切り取り元のWebページ側で行うことによって、貼り付け先のWebページにおいて正しい機能が実行されるようにするものである。
(Overview of this example)
In the present embodiment, in order to correctly execute the functions of the cut-out web page, such as form input, in the mashup device that cuts the screen on the web page and pastes it on another designated web page. In addition, by cutting out and holding the minimum necessary information from the cut-out range of the cut-off web page by configuration tag search, action element search, and action element narrowing, the correct function is executed on the paste-up web page I try to do it. In this embodiment, the necessary functions are executed on the Web page of the pasting destination by performing necessary normalization on the Web page of the cutting source.

まず、本実施例の理解を容易とする為、あるWebページ上のコンテンツや機能の一部分を切り取り、別のWebページ上に貼り付けることで利用可能にする、すなわち、あるWebページにアクセスしたとき、その時点での別のWebページの内容を表示したり検索や動画閲覧などの機能を可能にしたりするマッシュアップ技術について説明する。   First, in order to facilitate understanding of the present embodiment, a part of contents and functions on a certain Web page is cut out and pasted on another Web page, that is, when a certain Web page is accessed. A mashup technique for displaying the contents of another Web page at that time and enabling functions such as search and video browsing will be described.

図1は切り取り元のWebページの一例のイメージ図である。図1の切り取り元のWebページは検索窓の部分1を有する。ユーザはシステムがWebページ上で提示する例えば赤枠2を移動させて適切な部分を選択し、所定のコマンド(ctrl−c)等でWebページ上の部分を切り取る。   FIG. 1 is an image diagram of an example of a Web page to be cut out. The cut-out Web page in FIG. 1 has a search window portion 1. The user moves, for example, the red frame 2 presented by the system on the Web page, selects an appropriate part, and cuts out the part on the Web page with a predetermined command (ctrl-c) or the like.

図1のWebページは赤枠2により検索窓の部分1が指定されている。ユーザは図1の状態でWebページ上の部分を切り取る所定のコマンドを入力することにより、切り取り元のWebページから検索窓の部分1を切り取ることができる。   In the Web page of FIG. 1, a search window portion 1 is designated by a red frame 2. The user can cut out the search window portion 1 from the cut-out Web page by inputting a predetermined command for cutting out the portion on the Web page in the state of FIG.

図2は貼り付け先のWebページの一例のイメージ図である。ユーザはシステムが貼り付け先のWebページ上で提示する例えば赤枠を移動させて適切な部分を選択し、所定のコマンド(ctrl−v)等で、切り取り元のWebページから切り取った検索窓の部分1を貼り付ける。図3は切り取り元のWebページから切り取られた部分が貼り付けられた貼り付け先のWebページの一例のイメージ図である。   FIG. 2 is an image diagram of an example of a Web page to be pasted. The user selects, for example, an appropriate portion by moving the red frame that the system presents on the pasting Web page, and the search window cut from the original Web page by a predetermined command (ctrl-v) or the like. Paste part 1. FIG. 3 is an image diagram of an example of a pasting destination Web page to which a portion cut from the original Web page is pasted.

図3のWebページは赤枠3により貼り付け部分が指定されている。ユーザはWebページ上の部分に貼り付ける所定のコマンドを入力することにより、切り取り元のWebページから切り取った検索窓の部分1を、赤枠3により指定されている貼り付け先のWebページの貼り付け部分に貼り付けることができる。図3のWebページは図1に示す切り取り元のWebページの検索窓の部分1が赤枠3により指定された貼り付け部分に埋め込まれている。   In the Web page of FIG. 3, the pasting portion is designated by a red frame 3. The user inputs a predetermined command to be pasted on the part on the Web page, and the part 1 of the search window cut out from the cut-out Web page is pasted to the destination Web page specified by the red frame 3. Can be pasted on the attachment part. In the Web page of FIG. 3, the search window portion 1 of the cut-out Web page shown in FIG. 1 is embedded in the pasting portion designated by the red frame 3.

貼り付け先のWebページに貼り付けたものは単なるスナップショットでなく、切り取り元のWebページから切り取った切り取り部分が持つ機能を、そのまま有する。図3の例では、切り取り元のWebページが有する検索機能を保持している。ユーザは図3のWebページに貼り付けられた検索窓の部分1にクエリーを入力することで検索結果を得ることができる。   What is pasted on the web page to be pasted is not a mere snapshot, but has the function of the cut portion cut from the web page to be cut. In the example of FIG. 3, the search function of the cut-out Web page is held. The user can obtain a search result by inputting a query in the search window portion 1 pasted on the Web page of FIG.

このように、切り取り元のWebページが有する検索機能を貼り付け先のWebページで保持できるのは、以下の理由による。まず、Webページは、HTML等で作成されている。検索窓の部分1の周辺のHTMLは具体的に以下のように記述されている。
<h5><label for="searchInput">検索</label></h5>
<div id="searchBody" class="pBody">
<form action="/w/index.php" id="searchform">
<div>
<input type=“hidden”name="title" value="特別:Search"/>
<input id="searchInput" name="search" type="text" accesskey="f" value="" />
<input type=“submit” name="go" class="searchButton" id="searchGoButton" value="表示" />
<input type=“submit” name="fulltext" class="searchButton" id="mw-searchButton" value="検索" />
</div>
</form>
</div>
The reason why the search function of the cut-out web page can be held in the paste-destination web page is as follows. First, the Web page is created by HTML or the like. The HTML around the search window portion 1 is specifically described as follows.
<h5><label for = "searchInput"> Search </ label></h5>
<div id = "searchBody" class = "pBody">
<form action = "/ w / index.php" id = "searchform">
<div>
<input type = “hidden” name = "title" value = "Special: Search"/>
<input id = "searchInput" name = "search" type = "text" accesskey = "f" value = ""/>
<input type = “submit” name = "go" class = "searchButton" id = "searchGoButton" value = "display"/>
<input type = “submit” name = "fulltext" class = "searchButton" id = "mw-searchButton" value = "search"/>
</ div>
</ form>
</ div>

そして、切り取り元のWebページが有する検索機能は、上記のようなHTMLを単なる文字列テキストとして捉えるのではなく、ドキュメントツリーを意識して適当な範囲で切り取り、別のWebページのHTMLテキストの中に埋め込むことで、貼り付け先のWebページで実現される。   The search function of the cut-out Web page does not capture the HTML as described above as a simple text string, but cuts it out in an appropriate range in consideration of the document tree, and includes it in the HTML text of another Web page. By embedding in, it is realized on the Web page of the pasting destination.

しかし、切り取り元のWebページから切り取った部分を貼り付け先のWebページに埋め込む場合、切り取り元のWebページから切り取る範囲によっては、ユーザが期待する機能を保持(貼り付け先のWebページで同じ機能を利用)できないことがある。   However, when embedding a portion cut from a cut-out web page in a paste-destination web page, depending on the range cut from the cut-out web page, the function expected by the user is retained (the same function in the paste-destination web page May not be available).

図4は切り取り元のWebページの一例のイメージ図である。例えば、図4の切り取り元のWebページは赤枠4が図1よりも狭い範囲(検索窓)を指定している。ユーザは図4の状態でWebページ上の部分を切り取る所定のコマンドを入力することにより、切り取り元のWebページから検索窓を切り取ることができる。ユーザは貼り付け先のWebページ上で赤枠を移動させて適切な部分を選択し、所定のコマンド等で、切り取り元のWebページから切り取った検索窓を貼り付けたとする。   FIG. 4 is an image diagram of an example of a Web page to be cut out. For example, the cut-out Web page in FIG. 4 specifies a range (search window) in which the red frame 4 is narrower than that in FIG. The user can cut out the search window from the cut-out web page by inputting a predetermined command for cutting out the portion on the web page in the state of FIG. It is assumed that the user moves the red frame on the pasted Web page, selects an appropriate part, and pastes a search window cut from the cut-out Web page with a predetermined command or the like.

図4では、赤枠4の部分が検索窓である。しかし、赤枠4が指定する検索窓を他のWebページに貼り付けたとしても、ユーザが期待する機能は保持されない。ここで、ユーザが期待する機能とは、単に検索窓を貼り付けることでなく、検索機能であることが常識である。ユーザが期待する検索機能が保持されない理由は以下の通りである。   In FIG. 4, the red frame 4 is a search window. However, even if the search window designated by the red frame 4 is pasted on another Web page, the function expected by the user is not retained. Here, it is common sense that the function expected by the user is a search function rather than simply pasting a search window. The reason why the search function expected by the user is not maintained is as follows.

まず、WebページはHTML等で作成されている。検索窓の周辺のHTMLは具体的に以下のように記述されている。
<h5>検索</h5>
<div id="searchBody" class="pBody">
<form action="/w/index.php" id="searchform">
<div>
<input type=“hidden” name="title" value="特別:Search"/>
<input id="searchInput" name="search" type="text" accesskey="f" value="" />
<input type=“submit” name="go" class="searchButton" id="searchGoButton"
value="表示" />
<input type=“submit” name="fulltext" class="searchButton" id="mw-searchButton" value="検索" />
</div>
</form>
</div>
First, the web page is created by HTML or the like. The HTML around the search window is specifically described as follows.
<h5> Search </ h5>
<div id = "searchBody" class = "pBody">
<form action = "/ w / index.php" id = "searchform">
<div>
<input type = “hidden” name = "title" value = "Special: Search"/>
<input id = "searchInput" name = "search" type = "text" accesskey = "f" value = ""/>
<input type = “submit” name = "go" class = "searchButton" id = "searchGoButton"
value = "display"/>
<input type = “submit” name = "fulltext" class = "searchButton" id = "mw-searchButton" value = "search"/>
</ div>
</ form>
</ div>

図1の例では赤枠2が<form> 〜 </form> の範囲を示していた。図4の例では赤枠4が<input id="searchInput" name="search" type="text" accesskey="f" value="" />の範囲を示す。上記のHTMLでは実際の検索機能を保持する為、<form> 〜 </form> 全体が必要になる。   In the example of FIG. 1, the red frame 2 indicates the range of <form> to </ form>. In the example of FIG. 4, a red frame 4 indicates a range of <input id = "searchInput" name = "search" type = "text" accesskey = "f" value = "" />. The above HTML requires an entire <form> to </ form> in order to maintain an actual search function.

HTMLフラグメントを切り取って別のWebページに貼り付けた時に、ユーザが常識的に期待する機能を保持する為には、適切な範囲を切り取らなければならない。図4の例では説明を分かり易くするために検索窓の範囲に限定したが、<form> 〜 </form> の内部にある<div> 〜 </div> を切り取ったとしても検索機能を保持できない。この時にブラウザ上で見えている範囲(例えば赤枠2で指定される範囲)は、図1の赤枠2で指定される範囲と同じである。   When an HTML fragment is cut out and pasted on another Web page, an appropriate range must be cut out in order to maintain a function that a user expects in common sense. In the example of Fig. 4, the range of the search window is limited to make the explanation easy to understand, but the search function is retained even if <div> ~ </ div> inside <form> ~ </ form> is cut off. Can not. The range visible on the browser at this time (for example, the range specified by the red frame 2) is the same as the range specified by the red frame 2 in FIG.

この他の例については、後に述べるが、切り取り元のWebページの切り取った範囲から期待される機能を貼り付け先のWebページにおいても保持する為に、切り取り元のWebページから切り取る切り取り範囲を適切に制御する必要がある。   As for other examples, as will be described later, in order to retain the functions expected from the cut-out range of the cut-out web page in the paste-destination web page, the cut-out range cut from the cut-out web page is appropriate. Need to control.

なお、切り取り元のWebページの切り取った範囲から期待される機能を貼り付け先のWebページにおいても保持する手法としては、切り取り元のWebページの切り取り対象部分を切り取るのではなく、切り取り元のWebページ全体を取り出して貼り付け先のWebページに貼り付け、切り取り対象部分以外を非表示とすることも考えられる。   In addition, as a method of retaining the function expected from the cut-out range of the Web page of the cut-off even in the Web page of the paste-destination, instead of cutting the cut target part of the cut-off Web page, the cut-off Web page It is also conceivable that the entire page is taken out and pasted on the web page to be pasted, and the parts other than the cut target part are hidden.

この手法では、切り取り対象部分以外を非表示とするため、見かけ上、指定された部分を切り取っているように振る舞える。また、この手法では切り取り元のWebページ全体を保持する為、切り取り元のWebページの機能も損なわず、貼り付け先のWebページにおいて期待される機能を保持できる。   In this method, since the part other than the cut target part is not displayed, it looks like the specified part is cut off. In addition, since the entire Web page that is the cut source is held in this method, the function expected of the Web page that is the paste destination can be held without impairing the function of the Web page that is the cut source.

しかしながら、切り取り元のWebページ全体を保持することは、必要のない部分まで保持するため、無駄がある。これは容量的に無駄があるというだけでなく、切り取り元のWebページの切り取り対象部分以外に有する(記述されている)機能が副作用として実行されてしまうという現象を起こすことにもなる。例えば副作用としては、あるWebページにアクセスすると、ポップアップで別の情報(広告など)が表示されたり、音楽が流れたりするというようなものである。   However, holding the entire cut-out Web page is wasteful because it holds up to unnecessary portions. This is not only wasteful in capacity, but also causes a phenomenon that a function (explained) other than the cut target part of the cut-out Web page is executed as a side effect. For example, as a side effect, when a certain Web page is accessed, another information (such as an advertisement) is displayed in a pop-up, or music flows.

また、切り取り元のWebページが持つ機能をそのままに、表示スタイルを貼り付け先のWebページに合わせるなど、2つのWebページを融合させたいというような場合にも上記手法では応えることができない。これは切り取り元のWebページの機能だけが必要だったのに、切り取り元のWebページのスタイルもそのまま引き継いでしまったということで、一種の副作用として考えることもできる。   In addition, the above method cannot respond to a case where two Web pages are to be merged, such as matching the display style to the Web page to be pasted while maintaining the functions of the Web page to be cut off. This can be considered as a kind of side effect, because only the function of the Web page of the cut-out source is necessary, but the style of the Web page of the cut-out source is inherited as it is.

以上、任意のWebページの情報を切り取って、新しいWebページに貼り付けたときに、任意のWebページが有する機能を、そのまま新しいWebページに引き継ぐ為には適切な範囲が切り取られることを期待するか、副作用がないことを期待する(あるいはあっても無視する)しかなかった。   As described above, when information on an arbitrary Web page is cut out and pasted on a new Web page, an appropriate range is expected to be cut out so that the function of the arbitrary Web page can be transferred to the new Web page. Or I had to expect (or ignore) any side effects.

本実施例では任意のWebページにおける任意の切り取り範囲の指定に対しても、その切り取り範囲からユーザが期待する機能を推定し、貼り付け先のWebページにおいて広い意味での副作用を起こすことなく、ユーザの期待する機能が正しく働く率を高めるものである。言い換えれば、本実施例では任意のWebページにおける任意の切り取り範囲を指定することで、その切り取り範囲からユーザが期待する機能を推定し、切り取り元のWebページ全体を保持するのではなく、推定した機能の実行に必要最低限と思われる部分を切り取るものである。   In this embodiment, even if an arbitrary cutout range is specified on an arbitrary Web page, the function expected by the user is estimated from the cutout range, without causing side effects in a broad sense on the pasted Web page. This increases the rate at which the functions expected by the user work correctly. In other words, in this embodiment, by specifying an arbitrary cutout range in an arbitrary Web page, the function expected by the user is estimated from the cutout range, and not the entire original Web page is held but estimated. The part considered to be the minimum necessary for the execution of the function is cut out.

マッシュアップ装置には、切り取り元のWebページ上の画面を切り取らせて、その位置を位置情報として保持しておき、指定された貼り付け先のWebページにアクセスしたときに、切り取り元のWebページの位置情報から現在の切り取り元のWebページの情報を取り出して貼り付け先のWebページに合うように正規化を行い、現在アクセスしている貼り付け先のWebページに一時的に埋め込むことで、複数のWebページの機能をそのままに、マッシュアップさせるものがある。   The mashup device cuts the screen on the web page that is the cut source, holds the position as position information, and accesses the web page that is the pasting destination when the specified paste destination web page is accessed. By extracting the information of the current cut-out web page from the position information of the image, normalizing it to match the paste-destination web page, and temporarily embedding it in the paste-destination web page currently accessed, There are some which mash up the functions of a plurality of Web pages as they are.

しかしながら、上記のマッシュアップ装置は切り取り範囲が正当である(切り取り範囲はユーザが期待する機能を実行するのに必要な情報がすべてそろっている)ことを仮定している。そこで、本実施例は、ユーザにより指定された切り取り範囲に対して、切り取り範囲が示唆する機能(切り取り範囲からユーザが期待する機能)の実行に必要な情報をすべて含むように、指定された切り取り範囲を拡張するものである。   However, the above mashup device assumes that the clipping range is valid (the clipping range has all the information necessary to execute the function expected by the user). In view of this, in this embodiment, the cutout specified so as to include all information necessary for executing the function suggested by the cutout range (the function expected by the user from the cutout range) with respect to the cutout range specified by the user. It extends the range.

以下では、ユーザにより指定された切り取り範囲に基づいて、切り取り範囲が示唆する機能の実行に必要な情報をすべて含むように、切り取り範囲を拡張する方法について説明していく。   Below, based on the cutting range designated by the user, a method for extending the cutting range so as to include all information necessary for executing the function suggested by the cutting range will be described.

(切り取り範囲を拡張する方法)
ここでは、主に検索機能を有するWebページの検索窓を他のWebページに貼り付ける場合を例として説明する。Webページ上で検索機能をサービスとして提供する場合は入力フォームが用いられることが多い。入力フォームを表示するには<form>タグが用いられ、form要素(<form>~</form>)が一つのフォームとなる。フォーム要素中にはinput要素、select要素、textarea要素などのフォーム部品が配置される。
(How to extend the cutting range)
Here, a case where a Web page search window having a search function is pasted on another Web page will be described as an example. When providing a search function as a service on a Web page, an input form is often used. To display the input form, <form> tag is used and form element (<form> ~ </ form>) becomes one form. Form parts such as an input element, a select element, and a textarea element are arranged in the form element.

例えば、input要素はフォームの中のテキスト入力や実行ボタンなどの各フォーム部品を表示する。また、フォームは通常、ひとつのサブミット(実行)ボタンを持ち、各入力部品に値を入力した後、サブミットボタンが押されることで、<form>タグのmethod属性で指定した転送方法により、action属性で指定したアクションを呼び出す。   For example, the input element displays each form part such as a text input in the form and an execution button. Forms usually have a single submit (execute) button. After a value is entered for each input component, the submit button is pressed, and the action attribute is determined by the transfer method specified in the method attribute of the <form> tag. Call the action specified in.

すなわち、input要素はform要素の部品であるため、<input>~</input>が切り取り範囲として指定されたとしても、<form>~</form>のフォーム全体で切り取らないと意味をなさないことになる。select要素、textarea要素もinput要素と同様、form要素の部品であるため、<form>~</form>のフォーム全体で切り取らなければ、意味をなさないことになる。   In other words, since the input element is a part of the form element, even if <input> ~ </ input> is specified as the cutting range, it does not make sense unless it is cut in the entire form of <form> ~ </ form>. It will be. Like the input element, the select element and the textarea element are parts of the form element, so if the entire form of <form> ~ </ form> is not cut, it will not make sense.

このような例は他にもあり、<param>タグは、<applet>タグ(HTMLドキュメントにJavaアプレットを挿入するためのタグ)や<object>タグ(画像・動画・音声・各種プラグインデータ・Javaアプレット・他のHTML文書等の様々な形式のデータを文書に埋め込むための汎用的なタグ)の中でデータが実行される際に必要となるパラメータを指定するタグであり、<applet>~</applet>や<object>~</object>のノード全体で切り取らなければ、意味をなさないことになる。   There are other examples, <param> tag is <applet> tag (tag for inserting Java applet in HTML document) and <object> tag (image, video, audio, various plug-in data, This tag specifies the parameters required when data is executed in a Java applet, other general-purpose tags for embedding data in various formats such as HTML documents, etc. If you don't cut the entire </ applet> or <object> ~ </ object> node, it won't make sense.

そこで、以下では<input>、<select>、<textarea>、<param>タグを部品タグと呼ぶこととする。<form>、<applet>や<object>タグを構成タグと呼ぶこととする。部品タグと構成タグとの関係は図5のような部品・構成タグ一覧テーブルとして保持される。図5は部品・構成タグ一覧テーブルの一例の構成図である。   Therefore, in the following, the <input>, <select>, <textarea>, and <param> tags are referred to as component tags. <form>, <applet>, and <object> tags are called configuration tags. The relationship between the component tag and the component tag is held as a component / component tag list table as shown in FIG. FIG. 5 is a configuration diagram of an example of a component / configuration tag list table.

図5の部品・構成タグ一覧テーブルは、<input>、<select>、<textarea>タグが<form>タグの部品タグであることを表す。図5の部品・構成タグ一覧テーブルは、<param>タグが<applet>や<object>タグの部品タグであることを表す。   The part / configuration tag list table of FIG. 5 indicates that the <input>, <select>, and <textarea> tags are part tags of the <form> tag. The part / configuration tag list table of FIG. 5 indicates that the <param> tag is a part tag of <applet> or <object> tag.

また、図5の部品・構成タグ一覧テーブルは、<form>タグが<input>、<select>、<textarea>タグの構成タグであることを表す。図5の部品・構成タグ一覧テーブルは、<applet>や<object>タグが<param>タグの構成タグであることを表す。   The part / configuration tag list table of FIG. 5 indicates that the <form> tag is a configuration tag of <input>, <select>, and <textarea> tags. The part / configuration tag list table of FIG. 5 indicates that <applet> and <object> tags are configuration tags of <param> tags.

図6は切り取り範囲を拡張する第1の方法を示す説明図である。図6は部品の指定に対して構成ノードを見つけることにより切り取り範囲を拡張するものである。未解決部品確認部12は切り取り範囲(HTMLフラグメントあるいはドキュメントツリーのサブツリー)が与えられる。   FIG. 6 is an explanatory diagram showing a first method of extending the cutout range. FIG. 6 expands the cut-out range by finding a configuration node for the part designation. The unresolved part confirmation unit 12 is given a cut-out range (HTML fragment or document tree subtree).

例えば未解決部品確認部12はユーザにより指定された図7の赤枠15が示す検索窓が切り取り範囲として与えられる。図7は切り取り元のWebページの一例のイメージ図である。図7のWebページはHTMLで示されるが、そのドキュメントツリーが図8に示すようになっている。   For example, the unresolved part confirmation unit 12 is provided with the search window indicated by the red frame 15 in FIG. FIG. 7 is an image diagram of an example of a cut-out Web page. The Web page in FIG. 7 is shown in HTML, and its document tree is as shown in FIG.

図8はドキュメントツリーの一例の構成図である。切り取り範囲として与えられた赤枠15が示す検索窓はform要素の下位構造のp要素の最初のinputノード20に対応したinput要素となる。未解決部品確認部12では、切り取り範囲が与えられる。具体的には切り取り範囲がドキュメントツリーのノードとして与えられる。木構造上のノードは、そのノードをルートとするサブツリーを示すと考える。   FIG. 8 is a configuration diagram of an example of a document tree. The search window indicated by the red frame 15 given as the cutout range is an input element corresponding to the first input node 20 of the p element in the substructure of the form element. The unresolved part confirmation unit 12 is given a cutting range. Specifically, the cut range is given as a node of the document tree. A node on the tree structure is considered to indicate a subtree having the node as a root.

すなわち、図8のinputノード20はHTML上で<input>〜</input>のinput要素を示しているものとする。未解決部品確認部12では、与えられたノード自身あるいは与えられたノードより木構造での下位構造に、form要素などの構成要素の下位構造ではないinput等の部品要素(木構造上では部品タグでラベル付けされるノード)を有するかどうかを判定する。   That is, the input node 20 in FIG. 8 indicates input elements of <input> to </ input> on HTML. In the unresolved parts confirmation unit 12, a part element such as input that is not a subordinate structure of a component such as a form element (part tag on the tree structure) To determine whether it has a node labeled with

例えば、図8のinputノード20は、自分自身が部品要素である。したがって、未解決部品確認部12はinputノード20が未解決部品要素ということで未解決部品要素ありと判定する。   For example, the input node 20 in FIG. 8 is itself a component element. Therefore, the unresolved component confirmation unit 12 determines that there is an unresolved component element because the input node 20 is an unresolved component element.

inputノード20の兄弟のspanノード21が与えられた場合は、spanノード21自身が部品要素ではなく、spanノード21より木構造での下位構造を辿っても、a要素があるだけである。したがって、未解決部品確認部12はa要素が部品要素でないということで未解決部品要素なしと判定する。   When the span node 21 that is a sibling of the input node 20 is given, the span node 21 itself is not a component element, and there is only an a element even if the sub structure in the tree structure is traced from the span node 21. Therefore, the unresolved component confirmation unit 12 determines that there is no unresolved component element because the a element is not a component element.

inputノード20の親であるpノード22が与えられた場合は、pノード22自身が部品要素ではないが、pノード22より木構造での下位構造を辿ると、form等の構成要素がないままに部品要素であるinputノード20が出現する。したがって、未解決部品確認部12は未解決部品要素ありと判定する。pノード22の先祖のformノード23が与えられた場合は、formノード23自身が構成要素である。したがって、未解決部品確認部12は未解決部品要素なしと判定する。   When the p node 22 which is the parent of the input node 20 is given, the p node 22 itself is not a component element. However, when a substructure in a tree structure is traced from the p node 22, there is no component such as form. An input node 20 that is a component element appears. Therefore, the unresolved component confirmation unit 12 determines that there is an unresolved component element. When the ancestor form node 23 of the p node 22 is given, the form node 23 itself is a constituent element. Therefore, the unresolved component confirmation unit 12 determines that there is no unresolved component element.

formノード23の先祖であるbodyノード24が与えられた場合、bodyノード24より木構造での下位構造を辿っても、構成要素なしで部品要素が出現することはない。したがって、未解決部品確認部12は未解決部品要素なしと判定する。図8ではbodyノード24の下位のdivノード25の下にformノード23が出現する。したがって、未解決部品確認部12はformノード23の下位にあるinputノード20まで見に行かない。   When a body node 24 that is an ancestor of the form node 23 is given, even if a subordinate structure in a tree structure is traced from the body node 24, a component element does not appear without a component. Therefore, the unresolved component confirmation unit 12 determines that there is no unresolved component element. In FIG. 8, a form node 23 appears below the div node 25 below the body node 24. Therefore, the unresolved component confirmation unit 12 does not go to the input node 20 that is lower than the form node 23.

以上のように、未解決部品確認部12では、与えられた範囲(ノード)において、未解決部品要素があるかないかの確認を行う。未解決部品要素がない場合、未解決部品確認部12は与えられた範囲(ノード)を、そのまま返すことになる。また、未解決部品要素がある場合、未解決部品確認部12は関連構成取得部13を呼び出す。   As described above, the unresolved component confirmation unit 12 confirms whether or not there is an unresolved component element in a given range (node). If there is no unresolved component element, the unresolved component confirmation unit 12 returns the given range (node) as it is. When there is an unresolved part element, the unresolved part confirmation unit 12 calls the related configuration acquisition unit 13.

関連構成取得部13は与えられた範囲(ノード)に対して木構造での上位構造を辿っていき、構成要素を見つける。構成要素を見つけると、関連構成取得部13は見つけた構成要素(構成ノードをルートとするサブツリー)を正規化された範囲(正規化切り取り範囲)として返す。   The related configuration acquisition unit 13 traces the upper structure in the tree structure with respect to the given range (node) and finds a component. When the configuration element is found, the related configuration acquisition unit 13 returns the found configuration element (subtree having the configuration node as a root) as a normalized range (normalized cut range).

inputノード20の場合には、木構造での上位構造を辿っていくとformノード23のところで構成要素が見つかるので、form要素(formノード23をルートノードとするサブツリー)が正規化切り取り範囲として返される。pノード22の場合も、木構造での上位構造を辿っていくとformノード23のところで構成要素が見つかるので、form要素が正規化切り取り範囲として返される。   In the case of the input node 20, a component element is found at the form node 23 as the tree structure is traced. Therefore, the form element (subtree having the form node 23 as a root node) is returned as a normalized cut range. It is. In the case of the p node 22 as well, when the upper structure in the tree structure is traced, the component is found at the form node 23, so the form element is returned as the normalized cutout range.

なお、上記では部品要素の部分(下位)構造(例えばボタンに記述された文字列)が切り取り範囲として指定された場合に、下位構造を部品要素と見なさなかったが、部品要素の一部としてみなすことも可能である。その場合、未解決部品確認部12は、下位構造を辿って部品要素を探すとともに、上位構造を辿って構成要素より上位構造にはない部品要素の存在を確かめることになる。   In the above, when a part element subordinate structure (for example, a character string described in a button) is specified as a cut-out range, the substructure is not regarded as a component element, but is regarded as a part of the component element. It is also possible. In that case, the unresolved parts confirmation unit 12 traces the lower structure to search for the component elements, and traces the upper structure to confirm the existence of the part elements that are not in the higher structure than the constituent elements.

切り取り範囲を拡張する第1の方法では、リテラシーの低い人やHTMLソースとブラウザ画面との対応関係を与えるユーザインタフェースの制限上の問題などにより、部品要素のみが選択された場合であっても、その部品要素を利用する構成要素が正規化切り取り範囲(マッシュアップ対象)として選択される。   In the first method of extending the cut range, even if only a component element is selected due to a low literacy person or a user interface restriction problem that gives the correspondence between the HTML source and the browser screen, A component that uses the component element is selected as a normalized cutout range (a mashup target).

これにより、切り取り範囲を拡張する第1の方法では、単純に切り取った部分(切り取り範囲)を貼り付けた場合に比べて、一般的に意図されるとおりの機能(ユーザが期待する機能)が保存される可能性を大幅に増加させる。また、切り取り範囲を拡張する第1の方法では、貼り付け部分(正規化切り取り範囲)の増加が最小限であり、副作用を起こす可能性も少ない。   Thereby, in the first method for extending the cut range, a function (a function expected by the user) as generally intended is saved as compared with a case where a simply cut portion (cut range) is pasted. Greatly increase the likelihood of being Further, in the first method for extending the cutout range, the increase in the pasted portion (normalized cutout range) is minimal, and there is little possibility of causing side effects.

ただし、切り取り範囲に関連する機能が局所的な切り取りで実現しない場合には、切り取り範囲を拡張する第1の方法だけで一般的に意図されるとおりの機能を保存することができない。   However, if the function related to the cutting range is not realized by the local cutting, the function as generally intended cannot be stored only by the first method of extending the cutting range.

次に、切り取り範囲を拡張する第2の方法について説明する。例えば切り取り範囲は下記のような要素(HTML記述)であったとする。
<form id="fm1" onsubmit="return f()">
<input type="text" name="q" value="" size="35">
<input type="submit" value="検索">
</form>
Next, a second method for extending the cutout range will be described. For example, it is assumed that the cutting range is the following element (HTML description).
<form id = "fm1" onsubmit = "return f ()">
<input type = "text" name = "q" value = "" size = "35">
<input type = "submit" value = "search">
</ form>

onsubmit属性は、送信ボタンが押された時に起動するスクリプトを記述しているものである。上記のHTML記述では「検索」が押されると関数f()が呼び出される。上記の要素ではform要素(<form>〜</form>)だけでアクションが完結せず、関数f()も取り込まなければならない。   The onsubmit attribute describes a script that is activated when the send button is pressed. In the above HTML description, when “search” is pressed, the function f () is called. In the above element, the action is not completed with only the form element (<form> to </ form>), and the function f () must also be incorporated.

関数f()は、Webページ中のどこかに直接記述されているか、あるいは外部から取り込まれるスクリプトの中に記述されているはずである。そこで、切り取り範囲を拡張する第2の方法は、Webページのスクリプト記述のすべてと、外部からスクリプトを読み込む記述とをすべて取り込んでおき、貼り付け先のWebページにもWebページのスクリプト記述のすべてと、外部からスクリプトを読み込む記述とをすべて反映させることにより関数f()を実行できるようにする。   The function f () should be described directly somewhere in the Web page or in a script taken from the outside. Therefore, the second method of extending the cut range is to capture all of the script description of the Web page and all the description of reading the script from the outside, and all of the script description of the Web page to the pasted Web page. And the function f () can be executed by reflecting all the descriptions that read the script from the outside.

図9は、切り取り範囲を拡張する第2の方法を示す説明図である。図9は、切り取り範囲に関連する機能が局所的な切り取りで実現しない場合に、Webページ内の全てのアクションを見つけて切り取り範囲を拡張することで、一般的に意図されるとおりの機能を保存するものである。   FIG. 9 is an explanatory diagram showing a second method of extending the cutout range. Fig. 9 shows the functions that are generally intended by saving all the actions in the Web page and expanding the cutting range when the functions related to the cutting range are not realized by local cutting. To do.

アクション取得部32は、切り取り範囲から呼び出される関数や変数の定義(あるいは呼び出された関数から繰り返し的に呼び出される関数や変数の定義)を含む可能性のあるアクション要素を取得する。なお、アクション要素は、アクション要素テーブルにある要素名(タグ)により判定される。図10は、アクション要素テーブルの一例の構成図である。アクション取得部32は切り取り元のWebページのドキュメントツリーを入力として受け取り、ドキュメントツリーの各ノードに対して、アクションを含むノード(アクション要素)を切り出していく。   The action acquisition unit 32 acquires an action element that may include a function or variable definition called from the cut range (or a function or variable definition called repeatedly from the called function). The action element is determined by an element name (tag) in the action element table. FIG. 10 is a configuration diagram of an example of the action element table. The action acquisition unit 32 receives the document tree of the cut-out Web page as an input, and cuts out nodes (action elements) including actions for each node of the document tree.

アクション要素の典型的なものはscript要素である。<script>タグはJavaScriptなどのスクリプトを記述するものであり、<script>~</script>に直接スクリプトが記述されることもあるし、<script type="text/javascript" src="xxx.js" />のようにsrc属性により呼び出される外部ファイルに記述されることもある。   A typical action element is a script element. The <script> tag describes a script such as JavaScript. A script may be directly written in <script> ~ </ script>, or <script type = "text / javascript" src = "xxx. It may be described in an external file called by src attribute like js "/>.

アクション要素としては、script要素以外にform要素がある。例えば下記のようなform要素であったとする。
<form id="f1" name="f1" method="post" action="">
<input name="q" type="hidden" value="">
<input name="r" type="hidden" value="s">
</form>
Action elements include form elements in addition to script elements. For example, suppose it is the following form element.
<form id = "f1" name = "f1" method = "post" action = "">
<input name = "q" type = "hidden" value = "">
<input name = "r" type = "hidden" value = "s">
</ form>

このform要素は、すべてのinput要素がhiddenであり、ユーザに何も入力を要求しておらず、他のアクション要素の補助的な働きを持つものである。したがって、上記のようなform要素はアクション要素として切り出すことが必要になる。   In this form element, all input elements are hidden, do not require any input from the user, and have an auxiliary function of other action elements. Therefore, it is necessary to cut out the form element as described above as an action element.

アクション要素管理部33は切り出されたアクション要素を適切な形式に変換してアクション要素集合テーブル31に保持する。例えば、アクション要素は、その記述自身で保持する方法もあるし、そのアクション要素の位置をXPathのような形式で保持してもよい。アクション要素集合出力部34はドキュメントツリー全体からアクション要素を取得し終えたならば、切り取り位置の拡張として追加すべきアクション要素集合をアクション要素集合テーブル31から出力する。   The action element management unit 33 converts the extracted action element into an appropriate format and holds it in the action element set table 31. For example, the action element can be stored in its description itself, or the position of the action element may be stored in a format such as XPath. When the action element set output unit 34 has obtained the action elements from the entire document tree, the action element set output unit 34 outputs the action element set to be added as an extension of the cut position from the action element set table 31.

切り取り範囲を拡張する第2の方法では、Webページ内にあるすべてのアクションを切り取るので、局所的な切り取りで実現しない機能を保存できる。また、切り取り範囲を拡張する第2の方法は切り取り元のWebページ全体でなく、アクションで切り取り範囲を拡張するため、切り取り元のWebページ全体を取り出して貼り付け先のWebページに貼り付けるよりも切り取り範囲が限定され、スタイル等の取り込みを制御することができる。   In the second method of extending the cut range, all actions in the Web page are cut, so that a function that is not realized by local cut can be saved. In addition, the second method of extending the cut range extends the cut range not by the entire cut-out web page but by action, so that the entire cut-out web page is taken out and pasted to the paste-destination web page. The cut-out range is limited, and capturing of styles and the like can be controlled.

しかし、切り取り範囲を拡張する第2の方法はアクションのすべての部分を切り取ってしまうので、広告のような定型情報の表示など、副作用が残ることもある。次に、切り取り範囲を拡張する第3の方法について説明する。   However, since the second method of extending the cut range cuts out all parts of the action, side effects such as display of standard information such as advertisements may remain. Next, a third method for extending the cutout range will be described.

スクリプトには命令やイベントハンドラ等から呼び出されたときに実行される関数の定義が記述される。しかし、次のスクリプトは命令だけで関数定義がない例である。
<div>
<script type="text/javascript">
document.write("Hello ")
</script>
world
</div>
The script describes the definition of a function that is executed when called from an instruction or event handler. However, the following script is an example with only a command and no function definition.
<div>
<script type = "text / javascript">
document.write ("Hello")
</ script>
world
</ div>

上のスクリプトは、読み込まれた時点で評価されて実行される。したがって、上のスクリプトの実行結果(スクリプトを実行した後のドキュメントツリー)は、Hello worldとなる。   The above script is evaluated and executed when it is read. Therefore, the execution result of the above script (document tree after executing the script) is Hello world.

このように、スクリプト中に関数定義のないものは、他のアクションから参照されない独立したものなので、切り取り範囲として付け加える必要がない。しかもスクリプト中に関数定義のないものは、逆に残してしまうと、上のスクリプトのように本来切り取った部分にない余分なテキストを書き出したり、あるいは広告を表示したりするなどの副作用を起こすかもしれない。   In this way, if there is no function definition in the script, it is an independent thing that is not referenced by other actions, so there is no need to add it as a cutting range. In addition, if there is no function definition in the script, leaving it in reverse may cause side effects such as writing extra text that is not originally cut out like the script above or displaying advertisements. unknown.

そこで、上のような関数定義のないスクリプトなど、本来の切り取り範囲にある機能の実現に関係のなさそうなアクション要素は切り取りリストに入れないようにする。   Therefore, action elements that do not seem to be related to the realization of functions in the original cut range, such as scripts without function definitions as described above, should not be put in the cut list.

以下に他の例を示す。例えば、以下のようなform要素がアクションとして切り出されたとする。
<body>
<form id="f1" name="f1" method="post" action="">
<input name="q" type="hidden" value="">
<input name="ie" type="hidden" value="UTF-8">
<input name="ref" type="hidden" value="sa">
</form>
<h1>ヘッダ</h1>
Other examples are shown below. For example, assume that the following form element is extracted as an action.
<body>
<form id = "f1" name = "f1" method = "post" action = "">
<input name = "q" type = "hidden" value = "">
<input name = "ie" type = "hidden" value = "UTF-8">
<input name = "ref" type = "hidden" value = "sa">
</ form>
<h1> Header </ h1>
...

このform要素ではすべてのinputのtypeがhiddenとなっている。これは、入力用の窓やボタン等がブラウザ上になにも表示されていないことを意味する。また、このform要素はh1の手前に独立して存在している(何かのブロック内部ではない)。このことから、本form要素は独立して用いられるというよりも、何か別のform要素に付随する(別のスクリプトから呼び出される)可能性が高い(独立度が低い)と判断できる。   In this form element, the type of all inputs is hidden. This means that no input windows or buttons are displayed on the browser. This form element exists independently before h1 (not inside any block). From this, it can be determined that this form element is likely to be attached to another form element (called from another script) (roughly independent) rather than used independently.

一方、以下のようなform要素がアクションとして切り出されたとする。
<form action="http://xxx/search.js" name="search" method="get">
<B>WEBサイト検索</B>
<input type="text" size="28" name="search"><input type="submit" value="検索">
<input type="hidden" name="target" value="combined">
<input type="hidden" name="look" value="yyy">
</form>
On the other hand, assume that the following form element is cut out as an action.
<form action = "http: //xxx/search.js" name = "search" method = "get">
<B> Web site search </ B>
<input type = "text" size = "28" name = "search"><input type = "submit" value = "search">
<input type = "hidden" name = "target" value = "combined">
<input type = "hidden" name = "look" value = "yyy">
</ form>

このform要素では一部のinputのtypeがhiddenとなっているが、type="text"とtype="submit"があり、通常の入力に対して検索などの何かの処理を実行するためのフォームの可能性が高い(独立度が高い)と判断できる。このような独立度の高いアクションの中には、サブミットしない限り、副作用を及ぼさないものもあるが、広告等の定型的な情報を出力するためにも使われている。   In this form element, the type of some inputs is hidden, but there are type = "text" and type = "submit", and it is necessary to execute some processing such as search for normal input It can be judged that the possibility of the form is high (independence is high). Some of these highly independent actions have no side effects unless they are submitted, but they are also used to output typical information such as advertisements.

図11は、切り取り範囲を拡張する第3の方法を示す説明図である。図11は、切り取り範囲に関連する機能が局所的な切り取りで実現しない場合に、Webページ内の全てのアクションから切り取り範囲とアクションとの関連性によってアクションを絞り込んで切り取り範囲を拡張することで、一般的に意図されるとおりの機能を保存するものである。   FIG. 11 is an explanatory diagram showing a third method for extending the cutout range. FIG. 11 shows that when the function related to the cut range is not realized by local cut, the cut range is expanded by narrowing down the action based on the relationship between the cut range and the action from all the actions in the Web page. It preserves functionality as generally intended.

切り取り範囲を拡張する第3の方法は、各アクション要素に対して、切り取り範囲内のアクション要素との関連度を計算して(アクション要素の独立度が高ければ関連度は低いことになる)、アクション要素集合として残すかどうか篩にかける。図11は図9の構成にアクション要素取捨選択部35を付け加えたものになっている。   The third method for extending the cut range is to calculate the relevance of each action element with the action elements in the cut range (the higher the degree of independence of the action elements, the lower the relevance). Sift whether to leave as action element set. FIG. 11 is obtained by adding an action element sorting selection unit 35 to the configuration of FIG.

アクション要素取捨選択部35は、プログラムの形態、存在位置、変数等から、与えられたアクション要素の独立度や、切り取り範囲のアクションとの関連度を計算する。アクション要素取捨選択部35は、独立度が低く、切り取られた範囲との関連度が高いと認められたアクション要素(例えばある閾値以上の場合)だけを残す。独立度が低く、切り取られた範囲との関連度が高いと認められたアクション要素だけを残すアクション要素取捨選択部35の処理の詳細は後述する。   The action element sorting and selection unit 35 calculates the degree of independence of the given action element and the degree of association with the action in the cut-out range from the program form, location, variables, and the like. The action element sorting and selection unit 35 leaves only the action elements that are recognized as having a low degree of independence and a high degree of association with the cut-out range (for example, when the value is greater than a certain threshold). Details of the processing of the action element sorting and selection unit 35 that leaves only action elements that are recognized as having a low degree of independence and a high degree of association with the cut-out range will be described later.

なお、アクション要素取捨選択部35は、独立度が低く、切り取られた範囲との関連度が高いアクション要素を自動的に判定しても構わないし、人が何らかの指示を与えるのでも構わない。   The action element sorting and selection unit 35 may automatically determine an action element having a low degree of independence and a high degree of association with the cut-out range, or a person may give some instruction.

切り取り範囲を拡張する第3の方法では、Webページ内にあるそれぞれのアクション要素に対して、切り取り範囲内にあるアクション要素との関連性を計算して、切り取り範囲として残す部分を絞り込むので、副作用(切り取り範囲とは無関係で独立な広告表示等の不要なアクションの実行)の可能性を大幅に減らすことができる。   In the third method of extending the cut range, the relationship with the action elements in the cut range is calculated for each action element in the Web page, and the portion to be left as the cut range is narrowed down. The possibility of (execution of an unnecessary action such as independent advertisement display independent of the cut-out range) can be greatly reduced.

しかし、切り取り範囲を拡張する第3の方法によるアクション関連度計算はヒューリスティックスによるものとなるので、副作用が残る場合や、本来必要だったアクション要素を篩にかけて落としてしまうという場合も起こりえる。次に、切り取り範囲を拡張する第4の方法について説明する。   However, since the action relevance calculation by the third method for extending the cut-out range is based on heuristics, there may be cases where side effects remain or the action elements that were originally required are screened off. Next, a fourth method for extending the cutout range will be described.

例えば、以下のスクリプトを切り取ったとする
<form style="margin: 0px;" id="fm1" name="fm1" onSubmit="return goF2('fm1')">
<input name="q" autocomplete="off" value="" size="35" class="j12" accesskey="e" type="text" />
<input value="検索" class="j12" onclick="return goF1('fm1')" type="button" />
<input value="クリア" onclick="javascript:wordClear('fm1')" class="j12" type="button" />
</form>
For example, if you cut the following script
<form style = "margin: 0px;" id = "fm1" name = "fm1" onSubmit = "return goF2 ('fm1')">
<input name = "q" autocomplete = "off" value = "" size = "35" class = "j12" accesskey = "e" type = "text"/>
<input value = "search" class = "j12" onclick = "return goF1 ('fm1')" type = "button"/>
<input value = "Clear" onclick = "javascript: wordClear ('fm1')" class = "j12" type = "button"/>
</ form>

このスクリプトでは、goF2とgoF1という関数を呼び出している。したがって、より正確にアクション要素を絞り込む為には呼び出している関数が定義されているアクション要素に絞り込んだアクション要素集合を取り出せば良い。しかし、実際には関数定義の中からまた別のアクション要素に記述されている関数や変数などを呼び出しているかもしれないので、未解決な識別子(関数や変数)を管理しながら、取り込むべきアクション要素を決定することが必要になる。   In this script, the functions called goF2 and goF1 are called. Therefore, in order to narrow down the action elements more accurately, it is only necessary to extract the action element set narrowed down to the action elements in which the function being called is defined. However, since the function or variable described in another action element may actually be called from the function definition, the action to be taken in while managing the unresolved identifier (function or variable) It will be necessary to determine the elements.

図12は、切り取り範囲を拡張する第4の方法を示す説明図である。図12は、切り取り範囲に関連する機能が局所的な切り取りで実現しない場合に、Webページ内の全てのアクションからアクションの解析によって、より正確にアクションを絞り込んで切り取り範囲を拡張することで、一般的に意図されるとおりの機能を保存するものである。図12は図9の構成に識別子参照定義関数取得部36,識別子定義元アクション要素取得部37及び識別子管理部38を付け加えたものになっている。   FIG. 12 is an explanatory diagram showing a fourth method for extending the cutout range. FIG. 12 shows that when the function related to the cutout range is not realized by local cutout, the action is analyzed from all the actions in the Web page and the cutout range is expanded by narrowing down the action more accurately. It preserves the functions as intended. 12 is obtained by adding an identifier reference definition function acquisition unit 36, an identifier definition source action element acquisition unit 37, and an identifier management unit 38 to the configuration of FIG.

識別子管理部38は、解決した(取り込んだアクション要素内で定義されている)識別子(関数や変数)と未解決な(取り込んだアクション要素内だけではまだ定義されていない)識別子を管理するものである。   The identifier management unit 38 manages a resolved identifier (defined in the captured action element) (function or variable) and an unresolved identifier (not yet defined only in the captured action element). is there.

識別子参照定義関係取得部36は、与えられたアクション要素に対して、まずスクリプトを取り込む。取り込むスクリプトは、スクリプトがアクション要素内部で記述されている場合、それ自身である。また、取り込むスクリプトは、外部ファイルが参照されている場合、その外部ファイルを取り込んで、その外部ファイルに記述されているスクリプトになる。識別子参照定義関係取得部36は、取り込んだスクリプトを解析し、そのスクリプト内部でどのような識別子が定義されているか、またどのような外部識別子を参照しているかを解析する。   The identifier reference definition relationship acquisition unit 36 first captures a script for a given action element. The script to capture is itself if the script is described inside an action element. In addition, when an external file is referred to, the script to be acquired is the script described in the external file by acquiring the external file. The identifier reference definition relationship acquisition unit 36 analyzes the fetched script and analyzes what identifier is defined in the script and what external identifier is referenced.

識別子定義元アクション要素取得部37は、未解決な識別子に対して、識別子参照定義関係取得部36の解析結果を利用して、その識別子を解決するためのアクション要素を特定するものである。   The identifier definition source action element acquisition unit 37 uses an analysis result of the identifier reference definition relationship acquisition unit 36 for an unresolved identifier to identify an action element for resolving the identifier.

実際の動作は、例えば、まず切り取り範囲内のアクション要素に対する未解決および解決済の識別子を識別子管理部38に与える。識別子参照定義関係取得部36ではあらかじめすべてのアクション要素に対して、どのアクション要素でどの識別子が定義され、どのような識別子が参照されるかを解析し、その一覧表を保持しておく。   In actual operation, for example, first, an unresolved and resolved identifier for an action element within the cutout range is given to the identifier management unit 38. The identifier reference definition relationship acquisition unit 36 analyzes in advance which identifier is defined by which action element and which identifier is referenced for all action elements, and holds a list thereof.

識別子定義元アクション要素取得部37では識別子管理部38から未解決な識別子を取り出し、識別子参照定義関係取得部36の解析結果を参照して、その識別子を解決するためのアクション要素を特定する。識別子定義元アクション要素取得部37は、特定したアクション要素をアクション要素管理部33に通知するとともに、取り込んだアクション要素によって定義されている識別子の情報と、外部参照が行われている識別子の情報とを識別子管理部38に通知する。そして、識別子定義元アクション要素取得部37は未解決な識別子がなくなるまでこのような動作を繰り返すことで、すべての識別子を解決済とするアクション要素の集合を特定する。なお、識別子参照定義関数取得部36,識別子定義元アクション要素取得部37及び識別子管理部38の処理の詳細は後述する。   The identifier definition source action element acquisition unit 37 extracts an unresolved identifier from the identifier management unit 38, refers to the analysis result of the identifier reference definition relationship acquisition unit 36, and identifies an action element for resolving the identifier. The identifier definition source action element acquisition unit 37 notifies the action element management unit 33 of the identified action element, and information on the identifier defined by the taken action element, information on the identifier that is externally referenced, and Is sent to the identifier management unit 38. Then, the identifier definition source action element acquisition unit 37 repeats such an operation until there are no unresolved identifiers, thereby specifying a set of action elements for which all identifiers have been resolved. Details of the processes of the identifier reference definition function acquisition unit 36, the identifier definition source action element acquisition unit 37, and the identifier management unit 38 will be described later.

(本実施例の詳細)
図13は本実施例のマッシュアップ装置を含むシステムの一実施例の構成図である。図13のシステムは、Webマッシュアップ設定装置100,Webマッシュアップ実現装置110,アノテーション管理サーバ120を有している。
(Details of this example)
FIG. 13 is a configuration diagram of an embodiment of a system including the mashup device of the present embodiment. The system in FIG. 13 includes a web mashup setting device 100, a web mashup realization device 110, and an annotation management server 120.

Webマッシュアップ設定装置100はユーザに切り取り部分および貼り付け先を指定させる。Webマッシュアップ実現装置110はユーザに指定された切り取り部分および貼り付け先に基づいたマッシュアップ結果を表示する。アノテーション管理サーバ120はマッシュアップするためのデータを管理する。Webマッシュアップ設定装置100及びWebマッシュアップ実現装置110はWeb閲覧器101,111の拡張機能として実施される。図13ではWebマッシュアップ設定装置100とWebマッシュアップ実現装置110とを分けているが、一つのWeb閲覧器の拡張機能として同時に実現してもよい。   The web mashup setting apparatus 100 allows the user to specify a cutout part and a pasting destination. The web mashup realizing apparatus 110 displays the mashup result based on the cut portion and the pasting destination designated by the user. The annotation management server 120 manages data for mashup. The web mashup setting device 100 and the web mashup realization device 110 are implemented as extended functions of the web browsing devices 101 and 111. Although the web mashup setting device 100 and the web mashup realization device 110 are separated in FIG. 13, they may be realized simultaneously as an extended function of one web browsing device.

Webマッシュアップ設定装置100は、Web閲覧器101,切り取り元選定部102,範囲提示選定部103,貼り付け先選定部104,アノテーション管理部105を有する。   The web mashup setting apparatus 100 includes a web browsing device 101, a cutting source selection unit 102, a range presentation selection unit 103, a paste destination selection unit 104, and an annotation management unit 105.

範囲提示選定部103は、通常のWeb閲覧器101によるWebページの表示においてユーザの特定の操作を受けることで、切り取り範囲や貼り付け先の位置の候補をユーザのキーボードやマウス操作などによって提示する。範囲提示選定部103は、指定された操作(例えばctrl−cやctrl−v)によって現在表示されている範囲に相当する木構造上の位置を返す。   The range presentation selection unit 103 presents a user's specific operation in the display of the Web page by the normal Web browsing device 101, thereby presenting the cutting range and the paste destination position candidate by the user's keyboard or mouse operation. . The range presentation selection unit 103 returns a position on the tree structure corresponding to the currently displayed range by a designated operation (for example, ctrl-c or ctrl-v).

切り取り元選定部102はユーザの特定の操作によって切り取り候補の提示・取得作業を開始し、指示された範囲の切り取りを行う(実際には切り取り位置を取得する)。貼り付け先選定部104はユーザの特定の操作(例えば切り取り終了や特定のキー操作)によって貼り付け候補の提示・取得作業を開始し、指示された位置を貼り付け先と決定(実際には貼り付け位置を取得する)し、切り取り情報(切り取ったWebページのURIと切り取った部分のXPath)と貼り付け情報(貼り付けるWebページのURIである貼り付け先URIと貼り付け位置のXPath)とをセットとしてアノテーション管理部105に渡す。   The cut source selection unit 102 starts presenting and acquiring cut candidates by a specific operation of the user, and cuts the designated range (actually acquires the cut position). The pasting destination selection unit 104 starts presenting and obtaining pasting candidates by a user's specific operation (for example, cutting end or specific key operation), and determines the instructed position as a pasting destination (actually pasting) The cut-out information (URI of the cut Web page and the XPath of the cut-out portion) and the paste information (the paste-destination URI that is the URI of the Web page to be pasted and the XPath of the paste position) are obtained. A set is passed to the annotation management unit 105.

アノテーション管理部105は与えられた切り取り情報と貼り付け情報とをセットにしたアノテーション情報の登録をアノテーション管理サーバ120に依頼する。なお、切り取りから貼り付けの間にはWeb閲覧器101による一般的なWebページ間の移動やWebページ内での移動などが行われる。   The annotation management unit 105 requests the annotation management server 120 to register annotation information that is a set of the given cut information and pasting information. It should be noted that during the cutting and pasting, a movement between general Web pages or movement within the Web page by the Web browsing device 101 is performed.

Web閲覧器101による一般的なWebページ間の移動やWebページ内での移動などの作業が一連の作業として行われることを前提とする場合は、切り取り情報を一時的にメモリに保持しても良いが、切り取り作業の終了時に切り取り情報を外部のファイルに書き込み、貼り付け作業の開始時に適切な切り取り情報を外部のファイルから取り出すという形態でも良い。   When it is assumed that operations such as general movement between Web pages by the Web browsing device 101 and movement within the Web page are performed as a series of operations, the cut information may be temporarily stored in the memory. Although it is good, the cutting information may be written to an external file at the end of the cutting operation and the appropriate cutting information may be taken out from the external file at the start of the pasting operation.

アノテーション管理サーバ120は、アノテーションデータベース管理部121,アノテーションデータベース122を有する。アノテーションデータベース管理部121はWebマッシュアップ設定装置100からの依頼を受け、切り取り情報と貼り付け情報とをセットとしたアノテーション情報をアノテーションデータベース122に登録する。   The annotation management server 120 includes an annotation database management unit 121 and an annotation database 122. In response to a request from the web mashup setting device 100, the annotation database management unit 121 registers annotation information in which the cut information and paste information are set as a set in the annotation database 122.

また、アノテーションデータベース管理部121はWebマッシュアップ実現装置110からの依頼を受け、指定されたURIを貼り付け先URIとして持つアノテーション情報を返す。なお、アノテーション管理サーバ120は、Webマッシュアップ設定装置100及びWebマッシュアップ実現装置110と同一のコンピュータ上に実現しても構わないし、ネットワークを介して繋がった別のコンピュータ上に実現しても構わない。   Also, the annotation database management unit 121 receives a request from the Web mashup realization apparatus 110 and returns annotation information having the specified URI as a pasting destination URI. Note that the annotation management server 120 may be realized on the same computer as the Web mashup setting device 100 and the Web mashup realizing device 110, or may be realized on another computer connected via a network. Absent.

Webマッシュアップ実現装置110は、Web閲覧器111,切り出し情報取得部112,正規化部113,貼り付け位置獲得部114,合成部115,アノテーション管理部116を有する。   The web mashup realizing apparatus 110 includes a web browsing device 111, a cutout information acquisition unit 112, a normalization unit 113, a pasting position acquisition unit 114, a synthesis unit 115, and an annotation management unit 116.

Web閲覧器111は指定されたURIのコンテンツ(Webページ)をネットワークから取り込む。このとき、アノテーション管理部116は指定されたURIに付与されたアノテーション情報をアノテーション管理サーバ120に要求して受け取る。切り出し情報取得部112は受け取ったアノテーション情報の個々について、アノテーション情報に記述された切り取り元のURIをWeb閲覧器111に渡し、切り取り元のURIのコンテンツをネットワークから取り込み、アノテーション情報に記述された切り取り元のXPathの部分(HTML断片)を切り出す。   The web browsing device 111 takes in the content (web page) of the designated URI from the network. At this time, the annotation management unit 116 requests the annotation management server 120 to receive the annotation information given to the designated URI. For each piece of received annotation information, the cutout information acquisition unit 112 passes the URI of the cut source described in the annotation information to the Web browsing device 111, imports the content of the cut source URI from the network, and cuts out the cutout described in the annotation information. Cut out the original XPath part (HTML fragment).

正規化部113は切り出されたHTML断片を、貼り付け先のWebページの環境に適合するように正規化する。貼り付け位置獲得部114はアノテーション情報に記述された貼り付け先のXPathからHTML断片を貼り付ける貼り付け位置を求める。   The normalizing unit 113 normalizes the cut-out HTML fragment so as to be compatible with the environment of the Web page to be pasted. The pasting position acquisition unit 114 obtains a pasting position for pasting the HTML fragment from the pasting XPath described in the annotation information.

合成部115は、貼り付け位置獲得部114が求めた貼り付け位置に正規化されたHTML断片を貼り付ける。なお、正規化されたHTML断片が合成部115により貼り付けられたWebページのDOMツリーは、後述するように、レンダリングエンジンによってレンダリングされて表示される。   The combining unit 115 pastes the normalized HTML fragment at the pasting position obtained by the pasting position acquisition unit 114. Note that the DOM tree of the Web page on which the normalized HTML fragment is pasted by the synthesis unit 115 is rendered and displayed by a rendering engine, as will be described later.

図13のWebマッシュアップ設定装置100,Webマッシュアップ実現装置110及びアノテーション管理サーバ120は、例えば図14に示すコンピュータシステムにより実現できる。   The web mashup setting device 100, the web mashup realizing device 110, and the annotation management server 120 in FIG. 13 can be realized by a computer system shown in FIG. 14, for example.

図14はコンピュータシステムの一例の構成図である。コンピュータシステムは、それぞれバスBで相互に接続されている入力装置151,出力装置152,ドライブ装置153,補助記憶装置154,主記憶装置155,演算処理装置156及びインターフェース装置157を有する。   FIG. 14 is a configuration diagram of an example of a computer system. The computer system includes an input device 151, an output device 152, a drive device 153, an auxiliary storage device 154, a main storage device 155, an arithmetic processing device 156, and an interface device 157 that are mutually connected by a bus B.

入力装置151はキーボードやマウス等である。入力装置151は各種信号を入力するために用いられる。出力装置152はディスプレイ装置等である。出力装置152は各種ウインドウやデータ等を表示するために用いられる。インターフェース装置157はモデムやLANカードなどであり、ネットワークに接続する為に用いられる。   The input device 151 is a keyboard or a mouse. The input device 151 is used for inputting various signals. The output device 152 is a display device or the like. The output device 152 is used to display various windows and data. The interface device 157 is a modem, a LAN card, or the like, and is used for connecting to a network.

本実施例のマッシュアッププログラムはWebマッシュアップ設定装置100,Webマッシュアップ実現装置110を制御する各種プログラムに含まれる。マッシュアッププログラムは例えば記録媒体158の配布やネットワークからのダウンロードなどによって提供される。マッシュアッププログラムを記録した記録媒体158は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。   The mashup program of this embodiment is included in various programs for controlling the web mashup setting device 100 and the web mashup realization device 110. The mashup program is provided, for example, by distributing the recording medium 158 or downloading from a network. The recording medium 158 on which the mashup program is recorded is information such as a CD-ROM, a flexible disk, a magneto-optical disk, etc., a recording medium for recording information optically, electrically or magnetically, a ROM, a flash memory, etc. Various types of recording media, such as a semiconductor memory that electrically records data, can be used.

マッシュアッププログラムを記録した記録媒体158がドライブ装置153にセットされると、マッシュアッププログラムは記録媒体158からドライブ装置153を介して補助記憶装置154にインストールされる。   When the recording medium 158 on which the mashup program is recorded is set in the drive device 153, the mashup program is installed from the recording medium 158 to the auxiliary storage device 154 via the drive device 153.

ネットワークからダウンロードされたマッシュアッププログラムはインターフェース装置157を介して補助記憶装置154にインストールされる。補助記憶装置154はインストールされたマッシュアッププログラムを格納すると共に、必要なファイル,データ等を格納する。   The mashup program downloaded from the network is installed in the auxiliary storage device 154 via the interface device 157. The auxiliary storage device 154 stores the installed mashup program and also stores necessary files, data, and the like.

主記憶装置155は、コンピュータの起動時に補助記憶装置154からマッシュアッププログラムを読み出して格納する。そして、演算処理装置156は主記憶装置155に格納されたマッシュアッププログラムに従って、後述の各種処理を実現している。   The main storage device 155 reads out and stores the mashup program from the auxiliary storage device 154 when the computer is activated. The arithmetic processing unit 156 implements various processes described later in accordance with a mashup program stored in the main storage unit 155.

(マッシュアッププログラムがWeb閲覧器に適用された例)
図15は、本実施例のマッシュアッププログラムを適用したWeb閲覧器の一例の構成図である。図15のWeb閲覧器160は、典型的な構成を示したものであり、説明に不要なCSSの処理やPDFプラグイン等の細かい部分を省略している。
(Example of mashup program applied to a web browser)
FIG. 15 is a configuration diagram of an example of a Web browsing device to which the mashup program of the present embodiment is applied. The web browsing device 160 shown in FIG. 15 shows a typical configuration, and details such as CSS processing and PDF plug-in that are unnecessary for the description are omitted.

ネットワークを経由して受信されたHTML文書161をHTMLパーサ162は解析して、木構造(DOMツリー)163を生成する。これと同時に、Javascriptエンジン165はHTML文書161中にあったJavascriptプログラム164を実行し、DOMツリー163の中身を書き換える。書き換えられたDOMツリー163はレンダリングエンジン166に送られる。   The HTML parser 162 analyzes the HTML document 161 received via the network, and generates a tree structure (DOM tree) 163. At the same time, the Javascript engine 165 executes the Javascript program 164 in the HTML document 161 and rewrites the contents of the DOM tree 163. The rewritten DOM tree 163 is sent to the rendering engine 166.

レンダリングエンジン166は送られてきたDOMツリー163を画面で見える形に変換する。そして、ユーザインタフェース167を介したユーザの操作等によってJavascriptエンジン165はJavascriptプログラム164に従って、DOMツリー163を書き換え、表示させる内容を変化させる。マッシュアッププログラム168は、典型的にWeb閲覧器160の中に保持される(すなわち、Web閲覧器160に組込まれる、あるいは機能拡張として付け加えられる形で実現される)。   The rendering engine 166 converts the received DOM tree 163 into a form that can be seen on the screen. Then, the JavaScript engine 165 rewrites the DOM tree 163 and changes the content to be displayed according to the Javascript program 164 by a user operation or the like via the user interface 167. The mashup program 168 is typically held in the web browser 160 (ie, implemented in a form incorporated into the web browser 160 or added as a function extension).

そして、読み込まれたHTML文書161のJavascriptプログラム164が実行されるのに追加して、マッシュアッププログラム168は実行され、DOMツリー163を書き換える。   Then, in addition to the Javascript program 164 of the read HTML document 161 being executed, the mashup program 168 is executed, and the DOM tree 163 is rewritten.

なお、マッシュアッププログラム168が参照するアノテーションデータベース等のデータはWeb閲覧器160の外部に保持される。マッシュアッププログラム168を保持する別の実施形態としては、読み込まれるHTML文書161に、マッシュアッププログラム168を保持しておくことが考えられる。この実施形態では、適用できるWebページが限定されるが、Web閲覧器160にマッシュアッププログラム168を保持するのと同じ効果を持たせることができる。   Note that data such as an annotation database referred to by the mashup program 168 is held outside the web browsing device 160. As another embodiment for holding the mashup program 168, it is conceivable to hold the mashup program 168 in the HTML document 161 to be read. In this embodiment, applicable Web pages are limited, but the Web browser 160 can have the same effect as holding the mashup program 168.

以下では、図13のシステムにおけるWebマッシュアップ設定装置100及びWebマッシュアップ実現装置110の処理について説明する。   Hereinafter, processing of the web mashup setting device 100 and the web mashup realization device 110 in the system of FIG. 13 will be described.

(Webマッシュアップ設定装置100)
Webマッシュアップ設定装置100を組込んだ典型的なWeb閲覧器101は、切り取り元選定部102、範囲提示選定部103、貼り付け先選定部104、アノテーション管理部105を有する。
(Web mashup setting device 100)
A typical web browsing device 101 incorporating the web mashup setting device 100 includes a cut-out source selection unit 102, a range presentation selection unit 103, a paste destination selection unit 104, and an annotation management unit 105.

図16は、切り取り元選定部の処理を表したフローチャートである。切り取り元選定部102は、Web閲覧器101に埋め込まれたコマンド(キー操作やメニュー、ボタンなど)により起動される。   FIG. 16 is a flowchart showing the processing of the cutting source selection unit. The cut source selection unit 102 is activated by a command (key operation, menu, button, or the like) embedded in the web browsing device 101.

ステップS21に進み、起動された切り取り元選定部102はモードを切り取りとして範囲提示選定部103を起動する。ステップS22に進み、切り取り元選定部102は範囲提示選定部103から切り取り位置のノード(XPath)を受け取る。ステップS23に進み、切り取り元選定部102は範囲提示選定部103から受け取った切り取り位置のノード(XPath)を切り取り情報として一時的に格納して終了する。   Proceeding to step S21, the activated cut-off source selection unit 102 activates the range presentation selection unit 103 with the mode cut. In step S 22, the cut source selection unit 102 receives a cut position node (XPath) from the range presentation selection unit 103. In step S23, the cut source selection unit 102 temporarily stores the cut position node (XPath) received from the range presentation selection unit 103 as cut information, and the process ends.

図17は、貼り付け先選定部の処理を表したフローチャートである。貼り付け先選定部104は、切り取り元選定部102の終了によって、あるいはWeb閲覧器101に埋め込まれたコマンド(キー操作やメニュー、ボタンなど)により起動される。   FIG. 17 is a flowchart showing the processing of the paste destination selection unit. The paste destination selection unit 104 is activated by the end of the cut source selection unit 102 or by a command (key operation, menu, button, or the like) embedded in the web browsing device 101.

ステップS31に進み、起動された貼り付け先選定部104はモードを貼り付けとして範囲提示選定部103を起動する。ステップS32に進み、貼り付け先選定部104は範囲提示選定部103から貼り付け位置のノード(XPath)を受け取る。   In step S31, the started paste destination selecting unit 104 starts the range presentation selecting unit 103 with the mode being pasted. In step S 32, the paste destination selection unit 104 receives a paste position node (XPath) from the range presentation selection unit 103.

ステップS33に進み、貼り付け先選定部104はアノテーション管理部105を呼び出し、一時的に格納してあった切り取り情報と範囲提示選定部103から受け取った貼り付け位置のノード(XPath)である貼り付け情報とをセットにして、アノテーションデータベース122に登録する。   In step S 33, the paste destination selection unit 104 calls the annotation management unit 105 and pastes the temporarily stored cut information and the paste position node (XPath) received from the range presentation selection unit 103. A set of information is registered in the annotation database 122.

図18は、範囲提示選定部の処理を表したフローチャートである。範囲提示選定部103はユーザのアクション等により、切り取り位置、或いは、貼り付け位置のノード(XPath)を切り取り元選定部105又は貼り付け先選定部104に返すものである。具体的に範囲提示選定部103は、例えばマウスカーソルの移動によって現在注目している木構造上のノードを画面上で選定させ、木構造上のノードをマウスクリックによって確定させるものである。   FIG. 18 is a flowchart showing the processing of the range presentation selection unit. The range presentation selection unit 103 returns the cut position or paste position node (XPath) to the cut source selection unit 105 or the paste destination selection unit 104 according to a user action or the like. Specifically, the range presentation selection unit 103 selects a node on the tree structure that is currently focused on, for example, by moving the mouse cursor, and determines the node on the tree structure by clicking the mouse.

ステップS41に進み、範囲提示選定部103は、現在が切り取り作業のための範囲提示なのか、貼り付け作業のための範囲提示なのかのモードを受け取る。例えば範囲提示選定部103は切り取り元選定部102から切り取り作業のための範囲提示であることを示す切り取りモードを受け付ける。また、範囲提示選定部103は貼り付け先選定部104から貼り付け作業のための範囲提示であることを示す貼り付けモードを受け付ける。範囲提示選定部103は受け付けたモードを起動させる。   In step S41, the range presentation selection unit 103 receives a mode indicating whether the present is a range presentation for cutting work or a range presentation for pasting work. For example, the range presentation selection unit 103 accepts a cut mode indicating that the range is presented for cut work from the cut source selection unit 102. Further, the range presentation selection unit 103 receives a pasting mode indicating that it is a range presentation for pasting work from the pasting destination selection unit 104. The range presentation selection unit 103 activates the accepted mode.

ステップS42に進み、範囲提示選定部103は、画面上のマウスカーソルの位置を求める。ステップS43に進み、範囲提示選定部103は画面上のマウスカーソルの位置に対応するWebページの木構造上の位置を求める。ステップS44に進み、範囲提示選定部103は画面上のマウスカーソルの位置に対応するWebページの木構造上の位置から適切なノード(要素)を現在のノードとして求める。例えば範囲提示選定部103は文字や文字間(#textノード)ならば、上位ノード(pノード、tdノード、h1ノードなど)を現在のノードとする。   In step S42, the range presentation selection unit 103 obtains the position of the mouse cursor on the screen. In step S43, the range presentation selection unit 103 obtains a position on the tree structure of the Web page corresponding to the position of the mouse cursor on the screen. In step S44, the range presentation selection unit 103 obtains an appropriate node (element) as the current node from the position on the tree structure of the Web page corresponding to the position of the mouse cursor on the screen. For example, if the range presentation selection unit 103 is a character or an inter-character (#text node), the upper node (p node, td node, h1 node, etc.) is the current node.

ステップS45に進み、範囲提示選定部103は現在のノードを囲う枠をモードに合わせて表示する。範囲提示選定部103は例えば切り取り作業の枠の色と貼り付け作業の枠の色とを変更する。また、範囲提示選定部103はマウスカーサの動きにより枠を大きくしたり小さくしたりする。   In step S45, the range presentation selection unit 103 displays a frame surrounding the current node according to the mode. The range presentation selection unit 103 changes, for example, the color of the cutting work frame and the color of the pasting work frame. Further, the range presentation selection unit 103 enlarges or reduces the frame according to the movement of the mouse cursor.

ステップS46に進み、範囲提示選定部103は予め設定したアクション(マウスボタンをクリックするであるとか、指定されたキー入力など)による割り込みがあれば、その時点でのノード(枠が表示されている範囲)を切り取り元選定部102又は貼り付け先選定部104に返す。なお、範囲提示選定部103は予め設定したアクションによる割り込みがなければ、ステップS42に戻り、処理を続ける。   In step S46, if there is an interruption due to a preset action (such as clicking a mouse button or a specified key input), the range presentation selection unit 103 displays a node (frame is displayed) at that time. Range) is returned to the cutting source selection unit 102 or the pasting destination selection unit 104. If there is no interruption by a preset action, the range presentation selection unit 103 returns to step S42 and continues the process.

(Webマッシュアップ実現装置110)
本実施例のマッシュアッププログラム168を組み込んだWeb閲覧器(あるいは一般にWebクライアント)111は図19に示すフローチャートのような動作を行う。図19はWebマッシュアップ実現装置の処理を表したフローチャートである。
(Web Mashup Realization Device 110)
A Web browsing device (or Web client in general) 111 incorporating the mashup program 168 of this embodiment performs an operation as shown in the flowchart of FIG. FIG. 19 is a flowchart showing processing of the Web mashup realizing apparatus.

図19中、ステップS51では、Web閲覧器111が、表示するWebページのURIを受け取る。ステップS52に進み、Web閲覧器111は受け取ったURIで指定されるWebページをネットワークから読み込む。ステップS53に進み、Web閲覧器111は読み込んだWebページをパーサによって解析し、構造を抽出する。抽出された構造は木構造(ツリー)の形をとる(例えばDOMツリー)。   In FIG. 19, in step S51, the Web browsing device 111 receives the URI of the Web page to be displayed. In step S52, the web browsing device 111 reads the web page specified by the received URI from the network. In step S53, the web browsing device 111 analyzes the read web page with a parser and extracts the structure. The extracted structure takes the form of a tree structure (tree) (for example, a DOM tree).

ステップS54に進み、アノテーション管理部116は受け取ったURIをキーとしてアノテーション管理サーバ120にアクセスし、受け取ったURIが貼り付け先に指定されている全てのアノテーション情報を獲得する。そして、Webマッシュアップ実現装置110はステップS54で獲得したアノテーション情報のそれぞれに対して以下の処理を行う。   In step S54, the annotation management unit 116 accesses the annotation management server 120 using the received URI as a key, and acquires all annotation information in which the received URI is specified as the paste destination. Then, the web mashup realization apparatus 110 performs the following processing for each annotation information acquired in step S54.

まず、ステップS55に進み、切り出し情報取得部112は受け取ったアノテーション情報に記述された切り取り元のURIを獲得する。ステップS56に進み、切り出し情報取得部112は獲得した切り取り元のURIをWeb閲覧器111に渡し、切り取り元のURIのWebページをネットワークから獲得する。ステップS57に進み、Web閲覧器111は獲得した切り取り元のURIのWebページを、HTMLパーサ162で解析する。   First, the process proceeds to step S55, where the cut-out information acquisition unit 112 acquires the cut-out URI described in the received annotation information. In step S56, the cutout information acquisition unit 112 passes the acquired URI of the cut source to the Web browsing device 111, and acquires the Web page of the cut source URI from the network. In step S 57, the web browsing device 111 analyzes the web page of the acquired URI of the cut-out source using the HTML parser 162.

ステップS58に進み、切り出し情報取得部112はアノテーション情報に記述された切り取り元のXPathから切り取り位置を求め、切り取り元のWebページの切り取り位置からHTML断片を取り出す。ステップS59に進み、正規化部113は取り出されたHTML断片を、貼り付け先のWebページの環境に適合するように正規化する。   In step S58, the cutout information acquisition unit 112 obtains a cutout position from the cutout XPath described in the annotation information, and takes out an HTML fragment from the cutout position of the cutout Web page. In step S59, the normalization unit 113 normalizes the extracted HTML fragment so as to be compatible with the environment of the Web page to be pasted.

ステップS60に進み、貼り付け位置獲得部114はアノテーション情報に記述された貼り付け先のXPathと、ステップS53で抽出された木構造とに基づき、HTML断片を貼り付ける木構造上の貼り付け位置を獲得する。ステップS61に進み、合成部115は貼り付け位置獲得部114が獲得した貼り付け位置に、正規化されたHTML断片を埋め込む(接ぎ木する)。   In step S60, the paste position acquisition unit 114 determines the paste position on the tree structure to which the HTML fragment is to be pasted based on the XPath of the paste destination described in the annotation information and the tree structure extracted in step S53. To win. In step S61, the synthesis unit 115 embeds (grafts) the normalized HTML fragment at the pasting position acquired by the pasting position acquisition unit 114.

ステップS54で獲得したアノテーション情報のそれぞれに対するステップS55〜S61の処理が終了すると、Web閲覧器111はステップS62に進み、アノテーション情報のそれぞれのHTML断片が埋め込まれた木構造をレンダリングエンジン166に渡してレンダリングする。   When the processing of steps S55 to S61 for each piece of annotation information acquired in step S54 is completed, the web browsing device 111 proceeds to step S62, and passes the tree structure in which each HTML fragment of the annotation information is embedded to the rendering engine 166. Render.

(本実施例におけるマッシュアップ方法の3つの実施形態)
本実施例におけるマッシュアップ方法を図13のマッシュアップ装置に組込む典型的な実施形態としては、第1〜第3の実施形態がある。第1の実施形態は、切り取る位置を指定された時に、その時点で位置を拡張する方法である。第2の実施形態は、Webマッシュアップ実現時に位置を拡張する方法である。第3の実施形態は、ユーザインタフェースとして必要最小限の情報を含まない時に切り取りができないようにする方法である。
(Three embodiments of the mashup method in the present embodiment)
As typical embodiments in which the mashup method in the present embodiment is incorporated into the mashup device of FIG. 13, there are first to third embodiments. The first embodiment is a method of expanding a position at the time when a position to be cut is designated. The second embodiment is a method of expanding the position when Web mashup is realized. The third embodiment is a method for preventing clipping when the minimum necessary information is not included as a user interface.

以下、第1〜第3の実施形態について説明する。   Hereinafter, the first to third embodiments will be described.

第1の実施形態は、Webマッシュアップ設定装置100の切り取り元選択部102を拡張するものである。第1の実施形態では、切り取り範囲が指定された後、切り取り範囲を正規化する。この正規化された切り取り範囲をアノテーション管理部105に対して正規化切り取り範囲として与えることで、第1の実施形態はユーザが指定した切り取り範囲にかかわらず正規化した切り取り範囲が与えられるので、期待される機能が保持されたマッシュアップが可能となる。   In the first embodiment, the cut-out source selection unit 102 of the Web mashup setting device 100 is extended. In the first embodiment, after the cut range is specified, the cut range is normalized. By giving this normalized cut range to the annotation management unit 105 as a normalized cut range, the first embodiment provides a normalized cut range regardless of the cut range specified by the user. The mashup with the function to be performed becomes possible.

第2の実施形態は、Webマッシュアップ実現装置110の切り出し情報取得部112を拡張するものである。第2の実施形態ではアノテーション情報として実際に切り取った範囲(正規化前のもの)を保持しておく。第2の実施形態では、Webマッシュアップ実現装置110の切り出し情報取得部112がアノテーション情報として切り取り範囲が与えられる。切り出し情報取得部112は切り取り元のWebページからHTMLフラグメントを取得する前に、与えられた切り取り範囲を正規化して、正規化された範囲(正規化切り取り範囲)を用いて実際の切り取りを行う。   In the second embodiment, the cut-out information acquisition unit 112 of the Web mashup realizing apparatus 110 is extended. In the second embodiment, the range (before normalization) actually cut out is held as annotation information. In the second embodiment, the cutout information acquisition unit 112 of the Web mashup realization apparatus 110 provides a cutout range as annotation information. The cutout information acquisition unit 112 normalizes a given cutout range and obtains an actual cutout using the normalized range (normalized cutout range) before acquiring an HTML fragment from the cut-out Web page.

このように第2の実施形態は、第1の実施形態と正規化するタイミングが異なる。第1の実施形態では切り取り時に1回だけ正規化を行えば良い。第2の実施形態ではマッシュアップされた情報を表示するWebマッシュアップ実現時に毎回正規化を行う必要がある。その代わり、第2の実施形態では切り取り時から貼り付け時の間にスクリプトの変更などがあった場合、新しいスクリプトに基づいて切り取り範囲等が決定されることになる。   As described above, the second embodiment differs from the first embodiment in normalization timing. In the first embodiment, normalization may be performed only once at the time of cutting. In the second embodiment, it is necessary to perform normalization every time a Web mashup that displays mashup information is realized. Instead, in the second embodiment, when a script is changed between the time of cutting and the time of pasting, the cutting range and the like are determined based on the new script.

第3の実施形態は、Webマッシュアップ設定装置100の範囲提示選定部103を拡張するものである。第3の実施形態では、ユーザインタフェースとして切り取れる範囲を提示する際に、木構造上の内部的に指し示しているノード(切り取り範囲)と正規化された切り取り範囲とを同時に持つようにする。   The third embodiment extends the range presentation selection unit 103 of the web mashup setting device 100. In the third embodiment, when presenting a range that can be cut out as a user interface, a node (cutout range) indicated internally on the tree structure and a normalized cutout range are provided at the same time.

第3の実施形態は、通常(特殊な操作をしない限り)、ユーザに正規化された範囲しか提示しないことで正規化された範囲でしか切り取れないようにするものである。第3の実施形態は、ユーザに対して何が起きているのかを示しやすくなる。なお、実施形態1〜3は複数を組み合わせることもあり得る。   In the third embodiment, normally (unless a special operation is performed), only the normalized range is presented to the user so that only the normalized range can be cut. The third embodiment makes it easier to show what is happening to the user. The first to third embodiments may be combined.

(切り取り範囲を拡張する第1の方法)
図5のような部品・構成タグ一覧テーブルは、部品タグと構成タグとの関係を保持したものである。部品タグは検索等の機能を実現するための部品であって単独では意味をなさない。構成タグは部品タグをまとめて機能を実現する為のスクリプト(プログラム)を呼び出す役割を果たす。
(First method for extending the cutting range)
The component / configuration tag list table as shown in FIG. 5 holds the relationship between the component tag and the configuration tag. The component tag is a component for realizing a function such as search, and has no meaning by itself. The configuration tag plays a role of calling a script (program) for realizing the function by collecting the component tags.

図20は未解決部品確認部の処理手順を表した一例のフローチャートである。ステップS71に進み、未解決部品確認部12は切り取り範囲をドキュメントツリーのノードとして受け取り、このノードを一つ含む探索リストを設定する。   FIG. 20 is a flowchart illustrating an example of the processing procedure of the unresolved component confirmation unit. In step S71, the unresolved part confirmation unit 12 receives the cut range as a node of the document tree, and sets a search list including one of the nodes.

ステップS72に進み、未解決部品確認部12は探索リストが空になったら未解決部品ノードなしを返す。探索リストにメンバが存在するならば、未解決部品確認部12はステップS73に進み、メンバ(ノード)を一つ取り出し、取り出したメンバを探索リストから取り除く。   In step S72, the unresolved component confirmation unit 12 returns no unresolved component node when the search list becomes empty. If there is a member in the search list, the unresolved parts confirmation unit 12 proceeds to step S73, extracts one member (node), and removes the extracted member from the search list.

ステップS74に進み、未解決部品確認部12は取り出したメンバが部品要素か否かを確認する。具体的に、未解決部品確認部12は取り出したノードのタグ名が部品・構成タグ一覧テーブル11に部品タグ名として登録されているか否かを確認する。   In step S74, the unresolved component confirmation unit 12 confirms whether or not the extracted member is a component element. Specifically, the unresolved component confirmation unit 12 confirms whether the tag name of the extracted node is registered as a component tag name in the component / configuration tag list table 11.

取り出したノードのタグ名が部品タグとして登録されているならば未解決部品確認部12は取り出したメンバが部品要素であると判定する。部品要素であると判定すれば、未解決部品確認部12は未解決部品ノードありを返す。部品要素であると判定しなければ、未解決部品確認部12はステップS75に進み、ステップS74と同様、取り出したメンバが構成要素か否かを確認する。構成要素であると判定すれば、未解決部品確認部12はステップS72に戻る。   If the tag name of the extracted node is registered as a component tag, the unresolved component confirmation unit 12 determines that the extracted member is a component element. If it is determined that it is a component element, the unresolved component confirmation unit 12 returns presence of an unresolved component node. If it is not determined to be a component element, the unresolved component confirmation unit 12 proceeds to step S75, and confirms whether or not the extracted member is a component as in step S74. If it determines with it being a component, the unresolved components confirmation part 12 will return to step S72.

すなわち、未解決部品確認部12はステップS73で取り出したノードの下位構造に関しての探索を行わない。構成要素でないと判定すれば、未解決部品確認部12はステップS73で取り出したノードの子ノードが存在するならば、その子ノードをそれぞれ探索リストのメンバとしてつけ加えたあと、ステップS72に戻る。すなわち、構成要素でなかった場合、未解決部品確認部12はステップS73で取り出したノードの下位構造も部品要素を探索することになる。   That is, the unresolved component confirmation unit 12 does not search for the subordinate structure of the node extracted in step S73. If it is determined that it is not a component, the unresolved parts confirmation unit 12 adds the child nodes as members of the search list if there are child nodes of the node extracted in step S73, and then returns to step S72. That is, when the component is not a component, the unresolved component confirmation unit 12 searches for the component element in the subordinate structure of the node extracted in step S73.

図21は、未解決部品確認部のオプションの処理手順を表した一例のフローチャートである。図20のフローチャートでは、検索窓の中の文字列など、部品要素の内部が選択された場合に、部品要素ではないとしている。しかし、部品の内部の要素も部品であると考えるならば、未解決部品確認部12は部品要素でないと判定されたときに、さらに図21のフローチャートの処理を実行する。   FIG. 21 is a flowchart illustrating an example of an optional processing procedure of the unresolved component confirmation unit. In the flowchart of FIG. 20, when the inside of a part element such as a character string in the search window is selected, it is not a part element. However, if it is considered that an element inside the part is also a part, the unresolved part confirmation unit 12 further executes the process of the flowchart of FIG. 21 when it is determined that the part is not a part element.

すなわち、未解決部品確認部12はステップS81に進み、オリジナルノード(切り取り範囲)を受け取る。ステップS82に進み、未解決部品確認部12は受け取ったオリジナルノードがトップノードか否かを判定する。トップノードでなければ、未解決部品確認部12はステップS83に進み、オリジナルノードが構成要素か否かを確認する。構成要素であると判定しなければ、未解決部品確認部12はステップS84に進み、オリジナルノードが部品要素か否かを判定する。部品要素であると判定しなければ、未解決部品確認部12はステップS85に進み、オリジナルノードを一つ上位ノードへ移動させたあとステップS82に戻る。   In other words, the unresolved component confirmation unit 12 proceeds to step S81 and receives the original node (cutout range). In step S82, the unresolved component confirmation unit 12 determines whether the received original node is a top node. If it is not the top node, the unresolved part confirmation unit 12 proceeds to step S83 and confirms whether or not the original node is a component. If it is not determined that the component is a component, the unsolved component confirmation unit 12 proceeds to step S84, and determines whether the original node is a component element. If not determined to be a component element, the unresolved component confirmation unit 12 proceeds to step S85, moves the original node to one higher node, and then returns to step S82.

ステップS82において、未解決部品確認部12は受け取ったオリジナルノード又はステップS85で移動されたノードがトップノードであれば、オリジナルノードが部品要素の部分でないと判定する。ステップS83において、受け取ったオリジナルノード又はステップS85で移動されたノードが構成要素であれば、未解決部品確認部12はオリジナルノードが部品要素の部分でないと判定する。   In step S82, if the unresolved part confirmation unit 12 is the received original node or the node moved in step S85 is the top node, the unresolved part confirmation unit 12 determines that the original node is not a part element part. In step S83, if the received original node or the node moved in step S85 is a constituent element, the unresolved part confirmation unit 12 determines that the original node is not a part element part.

ステップS84において、未解決部品確認部12は受け取ったオリジナルノード又はステップS85で移動されたノードが部品要素であれば、オリジナルノードが部品要素の部分であると判定する。   In step S84, if the unresolved part confirmation unit 12 is the received original node or the node moved in step S85 is a part element, the unresolved part confirmation unit 12 determines that the original node is a part of the part element.

図21のフローチャートの処理において、未解決部品確認部12はオリジナルノードからノードを順に上位ノードへ辿っていき、構成要素や部品要素が見つからないままトップノードに辿り着いたならば、オリジナルノードが部品要素の部分でないと判定する。先に構成要素が見つかった場合も、未解決部品確認部12はオリジナルノードが部品要素の部分でないと判定する。先に部品要素が見つかった場合、未解決部品確認部12はオリジナルノードが部品要素の内部であったと判定する。なお、本実施例では、例えば、検索のボタンとボタンとの間にある文字列を部品要素と考えないことになる。   In the process of the flowchart of FIG. 21, the unresolved part confirmation unit 12 sequentially traces the nodes from the original node to the upper node, and if it reaches the top node without finding any component or part element, the original node becomes the part. It is determined that it is not an element part. Even when a constituent element is found first, the unresolved part confirmation unit 12 determines that the original node is not a part element part. When a component element is found first, the unresolved component confirmation unit 12 determines that the original node is inside the component element. In the present embodiment, for example, a character string between search buttons is not considered as a component element.

図22は関連構成取得部の処理手順を表した一例のフローチャートである。ステップS91に進み、関連構成取得部13はオリジナルノード(切り取り範囲)を受け取る。ステップS92に進み、関連構成取得部13はオリジナルノードを一つ上位ノードへ移動させる。ステップS93に進み、関連構成取得部13はステップS92で移動されたノードが構成要素でなければステップS92に戻り処理を繰り返す。ステップS92で移動されたノードが構成要素であれば、関連構成取得部13はステップS92で移動されたノードを正規化された範囲(正規化切り取り範囲)として返す。   FIG. 22 is a flowchart illustrating an example of the processing procedure of the related configuration acquisition unit. In step S91, the related configuration acquisition unit 13 receives the original node (cutout range). In step S92, the related configuration acquisition unit 13 moves the original node to one higher node. In step S93, the related configuration acquisition unit 13 returns to step S92 and repeats the process if the node moved in step S92 is not a component. If the node moved in step S92 is a constituent element, the related configuration acquisition unit 13 returns the node moved in step S92 as a normalized range (normalized cut range).

図22のフローチャートの処理において、関連構成取得部13は切り取られた範囲に未解決部品要素があると未解決部品確認部12に判定された場合に呼び出される。関連構成取得部13では切り取られた範囲であるドキュメントツリーのノードを起点として、上位ノードへ一つずつ辿っていく。辿ったところのノードが構成要素であったら、関連構成取得部13は構成要素(構成ノードをルートとするサブツリー)を正規化切り取り範囲として返す。   In the processing of the flowchart of FIG. 22, the related configuration acquisition unit 13 is called when the unresolved component confirmation unit 12 determines that there is an unresolved component element in the cut out range. The related configuration acquisition unit 13 traces one node at a time starting from the node of the document tree that is the clipped range. If the traced node is a component, the related configuration acquisition unit 13 returns the component (a subtree having the component node as a root) as a normalized cut range.

(切り取り範囲を拡張する第2の方法)
図23は切り取り範囲を拡張する第2の方法の処理手順を表した一例のフローチャートである。ステップS101の処理は、上記した切り取り範囲を拡張する第1の方法と同様であるため説明を省略する。
(Second method of extending the cut range)
FIG. 23 is a flowchart illustrating an example of a processing procedure of the second method for extending the cutout range. Since the process of step S101 is the same as the first method for extending the cutout range, the description thereof is omitted.

ステップS102に進み、アクション取得部32はステップS101で正規化された範囲(正規化切り取り範囲)以下の構造において、まず他のアクション要素において定義される関数や変数等の識別子の参照を含むかどうか判定する。関数や変数等の識別子はスクリプト内部に記述される。したがって、アクション取得部32は、簡易的に、スクリプトのソースが記述されているかどうかで判定する。   Proceeding to step S102, whether the action acquisition unit 32 includes a reference to an identifier such as a function or a variable defined in another action element in the structure below the range normalized in step S101 (normalized cut range). judge. Identifiers such as functions and variables are described inside the script. Therefore, the action acquisition unit 32 simply determines whether or not a script source is described.

具体的に、ステップS102の参照を含むかどうかの判定は、スクリプトソース記述可能属性テーブルの要素・属性の有無にしたがって判定される。図24はスクリプトソース記述可能属性テーブルの一例の構成図である。なお、図24のスクリプトソース記述可能属性テーブルにおけるコメントは説明の為に付けたものであり、必須でない。
<form>
<input type="button" value="Click!" onClick="ソース記入">
</form>
Specifically, whether or not the reference in step S102 is included is determined according to the presence / absence of elements / attributes in the script source descriptible attribute table. FIG. 24 is a configuration diagram of an example of a script source descriptible attribute table. Note that the comments in the script source descriptible attribute table in FIG. 24 are given for explanation and are not essential.
<form>
<input type = "button" value = "Click!" onClick = "source input">
</ form>

上記のform要素はonClick属性の値としてスクリプトのソースが記述されている例である。スクリプトソースが記述される可能性のあるのは図24のスクリプトソース記述可能属性テーブルに示した、form要素に記述されるonreset属性、onsubmit属性などのフォーム要素イベント属性や、html、head、titleなどのいくつかの要素を除いた様々な要素において記述可能なonclick属性、onmousedown属性などのマウスイベント属性がある。また、スクリプトはaタグのhref属性の値として以下のように記述されることもある。
<a href="JavaScript:ソース記入">ここをクリック</a>
The above form element is an example in which the script source is described as the value of the onClick attribute. The script source may be described in the form element event attributes such as onreset attribute and onsubmit attribute described in the form element shown in the script source descriptive attribute table of FIG. 24, html, head, title, etc. There are mouse event attributes such as an onclick attribute and an onmousedown attribute that can be described in various elements except some elements. The script may be written as the value of the href attribute of the a tag as follows:
<a href="JavaScript: Fill in the source"> Click here </a>

正規化切り取り範囲内に上記のようなスクリプトを何も含まない場合、アクション取得部32は特に何もすることはなく、そのまま正規化切り取り範囲を返す。正規化切り取り範囲内に上記のようなスクリプトを含む場合、アクション取得部32は参照を含む可能性があると判定して、以下の処理を行う。   If none of the above scripts are included in the normalized cutout range, the action acquisition unit 32 does nothing and returns the normalized cutout range as it is. When the script as described above is included in the normalized cutout range, the action acquisition unit 32 determines that there is a possibility of including a reference, and performs the following processing.

ステップS103に進み、アクション取得部32はドキュメントツリーのトップに焦点を当て、ドキュメントツリーのトップ以下の各ノードを順に辿る。木構造の探索は一般に良く知られたアルゴリズムであるので説明を省略する。ここではアクション取得部32が深さ優先探索で木構造のノードを順に辿るものとする。   In step S103, the action acquisition unit 32 focuses on the top of the document tree, and sequentially traces each node below the top of the document tree. The tree structure search is a well-known algorithm and will not be described. Here, it is assumed that the action acquisition unit 32 sequentially follows the nodes of the tree structure by the depth-first search.

ステップS104に進み、アクション取得部32は巡るノードが有るか無いかで探索終了か否かを判定する。辿るノードがあるならば、アクション取得部32はステップS105に進み、焦点を次のノードに移す。ステップS106に進み、アクション取得部32はステップS105で焦点を当てたノードがアクション要素かどうかを判定する。   Proceeding to step S104, the action acquisition unit 32 determines whether or not the search is completed depending on whether or not there is a node to be visited. If there is a node to be traced, the action acquisition unit 32 proceeds to step S105 and moves the focus to the next node. In step S106, the action acquisition unit 32 determines whether the node focused in step S105 is an action element.

具体的に、アクション取得部32はアクション要素テーブルに基づき、入力フォームを構成するform要素、スクリプトを記述するscript要素などをアクション要素として判定する。   Specifically, based on the action element table, the action acquisition unit 32 determines a form element constituting an input form, a script element describing a script, and the like as action elements.

ステップS105で焦点を当てたノードがアクション要素であった場合、アクション要素管理部33はステップS107に進み、ステップS105で焦点を当てたノード以下をアクション要素としてアクション要素集合に追加登録する。また、ステップS105で焦点を当てたノード以下をアクション要素として登録するので、アクション取得部32はステップS105で焦点を当てたノード以下の木構造の個別の探索が不要なので、焦点をステップS105で焦点を当てたノードの最後のノードまで移動する。   If the node focused at step S105 is an action element, the action element management unit 33 proceeds to step S107, and additionally registers the nodes below the focus focused at step S105 as action elements in the action element set. Further, since the nodes below the focused node in step S105 are registered as action elements, the action acquisition unit 32 does not need to individually search the tree structure below the focused node in step S105. Move to the last node of the node you hit.

辿るノードが無くなるまで、アクション取得部32はステップS104〜S107の処理を繰り返し行う。辿るノードが無くなる、言い換えれば、ドキュメントツリー全体の探索が終了したならば、アクション要素集合出力部34は登録されているアクション要素集合をアクション要素集合テーブル31から出力する。   The action acquisition unit 32 repeats the processes of steps S104 to S107 until there are no nodes to follow. When there are no nodes to be traced, in other words, when the search of the entire document tree is completed, the action element set output unit 34 outputs the registered action element set from the action element set table 31.

(切り取り範囲を拡張する第3の方法)
図25は切り取り範囲を拡張する第3の方法の処理手順を表した一例のフローチャートである。図25のフローチャートでは正規化切り取り範囲とアクション要素との関連度が高いか否かを判定し、正規化切り取り範囲と関連度が高いアクション要素をアクション要素集合に登録するものである。
(Third method for extending the cutting range)
FIG. 25 is a flowchart illustrating an example of the processing procedure of the third method for extending the cutout range. In the flowchart of FIG. 25, it is determined whether or not the degree of association between the normalized cutout range and the action element is high, and action elements having a high degree of association with the normalized cutout range are registered in the action element set.

ステップS111〜S116の処理は図23のステップS101〜S106の処理と同様であるため、説明を省略する。ステップS115で焦点を当てたノードがアクション要素であった場合、アクション要素取捨選択部35はステップS117に進み、正規化切り取り範囲とアクション要素との関連度が高いか否かを図26のフローチャートに示す処理により判定する。   The processing in steps S111 to S116 is the same as the processing in steps S101 to S106 in FIG. If the node focused in step S115 is an action element, the action element sorting and selection unit 35 proceeds to step S117, and determines whether or not the degree of association between the normalized cutout range and the action element is high in the flowchart of FIG. It is determined by the processing shown.

図26は正規化切り取り範囲とアクション要素との関連度を判定する処理手順を表した一例のフローチャートである。ステップS121に進み、アクション要素取捨選択部35はステップS115で焦点を当てたアクション要素が内部に関数定義も変数定義もないscriptであるか否かを判定する。   FIG. 26 is a flowchart illustrating an example of a processing procedure for determining the degree of association between the normalized cutout range and the action element. Proceeding to step S121, the action element sorting and selection unit 35 determines whether or not the action element focused at step S115 is a script having neither function definition nor variable definition therein.

ステップS115で焦点を当てたアクション要素が内部に関数定義も変数定義もないscriptであれば、アクション要素取捨選択部35は正規化切り取り範囲とアクション要素との関連度が低いと判定する。   If the action element focused in step S115 is a script that has neither function definition nor variable definition therein, the action element sorting selection unit 35 determines that the degree of association between the normalized cutout range and the action element is low.

ステップS115で焦点を当てたアクション要素が内部に関数定義も変数定義もないscriptでなければ、アクション要素取捨選択部35はステップS122に進む。ステップS122に進み、アクション要素取捨選択部35はステップS115で焦点を当てたアクション要素がすべてのinputのtypeがhiddenなform要素であるか否かを判定する。ステップS115で焦点を当てたアクション要素がすべてのinputのtypeがhiddenなform要素であれば、アクション要素取捨選択部35は正規化切り取り範囲とアクション要素との関連度が高いと判定する。   If the action element focused in step S115 is not a script having no function definition or variable definition therein, the action element sorting unit 35 proceeds to step S122. In step S122, the action element sorting and selection unit 35 determines whether or not the action element focused in step S115 is a form element whose type of all inputs is hidden. If the action element focused in step S115 is a form element in which all input types are hidden, the action element sorting selection unit 35 determines that the degree of association between the normalized cutout range and the action element is high.

ステップS115で焦点を当てたアクション要素が、全てのinputのtypeがhiddenなform要素でなければ、アクション要素取捨選択部35はステップS123に進む。ステップS123に進み、アクション要素取捨選択部35はステップS115で焦点を当てたアクション要素が、hiddenでないinputを持つform要素であるか否かを判定する。   If the action element focused in step S115 is not a form element in which all input types are hidden, the action element sorting / selecting unit 35 proceeds to step S123. Proceeding to step S123, the action element sorting selection unit 35 determines whether or not the action element focused at step S115 is a form element having an input that is not hidden.

ステップS115で焦点を当てたアクション要素が、hiddenでないinputを持つform要素であれば、アクション要素取捨選択部35は正規化切り取り範囲とアクション要素との関連度が低いと判定する。   If the action element focused in step S115 is a form element having an input that is not hidden, the action element sorting selection unit 35 determines that the degree of association between the normalized cutout range and the action element is low.

ステップS115で焦点を当てたアクション要素が、hiddenでないinputを持つform要素でなければ、アクション要素取捨選択部35は正規化切り取り範囲とアクション要素との関連度を判定する残りの処理を行う。ステップS121〜S123は正規化切り取り範囲とアクション要素との関連度を判定する処理の一例である。   If the action element focused in step S115 is not a form element having an input that is not hidden, the action element sorting / selecting unit 35 performs the remaining processing for determining the degree of association between the normalized cutout range and the action element. Steps S121 to S123 are an example of a process for determining the degree of association between the normalized cutout range and the action element.

図25のステップS117に戻り、アクション要素取捨選択部35は正規化切り取り範囲とアクション要素との関連度が高いと判定すると、ステップS118に進み、ステップS115で焦点を当てたノード以下をアクション要素としてアクション要素集合に追加登録する。また、ステップS105で焦点を当てたノード以下をアクション要素として登録するので、アクション取得部32はステップS115で焦点を当てたノード以下の木構造の個別の探索が不要なので焦点をステップS115で焦点を当てたノードの最後のノードまで移動する。   Returning to step S117 of FIG. 25, if the action element sorting selection unit 35 determines that the degree of association between the normalized cut-out range and the action element is high, the process proceeds to step S118, and the nodes below the node focused in step S115 are set as action elements. Add to the action element set. In addition, since the nodes below the focused node in step S105 are registered as action elements, the action acquisition unit 32 does not need to individually search the tree structure below the focused node in step S115, so that the focus is focused in step S115. Move to the last node of the hit node.

辿るノードが無くなるまで、アクション取得部32はステップS114〜S118の処理を繰り返し行う。辿るノードが無くなる、言い換えれば、ドキュメントツリー全体の探索が終了したならば、アクション要素集合出力部34は登録されているアクション要素集合をアクション要素集合テーブル31から出力する。   The action acquisition unit 32 repeats the processes of steps S114 to S118 until there are no nodes to follow. When there are no nodes to be traced, in other words, when the search of the entire document tree is completed, the action element set output unit 34 outputs the registered action element set from the action element set table 31.

切り取り範囲を拡張する第2の方法では、正規化切り取り範囲にスクリプト記述が存在すれば参照を含むとして、ドキュメントツリーにあるすべてのform要素やscript要素の集合をアクション要素集合として正規化切り取り範囲に加えている。しかし、切り取り範囲を拡張する第2の方法では、不必要な(場合によっては副作用を起こす)アクション要素も正規化切り取り範囲に含めてしまうことになる。   In the second method of extending the cut range, if a script description exists in the normalized cut range, a reference is included, and a set of all form elements and script elements in the document tree is set as an action element set in the normalized cut range. Added. However, in the second method of extending the cut range, unnecessary (sometimes causing side effects) action elements are also included in the normalized cut range.

実際には、いくつかのヒューリスティックスによって、正規化切り取り範囲に含むべき要素を篩にかけることができる。単純なヒューリスティックスとしては、アクション要素そのものだけで判断するものがある。例えばスクリプトを含むが、スクリプト内部に関数定義も変数設定も存在しない要素やhiddenでないinputを持つform要素はアクション要素として含めない具体例である。切り取り範囲を拡張する第3の方法は、いくつかのヒューリスティックスによって、正規化切り取り範囲に含むべき要素を篩にかけるものである。   In practice, some heuristics can screen the elements that should be included in the normalized clipping range. Some simple heuristics are determined only by the action element itself. For example, a script is included, but an element in which no function definition or variable setting exists in the script or a form element having a non-hidden input is not included as an action element. A third method for extending the cropping range is to screen the elements to be included in the normalized cropping range with some heuristics.

(切り取り範囲を拡張する第4の方法)
図27は切り取り範囲を拡張する第4の方法の処理手順を表した一例のフローチャートである。ステップS131に進み、識別子管理部38はアクション要素の参照・定義表を作成する。
(Fourth method for extending the cutting range)
FIG. 27 is a flowchart illustrating an example of the processing procedure of the fourth method for extending the cutout range. In step S131, the identifier management unit 38 creates a reference / definition table for action elements.

識別子参照定義関係取得部36はアクション要素のそれぞれに対して、そのアクション要素内部でどのような識別子が定義されているのか、またどのような識別子が参照されているのかを求め、識別子管理部38にアクション要素の参照・定義表を設定させる。   The identifier reference definition relationship acquisition unit 36 determines, for each action element, what kind of identifier is defined in the action element and what kind of identifier is referenced, and an identifier management unit 38. To set the action element reference / definition table.

なお、アクション要素は、具体的にドキュメントツリー上の位置(例えばXPath)として保持される。例えば、アクション要素の参照・定義表は図28のようになる。図28はアクション要素の参照・定義表の一例の構成図である。アクション要素は直接記述されたスクリプトのみではない。アクション要素は外部ファイルを参照している場合に、その外部ファイルを取り込んで、その外部ファイルの内容であるスクリプトから識別子を取り出す。なお、スクリプトの解析技術はパージング技術として良く知られているため、詳細を省く。   The action element is specifically held as a position on the document tree (for example, XPath). For example, the action element reference / definition table is as shown in FIG. FIG. 28 is a configuration diagram of an example of an action element reference / definition table. Action elements are not only directly written scripts. When the action element refers to an external file, the action element takes in the external file and takes out an identifier from the script that is the content of the external file. Note that the script analysis technique is well known as a parsing technique, and therefore details are omitted.

ステップS132に進み、識別子参照定義関係取得部36は正規化切り取り範囲にあるアクション要素から識別子の定義と識別子の参照を取り出す。また、ステップS133に進み、識別子管理部38は識別子管理表の設定を行う。識別子管理表は識別子欄,参照欄及び定義済欄を持たせる。ステップS132でアクション要素から取り出された識別子の定義と識別子の参照とから識別子管理部38は識別子管理表を設定する。   In step S132, the identifier reference definition relationship acquisition unit 36 extracts the identifier definition and the identifier reference from the action elements in the normalized cutout range. In step S133, the identifier management unit 38 sets an identifier management table. The identifier management table has an identifier field, a reference field, and a defined field. The identifier management unit 38 sets the identifier management table from the definition of the identifier extracted from the action element in step S132 and the reference of the identifier.

例えば正規化切り取り範囲が以下のform要素であったとする。
<form style="margin: 0px;" id="fm1" name="fm1" onSubmit="return goF2('fm1')">
<input name="q" autocomplete="off" value="" size="35" class="j12" accesskey="e" type="text" />
<input value="検索" class="j12" onclick="return goF1('fm1')" type="button" />
<input value="クリア" onclick="javascript:wordClear('fm1')" class="j12" type="button" />
</form>
For example, assume that the normalized cutout range is the following form element.
<form style = "margin: 0px;" id = "fm1" name = "fm1" onSubmit = "return goF2 ('fm1')">
<input name = "q" autocomplete = "off" value = "" size = "35" class = "j12" accesskey = "e" type = "text"/>
<input value = "search" class = "j12" onclick = "return goF1 ('fm1')" type = "button"/>
<input value = "Clear" onclick = "javascript: wordClear ('fm1')" class = "j12" type = "button"/>
</ form>

上記のform要素の場合、識別子管理表にはgoF2とgoF1、wordClearが参照される識別子として図29のように定義される。図29は識別子管理表の一例の構成図である。   In the case of the above form element, the identifier management table defines goF2, goF1, and wordClear as identifiers as shown in FIG. FIG. 29 is a configuration diagram of an example of an identifier management table.

ステップS134に進み、識別子定義元アクション要素取得部37は図29の識別子管理表において、参照欄に「〇」があるが定義済欄に「〇」がない識別子が存在するかどうかチェックする。参照欄に「〇」があるが定義済欄に「〇」がない識別子は未定義識別子である。   In step S134, the identifier definition source action element acquisition unit 37 checks whether or not there is an identifier having “◯” in the reference field but not having “◯” in the defined field in the identifier management table of FIG. An identifier having “◯” in the reference column but not having “◯” in the defined column is an undefined identifier.

未定義識別子があれば、識別子定義元アクション要素取得部37はステップS135に進み、未定義識別子の一つを取り出す。ここでは、goF2を選んだとする。ステップS136に進み、識別子定義元アクション要素取得部37はアクション要素の参照・定義表から未定義識別子(goF2)を解決する(定義している)アクション要素を取り出す(上の例では/html/head/script[3] が取り出される)。   If there is an undefined identifier, the identifier definition source action element acquisition unit 37 proceeds to step S135 and extracts one of the undefined identifiers. Here, goF2 is selected. In step S136, the identifier definition source action element acquisition unit 37 extracts an action element that resolves (defines) the undefined identifier (goF2) from the action element reference / definition table (in the above example, / html / head). / script [3] is retrieved).

ステップS137に進み、識別子定義元アクション要素取得部37はステップS136で取り出したアクション要素を、アクション要素集合に付け加える。ステップS138に進み、ステップS136で取り出したアクション要素では、goF1,goF2,goF3が定義され、checkWordが参照されているので、識別子管理表のgoF1とgoF2を定義済にする。   In step S137, the identifier definition source action element acquisition unit 37 adds the action element extracted in step S136 to the action element set. Proceeding to step S138, goF1, goF2, and goF3 are defined in the action element extracted in step S136, and checkWord is referenced, so goF1 and goF2 in the identifier management table are defined.

また、識別子定義元アクション要素取得部37はgoF3を識別子管理表に追加して定義済にする。さらに、識別子定義元アクション要素取得部37はwordClearを識別子管理表に加えて、参照欄に「〇」をする。その結果、識別子管理表は図30のようになる。   Also, the identifier definition source action element acquisition unit 37 adds goF3 to the identifier management table and defines it. Further, the identifier definition source action element acquisition unit 37 adds wordClear to the identifier management table and puts “◯” in the reference column. As a result, the identifier management table is as shown in FIG.

ステップS138に進み、識別子定義元アクション要素取得部37は未定義な識別子が無くなるまで、ステップS134〜S138のアクション要素の追加を繰り返す。未定義な識別子がなくなったら、アクション要素集合出力部34は登録されているアクション要素集合をアクション要素集合テーブル31から出力する。   Proceeding to step S138, the identifier definition source action element acquisition unit 37 repeats the addition of action elements of steps S134 to S138 until there is no undefined identifier. When there are no undefined identifiers, the action element set output unit 34 outputs the registered action element set from the action element set table 31.

本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、マッシュアップ装置は図13のWebマッシュアップ設定装置100を有する形態、Webマッシュアップ設定装置100及びWebマッシュアップ実現装置110を有する形態、Webマッシュアップ設定装置100,Webマッシュアップ実現装置110及びアノテーション管理サーバ120を有する形態など、様々な形態をとることができる。   The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made without departing from the scope of the claims. The mashup device includes the web mashup setting device 100 of FIG. 13, the web mashup setting device 100 and the web mashup realization device 110, the web mashup setting device 100, the web mashup realization device 110, and Various forms such as a form having the annotation management server 120 can be taken.

1 検索窓の部分
2,3,4,15 赤枠
11 部品・構成タグ一覧テーブル
12 未解決部品確認部
13 関連構成取得部
20〜25 ノード
31 アクション要素集合テーブル
32 アクション取得部
33 アクション要素管理部
34 アクション要素集合出力部
35 アクション要素取捨選択部
36 識別子参照定義関係取得部
37 識別子定義元アクション要素取得部
38 識別子管理部
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 ユーザインタフェース
168 マッシュアッププログラム
DESCRIPTION OF SYMBOLS 1 Search window part 2,3,4,15 Red frame 11 Parts / configuration tag list table 12 Unresolved parts confirmation unit 13 Related configuration acquisition unit 20-25 Node 31 Action element set table 32 Action acquisition unit 33 Action element management unit 34 action element set output unit 35 action element selection selection unit 36 identifier reference definition relation acquisition unit 37 identifier definition source action element acquisition unit 38 identifier management unit 100 Web mashup setting device 101, 111 Web browsing device 102 cut source selection unit 103 range Presentation selection unit 104 Paste destination selection unit 105, 116 Annotation management unit 110 Web mashup realization device 112 Cutout information acquisition unit 113 Normalization unit 114 Paste position acquisition unit 115 Compositing unit 120 Annotation management server 121 Notation database management unit 122 Annotation database 151 Input device 152 Output device 153 Drive device 154 Auxiliary storage device 155 Main storage device 156 Arithmetic processing device 157 Interface device 158 Recording medium 160 Web browsing device 161 HTML document 162 HTML parser 163 DOM tree 164 Javascript Program 165 Javascript engine 166 Rendering engine 167 User interface 168 Mashup program

Claims (6)

切り取り元のWeb資源から切り取った切り取り範囲を貼り付け先のWeb資源に貼り付けるコンピュータを動作させるマッシュアッププログラムであって、
前記コンピュータを、
機能の実現に単独で意味をなさない部品タグと前記部品タグをまとめて機能を実現する構成タグとが対応付けられているテーブルに基づき、切り取り範囲として与えられたノードが未解決部品ではない場合、前記ノードの木構造の下位に未解決部品ノードがあるかを確認する未解決部品確認手段と、
前記未解決部品ノードがあると確認されたとき、前記切り取り範囲として与えられたノードの木構造の上位ノードである前記未解決部品ノードに対応する構成ノードを見つけ、見つけた前記構成ノード以下の要素を正規化切り取り範囲とする関連構成取得手段と
して動作させるマッシュアッププログラム。
A mashup program for operating a computer for pasting a cut range cut from a cut-off Web resource to a paste-destination Web resource,
The computer,
When a node given as a cut-out range is not an unresolved part based on a table that associates a component tag that does not make sense to realize a function and a configuration tag that implements the function by combining the component tags. , An unresolved part confirmation unit for confirming whether there is an unresolved part node below the tree structure of the node;
When it is confirmed that there is the unresolved part node, a component node corresponding to the unresolved component node that is an upper node of the tree structure of the node given as the cut-out range is found, and the elements below the found component node A mashup program that operates as a related configuration acquisition unit having a normalized cutout range.
前記コンピュータを、更に、
前記正規化切り取り範囲に他のアクション要素において定義される関数又は変数の識別子の参照が含まれる場合、前記正規化切り取り範囲を含む前記切り取り元のWeb資源全体のドキュメントツリーを受け取り、前記ドキュメントツリーに含まれるアクション要素ノードを、アクション要素ノードを定義したアクション要素テーブルに基づき取得するアクション取得手段と、
前記アクション取得手段が取得した前記アクション要素ノードを前記正規化切り取り範囲に追加すべきアクション要素ノード集合として出力するアクション要素集合出力手段と
して動作させる請求項1記載のマッシュアッププログラム。
Said computer further
When the normalized cut range includes a reference to an identifier of a function or variable defined in another action element, a document tree of the entire Web resource of the cut source including the normalized cut range is received, and the document tree Action acquisition means for acquiring the included action element node based on the action element table defining the action element node;
The mashup program according to claim 1, wherein the mashup program is operated as an action element set output unit that outputs the action element node acquired by the action acquisition unit as an action element node set to be added to the normalized cutout range.
前記コンピュータを、更に、
前記アクション取得手段が取得した前記アクション要素ノードと前記正規化切り取り範囲との関連度を前記アクション要素ノードごとに判定し、関連度が高い前記アクション要素ノードに前記アクション取得手段が取得した前記アクション要素ノードを絞り込むアクション要素取捨選択手段
として動作させる請求項2記載のマッシュアッププログラム。
Said computer further
The action element acquired by the action acquisition means for the action element node having a high degree of association is determined for each action element node by determining the degree of association between the action element node acquired by the action acquisition means and the normalized cut range. The mashup program according to claim 2, wherein the mashup program is operated as an action element sorting / selecting means for narrowing down nodes.
前記コンピュータを、更に、
前記アクション要素ノードから定義される識別子と参照する識別子とを取り出す識別子参照定義関係取得手段と、
前記識別子参照定義関係取得手段が取り出した前記切り取り元のWeb資源全体のドキュメントツリーに含まれている前記アクション要素ノードから定義される識別子と参照する識別子とに基づき、前記アクション要素ノード,定義される識別子及び参照する識別子を対応づけるアクション要素の参照・定義表に設定すると共に、前記識別子参照定義関係取得手段が取り出した前記正規化切り出し範囲に含まれる前記アクション要素ノードから定義される識別子と参照する識別子とに基づき、識別子欄,参照欄及び定義済欄を持つ識別子管理表を設定し、未解決な前記識別子を管理する識別子管理手段と、
前記識別子管理表から定義済みでない未解決な前記識別子を取り出し、前記識別子を定義している前記アクション要素ノードを前記アクション要素の参照・定義表から求めて前記正規化切り取り範囲に追加すべきアクション要素ノード集合に追加させる識別子定義元アクション要素取得手段と
して動作させる請求項2記載のマッシュアッププログラム。
Said computer further
Identifier reference definition relationship acquisition means for retrieving an identifier defined from the action element node and an identifier to be referenced;
The action element node is defined based on an identifier defined from the action element node included in the document tree of the whole Web resource of the cut-out source extracted by the identifier reference definition relationship acquisition means and an identifier to be referenced. The identifier and the identifier to be referred to are set in the reference / definition table of the action element that associates the identifier and the identifier to be referred to, and are referred to the identifier defined from the action element node included in the normalized cutout range extracted by the identifier reference definition relationship acquisition unit An identifier management means for setting an identifier management table having an identifier field, a reference field, and a defined field based on the identifier, and managing the unresolved identifier;
An action element to be taken out from the identifier management table, the unresolved identifier that has not been defined, and to add the action element node defining the identifier from the reference / definition table of the action element to be added to the normalized cutout range The mashup program according to claim 2, wherein the mashup program is operated as an identifier definition source action element acquisition means to be added to a node set.
切り取り元のWeb資源から切り取った部分を貼り付け先のWeb資源に貼り付けるマッシュアップ装置であって、
機能の実現に単独で意味をなさない部品タグと前記部品タグをまとめて機能を実現する構成タグとが対応付けられているテーブルに基づき、切り取り範囲として与えられたノードが未解決部品ではない場合、前記ノードの木構造の下位に未解決部品ノードがあるかを確認する未解決部品確認手段と、
前記未解決部品ノードがあると確認されたとき、前記切り取り範囲として与えられたノードの木構造の上位ノードである前記未解決部品ノードに対応する構成ノードを見つけ、見つけた前記構成ノード以下の要素を正規化切り取り範囲とする関連構成取得手段と
を有するマッシュアップ装置。
A mashup device for pasting a portion cut from a cut-off Web resource to a paste-destination Web resource,
When a node given as a cut-out range is not an unresolved part based on a table that associates a component tag that does not make sense to realize a function and a configuration tag that implements the function by combining the component tags. , An unresolved part confirmation unit for confirming whether there is an unresolved part node below the tree structure of the node;
When it is confirmed that there is the unresolved part node, a component node corresponding to the unresolved component node that is an upper node of the tree structure of the node given as the cut-out range is found, and the elements below the found component node A mashup device having a related configuration acquisition means having a normalized cut-off range as a reference.
切り取り元のWeb資源から切り取った部分を貼り付け先のWeb資源に貼り付けるコンピュータによって実行されるマッシュアップ方法であって、
前記コンピュータが、
機能の実現に単独で意味をなさない部品タグと前記部品タグをまとめて機能を実現する構成タグとが対応付けられているテーブルに基づき、切り取り範囲として与えられたノードが未解決部品ではない場合、前記ノードの木構造の下位に未解決部品ノードがあるかを確認する未解決部品確認ステップと、
前記未解決部品ノードがあると確認されたとき、前記切り取り範囲として与えられたノードの木構造の上位ノードである前記未解決部品ノードに対応する構成ノードを見つけ、見つけた前記構成ノード以下の要素を正規化切り取り範囲とする関連構成取得ステップと
を実行するマッシュアップ方法。
A mashup method executed by a computer for pasting a portion cut from a cut-out web resource to a paste-destination web resource,
The computer is
When a node given as a cut-out range is not an unresolved part based on a table that associates a component tag that does not make sense to realize a function and a configuration tag that implements the function by combining the component tags. , An unresolved component confirmation step for confirming whether there is an unresolved component node below the tree structure of the node;
When it is confirmed that there is the unresolved part node, a component node corresponding to the unresolved component node that is an upper node of the tree structure of the node given as the cut-out range is found, and the elements below the found component node A mashup method for executing a related configuration acquisition step having a normalized cutout range as a reference.
JP2009198484A 2009-08-28 2009-08-28 Mashup program, mashup device, and mashup method Expired - Fee Related JP5476867B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009198484A JP5476867B2 (en) 2009-08-28 2009-08-28 Mashup program, mashup device, and mashup method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009198484A JP5476867B2 (en) 2009-08-28 2009-08-28 Mashup program, mashup device, and mashup method

Publications (2)

Publication Number Publication Date
JP2011048764A JP2011048764A (en) 2011-03-10
JP5476867B2 true JP5476867B2 (en) 2014-04-23

Family

ID=43834980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009198484A Expired - Fee Related JP5476867B2 (en) 2009-08-28 2009-08-28 Mashup program, mashup device, and mashup method

Country Status (1)

Country Link
JP (1) JP5476867B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200359663A1 (en) * 2017-12-08 2020-11-19 Dic Corporation Aqueous pigment-material solution, manufacturing method for aqueous pigment-material solution, and blue-colored beverage

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170315971A1 (en) * 2014-10-06 2017-11-02 Symmetric Co., Ltd. Program for displaying webpage, terminal device, and server device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3946934B2 (en) * 1999-08-05 2007-07-18 株式会社東芝 Web page component integration processing device, web page component integration processing method, and client device
US7519573B2 (en) * 2004-08-23 2009-04-14 Fuji Xerox Co., Ltd. System and method for clipping, repurposing, and augmenting document content
JP4978522B2 (en) * 2008-03-14 2012-07-18 富士通株式会社 Web application editing method
JP4623143B2 (en) * 2008-06-11 2011-02-02 コニカミノルタビジネステクノロジーズ株式会社 Information processing apparatus, information processing apparatus control method, and information processing program
JP5267342B2 (en) * 2009-06-08 2013-08-21 富士通株式会社 Mashup program, mashup device, and mashup method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200359663A1 (en) * 2017-12-08 2020-11-19 Dic Corporation Aqueous pigment-material solution, manufacturing method for aqueous pigment-material solution, and blue-colored beverage
US11723389B2 (en) * 2017-12-08 2023-08-15 Dic Corporation Aqueous pigment-material solution, manufacturing method for aqueous pigment-material solution, and blue-colored beverage

Also Published As

Publication number Publication date
JP2011048764A (en) 2011-03-10

Similar Documents

Publication Publication Date Title
US9330179B2 (en) Configuring web crawler to extract web page information
US20090019386A1 (en) Extraction and reapplication of design information to existing websites
KR101409673B1 (en) Persistent saving portal
US8387006B1 (en) System and method for authoring a web page to be run-time editable
JP4162209B2 (en) Active ALT tags in HTML documents to improve accessibility for users with audiovisual disabilities
US8204950B2 (en) Webpage search
US9122762B2 (en) Method and system to maintain a web page
US8122433B2 (en) Software documentation manager
CN113239672A (en) Target file editing method and device, electronic equipment and storage medium
US20110035433A1 (en) Webpage display method, computer system, and program
JP5267342B2 (en) Mashup program, mashup device, and mashup method
JP5476867B2 (en) Mashup program, mashup device, and mashup method
US9311059B2 (en) Software development tool that provides context-based data schema code hinting
JP2006065467A (en) Device for creating data extraction definition information and method for creating data extraction definition information
JP2010015292A (en) Emphasis display addition method, display control program and server
JP7260150B2 (en) WEBSITE DESIGN SUPPORT DEVICE, WEBSITE DESIGN SUPPORT METHOD, AND PROGRAM
JP5391738B2 (en) Annotation program, annotation apparatus, and annotation method
JP2009157797A (en) Data input support system, data input support method and program
JP5276903B2 (en) Browsing system, plug-in program, and introduction program
US20230116021A1 (en) Visual recorder for demonstrations of web-based software applications
US8639732B2 (en) Method for storing and reading-out data handled by application operating on HTTP client, data storage program, and data read-out program
US20120179984A1 (en) Universal paging system for html content
WO2009090890A1 (en) Computer software program and method for displaying electronic document on computer
JP2013089149A (en) Structured document processing device, structured document processing method, structured document processing system, and computer program
JP2006040303A (en) Cgi program creation method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130815

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131202

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20131209

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: 20140114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140127

R150 Certificate of patent or registration of utility model

Ref document number: 5476867

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees