(57)【特許請求の範囲】
【請求項１】
ネットワーク上に分散されたデータを収集する情報収集方法において、
収集対象のデータを指し示すハイパーリンクを登録するステップと、
登録されたハイパーリンクの指し示すデータの取得を試行するステップと、
前記試行ステップにより取得されたデータの最新更新時刻を求めるとともに、該最新更新時刻をデータ更新履歴に追加することによりデータの更新状況を監視するステップと、
前記データ更新履歴における前記最新更新時刻を含む少なくとも２つ以上の時刻情報から次回更新予測時刻を算出するステップと、
前記試行ステップにより前記データの取得を次回に試行する時刻として、前記次回更新予測時刻を記憶するステップと、
を有することを特徴とする情報収集方法。
【請求項２】
サーバーとの通信状況に応じて、前記次回更新予測時刻を変更することを特徴とする請求項１に記載の情報収集方法。
【請求項３】
一定期間だけ取得不能となったデータについては、再度取得可能となった後も、取得不能となる以前の前記データ更新履歴を継続して用いることを特徴とする請求項１に記載の情報収集方法。
【請求項４】
データの大きさが設定値を超える場合、該データについては設定値を超えない範囲に相当する部分のみを前記取得の試行及び更新状況の監視の対象とすることを特徴とする請求項１に記載の情報収集方法。
【請求項５】
同一のハイパーリンクで有限複数個の種類内でデータが切り替わり得るハイパーリンクを扱う場合、該種類別に前記取得の試行及び更新状況の監視を行なうことを特徴とする請求項１に記載の情報収集方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上に分散され時刻と共に変化するデータを収集する情報収集方法に関する。
【０００２】
【従来の技術】
ネットワーク上に分散して存在するデータの収集を、データ内のハイパーリンクを連鎖的に参照することで達成する、ネットワークロボットと呼ばれる装置がある。
【０００３】
本明細書で用いる語句について説明する。
「ハイパーリンク」とは、ネットワーク上の特定データを指示する表現である。
【０００４】
「ハイパーリンク群」とは、１以上のハイパーリンクの集まりを意味する。
「初期ハイパーリンク群」とは、ネットワークロボットが動作するにあたり、初期値として用いられるハイパーリンク群を意味する。
【０００５】
「未取得モード」とは、（ハイパーリンクを記録格納する記録格納部内で）ハイパーリンクに付随する属性の一つで、そのハイパーリンクに指し示されるデータの取得が完了していないことを示す。
【０００６】
「既取得モード」とは、（ハイパーリンクを記録格納する記録格納部内で）ハイパーリンクに付随する属性の一つで、そのハイパーリンクに指し示されるデータの取得が完了したことを示す。
【０００７】
図１１に、最も簡単な従来のネットワークロボットの一構成例を示す。なお、図１１に示される構成のうち、点線枠に囲まれた内側が、ネットワークロボットである。
【０００８】
ここで、図中のハイパーリンク入力装置１１０１は、ネットワークロボットとは独立に存在し、ネットワークロボットの動作の発端となる初期ハイパーリンク群を入力する機能を持つ。
【０００９】
データ処理装置１１０２は、ネットワークロボットは独立に存在し、ネットワークロボットが動作中に取得したデータを用いて所定の処理を行う装置である。
ネットワーク１１０３は、ネットワークロボットとは独立に存在し、ネットワークロボットが通信対象とするサーバーとの通信を提供する装置である。
【００１０】
次に、図１１のネットワークロボットの構成について説明する。図１１のように、本ネットワークロボットは、ハイパーリンクスタック部１１０４、ハイパーリンクマッチング部１１５１、ハイパーリンク記録格納部１１５２、送受信部１１０７、ハイパーリンク抽出部１１０９を備えている。
【００１１】
ハイパーリンクスタック部１１０４は、ハイパーリンクを任意数格納できるデータ構造を有する。例えば、内部にハイパーリンクを要素としてもつリスト構造を有することで実現される。
【００１２】
ハイパーリンクマッチング部１１５１は、ハイパーリンクの登録とモード変更を行なう。
ハイパーリンク記録格納部１１５２は、任意数のハイパーリンクを、未取得モードもしくは既取得モードという２つのモードのどちらかを持つ形で、格納できるデータ構造を持つ。例えば、内部にハイパーリンク及びそのモードを示すための二値変数を要素として有するリスト構造を持つことで実現される。
【００１３】
送受信部１１０７は、ネットワーク１１０３との送受信を行なう。
ハイパーリンク抽出部１１０９は、データまたはその一部であるハイパーテキストからハイパーリンクを抽出する。
【００１４】
この動作に関するフローチャートを図１２に示し、そのネットワークロボットの動作機構を以下に示す。
ハイパーリンク入力装置１１０１は、ネットワークロボットに向けて初期ハイパーリンク群を伝送する（ステップＳ１１０１）。初期ハイパーリンク群は、ハイパーリンクスタック部１１０４に格納される。
【００１５】
ハイパーリンクマッチング部１１５１は、ハイパーリンクスタックが空でない場合、データリンクを取り出し、それがハイパーリンク記録格納部１１５２に存在しないときにのみ、ハイパーリンク記録格納部１１５２に格納する（ステップＳ１１０２，Ｓ１１０３，Ｓ１１０４，Ｓ１１０５）。
【００１６】
次に、ステップＳ１１０２でハイパーリンクスタックが空であれば、ハイパーリンクマッチング部１０４は、ハイパーリンク記録格納部１１５２に未取得モードで格納されているハイパーリンクが存在するかどうか調べる（ステップＳ１１０６）。そして、未取得モードで格納されているハイパーリンクが存在しない場合は、ネットワークロボットとしての動作を終えるべく停止する。
【００１７】
一方、未取得モードで格納されているハイパーリンクが存在する場合は、ハイパーリンク記録格納部１１５２に未取得モードで格納されているハイパーリンクの一部または全部を送受信部１１０７へ伝送する（Ｓ１１０７）。
【００１８】
次に、送受信部１１０７は、ネットワーク通信を行ない、ステップＳ１１０７でハイパーリンクマッチング部１１５１から得たハイパーリンクに指し示されるデータの取得を試みる（ステップＳ１１０８）。
【００１９】
送受信部１１０７は、ステップＳ１１０８の完了をもって、ステップＳ１１０８で取得したデータを、データ処理装置１１０２へ出力するとともに、ハイパーリンク抽出部１１０９へ伝送する（ステップＳ１１０９，Ｓ１１１２）。これらの実行の順序は、通常問われない。
【００２０】
また、送受信部１１０７は、ステップＳ１１０８の完了をもって、ステップＳ１１０８でハイパーリンクマッチング部１１５１から得たハイパーリンクのモードを未取得モードから既取得モードへ変更する信号をハイパーリンクマッチング部１１５１へ伝送する（ステップＳ１１１０）。そして、ハイパーリンクマッチング部１１５１は、ハイパーリンク記録格納部１１５２内の該当するデータリンクのモードを未取得モードから既取得モードへ変更する（Ｓ１１１１）。
【００２１】
ハイパーリンク抽出部１１０９は、ステップＳ１１１２で伝送されたデータからハイパーリンク群を抽出し（ステップＳ１１１３）、このハイパーリンク群を未取得モードでハイパーリンクスタック部１１０４へ伝送する（ステップＳ１１１４）。
【００２２】
そして、ステップＳ１１０２へ戻り、前述のようにハイパーリンクマッチング部１１５１は、ステップＳ１１１３で抽出されたハイパーリンク群のそれぞれについて、それがハイパーリンク記録格納部１１５２にないときにのみ、ハイパーリンク記録格納部１１５２に格納する（ステップＳ１１０２〜Ｓ１１０５）。
【００２３】
以降、上記したような手順が繰り返し行われ、前述のようにステップＳ１１０６ハイパーリンク記録格納部１１５２に未取得モードで格納されているハイパーリンクが存在しなくなれば、ネットワークロボットとしての動作を終えるべく停止する。
【００２４】
ここで、ハイパーリンクマッチング部１１５１の出力は、参照に関する重複のないリンクであると同時に、ネットワークロボットがその探索対象とすることを禁止されていないリンクとなる。
【００２５】
また、通常、ネットワーク上の同一のサーバーに連続するアクセスを抑制するために、ハイパーリンクマッチング部は、以前に出力したハイパーリンクを記録しており、それと同一のサーバーに対する連続した通信をできるだけ避ける構成をとる。
【００２６】
既存のネットワークロボットの具体例としては、インターネット・ワールドワイドウェブ上のＡｌｔａ  Ｖｉｓａ検索サービス（１９９５，ＵＲＬ＝ｈｔｔｐ：／／ｗｗｗ．ａｌｔａｖｉｓｔａ．ｄｉｇｉｔａｌ．ｃｏｍ／）がある。
【００２７】
【発明が解決しようとする課題】
上記のような従来のネットワークロボットでは、例えば以下に示すような種々の問題点があった。
（１）データの内容が更新されてもすぐに参照することができなかった。
【００２８】
（２）上記とは逆に、データの内容が非更新であるにもかかわらず無駄に参照してしまう場合があった。つまり、非更新のデータの参照を省略することによる参照の効率化、処理速度の向上が期待できなかった。
【００２９】
（３）データを収集する際、ネットワークの動的な負荷やデータの更新の頻度に対する無計画性が律速となり、収集の効率及び速度に限界があった。
例えば、１２時から１４時（以下時間帯ＳＡと呼ぶ）間は、ネットワーク負荷が重く参照速度が低下するサーバー群Ａ上のデータ群ａがある場合、ａの多くが常に時間帯ＳＡに参照されると、時間帯ＳＡ以外ではａのデータの参照が速やかであるにも関わらずその参照の間隔が不適当に伸ばされたり、常に負荷の高い状況下での参照をしたりということが容易に予想される。
【００３０】
本発明は、上記事情を考慮してなされたものであり、ネットワーク上に分散されたデータを収集するにあたって、各データの更新の頻度と同程度の頻度でデータ参照を行うことを可能とする情報収集方法を提供することを目的とする。
【００３１】
また、本発明は、更新されていないデータに対する不要な参照を事前に抑えることを可能とする情報収集方法を提供することを目的とする。
また、本発明は、各データ及びそれを有するサーバーに対する参照に最も適した時刻あるいは時間帯での参照を可能とする情報収集方法を提供することを目的とする。
【００３２】
【課題を解決するための手段】
本発明は、ネットワーク上に分散されたデータを収集する情報収集方法において、所定の間隔で、登録された各ハイパーリンクの指し示すデータの取得を試行し、取得されたデータの更新状況を監視するとともに、前記データの更新状況の監視結果から求めたデータ更新履歴をもとに、該データを参照する前記所定の間隔を決定することを特徴とする。
【００３３】
例えば、更新の間隔が短いデータについては参照の間隔を短くするように調整し、更新の間隔が長いものは参照の間隔を長くするように調整する。これらの調整は動的に行われる。
【００３４】
好ましくは、前記更新履歴からデータの次回更新予測時刻を求め、該次回更新予測時刻を該データの次回参照時刻とすることを特徴とする。
これは、例えば、データの更新の有無の判定がデータを取得する迄不能または困難である場合に有効である。
【００３５】
好ましくは、サーバとの通信状況に応じて、次回のデータの取得を試行する時刻を変更することを特徴とする。
例えば、各データの取得に掛かるネットワークの回線負荷が設定値よりも大きい際もしくはデータの取得に要した時間が設定値よりも長い際にそのデータの次回更新予測時刻の前または後への変更を必要に応じて行う。
【００３６】
また、例えば、ネットワーク上に存在し参照対象とするデータを有する各サーバーの使用が可能な時間帯及び上記の時間帯の有限分割の中で平均して最も速やかな応答が期待される部分時間帯をサーバーに関する通信履歴から算出し、必要に応じて上記の時間帯及び部分時間帯内に対象サーバーとの通信を行なう。
【００３７】
好ましくは、前記データ更新履歴をもとに、規定値より短い期間での更新の頻度が一定期間内に一定回数よりも多く生じたデータについては、データの取得の試行の停止または次回のデータの取得を試行する時刻を変更することを特徴とする。
【００３８】
好ましくは、一定期間だけ取得不能となったデータについては、再度取得可能となった後も、取得不能となる以前の前記データ更新履歴を継続して用いることを特徴とする。
【００３９】
すなわち、データを消去し同じハイパーリンクで指し示されるデータを再度設ける際にそのデータを新規に作成されたものでなく更新されたものとして処理する。
【００４０】
好ましくは、データが次回に変更される予定時刻を該データ自体から求めることができる場合、該データについては、次の取得の試行の時刻を、該データから求めた該予定時刻以降とすることを特徴とする。
【００４１】
好ましくは、データの大きさが設定値を超える場合、該データについては設定値を超えない範囲に相当する部分のみを前記取得の試行及び更新状況の監視の対象とすることを特徴とする。
【００４２】
好ましくは、同一のハイパーリンクで有限複数個の種類内でデータが切り替わり得るハイパーリンクを扱う場合、該種類別に前記取得の試行及び更新状況の監視を行なうことを特徴とする。
【００４３】
本発明の他の発明は、ネットワーク上に分散されたデータを収集する情報収集方法において、登録された各ハイパーリンクの指し示すデータの取得を試行し、取得されたデータの更新状況を監視するとともに、データを提供するサーバーとの通信状況をも監視して該サーバーの使用可能な時間帯を求め、求められた前記時間帯にデータの取得を試行することを特徴とする。
【００４４】
例えば、ネットワーク上に存在し参照対象とするデータを有する各サーバーの使用が可能な時間帯及び上記の時間帯の有限分割の中で平均して最も速やかな応答が期待される部分時間帯をサーバーに関する通信履歴から算出し、必要に応じて上記の時間帯及び部分時間帯内に対象サーバーとの通信を行なう。
【００４５】
好ましくは、サーバーの使用可能な時間帯の有限分割の中で統計的に最も速やかな通信が期待される時間帯区分内に、データの取得を試行することを特徴とする。
【００４６】
好ましくは、データの取得に要した時間が設定値よりも長い場合、データの取得の試行を行う前記時間帯区分を変更することを特徴とする。
本発明では、各データの更新履歴情報を蓄積し、これをもとに各データの更新の特性を推定して、参照の時刻あるいは時間帯をスケジューリングすることにより、各データの更新の頻度と同程度の頻度でのデータ参照を実現することができる。
【００４７】
また、更新されていないデータに対する不要な参照を事前に抑えることができる。これによって、データ収集の効率向上を図ることができる。
さらに、各データの内容の特性をも考慮することにより、さらなるデータ収集の効率向上を図ることができる。
【００４８】
また、本発明では、各データ取得の際の通信状況を蓄積して、通信特性を把握し、これを考慮して参照の時刻あるいは時間帯をスケジューリングすることにより、各データ及びそれを有するサーバーに対する参照に最も適した時刻あるいは時間帯での参照を実現することができる。これによって、データ収集の効率向上を図ることができる。
【００４９】
例えば、時間帯ＳＡ間はネットワーク負荷が重く参照速度が低下するサーバー群Ａ上のデータ群ａと、時間帯ＳＡ間において参照速度が高いサーバー群Ｂ上のデータ群ｂがあることが把握できれば、時間帯ＳＡ間にｂのデータを探索対象とし、時間帯ＳＡ外でａのデータを探索対象とすることにより、効率的なデータ取得が期待できる。
【００５０】
あるいは、より取得しにくいデータについては、次にハイパーリンクを選出する間隔を、より取得しやすいデータのハイパーリンクを選出する間隔よりも長く設定するなどといった制御も可能となる。
【００５１】
このように本発明によれば、データ収集の効率と速度の向上と、最新もしくはそれに近いデータの参照を実現できる。
なお、以上の各方法に係る発明は、装置に係る説明としても成立する。
ところで、上記の発明は、相当する処理を実行させるためのプログラムを格納した記憶媒体としても成立する。
【００５２】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
（第１の実施の形態）
まず、本発明の第１の実施形態について説明する。
【００５３】
図１に、本実施形態に係る情報収集装置の一構成例を示す。なお、図１に示される構成のうち、点線枠に囲まれた内側が、本実施形態に係る情報収集装置である。
【００５４】
ハイパーリンク入力装置２０１は、ネットワークロボットとは独立に存在し、ネットワークロボットの動作の発端となる初期ハイパーリンク群を入力する機能を持つ。
【００５５】
データ処理装置２０２は、ネットワークロボットは独立に存在し、ネットワークロボットが動作中に取得したデータを用いて、処理する装置である。
ネットワーク２０３は、ネットワークロボットとは独立に存在し、ネットワークロボットが通信対象とするサーバーとの通信を提供する装置である。
【００５６】
本情報収集装置は、ハイパーリンクスタック部２０４、次回更新予測時刻格納部２０５、時計部２０６、送受信部２０７、更新履歴格納部２０８、ハイパーリンク抽出部２０９を備えている。
【００５７】
ハイパーリンクスタック部２０４は、ハイパーリンクを任意数格納できるデータ構造を有する。例えば、内部にハイパーリンクを要素としてもつリスト構造を有することで実現される。
【００５８】
次回更新予測時刻格納部２０５は、ハイパーリンクとそれが指し示すデータの次回更新予測時刻を組とする構造体を持ち、その構造体の次回更新予測時刻を出力及び更新する機能をもつ。
【００５９】
時計部２０６は、動作時の現在時刻を出力する。
更新履歴格納部２０８は、ハイパーリンクとそれが指し示すデータの更新履歴からなる構造体を記録し、その構造体内の更新履歴を追加し、及び各ハイパーリンクの次回更新予測時刻をその構造体の更新履歴から算出する機能を持つ。
【００６０】
送受信部２０７は、ネットワーク２０３との送受信を行なう。
ハイパーリンク抽出部２０９は、データまたはその一部であるハイパーテキストからハイパーリンクを抽出する。
【００６１】
以下、本実施形態に係る情報収集装置の動作について説明する。
図２は、本情報収集装置の動作を示すフローチャートである。
ステップＳ２０１において、ハイパーリンク入力装置２０１は、ハイパーリンクスタック部２０４に初期ハイパーリンク群を伝送する。
【００６２】
ハイパーリンクスタック部２０４は、ステップＳ２０１またはステップＳ２１２で伝送されたハイパーリンク群のそれぞれを、次回更新予測時刻格納部２０５へ伝送する（ステップＳ２０２、Ｓ２０３）。
【００６３】
次回更新予測時刻格納部２０５は、ステップＳ２０３で伝送されたハイパーリンクが未登録のものであれば、初期時刻と組にして登録する（ステップＳ２０４、Ｓ２０５）。
【００６４】
ここで、本実施形態では、初期時刻には本情報収集装置の始動した時刻を用いるものとする。なお、初期時刻の値は、時計部２０６の出力と比較対象になり得て少なくともその時点で時計部２０６が出力する時刻よりも未来を指すものでなければ良く、例えば、時刻の最古値を用いても良い。
【００６５】
次に、ステップＳ２０２においてデータリンクスタックが空になれば、次回更新予測時刻格納部２０５は、時計部２０６から現在時刻を得る（ステップＳ２０６）。また、他の例として、次回更新予測時刻格納部２０５から時計部２０６に現在時刻を求める通知をせず、時計部２０６側から自発的に次回更新予測時刻格納部２０５へ現在時刻の情報を伝送する構成にしても良い。
【００６６】
次回更新予測時刻格納部２０５は、その対応する次回更新予測時刻がステップＳ２０６で伝送された時刻以前であるハイパーリンクの一部もしくは全部を送受信部２０７へ伝送する（ステップＳ２０７）。
【００６７】
送受信部２０７は、ネットワーク２０３との通信を行ない、ステップＳ２０７で伝送されたハイパーリンクに指し示されるデータの取得を試みる（ステップＳ２０８）。
【００６８】
データの取得にあたっては、予めある既定値を設定しておき、この既定値以上に大きいデータを取得対象とすることが、通信前もしくは通信制御中に判明している場合は、先頭から一定値までのみを実際に取得するようにしても良い。
【００６９】
また、データのうちハイパーリンクが含まれない部分は実際には取得しないことで、実際に取得するサイズを減少させるようにしても良い。
送受信部２０７は、ステップＳ２０８で取得したデータを、データ処理装置２０２へ出力するとともに、更新履歴格納部２０８及びハイパーリンク抽出部２０９へ伝送する（ステップＳ２０９）。その際、出力及び伝送の順序は問わない。
【００７０】
更新履歴格納部２０８は、ステップＳ２０９で伝送されたデータ内に最新の更新時刻の情報が存在するとき、その最新の更新時刻を抽出する（ステップＳ２１０）。
【００７１】
なお、上記ステップは、全データ内に最新の更新時刻の情報が存在することを仮定した場合であるが、全データ内に最新の更新時刻の情報が存在しない場合は、例えば、データに関する更新の有無を判定し、更新があると判断された場合に、時計部２０６からの現在時刻もしくはステップＳ２０６で得られた時刻などを、最新の更新時刻の代用としても良い。また、データ内に最新の更新時刻の情報が存在するものとしないものが混在する可能性のある場合は、例えば、まず、データ内に最新の更新時刻の情報が存在するか否か判断し、存在する場合はその最新の更新時刻を抽出し、存在しない場合は、データ内の他の情報をもとにした推定あるいは最後に参照した同一ハイパーリンクにより指し示されるデータとの比較などにより、データに関する更新の有無を判定し、更新があると判断された場合に、時計部２０６からの現在時刻もしくはステップＳ２０６で得られた時刻などを、最新の更新時刻の代用としても良い。
【００７２】
また、データがハイパーリンクの指し示す該当内容が実質的に存在しないことを示すものであるような場合がある。このような場合は、その際の最新の更新時刻は、時計部２０６からの現在時刻もしくはステップＳ２０６での時刻とする。
【００７３】
なお、実質的なデータを指し示さないハイパーリンクに関しては、更新履歴格納部２０８及び次回更新予測時刻格納部２０５からの消去をせずに、参照対象として残しておく方法がある。例えば、実質的なデータを指し示さないハイパーリンクの発生として、サーバー側でデータを更新するために一時的に取得不可となっているデータの取得を試みた場合が想定され、このような場合にはサーバー側での更新作業が完了すれば取得可能となるので、上記のように参照対象として残しておくと有効である。
【００７４】
なお、データの提供の中止あるいは長期間の中断などのために実質的なデータを指し示さないハイパーリンクが発生する場合も想定されるので、規定した期間以上、実質的なデータを指し示さないものとなったハイパーリンクを、更新履歴格納部２０８及び次回更新予測時刻格納部２０５から消去するようにしても良い。
【００７５】
また、他の例としては、実質的なデータを指し示さないハイパーリンクを、即時に更新履歴格納部２０８及び次回更新予測時刻格納部２０５から消去し、記憶容量を節約する方法が挙げられる。
【００７６】
次に、更新履歴格納部２０８は、ステップＳ２０７で送受信部２０７へ伝送されたハイパーリンクに対応する更新履歴に、上記のようにして抽出した最新の更新時刻を追加する（ステップＳ２１０）。
【００７７】
さらに、更新履歴格納部２０８は、上記の追加更新された更新履歴から、次回更新予測時刻を算出する（ステップＳ２１０）。
次回更新予測時刻は、例えば、更新履歴内のハイパーリンクに対応する最新時刻Ｔ０と、Ｔ０の直前の更新履歴に記録された時刻Ｔ１とを用いて、Ｔ０＋（Ｔ０−Ｔ１）で算出する方法がある。また、他の例として、最新からの一定数あるいは全ての記録された時刻を引数とし、統計分布関数を用いて次回更新予測時刻を算出する方法が挙げられる。その他、種々の方法が考えられる。
【００７８】
なお、情報収集開始当初のデータについては、更新履歴に記録された時刻情報が、所定の次回更新予測時刻算出方法にとって十分な数量ではない場合がある。例えば、上記のＴ０＋（Ｔ０−Ｔ１）で算出する方法では、少なくとも２つの更新時刻の情報が必要であり、最新からの一定数の記録された時刻を引数とし統計分布関数を用いて算出する方法では、少なくとも該一定数の更新時刻の情報が必要なものがある。このような場合、例えば、最新時刻Ｔ０に予め定めた定数を加えることにより次回更新予測時刻を算出し、あるいは上記一定数よりも少ない数を引数とした他の統計分布関数を用いて算出するなどの方法を取れば良い。
【００７９】
更新履歴格納部２０８は、ステップＳ２１０で算出された次回更新予測時刻を次回更新予測時刻格納部２０５へ伝送する。
次回更新予測時刻格納部２０５は、ステップＳ２０７で送受信部２０７へ伝送されたハイパーリンクに対応する先回更新予測時刻を、伝送された次回更新予測時刻に置換する（ステップＳ２１１）。
【００８０】
一方、ハイパーリンク抽出部２０９は、ステップＳ２０９で伝送されたデータからハイパーリンク群を抽出し（ステップＳ２１２）、このハイパーリンク群をハイパーリンクスタック部２０４へ伝送する。
【００８１】
ハイパーリンクスタック部２０４は、伝送されたハイパーリンク群を格納する（Ｓ２１３）。
なお、このステップＳ２１２およびＳ２１３は、ステップＳ２１０、Ｓ２１１のいずれとも独立に実行可能である。
【００８２】
次に、ステップＳ２０２へ戻り、前述のようにハイパーリンクスタック部２０４は、ステップＳ２１２で抽出されたハイパーリンク群のそれぞれについて、それが次回更新予測時刻格納部２０５に登録されたものではないときにのみ、初期時刻と組にして次回更新予測時刻格納部２０５に登録する（ステップＳ２０２〜Ｓ２０５）。
【００８３】
以降、上記したような手順が繰り返し行われる。
以上のように本実施形態によれば、各データの更新履歴情報を蓄積し、これをもとに各データの更新の特性を推定して、参照の時刻をスケジューリングすることにより、各データの更新の頻度と同程度の頻度でのデータ参照を実現することができる。
【００８４】
また、更新されていないデータに対する不要な参照を事前に抑えることができる。これによって、データ収集の効率向上を図ることができる。
（第２の実施の形態）
次に、本発明の第２の実施形態について説明する。
【００８５】
図３に、本実施形態に係る情報収集装置の一構成例を示す。なお、図３に示される構成のうち、点線枠に囲まれた内側が、本実施形態に係る情報収集装置である。
【００８６】
本情報収集装置は、ハイパーリンクスタック部３０４、次回更新予測時刻格納部３０５、時計部３０６、送受信部３０７、更新履歴格納部３０８、予想時刻変更部３１０、ハイパーリンク抽出部３０９を備えている。
【００８７】
本実施形態におけるハイパーリンクスタック部３０４、次回更新予測時刻格納部３０５、時計部３０６、送受信部３０７、更新履歴格納部３０８、ハイパーリンク抽出部３０９は、それぞれ、第１の実施形態におけるハイパーリンクスタック部２０４、次回更新予測時刻格納部２０５、時計部２０６、送受信部２０７、更新履歴格納部２０８、ハイパーリンク抽出部２０９と同様である。
【００８８】
すなわち、本実施形態に係る情報収集装置は、第１の実施形態に係る情報収集装置の構成に予想時刻変更部３１０を付加したものである。
この予想時刻変更部３１０は、送受信に要した時間差と更新履歴格納部３０８から伝送される次回更新予測時刻から、調整する次回更新予測時刻を出力するものである。
【００８９】
なお、本実施形態におけるハイパーリンク入力装置３０１、データ処理装置３０２、ネットワーク３０３は、それぞれ、第１の実施形態におけるハイパーリンク入力装置２０１、データ処理装置２０２、ネットワーク２０３と同様である。
【００９０】
以下、本実施形態に係る情報収集装置の動作について説明する。
図４は、本情報収集装置の動作を示すフローチャートである。
ステップＳ３０１において、ハイパーリンク入力装置３０１は、ハイパーリンクスタック部３０４に初期ハイパーリンク群を伝送する。
【００９１】
ハイパーリンクスタック部３０４は、ステップＳ３０１またはステップＳ３１４で伝送されたハイパーリンク群のそれぞれを、次回更新予測時刻格納部３０５へ伝送する（ステップＳ３０２、Ｓ３０３）。
【００９２】
次回更新予測時刻格納部３０５は、ステップＳ３０３で伝送されたハイパーリンクが未登録のものであれば、初期時刻と組にして登録する（ステップＳ３０４、Ｓ３０５）。
【００９３】
ここで、本実施形態では、初期時刻には本情報収集装置の始動した時刻を用いるものとする。なお、初期時刻の値は、時計部３０６の出力と比較対象になり得て少なくともその時点で時計部３０６が出力する時刻よりも未来を指すものでなければよく、例えば、時刻の最古値を用いても良い。
【００９４】
次に、ステップＳ３０２においてデータリンクスタックが空になれば、次回更新予測時刻格納部３０５は、時計部３０６から現在時刻を得る（ステップＳ３０６）。また、他の例として、次回更新予測時刻格納部３０５から時計部３０６に現在時刻を求める通知をせず、時計部３０６側から自発的に次回更新予測時刻格納部３０５へ現在時刻の情報を伝送する構成にしても良い。
【００９５】
次回更新予測時刻格納部３０５は、その対応する次回更新予測時刻がステップＳ３０６で伝送された時刻以前であるハイパーリンクの一部もしくは全部を送受信部３０７へ伝送する（ステップＳ３０７）。
【００９６】
送受信部３０７は、ネットワーク３０３との通信を行ない、ステップＳ３０７で伝送されたハイパーリンクに指し示されるデータの取得を試みる（ステップＳ３０８）。また、本実施形態では、その際に時計部３０６との通信により、送受信に要した時間の算出を行なっておく。
【００９７】
なお、第１の実施形態で述べたように、データの取得にあたっては、予めある既定値を設定しておき、この既定値以上に大きいデータを取得対象とすることが、通信前もしくは通信制御中に判明している場合は、先頭から一定値までのみを実際に取得するようにしても良い。また、データのうちハイパーリンクが含まれない部分は実際には取得しないことで、実際に取得するサイズを減少させるようにしても良い。
【００９８】
送受信部３０７は、ステップＳ３０８で取得したデータを、データ処理装置３０２へ出力するとともに、更新履歴格納部３０８及びハイパーリンク抽出部３０９へ伝送し、また、ステップＳ３０８で算出した送受信に要した時間の情報を予想時刻変更部３１０に伝送する（ステップＳ３０９）。その際、出力及び伝送の順序は問わない。
【００９９】
更新履歴格納部３０８は、ステップＳ３０９で伝送されたデータ内に最新の更新時刻の情報が存在するとき、その最新の更新時刻を抽出する（ステップＳ３１０）。
【０１００】
なお、上記ステップは、全データ内に最新の更新時刻の情報が存在することを仮定した場合であるが、全データ内に最新の更新時刻の情報が存在しない場合は、例えば、データに関する更新の有無を判定し、更新があると判断された場合に、時計部３０６からの現在時刻もしくはステップＳ３０６で得られた時刻などを、最新の更新時刻の代用としても良い。また、データ内に最新の更新時刻の情報が存在するものとしないものが混在する可能性のある場合は、例えば、まず、データ内に最新の更新時刻の情報が存在するか否か判断し、存在する場合はその最新の更新時刻を抽出し、存在しない場合は、データに関する更新の有無を判定し、更新があると判断された場合に、時計部３０６からの現在時刻もしくはステップＳ３０６で得られた時刻などを、最新の更新時刻の代用としても良い。
【０１０１】
また、データがハイパーリンクの指し示す該当内容が実質的に存在しないことを示すものであるような場合がある。このような場合は、その際の最新の更新時刻は、時計部３０６からの現在時刻もしくはステップＳ３０６での時刻とする。
【０１０２】
なお、実質的なデータを指し示さないハイパーリンクに関しては、第１の実施の形態で述べたように、更新履歴格納部３０８及び次回更新予測時刻格納部３０５からの消去をせずに、参照対象として残しておく方法、規定した期間以上、実質的なデータを指し示さないものとなったハイパーリンクを消去する方法、実質的なデータを指し示さないハイパーリンクを、即時に消去する方法などが考えられる。
【０１０３】
次に、更新履歴格納部３０８は、ステップＳ３０７で送受信部３０７へ伝送されたハイパーリンクに対応する更新履歴に、上記のようにして抽出した最新の更新時刻を追加する（ステップＳ３１０）。
【０１０４】
さらに、更新履歴格納部３０８は、上記の追加更新された更新履歴から、次回更新予測時刻を算出する（ステップＳ３１０）。
次回更新予測時刻は、例えば、更新履歴内のハイパーリンクに対応する最新時刻Ｔ０と、Ｔ０の直前の更新履歴に記録された時刻Ｔ１とを用いて、Ｔ０＋（Ｔ０−Ｔ１）で算出する方法がある。また、他の例として、最新からの一定数あるいは全ての記録された時刻を引数とし、統計分布関数を用いて次回更新予測時刻を算出する方法が挙げられる。その他、種々の方法が考えられる。
【０１０５】
なお、情報収集開始当初のデータについては、更新履歴に記録された時刻情報が、所定の次回更新予測時刻算出方法にとって十分な数量ではない場合がある。例えば、上記のＴ０＋（Ｔ０−Ｔ１）で算出する方法では、少なくとも２つの更新時刻の情報が必要であり、最新からの一定数の記録された時刻を引数とし統計分布関数を用いて算出する方法では、少なくとも該一定数の更新時刻の情報が必要なものがある。このような場合、例えば、最新時刻Ｔ０に予め定めた定数を加えることにより次回更新予測時刻を算出し、あるいは上記一定数よりも少ない数を引数とした他の統計分布関数を用いて算出するなどの方法を取れば良い。
【０１０６】
次に、更新履歴格納部３０８は、ステップＳ３１０で算出された次回更新予測時刻を予測時刻変更部３１０へ伝送する。
予想時刻変更部３１０は、ステップＳ３０９で伝送された送受信に要した時間に関し、それが予め設定してある時間値よりも大きかった場合には、ステップＳ３１０で伝送された次回更新予測時刻に対して予め設定した時間遅延値を加えて更新し、この更新後の次回更新予測時刻を次回更新予測時刻格納部３０５へ伝送する（ステップＳ３１１）。
【０１０７】
また、他の例として、次回更新予測時刻に予め設定した時間進み値（負の値）を加えることで、次回更新予測時刻の更新を遅延ではなく前倒し向きにすることが挙げられる。
【０１０８】
予想時刻変更部３１０により次回更新予測時刻を進める変更を行うか、遅延させる変更を行うかは、予めどちらかに決めておく方法と、当該次回更新予測時刻の値に応じて決めるなど、そのときの状況等に応じて決める方法が考えられる。また、次回更新予測時刻に加える変更量も、予め決めておく方法と、送受信に要した時間の程度に応じて決めるなど、そのときの状況等に応じて決める方法が考えられる。
【０１０９】
次回更新予測時刻格納部３０５は、ステップＳ３０７で送受信部３０７へ伝送されたハイパーリンクに対応する次回更新予測時刻を、ステップＳ３１１で伝送された次回更新予測時刻に置換する（ステップＳ３１２）。
【０１１０】
一方、ハイパーリンク抽出部３０９は、ステップＳ３０９で伝送されたデータからハイパーリンク群を抽出し（ステップＳ３１３）、このハイパーリンク群をハイパーリンクスタック部３０４へ伝送する。
【０１１１】
ハイパーリンクスタック部３０４は、伝送されたハイパーリンク群を格納する（Ｓ３１４）。
なお、このステップＳ３１３およびＳ３１４は、ステップＳ３１０、Ｓ３１１、Ｓ３１２のいずれとも独立に実行可能である。
【０１１２】
次に、ステップＳ３０２へ戻り、前述のようにハイパーリンクスタック部３０４は、ステップＳ３１３で抽出されたハイパーリンク群のそれぞれについて、それが次回更新予測時刻格納部３０５に登録されたものではないときにのみ、初期時刻と組にして次回更新予測時刻格納部３０５に登録する（ステップＳ３０２〜Ｓ３０５）。
【０１１３】
以降、上記したような手順が繰り返し行われる。
本実施形態では、送受信部３０７が予想時刻変更部３１０へ通信に要した時間を伝送するという形をとるが、その代わりに、送受信部３０７がデータの取得に関する通信負荷を監視する機能を持つ際、その通信負荷値を予想時刻変更部３１０へ伝送し、予想時刻変更部３１０はその通信負荷値が一定値以上であることで次回更新予測時刻の変更を行なうようにしても良い。
【０１１４】
以上のように本実施形態によれば、各データの更新履歴情報を蓄積し、これをもとに各データの更新の特性を推定して、参照の時刻をスケジューリングすることにより、各データの更新の頻度と同程度の頻度でのデータ参照を実現することができる。
【０１１５】
また、更新されていないデータに対する不要な参照を事前に抑えることができる。これによって、データ収集の効率向上を図ることができる。
また、各データ取得の際の通信状況を蓄積して、通信特性を把握し、これを考慮して参照の時刻をスケジューリングすることにより、各データ及びそれを有するサーバーに対する参照に最も適した時刻での参照を実現することができる。これによって、データ収集の効率向上を図ることができる。
【０１１６】
（第３の実施の形態）
次に、本発明の第３の実施形態について説明する。
図５に、本実施形態に係る情報収集装置の一構成例を示す。なお、図５に示される構成のうち、点線枠に囲まれた内側が、本実施形態に係る情報収集装置である。
【０１１７】
本情報収集装置は、ハイパーリンクスタック部４０４、次回更新予測時刻格納部４０５、時計部４０６、送受信部４０７、サーバー監視部４１１、サーバー通信歴格納部４１２、更新履歴格納部４０８、ハイパーリンク抽出部４０９を備えている。
【０１１８】
本実施形態におけるハイパーリンクスタック部４０４、次回更新予測時刻格納部４０５、時計部４０６、送受信部４０７、更新履歴格納部４０８、ハイパーリンク抽出部４０９は、それぞれ、第１の実施形態におけるハイパーリンクスタック部２０４、次回更新予測時刻格納部２０５、時計部２０６、送受信部２０７、更新履歴格納部２０８、ハイパーリンク抽出部２０９と同様である。
【０１１９】
すなわち、本実施形態に係る情報収集装置は、第１の実施形態に係る情報収集装置の構成にサーバー監視部４１１とサーバー通信歴格納部４１２を付加したものである。
【０１２０】
サーバー監視部４１１は、サーバー通信歴格納部４１２との入出力を行なう。
サーバー通信歴格納部４１２は、各サーバーとネットワークロボットとの送受信時刻と通信速度に関する履歴を持つ。
【０１２１】
なお、図５におけるサーバー監視部４１１から更新履歴格納部４０８への点線矢印は、ネットワークロボット内で（ここでは更新履歴格納部４０８で）、サーバー監視部４１１の算出した結果を用いる場合に対応するものである。
【０１２２】
本実施形態におけるハイパーリンク入力装置４０１、データ処理装置４０２、ネットワーク４０３は、それぞれ、第１の実施形態におけるハイパーリンク入力装置２０１、データ処理装置２０２、ネットワーク２０３と同様である。
【０１２３】
以下、本実施形態に係る情報収集装置の動作について説明する。
図６は、本情報収集装置の動作を示すフローチャートである。
ステップＳ４０１において、ハイパーリンク入力装置４０１は、ハイパーリンクスタック部４０４に初期ハイパーリンク群を伝送する。
【０１２４】
ハイパーリンクスタック部４０４は、ステップＳ４０１またはステップＳ４１７で伝送されたハイパーリンク群のぞれぞれを、次回更新予測時刻格納部４０５へ伝送する（ステップＳ４０２、Ｓ４０３）。
【０１２５】
次回更新予測時刻格納部４０５は、ステップＳ４０３で伝送されたハイパーリンクが未登録のものであれば、初期時刻と組にして登録する（ステップＳ４０４、Ｓ４０５）。
【０１２６】
ここで、本実施形態では、初期時刻には本情報収集装置の始動した時刻を用いるものとする。なお、初期時刻の値は、時計部４０６の出力と比較対象になり得て少なくともその時点で時計部４０６が出力する時刻よりも未来を指すものでなければ良く、例えば、時刻の最古値を用いても良い。
【０１２７】
次に、ステップＳ４０２においてデータリンクスタックが空になれば、次回更新予測時刻格納部４０５は、時計部４０６から現在時刻を得る（ステップＳ４０６）。また、他の例として、次回更新予測時刻格納部４０５から時計部４０６に現在時刻を求める通知をせず、時計部４０６側から自発的に次回更新予測時刻格納部４０５へ現在時刻の情報を伝送する構成にしても良い。
【０１２８】
次回更新予測時刻格納部４０５は、その対応する次回更新予測時刻がステップＳ４０６で伝送された時刻以前であるハイパーリンクの一部もしくは全部を送受信部４０７及びサーバー監視部４１１へ伝送する（ステップＳ４０７）。
【０１２９】
送受信部４０７は、ネットワーク４０３との通信を行ない、ステップＳ４０７で伝送されたハイパーリンクを指し示されるデータの取得を試みる（ステップＳ４０８）。また、本実施形態では、その際に時計部３０６との通信により、送受信に要した時間の算出を行なっておく。
【０１３０】
なお、第１の実施形態で述べたように、データの取得にあたっては、予めある既定値を設定しておき、この既定値以上に大きいデータを取得対象とすることが、通信前もしくは通信制御中に判明している場合は、先頭から一定値までのみを実際に取得するようにしても良い。また、データのうちハイパーリンクが含まれない部分は実際には取得しないことで、実際に取得するサイズを減少させるようにしても良い。
【０１３１】
送受信部４０７は、ステップＳ４０８で取得したデータを、データ処理装置４０２へ出力するとともに、更新履歴格納部４０８及びハイパーリンク抽出部４０９へ伝送する（ステップＳ４０９）。その際、出力及び伝送の順序は問わない。
【０１３２】
また、送受信部４０７は、ステップＳ４０８で算出した送受信に要した時間と取得したデータの大きさから通信速度を算出し、送信時刻とあわせてサーバー監視部４１１に伝送する（ステップＳ４１０）。
【０１３３】
なお、ステップＳ４１０とステップＳ４０９とは、実行の順序を入れ換えても良いし、並列的に実行しても良い。
サーバー監視部４１１は、ステップＳ４０７で伝送されたハイパーリンクからネットワーク上のサーバー名を抽出する（ステップＳ４１１）。
【０１３４】
なお、ステップＳ４１１は、ステップＳ４０７以降、ステップＳ４１２以前であれば、例えばステップＳ４０７直後など、どのタイミングで行なっても良い。
サーバー監視部４１１は、ステップＳ４１０で伝送された送信時刻が予め設定しておいた時間帯区内のどこに属するかを算出し、その時間帯区分番号と、ステップＳ４１０で伝送された通信速度と、ステップＳ４１１で抽出したサーバー名を、サーバー通信歴格納部４１２へ伝送する。
【０１３５】
サーバー通信歴格納部４１２は、伝送されたサーバー名と時間帯区分番号と通信速度を組として追加登録する（ステップＳ４１２）。
そして、サーバー通信歴格納部４１２は、伝送されたサーバー名と組になって登録されている通信速度の値の中で最も高速である値を示すものを選出し、これと組となっている時間帯区分番号をサーバー監視部４１１へ伝送する（ステップＳ４１３）。他の例として、同じサーバー名を持つ組について、各時間帯区分番号ごとの平均通信速度値を算出し、この平均通信速度値が最高速を示す時間帯区分番号を伝送することや、さらに各時間帯区分番号ごとの平均通信速度値の集まりを正規分布等の統計分布関数に当てはめ、分布関数上最高速を示す時間帯区分番号を算出し伝送することが挙げられる。
【０１３６】
サーバー監視部４１１は、サーバー名と上記の伝送された時間帯区分番号をデータ処理装置４０２へ伝送する（ステップＳ４１３）。なお、この処理の代わりにまたはこの処理に加えて、前述したようにサーバー監視部４１１は、サーバー名と上記の時間帯区分番号を更新履歴格納部４０８へ伝送し、更新履歴格納部４０８の次回更新予測時刻算出の引数とするようにしても良い。
【０１３７】
更新履歴格納部４０８は、ステップＳ４０９で伝送されたデータに最新の更新時刻の情報が存在するとき、その最新の更新時刻を抽出する（ステップＳ４１４）。
【０１３８】
なお、上記ステップは、全データ内に最新の更新時刻の情報が存在することを仮定した場合であるが、全データ内に最新の更新時刻の情報が存在しない場合は、例えば、データに関する更新の有無を判定し、更新があると判断された場合に、時計部４０６からの現在時刻もしくはステップＳ４０６で得られた時刻などを、最新の更新時刻の代用としても良い。また、データ内に最新の更新時刻の情報が存在するものとしないものが混在する可能性のある場合は、例えば、まず、データ内に最新の更新時刻の情報が存在するか否か判断し、存在する場合はその最新の更新時刻を抽出し、存在しない場合は、データに関する更新の有無を判定し、更新があると判断された場合に、時計部４０６からの現在時刻もしくはステップＳ４０６で得られた時刻などを、最新の更新時刻の代用としても良い。
【０１３９】
また、データがハイパーリンクの指し示す該当内容が実質的に存在しないことを示すものであるような場合がある。このような場合は、その際の最新の更新時刻は、時計部４０６からの現在時刻もしくはステップＳ４０６での時刻とする。
【０１４０】
なお、実質的なデータを指し示さないハイパーリンクに関しては、第１の実施の形態で述べたように、更新履歴格納部４０８及び次回更新予測時刻格納部４０５からの消去をせずに、参照対象として残しておく方法、規定した期間以上、実質的なデータを指し示さないものとなったハイパーリンクを消去する方法、実質的なデータを指し示さないハイパーリンクを、即時に消去する方法などが考えられる。
【０１４１】
次に、更新履歴格納部４０８は、ステップＳ４０７で送受信部４０７へ伝送されたハイパーリンクに対応する更新履歴に、上記のようにして抽出した最新の更新時刻を追加する（ステップＳ４１４）。
【０１４２】
さらに、更新履歴格納部４０８は、上記の追加更新された更新履歴から、次回更新予測時刻を算出する（ステップＳ４１４）。
次回更新予測時刻は、例えば、更新履歴内のハイパーリンクに対応する最新時刻Ｔ０と、Ｔ０の直前の更新履歴に記録された時刻Ｔ１とを用いて、Ｔ０＋（Ｔ０−Ｔ１）で算出する方法がある。また、他の例として、最新からの一定数あるいは全ての記録された時刻を引数とし、統計分布関数を用いて次回更新予測時刻を算出する方法が挙げられる。その他、種々の方法が考えられる。
【０１４３】
なお、情報収集開始当初のデータについては、更新履歴に記録された時刻情報が、所定の次回更新予測時刻算出方法にとって十分な数量ではない場合がある。例えば、上記のＴ０＋（Ｔ０−Ｔ１）で算出する方法では、少なくとも２つの更新時刻の情報が必要であり、最新からの一定数の記録された時刻を引数とし統計分布関数を用いて算出する方法では、少なくとも該一定数の更新時刻の情報が必要なものがある。このような場合、例えば、最新時刻Ｔ０に予め定めた定数を加えることにより次回更新予測時刻を算出し、あるいは上記一定数よりも少ない数を引数とした他の統計分布関数を用いて算出するなどの方法を取れば良い。
【０１４４】
ところで、前述のようにステップＳ４１３でサーバー監視部４１１から更新履歴格納部４０８にサーバー名と時間帯区分番号を伝送する場合は、例えば、該当するサーバー内のデータについての次回更新予測時刻を、上記のようにして求められた次回更新予測時刻の直後にあるこの時間帯区分番号上の時刻とするようにしても良い。
【０１４５】
更新履歴格納部４０８は、ステップＳ４１４で算出された次回更新予測時刻を次回更新予測時刻格納部４０５へ伝送する。
次回更新予測時刻格納部４０５は、ステップＳ４０７で送受信部４０７へ伝送されたハイパーリンクに対応する次回更新予測時刻を、伝送された次回更新予測時刻に置換する（ステップＳ４１５）。
【０１４６】
一方、ハイパーリンク抽出部４０９は、ステップＳ４０９で伝送されたデータからハイパーリンク群を抽出し（ステップＳ４１６）、このハイパーリンク群をハイパーリンクスタック部４０４へ伝送する。
【０１４７】
ハイパーリンクスタック部４０４は、伝送されたハイパーリンク群を格納する（Ｓ４１７）。
なお、このステップＳ４１６およびＳ４１７は、ステップＳ４１０〜Ｓ４１５のいずれとも独立に実行可能である。
【０１４８】
次に、ステップＳ４０２へ戻り、前述のようにハイパーリンクスタック部４０４は、ステップＳ４１６で抽出されたハイパーリンク群のそれぞれについて、それが次回更新予測時刻格納部４０５に登録されたものではないときにのみ、初期時刻と組にして次回更新予測時刻格納部４０５に登録する（ステップＳ４０２〜Ｓ４０５）。
【０１４９】
以降、上記したような手順が繰り返し行われる。
以上のように本実施形態によれば、各データの更新履歴情報を蓄積し、これをもとに各データの更新の特性を推定して、参照の時刻あるいは時間帯をスケジューリングすることにより、各データの更新の頻度と同程度の頻度でのデータ参照を実現することができる。
【０１５０】
また、更新されていないデータに対する不要な参照を事前に抑えることができる。これによって、データ収集の効率向上を図ることができる。
また、各データ取得の際の通信状況をサーバーと関連付けて蓄積して、通信特性を把握し、これを考慮して参照の時刻あるいは時間帯をスケジューリングすることにより、各データ及びそれを有するサーバーに対する参照に最も適した時刻あるいは時間帯での参照を実現することができる。これによって、データ収集の効率向上を図ることができる。
【０１５１】
（第４の実施の形態）
次に、本発明の第４の実施形態について説明する。
図７に、本実施形態に係る情報収集装置の一構成例を示す。なお、図７に示される構成のうち、点線枠に囲まれた内側が、本実施形態に係る情報収集装置である。
【０１５２】
図７（ａ）に示される情報収集装置は、ハイパーリンクスタック部５０４、次回更新予測時刻格納部５０５、時計部５０６、送受信部５０７、更新頻度監視部５１３、更新履歴格納部５０８、ハイパーリンク抽出部５０９を備えている。
【０１５３】
本実施形態におけるハイパーリンクスタック部５０４、次回更新予測時刻格納部５０５、時計部５０６、送受信部５０７、更新履歴格納部５０８、ハイパーリンク抽出部５０９は、それぞれ、第１の実施形態におけるハイパーリンクスタック部２０４、次回更新予測時刻格納部２０５、時計部２０６、送受信部２０７、更新履歴格納部２０８、ハイパーリンク抽出部２０９と同様である。
【０１５４】
すなわち、本実施形態に係る情報収集装置は、第１の実施形態に係る情報収集装置の構成に更新頻度監視部５１３を付加したものである。
更新頻度監視部５１３は、データの更新の間隔を監視する機能を持つ。
【０１５５】
なお、図７（ｂ）に示されるように、さらにデータ分類部５１４を付加した構成も考えられる。
本実施形態におけるハイパーリンク入力装置５０１、データ処理装置５０２、ネットワーク５０３は、それぞれ、第１の実施形態におけるハイパーリンク入力装置２０１、データ処理装置２０２、ネットワーク２０３と同様である。
【０１５６】
以下、本実施形態に係る情報収集装置の動作について説明する。
図８は、本情報収集装置の動作を示すフローチャートである。
ステップＳ５０１において、ハイパーリンク入力装置５０１は、ハイパーリンクスタック部５０４に初期ハイパーリンク群を伝送する。
【０１５７】
ハイパーリンクスタック部５０４は、ステップＳ５０１またはＳ５１５で伝送されたハイパーリンク群のそれぞれを、次回更新予測時刻格納部５０５へ伝送する（ステップＳ５０２、Ｓ５０３）。
【０１５８】
次回更新予測時刻格納部５０５は、ステップＳ５０３で伝送されたハイパーリンクが未登録のものであれば、初期時刻と組にして登録する（ステップＳ５０４、Ｓ５０５）。
【０１５９】
ここで、本実施形態では、初期時刻には本情報収集装置の始動した時刻を用いるものとする。なお、初期時刻の値は、時計部５０６の出力と比較対象になり得て少なくともその時点で時計部５０６が出力する時刻よりも未来を指すものでなければ良く、例えば、時刻の最古値を用いても良い。
【０１６０】
次に、次回更新予測時刻格納部５０５は、ステップＳ５０２においてデータリンクスタックが空ならば、時計部５０６から現在時刻を得る（ステップＳ５０６）。また、他の例として、次回更新予測時刻格納部５０５から時計部５０６に現在時刻を求める通知をせず、時計部５０６側から自発的に次回更新予測時刻格納部５０５へ現在時刻の情報を伝送する構成にしても良い。
【０１６１】
次回更新予測時刻格納部５０５は、その対応する次回更新予測時刻がステップＳ５０６で伝送された時刻以前であるハイパーリンクの一部もしくは全部を送受信部５０７へ伝送する（ステップＳ５０７）。
【０１６２】
送受信部５０７は、ネットワーク５０３との通信を行ない、ステップＳ５０７で伝送されたハイパーリンクに指し示されるデータの取得を試みる（ステップＳ５０８）。
【０１６３】
なお、第１の実施形態で述べたように、データの取得にあたっては、予めある既定値を設定しておき、この既定値以上に大きいデータを取得対象とすることが、通信前もしくは通信制御中に判明している場合は、先頭から一定値までのみを実際に取得するようにしても良い。また、データのうちハイパーリンクが含まれない部分は実際には取得しないことで、実際に取得するサイズを減少させるようにしても良い。
【０１６４】
送受信部５０７は、ステップＳ５０８で取得したデータを、データ処理装置５０２へ出力するとともに、更新履歴格納部５０８及びハイパーリンク抽出部５０９へ伝送する（ステップＳ５０９）。その際、出力及び伝送の順序は問わない。
【０１６５】
更新履歴格納部５０８は、ステップＳ５０９で伝送されたデータに最新の更新時刻の情報が存在するとき、その最新の更新時刻を抽出する（ステップＳ５１０）。
【０１６６】
なお、上記ステップは、全データ内に最新の更新時刻の情報が存在することを仮定した場合であるが、全データ内に最新の更新時刻の情報が存在しない場合は、例えば、データに関する更新の有無を判定し、更新があると判断された場合に、時計部５０６からの現在時刻もしくはステップＳ５０６で得られた時刻などを、最新の更新時刻の代用としても良い。また、データ内に最新の更新時刻の情報が存在するものとしないものが混在する可能性のある場合は、例えば、まず、データ内に最新の更新時刻の情報が存在するか否か判断し、存在する場合はその最新の更新時刻を抽出し、存在しない場合は、データに関する更新の有無を判定し、更新があると判断された場合に、時計部５０６からの現在時刻もしくはステップＳ５０６で得られた時刻などを、最新の更新時刻の代用としても良い。
【０１６７】
また、データがハイパーリンクの指し示す該当内容が実質的に存在しないことを示すものであるような場合がある。このような場合は、その際の最新の更新時刻は、時計部５０６からの現在時刻もしくはステップＳ５０６での時刻とする。
【０１６８】
なお、実質的なデータを指し示さないハイパーリンクに関しては、第１の実施の形態で述べたように、更新履歴格納部３０８及び次回更新予測時刻格納部３０５からの消去をせずに、参照対象として残しておく方法、規定した期間以上、実質的なデータを指し示さないものとなったハイパーリンクを消去する方法、実質的なデータを指し示さないハイパーリンクを、即時に消去する方法などが考えられる。
【０１６９】
次に、更新履歴格納部５０８は、ステップＳ５０７で送受信部５０７へ伝送されたハイパーリンクに対応する更新履歴に、上記のようにして抽出した最新の更新時刻を追加する（ステップＳ５１０）。
【０１７０】
さらに、更新履歴格納部５０８は、上記の追加更新された更新履歴のうち、時計部５０６が示す現在時刻以前の予め設定した時間帯にある部分を更新頻度監視部５１３へ伝送する（ステップＳ５１１）。他の例として、時計部５０６が示す現在時刻でなく、ステップＳ５０５の際の時刻を用いることが挙げられる。
【０１７１】
更新頻度監視部５１３は、ステップＳ５１１で伝送された部分的な更新履歴から、各更新間の間隔を算出し、その間隔が予め設定した値よりも低いものの回数を算出する（ステップＳ５１２）。他の例として、既にステップＳ５０７の時点で、各更新間の間隔が予め設定した値よりも低いものの回数を、更新頻度監視部５１３が算出及び保存しておき、ステップＳ５１１では更新履歴格納部５０８が、ステップＳ５１０で抽出した最新の更新時刻とその直前の更新時刻のみを更新頻度監視部５１３へ伝送し、このステップＳ５１２では、最新の更新の間隔のみを新たに追加する検査対象とすることが挙げられる。
【０１７２】
更新頻度監視部５１３は、ステップＳ５１３で算出した回数値が予め設定した値よりも大きいか否かの情報を、更新履歴格納部５０８へ伝送する（ステップＳ５１２）。ここでは、ステップＳ５１３で算出した回数値が予め設定した値よりも大きい場合、情報の内容を真とし、大きくない場合、情報の内容を偽とする。
【０１７３】
なお、図７（ｂ）に示されるように、「データの先頭から一定長の部分を切り出し、それを数種類保持することで、同一のハイパーリンクでデータが数種類交替する場合に、保持してあるデータ部分との比較を行ない、データごとの予め設定しておいた上限枠内での分類を行ない、その分類別に更新の間隔を算出する機能」を持つデータ分類部５１４を、更新履歴格納部５０８と更新頻度監視部５１３の中間に置くことで、同一のハイパーリンクでデータが数種類交替する場合に、更新の間隔の取り扱いをより緩やかな扱いとすることができる。
【０１７４】
更新履歴格納部５０８は、ステップＳ５１０で追加更新された更新履歴から、次回更新予測時刻の仮値を算出する（ステップＳ５１２）。
次回更新予測時刻の仮値は、例えば、更新履歴内のハイパーリンクに対応する最新時刻Ｔ０と、Ｔ０の直前の更新履歴に記録された時刻Ｔ１とを用いて、Ｔ０＋（Ｔ０−Ｔ１）で算出する方法がある。また、他の例として、最新からの一定数あるいは全ての記録された時刻を引数とし、統計分布関数を用いて次回更新予測時刻の仮値を算出する方法が挙げられる。その他、種々の方法が考えられる。
【０１７５】
なお、情報収集開始当初のデータについては、更新履歴に記録された時刻情報が、所定の次回更新予測時刻の仮値の算出方法にとって十分な数量ではない場合がある。例えば、上記のＴ０＋（Ｔ０−Ｔ１）で算出する方法では、少なくとも２つの更新時刻の情報が必要であり、最新からの一定数の記録された時刻を引数とし統計分布関数を用いて算出する方法では、少なくとも該一定数の更新時刻の情報が必要なものがある。このような場合、例えば、最新時刻Ｔ０に予め定めた定数を加えることにより次回更新予測時刻の仮値を算出し、あるいは上記一定数よりも少ない数を引数とした他の統計分布関数を用いて算出するなどの方法を取れば良い。
【０１７６】
更新履歴格納部５０８は、更新頻度監視部５１３から伝送された値が真である（回数値が予め設定した値よりも大きい）場合に、ステップＳ５１２で算出した次回更新予測時刻の仮値に予め設定した値を加えて次回更新予測時刻とし、偽である場合に、次回更新予測時刻の仮値をそのまま次回更新予測時刻とする（ステップＳ５１２）。他の例として、更新頻度監視部５１３から伝送された値が偽である場合は、次回更新予測時刻の仮値をそのまま次回更新予測時刻とするが、真である場合は、参照の一時停止を意味する値を次回更新予測時刻として用いる方法や、更新履歴格納部５０８と次回更新予測時刻格納部５０５と必要に応じて更新頻度監視部５１３からステップＳ５０７で送受信部５０７へ伝送されたハイパーリンクに関する登録を消去する方法が挙げられる。
【０１７７】
更新履歴格納部５０８は、ステップＳ５１２で算出された次回更新予測時刻を次回更新予測時刻格納部５０５へ伝送する。
次回更新予測時刻格納部５０５は、ステップＳ５０７で送受信部５０７へ伝送されたハイパーリンクに対応する次回更新予測時刻を、ステップＳ５１７で伝送された次回更新予測時刻に置換する（ステップＳ５１３）。
【０１７８】
一方、ハイパーリンク抽出部５０９は、ステップＳ５０８で伝送されたデータからハイパーリンク群を抽出し（ステップＳ５１４）、このハイパーリンク群をハイパーリンクスタック部５０４へ伝送する。
【０１７９】
ハイパーリンクスタック部５０４は、伝送されたハイパーリンク群を格納する（Ｓ５１６）。
なお、このステップＳ５１４およびＳ５１５は、ステップＳ５１０〜Ｓ５１３のいずれとも独立に実行可能である。
【０１８０】
次に、ステップＳ５０２へ戻り、前述のようにハイパーリンクスタック部５０４は、ステップＳ５１２で抽出されたハイパーリンク群のそれぞれについて、それが次回更新予測時刻格納部５０５に登録されたものではないときにのみ、初期時刻と組にして次回更新予測時刻格納部５０５に登録する（ステップＳ５０２〜Ｓ５０５）。
【０１８１】
以降、上記したような手順が繰り返し行われる。
以上のように本実施形態によれば、各データの更新履歴情報を蓄積し、これをもとに各データの更新の特性を推定して、参照の時刻あるいは時間帯をスケジューリングすることにより、各データの更新の頻度と同程度の頻度でのデータ参照を実現することができる。
【０１８２】
また、更新されていないデータに対する不要な参照を事前に抑えることができる。これによって、データ収集の効率向上を図ることができる。また、本実施形態によれば、頻繁に変更されるデータを監視し、そのようなデータについては、参照を遅延させたり、参照を一時停止させたり、そのハイパーリンクの情報の登録を消去して参照不可とするなど、所定の対応をとることができる。これによって、データ収集の効率向上を図ることができる。
【０１８３】
（第５の実施の形態）
次に、本発明の第５の実施形態について説明する。
図９に、本実施形態に係る情報収集装置の一構成例を示す。なお、図９に示される構成のうち、点線枠に囲まれた内側が、本実施形態に係る情報収集装置である。
【０１８４】
ここで、図中のハイパーリンク入力装置１００１は、ネットワークロボットとは独立に存在し、ネットワークロボットの動作の発端となる初期ハイパーリンク群を入力する機能を持つ。
【０１８５】
データ処理装置１００２は、ネットワークロボットとは独立に存在し、ネットワークロボットが通信対象とするサーバーとの通信を提供する装置である。
ネットワーク１００３は、ネットワークロボットとは独立に存在し、ネットワークロボットが通信対象とするサーバーとの通信を提供する装置である。
【０１８６】
次に、図１９に示す本実施形態の情報収集装置の構成について説明する。図１９のように、本情報収集装置は、ハイパーリンクスタック部１００４、次回参照時間帯格納部１００５、時計部１００６、送受信部１００７、サーバー監視部１０１１、サーバー通信歴格納部１０１２、ハイパーリンク抽出部１００９を備えている。
【０１８７】
ハイパーリンクスタック部１００４は、ハイパーリンクを任意数格納できるデータ構造を有する。
次回参照時間帯格納部１００５は、ハイパーリンクとそれが指し示すデータの次回参照時間帯区分を組とする構造体を持ち、その構造体の次回参照時間帯区分を出力及び更新する機能を持つ。
【０１８８】
時計部１００６は、動作時の現在時刻を出力する。
送受信部１００７は、ネットワーク１００３との送受信を行う。
サーバー監視部１０１１は、サーバー通信履歴格納部１０１２との入出力を行う。
【０１８９】
サーバー通信履歴格納部１０１２は、各サーバーとネットワークロボットとの送受信時間帯区分と、「通信異常」、「通信不適」、「通信適当」のいずれかの値との組からなる情報の履歴を持つ。
【０１９０】
ハイパーリンク抽出部１００９は、データまたはその一部であるハイパーテキストからハイパーリンクを抽出する。
以下、本実施形態に係る情報収集装置の動作について説明する。
【０１９１】
図１０は、本情報収集装置の動作を示すフローチャートである。
ステップＳ１００１において、ハイパーリンク入力装置１００１は、ハイパーリンクスタック部１００４に初期ハイパーリンク群を伝送する（ステップＳ１００１）。
【０１９２】
ハイパーリンクスタック部１００４は、ステップＳ１００１もしくはステップＳ１０１６で伝送されたハイパーリンク群のそれぞれを、次回参照時間帯格納部１００５へ伝送する（ステップＳ１００２、Ｓ１００３）。
【０１９３】
次回参照時間帯格納部１００５は、ステップＳ１００３で伝送されたハイパーリンクが未登録のものであれば、初期時間帯区分と組にして登録する（ステップＳ１００４、Ｓ１００５）。
【０１９４】
次に、ステップＳ１００２においてデータリンクスタックが空になれば、次回参照時間帯格納部１００５は、時計部１００６から現在時刻を得る（ステップＳ１００６）。また、他の例として、次回参照時間帯格納部（１００５）から時計部１００６に現在時刻を求める通知をせず、時計部１００６側から自発的に次回参照時間帯格納部１００５へ現在時刻の情報を伝送する構成にしても良い。
【０１９５】
次回参照時間帯格納部１００５は、ステップＳ１００６で伝送された時刻に対応する時間帯区分を持つハイパーリンクの一部もしくは全部を送受信部１００７へ伝送する（ステップＳ１００８）。
【０１９６】
送受信部１００７は、ネットワーク１００３との通信を行い、ステップＳ１００７で伝送されたハイパーリンクに指し示されているデータの取得を試みる（ステップＳ１００８）。
【０１９７】
なお、第１の実施形態で述べたように、データの取得にあたっては、予めある既定値を設定しておき、この既定値以上に大きいデータを取得対象とすることが、通信前もしくは通信制御中に判明している場合は、先頭から一定値までのみを実際に取得するようにしても良い。また、データのうちハイパーリンクが含まれない部分は実際には取得しないことで、実際に取得するサイズを減少させるようにしても良い。
【０１９８】
送受信部１００７は、サーバー監視部１０１１へ、ステップＳ１００８の結果として、通信機構が正常状態を示さない場合、あるいはその時点でのデータ参照の不能がデータによらず判明する場合、通信異常を示す情報を伝送し、上記以外の場合、通信時間と取得データのサイズから得られる通信単位サイズ当たりの通信速度を伝送する（ステップＳ１００９）。
【０１９９】
また、送受信部１００７は、ステップＳ１００８で取得したデータを、データ処理部１００２へ出力するとともに、ハイパーリンク抽出部１０１２へ伝送する（ステップＳ１０１０）。その際、出力及び伝送の順序は問わない。
【０２００】
なお、上記のステップＳ１００９とステップＳ１０１０の実行順序は、入れ替えても良いし、並列的に実行しても良い。
サーバー監視部１０１１は、ステップＳ１００９で通信単位サイズ当たりの通信速度が伝送された場合、その値が設定値以上である場合、通信不適を示す情報を、設定値以上でない場合、通信適当を示す情報を、通信異常を示す情報が伝送された場合、通信異常を示す情報を、通信履歴格納部１０１２へ伝送する（ステップＳ１０１１）。
【０２０１】
通信履歴格納部１０１２は、ステップＳ１０１１で伝送された情報をその時間帯区分と併せて通信したサーバーとの通信履歴に追加し、次回の参照に適当である時間帯区分を算出し、次回参照時間帯としてサーバー監視部１０１１へ伝送する（ステップＳ１０１２）。また、一定条件を満たす時間帯区分がない場合に、通信拒否を示す情報をサーバー監視部１０１１へ伝送するようにしても良い。
【０２０２】
サーバー監視部１０１１は、ステップＳ１０１２で伝送された時間帯区分を、次回参照時間帯格納部１００５へ伝送する。
なお、データ処理装置１００２が必要とする場合に、ステップＳ１０１２で伝送された時間帯区分もしくはステップＳ１００８を行った時間帯区分や通信単位サイズ当たりの通信速度や通信時間や取得データのサイズを、データ処理装置１００２へ出力するようにしても良い。
【０２０３】
次回参照時間帯格納部１００５は、ステップＳ１０１０で送受信部１００７へ伝送されたハイパーリンクに対応する次回参照時間帯区分を、ステップＳ１０１３で伝送された次回参照時間帯に置換する（ステップＳ１０１４）。
【０２０４】
一方、ハイパーリンク抽出部１０１２は、ステップＳ１００９で伝送されたデータからハイパーリンク群を抽出し（ステップＳ１０１５）、このハイパーリンク群をハイパーリンクスタック部１００４へ伝送する。
【０２０５】
ハイパーリンクスタック部１００４は、伝送されたハイパーリンク群を格納する（Ｓ１０１６）。
なお、このステップＳ１０１５およびＳ１０１６は、ステップＳ１０１１〜Ｓ１０１４のいずれとも独立に実行可能である。
【０２０６】
次に、ステップＳ１００２へ戻り、前述のようにハイパーリンクスタック部１００４は、ステップＳ１０１２で抽出されたハイパーリンク群のそれぞれについて、それが次回参照時間帯格納部１００５に登録されたものではないときにのみ、初期時刻と組にして次回参照時間帯格納部１００５に登録する（ステップＳ１００２〜Ｓ１００５）。
【０２０７】
以降、上記したような手順が繰り返し行われる。
以上のように本実施形態によれば、各データの更新履歴情報を蓄積し、これをもとに各データの更新の特性を推定して、参照の時間帯をスケジューリングすることにより、各データの更新の頻度と同程度の頻度でのデータ参照を実現することができる。
【０２０８】
また、更新されていないデータに対する不要な参照を事前に抑えることができる。これによって、データ収集の効率向上を図ることができる。
また、各データ取得の際の通信状況を蓄積して、通信特性を把握し、これを考慮して参照の時間帯をスケジューリングすることにより、各データ及びそれを有するサーバーに対する参照に最も適した時間帯での参照を実現することができる。これによって、データ収集の効率向上を図ることができる。
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０２０９】
【発明の効果】
本発明によれば、各データの更新履歴情報をもとに各データの参照の時刻あるいは時間帯をスケジューリングすることにより、各データの更新の頻度と同程度の頻度でのデータ参照を実現することができる。
【０２１０】
また、本発明によれば、各データの更新履歴情報をもとに各データの参照の時刻あるいは時間帯をスケジューリングすることにより、更新されていないデータに対する不要な参照を事前に抑えることができる。これによって、データ収集の効率向上を図ることができる。
【０２１１】
また、本発明によれば、各データ取得の際の通信特性をもとに各データの参照の時刻あるいは時間帯をスケジューリングすることにより、各データ及びそれを有するサーバーに対する参照に最も適した時刻あるいは時間帯での参照を実現することができる。これによって、データ収集の効率向上を図ることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る情報収集装置の構成を示す図
【図２】同実施の形態に係る情報収集装置の動作を示すフローチャート
【図３】本発明の第２の実施の形態に係る情報収集装置の構成を示す図
【図４】同実施の形態に係る情報収集装置の動作を示すフローチャート
【図５】本発明の第３の実施の形態に係る情報収集装置の構成を示す図
【図６】同実施の形態に係る情報収集装置の動作を示すフローチャート
【図７】本発明の第４の実施の形態に係る情報収集装置の構成を示す図
【図８】同実施の形態に係る情報収集装置の動作を示すフローチャート
【図９】本発明の第５の実施の形態に係る情報収集装置の構成を示す図
【図１０】同実施の形態に係る情報収集装置の動作を示すフローチャート
【図１１】従来のネットワークロボットの一構成例を示す図
【図１２】図１１のネットワークロボットの動作を示すフローチャート
【符号の説明】
２０１，３０１，４０１，５０１，１００１…ハイパーリンク入力装置
２０２，３０２，４０２，５０２，１００２…データ処理装置
２０３，３０３，４０３，５０３，１００３…ネットワーク
２０４，３０４，４０４，５０４，１００４…ハイパーリンクスタック部
２０５，３０５，４０５，５０５，１００５…次回更新予測時刻格納部
２０６，３０６，４０６，５０６，１００６…時計部
２０７，３０７，４０７，５０７，１００７…送受信部
２０８，３０８，４０８，５０８，１００８…更新履歴格納部
２０９，３０９，４０９，５０９，１００９…ハイパーリンク抽出部
３１０…予想時刻変更部
４１１，１０１１…サーバー監視部
４１２，１０１２…サーバー通信歴格納部
５１３…更新頻度監視部
５１４…データ分類部
【図１】
0003618917.tif 000002
【図２】
0003618917.tif 000003
【図３】
0003618917.tif 000004
【図４】
0003618917.tif 000005
【図５】
0003618917.tif 000006
【図６】
0003618917.tif 000007
【図７】
0003618917.tif 000008
【図８】
0003618917.tif 000009
【図９】
0003618917.tif 000010
【図１０】
0003618917.tif 000011
【図１１】
0003618917.tif 000012
【図１２】
0003618917.tif 000013