(57)【特許請求の範囲】
【請求項１】
オブジェクトを視覚的に検索するためのコンピュータ実装方法であって、コンピュータが下記ステップを実行し、当該ステップが、
それぞれが事前定義された部分を有するオブジェクトを収集し、オブジェクト・パイルを形成するステップと、
前記オブジェクト・パイル内のオブジェクトの前記事前定義された部分にセレクタが存在するかどうかを決定するステップと、
前記オブジェクト・パイル内の前記オブジェクトの前記事前定義された部分に前記セレクタが検出されたことに応じて、前記オブジェクトを前面に提示するステップと、
選択されたオブジェクトを形成するために前面に提示された前記オブジェクトが選択されるかどうかを決定するステップと、
前記オブジェクトが選択された旨の決定に応じて、前記オブジェクト・パイルをオリジナルの状態に復元し、表示域に前記選択されたオブジェクトが含まれるようにするステップと、
を含む、方法。
【請求項２】
オブジェクトを収集し、オブジェクト・パイルを形成するステップが、
フィルタを選択するかどうかを決定するステップと、
フィルタを選択する旨の決定に応じて、フィルタされたオブジェクトを形成するために選択されたフィルタをオブジェクトに適用するステップと、
オブジェクト・パイルを形成するために前記フィルタされたオブジェクトを収集するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
オブジェクトを収集し、オブジェクト・パイルを形成するステップが、
各オブジェクトのサイズを維持するステップと、
オブジェクト間の配向および近接関係を維持するステップと、
あるオブジェクトが他のオブジェクトの背面に見えるようにするために、各オブジェクトに透明性を追加するステップと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記オブジェクトを前面に提示するステップが、前記オブジェクトがオブジェクトのグループであるかどうかを決定するステップと、前記オブジェクトがオブジェクトのグループである旨の決定に応答して、オブジェクトを前面に提示された前記オブジェクトのグループ内に提示するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記オブジェクトを前面に提示するステップが、一時的に前記オブジェクトを前面に提示するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記オブジェクト・パイルをオリジナル状態に復元するステップが、一時的モードをオフに設定するステップをさらに含む、請求項１に記載の方法。
【請求項７】
一時的モードをオンにするステップをさらに含み、前記一時的モードをオンするステップが、ユーザ・インターフェースにおいて、メニュー・コンテキスト・アイテムおよびコントロールのグラフィック表現のうちの１つを選択するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記オブジェクトが複数のオブジェクトを含み、
前記オリジナルの状態においては、前記複数のオブジェクトが互いに分離され、かつ、前記複数のオブジェクトの少なくとも１つが前記表示域に表示されない、請求項１に記載の方法。
【請求項９】
前記オブジェクト・パイルが、透過性を有し、重なり合って表示される複数のオブジェクトを含み、前記オブジェクト・パイルでは、前記オリジナルの状態において表示されないオブジェクトの少なくとも一部がオブジェクト間の配向および近接関係を維持して表示される、請求項１に記載の方法。
【請求項１０】
前記オブジェクト・パイルをオリジナル状態に復元するステップが、前記選択されたオブジェクトを前記表示域にスクロールして含まれるようにするステップを含む、請求項１に記載の方法。
【請求項１１】
前記オブジェクト・パイルをオリジナル状態に復元するステップが、以前にオリジナル状態において前記表示域に表示されていたオブジェクトを復元後に前記表示域に表示しないステップを含む、請求項１に記載の方法。
【請求項１２】
請求項１〜１１のいずれかに記載された方法の各ステップをコンピュータに実行させる、プログラム。
【請求項１３】
請求項１〜１１のいずれかに記載された方法の各ステップを実行する手段を備える、装置。
【請求項１４】
オブジェクトを視覚的に検索するためのプログラムであって、
それぞれが事前定義された部分を有するオブジェクトを収集し、オブジェクト・パイルを形成するステップと、
前記オブジェクト・パイル内のオブジェクトの前記事前定義された部分にセレクタが存在するかどうかを決定するステップと、
前記オブジェクト・パイル内の前記オブジェクトの前記事前定義された部分に前記セレクタが検出されたことに応じて、前記オブジェクトを前面に提示するステップと、
選択されたオブジェクトを形成するために前面に提示された前記オブジェクトが選択されるかどうかを決定するステップと、
前記オブジェクトが選択された旨の決定に応じて、前記オブジェクト・パイルをオリジナルの状態に復元し、表示域に前記選択されたオブジェクトが含まれるようにするステップと、
をコンピュータに実行させる、プログラム。
【請求項１５】
通信ファブリックと、前記通信ファブリックに接続され、コンピュータ実行可能プログラム・コードを含むメモリと、前記通信ファブリックに接続された通信ユニットと、前記通信ファブリックに接続された入力／出力ユニットと、前記通信ファブリックに接続されたディスプレイと、前記通信ファブリックに接続されたプロセッサ・ユニットと、
を備える、視覚的検索のための装置であって、前記プロセッサ・ユニットが、
それぞれが事前定義された部分を有するオブジェクトを収集し、オブジェクト・パイルを形成するステップと、
前記オブジェクト・パイル内のオブジェクトの前記事前定義された部分にセレクタが存在するかどうかを決定するステップと、
前記オブジェクト・パイル内の前記オブジェクトの前記事前定義された部分に前記セレクタが検出されたことに応じて、前記オブジェクトを前面に提示するステップと、
選択されたオブジェクトを形成するために前面に提示された前記オブジェクトが選択されるかどうかを決定するステップと、
前記オブジェクトが選択された旨の決定に応じて、前記オブジェクト・パイルをオリジナルの状態に復元し、表示域に前記選択されたオブジェクトが含まれるようにするステップを実行することを前記装置に命令するために、コンピュータ実行可能プログラム・コードを実行する、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、データ処理システムのユーザ・インターフェース内のマッシュアップに関し、より具体的には、データ処理システム内で読み込まれたユーザ・インターフェースのマッシュアップにおいてウィジェットを視覚的に検索することに関する。
【背景技術】
【０００２】
データ処理環境において、マッシュアップが多数のウィジェットを含む場合、任意の所与の時点でウィジェットの一部のみがディスプレイ内で可視となる。ユーザは、所望のウィジェットを探索するためにどこへスクロールすればよいかが明確には把握することが難しいので、使用可能なウィジェットの中から特定のウィジェットを探索することが困難な場合がある。
【０００３】
この問題の従来の解決策の１つは、マッシュアップが画面上に収まるようにユーザがマッシュアップを十分ズーム・アウトできるようにすることである。ウィジェットは、定められた表示域内に収まるように、拡大／縮小またはクリップすることができる。しかし、ウィジェットが小さすぎて個別に見分けられなかったり、所望のウィジェットを見つけることが不可能であったりする場合がある。ユーザは、アプリケーションを通じたスクロール処理をせざるを得ない可能性がある。
【０００４】
他のウィジェットを探索する方法には、機能の検索または発見が含まれる。通常、ユーザがウィジェットを一意的に識別するために検索フィールド内に十分な情報を入力することが検索のために必要となるため、さらなるステップが必要となる。この識別は、特定のウィジェットを一意的に識別するために、ウィジェット内の十分なテキスト情報をユーザが覚えていることに依拠する。
【０００５】
他の従来の解決策では、多数のウィジェットを使用可能な表示域内に収めるために、ウィジェットがダッシュボード上のスタックまたはカスケード内に配置構成される。この解決策では、ウィジェットがより小さなスペースに配置構成されることとなる。しかし、ユーザは依然としてウィジェットを移動させる必要があり、ウィジェットをスタックの外へ移動させるか、またはメニュー・ベースのプロセスを使用してウィジェットにアクセスする。スタックを使用する変形では、異なるウィジェットをユーザに提示するために、スライド・ショー効果を使用して可視である最上位のウィジェットを変更することができる。スタックまたはカスケード技法は、通常、視覚定位（visual orientation）および該当するウィジェット間での物理的な配置関係を変更する。以前の解決策は、通常、ウィジェットのカスケードまたはウィジェットの拡大／縮小のいずれかによって、使用可能なスペースにより多くのコンテンツを収めるための方法を説明している。従来の解決策は、通常、ダッシュボード・レイアウトにおける永続的な変更を意味する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ダッシュボード・レイアウトを変更することなくウィジェットを見つけ出す信頼性のある方法を、容易に使用できることが求められている。
【課題を解決するための手段】
【０００７】
一実施形態によれば、オブジェクトを視覚的に検索するためのコンピュータ実装方法が提供される。方法は、それぞれが事前定義された部分を有するオブジェクトを収集し、オブジェクト・パイルを形成するステップと、オブジェクト・パイル内のオブジェクトの事前定義された部分にセレクタが存在するかどうかを決定するステップと、  オブジェクト・パイル内のオブジェクトの事前定義された部分にセレクタが検出されたことに応じて、オブジェクトを前面に提示するステップと、選択されたオブジェクトを形成するために前面に提示されたオブジェクトが選択されるかどうかを決定するステップと、オブジェクトが選択された旨の決定に応じて、オブジェクト・パイルをオリジナルの状態に復元し、表示域に選択されたオブジェクトが含まれるようにするステップを含む。さらに、一時的モード（transient mode）をオンに設定するステップを含むことが好ましい。
【０００８】
他の実施形態によれば、オブジェクトを視覚的に検索するためのコンピュータ・プログラムが提供される。プログラムは、オブジェクトを視覚的に検索するためのコンピュータ実装方法が提供される。方法は、それぞれが事前定義された部分を有するオブジェクトを収集し、オブジェクト・パイルを形成するステップと、オブジェクト・パイル内のオブジェクトの事前定義された部分にセレクタが存在するかどうかを決定するステップと、  オブジェクト・パイル内のオブジェクトの事前定義された部分にセレクタが検出されたことに応じて、オブジェクトを前面に提示するステップと、選択されたオブジェクトを形成するために前面に提示されたオブジェクトが選択されるかどうかを決定するステップと、オブジェクトが選択された旨の決定に応じて、オブジェクト・パイルをオリジナルの状態に復元し、表示域に選択されたオブジェクトが含まれるようにするステップをコンピュータに実行させる。さらに、一時的モード（transient mode）をオンに設定するステップをコンピュータに実行させることが好ましい。
【０００９】
他の実施形態によれば、通信ファブリックと、通信ファブリックに接続され、コンピュータ実行可能プログラム・コードを含むメモリと、通信ファブリックに接続された通信ユニットと、通信ファブリックに接続された入力／出力ユニットと、通信ファブリックに接続されたディスプレイと、通信ファブリックに接続されたプロセッサ・ユニットを備える視覚的検索のための装置が提供される。プロセッサ・ユニットが、それぞれが事前定義された部分を有するオブジェクトを収集し、オブジェクト・パイルを形成するステップと、オブジェクト・パイル内のオブジェクトの事前定義された部分にセレクタが存在するかどうかを決定するステップと、オブジェクト・パイル内のオブジェクトの事前定義された部分にセレクタが検出されたことに応じて、オブジェクトを前面に提示するステップと、選択されたオブジェクトを形成するために前面に提示されたオブジェクトが選択されるかどうかを決定するステップと、オブジェクトが選択された旨の決定に応じて、オブジェクト・パイルをオリジナルの状態に復元し、表示域に選択されたオブジェクトが含まれるようにするステップを実行することを装置に命令するために、コンピュータ実行可能プログラム・コードを実行する。
【００１０】
次に、本開示をより完全に理解するために、同じ参照番号が同じ部分を表す添付の図面および詳細な説明と共に記載された、以下の簡単な説明を参照する。
【図面の簡単な説明】
【００１１】
【図１】本開示の様々な実施形態に対して動作可能な、例示的データ処理システムを示すブロック図である。
【図２】本開示の様々な実施形態に従った、オブジェクトを視覚的に検索するためのシステムを示すブロック図である。
【図３】本開示の一実施形態に従った、図２のシステムを使用するマッシュアップを示すブロック図である。
【図４】本開示の一実施形態に従った、図２のシステムを使用するマッシュアップを示すブロック図である。
【図５】本開示の一実施形態に従った、図２のシステムを使用するマッシュアップを示すブロック図である。
【図６】本開示の一実施形態に従った、図２のシステムを使用するマッシュアップを示すブロック図である。
【図７】本開示の一実施形態に従った、図２のシステムを使用するマッシュアップを示すブロック図である。
【図８】本開示の一実施形態に従った、図２のシステムを使用する視覚的検索プロセスを示す流れ図である。
【図９】本開示の一実施形態に従った、図８の視覚的検索プロセスの変形を示す流れ図である。
【図１０】本開示の一実施形態に従った、図８の視覚的検索プロセスの変形を示す流れ図である。
【発明を実施するための形態】
【００１２】
以下に、１つまたは複数の実施形態の例示的実装が提供されるが、開示されたシステムあるいは方法またはその両方は、任意数の技法を使用して実装することができる。この開示は、本明細書で例示および説明される例示的設計および実装を含む、以下に示された例示的実装、図面、および技法に一切限定されるものではなく、添付の特許請求の範囲の範囲内、ならびにそれらの等価物の全範囲内で修正可能である。
【００１３】
本開示の諸態様は、当業者であれば理解されるように、システム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって、本開示の諸態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、本明細書ではすべてを全体として「回路」、「モジュール」、または「システム」と呼ぶことのできるソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の諸態様は、その上にコンピュータ読み取り可能プログラム・コードが具体化された、１つまたは複数のコンピュータ読み取り可能媒体内で具体化される、コンピュータ・プログラム製品の形を取ることができる。
【００１４】
任意の組み合わせの１つまたは複数のコンピュータ読み取り可能媒体が使用可能である。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能ストレージ媒体とすることができる。コンピュータ読み取り可能ストレージ媒体は、たとえば電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいはそれらの任意の好適な組み合わせとすることができるが、これらに限定されるものではない。コンピュータ読み取り可能ストレージ媒体のより特定の例（非網羅的リスト）は、１本または複数本のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤＲＯＭ）、光ストレージ・デバイス、または磁気ストレージ・デバイス、あるいは、それらの任意の好適な組み合わせを含むことになる。本明細書との関連において、コンピュータ読み取り可能ストレージ媒体は、命令実行のシステム、装置、またはデバイスによって、あるいはそれらに関連して使用するためのプログラムを、含むかまたは格納することが可能な、任意の有形媒体とすることができる。
【００１５】
コンピュータ読み取り可能信号媒体は、たとえばベースバンド内または搬送波の一部として内部で具体化されるコンピュータ実行可能プログラム・コードを備えた、伝搬データ信号を含むことができる。こうした伝搬信号は、電磁、光、またはそれらの任意の組み合わせを含むがこれらに限定されない、様々な形を取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能ストレージ媒体でなく、命令実行のシステム、装置、またはデバイスによって、あるいはそれらに関連して使用するためのプログラムを、通信、伝搬、または移送することが可能な、任意のコンピュータ読み取り可能媒体とすることができる。
【００１６】
コンピュータ読み取り可能媒体上で具体化されたプログラム・コードは、無線、有線、光ファイバー・ケーブル、ＲＦなど、またはそれらの任意の好適な組み合わせを含むがこれらに限定されない、任意の適切な媒体を使用して、伝送することができる。
【００１７】
本開示の諸態様に関する諸動作を実施するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）などのオブジェクト指向プログラミング言語、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋など、および、「Ｃ」プログラミング言語または同様のプログラミング言語などの、従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせで作成することができる。開示の諸実施形態は、マッシュアップ製品をサポートしているウェブ・ブラウザに関連付けられたJavaScript（ＴＭ）およびActionScript（Ｒ）の実装を含むスクリプト言語と共に使用することもできる。（ＪａｖａおよびすべてのＪａｖａに基づく商標およびロゴは、米国、他の諸外国、またはその両方における、Oracleあるいはその関連会社またはその両方の、登録商標である。ActionScriptは、米国あるいは他の諸外国またはその両方における、Adobe Systems Incorporatedの登録商標である。）プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは、完全にリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意のタイプのネットワークを介して、ユーザのコンピュータに接続することが可能であるか、あるいは、（たとえばインターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータへの接続が可能である。
【００１８】
本開示の諸態様について、本発明の諸実施形態に従った方法、装置、（システム）、およびコンピュータ・プログラム製品の流れ図あるいはブロック図またはその両方を参照しながら、以下で説明する。流れ図あるいはブロック図またはその両方の各ブロック、ならびに、流れ図あるいはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装可能であることを理解されよう。
【００１９】
これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、流れ図あるいはブロック図またはその両方のブロックに指定された機能／動作を実装するための手段を作成するように、汎用コンピュータ、特定用途向けコンピュータ、またはマシンを製造するための他のプログラム可能データ処理装置の、プロセッサに提供することができる。
【００２０】
これらのコンピュータ・プログラム命令は、コンピュータ読み取り可能媒体内に格納された命令が、流れ図あるいはブロック図またはその両方のブロックに指定された機能／動作を実装する命令を含む製品を製造するように、コンピュータまたは他のプログラム可能データ処理装置に対して、特定の様式で機能するように命令することが可能な、コンピュータ読み取り可能媒体内に格納することもできる。
【００２１】
コンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能装置上で実行する命令が、流れ図あるいはブロック図またはその両方のブロックに指定された機能／動作を実装するためのプロセスを提供するように、コンピュータ実装プロセスを生成するために一連の動作ステップをコンピュータまたは他のプログラム可能装置上で実行させるために、コンピュータまたは他のプログラム可能データ処理装置上にロードすることもできる。
【００２２】
次に図１を参照すると、本開示の様々な実施形態に関して動作可能な例示的データ処理システムのブロック図が提示されている。この例示的な例では、データ処理システム１００は、プロセッサ・ユニット１０４、メモリ１０６、永続ストレージ１０８、通信ユニット１１０、入力／出力（Ｉ／Ｏ）ユニット１１２、およびディスプレイ１１４の間に通信を提供する、通信ファブリック１０２を含む。
【００２３】
プロセッサ・ユニット１０４は、メモリ１０６内にロード可能なソフトウェアに関する命令を実行する働きをする。プロセッサ・ユニット１０４は、特定の実装に応じて、１つまたは複数のプロセッサのセットとするか、またはマルチプロセッサ・コアとすることができる。さらにプロセッサ・ユニット１０４は、単一チップ上の２次プロセッサと共に内部にメイン・プロセッサが存在する、１つまたは複数の異機種プロセッサ・システムを使用して、実装することができる。他の例示的な例として、プロセッサ・ユニット１０４は、同じタイプの複数のプロセッサを含む対称マルチプロセッサ・システムとすることができる。
【００２４】
メモリ１０６および永続ストレージ１０８は、ストレージ・デバイス１１６の例である。ストレージ・デバイスとは、たとえば制限なしに、データ、関数形式のプログラム・コード、あるいは他の好適な情報などの情報を、一時的にあるいは永続的にまたはその両方のいずれかで格納することが可能な、任意のハードウェア部分である。これらの例では、メモリ１０６は、たとえば、ランダム・アクセス・メモリあるいは任意の他の好適な揮発性または不揮発性のストレージ・デバイスとすることができる。永続ストレージ１０８は、特定の実装に応じて様々な形を取ることができる。たとえば永続ストレージ１０８は、１つまたは複数のコンポーネントまたはデバイスを含むことができる。たとえば永続ストレージ１０８は、ハード・ドライブ、フラッシュ・メモリ、書き換え可能光ディスク、書き換え可能磁気テープ、またはそれらの何らかの組み合わせとすることができる。永続ストレージ１０８によって使用される媒体は、取り外し可能とすることもできる。たとえば取り外し可能ハード・ドライブを、永続ストレージ１０８用に使用することができる。
【００２５】
これらの例では、通信ユニット１１０は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット１１０はネットワーク・インターフェース・カードである。通信ユニット１１０は、物理通信リンクおよび無線通信リンクのいずれかまたは両方の使用を通じて、通信を提供することができる。
【００２６】
入力／出力ユニット１１２は、データ処理システム１００に接続可能な他のデバイスを使用して、データの入力および出力が可能である。たとえば入力／出力ユニット１１２は、キーボード、マウス、あるいは何らかの他の好適な入力デバイス、またはそれらすべてを介して、ユーザ入力のための接続を提供することができる。さらに入力／出力ユニット１１２は、プリンタに出力を送信することができる。ディスプレイ１１４は、情報をユーザに表示するための機構を提供する。
【００２７】
オペレーティング・システム、アプリケーション、あるいはプログラムまたはそれらすべてに関する命令は、通信ファブリック１０２を介してプロセッサ・ユニット１０４と通信している、ストレージ・デバイス１１６内に配置可能である。これらの例示的な例では、命令は永続ストレージ１０８上で関数形式である。これらの命令は、プロセッサ・ユニット１０４によって実行するためにメモリ１０６内にロードすることができる。様々な実施形態のプロセスは、メモリ１０６などのメモリ内に配置可能なコンピュータ実装命令を使用して、プロセッサ・ユニット１０４によって実行することができる。
【００２８】
これらの命令は、プロセッサ・ユニット１０４内のプロセッサによって読み取りおよび実行可能な、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ読み取り可能プログラム・コードと呼ばれる。様々な実施形態におけるプログラム・コードは、メモリ１０６または永続ストレージ１０８などの、様々な物理または有形のコンピュータ読み取り可能媒体上で具体化することができる。
【００２９】
プログラム・コード１１８は、選択的に取り外し可能なコンピュータ読み取り可能媒体１２０上に関数形式で配置され、プロセッサ・ユニット１０４によって実行するために、データ処理システム１００上にロードするか、またはデータ処理システム１００へと転送することが可能である。プログラム・コード１１８およびコンピュータ読み取り可能媒体１２０は、これらの例ではコンピュータ・プログラム製品１２２を形成する。一例では、コンピュータ読み取り可能媒体１２０は、永続ストレージ１０８の一部であるハード・ドライブなどのストレージ・デバイス上に転送するために、永続ストレージ１０８の一部であるドライブまたは他のデバイス内に挿入または配置される、たとえば光ディスクまたは磁気ディスクなどのような有形な形式とすることができる。有形な形式では、コンピュータ読み取り可能媒体１２０は、データ処理システム１００に接続される、ハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなどの、永続ストレージの形を取ることもできる。有形な形式のコンピュータ読み取り可能媒体１２０は、コンピュータ記録可能ストレージ媒体とも呼ばれる。いくつかのインスタンスでは、コンピュータ読み取り可能媒体１２０は取り外し可能でない場合がある。
【００３０】
別の方法として、プログラム・コード１１８は、コンピュータ読み取り可能媒体１２０から通信リンクを通じて通信ユニット１１０へ、あるいは、接続を通じて入力／出力ユニット１１２へ、またはその両方で、データ処理システム１００へと転送することができる。通信リンクあるいは接続またはその両方は、例示的な例では物理または無線とすることができる。コンピュータ読み取り可能媒体は、プログラム・コードを含む通信リンクまたは無線伝送などの、非有形の媒体の形を取ることもできる。
【００３１】
いくつかの例示的実施形態では、プログラム・コード１１８は、データ処理システム１００内で使用するために、他のデバイスまたはデータ処理システムからネットワークを介して永続ストレージ１０８へとダウンロードすることができる。たとえば、サーバ・データ処理システム内のコンピュータ読み取り可能ストレージ媒体に格納されたプログラム・コードは、ネットワークを介してサーバからデータ処理システム１００へとダウンロードすることができる。プログラム・コード１１８を提供するデータ処理システムは、サーバ・コンピュータ、クライアント・コンピュータ、または、プログラム・コード１１８の格納および伝送が可能な任意の他のデバイスとすることができる。
【００３２】
データ処理システム１００に関して例示された様々なコンポーネントは、様々な実施形態が実装可能な様式に対して、アーキテクチャ面での制限を与えることを意味するものではない。様々な例示的実施形態は、データ処理システム１００に関して例示されたコンポーネントに加えた、またはそれらの代わりのコンポーネントを含む、データ処理システム内で実装可能である。図１に示される他のコンポーネントは、図示された例示的な例とは異なるものとすることができる。様々な実施形態は、プログラム・コードの実行が可能な任意のハードウェア・デバイスまたはシステムを使用して実装可能である。一例のように、データ処理システムは、無機コンポーネントと統合された有機コンポーネントを含むこと、あるいは、人間を除く完全な有機コンポーネントからなるものとすること、またはその両方が可能である。たとえば、ストレージ・デバイスは有機半導体からなるものとすることができる。
【００３３】
他の例として、データ処理システム１００内のストレージ・デバイスは、データを格納することができる任意のハードウェア装置とすることができる。メモリ１０６、永続ストレージ１０８、およびコンピュータ読み取り可能媒体１２０は、有形な形式のストレージ・デバイスの例である。
【００３４】
他の例では、バス・システムは、通信ファブリック１０２を実装するために使用することが可能であり、システム・バスまたは入力／出力バスなどの１つまたは複数のバスからなるものとすることが可能である。もちろんバス・システムは、バス・システムに接続された異なるコンポーネントまたはデバイス間でデータを転送する、任意の好適なタイプのアーキテクチャを使用して実装することができる。加えて、通信ユニットは、モデムまたはネットワーク・アダプタなどの、データの送受信に使用される１つまたは複数のデバイスを含むことができる。さらにメモリは、通信ファブリック１０２内に存在可能なインターフェースおよびメモリ・コントローラ・ハブ内に見られるような、メモリ１０６またはキャッシュとすることができる。
【００３５】
例示的な実施形態によれば、コンピュータ実装される視覚的検索に関するプロセスは、一時的モードをオンにし、それぞれが事前に定義された部分を有するオブジェクトを収集し、オブジェクト・パイルを形成する。さらに、オブジェクト・パイル内のオブジェクトの事前定義された部分にセレクタがあるかどうかが決定される。オブジェクト・パイル内のオブジェクトの事前に定義された部分にセレクタが検出されたことに応じて、コンピュータ実装プロセスは、前面にオブジェクトを提示し、選択されたオブジェクトを形成するために前面に提示されたオブジェクトが選択されるかどうかを決定する。選択されたオブジェクトを形成するために前面に提示されたオブジェクトが選択された旨の決定に応じて、コンピュータ実装プロセスは、オブジェクト・パイルをオリジナルの状態に復元し、選択されたオブジェクトを表示域に含めるようにする。
【００３６】
図１のデータ処理システム１００を例として使用すると、例示的実施形態は、視覚的検索のためにメモリ１０６内に格納され、プロセッサ・ユニット１０４によって実行される、コンピュータ実装プロセスを提供する。プロセッサ・ユニット１０４は、一時的モードをオンに設定し、オブジェクト・パイルを形成するために、通信ユニット１１０またはストレージ・デバイス１１６から取得されたオブジェクトを収集する。ここで、各オブジェクトはディスプレイ１１４上で事前定義された可視部分を有し、さらに、オブジェクト・パイル内のオブジェクトの事前に定義された部分にセレクタがあるかどうかが決定される。セレクタが、オブジェクト・パイル内のオブジェクトの事前に定義された部分の上で検出されたことに応答して、プロセッサ・ユニット１０４は、オブジェクトをディスプレイ１１４の前景内に提示し、選択されたオブジェクトを形成するために前景内のオブジェクトが選択されるかどうかを決定する。選択されたオブジェクトを形成するために前景内のオブジェクトが選択された旨の決定に応答して、プロセッサ・ユニット１０４は、オブジェクト・パイルをオリジナルの状態に復元しつつ、選択されたオブジェクトをディスプレイ１１４の事前定義された表示域のビューにスクロールする。
【００３７】
代替実施形態では、コンピュータ実装プロセスを含むプログラム・コード１１８は、コンピュータ・プログラム製品１２２としてコンピュータ読み取り可能媒体１２０内に格納することができる。他の事例的実施形態では、視覚的検索のためのプロセスは、通信ファブリックと、通信ファブリックに接続されたメモリであって、メモリはコンピュータ実行可能プログラム・コードを含む、メモリと、通信ファブリックに接続された通信ユニットと、通信ファブリックに接続された入力／出力ユニットと、通信ファブリックに接続されたディスプレイと、通信ファブリックに接続されたプロセッサ・ユニットと、を備える、装置内に実装可能である。この装置のプロセッサ・ユニットは、プロセスを実行するように装置に命令するためにコンピュータ実行可能プログラム・コードを実行する。
【００３８】
図２を参照すると、本開示の様々な実施形態に従った、オブジェクトを視覚的に検索するためのシステムのブロック図が提示されている。システム２００は、図１のデータ処理システム１００のコンポーネントなどのコンポーネントによってサポートされる、視覚的検索システムの例である。サポート・コンポーネントに加えて、システム２００は、制御アイテム２０２、状態インジケータ２０４、コレクタ２０６、イメージ・マニピュレータ（image manipulator）２０８、およびフィルタ・セット２１０を含む、いくつかのコンポーネントを備える。
【００３９】
制御アイテム２０２は、システム２００を使用して視覚的検索プロセスを起動するために使用される。例示的実施形態における制御アイテム２０２は、典型的には、ユーザ・インターフェースのツール・バー上のボタンとして、またはコンテキスト・メニュー・アイテムとして実装可能である。
【００４０】
状態インジケータ２０４は、視覚的オブジェクト検索の一時的状態が有効であるかどうかを示す値を含む、ストレージ位置である。状態インジケータ２０４は、視覚的オブジェクト検索に関する一時的状態を開始または終了するために、制御アイテム２０２と共に使用される。
【００４１】
コレクタ２０６は、ユーザ・インターフェースの事前に定義された表示域内に、いくつかのオブジェクトを表示するために編成する機能を提供する。例示的一実施形態では、コレクタ２０６は、当該のいくつかのオブジェクトを、視覚的に指示された検索を実行するために好適なオブジェクト・パイルに集める。コレクタ２０６は、オブジェクト間の相対的な配向を維持しながら、事前に定義された表示域の境界内の位置にオブジェクトを配列する。オブジェクトを表すイメージは、事前に定義された基準に従って関係付けられたオブジェクト・セットを表すこともできる。
【００４２】
イメージ・マニピュレータ２０８は、検索の対象となるオブジェクトのイメージを修正する機能を提供する。修正には、オブジェクトを表すイメージにホット・スポット部分を追加することが含まれる。修正には、ユーザがトップ・オブジェクトの下の他のオブジェクトを見るために、表示されているイメージを通して見ることができるようにイメージに透過性を追加することが、さらに含まれる。他の例では、イメージ・マニピュレータ２０８は、それぞれのオブジェクトのイメージ上に配置するために好適なオブジェクトのサムネイル・ビューを作成し、オブジェクトのイメージが部分的にのみ可視である場合、ユーザが一見してオブジェクトを識別できるようにするための機能も提供する。
【００４３】
フィルタ・セット２１０は、オブジェクトの定義済みサブセットのみを含むオブジェクト・パイルを、コレクタ２０４が作成できるようにするものである。たとえばフィルタは、レポート作成オブジェクトを含むセットにオブジェクトを限定するように選択することができる。たとえばフィルタリングを使用して、事前に定義された表示域内に表示するオブジェクトの数またはタイプを限定することができる。
【００４４】
本開示のシステム２００の例示的諸実施形態は、ユーザがそれぞれのダッシュボードのすべてのウィジェットを、同じ相対的位置内に位置するがウィジェットが重なり合うように一緒に押し込めて同じ画面上に収められるようにする、一時的モードのための機能を提供し、ユーザがウィジェットを通して見られるようにある程度の透過性を与える。ウィジェットの事前定義された部分にマウスを動かすと、ウィジェットは前面に移動し、ユーザはマウスを動かすことでウィジェットに即時に目を通すことができる。選択プロセスには、一時的モードを起動するために１回、および所望のウィジェットを前面に移動した後に特定のウィジェットを選択するためにもう１回の、２回のクリックが含まれる。２回目のクリックの後、ダッシュボードはオリジナル状態に戻るため、所望のウィジェットへスクロールされるだけであり、一時的であることの性質は明確である。
【００４５】
本開示のシステム２００の例示的実施形態は、スタック様式でウィジェットを配列する方法については説明しておらず、ウィジェットは、ウィジェットがダッシュボード上で配列された際と同じ相対的な位置にウィジェットが重なり合うように単により近くに配列されたままである。一時的配置は、カードのスタックではなくカードのパイルのように、画面上ですべてのウィジェットをパイル内に入れる効果を生成する。システム２００に示された例示的諸実施形態は、ユーザがウィジェットを表示するためのダッシュボードのおよその領域がわかっている場合、ユーザを支援するために前の相対的位置決めを維持しながら、ユーザによる所望のウィジェットの即時認識に依拠して、多数のウィジェットを介して視覚的に検索するためのツールを提供する。
【００４６】
本開示の例示的諸実施形態は、最小限のマウスのクリックを使用してウィジェットを視覚的に探索するための一時的モードについて説明する。本開示の例示的実施形態では、ユーザが、マッシュアップ内にウィジェットを集めるために一時的な検索モードを起動した場合、ウィジェットはそれぞれ重なり合うが、各ウィジェットの左上隅は依然としてホット・スポットとして可視のままであるように、ウィジェットはユーザ・インターフェースの画面の使用可能な表示スペース上に圧縮される。ユーザがウィジェットのホット・スポットの上をローリングした場合、ウィジェット全体がユーザに表示される。ユーザは、各ウィジェットのコーナの上でマウスを動かして、各ウィジェットを１つずつ容易に一見することができる。所望のウィジェットが見つかると、ユーザはウィジェットをクリックして、選択されたウェイジェットを形成し、残りのすべてのウィジェットをそれぞれ互いに相対的な以前の場所に戻す。しかし、マッシュアップは選択されたウィジェットの位置へとスクロールされる。
【００４７】
図３を参照すると、本開示の一実施形態に従ったマッシュアップのブロック図が提示される。マッシュアップ３００は、初期状態での図２のシステム２００の使用例である。
【００４８】
オブジェクト３０２は、ユーザによる視覚的な検索に使用可能ないくつかのオブジェクトを表す。オブジェクト３０２は、典型的には、ユーザ・インターフェースの表示域内にオリジナル形式で表示可能なより多くのオブジェクトを表す。可視領域３０４は、ユーザが見るために使用可能な表示域を定義する。オリジナル形式では、オブジェクト３０２は使用可能な領域よりも多くの領域を消費する。典型的には、ユーザは、すべてのオブジェクトを見るためにディスプレイを通してオブジェクトをスクロールしなければならなくなる。
【００４９】
図４を参照すると、本開示の一実施形態に従ったマッシュアップのブロック図が提示される。マッシュアップ４００は、一時的状態での図２のシステム２００の使用例である。
【００５０】
パイルされたオブジェクト４０２は、ユーザによる視覚的な検索に使用可能ないくつかのオブジェクトを表す。パイルされたオブジェクト４０２は、ユーザ・インターフェースの表示域内にパイルされた形式で表示可能なオブジェクトを表す。可視領域３０４は、ユーザが見るために使用可能な表示域をこれまでのように定義する。オリジナル形式では、図３のオブジェクト３０２は使用可能な領域よりも多くの領域を使用する。パイルされたオブジェクト４０２は、図２のシステム２００のコレクタ２０４によるオブジェクトの配置を表す。ユーザは、たとえばツール・バー上のボタンなどのジェスチャ、または、図２のシステム２００の制御アイテム２０２のコンテキスト・メニュー・アイテム実装を通じて視覚的な検索機能を呼び出した。
【００５１】
ウィジェット間、パイルされたオブジェクト４０２間のすべての距離が短くなるため、イメージは可視領域３０４内の１画面上に収められるが、イメージの相対的な方向は同じままである。この配置は、ダッシュボードを現在の画面上に圧縮する効果を有する。しかしウィジェットのサイズは変更されない。各ウィジェットは、透明性を持つように作成され得るため、ウィジェット下部の輪郭を見ることができる。使用されたオブジェクトを表すために、ウィジェット、オブジェクト、およびイメージを相互に交換可能に使用することができる。ウィジェットは典型的にはダッシュボードと共に使用される用語であるが、オブジェクトはより一般的な用語であり、どちらかがユーザ・インターフェース内に表示されるイメージとして表される。
【００５２】
ホット・スポット４０４は、収集プロセス中にウィジェットまたはオブジェクト・イメージの一部に追加される。ホット・スポットは、ユーザがオブジェクトの視覚的検索を実行することによって、個々のイメージ選択を実行可能にする。この例では、ホット・スポットはオブジェクトを表す各イメージの左上隅に表示される。イメージ内のホット・スポットの位置は変更可能である。
【００５３】
図５を参照すると、本開示の一実施形態に従ったマッシュアップのブロック図が提示される。マッシュアップ５００は、一時的状態のイメージ識別段階での図２のシステム２００の使用例である。
【００５４】
ダッシュボードを使用する例では、ユーザがパイルされたオブジェクトを含む可視領域３０４をトラバースし、ウィジェットのホット・スポット上でマウスを動かした（ローリングした）場合、他のウィジェットの裏側に配置されたいずれのウィジェットも、左上隅で動かされると（またはウィジェットの一部上の他のホット・スポットが使用可能である）前面にポップアップして、識別されたオブジェクト５０２を形成する。この動作は、下になるオブジェクト５０４の例などの、ウィジェットの左上隅が他のウィジェットの裏に隠れた場合も発生する。下になるオブジェクト５０４の下になるホット・スポット５０６（ホット・スポット４０４の黒とは対照的に明るい灰色を使用して示される）は、識別されたオブジェクト５０２またはパイルされたオブジェクト４０２の高位層にある他のウィジェットなどのウィジェットの、裏およびその重なりを通して見える。マッシュアップ５００内に示されたウィジェットは重なり合っており、ある程度の透明性を提供することで、ユーザはこのウィジェットを通して見ることができる。このようにしてユーザは、マッシュアップ内のすべてのウィジェットを即時に読み進めることができる。
【００５５】
識別されたオブジェクト５０２などのオブジェクトがグループ内の他のオブジェクトを含む場合、このグループは開かれて前面に表示される。内部にあるオブジェクトの存在を示すために、他のオブジェクトを含むオブジェクトのイメージ上にしるしを配置することができる。たとえば識別されたオブジェクト５０２は、このオブジェクトがリポート・ツール・セットなどのオブジェクトの容器であることを示すためのフラグを有することができる。
【００５６】
図６を参照すると、本開示の一実施形態に従ったマッシュアップのブロック図が提示される。マッシュアップ６００は、選択されたオブジェクト段階での図２のシステム２００の使用例である。
【００５７】
ユーザが図５の識別されたオブジェクト５０２などの所望のウィジェットを見つけると、ユーザは選択されたオブジェクト６０２を形成するように選択する。マッシュアップは以前の状態に戻り、マッシュアップは可視領域３０４内で所望のウィジェットへとスクロールされる。オブジェクト３０２は以前のオリジナル状態へと復元され、もはやパイルされていない。可視領域３０４は、選択されたオブジェクト６０２に隣接する使用可能なオブジェクトの一部のみを表示する。一時的状態はもはや有効ではない。
【００５８】
図７を参照すると、本開示の一実施形態に従ったマッシュアップのブロック図が提示される。マッシュアップ７００は、ホット・スポット・サムネイル７０２内などのホット・スポットを含むサムネイルの使用例である。
【００５９】
図２のシステム２００のイメージ・マニピュレータ２０８は、オプションで、各イメージに関連付けられたホット・スポット・サムネイル７０２を作成する。以前の例では、圧縮モードでウィジェットの左上隅に加えられたサムネイルは、ユーザが左上隅の上でマウスをローリングする前にウィジェットを識別するのに役立つ。サムネイルは、ユーザにさらなる視覚的なキュー（cue）を提供する。サムネイルは、必要な場合に、それぞれのオブジェクトに関連付けられた情報から生成可能であるか、またはストレージ位置から取り出すことが可能である。
【００６０】
図８を参照すると、本開示の一実施形態に従った視覚的検索プロセスの流れ図が提示されている。プロセス８００は図２のシステム２００の使用例である。
【００６１】
プロセス８００が開始され（ステップ８０２）、一時的モードをオンに設定する（ステップ８０４）。一時的モードは視覚的検索プロセスの間に一時的に使用され、他の期間中も有効なままであることは意図されていない。
【００６２】
プロセス８００は、事前に定義された表示域内にオブジェクト・パイルを形成するためにオブジェクトを収集する（ステップ８０６）。オブジェクトはユーザが使用可能であり、典型的には、使用可能な表示域の可視領域を超える表示機能を必要とするいくつかのオブジェクトを含む。この収集動作によって、オブジェクトのサイズまたはオブジェクトの相対的な配向を変更することなく、オブジェクトがオブジェクト・パイルに配列される。たとえばオブジェクトはサイズ変更されず、スタックまたはカスケード様式で任意に配列されることもない。
【００６３】
パイル内のオブジェクトの事前定義された部分にセレクタがあるかどうかが決定される（ステップ８０８）。典型的には、セレクタはオブジェクトの一部の上を移動するためのロール・オーバ動作で使用されるマウスであるが、スタイラス、指、またはポインティング・デバイスを含む、ユーザ・インターフェースのイメージの選択に好適な他の手段とすることができる。オブジェクトの事前定義された部分とは、典型的にはホット・スポットであり、視覚的キューとして支援するためのオブジェクトのサムネイルを含むこともできる。セレクタがパイル内のオブジェクトの事前定義された部分にないものと決定された場合、プロセス８００はループ・バックして、前述のようにステップ８０８を実行する。
【００６４】
オブジェクト・パイル内のオブジェクトの事前に定義された部分にセレクタが検出されたことに応答して、プロセス８００は、事前に定義された表示域の前面にオブジェクトを提示する（ステップ８１０）。オブジェクトは、通常のフルサイズ配向で、事前に定義された表示域内の他のオブジェクトのトップ、すなわち前面に表示される。ユーザは識別されたオブジェクトまたはパイルからの他のオブジェクトを使用することを選択するオプションを有するため、オブジェクトは一時的に表示される。
【００６５】
選択されたオブジェクトを形成するために前景内のオブジェクトが選択されるかどうかに関して決定される（ステップ８１２）。選択されたオブジェクトを形成するために前景内のオブジェクトが選択されないものと決定された場合、プロセス８００はループ・バックして前述のようにステップ８０８を実行する。選択されたオブジェクトを形成するために前景内のオブジェクトが選択されたものと決定された場合、プロセス８００は、選択されたオブジェクトをビュー内でスクロールしてパイルをオリジナル状態に復元し（ステップ８１４）、その後プロセス８００は終了する（ステップ８１６）。パイルをオリジナル状態に復元することで、プロセスの一時的モードは終了する。オブジェクトは、オブジェクト・パイルが作成される前に存在した物理レイアウトに戻る。
【００６６】
図９を参照すると、本開示の一実施形態に従った視覚的検索プロセスの流れ図が提示されている。プロセス９００は図２のシステム２００の使用例であり、図８のプロセス８００の変形である。
【００６７】
プロセス９００が開始され（ステップ９０２）、一時的モードをオンに設定する（ステップ９０４）。一時的モードは視覚的検索プロセスの間に一時的に使用され、他の期間中も有効なままであることは意図されていない。
【００６８】
プロセス９００は図８のプロセス８００とは異なり、フィルタを選択するかどうかを決定する（ステップ９０６）ことによってオブジェクトをフィルタリングするための機能を提供する。フィルタを選択することが決定された場合、プロセス９００は、フィルタリングされたオブジェクトを形成するために、選択されたフィルタをオブジェクトに適用する（ステップ９０８）。
【００６９】
プロセス９００は、事前に定義された表示域内にオブジェクト・パイルを形成するためにフィルタリングされたオブジェクトを収集する（ステップ９１０）。オブジェクトはユーザが使用可能であり、典型的には、使用可能な表示域の可視領域を超える表示機能を必要とするいくつかのオブジェクトを含む。この収集動作によって、オブジェクトのサイズまたはオブジェクトの相対的な配向を変更することなく、フィルタリングされた使用可能なオブジェクトのサブセットがフィルタリングされたオブジェクトのパイルに配列される。たとえばオブジェクトはサイズ変更されず、スタックまたはカスケード様式で任意に配列されることもない。
【００７０】
セレクタが、パイル内のオブジェクトの事前に定義された部分の上にあるかどうかが決定される（ステップ９１２）。セレクタは、オブジェクトの一部の上を移動するためのロール・オーバ動作で使用される典型的なマウスであるが、スタイラス、指、またはポインティング・デバイスを含む、ユーザ・インターフェースのイメージの選択に好適な他の手段とすることができる。オブジェクトの事前に定義された部分とは、典型的にはホット・スポットであり、視覚的キューとして支援するためのオブジェクトのサムネイルを含むこともできる。セレクタがパイル内のオブジェクトの事前に定義された部分の上にないものと決定された場合、プロセス９００はループ・バックして、前述のようにステップ９１２を実行する。
【００７１】
セレクタが、オブジェクト・パイル内のオブジェクトの事前に定義された部分の上で検出されたことに応答して、プロセス９００は、事前に定義された表示域の前景にオブジェクトを提示する（ステップ９１４）。オブジェクトは、通常のフルサイズ配向で、事前に定義された表示域内の他のオブジェクトのトップ、すなわち前景に表示される。ユーザは識別されたオブジェクトまたはパイルからの他のオブジェクトを使用することを選択するオプションを有するため、オブジェクトは一時的に表示される。
【００７２】
選択されたオブジェクトを形成するために前景内のオブジェクトが選択されるかどうかに関して決定される（ステップ９１６）。選択されたオブジェクトを形成するために前景内のオブジェクトが選択されないものと決定された場合、プロセス９００はループ・バックして前述のようにステップ９１２を実行する。選択されたオブジェクトを形成するために前景内のオブジェクトが選択されたものと決定された場合、プロセス９００は、選択されたオブジェクトをビュー内でスクロールしてパイルをオリジナル状態に復元し（ステップ９１８）、その後プロセス９００は終了する（ステップ９２０）。パイルをオリジナル状態に復元することで、プロセスの一時的モードは終了する。オブジェクトは、フィルタリングされたオブジェクトのパイルが作成される前に存在した物理レイアウトに戻る。
【００７３】
図１０を参照すると、本開示の一実施形態に従った視覚的検索プロセスの流れ図が提示されている。プロセス１０００は図２のシステム２００の使用例であり、図８のプロセス８００の変形である。プロセス１０００は図９のプロセス９００の変形とみなすこともできる。プロセス８００、プロセス９００、およびプロセス１０００の様々なプロセスは、組み合わせることもできる。
【００７４】
プロセス１０００が開始され（ステップ１００２）、一時的モードをオンに設定する（ステップ１００４）。一時的モードは視覚的検索プロセス中にのみ一時的に使用され、他の期間中も有効なままであることは意図されていない。
【００７５】
プロセス１０００は図８のプロセス８００とは異なり、他のオブジェクトを含むオブジェクトを使用するための機能を提供する。プロセス１０００は、事前に定義された表示域内にオブジェクト・パイルを形成するためにフィルタリングされたオブジェクトを収集する（ステップ１００６）。オブジェクトはユーザが使用可能であり、典型的には、使用可能な表示域の可視領域を超える表示機能を必要とするいくつかのオブジェクトを含む。この収集動作によって、オブジェクトのサイズまたはオブジェクトの相対的な配向を変更することなく、フィルタリングされた使用可能なオブジェクトのサブセットがフィルタリングされたオブジェクトのパイルに配列される。たとえばオブジェクトはサイズ変更されず、スタックまたはカスケード様式で任意に配列されることもない。
【００７６】
セレクタが、パイル内のオブジェクトの事前に定義された部分の上にあるかどうかが決定される（ステップ１００８）。セレクタは、オブジェクトの一部の上を移動するためのロール・オーバ動作で使用される典型的なマウスであるが、スタイラス、指、またはポインティング・デバイスを含む、ユーザ・インターフェースのイメージの選択に好適な他の手段とすることができる。オブジェクトの事前に定義された部分とは、典型的にはホット・スポットであり、視覚的キューとして支援するためのオブジェクトのサムネイルを含むこともできる。セレクタがパイル内のオブジェクトの事前に定義された部分の上にないものと決定された場合、プロセス１０００はループ・バックして、前述のようにステップ１００８を実行する。
【００７７】
セレクタが、オブジェクト・パイル内のオブジェクトの事前に定義された部分の上で検出されたことに応答して、プロセス１０００は、オブジェクトがオブジェクトのグループであるかどうかを決定する（ステップ１０１０）。たとえばプロセス１０００は、オブジェクトに関連付けられたプロパティ・ファイル内のしるしを使用して決定することができる。
【００７８】
オブジェクトがオブジェクトのグループであることが決定された場合、プロセス１０００は事前に定義された表示域の前景のオブジェクトのグループ内にオブジェクトを提示する（ステップ１０１２）。プロセス１０００はループ・バックして前述のようにステップ１００８を実行する。オブジェクトがオブジェクトのグループではないものと決定された場合、プロセス１０００は事前に定義された表示域内の前景にオブジェクトを提示する（ステップ１０１４）。オブジェクトは、通常のフルサイズ配向で、事前に定義された表示域内の他のオブジェクトのトップ、すなわち前景に表示される。ユーザは識別されたオブジェクトまたはパイルからの他のオブジェクトを使用することを選択するオプションを有するため、オブジェクトは一時的に表示される。
【００７９】
選択されたオブジェクトを形成するために前景内のオブジェクトが選択されるかどうかに関して決定される（ステップ１０１６）。選択されたオブジェクトを形成するために前景内のオブジェクトが選択されないものと決定された場合、プロセス１０００はループ・バックして前述のようにステップ１００８を実行する。選択されたオブジェクトを形成するために前景内のオブジェクトが選択されたものと決定された場合、プロセス１０００は、選択されたオブジェクトをビュー内でスクロールしてパイルをオリジナル状態に復元し（ステップ１０１８）、その後プロセス１０００は終了する（ステップ１０２０）。パイルをオリジナル状態に復元することで、プロセスの一時的モードは終了する。オブジェクトは、フィルタリングされたオブジェクトのパイルが作成される前に存在した物理レイアウトに戻る。
【００８０】
このようにして、例示的一実施形態では、視覚的検索のためのコンピュータ実装プロセスは、一時的モードをオンに設定し、オブジェクト・パイルを形成するためにオブジェクトを収集し、ここで各オブジェクトは事前に定義された可視部分を有し、さらに、セレクタがオブジェクト・パイル内のオブジェクトの事前に定義された部分の上にあるかどうかを決定する。セレクタが、オブジェクト・パイル内のオブジェクトの事前に定義された部分の上で検出されたことに応答して、コンピュータ実装プロセスは、オブジェクトを前景内に提示し、選択されたオブジェクトを形成するために前景内のオブジェクトが選択されるかどうかを決定する。選択されたオブジェクトを形成するために前景内のオブジェクトが選択された旨の決定に応答して、コンピュータ実装プロセスは、選択されたオブジェクトを事前に定義された表示域内のビューにスクロールして、オブジェクト・パイルをオリジナルの状態に復元する。
【００８１】
図面内の流れ図およびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示す。この点で、流れ図またはブロック図内の各ブロックは、指定された論理機能を実装するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコードの一部を表すことができる。いくつかの代替実装では、ブロック内に示された機能は、図面に示された順序とは異なる順序で実行してもよいことにも留意されたい。たとえば、連続して示される２つのブロックは、実際には、含まれる機能に応じて、ほぼ同時に実行可能であるか、またはブロックは時折逆の順序で実行可能である。ブロック図あるいは流れ図またはその両方の各ブロック、ならびにブロック図あるいは流れ図またはその両方におけるブロックの組み合わせは、指定された機能または動作を実行する特定用途向けハードウェア・ベース・システム、あるいは特定用途向けハードウェアおよび命令の組み合わせによって、実装可能であることにも留意されよう。
【００８２】
以下の特許請求の範囲におけるすべての手段またはステップならびに機能要素の対応する構造、材料、動作、および等価物は、具体的に請求された他の請求要素と組み合わせて機能を実行するための、任意の構造、材料、または動作を含むことが意図される。本発明の説明は、例示および説明の目的で提示されてきたが、開示された形での本発明を網羅することまたはそれに限定することは意図されていない。当業者であれば、本発明の範囲および趣旨を逸脱することなく多くの修正および変形が明らかとなろう。実施形態は、本発明の原理および実際の適用範囲を最も良く説明するため、ならびに、他の当業者が企図された特定の用途に好適な様々な修正を伴う様々な実施形態について本発明を理解できるようにするために、選択および説明されたものである。
【００８３】
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアおよびソフトウェアの両方の要素を含む実施形態の形を取ることができる。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード、および当業者によって理解可能な他のソフトウェア媒体を含むがこれらに限定されない、ソフトウェア内に実装される。
【００８４】
本発明について、完全に機能しているデータ処理システムとの関連において説明してきたが、当業者であれば、本発明の諸プロセスが、命令のコンピュータ読み取り可能媒体の形および様々な形で配布可能であること、ならびに、本発明が、その配布の実施に実際に使用される特定タイプの信号担持媒体に無関係に等しく適用されることを理解されるであろうことに留意されたい。コンピュータ読み取り可能媒体の例には、フレキシブルディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの、記録可能タイプ媒体、ならびに、デジタルおよびアナログの通信リンク、有線、またはたとえば無線周波数および光波伝送などの伝送形態を使用する無線の通信リンクなどの、伝送タイプ媒体が含まれる。コンピュータ読み取り可能媒体は、特定のデータ処理システムで実際に使用する際に復号される符号化形式の形を取ることができる。
【００８５】
プログラム・コードの格納あるいは実行またはその両方に好適なデータ処理システムは、システム・バスを介してメモリ要素に直接または間接的に結合された少なくとも１つのプロセッサを含むことになる。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量ストレージ、および、実行中に大容量ストレージからコードを取り出さなければならない回数を削減するために少なくとも一部のプログラム・コードの一時ストレージを提供するキャッシュ・メモリを、含むことができる。
【００８６】
入力／出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない）は、直接、または介在するＩ／Ｏコントローラを介して、システムに結合することができる。
【００８７】
データ処理システムを、介在する専用または公衆のネットワークを介して、他のデータ処理システムあるいはリモートのプリンタまたはストレージ・デバイスに結合できるようにするために、ネットワーク・アダプタをシステムに結合することもできる。モデム、ケーブル・モデム、およびイーサネット・カードは、現在使用可能なタイプのネットワーク・アダプタのごく一部である。
【００８８】
本発明の説明は、例示および説明の目的で提示されてきたものであり、開示された実施形態の形を網羅することまたはそれらに限定されることを意図するものではない。当業者であれば、多くの修正および変形が明らかとなろう。実施形態は、本発明の原理、実際の適用範囲を最も良く説明するため、ならびに、他の当業者が企図された特定の用途に好適な様々な修正を伴う様々な実施形態について本発明を理解できるようにするために、選択および説明されたものである。
【符号の説明】
【００８９】
１００    データ処理システム
１０４    プロセッサ・ユニット
１０６    メモリ
１０８    永続ストレージ
１１０    通信ユニット
１１２    入力／出力ユニット
１１４    ディスプレイ
１１６    ストレージ・デバイス
１１８    プログラム・コード
２００    システム
２０２    制御アイテム
２０４    状態インジケータ
２０６    コレクタ
２０８    イメージ・マニピュレータ
２１０    フィルタ・セット
３００，４００、５００、６００、７００    マッシュアップ
３０２    オブジェクト
３０４    可視領域
４０４    ホット・スポット
【図１】
0005808260.tif 000002
【図２】
0005808260.tif 000003
【図８】
0005808260.tif 000004
【図９】
0005808260.tif 000005
【図１０】
0005808260.tif 000006
【図３】
0005808260.tif 000007
【図４】
0005808260.tif 000008
【図５】
0005808260.tif 000009
【図６】
0005808260.tif 000010
【図７】
0005808260.tif 000011