(57)【要約】【課題】情報を再取得するユーザの操作を簡略化する。【解決手段】関係解析手段１２は、所定の情報を取得するために情報提供元の装置との間で交換されたメッセージを記録したメッセージ履歴１１ａに基づき、所定の情報を取得するためのメッセージの遷移関係を解析する。解析結果は、必要に応じて関係提示・修正手段で修正が施される。再取得手順定義手段１４は、得られたメッセージの遷移関係に基づいて、所定の情報が再取得されるまでに必要なメッセージを生成し、順次送付して目的の情報を取得するための再取得手順を定義する。【選択図】図１
2010055483.tif 000002
【特許請求の範囲】
【請求項１】
所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラムにおいて、
コンピュータを、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段、
として機能させることを特徴とする情報再取得手順生成プログラム。
【請求項２】
前記関係解析手段に、前記メッセージ履歴に記録される前記メッセージを構文解析し、前記メッセージに含まれる特定データが類似する前記メッセージをまとめてノードとして抽出するとともに、前記ノード間の遷移関係をエッジとして抽出し、前記情報の遷移関係を前記ノードと前記エッジとを用いた木構造で表現させる、
ことを特徴とする請求項１記載の情報再取得手順生成プログラム。
【請求項３】
前記コンピュータを、さらに、
前記関係解析手段によって解析された前記情報の遷移関係を前記ノードと前記エッジを用いた木構造で表現した関係図を生成して前記ユーザに提示するとともに、前記ユーザからの修正指示が入力されたときは前記修正指示に基づいて前記情報の遷移関係及び前記関係図を修正する関係提示・修正手段、
として機能させることを特徴とする請求項２記載の情報再取得手順生成プログラム。
【請求項４】
前記関係提示・修正手段に、前記ノードが選択され、前記エッジによって表される前記ノード間の遷移関係を修正する指示が入力されたときは、選択された前記ノードに対する子孫ノードを含めて前記ノード間の遷移関係を修正させる、ことを特徴とする請求項３記載の情報再取得手順生成プログラム。
【請求項５】
所望の情報を再取得する手順を生成する情報再取得手順生成装置において、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段と、
前記記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段と、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段と、
を有することを特徴とする情報再取得手順生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報再取得手順生成プログラム及び情報再取得手順生成装置に関し、特に所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラム及びその情報再取得手順生成装置に関する。
【背景技術】
【０００２】
ワールドワイドウェブ（World Wide Web；以下、ＷＷＷとする）上には、さまざまな情報を提供する膨大な数のＷｅｂページが公開されている。この中から所望の情報を提供するＷｅｂページを検出するための手法として、一般的には検索エンジンが用いられる。また、Ｗｅｂページはリンクによって関連付けられており、リンクを辿って所望のＷｅｂページを見つけることもできる。こうして検出されたＷｅｂページには、後で再取得したい情報もある。その要求を満たす最も単純な方法の一例として、Ｗｅｂブラウザのブックマーク機能がある。ブックマーク機能とは、何度も訪れるＷｅｂサイトのＵＲＬ（Uniform Resource Locator）を指定により予め記憶しておく機能である。そして、ある操作を行うと記憶されたＵＲＬを読み出し、そのＵＲＬのＷｅｂサイトから、Ｗｅｂページを再取得するという方法である。
【０００３】
しかし、Ｗｅｂページの中には、ブックマーク機能のように単純な情報再取得手順では再取得できないものも多くある。例えば、フォーム認識により認証を受けた後でないと取得できないようにアクセス制限がかけられているＷｅｂページがある。このようなＷｅｂページでは、取得するためには複数のリクエストが必要となるが、ブックマーク機能では特定のＵＲＬを1回だけリクエストすることしかできないため、再取得できない。
【０００４】
そこで、操作履歴に基づいて、ユーザが行ったリクエストを順次再現するための通信定義情報を生成しておき、この通信定義情報に基づいてリクエストを順次送ることによって、ユーザが再取得を望むＷｅｂページを提供する情報の再生処理方法がある（例えば、特許文献１参照）。
【特許文献１】特開２００６−１９００３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来の操作履歴に基づいて情報再取得手順を生成する情報再取得手順生成方法では、定義される情報の再取得手順にはユーザが実際に行った手順がそのまま反映されるため、最適化されていないという問題点があった。
【０００６】
例えば、「Ａ」「Ｂ」「Ｃ」「Ｄ」という４つのＷｅｂページがあり、「Ａ」と「Ｂ」、「Ｂ」と「Ｃ」、「Ｂ」と「Ｄ」はリンクでつながっている場合について考える。「Ｃ」を開くためには、「Ａ」、「Ｂ」、「Ｃ」の順にリクエストする必要がある。同様に、「Ｄ」を開くためには、「Ａ」、「Ｂ」、「Ｄ」の順にリクエストする必要がある。この場合、「Ｄ」を開くための最短の操作手順は、リクエストを矢印で表し、「→Ａ→Ｂ→Ｄ」となる。しかし、ユーザは常に最短の操作手順で呼び出しを行うとは限らない。例えば、ユーザが途中で「Ｃ」を参照し、続いて「Ｄ」を参照し、操作履歴に「→Ａ→Ｂ→Ｃ→Ｂ→Ｄ」と残っていたとする。この場合、「Ｄ」を再取得ための操作手順は、操作履歴に基づいて、「→Ａ→Ｂ→Ｃ→Ｂ→Ｄ」という手順が登録されてしまう。
【０００７】
このように従来の方法では、よりリクエスト回数の少ない手順での操作が定義される最適化がなされていなかった。
本発明はこのような点に鑑みてなされたものであり、情報を再取得するユーザの操作を簡略化するとともに、最適化された情報再取得手順を生成することが可能な情報再取得手順生成プログラム及び情報再取得手順生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、コンピュータを、関係解析手段及び再取得手順定義手段として機能させ、所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラムが提供される。関係解析手段は、所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段から、メッセージ履歴を読み出し、メッセージ履歴に基づいてメッセージによって取得される情報の遷移関係を解析する。再取得手順定義手段は、関係解析手段によって解析された情報の遷移関係に基づいて、所定の情報が再取得されるまでに必要なメッセージを生成して送付する再取得手順を定義する。
【０００９】
このような情報再取得手順生成プログラムをコンピュータが実行すると、所定の情報を取得するために情報提供元の装置との間で交換されたメッセージを記録したメッセージ履歴に基づき、メッセージによって取得された情報の遷移関係が解析される。そして、解析によって得られた情報の遷移関係に基づいて、所定の情報が再取得されるまでに必要なメッセージを生成して送付する再取得手順が定義される。
【００１０】
また、上記課題を解決するために、上記処理手段と同様に機能する処理手段を有する情報再取得手順生成装置が提供される。
【発明の効果】
【００１１】
開示の情報再取得手順生成プログラム及び情報再取得手順生成装置によれば、所望の情報を取得するために交換されたメッセージ履歴が解析され、その情報を取得するために必要なメッセージを生成し、順に送付する再取得手順が定義される。定義される手順は、解析に基づいて、必要なメッセージのみを送付する手順に最適化されている。定義された再取得手順を実行させれば、所望の情報を自動的に再取得することが可能となり、情報を再取得するユーザの操作を簡略化することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。
【００１３】
情報再取得手順生成装置１０は、記憶手段１１、関係解析手段１２、関係提示・修正手段１３及び再取得手順定義手段１４を有する。各処理手段は、コンピュータが、情報再取得手順生成プログラムを実行することにより、その処理機能を実現する。
【００１４】
記憶手段１１には、メッセージ履歴１１ａと、再取得手順定義情報１１ｂとが格納されている。メッセージ履歴１１ａには、所定の情報が提供されるまでに、この所定の情報の情報提供元装置と、情報の提供を受けるクライアントとの間で交換された一連のメッセージが時系列に記録されている。メッセージには、クライアント側が情報を要求するリクエストと、これに対する情報提供元装置のレスポンスとが含まれる。再取得手順定義情報１１ｂには、再取得手順定義手段１４が生成した所定の情報を再取得するために必要な最小限のメッセージが、送付順とともに定義されている。
【００１５】
関係解析手段１２は、記憶手段１１に格納されるメッセージ履歴１１ａを読み出し、メッセージに基づいて、情報の遷移関係を解析する。例えば、所定の情報を呼び出すメッセージをノード、そのノード間の遷移関係をエッジとする木構造によって、情報の遷移関係を表す。ノードは、そこに分類されたメッセージを情報の提供元装置との間で交換することによって得られる情報と対応付けることができ、情報の遷移関係は、ノード（またはメッセージ）の遷移関係と言い換えることができる。
【００１６】
メッセージ履歴１１ａには、ユーザの行った操作がそのまま記録されており、必ずしも最適な手順で情報の取得がなされているわけではない。しかし、同一もしくは同様の情報を取得する場合には、メッセージ履歴１１ａには同一または類似するメッセージが記録される。そこで、メッセージ履歴１１ａに記録される個々のメッセージを構文解析し、メッセージに共通的に出現する特定データを抽出する。そして抽出された特定データに基づいて、類似または同一のメッセージをまとめ、１つのノードを生成する。具体的には、構文解析によって、メッセージのＵＲＬや、リクエストメソッド、レスポンスステータスコードなどを特定データとして抽出する。そして、抽出された特定データによってメッセージを分類し、分類ごとにノードを付与する。そして、同じノードに分類されたうちの１つを代表メッセージに設定し、ノード情報を生成する。次に、得られたノード情報に基づいて、代表メッセージを呼び出したメッセージの属するノードを特定し、親ノードとする。こうして特定された親ノードと子ノードの親子関係をエッジ情報にまとめる。こうして、同一もしくは類似するメッセージ群をノード、そのノード間の遷移関係をエッジとする木構造で表現されるメッセージの遷移関係情報が生成される。遷移関係情報は、関係提示・修正手段１３へ出力される。
【００１７】
関係提示・修正手段１３は、遷移関係情報を取得し、これに基づいてメッセージの遷移関係を表す関係図をユーザに提示する。また、修正要求があれば関係図及び遷移関係情報を修正する。例えば、関係解析手段１２において抽出されたノードとエッジに基づいて、メッセージの遷移関係を木構造の関係図で表示装置に表示させる。ユーザは、表示された関係図でメッセージの遷移関係を確認することができる。そしてメッセージの遷移関係を変更したいときは、修正要求を行う。関係提示・修正手段１３は、ユーザからの修正要求を受け付けると、要求に基づいて情報の遷移関係を修正し、これに合わせて修正された関係図を再提示する。このような手順が繰り返されて、木構造で表現されるメッセージの遷移関係情報が確定される。
【００１８】
再取得手順定義手段１４は、関係提示・修正手段１３によって確定されたメッセージの遷移関係情報に基づいて、所定の情報を再取得するために必要なメッセージを特定し、再取得手順を定義する。例えば、ノードの遷移関係が木構造で表されているときは、所望の情報に対応するノードへ至る経路を辿り、親ノードを順次検出する。そして、親ノードに対応する代表メッセージに基づき、所望の情報を再取得するまでのメッセージと送付順を手順として定義し、再取得手順定義情報１１ｂを生成する。例えば、再取得手順定義情報１１ｂは、所望の情報を再取得するための処理をコンピュータに実行させる情報再取得プログラムの形式で生成される。
【００１９】
このような構成の情報再取得手順生成装置１０によれば、関係解析手段１２は、記憶手段１１に格納されるメッセージ履歴１１ａを読み出し、記録されるメッセージを構文解析して類似または同一のメッセージ群を１つのノードにまとめる。各ノードには、代表となる代表メッセージを設定しておく。また、各ノードの親ノードを検出して、ノードの遷移関係（木構造）をエッジとして抽出する。こうして、ノードとエッジとによって表されるメッセージの遷移関係情報が生成される。関係提示・修正手段１３は、メッセージの遷移関係情報に基づき、メッセージの遷移関係を木構造で表現した関係図をユーザに提示する。これにより、ユーザは、視覚的にメッセージの遷移関係を把握することができる。そして、修正したい場合には、修正要求を行う。ユーザによる修正要求があった場合には、関係提示・修正手段１３が、修正要求に応じてメッセージの遷移関係情報を修正し、ユーザに提示している関係図を更新する。そして、再取得手順定義手段１４は、こうして修正された遷移関係情報に基づき、所望の情報を再取得する再取得手順を定義し、再取得手順定義情報１１ｂが生成される。再取得手順定義情報１１ｂは、その処理手順をコンピュータに実行させるプログラムの形式で生成されてもよい。
【００２０】
こうして生成された再取得手順定義に従って情報取得装置がリクエストを順次行うか、あるいは、情報取得装置に生成された処理プログラムを実行させることにより、所望の情報を自動的に再取得することが可能となる。これにより、情報を再取得しようとするユーザの操作を簡略化することができる。なお、類似もしくは同一のメッセージは１つのノードにまとめられ、メッセージの遷移関係はノード単位で解析される。したがって、同一もしくは類似の情報が繰り返し取得されたような場合でも、遷移関係情報には、１つのノードの遷移関係として定義される。これにより、遷移関係情報に基づいて、所望の情報を得るために最適な手順を提供することが可能となる。
【００２１】
以下、実施の形態を、Ｗｅｂページを再取得するための手順生成に適用した場合を例に図面を参照して詳細に説明する。
図２は、実施の形態の情報取得システムの構成を示した図である。
【００２２】
情報取得システムでは、Ｗｅｂページの再取得手順を生成する情報再取得手順生成装置１００と、Ｗｅｂページを要求するクライアント２００、Ｗｅｂページを提供する提供元装置であるＷＷＷサーバ３００、及びクライアント２００とＷＷＷサーバ３００との間のメッセージを中継する中継装置４００が、ネットワークを介して接続する。
【００２３】
ＷＷＷサーバ３００は、予め決められた形式に従って送られてきたＷｅｂページを要求するメッセージに基づいて、対応するＷｅｂページの情報を要求元に提供する。
クライアント２００は、ＷＷＷサーバ３００からＷｅｂページの提供を受ける装置で、ＷＷＷブラウザ２１０及び再取得プログラム（記憶部）２２０を有する。ＷＷＷブラウザ２１０は、Ｗｅｂページを閲覧するための処理を行う。予め決められた所定の手順でＷＷＷサーバ３００へアクセスし、所望のＷｅｂページの情報を取得し、これを図示しない出力装置に表示・再生する。このとき、このＷｅｂページを再取得する手順を実行するための再取得プログラムがあったときは、再取得プログラム（記憶部）２２０に格納されるこの再取得プログラムを実行し、Ｗｅｂページの情報を再取得する。再取得プログラム（記憶部）２２０には、情報再取得手順生成装置１００が生成した、任意のＷｅｂページを再取得する手順を実行するための再取得プログラムが格納される。また、クライアント２００では再取得プログラムを実装せず、情報再取得手順生成装置１００に再取得を依頼して情報を得るようにしてもよい。
【００２４】
中継装置４００は、メッセージを中継する中継処理部４１０及びメッセージ履歴を記憶するメッセージ履歴（記憶部）４２０を有する。中継処理部４１０は、クライアント２００から取得したリクエストをＷＷＷサーバ３００へ中継し、ＷＷＷサーバ３００からのレスポンスをクライアント２００へ返す。このとき、中継したリクエスト及びレスポンスに関する情報をメッセージ履歴として残し、メッセージ履歴（記憶部）４２０に格納する。情報再取得手順生成装置１００から要求があったときには、メッセージ履歴（記憶部）４２０からメッセージ履歴を読み出して提供する。
【００２５】
情報再取得手順生成装置１００は、各種情報を記憶する記憶部１１０、メッセージの遷移関係を表す木構造を生成する木構造生成部１２０、木構造の表示と訂正を行う木構造表示・修正部１３０、及び情報再取得手順を実行するプログラムを生成するプログラム生成部１４０を有する。
【００２６】
記憶部１１０は、ノード情報表１１１、エッジ情報表１１２及び再取得プログラム１１３を記憶する。ノード情報表１１１及びエッジ情報表１１２は、メッセージの遷移関係情報であり、メッセージの遷移関係を木構造で表したときのノードとエッジに関する情報である。ノード情報表１１１には、Ｗｅｂページを取得するメッセージの遷移関係を表す木構造において、各ノードに抽出されたメッセージに関する情報が記録される。エッジ情報表１１２には、各ノードの親ノードを指定する情報が記録される。再取得プログラム１１３は、指定されたＷｅｂページを再取得する再取得手順を実行させるために生成されたプログラムである。各情報の詳細は後述する。
【００２７】
木構造生成部１２０は、ノード抽出部１２１及びエッジ抽出部１２２を有し、関係解析手段として機能する。Ｗｅｂページの遷移関係を木構造で捉えるため、メッセージ履歴に記録されるメッセージを解析し、ノード抽出部１２１はノード、エッジ抽出部１２２はエッジを抽出する。
【００２８】
ノード抽出部１２１は、中継装置４００からメッセージ履歴を取得し、構文解析を行って特定データを抽出する。例えば、特定データとしてＵＲＬなどを抽出し、ＵＲＬが同じメッセージなど、似たもの同士を１つのノードに分類する。ここでは、ＵＲＬ、リクエストメソッド、レスポンスステータスコード、レスポンスのメディアタイプ、ＨＴＭＬの場合にはレスポンスタイトル、のすべてが一致するか否かで分類する。そして分類ごとにノードＩＤを付与し、ノード情報表１１１に登録する。また、各分類（ノード）に属するメッセージから１つのメッセージを選択し、代表メッセージとする。例えば、ノードに分類されたメッセージ群のうち、最初に発行されたメッセージを代表メッセージに設定する。
【００２９】
エッジ抽出部１２２は、ノード抽出部１２１で抽出されたノード間の関係を解析する。そして、各ノードについて、代表メッセージの発行元となったメッセージを推測し、それが含まれるノードを親ノードに設定する。すなわち、その間にエッジを引く。各ノードには、必ず１つの親ノードを持つように設定を行う。メッセージ履歴から親ノードが検出されない場合は、仮想的な空白ページ（実際には呼び出されないページ）を親ノードとする。なお、発行元の推測は、メッセージ履歴を当該代表メッセージよりも前に発行されたメッセージを順に検索して行う。また、推測の方法は様々な方法があり、システムに応じて適宜選択される。例えば、発行リクエストの特定データが、発行元のレスポンスに含まれているか否かで判定する方法が考えられる。また、発行リクエストのＵＲＬが発行元候補のレスポンスのリンク群に含まれているか否かで判定することもできる。他に、発行リクエストのメソッド、リファラ（referer）ヘッダ、ボディ（パラメータ）、発行元候補のレスポンスのロケーションヘッダ、フォーム、発行リクエストのＵＲＬなどを判定材料に使うことが考えられる。ここでは、発行元のＵＲＬが発行元候補のレスポンスのロケーションヘッダ及びリンク群に含まれているか否かで判定する。抽出されたエッジは、エッジ情報表１１２に登録する。これにより、空白ページを根とするメッセージ、もしくはメッセージによって呼び出されるＷｅｂページの遷移関係がエッジ情報表１１２に登録される。
【００３０】
木構造表示・修正部１３０は、木構造表示部１３１及び木構造修正部１３２を有し、関係提示・修正手段として機能する。木構造表示部１３１は、Ｗｅｂページ（メッセージ）の遷移関係を木構造で表示し、木構造修正部１３２は、入力指示に基づいてその木構造を修正する。木構造表示部１３１は、木構造生成部１２０で生成されたノード情報表１１１及びエッジ情報表１１２に基づいてメッセージ遷移関係を木構造で表示する。ここで、木構造は、ＧＵＩ（Graphical User Interface）を用いて表示される。木構造修正部１３２は、ユーザからの指示が入力されると、指示に従ってノード情報表１１１及びエッジ情報表１１２を書き換える。
【００３１】
プログラム生成部１４０は、再取得手順定義手段として機能する。木構造表示・修正部１３０で修正されたメッセージの遷移関係を表すノード情報表１１１及びエッジ情報表１１２に基づいて、所望のＷｅｂページを再取得するための手順を定義し、再取得プログラムを生成する。例えば、木構造の根ノードから、目的の情報を取得するメッセージが含まれるノードまでを順に辿り、ノードの代表メッセージに基づくリクエストメッセージを生成し、生成されたリクエストメッセージを順に送付する手順を定義する。
【００３２】
ここで、情報再取得手順生成装置１００のハードウェア構成について説明する。
図３は、情報再取得手順生成装置のハードウェア構成例を示すブロック図である。
情報再取得手順生成装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、及び通信インタフェース１０６が接続されている。
【００３３】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションのプログラムが格納される。グラフィック処理装置１０４には、モニタ１０８が接続されており、ＣＰＵ１０１からの命令に従って画像をモニタ１０８の画面に表示させる。入力インタフェース１０５には、キーボード１０９ａやマウス１０９ｂが接続されており、キーボード１０９ａやマウス１０９ｂから送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、ネットワーク５００に接続されており、ネットワーク５００を介してクライアント２００や、中継装置４００との間でデータの送受信を行う。
【００３４】
このようなハードウェア構成によって、情報再取得手順生成装置１００の処理機能を実現することができる。なお、図３には、情報再取得手順生成装置１００のハードウェア構成を示したが、クライアント２００、ＷＷＷサーバ３００及び中継装置４００のハードウェア構成も同様である。
【００３５】
次に、このような情報再取得手順生成装置１００の動作及び情報再取得手順生成方法について、具体例を用いて説明する。
情報再取得手順生成装置１００は、Ｗｅｂページ要求時に、クライアント２００とＷＷＷサーバ３００間で交換されたメッセージが記憶されるメッセージ履歴に基づいてユーザが所望するＷｅｂページの再取得手順を解析する。
【００３６】
図４及び図５は、メッセージ履歴の一例を示した図である。図４は、メッセージ履歴の一例の前半部分、図５は、メッセージ履歴の一例の後半部分を示している。
なお、図は、ＨＴＴＰ（Hyper Text Transfer Protocol）を用いたメッセージの履歴である。便宜的に、図４をＨＴＴＰメッセージ履歴４２００ａ、図５をＨＴＴＰメッセージ履歴４２００ｂとするが、連続する１つのテーブルである。
【００３７】
ＨＴＴＰメッセージ履歴４２００ａ，４２００ｂは、メッセージが得られた順に従ってリクエスト４２０１と、レスポンス４２０２の組が記録されている。
順番は、メッセージが得られた時間的順序であり、番号が若いほど前の時間に得られたメッセージになる。リクエスト４２０１には、クライアント２００からＷＷＷサーバ３００に向けて送信されたリクエストメッセージが記録される。レスポンス４２０２には、リクエストに対しＷＷＷサーバ３００からクライアント２００に向けて送信されたレスポンスメッセージが記録される。
【００３８】
図の例では、クライアント２００からのログイン要求（ＰＯＳＴ  ／ｌｏｇｉｎ  ＨＴＴＰ／１．０）が受け付けられ（順番１）、その後、メニュー要求（ＧＥＴ  ／ｍｅｎｕ  ＨＴＴＰ／１．０）が発行されている（順番２）。そして、メニューから機能１の情報の要求（ＧＥＴ  ／ｆ１  ＨＴＴＰ／１．０）が発行されている（順番３）。さらに、再び、メニュー要求（ＧＥＴ  ／ｍｅｎｕ  ＨＴＴＰ／１．０）が発行され（順番４）、その後、メニューから機能２の情報の要求（ＧＥＴ  ／ｆ２  ＨＴＴＰ／１．０）が発行されている（順番５）。なお、（）内の順番は、ＨＴＴＰメッセージ履歴４２００ａ，４２００ｂの「順番」に相当する。
【００３９】
木構造生成部１２０では、このＨＴＴＰメッセージ履歴４２００のリクエスト４２０１のリクエストメッセージと、レスポンス４２０２のレスポンスメッセージとを順番に解析し、メッセージの遷移関係を表した木構造情報（ノード情報表１１１とエッジ情報表１１２）を得る。
【００４０】
ノード抽出部１２１は、リクエストメッセージとレスポンスメッセージから特定データを抽出し、比較してメッセージをノードに分類する。ここでは、ＵＲＬ、リクエストメソッド、レスポンスステータスコード、レスポンスのメディアタイプ、レスポンスのタイトル（ＨＴＭＬの場合）、が全て一致するものを同じノードに分類する。具体的には、まず、メッセージを識別するために、それぞれのメッセージにメッセージＩＤを付与する。図の例では、ＨＴＴＰメッセージ履歴４２００ａの順番１にメッセージＩＤのＭ１、順番２にＭ２、ＨＴＴＰメッセージ履歴４２００ｂの順番３にＭ３、順番４にＭ４、順番５にＭ５を割り当てる。続いて、Ｍ１からＭ５をノードに分類する。Ｍ２とＭ４は、ＵＲＬ（ｈｔｔｐ://ｅｘａｍｐｌｅ.ｃｏｍ/ｍｅｎｕ）、リクエストメソッド（ＧＥＴ）、レスポンスステータスコード（２００）、が共通している。一部図示していない、レスポンスのメディアタイプ（ｔｅｘｔ/ｈｔｍｌ）及びタイトル（メニュー）も共通しているとすると、これらは同じノードに分類される。一方、残りのＭ１，Ｍ３，Ｍ５はＵＲＬなどがそれぞれ異なるため、互いに異なるノードに分類される。
【００４１】
こうして割り当てられたノードを登録したノード情報表１１１が生成される。図６は、ノード情報表の一例である。
ノード情報表１１１０は、ＨＴＴＰメッセージ履歴４２００ａ，４２００ｂを上記のように解析して生成されたものである。ノード情報表１１１０は、メッセージＩＤ１１１１、リクエスト１１１２、レスポンス１１１３、ノードＩＤ１１１４、及び代表１１１５の各情報項目が登録される。
【００４２】
メッセージＩＤ１１１１は、ＨＴＴＰメッセージ履歴４２００ａ，４２００ｂに記録される時刻順に設定されるメッセージ識別符号である。リクエスト１１１２は、ＨＴＴＰメッセージ履歴４２００ａ，４２００ｂに記録されるリクエストメッセージである。レスポンス１１１３は、ＨＴＴＰメッセージ履歴４２００ａ，４２００ｂに記録されるレスポンスメッセージである。ノードＩＤ１１１４には、ノード抽出部１２１によって付与されたノードＩＤが登録される。代表１１１５には、各メッセージが代表メッセージであるか否かが登録される。図の例では、代表にのみ丸（○）が登録されている。なお、代表メッセージは、同じノードに分類されたメッセージのうち、メッセージＩＤの番号が最も若いもの（時間的に最も早い時点で発行されたもの）が選択される。図の例では、メッセージＭ１はノードＮ１に分類された代表メッセージである。メッセージＭ２とメッセージＭ４は、ともにノードＮ２に分類されるが、代表メッセージはメッセージＩＤの番号の若いメッセージＭ２になっている。同様に、メッセージＭ３はノードＮ３、メッセージＭ５はノードＮ４に分類され、いずれも代表メッセージに設定されている。
【００４３】
続いてエッジ抽出部１２２が、ノードの親子関係を推測する。まず、空白ページに相当するノードのノードＩＤを「Ｎ０」とする。このノードＮ０は、どのメッセージも分類されないノードである。次に、ノードＮ０以外の各ノードの親ノードを決め、その情報をエッジ情報表１１２に登録する。
【００４４】
ここでは、発行リクエストのＵＲＬが、発行元候補のレスポンスのロケーションヘッダ及びリンク群に含まれているか否かで判定する。また、発行元候補は、このリクエストよりも前に発行されたメッセージとする。図の例では、ノードＮ１に分類されたメッセージＭ１は、それより前に発行されたメッセージがないので、親ノードはノードＮ０が設定される。次に、ノードＮ２に分類されたメッセージＭ２の発行元候補は、メッセージＭ２より前に発行されたメッセージＭ１（ノードＮ１）となる。ここで、メッセージＭ２の発行リクエストのＵＲＬ（ｈｔｔｐ://ｅｘａｍｐｌｅ.ｃｏｍ/ｍｅｎｕ）と、発行元候補のレスポンスのロケーションヘッダに含まれているＵＲＬとは同じである。そこで、ノードＮ２の親ノードには、ノードＮ１が設定される。なお、もしここで該当するメッセージがなかった場合、親ノードにはノードＮ０が設定される。以下、順次解析が行われ、各ノードの親ノードが決定され、エッジ情報表１１２が生成される。
【００４５】
図７は、エッジ情報表の一例である。
エッジ情報表１１２０は、ノード情報表１１１０に登録される各ノードについて、上記のように解析して決定された親ノードが登録される。エッジ情報表１１２０には、ノードＩＤ１１２１と、そのノードＩＤ１１２１に登録されるノードに対する親ノードの親ノードＩＤ１１２２と、が登録される。ノードＩＤ１１２１に登録されるＩＤは、ノード情報表１１１０のノードＩＤ１１１４に登録されるＩＤと同じである。親ノードＩＤ１１２２には、ノードＩＤ１１２１に登録されるノードの発行元である親ノードのノードＩＤが登録される。図の例では、ノードＮ１の親ノードはノードＮ０、ノードＮ２の親ノードはノードＮ１、そして、ノードＮ３とノードＮ４の親ノードはノードＮ２という親子関係を有することが登録されている。
【００４６】
こうして木構造生成部１２０によってノード情報表１１１０と、エッジ情報表１１２０とが生成される。続いて、木構造表示・修正部１３０によってメッセージ遷移関係を表す木構造の表示と修正処理が行われる。木構造表示部１３１では、ノード情報表１１１とエッジ情報表１１２とに基づいて、メッセージ遷移関係を表すツリー表示画面を表示する。
【００４７】
図８は、ツリー表示画面の一例である。図の例は、ノード情報表１１１１と、エッジ情報表１１１２とに基づく表示画面である。
ツリー表示画面６１０には、各ノードを表すアイコン、ノードＮ０（６１１）、ノードＮ１（６１２）、ノードＮ２（６１３）、ノードＮ３（６１４）、ノードＮ４（６１５）が各ノードの親子関係に基づいて配置されている。以下の説明では、ノード名とともに（）内に番号が付されているときは、番号によって指示される表示画面上のアイコンを表す。図の例では、最も左に木構造の頂点となる根ノード、ノードＮ０（６１１）が表示される。そして、ノードＮ０を親ノードとする子ノードがその右隣に配置される。ここでは、ノードＮ０を親ノードとするノードＮ１（６１２）が配置される。同様に、エッジ情報表１１２０に基づき、ノードＮ１を親ノードとするノードＮ２（６１３）、ノードＮ２を親ノードとするノードＮ３（６１４）と、ノードＮ４（６１５）が順に配置される。また、エッジ情報表１１１０に示された親ノードから子ノードの方向にエッジ（図では矢印）が表示される。
【００４８】
また、ノードＮ０（６１１）を除くノードのアイコンについては、そこに分類されているメッセージ群をリスト形式（コンボボックス）で表示し、代表メッセージを一番上に表示しておく。このアイコンは、メッセージの種別に応じて形や色を変えてもよい。図の例では、代表メッセージがＨＴＭＬの場合には四角形で表示され、それ以外の場合は楕円で表示されている。
【００４９】
ノードＮ０（６１１）を除く各ノードのアイコンはマウスなどで選択できるようになっており、選択されると、選択中のノードの代表メッセージの詳細を別途表示する。図の例では、ノードＮ２（６１３）が選択され、その代表メッセージの詳細画面６１６が表示されている。ここでは、代表メッセージＭ２によって取得されたＨＴＭＬファイルに基づく表示画面が表示されている。これにより、メッセージによって取得された情報の把握を容易にすることができる。
【００５０】
このように、メッセージの遷移関係を木構造で表示することにより、ユーザはメッセージの遷移関係を容易に把握することができる。図の例では、ノードＮ３の情報は、ノードＮ１、ノードＮ２と遷移することによって得られることがわかる。言い換えれば、代表メッセージＭ１、代表メッセージＭ２、代表メッセージＭ３の順にメッセージが送付されて、メッセージＭ３に対応する情報が得られることがわかる。同様に、ノードＮ４の情報も、ノードＮ１、ノードＮ２と遷移することによって得られることがわかる。メッセージの送付手順としては、代表メッセージＭ１、代表メッセージＭ２、代表メッセージＭ５の順になる。
【００５１】
次に、この木構造を修正する場合について説明する。ここでは、ノードが選択されたとき、各ノードに対する修正操作用のメニュー（以下、修正メニューとする）を、ノード上でのポップアップメニューとして表示する。ただし、ノードＮ０は修正することができない。修正メニュー６１７では、「このノード以下を削除」「このノードのメッセージを移動」「このノードの親ノードを変更」という修正指示を選択することができる。
【００５２】
以下、それぞれの修正指示が選択された場合について説明する。
まず、修正メニュー６１７から、「このノードのメッセージを移動」が選択された場合について説明する。
【００５３】
メッセージの移動が選択されると、メッセージの分類（振り分けられたノード）を修正するため、メッセージ分類修正画面が表示される。図９は、メッセージ分類修正画面の一例を示した図である。
【００５４】
メッセージ分類修正画面６２０は、図８のツリー表示画面６１０においてノードＮ２が選択され、「このノードのメッセージを移動」が選択されたときの表示画面である。
メッセージ分類修正画面６２０には、移動するメッセージ欄６２１と、移動先欄６２２、及びＯＫボタン６２３が表示される。移動するメッセージ欄６２１には、移動が指定されたノードに属するメッセージのＩＤが表示される。この例では、ノードＮ２に分類されたメッセージＭ２とメッセージＭ４が表示されている。移動先欄６２２には、メッセージの移動先として指定可能なノードの一覧が表示される。この例では、既存のノードＮ１、Ｎ３、Ｎ４と、新しいノードが表示されている。新しいノードには、まだ使用されていないノードＩＤが設定される。図の例では、新しいノードとしてＮ５が設定されている。ユーザは、移動するメッセージ欄６２１から移動対象のメッセージ、移動先欄６２２からその移動先を選択する。そして、ＯＫボタン６２３が操作されると、指定されたメッセージの移動が実行される。
【００５５】
例えば、移動するメッセージがメッセージＭ２、移動先が新しいノード（Ｎ５）に指定されたとする。これにより、ノードＮ２に分類されていたメッセージＭ２はノードＮ５へ移動する。ノード情報表１１１０のメッセージＭ２に関するノードＩＤは「Ｎ５」に更新され、メッセージＭ２はノードＮ５の代表メッセージになる。これに伴って、ノードＮ２の代表メッセージは、メッセージＭ４になり、代表１１１５の該当欄が更新される。また、エッジ情報表１１２０のノードＩＤ１１２１には、「Ｎ５」が追加される。このとき、ノードＮ５の親ノードは、移動したメッセージＭ２が分類されていた元のノードＮ２の親ノードを引き継がれ、「Ｎ１」が登録される。
【００５６】
さらに、木構造表示部１３１は、修正されたノード情報表１１１０及びエッジ情報表１１２０に基づいて、ツリー表示画面６１０を、修正後の木構造の状態に更新する。
図１０は、メッセージの分類が修正された後のツリー表示画面の一例である。
【００５７】
ツリー表示画面６３０は、ツリー表示画面６１０の状態でメッセージＭ２の分類がノードＮ２からノードＮ５に修正された後の状態を表すツリー表示画面である。ツリー表示画面６１０から変更されていないものは、同じ番号を付す。
【００５８】
修正後のツリー表示画面６３０では、新たに追加されたノードＮ５（６３１）が、ノードＮ１（６１２）の下に配置される。ノードＮ５の代表メッセージは、メッセージＭ２である。これに伴って、ノードＮ２（６３２）は、代表メッセージがメッセージＭ４に変更されている。それ以外の表示は変更されていない。
【００５９】
このように、ＧＵＩ（Graphical User Interface）の操作を行うだけで、簡単にメッセージ遷移関係を修正することができる。
メッセージの分類の修正は、ノードＮ０を除くすべてのノードのメッセージについて行うことができる。他の例として、ノードＮ３（６１４）に分類されるメッセージＭ３を、ノードＮ４へ移動させる場合について説明する。ユーザは、図８に示したツリー表示画面６１０において、ノードＮ３を選択し、修正メニュー６１７から「このノードのメッセージを移動」を選択する。選択に応じて、ノードＮ３に関するメッセージ分類修正画面６２０が表示されるので、メッセージＭ３を選択し、ノードＮ４へ移動する指示を行う。これにより、ノード情報表１１１０のメッセージＭ３のノードＩＤ１１１４は、「Ｎ４」に修正される。ノードＮ４の代表メッセージには、既にメッセージＭ５が登録されているので、代表メッセージには設定されない。なお、エッジ情報表１１２０には、修正個所はない。
【００６０】
木構造表示部１３１は、修正されたノード情報表１１１０及びエッジ情報表１１２０に基づいて、ツリー表示画面６１０を、修正後の木構造の状態に更新する。
図１１は、メッセージの分類が修正された後のツリー表示画面の他の例である。
【００６１】
ツリー表示画面６４０は、ツリー表示画面６１０の状態でメッセージＭ３の分類がノードＮ３からノードＮ４に修正された後の状態を表したツリー表示画面である。ツリー表示画面６１０から変更のないものは、同じ番号が付されている。
【００６２】
ツリー表示画面６４０では、メッセージがなくなったノードＮ３が表示画面から削除され、ノードＮ２（６１３）の子ノードは、ノードＮ４（６４１）のみになる。ノードＮ４の代表メッセージはメッセージＭ５であるのでノードＮ４（６４１）には表示されない。移動されたメッセージＭ３は、メッセージ一覧画面６４２が選択されたときに表示される。なお、代表メッセージは、任意に設定することができ、メッセージＭ３を代表メッセージとすることもＧＵＩを用いた簡単な操作で実行できる。
【００６３】
次に、修正メニュー６１７から「このノード以下を削除」が選択された場合について説明する。メッセージの削除が選択されると、選択されたノードと、そのノードの子ノードなど、選択されたノードから派生するノード（以下、子孫ノードとする）はすべて削除される。
【００６４】
例えば、図８に示したツリー表示画面６１０においてノードＮ２（６１３）が選択された状態で、修正メニュー６１７で「このノード以下を削除」が選択された場合で説明する。この場合、選択されたノードＮ２（６１３）と、その子孫ノードであるノードＮ３（６１４）及びノードＮ４（６１５）と、が削除される。例えば、エッジ情報表１１２０のノードＩＤ１１２１から、選択されたノードＮ２が削除される。次に、親ノードＩＤ１１２２の値が「Ｎ２」であるノードＩＤ１１２１が検索される。ここでは、「Ｎ３」「Ｎ４」が検出されるので、これらのノードもノードＩＤ１１２１から削除する。続いて、削除したノードＮ３及びノードＮ４を親ノードとするノードが検索される。ここでは、該当するノードは検索されないので、削除処理は終了する。これに伴ってノード情報表１１１０も修正される。
【００６５】
さらに、木構造表示部１３１は、修正されたノード情報表１１１０及びエッジ情報表１１２０に基づいて、ツリー表示画面６１０を、修正後の木構造の状態に更新する。
図１２は、ノードが削除された後のツリー表示画面の一例である。
【００６６】
ツリー表示画面６５０は、ツリー表示画面６１０の状態でノードＮ２以下のノードが削除された後の状態を表したツリー表示画面である。ツリー表示画面６１０から変化のないものは、同じ番号が付されている。
【００６７】
ツリー表示画面６５０では、削除が選択されたノードＮ２より上のノードＮ０（６１１）と、ノードＮ１（６１２）の表示は変化ない。しかし、選択されたノードＮ２、その子孫ノードのノードＮ３及びノードＮ４が削除され、そのアイコンが表示されていた領域６５１には、何も表示されない。
【００６８】
このように、あるノードの削除が指定されると、エッジを辿って子孫ノード、すなわち、指定されたノードのメッセージ発行後でなければ発行されないメッセージに関するノードも自動的に削除される。
【００６９】
次に、修正メニュー６１７から「このノードの親ノードを変更」が選択された場合について説明する。親ノードの変更が選択されると、ノード間の関係を修正するため、親ノードの変更画面が表示される。図１３は、親ノードの変更画面の一例を示した図である。
【００７０】
親ノードの変更画面６６０は、図８のツリー表示画面６１０においてノードＮ２が選択され、「このノードの親ノードを変更」が選択されたときの表示画面である。
親ノードの変更画面６６０には、親ノード欄６６１及びＯＫボタン６６２が表示される。親ノード欄６６１には、登録可能なノード候補として、全てのノードから、現在選択されているノードと、そのノードの子孫群を除いたノードがリスト形式で表示される。ユーザは、その中から新しく親ノードとして設定するノードＩＤを選択する。続いてＯＫボタン６６２が操作されると、親ノードが指定されたノードに変更される。
【００７１】
図の例では、選択されたノードＮ２の親ノードを、ノードＮ０に変更するという指示がされている。この場合、エッジ情報表１１２０のノードＮ２に対応する親ノードＩＤ１１２２が「Ｎ１」から「Ｎ０」に修正される。ノード情報表１１１０には、修正個所はない。
【００７２】
木構造表示部１３１は、修正されたエッジ情報表１１２０及びノード情報表１１１０に基づいて、ツリー表示画面を表示する。
図１４は、親ノードが変更された後のツリー表示画面の一例である。
【００７３】
ツリー表示画面６７０は、ツリー表示画面６１０の状態でノードＮ２の親ノードがノードＮ１からノードＮ０に変更された後の状態を表すツリー表示画面である。ツリー表示画面６１０と同じ状態のものは、同じ番号が付されている。
【００７４】
ツリー表示画面６７０では、ノードＮ２（６７１）と、ノードＮ２（６７１）を親ノードとするノードＮ３（６７２）及びＮ４（６７３）とが、ノードＮ０（６１１）を親ノードとして表示される。
【００７５】
このように、親ノードが修正されたときも、選択されたノードとともに、このノードの子孫のノードが自動的に移動される。
以上のような操作を繰り返して修正されたノード情報表１１１０及びエッジ情報表１１２０は、メッセージ遷移関係を示す情報として、プログラム生成部１４０に送られる。
【００７６】
プログラム生成部１４０では、ノード情報表１１１０及びエッジ情報表１１２０によって表されるメッセージの遷移関係を取得し、各ノードの代表メッセージを再取得するようなプログラムを生成する。あるノードの再取得プログラムは、まずそのノードの親ノードを再取得する。そして、その最後のメッセージを元にリクエストを生成する。ただし、親ノードが「Ｎ０」のときは、親ノードの再取得はせず、単に代表メッセージのリクエストをそのまま再利用する。最後のレスポンスを元に、再取得したメッセージのリクエストを生成する方法にはさまざまな方法が考えられる。例えば、再取得したメッセージに相当するリンクを探し、リクエストを生成する。実施の形態では、再取得したいメッセージに相当するリンクを探し、リクエストを生成する。また、生成したリクエストのレスポンスについて、元のレスポンス（代表メッセージのレスポンス）と似ていなかったら、エラーメッセージを表示するプログラムを生成する。レスポンス同士が似ているか否かを判定するには、様々な方法が考えられる。例えば、レスポンス中の特定のデータを比較することが考えられる。よく知られている方法として、ステータスコードを比較する方法がある。実施の形態では、ステータスコード、メディアタイプ、（ＨＴＭＬの場合には）タイトル、の１つでも違えば似ていないと判定する。
【００７７】
図１５は、生成される再取得プログラムの一例である。
再取得プログラム７００の流れを示す。再取得プログラム７００では、まず、ｇｅｔＭｅｓｓａｇｅ（ＮｏｄｅＩｄ）によって、ノード情報表１１１から、引数のノード（ＮｏｄｅＩｄ）の代表メッセージを取得する（７０１）。続いて、ｇｅｔＰａｒｅｎｔＩｄによってエッジ情報表１１２から引数のノードの親ノードＩＤを取得する（７０２）。結果がｎｕｌｌであれば、代表メッセージのリクエストを再利用する（７０３）。結果がｎｕｌｌでなければ、最後のレスポンス（第１引数）を元に、再取得したメッセージのリクエストを生成する（７０４）。また、サーバと通信を行ってレスポンスが元のレスポンスと似ていないときは、エラーメッセージを表示する処理も行う（７０５）。
【００７８】
このように、ノード情報表１１１及びエッジ情報表１１２に基づいて所望のメッセージを再取得するための再取得プログラム７００が生成される。この再取得プログラム７００を用いれば、所望のＷｅｂページの情報を簡単に取得することができる。
【００７９】
以下、実施の形態の情報再取得プログラムの生成処理の手順についてフローチャートを用いて説明する。
図１６は、情報再取得プログラムの生成処理の手順を示したフローチャートである。
【００８０】
［ステップＳ０１］  Ｗｅｂページの遷移関係を表す木構造を生成する木構造生成処理のうち、メッセージ履歴からノードを抽出するノード抽出処理を行う。詳細は後述する。
［ステップＳ０２］  Ｗｅｂページの遷移関係を表す木構造を生成する木構造生成処理のうち、エッジを抽出するエッジ抽出処理を行う。詳細は後述する。
【００８１】
［ステップＳ０３］  ステップＳ０１で抽出されたノード情報と、ステップＳ０２で抽出されたエッジ情報に基づいて、Ｗｅｂページの遷移関係を示す木構造を表示装置に表示する処理を行う。
【００８２】
［ステップＳ０４］  表示装置によりＷｅｂページの遷移関係を確認したユーザから修正指示が入力されたかどうかをチェックする。修正指示が入力されたときは、処理をステップＳ０５に進める。修正指示が入力されなかったときは、処理をステップＳ０６に進める。
【００８３】
［ステップＳ０５］  木構造の修正指示が入力されたときは、修正指示に従って木構造を修正する。さらに、修正された木構造に応じてノード情報表１１１及びエッジ情報表１１２の情報も更新する。その後、処理をステップＳ０３に戻し、更新されたノード情報表１１１及びエッジ情報表１１２に基づく木構造表示の処理からの手順を繰り返す。
【００８４】
［ステップＳ０６］  修正指示が入力されなかったときは、ユーザが木構造を確定したかどうかを判定する。確定したときは、処理をステップＳ０７へ進める。確定していないときは、処理をステップＳ０４に戻し、修正指示のチェックからの処理を行う。
【００８５】
［ステップＳ０７］  ユーザが木構造を確定したときには、確定された木構造に基づいて所望のＷｅｂページを取得するための再取得プログラムを生成する。
以上の処理手順が実行されることにより、メッセージ履歴に基づいてユーザが希望するＷｅｂページを再取得するための再取得プログラムが生成される。クライアント２００がこの再取得プログラムを実行することにより、ユーザは、簡略な操作で所望のＷｅｂページを参照することができる。
【００８６】
次に、木構造生成処理の詳細な手順を、ノード抽出処理、エッジ抽出処理の順に説明する。
図１７は、木構造生成処理（ノード抽出処理）の手順を示したフローチャートである。
【００８７】
［ステップＳ１０１］  中継装置４００によって記録されたクライアント２００とＷＷＷサーバ３００との間で交換されたＨＴＴＰメッセージに関するＨＴＴＰメッセージ履歴を読み出す。ＨＴＴＰメッセージ履歴は、所定の期間に記録されたものを全て読み出しておく。
【００８８】
［ステップＳ１０２］  ステップＳ１０１で読み出したメッセージ履歴に記録されるメッセージについて、ステップＳ１０９までのループ１の処理を行う。
［ステップＳ１０３］  メッセージ履歴に記録されたメッセージの組（リクエストとレスポンス）のうち、未処理のものを１つ取り出し、メッセージＩＤを付与してノード情報表１１１に登録する。メッセージＩＤは、例えば、メッセージを識別する識別文字Ｍと、発行順につけられた番号とを組み合わせて構成する。この時点で、ノード情報表１１１には、メッセージＩＤに関連付けて、メッセージ履歴から抽出されたリクエストメッセージ及びレスポンスメッセージが登録される。
【００８９】
［ステップＳ１０４］  ステップＳ１０３で抽出されたメッセージを構文解析し、特定データを抽出する。例えば、ＵＲＬやリクエストメソッドを抽出する。
［ステップＳ１０５］  抽出された特定データに基づき、このメッセージと同一または類似するメッセージが分類されるノードが既に登録されているかどうか判定する。抽出された特定データと、ノード情報表１１１に既に登録されるメッセージの特定データとを照合し、同じものがあるかどうかを判定する。同じものがあれば、既登録のメッセージデータと同じノードに分類することができる。同じノードに分類できなければ、処理をステップＳ１０６に進める。同じノードに分類できれば、処理をステップＳ１０８に進める。
【００９０】
［ステップＳ１０６］  同じノードに分類できないときは、新しいノードＩＤをこのメッセージに付与する。付与したノードＩＤは、このメッセージに対応するノード情報表１１１のノードＩＤ欄に登録する。
【００９１】
［ステップＳ１０７］  さらに、このメッセージを新ノードの代表メッセージに設定する。このメッセージに対応するノード情報表１１１の代表欄に、「代表（○）」を設定し、処理をステップＳ１０９に進める。
【００９２】
［ステップＳ１０８］  既登録のノード（既ノード）と同じノードに分類できるときは、既ノードのノードＩＤを付与する。付与したノードＩＤは、このメッセージに対応するノード情報表１１１のノードＩＤ欄に登録する。
【００９３】
［ステップＳ１０９］  読み出したメッセージ履歴に記録される全メッセージの処理が終了したかどうかを判定する。全メッセージの処理が終了していないと判定されたときは、処理をステップＳ１０２に戻す。終了したと判定されたときは、ループ１を終了し、次ステップへ処理を進める。
【００９４】
［ステップＳ１１０］  生成されたノード情報表１１１を出力する。
以上の処理手順が実行されることにより、メッセージ履歴に記録されるメッセージにノードが付与され、ノード情報表１１１に登録される。
【００９５】
図１８は、木構造生成処理（エッジ抽出処理）の手順を示したフローチャートである。
［ステップＳ２０１］  ノード抽出部１２１によって生成されたノード情報表１１１の受付処理を行う。
【００９６】
［ステップＳ２０２］  受け付けたノード情報表１１１に登録された全てのメッセージの処理が終了するまで、未処理の対象メッセージを１つ選択し、ステップＳ２１０までのループ２処理を行う。
【００９７】
［ステップＳ２０３］  選択された対象メッセージが、代表メッセージであるかどうかを判定する。ノード情報表１１１の代表欄を参照して判定を行う。代表メッセージであるときは、処理をステップＳ２０４に進める。代表メッセージでないときは、処理をステップＳ２１０に進める。
【００９８】
［ステップＳ２０４］  この代表メッセージを対象２メッセージと名付ける。対象２メッセージは、その時点において親ノード候補としているノードのメッセージである。すなわち、開始時点では、対象メッセージのノードを仮に親ノード候補としている。
【００９９】
［ステップＳ２０５］  現時点で対象２メッセージと名付けられている対象２メッセージよりも時間的に前に発行されたメッセージがあるかどうかを判定する。ノード情報表１１１は、メッセージの発行順にメッセージＩＤが付与されるので、対象２メッセージよりもメッセージＩＤの値が若い番号を有するかどうかにより判定する。前のメッセージがないときは、処理をステップＳ２０６に進める。前のメッセージがあるときは、処理をステップＳ２０７に進める。
【０１００】
［ステップＳ２０６］  対象２メッセージよりも前のメッセージがないときは、他のメッセージに応じて発行されたものではないので、親ノードをノードＮ０とし、エッジ情報２２４の該当する箇所に登録し、処理をステップＳ２１０に進める。
【０１０１】
［ステップＳ２０７］  対象２メッセージよりも前のメッセージがあるときは、この前のメッセージを改めて対象２メッセージと名付けなおす。すなわち、親ノード候補を時間的に前に発行されたメッセージのノードにする。
【０１０２】
［ステップＳ２０８］  対象メッセージ（ステップＳ２０２で選択されているメッセージ）と、ステップＳ２０７で抽出された対象２メッセージ（親ノード候補）とを解析する。そして、対象メッセージは、対象２メッセージから発行されたと推測されるかどうかを判定する。対象メッセージが対象２メッセージから発行されたと推測されたときは、処理をステップＳ２０９に進める。対象メッセージが対象２メッセージから発行されたと推測されないときは、処理をステップＳ２０５に戻し、さらに前のメッセージをチェックする。
【０１０３】
［ステップＳ２０９］  対象メッセージが、対象２メッセージから発行されたと推測されるときは、対象メッセージの属するノードの親ノードを、対象２メッセージが属するノードとする。エッジ情報表１１２の対象メッセージの属するノードに対応する親ノードの欄に、対象２メッセージのノードを登録し、処理をステップＳ２１０に進める。
【０１０４】
［ステップＳ２１０］  ノード情報表１１１に登録された全てのメッセージの処理が終了したかどうかを判定する。終了していないと判定されたときは、ステップＳ２０２に戻って処理を繰り返す。終了したと判定されたときは、ループ２を終了し、処理をステップＳ２１１に進める。
【０１０５】
［ステップＳ２１１］  生成されたエッジ情報表１１２を出力する。
以上の処理手順が実行されることにより、ノード情報表１１１に基づいて、ノード間の遷移関係が解析され、エッジ情報表１１２が生成される。
【０１０６】
このように、メッセージ履歴を解析することにより、Ｗｅｂページの遷移関係を木構造で表現することができる。このとき、Ｗｅｂページを呼び出すためのメッセージは、同一または類似するメッセージが１つのノードに分類され、その後遷移関係が解析されるので、所定のＷｅｂページを呼び出すために本当に必要なメッセージのみを木構造上に残すことができる。この木構造に基づいてＷｅｂページの再取得手順を生成すれば、所定のＷｅｂページを呼び出すために必要なリクエストメッセージのみに最適化されたＷｅｂページの再取得手順を生成することができる。
【０１０７】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報再取得手順生成装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【０１０８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１１０】
以上の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
（付記１）  所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラムにおいて、
コンピュータを、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段、
として機能させることを特徴とする情報再取得手順生成プログラム。
【０１１１】
（付記２）  前記関係解析手段に、前記メッセージ履歴に記録される前記メッセージを構文解析し、前記メッセージに含まれる特定データが類似する前記メッセージをまとめてノードとして抽出するとともに、前記ノード間の遷移関係をエッジとして抽出し、前記情報の遷移関係を前記ノードと前記エッジとを用いた木構造で表現させる、
ことを特徴とする付記１記載の情報再取得手順生成プログラム。
【０１１２】
（付記３）  前記関係解析手段に、抽出された前記ノードを順に対象ノードに設定し、前記対象ノードに含まれる対象メッセージよりも前に発行されたメッセージを順に解析して、前記対象メッセージの発行元と判定される発行元候補を検索し、検索された前記発行元候補の属するノードを前記対象ノードの親ノードに設定する処理を繰り返し、抽出された前記ノードすべてに対し前記親ノードを設定することを特徴とする付記１記載の情報再取得手順生成プログラム。
【０１１３】
（付記４）  前記関係解析手段に、前記特定データとして、前記メッセージに含まれるＵＲＬ、リクエストメソッド、レスポンスステータスコード、レスポンスのメディアタイプを含む他のメッセージとの共通情報を抽出させる、ことを特徴とする付記１記載の情報再取得手順生成プログラム。
【０１１４】
（付記５）  前記関係解析手段に、同じノードに分類される複数の前記メッセージのうち、１つのメッセージを代表メッセージに選択させ、
前記再取得手順定義手段に、前記代表メッセージを再取得する手順を定義させる、
ことを特徴とする付記１記載の情報再取得手順生成プログラム。
【０１１５】
（付記６）  前記コンピュータを、さらに、
前記関係解析手段によって解析された前記情報の遷移関係を前記ノードと前記エッジを用いた木構造で表現した関係図を生成して前記ユーザに提示するとともに、前記ユーザからの修正指示が入力されたときは前記修正指示に基づいて前記情報の遷移関係及び前記関係図を修正する関係提示・修正手段、
として機能させることを特徴とする付記２記載の情報再取得手順生成プログラム。
【０１１６】
（付記７）  前記関係提示・修正手段に、前記ノードが選択され、前記エッジによって表される前記ノード間の遷移関係を修正する指示が入力されたときは、選択された前記ノードに対する子孫ノードを含めて前記ノード間の遷移関係を修正させる、ことを特徴とする付記６記載の情報再取得手順生成プログラム。
【０１１７】
（付記８）  前記再取得手順定義手段に、前記木構造の根ノードから、目的の情報を取得するための前記メッセージが含まれる前記ノードまでを順に辿り、前記ノードの代表メッセージに基づくリクエストメッセージを生成し、生成された前記リクエストメッセージを順に送付する処理をコンピュータに実行させる再取得プログラムを生成させる、
ことを特徴とする付記１記載の情報再取得手順生成プログラム。
【０１１８】
（付記９）  前記再取得手順定義手段に、前記メッセージ履歴から前記リクエストメッセージに対応するレスポンスメッセージを抽出して前記レスポンスメッセージから特定データを抽出し、前記再取得手順で定義された前記リクエストメッセージからのレスポンスに前記特定データが含まれるか否かを判定するエラー処理を定義し、前記エラー処理を前記コンピュータに実行させる再取得プログラムを生成させる、
ことを特徴とする付記８記載の情報再取得手順生成プログラム。
【０１１９】
（付記１０）  所望の情報を再取得する手順を生成する情報再取得手順生成装置において、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段と、
前記記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段と、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段と、
を有することを特徴とする情報再取得手順生成装置。
【図面の簡単な説明】
【０１２０】
【図１】実施の形態に適用される発明の概念図である。
【図２】実施の形態の情報取得システムの構成を示した図である。
【図３】情報再取得手順生成装置のハードウェア構成例を示すブロック図である。
【図４】メッセージ履歴の一例の前半部分を示した図である。
【図５】メッセージ履歴の一例の後半部分を示した図である。
【図６】ノード情報表の一例である。
【図７】エッジ情報表の一例である。
【図８】ツリー表示画面の一例である。
【図９】メッセージ分類修正画面の一例を示した図である。
【図１０】メッセージの分類が修正された後のツリー表示画面の一例である。
【図１１】メッセージの分類が修正された後のツリー表示画面の他の例である。
【図１２】ノードが削除された後のツリー表示画面の一例である。
【図１３】親ノードの変更画面の一例を示した図である。
【図１４】親ノードが変更された後のツリー表示画面の一例である。
【図１５】生成される再取得プログラムの一例である。
【図１６】情報再取得プログラムの生成処理の手順を示したフローチャートである。
【図１７】木構造生成処理（ノード抽出処理）の手順を示したフローチャートである。
【図１８】木構造生成処理（エッジ抽出処理）の手順を示したフローチャートである。
【符号の説明】
【０１２１】
１０  情報再取得手順生成装置
１１  記憶手段
１１ａ  メッセージ履歴
１１ｂ  再取得手順定義情報
１２  関係解析手段
１３  関係提示・修正手段
１４  再取得手順定義手段
【図１】
2010055483.tif 000003
【図２】
2010055483.tif 000004
【図３】
2010055483.tif 000005
【図４】
2010055483.tif 000006
【図５】
2010055483.tif 000007
【図６】
2010055483.tif 000008
【図７】
2010055483.tif 000009
【図８】
2010055483.tif 000010
【図９】
2010055483.tif 000011
【図１０】
2010055483.tif 000012
【図１１】
2010055483.tif 000013
【図１２】
2010055483.tif 000014
【図１３】
2010055483.tif 000015
【図１４】
2010055483.tif 000016
【図１５】
2010055483.tif 000017
【図１６】
2010055483.tif 000018
【図１７】
2010055483.tif 000019
【図１８】
2010055483.tif 000020