説明

ウェブコンテンツ適合化プロセスおよびシステム

【課題】ウェブコンテンツ適合化プロセスおよびシステム
【解決手段】ウェブページコンテンツを適合させる装置及び方法について説明されている。ウェブページコンテンツをより小型の所定の表示装置において表示するために適合させることは、該コンテンツを幾つかのより小さいページにわたって分割することをしばしば要求する。該装置及び方法は、プロセスを最適化するためにコンテンツ分割プロセスと変換の実施(例えば、フォントサイズ、画像、等の縮小)を統合する手順に関連する。該手順は、ウェブページコンテンツ全体にわたって体系的に実施され、該コンテンツを反復的により小さい部分に分割することと、これらのより小さいページ上において見ることができる空白スペース量を最小にするために様々な変換を同時に実施すること、とを繰り返す。更に、好ましい実施形態は、オブジェクトに関して既に実施されている変換を追跡し、更に、これらの変換をのちにその他の類似のオブジェクトに関しても実施することによって一貫性を確保する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ウェブページコンテンツを複数のより小さいウェブページに分割することによって所定の表示装置において表示できるように適合させる装置およびシステムに関するものである。
【背景技術】
【0002】
ウェブコンテンツを異なった種類のデバイスに引き渡すことは、コンテンツソースについて理解して該コンテンツソースをデバイス特性に適合する形で異なった種類のデバイス(デスクトップPC、PDA、及び携帯電話、等)に引き渡すことができるように該ウェブコンテンツを理解、再構築及び個別適合化するプロセスである。従来の技術(例えば、Current Technologies for Device Independent, Mark H Butler, HP Labs Technical Report HPL-2001-83 4 April 2001)(デバイスに依存しないための現在の技術、マークHバトラー、HP研究所技術報告書HPL−2001−83 2001年4月4日を参照)では、現在知られている方法は以下の3つである。
【0003】
第1の方法では、ウェブ開発者/著者は、ウェブコンテンツ開発段階において、ウェブページ開発ソフトを用いて、コンテンツが異なった種類のデバイスに適合するように手作業で適合させることができる。この方法によって、単一のコンテンツソースの異なったバージョン(HTML/CSS、WML、XML/XSL、等)をデバイスの能力に基づいて作り出すことができる。この手法は、ウェブコンテンツを異なった種類のデバイスに引き渡す上で最も原始的な方法であり、大量のバージョンが要求される場合はウェブ開発者/著者にとって時間のかかる面倒な仕事である。
【0004】
第1の方法よりも自動的である第2の手法は、エンドユーザーがHTTP要求を通じてURIリンクを提出時に速やかに適合化作業を行うプロキシサーバーを通じての、プロキシに基づくトランスコーディング手法を用いる。この手法は、プロキシサーバーに計算が集中しており、その結果システム応答時間が低速になる。更に、適合されたウェブコンテンツの原ウェブ開発者/著者が介在しておらず、国によっては法律上および著作権上の問題が発生するおそれがある。
【0005】
第3の既知の方法は、適合化システムソフトをクライアント側にインストールすることによってクライアントに基づく(エンドユーザーデバイス)適合化手法を用いる方法である。クライアントに基づく適合化システムは、要求を受けたウェブサーバーによって戻された結果を受け取り後速やかにウェブコンテンツを適合化させる。この手法は、クライアント側に計算が集中しており、その結果クライアントの処理性能を費やして低下させることになる。この場合も、適合されたウェブコンテンツの原ウェブ開発者/著者が介在しておらず、法律上および著作権上の問題が同様に発生するおそれがある。更に、この手法は、計算能力に限界がある小型のモバイルデバイスには利用することができない。
【0006】
適合化の一環として、PDA及びWAP電話、等のクライアント表示装置は小型であることに鑑みて1つのウェブコンテンツページを複数のより小さいページに分割することが必要になることがある(コンテンツ分割と呼ばれる)。例えば、PCウェブページ(800x600画素、等)のコンテンツを読み取り可能な形でより小型の表示装置(240x320画素のPDA、等)に提供する場合は、空白スペース量を最小限にすることを試みつつ該コンテンツが最も少ない数のより小さいページ内に納まるように適合させるのが望ましい。
【0007】
従来の既知のコンテンツ分割方法は、"System, Method and Computer Program Product for Page Rendering Utilizing Transcoding"(トランスコーディングを利用したページ提供のためのシステム、方法及びコンピュータプログラム製品)という題名の米国特許出願No.09/942,051(US2003/0050931 A1として発行)において説明されている方法を含む。この文書は、ウェブコンテンツを複数のページに分割することによって異なった種類の閲覧装置上において表示できるように適合させることができるシステムについて説明している。該システムは、最初に、ウェブコンテンツを使用し、XMLを用いて階層ツリー構造を構築し、次に、(閲覧装置によってサポートされているテキストフォントに変更し、さらに冗長な情報を変数への参照に置き換えることによって)該階層ツリー構造を閲覧装置において表示できるようにフォーマット化する。次に、フォーマット化された構造を閲覧装置に出力するために複数のページに分割する。しかしながら、該手法は、コンテンツを分割してクライアント表示装置に適合させるという目標は達成させる一方で、空白スペース量を最小限に抑えるという望ましい目標は達成させない。
【発明の開示】
【発明が解決しようとする課題】
【0008】
従って、ウェブページコンテンツを所定の表示装置において表示するために適合させさらに従来の技術の欠点(特に、コンテンツとともに表示される空白スペース量を最小限に抑えるように試みることに関する欠点)を有していないさらなる手法を開発する必要がある。
【課題を解決するための手段】
【0009】
本発明は、上記の要求を満たすため、所定の表示装置において表示するためにウェブページコンテンツを適合させる装置および方法を提供する。本出願明細書においては、分割と変換と結合させた統合プロセスが、コンテンツの表示サイズを適合させるために反復的な形で提供される。このことは、ページ上に現れる空白スペース量を最小にしつつ適切な数のより小さいウェブページにコンテンツを分割することを可能にする。この前後関係において、「変換」という用語は、例えば、画像のサイズの縮小/拡大/テキスト削除/コンテンツ交換、等を含むことができる。
【0010】
本発明の第1の側面においては、ウェブページコンテンツを所定の表示装置において表示するために適合させる装置が提供されており、該装置は、該コンテンツを該表示装置において表示するために複数のより小さいウェブページに分割するための適合化手段を具備し、該適合化手段は、下記の手順を実行するように準備されている。
【0011】
(i)該コンテンツを複数のコンテンツ部分に分割し、更に、該コンテンツ部分のうちの少なくとも1つに関してステップ(ii)乃至(vi)を反復的に繰り返す。
【0012】
(ii)該コンテンツを解析し、該コンテンツ部分のサイズが該表示装置において表示するのに適しているかどうかを決定する。
【0013】
(iii)該コンテンツ部分のサイズが該表示装置において表示するのに適していない場合は、複数の変換を該コンテンツ部分に関して実施する。
【0014】
(iv)変換されたコンテンツを解析し、変換されたコンテンツ部分のサイズが該表示装置において表示するのに適しているかどうかを決定する。
【0015】
(v)変換されたコンテンツ部分のサイズが該評価装置において表示するのに適していない場合は、該コンテンツ部分を複数のさらなるコンテンツ部分に分割する。
【0016】
本発明の第2の側面においては、ウェブページコンテンツを所定の表示装置において表示するために適合させる方法が提供されており、該方法は、下記のステップを実行することによって、該コンテンツを該表示装置において表示するために複数のより小さいウェブページに分割することを具備する。
【0017】
(i)該コンテンツを複数のコンテンツ部分に分割し、更に、該コンテンツ部分のうちの少なくとも1つに関してステップ(ii)乃至(vi)を反復的に繰り返す。
【0018】
(ii)該コンテンツを解析し、該コンテンツ部分のサイズが該表示装置において表示するのに適しているかどうかを決定する。
【0019】
(iii)該コンテンツ部分のサイズが該表示装置において表示するのに適していない場合は、少なくとも1つの変換を該コンテンツ部分に関して実施する。
【0020】
(iv)変換されたコンテンツを解析し、変換されたコンテンツ部分のサイズが該表示装置において表示するのに適しているかどうかを決定する。
【0021】
(v)変換されたコンテンツ部分のサイズが該表示装置において表示するのに適していない場合は、該コンテンツ部分を複数のさらなるコンテンツ部分に分割する。
【0022】
本発明の第3の側面においては、コンピュータシステムによって実行時に該コンピュータシステムに上記の方法を実施させるように配備された1つのコンピュータプログラム又は一組のプログラムが提供されている。該1つの又は複数のプログラムは、該コンピュータプログラム又は該一組のプログラムのうちの少なくとも1つに対応するデータを組み込んだ変調搬送信号(例えば、インターネット等のネットワーク上で搬送される信号)によって具体化することができる。
【0023】
更に、さらにもう1つの側面においては、本発明は、第3の側面に従った1つのコンピュータプログラム又は一組のコンピュータプログラムのうちの少なくとも1つを格納する、コンピュータによって読み取り可能な記憶媒体も提供する。該コンピュータによって読み取り可能な媒体は、コンピュータによって読み取り可能なあらゆる磁気記憶媒体、光学記憶媒体、磁気光学記憶媒体、ソリッドステート記憶媒体、又はその他の記憶媒体であることができる。
【0024】
上述されておりさらに付随の請求項によって説明されている本発明の側面、および本出願明細書および付随の請求項において説明されているあらゆる好ましい特長は、当業者にとって明確であるあらゆる適切な組合せで組み合わせることができる。
【0025】
例示することのみを目的として示されている本発明の実施形態に関する以下の説明及び添付図面を参照することによって、本発明のさらなる特長及び利点が明確になる。尚、これらの図においては、同一のものについては図面全体に渡って同一の参照番号を付けることとする。
【発明を実施するための最良の形態】
【0026】
図1乃至6を参照しつつ本発明の1つの実施形態について説明する。
【0027】
図1は、本発明の実施形態によって提供されるシステムのシステムブロック図である。このシステムは、次に説明する8つの副構成要素を具備する。システムの全動作については後述される。
【0028】
第1に、クライアント能力発見モジュール12が提供される。このモジュールの目的は、エンドユーザーのデバイスの特性、例えば、デバイスの型及びデバイスの能力(サポートされている画面の大きさ/解像度、処理能力、等)を発見することであり、このため、このモジュールは、エンドユーザーの表示装置の能力に関連する情報を該表示装置から受け取る。クライアント能力発見モジュール12は、エンドユーザーのデバイス情報を決定モジュール14に渡す。
【0029】
決定モジュール14は、適合化システムによって事前に検出されたか又は予め定義されている既存のクライアント能力プロフィール識別子を含む。クライアント能力プロフィール識別子は、表示装置の表示特性に関連する情報の集合である。使用時には、決定モジュール14は、最初に、発見モジュールによって送られた情報に基づくエンドユーザーのデバイスの特性・能力(CC)範囲と、既存の能力プロフィールを比較する。クライアントの能力が既存のプロフィールとマッチしている場合は、該マッチしているプロフィールのプロフィール識別子がコンテンツキャッシュ10に送られる。コンテンツキャッシュ10には、予め生成された適合化ウェブコンテンツの異なった種類のバージョンが保存されている。受け取られたCCの組が既存のCC範囲とマッチしない(即ち、現在要求中のデバイスの能力とマッチする既存のCCプロフィールが存在しない)場合は、適合化モジュール16がトリガーされる。更に、適合化モジュール16は、エンドユーザーからの特定の要求がない場合でも、原ウェブコンテンツの異なった種類のバージョンを生成するために手作業でトリガーすることもできる。
【0030】
適合化モジュール16は、どのような方法でトリガーされた場合でも、要求されたウェブコンテンツのhttpヘッダーを検討するように動作し、更に、コンテンツ解析モジュール20を制御し、要求されたウェブコンテンツをウェブコンテンツソース保存領域22から検索するようにさらに動作する。次に、コンテンツ解析モジュール20は、コンテンツソース保存領域22から得られた指示されたウェブコンテンツを解析するように動作し、該ウェブコンテンツの特性に関連する1つの範囲のパラメータを、適合化モジュール16への入力値として適合化モジュール16に戻す。適合化モジュール16において受け取られたコンテンツ解析モジュール20からの入力パラメータは、ウェブコンテンツ保存領域22に保存されている原ウェブコンテンツから得られた要求されているウェブコンテンツの適合化を適合化モジュール16が行うことを可能にする。従って、適合化モジュール16の出力は、最初に要求されたウェブコンテンツの適合化バージョンであり、この適合化バージョンは、ウェブコンテンツを要求中の表示装置のディスプレイの一組の1つ以上の特性である一組のクライアント能力(cc)情報とともに、html等の該当するマークアップ言語でキャッシュ10に送られる。尚、該表示特性情報は、上述されているクライアント能力発見モジュール12によって決定された情報である。
【0031】
上記のモジュールに加えて、既述のように、原ウェブコンテンツの異なった適合化バージョンを保存するように動作するコンテンツキャッシュ10も提供される。幾つかの実施形態においては、キャッシュ10は、異なったクライアント表示装置の表示特性に関連する情報の集合であるクライアント能力特性も保存することもできる。更に、適合化対象の原ウェブコンテンツが保存されるコンテンツソース22、及び、コンテンツ解析モジュール20の制御下で動作し、コンテンツソース保存領域22から受け取った原ウェブコンテンツを解析前に整理するコンテンツ整理モジュール18も提供される。更に加えて、コンテンツキャッシュからの適合化済みウェブコンテンツのプレビューを提供するフロントエンドシステムであるにすぎないカスタム化モジュール24も提供される。カスタム化モジュール24は、著者が適合化されたコンテンツをプレビューしてさらにカスタム化することを可能にするオフラインモジュールである。
【0032】
本発明の実施形態によって提供される様々なシステムモジュールについて説明後は、図2乃至6を参照しつつこれらのモジュールの動作についてさらに詳細に説明する。
【0033】
本発明によって提供される装置は、ウェブサーバー、等として動作するコンピュータシステムにおいて具体化するのが最も有望である。代替として、該装置は、別個のコンピュータシステムにおいて具体化することができる複数のコンピュータシステムコンポーネント(図1参照)において具体化することができる。好ましいことに、これらのコンピュータシステムのうちの1つは、その他のコンピュータシステムに関するウェブサーバーとして動作する。該装置がどのような形で具体化された場合においても、該コンピュータシステムは、単なるサーバーとして動作するだけでなく、ウェブコンテンツの著者がウェブコンテンツを開発すること及びその見直しを行うことも可能にする。更に、該コンピュータシステムは、異なった種類の所定の表示装置のために原ウェブコンテンツの異なったバージョンを生成するようにも動作する。
【0034】
上記の機能に鑑みて、以下の3つの異なったシステム動作モードが存在する。
【0035】
第1のモード−システムは、ネットワークを通じて受け取られているユーザーのウェブコンテンツ要求に対応するように動作する。
【0036】
第2のモード−システムは、ユーザーからのウェブコンテンツ要求を受け取る前に、該ウェブコンテンツの適合化されたバージョンを異なった種類の所定の表示装置のために生成するように動作する。
【0037】
第3のモード−さらなる適合化されたバージョンを提供するためのウェブコンテンツ適合化を、ユーザー要求に対応して速やかに実施することができる。
【0038】
以下ではこれらの動作モードの各々について説明する。
【0039】
最初に上記の動作モードのうちの第2の動作モードに関して、ユーザーによる要求前に原ウェブコンテンツの異なったバージョンを生成するためにシステムを使用中であると想定する。例えば、このモードは、ウェブサイト開発中に使用し、異なった種類の所定の表示装置に合わせて各々が特別に適合化されていて各々が異なった表示特性を有する(原ソースウェブコンテンツ)のバージョンを生成することができる。
【0040】
従って、該モードにおいて実施される第1ステップは、複数の組の予め定義された所定表示装置表示特性プロフィールが生成され、各組は、一意のIDを有しており更に各々の特性が1つの範囲の値をとる一組の1つ以上の表示特性に対応している。例えば、第1のクライアント能力プロフィールの組は、client_type screen_resolution、及びcoulor_depthという名前のフィールドを有することができる。第1のプロフィールIDであるCC1は、1つの例として、client_typeフィールドにおいて“PC”値、screen_resolutionフィールドにおいて“800x600”又は“1024x768”、colour_depthフィールドにおいて“16ビット”を有することができる。さらにもう1つの例として、ID“CC2”を有するさらなるクライアントプロフィールの組は、client_typeフィールドにおいて“PDA”値、screen_resolutionフィールドにおいて値“200x300”、colour_depthフィールドにおいて“32ビット”を有することができる。上記の例は、プロフィールの組の生成に貢献できる情報の種類の例を単に示しただけであってこれらの例に限定するものではないこと、及び、デバイスの特性と能力の様々な組合せを有する1つの集合を形成することによって多数の異なったプロフィールを簡単に生成可能であることが理解されることになるであろう。いったん生成されたクライアント能力プロフィールの組は、図2に示されているプロフィールサーバー26に保存される。プロフィールサーバー26は、デバイスプロフィールを物理的に保存するように動作する単なるデータベースシステムであるにすぎない。プロフィールサーバー26は、要求中のユーザーの表示装置特性と保存されているクライアント能力プロフィールの組の比較を決定モジュール14が行うことを可能にするために決定モジュール14によってアクセス可能である。
【0041】
システムは、前述された動作モードにおいて所定の表示装置の特性と値の組合せを各々が有する複数のクライアントプロフィールの組を生成後は、プロフィールサーバー26内に保存されているクライアント能力プロフィールの組の各々に関する原ソースウェブコンテンツの適合化バージョンを生成するように動作する。この生成は、適合化モジュール16をトリガーして原ソースウェブコンテンツを適合させて各クライアント能力プロフィールの組とマッチさせることによって実施される。適合化モジュール16は、通常は各クライアント能力プロフィールの組ごとに別々にトリガーされ、このため、いずれの1つのトリガー時においても、単一のクライアント能力プロフィールの組に対応する単一のウェブコンテンツ適合化バージョンが生成される。以下では、トリガー時における適合化モジュール16の詳細な動作について説明する。
【0042】
適合化モジュール16によって実施される第1のステップは、適合化対象となる原ソースウェブコンテンツの詳細をコンテンツ解析モジュール20に渡すことによってコンテンツ解析モジュール20をトリガーすることである。次に、コンテンツ解析モジュール20は、(開発者/著者によって作られたすべてのウェブコンテンツソースを保存する)コンテンツソース保存領域22から原コンテンツソースを検索し、検索したコンテンツソースをxHTMLファイルに変換するためにコンテンツ整理モジュール18に渡す。コンテンツ整理モジュール18の機能は、マークアップ言語(ウェブコンテンツ)の構造を整理してxHTML構造フォーマットに変換することである。xHTMLフォーマットは、コンテンツ解析モジュール20が解析タスクを実施するための整理整頓された構造を提供する。コンテンツ整理モジュール18は、優先権主張日においてhttp://tidy.sourceforge.net/から入手可能な第三者ソフト(TIDY、等)を用いることによって確保することができる。従って、ここでは、コンテンツ整理モジュール18の動作についてさらに詳細に説明することはしない。コンテンツ整理モジュール18は、整理されたxHTMLファイルをコンテンツ解析モジュール20に戻す。
【0043】
コンテンツ解析モジュール20は、整理されたウェブコンテンツを受け取り後は、以下のタスクを示されている順序で実施する。
【0044】
i)該ウェブコンテンツ内の表示オブジェクトの合計の画素と文字及び個々の画素と文字を計算する
ii)該ウェブコンテンツ内の個々のオブジェクトの機能を検出する(通常はウェブページ内におけるタグである) 例えば、オブジェクトは、スタイルタグ、構造タグ又は表示タグを持つことができる。
【0045】
iii)構造上の挙動(オブジェクトタグからの情報)に基づいて単一オブジェクトを分類する
iv)表示オブジェクト表示パターンをマッチングし、これらのパターンを1つにまとめて1つのグループを形成させる(パターンマッチングアルゴリズムを用いる)
これらの4つのタスクは、次のような詳細を有する各々の専用アルゴリズムによって実施される。
【0046】
第1のタスクに関して、このタスクを実施する目的は、表示オブジェクト(テキスト、画像、等)の画素/サイズを計算することである。このタスクを実施するアルゴリズムは、最初に表示オブジェクトの型を検出する。次に、該アルゴリズムは、異なった型の表示オブジェクトに関して異なった解析ロジックを適用する。例えば、表示オブジェクトがテキストオブジェクトである場合は、該アルゴリズムは、長さ、フォントのスタイル及びサイズを入手し、これらの入力項目に基づいて画素を計算する。表示オブジェクトが画像/アプレット/オブジェクトである場合は、該アルゴリズムは、該オブジェクトの幅と高さに基づいて総画素数を計算する。その他の表示オブジェクトに関しては、該アルゴリズムは、該オブジェクトのパラメータ内において設定された幅、高さ及び/又は幅/高さの各属性に基づいて総画素数を計算する(該パラメータがHTMLコンテンツにおいて指定されている場合)。このアルゴリズムによって実施される正確なステップを図3に示し、以下において説明する。
【0047】
図3において、ステップ3.2においてアルゴリズムによって実施される第1のステップは、整理されたウェブコンテンツ内の個々の表示オブジェクトを検出する。次に、ステップ3.4において、検出された表示オブジェクトがテキストであるかどうかを決定するための評価が行われる。この評価が肯定応答を返した場合(即ち、検出された表示オブジェクトがテキストであることが決定された場合)は、ステップ3.6において、表示オブジェクト内のすべてのテキストストリングの長さが入手される。次に、ステップ3.8において、すべてのテキストストリングに関してテキストタグが生成され、ステップ3.10において、ステップ3.6で決定されたテキストストリング内の文字数が該テキストタグの属性として設定される。
【0048】
次に、ステップ3.12において、すべてのテキストストリングのフォントとスタイルが決定され、次にステップ3.14において、すべてのテキストストリングのサイズも決定される。ステップ3.16において、この情報を用いて、フォント、スタイル性、及びサイズの各属性に基づくテキストストリングの高さ及び幅が計算され、これらの計算された高さ値及び幅値は、ステップ3.18において各ストリングに関するテキストタグのさらなる属性として設定される。これで、テキストであると決定された特定の表示オブジェクトに関するプロセスはステップ3.50において終了し、該プロセスは、ウェブコンテンツ内の次の表示オブジェクトを検出するためにステップ3.2において再開する。すべての表示オブジェクトがアルゴリズムによって処理された時点で、該アルゴリズムは繰り返されない。
【0049】
再度ステップ3.4において、検出された表示オブジェクトがテキストでないことが決定された場合は、検出された表示オブジェクトが画像、アプレット、又はオブジェクトであるかどうかを決定するための第2のプロセスがステップ3.20において実施される。この評価が肯定応答を返した場合(即ち、表示オブジェクトが画像、アプレット、又はオブジェクトである場合)は、処理は、ステップ3.22に進み、ステップ3.22においてさらなる評価が実施され、画像、アプレット、又はオブジェクトの幅が指定されているかどうかが決定される。該幅が指定されている場合は、処理は、ステップ3.24に進む。該幅が指定されていない場合は、処理は、ステップ3.28に進み、ステップ3.28において、該オブジェクトの原幅が決定され、その後に同じくステップ3.24に処理が進む。
【0050】
ステップ3.24において、検出された画像、アプレット又はオブジェクトの高さが指定されているかどうかを決定するためのさらなる評価が実施される。この評価が肯定応答を返した場合は、処理は、ステップ3.26に進む。反対に、ステップ3.24の評価が否定応答を返した場合は、処理は、ステップ3.30に進み、ステップ3.30において、該オブジェクトの原高さが決定される。次に、処理は、ステップ3.30からステップ3.26に処理が進む。
【0051】
ステップ3.26において、前述されたステップによって決定された画像、アプレット、又はオブジェクトの幅属性及び高さ属性が、ウェブコンテンツ内のオブジェクトタグの幅属性及び高さ属性として設定される。該設定後、該特定の表示オブジェクトの処理は、ステップ3.50において終了する。この場合も、さらなるオブジェクトを処理する必要がある場合は、処理は、ステップ3.2において再開する。
【0052】
再度ステップ3.20において、実施された評価の結果、検出された表示オブジェクトが画像、アプレット、又はオブジェクトでないことが決定された場合は、処理は、ステップ3.32に進み、ステップ3.32において、検出された表示オブジェクトの幅及び高さが指定されているかどうかに関する評価が実施される。該幅及び高さが指定されている場合は、処理は、ステップ3.34に進み、ステップ3.34において、該指定された幅及び高さが、検出された表示オブジェクトに関する各制御タグのスタイル属性内のパラメータとして設定される。これで、該処理は、ステップ3.50において終了し、前述のように必要な場合は繰り返すことができる。
【0053】
ステップ3.32において、幅及び高さのいずれも指定されていないと決定された場合は、処理は、ステップ3.36に進んでさらなる評価が実施される。ステップ3.36においては、検出された表示オブジェクトのサイズが指定されているかどうかが決定される。該サイズが指定されている場合は、処理は、ステップ3.34に進み、ステップ3.34において、該サイズは、該オブジェクトに関する各制御の型のスタイル属性内のパラメータとして設定される。その後、処理は、同じくステップ3.50に進み、ステップ3.50において終了する。しかしながら、処理すべきさらなる表示オブジェクトが存在する場合は処理を繰り返すことができる。
【0054】
最後に、ステップ3.36における評価が否定応答を返した場合は、検出された表示オブジェクトの値が指定されているかどうかを決定するための最終評価がステップ3.38において実施され、該値が指定されている場合は、該指定値は、ステップ3.34において、該オブジェクトに関する各制御の型のスタイル属性内のパラメータとして設定される。反対に、該値が指定されていない場合は、処理は、ステップ3.40に進み、ステップ3.40において、各制御のディフォルトの幅及び高さがメモリから検索され、ステップ3.34においてこれらの値がディフォルト値として設定される。
【0055】
以上のように、このアルゴリズムは、整理されたウェブコンテンツ内の各表示オブジェクトに関して、サイズパラメータ(例えば、テキストストリングの長さ、又は画像の幅と高さ、等)を決定するように動作する。この情報は、後述されている適合化プロセスにおいて用いることができる。
【0056】
第2のタスクに関して、以下において説明するように、該タスクを実施するためのさらなるアルゴリズムが提供される。
【0057】
第2のタスクを実施するアルゴリズムは、最初に、マークアップ言語の観点から単一オブジェクトの機能カテゴリを予め定義する。単一オブジェクト(O)は、マークアップ言語内に埋め込まれた要素であり、表示スタイル、静的スタイル、動的スタイル、構造上のスタイル、等の自己のプロパティを有する。
【0058】
本出願明細書では、下記の予定義カテゴリを定義している。
【0059】
情報(I)
情報タイトル(T)
制御(C)
装飾(D)
交換可能ナビゲータ(RN)
交換不能ナビゲータ(UN)
交換可能ナビゲータタイトル(RNT)
交換不能ナビゲータタイトル(UNT)
これらの機能カテゴリの定義は以下のとおりである。
【0060】
情報(I)−情報としての表示コンテンツを提供するオブジェクトであり、重要でかつ交換不能である。このオブジェクトは、テキスト、画像、映像、音声又はあらゆるオブジェクト(JAVA(登録商標)アプレットフィルタ、等)ファイルであることができる。
【0061】
情報タイトル(T)−情報オブジェクトについて記述するオブジェクトであり、情報プロパティを有するテキストヘッダー又は画像であることができる。
【0062】
制御(C)−ユーザーとの対話を目的とするオブジェクトであり、ボタン(ラジオボタン又はサブミットボタン)、入力テキストエリア、書式、ドロップダウンメニュー、チェックボックス、リストボックス、等である。
【0063】
装飾(D)−情報上の役割は果たさず、視覚効果向上専用のオブジェクト。このオブジェクトは、画像又はテキストであることができる。
【0064】
交換可能ナビゲータ(RN)−ナビゲータは、URIリンクオブジェクトである。交換可能ナビゲータは、代替テキストに代えることができるナビゲータオブジェクトである。交換可能ナビゲータは、代替テキストを備えた画像でなければならない。
【0065】
交換不能ナビゲータ(UN)−前述したように、ナビゲータは、URIリンクオブジェクトである。このため、交換不能ナビゲータは、代替テキストに代えることができないナビゲータオブジェクトである。交換不能ナビゲータは、代替テキストのないテキスト又は画像であることができる。
【0066】
交換可能ナビゲータタイトル(RNT)−交換可能ナビゲータタイトルは、ナビゲータオブジェクトについて記述する情報用URLリンクオブジェクトである。交換可能ナビゲータタイトルは、代替テキストに代えることができる。交換可能ナビゲータタイトルは、代替テキストを備えた画像でなければならない。
【0067】
交換不能ナビゲータタイトル(UNT)−交換不能ナビゲータタイトルは、ナビゲータオブジェクトについて記述する情報用URLリンクオブジェクトである。交換不能ナビゲータタイトルは、代替テキストに代えることができない。交換不能ナビゲータタイトルは、代替テキストのないテキスト又は画像であることができる。
【0068】
上記のような予め定義された機能カテゴリを提供することによって、アルゴリズムは、マークアップ言語(HTML、等)内に埋め込まれた単一オブジェクトのプロパティを解析する走査・比較メカニズムを開始させる。該解析の推論は、図4に示されている決定ツリー(走査・比較ロジックシーケンス)に基づいて行われる。
【0069】
アルゴリズムは、最初に、ウェブコンテンツマークアップ言語を上から下に走査する。走査プロセスが開始されると、マークアップ言語のすべての単一オブジェクトが探索されて検出され、予め定義された機能カテゴリと比較される。この比較プロセスは、マークアップ言語の最後まで実行される。
【0070】
走査ループ内において、アルゴリズムは、単一オブジェクトを探索し、該オブジェクトが有するプロパティに基づいて機能を決定する。アルゴリズムは、第1の単一オブジェクト(On)が特定の機能カテゴリに属することが認定された後に、単一オブジェクトOnのプロパティの比較を停止して次の単一オブジェクト(On+1)を探索する。
【0071】
図4において、アルゴリズムによって適用される決定ツリープロセスは次のとおりである。即ち、アルゴリズムは、最初に単一オブジェクトを探索する。単一オブジェクト40が検出された時点で、アルゴリズムは、ステップ4.2において、該検出された単一オブジェクトはハイパーリンクプロパティが埋め込まれているかどうかを検査する。
【0072】
該単一オブジェクトがハイパーリンクプロパティを有する場合は、ステップ4.4において検査が行われ、該単一オブジェクトに関する代替テキストが存在するかどうかを確かめることによって該オブジェクトが交換可能であるかどうかを決定する。(ステップ4.6における決定に従って)このオブジェクトに関する代替テキスト及びタイトルプロパティが存在する場合は、このオブジェクトは、交換可能ナビゲータタイトル(RNT)48として分類される。このオブジェクトに関する代替テキストは存在するがタイトルプロパティは存在しない場合は、アルゴリズムは、このオブジェクトを代替可能ナビゲータ(RN)46として分類する。
【0073】
このオブジェクトに関する代替テキストが存在せずタイトルプロパティが存在する場合は、アルゴリズムは、このオブジェクトを交換不能ナビゲータタイトル(UNT)52として分類する。このオブジェクトに関する代替テキストが存在せずさらにタイトルプロパティも存在しない場合は、アルゴリズムは、このオブジェクトを交換不能ナビゲータ(URN)50として分類する。この区別は、ステップ4.16において評価が行われる。RNT及びUNTのタイトルプロパティは、下記の条件に基づいて決定される。
【0074】
タイトルヘッダープロパティを有する
表示オブジェクトである
URIハイパーリンク(画像又はテキスト)でなければならない
隣接する表示オブジェクトと比較して異なったスタイルを有する
ステップ4.2、4.4、4.6、及び4.16においてオブジェクトとハイパーリンクプロパティを比較後において、該オブジェクトが依然として分類されていない場合は、本発明は、検査ロジックの対象を非ハイパーリンクプロパティにする。ユーザー側対話プロパティが次の比較対象になる。単一オブジェクトがユーザー側対話プロパティを有するかどうかを決定する要因は、単一オブジェクトが、ボタン(ラジオボタン又はサブミットボタン)、入力テキストエリア、書式、ドロップダウンメニュー、チェックボックス、又はリストボックスのうちのいずれか1つであるかどうかであり、この旨の評価がステップ4.8において行われる。
【0075】
単一オブジェクトがユーザー側対話プロパティを有することがステップ4.8において検出された場合は、該単一オブジェクトは、制御(C)42として分類される。該単一オブジェクトがユーザー側対話プロパティを有することがステップ4.8において検出されない場合は、アルゴリズムは、ステップ4.10において、映像プロパティ、クラスオブジェクトプロパティ又は音声プロパティを有するオブジェクトであるかどうかをさらに比較する。該プロパティを有するオブジェクトである場合は、この単一オブジェクトは、情報(I)機能カテゴリ44の中に含められる。
【0076】
該単一オブジェクトがまだ分類されていない場合は、アルゴリズムは、ステップ4.12において、該単一オブジェクトが有していた装飾プロパティが存在するかどうかを決定することによって該単一オブジェクトをさらに検査する。装飾プロパティに関する決定は、以下の基準に基づいて行われる。
【0077】
単一オブジェクトのサイズ−単一オブジェクトのサイズは、装飾プロパティのサイズを最も良く表している実験値から導き出される。
【0078】
現在の単一オブジェクト(On)と次の単一オブジェクト(On+1)との間における記号、ライン及びセパレータの存在
オブジェクトのサイズ(幅及び高さ)は、実験値(主観値)に基づいたサイズである。発明者は、100のウェブページを対象にした実験的試験を行い、これらの試験結果では、画素サイズの幅が<=20、高さが<=20である画像は装飾オブジェクトである傾向があることが示された。
【0079】
現在の単一オブジェクトが上記の条件を満たしている場合は、装飾(D)機能54として分類される。単一オブジェクト内で装飾プロパティが見つからない場合は、本発明は、ステップ4.14において、情報タイトルプロパティの有無をさらに検査する。
【0080】
ステップ4.14において、単一オブジェクトが装飾プロパティを有していないことが決定された時点で、情報機能又は情報タイトル機能として分類される。単一オブジェクトは、以下の判定基準を満たしている場合のみに情報タイトル(IT)58として認定される。
【0081】
タイトルヘッダープロパティを有する
表示オブジェクトである
テキスト又は画像のみであることができる
隣接する表示オブジェクトと比較して異なったスタイルを有する
単一オブジェクトがタイトルプロパティを有していないと決定された場合は、情報(I)機能56として分類される。
【0082】
従って、上記から明らかになるように、このアルゴリズムによって実施された走査プロセス及び比較メカニズムに基づき、整理されたウェブコンテンツ内のすべての単一オブジェクトは、マークアップ言語内における役割を表すための割り当てられた特定機能を含み、従って、コンテンツ解析モジュール20によって実施された第2のタスクを実行する。
【0083】
第3のタスクに関して、コンテンツ解析モジュール内にはこのタスクを実行するためのさらなるアルゴリズムが提供されている。この第3のアルゴリズムの目的は、コンテンツを位置決定情報に基づいてクラスタに分類することである。この情報を表しているのは構造タグである。我々が認識して選択した構造タグは以下のとおりである。
【0084】
<TABLE>、<FORM>、<FRAMESET>、<DIV>、<UL>、<OL>、<DL>、<P>、<PRE>、<ADDRESS>、<BLOCKQUOTE>、<Hn>、<HR>、<CENTER>、<MENU>、<DIR>、<TD>及び<NOSCRIPT>
これらの構造タグをオブジェクトクスタリング用のタグとして選択した理由は、オブジェクトをクライアントブラウザー上において表示時にこれらのオブジェクトをビジュアル的に1つにまとめることができるためである。
【0085】
このタスクを実行するアルゴリズムの動作は単純である。即ち、ウェブコンテンツを構文解析し、上記のタグのうちのいずれかがオブジェクト内に存在するかどうかに基づいてオブジェクトを選択して分類するだけである。
【0086】
第4のタスク(即ち、表示オブジェクト表示パターンをマッチングし、これらのパターンを分類して1つのグループにまとめるタスク)に関して、次に説明するパターンマッチングアルゴリズムが提供される。
【0087】
ウェブページは、幾つかのコンテンツチャンク(chunk)を具備すると考えることができる。これらのチャンクは、該当する特定エリア又はタスクに関連するマルチメディアオブジェクトの集合である。基本オブジェクトは、単一のマルチメディア要素(例えば、画像又はテキスト本体)を含むオブジェクトであると定義し、複合オブジェクトは、幾つかの一定の機能をまとめて遂行する一組のオブジェクト(基本オブジェクト又は複合オブジェクト)であると定義すると、1つのチャンクはそれ自体が高位の複合オブジェクトである。ウェブページを幾つかのより小さいページに分割時に理解可能であるためには、コンテンツチャンクが破壊されていないことが重要である。従って、コンテンツを適合させる前に、ページを構成するマルチメディアオブジェクトを可能性のあるチャンクグループに分類する必要がある。
【0088】
マイクロソフト・リサーチ社のヤン及びチャンは、2001年に開催された第6回国際ドキュメント解析・認識会議(ICDAR2001)において発表したYang, Y. and Zhang, H.J. "HTML Page Analysis Based on Visual Cues"(ビジュアルキューに基づくHTMLページ解析)の中で、これらのコンテンツチャンクの所在位置を突き止めるシステムについて説明している。以下では、該システムに類似するシステムについて概説する。両システムとも、HTMLタグを使用し、マルチメディアオブジェクトの最初の分類を行って可能な複合オブジェクトグループにまとめ、その後にパターンマッチングを実施してさらに可能な分類を見つけ出す。これらのシステム間の相違点は、様々なオブジェクトの類似性を決定するために用いられる距離基準及びパターンマッチングアルゴリズムである。
【0089】
最初のオブジェクト分類
マルチメディアオブジェクトの最初の分類を行って可能な複合オブジェクトにまとめる前に、HTMLドキュメントの構文解析が行われてxHTMLツリーが構築され、HTMLタグのクリーンアップ及び処理しやすい構造の形成が行われる。該xHTMLツリーでは、HTMLタグが節部(ノード部)に、マルチメディアオブジェクトが葉の部分に存在している。
【0090】
次のステップは、葉がマルチメディアオブジェクトを含みノードが複合オブジェクト(このため、可能なコンテンツチャンク)を示しているグループツリーを、ウェブページ全体を示す最上ノードまで構築することを含む。xHTMLツリーは、コンテンツ内における自然の区切りと関係する予め定義された一組のHTMLタグ(主に、<table>、<td>、<form>、<center>及び<h>、等のブロックレベルのタグ)の真上に<g>タグを最初に挿入することによってグループツリーに変換される。次に、一組のトークン(各型のマルチメディアオブジェクトごとに1つ)が、組になった属性(例えば、テキストストリング内の文字数、又は画像の幅と高さ)とともに定義される。次に、グループツリー内の葉部のマルチメディアオブジェクトから上方に向かってトークンが渡され、葉及び<g>タグを含むノード以外のすべてのノードが削除される。トークンは、上方に渡されるときにノードと関係する属性を蓄積させ、1つのノードが2つ以上の子を有する場合は、すべての子が該ノードと関係する属性を受け取る。幾つかのフォーマット化タグ(<tr>、等)は、マルチメディア要素上にどのような属性も置かず、さらに、予め定義された組内のタグとは異なり通常は新しいコンテンツチャンクを示していないため無視される。<g>タグノードが2つ以上の子を有する場合は、これらのトークンは、左から右に配置されている子ノードの順序と同じ順序で線形リスト内に配置される。
【0091】
様々なブロックレベルのタグと関連するオブジェクト(テーブル、セル、等)に可能なグループとしてのラベルを付けることによって、グループツリーは、複合オブジェクト(そしてその結果としてのコンテンツチャンク)の大部分を既に組み入れている。この技術は、常に正確なわけではないが、<g>タグはどのようなコンテンツチャンクも分割しないと想定している。しかしながら、フォーマット化オブジェクトのコンテンツにラベルを付けることは、類似のマルチメディアオブジェクトの配置を繰り返すことを通じて黙示されているコンテンツチャンクどおしを区別するわけではない。従って、グループツリーがいったん導き出された時点で、各<g>ノードの子ノードに属するトークンリスト上においてパターンマッチングが行われる。
【0092】
パターンマッチング
パターンマッチングプロセスにおける第1のステップは、各々の子ノード内のトークンリストのうちのどのトークンリストが類似しているかを決定することである。各トークンは、該トークンと関係する一組の属性を有することに注意すること。各属性は、型と値の対、例えば(フォント、14pt)及び(幅、100)を含む。これらの値は、ストリング又は整数であることができる。属性型が関係する値を本質的に有していない場合は、この値は、ヌルストリング、例えば(ボールド,)に設定される。トークンを比較時に、いずれかの特定のトークンが該トークンと関係する属性を有していない場合は、該トークンは、属性の組が空でないようにするために特別のヌル属性( ,)が割り当てられる。
【数1】

