モバイルサイトマップ
【課題】巡回ロボットシステムの使用によるものなどのモバイルドキュメントの正確な解析を提供する。
【解決手段】ドキュメントまたはドキュメントの関係を解析する方法は、1つまたは複数のネットワークアクセス可能なドキュメントについての情報を含む利用可能なメタデータドキュメントの通知を受け取るステップ、メタデータドキュメントに関連したドキュメントフォーマットインジケータを得るステップ、ドキュメントフォーマットインジケータを使用してドキュメント巡回ロボットを選択するステップ、および選択されたドキュメント巡回ロボットを使用してネットワークアクセス可能なドキュメントのうちの少なくともいくつかをクロールするステップを含む。
【解決手段】ドキュメントまたはドキュメントの関係を解析する方法は、1つまたは複数のネットワークアクセス可能なドキュメントについての情報を含む利用可能なメタデータドキュメントの通知を受け取るステップ、メタデータドキュメントに関連したドキュメントフォーマットインジケータを得るステップ、ドキュメントフォーマットインジケータを使用してドキュメント巡回ロボットを選択するステップ、および選択されたドキュメント巡回ロボットを使用してネットワークアクセス可能なドキュメントのうちの少なくともいくつかをクロールするステップを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターネットなどネットワーク上の情報の検索(locating)に関し、より詳細には、モバイルデバイスに役立つ検索エンジンなどのアプリケーションが、そのデバイスによって表示され得る形式のドキュメントに関連する結果をより容易に送ることができるように、モバイルフォーマットされたウェブサイトなどのドキュメントにインデックスを付ける技術に関する。
【0002】
本出願は、2005年8月29日出願の米国特許出願第11/214,708号の継続出願であって、その優先権を主張するものであり、参照によりこの出願を本明細書に組み込む。
【背景技術】
【0003】
インターネットおよび他のネットワークで利用可能な情報が増加するのにつれて、それらに関連した特定の情報を検索することが、ユーザにとってより困難になる。例えば、「自転車に乗る」ことについて情報を探すユーザは、自転車に乗ることの生理学的な側面、特定の地域でのサイクリングルート、特定のスポーツ用品会社の相対的な販売に関する経済情報、または様々な自転車会社の販売ページに関する情報を得る可能性がある。ユーザに与えられた情報は、十分に研究された非常に専門的な情報から、不正確か、またはほとんど役に立たない指示にまで及ぶ可能性もある。ユーザは、できるだけ多くの情報にアクセスして、最悪の材料から最良の成果が検索されることも望むものである。
【0004】
検索エンジンは、ユーザが関連データを見つけるのに役立つ。そうするために、検索エンジンは、ユーザが検索を要求するときインデックスを速く検索することができるように、一般に、利用可能なデータをすべて分類するかインデックスを付ける。一般に、検索エンジンは、例えば、ウェブページまたは画像ファイルなどのドキュメントに次々と接続するリンク(ハイパーリンクとも呼ばれる)をたどる「ウェブ巡回ロボット」を使用することにより情報を発見する。より詳細には、巡回ロボットは、各ウェブページを訪れ、次いで、そのページのすべてのリンクおよび下位のページのすべてのリンクを「クリックする」ことによって、すべてのページを訪れてインデックス付けするまでウェブを「サーフィン」する非常に好奇心の強い人によく似た動作をすることができる。このプロセスは「発見ベースの」クロール(“discovery-based”crawling)と呼ばれることがある。
【0005】
従来の発見ベースのクロールは、いくつかの状況においてある欠点を有することがある。例えば、巡回ロボットが単にリンクをたどることによって発見することができないドキュメントがあるかもしれないので、クロール有効範囲が不完全かもしれない。また、巡回ロボットは、メニュー、ジャバスクリプトのスクリプトおよびデータベースのクエリを作動させるフォームなど他のウェブベースのアプリケーションロジックに埋め込まれているいくつかのリンクを認識しないかもしれない。また、巡回ロボットは、ドキュメントが先のクロール以来変化したかどうか識別しない可能性もあり、したがって、現在のクロールサイクルの間にこのドキュメントがスキップされるおそれがある。さらに、巡回ロボットは、特定のウェブサイトをいつクロールするべきであるか、クロールプロセス中にそのウェブサイトにどれだけの負荷を置くべきか、識別しないかもしれない。高トラフィック期間中のウェブサイトのクロールおよび/またはクロール中の過大負荷は、ウェブサイトからのネットワーク資源を消耗する恐れがあり、他者に対してウェブサイトをアクセスしづらくする。
【0006】
巡回ロボットがモバイルコンテンツを探しているとき、その他の障害が発生するかもしれない。具体的には、インターネット上で利用可能な大部分のウェブサイトは、テキスト、図、アニメーションおよび他のリッチコンテンツを表示できるフル機能のデスクトップブラウザプログラム(例えばNetscape Navigator、Internet ExplorerまたはFirefox)で見るように意図されている。携帯用情報端末および携帯電話など多くのモバイルデバイスは、特定のタイプのコンテンツを表示するように能力が限定されている。したがって、それがモバイルコンテンツか、また、あるデバイスに適切に表示されるかどうかによって、あるインデックスを付けられたコンテンツを分類することが好ましいであろう。しかし、巡回ロボットがモバイルコンテンツを得ようとするとき、巡回ロボットは、コンテンツを得るために、ブラウザを使用して、実際の人間の動作をまねようとするかもしれない。すべてのタイプのコンテンツを確実に得ることができるように、巡回ロボットは、いくつかのモバイルデバイスが対応していない大きなフィーチャのセットを引き受けるかもしれず、したがって、何人かのユーザに対して不適当なコンテンツを指し示す恐れがある。また、巡回ロボットは、その巡回ロボットがフル機能のブラウザを有する高度なユーザであることを示すユーザエージェントストリングをサーバへ渡すかもしれない。次いで、サーバは、そのようなフル機能のブラウザを意図したコンテンツを返すかもしれず、また、特定のモバイルデバイスまたはモバイルデバイスのクラスを意図した等価であるがより簡単なモバイルコンテンツを隠すかもしれない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−308335号公報
【特許文献2】特開2001−014210号公報
【特許文献3】特開2005−176312号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
したがって、巡回ロボットシステムの使用によるものなどのモバイルドキュメントの正確な解析を提供する能力の必要性がある。
【課題を解決するための手段】
【0009】
この文献は、一般に、コンテンツプロバイダが、ウェブページなどの1つまたは複数のネットワークにアクセス可能なドキュメント用のサイトマップを作成することができ、かつ検索エンジンに関連したコンピュータなどの遠隔コンピュータにサイトマップを提示することができるシステムおよび方法について論じる。そこで、遠隔コンピュータは、ドキュメントまたはドキュメント中の情報に、より効率的にアクセスおよび/またはインデックス付けするためにサイトマップにアクセスすることができる。ウェブサイトまたは自動のコンテンツ管理システムを構築したウェブマスタなどのコンテンツプロバイダは、あるコンテンツが、特定のモバイルデバイスまたは表示能力が限定された他のデバイス上の表示を意図することを示してよい。遠隔コンピュータは、データへのアクセスおよびクロールのために適切な仕組みを選択するように、そのような指示を使用することができる。例えば、巡回ロボットは、XHTMLフォーマットのコンテンツの解釈を対象とするインスタンスを実現することができる。
【0010】
一実施形態では、ドキュメントまたはドキュメントの関係を解析する方法は、1つまたは複数のネットワークアクセス可能なドキュメントについての情報を含む利用可能なメタデータドキュメントの通知を受け取るステップ、メタデータドキュメントに関連したドキュメントフォーマットインジケータを得るステップ、ドキュメントフォーマットインジケータを使用してドキュメント巡回ロボットを選択するステップ、および選択されたドキュメント巡回ロボットを使用してネットワークアクセス可能なドキュメントのうちの少なくともいくつかをクロールするステップを含む。ネットワークアクセス可能なドキュメントは、共通ドメインで複数のウェブページを備えてよく、メタデータドキュメントは、ドキュメント識別子のリストを含んでよい。さらに、ドキュメントフォーマットインジケータは、XHTML、WML、iModeおよびHTMLを含む1つまたは複数のモバイルコンテンツフォーマットを示すことができる。
【0011】
いくつかの実装形態では、ネットワークアクセス可能なドキュメントのうちの少なくともいくつかのクロールから検索された情報が、インデックスに加えられてよい。また、モバイルデバイスから検索要求が受け取られてよく、検索結果は、インデックス中の情報を用いてモバイルデバイスに伝送されてよい。利用可能なメタデータドキュメントは、ドキュメントの複数のリストを参照するインデックスを備えてもよい。さらに、1つまたは複数のネットワークアクセス可能なドキュメントのためのドキュメントタイプの指示(例えば、ニュース、娯楽、通商、スポーツ、旅行、ゲームおよび金融)を受け取ることができ、このドキュメントタイプの指示を用いてドキュメントを分類することができる。プロバイダが信頼されていること保証するために、ドキュメントタイプの指示のプロバイダを確かめてもよい。
【0012】
別の実装形態では、ネットワークアクセス可能なドキュメントのリストを作成する方法が提供される。この方法は、関連したネットワークアクセス可能なドキュメントの構造を示すドキュメントを生成するステップ、ならびにアクセス用にマッピングドキュメントが利用可能であるという指示およびドキュメントのフォーマットの指示を含む通知を遠隔コンピュータに伝送するステップを含む。マッピングドキュメントは、ドキュメント識別子のリストを含んでよく、ドキュメントフォーマットの指示は、ドキュメントを解釈する能力に影響を与える1つまたは複数のモバイルドキュメントフォーマットを示してよい。通知は、マッピングドキュメントの位置の指示を含んでもよく、ユーザがウェブベースのフォームに記入するとき伝送されてよい。
【0013】
別の態様では、ネットワークアクセス可能なドキュメントをクロールするためのシステムが論じられる。このシステムは、1つまたは複数のウェブサイトにネットワークアクセス可能なドキュメントについての構成上の情報を格納するメモリ、ドキュメントについてのフォーマット情報、構成上の情報を用いてネットワークアクセス可能なドキュメントにアクセスするように構成された巡回ロボット、およびフォーマット情報によって示されたフォーマットに適合するペルソナを巡回ロボットに仮定させるように巡回ロボットに対応付けられたフォーマットセレクタを含む。構成上の情報は、URLのリストを含んでよい。また、選択されたペルソナを巡回ロボットに仮定させるためのパラメータを格納するエージェントリポジトリが与えられてよい。
【0014】
別の実装形態では、ネットワークアクセス可能なドキュメントをクロールするためのシステムが提供され、1つまたは複数のウェブサイトにネットワークアクセス可能なドキュメントについての構成上の情報を格納するメモリ、ドキュメントについてのフォーマット情報、構成上の情報を用いてネットワークアクセス可能なドキュメントにアクセスするように構成された巡回ロボット、およびネットワークアクセス可能なドキュメントへのアクセスを与えるように巡回ロボットペルソナを選択するための手段を含む。
【0015】
別の実装形態は、コンピュータシステムとともに使用するためのコンピュータプログラム製品を含む。この製品は、埋め込み式のコンピュータ可読記憶媒体およびコンピュータプログラムの仕組みを含む。この仕組みは、関連したネットワークアクセス可能なドキュメントの構造を示すマッピングドキュメントを生成し、かつアクセス用にリストが利用可能であるという指示およびドキュメントのフォーマットの指示を含む通知を遠隔コンピュータに伝送するための命令を含む。マッピングドキュメントは、ドキュメント識別子のリストを含んでよく、ドキュメントフォーマットの指示は、ドキュメントを解釈する能力に影響を与える1つまたは複数のモバイルドキュメントフォーマットを示してよい。さらに、通知は、マッピングドキュメントのロケーションの指示を含んでよく、この指示は、ユーザがウェブベースのフォームに記入するとき伝送されてよい。
【0016】
本発明の1つまたは複数の実施形態の詳細が、添付図面および以下の説明に示される。本発明の他の特徴、目的および利点は、説明および図面ならびに特許請求の範囲から明らかになる。
【0017】
様々な図面において同じ参照符号は同じ要素を示す。
【図面の簡単な説明】
【0018】
【図1】本システムの一部における情報の構成へのアクセスおよび解析のためのシステム内の要素間の通信を示す概念図である。
【図2】検索エンジンによるアクセスのためにインターネットドキュメントにインデックスを付けるためのシステムの概略図である。
【図3】システム内の情報の構成にアクセスし解析するための動作を示す流れ図である。
【図4】ウェブサイト向けのサイトマップを生成するプロセスの概念図である。
【図5】サイトマップジェネレータの制御パラメータを格納するためのデータ構造を示すブロック図である。
【図6】サイトマップを生成するためのプロセスを示す流れ図である。
【図7】サイトマップを生成するための別のプロセスを示す流れ図である。
【図8】ディファレンシャルサイトマップを生成するためのプロセスを示す流れ図である。
【図9】ウェブ巡回ロボットシステムを示すブロック図である。
【図10】サイトマップ巡回ロボットを示すブロック図である。
【図11】サイトマップに含まれた情報を基にドキュメントのダウンロードをスケジュール設定するプロセスを示す流れ図である。
【図12】サーチシステムにサイトマップを加えるための表示のスクリーンショットを例示する図である。
【図13】サーチシステムにモバイルサイトマップを加えるための表示のスクリーンショットを例示する図である。
【図14】ユーザに関連付けられたサイトマップを閲覧し管理するための表示のスクリーンショットを例示する図である。
【図15】ウェブサイトサーバを示すブロック図である。
【発明を実施するための形態】
【0019】
図1は、システム10の一部における情報の構成へのアクセスおよび解析のためのシステム10内の要素間の通信を示す概念図である。一般に、システム10は、ウェブマスタなどのユーザが、ウェブページなど複数のリンクされたドキュメントのコンテンツを含むウェブサイト向けのコンテンツを開発することができるように構成される。そこで、ユーザは、ドキュメント構成の表現である「サイトマップ」を作成することができる。例えば、以下でより詳細に説明されるように、サイトマップは、ウェブサイトの構成を示すURLのリストを有するXMLまたは他の類似のファイルフォーマットを含んでよく、コンテンツが格納されるフォーマット、コンテンツがアクセスされるべき速度、およびコンテンツの表示が更新されるべき頻度など、ある追加の一般的なデータまたはメタデータも含んでよい。
【0020】
そこで、ユーザは、直接またはアプリケーションプログラムを介して、検索エンジン向けの巡回ロボット(crawler)の要素など別のシステムに、サイトマップが有効であることを通知してよく、サイトマップのロケーションを与えてもよい。ユーザは、サイトマップが関係するドキュメントのフォーマットの指示を与えてもよい。例えば、それらがモバイルドキュメントであるならば、ユーザは、ドキュメントがXHTML、WMLまたはiModeフォーマットを有することを示すことができる。次いで、巡回ロボットは、検索エンジンのインデックスへの格納などのために、適切なクロールモードを選択し、かつドキュメントからより効率的に情報検索するように、この提示された情報を用いることができる。
【0021】
ドキュメントまたはドキュメントのフォーマットのグループの識別も自動的に行われてよい。例えば、自動プロセスは、その特徴からドキュメントのフォーマットを暗示することにより、1つまたは複数のドキュメントの特徴を識別することができる。そのようなプロセスもマシン学習システムによって実行することができ、それによって、自動的に判断することができ、判断の精度がテストされ、フォーマットに従ってドキュメントを分類するためのルールがシステムの分類能力の向上に応じて更新される。特定のフォーマットを有するものとして分類するために、(諸)ドキュメント(a document or documents)のコンテンツに対して所定のルールのセットが適用されてもよい。そのような分類技術は、Google社に譲渡された、2005年6月15日出願の「Electronic Content Classification」という名称で同時係属の米国特許出願第11/153,123号に開示されており、参照によってその全体を本明細書に組み込む。
【0022】
サイトマップが、データベースクエリによってのみアクセス可能なドキュメントなど、後続のリンクによるアクセスが不可能なドキュメントを含むことがあるので、ウェブ巡回ロボットがサイトマップを使用すると、より大きなクロール範囲を招く可能性がある。サイトマップは、最終修正日付を与えることもできる。ウェブ巡回ロボットは、ドキュメントが変化しているかどうか判断するために最終修正日付を用いることができ、それによって内容が変化していないドキュメントをクロールするのを避けることができる。変化していないドキュメントをクロールしないようにサイトマップを使用すると、ウェブ巡回ロボットおよびネットワーク巡回ロボットをかなり効率よくすることができる。サイトマップは、ウェブ巡回ロボットが、どのドキュメントを最初にクロールするか、ドキュメントをクロールするのに与えるべきフォーマットまたはペルソナ、およびクロール中にウェブサーバ上にどれだけの負荷を置くべきか、そこから判断することができる情報も含む。これも、ネットワーク資源を保護するのを支援することができる。
【0023】
この例示のシステム10における主要構成要素は、クライアント14、クライアント14に関連したサーバ16、およびクライアント14と直接には関連しないサーバシステム12である。クライアント14は、例えば、クライアント14あるいはサーバ16またはサーバシステム12など他のコンピュータ上で走るプログラムにアクセス権を与えるように構成されたパーソナルコンピュータまたは他のコンピュータでよい。クライアントは、携帯用情報端末、ワークステーション、キオスクのコンピュータまたは他の適切なコンピュータプラットフォームでもあり得る。
【0024】
サーバ16は、例えば、ウェブサーバまたはウェブに関連したコンテンツが格納されているウェブサーバと通信しているサーバでよい。したがって、例えば、クライアント14のユーザは、ウェブサイトを構築するウェブページなど複数のドキュメントを開発するために作業することができる。ユーザは、様々なドキュメントの間に、また、そのドキュメント中に、ハイパーリンクを挿入することができ、サーバ16上に格納されて、または他のところに、ウェブサイト外の他のドキュメントへのリンクも含めることができる。サーバ16は、それ自体がクライアント14の一部でもよい。特定の物理的構成は重要ではなく、様々な実装形態が当業者によって理解されるであろう。クライアント14およびサーバ16が、一般に単独の会社(ウェブサイトを有する企業など)によって稼動され、一方、サーバシステム12が、一般に個別の会社(検索エンジンプロバイダなど)によって稼動されるであろうということを示すために、クライアント14およびサーバ16は、サーバシステム12から分離した点線のボックス内に示されている。
【0025】
サーバシステム12は、クライアント14およびサーバ16から離れたシステムの一部でよい。サーバは、例えばGoogleによって運転されるものなど、検索エンジンシステムの一部でよい。一連の類似のサーバコンピュータとして示されているが、サーバシステム12におけるサーバは、例えばクライアントからの要求を受け取って、要求に対して適切なレスポンスを与えるためのブレードサーバまたは他のコンピュータプラットフォームを含むことができる。以下でより詳細に説明されるように、サーバ16は、要求に応じるために適切な情報を集めるためのコンテンツサーバおよび適切な宣伝用コンテンツを選択し生成するための広告サーバとともに、要求を受け取ってレスポンスを伝送するためのウェブサーバを含んでよい。用語「クライアント」および「サーバ」の使用は、どちらのタイプのコンピュータにも特定の必要条件を課するようには意図されない。むしろ、クライアントは単にあるデータへのアクセスを期待するコンピュータでよく、一方、サーバはデータを供給するコンピュータでよい。したがって、単一のコンピュータが、ある状況ではクライアントであり、別の状況ではサーバであり得る。
【0026】
図1において、文字の入った矢印は、システム10の要素間の情報の流れの例を示す。矢印Aによって示された最初の通信セッションでは、クライアント14は、ウェブベースのドキュメントなどのコンテンツを作成するためにサーバ16と通信する。例えば、クライアント14は、ウェブ製作アプリケーション(例えば、Adobe Sitemill、GoLive CyberStudio、HoTMetal Pro、Macromedia Dreamweaver、NetObjects Fusion、またはMicrosoft FrontPage)またはより複雑なコンテンツ管理システム(例えばVignette、Interwoven、またはStellant)のインスタンスを実行してよい。ユーザは、複数のウェブページを生成することができ、それらを様々なやり方でともに連結することができる。また、あるページ(例えば深いウェブコンテンツ)は、一般的な発見ベースのクロールが到達できるやり方でなければリンクできないかもしれない。ウェブアクセス可能なコンテンツを開発するためのプロセスは周知である。
【0027】
以下でより詳細に説明されるように、ユーザがドキュメントを公に利用可能にすることを意図するときなど、ドキュメントがある完成時点にあるとき、ユーザは、ドキュメント用のサイトマップ17を生成することができる。サイトマップ17は、ドキュメントの構成の一部またはすべてを示してよく、例えば、ドキュメント用のリストまたはユニフォームリソースロケータ(URL)のグループ化を含むことができる。サイトマップ17は、所定のXMLタグを使用して、エクステンシブルマークアップランゲージ(XML)ドキュメントなどの適切な形式をとってよい。以下でより詳細に説明されるように、サイトマップ17は、ドキュメントがクロールされるべきやり方についての一般的情報などの他の情報を含んでよい。他のフォーマットも、プレーンテキスト、コンマで区切られた値およびセミコロンで区切られた値を含んで使用されてよい。したがって、サイトマップ17は、他のアプリケーションによって、ドキュメントの構成に対するガイドとしてメタデータの形で使用されてよい。
【0028】
次いで、矢印Bによって示されるように、クライアント14は、(自動的にまたは手動で)サーバシステム12と連絡をとり、サイトマップ17についての情報を伝送することができる。例えば、クライアント14は、サイトマップ17のロケーションを提供してよい。さらに、クライアント14は、サイトマップ17に関連したドキュメントのフォーマットについての情報を提供してよい。例えば、クライアント14は、モバイルコンテンツ規格など特定の規格に従ってドキュメントがフォーマットされていることを示してよい。クライアント14は、ドキュメントをどれくらい頻繁にクロールするべきか(すなわち、たびたび更新されるドキュメントはたびたびクロールされるべきであるが、ほとんど更新されないドキュメントは、たびたびクロールされるべきでない)の指示を与えてもよい。他のそのようなパラメータも、クライアント14によって与えられ得る。1つまたは複数のそのようなパラメータもサイトマップ17または他の関連した(諸)ドキュメントに含まれてよく、その結果、サーバシステム12は、これらのパラメータに、クライアントの教唆で与えられるのでなくアクセスすることができる。
【0029】
矢印Cは、サイトマップ17が存在することを一旦通知されたならば、サーバシステム12がサイトマップ17のデータを得ることができることを示す。例えば、サーバシステム12は、矢印Bによってラベルが付けられた通信で識別されたロケーションに対してHTTP要求を出すことができ、それによってサイトマップ17内のデータを得ることができる。さらに、サイトマップ17は、1つまたは複数の他のサイトマップを指すサイトマップインデックス、またはサーバシステム12が、サーバ16でドキュメントの構成についての情報を得ることを可能にする、サイトマップと関連した別のドキュメントでよい。
【0030】
次いで、サーバシステム12は、矢印Dを通って、サーバ16上に格納されたドキュメントをクロールするかそうでなければドキュメントにアクセスすることができる。適切な環境において、サイトマップにリストを作成された各URLを通って進むことにより、クロールプロセスが生じることがあり得る。そのような識別されたドキュメントも、アクセスされたドキュメントのフルセットが、サイトマップにリストを作成されたドキュメントのスーパーセットを含み、また、すべてのドキュメントがそれらのドキュメント中で直接的または間接的に参照されるように、発見ベースのクロールによってナビゲートされてよい。
【0031】
ドキュメントフォーマットインジケータがサーバシステム12に渡されていると、サーバシステム12は、クロール動作を行うためにブラウザの特定のペルソナを選択することができる。例えば、その要求において、巡回ロボットは、特定のデバイスまたはデバイスのクラス向けのユーザエージェントインジケータを含むことがある。例えば、ユーザエージェントインジケータは、巡回ロボットがWMLフォーマットのコンテンツを解釈することしかできないという指示を与えるかもしれない。そのようなインジケータを与えることにより、巡回ロボットが適切なフォーマットでコンテンツを受け取り、他のより複雑なコンテンツに向けられないであろうということを保証するのに役立つことができる。
【0032】
巡回ロボットを有する特定のユーザエージェントを使用しても、巡回ロボットに、適切なフォーマットと関係がある特定のインデックス中のドキュメントについての情報を配置させることができる。例えば、サーバシステム12は、モバイルデバイスに表示するように設計されたコンテンツおよびモバイルデバイスには複雑すぎるコンテンツのために個別のインデックスを保持してよい。iMode、3g、xhtml、pdahtmlまたはwmlなどモバイルコンテンツの特定のタイプ(またはタイプのグループ)向けに、個別のインデックスも保持されてよい。したがって、後にユーザが検索要求を出すとき、システムは、ユーザが有するデバイスのタイプを判断することができ、そのようなデバイスに表示され得るコンテンツに関連したインデックス中でのみ検索することができる。適切なフォーマットのコンテンツが検索されるように、すべてのコンテンツが、各ドキュメントまたはドキュメントのグループのフォーマットを識別するのに有効なパラメータを有して、単一のインデックスに格納されてもよい。
【0033】
要するに、今しがた説明されたプロセスによって、ウェブサイトの作成者は、ネットワークアクセス可能な(例えばLAN、WANまたはインターネット)あるドキュメントの構成を表す(諸)ドキュメントを手動で、または自動的に生成することができる。ユーザまたはユーザのアプリケーションは、インターネット検索エンジンと関連しているサーバなど(諸)遠隔サーバに、例えば(諸)ドキュメンについてのURLを渡すことによって、ドキュメントおよび恐らくドキュメントに関係する追加パラメータのロケーションを通知することができる。次いで、遠隔サーバは、(諸)サイトマップを使用して、サイトマップがなければ不可能なほど、より効率よく、より正確に、すなわちより完全に、ドキュメントをトラバースする。さらに、サーバは、巡回ロボットがモバイルフォーマットのコンテンツなど関係のあるコンテンツを得ることを可能にする巡回ロボットの特定のペルソナを選択してよく、また、インデックスを付けられた他のコンテンツと別にこの特別のコンテンツを格納するか、そうでなければこのコンテンツにフラグを立ててよい。
【0034】
図2は、検索エンジンによるアクセスのためにインターネットドキュメントにインデックスを付けるためのシステム10の概略図である。再び、システムは、クライアント14、サーバ16およびサーバシステム12を含む。この図には、特にサーバシステム12の構成に関して追加の詳細が示されている。ここに図示されて説明された特定の構成は単に例示である。特定のアプリケーションのニーズによって必要とされるとき、他の適切かつ等価な構成も使用されてよい。また、様々な要素が加えられてよく、図示された要素が除去されてよく、あるいはシステム10の動作を変えることなく様々な要素が組み合わせられるかまたは分離されてよい。
【0035】
図2では、クライアント14は、LANまたはWANなどのネットワークを介してサーバ16にリンクして示されている。したがって、例えば、クライアント14およびサーバ16は、単一組織または関連した組織の中で動作するコンピュータを備えてよい。例えば、クライアント14は、組織のウェブ管理者またはプログラマに割り当てられたパーソナルコンピュータでよい。サーバ16は、ウェブサーバと通信中のウェブサーバまたはコンピュータなどの構成によって動作されるサーバでよい。図示されたように、クライアント14は、サイトマップ17が生成されてサーバシステム12などに対して有効になるように、サーバ16と通信することができる。
【0036】
サーバシステム12は、例えばインターネット、セルラー式データシステム、および公衆交換電話網(PSTN)を含み得るネットワーク20を介して、他のシステムに加えてクライアント14およびサーバ16と通信することができる。サーバシステム12と他の要素間の通信を管理するために、インターフェース22が与えられてよい。インターフェース22は、例えば1つまたは複数のウェブサーバを含んでよい。インターフェース22は、サーバシステム12の残りとの通信のいくらかまたはすべてを制御することができる。例えば、インターフェース22は、サーバシステム12の外から受け取られたメッセージを、サーバシステム12中の他の要素によって使用することができる形式へ再フォーマットすることができ、サーバシステム12中の適切な(諸)要素へメッセージを送ることもできる。さらに、インターフェース22は、サーバシステム12中の複数の要素からの情報を組み合わせて、サーバシステム12の外部に伝送することができるHTTPメッセージなどの形式へフォーマットすることができる。
【0037】
インターフェース22は、例えば入力メッセージを解析するように構成され得る要求インタープリタ36へメッセージを与えてよい。そのような解析によって、要求インタープリタ36は、サーバシステム12中の様々な要素のうちのどれが特定のメッセージを受け取るべきか判断することが可能になる。メッセージが送られてきたロケーションまたは送ったデバイスのタイプなどメッセージの特性を求めるために、要求インタープリタ36は、例えばヘッダ情報を調べることがある。要求インタープリタ36は、システム12のどの要素がメッセージまたはメッセージ中のある情報を見る必要があるか判断するために、構文上の指示などでメッセージのコンテンツを調べることもある。要求インタープリタ36は、インターフェース22の一部でもよい。
【0038】
検索結果を要求する入力メッセージは、検索エンジン26に送られてよく、検索エンジン26は、当技術で既知のように、検索要求に応じて適切な結果を与えることができる。例えば、検索エンジン26は、検索要求のコンテンツをインデックス28に格納された情報と比較することができる。インデックス28は、検索エンジン26が、URLなどを介してユーザに役立つ情報への接続をユーザに提供することができるように、インターネットなどのネットワーク上のドキュメント中の情報を表すデータを含むことができる。検索エンジン26は、周知のPageRankプロセスなどの方法を用いて、サーチ結果に対する一致を識別し、かつランク付けすることができる。
【0039】
そのような結果は、結果を集めてフォーマットすることができるコンテンツサーバ32を介して送られてよい。例えば、コンテンツサーバ32は、ほぼ同時の多数のサーチ要求を大規模システムにわたって扱うことができるように、複数の検索エンジン26のインスタンスから結果を受け取ることができ、各要求の一部は、特定の検索エンジン26要素によって扱われる。コンテンツサーバ32は、個々に生成された結果のすべてを、各一致の抜粋およびアドレス情報とともに、URLのリストなどの結果リストへ合併してよい。
【0040】
要求に応答した宣伝用のコンテンツなど他のコンテンツが、広告サーバ34によって提供されてよい。広告サーバ34は、それぞれが1つまたは複数のキーワードまたは他の識別子に関連する複数の販売促進項目にアクセスしてよい。広告サーバ34は、要求と識別子の一致を探してよく、次いで、要求と一致する販売促進項目を選択してよい。項目の選択および順位付けは、例えば、広告主が支払うことに合意した額、その項目についての要求と識別子の間の一致の度合、および要求と項目の間の関連性の指標(同じ要求を出している他のユーザがどれくらい多くその項目を選択したかなど)に基づいてよい。次いで、インターフェース22は、広告サーバ34とコンテンツサーバ32からの結果を組み合わせてよく、生成されたウェブページの形などで要求に対する結果を作成する。
【0041】
検索エンジン26によって使用されるインデックス28は、巡回ロボット24によってネットワークから集められたデータを用いて構築され維持され得る。具体的には、巡回ロボット24は、ドキュメント間のリンクおよびそのドキュメント中のリンクの使用、あるいは、ドキュメント、それらのロケーション、および/またはそれらの他のドキュメントとの関係について供給されたマッピング情報の使用などによって、ネットワーク上のドキュメントをトラバースすることができる。巡回ロボット24は、連続的にまたはほぼ連続的に動作することができ、複数のクロールする列または連携して動作する個別のサーバまたは全く別個の諸巡回ロボットへ分割され得る。
【0042】
巡回ロボット24は、ドキュメントの特定のフォーマットまたはスタイルを識別するように構成されてよく、あるいは複数のフォーマットまたはスタイルを解析するように構成されてよく、また、様々な有効なフォーマットまたはスタイルの間で切り換えられてよい。そのため、巡回ロボット24は、ネットワーク20上のドキュメントから情報を得るプロセスにおいて、複数の様々なエージェントまたはエージェントの組合せの役を勤めることができるかもしれない。例えば、巡回ロボット24は、WMLまたはXHTMLの能力を有する携帯電話、またはiModeデバイスの役を勤めることができる。モバイルフォーマット向けの巡回ロボットは、他のクロールするパイプラインより、個別のインスタンスまたは巡回ロボットのインスタンスとして動作することができる。しかし、モバイルのインスタンスの可視性を制限するパラメータを例外として、クロール向けの同じ一般的な構造が、フル機能のデスクトップのクロールのインスタンスと機能が限定されたモバイルのクロールの間で共有され得る。さらに、以下に説明されるように、モバイル巡回ロボットと非モバイル巡回ロボットは、ユーザまたはアプリケーションがシステムとインターフェースをとる共通のフロントエンドを共有することができる。
【0043】
巡回ロボット24は、ルールセット30からのそのような各エージェント向けのパラメータにアクセスすることができる。ルールセット30は、例えば、第1のエージェント30aを定義するパラメータを含んでよく、このパラメータは、例えば、通常のHTMLフォーマットの情報を得るためのエージェントを定義してよい。ルールセット30は、第2のエージェント30bも含んでよく、このパラメータは、例えば、XHTMLおよびWMLフォーマットの情報を得るためのエージェントを定義してよい。最終的に、ルールセット30は、例えばiModeフォーマットの情報を得るためのエージェントを定義することができるn番目のエージェント30cを含んでよい。他のフォーマットまたはフォーマットのグループ向けの他のエージェントも定義されて有効になり得る。
【0044】
巡回ロボット24は、あるドキュメントをクロールするとき巡回ロボット24によって得られたペルソナを制御するフォーマットセレクタ25を含んでもよい。フォーマットセレクタ25は、特定のサイトマップに対応する記憶装置27中の値を調べることにより、例えば特定のエージェント30a〜30nを選択してよい。例えば、クライアント14が、特定のフォーマットに一致するものとしてサイトマップ17を識別したならば、その同定が記憶装置27に格納されてよい。次いで、ユーザが最初にサイトマップ17の位置を与えた後、またはサイトマップ17の所定の更新時期などに、巡回ロボット24が、サイトマップ17によって示されたドキュメントをクロールすることを判断したとき、巡回ロボット24は、記憶装置27からのフォーマット識別および際とマップのロケーションにアクセスしてよく、巡回ロボット24が特定のデバイスのペルソナ(persona)またはデバイスのクラスを示すことを認可するエージェント30a〜30nを選択してもよい。次いで、巡回ロボット24は、サイトマップ17に関連したドキュメントをクロールし始めてよい。
【0045】
サーバシステム12は、理解しやすいように、限定された数の要素しか含まずに図示されている。しかし、必要に応じてシステム10のユーザにフル装備のサービスを与えるように、システムは、多くの追加の機能および要素を含むことがあることを理解されたい。例えば、サーバシステム12は、ニュース、天候、ポータル、買物、マッピング、および他のサービスを提供することができる。さらに、サーバシステム12の要素は、適切に組み合わせるかまたは分離してよい。
【0046】
図3は、システム内の情報の構成にアクセスし解析するための動作を示す流れ図である。理解しやすいように、その動作は、クライアント、ローカルサーバおよび遠隔サーバで起こるものとして示される。しかし、動作または類似の動作は、より少数のコンピュータ、または異なる構成で配置されたコンピュータによって実行することもできる。
【0047】
この方法では、サイトに関係するドキュメントの構成を求めるために、最初にウェブサイトがスキャンされる(50)。そして次に、ウェブサイトが格納されているローカルサーバが、ウェブサイトに関する情報をもたらす(52)。例えば、ウェブサイトの作成者は、インターネット上で、一般向けなど、作成者がネットワークを介して利用可能な形にしたいウェブサイト上のすべてのページのURLを明らかにしてよい。次いで、それらのURLが、互いにリンクするドキュメントなのか、またはリンクのないドキュメントを表すのか、作成者はサイト用にURLまたは他のドキュメント識別子のすべてのリストを作成してよい。あるいは、ウェブサイトは、サイトを生成するために使用されたドキュメント管理システムなどによって、自動的に解析またはスキャンされてよい。
【0048】
次いで、サイトマップを生成することにより、ドキュメントの構成が記録されてよい(54)。サイトマップは、例えば、所定のフォーマットを有するXMLドキュメントであってよく、ウェブサイトのドキュメント用のURLのリストを含んでよい。さらに、一般的なメタデータがサイトマップに加えられてよい(56)。例えば、以下でより詳細に説明されるように、サイトマップによって参照されたドキュメントのフォーマットに関するデータ、ドキュメントがアクセスされるべき速度、およびサイトマップに関する情報を更新する頻度は、すべて全体的なメタデータ中で指定されてよい。次いで、サイトマップは、ウェブサイト情報とともにローカルサーバ上などに格納されてよい(58)。サイトマップ用メタデータの生成も、手動で、または自動的に行われてよい。
【0049】
一旦サイトマップが生成され格納されれば、遠隔サーバに識別され得て(60)、遠隔サーバは、サイトマップに関するそのような通知を受け取った(62)後に、このサイトマップにアクセスすることができる。通知は、遠隔サーバによってホストされたウェブサイトまたは遠隔サーバと関連するサーバにログオンしているユーザによってなど、手動で行われてよい(例えばクリアリングハウスが1つのセントラルポイントでサイトマップ情報を集めて様々な検索エンジンと共有するとき、例えばすべての検索エンジンが同時に情報を受け取るように、所定の更新時点で、または検索エンジンがユーザのウェブサイトに巡回ロボットで過大な負荷をかけないように、ずれた時点で)。
【0050】
様々な情報が通知の一部として提示されてよい。例えば、サイトマップのロケーションなど最小限の情報が提示されるかもしれず、遠隔サーバは、サイトマップまたは関連したドキュメントから追加情報を得るかもしれない。あるいは、ウェブサイトのドキュメントのフォーマット、また、そうでなければ(またはそれに加えて)サイトマップに配置された他のメタデータなどの追加情報が提供されてよい。あるいは、通知は、全サイトマップのサブミッションを含んでよい。
【0051】
一旦遠隔サーバが必要な通知情報を受け取ると、遠隔サーバは、調査する必要があるかもしれないあらゆる追加情報を求めて、サイトマップまたは関連するドキュメントを調査し、サイトマップまたはユーザのウェブサイトを解析することができる(66)。ローカルサーバは、そのようなあらゆる要求に従って応答することができる(64)。例えば、通知が最小限の情報しか含んでいないと、遠隔サーバは、ウェブサイトのクロールを行うために追加情報を得る必要があるかもしれない。そのような追加情報の検索は、遠隔サーバに通知するときに不完全な情報を提供するユーザに依存するので、その結果、これらのステップはしばしば不要になるはずであり、これらのステップの枠は点線で示されている(64、66)。
【0052】
遠隔サーバは、ウェブサイトをクロールするために、巡回ロボットのタイプまたは巡回ロボットのペルソナを選択してもよい(68)。例えば、ユーザが、ウェブサイトを、特定のモバイルベースのフォーマットによってフォーマットされているものと同定したならば、遠隔サーバは、そのウェブサイトをクロールするとき、そのようなモバイルコンテンツを見るためのデバイスの性能をシミュレートするかもしれない。
【0053】
遠隔サーバがサイトマップを検索するために十分な情報を有するとき、遠隔サーバは、サイトマップにアクセスして、ウェブサイトをクロールするためにサイトマップの情報の使用を開始することができる(70、72)。特定の(諸)フォーマットが識別されたときに、巡回ロボットは、選択された巡回ロボットのタイプを用いてウェブサイトをクロールすることができ(74)、その結果として、ローカルサーバは、サイトマップ中で参照されたドキュメントのすべてを供することなどによってコンテンツを提供してよい(76)。
【0054】
例えば、サイトマップがリストとしてフォーマットされているとき、巡回ロボットは、サイトマップリストを通って進んでよく、リスト中の最初の項目を要求してよい。巡回ロボットは、その最初の項目のコンテンツを解析し、そのコンテンツのうちのいくつかにインデックスを付け、最初の項目中の任意のリンクを識別することができる。次いで、巡回ロボットは、任意のリンクのある項目を要求し、ウェブサイトのそのブランチを網羅するまで、解析してリンクするプロセスを繰り返してよい。次いで、巡回ロボットは、サイトマップリスト中の次のエントリへ移動してよい。巡回ロボットは、複数のロケーションからリンクされたドキュメントへ繰り返しアクセスすることのないように、アクセスしたすべてのドキュメントのリストを格納してもよい。
【0055】
図4は、ウェブサイト100向けのサイトマップを生成するプロセスの概念図である。ウェブサイト100は、ウェブサイトファイルシステム102、サイトマップジェネレータの制御パラメータ104、サイトマップジェネレータ106、サイトマップ更新モジュール108、サイトマップ通知モジュール110、サイトマップ114およびサイトマップのインデックス112を含む。ファイルシステム102は、複数のコンピュータ上にファイルが格納されている送られたファイルシステムを含む複数のファイルシステムのうち任意のものを使用して、いくつかの実施形態において実施することができる。他の実施形態では、ファイルシステム102は、クエリに応答してドキュメントを作成する検索エンジンまたはデータベースを使用して実施することができる。
【0056】
ウェブサイトファイルシステム102は、ウェブサーバに格納されているドキュメントを系統立てる。ウェブサイトに格納されたドキュメントは、テキスト、図、ビデオ、オーディオなど、またはそれらの項目の任意の組合せを含む任意の適切な機械可読ファイルでよい。ウェブサイトに格納され得るドキュメントの例は、とりわけ、ウェブページ、画像、ビデオファイル、オーディオファイル、ポータブルドキュメントフォーマット(PDF)ファイル、プレーンテキストファイル、実行可能ファイル、プレゼンテーションファイル、スプレッドシート、ワードプロセッサドキュメントなどを含む。
【0057】
ウェブサイト100に格納されたドキュメントは、階層的構造で系統立てられてよい。すなわち、ドキュメントは、ネストされたディレクトリ、フォルダまたはパスのツリー(以下「ディレクトリツリー」)へと系統立てられてよい。ディレクトリツリーは、ルートディレクトリ/フォルダ/パスを含み、ルートは、その中にネストされたサブディレクトリ/サブフォルダ/サブパスを有してよい。
【0058】
サブディレクトリ/サブフォルダ/サブパスは、ネストされたサブディレクトリ/サブフォルダ/サブパスをさらに内蔵してもよく、このようにディレクトリツリーを形成する。各ドキュメントは、ディレクトリツリーにおけるディレクトリ/フォルダ/パスに格納されてよい。各ディレクトリ/フォルダ/パスおよび各ドキュメントは、ツリー中のノードでよい。ファイルシステムは、最終修正日付、最終アクセス日付、ドキュメントパーミッションなどのドキュメントに関連したメタデータを格納してもよい。いくつかの実施形態では、ファイルシステムは、ドキュメントおよび関連するメタデータのデータベースを含んでもよい。データベース中のドキュメントは、データベースのクエリの実行、ならびに、またはその代りに、ディレクトリツリーをトラバースすることによりアクセスされ得る。
【0059】
ウェブサイトに格納された各ドキュメントは、ロケータによって識別および/または検索され得る。いくつかの実施形態では、ロケータはドキュメントのURLである。他のいくつかのドキュメントでは、識別の代替のやり方(例えばURI)またはアドレシングが使用されてよい。ドキュメントのURLは、ファイルシステム中のそのロケーションから得ることができる。ドキュメントのURLは、ディレクトリ/フォルダ/パスに基づくもの、またはデータベース中のロケーションに基づくもの、またはドキュメントが格納されたデータベースからドキュメントを検索するのに使用されたクエリに基づくものでよい。すなわち、ディレクトリ/フォルダ/パス中の各ドキュメントまたはデータベースのロケーションは、URLに対応付けられてよい。いくつかの実施形態では、外部アクセスに対して公開されているファイルシステムのドキュメントにアクセスするために、URLは、ウェブ巡回ロボットに関連した遠隔コンピュータなどのウェブサイトの外のコンピュータによって使用されてよい。説明の便宜上、ドキュメントロケータは、あたかもURLであるかのように以下で説明される。
【0060】
サイトマップジェネレータ106は、サイトマップ、および任意選択で、1つまたは複数のウェブサイトのサイトマップのインデックスを生成する。サイトマップは、ウェブ巡回ロボットがウェブサーバに格納されたドキュメントをクロールするスケジュールを設定するために、ウェブ巡回ロボットによって使用されてよい。サイトマップのインデックスは、さらなる詳細が以下に説明されるが、1つまたは複数のサイトマップをカプセル化して、例えばサイトマップのリストを含んでよい。
【0061】
サイトマップジェネレータ106は、1つまたは複数のドキュメント情報のソースにアクセスすることによりサイトマップを生成する。いくつかの実施形態では、ドキュメント情報のソースは、ファイルシステム102、アクセスログ、あらかじめ作られたURLリスト、およびコンテンツ管理システムを含む。サイトマップジェネレータ106は、単にウェブサイトのファイルシステム102にアクセスして、ファイルシステム102で見つかったドキュメントに関するあらゆる情報を収集することにより、ドキュメント情報を集めることができる。例えば、ドキュメント情報は、ファイルシステムのファイルまたはファイルシステムの定義された部分の中のファイルをすべて識別するディレクトリ構造から得ることができる。
【0062】
サイトマップジェネレータ106は、ウェブサイトのアクセスログ(図示せず)にアクセスすることにより、ドキュメント情報を集めることもできる。アクセスログは、外部コンピュータによるドキュメントのアクセスを記録する。アクセスログは、アクセスされたドキュメントのURL、ドキュメントにアクセスするコンピュータの識別子、ならびにアクセスの日付と時間を含んでよい。サイトマップジェネレータ106は、あらかじめ作られたURLリスト(図示せず)にアクセスすることにより、ドキュメント情報を集めることもできる。あらかじめ作られたURLリストは、ウェブサイトのオペレータがウェブ巡回ロボットによってクロールされることを望むドキュメントのURLをリストする。URLリストは、以下で説明されるように、サイトマップに使用されたのと同じフォーマットを用いて、ウェブサイトのオペレータによって作成され得る。
【0063】
ウェブサイトのドキュメントがコンテンツ管理システムによって管理されているのであれば、サイトマップジェネレータ106は、コンテンツ管理システムとインターフェースをとり、コンテンツ管理システム内に格納された情報にアクセスすることによって、ドキュメント情報を集めることができる。
【0064】
サイトマップジェネレータの制御パラメータ104は、サイトマップの生成を制御する所定のパラメータを含む。サイトマップジェネレータの制御パラメータ104に関するさらなる情報は、図5に関して以下に説明される。
【0065】
サイトマップジェネレータ106は、サイトマップ114、および多分1つまたは複数のサイトマップのインデックス112を生成する。サイトマップ114およびサイトマップのインデックス112は、任意の適当なフォーマットおよび言語を使用して生成されてよい。前述のように、いくつかの実施形態では、サイトマップは、所定のXMLタグを使用してエクステンシブルマークアップランゲージ(XML)フォーマットで生成される。説明の便宜上、以下のサイトマップおよびサイトマップのインデックスは、XMLを使用してフォーマットされたものとして説明される。
【0066】
サイトマップのインデックス112は、サイトマップの構成およびサイトマップへの参照を支援するための、1つまたは複数のサイトマップ114に対応付けられたドキュメントである。サイトマップジェネレータ106は、ウェブサイト向けのサイトマップを生成するときに複数のサイトマップを生成することができ、各サイトマップは、1つのサイトマップ中でクロールされ得るすべてのドキュメントのURLをリストするのではなく、ドキュメントのURLのクロールされ得るサブセットをリストする。そのような状況では、サイトマップジェネレータ106は、複数のサイトマップおよびそれらのURLをリストするためにサイトマップのインデックス112を生成してもよい。サイトマップのインデックスは、サイトマップのインデックス112の開始および終了を定義する開始タグおよび終了タグ(例えば<sitemapindex>および</sitemapindex>などのXMLタグ(図示せず))を含んでよい。サイトマップのインデックス112は、サイトマップのインデックスにリストされた各サイトマップのURLも含んでよい。
【0067】
サイトマップのインデックスは、サイトマップのインデックス中のそれぞれのサイトマップのURL用に任意選択のメタデータも含んでよい。例えば、メタデータは、それぞれのサイトマップの最終修正日付を含んでよい。各サイトマップのURLおよびそれぞれに対応付けられたあらゆるメタデータは、サイトマップのインデックス112中でサイトマップのレコード114の開始および終了を定義する開始タグおよび終了タグによって囲まれてよい。
【0068】
サイトマップのリストに加えて、いくつかの実施形態では、サイトマップのインデックスは、すべてのウェブサイトに適合するサイトに特有の情報140(「パーサイト情報」とも呼ばれる)のリストを任意選択で含んでよい。例えば、サイトマップのインデックスは、時間間隔のリストおよび巡回ロボットがそれぞれのウェブサイトをクロールするべきクロール率を含んでよい(例えば、<crawl_rate from=08:00UTC to=17:00UTC>medium</crawl_rate><crawl_rate from=17:00UTC to=8:00UTC>fast</crawl_rate>)。他の例では、サイトマップのインデックスは、ウェブサイトに関連した地理的ロケーションを識別する地理情報(例えば、<location>latitude, longitude</location>)を含み、かつ/または、それぞれのウェブサイトが対応しているかそうでなければ関連している1つまたは複数の言語を識別する言語情報(例えば、<language>German</language>)を含んでよい。パーサイト情報は、XHTML、3g、PDAHTML、WMLまたはiMode/cHTMLなどのサイト用にドキュメントフォーマットの(諸)タイプも含んでよい。
【0069】
いくつかの実施形態では、パーサイト情報は、サイトマップのインデックスファイル中のサイトマップ参照の中にあってもよい。サイトマップのインデックスおよび参照されたサイトマップがどちらも同じプロパティ向けのパーサイト情報(例えばクロール率)を含む場合、サイトマップが情報のより明確なインスタンスであるので、サイトマップ中で指定された値がサイトマップのインデックス中で指定された値に優先してよい。他の実施形態では、パーサイト情報は、ここで与えられた例以外に、サイトマップのインデックスまたはサイトマップ中でシンタックスを使用して指定されてよい。
【0070】
一実施形態では、ウェブサイトのサイトマップジェネレータ106は、毎日または毎週などの一定間隔で新規のサイトマップを生成する。最初(スタートポイント)のサイトマップの後に生成される新規の各サイトマップは、先のサイトマップが生成されているので、新規のURLまたは修正されたURLだけをリストすればよい(すなわち、最後のサイトマップが生成された日付の後の作成日または修正日を有する)。用語「日付」は、ここでは日時の含有が可能であるように用いられ、UTC(協定世界時)を用いてISO 8601タイムスタンプに適合するタイムスタンプなどによって表されてよい。これらの実施形態では、ウェブサイト向けのサイトマップのインデックスは、ウェブサイト向けに生成されたサイトマップをすべてリストする。
【0071】
任意選択で、新規のスタートポイントサイトマップは、更新サイトマップが生成される間隔より大きな間隔(例えば毎週または毎月)でサイトマップジェネレータによって生成されてよい。新規のサイトマップが生成されてサイトマップのインデックス112に加えられるごとに、1つまたは複数の検索エンジンまたは巡回ロボットに通知が送られ得る。
【0072】
サイトマップ114は、ウェブ巡回ロボットによってクロールされ得るウェブサイトのドキュメントのURLをリストする(諸)ドキュメントであるか、そうでなければウェブサイトまたは他のネットワークのロケーションのドキュメントの構成を示す。サイトマップ114は、URLのリストを含んでよく、また、任意選択で、それぞれのリストされたURL向けにメタデータなどの追加情報を含んでよい。サイトマップ114は、サイトマップの開始および終了を定義する開始タグおよび終了タグ116を含んでよい。サイトマップは、1つまたは複数のURLレコード118も含んでよい。各URLレコード118の開始と終了は、開始タグ120と終了タグ130によって定義され得る。各URLレコード118は、クロールされ得るドキュメントのURL 122を含んでよい。
【0073】
URLレコード118は、それぞれのURLに関連した任意選択のメタデータも含んでよい。任意選択のメタデータは、URL 121によって指定されたドキュメント用のフォーマット、URLによって指定されたドキュメントの最終修正日付124、URLによって指定されたドキュメントの変更頻度126(更新率とも呼ばれる)、ドキュメントのタイトル127、ドキュメントの作成者129、およびURLによって指定されたドキュメントの優先順位128のうち1つまたは複数のものを含んでよい。フォーマット121、変更頻度126および優先順位128は、ウェブサイトのオペレータによって指定され得る。
【0074】
変更頻度126は、ドキュメントのコンテンツがどれくらい頻繁に変更されると予想されるかのディスクリプタである。このディスクリプタは、有効なディスクリプタの所定のセットのうちの1つである。いくつかの実施形態では、変更頻度ディスクリプタのセットは、「常時」、「毎時」、「毎日」、「毎週」、「毎月」、「毎年」、「変更しない」を含む。変更頻度126は、巡回ロボットに対して、ドキュメントがどれくらい頻繁に変化するかについてヒントを提供する。したがって、巡回ロボットは、ドキュメントのクロールのスケジュールを組むために、このヒントを利用することができる。しかし、巡回ロボットは、指定の変更頻度と一致しないやり方でドキュメントをクロールしてよい。例えば、巡回ロボットは、「毎時」と示されたドキュメントを、「毎年」と示されたドキュメントほど頻繁にクロールしないかもしれない。実際のドキュメントのクロール頻度は、ドキュメントの重要性(PageRankなどのスコアによって示されたもの)、巡回ロボットが観測したドキュメントで確認された実際の変化(またはそれがないこと)および他の要因ならびにサイトマップ中で指定された変更頻度に基づいてよい。
【0075】
優先順位128は、URL 122によって識別されたドキュメントの相対的な優先順位を指定する値である。優先順位128は、同一のサイトマップ114にリストされた他のドキュメント、ドキュメントと同一のウェブサーバに格納された他のドキュメント、またはウェブサイトのすべてのドキュメントに対する優先順位でよい。いくつかの実施形態では、優先順位の値の範囲は0.0以上1.0以下であり、デフォルト値が0.5、最低の相対優先順位が0.0、かつ最高の相対優先順位が1.0である。他の実施形態では、0から10などの他の優先順位スケールが使用され得る。優先順位は、ウェブサイトのどのドキュメントを最初にクロールするべきか判断するために、巡回ロボットによって使用されてよい。これらの優先順位の値が所定の基準を満たさないとき(例えば、ウェブサイト用のサイトマップまたはサイトマップのセットの0である優先順位の値が、0.5などの所定の平均値を有するという必要条件)、巡回ロボットは、サイトマップ内の優先順位の値を無視するかまたは修正することがある。いくつかの実施形態では、ドキュメントをインデックス付けするとき、優先順位も使用されてもよい。
【0076】
他のパラメータもサイトマップに含まれてよい。例えば、追加のメタデータは、各URLで、ニュース、娯楽、医学、教育、宣伝などのコンテンツのカテゴリを含んでよい。また、他のパラメータが、URLが特定の通信キャリヤ(例えばモバイルコンテンツ用)を有するユーザにのみ利用可能であるように意図されているかどうかを示してもよい。そのようなパラメータは、コンテンツプロバイダが信頼できるプロバイダであるか、またはシステムが正確な情報を提供するはずであると自信がある場合(例えば、署名による資格登録プロセスまたは別の信頼できるプロバイダからの紹介によって判断される)には特に適切であり得る。
【0077】
サイトマップジェネレータ106は、サイトマップ更新モジュール108およびサイトマップ通知モジュール110と相互作用することもできる。サイトマップ通知モジュール110は、新規のサイトマップまたは更新されたサイトマップがウェブサイトで利用可能なときは、常に、ウェブ巡回ロボットに関連した遠隔コンピュータに通知を送る。通知は、遠隔コンピュータがサイトマップにアクセスすることができるように、サイトマップのURLを含んでよい。いくつかの実施形態では、ウェブサイトがサイトマップのインデックスを使用するのであれば、通知は、サイトマップのインデックスのURLを含むだけでよい。次いで、遠隔コンピュータは、サイトマップのインデックスにアクセスし、それによってサイトマップのURLを識別することができる。いくつかの他の実施形態では、通知は、サイトマップ、サイトマップのインデックス、またはそのようなドキュメントのすべてによって参照されたドキュメントのサブセット用のフォーマット識別子に加えて、サイトマップ、サイトマップのインデックスまたはこれらのドキュメントのうちの1つを含んでよく、上記フォーマット識別子のケースでは、遠隔コンピュータは、ウェブサイトのサイトマップのインデックスまたはフォーマットについての情報にアクセスする必要がない。
【0078】
サイトマップ更新モジュール108は、以前に生成されたサイトマップと現在のサイトマップの間の差を基に差異のサイトマップを生成してよい。差異のサイトマップに関するさらなる情報は、図8に関して以下に説明される。
【0079】
図5は、サイトマップジェネレータの制御パラメータを格納するためのデータ構造を示すブロック図である。サイトマップジェネレータの制御パラメータ104は、サイトマップの生成およびサイトマップのインデックスを制御する。パラメータの各々は、ウェブサイトのオペレータによって指定されてよい。パラメータは、ウェブ巡回ロボットに関連した遠隔コンピュータによってサイトマップがアクセスされ得る(諸)ロケーションを指定する1つまたは複数のサイトマップベースURL 502、ファイルシステム102のディレクトリ/パス/フォルダまたはデータベースのロケーションを、外部からアクセス可能なURLに対応付ける、ファイルのパスからURLへのマッピング504 (パスからURLへのマッピングの例としては、P:/A/B/*.*>www.website.com/qu/*.*)、サイトマップの包含から除外されるべきURLのクラスを指定するURLの除外パターン506(例えば、除外パターン「www.website.com/wa/*.prl」は、www.website.comの「/wa」部分におけるすべての「prl」ファイルがサイトマップから除外されるべきであることを示すことになる)、それぞれのURLクラス向けにURLのクラスおよび更新率(変更頻度)を指定する、更新率508を有するURLパターン(例えば、www.website.com/qu/a*.pdf>dailyは、指定されたパターンに適合するファイルが毎日更新されると予想されることを示すことになる)、新規のサイトマップ通知が伝送され得る、ウェブ巡回ロボットに関連した遠隔コンピュータのURLを指定する通知URL510、あらかじめ作成されたURLリストを指す、URLリストへのポインタ512、URLアクセスログを指す、URLアクセスログへのポインタ514、ファイルシステム102におけるディレクトリ/フォルダ/パスまたはデータベースのロケーションを指す、(諸)ディレクトリへのポインタ516、およびウェブ巡回ロボットがウェブサイトをクロールするべき日の好ましい時間を指定する好ましいクロール時間518、のうち1つまたは複数のものを含んでよい。リストされたパラメータは単なる例であり、また、より少ない追加および/または代替のパラメータが含まれ得ることを理解されたい。
【0080】
図6はサイトマップを生成するプロセスを示す流れ図である。前述のように、ウェブサイト上に格納されたドキュメントについての情報ソースは、ウェブサイトのアクセスログである。最初にウェブサイトのアクセスログがアクセスされる(602)。アクセスログは、URLアクセスログに後続するポインタによって探し出され得る。次いで、アクセスログは、誤りのないURLを求めてスキャンされてよい(604)。誤りのないURLは、既存でアクセス可能なドキュメントを適切に指定するURLである。したがって、例えば、もはやウェブサイト上にないドキュメント向けのURLは、誤ったURLと考えてよい。次いで、URLのリストが生成され得る(606)。リストは、アクセスログで見つかった誤りのないURLを含んでよい。
【0081】
リストは、アクセスログから得られたドキュメントの支持率情報も含んでよい。ドキュメントの支持率情報は、誤りのない各URLが有するアクセス数を基に求めることができる。ドキュメントの支持率情報は、どのドキュメントに高い需要があるか(すなわちより頻繁にアクセスされているか)ということを基に、クロール中にどのドキュメントがより高い優先順位を与えられるべきか(例えば、最初にクロールされるかまたは優先順位の低いドキュメントよりもクロールされやすいように計画される)の追加ヒントとしての働きをする。
【0082】
URLのリストが生成された後、除外されたURLのためにリストがフィルタリングされてよい(610)。サイトマップジェネレータの制御パラメータからのURL除外パターンは、URLのリストに適用されるフィルタとして使用されてよい(608)。あるいは、URL除外パターンは、他のところで得られるか、またはカスタマイズされたサイトマップジェネレータにおいてウェブサイト用に恒久的にコード化されてよい。次いで、URL除外パターンのうちのいずれかと一致するリスト中のURLは、リストから除外されてよい。
【0083】
リスト中のそれぞれのURL向けに、URLのリストに更新率の情報が加えられてよい(612)。いくつかの実施形態では、サイトマップジェネレータの制御パラメータ104から、より詳細には更新率を有するURLパターンから、更新率を得ることができる(608)。
【0084】
次いで、URLのリストのそれぞれのURLについての最終修正日付および時間が付加されてよい(614)。前述のように、最終修正日付は、データベースおよび/またはディレクトリツリー616でよいファイルシステムから得ることができる。
【0085】
代替実施形態では、サイトマップのストラテジオブジェクト615は、データベース616および/またはサイトマップジェネレータの制御パラメータ608から得られた情報を用いて、フィルタリング操作610、更新率情報を付加する動作612、および最終修正日付を付加する動作614を制御する。いくつかの実施形態では、サイトマップのストラテジオブジェクトは、どのURL(またはURI)をフィルタリングするかを判断し、また、基礎をなすデータベース616に対してデータベースクエリを実行することにより、特定のURL(またはURI)にどの属性を付加するかを判断する。
【0086】
サイトマップは、あらゆる最終修正日付/時間情報、任意選択の支持率情報、および含まれているかまたは得られた、リストされたURL向けの任意選択の更新率情報を含む、もたらされたURLのリスト(618)から生成されてよい。サイトマップ内では、サイトマップにリストされたURL向けのメタデータは、最終修正日付/時間情報、任意選択の支持率情報および任意選択の更新率を含んでよい。
【0087】
図7は、サイトマップを生成する別のプロセスを示す流れ図である。図7のプロセスは図6のものに似ているが、図7のプロセスでは、ドキュメント情報の最初のソースはアクセスログではなく、ファイルシステムデータベースまたはディレクトリツリー(702)であることが異なる。データベースのスキャンまたはディレクトリツリーのトラバース(704)が最初に実行されてよい。データベースのスキャンまたはディレクトリツリーのトラバースから、URLおよび関連する最終修正日付のリストを得ることができる(706)。このリストは、サイトマップジェネレータの制御パラメータ(712)からのURL除外パターンをフィルタとして使用して、除外されたURLのためにフィルタリングされてよい(708)。URLのリスト中のそれぞれのURLに関連したドキュメント更新率情報など追加のメタデータも付加されてよい(710)。更新率情報は、サイトマップジェネレータの制御パラメータ(712)から得ることができる。サイトマップは、除外されていないURLのリスト、最終修正日付情報、および更新率情報などの追加情報から生成されてよい。
【0088】
代替実施形態では、サイトマップのストラテジオブジェクト715は、基礎をなすデータベース702および/またはサイトマップジェネレータの制御パラメータ712から得られる情報を用いた、サイトマップ714のURLまたはURIのリストへのメタデータ710の付加、ならびに/あるいはフィルタリング操作708を制御してよい。いくつかの実施形態では、サイトマップのストラテジオブジェクト715は、どのURL(またはURI)をフィルタリングするかを判断してよく、また、基礎をなすデータベース702に対してデータベースクエリを実行することにより、特定のURL(またはURI)にどの属性を付加するかを判断してよい。
【0089】
図6および図7に示されたサイトマップ生成プロセスは、ドキュメント情報の代替ソースおよび/またはドキュメント情報の複数のソースを使用するように適合され得る。例えば、サイトマップジェネレータは、最初に、1つまたは複数のあらかじめ作成されたURLリストまたはウェブサイトに関連したコンテンツ管理システムからURLを抽出してよい。URLが抽出されるソースにかかわらず、サイトマップジェネレータは、必要な数だけのドキュメント情報のソースからドキュメントメタデータを収集することができる。例えば、サイトマップジェネレータは、あらかじめ作成されたURLリストからURLを抽出し、ファイルシステムから最終修正日付を取得し、かつアクセスログからドキュメント支持率情報を得ることができる。サイトマップを生成するために、ドキュメント情報のソースのあらゆる適当な組合せが使用され得る。
【0090】
図8は、ディファレンシャルサイトマップを生成するプロセスを示す流れ図である。ディファレンシャルサイトマップは、以前に生成されたサイトマップと現在のサイトマップの間の差異を基に生成されたサイトマップである。ディファレンシャルサイトマップは、以前に生成されたサイトマップに含まれていなかったURLおよび以前に生成されたサイトマップに含まれていたURLで新規のメタデータまたは更新されたメタデータを有するものを含んでよい。例えば、更新された最終修正日付を有するURLは、ディファレンシャルサイトマップに含まれることになる。URLに関する更新される最終修正日付の存在は、それぞれのURLでのドキュメントが、以前に生成されたサイトマップから更新されていることを意味する。
【0091】
現行のサイトマップ(802)および以前に生成されたサイトマップ(804)は、サイトマップ更新モジュール108などのディファレンシャルサイトマップジェネレータ(806)によって処理されてよい。2つのサイトマップ間の差異が確認されて、ディファレンシャルサイトマップ(808)が生成され得る。
【0092】
図9は、ウェブ巡回ロボットシステム900を示すブロック図である。検索エンジンの一部であり得て、かつ/または検索エンジンに関連し得るウェブ巡回ロボットシステム900は、ウェブサーバに格納されたドキュメントに関連するロケーションをクロールする。
【0093】
サイトマップ巡回ロボット905は、ウェブサイトまたはウェブサーバによって生成されたサイトマップにアクセスする。サイトマップ巡回ロボット905はサイトマップ通知を受け取る。ウェブサーバまたはウェブサイトから、クロールに利用可能なドキュメントを有するサイトマップ通知930が受け取られる。ウェブサーバまたはウェブサイトからの通知は、ドキュメントのURLをリストする1つまたは複数のクロールされ得るサイトマップがアクセスのために利用可能であるとサイトマップ巡回ロボットに知らせる。通知は、1つのサイトマップのURLまたは複数のサイトマップの諸URL含んでよい。通知は、サイトマップのインデックスのURLを含んでよく、またはサイトマップのインデックスのコンテンツを含んでよい。いくつかの実施形態では、通知は、サイトマップのインデックスまたは完全なサイトマップを含んでよい。サイトマップのURLを記憶し、次いでサイトマップにアクセスするために、サイトマップ巡回ロボット905は、サイトマップのインデックスのURLでサイトマップのインデックスにアクセスしてよい。
【0094】
サイトマップ巡回ロボット905は、ウェブサーバまたはウェブサイトからサイトマップをアクセスして、アクセスしたサイトマップのコピーをサイトマップデータベース932に格納することができる。サイトマップデータベース932は、ウェブサーバおよび/またはサイトマップが関連するウェブサイト、サイトマップの最終修正日付、およびサイトマップに関連した更新率情報などサイトマップに関連した情報ならびにサイトマップを格納する。
【0095】
アクセスされたサイトマップは、処理するためにサイトマップ処理モジュール934に与えられてよい。サイトマップ処理モジュール934は、サイトマップを処理し、URLおよび関連するメタデータ936を識別する。サイトマップは、URLスケジューラ902用のURLおよび関連するメタデータ情報のソースであり得る。いくつかの実施形態では、URLおよび関連するメタデータの任意選択の追加ソースは、ユーザによる直接の提示903によって受け取られてよい。例えば、ユーザは、(諸)サイトマップに関連したドキュメントのフォーマットについての情報を提供してよい。
【0096】
URLスケジューラ902は、各クロールセッションで、どのURLをクロールするか判断する。URLスケジューラ902は、リストデータ構造のセットなどの1つまたは複数のデータ構造(図示せず)に、その情報を格納してよい。いくつかの実施形態では、URLスケジューラ902は、データ構造のセグメントにURLを割り当てるが、このセグメントはクロールセッションに対応する。これらの実施形態では、URLスケジューラ902は、各セグメント内のどのURLをクロールするべきかの判断もする。いくつかの実施形態では、複数のURLスケジューラ902があってよく、それらは各セグメントがクロールされる前に実行される。各スケジューラ902は、URLサーバ906へのURLの配布の管理を担当する、対応するURLマネージャ904に結合される。あるいは、各URLスケジューラ902は、2つ以上のURLマネージャに結合されてよく、各クロールセッション向けのURL配布機能を複数のURLマネージャにわたって広げることが可能になる。URLスケジューラ902は、サイトマップから抽出されたURLおよびメタデータ936を受け取るように適応され得る。
【0097】
コントローラ901はクロールするためにセグメントを選択する。選択されたセグメントは、これ以降「アクティブセグメント」と呼ぶ。一般に、各セッションの出発点では、コントローラ901は、いくつかのセッションにわたって、すべてのセグメントがラウンドロビン式クロールのために選択されるように、別のセグメントをアクティブセグメントとして選択する。コントローラ901は、ユーザエージェントが、アクティブセグメント用のフォーマットに関連する巡回ロボットによって示されるように選択してもよい。例えば、ユーザエージェントは、巡回ロボットに、iModeデバイスまたは他のモバイルデバイスあるいはデバイスのグループを模倣させるパラメータを含んでよい。
【0098】
URLページの順位付けソフト922によって、各URL向けにクエリから独立したスコア(ドキュメントスコアとも呼ばれる)が計算されてよい。ページの順位付けソフト922は、所与のURL向けにページの重要性スコアを計算する。いくつかの実施形態では、ページ重要性スコアは、所与のURLを参照するURLの数だけでなく、そのような参照しているURLページの重要性スコアも考慮に入れることにより計算されてよい。ページ重要性スコアのデータは、URLマネージャ904に与えられてよく、URLマネージャは、URLサーバ906、ロボット908およびコンテンツ処理サーバ910に各URLページの重要性スコアを渡してよい。ページ重要性スコアの一例は、PageRankであり、これはGoogle検索エンジンで使用されるページ重要性の測定基準である。PageRankの計算の説明は、米国特許第6,285,999号に見られ、背景情報として、参照によりその全体を本明細書に組み込む。いくつかの実施形態では、ページ重要性スコアの計算にサイトマップからの情報が組み込まれてよい。ページ重要性スコアに組み込まれ得るサイトマップ情報の一例は、優先順位128である。
【0099】
URLサーバ906は、時々URLマネージャ904にURLを要請することがある。これを受けて、URLマネージャ904は、URLサーバ906にデータ構造から得られたURLを提供してよい。次いで、URLサーバ906は、巡回ロボット908(これ以降「ロボット」または「ボッツ」と呼ぶ)にクロールされるように、URLマネージャ904からのURLを送ってよい。ロボット908は、URLサーバ906によって与えられたURLでドキュメントを検索するサーバである。ロボット908は、URL(例えばHTTP、HTTPS、Gopher、FTPなど)に関連したページをダウンロードするために様々な既知のプロトコルを使用する。いくつかの実施形態では、ロボット908は、指定されたウェブサイト用のクロール率および/またはクロール間隔情報を、パーサイト情報のデータベース940から検索し、次いでウェブサイトからURLまたはURIを取り出す速度を制御するために検索された情報を使用する。ロボット908は、適切な場合には、ドキュメントがそれ向けにフォーマットされている(諸)デバイスを適切に模倣するように、ドキュメント用のフォーマット情報を渡されてもよい。
【0100】
ロボット908によってクロールされてURLから得られたページは、複数のタスクを実行するコンテンツ処理サーバ910に送られる。いくつかの実施形態では、これらのタスクは、ページのコンテンツをインデックス付けするステップ、ページに外部行きのリンクのレコードを生成するステップ、複製ページを検出するステップ、およびクロールされたページについての情報を記録するために様々なログレコードを生成するステップを含む。一実施形態では、これらのログレコードは、リンクログ914、状態ログ912および他のログ916を含むログファイルに格納される。リンクログ914は、ロボット908によってURLから得られてコンテンツ処理サーバ910に渡される各ドキュメント向けのリンクレコードを含む。各リンクログ914のレコードは、レコードおよびリンクを囲むテキストに関連したドキュメント中に見られるすべてのリンク(例えば外部行きのリンクとも呼ばれるURL)を識別する。リンクログ914中の情報は、リンクマップ920を生成するためにコンテンツ処理サーバ910によって使用されてよい。
【0101】
テキストが除去され、レコードがソースURLの正規化された値の「フィンガープリント」によって鍵を付けられているとことを除けば、リンクマップ920のレコードは、リンクログ914のレコードに似ている。いくつかの実施形態では、URLフィンガープリントは、URLにハッシュ関数または他の一方向性関数を適用することにより求められた64ビットの整数である。URLフィンガープリントのビット長は、他の実施形態における64ビットより長くても短くてもよい。各リンクマップ920のレコードは、任意選択で、ソートされるかまたはフィンガープリントによって鍵を付けられてよい。URLのページ重要性スコアを計算するか調整するために、ページ順位付けソフト922によってリンクマップ920が使用される。いくつかの実施形態では、そのようなページ重要性スコアは、セッション間に存続することがある。
【0102】
状態ログ912は、コンテンツ処理サーバ910によって実行されたドキュメント処理の状態をログ記録する。状態ログは、URL状態情報928(例えば、ドキュメントが指定のURLに存在したかどうかということ、最終修正日付情報および更新率情報)を含んでよい。URL状態情報はURLスケジューラ902に伝送されてよい。URLスケジューラは、クロール用にドキュメントのスケジュールを組むためにURL状態情報を使用してよい。
【0103】
いくつかの実施形態では、コンテンツ処理サーバ910は、アンカーマップ918を生成してもよい。アンカーマップ918は、ハイパーリンク中の「アンカーテキスト」を、ハイパーリンクの諸ターゲットURLのURLへマッピングする。ハイパーリンクを実施するためにHTMLタグを使用するドキュメントでは、アンカーテキストは1対のアンカータグの間に配置されたテキストである。例えば、<A href="http://www.website.com/wa/me.jpg">Picture of Mount Everest</A>というアンカータグの対におけるアンカーテキストは「Picture of Mount Everest」である。
【0104】
いくつかの実施形態では、サイトマップに供給されたドキュメントのメタデータも、アンカーマップを生成するために使用されてよい。例えば、ドキュメントのタイトル、ドキュメントの作成者またはドキュメントの説明などドキュメントのメタデータが、アンカーマップを生成するために使用されてよい。しかし、サイトマップに現れるいかなるフィールドも、一般にアンカーマップに含まれてよいことを理解されたい。
【0105】
いくつかの実施形態では、アンカーマップ918中のレコードは、リンクログ914の中にある外部行きURLのフィンガープリントによって鍵を付けられてよい。したがって、アンカーマップ918中の各レコードは、外部行きURLのフィンガープリント、およびリンクログ914中のURLに対応するアンカーテキストを含んでよい。「アンカーテキスト」の索引付けならびに単語を含まないURLの索引付けを促進するために、インデクサ924によってアンカーマップ918が使用される。例えば、外部行きURL(例えば上記の例におけるURL)でのターゲットドキュメントが、picture of Mount Everestで、ターゲットドキュメント中に単語がない場合を考えられたい。しかし、URLに関連したアンカーテキスト「Picture of Mount Everest」は、インデックス926中に含まれてよく、それによって、ターゲットドキュメントは、インデックス926を使用して検索エンジンによるアクセスが可能になる。
【0106】
アンカーマップ918および他のログ916はインデクサ924に伝送される。インデクサ924は、アンカーマップ918および他のログ916を使用してインデックス926を生成する。このインデックスは、検索エンジンのユーザによって入力されたクエリと一致するドキュメントを識別するために検索エンジンによって使用される。
【0107】
図10は、サイトマップ巡回ロボットシステム1000を示すブロック図である。サイトマップ巡回ロボットシステム1000は、一般に、1つまたは複数の処理装置(CPU)1002、1つまたは複数のネットワークまたは他の通信インターフェース1004、メモリ1010、およびこれらの要素を相互接続するための1つまたは複数の通信バスまたは信号ライン1012を含む。
【0108】
サイトマップ巡回ロボットシステム1000は、任意選択でユーザインターフェース1005を含んでよく、これにはキーボード、マウス、および/または表示デバイスが含まれてよい。メモリ1010は、DRAM、SRAM、DDR RAMまたは他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリを含んでよく、また、1つまたは複数の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイスまたは他の不揮発性固体記憶デバイスなどの不揮発性記憶装置を含んでよい。メモリ1010は、CPU1002から遠隔に配置された1つまたは複数の記憶デバイスを含んでよい。いくつかの実施形態では、メモリ1010は、様々な基本システムサービスを扱い、かつハードウェア依存タスクを実行するための処理手順を含むオペレーティングシステム1014、1つまたは複数の通信ネットワークインターフェース1004およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、都市内ネットワークなどの1つまたは複数の通信ネットワークを介して、サイトマップ巡回ロボットシステム1000を他のコンピュータに結合するために使用されるネットワーク通信モジュール1016、アクセスされたサイトマップを格納するサイトマップデータベース932、ウェブサーバによって与えられたサイトマップをアクセスするサイトマップ巡回ロボット905、サイトマップを受け取り、そのサイトマップを処理してURLおよび関連するメタデータを識別するサイトマップ処理モジュール934、クロールされ得るドキュメントのURLをリストするURLリスト1018、およびウェブサーバから受け取られた新規のサイトマップ通知を処理する通知処理モジュール1020の、プログラム、モジュールおよびデータ構造、またはそのサブセットを格納する。
【0109】
上記の識別された各要素は、1つまたは複数の前述のメモリデバイスに格納されてよく、前述の関数を実行するための命令セットに対応してよい。上記の識別されたモジュールまたはプログラム(すなわち命令のセット)を、個別のソフトウエアプログラム、処理手順またはモジュールとして実行する必要はなく、したがって、これらのモジュールの様々なサブセットが、様々な実施形態において組み合わせるかそうでなければ再配置されてよい。いくつかの実施形態では、メモリ1010は、上記で識別されたモジュールおよびデータ構造のサブセットを格納してよい。その上、メモリ1010は、上記で説明されていない追加モジュールおよびデータ構造を格納してよい。
【0110】
サイトマップのインデックスまたはサイトマップが1つまたは複数のパーサイト情報を含む実施形態では、そのようなパーサイト情報は、抽出されて、パーサイト情報データベース940に(例えばサイトマップ巡回ロボット905によって)付加される。適切な情報(例えば言語および/またはロケーションの情報)がパーサイト情報データベース940で利用可能なとき、この情報は、インデックス926にパーサイト情報(例えば言語および/または所在情報)を付加するためにインデクサ924によって使用される。インデックス926中にウェブサイトの地理および/または言語の情報が含有されることによって、地理および/または言語の規定を含むインデックス926を使用して、検索エンジンによる検索実行が可能になる。
【0111】
例えば、検索エンジンのインデックスが少なくともいくつかのウェブサイトに関する地理情報を含むとき、検索エンジンは、「pizza within 1 mile of London Bridge, London, England.」などの要求に応えることができる。検索エンジンのインデックスが少なくともいくつかのウェブサイトに関する言語情報を含むとき、検索エンジンは、「German URLs containing 'George Bush.'」などの要求に応えることができる。パーサイト情報がクロール率情報および/またはクロール時間間隔を含む実施形態では、その情報は、ウェブページをクロールする時間および速度を制御するためにURLスケジューラ902および/またはロボット908によって使用される。
【0112】
図11は、サイトマップに含まれた情報を基にドキュメントのダウンロードをスケジュール設定するプロセスを示す流れ図である。いくつかの実施形態では、ダウンロードのためにドキュメントのスケジュールを組むことは、スケジュールを組まれたドキュメントを識別するドキュメント識別子のリストを生成することを意味する。ドキュメント識別子のリストは、順序付けられたリストでよく、リスト中でより前のドキュメント識別子は、リスト中でより下位のドキュメント識別子より高い優先順位または重要性を有する。
【0113】
いくつかの実施形態では、サイトマップ巡回ロボットは、サイトマップの最新バージョンが利用可能であるという通知を受け取ると直ちにサイトマップにアクセスすることができる。サイトマップ通知が受け取られてログ記録される(1102)。次いで、次の待ち状態のサイトマップ通知が選択され得る(1104)。次いで、選択されたサイトマップ通知に関連したサイトマップが、ウェブサーバからダウンロードされてよい(1106)。
【0114】
他のいくつかの実施形態では、サイトマップ巡回ロボットは、サイトマップ通知を待つことに加えて、またはその代りに、通知を待たずに処理向けのサイトマップを周期的に選択し、アクセスしてよい。サイトマップデータベースもアクセスされてよい(1108)。次いで、データベースからのサイトマップが処理向けに選択されてよい(1110)。この選択は、最終修正日付情報または更新率情報などデータベースに格納された情報を基になされてよい。例えば、サイトマップの「年齢」(例えば現在の日付とサイトマップの日付の差、または現在の日付とサイトマップの最終修正日付の差)が、サイトマップにリストされた任意のドキュメント向けの最短の予測された更新期間より高齢のとき、このサイトマップはダウンロード向けに選択されてよい。選択されたサイトマップは、ウェブサーバからダウンロードされることによって、またはサイトマップデータベースで格納されたサイトマップのコピーにアクセスすることによって、アクセスされ得る(1112)。
【0115】
そのような情報がダウンロードから受け取られると、次いで、サイトマップデータベースは、新規のサイトマップ情報で更新されてよい(1114)。1つまたは複数のサイトマップのインデックスまたはサイトマップがパーサイト情報を含む実施形態では、パーサイト情報のデータベースは、受け取られたパーサイト情報で更新される。
【0116】
サイトマップ中の各URLに対して、URLがクロールの候補かどうかについての判断がなされ得る(1116)。URLのドキュメントが更新されたか、または多分更新されているか、あるいはURLがアクセス可能なドキュメントを適切に指定するかなどの判断が、URL状態情報を基になされ得る(1124)。クロールの候補であると判断されたURLは、候補のURL(1126)として識別され得て、それらの各々は、スコアを割り当てられてよい(1118)。各候補URLのスコアは、サイトマップから抽出されたURLのページ重要性スコア(例えばPageRank)およびURLの優先順位の値に基づいてよい。スコア付け後の候補URL(1128)は、フィルタリングされてよい。
【0117】
フィルタは、予算、サイトの制約(例えば巡回ロボットがクロールの期間中にダウンロードすることができるドキュメント数の限界)など1つまたは複数の所定の基準を基に候補URLのサブセットを選択してよい。結果として生じる候補URLのリストは、次いで、URLダウンロードのスケジュールを組むために使用されてよい(1122)。前述のように、URLダウンロードのスケジュール設定は、URLまたはドキュメント識別子の順序付けられたリストの生成を含んでよく、ドキュメントを表すリスト中のドキュメント識別子でより前のものは、順序付けられたリスト中でより後ろに配置されたドキュメントより高い優先順位または重要性を有する。その上、前述のように、いくつかの実施形態では、スケジュール設定操作1122は、特定のウェブサイト向けのクロール時間間隔および/またはクロール率情報などのサイトマップのインデックスまたはサイトマップ中で受け取られたパーサイト情報を考慮に入れてよい。
【0118】
いくつかの実施形態では、スケジューラは、巡回ロボットが実際にクロールすることができるものより多くのドキュメントを、クロール向けにスケジュール設定してよい。いくつかの実施形態では、巡回ロボットは、ウェブサイトまたはウェブサーバ用のクロール予算を有するかもしれない。予算は、特定のウェブサイトまたはウェブサーバに対して、特定のクロールセッションで、巡回ロボットがクロールすることができるドキュメントの最大数である。換言すれば、予算は、特定のウェブサーバまたはウェブサイトに対していくつのドキュメントをクロールするかウェブ巡回ロボットがそれ自体に課した制限であり得る。予算は、巡回ロボットが、特定のウェブサイトまたはウェブサーバに対して実行するはずのクロールを制限し、巡回ロボットが、そのクロール限界に達する前に他のウェブサイトまたはウェブサーバをクロールすることができることを確実なものにする。
【0119】
いくつかの実施形態では、ウェブサイト/ウェブサーバのオペレータは、特定のウェブサイトまたはウェブサーバに対するクロールを抑制するためにサイト制限を設定してよい。サイト制限の目標は、ウェブサイトまたはウェブサーバに関連したネットワーク資源が巡回ロボットによって消耗されるのを防ぐために、特定のウェブサイトまたはウェブサーバに対するクロールを制限することである。サイト制限は、ウェブサイトのオペレータによって定義されたドキュメントの最大数を含んでよく、この数は、定義された期間中(例えば1時間当りまたは1日当り)に特定のウェブサイトに対してクロールされてよいものである。さらに、この制限は、モバイルドキュメントの特定のフォーマットなど、ウェブサイトまたはウェブサーバ上のドキュメントのフォーマットを含んでよい。
【0120】
候補URLをフィルタリングすると、ソートされフィルタリングされた候補URL(1130)のリストおよび未選択の候補URL 1132のリストの生成につなげることができる。ソートされフィルタリングされた候補URLのリストは、スケジューラに伝送され得て、スケジューラは、リスト中のURL向けにクロールのスケジュールを組むことができる。未選択のURL 1132のリストは、第2のスケジューラ1136を含み得る第2のウェブ巡回ロボット1134に伝送されてよい。第2のスケジューラ1136は、次いで、第2のウェブ巡回ロボット1134によるクロールのために、リスト1132中のURLのスケジュールを組むことができる。
【0121】
URLスケジューラは、サイトマップから得られたドキュメントメタデータによるリスト中のURL向けにクロールのスケジュールを組むことができる。前述のように、メタデータは、ドキュメント最終修正日付情報、ドキュメント更新率情報、ドキュメント優先順位情報およびドキュメント支持率情報を含んでよい。
【0122】
スケジューラは、サイトマップからの最終修正日付情報を基にURLをクロールするスケジュールを組んでよい。ウェブ巡回ロボットによってドキュメントがダウンロードされた最後の日付/時間からドキュメントが修正されていないなら、スケジューラは、URLに対応するドキュメントのクロール用のスケジュール設定を延期してよい。換言すれば、ドキュメントの最終修正日付がウェブ巡回ロボットによるドキュメントの最後のダウンロードの日付/時間より後でないならば、スケジューラは、ドキュメントのクロール用のスケジュール設定を延期してよい。そのような延期は、変化していないドキュメントの再ダウンロードを避けることにより、ネットワーク資源の節約に役立つ。
【0123】
スケジューラは、サイトマップからの更新率情報を基にドキュメントをクロールするスケジュールを組むこともできる。ドキュメントがダウンロードされた更新率および最後の日付/時間の定義済関数が所定の基準を満たすなら、スケジューラは、ドキュメントをクロールするスケジュールを組んでよい。いくつかの実施形態では、ドキュメントがダウンロードされた最後の日付/時間と現在の時間の間の差が更新率情報によって示される更新率より大きいとき、ドキュメントはダウンロードに向けてスケジュールを組まれ得る。例えば、ドキュメントの更新率が「毎週」で、この前ドキュメントがダウンロードされたのが2週間前であるなら、スケジューラは、ドキュメントをダウンロードするためにスケジュールを組んでよい。これは、最後のダウンロード以来不変であると予想されるドキュメントのダウンロードを避けることにより、ネットワーク資源を節約するのに役立つ。
【0124】
スケジューラは、候補URLの相対的優先順位を基に候補URLのスコアを調整してもよい。スケジューラは、相対的優先順位に対応するブーストファクタを求め、それらをスコアに適用する。いくつかの実施形態では、スケジューラは、ドキュメント優先順位の補助的な指標であるドキュメント支持率情報を基にブーストファクタを求めてもよい。
【0125】
いくつかの実施形態では、選択された候補URLまたは未選択の候補URLに付属しているスコアが、どのURLがクロールしなければならないURLであるか判断するために使用されてよい。すなわち、スコアは、ドキュメントがクロールされることを保証されているかどうか判断するのに役立ち得る。スコアが高いURLは、クロールが必要であると示されてよい。これは、重要なページがクロールのためにスケジュール設定されることを保証する。
【0126】
図12は、サーチシステムにモバイルサイトマップを加えるための表示を示すスクリーンショットの例である。この表示は、ユーザが生成したサイトマップを識別するURLを登録するための指示を示す。さらに、URLを受け取るためのブランクの入力ボックスおよび提示ボタンも設けられている。この表示は、選択されたとき、ユーザに、サイトマップを求めてURLを選択し識別するための追加の指示を与える複数のハイパーリンクも提供する。
【0127】
図12の表示の例は、モバイルデバイスを使用して見られるように意図されたウェブサイトに関連したサイトマップ向けの情報を提供することをユーザが望むならば、ユーザに追加の選択肢も提供する。サイトマップについての情報の提示は、手動のウェブページ操作としてここに示されているが、アプリケーションが遠隔サーバへサイトマップ情報を提示するようにプログラムされ得て、ユーザは、コマンドを選択するかそうでなければサイトマップが遠隔サーバに提示されるべきであると指示するだけでよいように自動化されてもよい。
【0128】
図13は、サーチシステムにモバイルサイトマップを加えるための表示を示すスクリーンショットの例である。例えば、ユーザが図12の表示上のモバイルサイトマップを提供することを選択したとき、この表示が示されてよい。再び、ユーザには、サイトマップのURLを入力する機会が与えられている。さらに、この画面では、ユーザは、サイトマップに関連したウェブサイトで、ドキュメント用の(諸)フォーマットを、例えばラジオボタンの選択によって指定することができる。例えば、WMLおよびXHTMLは、携帯電話など特定のモバイル通信デバイスで見るために作られたコンテンツ用のフォーマットを定義する規格である。あるいは、ある携帯用情報端末は、ほとんどの電話よりも大きな画面を有し、したがって、作成者は、そのコンテンツを直接そのような画面へ宛ててよい。さらに、cHTML、すなわちiModeとして既知のHTMLの派生が、モバイルデバイスの電気通信会社NTT DoCoMoによって開発されている。したがって、作成者は、これらのフォーマットの1つまたは複数向けに書き込むかまたはフォーマットしてよく、また、サーバがそれらのドキュメントを正確に読み取る巡回ロボットを選択するように、適切なフォーマットでサイトマップをドキュメントに対応させる機会を得ることができる。
【0129】
図14は、ユーザに関連付けられたサイトマップを閲覧し管理するための表示を示すスクリーンショットの例である。この表示は、忙しいウェブマスタが様々なサイトマップの提示の進行を追跡することを可能にすることができる。一般に、この表示は、(位置および名前によって)提示されたすべてのサイトマップのリスト、サイトマップに対応付けられたドキュメントのタイプ(モバイルまたはウェブ)、サイトマップがユーザによって初めて識別されてからの時間および遠隔サーバが最後にサイトマップをダウンロードしたときからの時間、ならびにサイトマップの状態を示す。例えば、サイトマップを読み取る際に、サイトマップが所定のフォーマットに従わないなどのエラーが生じると、サイトマップの状態は「パージングエラー」としてリストされてよい。その代りに、またはそれに加えて、問題があったかどうかユーザが直ちに知ることができるように、電子メールまたはインスタントメッセージなどのメッセージによってユーザにエラーが示されてよい。
【0130】
図15は、ウェブサイトサーバ1500を示すブロック図である。ウェブサイトサーバ1500(または「ウェブサーバ」)は、一般に、1つまたは複数の処理装置(CPU)1502、1つまたは複数のネットワークまたは他の通信用インターフェース1504、メモリ1510、およびこれらの要素を相互接続するための1つまたは複数の通信バスまたは信号ライン1512を含む。ウェブサイトサーバ1500は、任意選択でユーザインターフェース1505を含んでよく、これは表示デバイス、マウス、および/またはキーボードを備えてよい。メモリ1510は、DRAM、SRAM、DDR RAMまたは他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリを含み、1つまたは複数の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイスなどの不揮発性記憶装置、または他の不揮発性固体記憶装置を含んでよい。
【0131】
メモリ1510は、CPU 202(例えば、ネットワークに取り付けられた記憶デバイス)から遠隔に配置された1つまたは複数の記憶デバイスを任意選択で含んでよい。いくつかの実施形態では、メモリ210は、様々な基本システムサービスを扱い、かつハードウェア依存タスクを実行するための処理手順を含むオペレーティングシステム1514、1つまたは複数の通信ネットワークインターフェース1504およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、都市内ネットワークなどの1つまたは複数の通信ネットワークを介して、ウェブサイトサーバ1500を他のコンピュータに結合するために使用されるネットワーク通信モジュール1516、サイトマップを生成するサイトマップ生成モジュール106、サイトマップの生成を制御するかガイドするサイトマップ制御パラメータ104、ウェブサイトサーバ200に格納されたサイトマップのURLをリストするサイトマップのインデックス112、クロールされ得るドキュメントのURLをリストする1つまたは複数のサイトマップ114、およびドキュメントを格納し整理するウェブサイトファイルシステム102の、プログラム、モジュールおよびデータ構造、またはそのサブセットを格納する。
【0132】
上記の識別された各要素は、1つまたは複数の前述のメモリデバイスに格納されてよく、前述の関数を実行するための命令セットに対応する。上記の識別されたモジュールまたはプログラム(すなわち命令セット)を、個別のソフトウエアプログラム、処理手順またはモジュールとして実行する必要はなく、したがって、これらのモジュールの様々なサブセットが、様々な実施形態において組み合わせるかそうでなければ再配置されてよい。いくつかの実施形態では、メモリ1510は、上記の識別されたモジュールおよびデータ構造のサブセットを格納してよい。その上、メモリ1510は、上記で説明されていない追加モジュールおよびデータ構造を格納してよい。
【0133】
実際上、当業者によって理解されるように、上記の図中に別々に示されている項目を組み合わせることができ、いくつかの項目を分離することもできる。例えば、図で別々に示されるいくつかの項目を単一のサーバ上で実現することができ、1つまたは複数のサーバによって単一項目を実現することもできる。当業者によって理解されるように、ウェブサイトは、ウェブサーバなど単一のサーバ、または複数のウェブサーバなど複数のサーバ上で実現することができる。ウェブサイトサーバまたは巡回ロボットシステムあるいは他のシステムを実現するために使用されるサーバの実際の数、および、それらにどのように機能が割り当てられるかは、実装形態ごとに様々であり、部分的には、平均的使用期間中ばかりでなくピーク使用期間中にシステムが扱わなければならないデータトラフィック量次第であり得る。説明の便宜上、ウェブサイトは、あたかもそれらが単一のウェブサーバ上で実現されているかのように以下で説明される。
【0134】
本発明の複数の実施形態が説明されてきた。しかし、本発明の趣旨および範囲から逸脱することなく、様々な変更形態が作られ得ることが理解されよう。例えば、上記で論じられたステップは、示されたものと異なる順序で実行されてよく、あるステップが除去されてよく、加えられてもよい。したがって、他の実施形態は以下の特許請求の範囲の範囲内にある。
【符号の説明】
【0135】
10 システム
12 サーバシステム12
14 クライアント
16 サーバ
17 サイトマップ
【技術分野】
【0001】
本発明は、インターネットなどネットワーク上の情報の検索(locating)に関し、より詳細には、モバイルデバイスに役立つ検索エンジンなどのアプリケーションが、そのデバイスによって表示され得る形式のドキュメントに関連する結果をより容易に送ることができるように、モバイルフォーマットされたウェブサイトなどのドキュメントにインデックスを付ける技術に関する。
【0002】
本出願は、2005年8月29日出願の米国特許出願第11/214,708号の継続出願であって、その優先権を主張するものであり、参照によりこの出願を本明細書に組み込む。
【背景技術】
【0003】
インターネットおよび他のネットワークで利用可能な情報が増加するのにつれて、それらに関連した特定の情報を検索することが、ユーザにとってより困難になる。例えば、「自転車に乗る」ことについて情報を探すユーザは、自転車に乗ることの生理学的な側面、特定の地域でのサイクリングルート、特定のスポーツ用品会社の相対的な販売に関する経済情報、または様々な自転車会社の販売ページに関する情報を得る可能性がある。ユーザに与えられた情報は、十分に研究された非常に専門的な情報から、不正確か、またはほとんど役に立たない指示にまで及ぶ可能性もある。ユーザは、できるだけ多くの情報にアクセスして、最悪の材料から最良の成果が検索されることも望むものである。
【0004】
検索エンジンは、ユーザが関連データを見つけるのに役立つ。そうするために、検索エンジンは、ユーザが検索を要求するときインデックスを速く検索することができるように、一般に、利用可能なデータをすべて分類するかインデックスを付ける。一般に、検索エンジンは、例えば、ウェブページまたは画像ファイルなどのドキュメントに次々と接続するリンク(ハイパーリンクとも呼ばれる)をたどる「ウェブ巡回ロボット」を使用することにより情報を発見する。より詳細には、巡回ロボットは、各ウェブページを訪れ、次いで、そのページのすべてのリンクおよび下位のページのすべてのリンクを「クリックする」ことによって、すべてのページを訪れてインデックス付けするまでウェブを「サーフィン」する非常に好奇心の強い人によく似た動作をすることができる。このプロセスは「発見ベースの」クロール(“discovery-based”crawling)と呼ばれることがある。
【0005】
従来の発見ベースのクロールは、いくつかの状況においてある欠点を有することがある。例えば、巡回ロボットが単にリンクをたどることによって発見することができないドキュメントがあるかもしれないので、クロール有効範囲が不完全かもしれない。また、巡回ロボットは、メニュー、ジャバスクリプトのスクリプトおよびデータベースのクエリを作動させるフォームなど他のウェブベースのアプリケーションロジックに埋め込まれているいくつかのリンクを認識しないかもしれない。また、巡回ロボットは、ドキュメントが先のクロール以来変化したかどうか識別しない可能性もあり、したがって、現在のクロールサイクルの間にこのドキュメントがスキップされるおそれがある。さらに、巡回ロボットは、特定のウェブサイトをいつクロールするべきであるか、クロールプロセス中にそのウェブサイトにどれだけの負荷を置くべきか、識別しないかもしれない。高トラフィック期間中のウェブサイトのクロールおよび/またはクロール中の過大負荷は、ウェブサイトからのネットワーク資源を消耗する恐れがあり、他者に対してウェブサイトをアクセスしづらくする。
【0006】
巡回ロボットがモバイルコンテンツを探しているとき、その他の障害が発生するかもしれない。具体的には、インターネット上で利用可能な大部分のウェブサイトは、テキスト、図、アニメーションおよび他のリッチコンテンツを表示できるフル機能のデスクトップブラウザプログラム(例えばNetscape Navigator、Internet ExplorerまたはFirefox)で見るように意図されている。携帯用情報端末および携帯電話など多くのモバイルデバイスは、特定のタイプのコンテンツを表示するように能力が限定されている。したがって、それがモバイルコンテンツか、また、あるデバイスに適切に表示されるかどうかによって、あるインデックスを付けられたコンテンツを分類することが好ましいであろう。しかし、巡回ロボットがモバイルコンテンツを得ようとするとき、巡回ロボットは、コンテンツを得るために、ブラウザを使用して、実際の人間の動作をまねようとするかもしれない。すべてのタイプのコンテンツを確実に得ることができるように、巡回ロボットは、いくつかのモバイルデバイスが対応していない大きなフィーチャのセットを引き受けるかもしれず、したがって、何人かのユーザに対して不適当なコンテンツを指し示す恐れがある。また、巡回ロボットは、その巡回ロボットがフル機能のブラウザを有する高度なユーザであることを示すユーザエージェントストリングをサーバへ渡すかもしれない。次いで、サーバは、そのようなフル機能のブラウザを意図したコンテンツを返すかもしれず、また、特定のモバイルデバイスまたはモバイルデバイスのクラスを意図した等価であるがより簡単なモバイルコンテンツを隠すかもしれない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−308335号公報
【特許文献2】特開2001−014210号公報
【特許文献3】特開2005−176312号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
したがって、巡回ロボットシステムの使用によるものなどのモバイルドキュメントの正確な解析を提供する能力の必要性がある。
【課題を解決するための手段】
【0009】
この文献は、一般に、コンテンツプロバイダが、ウェブページなどの1つまたは複数のネットワークにアクセス可能なドキュメント用のサイトマップを作成することができ、かつ検索エンジンに関連したコンピュータなどの遠隔コンピュータにサイトマップを提示することができるシステムおよび方法について論じる。そこで、遠隔コンピュータは、ドキュメントまたはドキュメント中の情報に、より効率的にアクセスおよび/またはインデックス付けするためにサイトマップにアクセスすることができる。ウェブサイトまたは自動のコンテンツ管理システムを構築したウェブマスタなどのコンテンツプロバイダは、あるコンテンツが、特定のモバイルデバイスまたは表示能力が限定された他のデバイス上の表示を意図することを示してよい。遠隔コンピュータは、データへのアクセスおよびクロールのために適切な仕組みを選択するように、そのような指示を使用することができる。例えば、巡回ロボットは、XHTMLフォーマットのコンテンツの解釈を対象とするインスタンスを実現することができる。
【0010】
一実施形態では、ドキュメントまたはドキュメントの関係を解析する方法は、1つまたは複数のネットワークアクセス可能なドキュメントについての情報を含む利用可能なメタデータドキュメントの通知を受け取るステップ、メタデータドキュメントに関連したドキュメントフォーマットインジケータを得るステップ、ドキュメントフォーマットインジケータを使用してドキュメント巡回ロボットを選択するステップ、および選択されたドキュメント巡回ロボットを使用してネットワークアクセス可能なドキュメントのうちの少なくともいくつかをクロールするステップを含む。ネットワークアクセス可能なドキュメントは、共通ドメインで複数のウェブページを備えてよく、メタデータドキュメントは、ドキュメント識別子のリストを含んでよい。さらに、ドキュメントフォーマットインジケータは、XHTML、WML、iModeおよびHTMLを含む1つまたは複数のモバイルコンテンツフォーマットを示すことができる。
【0011】
いくつかの実装形態では、ネットワークアクセス可能なドキュメントのうちの少なくともいくつかのクロールから検索された情報が、インデックスに加えられてよい。また、モバイルデバイスから検索要求が受け取られてよく、検索結果は、インデックス中の情報を用いてモバイルデバイスに伝送されてよい。利用可能なメタデータドキュメントは、ドキュメントの複数のリストを参照するインデックスを備えてもよい。さらに、1つまたは複数のネットワークアクセス可能なドキュメントのためのドキュメントタイプの指示(例えば、ニュース、娯楽、通商、スポーツ、旅行、ゲームおよび金融)を受け取ることができ、このドキュメントタイプの指示を用いてドキュメントを分類することができる。プロバイダが信頼されていること保証するために、ドキュメントタイプの指示のプロバイダを確かめてもよい。
【0012】
別の実装形態では、ネットワークアクセス可能なドキュメントのリストを作成する方法が提供される。この方法は、関連したネットワークアクセス可能なドキュメントの構造を示すドキュメントを生成するステップ、ならびにアクセス用にマッピングドキュメントが利用可能であるという指示およびドキュメントのフォーマットの指示を含む通知を遠隔コンピュータに伝送するステップを含む。マッピングドキュメントは、ドキュメント識別子のリストを含んでよく、ドキュメントフォーマットの指示は、ドキュメントを解釈する能力に影響を与える1つまたは複数のモバイルドキュメントフォーマットを示してよい。通知は、マッピングドキュメントの位置の指示を含んでもよく、ユーザがウェブベースのフォームに記入するとき伝送されてよい。
【0013】
別の態様では、ネットワークアクセス可能なドキュメントをクロールするためのシステムが論じられる。このシステムは、1つまたは複数のウェブサイトにネットワークアクセス可能なドキュメントについての構成上の情報を格納するメモリ、ドキュメントについてのフォーマット情報、構成上の情報を用いてネットワークアクセス可能なドキュメントにアクセスするように構成された巡回ロボット、およびフォーマット情報によって示されたフォーマットに適合するペルソナを巡回ロボットに仮定させるように巡回ロボットに対応付けられたフォーマットセレクタを含む。構成上の情報は、URLのリストを含んでよい。また、選択されたペルソナを巡回ロボットに仮定させるためのパラメータを格納するエージェントリポジトリが与えられてよい。
【0014】
別の実装形態では、ネットワークアクセス可能なドキュメントをクロールするためのシステムが提供され、1つまたは複数のウェブサイトにネットワークアクセス可能なドキュメントについての構成上の情報を格納するメモリ、ドキュメントについてのフォーマット情報、構成上の情報を用いてネットワークアクセス可能なドキュメントにアクセスするように構成された巡回ロボット、およびネットワークアクセス可能なドキュメントへのアクセスを与えるように巡回ロボットペルソナを選択するための手段を含む。
【0015】
別の実装形態は、コンピュータシステムとともに使用するためのコンピュータプログラム製品を含む。この製品は、埋め込み式のコンピュータ可読記憶媒体およびコンピュータプログラムの仕組みを含む。この仕組みは、関連したネットワークアクセス可能なドキュメントの構造を示すマッピングドキュメントを生成し、かつアクセス用にリストが利用可能であるという指示およびドキュメントのフォーマットの指示を含む通知を遠隔コンピュータに伝送するための命令を含む。マッピングドキュメントは、ドキュメント識別子のリストを含んでよく、ドキュメントフォーマットの指示は、ドキュメントを解釈する能力に影響を与える1つまたは複数のモバイルドキュメントフォーマットを示してよい。さらに、通知は、マッピングドキュメントのロケーションの指示を含んでよく、この指示は、ユーザがウェブベースのフォームに記入するとき伝送されてよい。
【0016】
本発明の1つまたは複数の実施形態の詳細が、添付図面および以下の説明に示される。本発明の他の特徴、目的および利点は、説明および図面ならびに特許請求の範囲から明らかになる。
【0017】
様々な図面において同じ参照符号は同じ要素を示す。
【図面の簡単な説明】
【0018】
【図1】本システムの一部における情報の構成へのアクセスおよび解析のためのシステム内の要素間の通信を示す概念図である。
【図2】検索エンジンによるアクセスのためにインターネットドキュメントにインデックスを付けるためのシステムの概略図である。
【図3】システム内の情報の構成にアクセスし解析するための動作を示す流れ図である。
【図4】ウェブサイト向けのサイトマップを生成するプロセスの概念図である。
【図5】サイトマップジェネレータの制御パラメータを格納するためのデータ構造を示すブロック図である。
【図6】サイトマップを生成するためのプロセスを示す流れ図である。
【図7】サイトマップを生成するための別のプロセスを示す流れ図である。
【図8】ディファレンシャルサイトマップを生成するためのプロセスを示す流れ図である。
【図9】ウェブ巡回ロボットシステムを示すブロック図である。
【図10】サイトマップ巡回ロボットを示すブロック図である。
【図11】サイトマップに含まれた情報を基にドキュメントのダウンロードをスケジュール設定するプロセスを示す流れ図である。
【図12】サーチシステムにサイトマップを加えるための表示のスクリーンショットを例示する図である。
【図13】サーチシステムにモバイルサイトマップを加えるための表示のスクリーンショットを例示する図である。
【図14】ユーザに関連付けられたサイトマップを閲覧し管理するための表示のスクリーンショットを例示する図である。
【図15】ウェブサイトサーバを示すブロック図である。
【発明を実施するための形態】
【0019】
図1は、システム10の一部における情報の構成へのアクセスおよび解析のためのシステム10内の要素間の通信を示す概念図である。一般に、システム10は、ウェブマスタなどのユーザが、ウェブページなど複数のリンクされたドキュメントのコンテンツを含むウェブサイト向けのコンテンツを開発することができるように構成される。そこで、ユーザは、ドキュメント構成の表現である「サイトマップ」を作成することができる。例えば、以下でより詳細に説明されるように、サイトマップは、ウェブサイトの構成を示すURLのリストを有するXMLまたは他の類似のファイルフォーマットを含んでよく、コンテンツが格納されるフォーマット、コンテンツがアクセスされるべき速度、およびコンテンツの表示が更新されるべき頻度など、ある追加の一般的なデータまたはメタデータも含んでよい。
【0020】
そこで、ユーザは、直接またはアプリケーションプログラムを介して、検索エンジン向けの巡回ロボット(crawler)の要素など別のシステムに、サイトマップが有効であることを通知してよく、サイトマップのロケーションを与えてもよい。ユーザは、サイトマップが関係するドキュメントのフォーマットの指示を与えてもよい。例えば、それらがモバイルドキュメントであるならば、ユーザは、ドキュメントがXHTML、WMLまたはiModeフォーマットを有することを示すことができる。次いで、巡回ロボットは、検索エンジンのインデックスへの格納などのために、適切なクロールモードを選択し、かつドキュメントからより効率的に情報検索するように、この提示された情報を用いることができる。
【0021】
ドキュメントまたはドキュメントのフォーマットのグループの識別も自動的に行われてよい。例えば、自動プロセスは、その特徴からドキュメントのフォーマットを暗示することにより、1つまたは複数のドキュメントの特徴を識別することができる。そのようなプロセスもマシン学習システムによって実行することができ、それによって、自動的に判断することができ、判断の精度がテストされ、フォーマットに従ってドキュメントを分類するためのルールがシステムの分類能力の向上に応じて更新される。特定のフォーマットを有するものとして分類するために、(諸)ドキュメント(a document or documents)のコンテンツに対して所定のルールのセットが適用されてもよい。そのような分類技術は、Google社に譲渡された、2005年6月15日出願の「Electronic Content Classification」という名称で同時係属の米国特許出願第11/153,123号に開示されており、参照によってその全体を本明細書に組み込む。
【0022】
サイトマップが、データベースクエリによってのみアクセス可能なドキュメントなど、後続のリンクによるアクセスが不可能なドキュメントを含むことがあるので、ウェブ巡回ロボットがサイトマップを使用すると、より大きなクロール範囲を招く可能性がある。サイトマップは、最終修正日付を与えることもできる。ウェブ巡回ロボットは、ドキュメントが変化しているかどうか判断するために最終修正日付を用いることができ、それによって内容が変化していないドキュメントをクロールするのを避けることができる。変化していないドキュメントをクロールしないようにサイトマップを使用すると、ウェブ巡回ロボットおよびネットワーク巡回ロボットをかなり効率よくすることができる。サイトマップは、ウェブ巡回ロボットが、どのドキュメントを最初にクロールするか、ドキュメントをクロールするのに与えるべきフォーマットまたはペルソナ、およびクロール中にウェブサーバ上にどれだけの負荷を置くべきか、そこから判断することができる情報も含む。これも、ネットワーク資源を保護するのを支援することができる。
【0023】
この例示のシステム10における主要構成要素は、クライアント14、クライアント14に関連したサーバ16、およびクライアント14と直接には関連しないサーバシステム12である。クライアント14は、例えば、クライアント14あるいはサーバ16またはサーバシステム12など他のコンピュータ上で走るプログラムにアクセス権を与えるように構成されたパーソナルコンピュータまたは他のコンピュータでよい。クライアントは、携帯用情報端末、ワークステーション、キオスクのコンピュータまたは他の適切なコンピュータプラットフォームでもあり得る。
【0024】
サーバ16は、例えば、ウェブサーバまたはウェブに関連したコンテンツが格納されているウェブサーバと通信しているサーバでよい。したがって、例えば、クライアント14のユーザは、ウェブサイトを構築するウェブページなど複数のドキュメントを開発するために作業することができる。ユーザは、様々なドキュメントの間に、また、そのドキュメント中に、ハイパーリンクを挿入することができ、サーバ16上に格納されて、または他のところに、ウェブサイト外の他のドキュメントへのリンクも含めることができる。サーバ16は、それ自体がクライアント14の一部でもよい。特定の物理的構成は重要ではなく、様々な実装形態が当業者によって理解されるであろう。クライアント14およびサーバ16が、一般に単独の会社(ウェブサイトを有する企業など)によって稼動され、一方、サーバシステム12が、一般に個別の会社(検索エンジンプロバイダなど)によって稼動されるであろうということを示すために、クライアント14およびサーバ16は、サーバシステム12から分離した点線のボックス内に示されている。
【0025】
サーバシステム12は、クライアント14およびサーバ16から離れたシステムの一部でよい。サーバは、例えばGoogleによって運転されるものなど、検索エンジンシステムの一部でよい。一連の類似のサーバコンピュータとして示されているが、サーバシステム12におけるサーバは、例えばクライアントからの要求を受け取って、要求に対して適切なレスポンスを与えるためのブレードサーバまたは他のコンピュータプラットフォームを含むことができる。以下でより詳細に説明されるように、サーバ16は、要求に応じるために適切な情報を集めるためのコンテンツサーバおよび適切な宣伝用コンテンツを選択し生成するための広告サーバとともに、要求を受け取ってレスポンスを伝送するためのウェブサーバを含んでよい。用語「クライアント」および「サーバ」の使用は、どちらのタイプのコンピュータにも特定の必要条件を課するようには意図されない。むしろ、クライアントは単にあるデータへのアクセスを期待するコンピュータでよく、一方、サーバはデータを供給するコンピュータでよい。したがって、単一のコンピュータが、ある状況ではクライアントであり、別の状況ではサーバであり得る。
【0026】
図1において、文字の入った矢印は、システム10の要素間の情報の流れの例を示す。矢印Aによって示された最初の通信セッションでは、クライアント14は、ウェブベースのドキュメントなどのコンテンツを作成するためにサーバ16と通信する。例えば、クライアント14は、ウェブ製作アプリケーション(例えば、Adobe Sitemill、GoLive CyberStudio、HoTMetal Pro、Macromedia Dreamweaver、NetObjects Fusion、またはMicrosoft FrontPage)またはより複雑なコンテンツ管理システム(例えばVignette、Interwoven、またはStellant)のインスタンスを実行してよい。ユーザは、複数のウェブページを生成することができ、それらを様々なやり方でともに連結することができる。また、あるページ(例えば深いウェブコンテンツ)は、一般的な発見ベースのクロールが到達できるやり方でなければリンクできないかもしれない。ウェブアクセス可能なコンテンツを開発するためのプロセスは周知である。
【0027】
以下でより詳細に説明されるように、ユーザがドキュメントを公に利用可能にすることを意図するときなど、ドキュメントがある完成時点にあるとき、ユーザは、ドキュメント用のサイトマップ17を生成することができる。サイトマップ17は、ドキュメントの構成の一部またはすべてを示してよく、例えば、ドキュメント用のリストまたはユニフォームリソースロケータ(URL)のグループ化を含むことができる。サイトマップ17は、所定のXMLタグを使用して、エクステンシブルマークアップランゲージ(XML)ドキュメントなどの適切な形式をとってよい。以下でより詳細に説明されるように、サイトマップ17は、ドキュメントがクロールされるべきやり方についての一般的情報などの他の情報を含んでよい。他のフォーマットも、プレーンテキスト、コンマで区切られた値およびセミコロンで区切られた値を含んで使用されてよい。したがって、サイトマップ17は、他のアプリケーションによって、ドキュメントの構成に対するガイドとしてメタデータの形で使用されてよい。
【0028】
次いで、矢印Bによって示されるように、クライアント14は、(自動的にまたは手動で)サーバシステム12と連絡をとり、サイトマップ17についての情報を伝送することができる。例えば、クライアント14は、サイトマップ17のロケーションを提供してよい。さらに、クライアント14は、サイトマップ17に関連したドキュメントのフォーマットについての情報を提供してよい。例えば、クライアント14は、モバイルコンテンツ規格など特定の規格に従ってドキュメントがフォーマットされていることを示してよい。クライアント14は、ドキュメントをどれくらい頻繁にクロールするべきか(すなわち、たびたび更新されるドキュメントはたびたびクロールされるべきであるが、ほとんど更新されないドキュメントは、たびたびクロールされるべきでない)の指示を与えてもよい。他のそのようなパラメータも、クライアント14によって与えられ得る。1つまたは複数のそのようなパラメータもサイトマップ17または他の関連した(諸)ドキュメントに含まれてよく、その結果、サーバシステム12は、これらのパラメータに、クライアントの教唆で与えられるのでなくアクセスすることができる。
【0029】
矢印Cは、サイトマップ17が存在することを一旦通知されたならば、サーバシステム12がサイトマップ17のデータを得ることができることを示す。例えば、サーバシステム12は、矢印Bによってラベルが付けられた通信で識別されたロケーションに対してHTTP要求を出すことができ、それによってサイトマップ17内のデータを得ることができる。さらに、サイトマップ17は、1つまたは複数の他のサイトマップを指すサイトマップインデックス、またはサーバシステム12が、サーバ16でドキュメントの構成についての情報を得ることを可能にする、サイトマップと関連した別のドキュメントでよい。
【0030】
次いで、サーバシステム12は、矢印Dを通って、サーバ16上に格納されたドキュメントをクロールするかそうでなければドキュメントにアクセスすることができる。適切な環境において、サイトマップにリストを作成された各URLを通って進むことにより、クロールプロセスが生じることがあり得る。そのような識別されたドキュメントも、アクセスされたドキュメントのフルセットが、サイトマップにリストを作成されたドキュメントのスーパーセットを含み、また、すべてのドキュメントがそれらのドキュメント中で直接的または間接的に参照されるように、発見ベースのクロールによってナビゲートされてよい。
【0031】
ドキュメントフォーマットインジケータがサーバシステム12に渡されていると、サーバシステム12は、クロール動作を行うためにブラウザの特定のペルソナを選択することができる。例えば、その要求において、巡回ロボットは、特定のデバイスまたはデバイスのクラス向けのユーザエージェントインジケータを含むことがある。例えば、ユーザエージェントインジケータは、巡回ロボットがWMLフォーマットのコンテンツを解釈することしかできないという指示を与えるかもしれない。そのようなインジケータを与えることにより、巡回ロボットが適切なフォーマットでコンテンツを受け取り、他のより複雑なコンテンツに向けられないであろうということを保証するのに役立つことができる。
【0032】
巡回ロボットを有する特定のユーザエージェントを使用しても、巡回ロボットに、適切なフォーマットと関係がある特定のインデックス中のドキュメントについての情報を配置させることができる。例えば、サーバシステム12は、モバイルデバイスに表示するように設計されたコンテンツおよびモバイルデバイスには複雑すぎるコンテンツのために個別のインデックスを保持してよい。iMode、3g、xhtml、pdahtmlまたはwmlなどモバイルコンテンツの特定のタイプ(またはタイプのグループ)向けに、個別のインデックスも保持されてよい。したがって、後にユーザが検索要求を出すとき、システムは、ユーザが有するデバイスのタイプを判断することができ、そのようなデバイスに表示され得るコンテンツに関連したインデックス中でのみ検索することができる。適切なフォーマットのコンテンツが検索されるように、すべてのコンテンツが、各ドキュメントまたはドキュメントのグループのフォーマットを識別するのに有効なパラメータを有して、単一のインデックスに格納されてもよい。
【0033】
要するに、今しがた説明されたプロセスによって、ウェブサイトの作成者は、ネットワークアクセス可能な(例えばLAN、WANまたはインターネット)あるドキュメントの構成を表す(諸)ドキュメントを手動で、または自動的に生成することができる。ユーザまたはユーザのアプリケーションは、インターネット検索エンジンと関連しているサーバなど(諸)遠隔サーバに、例えば(諸)ドキュメンについてのURLを渡すことによって、ドキュメントおよび恐らくドキュメントに関係する追加パラメータのロケーションを通知することができる。次いで、遠隔サーバは、(諸)サイトマップを使用して、サイトマップがなければ不可能なほど、より効率よく、より正確に、すなわちより完全に、ドキュメントをトラバースする。さらに、サーバは、巡回ロボットがモバイルフォーマットのコンテンツなど関係のあるコンテンツを得ることを可能にする巡回ロボットの特定のペルソナを選択してよく、また、インデックスを付けられた他のコンテンツと別にこの特別のコンテンツを格納するか、そうでなければこのコンテンツにフラグを立ててよい。
【0034】
図2は、検索エンジンによるアクセスのためにインターネットドキュメントにインデックスを付けるためのシステム10の概略図である。再び、システムは、クライアント14、サーバ16およびサーバシステム12を含む。この図には、特にサーバシステム12の構成に関して追加の詳細が示されている。ここに図示されて説明された特定の構成は単に例示である。特定のアプリケーションのニーズによって必要とされるとき、他の適切かつ等価な構成も使用されてよい。また、様々な要素が加えられてよく、図示された要素が除去されてよく、あるいはシステム10の動作を変えることなく様々な要素が組み合わせられるかまたは分離されてよい。
【0035】
図2では、クライアント14は、LANまたはWANなどのネットワークを介してサーバ16にリンクして示されている。したがって、例えば、クライアント14およびサーバ16は、単一組織または関連した組織の中で動作するコンピュータを備えてよい。例えば、クライアント14は、組織のウェブ管理者またはプログラマに割り当てられたパーソナルコンピュータでよい。サーバ16は、ウェブサーバと通信中のウェブサーバまたはコンピュータなどの構成によって動作されるサーバでよい。図示されたように、クライアント14は、サイトマップ17が生成されてサーバシステム12などに対して有効になるように、サーバ16と通信することができる。
【0036】
サーバシステム12は、例えばインターネット、セルラー式データシステム、および公衆交換電話網(PSTN)を含み得るネットワーク20を介して、他のシステムに加えてクライアント14およびサーバ16と通信することができる。サーバシステム12と他の要素間の通信を管理するために、インターフェース22が与えられてよい。インターフェース22は、例えば1つまたは複数のウェブサーバを含んでよい。インターフェース22は、サーバシステム12の残りとの通信のいくらかまたはすべてを制御することができる。例えば、インターフェース22は、サーバシステム12の外から受け取られたメッセージを、サーバシステム12中の他の要素によって使用することができる形式へ再フォーマットすることができ、サーバシステム12中の適切な(諸)要素へメッセージを送ることもできる。さらに、インターフェース22は、サーバシステム12中の複数の要素からの情報を組み合わせて、サーバシステム12の外部に伝送することができるHTTPメッセージなどの形式へフォーマットすることができる。
【0037】
インターフェース22は、例えば入力メッセージを解析するように構成され得る要求インタープリタ36へメッセージを与えてよい。そのような解析によって、要求インタープリタ36は、サーバシステム12中の様々な要素のうちのどれが特定のメッセージを受け取るべきか判断することが可能になる。メッセージが送られてきたロケーションまたは送ったデバイスのタイプなどメッセージの特性を求めるために、要求インタープリタ36は、例えばヘッダ情報を調べることがある。要求インタープリタ36は、システム12のどの要素がメッセージまたはメッセージ中のある情報を見る必要があるか判断するために、構文上の指示などでメッセージのコンテンツを調べることもある。要求インタープリタ36は、インターフェース22の一部でもよい。
【0038】
検索結果を要求する入力メッセージは、検索エンジン26に送られてよく、検索エンジン26は、当技術で既知のように、検索要求に応じて適切な結果を与えることができる。例えば、検索エンジン26は、検索要求のコンテンツをインデックス28に格納された情報と比較することができる。インデックス28は、検索エンジン26が、URLなどを介してユーザに役立つ情報への接続をユーザに提供することができるように、インターネットなどのネットワーク上のドキュメント中の情報を表すデータを含むことができる。検索エンジン26は、周知のPageRankプロセスなどの方法を用いて、サーチ結果に対する一致を識別し、かつランク付けすることができる。
【0039】
そのような結果は、結果を集めてフォーマットすることができるコンテンツサーバ32を介して送られてよい。例えば、コンテンツサーバ32は、ほぼ同時の多数のサーチ要求を大規模システムにわたって扱うことができるように、複数の検索エンジン26のインスタンスから結果を受け取ることができ、各要求の一部は、特定の検索エンジン26要素によって扱われる。コンテンツサーバ32は、個々に生成された結果のすべてを、各一致の抜粋およびアドレス情報とともに、URLのリストなどの結果リストへ合併してよい。
【0040】
要求に応答した宣伝用のコンテンツなど他のコンテンツが、広告サーバ34によって提供されてよい。広告サーバ34は、それぞれが1つまたは複数のキーワードまたは他の識別子に関連する複数の販売促進項目にアクセスしてよい。広告サーバ34は、要求と識別子の一致を探してよく、次いで、要求と一致する販売促進項目を選択してよい。項目の選択および順位付けは、例えば、広告主が支払うことに合意した額、その項目についての要求と識別子の間の一致の度合、および要求と項目の間の関連性の指標(同じ要求を出している他のユーザがどれくらい多くその項目を選択したかなど)に基づいてよい。次いで、インターフェース22は、広告サーバ34とコンテンツサーバ32からの結果を組み合わせてよく、生成されたウェブページの形などで要求に対する結果を作成する。
【0041】
検索エンジン26によって使用されるインデックス28は、巡回ロボット24によってネットワークから集められたデータを用いて構築され維持され得る。具体的には、巡回ロボット24は、ドキュメント間のリンクおよびそのドキュメント中のリンクの使用、あるいは、ドキュメント、それらのロケーション、および/またはそれらの他のドキュメントとの関係について供給されたマッピング情報の使用などによって、ネットワーク上のドキュメントをトラバースすることができる。巡回ロボット24は、連続的にまたはほぼ連続的に動作することができ、複数のクロールする列または連携して動作する個別のサーバまたは全く別個の諸巡回ロボットへ分割され得る。
【0042】
巡回ロボット24は、ドキュメントの特定のフォーマットまたはスタイルを識別するように構成されてよく、あるいは複数のフォーマットまたはスタイルを解析するように構成されてよく、また、様々な有効なフォーマットまたはスタイルの間で切り換えられてよい。そのため、巡回ロボット24は、ネットワーク20上のドキュメントから情報を得るプロセスにおいて、複数の様々なエージェントまたはエージェントの組合せの役を勤めることができるかもしれない。例えば、巡回ロボット24は、WMLまたはXHTMLの能力を有する携帯電話、またはiModeデバイスの役を勤めることができる。モバイルフォーマット向けの巡回ロボットは、他のクロールするパイプラインより、個別のインスタンスまたは巡回ロボットのインスタンスとして動作することができる。しかし、モバイルのインスタンスの可視性を制限するパラメータを例外として、クロール向けの同じ一般的な構造が、フル機能のデスクトップのクロールのインスタンスと機能が限定されたモバイルのクロールの間で共有され得る。さらに、以下に説明されるように、モバイル巡回ロボットと非モバイル巡回ロボットは、ユーザまたはアプリケーションがシステムとインターフェースをとる共通のフロントエンドを共有することができる。
【0043】
巡回ロボット24は、ルールセット30からのそのような各エージェント向けのパラメータにアクセスすることができる。ルールセット30は、例えば、第1のエージェント30aを定義するパラメータを含んでよく、このパラメータは、例えば、通常のHTMLフォーマットの情報を得るためのエージェントを定義してよい。ルールセット30は、第2のエージェント30bも含んでよく、このパラメータは、例えば、XHTMLおよびWMLフォーマットの情報を得るためのエージェントを定義してよい。最終的に、ルールセット30は、例えばiModeフォーマットの情報を得るためのエージェントを定義することができるn番目のエージェント30cを含んでよい。他のフォーマットまたはフォーマットのグループ向けの他のエージェントも定義されて有効になり得る。
【0044】
巡回ロボット24は、あるドキュメントをクロールするとき巡回ロボット24によって得られたペルソナを制御するフォーマットセレクタ25を含んでもよい。フォーマットセレクタ25は、特定のサイトマップに対応する記憶装置27中の値を調べることにより、例えば特定のエージェント30a〜30nを選択してよい。例えば、クライアント14が、特定のフォーマットに一致するものとしてサイトマップ17を識別したならば、その同定が記憶装置27に格納されてよい。次いで、ユーザが最初にサイトマップ17の位置を与えた後、またはサイトマップ17の所定の更新時期などに、巡回ロボット24が、サイトマップ17によって示されたドキュメントをクロールすることを判断したとき、巡回ロボット24は、記憶装置27からのフォーマット識別および際とマップのロケーションにアクセスしてよく、巡回ロボット24が特定のデバイスのペルソナ(persona)またはデバイスのクラスを示すことを認可するエージェント30a〜30nを選択してもよい。次いで、巡回ロボット24は、サイトマップ17に関連したドキュメントをクロールし始めてよい。
【0045】
サーバシステム12は、理解しやすいように、限定された数の要素しか含まずに図示されている。しかし、必要に応じてシステム10のユーザにフル装備のサービスを与えるように、システムは、多くの追加の機能および要素を含むことがあることを理解されたい。例えば、サーバシステム12は、ニュース、天候、ポータル、買物、マッピング、および他のサービスを提供することができる。さらに、サーバシステム12の要素は、適切に組み合わせるかまたは分離してよい。
【0046】
図3は、システム内の情報の構成にアクセスし解析するための動作を示す流れ図である。理解しやすいように、その動作は、クライアント、ローカルサーバおよび遠隔サーバで起こるものとして示される。しかし、動作または類似の動作は、より少数のコンピュータ、または異なる構成で配置されたコンピュータによって実行することもできる。
【0047】
この方法では、サイトに関係するドキュメントの構成を求めるために、最初にウェブサイトがスキャンされる(50)。そして次に、ウェブサイトが格納されているローカルサーバが、ウェブサイトに関する情報をもたらす(52)。例えば、ウェブサイトの作成者は、インターネット上で、一般向けなど、作成者がネットワークを介して利用可能な形にしたいウェブサイト上のすべてのページのURLを明らかにしてよい。次いで、それらのURLが、互いにリンクするドキュメントなのか、またはリンクのないドキュメントを表すのか、作成者はサイト用にURLまたは他のドキュメント識別子のすべてのリストを作成してよい。あるいは、ウェブサイトは、サイトを生成するために使用されたドキュメント管理システムなどによって、自動的に解析またはスキャンされてよい。
【0048】
次いで、サイトマップを生成することにより、ドキュメントの構成が記録されてよい(54)。サイトマップは、例えば、所定のフォーマットを有するXMLドキュメントであってよく、ウェブサイトのドキュメント用のURLのリストを含んでよい。さらに、一般的なメタデータがサイトマップに加えられてよい(56)。例えば、以下でより詳細に説明されるように、サイトマップによって参照されたドキュメントのフォーマットに関するデータ、ドキュメントがアクセスされるべき速度、およびサイトマップに関する情報を更新する頻度は、すべて全体的なメタデータ中で指定されてよい。次いで、サイトマップは、ウェブサイト情報とともにローカルサーバ上などに格納されてよい(58)。サイトマップ用メタデータの生成も、手動で、または自動的に行われてよい。
【0049】
一旦サイトマップが生成され格納されれば、遠隔サーバに識別され得て(60)、遠隔サーバは、サイトマップに関するそのような通知を受け取った(62)後に、このサイトマップにアクセスすることができる。通知は、遠隔サーバによってホストされたウェブサイトまたは遠隔サーバと関連するサーバにログオンしているユーザによってなど、手動で行われてよい(例えばクリアリングハウスが1つのセントラルポイントでサイトマップ情報を集めて様々な検索エンジンと共有するとき、例えばすべての検索エンジンが同時に情報を受け取るように、所定の更新時点で、または検索エンジンがユーザのウェブサイトに巡回ロボットで過大な負荷をかけないように、ずれた時点で)。
【0050】
様々な情報が通知の一部として提示されてよい。例えば、サイトマップのロケーションなど最小限の情報が提示されるかもしれず、遠隔サーバは、サイトマップまたは関連したドキュメントから追加情報を得るかもしれない。あるいは、ウェブサイトのドキュメントのフォーマット、また、そうでなければ(またはそれに加えて)サイトマップに配置された他のメタデータなどの追加情報が提供されてよい。あるいは、通知は、全サイトマップのサブミッションを含んでよい。
【0051】
一旦遠隔サーバが必要な通知情報を受け取ると、遠隔サーバは、調査する必要があるかもしれないあらゆる追加情報を求めて、サイトマップまたは関連するドキュメントを調査し、サイトマップまたはユーザのウェブサイトを解析することができる(66)。ローカルサーバは、そのようなあらゆる要求に従って応答することができる(64)。例えば、通知が最小限の情報しか含んでいないと、遠隔サーバは、ウェブサイトのクロールを行うために追加情報を得る必要があるかもしれない。そのような追加情報の検索は、遠隔サーバに通知するときに不完全な情報を提供するユーザに依存するので、その結果、これらのステップはしばしば不要になるはずであり、これらのステップの枠は点線で示されている(64、66)。
【0052】
遠隔サーバは、ウェブサイトをクロールするために、巡回ロボットのタイプまたは巡回ロボットのペルソナを選択してもよい(68)。例えば、ユーザが、ウェブサイトを、特定のモバイルベースのフォーマットによってフォーマットされているものと同定したならば、遠隔サーバは、そのウェブサイトをクロールするとき、そのようなモバイルコンテンツを見るためのデバイスの性能をシミュレートするかもしれない。
【0053】
遠隔サーバがサイトマップを検索するために十分な情報を有するとき、遠隔サーバは、サイトマップにアクセスして、ウェブサイトをクロールするためにサイトマップの情報の使用を開始することができる(70、72)。特定の(諸)フォーマットが識別されたときに、巡回ロボットは、選択された巡回ロボットのタイプを用いてウェブサイトをクロールすることができ(74)、その結果として、ローカルサーバは、サイトマップ中で参照されたドキュメントのすべてを供することなどによってコンテンツを提供してよい(76)。
【0054】
例えば、サイトマップがリストとしてフォーマットされているとき、巡回ロボットは、サイトマップリストを通って進んでよく、リスト中の最初の項目を要求してよい。巡回ロボットは、その最初の項目のコンテンツを解析し、そのコンテンツのうちのいくつかにインデックスを付け、最初の項目中の任意のリンクを識別することができる。次いで、巡回ロボットは、任意のリンクのある項目を要求し、ウェブサイトのそのブランチを網羅するまで、解析してリンクするプロセスを繰り返してよい。次いで、巡回ロボットは、サイトマップリスト中の次のエントリへ移動してよい。巡回ロボットは、複数のロケーションからリンクされたドキュメントへ繰り返しアクセスすることのないように、アクセスしたすべてのドキュメントのリストを格納してもよい。
【0055】
図4は、ウェブサイト100向けのサイトマップを生成するプロセスの概念図である。ウェブサイト100は、ウェブサイトファイルシステム102、サイトマップジェネレータの制御パラメータ104、サイトマップジェネレータ106、サイトマップ更新モジュール108、サイトマップ通知モジュール110、サイトマップ114およびサイトマップのインデックス112を含む。ファイルシステム102は、複数のコンピュータ上にファイルが格納されている送られたファイルシステムを含む複数のファイルシステムのうち任意のものを使用して、いくつかの実施形態において実施することができる。他の実施形態では、ファイルシステム102は、クエリに応答してドキュメントを作成する検索エンジンまたはデータベースを使用して実施することができる。
【0056】
ウェブサイトファイルシステム102は、ウェブサーバに格納されているドキュメントを系統立てる。ウェブサイトに格納されたドキュメントは、テキスト、図、ビデオ、オーディオなど、またはそれらの項目の任意の組合せを含む任意の適切な機械可読ファイルでよい。ウェブサイトに格納され得るドキュメントの例は、とりわけ、ウェブページ、画像、ビデオファイル、オーディオファイル、ポータブルドキュメントフォーマット(PDF)ファイル、プレーンテキストファイル、実行可能ファイル、プレゼンテーションファイル、スプレッドシート、ワードプロセッサドキュメントなどを含む。
【0057】
ウェブサイト100に格納されたドキュメントは、階層的構造で系統立てられてよい。すなわち、ドキュメントは、ネストされたディレクトリ、フォルダまたはパスのツリー(以下「ディレクトリツリー」)へと系統立てられてよい。ディレクトリツリーは、ルートディレクトリ/フォルダ/パスを含み、ルートは、その中にネストされたサブディレクトリ/サブフォルダ/サブパスを有してよい。
【0058】
サブディレクトリ/サブフォルダ/サブパスは、ネストされたサブディレクトリ/サブフォルダ/サブパスをさらに内蔵してもよく、このようにディレクトリツリーを形成する。各ドキュメントは、ディレクトリツリーにおけるディレクトリ/フォルダ/パスに格納されてよい。各ディレクトリ/フォルダ/パスおよび各ドキュメントは、ツリー中のノードでよい。ファイルシステムは、最終修正日付、最終アクセス日付、ドキュメントパーミッションなどのドキュメントに関連したメタデータを格納してもよい。いくつかの実施形態では、ファイルシステムは、ドキュメントおよび関連するメタデータのデータベースを含んでもよい。データベース中のドキュメントは、データベースのクエリの実行、ならびに、またはその代りに、ディレクトリツリーをトラバースすることによりアクセスされ得る。
【0059】
ウェブサイトに格納された各ドキュメントは、ロケータによって識別および/または検索され得る。いくつかの実施形態では、ロケータはドキュメントのURLである。他のいくつかのドキュメントでは、識別の代替のやり方(例えばURI)またはアドレシングが使用されてよい。ドキュメントのURLは、ファイルシステム中のそのロケーションから得ることができる。ドキュメントのURLは、ディレクトリ/フォルダ/パスに基づくもの、またはデータベース中のロケーションに基づくもの、またはドキュメントが格納されたデータベースからドキュメントを検索するのに使用されたクエリに基づくものでよい。すなわち、ディレクトリ/フォルダ/パス中の各ドキュメントまたはデータベースのロケーションは、URLに対応付けられてよい。いくつかの実施形態では、外部アクセスに対して公開されているファイルシステムのドキュメントにアクセスするために、URLは、ウェブ巡回ロボットに関連した遠隔コンピュータなどのウェブサイトの外のコンピュータによって使用されてよい。説明の便宜上、ドキュメントロケータは、あたかもURLであるかのように以下で説明される。
【0060】
サイトマップジェネレータ106は、サイトマップ、および任意選択で、1つまたは複数のウェブサイトのサイトマップのインデックスを生成する。サイトマップは、ウェブ巡回ロボットがウェブサーバに格納されたドキュメントをクロールするスケジュールを設定するために、ウェブ巡回ロボットによって使用されてよい。サイトマップのインデックスは、さらなる詳細が以下に説明されるが、1つまたは複数のサイトマップをカプセル化して、例えばサイトマップのリストを含んでよい。
【0061】
サイトマップジェネレータ106は、1つまたは複数のドキュメント情報のソースにアクセスすることによりサイトマップを生成する。いくつかの実施形態では、ドキュメント情報のソースは、ファイルシステム102、アクセスログ、あらかじめ作られたURLリスト、およびコンテンツ管理システムを含む。サイトマップジェネレータ106は、単にウェブサイトのファイルシステム102にアクセスして、ファイルシステム102で見つかったドキュメントに関するあらゆる情報を収集することにより、ドキュメント情報を集めることができる。例えば、ドキュメント情報は、ファイルシステムのファイルまたはファイルシステムの定義された部分の中のファイルをすべて識別するディレクトリ構造から得ることができる。
【0062】
サイトマップジェネレータ106は、ウェブサイトのアクセスログ(図示せず)にアクセスすることにより、ドキュメント情報を集めることもできる。アクセスログは、外部コンピュータによるドキュメントのアクセスを記録する。アクセスログは、アクセスされたドキュメントのURL、ドキュメントにアクセスするコンピュータの識別子、ならびにアクセスの日付と時間を含んでよい。サイトマップジェネレータ106は、あらかじめ作られたURLリスト(図示せず)にアクセスすることにより、ドキュメント情報を集めることもできる。あらかじめ作られたURLリストは、ウェブサイトのオペレータがウェブ巡回ロボットによってクロールされることを望むドキュメントのURLをリストする。URLリストは、以下で説明されるように、サイトマップに使用されたのと同じフォーマットを用いて、ウェブサイトのオペレータによって作成され得る。
【0063】
ウェブサイトのドキュメントがコンテンツ管理システムによって管理されているのであれば、サイトマップジェネレータ106は、コンテンツ管理システムとインターフェースをとり、コンテンツ管理システム内に格納された情報にアクセスすることによって、ドキュメント情報を集めることができる。
【0064】
サイトマップジェネレータの制御パラメータ104は、サイトマップの生成を制御する所定のパラメータを含む。サイトマップジェネレータの制御パラメータ104に関するさらなる情報は、図5に関して以下に説明される。
【0065】
サイトマップジェネレータ106は、サイトマップ114、および多分1つまたは複数のサイトマップのインデックス112を生成する。サイトマップ114およびサイトマップのインデックス112は、任意の適当なフォーマットおよび言語を使用して生成されてよい。前述のように、いくつかの実施形態では、サイトマップは、所定のXMLタグを使用してエクステンシブルマークアップランゲージ(XML)フォーマットで生成される。説明の便宜上、以下のサイトマップおよびサイトマップのインデックスは、XMLを使用してフォーマットされたものとして説明される。
【0066】
サイトマップのインデックス112は、サイトマップの構成およびサイトマップへの参照を支援するための、1つまたは複数のサイトマップ114に対応付けられたドキュメントである。サイトマップジェネレータ106は、ウェブサイト向けのサイトマップを生成するときに複数のサイトマップを生成することができ、各サイトマップは、1つのサイトマップ中でクロールされ得るすべてのドキュメントのURLをリストするのではなく、ドキュメントのURLのクロールされ得るサブセットをリストする。そのような状況では、サイトマップジェネレータ106は、複数のサイトマップおよびそれらのURLをリストするためにサイトマップのインデックス112を生成してもよい。サイトマップのインデックスは、サイトマップのインデックス112の開始および終了を定義する開始タグおよび終了タグ(例えば<sitemapindex>および</sitemapindex>などのXMLタグ(図示せず))を含んでよい。サイトマップのインデックス112は、サイトマップのインデックスにリストされた各サイトマップのURLも含んでよい。
【0067】
サイトマップのインデックスは、サイトマップのインデックス中のそれぞれのサイトマップのURL用に任意選択のメタデータも含んでよい。例えば、メタデータは、それぞれのサイトマップの最終修正日付を含んでよい。各サイトマップのURLおよびそれぞれに対応付けられたあらゆるメタデータは、サイトマップのインデックス112中でサイトマップのレコード114の開始および終了を定義する開始タグおよび終了タグによって囲まれてよい。
【0068】
サイトマップのリストに加えて、いくつかの実施形態では、サイトマップのインデックスは、すべてのウェブサイトに適合するサイトに特有の情報140(「パーサイト情報」とも呼ばれる)のリストを任意選択で含んでよい。例えば、サイトマップのインデックスは、時間間隔のリストおよび巡回ロボットがそれぞれのウェブサイトをクロールするべきクロール率を含んでよい(例えば、<crawl_rate from=08:00UTC to=17:00UTC>medium</crawl_rate><crawl_rate from=17:00UTC to=8:00UTC>fast</crawl_rate>)。他の例では、サイトマップのインデックスは、ウェブサイトに関連した地理的ロケーションを識別する地理情報(例えば、<location>latitude, longitude</location>)を含み、かつ/または、それぞれのウェブサイトが対応しているかそうでなければ関連している1つまたは複数の言語を識別する言語情報(例えば、<language>German</language>)を含んでよい。パーサイト情報は、XHTML、3g、PDAHTML、WMLまたはiMode/cHTMLなどのサイト用にドキュメントフォーマットの(諸)タイプも含んでよい。
【0069】
いくつかの実施形態では、パーサイト情報は、サイトマップのインデックスファイル中のサイトマップ参照の中にあってもよい。サイトマップのインデックスおよび参照されたサイトマップがどちらも同じプロパティ向けのパーサイト情報(例えばクロール率)を含む場合、サイトマップが情報のより明確なインスタンスであるので、サイトマップ中で指定された値がサイトマップのインデックス中で指定された値に優先してよい。他の実施形態では、パーサイト情報は、ここで与えられた例以外に、サイトマップのインデックスまたはサイトマップ中でシンタックスを使用して指定されてよい。
【0070】
一実施形態では、ウェブサイトのサイトマップジェネレータ106は、毎日または毎週などの一定間隔で新規のサイトマップを生成する。最初(スタートポイント)のサイトマップの後に生成される新規の各サイトマップは、先のサイトマップが生成されているので、新規のURLまたは修正されたURLだけをリストすればよい(すなわち、最後のサイトマップが生成された日付の後の作成日または修正日を有する)。用語「日付」は、ここでは日時の含有が可能であるように用いられ、UTC(協定世界時)を用いてISO 8601タイムスタンプに適合するタイムスタンプなどによって表されてよい。これらの実施形態では、ウェブサイト向けのサイトマップのインデックスは、ウェブサイト向けに生成されたサイトマップをすべてリストする。
【0071】
任意選択で、新規のスタートポイントサイトマップは、更新サイトマップが生成される間隔より大きな間隔(例えば毎週または毎月)でサイトマップジェネレータによって生成されてよい。新規のサイトマップが生成されてサイトマップのインデックス112に加えられるごとに、1つまたは複数の検索エンジンまたは巡回ロボットに通知が送られ得る。
【0072】
サイトマップ114は、ウェブ巡回ロボットによってクロールされ得るウェブサイトのドキュメントのURLをリストする(諸)ドキュメントであるか、そうでなければウェブサイトまたは他のネットワークのロケーションのドキュメントの構成を示す。サイトマップ114は、URLのリストを含んでよく、また、任意選択で、それぞれのリストされたURL向けにメタデータなどの追加情報を含んでよい。サイトマップ114は、サイトマップの開始および終了を定義する開始タグおよび終了タグ116を含んでよい。サイトマップは、1つまたは複数のURLレコード118も含んでよい。各URLレコード118の開始と終了は、開始タグ120と終了タグ130によって定義され得る。各URLレコード118は、クロールされ得るドキュメントのURL 122を含んでよい。
【0073】
URLレコード118は、それぞれのURLに関連した任意選択のメタデータも含んでよい。任意選択のメタデータは、URL 121によって指定されたドキュメント用のフォーマット、URLによって指定されたドキュメントの最終修正日付124、URLによって指定されたドキュメントの変更頻度126(更新率とも呼ばれる)、ドキュメントのタイトル127、ドキュメントの作成者129、およびURLによって指定されたドキュメントの優先順位128のうち1つまたは複数のものを含んでよい。フォーマット121、変更頻度126および優先順位128は、ウェブサイトのオペレータによって指定され得る。
【0074】
変更頻度126は、ドキュメントのコンテンツがどれくらい頻繁に変更されると予想されるかのディスクリプタである。このディスクリプタは、有効なディスクリプタの所定のセットのうちの1つである。いくつかの実施形態では、変更頻度ディスクリプタのセットは、「常時」、「毎時」、「毎日」、「毎週」、「毎月」、「毎年」、「変更しない」を含む。変更頻度126は、巡回ロボットに対して、ドキュメントがどれくらい頻繁に変化するかについてヒントを提供する。したがって、巡回ロボットは、ドキュメントのクロールのスケジュールを組むために、このヒントを利用することができる。しかし、巡回ロボットは、指定の変更頻度と一致しないやり方でドキュメントをクロールしてよい。例えば、巡回ロボットは、「毎時」と示されたドキュメントを、「毎年」と示されたドキュメントほど頻繁にクロールしないかもしれない。実際のドキュメントのクロール頻度は、ドキュメントの重要性(PageRankなどのスコアによって示されたもの)、巡回ロボットが観測したドキュメントで確認された実際の変化(またはそれがないこと)および他の要因ならびにサイトマップ中で指定された変更頻度に基づいてよい。
【0075】
優先順位128は、URL 122によって識別されたドキュメントの相対的な優先順位を指定する値である。優先順位128は、同一のサイトマップ114にリストされた他のドキュメント、ドキュメントと同一のウェブサーバに格納された他のドキュメント、またはウェブサイトのすべてのドキュメントに対する優先順位でよい。いくつかの実施形態では、優先順位の値の範囲は0.0以上1.0以下であり、デフォルト値が0.5、最低の相対優先順位が0.0、かつ最高の相対優先順位が1.0である。他の実施形態では、0から10などの他の優先順位スケールが使用され得る。優先順位は、ウェブサイトのどのドキュメントを最初にクロールするべきか判断するために、巡回ロボットによって使用されてよい。これらの優先順位の値が所定の基準を満たさないとき(例えば、ウェブサイト用のサイトマップまたはサイトマップのセットの0である優先順位の値が、0.5などの所定の平均値を有するという必要条件)、巡回ロボットは、サイトマップ内の優先順位の値を無視するかまたは修正することがある。いくつかの実施形態では、ドキュメントをインデックス付けするとき、優先順位も使用されてもよい。
【0076】
他のパラメータもサイトマップに含まれてよい。例えば、追加のメタデータは、各URLで、ニュース、娯楽、医学、教育、宣伝などのコンテンツのカテゴリを含んでよい。また、他のパラメータが、URLが特定の通信キャリヤ(例えばモバイルコンテンツ用)を有するユーザにのみ利用可能であるように意図されているかどうかを示してもよい。そのようなパラメータは、コンテンツプロバイダが信頼できるプロバイダであるか、またはシステムが正確な情報を提供するはずであると自信がある場合(例えば、署名による資格登録プロセスまたは別の信頼できるプロバイダからの紹介によって判断される)には特に適切であり得る。
【0077】
サイトマップジェネレータ106は、サイトマップ更新モジュール108およびサイトマップ通知モジュール110と相互作用することもできる。サイトマップ通知モジュール110は、新規のサイトマップまたは更新されたサイトマップがウェブサイトで利用可能なときは、常に、ウェブ巡回ロボットに関連した遠隔コンピュータに通知を送る。通知は、遠隔コンピュータがサイトマップにアクセスすることができるように、サイトマップのURLを含んでよい。いくつかの実施形態では、ウェブサイトがサイトマップのインデックスを使用するのであれば、通知は、サイトマップのインデックスのURLを含むだけでよい。次いで、遠隔コンピュータは、サイトマップのインデックスにアクセスし、それによってサイトマップのURLを識別することができる。いくつかの他の実施形態では、通知は、サイトマップ、サイトマップのインデックス、またはそのようなドキュメントのすべてによって参照されたドキュメントのサブセット用のフォーマット識別子に加えて、サイトマップ、サイトマップのインデックスまたはこれらのドキュメントのうちの1つを含んでよく、上記フォーマット識別子のケースでは、遠隔コンピュータは、ウェブサイトのサイトマップのインデックスまたはフォーマットについての情報にアクセスする必要がない。
【0078】
サイトマップ更新モジュール108は、以前に生成されたサイトマップと現在のサイトマップの間の差を基に差異のサイトマップを生成してよい。差異のサイトマップに関するさらなる情報は、図8に関して以下に説明される。
【0079】
図5は、サイトマップジェネレータの制御パラメータを格納するためのデータ構造を示すブロック図である。サイトマップジェネレータの制御パラメータ104は、サイトマップの生成およびサイトマップのインデックスを制御する。パラメータの各々は、ウェブサイトのオペレータによって指定されてよい。パラメータは、ウェブ巡回ロボットに関連した遠隔コンピュータによってサイトマップがアクセスされ得る(諸)ロケーションを指定する1つまたは複数のサイトマップベースURL 502、ファイルシステム102のディレクトリ/パス/フォルダまたはデータベースのロケーションを、外部からアクセス可能なURLに対応付ける、ファイルのパスからURLへのマッピング504 (パスからURLへのマッピングの例としては、P:/A/B/*.*>www.website.com/qu/*.*)、サイトマップの包含から除外されるべきURLのクラスを指定するURLの除外パターン506(例えば、除外パターン「www.website.com/wa/*.prl」は、www.website.comの「/wa」部分におけるすべての「prl」ファイルがサイトマップから除外されるべきであることを示すことになる)、それぞれのURLクラス向けにURLのクラスおよび更新率(変更頻度)を指定する、更新率508を有するURLパターン(例えば、www.website.com/qu/a*.pdf>dailyは、指定されたパターンに適合するファイルが毎日更新されると予想されることを示すことになる)、新規のサイトマップ通知が伝送され得る、ウェブ巡回ロボットに関連した遠隔コンピュータのURLを指定する通知URL510、あらかじめ作成されたURLリストを指す、URLリストへのポインタ512、URLアクセスログを指す、URLアクセスログへのポインタ514、ファイルシステム102におけるディレクトリ/フォルダ/パスまたはデータベースのロケーションを指す、(諸)ディレクトリへのポインタ516、およびウェブ巡回ロボットがウェブサイトをクロールするべき日の好ましい時間を指定する好ましいクロール時間518、のうち1つまたは複数のものを含んでよい。リストされたパラメータは単なる例であり、また、より少ない追加および/または代替のパラメータが含まれ得ることを理解されたい。
【0080】
図6はサイトマップを生成するプロセスを示す流れ図である。前述のように、ウェブサイト上に格納されたドキュメントについての情報ソースは、ウェブサイトのアクセスログである。最初にウェブサイトのアクセスログがアクセスされる(602)。アクセスログは、URLアクセスログに後続するポインタによって探し出され得る。次いで、アクセスログは、誤りのないURLを求めてスキャンされてよい(604)。誤りのないURLは、既存でアクセス可能なドキュメントを適切に指定するURLである。したがって、例えば、もはやウェブサイト上にないドキュメント向けのURLは、誤ったURLと考えてよい。次いで、URLのリストが生成され得る(606)。リストは、アクセスログで見つかった誤りのないURLを含んでよい。
【0081】
リストは、アクセスログから得られたドキュメントの支持率情報も含んでよい。ドキュメントの支持率情報は、誤りのない各URLが有するアクセス数を基に求めることができる。ドキュメントの支持率情報は、どのドキュメントに高い需要があるか(すなわちより頻繁にアクセスされているか)ということを基に、クロール中にどのドキュメントがより高い優先順位を与えられるべきか(例えば、最初にクロールされるかまたは優先順位の低いドキュメントよりもクロールされやすいように計画される)の追加ヒントとしての働きをする。
【0082】
URLのリストが生成された後、除外されたURLのためにリストがフィルタリングされてよい(610)。サイトマップジェネレータの制御パラメータからのURL除外パターンは、URLのリストに適用されるフィルタとして使用されてよい(608)。あるいは、URL除外パターンは、他のところで得られるか、またはカスタマイズされたサイトマップジェネレータにおいてウェブサイト用に恒久的にコード化されてよい。次いで、URL除外パターンのうちのいずれかと一致するリスト中のURLは、リストから除外されてよい。
【0083】
リスト中のそれぞれのURL向けに、URLのリストに更新率の情報が加えられてよい(612)。いくつかの実施形態では、サイトマップジェネレータの制御パラメータ104から、より詳細には更新率を有するURLパターンから、更新率を得ることができる(608)。
【0084】
次いで、URLのリストのそれぞれのURLについての最終修正日付および時間が付加されてよい(614)。前述のように、最終修正日付は、データベースおよび/またはディレクトリツリー616でよいファイルシステムから得ることができる。
【0085】
代替実施形態では、サイトマップのストラテジオブジェクト615は、データベース616および/またはサイトマップジェネレータの制御パラメータ608から得られた情報を用いて、フィルタリング操作610、更新率情報を付加する動作612、および最終修正日付を付加する動作614を制御する。いくつかの実施形態では、サイトマップのストラテジオブジェクトは、どのURL(またはURI)をフィルタリングするかを判断し、また、基礎をなすデータベース616に対してデータベースクエリを実行することにより、特定のURL(またはURI)にどの属性を付加するかを判断する。
【0086】
サイトマップは、あらゆる最終修正日付/時間情報、任意選択の支持率情報、および含まれているかまたは得られた、リストされたURL向けの任意選択の更新率情報を含む、もたらされたURLのリスト(618)から生成されてよい。サイトマップ内では、サイトマップにリストされたURL向けのメタデータは、最終修正日付/時間情報、任意選択の支持率情報および任意選択の更新率を含んでよい。
【0087】
図7は、サイトマップを生成する別のプロセスを示す流れ図である。図7のプロセスは図6のものに似ているが、図7のプロセスでは、ドキュメント情報の最初のソースはアクセスログではなく、ファイルシステムデータベースまたはディレクトリツリー(702)であることが異なる。データベースのスキャンまたはディレクトリツリーのトラバース(704)が最初に実行されてよい。データベースのスキャンまたはディレクトリツリーのトラバースから、URLおよび関連する最終修正日付のリストを得ることができる(706)。このリストは、サイトマップジェネレータの制御パラメータ(712)からのURL除外パターンをフィルタとして使用して、除外されたURLのためにフィルタリングされてよい(708)。URLのリスト中のそれぞれのURLに関連したドキュメント更新率情報など追加のメタデータも付加されてよい(710)。更新率情報は、サイトマップジェネレータの制御パラメータ(712)から得ることができる。サイトマップは、除外されていないURLのリスト、最終修正日付情報、および更新率情報などの追加情報から生成されてよい。
【0088】
代替実施形態では、サイトマップのストラテジオブジェクト715は、基礎をなすデータベース702および/またはサイトマップジェネレータの制御パラメータ712から得られる情報を用いた、サイトマップ714のURLまたはURIのリストへのメタデータ710の付加、ならびに/あるいはフィルタリング操作708を制御してよい。いくつかの実施形態では、サイトマップのストラテジオブジェクト715は、どのURL(またはURI)をフィルタリングするかを判断してよく、また、基礎をなすデータベース702に対してデータベースクエリを実行することにより、特定のURL(またはURI)にどの属性を付加するかを判断してよい。
【0089】
図6および図7に示されたサイトマップ生成プロセスは、ドキュメント情報の代替ソースおよび/またはドキュメント情報の複数のソースを使用するように適合され得る。例えば、サイトマップジェネレータは、最初に、1つまたは複数のあらかじめ作成されたURLリストまたはウェブサイトに関連したコンテンツ管理システムからURLを抽出してよい。URLが抽出されるソースにかかわらず、サイトマップジェネレータは、必要な数だけのドキュメント情報のソースからドキュメントメタデータを収集することができる。例えば、サイトマップジェネレータは、あらかじめ作成されたURLリストからURLを抽出し、ファイルシステムから最終修正日付を取得し、かつアクセスログからドキュメント支持率情報を得ることができる。サイトマップを生成するために、ドキュメント情報のソースのあらゆる適当な組合せが使用され得る。
【0090】
図8は、ディファレンシャルサイトマップを生成するプロセスを示す流れ図である。ディファレンシャルサイトマップは、以前に生成されたサイトマップと現在のサイトマップの間の差異を基に生成されたサイトマップである。ディファレンシャルサイトマップは、以前に生成されたサイトマップに含まれていなかったURLおよび以前に生成されたサイトマップに含まれていたURLで新規のメタデータまたは更新されたメタデータを有するものを含んでよい。例えば、更新された最終修正日付を有するURLは、ディファレンシャルサイトマップに含まれることになる。URLに関する更新される最終修正日付の存在は、それぞれのURLでのドキュメントが、以前に生成されたサイトマップから更新されていることを意味する。
【0091】
現行のサイトマップ(802)および以前に生成されたサイトマップ(804)は、サイトマップ更新モジュール108などのディファレンシャルサイトマップジェネレータ(806)によって処理されてよい。2つのサイトマップ間の差異が確認されて、ディファレンシャルサイトマップ(808)が生成され得る。
【0092】
図9は、ウェブ巡回ロボットシステム900を示すブロック図である。検索エンジンの一部であり得て、かつ/または検索エンジンに関連し得るウェブ巡回ロボットシステム900は、ウェブサーバに格納されたドキュメントに関連するロケーションをクロールする。
【0093】
サイトマップ巡回ロボット905は、ウェブサイトまたはウェブサーバによって生成されたサイトマップにアクセスする。サイトマップ巡回ロボット905はサイトマップ通知を受け取る。ウェブサーバまたはウェブサイトから、クロールに利用可能なドキュメントを有するサイトマップ通知930が受け取られる。ウェブサーバまたはウェブサイトからの通知は、ドキュメントのURLをリストする1つまたは複数のクロールされ得るサイトマップがアクセスのために利用可能であるとサイトマップ巡回ロボットに知らせる。通知は、1つのサイトマップのURLまたは複数のサイトマップの諸URL含んでよい。通知は、サイトマップのインデックスのURLを含んでよく、またはサイトマップのインデックスのコンテンツを含んでよい。いくつかの実施形態では、通知は、サイトマップのインデックスまたは完全なサイトマップを含んでよい。サイトマップのURLを記憶し、次いでサイトマップにアクセスするために、サイトマップ巡回ロボット905は、サイトマップのインデックスのURLでサイトマップのインデックスにアクセスしてよい。
【0094】
サイトマップ巡回ロボット905は、ウェブサーバまたはウェブサイトからサイトマップをアクセスして、アクセスしたサイトマップのコピーをサイトマップデータベース932に格納することができる。サイトマップデータベース932は、ウェブサーバおよび/またはサイトマップが関連するウェブサイト、サイトマップの最終修正日付、およびサイトマップに関連した更新率情報などサイトマップに関連した情報ならびにサイトマップを格納する。
【0095】
アクセスされたサイトマップは、処理するためにサイトマップ処理モジュール934に与えられてよい。サイトマップ処理モジュール934は、サイトマップを処理し、URLおよび関連するメタデータ936を識別する。サイトマップは、URLスケジューラ902用のURLおよび関連するメタデータ情報のソースであり得る。いくつかの実施形態では、URLおよび関連するメタデータの任意選択の追加ソースは、ユーザによる直接の提示903によって受け取られてよい。例えば、ユーザは、(諸)サイトマップに関連したドキュメントのフォーマットについての情報を提供してよい。
【0096】
URLスケジューラ902は、各クロールセッションで、どのURLをクロールするか判断する。URLスケジューラ902は、リストデータ構造のセットなどの1つまたは複数のデータ構造(図示せず)に、その情報を格納してよい。いくつかの実施形態では、URLスケジューラ902は、データ構造のセグメントにURLを割り当てるが、このセグメントはクロールセッションに対応する。これらの実施形態では、URLスケジューラ902は、各セグメント内のどのURLをクロールするべきかの判断もする。いくつかの実施形態では、複数のURLスケジューラ902があってよく、それらは各セグメントがクロールされる前に実行される。各スケジューラ902は、URLサーバ906へのURLの配布の管理を担当する、対応するURLマネージャ904に結合される。あるいは、各URLスケジューラ902は、2つ以上のURLマネージャに結合されてよく、各クロールセッション向けのURL配布機能を複数のURLマネージャにわたって広げることが可能になる。URLスケジューラ902は、サイトマップから抽出されたURLおよびメタデータ936を受け取るように適応され得る。
【0097】
コントローラ901はクロールするためにセグメントを選択する。選択されたセグメントは、これ以降「アクティブセグメント」と呼ぶ。一般に、各セッションの出発点では、コントローラ901は、いくつかのセッションにわたって、すべてのセグメントがラウンドロビン式クロールのために選択されるように、別のセグメントをアクティブセグメントとして選択する。コントローラ901は、ユーザエージェントが、アクティブセグメント用のフォーマットに関連する巡回ロボットによって示されるように選択してもよい。例えば、ユーザエージェントは、巡回ロボットに、iModeデバイスまたは他のモバイルデバイスあるいはデバイスのグループを模倣させるパラメータを含んでよい。
【0098】
URLページの順位付けソフト922によって、各URL向けにクエリから独立したスコア(ドキュメントスコアとも呼ばれる)が計算されてよい。ページの順位付けソフト922は、所与のURL向けにページの重要性スコアを計算する。いくつかの実施形態では、ページ重要性スコアは、所与のURLを参照するURLの数だけでなく、そのような参照しているURLページの重要性スコアも考慮に入れることにより計算されてよい。ページ重要性スコアのデータは、URLマネージャ904に与えられてよく、URLマネージャは、URLサーバ906、ロボット908およびコンテンツ処理サーバ910に各URLページの重要性スコアを渡してよい。ページ重要性スコアの一例は、PageRankであり、これはGoogle検索エンジンで使用されるページ重要性の測定基準である。PageRankの計算の説明は、米国特許第6,285,999号に見られ、背景情報として、参照によりその全体を本明細書に組み込む。いくつかの実施形態では、ページ重要性スコアの計算にサイトマップからの情報が組み込まれてよい。ページ重要性スコアに組み込まれ得るサイトマップ情報の一例は、優先順位128である。
【0099】
URLサーバ906は、時々URLマネージャ904にURLを要請することがある。これを受けて、URLマネージャ904は、URLサーバ906にデータ構造から得られたURLを提供してよい。次いで、URLサーバ906は、巡回ロボット908(これ以降「ロボット」または「ボッツ」と呼ぶ)にクロールされるように、URLマネージャ904からのURLを送ってよい。ロボット908は、URLサーバ906によって与えられたURLでドキュメントを検索するサーバである。ロボット908は、URL(例えばHTTP、HTTPS、Gopher、FTPなど)に関連したページをダウンロードするために様々な既知のプロトコルを使用する。いくつかの実施形態では、ロボット908は、指定されたウェブサイト用のクロール率および/またはクロール間隔情報を、パーサイト情報のデータベース940から検索し、次いでウェブサイトからURLまたはURIを取り出す速度を制御するために検索された情報を使用する。ロボット908は、適切な場合には、ドキュメントがそれ向けにフォーマットされている(諸)デバイスを適切に模倣するように、ドキュメント用のフォーマット情報を渡されてもよい。
【0100】
ロボット908によってクロールされてURLから得られたページは、複数のタスクを実行するコンテンツ処理サーバ910に送られる。いくつかの実施形態では、これらのタスクは、ページのコンテンツをインデックス付けするステップ、ページに外部行きのリンクのレコードを生成するステップ、複製ページを検出するステップ、およびクロールされたページについての情報を記録するために様々なログレコードを生成するステップを含む。一実施形態では、これらのログレコードは、リンクログ914、状態ログ912および他のログ916を含むログファイルに格納される。リンクログ914は、ロボット908によってURLから得られてコンテンツ処理サーバ910に渡される各ドキュメント向けのリンクレコードを含む。各リンクログ914のレコードは、レコードおよびリンクを囲むテキストに関連したドキュメント中に見られるすべてのリンク(例えば外部行きのリンクとも呼ばれるURL)を識別する。リンクログ914中の情報は、リンクマップ920を生成するためにコンテンツ処理サーバ910によって使用されてよい。
【0101】
テキストが除去され、レコードがソースURLの正規化された値の「フィンガープリント」によって鍵を付けられているとことを除けば、リンクマップ920のレコードは、リンクログ914のレコードに似ている。いくつかの実施形態では、URLフィンガープリントは、URLにハッシュ関数または他の一方向性関数を適用することにより求められた64ビットの整数である。URLフィンガープリントのビット長は、他の実施形態における64ビットより長くても短くてもよい。各リンクマップ920のレコードは、任意選択で、ソートされるかまたはフィンガープリントによって鍵を付けられてよい。URLのページ重要性スコアを計算するか調整するために、ページ順位付けソフト922によってリンクマップ920が使用される。いくつかの実施形態では、そのようなページ重要性スコアは、セッション間に存続することがある。
【0102】
状態ログ912は、コンテンツ処理サーバ910によって実行されたドキュメント処理の状態をログ記録する。状態ログは、URL状態情報928(例えば、ドキュメントが指定のURLに存在したかどうかということ、最終修正日付情報および更新率情報)を含んでよい。URL状態情報はURLスケジューラ902に伝送されてよい。URLスケジューラは、クロール用にドキュメントのスケジュールを組むためにURL状態情報を使用してよい。
【0103】
いくつかの実施形態では、コンテンツ処理サーバ910は、アンカーマップ918を生成してもよい。アンカーマップ918は、ハイパーリンク中の「アンカーテキスト」を、ハイパーリンクの諸ターゲットURLのURLへマッピングする。ハイパーリンクを実施するためにHTMLタグを使用するドキュメントでは、アンカーテキストは1対のアンカータグの間に配置されたテキストである。例えば、<A href="http://www.website.com/wa/me.jpg">Picture of Mount Everest</A>というアンカータグの対におけるアンカーテキストは「Picture of Mount Everest」である。
【0104】
いくつかの実施形態では、サイトマップに供給されたドキュメントのメタデータも、アンカーマップを生成するために使用されてよい。例えば、ドキュメントのタイトル、ドキュメントの作成者またはドキュメントの説明などドキュメントのメタデータが、アンカーマップを生成するために使用されてよい。しかし、サイトマップに現れるいかなるフィールドも、一般にアンカーマップに含まれてよいことを理解されたい。
【0105】
いくつかの実施形態では、アンカーマップ918中のレコードは、リンクログ914の中にある外部行きURLのフィンガープリントによって鍵を付けられてよい。したがって、アンカーマップ918中の各レコードは、外部行きURLのフィンガープリント、およびリンクログ914中のURLに対応するアンカーテキストを含んでよい。「アンカーテキスト」の索引付けならびに単語を含まないURLの索引付けを促進するために、インデクサ924によってアンカーマップ918が使用される。例えば、外部行きURL(例えば上記の例におけるURL)でのターゲットドキュメントが、picture of Mount Everestで、ターゲットドキュメント中に単語がない場合を考えられたい。しかし、URLに関連したアンカーテキスト「Picture of Mount Everest」は、インデックス926中に含まれてよく、それによって、ターゲットドキュメントは、インデックス926を使用して検索エンジンによるアクセスが可能になる。
【0106】
アンカーマップ918および他のログ916はインデクサ924に伝送される。インデクサ924は、アンカーマップ918および他のログ916を使用してインデックス926を生成する。このインデックスは、検索エンジンのユーザによって入力されたクエリと一致するドキュメントを識別するために検索エンジンによって使用される。
【0107】
図10は、サイトマップ巡回ロボットシステム1000を示すブロック図である。サイトマップ巡回ロボットシステム1000は、一般に、1つまたは複数の処理装置(CPU)1002、1つまたは複数のネットワークまたは他の通信インターフェース1004、メモリ1010、およびこれらの要素を相互接続するための1つまたは複数の通信バスまたは信号ライン1012を含む。
【0108】
サイトマップ巡回ロボットシステム1000は、任意選択でユーザインターフェース1005を含んでよく、これにはキーボード、マウス、および/または表示デバイスが含まれてよい。メモリ1010は、DRAM、SRAM、DDR RAMまたは他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリを含んでよく、また、1つまたは複数の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイスまたは他の不揮発性固体記憶デバイスなどの不揮発性記憶装置を含んでよい。メモリ1010は、CPU1002から遠隔に配置された1つまたは複数の記憶デバイスを含んでよい。いくつかの実施形態では、メモリ1010は、様々な基本システムサービスを扱い、かつハードウェア依存タスクを実行するための処理手順を含むオペレーティングシステム1014、1つまたは複数の通信ネットワークインターフェース1004およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、都市内ネットワークなどの1つまたは複数の通信ネットワークを介して、サイトマップ巡回ロボットシステム1000を他のコンピュータに結合するために使用されるネットワーク通信モジュール1016、アクセスされたサイトマップを格納するサイトマップデータベース932、ウェブサーバによって与えられたサイトマップをアクセスするサイトマップ巡回ロボット905、サイトマップを受け取り、そのサイトマップを処理してURLおよび関連するメタデータを識別するサイトマップ処理モジュール934、クロールされ得るドキュメントのURLをリストするURLリスト1018、およびウェブサーバから受け取られた新規のサイトマップ通知を処理する通知処理モジュール1020の、プログラム、モジュールおよびデータ構造、またはそのサブセットを格納する。
【0109】
上記の識別された各要素は、1つまたは複数の前述のメモリデバイスに格納されてよく、前述の関数を実行するための命令セットに対応してよい。上記の識別されたモジュールまたはプログラム(すなわち命令のセット)を、個別のソフトウエアプログラム、処理手順またはモジュールとして実行する必要はなく、したがって、これらのモジュールの様々なサブセットが、様々な実施形態において組み合わせるかそうでなければ再配置されてよい。いくつかの実施形態では、メモリ1010は、上記で識別されたモジュールおよびデータ構造のサブセットを格納してよい。その上、メモリ1010は、上記で説明されていない追加モジュールおよびデータ構造を格納してよい。
【0110】
サイトマップのインデックスまたはサイトマップが1つまたは複数のパーサイト情報を含む実施形態では、そのようなパーサイト情報は、抽出されて、パーサイト情報データベース940に(例えばサイトマップ巡回ロボット905によって)付加される。適切な情報(例えば言語および/またはロケーションの情報)がパーサイト情報データベース940で利用可能なとき、この情報は、インデックス926にパーサイト情報(例えば言語および/または所在情報)を付加するためにインデクサ924によって使用される。インデックス926中にウェブサイトの地理および/または言語の情報が含有されることによって、地理および/または言語の規定を含むインデックス926を使用して、検索エンジンによる検索実行が可能になる。
【0111】
例えば、検索エンジンのインデックスが少なくともいくつかのウェブサイトに関する地理情報を含むとき、検索エンジンは、「pizza within 1 mile of London Bridge, London, England.」などの要求に応えることができる。検索エンジンのインデックスが少なくともいくつかのウェブサイトに関する言語情報を含むとき、検索エンジンは、「German URLs containing 'George Bush.'」などの要求に応えることができる。パーサイト情報がクロール率情報および/またはクロール時間間隔を含む実施形態では、その情報は、ウェブページをクロールする時間および速度を制御するためにURLスケジューラ902および/またはロボット908によって使用される。
【0112】
図11は、サイトマップに含まれた情報を基にドキュメントのダウンロードをスケジュール設定するプロセスを示す流れ図である。いくつかの実施形態では、ダウンロードのためにドキュメントのスケジュールを組むことは、スケジュールを組まれたドキュメントを識別するドキュメント識別子のリストを生成することを意味する。ドキュメント識別子のリストは、順序付けられたリストでよく、リスト中でより前のドキュメント識別子は、リスト中でより下位のドキュメント識別子より高い優先順位または重要性を有する。
【0113】
いくつかの実施形態では、サイトマップ巡回ロボットは、サイトマップの最新バージョンが利用可能であるという通知を受け取ると直ちにサイトマップにアクセスすることができる。サイトマップ通知が受け取られてログ記録される(1102)。次いで、次の待ち状態のサイトマップ通知が選択され得る(1104)。次いで、選択されたサイトマップ通知に関連したサイトマップが、ウェブサーバからダウンロードされてよい(1106)。
【0114】
他のいくつかの実施形態では、サイトマップ巡回ロボットは、サイトマップ通知を待つことに加えて、またはその代りに、通知を待たずに処理向けのサイトマップを周期的に選択し、アクセスしてよい。サイトマップデータベースもアクセスされてよい(1108)。次いで、データベースからのサイトマップが処理向けに選択されてよい(1110)。この選択は、最終修正日付情報または更新率情報などデータベースに格納された情報を基になされてよい。例えば、サイトマップの「年齢」(例えば現在の日付とサイトマップの日付の差、または現在の日付とサイトマップの最終修正日付の差)が、サイトマップにリストされた任意のドキュメント向けの最短の予測された更新期間より高齢のとき、このサイトマップはダウンロード向けに選択されてよい。選択されたサイトマップは、ウェブサーバからダウンロードされることによって、またはサイトマップデータベースで格納されたサイトマップのコピーにアクセスすることによって、アクセスされ得る(1112)。
【0115】
そのような情報がダウンロードから受け取られると、次いで、サイトマップデータベースは、新規のサイトマップ情報で更新されてよい(1114)。1つまたは複数のサイトマップのインデックスまたはサイトマップがパーサイト情報を含む実施形態では、パーサイト情報のデータベースは、受け取られたパーサイト情報で更新される。
【0116】
サイトマップ中の各URLに対して、URLがクロールの候補かどうかについての判断がなされ得る(1116)。URLのドキュメントが更新されたか、または多分更新されているか、あるいはURLがアクセス可能なドキュメントを適切に指定するかなどの判断が、URL状態情報を基になされ得る(1124)。クロールの候補であると判断されたURLは、候補のURL(1126)として識別され得て、それらの各々は、スコアを割り当てられてよい(1118)。各候補URLのスコアは、サイトマップから抽出されたURLのページ重要性スコア(例えばPageRank)およびURLの優先順位の値に基づいてよい。スコア付け後の候補URL(1128)は、フィルタリングされてよい。
【0117】
フィルタは、予算、サイトの制約(例えば巡回ロボットがクロールの期間中にダウンロードすることができるドキュメント数の限界)など1つまたは複数の所定の基準を基に候補URLのサブセットを選択してよい。結果として生じる候補URLのリストは、次いで、URLダウンロードのスケジュールを組むために使用されてよい(1122)。前述のように、URLダウンロードのスケジュール設定は、URLまたはドキュメント識別子の順序付けられたリストの生成を含んでよく、ドキュメントを表すリスト中のドキュメント識別子でより前のものは、順序付けられたリスト中でより後ろに配置されたドキュメントより高い優先順位または重要性を有する。その上、前述のように、いくつかの実施形態では、スケジュール設定操作1122は、特定のウェブサイト向けのクロール時間間隔および/またはクロール率情報などのサイトマップのインデックスまたはサイトマップ中で受け取られたパーサイト情報を考慮に入れてよい。
【0118】
いくつかの実施形態では、スケジューラは、巡回ロボットが実際にクロールすることができるものより多くのドキュメントを、クロール向けにスケジュール設定してよい。いくつかの実施形態では、巡回ロボットは、ウェブサイトまたはウェブサーバ用のクロール予算を有するかもしれない。予算は、特定のウェブサイトまたはウェブサーバに対して、特定のクロールセッションで、巡回ロボットがクロールすることができるドキュメントの最大数である。換言すれば、予算は、特定のウェブサーバまたはウェブサイトに対していくつのドキュメントをクロールするかウェブ巡回ロボットがそれ自体に課した制限であり得る。予算は、巡回ロボットが、特定のウェブサイトまたはウェブサーバに対して実行するはずのクロールを制限し、巡回ロボットが、そのクロール限界に達する前に他のウェブサイトまたはウェブサーバをクロールすることができることを確実なものにする。
【0119】
いくつかの実施形態では、ウェブサイト/ウェブサーバのオペレータは、特定のウェブサイトまたはウェブサーバに対するクロールを抑制するためにサイト制限を設定してよい。サイト制限の目標は、ウェブサイトまたはウェブサーバに関連したネットワーク資源が巡回ロボットによって消耗されるのを防ぐために、特定のウェブサイトまたはウェブサーバに対するクロールを制限することである。サイト制限は、ウェブサイトのオペレータによって定義されたドキュメントの最大数を含んでよく、この数は、定義された期間中(例えば1時間当りまたは1日当り)に特定のウェブサイトに対してクロールされてよいものである。さらに、この制限は、モバイルドキュメントの特定のフォーマットなど、ウェブサイトまたはウェブサーバ上のドキュメントのフォーマットを含んでよい。
【0120】
候補URLをフィルタリングすると、ソートされフィルタリングされた候補URL(1130)のリストおよび未選択の候補URL 1132のリストの生成につなげることができる。ソートされフィルタリングされた候補URLのリストは、スケジューラに伝送され得て、スケジューラは、リスト中のURL向けにクロールのスケジュールを組むことができる。未選択のURL 1132のリストは、第2のスケジューラ1136を含み得る第2のウェブ巡回ロボット1134に伝送されてよい。第2のスケジューラ1136は、次いで、第2のウェブ巡回ロボット1134によるクロールのために、リスト1132中のURLのスケジュールを組むことができる。
【0121】
URLスケジューラは、サイトマップから得られたドキュメントメタデータによるリスト中のURL向けにクロールのスケジュールを組むことができる。前述のように、メタデータは、ドキュメント最終修正日付情報、ドキュメント更新率情報、ドキュメント優先順位情報およびドキュメント支持率情報を含んでよい。
【0122】
スケジューラは、サイトマップからの最終修正日付情報を基にURLをクロールするスケジュールを組んでよい。ウェブ巡回ロボットによってドキュメントがダウンロードされた最後の日付/時間からドキュメントが修正されていないなら、スケジューラは、URLに対応するドキュメントのクロール用のスケジュール設定を延期してよい。換言すれば、ドキュメントの最終修正日付がウェブ巡回ロボットによるドキュメントの最後のダウンロードの日付/時間より後でないならば、スケジューラは、ドキュメントのクロール用のスケジュール設定を延期してよい。そのような延期は、変化していないドキュメントの再ダウンロードを避けることにより、ネットワーク資源の節約に役立つ。
【0123】
スケジューラは、サイトマップからの更新率情報を基にドキュメントをクロールするスケジュールを組むこともできる。ドキュメントがダウンロードされた更新率および最後の日付/時間の定義済関数が所定の基準を満たすなら、スケジューラは、ドキュメントをクロールするスケジュールを組んでよい。いくつかの実施形態では、ドキュメントがダウンロードされた最後の日付/時間と現在の時間の間の差が更新率情報によって示される更新率より大きいとき、ドキュメントはダウンロードに向けてスケジュールを組まれ得る。例えば、ドキュメントの更新率が「毎週」で、この前ドキュメントがダウンロードされたのが2週間前であるなら、スケジューラは、ドキュメントをダウンロードするためにスケジュールを組んでよい。これは、最後のダウンロード以来不変であると予想されるドキュメントのダウンロードを避けることにより、ネットワーク資源を節約するのに役立つ。
【0124】
スケジューラは、候補URLの相対的優先順位を基に候補URLのスコアを調整してもよい。スケジューラは、相対的優先順位に対応するブーストファクタを求め、それらをスコアに適用する。いくつかの実施形態では、スケジューラは、ドキュメント優先順位の補助的な指標であるドキュメント支持率情報を基にブーストファクタを求めてもよい。
【0125】
いくつかの実施形態では、選択された候補URLまたは未選択の候補URLに付属しているスコアが、どのURLがクロールしなければならないURLであるか判断するために使用されてよい。すなわち、スコアは、ドキュメントがクロールされることを保証されているかどうか判断するのに役立ち得る。スコアが高いURLは、クロールが必要であると示されてよい。これは、重要なページがクロールのためにスケジュール設定されることを保証する。
【0126】
図12は、サーチシステムにモバイルサイトマップを加えるための表示を示すスクリーンショットの例である。この表示は、ユーザが生成したサイトマップを識別するURLを登録するための指示を示す。さらに、URLを受け取るためのブランクの入力ボックスおよび提示ボタンも設けられている。この表示は、選択されたとき、ユーザに、サイトマップを求めてURLを選択し識別するための追加の指示を与える複数のハイパーリンクも提供する。
【0127】
図12の表示の例は、モバイルデバイスを使用して見られるように意図されたウェブサイトに関連したサイトマップ向けの情報を提供することをユーザが望むならば、ユーザに追加の選択肢も提供する。サイトマップについての情報の提示は、手動のウェブページ操作としてここに示されているが、アプリケーションが遠隔サーバへサイトマップ情報を提示するようにプログラムされ得て、ユーザは、コマンドを選択するかそうでなければサイトマップが遠隔サーバに提示されるべきであると指示するだけでよいように自動化されてもよい。
【0128】
図13は、サーチシステムにモバイルサイトマップを加えるための表示を示すスクリーンショットの例である。例えば、ユーザが図12の表示上のモバイルサイトマップを提供することを選択したとき、この表示が示されてよい。再び、ユーザには、サイトマップのURLを入力する機会が与えられている。さらに、この画面では、ユーザは、サイトマップに関連したウェブサイトで、ドキュメント用の(諸)フォーマットを、例えばラジオボタンの選択によって指定することができる。例えば、WMLおよびXHTMLは、携帯電話など特定のモバイル通信デバイスで見るために作られたコンテンツ用のフォーマットを定義する規格である。あるいは、ある携帯用情報端末は、ほとんどの電話よりも大きな画面を有し、したがって、作成者は、そのコンテンツを直接そのような画面へ宛ててよい。さらに、cHTML、すなわちiModeとして既知のHTMLの派生が、モバイルデバイスの電気通信会社NTT DoCoMoによって開発されている。したがって、作成者は、これらのフォーマットの1つまたは複数向けに書き込むかまたはフォーマットしてよく、また、サーバがそれらのドキュメントを正確に読み取る巡回ロボットを選択するように、適切なフォーマットでサイトマップをドキュメントに対応させる機会を得ることができる。
【0129】
図14は、ユーザに関連付けられたサイトマップを閲覧し管理するための表示を示すスクリーンショットの例である。この表示は、忙しいウェブマスタが様々なサイトマップの提示の進行を追跡することを可能にすることができる。一般に、この表示は、(位置および名前によって)提示されたすべてのサイトマップのリスト、サイトマップに対応付けられたドキュメントのタイプ(モバイルまたはウェブ)、サイトマップがユーザによって初めて識別されてからの時間および遠隔サーバが最後にサイトマップをダウンロードしたときからの時間、ならびにサイトマップの状態を示す。例えば、サイトマップを読み取る際に、サイトマップが所定のフォーマットに従わないなどのエラーが生じると、サイトマップの状態は「パージングエラー」としてリストされてよい。その代りに、またはそれに加えて、問題があったかどうかユーザが直ちに知ることができるように、電子メールまたはインスタントメッセージなどのメッセージによってユーザにエラーが示されてよい。
【0130】
図15は、ウェブサイトサーバ1500を示すブロック図である。ウェブサイトサーバ1500(または「ウェブサーバ」)は、一般に、1つまたは複数の処理装置(CPU)1502、1つまたは複数のネットワークまたは他の通信用インターフェース1504、メモリ1510、およびこれらの要素を相互接続するための1つまたは複数の通信バスまたは信号ライン1512を含む。ウェブサイトサーバ1500は、任意選択でユーザインターフェース1505を含んでよく、これは表示デバイス、マウス、および/またはキーボードを備えてよい。メモリ1510は、DRAM、SRAM、DDR RAMまたは他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリを含み、1つまたは複数の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイスなどの不揮発性記憶装置、または他の不揮発性固体記憶装置を含んでよい。
【0131】
メモリ1510は、CPU 202(例えば、ネットワークに取り付けられた記憶デバイス)から遠隔に配置された1つまたは複数の記憶デバイスを任意選択で含んでよい。いくつかの実施形態では、メモリ210は、様々な基本システムサービスを扱い、かつハードウェア依存タスクを実行するための処理手順を含むオペレーティングシステム1514、1つまたは複数の通信ネットワークインターフェース1504およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、都市内ネットワークなどの1つまたは複数の通信ネットワークを介して、ウェブサイトサーバ1500を他のコンピュータに結合するために使用されるネットワーク通信モジュール1516、サイトマップを生成するサイトマップ生成モジュール106、サイトマップの生成を制御するかガイドするサイトマップ制御パラメータ104、ウェブサイトサーバ200に格納されたサイトマップのURLをリストするサイトマップのインデックス112、クロールされ得るドキュメントのURLをリストする1つまたは複数のサイトマップ114、およびドキュメントを格納し整理するウェブサイトファイルシステム102の、プログラム、モジュールおよびデータ構造、またはそのサブセットを格納する。
【0132】
上記の識別された各要素は、1つまたは複数の前述のメモリデバイスに格納されてよく、前述の関数を実行するための命令セットに対応する。上記の識別されたモジュールまたはプログラム(すなわち命令セット)を、個別のソフトウエアプログラム、処理手順またはモジュールとして実行する必要はなく、したがって、これらのモジュールの様々なサブセットが、様々な実施形態において組み合わせるかそうでなければ再配置されてよい。いくつかの実施形態では、メモリ1510は、上記の識別されたモジュールおよびデータ構造のサブセットを格納してよい。その上、メモリ1510は、上記で説明されていない追加モジュールおよびデータ構造を格納してよい。
【0133】
実際上、当業者によって理解されるように、上記の図中に別々に示されている項目を組み合わせることができ、いくつかの項目を分離することもできる。例えば、図で別々に示されるいくつかの項目を単一のサーバ上で実現することができ、1つまたは複数のサーバによって単一項目を実現することもできる。当業者によって理解されるように、ウェブサイトは、ウェブサーバなど単一のサーバ、または複数のウェブサーバなど複数のサーバ上で実現することができる。ウェブサイトサーバまたは巡回ロボットシステムあるいは他のシステムを実現するために使用されるサーバの実際の数、および、それらにどのように機能が割り当てられるかは、実装形態ごとに様々であり、部分的には、平均的使用期間中ばかりでなくピーク使用期間中にシステムが扱わなければならないデータトラフィック量次第であり得る。説明の便宜上、ウェブサイトは、あたかもそれらが単一のウェブサーバ上で実現されているかのように以下で説明される。
【0134】
本発明の複数の実施形態が説明されてきた。しかし、本発明の趣旨および範囲から逸脱することなく、様々な変更形態が作られ得ることが理解されよう。例えば、上記で論じられたステップは、示されたものと異なる順序で実行されてよく、あるステップが除去されてよく、加えられてもよい。したがって、他の実施形態は以下の特許請求の範囲の範囲内にある。
【符号の説明】
【0135】
10 システム
12 サーバシステム12
14 クライアント
16 サーバ
17 サイトマップ
【特許請求の範囲】
【請求項1】
関連したネットワークアクセス可能なドキュメントの構造を示すマッピングドキュメントを生成するステップと、
前記マッピングドキュメントがアクセス可能であるという指示および前記ドキュメントの前記フォーマットの指示を含む通知を遠隔コンピュータに伝送するステップとを含む、ネットワークアクセス可能なドキュメントをリストする方法。
【請求項2】
前記マッピングドキュメントがドキュメント識別子のリストを備える請求項1に記載の方法。
【請求項3】
前記ドキュメントの前記フォーマットの前記指示が、前記ドキュメントを解釈する能力に影響を与える1つまたは複数のモバイルドキュメントフォーマットを示す請求項1に記載の方法。
【請求項4】
前記通知が前記マッピングドキュメントの前記ロケーションの前記指示を含む請求項1に記載の方法。
【請求項5】
ユーザがウェブベースのフォームを記入するとき前記通知が伝送される請求項1に記載の方法。
【請求項6】
コンピュータシステムともに使用するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品がコンピュータ可読記憶媒体およびそこに埋め込まれたコンピュータプログラムの仕組みを備え、前記コンピュータプログラムの仕組みが、
関連したネットワークアクセス可能なドキュメントの構造を示すマッピングドキュメントを生成するための命令と、
前記リストがアクセス可能であるという指示および前記ドキュメントの前記フォーマットの指示を含む通知を遠隔コンピュータに伝送するための命令とを備えるコンピュータプログラム製品。
【請求項7】
前記マッピングドキュメントがドキュメント識別子のリストを備える請求項6に記載のコンピュータプログラム製品。
【請求項8】
前記ドキュメントの前記フォーマットの前記指示が、前記ドキュメントを解釈する能力に影響を与える1つまたは複数のモバイルドキュメントフォーマットを示す請求項6に記載のコンピュータプログラム製品。
【請求項9】
前記通知が前記マッピングドキュメントの前記ロケーションの前記指示を含む請求項6に記載のコンピュータプログラム製品。
【請求項10】
ユーザがウェブベースのフォームを記入するとき前記通知が伝送される請求項6に記載のコンピュータプログラム製品。
【請求項1】
関連したネットワークアクセス可能なドキュメントの構造を示すマッピングドキュメントを生成するステップと、
前記マッピングドキュメントがアクセス可能であるという指示および前記ドキュメントの前記フォーマットの指示を含む通知を遠隔コンピュータに伝送するステップとを含む、ネットワークアクセス可能なドキュメントをリストする方法。
【請求項2】
前記マッピングドキュメントがドキュメント識別子のリストを備える請求項1に記載の方法。
【請求項3】
前記ドキュメントの前記フォーマットの前記指示が、前記ドキュメントを解釈する能力に影響を与える1つまたは複数のモバイルドキュメントフォーマットを示す請求項1に記載の方法。
【請求項4】
前記通知が前記マッピングドキュメントの前記ロケーションの前記指示を含む請求項1に記載の方法。
【請求項5】
ユーザがウェブベースのフォームを記入するとき前記通知が伝送される請求項1に記載の方法。
【請求項6】
コンピュータシステムともに使用するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品がコンピュータ可読記憶媒体およびそこに埋め込まれたコンピュータプログラムの仕組みを備え、前記コンピュータプログラムの仕組みが、
関連したネットワークアクセス可能なドキュメントの構造を示すマッピングドキュメントを生成するための命令と、
前記リストがアクセス可能であるという指示および前記ドキュメントの前記フォーマットの指示を含む通知を遠隔コンピュータに伝送するための命令とを備えるコンピュータプログラム製品。
【請求項7】
前記マッピングドキュメントがドキュメント識別子のリストを備える請求項6に記載のコンピュータプログラム製品。
【請求項8】
前記ドキュメントの前記フォーマットの前記指示が、前記ドキュメントを解釈する能力に影響を与える1つまたは複数のモバイルドキュメントフォーマットを示す請求項6に記載のコンピュータプログラム製品。
【請求項9】
前記通知が前記マッピングドキュメントの前記ロケーションの前記指示を含む請求項6に記載のコンピュータプログラム製品。
【請求項10】
ユーザがウェブベースのフォームを記入するとき前記通知が伝送される請求項6に記載のコンピュータプログラム製品。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−69163(P2012−69163A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2011−283150(P2011−283150)
【出願日】平成23年12月26日(2011.12.26)
【分割の表示】特願2008−529108(P2008−529108)の分割
【原出願日】平成18年8月23日(2006.8.23)
【出願人】(507103802)グーグル・インコーポレーテッド (191)
【Fターム(参考)】
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願日】平成23年12月26日(2011.12.26)
【分割の表示】特願2008−529108(P2008−529108)の分割
【原出願日】平成18年8月23日(2006.8.23)
【出願人】(507103802)グーグル・インコーポレーテッド (191)
【Fターム(参考)】
[ Back to top ]