(57)【要約】ネットワークサーバのデータファイルを処理して、提供可能なデータを同定するコンテンツ発見モジュールと、提供可能なデータへのリンクを生成して、上記リンクを使用して上記提供可能なデータのコンテンツアクセス可能にするリンクジェネレータとを含むリンク生成システム。上記リンクジェネレータは、上記ネットワークサーバの動的に生成されたデータにアクセスするための符号化されたリンクを生成し、上記符号化されたリンクは索引生成エージェントに適切な形式である。上記リンクジェネレータは、上記ネットワークサーバのデータベースを処理して、上記データベースから提供可能なデータを検索するためのクエリーデータを決定する。プロキシサーバは上記符号化されたリンクの１つを選択するのに反応して生成される要求を受信し、上記リクエストを変換し、上記ネットワークサーバに渡して、対応動的生成データにアクセスする。
2005538435.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにより実行されるリンク生成方法であって、
提供可能なデータを同定するためにネットワークサーバのデータファイルを処理するステップ；および
上記提供可能なデータのコンテンツを、上記リンクを使用してアクセス可能にする上記提供可能なデータへのリンクを生成するステップ
を含む方法。
【請求項２】
上記生成するステップが、上記ネットワークサーバの動的に生成されたデータにアクセスするための符号化されたリンクを生成するステップを含み、上記符号化されたリンクが索引生成エージェントにとって適切な形式である請求項１に記載の方法。
【請求項３】
上記符号化されたリンクもＵＲＩ符号化されている請求項２に記載の方法。
【請求項４】
上記処理するステップが、上記ネットワークサーバのデータベースを処理して、上記データベースから提供可能なデータを検索するためにクエリーデータを決定するステップを含む請求項２に記載の方法。
【請求項５】
上記提供可能なデータを検索するための要求データを決定するために、上記ウェブサイトのスクリプトを処理するステップを含み、上記符号化されたリンクが、上記要求データおよび上記クエリーデータに基づき生成される請求項４に記載の方法。
【請求項６】
スクリプトを処理する上記ステップが、上記スクリプトを処理して、上記データベースにアクセスするためのアクセスデータを決定する請求項５に記載の方法。
【請求項７】
上記符号化されたリンクの１つを選択し、上記要求を変換し、変換された要求を上記ネットワークサーバへ渡して、上記ネットワークサーバの対応する動的に生成されたデータにアクセスするのに応じて生成される要求を受信することを含む請求項２に記載の方法。
【請求項８】
上記変換された要求がHTTPのGET要求である請求項７に記載の方法。
【請求項９】
上記変換された要求がHTTPのPOST要求である請求項７に記載の方法。
【請求項１０】
上記リンクをリモート索引生成エージェントに送信して、上記提供可能なデータを索引生成可能にするステップを含む請求項１に記載の方法。
【請求項１１】
HTTPのPUT、HTTPのPOST、ＦＴＰおよびＳＭＴＰの１つを使用して、上記符号化されたリンクをリモートシステムに送信するステップを含む請求項１に記載の方法。
【請求項１２】
上記ネットワークサーバのすべての提供可能なデータが、上記リンクのいずれか１つの選択によりアクセス可能である請求項１に記載の方法。
【請求項１３】
コンピュータシステムにより実行されるリンク生成方法であって、
ネットワークサーバの提供可能なデータを表す１以上のデータノードを生成するステップ；および
上記提供可能なデータを検索するための上記データノードに基づいて、索引生成エージェントのための１以上のリンクを生成するステップ
を含むリンク生成方法。
【請求項１４】
上記データノードが、リンクが表記データ集合の中に存在しないデータを表す請求項１３に記載のリンク生成方法。
【請求項１５】
上記データが上記データ集合の静的データに対応する請求項１３に記載のリンク生成方法。
【請求項１６】
上記データが上記データ集合の動的データに対応する請求項１３に記載のリンク生成方法。
【請求項１７】
上記ノードが、上記データ集合の階層構造を表す階層構造に組織化された請求項１３に記載のリンク生成方法。
【請求項１８】
コンピュータシステムにより実行されるリンク生成方法であって、少なくとも１つの符号化されたリンクの選択に反応して、階層データ集合の動的コンテンツデータを検索するための上記少なくとも１つの符号化されたリンクを生成するステップを含むリンク生成方法。
【請求項１９】
上記階層データ集合の少なくとも１つのノードのコンテンツデータへのリンクのリストを生成するステップを含み、上記リンクが、上記少なくとも１つの符号化されたリンクを含む請求項１８に記載のリンク生成方法。
【請求項２０】
上記リンクが、上記階層データ集合のすべての入手可能なデータへのリンクを含む請求項１９に記載のリンク生成方法。
【請求項２１】
上記リンクが、上記階層データ集合のコンテンツデータへの１以上の直接リンクを含む請求項１９に記載のリンク生成方法。
【請求項２２】
上記リンクが、上記階層データ集合のコンテンツデータへの１以上の間接リンクを含む請求項１９に記載のリンク生成方法。
【請求項２３】
上記リンクが、上記ノードのコンテンツデータへの少なくとも１つの直接および間接リンクを含む請求項１９に記載のリンク生成方法。
【請求項２４】
上記リンクのリストが、上記階層データ集合のノードに対応する請求項１９に記載のリンク生成方法。
【請求項２５】
上記階層データ集合が少なくとも１つのウェブサイトを含む請求項１９に記載のリンク生成方法。
【請求項２６】
上記少なくとも１つの符号化されたリンクが少なくとも１つの符号化されたPOSTクエリーを含む請求項１８に記載のリンク生成方法。
【請求項２７】
上記少なくとも１つの符号化されたリンクが少なくとも１つの符号化されたGETクエリーを含む請求項１８に記載のリンク生成方法。
【請求項２８】
リンク生成方法であって、
ネットワークサイトの動的コンテンツのためのリンクを生成するステップ；
上記サイトのコンテンツに関し、索引生成エージェントから要求を受信するステップ；および
上記要求に、索引生成のために上記要求に対応する上記リンクおよび上記動的コンテンツとともに応答するステップ
を含むリンク生成方法。
【請求項２９】
上記リンクが、１以上のハイパーリンク、ＸＭＬ要素、およびテキストとして生成される請求項１に記載の方法。
【請求項３０】
請求項１から請求項２９のいずれか１つに記載のステップを実行するコンポーネントをもつリンク生成システム。
【請求項３１】
請求項１から請求項２９のいずれか１つに記載のステップを実行するプログラムコードをもつリンク生成ソフトウェア。
【請求項３２】
請求項１から請求項２９のいずれか１つに記載のステップを実行するプログラムコードをコンピュータ読み取り可能な記録媒体に格納したコンピュータ読み取り可能な記録媒体。
【請求項３３】
リンク生成システムであって、
ネットワークサーバのデータファイルを処理して、提供可能なデータを同定するコンテンツ発見モジュール；および
上記提供可能なデータへのリンクを生成して、上記提供可能なデータのコンテンツを、上記リンクを使用してアクセス可能にするリンクジェネレータ
を含むリンク生成システム。
【請求項３４】
上記リンクジェネレータが、上記ネットワークサーバの動的に生成されたデータにアクセスするための符号化されたリンクを生成するのに適応し、上記符号化されたリンクが索引生成エージェントに適した形式である請求項３３に記載のリンク生成システム。
【請求項３５】
上記リンクジェネレータが、上記ネットワークサーバのデータベースを処理して、上記データベースから提供可能なデータを検索するためのクエリーデータを決定するのに適応した請求項３４に記載のリンク生成システム。
【請求項３６】
上記符号化されたリンクの１つを選択し、上記要求を変換し、上記変換された要求を上記ネットワークサーバに渡して、上記ネットワークサーバの対応する動的に生成されたデータにアクセスすることに反応して生成される要求を受信するためのプロキシサーバを含む請求項３５に記載のリンク生成システム。
【請求項３７】
リンク生成システムであって、
各ネットワークサーバのデータファイルを処理して、提供可能なデータを同定する１以上のコンテンツ発見モジュール；および
上記提供可能なデータへのリンクを生成して、上記提供可能なデータのコンテンツを、上記リンクを使用してアクセス可能にするリンクジェネレータ
を含むリンク生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークサーバまたはウェブサイトなどの構造化データ集合のためのリンク生成システムおよびリンク生成方法に関する。
【背景技術】
【０００２】
インターネット上で入手可能な情報の増え続ける量は、興味のある情報に関連する情報を見つけることを極端に難しくすることがある。ワールドワイドウェブ上で入手可能な情報の場合、ユーザにより与えられた１以上の検索語句に一致するＨＴＭＬ（ハイパーテキストマークアップ言語）ドキュメントまたはウェブページのリストを生成するために、検索エンジンが開発されてきた。これらのページのリストは、個々のウェブページのコンテンツを解析することにより生成される逆の索引から生成される。これらのウェブページは、個々のウェブページを検索し、それらのページのコンテンツを解析し、索引を生成するハイパーテキストトランスファープロトコル（HTTP）を使用して、スパイダーすなわちウェブを進むウェブクローリングエージェントとして知られるソフトウェアモジュールにより検索される。これは、他のウェブページへのハイパーリンクを同定すること、それらのリンクされたページを検索することおよびそれらのページのコンテンツを解析することを含むことができる。スパイダーはワールドワイドウェブ自体についての索引を生成するために使用可能であり、または、１以上の指定されたウェブサイトに制限することも可能である。
【０００３】
１つのウェブサイトは有向グラフすなわちダイグラフとしてみることができ、ノード間のグラフおよび上記サイトのウェブページ内のハイパーテキストリンクに対応する上記ノード間の有向リンクを形成する提供可能なコンテンツを伴う。スパイダーが、ウェブサイトの中のノードの１つで開始し、次に、上記ノードから他のノードへリンクをたどり、以下同様である。上記スパイダーは、ノードに出会うとき、そのノードに関して要求されることを実行可能である。検索エンジンスパイダーの場合、これはノードコンテンツの索引生成を含むが、他の種類のスパイダーは、切れたハイパーリンクを調査、ドキュメントのスペルチェックなどの他のタスクを実行するために使用可能である。
【特許文献１】国際出願第ＰＣＴ／ＡＵ００／０１５５４号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
残念ながら、すべてのウェブサイトが完全につながっているわけではない。多くのウェブサイトが、ハイパーテキストリンク経由で上記ウェブサイトの残りに直接にはつながっていないページをもつ。そのようなつながっていないウェブサイトでは、スパイダーは上記ウェブサイトのすべてのノードに行くことができない。この問題は、特に、ウェブページが動的コンテンツを含むサイトにおいて目立つ。索引生成スパイダーの場合、１つのサイトのコンテンツの大きな部分は、対応する検索エンジンによりアクセス可能でないかもしれない。より多くのウェブサイトが、それらのコンテンツを静的ウェブページから、動的に生成されたコンテンツを含むより柔軟でより容易に維持できるウェブページに変えるにつれて、この問題はさらに重要になる。
【０００５】
ウェブサイト内で十分な連結性がないことは、それらのサイトのコンテンツをたどろうとするウェブサイト管理者にとっても重要な問題でもある。上記サイトの完全につなげられたグラフなしでは、上記サイトのすべてのコンテンツを見つけるのは困難な仕事になりうる。多くのコンテンツ寄稿者のいる大きなサイトでは、この仕事はほとんど不可能になりうる。
【０００６】
検索エンジンにより索引生成されていないコンテンツは、一般に見えないので、「見えないウェブ」と呼ばれている。ウェブ上で入手可能な情報の大部分が見えないと言われてきた。見えないコンテンツは、検索エンジンによりアクセスできないので、見えないコンテンツをもつウェブサイトの見えやすさを減少させ、そのようなコンテンツを見つけづらくすることにより、一般的にウェブの有用性を低下させる。
【０００７】
それ故、１以上の上記困難を多少とも解決するリンク生成システムおよび方法を提供すること、または、少なくとも、既存のリンク生成システムまたは方法の有用な代替を提供することが所望される。
【課題を解決するための手段】
【０００８】
本発明により、
提供可能なデータを同定するためにネットワークサーバのデータファイルを処理するステップ；および
上記提供可能なデータのコンテンツを、上記リンクを使用してアクセス可能にする上記提供可能なデータへのリンクを生成するステップ
を含むコンピュータシステムにより実行されるリンク生成方法が提供される。
【０００９】
本発明は、また、
ネットワークサーバの提供可能なデータを表す１以上のデータノードを生成するステップ；および
上記提供可能なデータを検索するための上記データノードに基づいて、索引生成エージェントのための１以上のリンクを生成するステップ
を含むコンピュータシステムにより実行されるリンク生成方法を提供する。
【００１０】
本発明は、また、コンピュータシステムにより実行されるリンク生成方法を提供し、少なくとも１つの符号化されたリンクの選択に反応して、階層データ集合の動的コンテンツデータを検索するための上記少なくとも１つの符号化されたリンクを生成するステップを含む。
【００１１】
本発明は、また、
ネットワークサイトの動的コンテンツのためのリンクを生成するステップ；
上記サイトのコンテンツに関し、索引生成エージェントから要求を受信するステップ；および
上記要求に、索引生成のために上記要求に対応する上記リンクおよび上記動的コンテンツとともに応答するステップ
を含むリンク生成方法を提供する。
【００１２】
本発明は、また、
ネットワークサーバのデータファイルを処理して、提供可能なデータを同定するコンテンツ発見モジュール；および
上記提供可能なデータへのリンクを生成して、上記提供可能なデータのコンテンツを、上記リンクを使用してアクセス可能にするリンクジェネレータ
を含むリンク生成システムを提供する。
【００１３】
本発明は、また、
各ネットワークサーバのデータファイルを処理して、提供可能なデータを同定する１以上のコンテンツ発見モジュール；および
上記提供可能なデータへのリンクを生成して、上記提供可能なデータのコンテンツを、上記リンクを使用してアクセス可能にするリンクジェネレータ
を含むリンク生成システムを提供する。
【発明を実施するための最良の形態】
【００１４】
以下、添付の図を参照して発明の実施の形態を説明する。
【００１５】
図１に示されているように、リンク生成システム１００は、コンテンツ発見モジュール１０２、ウェブサーバマップ（ＷＳＭ）データベース１０４、コンテンツテーブル（ＴＯＣ）生成モジュール１０６、動的ページプロキシモジュール１０８、ＴＯＣサーバ１１０、サーブレット１１８、ウェブサーバ１１２、スクリプト言語モジュール１２０、データベースモジュール１２２、コンテンツデータベース１２４、静的コンテンツファイル１２６（例えば、ハイパーテキストマークアップ言語（ＨＴＭＬ）ファイルおよびイメージファイル）および動的コンテンツを生成するスクリプト１２８を含む。上記リンク生成システム１００は、ユーザエージェント１１４がリモートコンピュータシステム上で実行することにより、インターネットなどの通信ネットワーク１１６を経由して、アクセス可能である。
【００１６】
上記リンク生成システム１００は、上記ウェブサーバ１１２により提供される各ウェブサイトの提供可能なコンテンツのコンテンツテーブル（ＴＯＣ）を生成するコンテンツテーブル生成方法を実行する。上記提供可能なコンテンツは、上記静的コンテンツファイル１２６、上記スクリプト１２８および上記コンテンツデータベース１２４の中に格納されたコンテンツを含む。上記ＴＯＣは、効果的に、完全なウェブサイトの十分につながったグラフであるので、そのサイトのコンテンツ全体をユーザエージェントに入手可能にする。上記ＴＯＣはハイパーテキストマークアップ言語（ＨＴＭＬ）で生成され、動的に生成されたコンテンツを含む、上記ウェブサーバ１１２のコンテンツ全体を、上記ＴＯＣの各ページのハイパーリンクをたどることにより、リモートユーザエージェント１１４によりアクセス可能にする。上記リモートユーザエージェントは検索エンジンスパイダーであり、したがって、対応する検索エンジンにユーザにより提供される検索クエリーに応答して、上記ウェブサーバ１１２のすべての提供可能なコンテンツへのアクセスを提供可能にする。しかし、上記ウェブサーバ１１２および上記リンク生成システム１００は、標準的なウェブブラウザおよびリンク検証スパイダーを含む他の種類のユーザエージェントによってもアクセス可能である。したがって、上記ＴＯＣは、上記ウェブサーバ１１２により提供されるウェブサイトを経由してウェブページを見ることを望む上記ウェブサーバ１１２の管理者のための管理ツールとしても役に立つ。
【００１７】
上述の実施の形態では、上記リンク生成システム１００および上記リモートコンピュータシステム１３０は、Ｕｎｉｘ（商標）オペレーティングシステムを動作しているＩｎｔｅｌ（商標）を用いたコンピュータシステムなどの標準的なコンピュータシステムであって、上記コンテンツテーブル生成方法は、上記リンク生成システム１００のモジュール１０２、１０６〜１１０、１１８により具体化される。それらのモジュールは、上記リンク生成システム１００のディスク記憶装置上に格納されたソフトウェアモジュールである。上記ＴＯＣサーバ１１０は、http://www.mortbay.org/jetty/index.htmlで入手可能なＪｅｔｔｙなどの軽量HTTPサーバであり、上記ウェブサーバ１１２はhttp://www.apache.orgで入手可能なＡｐａｃｈｅ（商標）またはマイクロソフトＩｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ（ＩＩＳ）（商標）などの標準的なHTTPサーバモジュールである。上記ウェブサーバ１１２は、リンク生成システム１００のHTTP要求の標準的なポート番号であるポート８０を通して要求を受信するように構成されるが、一方、上記ＴＯＣサーバ１１０はポート１１５７１を通る要求を受信する。
【００１８】
上記データベースモジュール１２２は、http://www.mysql.comで入手可能なＭｙＳＱＬなどの標準的なＳＱＬモジュールであって、動的なウェブサイトコンテンツを格納する上記コンテンツデータベース１２４へのＳＱＬインタフェースを提供する。上記スクリプト言語モジュール１２０は、上記データベースモジュール１２２および上記ウェブサーバ１１２の間のインタフェースを提供するhttp://www.php.netから入手可能なＰＨＰなどのスクリプト言語を提供し、上記コンテンツデータベース１２４から検索されるコンテンツを、上記ウェブサーバ１１２によりＨＴＭＬとして提供されることを可能にする。上記スクリプト１２８は、動的コンテンツを生成する上記スクリプト言語モジュール１２０により処理されるＰＨＰスクリプトである。ＰＨＰスクリプトは、上記データベースモジュール１２２により処理されるＳＱＬ文を含むことができる。
【００１９】
上記リンク生成システム１００のモジュール１０２〜１１０、１１８は、別の形では、複数のコンピュータのシステムおよびロケーションに分散可能であり、コンテンツテーブル生成方法の少なくとも一部は、別の形では、特定用途向け集積回路（ＡＳＩＣ）などの専用ハードウェア回路により具体化される。
【００２０】
管理者は、仮想ホストおよびそれらのエイリアスのリスト、および、各仮想ホストの提供可能なコンテンツのルートディレクトリへのパスを提供することにより、上記ウェブサーバ１１２により提供される１以上のウェブサイトのための上記リンク生成システム１００を構成可能である。その代わり、管理者は、上記ウェブサーバ１１２の特定のウェブサーバソフトウェアを選択可能である。例えば、もし上記ウェブサーバソフトウェアがＡｐａｃｈｅ（商標）またはマイクロソフトのＩｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｉｃｅｓ（商標）（ＩＩＳ）であるならば、上記リンク生成システム１００は、これらのサーバの構成ファイルの位置および構成の知識に基づいて、コンテンツの位置を自動的に決定できる。管理者は、また、以下に説明するように、上記リンク生成システム１００がパラメータ値タプルを生成して提供可能なコンテンツを生成可能であるように、上記ウェブサーバ１１２上ですべての動的コンテンツスクリプトに関する情報を提供することにより、上記システムを構成する。上記ウェブサーバ１１２の上記コンテンツデータベース１２４にアクセスする各スクリプトに関し、管理者は、（ｉ）上記スクリプトの位置；（ii）スクリプト中のＳＱＬのＳＥＬＥＣＴ文に使用されるパラメータのリスト；および（iii）上記コンテンツデータベース１２４にアクセスするために必要なデータベース接続パラメータを提供する。
【００２１】
すべての可能な動的コンテンツを含む上記ウェブサーバ１１２により提供可能なコンテンツの全体はコンテンツ発見モジュール１０２により決定可能である。上記コンテンツ発見モジュールは、特許文献１に示され、ここに参照により組み込まれているように、コンテンツ発見方法を実行する。上記コンテンツ発見方法は、サーバのコンテンツディレクトリツリー中のすべてのファイルを解析して、それらが、動的コンテンツを生成するために使用されるＰＨＰまたはＡＳＰスクリプトなどのスクリプトであるか否かを決定することにより、上記ウェブサーバ１１２の提供可能なコンテンツを決定する。各スクリプトに関し、すべての可能な動的コンテンツは、上記スクリプトによりクエリーされる上記コンテンツデータベース１２４の中の上記テーブルの解析に基づいて、各スクリプトに提供可能なパラメータおよびパラメータ値のすべての可能な組み合わせを決定することにより、決定される。そのようなスクリプトは、典型的には、上記ウェブサーバ１１２の上記コンテンツデータベース１２４についてＳＱＬクエリーを実行して、文章や製品情報などの動的コンテンツを抽出する。上記データベースをクエリーするために使用されるＳＱＬのＳＥＬＥＣＴ文中のパラメータを同定し、次に、上記データベースのテーブルを解析してこれらおよび他のパラメータの可能な値（これらのうちいくつかは上記コンテンツデータベース１２４をクエリーするために使用される動的ウェブページファイルまたはスクリプトに含まれてさえいないかもしれない）を決定することにより、動的コンテンツを生成するために使用されるパラメータ値の対のすべての可能な組み合わせは、上記ウェブサーバマップデータベース１０４に格納されたウェブサーバマップ（ＷＳＭ）というデータ構造のノードに格納される。上記コンテンツ発見モジュール１０２は、定期的にまたはコンテンツ変更に応答して上記コンテンツ発見方法を実行するように構成可能であるので、上記ウェブサーバ１１２のすべての提供可能なコンテンツに関する最新のウェブサーバマップを維持し、上記ウェブサーバマップデータベース１０４および上記コンテンツが厳密に同期されることを確実にする。上記ＷＳＭのノードは、コンテンツテーブル（ＴＯＣ）生成モジュール１０６により、上記データベース１０４から検索され、コンテンツテーブル（ＴＯＣ）生成モジュールは、以下に説明するように、上記ＷＳＭのノードを使用して、上記ウェブサーバ１１２により提供される各サイトに関する、完全な、ハイパーリンクの、階層的なコンテンツテーブルを生成する。
【００２２】
上記ＴＯＣは、上記ＷＳＭデータベース１０４のノードの階層に対応するＨＴＭＬドキュメントまたはウェブページの階層的な組を含み、上記ＷＳＭデータベース１０４は、上記ウェブサーバの提供可能なコンテンツの階層的ファイル構造すなわちＵＲＩ（ｕｎｉｖｅｒｓａｌ  ｒｅｓｏｕｒｃｅ  ｉｎｄｉｃａｔｏｒ）のツリーに基づいている。こうして、ウェブサーバの静的コンテンツ１２６の提供可能なファイルは、上記ＷＳＭデータベース１０４において終端ノードとして表されるが、一方、上記ウェブサーバのディレクトリは、（もしそのディレクトリが空でなければ）そのディレクトリ内のファイルおよび／またはディレクトリに対応する１以上の子ノードをもつノードとして表される。同様に、スクリプトは、もしそのスクリプトが、そのスクリプトに提供されるパラメータに依存して、変化する動的コンテンツを生成するならば、それ自体の子ノードをもつノードにより表される。もしノードが１以上の子をもてば、そのページは、他のノードへのリンクを含むことを意味する「ＴＯＣページ」という。各リンクは、対応するノードにアクセスするのに必要な情報を提供し、必ずしもハイパーリンクではないが、典型的にはハイパーリンクである。もしノードが子ノードをもたないとすると、そのページは上記ノードのコンテンツである。すなわち、上記ノードは、対応するウェブサーバのノードのコンテンツを参照するＵＲＩとして提供される。そのウェブページは上記ウェブサーバ１１２上の上記ノードに対応する。そのようなページはＴＯＣの一部と考えられるけれども、上記システム１００により生成されるＴＯＣページと区別するためにここでは「ＴＯＣページ」といわない。すべてのＴＯＣページは、上記ＴＯＣページが表すＵＲＩツリーノードの各々の子ノードのための上記対応するページ（ＴＯＣページ自体であってもなくてもよい）へのリンクを含む。もしノードが子およびそのノード自体のコンテンツをもつとすると、そのノードに関するＴＯＣページは、ノード自体のコンテンツを参照するリンクを含む。ノードを直接参照するリンクは直接リンクといい、一方、以下に説明するように、上記動的ページプロキシモジュール１０８を経由してもう１つのノードを参照するリンクは間接リンクという。上記直接リンクおよび上記間接リンクは１以上のＴＯＣページ内に配置可能である。
【００２３】
上記リンク生成システム１００は、定期的に、または、上記ウェブサーバマップデータベース１０４の更新に応答して、上記ＴＯＣを前もって生成するように構成可能であるが、以下に説明するように、好ましくは、図１のユーザエージェント１１４などのユーザエージェントからの要求に応答して、個々のＴＯＣページを動的に生成するように呼び出される。上記リンク生成システム１００により生成されるＴＯＣは、上記ＴＯＣサーバの提供可能なコンテンツルートディレクトリのサブディレクトリに対応する/spiderlinker/などのユーザ構成可能なベースＵＲＩの下に格納されるか参照される。このコンテンツルートディレクトリは、ＴＯＣ階層の最上層の“toc.html”と名付けられたファイルを含む。上記ディレクトリは、また、以下に説明するように、上記ＴＯＣ階層の残りを含む“/spiderlinker/toc”および上記動的ページプロキシモジュール１０８により生成された上記ウェブサーバ１１２の提供可能なコンテンツを表す“/spiderlinker/content”の２つのサブディレクトリを含む。
【００２４】
階層的ＴＯＣの１つの効果は、ユーザがページをブラウズすることがより容易になって、管理ツールとしての階層的ＴＯＣの有用性を高めることである。しかし、この構造は上記ＴＯＣページを横断するというスパイダーにとって不必要なオーバーヘッドをもたらす。その代わりに、上記リンク生成システム１００は、すべてのコンテンツへのリンクをもった１つのＴＯＣページとして上記ＴＯＣを生成するように構成可能である。しかし、そのようなページは典型的には非常に大きい。これはスパイダーの動作に悪影響を与えるか、悪影響を与えなくても管理ツールとしてのＴＯＣの価値を下げる。その代わりに、上記リンク生成システム１００は、合理的なページの大きさを維持するために、複数のＴＯＣページとして上記ＴＯＣを生成するが、階層構造というよりも平面構造をもつ一連のデージーチェーンのウェブページとして上記ＴＯＣを生成するよう構成可能である。すなわち、各ＴＯＣページは前のページへの１つのリンク（もしＴＯＣページが最初のＴＯＣページでなければ）と次のページへの１つのリンク（もしＴＯＣページが最後のＴＯＣページでなければ）を含むことができる。これは、上記リンクを各リンクのアクセス頻度などのある基準により分類可能にさせる。
【００２５】
スクリプトに関するＷＳＭノードはScriptNodeという。もしあるノードが子をもてばＴＯＣページは上記ノードに関して生成されるので、ＴＯＣページは、ディレクトリのノードまたは子を持つScriptNodeの中のノードに対応するＷＳＭ中のノードに関して作成される。ScriptNodeは、もし対応するスクリプトが１以上のパラメータ値の対を受け取って、変化する動的なコンテンツを生成すれば、子をもつ。上記リンク生成システム１００は、ディレクトリまたはスクリプトに関するＵＲＩに基づくディレクトリのノードおよびScriptNodeに関するＵＲＩを、それに接尾辞“.html”をつけて生成する。例えば、ディレクトリ“/forum/images/”の関するＴＯＣページのＵＲＩは“/spiderlinker/toc/forum/image.html”であり、同様に、スクリプト“/forum/viewmessage.php”に関するＴＯＣページのＵＲＩは“/spiderlinker/toc/forum/viewmessage.php.html”である。ここで、ＵＲＩ接頭辞（例えば、“http://www.mysite.com”）は簡潔さのためＵＲＩから省かれている。以下に示されるＵＲＩも、省略することにより混乱を生じさせないと考えられるときは、省略される。
【００２６】
もしスクリプトが、HTTPのGETおよび／またはPOSTメソッド（以下にさらに説明する）によりパラメータを受け取れば、ＴＯＣページが、上記スクリプトに関して上記スクリプトによりサポートされるメソッドにより生成され、それに対応するノードはHTTPMethodNodeという。HTTPMethodNodeのＴＯＣページに関するＵＲＩは、上記スクリプトのＵＲＩから構築され、スラッシュ文字“/”が続き、さらに’G.html’（GETメソッドについて）または’P.html’（POSTメソッドについて）が続く。例えば、スクリプト“/forums/viewmessage.php”に関するGETHTTPMethodNodeのＴＯＣページのＵＲＩは“/spiderlinker/toc/forums/viewmessage.php/G.html”である。
【００２７】
HTTPMethodNodeの子は動的コンテンツパラメータノード（ＤｙｎａｍｉｃＣｏｎｔｅｎｔＰａｒａｍｅｔｅｒＮｏｄｅ）またはＤＣＰＮという。これらのノードに関するＴＯＣのＵＲＩは、それらのノードがその下にあるHTTPMethodNodeのＵＲＩ（後に続く“.html”接尾辞は除く）から構築され対応するＵＲＩ符号化部分パラメータ文字列を連結し、“.html”を続ける。例えば、POSTメソッドによりパラメータの２つの組み合わせ、“b=1&a=2&c=3”および“b=1&a=2&c=4”、を受け取ることにより動的コンテンツを生成する“/forums/viewmessage.php”と名付けられたスクリプトを考える。ウェブサーバマップデータベース１０４は、したがって、b=1&a=2に対応するＤＣＰＮを含み、２つの子c=3およびc=4をもち、これは、共通のパラメータ値の対を一緒に集め、かつ、追加のパラメータに関して子ノードを生成することにより、複数のパラメータを受け取るスクリプトに関してどのようにノードが生成されるかを示す。このＤＣＰＮに関するＴＯＣのＵＲＩは“/spiderlinker/toc/forums/viewmessage.php/Pb=1&a=2.html”であり、ここに、“b=1&a=2”の部分はＵＲＩ符号化されている。ＵＲＩ符号化は、“=”および“&”などの不正文字を、“%”とそれに続くその文字の１６進ＡＳＣＩＩコードで表されるＡＳＣＩＩテキストである複数の代替文字に置き換える。例えば、“=”文字は文字列“%3D”により表され、“&”文字は“%26”により表される。結果として、上記のＵＲＩは、ＵＲＩ符号化されたとき“/spiderlinker/toc/forums/viewmessage.php/Pb%3D1%26a%3D2.html”になる。そのようなリンクをＵＲＩ符号化することは、スパイダーが上記リンクを処理することを確実にする。
【００２８】
ＴＯＣページは、典型的には、ページのtitle、他のＴＯＣページおよびコンテンツページへのリンクのリストおよびフッターを含む。上記リンクは、該当する場合には、ＴＯＣページに対応するノードの子ノードへのリンク、上記ノードのコンテンツへのリンクおよびＴＯＣ階層の中の１つ上の階層のＴＯＣページへのリンクを含む。上記フッターは、上記ＴＯＣが上記リンク生成システム１００により生成されたことを示す短いメッセージ、上記リンク生成システム１００のプロバイダのウェブサイトへのリンクをもつ著作権メッセージおよび上記ＴＯＣページが生成された日時を提供するタイムスタンプを含む。
【００２９】
上記ウェブサーバ１１２は、上記ユーザエージェント１１４を上記ＴＯＣサーバ１１０へ適切ならば、案内できるように構成される。これは、上記リンク生成システム１００のポート８０で受信されるHTTP要求のユーザエージェントフィールドを検査して、上記要求を送信する特定のユーザエージェントがウェブブラウザかスパイダーかを決定する上記リンク生成システム１００で、スクリプトを実行することによりなされる。もし上記ユーザエージェントが標準的なウェブブラウザならば標準的なウェブコンテンツが上記ウェブサーバ１１２から直接提供可能である。そうでないならば、もし上記ユーザエージェントが検索エンジンスパイダーならば、上記要求は、適切な変更を加えて、ＴＯＣサーバ１１０へ渡されることができる。例えば、もし上記ウェブサーバ１１２により提供されるウェブサイトのＵＲＩがhttp://www.mysite.comであり、このＵＲＩに関する要求がスパイダーから受信されたならば、上に説明したように、上記スクリプトは、上記要求を“/spiderlinker/toc.html”を参照するように変更できる。ここで“/spiderlinker/toc.html”のファイルは上述の通り上記ＴＯＣ階層のルートであって、また、上記要求を、上記ＴＯＣサーバ１１０へアクセスするためのポート番号である上記リンク生成システム１００のポート１１５７１へ転送できる。その代わりに、http://www/mysite.com:11571/spiderlinkerなどの直接上記ＴＯＣサーバ１１１を指すハイパーリンクは上記ウェブサーバ１１２により提供されるウェブページ内に隠すことができる。検索エンジンスパイダーがそのようなハイパーリンクのページをスキャンしたとき、上記ＴＯＣサーバ１１０を指す上記ハイパーリンクが含まれる。こうして、動的コンテンツを含む上記ウェブサーバ１１２のすべての提供可能なコンテンツは、上記ＴＯＣ経由で上記検索エンジンスパイダーにより索引生成されることが可能である。
【００３０】
上記リンク生成システム１００が、上記ユーザエージェント１１４などのユーザエージェントからHTTP要求を受信したとき、上記リンク生成システム１００はコンテンツテーブル（ＴＯＣ）生成方法を、図２から図７に示されているように実行する。図２から図７における矢印は、要求または他の制御メッセージのフローよりはむしろ、データのフローを示す。上記コンテンツテーブル（ＴＯＣ）生成方法は、上記要求が上記ＴＯＣサーバ１１０により受信されて上記サーブレット１１８に渡されたとき、図２のステップ２０２で開始する。ステップ２０４において、上記サーブレット１１８は、上記要求内の接頭辞文字列“/spiderlinker/toc”の存在に基づいて、上記要求がＴＯＣページに関するか否かを決定する。もし上記要求が、ＴＯＣページに関していて、上記ＴＯＣ階層のノードに対応するならば、上記要求は上記ＴＯＣ生成モジュール１０６に渡される。上記ＴＯＣ生成モジュール１０６は、ノードに関するコンテンツテーブルページを生成するＴＯＣページ生成方法を実行する。このＴＯＣページ生成方法は、上記コンテンツ発見モジュール１０２により生成され上記データベース１０４に格納される上記ウェブサーバマップに基づき、上記ウェブサーバ１１２により提供可能な下記ノードのすべてのコンテンツへの直接および／または間接のリンクを含む。
【００３１】
ステップ２０６で、上記ＴＯＣモジュール１０６は、上記ユーザエージェントの要求に対応する上記ノードの上記ウェブサーバマップ１０４を検索する。もしそのページが見つからないとすると、上記ＴＯＣ生成モジュール１０６はこれを上記サーブレット１１８に示し、上記サーブレット１１８は、ステップ２０８においてNOT_FOUNDエラー（HTTPコード４０４）を生成し、上記ユーザエージェント１１４にそのエラーを渡すＴＯＣサーバ１１０へそのエラーを送信する。そうでなければ、もし上記ノードが見つかると、ステップ２０９で検査が実行されて、上記ノードが上記ＴＯＣから削除されるべきか否かを決定する。このステップは、上記リンク生成システム１００が管理者に上記ＴＯＣから削除されるべきとして選択されたＵＲＩを指定可能にさせるので、実行される。もしそのノードが削除されるとしてマークされると上記NOT_FOUNDエラー（HTTPコード４０４）が返される。そうでなければ、そのノードに関するコンテンツテーブルページはステップ２１０で生成される。
【００３２】
与えられたノードに関するＴＯＣページを生成するために実行される正確な方法は、上記ノードの種類に依存し、そして、図３に示されているようにＴＯＣ選択方法により選択される。上記ＷＳＭデータベース１０４に格納された各ノードは、そのノードの種類を示すデータを含む。ステップ３０２で、上記要求のノードの種類は、このデータにアクセスすることにより決定される。もし上記ノードが上記ウェブサーバ１１２の静的コンテンツに対応するならば、ステップ３０４で、NOT_FOUNDエラー（HTTPコード４０４）が、生成され、返される。
【００３３】
もし上記ノードがディレクトリのノードならば、上記ＴＯＣモジュール１０６は、図４に示されているように、そのディレクトリに関するＴＯＣページを生成するディレクトリのＴＯＣ生成方法３０６を実行する。ディレクトリのノードは、提供可能なコンテンツを含む上記ウェブサーバ１１２のディレクトリに対応する。例えば、ハイパーリンクhttp://www.mysite.com/productsに対応する上記ウェブサーバ１１２のディレクトリは、上に説明したように、http://www.mysite.com:11571/spiderlinker/toc/products.htmlの形式のハイパーリンクによりＴＯＣの中で表示される。上記ユーザエージェント１１４がこのリンクを選択したとき、このユーザエージェント１１４は、“GET /spiderlinker/toc/products.html”の形式のHTTP要求を上記ＴＯＣサーバ１１０へ送信する。上記要求は上記サーブレット１１８に渡され、上記サーブレット１１８は接頭辞“/spiderlinker/toc/”および接尾辞“.html”を削除し、残りの“products”を上記ＴＯＣ生成モジュール１０６に提供する。上記ＴＯＣ生成モジュール１０６は“products”と名付けられたノードに関し上記ＷＳＭデータベース１０４を検索し、上記ＷＳＭデータベース１０４の中でディレクトリのノードとの一致が見つけられる。
【００３４】
上記ディレクトリのＴＯＣ生成方法は、ステップ４０２および４１６で、対応するディレクトリのノードの子ノードに対応する上記ＷＳＭの中の各ノードを繰り返す。各子ノードに関し、ステップ４０３において検査が実行されて、上に説明したように、上記システム１００の管理者により上記ノードが削除されたか否かを決定する。もし上記ノードが削除されたならば、上記ノードはとばされ、次のノード（もしあれば）が処理される。ステップ４０４で、ノードの種類は、上記ノードに関するＷＳＭエントリから決定される。もし上記ノードが上記ウェブサーバ１１２の静的コンテンツ、例えば、静的コンテンツのみをもつページ“/products/mypage.html”に対応すれば、ステップ４０６において、上記ウェブサーバ１１２上に格納される静的ページ、すなわち、http://www.mysite.com/products/mypage.htmlを直接参照するハイパーリンクが生成される。そうでなければ、もし上記要素がディレクトリ、例えば、“/products/images”ならば、ステップ４０８で、上記ディレクトリに関するＴＯＣページ、例えば、http://www.mysite.com:11571/spiderlinker/toc/products/images.htmlを参照するハイパーリンクが生成される。
【００３５】
もし上記ノードが“/forums/viewmessage.php”などのスクリプトならば、ステップ４１０で検査が実行されて、上記スクリプトがパラメータをとるか否かを決定する。この情報は、階層において少なくとも１つの下のノードの存在を検査することにより、上記ウェブサーバマップデータベース１０４から決定される。もし上記スクリプトがパラメータをサポートしないと決定されれば、ステップ４１２で、上記スクリプトへの直接リンク、例えばhttp://www.mysite.com/forums/viewmessage.phpが生成される。スパイダーは、パラメータなしで呼び出されたとき、上記スクリプトにより生成される動的コンテンツを検索するためにそのようなリンクを使用可能であるので、符号化は必要ない。そうでなければ、もし上記スクリプトがパラメータを取れば、上記スクリプトに関するＴＯＣページへのハイパーリンク、例えばHTTP://www.mysite.com:11571/spiderlinker/toc/forums/viewmessage.php.htmlはステップ４１４で生成される。上記ノードの種類に関する適切なハイパーリンクを生成した後、ステップ４１６で検査が実行されて、そのディレクトリ内のすべてのノードに関してリンクが決定されたか否かを決定する。もし決定されていなければ、上記処理がステップ４０２まで戻って、そのディレクトリ内の次のノードに関するリンクを生成する。そのディレクトリ内のすべてのノードが処理されたとき、ディレクトリのＴＯＣ生成方法は終了する。
【００３６】
図３のステップ３０２に戻ると、もしＴＯＣが生成されるべきノードがスクリプトであるとすると、図５に示されているように、スクリプトのＴＯＣ生成方法３０８は上記ＴＯＣモジュール１０６により実行される。上記方法は、引数なしで実行されたとき上記スクリプトがコンテンツを生成するか否かを決定することにより、ステップ５０２で開始する。これは上記ＷＳＭデータベース１０４の中のScriptNodeの種類のフィールドがヌル値をもつ場合になる。この場合、ステップ５０４で、上記スクリプトを直接参照するハイパーリンク、例えばHTTP://www.mysite.com/forums/viewmessage.phpが生成される。ステップ５０６で、上記ＴＯＣモジュール１０６は、上記スクリプトがGET要求をサポートするか否かを決定する。これは、上記ScriptNodeのメソッドフィールドがGETメソッドを示す子ノードを上記ScriptNodeがもつ場合になる。GET要求は、スクリプトを参照するHTTP要求であって、そのスクリプトに関するＵＲＩに付加された上記スクリプトへパラメータを提供するHTTP要求の形式である。例えば、上記ウェブサーバ１１２についての“/forums/viewmessage.php”から提供されるスクリプトは、http://www.mysite.com/forums/viewmessage.php?a=1&b=2の形式のハイパーリンクを構築することにより、各々が値“1”ならびに“2”をもつ２つのパラメータ“a”ならびに“b”をもつ要求を実行するために使用可能である。この例では、（上記ウェブサーバ１１２により提供されるコンテンツのルートディレクトリに相対的に）上記スクリプト“/forums/viewmessage.php”は、値１をもつ第１のパラメータ“a”と、値２をもつ第２のパラメータ“b”とを用いて実行され、提供される。上記スクリプトは、QUERY_STRING環境変数からこれらのパラメータの名前および値を決定可能であり、次に、適切なステップを実行可能である。典型的なシナリオは、上記ウェブサーバ１１２の上記コンテンツデータベース１２４についてＳＱＬクエリーを実行して上記２つのパラメータの値に基づいて上記データベース１２２からエントリを検索する上記スクリプトに関する。次に上記スクリプトは、上記データベースモジュール１２２により上記データベース１２２から検索されたデータを組み込む動的ＨＴＭＬページを生成し、上記ウェブサーバ１１２はこの動的ページを上記ユーザエージェント１１４へ返す。
【００３７】
上記ＷＳＭデータベース１０４は、上記コンテンツデータベース１２４から生成された動的ページのノードを含む。動的コンテンツを生成する上記ウェブサーバ１１２の各スクリプトのために少なくとも１ノードが生成される。これらのノードは、動的コンテンツを生成するために使用されるスクリプトを同定し、また、上記スクリプトによりサポートされるHTTPメソッド（すなわち、GETまたはPOST）、および、動的コンテンツを生成する上記スクリプトに提供可能なすべてのパラメータ値の組み合わせを示す。したがって上記ＴＯＣ生成モジュール１０６は、どのメソッドが、上記ＷＳＭデータベース１０４からの、スクリプト、および、動的コンテンツを生成するためのすべての可能なパラメータ値の組み合わせによりサポートされるかを決定可能である。ステップ５０６で、上記スクリプトがGET要求を受け取ることが決定されるとすると、ステップ５０８で、上記スクリプトに関するGET_HTTPMethodNodeに対応するＴＯＣページへのハイパーリンクが生成される。上に説明したように、GET_HTTPMethodNodeのＴＯＣページのＵＲＩは一般的な形式HTTP://www.mysite.com:11571/spiderlinker/toc/forums/viewmessage.php./G.htmlである。ステップ５１０で、上記ＴＯＣモジュール１０６は、上記スクリプトがPOST要求を受け取るか否かを同様に決定する。もし受け取れば、POST_HTTPMethodNodeのＴＯＣページのＵＲＩがステップ５１２で生成される。例えば、http://www.mysite.com:11571/spiderlinker/toc/forums/viewmessage.php/P.htmlである。これはスクリプトのＴＯＣ生成方法を完了させる。
【００３８】
図３に戻ると、もしステップ３０２で決定されるノードの種類がパラメータをもつスクリプトに対応するならば、上記ノードは動的ページパラメータノードといい、図６に示されるように、動的ページパラメータのＴＯＣ生成方法３１０が実行される。動的ページパラメータノードは種々の形をとる。例えば、上記ノードはGETまたはPOSTメソッドにより生成される動的ページ、例えば、各々/forums/viewmessage.php/G.htmlまたは/forums/viewmessage.php/P.htmlに対応するHTTPMethodNodeであってもよい。その代わりに、上記ノードは、“/forums/viewmessage.php?a=1&b=2”などの指定されたパラメータをもつ動的コンテンツパラメータノード（ＤＣＰＮ）であってもよい。
【００３９】
動的ページパラメータのＴＯＣ生成方法はステップ６０２で開始する。ステップ６０２では、そのノードがＤＣＰＮか否か、そして、もしＤＣＰＮならば、そのスクリプトがパラメータの現在の組をもつコンテンツを生成するか否かを決定するために検査が実行される。例えば、もし上記ＤＣＰＮが“/forums/viewmessage.php?a=1&b=2”ならば、上記リンク/forums/viewmessage.php?a=1&b=2”が動的コンテンツを返すか否かか、または、コンテンツを生成するために１以上の追加のパラメータを必要とする、例えば/forums/viewmessage.php?a=1&b=2&c=3”か否かかである。もし上記ノードが、現在のパラメータをもつコンテンツを生成しないとすると、ステップ６０４で、上記方法が、それらのパラメータに対応する動的ページへのリンクを生成する。これは、図７に示されるように、動的ページリンク生成方法を実行することにより達成される。
【００４０】
上記動的ページリンク生成方法は、スパイダーおよび他のユーザエージェントが動的コンテンツを検索できるように、動的コンテンツへの符号化されたリンクを生成するために使用される。上に説明したように、典型的なスパイダーがリンク内のＵＲＩの中に‘?’、‘&’または‘=’文字を発見したとき、そのリンクを処理するのを止め、したがって、上記リンクの選択に応答して生成されたコンテンツが上記スパイダーにとってアクセス不可能になる。さらなる困難は、POST要求により生成される動的コンテンツが、POST要求の性質のため、対応するＰＨＰまたはＡＳＰスクリプトへのリンクを選択することによりアクセス不可能であることである。POST要求は、スクリプトへパラメータを送るために使用される要求の別の形式である。GET要求とは異なり、POST要求に関する上記スクリプトのパラメータはＵＲＩの一部としては指定されない。その代わり、それらのパラメータは、ＨＴＭＬページの中でFORM要素の入力要素により、または、クライアント側のスクリプト（例えばＪａｖａＳｃｒｉｐｔ）により指定される。結果として、自動化されたユーザエージェントは、上記スクリプトにより受け取られるパラメータの完全な組を決定できない（許可可能なパラメータの完全な組がFORM要素のbodyで指定される小さいクラスの形式の場合を除く）。上記動的ページリンク生成方法は、各ページへのリンクを、そのリンク内で符号化されたページのパラメータと共に生成することによりこれらの困難を緩和するので、これにより、ハイパーリンクを選択することによりユーザエージェントが動的に生成されたコンテンツにアクセスできる。符号化されたリンクが選択されたとき、上記符号化されたリンクは、以下に説明するように、要求を上記ウェブサーバ１１２に渡す前に、上記動的ページプロキシモジュール１０８により、標準的な形式へ逆変換される。
【００４１】
上記動的ページリンク生成方法は、ステップ７０２で、その動的ページがPOSTメソッドにより生成されたか否かを決定することにより開始する。上に説明したように、これは、上記ＷＳＭ１０４の中の対応するエントリから決定されるが、また、ＴＯＣノードのパスによっても決定できる（例えば、“/spiderlinker/toc/forums/viewmessage.php/Pa=1&b=2”はPOSTメソッドのノードである。）。もし上記ページがPOSTメソッドにより生成されるならば、ステップ７０４で、POSTにより生成された動的ページに対応する仮想プロキシページを参照して、符号化されたリンクが生成される。例えば、POSTメカニズムにより２つの引数a=1およびb=2を受け取るスクリプト/forum/viewmessage.phpは、典型的には、対応するプロキシリンク“/spiderlinker/content/forum/viewmessage.php/Pa=1&b=2.html”をもつ。ここで、"a=1&b=2"の部分はＵＲＩ符号化されている。しかし、常にリンクの接尾辞“.html”を使用するよりはむしろ、上記システム１００は、その代わりに、生成されたコンテンツの種類を示すリンクの接尾辞を生成するよう構成可能である。特に、上記システム１００の構成ファイルは動的コンテンツのＭＩＭＥタイプおよび各ＭＩＭＥタイプに使用される名前の拡張部をリストアップする。例えば、もし上記スクリプトがＪＰＥＧ形式のイメージを生成したら、対応するリンクは“/spiderlinker/content/forum/viewmessage.php/Pa=1&b=2.jpeg”になる。これは、ファイル名の拡張部に基づいてコンテンツの種類を決定するスパイダーを支援する。
【００４２】
上に説明したように、このリンクの生成は、ハイパーリンクを選択することによりPOST動的コンテンツを到達可能にする。“/spiderlinker/content”接頭辞は、符号化されたリンクに含まれて、以下に説明するように、上記リンクを選択することにより生成される要求が、上記ウェブサーバ１１２への送信のために標準的な形式に逆変換されるべきことを示す。上に説明したように、ＴＯＣページへのリンクは接頭辞“/spiderlinker/toc”をもつ。ＴＯＣページおよびコンテンツに関する異なる接頭辞の使用は、ＵＲＩ名前空間の衝突が避けられることを確実にする。
【００４３】
そうでなければ、もし動的ページがGETメカニズムにより生成されるならば、ステップ７０６で検査が実行されて、システム管理者がシステムを構成して直接GETリンキングを使用するか否かを決定する。上記リンク生成システム１００は、１以上のパラメータが付加されたハイパーリンクを処理できないスパイダーを支援するため、GETリンクがPOST要求の符号化と同様な方法で符号化され、プロキシされることを可能にする。この符号化は、形式“/spiderlinker/content/forum/viewmessage.php/Ga=1&b=2.html”のリンクを提供することにより、ステップ７０４で実行される。ここで、再度、"a=1&b=2"部分はＵＲＩ符号化されている。しかし、もし直接GETリンキングが可能になるならば、ステップ７０８で、上記方法が、上記ウェブサーバ１１２の元のページを直接指す標準的なプロキシされていないリンク、例えば、“/forum/viewmessage.php?a=1&b=2”を生成する。システム管理者は、１以上のパラメータが付加されたGET要求を処理しないスパイダーにより上記ＴＯＣページが処理される必要がなければ、直接GETリンキングを使用することを選択可能である。こうして、動的ページリンク生成方法が終了する。
【００４４】
図６に戻ると、動的ページパラメータのＴＯＣ生成方法は、ステップ６０６および６１４を使用して、ノードに関して構成された追加のパラメータを繰り返す。新しいノードを定義する追加のパラメータの各組に関して、上記方法は、ステップ６０８で、上記ノードの子ノードがその子ノードの子、すなわち、階層でより下のノードをもつか否かを決定する。もし動的コンテンツが、他のパラメータに加え、上記ノードのパラメータを含むパラメータ文字列を使用して生成可能であるならば、上記ノードは子をもつ。そのような場合、上記追加のパラメータに対応するリンクは、新しい、より下の階層のＴＯＣページの中に提供され、それ故、上記方法は、ステップ６１２で、そのより下の階層のノードに関するＴＯＣページへのリンクを生成する。そうでなければ、もし現在の上記より下の階層のノードがそれ自体子をもたなければ、ステップ６１０で、上記方法は、上に説明したように、図７の動的ページリンク生成方法を実行することにより、現在のノードのパラメータに関する動的ページへのリンクを生成する。例えば、“/spiderlinker/toc/forum/viewmessage.php/Pa=1&b=3.html”である。どちらの場合でも、リンクを生成した後、上記方法は、ステップ６１４でステップ６０６に戻って、追加のパラメータの次の組を処理する。もし追加のパラメータがもうなければ、上記動的ページパラメータのＴＯＣ生成方法は終了する。
【００４５】
これらの符号化されたGETおよびPOSTメソッドのリンクが上記ユーザエージェント１１４に使用され、上記ウェブサーバ１１２から動的コンテンツを検索するために、これらのリンクを選択することに応答して送信されるHTTP要求は、それぞれ、標準的なGETまたはPOST要求に変換される。この変換は動的ページプロキシモジュール１０８により実行されて、変換された要求を上記ウェブサーバ１１２に渡す。図２に戻ると、上記ＴＯＣサーバ１１０により受信される要求は、ステップ２１２で検査されて、上記要求が、その要求の中の接頭辞“/spiderlinker/content”の存在により示されるように、プロキシされた動的ページに関するか否かを決定する。もし上記要求がプロキシされたコンテンツに関するものでなく、ステップ２０４まで、上記要求がＴＯＣページに関するものでもなければ、上記要求は受け取られず、上記ＴＯＣサーバ１１０は、ステップ２１４で、NOT_FOUNDエラー（HTTPコード４０４）を上記ユーザエージェント１１４に返す。
【００４６】
そうでなければ、もし上記要求が、プロキシされた動的ページに関するものであれば、ステップ２１６で、上記要求は変換される。もし上記要求が、符号化されたGET要求、例えば“/spiderlinker/content/forums/viewmessage.php/Ga=1&b=2.html”であって、"a=1&b=2"部分がＵＲＩ符号化されているならば、“/spiderlinker/content”接頭辞が削除され、"/G"部分は“?”に変換され、ＵＲＩ符号化部分は復号され、ＵＲＩ接尾辞（この場合“.html”）が削除されて“/forums/viewmessage.php?a=1&b=2”を与える。次に、上記変換された要求は、ステップ２１８で、上記ウェブサーバ１１２に渡される。
【００４７】
もし符号化された要求がPOST要求、例えば、"a=1&b=2"部分がＵＲＩ符号化された“/spiderlinker/content/forums/viewmessage.php/Pa=1&b=2.html”に関するものであれば、変換が以下のように実行される。“/spiderlinker/content”接頭辞が削除され、前記要求の最後のスラッシュからの最後の部分が削除され、標準的なPOST要求形式で、１行に１つずつ、上記パラメータが復号され提供される。例えば、上記要求はフォーマット化され、上記ウェブサーバ１１２に以下のように送信可能である。
POST /forums/viewmessage.php HTTP/1.0
...
&a=1
&b=2
ここで、上記省略記号は、Accept、User-Agent、From、Content-TypeおよびContent-Lengthを含む標準的なPOST要求フィールドを表す。上記ウェブサーバ１１２がこの要求を受信したとき、スクリプト“/forums/viewmessage.php”が実行されて、動的コンテンツを生成し、その結果は上記動的ページプロキシモジュール１０８に返される。
【００４８】
もし上記ウェブサーバ１１２から返された動的コンテンツがＨＴＭＬウェブページであると決定されるならば（ステップ２２０）、上記ウェブサーバ１１２の適切なＵＲＩを参照するＨＴＭＬのBASEタグは、もし既に存在していなければ、ステップ２２２で、上記ウェブページに加えられる。BASEタグを含むことは、動的に生成されたウェブページの中の相対的な参照が常に上記ウェブサーバ１１２を参照し、/spiderlinker/contentの名前空間の中の存在しない相対的リンクを参照しないことを確実にする。例えば、リンク“http://www.mysite.com:11571/spiderlinker/content/forums/viewmessage.php/Pa=1&b=2.html”の選択に応答して生成される動的に生成されたウェブページは相対的リンク“../products.html”を含み、そのリンクは“http://www.mysite.com/products.html”を参照することを意図している。しかし、BASEタグなしでは、上記ＴＯＣにより提供されるＵＲＩは、この相対的参照を、存在しない可能性のある“http://www.mysite.com:11571/spiderlinker/content/forums/products.html”に変化させ、とにかくも適切なコンテンツに対応しない。そのページに関する適切なＵＲＩ、この場合、
<BASE HREF="http://www.mysite.com/forums/">
をもつBASEタグを動的に生成されたページに挿入することにより、相対的参照が正しいことが保証される。次に、上記動的に生成されたコンテンツは、ステップ２２４でユーザエージェント１１４に渡される。
【００４９】
上に説明したリンク生成システム１００は、上記ユーザエージェント１１４が、上記リンク生成システム１００により生成されるＴＯＣのリンク経由で、上記ウェブサーバ１１２のすべてのコンテンツ（上に説明したように、管理者により削除されたコンテンツを除く）にアクセスできるようにする。もし上記ユーザエージェント１１４が検索エンジンスパイダーならば、上記ウェブサーバ１１２により提供されるウェブサイトの、動的コンテンツを含むコンテンツの全体が、索引生成可能であり、対応する検索エンジンを使用してウェブを検索するユーザに見えるようになる。
【００５０】
上に説明したリンク生成システム１００は、形式HTTP://www.mysite.com:11571/spiderlinkerのリンクにより直接アクセス可能である。セキュリティの配慮のために、インターネット１１６からアクセス可能なできるだけ少ない上記リンク生成システム１００のポートをもつことが一般的に望まれる。さらに、ＵＲＩの中にポート番号を含む要求も望ましくない。別の実施の形態では、リンク生成システム１０１は、図８に示されるように、すべてのHTTP要求を、ポート８０を通して受信し、サーバプロキシスクリプト１３０を含む。
【００５１】
上記ウェブサーバ１１２は、上記リンク生成システム１００により受信されるすべてのHTTP要求を処理し、上記要求を上記サーバプロキシスクリプト１３０に渡すべきか否かを決定する。特に、名前が“/spiderlinker/”で始まるリソースに関する要求は、上記ＴＯＣサーバ１１０に関する要求として同定されるので、上記ウェブサーバ１１２が上記サーバプロキシスクリプト１３０を実行し、上記サーバプロキシスクリプト１３０が、上記要求を、ポート１１５７１で上記ＴＯＣサーバ１１０に渡す。この文字列で始まらないリソースに関する要求は、標準的な方法で上記ウェブサーバ１１２により処理される。上記サーバプロキシスクリプト１３０の使用は、上記リンク生成システム１００に向かうすべての要求をポート８０で受信可能にし、そしてこれが望ましい。この構成の欠点は、プロキシされたページのために生じる追加のオーバーヘッドである。例えば、もし上記ユーザエージェント１１４が、上記リンク生成システム１０１により生成され、動的コンテンツページを参照するリンクに関する要求を送信すると、この要求は以下のように処理される。
（ｉ）上記ユーザエージェント１１４は、プロキシされた動的ページに関するHTTP要求を上記リンク生成システム１００に送信する。
（ii）上記ウェブサーバ１１２は上記要求を受信し、上記要求がプロキシされた動的ページに関するものであることを決定し、上記要求を上記ＴＯＣサーバ１１０に渡す上記サーバプロキシスクリプト１３０を実行する。
（iii）上記ＴＯＣサーバ１１０は上記要求を受信し、上記サーブレット１１８経由で上記動的ページプロキシモジュール１０８に渡す。
（iv）上記動的ページプロキシモジュール１０８は上記要求を変換し、変換された要求を上記ウェブサーバ１１２に渡す。
（ｖ）上記ウェブサーバ１１２は変換された要求を受信し、動的ページを生成し、それを動的ページプロキシモジュール１０８へ返す。
（vi）上記動的ページプロキシモジュール１０８は上記ページを上記サーブレット１１８に渡し、上記サーブレット１１８はそれを上記ＴＯＣサーバ１１０に渡し、上記ＴＯＣサーバ１１０はそれを上記ユーザエージェント１１４に渡す。
【００５２】
この非効率な処理は上記リンク生成システム１０１の負荷を増し、その性能を下げる。図９に示されているように、別の実施の形態は、リンク生成システム１０３を提供し、図８のサーバプロキシ１３０をＴＯＣプロキシスクリプト１３２および動的ページプロキシスクリプト１３４で置き換える。上記ＴＯＣプロキシスクリプト１３２は、上に説明した実施の形態１０１のように、ＴＯＣページに関するHTTP要求を上記ＴＯＣサーバ１１０へ渡す。しかし、動的ページ要求は、上記ＴＯＣサーバ１１０の動的プロキシモジュール１０８によるよりも、むしろ上記動的ページプロキシスクリプト１３４により処理され、上記スクリプトにより直接扱われる。これはプロキシされた動的ページ要求のオーバーヘッドを著しく下げる。この構成では、上記動的プロキシモジュール１０８は必要でなく、上記動的ページプロキシスクリプト１３４が同等の機能性を提供する。
【００５３】
上記ＴＯＣはＨＴＭＬフォーマットで生成されているとして上に説明したが、コンテンツテーブル（ＴＯＣ）生成モジュール１０６は、構成に依存して、多くの出力フォーマットで上記ＴＯＣを生成可能である。特に、上記ＴＯＣは以下のフォーマットで生成可能である。
（ｉ）階層的構造または平面構造のどちらかをもつウェブページの１組として、または、ＴＯＣ全体を含む１ウェブページとしてのＨＴＭＬ。
（ii）ＸＭＬ（拡張マークアップ言語）。これは各リンクに関する索引生成およびメタ情報（例えば、page titleなど）の提供を可能にする。これは、ＸＭＬフォーマットにおける索引リンクを処理するよう構成された検索エンジンへの、例えば、リンク提出書式ページでの提出のため特に有用である。
（iii）ハーベストコントロールリスト（ＨＣＬ）。ＨＣＬはウェブサイトのためのＸＭＬに基づく索引ファイルであって、http://www.naa.gov.au/recordkeeping/gov_online/agls/guidelines/chpt11.htmlに説明されるように、オーストラリア政府ロケータサービス（ＡＧＬＳ）のメタデータ標準に基づいている。１９までの記述要素が定義可能である。
（iv）ファイル“sitelist.txt”。これは、http://customultraseek.org/server-sitelist.htmlに説明されるように、サイトを索引生成したとき、スパイダーの性能を改善するためにスパイダーにより使用される新しく生れた標準である。ファイル“sitelist.txt”はヘッダーおよびbodyを含む。上記ヘッダーは、“www.mysite.com:8080”などの対応するウェブサイトのドメイン名およびポート番号を定義する“Sitelist-ID”フィールドを含む。上記本文は、ハイパーリンクよりむしろ“/forums/products.html”などのＵＲＩのパス部分である、１行に１つの、複数のリンクのリストを効果的に提供する。明らかにＵＲＩおよびハイパーリンクは、上記“Sitelist-ID”を使用して、各パスから容易に生成可能である。各パスは、対応するコンテンツの、ＵＮＩＸの時間フォーマットの更新日時およびバイト数で表わした大きさを伴う。
【００５４】
各フォーマットの正確なコンテンツは、所望のように、各ドキュメントに関する特定の情報を含むよう構成可能でもある。例えば、ドキュメントのメタデータ（すなわち、１以上のＨＴＭＬ＜ＭＥＴＡ＞要素において定義される）、ドキュメントのタイトル、最新更新日時、ドキュメントからの最初のまたはサンプル抽出などの情報はＴＯＣの中に含めることができる。この特徴は、もしウェブページが、そのページが単に検索エンジンの結果を操作する目的のために生成されたと仮定すると、比較的ほとんどコンテンツがない多数のリンクを含むならば、そのウェブページを拒絶するスパイダーを用いて使用するのは特に有用である。各リンクをもつ追加の情報（例えば、ドキュメントからの抽出）を含むことにより、これはページがスパイダーにより拒絶されることを防げる。この特徴は、サイトの概観を提供する管理ツールとして、結果として生じるＴＯＣページを使用できるサイト管理者に有用でもある。上記ＴＯＣ生成モジュール１０６は、ＴＯＣリンクが生成された前の時間以来、作成または変更されたドキュメントに関してのみＴＯＣリンクを生成するよう構成可能である。これは、検索エンジンへの提出のための更新されたリンクを生成するのに特に有用である。
【００５５】
上記リンク生成システムにより生成されたＴＯＣは多くの方法で提供可能である。上に説明したように、上記ＴＯＣは、上記ＴＯＣサーバ１１０を経由して、それぞれのHTTP要求に対する１以上の応答として動的に生成および提供可能である。その代わりに、上記ＴＯＣは、１以上のデータファイルとして上記リンク生成システム１００、１０１、１０３上で生成され、次に格納できる。その代わりに、上記ＴＯＣは、シンプルメール転送プロトコル（ＳＭＴＰ）、ファイル転送プロトコル（ＦＴＰ）またはHTTPのPUTならびにHTTPのPOSTなどのネットワークプロトコル経由でリモートシステムに送信可能である。後半の方法は、検索エンジンにＴＯＣリンクを届けるのに特に有用であるので、上記ＴＯＣ生成および送達は両方とも自動的に扱われ、ウェブマスタの仕事を非常に単純化する。ＴＯＣ送達は定期的に起こるよう予定可能である。
【００５６】
複数の物理的サーバが複数のウェブサイトをサポートするために使用されている状況では、各物理的サーバに関して上記リンク生成システムの１００、１０１、１０３の１つのインスタンスをもつ必要はない。そのような場合、図１０に示されるように、分散アーキテクチャが使用できる。図１０は、ルータ１０１４経由でインターネット１１６に接続された２つの物理的ウェブサイトホストシステム１００２および１００４をもつリンク生成システム１０００を示す。各ホストシステム１００２、１００４は上記ウェブサーバ１１２と、静的ＨＴＭＬファイル、スクリプト、およびデータベースコンテンツを含むそれぞれのウェブサイトコンテンツ１００８、１０１０を含む。上記ホストシステム１００２、１００４の各々は、上記スクリプト言語モジュール１２０および上記データベースモジュール１２２も含むが、図１０には示されていない。上記ホストシステム１００２、１００４の各々は、上に説明したように、各システムのウェブサーバマップデータベース１０４を生成するために使用されるコンテンツ発見モジュール１０２のインスタンスも含む。図１０に、上記ＴＯＣサーバ１１０、上記サーブレット１１８、上記動的ページプロキシモジュール１０８、上記コンテンツテーブル生成モジュール１０６およびグローバルウェブサーバマップデータベース１０１２を含むＴＯＣシステム１００６も示されている。この配置では、上記ホストシステム１００２、１００４の各々は、上に説明したように、それ自体のローカルウェブサーバマップデータベース１０４を生成する。しかし、各ウェブサーバマップデータベース１０４の中のデータも、上記ＴＯＣシステム１００６のグローバルウェブサーバマップデータベース１０１２にコピーされる。それ故、このグローバルウェブサーバマップデータベース１０１２は、上記ホストシステム１００２、１００４により設けられるすべてのウェブサイトを表すグローバルウェブサーバマップを含む。上記ホストシステム１００２、１００４のいずれかにおいて受信されたＴＯＣページに関する要求は、対応するウェブサーバ１１２から上記ＴＯＣシステム１００６の動的ページプロキシ１０８へ転送される。それに応じて、ＴＯＣページは、通常の方法で、しかし、上記グローバルウェブサーバマップデータベース１０１２を使用して、生成される。
【００５７】
図１０は２つの物理的ホストシステム１００２、１００４のみの配置を示すけれども、この配置は、追加の物理的ホストシステムを備えるが、これらのシステムにより設けられるウェブサイトのためのＴＯＣページを生成する１つのグローバルＴＯＣシステム１００６を維持しつつ、使用可能である。
【００５８】
上記配置の別の効果は、上記物理的ホストシステム１００２、１００４により設けられたすべてのウェブサイトのウェブサイトコンテンツのグローバル処理を可能にする。例えば、グローバルウェブサーバマップデータベース１０１２内の各エントリは、対応するウェブサイトノードのアクセス頻度などの順位付け数値データと関連付け可能である。次に、このデータは、上記ＴＯＣシステム１００６により生成されるリンクと共に提供されて、対応するウェブページが静的に生成されるか動的に生成されるかにかかわらず、対応する上記ウェブページのアクセス頻度で検索エンジンの結果を順位付け可能にする。上記リンク生成システム１００、１０１、１０３、１０００は、ウェブページおよびインターネットに関して上に説明したけれども、上記ＴＯＣ生成方法は任意の構造化データ集合に応用できる。ここで上記の構造化データ集合のノードが他のノードへの１以上のリンクを含む。典型的には、必須ではないけれども、そのようなデータ集合は階層的に構造化される。階層データ集合の例は、ファイルシステム、ＦＴＰサイト、およびＬＤＡＰサーバを含む。
【図面の簡単な説明】
【００５９】
【図１】通信ネットワークを経由してリモートユーザエージェントに接続されたリンク生成システムの好ましい実施の形態のブロック図
【図２】本リンク生成システムにより実行されるコンテンツテーブル（ＴＯＣ）生成方法のフローチャート
【図３】本リンク生成システムにより実行されるコンテンツテーブル選択方法のフローチャート
【図４】本ＴＯＣ生成方法のディレクトリのＴＯＣ生成方法のフローチャート
【図５】本ＴＯＣ生成方法のスクリプトのＴＯＣ生成方法のフローチャート
【図６】本ＴＯＣ生成方法の動的ページパラメータのＴＯＣ生成方法のフローチャート
【図７】本リンク生成システムにより実行される動的ページリンク生成方法のフローチャート
【図８】本リンク生成システムの第２の好ましい実施の形態のブロック図
【図９】本リンク生成システムの第３の好ましい実施の形態のブロック図
【図１０】本リンク生成システムの第４の好ましい実施の形態のブロック図
【符号の説明】
【００６０】
１００  リンク生成システム
１０１  リンク生成システム
１０２  コンテンツ発見モジュール
１０３  リンク生成システム
１０４  ウェブサーバマップ（ＷＳＭ）データベース
１０６  コンテンツテーブル（ＴＯＣ）生成モジュール
１０８  動的ページプロキシモジュール
１１０  ＴＯＣサーバ
１１２  ウェブサーバ
１１４  ユーザエージェント
１１６  インターネットなどの通信ネットワーク
１１８  サーブレット
１２０  スクリプト言語モジュール
１２２  データベースモジュール
１２４  コンテンツデータベース
１２６  静的コンテンツファイル
１３０  サーバプロキシスクリプト
２１０  ステップ
３０６  ディレクトリに関するＴＯＣページを生成するディレクトリのＴＯＣ生成方法
３０８  スクリプトのＴＯＣ生成方法
３１０  動的ページパラメータのＴＯＣ生成方法
６０４  ステップ
６１０  ステップ
１０００  リンク生成システム
１００２  ホストシステム
１００４  ホストシステム
１００６  ＴＯＣシステム
１０１０  ウェブサイトコンテンツ
１０１２  グローバルウェブサーバマップデータベース
１０１４  ルータ
【図１】
2005538435.tif 000003
【図２】
2005538435.tif 000004
【図３】
2005538435.tif 000005
【図４】
2005538435.tif 000006
【図５】
2005538435.tif 000007
【図６】
2005538435.tif 000008
【図７】
2005538435.tif 000009
【図８】
2005538435.tif 000010
【図９】
2005538435.tif 000011
【図１０】
2005538435.tif 000012
【手続補正書】
【提出日】平成16年10月11日(2004.10.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータシステムにより実行されるリンク生成方法であって、
上記ネットワークサイトの動的に生成されたコンテンツを生成するための有効なパラメータを同定するためにネットワークサイトのデータファイルを処理するステップ；および
上記動的に生成されたコンテンツにアクセスするため、また、上記パラメータを含み、索引生成エージェントが上記動的に生成されたコンテンツの索引生成を可能にするのに適切な形式の中にある符号化されたリンクを生成するステップ
を含む方法。
【請求項２】
上記生成するステップが、上記ネットワークサイトのコンテンツに関するコンテンツテーブルを生成するステップを含み、上記コンテンツテーブルが上記符号化されたリンクを含む請求項１に記載の方法。
【請求項３】
上記コンテンツテーブルが、上記ネットワークサイトの静的コンテンツへのリンクを含む請求項２に記載の方法。
【請求項４】
上記コンテンツテーブルが１以上のページを含み、上記ページの少なくとも１つが上記ネットワークサイトのコンテンツへの１以上のリンクを含む請求項２に記載の方法。
【請求項５】
上記コンテンツテーブルが複数のページを含み、上記ページの各々が、上記ページの各々の他への１以上のリンクを含み、上記ページの少なくとも１つが上記ネットワークサイトのコンテンツへの１以上のリンクを含む請求項２に記載の方法。
【請求項６】
上記コンテンツテーブルページの中のリンクが、上記ネットワークサイトのコンテンツに対応する階層として配置される請求項５に記載の方法。
【請求項７】
与えられたパラメータに基づいて、動的にコンテンツを生成するために、スクリプトに関するコンテンツテーブルページへのリンクを生成するステップを含み、上記スクリプトに関する上記コンテンツテーブルページが、上記スクリプトの各パラメータに対応する複数の符号化されたリンクを含む請求項２に記載の方法。
【請求項８】
上記スクリプトに関する上記コンテンツテーブルページが、上記スクリプトに関するパラメータおよびパラメータ値のそれぞれの組み合わせに対応する複数の符号化されたリンクを含む請求項７に記載の方法。
【請求項９】
上記スクリプトに関する上記コンテンツテーブルページが、上記スクリプトに関するパラメータまたはパラメータ値の各々に対応するリンクを含み、少なくとも１つの共通のパラメータまたはパラメータ値を含む別のコンテンツテーブルページへの少なくとも１つのリンクを含む請求項７に記載の方法。
【請求項１０】
上記データファイルが、ウェブサーバ設定ファイル、スクリプトおよびデータベーステーブルのうち少なくとも１つを含む請求項１に記載の方法。
【請求項１１】
上記処理するステップが、上記ネットワークサイトのスクリプトを処理して、上記スクリプトの構造化クエリー言語文に基づいて有効なデータベースクエリーパラメータを同定するステップを含む請求項１に記載の方法。
【請求項１２】
上記処理するステップが、上記データファイルを処理して、上記動的に生成されたコンテンツを生成するためのデータベースクエリーのパラメータおよび値の有効な組み合わせを同定するステップを含む請求項１に記載の方法。
【請求項１３】
上記処理するステップが、上記ネットワークサイトに関連するデータベーステーブルを処理して、上記データベースクエリーのパラメータおよび値の有効な組み合わせを同定するステップを含む請求項１２に記載の方法。
【請求項１４】
上記符号化されたリンクが静的コンテンツへのリンクとして符号化される請求項１に記載の方法。
【請求項１５】
上記符号化されたリンクの各々が、上記リンクの動的に生成されたコンテンツの種類を示す接尾辞を含む請求項１に記載の方法。
【請求項１６】
上記符号化されたリンクが、上記リンクをコンテンツテーブルページへのリンクとして同定する接頭辞をもつ少なくとも１つのリンクを含み、少なくとも１つのリンクが、上記リンクを上記ネットワークサイトのコンテンツへのリンクとして同定する接頭辞をもつ請求項１に記載の方法。
【請求項１７】
リモートエージェントから、上記ネットワークサイトのコンテンツに関する要求を受信するステップ；
上記リモートエージェントが索引生成エージェントか否か決定するステップ；
もし上記リモートエージェントが索引生成エージェントならば、上記リモートエージェントへコンテンツテーブルページを送信するステップ；および
もし上記リモートエージェントが索引生成エージェントでなければ、上記リモートエージェントへ、要求されたコンテンツを送信するステップ
を含む請求項１に記載の方法。
【請求項１８】
上記符号化されたリンクもＵＲＩ符号化されている請求項１に記載の方法。
【請求項１９】
上記処理するステップが、上記データファイルを処理して、上記ネットワークサイトのすべての提供可能な静的コンテンツと上記ネットワークサイトのすべての提供可能な動的に生成されたコンテンツとを同定するステップを含み、上記生成するステップが、上記提供可能な静的コンテンツおよび上記提供可能な動的に生成されたコンテンツへのリンクを生成して、上記ネットワークサイトのすべての提供可能なコンテンツに関するコンテンツテーブルを提供するステップを含む請求項１に記載の方法。
【請求項２０】
上記動的に生成されたデータを検索するための要求データを決定するために、上記ネットワークサイトのスクリプトを処理するステップを含み、上記符号化されたリンクが、上記要求データおよび上記パラメータに基づき生成される請求項１に記載の方法。
【請求項２１】
上記スクリプトを処理するステップが、上記スクリプトを処理して、上記ネットワークサイトのデータベースにアクセスするためのアクセスデータを決定して、上記動的に生成されたコンテンツを生成する請求項２０に記載の方法。
【請求項２２】
上記処理するステップおよび上記生成するステップが定期的に実行される請求項１に記載の方法。
【請求項２３】
上記処理するステップおよび上記生成するステップが、上記ネットワークサイトのコンテンツに関する要求を受信するのに応答して実行される請求項１に記載の方法。
【請求項２４】
上記符号化されたリンクの１つを選択し、上記要求を変換し、変換された要求を上記ネットワークサイトへ渡して、上記ネットワークサイトの対応する動的に生成されたコンテンツにアクセスするのに応じて生成される要求を受信することを含む請求項１に記載の方法。
【請求項２５】
上記変換された要求がHTTPのGET要求である請求項２４に記載の方法。
【請求項２６】
上記変換された要求がHTTPのPOST要求である請求項２４に記載の方法。
【請求項２７】
上記符号化されたリンクをリモート索引生成エージェントに送信して、上記動的に生成されたデータを索引生成可能にするステップを含む請求項１に記載の方法。
【請求項２８】
HTTPのPUT、HTTPのPOST、ＦＴＰおよびＳＭＴＰの１つを使用して、上記符号化されたリンクをリモートシステムに送信するステップを含む請求項１に記載の方法。
【請求項２９】
上記ネットワークサーバのすべての提供可能なデータが、上記ページへの上記リンクのいずれか１つの選択によりアクセス可能である請求項５に記載の方法。
【請求項３０】
上記コンテンツテーブルが、ＨＴＭＬ、ＸＭＬ、ＨＣＬおよびsitelist.txtフォーマットの１つで生成される請求項１に記載の方法。
【請求項３１】
コンピュータシステムにより実行されるリンク生成方法であって、少なくとも１つの符号化されたリンクの選択に反応して、階層データ集合の動的コンテンツデータを検索するための上記少なくとも１つの符号化されたリンクを生成するステップを含み、上記少なくとも１つの符号化されたリンクが、上記動的コンテンツデータを生成する１以上のパラメータを含み、索引生成エージェントにとって適切な形式の中にあって、上記動的コンテンツデータの索引生成を可能にするリンク生成方法。
【請求項３２】
上記階層データ集合の少なくとも１つのノードのコンテンツデータへのリンクのリストを生成するステップを含み、上記リンクが、上記少なくとも１つの符号化されたリンクを含む請求項３１に記載のリンク生成方法。
【請求項３３】
上記生成するステップが、上記階層データ集合のすべての入手可能なデータへのリンクを生成するステップを含む請求項３２に記載のリンク生成方法。
【請求項３４】
上記リンクが、上記階層データ集合のコンテンツデータへの１以上の直接リンクを含む請求項３２に記載のリンク生成方法。
【請求項３５】
上記リンクが、上記階層データ集合のコンテンツデータへの１以上の間接リンクを含む請求項３２に記載のリンク生成方法。
【請求項３６】
上記リンクが、上記ノードのコンテンツデータへの少なくとも１つの直接および間接リンクを含む請求項３２に記載のリンク生成方法。
【請求項３７】
上記リンクのリストが、上記階層データ集合のノードに対応する請求項３２に記載のリンク生成方法。
【請求項３８】
上記階層データ集合が少なくとも１つのウェブサイトを含む請求項３２に記載のリンク生成方法。
【請求項３９】
上記少なくとも１つの符号化されたリンクが少なくとも１つの符号化されたPOSTクエリーを含む請求項３１に記載のリンク生成方法。
【請求項４０】
上記少なくとも１つの符号化されたリンクが少なくとも１つの符号化されたGETクエリーを含む請求項３１に記載のリンク生成方法。
【請求項４１】
リンク生成方法であって、
ネットワークサイトの動的コンテンツのための符号化されたリンクを生成し、上記符号化されたリンクの各々が、上記動的コンテンツの生成に使用する１以上のパラメータを含み、索引生成エージェントにとって適切な形式の中にあって、上記動的コンテンツの索引生成を可能にするステップ；
上記サイトのコンテンツに関し、索引生成エージェントから要求を受信するステップ；および
上記要求に、索引生成のために上記要求に対応する上記符号化されたリンクおよび上記動的コンテンツとともに応答するステップ
を含むリンク生成方法。
【請求項４２】
上記リンクが、１以上のハイパーリンク、ＸＭＬ要素、およびテキストとして生成される請求項４１に記載の方法。
【請求項４３】
請求項１から請求項４２のいずれか１つに記載のステップを実行するコンポーネントをもつリンク生成システム。
【請求項４４】
請求項１から請求項４２のいずれか１つに記載のステップを実行するプログラムコードをコンピュータ読み取り可能な記録媒体に格納したコンピュータ読み取り可能な記録媒体。
【請求項４５】
リンク生成システムであって、
ネットワークサイトのデータファイルを処理して、提供可能なデータと、上記提供可能なデータの動的に生成されたコンテンツを生成するパラメータとを同定するコンテンツ発見モジュール；および
上記提供可能なデータへのリンクを生成して、上記提供可能なデータのコンテンツを、上記リンクを使用してアクセス可能にし、上記リンクが、上記動的に生成されたコンテンツにアクセスする符号化されたリンクを含み、上記符号化されたリンクが、上記パラメータを含み、索引生成エージェントにとって適切な形式の中にあって、上記動的に生成されたコンテンツの索引生成を可能にするリンクジェネレータ
を含むリンク生成システム。
【請求項４６】
上記リンクジェネレータが、上記ネットワークサイトのデータベースを処理して、上記パラメータを決定するのに適応した請求項４５に記載のリンク生成システム。
【請求項４７】
上記符号化されたリンクの１つを選択し、上記要求を変換し、上記変換された要求を上記ネットワークサイトに渡して、上記ネットワークサイトの対応する動的に生成されたデータにアクセスすることに反応して生成される要求を受信するためのプロキシサーバを含む請求項４５に記載のリンク生成システム。
【請求項４８】
リンク生成システムであって、
各ネットワークサーバのデータファイルを処理して、提供可能なデータと、上記提供可能なデータの動的に生成されたコンテンツを生成するパラメータとを同定する１以上のコンテンツ発見モジュール；および
上記提供可能なデータへのリンクを生成して、上記提供可能なデータのコンテンツを、上記リンクを使用してアクセス可能にし、上記リンクが上記動的に生成されたコンテンツにアクセスする符号化されたリンクを含み、上記符号化されたリンクは上記パラメータを含み、索引生成エージェントが上記動的に生成されたコンテンツの索引生成を可能にするのに適切な形式の中にあるリンクジェネレータ
を含むリンク生成システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークサーバまたはウェブサイトなどの構造化データ集合のためのリンク生成システムおよびリンク生成方法に関する。
【背景技術】
【０００２】
インターネット上で入手可能な情報の増え続ける量は、興味のある情報に関連する情報を見つけることを極端に難しくすることがある。ワールドワイドウェブ上で入手可能な情報の場合、ユーザにより与えられた１以上の検索語句に一致するＨＴＭＬ（ハイパーテキストマークアップ言語）ドキュメントまたはウェブページのリストを生成するために、検索エンジンが開発されてきた。これらのページのリストは、個々のウェブページのコンテンツを解析することにより生成される逆の索引から生成される。これらのウェブページは、個々のウェブページを検索し、それらのページのコンテンツを解析し、索引を生成するハイパーテキストトランスファープロトコル（HTTP）を使用して、スパイダーすなわちウェブを進むウェブクローリングエージェントとして知られるソフトウェアモジュールにより検索される。これは、他のウェブページへのハイパーリンクを同定すること、それらのリンクされたページを検索することおよびそれらのページのコンテンツを解析することを含むことができる。スパイダーはワールドワイドウェブ自体についての索引を生成するために使用可能であり、または、１以上の指定されたウェブサイトに制限することも可能である。
【０００３】
１つのウェブサイトは有向グラフすなわちダイグラフとしてみることができ、ノード間のグラフおよび上記サイトのウェブページ内のハイパーテキストリンクに対応する上記ノード間の有向リンクを形成する提供可能なコンテンツを伴う。スパイダーが、ウェブサイトの中のノードの１つで開始し、次に、上記ノードから他のノードへリンクをたどり、以下同様である。上記スパイダーは、ノードに出会うとき、そのノードに関して要求されることを実行可能である。検索エンジンスパイダーの場合、これはノードコンテンツの索引生成を含むが、他の種類のスパイダーは、切れたハイパーリンクを調査、ドキュメントのスペルチェックなどの他のタスクを実行するために使用可能である。
【特許文献１】国際出願第ＰＣＴ／ＡＵ００／０１５５４号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
残念ながら、すべてのウェブサイトが完全につながっているわけではない。多くのウェブサイトが、ハイパーテキストリンク経由で上記ウェブサイトの残りに直接にはつながっていないページをもつ。そのようなつながっていないウェブサイトでは、スパイダーは上記ウェブサイトのすべてのノードに行くことができない。この問題は、特に、ウェブページが動的コンテンツを含むサイトにおいて目立つ。索引生成スパイダーの場合、１つのサイトのコンテンツの大きな部分は、対応する検索エンジンによりアクセス可能でないかもしれない。より多くのウェブサイトが、それらのコンテンツを静的ウェブページから、動的に生成されたコンテンツを含むより柔軟でより容易に維持できるウェブページに変えるにつれて、この問題はさらに重要になる。
【０００５】
ウェブサイト内で十分な連結性がないことは、それらのサイトのコンテンツをたどろうとするウェブサイト管理者にとっても重要な問題でもある。上記サイトの完全につなげられたグラフなしでは、上記サイトのすべてのコンテンツを見つけるのは困難な仕事になりうる。多くのコンテンツ寄稿者のいる大きなサイトでは、この仕事はほとんど不可能になりうる。
【０００６】
検索エンジンにより索引生成されていないコンテンツは、一般に見えないので、「見えないウェブ」と呼ばれている。ウェブ上で入手可能な情報の大部分が見えないと言われてきた。見えないコンテンツは、検索エンジンによりアクセスできないので、見えないコンテンツをもつウェブサイトの見えやすさを減少させ、そのようなコンテンツを見つけづらくすることにより、一般的にウェブの有用性を低下させる。
【０００７】
それ故、１以上の上記困難を多少とも解決するリンク生成システムおよび方法を提供すること、または、少なくとも、既存のリンク生成システムまたは方法の有用な代替を提供することが所望される。
【課題を解決するための手段】
【０００８】
本発明により、
上記ネットワークサイトの動的に生成されたコンテンツを生成するための有効なパラメータを同定するためにネットワークサイトのデータファイルを処理するステップ；および
上記動的に生成されたコンテンツにアクセスするため、また、上記パラメータを含み、索引生成エージェントが上記動的に生成されたコンテンツの索引生成を可能にするのに適切な形式の中にある符号化されたリンクを生成するステップ
を含むコンピュータシステムにより実行されるリンク生成方法が提供される。
【０００９】
本発明は、また、コンピュータシステムにより実行されるリンク生成方法を提供し、少なくとも１つの符号化されたリンクの選択に反応して、階層データ集合の動的コンテンツデータを検索するための上記少なくとも１つの符号化されたリンクを生成するステップを含み、上記少なくとも１つの符号化されたリンクが、上記動的コンテンツデータを生成する１以上のパラメータを含み、索引生成エージェントにとって適切な形式の中にあって、上記動的コンテンツデータの索引生成を可能にする。
【００１０】
本発明は、また、
ネットワークサイトの動的コンテンツのための符号化されたリンクを生成し、上記符号化されたリンクの各々が、上記動的コンテンツの生成に使用する１以上のパラメータを含み、索引生成エージェントにとって適切な形式の中にあって、上記動的コンテンツの索引生成を可能にするステップ；
上記サイトのコンテンツに関し、索引生成エージェントから要求を受信するステップ；および
上記要求に、索引生成のために上記要求に対応する上記符号化されたリンクおよび上記動的コンテンツとともに応答するステップ
を含むリンク生成方法を提供する。
【００１１】
本発明は、また、
ネットワークサイトのデータファイルを処理して、提供可能なデータと、上記提供可能なデータの動的に生成されたコンテンツを生成するパラメータとを同定するコンテンツ発見モジュール；および
上記提供可能なデータへのリンクを生成して、上記提供可能なデータのコンテンツを、上記リンクを使用してアクセス可能にし、上記リンクが、上記動的に生成されたコンテンツにアクセスする符号化されたリンクを含み、上記符号化されたリンクが、上記パラメータを含み、索引生成エージェントにとって適切な形式であって、上記動的に生成されたコンテンツの索引生成を可能にするリンクジェネレータ
を含むリンク生成システムを提供する。
【００１２】
本発明は、また、
各ネットワークサーバのデータファイルを処理して、提供可能なデータと、上記提供可能なデータの動的に生成されたコンテンツを生成するパラメータとを同定する１以上のコンテンツ発見モジュール；および
上記提供可能なデータへのリンクを生成して、上記提供可能なデータのコンテンツを、上記リンクを使用してアクセス可能にし、上記リンクが上記動的に生成されたコンテンツにアクセスする符号化されたリンクを含み、上記符号化されたリンクは上記パラメータを含み、索引生成エージェントが上記動的に生成されたコンテンツの索引生成を可能にするのに適切な形式の中にあるリンクジェネレータ
を含むリンク生成システムを提供する。
【発明を実施するための最良の形態】
【００１３】
以下、添付の図を参照して発明の実施の形態を説明する。
【００１４】
図１に示されているように、リンク生成システム１００は、コンテンツ発見モジュール１０２、ウェブサーバマップ（ＷＳＭ）データベース１０４、コンテンツテーブル（ＴＯＣ）生成モジュール１０６、動的ページプロキシモジュール１０８、ＴＯＣサーバ１１０、サーブレット１１８、ウェブサーバ１１２、スクリプト言語モジュール１２０、データベースモジュール１２２、コンテンツデータベース１２４、静的コンテンツファイル１２６（例えば、ハイパーテキストマークアップ言語（ＨＴＭＬ）ファイルおよびイメージファイル）および動的コンテンツを生成するスクリプト１２８を含む。上記リンク生成システム１００は、ユーザエージェント１１４がリモートコンピュータシステム上で実行することにより、インターネットなどの通信ネットワーク１１６を経由して、アクセス可能である。
【００１５】
上記リンク生成システム１００は、上記ウェブサーバ１１２により提供される各ウェブサイトの提供可能なコンテンツのコンテンツテーブル（ＴＯＣ）を生成するコンテンツテーブル生成方法を実行する。上記提供可能なコンテンツは、上記静的コンテンツファイル１２６、上記スクリプト１２８および上記コンテンツデータベース１２４の中に格納されたコンテンツを含む。上記ＴＯＣは、効果的に、完全なウェブサイトの十分につながったグラフであるので、そのサイトのコンテンツ全体をユーザエージェントに入手可能にする。上記ＴＯＣはハイパーテキストマークアップ言語（ＨＴＭＬ）で生成され、動的に生成されたコンテンツを含む、上記ウェブサーバ１１２のコンテンツ全体を、上記ＴＯＣの各ページのハイパーリンクをたどることにより、リモートユーザエージェント１１４によりアクセス可能にする。上記リモートユーザエージェントは検索エンジンスパイダーであり、したがって、対応する検索エンジンにユーザにより提供される検索クエリーに応答して、上記ウェブサーバ１１２のすべての提供可能なコンテンツへのアクセスを提供可能にする。しかし、上記ウェブサーバ１１２および上記リンク生成システム１００は、標準的なウェブブラウザおよびリンク検証スパイダーを含む他の種類のユーザエージェントによってもアクセス可能である。したがって、上記ＴＯＣは、上記ウェブサーバ１１２により提供されるウェブサイトを経由してウェブページを見ることを望む上記ウェブサーバ１１２の管理者のための管理ツールとしても役に立つ。
【００１６】
上述の実施の形態では、上記リンク生成システム１００および上記リモートコンピュータシステム１３０は、Ｕｎｉｘ（商標）オペレーティングシステムを動作しているＩｎｔｅｌ（商標）を用いたコンピュータシステムなどの標準的なコンピュータシステムであって、上記コンテンツテーブル生成方法は、上記リンク生成システム１００のモジュール１０２、１０６〜１１０、１１８により具体化される。それらのモジュールは、上記リンク生成システム１００のディスク記憶装置上に格納されたソフトウェアモジュールである。上記ＴＯＣサーバ１１０は、http://www.mortbay.org/jetty/index.htmlで入手可能なＪｅｔｔｙなどの軽量HTTPサーバであり、上記ウェブサーバ１１２はhttp://www.apache.orgで入手可能なＡｐａｃｈｅ（商標）またはマイクロソフトＩｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ（ＩＩＳ）（商標）などの標準的なHTTPサーバモジュールである。上記ウェブサーバ１１２は、リンク生成システム１００のHTTP要求の標準的なポート番号であるポート８０を通して要求を受信するように構成されるが、一方、上記ＴＯＣサーバ１１０はポート１１５７１を通る要求を受信する。
【００１７】
上記データベースモジュール１２２は、http://www.mysql.comで入手可能なＭｙＳＱＬなどの標準的なＳＱＬモジュールであって、動的なウェブサイトコンテンツを格納する上記コンテンツデータベース１２４へのＳＱＬインタフェースを提供する。上記スクリプト言語モジュール１２０は、上記データベースモジュール１２２および上記ウェブサーバ１１２の間のインタフェースを提供するhttp://www.php.netから入手可能なＰＨＰなどのスクリプト言語を提供し、上記コンテンツデータベース１２４から検索されるコンテンツを、上記ウェブサーバ１１２によりＨＴＭＬとして提供させることを可能にする。上記スクリプト１２８は、動的コンテンツを生成する上記スクリプト言語モジュール１２０により処理されるＰＨＰスクリプトである。ＰＨＰスクリプトは、上記データベースモジュール１２２により処理されるＳＱＬ文を含むことができる。
【００１８】
上記リンク生成システム１００のモジュール１０２〜１１０、１１８は、別の形では、複数のコンピュータのシステムおよびロケーションに分散可能であり、コンテンツテーブル生成方法の少なくとも一部は、別の形では、特定用途向け集積回路（ＡＳＩＣ）などの専用ハードウェア回路により具体化される。
【００１９】
管理者は、仮想ホストおよびそれらのエイリアスのリスト、および、各仮想ホストの提供可能なコンテンツのルートディレクトリへのパスを提供することにより、上記ウェブサーバ１１２により提供される１以上のウェブサイトのための上記リンク生成システム１００を構成可能である。その代わり、管理者は、上記ウェブサーバ１１２の特定のウェブサーバソフトウェアを選択可能である。例えば、もし上記ウェブサーバソフトウェアがＡｐａｃｈｅ（商標）またはマイクロソフトのＩｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｉｃｅｓ（商標）（ＩＩＳ）であるならば、上記リンク生成システム１００は、これらのサーバの構成ファイルの位置および構成の知識に基づいて、コンテンツの位置を自動的に決定できる。管理者は、また、以下に説明するように、上記リンク生成システム１００がパラメータ値タプルを生成して提供可能なコンテンツを生成可能であるように、上記ウェブサーバ１１２上ですべての動的コンテンツスクリプトに関する情報を提供することにより、上記システムを構成する。上記ウェブサーバ１１２の上記コンテンツデータベース１２４にアクセスする各スクリプトに関し、管理者は、（ｉ）上記スクリプトの位置；（ii）スクリプト中のＳＱＬのＳＥＬＥＣＴ文に使用されるパラメータのリスト；および（iii）上記コンテンツデータベース１２４にアクセスするために必要なデータベース接続パラメータを提供する。
【００２０】
すべての可能な動的コンテンツを含む上記ウェブサーバ１１２により提供可能なコンテンツの全体はコンテンツ発見モジュール１０２により決定可能である。上記コンテンツ発見モジュールは、特許文献１に示され、ここに参照により組み込まれているように、コンテンツ発見方法を実行する。上記コンテンツ発見方法は、サーバのコンテンツディレクトリツリー中のすべてのファイルを解析して、それらが、動的コンテンツを生成するために使用されるＰＨＰまたはＡＳＰスクリプトなどのスクリプトであるか否かを決定することにより、上記ウェブサーバ１１２の提供可能なコンテンツを決定する。各スクリプトに関し、すべての可能な動的コンテンツは、上記スクリプトによりクエリーされる上記コンテンツデータベース１２４の中の上記テーブルの解析に基づいて、各スクリプトに提供可能なパラメータおよびパラメータ値のすべての可能な組み合わせを決定することにより、決定される。そのようなスクリプトは、典型的には、上記ウェブサーバ１１２の上記コンテンツデータベース１２４についてＳＱＬクエリーを実行して、文章や製品情報などの動的コンテンツを抽出する。上記データベースをクエリーするために使用されるＳＱＬのＳＥＬＥＣＴ文中のパラメータを同定し、次に、上記データベースのテーブルを解析してこれらおよび他のパラメータの可能な値（これらのうちいくつかは上記コンテンツデータベース１２４をクエリーするために使用される動的ウェブページファイルまたはスクリプトに含まれてさえいないかもしれない）を決定することにより、動的コンテンツを生成するために使用されるパラメータ値の対のすべての可能な組み合わせは、上記ウェブサーバマップデータベース１０４に格納されたウェブサーバマップ（ＷＳＭ）というデータ構造のノードに格納される。上記コンテンツ発見モジュール１０２は、定期的にまたはコンテンツ変更に応答して上記コンテンツ発見方法を実行するように構成可能であるので、上記ウェブサーバ１１２のすべての提供可能なコンテンツに関する最新のウェブサーバマップを維持し、上記ウェブサーバマップデータベース１０４および上記コンテンツが厳密に同期されることを確実にする。上記ＷＳＭのノードは、コンテンツテーブル（ＴＯＣ）生成モジュール１０６により、上記データベース１０４から検索され、コンテンツテーブル（ＴＯＣ）生成モジュールは、以下に説明するように、上記ＷＳＭのノードを使用して、上記ウェブサーバ１１２により提供される各サイトに関する、完全な、ハイパーリンクの、階層的なコンテンツテーブルを生成する。
【００２１】
上記ＴＯＣは、上記ＷＳＭデータベース１０４のノードの階層に対応するＨＴＭＬドキュメントまたはウェブページの階層的な組を含み、上記ＷＳＭデータベース１０４は、上記ウェブサーバの提供可能なコンテンツの階層的ファイル構造すなわちＵＲＩ（ｕｎｉｖｅｒｓａｌ  ｒｅｓｏｕｒｃｅ  ｉｎｄｉｃａｔｏｒ）のツリーに基づいている。こうして、ウェブサーバの静的コンテンツ１２６の提供可能なファイルは、上記ＷＳＭデータベース１０４において終端ノードとして表されるが、一方、上記ウェブサーバのディレクトリは、（もしそのディレクトリが空でなければ）そのディレクトリ内のファイルおよび／またはディレクトリに対応する１以上の子ノードをもつノードとして表される。同様に、スクリプトは、もしそのスクリプトが、そのスクリプトに提供されるパラメータに依存して、変化する動的コンテンツを生成するならば、それ自体の子ノードをもつノードにより表される。もしノードが１以上の子をもてば、そのページは、他のノードへのリンクを含むことを意味する「ＴＯＣページ」という。各リンクは、対応するノードにアクセスするのに必要な情報を提供し、必ずしもハイパーリンクではないが、典型的にはハイパーリンクである。もしノードが子ノードをもたないとすると、そのページは上記ノードのコンテンツである。すなわち、上記ノードは、対応するウェブサーバのノードのコンテンツを参照するＵＲＩとして提供される。そのウェブページは上記ウェブサーバ１１２上の上記ノードに対応する。そのようなページはＴＯＣの一部と考えられるけれども、上記システム１００により生成されるＴＯＣページと区別するためにここでは「ＴＯＣページ」といわない。すべてのＴＯＣページは、上記ＴＯＣページが表すＵＲＩツリーノードの各々の子ノードのための上記対応するページ（ＴＯＣページ自体であってもなくてもよい）へのリンクを含む。もしノードが子およびそのノード自体のコンテンツをもつとすると、そのノードに関するＴＯＣページは、ノード自体のコンテンツを参照するリンクを含む。ノードを直接参照するリンクは直接リンクといい、一方、以下に説明するように、上記動的ページプロキシモジュール１０８を経由してもう１つのノードを参照するリンクは間接リンクと呼ばれる。上記直接リンクおよび上記間接リンクは１以上のＴＯＣページ内に配置可能である。
【００２２】
上記リンク生成システム１００は、定期的に、または、上記ウェブサーバマップデータベース１０４の更新に応答して、上記ＴＯＣを前もって生成するように構成可能であるが、以下に説明するように、好ましくは、図１のユーザエージェント１１４などのユーザエージェントからの要求に応答して、個々のＴＯＣページを動的に生成するように呼び出される。上記リンク生成システム１００により生成されるＴＯＣは、上記ＴＯＣサーバの提供可能なコンテンツルートディレクトリのサブディレクトリに対応する/spiderlinker/などのユーザ構成可能なベースＵＲＩの下に格納されるか参照される。このコンテンツルートディレクトリは、ＴＯＣ階層の最上層の“toc.html”と名付けられたファイルを含む。上記ディレクトリは、また、以下に説明するように、上記ＴＯＣ階層の残りを含む“/spiderlinker/toc”および上記動的ページプロキシモジュール１０８により生成された上記ウェブサーバ１１２の提供可能なコンテンツを表す“/spiderlinker/content”の２つのサブディレクトリを含む。
【００２３】
階層的ＴＯＣの１つの効果は、ユーザがページをブラウズすることがより容易になって、管理ツールとしての階層的ＴＯＣの有用性を高めることである。しかし、この構造は上記ＴＯＣページを横断するというスパイダーにとって不必要なオーバーヘッドをもたらす。その代わりに、上記リンク生成システム１００は、すべてのコンテンツへのリンクをもった１つのＴＯＣページとして上記ＴＯＣを生成するように構成可能である。しかし、そのようなページは典型的には非常に大きい。これはスパイダーの動作に悪影響を与えるか、悪影響を与えなくても管理ツールとしてのＴＯＣの価値を下げる。その代わりに、上記リンク生成システム１００は、合理的なページの大きさを維持するために、複数のＴＯＣページとして上記ＴＯＣを生成するが、階層構造というよりも平面構造をもつ一連のデージーチェーンのウェブページとして上記ＴＯＣを生成するよう構成可能である。すなわち、各ＴＯＣページは前のページへの１つのリンク（もしＴＯＣページが最初のＴＯＣページでなければ）と次のページへの１つのリンク（もしＴＯＣページが最後のＴＯＣページでなければ）を含むことができる。これは、上記リンクを各リンクのアクセス頻度などのある基準により分類可能にさせる。
【００２４】
スクリプトに関するＷＳＭノードはScriptNodeという。もしあるノードが子をもてばＴＯＣページは上記ノードに関して生成されるので、ＴＯＣページは、ディレクトリのノードまたは子を持つScriptNodeの中のノードに対応するＷＳＭ中のノードに関して作成される。ScriptNodeは、もし対応するスクリプトが１以上のパラメータ値の対を受け取って、変化する動的なコンテンツを生成すれば、子をもつ。上記リンク生成システム１００は、ディレクトリまたはスクリプトに関するＵＲＩに基づくディレクトリのノードおよびScriptNodeに関するＵＲＩを、それに接尾辞“.html”をつけて生成する。例えば、ディレクトリ“/forum/images/”の関するＴＯＣページのＵＲＩは“/spiderlinker/toc/forum/image.html”であり、同様に、スクリプト“/forum/viewmessage.php”に関するＴＯＣページのＵＲＩは“/spiderlinker/toc/forum/viewmessage.php.html”である。ここで、ＵＲＩ接頭辞（例えば、“http://www.mysite.com”）は簡潔さのためＵＲＩから省かれている。以下に示されるＵＲＩも、省略することにより混乱を生じさせないと考えられるときは、省略される。
【００２５】
もしスクリプトが、HTTPのGETおよび／またはPOSTメソッド（以下にさらに説明する）によりパラメータを受け取れば、ＴＯＣページが、上記スクリプトに関して上記スクリプトによりサポートされるメソッドにより生成され、それに対応するノードはHTTPMethodNodeという。HTTPMethodNodeのＴＯＣページに関するＵＲＩは、上記スクリプトのＵＲＩから構築され、スラッシュ文字“/”が続き、さらに’G.html’（GETメソッドについて）または’P.html’（POSTメソッドについて）が続く。例えば、スクリプト“/forums/viewmessage.php”に関するGETHTTPMethodNodeのＴＯＣページのＵＲＩは“/spiderlinker/toc/forums/viewmessage.php/G.html”である。
【００２６】
HTTPMethodNodeの子は動的コンテンツパラメータノード（ＤｙｎａｍｉｃＣｏｎｔｅｎｔＰａｒａｍｅｔｅｒＮｏｄｅ）またはＤＣＰＮという。これらのノードに関するＴＯＣのＵＲＩは、それらのノードがその下にあるHTTPMethodNodeのＵＲＩ（後に続く“.html”接尾辞は除く）から構築され対応するＵＲＩ符号化部分パラメータ文字列を連結し、“.html”を続ける。例えば、POSTメソッドによりパラメータの２つの組み合わせ、“b=1&a=2&c=3”および“b=1&a=2&c=4”、を受け取ることにより動的コンテンツを生成する“/forums/viewmessage.php”と名付けられたスクリプトを考える。ウェブサーバマップデータベース１０４は、したがって、b=1&a=2に対応するＤＣＰＮを含み、２つの子c=3およびc=4をもち、これは、共通のパラメータ値の対を一緒に集め、かつ、追加のパラメータに関して子ノードを生成することにより、複数のパラメータを受け取るスクリプトに関してどのようにノードが生成されるかを示す。このＤＣＰＮに関するＴＯＣのＵＲＩは“/spiderlinker/toc/forums/viewmessage.php/Pb=1&a=2.html”であり、ここに、“b=1&a=2”の部分はＵＲＩ符号化されている。ＵＲＩ符号化は、“=”および“&”などの不正文字を、“%”とそれに続くその文字の１６進ＡＳＣＩＩコードで表されるＡＳＣＩＩテキストである複数の代替文字に置き換える。例えば、“=”文字は文字列“%3D”により表され、“&”文字は“%26”により表される。結果として、上記のＵＲＩは、ＵＲＩ符号化されたとき“/spiderlinker/toc/forums/viewmessage.php/Pb%3D1%26a%3D2.html”になる。そのようなリンクをＵＲＩ符号化することは、スパイダーが上記リンクを処理することを確実にする。
【００２７】
ＴＯＣページは、典型的には、ページのtitle、他のＴＯＣページおよびコンテンツページへのリンクのリストおよびフッターを含む。上記リンクは、該当する場合には、ＴＯＣページに対応するノードの子ノードへのリンク、上記ノードのコンテンツへのリンクおよびＴＯＣ階層の中の１つ上の階層のＴＯＣページへのリンクを含む。上記フッターは、上記ＴＯＣが上記リンク生成システム１００により生成されたことを示す短いメッセージ、上記リンク生成システム１００のプロバイダのウェブサイトへのリンクをもつ著作権メッセージおよび上記ＴＯＣページが生成された日時を提供するタイムスタンプを含む。
【００２８】
上記ウェブサーバ１１２は、上記ユーザエージェント１１４を上記ＴＯＣサーバ１１０へ適切ならば、案内できるように構成される。これは、上記リンク生成システム１００のポート８０で受信されるHTTP要求のユーザエージェントフィールドを検査して、上記要求を送信する特定のユーザエージェントがウェブブラウザかスパイダーかを決定する上記リンク生成システム１００で、スクリプトを実行することによりなされる。もし上記ユーザエージェントが標準的なウェブブラウザならば標準的なウェブコンテンツが上記ウェブサーバ１１２から直接提供可能である。そうでないならば、もし上記ユーザエージェントが検索エンジンスパイダーならば、上記要求は、適切な変更を加えて、ＴＯＣサーバ１１０へ渡されることができる。例えば、もし上記ウェブサーバ１１２により提供されるウェブサイトのＵＲＩがhttp://www.mysite.comであり、このＵＲＩに関する要求がスパイダーから受信されたならば、上に説明したように、上記スクリプトは、上記要求を“/spiderlinker/toc.html”を参照するように変更できる。ここで“/spiderlinker/toc.html”のファイルは上述の通り上記ＴＯＣ階層のルートであって、また、上記要求を、上記ＴＯＣサーバ１１０へアクセスするためのポート番号である上記リンク生成システム１００のポート１１５７１へ転送できる。その代わりに、http://www/mysite.com:11571/spiderlinkerなどの直接上記ＴＯＣサーバ１１１を指すハイパーリンクは上記ウェブサーバ１１２により提供されるウェブページ内に隠すことができる。検索エンジンスパイダーがそのようなハイパーリンクのページをスキャンしたとき、上記ＴＯＣサーバ１１０を指す上記ハイパーリンクが含まれる。こうして、動的コンテンツを含む上記ウェブサーバ１１２のすべての提供可能なコンテンツは、上記ＴＯＣ経由で上記検索エンジンスパイダーにより索引生成されることが可能である。
【００２９】
上記リンク生成システム１００が、上記ユーザエージェント１１４などのユーザエージェントからHTTP要求を受信したとき、上記リンク生成システム１００はコンテンツテーブル（ＴＯＣ）生成方法を、図２から図７に示されているように実行する。図２から図７における矢印は、要求または他の制御メッセージのフローよりはむしろ、データのフローを示す。上記コンテンツテーブル（ＴＯＣ）生成方法は、上記要求が上記ＴＯＣサーバ１１０により受信されて上記サーブレット１１８に渡されたとき、図２のステップ２０２で開始する。ステップ２０４において、上記サーブレット１１８は、上記要求内の接頭辞文字列“/spiderlinker/toc”の存在に基づいて、上記要求がＴＯＣページに関するか否かを決定する。もし上記要求が、ＴＯＣページに関していて、上記ＴＯＣ階層のノードに対応するならば、上記要求は上記ＴＯＣ生成モジュール１０６に渡される。上記ＴＯＣ生成モジュール１０６は、ノードに関するコンテンツテーブルページを生成するＴＯＣページ生成方法を実行する。このＴＯＣページ生成方法は、上記コンテンツ発見モジュール１０２により生成され上記データベース１０４に格納される上記ウェブサーバマップに基づき、上記ウェブサーバ１１２により提供可能な下記ノードのすべてのコンテンツへの直接および／または間接のリンクを含む。
【００３０】
ステップ２０６で、上記ＴＯＣモジュール１０６は、上記ユーザエージェントの要求に対応する上記ノードの上記ウェブサーバマップ１０４を検索する。もしそのページが見つからないとすると、上記ＴＯＣ生成モジュール１０６はこれを上記サーブレット１１８に示し、上記サーブレット１１８は、ステップ２０８においてNOT_FOUNDエラー（HTTPコード４０４）を生成し、上記ユーザエージェント１１４にそのエラーを渡すＴＯＣサーバ１１０へそのエラーを送信する。そうでなければ、もし上記ノードが見つかると、ステップ２０９で検査が実行されて、上記ノードが上記ＴＯＣから削除されるべきか否かを決定する。このステップは、上記リンク生成システム１００が管理者に上記ＴＯＣから削除されるべきとして選択されたＵＲＩを指定可能にさせるので、実行される。もしそのノードが削除されるとしてマークされると上記NOT_FOUNDエラー（HTTPコード４０４）が返される。そうでなければ、そのノードに関するコンテンツテーブルページはステップ２１０で生成される。
【００３１】
与えられたノードに関するＴＯＣページを生成するために実行される正確な方法は、上記ノードの種類に依存し、そして、図３に示されているようにＴＯＣ選択方法により選択される。上記ＷＳＭデータベース１０４に格納された各ノードは、そのノードの種類を示すデータを含む。ステップ３０２で、上記要求のノードの種類は、このデータにアクセスすることにより決定される。もし上記ノードが上記ウェブサーバ１１２の静的コンテンツに対応するならば、ステップ３０４で、NOT_FOUNDエラー（HTTPコード４０４）が、生成され、返される。
【００３２】
もし上記ノードがディレクトリのノードならば、上記ＴＯＣモジュール１０６は、図４に示されているように、そのディレクトリに関するＴＯＣページを生成するディレクトリのＴＯＣ生成方法３０６を実行する。ディレクトリのノードは、提供可能なコンテンツを含む上記ウェブサーバ１１２のディレクトリに対応する。例えば、ハイパーリンクhttp://www.mysite.com/productsに対応する上記ウェブサーバ１１２のディレクトリは、上に説明したように、http://www.mysite.com:11571/spiderlinker/toc/products.htmlの形式のハイパーリンクによりＴＯＣの中で表示される。上記ユーザエージェント１１４がこのリンクを選択したとき、このユーザエージェント１１４は、“GET /spiderlinker/toc/products.html”の形式のHTTP要求を上記ＴＯＣサーバ１１０へ送信する。上記要求は上記サーブレット１１８に渡され、上記サーブレット１１８は接頭辞“/spiderlinker/toc/”および接尾辞“.html”を削除し、残りの“products”を上記ＴＯＣ生成モジュール１０６に提供する。上記ＴＯＣ生成モジュール１０６は“products”と名付けられたノードに関し上記ＷＳＭデータベース１０４を検索し、上記ＷＳＭデータベース１０４の中でディレクトリのノードとの一致が見つけられる。
【００３３】
上記ディレクトリのＴＯＣ生成方法は、ステップ４０２および４１６で、対応するディレクトリのノードの子ノードに対応する上記ＷＳＭの中の各ノードを繰り返す。各子ノードに関し、ステップ４０３において検査が実行されて、上に説明したように、上記システム１００の管理者により上記ノードが削除されたか否かを決定する。もし上記ノードが削除されたならば、上記ノードはとばされ、次のノード（もしあれば）が処理される。ステップ４０４で、ノードの種類は、上記ノードに関するＷＳＭエントリから決定される。もし上記ノードが上記ウェブサーバ１１２の静的コンテンツ、例えば、静的コンテンツのみをもつページ“/products/mypage.html”に対応すれば、ステップ４０６において、上記ウェブサーバ１１２上に格納される静的ページ、すなわち、http://www.mysite.com/products/mypage.htmlを直接参照するハイパーリンクが生成される。そうでなければ、もし上記要素がディレクトリ、例えば、“/products/images”ならば、ステップ４０８で、上記ディレクトリに関するＴＯＣページ、例えば、http://www.mysite.com:11571/spiderlinker/toc/products/images.htmlを参照するハイパーリンクが生成される。
【００３４】
もし上記ノードが“/forums/viewmessage.php”などのスクリプトならば、ステップ４１０で検査が実行されて、上記スクリプトがパラメータをとるか否かを決定する。この情報は、階層において少なくとも１つの下のノードの存在を検査することにより、上記ウェブサーバマップデータベース１０４から決定される。もし上記スクリプトがパラメータをサポートしないと決定されれば、ステップ４１２で、上記スクリプトへの直接リンク、例えばhttp://www.mysite.com/forums/viewmessage.phpが生成される。スパイダーは、パラメータなしで呼び出されたとき、上記スクリプトにより生成される動的コンテンツを検索するためにそのようなリンクを使用可能であるので、符号化は必要ない。そうでなければ、もし上記スクリプトがパラメータを取れば、上記スクリプトに関するＴＯＣページへのハイパーリンク、例えばHTTP://www.mysite.com:11571/spiderlinker/toc/forums/viewmessage.php.htmlはステップ４１４で生成される。上記ノードの種類に関する適切なハイパーリンクを生成した後、ステップ４１６で検査が実行されて、そのディレクトリ内のすべてのノードに関してリンクが決定されたか否かを決定する。もし決定されていなければ、上記処理がステップ４０２まで戻って、そのディレクトリ内の次のノードに関するリンクを生成する。そのディレクトリ内のすべてのノードが処理されたとき、ディレクトリのＴＯＣ生成方法は終了する。
【００３５】
図３のステップ３０２に戻ると、もしＴＯＣが生成されるべきノードがスクリプトであるとすると、図５に示されているように、スクリプトのＴＯＣ生成方法３０８は上記ＴＯＣモジュール１０６により実行される。上記方法は、引数なしで実行されたとき上記スクリプトがコンテンツを生成するか否かを決定することにより、ステップ５０２で開始する。これは上記ＷＳＭデータベース１０４の中のScriptNodeの種類のフィールドがヌル値をもつ場合になる。この場合、ステップ５０４で、上記スクリプトを直接参照するハイパーリンク、例えばHTTP://www.mysite.com/forums/viewmessage.phpが生成される。ステップ５０６で、上記ＴＯＣモジュール１０６は、上記スクリプトがGET要求をサポートするか否かを決定する。これは、上記ScriptNodeのメソッドフィールドがGETメソッドを示す子ノードを上記ScriptNodeがもつ場合になる。GET要求は、スクリプトを参照するHTTP要求であって、そのスクリプトに関するＵＲＩに付加された上記スクリプトへパラメータを提供するHTTP要求の形式である。例えば、上記ウェブサーバ１１２についての“/forums/viewmessage.php”から提供されるスクリプトは、http://www.mysite.com/forums/viewmessage.php?a=1&b=2の形式のハイパーリンクを構築することにより、各々が値“1”ならびに“2”をもつ２つのパラメータ“a”ならびに“b”をもつ要求を実行するために使用可能である。この例では、（上記ウェブサーバ１１２により提供されるコンテンツのルートディレクトリに相対的に）上記スクリプト“/forums/viewmessage.php”は、値１をもつ第１のパラメータ“a”と、値２をもつ第２のパラメータ“b”とを用いて実行され、提供される。上記スクリプトは、QUERY_STRING環境変数からこれらのパラメータの名前および値を決定可能であり、次に、適切なステップを実行可能である。典型的なシナリオは、上記ウェブサーバ１１２の上記コンテンツデータベース１２４についてＳＱＬクエリーを実行して上記２つのパラメータの値に基づいて上記データベース１２２からエントリを検索する上記スクリプトに関する。次に上記スクリプトは、上記データベースモジュール１２２により上記データベース１２２から検索されたデータを組み込む動的ＨＴＭＬページを生成し、上記ウェブサーバ１１２はこの動的ページを上記ユーザエージェント１１４へ返す。
【００３６】
上記ＷＳＭデータベース１０４は、上記コンテンツデータベース１２４から生成された動的ページのノードを含む。動的コンテンツを生成する上記ウェブサーバ１１２の各スクリプトのために少なくとも１ノードが生成される。これらのノードは、動的コンテンツを生成するために使用されるスクリプトを同定し、また、上記スクリプトによりサポートされるHTTPメソッド（すなわち、GETまたはPOST）、および、動的コンテンツを生成する上記スクリプトに提供可能なすべてのパラメータ値の組み合わせを示す。したがって上記ＴＯＣ生成モジュール１０６は、どのメソッドが、上記ＷＳＭデータベース１０４からの、スクリプト、および、動的コンテンツを生成するためのすべての可能なパラメータ値の組み合わせによりサポートされるかを決定可能である。ステップ５０６で、上記スクリプトがGET要求を受け取ることが決定されるとすると、ステップ５０８で、上記スクリプトに関するGET_HTTPMethodNodeに対応するＴＯＣページへのハイパーリンクが生成される。上に説明したように、GET_HTTPMethodNodeのＴＯＣページのＵＲＩは一般的な形式HTTP://www.mysite.com:11571/spiderlinker/toc/forums/viewmessage.php./G.htmlである。ステップ５１０で、上記ＴＯＣモジュール１０６は、上記スクリプトがPOST要求を受け取るか否かを同様に決定する。もし受け取れば、POST_HTTPMethodNodeのＴＯＣページのＵＲＩがステップ５１２で生成される。例えば、http://www.mysite.com:11571/spiderlinker/toc/forums/viewmessage.php/P.htmlである。これはスクリプトのＴＯＣ生成方法を完了させる。
【００３７】
図３に戻ると、もしステップ３０２で決定されるノードの種類がパラメータをもつスクリプトに対応するならば、上記ノードは動的ページパラメータノードといい、図６に示されるように、動的ページパラメータのＴＯＣ生成方法３１０が実行される。動的ページパラメータノードは種々の形をとる。例えば、上記ノードはGETまたはPOSTメソッドにより生成される動的ページ、例えば、各々/forums/viewmessage.php/G.htmlまたは/forums/viewmessage.php/P.htmlに対応するHTTPMethodNodeであってもよい。その代わりに、上記ノードは、“/forums/viewmessage.php?a=1&b=2”などの指定されたパラメータをもつ動的コンテンツパラメータノード（ＤＣＰＮ）であってもよい。
【００３８】
動的ページパラメータのＴＯＣ生成方法はステップ６０２で開始する。ステップ６０２では、そのノードがＤＣＰＮか否か、そして、もしＤＣＰＮならば、そのスクリプトがパラメータの現在の組をもつコンテンツを生成するか否かを決定するために検査が実行される。例えば、もし上記ＤＣＰＮが“/forums/viewmessage.php?a=1&b=2”ならば、上記リンク/forums/viewmessage.php?a=1&b=2”が動的コンテンツを返すか否かか、または、コンテンツを生成するために１以上の追加のパラメータを必要とする、例えば/forums/viewmessage.php?a=1&b=2&c=3”か否かかである。もし上記ノードが、現在のパラメータをもつコンテンツを生成しないとすると、ステップ６０４で、上記方法が、それらのパラメータに対応する動的ページへのリンクを生成する。これは、図７に示されるように、動的ページリンク生成方法を実行することにより達成される。
【００３９】
上記動的ページリンク生成方法は、スパイダーおよび他のユーザエージェントが動的コンテンツを検索できるように、動的コンテンツへの符号化されたリンクを生成するために使用される。上に説明したように、典型的なスパイダーがリンク内のＵＲＩの中に‘?’、‘&’または‘=’文字を発見したとき、そのリンクを処理するのを止め、したがって、上記リンクの選択に応答して生成されたコンテンツが上記スパイダーにとってアクセス不可能になる。さらなる困難は、POST要求により生成される動的コンテンツが、POST要求の性質のため、対応するＰＨＰまたはＡＳＰスクリプトへのリンクを選択することによりアクセス不可能であることである。POST要求は、スクリプトへパラメータを送るために使用される要求の別の形式である。GET要求とは異なり、POST要求に関する上記スクリプトのパラメータはＵＲＩの一部としては指定されない。その代わり、それらのパラメータは、ＨＴＭＬページの中でFORM要素の入力要素により、または、クライアント側のスクリプト（例えばＪａｖａＳｃｒｉｐｔ）により指定される。結果として、自動化されたユーザエージェントは、上記スクリプトにより受け取られるパラメータの完全な組を決定できない（許可可能なパラメータの完全な組がFORM要素のbodyで指定される小さいクラスの形式の場合を除く）。上記動的ページリンク生成方法は、各ページへのリンクを、そのリンク内で符号化されたページのパラメータと共に生成することによりこれらの困難を緩和するので、これにより、ハイパーリンクを選択することによりユーザエージェントが動的に生成されたコンテンツにアクセスできる。符号化されたリンクが選択されたとき、上記符号化されたリンクは、以下に説明するように、要求を上記ウェブサーバ１１２に渡す前に、上記動的ページプロキシモジュール１０８により、標準的な形式へ逆変換される。
【００４０】
上記動的ページリンク生成方法は、ステップ７０２で、その動的ページがPOSTメソッドにより生成されたか否かを決定することにより開始する。上に説明したように、これは、上記ＷＳＭ１０４の中の対応するエントリから決定されるが、また、ＴＯＣノードのパスによっても決定できる（例えば、“/spiderlinker/toc/forums/viewmessage.php/Pa=1&b=2”はPOSTメソッドのノードである。）。もし上記ページがPOSTメソッドにより生成されるならば、ステップ７０４で、POSTにより生成された動的ページに対応する仮想プロキシページを参照して、符号化されたリンクが生成される。例えば、POSTメカニズムにより２つの引数a=1およびb=2を受け取るスクリプト/forum/viewmessage.phpは、典型的には、対応するプロキシリンク“/spiderlinker/content/forum/viewmessage.php/Pa=1&b=2.html”をもつ。ここで、"a=1&b=2"の部分はＵＲＩ符号化されている。しかし、常にリンクの接尾辞“.html”を使用するよりはむしろ、上記システム１００は、その代わりに、生成されたコンテンツの種類を示すリンクの接尾辞を生成するよう構成可能である。特に、上記システム１００の構成ファイルは動的コンテンツのＭＩＭＥタイプおよび各ＭＩＭＥタイプに使用される名前の拡張部をリストアップする。例えば、もし上記スクリプトがＪＰＥＧ形式のイメージを生成したら、対応するリンクは“/spiderlinker/content/forum/viewmessage.php/Pa=1&b=2.jpeg”になる。これは、ファイル名の拡張部に基づいてコンテンツの種類を決定するスパイダーを支援する。
【００４１】
上に説明したように、このリンクの生成は、ハイパーリンクを選択することによりPOST動的コンテンツを到達可能にする。“/spiderlinker/content”接頭辞は、符号化されたリンクに含まれて、以下に説明するように、上記リンクを選択することにより生成される要求が、上記ウェブサーバ１１２への送信のために標準的な形式に逆変換されるべきことを示す。上に説明したように、ＴＯＣページへのリンクは接頭辞“/spiderlinker/toc”をもつ。ＴＯＣページおよびコンテンツに関する異なる接頭辞の使用は、ＵＲＩ名前空間の衝突が避けられることを確実にする。
【００４２】
そうでなければ、もし動的ページがGETメカニズムにより生成されるならば、ステップ７０６で検査が実行されて、システム管理者がシステムを構成して直接GETリンキングを使用するか否かを決定する。上記リンク生成システム１００は、１以上のパラメータが付加されたハイパーリンクを処理できないスパイダーを支援するため、GETリンクがPOST要求の符号化と同様な方法で符号化され、プロキシされることを可能にする。この符号化は、形式“/spiderlinker/content/forum/viewmessage.php/Ga=1&b=2.html”のリンクを提供することにより、ステップ７０４で実行される。ここで、再度、"a=1&b=2"部分はＵＲＩ符号化されている。しかし、もし直接GETリンキングが可能になるならば、ステップ７０８で、上記方法が、上記ウェブサーバ１１２の元のページを直接指す標準的なプロキシされていないリンク、例えば、“/forum/viewmessage.php?a=1&b=2”を生成する。システム管理者は、１以上のパラメータが付加されたGET要求を処理しないスパイダーにより上記ＴＯＣページが処理される必要がなければ、直接GETリンキングを使用することを選択可能である。こうして、動的ページリンク生成方法が終了する。
【００４３】
図６に戻ると、動的ページパラメータのＴＯＣ生成方法は、ステップ６０６および６１４を使用して、ノードに関して構成された追加のパラメータを繰り返す。新しいノードを定義する追加のパラメータの各組に関して、上記方法は、ステップ６０８で、上記ノードの子ノードがその子ノードの子、すなわち、階層でより下のノードをもつか否かを決定する。もし動的コンテンツが、他のパラメータに加え、上記ノードのパラメータを含むパラメータ文字列を使用して生成可能であるならば、上記ノードは子をもつ。そのような場合、上記追加のパラメータに対応するリンクは、新しい、より下の階層のＴＯＣページの中に提供され、それ故、上記方法は、ステップ６１２で、そのより下の階層のノードに関するＴＯＣページへのリンクを生成する。そうでなければ、もし現在の上記より下の階層のノードがそれ自体子をもたなければ、ステップ６１０で、上記方法は、上に説明したように、図７の動的ページリンク生成方法を実行することにより、現在のノードのパラメータに関する動的ページへのリンクを生成する。例えば、“/spiderlinker/toc/forum/viewmessage.php/Pa=1&b=3.html”である。どちらの場合でも、リンクを生成した後、上記方法は、ステップ６１４でステップ６０６に戻って、追加のパラメータの次の組を処理する。もし追加のパラメータがもうなければ、上記動的ページパラメータのＴＯＣ生成方法は終了する。
【００４４】
これらの符号化されたGETおよびPOSTメソッドのリンクが上記ユーザエージェント１１４に使用され、上記ウェブサーバ１１２から動的コンテンツを検索するために、これらのリンクを選択することに応答して送信されるHTTP要求は、それぞれ、標準的なGETまたはPOST要求に変換される。この変換は動的ページプロキシモジュール１０８により実行されて、変換された要求を上記ウェブサーバ１１２に渡す。図２に戻ると、上記ＴＯＣサーバ１１０により受信される要求は、ステップ２１２で検査されて、上記要求が、その要求の中の接頭辞“/spiderlinker/content”の存在により示されるように、プロキシされた動的ページに関するか否かを決定する。もし上記要求がプロキシされたコンテンツに関するものでなく、ステップ２０４まで、上記要求がＴＯＣページに関するものでもなければ、上記要求は受け取られず、上記ＴＯＣサーバ１１０は、ステップ２１４で、NOT_FOUNDエラー（HTTPコード４０４）を上記ユーザエージェント１１４に返す。
【００４５】
そうでなければ、もし上記要求が、プロキシされた動的ページに関するものであれば、ステップ２１６で、上記要求は変換される。もし上記要求が、符号化されたGET要求、例えば“/spiderlinker/content/forums/viewmessage.php/Ga=1&b=2.html”であって、"a=1&b=2"部分がＵＲＩ符号化されているならば、“/spiderlinker/content”接頭辞が削除され、"/G"部分は“?”に変換され、ＵＲＩ符号化部分は復号され、ＵＲＩ接尾辞（この場合“.html”）が削除されて“/forums/viewmessage.php?a=1&b=2”を与える。次に、上記変換された要求は、ステップ２１８で、上記ウェブサーバ１１２に渡される。
【００４６】
もし符号化された要求がPOST要求、例えば、"a=1&b=2"部分がＵＲＩ符号化された“/spiderlinker/content/forums/viewmessage.php/Pa=1&b=2.html”に関するものであれば、変換が以下のように実行される。“/spiderlinker/content”接頭辞が削除され、前記要求の最後のスラッシュからの最後の部分が削除され、標準的なPOST要求形式で、１行に１つずつ、上記パラメータが復号され提供される。例えば、上記要求はフォーマット化され、上記ウェブサーバ１１２に以下のように送信可能である。
POST /forums/viewmessage.php HTTP/1.0
...
&a=1
&b=2
ここで、上記省略記号は、Accept、User-Agent、From、Content-TypeおよびContent-Lengthを含む標準的なPOST要求フィールドを表す。上記ウェブサーバ１１２がこの要求を受信したとき、スクリプト“/forums/viewmessage.php”が実行されて、動的コンテンツを生成し、その結果は上記動的ページプロキシモジュール１０８に返される。
【００４７】
もし上記ウェブサーバ１１２から返された動的コンテンツがＨＴＭＬウェブページであると決定されるならば（ステップ２２０）、上記ウェブサーバ１１２の適切なＵＲＩを参照するＨＴＭＬのBASEタグは、もし既に存在していなければ、ステップ２２２で、上記ウェブページに加えられる。BASEタグを含むことは、動的に生成されたウェブページの中の相対的な参照が常に上記ウェブサーバ１１２を参照し、/spiderlinker/contentの名前空間の中の存在しない相対的リンクを参照しないことを確実にする。例えば、リンク“http://www.mysite.com:11571/spiderlinker/content/forums/viewmessage.php/Pa=1&b=2.html”の選択に応答して生成される動的に生成されたウェブページは相対的リンク“../products.html”を含み、そのリンクは“http://www.mysite.com/products.html”を参照することを意図している。しかし、BASEタグなしでは、上記ＴＯＣにより提供されるＵＲＩは、この相対的参照を、存在しない可能性のある“http://www.mysite.com:11571/spiderlinker/content/forums/products.html”に変化させ、とにかくも適切なコンテンツに対応しない。そのページに関する適切なＵＲＩ、この場合、
<BASE HREF="http://www.mysite.com/forums/">
をもつBASEタグを動的に生成されたページに挿入することにより、相対的参照が正しいことが保証される。次に、上記動的に生成されたコンテンツは、ステップ２２４でユーザエージェント１１４に渡される。
【００４８】
上に説明したリンク生成システム１００は、上記ユーザエージェント１１４が、上記リンク生成システム１００により生成されるＴＯＣのリンク経由で、上記ウェブサーバ１１２のすべてのコンテンツ（上に説明したように、管理者により削除されたコンテンツを除く）にアクセスできるようにする。もし上記ユーザエージェント１１４が検索エンジンスパイダーならば、上記ウェブサーバ１１２により提供されるウェブサイトの、動的コンテンツを含むコンテンツの全体が、索引生成可能であり、対応する検索エンジンを使用してウェブを検索するユーザに見えるようになる。
【００４９】
上に説明したリンク生成システム１００は、形式HTTP://www.mysite.com:11571/spiderlinkerのリンクにより直接アクセス可能である。セキュリティの配慮のために、インターネット１１６からアクセス可能なできるだけ少ない上記リンク生成システム１００のポートをもつことが一般的に望まれる。さらに、ＵＲＩの中にポート番号を含む要求も望ましくない。別の実施の形態では、リンク生成システム１０１は、図８に示されるように、すべてのHTTP要求を、ポート８０を通して受信し、サーバプロキシスクリプト１３０を含む。
【００５０】
上記ウェブサーバ１１２は、上記リンク生成システム１００により受信されるすべてのHTTP要求を処理し、上記要求を上記サーバプロキシスクリプト１３０に渡すべきか否かを決定する。特に、名前が“/spiderlinker/”で始まるリソースに関する要求は、上記ＴＯＣサーバ１１０に関する要求として同定されるので、上記ウェブサーバ１１２が上記サーバプロキシスクリプト１３０を実行し、上記サーバプロキシスクリプト１３０が、上記要求を、ポート１１５７１で上記ＴＯＣサーバ１１０に渡す。この文字列で始まらないリソースに関する要求は、標準的な方法で上記ウェブサーバ１１２により処理される。上記サーバプロキシスクリプト１３０の使用は、上記リンク生成システム１００に向かうすべての要求をポート８０で受信可能にし、そしてこれが望ましい。この構成の欠点は、プロキシされたページのために生じる追加のオーバーヘッドである。例えば、もし上記ユーザエージェント１１４が、上記リンク生成システム１０１により生成され、動的コンテンツページを参照するリンクに関する要求を送信すると、この要求は以下のように処理される。
（ｉ）上記ユーザエージェント１１４は、プロキシされた動的ページに関するHTTP要求を上記リンク生成システム１００に送信する。
（ii）上記ウェブサーバ１１２は上記要求を受信し、上記要求がプロキシされた動的ページに関するものであることを決定し、上記要求を上記ＴＯＣサーバ１１０に渡す上記サーバプロキシスクリプト１３０を実行する。
（iii）上記ＴＯＣサーバ１１０は上記要求を受信し、上記サーブレット１１８経由で上記動的ページプロキシモジュール１０８に渡す。
（iv）上記動的ページプロキシモジュール１０８は上記要求を変換し、変換された要求を上記ウェブサーバ１１２に渡す。
（ｖ）上記ウェブサーバ１１２は変換された要求を受信し、動的ページを生成し、それを動的ページプロキシモジュール１０８へ返す。
（vi）上記動的ページプロキシモジュール１０８は上記ページを上記サーブレット１１８に渡し、上記サーブレット１１８はそれを上記ＴＯＣサーバ１１０に渡し、上記ＴＯＣサーバ１１０はそれを上記ユーザエージェント１１４に渡す。
【００５１】
この非効率な処理は上記リンク生成システム１０１の負荷を増し、その性能を下げる。図９に示されているように、別の実施の形態は、リンク生成システム１０３を提供し、図８のサーバプロキシ１３０をＴＯＣプロキシスクリプト１３２および動的ページプロキシスクリプト１３４で置き換える。上記ＴＯＣプロキシスクリプト１３２は、上に説明した実施の形態１０１のように、ＴＯＣページに関するHTTP要求を上記ＴＯＣサーバ１１０へ渡す。しかし、動的ページ要求は、上記ＴＯＣサーバ１１０の動的プロキシモジュール１０８によるよりも、むしろ上記動的ページプロキシスクリプト１３４により処理され、上記スクリプトにより直接扱われる。これはプロキシされた動的ページ要求のオーバーヘッドを著しく下げる。この構成では、上記動的プロキシモジュール１０８は必要でなく、上記動的ページプロキシスクリプト１３４が同等の機能性を提供する。
【００５２】
上記ＴＯＣはＨＴＭＬフォーマットで生成されているとして上に説明したが、コンテンツテーブル（ＴＯＣ）生成モジュール１０６は、構成に依存して、多くの出力フォーマットで上記ＴＯＣを生成可能である。特に、上記ＴＯＣは以下のフォーマットで生成可能である。
（ｉ）階層的構造または平面構造のどちらかをもつウェブページの１組として、または、ＴＯＣ全体を含む１ウェブページとしてのＨＴＭＬ。
（ii）ＸＭＬ（拡張マークアップ言語）。これは各リンクに関する索引生成およびメタ情報（例えば、page titleなど）の提供を可能にする。これは、ＸＭＬフォーマットにおける索引リンクを処理するよう構成された検索エンジンへの、例えば、リンク提出書式ページでの提出のため特に有用である。
（iii）ハーベストコントロールリスト（ＨＣＬ）。ＨＣＬはウェブサイトのためのＸＭＬに基づく索引ファイルであって、http://www.naa.gov.au/recordkeeping/gov_online/agls/guidelines/chpt11.htmlに説明されるように、オーストラリア政府ロケータサービス（ＡＧＬＳ）のメタデータ標準に基づいている。１９までの記述要素が定義可能である。
（iv）ファイル“sitelist.txt”。これは、http://customultraseek.org/server-sitelist.htmlに説明されるように、サイトを索引生成したとき、スパイダーの性能を改善するためにスパイダーにより使用される新しく生れた標準である。ファイル“sitelist.txt”はヘッダーおよびbodyを含む。上記ヘッダーは、“www.mysite.com:8080”などの対応するウェブサイトのドメイン名およびポート番号を定義する“Sitelist-ID”フィールドを含む。上記本文は、ハイパーリンクよりむしろ“/forums/products.html”などのＵＲＩのパス部分である、１行に１つの、複数のリンクのリストを効果的に提供する。明らかにＵＲＩおよびハイパーリンクは、上記“Sitelist-ID”を使用して、各パスから容易に生成可能である。各パスは、対応するコンテンツの、ＵＮＩＸの時間フォーマットの更新日時およびバイト数で表わした大きさを伴う。
【００５３】
各フォーマットの正確なコンテンツは、所望のように、各ドキュメントに関する特定の情報を含むよう構成可能でもある。例えば、ドキュメントのメタデータ（すなわち、１以上のＨＴＭＬ＜ＭＥＴＡ＞要素において定義される）、ドキュメントのタイトル、最新更新日時、ドキュメントからの最初のまたはサンプル抽出などの情報はＴＯＣの中に含めることができる。この特徴は、もしウェブページが、そのページが単に検索エンジンの結果を操作する目的のために生成されたと仮定すると、比較的ほとんどコンテンツがない多数のリンクを含むならば、そのウェブページを拒絶するスパイダーを用いて使用するのは特に有用である。各リンクをもつ追加の情報（例えば、ドキュメントからの抽出）を含むことにより、これはページがスパイダーにより拒絶されることを防げる。この特徴は、サイトの概観を提供する管理ツールとして、結果として生じるＴＯＣページを使用できるサイト管理者に有用でもある。上記ＴＯＣ生成モジュール１０６は、ＴＯＣリンクが生成された前の時間以来、作成または変更されたドキュメントに関してのみＴＯＣリンクを生成するよう構成可能である。これは、検索エンジンへの提出のための更新されたリンクを生成するのに特に有用である。
【００５４】
上記リンク生成システムにより生成されたＴＯＣは多くの方法で提供可能である。上に説明したように、上記ＴＯＣは、上記ＴＯＣサーバ１１０を経由して、それぞれのHTTP要求に対する１以上の応答として動的に生成および提供可能である。その代わりに、上記ＴＯＣは、１以上のデータファイルとして上記リンク生成システム１００、１０１、１０３上で生成され、次に格納できる。その代わりに、上記ＴＯＣは、シンプルメール転送プロトコル（ＳＭＴＰ）、ファイル転送プロトコル（ＦＴＰ）またはHTTPのPUTならびにHTTPのPOSTなどのネットワークプロトコル経由でリモートシステムに送信可能である。後半の方法は、検索エンジンにＴＯＣリンクを届けるのに特に有用であるので、上記ＴＯＣ生成および送達は両方とも自動的に扱われ、ウェブマスタの仕事を非常に単純化する。ＴＯＣ送達は定期的に起こるよう予定可能である。
【００５５】
複数の物理的サーバが複数のウェブサイトをサポートするために使用されている状況では、各物理的サーバに関して上記リンク生成システムの１００、１０１、１０３の１つのインスタンスをもつ必要はない。そのような場合、図１０に示されるように、分散アーキテクチャが使用できる。図１０は、ルータ１０１４経由でインターネット１１６に接続された２つの物理的ウェブサイトホストシステム１００２および１００４をもつリンク生成システム１０００を示す。各ホストシステム１００２、１００４は上記ウェブサーバ１１２と、静的ＨＴＭＬファイル、スクリプト、およびデータベースコンテンツを含むそれぞれのウェブサイトコンテンツ１００８、１０１０を含む。上記ホストシステム１００２、１００４の各々は、上記スクリプト言語モジュール１２０および上記データベースモジュール１２２も含むが、図１０には示されていない。上記ホストシステム１００２、１００４の各々は、上に説明したように、各システムのウェブサーバマップデータベース１０４を生成するために使用されるコンテンツ発見モジュール１０２のインスタンスも含む。図１０に、上記ＴＯＣサーバ１１０、上記サーブレット１１８、上記動的ページプロキシモジュール１０８、上記コンテンツテーブル生成モジュール１０６およびグローバルウェブサーバマップデータベース１０１２を含むＴＯＣシステム１００６も示されている。この配置では、上記ホストシステム１００２、１００４の各々は、上に説明したように、それ自体のローカルウェブサーバマップデータベース１０４を生成する。しかし、各ウェブサーバマップデータベース１０４の中のデータも、上記ＴＯＣシステム１００６のグローバルウェブサーバマップデータベース１０１２にコピーされる。それ故、このグローバルウェブサーバマップデータベース１０１２は、上記ホストシステム１００２、１００４により設けられるすべてのウェブサイトを表すグローバルウェブサーバマップを含む。上記ホストシステム１００２、１００４のいずれかにおいて受信されたＴＯＣページに関する要求は、対応するウェブサーバ１１２から上記ＴＯＣシステム１００６の動的ページプロキシ１０８へ転送される。それに応じて、ＴＯＣページは、通常の方法で、しかし、上記グローバルウェブサーバマップデータベース１０１２を使用して、生成される。
【００５６】
図１０は２つの物理的ホストシステム１００２、１００４のみの配置を示すけれども、この配置は、追加の物理的ホストシステムを備えるが、これらのシステムにより設けられるウェブサイトのためのＴＯＣページを生成する１つのグローバルＴＯＣシステム１００６を維持しつつ、使用可能である。
【００５７】
上記配置の別の効果は、上記物理的ホストシステム１００２、１００４により設けられたすべてのウェブサイトのウェブサイトコンテンツのグローバル処理を可能にする。例えば、グローバルウェブサーバマップデータベース１０１２内の各エントリは、対応するウェブサイトノードのアクセス頻度などの順位付け数値データと関連付け可能である。次に、このデータは、上記ＴＯＣシステム１００６により生成されるリンクと共に提供されて、対応するウェブページが静的に生成されるか動的に生成されるかにかかわらず、対応する上記ウェブページのアクセス頻度で検索エンジンの結果を順位付け可能にする。上記リンク生成システム１００、１０１、１０３、１０００は、ウェブページおよびインターネットに関して上に説明したけれども、上記ＴＯＣ生成方法は任意の構造化データ集合に応用できる。ここで上記の構造化データ集合のノードが他のノードへの１以上のリンクを含む。典型的には、必須ではないけれども、そのようなデータ集合は階層的に構造化される。階層データ集合の例は、ファイルシステム、ＦＴＰサイト、およびＬＤＡＰサーバを含む。
【図面の簡単な説明】
【００５８】
【図１】通信ネットワークを経由してリモートユーザエージェントに接続されたリンク生成システムの好ましい実施の形態のブロック図
【図２】本リンク生成システムにより実行されるコンテンツテーブル（ＴＯＣ）生成方法のフローチャート
【図３】本リンク生成システムにより実行されるコンテンツテーブル選択方法のフローチャート
【図４】本ＴＯＣ生成方法のディレクトリのＴＯＣ生成方法のフローチャート
【図５】本ＴＯＣ生成方法のスクリプトのＴＯＣ生成方法のフローチャート
【図６】本ＴＯＣ生成方法の動的ページパラメータのＴＯＣ生成方法のフローチャート
【図７】本リンク生成システムにより実行される動的ページリンク生成方法のフローチャート
【図８】本リンク生成システムの第２の好ましい実施の形態のブロック図
【図９】本リンク生成システムの第３の好ましい実施の形態のブロック図
【図１０】本リンク生成システムの第４の好ましい実施の形態のブロック図
【符号の説明】
【００５９】
１００  リンク生成システム
１０１  リンク生成システム
１０２  コンテンツ発見モジュール
１０３  リンク生成システム
１０４  ウェブサーバマップ（ＷＳＭ）データベース
１０６  コンテンツテーブル（ＴＯＣ）生成モジュール
１０８  動的ページプロキシモジュール
１１０  ＴＯＣサーバ
１１２  ウェブサーバ
１１４  ユーザエージェント
１１６  インターネットなどの通信ネットワーク
１１８  サーブレット
１２０  スクリプト言語モジュール
１２２  データベースモジュール
１２４  コンテンツデータベース
１２６  静的コンテンツファイル
１３０  サーバプロキシスクリプト
２１０  ステップ
３０６  ディレクトリに関するＴＯＣページを生成するディレクトリのＴＯＣ生成方法
３０８  スクリプトのＴＯＣ生成方法
３１０  動的ページパラメータのＴＯＣ生成方法
６０４  ステップ
６１０  ステップ
１０００  リンク生成システム
１００２  ホストシステム
１００４  ホストシステム
１００６  ＴＯＣシステム
１０１０  ウェブサイトコンテンツ
１０１２  グローバルウェブサーバマップデータベース
１０１４  ルータ
【国際調査報告】
2005538435.tif 000013
2005538435.tif 000014
2005538435.tif 000015