【0093】
トークンリストの比較は、動的時間ワープ(動的ブログミングアルゴリズム)によって実施され(表1参照)、整合経路は、(最小トークンの長さに比例する)所定の数の場所を超えて対角線から外れることが許容されておらず、更に、非対角の動きに関する罰則も組み入れている。整合経路に沿った類似性基準の和がしきい値よりも大きい場合は、2つのトークンリストは、同一であることを理由に、又は長さと組成の点が少々異なっているにすぎない場合に、類似しているとみなされる。
【表1】

【0094】
パターン検出時には、より低い三角マトリクス(対角要素がないもの)が最初に構築され、子ノード(トークンリスト)のうちのいずれが互いに類似しているかが詳述される。次に、すべての可能なパターンを検討することによって、最大数の子ノードを網羅した類似ノードの繰り返しシーケンスである有意トークンパターンが見つけ出される。この有意トークンパターンは、各新グループの始まりを示している。
【0095】
意味のない有意トークンパターンが出現するのを防止するために以下のような幾つかの制限条件が適用される。
【0096】
該パターンは、長さが少なくとも2つの子ノードでなければならない
該パターンは、少なくとも2回繰り返されなければならない
同じパターンのインスタンスが重複しないこと
これらの有意トークンは、グループ(又はコンテンツチャンク)の始まりを示しているため、これらのグループ間で重複しないようにしさらに妥当な類似性を確保しながら後続する子ノードをこれらのグループ内に加えることによって、これらのグループ自体が拡大される。
【0097】
上記の結果、コンテンツ解析モジュール20によって実行された4つのタスクが終了することになる。これらのタスクを実行後は、システムは、検索されたウェブページコンテンツに基づいてXMLツリーを構築していることになる。このツリーは、ウェブコンテンツに関する様々な追加情報を含み、現時点では、適合化モジュールに引き渡すのに適したフォーマットになっている。このプロセスによって提供されている情報は、下記の項目に関連する情報である。
【0098】
i)適合化中に分離されることが想定されていない分割不能なグループ(即ち、上記の「チャンク」)
ii)グループ及び単一オブジェクトの機能(無視又は削除できるかどうかを示す)
iii)コンテンツソースの総表示画素数及び文字数(コンテンツをより小さいページに分割すべきかどうか/どのように分割するかを決定時に適合化モジュールによって用いられる)
iv)コンテンツソースの原構造情報及び原スタイル情報 ここでの構造は、コンテンツのレイアウトを意味する。構造情報は、コンテンツの配備方法及び位置決め方法に関するコードを含む。スタイルは、コンテンツのオブジェクト(テキスト又は画像、等)の幅、高さ、色、フォント属性(フォントの種類と大きさ)、等を意味する。
【0099】
このプロセスによって生成されたXMLツリーのフォーマットは、現時点においては、別個のウェブページ上において表示するためにコンテンツのどの箇所を分割することが許容されているかを識別する識別子(<g>タグと呼ばれる)を含む。<g>タグは、前述されているように、コンテンツ内における自然の区切り(例えば、<table>、<td>、<form>、等のブロックレベルタグ)及びひとつにまとめて表示すべきである該当コンテンツグループの両方に基づいて複数の<g>タグが挿入されている。階層ツリーフォーマットでは、これらの<g>タグがツリーの分割可能な箇所を示す幾つかのノードを形成していて、従って最下位の<g>タグ(即ち、葉に最も近い<g>タグ)はそれよりも下方ではコンテンツ分割が許容されていないノード(即ち、異なったウェブページにわたって広げることができない分割不能なコンテンツグループ)であることを意味している。
【0100】
XMLツリーの追加の側面として、XMLツリーは、第2の型の識別子を含む。これらの識別子は、個々のコンテンツオブジェクト(即ち、画像又はテキスト本体等の単一マルチメディア要素)又は複合オブジェクト(一定の機能をいっしょに果たす一組のオブジェクト)のいずれかのオブジェクトと関連するラベルである。類似しているオブジェクト、例えば、型が同じでありさらにスタイル属性とその他の特性(画像サイズ又はテキスト文字数、等)のリストが類似しているオブジェクトは、同じ識別子タグが付けられる。(後述する)適合化プロセス中は、これらのラベルは、類似するオブジェクトをウェブページ上で表示するために処理中にこれらのオブジェクトが同じに取り扱われる(例えば、すべての類似画像/テキストボックスが同じ率で縮小される)ようにするために用いられる。
【0101】
既述されているように、コンテンツ解析モジュール20は、現時点において、解析結果(XMLツリーの結果)を適合化モジュール16に引き渡す。次に、適合化モジュール16は、プロフィールサーバー26から入手可能な(そしてこの動作モードで予め生成された)すべてのクライアント能力デバイスプロフィールを検索する。次に、適合化モジュール16は、入手可能なプロフィールに基づいて異なったウェブコンテンツバージョンを生成するアルゴリズムを実行するループをトリガーする。実施されるループ数は、入手可能なプロフィール数に依存する。基本的には、各クライアント能力プロフィールごとにコンテンツ適合化バージョンが生成される。
【0102】
コンテンツを適合させるためにXMLツリー上で動作するアルゴリズムは、図5及び6の流れ図に示されている。図5は、コンテンツが表示装置に関する現在のプロフィール範囲内に納まるかどうを検査するアルゴリズムを示している。このアルゴリズムは、幾つかの段階を循環的に実施し、コンテンツがページ(即ち、表示装置)に適合するかどうかを毎回検査する。適合しない場合は、該アルゴリズムは、幾つかの変換を実施してコンテンツのサイズを漸進的に縮小する。図5のアルゴリズムは、図6に示されているアルゴリズムの全段階のうちの1つだけを形成しており、(必要な場合に)コンテンツを分割して複数の異なったページ上に置くようにさらに動作する。
【0103】
最初に図6のアルゴリズムに関して、このアルゴリズムの目的は、コンテンツが大きすぎるため所定の表示装置の単一ページ上に表示できない場合は該コンテンツをより小さいページに分割しその一方でこれらのページ上に存在する空白スペース量を最小限にすることである。該アルゴリズムは、該分割を行うために、XMLツリー構造内の<g>タグを使用する。該アルゴリズムは、最上位の<g>ノードを出発点としてツリー全体にわたってノードからノード(<g>ラベルが貼付されたノード)へ移動する。該アルゴリズムは、各ノードにおいて、下方のサブツリー内のコンテンツが表示装置に適合するかどうかを計算し、マルチメディアオブジェクトの変換(フォントサイズ/画像サイズの縮小、等)を適宜行う。現在の<g>ノードの下方のコンテンツが表示装置に適合しない場合は、該アルゴリズムは、下方の子<g>ノードに移動し、ウェブページ全体が複数のより小さいウェブページとして出力されるまでこれらの子<g>ノードの各々に関する再計算を実施する(必要な場合はさらに分割する)。
【0104】
さらに詳細に説明すると、図6において、該アルゴリズムによって実行されるステップは次のとおりである。2箇所の一時的保存領域(スタック“Q”及び“T”)は、処理中にこれらのノードを一時的に保存するために用いられる。第3の保存領域であるアレイ“Trans”は、ウェブページ内の様々なオブジェクトに関して実施される変換(フォントサイズ又は画像サイズの縮小、等)に関連するデータを保存するために用いられる。
【0105】
適合化アルゴリズムは、ステップS6.1から開始する。最初に、該アルゴリズムは、最上位の<g>ノードをツリーから取り出してスタックQの中に入れる(ステップS6.2)。該アルゴリズムは、一時的スタックTがクリアされていることも確認する(ステップS6.3)。次に、該アルゴリズムは、ステップS6.4に移動し、ステップS6.4において、以下においてさらに詳細に説明されている関数fits_page(T,Trans)を呼び出し、T内に現在保存されている<g>ノードがクライアントディスプレイ内に納まるかどうかを検査し、マルチメディアオブジェクトに関する変換を適宜実施する。しかしながら、この時点ではスタックTは空であるため、fits_page(T,Trans)はTRUEを戻す。処理は、ステップS6.5に進み、ステップS6.5において、関数are_siblings(T)を用いて、スタックT内のすべてのノードが同じ親を有するかどうかを検査する。同じくTは空であるため、該関数はTRUEを戻して処理をステップS6.6に進ませ、ステップS6.6において、スタックQ内にノードが残っているかどうかを検査する。Q内にはノードが存在するため(最上位の<g>ノードは現在はQ内にある)、処理はステップS6.7に進み、ステップS6.7において、スタックQの最上位からスタックT上にノードを移動させ、処理は、ステップS6.4に戻る。
【0106】
この時点では、ツリーの最上位<g>ノードはスタックT内にあり、このため、ステップS6.4は、関数fits_page(T,Trans)を用いて、このノード(即ち、その下方にある全サブツリーのウェブコンテンツ)がクライアントデバイスのディスプレイ内に納まるかどうかを検査し、オブジェクトに関する変換を適宜実施する。このステップは、図5に示されているアルゴリズムを含む。この段階においては、該アルゴリズムは、(スタックT内に現在保存されているノードは最上位ノードであるため)ウェブページコンテンツ全体が表示装置内に納まるかどうかを検査中である。コンテンツが表示装置内に納まることができる大きさである場合は、該アルゴリズムは、ステップS6.5を通ってステップS6.6に進んで終了する。スタックQ内にはノードが残っていないため、プロセスは、ステップS6.15に飛び越し、ステップS6.15において、(関数render(T,Trans)の呼び出しを用いて)ツリー全体を出力して終了する。
【0107】
しかしながら、ウェブページコンテンツ全体が表示装置内に納まらない場合は、ステップS6.4の答えはいいえ(N)であり、処理は、ステップS6.8に進み、ステップS6.8において、最上位ノードをスタックTから取り除いてノードNとして保存する。次に、ステップS6.9において、スタックTには依然としてノードがないため、処理は、ステップS6.10に進み、ステップS6.10において、ノードNが葉であるかどうかを検査する。この段階では(ノードNは最上位<g>ノードであるため)答えはいいえ(N)であり、このため、処理は、ステップS6.11に進み、ステップS6.11において、ノードNのすべての直接的な子<g>ノードを処理するためにスタックQ上に置く。次に、ステップS6.12は、処理すべきノードがスタックQ内に存在するかどうかを検査する。この段階では、XMLツリーの最上位ノードのすべての直接的子<g>ノードがスタックQ内にあり、このため、処理は、ステップS6.3に戻り、一時的スタックTをクリアする。
【0108】
次に、処理は、ステップS6.4、S6.5、S6.6及びS6.7内を進み、直接的子ノードのうちの第1の子ノードをスタックQからスタックTに移動させる。ウェブコンテンツのうちでクライアント表示装置内に納まる大きさである(即ち、ステップS6.4がTRUEを戻す)のはこの部分(即ち、この子ノードの下方のサブツリー内のコンテンツ)である。この場合は、処理は、ステップS6.4、S6.5、S6.6及びS6.7内を再び通り、スタックQの第2の子ノードをスタックTに加える。このプロセスは、無期限に繰り返され、ウェブコンテンツのうちのこの結合部分(即ち、スタックTに加えられた全ノード部分)が依然としてクライアントディスプレイ内に納まるかどうかを毎回検査する。いずれかの時点においてソースコンテンツ(即ち、T内のノードリストによって表されている現在のコンテンツ部分)がディスプレイに適合しない(即ち、ステップ6.4における答えがいいえである)場合は、処理はステップS6.8に進み、ステップS6.8において、スタックTに加えられた最後のノード(該スタックにおいて最高位のノード)がスタックTから取り除かれてノードNとして保存される。次に、ステップS6.9は、スタックT内にノートがまだ残っているかどうかを検査し、残っている場合は、処理はステップS6.13に進み、ステップS6.13において、ノードNは、のちに処理するために、最初の保存領域(即ちスタックQ)に戻される。次に、関数render(T,Trans)の呼び出しを用いて、XMLツリーの1つのセクション(即ち、現在スタックT内にあるノードによって表されているコンテンツ)が、適合化されたより小さいページのうちの1つとして出力される。該アルゴリズムは、ステップS6.12に進み、処理するためのノードがスタックQ内に残っているかどうかを決定する。処理するためのノードがスタックQ内に残っている場合は、ステップS6.3に戻る。
【0109】
該アルゴリズムは、図6に示されている全ステップを実行後、ツリー全体にわたって処理を繰り返し、コンテンツを変換してディスプレイに適合させることが可能であるかどうかを(関数fits_page(T,Trans)を用いて)確認し、適合させることができない場合は、該コンテンツをさらに小さく分割する。この分割は、該アルゴリズム内において次のプロセスによって達成される。即ち、ノード下方のコンテンツが表示装置内に納まることができないごとに、ステップS6.11において、その直接的子<g>ノードがのちに処理するために別個に保存領域(スタックQ内の待ち行列)内に加えられる。このプロセスは、コンテンツをより小さい部分に分割し、このため、サブツリーを個々に検査して該コンテンツがクライアントデバイス上に表示するのに適したサイズであるかどうかを確認することができる。次に、ディスプレイに適合するあらゆるコンテンツ部分に関して、ディスプレイ内における空白スペース量を最小限にするために、これらのコンテンツ部分を該コンテンツのその他の部分と結合させることが試みられる(即ち、ステップS6.7)。しかしながら、異なったコンテンツ部分のこの結合は、対象ノードが兄弟である(即ち、ツリー内において同じ親<g>ノードを有する)場合にしか行われない。このようにして、適合化アルゴリズムは、最上位の<g>ノードから最下位の<g>ノードの葉(さらなるコンテンツ分割が許容されている最下位の葉)までツリー全体にわたって進行する。
【0110】
XMLツリー内におけるウェブコンテンツ構成が階層ツリー構成であるおかげで、及び、適合化アルゴリズムによって実行されるステップの順序のおかげで、コンテンツ表示時に最上部から最下部に及び左から右に進む順序が維持される。更に、単一ページ上には(同じレベルのグループの)全体的な関連した複合オブジェクトのみが表示されることになる。
【0111】
更に、該アルゴリズムは、すべてのより小さいページを通じて類似オブジェクトの表示の一貫性を確保する。この確保は、オブジェクトに関して既に実施されている変換のリストを該オブジェクトと関係するオブジェクトラベル(類似するオブジェクトを示す前述の第2の型の識別タグ)とともに維持する保存領域(例えば、Transと呼ばれるアレイ)を用いることによって達成される。コンテンツの各部分に関して、該アルゴリズムは、類似するオブジェクトに関して実施されている変換が首尾一貫していることを確認するために、アレイTransを検査してこれらのオブジェクトに対して既に変更が加えられているかどうかを確認する。アレイTransは、関数fits_page()がコンテンツ部分に関して新たな変換を成功裡に行なってページサイズ内に納まるごとに処理中に動的に更新される。
【0112】
上記の適合化アルゴリズムに関する説明全体を通じて、処理中に一時的にノードを保存するために用いられる2つの保存領域(スタック“Q”及び“T”)を挙げていることを理解すべきである。該アルゴリズムの機能上、これらの保存領域は、これらのノードと関係する適切なコンテンツ部分を保有するとみなすことができる。この場合、これらの保存領域自体は、実際には、メモリの別の部分内におけるコンテンツの保存場所を指し示す単なるメモリアドレスリストとして実装されるにすぎないにもかかわらずこのようにみなすことができる。
【0113】
ウェブページを適合させるための適合化アルゴリズム(疑似ジャバコード)の典型的実施形態を以下に示した。
【表2】

