(57)【特許請求の範囲】
【請求項１】
文書コンテンツをレンダリングするビューアのプラグインをクライアントシステムにインストールせずに、前記クライアントシステムの前記ビューアにおいて前記文書コンテンツの高忠実度レンダリングを提供する方法を前記クライアントシステムに実行させるコンピュータ実行可能命令を格納した少なくとも１つのコンピュータ可読記憶媒体であって、前記方法は、前記クライアントシステムが、
前記クライアントシステムに前記レンダリングする前記プラグインが既にインストールされているかを検出するステップと、
前記クライアントシステムに前記レンダリングする前記プラグインが既にインストールされているとの検出に応答して、前記コンテンツをレンダリングする前記プラグインと互換性のある第１の高忠実度フォーマットを選択するステップと、
前記クライアントシステムに前記レンダリングする前記プラグインがインストールされていないとの検出に応答して、クライアントシステムに前記プラグインをインストールせずに、前記クライアントシステムにおける前記コンテンツのレンダリングのために第２の高忠実度フォーマットを選択するステップと、
前記クライアントシステムにおいて前記選択されたフォーマットでレンダリングするために、複数のページを有する少なくとも１つの文書のプレビューを要求するステップと、
前記選択されたフォーマットで前記文書のページのサブセットを順次受信するステップと、
順次受信した前記文書のページのサブセットをプレビュー表示するステップと
を含むことを特徴とするコンピュータ可読記憶媒体。
【請求項２】
前記第２の高忠実度フォーマットを選択するステップは、画像フォーマットを選択するステップを含むことを特徴とする請求項１に記載の記憶媒体。
【請求項３】
前記第２の高忠実度フォーマットを選択するステップは、ＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）フォーマットを選択するステップを含むことを特徴とする請求項１に記載の記憶媒体。
【請求項４】
前記方法は、前記クライアントシステムが、前記サブセットのうちの未だ受信していない前記文書の少なくとも１つの追加ページを要求するステップと、前記少なくとも１つの追加ページを受信するステップとをさらに含むことを特徴とする請求項１に記載の記憶媒体。
【請求項５】
前記方法は、前記クライアントシステムが、前記クライアントシステムとサーバとの間の往復のメッセージフローを必要とせずに、前記クライアントシステムにおいて拡大機能をローカルに提供するステップをさらに含むことを特徴とする請求項１に記載の記憶媒体。
【請求項６】
前記拡大機能を提供するステップは、前記ビューアにサポートされているスケーリングを使用して拡大変形を適用するステップを含むことを特徴とする請求項５に記載の記憶媒体。
【請求項７】
前記拡大機能を提供するステップは、前記プラグインにサポートされている機能を使用して拡大変形を適用するステップを含むことを特徴とする請求項５に記載の記憶媒体。
【請求項８】
前記方法は、前記クライアントシステムが、前記コンテンツに関して演算された位置ベースのメタデータを受信するステップをさらに含むことを特徴とする請求項１に記載の記憶媒体。
【請求項９】
前記方法は、前記クライアントシステムが、前記位置ベースのメタデータを参照することによってユーザ命令に応答するステップをさらに含むことを特徴とする請求項８に記載の記憶媒体。
【請求項１０】
文書コンテンツをレンダリングするビューアのプラグインをクライアントシステムにインストールせずに、前記クライアントシステムの前記ビューアで前記文書コンテンツの高忠実度レンダリングを提供する方法をサーバシステムに実行させるコンピュータ実行可能命令を格納した少なくとも１つのコンピュータ可読記憶媒体であって、前記方法は、前記サーバシステムが、
複数のページを有する少なくとも１つの選択された文書の要求であって前記クライアントシステムの前記ビューアによってサポートされている少なくとも２つの高忠実度レンダリングフォーマットのうちの１つを指定する要求を受信するステップと、
前記指定されたレンダリングフォーマットで前記ページのサブセットを順次フォーマットするステップと、
レンダリングのために前記クライアントシステムに、指定されたレンダリングフォーマットでフォーマットされた前記ページのサブセットを順次送信するステップと、
前記ページのサブセットのうちの未だ送信していない少なくとも１つの追加のページを要求する第２の要求を受信するステップと、
前記指定されたレンダリングフォーマットで前記少なくとも１つの追加のページをフォーマットするステップと、
レンダリングのために前記クライアントシステムに前記指定されたレンダリングフォーマットでフォーマットされた前記少なくとも１つの追加ページを送信するステップと、
を含み、
前記レンダリングフォーマットのうちの第１のレンダリングフォーマットは前記ビューアの前記プラグインと互換性があり、前記レンダリングフォーマットのうちの第２のレンダリングフォーマットは前記クライアントシステムに前記ビューアの前記プラグインをインストールせずに前記クライアントシステムの前記ビューアで前記コンテンツをレンダリングするためのものであることを特徴とするコンピュータ可読記憶媒体。
【請求項１１】
前記方法は、前記サーバシステムが、前記文書内に含まれているコンテンツに関する位置ベースのメタデータを生成するステップをさらに含むことを特徴とする請求項１０に記載の記憶媒体。
【請求項１２】
前記位置ベースのメタデータを生成するステップは、前記文書内の段落を順序づけるステップを含むことを特徴とする請求項１１に記載の記憶媒体。
【請求項１３】
前記位置ベースのメタデータを生成するステップは、前記文書内の表要素を順序づけるステップを含むことを特徴とする請求項１１に記載の記憶媒体。
【請求項１４】
前記位置ベースのメタデータを生成するステップは、前記文書内の少なくとも１つのテキストランの外接矩形を調べるステップを含むことを特徴とする請求項１１に記載の記憶媒体。
【請求項１５】
前記位置ベースのメタデータを生成するステップは、前記文書内の少なくとも１つのハイパーリンクの外接矩形を調べるステップを含むことを特徴とする請求項１１に記載の記憶媒体。
【請求項１６】
前記方法は、前記サーバシステムが、前記クライアントシステムに前記位置ベースのメタデータを送信するステップをさらに含むことを特徴とする請求項１１に記載の記憶媒体。
【請求項１７】
前記方法は、前記サーバシステムが、前記文書内に存在する少なくとも１つのテキストランにおける配置を実行するステップをさらに含むことを特徴とする請求項１０に記載の記憶媒体。
【請求項１８】
文書コンテンツをレンダリングするビューアのプラグインをクライアントシステムにインストールせずに、前記ビューアで前記文書コンテンツの高忠実度レンダリングを提供する方法をサーバシステムに実行させるコンピュータ実行可能命令を格納した少なくとも１つのコンピュータ可読記憶媒体であって、前記方法は、前記サーバシステムが、
前記サーバシステムにアップロードされた複数の文書内の少なくとも１つの語を検索する要求であって前記クライアントシステムの前記ビューアによってサポートされている少なくとも２つの高忠実度レンダリングフォーマットのうちの１つを指定する要求を前記クライアントシステムから受信するステップと、
前記文書内の前記語を検索するステップと、
前記文書の少なくとも１つ内における前記語の少なくとも１つの存在を発見することに応答して、
前記指定されたレンダリングフォーマットで前記文書内の当該検索語の存在を少なくとも示す文書プレビューを生成するステップと、
前記文書内のどこに前記検索語が存在するかを示す検索結果を生成するステップと、
前記文書プレビュー及び前記検索結果を前記クライアントシステムに送信するステップと
を含むステップと
を含み、
前記レンダリングフォーマットのうちの第１のレンダリングフォーマットは前記ビューアの前記プラグインと互換性があり、前記レンダリングフォーマットのうちの第２のレンダリングフォーマットは前記クライアントシステムに前記ビューアの前記プラグインをインストールせずに前記クライアントシステムの前記ビューアで前記コンテンツをレンダリングするためのものであることを特徴とするコンピュータ可読記憶媒体。
【請求項１９】
前記方法は、前記サーバシステムが、前記少なくとも１つの文書に関して演算された位置ベースのメタデータを前記クライアントシステムに送信するステップをさらに含むことを特徴とする請求項１８に記載の記憶媒体。
【請求項２０】
前記方法は、前記サーバシステムが、前記文書プレビューに対する少なくとも１つのユーザ命令に応答して前記メタデータを参照するステップをさらに含むことを特徴とする請求項１９に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビューアクライアントにおける文書の高忠実度レンダリングに関する。
【背景技術】
【０００２】
様々な異なる環境において働いているユーザは、異なるアプリケーションに関連付けられているだろうあらゆる文書にアクセスしたいと願うだろう。従来の技術においては、ユーザが所定の文書を開きたいと願う場合、ユーザはクライアントシステムにその文書のためのアプリケーションをインストールして、その後に適切なアプリケーション内で当該所定の文書を開いていた。さらに最近の技術においては、ビューアクライアント（例えばブラウザ）がクライアントシステムにインストールされており、このクライアントはオンラインで文書を見ることをユーザに可能とするだろう。しかし、これらのビューアクライアントは、オンライン文書の比較的低い忠実度の表示を提供し得、このビューアクライアントを用いて仕事をする際に、総合的ユーザ経験は、全機能を有するアプリケーションを使用して仕事をする場合と比較して劇的に異なるだろう。例えば、完全なアプリケーションによってサポートされているいくつかのフォーマットは、ビューアクライアントでは維持されず、ビューアクライアントにおいてレンダリングされたコンテンツは、完全なアプリケーションによってレンダリングされたコンテンツと異なって表示されるだろう。
【発明の概要】
【０００３】
ツール及び技術はビューアクライアントにおける文書の高忠実度レンダリングに関して説明される。これらのツール及び技術によって提供される方法は、クライアントシステムが高忠実度のコンテンツをレンダリングするためにインストールされているプラグインを有しているかを検出し得る。所定のクライアントシステムにレンダリングプラグインがインストールされていることの検出に応答して、これらの方法は、クライアントシステムにおけるコンテンツのレンダリングのためのプラグインと互換性のある第１の高忠実度フォーマットを選択し得る。一方、所定のクライアントシステムにレンダリングプラグインがインストールされていないことの検出に応答して、これらの方法は、クライアントシステムにプラグインをインストールせずに、クライアントシステムにおけるコンテンツのレンダリングのための第２の高忠実度フォーマットを選択し得る。これらの方法は、クライアントシステムにおいて選択されたフォーマットでレンダリングするために、文書のページを要求し、当該選択されたフォーマットで文書のページの少なくとも１つのサブセットを要求し得る。
【０００４】
上述の本発明は、方法、コンピュータ制御装置、コンピュータ処理、コンピュータシステム、またはコンピュータ可読媒体等の製品として実施される。これらおよび様々な特徴は、以下の発明を実施するための形態及び添付の図面から明らかになるだろう。
【０００５】
この発明の概要は、発明を実施するための形態において以下でさらに説明される概念の１つを単純な形式で紹介するために提供されている。この発明の概要は、本発明の重要な特徴または本質的な特徴を特定することは意図されておらず、この発明の概要が本発明の範囲を限定するために使用されることも意図されていない。さらに、本発明は、本開示の全ての部分に記載されているいくつかまたは全ての欠点を解決する実施例に限定されない。
【図面の簡単な説明】
【０００６】
【図１】ビューアクライアントにおける文書の高忠実度レンダリングを可能とするシステムまたは動作環境を示す結合ブロック図及びフロー図である。
【図２】クライアントシステムまたはシステムがこのようなデバイスにおける高忠実度表示のために特定の文書を要求するプロセスを示すフロー図である。
【図３】図２に示されたプロセスに続く処理を示すフロー図である。
【図４】図２及び図３に示されたプロセスに続く処理を示すフロー図である。
【図５】クライアント側ビューアに対してページをフォーマットするプロセスを示すフロー図である。
【図６】クライアント側ビューアに提供されるコンテンツのユーザ選択に応答するプロセスを示すフロー図である。
【図７】追加のユーザ命令に応答するプロセスを示すフロー図である。
【図８】クライアント側ビューアにより、クライアントシステムが、クライアントシステムから離れて配置されているコンテンツ内を検索することを可能とするプロセスを示すフロー図である。
【発明を実施するための形態】
【０００７】
以下の詳細な説明は、ビューアクライアントにおける文書の高忠実度のレンダリングのための技術に関している。本明細書に記載されている本発明は、コンピュータシステムにおいてオペレーティングシステム及びアプリケーションプログラムの実行とともに実行するプログラムモジュールの一般的な状況において示されているが、当業者は、他のタイプのプログラムモジュールとともに実行され得る他の実施例を理解するだろう。一般的に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、及び他のタイプの構造であって、特定のタスクを実行するかまたは特定の抽象データ型を実装するものを含む。さらに、当業者には、本明細書に記載されている本発明が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベース家電、プログラム可能家電、マイクロコンピュータ、メインフレームコンピュータ等を含む他のコンピュータシステム構成を用いて実現されてもよいことが理解されるだろう。
【０００８】
以下の詳細な説明において、参照符号は、本明細書の一部を形成する添付図面に対して付され、これらは、特定の実施形態または実施例を説明するために示される。同様の参照符号により同様の要素を表す図面を参照して、ビューアクライアントにおけるドキュメントの高忠実度のレンダリングのためのツール及び技術特徴が説明されるだろう。
【０００９】
図１は、全体として１００で示される、ビューアクライアントにおける文書の高忠実度レンダリングを可能とするシステムまたは動作環境を示している。これらのシステム１００は、適切な命令１０６を発行して、１または複数のサーバシステム１０８に文書をアップロードすることを１または複数のユーザ１０４に可能とさせる１または複数のクライアントシステム１０２を含み得る。図１は、明確さ及び例示のためだけに、１人のユーザ、１つのクライアントシステム及び１つのサーバシステムを含む例を示す。しかし、本明細書の詳細な説明の実施例は、任意の数のユーザ、クライアントシステム及びサーバシステムを含む。
【００１０】
クライアントシステム１０２及びそのサーバシステム１０８は、１または複数の中間通信ネットワーク１１０を介して通信し得る。これらのネットワークは、地球規模、地域的、局所的、または個人的な性質を有していてもよく、様々な実装例において適切な様々なプロトコルを用い得る。
【００１１】
図１で用いられているクライアントシステム及びサーバシステムを示すための図形要素は、単に説明を容易にするために選択されており、本明細書内の説明の可能な実施例を限定するものではない。さらに具体的には、図１は、サーバシステム１０８が集中型コンピュータシステムであり、２以上のクライアントシステムによって共有され得る例を示している。クライアントシステム１０２は、相対的に固定されているデスクトップシステムであり得、携帯コンピュータシステム（ラップトップ、ノートブック、または他のタイプの携帯コンピュータシステム）でもあり得る。さらに、クライアントシステム１０２は、ワイヤレス通信機能を有しかつ本明細書に記載されている様々なツール及び技術を実行するためにインストールされているソフトウェアコンポーネントを有するＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）であってもよい。しかし、本明細書内の説明は、クライアントシステム及びサーバシステムの他の形態も意図しており、図１に示されているクライアントシステム及びサーバシステムの形態を含むがこれに限定されない。
【００１２】
クライアントシステム１０２を詳細にみると、このクライアントシステムは、１または複数のプロセッサ１１２を含み、これらは特定のタイプまたはアーキテクチャを有し得、特定の実施例に対して適切に選択される。プロセッサ１１２は、プロセッサ１１２との互換性に関して選択される１または複数のバスシステム１１４に結合され得る。
【００１３】
クライアントシステム１０２は、バスシステム１１４に結合されているコンピュータ可読記憶媒体１１６の１または複数のインスタンスも含み得る。このバスシステムは、プロセッサ１１２がコード及び／またはデータをコンピュータ可読記憶媒体１１６へ書き込む／から読み出すことを可能にし得る。媒体１１６は、任意の適切な技術を用いて実装される記憶要素を表していてもよく、当該記憶要素には、限定するわけではないが、半導体、磁気材料、光学媒体等を含む。媒体１１６は、ＲＡＭ、ＲＯＭ、フラッシュ、または他のタイプとして分類されるメモリコンポーネントを含み得、ハードディスクドライブを示していてもよい。
【００１４】
記憶媒体１１６は、プロセッサ１１２に読み込まれて実行された際、クライアントシステム１０２に、本説明においてクライアントシステム１０２に配置されているビューアクライアントにおける文書の高忠実度レンダリングのための様々な技術を実行させる命令の１または複数のモジュールを含み得る。この発明説明全体で詳述されているように、クライアントシステム１０２及びサーバシステム１０８は、協同して本明細書に記載されている様々なサービスを提供し得る。
【００１５】
コンピュータ可読媒体１１６は、クライアント側ビューア１１８を提供する１または複数のモジュールを含み得る。クライアント側ビューア１１８は、本明細書に記載されているような機能を用いて強化されたブラウザソフトウェアを含んで、クライアントシステムにおいて文書コンテンツをレンダリングする際に複数の高忠実度フォーマットをサポートする。いくつかの例において、クライアントシステムは、所定のレンダリングフォーマットを使用してクライアントにおいて高忠実度でコンテンツをレンダリングすることをビューアに可能とさせるプラグインソフトウェアを含み得る。このようなプラグインソフトウェアの例には、アドビシステムから入手可能なＦＬＡＳＨ（登録商標）マルチメディア技術、本件出願人から入手可能なＳＩＬＶＥＲＬＩＧＨＴ（登録商標）ブラウザプラグイン、または同様の機能を提供する他のブラウザプラグインが含まれ得る。
【００１６】
他の例において、クライアントシステムは、このようなプラグインを含まなくともよい。それにもかかわらず、この発明を実施するための形態において提供されているツール及び技術は、クライアントシステムに当該プラグインをインストールせずに、クライアントシステムにおいて高忠実度で文書コンテンツをレンダリング可能である。この後者の状況において、クライアントシステムは、ビットマップ画像フォーマット（例えば、ポータブルネットワークグラフィクスすなわちＰＮＧ、または利用可能なブラウザクライアントによってサポート可能な他の適切な画像フォーマット）を使用してもよい。
【００１７】
最初に、クライアント側ビューアは、１または複数の文書をネットワーク１１０を介してサーバシステム１０８にアップロードするための命令１０６を受信し得る。図１は、クライアントシステムからサーバシステムへ転送される際のアップロード文書を全体として１２０で示す。
【００１８】
サーバシステム１０８をさらに詳しくみると、サーバシステムは、特定のタイプまたはアーキテクチャを有し得、特定の実施例に対して適切に選択される１または複数のプロセッサ１２２を含み得る。プロセッサ１２２は、プロセッサ１１２と同一のタイプまたはアーキテクチャを有していても有していなくともよい。プロセッサ１２２は、プロセッサ１２２との互換性に関して選択される１または複数のバスシステム１２４と結合され得、バスシステム１１４と同一のタイプまたはアーキテクチャを有していても有していなくともよい。
【００１９】
サーバシステム１０８は、バスシステム１２４と結合されているコンピュータ可読記憶媒体１２６の１または複数のインスタンスを含んでいてもよい。このバスシステムは、プロセッサ１２２が、コード及び／またはデータをコンピュータ可読記憶媒体１２６へ書き込む／から読み出すことを可能とし得る。この媒体１２６は、限定するわけではないが、半導体、磁気材料、光学媒体等を含み、任意の適切な技術を用いて実装される記憶媒体を表し得る。媒体１２６は、ＲＡＭ、ＲＯＭ、フラッシュ、または他のタイプとして分類されるメモリコンポーネントを含み得、ハードディスクドライブを示していてもよい。
【００２０】
記憶媒体１２６は、プロセッサ１２２に読み込まれて実行された際に、本説明においてサーバシステム１０８に配置されているビューアクライアントにおける文書の高忠実度レンダリングのための様々な技術をサーバシステム１０８に実行させる命令の１または複数のモジュールを含み得る。本説明全体で詳述されているように、クライアントシステム１０２及びサーバシステム１０８は、協同して本明細書に記載されている様々なサービスを提供し得る。
【００２１】
コンピュータ可読媒体１２６は、全体として１２８で示されている文書プレビューサービス及び文書検索サービスを提供する１または複数のサーバ側モジュールを含み得る。最初に、これらのサービス１２８は、後にユーザ１０４または他のユーザ（図示せず）に参照されるためにアップロード文書１２０を文書ストア１３０に保存し得る。図１は、文書ストアにアップロードされる際の文書を１３２で示す。文書ストア１３０は、様々な異なるユーザ１０４及びクライアントシステム１０２のために複数の文書１３４を保存し得る。
【００２２】
文書１３４は、文書処理、表演算解析、データベース支援、メールもしくは通信、またはスケジューリング等を実行するアプリケーションであるかどうかに関係なく、様々な異なる各々のアプリケーションによって読み込み可能な文書を示す。いくつかの場合において、これらのアプリケーションのいくつかまたは全ては、グループにされてまとめて販売され得る。例えば、本件出願人は、ＯＦＦＩＣＥ（商標）でこのようなアプリケーションの一揃いを提供するが、他のソフトウェアメーカーは、本説明の全てまたは一部を実施し得る他の一揃いのアプリケーションを提供し得る。
【００２３】
本説明全体を通してさらに詳しく説明されているように、本明細書において提供されているツール及び技術は、文書１３４を開いて編集するために通常使用されるアプリケーションを起動することなく、クライアントシステムが文書１３４の少なくとも一部を高忠実度でレンダリングすることを可能とする。用語「高忠実度」は、本明細書において用語「完全な忠実度」と区別するために使用されている。後者の用語は、ビューア１１８において表示された場合と比べて完全な、適切なアプリケーションで開かれた際に表示される文書の間の１００％の忠実度を意味する。
【００２４】
説明及び図の簡潔さのみのために、図１は、１つのサーバがアップロードされた文書１２０を受信し、クライアントシステムにおいて当該文書をレンダリングするのに適切なように当該文書を変換する例を提供している。しかし、本説明の実施例は、各々割り当てられた機能を実行する多数の異なるサーバを含み得る。例えば、１または複数のサーバの第１のグループが、様々なクライアントシステムのために、アップロードされた文書を受信して保存し得る。１または複数のサーバの他のグループは、クライアントシステムにおいてこれらの文書をレンダリングするのに適切な任意の変換を実行し得る。換言すれば、アップロードされた文書を受信するサーバは、クライアントシステムにおいて当該文書のレンダリングをサポートするサーバと同一でなくともよい。
【００２５】
図１においてシステムまたは動作環境１００を説明してきたが、クライアントシステムが当該クライアントシステムにおける高忠実度表示のために特定の文書を要求し得るプロセスフローの説明に移る。本説明は、図２を用いて行われる。
【００２６】
図２は、全体として２００で示されているプロセスフローを図示しており、当該プロセスフローによってクライアントシステムが当該デバイスにおける高忠実度表示のために特定の文書を要求し得る。参照及び説明の容易化のために、可能な実装例を制限するわけではないが、図２は前図からのいくつかの要素を持ち越し、それらを同一の参照符号で表している。例えば、プロセスフロー２００は、クライアントビューア１１８並びにサーバ側文書プレビュー及び検索サービス１２８と関連付けて記載されている。しかし、本説明の実施例は、本発明の範囲及び精神を逸脱することなく、他のコンポーネントにおいてプロセスフロー２００を実行してもよい。
【００２７】
プロセスフロー２００をさらに詳しくみると、ブロック２０２が全体として検索及び表示のためにサーバシステムにおいて利用可能な文書のリストの要求を示している。例えば、クライアントシステム１０２は、ユーザ１０４からの命令に応答してブロック２０２を実行する。図２は、文書リスト要求を２０４で示している。
【００２８】
サーバにおいて、ブロック２０６が全体として文書リスト要求の受信を示している。次に、検索サービス１２８が文書ストア１３０を参照してどの文書１３４がユーザ１０４へのアクセスに使用可能かを判定する。
【００２９】
ブロック２０８は、全体としてクライアント側ビューア１１８における表示のためにクライアントシステムに利用可能な文書の表示の送信を示している。図２は、これらの利用可能文書の表示を全体として２１０で示している。
【００３０】
クライアントシステムにおいて、ブロック２１２は、要求したユーザに利用可能であってサーバシステム上に保存されている文書の表示を受信することを全体として示している。次に、クライアント側ビューア１１８は、全体としてブロック２１４で表されているように、利用可能文書のリストをユーザに示し得る。ユーザは、全体としてブロック２１６に示されているように利用可能文書のリストを見てクライアントシステムにおける表示のために所与の文書を選択してもよい。
【００３１】
説明の明確さのため、可能な実施例を限定するわけではないが、ページ外参照符号２１８で示されているようにプロセスフロー２００は図３に続いている。説明は図３に続く。
【００３２】
図３は、全体として３００で示されているプロセスフローを示していて、このフローは、ページ外参照符号３０２に示されているように、図２に示されているプロセスフロー２００を引き継いでいる。クライアント側ビューア１１８並びに文書プレビューサービス及び文書検索サービス１２８は、図３内に引き継がれている。
【００３３】
判定ブロック３０４は、所定のクライアントシステムに所定の高忠実度レンダリングフォーマットに関するプラグインコンポーネントがインストールされているかどうか評価することを全体として示している。上述したように、これらのプラグインの例には、ＦＬＡＳＨ、ＳＩＬＶＥＲＬＩＧＨＴで提供されているソフトウェアコンポーネントまたは同様の機能を有する他のコンポーネントを含み得る。
【００３４】
ブロック３０４から、所定のクライアントシステムに当該プラグインコンポーネントがインストールされている場合、プロセスフロー３００は、「はい」の分岐を選んでブロック３０８に進み得る。ブロック３０８は、クライアントビューア１１８によって表示されるクライアントシステム上のレンダリングコンテンツのためのプラグインによってサポートされているフォーマットの選択を示している。
【００３５】
判定ブロック３０４を見ると、所定のクライアントシステムにプラグインコンポーネントがインストールされていない場合、プロセスフロー４００は「いいえ」の分岐を選んでブロック３１２へ進み得る。ブロック３１２は、クライアントシステムにおける高忠実度の文書コンテンツレンダリングのための画像フォーマットを選択することを全体として示している。上述の説明は、ＰＮＧ画像フォーマットを使用する例を示しているが、他の画像フォーマットも他の実施例において適切であり得る。例えば、所定のページのコンテンツの大部分が画像である場合、その所定のページはＪＰＧ画像としてレンダリングされてさらに高い画像品質及びさらに高い圧縮率をもたらすだろう。
【００３６】
ブロック３１４は、ブロック２１６において選択された文書のプレビューを要求することを全体として示している。ブロック３１４において、文書プレビューを判定ブロック３０４によって決定されたフォーマットで表示することを要求してもよい。図３は、クライアントシステムによってサポートされているフォーマットの指示に従って選択された文書に対する要求を全体として３１６で示す。
【００３７】
サーバシステムにおいて、ブロック３１８は、選択された文書に対する要求３１６を受信することを全体として示している。ブロック３１８は、クライアントシステムによってサポートされているフォーマットの指示の受信することを含んでいてもよい。
【００３８】
ブロック３２０は、要求３１６への応答における選択された文書を取得することを全体として示している。ブロック３２０は、要求された文書を文書ストア（例えば図１の１３０）からの取得することを含んでいてもよい。
【００３９】
ブロック３２２は、選択された文書内のページをクライアントビューアに適切とするようにフォーマットすることを全体として示している。例えば、ブロック３２２は、ページを画像表示またはＸＡＭＬ表示に変換すること、またはレンダリングすることを含んでもよい。例えば、この変換プロセスは、クライアントアプリケーションと共有されている．ｄｌｌファイルを使用して、文書のページを書き込み及び／または読み出し、文書のコンテンツをページ、スライドまたは他の便利な表示内にレイアウトすることを含んでもよい。この変換は、拡張メタファイルフォーマット（例えばＥＭＦ、以下でさらに詳細に説明される）に対するエミュレートされた（ｅｍｕｌａｔｅｄ）印刷プロセスを実行すること、及びページにＥＭＦを使用して当該所定のページに関する画像表示またはＸＡＭＬ表示のいずれかを得ることを含んでもよい。以下でさらに詳細に説明されるように、この変換プロセスは、本説明において提供される選択／発見動作において用いられる位置ベースのメタデータを生成してもよい。
【００４０】
ブロック３２２が要求された文書内のページのいくつかのサブセットをフォーマットすると、ブロック３２４は、要求するクライアントシステムにフォーマットされたページのサブセットを送信する。図３は、フォーマットされたページのサブセットを全体として３２６で示す。
【００４１】
クライアントシステムにページのサブセットを送信するブロック３２４と並行して、ブロック３２２は、矢印３２８によって全体として示されている様に、文書の追加ページをフォーマットし続けてもよい。この態様において、以下でさらに詳細に説明されるように、プレビュー及び検索サービス１２８は、サーバが残りの文書を適切なフォーマットに変換し続けている一方で、クライアント側ビューア１１８がページの先行のセットの表示を開始することを許容してもよい。従って、クライアントシステムは、文書内のコンテンツの少なくともいくつかを見るのに、サーバが全ての文書をフォーマットするまでは待たない。換言すれば、本明細書内の要因により、クライアントシステム及びサーバが文書コンテンツの増分表示（ｉｎｃｒｅｍｅｎｔａｌ  ｖｉｅｗ）を提供することを可能とする。
【００４２】
クライアントビューア１１８を見ると、ブロック３３０が、フォーマットされたページのサブセット３２６を受信することを全体として示している。続いて、ブロック３３２がビューア１１８を介したこのサブセットの表示を示している。この態様にて、ブロック３３２は、ユーザ（例えば１０４）が、サーバが所定の文書全体をフォーマットまたは変換するのを待つことなく、例えば所定の文書内の最初に数ページを、選択された高忠実度フォーマットでプレビューすることを可能とする。
【００４３】
例示及び説明の明確さのために、可能な実施例を限定するわけではないが、例示のプロセスフロー３００に説明は、ページ外参照符号３３４によって示されている様に、図４に続く。これらのプロセスフローの説明は図４と共に進められる。
【００４４】
図４は、図２及び図３から引き継いでいるプロセスフローの続きの状況を全体として４００で示して図示している。図４は、ページ外参照符号４０２を含んで、プロセスフロー４００と図３のプロセスフロー３００とを関連付けている。参照及び説明の簡易化のため、可能な実施例を限定するわけではないが、図４は、前の図面からいくつかの要素を引き継いでおり、それらを同一の参照符号で示している。例えば、図４は、クライアント側ビューア並びにサーバ側文書プレビュー及び検索サービス１２８を引き継いでいる。
【００４５】
プロセスフロー４００をさらに詳細にみると、ブロック４０４が、ブロック３３２においてすでに表示されたページに関するユーザ命令に応答することを全体として示している。これらの命令は、例えば、ナビゲーションまたはスクロール命令を含んでいてもよく、これらの命令によってユーザは所定の文書に関して送信されたページの最初のサブセットを見ることができる。
【００４６】
判定ブロック４０６は、ユーによって発せられた命令がクライアント側ビューアに現時点で利用可能でないページを要求するかどうかの判定を示す。換言すれば、ブロック４０６は、ユーザが、図３の３２６において示されている送信されかつフォーマットされたページの最初のサブセットに含まれていない文書コンテンツのページを要求しているかを判定してもよい。判定ブロック４０６が、ユーザの要求がクライアント側ビューアに現時点で利用可能であるページで満足していると判定した場合、プロセスフロー４００は、「いいえ」の分岐４０８を選択して上述のブロック４０４に戻る。
【００４７】
判定ブロック４０６を再度みると、ユーザによって発せられた命令がページの最初のサブセット３２６に含まれていないページを要求する場合、プロセスフロー４００は、「はい」の分岐４１０を選択してブロック４１２に進む。ブロック４１２は、全体として４１４で示されている要求を用いた、サーバにある文書の追加ページの要求を示している。要求４１４は、要求しているクライアントのレンダリングフォーマットを示してもよく、文書内の残りの未送信のページを送信するかどうか、または残りの未送信のページのいくつかのサブセットを送信するかどうかを示してもよい。
【００４８】
サーバにおいて、ブロック４１６は、所定の文書の追加ページに関する要求４１４の受信することを全体として示している。図３の３２８に示されているように、クライアントビューアが、フォーマットされて送信された先行するページのサブセット３２６を表示している一方で、サーバシステムは、結果として起こるクライアントビューアへの送信及び表示のための追加ページのフォーマットを同時に行う。従って、追加ページに対する要求４１４がクライアントビューアから到達する場合、サーバシステムは、４１８で全体として示されているようにクライアントビューアへ追加のページを送信することができる。ブロック４１８は、文書内の残りの未送信ページの全てを送信すること含んでいてもよいし、これらの残りのページのうちの別のサブセットを送信することを含んでいてもよい。図４は、これらの追加ページを全体として４２０で示している。
【００４９】
クライアントシステムを再度みると、ブロック４２２が、要求４１４に応答した追加ページ４２０を受信することを全体として示している。次に、ブロック４２４がクライアント側ビューア１１８における追加ページを表示することを示している。ブロック４２４とブロック４０４を接続している矢印によって示されているように、プロセスフロー４００は、ブロック４０４に戻って待機してブロック４２４において表示された追加のページに関するユーザ命令に応答してもよい。
【００５０】
図２、図３及び図４に示されるプロセスフローを説明してきたが、ここで説明は、クライアントビューアのためのページフォーマットに関する追加の詳細説明に移る。本説明は、図５と共に行われる。
【００５１】
図５は全体として５００で示されているプロセスフローを示しており、当該プロセスフローはクライアントビューアのためのページフォーマットに関する追加の詳細説明を提供する。参照及び説明の簡易化のために、可能な実施例を限定するわけではないが、図５は、前の図から要素を引き継いで、それらを同一の参照符号で示している。例えば、図５は、サーバ側文書プレビュー及び検索サービス１２８を引き継いでいる。特に、プロセスフロー５００は、図３に示されているプロセスブロック３２２を詳しく説明している。
【００５２】
プロセスフロー５００をさらに詳細にみると、ブロック５０２が所定の文書内の様々なページのコンテンツに関する位置ベースのメタデータを生成することを示している。ブロック５０２は、コンテンツを高い忠実度でレンダリングするプラグインコンポーネントがクライアントシステムにインストールされているかにかかわらず、一定の態様でメタデータを生成することを含んでいてもよい。以下でさらに詳しく説明されるように、クライアントビューアは、このメタデータを使用して、限定するわけではないが、コンテンツの選択、コンテンツのコピー、所定の文書内の特定のコンテンツの検索、文書内に存在するハイパーリングの保存等を含む機能を実装する。
【００５３】
いくつかの実施例において、位置メタデータは、ＸＭＬフォーマットで生成され得る。さらに、この位置メタデータは、クライアントビューアのための文書のページのフォーマットまたは変換における中間ステップとしてサーバシステムによって生成される拡張メタファイル（ＥＭＦ）表示から得られてもよい。ＥＭＦ表示が例として挙げられているが、この発明を実施するための形態の実施例は、ＥＭＦと同様の特徴または機能をもたらす他の同等な表示も用い得る。例えば、これらの表示に関連付けられているコメント記録は、文書構造を指定し得、テキストがどこから始まってどこで終了するかを示す意味情報（ｓｅｍａｎｔｉｃ  ｉｎｆｏｒｍａｔｉｏｎ）をもたらす。この意味情報は、文書のページ内に存在する内部ハイパーリンク及び外部ハイパーリングも識別し得る。ＥＭＦ表示は、文書の内のどこに図または画像が存在するかも示し得る。
【００５４】
上述の構造情報及び意味情報を図または画像情報と組み合わせることによって、ブロック５０２は、所定の文書に関連する異なるタイプの情報を構築することができ、この情報を文書内のページ対して生成されたメタデータ内に含めることができる。例えば、ブロック５０４は、所定の文書内の段落を順序づけることを示している。さらに具体的に言えば、ブロック５０４は、段落が文書内で他の段落、表、図、画像等に対して現れる順序を示す番号を文書内の様々な段落に対して指定することを含んでもよい。
【００５５】
ブロック５０６は、文書内に存在する表内の要素を順序づけることを示す。さらに具体的に言えば、ブロック５０８は、表が文書の中において他の段落、表、図、画像等に対して現れる順序を示す番号を所定の文書内の様々な表に対して指定することを示す。さらに、ブロック５１０は、所定の表内の様々な表の行を順序づけることを示し、ブロック５１２は、所定の表内の所定の行内の様々なセルを順序づけることを示している。
【００５６】
ブロック５１４は、文書内の行内に存在する所定のテキストラン（ｔｅｘｔ  ｒｕｎ）の外接矩形を演算することを全体として示している。例えば、ブロック５１４は、外接矩形の長さ及び高さと共に当該矩形の左上角の座標を演算することを含んでもよい。いくつかの実施例において、ブロック５１４は、テキストラン内のグリフを表すユニコード文字列を定義することを含んでもよい。外接矩形は、ピクセルで表現されてもよく、テキストランが存在するページの左上に対して定義されてもよい。いくつかの実施例がこれらの外接矩形を演算し得るが、他の実施例は、テキストラン内の特定のグリフまたは文字の位置を演算し、クライアント側ビューアにこれらの位置を伝えてもよい。これらの後者の実施例は、個々の文字のレベルにおいて選択を可能とし得る。
【００５７】
用語「テキストラン」は、共通の書式、共通のフォントまたは他の共通の特徴を共有する文字の並びをいう。テキストランは、上述の様々な特徴における変化を呈する文字によって破壊され得る。さらに、テキストランはテキストの所定の行内に存在し得るが、（いくつかの実施例において）段落内の２以上の行にわたることはない。
【００５８】
ブロック５１６は、文書内のページ内に存在するハイパーリンクのソースの各々の外接矩形を演算することを示す。ハイパーリンクが文書の外部の対象を参照する場合、ブロック５１６はメタデータ内に対象のＵＲＬを含み得る。ハイパーリンクが所定の文書内の内部対象を参照する場合、ブロック５１６はメタデータ内に対象ページ番号及び対象の座標を含み得る。
【００５９】
ブロック５１８は、テキストランにおける配置を行い段落内の行に関する情報を生成することを示している。さらに具体的には、ブロック５１８は、段落内に存在するテキストランの外接矩形を解析してどのテキストランが同一の行内にあるかを判定することを含んでいてもよい。ブロック５１８は、テキストランを行にまとめることを含んでいてもよい。なぜならば、通常のユーザは、文字のテキストランよりもテキストの行をさらに容易に理解するからである。
【００６０】
文書プレビュー及び検索サービス１２８は、クライアント側ビューア（例えば１１８）による使用のために位置ベースのメタデータをクライアントシステムに提供する。例えば、このメタデータは、図３及び図４に示されている様に、ページ３２６及び／または４２０の一部として各々含まれ得る。以下のＸＭＬは位置メタデータの例を提供するが、当該例はここにおける説明のためだけに提供され、本説明の可能な実施例を限定するものではない。
【００６１】
【表１】
0005385373.tif 000002
【００６２】
クライアントビューアに対するページのフォーマットに関する追加の詳細説明を提供するプロセスフロー５００を説明してきたが、ここで説明は、クライアント側ビューアが応答する異なるタイプのユーザ命令のさらに詳細な説明に移る。本説明は、図６と共に行われる。
【００６３】
図６は、全体として６００で示されるプロセスフローを示しており、このプロセスフローは、クライアントビューアに提供されるコンテンツのユーザ選択への応答に関する追加の詳細説明を提供する。参照及び説明の容易化のために、可能な実施例を限定するわけではないが、図６は前の図の要素を引き継ぎ、それらを同一の参照符号で示す。例えば、図６は、クライアント側ビューア１１８を引き継いでいる。さらに具体的には、プロセスフロー６００は、図４に示されているプロセスブロック４０４を詳しく説明している。
【００６４】
プロセスフロー６００をさらに詳しくみると、図５において説明されておりかつクライアント側ビューア１１８に提供される位置ベースのメタデータにより、ビューアが様々な異なるユーザ命令に応答することを可能とし得ることが、全体としてブロック４０４に示されている。例えば、ユーザはビューア内に表示されている特定のコンテンツを選択してもよく、このことは全体として６０２に示されている。このコンテンツは、ビューア内に示されるテキストの表示を含んでもよく、ビューア内に示される表、図、形状、画像その他のタイプのコンテンツの表示を含んでいてもよい。この選択動作６０２は、レンダリングされたコンテンツの所定のページ内のある位置においてユーザがクリック、またはポインタデバイスを動作させてコンテンツのある部分にわたってポイントをドラッグすることでこのようなコンテンツのブロックを選択することを含んでもよい。選択動作６０２は、ページ内のコンテンツ（所定の単語、段落、表、画像等）上におけるユーザの複数回のクリックを含んでいてもよい。
【００６５】
選択動作への応答において、ブロック６０４は、ページ内の選択動作が起きた位置を含むページ内のコンテンツを認識することを示す。この選択されたコンテンツの例には、上述のテキストラン、行、段落、形状、表、画像等を含み得る。例えば、所定のページ内のある位置おいてユーザがクリックした指示が受信されると、ブロック６０４は、このページに関する位置ベースのメタデータを検索して、ページ内の行及び／または段落内でこのクリックが行われたかどうかを判定し、クリックが行われていた場合、ユーザによってクリックされた行及び／または段落を識別することを含んでいてもよい。図５の説明を思い起こすと、ブロック５１４は、様々なテキストランの外接矩形を演算することを示しているので、ブロック６０４は、所定のクリックの座標を用いてこれらの外接矩形の表示を検索して、これらの座標がいずれかの外接矩形内に存在するどうかを判定することを含んでいてもよい。
【００６６】
ブロック６０６は、例えばクリック−ドラッグ動作を使用してユーザによって選択されたコンテンツの行の座標を演算または認識することを全体として示している。例えば、所定のクリック動作が、位置ベースのメタデータ内に示されるテキストの行の外接矩形内に存在すると仮定した場合、ブロック６０６は、この外接矩形を定義する座標を認識することを含んでもよい。
【００６７】
ブロック６０８は、ブロック６０６において演算された座標を有する選択矩形の視覚表示を形成することを全体として示している。例えば、ブロック６０８は、適切な透明性のある背景（青色の背景）を用いて、選択されたコンテンツを強調することを含んでもよい。さらに具体的には、ブロック６０８は、選択矩形範囲を有するＨＴＭＬ「ｄｉｖ」を生成して、選択されたコンテンツに背景を重ね合わせることを含んでいてもよい。この強調は、当該コンテンツが現時点で選択されていることをユーザに示すことができる。
【００６８】
クライアントシステムに高忠実度コンテンツをレンダリングするためのプラグイン（例えば、ＳＩＬＶＥＲＬＩＧＨＴ）がインストールされている実装例において、ＨＴＭＬ「ｄｉｖ」は、高忠実度レンダリングに関連付けられているコントロールに重ね合わせられてもよい。従って、ブロック６０４−６０８は、所定のクライアントシステムにプラグインがインストールされていてもされていなくとも、同様に動作し得る。
【００６９】
ブロック６１０は、ブロック６０８において生成された選択矩形内のコンテンツに向けられるべきユーザ命令を待つことを全体として示している。限定しない例として、ユーザは、全体として６１２で示されているようにコピー命令を発行してもよい。この例示のコピー命令に応答して、プロセスフロー６００は、ブロック６１４に進み得る。ブロック６１４は、選択されたコンテンツの１または複数の行内の任意のコンテンツを結合することを全体として示している（ユーザがコンテンツの複数の行をブロック選択したとする）。次に、ブロック６１６は、選択されたコンテンツをシステムクリップボードまたは他の適切なデータ構造にコピーする。ここにおいて、コンテンツは所定のアプリケーション内で切り取られ及び／またはコピーされるか、または異なるアプリケーション間で切り取られ及び／またはコピーされてもよい。
【００７０】
図６のブロック４０４に戻ると、ブロック４０４は、全体として６１８で示されるコンテンツの所定のページ内のクリックまたは他の同等な動作を受信することも含む。このクリック動作６１８は、６０２で示されているクリック−ドラッグまたは他のブロック選択動作とは区別される。例えば、クリック動作６１８は、コンテンツのページ内でのシングルクリックを含んでもよい。
【００７１】
判定ブロック６２０は、コンテンツのページ内で定義されているハイパーリンク上でユーザがクリックしたか否かを判定することを全体として示している。上記の図５の説明を思い起こすと、ブロック５１６は、コンテンツの所定のページ内の任意のハイパーリンクの外接矩形を演算することを示している。従って、ブロック６２０は、クリックの座標とページ内に存在するハイパーリンクの外接矩形の座標とを比較して、クリックがハイパーリンクの任意の外接矩形内であるかどうかを判定することを含んでもよい。
【００７２】
コンテンツのあるブロックを選択するクリック−ドラッグ動作ではなくて、クリックがハイパーリンク上であった場合、プロセスフロー６００は、ブロック６０８に示されている透明性のある背景を有する「強調」ＨＴＭＬ ｄｉｖの生成をしなくともよい。別の例では、ユーザがハイパーリンク上をクリックしても、コンテンツのブロックを選択しても、選択過程全てが同様に動作する。いくつかの場合、ユーザはクリック−ドラッグを行って、ハイパーリンクのテキストを選択またはアクティブにする。
【００７３】
判定ブロック６２０から、クリックがハイパーリンク上で行われたならば、プロセスフローは「はい」の分岐を選択して、位置ベースのメタデータ内のハイパーリンクによって指定されている対象を識別することを示すブロック６２４に進み得る。上述のように、ハイパーリンクの対象は、所定の文書の外部であってもよい（例えば外部ＵＲＬ）。さらに、ハイパーリンクの対象は所定の文書の内部であってもよい（例えば、所定のページ内の別の行へのリンク、他のページへのリンク等）。次に、ブロック６２６は、ハイパーリンクの内部または外部対象へ移動することを示している。
【００７４】
判定ブロック６２０に戻ると、ユーザクリックがハイパーリンク上で行われなかった場合、プロセスフロー６００は、「いいえ」の分岐６２８を選択してブロック６３０に進み得る。ブロック６３０は、ユーザがクリックしてポイントにコンテンツ内にテキストカーソルまたは他の同様のＵＩ要素を置くことを含んでもよい。ブロック６３０から、プロセスフロー６００は、ブロック６１０に進み、このシナリオにおいてキーボード操作または他の適切な過程によって入力される選択または移動動作であり得る次のユーザ命令またはユーザ動作を待ってもよい。
【００７５】
図６においてユーザのコンテンツ選択への応答の追加的な態様を説明してきたが、ここで説明はクライアント側ビューアが応答し得る追加の命令の説明に進む。本説明は図７を用いて提供される。
【００７６】
図７は、全体として７００で示されるプロセスを示しており、このプロセスは、クライアント側ビューアが応答し得る追加の命令がある場合を示している。参照及び説明の容易化のために、可能な実施例を限定するわけではないが、図７は、以前の図から要素を引き継ぎ、これらは同様の参照符号で示されている。例えば、図７は、クライアント側ビューア１１８を引き継いでいる。さらに具体的には、プロセスフロー７００は、図４に示されているプロセスブロック４０４をさらに詳しく説明している。
【００７７】
プロセスフロー７００をさらに詳しくみると、図７は、７０２に示されるように、ユーザが発見または検索命令（以下、「発見」命令という）をクライアント側ビューアに発行し得る例示のシナリオを示している。なお、プロセスフロー７００は、検索エンジンウェブページから発せられた検索命令に応答して開始し得る。これらのプロセスフローは、電子メールアプリケーションによって発せられた検索命令に応答して開始してもよい。例えば、所定のユーザは、所定の検索文字列について自分の電子メールを検索したいと思うだろう。他の例において、企業環境内において、プロセスフロー７００は、文書共有または文書提携環境内で発せられる検索または発見命令に応答して開始してもよい。
【００７８】
発見命令は、全体として７０４で示される１または複数の検索語を参照することができる。発見命令に応答して、ブロック７０６は、入力検索語をクライアント側ビューアによってレンダリングされた所定のページ内のコンテンツと比較してもよい。例えば。ブロック７０６は、ページ内の異なる行について、ユニコードテキストに対する検索語の文字列比較を実行することを含んでいてもよい。次に、判定ブロック７０８が、入力した検索語がページコンテンツ内に存在するかを判定し得る。入力検索語がページコンテンツ内に存在しない場合、プロセスフロー７００は、「いいえ」の分岐７１０を選択して、検索語が発見されなかったことを報告することを示しているブロック７１２に進み得る。
【００７９】
判定ブロック７０８に戻ると、入力検索語がページコンテンツ内で少なくとも１つ存在した場合、プロセスフロー７００は、「はい」の分岐７１４を選択して、マッチングしたページコンテンツの外接矩形を演算することを示しているブロック７１６に進む。図５の以前の説明を思い起こすと、ブロック５１４で演算された位置ベースのメタデータは、異なるテキストランの外接矩形を含み得る。これらのテキストラン内の文字が入力語とマッチングした場合において、ブロック７１６は、マッチングしたテキストに対応するメタデータから外接矩形を抽出することを含んでいてもよい。
【００８０】
ブロック７１８は、所定のページコンテンツ内に存在するマッチングしたコンテンツを強調することを全体として示している。ブロック７１８は、図６のブロック６０８を用いて上述した技術を使用して、ページコンテンツのマッチングした部分に重ね合わせられる選択矩形を生成してもよい。
【００８１】
クライアント側ビューアを対象とした様々なユーザ命令に応答することを示しているブロック４０４に戻ると、ユーザは、全体として７２０で示されている拡大命令を発行してもよい。拡大命令の受信に応答して、プロセスフロー７００は、クライアント側ビューアを実行しているクライアントシステムに高忠実度コンテンツをレンダリングするプラグインがインストールされているかを判定することを示している判定ブロック７２２に進み得る。クライアント側ビューア１１８は、クライアントシステムに当該プラグインがインストールされていてもいなくとも、拡大機能を提供し得る。また、このビューアは、クライアントシステムにプラグインがインストールされているか否かに依存して、別の技術を使用して拡大機能を提供してもよい。
【００８２】
判定ブロック７２２から、クライアントシステムにプラグインがインストールされている場合、プロセスフロー７００は、「はい」の分岐７２４を選択して、当該プラグインによってサポートされている変形操作を使用した拡大機能の適用を全体として示しているブロック７２６に進み得る。例えば、当該プラグインがＳＩＬＶＥＲＬＩＧＨＴブラウザプラグインであるとするならば、ブロック７２６はレンダリング変形ＸＡＭＬ要素を用いてページキャンバス（ｃａｎｖａｓ）のコンテンツに拡大変形を適用することを含んでもよい。しかし、これらの例は、例示のためにのみ提供され、様々なプラグイン及び当該プラグインによってサポートされる様々な変形動作を含み得る可能な実施例を限定するものではない。通常、プロセスフロー７００は、クライアントシステムとサーバとの間の往復メッセージを必要とせずに、クライアントシステムにおいてローカルにこの機能を有効にすることができる。
【００８３】
判定ブロック７２２に戻ると、クライアントシステムにプラグインがインストールされていない場合、プロセスフロー７００は、「いいえ」の分岐７２８を選択して、ブラウザにサポートされている画像拡大縮小機能を使用して拡大操作を適用することを示すブロック７３０に進み得る。プラグインがインストールされているか否かにかかわらず、クライアント側ビューア１１８は、所定の範囲（例えば約３３％から約４００％）にわたる様々な異なるズームレベルを提供することができる。例示のシナリオにおいて、クライアント側ビューア１１８は、１００％の拡大率でページコンテンツを表示してもよい。
【００８４】
図６及び図７において上述の異なる命令の実施例を提供してきたが、これらの実施例は、例示であって、本質を限定するものではないことに留意する。さらに具体的には、この発明を実施するための形態の実施例は、本発明の範囲及び精神から逸脱することなく、これらの例において提供された命令以外の命令を含むことができる。
【００８５】
図７のプロセスフロー７００を説明してきたが、ここで説明は、クライアント側ビューアがクライアントシステムから離れて配置されているコンテンツ内の検索をクライアントシステムに可能とさせ得るプロセスフローの説明に移る。本説明は図８を用いて提供される。
【００８６】
図８は、全体として８００で示されている例示のプロセスフローを示しており、クライアント側ビューアにより、クライアントシステムが当該クライアントシステムから離れて配置されているコンテンツ内を検索することを可能とし得るプロセスフローを提供している。参照及び説明の容易化のために、可能な実施例を限定するわけではないが、図８は、以前の図の要素を引き継ぎ、それらを同様の参照符号で示している。例えば、図８は、クライアント側ビューア１１８、並びに文書プレビュー及び検索サービス１２８を引き継いでいる。さらに、本説明のために、可能な実施例を限定するわけではないが、図８の構成は、クライアント側ビューア並びに文書プレビュー及び検索サービスによって実行されるプロセスフロー８００の特定の部分を示している。しかし、本発明の他のコンポーネントも、本発明の範囲及び精神から逸脱することなくプロセスフロー８００の一部を実行可能である。
【００８７】
プロセスフロー８００をさらに詳しくみると、ブロック８０２は、クライアント側ビューアが１または複数の検索語を受信することを示している。ブロック８０２は、ユーザによって提供された検索語を受信することを含んでもよい（例えば、図１の１０４）。次に、ブロック８０４が、検索のために文書プレビュー及び検索サービス１２８に検索要求８０６を送信することを示している。この検索要求８０６は、１または複数の入力検索語８０８を含んでもよく、クライアントシステム上のレンダリングコンテンツ内で用いられる高忠実度フォーマット８１０を指定してもよい。
【００８８】
文書プレビュー及び検索サービス１２８において、ブロック８１２は、入力検索語及びレンダリングフォーマットを受信することを示している。次に、ブロック８１４は、文書プレビュー及び検索サービスにアクセス可能な少なくとも１つのデータストアにおいて入力語を検索することを示す。以前の図１の説明を思い起こすと、文書プレビュー及び検索サービス１２８は、複数の文書１３４を含む文書ストア１３０を保持していてもよく、ブロック８１４は、１または複数のこのような文書ストア内において入力語を検索することを含んでもよい。
【００８９】
ブロック８１６は、ブロック８１４において検索された１または複数の文書内に存在する入力検索語がどこにあるかを示す文書プレビューを生成することを全体として示している。ブロック８１６は、検索要求８０６内で指定されているレンダリングフォーマット８１０に基づいて文書プレビューを生成することを含んでいてもよい。以前の説明を思い起こすと、異なるシナリオにおいて、クライアント側ビューアを実行しているクライアントシステムに、当該ビューアにおけるコンテンツの高忠実度レンダリングをサポートするプラグインコンポーネントがインストールされていてもよく、インストールされていなくともよい。レンダリングフォーマット８１０は、クライアント側ビューアにプラグインがインストールされているか否かを示してもよい。
【００９０】
ブロック８１６は、検索結果のリストを生成することを含んでもよいし、１または複数の文書内に検索結果が存在した場合の検索結果のプレビューを生成することを含んでもよい。さらに具体的には、ブロック８１６は、クライアント側ビューアにおいて特定のフォーマットでレンダリングされるプレビューを生成することを含んでもよい。プレビューの生成の一部として、ブロック８１６は、ヒットが存在する文書対して演算された位置ベースのメタデータを参照することを含んでもよい。次に、ブロック８１８は、全体として８２０で示される検索結果及び関連する文書プレビューを、クライアント側ビューアに送信することを全体として示す。文書に関する位置ベースのメタデータが、クライアント側ビューアにまだ送信されていない場合、検索結果及びプレビュー８２０は、クライアント側ビューアが使用するためにこのメタデータを含んでもよい。
【００９１】
クライアント側ビューアにおいて、ブロック８２２は、検索結果及び文書プレビュー８２０を受信することを示している。クライアント側ビューアが、ヒットを含む文書の位置ベースのメタデータをまだ含んでいない場合、ブロック８２２は、検索結果及びプレビュー８２０をともなった当該メタデータを受信することを含んでいてもよい。
【００９２】
ブロック８２４は、クライアント側ビューア内で検索結果を提示することを示し、ブロック８２６は、特定の検索語８０８を含んでいる１または複数の文書内に存在する「ヒット」のプレビューをレンダリングすることを示す。実施例において、検索結果は、文書内のどこに検索語が存在していたかを表すプレビューのそばに各々提供され得る。ブロック８２６は、文書内に配置されている検索語を強調することを含み得る。さらに、ブロック８２６は、最初のヒットが存在するページに文書内でスクロールすることを含んでもよい。
【００９３】
ブロック８２８は、ブロック８２４及び８２６において示された検索結果及び／または文書プレビューに関するユーザからの命令を受信することを全体として示している。例えば、ユーザは、入力検索語の１または複数を含むと認識されている文書をクライアント側ビューア内で開くことを選択し得る。この例において、「ヒット」に適用される強調は、文書が開かれている際に維持されていてもよい。他の例の場合、ユーザは、検索結果及び／または文書プレビューにわたって移動またはスクロールしてもよい。これらの命令の例は、例示としてかつ本質を限定しないと理解され、本説明の実施例は他の命令を含んでもよい。
【００９４】
ブロック８３０は、ブロック８２８において受信された命令を実行または遂行することを示している。いくつかの場合、ブロック８３０は、これらの命令を実行する際に位置ベースのメタデータを参照することを含んでもよい。例えば、ブロック８３０は、このメタデータを参照して、図８に示されている検索環境内において、図６及び図７に示されている任意の他の機能を実行してもよい。
【００９５】
図８は、本説明のためにプロセスフロー８００の１つの繰り返しを示しているが、このプロセスフローの実行は、異なる検索語に関して任意回数反復してもよいことに留意する。さらに、プロセスフロー８００は、任意の数のクライアントシステム（例えば１０２）及び対応するクライアント側ビューア（例えば１１８）において実行されてもよい。
【００９６】
本明細書において、本発明は、コンピュータの構造特徴、方法論的動作及びコンピュータ可読媒体に関して説明してきたが、添付の特許請求の範囲において画定される本発明は、本明細書に記載されたこれらの特定の特徴、動作または媒体に必ずしも限定されないことが理解されるべきである。むしろ、これらの特定の特徴、動作及び媒体は、特許請求の範囲に記載の発明を実施する例として開示されている。
【００９７】
上述の説明は、様々なプロセスを示すために１または複数のフローチャートまたはフロー図と組み合わせて提供され得る。これらのプロセスは、本発明の説明を容易にするためのみに、提供された順序において進行する様に示されており、これは可能な実施例を限定するものではない。さらに具体的に言えば、これらのプロセス、またはこれらのプロセスの構成要素は、本発明の範囲及び精神から逸脱することなく、本明細書において示された順序以外の順序で進行してもよい。
【００９８】
上述の本発明は、例示のためのみに提供され、限定として解釈されるべきではない。様々な変形及び変更は、図示されて説明された例示の実施形態及び応用例に従うことなく、かつ添付の特許請求の範囲に記載される本発明の真の精神及び範囲から逸脱することなく、本明細書に記載された本発明になされ得る。
【図１】
0005385373.tif 000003
【図２】
0005385373.tif 000004
【図３】
0005385373.tif 000005
【図４】
0005385373.tif 000006
【図５】
0005385373.tif 000007
【図６】
0005385373.tif 000008
【図７】
0005385373.tif 000009
【図８】
0005385373.tif 000010