特許第5981661号(P5981661)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ フェイスブック,インク.の特許一覧

特許5981661イメージに関連するアニメーション・シーケンス
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5981661
(24)【登録日】2016年8月5日
(45)【発行日】2016年8月31日
(54)【発明の名称】イメージに関連するアニメーション・シーケンス
(51)【国際特許分類】
   G06F 3/0481 20130101AFI20160818BHJP
   G06F 3/0488 20130101ALI20160818BHJP
【FI】
   G06F3/0481
   G06F3/0488 130
【請求項の数】14
【全頁数】27
(21)【出願番号】特願2015-539736(P2015-539736)
(86)(22)【出願日】2013年10月23日
(65)【公表番号】特表2015-532999(P2015-532999A)
(43)【公表日】2015年11月16日
(86)【国際出願番号】US2013066289
(87)【国際公開番号】WO2014070539
(87)【国際公開日】20140508
【審査請求日】2016年6月1日
(31)【優先権主張番号】13/663,229
(32)【優先日】2012年10月29日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ウォーキン、ブランドン マーシャル
(72)【発明者】
【氏名】マタス、マイケル
(72)【発明者】
【氏名】アメリジ、ブライアン ディ.
【審査官】 笠田 和宏
(56)【参考文献】
【文献】 特表2010−515978(JP,A)
【文献】 特表2010−503082(JP,A)
【文献】 米国特許出願公開第2008/0282202(US,A1)
【文献】 米国特許出願公開第2006/0080621(US,A1)
【文献】 米国特許出願公開第2010/0313165(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 3/01
3/03− 3/0489
3/14− 3/153
(57)【特許請求の範囲】
【請求項1】
方法であって、
コンピューティング装置が、予め設定された複数の表示モードのうちのコンテンツ・アイテムを表示可能な第1の表示モードにおいて前記コンピューティング装置のタッチ・スクリーン上にコンテンツ・アイテムを表示することであって、前記コンテンツ・アイテムは、前記タッチ・スクリーンの表示領域に応じた予め設定された複数の表示モードの各々における予め設定された異なるサイズを有する、前記コンテンツ・アイテムを表示すること、
前記コンピューティング装置が、ユーザによるジェスチャ入力に応答して、前記コンテンツ・アイテムを前記予め設定された複数の表示モードのうちの第1の表示モードから第2の表示モードに遷移させるようにアニメーション・シーケンスを表示すること、を備え、
前記コンテンツ・アイテムは、前記予め設定された複数の表示モードのうちの第1の表示モードよりも第2の表示モードにおいて大きく、
前記アニメーション・シーケンスは、前記ジェスチャ入力の速度または加速度に少なくとも部分的に基づき、且つシミュレートされた3次元の透視技法を含み、
前記アニメーション・シーケンスは、
前記予め設定された複数の表示モードのうちの第1の表示モードにおいて、まずサイズが予め設定された第1のサイズに縮小する間に、前記タッチ・スクリーン上で視覚的に後方に後退し、次いでサイズが予め設定された第2のサイズに増大し、前記予め設定された複数の表示モードのうちの第2の表示モードの最終サイズに到達する間に、前記タッチ・スクリーン上で視覚的に前方に進み、
前記コンテンツ・アイテムの全体は、予め設定された表示モードのうちの第1の表示モードおよび第2の表示モードで表示される、方法。
【請求項2】
ジェスチャ入力
前記タッチ・スクリーンを横切って指を摺動させた結果として得られるスワイプ・ジェスチャを含み
前記アニメーション・シーケンスで前記コンテンツ・アイテムが後方に後退する速度または距離が、前記タッチ・スクリーンを横切って摺動する指の速度に基づいて決定される、請求項に記載の方法。
【請求項3】
前記アニメーション・シーケンスでの前記コンテンツ・アイテムの移動が、仮想ばねを介して前記コンピューティング装置のタッチ・スクリーン上の位置に前記コンテンツ・アイテムを接続する効果をシミュレートすることによるばね運動に基づく、請求項1に記載の方法。
【請求項4】
前記ジェスチャ入力の速度は、正規化因子を用いて正規化される、請求項1に記載の方法。
【請求項5】
1つまたは複数のコンピュータ可読非一時的記憶媒体であって、
実行されたときに、
予め設定された複数の表示モードのうちのコンテンツ・アイテムを表示可能な第1の表示モードにおいてコンピューティング装置のタッチ・スクリーン上にコンテンツ・アイテムを表示することであって、前記コンテンツ・アイテムは、前記タッチ・スクリーンの表示領域に応じた予め設定された複数の表示モードの各々における予め設定された異なるサイズを有する、前記コンテンツ・アイテムを表示すること、
ユーザによるジェスチャ入力に応答して、前記コンテンツ・アイテムを前記予め設定された複数の表示モードのうちの第1の表示モードから第2の表示モードに遷移させるようにアニメーション・シーケンスを表示すること、を実行するように動作可能なソフトウェアを実装し、
前記コンテンツ・アイテムは、前記予め設定された複数の表示モードのうちの第1の表示モードよりも第2の表示モードにおいて大きく、
前記アニメーション・シーケンスは、前記ジェスチャ入力の速度または加速度に少なくとも部分的に基づき、且つシミュレートされた3次元の透視技法を含み、
前記アニメーション・シーケンスは、
前記予め設定された複数の表示モードのうちの第1の表示モードにおいて、まずサイズが予め設定された第1のサイズに縮小する間に、前記タッチ・スクリーン上で視覚的に後方に後退し、次いでサイズが予め設定された第2のサイズに増大し、前記予め設定された複数の表示モードのうちの第2の表示モードの最終サイズに到達する間に、前記タッチ・スクリーン上で視覚的に前方に進み、
前記コンテンツ・アイテムの全体は、予め設定された表示モードのうちの第1の表示モードおよび第2の表示モードで表示される、1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項6】
ジェスチャ入力
前記タッチ・スクリーンを横切って指を摺動させた結果として得られるスワイプ・ジェスチャを含み
前記アニメーション・シーケンスで前記コンテンツ・アイテムが後方に後退する速度または距離が、前記タッチ・スクリーンを横切って摺動する指の速度に基づいて決定される、請求項に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項7】
前記アニメーション・シーケンスでの前記コンテンツ・アイテムの移動が、仮想ばねを介して前記コンピューティング装置のタッチ・スクリーン上の位置に前記コンテンツ・アイテムを接続する効果をシミュレートすることによるばね運動に基づく、請求項に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項8】
前記ジェスチャ入力の速度は、正規化因子を用いて正規化される、請求項に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項9】
システムであって、
1つまたは複数のプロセッサと、
前記プロセッサに結合され、且つ前記プロセッサによって実行可能な命令を含むメモリとを備え、前記プロセッサが、前記命令を実行したときに、
予め設定された複数の表示モードのうちのコンテンツ・アイテムを表示可能な第1の表示モードにおいてコンピューティング装置のタッチ・スクリーン上にコンテンツ・アイテムを表示することであって、前記コンテンツ・アイテムは、前記タッチ・スクリーンの表示領域に応じた予め設定された複数の表示モードの各々における予め設定された異なるサイズを有する、前記コンテンツ・アイテムを表示すること、
ユーザによるジェスチャ入力に応答して、前記コンテンツ・アイテムを前記予め設定された複数の表示モードのうちの第1の表示モードから第2の表示モードに遷移させるようにアニメーション・シーケンスを表示すること、を実行するように動作可能であり、
前記コンテンツ・アイテムは、前記予め設定された複数の表示モードのうちの第1の表示モードよりも第2の表示モードにおいて大きく、
前記アニメーション・シーケンスは、前記ジェスチャ入力の速度または加速度に少なくとも部分的に基づき、且つシミュレートされた3次元の透視技法を含み、
前記アニメーション・シーケンスは、
前記予め設定された複数の表示モードのうちの第1の表示モードにおいて、まずサイズが予め設定された第1のサイズに縮小する間に、前記タッチ・スクリーン上で視覚的に後方に後退し、次いでサイズが予め設定された第2のサイズに増大し、前記予め設定された複数の表示モードのうちの第2の表示モードの最終サイズに到達する間に、前記タッチ・スクリーン上で視覚的に前方に進み、
前記コンテンツ・アイテムの全体は、予め設定された表示モードのうちの第1の表示モードおよび第2の表示モードで表示される、システム。
【請求項10】
ジェスチャ入力
前記タッチ・スクリーンを横切って指を摺動させた結果として得られるスワイプ・ジェスチャを含み
前記アニメーション・シーケンスで前記コンテンツ・アイテムが後方に後退する速度または距離が、前記タッチ・スクリーンを横切って摺動する指の速度に基づいて決定される、請求項に記載のシステム。
【請求項11】
前記アニメーション・シーケンスでの前記コンテンツ・アイテムの移動が、仮想ばねを介して前記コンピューティング装置のタッチ・スクリーン上の位置に前記コンテンツ・アイテムを接続する効果をシミュレートすることによるばね運動に基づく、請求項に記載のシステム。
【請求項12】
前記ジェスチャ入力の速度は、正規化因子を用いて正規化される、請求項に記載のシステム。
【請求項13】
第1のタイプのユーザ入力は、前記コンテンツ・アイテムを次に大きいサイズに遷移させ、
第2のタイプのユーザ入力は、前記コンテンツ・アイテムを次に小さいサイズに遷移させる、請求項9に記載のシステム。
【請求項14】
前記第1のタイプのユーザ入力は、
上方スワイプ、ピンチ・オープン、シングル・タップ、またはこれらの組み合わせを含み、
前記第2のタイプのユーザ入力は、
下方スワイプ、ピンチ・クローズ、またはダブル・タップ、またはこれらの組み合わせを含む、請求項13に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にはユーザ・インターフェースに関する。
【背景技術】
【0002】
ヒューマン・マシン対話の工業デザイン分野でのユーザ・インターフェース(user interface:UI)は、人間とマシンとの間の対話が行われるスペースである。しばしば「ユーザ」と呼ばれる人間と、マシンとの間のユーザ・インターフェースでの対話の目標は、(例えば、ユーザ入力を介する)マシンおよびマシンの動作のユーザによる制御、ならびに(例えば、プログラム出力を介する)マシン・フィードバックである。グラフィカル・ユーザ・インターフェース(graphical user interface:GUI)は、純粋にテキストのコマンドではなく、マルチメディア・オブジェクト(例えば、イメージ、ビデオ、オーディオなど)を通じてユーザが電子装置またはコンピューティング装置上で実行中のソフトウェア・アプリケーションと対話することを可能にするユーザ・インターフェースの1タイプである。
【発明の概要】
【課題を解決するための手段】
【0003】
特定の実施形態では、ユーザにコンテンツを提示するユーザ・インターフェースが、階層構造を有することができる。ユーザ・インターフェースは、任意の数のコンテンツ・セクションを有することができ、各コンテンツ・セクションは、任意の数のコンテンツ・アイテムを有することができる。コンテンツ・アイテムは、任意のタイプまたはフォーマットでよい。ユーザは、コンテンツ・アイテムのいくつかを消費するか、またはそれと対話することができる。特定の実施形態では、各コンテンツ・アイテムはユーザ・インターフェース要素に対応することができる。
【0004】
特定の実施形態では、イメージ(例えば、デジタル写真、または略してフォト)などのコンテンツ・アイテムは、電子装置上に表示されるとき、限定はしないが例えば、全画面モード、オン・ページ・モード(on-page mode)、および索引モード(すなわち、目次(table-of-content:TOC)(TOC)モード)を含む、いくつかのディスプレイ・モードのうちの1つで表示することができる。特定の実施形態では、イメージがタッチ・スクリーンを有する電子装置上に第1のディスプレイ・モードで表示されるとき、ユーザ入力(例えば、ユーザがタッチ・スクリーンを横切ってユーザの指を迅速に摺動させ、指スワイプ、パン、またはドラッグ・ジェスチャを行うこと)が、ディスプレイ・モードを第2のディスプレイ・モードに遷移させ、その結果、イメージが第2のディスプレイ・モードで表示される。ユーザ入力(例えば、ユーザのスワイプ・ジェスチャ)に応答して生じるモード遷移と共にアニメーション・シーケンスを表示することができる。
【図面の簡単な説明】
【0005】
図1】ソーシャル・ネットワーキング・システムに関連する例示的なネットワーク環境を示す図。
図2A】2つの例示的なモバイル電子装置を示す図。
図2B】2つの例示的なモバイル電子装置を示す図。
図3】例示的なソーシャル・グラフを示す図。
図4】例示的なオブジェクト階層を示す図。
図5A】例示的なディスプレイ・モードを示す図。
図5B】例示的なディスプレイ・モードを示す図。
図5C】例示的なディスプレイ・モードを示す図。
図6】2つのディスプレイ・モード間でイメージを遷移させる例示的方法を示す図。
図7A】イメージが2つのディスプレイ・モード間で遷移するときに表示される例示的なアニメーション・シーケンスを示す図。
図7B】イメージが2つのディスプレイ・モード間で遷移するときに表示される例示的なアニメーション・シーケンスを示す図。
図7C】イメージが2つのディスプレイ・モード間で遷移するときに表示される例示的なアニメーション・シーケンスを示す図。
図7D】イメージが2つのディスプレイ・モード間で遷移するときに表示される例示的なアニメーション・シーケンスを示す図。
図7E】イメージが2つのディスプレイ・モード間で遷移するときに表示される例示的なアニメーション・シーケンスを示す図。
図7F】イメージが2つのディスプレイ・モード間で遷移するときに表示される例示的なアニメーション・シーケンスを示す図。
図7G】イメージが2つのディスプレイ・モード間で遷移するときに表示される例示的なアニメーション・シーケンスを示す図。
図7H】イメージが2つのディスプレイ・モード間で遷移するときに表示される例示的なアニメーション・シーケンスを示す図。
図7I】イメージが2つのディスプレイ・モード間で遷移するときに表示される例示的なアニメーション・シーケンスを示す図。
図8】例示的なコンピュータ・システムを示す図。
【発明を実施するための形態】
【0006】
ユーザがアプリケーションと対話することおよび制御することを可能にするために、例えば、デスクトップ・アプリケーション、モバイル・アプリケーション、またはウェブ・ベースのアプリケーションを含む任意のタイプのソフトウェア・アプリケーションにユーザ・インターフェース(user interface:UI)を組み込むことができる。グラフィカル・ユーザ・インターフェース(graphical user interface:GUI)は、例えば、アイコン、ボタン、メニュー、イメージ、ビデオ、またはオーディオを含むマルチメディア・オブジェクトを通じてユーザがソフトウェア・アプリケーションと対話することを可能にするユーザ・インターフェースの1タイプである。
【0007】
特定の実施形態では、ソフトウェア・アプリケーションをソーシャル・ネットワーキング・システムに関連付けることができることができる。図1は、ソーシャル・ネットワーキング・システムに関連する例示的なネットワーク環境100を示す。ネットワーク環境100は、ネットワーク110によって互いに接続されたユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサード・パーティ・システム170を含む。図1はユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サード・パーティ・システム(third-party system)170、およびネットワーク110の特定の構成を示すが、本開示は、ユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サード・パーティ・システム170、およびネットワーク110の任意の適切な構成を企図する。限定ではなく例として、ネットワーク110を迂回して、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサード・パーティ・システム170のうちの2つ以上を互いに直接的に接続することができる。別の例として、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサード・パーティ・システム170のうちの2つ以上を、物理的または論理的に、全体的または部分的に共に配置することができる。さらに、図1は特定の数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サード・パーティ・システム170、およびネットワーク110を示すが、本開示は、任意の適切な数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サード・パーティ・システム170、およびネットワーク110を企図する。限定ではなく例として、ネットワーク環境100は、複数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サード・パーティ・システム170、およびネットワーク110を含むことができる。
【0008】
特定の実施形態では、ユーザ101は、ソーシャル・ネットワーキング・システム160と、またはソーシャル・ネットワーキング・システム160を介して対話または通信する個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサード・パーティ・アプリケーション)、または(例えば、個人またはエンティティの)グループでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、オンライン・ソーシャル・ネットワークをホストするネットワーク・アドレス指定可能コンピューティング・システム(network-addressable computing system)でよい。ソーシャル・ネットワーキング・システム160は、例えば、ユーザ・プロファイル・データ、概念プロファイル・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関する他の適切なデータなどのソーシャル・ネットワーキング・データを生成、格納、受信、および送信することができる。ネットワーク環境100の他の構成要素により、直接的に、またはネットワーク110を介して、ソーシャル・ネットワーキング・システム160にアクセスすることができる。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、例えば、適切なプライバシー設定を設定することなどにより、ユーザ101がそのアクションをソーシャル・ネットワーキング・システム160によって記録させること、または他のシステム(例えば、サード・パーティ・システム170)と共有させることを選択するか、または選択しないことを可能にする許可サーバを含むことができる。特定の実施形態では、サード・パーティ・システム170は、様々なサード・パーティ・ソフトウェア・アプリケーション(例えば、ウェブ・ベースのアプリケーション)をホストすることができるネットワーク・アドレス指定可能コンピューティング・システムでよい。サード・パーティ・システム170は、例えば、テキスト、イメージ、ビデオ、またはオーディオなどの様々なタイプのデータを生成、格納、受信、および送信することができる。ネットワーク環境100の他の構成要素により、直接的に、またはネットワーク110を介して、サード・パーティ・システム170にアクセスすることができる。特定の実施形態では、1人または複数のユーザ101は、1つまたは複数のクライアント・システム130を使用して、ソーシャル・ネットワーキング・システム160またはサード・パーティ・システム170にアクセスしてデータを送り、ソーシャル・ネットワーキング・システム160またはサード・パーティ・システム170からデータを受信することができる。クライアント・システム130は、直接的に、ネットワーク110を介して、またはサード・パーティ・システムを介して、ソーシャル・ネットワーキング・システム160またはサード・パーティ・システム170にアクセスすることができる。限定ではなく例として、クライアント・システム130は、ソーシャル・ネットワーキング・システム160を介してサード・パーティ・システム170にアクセスすることができる。クライアント・システム130は、例えば、パーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、スマートフォン、またはタブレット・コンピュータなどの任意の適切なコンピューティング装置でよい。
【0009】
本開示は任意の適切なネットワーク110を企図する。限定ではなく例として、ネットワーク110のうちの1つまたは複数の部分は、アドホック・ネットワーク(ad hoc network)、イントラネット、エクストラネット、仮想プライベート・ネットワーク(virtual private network:VPN)、ローカル・エリア・ネットワーク(local area network:LAN)、ワイヤレスLAN(wireless LAN:WLAN)、広域ネットワーク(wide area network:WAN)、ワイヤレスWAN(wireless WAN:WWAN)、大都市圏ネットワーク(metropolitan area network:MAN)、インターネットの一部、公衆交換電話網(Public Switched Telephone Network:PSTN)の一部、携帯電話網、またはこれらの2つ以上の組合せを含むことができる。ネットワーク110は1つまたは複数のネットワーク110を含むことができる。
【0010】
リンク150は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサード・パーティ・システム170を通信ネットワーク110に接続するか、または互いに接続することができる。本開示は任意の適切なリンク150を企図する。特定の実施形態では、1つまたは複数のリンク150は、1つまたは複数のワイヤーライン(wireline)(例えば、デジタル加入者線(Digital Subscriber Line:DSL)またはData Over Cable Service Interface Specification(DOCSIS)など)、ワイヤレス(例えば、Wi−FiまたはWorldwide Interoperability for Microwave Access(WiMAX)など)、または光(例えば、同期光ネットワーク(Synchronous Optical Network:SONET)または同期デジタル階層(Synchronous Digital Hierarchy:SDH)など)リンクを含む。特定の実施形態では、1つまたは複数のリンク150はそれぞれ、アドホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部、PSTNの一部、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク150、または2つ以上のそのようなリンク150の組合せを含む。リンク150は、必ずしもネットワーク環境100全体を通じて同一である必要はない。1つまたは複数の第1のリンク150は、1つまたは複数の点で1つまたは複数の第2のリンク150と異なることがある。
【0011】
特定の実施形態では、ソーシャル・ネットワーキング・システム160に関連するサーバと、個々のクライアント・システム130との間で、ネットワーク110を介してデータ(例えば、様々なタイプの情報またはコンテンツを表すデータ)を送ることができる。2つの電子装置(例えば、サーバおよびクライアント)がネットワーク(例えば、ネットワーク110などのコンピュータまたは通信ネットワーク)に接続されるとき、1つまたは複数の適切なネットワーク・プロトコルを使用して、2つの装置間でネットワークを介してデータを送信することができる。ネットワークは、任意の数のサブネットワークを含むことができる。2つの装置間でデータを送信することにより、2つの装置は互いに通信することができる。
【0012】
ネットワーク通信では、ある装置から別の装置に通信(すなわち、データ)を送るのに、プッシュ(push)およびプル(pull)という2つの方式がある。プッシュ技術では、通信トランザクションを求める要求が、送信装置によって開始される。すなわち、送信装置が、受信装置に、通信を所謂「プッシュ」し、この場合、トランザクションで送信装置を能動側とみなすことができ、受信装置を受動側とみなすことができる。一方、プル技術では、通信トランザクションを求める要求が、受信装置によって開始される。すなわち、受信装置が、送信装置から、通信を所謂「プル」する。この場合、トランザクションで送信装置を受動側とみなすことができ、受信装置を能動側とみなすことができる。特定の実施形態では、ソーシャル・ネットワーキング・システム160に関連するサーバが、クライアント・システム130にデータをプッシュすることができる。サーバからクライアントにプッシュされる通信は、「プッシュ通知」と呼ばれることがある。同様に、クライアント・システム130は、ソーシャル・ネットワーキング・システム160に関連するサーバにデータをプッシュすることができる。
【0013】
特定の実施形態では、クライアント・システム130は、モバイル電子装置またはコンピューティング装置でよい。スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータなどのモバイル電子装置は、その位置、方向、または向きを判定する、GPS受信機、コンパス、ジャイロスコープなどの機能を含むことができる。そのようなモバイル装置はまた、BLUETOOTH(登録商標)通信、近距離場通信(near-field communication:NFC)、赤外線(infrared:IR)通信、ワイヤレス・ローカル・エリア・ネットワーク(WLAN)もしくは携帯電話網との通信などの、ワイヤレス通信のための機能をも含むことができる。そのようなモバイル装置はまた、1つまたは複数のカメラ、スキャナ、タッチ・スクリーン、マイクロフォン、あるいはスピーカをも含むことができる。モバイル電子装置はまた、ゲーム、ウェブ・ブラウザ、ソーシャル・ネットワーキング・アプリケーションなどのソフトウェア・アプリケーションを実行することができる。ソーシャル・ネットワーキング・アプリケーションを用いて、ユーザは、ユーザのソーシャル・ネットワーク内の他のユーザと接続し、通信し、情報を共有することができる。
【0014】
特定の実施形態では、モバイル電子装置(例えば、スマートフォンまたはタブレット・コンピュータ)は、タッチ入力を受け取ることのできるタッチ・スクリーンを含むことができる。図2Aは、タッチ・スクリーン215を有する例示的なモバイル電子装置210(例えば、スマートフォン)を示す。タッチ・スクリーン215は、(例えば、ユーザの指からの)タッチまたは物体(例えば、スタイラス(stylus))の近接の存在および位置を検出する1つまたは複数のタッチ・センサおよびタッチ・センサ・コントローラを組み込むことができる。特定の実施形態では、タッチ・スクリーン215を介して検出される特定のタッチの結果、タッチ入力イベントを生じさせることができる。
【0015】
異なるモバイル電子装置は、異なる構成を有してもよい。その結果、異なるモバイル装置のタッチ・スクリーンのサイズ、形状、およびアスペクト比は異なることがある。図2Bは、タッチ・スクリーン225を有する別の例示的なモバイル電子装置220(例えば、タブレット・コンピュータ)を示す。同様に、タッチ・スクリーン225は、(例えば、ユーザの指からの)タッチまたは物体(例えば、スタイラス)の近接の存在および位置を検出する1つまたは複数のタッチ・センサおよびタッチ・センサ・コントローラを組み込むことができる。タッチ・スクリーン225を介して検出される特定のタッチの結果、タッチ入力イベントを生じさせることができる。しかし、モバイル電子装置210および220は2つの異なるタイプの装置であるので、それぞれのタッチ・スクリーン215および225は、異なるサイズおよびアスペクト比を有する。
【0016】
様々なタイプのタッチ入力イベントに対応する、シングル・タップ、ダブル・タップ、ショート・プレス、ロング・プレス、スライド、スワイプ、フリップ、パン、ドラッグ、ピンチ・オープン、またはピンチ・クローズなどの様々なタイプのタッチまたはジェスチャが存在することができる。異なるタッチ入力イベントの結果、異なる応答を得ることができ、本開示は、任意の適用可能なジェスチャを企図する。
【0017】
ソーシャル・ネットワーキング・システム160は、例えば、ユーザ・データ、アプリケーション・データ、またはソーシャル・データを含む様々なタイプのデータを格納することができる。特定の実施形態では、任意の数のノードおよびエッジを有し、各エッジが2つのノードを接続するグラフ内にそのようなデータを格納することができる。グラフはとりわけソーシャル情報を含むので、グラフはしばしば、「ソーシャル・グラフ(social graph)」または「オープン・グラフ(open graph)」と呼ばれる。
【0018】
図3は、例示的なソーシャル・グラフ300を示す。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1つまたは複数のデータ・ストア(data store)内に1つまたは複数のソーシャル・グラフ300を格納することができる。特定の実施形態では、ソーシャル・グラフ300は、複数のノード(これは複数のユーザ・ノード302または複数の概念ノード(concept node)304を含むことができる)と、ノードを接続する複数のエッジ(edge)306とを含むことができる。図3に示される例示的なソーシャル・グラフ300は、説明のために、2次元視覚マップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム160、クライアント・システム130、またはサード・パーティ・システム170は、ソーシャル・グラフ300および適切なアプリケーションについての関連するソーシャル・グラフ情報にアクセスすることができる。ソーシャル・グラフ300のノードおよびエッジを、データ・オブジェクトとして、例えばデータ・ストア(ソーシャル・グラフ・データベースなど)内に格納することができる。そのようなデータ・ストアは、ソーシャル・グラフ300のノードまたはエッジの1つまたは複数の検索可能または照会可能な索引を含むことができる。
【0019】
特定の実施形態では、ユーザ・ノード302は、ソーシャル・ネットワーキング・システム160のユーザに対応することができる。限定ではなく例として、ユーザは、ソーシャル・ネットワーキング・システム160と、またはソーシャル・ネットワーキング・システム160を介して対話または通信する個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサード・パーティ・アプリケーション)、または(例えば、個人またはエンティティの)グループでよい。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム160にアカウントを登録するとき、ソーシャル・ネットワーキング・システム160は、ユーザに対応するユーザ・ノード302を作成し、1つまたは複数のデータ・ストア内にユーザ・ノード302を格納することができる。本明細書で説明するユーザおよびユーザ・ノード302は、適切な場合、登録されたユーザおよび登録されたユーザに関連するユーザ・ノード302を指す。追加または代替として、本明細書で説明するユーザおよびユーザ・ノード302は、適切な場合、ソーシャル・ネットワーキング・システム160に登録していないユーザを指す。特定の実施形態では、ユーザによって提供される情報、またはソーシャル・ネットワーキング・システム160を含む様々なシステムによって収集される情報に、ユーザ・ノード302を関連付けることができる。限定ではなく例として、ユーザは、ユーザの名前、プロファイル写真、連絡先情報、誕生日、性別、結婚状況、家族状況、職業、学歴、好み、関心、または他の人口統計情報を提供することができる。特定の実施形態では、ユーザに関連する情報に対応する1つまたは複数のデータ・オブジェクトにユーザ・ノード302を関連付けることができる。特定の実施形態では、ユーザ・ノード302は、1つまたは複数のウェブ・ページに対応することができる。
【0020】
特定の実施形態では、概念ノード304は概念(concept)に対応することができる。限定ではなく例として、概念は、場所(例えば、映画館、レストラン、ランドマーク、または都市など)、ウェブサイト(例えば、ソーシャル・ネットワーク・システム160に関連するウェブサイトまたはウェブ・アプリケーション・サーバに関連するサード・パーティ・ウェブサイトなど)、エンティティ(例えば、人、会社、グループ、スポーツ・チーム、または有名人など)、ソーシャル・ネットワーキング・システム160内またはウェブ・アプリケーション・サーバなどの外部サーバ上に位置することのできるリソース(例えば、オーディオ・ファイル、ビデオ・ファイル、デジタル・フォト、テキスト・ファイル、構造化された文書、またはアプリケーションなど)、物的または知的財産(例えば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著作物など)、ゲーム、活動、アイデアまたは理論、他の適切な概念、あるいは2つ以上のそのような概念に対応することができる。ユーザによって提供される概念の情報、またはソーシャル・ネットワーキング・システム160を含む様々なシステムによって収集される情報に概念ノード304を関連付けることができる。限定ではなく例として、概念の情報は、名前またはタイトル、1つまたは複数のイメージ(例えば、本のカバー・ページのイメージ)、位置(例えば、住所または地理的位置)、ウェブサイト(それをURLに関連付けることができる)、連絡先情報(例えば、電話番号またはeメール・アドレス)、他の適切な概念情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態では、概念ノード304に関連する情報に対応する1つまたは複数のデータ・オブジェクトに概念ノード304を関連付けることができる。特定の実施形態では、概念ノード304は1つまたは複数のウェブ・ページに対応することができる。
【0021】
特定の実施形態では、ソーシャル・グラフ300内のノードは、ウェブ・ページ(「プロファイル・ページ」と呼ばれることがある)を表すこと、またはウェブ・ページによって表すことができる。プロファイル・ページは、ソーシャル・ネットワーキング・システム160によってホストすること、またはソーシャル・ネットワーキング・システム160にとってアクセス可能にすることができる。プロファイル・ページはまた、サード・パーティ・サーバ170に関連するサード・パーティ・ウェブサイト上でホストすることもできる。限定ではなく例として、特定の外部ウェブ・ページに対応するプロファイル・ページは、特定の外部ウェブ・ページでよく、プロファイル・ページは、特定の概念ノード304に対応することができる。プロファイル・ページは、他のユーザのすべてまたは選択された一部分によって閲覧可能とすることができる。限定ではなく例として、ユーザ・ノード302は、対応するユーザがその中でコンテンツを追加し、宣言を行い、あるいはユーザ自身を表現することのできる、対応するユーザ・プロファイル・ページを有することができる。限定ではなく別の例として、概念ノード304は、特に概念ノード304に対応する概念に関連して、1人または複数のユーザがその中でコンテンツを追加し、宣言を行い、またはユーザ自身を表現することのできる、対応する概念プロファイル・ページを有することができる。
【0022】
特定の実施形態では、概念ノード304は、サード・パーティ・システム170によってホストされるサード・パーティ・ウェブページまたはリソースを表すことができる。サード・パーティ・ウェブページまたはリソースは、他の要素において、コンテンツ、選択可能な、もしくは他のアイコン、またはアクションもしくは活動を表す(例えば、JAVA(登録商標)Script、AJAX、またはPHPコードで実装することのできる)他の対話型オブジェクトを含むことができる。限定ではなく例として、サード・パーティ・ウェブページは、「いいね」、「チェックイン(check in)」、「食べる(eat)」、「レコメンド(recommend)」、または別の適切なアクションもしくは活動などの、選択可能なアイコンを含むことができる。サード・パーティ・ウェブページを閲覧するユーザは、アイコンのうちの1つ(例えば、「食べる」)を選択し、クライアント・システム130に、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム160に送信させることによってアクションを実施することができる。メッセージに応答して、ソーシャル・ネットワーキング・システム160は、ユーザに対応するユーザ・ノード302と、サード・パーティ・ウェブページまたはリソースに対応する概念ノード304との間のエッジ(例えば、「食べる」エッジ)を作成し、1つまたは複数のデータ・ストア内にエッジ306を格納することができる。
【0023】
特定の実施形態では、1つまたは複数のエッジ306によってソーシャル・グラフ300内の1対のノードを互いに接続することができる。1対のノードを接続するエッジ306は、その1対のノード間の関係を表すことができる。特定の実施形態では、エッジ306は、1対のノード間の関係に対応する1つまたは複数のデータ・オブジェクトまたは属性を含むか、または表すことができる。限定ではなく例として、第1のユーザは、第2のユーザが第1のユーザの「友人」であることを示すことができる。この表示に応答して、ソーシャル・ネットワーキング・システム160は、第2のユーザに「友人要求」を送信することができる。第2のユーザが「友人要求」を確認した場合、ソーシャル・ネットワーキング・システム160は、第1のユーザのユーザ・ノード302をソーシャル・グラフ300内の第2のユーザのユーザ・ノード302に接続するエッジ306を作成し、データ・ストアのうちの1つまたは複数(例えば、ソーシャル・ネットワーキング・システム160に関連するデータ・ストア)の中にエッジ306をソーシャル・グラフ情報として格納することができる。図3の例では、ソーシャル・グラフ300は、ユーザ「A」とユーザ「B」のユーザ・ノード302間の友人関係を示すエッジ306と、ユーザ「C」とユーザ「B」のユーザ・ノード302間の友人関係を示すエッジとを含む。本開示は、特定のユーザ・ノード302を接続する特定の属性を有する特定のエッジ306を説明するかまたは図示するが、本開示は、ユーザ・ノード302を接続する任意の適切な属性を有する任意の適切なエッジ306を企図する。限定ではなく例として、エッジ306は、友人関係、家族関係、ビジネスまたは雇用関係、ファン関係(fan relationship)、フォロワ関係、ビジター関係(visitor relationship)、加入者関係、上位/従属関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のそのような関係を表すことができる。さらに、本開示は一般にノードが接続されているものとして説明するが、本開示はまた、ユーザまたは概念が接続されているものとして説明する。本明細書では、接続されているユーザまたは概念に対する参照は、適切な場合、1つまたは複数のエッジ306によってソーシャル・グラフ300内で接続されているユーザまたは概念に対応するノードを指すことがある。
【0024】
特定の実施形態では、ユーザ・ノード302と概念ノード304との間のエッジ306は、概念ノード304に関連する概念に対する、ユーザ・ノード302に関連するユーザによって実施される特定のアクションまたは活動を表すことができる。限定ではなく例として、図3に示されるように、ユーザは、概念に対して「いいね」を表明し、概念に「出席し」、概念を「再生し」、概念を「聴取し」、概念を「調理し」、概念に「取り組み」、または概念を「視聴する」ことができ、そのそれぞれは、エッジ・タイプまたはサブタイプに対応することができる。概念ノード304に対応する概念プロファイル・ページは、例えば、選択可能な「チェックイン」アイコン(例えば、クリッカブル(clickable)「チェックイン」アイコンなど)または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム160は、それぞれのアクションに対応するユーザのアクションに応答して、「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく別の例として、ユーザ(ユーザ「C」)が、特定のアプリケーション(オンライン音楽アプリケーションであるSPOTIFY)を使用して、特定の歌を聴取することができる(「Ramble On」)。この場合、ソーシャル・ネットワーキング・システム160は、(図3に示すように)ユーザに対応するユーザ・ノード302と、歌およびアプリケーションに対応する概念ノード304との間の「聴取済み(listened)」エッジ306および「使用済み(used)」エッジを作成し、ユーザが歌を聴取し、アプリケーションを使用したことを示すことができる。さらに、ソーシャル・ネットワーキング・システム160は、(図3に示すように)歌およびアプリケーションに対応する概念ノード304間の「再生済み(played)」エッジ306を作成し、特定の歌が特定のアプリケーションによって再生されたことを示すことができる。この場合、「再生済み」エッジ306は、外部アプリケーション(SPOTIFY)によって外部オーディオ・ファイル(歌「イマジン」)に対して実施されたアクションに対応する。本開示は、ユーザ・ノード302および概念ノード304を接続する特定の属性を有する特定のエッジ306を説明するが、本開示は、ユーザ・ノード302および概念ノード304を接続する任意の適切な属性を有する任意の適切なエッジ306を企図する。さらに、本開示は単一の関係を表すユーザ・ノード302と概念ノード304との間のエッジを説明するが、本開示は、1つまたは複数の関係を表すユーザ・ノード302と概念ノード304との間のエッジを企図する。限定ではなく例として、エッジ306は、ユーザが特定の概念を好むこと、および特定の概念を使用したことの両方を表すことができる。あるいは、別のエッジ306は、(図3の、ユーザ「E」に関するユーザ・ノード302と、「SPOTIFY」に関する概念ノード304との間で示されるように)ユーザ・ノード302と概念ノード304との間の各タイプの関係(または複数の単一の関係)を表すことができる。
【0025】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ300内のユーザ・ノード302と概念ノード304との間のエッジ306を作成することができる。限定ではなく例として、(例えば、ユーザのクライアント・システム130によってホストされるウェブ・ブラウザまたは専用アプリケーションを使用することによって)概念プロファイル・ページを閲覧するユーザは、「いいね」アイコンをクリックまたは選択することにより、ユーザが概念ノード304によって表される概念を好むことを示すことができ、それによって、ユーザのクライアント・システム130に、ユーザが概念プロファイル・ページに関連する概念を好むことを示すメッセージをソーシャル・ネットワーキング・システム160に送信させることができる。メッセージに応答して、ソーシャル・ネットワーキング・システム160は、ユーザと概念ノード304との間の「いいね」エッジ306で示されるように、ユーザに関連するユーザ・ノード302と、概念ノード304との間のエッジ306を作成することができる。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1つまたは複数のデータ・ストア内にエッジ306を格納することができる。特定の実施形態では、特定のユーザ・アクションに応答して、エッジ306をソーシャル・ネットワーキング・システム160によって自動的に形成することができる。限定ではなく例として、第1のユーザが写真をアップロードし、映画を視聴し、または歌を聴取する場合、第1のユーザに対応するユーザ・ノード302と、これらの概念に対応する概念ノード304との間のエッジ306を形成することができる。本開示は、特定の方式で特定のエッジ306を形成することを説明するが、本開示は、任意の適切な方式で任意の適切なエッジ306を形成することを企図する。
【0026】
特定の実施形態では、例えば、個々のオブジェクトがどのように互いに関係するかに基づいて、オブジェクトのセットを階層として編成することができる。オブジェクト階層は、任意の数のレベルを有することができ、各レベルに、任意の数のオブジェクトが存在することができる。階層内の特定のオブジェクト間に親子関係(parent-child relationship)または兄弟関係(sibling relationship)が存在することができる。オブジェクト階層内で、親オブジェクトは、その子オブジェクトのレベルより1レベル上にある。2つの兄弟オブジェクトは同一レベルにあり、同一の親オブジェクトを共有する。さらに、階層の任意の部分を、それ自体の中の1階層とみなすこともできる。
【0027】
図4は、いくつかのオブジェクト410を含む例示的なオブジェクト階層400の一部を示す。図4は、実際にはオブジェクト階層の視覚表現である。各ノードは、階層内の特定のオブジェクトを表し、2つのノードを接続する各エッジは、2つの対応するオブジェクト間の親子関係を表す。
【0028】
特定の実施形態では、階層内のオブジェクトは親を有することがあり、または有さないことがある。オブジェクトが親を有さない場合、「ルート」オブジェクトと呼ばれることがある(例えば、オブジェクト410A)。通常、ルート・オブジェクトは、階層の第1のレベルまたは最上端のレベルに配置される。特定の実施形態では、階層内のオブジェクトは、子を有することがあり、またはどんな子も有さないことがある。オブジェクトがどんな子も有さない場合、「リーフ」または「終端」オブジェクトと呼ばれることがある(例えば、オブジェクト410B)。オブジェクトが子を有する場合(例えば、オブジェクト410C)、オブジェクトは任意の数の子を有することができる。さらに、同じ親を共有するオブジェクトは、互いの「兄弟」と呼ばれることがある。例えば、図4では、オブジェクト410Cは、オブジェクト410Dおよび410Bの親である。オブジェクト410Dおよび410Bは、オブジェクト410Cの子であり、互いに対する兄弟である。したがって、オブジェクトの階層(例えば、オブジェクト階層400)は、個々のオブジェクト(例えば、オブジェクト410)自体を含むだけではなく、特定のオブジェクト間の関係も示す。さらに、階層内の特定のオブジェクトの位置は、階層内の他のオブジェクトとの関係を示すことができる。
【0029】
オブジェクト410は様々なタイプでよく、本開示は任意の適用可能なオブジェクト・タイプを企図する。限定はしないが例えば、「オブジェクト」という用語は、限定はしないが、イメージ、ビデオ、キャプション、テキスト・ブロックまたはボックス、ユーザ・インターフェース要素、クリッカブル・リンク、ニュースフィード・ストーリー、他のオブジェクトに対する参照、広告、カレンダ・イベント、グラフィカルにレンダリングすることのできるオープン・グラフ解析を表示する単位、アプリケーション、ウェブサイト、ウェブ・ページ、ブック、章を含む、任意のタイプのコンテンツを指す。特定の実施形態では、オブジェクトの別のより大きい階層の一部であるオブジェクトの階層が与えられると、特定のオブジェクト間の階層関係(例えば、親子または兄弟関係、階層内のオブジェクトの位置)が、これらのオブジェクトがユーザ・インターフェースのコンテキスト(context)でどのように振る舞うか、またはどのようにオブジェクトがユーザに提示されるかについてのいくつかの側面を指示することができる。
【0030】
1例を挙げると、コンピューティング装置のデスクトップのコンテキストでは、デスクトップは親オブジェクト、時には階層のルート・オブジェクトでよく、その子オブジェクトは、デスクトップ上で利用可能な個々のソフトウェア・アプリケーションである。ソフトウェア・アプリケーションは、それ自体がデスクトップの子オブジェクトのうちの1つであるが、そのソフトウェア・アプリケーションの個々の構成要素の親オブジェクトでもある。異なるソフトウェア・アプリケーションは異なる構成要素を含むことができる。例えば、デジタル・ブックを管理するソフトウェア・アプリケーション(例えば、ブック・リーダー・アプリケーション(book reader application))について、その構成要素は、利用可能なデジタル・ブック、各ブックの個々の章、各章のページ、および各ページ上のテキスト、イメージ、ビデオ、オーディオ、または他のコンテンツもしくはメディア要素を含むことができる。これらのそれぞれはまた、階層内のオブジェクト(例えば、ユーザ・インターフェース構成要素)に対応する。より具体的には、階層内で、デジタル・ブック・アプリケーションはデジタル・ブックの親オブジェクトでよい。デジタル・ブックは、そのブックの個々の章の親オブジェクトでよい。章は、それ自体がブックの子オブジェクトのうちの1つであるが、章内のページの親オブジェクトでもある。ページは、そのページ上のテキスト、イメージ、ビデオ、オーディオ、または他のコンテンツもしくはメディア要素の親オブジェクトである。テキスト・ブロック、イメージ、ビデオ、オーディオ、または他のコンテンツもしくはメディア要素は、それが属するページの子オブジェクトのうちの1つである。同様に、ニュース・フィードを管理するソフトウェア・アプリケーションでは、その構成要素は、各チャネル内の個々のニュース・チャネルおよびニュース・ストーリーを含むことができる。これらのそれぞれはオブジェクトに対応することができる。階層内で、ニュース・フィード・アプリケーションは、それ自体がデスクトップの子オブジェクトのうちの1つであるが、ニュース・チャネルの親オブジェクトでもある。ニュース・チャネルは、そのチャネル内に含まれるニュース・ストーリーの親オブジェクトである。
【0031】
別の例として、インターネットまたはワールド・ワイド・ウェブのコンテキストでは、インターネットは、その子オブジェクトが個々のウェブサイトである親オブジェクトである。ウェブサイトは、それ自体がインターネットの子オブジェクトのうちの1つであるが、そのウェブサイトの個々のウェブ・ページの親オブジェクトでもある。ウェブ・ページは、それ自体がそのウェブ・ページが属するウェブサイトの子オブジェクトのうちの1つであるが、ウェブ・ページ内に含まれるテキスト、イメージ、ビデオ、オーディオ、またはリンク(例えば、ユニフォーム・リソース・ロケータ(URL))の親オブジェクトである。各テキスト・ブロック、イメージ、ビデオ、オーディオ、またはリンクはまた、階層内の特定のオブジェクトに対応する。
【0032】
第3の例として、ソーシャル・ネットワーキング・システム160によって実装されるソーシャル・ネットワーキング・ウェブサイトなどのウェブサイトを、ソーシャル・ネットワーキング・ウェブサイトのコンテンツをナビゲートするための階層構造として構成することもできる。このコンテキストでは、ソーシャル・ネットワーキング・ウェブサイトは、その子オブジェクトがウェブサイトの構成要素(例えば、フォト・アルバム、ユーザ・プロファイル・ページなど)である親オブジェクトでよい。例えば、フォト・アルバムは、それ自体がソーシャル・ネットワーキング・ウェブサイトの子オブジェクトであるが、親オブジェクトであり、アルバム内の個々のフォトは、フォト・アルバムの子オブジェクトでよい。ユーザのプロファイル・ページをそのような階層式に構築することもできる。プロファイル・ページ自体を親オブジェクトとみなすことができ、プロファイル・ページ上の個々のオブジェクトは、プロファイル・ページの子オブジェクトでよい。特定の実施形態では、(例えば、ユーザへの提示のために)プロファイル・ページを、限定はしないが例えば、フォト、フォト・アルバム、チェックイン、他のユーザからのコメント、出席したイベント、タグ、ユーザがプロファイル・ページに追加したアプリケーション、ストーリー、ユーザが聴取した歌、プレイリストなどのオブジェクトのリニア・タイムライン(linear timeline)とみなすことができ、リニア・タイムラインとしてレンダリングすることができる。これらの様々なタイプのオブジェクトはすべて、プロファイル・ページの子でよく、または複数のレベルとしてさらに構成することができる。いくつかの形態では、ユーザのプロファイル・ページは、ユーザの教育情報および職業情報、ユーザのパブリック「ウォール(wall)」、ユーザのソーシャル接続などの任意の数のセクションを含むことができる。次いで、上記の様々なタイプのオブジェクトを特定のセクションに分割することができる。
【0033】
特定の実施形態では、オブジェクト410は、ユーザ・インターフェースの構成要素でもよい。この場合、オブジェクト階層400はユーザ・インターフェースに対応することができ、各オブジェクト410は、ユーザ・インターフェースの特定の構成要素に対応することができる。ユーザ・インターフェースは、様々なタイプの構成要素を有することができ、本開示は、任意の適用可能なユーザ・インターフェース構成要素タイプを企図する。例えば、ユーザ・インターフェース構成要素(すなわち、オブジェクト410)は、ウィンドウ、セクション、タブ、イメージ、ビデオ、オーディオ、テキスト・ブロック、メニュー、アイコン、ボタン、チェックボックス、ウェブサイト、ウェブ・ページ、フレーム、クリッカブル・リンク、メッセージ、ポスト、または入力フィールドである。特定の実施形態では、ユーザが、限定はしないが例えば、オブジェクト410と対話し、オブジェクト410を閲覧し、読み、聴取し、操作し、または処理することができる場合、ユーザはオブジェクト410を消費することができる。例えば、いくつかのユーザによる消費可能オブジェクト(user-consumable object)410は、テキスト、イメージ、ビデオ、オーディオ、フィード(feed)、実行可能ファイル(executable)(例えば、アプリケーション・プログラムまたはゲーム)、ウェブサイト、ウェブ・ページ、デジタル・ブック、フォト・アルバム、ポスト、またはメッセージである。
【0034】
特定の実施形態では、オブジェクト階層400に対応するユーザ・インターフェースが(例えば、クライアント・システム130上に)表示されるとき、対応するオブジェクト階層400の構造が、ユーザ・インターフェースの構造を反映することができる。オブジェクト階層400内に反映される、ユーザ・インターフェース内の個々の構成要素間の関係は、これらの構成要素がどのように編成され、ユーザに提示されるかに影響を及ぼす。ユーザ・インターフェースは、オブジェクト階層400の個々のレベルにそれぞれ対応する任意の数のレイヤを有することができる。オブジェクト階層400の特定のレベルのオブジェクト410(例えば、ユーザ・インターフェース構成要素)が、ユーザ・インターフェースの対応するレイヤ内に表示される。いくつかの形態では、ユーザ・インターフェースの最低または最下端のレイヤが、オブジェクト階層400の第1または最上端のレベルに対応する。したがって、ルート・オブジェクト410Aが、ユーザ・インターフェースの最低のレイヤ内に表示される。さらに、ユーザ・インターフェースでは、各オブジェクト410(例えば、ユーザ・インターフェース構成要素)が、親が存在する場合にその親が表示されるレイヤのすぐ上、かつ子が存在する場合にその子が表示されるレイヤのすぐ下のレイヤ内に表示される。兄弟オブジェクト410が同一のレイヤに表示される。したがって、ユーザ・インターフェースの構成要素の位置は、ユーザ・インターフェース内の他の構成要素との関係(例えば、親子または兄弟)を示す。
【0035】
特定の実施形態では、ユーザ・インターフェース構成要素(例えば、イメージ、ビデオ、フォルダなど)を様々なディスプレイ・モードで表示することができる。1例を挙げると、ユーザ・インターフェース構成要素が表示エリア(例えば、電子装置の画面)全体またはほぼ全体を占有する「全画面」モードでユーザ・インターフェース構成要素を表示することができる。別の例として、ユーザ・インターフェース構成要素が別のユーザ・インターフェース構成要素内に含まれ、その別のユーザ・インターフェース構成要素の一部として表示される(例えば、イメージがウェブ・ページの一部として表示される)「オン・ページ」モードでユーザ・インターフェース構成要素を表示することができる。第3の例として、ユーザ・インターフェース構成要素が一連のユーザ・インターフェース構成要素の一部である(例えば、イメージが、同一のアルバムの別のイメージと共に表示され、またはブックの章が、同一のブックの別の章と共にブックの目次内に表示される)「索引」モードでユーザ・インターフェース構成要素を表示することができる。
【0036】
特定の実施形態では、階層ユーザ・インターフェースを使用して、ユーザにコンテンツを提示することができる。そのようなユーザ・インターフェースは、「コンテンツ・フィード」または「ニュース・フィード」ユーザ・インターフェースと呼ばれることがある。コンテンツは、限定はしないが例えば、テキスト、アイコン、イメージ、ビデオ、オーディオ、ウェブ・ページ、ポスト、またはメッセージなどの任意のタイプおよびフォーマットである。本開示は、任意の適用可能なコンテンツ・タイプおよびフォーマットを企図する。特定の実施形態では、個々のコンテンツ・アイテム(例えば、テキスト、イメージ、ビデオ、オーディオ、ウェブ・ページ、ポスト、メッセージ、ニュース・ピースなど)を、コンテンツ・セクションと呼ばれる様々なカテゴリに編成することができる。例えば、関連するコンテンツ・アイテムを同一のコンテンツ・セクションに分類することができる。ユーザ・インターフェースは、任意の数のコンテンツ・セクションを含むことができ、各コンテンツ・セクションは、任意の数のコンテンツ・アイテムを含むことができる。階層的に、コンテンツ・セクションは、そのセクションに属するコンテンツ・アイテムの親である。例えば、休日旅行中に撮られた様々なフォトを同一のアルバムとして編成することができ、様々なフォト・アルバムをユーザ・インターフェースのフォト・セクションとして編成することができる。
【0037】
特定の実施形態では、ユーザは、特定のコンテンツ・アイテムを消費するか、または特定のコンテンツ・アイテムと対話することができる。例えば、ユーザがコンテンツ・アイテムをスクロールし、オープンし、閲覧し、聴取し、選択し、検討し、またはそれに対してコメントするとき、ユーザはコンテンツ・アイテムを消費する。ユーザがコンテンツ・アイテムを選択し、クリックし、タップし、検討し、またはそれに対してコメントするとき、ユーザはコンテンツ・アイテムと対話する。本開示は、ユーザがコンテンツ・アイテムを消費するか、またはコンテンツ・アイテムと対話するための任意の適用可能な手段を企図する。
【0038】
特定の実施形態では、コンテンツ・アイテムが電子装置の画面上に(例えば、階層ユーザ・インターフェースの一部として)表示されるとき、限定はしないが例えば、全画面モード、オン・ページ・モード、索引モードなどのいくつかのディスプレイ・モードのうちの1つで、コンテンツ・アイテムを表示することができる。図5Aは、スマートフォンの画面上に全画面モードで表示される例示的なイメージ511(例えば、デジタル写真、または略してフォト)を示す。この場合、イメージ511は、それ自体で、表示エリア(例えば、スマートフォンの画面)全体またはほぼ全体を占有する。図5Bは、スマートフォンの画面上にオン・ページ・モードで表示される例示的なイメージ521を示す。この場合、イメージ521が別のコンテンツ・アイテム522(例えば、ウェブ・ページ)内に含まれ、別のコンテンツ・アイテム522の一部(例えば、構成要素)として表示される。図5Cは、スマートフォンの画面上に索引モードで表示される例示的なイメージ511を示す。この場合、イメージ511は、同一または異なるタイプの一連のコンテンツ・アイテム531の一部であり、これらのコンテンツ・アイテムのうちのいくつかが(例えば、索引または目次として)一緒に表示される。
【0039】
特定の実施形態では、コンテンツ・アイテムが、あるディスプレイ・モードで表示されるとき、コンテンツ・アイテムは、ユーザ入力に応答して、別のディスプレイ・モードに遷移することができる。1例を挙げると、図5Aに示されるようにイメージ511が全画面モードで表示される間に、ユーザがスマートフォンのタッチ・スクリーン上でピンチ・クローズ・ジェスチャを行うことに応答して、イメージ511は、オン・ページ・モードまたは索引モードに遷移することができる。別の例として、図5Bに示されるようにイメージ521がオン・ページ・モードで表示される間に、ユーザがスマートフォンのタッチ・スクリーン上でピンチ・オープン・ジェスチャを行うことに応答して、イメージ521は、全画面モードに遷移することができる。逆に、ユーザがスマートフォンのタッチ・スクリーン上でピンチ・クローズ・ジェスチャを行うことに応答して、イメージ521は、索引モードに遷移することができる。第3の例として、図5Cに示されるようにイメージ511が索引モードで表示される間に、ユーザがスマートフォンのタッチ・スクリーン上でピンチ・オープン・ジェスチャを行うことに応答して、イメージ511は、オン・ページ・モードまたは全画面モードに遷移することができる。
【0040】
図6は、2つのディスプレイ・モードの間でイメージを遷移させる例示的な方法600を示す。方法600は、ステップ610から始めることができ、デジタル写真などのイメージが第1のディスプレイ・モードで表示される。ステップ620で、イメージとの間のユーザ対話などのユーザ入力に応答して、イメージは、第1のディスプレイ・モードから第2のディスプレイ・モードに遷移することができる。特定の実施形態では、モード遷移中にアニメーション・シーケンスを表示することができる。いくつかの実装では、アニメーション・シーケンスはイメージ自体を特徴付けることができる。
【0041】
方法600のステップをさらに説明するために、図7A〜7Iに示される例示的なアニメーション・シーケンスを考慮する。図7Aでは、イメージ711が、スマートフォンの画面上に全画面モードで表示される。画面はタッチ・スクリーンであり、ユーザのタッチ・ジェスチャを入力として受け取ることができる。ユーザがタッチ・スクリーンを横切って指を迅速に摺動させることによって指スワイプ・ジェスチャを行うと仮定する。このスワイプ・ジェスチャの結果、ユーザ入力がスマートフォンで受け取られ、それにより、イメージ711を現在のディスプレイ・モード(例えば、全画面モード)から別のディスプレイ・モード(例えば、オン・ページ・モード)に遷移させることができる。
【0042】
特定の実施形態では、異なるジェスチャにより、イメージに異なるタイプのモード遷移を行わせることができる。1例を挙げると、イメージがオン・ページ・モードで表示されるとき、(例えば、タッチ・スクリーンを横切って指を下端から上端に迅速に摺動する)上方指スワイプにより、イメージを全画面モードに遷移させることができ、(例えば、タッチ・スクリーンを横切って指を上端から下端に迅速に摺動する)下方指スワイプにより、イメージを索引モードに遷移させることができる。別の例として、イメージが全画面モードで表示されるとき、(例えば、2つの指を互いに近づける)ピンチ・クローズ・ジェスチャにより、イメージをオン・ページ・モードまたは索引モードに遷移させることができる。逆に、イメージが索引モードで表示されるとき、(例えば、2つの指を遠ざける)ピンチ・オープン・ジェスチャにより、イメージをオン・ページ・モードまたは全画面モードに遷移させることができる。パンやドラッグなどの他のジェスチャを使用してこれらの遷移を引き起こすこともでき、本開示は任意の適用可能なジェスチャを企図する。
【0043】
より一般的に言えば、様々なサイズでイメージを表示することができる。例えば、イメージが全画面モードで表示されるとき、イメージがより大きいサイズで示されるが、イメージが索引モードで表示されるとき、より小さいサイズで示される。したがって、各ディスプレイ・モードは、イメージを表示するための特定のサイズに対応することができる。特定の実施形態では、イメージが特定のサイズで表示されるとき、あるタイプのユーザ入力(例えば、上方スワイプ、ピンチ・オープン、またはシングル・タップ)により、イメージを次に大きいサイズに遷移させることができ、別のタイプのユーザ入力(例えば、下方スワイプ、ピンチ・クローズ、またはダブル・タップ)により、イメージを次に小さいサイズに遷移させることができる。例えば、ユーザがイメージを連続するより大きいサイズで閲覧したい場合、ユーザは、上方スワイプ・ジェスチャを反復的に行うことができる。逆に、ユーザが連続するより小さいサイズでイメージを閲覧したい場合、ユーザは、下方スワイプ・ジェスチャを反復的に行うことができる。
【0044】
図7Aより、(例えば、指スワイプ・ジェスチャによって引き起こされた)ユーザ入力を受け取ったとき、イメージ711が現在のディスプレイ・モード(例えば、全画面モード)から別のディスプレイ・モード(例えば、オン・ページ・モード)に遷移する間、アニメーション・シーケンスを表示することができる。特定の実施形態では、アニメーション・シーケンスはイメージ711自体を特徴とすることができる。いくつかの形態では、アニメーション・シーケンスについて、図7B〜7Dに示されるように、イメージ711は、サイズが縮小する間、まず後方に後退することができる。イメージ711が最小サイズ(例えば、図7D)に達するとき、図7E〜7Gに示されるように、次いでイメージ711は、サイズが増大する間、前方に進む。イメージ711が最大サイズ(例えば、図7G)に達するとき、イメージ711は、図7Hに示されるように、再びサイズを縮小することができ、最終的に、図7Iに示されるように、イメージ711が遷移する遷移先のディスプレイ・モードに対応するサイズおよび位置に達するまで、イメージ711がオン・ページ・モードで表示され、別のコンテンツ・アイテム712(例えば、ウェブ・ページ)の一部として含まれる。
【0045】
3次元オブジェクトが2次元媒体で提示されるとき、様々な透視技法を利用して、3次元視覚効果をシミュレートすることができる。例えば、オブジェクトのサイズが徐々に縮小するとき、オブジェクトが徐々に後方に後退し、閲覧者から遠ざかる視覚効果を有する。逆に、オブジェクトのサイズが徐々に増大するとき、オブジェクトが徐々に前方に進み、閲覧者に近づく視覚効果を有する。したがって、図7A〜7Iに示されるアニメーション・シーケンスでは、図7B〜7Dに示されるように、イメージ711のサイズが徐々に縮小するとき、イメージ711がスマートフォンの画面上で徐々に後方に後退し、ユーザから遠ざかる視覚効果を有する。逆に、図7E〜7Gに示されるように、イメージ711のサイズが徐々に増大するとき、イメージ711が画面上で徐々に前方に進み、ユーザに近づく視覚効果を有する。
【0046】
特定の実施形態では、アニメーション・シーケンスにおけるイメージの移動は、ばね運動に基づくことができる。いくつかの形態では、力学および物理学でばねの伸長がばねに加えられる負荷に正比例することを述べるフックの弾性の法則に基づいて、ばね運動を定義することができる。数学的には、フックの法則は、F=−kxであることを述べ、ただしxは、ばねの端部の、ばねの平衡位置からの変位であり、Fはその端部でばねによって発揮される復元力であり、kはばね定数の比率である。
【0047】
いくつかの形態では、アニメーション・シーケンス中のイメージの移動は、イメージ(例えば、イメージの中心)を仮想ばねの一端に接続する効果をシミュレートすることができ、ばねの他端が、(例えば、イメージが遷移するディスプレイ・モードで)イメージを表示すべき画面上の位置に接続される。アニメーション・シーケンスにおいて、イメージを画面上のその目的位置から変位することができる(例えば、後方に後退し、前方に進み、またはパニングする)。それでも、イメージは、仮想ばねによってその元の位置および状態につながれる。したがって、アニメーション・シーケンスにおけるイメージの移動は、バウンシング視覚品質(bouncing visual quality)を有することができる。
【0048】
特定の実施形態では、イメージを2つのディスプレイ・モード間で遷移させるタッチ・ジェスチャを行うときのユーザの指の速度または加速度に基づいて、モード遷移中のアニメーション・シーケンスでのイメージの移動(例えば、イメージがそのサイズを変化させ、または後方に後退し、または前方に進む速度、アニメーション・シーケンスで使用されるイメージの最小または最大サイズ)を判定することができる。例えば、電子装置のタッチ・スクリーンを横切って指を鉛直方向に(例えば、上方および下方に)摺動させることによってユーザがスワイプ・ジェスチャを行うと仮定する。いくつかの形態では、タッチ・スクリーンを横切って鉛直方向に移動するユーザの指の速度または加速度を記録するか、または判定することができる。画面に対する水平方向が「x」方向であり、画面に対する鉛直方向が「y」方向であり、画面に対する垂直方向が「z」方向であると仮定する。その場合、タッチ・スクリーンを横切って鉛直方向に移動するユーザの指の速度または加速度は、「y」方向の速度または加速度である。アニメーション・シーケンスにおいてイメージがどれほど早く、またはどれほど後方に後退すべきかを判定するために、「y」方向のこの速度または加速度を「z」方向の対応する速度または加速度に変換することができる。イメージは画面に対して後方に後退し、前方に進むので、イメージは「z」方向に移動する。したがって、タッチ・スクリーン上の「y」方向のユーザの指の移動は、アニメーション・シーケンスにおいて「z」方向のイメージの移動を制御することができる。例えば、ユーザがより高速なスワイプ・ジェスチャを行う場合、イメージがより速く、より遠くに、後方に後退する。逆に、ユーザがより低速なスワイプ・ジェスチャを行う場合、イメージがより低速に、より近くに、後方に後退する。
【0049】
特定の実施形態では、スワイピング・ジェスチャの速度を正規化因子(normalization factor)で割ることにより、速度を(尺度およびサイズに関して)正規化することができる。いくつかの形成では、正規化因子はそれ自体、速度「v」の関数である。いくつかの実装では、正規化因子は速度「v」に関して以下のように定義される。
【0050】
(1)0≦|v|≦3000のとき、正規化因子=170
(2)3000<|v|≦4500のとき、正規化因子=(170+(((|v|−3000)/1500)*50))
(3)4500<|v|<無限大のとき、正規化因子=220
ケース(2)では、正規化因子は170から220までの線形関数であることに留意されたい。したがって速度は、速度が属する範囲に関する適切な正規化因子で速度を割ることによって正規化される。
【0051】
特定の実施形態は、適切な場合、図6の方法の1つまたは複数のステップを反復することができる。本開示は、図6の方法の特定のステップが特定の順序で行われるものとして説明および図示するが、本開示は、任意の適切な順序で行われる図6の方法の任意の適切なステップを企図する。さらに、本開示は、図6の方法の特定のステップを実施する特定の構成要素、装置、またはシステムを説明および図示するが、本開示は、図6の方法の任意の適切なステップを実施する任意の適切な構成要素、装置、またはシステムの任意の適切な組合せを企図する。
【0052】
特定の実施形態では、方法600をコンピュータ・ソフトウェアとして実装し、電子またはコンピュータ・システム上で実行することができる。図8は、例示的なコンピュータ・システム800を示す。特定の実施形態では、1つまたは複数のコンピュータ・システム800は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータ・システム800は、本明細書で説明または図示される機能を提供する。特定の実施形態では、1つまたは複数のコンピュータ・システム800上で実行中のソフトウェアが、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施しまたは本明細書で説明または図示される機能を提供する。特定の実施形態は、1つまたは複数のコンピュータ・システム800の1つまたは複数の部分を含む。本明細書では、適切な場合、コンピュータ・システムに対する参照はコンピューティング装置を包含し、逆も同様である。さらに、適切な場合、コンピュータ・システムに対する参照は、1つまたは複数のコンピュータ・システムを包含する。
【0053】
本開示は、任意の適切な数のコンピュータ・システム800を企図する。本開示は、任意の適切な物理的形態を取るコンピュータ・システム800を企図する。限定ではなく例として、コンピュータ・システム800は、組込みコンピュータ・システム、システム・オン・チップ(SOC)、シングル・ボード・コンピュータ・システム(SBC)(例えば、コンピュータ・オン・モジュール(COM)やシステム・オン・モジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話型キオスク、メインフレーム、コンピュータ・システムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらの2つ以上の組合せでよい。適切な場合、コンピュータ・システム800は、1つまたは複数のコンピュータ・システム800を含むことができ、一体型または分散型でよく、複数の場所にわたるものでよく、複数のマシンにわたるものでよく、複数のデータセンタにわたるものでよく、またはクラウド内に常駐することができ、クラウドは、1つまたは複数のネットワーク内の1つまたは複数のクラウド構成要素を含むことができる。適切な場合、1つまたは複数のコンピュータ・システム800は、実質的な空間的または時間的な限定なしに、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施することができる。限定ではなく例として、1つまたは複数のコンピュータ・システム800は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップをリアル・タイムに、またはバッチ・モードで実施することができる。適切な場合、1つまたは複数のコンピュータ・システム800は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを異なる時刻または異なる場所で実施することができる。
【0054】
特定の実施形態では、コンピュータ・システム800は、プロセッサ802、メモリ804、ストレージ806、入力/出力(I/O)インターフェース808、通信インターフェース810、およびバス812を含む。本開示は、特定の構成の、特定の数の特定の構成要素を有する特定のコンピュータ・システムを説明および図示するが、本開示は、任意の適切な構成の、任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータ・システムを企図する。
【0055】
特定の実施形態では、プロセッサ802は、コンピュータ・プログラムを構成するような命令を実行するハードウェアを含む。限定ではなく例として、命令を実行するために、プロセッサ802は、内部レジスタ、内部キャッシュ、メモリ804、またはストレージ806から命令を取り出し(またはフェッチし)、その命令を復号化および実行し、次いで内部レジスタ、内部キャッシュ、メモリ804、またはストレージ806に1つまたは複数の結果を書き込むことができる。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ802を企図する。限定ではなく例として、プロセッサ802は、1つまたは複数の命令キャッシュ、1つまたは複数のデータ・キャッシュ、および1つまたは複数の変換ルックアサイド・バッファ(translation lookaside buffer:TLB)を含むことができる。命令キャッシュ内の命令は、メモリ804またはストレージ806内の命令のコピーでよく、命令キャッシュは、プロセッサ802によるそうした命令の検索を加速することができる。データ・キャッシュ内のデータは、プロセッサ802で実行中の命令が演算するためのメモリ804またはストレージ806内のデータ、プロセッサ802で実行中の後続の命令によるアクセスのために、またはメモリ804もしくはストレージ806に書き込むために、プロセッサ802で実行された以前の命令の結果、あるいは他の適切なデータのコピーでもよい。データ・キャッシュは、プロセッサ802による読取りまたは書込み演算を加速することができる。TLBはプロセッサ802のための仮想アドレス変換(virtual-address translation)を加速することができる。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレス用の1つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ802を企図する。適切な場合、プロセッサ802は、1つまたは複数の演算論理装置(arithmetic logic unit:ALU)を含むことができ、マルチコア・プロセッサでよく、または1つまたは複数のプロセッサ802を含むことができる。本開示は特定のプロセッサを説明および図示するが、本開示は任意の適切なプロセッサを企図する。
【0056】
特定の実施形態では、メモリ804は、プロセッサ802が実行するための命令、またはプロセッサ802が演算するためのデータを格納するメイン・メモリを含む。限定ではなく例として、コンピュータ・システム800は、ストレージ806または別のソース(例えば、別のコンピュータ・システム800など)からメモリ804に命令をロードすることができる。次いでプロセッサ802は、メモリ804から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ802は、内部レジスタまたは内部キャッシュから命令を取り出し、その命令を復号化することができる。命令の実行中または実行後に、プロセッサ802は、1つまたは複数の結果(これは中間結果または最終結果でよい)を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ802は、そうした結果の1つまたは複数をメモリ804に書き込むことができる。特定の実施形態では、プロセッサ802は、(ストレージ806または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内、またはメモリ804内の命令のみを実行し、(ストレージ806または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内、またはメモリ804内のデータのみに対して演算する。1つまたは複数のメモリ・バス(これはそれぞれアドレス・バスおよびデータ・バスを含むことができる)が、プロセッサ802をメモリ804に結合することができる。バス812は、以下で説明するように、1つまたは複数のメモリ・バスを含むことができる。特定の実施形態では、1つまたは複数のメモリ管理ユニット(memory management unit:MMU)が、プロセッサ802とメモリ804との間に常駐し、プロセッサ802によって要求されたメモリ804へのアクセスを可能にする。特定の実施形態では、メモリ804はランダム・アクセス・メモリ(RAM)を含む。適切な場合、このRAMは揮発性メモリでよい。適切な場合、このRAMはダイナミックRAM(DRAM)またはスタティックRAM(SRAM)でよい。さらに、適切な場合、このRAMは、単一ポートまたはマルチポートRAMでよい。本開示は任意の適切なRAMを企図する。適切な場合、メモリ804は、1つまたは複数のメモリ804を含むことができる。本開示は特定のメモリを説明および図示するが、本開示は任意の適切なメモリを企図する。
【0057】
特定の実施形態では、ストレージ806は、データまたは命令用のマス・ストレージを含む。限定ではなく例として、ストレージ806は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)・ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス(USB)ドライブ、あるいはこれらのうちの2つ以上の組合せを含むことができる。ストレージ806は、適切な場合、取外し可能または取外し不能(または固定)媒体を含むことができる。ストレージ806は、適切な場合、コンピュータ・システム800の内部または外部でよい。特定の実施形態では、ストレージ806は不揮発性固体メモリである。特定の実施形態では、ストレージ806は読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムされたROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気消去可能PROM(EEPROM)、電気書換え可能ROM(EAROM)、またはフラッシュ・メモリ、あるいはこれらのうちの2つ以上の組合せでよい。本開示は、任意の適切な物理的形態を有するマス・ストレージ806を企図する。適切な場合、ストレージ806は、プロセッサ802とストレージ806との間の通信を可能にする1つまたは複数のストレージ制御ユニットを含むことができる。適切な場合、ストレージ806は、1つまたは複数のストレージ806を含むことができる。本開示は特定のストレージを説明および図示するが、本開示は任意の適切なストレージを企図する。
【0058】
特定の実施形態では、I/Oインターフェース808は、コンピュータ・システム800と1つまたは複数のI/O装置との間の通信のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム800は、適切な場合、これらのI/O装置のうちの1つまたは複数を含むことができる。これらのI/O装置のうちの1つまたは複数は、人とコンピュータ・システム800との間の通信を可能にすることができる。限定ではなく例として、I/O装置は、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の適切なI/O装置、またはこれらのうちの2つ以上の組合せを含むことができる。I/O装置は1つまたは複数のセンサを含むことができる。本開示は、任意の適切なI/O装置およびそのための任意の適切なI/Oインターフェース808を企図する。適切な場合、I/Oインターフェース808は、プロセッサ802がこれらのI/O装置のうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。I/Oインターフェース808は、適切な場合、1つまたは複数のI/Oインターフェース808を含むことができる。本開示は特定のI/Oインターフェースを説明および図示するが、本開示は任意の適切なI/Oインターフェースを企図する。
【0059】
特定の実施形態では、通信インターフェース810は、コンピュータ・システム800と、1つまたは複数の別のコンピュータ・システム800あるいは1つまたは複数のネットワークとの間の通信(例えば、パケット・ベースの通信など)用の1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、通信インターフェース810は、イーサネット(登録商標)または他のワイヤ・ベースのネットワークと通信するネットワーク・インターフェース・コントローラ(network interface controller:NIC)またはネットワーク・アダプタ、あるいはWi−Fiネットワークなどのワイヤレス・ネットワークと通信するワイヤレスNIC(wire-based network or a wireless:WNIC)またはワイヤレス・アダプタを含むことができる。本開示は、任意の適切なネットワークおよびそのための任意の適切な通信インターフェース810を企図する。限定ではなく例として、コンピュータ・システム800は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、大都市圏ネットワーク(metropolitan area network:MAN)、またはインターネットの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスでよい。1例を挙げると、コンピュータ・システム800は、ワイヤレスPAN(WPAN)(例えば、BLUETOOTH WPANなど)、Wi−Fiネットワーク、WI−MAXネットワーク、携帯電話網(例えば、Global System for Mobile Communication(GSM(登録商標))ネットワークなど)、または他の適切なワイヤレス・ネットワーク、あるいはこれらのうちの2つ以上の組合せと通信することができる。コンピュータ・システム800は、適切な場合、これらのネットワークのいずれかに関する任意の適切な通信インターフェース810を含むことができる。通信インターフェース810は、適切な場合、1つまたは複数の通信インターフェース810を含むことができる。本開示は特定の通信インターフェースを説明および図示するが、本開示は任意の適切な通信インターフェースを企図する。
【0060】
特定の実施形態では、バス812は、コンピュータ・システム800の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、バス812は、アクセラレーテッド・グラフィックス・ポート(Accelerated Graphics Port:AGP)または他のグラフィックス・バス、Enhanced Industry Standard Architecture(EISA)バス、フロント・サイド・バス(FSB)、HYPERTRANSPORT(HT)相互接続、Industry Standard Architecture(ISA)バス、INFINIBAND相互接続、低ピン・カウント(low-pin-count:LPC)バス、メモリ・バス、Micro Channel Architecture(MCA)バス、Peripheral Component Interconnect(PCI)バス、PCI−Express(PCIe)バス、serial advanced technology attachment(SATA)バス、Video Electronics Standards Association local(VLB)バス、または別の適切なバス、あるいはこれらのうちの2つ以上の組合せを含むことができる。バス812は、適切な場合、1つまたは複数のバス812を含むことができる。本開示は特定のバスを説明および図示するが、本開示は、任意の適切なバスまたは相互接続を企図する。
【0061】
本明細書では、コンピュータ可読非一時的記憶媒体は、適切な場合、1つまたは複数の半導体ベースの、または他の集積回路(IC)(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。
【0062】
本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「または」は排他的ではなく包含的である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AまたはB」は「A、B、またはその両方」を意味する。さらに、別段に明記されていない限り、または文脈によって示されていない限り、「および」は協同および個々の両方である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AおよびB」は、「AおよびBが一緒に、または個別に」を意味する。
【0063】
本開示の範囲は、当業者なら理解するはずである、本明細書で説明または図示される例示的実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または図示される例示的実施形態に限定されない。さらに、本開示は、本明細書のそれぞれの実施形態が特定の構成要素、要素、機能、動作、またはステップを含むものとして説明および図示するが、これらの実施形態のいずれも、当業者なら理解するはずである、本明細書のどこかで説明または図示される構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは置換を含むことができる。さらに、特定の機能を実施するように適合され、配置され、実施することが可能であり、実施するように構成され、実施することが可能にされ、実施するように動作可能である装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲での参照は、その装置、システム、または構成要素がそのように適合され、配置され、可能であり、構成され、可能にされ、動作可能にされる限り、その装置、システム、構成要素またはその特定の機能が活動化され、オンにされ、またはロック解除されるか否かに関わらず、その装置、システム、構成要素を包含する。
図2A
図2B
図4
図5A
図5B
図5C
図7A
図7B
図7C
図7D
図7E
図7F
図7G
図7H
図7I
図1
図3
図6
図8