【0114】
以下の関数がSplitPage()によって使用される。
【0115】
is leaf(N)
一時的ノードNが葉である場合にTRUEを戻す
are siblings(T)
スタックT内のノードが同じ親<g>ノードを共有している(又は、Tが単一ノードを含むか又は空である)場合にTRUEを戻す
fits page(T,Trans)
スタックT内のノード(即ち、これらのノードの下方のすべてのサブツリーのコンテンツ)が表示装置内に納まる上で十分に小さいかどうかを決定する 最初に、スタックTがTrans内のノードと同じ識別子ラベルを有するノードを含む場合は、関係する変換がこれらのオブジェクトに関して実施される。これでコンテンツがページに適合する場合は、fits page(T,Trans)がTRUEを戻す。
【0116】
しかしながら、コンテンツが依然としてページに適合しない場合は、いくつかの異なった変換をコンテンツに関して実施することができ、これらの変換は、図5に示されている。これらの追加のオブジェクト変換のうちのいずれかを実施した結果コンテンツが表示装置に適合することになった場合は、これらの変換は、該当するオブジェクトラベルとともにアレイTransに追加され、fits page(T,Trans)がTRUEを戻す。
【0117】
代替として、可能であるすべての追加変換を実施後も依然としてソースコンテンツが表示装置に適合しない場合は、fits page(T,Trans)はFALSEを戻す。
【0118】
関数fits page(T,Trans)は、スタックTが空である場合もTRUEを戻す。
【0119】
render(N,Trans)、render(T,Trans)
コンテンツの一部分(即ち、XMLツリーの1つ以上のノードによって表されているコンテンツ)を、適合化されたより小さいページの1つとして出力するために使用する。該関数は、ノードNとアレイTransの入力パラメータ、又はスタックTとアレイTransの入力パラメータのいずれかを有する。Transは、今日までに提供されているオブジェクト識別子ラベル、及びこれらの識別子ラベルに関係する変換とパラメータを含むため、N又はTがTrans内のラベルと同じラベルを有するオブジェクトを含む場合は、該当する変換がこれらのオブジェクトに関して実施される。残りのオブジェクトは適宜変換され(即ち、空白スペース量を最小限に抑えながら所定の表示装置に適合させ)、これらのラベル及び変換がTransに加えられる。最後に、Transが該関数によって戻される。
【0120】
上述されているように、関数呼び出しfits_page(T,Trans)中において、コンテンツがプロフィール範囲(所定の表示装置、等)に適合しない場合は、幾つかの異なった変換を該コンテンツに関して実施することができ、ここでは、図5を参照しつつこれらの変換についてさらに
詳細に説明する。この機能を果たすアルゴリズムは、以下の検査を行う。
【0121】
i)ソースコンテンツのすべての画素及び文字をプロフィール範囲内に納めることができるかどうかを検査する
ii)空白スペース及びラインを取り除いた後にソースコンテンツをプロフィール範囲内に納めることができるかどうかを検査する
iii)表示オブジェクトのプロパティの削除、サイズ変更、要約、及び変更によってソースコンテンツがプロフィール内に納まるかどうかを検査する
これらの検査は、8つの可能な変換によって具体化される。これらの変換は順に実施されるが、各変換を実施後に、所定の表示装置に関するクライアント能力プロフィールを参照することによって、その時点までに変換されたコンテンツを該表示装置上に表示できるかどうかを決定するための評価が行われる。表示可能であると決定された場合は、追加の変換は実施されない。表示不能であると決定された場合は、すべての8つの変換が実施される。
【0122】
順に利用可能な変換は以下のとおりである。
【0123】
第1の変換: フォントの縮小 “verdana”をフォントファミリーとして原フォントをより小さいフォントサイズに変換する
第2の変換: 画像の縮小 画像オブジェクトを10%だけ縮小し、最適のサイズ又は50%になるまで繰り返す
第3の変換: 制御オブジェクトの縮小 変換した結果該オブジェクトの最適なサイズよりも大きい場合に、デフォルトの画面の大きさとクライアントデバイスの比に基づいてオブジェクトを縮小する
第4の変換: スペースの削除 段落間の不要なスペースを取り除く
第5の変換: ラインの削除 第4の変換と同じ目的である
第6の変換: 装飾画像の削除 装飾プロパティを有する画像をオブジェクトのサイズに基づいて削除する
第7の変換: 装飾テキストの削除: 装飾として機能する冗長なテキストを取り除く(これらのテキストが特殊文字である場合)
第8の変換: 画像の入れ替え: 画像に代わる代替テキストが存在する場合は、アルゴリズムは、該代替テキストのサイズと画像自体を比較し、短いほうが適合結果として選択される。
【0124】
図5は、変換アルゴリズムをより詳細に示した図であり、特に、実施可能な8種類の変換を示した図である。図5において、同図によって提供されている手順は、ステップ5.1において開始され、2つのカウンタが初期設定される。より具体的には、第1のカウンタiがi=1に初期設定され、第2のカウンタrがr=0に初期設定される。
【0125】
次に、処理はステップ5.2に進み、ステップ5.2において、ウェブコンテンツが所定の表示装置のディスプレイ内に納まるかどうかを決定するための評価が行われる。この評価は、該コンテンツの特徴と、プロフィールサーバー26のクライアント能力プロフィール内において提供されているクライアントデバイス表示能力特性と比較することによって実施される。特定の適合化されたバージョンを生成する場合は、ステップ5.2において、クライアント能力プロフィールのうちで、適合化アルゴリズムの現在のインスタンス化によって適合化バージョンが生成中である単一のクライアント能力プロフィールと対照する評価が常に実施される。
【0126】
ウェブコンテンツが所定の表示装置のディスプレイ内に納まることがステップ5.2における評価によって示され、変換を実施する必要がない場合は、変換アルゴリズムは、ステップ5.3において終了し、関数fits_page()に関してTRUEを戻す。
【0127】
反対に、ウェブコンテンツが所定の表示装置のディスプレイ内に納まらないことがステップ5.2における評価によって示された場合は、処理はステップ5.4に進み、ステップ5.4において、カウンタi=1であるかどうかを決定するための評価が行われる。ここで、アルゴリズムがステップ5.1において初めて開始されたときにはカウンタiは1に初期設定されるということを思い出されることになり、従って、ステップ5.4における評価は肯定応答を返し、処理はステップ5.6に進む。ステップ5.6においては、フォント縮小を目的とする第1の変換が開始され、ステップ5.8及び5.10の形になる。
【0128】
ステップ5.8において、適合させるウェブコンテンツ内の全テキストに関するフォントサイズが1に設定される。但し、その他の実施形態においては、その他の値を選択することができる。次に、ステップ5.10において、ウェブコンテンツ内の全テキストに関するフォントの種類が“verdana”に設定される。これらのステップは、ウェブコンテンツ内のすべてのテキストオブジェクトのサイズを大幅に縮小する結果になる。処理は、これらのステップ後はステップ5.12に進み、ステップ5.12において、カウンタiの値が1だけ増やされる。次に、処理は、ステップ5.2の評価に戻り、ステップ5.2において、変換されたウェブコンテンツが今度は所定の表示装置のディスプレイ内に納まるかどうかを決定するための評価が行われる。ステップ5.2における該評価が肯定応答を返した場合、即ち、現時点においてウェブコンテンツを所定の表示装置において表示可能である場合は、プロセスは、ステップ5.3に進んで終了する。反対に、さらなる変換を実施する必要がある場合は、処理は、ステップ5.4に進み、ステップ5.4において、カウンタi=1であるかどうかに関する評価が行われる。カウンタiはステップ5.12において値が増やされて現在は2になっているため否定値が返され、処理はステップ5.14における評価に進み、ステップ5.14において、カウンタiが2であるかどうかに関する評価を行う。ここでは、肯定値が返され、処理は、ステップ5.16に進む。
【0129】
ステップ5.16において、画像縮小変換が開始される。画像縮小変換では、最初にステップ5.18において、該画像に関して可能な最大縮小値が入手される。この最大縮小値は、ハードコード値(例えば50%)である。次に、ステップ5.20において、最大縮小値がカウンタrの値の10倍よりも大きいかどうかに関する評価が行われる。ここで、ステップ5.1においてカウンタrの値がゼロに初期設定されたことが思い出されることになり、従って、最初の循環時点では、ステップ5.20における評価は、肯定応答を返す。次に、処理はステップ5.22に進み、ステップ5.22において、ウェブコンテンツ内の画像が10%だけ縮小される。次に、処理は、ステップ5.24に進み、ステップ5.24において、カウンタrの値が1だけ増やされ、ステップ5.26に進む。ステップ5.26において、r=5であるかどうかに関する評価が行われる。最初の循環時点においては、rはステップ5.24において値が増やされていて1になっており、従って、ステップ5.26の評価は否定値を返す。この場合は、処理は、直接ステップ5.2に戻り、ステップ5.2において、変換されたコンテンツが所定の表示装置のディスプレイ内に納まるかどうかに関する評価が実施される。変換されたコンテンツが所定の表示装置のディスプレイ内に納まる場合は、処理は、ステップ5.3において終了する。変換されたコンテンツが所定の表示装置のディスプレイ内に納まらない場合は、処理は、ステップ5.4を介してステップ5.14に進み、ステップ5.14においては、カウンタiはまだ数が加えられていないため、肯定応答結果が返され、ステップ5.18、5.20、5.22、5.24及び5.26の画像縮小変換が再度実施される。
【0130】
図5から明らかなように、画像縮小変換は最高5回実施することができ、各繰り返しにおいて画像縮小変換を実施するごとに画像のサイズがさらに10%だけ縮小され、他方、利用可能な最大画像縮小値がrの現在値の10倍よりも大きくない場合は、利用可能な最大縮小値分だけ縮小される。しかしながら、いずれの場合においても、変換は、カウンタr=5になるまで5回反復的に実施される。カウンタr=5の時点で、ステップ5.6の評価が肯定応答を返し、処理は、ステップ5.12に進み、ステップ5.12において、カウンタiの値が増やされる。処理は、ステップ5.12からは常にステップ5.2戻り、ステップ5.2において、現時点ではコンテンツが所定の表示装置のディスプレイ内に納まるかどうかに関する評価が行われる。既に実施済みの変換が十分である場合は、この評価は、肯定値を返し、処理は、ステップ5.3において終了する。既に実施済みの変換が十分でなく、さらなる変換が必要な場合は、処理は、ステップ5.4を介して更に今回は(現在はi=3であるため)ステップ5.15も介してステップ5.30に進む。
【0131】
ステップ5.30において、カウンタiが3であるかどうかに関する評価が行われ、カウンタiが3である場合は、処理は、ステップ5.32に進み、ステップ5.32において、制御オブジェクト縮小変換が開始され、ステップ5.34に進む。
【0132】
ステップ5.34において、ウェブコンテンツに関するデフォルトの画面サイズと所定の表示装置の実際の画面サイズの比が得られる。ステップ5.36において、この比に基づき、この比をデフォルトサイズに当てはめることによって、各制御オブジェクトのサイズが計算される。次に、ステップ5.38において、各制御オブジェクトに関する計算されたサイズが各オブジェクトに関する最小許容サイズよりも小さいかどうかに関する評価が行われる。該計算されたサイズが該最小許容サイズよりも小さくない場合は、処理は、ステップ5.42に進み、ステップ5.42において、計算された比に基づいて制御オブジェクトのサイズを縮小することができる。しかしながら、該計算されたサイズが各制御オブジェクトの該最小許容サイズよりも小さい場合は、処理は、ステップ5.40に進み、ステップ5.40において、ウェブコンテンツ内の制御オブジェクトのサイズが最小許容サイズに基づいて縮小される。該最小許容サイズは、事前に決定される。
【0133】
ステップ5.40又はステップ5.42の後は、処理は、ステップ5.12に進み、ステップ5.12において、カウンタiの値が増やされる。次に、ステップ5.2に進み、ステップ5.2において、変換されたコンテンツが所定の表示装置のディスプレイ内に納まるかどうかに関する評価が行なわれる。
【0134】
ステップ5.2の評価が否定応答を返すと想定した場合、カウンタiの値は現在は4であり、従って、処理は、ステップ5.4、5.14及び5.30を介してステップ5.44に進み、ステップ5.44において、i=4であるという評価が肯定値を返す。この結果は、処理をステップ5.46に進め、ステップ5.46において、スペース削除変換が開始される。
【0135】
この変換は、ウェブコンテンツ内のオブジェクトタグを検討すること、及び特定のタグを有するオブジェクト及び/又はその他の一定条件を満たしているオブジェクトを削除することに関連する。従って、ステップ5.48において、タグ<BR>を有していて、タグ<TD>と<DIV>を持つオブジェクトの最初の子と最後の子であるオブジェクト、が取り除かれる。次に、ステップ5.50において、タグ<BR>を有していて、タグ<Table>を有するオブジェクトの兄弟であるオブジェクト、も削除される。次に、ステップ5.52において、ウェブコンテンツ表示オブジェクト内のすべての連続した空白スペースが単一のスペースに減らされ、それに応じて、ステップ5.54において、ウェブコンテンツ表示オブジェクト内のすべての連続した区切り部分が1つに減らされる。最後に、ステップ5.56において、<table>オブジェクトのセルパディング及びセルスペーシング値がゼロに減らされる。このスペース削除変換結果、ウェブコンテンツ内の空白スペースが絶対最小値に縮小される。
【0136】
ステップ5.56の後は、処理はステップ5.12に進み、ステップ5.12において、カウンタiの値が5に増やされる。次に、ステップ5.2における評価が実施され、変換されたコンテンツが現在は所定の表示装置のディスプレイ内に納まるかどうかが決定される。変換されたコンテンツが所定の表示装置のディスプレイ内に納まる場合は、処理は5.3において終了する。変換されたコンテンツが所定の表示装置のディスプレイ内に納まらない場合は、処理は、ステップ5.4、ステップ5.14、ステップ5.30及びステップ5.44を介してステップ5.58に進み、ステップ5.58において、i=5であるという評価が肯定応答を返す。その後は、ステップ5.60において、ライン削除変換が実施され、ステップ5.62において、<HR>タグを有するすべての表示オブジェクトが削除される。この機能は、本質的に、以前に実施された第4変換と同じ機能、即ち、空白スペースを減らす機能を有する。
【0137】
ステップ5.62の後は、処理は、再度ステップ5.12に戻り、ステップ5.12において、カウンタiの値が増やされる。次に、ステップ5.2の評価が再度実施され、処理は、該評価が否定的な結果を出すと想定し、ステップ5.4、5.14、5.30、5.44、及び5.58を介してステップ5.64に進む。ステップ5.64における評価は、iが6に増やされているため肯定的な結果を出す。
【0138】
従って、ステップ5.64の後は、処理は、ステップ5.66に進み、ステップ5.66において、装飾テキスト削除変換が開始される。この変換は、ステップ5.68において実施され、ステップ5.68においては、装飾目的の機能であることがコンテンツ解析モジュール30によって検出されたテキストがウェブコンテンツから削除される。
【0139】
ステップ5.68の後は、処理は、ステップ5.12に戻り、ステップ5.12において、カウンタiの値が増やされる。次に、ステップ5.2における評価に戻り、変換されたコンテンツが現在は所定の表示装置のディスプレイ内に納まるかどうかに関する評価が行なわれる。処理は、変換されたコンテンツが所定の表示装置のディスプレイ内に納まらないと想定し、ステップ5.4、5.14、5.30、5.44、5.58、及び5.64の各々の評価を行ってステップ5.70に進み、ステップ5.70において、現在はカウンタiが7の値を有しているため、肯定的な結果が戻される。このことは、処理をステップ5.72に進ませ、ステップ5.72において、装飾画像削除変換が開始される。ステップ5.74において、装飾オブジェクト機能を有することがコンテンツ解析モジュール20によって検出された画像又はオブジェクトが削除される。以上のように、ウェブコンテンツの真の意味コンテンツに貢献しない画像が削除される。
【0140】
ステップ5.74の後は、処理は、再び5.12に戻り、ステップ5.12において、カウンタiの値が増やされる。その後は、変換されたコンテンツがこの時点では所定の表示装置のディスプレイ内に納まるかどうかに関するステップ5.2の評価が行なわれる。処理は、この評価が否定値を返すと想定し、ステップ5.4、ステップ5.14、ステップ5.30、ステップ5.44、ステップ5.58、ステップ5.64、及びステップ5.70の各々の評価を経てステップ5.76に進む。ステップ5.76においては、現時点ではiが8であるかどうかに関する評価が行なわれる。この評価は肯定的な結果を戻すため、処理は、ステップ5.78に進み、ステップ5.78において、画像交換変換が開始される。この画像交換変換は、ステップ5.80において開始され、各画像表示オブジェクトに関して、画像が代替テキストを有するかどうかに関する評価が行なわれる。画像が代替テキストを有する場合は、処理は、ステップ5.82に進み、ステップ5.82において、画像に関する代替テキストの全体的な画素サイズが画像自体よりも小さいかどうかに関するさらなる評価が行なわれる。該画素サイズが画像自体よりも小さい場合のみに、画像が代替テキストに代えられる。明確なことであるが、代替テキストが画像よりも大きいスペースを占めることになるのでは、該画像を代替テキストに代えてもほとんど意味がない。ステップ5.84において交換後は、処理は、ステップ5.12に戻る。同様に、ステップ5.80及びステップ5.82の評価のうちのいずれかの評価が否定値を戻した場合、即ち、画像が代替テキストを有していない場合、又は、代替テキストが既存の画像サイズよりも小さくない場合は、処理は同じくステップ5.12に戻る。ここでは、処理がステップ5.12に戻ってカウンタiの値が増やされる前に、図5において示されている画像変換が実施されることに注目すべきである。更に、ウェブコンテンツ内の複数のオブジェクトを対象にしたこの処理は、次の変換を実施することを可能にするカウンタiの値が増えされる前にウェブコンテンツ内のすべての該当オブジェクトに関して各変換が実施されるという点で、前述されている変換の各々に関して実施される。
【0141】
ステップ5.12において、再度カウンタiの値が増やされ、従って、この事例においては現時点では値9を有する。このため、処理がステップ5.2における評価に戻った時点では、iが8よりも大きいという代替評価条件が満たされており、このための変換アルゴリズムは終了しなければならない。
【0142】
上記の説明から、変換アルゴリズムは、ウェブコンテンツ内の表示オブジェクトに関して各変換を実施し、更に各変換を実施後は、変換されたウェブコンテンツは所定の表示装置のディスプレイ上において表示できるかどうかに関する評価を行うように動作することがわかることになる。変換されたウェブコンテンツが所定の表示装置のディスプレイ上において表示できる場合は、これ以上の変換は実施されず、TRUEをfits_page()に戻す。
【0143】
適合化プロセスが完了後、即ち、図6の適合化アルゴリズムが終了後は、特定のクライアント能力プロフィールに関して異なったウェブコンテンツバージョンが生成されていることになる。しかしながら、複数のクライアント能力プロフィールが存在するため、各クライアント能力プロフィールに関する適合化されたウェブコンテンツバージョンを生成するためにこれらのアルゴリズムを繰り返し実行しなければならない。その後は(即ち、全バージョンを生成後は)、適合化モジュールは、生成されたバージョンに関するプロフィールIDをクライアント能力プロフィールに基づいて生成し、これらの適合化されたバージョン及びIDをコンテンツキャッシュに保存する。これらのプロフィールIDと物理的な適合されたコンテンツの論理的関係は、データベース構造相互参照リンクの形をしている。これで、これらの適合されたコンテンツバージョンは、検索可能な状態であってエンドユーザーの要求に応じて引き渡すことが可能な状態になっている。
【0144】
本発明の実施形態に準拠したシステムは、上述されている動作モードにおいて、ユーザーが要求する前に原ウェブコンテンツの多数の適合化バージョン(即ち、既知の及び指定された特性を有する特定の所定の表示装置に関する各々のバージョン)を生成するように動作する。
【0145】
しかしながら、上述されているように、該システムは、ウェブサーバーとして動作することもできる。次にこの動作モードについて説明する。
【0146】
システムがウェブサーバーとして動作していてインターネットに接続されていると想定すると、該サーバーは、ウェブコンテンツに関するhttp要求をエンドユーザーデバイス1から受け取る。このhttp要求は、最初にクライアント能力発見モジュール12に引き渡され、クライアント能力発見モジュール12は、エンドユーザーデバイス1の一組の表示特性(例えば、画面のサイズ、色の深さ、ブラウザーの種類、ネットワーク接続、等)を決定するように動作する。
【0147】
クライアント能力発見モジュール12は、M3Iによって提言されている基準等の既存の基準に基づいてデバイス能力を検出する(前述されておりさらに本出願明細書において参照することによって本出願明細書に組み入れられているCurrent Technologies for Device Independent, Mark H Butler, HP Labs Technical Report HPL-2001-83 4 April 2001)(デバイスに依存しないための現在の技術、マークHバトラー、HP研究所技術報告書HPL−2001−83 2001年4月4日)を参照すること。該報告書の該当する内容は、本発明を完全に理解する上で必要である。現時点においては、ほとんどのインターネットブラウザーの場合は、ウェブサーバーに送られる最初の要求の中にエンドユーザー情報(ブラウザーの種類とバージョン、IPアドレス、画面解像度、等)が含まれている。エンドユーザーのデバイスは、エンドユーザーがウェブサーバーを通じてURLを入力した時点でサーバーとの通信を始める。クライアント能力発見モジュール12は、エンドユーザーデバイス情報を入手するために、エンドユーザーから送られたクライアント能力情報を単純なJavascript(登録商標)によって検索し、Javaサーブレットプログラムを通じて該情報をサーバーに渡す。「クライアントプロフィール」と呼ばれるJava(登録商標)Servletを通じてエンドユーザーデバイス情報を入手してサーバーに引き渡すJavascript(登録商標)のサンプルを以下に示した。
【表3】

