JP2015503787A - シナリオ・ベース巡回方法、システムおよびコンピュータ・プログラム - Google Patents
シナリオ・ベース巡回方法、システムおよびコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2015503787A JP2015503787A JP2014549323A JP2014549323A JP2015503787A JP 2015503787 A JP2015503787 A JP 2015503787A JP 2014549323 A JP2014549323 A JP 2014549323A JP 2014549323 A JP2014549323 A JP 2014549323A JP 2015503787 A JP2015503787 A JP 2015503787A
- Authority
- JP
- Japan
- Prior art keywords
- session
- predefined
- scenario
- interaction
- bot
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 46
- 238000004590 computer program Methods 0.000 title claims description 17
- 230000002452 interceptive effect Effects 0.000 claims abstract description 11
- 230000003993 interaction Effects 0.000 claims description 50
- 125000004122 cyclic group Chemical group 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 7
- 230000003213 activating effect Effects 0.000 claims 2
- 230000001351 cycling effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000009193 crawling Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000239290 Araneae Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】巡回ボットとウェブ・サイトとの間に対話型セッションを確立すること。【解決手段】巡回ボットは、1つまたは複数のウェブ・サイトと対話するためのユーザ状態を表すセッション状態と、一連の条件と、一連の条件を満たしているか否かに基づいて選択的に起動される一連のシナリオとを定義することができる。巡回ボットは、対話型セッション中にウェブ・サイトからコンテンツを受信することができる。巡回ボットは、ウェブ・サイトからのコンテンツを解析し、解析したコンテンツをあらかじめ定義した一連の項目と照合して、コンテンツ適合条件を満たしているか否かを判定することができる。コンテンツ適合条件を満たしている場合で、かつ状態条件を満たしている場合、巡回ボット自体が定義したシナリオを起動する巡回ボットはアクティブ状態になり、コンテンツ適合条件および状態条件を満たしていない場合、巡回ボットはアクティブ状態にされない。【選択図】図1
Description
本発明は、コンピュータ・ソフトウェア・アプリケーションとの自動対話に関し、特に、コンピュータ・ベースのドキュメントやソフトウェア・アプリケーションの自動巡回に関する。
コンピュータ・ソフトウェア・アプリケーションと自律的に対話し、アプリケーションの各種コンポーネントを検索してマッピングするなどの目的で、自動ソフトウェア・ツールが長らく用いられてきた。例えば、一般に「クローラ」として知られるそのような1つのツールがしばしば用いられてウェブ・サイト内を移動し、その際、ウェブ・ページやその他のコンピュータ・ベースのドキュメントを、そのドキュメントに埋め込まれた、他のドキュメントの位置を示すUniversal Resource Locators(URL)などのハイパーリンクをたどって横断する。
現行のクローラは通常、Hypertext Transport Protocol(HTTP)に基づいて動作しており、HTTP要求を送り、返ってきたHTTP応答を用いてさらに要求を発行する。これらのクローラは、要求が示す動作の意味や、動作間の順序付けの制約や、各動作の実行によって予期される結果について推論することなく、動作可能である。
本開示の一態様において、ウェブ・ベースのコンテンツをウェブ巡回するための方法、システム、コンピュータ・プログラム製品、または装置あるいはそのすべてを提供する。本実施形態において、巡回ボットとウェブ・サイトとの間に対話型セッションを確立することができる。巡回ボットは、1つまたは複数のウェブ・サイトと対話するためのユーザ状態を示すセッション状態と、一連の条件と、一連の条件を満たしているか否かに基づいて選択的に起動される一連のシナリオとを定義することができる。一連の条件は、ユーザ状態が所定の値に等しいか否かの状態条件を含んでいてもよい。また、一連の条件は、コンテンツ適合条件も含む。巡回ボットは、対話型セッション中にウェブ・サイトからコンテンツを受信することができる。巡回ボットは、ウェブ・サイトからのコンテンツを解析し、解析したコンテンツをあらかじめ定義した一連の項目と照合して、コンテンツ適合条件を満たしているか否かを判定することができる。コンテンツ適合条件を満たしている場合で、かつ状態条件を満たしている場合、巡回ボット自体が定義したシナリオを起動する巡回ボットはアクティブ状態になり、コンテンツ適合条件および状態条件を満たしていない場合、巡回ボットはアクティブ状態にされない。
本開示の一態様において、シナリオ・ベース巡回のための方法、システム、コンピュータ・プログラム製品、または装置あるいはそのすべてを提供する。本方法では、あらかじめ定義されたシナリオを選択することができ、シナリオにおいて、シナリオに関連する一連のあらかじめ定義された対話前特性のうちの各特性が、巡回セッション中のある時点で存在する。また、本方法では、巡回セッションの現在の対象に対して、シナリオに関連する一連のあらかじめ定義された対話のうちの各対話を行うことができる。また、本方法では、対話の実行後の巡回セッション中に、シナリオに関連する一連のあらかじめ定義された対話後特性のうちのいずれの特性が存在するかを特定することができる。巡回セッションの現在の状態を、対話の実行後の巡回セッション中に存在する対話後特性のいずれかに関連するあらかじめ定義された状態として判定することができる。
本開示の他の態様において、上記の方法を実施するもしくはこの方法と共に使用されるまたはその両方である方法、システム、装置、あるいはコンピュータ・プログラム製品あるいはそのすべてを詳述する。
本開示の内容を1つまたは複数の実施形態に基づいて説明する。ただし、以下の説明は本発明の実施形態を全体的に例示するためのものであり、本発明のその他の実施形態を示される実施形態に限定するものではない。本明細書では具体的に示さないが、本発明の真の精神と範囲から逸脱することなく、当業者にとって種々の変更が可能であるのは言うまでもない。
当業者にとって当然のことながら、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として実施可能である。よって、本発明の態様は、完全にハードウェアの実施形態の形態を取ってもよく、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロ・コード等を含む)の形態を取ってもよく、またはソフトウェアとハードウェアとを組み合わせた実施形態の形態を取ってもよく、これらはすべて本明細書では「回路」、「モジュール」、または「システム」と総称することがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが具現される1つまたは複数のコンピュータ可読媒体において実装されるコンピュータ・プログラム製品の形態を取ることができる。
1つまたは複数のコンピュータ可読媒体は、任意の組み合わせで使用可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体であってもよく、コンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁、赤外線、もしくは半導体に基づくシステム、装置、またはデバイス、あるいはそれらの適切な組み合わせであってもよいが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)として、1つもしくは複数の配線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去・プログラム可能読み取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクトディスク読み取り専用メモリ(CD−ROM)、光学記憶デバイス、磁気記憶デバイス、またはそれらの任意の適切な組み合わせが挙げられる。本明細書において、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによってまたはそれらと接続して使用されるプログラムを含み得るか、あるいは記憶し得る任意の有形媒体であってよい。
コンピュータ可読信号媒体は、例えば、ベースバンドにおいて、または搬送波の一部として、コンピュータ可読プログラム・コードが具現される伝搬性データ信号を含むことができる。このような伝搬性信号は、電磁気、光学、またはそれらの任意の適切な組み合わせを含む多様な形態を取り得るが、これらに限定されない。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体以外の媒体で、かつ命令実行システム、装置、もしくはデバイスによって使用されるかまたはそれらと接続して使用されるプログラムを通信、伝搬、あるいは伝送することができる任意のコンピュータ可読媒体である。
コンピュータ可読媒体上で具現されるプログラム・コードは、無線、有線、光ファイバ・ケーブル、RF等、またはそれらの任意の適切な組み合わせを含むが、それらに限定されない任意の適切な媒体を用いて伝送することができる。本発明の態様に対応する動作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++(R)等のオブジェクト指向プログラミング言語、「C」プログラミング言語や類似のプログラミング言語等の従来の手続きプログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで記述することができる。プログラム・コードは、全体をユーザのコンピュータ上で実行してもよく、スタンドアロン型ソフトウェア・パッケージとして、一部をユーザのコンピュータ上で実行してもよく、一部をユーザのコンピュータ上で、かつ一部をリモート・コンピュータ上で実行してもよく、または全体をリモート・コンピュータもしくはサーバ上で実行してもよい。最後のシナリオの場合、リモート・コンピュータを、ローカルエリア・ネットワーク(LAN)またはワイドエリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続してもよく、あるいはその接続は、(例えば、インターネット・サービス・プロバイダを利用したインターネットを介して)外部コンピュータに対して行ってもよい。
本発明の態様を、本発明の実施形態に基づく方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートまたはブロック図あるいはその両方を参照して、以下に説明する。フローチャートまたはブロック図あるいはその両方における各ブロック、およびフローチャートまたはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施できることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特定用途コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに与えてもよく、それによって命令がコンピュータまたはその他のプログラム可能データ処理装置のプロセッサを介して実行されて、フローチャートもしくはブロック図またはその両方の1つあるいは複数のブロックで特定される機能/動作を実施するための手段を生成するようにマシンを構築することができる。
また、これらのコンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスに対して特定の方式で機能するよう指示することができるコンピュータ可読媒体に記憶されていてもよく、それによってコンピュータ可読媒体に記憶された命令は、フローチャートもしくはブロック図またはその両方の1つあるいは複数のブロックで特定される機能/動作を実施する命令を含む製品を生み出すことができる。
また、これらのコンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作工程を実行させ、コンピュータ実施プロセスを生成するようにしてもよく、それによってコンピュータまたはその他のプログラム可能装置で実行される命令は、フローチャートもしくはブロック図またはその両方の1つあるいは複数のブロックで特定される機能/動作を実施するためのプロセスを提供することができる。
本発明の実施形態に基づいて構成され、機能するシナリオ・ベース巡回システムの簡略概念図である図1を参照する。図1のシステムでは、クローラ100は、従来技術に基づいてコンピュータ・ベースのドキュメントやソフトウェア・アプリケーションを巡回するよう構成されており、また本明細書で以下に説明するように動作するようさらに構成されている。一連の1つまたは複数のシナリオ102は、各シナリオが以下を含むように定義されている。
・ 一連のあらかじめ定義された対話前特性
・ 一連のあらかじめ定義された対話
・ 一連のあらかじめ定義された対話後特性、または
・ 各状態が対話後特性の1つもしくは複数と関連する、一連のあらかじめ定義された状態、あるいは上記のすべて
・ 一連のあらかじめ定義された対話前特性
・ 一連のあらかじめ定義された対話
・ 一連のあらかじめ定義された対話後特性、または
・ 各状態が対話後特性の1つもしくは複数と関連する、一連のあらかじめ定義された状態、あるいは上記のすべて
クローラ100は、好適にはシナリオ・セレクタ104を含むか、さもなければそれと協働するように構成されている。シナリオ・セレクタ104は、シナリオ102の1つまたは複数を選択するように構成されている。ここで、シナリオが選択されるのは、ウェブ・アプリケーションの巡回セッション中にウェブ・アプリケーションからウェブ・ページを受信した後など、巡回セッション中のある時点において、シナリオと関連する一連のあらかじめ定義された対話前特性のうちの各特性が存在する場合である。そこで、例えば、シナリオの一連の対話前特性が特性「ログイン=『Yes』(<LoggedIn=‘Yes’>)」および「現在のウェブ・ページに、『ログアウト』ボタンが含まれている(<CurrentWebPage includes ‘Logout’ button>)」を含んでいる場合、シナリオ・セレクタ104は、好適には巡回セッション中に保持される巡回セッションの状態情報106のデータ蓄積を確認し、クローラ100が示すようなセッションに関連するユーザが現在ウェブ・アプリケーションにログインしているか判定し、ウェブ・アプリケーションによって表示される現在のウェブ・ページが「ログアウト」とラベル付けされたボタンを含んでいるかどうかを確認する。各特性が存在する場合、シナリオ・セレクタ104はそのシナリオを選択する。
クローラ100はまた、好適には、対話エージェント108を含むか、さもなければそれと協働するように構成されている。対話エージェント108は、受信したウェブ・ページ等、巡回セッションの現在の対象とのシナリオの一連のあらかじめ定義された対話のうちの、各対話を実行するように構成されている。よって、この例では、一連の対話が対話「『ログアウト』ボタンを押してください(<Press the “Logout” button>)」を含んでいてもよく、この場合これを対話エージェント108が受信したウェブ・ページに対して実行する。
クローラ100はまた、好適には、対話後評価器110を含むか、さもなければそれと協働するように構成されている。対話後評価器110は、対話エージェント108によるシナリオの一連のあらかじめ定義された対話のうちの対話の実行後の巡回セッション中に、シナリオの一連の対話後特性のうちいずれが存在するかを特定するように構成されている。そこで、この例では、一連の対話後特性が特性「現在のウェブ・ページに、『ありがとうございました』が含まれている(<CurrentWebPage includes “Thank you”>)」を含んでいる場合、対話後評価器110は、好適には、「ログアウト」ボタンが押されたことに応答してウェブ・アプリケーションが返したウェブ・ページを評価して、返されたウェブ・ページが「ありがとうございました」の語句を含んでいるかどうかを判定する。対話後評価器110は、対話によって引き出されるいずれかの応答に、または状態情報106に、あるいその両方に、対話後特性のいずれが存在するかを特定してもよい。
クローラ100はまた、好適には、状態マネジャ112を含むか、さもなければそれと協働するように構成されている。状態マネジャ112は、巡回セッションの現在の状態を判定するように構成されている。ここで、現在の状態は、対話後評価器110によって巡回セッション中に存在すると判定されたシナリオの対話後特性のいずれかと関連付けられている。そこで、この例では、対話後評価器110が、「ログアウト」ボタンが押されたことに応答してウェブ・アプリケーションが返したウェブ・ページに特性「現在のウェブ・ページに、『ありがとうございました』が含まれている(<CurrentWebPage includes “Thank you”>)」が存在すると判定し、かつ「ログイン=『No』(<LoggedIn=‘No’>)」の状態がシナリオの対話後特性「現在のウェブ・ページに、『ありがとうございました』が含まれている(<CurrentWebPage includes “Thank you”>)」に関連付けられている場合、状態マネジャ112は、巡回セッションに関わるユーザの状態が「ログイン=『No』(<LoggedIn=‘No’>)」と判定してもよく、またこの情報を状態情報106に記録してもよい。
この例から、図1のシステムを用いて、ウェブ・アプリケーションをランダムにまたは経験則に基づいて巡回するよりも、クローラが現在ウェブ・アプリケーションにログインしている場合のみ、クローラが確実にウェブ・ページ上の「ログアウト」ボタンを押すようにすることで、クローラとウェブ・アプリケーションとの高度な対話が可能になると認められるであろう。
図1のシステムは、上述のようにあらかじめ定義されたシナリオが適用可能なシナリオ・ベースの対話を用いて、またはさもなければ従来技術を用いて、コンピュータ・ベースのドキュメントまたはソフトウェア・アプリケーションを巡回するために使用できる。
図1に示す構成要素はいずれも、好適には、これらの構成要素を、コンピュータ・ハードウェアにおいてまたは非一時的なコンピュータ可読媒体で具現されるコンピュータ・ソフトウェアにおいてあるいはその両方において、従来技術に基づいて実装することで、コンピュータ114等の1つまたは複数のコンピュータによって実装される。
次に本発明の実施形態に基づいて機能する図1のシステムの動作方法の例を示す簡略フローチャートである図2を参照する。図2の方法では、一連のコンピュータ・ベースのドキュメントまたはソフトウェア・アプリケーションあるいはその両方に対して、巡回セッションが開始される(ステップ200)。巡回セッション中のいずれかの時点で、あらかじめ定義されたシナリオと関連する各対話前特性が存在する場合(ステップ202)、そのシナリオが選択される(ステップ204)。シナリオと関連する一連のあらかじめ定義された対話のうちの各対話が実行される(ステップ206)。対話の実行後の巡回セッション中に存在する、シナリオに関連するいずれかの対話後特性が特定される(ステップ208)。対話の実行後の巡回セッション中に存在するシナリオの対話後特性のいずれかと関連する一連のあらかじめ定義された状態から、巡回セッションの現在の状態が判定される(ステップ210)。
次に本発明の実施形態に基づいて機能する図1のシステムの運用方法の例を示す簡略フローチャートである図3を参照する。図3の方法では、一連のコンピュータ・ベースのドキュメントまたはソフトウェア・アプリケーションあるいはその両方に対して、巡回セッションが開始される(ステップ300)。巡回セッション中のいずれかの時点で、例えば図2の方法によってシナリオを選択可能である場合(ステップ302)、例えば図2の方法によってシナリオを処理する(ステップ304)。一方、あらかじめ定義されたシナリオに関連する各対話前特性が存在しない等、シナリオを選択できない場合、巡回を従来技術に基づいて行ってもよい(ステップ306)。終了条件を満たしている場合、巡回セッションを終了してもよい(ステップ308)。
次に図4を参照すると、ブロック図400は、本発明の実施形態に係るコンピューティング・システムのハードウェアの実施例を示しており、それに基づいて、本発明の1つまたは複数の構成要素/方法(例えば、図1〜図3の状況における構成要素/方法)を実施することができる。
図示の通り、少なくとも1つのリソースへのアクセスを制御するための技術が、プロセッサ410、メモリ412、I/Oデバイス414、およびネットワーク・インターフェイス416に基づいて実現可能である。これらの構成要素は、コンピュータ・バス418または代替の接続構成を介して接続されている。
一実施形態では、巡回セッションは巡回ボットとウェブ・サイト(またはその他のアドレス可能なウェブ・ベースのリソース)との間で存在する。本明細書において、巡回とは、ウェブ・クローラまたは巡回ボットによって行われるウェブ巡回を指す。巡回ボットは、自律型または半自律型ソフトウェア・アプリケーションであり、1つまたは複数のウェブ・サイトと系統的、自動的、または規則的に対話することができる。巡回ボットの他に広く使用されている呼称には、アント、自動インデクサー、ボット、ウェブ・スパイダー、ウェブ・ロボット、ウェブ・スカッターなどがある。ウェブ巡回は、ウェブに関する最新データを提供するための手段であり、サーチ・エンジンなどの他のプログラムによって使用され得る。
一実施形態では、本開示の巡回ボットを用いて、訪問したすべてのページのコピーを作成することができ、そのコピーは後に、高速検索が可能になるようにダウンロードされたページを索引付けすることになるサーチ・エンジンによって処理される。また、巡回ボットを使用して、リンクの確認やHTMLコードの検証など、ウェブ・サイト上のメンテナンス作業を自動化することができる。さらに、巡回ボットを使用して、Eメール・アドレスの取得など、ウェブ・ページから特定の種類の情報を収集することができる。
一実施形態では、従来のウェブ・クローラとは異なり、本開示の巡回ボットは動的コンテンツを提供するウェブ・サイトと対話することができる。すなわち、巡回ボットは、動的コンテンツに関するウェブ・サイト状態を判定することができ、その状態に固有の動作(例えば、シナリオの起動)を開始することができる。例えば、巡回ボットは、あらかじめ定義された入力をウェブ・サイトに与えて、ウェブ・サイトの動的コンテンツを変化させる。例えば、ウェブ・クローラは、現在のウェブ・サイトの状態が、ユーザがログインしていないことを示していると検知でき、その場合ウェブ・サイトの状態をログインされた状態に変更するための入力を与えることができる。ウェブ・ボットは、ウェブ・サイトの状態に固有の動作を行い、受信したウェブ・サイトのコンテンツを解析し、そのコンテンツを予期される結果と照合して、返ってきた結果と適合しているか否かに応じて変更可能な動作を実行することができる。換言すると、巡回ボットは、論理的動作を導入して、異なるウィンドウ状態に応じてユーザ対話をシミュレートすることができる。
これによって、本開示の巡回ボットは、従来のウェブ・クローラに比べて、プログラム可能な用途において著しく効率的となるが、それは、巡回ボットが所与のウェブ・サイトの一連の可能性を使い果たすことなく実現可能な特定機能に対応してプログラムすることができるからである。さらに、本開示の巡回ボットは、従来のウェブ・クローラの使用では得られない情報を収集することができるが、それは、巡回ボットが入力を与えることでウェブ・サイト、ウェブ・アプリケーション、またはウェブ・サービスの動的コンテンツを変化させることができるからである。
当然のことながら、本明細書で用いられる用語「プロセッサ」は、例えば、CPU(中央処理装置)またはその他の処理回路あるいはその両方を備えるもの等、あらゆる処理デバイスを含むものとする。また当然のことながら、用語「プロセッサ」は、2つ以上の処理デバイスを指す場合があり、ある処理デバイスに関連する各種要素は他の処理デバイスでも共用できるものとする。
本明細書で用いられる用語「メモリ」は、例えば、RAM、ROM、固定メモリ・デバイス(例えば、ハード・ドライブ)、着脱可能メモリ・デバイス(例えば、ディスケット)、フラッシュ・メモリ等の、プロセッサまたはCPUと関連するメモリを含むものとする。このようなメモリは、コンピュータ可読記憶媒体とみなすことができる。
加えて、本明細書で用いられる用語「入力/出力デバイス」または「I/Oデバイス」は、例えば、処理ユニットにデータを入力するための1つもしくは複数の入力デバイス(例えば、キーボード、マウス、スキャナ等)、または処理ユニットに関連する結果を提示するための1つもしくは複数の出力デバイス(例えば、スピーカ、ディスプレイ、プリンタ等)、あるいはその両方を含むものとする。
図面のフローチャートやブロック図は、本発明の各種実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の実現可能な実装のアーキテクチャ、機能、ならびに作用を示すものである。この点において、フローチャートまたはブロック図における各ブロックは、モジュール、セグメント、またはコードの一部を表すことができ、特定された1つまたは複数の論理的機能を実現するための1つまたは複数の実行可能な命令を含むものとする。また、いくつかの代替実装では、ブロックに表示された機能は、図面に記載の順序とは異なって実行されてもよいことに留意されたい。例えば、連続して表示された2つのブロックは、実際には、関連する機能に応じて、実質上同時に実行されてもよく、または逆の順序で実行されてもよい。また、ブロック図もしくはフローチャートまたはその両方における各ブロック、およびブロック図もしくはフローチャートまたはその両方における各ブロックの組み合わせは、特定された機能または動作を実行する特殊用途のハードウェア・ベースのシステム、あるいは特殊用途のハードウェアおよびコンピュータ命令の組み合わせによって実現することができることにも留意されたい。
当然のことながら、上述の構成要素のいずれも、磁気または光学記憶媒体に記録された、あるいはコンピュータ・ハードウェアに組み込まれたコンピュータ・プログラム命令の形態で等、コンピュータ可読媒体に組み込まれたコンピュータ・プログラム製品として実装されてもよく、また(図示しない)コンピュータによって実行されるか、さもなければコンピュータによってアクセス可能であってもよい。
本明細書に示す方法および装置は、特定のコンピュータ・ハードウェアまたはソフトウェアを基準として記載した場合もあり、それらを基準とすることなく記載した場合もあるが、当然のことながら、本明細書に示す方法および装置は、従来技術を用いてコンピュータ・ハードウェアまたはソフトウェアにおいて容易に実現することができる。
以上、本発明を1つまたは複数の特定の実施形態に基づいて説明したが、この説明は本発明の全体を例示するためのものであり、本発明を上述の実施形態に限定するものとは解釈されない。本明細書では具体的に示さないが、本発明の真の精神と範囲から逸脱することなく、当業者にとって種々の変更が可能であるのは言うまでもない。
Claims (25)
- 少なくとも1つの記憶デバイスに記憶されたプログラム命令を実行する少なくとも1つのプロセッサを介して、巡回ボットとウェブ・サイトとの間に対話型セッションを確立するステップであって、前記巡回ボットは、1つまたは複数のウェブ・サイトと対話するためのユーザ状態を表すセッション状態と、一連の条件と、前記一連の条件を満たしているか否かに基づいて選択的に起動される一連のシナリオとを定義し、前記一連の条件は、前記ユーザ状態があらかじめ設定された値に等しいか否かの状態条件を含み、前記一連の条件は、コンテンツ適合条件を含む、前記確立するステップと、
前記巡回ボットが、プログラム命令が少なくとも1つの記憶デバイスに記憶された状態で前記巡回ボットの前記プログラム命令を実行する少なくとも1つのプロセッサを介して、前記対話型セッション中に前記ウェブ・サイトからコンテンツを受信するステップと、
前記巡回ボットが、プログラム命令が少なくとも1つの記憶デバイスに記憶された状態で前記巡回ボットの前記プログラム命令を実行する少なくとも1つのプロセッサを介して、前記ウェブ・サイトからの前記コンテンツを解析し、前記解析したコンテンツを一連のあらかじめ定義された項目と照合して、前記コンテンツ適合条件を満たしているか否かを判定するステップと、
前記コンテンツ適合条件を満たしている場合で、かつ前記状態条件を満たしている場合、前記巡回ボットが、プログラム命令が少なくとも1つの記憶デバイスに記憶された状態で前記巡回ボットの前記プログラム命令を実行する少なくとも1つのプロセッサを介して、前記巡回ボットによって定義された前記シナリオの1つを起動するステップであって、前記コンテンツ適合条件および前記状態条件を満たしていない場合、前記巡回ボットが前記シナリオを起動しない、前記起動するステップと
を含む方法。 - 前記セッション状態は、少なくとも2つの異なる状態を含み、1つの状態は、エンティティが前記ウェブ・サイトにログインしていることを示し、もう1つの状態は、前記エンティティが前記ウェブ・サイトにログインしていないことを示す、請求項1に記載の方法。
- 前記ウェブ・サイトは動的コンテンツを提供し、前記一連の条件は前記動的コンテンツに関するウェブ・サイト状態を示し、前記シナリオのうち前記起動されたシナリオは、前記巡回ボットからあらかじめ定義された入力を前記ウェブ・サイト状態に固有のウェブ・サイトに与えて、前記ウェブ・サイトの前記動的コンテンツを変化させる、請求項1に記載の方法。
- 前記一連のシナリオのそれぞれは、一連のあらかじめ定義された対話前特性と、一連のあらかじめ定義された対話と、一連のあらかじめ定義された対話後特性と、一連のあらかじめ定義された状態とを含み、前記一連のあらかじめ定義された状態のそれぞれは、前記対話後特性の1つまたは複数と関連付けられている、請求項1に記載の方法。
- 前記1つのシナリオが起動すると、前記対話型セッション中に前記ウェブ・サイトの現在の対象に対し、前記シナリオに関連する一連のあらかじめ定義された対話のうち複数の対話のそれぞれを実行するステップと、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちの一連の特性のいずれが存在するかを特定するステップと、
対話セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかと関連するあらかじめ定義された状態と判定するステップと
をさらに含む、請求項1に記載の方法。 - 前記ウェブ・サイトは、前記対話セッション中に前記巡回ボットによって巡回されているウェブ・アプリケーションを表す、請求項1に記載の方法。
- 1つまたは複数のコンピュータ可読有体記憶デバイスと、
前記1つまたは複数の記憶デバイスのうち少なくとも1つに記憶され、巡回ボットとウェブ・サイトとの間に対話型セッションを確立するためのプログラム命令であって、前記巡回ボットは、1つまたは複数のウェブ・サイトと対話するためのユーザ状態を表すセッション状態と、一連の条件と、前記一連の条件を満たしているか否かに基づいて選択的に起動される一連のシナリオとを定義し、前記一連の条件は、前記ユーザ状態があらかじめ設定された値に等しいか否かの状態条件を含み、前記一連の条件は、コンテンツ適合条件を含む、前記プログラム命令と、
前記1つまたは複数の記憶デバイスのうち少なくとも1つに記憶されるプログラム命令であって、前記対話型セッション中に前記巡回ボットが前記ウェブ・サイトからコンテンツを受信するためのプログラム命令と、
前記1つまたは複数の記憶デバイスのうち少なくとも1つに記憶されるプログラム命令であって、前記巡回ボットが前記ウェブ・サイトからの前記コンテンツを解析し、前記解析したコンテンツを一連のあらかじめ定義された項目と照合して、前記コンテンツ適合条件を満たしているか否かを判定するための前記プログラム命令と、
前記1つまたは複数の記憶デバイスのうち少なくとも1つに記憶されるプログラム命令であって、前記コンテンツ適合条件を満たしている場合で、かつ前記状態条件を満たしている場合、前記巡回ボットが、前記巡回ボットによって定義された前記シナリオの1つを起動し、前記コンテンツ適合条件および前記状態条件を満たしていない場合、前記巡回ボットが前記シナリオの1つを起動しない、前記プログラム命令と
を含むコンピュータ・プログラム製品。 - あらかじめ定義されたシナリオを選択するステップであって、前記シナリオに関連する一連のあらかじめ定義された対話前特性の各特性が、巡回セッション中のある時点で存在する、前記選択するステップと、
前記巡回セッションの現在の対象に対して、前記シナリオに関連する一連のあらかじめ定義された対話のうちの対話のそれぞれを実行するステップと、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちのいずれの特性が存在するかを特定するステップと、
前記巡回セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかと関連する、あらかじめ定義された状態と判定するステップと
を含む方法。 - 前記巡回セッションは、ウェブ・サイトに移動してそのコンテンツを横断して、前記ウェブ・サイトに関する索引情報を提供する、巡回ボットと称される自律型ソフトウェア・アプリケーションとの対話型セッションである、請求項8に記載の方法。
- 前記あらかじめ定義されたシナリオは、前記一連のあらかじめ定義された対話前特性と、前記一連のあらかじめ定義された対話と、前記一連のあらかじめ定義された対話後特性と、一連のあらかじめ定義された状態とを含み、前記一連のあらかじめ定義された状態のそれぞれは前記対話後特性の1つまたは複数と関連付けられ、前記あらかじめ定義されたシナリオは、巡回ボットが巡回するように設計されたウェブのコンテンツとの対話のために、前記巡回ボットによって選択的に起動され、前記巡回ボットによって定義される、請求項8に記載の方法。
- 前記あらかじめ定義された状態は、少なくとも2つの異なる状態を含み、1つの状態は、エンティティが前記ウェブ・サイトにログインしていることを示し、もう1つの状態は、前記エンティティが前記ウェブ・サイトにログインしていないことを示す、請求項8に記載の方法。
- 前記巡回セッションは、自律型ソフトウェア・エンティティとウェブ・サイトとの間で行われ、前記ウェブ・サイトは動的コンテンツを提供し、前記ソフトウェア・エンティティによって扱われる一連の条件は、前記動的コンテンツに関するウェブ・サイト状態を示し、前記あらかじめ定義されたシナリオは、あらかじめ定義された入力を前記ソフトウェア・エンティティから前記ウェブ・サイト状態に固有のウェブ・サイトに与えて、前記ウェブ・サイトの前記動的コンテンツを変化させる、請求項8に記載の方法。
- 前記選択するステップは、前記一連のあらかじめ定義された対話前特性のうちのいずれかの前記特性が前記巡回セッションの前記現在の対象において存在する場合に選択するステップを含む、請求項8に記載の方法。
- 前記選択するステップは、前記一連のあらかじめ定義された対話前特性のうちのいずれかの前記特性が前記巡回セッションについて保持された状態情報において存在する場合に選択するステップを含む、請求項8に記載の方法。
- 前記選択するステップ、実行するステップ、特定するステップ、および判定するステップは、ウェブ・アプリケーションを巡回するときに行われる、請求項8に記載の方法。
- 前記選択するステップは、ウェブ・アプリケーションからウェブ・ページを受信した後に行われる、請求項15に記載の方法。
- 前記実行するステップは、前記ウェブ・ページとの対話のそれぞれを実行するステップを含む、請求項16に記載の方法。
- 前記特定するステップは、前記対話によって引き出されたいずれかの応答の中で前記対話後特性のいずれかを特定するステップを含む、請求項8に記載の方法。
- シナリオ・ベース巡回のためのシステムであって、
あらかじめ定義されたシナリオを選択するように構成されたシナリオ・セレクタであって、前記シナリオと関連する一連のあらかじめ定義された対話前特性のうちの特性のそれぞれが巡回セッション中のある時点で存在する、前記シナリオ・セレクタと、
前記巡回セッションの現在の対象に対して、前記シナリオに関連する一連のあらかじめ定義された対話のうちの対話のそれぞれを実行するように構成された対話エージェントと、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちいずれの特性が存在するかを特定するように構成された対話後評価器と、
前記巡回セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかに関連するあらかじめ定義された状態であると判定するように構成された状態マネジャと
を含むシステム。 - 前記シナリオ・セレクタは、前記一連のあらかじめ定義された対話前特性のうちのいずれかの特性が前記巡回セッションの前記現在の対象において存在する場合に選択するように構成される、請求項19に記載のシステム。
- 前記シナリオ・セレクタは、前記一連のあらかじめ定義された前記対話前特性のうちのいずれかの特性が前記巡回セッションについて保持された状態情報において存在する場合に選択するように構成される、請求項19に記載のシステム。
- 前記巡回セッションは、ウェブ・アプリケーションの巡回を含む、請求項19に記載のシステム。
- 前記シナリオ・セレクタは、ウェブ・アプリケーションからウェブ・ページを受信した後に選択するように構成される、請求項22に記載のシステム。
- 前記対話後評価器は、前記対話によって引き出されたいずれかの応答の中で前記対話後特性のいずれかを特定するように構成される、請求項19に記載のシステム。
- シナリオ・ベース巡回のためのコンピュータ・プログラム製品であって、
コンピュータ可読記憶媒体と、
前記コンピュータ可読記憶媒体で具現されるコンピュータ可読プログラム・コードとを含み、前記コンピュータ可読プログラム・コードは、
あらかじめ定義されたシナリオに関連する一連のあらかじめ定義された対話前特性のうちの各特性が、巡回セッション中のある時点で存在する場合に前記シナリオを選択し、
前記巡回セッションの現在の対象に対して、前記シナリオに関連する一連のあらかじめ定義された対話の各対話を実行し、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちいずれの特性が存在するかを特定し、
前記巡回セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかと関連する、あらかじめ定義された状態と判定する
ように構成される、コンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/338,815 US20130173579A1 (en) | 2011-12-28 | 2011-12-28 | Scenario-based crawling |
US13/338,815 | 2011-12-28 | ||
PCT/CN2012/084954 WO2013097561A1 (en) | 2011-12-28 | 2012-11-21 | Scenario-based crawling |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015503787A true JP2015503787A (ja) | 2015-02-02 |
Family
ID=48695777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014549323A Pending JP2015503787A (ja) | 2011-12-28 | 2012-11-21 | シナリオ・ベース巡回方法、システムおよびコンピュータ・プログラム |
Country Status (5)
Country | Link |
---|---|
US (3) | US20130173579A1 (ja) |
JP (1) | JP2015503787A (ja) |
CN (1) | CN104025089B (ja) |
DE (1) | DE112012005528T5 (ja) |
WO (1) | WO2013097561A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017010175A (ja) * | 2015-06-18 | 2017-01-12 | 日本電信電話株式会社 | Webブラウジング品質管理装置、ユーザ体感品質推定方法、及びプログラム |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160188716A1 (en) * | 2014-12-24 | 2016-06-30 | Quixey, Inc. | Crowd-Sourced Crawling |
US10262066B2 (en) * | 2014-12-24 | 2019-04-16 | Samsung Electronics Co., Ltd. | Crowd-sourced native application crawling |
EP3107009A1 (en) * | 2015-06-19 | 2016-12-21 | Tata Consultancy Services Limited | Self-learning based crawling and rule-based data mining for automatic information extraction |
US10387528B2 (en) | 2016-12-20 | 2019-08-20 | Microsoft Technology Licensing, Llc | Search results integrated with interactive conversation service interface |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7886032B1 (en) * | 2003-12-23 | 2011-02-08 | Google Inc. | Content retrieval from sites that use session identifiers |
US10269024B2 (en) * | 2008-02-08 | 2019-04-23 | Outbrain Inc. | Systems and methods for identifying and measuring trends in consumer content demand within vertically associated websites and related content |
WO2009156988A1 (en) * | 2008-06-23 | 2009-12-30 | Double Verify Ltd. | Automated monitoring and verification of internet based advertising |
-
2011
- 2011-12-28 US US13/338,815 patent/US20130173579A1/en not_active Abandoned
-
2012
- 2012-03-05 US US13/412,295 patent/US20130173580A1/en not_active Abandoned
- 2012-03-06 US US13/412,673 patent/US20130173581A1/en not_active Abandoned
- 2012-11-21 WO PCT/CN2012/084954 patent/WO2013097561A1/en active Application Filing
- 2012-11-21 DE DE112012005528.4T patent/DE112012005528T5/de not_active Withdrawn
- 2012-11-21 CN CN201280064952.9A patent/CN104025089B/zh not_active Expired - Fee Related
- 2012-11-21 JP JP2014549323A patent/JP2015503787A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017010175A (ja) * | 2015-06-18 | 2017-01-12 | 日本電信電話株式会社 | Webブラウジング品質管理装置、ユーザ体感品質推定方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2013097561A1 (en) | 2013-07-04 |
WO2013097561A9 (en) | 2014-05-30 |
CN104025089A (zh) | 2014-09-03 |
US20130173580A1 (en) | 2013-07-04 |
US20130173579A1 (en) | 2013-07-04 |
US20130173581A1 (en) | 2013-07-04 |
CN104025089B (zh) | 2017-06-30 |
DE112012005528T5 (de) | 2014-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9485240B2 (en) | Multi-account login method and apparatus | |
JP6211141B2 (ja) | ユーザ開始動作を監視し、バックエンドオペレーションと相互に関連付けるための方法およびコンピュータプログラム | |
US9230036B2 (en) | Enhanced browser cookie management | |
US8756214B2 (en) | Crawling browser-accessible applications | |
US9497095B2 (en) | Dynamic control over tracing of messages received by a message broker | |
US9678859B2 (en) | Detecting error states when interacting with web applications | |
US8407524B2 (en) | Server throttled client debugging | |
JP2015503787A (ja) | シナリオ・ベース巡回方法、システムおよびコンピュータ・プログラム | |
US10671655B2 (en) | User navigation in a target portal | |
CN103970882A (zh) | 渲染页面的方法及装置 | |
US10929265B2 (en) | Optimizing automated interactions with web applications | |
CN113014669B (zh) | 基于rpa的代理服务方法、系统、服务器和存储介质 | |
US9390177B2 (en) | Optimizing web crawling through web page pruning | |
US20120215757A1 (en) | Web crawling using static analysis | |
US11422680B1 (en) | Workflow execution framework | |
US8935410B2 (en) | Cobrowsing macros | |
US20140067854A1 (en) | Crawling of generated server-side content | |
US8606773B2 (en) | Method for combining and processing web data using tables and programming-by-demonstration | |
CN103780701A (zh) | 浏览器监控方法及装置 | |
CN117370112A (zh) | 应用监控的方法、装置、设备和计算机可读介质 |