(57)【特許請求の範囲】
【請求項１】
クライアントデバイス上に表示する情報コンテンツを処理する方法において、
上記クライアントデバイス上では実行できないスクリプトコマンドを含む情報コンテンツを受信するステップと、
上記スクリプトコマンドのキーワード、パターンおよび文法構造のうちの少なくとも１つを調査するステップと、
上記調査するステップでの結果に基づいて、上記スクリプトコマンドの機能を決定するステップと、
上記クライアントデバイス上で実行可能であり上記スクリプトコマンドの機能を実行するブラウザコマンドを決定するステップと、
上記情報コンテンツにおいて、上記スクリプトコマンドを、上記決定されたブラウザコマンドに置換するステップと、
上記情報コンテンツをクライアントデバイスへ送信するステップと、
を含む方法。
【請求項２】
上記ブラウザコマンドは、少なくとも１つのブラウザコマンドを含み、上記決定されたスクリプトコマンドの機能を含むように実行される、請求項１に記載の方法。
【請求項３】
上記ブラウザコマンドはアンカータグを備え、
上記アンカータグはイベントハンドラを備える請求項１または２に記載の方法。
【請求項４】
上記スクリプトコマンドは、ＪａｖａＳｃｒｉｐｔスクリプト言語で記述される請求項１から３の何れかに記載の方法。
【請求項５】
上記スクリプトコマンドの機能は、表示可能なアイテムを表示することを含む請求項１から４の何れかに記載の方法。
【請求項６】
上記スクリプトコマンドの機能は、動的なウェブページを表示することを含む請求項１から４の何れかに記載の方法。
【請求項７】
上記スクリプトコマンドの機能は、フォルダを表示することを含む請求項１から４の何れかに記載の方法。
【請求項８】
上記スクリプトコマンドは、上記クライアントデバイスにおけるイベントを処理するスクリプトコマンドを備え、
上記ブラウザコマンドは、上記クライアントデバイスにおけるイベントを処理する上記クライアントデバイスにより実行可能なブラウザコマンドを備える請求項１から７の何れかに記載の方法。
【請求項９】
上記クライアントデバイスにおけるイベントは、オンロードイベント、オンショーイベント、オンフォーカスイベント、オンキープレスイベント、及びオンキーダウンイベントより成るグループから選択されるイベントを含む請求項８に記載の方法。
【請求項１０】
上記ブラウザコマンドを含み、かつ上記スクリプトコマンドを除外する新しい情報コンテンツを組み立てるステップをさらに含む請求項１から９の何れかに記載の方法。
【請求項１１】
上記新しい情報コンテンツは、第１の分割タグと第２の分割タグとを備えるブラウザコマンドを備え、
上記第１の分割タグは、関連したアイテムのグループを識別し、
上記第２の分割タグは、上記関連したアイテムのグループにおけるアイテムを識別する請求項１０記載の方法。
【請求項１２】
上記スクリプトコマンドの機能を決定するステップは、データベースに問い合わせるステップを含む請求項１から１１の何れかに記載の方法。
【請求項１３】
上記データベースは、１つ又は複数のブラウザコマンドを記憶する請求項１２記載の方法。
【請求項１４】
上記データベースに問い合わせるステップは、
上記情報コンテンツ内で発見されるキーワードを備えた上記データベースのクエリを定式化するステップと、
上記クエリに応答して、上記データベースに記憶された１つ又は複数のブラウザコマンドを検索するステップと、
を含む請求項１３記載の方法。
【請求項１５】
上記調査するステップは、スクリプト言語インタープリタの使用によって上記スクリプトコマンドの機能を決定するステップを含む請求項１から１４の何れかに記載の方法。
【請求項１６】
上記調査するステップは、パターン認識装置の使用によって上記スクリプトコマンドの機能を決定するステップを含む請求項１から１４の何れかに記載の方法。
【請求項１７】
処理ユニットに請求項１から１６の何れかに記載の方法を実行させる命令を備える、コンピュータプログラム。
【請求項１８】
装置であって、
処理ユニットと、
上記処理ユニットにより実行されることにより、上記装置に請求項１から１５の何れかに記載の方法を遂行させる命令を含むコンピュータプログラムを格納するメモリと、
を備える装置。
【請求項１９】
情報ソースから、クライアントデバイス上で実行できないスクリプトコマンドを含む元の情報コンテンツを受信し、
上記スクリプトコマンドのキーワード、パターンおよび文法構造のうちの少なくとも１つを調査し、
上記調査するステップでの結果に基づいて、上記スクリプトコマンドの機能を決定し、
上記クライアントデバイス上で実行可能であり上記スクリプトコマンドの機能を実行するブラウザコマンドを決定し、
変換された情報コンテンツを、
（ａ）上記元の情報コンテンツから上記スクリプトコマンドを除去し、
（ｂ）上記元の情報コンテンツ内にブラウザコマンドのための挿入位置を決定し、
（ｃ）上記挿入位置で上記ブラウザコマンドを上記元の情報コンテンツに挿入することによって組み立てるサーバブラウザを含むメモリに記憶されたソフトウェアアプリケーションを実行するプロセッサと、
上記変換された情報コンテンツを送信するクライアントデバイスインタフェースとを備える、
サーバ。
【請求項２０】
上記決定されたブラウザコマンドは、少なくとも１つのブラウザコマンドを含み、上記決定されたスクリプトコマンドの機能を含むように実行される、請求項１９に記載のサーバ。
【請求項２１】
上記サーバブラウザは、データベースに記憶された情報に基づいて上記１つ又は複数のスクリプトコマンドを置換する１つ又は複数のブラウザコマンドを決定する請求項１９または２０に記載のサーバ。
【請求項２２】
上記データベースは、上記ブラウザコマンドを記憶し、
上記ブラウザコマンドは、上記スクリプトコマンドを備えたデータベースクエリに基づいて検索される請求項１９から２１の何れかに記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本特許出願は、２００７年２月９日に提出された米国仮特許出願第６０／８８９，１３７号に対し特許法第１１９条（ｅ）に基づく優先権を主張するものであり、本参照によりその内容はすべて、本明細書にそのまま記載されたものとして開示に含まれる。
【０００２】
（発明の分野）
本件出願は、一般に、ウェブブラウジング及びネットワーク通信の分野に関する。より具体的には、本件出願は、大型コンピュータ用に設計されたコンテンツを含むウェブページからの情報を変換してセルラ電話又はパーソナルデジタルアシスタント（ＰＤＡ）などの小型デバイスへ提示するための方法及び装置に関する。
【背景技術】
【０００３】
昨今は、様々なテキスト及び非テキストのコンテンツタイプを提供する多くのワールドワイドウェブページ（ＨＴＭＬ文書）が入手可能である。大型画面を備えて標準的なウェブブラウザを実行する従来的なデスクトップ又はラップトップコンピュータ上では、これらのコンテンツタイプは容易に配置され、かつ表示されて視聴される。例えば、写真画像を表示するウェブサイトは、ビューワが一度にそれを調べるように複数の画像を配信することがある。これらの複数の画像のうちの各画像は、決まった時間内にスライドショーとして表示される場合もあれば、「次の画像」ボタンをクリックすることなどによるビューワからの入力に応答して表示される場合もある。
【０００４】
これと同時に、通信、及びより具体的には無線電気通信の分野は現在、急速に拡大しつつある。この技術的な拡張は、パーソナルデジタルアシスタント（ＰＤＡ）、セルラ電話、ページャ及び他の電子デバイスなどの小型でハンドヘルド型の電子デバイスが、パーソナルコンピュータ（ＰＣ）及びＰＣベースのブラウザを使用して接続可能であるものと同じウェブサーバ又はデータベースなどの情報ソースへ接続することを可能にする。ウェブからのコンテンツをハンドヘルドデバイスへ表示するいくつかの小型デバイスクライアントブラウザが利用可能である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第７０７２９８４号明細書。
【特許文献２】米国特許出願公開第１０／２８０２６３号明細書。
【特許文献３】米国特許出願公開第０９／８４３０３６号明細書。
【非特許文献】
【０００６】
【非特許文献１】ECMA International, ECMA Script Language Specification, Edition 3 Final, March 24, 2000.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、これらの小型デバイスは、典型的には、デスクトップコンピュータ又はラップトップコンピュータへの表示を意図したウェブコンテンツを表示する画面スペース、処理能力、又はナビゲーション機能に欠けている。したがって、小型画面上でウェブページをナビゲートするユーザを支援するためにクライアントブラウザが利用する技術がいくつか存在する。例えば、クライアントブラウザはウェブコンテンツのレイアウトを変更し、画像の位置合わせを変え、又は単にいくつかのウェブコンテンツを表示しない場合がある。
【０００８】
ＪａｖａＳｃｒｉｐｔ又は類似のスクリプト言語で記述されたＨＴＭＬ文書などのウェブコンテンツ内のスクリプトコマンドもまた、小型デバイス上へのコンテンツ表示に課題を抱えている。ＰＣベースのブラウザ上で実行されるスクリプトコマンドは、ＰＣベースのブラウザのユーザが利用できる情報コンテンツのいくつか、又はすべてを生成する場合がある。しかしながら、小型デバイス上で利用可能なメモリ及び処理能力が少量であることに起因して、スクリプトコマンドをサポートするための小型デバイスは最良でも限定的である。
【課題を解決するための手段】
【０００９】
第１の主要態様において、一例示的な実施形態は、クライアントデバイスに表示するために情報コンテンツを処理する方法を提供する。本方法によれば、情報コンテンツが受信される。この情報コンテンツは１つ又は複数のスクリプトコマンドを含む。この１つ又は複数のスクリプトコマンドは、クライアントデバイス上では実行できない。この１つ又は複数のスクリプトコマンドの機能が決定される。情報コンテンツにおいて、この１つ又は複数のスクリプトコマンドは、クライアントデバイス上で実行可能な１つ又は複数のブラウザコマンドに置換される。情報コンテンツは、クライアントデバイスへ送信される。
【００１０】
第２の主要態様では、サーバが提供される。サーバは、メモリに格納されたソフトウェアアプリケーションを実行するプロセッサ、及びクライアントデバイスインタフェースを含む。ソフトウェアアプリケーションは、サーバブラウザを含む。サーバブラウザは、情報ソースから情報コンテンツを受信する。この情報コンテンツは、クライアントデバイス上で実行できない１つ又は複数のスクリプトコマンドを含む。サーバブラウザは、スクリプトコマンドの機能を決定し、かつ１つ又は複数のブラウザコマンドを決定してスクリプトコマンドを置換する。ブラウザコマンドは、決定されたスクリプトコマンドの機能を実行する。ブラウザコマンドは、クライアントデバイス上で実行可能な１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドを含む。
【００１１】
サーバブラウザは、（ａ）情報コンテンツからスクリプトコマンドを除去し、（ｂ）情報コンテンツ内にブラウザコマンド用の１つ又は複数の挿入位置を決定し、かつ（ｃ）その挿入位置においてブラウザコマンドを情報コンテンツに挿入することによって、変換された情報コンテンツを組み立てる。クライアントデバイスインタフェースは、この変換された情報コンテンツを送信する。
【００１２】
添付の図面を適宜参照して、以下の詳細な説明を読めば、当業者には、これらの態様、並びに他の態様及び優位点が明らかとなるであろう。さらに、本明細書におけるこの概要及び他の部分に記述された実施形態は単なる例であり、必ずしも発明の範囲を限定するものではない点は理解されるべきである。
【００１３】
以下、図面を参照して本発明の例示的な実施形態について説明する。
【図面の簡単な説明】
【００１４】
【図１】情報コンテンツにアクセスし、これを適合させて、電子デバイスへ提示するシステムの例を示すブロック図である。
【図２Ａ】ハイパーテキストマークアップ言語（ＨＴＭＬ）のアンカーエレメントの例のコンテンツを表示するクライアントブラウザのブラウザウィンドウの例を示す。
【図２Ｂ】上記ＨＴＭＬのアンカーエレメントの例のコンテンツをクリックした結果として表示されるウェブページの例を示す。
【図３Ａ】表４に示すｎＳｃｒｉｐｔブラウザコマンドを実行した後のクライアントブラウザのクライアントブラウザウィンドウの例を示す。
【図３Ｂ】表４に示すｎＳｃｒｉｐｔブラウザコマンドを実行した後のクライアントブラウザのクライアントブラウザウィンドウの例を示す。
【図３Ｃ】表４に示すｎＳｃｒｉｐｔブラウザコマンドを実行した後のクライアントブラウザのクライアントブラウザウィンドウの例を示す。
【図４Ａ】表５に示すｎＳｃｒｉｐｔブラウザコマンドを実行した後のクライアントブラウザのクライアントブラウザウィンドウを示す。
【図４Ｂ】表５に示すｎＳｃｒｉｐｔブラウザコマンドを実行した後のクライアントブラウザのクライアントブラウザウィンドウを示す。
【図５】サーバのブロック図の例である。
【図６】クライアントデバイス上へ表示するために情報コンテンツを処理する方法の機能ブロックの例を示したフローチャートである。
【発明を実施するための形態】
【００１５】
諸図に示す参照数字は、図中の様々な構成要素を識別するためのものである。同じ参照数字で示される構成要素は、実質的に同一の構成要素、又は同一の構成要素である。
【００１６】
クライアントブラウザがスクリプトコマンドの実行をサポートしていなければ、スクリプトコマンドの使用に依存する情報コンテンツは、クライアントブラウザによって小型デバイス上へ容易に表示できない場合がある。スクリプトコマンドを含む情報コンテンツを小型デバイスへ提供するためには、典型的には、スクリプトコマンドがサーバ上で実行されて情報コンテンツが生成される。次に、サーバが、生成された情報コンテンツを小型デバイスへ送信する。生成された情報コンテンツをサーバから小型デバイスへ送信することは、ネットワークのオーバーヘッド及び遅延を招く追加の通信を必要とする。
【００１７】
スクリプトコマンドを含む情報コンテンツを、より少ない通信オーバーヘッドで元々意図されたデバイス以外のデバイス上へ表示するように適合させることが望ましい。情報コンテンツは、スクリプトコマンドを小型デバイス上のクライアントブラウザで実行可能なブラウザコマンドで置換することなどにより、情報コンテンツを変換して適合させられてもよい。ブラウザコマンドは、情報コンテンツ上の一般的なオペレーションを実行するスクリプトコマンドを置換してもよい。情報コンテンツ上の一般的なオペレーションの例には、情報コンテンツ内に生成されるアイテムのグループ内をナビゲートすること、及びそのアイテムのグループ内の各アイテムの可視性（visibility）を制御することが含まれる。
【００１８】
一実施形態は、スクリプトコマンドをブラウザコマンドに置換することによって情報コンテンツを変換するサーバを備える。スクリプトコマンドは、ＪａｖａＳｃｒｉｐｔ又はこれに類似するスクリプト言語で記述されてもよい。ブラウザコマンドは、クライアントブラウザ上で実行可能であり、ｎＳｃｒｉｐｔアプリケーションプログラミングインタフェース（ＡＰＩ）を使用して記述されてもよい。本明細書で記述しているように、ｎＳｃｒｉｐｔＡＰＩは、関連したアイテムのグループ上のオペレーションをサポートし、かつクライアントブラウザ内のイベントを処理することによってハイパーテキストマークアップ言語（ＨＴＭＬ）を拡張する。ｎＳｃｒｉｐｔＡＰＩブラウザコマンドを実行するためには、クライアントブラウザの縮小機能スクリプトエンジン（ＲＦＳＥ：ｒｅｄｕｃｅｄ  ｆｕｎｃｔｉｏｎａｌｉｔｙ  ｓｃｒｉｐｔｉｎｇ  ｅｎｇｉｎｅ）のサポートが必要とされる場合がある。
【００１９】
１．情報コンテンツを提示する一例示的なシステム
【００２０】
次に、図１を参照すると、情報コンテンツにアクセスし、これを適合させて、電子デバイスへ提示するシステム１００のブロック図が示されている。システム１００は、情報ソース１０２と、サーバ１０４と、クライアントデバイス１０６とを含む。
【００２１】
情報ソース１０２には、ウェブサーバ、アプリケーションサーバ、データベース又は他のバックエンドシステム、もしくは情報プロバイダへの任意のインタフェースなどの任意のタイプのデバイスが含まれる。情報ソース１０２は、ＨＴＭＬ、拡張可能なスタイルシート（ＸＳＬ）を備える又は備えない拡張可能なマークアップ言語（ＸＭＬ）、ボイスＸＭＬ（ＶｏｉｃｅＸＭＬ）、拡張可能なハイパーテキストマークアップ言語（ＸＨＴＭＬ）又は無線マークアップ言語（ＷＭＬ）を含む技術上周知のマークアップ言語などのマークアップ言語で表現される情報コンテンツを提供する。さらに、情報コンテンツは、情報ソース１０２により提供されるべき画像情報、ビデオ情報又はオーディオ情報を参照することができる。
【００２２】
情報ソース１０２は、サーバ１０４により、サーバブラウザ１０８を介して任意タイプのネットワークを経由してアクセスされることが可能である。サーバブラウザ１０８は、任意タイプのネットワーク上でクライアントブラウザ１１０を介してクライアントデバイス１０６と通信してもよい。サーバブラウザ１０８は、クライアントブラウザ１１０と閲覧のためのウェブページコンテンツの情報ソース１０２との間でプロキシとして作用する。サーバブラウザ１０８は、情報ソース１０２のクライアントとして動作して、情報コンテンツを検索してもよい。例えば、サーバブラウザ１０８は、通信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）などの通信プロトコルの既知の組を使用して、ハイパーテキスト転送プロトコル（ＨＴＴＰ）リクエストを情報ソース１０２へ発行することができる。
【００２３】
技術上周知であるものなどのＨＴＴＰリクエストを使用することにより、サーバブラウザ１０８は、情報ソース１０２におけるアプリケーション、及び静的な並びに動的なコンテンツを含む情報コンテンツにアクセスすることができる。動的なウェブページなどの動的なコンテンツは、ネットスケープ（Ｎｅｔｓｃａｐｅ）（ｗｗｗ．ｎｅｔｓｃａｐｅ．ｃｏｍ）によって開発されたＪａｖａＳｃｒｉｐｔ、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ）（ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ）により開発されたＪｓｃｒｉｐｔ、ＶＢＳｃｒｉｐｔ、Ｖｉｓｕａｌ  Ｂａｓｉｃ及びＣ＃、及び／又はＴｃｌなどのスクリプト言語で記述されてもよい。ＪａｖａＳｃｒｉｐｔはまた、対話型アニメコンテンツを有するリッチなインターネットアプリケーションを配信する代替技術であるダイナミックＨＴＭＬ（ＤＨＴＭＬ）のコンポーネントでもある。
【００２４】
サーバブラウザ１０８及びクライアントブラウザ１１０は、同じプラットフォーム上に存在していても、互いから分離されていてもよい。例えば、図１に示すように、サーバブラウザ１０８はバックエンドサーバ上で提供されてもよく、かつクライアントブラウザ１１０はハンドヘルド電子デバイス上で提供されてもよい。しかしながら、プラットフォーム又は電子デバイスが適切なハードウェア及びネットワーク機能を有していれば、サーバブラウザ１０８及びクライアントブラウザ１１０が電子デバイス上などの同じプラットフォーム上で提供され得ることは理解されるべきである。したがって、本明細書に記載している多くの実施形態において、機能性は、クライアントブラウザ１１０の一部として、又はサーバブラウザ１０８の一部として記述されてもよい。
【００２５】
クライアントデバイス１０６及びサーバ１０４は同じデバイス上に共存してもよく、よって、どちらの機能も互いによって置換され得ることは理解されるべきである。したがって、クライアントブラウザ１１０は、サーバブラウザ１０８によって実行されるものとして説明される機能を実行してもよく、サーバブラウザ１０８は、クライアントブラウザ１１０によって実行されるものとして説明される機能を実行してもよい。サーバブラウザ及びクライアントブラウザを利用することにより、限定的なハードウェア機能を有するより小型の電子デバイスは、機能豊富な情報又はデータにアクセスすることができる。
【００２６】
一般に、サーバ１０４及びクライアントデバイス１０６は、中央処理装置と、メモリ（一次及び／又は二次メモリユニット）と、データを受信するための入力インタフェースと、１つ又は複数の入力デバイス（例えば、キーボード、マウス、他）から入力信号を受信するための入力インタフェースと、出力デバイス（例えば、モニタ）と通信するための出力インタフェースとを含む。一般に、サーバ１０４及びクライアントデバイス１０６は、集積回路開発技術を使用して開発されるハードウェアオブジェクト、又はソフトウェア環境で順序づけられ、パラメータ化され、接続されるハードウェアオブジェクト及びソフトウェアオブジェクトの組合せを包含して、本明細書に記述しているさまざまな機能を実装することは理解されるべきである。また、ハードウェアオブジェクトは、異なるデータを表す信号の状態を有する電気信号を使用して通信することも可能である。
【００２７】
また、サーバ１０４及びクライアントデバイス１０６は、一般に、サーバ１０４及びクライアントデバイス１０６に存在するアプリケーションプログラムをオペレーティングシステムの制御下で実行することも留意されるべきである。サーバブラウザ１０８及びクライアントブラウザ１１０などのアプリケーションプログラムは、サーバ１０４及びクライアントデバイス１０６内のメモリに格納されてもよく、マシン語命令又はＪａｖａ（登録商標）プログラミング言語などのオブジェクト指向命令を有するソフトウェアを使用して提供されてもよい。しかしながら、他のプログラミング言語（Ｃ＋＋プログラミング言語など）が使用される可能性もある。
【００２８】
一例として、クライアントブラウザ１１０はクライアントデバイス１０６上に存在してもよく、クライアントデバイス１０６は、パーソナルコンピュータ（ＰＣ）、無線電話、パーソナルデジタルアシスタント（ＰＤＡ）、ハンドヘルドコンピュータ、ネットワークアプライアンス、及びナビゲーション機能（例えば、キーボード、タッチスクリーン、マウス、他）並びにダウンロードされた情報コンテンツを見るためのオプションのディスプレイを有する場合もある様々な他のタイプの電子デバイスのうちの任意のものを含む電子デバイスであってもよい。さらに、クライアントデバイス１０６は、Ｗ３Ｃ（ｗｗｗ．ｗ３．ｏｒｇ）ボイス拡張可能なマークアップ言語（ＶｏｉｃｅＸＭＬ）などの音声合成マークアップを利用する機能を有する任意のタイプのデバイスを含むことができる。コンピュータシステムの当業者は、これらの実施形態の例がクライアントデバイス１０６用に使用されるコンピュータの任意の特定のクラス又はモデルに限定されないことを理解して、適切なシステムを選択することができるであろう。
【００２９】
１つの例示的な説明を提供するために、ＰＤＡがクライアントブラウザ１１０を提供し、ＰＣがサーバブラウザ１０８を提供し、かつＰＤＡ及びＰＣが共にイーサネット（登録商標）ネットワークへ接続されると仮定する。その後、クライアントブラウザ１１０及びサーバブラウザ１０８は、イーサネット（登録商標）ネットワーク上で情報トランザクションを実行する可能性もある。このようなトランザクションは、イーサネット（登録商標）又はこれに類似するＩＥＥＥ８０２．３プロトコルを利用する。この例では、クライアントブラウザ及びサーバブラウザは有線ネットワーク上で通信する。これらの通信はまた、ローカルエリア無線ネットワーク（ＬＡＷＮ）又は無線ローカルエリアネットワーク（ＷＬＡＮ）などの無線ネットワークを含む場合もある。さらに、これらの通信は、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ）（登録商標）、無線アプリケーションプロトコル（ＷＡＰ）、時分割多元接続（ＴＤＭＡ）又は符号分割多元接続（ＣＤＭＡ）などの他の既知のプロトコル及び技術を利用する無線ネットワークを含む場合もある。
【００３０】
図１を再度参照すると、クライアントブラウザ１１０は情報のためのリクエストをサーバブラウザ１０８へ送信することができる。クライアントブラウザ１１０は、イベントトランスレータ１１４を含み、クライアントブラウザ１１０からのＨＴＴＰリクエストなどのリクエスト／レスポンスプロトコル（例えば、ＷＭＬ、ＸＨＴＭＬ、ｃＨＴＭＬ、他）をサーバブラウザ１０８が認識するイベントへ変換してもよい。変換プロセスは、クライアントブラウザ１１０と情報ソース１０２との間のトランザクション（例えば、ＨＴＭＬ形式の提出）が持続されるようにイベント情報、コンテンツ情報及びイベントのコンテキストを含む可能性がある。
【００３１】
情報ソース１０２からの情報コンテンツは検索され、かつサーバブラウザ１０８によりクライアントブラウザ１１０上で使用するために調整されることが可能である。代替として、サーバブラウザ１０８が情報コンテンツを検索し、かつこの情報コンテンツをクライアントブラウザ１１０へ送信してもよく、クライアントブラウザ１１０はこの情報を見るために自らが適切に情報を調整する。要求される情報コンテンツ（例えば、ウェブページ）は当初、ハンドヘルドデバイスの限定的な画面サイズ上ではなくＰＣの大型画面上で見るように設計されている可能性があることから、コンテンツの変換が必要とされる場合がある。その結果、サーバブラウザ１０８又はクライアントブラウザ１１０のいずれかが情報コンテンツの変換を実行し、又はデバイスごとのスタイルシートを適用して、提示（例えば、表示又はボイス）及びナビゲーション（例えば、キーボード、タッチスクリーン又はスクロール）を援助し、かつ限定された量のデータを受け入れる電子デバイスのためにコンテンツのグループ化を実行することができる。
【００３２】
これらの機能を配信するために、サーバブラウザ１０８又はクライアントブラウザ１１０は、例えばユーザエージェント、クッキーハンドラ、ＱＤＯＭ、スクリプトエグゼキュータ、ノーマライザ及びシリアライザを含むモジュール（図示せず。）を含んでもよい。情報コンテンツの変換又はカスタマイズに関する追加の情報は、特許文献１、特許文献２、及び特許文献３に含まれており、これらの特許文献の各々の内容は、本参照により本明細書にそのまま記載されたものとして開示に含まれる。
【００３３】
本明細書の文脈において、「変換する」及び「変換」という用語は、コンピュータハードウェア又はソフトウェアを使用して実装されて、情報コンテンツをトランスコードし、修正し、更新し、置換し、適合化し、変更し、変換し、変じ、改変し、再生し、再配置し、再成形し、補正し、及び／又は他の方法で変えるプロセスを説明するために使用されている。
【００３４】
２．ＨＴＭＬ及び組み込みスクリプト言語のコマンド
【００３５】
クライアントブラウザ１１０によって受信される情報コンテンツは、ウェブページを備えてもよい。ウェブページは、ＨＴＭＬなどのマークアップ言語で記述された１つ又は複数のブラウザコマンドを備える。具体的には、ＨＴＭＬブラウザコマンドは、１つ又は複数のＨＴＭＬエレメントを備える。ＨＴＭＬエレメントは少なくとも１つのタグを備え、かつ開始タグ、コンテンツ、及び終了タグを備えてもよい。開始タグは、＜ｔａｇ［ａｔｔｒｉｂ１＝“ｖａｌｕｅ”，［ａｔｔｒｉｂ２＝“ｖａｌｕｅ２”．．．］＞の形式であり、ここで、ｔａｇは実行されるべきＨＴＭＬコマンドであり、ａｔｔｒｉｂ１及びａｔｔｒｉｂ２はＨＴＭＬコマンドに関する情報を修正し及び／又は提供するオプションの属性である。コンテンツは開始タグの後に開始する。終了タグはコンテンツの終わりを区切り、かつ典型的には＜／ｔａｇ＞と表示される。
【００３６】
ＨＴＭＬエレメントの一例は、ハイパーテキストリンクを情報コンテンツとして提供するアンカーエレメントである。例えば、ノバラ（Ｎｏｖａｒｒａ）ホームページへのリンクを提供してワード「Ｎｏｖａｒｒａ」を表示するために、アンカーエレメントが使用される。リンク及び表示を提供するＨＴＭＬエレメントの例は、下記のアンカー（又は「ａ」）エレメントである。
【００３７】
＜ａ  ｈｒｅｆ＝“ｈｔｔｐ：／／ｗｗｗ．ｎｏｖａｒｒａ．ｃｏｍ”＞Ｎｏｖａｒｒａ＜／ａ＞
【００３８】
開始アンカータグは、使用されるべき参照の値を有するハイパーテキスト参照（ＨＲＥＦ）属性を必要とする。この例では、参照は、ユニフォームリソースロケータ（ＵＲＬ）であるｈｔｔｐ：／／ｗｗｗ．ｎｏｖａｒｒａ．ｃｏｍによって参照されるノバラウェブページである。終了アンカータグは、“＜／ａ＞”である。他の多くのＨＴＭＬエレメント及びタグが存在し、当業者には周知である。
【００３９】
図２Ａ及び図２Ｂは、クライアントデバイスのブラウザウィンドウのウェブページ及びウェブページエレメントの概念的なディスプレイを示す例である。図２Ａは、ノバラホームページへのリンクを提供する“Ｎｏｖａｒｒａ”のコンテンツを有するＨＴＭＬアンカーエレメントの例であるコンテンツ１３０を表示するブラウザウィンドウ１２０の例を示す。１つ又は複数のＨＴＭＬブラウザコマンドを受信すると、クライアントブラウザ１１０は、この１つ又は複数のＨＴＭＬブラウザコマンドを実行し、この１つ又は複数のＨＴＭＬブラウザコマンドにおける１つ又は複数のＨＴＭＬエレメントをレンダリングし、かつレンダリングされたＨＴＭＬエレメントをブラウザウィンドウ１２０内でクライアントブラウザ１１０のユーザへ表示するように動作可能である。レンダリングされたＨＴＭＬエレメントは、ＨＴＭＬエレメントのコンテンツを含んでもよい。図２Ａは、ブラウザウィンドウ１２０内のレンダリングされたＨＴＭＬエレメントを、ＨＴＭＬエレメントの例のコンテンツ１３０として示す。
【００４０】
図２Ｂは、ＨＴＭＬアンカーエレメントの例のコンテンツをクリックした結果として表示されるウェブページを示す。具体的には、図２Ｂは、ウェブページ１４０を表示するクライアントブラウザ１００のブラウザウィンドウ１２０を示す。クライアントブラウザ１１０がＨＴＭＬエレメントをレンダリングすると、クライアントブラウザ１１０のユーザはＨＴＭＬエレメントのコンテンツ１３０をクリックしてもよい。ＨＴＭＬエレメントが参照属性を含んでいれば、ユーザがコンテンツ１３０をクリックすると、クライアントブラウザ１１０はこれに応答して、必要であれば参照属性において指定される参照の送信を要求する。その後、クライアントブラウザ１１０はこの参照を受信し、レンダリングし、かつ表示してもよい。
【００４１】
一例として、クライアントブラウザ１１０のユーザが図２Ａに表示されたＨＴＭＬエレメントの例のコンテンツ１３０をクリックしていれば、クライアントブラウザ１１０は、その参照がｈｔｔｐ：／／ｗｗｗ．ｎｏｖａｒｒａ．ｃｏｍのＵＲＬであると決定し、これに応答してこの参照の送信を要求してもよい。クライアントブラウザ１１０が送信された参照を受信すると、クライアントブラウザ１１０はこの参照のブラウザコマンドを実行し、参照のＨＴＭＬエレメントをレンダリングする。その後、クライアントブラウザ１１０は、参照のレンダリングされたＨＴＭＬエレメントをブラウザウィンドウ１２０に表示する。図２Ｂに示すように、ウェブページ１４０は、参照ｈｔｔｐ：／／ｗｗｗ．ｎｏｖａｒｒａ．ｃｏｍのＨＴＭＬエレメントの表示である。
【００４２】
クライアントブラウザ１１０により受信される情報コンテンツは、１つ又は複数のスクリプトコマンドを含んでもよい。スクリプトコマンドは、ウェブブラウザなどのソフトウェアアプリケーションに対する指示である。ウェブブラウザに指示するスクリプトコマンドは、カスタムの機能又は追加の機能を提供するためにウェブページ内に組み込まれてもよい。表１は、ＨＴＭＬブラウザコマンド及びウェブページ内に組み込まれたＪａｖａＳｃｒｉｐｔスクリプトコマンドを有するウェブページを示す。
【００４３】
【表１】
0005551938.tif 000002
【００４４】
このウェブページは、ｈｔｍｌエレメントの「ｈｔｍｌ」開始タグで始まり、このウェブページはＨＴＭＬで記述されることをウェブブラウザに示す。本体エレメントの「ｂｏｄｙ」開始タグは、ウェブブラウザにウェブページの主要部分又は本体が始まる場所を知らせる。スクリプトエレメントの「ｓｃｒｉｐｔ」開始タグは、ウェブブラウザに、ウェブページ内に組み込まれたスクリプトコマンドが存在することを知らせる。ｓｃｒｉｐｔ開始タグのｌａｎｇｕａｇｅ属性は、スクリプトコマンドがＪａｖａＳｃｒｉｐｔスクリプト言語で記述されることを明記する。「／／」で始まる行は、ＪａｖａＳｃｒｉｐｔスクリプト言語におけるコメントである。ＪａｖａＳｃｒｉｐｔスクリプト言語の「ｄｏｃｕｍｅｎｔ．ｗｒｉｔｅ」コマンドは、ウェブブラウザにテキストを表示するように指示する。表１に示す例では、テキストは「ＪａｖａＳｃｒｉｐｔ  ｆｕｎｃｔｉｏｎａｌｉｔｙ」である。終了タグ「＜／ｓｃｒｉｐｔ＞」、「＜／ｂｏｄｙ＞」、及び「＜／ｈｔｍｌ＞」は各々、このウェブページのスクリプト、本体、及びｈｔｍｌエレメントを閉じる。
【００４５】
ウェブブラウザが「ｓｃｒｉｐｔ」タグに指定されるスクリプト言語をサポートしていなければ、スクリプトコマンドにより提供される機能はウェブブラウザのユーザへ提供されない場合がある。ウェブブラウザが実行されているコンピューティングデバイスがスクリプトエンジンを有していなければ、ウェブブラウザはスクリプト言語をサポートしない場合がある。スクリプトエンジンは、スクリプト言語を解釈して実行するために必要とされるソフトウェアである。さらに、コンピューティングデバイスの処理能力及び／又はメモリが、スクリプトエンジンを実行するには不十分である場合もある。スクリプトコマンドがウェブブラウザによって実行できなければ、ウェブブラウザはすべてのウェブページを表示しない場合がある。表１に示すウェブページ例の場合、ウェブブラウザがＪａｖａＳｃｒｉｐｔ用のスクリプトエンジンを有していなければ、ウェブブラウザはテキスト「ＪａｖａＳｃｒｉｐｔ  ｆｕｎｃｔｉｏｎａｌｉｔｙ」を表示しない場合がある。
【００４６】
３．ｎＳｃｒｉｐｔアプリケーションプログラミングインタフェース（ＡＰＩ）
【００４７】
本発明の一実施形態では、サーバブラウザ１０８は、情報コンテンツ内の１つ又は複数のスクリプトコマンドをクライアントブラウザ１１０上で実行可能な１つ又は複数のブラウザコマンドで置換してもよい。スクリプトコマンドは、クライアントブラウザ１１０上で実行できない場合がある。好適には、ブラウザコマンドは、ｎＳｃｒｉｐｔアプリケーションプログラミングインタフェース（ＡＰＩ）を使用して記述される。ｎＳｃｒｉｐｔＡＰＩは、少なくとも本明細書に明記されているｎＳｃｒｉｐｔＡＰＩの機能を備え、「ｎＳｃｒｉｐｔブラウザコマンド」は、本明細書に明記されているｎＳｃｒｉｐｔの機能の任意の部分を提供するように修正されたＨＴＭＬブラウザコマンドである。１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドは、クライアントブラウザ１１０が、そうでなければ少なくとも１つのスクリプトコマンドを実行することによって実行されると思われる共通のオペレーションを実行できるようにしてもよい。
【００４８】
ｎＳｃｒｉｐｔＡＰＩは、ＲＦＳＥ１１２に接続してこれを利用するための１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドを提供することによってＨＴＭＬを拡張してもよい。ＲＦＳＥ１１２は、１つ又は複数のスクリプトエンジン関数をクライアントブラウザ１１０へ提供することによって、ｎＳｃｒｉｐｔブラウザコマンドの実行をサポートする。クライアントブラウザ１１０は、少なくとも部分的にＲＦＳＥ１１２の１つ又は複数のスクリプトエンジン関数を実行することによって、ｎＳｃｒｉｐｔブラウザコマンドを実行してもよい。しかしながら、ＲＦＳＥ１１２は、クライアントブラウザ１１０が、非特許文献１に明記されているようなＪａｖａＳｃｒｉｐｔ１．５などのスクリプト言語で記述されたすべてのコマンドを実行できるようにする機能を提供することを含む、本明細書に記述しているものより多くの機能を伴ってもよいことは理解されるべきである。
【００４９】
図１に示すように、ＲＦＳＥ１１２はクライアントブラウザ１１０の一部である。ＲＦＳＥ１１２は、搭載するコンピュータ処理能力及びメモリが比較的少量であるクライアントデバイス１０６を含む広範囲のクライアントデバイス１０６上で実行可能であってもよい。
【００５０】
ｎＳｃｒｉｐｔＡＰＩは、関連したアイテムのグループ、並びにこの関連したアイテムのグループにおけるそれぞれのアイテムを決定するために使用されてもよいｎＳｃｒｉｐｔマークアップ構造を提供する。ｎＳｃｒｉｐｔＡＰＩは、関連したアイテムのグループを処理するためのｎＳｃｒｉｐｔ関数の組を提供する。ｎＳｃｒｉｐｔＡＰＩは、クライアントブラウザにより発生されるイベントの取り扱い（すなわち、サポート）を提供する。クライアントブラウザにより発生されるイベントは、１つ又は複数のｎＳｃｒｉｐｔ関数を使用して取り扱われてもよい。
【００５１】
ｎＳｃｒｉｐｔＡＰＩはウェブページの外部制御をサポートし、外部制御は、ユーザが選択可能な制御、例えばユーザインタフェースのボタン又はキーからのコマンドである。ｎＳｃｒｉｐｔＡＰＩはまた、ウェブページの内部制御をサポートし、内部制御は、ウェブブラウザによって講じられ、ユーザが選択可能な制御に直接的に関連しないアクションである。
【００５２】
本発明の一実施形態では、クライアントデバイス１１０上での使用及び／又は表示を意図した情報コンテンツを生成するための１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドを含む情報コンテンツが記述されてもよい。この実施形態では、ｎＳｃｒｉｐｔブラウザコマンドを使用して記述される情報コンテンツは、具体的にはクライアントデバイス１０６及び／又はクライアントブラウザ１１０上で使用し及び／又は表示するために設計される。この実施形態における情報コンテンツの例としては、（ａ）クライアントデバイス１０６及び／又はクライアントブラウザ１１０上に表示するように設計されたポータルページを含むウェブページ、（ｂ）クライアントデバイス１０６のためのクライアントブラウザベースのソフトウェアアプリケーション、及び（ｃ）クライアントデバイス１０６及び／又はクライアントブラウザ１１０上で使用可能な「ウィジェット」と称されるソフトウェアアプリケーション及び／又はウェブページの一部が含まれるが、この限りではない。
【００５３】
ｎＳｃｒｉｐｔブラウザコマンドで記述された情報コンテンツは、テストウェブブラウザを使用してテストされてもよい。但し、このテストウェブブラウザはクライアントブラウザ１１０でなくてもよい。テストウェブブラウザは、ｎＳｃｒｉｐｔブラウザコマンドを使用して記述されたウェブコンテンツの生成及び／又はテストを容易かつ簡便にするために使用されてもよい。また、テストウェブブラウザは、クライアントブラウザ上へ表示されるｎＳｃｒｉｐｔブラウザコマンドを使用して記述された情報コンテンツと、テストウェブブラウザを使用して表示される情報コンテンツとの間の互換性及び／又は等価性を保証するために使用されてもよい。
【００５４】
ａ．ｎＳｃｒｉｐｔマークアップ構造
【００５５】
１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドは、ｎＳｃｒｉｐｔマークアップ構造として配置されてもよい。ｎＳｃｒｉｐｔマークアップ構造は、アイテムのグループ、並びにそのアイテムのグループにおけるそれぞれのアイテムを決定する。ｎＳｃｒｉｐｔマークアップ構造は、１つ又は複数のＨＴＭＬ分割（＜ｄｉｖ＞）エレメントを備える。各ＨＴＭＬ分割エレメントは、そのエレメントをｎＳｃｒｉｐｔマークアップ構造の一部として識別する属性を含む。
【００５６】
表２は、４つのＨＴＭＬ分割エレメントを備えるｎＳｃｒｉｐｔマークアップ構造を示す。４つのＨＴＭＬ分割エレメントは各々、その分割エレメントを「ＮｏｖａｒｒａＧｒｏｕｐ」又は「ＮｏｖａｒｒａＧｒｏｕｐＩｔｅｍ」の何れかとして識別する「クラス」属性を有する。「ＮｏｖａｒｒａＧｒｏｕｐ」のクラスを有する分割エレメントはｎＳｃｒｉｐｔマークアップ構造におけるグループを決定し、「ＮｏｖａｒｒａＧｒｏｕｐＩｔｅｍ」のクラスを有する分割エレメントはｎＳｃｒｉｐｔマークアップ構造におけるグループ内のアイテムを決定する。グループアイテムは、以下の表４に示すイメージ（＜ｉｍｇ＞）エレメントなどの他のＨＴＭＬエレメントのクラス属性を使用して決定されてもよいことに留意されたい。アイテムのグループ又はアイテムのグループ内のアイテムを決定する分割エレメントは、分割エレメントの「ｉｄ」属性を使用してグループ又はグループアイテムの名称又は識別子を指定してもよい。
【００５７】
【表２】
0005551938.tif 000003
【００５８】
表２におけるｎＳｃｒｉｐｔマークアップ構造は、「ｔａｂ＿ｐａｇｅ＿１」、「ｔａｂ＿ｐａｇｅ＿２」及び「ｔａｂ＿ｐａｇｅ＿３」という名称の３つのグループアイテムを有する「ｍｙＧｒｏｕｐ」という名称のアイテムのグループを決定している。表２における第１の分割エレメントは、第１の分割エレメントのクラス属性が「ＮｏｖａｒｒａＧｒｏｕｐ」であるとしてアイテムのグループを決定し、かつこのアイテムのグループにｍｙＧｒｏｕｐの名称を指定する。表２における第２の分割エレメントは、第２の分割エレメントのクラス属性が「ＮｏｖａｒｒａＧｒｏｕｐＩｔｅｍ」であるとしてアイテムのグループｍｙＧｒｏｕｐにおけるアイテムを決定し、かつこのグループアイテムに「ｔａｂ＿ｐａｇｅ＿１」の名称を指定する。さらに、表２の第３の及び第４の分割エレメントは各々、アイテムのグループｍｙＧｒｏｕｐにおける「ｔａｂ＿ｐａｇｅ＿２」アイテム及び「ｔａｂ＿ｐａｇｅ＿３」アイテムを決定する。
【００５９】
分割エレメントのスタイル属性は、ディスプレイ情報をクライアントブラウザ１１０へ指示するために指定されてもよい。スタイルが指定されていなければ、クライアントブラウザ１１０は、初期状態でそのエレメントを表示してもよい。表２は、アイテムｔａｂ＿ｐａｇｅ＿１が指定されたスタイル属性を有しておらず、よって初期状態でクライアントブラウザ１１０によって可視化される（すなわち、表示される）ことを示している。表２はまた、アイテムｔａｂ＿ｐａｇｅ＿２及びｔａｂ＿ｐａｇｅ＿３が共に「ｄｉｓｐｌａｙ＝ｎｏｎｅ」というスタイル属性を有することを示している。スタイル属性「ｄｉｓｐｌａｙ＝ｎｏｎｅ」に応答して、クライアントブラウザ１１０は、初期状態ではグループアイテムｔａｂ＿ｐａｇｅ＿２及びｔａｂ＿ｐａｇｅ＿３を表示しない。ｔａｂ＿ｐａｇｅ＿２及びｔａｂ＿ｐａｇｅ＿３は、隠れオブジェクトの例である（すなわち、これらは初期状態では表示されない）。
【００６０】
ｎＳｃｒｉｐｔＡＰＩは、共通に表示されたアイテムのグループを処理するための一連の専門化されたグループ、又は「組み込み」グループを提供する。例えば、ピクチャ用の組み込みグループはｎＳｃｒｉｐｔの一部として提供される。ｎＳｃｒｉｐｔＡＰＩは、ＵＲＬのブラウザグループのユーザにより指定されるお気に入りのリンク用に組み込みグループを提供し、かつブラウザのユーザが最近訪れたリンクとして履歴リンク用の組み込みグループを提供する。これらの組み込みグループに類似する他のグループも可能であることは理解されるべきである。
【００６１】
リストとして表示されるべきピクチャのグループを生成するために、ＨＴＭＬ分割エレメント内の下記の組み込みグループが使用されてもよい。
【００６２】
＜ｄｉｖ  ｃｌａｓｓ＝“ＮｏｖａｒｒａＢｕｉｌｔＩｎＧｒｏｕｐ”  ｉｄ＝“ＮｏｖａｒｒａＰｉｃｔｕｒｅｓ”  ｔｙｐｅ＝“Ｌｉｓｔ”＞
【００６３】
組み込みグループ内のアイテムは、表２に示すような分割エレメントとして指定されてもよい。
【００６４】
ｂ．ｎＳｃｒｉｐｔ関数
【００６５】
ｎＳｃｒｉｐｔＡＰＩは、グループ内のグループアイテムの表示を処理制御するためのｎＳｃｒｉｐｔ関数の組を提供する。ｎＳｃｒｉｐｔ関数の組における各関数は、関連したアイテムのグループにおけるアイテム及び／又は関連したアイテムのグループ上で動作してもよい。
【００６６】
好適には、呼び出されるべきｎＳｃｒｉｐｔ関数は、ＨＴＭＬアンカーエレメントの一部として明記される。すなわち、ｎＳｃｒｉｐｔ関数の呼び出しは、文書オブジェクトモデル（ＤＯＭ）レベル０インラインエレメントとして明記される。
【００６７】
例えば、下記のｎＳｃｒｉｐｔブラウザコマンドは、ユーザがコンピュータマウスをクリックすると、「ＮｏｖａｒｒａＰｉｃｔｕｒｅｓ」と命名されたグループ内の次のアイテムを表示するために「ｓｅｔＧｒｏｕｐＮｅｘｔ」ｎＳｃｒｉｐｔ関数を呼び出す。
【００６８】
＜ａ  ｏｎｃｌｉｃｋ＝“ｓｅｔＧｒｏｕｐＮｅｘｔ（‘ＮｏｖａｒｒａＰｉｃｔｕｒｅｓ’）”  ｈｒｅｆ＝“＃”＞
【００６９】
ｎＳｃｒｉｐｔ関数の呼び出しを含むｎＳｃｒｉｐｔブラウザコマンドの構文は、ＪａｖａＳｃｒｉｐｔコマンドなどのスクリプト言語コマンドの構文と同じであっても、類似するものであってもよい。ｎＳｃｒｉｐｔブラウザコマンド及びスクリプト言語コマンドの双方に同じ（又は類似する）構文を使用することは、クライアントブラウザ１１０上でのウェブページのテスト及び／又は配備より前にテストウェブブラウザ上でのウェブページのテストを手助けする場合がある。
【００７０】
ｎＳｃｒｉｐｔ関数の例示的な組を表３に記す。
【００７１】
【表３】
0005551938.tif 000004
【００７２】
ｎＳｃｒｉｐｔ関数の組はこれらより多い、又は少ない数の関数を含んでもよいこと、及びｎＳｃｒｉｐｔ関数は他の機能を含んでもよいことは理解されるべきである。他の機能には、画像位置を変更する能力、フォーム操作オペレーション、追加のユーザ制御、自動データ更新、及び外部のデータソースとの相互作用が含まれてもよいが、この限りではない。
【００７３】
フォーム操作オペレーションは、フォームデータの検証及び／又はユーザフォームの自動記入（automatically completing）を含んでもよい。追加のユーザ制御は、ユーザ制御及び／又は追加のフォーカスオペレーションを備えてもよい。ユーザ制御は、メニュー、エディタ、ツリー及びカレンダーなどの制御を備えてもよい。追加のフォーカスオペレーションは、ユーザがグループアイテム上にフォーカス（マウス、キーボードナビゲーション制御又は他の指示デバイスによって指示されるユーザにとって関心のある位置）を置くとさらなる情報を提供しかつ／又はアイテムの表示を変更することを備えてもよい。自動データ更新は、ニュース、天気、スポーツのスコア、及び株価などの情報の自動更新を提供してもよい。外部のデータソースとの相互作用は、グーグルマップなどの外部のデータソースと相互に作用する１つ又は複数の機能を提供することを備えてもよい。
【００７４】
ｃ．ｎＳｃｒｉｐｔＡＰＩによるイベント処理
【００７５】
ｎＳｃｒｉｐｔ関数の組内の各ｎＳｃｒｉｐｔ関数は、イベント駆動システム内で発生されるイベントによってトリガされると実行されてもよい。イベント駆動システムは、イベント駆動システム内で発生するアクションに応答して１つ又は複数のイベントを発生させる場合のあるソフトウェアシステムである。イベント駆動システムの一例は、クライアントブラウザ１１０である。２つのイベントの例は、クライアントブラウザ１１０へのユーザ入力、又はクライアントブラウザ１１０によるオペレーション（例えば、ウェブページの表示）の完了である。各イベントは、全体として情報コンテンツに関連してもよく、かつ／又は情報コンテンツの特定のエレメントに関連してもよい。イベントの発生は、イベントトランスレータ１１４内のソフトウェアによって、又はクライアントブラウザ１１０内の他のソフトウェアによって実行されてもよい。
【００７６】
イベントの発生の一例として、以下のＨＴＭＬエレメントの例がレンダリングされたとき、表示されたコンテンツ「Ｎｏｖａｒｒａ」上をクリックするなどのように、ユーザがウェブブラウザにより表示されたエレメントをクリックする、又は選択すると、デフォルトのイベントが発生される。
【００７７】
＜ａ  ｈｒｅｆ＝“ｈｔｔｐ：／／ｗｗｗ．ｎｏｖａｒｒａ．ｃｏｍ”＞Ｎｏｖａｒｒａ＜／ａ＞
【００７８】
デフォルトイベントに応答して、ウェブブラウザは、上述したように、参照として指定されたウェブページを読み込む。
【００７９】
具体的には、１つ又は複数のイベントは、クライアントブラウザ１１０によって自律的に、又はクライアントブラウザ１１０のユーザによるアクションに起因して、クライアントブラウザ１１０によって発生されてもよい。クライアントブラウザ１１０により自律的に発生されるイベントの２つの例は、「オンロード（ｏｎｌｏａｄ）」イベント及び「オンショー（ｏｎｓｈｏｗ）」イベントであり、これらの各イベントは、ウェブページが各々クライアントブラウザ１１０によって読み込まれ、又は可視化されると発生される。ユーザのアクションによって発生されるイベントの３つの例は、クライアントブラウザ１１０のユーザがキーボード、マウス、タッチスクリーン又は他の選択デバイスを使用してウェブページのエレメントをフォーカス（すなわち、選択）すると発生される「オンフォーカス（ｏｎｆｏｃｕｓ）」（すなわち、フォーカス）イベント、クライアントブラウザ１１０によってウェブページのエレメントが表示されている間にユーザがキーを押すと発生される「オンキープレス（ｏｎｋｅｙｐｒｅｓｓ）」及び／又は「オンキーダウン（ｏｎｋｅｙｄｏｗｎ）」イベント、及び選択デバイスがクライアントブラウザ１１０により表示されたエレメントをクリックするために利用されると発生される「オンクリック（ｏｎｃｌｉｃｋ）」イベントである。ｎＳｃｒｉｐｔＡＰＩは、少なくともデフォルト（ｄｅｆａｕｌｔ）、オンロード（ｏｎｌｏａｄ）、オンショー（ｏｎｓｈｏｗ）、オンフォーカス（ｏｎｆｏｃｕｓ）、オンキープレス（ｏｎｋｅｙｐｒｅｓｓ）、及びオンキーダウン（ｏｎｋｅｙｄｏｗｎ）イベントのサポートを提供する。
【００８０】
ｎＳｃｒｉｐｔＡＰＩは、ｎＳｃｒｉｐｔイベントハンドラを使用してイベントを処理する能力を提供する。下記のアンカータグは、ｎＳｃｒｉｐｔイベントハンドラの一例である。
【００８１】
＜ａ  ｏｎｃｌｉｃｋ＝“ｓｅｔＧｒｏｕｐＮｅｘｔ（‘ＮｏｖａｒｒａＰｉｃｔｕｒｅｓ’）”  ｈｒｅｆ＝“＃”＞
【００８２】
アンカータグは、ｎＳｃｒｉｐｔ関数の名称を指定することにより、イベントを処理するｎＳｃｒｉｐｔイベントハンドラを指定する。このアンカータグの例では、ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＮｅｘｔがｏｎｃｌｉｃｋイベントを処理するように指定されている。その後、このアンカータグの例を備えるエレメントに対してｏｎｃｌｉｃｋイベントが発生されれば、クライアントブラウザ１１０はｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＮｅｘｔを実行する。ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＮｅｘｔは、そのアイテムのグループ内の次のアイテムを可視化する。これらのアイテムは、ウェブページに明記されるように順序づけられてもよく、及び／又はそのエレメントを指定するｎＳｃｒｉｐｔマークアップ構造内のエレメントの「ｉｄ」属性にしたがって順序づけられてもよい。
【００８３】
アイテムのグループにおける次のアイテムは、現在のアイテムに続く「ｉｄ」を有するエレメントであってもよい。例えば、３つのアイテムから成るグループが指定されていて、これらのアイテムは各々ｉｄ属性「ｉｔｅｍ１」、「ｉｔｅｍ２」、及び「ｉｔｅｍ３」で指定され、現在のアイテムがｉｔｅｍ２であると仮定する。この例では、アイテムのグループ内において、ｉｔｅｍ２の後に続くアイテムの「ｉｄ」はｉｔｅｍ３である。現在のアイテムがアイテムのグループにおける最終のアイテムであれば、後続のアイテムはアイテムのグループにおける最初のアイテムであってもよく、本例では、現在のアイテムがｉｔｅｍ３であれば、後続のアイテムはｉｔｅｍ１である。
【００８４】
同様に、アイテムのグループにおける先行のアイテムは、現在のアイテムに先行する「ｉｄ」を有するアイテムであってもよく、本例では、アイテムのグループの例におけるｉｔｅｍ２に先行するアイテムの「ｉｄ」はｉｔｅｍ１である。現在のアイテムがアイテムのグループの最初のアイテムであれば、先行のアイテムはアイテムのグループにおける最終のアイテムであってもよく、本例では、現在のアイテムがｉｔｅｍ１であれば、先行のアイテムはｉｔｅｍ３である。
【００８５】
イベントハンドラは、イベントの処理に複数のｎＳｃｒｉｐｔ関数が使用されることを指定してもよい。例えば、下記のｎＳｃｒｉｐｔイベントハンドラは、オンクリック（ｏｎｃｌｉｃｋ）イベントを処理するためにｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＶｉｓｉｂｌｅ及びｕｐｄａｔｅＧｒｏｕｐの双方をコールする。
【００８６】
＜ａ  ｏｎｃｌｉｃｋ＝“ｓｅｔＧｒｏｕｐＶｉｓｉｂｌｅ（）；ｕｐｄａｔｅＧｒｏｕｐ（）”  ｈｒｅｆ＝“＃”＞
【００８７】
１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドは、動的なウェブページ内に組み込まれてもよい。動的なウェブページは、情報コンテンツ上で共通のオペレーションを実行するための１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドを備えるウェブページである。一例として、１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドは、動的なウェブページが複数のタブを提供できるようにしてもよい。複数のタブの各々は、ウェブページの一部又は全体に対応してもよく、したがって、ユーザによる複数のタブのうちの１つのタブの選択は、選択されたタブに対応するウェブページの一部又は全体の表示を可能にする。
【００８８】
動的なウェブページの別の例は、複数のフォルダを提供する。複数のフォルダにおける各フォルダは、フォルダアイテムのグループを含んでもよく、各フォルダアイテムはＵＲＬ、画像ファイル、音声ファイル、テキストファイル又は他のデータソースであってもよい。ユーザは、動的なウェブページ上のフォルダを開けても、閉じてもよい。複数のフォルダのうちの１つのフォルダが開いていれば、そのフォルダアイテムのグループがユーザに表示される。複数のフォルダのうちの１つのフォルダが閉じていれば、そのフォルダアイテムのグループはユーザに表示されない。１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドは、開ける及び閉じるを含むフォルダのアクションを可能にする。本明細書に説明されているもの以外の動的なウェブページが、１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドを使用して記述されてもよいことは理解されるべきである。
【００８９】
ｄ．外部制御
【００９０】
ｎＳｃｒｉｐｔＡＰＩは、ウェブページが外部制御及び内部制御をサポートすることを可能にする。ｎＳｃｒｉｐｔＡＰＩは、ウェブページの外部制御をサポートし、外部制御は、ユーザが選択可能な制御（例えば、ユーザインタフェースのボタン又はキー）からのコマンドである。ｎＳｃｒｉｐｔＡＰＩはまた、ウェブページの内部制御をサポートし、内部制御は、ウェブブラウザにより講じられ、ユーザが選択可能な制御に直接的に関連しないアクションである。
【００９１】
より具体的には、ウェブページは、（１）ウェブページがユーザインタフェースのボタン、矢印又はこれらに類似する他のエレメントなどの１つ又は複数のユーザが選択可能な制御を指定し、（２）ユーザが選択可能な制御に対するユーザによる選択に応じて、ウェブページがウェブページのディスプレイを変更するときに、外部制御をサポートする。
【００９２】
表４は、ユーザがグループ「ｃａｐｅ＿ｉｍａｇｅｓ」におけるアイテムを循環させることを可能にする外部制御をサポートするウェブページの部分の例を示す。ユーザは、クライアントブラウザ１１０上に表示される左ボタン及び右ボタンをクリックすることによってアイテム間を循環することができ、表４の例において明記されている左ボタン及び右ボタンは、ユーザが選択可能な制御として動作する。左ボタン及び右ボタンは、それぞれ「ｐｉｃｌｅｆｔ．ｐｎｇ」画像及び「ｐｉｃｒｉｇｈｔ．ｐｎｇ」画像を指定するイメージエレメントをレンダリングすることによって表示される。ＨＴＭＬイメージエレメントは、終了タグを必要としないことに留意されたい。
【００９３】
【表４】
0005551938.tif 000005
【００９４】
図３Ａ、図３Ｂ、及び図３Ｃは各々、表４に示すｎＳｃｒｉｐｔブラウザコマンドを実行した後のクライアントブラウザ１１０のクライアントブラウザウィンドウ１５０を示す。左ボタン１５２及び右ボタン１５４が、クライアントブラウザ１１０のブラウザウィンドウ１５０に表示される。図３Ａでは、第１の画像１５６がブラウザウィンドウ１５０に表示されている。図３Ｂでは、第２の画像１５８がブラウザウィンドウ１５０に表示されている。図３Ｃでは、第３の画像１６０がブラウザウィンドウ１５０に表示されている。
【００９５】
第１の画像１５６、第２の画像１５８、及び第３の画像１６０は各々、グループｃａｐｅ＿ｉｍａｇｅｓのグループアイテムに対応する。ここで、対応するグループアイテムは各々、ｉｄ属性「ｃａｐｅ０」、「ｃａｐｅ１」、及び「ｃａｐｅ２」を有する画像エレメントである。初期状態では、グループアイテムｃａｐｅ１及びｃａｐｅ２は隠れアイテムであることから、グループアイテムｃａｐｅ０のみが表示される。グループアイテムｃａｐｅ１及びｃａｐｅ２は、「ｄｉｓｐｌａｙ：ｎｏｎｅ」というスタイル属性を有するので、隠れアイテムである。
【００９６】
左ボタン１５２及び右ボタン１５４は、クライアントブラウザ１１０のユーザがグループ内の画像間をナビゲートすること、及びグループ内のアイテムの可視性を制御することを可能にする。表４は、左ボタンのアンカータグが「ｏｎＣｌｉｃｋ＝ｓｅｔＧｒｏｕｐＰｒｅｖ（‘ｃａｐｅ＿ｉｍａｇｅｓ’）」という参照を備えることを示している。この参照は、ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＰｒｅｖを左ボタン１５２に関するデフォルトイベントを処理するためのイベントハンドラとして確立する。同様に、「ｏｎＣｌｉｃｋ＝ｓｅｔＧｒｏｕｐＮｅｘｔ（‘ｃａｐｅ＿ｉｍａｇｅｓ’）」という参照は、ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＮｅｘｔを右ボタン１５４に関するデフォルトイベントを処理するためのイベントハンドラとして確立する。
【００９７】
一例として、図３Ａに示すように、第１の画像１５６がブラウザウィンドウ１５０においてユーザに提示されていて、その後、ユーザが左ボタン１５２をクリックし、これによりデフォルトイベントが発生されると仮定する。左ボタン１５２のデフォルトイベントはｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＰｒｅｖによって処理され、この関数はこれに応答して、グループ内の先行のアイテムを可視化する。この例では、グループｃａｐｅ＿ｉｍａｇｅｓ内の最初のグループアイテムが現在のアイテムであることから、グループ内の先行のアイテムはグループの最終のアイテムであり、本例において、グループの最終の画像は第３の画像１６０である。ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＰｒｅｖはまた、グループ内の他のアイテムを不可視化することによってグループ内の他のアイテム、例えば第１の画像１５６及び第２の画像１５８にも影響し、すなわち、グループ内の他のアイテムを表示しない。図３Ｃは、ブラウザウィンドウ１５０内で可視化された第３の画像１６０の表示を示している。
【００９８】
第２の例として、同じく図３Ａに示すように第１の画像１５６がユーザに提示されていて、その後、ユーザが右ボタン１５４をクリックし、これによりデフォルトイベントが発生されると仮定する。右ボタン１５４のデフォルトイベントはｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＮｅｘｔによって処理され、この関数はこれに応答して、グループ内の次のアイテムが可視化される。この例では、グループｃａｐｅ＿ｉｍａｇｅｓ内の最初のグループアイテムが現在のアイテムであることから、グループ内の次のアイテムは第２のグループアイテムであり、本例において、グループの次のアイテムは第２の画像１５８である。ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＮｅｘｔはまた、グループ内の他のアイテム（例えば、第１の画像１５６及び第３の画像１６０）を不可視化する。図３Ｂは、ブラウザウィンドウ１５０内で可視化された第２の画像１５８の表示を示している。
【００９９】
表４に示した例に類似するキーボードナビゲーションのための機能性は、イベントハンドラとしてｎＳｃｒｉｐｔ関数ｈｏｒｉｚＧｒｏｕｐＮａｖを使用してもよい。（上記の表３に記述されている）ｎＳｃｒｉｐｔ関数ｈｏｒｉｚＧｒｏｕｐＮａｖは、左矢印キーが押されるとｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＰｒｅｖを呼び出し、右矢印キーが押されるとｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＮｅｘｔを呼び出す。上記の表４で決定されたグループｃａｐｅ＿ｉｍａｇｅｓのオンキーダウン（ｏｎｋｅｙｄｏｗｎ）イベントを処理するためにｎＳｃｒｉｐｔ関数ｈｏｒｉｚＧｒｏｕｐＮａｖを割り当てるｎＳｃｒｉｐｔブラウザコマンドの例を、以下に示す。
【０１００】
＜ａ  ｏｎｋｅｙｄｏｗｎ＝“ｈｏｒｉｚＧｒｏｕｐＮａｖ（‘ｃａｐｅ＿ｉｍａｇｅｓ’，‘ｃａｐｅ’，ｅｖｅｎｔ）”＞＜／ａ＞
【０１０１】
ｎＳｃｒｉｐｔ関数ｃｙｃｌｅＧｒｏｕｐは、タイマ切れに少なくとも部分的に基づいて関連した画像のグループの可視性を制御するように呼び出されてもよい。上記の表３において記述されているように、ｎＳｃｒｉｐｔ関数ｃｙｃｌｅＧｒｏｕｐは、ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＮｅｘｔを呼び出して、指定された画像の集合内の１つの画像を表示してもよい。ｎＳｃｒｉｐｔ関数ｃｙｃｌｅＧｒｏｕｐは、ある時間期間の後に時間切れになるようにタイマをセットしてもよく、この場合の時間期間は、ｎＳｃｒｉｐｔ関数ｃｙｃｌｅＧｒｏｕｐの呼び出しによって指定される。その時間期間の後にタイマが切れると、ｎＳｃｒｉｐｔ関数ｃｙｃｌｅＧｒｏｕｐはｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＮｅｘｔを呼び出して、グループ内の次の画像を表示してもよく、かつその時間期間の後に時間切れになるようにタイマをリセットしてもよい。ｎＳｃｒｉｐｔ関数ｃｙｃｌｅＧｒｏｕｐは、ｎＳｃｒｉｐｔ関数ｃｙｃｌｅＧｒｏｕｐが０以下のタイマ値で呼び出されるまで、（ｉ）ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＮｅｘｔを呼び出すステップと、（ｉｉ）タイマが時間切れになった時点でタイマを上記時間期間にリセットするステップとを繰り返す。
【０１０２】
ウェブページを読み込んだ時点でオンロード（ｏｎｌｏａｄ）イベントが発生されるとｎＳｃｒｉｐｔ関数ｃｙｃｌｅＧｒｏｕｐを呼び出すｎＳｃｒｉｐｔブラウザコマンドの例を、以下に示す。ｎＳｃｒｉｐｔ関数ｃｙｃｌｅＧｒｏｕｐは、各画像を５０００ミリ秒（５秒）間表示することによって、（表４で決定された）グループｃａｐｅ＿ｉｍａｇｅｓを含むウェブページを読み込むイベントを処理する。
【０１０３】
＜ａ  ｏｎｌｏａｄ＝“ｃｙｃｌｅＧｒｏｕｐ（‘ｃａｐｅ＿ｉｍａｇｅｓ’，５０００，‘ｃａｐｅ’）”＞＜／ａ＞
【０１０４】
ｅ．内部制御
【０１０５】
内部制御は、ウェブブラウザにより講じられ、ユーザによるアクションに直接的に関連しないアクションである。ユーザインタフェース設計の中には、可視化エレメントと共に可視性を変更するｎＳｃｒｉｐｔマークアップエレメントなどのイベントハンドラを提供するマークアップエレメントを必要とするものがある。このようなマークアップエレメントには、タブスタートページ、フォルダ又はフォーム全体の変更においてなど、多くの用途が存在する。例えば、ユーザがウェブページのエレメントを選択するとき、ウェブブラウザは選択されたエレメントを可視化してもよい。しかしながら、ウェブブラウザの１つ又は複数の内部制御は、ウェブページの１つ又は複数の他のエレメントを不可視化してもよい。
【０１０６】
表５は、内部制御をサポートするウェブページの一部の例を示す。図４Ａ及び図４Ｂは各々、表５に示すｎＳｃｒｉｐｔブラウザコマンドを実行した後のクライアントブラウザ１１０のクライアントブラウザウィンドウ１７０を示している。
【０１０７】
【表５】
0005551938.tif 000006
【０１０８】
このウェブページの部分の例は、グループアイテム「ｂｍ＿ｃｌｏｓｅｄ」及びグループアイテム「ｂｍ＿ｏｐｅｎ」を有するグループ「ｂｏｏｋｍａｒｋｓ」を生成する。初期状態では、グループアイテムｂｍ＿ｏｐｅｎは「ｄｉｓｐｌａｙ：ｎｏｎｅ」というスタイル属性で指定される通り、隠れアイテムであることから、クライアントブラウザはグループアイテムｂｍ＿ｃｌｏｓｅｄを表示する。グループアイテムｂｍ＿ｃｌｏｓｅｄのコンテンツは、閉じられたコンテンツ画像エレメント及び閉じられたコンテンツアンカータグを備える。閉じられたコンテンツ画像エレメントは、「ｆａｖｏｒｉｔｅｓ．ｐｎｇ」というソース属性を有するお気に入りの画像を備える。閉じられたコンテンツアンカータグは、デフォルトイベントのためのイベントハンドラを備える。デフォルトイベントのためのイベントハンドラはｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＶｉｓｉｂｌｅであり、このｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＶｉｓｉｂｌｅは、グループアイテムｂｍ＿ｏｐｅｎを可視化することによってデフォルトイベントを処理する。上記の表３に記述されているように、ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＶｉｓｉｂｌｅは内部制御として作用し、かつ他のすべてのグループアイテム（例えば、アイテムｂｍ＿ｃｌｏｓｅｄ）を不可視化する。
【０１０９】
図４Ａは、グループアイテムｂｍ＿ｃｌｏｓｅｄのコンテンツを表示するクライアントブラウザ１１０のクライアントブラウザウィンドウ１７０を示す。アイテムｂｍ＿ｃｌｏｓｅｄのコンテンツは、クライアントブラウザウィンドウ１７０に表示されているように、お気に入りの画像１７２及びサインクローズド（sign closed）画像１７４を備える。クライアントブラウザ１１０のユーザがサインクローズド画像１７４をクリックすれば、グループアイテムｂｍ＿ｃｌｏｓｅｄに対するデフォルトイベントが発生される。ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＶｉｓｉｂｌｅはこのデフォルトイベントを処理し、かつアイテムｂｍ＿ｏｐｅｎを可視化してアイテムｂｍ＿ｃｌｏｓｅｄを不可視化する。
【０１１０】
図４Ｂは、グループアイテムｂｍ＿ｏｐｅｎのコンテンツを表示するクライアントブラウザ１１０のクライアントブラウザウィンドウ１７０を示す。クライアントブラウザウィンドウ１７０は、図４Ａに示すサインクローズド画像１７４をユーザがクリックすることに応答して、グループアイテムｂｍ＿ｏｐｅｎのコンテンツを表示してもよい。アイテムｂｍ＿ｏｐｅｎのコンテンツは、開かれたコンテンツ画像エレメント、開かれたコンテンツアンカータグ及びブックマークリストを備える。開かれたコンテンツ画像エレメントは、閉じられたコンテンツ画像エレメント内で使用されたお気に入りの画像を備える。図４Ｂは、このエレメントに関して指示されるお気に入りの画像１７２を示す。
【０１１１】
開かれたコンテンツアンカータグは、「ｓｉｇｎ＿ｏｐｅｎ．ｐｎｇ」というソース属性によって画像エレメントにより指定されるコンテンツとしてのサインオープン（sign open）画像、及びデフォルトイベントのためのイベントハンドラを備える。図４Ｂは、サインオープン画像１７６を表示するブラウザウィンドウ１７０を示す。デフォルトイベントのためのイベントハンドラはｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＶｉｓｉｂｌｅであり、このｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＶｉｓｉｂｌｅは、グループアイテムｂｍ＿ｃｌｏｓｅｄを可視化することによってデフォルトイベントを処理する。
【０１１２】
グループアイテムｂｍ＿ｏｐｅｎが表示され、ユーザがサインオープン画像１７６をクリックすれば、グループアイテムｂｍ＿ｏｐｅｎのデフォルトイベントが発生され、ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＶｉｓｉｂｌｅがこのデフォルトイベントを処理する。ｎＳｃｒｉｐｔ関数ｓｅｔＧｒｏｕｐＶｉｓｉｂｌｅはグループアイテムｂｍ＿ｃｌｏｓｅｄを可視化し、かつ他のすべてのグループアイテム（例えば、グループアイテムｂｍ＿ｏｐｅｎ）を不可視化する。図４Ａは、サインクローズド画像１７４を表示することによって示されるようにグループアイテムｂｍ＿ｃｌｏｓｅｄが可視であり、かつグループアイテムｂｍ＿ｏｐｅｎが不可視であるブラウザウィンドウ１７０を示す。
【０１１３】
表５のウェブページの例において、ブックマークリストは３つのブックマーク、すなわち、ソリューションブックマーク、会社ブックマーク及び連絡先ブックマークを有する。再度図４Ｂを参照すると、ブラウザウィンドウ１７０は、ソリューションブックマーク１８２と、会社ブックマーク１８４と、連絡先ブックマーク１８６とを有するブックマークリスト１８０を表示している。ユーザによってブックマークが選択されれば、クライアントブラウザ１１０は、表示されたブックマークへの関連したリンクのコンテンツを表示する。例えば、連絡先ブックマーク１８６が選択されると、クライアントブラウザは、連絡先ブックマーク１８６のリンクｈｔｔｐ：／／ｗｗｗ．ｎｏｖａｒｒａ．ｃｏｍ／Ｃｏｍｐａｎｙ２．ｈｔｍのコンテンツを検索して表示する。
【０１１４】
クライアントデバイス１０６上で外部制御及び内部制御のサポートを提供することにより、ｎＳｃｒｉｐｔＡＰＩが必要とするサーバ１０４とクライアントデバイス１０６との間の通信は、ｎＳｃｒｉｐｔＡＰＩをサポートしないクライアントブラウザ１０８が必要とする通信より少ない。ｎＳｃｒｉｐｔを介したクライアントブラウザ１１０における内部制御及び外部制御のサポートは、クライアントブラウザ１１０が、典型的にはスクリプトエンジンによってレンダリングされるウェブページのエレメントに対する変更をレンダリングすることを可能にする。クライアントブラウザ１１０がウェブページのエレメントに対する変更をレンダリングすることができなければ、クライアントブラウザ１１０は、サーバ１０４がサーバブラウザ１０８を介してウェブページに対する変更を処理し、かつ変更されたウェブページをクライアントデバイス１０６へ送信することを要求しなければならなくなるであろう。したがって、クライアントデバイス１０６上で外部制御及び内部制御に対するサポートを提供することは、サーバ１０４とクライアントデバイス１０６との間の通信を減らす。
【０１１５】
３．サーバの例
【０１１６】
図５は、サーバ２００のブロック図である。サーバ２００は、メモリ２６０へ接続される情報ソースインタフェース２１０及びクライアントデバイスインタフェース２５０と、プロセッサ２７０とを含む。情報ソースインタフェース２１０は、サーバ２００と１つ又は複数の情報ソース２０２との間の通信インタフェースを提供する。クライアントデバイスインタフェース２５０は、サーバ２００と１つ又は複数のクライアントデバイス２５２との間の通信インタフェースを提供する。図５では分離して示されているが、情報ソースインタフェース２１０及びクライアントデバイスインタフェース２５０は１つのインタフェースとして実装されてもよい。
【０１１７】
プロセッサ２７０は、少なくとも図６に描かれた方法を実行するソフトウェアを実行するに足る処理能力を有する１つ又は複数のコンピュータプロセッサを備える。メモリ２６０は１つ又は複数の記憶デバイスを備え、これらは、少なくとも上記ソフトウェアを記憶するに足る記憶容量を有する揮発性及び／又は不揮発性メモリを備えてもよく、かつ上記ソフトウェアが図６のフローチャートに描かれた方法を実行するために必要とする任意の追加のメモリを備えてもよい。
【０１１８】
プロセッサ２７０は、メモリ２６０にアクセスして、コンテンツ修正モジュール２２０、スクリプト言語実行モジュール２３０、及び情報ソースアセンブラモジュール２４０の動作を可能にするソフトウェア又はプログラム命令を実行する。コンテンツ修正モジュール２２０は、情報コンテンツをクライアントデバイス２５２上に表示され得る等価な変換された情報コンテンツへ変換するためにプロセッサ２７０により実行可能なソフトウェアアプリケーションである。特に、コンテンツ修正モジュール２２０は、少なくとも１つのスクリプトコマンドを含む情報コンテンツを、クライアントデバイス２５２上に存在するクライアントブラウザによって実行可能な少なくとも１つのブラウザコマンドを含む等価な変換された情報コンテンツへ変換するように動作可能である。スクリプト言語実行モジュール２３０は、１つ又は複数のスクリプト言語コマンドを実行してウェブページをレンダリングするためにプロセッサ２７０により実行可能なソフトウェアアプリケーションである。情報ソースアセンブラモジュール２４０は、情報ソース変換器２２０及びスクリプト言語実行モジュール２３０からの入力からクライアントデバイス２５２上に表示され得る情報ソースを組み立てるためにプロセッサ２７０により実行可能なソフトウェアアプリケーションである。
【０１１９】
４．クライアントデバイス上へ表示する情報コンテンツの処理方法
【０１２０】
図６は、クライアントデバイス上へ表示する情報コンテンツを処理する方法３００の機能ブロックの例を示したフローチャートである。このフローチャートにおける各ブロック、及び本明細書に提示された他のフローチャート内の各ブロックが、プロセスにおける特定の論理機能又はステップを実装するための１つ又は複数の実行可能な命令を含むコンピュータプログラムコードのモジュール、セグメント又は一部を表す場合があることは理解されるべきである。説明している実施形態の一般的な当業者には理解されるであろうが、機能が、含まれた機能性に応じて、図示された又は議論されたものとは異なる順序、実質的に同時又は逆順を含む、で実行されてもよい代替の実装は、本実施形態の例の範囲に含まれる。
【０１２１】
ブロック３１０において、方法３００は、サーバで情報コンテンツを受信することを含む。情報コンテンツは、ウェブブラウザ上で実行されるように動作可能であるスクリプト言語で記述された少なくとも１つのスクリプトコマンドを備える。この少なくとも１つのスクリプトコマンドは、ＪａｖａＳｃｒｉｐｔスクリプト言語で記述されてもよい。
【０１２２】
ブロック３２０において、方法３００は、情報コンテンツ内の少なくとも１つのスクリプトコマンドの機能を決定することを含む。方法３００は少なくとも１つのスクリプトコマンドの機能を、この少なくとも１つのスクリプトコマンドのキーワード、パターン及び／又は構造を調査することによって決定する。
【０１２３】
少なくとも１つのスクリプトコマンドにおけるキーワード及び／又は構造の調査は、この少なくとも１つのスクリプトコマンドが少なくとも１つのブラウザコマンドによって置換されてもよいことを表す場合がある。例えば、１つ又は複数のオブジェクトは、ＪａｖａＳｃｒｉｐｔスクリプト言語を使用して生成されてもよい。ＪａｖａＳｃｒｉｐｔでは、オブジェクトは「隠れオブジェクト」（初期状態ではウェブブラウザにより示されない）であってもよく、オブジェクトの属性「ｄｉｓｐｌａｙ．ｖａｌｕｅ」を「ｎｏｎｅ」に等しく設定することによって生成されてもよい。したがって、「ｄｉｓｐｌａｙ．ｖａｌｕｅ＝ｎｏｎｅ」のキーワード探索は隠れオブジェクトを発見する場合があり、次にこれは、類似の隠れオブジェクトを生成する１つ又は複数のブラウザコマンドで置換されてもよい。別の例として、グーグルマップライブラリなどの広く使用されているスクリプトライブラリは、「ｇｏｏｇｌｅ」などのキーワードを探索することによって識別されてもよい。次に、１つ又は複数のブラウザコマンドが、広く使用されているスクリプトライブラリを参照する１つ又は複数のスクリプトコマンドを置換するために使用されてもよい。
【０１２４】
少なくとも１つのスクリプトコマンドの文法構造及び／又は少なくとも１つのスクリプトコマンド内のパターンは、この少なくとも１つのスクリプトコマンドの機能を決定してもよい。（以下のブロック３３０において記述される）スクリプト言語インタープリタは、少なくとも１つのスクリプトコマンドの文法構造を決定してもよい。（以下のブロック３３０において記述される）パターン認識装置は、少なくとも１つのスクリプトコマンド内のパターンを決定してもよい。
【０１２５】
ブロック３３０において、方法３００は、少なくとも１つのスクリプトコマンドを少なくとも１つの代用のブラウザコマンドで置換することを含み、この場合、少なくとも１つの代用のブラウザコマンドは、ブロック３２０で識別された少なくとも１つのスクリプトコマンドの機能を有する。スクリプトコマンドを代用のブラウザコマンドに置換するいくつかの例は、（１）外部制御に基づいて画像の可視性を変更するスクリプトコマンドを上記の表４に示すブラウザコマンドで置換すること、（２）ブックマークを処理するスクリプトコマンドを上記の表５に示すブラウザコマンドに置換すること、及び（３）隠れオブジェクトを生成するスクリプトコマンドを、類似の隠れオブジェクトを生成する上記の表２に示すものに類似するブラウザコマンドに置換することである。好適には、ブラウザコマンドは少なくとも１つのｎＳｃｒｉｐｔブラウザコマンドを備える。
【０１２６】
ブラウザコマンドによるスクリプトコマンドの置換は、データベースの使用によって実装されてもよい。データベースは１つ又は複数のｎＳｃｒｉｐｔブラウザコマンドを記憶してもよく、かつデータベースクエリに応答して、記憶されたｎＳｃｒｉｐｔブラウザコマンドを検索してもよい。データベースクエリは、構造化問合せ言語(Structured Query Language)（ＳＱＬ）、Ｊａｖａ（登録商標）におけるＳＱＬ(SQL in Java)（ＳＱＬＪ）、共通問合せ言語(Common Query Language)（ＣＱＬ）及び／又はオブジェクト問合せ言語(Object Query Language)（ＯＱＬ）などのデータベース問合せ言語又は情報検索問合せ言語で記述されてもよい。
【０１２７】
記憶されたｎＳｃｒｉｐｔブラウザコマンドは、１つ又は複数のテンプレートコマンドを備えてもよく、この場合、テンプレートコマンドは、データベースからの検索の後、テンプレートコマンドが情報エレメントに使用される前に、追加の処理を必要とする。このような追加の処理は、関連したアイテムのグループの名称をテンプレートコマンドに挿入すること、又は関連したアイテムのグループ内のアイテムの名称をテンプレートコマンドに挿入することを含んでもよいが、この限りではない。
【０１２８】
データベースクエリは、サーバによって定式化されてもよい。データベースクエリは、スクリプトコマンドの一部又はすべてを備えてもよい。データベースクエリは、情報コンテンツ内に発見される１つ又は複数のキーワードを備えてもよい。データベースクエリは、スクリプトコマンドの構造に関する情報を備えてもよい。スクリプトコマンドの構造に関する情報は、スクリプトコマンドのいくつか、又はすべてを備えてもよい。
【０１２９】
代用のブラウザコマンドによる情報コンテンツ内のスクリプトコマンドの置換は、パターン認識装置の使用を含んでもよい。パターン認識装置は、情報コンテンツ内のスクリプトコマンドにおけるパターンを認識し、スクリプトコマンドの認識されたパターンを代用のブラウザコマンドで置換してもよい。
【０１３０】
情報コンテンツ内のスクリプトコマンドのパターンは、命名規則及び／又は標準ソフトウェアライブラリへの参照を含んでもよい。命名規則は、スクリプトコマンドにおけるパターンを決定してもよい。命名規則の一例は、アイテムの可視性を制御するためのスクリプトコマンド内の「ｖｉｓｉｂｌｅ」又は「ｍａｋｅ＿ｖｉｓｉｂｌｅ」などの変数の変数名の使用である。１つ又は複数の標準ソフトウェアライブラリへの参照は、スクリプトコマンド内のパターンであってもよい。例えば、パターン認識装置は、１つ又は複数のスクリプトコマンド内でフラッシュアニメーション機能を提供する標準ソフトウェアライブラリへの参照におけるパターンを決定してもよい。次に、パターン認識装置は、命名規則及び／又は参照標準ソフトウェアライブラリに準じるスクリプトコマンドを、同じ機能を実行する代用のブラウザコマンドに置換してもよい。
【０１３１】
パターン認識装置は、情報コンテンツにおける１つ又は複数の関連したブラウザコマンドも調査することによって、スクリプトコマンド内のパターンを認識してもよい。例えば、パターン認識装置は、おそらく関連したブラウザコマンドと共に１つ又は複数の共通する機能を実行するスクリプトコマンドのパターンを認識してもよい。次に、パターン認識装置は、スクリプトコマンド及び／又は関連したブラウザコマンドを、１つ又は複数の同じ機能を実行する代用のブラウザコマンドに置換してもよい。例えば、パターンは、アイテムのグループの可視性を制御するスクリプトコマンドにおいて認識されてもよく、この場合、アイテムのグループはブラウザコマンドを用いて生成される。この例では、パターン認識装置は、スクリプトコマンド及び／又は関連したブラウザコマンドを、アイテムのグループを生成しかつ／又はアイテムのグループの可視性を制御する代用のブラウザコマンドに置換してもよい。
【０１３２】
代用のブラウザコマンドによるスクリプトコマンドの置換は、スクリプト言語インタープリタを使用して実装されてもよい。スクリプト言語インタープリタは、スクリプト言語で記述された１つ又は複数のスクリプトコマンドを読み込み、スクリプトコマンドの字句解析及び／又はスクリプトコマンドの構文解析を実行してスクリプトコマンドの文法構造を決定し、かつスクリプトコマンドの文法構造と同じ、又はこれに類似する文法構造を有する１つ又は複数の代用のブラウザコマンドを出力してもよい。
【０１３３】
スクリプトコマンドの字句解析は、スクリプトコマンドの各々に対応する１つ又は複数のトークンを決定することを含んでもよい。トークンは、スクリプト言語の１つ又は複数の字句規則にしたがってスクリプトコマンドを類別することにより決定されてもよい。字句規則は、用語が等しいことを意味するキャラクタ「＝」の使用などのテキストパターンを説明するものであってもよい。入力「＝」のトークンの一例は、ＥＱＵＡＬＳであってもよい。
【０１３４】
スクリプトコマンドの文法構造の構文解析又は決定は、トークンをスクリプト言語のパーサへの入力として使用することを含んでもよい。スクリプト言語のパーサは、スクリプト言語の１つ又は複数の文法規則に従ったトークンの類別に基づいてトークンを構文解析してもよい。スクリプト言語の文法規則は、変数が等号の左側にある場合に、変数への値の代入を決定することなど、スクリプト言語の文法を定義してもよい。この例では、パーサは、ＶＡＲＩＡＢＬＥ（ｘ）  ＥＱＵＡＬＳ  ＶＡＲＩＡＢＬＥ（ｙ）などのトークンストリングを、トークンＥＱＵＡＬの右側の変数ｙに保持された値をトークンＥＱＵＡＬの左側の変数ｘへ代入する文法構造へ翻訳する文法規則を有してもよい。スクリプトコマンドの文法構造が決定されると、好適にはｎＳｃｒｉｐｔで記述される１つ又は複数の代用のブラウザコマンドが、１つ又は複数のスクリプトコマンドを置換するために同じ（又は類似の）文法構造によって発生されてもよい。
【０１３５】
ブロック３４０において、方法３００は、変換された情報コンテンツを組み立てることを含む。変換された情報コンテンツは、まず情報コンテンツをコピーし、次にコピーされた情報コンテンツにおけるすべてのスクリプトコマンドを除去することによって組み立てられてもよい。変換された情報コンテンツ内の少なくとも１つの挿入位置が、１つ又は複数の代用のブラウザコマンド用に決定されてもよく、次に、１つ又は複数の代用のブラウザコマンドがその挿入位置に挿入される。
【０１３６】
例えば、下記の表６に示すように、情報コンテンツはスクリプトコマンドＳ１、Ｓ２及びＳ３を備え、スクリプトコマンドＳ１、Ｓ２及びＳ３はＨＴＭＬエレメントＥ１、Ｅ２、Ｅ３、Ｅ４を備えるウェブページに埋め込まれ、かつスクリプトコマンドＳ１、Ｓ２及びＳ３はＨＴＭＬエレメントＥ４によって呼び出されるものと仮定する。
【０１３７】
【表６】
0005551938.tif 000007
【０１３８】
さらに、ｎＳｃｒｉｐｔで記述されたエレメントＥ５は、スクリプトコマンドＳ１、Ｓ２、及びＳ３、並びにスクリプトコマンドの呼び出しを置換するためにＥ４内の挿入ポイントに挿入されるものと仮定する。変換された情報コンテンツでは、元の情報エレメントがコピーされ、次いでＳ１、Ｓ２、及びＳ３が除去される。Ｅ４内の挿入ポイントにおけるＥ５の挿入は、Ｅ４のコンテンツをＥ４の第１の元のコンテンツとＥ４の第２の元のコンテンツとに分離してもよい。下記の表７は、変換された情報コンテンツを示す。
【０１３９】
【表７】
0005551938.tif 000008
【０１４０】
ブロック３５０において、方法３００は、変換された情報コンテンツをサーバからクライアントデバイスへ送信することを含む。サーバは、変換された情報コンテンツを、クライアントデバイスインタフェース２５０を使用して送信してもよい。
【０１４１】
５．まとめ
【０１４２】
ＪａｖａＳｃｒｉｐｔコマンドの変換を含むスクリプトコマンドの変換を使用して本件出願を説明したが、他のタイプのスクリプトコマンドがこれまでに説明したものと同じ、又は類似の方法で変換されてもよい。例えば、とりわけＪＳｃｒｉｐｔ、ＶＢＳｃｒｉｐｔ、Ｖｉｓｕａｌ  Ｂａｓｉｃ及び／又はＴｃｌなどの言語で記述されたスクリプトコマンドが変換されてもよい。別段の指示のない限り、本明細書に記述されたプログラム、プロセス、方法及びシステムは、任意の特定のタイプのコンピュータ又はネットワークシステム（ハードウェア又はソフトウェア）に関連づけられず、又は限定されないことは理解されるべきである。様々なタイプの汎用の又は専用のコンピュータシステムは、本明細書に記述された教示内容にしたがって使用されてもよく、又はオペレーションを実行してもよい。
【０１４３】
さらに、本明細書に記述されている種々の配置は単に例示を目的とするものであることも理解されるべきである。したがって当業者には、所望される結果に応じて、他の配置及び他の構成要素（例えば、マシン、インタフェース、関数、順序及び関数のグループ化、他）を代用でき、かついくつかの構成要素は完全に省略されてもよいことが認識されるであろう。さらに、記述されている構成要素の多くは、離散又は分散コンポーネントとして、又は他のコンポーネントと共に任意の適切な組み合わせ及びロケーションで実装されてもよい機能エンティティである。
【０１４４】
本件出願の原理を適用できる広範な実施形態を考慮して、説明された実施形態は単に例示的なものであり、よって本件出願の範囲を限定するものとして捉えられるべきでない点は理解されるべきである。例えば、フロー図の諸ステップは、記述されているもの以外の順序で講じられてもよく、より多い、又はより少ない数の構成要素がブロック図において使用されてもよい。実施形態の様々な構成要素はソフトウェアで実装されるものとして説明されているが、他の実施形態ではハードウェア又はファームウェアによる実装が代替的に使用されてもよく、逆もまた可能である。
【０１４５】
本件出願を完全に機能的なサーバ及びクライアントデバイスシステム及び方法のコンテキストで説明したが、当業者であれば、本件出願のメカニズムは命令のコンピュータ読み取り可能な媒体の形式で様々な形に分散され得ること、及び本件発明は実際に分散の実行に使用される特定のタイプの信号伝送媒体（signal bearing media）に関わらず等しく適用されることを認識する点に留意されたい。例えば、コンピュータ使用可能な媒体（computer usable media）は、コンピュータ読み取り可能なプログラムコードセグメントが記憶されている、ハードドライブデバイス、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、又はコンピュータディスケットなどの読み取り可能なメモリデバイスを含むことが可能である。コンピュータ読み取り可能な媒体はまた、デジタルデータ信号又はアナログデータ信号としてプログラムコードセグメントを搬送している光学式、有線又は無線の何れかであるバス又は通信リンクなどの通信媒体又は伝送媒体を含むことが可能である。したがって、本明細書に記述されている方法は、サーバ１０４又はクライアントデバイス１１０内に存在するものとして記述されている１つ又は複数のコンピュータ読み取り可能な媒体を含むコンピュータプログラム製品において具現されてもよい。
【０１４６】
特許請求の範囲は、その旨の記述のない限り、本明細書に記述されている順序又は構成要素に限定されるものとして読まれるべきではない。したがって、下記の特許請求の範囲及びその同等物の範囲及び精神に包含されるすべての実施形態は、発明として請求される。
【０１４７】
本特許文書の開示内容の一部は、著作権保護の対象である資料を含んでいる。著作権所有者は、それが特許商標庁のファイル又は記録に存在するものであれば如何なる者による特許文書又は特許開示の複製にも異議を唱えるものではないが、それ以外は如何なるものもすべて著作権により保護される。
【図１】
0005551938.tif 000009
【図２Ａ】
0005551938.tif 000010
【図２Ｂ】
0005551938.tif 000011
【図３Ａ】
0005551938.tif 000012
【図３Ｂ】
0005551938.tif 000013
【図３Ｃ】
0005551938.tif 000014
【図４Ａ】
0005551938.tif 000015
【図４Ｂ】
0005551938.tif 000016
【図５】
0005551938.tif 000017
【図６】
0005551938.tif 000018