【0148】
クライアント能力発見モジュール12は、エンドユーザーデバイス1のクライアント特性の組を決定後、決定した特性の組を決定モジュール14に引き渡し、決定モジュール14は、エンドユーザーデバイス特性を、プロフィールサーバー26内に保存されているクライアント能力プロフィールの組と比較するように動作する。決定モジュール14がエンドユーザーデバイス特性の組をクライアント能力プロフィールのうちの1つとマッチさせることができた場合は、決定モジュール14は、エンドユーザーデバイス特性にマッチしたクライアント能力プロフィールのプロフィールIDをインデックスとして使用して、適合化されたコンテンツの異なったバージョンを保存するコンテンツキャッシュ10にアクセスする。次に、該プロフィールIDにインデキシングされたウェブコンテンツの適合化バージョンが、コンテンツキャッシュ10から検索され、ネットワークを通じてエンドユーザーデバイス1に提供される。以上のように、この動作モードにおいては、該システムは、ウェブコンテンツの適合化バージョンのうちでエンドユーザーデバイスに送るべき予め生成された適合化バージョンを決定するために、エンドユーザーデバイス表示特性を一組の予め定義されたデバイス特性とマッチングさせることができる。
【0149】
上述されているように、該システムは、さらなる動作モードも提供し、該動作モードでは、前述されている動作モードによって提供された動作を結合させる。ここでは、エンドユーザーデバイス1がウェブコンテンツ要求を行うと、前述されているようにクライアント能力発見モジュール12が動作して該デバイスの表示特性を決定し、決定された表示特性が決定モジュール14に渡される。決定モジュール14は、エンドユーザーデバイス1の能力を、プロフィールサーバー26に保存されているクライアント能力とマッチさせることを試み、マッチさせることができた場合は、ウェブコンテンツの該当する適合化バージョンがコンテンツキャッシュ10から検索され、ネットワークを通じてエンドユーザーデバイス1に渡される。マッチさせることができない場合は、決定モジュール14は、クライアント能力発見モジュール12によって決定された特性に関連するエンドユーザーデバイス1の詳細を適合化モジュール16に渡すことによって適合化モジュール16を動作させる。適合化モジュール16は、プロフィールサーバー26に保存されてエンドユーザーデバイス1の能力に対応する新しいクライアント能力プロフィールを生成し、更に、エンドユーザーデバイス1専用に適合化された新たな適合化ウェブコンテンツバージョンを生成するためにウェブコンテンツの適合化バージョンを予め生成時には、前述されている方法とまったく同じ方法で動作を開始させる。即ち、適合化モジュール16は、コンテンツ解析モジュール20を動作させ、コンテンツ解析モジュール20は、ウェブコンテンツを解析し、適合化モジュールがエンドユーザーデバイス1専用の新たな適合化されたウェブコンテンツバージョンを生成するために適合化アルゴリズムを実行することを可能にする。次に、適合化されたウェブコンテンツは、決定モジュールに戻され、決定モジュールは、ネットワークを通じて該適合化ウェブコンテンツをエンドユーザーデバイス1に送る。更に、新たな適合化ウェブコンテンツは、エンドユーザーデバイス1と類似のエンドユーザーデバイスが将来要求した場合に使用できるようにするためにコンテンツキャッシュ10にも保存される。従って、このさらなる動作モードにおいては、適合化されたウェブコンテンツの新たなバージョンを、ユーザーの要求に応じて動的に生成することができ、更に、ユーザーによる将来の要求に対応するために保存される。
【0150】
該システムは、上述されている動作モードに加えて、カスタム化モジュール24も提供する。このカスタム化モジュールは、単に、コンテンツキャッシュに保存されたウェブコンテンツの様々な適合化バージョンに対して改良を加えるためにウエブ著者が必要に応じてブラウズすることを可能にするフロントエンドであるにすぎない。この機能に鑑みて、カスタム化モジュール24に関するこれ以上の説明は行わない。
【0151】
結論としては、該システムは、異なったウェブコンテンツバージョンをユーザーの要求に先んじて生成することができるため、ユーザーが要求時には、エンドユーザーデバイスの表示特性を予め生成されたバージョンとマッチングさせ、それによって、計算をほとんどまったく集中させずに敏速に応答を生成することができる。更に加えて、必要な場合は、ウェブコンテンツを要求している特定のエンドユーザーデバイスとマッチさせるために適合化ウェブコンテンツの新たなバージョンを動的に生成することもでき、更に、類似のエンドユーザーデバイスからの将来の要求に対応する際に使用するために保存される。
【0152】
本出願明細書において特に図5及び6の適合化プロセスを参照しつつ説明されている特定の実施形態における手順は、解析されたウェブコンテンツ(XMLツリー)全体を移動する反復プロセスと、コンテンツ分割と、コンテンツを必要に応じて変換して表示装置に適合するように縮小すること、が含まれていたことが理解される。しかしながら、代替実施形態も構想されており、該代替実施形態においては、最初にコンテンツ全体を可能な限りの最小サイズに縮小し、その後にコンテンツを分割し、次に該コンテンツのサイズを再度拡大させて表示サイズにする変換を行うように手順が修正される。該コンテンツを再度拡大した時点で、該コンテンツを複数のページ間でより適切に配分するために再分割することが必要になる場合がある。従って、この手順は、繰り返し分割すること及び変換することも含むことになるが、コンテンツのサイズが表示装置において表示するのに適しているかどうかを決定するステップは、受け入れられないほど大きな面積の空白スペースを表示装置において表示するかどうかを計算することを含むことができる。
【0153】
グルーピング/クラスタリングパターンアルゴリズムは、ウェブページ部分のオブジェクトをクラスタに分類し、これらのクラスタ間の関係を決定する。この分類及び関係は、より小さい画面を有するデバイスにおけるいくつかのより小さいコンテンツページ上にどのようにしてウェブページコンテンツを表示するかに対して影響を与える。より小さいコンテンツページの組のうちのどのページにどのクラスタを入れるべきかを決定する1つの方法は、グルーピング/クラスタリングパターンアルゴリズムを使用し、更に、以下の予め決められたパラメータ値に依存する。
【0154】
選択すべきクラスタ内において計算された最大許容画素数(合計)
1つの分割されたページに関する許容空白スペース(実験的に決定できる)
分割ページの許容される縦の長さ(実験的に決定できる)
分割ページの許容される横の長さ(実験的に決定できる)
第1の予め決められたサイズの表示面積を有するデバイス上において表示するように配備されたウェブページのコンテンツを、1つ以上のその他のデバイス(各々が異なった表示面積を有することができるデバイス)において表示するために複数のコンテンツページに分割する循環(繰り返し又は反復)手法を採用することによって、各デバイスにおいてコンテンツを提示するために用いられるフォーマットが相対的に一貫している。従って、原ウェブページから派生したコンテンツを含むページを示すすべてのディスプレイは、1つの一貫したフォーマットを共有することができるはずである。
【0155】
文脈上別の解釈が明確に要求されない限り、本出願明細書における説明全体を通じて、「具備する」、「具備している」、等の表現は、排他的または余すところなくという意味ではなく包含するという意味である、即ち、「含んでいるが、これらの項目に限定するものではない」という意味であると解釈すること。
【0156】
本出願明細書の要約の本文を説明の一部として以下に再掲した。
【0157】
ウェブページコンテンツを適合させる装置及び方法について説明されている。ウェブページコンテンツをより小型の所定の表示装置において表示するために適合させることは、該コンテンツを幾つかのより小さいページにわたって分割することをしばしば要求する。該装置及び方法は、プロセスを最適化するためにコンテンツ分割プロセスと変換(例えば、フォントサイズ、画像、等の縮小)を実施することを統合する手順に関連する。該手順は、ウェブページコンテンツ全体にわたって体系的に実施され、該コンテンツを反復的により小さい部分に分割することと、これらのより小さいページ上において見ることができる空白スペース量を最小にするために様々な変換を同時に実施すること、とを繰り返す。更に、好ましい実施形態は、オブジェクトに関して既に実施されている変換を追跡し、更に、これらの変換をのちにその他の類似のオブジェクトに関しても実施することによって一貫性を確保する。
【図面の簡単な説明】
【0158】
【図1】本発明の実施形態の構成要素と、これらの構成要素間における信号の流れと、を示したシステムブロック図である。
【図2】動作中の本発明の実施形態の構成要素間における情報の流れ方をより詳細に示したプロセス流れ図である。
【図3】本発明の実施形態においてウェブコンテンツ内の表示オブジェクトの特性を検出するアルゴリズムに関する流れ図である。
【図4】本発明の実施形態においてウェブコンテンツ内の表示オブジェクトの機能を検出する決定ツリーである。
【図5A】本発明の実施形態におけるコンテンツ変換実施方法を示した流れ図(その1)である。
【図5B】本発明の実施形態におけるコンテンツ変換実施方法を示した流れ図(その2)である。
【図5C】本発明の実施形態におけるコンテンツ変換実施方法を示した流れ図(その3)である。
【図6】本発明の実施形態におけるコンテンツ分割プロセスの実施方法を示した流れ図である。

