(57)【要約】【課題】  ユーザがコンテンツのビューを選択および変更することを可能にするウェブコンテンツ表示システムを提供すること。【解決手段】  第１の構成ファイルからのパラメータを受け取るコンテンツ生成プログラムを使用して、デフォルトビューで生成される、ウェブブラウザ上で閲覧可能なコンテンツのページが、プルダウンメニューなど、コンテンツのビューをユーザが選択できるようにするユーザ操作可能要素を備える。ユーザの選択はコンテンツプロバイダに送信されると、コンテンツプロバイダは、選択されたビューに対応する第２の構成ファイルを使用して、コンテンツ生成プログラムを再実行する。第２の構成ファイルは、第１の構成ファイルとは異なるパラメータを含む。次いで、再生成されたコンテンツを、ウェブブラウザ上に表示されるようにユーザのコンピュータに再配信する。【選択図】  図１０
2004259277.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンテンツビューをユーザに提供する方法であって、
プログラムを実行して、コンテンツを第１のビューで生成するステップと、
前記コンテンツをユーザのマシン上に表示されるように送信するステップであって、前記コンテンツは、前記ユーザが複数のビューから選択できるようにするユーザ操作可能要素を備えるステップと、
前記第１のビューとは異なる第２のビューの選択を前記ユーザから受け取るステップと、
前記プログラムを再実行して、前記コンテンツを前記第２のビューで生成するステップとを含むことを特徴とする方法。
【請求項２】
前記第１のビューのコンテンツはＨＴＭＬウェブページを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記コンテンツは、検索クエリに応答した複数のウェブページを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記第１のビューのコンテンツは、前記複数のウェブページの第１のセットに関係する情報を含み、前記第２のビューのコンテンツは、前記複数のウェブページの第２のセットに関係する情報を含み、前記第２のセットは前記第１のセットと同一ではないことを特徴とする請求項３に記載の方法。
【請求項５】
前記プログラムは、１つまたは複数の入力パラメータを受け取り、前記入力パラメータに基づいて出力を生成することを特徴とする請求項１に記載の方法。
【請求項６】
第１の入力パラメータセットは前記第１のビューに対応し、第２の入力パラメータセットは前記第２のビューに対応し、前記プログラムは、入力として前記第１の入力パラメータセットを受け取るか前記第２の入力パラメータセットを受け取るかに従って、前記第１のビューまたは前記第２のビューで前記コンテンツを生成することを特徴とする請求項５に記載の方法。
【請求項７】
前記第１の入力パラメータセットは第１の構成ファイルに記憶され、前記第２の入力パラメータセットは第２の構成ファイルに記憶され、前記プログラムが前記第１の構成ファイルから入力を受け取るようにすることによって、前記プログラムは前記コンテンツを前記第１のビューで生成するようにされ、前記プログラムが前記第２の構成ファイルから入力を受け取るようにすることによって、前記プログラムは前記コンテンツを前記第２のビューで生成するようにされることを特徴とする請求項６に記載の方法。
【請求項８】
コンテンツを生成するためのシステムであって、
複数の構成ファイルと、
前記構成ファイルのうちの第１の構成ファイルに基づいて前記コンテンツを第１のビューで生成し、第２のビューの選択をユーザから受け取り、前記構成ファイルのうちの第２の構成ファイルに基づいて前記コンテンツを第２のビューで生成するコンテンツ生成プログラムとを備え、前記構成ファイルのうちの前記第２の構成ファイルは前記第２のビューに対応することを特徴とするシステム。
【請求項９】
前記第１のビューのコンテンツはユーザ操作可能要素を備え、前記ユーザ操作可能要素は、前記第１のビューのコンテンツがブラウザ上にレンダリングされているときに、前記ユーザが前記第２のビューを含めた１つまたは複数のビューから選択できるようにすることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記第１および第２のビューの各々のコンテンツは、ハイパーテキストマークアップ言語（ＨＴＭＬ）ウェブページを含むことを特徴とする請求項８に記載のシステム。
【請求項１１】
前記コンテンツは検索クエリに応答した結果を含み、前記第１および第２のビューは前記結果に基づく情報を含み、前記第１のビューと前記第２のビューとは相互に同一ではないことを特徴とする請求項８に記載のシステム。
【請求項１２】
前記結果は、複数のウェブページに関係する情報を含み、前記第１のビューは、前記複数のウェブページの第１のセットに関係する情報を含み、前記第２のビューは、前記複数のウェブページの第２のセットに関係する情報を含み、前記第１のセットと前記第２のセットとは相互に同一ではないことを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記構成ファイルは各々１つのビューに対応し、前記構成ファイルのうちの第１の構成ファイルは前記第１のビューに対応し、前記構成ファイルのうちの第２の構成ファイルは前記第２のビューに対応し、前記コンテンツ生成プログラムは、前記コンテンツがどのビューでレンダリングされることになるかに従って、前記構成ファイルのうちの１つから入力を受け取ることを特徴とする請求項８に記載のシステム。
【請求項１４】
ユーザがコンテンツビューを変更できるようにする方法を実施するためのコンピュータ実行可能命令を含むコンピュータ可読媒体であって、前記方法は、
ビュー変更メニューを作成するステップと、
前記ビュー変更メニューに基づいて、ユーザが複数のビューのうちの第１のビューでコンテンツを受け取りたいと思っていることの指示を受け取るステップと、
前記指示に基づいて前記第１のビューで前記コンテンツを生成するステップとを含むことを特徴とするコンピュータ可読媒体。
【請求項１５】
複数の構成ファイルは別々のビューに対応し、前記構成ファイルのうちの第１の構成ファイルは前記第１のビューに対応し、前記方法はさらに、
前記指示に基づいて、前記複数の構成ファイルの中から前記第１の構成ファイルを選択するステップを含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記第１のビューのコンテンツは前記ビュー変更メニューを備えることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１７】
前記第１のビューとは異なる第２のビューで前記コンテンツをユーザに配信するステップをさらに含み、前記第２のビューのコンテンツは前記ビュー変更メニューを備えることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１８】
前記コンテンツは、クエリに応答したウェブページに関する情報を含み、前記第１のビューのコンテンツは、前記ウェブページに関する第１の情報を含み、前記第２のビューのコンテンツは、前記ウェブページに関する第２の情報を含み、前記第１の情報は前記第２の情報とは異なることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１９】
前記第１の情報は前記ウェブページの第１のセットに基づき、前記第２の情報は前記ウェブページの第２のセットに基づき、前記第１のセットは前記第２のセットと同一ではないことを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
コンテンツのビューを変更する方法であって、
ユーザが１つまたは複数のビューの中から第２のビューを選択できるようにするユーザ操作可能要素を備える、第１のビューのコンテンツを受け取るステップと、
前記第２のビューを選択するステップと、
前記第２のビューの前記コンテンツを受け取るステップと
を含むことを特徴とする方法。
【請求項２１】
クエリを入力するステップをさらに含み、
前記コンテンツは前記クエリに応答した結果を含むことを特徴とする請求項２０に記載の方法。
【請求項２２】
前記第１のビューの前記コンテンツは、前記結果に関する第１の情報を含み、前記第２のビューの前記コンテンツは、前記結果に関する第２の情報を含み、前記第２の情報は前記第１の情報と同一ではないことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記第１の情報は、前記結果の少なくともいくつかのタイトルを含み、前記第２の情報は、前記結果の少なくともいくつかに関係するグラフィックスを含むことを特徴とする請求項２２に記載の方法。
【請求項２４】
前記第１の情報は前記結果の第１のセットに基づき、前記第２の情報は前記結果の第２のセットに基づき、前記第１のセットは前記第２のセットと同一ではないことを特徴とする請求項２２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、コンピューティングの分野に関する。より詳細には、本発明は、ウェブコンテンツの表示または「ビュー（ｖｉｅｗ）」をユーザが変更できるようにするための技法を提供する。
【背景技術】
【０００２】
ほとんどのウェブコンテンツは、ウェブサーバによってリアルタイムで生成される。例えば検索エンジンサーバは、検索クエリに応答して、クエリに関係するウェブページを突き止め、これらの結果を含むページを生成し、結果ページをユーザのブラウザ上に表示されるようにユーザのコンピュータに配信することによって、結果を提供することができる。
【０００３】
結果ページのコンテンツはユーザの入力に基づいてカスタマイズされるが（すなわち、異なるクエリは異なる結果ページを生成する）、結果の表示は通常はカスタマイズされない。一般に検索エンジンは、すべての結果をセットフォーマットで、例えばクエリに最も合致する１０個の結果のタイトルを含むテキストリストで配信し、ユーザには、表示のフォーマットまたはその他の特徴を変更する機会はない。電子商取引サイトやポータルサイトなどほとんどのウェブサイトは、このような、コンテンツ表示方式のフレキシビリティの欠如を被っている。
【０００４】
様々なユーザが、あるタイプのコンテンツを異なる方式で閲覧したいと思う場合がある。例えば、従来のテキストだけの検索結果フォーマットを好むユーザもいれば、検索結果のセット中にリストされた各ウェブページにそのサムネイル画像が付いているのを好むユーザもいる。場合によっては、所与のユーザが、何を検索しているかに応じて異なる表示を好むこともある（例えばユーザは、映画に関するウェブサイトを検索するときはサムネイル画像にこだわるが、古代ギリシャ文学に関するウェブサイトを検索するときはそれほどこだわらない場合がある）。あるいは、他の何らかの状況に基づいて異なる表示を好むこともある（例えばユーザは、低速ダイヤルアップ回線にアクセスしているときはデータ集約型のサムネイル画像をオフにしたい場合がある）。しかし、従来のウェブサイトでは、ユーザは異なるコンテンツ表示または「ビュー」間で切り替えたり元に戻したりすることができない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
以上のことに鑑みて、従来技術の欠点を克服するシステムが必要とされている。
【課題を解決するための手段】
【０００６】
本発明は、ウェブブラウザでコンテンツを閲覧しているユーザがそのコンテンツについて異なるビュー間で切り替えることを可能にする。コンテンツのページは、プルダウンメニューなど、種々のビューの選択をユーザに与えるユーザ操作可能な制御付きで送達される。ユーザはビューを選択し、次いで、ユーザの選択はコンテンツプロバイダに返送される。次いでコンテンツプロバイダは、ユーザの選択したビューを反映するようにコンテンツのページを再生成し、このコンテンツを、ウェブブラウザ上で閲覧されるようにユーザのコンピュータに再送する。
【０００７】
例えば、ユーザが検索エンジンを使用しており、ユーザには従来の形式で結果が表示される。すなわち、ユーザのクエリに最も合致する１０個のページについてのウェブページタイトルに、各ページに関する１、２行の記述が続くリストの形式である。この形式を第１の「ビュー」とすることができる。結果ページはプルダウンメニューを含むものとすることができ、これによってユーザは、異なるビュー、例えば「プレビュー画像」ビューを選択することができる。「プレビュー画像」ビューでは、結果中の各ウェブページタイトルに、そのウェブページのサムネイル画像が付く。ユーザがこの第２のビューを選択すると、ユーザの選択は検索エンジンに返送され、検索エンジンは結果ページを第２のビューで再生成する。次いで、再生成された結果ページは、ブラウザ上で閲覧されるようにユーザのコンピュータに送信される。
【０００８】
本発明の一実施形態では、コンテンツのページはコンピュータプログラムによって生成することができ、コンピュータプログラムは、パラメータを入力として受け取って、生成するコンテンツの性質を変更することができる。これらのパラメータは、構成ファイルに記憶しておくことができる。あるビューをプログラムに生成させるパラメータを、ある構成ファイルに記憶することができ、別のビューをプログラムに生成させるパラメータを、別の構成ファイルに記憶することができる。したがって、ビューの変更は、コンテンツ生成プログラムがその入力パラメータをとる、構成ファイルを変更することによって実施することができる。
【０００９】
本発明の他の特徴については後述する。
【発明を実施するための最良の形態】
【００１０】
前述の概要、ならびに後続の好ましい実施形態の詳細な説明は、添付の図面と共に読めばよりよく理解される。本発明を例示するために、本発明の例示的な構造を図面に示す。ただし本発明は、開示する特定の方法および手段に限定しない。
【００１１】
概観
通常、ウェブコンテンツはユーザ入力に基づいてカスタマイズすることができるが、このコンテンツの表示はカスタマイズされない。例えば、検索エンジンは、クエリに応答して結果のページを作成することができる。このページのコンテンツは、特定のクエリに応答して特に作成されるが、結果は一般にセットフォーマットであり、例えばウェブページタイトルおよびその記述のテキストリストである。本発明は、異なるウェブコンテンツ表示または「ビュー」をユーザが選択できるようにする。したがって、例えばユーザは、検索結果をテキストリストとして、またはウェブページのサムネイル画像のセットとして受け取ることを選択することができ、あるいは、この２つの表示の間で切り替えたり元に戻したりすることができる。
【００１２】
例示的なコンピューティング環境
図１に、本発明の態様を実施することのできる例示的なコンピューティング環境を示す。コンピューティング環境１００は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲についてどんな制限を意味するものでもない。またコンピューティング環境１００は、この例示的なコンピューティング環境１００に示すコンポーネントのいずれか１つまたは組合せに関してどんな依存も要件も有するものと解釈すべきではない。
【００１３】
本発明は、その他多くの汎用または専用コンピューティングシステム環境または構成でも動作する。本発明で使用するのに適する周知のコンピューティングシステム、環境、および／または構成の例には、限定しないがパーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、組込みシステムや、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【００１４】
本発明は、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストで述べることができる。一般にプログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は分散コンピューティング環境で実施することもでき、その場合、タスクは通信ネットワークまたはその他のデータ伝送媒体を介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境では、プログラムモジュールおよびその他のデータは、メモリ記憶デバイスを含めたローカルとリモートとの両方のコンピュータ記憶媒体に位置することができる。
【００１５】
図１を参照すると、本発明を実施するための例示的なシステムは、コンピュータ１１０の形をとる汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントには、限定しないが処理ユニット１２０と、システムメモリ１３０と、システムメモリを含めた様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１とを含めることができる。システムバス１２１は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含めて、いくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例として、このようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス（メザニンバスとも呼ばれる）が含まれる。
【００１６】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を備える。コンピュータ可読媒体は、コンピュータ１１０からアクセスできる任意の利用可能な媒体とすることができ、揮発性および不揮発性、取外し可能および取外し不可能の両方の媒体が含まれる。限定ではなく例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性および不揮発性、取外し可能および取外し不可能の両方の媒体が含まれる。コンピュータ記憶媒体には、限定しないがＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイスが含まれ、あるいは、所望の情報を記憶するのに使用できコンピュータ１１０からアクセスできる他の任意の媒体が含まれる。通信媒体は通常、搬送波や他のトランスポート機構など変調されたデータ信号中に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを組み入れたものであり、任意の情報送達媒体が含まれる。「変調されたデータ信号」という語は、信号中の情報が符号化される形で１つまたは複数の特性が設定または変更された信号を意味する。限定ではなく例として、通信媒体には、配線式ネットワークや直接配線式接続などの配線式媒体と、音響、無線周波、赤外線、その他の無線媒体などの無線媒体とが含まれる。以上の任意の組合せもコンピュータ可読媒体の範囲に含めるべきである。
【００１７】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。ＲＯＭ１３１には通常、起動中などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）１３３が記憶されている。ＲＡＭ１３２は通常、処理ユニット１２０がすぐにアクセス可能な、かつ／または処理ユニット１２０が現在作用している、データおよび／またはプログラムモジュールを含む。限定ではなく例として、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００１８】
コンピュータ１１０は、その他の取外し可能／取外し不可能、揮発性／不揮発性コンピュータ記憶媒体を備えることもできる。例にすぎないが図１には、取外し不可能かつ不揮発性の磁気媒体に対して読み書きするハードディスクドライブ１４１と、取外し可能かつ不揮発性の磁気ディスク１５２に対して読み書きする磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭやその他の光媒体など取外し可能かつ不揮発性の光ディスク１５６に対して読み書きする光ディスクドライブ１５５を示す。この例示的な動作環境で使用できる他の取外し可能／取外し不可能、揮発性／不揮発性コンピュータ記憶媒体には、限定しないが磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどが含まれる。ハードディスクドライブ１４１は通常、取り外し不可能な不揮発性インタフェース１４０などの取り外し不可能なメモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、取り外し可能な不揮発性インタフェース１５０などの取外し可能メモリインタフェースでシステムバス１２１に接続される。
【００１９】
以上に論じ図１に示した各ドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶域をコンピュータ１１０に提供する。例えば図１には、ハードディスクドライブ１４１がオペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶しているのが示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じものとすることもでき、異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７が少なくとも異なるコピーであることを示すために、異なる番号を付してある。ユーザは、キーボード１６２や、マウス、トラックボール、タッチパッドと一般に呼ばれるポインティングデバイス１６１などの入力デバイスを介して、コンピュータ１１０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含めることができる。これらおよび他の入力デバイスは、システムバスに結合されたユーザ入力インタフェース１６０を介して処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（「ＵＳＢ」）など、他のインタフェースおよびバス構造で接続されてもよい。モニタ１９１または他のタイプの表示デバイスもまた、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは通常、スピーカ１９７やプリンタ１９６など他の周辺出力デバイスも備えることができ、これらは出力周辺インタフェース１９５を介して接続することができる。
【００２０】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、これは、図１にはメモリ記憶デバイス１８１しか示していないが、通常はコンピュータ１１０に関して上述した要素の多くまたはすべてを備える。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットでよくみられるものである。
【００２１】
コンピュータ１１０は、ＬＡＮネットワーキング環境で使用されるときは、ネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用されるときは通常、インターネットなどのＷＡＮ１７３を介した通信を確立するためのモデム１７２または他の手段を備える。モデム１７２は内蔵でも外付けでもよく、ユーザ入力インタフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク化環境では、コンピュータ１１０に関して示したプログラムモジュールまたはその一部をリモートのメモリ記憶デバイスに記憶することができる。限定ではなく例として、図１には、リモートアプリケーションプログラム１８５がメモリデバイス１８１上にあるものとして示す。図示のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用することもできることは理解されるであろう。
【００２２】
例示的なウェブブラウザ
図２に、例示的なウェブブラウザ２００の視覚インタフェースを示す。当技術分野で知られているように、ウェブブラウザは、ユーザがいくつかのタイプのコンテンツ（例えばハイパーテキストマークアップ言語（「ＨＴＭＬ」）や拡張可能ハイパーテキストマークアップ言語（「ＸＨＴＭＬ」）のコンテンツ）と対話すること、およびそのようなコンテンツをネットワークから取り出すことができるようにするソフトウェアである。例えば、ウェブブラウザ２００は、コンピュータ１１０（図１に示す）上に記憶されており処理ユニット１２０（図１に示す）上で実行されるソフトウェアを構成するものとすることができる。ブラウザ２００は、インターネットなど、コンピュータ１１０が接続されているワイドエリアネットワーク１７３（図１に示す）からのコンテンツにアクセスすることができる。通常、ブラウザ２００はまた、コンピュータ１１０上にローカルに記憶されているコンテンツにもアクセスすることができる。
【００２３】
図２の例示的なブラウザは、様々な情報をユーザに対して表示する。具体的には、ブラウザ２００はナビゲーションバー２０２をユーザに対して表示する。ナビゲーションバー２０２はボックス２０４を備え、ユーザは、ブラウザを特定のコンテンツに向けるために、このボックスにユニフォームリソースロケータ（ＵＲＬ）を入力することができる。図２の例でユーザは、ｈｔｔｐ：／／ｓｅａｒｃｈ．ｍｓｎ．ｃｏｍというＵＲＬをボックス２０４に入力しており、それにより、このＵＲＬで識別されるコンテンツにアクセスしたいと思っていることを示している。ブラウザ２００は、このコンテンツがインターネット上のどこに位置しようとそこからコンテンツを取り出し、閲覧領域２０６にコンテンツを表示する。図２の例では、コンテンツはＨＴＭＬまたはＸＨＴＭＬで配信される。（ＵＲＬ中の語句「ｈｔｔｐ」は「ハイパーテキストトランスファープロトコル」を表し、この語句がＵＲＬ中にあることは、基礎をなすコンテンツがＨＴＭＬまたはＸＨＴＭＬコンテンツであることを示す。）ブラウザ２００は、ブラウザ２００によって受け取られたＨＴＭＬまたはＸＨＴＭＬコンテンツをレンダリングするＨＴＭＬおよび／またはＸＨＴＭＬインタープリタを備えているか、そうでない場合はそれにアクセスする。図２の例では、ブラウザ２００は、コンテンツのタイトル（「ＭＳＮ検索−毎日もっと便利に」）をタイトルバー２０８中に表示している。
【００２４】
ブラウザ２００のような通常のブラウザではまた、ユーザは、表示されたコンテンツを印刷、メール送信、保存したり、「お気に入り」または「ブックマーク」のリストを使用して他のコンテンツにナビゲートしたり、テキストコンテンツのデフォルトフォントを変更したりするなど、様々な機能を実施することもできる。この機能は、メニューバー２１０および／またはボタン２１２によってユーザに提示される。
【００２５】
後述するように、本発明は、閲覧領域２０６でユーザに対して表示されるコンテンツの表示または「ビュー」を、ユーザが選択できるようにする技法を提供する。
【００２６】
実行可能コードを使用したコンテンツ生成
ウェブコンテンツには静的なものもある。すなわち、ウェブコンテンツには、単にファイルシステムに記憶されていて変化しない（またはたまにしかその所有者によって編集されない）ＨＴＭＬコンテンツのファイルもある。しかし、ほとんどの商業ウェブコンテンツは、ユーザに配信される時に動的に生成される。この動的に生成されるコンテンツは、ユーザに関する何らかのレベルの個人化を反映するか、あるいはユーザからの何らかの入力に応答して生成される。例えば、ユーザが電子商取引サイトを訪れたとき、このサイトのサーバが、ユーザの名前を挙げてユーザに挨拶するとともにこのユーザの購買傾向に的を絞った販売を含む、「ウェルカム」ページを生成する場合がある。別の例としては、検索エンジンが、ユーザからクエリを受け取り、クエリに応答した検索結果のページを生成する場合がある。商業コンテンツプロバイダは、このコンテンツをユーザへの配信時に生成するコンピュータプログラムを動作させる。
【００２７】
図３に、コンテンツ生成プログラムの例を示す。コードモジュール３００は、実行可能または解釈可能コンピュータプログラムである。コードモジュール３００は稼動すると、ＨＴＭＬコンテンツ３０２など、ウェブブラウザ上での閲覧に適したコンテンツを生成する。コードモジュール３００は、マイクロプロセッサ（図１に示した処理ユニット１２０など）上で直接に実行可能な実行可能コードや、スクリプトエンジンまたはバーチャルマシンインタープリタの補助によって実行することのできる解釈可能コード（Ｃ＃スクリプトやＪａｖａ（登録商標）バイトコード等）など、任意のタイプのプログラムとして具体化することができる。ＨＴＭＬウェブページなどの所与のコンテンツは、単一のコードモジュールで生成する必要はなく、複数のコードモジュールで生成してもよいことに留意されたい。図４に、ウェブページ４１０が４つの領域４００、４０１、４０２、４０３に分割された例を示す。これらの各領域は、異なるコードモジュールに結び付いており、各コードモジュールは、それに対応する領域についてのコンテンツを生成する。したがって、コードモジュール３００、３０１、３０２、３０３が、それぞれ領域４００、４０１、４０２、４０３に結び付いている。領域４００は、コードモジュール３００によって生成されるコンテンツで埋められ、領域４０１は、コードモジュール３０１によって生成されるコンテンツで埋められ、他も同様である。
【００２８】
他のプログラムと同様、コードモジュール３００などのコードモジュールは、その入力がその挙動に影響を与えるものとすることができる。したがってコードモジュール３００は、コードモジュール３００への入力に基づいてコンテンツ３０２の内容を変化させることができる。図５に、コードモジュール３００が「構成ファイル」５０２から入力を受け取るのを示す。コードモジュール３００が生成するコンテンツ３０２の内容は、少なくとも部分的に、構成ファイル５０２に含まれる入力に基づく。例えば、構成ファイル５０２は、コンテンツ３０２の色、レイアウト、フォント、ソート順などを指定するパラメータを含むものとすることができる。したがって、構成ファイル５０２にどんなパラメータが記憶されているかを変更することによって、コンテンツ３０２の性質を変更することができる。構成ファイル５０２の代替バージョンを記憶しておくこともでき、これらの代替構成ファイルのうち特定の１つをコードモジュール３００の入力として使用されるように選択することにより、コードモジュール３００が特定のタイプのコンテンツを生成するようにすることができる。
【００２９】
コードモジュール３００がその入力に基づいてそのランタイム挙動を変更できることの利点は、同じコードモジュール３００を使用して異なるコンテンツ（または同じ基礎コンテンツの異形）を生成できることである。図６に、構成ファイルに基づいて異なるタイプのコンテンツを生成するためにコードモジュール３００が実施することのできる論理の例を示す。図６には、構成ファイル５０２中のパラメータがｎ個の別個のタイプのコンテンツを指定する特定の例を示すが、よりフレキシブルなパラメータ使用例もあることを理解されたい。
【００３０】
ステップ６０２で、コードモジュール３００は構成ファイル５０２から入力データを受け取る。この入力データは、コードモジュール３００がどのコンテンツを生成することになるかに影響する１つまたは複数のパラメータを含む。ステップ６０４で、どのパラメータを受け取ったかに基づいてｎ通りの切替えを実施する。例えば、構成ファイル５０２がパラメータ１を含む場合は、コードモジュール３００はＨＴＭＬコンテンツ６０８を生成する（ブロック６０６）。構成ファイル５０２がパラメータ２を含む場合は、コードモジュール３００はＨＴＭＬコンテンツ６１２を生成する（ブロック６１０）。任意の数の異なるパラメータを、このようにしてパラメータｎまで処理し、パラメータｎを受け取った場合は、コードモジュール３００はＨＴＭＬコンテンツ６１６を生成する（ブロック６１４）。
【００３１】
構成ファイル５０２に含まれるパラメータは、ｎ個の別個のコンテンツ選択肢の中から選択するようにコードモジュール３００に指示する必要はなく、コードモジュール３００の出力の性質に何らかの形で影響すればよいことを理解されたい。例えば、パラメータは、コンテンツの高さおよび幅、フォント、コンテンツを回転させる角度、コンテンツに含まれる画像の数などを指定することができる。
【００３２】
コンテンツの代替ビューまたは表示の提供
上述したように、コンテンツを生成するプログラムに異なるパラメータを提供することにより、そのコンテンツの異なるバージョンを生成することが可能である。したがって、所与のコンテンツをどのように表示させたいかに関する選択をユーザに与えることができる。例えば、検索エンジンを使用してウェブ検索を行うユーザには、結果において識別されるウェブページのサムネイル画像付きで、またはサムネイル画像なしで結果を表示させる選択を与えることができる。
【００３３】
図７に、コンテンツをどのように閲覧するかをユーザが選択できるようにする例示的なユーザインタフェースを示す。図７には、ブラウザ２００が検索エンジンによって提供された結果のページ７０１を表示しているのが示してある。図７の例では、ユーザは、クエリ「ｓａｔｕｒｎ」に基づいて検索を実施した（クエリボックス７０４で示す）。結果は、ウェブサイトのリスト７０２を含む。リスト７０２中の各項目は、検索エンジンによって突き止められたウェブサイトのタイトルおよび記述を示している。先の考察から、ページ７０１は、コードモジュール３００などのプログラムによって生成されたことが理解されるであろう。例えば、コードモジュール３００は、クエリ「ｓａｔｕｒｎ」に応答したウェブページに関する生データを検索エンジンの「バックエンド」から受け取ることができる。次いでコードモジュール３００は、この生データをウェブページのタイトルおよび記述のリストとして表示するウェブページ７０１を生成することができる。
【００３４】
ページ７０１はプルダウンメニュー７０６を含むが、これは、ユーザが検索結果に対する代替ビューを選択できるようにするものである。例えば、プルダウンメニュー７０６は、図８に示すような様々なビュー選択肢をリストするものとすることができる。図８の強調表示された選択で示すように、現在のビューは「テキストリスト」である。異なるビューで結果を見たい場合は、ユーザは、「サムネイル／カテゴリ」などの異なる選択肢をプルダウンメニュー７０６から選択することができる。ユーザがこのビューを選択すると、ユーザの選択は検索エンジンに返送され、検索エンジンは、結果を異なるビューで再レンダリングすることができる。図９に、図７の結果が異なるビューでレンダリングされたときにどうなるかを示す。新しいページ９０１がブラウザ２００に送信され、ブラウザ２００は、クエリ「ｓａｔｕｒｎ」に関する情報を表示する。ただし、ページ９０１はこの場合、惑星の土星に関する情報（参照番号９１０）のカテゴリと、自動車銘柄のサターンに関する情報（参照番号９１２）のカテゴリとに分割された結果を示す。さらにページ９０１は、各カテゴリの最上位の結果についてのサムネイル画像９２０、９２２も示す。
【００３５】
検索結果を提供する検索エンジンは、異なる２つの構成ファイルを使用して単一の生成プログラムを実行することにより、図７に示すビューを図９に示すビューに変更することができることが理解されるであろう。例えば、コードモジュール３００（図３に示す）は、クエリ「ｓａｔｕｒｎ」に応答したウェブページに関する生データを受け取って、この生データに基づいて結果ページを生成するプログラムとすることができる。コードモジュール３００はまた、検索結果を表示するためにどのビューをコードモジュール３００が使用すべきかを示すデータを、構成ファイル５０２から受け取ることもできる。したがって、検索エンジンは単に、異なる構成ファイルで結果を生成するプログラムを再実行し、再生成された結果を含むページをユーザのブラウザに送信するだけで、検索結果のビューを変更することができる。
【００３６】
あるビューでコンテンツを送信した後で、ユーザの選択に従って別のビューで再送信するプロセスを、図１０にフローチャートで示す。最初に、コンテンツを生成するプログラム（例えばコードモジュール３００）を実行して、ウェブブラウザ上で閲覧可能な材料を生成する（１００２）。通常このプログラムは、検索エンジンのフロントエンドなど、コンテンツサーバ上で実行される。プログラムはデフォルト構成ファイルを使用して実行される。したがってプログラムは、デフォルトのパラメータセットを受け取り、デフォルトビューでコンテンツをレンダリングする。コンテンツを含むページを生成した後、このページを、ユーザのブラウザ上でレンダリングされるようにユーザのマシンに送信する（ブロック１００４）。
【００３７】
ユーザがブラウザ上のコンテンツを閲覧している間、ユーザは、例えばコンテンツのページの一部であるプルダウンメニュー７０６（図７に示す）を使用して、異なるビューを選択することができる（ブロック１００６）。ユーザの新しいビュー選択は、コンテンツサーバに送られる（ブロック１００８）。コンテンツサーバはこの選択を受け取り（ブロック１０１０）、ユーザのビュー選択に基づいてコンテンツを再生成する（ブロック１０１２）。好ましい一実施形態では、この再生成は、ブロック１００２で実行したのと同じコンテンツ生成プログラムを、ただし異なる構成ファイルで、再実行することによって行うことができる。前述のように、この異なる構成ファイルはデフォルト構成ファイルとは異なるパラメータを含み、したがってコンテンツ生成プログラムは、これらの異なるパラメータに応答して異なるコンテンツを生成することになる。
【００３８】
異なる構成ファイルでコンテンツを再生成した後、再生成したコンテンツをユーザのマシンに再送信し（ブロック１０１４）、ユーザのブラウザ上に再表示する。
【００３９】
図１１に、コンテンツ生成プログラム（コードモジュール３００）が、どのビューが選択されたかに基づいて、どのように異なる構成ファイルを使用することができるかを示す。構成ファイル５０２（１）は、図８で「テキストリスト」と呼んだビューに対応し、構成ファイル５０２（２）は、「カテゴリ／サムネイル」と呼んだビューに対応し、構成ファイル５０２（３）は、「地図付きテキスト」と呼んだビューに対応する。構成ファイル５０２（１）から５０２（３）はすべて、コードモジュール３００が稼動するマシン上に記憶されている。ただしコードモジュール３００は、所与の時に、これらのファイルのうちの１つだけをパラメータのソースとして使用する。図１１の例では、コードモジュール３００は、ユーザが「カテゴリ／サムネイル」をビューとして選択したのに基づいてコンテンツを生成しており、したがって構成ファイル５０２（２）をパラメータのソースとして使用する。構成ファイル５０２（２）は、この例では、図９に示した形式のコンテンツをコードモジュール３００に生成させるパラメータを含む。
【００４０】
以上の例は、単に説明のために提供したものであり、本発明を限定すると解釈されるものでは決してないことに留意されたい。本発明を様々な実施形態に関して述べたが、本明細書で使用した語は、限定する語ではなく、記述および例示の語であることを理解されたい。さらに、本発明を特定の手段、材料、および実施形態に関して本明細書に述べたが、本発明は、本明細書に開示した詳細に限定しない。そうではなく本発明は、添付の特許請求の範囲に含まれるものなど、機能的に等価なすべての構造、方法、および使用に及ぶ。本明細書の教示の利益を得た当業者なら、本発明に多くの修正を行うことができ、本発明の範囲および趣旨を逸脱することなくその態様に変更を加えることができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の態様を実施することのできる例示的なコンピューティング環境のブロック図である。
【図２】例示的なウェブブラウザのユーザインタフェースのブロック図である。
【図３】ウェブコンテンツを生成する第１の例示的なコードモジュールのブロック図である。
【図４】コンテンツ生成モジュールが結び付いた複数の領域を有する例示的なコンテンツレイアウトのブロック図である。
【図５】構成ファイルに基づいてウェブコンテンツを生成する、図３の例示的なコードモジュールのブロック図である。
【図６】図５に示した例示的なコードモジュールによって実施されるプロセスのフロー図である。
【図７】本発明の態様による第１の例示的なビューまたは表示のブロック図である。
【図８】本発明の態様による、ビューを選択するためのユーザ操作可能要素のブロック図である。
【図９】本発明の態様による第２の例示的なビューまたは表示のブロック図である。
【図１０】本発明の態様による、ユーザがビューを選択できるようにするための例示的なプロセスのフロー図である。
【図１１】本発明の態様による、種々の構成ファイルを使用してビューを変更する例示的な構造のブロック図である。
【符号の説明】
【００４２】
１００  コンピューティング環境
１１０  コンピュータ
１２０  処理ユニット
１２１  システムバス
１３０  システムメモリ
１３１  読取り専用メモリ（ＲＯＭ）
１３２  ランダムアクセスメモリ（ＲＡＭ）
１３３  ＢＩＯＳ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  その他のプログラムモジュール
１３７  プログラムデータ
１４０  取外し不可能な不揮発性メモリインタフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  その他のプログラムモジュール
１４７  プログラムデータ
１５０  取外し可能な不揮発性メモリインタフェース
１５１  磁気ディスクドライブ
１５２  磁気ディスク
１５５  光ディスクドライブ
１５６  光ディスク
１６０  ユーザ入力インタフェース
１６１  ポインティングデバイス
１６２  キーボード
１７０  ネットワークインタフェース
１７１  ローカルエリアネットワーク（ＬＡＮ）
１７２  モデム
１７３  ワイドエリアネットワーク（ＷＡＮ）
１８０  リモートコンピュータ
１８１  メモリ記憶デバイス
１８５  リモートアプリケーションプログラム
１９０  ビデオインタフェース
１９１  モニタ
１９５  出力周辺インタフェース
１９６  プリンタ
１９７  スピーカ
２００  ウェブブラウザ
２０２  ナビゲーションバー
２０４  ボックス
２０６  閲覧領域
２０８  タイトルバー
２１０  メニューバー
２１２  ボタン
３００  コードモジュール
３０１  コードモジュール
３０２  コードモジュール
３０２  ＨＴＭＬコンテンツ
３０３  コードモジュール
４００  領域
４０１  領域
４０２  領域
４０３  領域
４１０  ウェブページ
５０２  構成ファイル
５０２（１）構成ファイル
５０２（２）構成ファイル
５０２（３）構成ファイル
７０１  結果のページ
７０２  ウェブサイトのリスト
７０４  クエリボックス
７０６  プルダウンメニュー
９１０  惑星の土星に関する情報
９１２  自動車銘柄のサターンに関する情報
【図１】
2004259277.tif 000003
【図２】
2004259277.tif 000004
【図３】
2004259277.tif 000005
【図４】
2004259277.tif 000006
【図５】
2004259277.tif 000007
【図６】
2004259277.tif 000008
【図７】
2004259277.tif 000009
【図８】
2004259277.tif 000010
【図９】
2004259277.tif 000011
【図１０】
2004259277.tif 000012
【図１１】
2004259277.tif 000013