図1は、ソーシャルネットワーキング・システムに関連付けられた例示的なネットワーク環境100を示す。ネットワーク環境100は、ユーザ101、クライアント・システム130、ソーシャルネットワーキング・システム160、およびサードパーティ・システム170を含み、ネットワーク110によって互いに接続される。図1は、ユーザ101、クライアント・システム130、ソーシャルネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の特定の配置を示すが、本開示は、ユーザ101、クライアント・システム130、ソーシャルネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の任意の適切な配置を想定している。限定ではなく一例として、クライアント・システム130、ソーシャルネットワーキング・システム160、およびサードパーティ・システム170のうちの2つ以上は、互いに直接、ネットワーク110をバイパスして接続され得る。別の例として、クライアント・システム130、ソーシャルネットワーキング・システム160、およびサードパーティ・システム170のうちの2つ以上は、物理的または論理的に、全体的または部分的に互いに同じ場所に配置され得る。また、図1は、特定の数のユーザ101、クライアント・システム130、ソーシャルネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を示すが、本開示は、任意の適切な数のユーザ101、クライアント・システム130、ソーシャルネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を想定している。限定ではなく一例として、ネットワーク環境100は、複数のユーザ101、クライアント・システム130、ソーシャルネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を含むことができる。
特定の実施形態において、ユーザ101は、ソーシャルネットワーキング・システム160と対話する、またはソーシャルネットワーキング・システム160を介して通信する、個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、もしくはサードパーティのアプリケーション)、またはグループ(例えば、個人もしくはエンティティの)であり得る。特定の実施形態において、ソーシャルネットワーキング・システム160は、オンライン・ソーシャル・ネットワークをホスティングする、ネットワークにアドレス可能なコンピューティング・システムであり得る。ソーシャルネットワーキング・システム160は、例えば、オンライン・ソーシャル・ネットワークに関係するユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、または他の適切なデータなど、ソーシャルネットワーキング・データを生成、格納、受信、および送信することができる。ソーシャルネットワーキング・システム160は、直接またはネットワーク110を介してネットワーク環境100の他の構成要素によってアクセスされ得る。サードパーティ・システム170は、直接またはネットワーク110を介してネットワーク環境100の他の構成要素によってアクセスされ得る。特定の実施形態において、1つまたは複数のユーザ101は、1つまたは複数のクライアント・システム130を使用して、ソーシャルネットワーキング・システム160またはサードパーティ・システム170にアクセスし、データを送信し、ソーシャルネットワーキング・システム160またはサードパーティ・システム170からデータを受信することができる。クライアント・システム130は、直接か、またはネットワーク110もしくはサードパーティ・システムを介して、ソーシャルネットワーキング・システム160またはサードパーティ・システム170にアクセスすることができる。限定ではなく一例として、クライアント・システム130は、ソーシャルネットワーキング・システム160を介してサードパーティ・システム170にアクセスすることができる。クライアント・システム130は、例えば、パーソナル・コンピュータ、ラップトップ・コンピュータ、セルラ電話、スマートフォン、またはタブレット・コンピュータなど、任意の適切なコンピューティング・デバイスであってよい。
リンク150は、クライアント・システム130、ソーシャルネットワーキング・システム160、およびサードパーティ・システム170を通信ネットワーク110に、または相互に接続することができる。本開示は、任意の適切なリンク150を想定している。特定の実施形態では、1つまたは複数のリンク150は、1つまたは複数の有線リンク(例えば、デジタル加入者線(DSL)またはデータオーバーケーブルサービスインターフェイス仕様(DOCSIS)等)、無線リンク(例えば、Wi−Fi(登録商標)またはWiMAX(登録商標)等)、または光学リンク(例えば、同期型光ネットワーク(SONET)または同期デジタルハイアラーキ(SDH)等)を含む。特定の実施形態では、1つまたは複数のリンク150の各々は、アド・ホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部、PSTNの一部、セルラ技術によるネットワーク、衛星通信技術によるネットワーク、別のリンク150、または2つ以上のそのようなリンク150の組み合わせを含む。リンク150は、必ずしもネットワーク環境100全体を通じて同一である必要はない。1つまたは複数の第1のリンク150は、1つまたは複数の第2のリンク150とは、1つまたは複数の点で異なっていてもよい。
特定の実施形態では、クライアント・システム130は、クライアント・システム130によって実装またはサポートされる適切な機能を実行することができる、ハードウェア、ソフトウェア、もしくは組み込みロジック・コンポーネント、または2つ以上のそのようなコンポーネントの組合せを含む電子デバイスであってもよい。限定ではなく一例として、クライアント・システム130は、デスクトップ・コンピュータ、ノートブック・コンピュータもしくはラップトップ・コンピュータ、ネットブック、タブレット・コンピュータなどのコンピュータ・システム、eブック・リーダ、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、セルラ電話、スマートフォン、その他の適切な電子デバイス、またはそれらの任意の適切な組合せを含むことができる。本開示は、任意の適切なクライアント・システム130を想定している。クライアント・システム130は、クライアント・システム130のネットワーク・ユーザがネットワーク110にアクセスすることを可能にする。クライアント・システム130は、クライアント・システム130のユーザが他のクライアント・システム130の他のユーザ101と通信することを可能にする。
特定の実施形態では、クライアント・システム130は、一体型画像センサ(モバイル・コンピューティング・デバイスのウェブ・カメラや自動車の車内を撮影するカメラなど)、またはクライアント・システム130に結合された個別の画像センサ(ウェブ・カメラや監視カメラなど)を含むことができる。画像センサは、所定の間隔で個別の画像または複数の画像のうちの1つまたは複数をビデオ状況として取り込むように構成することができる。限定ではなく一例として、ソーシャルネットワーキング・システム160は、所定の時間間隔で画像を取り込むまたは送信するためのフレーム・レートを調整することができる。特定の実施形態では、画像センサによって取り込まれた1つまたは複数の画像を、ネットワーク110を介してソーシャルネットワーキング・システム160またはサードパーティ・システム170へ送信することができる。特定の実施形態においては、クライアント・システム130の画像センサによって取り込まれた画像を、クライアント・システム130上で実行されるプログラム、またはクライアント・システム130のオペレーティング・システム(OS)に組み込まれた画像アップロード機能を用いて、ソーシャルネットワーキング・システム160またはサードパーティ・システム170にアップロードすることができる。限定ではなく一例として、クライアント・システム130の画像センサによって取り込まれた画像を、ほぼリアルタイムで、ユーザ101のビデオ状況としてソーシャルネットワーキング・システム160またはサードパーティ・システム170に自動的にアップロードし、ストリーミングすることができる。特定の実施形態においては、ユーザ101が、クライアント・システム130の画像センサによって取り込まれた画像にフィルタリング(セピアなど)を適用することによって、リアルタイムのビデオ状況をカスタマイズすることができる。特定の実施形態においては、ソーシャルネットワーキング・システム160またはサードパーティ・システム170は、圧縮を適応的に適用したり、ネットワーク110上の接続の帯域幅に少なくとも部分的に基づいてビデオ状況のフレーム・レートや解像度を調整したりすることができる。
特定の実施形態において、クライアント130は、MICROSOFTINTERNET EXPLORER(登録商標)、GOOGLECHROME(登録商標)、またはMOZILLA FIREFOX(登録商標)などのウェブ・ブラウザ132を含むことができ、1つまたは複数のアドオン、プラグインや、TOOLBARもしくはYAHOOTOOLBARなどのその他の拡張を有することができる。クライアント・システム130のユーザ101は、ウェブ・ブラウザ132を特定のサーバ(サーバ162、またはサードパーティ・システム170に関連付けられているサーバなど)に向けるURLまたは他のアドレスを入力することができ、ウェブ・ブラウザ132は、ハイパー・テキスト転送プロトコル(HTTP)要求を生成し、そのHTTP要求をサーバへ伝えることができる。サーバは、そのHTTP要求を受け入れ、そのHTTP要求に応答して1つまたは複数のハイパー・テキスト・マークアップ言語(HTML)ファイルをクライアント・システム130へ伝えることができる。クライアント・システム130は、ユーザ101に提示するためにサーバからのHTMLファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページ・ファイルを想定している。限定ではなく一例として、ウェブページは、特定のニーズに従って、HTMLファイル、拡張可能ハイパー・テキスト・マークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルからレンダリングすることができる。そのようなページは、限定ではなく一例として、JAVASCRIPT(登録商標)、JAVA(登録商標)、MICROSOFTSILVERLIGHT(登録商標)で書かれたスクリプトなどのスクリプト、AJAX(AsynchronousJAVASCRIPT(登録商標) andXML)などのマークアップ言語とスクリプトの組合せなどを実行することもできる。本明細書においては、ウェブページへの参照は、適切な場合には、(そのウェブページをレンダリングするためにブラウザが使用することができる)1つまたは複数の対応するウェブページ・ファイルを含み、その逆もまた同様である。
特定の実施形態において、ソーシャルネットワーキング・システム160は、オンライン・ソーシャル・ネットワークをホスティングすることができるネットワークにアドレス指定可能なコンピューティング・システムとすることができる。ソーシャルネットワーキング・システム160は、例えば、ユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関連した他の適切なデータなどのソーシャルネットワーキング・データを生成し、格納し、受信し、送信することができる。ソーシャルネットワーキング・システム160は、ネットワーク環境100のその他のコンポーネントによって直接、またはネットワーク110を介してアクセスされ得る。特定の実施形態においては、ソーシャルネットワーキング・システム160は、1つまたは複数のサーバ162を含むことができる。各サーバ162は、単一のサーバであってもよく、複数のコンピュータもしくは複数のデータセンタにまたがる分散サーバであってもよい。サーバ162は、限定ではなく一例として、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、Exchangeサーバ、データベース・サーバ、プロキシ・サーバ、本明細書で説明する機能もしくはプロセスを実行するために適した他のサーバ、またはそれらの任意の組合せなど、さまざまなタイプのものであってよい。特定の実施形態においては、各サーバ162は、サーバ162によって実装され、またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、もしくは組み込みロジック・コンポーネント、または2つ以上のそのようなコンポーネントの組合せを含むことができる。特定の実施形態においては、ソーシャルネットワーキング・システム164は、1つまたは複数のデータ・ストア164を含むことができる。データ・ストア164は、さまざまなタイプの情報を格納するために使用することができる。特定の実施形態において、データ・ストア164に格納される情報は、特定のデータ構造に従って編成することができる。特定の実施形態において、各データ・ストア164は、リレーショナル・データベース、カラムナ(columnar)・データベース、相関データベース、または他の適切なデータベースとすることができる。本開示では、特定のタイプのデータベースについて説明または示しているが、本開示は、任意の適切なタイプのデータベースを想定している。特定の実施形態は、クライアント・システム130、ソーシャルネットワーキング・システム160、またはサードパーティ・システム170が、データ・ストア164に格納されている情報を管理し、取り出し、修正し、追加し、または削除することを可能にするインターフェースを提供することができる。
特定の実施形態において、ソーシャルネットワーキング・システム160は、1つまたは複数のソーシャル・グラフを1つまたは複数のデータ・ストア164に格納することができる。特定の実施形態において、ソーシャル・グラフは、(各々特定のユーザに対応する)複数のユーザ・ノードまたは(各々特定のコンセプトに対応する)複数のコンセプト・ノードを含み得る複数のノードと、それらノードをつなぐ複数のエッジとを含むことができる。ソーシャルネットワーキング・システム160は、ソーシャルネットワーキング・システム160のユーザ101に、他のユーザ101と通信し、対話する能力を提供することができる。特定の実施形態において、各ユーザは、ソーシャルネットワーキング・システム160を介してオンライン・ソーシャル・ネットワークに参加し、次いで、各ユーザがつながりたいと望むソーシャルネットワーキング・システム160の何人かの他のユーザへのつながり(関係など)を付加することができる。本明細書において、「友達」という用語は、ユーザ101がソーシャルネットワーキング・システム160を介して、つながり、関連付け、または関係を形成している相手であるソーシャルネットワーキング・システム160の他の任意のユーザ101を指すことができる。
特定の実施形態において、ソーシャルネットワーキング・システム160は、ソーシャルネットワーキング・システム160によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに関してアクションを取る機能をユーザに提供することができる。限定ではなく一例として、それらのアイテムおよびオブジェクトは、ソーシャルネットワーキング・システム160のユーザが属することができるグループもしくはソーシャル・ネットワーク、ユーザが関心を抱く可能性があるイベントもしくはカレンダー・エントリー、ユーザが使用することができるコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを売買することを可能にする取引、ユーザが実行することができる広告との対話、または他の適切なアイテムもしくはオブジェクトを含むことができる。ユーザは、ソーシャルネットワーキング・システム160において、または、ソーシャルネットワーキング・システム160とは別個のものであって、ネットワーク110を介してソーシャルネットワーキング・システム160に結合されている、サードパーティ・システム170の外部システムによって表されることが可能な任意のものと対話することができる。
特定の実施形態において、ソーシャルネットワーキング・システム160は、さまざまなエンティティをリンク可能とする。限定ではなく一例として、ソーシャルネットワーキング・システム160は、ユーザ101がサードパーティ・システム170もしくは他のエンティティからのコンテンツを受け取るのみならずユーザ同士で対話することを可能にし、さらには、ユーザ101がアプリケーション・プログラミング・インターフェース(API)もしくは他の通信チャネルを通じてこれらのエンティティと対話することを可能にする。
特定の実施形態において、サードパーティ・システム170は、1つまたは複数のタイプのサーバ、1つまたは複数のデータ・ストア、APIを含むがそれだけに限定されない1つまたは複数のインターフェース、1つまたは複数のウェブ・サービス、1つまたは複数のコンテンツ・ソース、1つまたは複数のネットワーク、または、例えば、サーバが通信することができる任意の他の適切なコンポーネントを含むことができる。サードパーティ・システム170は、ソーシャルネットワーキング・システム160を運営しているエンティティとは異なるエンティティによって運営され得る。しかしながら、特定の実施形態においては、ソーシャルネットワーキング・システム160およびサードパーティ・システム170は、ソーシャルネットワーキング・システム160またはサードパーティ・システム170のユーザ101にソーシャルネットワーキング・サービスを提供するために互いに連携して機能することができる。この意味において、ソーシャルネットワーキング・システム160は、サードパーティ・システム170などの他のシステムがインターネットを介してソーシャルネットワーキングのサービスおよび機能をユーザ101に提供するために使用することができるプラットフォーム、すなわちバックボーンを提供することができる。
特定の実施形態において、サードパーティ・システム170は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含むことができる。サードパーティ・コンテンツ・オブジェクト・プロバイダは、コンテンツ・オブジェクトの1つまたは複数のソースを含むことができ、それらのコンテンツ・オブジェクトはクライアント・システム130へ伝えられ得る。限定ではなく一例として、コンテンツ・オブジェクトは、ユーザ101にとって関心がある事物またはアクティビティに関する情報、例えば、映画の開始時刻、映画のレビュー、レストランのレビュー、レストランのメニュー、製品の情報およびレビュー、または他の適切な情報などを含むことができる。限定ではなく、別の例として、コンテンツ・オブジェクトは、インセンティブ・コンテンツ・オブジェクト、例えば、クーポン、ディスカウント・チケット、ギフト券、または他の適切なインセンティブ・オブジェクトを含むことができる。
特定の実施形態において、ソーシャルネットワーキング・システム160は、ユーザ生成のコンテンツ・オブジェクトも含み、ユーザによって生成されたコンテンツ・オブジェクトは、ユーザとソーシャルネットワーキング・システム160との対話を向上させることができる。ユーザ生成のコンテンツは、ユーザ101がソーシャルネットワーキング・システム160に付加し、アップロードし、送信し、または「投稿」することができる任意のものを含むことができる。限定ではなく一例として、ユーザ101は、クライアント・システム130からソーシャルネットワーキング・システム160へ投稿を伝える。投稿は、ステータス更新もしくはその他のテキスト・データ、ロケーション情報、写真、ビデオ、リンク、音楽、または他の類似したデータもしくはメディアなどのデータを含むことができる。コンテンツは、ニュースフィードやストリームなどの「通信チャネル」を通じてサードパーティによってソーシャルネットワーキング・システム160に付加されてもよい。
特定の実施形態において、ソーシャルネットワーキング・システム160は、さまざまなサーバ、サブシステム、プログラム、モジュール、ログ、およびデータ・ストアを含むことができる。特定の実施形態において、ソーシャルネットワーキング・システム160は、ウェブ・サーバ、アクション・ロガー、API要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類子、通知コントローラ、アクション・ログ、サードパーティ・コンテンツ・オブジェクト露出ログ、推測モジュール、認可/プライバシー・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインターフェース・モジュール、ユーザプロフィール・ストア、つながりストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの1つまたは複数を含むことができる。ソーシャルネットワーキング・システム160は、適切なコンポーネント、例えば、ネットワーク・インターフェース、セキュリティー・メカニズム、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワークオペレーション・コンソール、他の適切なコンポーネント、またはそれらの任意の適切な組合せを含むこともできる。
特定の実施形態において、ソーシャルネットワーキング・システム160は、ユーザ・プロフィールを格納するための1つまたは複数のユーザプロフィール・ストアを含むことができる。ユーザ・プロフィールは、例えば、経歴情報、人口統計学的情報、挙動情報、ソーシャルな情報、または他のタイプの記述的情報、例えば、職業経験、学歴、趣味もしくは好み、関心、親近感、またはロケーションを含むことができる。関心情報は、1つまたは複数のカテゴリに関連した関心を含むことができる。カテゴリは、一般的または具体的であることが可能である。限定ではなく一例として、ユーザが、あるブランドの靴に関する記事に対して「いいね!」を表明した場合には、カテゴリは、そのブランド、または「靴」もしくは「衣類」という一般的なカテゴリとすることができる。ユーザに関するつながり情報を格納するために、つながりストアを使用することができる。つながり情報は、類似した、もしくは共通の職業経験、グループ・メンバーシップ、趣味、学歴を有しており、または何らかの形で関連しており、もしくは共通の属性を共有しているユーザ同士を示すことができる。つながり情報は、さまざまなユーザとコンテンツ(内部と外部の両方)との間のユーザ定義のつながりを含むこともできる。
特定の実施形態において、ソーシャルネットワーキング・システム160のユーザ101を、ユーザ101の時間的な、空間的な、モーダルな、あるいは、ソーシャルなアクセス性または利用性を示すプレゼンス情報によって、ソーシャルネットワーキング・システム160の1つまたは複数のグラフィカル・ユーザ・インターフェース(GUI)上で表すことができる。限定ではなく一例として、ユーザ101と関連付けられているプロフィール・ページを、ソーシャルネットワーキング・システム160によってホスティングすることができる。また、プロフィール・ページを、サードパーティ・サーバ170に関連付けられているサードパーティ・ウェブサイト上でホスティングすることもできる。プロフィール・ページは、ソーシャルネットワーキング・システム160の他のユーザ101の全部または選択された一部によって閲覧可能とする。限定ではなく一例として、ソーシャルネットワーキング・システム160のユーザ101は、対応するユーザ101が、コンテンツを付加し、言明を行い、またはその他の形でユーザ自身を表現するための対応するユーザ・プロフィール・ページを有していてもよい。別の例として、ユーザ101がソーシャルネットワーキング・システム160上でのプレゼンス(presence)を有し得る他の例示的なユーザ・インターフェース(UI)またはウェブページは、後述する、「友達の」ニュースフィードの「サイド・バー」や、メンバーシップにユーザ101が含まれる特定のグループと関連付けられたグループ・ページや、モバイル・コンピューティング・システムのUIや、それらの任意の組合せである。別の例として、ユーザ101が企業エンティティである場合には、その企業エンティティを企業ページとして表すことができる。
ネットワーク110を介してソーシャルネットワーキング・システム160を1つまたは複数のクライアント・システム130、あるいは1つまたは複数のサードパーティ・システム170にリンクするために、ウェブ・サーバを使用することができる。ウェブ・サーバは、ソーシャルネットワーキング・システム160と、1つまたは複数のクライアント・システム130との間でメッセージを受信し、ルーティングするためのメール・サーバまたは他のメッセージング機能を含むことができる。API要求サーバは、サードパーティ・システム170が、1つまたは複数のAPIを呼び出すことによってソーシャルネットワーキング・システム160からの情報にアクセスすることを可能にする。ソーシャルネットワーキング・システム160上またはソーシャルネットワーキング・システム160外のユーザのアクションに関するウェブ・サーバからの通信を受け取るために、アクション・ロガーを使用することができる。アクション・ログと併せて、サードパーティ・コンテンツ・オブジェクトへのユーザの露出についてのサードパーティ・コンテンツ・オブジェクト・ログを保持することができる。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアント・システム130に提供することができる。通知としてクライアント・システム130へ情報をプッシュすることもでき、あるいは、クライアント・システム130から受け取られた要求に応答して、クライアント・システム130から情報をプルすることもできる。ユーザ101に関連付けられているクライアント・システム130から受け取られたロケーション情報を格納するために、ロケーション・ストアを使用することができる。広告価格設定モジュールは、ソーシャルな情報、現在時刻、ロケーション情報、または他の適切な情報を組み合わせて、関連がある広告を、通知の形式でユーザ101に提供することができる。サードパーティ・システム170などのサードパーティから受け取られたコンテンツ・オブジェクトを格納するために、サードパーティ・コンテンツ・オブジェクト・ストアを使用することができる。
特定の実施形態において、ソーシャルネットワーキング・システム160は、認証サーバ(または他の適切なコンポーネント)を含むことができる。認証サーバは、例えば、適切なプライバシー設定を設定することによって、ユーザ101に対し、ユーザのアクションをソーシャルネットワーキング・システム160によって記録させること、または他のシステム(サードパーティ・システム170など)と共有させることをオプトインまたはオプトアウトすることを可能にする。ユーザのプライバシー設定は、ユーザと関連付けられた何の情報が記録され得るか、ユーザと関連付けられた情報がどのように記録され得るか、ユーザと関連付けられた情報がいつ記録され得るか、ユーザと関連付けられた情報を誰が記録し得るか、ユーザと関連付けられた情報が誰と共有され得るか、およびユーザと関連付けられた情報が何の目的で記録または共有され得るかを決定することができる。認証サーバは、必要に応じて、ブロッキング、データ・ハッシング、匿名化、または他の適切な技術によって、ソーシャルネットワーキング・システム160の各ユーザの1つまたは複数のプライバシー設定を実施するために使用することができる。ユーザ101のプライバシー設定は、ユーザ101に関連付けられた特定の情報がどのように共有され得るかを決定する。特定の実施形態においては、プレゼンス情報(ユーザ101のほぼリアルタイムのストリーミング・ビデオ状況など)のためにソーシャルネットワーキング・システム160によって提供されるUIによって表示されるコンテンツの決定を、ソーシャルネットワーキング・システム160のユーザ101のプライバシー設定に基づいて制限することができる。限定ではなく一例として、ソーシャルネットワーキング・システム160は、ユーザが「友達」を招待して、その「友達」とリアルタイム・ビデオ状況を共有したり、ユーザがリアルタイム・ビデオ状況をストリーミングしていることを「友達」に告知したり、ユーザのリアルタイム・ビデオ状況を見ることを許可する「友達」を決定したり、あるいはそれらの任意の組み合わせを行うために、ユーザのプライバシー設定を適用することができる。
図2A〜図2Dは、例示的なビデオ状況での例示的なユーザ・インターフェースの例示的なワイヤフレームを示す。本開示では、特定のコンピューティング・システム上のコンポーネントおよびリアルタイム・ビデオ状況の特定の構成を有する特定のUIを説明または示すが、本開示は、例えばサードパーティ・システムなどのような、任意の適切なコンピューティング・システム上の任意の適切なコンポーネントおよび任意の適切なリアルタイム・ビデオ状況の任意の適切な構成を有する任意の適切なUIを想定している。前述のように、ユーザは、1つまたは複数のUI50A〜50Dを介して、ソーシャルネットワーキング・システム上でプレゼンス情報を提供することができる。特定の実施形態では、プレゼンス情報は、特定のユーザがソーシャルネットワーキング・システムの特定の他のユーザの状況をリアルタイムで確認することができるように、リアルタイム・ビデオ状況52を含むことができる。特定の実施形態において、プレゼンス情報は、ユーザの事前に記録されたビデオを含むことができる。前述のように、ユーザのクライアント・システムと関連付けられた画像センサが、自動的に手入力なしで、ユーザの1つまたは複数の画像を取り込み、それらの画像を、ユーザのプライバシー設定に応じて、適宜、ソーシャルネットワーキング・システムへ送信することができる。さらに、リアルタイム・ビデオ状況52は、ユーザの変化する地理的位置または移動に応じて、さまざまな画像センサによって取り込まれた画像を切り替えることもできる。限定ではなく一例として、リアルタイム・ビデオ状況52は、最初に、職場のデスクのラップトップのウェブ・カメラによって取り込まれたユーザのビデオをストリーミングし、次いで、モバイル・コンピューティング・デバイスのカメラによって取り込まれた職場のカフェテリアからのビデオをストリーミングすることもできる。
図2A〜図2Dで示された各例において、UI50A〜50Dは、例えば、各々ユーザと関連付けられた1つまたは複数のリアルタイム・ビデオ状況フィード52などのようなプレゼンス情報を表示するように構成することができる。図2Aは、ユーザのリアルタイム・ビデオ状況52を提示するように構成された例示的なユーザ・プロフィール・ページ50Aの一部分を示す。特定の実施形態において、ユーザ・プロフィール・ページ50Aは、プライバシー設定に応じて、適宜、ユーザや、ユーザの「友達」や、または「友達」以外の他のユーザにより閲覧可能となる。ユーザ・プロフィール・ページ50Aは、1つまたは複数の対話式エレメント54を選択することによって閲覧可能またはアクセス可能ないくつかの異なるコンポーネントを含むことができる。図2Aに示す例においては、ユーザ・プロフィール・ページ50Aは、カバー画像56Aとして表示するための特定の写真または絵図を含むことができる。前述のように、ユーザ・プロフィールは、例えば、固有名詞(人物のファースト・ネーム、ミドル・ネーム、およびラスト・ネーム、企業エンティティの商号または会社名など)、経歴、人口統計学的情報、現住所、生年月日、出身地、配偶者の有無、またはそれらの任意の組合せなど、ソーシャルネットワーキング・システムのそれぞれのユーザを記述するデータを含むことができる。特定の実施形態では、ユーザ・プロフィール・ページ50Aは、前述のユーザ・プロフィールと関連付けられている情報の概要を提供する概要セクション56Bも含むことができる。特定の実施形態においては、リアルタイム・ビデオ状況52を、ユーザ・プロフィール・ページ50Aのカバー画像56Aと共に組み込むことができる。限定ではなく一例として、リアルタイム・ビデオ状況52は、ユーザ・プロフィール・ページ50Aのプロフィール写真に取って代わり、ユーザ・プロフィール・ページ50Aと関連付けられているユーザの非対話式のリアルタイムの視覚状況を提供することができる。本明細書において、「非対話式のビデオ状況」または「ビデオ状況」という場合、それは、場合によっては、ユーザのクライアント・システムによって取り込まれ、ソーシャルネットワーキング・システムまたはサードパーティ・システムへ送信された画像の一方向ストリームを意味し得る。
特定の実施形態においては、ソーシャルネットワーキング・システムのユーザのグループまたはコミュニティを、ソーシャルネットワーキング・システム上でホスティングされるグループ・ページ50B上で表すことができる。図2Bは、例えば、特定のグループのメンバーであるソーシャルネットワーキング・システムの1人または複数のユーザの1つまたは複数のリアルタイム・ビデオ状況52などのプレゼンス情報を提示するように構成された例示的なグループ・ページ50Bの一部分を示す。特定の実施形態において、グループ・ページ50Bは、適宜、グループと関連付けられたプライバシー設定に基づいて、グループのメンバーであるユーザ、または他のユーザにより閲覧可能となる。特定の実施形態において、グループ・ページ50Bは、1つまたは複数の対話式エレメント54を選択することによって閲覧可能またはアクセス可能なコンポーネントを含むことができる。限定ではなく一例として、対話式エレメント54は、メンバーもしくはグループ・イベント、グループ内で共有するためにアップロードされたファイルもしくは画像、またはそれらの任意の組合せのリストを提供することができる。別の例として、特定のグループのメンバーは、コンテンツ(画像、ビデオ、ファイルなど)を付加し、言明を行い、または特定のグループの他のメンバーに質問をすることができる。図2Bの例に示されているように、グループ・ページ50Bは、それぞれ特定のグループのメンバーに対応する1つまたは複数の非対話式のサムネイル・ビデオ状況52を表示するように構成され得るリアルタイム・ビデオ状況領域40を含むことができる。特定の実施形態において、リアルタイム・ビデオ状況領域40のビデオ状況52は、ユーザのリアルタイム・ビデオ状況52を取り込むように画像センサを構成しているグループのメンバーのリアルタイムの状況を提供することができる。
図2Cは、例えば、ユーザの1人もしくは複数の「友達」のリアルタイム・ビデオ状況52や、ソーシャルネットワーキング・システム上のユーザの状況領域40Bや、1つまたは複数の広告42や、またはそれらの任意の組合せなどのプレゼンス情報を提示するように構成されたビデオ状況領域40Aを有する「サイド・バー」44を含むUI50Cの一部分を示す。前述のように、ソーシャルネットワーキング・システムの各ユーザは、ユーザの「友達」によって生成されたコンテンツ・オブジェクトを提示するように構成された、例えばニュースフィードなどの、関連付けられた「通信チャネル」を有し得る。限定ではなく一例として、UI50Cは、ソーシャルネットワーキング・システムのユーザのニュースフィードと共に組み込むことができる。図2Cの例に示されているように、リアルタイム・ビデオ状況領域40Aは、それぞれユーザの1人の「友達」のリアルタイムの状況に対応する1つまたは複数の非対話式のサムネイル・ビデオ状況52を表示するように構成することができる。前述のように、ビデオ状況領域40Aにおいて提示されるビデオ状況52は、リアルタイム・ビデオ状況52を取り込むように画像センサを構成しているユーザの「友達」のリアルタイムの状況を提供することができる。
特定の実施形態においては、1つまたは複数の基準に基づいて、ビデオ状況領域40Aにおけるリアルタイム・ビデオ状況52の提示を調整することができる。限定ではなく一例として、ビデオ状況領域40Aに提示するためのリアルタイム・ビデオ状況52のうちの1つまたは複数の選択は、ソーシャル・グラフ情報に少なくとも部分的に基づくユーザに対する各「友達」の近接性スコアに基づいて行うことができる。例えば、後述するように、エッジを介してユーザにつながっている「友達」は、別の「友達」を介してユーザにつながっている「友達」よりも高い近接性スコアを有する。別の例として、1つまたは複数のリアルタイム・ビデオ状況52の選択は、ユーザとビデオ状況52を有する各「友達」との間の対話の頻度に少なくとも部分的に基づいて行うことができる。例えば、ユーザが特定の「友達」と幾つかの電子メール・メッセージを交換していることに少なくとも部分的に基づいて、その特定の「友達」のビデオ状況52をビデオ状況領域40Aに提示することができる。別の例として、例えば、特定の「友達」のステータス更新に関してコメントしたり、投稿に対して「いいね!」を表明したり、その特定の「友達」のウォールに書き込みを行ったりなど、ソーシャルネットワーキング・システム上でのユーザとその特定の「友達」との間のソーシャル関連の対話量に少なくとも部分的に基づいて、その特定の「友達」のビデオ状況52をビデオ状況領域40Aに提示することができる。特定の実施形態においては、ユーザがソーシャル関連のアクティビティを共有している相手である特定の「友達」のビデオ状況52の提示により、ユーザは、そのソーシャル関連のアクティビティに対する各特定の「友達」の反応を評価することができる。特定の実施形態においては、ビデオ状況領域40Aまたは状況領域40Bに提示された特定の「友達」のうちの1人または複数をユーザが選択したことに応答して、特定の「友達」のリアルタイム・ビデオ状況52を提示するように「サイド・バー」44のビデオ状況領域40Aを構成することができる。特定の実施形態においては、ビデオ状況領域40Aに提示された1つまたは複数のリアルタイム・ビデオ状況52とユーザが対話したことに応答して、1つまたは複数の機能を開始することができる。限定ではなく一例として、ユーザと1人または複数の特定の「友達」との間のビデオ・チャットを、特定の「友達」のリアルタイム・ビデオ状況52を選択したことに応答して開始することもできる。別の例として、1つまたは複数のビデオ状況52の上でカーソルを動かすことにより、選択されたビデオ状況52のサイズ拡大を開始することもできる。別の例として、1つまたは複数のビデオ状況52の上でカーソルを動かすことにより、前述のプロフィール情報または選択されたビデオ状況52と関連付けられたビデオ状況52を含み得るプロフィール「カード」の提示を開始することもできる。
特定の実施形態では、ソーシャルネットワーキング・システム上でホスティングされている企業ページ50D上でエンティティを表すことができる。図2Dの例に示されているように、例えば、そのエンティティと関連付けられているリアルタイム・ビデオ状況52などのプレゼンス情報を提示するように、例示的な企業ページ50Dの一部分を構成することができる。限定ではなく一例として、リアルタイム・ビデオ状況52は、エンティティと関連付けられている地理的位置において発生するアクティビティに対応する画像を取り込むことができる。さらに、リアルタイム・ビデオ状況52は、例示的な企業ページ50Dのカバー画像としての役割を果たすこともできる。
特定の実施形態において、ユーザは、例えば、ソーシャルネットワーキング・システムの1つまたは複数のUI50A〜50D上に提示された特定の対話式エレメントを介して、ユーザのリアルタイム・ビデオ状況52などのプレゼンス情報の提示の開始と終了とを切り換えることができる。限定ではなく一例として、特定の対話式エレメントを作動させることにより、ソーシャルネットワーキング・システムの1つまたは複数のUI50A〜50D上でのユーザのリアルタイム・ビデオ状況52のストリーミングを開始することができ、次に特定の対話式エレメントを作動させることにより、リアルタイム・ビデオ状況52のストリーミングを終了させることができる。別の例として、特定の対話式エレメントは、UI50A〜50DのChrome(登録商標)と統合することもできる。特定の実施形態では、1つまたは複数のUI50A〜50D上に、ユーザのリアルタイム・ビデオ状況52がアクティブであることを示す視覚インジケータを提示することができる。
図3Aは、例示的なモバイル・コンピューティング・デバイスを示す。特定の実施形態において、クライアント・システムは、上述のようにモバイル・コンピューティング・デバイス10であってよい。本開示は、モバイル・コンピューティング・デバイス10が、任意の適切な物理的形態を取ることを想定している。特定の実施形態において、モバイル・コンピューティング・デバイス10は、後述のようにコンピューティング・システムであってよい。限定ではなく一例として、モバイル・コンピューティング・デバイス10は、シングルボード・コンピュータ・システム(SBC)(例えば、コンピュータ・オン・モジュール(COM)やシステム・オン・モジュール(SOM)など)、ラップトップもしくはノートブック・コンピュータ・システム、モバイル電話、スマートフォン、携帯情報端末(PDA)、タブレット・コンピュータ・システム、またはこれらの2つ以上の組合せであってよい。特定の実施形態において、モバイル・コンピューティング・デバイス10は、入力構成要素としてタッチ・センサ12を有することができる。図3Aの例において、タッチ・センサ12は、モバイル・コンピューティング・デバイス10の表面に組み込まれている。静電容量式タッチ・センサの場合、2つのタイプの電極、すなわち送信用および受信用があり得る。これらの電極は、電気パルスによって送信電極を駆動しタッチまたは近接入力により生じる受信電極からのキャパシタンスの変化を測定するように設計された制御装置に接続され得る。図3Aの例において、1つまたは複数のアンテナ14A,14Bは、モバイル・コンピューティング・デバイス10の1つまたは複数の側面に組み込まれ得る。アンテナ14A,14Bは、電流を電波に、またはその逆に変換する構成要素である。信号の送信中、送信機は、発振する無線周波数(RF)電流をアンテナ14A,14Bの端子に印加し、アンテナ14A,14Bは、印加された電流のエネルギーを電磁(EM)波として放射する。信号の受信中、アンテナ14A,14Bは、入来するEM波をアンテナ14A,14Bの端子において電圧に変換する。電圧は、受信機に送信されて増幅され得る。
モバイル・コンピューティング・デバイス10は、イーサネット(登録商標)または他の有線ベースのネットワークと通信するためにアンテナ14A〜14Bに結合された通信コンポーネントや、例えばWi−Fi(登録商標)ネットワークなどのワイヤレス・ネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレス・アダプタや、あるいは第3世代モバイル通信(3G)やロング・ターム・エボルーション(LTE)ネットワークなどのセルラー・ネットワークと通信するためのモデムを含むことができる。本開示は、任意の適切なネットワーク、およびそのネットワークのための任意の適切な通信コンポーネントを想定している。限定ではなく一例として、モバイル・コンピューティング・デバイス10は、アド・ホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、またはインターネットの1つまたは複数の部分、またはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークの1つまたは複数のうちの1つまたは複数の部分は、有線またはワイヤレスとすることができる。別の例として、モバイル・コンピューティング・デバイス10は、ワイヤレスPAN(WPAN)(例えばブルートゥース(登録商標)WPANなど)、Wi−Fi(登録商標)ネットワーク、Wi−MAX(登録商標)ネットワーク、セルラ電話ネットワーク(例えばGSM(登録商標)、3G、もしくはLTEネットワークなど)、または他の適切なワイヤレス・ネットワーク、またはこれらのうちの2つ以上の組合せと通信することができる。モバイル・コンピューティング・デバイス10は、必要に応じて、これらのネットワークのうちのいずれかのための任意の適切な通信コンポーネントを含むことができる。
特定の実施形態においては、モバイル・コンピューティング・デバイス10は、前述のように、個別の写真画像または一連の画像をビデオ状況として所定の間隔で取り込むように構成された画像センサを含むことができる。モバイル・コンピューティング・デバイス10上で実行されるアプリケーションが、モバイル・コンピューティング・デバイス10の画像センサを介して取り込まれた画像のための画像管理機能を提供することができる。特定の実施形態では、モバイル・コンピューティング・デバイス10内の画像処理モジュールが、画像センサによって取り込まれた画像を受け取ることができる。特定の実施形態では、画像センサによって取り込まれた1つまたは複数の画像を、前述の通信ネットワークを介してソーシャルネットワーキング・システムまたはサードパーティ・システムへ送信することができる。特定の実施形態においては、画像センサによって取り込まれ、モバイル・コンピューティング・デバイス10内の記憶コンポーネントに格納された画像を、アプリケーションまたはモバイル・コンピューティング・デバイス10のOSに組み込まれた画像アップロード機能を用いて、ソーシャルネットワーキング・システムまたはサードパーティ・システムへアップロードすることができる。限定ではなく一例として、モバイル・コンピューティング・デバイス10上に格納されている画像を、ソーシャルネットワーキング・システムまたはサードパーティ・システムへ自動的にアップロードすることもできる。さらに、モバイル・コンピューティング・デバイス10の画像センサによって取り込まれた1つまたは複数の画像を、自動的に、ユーザからの入力なしで、ほぼリアルタイムで、または後で、ソーシャルネットワーキング・システムまたはサードパーティ・システムへアップロードすることもできる。本開示では、特定のタイプのモバイル・コンピューティング・デバイスについて説明および示しているが、本開示は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、接続されたテレビ、スマートフォンなどの、任意の適切なタイプのコンピューティング・デバイスを想定している。
図3Bは、モバイル・コンピューティング・デバイス上の例示的なビデオ状況での例示的なユーザ・インターフェースのための例示的なワイヤフレームを示す。特定の実施形態において、UI50Eは、モバイル・コンピューティング・デバイス10のディスプレイ上に提示されたインスタント・メッセンジャーまたは「チャット」のUIとすることができる。限定ではなく一例として、モバイル・コンピューティング・デバイス10のUI50Eのメッセージ領域46を、ユーザおよびオンライン会話を行っているユーザの「友達」によって生成された1つまたは複数のインスタント・メッセージを表示するように構成することができる。特定の実施形態においては、メッセージ48を、ソーシャルネットワーキング・システムによって受け取られた順序でメッセージ領域46において提示することができる。図3Bの例に示されているように、UI50Eは、例えば、1つまたは複数のリアルタイム・ビデオ状況52などのプレゼンス情報を表示するように構成されたビデオ状況領域40を含むことができる。さらに、各メッセージ48を生成したユーザのリアルタイム・ビデオ状況52を、メッセージ領域46に提示された対応するメッセージ48に組み込むことができる。特定の実施形態では、ビデオ状況領域40に提示されたリアルタイム・ビデオ状況52のうちの1つまたは複数の選択を、ソーシャルネットワーキング・システム上のユーザと「友達」との間の1つまたは複数のメッセージ48の交換に少なくとも部分的に基づくものとすることができる。図3Bの例に示されているように、ユーザおよび1人または複数の特定の「友達」がオンライン・メッセージング交換に関与している間、ユーザおよびユーザの「友達」に対応するリアルタイム・ビデオ状況52を、ビデオ状況40に提示することができる。限定ではなく一例として、ユーザがソーシャル関連のアクティビティを共有している相手である特定のユーザのビデオ状況52の提示により、ユーザは、オンラインのメッセージ48の交換中に各ユーザの応答を評価することができる。本開示では、特定のユーザ生成のコンテンツ・オブジェクト、およびリアルタイム・ビデオ状況フィードを提示するモバイル・コンピューティング・デバイス上の特定のUIについて説明または示しているが、本開示は、例えば、ステータス更新、イベント招待、画像、またはそれらの任意の組合せなどの、任意の適切なコンテンツ・オブジェクトを提示するモバイル・コンピューティング・デバイス上の任意の適切なUIを想定している。
図4は、ユーザのリアルタイム・ビデオ状況を提供するための例示的方法を示す。方法は、ステップ300で開始し、このステップ300において、コンピューティング・デバイスは、グラフィカル・ユーザ・インターフェース上で提示するためのユーザのIDを提供する。特定の実施形態において、コンピューティング・デバイスは、ソーシャルネットワーキング・システムを含む。ステップ302で、コンピューティング・デバイスは、ユーザのIDを有するユーザのプレゼンス情報を提供し、ここで方法は終了することができる。特定の実施形態において、プレゼンス情報は、ユーザの時間的な、空間的な、モーダルな、あるいはソーシャルなアクセス性を示す。さらに、プレゼンス情報は、ユーザのプレゼンス情報として、自動的にユーザ入力なしで取り込まれ、提供されたユーザのリアルタイム・ビデオ状況を含むことができる。本開示では、図4の方法の特定のステップを、特定の順序で生じるものとして説明および示しているが、本開示は、任意の適切な順序で生じる図4の方法の任意の適切なステップを想定している。また、本開示では、図4の方法の特定のステップを実行する特定のコンポーネントについて説明および示しているが、本開示は、図4の方法の任意の適切なステップを実行する任意の適切なコンポーネントの任意の適切な組合せを想定している。
図5は、例示的なコンピューティング・システムを示す。特定の実施形態において、1つまたは複数のコンピュータ・システム60は、本明細書において説明または示されている1つまたは複数の方法のうちの1つまたは複数のステップを実行する。特定の実施形態において、1つまたは複数のコンピュータ・システム60は、本明細書において説明または示されている機能を提供する。特定の実施形態において、1つまたは複数のコンピュータ・システム60上で稼働するソフトウェアは、本明細書において説明または示されている1つまたは複数の方法のうちの1つまたは複数のステップを実行したり、本明細書において説明または示されている機能を提供したりする。特定の実施形態は、1つまたは複数のコンピュータ・システム60の1つまたは複数の部分を含む。本明細書において、コンピュータ・システムへの言及は、場合によっては、コンピューティング・デバイスを包含し得る。また、コンピュータ・システムへの言及は、場合によっては、1つまたは複数のコンピュータ・システムを包含し得る。
本開示は、任意の適切な数のコンピュータ・システム60を想定している。本開示は、任意の適切な物理的な形態を取るコンピュータ・システム60を想定している。限定ではなく一例として、コンピュータ・システム60は、組み込みコンピュータ・システム、システムオンチップ(SOC)、シングルボード・コンピュータ・システム(SBC)(例えば、コンピュータオンモジュール(COM)もしくはシステムオンモジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、インタラクティブ・キオスク、メインフレーム、コンピュータ・システムのメッシュ、モバイル電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらのうちの2つ以上の組合せとすることができる。必要に応じて、コンピュータ・システム60は、1つまたは複数のコンピュータ・システム60を含むものでもよく、単一型もしくは分散型であってもよく、複数のロケーションにわたっていてもよく、複数のマシンにわたっていてもよく、複数のデータセンターにわたっていてもよく、クラウドに置かれていてもよく、クラウドは、1つまたは複数のネットワークにおいて1つまたは複数のクラウド・コンポーネントを含むことができる。必要に応じて、1つまたは複数のコンピュータ・システム60は、本明細書において説明または示されている1つまたは複数の方法のうちの1つまたは複数のステップを、実質的な空間上のまたは時間上の制限を伴わずに実行することができる。限定ではなく一例として、1つまたは複数のコンピュータ・システム60は、本明細書において説明または示されている1つまたは複数の方法のうちの1つまたは複数のステップをリアルタイムで、またはバッチモードで実行することができる。1つまたは複数のコンピュータ・システム60は、必要に応じて、本明細書において説明または示されている1つまたは複数の方法のうちの1つまたは複数のステップを別々の時間にまたは別々の場所で実行することができる。
特定の実施形態において、コンピュータ・システム60は、プロセッサ62、メモリ64、ストレージ66、入力/出力(I/O)インターフェース68、通信インターフェース70、およびバス72を含む。本開示では、特定の数の特定のコンポーネントを特定の構成で有する特定のコンピュータ・システムについて説明および示しているが、本開示は、任意の適切な数の任意の適切なコンポーネントを任意の適切な構成で有する任意の適切なコンピュータ・システムを想定している。
特定の実施形態において、プロセッサ62は、コンピュータ・プログラムを構成している命令などを実行するためのハードウェアを含む。限定ではなく一例として、命令を実行するために、プロセッサ62は、内部レジスタ、内部キャッシュ、メモリ64、またはストレージ66から命令を取り出し(またはフェッチし)、それらの命令をデコードして実行し、次いで、1つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ64、またはストレージ66に書き込むことができる。特定の実施形態において、プロセッサ62は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、必要に応じて、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ62を想定している。限定ではなく一例として、プロセッサ62は、1つまたは複数の命令キャッシュ、1つまたは複数のデータ・キャッシュ、および1つまたは複数の変換ルックアサイド・バッファ(TLB)を含むことができる。命令キャッシュ内の命令は、メモリ64またはストレージ66内の命令のコピーとすることができ、命令キャッシュは、プロセッサ62によるそれらの命令の取り出しをスピードアップすることができる。データ・キャッシュ内のデータは、処理を行うためにプロセッサ62で実行する命令のためのメモリ64もしくはストレージ66内のデータのコピーや、プロセッサ62において実行される後続命令によるアクセスのためのあるいはメモリ64もしくはストレージ66への書き込みのためのプロセッサ62で実行された先の命令の結果や、他の適切なデータであってよい。データ・キャッシュは、プロセッサ62による読み取りオペレーションまたは書き込みオペレーションをスピードアップすることができる。TLBは、プロセッサ62のための仮想アドレス変換をスピードアップすることができる。特定の実施形態において、プロセッサ62は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含むことができる。本開示は、必要に応じて、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ62を想定している。必要に応じて、プロセッサ62は、1つまたは複数の演算ロジック・ユニット(ALU)を含んでもよく、マルチコア・プロセッサであってもよく、あるいは1つまたは複数のプロセッサ62を含んでもよい。本開示では、特定のプロセッサについて説明および示しているが、本開示は、任意の適切なプロセッサを想定している。
特定の実施形態において、メモリ64は、プロセッサ62が実行するための命令、またはプロセッサ62が処理するためのデータを格納するためのメイン・メモリを含む。限定ではなく一例として、コンピュータ・システム60は、命令をストレージ66または別のソース(例えば、別のコンピュータ・システム60など)からメモリ64にロードすることができる。次いでプロセッサ62は、命令をメモリ64から内部レジスタまたは内部キャッシュにロードすることができる。命令を実行するために、プロセッサ62は、命令を内部レジスタまたは内部キャッシュから取り出し、それらの命令をデコードすることができる。命令の実行中または実行後に、プロセッサ62は、1つまたは複数の結果(それらは、中間結果の場合も、最終結果の場合もある)を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ62は、それらの結果のうちの1つまたは複数をメモリ64に書き込むことができる。特定の実施形態では、プロセッサ62は、(ストレージ66または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内の命令またはメモリ64内の命令のみを実行し、(ストレージ66または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内のデータまたはメモリ64内のデータのみを処理する。1つまたは複数のメモリ・バス(各々、アドレス・バスおよびデータ・バスを含み得る)は、プロセッサ62をメモリ64に結合することができる。バス72は、後述するように、1つまたは複数のメモリ・バスを含むことができる。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ62とメモリ64との間に置かれ、プロセッサ62によって要求されるメモリ64へのアクセスを容易にする。特定の実施形態において、メモリ64は、ランダム・アクセス・メモリ(RAM)を含む。このRAMは、必要に応じて、揮発性メモリとすることができる。必要に応じて、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)とすることができる。また、必要に応じて、このRAMは、シングルポートRAMまたはマルチポートRAMとすることができる。本開示は、任意の適切なRAMを想定している。メモリ64は、必要に応じて、1つまたは複数のメモリ64を含むことができる。本開示では、特定のメモリについて説明および示しているが、本開示は、任意の適切なメモリを想定している。
特定の実施形態において、ストレージ66は、データまたは命令のためのマス・ストレージを含む。限定ではなく一例として、ストレージ66は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)・ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス(USB)ドライブ、またはこれらのうちの2つ以上の組合せを含むことができる。ストレージ66は、必要に応じて、取り外し可能な、または取り外し不能な(すなわち、固定された)媒体を含むことができる。ストレージ66は、必要に応じて、コンピュータ・システム60の内部にあっても、外部にあってもよい。特定の実施形態において、ストレージ66は、不揮発性のソリッドステート・メモリである。特定の実施形態において、ストレージ66は、読み取り専用メモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書替え可能ROM(EAROM)、またはフラッシュ・メモリ、またはこれらのうちの2つ以上の組合せとすることができる。本開示は、任意の適切な物理的形態を取るマス・ストレージ66を想定している。ストレージ66は、必要に応じて、プロセッサ62とストレージ66との間における通信を容易にする1つまたは複数のストレージ・コントロール・ユニットを含むことができる。必要に応じて、ストレージ66は、1つまたは複数のストレージ66を含むことができる。本開示では、特定のストレージについて説明および示しているが、本開示は、任意の適切なストレージを想定している。
特定の実施形態において、I/Oインターフェース68は、コンピュータ・システム60と1つまたは複数のI/Oデバイスとの間における通信のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム60は、必要に応じて、これらのI/Oデバイスのうちの1つまたは複数を含むことができる。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータ・システム60との間における通信を可能にすることができる。限定ではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の適切なI/Oデバイス、またはこれらのうちの2つ以上の組合せを含むことができる。I/Oデバイスは、1つまたは複数のセンサを含むことができる。本開示は、任意の適切なI/Oデバイス、およびそれらのI/Oデバイスのための任意の適切なI/Oインターフェース68を想定している。必要に応じて、I/Oインターフェース68は、プロセッサ62がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。I/Oインターフェース68は、必要に応じて、1つまたは複数のI/Oインターフェース68を含むことができる。本開示では、特定のI/Oインターフェースについて説明および示しているが、本開示は、任意の適切なI/Oインターフェースを想定している。
特定の実施形態において、通信インターフェース70は、コンピュータ・システム60と、1つまたは複数の他のコンピュータ・システム60あるいは1つまたは複数のネットワークとの間における通信(例えば、パケットベースの通信など)のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく一例として、通信インターフェース70は、イーサネット(登録商標)もしくはその他の有線ベースのネットワークと通信するためのネットワーク・インターフェース・コントローラ(NIC)もしくはネットワーク・アダプタ、またはWi−Fi(登録商標)ネットワークなどのワイヤレス・ネットワークと通信するためのワイヤレスNIC(WNIC)もしくはワイヤレス・アダプタを含むことができる。本開示は、任意の適切なネットワーク、およびそのネットワークのための任意の適切な通信インターフェース70を想定している。限定ではなく一例として、コンピュータ・システム60は、アド・ホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、あるいはインターネットの1つまたは複数の部分、またはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークの1つまたは複数のうちの1つまたは複数の部分は、有線またはワイヤレスとすることができる。一例として、コンピュータ・システム60は、ワイヤレスPAN(WPAN)(例えばブルートゥース(登録商標)WPANなど)、Wi−Fi(登録商標)ネットワーク、Wi−MAX(登録商標)ネットワーク、セルラ電話ネットワーク(例えば、GSM(登録商標)など)、または他の適切なワイヤレス・ネットワーク、またはこれらのうちの2つ以上の組合せと通信することができる。コンピュータ・システム60は、必要に応じて、これらのネットワークのうちの任意のネットワークのための任意の適切な通信インターフェース70を含むことができる。通信インターフェース70は、必要に応じて、1つまたは複数の通信インターフェース70を含むことができる。本開示では、特定の通信インターフェースについて説明および示しているが、本開示は、任意の適切な通信インターフェースを想定している。
特定の実施形態において、バス72は、コンピュータ・システム60のコンポーネント同士を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく一例として、バス72は、アクセラレイティッド・グラフィックス・ポート(AGP)もしくは他のグラフィックス・バス、エンハンスド・インダストリー・スタンダード・アーキテクチャ(EISA)バス、フロントサイド・バス(FSB)、ハイパートランスポート(HT)インターコネクト、インダストリー・スタンダード・アーキテクチャ(ISA)バス、インフィニバンド・インターコネクト、ローピンカウント(LPC)バス、メモリ・バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、ペリフェラル・コンポーネント・インターコネクト(PCI)バス、PCIエクスプレス(PCIe)バス、シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション・ローカル(VLB)バス、または別の適切なバス、またはこれらのうちの2つ以上の組合せを含むことができる。バス72は、必要に応じて、1つまたは複数のバス72を含むことができる。本開示では、特定のバスについて説明および示しているが、本開示は、任意の適切なバスまたはインターコネクトを想定している。
図6は、例示的なソーシャル・グラフを示す。特定の実施形態において、ソーシャルネットワーキング・システム160は、1つまたは複数のデータ・ストアに1つまたは複数のソーシャル・グラフ200を格納することができる。特定の実施形態において、ソーシャル・グラフ200は、複数のユーザ・ノード202または複数のコンセプト・ノード204を含み得る複数のノードと、それらノードをつなぐ複数のエッジ206とを含むことができる。図6に示される例示的なソーシャル・グラフ200は、教示の目的で2次元の視覚的なマップ表示として示されている。特定の実施形態において、ソーシャルネットワーキング・システム160、クライアント・システム130、またはサードパーティ・システム170は、ソーシャル・グラフ200、および適切なアプリケーションのための関連するソーシャル・グラフ情報にアクセスすることができる。ソーシャル・グラフ200のノードおよびエッジは、例えば(ソーシャル・グラフ・データベースなどの)データ・ストアに、データ・オブジェクトとして格納され得る。こうしたデータ・ストアは、ソーシャル・グラフ200のノードまたはエッジの1つまたは複数の探索可能または照会可能なインデックスを含むことができる。
特定の実施形態において、ユーザ・ノード202は、ソーシャルネットワーキング・システム160のユーザに対応することができる。限定ではなく一例として、ユーザは、ソーシャルネットワーキング・システム160と対話する、またはソーシャルネットワーキング・システム160を介して通信する、個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、もしくはサードパーティのアプリケーション)、またはグループ(例えば、個人もしくは企業の)であってよい。特定の実施形態において、ユーザがソーシャルネットワーキング・システム160にアカウントの登録をするとき、ソーシャルネットワーキング・システム160は、ユーザに対応するユーザ・ノード202を作成し、ユーザ・ノード202を1つまたは複数のデータ・ストアに格納することができる。本明細書において説明されるユーザおよびユーザ・ノード202は、必要な場合、登録されたユーザ、および登録されたユーザに関連付けられたユーザ・ノード202を指すことができる。これに加えて、または代替として、本明細書において説明されるユーザおよびユーザ・ノード202は、必要な場合、ソーシャルネットワーキング・システム160にまだ登録されていないユーザを指すことができる。特定の実施形態において、ユーザ・ノード202は、ユーザによって提供された情報、またはソーシャルネットワーキング・システム160を含む様々なシステムによって集められた情報に関連付けられ得る。限定ではなく一例として、ユーザは、自分の名前、プロフィール写真、コンタクト情報、生年月日、性別、婚姻状況、家族状況、職業、学歴、好み、関心、または他の人口統計情報を提供することができる。特定の実施形態において、ユーザ・ノード202は、ユーザのプライバシー設定に応じて、ユーザの1つまたは複数の画像から抽出された顔認識データと関連付けることができる。また、特定の実施形態において、ユーザ・ノード202は、ユーザに関連付けられた情報に対応する1つまたは複数のデータ・オブジェクトに関連付けることができる。特定の実施形態において、ユーザ・ノード202は1つまたは複数のウェブページに対応することができる。
特定の実施形態において、コンセプト・ノード204は、コンセプト(concept)に対応することができる。限定ではなく一例として、コンセプトは、場所(例えば、映画館、レストラン、ランドマーク、もしくは都市など)、ウェブサイト(例えば、ソーシャルネットワーキング・システム160に関連付けられたウェブサイトもしくはウェブアプリケーション・サーバに関連付けられたサードパーティ・ウェブサイトなど)、エンティティ(例えば、人、ビジネス、グループ、スポーツ・チーム、もしくは有名人など)、ソーシャルネットワーキング・システム160内もしくはウェブアプリケーション・サーバなど外部サーバ上に配置され得るリソース(例えば、オーディオ・ファイル、ビデオ・ファイル、デジタル・フォト、テキスト・ファイル、構造化ドキュメント、もしくはアプリケーションなど)、不動産もしくは知的財産(例えば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、もしくは著作など)、ゲーム、アクティビティ、アイデアもしくは理論、別の適切なコンセプト、または2つ以上のこうしたコンセプトに対応することができる。コンセプト・ノード204は、ユーザによって提供されたコンセプトの情報、またはソーシャルネットワーキング・システム160を含む様々なシステムによって集められた情報に関連付けられ得る。限定ではなく一例として、コンセプトの情報は、名前もしくは肩書き、1つもしくは複数の画像(例えば、書籍のカバー・ページの画像)、ロケーション(例えば、アドレスもしくは地理的ロケーション)、(URLに関連付けられ得る)ウェブサイト、コンタクト情報(例えば、電話番号もしくはEメール・アドレス)、他の適切なコンセプト情報、またはこうした情報の任意の適切な組合せを含むことができる。特定の実施形態において、コンセプト・ノード204は、コンセプト・ノード204に関連付けられた情報に対応する1つまたは複数のデータ・オブジェクトに関連付けられ得る。特定の実施形態において、コンセプト・ノード204は、1つまたは複数のウェブページに対応することができる。
特定の実施形態において、ソーシャル・グラフ200中のノードは、(「プロフィール・ページ」と呼ばれることがある)ウェブページを表すことができ、またはこうしたウェブページによって表され得る。プロフィール・ページは、ソーシャルネットワーキング・システム160によってホスティングされてよく、またはソーシャルネットワーキング・システム160にアクセス可能としてもよい。また、プロフィール・ページは、サードパーティ・サーバ170に関連付けられたサードパーティ・ウェブサイト上でホスティングされ得る。限定ではなく一例として、特定の外部ウェブページに対応するプロフィール・ページは、その特定の外部ウェブページであってよく、プロフィール・ページは、特定のコンセプト・ノード204に対応することができる。プロフィール・ページは、他のユーザのすべてまたは選択されたサブセットによって閲覧可能であってよい。限定ではなく一例として、ユーザ・ノード202は、対応するユーザが、コンテンツを追加し、告知をし、あるいは自己紹介をすることができる、対応するユーザ・プロフィール・ページを有することができる。限定ではなく別の例として、コンセプト・ノード204は、特にコンセプト・ノード204に対応するコンセプトに対して、1または複数のユーザが、コンテンツを追加し、告知をし、または自己紹介をすることができる、対応するコンセプト・プロフィール・ページを有することができる。
特定の実施形態において、コンセプト・ノード204は、サードパーティ・システム170によってホスティングされたサードパーティ・ウェブページまたはリソースを表すことができる。サードパーティ・ウェブページまたはリソースは、他の要素の中に、アクションまたはアクティビティを表す(例えば、JavaScript(登録商標)、AJAX、またはPHPのコードで実装され得る)コンテンツ、選択可能もしくはその他のアイコン、または他の相互に動作可能なオブジェクトを含むことができる。限定ではなく一例として、サードパーティ・ウェブページは、「いいね!」、「チェックイン」、「たべる」、「おすすめ」、または別の適切なアクションまたはアクティビティなどの選択可能なアイコンを含むことができる。サードパーティ・ウェブページを閲覧しているユーザは、アイコンのうちの1つ(例えば「たべる」)を選択することによってアクションを行い、クライアント・システム130がソーシャルネットワーキング・システム160にユーザのアクションを示すメッセージを送信するようにさせることができる。メッセージに応じて、ソーシャルネットワーキング・システム160は、ユーザに対応するユーザ・ノード202と、サードパーティ・ウェブページまたはリソースに対応するコンセプト・ノード204との間にエッジ(例えば、「たべる」エッジ)を作成し、エッジ206を1つまたは複数のデータ・ストアに格納することができる。
特定の実施形態において、ソーシャル・グラフ200における1対のノードは、1つまたは複数のエッジ206によって互いにつながっていてよい。1対のノードをつなぐエッジ206は、1対のノード間の関係を表すことができる。特定の実施形態において、エッジ206は、1対のノード間の関係に対応する1つまたは複数のデータ・オブジェクトまたは属性を含むまたは表すことができる。限定ではなく一例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを示すことができる。この指標に応じて、ソーシャルネットワーキング・システム160は、「友達申請」を第2のユーザに送信することができる。第2のユーザが「友達申請」を承認する場合、ソーシャルネットワーキング・システム160は、ソーシャル・グラフ200において第1のユーザのユーザ・ノード202と第2のユーザのユーザ・ノード202とをつなぐエッジ206を作成し、エッジ206をソーシャル・グラフ情報としてデータ・ストア24の1つまたは複数に格納することができる。図6の例において、ソーシャル・グラフ200は、ユーザ「A」およびユーザ「B」の各ユーザ・ノード202間の友達関係を示すエッジ206、ならびにユーザ「C」およびユーザ「B」の各ユーザ・ノード202間の友達関係を示すエッジを含む。本開示では、特定のユーザ・ノード202をつなぐ特定の属性を有する特定のエッジ206について説明または示しているが、本開示は、ユーザ・ノード202をつなぐ任意の適切な属性を有する任意の適切なエッジ206を想定している。限定ではなく一例として、エッジ206は、交友関係、家族関係、ビジネスもしくは雇用関係、ファン関係、フォロワ関係、ビジタ関係、加入者関係、主従関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のこうした関係を表すことができる。また、本開示では、全般的にノードがつながっているものとして説明しているが、本開示はまた、ユーザまたはコンセプトがつながっているものとしても説明される。本明細書において、ユーザまたはコンセプトがつながっているということへの言及は、必要な場合、こうしたユーザまたはコンセプトに対応するノードが、1つまたは複数のエッジ206によって、ソーシャル・グラフ200においてつながっていることを指すことができる。
特定の実施形態において、ユーザ・ノード202とコンセプト・ノード204との間のエッジ206は、コンセプト・ノード204に関連付けられたコンセプトに向かうユーザ・ノード202に関連付けられたユーザによって行われる特定のアクションまたはアクティビティを表すことができる。限定ではなく一例として、図6に示されるように、ユーザは、コンセプトに対して「いいね!」、「通った」、「プレイした」、「聴いた」、「料理した」、「勤務した」、または「観た」として表すことができ、その各々はエッジのタイプまたはサブタイプに対応することができる。コンセプト・ノード204に対応するコンセプト・プロフィール・ページは、例えば、選択可能な「チェックイン」アイコン(例えばクリック可能な「チェックイン」アイコンなど)、または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこうしたアイコンをクリックした後に、ソーシャルネットワーキング・システム160は、各アクションに対応するユーザのアクションに応じて、「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく別の例として、ユーザ(「ユーザC」)は、特定のアプリケーション(オンライン音楽アプリケーションのスポティファイ(SPOTIFY)(登録商標))を使用して、特定の歌(「ランブル・オン」)を聴くことができる。この場合、ソーシャルネットワーキング・システム160は、ユーザに対応するユーザ・ノード202と、歌およびアプリケーションに対応するコンセプト・ノード204との間に(図6に示されるような)「聴いた」エッジ206および「使用した」エッジを作成して、ユーザが歌を聴き、アプリケーションを使ったことを示すことができる。また、ソーシャルネットワーキング・システム160は、歌およびアプリケーションに対応する各コンセプト・ノード204間に(図6に示されるような)「プレイした」エッジ206を作成して、特定の歌が特定のアプリケーションによってプレイされたことを示すことができる。この場合、「プレイした」エッジ206は、外部オーディオ・ファイル(歌「イマジン」)に対して外部アプリケーション(スポティファイ)によって行われるアクションに対応する。本開示では、ユーザ202とコンセプト・ノード204とをつなぐ特定の属性を有する特定のエッジ206について説明しているが、本開示は、ユーザ・ノード202とコンセプト・ノード204とをつなぐ任意の適切な属性を有する任意の適切なエッジ206を想定している。また、本開示では、ユーザ・ノード202とコンセプト・ノード204との間のエッジが単一の関係を表す場合について説明しているが、本開示は、ユーザ・ノード202とコンセプト・ノード204との間のエッジが1つまたは複数の関係を表すことを想定している。限定ではなく一例として、エッジ206は、特定のコンセプトにおいて、ユーザが気に入っていることと、ユーザが使用したこととの両方を表すことができる。あるいは、別のエッジ206が、(図6において、ユーザ「E」のユーザ・ノード202と「スポティファイ」のコンセプト・ノード204との間で示されるような)ユーザ・ノード202とコンセプト・ノード204との間の各タイプの関係(または複数の単一関係)を表すことができる。
特定の実施形態において、ソーシャルネットワーキング・システム160は、ソーシャル・グラフ200においてユーザ・ノード202とコンセプト・ノード204との間にエッジ206を作成することができる。限定ではなく一例として、(例えば、ユーザのクライアント・システム130によってホスティングされるウェブ・ブラウザまたは専用のアプリケーションを使用することによってなど)コンセプト・プロフィール・ページを閲覧するユーザは、ユーザのクライアント・システム130に、コンセプト・プロフィール・ページに関連付けられたコンセプトをユーザが好んでいることを示すメッセージをソーシャルネットワーキング・システム160に送信させ得る「いいね!」アイコンのクリックまたは選択によって、コンセプト・ノード204によって表されるコンセプトをユーザが気に入っていることを示すことができる。メッセージに応じて、ソーシャルネットワーキング・システム160は、ユーザとコンセプト・ノード204との間の「いいね」エッジ206によって示されるように、ユーザに関連付けられたユーザ・ノード202とコンセプト・ノード204との間にエッジ206を作成することができる。特定の実施形態において、ソーシャルネットワーキング・システム160は、エッジ206を1つまたは複数のデータ・ストアに格納することができる。特定の実施形態において、エッジ206は、特定のユーザ・アクションに応じて、ソーシャルネットワーキング・システム160によって自動的に形成され得る。限定ではなく一例として、第1のユーザが、ピクチャをアップロードする、映画を観る、または歌を聴く場合、第1のユーザに対応するユーザ・ノード202と、こうしたコンセプトに対応するコンセプト・ノード204との間にエッジ206が形成され得る。本開示では、特定のエッジ206を特定の方法で形成することについて説明しているが、本開示は、任意の適切なエッジ206を任意の適切な方法で形成することを想定している。
本明細書において、コンピュータ読み取り可能非一時的記憶媒体は、必要な場合、1つもしくは複数の半導体ベースもしくは他の集積回路(IC)(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)、もしくは特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスク・ドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)・ディスケット、フロッピー(登録商標)・ディスク・ドライブ(FDD)、磁気テープ、ソリッドステート・ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切なコンピュータ読み取り可能非一時的記憶媒体、またはこれらの2つ以上の組合せを含むことができる。コンピュータ読み取り可能非一時的記憶媒体は、必要に応じて、揮発性、不揮発性、または揮発性と不揮発性との組合せであってよい。
本明細書において、「または」は、別段明示的に示されず別段文脈によっても示されない場合、包括的であり排他的ではない。したがって、本明細書において、「AまたはB」は、別段明示的に示されず別段文脈によっても示されない場合、「A、B、または両方」を意味する。また、「および」は、別段明示的に示されず別段文脈によっても示されない場合、共にと別々の両方のことである。したがって、本明細書において、「AおよびB」は、別段明示的に示されず別段文脈によっても示されない場合、「共にまたは別々にAおよびB」を意味する。
本開示の範囲は、当業者が認識することになる、本明細書に記載または示した例示的な実施形態の変形、置換、変化、改変、および変更をすべて含む。本開示の範囲は、本明細書に記載または示した例示的な実施形態に限定されない。また、本開示は、それぞれの実施形態を、特定の構成要素、要素、機能、動作、または工程を含みものとして本明細書に記載しかつ示したが、これらの実施形態のいずれも、当業者が認識することになる、本明細書のいずれかの箇所に記載または示された構成要素、要素、機能、動作、または工程のいずれかの任意の組合せまたは並べ替えを含むことができる。さらに、装置もしくはシステム、または装置もしくはシステムの構成要素が、特定の機能を行う、ようになされた、ように配置された、ことが可能な、ように構成された、ことを可能にする、ように動作可能な、または、ように動作する、といったことに対する特許請求の範囲における言及は、それまたはその特定の機能がアクティブ化、ターン・オン、またはアンロックされているかどうかにかかわらず、こうした装置、システム、または構成要素が、そのようになされ、配置され、可能であり、構成され、可能にし、動作可能であり、または動作する限り、こうした装置、システム、構成要素を含む。