【特許請求の範囲】
【請求項1】
ウェブページコンテンツを所定の表示装置において表示するために適合させる装置であって、前記コンテンツを前記表示装置において表示するために複数のより小さいウェブページに分割する適合化手段を具備し、前記適合化手段は、
(i)前記コンテンツを複数のコンテンツ部分に分割し、前記コンテンツ部分のうちの少なくとも1つに関してステップ(i)乃至(vi)を反復的に繰り返し、
(ii)前記コンテンツを解析して前記コンテンツ部分のサイズが前記表示装置において表示するのに適しているかどうかを決定し、
(iii)前記コンテンツのサイズが前記表示装置において表示するのに適していない場合は、前記コンテンツ部分に関して少なくとも1つのコンテンツ変換を実施し、
(iv)前記変換されたコンテンツを解析して、前記変換されたコンテンツ部分のサイズが前記表示装置において表示するのに適しているかどうかを決定し、
(v)前記変換されたコンテンツ部分のサイズが前記表示装置において表示するのに適していない場合は、前記コンテンツ部分を複数のさらなるコンテンツ部分に分割する、ように構成されている装置。
【請求項2】
前記サイズが適しているかどうかを決定する解析ステップ(ii)及び(iv)は、前記コンテンツが前記表示装置において表示する上で十分に小さいかどうかを決定することを具備する、請求項1に記載の装置。
【請求項3】
前記適合化手段は、前記変換されたコンテンツ部分が前記表示装置において表示する上で十分に小さいとステップ(iv)が決定した場合には、前記変換されたコンテンツ部分をさらなるコンテンツ部分と結合させて1つの結合されたコンテンツ部分を形成するように構成されている請求項1又は請求項2に記載の装置。
【請求項4】
前記適合化手段は、前記コンテンツを解析して前記結合されたコンテンツ部分のサイズが前記表示装置において表示するのに適しているかどうかを決定し、前記結合されたコンテンツ部分のサイズが前記表示装置において表示する上で大きすぎる場合は、少なくとも1つのコンテンツ変換を前記結合されたコンテンツ部分に関して実施するように構成されている、請求項3に記載の装置。
【請求項5】
請求項3に従属し、前記適合化手段は、コンテンツ部分に関する保存領域を具備し、2つのコンテンツ部分を結合させる前記ステップは、前記保存領域から前記さらなるコンテンツ部分を選択することを具備し、
前記適合化手段は、前記コンテンツを解析することによって、前記変換された結合コンテンツ部分のサイズが前記表示装置において表示するのに適しているかどうかを決定し、前記変換された結合コンテンツ部分のサイズが前記表示装置にとって大きすぎる場合は、前記さらなるコンテンツ部分を前記保存領域内に戻すために前記結合されたコンテンツ部分を細分するようにさらに構成されている、請求項4に記載の装置。
【請求項6】
前記適合化手段は、前記変換された結合コンテンツ部分のサイズが前記表示装置において表示する上で十分に小さい場合には、前記コンテンツ部分を第2のコンテンツ部分と結合させるようにさらに構成されている、請求項5に記載の装置。
【請求項7】
前記ウェブページコンテンツをより小さいウェブページに分割するための適切な場所を表すためにラベルが貼付された複数のノードを具備する階層ツリーフォーマットに前記ウェブページコンテンツを変換するように構成されている解析手段をさらに具備する、上記のいずれかの請求項に記載の装置。
【請求項8】
前記適合化手段は、コンテンツ部分に関する保存領域をさらに具備し、コンテンツを分割してさらに小さいコンテンツ部分を形成する前記ステップは、複数のコンテンツ部分を前記保存領域内に加えることを具備する、上記のいずれかの請求項に記載の装置。
【請求項9】
前記適合化手段は、コンテンツに関して実施済みの変換記録を、前記変換が実施されているコンテンツの型の表示とともに保存するための変換保存領域を具備する、上記のいずれかの請求項に記載の装置。
【請求項10】
請求項3に従属し、請求項3において定義されている前記コンテンツ部分を結合させる前記ステップは、前記変換記録において示されているコンテンツと同じ型のコンテンツに関して一貫した変換を実施するために、前記変換記録に従ってコンテンツ変換を前記さらなるコンテンツ部分に関して実施することをさらに具備する、請求項9に記載の装置。
【請求項11】
ウェブページコンテンツを所定の表示装置において表示するために適合させる方法であって、
(i)前記コンテンツを複数のコンテンツ部分に分割し、前記コンテンツ部分の少なくとも1つに関してステップ(ii)乃至(v)を反復的に繰り返すステップと、
(ii)前記コンテンツを解析し、前記コンテンツ部分のサイズが前記表示装置において表示するのに適しているかどうかを決定するステップと、
(iii)前記コンテンツ部分のサイズが前記表示装置において表示するのに適していない場合は、少なくとも1つのコンテンツ変換を前記コンテンツ部分に関して実施するステップと、
(iv)前記変換されたコンテンツを解析し、前記変換されたコンテンツ部分のサイズが前記表示装置において表示するのに適しているかどうかを決定するステップと、
(v)前記変換されたコンテンツ部分のサイズが前記表示装置において表示するのに適していない場合は、前記コンテンツ部分を複数のさらなるコンテンツ部分に分割するステップと、を実行することによって前記コンテンツを前記表示装置において表示するためにより小さいウェブページに分割することを具備する、方法。
【請求項12】
前記サイズが適しているかどうかを決定する解析ステップ(ii)及び(iv)は、前記コンテンツが前記表示装置において表示する上で十分に小さいかどうかを決定することを具備する、請求項11に記載の方法。
【請求項13】
前記変換されたコンテンツ部分が前記表示装置において表示する上で十分に小さいことをステップ(iv)が決定した場合は、前記変換されたコンテンツ部分をさらなるコンテンツ部分と結合して1つの結合されたコンテンツ部分を形成するステップをさらに具備する、請求項11又は請求項12に記載の方法。
【請求項14】
前記コンテンツを解析し、前記結合されたコンテンツ部分のサイズが前記表示装置において表示するのに適しているかどうかを決定するステップと、前記結合されたコンテンツ部分のサイズが前記表示装置にとって大きすぎる場合は、少なくとも1つのコンテンツ変換を前記結合されたコンテンツ部分に関して実施するステップと、をさらに具備する、請求項13に記載の方法。
【請求項15】
請求項13に従属し、2つのコンテンツ部分を結合させる前記ステップは、前記さらなるコンテンツ部分を保存領域から選択することを具備し、前記コンテンツを解析することによって前記変換された結合コンテンツ部分のサイズが前記表示装置において表示するのに適しているかどうかを決定するステップと、前記変換された結合コンテンツ部分が前記表示装置にとって大きすぎる場合は、前記結合されたコンテンツ部分を細分して前記さらなるコンテンツ部分を前記保存領域内に戻すステップと、をさらに具備する、請求項14に記載の方法。
【請求項16】
前記変換された結合コンテンツ部分のサイズが前記表示装置において表示する上で十分に小さい場合は、前記コンテンツ部分を第2のコンテンツ部分と結合させるステップをさらに具備する、請求項15に記載の方法。
【請求項17】
前記ウェブページコンテンツをより小さいウェブページに分割するための適切な場所を表すためにラベルが貼付された複数のノードを具備する階層ツリーフォーマットに前記ウェブページコンテンツを変換するステップをさらに具備する、請求項11乃至請求項16のうちのいずれかの請求項に記載の方法。
【請求項18】
コンテンツを分割してより小さいコンテンツ部分を形成する前記ステップは、複数のコンテンツ部分を保存領域内に加えることを具備する、請求項11乃至請求項17のうちのいずれかの請求項に記載の方法。
【請求項19】
コンテンツに関して実施済みの変換記録を、前記変換が実施されているコンテンツの型の表示とともに維持することをさらに具備する、請求項11乃至請求項18のうちのいずれかの請求項に記載の方法。
【請求項20】
請求項13に従属し、請求項3において定義されているコンテンツ部分を結合させるステップは、前記変換記録内において示されているコンテンツと同じ型のコンテンツに関して一貫した変換が実施されるようにするために、前記変換記録に従ったコンテンツ変換を前記さらなるコンテンツ部分に関して実施することをさらに具備する、請求項19に記載の方法。
【請求項21】
装備されたディスプレイがウェブページの元来の意図された表示サイズよりも小さいためウェブページコンテンツを前記ディスプレイ上の複数のページにわたって分割する必要がある表示装置において表示するために前記ウェブページコンテンツを適合させる装置であって、
前記コンテンツをより小さい部分に繰り返し分割しその一方でこれらのより小さいページ上において見ることができる空白スペース量を最小にするために様々な変換を同時に実施することによって、前記コンテンツを分割するプロセスと変換を実施することを統合するように構成されている手段を具備する、装置。
【請求項22】
各々のより小さい部分に関して実施されている変換を追跡するように構成された手段をさらに具備し、ウェブページコンテンツのすべての類似部分に関して同じ変換を実施することによって一貫性を確保するように構成されている手段をさらに具備する、請求項21に記載の装置。
【請求項23】
装備されたディスプレイがウェブページの元来の意図された表示サイズよりも小さいためウェブページコンテンツを前記ディスプレイ上の複数のページにわたって分割する必要がある表示装置において表示するために前記ウェブページコンテンツを適合させる方法であって、
前記ウェブページのコンテンツを第1の予め決められたサイズを有する複数のより小さい部分に反復的に分割するステップと、
前記複数のより小さい部分に関して変換を実施するステップと、を具備し、
前記コンテンツを分割する前記ステップは、前記コンテンツを反復的により小さい部分に分割し、その一方でこれらのより小さいページ上において見ることができる空白スペース量を最小にするために様々な変換を同時に実施することによって、前記変換実施ステップと統合される方法。
【請求項24】
各部分に関して実施された各変換を追跡するステップと、
各部分に関して実施されたすべての変換に関する情報を保存するステップと、
前記ウェブページコンテンツのあらゆる類似部分に関して同じ変換を実施するステップと、をさらに具備する請求項23に記載の方法。
【請求項25】
コンピュータシステムによって実行時に、請求項11乃至20、請求項23又は請求項24のうちのいずれかの請求項に記載された方法を該システムに実施させるように構成された1つのコンピュータプログラム又は一組のプログラム。
【請求項26】
請求項25に記載された前記コンピュータプログラム又は前記一組のプログラムのうちの少なくとも1つに対応するデータを組み込んだ変調搬送信号。
【請求項27】
請求項25に記載された前記コンピュータプログラム又は前記一組のプログラムのうちの少なくとも1つを格納する、コンピュータによって読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図6】
image rotate


【公表番号】特表2007−509385(P2007−509385A)
【公表日】平成19年4月12日(2007.4.12)
【国際特許分類】
【出願番号】特願2006−530565(P2006−530565)
【出願日】平成16年9月29日(2004.9.29)
【国際出願番号】PCT/GB2004/004151
【国際公開番号】WO2005/033969
【国際公開日】平成17年4月14日(2005.4.14)
【出願人】(390028587)ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー (104)
【氏名又は名称原語表記】BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY
【Fターム(参考)】