JP5476867B2 - Mashup program, mashup device, and mashup method - Google Patents
Mashup program, mashup device, and mashup method Download PDFInfo
- 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
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.
しかしながら、通常のクリッピングやスクレイピングでは元の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ページを例に説明する。 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
図1のWebページは赤枠2により検索窓の部分1が指定されている。ユーザは図1の状態でWebページ上の部分を切り取る所定のコマンドを入力することにより、切り取り元のWebページから検索窓の部分1を切り取ることができる。
In the Web page of FIG. 1, a
図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
図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
貼り付け先の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
このように、切り取り元の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
<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
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
この他の例については、後に述べるが、切り取り元の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
例えば未解決部品確認部12はユーザにより指定された図7の赤枠15が示す検索窓が切り取り範囲として与えられる。図7は切り取り元のWebページの一例のイメージ図である。図7のWebページはHTMLで示されるが、そのドキュメントツリーが図8に示すようになっている。
For example, the unresolved
図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
すなわち、図8のinputノード20はHTML上で<input>〜</input>のinput要素を示しているものとする。未解決部品確認部12では、与えられたノード自身あるいは与えられたノードより木構造での下位構造に、form要素などの構成要素の下位構造ではないinput等の部品要素(木構造上では部品タグでラベル付けされるノード)を有するかどうかを判定する。
That is, the
例えば、図8のinputノード20は、自分自身が部品要素である。したがって、未解決部品確認部12はinputノード20が未解決部品要素ということで未解決部品要素ありと判定する。
For example, the
inputノード20の兄弟のspanノード21が与えられた場合は、spanノード21自身が部品要素ではなく、spanノード21より木構造での下位構造を辿っても、a要素があるだけである。したがって、未解決部品確認部12はa要素が部品要素でないということで未解決部品要素なしと判定する。
When the
inputノード20の親であるpノード22が与えられた場合は、pノード22自身が部品要素ではないが、pノード22より木構造での下位構造を辿ると、form等の構成要素がないままに部品要素であるinputノード20が出現する。したがって、未解決部品確認部12は未解決部品要素ありと判定する。pノード22の先祖のformノード23が与えられた場合は、formノード23自身が構成要素である。したがって、未解決部品確認部12は未解決部品要素なしと判定する。
When the
formノード23の先祖であるbodyノード24が与えられた場合、bodyノード24より木構造での下位構造を辿っても、構成要素なしで部品要素が出現することはない。したがって、未解決部品確認部12は未解決部品要素なしと判定する。図8ではbodyノード24の下位のdivノード25の下にformノード23が出現する。したがって、未解決部品確認部12はformノード23の下位にあるinputノード20まで見に行かない。
When a
以上のように、未解決部品確認部12では、与えられた範囲(ノード)において、未解決部品要素があるかないかの確認を行う。未解決部品要素がない場合、未解決部品確認部12は与えられた範囲(ノード)を、そのまま返すことになる。また、未解決部品要素がある場合、未解決部品確認部12は関連構成取得部13を呼び出す。
As described above, the unresolved
関連構成取得部13は与えられた範囲(ノード)に対して木構造での上位構造を辿っていき、構成要素を見つける。構成要素を見つけると、関連構成取得部13は見つけた構成要素(構成ノードをルートとするサブツリー)を正規化された範囲(正規化切り取り範囲)として返す。
The related
inputノード20の場合には、木構造での上位構造を辿っていくとformノード23のところで構成要素が見つかるので、form要素(formノード23をルートノードとするサブツリー)が正規化切り取り範囲として返される。pノード22の場合も、木構造での上位構造を辿っていくとformノード23のところで構成要素が見つかるので、form要素が正規化切り取り範囲として返される。
In the case of the
なお、上記では部品要素の部分(下位)構造(例えばボタンに記述された文字列)が切り取り範囲として指定された場合に、下位構造を部品要素と見なさなかったが、部品要素の一部としてみなすことも可能である。その場合、未解決部品確認部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
切り取り範囲を拡張する第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
アクション要素の典型的なものは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
切り取り範囲を拡張する第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
アクション要素取捨選択部35は、プログラムの形態、存在位置、変数等から、与えられたアクション要素の独立度や、切り取り範囲のアクションとの関連度を計算する。アクション要素取捨選択部35は、独立度が低く、切り取られた範囲との関連度が高いと認められたアクション要素(例えばある閾値以上の場合)だけを残す。独立度が低く、切り取られた範囲との関連度が高いと認められたアクション要素だけを残すアクション要素取捨選択部35の処理の詳細は後述する。
The action element sorting and
なお、アクション要素取捨選択部35は、独立度が低く、切り取られた範囲との関連度が高いアクション要素を自動的に判定しても構わないし、人が何らかの指示を与えるのでも構わない。
The action element sorting and
切り取り範囲を拡張する第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
識別子管理部38は、解決した(取り込んだアクション要素内で定義されている)識別子(関数や変数)と未解決な(取り込んだアクション要素内だけではまだ定義されていない)識別子を管理するものである。
The
識別子参照定義関係取得部36は、与えられたアクション要素に対して、まずスクリプトを取り込む。取り込むスクリプトは、スクリプトがアクション要素内部で記述されている場合、それ自身である。また、取り込むスクリプトは、外部ファイルが参照されている場合、その外部ファイルを取り込んで、その外部ファイルに記述されているスクリプトになる。識別子参照定義関係取得部36は、取り込んだスクリプトを解析し、そのスクリプト内部でどのような識別子が定義されているか、またどのような外部識別子を参照しているかを解析する。
The identifier reference definition
識別子定義元アクション要素取得部37は、未解決な識別子に対して、識別子参照定義関係取得部36の解析結果を利用して、その識別子を解決するためのアクション要素を特定するものである。
The identifier definition source action element acquisition unit 37 uses an analysis result of the identifier reference definition
実際の動作は、例えば、まず切り取り範囲内のアクション要素に対する未解決および解決済の識別子を識別子管理部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
識別子定義元アクション要素取得部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
(本実施例の詳細)
図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
Webマッシュアップ設定装置100はユーザに切り取り部分および貼り付け先を指定させる。Webマッシュアップ実現装置110はユーザに指定された切り取り部分および貼り付け先に基づいたマッシュアップ結果を表示する。アノテーション管理サーバ120はマッシュアップするためのデータを管理する。Webマッシュアップ設定装置100及びWebマッシュアップ実現装置110はWeb閲覧器101,111の拡張機能として実施される。図13ではWebマッシュアップ設定装置100とWebマッシュアップ実現装置110とを分けているが、一つのWeb閲覧器の拡張機能として同時に実現してもよい。
The web
Webマッシュアップ設定装置100は、Web閲覧器101,切り取り元選定部102,範囲提示選定部103,貼り付け先選定部104,アノテーション管理部105を有する。
The web
範囲提示選定部103は、通常のWeb閲覧器101によるWebページの表示においてユーザの特定の操作を受けることで、切り取り範囲や貼り付け先の位置の候補をユーザのキーボードやマウス操作などによって提示する。範囲提示選定部103は、指定された操作(例えばctrl−cやctrl−v)によって現在表示されている範囲に相当する木構造上の位置を返す。
The range
切り取り元選定部102はユーザの特定の操作によって切り取り候補の提示・取得作業を開始し、指示された範囲の切り取りを行う(実際には切り取り位置を取得する)。貼り付け先選定部104はユーザの特定の操作(例えば切り取り終了や特定のキー操作)によって貼り付け候補の提示・取得作業を開始し、指示された位置を貼り付け先と決定(実際には貼り付け位置を取得する)し、切り取り情報(切り取ったWebページのURIと切り取った部分のXPath)と貼り付け情報(貼り付けるWebページのURIである貼り付け先URIと貼り付け位置のXPath)とをセットとしてアノテーション管理部105に渡す。
The cut
アノテーション管理部105は与えられた切り取り情報と貼り付け情報とをセットにしたアノテーション情報の登録をアノテーション管理サーバ120に依頼する。なお、切り取りから貼り付けの間にはWeb閲覧器101による一般的なWebページ間の移動やWebページ内での移動などが行われる。
The
Web閲覧器101による一般的なWebページ間の移動やWebページ内での移動などの作業が一連の作業として行われることを前提とする場合は、切り取り情報を一時的にメモリに保持しても良いが、切り取り作業の終了時に切り取り情報を外部のファイルに書き込み、貼り付け作業の開始時に適切な切り取り情報を外部のファイルから取り出すという形態でも良い。
When it is assumed that operations such as general movement between Web pages by the
アノテーション管理サーバ120は、アノテーションデータベース管理部121,アノテーションデータベース122を有する。アノテーションデータベース管理部121はWebマッシュアップ設定装置100からの依頼を受け、切り取り情報と貼り付け情報とをセットとしたアノテーション情報をアノテーションデータベース122に登録する。
The annotation management server 120 includes an annotation
また、アノテーションデータベース管理部121はWebマッシュアップ実現装置110からの依頼を受け、指定されたURIを貼り付け先URIとして持つアノテーション情報を返す。なお、アノテーション管理サーバ120は、Webマッシュアップ設定装置100及びWebマッシュアップ実現装置110と同一のコンピュータ上に実現しても構わないし、ネットワークを介して繋がった別のコンピュータ上に実現しても構わない。
Also, the annotation
Webマッシュアップ実現装置110は、Web閲覧器111,切り出し情報取得部112,正規化部113,貼り付け位置獲得部114,合成部115,アノテーション管理部116を有する。
The web
Web閲覧器111は指定されたURIのコンテンツ(Webページ)をネットワークから取り込む。このとき、アノテーション管理部116は指定されたURIに付与されたアノテーション情報をアノテーション管理サーバ120に要求して受け取る。切り出し情報取得部112は受け取ったアノテーション情報の個々について、アノテーション情報に記述された切り取り元のURIをWeb閲覧器111に渡し、切り取り元のURIのコンテンツをネットワークから取り込み、アノテーション情報に記述された切り取り元のXPathの部分(HTML断片)を切り出す。
The
正規化部113は切り出されたHTML断片を、貼り付け先のWebページの環境に適合するように正規化する。貼り付け位置獲得部114はアノテーション情報に記述された貼り付け先のXPathからHTML断片を貼り付ける貼り付け位置を求める。
The normalizing
合成部115は、貼り付け位置獲得部114が求めた貼り付け位置に正規化されたHTML断片を貼り付ける。なお、正規化されたHTML断片が合成部115により貼り付けられたWebページのDOMツリーは、後述するように、レンダリングエンジンによってレンダリングされて表示される。
The combining
図13のWebマッシュアップ設定装置100,Webマッシュアップ実現装置110及びアノテーション管理サーバ120は、例えば図14に示すコンピュータシステムにより実現できる。
The web
図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
入力装置151はキーボードやマウス等である。入力装置151は各種信号を入力するために用いられる。出力装置152はディスプレイ装置等である。出力装置152は各種ウインドウやデータ等を表示するために用いられる。インターフェース装置157はモデムやLANカードなどであり、ネットワークに接続する為に用いられる。
The
本実施例のマッシュアッププログラムはWebマッシュアップ設定装置100,Webマッシュアップ実現装置110を制御する各種プログラムに含まれる。マッシュアッププログラムは例えば記録媒体158の配布やネットワークからのダウンロードなどによって提供される。マッシュアッププログラムを記録した記録媒体158は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
The mashup program of this embodiment is included in various programs for controlling the web
マッシュアッププログラムを記録した記録媒体158がドライブ装置153にセットされると、マッシュアッププログラムは記録媒体158からドライブ装置153を介して補助記憶装置154にインストールされる。
When the
ネットワークからダウンロードされたマッシュアッププログラムはインターフェース装置157を介して補助記憶装置154にインストールされる。補助記憶装置154はインストールされたマッシュアッププログラムを格納すると共に、必要なファイル,データ等を格納する。
The mashup program downloaded from the network is installed in the
主記憶装置155は、コンピュータの起動時に補助記憶装置154からマッシュアッププログラムを読み出して格納する。そして、演算処理装置156は主記憶装置155に格納されたマッシュアッププログラムに従って、後述の各種処理を実現している。
The
(マッシュアッププログラムが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
ネットワークを経由して受信されたHTML文書161をHTMLパーサ162は解析して、木構造(DOMツリー)163を生成する。これと同時に、Javascriptエンジン165はHTML文書161中にあったJavascriptプログラム164を実行し、DOMツリー163の中身を書き換える。書き換えられたDOMツリー163はレンダリングエンジン166に送られる。
The
レンダリングエンジン166は送られてきたDOMツリー163を画面で見える形に変換する。そして、ユーザインタフェース167を介したユーザの操作等によってJavascriptエンジン165はJavascriptプログラム164に従って、DOMツリー163を書き換え、表示させる内容を変化させる。マッシュアッププログラム168は、典型的にWeb閲覧器160の中に保持される(すなわち、Web閲覧器160に組込まれる、あるいは機能拡張として付け加えられる形で実現される)。
The
そして、読み込まれたHTML文書161のJavascriptプログラム164が実行されるのに追加して、マッシュアッププログラム168は実行され、DOMツリー163を書き換える。
Then, in addition to the
なお、マッシュアッププログラム168が参照するアノテーションデータベース等のデータはWeb閲覧器160の外部に保持される。マッシュアッププログラム168を保持する別の実施形態としては、読み込まれるHTML文書161に、マッシュアッププログラム168を保持しておくことが考えられる。この実施形態では、適用できるWebページが限定されるが、Web閲覧器160にマッシュアッププログラム168を保持するのと同じ効果を持たせることができる。
Note that data such as an annotation database referred to by the
以下では、図13のシステムにおけるWebマッシュアップ設定装置100及びWebマッシュアップ実現装置110の処理について説明する。
Hereinafter, processing of the web
(Webマッシュアップ設定装置100)
Webマッシュアップ設定装置100を組込んだ典型的なWeb閲覧器101は、切り取り元選定部102、範囲提示選定部103、貼り付け先選定部104、アノテーション管理部105を有する。
(Web mashup setting device 100)
A typical
図16は、切り取り元選定部の処理を表したフローチャートである。切り取り元選定部102は、Web閲覧器101に埋め込まれたコマンド(キー操作やメニュー、ボタンなど)により起動される。
FIG. 16 is a flowchart showing the processing of the cutting source selection unit. The cut
ステップS21に進み、起動された切り取り元選定部102はモードを切り取りとして範囲提示選定部103を起動する。ステップS22に進み、切り取り元選定部102は範囲提示選定部103から切り取り位置のノード(XPath)を受け取る。ステップS23に進み、切り取り元選定部102は範囲提示選定部103から受け取った切り取り位置のノード(XPath)を切り取り情報として一時的に格納して終了する。
Proceeding to step S21, the activated cut-off
図17は、貼り付け先選定部の処理を表したフローチャートである。貼り付け先選定部104は、切り取り元選定部102の終了によって、あるいはWeb閲覧器101に埋め込まれたコマンド(キー操作やメニュー、ボタンなど)により起動される。
FIG. 17 is a flowchart showing the processing of the paste destination selection unit. The paste
ステップS31に進み、起動された貼り付け先選定部104はモードを貼り付けとして範囲提示選定部103を起動する。ステップS32に進み、貼り付け先選定部104は範囲提示選定部103から貼り付け位置のノード(XPath)を受け取る。
In step S31, the started paste
ステップS33に進み、貼り付け先選定部104はアノテーション管理部105を呼び出し、一時的に格納してあった切り取り情報と範囲提示選定部103から受け取った貼り付け位置のノード(XPath)である貼り付け情報とをセットにして、アノテーションデータベース122に登録する。
In
図18は、範囲提示選定部の処理を表したフローチャートである。範囲提示選定部103はユーザのアクション等により、切り取り位置、或いは、貼り付け位置のノード(XPath)を切り取り元選定部105又は貼り付け先選定部104に返すものである。具体的に範囲提示選定部103は、例えばマウスカーソルの移動によって現在注目している木構造上のノードを画面上で選定させ、木構造上のノードをマウスクリックによって確定させるものである。
FIG. 18 is a flowchart showing the processing of the range presentation selection unit. The range
ステップS41に進み、範囲提示選定部103は、現在が切り取り作業のための範囲提示なのか、貼り付け作業のための範囲提示なのかのモードを受け取る。例えば範囲提示選定部103は切り取り元選定部102から切り取り作業のための範囲提示であることを示す切り取りモードを受け付ける。また、範囲提示選定部103は貼り付け先選定部104から貼り付け作業のための範囲提示であることを示す貼り付けモードを受け付ける。範囲提示選定部103は受け付けたモードを起動させる。
In step S41, the range
ステップS42に進み、範囲提示選定部103は、画面上のマウスカーソルの位置を求める。ステップS43に進み、範囲提示選定部103は画面上のマウスカーソルの位置に対応するWebページの木構造上の位置を求める。ステップS44に進み、範囲提示選定部103は画面上のマウスカーソルの位置に対応するWebページの木構造上の位置から適切なノード(要素)を現在のノードとして求める。例えば範囲提示選定部103は文字や文字間(#textノード)ならば、上位ノード(pノード、tdノード、h1ノードなど)を現在のノードとする。
In step S42, the range
ステップS45に進み、範囲提示選定部103は現在のノードを囲う枠をモードに合わせて表示する。範囲提示選定部103は例えば切り取り作業の枠の色と貼り付け作業の枠の色とを変更する。また、範囲提示選定部103はマウスカーサの動きにより枠を大きくしたり小さくしたりする。
In step S45, the range
ステップ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
(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
図19中、ステップS51では、Web閲覧器111が、表示するWebページのURIを受け取る。ステップS52に進み、Web閲覧器111は受け取ったURIで指定されるWebページをネットワークから読み込む。ステップS53に進み、Web閲覧器111は読み込んだWebページをパーサによって解析し、構造を抽出する。抽出された構造は木構造(ツリー)の形をとる(例えばDOMツリー)。
In FIG. 19, in step S51, the
ステップS54に進み、アノテーション管理部116は受け取ったURIをキーとしてアノテーション管理サーバ120にアクセスし、受け取ったURIが貼り付け先に指定されている全てのアノテーション情報を獲得する。そして、Webマッシュアップ実現装置110はステップS54で獲得したアノテーション情報のそれぞれに対して以下の処理を行う。
In step S54, the
まず、ステップ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
ステップS58に進み、切り出し情報取得部112はアノテーション情報に記述された切り取り元のXPathから切り取り位置を求め、切り取り元のWebページの切り取り位置からHTML断片を取り出す。ステップS59に進み、正規化部113は取り出されたHTML断片を、貼り付け先のWebページの環境に適合するように正規化する。
In step S58, the cutout
ステップS60に進み、貼り付け位置獲得部114はアノテーション情報に記述された貼り付け先のXPathと、ステップS53で抽出された木構造とに基づき、HTML断片を貼り付ける木構造上の貼り付け位置を獲得する。ステップS61に進み、合成部115は貼り付け位置獲得部114が獲得した貼り付け位置に、正規化されたHTML断片を埋め込む(接ぎ木する)。
In step S60, the paste
ステップ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
(本実施例におけるマッシュアップ方法の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
第2の実施形態は、Webマッシュアップ実現装置110の切り出し情報取得部112を拡張するものである。第2の実施形態ではアノテーション情報として実際に切り取った範囲(正規化前のもの)を保持しておく。第2の実施形態では、Webマッシュアップ実現装置110の切り出し情報取得部112がアノテーション情報として切り取り範囲が与えられる。切り出し情報取得部112は切り取り元のWebページからHTMLフラグメントを取得する前に、与えられた切り取り範囲を正規化して、正規化された範囲(正規化切り取り範囲)を用いて実際の切り取りを行う。
In the second embodiment, the cut-out
このように第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
第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
ステップS72に進み、未解決部品確認部12は探索リストが空になったら未解決部品ノードなしを返す。探索リストにメンバが存在するならば、未解決部品確認部12はステップS73に進み、メンバ(ノード)を一つ取り出し、取り出したメンバを探索リストから取り除く。
In step S72, the unresolved
ステップS74に進み、未解決部品確認部12は取り出したメンバが部品要素か否かを確認する。具体的に、未解決部品確認部12は取り出したノードのタグ名が部品・構成タグ一覧テーブル11に部品タグ名として登録されているか否かを確認する。
In step S74, the unresolved
取り出したノードのタグ名が部品タグとして登録されているならば未解決部品確認部12は取り出したメンバが部品要素であると判定する。部品要素であると判定すれば、未解決部品確認部12は未解決部品ノードありを返す。部品要素であると判定しなければ、未解決部品確認部12はステップS75に進み、ステップS74と同様、取り出したメンバが構成要素か否かを確認する。構成要素であると判定すれば、未解決部品確認部12はステップS72に戻る。
If the tag name of the extracted node is registered as a component tag, the unresolved
すなわち、未解決部品確認部12はステップS73で取り出したノードの下位構造に関しての探索を行わない。構成要素でないと判定すれば、未解決部品確認部12はステップS73で取り出したノードの子ノードが存在するならば、その子ノードをそれぞれ探索リストのメンバとしてつけ加えたあと、ステップS72に戻る。すなわち、構成要素でなかった場合、未解決部品確認部12はステップS73で取り出したノードの下位構造も部品要素を探索することになる。
That is, the unresolved
図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
すなわち、未解決部品確認部12はステップS81に進み、オリジナルノード(切り取り範囲)を受け取る。ステップS82に進み、未解決部品確認部12は受け取ったオリジナルノードがトップノードか否かを判定する。トップノードでなければ、未解決部品確認部12はステップS83に進み、オリジナルノードが構成要素か否かを確認する。構成要素であると判定しなければ、未解決部品確認部12はステップS84に進み、オリジナルノードが部品要素か否かを判定する。部品要素であると判定しなければ、未解決部品確認部12はステップS85に進み、オリジナルノードを一つ上位ノードへ移動させたあとステップS82に戻る。
In other words, the unresolved
ステップS82において、未解決部品確認部12は受け取ったオリジナルノード又はステップS85で移動されたノードがトップノードであれば、オリジナルノードが部品要素の部分でないと判定する。ステップS83において、受け取ったオリジナルノード又はステップS85で移動されたノードが構成要素であれば、未解決部品確認部12はオリジナルノードが部品要素の部分でないと判定する。
In step S82, if the unresolved
ステップS84において、未解決部品確認部12は受け取ったオリジナルノード又はステップS85で移動されたノードが部品要素であれば、オリジナルノードが部品要素の部分であると判定する。
In step S84, if the unresolved
図21のフローチャートの処理において、未解決部品確認部12はオリジナルノードからノードを順に上位ノードへ辿っていき、構成要素や部品要素が見つからないままトップノードに辿り着いたならば、オリジナルノードが部品要素の部分でないと判定する。先に構成要素が見つかった場合も、未解決部品確認部12はオリジナルノードが部品要素の部分でないと判定する。先に部品要素が見つかった場合、未解決部品確認部12はオリジナルノードが部品要素の内部であったと判定する。なお、本実施例では、例えば、検索のボタンとボタンとの間にある文字列を部品要素と考えないことになる。
In the process of the flowchart of FIG. 21, the unresolved
図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
図22のフローチャートの処理において、関連構成取得部13は切り取られた範囲に未解決部品要素があると未解決部品確認部12に判定された場合に呼び出される。関連構成取得部13では切り取られた範囲であるドキュメントツリーのノードを起点として、上位ノードへ一つずつ辿っていく。辿ったところのノードが構成要素であったら、関連構成取得部13は構成要素(構成ノードをルートとするサブツリー)を正規化切り取り範囲として返す。
In the processing of the flowchart of FIG. 22, the related
(切り取り範囲を拡張する第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
具体的に、ステップ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
ステップS103に進み、アクション取得部32はドキュメントツリーのトップに焦点を当て、ドキュメントツリーのトップ以下の各ノードを順に辿る。木構造の探索は一般に良く知られたアルゴリズムであるので説明を省略する。ここではアクション取得部32が深さ優先探索で木構造のノードを順に辿るものとする。
In step S103, the
ステップS104に進み、アクション取得部32は巡るノードが有るか無いかで探索終了か否かを判定する。辿るノードがあるならば、アクション取得部32はステップS105に進み、焦点を次のノードに移す。ステップS106に進み、アクション取得部32はステップS105で焦点を当てたノードがアクション要素かどうかを判定する。
Proceeding to step S104, the
具体的に、アクション取得部32はアクション要素テーブルに基づき、入力フォームを構成するform要素、スクリプトを記述するscript要素などをアクション要素として判定する。
Specifically, based on the action element table, the
ステップS105で焦点を当てたノードがアクション要素であった場合、アクション要素管理部33はステップS107に進み、ステップS105で焦点を当てたノード以下をアクション要素としてアクション要素集合に追加登録する。また、ステップS105で焦点を当てたノード以下をアクション要素として登録するので、アクション取得部32はステップS105で焦点を当てたノード以下の木構造の個別の探索が不要なので、焦点をステップS105で焦点を当てたノードの最後のノードまで移動する。
If the node focused at step S105 is an action element, the action
辿るノードが無くなるまで、アクション取得部32はステップS104〜S107の処理を繰り返し行う。辿るノードが無くなる、言い換えれば、ドキュメントツリー全体の探索が終了したならば、アクション要素集合出力部34は登録されているアクション要素集合をアクション要素集合テーブル31から出力する。
The
(切り取り範囲を拡張する第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
図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
ステップ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
ステップ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
ステップ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
ステップ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
ステップ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
図25のステップS117に戻り、アクション要素取捨選択部35は正規化切り取り範囲とアクション要素との関連度が高いと判定すると、ステップS118に進み、ステップS115で焦点を当てたノード以下をアクション要素としてアクション要素集合に追加登録する。また、ステップS105で焦点を当てたノード以下をアクション要素として登録するので、アクション取得部32はステップS115で焦点を当てたノード以下の木構造の個別の探索が不要なので焦点をステップS115で焦点を当てたノードの最後のノードまで移動する。
Returning to step S117 of FIG. 25, if the action element sorting
辿るノードが無くなるまで、アクション取得部32はステップS114〜S118の処理を繰り返し行う。辿るノードが無くなる、言い換えれば、ドキュメントツリー全体の探索が終了したならば、アクション要素集合出力部34は登録されているアクション要素集合をアクション要素集合テーブル31から出力する。
The
切り取り範囲を拡張する第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
識別子参照定義関係取得部36はアクション要素のそれぞれに対して、そのアクション要素内部でどのような識別子が定義されているのか、またどのような識別子が参照されているのかを求め、識別子管理部38にアクション要素の参照・定義表を設定させる。
The identifier reference definition
なお、アクション要素は、具体的にドキュメントツリー上の位置(例えば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
例えば正規化切り取り範囲が以下の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
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、マッシュアップ装置は図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
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
Claims (6)
前記コンピュータを、
機能の実現に単独で意味をなさない部品タグと前記部品タグをまとめて機能を実現する構成タグとが対応付けられているテーブルに基づき、切り取り範囲として与えられたノードが未解決部品ではない場合、前記ノードの木構造の下位に未解決部品ノードがあるかを確認する未解決部品確認手段と、
前記未解決部品ノードがあると確認されたとき、前記切り取り範囲として与えられたノードの木構造の上位ノードである前記未解決部品ノードに対応する構成ノードを見つけ、見つけた前記構成ノード以下の要素を正規化切り取り範囲とする関連構成取得手段と
して動作させるマッシュアッププログラム。 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.
機能の実現に単独で意味をなさない部品タグと前記部品タグをまとめて機能を実現する構成タグとが対応付けられているテーブルに基づき、切り取り範囲として与えられたノードが未解決部品ではない場合、前記ノードの木構造の下位に未解決部品ノードがあるかを確認する未解決部品確認手段と、
前記未解決部品ノードがあると確認されたとき、前記切り取り範囲として与えられたノードの木構造の上位ノードである前記未解決部品ノードに対応する構成ノードを見つけ、見つけた前記構成ノード以下の要素を正規化切り取り範囲とする関連構成取得手段と
を有するマッシュアップ装置。 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.
前記コンピュータが、
機能の実現に単独で意味をなさない部品タグと前記部品タグをまとめて機能を実現する構成タグとが対応付けられているテーブルに基づき、切り取り範囲として与えられたノードが未解決部品ではない場合、前記ノードの木構造の下位に未解決部品ノードがあるかを確認する未解決部品確認ステップと、
前記未解決部品ノードがあると確認されたとき、前記切り取り範囲として与えられたノードの木構造の上位ノードである前記未解決部品ノードに対応する構成ノードを見つけ、見つけた前記構成ノード以下の要素を正規化切り取り範囲とする関連構成取得ステップと
を実行するマッシュアップ方法。 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.
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)
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)
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)
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 |
-
2009
- 2009-08-28 JP JP2009198484A patent/JP5476867B2/en not_active Expired - Fee Related
Cited By (2)
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 |