(57)【要約】【課題】巡回ボットとウェブ・サイトとの間に対話型セッションを確立すること。【解決手段】巡回ボットは、１つまたは複数のウェブ・サイトと対話するためのユーザ状態を表すセッション状態と、一連の条件と、一連の条件を満たしているか否かに基づいて選択的に起動される一連のシナリオとを定義することができる。巡回ボットは、対話型セッション中にウェブ・サイトからコンテンツを受信することができる。巡回ボットは、ウェブ・サイトからのコンテンツを解析し、解析したコンテンツをあらかじめ定義した一連の項目と照合して、コンテンツ適合条件を満たしているか否かを判定することができる。コンテンツ適合条件を満たしている場合で、かつ状態条件を満たしている場合、巡回ボット自体が定義したシナリオを起動する巡回ボットはアクティブ状態になり、コンテンツ適合条件および状態条件を満たしていない場合、巡回ボットはアクティブ状態にされない。【選択図】図１
2015503787.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの記憶デバイスに記憶されたプログラム命令を実行する少なくとも１つのプロセッサを介して、巡回ボットとウェブ・サイトとの間に対話型セッションを確立するステップであって、前記巡回ボットは、１つまたは複数のウェブ・サイトと対話するためのユーザ状態を表すセッション状態と、一連の条件と、前記一連の条件を満たしているか否かに基づいて選択的に起動される一連のシナリオとを定義し、前記一連の条件は、前記ユーザ状態があらかじめ設定された値に等しいか否かの状態条件を含み、前記一連の条件は、コンテンツ適合条件を含む、前記確立するステップと、
前記巡回ボットが、プログラム命令が少なくとも１つの記憶デバイスに記憶された状態で前記巡回ボットの前記プログラム命令を実行する少なくとも１つのプロセッサを介して、前記対話型セッション中に前記ウェブ・サイトからコンテンツを受信するステップと、
前記巡回ボットが、プログラム命令が少なくとも１つの記憶デバイスに記憶された状態で前記巡回ボットの前記プログラム命令を実行する少なくとも１つのプロセッサを介して、前記ウェブ・サイトからの前記コンテンツを解析し、前記解析したコンテンツを一連のあらかじめ定義された項目と照合して、前記コンテンツ適合条件を満たしているか否かを判定するステップと、
前記コンテンツ適合条件を満たしている場合で、かつ前記状態条件を満たしている場合、前記巡回ボットが、プログラム命令が少なくとも１つの記憶デバイスに記憶された状態で前記巡回ボットの前記プログラム命令を実行する少なくとも１つのプロセッサを介して、前記巡回ボットによって定義された前記シナリオの１つを起動するステップであって、前記コンテンツ適合条件および前記状態条件を満たしていない場合、前記巡回ボットが前記シナリオを起動しない、前記起動するステップと
を含む方法。
【請求項２】
前記セッション状態は、少なくとも２つの異なる状態を含み、１つの状態は、エンティティが前記ウェブ・サイトにログインしていることを示し、もう１つの状態は、前記エンティティが前記ウェブ・サイトにログインしていないことを示す、請求項１に記載の方法。
【請求項３】
前記ウェブ・サイトは動的コンテンツを提供し、前記一連の条件は前記動的コンテンツに関するウェブ・サイト状態を示し、前記シナリオのうち前記起動されたシナリオは、前記巡回ボットからあらかじめ定義された入力を前記ウェブ・サイト状態に固有のウェブ・サイトに与えて、前記ウェブ・サイトの前記動的コンテンツを変化させる、請求項１に記載の方法。
【請求項４】
前記一連のシナリオのそれぞれは、一連のあらかじめ定義された対話前特性と、一連のあらかじめ定義された対話と、一連のあらかじめ定義された対話後特性と、一連のあらかじめ定義された状態とを含み、前記一連のあらかじめ定義された状態のそれぞれは、前記対話後特性の１つまたは複数と関連付けられている、請求項１に記載の方法。
【請求項５】
前記１つのシナリオが起動すると、前記対話型セッション中に前記ウェブ・サイトの現在の対象に対し、前記シナリオに関連する一連のあらかじめ定義された対話のうち複数の対話のそれぞれを実行するステップと、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちの一連の特性のいずれが存在するかを特定するステップと、
対話セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかと関連するあらかじめ定義された状態と判定するステップと
をさらに含む、請求項１に記載の方法。
【請求項６】
前記ウェブ・サイトは、前記対話セッション中に前記巡回ボットによって巡回されているウェブ・アプリケーションを表す、請求項１に記載の方法。
【請求項７】
１つまたは複数のコンピュータ可読有体記憶デバイスと、
前記１つまたは複数の記憶デバイスのうち少なくとも１つに記憶され、巡回ボットとウェブ・サイトとの間に対話型セッションを確立するためのプログラム命令であって、前記巡回ボットは、１つまたは複数のウェブ・サイトと対話するためのユーザ状態を表すセッション状態と、一連の条件と、前記一連の条件を満たしているか否かに基づいて選択的に起動される一連のシナリオとを定義し、前記一連の条件は、前記ユーザ状態があらかじめ設定された値に等しいか否かの状態条件を含み、前記一連の条件は、コンテンツ適合条件を含む、前記プログラム命令と、
前記１つまたは複数の記憶デバイスのうち少なくとも１つに記憶されるプログラム命令であって、前記対話型セッション中に前記巡回ボットが前記ウェブ・サイトからコンテンツを受信するためのプログラム命令と、
前記１つまたは複数の記憶デバイスのうち少なくとも１つに記憶されるプログラム命令であって、前記巡回ボットが前記ウェブ・サイトからの前記コンテンツを解析し、前記解析したコンテンツを一連のあらかじめ定義された項目と照合して、前記コンテンツ適合条件を満たしているか否かを判定するための前記プログラム命令と、
前記１つまたは複数の記憶デバイスのうち少なくとも１つに記憶されるプログラム命令であって、前記コンテンツ適合条件を満たしている場合で、かつ前記状態条件を満たしている場合、前記巡回ボットが、前記巡回ボットによって定義された前記シナリオの１つを起動し、前記コンテンツ適合条件および前記状態条件を満たしていない場合、前記巡回ボットが前記シナリオの１つを起動しない、前記プログラム命令と
を含むコンピュータ・プログラム製品。
【請求項８】
あらかじめ定義されたシナリオを選択するステップであって、前記シナリオに関連する一連のあらかじめ定義された対話前特性の各特性が、巡回セッション中のある時点で存在する、前記選択するステップと、
前記巡回セッションの現在の対象に対して、前記シナリオに関連する一連のあらかじめ定義された対話のうちの対話のそれぞれを実行するステップと、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちのいずれの特性が存在するかを特定するステップと、
前記巡回セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかと関連する、あらかじめ定義された状態と判定するステップと
を含む方法。
【請求項９】
前記巡回セッションは、ウェブ・サイトに移動してそのコンテンツを横断して、前記ウェブ・サイトに関する索引情報を提供する、巡回ボットと称される自律型ソフトウェア・アプリケーションとの対話型セッションである、請求項８に記載の方法。
【請求項１０】
前記あらかじめ定義されたシナリオは、前記一連のあらかじめ定義された対話前特性と、前記一連のあらかじめ定義された対話と、前記一連のあらかじめ定義された対話後特性と、一連のあらかじめ定義された状態とを含み、前記一連のあらかじめ定義された状態のそれぞれは前記対話後特性の１つまたは複数と関連付けられ、前記あらかじめ定義されたシナリオは、巡回ボットが巡回するように設計されたウェブのコンテンツとの対話のために、前記巡回ボットによって選択的に起動され、前記巡回ボットによって定義される、請求項８に記載の方法。
【請求項１１】
前記あらかじめ定義された状態は、少なくとも２つの異なる状態を含み、１つの状態は、エンティティが前記ウェブ・サイトにログインしていることを示し、もう１つの状態は、前記エンティティが前記ウェブ・サイトにログインしていないことを示す、請求項８に記載の方法。
【請求項１２】
前記巡回セッションは、自律型ソフトウェア・エンティティとウェブ・サイトとの間で行われ、前記ウェブ・サイトは動的コンテンツを提供し、前記ソフトウェア・エンティティによって扱われる一連の条件は、前記動的コンテンツに関するウェブ・サイト状態を示し、前記あらかじめ定義されたシナリオは、あらかじめ定義された入力を前記ソフトウェア・エンティティから前記ウェブ・サイト状態に固有のウェブ・サイトに与えて、前記ウェブ・サイトの前記動的コンテンツを変化させる、請求項８に記載の方法。
【請求項１３】
前記選択するステップは、前記一連のあらかじめ定義された対話前特性のうちのいずれかの前記特性が前記巡回セッションの前記現在の対象において存在する場合に選択するステップを含む、請求項８に記載の方法。
【請求項１４】
前記選択するステップは、前記一連のあらかじめ定義された対話前特性のうちのいずれかの前記特性が前記巡回セッションについて保持された状態情報において存在する場合に選択するステップを含む、請求項８に記載の方法。
【請求項１５】
前記選択するステップ、実行するステップ、特定するステップ、および判定するステップは、ウェブ・アプリケーションを巡回するときに行われる、請求項８に記載の方法。
【請求項１６】
前記選択するステップは、ウェブ・アプリケーションからウェブ・ページを受信した後に行われる、請求項１５に記載の方法。
【請求項１７】
前記実行するステップは、前記ウェブ・ページとの対話のそれぞれを実行するステップを含む、請求項１６に記載の方法。
【請求項１８】
前記特定するステップは、前記対話によって引き出されたいずれかの応答の中で前記対話後特性のいずれかを特定するステップを含む、請求項８に記載の方法。
【請求項１９】
シナリオ・ベース巡回のためのシステムであって、
あらかじめ定義されたシナリオを選択するように構成されたシナリオ・セレクタであって、前記シナリオと関連する一連のあらかじめ定義された対話前特性のうちの特性のそれぞれが巡回セッション中のある時点で存在する、前記シナリオ・セレクタと、
前記巡回セッションの現在の対象に対して、前記シナリオに関連する一連のあらかじめ定義された対話のうちの対話のそれぞれを実行するように構成された対話エージェントと、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちいずれの特性が存在するかを特定するように構成された対話後評価器と、
前記巡回セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかに関連するあらかじめ定義された状態であると判定するように構成された状態マネジャと
を含むシステム。
【請求項２０】
前記シナリオ・セレクタは、前記一連のあらかじめ定義された対話前特性のうちのいずれかの特性が前記巡回セッションの前記現在の対象において存在する場合に選択するように構成される、請求項１９に記載のシステム。
【請求項２１】
前記シナリオ・セレクタは、前記一連のあらかじめ定義された前記対話前特性のうちのいずれかの特性が前記巡回セッションについて保持された状態情報において存在する場合に選択するように構成される、請求項１９に記載のシステム。
【請求項２２】
前記巡回セッションは、ウェブ・アプリケーションの巡回を含む、請求項１９に記載のシステム。
【請求項２３】
前記シナリオ・セレクタは、ウェブ・アプリケーションからウェブ・ページを受信した後に選択するように構成される、請求項２２に記載のシステム。
【請求項２４】
前記対話後評価器は、前記対話によって引き出されたいずれかの応答の中で前記対話後特性のいずれかを特定するように構成される、請求項１９に記載のシステム。
【請求項２５】
シナリオ・ベース巡回のためのコンピュータ・プログラム製品であって、
コンピュータ可読記憶媒体と、
前記コンピュータ可読記憶媒体で具現されるコンピュータ可読プログラム・コードとを含み、前記コンピュータ可読プログラム・コードは、
あらかじめ定義されたシナリオに関連する一連のあらかじめ定義された対話前特性のうちの各特性が、巡回セッション中のある時点で存在する場合に前記シナリオを選択し、
前記巡回セッションの現在の対象に対して、前記シナリオに関連する一連のあらかじめ定義された対話の各対話を実行し、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちいずれの特性が存在するかを特定し、
前記巡回セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかと関連する、あらかじめ定義された状態と判定する
ように構成される、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・ソフトウェア・アプリケーションとの自動対話に関し、特に、コンピュータ・ベースのドキュメントやソフトウェア・アプリケーションの自動巡回に関する。
【背景技術】
【０００２】
コンピュータ・ソフトウェア・アプリケーションと自律的に対話し、アプリケーションの各種コンポーネントを検索してマッピングするなどの目的で、自動ソフトウェア・ツールが長らく用いられてきた。例えば、一般に「クローラ」として知られるそのような１つのツールがしばしば用いられてウェブ・サイト内を移動し、その際、ウェブ・ページやその他のコンピュータ・ベースのドキュメントを、そのドキュメントに埋め込まれた、他のドキュメントの位置を示すUniversal Resource Locators（ＵＲＬ）などのハイパーリンクをたどって横断する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
現行のクローラは通常、Hypertext Transport Protocol（ＨＴＴＰ）に基づいて動作しており、ＨＴＴＰ要求を送り、返ってきたＨＴＴＰ応答を用いてさらに要求を発行する。これらのクローラは、要求が示す動作の意味や、動作間の順序付けの制約や、各動作の実行によって予期される結果について推論することなく、動作可能である。
【課題を解決するための手段】
【０００４】
本開示の一態様において、ウェブ・ベースのコンテンツをウェブ巡回するための方法、システム、コンピュータ・プログラム製品、または装置あるいはそのすべてを提供する。本実施形態において、巡回ボットとウェブ・サイトとの間に対話型セッションを確立することができる。巡回ボットは、１つまたは複数のウェブ・サイトと対話するためのユーザ状態を示すセッション状態と、一連の条件と、一連の条件を満たしているか否かに基づいて選択的に起動される一連のシナリオとを定義することができる。一連の条件は、ユーザ状態が所定の値に等しいか否かの状態条件を含んでいてもよい。また、一連の条件は、コンテンツ適合条件も含む。巡回ボットは、対話型セッション中にウェブ・サイトからコンテンツを受信することができる。巡回ボットは、ウェブ・サイトからのコンテンツを解析し、解析したコンテンツをあらかじめ定義した一連の項目と照合して、コンテンツ適合条件を満たしているか否かを判定することができる。コンテンツ適合条件を満たしている場合で、かつ状態条件を満たしている場合、巡回ボット自体が定義したシナリオを起動する巡回ボットはアクティブ状態になり、コンテンツ適合条件および状態条件を満たしていない場合、巡回ボットはアクティブ状態にされない。
【０００５】
本開示の一態様において、シナリオ・ベース巡回のための方法、システム、コンピュータ・プログラム製品、または装置あるいはそのすべてを提供する。本方法では、あらかじめ定義されたシナリオを選択することができ、シナリオにおいて、シナリオに関連する一連のあらかじめ定義された対話前特性のうちの各特性が、巡回セッション中のある時点で存在する。また、本方法では、巡回セッションの現在の対象に対して、シナリオに関連する一連のあらかじめ定義された対話のうちの各対話を行うことができる。また、本方法では、対話の実行後の巡回セッション中に、シナリオに関連する一連のあらかじめ定義された対話後特性のうちのいずれの特性が存在するかを特定することができる。巡回セッションの現在の状態を、対話の実行後の巡回セッション中に存在する対話後特性のいずれかに関連するあらかじめ定義された状態として判定することができる。
【０００６】
本開示の他の態様において、上記の方法を実施するもしくはこの方法と共に使用されるまたはその両方である方法、システム、装置、あるいはコンピュータ・プログラム製品あるいはそのすべてを詳述する。
【図面の簡単な説明】
【０００７】
【図１】本開示の実施形態に基づいて構成され、機能するシナリオ・ベース巡回システムの簡略概念図である。
【図２】本開示の実施形態に基づいて機能する図１のシステムの動作方法を示す簡略フローチャートである。
【図３】本開示の実施形態に基づいて機能する図１のシステムの動作方法を示す簡略フローチャートである。
【図４】本開示の実施形態に基づいて構成され、機能するコンピューティング・システムのハードウェア実装を示す簡略ブロック図である。
【発明を実施するための形態】
【０００８】
本開示の内容を１つまたは複数の実施形態に基づいて説明する。ただし、以下の説明は本発明の実施形態を全体的に例示するためのものであり、本発明のその他の実施形態を示される実施形態に限定するものではない。本明細書では具体的に示さないが、本発明の真の精神と範囲から逸脱することなく、当業者にとって種々の変更が可能であるのは言うまでもない。
【０００９】
当業者にとって当然のことながら、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として実施可能である。よって、本発明の態様は、完全にハードウェアの実施形態の形態を取ってもよく、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロ・コード等を含む）の形態を取ってもよく、またはソフトウェアとハードウェアとを組み合わせた実施形態の形態を取ってもよく、これらはすべて本明細書では「回路」、「モジュール」、または「システム」と総称することがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが具現される１つまたは複数のコンピュータ可読媒体において実装されるコンピュータ・プログラム製品の形態を取ることができる。
【００１０】
１つまたは複数のコンピュータ可読媒体は、任意の組み合わせで使用可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体であってもよく、コンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁、赤外線、もしくは半導体に基づくシステム、装置、またはデバイス、あるいはそれらの適切な組み合わせであってもよいが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）として、１つもしくは複数の配線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去・プログラム可能読み取り専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学記憶デバイス、磁気記憶デバイス、またはそれらの任意の適切な組み合わせが挙げられる。本明細書において、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによってまたはそれらと接続して使用されるプログラムを含み得るか、あるいは記憶し得る任意の有形媒体であってよい。
【００１１】
コンピュータ可読信号媒体は、例えば、ベースバンドにおいて、または搬送波の一部として、コンピュータ可読プログラム・コードが具現される伝搬性データ信号を含むことができる。このような伝搬性信号は、電磁気、光学、またはそれらの任意の適切な組み合わせを含む多様な形態を取り得るが、これらに限定されない。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体以外の媒体で、かつ命令実行システム、装置、もしくはデバイスによって使用されるかまたはそれらと接続して使用されるプログラムを通信、伝搬、あるいは伝送することができる任意のコンピュータ可読媒体である。
【００１２】
コンピュータ可読媒体上で具現されるプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦ等、またはそれらの任意の適切な組み合わせを含むが、それらに限定されない任意の適切な媒体を用いて伝送することができる。本発明の態様に対応する動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋（Ｒ）等のオブジェクト指向プログラミング言語、「Ｃ」プログラミング言語や類似のプログラミング言語等の従来の手続きプログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせで記述することができる。プログラム・コードは、全体をユーザのコンピュータ上で実行してもよく、スタンドアロン型ソフトウェア・パッケージとして、一部をユーザのコンピュータ上で実行してもよく、一部をユーザのコンピュータ上で、かつ一部をリモート・コンピュータ上で実行してもよく、または全体をリモート・コンピュータもしくはサーバ上で実行してもよい。最後のシナリオの場合、リモート・コンピュータを、ローカルエリア・ネットワーク（ＬＡＮ）またはワイドエリア・ネットワーク（ＷＡＮ）を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続してもよく、あるいはその接続は、（例えば、インターネット・サービス・プロバイダを利用したインターネットを介して）外部コンピュータに対して行ってもよい。
【００１３】
本発明の態様を、本発明の実施形態に基づく方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャートまたはブロック図あるいはその両方を参照して、以下に説明する。フローチャートまたはブロック図あるいはその両方における各ブロック、およびフローチャートまたはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施できることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特定用途コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに与えてもよく、それによって命令がコンピュータまたはその他のプログラム可能データ処理装置のプロセッサを介して実行されて、フローチャートもしくはブロック図またはその両方の１つあるいは複数のブロックで特定される機能／動作を実施するための手段を生成するようにマシンを構築することができる。
【００１４】
また、これらのコンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスに対して特定の方式で機能するよう指示することができるコンピュータ可読媒体に記憶されていてもよく、それによってコンピュータ可読媒体に記憶された命令は、フローチャートもしくはブロック図またはその両方の１つあるいは複数のブロックで特定される機能／動作を実施する命令を含む製品を生み出すことができる。
【００１５】
また、これらのコンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作工程を実行させ、コンピュータ実施プロセスを生成するようにしてもよく、それによってコンピュータまたはその他のプログラム可能装置で実行される命令は、フローチャートもしくはブロック図またはその両方の１つあるいは複数のブロックで特定される機能／動作を実施するためのプロセスを提供することができる。
【００１６】
本発明の実施形態に基づいて構成され、機能するシナリオ・ベース巡回システムの簡略概念図である図１を参照する。図１のシステムでは、クローラ１００は、従来技術に基づいてコンピュータ・ベースのドキュメントやソフトウェア・アプリケーションを巡回するよう構成されており、また本明細書で以下に説明するように動作するようさらに構成されている。一連の１つまたは複数のシナリオ１０２は、各シナリオが以下を含むように定義されている。
・  一連のあらかじめ定義された対話前特性
・  一連のあらかじめ定義された対話
・  一連のあらかじめ定義された対話後特性、または
・  各状態が対話後特性の１つもしくは複数と関連する、一連のあらかじめ定義された状態、あるいは上記のすべて
【００１７】
クローラ１００は、好適にはシナリオ・セレクタ１０４を含むか、さもなければそれと協働するように構成されている。シナリオ・セレクタ１０４は、シナリオ１０２の１つまたは複数を選択するように構成されている。ここで、シナリオが選択されるのは、ウェブ・アプリケーションの巡回セッション中にウェブ・アプリケーションからウェブ・ページを受信した後など、巡回セッション中のある時点において、シナリオと関連する一連のあらかじめ定義された対話前特性のうちの各特性が存在する場合である。そこで、例えば、シナリオの一連の対話前特性が特性「ログイン＝『Ｙｅｓ』（<LoggedIn=‘Yes’>）」および「現在のウェブ・ページに、『ログアウト』ボタンが含まれている（<CurrentWebPage includes ‘Logout’ button>）」を含んでいる場合、シナリオ・セレクタ１０４は、好適には巡回セッション中に保持される巡回セッションの状態情報１０６のデータ蓄積を確認し、クローラ１００が示すようなセッションに関連するユーザが現在ウェブ・アプリケーションにログインしているか判定し、ウェブ・アプリケーションによって表示される現在のウェブ・ページが「ログアウト」とラベル付けされたボタンを含んでいるかどうかを確認する。各特性が存在する場合、シナリオ・セレクタ１０４はそのシナリオを選択する。
【００１８】
クローラ１００はまた、好適には、対話エージェント１０８を含むか、さもなければそれと協働するように構成されている。対話エージェント１０８は、受信したウェブ・ページ等、巡回セッションの現在の対象とのシナリオの一連のあらかじめ定義された対話のうちの、各対話を実行するように構成されている。よって、この例では、一連の対話が対話「『ログアウト』ボタンを押してください（<Press the “Logout” button>）」を含んでいてもよく、この場合これを対話エージェント１０８が受信したウェブ・ページに対して実行する。
【００１９】
クローラ１００はまた、好適には、対話後評価器１１０を含むか、さもなければそれと協働するように構成されている。対話後評価器１１０は、対話エージェント１０８によるシナリオの一連のあらかじめ定義された対話のうちの対話の実行後の巡回セッション中に、シナリオの一連の対話後特性のうちいずれが存在するかを特定するように構成されている。そこで、この例では、一連の対話後特性が特性「現在のウェブ・ページに、『ありがとうございました』が含まれている（<CurrentWebPage includes “Thank you”>）」を含んでいる場合、対話後評価器１１０は、好適には、「ログアウト」ボタンが押されたことに応答してウェブ・アプリケーションが返したウェブ・ページを評価して、返されたウェブ・ページが「ありがとうございました」の語句を含んでいるかどうかを判定する。対話後評価器１１０は、対話によって引き出されるいずれかの応答に、または状態情報１０６に、あるいその両方に、対話後特性のいずれが存在するかを特定してもよい。
【００２０】
クローラ１００はまた、好適には、状態マネジャ１１２を含むか、さもなければそれと協働するように構成されている。状態マネジャ１１２は、巡回セッションの現在の状態を判定するように構成されている。ここで、現在の状態は、対話後評価器１１０によって巡回セッション中に存在すると判定されたシナリオの対話後特性のいずれかと関連付けられている。そこで、この例では、対話後評価器１１０が、「ログアウト」ボタンが押されたことに応答してウェブ・アプリケーションが返したウェブ・ページに特性「現在のウェブ・ページに、『ありがとうございました』が含まれている（<CurrentWebPage includes “Thank you”>）」が存在すると判定し、かつ「ログイン＝『Ｎｏ』（<LoggedIn=‘No’>)」の状態がシナリオの対話後特性「現在のウェブ・ページに、『ありがとうございました』が含まれている（<CurrentWebPage includes “Thank you”>）」に関連付けられている場合、状態マネジャ１１２は、巡回セッションに関わるユーザの状態が「ログイン＝『Ｎｏ』（<LoggedIn=‘No’>）」と判定してもよく、またこの情報を状態情報１０６に記録してもよい。
【００２１】
この例から、図１のシステムを用いて、ウェブ・アプリケーションをランダムにまたは経験則に基づいて巡回するよりも、クローラが現在ウェブ・アプリケーションにログインしている場合のみ、クローラが確実にウェブ・ページ上の「ログアウト」ボタンを押すようにすることで、クローラとウェブ・アプリケーションとの高度な対話が可能になると認められるであろう。
【００２２】
図１のシステムは、上述のようにあらかじめ定義されたシナリオが適用可能なシナリオ・ベースの対話を用いて、またはさもなければ従来技術を用いて、コンピュータ・ベースのドキュメントまたはソフトウェア・アプリケーションを巡回するために使用できる。
【００２３】
図１に示す構成要素はいずれも、好適には、これらの構成要素を、コンピュータ・ハードウェアにおいてまたは非一時的なコンピュータ可読媒体で具現されるコンピュータ・ソフトウェアにおいてあるいはその両方において、従来技術に基づいて実装することで、コンピュータ１１４等の１つまたは複数のコンピュータによって実装される。
【００２４】
次に本発明の実施形態に基づいて機能する図１のシステムの動作方法の例を示す簡略フローチャートである図２を参照する。図２の方法では、一連のコンピュータ・ベースのドキュメントまたはソフトウェア・アプリケーションあるいはその両方に対して、巡回セッションが開始される（ステップ２００）。巡回セッション中のいずれかの時点で、あらかじめ定義されたシナリオと関連する各対話前特性が存在する場合（ステップ２０２）、そのシナリオが選択される（ステップ２０４）。シナリオと関連する一連のあらかじめ定義された対話のうちの各対話が実行される（ステップ２０６）。対話の実行後の巡回セッション中に存在する、シナリオに関連するいずれかの対話後特性が特定される（ステップ２０８）。対話の実行後の巡回セッション中に存在するシナリオの対話後特性のいずれかと関連する一連のあらかじめ定義された状態から、巡回セッションの現在の状態が判定される（ステップ２１０）。
【００２５】
次に本発明の実施形態に基づいて機能する図１のシステムの運用方法の例を示す簡略フローチャートである図３を参照する。図３の方法では、一連のコンピュータ・ベースのドキュメントまたはソフトウェア・アプリケーションあるいはその両方に対して、巡回セッションが開始される（ステップ３００）。巡回セッション中のいずれかの時点で、例えば図２の方法によってシナリオを選択可能である場合（ステップ３０２）、例えば図２の方法によってシナリオを処理する（ステップ３０４）。一方、あらかじめ定義されたシナリオに関連する各対話前特性が存在しない等、シナリオを選択できない場合、巡回を従来技術に基づいて行ってもよい（ステップ３０６）。終了条件を満たしている場合、巡回セッションを終了してもよい（ステップ３０８）。
【００２６】
次に図４を参照すると、ブロック図４００は、本発明の実施形態に係るコンピューティング・システムのハードウェアの実施例を示しており、それに基づいて、本発明の１つまたは複数の構成要素／方法（例えば、図１〜図３の状況における構成要素／方法）を実施することができる。
【００２７】
図示の通り、少なくとも１つのリソースへのアクセスを制御するための技術が、プロセッサ４１０、メモリ４１２、Ｉ／Ｏデバイス４１４、およびネットワーク・インターフェイス４１６に基づいて実現可能である。これらの構成要素は、コンピュータ・バス４１８または代替の接続構成を介して接続されている。
【００２８】
一実施形態では、巡回セッションは巡回ボットとウェブ・サイト（またはその他のアドレス可能なウェブ・ベースのリソース）との間で存在する。本明細書において、巡回とは、ウェブ・クローラまたは巡回ボットによって行われるウェブ巡回を指す。巡回ボットは、自律型または半自律型ソフトウェア・アプリケーションであり、１つまたは複数のウェブ・サイトと系統的、自動的、または規則的に対話することができる。巡回ボットの他に広く使用されている呼称には、アント、自動インデクサー、ボット、ウェブ・スパイダー、ウェブ・ロボット、ウェブ・スカッターなどがある。ウェブ巡回は、ウェブに関する最新データを提供するための手段であり、サーチ・エンジンなどの他のプログラムによって使用され得る。
【００２９】
一実施形態では、本開示の巡回ボットを用いて、訪問したすべてのページのコピーを作成することができ、そのコピーは後に、高速検索が可能になるようにダウンロードされたページを索引付けすることになるサーチ・エンジンによって処理される。また、巡回ボットを使用して、リンクの確認やＨＴＭＬコードの検証など、ウェブ・サイト上のメンテナンス作業を自動化することができる。さらに、巡回ボットを使用して、Ｅメール・アドレスの取得など、ウェブ・ページから特定の種類の情報を収集することができる。
【００３０】
一実施形態では、従来のウェブ・クローラとは異なり、本開示の巡回ボットは動的コンテンツを提供するウェブ・サイトと対話することができる。すなわち、巡回ボットは、動的コンテンツに関するウェブ・サイト状態を判定することができ、その状態に固有の動作（例えば、シナリオの起動）を開始することができる。例えば、巡回ボットは、あらかじめ定義された入力をウェブ・サイトに与えて、ウェブ・サイトの動的コンテンツを変化させる。例えば、ウェブ・クローラは、現在のウェブ・サイトの状態が、ユーザがログインしていないことを示していると検知でき、その場合ウェブ・サイトの状態をログインされた状態に変更するための入力を与えることができる。ウェブ・ボットは、ウェブ・サイトの状態に固有の動作を行い、受信したウェブ・サイトのコンテンツを解析し、そのコンテンツを予期される結果と照合して、返ってきた結果と適合しているか否かに応じて変更可能な動作を実行することができる。換言すると、巡回ボットは、論理的動作を導入して、異なるウィンドウ状態に応じてユーザ対話をシミュレートすることができる。
【００３１】
これによって、本開示の巡回ボットは、従来のウェブ・クローラに比べて、プログラム可能な用途において著しく効率的となるが、それは、巡回ボットが所与のウェブ・サイトの一連の可能性を使い果たすことなく実現可能な特定機能に対応してプログラムすることができるからである。さらに、本開示の巡回ボットは、従来のウェブ・クローラの使用では得られない情報を収集することができるが、それは、巡回ボットが入力を与えることでウェブ・サイト、ウェブ・アプリケーション、またはウェブ・サービスの動的コンテンツを変化させることができるからである。
【００３２】
当然のことながら、本明細書で用いられる用語「プロセッサ」は、例えば、ＣＰＵ（中央処理装置）またはその他の処理回路あるいはその両方を備えるもの等、あらゆる処理デバイスを含むものとする。また当然のことながら、用語「プロセッサ」は、２つ以上の処理デバイスを指す場合があり、ある処理デバイスに関連する各種要素は他の処理デバイスでも共用できるものとする。
【００３３】
本明細書で用いられる用語「メモリ」は、例えば、ＲＡＭ、ＲＯＭ、固定メモリ・デバイス（例えば、ハード・ドライブ）、着脱可能メモリ・デバイス（例えば、ディスケット）、フラッシュ・メモリ等の、プロセッサまたはＣＰＵと関連するメモリを含むものとする。このようなメモリは、コンピュータ可読記憶媒体とみなすことができる。
【００３４】
加えて、本明細書で用いられる用語「入力／出力デバイス」または「Ｉ／Ｏデバイス」は、例えば、処理ユニットにデータを入力するための１つもしくは複数の入力デバイス（例えば、キーボード、マウス、スキャナ等）、または処理ユニットに関連する結果を提示するための１つもしくは複数の出力デバイス（例えば、スピーカ、ディスプレイ、プリンタ等）、あるいはその両方を含むものとする。
【００３５】
図面のフローチャートやブロック図は、本発明の各種実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の実現可能な実装のアーキテクチャ、機能、ならびに作用を示すものである。この点において、フローチャートまたはブロック図における各ブロックは、モジュール、セグメント、またはコードの一部を表すことができ、特定された１つまたは複数の論理的機能を実現するための１つまたは複数の実行可能な命令を含むものとする。また、いくつかの代替実装では、ブロックに表示された機能は、図面に記載の順序とは異なって実行されてもよいことに留意されたい。例えば、連続して表示された２つのブロックは、実際には、関連する機能に応じて、実質上同時に実行されてもよく、または逆の順序で実行されてもよい。また、ブロック図もしくはフローチャートまたはその両方における各ブロック、およびブロック図もしくはフローチャートまたはその両方における各ブロックの組み合わせは、特定された機能または動作を実行する特殊用途のハードウェア・ベースのシステム、あるいは特殊用途のハードウェアおよびコンピュータ命令の組み合わせによって実現することができることにも留意されたい。
【００３６】
当然のことながら、上述の構成要素のいずれも、磁気または光学記憶媒体に記録された、あるいはコンピュータ・ハードウェアに組み込まれたコンピュータ・プログラム命令の形態で等、コンピュータ可読媒体に組み込まれたコンピュータ・プログラム製品として実装されてもよく、また（図示しない）コンピュータによって実行されるか、さもなければコンピュータによってアクセス可能であってもよい。
【００３７】
本明細書に示す方法および装置は、特定のコンピュータ・ハードウェアまたはソフトウェアを基準として記載した場合もあり、それらを基準とすることなく記載した場合もあるが、当然のことながら、本明細書に示す方法および装置は、従来技術を用いてコンピュータ・ハードウェアまたはソフトウェアにおいて容易に実現することができる。
【００３８】
以上、本発明を１つまたは複数の特定の実施形態に基づいて説明したが、この説明は本発明の全体を例示するためのものであり、本発明を上述の実施形態に限定するものとは解釈されない。本明細書では具体的に示さないが、本発明の真の精神と範囲から逸脱することなく、当業者にとって種々の変更が可能であるのは言うまでもない。
【図１】
2015503787.tif 000003
【図２】
2015503787.tif 000004
【図３】
2015503787.tif 000005
【図４】
2015503787.tif 000006
【手続補正書】
【提出日】平成26年7月3日(2014.7.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つの記憶デバイスに記憶されたプログラム命令を実行する少なくとも１つのプロセッサを介して、巡回ボットとウェブ・サイトとの間に対話型セッションを確立するステップであって、前記巡回ボットは、１つまたは複数のウェブ・サイトと対話するためのユーザ状態を表すセッション状態と、一連の条件と、前記一連の条件を満たしているか否かに基づいて選択的に起動される一連のシナリオとを定義し、前記一連の条件は、前記ユーザ状態があらかじめ設定された値に等しいか否かの状態条件を含み、前記一連の条件は、コンテンツ適合条件を含む、前記確立するステップと、
前記巡回ボットが、プログラム命令が少なくとも１つの記憶デバイスに記憶された状態で前記巡回ボットの前記プログラム命令を実行する少なくとも１つのプロセッサを介して、前記対話型セッション中に前記ウェブ・サイトからコンテンツを受信するステップと、
前記巡回ボットが、プログラム命令が少なくとも１つの記憶デバイスに記憶された状態で前記巡回ボットの前記プログラム命令を実行する少なくとも１つのプロセッサを介して、前記ウェブ・サイトからの前記コンテンツを解析し、前記解析したコンテンツを一連のあらかじめ定義された項目と照合して、前記コンテンツ適合条件を満たしているか否かを判定するステップと、
前記コンテンツ適合条件を満たしている場合で、かつ前記状態条件を満たしている場合、前記巡回ボットが、プログラム命令が少なくとも１つの記憶デバイスに記憶された状態で前記巡回ボットの前記プログラム命令を実行する少なくとも１つのプロセッサを介して、前記巡回ボットによって定義された前記シナリオの１つを起動するステップであって、前記コンテンツ適合条件および前記状態条件を満たしていない場合、前記巡回ボットが前記シナリオを起動しない、前記起動するステップと
を含む方法。
【請求項２】
前記セッション状態は、少なくとも２つの異なる状態を含み、１つの状態は、エンティティが前記ウェブ・サイトにログインしていることを示し、もう１つの状態は、前記エンティティが前記ウェブ・サイトにログインしていないことを示す、請求項１に記載の方法。
【請求項３】
前記ウェブ・サイトは動的コンテンツを提供し、前記一連の条件は前記動的コンテンツに関するウェブ・サイト状態を示し、前記シナリオのうち前記起動されたシナリオは、前記巡回ボットからあらかじめ定義された入力を前記ウェブ・サイト状態に固有のウェブ・サイトに与えて、前記ウェブ・サイトの前記動的コンテンツを変化させる、請求項１に記載の方法。
【請求項４】
前記一連のシナリオのそれぞれは、一連のあらかじめ定義された対話前特性と、一連のあらかじめ定義された対話と、一連のあらかじめ定義された対話後特性と、一連のあらかじめ定義された状態とを含み、前記一連のあらかじめ定義された状態のそれぞれは、前記対話後特性の１つまたは複数と関連付けられている、請求項１に記載の方法。
【請求項５】
前記１つのシナリオが起動すると、前記対話型セッション中に前記ウェブ・サイトの現在の対象に対し、前記シナリオに関連する一連のあらかじめ定義された対話のうち複数の対話のそれぞれを実行するステップと、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちの一連の特性のいずれが存在するかを特定するステップと、
対話セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかと関連するあらかじめ定義された状態と判定するステップと
をさらに含む、請求項１に記載の方法。
【請求項６】
前記ウェブ・サイトは、前記対話セッション中に前記巡回ボットによって巡回されているウェブ・アプリケーションを表す、請求項１に記載の方法。
【請求項７】
コンピュータで実行されるときに、請求項１に記載の方法の全てのステップを前記コンピュータに実施させる、コンピュータ・プログラム。
【請求項８】
あらかじめ定義されたシナリオを選択するステップであって、前記シナリオに関連する一連のあらかじめ定義された対話前特性の各特性が、巡回セッション中のある時点で存在する、前記選択するステップと、
前記巡回セッションの現在の対象に対して、前記シナリオに関連する一連のあらかじめ定義された対話のうちの対話のそれぞれを実行するステップと、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちのいずれの特性が存在するかを特定するステップと、
前記巡回セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかと関連する、あらかじめ定義された状態と判定するステップと
を含む方法。
【請求項９】
前記巡回セッションは、ウェブ・サイトに移動してそのコンテンツを横断して、前記ウェブ・サイトに関する索引情報を提供する、巡回ボットと称される自律型ソフトウェア・アプリケーションとの対話型セッションである、請求項８に記載の方法。
【請求項１０】
前記あらかじめ定義されたシナリオは、前記一連のあらかじめ定義された対話前特性と、前記一連のあらかじめ定義された対話と、前記一連のあらかじめ定義された対話後特性と、一連のあらかじめ定義された状態とを含み、前記一連のあらかじめ定義された状態のそれぞれは前記対話後特性の１つまたは複数と関連付けられ、前記あらかじめ定義されたシナリオは、巡回ボットが巡回するように設計されたウェブのコンテンツとの対話のために、前記巡回ボットによって選択的に起動され、前記巡回ボットによって定義される、請求項８に記載の方法。
【請求項１１】
前記あらかじめ定義された状態は、少なくとも２つの異なる状態を含み、１つの状態は、エンティティが前記ウェブ・サイトにログインしていることを示し、もう１つの状態は、前記エンティティが前記ウェブ・サイトにログインしていないことを示す、請求項８に記載の方法。
【請求項１２】
前記巡回セッションは、自律型ソフトウェア・エンティティとウェブ・サイトとの間で行われ、前記ウェブ・サイトは動的コンテンツを提供し、前記ソフトウェア・エンティティによって扱われる一連の条件は、前記動的コンテンツに関するウェブ・サイト状態を示し、前記あらかじめ定義されたシナリオは、あらかじめ定義された入力を前記ソフトウェア・エンティティから前記ウェブ・サイト状態に固有のウェブ・サイトに与えて、前記ウェブ・サイトの前記動的コンテンツを変化させる、請求項８に記載の方法。
【請求項１３】
前記選択するステップは、前記一連のあらかじめ定義された対話前特性のうちのいずれかの前記特性が前記巡回セッションの前記現在の対象において存在する場合に選択するステップを含む、請求項８に記載の方法。
【請求項１４】
前記選択するステップは、前記一連のあらかじめ定義された対話前特性のうちのいずれかの前記特性が前記巡回セッションについて保持された状態情報において存在する場合に選択するステップを含む、請求項８に記載の方法。
【請求項１５】
前記選択するステップ、実行するステップ、特定するステップ、および判定するステップは、ウェブ・アプリケーションを巡回するときに行われる、請求項８に記載の方法。
【請求項１６】
前記選択するステップは、ウェブ・アプリケーションからウェブ・ページを受信した後に行われる、請求項１５に記載の方法。
【請求項１７】
前記実行するステップは、前記ウェブ・ページとの対話のそれぞれを実行するステップを含む、請求項１６に記載の方法。
【請求項１８】
前記特定するステップは、前記対話によって引き出されたいずれかの応答の中で前記対話後特性のいずれかを特定するステップを含む、請求項８に記載の方法。
【請求項１９】
シナリオ・ベース巡回のためのシステムであって、
あらかじめ定義されたシナリオを選択するように構成されたシナリオ・セレクタであって、前記シナリオと関連する一連のあらかじめ定義された対話前特性のうちの特性のそれぞれが巡回セッション中のある時点で存在する、前記シナリオ・セレクタと、
前記巡回セッションの現在の対象に対して、前記シナリオに関連する一連のあらかじめ定義された対話のうちの対話のそれぞれを実行するように構成された対話エージェントと、
前記対話の実行後の巡回セッション中に、前記シナリオに関連する一連のあらかじめ定義された対話後特性のうちいずれの特性が存在するかを特定するように構成された対話後評価器と、
前記巡回セッションの現在の状態を、前記対話の実行後の前記巡回セッション中に存在する前記対話後特性のいずれかに関連するあらかじめ定義された状態であると判定するように構成された状態マネジャと
を含むシステム。
【請求項２０】
前記シナリオ・セレクタは、前記一連のあらかじめ定義された対話前特性のうちのいずれかの特性が前記巡回セッションの前記現在の対象において存在する場合に選択するように構成される、請求項１９に記載のシステム。
【請求項２１】
前記シナリオ・セレクタは、前記一連のあらかじめ定義された前記対話前特性のうちのいずれかの特性が前記巡回セッションについて保持された状態情報において存在する場合に選択するように構成される、請求項１９に記載のシステム。
【請求項２２】
前記巡回セッションは、ウェブ・アプリケーションの巡回を含む、請求項１９に記載のシステム。
【請求項２３】
前記シナリオ・セレクタは、ウェブ・アプリケーションからウェブ・ページを受信した後に選択するように構成される、請求項２２に記載のシステム。
【請求項２４】
前記対話後評価器は、前記対話によって引き出されたいずれかの応答の中で前記対話後特性のいずれかを特定するように構成される、請求項１９に記載のシステム。
【請求項２５】
コンピュータで実行されるときに、請求項８に記載の方法の全てのステップを前記コンピュータに実施させる、コンピュータ・プログラム。
【国際調査報告】
2015503787.tif 000007
2015503787.tif 000008