(58)【調査した分野】(Int.Cl.,DB名)
前記ソフトウェアが、実行されるときに、前記第1の構成要素の1つまたは複数の要素のコンテンツを一様でなく変更するようにさらに動作可能である、請求項8に記載の媒体。
前記プロセッサは、前記命令を実行するときに、前記第1の構成要素の1つまたは複数の要素のコンテンツを一様でなく変更するようにさらに動作可能である、請求項15に記載のシステム。
【発明を実施するための形態】
【0004】
特定の実施形態では、ユーザにコンテンツを提示するためのユーザ・インターフェースが、階層構造を有する。ユーザ・インターフェースは、階層構造で構成された任意の数の構成要素を有し、階層は、構成要素が常駐する、1つまたは複数のレイヤを含む。構成要素は、任意のタイプまたはフォーマットであり得、かつ要素を含み得る。ユーザは、レイヤ、構成要素、もしくは要素を消費するか、またはレイヤ、構成要素、もしくは要素と対話する。特定の実施形態では、構成要素とのユーザ対話に関連付けられるユーザ入力が、構成要素の要素に影響するアクションを促す。特定の実施形態では、レイヤ内の構成要素とのユーザ対話に関連付けられるユーザ入力が、レイヤおよびレイヤ内の構成要素に影響するアクションを促す。例えば、レイヤ内の構成要素のサイズを変更するユーザ対話は、レイヤおよびレイヤ内の他の構成要素のサイズを変更することを促す。レイヤは、レイヤ内の構成要素の要素(または要素のコンテンツ)が自動的に変更され得るような方式で、サイズ変更される。構成要素の要素(または要素のコンテンツ)は、一様でない方式で変更されてもよい。
【0005】
ユーザがアプリケーションと対話することおよび制御することを可能にするために、例えば、デスクトップ・アプリケーション、モバイル・アプリケーション、またはウェブ・ベースのアプリケーションを含む任意のタイプのソフトウェア・アプリケーションにユーザ・インターフェース(user interface:UI)を組み込むことができる。グラフィカル・ユーザ・インターフェース(graphical user interface:GUI)は、例えば、アイコン、ボタン、メニュー、イメージ、ビデオ、またはオーディオを含むマルチメディア・オブジェクトを通じてユーザがソフトウェア・アプリケーションと対話することを可能にするユーザ・インターフェースの1タイプである。
【0006】
特定の実施形態では、ソフトウェア・アプリケーションをソーシャル・ネットワーキング・システムに関連付けることができる。
図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を含むことができる。
【0007】
特定の実施形態では、ユーザ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は、例えば、パーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、スマートフォン、またはタブレット・コンピュータなどの任意の適切なコンピューティング装置でよい。
【0008】
本開示は任意の適切なネットワーク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を含むことができる。
【0009】
リンク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と異なることがある。
【0010】
特定の実施形態では、ソーシャル・ネットワーキング・システム160に関連するサーバと、個々のクライアント・システム130との間で、ネットワーク110を介してデータ(例えば、様々なタイプの情報またはコンテンツを表すデータ)を送ることができる。2つの電子装置(例えば、サーバおよびクライアント)がネットワーク(例えば、ネットワーク110などのコンピュータまたは通信ネットワーク)に接続されるとき、1つまたは複数の適切なネットワーク・プロトコルを使用して、2つの装置間でネットワークを介してデータを送信することができる。ネットワークは、任意の数のサブネットワークを含むことができる。2つの装置間でデータを送信することにより、2つの装置は互いに通信することができる。
【0011】
ネットワーク通信では、ある装置から別の装置に通信(すなわち、データ)を送るのに、プッシュ(push)およびプル(pull)という2つの方式がある。プッシュ技術では、通信トランザクションを求める要求が、送信装置によって開始される。すなわち、送信装置が、受信装置に、通信を所謂「プッシュ」し、この場合、トランザクションで送信装置を能動側とみなすことができ、受信装置を受動側とみなすことができる。一方、プル技術では、通信トランザクションを求める要求が、受信装置によって開始される。すなわち、受信装置が、送信装置から、通信を所謂「プル」する。この場合、トランザクションで送信装置を受動側とみなすことができ、受信装置を能動側とみなすことができる。特定の実施形態では、ソーシャル・ネットワーキング・システム160に関連するサーバが、クライアント・システム130にデータをプッシュすることができる。サーバからクライアントにプッシュされる通信は、「プッシュ通知」と呼ばれることがある。同様に、クライアント・システム130は、ソーシャル・ネットワーキング・システム160に関連するサーバにデータをプッシュすることができる。
【0012】
特定の実施形態では、クライアント・システム130は、モバイル電子装置またはコンピューティング装置でよい。スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータなどのモバイル電子装置は、その位置、方向、または向きを判定する、GPS受信機、コンパス、ジャイロスコープなどの機能を含むことができる。そのようなモバイル装置はまた、BLUETOOTH(登録商標)通信、近距離場通信(near-field communication:NFC)、赤外線(infrared:IR)通信、ワイヤレス・ローカル・エリア・ネットワーク(WLAN)もしくは携帯電話網との通信などの、ワイヤレス通信のための機能をも含むことができる。そのようなモバイル装置はまた、1つまたは複数のカメラ、スキャナ、タッチ・スクリーン、マイクロフォン、あるいはスピーカをも含むことができる。モバイル電子装置はまた、ゲーム、ウェブ・ブラウザ、ソーシャル・ネットワーキング・アプリケーションなどのソフトウェア・アプリケーションを実行することができる。ソーシャル・ネットワーキング・アプリケーションを用いて、ユーザは、ユーザのソーシャル・ネットワーク内の他のユーザと接続し、通信し、情報を共有することができる。
【0013】
特定の実施形態では、モバイル電子装置(例えば、スマートフォンまたはタブレット・コンピュータ)は、タッチ入力を受け取ることのできるタッチ・スクリーンを含むことができる。
図2Aは、タッチ・スクリーン215を有する例示的なモバイル電子装置210(例えば、スマートフォン)を示す。タッチ・スクリーン215は、(例えば、ユーザの指からの)タッチまたは物体(例えば、スタイラス(stylus))の近接の存在および位置を検出する1つまたは複数のタッチ・センサおよびタッチ・センサ・コントローラを組み込むことができる。特定の実施形態では、タッチ・スクリーン215を介して検出される特定のタッチの結果、タッチ入力イベントを生じさせることができる。
【0014】
異なるモバイル電子装置は、異なる構成を有してもよい。その結果、異なるモバイル装置のタッチ・スクリーンのサイズ、形状、およびアスペクト比は異なることがある。
図2Bは、タッチ・スクリーン225を有する別の例示的なモバイル電子装置220(例えば、タブレット・コンピュータ)を示す。同様に、タッチ・スクリーン225は、(例えば、ユーザの指からの)タッチまたは物体(例えば、スタイラス)の近接の存在および位置を検出する1つまたは複数のタッチ・センサおよびタッチ・センサ・コントローラを組み込むことができる。タッチ・スクリーン225を介して検出される特定のタッチの結果、タッチ入力イベントを生じさせることができる。しかし、モバイル電子装置210および220は2つの異なるタイプの装置であるので、それぞれのタッチ・スクリーン215および225は、異なるサイズおよびアスペクト比を有する。
【0015】
様々なタイプのタッチ入力イベントに対応する、シングル・タップ、ダブル・タップ、ショート・プレス、ロング・プレス、スライド、スワイプ、フリップ、ピンチ・オープン、ピンチ・クローズ、パン、またはドラッグなどの様々なタイプのタッチまたはジェスチャが存在することができる。異なるタッチ入力イベントの結果、異なる応答を得ることができ、本開示は、任意の適用可能なジェスチャを企図する。
【0016】
ソーシャル・ネットワーキング・システム160は、例えば、ユーザ・データ、アプリケーション・データ、またはソーシャル・データを含む様々なタイプのデータを格納することができる。特定の実施形態では、任意の数のノードおよびエッジを有し、各エッジが2つのノードを接続するグラフ内にそのようなデータを格納することができる。グラフはとりわけソーシャル情報を含むので、グラフはしばしば、「ソーシャル・グラフ(social graph)」または「オープン・グラフ(open graph)」と呼ばれる。
【0017】
図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つまたは複数の検索可能または照会可能な索引を含むことができる。
【0018】
特定の実施形態では、ユーザ・ノード302は、ソーシャル・ネットワーキング・システム160のユーザに対応することができる。限定ではなく例として、ユーザは、ソーシャル・ネットワーキング・システム160と、またはソーシャル・ネットワーキング・システム160を介して対話または通信する個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサード・パーティ・アプリケーション)、または(例えば、個人またはエンティティの)グループでよい。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム160にアカウントを登録するとき、ソーシャル・ネットワーキング・システム160は、ユーザに対応するユーザ・ノード302を作成し、1つまたは複数のデータ・ストア内にユーザ・ノード302を格納することができる。本明細書で説明するユーザおよびユーザ・ノード302は、適切な場合、登録されたユーザおよび登録されたユーザに関連するユーザ・ノード302を指す。追加または代替として、本明細書で説明するユーザおよびユーザ・ノード302は、適切な場合、ソーシャル・ネットワーキング・システム160に登録していないユーザを指す。特定の実施形態では、ユーザによって提供される情報、またはソーシャル・ネットワーキング・システム160を含む様々なシステムによって収集される情報に、ユーザ・ノード302を関連付けることができる。限定ではなく例として、ユーザは、ユーザの名前、プロファイル写真、連絡先情報、誕生日、性別、結婚状況、家族状況、職業、学歴、好み、関心、または他の人口統計情報を提供することができる。特定の実施形態では、ユーザに関連する情報に対応する1つまたは複数のデータ・オブジェクトにユーザ・ノード302を関連付けることができる。特定の実施形態では、ユーザ・ノード302は、1つまたは複数のウェブ・ページに対応することができる。
【0019】
特定の実施形態では、概念ノード304は概念(concept)に対応することができる。限定ではなく例として、概念は、場所(例えば、映画館、レストラン、ランドマーク、または都市など)、ウェブサイト(例えば、ソーシャル・ネットワーク・システム160に関連するウェブサイトまたはウェブ・アプリケーション・サーバに関連するサード・パーティ・ウェブサイトなど)、エンティティ(例えば、人、会社、グループ、スポーツ・チーム、または有名人など)、ソーシャル・ネットワーキング・システム160内またはウェブ・アプリケーション・サーバなどの外部サーバ上に位置することのできるリソース(例えば、オーディオ・ファイル、ビデオ・ファイル、デジタル・フォト、テキスト・ファイル、構造化された文書、またはアプリケーションなど)、物的または知的財産(例えば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著作物など)、ゲーム、活動、アイデアまたは理論、他の適切な概念、あるいは2つ以上のそのような概念に対応することができる。ユーザによって提供される概念の情報、またはソーシャル・ネットワーキング・システム160を含む様々なシステムによって収集される情報に概念ノード304を関連付けることができる。限定ではなく例として、概念の情報は、名前またはタイトル、1つまたは複数のイメージ(例えば、本のカバー・ページのイメージ)、位置(例えば、住所または地理的位置)、ウェブサイト(それをURLに関連付けることができる)、連絡先情報(例えば、電話番号またはeメール・アドレス)、他の適切な概念情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態では、概念ノード304に関連する情報に対応する1つまたは複数のデータ・オブジェクトに概念ノード304を関連付けることができる。特定の実施形態では、概念ノード304は1つまたは複数のウェブ・ページに対応することができる。
【0020】
特定の実施形態では、ソーシャル・グラフ300内のノードは、ウェブ・ページ(「プロファイル・ページ」と呼ばれることがある)を表すこと、またはウェブ・ページによって表すことができる。プロファイル・ページは、ソーシャル・ネットワーキング・システム160によってホストすること、またはソーシャル・ネットワーキング・システム160にとってアクセス可能にすることができる。プロファイル・ページはまた、サード・パーティ・サーバ170に関連するサード・パーティ・ウェブサイト上でホストすることもできる。限定ではなく例として、特定の外部ウェブ・ページに対応するプロファイル・ページは、特定の外部ウェブ・ページでよく、プロファイル・ページは、特定の概念ノード304に対応することができる。プロファイル・ページは、他のユーザのすべてまたは選択された一部分によって閲覧可能とすることができる。限定ではなく例として、ユーザ・ノード302は、対応するユーザがその中でコンテンツを追加し、宣言を行い、あるいはユーザ自身を表現することのできる、対応するユーザ・プロファイル・ページを有することができる。限定ではなく別の例として、概念ノード304は、特に概念ノード304に対応する概念に関連して、1人または複数のユーザがその中でコンテンツを追加し、宣言を行い、またはユーザ自身を表現することのできる、対応する概念プロファイル・ページを有することができる。
【0021】
特定の実施形態では、概念ノード304は、サード・パーティ・システム170によってホストされるサード・パーティ・ウェブページまたはリソースを表すことができる。サード・パーティ・ウェブページまたはリソースは、他の要素において、コンテンツ、選択可能な、もしくは他のアイコン、またはアクションもしくは活動を表す(例えば、JAVA(登録商標)Script、AJAX、またはPHPコードで実装することのできる)他の対話型オブジェクトを含むことができる。限定ではなく例として、サード・パーティ・ウェブページは、「いいね」、「チェックイン(check in)」、「食べる(eat)」、「レコメンド(recommend)」、または別の適切なアクションもしくは活動などの、選択可能なアイコンを含むことができる。サード・パーティ・ウェブページを閲覧するユーザは、アイコンのうちの1つ(例えば、「食べる」)を選択し、クライアント・システム130に、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム160に送信させることによってアクションを実施することができる。メッセージに応答して、ソーシャル・ネットワーキング・システム160は、ユーザに対応するユーザ・ノード302と、サード・パーティ・ウェブページまたはリソースに対応する概念ノード304との間のエッジ(例えば、「食べる」エッジ)を作成し、1つまたは複数のデータ・ストア内にエッジ306を格納することができる。
【0022】
特定の実施形態では、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内で接続されているユーザまたは概念に対応するノードを指すことがある。
【0023】
特定の実施形態では、ユーザ・ノード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との間の各タイプの関係(または複数の単一の関係)を表すことができる。
【0024】
特定の実施形態では、ソーシャル・ネットワーキング・システム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を形成することを企図する。
【0025】
特定の実施形態では、例えば、個々のオブジェクトがどのように互いに関係するかに基づいて、オブジェクトのセットを階層として編成することができる。オブジェクト階層は、任意の数のレベルを有することができ、各レベルに、任意の数のオブジェクトが存在することができる。階層内の特定のオブジェクト間に親子関係(parent-child relationship)または兄弟関係(sibling relationship)が存在することができる。オブジェクト階層内で、親オブジェクトは、その子オブジェクトのレベルより1レベル上にある。2つの兄弟オブジェクトは同一レベルにあり、同一の親オブジェクトを共有する。さらに、階層の任意の部分を、それ自体の中の1階層とみなすこともできる。
【0026】
図4は、いくつかのオブジェクト410を含む例示的なオブジェクト階層400の一部を示す。
図4は、実際にはオブジェクト階層の視覚表現である。各ノードは、階層内の特定のオブジェクトを表し、2つのノードを接続する各エッジは、2つの対応するオブジェクト間の親子関係を表す。
【0027】
特定の実施形態では、階層内のオブジェクトは親を有することがあり、または有さないことがある。オブジェクトが親を有さない場合、「ルート」オブジェクトと呼ばれることがある(例えば、オブジェクト410A)。通常、ルート・オブジェクトは、階層の第1のレベルまたは最上端のレベルに配置される。特定の実施形態では、階層内のオブジェクトは、子を有することがあり、またはどんな子も有さないことがある。オブジェクトがどんな子も有さない場合、「リーフ」または「終端」オブジェクトと呼ばれることがある(例えば、オブジェクト410B)。オブジェクトが子を有する場合(例えば、オブジェクト410C)、オブジェクトは任意の数の子を有することができる。さらに、同じ親を共有するオブジェクトは、互いの「兄弟」と呼ばれることがある。例えば、
図4では、オブジェクト410Cは、オブジェクト410Dおよび410Bの親である。オブジェクト410Dおよび410Bは、オブジェクト410Cの子であり、互いに対する兄弟である。したがって、オブジェクトの階層(例えば、オブジェクト階層400)は、個々のオブジェクト(例えば、オブジェクト410)自体を含むだけではなく、特定のオブジェクト間の関係も示す。さらに、階層内の特定のオブジェクトの位置は、階層内の他のオブジェクトとの関係を示すことができる。
【0028】
オブジェクト410は様々なタイプでよく、本開示は任意の適用可能なオブジェクト・タイプを企図する。限定はしないが例えば、「オブジェクト」という用語は、限定はしないが、イメージ、ビデオ、キャプション、テキスト・ブロックまたはボックス、ユーザ・インターフェース要素、クリッカブル・リンク、ニュースフィード・ストーリー、他のオブジェクトに対する参照、広告、カレンダ・イベント、グラフィカルにレンダリングすることのできるオープン・グラフ解析を表示する単位、アプリケーション、ウェブサイト、ウェブ・ページ、ブック、章を含む、任意のタイプのコンテンツを指す。特定の実施形態では、オブジェクトの別のより大きい階層の一部であるオブジェクトの階層が与えられると、特定のオブジェクト間の階層関係(例えば、親子または兄弟関係、階層内のオブジェクトの位置)が、これらのオブジェクトがユーザ・インターフェースのコンテキスト(context)でどのように振る舞うか、またはどのようにオブジェクトがユーザに提示されるかについてのいくつかの側面を指示することができる。
【0029】
1例を挙げると、コンピューティング装置のデスクトップのコンテキストでは、デスクトップは親オブジェクト、時には階層のルート・オブジェクトでよく、その子オブジェクトは、デスクトップ上で利用可能な個々のソフトウェア・アプリケーションである。ソフトウェア・アプリケーションは、それ自体がデスクトップの子オブジェクトのうちの1つであるが、そのソフトウェア・アプリケーションの個々の構成要素の親オブジェクトでもある。異なるソフトウェア・アプリケーションは異なる構成要素を含むことができる。例えば、デジタル・ブックを管理するソフトウェア・アプリケーション(例えば、ブック・リーダー・アプリケーション(book reader application))について、その構成要素は、利用可能なデジタル・ブック、各ブックの個々の章、各章のページ、および各ページ上のテキスト、イメージ、ビデオ、オーディオ、または他のコンテンツもしくはメディア要素を含むことができる。これらのそれぞれはまた、階層内のオブジェクト(例えば、ユーザ・インターフェース構成要素)に対応する。より具体的には、階層内で、デジタル・ブック・アプリケーションはデジタル・ブックの親オブジェクトでよい。デジタル・ブックは、そのブックの個々の章の親オブジェクトでよい。章は、それ自体がブックの子オブジェクトのうちの1つであるが、章内のページの親オブジェクトでもある。ページは、そのページ上のテキスト、イメージ、ビデオ、オーディオ、または他のコンテンツもしくはメディア要素の親オブジェクトである。テキスト・ブロック、イメージ、ビデオ、オーディオ、または他のコンテンツもしくはメディア要素は、それが属するページの子オブジェクトのうちの1つである。同様に、ニュース・フィードを管理するソフトウェア・アプリケーションでは、その構成要素は、各チャネル内の個々のニュース・チャネルおよびニュース・ストーリーを含むことができる。これらのそれぞれはオブジェクトに対応することができる。階層内で、ニュース・フィード・アプリケーションは、それ自体がデスクトップの子オブジェクトのうちの1つであるが、ニュース・チャネルの親オブジェクトでもある。ニュース・チャネルは、そのチャネル内に含まれるニュース・ストーリーの親オブジェクトである。
【0030】
別の例として、インターネットまたはワールド・ワイド・ウェブのコンテキストでは、インターネットは、その子オブジェクトが個々のウェブサイトである親オブジェクトである。ウェブサイトは、それ自体がインターネットの子オブジェクトのうちの1つであるが、そのウェブサイトの個々のウェブ・ページの親オブジェクトでもある。ウェブ・ページは、それ自体がそのウェブ・ページが属するウェブサイトの子オブジェクトのうちの1つであるが、ウェブ・ページ内に含まれるテキスト、イメージ、ビデオ、オーディオ、またはリンク(例えば、ユニフォーム・リソース・ロケータ(URL))の親オブジェクトである。各テキスト・ブロック、イメージ、ビデオ、オーディオ、またはリンクはまた、階層内の特定のオブジェクトに対応する。
【0031】
第3の例として、ソーシャル・ネットワーキング・システム160によって実装されるソーシャル・ネットワーキング・ウェブサイトなどのウェブサイトを、ソーシャル・ネットワーキング・ウェブサイトのコンテンツをナビゲートするための階層構造として構成することもできる。このコンテキストでは、ソーシャル・ネットワーキング・ウェブサイトは、その子オブジェクトがウェブサイトの構成要素(例えば、フォト・アルバム、ユーザ・プロファイル・ページなど)である親オブジェクトでよい。例えば、フォト・アルバムは、それ自体がソーシャル・ネットワーキング・ウェブサイトの子オブジェクトであるが、親オブジェクトであり、アルバム内の個々のフォトは、フォト・アルバムの子オブジェクトでよい。ユーザのプロファイル・ページをそのような階層式に構築することもできる。プロファイル・ページ自体を親オブジェクトとみなすことができ、プロファイル・ページ上の個々のオブジェクトは、プロファイル・ページの子オブジェクトでよい。特定の実施形態では、(例えば、ユーザへの提示のために)プロファイル・ページを、限定はしないが例えば、フォト、フォト・アルバム、チェックイン、他のユーザからのコメント、出席したイベント、タグ、ユーザがプロファイル・ページに追加したアプリケーション、ストーリー、ユーザが聴取した歌、プレイリストなどのオブジェクトのリニア・タイムライン(linear timeline)とみなすことができ、リニア・タイムラインとしてレンダリングすることができる。これらの様々なタイプのオブジェクトはすべて、プロファイル・ページの子でよく、または複数のレベルとしてさらに構成することができる。いくつかの形態では、ユーザのプロファイル・ページは、ユーザの教育情報および職業情報、ユーザのパブリック「ウォール(wall)」、ユーザのソーシャル接続などの任意の数のセクションを含むことができる。次いで、上記の様々なタイプのオブジェクトを特定のセクションに分割することができる。
【0032】
特定の実施形態では、オブジェクト410は、ユーザ・インターフェースの構成要素でもよい。この場合、オブジェクト階層400はユーザ・インターフェースに対応することができ、各オブジェクト410は、ユーザ・インターフェースの特定の構成要素に対応することができる。ユーザ・インターフェースは、様々なタイプの構成要素を有することができ、本開示は、任意の適用可能なユーザ・インターフェース構成要素タイプを企図する。例えば、ユーザ・インターフェース構成要素(すなわち、オブジェクト410)は、ウィンドウ、セクション、タブ、イメージ、ビデオ、オーディオ、テキスト・ブロック、メニュー、アイコン、ボタン、チェックボックス、ウェブサイト、ウェブ・ページ、フレーム、クリッカブル・リンク、メッセージ、ポスト、または入力フィールドである。特定の実施形態では、ユーザが、限定はしないが例えば、オブジェクト410と対話し、オブジェクト410を閲覧し、読み、聴取し、操作し、または処理することができる場合、ユーザはオブジェクト410を消費することができる。例えば、いくつかのユーザによる消費可能オブジェクト(user-consumable object)410は、テキスト、イメージ、ビデオ、オーディオ、フィード(feed)、実行可能ファイル(executable)(例えば、アプリケーション・プログラムまたはゲーム)、ウェブサイト、ウェブ・ページ、デジタル・ブック、フォト・アルバム、ポスト、またはメッセージである。
【0033】
特定の実施形態では、オブジェクト階層400に対応するユーザ・インターフェースが(例えば、クライアント・システム130上に)表示されるとき、対応するオブジェクト階層400の構造が、ユーザ・インターフェースの構造を反映することができる。オブジェクト階層400内に反映される、ユーザ・インターフェース内の個々の構成要素間の関係は、これらの構成要素がどのように編成され、ユーザに提示されるかに影響を及ぼす。ユーザ・インターフェースは、オブジェクト階層400の個々のレベルにそれぞれ対応する任意の数のレイヤを有することができる。オブジェクト階層400の特定のレベルのオブジェクト410(例えば、ユーザ・インターフェース構成要素)が、ユーザ・インターフェースの対応するレイヤ内に表示される。いくつかの形態では、ユーザ・インターフェースの最低または最下端のレイヤが、オブジェクト階層400の第1または最上端のレベルに対応する。したがって、ルート・オブジェクト410Aが、ユーザ・インターフェースの最低のレイヤ内に表示される。さらに、ユーザ・インターフェースでは、各オブジェクト410(例えば、ユーザ・インターフェース構成要素)が、親が存在する場合にその親が表示されるレイヤのすぐ上、かつ子が存在する場合にその子が表示されるレイヤのすぐ下のレイヤ内に表示される。兄弟オブジェクト410が同一のレイヤに表示される。したがって、ユーザ・インターフェースの構成要素の位置は、ユーザ・インターフェース内の他の構成要素との関係(例えば、親子または兄弟)を示す。
【0034】
特定の実施形態では、ユーザ・インターフェース構成要素(例えば、イメージ、ビデオ、フォルダなど)を様々なディスプレイ・モードで表示することができる。1例を挙げると、ユーザ・インターフェース構成要素が表示エリア(例えば、電子装置の画面)全体またはほぼ全体を占有する「全画面」モードでユーザ・インターフェース構成要素を表示することができる。別の例として、ユーザ・インターフェース構成要素が別のユーザ・インターフェース構成要素内に含まれ、その別のユーザ・インターフェース構成要素の一部として表示される(例えば、イメージがウェブ・ページの一部として表示される)「オン・ページ」モードでユーザ・インターフェース構成要素を表示することができる。第3の例として、ユーザ・インターフェース構成要素が一連のユーザ・インターフェース構成要素の一部である(例えば、イメージが、同一のアルバムの別のイメージと共に表示され、またはブックの章が、同一のブックの別の章と共にブックの目次内に表示される)「索引」モードでユーザ・インターフェース構成要素を表示することができる。
【0035】
特定の実施形態では、階層ユーザ・インターフェースを使用して、ユーザにコンテンツを提示することができる。そのようなユーザ・インターフェースは、「コンテンツ・フィード」または「ニュース・フィード」ユーザ・インターフェースと呼ばれることがある。コンテンツは、限定はしないが例えば、テキスト、アイコン、イメージ、ビデオ、オーディオ、ウェブ・ページ、ポスト、またはメッセージなどの任意のタイプおよびフォーマットである。本開示は、任意の適用可能なコンテンツ・タイプおよびフォーマットを企図する。特定の実施形態では、個々のコンテンツ・アイテム(例えば、テキスト、イメージ、ビデオ、オーディオ、ウェブ・ページ、ポスト、メッセージ、ニュース・ピースなど)を、コンテンツ・セクションと呼ばれる様々なカテゴリに編成することができる。例えば、関連するコンテンツ・アイテムを同一のコンテンツ・セクションに分類することができる。ユーザ・インターフェースは、任意の数のコンテンツ・セクションを含むことができ、各コンテンツ・セクションは、任意の数のコンテンツ・アイテムを含むことができる。階層的に、コンテンツ・セクションは、そのセクションに属するコンテンツ・アイテムの親である。例えば、休日旅行中に撮られた様々なフォトを同一のアルバムとして編成することができ、様々なフォト・アルバムをユーザ・インターフェースのフォト・セクションとして編成することができる。
【0036】
特定の実施形態では、ユーザは、特定のコンテンツ・アイテムを消費するか、または特定のコンテンツ・アイテムと対話することができる。例えば、ユーザがコンテンツ・アイテムをスクロールし、オープンし、閲覧し、聴取し、選択し、検討し、またはそれに対してコメントするとき、ユーザはコンテンツ・アイテムを消費する。ユーザがコンテンツ・アイテムを選択し、クリックし、タップし、検討し、またはそれに対してコメントするとき、ユーザはコンテンツ・アイテムと対話する。本開示は、ユーザがコンテンツ・アイテムを消費するか、またはコンテンツ・アイテムと対話するための任意の適用可能な手段を企図する。
【0037】
特定の実施形態では、ユーザ・インターフェース構成要素が、1つまたは複数の要素を含むことができる。要素は、例えば、ウィンドウ、セクション、タブ、イメージ、ビデオ、オーディオ・クリップ、テキスト・ブロック、メニュー、アイコン、ボタン、チェックボックス、ウェブサイト、ウェブ・ページ、フレーム、クリッカブル・リンク、メッセージ、ポスト、または入力フィールドを含むことができる。特定の実施形態では、要素はまた、(例えば、オブジェクト階層400の異なるレベルにおける)、ユーザ・インターフェースの構成要素(例えば、オブジェクト410または特定のコンテンツ・アイテム)であってもよい。
【0038】
図5Aは、ユーザ・インターフェースの例示的な構成要素500を示す。
図5Aの例では、構成要素500、すなわちニュース・フィード・ストーリーが、ユーザ・インターフェースにおいて全画面モードで表示されている。構成要素500は、要素510(ニュース・フィード・ストーリーに関連付けられたテキスト)、要素520(ニュース・フィード・ストーリーに関連付けられる、ソーシャル・ネットワーキング・システム160のユーザに関連付けられたイメージ)、要素530(ニュース・フィード・ストーリーに関連付けられたマップ)、および要素540(ソーシャル・ネットワーキング・システム160のユーザによってポストされる、ニュース・フィード・ストーリーに関連付けられた「いいね」およびコメント)を含む。
【0039】
特定の実施形態では、ユーザは、構成要素の1つまたは複数の要素を含む、ユーザ・インターフェースの構成要素(例えば、オブジェクト410または特定のコンテンツ・アイテム)を消費するか、またはそれと対話することができる。例えば、ユーザが、構成要素またはその要素のいずれかを選択する、クリックする、タップする、ピンチする、ズーム・インする、ズーム・アウトする、サイズ変更する、検討する、それに対してコメントするか、または任意の他のジェスチャを実施するとき、ユーザは、ユーザ・インターフェースの構成要素と対話することができる。特定の実施形態では、ユーザがユーザ・インターフェースの構成要素と対話するとき、構成要素の要素(要素のコンテンツを含む)のうちの1つまたは複数が、ユーザ対話によって影響されてもよい。構成要素の要素(要素のコンテンツを含む)は、一様でなく、または互いに独立して、ユーザ対話によって影響されてもよい。例として、ユーザが構成要素を倍率Xで小さくするようにサイズ変更する場合、構成要素の要素のうちの1つまたは複数もまた、倍率Xで小さくするようにサイズ変更することができ、構成要素の他の要素は、倍率1.5Xで小さくするようにサイズ変更することができる。構成要素の要素(要素のコンテンツを含む)は、ユーザ対話とは異なる方式で、ユーザ対話によって影響されてもよい。ユーザが構成要素を小さくするようにサイズ変更する例では、構成要素の要素は、全くサイズ変更されなくてもよいし、構成要素がサイズ変更した後に、構成要素の他の要素が、もはやユーザ・インターフェース内で見えなくなってもよいし、構成要素のさらなる他の要素が、シフトする、再構成される、並び替えられるか、または別のやり方で変更されてもよい。構成要素の要素(または要素のコンテンツ)の変更のさらなる例は、色を変更すること、要素の重要性(例えば、ソーシャル・グラフ300から集めた情報から決定される)に基づいて変更すること、または要素のタイプに基づいて変更すること(例えば、イメージ要素は倍率変更するが、すべてのテキスト要素は取り除くか、または「いいね」要素もしくはタグ要素は維持するが、コメント要素は取り除く)を含む。本開示は、その要素のいずれかを含む、ユーザ・インターフェースの構成要素を、ユーザが消費するか、またはそれと対話するための任意の適切な手段を企図する。
【0040】
図5Bは、ユーザ・インターフェースの構成要素500とのユーザ対話の例を示す。
図5Bの例では、ユーザは、構成要素500(
図5Aでは全画面モードで表示された)を小さくするようにサイズ変更している。構成要素500の要素は、構成要素500のユーザのサイズ変更によって影響される。この例では、構成要素500の要素540、530、および510が、小さくするようにサイズ変更されている。構成要素500の要素520もまた、小さくするようにサイズ変更されているが、要素520内のコンテンツ、すなわち、ソーシャル・ネットワーキング・システム160の「ビビアン ユーザ3」に関連付けられたイメージは、要素520内の他のコンテンツ、および構成要素500の他の要素510、530、および540と比較して、不均等に小さくするようにサイズ変更されている。
【0041】
特定の実施形態では、ユーザは、ユーザ・インターフェースの特定のレイヤ(例えば、構成要素が属するオブジェクト階層400の特定のレベルに対応するレイヤ)内の構成要素(例えば、オブジェクト410または特定のコンテンツ・アイテム)と対話することができる。特定のレイヤ内の構成要素とのユーザの対話は、特定の実施形態では、そのレイヤに影響するアクションを促すことができる。例として、ユーザがある構成要素を選択する、クリックする、タップする、ピンチする、ズーム・インする、ズーム・アウトするか、またはサイズ変更する場合、このアクションは、その構成要素が常駐するレイヤ(レイヤ内の任意の他の構成要素およびその要素を含む)もまた、選択される、クリックされる、タップされる、ピンチされる、ズーム・インされる、ズーム・アウトされるか、またはサイズ変更されるようにすることができる。さらに他の実施形態では、ユーザは、レイヤ内の特定の構成要素と対話することなく、ユーザ・インターフェースの特定のレイヤと直接対話することができ、対話は、レイヤ(レイヤ内の任意の構成要素およびその要素を含む)に影響することができる。特定の実施形態では、ユーザ・インターフェースの構成要素またはレイヤとのユーザの対話が、ユーザ・インターフェースの別のレイヤを見えるようにするか、または、別のレイヤをユーザ・インターフェース内でもはや見えないようにすることができる。
【0042】
図5Cは、
図5Bに示した構成要素500とのユーザ対話の例示的な結果を示す。
図5Cの例では、ユーザは、構成要素500を小さくするようにサイズ変更することを完了している。構成要素500の要素は、構成要素500をサイズ変更するユーザの完了によって影響されている。この例では、構成要素500の要素540(ソーシャル・ネットワーキング・システム160のユーザによってポストされる、ニュース・フィード・ストーリーに関連付けられた「いいね」およびコメント)は、ユーザ・インターフェース内には、もはや見えない。要素530(マップ)および510(テキスト)は、ユーザ・インターフェース内に依然見えているが、小さくするようにサイズ変更されている。要素520(ソーシャル・ネットワーキング・システム160のユーザに関連付けられたイメージ)もまた、小さくするようにサイズ変更されており、要素520のコンテンツは、取り除かれ、変更されている。具体的には、「ビビアン ユーザ3」に関連付けられたイメージが、もはや要素520の一部として見えなくなり、ニュース・フィード・ストーリーに関連付けられた追加的なユーザの数を示すイメージが、(
図5Aおよび
図5Bにおける)7人の追加的なユーザを示すことから、8人の追加的なユーザを示すことに変更されている。この例では、構成要素500とのユーザの対話は、構成要素500が常駐するレイヤ、すなわちレイヤ550に影響した。構成要素500を小さくするようにするユーザのサイズ変更は、構成要素500が常駐するレイヤ550を、小さくするようにサイズ変更されることを促した。レイヤ550の構成要素501および502もまた、小さくするようにサイズ変更された。構成要素500のユーザのサイズ変更(および構成要素500が常駐するレイヤ550のサイズ変更)の結果として、レイヤ560が、ユーザ・インターフェース内で見えるようにされている。
【0043】
図6は、ユーザ・インターフェースの構成要素をサイズ変更するための例示的な方法600を示す。方法は、ユーザ・インターフェースが提示のために提供される、ステップ610で開始することができる。ユーザ・インターフェースは、1つまたは複数の構成要素を含み、構成要素は、1つまたは複数のレイヤを有する階層で構成されている。階層の各レイヤは、少なくとも1つの構成要素を含む。ステップ620で、ユーザ・インターフェースの第1のレイヤの第1の構成要素とのユーザ対話に関連付けられるユーザ入力が、受信される。ユーザ入力は、第1のレイヤのサイズ変更を促す。ステップ630で、第1の構成要素の1つまたは複数の要素のコンテンツを自動的に変更することによって、少なくとも部分的に第1のレイヤのサイズが変更される。特定の実施形態は、適切な場合、
図6の方法の1つまたは複数のステップを反復することができる。本開示は、
図6の方法の特定のステップが特定の順序で行われるものとして説明および図示するが、本開示は、任意の適切な順序で行われる
図6の方法の任意の適切なステップを企図する。さらに、本開示は、
図6の方法の特定のステップを実施する特定の構成要素、装置、またはシステムを説明および図示するが、本開示は、
図6の方法の任意の適切なステップを実施する任意の適切な構成要素、装置、またはシステムの任意の適切な組合せを企図する。
【0044】
図7は、例示的なコンピュータ・システム700を示す。特定の実施形態では、1つまたは複数のコンピュータ・システム700は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータ・システム700は、本明細書で説明または図示される機能を提供する。特定の実施形態では、1つまたは複数のコンピュータ・システム700上で実行中のソフトウェアが、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施しまたは本明細書で説明または図示される機能を提供する。特定の実施形態は、1つまたは複数のコンピュータ・システム700の1つまたは複数の部分を含む。本明細書では、適切な場合、コンピュータ・システムに対する参照はコンピューティング装置を包含し、逆も同様である。さらに、適切な場合、コンピュータ・システムに対する参照は、1つまたは複数のコンピュータ・システムを包含する。
【0045】
本開示は、任意の適切な数のコンピュータ・システム700を企図する。本開示は、任意の適切な物理的形態を取るコンピュータ・システム700を企図する。限定ではなく例として、コンピュータ・システム700は、組込みコンピュータ・システム、システム・オン・チップ(SOC)、シングル・ボード・コンピュータ・システム(SBC)(例えば、コンピュータ・オン・モジュール(COM)やシステム・オン・モジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話型キオスク、メインフレーム、コンピュータ・システムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらの2つ以上の組合せでよい。適切な場合、コンピュータ・システム700は、1つまたは複数のコンピュータ・システム700を含むことができ、一体型または分散型でよく、複数の場所にわたるものでよく、複数のマシンにわたるものでよく、複数のデータセンタにわたるものでよく、またはクラウド内に常駐することができ、クラウドは、1つまたは複数のネットワーク内の1つまたは複数のクラウド構成要素を含むことができる。適切な場合、1つまたは複数のコンピュータ・システム700は、実質的な空間的または時間的な限定なしに、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施することができる。限定ではなく例として、1つまたは複数のコンピュータ・システム700は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップをリアル・タイムに、またはバッチ・モードで実施することができる。適切な場合、1つまたは複数のコンピュータ・システム700は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを異なる時刻または異なる場所で実施することができる。
【0046】
特定の実施形態では、コンピュータ・システム700は、プロセッサ702、メモリ704、ストレージ706、入力/出力(I/O)インターフェース708、通信インターフェース710、およびバス712を含む。本開示は、特定の構成の、特定の数の特定の構成要素を有する特定のコンピュータ・システムを説明および図示するが、本開示は、任意の適切な構成の、任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータ・システムを企図する。
【0047】
特定の実施形態では、プロセッサ702は、コンピュータ・プログラムを構成するような命令を実行するハードウェアを含む。限定ではなく例として、命令を実行するために、プロセッサ702は、内部レジスタ、内部キャッシュ、メモリ704、またはストレージ706から命令を取り出し(またはフェッチし)、その命令を復号化および実行し、次いで内部レジスタ、内部キャッシュ、メモリ704、またはストレージ706に1つまたは複数の結果を書き込むことができる。特定の実施形態では、プロセッサ702は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ702を企図する。限定ではなく例として、プロセッサ702は、1つまたは複数の命令キャッシュ、1つまたは複数のデータ・キャッシュ、および1つまたは複数の変換ルックアサイド・バッファ(translation lookaside buffer:TLB)を含むことができる。命令キャッシュ内の命令は、メモリ704またはストレージ706内の命令のコピーでよく、命令キャッシュは、プロセッサ702によるそうした命令の検索を加速することができる。データ・キャッシュ内のデータは、プロセッサ702で実行中の命令が演算するためのメモリ704またはストレージ706内のデータ、プロセッサ702で実行中の後続の命令によるアクセスのために、またはメモリ704もしくはストレージ706に書き込むために、プロセッサ702で実行された以前の命令の結果、あるいは他の適切なデータのコピーでもよい。データ・キャッシュは、プロセッサ702による読取りまたは書込み演算を加速することができる。TLBはプロセッサ702のための仮想アドレス変換(virtual-address translation)を加速することができる。特定の実施形態では、プロセッサ702は、データ、命令、またはアドレス用の1つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ702を企図する。適切な場合、プロセッサ702は、1つまたは複数の演算論理装置(arithmetic logic unit:ALU)を含むことができ、マルチコア・プロセッサでよく、または1つまたは複数のプロセッサ702を含むことができる。本開示は特定のプロセッサを説明および図示するが、本開示は任意の適切なプロセッサを企図する。
【0048】
特定の実施形態では、メモリ704は、プロセッサ702が実行するための命令、またはプロセッサ702が演算するためのデータを格納するメイン・メモリを含む。限定ではなく例として、コンピュータ・システム700は、ストレージ706または別のソース(例えば、別のコンピュータ・システム700など)からメモリ704に命令をロードすることができる。次いでプロセッサ702は、メモリ704から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ702は、内部レジスタまたは内部キャッシュから命令を取り出し、その命令を復号化することができる。命令の実行中または実行後に、プロセッサ702は、1つまたは複数の結果(これは中間結果または最終結果でよい)を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ702は、そうした結果の1つまたは複数をメモリ704に書き込むことができる。特定の実施形態では、プロセッサ702は、(ストレージ706または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内、またはメモリ704内の命令のみを実行し、(ストレージ706または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内、またはメモリ704内のデータのみに対して演算する。1つまたは複数のメモリ・バス(これはそれぞれアドレス・バスおよびデータ・バスを含むことができる)が、プロセッサ702をメモリ704に結合することができる。バス712は、以下で説明するように、1つまたは複数のメモリ・バスを含むことができる。特定の実施形態では、1つまたは複数のメモリ管理ユニット(memory management unit:MMU)が、プロセッサ702とメモリ704との間に常駐し、プロセッサ702によって要求されたメモリ704へのアクセスを可能にする。特定の実施形態では、メモリ704はランダム・アクセス・メモリ(RAM)を含む。適切な場合、このRAMは揮発性メモリでよい。適切な場合、このRAMはダイナミックRAM(DRAM)またはスタティックRAM(SRAM)でよい。さらに、適切な場合、このRAMは、単一ポートまたはマルチポートRAMでよい。本開示は任意の適切なRAMを企図する。適切な場合、メモリ704は、1つまたは複数のメモリ704を含むことができる。本開示は特定のメモリを説明および図示するが、本開示は任意の適切なメモリを企図する。
【0049】
特定の実施形態では、ストレージ706は、データまたは命令用のマス・ストレージを含む。限定ではなく例として、ストレージ706は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)・ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス(USB)ドライブ、あるいはこれらのうちの2つ以上の組合せを含むことができる。ストレージ706は、適切な場合、取外し可能または取外し不能(または固定)媒体を含むことができる。ストレージ706は、適切な場合、コンピュータ・システム700の内部または外部でよい。特定の実施形態では、ストレージ706は不揮発性固体メモリである。特定の実施形態では、ストレージ706は読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムされたROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気消去可能PROM(EEPROM)、電気書換え可能ROM(EAROM)、またはフラッシュ・メモリ、あるいはこれらのうちの2つ以上の組合せでよい。本開示は、任意の適切な物理的形態を有するマス・ストレージ706を企図する。適切な場合、ストレージ706は、プロセッサ702とストレージ706との間の通信を可能にする1つまたは複数のストレージ制御ユニットを含むことができる。適切な場合、ストレージ706は、1つまたは複数のストレージ706を含むことができる。本開示は特定のストレージを説明および図示するが、本開示は任意の適切なストレージを企図する。
【0050】
特定の実施形態では、I/Oインターフェース708は、コンピュータ・システム700と1つまたは複数のI/O装置との間の通信のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム700は、適切な場合、これらのI/O装置のうちの1つまたは複数を含むことができる。これらのI/O装置のうちの1つまたは複数は、人とコンピュータ・システム700との間の通信を可能にすることができる。限定ではなく例として、I/O装置は、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の適切なI/O装置、またはこれらのうちの2つ以上の組合せを含むことができる。I/O装置は1つまたは複数のセンサを含むことができる。本開示は、任意の適切なI/O装置およびそのための任意の適切なI/Oインターフェース708を企図する。適切な場合、I/Oインターフェース708は、プロセッサ702がこれらのI/O装置のうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。I/Oインターフェース708は、適切な場合、1つまたは複数のI/Oインターフェース708を含むことができる。本開示は特定のI/Oインターフェースを説明および図示するが、本開示は任意の適切なI/Oインターフェースを企図する。
【0051】
特定の実施形態では、通信インターフェース710は、コンピュータ・システム700と、1つまたは複数の別のコンピュータ・システム700あるいは1つまたは複数のネットワークとの間の通信(例えば、パケット・ベースの通信など)用の1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、通信インターフェース710は、イーサネット(登録商標)または他のワイヤ・ベースのネットワークと通信するネットワーク・インターフェース・コントローラ(network interface controller:NIC)またはネットワーク・アダプタ、あるいはWi−Fiネットワークなどのワイヤレス・ネットワークと通信するワイヤレスNIC(wire-based network or a wireless:WNIC)またはワイヤレス・アダプタを含むことができる。本開示は、任意の適切なネットワークおよびそのための任意の適切な通信インターフェース710を企図する。限定ではなく例として、コンピュータ・システム700は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、大都市圏ネットワーク(metropolitan area network:MAN)、またはインターネットの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスでよい。1例を挙げると、コンピュータ・システム700は、ワイヤレスPAN(WPAN)(例えば、BLUETOOTH WPANなど)、Wi−Fiネットワーク、WI−MAXネットワーク、携帯電話網(例えば、Global System for Mobile Communication(GSM(登録商標))ネットワークなど)、または他の適切なワイヤレス・ネットワーク、あるいはこれらのうちの2つ以上の組合せと通信することができる。コンピュータ・システム700は、適切な場合、これらのネットワークのいずれかに関する任意の適切な通信インターフェース710を含むことができる。通信インターフェース710は、適切な場合、1つまたは複数の通信インターフェース710を含むことができる。本開示は特定の通信インターフェースを説明および図示するが、本開示は任意の適切な通信インターフェースを企図する。
【0052】
特定の実施形態では、バス712は、コンピュータ・システム700の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、バス712は、アクセラレーテッド・グラフィックス・ポート(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つ以上の組合せを含むことができる。バス712は、適切な場合、1つまたは複数のバス712を含むことができる。本開示は特定のバスを説明および図示するが、本開示は、任意の適切なバスまたは相互接続を企図する。
【0053】
本明細書では、コンピュータ可読非一時的記憶媒体は、適切な場合、1つまたは複数の半導体ベースの、または他の集積回路(IC)(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。
【0054】
本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「または」は排他的ではなく包含的である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AまたはB」は「A、B、またはその両方」を意味する。さらに、別段に明記されていない限り、または文脈によって示されていない限り、「および」は協同および個々の両方である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AおよびB」は、「AおよびBが一緒に、または個別に」を意味する。
【0055】
本開示の範囲は、当業者なら理解するはずである、本明細書で説明または図示される例示的実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または図示される例示的実施形態に限定されない。さらに、本開示は、本明細書のそれぞれの実施形態が特定の構成要素、要素、機能、動作、またはステップを含むものとして説明および図示するが、これらの実施形態のいずれも、当業者なら理解するはずである、本明細書のどこかで説明または図示される構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは置換を含むことができる。さらに、特定の機能を実施するように適合され、配置され、実施することが可能であり、実施するように構成され、実施することが可能にされ、実施するように動作可能である装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲での参照は、その装置、システム、または構成要素がそのように適合され、配置され、可能であり、構成され、可能にされ、動作可能にされる限り、その装置、システム、構成要素またはその特定の機能が活動化され、オンにされ、またはロック解除されるか否かに関わらず、その装置、システム、構成要素を包含する。