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

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

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

特許6243487イメージ・パニングおよびズーミング効果
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6243487
(24)【登録日】2017年11月17日
(45)【発行日】2017年12月6日
(54)【発明の名称】イメージ・パニングおよびズーミング効果
(51)【国際特許分類】
   G06T 13/80 20110101AFI20171127BHJP
   G06F 3/0481 20130101ALI20171127BHJP
   G06F 13/00 20060101ALI20171127BHJP
   G09G 5/00 20060101ALI20171127BHJP
   G09G 5/34 20060101ALI20171127BHJP
   G09G 5/36 20060101ALI20171127BHJP
【FI】
   G06T13/80 C
   G06F3/0481
   G06F13/00 550A
   G06F13/00 560A
   G09G5/00 555D
   G09G5/34 A
   G09G5/36 520G
   G09G5/00 550D
【請求項の数】18
【全頁数】27
(21)【出願番号】特願2016-142639(P2016-142639)
(22)【出願日】2016年7月20日
(62)【分割の表示】特願2015-543075(P2015-543075)の分割
【原出願日】2013年10月30日
(65)【公開番号】特開2017-10567(P2017-10567A)
(43)【公開日】2017年1月12日
【審査請求日】2016年7月20日
(31)【優先権主張番号】13/676,831
(32)【優先日】2012年11月14日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】マタス、マイケル
【審査官】 真木 健彦
(56)【参考文献】
【文献】 特開2006−277038(JP,A)
【文献】 特開2010−086194(JP,A)
【文献】 米国特許出願公開第2011/0004692(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/80
G06F 13/00
G09G 5/00 − 5/42
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実行される方法であって、
電子装置上にシステムの第1のユーザに対してイメージを表示することであって、前記イメージは、前記システムからダウンロードされたコンテンツを含む、前記イメージを表示すること、
前記システムからの情報に基づいて、前記イメージのコンテンツと前記イメージにアクセスする第1のユーザとの間の関係を特定すること、
前記イメージのコンテンツと第1のユーザとの間の関係に基づいて特定されたイメージの動きを表示することに基づいて、前記イメージの第2の部分を表示する前に前記イメージの少なくとも第1の部分を、前記イメージにアクセスする第1のユーザに対して表示するように、前記イメージをパニングするアニメーションを表示すること、を備え、
前記イメージの第1の部分は、前記イメージの第2の部分と異な
前記イメージは、1人または複数のユーザを含み、
第1のユーザが、1人または複数の第2のユーザに関連する1つまたは複数のコンテンツ・アイテムを視聴する間に前記イメージにアクセスする場合、
前記方法は、
1人または複数の第2のユーザのいずれかが、前記イメージの1人または複数のユーザのいずれかに対応するか否かを特定すること、
1人または複数の第2のユーザの少なくとも1人が、前記イメージの1人または複数のユーザのうちの1人に対応することに応答して、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施すること、をさらに備える、方法。
【請求項2】
前記システムは、複数のノードおよびノード間を接続する複数のエッジを含むソーシャル・グラフを備えるソーシャル・ネットワーキング・システムであり、
前記ソーシャル・グラフの複数のノードのうちの少なくとも1つは、第1のユーザに対応し、
前記イメージのコンテンツと、第1のユーザとの間の関係は、前記ソーシャル・ネットワーキング・システムのソーシャル・グラフからの情報に基づいて特定される、請求項1に記載の方法。
【請求項3】
前記1人または複数のユーザの各々は、前記ソーシャル・グラフのノードに対応する、請求項2に記載の方法。
【請求項4】
前記イメージが一人のユーザ以外を備える場合、前記アニメーションは、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施することを含み、
前記イメージが1人のユーザだけを備える場合、前記アニメーションは、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施し、前記イメージ全体が表示されるまでズームアウトすることを含む、請求項3に記載の方法。
【請求項5】
前記1つまたは複数のコンテンツ・アイテムは、
第2のユーザに関連するユーザ・プロファイルと、
第2のユーザに関連するオリジナルポストと、
第2のユーザに関するポストにおけるコメントと、
第2のユーザに関連するポストの再共有と、のうちの1つまたは複数を含む、請求項3に記載の方法。
【請求項6】
前記イメージは、1人または複数のユーザを含み、
1人または複数のユーザの各々は、前記ソーシャル・グラフのノードに対応し、
前記方法は、
前記イメージが第1のユーザから第2のユーザにサーバを介して送信される場合、
第1のユーザおよび第2のユーザのいずれかが、前記イメージの1人または複数のユーザのいずれかに対応するか否かを特定すること、
第1のユーザが、前記イメージの1人または複数のユーザのうちの1人に対応することに応答して、第1のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施すること、
第2のユーザが、前記イメージの1人または複数のユーザのうちの1人に対応することに応答して、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施すること、をさらに備える、請求項2に記載の方法。
【請求項7】
1つまたは複数のコンピュータ可読非一時的記憶媒体であって、
実行されたときに、
電子装置上にシステムの第1のユーザに対してイメージを表示することであって、前記イメージは、前記システムからダウンロードされたコンテンツを含む、前記イメージを表示すること、
前記システムからの情報に基づいて、前記イメージのコンテンツと前記イメージにアクセスする第1のユーザとの間の関係を特定すること、
前記イメージのコンテンツと第1のユーザとの間の関係に基づいて特定されたイメージの動きを表示することに基づいて、前記イメージの第2の部分を表示する前に前記イメージの少なくとも第1の部分を、前記イメージにアクセスする第1のユーザに対して表示するように、前記イメージをパニングするアニメーションを表示すること、を実行するように動作可能なソフトウェアを実装し、
前記イメージの第1の部分は、前記イメージの第2の部分と異な
前記イメージは、1人または複数のユーザを含み、
第1のユーザが、1人または複数の第2のユーザに関連する1つまたは複数のコンテンツ・アイテムを視聴する間に前記イメージにアクセスする場合、
前記ソフトウェアは、実行されたときに、
1人または複数の第2のユーザのいずれかが、前記イメージの1人または複数のユーザのいずれかに対応するか否かを特定すること、
1人または複数の第2のユーザの少なくとも1人が、前記イメージの1人または複数のユーザのうちの1人に対応することに応答して、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施すること、をさらに実行するように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項8】
前記システムは、複数のノードおよびノード間を接続する複数のエッジを含むソーシャル・グラフを備えるソーシャル・ネットワーキング・システムであり、
前記ソーシャル・グラフの複数のノードのうちの少なくとも1つは、第1のユーザに対応し、
前記イメージのコンテンツと、第1のユーザとの間の関係は、前記ソーシャル・ネットワーキング・システムのソーシャル・グラフからの情報に基づいて特定される、請求項7に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項9】
前記1人または複数のユーザの各々は、前記ソーシャル・グラフのノードに対応する、請求項8に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項10】
前記イメージが一人のユーザ以外を備える場合、前記アニメーションは、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施することを含み、
前記イメージが1人のユーザだけを備える場合、前記アニメーションは、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施し、前記イメージ全体が表示されるまでズームアウトすることを含む、請求項9に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項11】
前記1つまたは複数のコンテンツ・アイテムは、
第2のユーザに関連するユーザ・プロファイルと、
第2のユーザに関連するオリジナルポストと、
第2のユーザに関するポストにおけるコメントと、
第2のユーザに関連するポストの再共有と、のうちの1つまたは複数を含む、請求項9に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項12】
前記イメージは、1人または複数のユーザを含み、
1人または複数のユーザの各々は、前記ソーシャル・グラフのノードに対応し、
前記ソフトウェアは、実行されたときに、
前記イメージが第1のユーザから第2のユーザにサーバを介して送信される場合、
第1のユーザおよび第2のユーザのいずれかが、前記イメージの1人または複数のユーザのいずれかに対応するか否かを特定すること、
第1のユーザが、前記イメージの1人または複数のユーザのうちの1人に対応することに応答して、第1のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施すること、
第2のユーザが、前記イメージの1人または複数のユーザのうちの1人に対応することに応答して、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施すること、をさらに実行するように動作可能である、請求項8に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項13】
システムであって、
1つまたは複数のプロセッサと、
前記プロセッサに結合され、且つ前記プロセッサによって実行可能な命令を含むメモリとを備え、前記プロセッサが、前記命令を実行したときに、
電子装置上にシステムの第1のユーザに対してイメージを表示することであって、前記イメージは、前記システムからダウンロードされたコンテンツを含む、前記イメージを表示すること、
前記システムからの情報に基づいて、前記イメージのコンテンツと前記イメージにアクセスする第1のユーザとの間の関係を特定すること、
前記イメージのコンテンツと第1のユーザとの間の関係に基づいて特定されたイメージの動きを表示することに基づいて、前記イメージの第2の部分を表示する前に前記イメージの少なくとも第1の部分を、前記イメージにアクセスする第1のユーザに対して表示するように、前記イメージをパニングするアニメーションを表示すること、を実行するように動作可能であ
前記イメージは、1人または複数のユーザを含み、
第1のユーザが、1人または複数の第2のユーザに関連する1つまたは複数のコンテンツ・アイテムを視聴する間に前記イメージにアクセスする場合、
前記1つまたは複数のプロセッサは、実行されたときに、
1人または複数の第2のユーザのいずれかが、前記イメージの1人または複数のユーザのいずれかに対応するか否かを特定すること、
1人または複数の第2のユーザの少なくとも1人が、前記イメージの1人または複数のユーザのうちの1人に対応することに応答して、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施すること、をさらに実行するように動作可能である、システム。
【請求項14】
前記システムは、複数のノードおよびノード間を接続する複数のエッジを含むソーシャル・グラフを備えるソーシャル・ネットワーキング・システムであり、
前記ソーシャル・グラフの複数のノードのうちの少なくとも1つは、第1のユーザに対応し、
前記イメージのコンテンツと、第1のユーザとの間の関係は、前記ソーシャル・ネットワーキング・システムのソーシャル・グラフからの情報に基づいて特定される、請求項13に記載のシステム。
【請求項15】
前記1人または複数のユーザの各々は、前記ソーシャル・グラフのノードに対応する、請求項14に記載のシステム。
【請求項16】
前記イメージが一人のユーザ以外を備える場合、前記アニメーションは、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施することを含み、
前記イメージが1人のユーザだけを備える場合、前記アニメーションは、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施し、前記イメージ全体が表示されるまでズームアウトすることを含む、請求項15に記載のシステム。
【請求項17】
前記1つまたは複数のコンテンツ・アイテムは、
第2のユーザに関連するユーザ・プロファイルと、
第2のユーザに関連するオリジナルポストと、
第2のユーザに関するポストにおけるコメントと、
第2のユーザに関連するポストの再共有と、のうちの1つまたは複数を含む、請求項15に記載のシステム。
【請求項18】
前記イメージは、1人または複数のユーザを含み、
1人または複数のユーザの各々は、前記ソーシャル・グラフのノードに対応し、
前記1つまたは複数のプロセッサは、実行されたときに、
前記イメージが第1のユーザから第2のユーザにサーバを介して送信される場合、
第1のユーザおよび第2のユーザのいずれかが、前記イメージの1人または複数のユーザのいずれかに対応するか否かを特定すること、
第1のユーザが、前記イメージの1人または複数のユーザのうちの1人に対応することに応答して、第1のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施すること、
第2のユーザが、前記イメージの1人または複数のユーザのうちの1人に対応することに応答して、第2のユーザに対応する前記イメージにおけるユーザから開始するイメージのパニングを実施すること、をさらに実行するように動作可能である、請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にはユーザ・インターフェースに関する。
【背景技術】
【0002】
ヒューマン・マシン対話の工業デザイン分野でのユーザ・インターフェース(user interface:UI)は、人間とマシンとの間の対話が行われるスペースである。しばしば「ユーザ」と呼ばれる人間と、マシンとの間のユーザ・インターフェースでの対話の目標は、(例えば、ユーザ入力を介する)マシンおよびマシンの動作のユーザによる制御、ならびに(例えば、プログラム出力を介する)マシン・フィードバックである。グラフィカル・ユーザ・インターフェース(graphical user interface:GUI)は、純粋にテキストのコマンドではなく、マルチメディア・オブジェクト(例えば、イメージ、ビデオ、オーディオなど)を通じてユーザが電子装置またはコンピューティング装置上で実行中のソフトウェア・アプリケーションと対話することを可能にするユーザ・インターフェースの1タイプである。
【発明の概要】
【課題を解決するための手段】
【0003】
特定の実施形態では、ユーザにコンテンツを提示するユーザ・インターフェースが、階層構造を有することができる。ユーザ・インターフェースは、任意の数のコンテンツ・セクションを有することができ、各コンテンツ・セクションは、任意の数のコンテンツ・アイテムを有することができる。コンテンツ・アイテムは、任意のタイプまたはフォーマットでよい。ユーザは、コンテンツ・アイテムのいくつかを消費するか、またはそれと対話することができる。特定の実施形態では、各コンテンツ・アイテムはユーザ・インターフェース要素に対応することができる。
【0004】
特定の実施形態では、イメージ(例えば、デジタル写真)が電子装置の画面上に表示されるとき、イメージに関連する情報またはイメージの閲覧者のソーシャル・コンテキストに基づいて、イメージのパニングまたはズーミングを決定することができる。いくつかの実装では、イメージのパニングまたはズーミングは、注目の対象にゆっくりとズームインし、またはイメージ内のある対象から別の対象にパニングすることによってアクションが静止画像に対して与えられるケン・バーンズ(Ken Burns)視覚効果をシミュレートすることができる。
【図面の簡単な説明】
【0005】
図1】ソーシャル・ネットワーキング・システムに関連する例示的なネットワーク環境を示す図。
図2A】2つの例示的なモバイル電子装置を示す図。
図2B】2つの例示的なモバイル電子装置を示す図。
図3】例示的なソーシャル・グラフを示す図。
図4】例示的なオブジェクト階層を示す図。
図5A】イメージをパニングする1例を示す図。
図5B】イメージをパニングする1例を示す図。
図5C】イメージをパニングする1例を示す図。
図5D】イメージをパニングする1例を示す図。
図5E】イメージをパニングする1例を示す図。
図5F】イメージをパニングする1例を示す図。
図6A】イメージをズーミングする1例を示す図。
図6B】イメージをズーミングする1例を示す図。
図6C】イメージをズーミングする1例を示す図。
図7】どんな人々も含まない例示的なイメージを示す図。
図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つのノードを接続するグラフ内にそのようなデータを格納することができる。グラフはとりわけソーシャル情報を含むので、グラフはしばしば、「ソーシャル・グラフ(socialgraph)」または「オープン・グラフ(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】
特定の実施形態では、デジタル写真などのイメージが電子装置(例えば、クライアント・システム130)の画面上に表示されるとき、イメージの閲覧者(例えば、電子装置のユーザ)に対してイメージのパニング(panning)またはズーミング(zooming)を自動的に決定し、実施することができる。本開示のコンテキストでは、イメージ・パニングとは、イメージをある部分から別の部分まで閲覧する工程を指し、イメージをある尺度から別の尺度まで閲覧すること(すなわち、ズーミング)を含む。したがって、本開示のコンテキストでは、イメージ・パニングはイメージ・ズーミングをも含むことに留意されたい。
【0039】
イメージをパニングまたはズーミングする様々な方式があり、本開示は、イメージをパニングまたはズーミングする任意の適用可能な方式を企図する。特定の実施形態では、イメージまたはイメージの閲覧者あるいはその両方に関連する情報に基づいて、イメージのパニングまたはズーミングを決定することができる。さらに、特定の実施形態では、イメージの閲覧者は、ソーシャル・ネットワーキング・システム160のユーザ(例えば、ユーザ101)でよく、ソーシャル・グラフ300内に格納された情報、ユーザに関連する情報などの、ソーシャル・ネットワーキング・システム160で利用可能な情報に基づいて、イメージのパニングまたはズーミングを決定することができる。
【0040】
いくつかの実施形態では、(例えば、イメージが電子装置上に表示された後に、どんなユーザ入力も必要とすることなく)イメージのパニングまたはズーミングは自動的に開始することができる。あるいは、別の実施形態では、イメージのパニングまたはズーミングは、ユーザ入力を受け取った後(例えば、ユーザがイメージをクリックした後)に開始することができる。
【0041】
1例を挙げると、写真が1人または複数の人々を含み、写真内のそれぞれの人が(例えば、写真の所有者によって)タグ付けされていると仮定する。写真内の個々の人をタグ付けする様々な方式があり、本開示は、写真をタグ付けする任意の適用可能な手段を企図する。例えば、ソーシャル・ネットワーキング・システム160は、ユーザがソーシャル・ネットワーキング・システム160にアップロードされた写真をタグ付けすることを可能にすることができる。そのように行うために、ユーザは、タグ付けする写真を選択することができ、写真内の人をクリックしてその人をタグ付けし、その人の名前を入力する。この工程を反復して、写真内の複数の人々をタグ付けし、または複数の写真をタグ付けすることができる。
【0042】
特定の実施形態では、写真のパニングは、写真内の左端のタグ付けされた人から開始し、写真を横切って左から右に徐々に移動し、写真内の右端のタグ付けされた人で終了することができ、またはその逆である。図5Aは、電子装置(例えば、スマートフォンの画面)上に表示されている例示的写真510を示す。この場合、写真510は、5つのタグ付けされた人々521〜525を含む。写真510のパニングは、図5B〜5Eで示されるように、左端のタグ付けされた人521から開始し、写真510を横切って左から右に徐々に移動し、右端のタグ付けされた人525で終了することができる。特定の実施形態では、写真510のパニングが完了したとき、図5Fに示されるように、写真510全体が再び表示される。
【0043】
特定の実施形態では、写真のパニングは、写真の閲覧者との間で最高のアフィニティ(affinity)を有する写真内のタグ付けされた人から開始し、写真の閲覧者との間で最低のアフィニティを有する写真内のタグ付けされた人で終了することができる。2人の人々の間のアフィニティを求める様々な方式があり、本開示は、2人の人々の間のアフィニティを求める任意の適用可能な手段を企図する。1例を挙げると、2人の人々の間のアフィニティを、それらの社会的関係に基づいて求めることができる(例えば、2人の人々の間の社会的関係が近いことは、アフィニティのレベルが高いことを示唆し、2人の人々の間の社会的関係が遠いことは、アフィニティのレベルが低いことを示唆する)。ソーシャル・ネットワーキング・システム160内で、写真の閲覧者がタグ付けされた人524の友人であると仮定する。このことは、閲覧者とタグ付けされた人524が、その友人関係の存在に基づいて高いレベルのアフィニティを有することを示唆する。一方、写真の閲覧者がタグ付けされた人521の友人ではないと仮定する。このことは、閲覧者とタグ付けされた人521が、それらの間の友人関係の欠如に基づいて低いレベルのアフィニティを有することを示唆する。別の例として、2人の人々の間のアフィニティを、それらの間の類似性に基づいて求めることができる。2人の人々が同じ会社で働き、同じ学校に通い、類似の経歴または趣味を有するなどの場合、このことは、2人の人々が高いレベルのアフィニティを有することを示唆することがある。一方、2人の人々に共通点がほとんどない場合、このことは、2人の人々が低いレベルのアフィニティを有することを示唆することがある。いくつかの実装では、ソーシャル・グラフ300から利用可能な情報に基づいて、2人の人々の間のアフィニティを求めることができる。写真の閲覧者および写真内のタグ付けされた人が与えられたとすると、閲覧者およびタグ付けされた人をそれぞれ表す、ソーシャル・グラフ300内の2つのノードが存在するはずである。2つの対応するノードがソーシャル・グラフ300内で互いにどれだけ近いか、もしくはどれだけ遠いか、またはソーシャル・グラフ300内の2つの対応するノードを接続する経路がどれだけあるかに基づいて、閲覧者とタグ付けされた人との間のアフィニティを求めることができる。
【0044】
いくつかの実装では、写真内のタグ付けされた人々を、写真の閲覧者との間のそれぞれのアフィニティのレベルに基づいてランク付けすることができる。図5Aで、5つのタグ付けされた人々521〜525が、524、523、525、522、および521とランク付けされると仮定する。この場合、写真510のパニングは、タグ付けされた人524から開始し、次いでタグ付けされた人523、525、および522に移動し、タグ付けされた人521で終了することができる。
【0045】
特定の実施形態では、写真のパニングおよびズーミングは、写真の中心から開始し、次いで、写真全体が表示されるまで、徐々に外側にズーミングすることができる。例えば、図5Aでは、人523が写真510の中心付近にいる。写真510のパニングおよびズーミングは、人523の接近したズームイン・ビューから開始し、次いで、写真510全体が表示されるまで、徐々にズームアウトすることができる。
【0046】
特定の実施形態では、写真のパニングおよびズーミングは、写真の閲覧者によって選択された写真内の人から開始し、次いで、写真全体が表示されるまで、徐々に外側にズーミングすることができる。閲覧者は、写真内の人をクリックまたはタップして、その人を選択することができる。例えば、図6Aでは、写真510の全体が表示される間、閲覧者は、タグ付けされた人524を(例えば、タグ付けされた人524をクリックまたはタップすることによって)選択することができる。このユーザ選択の結果、図6Bに示されるように、写真510がズームインされ、選択された人524に焦点が合わされる(例えば、写真530がズームインされた後、選択された人524が画面の中心付近に配置される)。次いで、自動的に、または別のユーザ入力(例えば、閲覧者が画面を再びクリックまたはタップする)に応答して、図6Cに示されるように、写真510は、写真510全体が画面上に再び表示される写真510の元の状態に写真510が戻るまで、徐々にズームアウトすることができる。
【0047】
特定の実施形態では、閲覧者が写真を閲覧している間、閲覧者は、写真内の人々のうちの1人に関連する別のコンテンツ・アイテムも閲覧している場合、写真のパニングおよびズーミングは、他のコンテンツ・アイテムに関連する人から開始し、次いで、写真内に他の人々がいる場合はその人々に徐々に移動し、または外側にズーミングすることができる。例えば、閲覧者が写真510を閲覧している間、閲覧者は、ソーシャル・ネットワーキング・システム160で人522のユーザ・プロファイルも閲覧しているか、または人522によってポストされたメッセージを読んでいると仮定する。または写真510が、人522によってEメール・メッセージで閲覧者に送られると仮定する。そのような場合、写真510のパニングおよびズーミングは、まず人522にズームインし、次いで、写真510全体が表示されるまで徐々に外側にズーミングすることができる。または、写真510は、人522から開始して、次いで写真530内の他の人々に徐々に移るようにパニングすることができる。
【0048】
どんな人々も含まないイメージを自動的にパニングまたはズーミングすることもできる。例えば、図7は、どんな人々も含まないランドスケープ・イメージ710を示す。特定の実施形態では、そのようなイメージを左から右に、上端から下端に、またはその逆に自動的にパニングすることができる。例えば、水平向きのイメージ(例えば、ランドスケープ向き)を左から右に、または右から左にパニングすることができ、垂直向きのイメージ(例えば、ポートレイト向き)を上端から下端に、または下端から上端にパニングすることができる。特定の実施形態では、イメージをその中心付近でまずズームインし、イメージ全体が再び表示されるまで徐々に外側にズーミングすることができる。特定の実施形態では、イメージ内に構造物(例えば、建造物またはランドマーク)がある場合、イメージのパニングまたはズーミングは構造物から開始し、次いでイメージの他の部分に徐々に移動することができる。
【0049】
特定の実施形態では、イメージのパニングまたはズーミングは、対象(subject)に対してゆっくりとズームインし、またはイメージ内のある対象から別の対象にパニングすることによってアクションが静止画像(例えば、写真)に与えられる、アメリカ人のドキュメンタリー作家ケン・バーンズ(Ken Burns)にちなんで名付けられたケン・バーンズ(Ken Burns)視覚効果をシミュレートすることができる。イメージのパニングまたはズーミング・シーケンスは、ビデオ・シーケンスとして視覚的に表される。閲覧者は、電子装置上で、ある部分から別の部分に徐々にパニングされ、またはズームインもしくはズームアウトされるイメージを視聴することができる。
【0050】
特定の実施形態では、ソーシャル・ネットワーキング・システム160のユーザがソーシャル・ネットワーキング・システム160で利用可能であり、ユーザの電子装置上にダウンロードされるイメージ(例えば、デジタル写真)を閲覧するとき、前述のイメージのパニングおよびズーミングを使用することができる。ソーシャル・ネットワーキング・システム160のサーバは、イメージがユーザの電子装置上で表示されるときにどのようにイメージをパニングまたはズーミングするかに関する情報と共に、閲覧のためにユーザの電子装置にイメージを送ることができる。特定の実施形態では、階層ユーザ・インターフェースでイメージを提示することができる。
【0051】
特定の実施形態では、イメージのパニングまたはズーミングの動作は、コンピュータ・ソフトウェアとして具体化され、電子またはコンピュータ・システム上で実行することができる。図8は、例示的なコンピュータ・システム800を示す。特定の実施形態では、1つまたは複数のコンピュータ・システム800は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータ・システム800は、本明細書で説明または図示される機能を提供する。特定の実施形態では、1つまたは複数のコンピュータ・システム800上で実行中のソフトウェアが、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施しまたは本明細書で説明または図示される機能を提供する。特定の実施形態は、1つまたは複数のコンピュータ・システム800の1つまたは複数の部分を含む。本明細書では、適切な場合、コンピュータ・システムに対する参照はコンピューティング装置を包含し、逆も同様である。さらに、適切な場合、コンピュータ・システムに対する参照は、1つまたは複数のコンピュータ・システムを包含する。
【0052】
本開示は、任意の適切な数のコンピュータ・システム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つまたは複数のステップを異なる時刻または異なる場所で実施することができる。
【0053】
特定の実施形態では、コンピュータ・システム800は、プロセッサ802、メモリ804、ストレージ806、入力/出力(I/O)インターフェース808、通信インターフェース810、およびバス812を含む。本開示は、特定の構成の、特定の数の特定の構成要素を有する特定のコンピュータ・システムを説明および図示するが、本開示は、任意の適切な構成の、任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータ・システムを企図する。
【0054】
特定の実施形態では、プロセッサ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を含むことができる。本開示は特定のプロセッサを説明および図示するが、本開示は任意の適切なプロセッサを企図する。
【0055】
特定の実施形態では、メモリ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を含むことができる。本開示は特定のメモリを説明および図示するが、本開示は任意の適切なメモリを企図する。
【0056】
特定の実施形態では、ストレージ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を含むことができる。本開示は特定のストレージを説明および図示するが、本開示は任意の適切なストレージを企図する。
【0057】
特定の実施形態では、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インターフェースを企図する。
【0058】
特定の実施形態では、通信インターフェース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を含むことができる。本開示は特定の通信インターフェースを説明および図示するが、本開示は任意の適切な通信インターフェースを企図する。
【0059】
特定の実施形態では、バス812は、コンピュータ・システム800の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、バス812は、アクセラレーテッド・グラフィックス・ポート(Accelerated GraphicsPort: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を含むことができる。本開示は特定のバスを説明および図示するが、本開示は、任意の適切なバスまたは相互接続を企図する。
【0060】
本明細書では、コンピュータ可読非一時的記憶媒体は、適切な場合、1つまたは複数の半導体ベースの、または他の集積回路(IC)(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。
【0061】
本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「または」は排他的ではなく包含的である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AまたはB」は「A、B、またはその両方」を意味する。さらに、別段に明記されていない限り、または文脈によって示されていない限り、「および」は協同および個々の両方である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AおよびB」は、「AおよびBが一緒に、または個別に」を意味する。
【0062】
本開示の範囲は、当業者なら理解するはずである、本明細書で説明または図示される例示的実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または図示される例示的実施形態に限定されない。さらに、本開示は、本明細書のそれぞれの実施形態が特定の構成要素、要素、機能、動作、またはステップを含むものとして説明および図示するが、これらの実施形態のいずれも、当業者なら理解するはずである、本明細書のどこかで説明または図示される構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは置換を含むことができる。さらに、特定の機能を実施するように適合され、配置され、実施することが可能であり、実施するように構成され、実施することが可能にされ、実施するように動作可能である装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲での参照は、その装置、システム、または構成要素がそのように適合され、配置され、可能であり、構成され、可能にされ、動作可能にされる限り、その装置、システム、構成要素またはその特定の機能が活動化され、オンにされ、またはロック解除されるか否かに関わらず、その装置、システム、構成要素を包含する。
図1
図2A
図2B
図3
図4
図5A
図5B
図5C
図5D
図5E
図5F
図6A
図6B
図6C
図7
図8