[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2004259276A - コンテンツ項目を生成するためのシステム、方法および媒体 - Google Patents

コンテンツ項目を生成するためのシステム、方法および媒体 Download PDF

Info

Publication number
JP2004259276A
JP2004259276A JP2004048656A JP2004048656A JP2004259276A JP 2004259276 A JP2004259276 A JP 2004259276A JP 2004048656 A JP2004048656 A JP 2004048656A JP 2004048656 A JP2004048656 A JP 2004048656A JP 2004259276 A JP2004259276 A JP 2004259276A
Authority
JP
Japan
Prior art keywords
content
view
wireframe
generating
slot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004048656A
Other languages
English (en)
Other versions
JP2004259276A5 (ja
Inventor
Mauricio Lomelin-Stoupignan
ロメリン−ストウピニャン マウリシオ
Calbucci Marcelo Aizenstein Furman
アイゼンスタイン ファーマン カルバッチ マルセロ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004259276A publication Critical patent/JP2004259276A/ja
Publication of JP2004259276A5 publication Critical patent/JP2004259276A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】 コンテンツの様々なコンポーネントをモジュール化するウェブコンテンツを提示するためのアーキテクチャを提供する。
【解決手段】 ワイヤフレームは、コンテンツのページの空間領域(スロット)を定義する。ビューは、ワイヤフレーム内のスロット間のマッピングまたはバインディング、および、コンテンツを生成するオブジェクトを定義する。レンダリングエンジンはスロットを、スロットにバインドされたオブジェクトに基づいたコンテンツで埋める。スロットをコントロール、拡張可能スタイルシート言語(XSL)タグまたは他のビューにバインドさせることができる。コントロールは、スロットを埋めるためのコンテンツを生成する実行可能または解釈可能コードである。XSLプロセッサはそのようなコンテンツを、XSLタグに基づいて生成することもできる。
【選択図】 図13

Description

本発明は一般にコンピュータ技術の分野に関する。より詳細には、本発明は、ポータルサイトおよび検索エンジンによって作成されたウェブページのような、ウェブコンテンツを動的に作成するために使用することができるインフラストラクチャを提供する。
従来のウェブページは、ハイパーテキストマークアップ言語(HTML)または拡張可能ハイパーテキストマークアップ言語(XHTML)などのマークアップ言語で記述され、ウェブブラウザによってレンダリングするのに適したコンテンツを備える。いくつかのウェブページは静的であり、すなわち、一定で不変のHTMLまたはXHTMLコンテンツの一部を、クライアントマシンにダウンロードしてブラウザで表示することができるファイルに格納することができる。しかし、検索サイト、ポータルサイト、電子商取引サイトによって提供されたコンテンツなど、大部分の商用ウェブコンテンツは静的でなく、むしろ動的に生成され、ユーザに合わせてパーソナライズすることができるか、あるいはユーザからのある入力に応答して生成することができる。
動的に生成されるコンテンツは、その目的のために設計されたプログラムによって生成される。このようなプログラムは、ルールまたはプロシージャのセットに従ってコンテンツを作成する実行可能または解釈可能コードのモジュールである。たとえば、ユーザがクエリを検索エンジンサイトに送信するとき、検索エンジンは様々なソース(たとえば、既知のウェブページのデータベース)を調べて結果を生成し、次いで、検索エンジンサイトにあるコンテンツ生成プログラムが、結果を含むHTMLコンテンツのページを生成し、そのページをユーザに送信する。明らかに、このような結果ページは動的に生成されなければならず、これは結果ページのコンテンツが、どのようなクエリをユーザが出したかに応じて異なるからである。
既存のソフトウェアはウェブコンテンツを動的に生成することに有効であるが、このようなソフトウェアは、プログラムが生成する必要のあるコンテンツに創造的な変更があるとき、柔軟性の欠乏を欠点として有する。たとえば、検索エンジンは、その検索エンジンが探し出したウェブページのタイトルのリストとして検索結果を表示するプログラムを使用することができる。しかし、検索エンジンのオペレータが、これらの結果を提示する新しい方法(たとえば、このリストを、探し出したウェブページのサムネイル画像により向上させること)を導入することを望む場合、一般にこの変更を実現するための唯一の方法は、プログラムを書き換えること(または少なくとも、プログラムに、サムネイル画像の包含をサポートするコードを追加すること)である。
大部分のウェブコンテンツを、より小さなコンテンツ部品のモジュールである「ビルディングブロック」から構築されるものとみなすことができる。たとえば、検索結果ページは、コンテンツの様々な別々の部品からなる(たとえば、ロゴ、著作権表示、最新検索の結果、別の検索クエリを入力するための検索ボックス、広告など)。理論上は、ウェブコンテンツのモジュールの特性は、コンテンツ設計者が実行時間に提供するモジュールのビルディングブロックからコンテンツを構築することによって、単一のプログラムがコンテンツ生成プロセスを駆動できることを示唆する。コンテンツへの創造的な変更は、このようなプログラムへの変更を必要とせず、このプログラムが単に、異なるビルディングブロックを使用して異なるコンテンツを生成するように企図することができるからである。しかし、従来のコンテンツ生成ソフトウェアは、ソフトウェア自体を変更することを伴わず、どのような種類の創造的な変更をコンテンツに対して行なうことができるかに関して、極めて制限されている。
前述に鑑みて、従来技術の欠点を克服するシステムの必要性がある。
本発明は、ウェブページなど、コンテンツを生成するためのインフラストラクチャを提供する。このインフラストラクチャは、コンテンツのページを、別々に設計、実行および修正することができるより小さなコンポーネントから構築することができるという考えに基づいている。本発明により、これらのより小さなコンポーネント、ならびにこれらが組み込まれる方法を、コンテンツ生成ソフトウェアに実行時間で指定することができる。
本発明によれば、コンテンツの作成は、「ワイヤフレーム」、「ビュー」およびコンテンツ生成オブジェクトの組み合わせによって指定される。ワイヤフレームは、コンテンツ部品の空間領域を定義するデータ構造である。たとえば、ワイヤフレームは、4つの矩形領域を有し、ページの最上部から最下部まで垂直に実行するように、ウェブページを定義することができる。これらの各領域は「スロット」と呼ばれる。「ビュー」は、ワイヤフレーム内の各スロットをコンテンツ生成オブジェクト、または、コンテンツ生成オブジェクトのシーケンスにバインドする(あるいはまた、特定のスロットを空となるように指定する)データ構造である。
ビューをレンダリングするために、レンダリングエンジンは、ビュー内で識別されたワイヤフレームにアクセスし、そのワイヤフレーム内の各スロットについて、そのスロットにバインドされたコンテンツ生成オブジェクトにコンテンツを生成させる。次いで、レンダリングエンジンは、オブジェクトによって生成されたコンテンツをスロットに入れる。このプロセスは、ワイヤフレーム内の各スロットについて繰り返される。レンダリングエンジンの出力は、コンテンツ部品(たとえば、HTMLウェブページ)であり、これはワイヤフレームの適切な領域において各コンテンツ生成オブジェクトによって生成されたコンテンツを含む。
コンテンツ生成オブジェクトには、「コントロール」、拡張可能スタイルシート言語(XSL)タグ、およびビューが含まれる。コントロールは、スロットに入れられるHTMLまたはXHTMLコンテンツを生成する実行可能または解釈可能コードである。XSLタグは、XSL処理ソフトウェアによって使用され、HTMLまたはXHTMLコンテンツを生成することができるデータである。ビューを評価することで、結果としてコンテンツの生成となるので、ビュー自体がコンテンツ生成オブジェクトである。したがって、コンテンツを、実際には最上位ビューのサブビュー、サブサブビューなどであるビューから、階層的に構築することができる。レンダリングエンジンが、サブビューにバインドされるスロットに遭遇すると、レンダリングエンジンはそれ自体を再帰的に呼び出して、そのスロットのためのコンテンツをそのビューに基づいて生成することができる。
本発明の1つの特徴によれば、コントロールは、構成ファイルに含まれたパラメータに基づいて、異なる振舞を提示することができる。したがって、所与のコントロールを、どのパラメータが構成ファイル内で提供されるかに基づいて、コンテンツ部品の異なるバリエーションを生成するように設計することができる。
本発明の他の特徴を以下で説明する。
前述した概略、ならびに、以下の好ましい実施形態の詳細な説明は、添付の図面と共に読まれるとき、よりよく理解される。本発明を例示するため、図面において本発明の例示的構成を示すが、本発明は、開示された特定の方法および手段に限定されない。
概要
多くの商用ウェブコンテンツは、定義された方法でグラフィカルに組み込まれる、より小さなコンテンツの部品から構築される。本発明は、コンテンツプロバイダが、どのようにコンテンツが構築されるかを、これらのより小さな部品に基づいて指定できるようにするインフラストラクチャを提供する。このインフラストラクチャは、レンダリングエンジンを含み、コンテンツをコンテンツプロバイダの仕様に基づいて動的に生成する。
例示的コンピューティング環境
図1は、本発明の態様を実施することができる例示的コンピューティング環境を示す。コンピューティング環境100は、適切なコンピューティング環境の一例でしかなく、本発明の用途または機能性の範囲についてのいかなる限定も示唆するように意図されていない。コンピューティング環境100はまた、例示的オペレーティング環境100に例示したコンポーネントの任意の1つまたは組み合わせに関するいかなる依存性または必須要件も有するように解釈されるべきではない。
本発明は、多数の他の汎用または専用コンピューティングシステム環境または構成により動作可能である。本発明と共に使用するのに適しているだろう周知のコンピューティングシステム、環境および/または構成の例には、限定するものではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、組込みシステム、上記のシステムまたはデバイスなどのいずれかを含む分散コンピューティング環境などが含まれる。
本発明を一般に、プログラムモジュールのような、コンピュータによって実行されるコンピュータ実行可能命令に関連して説明することができる。一般に、プログラムモジュールにはルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行するか、あるいは特定の抽象データ型を実装する。本発明はまた分散コンピューティング環境において実施することもでき、この環境ではタスクが、通信ネットワークまたは他のデータ伝送媒体を通じてリンクされるリモート処理デバイスによって実行される。分散コンピューティング環境では、プログラムモジュールおよび他のデータが、記憶デバイスを含むローカルおよびリモートのコンピュータ記憶媒体内に位置することができる。
図1を参照すると、本発明を実施するための例示的システムは、コンピュータ110の形態で、汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントには、それだけに限定されないが、処理装置120、システムメモリ130、および、システムメモリを含む様々なシステムコンポーネントを処理装置120に結合するシステムバス121を含むことができる。システムバス121は、いくつかのタイプのバス構造のいずれかにすることができ、これには、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスが含まれる。例として、限定ではなく、このようなアーキテクチャには、ISA(Industrial Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Extended Industrial Standard Architecture)バス、VESA(Video Electronics Standards Association)ローカルバス、およびPCI(Peripheral Components Interconnect)バス(メザニンバスとしても知られる)が含まれる。
コンピュータ110は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によってアクセスすることができる任意の使用可能な媒体とすることもでき、これには、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体が含まれる。例として、限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブルの媒体を含み、これらはコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなど、情報の格納のためのいずれかの方法または技術において実施される。コンピュータ記憶媒体には、それだけに限定されないが、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electronically Erasable and Programmable Read Only Memory)、フラッシュメモリもしくは他のメモリ技術、CD−ROM、DVD(Digital Versatile Disk)もしくは他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶デバイス、または、所望の情報を格納するために使用することができ、コンピュータ110によってアクセスすることができる他のいかなる媒体もが含まれる。通信媒体は典型的に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の伝送メカニズムなどの変調データ信号中に具現化する任意の情報配信媒体をも含む。「変調データ信号」という用語は、信号中に情報を符号化するような方法でその特性の1つまたは複数の組を有するか、または変化されている信号を意味する。例として、限定ではなく、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに、音響、RF(Radio Frequency)、赤外線および他の無線媒体などの無線媒体が含まれる。上記のいずれの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
システムメモリ130は、揮発性および/または不揮発性メモリの形態におけるコンピュータ記憶媒体を含み、これは読み取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などである。BIOS(Basic Input/Output System)133は、起動中など、コンピュータ110内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、通常はROM131に格納される。RAM132は通常、処理装置120によって即時アクセス可能および/または現在動作中であるデータおよび/またはプログラムモジュールを含む。例として、限定ではなく、図1は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136およびプログラムデータ137を例示する。
コンピュータ110はまた、他のリムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。例としてのみ、図1は、非リムーバブル、不揮発性の磁気媒体に対する読み書きを行なうハードディスクドライブ141、リムーバブル、不揮発性磁気ディスク152に対する読み書きを行なう磁気ディスクドライブ151、および、CD−ROMまたは他の光媒体など、リムーバブル、不揮発性の光ディスク156に対する読み書きを行なう光ディスクドライブ155を例示する。例示的オペレーティング環境で使用することができる他のリムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータ記憶媒体には、それだけに限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体素子(solid state)RAM、半導体素子ROMなどが含まれる。ハードディスクドライブ141は通常システムバス121に、インターフェイス140などの非リムーバブルメモリインターフェイスを通じて接続され、磁気ディスクドライブ151および光ディスクドライブ155は通常システムバス121に、インターフェイス150などのリムーバブルメモリインターフェイスによって接続される。
上述し、図1に例示したドライブおよびそれらの関連付けられたコンピュータ記憶媒体は、コンピュータ110用のコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの記憶装置を提供する。図1では、たとえば、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146およびプログラムデータ147を格納するものとして例示される。これらのコンポーネントを、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136およびプログラムデータ137と同じものにも異なるものにもすることができることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146およびプログラムデータ147にはここで異なる番号が与えられて、最低でも、それらが異なるコピーであることが例示される。ユーザはコマンドおよび情報をコンピュータ110へ、キーボード162、および、一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス161などの入力デバイスを通じて入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれる可能性がある。これらおよび他の入力デバイスがしばしば処理装置120へ、システムバスに結合されるユーザ入力インターフェイス160を通じて接続されるが、これを、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)など、他のインターフェイスおよびバス構造によって接続することができる。モニタ191または他のタイプの表示デバイスもシステムバス121へ、ビデオインターフェイス190などのインターフェイスを介して接続される。モニタに加えて、コンピュータはまた、スピーカ197およびプリンタ197など、出力周辺インターフェイス195を通じて接続することができる他の周辺出力デバイスを含むこともできる。
コンピュータ110はネットワーク環境において、リモートコンピュータ180など、1つまたは複数のリモートコンピュータへの論理接続を使用して動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードにすることができ、通常は、コンピュータ110に関連して上述した要素の多数またはすべてを含むが、記憶デバイス181のみを図1に例示している。図1に示す論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークも含むことができる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
LANネットワーキング環境において使用するとき、コンピュータ110がLAN171へ、ネットワークインターフェイスまたはアダプタ170を通じて接続される。WANネットワーキング環境において使用するとき、コンピュータ110は通常、モデム172、またはインターネットなどのWAN173を介して通信を確立するための他の手段を含む。モデム172を内部または外部にすることができ、システムバス121へ、ユーザ入力インターフェイス160または他の適切なメカニズムを介して接続することができる。ネットワーク環境では、コンピュータ110に関連して示したプログラムモジュールまたはその一部を、リモート記憶デバイスに格納することができる。例として、限定ではなく、図1はリモートアプリケーションプログラム185を記憶デバイス181上に存在するものとして例示する。図示のネットワーク接続は例示的であり、通信リンクを複数のコンピュータの間で確立する他の手段を使用できることは理解されよう。
例示的ウェブブラウザ
図2は、例示的ウェブブラウザ200のビジュアルインターフェイスを示す。当技術分野で知られているように、ウェブブラウザは、ユーザがあるタイプのコンテンツ(たとえば、HTMLコンテンツ)と対話し、このようなコンテンツをネットワークから検索して取ってくることができるようにする、1つのソフトウェアである。ブラウザ200は、たとえば、コンピュータ110(図1)上に格納され、処理装置120(図1)上で実行する、ソフトウェアを構成することができる。ブラウザ200は、インターネットなど、コンピュータ110が接続されるワイドエリアネットワーク173(図1)からのコンテンツにアクセスすることができる。典型的に、ブラウザ200はまた、コンピュータ110上にローカルに格納されているコンテンツにアクセスすることもできる。
図2の例示的ブラウザは様々な情報をユーザに表示する。詳細には、ブラウザ200はナビゲーションバー202をユーザに表示する。ナビゲーションバー202は、ボックス204を含み、この中にユーザがURL(Uniform Resource Locator)を入力することができ、これはブラウザを特定のコンテンツ項目に向けるためである。図2の例では、ユーザがURLのhttp://search.msn.comをボックス204に入力しており、それにより、ユーザがそのURLによって識別されたコンテンツにアクセスすることを望むことを示す。ブラウザ200は、このコンテンツを、インターネット上でそれが位置することができるどこからでも検索し、コンテンツをビューイングエリア206に表示する。図2の例では、コンテンツがHTMLまたはXHTMLで配信される。(URL内の「http」という句は「ハイパーテキスト転送プロトコル」を意味し、URL内のその表現は、基礎となるコンテンツがHTMLまたはXHTMLコンテンツであることを示す。)ブラウザ200は、HTMLおよび/またはXHTMLインタプリタを含むか、そうでない場合はそれにアクセスし、ブラウザ200によって受信されたHTMLまたはXHTMLコンテンツをレンダリングする。図2の例では、ブラウザ200は、コンテンツのタイトル(「MSN Search − More Useful Everyday」)をタイトルバー208に表示する。
ブラウザ200のような、典型的なブラウザは、表示されたコンテンツを印刷、メール送信または保存すること、「お気に入り」または「ブックマーク」のリストを使用して他のコンテンツにナビゲートすること、テキストのコンテンツ用のデフォルトフォントを変更することなど、ユーザが様々な機能を実行することができるようにする。この機能性はユーザに、メニューバー210および/またはボタン212を用いて並べられている。
以下で述べるように、本発明は、ビューイングエリア206に表示されるコンテンツのような、コンテンツを生成するためのインフラストラクチャを提供する。
コンテンツの提示を作成するためのデータ構造
本発明は、ウェブページに利用できるXHTMLコンテンツのような、コンテンツが作成されるプロセスを汎用化および抽象化するインフラストラクチャを提供する。(以降、ブラウザでレンダリング可能なコンテンツの例は、そのコンテンツをXHTMLコンテンツであるとして指すものとする。しかし、本発明は、HTML、ワイヤレスマークアップ言語(WML)、音声拡張マークアップ言語(VXML)など、他のタイプのコンテンツを生成するために使用できることは理解されよう。)
本発明のインフラストラクチャは4種類のデータ構造、すなわち、ワイヤフレーム、ビュー、コントロールおよび構成ファイルを使用する。
「ワイヤフレーム」は、コンテンツのページの空間領域を定義するデータ構造である。各領域は「スロット」と呼ばれる。
「コントロール」は、ワイヤフレームによって定義された特定のスロット内に入れられるXHTMLコンテンツを動的に生成する、実行可能または解釈可能コードを備える。
「ビュー」は、特定のスロットと特定のコントロール(または特定のコントロールのシーケンス)との間のマッピングを作成するデータ構造である。ビューはまた、拡張可能スタイルシート言語(XSL)タグまたは別のビューをスロットにマップすることもでき、(ビューはまた、XSLタグまたはビューのシーケンスをスロットにマップすることもできる)、XSLタグおよびビューの、スロットへのマッピングを、以下でより詳細に述べる。
「構成ファイル」は、コントロールによってそれらの振舞に影響を与えるために使用されるデータを含む。たとえば、コントロールは、コンテンツの特定の部分の2つ以上の異なるバリエーションを生成することができ、構成ファイルは、これらの異なるバリエーションのどれが生成されるべきかを指示するパラメータを含むことができる。
図3は例示的ワイヤフレーム300を示す。ワイヤフレーム300は、コンテンツの概念ページを、上述のように「スロット」と呼ばれる領域に分割する。図3の例では、4つのスロット、304(1)、304(2)、304(3)および304(4)がある。各スロットは名前を有し、この例では、スロット304(1)から304(4)の名前はそれぞれ「slot_header」、「slot_results」、「slot_sidebar」および「slot_footer」である。ワイヤフレーム300自体も名前を有する(この例では「Wireframe_Site」)。後述のように、名前は、ビューデータ構造でワイヤフレームおよび各スロットを識別するために使用される。
典型的に、ワイヤフレームはXHTML構造として表現される。したがって、図3の例示的ワイヤフレームを以下のように定義することができる。
Figure 2004259276
上記を見るとわかるように、上記のXHTML定義はコンテンツの4つの領域、すなわち、スロット名「slot_header」を有する最上部の領域、スロット名「slot_footer」を有する最下部の領域、ならびに、最上部および最下部の領域の間の2列のテーブルをレイアウトし、左側の列の名前は「slot_results」であり、右側の列の名前は「slot_sidebar」である。
図4は、XHTMLコンテンツ402を生成する例示的コントロール400を示す。コントロール400は名前(この例では「Control_Footer」)を有し、後述するように、名前はビューデータ構造においてコントロールを識別するために使用される。コントロール400を使用して、ワイヤフレーム300内の「slot_footer」という名前のスロットに挿入されるコンテンツを生成することができる。
コントロール400は、実行中にXHTMLコンテンツ402を動的に生成するように構成された実行可能または解釈可能コードを備える。コントロール400は様々な方法で実施されることができる。たとえば、コントロール400は、マシン実行可能コード(.exeまたは.dllファイルなど)、解釈可能スクリプト(Java(登録商標)またはC#言語におけるスクリプトなど)、仮想マシンコード(Java(登録商標)バイトコードなど)などを備えることができる。
以下は、コントロール400の関数を記述する擬似コードの一例である。(以下の擬似コードを上述の実行可能または解釈可能コンポーネントのいずれにおいても実施できることは、容易に理解されよう。)
Figure 2004259276
上記の擬似コードは、コントロール400を、XHTMLコンテンツを生成して戻す「Control_Footer」と名前付けされた関数として定義する。この例では、Control_Footerは、特定のサイズおよび背景色を有し、かつ「Copyright 2003 Microsoft Corporation−All Rights Reserved」などのテキスト文字列(または、何であれファイル「copyright_notice.txt」内に含まれるテキスト文字列)を含む、テーブルのためのXHTMLコードを戻す。
上述のように、コントロールをワイヤフレームのスロットに、「ビュー」と呼ばれる構造を用いてマップ(または「バインド」)させることができる。図5は、ワイヤフレーム300のスロットへのコントロールの例示的マッピングを示す。この例では、コントロール420(「Control_Header」という名前)がスロット304(1)にマップし、コントロール410(「Control_Results」)がスロット304(2)にマップし、コントロール430(「Control_Sidebar」)がスロット304(3)にマップし、コントロール400(図4に関連して上述した「Control_Footer」)がスロット304(4)にマップする。このマッピングは、XHTMLコンテンツのページをワイヤフレーム300に基づいて定義し、スロット304(1)、304(2)、304(3)および304(4)によって定義された各領域が、それぞれコントロール420、410、430および400によって生成されたXTHMLコンテンツで満たされる。このマッピングはビュー500を表現する。
図5に示すビュー500を、以下のデータ構造として表現することができる。
Figure 2004259276
上に示したデータ構造は、名前「view_Classic」をビューに割り当てる。典型的なシステムはいくつかのビューを有し、名前は、ビューがいくつかのビューの中から識別されることを可能とする。見てわかるように、このデータ構造は、各スロットについての「バインディング」を含み、スロットに「バインド」される特定のコントロールを示す。
上記の例は単一のコントロールが各スロットにバインドされることを示すが、複数のコントロールを単一のスロットにバインドさせて、ある順序で実行されるようにすることができることに留意されたい。したがって、「slot_header」についてのバインディングを以下のように読むことができる。
Figure 2004259276
このバインディングは、slot_headerをコンテンツで満たすために、「Control_A」、「Control_B」および「Control_C」という名前のコントロールが、示された順序で実行されることを示す。
加えて、上記の例は、コントロールのみがスロットにバインドされることを示すが、前述のように、本発明はまたビューまたはXSLタグをスロットにバインドさせることも可能にする。スロットへのコントロールのバインディングは、最も単純なバインディングの例である。しかし、スロットバインディングの概念を汎用化することができ、図6〜12はこのような汎用化の一例を示す。
ビューを使用してコンテンツを指定する例
上述のように、コントロールは、XHTMLコンテンツを生成するソフトウェアオブジェクトである。コントロールをスロットに「マップ」または「バインド」することは、そのコントロールによって生成されているXHTMLコンテンツでそのスロットが満たされることを意味する。しかし、コントロールは、XHTMLコンテンツを生成する唯一の種類のオブジェクトではない。詳細には、XSLタグを評価してXHTMLコンテンツを生成できることが当技術分野で知られている。加えて、ビューが評価されて適切なコンテンツがワイヤフレームのスロットに配置されるとき、この評価の結果はXHTMLコンテンツであり、そのためビューは、XHTMLコンテンツを生成するさらにもう1つのオブジェクトである。これらの事実を考慮すると、XSLタグおよびビュー、ならびに、XHTMLコンテンツを生成するために評価することができる他のいかなる種類のオブジェクトも、スロットにマップさせることができることがわかる。
図6〜11は、ワイヤフレーム300における「slot_header」という名前のスロット(図3)にバインドさせることができるビューを構築する方法を示す。前の例のように、ビューは、特定のワイヤフレームについてのスロットバインディングを含み、ビューで使用されるワイヤフレームを定義することが必要である。図6は、「WireFrame_Header」という名前のワイヤフレーム600を示す。ワイヤフレーム600は4つのスロット602(1)、602(2)、602(3)および602(4)を有し、それぞれ「slot_big7」、「slot_banner」、「slot_sharkfin」および「slot_querybox」という名前である。このワイヤフレームを、以下のデータ構造によって定義することができる。
Figure 2004259276
図7〜10は、ワイヤフレーム600内のスロット602(1)から602(4)にバインドされる様々なオブジェクトを示す。
図7は、「Big7」という名前のXSLタグ700を示す。XSLタグ700は、XSLデータに関連付けられ、適切なXSL処理ソフトウェアを用いて、search.msn.comウェブサイトの米国バージョンの最上部に現れる「ビッグ7」リンク702を含むXHTMLコンテンツを生成するために使用することができる。これらの「ビッグ7」リンクは、「MSNホーム」、「マイMSN」、「Hotmail」、「検索」、「ショッピング」、「マネー」および「ピープル&チャット」である。
図8は、もう1つのXSLタグ800を示し、「Banner」という名前である。XSLタグ800をXSL処理ソフトウェアによって、XSLタグ700と同じ方法で評価することができる。しかし、XSLタグ800はバナー広告802を生成する。図8の例では、このバナー広告は、レドモンド大学のための広告である。
図9は、「Control_Sharkfin」という名前のコントロール900を示す。コントロール900は、曲線のグラフィック(参照符号902)の隣にMSNという文字を示すXHTMLコンテンツを生成し、これはsearch.msn.comウェブサイトに現れる。(このグラフィックの名前は、曲線が示唆するサメの背びれに由来する。)
図10は、「View_QueryBox」という名前のビュー1000を示す。ビュー500(図5に関連して上述)のように、ビュー1000は、ワイヤフレームの複数のスロットの間のマッピングまたはバインディング、および、これらのスロットのためのコンテンツを生成するオブジェクト(たとえば、コントロール、XSLタグまたはビュー)を表現する。図10の例では、ワイヤフレーム1002が2つのスロット1004(1)および1004(2)を有し、それぞれ「slot_searchbox」および「slot_polead」という名前である。ビュー1000は、スロット1004(1)「slot_searchbox」を、その中にユーザがクエリを打ち込むことができるボックス1006、および、ユーザがクリックしてクエリを検索エンジンに送信することができる「go」ボタン1008のためのXHTMLコンテンツを生成するオブジェクトにバインドする。スロット1004(2)(「slot_polead」)は、広告1010のためのXHTMLコンテンツを生成するオブジェクトにバインドされる。
XSLタグ700および800、コントロール900、およびビュー1000を、ワイヤフレーム600(図6)のスロットにバインドするビューを作成することができる。図11は、このようなバインディングを示す。XSLタグ700(「Big7」)がスロット602(1)(「slot_big7」)にバインドされる。XSLタグ800(「Banner」)がスロット602(2)(「slot_banner」)にバインドされる。コントロール900(「Control_Sharkfin」)がスロット602(3)(「slot_sharkfin」)にバインドされる。ビュー1000(「View_QueryBox」)がスロット602(4)(「slot_querybox」)にバインドされる。このバインディングによって定義されたビュー1100を、以下のデータ構造として表現することができる。
Figure 2004259276
上記のデータ構造は、ビュー1100に「view_header」という名前を与え、図11に示すバインディングを作成する。上の例では、スロットにバインドされるオブジェクトの各タイプの前に、そのタイプについての指定が来る。たとえば「xsl;Banner」で「Banner」がXSLタグであることを示し、同様に「ctl:Control_Sharkfin」および「view:View_Querybox」がコントロールおよびビューを示す。このタイプの指定を使用することは好ましく、これはコントロール、XSLタグおよびビューが異なるタイプの処理を必要とし、この指定によりビューレンダリングエンジン(図13〜14に関連して後述)が、どのタイプのオブジェクトを処理する必要があるかを容易に識別できるようになるからである。
上述のように、図6〜11は、ビュー(ビュー1100)がワイヤフレーム300内のスロット304(1)(「slot_header」)にバインドされる一例を示す。(ワイヤフレーム300のスロットを、これらのスロットを満たすコンテンツ生成オブジェクトにバインドするために、もう1つのビューが作成されなければならない。このビューには、スロット304(1)とビュー1100の間のバインディングが含まれる。このようなビューの詳細は、これまでの考察から容易に理解することができる。)図12は、このバインディングに基づいて作成することができる、結果として生じるコンテンツを示す。図12はワイヤフレーム300を、その4つのスロット304(1)、304(2)、304(3)および304(4)と共に示す。スロット304(1)(「slot_header」)がビュー1100にバインドされるので、ワイヤフレーム600(これにビュー1100が基づく)は、スロット304(1)をオーバーレイするとして示される。ワイヤフレーム600は、4つのスロット602(1)、602(2)、602(3)および602(4)を有する。これらの4つのスロットのうち、スロット602(4)がビュー1000(図10)にバインドされ、ビュー1000はワイヤフレーム1002に基づく。したがって、ワイヤフレーム1002は図12ではスロット602(4)をオーバーレイするとして示される。
図12から理解できるように、この図に示すコンテンツは階層を形成しており、ワイヤフレーム1002はワイヤフレーム600のスロットの内部にあり、ワイヤフレーム600はワイヤフレーム300のスロットの内部にある。図12のコンテンツを階層の最下部から上に解析すると、ビュー1000が以下のコンテンツ、すなわち、ボックス1006および「go」ボタン1008(ワイヤフレーム1002のスロット1004(1)内)、ならびに広告1010(スロット1004(2)内)を生成することがわかる。このコンテンツはワイヤフレーム600のスロット602(4)内に位置する。ワイヤフレーム600は、コンテンツ項目702、802および902も含み、図7〜9で上述したように、XSLタグおよびコントロールから生成されたものである。したがって、ビュー1100は、ワイヤフレーム600のスロット内に含まれたコンテンツを生成する。ビュー1100は、ワイヤフレーム300のスロット304(1)にバインドされているので、ビュー1100によって生成されたコンテンツがスロット304(1)内に配置される。図12は、スロット304(2)〜(4)も示し、これらのスロットをコントロール、XSLタグおよびビューに、上述の方法でバインドするビューを指定することができる。図6〜12の例は、各スロットが単一のコントロール、XSLタグまたはビューにバインドされることを示すが、上述のように、スロットを複数のコントロール、XSLタグまたはビューに(またはそれらの任意の組み合わせにも)バインドさせることができ、これらをすべて評価して所与のスロットを満たすことができる。
図12では、破線を使用してワイヤフレームおよびそれらのスロットのアウトラインを示すが、これらのラインは実際には、ビューから構築されるコンテンツに含まれないことに留意されたい。これらのラインは単に図12において、本発明によるコンテンツを構築することができる階層構造を明示するために示される。
コンテンツをビューから生成するためのアーキテクチャ
図13は、本発明によるコンテンツを生成するために使用される様々なコンポーネントの概要を示す。
レンダリングエンジン1302は、ビュー1304を使用して、ブラウザ(図2のブラウザ200など)上でレンダリングするために適するXHTMLコンテンツを生成する、ソフトウェアコンポーネントである。レンダリングエンジンは、たとえば、検索エンジンサーバ上に存在することができ、これを使用して、ユーザクエリに応答して結果のページを動的に生成することができる。
上述のように、ビュー1304などのビューは、一方ではワイヤフレーム1306の複数のスロットの間のマッピングまたはバインディングを備え、他方ではコンテンツ生成オブジェクト1308を備える。また上述のように、コンテンツ生成オブジェクト1308は様々な形態を取ることができ、コントロール1310、XSLタグ1312およびビュー1314は、それにコンテンツ生成を基づかせることができるオブジェクトの例である。
コントロール1310は、上述のように、コンテンツを動的に生成する実行可能または解釈可能コードを備える。コントロール1310をプログラムとして実施することができるので、これらは、それらの入力に基づいて異なる振舞を提示することができる。構成ファイル1316は、コントロールのためのこの入力を提供する。たとえば、「shark fin」コントロール(図9の参照符号900)を、様々な状況に応じて異なるバージョンのサメのひれのグラフィック(たとえば、より幅広いか、あるいはより狭いバージョン)を生成するように適合させることができる。たとえば、search.msn.comウェブサイトは、そのウェブサイトがナビゲーションバー202(図2)を通じて直接アクセスされているか、ビューイングエリア206を2つの狭いサブエリアに分割する検索補助機能を通じてアクセスされているかに応じて、幅広いかあるいは狭いバージョンのサメのひれを生成することができる。構成ファイル1316は、どのバージョンのサメのひれが生成されるかを指定するためにshark finコントロールによって使用されるパラメータを含むことができる。shark finコントロールが、構成ファイル内のパラメータに応答するように設計されている場合、異なるバージョンのサメのひれを、単一のコントロールおよび多数の構成ファイルにより作成することができ、どのバージョンのサメのひれのグラフィックが生成されるかに応じて、異なる構成ファイルをコントロールに提供することができる。加えて、構成情報をビュー内で、スロットのバインディングの一部として指定することができる。たとえば、以下のバインディングを使用して、「header」コントロールがデフォルトモードで使用されることを指定することができる。
Figure 2004259276
また、以下の類似のバインディングを使用して、「header」コントロールが「searchpane」モードで使用されることを指定することができる。
Figure 2004259276
異なるモードを指定するこの方法は、異なる構成ファイルを使用してコントロールについての異なるパラメータを指定することに類似の方法で動作する。
構成ファイルの使用のもう1つの例として、本明細書で説明するインフラストラクチャを検索エンジンによって使用して、クエリおよび結果ページを生成することができる。異なるユーザが検索の結果を異なるフォーマットで見ることを望む可能性があり、たとえば、あるユーザは検索結果のテキスト説明のみを受信することを望む可能性があり、他のユーザはテキスト説明と共にサムネイル画像を見ることを望む可能性がある。単一の「results」コントロールを書くことができ(たとえば、図3の「slot_results」スロット304(2)へのバインディングのため)、これは結果を様々なフォーマットで生成することができる。「results」コントロールによって生成された特定のフォーマットは、構成ファイル1316に含まれたパラメータによって決まる。結果が提示される実際のフォーマットを、単に構成ファイルを変更することによって変更することができる。一例では、いくつかの構成ファイル(それぞれが異なるパラメータを有する)を提供することができ、ユーザに結果の提示を変更する機会を与えることができる。たとえば、ユーザが、検索結果を含むページを受信するとき、ユーザはページ上のメニューを使用して、ユーザが結果を受信することを望む、異なる形態を選択することができる。次いで、ユーザの選択が検索エンジンサーバに、サーバが異なる構成ファイルを使用してページを再生成する要求と共に送信される。
構成ファイル1316を従来の「ファイル」(すなわち、ファイルシステムに格納された、名前付きオブジェクト)として実施することができるが、この実施形態に限定されないことに留意されたい。一般に「構成ファイル」は、どのようにこのデータが格納されるかにかかわらず、どこかに格納され、かつコントロールによってアクセスすることができるデータを表す。
コンテンツをビューに基づいて生成するプロセス
コンテンツをビューに基づいて生成するプロセスを、以下の擬似コードによって記述することができる。
Figure 2004259276
上述の「RendererEval()」メソッドは、たとえば、レンダリングエンジン1302によって実行される。このメソッドは、ビューをパラメータとしてみなし、ビューのワイヤフレーム内のスロット中を進み、各スロットのための適切なXHTMLコンテンツを、どのオブジェクトがそのスロットにバインドされるかに基づいて生成する。スロットがコントロールにバインドされる場合、そのコントロールが実行され、スロットが、そのコントロールによって生成されたXHTMLコンテンツで満たされる。スロットがXSLタグにバインドされる場合、XSL処理ソフトウェアがそのタグに適用されて、適切なXHTMLコンテンツが生成される。スロットがビューにバインドされる場合、そのビューが評価されてXHTMLコンテンツが生成される。上記の擬似コードでは、「サブビュー」が、「RendererEval()」関数が現在評価中であるスロットにバインドされるビューである。上記の擬似コードを見るとわかるように、RendererEval()はそれ自体を再帰的に呼び出してこのサブビューを評価することができる。
図14は、レンダリングエンジン1302によって実行されるプロセスの流れ図を示す。レンダリングエンジンはビューを得る(ブロック1402)。上記の擬似コードの例では、このステップは、ビューがレンダリングエンジンの最上位のメソッドにパラメータとして渡されるとき、実施される。次いで、レンダリングエンジンは最初のスロットバインディングを検査する(ブロック1404)。バインディングが空である場合(ブロック1405)、スロットに入れるべきコンテンツはなく、そのためレンダリングエンジンはブロック1414に進行して、さらにスロットがあるかどうかを判断する。
しかし、スロットがバインディングを有している場合、レンダリングエンジンは、スロットにバインドされたオブジェクトを評価するように進行し、スロットを、そのオブジェクトに基づいて適切なコンテンツで満たす。上述のように、バインディングは、スロットがコントロールにバインドされるか、XSLタグにバインドされるか、ビューにバインドされるかを指示することが好ましい。レンダリングエンジンは、どのタイプのオブジェクトがスロットにバインドされるかに基づいて分岐する(ブロック1406)。スロットがコントロールにバインドされる場合、このコントロールが実行されてXHTMLコンテンツが生成され、XHTMLコンテンツがスロットに入れられる(ブロック1408)。スロットがXSLタグにバインドされる場合、このXSLタグが処理されてXHTMLコンテンツが生成され、そのコンテンツがスロットに入れられる(ブロック1410)。スロットが別のビューにバインドされる場合、この他のビューが評価されてXHTMLコンテンツが生成され、そのコンテンツがスロットに入れられる(ブロック1412)。上述のように、スロットバインディングにおいてビューに出会うとき、そのビューを評価するプロセスは本質的に、最上位ビューを評価するプロセスと同じであり、ブロック1412を実際には、図14のプロセスを実施するメソッドへの再帰的呼び出しとして実施することができる。
現在のスロットが処理された後、レンダリングエンジンは、いずれかの追加のスロットが現在のビュー内にあるかどうかを判断する(ブロック1414)。このようなスロットがない場合、プロセスは終了する。追加のスロットがある場合、レンダリングエンジンは次のスロットに進行し(ブロック1416)、ブロック1405に戻って次のスロットを処理する。
前述の例は、説明のためにのみ提供されており、決して本発明の限定として解釈されるべきでないことに留意されたい。本発明を、様々な実施形態を参照して説明したが、本明細書で使用された言葉は、限定の言葉ではなく、説明および例示の言葉であることを理解されたい。さらに、本発明を本明細書で、特定の手段、材料および実施形態を参照して説明したが、本発明は、本明細書で開示された明細に限定されるように意図されず、むしろ本発明は、付属の特許請求の範囲内であるものなど、すべての機能的に等価な構造、方法および使用にまで及ぶ。本明細書の教示を利用できる当業者は、多数の修正をこれに実施することができ、その態様において本発明の範囲および精神から逸脱することなく、変更を行なうことができる。
本発明の態様を実施することができる例示的コンピューティング環境のブロック図である。 例示的ウェブブラウザのユーザインターフェイスのブロック図である。 第1の例示的ワイヤフレームのブロック図である。 第1の例示的コントロールのブロック図である。 コントロールを第1の例示的ワイヤフレームにバインドする、第1の例示的ビューのブロック図である。 第2の例示的ワイヤフレームのブロック図である。 例示的拡張可能スタイルシート言語(XSL)タグのブロック図である。 例示的拡張可能スタイルシート言語(XSL)タグのブロック図である。 第2の例示的コントロールのブロック図である。 第2の例示的ビューのブロック図である。 第3の例示的ビューのブロック図である。 本発明の態様により生成された例示的コンテンツのブロック図である。 本発明の態様によるコンテンツを生成するための例示的インフラストラクチャのブロック図である。 本発明の態様によるコンテンツを生成するための例示的プロセスの流れ図である。
符号の説明
1302 レンダリングエンジン
1304 ビュー
1306 ワイヤフレーム
1308 コンテンツ生成オブジェクト
1310 コントロール
1312 XSL
1314 ビュー
1316 構成ファイル

Claims (24)

  1. コンテンツ項目を生成するためのシステムであって、
    前記コンテンツ項目の複数の領域を定義する第1のワイヤフレームデータ構造と、
    コンテンツ生成オブジェクトの第1のセットと、
    前記コンテンツ生成オブジェクトの第1のセットを、前記第1のワイヤフレームによって定義された前記領域にマップする第1のビューと、
    前記第1のワイヤフレームによって定義された各領域について、
    前記ビューが前記領域にマップする前記コンテンツ生成オブジェクトに基づいてコンテンツを生成し、および
    前記生成されたコンテンツを前記領域に挿入する
    レンダリングエンジンと
    を備えたことを特徴とするシステム。
  2. 前記コンテンツ項目は、ハイパーテキストマークアップ言語または拡張可能ハイパーテキストマークアップ言語ウェブページを備えたことを特徴とする請求項1に記載のシステム。
  3. 前記ビューが前記領域にマップする前記コンテンツ生成オブジェクトは、実行可能または解釈可能コードを備えたコントロールであり、前記生成されたコンテンツが、前記実行可能または解釈可能コードの実行によって生成されることを特徴とする請求項1に記載のシステム。
  4. 構成ファイルをさらに備え、
    前記実行可能または解釈可能コードによって生成された前記コンテンツは、少なくとも部分的には前記構成ファイルに含まれたデータに基づくことを特徴とする請求項3に記載のシステム。
  5. 前記ビューは、前記実行可能または解釈可能コードが動作するモードを指定し、前記実行可能または解釈可能コードによって生成された前記コンテンツは、少なくとも部分的には前記指定されたモードに基づくことを特徴とする請求項3に記載のシステム。
  6. 前記ビューが前記領域にマップする前記コンテンツ生成オブジェクトは、拡張可能スタイルシート言語タグを備え、前記レンダリングエンジンは、拡張可能スタイルシート言語プロセッサを使用して前記拡張可能スタイルシート言語タグに基づいて、コンテンツを生成することを特徴とする請求項1に記載のシステム。
  7. 前記ビューが前記領域にマップする前記コンテンツ生成オブジェクトは、第2のワイヤフレームをコンテンツ生成オブジェクトの第2のセットに関連付けることによってコンテンツを指定する第2のビューを備え、前記生成されたコンテンツが、前記レンダリングエンジンが前記第2のビューを評価することによって生成されることを特徴とする請求項1に記載のシステム。
  8. 前記第1のワイヤフレームによって定義された前記領域の少なくとも1つが、前記第1のビューによっていずれのコンテンツ生成オブジェクトにもマップされず、前記レンダリングエンジンは、前記コンテンツ項目に、前記第1のワイヤフレームによって定義された前記領域の前記1つにおいてコンテンツがないことを反映させることを特徴とする請求項1に記載のシステム。
  9. コンテンツ項目を生成する方法であって、
    コンテンツ項目の領域を定義するワイヤフレームのスロットのセットとコンテンツ生成オブジェクトのセットとの間の関連付けを指定するビューにアクセスすること、および
    前記スロットの1つの各々について、前記ビューが前記スロットの1つに関連付ける前記コンテンツ生成オブジェクトに基づいて、前記スロットの1つにコンテンツを挿入すること
    を含むことを特徴とする方法。
  10. 前記コンテンツ項目は、ハイパーテキストマークアップ言語または拡張可能ハイパーテキストマークアップ言語ウェブページを備えたことを特徴とする請求項9に記載の方法。
  11. 前記ビューが前記スロットの1つに関連付ける前記コンテンツ生成オブジェクトは、実行可能または解釈可能コードを含み、前記スロットの1つに挿入される前記コンテンツは、前記実行可能または解釈可能コードを実行することによって生成されることを特徴とする請求項9に記載の方法。
  12. 前記実行可能または解釈可能コードは、生成する前記コンテンツを決定するに際して、構成ファイルに含まれたデータを考慮に入れることを特徴とする請求項11に記載の方法。
  13. 前記実行可能または解釈可能コードは、生成する前記コンテンツを決定する際に、前記ビューで指定されたモードを考慮に入れることを特徴とする請求項11に記載の方法。
  14. 前記ビューが前記スロットの1つに関連付ける前記コンテンツ生成オブジェクトは、拡張可能スタイルシート言語タグを備え、前記方法は、
    拡張可能スタイルシート言語プロセッサを使用して、前記拡張可能スタイルシート言語タグに基づいてコンテンツを生成することをさらに含むことを特徴とする請求項9に記載の方法。
  15. 前記ビューが前記スロットの1つに関連付ける前記コンテンツ生成オブジェクトはサブビューを備え、前記方法は、
    前記サブビューを評価して、前記スロットの1つに挿入されるコンテンツを生成することをさらに含むことを特徴とする請求項9に記載の方法。
  16. コンピュータ実行可能命令により、ウェブページを生成する方法を実行するように符号化されたコンピュータ可読媒体であって、該方法は、
    ウェブページの複数の領域を備え、前記領域の各々が空またはコンテンツ生成オブジェクトの第1のセットの1つに対応している第1のワイヤフレームと、前記コンテンツ生成オブジェクトの第1のセットとの間の対応を指定する第1のビューを受信すること、
    前記第1のワイヤフレーム内の前記領域の1つの各々について、
    前記領域の1つがコンテンツ生成オブジェクトに対応している場合に、前記領域の1つに、前記コンテンツ生成オブジェクトに基づいて、コンテンツをウェブページに追加すること、および
    前記領域の1つがコンテンツ生成オブジェクトに対応していない場合に、前記領域の1つにコンテンツがないことを反映するように、前記ウェブページを構築させること
    を含むことを特徴とするコンピュータ可読媒体。
  17. 前記コンテンツ生成オブジェクトのセットは、
    コンテンツを生成するように動作する実行可能または解釈可能コードと、
    拡張可能スタイルシート言語プロセッサに、生成または検索されるコンテンツを指定する拡張可能スタイルシート言語タグと、
    第2のワイヤフレームとコンテンツ生成オブジェクトの第2のセットとの間の対応を指定する第2のビューと
    のうちの1つまたは複数を備えたことを特徴とする請求項16に記載のコンピュータ可読媒体。
  18. 前記実行可能または解釈可能コードが生成する前記コンテンツは、構成ファイルに含まれたデータの関数であることを特徴とする請求項17に記載のコンピュータ可読媒体。
  19. 前記実行可能または解釈可能コードが生成する前記コンテンツは、前記第1のビュー内で前記実行可能または解釈可能コードについて指定されたモードの関数であることを特徴とする請求項17に記載のコンピュータ可読媒体。
  20. コンテンツ項目の生成を容易にするためのデータ構造上で符号化しているコンピュータ可読媒体であって、前記データは、
    前記コンテンツ項目の複数の領域を定義する第1のワイヤフレームの第1の識別子と、
    前記第1のワイヤフレームによって定義された前記領域の少なくとも1つについて、前記領域の1つに関連付けられるコンテンツ生成オブジェクトを指定し、前記領域の1つを、前記領域の1つに関連付けられた第2の識別子によって識別し、さらに前記コンテンツ生成オブジェクトを、前記コンテンツ生成オブジェクトに関連付けられた第3の識別子によって識別するバインディングと
    を備えたことを特徴とするコンピュータ可読媒体。
  21. 前記各第1、第2および第3の識別子はテキスト文字列を含むことを特徴とする請求項20に記載のコンピュータ可読媒体。
  22. 前記コンテンツ生成オブジェクトは、前記領域の1つに挿入されるコンテンツを生成する実行可能または解釈可能コードを備えたことを特徴とする請求項20に記載のコンピュータ可読媒体。
  23. 前記コンテンツ生成オブジェクトは、拡張可能スタイルシート言語プロセッサに、生成または検索されるコンテンツを指定する拡張可能スタイルシート言語タグを備えたことを特徴とする請求項20に記載のコンピュータ可読媒体。
  24. 前記コンテンツ生成オブジェクトは、第2のワイヤフレームの領域をコンテンツ生成オブジェクトのセットに関連付ける第2のビューを備えたことを特徴とする請求項20に記載のコンピュータ可読媒体。
JP2004048656A 2003-02-24 2004-02-24 コンテンツ項目を生成するためのシステム、方法および媒体 Pending JP2004259276A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/373,362 US7380204B2 (en) 2003-02-24 2003-02-24 Infrastructure for generating web content

Publications (2)

Publication Number Publication Date
JP2004259276A true JP2004259276A (ja) 2004-09-16
JP2004259276A5 JP2004259276A5 (ja) 2007-04-12

Family

ID=32736480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004048656A Pending JP2004259276A (ja) 2003-02-24 2004-02-24 コンテンツ項目を生成するためのシステム、方法および媒体

Country Status (5)

Country Link
US (1) US7380204B2 (ja)
EP (1) EP1450271A3 (ja)
JP (1) JP2004259276A (ja)
CN (1) CN100357887C (ja)
BR (1) BRPI0400418A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012504816A (ja) * 2008-10-03 2012-02-23 グーグル・インコーポレーテッド 小型ディスプレイ装置上の縦方向コンテンツ
KR101476200B1 (ko) * 2008-10-30 2014-12-24 엘지전자 주식회사 이동단말기 및 그 제어 방법

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028059B1 (en) 2003-06-02 2011-09-27 Aol Inc. Page views for proxy servers
US20050097089A1 (en) * 2003-11-05 2005-05-05 Tom Nielsen Persistent user interface for providing navigational functionality
US20060074904A1 (en) * 2004-09-30 2006-04-06 Mungara Ajay M Content delivery rendering engine
US8635548B2 (en) * 2005-03-18 2014-01-21 International Business Machines Corporation Configuring a page for drag and drop arrangement of content artifacts in a page development tool
WO2006103760A1 (ja) * 2005-03-30 2006-10-05 Fujitsu Limited 文書変換活用システム
US7653617B2 (en) 2005-08-29 2010-01-26 Google Inc. Mobile sitemaps
US8176408B2 (en) * 2005-09-12 2012-05-08 Microsoft Corporation Modularized web provisioning
US7979789B2 (en) 2005-12-19 2011-07-12 Microsoft Corporation System and method of replacing a delegate component associated with a delegate modular software component at software execution time
US20070204008A1 (en) * 2006-02-03 2007-08-30 Christopher Sindoni Methods and systems for content definition sharing
US7610044B2 (en) * 2006-02-03 2009-10-27 Dj Nitrogen, Inc. Methods and systems for ringtone definition sharing
US9454734B2 (en) * 2006-02-21 2016-09-27 International Business Machines Corporation Heuristic assembly of a component based application
CN100410875C (zh) * 2006-09-21 2008-08-13 华为技术有限公司 一种基于实体的软件框架系统及运行方法
US20080086682A1 (en) * 2006-10-04 2008-04-10 Derricott Brett W Markup language template conversion
KR100874334B1 (ko) * 2006-12-14 2008-12-15 엔에이치엔(주) 검색 기능을 구비한 배너광고 제공 방법 및 시스템, 그리고상기 방법을 실행시키기 위한 프로그램이 기록된컴퓨터에서 판독 가능한 기록 매체
US8484566B2 (en) * 2007-10-15 2013-07-09 Google Inc. Analyzing a form page for indexing
US9524506B2 (en) 2011-10-21 2016-12-20 Bigmachines, Inc. Methods and apparatus for maintaining business rules in a configuration system
US8578265B2 (en) 2008-10-07 2013-11-05 Bigmachines, Inc. Methods and apparatus for generating a dynamic document
US20100281429A1 (en) * 2009-04-30 2010-11-04 Bigmachines, Inc. Methods and apparatus for configuring a product using an array of configuration sets
US9691086B1 (en) * 2011-05-13 2017-06-27 Google Inc. Adaptive content rendering
CN103324470B (zh) * 2012-03-21 2017-09-22 阿里巴巴集团控股有限公司 一种Web系统生成的方法和装置
US10949894B1 (en) 2013-06-07 2021-03-16 Groupon, Inc. Method, apparatus, and computer program product for facilitating dynamic pricing
US10984455B1 (en) * 2013-06-28 2021-04-20 Groupon, Inc. Method and apparatus for generating an electronic communication
US10387902B1 (en) 2013-06-28 2019-08-20 Groupon, Inc. Method and apparatus for generating an electronic communication
US10423977B1 (en) 2013-06-28 2019-09-24 Groupon, Inc. Method and apparatus for generating an electronic communication
US10373210B1 (en) 2013-06-28 2019-08-06 Groupon, Inc. Method and apparatus for generating an electronic communication
WO2015122959A1 (en) * 2014-02-14 2015-08-20 Google Inc. Methods and systems for reserving a particular third-party content slot of an information resource of a content publisher
US9246990B2 (en) 2014-02-14 2016-01-26 Google Inc. Methods and systems for predicting conversion rates of content publisher and content provider pairs
US9461936B2 (en) 2014-02-14 2016-10-04 Google Inc. Methods and systems for providing an actionable object within a third-party content slot of an information resource of a content publisher
US20160275093A1 (en) * 2015-03-18 2016-09-22 Zmags, Inc. Creating and deploying dynamic content experiences
US10970459B2 (en) 2017-12-07 2021-04-06 Paypal, Inc. Dynamic web content based on contextual profile
CN110095981A (zh) * 2019-04-02 2019-08-06 南京交通职业技术学院 一种自抗扰控制器参数的整定方法、装置和电子设备
US11023659B1 (en) * 2020-07-09 2021-06-01 Jamison HILL Systems and methods for generating a style configuration file with and without parameters
CN112256992A (zh) * 2020-09-17 2021-01-22 上海连尚网络科技有限公司 一种融合多链接地址的信息流的原生渲染的方法与设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222508A (ja) * 1997-02-07 1998-08-21 Arefu Syst:Kk コンピュータ画面レイアウト編集方法
WO2000054174A1 (en) * 1999-03-12 2000-09-14 Sun Microsystems, Inc. Extending the capabilities of an xsl style sheet to include components for content transformation
JP2001125855A (ja) * 1999-10-26 2001-05-11 Twin Communication Inc 動的Webページ生成プログラム
JP2002073471A (ja) * 2000-08-29 2002-03-12 Toshiya Takahashi ホームページ作成システム
JP2002215519A (ja) * 2001-01-22 2002-08-02 Sumisho Computer Systems Corp ウェブページ生成方法およびシステム、ウェブページ生成プログラム、記録媒体
US20020156815A1 (en) * 2001-04-19 2002-10-24 International Business Machines Corporation Method and apparatus for the separation of web layout, logic, and data when used in server-side scripting languages

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0663090A4 (en) * 1992-10-01 1996-01-17 Quark Inc MANAGEMENT AND COORDINATION OF A PUBLICATION SYSTEM.
US6335737B1 (en) 1994-10-21 2002-01-01 International Business Machines Corporation Video display and selection on a graphical interface
US5860073A (en) * 1995-07-17 1999-01-12 Microsoft Corporation Style sheets for publishing system
US5649186A (en) * 1995-08-07 1997-07-15 Silicon Graphics Incorporated System and method for a computer-based dynamic information clipping service
US6112242A (en) * 1996-07-10 2000-08-29 Uln Corporation System and method for dynamic data interaction in a hypertext data processing system
US6026433A (en) * 1997-03-17 2000-02-15 Silicon Graphics, Inc. Method of creating and editing a web site in a client-server environment using customizable web site templates
US5983227A (en) * 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US8386912B2 (en) * 1997-07-28 2013-02-26 Ca, Inc. Hypermedia document publishing including hypermedia document parsing
US6023701A (en) 1997-09-25 2000-02-08 International Business Machines Corporation Skeleton page retrieval mode for web navigation
US6012098A (en) * 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
US6678681B1 (en) 1999-03-10 2004-01-13 Google Inc. Information extraction from a database
US6920607B1 (en) * 1999-12-15 2005-07-19 Microsoft Corp. Methods and systems for dynamically creating user interfaces
US6615209B1 (en) 2000-02-22 2003-09-02 Google, Inc. Detecting query-specific duplicate documents
EP1170672A1 (de) 2000-07-04 2002-01-09 OKS GmbH Automatische Erstellung von Publishing-Dokumenten über das Internet
US6529903B2 (en) 2000-07-06 2003-03-04 Google, Inc. Methods and apparatus for using a modified index to provide search results in response to an ambiguous search query
US7136854B2 (en) 2000-07-06 2006-11-14 Google, Inc. Methods and apparatus for providing search results in response to an ambiguous search query
CA2327159C (en) * 2000-11-30 2008-10-07 Ibm Canada Limited-Ibm Canada Limitee System and method for dynamically displaying html form elements
US6658423B1 (en) 2001-01-24 2003-12-02 Google, Inc. Detecting duplicate and near-duplicate files
US6526440B1 (en) 2001-01-30 2003-02-25 Google, Inc. Ranking search results by reranking the results based on local inter-connectivity
CN1371049A (zh) * 2001-02-22 2002-09-25 三慧科技股份有限公司 网页应用程序产生器
US8001118B2 (en) 2001-03-02 2011-08-16 Google Inc. Methods and apparatus for employing usage statistics in document retrieval
CN1182478C (zh) * 2001-06-22 2004-12-29 汤惠刚 模块化的网页编辑与实时转换的网页显示系统与方法
US20030145305A1 (en) * 2001-11-16 2003-07-31 Mario Ruggier Method for developing and managing large-scale web user interfaces (WUI) and computing system for said WUI
CA2393035A1 (en) * 2002-07-11 2004-01-11 Ibm Canada Limited-Ibm Canada Limitee Converting markup language files

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222508A (ja) * 1997-02-07 1998-08-21 Arefu Syst:Kk コンピュータ画面レイアウト編集方法
WO2000054174A1 (en) * 1999-03-12 2000-09-14 Sun Microsystems, Inc. Extending the capabilities of an xsl style sheet to include components for content transformation
JP2001125855A (ja) * 1999-10-26 2001-05-11 Twin Communication Inc 動的Webページ生成プログラム
JP2002073471A (ja) * 2000-08-29 2002-03-12 Toshiya Takahashi ホームページ作成システム
JP2002215519A (ja) * 2001-01-22 2002-08-02 Sumisho Computer Systems Corp ウェブページ生成方法およびシステム、ウェブページ生成プログラム、記録媒体
US20020156815A1 (en) * 2001-04-19 2002-10-24 International Business Machines Corporation Method and apparatus for the separation of web layout, logic, and data when used in server-side scripting languages

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012504816A (ja) * 2008-10-03 2012-02-23 グーグル・インコーポレーテッド 小型ディスプレイ装置上の縦方向コンテンツ
US9087337B2 (en) 2008-10-03 2015-07-21 Google Inc. Displaying vertical content on small display devices
KR101476200B1 (ko) * 2008-10-30 2014-12-24 엘지전자 주식회사 이동단말기 및 그 제어 방법

Also Published As

Publication number Publication date
US7380204B2 (en) 2008-05-27
CN1525314A (zh) 2004-09-01
BRPI0400418A (pt) 2005-01-11
EP1450271A3 (en) 2005-05-04
US20040168123A1 (en) 2004-08-26
CN100357887C (zh) 2007-12-26
EP1450271A2 (en) 2004-08-25

Similar Documents

Publication Publication Date Title
US7380204B2 (en) Infrastructure for generating web content
US7873668B2 (en) Application data binding
US7487185B2 (en) Technique for changing views of web content
JP3762687B2 (ja) Htmlフォーム・エレメントを動的に表示するシステムおよび方法
US7523158B1 (en) System and method for partial page updates using a proxy element
US7168034B2 (en) Method for promoting contextual information to display pages containing hyperlinks
US6801224B1 (en) Method, system, and program for generating a graphical user interface window for an application program
JP4625198B2 (ja) 動的ウェブページコンテンツファイルからのサーバ側コード生成
US5953524A (en) Development system with methods for runtime binding of user-defined classes
US8365203B2 (en) Method for creating a native application for mobile communications device in real-time
US6901585B2 (en) Active ALT tag in HTML documents to increase the accessibility to users with visual, audio impairment
US6538673B1 (en) Method for extracting digests, reformatting, and automatic monitoring of structured online documents based on visual programming of document tree navigation and transformation
JP4643931B2 (ja) 外部プログラムに基づくテーマを使用するWebページレンダリング機構
US6189019B1 (en) Computer system and computer-implemented process for presenting document connectivity
US20040090458A1 (en) Method and apparatus for previewing GUI design and providing screen-to-source association
US7032183B2 (en) Dynamic site browser
US7213059B2 (en) Method, apparatus, and computer program product to determine the progress of Web page downloads
US20040006743A1 (en) Method and apparatus for re-editing and redistributing web documents
US20030009489A1 (en) Method for mining data and automatically associating source locations
US20130117663A1 (en) System and method for selectively displaying web page elements
CN1408093A (zh) 一种能够运行在不同格式的厂商站点上的电子购物代理
US7047487B1 (en) Methods for formatting electronic documents
US8826112B2 (en) Navigating table data with mouse actions
US8195766B2 (en) Dynamic implicit localization of web content
TW501034B (en) Information architecture for the interactive environment

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091002

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100430