【文献】
Benjamin B. Bederson, Jon Meyer, Lance Good,Jazz: An Extensible Zoomable User Interface Graphics Toolkit in Java,UIST '00 Proceedings of the 13th annual ACM symposium on User interface software and technology,2000年,Pages 171-180
【文献】
旭敏之,仙田修司,磯谷亮輔,モバイル端末のためのユーザインタラクション技術(前編)―表示対話技術―,情報処理,日本,社団法人情報処理学会,2007年 6月15日,第48巻,第6号,第624〜630ページ
【文献】
ブライアン・カーニハンほか,ビューティフルコード,株式会社オライリー・ジャパン,2008年 4月22日,初版,第199〜229ページ
【文献】
佐久間敦,Concept Pad System:Zoomable User Interfaceによる階層型コンテンツのための閲覧/作成ツール,レクチャーノート/ソフトウェア学 23 インタラクティブシステムとソフトウェアVII,日本,株式会社近代科学社,1999年12月20日,第65〜70ページ
(58)【調査した分野】(Int.Cl.,DB名)
前記1又はそれ以上のメソッドの中の少なくとも1つは、前記複数のビューを夫々、1の前記ビューを他の前記ビューにより置換する部分として、整列させるよう構成される、
請求項1に記載の方法。
【発明を実施するための形態】
【0006】
詳細な説明は、添付の図面を参照して記載される。図中、参照符号の左端の数字は、その参照符号が最初に現れる図を特定する。明細書及び図面における異なる事例での同じ参照符号は、同様の又は同じ事項を示してよい。
【0007】
[概要]
平常通りのユーザでさえ典型的な日においてアクセスするコンテンツの量は、増加の一途をたどる。結果として、このようなコンテンツをナビゲートするために利用されてきた従来の技術は過度の負担がかかることとなり、ユーザのフラストレーションをもたらす。
【0008】
以下の説明では、セマンティックズーム技術が記載される。1又はそれ以上の実施において、技術は、ビュー内をナビゲートするために使用されてよい。セマンティックズームによれば、ユーザは、望まれるようにビュー内の場所に“ジャンプ”することによってコンテンツをナビゲートすることができる。加えて、それらの技術は、ユーザが、所与の時点にユーザインターフェースにおいてどれくらいのコンテンツが表されるのかと、コンテンツを記述するために提供される情報の量とを調整することを可能にしてよい。従って、それは、セマンティックズームを呼び出してジャンプし、次いでそれらのコンテンツに戻るための確かさをユーザに提供してよい。更に、セマンティックズームは、コンテンツのオーバービューを提供するために使用されてよく、これは、コンテンツをナビゲートするときにユーザの信頼を高める助けとなり得る。セマンティックズームに関する更なる説明は、以下の項目に関連して見つけられ得る。
【0009】
以下の説明において、例となる環境が最初に説明され、この環境はここで記載されるセマンティックズーム技術を用いるよう動作する。ジェスチャと、ジェスチャ及び他の入力を伴うプロシージャとに関する例示が次いで記載され、これらは、上記の例となる環境において及び他の環境において用いられてよい。然るに、例となる環境は、例となる技術を実行することに制限されない。同様に、例となるプロシージャは、例となる環境における実施に制限されない。
【0010】
[例となる環境]
図1は、ここで記載されるセマンティックズーム技術を用いるよう動作する実施例における環境100の例示である。例示される環境100は、様々な方法において構成され得るコンピュータ装置102の例を含む。例えば、コンピュータ装置102は、プロセッシングシステム及びメモリを有するよう構成されてよい。よって、コンピュータ装置102は、
図19及び20に関して更に記載されるように、従来のコンピュータ(例えば、デスクトップ・パーソナルコンピュータ、ラップトップ・コンピュータ、等)、移動局、エンターテイメント機器、テレビ受像器と通信上結合されるセットトップボックス、無線電話機、ネットブック、ゲーム機等として構成されてよい。
【0011】
従って、コンピュータ装置102は、十分なメモリ及びプロセッサリソースを備えた完全リソース装置(例えば、パーソナルコンピュータ、ゲーム機)から、制限されたメモリ及び/又はプロセッシングリソースを備えた低リソース装置(例えば、従来のセットトップボックス、携帯型ゲーム機)まで及んでよい。コンピュータ装置102はまた、コンピュータ装置102に1又はそれ以上の動作を実行させるソフトウェアに関係してよい。
【0012】
コンピュータ装置102は、入力/出力モジュール104を含むよう表されている。入力/出力モジュール104は、コンピュータ装置102によって検出される入力に関する機能を表す。例えば、入力/出力モジュール104は、コンピュータ装置102で実行されるアプリケーション106へコンピュータ装置102の機能を取り出すようオペレーティングシステムの部分として構成されてよい。
【0013】
入力/出力モジュール104は、例えば、ユーザの手110によるディスプレイ装置108とのインタラクション(例えば、タッチスクリーン機能を用いる。)により検出されるジェスチャを認識するよう構成されてよい。よって、入力/出力モジュール104は、ジェスチャを特定し、ジェスチャに対応する実行されるべき動作を引き起こす機能を表してよい。ジェスチャは、様々な異なる方法において入力/出力モジュール104によって特定されてよい。例えば、入力/出力モジュール104は、タッチスクリーン機能により、コンピュータ装置102のディスプレイ装置108に近接するユーザの手110の指のようなタッチ入力を認識するよう構成されてよい。
【0014】
タッチ入力はまた、そのタッチ入力を、入力/出力モジュール104によって認識される他のタッチ入力と区別するために使用可能な属性(例えば、動き、選択点、等)を含むと認識されてよい。この区別は、次いで、タッチ入力からのジェスチャと、結果として、ジェスチャの識別に基づき実行されるべき動作とを特定する基礎の役割を果たしてよい。
【0015】
例えば、ユーザの手110の指は、ディスプレイ装置108に近接して置かれ、左に動かされる(これは矢印によって表される。)ように表されている。然るに、ユーザの手110の指及びその後の動きの検出は、入力/出力モジュール104によって、動きの方向においてコンテンツの表現をナビゲートする“パン”ジェスチャとして認識されてよい。表される例では、表現は、コンピュータ装置102のファイルシステムにおけるコンテンツの項目を表すタイルとして構成される。項目は、コンピュータ装置102の、又はネットワークを介して遠隔からアクセス可能な、又はコンピュータ装置102へ通信上結合される装置に相当する、等のメモリにおいて局所的に記憶されてよい。このように、様々な異なるタイプのジェスチャが、単一のタイプの入力(例えば、上記のドラッグ・アンド・ドロップジェスチャのようなジェスチャ)及び複数のタイプの入力(例えば、複合ジェスチャ)を伴うジェスチャから認識されるジェスチャのように、入力/出力モジュール104によって認識されてよい。
【0016】
例えば、キーボード、カーソル制御装置(例えば、マウス)、スタイラス、トラックパッド、等からのような様々な他の入力も入力/出力モジュール104によって検出され処理されてよい。このようにして、アプリケーション106は、如何にして動作がコンピュータ装置102によって実施されるかを“気付く”ことなく機能してよい。以下の説明はジェスチャ、キーボード、及びカーソル制御装置の各入力の具体例を記載するが、それらは、ここで記載されるセマンティックズーム技術による使用のために考えられる様々な異なる例の2,3にすぎないことは明らかである。
【0017】
入力/出力モジュール104は更に、セマンティックズームモジュール114を有するよう表されている。セマンティックズームモジュール114は、ここで記載されるセマンティックズーム技術を用いるコンピュータ装置102の機能を表す。データをナビゲートするのに利用されてきた従来の技術は、タッチ入力を用いて実施するには困難であり得る。例えば、ユーザが従来のスクロールバーにより特定のコンテンツ片を見つけることは困難である。
【0018】
セマンティックズーム技術はビュー内をナビゲートするために使用されてよい。セマンティックズームによれば、ユーザは、望まれるようにビュー内の場所に“ジャンプ”することによってコンテンツをナビゲートすることができる。加えて、セマンティックズームは、コンテンツの基底構造を変更することなく利用されてよい。従って、それは、セマンティックズームを呼び出してジャンプし、次いでそれらのコンテンツに戻るための確かさをユーザに提供してよい。更に、セマンティックズームは、コンテンツのオーバービューを提供するために使用されてよく、これは、コンテンツをナビゲートするときにユーザの信頼を高める助けとなり得る。セマンティックズームモジュール114は、複数のセマンティックビューをサポートするよう構成されてよい。更に、セマンティックズームモジュール114は、上述されたようにセマンティックスワップがトリガされるとセマンティックビューが表示される準備ができているように、“前もって”セマンティックビューを生成してよい。
【0019】
ディスプレイ装置108は、セマンティックビューにおけるコンテンツの複数の表現を表示するよう表されている。セマンティックビューは、以下の説明において「ズームアウトビュー」とも呼ばれることがある。表現は、表される例ではタイルとして構成される。セマンティックビューにおけるタイルは、アプリケーションを起動するのに使用されるタイルを含みうる開始スクリーンのような他のビューでは、タイルと異なるよう構成されてよい。例えば、それらのタイルのサイズは、それらの“通常のサイズ”の27.5パーセントで設定されてよい。
【0020】
1又はそれ以上の実施において、このビューは、開始スクリーンのセマンティックビューとして構成されてよい。このビューにおけるタイルは、通常のビューにおける色ブロックと同じである色ブロックから構成されてよいが、通知の表示(例えば、天気を含むタイルに関する現在の温度)のためのスペースを含まない。なお、他の例も考えられる。よって、タイル通知更新は、ユーザがセマンティックズーム、すなわち、“ズームインされたビュー”を脱する場合に、後の出力のために遅延されバッチされてよい。
【0021】
新しいアプリケーションがインストールされるか又は削除される場合に、セマンティックズームモジュール114は、以下で更に記載されるように、“ズーム”のレベルにかかわらずグリッドから対応するタイルを追加又は削除してよい。加えて、セマンティックズームモジュール114は次いで、タイルを然るべく並び替えてよい。
【0022】
1又はそれ以上の実施において、グリッド内のグループの形状及びレイアウトは、“通常の”ビュー(例えば、100パーセントのビュー)において見られるようにセマンティックビューにおいて不変なままである。例えば、グリッドにおける行の数は同じままであってよい。しかし、より多くのタイルが見られるので、通常のビューよりも多くのタイル情報がセマンティックズームモジュール114によってロードされてよい。それら及び他の技術の更なる説明は、
図2に関して始まりを見つけられ得る。
【0023】
概して、ここで記載される機能のいずれもソフトウェア、ファームウェア、ハードウェア(例えば、固定ロジック回路)、又はそれらの実施の組み合わせにより実施され得る。ここで使用される語「モジュール」、「機能」及び「ロジック」は、概して、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせを表す。ソフトウェア実施の場合において、モジュール、機能、又はロジックは、プロセッサ(例えば、CPU(複数を含む。))で実行される場合に特定のタスクを実行するプログラムコードを表す。プログラムコードは、1又はそれ以上のコンピュータ可読メモリ装置において記憶され得る。以下で記載されるセマンティックズーム技術の特徴はプラットフォームに依存しない。これは、当該技術が様々なプロセッサを有する様々な市販のコンピュータプラットフォームで実施されてよいことを意味する。
【0024】
例えば、コンピュータ装置102はまた、コンピュータ装置102のハードウェアに、例えば、プロセッサ、機能ブロック等の動作を実行させるエンティティ(例えば、ソフトウェア)を有してよい。例えば、コンピュータ装置102は、コンピュータ装置及び特にコンピュータ装置102のハードウェアに動作を実行させる命令を保持するよう構成され得るコンピュータ可読媒体を有してよい。よって、命令は、動作を実行するようハードウェアを設定するように機能し、このようにして、機能を実行するためのハードウェアの変形をもたらす。命令は、様々な異なる構成を通じてコンピュータ装置102によってコンピュータ可読媒体によって提供されてよい。
【0025】
コンピュータ可読媒体の1つのそのような構成は信号搬送媒体であり、よって、例えば、ネットワークを介するように、コンピュータ装置のハードウェアへ命令を(搬送波として)送信するよう構成される。コンピュータ可読媒体はまた、コンピュータ可読記憶媒体として構成されてよく、よって、信号搬送媒体ではない。コンピュータ可読記憶媒体の例には、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、光ディスク、フラッシュメモリ、ハードディスクメモリ、並びに磁気、光、及び他の技術を用いて命令及び他のデータを記憶する他のメモリ装置がある。
【0026】
図2は、ジェスチャが潜在的なコンテンツのビュー間をナビゲートするために利用されるセマンティックズームの実施例200を表す。ビューは、第1、第2及び第3の段階202、204、206を用いてこの実施例において表される。第1の段階202で、コンピュータ装置102は、ディスプレイ装置108でユーザインターフェースを表示するよう表されている。ユーザインターフェースは、コンピュータ装置102のファイルシステムを介してアクセス可能な項目の表現を含み、その表される例は、文書及び電子メール並びに対応するメタデータを含む。なお、装置を含む多種態様な他のコンテンツが上述されたようにユーザインターフェースにおいて表されてよく、それらはその場合にタッチスクリーン機能により検出されてよいことは明らかである。
【0027】
ユーザの手110は、表現のビューを“ズームアウト”するよう“ピンチ”ジェスチャを開始するように第1の段階202で表されている。ピンチジェスチャは、この場合に、ディスプレイ装置108に近接してユーザの手110の二本の指を置き、それらを互いに向かって動かすことによって開始され、その場合に、そのジェスチャは、コンピュータ装置102のタッチスクリーン機能により検出されてよい。
【0028】
第2の段階204で、ユーザの指の接触点は、移動の方向を示すよう矢印を伴った破線円を用いて表されている。表されるように、項目の個々の表現としてアイコン及びメタデータを含む第1の段階202のビューは、第2の段階204において単一表現による項目のグループのビューへ遷移される。つまり、項目の各グループは単一表現を有する。グループ表現は、グループを形成する基準(例えば、共通の特徴)を示すヘッダを含み、相対的な集団の大きさを示すサイズを有する。
【0029】
第3の段階206で、接触点は、項目のグループのより多くの表現がディスプレイ装置108で同時に表示され得るように、第2の段階204と比較してより一層近くに一緒に動いている。ジェスチャを解放すると、ユーザは、パンジェスチャ、カーソル制御装置のクリック・アンド・ドラッグ動作、キーボードの1又はそれ以上のキー、等のような様々な技術により表現をナビゲートしてよい。このように、ユーザは、表現において所望の細かさの程度まで容易にナビゲートし、当該程度において表現をナビゲートする等して、関心のあるコンテンツを見つけることができる。それらのステップは、表現のビューを“ズームイン”するよう逆にされてよい。例えば、接触点は、セマンティックズームにおいて表示する詳細の程度を制御するよう“逆ピンチジェスチャ”として互いから離されてよい。
【0030】
このように、上記のセマンティックズーム技術はセマンティックスワップを伴った。セマンティックスワップは、ズーム“イン”及び“アウト”するときのコンテンツのビュー間のセマンティック遷移を指す。セマンティックズーム技術は更に、夫々のビューのズームイン/アウトによって遷移に入ることで経験を高めることができる。ピンチジェスチャが記載されたが、この技術は様々な異なる入力を用いて制御されてよい。例えば、“タップ”ジェスチャが利用されてもよい。タップジェスチャにおいて、タップは、例えば、1又はそれ以上の表現をタップすることによりズーム“アウト”及び“イン”されるように、ビューにビュー間を遷移させてよい。この遷移は、上述されたようにピンチジェスチャが利用されたのと同じ遷移アニメーションを使用してよい。
【0031】
可逆のピンチジェスチャがまた、セマンティックズームモジュール114によってサポートされてよい。この例では、ユーザはピンチジェスチャを開始し、次いで、逆方向において自身の指を動かすことによってジェスチャをキャンセルすると決定してよい。これに応じて、セマンティックズームモジュール114は、キャンセルシナリオをサポートし、前のビューへ遷移してよい。
【0032】
他の例では、セマンティックズームはまた、ズームイン及びアウトするようスクロールホイール及び“コントロール(ctrl)”キーを用いて制御されてよい。他の例では、キーボードにおける“ctrl”及び“プラス(+)”又は“マイナス(-)”キーの組み合わせが夫々、ズームイン又はアウトするために使用されてよい。様々な他の例も考えられる。
【0033】
[閾値]
セマンティックズームモジュール114は、ここで記載されるセマンティックズーム技術とのインタラクションを管理するよう様々な異なる閾値を用いてよい。例えば、セマンティックズームモジュール114は、例えば、第1及び第2の段階202、204の間でビューのスワップが起こるズームレベルを特定するために、セマンティック閾値を利用してよい。1又はそれ以上の実施において、これは、例えば、ピンチジェスチャにおける接触点の移動の量に依存した距離に基づく。
【0034】
セマンティックズームモジュール114は、入力が終了される場合にどのズームレベルでビューを“スワップ”すべきかを決定するために直接操作閾値を用いてもよい。例えば、ユーザは、所望のズームレベルへナビゲートするよう、上述されたピンチジェスチャを提供してよい。ユーザは次いで、そのビューにおけるコンテンツの表示をナビゲートするようジェスチャを解放してよい。よって、直接操作閾値は、どのレベルにビューが依然としてそのナビゲーションをするようあるべきかと、セマンティック“スワップ”の間で実行されるズームの程度とを決定するために使用されてよい。その例は、第2及び第3の段階204、206において示された。
【0035】
よって、ビューがセマンティック閾値に達すると、セマンティックズームモジュール114はセマンティックビジュアルにおいてスワップを引き起こしてよい。加えて、セマンティック閾値は、ズームを定義する入力の方向に依存して変化してよい。これは、ズームの方向が反対にされる場合にさもなければ起こりえるフリッカを低減する役割を果たし得る。
【0036】
図3の実施例において表される第1の例では、第1のハイエンドセマンティック閾値302は、例えば、セマンティックズームモジュール114によってジェスチャを認識され得る動きの約80パーセントに設定されてよい。例えば、ユーザが最初は100パーセントのビューにあり、ズームアウトを開始した場合は、セマンティックスワップは、入力が第1のハイエンドセマンティック閾値302によって定義される80パーセントに達する場合にトリガされてよい。
【0037】
図4の実施例において表される第2の例では、第2のハイエンドセマンティック閾値402が更にセマンティックズームモジュール114によって定義され利用されてよく、それは、約85パーセントのように、第1のハイエンドセマンティック閾値302よりも高く設定され得る。例えば、ユーザは、100パーセントのビューで開始し、第1のハイエンドセマンティック閾値302でセマンティックスワップをトリガするが、手を放しておらず(例えば、ジェスチャを定義する入力を依然として提供している。)、ズーム方向を反対にすると決定することがある。この場合には、入力は、第2のハイエンドセマンティック閾値402に達すると、レギュラービューへ戻るスワップをトリガする。
【0038】
ローエンド閾値もセマンティックズームモジュール114によって利用されてよい。
図5の実施例において表される第3の例では、第1のローエンドセマンティック閾値502が、例えば、約45パーセントで設定されてよい。ユーザが最初は27.5%でのセマンティックビューにあり、“ズームイン”を開始する入力を供給する場合は、セマンティックスワップは、入力が第1のローエンドセマンティック閾値502に達する場合にトリガされてよい。
【0039】
図6の実施例において表される第4の例では、第2のローエンドセマンティック閾値602が、例えば約35パーセントで定義されてもよい。前述の例と同様に、ユーザは27.5%のセマンティックビュー(例えば、開始スクリーン)から開始し、セマンティックスワップをトリガしてよく、例えば、ズームパーセンテージは45%よりも大きい。また、ユーザは、入力を供給し続け(例えば、マウスのボタンが“クリックされた”ままであり、依然として“ジェスチャ”が続いている、等)、次いでズーム方向を反対にすると決定してよい。27.5%ビューへ戻るスワップは、第2のローエンドセマンティック閾値602に達すると、セマンティックズームモジュール114によってトリガされてよい。
【0040】
このように、
図2乃至6に関連して図示及び説明される例では、いつセマンティックスワップがスマンティックズームの間に起こるかを定義するために、セマンティック閾値が使用されてよい。それらの閾値の間で、ビューは直接操作に応答して光学的にズームイン及びズームアウトし続けてよい。
【0041】
[スナップポイント]
ユーザがズームイン又はアウトするよう入力を提供する(例えば、ピンチジェスチャにおいて自身の指を動かす)場合に、表示される面は、任意に、セマンティックズームモジュール114によって然るべく拡大縮小される。しかし、入力が停止する(例えば、ユーザがジェスチャをやめる)場合に、セマンティックズームモジュール114は、特定のズームレベルへのアニメーションを生成してよい。これは「スナップポイント」と呼ばれることがある。1又はそれ以上の実施において、これは、例えば、ユーザが“手を放す”場合に、入力が停止される現在のズームパーセンテージに基づく。
【0042】
様々な異なるスナップポイントが定義されてよい。例えば、セマンティックズームモジュール114は、ズームされていない、例えば、完全なフィデリティを有する“レギュラーモード”においてコンテンツが表示される100パーセントのスナップポイントを定義してよい。他の例では、セマンティックズームモジュール114は、セマンティックビジュアルを含む27.5%での“ズームモード”に対応するスナップポイントを定義してよい。
【0043】
1又はそれ以上の実施において、ディスプレイ装置108の利用可能な表示領域を実質的に消耗するよりもコンテンツが少ない場合に、スナップポイントは、自動的にユーザ介入なしでセマンティックズームモジュール114によって、コンテンツにディスプレイ装置108を実質的に“満たさせる”如何なる値へも設定されてよい。よって、この例では、コンテンツは、27.5%の“ズームモード”よりも小さく縮小せず、より大きくなり得る。当然、例えば、現在のズームレベルに対応する複数の所定のズームレベルの中の1つをセマンティックズームモジュール114に選ばせるといった、他の例も考えられる。
【0044】
よって、セマンティックズームモジュール114は、入力が停止する、例えば、ユーザがジェスチャをやめる、マウスのボタンを解放する、所定量の時間後にキーボード入力を提供するのをやめる、等の場合にどこにビューが着地するつもりかを決定するよう、スナップポイントと組み合わせて閾値を利用してよい。例えば、ユーザがズームアウトしており、ズームアウトのパーセンテージがハイエンド閾値パーセンテージよりも大きく、入力を中止する場合に、セマンティックズームモジュール114は、ビューを100%スナップポイントへ戻させてよい。
【0045】
他の例では、ユーザはズームアウトするよう入力を供給してよく、ズームアウトのパーセンテージはハイエンド閾値パーセンテージよりも小さく、その後に、ユーザは入力を中止してよい。これに応答して、セマンティックズームモジュール114は、27.5%スナップポイントへビューを動画化させてよい。
【0046】
更なる例では、ユーザがズームビュー(例えば、27.5%にある)から開始し、ローエンドセマンティック閾値のパーセンテージよりも小さいパーセンテージでズームインし始め、中止する場合に、セマンティックズームモジュール114は、ビューをセマンティックビュー(例えば、27.5%)へ戻させてよい。
【0047】
更なる他の例では、ユーザがセマンティックビュー(例えば、27.5%にある)から開始し、ローエンドセマンティック閾値のパーセンテージよりも大きいパーセンテージでズームインし始め、中止する場合に、セマンティックズームモジュール114は、ビューを100%ビューへ戻させてよい。
【0048】
スナップポイントはまた、ズーム境界として働いてよい。ユーザが、自身がそれらの境界を“通り過ぎ”ようとしていることを示す入力を供給する場合に、例えば、セマンティックズームモジュール114は、“オーバーズームバウンス”を表示するアニメーションを出力してよい。これは、ズームが働いていることをユーザに知らせるとともに、ユーザが境界を越えて拡大縮小することを妨げるようフィードバックを提供する働きをする。
【0049】
加えて、1又はそれ以上の実施において、セマンティックズームモジュール114は、コンピュータ装置102が“遊休状態”となることに応答するよう構成されてよい。例えば、セマンティックズームモジュール114はズームモード(例えば、27.5%ビュー)にあってよく、その間に、例えば、スクリーンセーバー、ロックスクリーン、等により、セッションは遊休状態となる。これに応答して、セマンティックズームモジュール114
は、ズームモードを脱して、100%ビューレベルへ戻ってよい。様々な他の例も考えられ、例えば、1又はそれ以上のジェスチャを認識するための、動きを通じて検出される速度の使用が考えられてよい。
【0050】
[ジェスチャに基づく操作]
セマンティックズームと相互作用するために使用されるジェスチャは、様々な方法において構成されてよい。第1の例では、挙動は、ビューを“正しく”操作させる入力の検出時にサポートされる。例えば、再び
図2を参照すると、ビューは、ユーザが自身の指をピンチジェスチャにおいて動かしたとの入力が検出されると直ぐに、縮小し始めてよい。更に、ズームは、“入力に従ってそれらが起こるように”ズームイン及びズームアウトするよう構成されてよい。これは、実時間のフィードバックを提供する操作に基づくジェスチャの例である。当然、逆のピンチジェスチャも入力に従うよう操作に基づいてよい。
【0051】
上述されたように、閾値はまた、操作及び実時間出力の間にいつビューを切り替えるべきかを決定するために利用されてよい。よって、この例では、ビューは、入力において記載されるようユーザの動きが起こるとそれに従う第1のジェスチャによりズームされてよい。第2のジェスチャ(例えば、セマンティックスワップのジェスチャ)がまた定義されてよく、上述されたようなビュー間のスワップ(例えば、他のビューのクロスフェード)をトリガする閾値を伴う。
【0052】
他の例では、ジェスチャは、ズーム及びビューのスワップさえ実行するようアニメーションとともに用いられてよい。例えば、セマンティックズームモジュール114は、ピンチジェスチャにおいて使用されるように前述同様にユーザの手110の指の動きを検出してよい。定義される動きがジェスチャの定義のために満足されると、セマンティックズームモジュール114は、ズームを表示させるようにアニメーションを出力してよい。よって、この例では、ズームは実時間において動きに追随しないが、ユーザが2つの技術の間の違いに気付くことが困難であるようにほぼ実時間近くでそれを行ってよい。当然、この技術はクロスフェード及びビューのスワップを引き起こすよう続けられてよい。この、他の例は、コンピュータ装置102のリソースを節約するための低リソースシナリオにおいて有益であり得る。
【0053】
1又はそれ以上の実施において、セマンティックズームモジュール114は、入力が完了する(例えば、ユーザの手110の指がディスプレイ装置108から移動する)まで“待機”し、次いで、出力されるべき最終のビューを決定するよう上記のスナップポイントの1又はそれ以上を使用してよい。よって、アニメーションは、ズームイン及びアウトの両方のために(例えば、動きを切り替えるために)使用されてよく、セマンティックズームモジュール114は、対応するアニメーションの出力を引き起こしてよい。
【0054】
[セマンティックビューインタラクション]
再び
図1を参照して、セマンティックズームモジュール114は、セマンティックビューにある間に様々な異なるインタラクションをサポートするよう構成されてよい。更に、それらのインタラクションは“レギュラー”の100パーセントビューとは異なるよう設定されてよいが、インタラクションが同じである他の例も考えられる。
【0055】
例えば、タイルは、セマンティックビューから起動され得ない。しかし、タイルを選択すること(例えば、タップすること)は、ビューを、タップ位置を中心とした場所で通常ビューへズームさせてよい。他の例では、ユーザが
図1のセマンティックビューにおいて飛行機のタイルをタップした場合に、セマンティックビューが通常ビューへズームインすると、飛行機のタイルは、タップを提供したユーザの手110の指の近くに依然としてある。加えて、“ズームバックイン”は水平方向でタップ位置に中心を置かれてよく、一方、垂直配列はグリッドの中心に基づいてよい。
【0056】
上述されたように、セマンティックスワップはまた、カーソル制御装置によって、例えば、キーボード上の修飾子キーを押し同時にマウス上のスクロールホイールを用いること(例えば、“CTRL +”及びスクロールホイールの動き)、“CTRL +”及びトラックパッドのスクロールエッジ入力、セマンティックズームボタン116の選択、等によって、トリガされてよい。キーの組み合わせによるショートカットは、例えば、セマンティックビュー間を切り替えるために使用されてよい。ユーザが状態の“中間”を入力することを防ぐよう、反対方向における回転は、セマンティックズームモジュール114に、新しいスナップポイントへビューを動画化させてよい。しかし、同じ方向における回転は、ビュー又はズームレベルの変化を引き起こさない。ズームは、マウスの位置に中心を置いてよい。加えて、“ズームオーバーバウンス”アニメーションは、ユーザが上述されたようにズーム境界を越えてナビゲートしようとする場合にユーザフィードバックを与えるために使用されてよい。セマンティック遷移のためのアニメーションは時間に基づき、実際のスワップのためのクロスフェードが後に続く光学ズームと、最終のスナップポイントズームレベルへの続く光学ズームとを伴ってよい。
【0057】
[セマンティックズームのセンタリング及び整列]
セマンティック“ズームアウト”が起こる場合に、ズームは、ピンチ、タップ、カーソル又はフォーカス位置、等のような入力の位置に中心を置いてよい。計算は、どのグループが入力位置に最も近いかに関して、セマンティックズームモジュール114によって行われてよい。次いで、このグループは、ビューが、例えば、セマンティックスワップ後のビューとなる場合に、そのズームインされたビューからの対応するセマンティックグループ項目に合わせて左寄せにしてよい。グループ分けされたグリッドビューに関し、セマンティックグループ項目はヘッダと整列してよい。
【0058】
セマンティック“ズームイン”が起こる場合に、ズームはまた、例えば、ピンチ、タップ、カーソル又はフォーカス位置、等の入力位置に中心を置かれてよい。先と同じく、セマンティックズームモジュール114は、どのセマンティックグループ項目が入力位置に最も近いかを計算してよい。次いで、このセマンティックグループ項目は、ビューが、例えば、セマンティックスワップ後のビューとなる場合に、そのズームインされたビューからの対応するセマンティックグループ項目に合わせて左寄せにしてよい。グループ分けされたグリッドビューに関し、ヘッダはセマンティックグループ項目と整列してよい。
【0059】
上述されたように、セマンティックズームモジュール114はまた、所望のズームレベルで表示される項目の間をナビゲートするようパニングをサポートしてよい。これの例は、ユーザの手100の指の動きを示すよう矢印により表されている。1又はそれ以上の実施において、セマンティックズームモジュール114は、ビューにおける表示のためのコンテンツの表現をプリフェッチしてレンダリングしてよく、これは、ヒューリスティクスを含む様々な基準、制御の相対パン軸、等に基づいてよい。このプリフェッチはまた、異なるズームレベルに関して利用されてよく、それにより、表現は、ズームレベル、セマンティックスワップ、等を変更する入力のための準備ができている。
【0060】
加えて、1又はそれ以上の更なる実施において、セマンティックズームモジュール114は、セマンティックズーム機能自体と関係があろうとなかろうとクローム(chrome)(例えば、制御の表示、ヘッダ、等)を“隠し”てよい。例えば、このセマンティックズームボタン116はズームの間隠されてよい。様々な他の例も考えられる。
【0061】
[補正アニメーション]
図7は、セマンティックズームのために利用され得る補正アニメーションの実施例700を表す。実施例は、第1、第2及び第3の段階702、704、706の使用を通じて表される。第1の段階702で、スクロール可能な項目のリストが示され、リストには名前“Adam”、“Alan”、“Anton”及び“Arthur”が含まれている。名前“Adam”はディスプレイ装置108の左端に表示されており、名前“Arthur”はディスプレイ装置108の右端に表示されている。
【0062】
次いで、ピンチ入力が、名前“Arthur”からズームアウトするよう受け取られてよい。つまり、ユーザの手の指が、名前“Arthur”の表示の上に置かれて、一緒に動かされてよい。この場合に、これは、第2の段階704で示されるように、セマンティックスワップを実施するよう実行されるべきクロスフェード及びスケーリングアニメーションを引き起こしてよい。第2の段階で、文字“A”、“B”及び“C”は、入力が、例えば、“Arthur”を表示するために使用されたディスプレイ装置108の部分として検出される点の近くに表示される。よって、このようにして、セマンティックズームモジュール114は、“A”が名前“Arthur”に合わせて左寄せにされることを確かにしてよい。この段階で、入力は継続する。例えば、ユーザは手を放さない。
【0063】
次いで、補正アニメーションは、入力が中止する、例えば、ユーザの手の指がディスプレイ装置108から外されると、“ディスプレイ装置108を満たす”ために利用されてよい。例えば、アニメーションが表示されてよく、その中で、この例では第3の段階706で示されるように、リストが“左へスライド”する。しかし、ユーザが手を放さず、代わりに逆ピンチジェスチャを入力する場合は、セマンティックスワップアニメーション(例えば、クロスフェード及びスケーリング)が第1の段階702へ戻るよう出力されてよい。
【0064】
クロスフェード及びスケーリングアニメーションが完了する前にユーザが手を放す場合には、補正アニメーションが出力されてよい。例えば、両方の制御は平行移動されてよく、故に、“Arthur”が完全にフェードアウトする前に、名前は縮小し且つ左方向に移動するように表示され、それにより、名前は、それが左へ移動された間中、“A”と整列されたままである。
【0065】
非タッチ入力の場合(例えば、カーソル制御装置又はキーボードの使用)に関し、セマンティックズームモジュール114は、あたかもユーザが手を放すかのように挙動してよく、故に、平行移動はスケーリング及びクロスフェードアニメーションと同時に開始する。
【0066】
よって、補正アニメーションは、ビュー間の項目の整列のために使用されてよい。例えば、異なるビューにおける項目は、項目のサイズ及び位置を記述する対応する境界長方形を有してよい。セマンティックズームモジュール114は、その場合に、例えば、左、中心、又は右寄せされようとなかろうと、ビュー間の対応する項目がそれらの境界長方形に適合するように、ビュー間で項目を整列させる機能を利用してよい。
【0067】
再び
図7を参照して、スクロール可能な項目のリストが第1の段階702において表示されている。補正アニメーションによらなければ、ディスプレイ装置108の右側にある入力(例えば、Arthur)からのズームアウトは、この例ではディスプレイ装置108の左端で整列するので、第2のビューからの対応する表示、例えば、“A”に並ばない。
【0068】
然るに、セマンティックズームモジュール114は、ビュー間で項目を整列するようどれくらい制御(例えば、スクロール可能な項目のリスト)を移動すべきかを記述するベクトルを返すよう構成されるプログラミングインターフェースを顕在化させてよい。よって、セマンティックズームモジュール114は、第2の段階704で示されるように“整列を保持する”よう制御を移動するために使用されてよく、解放時に、セマンティックズームモジュール114は、第3の段階706で示されるように“表示を満たし”てよい。補正アニメーションの更なる説明は、例となるプロシージャに関連して見出され得る。
【0069】
[クロスフェードアニメーション]
図8は、セマンティックスワップの部分として使用され得るクロスフェードアニメーションが示される実施例800を表す。この実施例800は、第1、第2及び第3の段階802、804、806の使用を通じて表される。上述されたように、クロスフェードアニメーションは、ビュー間を遷移するようセマンティックスワップの部分として実施されてよい。表される実施例の第1、第2及び第3の段階802乃至806は、例えば、セマンティックスワップを開始するピンチ又は他の入力(例えば、キーボード又はカーソル制御装置)に応答して
図2の第1及び第2の段階202、204に示されるビュー間を遷移するために使用されてよい。
【0070】
第1の段階802で、ファイルシステムにおける項目の表現が示されている。入力は受け取られ、異なるビューの部分が、例えば、不透明度、透明度設定、等の使用を通じて、一緒に示され得る第2の段階で示されるクロスフェードアニメーション802を引き起こす。これは、第3の段階806で示される最終のビューへ遷移するために使用されてよい。
【0071】
クロスフェードアニメーションは様々な方法において実施されてよい。例えば、閾値が使用されてよく、アニメーションの出力をトリガするために使用される。他の例では、ジェスチャは動きに基づいてよく、それにより、不透明度は実時間で入力に追随する。例えば、異なるビューに関する異なる不透明度が、入力によって表される動きの量に基づき適用されてよい。よって、動きが入力である場合に、最初のビューの不透明度は低減されてよく、最終のビューの不透明度は増大されてよい。1又はそれ以上の実施において、スナップ技術はまた、入力が中止する、例えば、ユーザの手の指がディスプレイ装置108から外される場合に、動きの量に基づきビューのいずれかへビューを切り替えるために使用されてよい。
【0072】
[フォーカス]
ズームインが起こる場合に、セマンティックズームモジュール114は、“ズームイン”されているグループにおける第1の項目へフォーカスを適用してよい。これはまた、特定のタイムアウト後に、又はユーザがビューとのインタラクションを開始すると、フェードするよう構成されてよい。フォーカスが変更されなかった場合は、次いで、ユーザが100パーセントのビューへズームバックインする場合に、セマンティックスワップの前にフォーカスを有した同じ項目がフォーカスを有し続ける。
【0073】
セマンティックビューにおけるピンチジェスチャの間、フォーカスは、“ピンチング”されているグループの周りに適用されてよい。ユーザが自身の指を遷移の前に異なるグループの上に動かした場合は、フォーカスインジケータが新しいグループへと更新されてよい。
【0074】
[セマンティックヘッダ]
図9は、セマンティックヘッダを含むセマンティックビューの実施例900を表す。夫々のセマンティックヘッダの内容は、様々な方法において、例えば、ヘッダによって、エンドデベロッパ等によって(例えば、HTMLを用いる。)定義されるグループのための共通の記述をリストアップするように、提供されてよい。
【0075】
1又はそれ以上の実施において、ビュー間を遷移するために使用されるクロスフェードアニメーションは、例えば、“ズームアウト”の間、グループヘッダを伴わなくてよい。しかし、入力が中止され(例えば、ユーザが手を放し)、ビューが切り替えられると、ヘッダは表示のために“復帰して”動画化されてよい。グループ分けされたグリッドビューがセマンティックビューとスワップされている場合に、例えば、セマンティックヘッダは、グループ分けされたグリッドビューに関してエンドデベロッパによって定義された項目ヘッダを含んでよい。画像及び他の内容がまたセマンティックヘッダの部分であってよい。
【0076】
ヘッダの選択(例えば、タップ、マウスのクリック、又はキーボードの作動)は、ビューを、タップ、ピンチ又はクリックの場所を中心としたズームにより100%ビューへズームバックさせてよい。従って、ユーザがセマンティックビューにおけるグループヘッダをタップする場合に、グループはズームインされたビューにおいてタップ位置の近くに現れる。セマンティックヘッダの左端の位置“X”は、例えば、ズームインされたビューにおけるグループの左端の位置“X”と整列してよい。ユーザはまた、矢印キーを用いて、例えば、グループ間でフォーカスビジュアルを動かすための矢印キーを用いて、グループからグループへ移動してよい。
【0077】
[テンプレート]
セマンティックズームモジュール114はまた、アプリケーションデベロッパによって利用され得る異なるレイアウトのための様々な異なるテンプレートをサポートしてよい。例えば、そのようなテンプレートを用いるユーザインターフェースの例は、
図10の実施例1000において表されている。この例において、テンプレートは、この場合には文字及び数字であるグループの識別子とともにグリッドにおいて配置されたタイルを含む。タイルはまた、存在する場合にグループの代表である項目を含む。例えば、“a”グループに関しては飛行機であるが、“e”グループは項目を含まない。よって、ユーザは、グループにデータが投入されているかどうかを容易に決定し、セマンティックズームのこのズームレベルにおいてグループ間をナビゲートしてよい。1又はそれ以上の実施において、ヘッダ(例えば、代表項目)は、セマンティックズーム機能を利用するアプリケーションのデベロッパによって特定されてよい。よって、この例は、グループ管理タスク、例えば、複数のグループからコンテンツを選択すること、グループを再配置すること、等のための機会及びコンテンツ構造の抽象化されたビューを提供してよい。
【0078】
他の例となるテンプレートは、
図11の実施例1100において示されている。この例では、文字も示されており、コンテンツのグループ間をナビゲートするために使用可能であり、よってセマンティックズームにおけるレベルを提供してよい。この例における文字は、ユーザが関心のある文字、ひいては関心のあるグループを直ぐに見つけられるように、マーカ(例えば、手がかり)の役割を果たすより大きい文字を伴ってグループを形成される。このように、グループヘッダから構成されるセマンティックビジュアルが表される。これは、100%ビューにおいて見られる“拡大された”バージョンであり得る。
【0079】
[セマンティックズームの言語的ヘッダ]
上述されたように、セマンティックズームは、ユーザがピンチジェスチャによりそれらのコンテンツの大域的なビューを得ることを可能にするタッチ機能として実施されてよい。セマンティックズームは、異なる細かさの程度で依然として容易にアクセス可能でありながら多くの項目がより小さな領域において適合することができるように、内在するコンテンツの抽象化されたビューを作成するようセマンティックズームモジュール114によって実施されてよい。1又はそれ以上の実施において、セマンティックズームは、例えば、日付、最初の文字、等によって、項目をカテゴリにグループ分けするために抽象化を利用してよい。
【0080】
最初の文字によるセマンティックズームの場合に、夫々の項目は、その表示名の最初の文字によって決定されるカテゴリに該当してよい。例えば、“Green Bay”はグループヘッダ“G”に該当する。このグループ分けを実施するよう、セマンティックズームモジュール114は、次の2つのデータ点を決定する。すなわち、(1)ズームされるビューにおいてコンテンツを表すために使用されるグループ(例えば、全部のアルファベット)、及び(2)そのビューにおける夫々の項目の最初の文字。
【0081】
英語の場合に、単純な最初の文字によるセマンティックズームビューの生成は、次のように実施されてよい:
−28のグループが存在する
○26のラテンアルファベット文字
○数字のための1グループ
○記号のための1グループ
しかし、他の言語は異なるアルファベットを使用し、時々文字を一緒に並べる。これは、所与の文字の最初の文字を識別するのを困難にしうる。従って、セマンティックズームモジュール114は、それらの異なるアルファベットに対処するために様々な技術を用いてよい。
【0082】
中国語、日本語、及び韓国語のような東アジアの言語は、最初の文字によるグループ分けに関して問題をはらむことがある。第1に、それらの言語の夫々は漢字(ハン)文字を使用し、それらは数千の個別の文字を含む。日本語の読み書きができる話者は、例えば、少なくとも2千の個別の文字に通じており、その数は中国語の話者に関して更に多い。これは、項目のリストを考えると、あらゆる語が異なる文字から始まる可能性が高いことを意味し、従って、最初の文字を採用する実施は事実上リスト内の入力毎に新しいグループを作成することなる。更に、ユニコード・サロゲートペアが考慮されず、最初のWCHARのみが使用される場合は、グループ分け文字が無意味な正方形箱へ分離する場合があり得る。
【0083】
他の例では、韓国語は、時々ハン文字を用いるが、主として母国語のハングル文字を使用する。それは音標文字であるが、11000及びハングル・ユニコード文字の夫々は全部で2乃至5文字の音節を表すことができ、これは“Jamo”と呼ばれる。東アジアにおける分類方法(日本語のXJISを除く。)は、東アジア・アルファベットの使用者にとって直感的に分かりやすくする19乃至214のグループ(音声、部首、又は画数に基づく。)にハン/ハングル文字をグループ分けするための技術を用いてよい。
【0084】
加えて、東アジアの言語はしばしば、正方な中国語/日本語/韓国語文字と整列するよう長方形に代えて正方形である“全幅”ラテン文字を確保する。例えば、
Half width(半値幅)
Full width(全幅)。
【0085】
従って、幅正規化が実行されない限り、半値幅“A”のグループの直後に全幅“A”のグループが続くこととなる。しかし、ユーザは通常それらを同じ文字であると考えるので、それはそのようなユーザにとって誤りであるように見える。2つの日本語仮名アルファベット(ひらがな及びカタカナ)も同様であり、それらは一緒にソートし、不良のグループを示すことを避けるよう正規化されるべきである。
【0086】
加えて、基本的な“最初の文字を取り出すこと”による実施の使用は、多くの欧州の言語に関して不正確な結果を与えることがある。例えば、ハンガリー語のアルファベットは次の44文字を含む:
【0087】
言語学的に、それらの文字の夫々は固有の分類要素である。従って、文字“D”、“Dz”及び“Dzs”を同じグループにまとめることは誤って見え、典型的なハンガリー語ユーザにとって直感的に理解できない。幾つかの更なる極端な場合において、8よりも多いWCHARを含む幾つかのチベット語の“単一文字”が存在する。“複数キャラクタ”文字を伴う幾つかの他の言語には、クメール語、コルシカ方言、ブルトン語、マプチェ語、ソルビア語、マオリ語、ウイグル語、アルバニア語、クロアチア語、セルビア語、チェコ語、デンマーク語、グリーンランド語、ハンガリー語、スロバキア語、スペイン語(伝統的)、ウェールズ語、ベトナム語、等がある。
【0088】
他の例では、スウェーデン語のアルファベットは次の文字を含む:
【0090】
とははっきりと異なる文字であり、後者の2文字はアルファベットにおける“Z”の後にくる点に留意されたい。一方、英語に関して、2つのグループが英語では一般的に望まれないことから
【0091】
を“A”として扱うよう付加記号が除去されている。しかし、同じ論理がスウェーデン語に適用される場合は、複製の“A”グループが“Z”の後に置かれるか、又は言語が不正確に分類されるかのいずれかである。同様の状況は、ポーランド語、ハンガリー語、デンマーク語、ノルウェー語等を含む、特定のアクセント記号付き文字を別個の文字として扱う相当数の他の言語において遭遇され得る。
【0092】
セマンティックズームモジュール114は、分類における使用のために様々なAPIを顕在化させてよい。例えば、アルファベット及び最初の文字のAPIが顕在化されてよく、それにより、デベロッパは、如何にしてセマンティックズームモジュール114が項目に対処するかを決定してよい。
【0093】
セマンティックズームモジュール114は、例えば、オペレーティングシステムにおけるunisort.txtファイルから、アルファベット表を生成するよう実施されてよく、それにより、そのような表は、アルファベット及びグループ分けサービスを提供するために利用され得る。この特徴は、例えば、unisort.txtファイルをパースし、言語学的に一貫した表を生成するために使用されてよい。これは、参照データ(例えば、外部ソース)に対してデフォルト出力を認証することと、標準の順序づけがユーザの期待するものでない場合に臨時の例外を作成することとを伴ってよい。
【0094】
セマンティックズームモジュール114は、例えば、通常ヒトが辞書や電話帳等において見るヘディングのようなロケール/ソートに基づき、アルファベットであると見なされるものを返すために使用され得るアルファベットAPIを有してよい。所与の文字に関して1よりも多い表現が存在する場合は、最も一般的であると見なされる1つがセマンティックズームモジュール114によって使用されてよい。以下は、代表的な言語に関する幾つかの例である:
【0095】
東アジアの言語に関して、セマンティックズームモジュール114は、上記のグループのリストを返してよいが、日本語は以下のように仮名グループを更に含む:
【0096】
1又はそれ以上の実施において、セマンティックズームモジュール114は、しばしばラテン文字を使用するファイル名のための解決法を提供するために、非ラテンアルファベットを含む夫々のアルファベットにおいてラテン文字を含んでよい。
【0097】
幾つかの言語は2つの文字を全く異なると考えるが、それらを一緒にソートする。この場合に、セマンティックズームモジュール114は、2つの文字が、例えば、ロシア語
【0098】
に関して、作成された表示文字を用いて一緒であるとユーザに伝えてよい。現代的な用法において文字間をソートする古典的且つ珍しい文字に関し、セマンティックズームモジュール114はそれらの文字を従前の文字とともにグループ分けしてよい。
【0099】
ラテン文字のような記号に関し、セマンティックズームモジュール114はそれらの記号を文字に従って扱ってよい。セマンティックズームモジュール114は、例えば、
TMを“T”にグループ分けするよう、従前のセマンティクスによるグループ分けを用いてよい。
【0100】
セマンティックズームモジュール114は、項目のビューを生成するようマッピング機能を用いてよい。例えば、セマンティックズームモジュール114は、文字を大文字、アクセント(例えば、言語が特定のアクセント記号付き文字を個別の文字として扱わない場合)、幅(例えば、全幅を半値幅のラテン語に変換)、及び仮名タイプ(例えば、日本語のカタカナをひらがなに変換)へ正規化してよい。
【0101】
文字のグループを単一の文字(例えば、ハンガリー語の“dzs”)を扱う言語に関し、セマンティックズームモジュール114は、それらをAPIによって“第1文字グループ”として返してよい。それらは、例えば、文字列が文字の“範囲”内でソートするかどうかを確認するよう、ロケール毎のオーバライド表を介して処理されてよい。
【0102】
中国語/日本語に関し、セマンティックズームモジュール114は、ソートに基づき中国語の文字の論理的なグループ分けを返してよい。例えば、画数によるソートは画数ごとにグループを返し、部首によるソートは中国語文字の意味部門に関するグループを返し、音声によるソートは音読みの最初の文字によって返す、等。先と同じく、ロケール毎のオーバライド表も使用されてよい。他のソート(例えば、中国語文字の有意な順位付けを有さない非EA+日本語XJIS)では、単一の‘漢’(ハン)が中国語文字の夫々に関して使用されてよい。韓国語に関し、セマンティックズームモジュール114は、ハングル音節における最初のJamo文字に関するグループを返してよい。よって、セマンティックズームモジュール114は、ロケールの母国語における文字列に関して“アルファベット関数”と近接して並んだ文字を生成してよい。
【0103】
[最初の文字によるグループ分け]
アプリケーションはセマンティックズームモジュール114の使用をサポートするよう構成されてよい。例えば、アプリケーション106は、アプリケーション106のデベロッパによって特定される機能を含むマニフェストを有するパッケージの部分としてインストールされてよい。特定され得る1つのそのような機能は音声名称特性を含む。音声名称特性は、項目のリストのためのグループ及びグループの識別を生成するために使用されるべき音声言語を特定するために使用されてよい。よって、音声名称特性がアプリケーションに関して存在する場合は、その最初の文字がソート及びグループ分けのために使用される。そうでない場合は、セマンティックズームモジュール114は、例えば、第三者のレガシアプリケーションに関して、表示名の最初の文字に依存してよい。
【0104】
ファイル名及び第三者レガシアプリケーションのような精選されていないデータに関し、ローカライズされた文字列から最初の文字を取り出す一般的な解決法は、大部分の非東アジアに適用され得る。この解決法は、後述される、付加記号(文字に付加された補助的なグリフ)を取り去ることと、最初の目に見えるグリフを正規化することとを伴う。
【0105】
英語及び大部分の他の言語に関し、最初の目に見えるグリフは次のように正規化されてよい:
●大文字;
●付加記号(ソートキーがそれを考える場合に、ロケールにおける付加記号対独自文字);
●幅(半値幅);及び
●仮名タイプ(ひらがな)。
【0106】
様々な異なる技術が、付加記号を取り去るために用いられてよい。例えば、第1のそのような解決法は以下を伴う:
●ソートキーを生成する;
●付加記号が付加記号(例えば、英語における
【0107】
)又は文字(例えば、“Z”の後にソートするスウェーデン語における
【0108】
)として扱われるべきかどうかを確認しようと試みる;及び
●コードポイントを結合するようフォームCへ変換する、
○それらを解体するフォームD。
【0109】
第2のそのような解決法は以下を伴う:
●ホワイトスペース及び非グリフをスキップする;
●次の文字境界までグリフに対してSHCarNextWを使用する(付録を参照);
●第1のグリフに対してソートキーを生成する;
●付加記号であるかどうかを伝えるようLCMapStringを見る(ソート重みを監視する);
●フォームDへ正規化する(NormalizeString);
●全ての付加記号を取り去るようGetStringTypeを用いて第2のパスを実行する:
C3_NonSpace|C3_Diacritic;及び
●ケース、幅及び仮名タイプを取り去るようLCMapStringを使用する。
【0110】
更なる解決法がまた、例えば、中国語及び韓国語における精選されていないデータの最初の文字によるグループ分けのために、セマンティックズームモジュール114によって利用されてよい。例えば、グループ分け文字“オーバーライド”表が、特定のロケール及び/又はソートキー範囲に関し適用されてよい。それらのロケールは中国語(例えば、簡体字及び繁体字)とともに韓国語を含んでよい。それはまた、特別の合字分類を有するハンガリー語のような言語を含んでよいが、そのような言語は、その言語のためのオーバライド表においてそれらの例外を使用してよい。
【0111】
例えば、オーバライド表は、
●最初のピンイン(簡体字中国語);
●最初のボポモフォ文字(繁体字中国語−台湾);
●部首名/画数(繁体字中国語−香港);
●最初のハングルJamo(韓国);及び
●合字分類を有するハンガリー語のような言語(例えば、“ch”を単一文字として扱う)
のためのグループ分けを提供するために使用されてよい。
【0112】
中国語に関し、セマンティックズームモジュール114は、ピンインへ変換し、最初のピンイン文字を特定するためにソートキーに基づくルックアップを用いるように、簡体字中国語のための第1ピンイン文字によるグループ分けを行ってよい。ピンインは、ラテン語アルファベットにおいて音声学的に漢字を表すためのシステムである。繁体字中国語(例えば、台湾)に関し、セマンティックズームモジュール114は、ボポモフォへ変換し、最初のボポモフォ文字を特定するためにソートキーに基づくルックアップを使用することによって、部首/画数によるグループのために第1ボポモフォ文字によるグループ分けを行ってよい。ボポモフォは、繁体字中国語の音声的音節文字表のために共通の名称(例えば、ABCのような)を提供する。部首は中国語文字のための分類であり、例えば、中国語辞書におけるセクション見出しのために使用されることがある。繁体字中国語(例えば、香港)に関し、ソートキーに基づくルックアップは、ストローク文字を特定するために使用されてよい。
【0113】
韓国語に関し、セマンティックズームモジュール114は、単一の表意文字が2乃至5の表音文字を用いて表されるので、ハングル語においては音声学的に韓国語ファイル名をソートしてよい。例えば、セマンティックズームモジュール114は、Jamoグループを特定するためのソートキーに基づくルックアップの使用を通じて最初のJamo文字へ変換してよい(例えば、19の最初の子音は19のグループに等しい。)。Jamoは、韓国ハングル語において使用される子音及び母音の組を指し、韓国語を書くために使用される音標文字である。
【0114】
日本語の場合に、ファイル名の分類は、従来の技術において破壊的な経験であり得る。中国語及び韓国語のように、日本語のファイルは、発音によってソートされるよう意図される。しかし、日本語のファイル名における漢字文字の発生は、適切な発音を知らなければソートするのを困難としうる。加えて、漢字は1よりも多い発音を有することがある。この問題を解決するために、セマンティックズームモジュール114は、音声名を取得するようIMEを介して各ファイル名を逆変換する技術を用いてよい。音声名は次いで、ファイルをソートしグループ分けするために使用されてよい。
【0115】
日本語に関し、ファイルは、セマンティックズームモジュール114によって3つのグループに置かれてソートされてよい:
●ラテン−正確な順序においてグループ化される:
●仮名−正確な順序においてグループ化される;及び
●漢字−XJIS順序においてグループ化される(ユーザ展望から事実上ランダム)。
このように、セマンティックズームモジュール114は、直感的に理解できる識別子及びグループをコンテンツの項目へ提供するためにそれらの技術を用いてよい。
【0116】
[方向ヒント]
方向ヒントをユーザに提供するよう、セマンティックズームモジュール114は、様々な異なるアニメーションを用いてよい。例えば、ユーザが既にズームアウトされたビューにあり、更にズームアウトしようとする場合に、アンダーバウンスアニメーションがセマンティックズームモジュール114によって出力されてよく、そのとき、バウンスはビューのスケールダウンである。他の例では、ユーザが既にズームインされたビューにあり、更にズームインしようとする場合に、オーバーバウンスアニメーションが出力され、そのとき、バウンスはビューのスケールアップである。
【0117】
更に、セマンティックズームモジュール114は、コンテンツの“終わり”に達したことを示すよう、バウンスアニメーションのような1又はそれ以上のアニメーションを用いてよい。1又はそれ以上の実施において、このアニメーションは、コンテンツの“終わり”に制限されず、むしろ、コンテンツの表示を通じて異なるナビゲーションポイントで指定されてよい。このように、セマンティックズームモジュール114は、如何にして機能が実施されるのかを“認識する”アプリケーション106であればこの機能を利用可能にするよう、アプリケーション106に一般的な設計を顕在化させてよい。
【0118】
[セマンティックズーム可能な制御のためのインタフェースのプログラミング]
セマンティックズームは、長いリストの有効なナビゲーションを可能にすることができる。しかし、その性質により、セマンティックズームは、“ズームイン”されたビューとその“ズームアウト”された対応するビューとの間の非幾何学的なマッピングを伴う。従って、“一般的な”実施は、一方のビューマップにおけるアイテムを他方のビューマップのアイテムに如何にしてマッピングすべきかと、2つの対応する項目の視覚表現を、それらの関係をズーム中にユーザに伝えるよう如何にして整列すべきかとを決定するために専門知識が必要とされ得るので、夫々の場合に関してうまく適合され得ない。
【0119】
従って、この項では、セマンティックズームモジュール114によるセマンティックズーム制御の子ビューとしての使用を可能にするよう制御によって定義可能である複数の異なるメソッドを含むインターフェースが記載される。それらのメソッドは、セマンティックズームモジュール114が、制御がパンすることを可能にされる1又は複数の軸を決定し、ズームが進行中である場合に制御を通知し、ビューが1のズームレベルから他のズームレベルへ切り替わる場合に適切に自身を整列させることを可能にすることを可能にする。
【0120】
このインターフェースは、項目位置を記述するための共通プロトコルとして項目の境界長方形を利用するよう構成されてよい。例えば、セマンティックズームモジュール114は、座標系間でそれらの長方形を変換してよい。同様に、項目の考えは
抽象的であり、制御によって解釈されてよい。アプリケーションはまた、1の制御から他の制御へ通される項目の表現を変換してよく、より広範な制御が“ズームイン”及び“ズームアウト”されたビューとして一緒に使用されることを可能にする。
【0121】
1又はそれ以上の実施において、制御は、セマンティックズーム可能であるよう“ZoomableView”インターフェースを実施する。そのような制御は、インターフェースの正式の概念なしで、“zoomableView”と名付けられた単一の公共資産の形で、動的型付き言語(dynamically-typed language)において実施されてよい。資産は、複数のメソッドが付随する対象に対して評価されてよい。通常“インターフェース”と見なされるものがそれらのメソッドであり、C++又はC#のような静的型付き言語(statically-typed language)では、それらのメソッドは、公共の“zoomableView”資産を実施しない“IZoomableView”インターフェースのダイレクトメンバーである。
【0122】
以下の説明で、“ソース”制御は、ズームが開始される場合に現在見ることができる制御であり、“ターゲット”制御は、他の制御である(ズームは、ユーザがズームをキャンセルする場合に、可視的なソース制御で最終的に終わってよい。)。メソッドは、C#のような擬似コード表記法用いて次のとおりである。
【0123】
[Axis getPanAxis()]
このメソッドは、セマンティックズームが開始される場合に両方の(both)制御において呼び出されてよく、制御の軸が変化するときはいつでも呼び出されてよい。このメソッドは、動的型付き言語、他の言語における列挙型のメンバー、等における文字列として構成され得る“horizontal”、“vertical”、“both”又は“none”のいずれかを返す。
【0124】
セマンティックズームモジュール114は、様々な目的のためにこの情報を使用してよい。例えば、両方の制御が所与の軸に沿ってパンすることができない場合は、セマンティックズームモジュール114は、スケーリング変換の中心がその軸に沿って中心を置かれるようにすることで、その軸を“ロック”してよい。2つの制御が水平パニングに制限される場合は、例えば、スケール中心のY座標は、視点の上下間の中間に設定されてよい。他の例では、セマンティックズームモジュール114は、ズーム操作の間に有限なパニングを可能にするが、それを、両方の制御によってサポートされる軸に制限してよい。これは、夫々の子制御によって予めレンダリングされるようコンテンツの量を制限するために利用されてよい。従って、このメソッドは“configureForZoom”と呼ばれることがあり、更に以下で記載される。
【0125】
[void configureForZoom(bool isZoomedOut,bool isCurrentView,function triggerZoom(),Number prefetchedPages)]
上述されたように、このメソッドは、セマンティックズームが開始される場合に両方の(both)制御において呼び出されてよく、制御の軸が変化するときはいつでも呼び出されてよい。これは、ズーム挙動を実施する場合に使用され得る情報を子制御に提供する。以下は、このメソッドの特徴の幾つかである:
−isZoomedOutは、2つのビューのいずれであるかを子制御に知らせるために使用されてよい;
−isCurrentViewは、最初に可視的なビューであるかどうかを子制御に知らせるために使用されてよい;
−triggerZoomは、子制御が他のビューへ切り替えるために呼び出すことができるコールバック関数である。なお、現在可視的なビューでない場合は、この関数の呼出は有効でない;及び
−prefetchedPagesは、どれくらいのオフスクリーンコンテンツをズーム中に提示する必要があるかを制御に伝える。
【0126】
最後のパラメータに関して、“ズームイン”された制御は、“ズームアウト”遷移の間目に見えて小さくなり、通常のインタラクションの間に見ることができるより多くの内容を示す。“ズームアウト”されたビューでさえ、“ズームアウト”されたビューから更にズームアウトしようと試みることによってユーザが“バウンス”アニメーションを引き起こす場合に、通常よりも多くの内容を示してよい。セマンティックズームモジュール114は、コンピュータ装置102のりソースの効率的な使用を促進するよう、夫々の制御によって用意されるべきコンテンツの異なる量を計算してよい。
【0127】
[void setCurrentItem(Number x,Number y)]
このメソッドは、ズーム開始時にソース制御において呼び出されてよい。ユーザは、上述されたキーボード、マウス及びタッチを含む様々な入力装置を用いて、セマンティックズームモジュール114にビュー間を遷移させることができる。マウス及びタッチの場合に、マウスカーソル又はタッチ点のオンスクリーン座標は、どの項目が、例えば、ディスプレイ装置108上の位置“から”ズームされるべきかどうかを決定する。キーボード動作は先在する“現在の項目”に依存しうるので、入力メカニズムは、先在したか又は先の時点で設定されたかにかかわらず、最初に設定された位置に依存する項目を現在の項目とし、次いで“現在の項目”に関する情報を要求することによって、一元管理されてよい。
【0128】
[void beginZoom()]
このメソッドは、視覚的なズーム遷移がまさに開始しようとしている場合に両方の制御において呼び出されてよい。これは、ズーム遷移がまさに開始しようとしていることを制御に知らせる。セマンティックズームモジュール114によって実施される制御は、スケーリングの間そのUIの部分(例えば、スクロールバー)を隠し、制御が拡大縮小される場合でさえ十分なコンテンツがビューポートを満たすようにレンダリングされることを確かにするよう構成されてよい。上述されたように、configureForZoomのprefetchedPagesパラメータは、どれくらい望まれるのかを制御に知らせるために使用されてよい。
【0129】
[Promise<{item:AnyType,position:Rectangle}>getCurrentItem()]
このメソッドは、beginZoom直後にソース制御において呼び出されてよい。これに応答して、2つの情報片が現在の項目に関して返されてよい。それらは、それの抽象記述(例えば、動的型付き言語において、これは何らかのタイプの変数であってよい。)と、ビューポート座標におけるその境界長方形とを含む。C++又はC#のような静的型付き言語では、ストラクト又はクラスが返されてよい。動的型付き言語では、オブジェクトが“項目(item)”及び“位置(position)”と名付けられた特性とともに返されてよい。それは実際には、返されるそれらの2つの情報片のための“プロミス(Promise)”である点に留意されたい。これは動的型付き言語の約束事であるが、他の言語において同じ約束事が存在する。
【0130】
[Promise<{x:Number,y:Number}>positionItem(AnyType item,Rectangle position)]
このメソッドは、ソース制御におけるgetCurrentItemへの呼出が完了すると、且つ返されたPromiseが完了すると、ターゲット制御において呼び出されてよい。項目及び位置の各パラメータは、たとえ位置長方形がターゲット制御の座標空間に変換されるとしても、getCurrentItemへの呼出から返されるパラメータである。制御は異なるスケールでレンダリングされる。項目は、アプリケーションによって提供されるマッピング関数によって変換されているが、デフォルトによって、それは、getCurrentItemから返される同じ項目である。
【0131】
所与の項目パラメータに対応する“ターゲット制御”を所与の位置長方形と整列させるようそのビューを変えることは、ターゲット制御次第である。制御は、例えば、2つの項目を左寄せにし、2つの項目を中央寄せにし、等、様々な方法において整列してよい。制御はまた、項目を整列させるようそのスクロールオフセットを変更してよい。幾つかの場合に、制御は、例えば、ビューの終わりへのスクロールがターゲット項目を適切に位置づけるのに十分でない場合に、項目を正確に整列させることができないことがある。
【0132】
返されるx,y座標は、どれくらい制御が整列目標に及ばないかを特定するベクトルとして設定されてよい。例えば、0,0の結果は、整列が成功した場合に送信されてよい。このベクトルが非零である場合は、セマンティックズームモジュール114は、整列を確かにするようターゲット制御全体をこの量だけ移動させて、上記の補正アニメーションの項に関連して記載されたように適切な時点でそれを元の位置へ動画化してよい。ターゲット制御はまた、その“現在の項目”をターゲット項目、例えば、getCurrentItemへの呼出から戻るものへ設定してよい。
【0133】
[void endZoom(bool isCurrentView,bool setFocus)]
このメソッドは、ズーム遷移の終わりに両方の制御において呼び出されてよい。セマンティックズームモジュール114は、beginZoomにおいて実行されたものと反対である動作を実行してよく、例えば、通常のUIを再び表示し、且つ、メモリリソースを節約するよう目下オフスクリーンである描画コンテンツを廃棄してよい。メソッド“isCurrentView”は、どちらの結果もズーム遷移後に可能であるから、現在可視的なビューであるかどうかを制御に伝えるために使用されてよい。メソッド“setFocus”は、その現在の項目に対するフォーカスが設定されるべきであるかどうかを制御に伝える。
【0134】
[void handlePointer(Number pointerID)]
このメソッドは、ポインタイベントへのリスニングを行い、扱うべき内在する制御へのポインタを残すべき場合にセマンティックズームモジュール114によって呼び出されてよい。制御へ送られるパラメータは、依然として下に向かうポインタのpointerIDである。1つのIDはhandlePointer()を通じて送られる。
【0135】
1又はそれ以上の実施において、制御はそのポインタにより“何をすべきか”を決定する。リストビューの場合に、セマンティックズームモジュール114は、ポインタが“タッチダウン”においてどこに接したかの経過を追ってよい。“タッチダウン”が項目上にあった場合に、セマンティックズームモジュール114は、“MsSetPointerCapture”が既にタッチされた項目においてMSPointerDownイベントに応答して呼び出されているので、動作を実行しない。項目が押されない場合は、セマンティックズームモジュール114は、独立した操作を始動するようリストビューのビューポート範囲においてMsSetPointerCaptureを呼び出してよい。
【0136】
このメソッドを実施するためにセマンティックズームモジュール114によって従われ得るガイドラインは以下を含んでよい:
●独立した操作を可能にするようビューポート範囲においてMsSetPointerCaptureを呼び出す;及び
●独立した操作を開始せずにタッチイベントに対する処理を実行するよう、それに設定されたスクロールに等しいオーバーフローを有さない要素においてMsSetPointerCaptureを呼び出す。
【0137】
[例となるプロシージャ]
以下の説明は、上記のシステム及び装置を利用して実施され得るセマンティックズーム技術を記載する。プロシージャの夫々の態様は、ハードウェア、ファームウェア、若しくはソフトウェア、又はそれらの組み合わせにおいて実施されてよい。プロシージャは、1又はそれ以上の装置によって実行される動作を特定するブロックの組として示され、必ずしも、夫々のブロックによって動作を実行するために示された順序に制限されない。以下の説明の部分において、
図1の環境100及び
図2乃至9の実施200乃至900が夫々参照される。
【0138】
図12は、オペレーティングシステムがセマンティックズーム機能をアプリケーションに
顕在化させる実施例におけるプロシージャ1200を表す。セマンティックズーム機能は、コンピュータ装置の少なくとも1つのアプリケーションへオペレーティングシステムによって顕在化される(ブロック1202)。例えば、
図1のセマンティックズームモジュール114は、この機能をアプリケーション106へ顕在化させるようコンピュータ装置102のオペレーティングシステムの部分として実施されてよい。
【0139】
アプリケーションによって特定されたコンテンツは、ユーザインターフェースにおいてコンテンツの異なる表現を表示するようズーム入力の少なくとも1つの閾値に対応するセマンティックスワップをサポートするためにセマンティックズーム機能によってマッピングされる(ブロック1204)。上述されたように、セマンティックスワップは、ジェスチャ、マウスの
使用、キーボード、ショートカット、等のような様々な方法において開始されてよい。セマンティックスワップは、如何にしてユーザインターフェースにおけるコンテンツの表現がコンテンツを記述するかを変更するために使用されてよい。この変更及び記述は、上述されたような様々な方法において実行されてよい。
【0140】
図13は、閾値がセマンティックスワップをトリガするために利用される実施例におけるプロシージャ1300を表す。入力は、ユーザインターフェースにおいて表示されるコンテンツの表現の第1のビューをズームするよう検出される(ブロック1302)。上述されたように、入力は、ジェスチャ(例えば、プッシュ又はピンチジェスチャ)、マウス入力(例えば、キーの選択及びスクロールホイールの移動)、キーボード入力、等のような様々な形態をとってよい。
【0141】
入力がセマンティックズーム閾値に達していないとの決定に応答して、サイズが変更され、そのサイズでコンテンツの表現が第1のビューにおいて表示される(ブロック1304)。入力は、例えば、
図2の第2及び第3の段階204,206の間に示されるようにズームレベルを変えるために使用されてよい。
【0142】
入力がセマンティックズーム閾値に達したとの決定に応答して、セマンティックスワップは、ユーザインターフェースにおいて別なふうにコンテンツを記述する第2のビューによりコンテンツの表現の第1のビューを置換するよう実行される(ブロック1306)。前述の例を続けて、入力はセマンティックスワップを引き起こし続けてよく、これは様々な方法においてコンテンツを表すために使用されてよい。このようにして、単一の入力がコンテンツのビューをズームし且つスワップするために利用されてよく、それの様々な例
は上述された。
【0143】
図14は、操作に基づくジェスチャがセマンティックズームをサポートするために利用される実施例におけるプロシージャ1400を表す。入力は、動きを示すと認識される(ブロック1402)。コンピュータ装置102のディスプレイ装置108は、例えば、ユーザの1又はそれ以上の手110の指の近接を検出するタッチスクリーン機能(例えば、容量性タッチスクリーンを含み、撮像技術(IRセンサ、深度検知カメラ)を使用する、等。)を有してよい。この機能は、指又は他の項目の動き、例えば、互いへ向かう又は互いから離れる動きを検出するために使用されてよい。
【0144】
ズームジェスチャは、認識される入力に従うようにユーザインターフェースの表示をズームするよう動作を実行させるために、認識される入力から特定される(ブロック1404)。上記のジェスチャに基づく操作の項に関連して上述されたように、セマンティックズームモジュール114は、セマンティックズームを含む操作に基づく技術を用いるよう構成されてよい。この例では、この操作は、例えば、入力が受け取られる“実時間”において、入力(例えば、ユーザの手110の指の動き)に従うよう構成される。これは、例えば、コンピュータ装置102のファイルシステムにおけるコンテンツの表現を見るために、ユーザインターフェースの表示をズームイン又はズームアウトするよう実行されてよい。
【0145】
セマンティックスワップジェスチャは、動作に、ユーザインターフェースにおいて別なふうにコンテンツを記述する第2のビューによりユーザインターフェースにおけるコンテンツの表現の第1のビューを置換させるよう、入力から特定される(ブロック1406)。
図2乃至6に関連して記載されたように、閾値は、この場合にはセマンティックスワップジェスチャを定義するために利用されてよい。前述の例を続けると、ユーザインターフェースをズームするために使用される入力が継続してよい。閾値が横断されると、セマンティックスワップジェスチャは、ズームのために使用されるビューが他のビューと交換されるように特定されてよい。よって、この例におけるジェスチャは操作に基づく。アニメーション技術がまた利用されてよく、それの更なる説明は後続の図面に関連して見出され得る。
【0146】
図15は、ジェスチャ及びアニメーションがセマンティックズームをサポートするために使用される実施例におけるプロシージャ1500を表す。ズームジェスチャは、動きを記述すると認識される入力から特定される(ブロック1502)。セマンティックズームモジュール114は、例えば、ズームジェスチャのための定義が、例えば、定義された距離にわたるユーザの指の動きに応じていると検出してよい。
【0147】
ズームアニメーションはズームジェスチャの特定に応答して表示され、ズームアニメーションはユーザインターフェースの表示をズームするよう構成される(ブロック1504)。前述の例を続けると、ピンチ又は逆ピンチ(すなわち、プッシュ)ジェスチャが特定されてよい。セマンティックズームモジュール114は次いで、ジェスチャに従うアニメーションを出力してよい。例えば、セマンティックズームモジュール114は、異なるスナップポイントに関してアニメーションを定義し、アニメーションをそれらのポイントに対応するように出力してよい。
【0148】
セマンティックスワップジェスチャは、動きを記述すると認識される入力から特定される(ブロック1506)。先と同じく前述の例を続けると、ユーザの手110の指は、上記のピンチ又は逆ピンチジェスチャのためのセマンティックスワップジェスチャのような他のジェスチャが特定されるように動き続けてよい。セマンティックスワップアニメーションはセマンティックスワップジェスチャの特定に応答して表示され、セマンティックスワップアニメーションは、ユーザインターフェースにおけるコンテンツの第2のビューによりユーザインターフェースにおけるコンテンツの表現の第1のビューを置換するよう構成される(ブロック1508)。このセマンティックスワップは、上述されたような様々な方法において実行されてよい。更に、セマンティックズームモジュール114は、ジェスチャが中止される、例えば、ユーザの手110の指がディスプレイ装置108から放される場合に対処するようスナップ機能を組み込んでよい。様々な他の例も、その精神及び適用範囲から逸脱することなしに考えられる。
【0149】
図16は、ベクトルがスクロール可能な項目のリストを移動するよう計算され且つ補正アニメーションがリストの移動を解除するために使用される実施例におけるプロシージャ1600を表す。スクロール可能な項目の第1のリストを含む第1のビューがディスプレイ装置108でユーザインターフェースにおいて表示される(ブロック1602)。第1のビューは、例えば、ユーザの名前、コンピュータ装置102のファイルシステムにおけるファイル、等を含むコンテンツの表現のリストを含んでよい。
【0150】
入力は、スクロール可能な項目の第2のリストを含む第2のビューにより第1のビューを置換するよう認識され、その場合に、第2のリストにおける項目の中の少なくとも1つは第1のリストにおける項目のグループに相当する(ブロック1604)。入力は、例えば、ジェスチャ(例えば、ピンチ又は逆ピンチ)、キーボード入力、カーソル制御装置によって供給される入力、等であってよい。
【0151】
ベクトルは、第2のリストにおける項目の中の少なくとも1つがディスプレイ装置108によって表示される第1のリストにおける項目のグループと整列されるように、スクロール可能な項目の第2のリストを移動させるよう計算される(ブロック1606)。表示される第1のビューは、第2のリストにおける項目の中の少なくとも1つが、第1のリストにおける項目のグループが表示されたディスプレイ装置108での位置と整列されるように、計算されたベクトルを用いてディスプレイ装置108において第2のビューによって置換される(ブロック1608)。
図7に関連して記載されたように、例えば、第2の段階704において示されるリストは、移動されない場合に、対応するグループの識別子(例えば、“A”から始める名前のための“A”)がディスプレイ装置108の左端に表示されるようにし、従って整列しない。しかし、ベクトルは、第1及び第2のビューにおける項目、例えば、名前“Arthur”に関してディスプレイ装置108上の位置で受け取られる入力、及び“A”に関する項目のグループの表現が第2の段階704において表示される位置、が整列にするように計算されてよい。
【0152】
次いで、第2のビューは、入力の供給が止まったとの決定に応答して、計算されたベクトルによらずに表示される(ブロック1610)。補正アニメーションは、例えば、ベクトルの影響を解除し、さもなければ表示されたであろうようにリストを移動させるよう構成されてよく、それの例は
図7の第3の段階706で示される。様々な他の例もその精神及び適用範囲から逸脱することなしに考えられる。
【0153】
図17は、クロスフェードアニメーションがセマンティックスワップの部分として利用される実施例におけるプロシージャ1700を表す。入力は、動きを記述すると認識される(ブロック1702)。上述されたように、様々な入力が認識されてよく、例えば、キーボード、カーソル制御装置(例えば、マウス)、及びディスプレイ装置108のタッチスクリーン機能によるジェスチャ入力がある。
【0154】
セマンティックスワップジェスチャは、動作に、ユーザインターフェースにおいて別なふうにコンテンツを記述する第2のビューによりユーザインターフェースにおけるコンテンツの表現の第1のリストを置換させるよう、入力から特定される(ブロック1704)。セマンティックスワップは、異なる配置、メタデータ、グループ分けの表現、等を伴うといったように、様々な異なるビュー間の変化を伴ってよい。
【0155】
クロスフェードアニメーションは、一緒に表示されるべき第1及び第2のビューの異なる量を伴って第1及び第2のビュー間を遷移する動作の部分として表示され、それらの量は少なくとも部分的に、入力によって示される動きに基づく(ブロック1706)。例えば、この技術は、両方のビューが互いを通して同時に表示され得るように不透明度を利用してよい。他の例では、クロスフェードは、一方のビューを他方により置き換えること、例えば、他方に代えて一方を移動することを伴ってよい。
【0156】
加えて、量は動きに基づいてよい。例えば、第2のビューの不透明度は、動き量が増大するにつれて増大してよく、一方、第1のビューの不透明度は、動きの量が増大するにつれて低減されてよい。当然、この例は反対にされてもよく、それにより、ユーザはビュー間のナビゲーションを制御してよい。加えて、表示は実時間において応答してよい。
【0157】
入力の供給が止まったとの決定に応答して、第1又は第2のビューのいずれか一方が表示される(ブロック1708)。ユーザは、例えば、ディスプレイ装置108からのコンタクトを解除してよい。セマンティックズームモジュール114は次いで、動きの量に基づき、例えば、閾値を用いることによって、どのビューを表示すべきかを選択してよい。様々な他の例も、例えば、キーボード及びカーソル制御装置の入力に関して、考えられる。
【0158】
図18は、セマンティックズームのためのプログラミングインターフェースを伴う実施例におけるプロシージャ1800を表す。プログラミングインターフェースは、セマンティックズームにおける複数のビューの1つとして制御の使用を可能にするよう定義可能である1又はそれ以上のメソッドを有するように顕在化される(ブロック1802)。ビューは、ユーザ入力に応答して複数のビュー間を切り替えるためのセマンティックスワップ動作を含むセマンティックズームにおける使用のために構成される(ブロック1804)。
【0159】
上述されたように、インターフェースは様々な異なるメソッドを含んでよい。動的型付き言語に関し、インターフェースは、メソッドを有するオブジェクトに対して評価する単一の特性として実施されてよい。他の実施も上述されたように考えられる。
【0160】
様々な異なるメソッドが上述されたように実施されてよい。第1のそのような例はパニングアクセスを伴う。例えば、セマンティックズームモジュール114は、子制御に代わってスクロールの処理を引き継いでよい。よって、セマンティックズームモジュール114は、子制御がそのようなスクロールを実施するために使用すべき自由度を決定してよく、子制御は回答としてhorizontal(水平)、vertical(垂直)、none(なし)、又はboth(両方)を返してよい。これは、両方の制御(及びそれらの対応するビュー)が同じ方向においてパニングを可能にするかどうかを決定するためにセマンティックズームモジュール114によって使用されてよい。そうでない場合に、パニングはサポートされず、セマンティックズームモジュール114は“オフスクリーン”であるコンテンツをプリフェッチしない。
【0161】
他のそのようなメソッドは、2つの制御が同じ方向におけるパニングであるかどうかが決定された後、初期化を完了するために使用され得る“ズームの設定”(configureForZoom)である。このメソッドは、“ズームイン”又は“ズームアウト”されたビューであるかどうかを制御の夫々に知らせるために使用されてよい。それが現在のビューである場合は、これは、時間にわたって保持され得る状態の一部である。
【0162】
更なるそのようなメソッドは“プリフェッチ”(pre-fetch)である。このメソッドは、2つの制御が同じ方向においてパンするよう制御される場合に使用されてよく、それにより、セマンティックズームモジュール114はそれらのパニングを実行してよい。プリフェッチすべき量は、ユーザがトリミングされた制御及び他の不完全な項目を見ることを避けるようパン又はズームする場合にコンテンツが使用のために利用可能である(レンダリングされる)ように構成されてよい。
【0163】
次の例は、パンアクセス、ズームの設定(configureForZoom)、及び現在項目の設定(setCurrentItem)を含む“セットアップ”メソッドを考慮され得るメソッドを伴う。上述されたように、パンアクセスは、制御軸が変化するときはいつでも呼び出されてよく、“horizontal”、“vertical”、“both”又は“none”を返してよい。ズームの設定は、ズーム挙動を実施する場合に使用され得る情報を子制御に提供するために使用され得る。現在項目の設定は、名称が示すように、上述されたようにどの項目が“現在”であるかを特定するために使用されてよい。
【0164】
プログラミングインターフェースにおいて顕在化される他のメソッドは現在項目の取得(getCurrentItem)である。このメソッドは、項目の不透明な表現及びその項目の境界長方形を返すよう構成されてよい。
【0165】
インターフェースによってサポートされ得る更なる他のメソッドはズームの開始(beginZoom)である。このメソッドへの呼出に応答して、制御は、ズーム動作の間“見栄えの悪い”そのUIの部分、例えば、スクロールバーを隠してよい。他の応答は、例えば、縮小時に表示されるべきより大きい長方形がセマンティックズームビューポートを満たし続けることを確かにするよう、レンダリングの拡張を伴ってよい。
【0166】
ズームの終了(endZoom)もサポートされてよく、これは、クロップを実行し、ズームの開始において除去されたスクロールバーのようなUI要素を返すように、ズームの開始において起こったことの反対を伴う。これはまた、ビューが現在可視的であるかどうかを制御に知らせるために使用され得る“isCurrentView”と呼ばれるブール関数をサポートしてよい。
【0167】
位置項目(positionItem)は、2つのパラメータを伴うメソッドである。1つは、項目の不透明な表現であり、他は、境界長方形である。それらは両方とも、“getCurrentItem”と呼ばれる他のメソッドから返された項目の不透明な表現及び境界長方形に関する。なお、それらは、それら両方に発生する変換を含むよう構成されてよい。
【0168】
例えば、ズームインされた制御のビューが表示され、現在の項目がリスト内のスクロール可能な項目のリストにおける第1の項目であるとする。ズームアウト遷移を実行するよう、表現は、ズームインされた制御に対応する制御からの第1の項目の要求であり、その応答はその項目に係る境界長方形である。次いで、長方形は他の制御の座標系に投影されてよい。これを行うよう、他のビューにおけるどの境界長方形がこの境界長方形と整列されるべきかに関して決定がなされてよい。制御は次いで、如何にして長方形を整列すべきか、例えば、左、中央、右、等を決定してよい。様々な他のメソッドも上述されたようにサポートされてよい。
【0169】
[例となるシステム及び装置]
図19は、
図1を参照して記載されるコンピュータ装置102を含む例となるシステム1900を表す。例となるシステム1900は、パーソナルコンピュータ(PC)、テレビ受像器、及び/又はモバイル機器でアプリケーションを実行するときにシームレスなユーザ経験のためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用している、ビデオゲームをプレイしている、ビデオを見ている、等の間に1の装置から次の装置へ移る場合に、共通のユーザ経験のために、3つ全ての環境において実質的に同じに実行される。
【0170】
例となるシステム1900では、複数の装置が中央のコンピュータ装置を通じて相互接続されている。中央のコンピュータ装置は、複数の装置にとって局所的であってよく、又は複数の装置から離れて配置されてよい。一実施形態において、中央のコンピュータ装置は、ネットワーク、インターネット、又は他のデータ通信リンクを介して複数の装置へ接続されている1又はそれ以上のサーバコンピュータのクラウドであってよい。一実施形態において、この相互接続アーキテクチャは、複数の装置のユーザへ共通した且つシームレスな経験を与えるよう複数の装置にわたって提供される機能を可能にする。複数の装置の夫々は、異なる物理的な要件及び能力を有してよく、中央のコンピュータ装置は、各装置に合わせられていながら全ての装置に共通である経験を各装置へ提供することを可能にするプラットフォームを用いる。一実施形態において、対象の装置の分類が作成され、経験は一般的な分類の装置に合わせられる。装置の分類は、物理的な特徴、使用のタイプ、又は装置の他の共通した特性によって定義されてよい。
【0171】
様々な実施において、コンピュータ装置102は、例えばコンピュータ1902、モバイル1904、及びテレビジョン1906等の使用のために、様々な異なる構成を前提としてよい。それらの構成の夫々は、概して異なる構造及び機能を有する装置を含み、よって、コンピュータ装置102は、異なる装置分類の1又はそれ以上に従って構成されてよい。例えば、コンピュータ装置102は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック、等を含む装置のコンピュータ1902分類として実施されてよい。
【0172】
コンピュータ装置102はまた、携帯電話、携帯型音楽プレーヤ、携帯型ゲーム機、タブレット型コンピュータ、マルチスクリーンコンピュータ、等のモバイル機器を含む装置のモバイル1902分類として実施されてよい。コンピュータ装置102はまた、臨時の視聴環境において概してより大きいスクリーンを有するか又はそのようなスクリーンへ接続される装置を含む装置のテレビジョン1906分類として実施されてよい。かかる装置は、テレビジョン、セットトップボックス、ゲーム機、等を含む。ここで記載される技術は、コンピュータ装置102のそれらの様々な構成によってサポートされてよく、ここで記載される具体例としての技術に制限されない。これは、コンピュータ装置102におけるセマンティックズームモジュール114の包含により表され、その実施はまた、以下で記載される“クラウド上”で全体として又は部分的に(例えば、分配される。)達成されてよい。
【0173】
クラウド1908は、コンテンツサービス1912のためのプラットフォーム1910を含み、且つ/あるいは、それを代表する。プラットフォーム1910は、クラウド1908のハードウェア(例えば、サーバ)及びソフトウェアのリソースの内在する機能を抽出する。コンテンツサービス1912は、コンピュータ処理がコンピュータ装置102から離れたサーバで実行される間に利用され得るアプリケーション及びデータを含んでよい。コンテンツサービス1912は、セルラー又はWi−Fiネットワークのようなサブスクライバネットワークを通じて及び/又はインターネットを介してサービスとして提供され得る。
【0174】
プラットフォーム1910は、コンピュータ装置102を他のコンピュータ装置と接続するリソース及び機能を抽出してよい。プラットフォーム1910はまた、プラットフォーム1910を介して実施されるコンテンツサービス1912について直面される要求に対して対応するレベルのスケールを提供するリソースのスケーリングを抽出する働きをしてよい。然るに、相互接続装置環境において、ここで記載される機能の実施は、システム1900の全体にわたって分配されてよい。例えば、機能は、クラウド1908の機能を抽出するプラットフォーム1910を介するとともに、コンピュータ装置102において部分的に実施されてよい。
【0175】
図20は、ここで記載されるジェスチャ技術の実施形態を実施するよう
図1乃至11及び19を参照して記載された如何なるタイプのコンピュータ装置としても実施され得る例となる装置2000の様々な構成要素を表す。装置2000は、装置データ2004(例えば、受信されたデータ、受信されているデータ、送信を予定されているデータ、データのデータパケット、等)の有線及び/又は無線通信を可能にする通信装置2002を有する。装置データ2004又は他の装置コンテンツは、装置のコンフィグレーション設定、装置に記憶されるメディアコンテンツ、及び/又は装置のユーザに関連する情報を含むことができる。装置2000に記憶されるメディアコンテンツは、如何なるタイプのオーディオ、ビデオ、及び/又は画像データも含むことができる。装置2000は、1又はそれ以上のデータ入力部2006を有し、それらを介して、如何なるタイプのデータ、メディアコンテンツ、及び/又は入力も受信され得る。例えば、ユーザ選択可能な入力、メッセージ、音楽、テレビジョンメディアコンテンツ、録画されたビデオコンテンツ、並びにあらゆる他のタイプのオーディオ、ビデオ、及び/又は画像データが、如何なるコンテンツ及び/又はデータ源からも受信される。
【0176】
装置2000はまた、シリアル及び/又はパラレルインターフェース、無線インターフェース、あらゆるタイプのネットワークインターフェース、モデム、並びにあらゆる他のタイプの通信インターフェースとしても実施され得る通信インターフェース2008を有する。通信インターフェース2008は、装置2000と通信ネットワークとの間の接続及び/又は通信リンクを提供し、それによって、他の電子、コンピュータ、及び通信装置が装置2000とデータをやり取りする。
【0177】
装置2000は、装置2000の動作を制御し且つここで記載される技術の実施形態を実施するよう様々なコンピュータ実行可能な又は読出可能な命令を処理する1又はそれ以上のプロセッサ2010(例えば、マイクロプロセッサ、コントローラ、等の何れか)を有する。代替的に、又は追加的に、装置2000は、全体として2012で特定される処理及び制御回路に関連して実施されるハードウェア、ファームウェア、又は固定ロジック回路のいずれか1つ又は組み合わせにより実施され得る。図示されていないが、装置2000は、装置内の様々な構成要素を結合するシステムバス又はデータ伝送システムを有することができる。システムバスは、様々なバスアーキテクチャの何れかを利用するメモリバス若しくはメモリコントローラ、ペリフェラルバス、ユニバーサルシリアルバス、及び/又はプロセッサ若しくはローカルバスのような、異なるバス構造の何れか1つ又は組み合わせを有することができる。
【0178】
装置2000はまた、1又はそれ以上のメモリコンポーネントのようなコンピュータ可読媒体2014を有する。その例は、ランダムアクセスメモリ(RAM)、不揮発性メモリ(例えば、読出専用メモリ(ROM)、フラッシュメモリ、EPROM、EEPROM、等のいずれか1つ又はそれ以上)、及びディスク記憶装置を含む。ディスク記憶装置は、ハードディスクドライブ、書込可能及び/又は書換可能コンパクトディスク(CD)、あらゆるタイプのデジタルバーサタイルディスク(DVD)、等のような如何なるタイプの磁気若しくは光学記憶装置としても実施されてよい。装置2000はまた、大容量記憶媒体装置2016を有することができる。
【0179】
コンピュータ可読媒体2014は、様々な装置アプリケーション2018並びに装置2000の動作態様に関連するあらゆる他のタイプの情報及び/又はデータとともに、装置データ2004を記憶するよう、データ記憶メカニズムを提供する。例えば、オペレーティングシステム2020は、コンピュータ可読媒体2014によりコンピュータアプリケーションとして保持され、プロセッサ2010で実行され得る。装置アプリケーション2018は、装置マネージャ(例えば、制御アプリケーション、ソフトウェアアプリケーション、信号処理及び制御モジュール、特定の装置に固有であるコード、特定の装置のためのハードウェア抽象レイヤ、等)を有することができる。装置アプリケーション2018はまた、ここで記載される技術の実施形態を実施するよう、如何なるシステムコンポーネント又はモジュールも有する。この例では、装置アプリケーション2018は、ソフトウェアモジュール及び/又はコンピュータアプリケーションとして示されるインターフェースアプリケーション2022及び入出力モジュール2024を有する。入出力モジュール2024は、タッチスクリーン、トラックパッド、カメラ、マイクロホン等のような、入力を捕捉するよう構成される装置とのインターフェースを提供するために使用されるソフトウェアを代表する。代替的に、又は追加的に、インターフェースアプリケーション2022及び入出力モジュール2024は、ハードウェア、ソフトウェア、ファームウェア、又はそれらのいずれかの組み合わせとして実施され得る。更に、入出力モジュール2024は、視覚入力及び音声入力を夫々捕捉する別個の装置のような複数の入力装置をサポートするよう構成されてよい。
【0180】
装置2000はまた、オーディオシステム2028へオーディオデータを提供し且つ/あるいは表示システム2030へビデオデータを提供するオーディオ及び/又はビデオ入出力システム2026を有する。オーディオシステム2028及び/又は表示システム2030は、オーディオ、ビデオ、及び画像データを処理し、表示し、及び/又は別なふうにレンダリングする如何なる装置も有することができる。ビデオ信号及びオーディオ信号は、装置2000からオーディオ装置へ及び/又はディスプレイ装置へRF(無線周波数)リンク、Sビデオリンク、コンポジットビデオリンク、コンポーネントビデオリンク、DVI(デジタルビデオインターフェース)、アナログオーディオ接続、又は他の同様の通信リンクを介して伝送され得る。実施形態において、オーディオシステム2028及び/又は表示システム2030は、装置2000の外部構成要素として実施される。代替的に、オーディオシステム2028及び/又は表示システム2030は、例となる装置2000の内蔵構成要素として実施される。
【0181】
[結び]
本発明は、構造的な特徴及び/又は方法論的な動作に特有の言語において記載されてきたが、特許請求の範囲において定義される発明は、必ずしも、記載される具体的な特徴又は動作に制限されないことが理解されるべきである。むしろ、具体的な特徴及び動作は、請求される発明を実施する例となる形態として開示される。