(57)【要約】  一実施形態では、方法は、第２のユーザに関連付けられているいくつかのコネクテッド・デバイスのうちの１以上への第１のユーザのアクセスを認可するための認可要求を含む自然言語メッセージを受信する工程と、自然言語メッセージを構文解析する工程と、構文解析された自然言語メッセージに基づいて、第１のユーザといくつかのコネクテッド・デバイスのうちの１以上とを識別する工程と、ソーシャル・グラフにおける第１のユーザを表すノードとソーシャル・グラフにおける第２のユーザを表すノードとの間の関係の算出された強度が所定の閾値を満たすことに基づいて、いくつかのコネクテッド・デバイスのうちの識別された１以上へのアクセスを第１のユーザが認可されていることを暗黙的に決定する工程と、暗黙的な認可に基づいて、いくつかのコネクテッド・デバイスのうちの識別された１以上へのアクセスを提供する工程とを含む。
2018525740.tif 000002
【特許請求の範囲】
【請求項１】
１以上のコンピュータ・サーバ・マシンが、第２のユーザに関連付けられている複数のコネクテッド・デバイスのうちの１以上への第１のユーザによるアクセスを認可するための認可要求を含む自然言語メッセージを受信する工程と、
前記サーバ・マシンが、前記自然言語メッセージを構文解析する工程と、
前記サーバ・マシンが、構文解析された前記自然言語メッセージに基づいて、前記第１のユーザと複数のコネクテッド・デバイスのうちの１以上とを識別する工程と、
前記サーバ・マシンが、ソーシャル・グラフにおける前記第１のユーザを表すノードと前記ソーシャル・グラフにおける前記第２のユーザを表すノードとの間の関係の算出された強度が所定の閾値を満たすことに基づいて、識別された前記複数のコネクテッド・デバイスのうちの１以上へのアクセスを前記第１のユーザが認可されていると暗黙的に決定する工程と、
前記サーバ・マシンが、前記暗黙的な認可に基づいて、識別された前記複数のコネクテッド・デバイスのうちの１以上へのアクセスを提供する工程と、
を備える、方法。
【請求項２】
構文解析された前記自然言語メッセージの複数のｎ‐ｇｒａｍを識別する工程をさらに備える、請求項１に記載の方法。
【請求項３】
識別された前記ｎ‐ｇｒａｍに基づいて、前記認可要求、前記１以上のコネクテッド・デバイス、または前記第１のユーザを識別する工程をさらに備える、請求項２に記載の方法。
【請求項４】
前記複数のコネクテッド・デバイスのうちの１以上を識別する前記工程は、前記複数のｎ‐ｇｒａｍに基づいて、前記複数のコネクテッド・デバイスのうちの１以上の識別子を識別する工程を含む、請求項３に記載の方法。
【請求項５】
識別された前記複数のコネクテッド・デバイスのうちの１以上に関するコマンド・メッセージを前記第１のユーザに関連付けられているクライアント・デバイスから受信する工程であって、前記コマンド・メッセージは識別された前記複数のコネクテッド・デバイスのうちの１以上に関する命令を含む、工程と、
前記暗黙的な認可に基づいて、識別された前記複数のコネクテッド・デバイスのうちの１以上に前記命令を提供する工程と、
をさらに備える、請求項１に記載の方法。
【請求項６】
前記第１のユーザおよび第２のユーザは、それぞれのクライアント・デバイスで実行されるメッセージング・アプリケーションを通してつながっている、請求項１に記載の方法。
【請求項７】
前記暗黙的な認可を決定する工程は、前記第２のユーザが前記メッセージング・アプリケーションでのチャットに前記第１のユーザを追加することに基づく、請求項６に記載の方法。
【請求項８】
前記第１のユーザのアクセスは所定の時間量の間認可される、請求項１に記載の方法。
【請求項９】
前記所定の時間量は、前記第１のユーザを表す前記ノードと前記第２のユーザを表す前記ノードとの間の前記関係の算出された前記強度に少なくとも部分的に基づく、請求項８に記載の方法。
【請求項１０】
前記暗黙的な認可に応答して、前記第１のユーザのクライアント・デバイスにトークンを送信する工程をさらに備える、請求項１に記載の方法。
【請求項１１】
識別された前記複数のネットワーク対応デバイスのうちの１以上は、通信ネットワークのルータを含み、
前記ルータへのアクセスは、前記通信ネットワークへのアクセスを提供する、請求項１に記載の方法。
【請求項１２】
識別された前記複数のコネクテッド・デバイスのうちの１以上からデバイス・メッセージを受信する工程と、
前記デバイス・メッセージに基づいて、自然言語メッセージを生成する工程と、
前記第２のユーザのクライアント・デバイスに前記自然言語メッセージを送信する工程と、
をさらに備える、請求項１に記載の方法。
【請求項１３】
前記自然言語メッセージは、
識別された前記複数のコネクテッド・デバイスのうちの１以上に関するステータス・メッセージと、
前記コマンド・メッセージに対して肯定応答をするかまたは前記命令の完了を確認するメッセージと、
識別された前記複数のコネクテッド・デバイスのうちの１以上に関する１以上の命令が実行できないことを述べるメッセージと、
識別された前記複数のコネクテッド・デバイスのうちの１以上に関する警報と、
を含む、請求項１２に記載の方法。
【請求項１４】
ソフトウェアを具現化している１以上の非一時的なコンピュータ可読記憶媒体であって、前記ソフトウェアは、実行されたとき、
第２のユーザに関連付けられている複数のコネクテッド・デバイスのうちの１以上への第１のユーザによるアクセスを認可するための認可要求を含む自然言語メッセージを受信する工程と、
前記自然言語メッセージを構文解析する工程と、
構文解析された前記自然言語メッセージに基づいて、前記第１のユーザと複数のコネクテッド・デバイスのうちの１以上とを識別する工程と、
ソーシャル・グラフにおける前記第１のユーザを表すノードと前記ソーシャル・グラフにおける前記第２のユーザを表すノードとの間の関係の算出された強度が所定の閾値を満たすことに基づいて、識別された前記複数のコネクテッド・デバイスのうちの１以上へのアクセスを前記第１のユーザが認可されていると暗黙的に決定する工程と、
前記暗黙的な認可に基づいて、識別された前記複数のコネクテッド・デバイスのうちの１以上へのアクセスを提供する工程と、
が行われるように構成される、媒体。
【請求項１５】
前記ソフトウェアは、構文解析された前記自然言語メッセージの複数のｎ‐ｇｒａｍを識別するようにさらに構成される、請求項１４に記載の媒体。
【請求項１６】
前記ソフトウェアは、識別された前記ｎ‐ｇｒａｍに基づいて、前記認可要求、前記１以上のコネクテッド・デバイス、または前記第１のユーザを識別するようにさらに構成される、請求項１５に記載の媒体。
【請求項１７】
前記ソフトウェアは、前記複数のｎ‐ｇｒａｍに基づいて、前記複数のコネクテッド・デバイスのうちの１以上の識別子を識別するようにさらに構成される、請求項１５に記載の媒体。
【請求項１８】
１以上のプロセッサと、
前記プロセッサに結合され、ソフトウェアを具現化している１以上の非一時的なコンピュータ可読記憶媒体と、
を備えるデバイスであって、前記ソフトウェアは、実行されたとき、
第２のユーザに関連付けられている複数のコネクテッド・デバイスのうちの１以上への第１のユーザによるアクセスを認可するための認可要求を含む自然言語メッセージを受信する工程と、
前記自然言語メッセージを構文解析する工程と、
構文解析された前記自然言語メッセージに基づいて、前記第１のユーザと複数のコネクテッド・デバイスのうちの１以上とを識別する工程と、
ソーシャル・グラフにおける前記第１のユーザを表すノードと前記ソーシャル・グラフにおける前記第２のユーザを表すノードとの間の関係の算出された強度が所定の閾値を満たすことに基づいて、識別された前記複数のコネクテッド・デバイスのうちの１以上へのアクセスを前記第１のユーザが認可されていると暗黙的に決定する工程と、
前記暗黙的な認可に基づいて、識別された前記複数のコネクテッド・デバイスのうちの１以上へのアクセスを提供する工程と、
が行われるように構成される、デバイス。
【請求項１９】
前記ソフトウェアは、構文解析された前記自然言語メッセージの複数のｎ‐ｇｒａｍを識別するようにさらに構成される、請求項１８に記載のデバイス。
【請求項２０】
前記ソフトウェアは、識別された前記ｎ‐ｇｒａｍに基づいて、前記認可要求、前記１以上のコネクテッド・デバイス、または前記第１のユーザを識別するようにさらに構成される、請求項１９に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、コネクテッド・デバイスの管理に関する。
【背景技術】
【０００２】
ソーシャル・ネットワーキング・システム（ソーシャルネットワーキング・ウェブサイトを含むことができる）は、そのソーシャル・ネットワーキング・システムのユーザ（人または組織など）がそのソーシャル・ネットワーキング・システムと、およびそのソーシャル・ネットワーキング・システムを通じて互いに対話することを可能にすることができる。ソーシャル・ネットワーキング・システムは、ユーザからの入力を用いて、そのユーザに関連付けられているユーザ・プロフィールを作成して、ソーシャル・ネットワーキング・システム内に記憶することができる。ユーザ・プロフィールは、人口統計学的情報、通信チャネル情報、およびユーザの個人的な関心に関する情報を含むことができる。ソーシャル・ネットワーキング・システムは、ユーザからの入力を用いて、そのユーザと、ソーシャル・ネットワーキング・システムのその他のユーザとの関係のレコードを作成および記憶すること、ならびにサービス（たとえば、ウォール投稿、写真共有、イベント編成、メッセージング、ゲーム、または広告）を提供して、ユーザ同士の間における社会的な交流を容易にすることも可能である。
【０００３】
ソーシャル・ネットワーキング・システムは、そのサービスに関連したコンテンツまたはメッセージを、１つまたは複数のネットワークを通じて、ユーザのモバイルまたはその他のコンピューティング・デバイスへ送信することができる。ユーザは、自分のユーザ・プロフィールおよびソーシャル・ネットワーキング・システム内のその他のデータにアクセスするためにソフトウェア・アプリケーションを自分のモバイルまたはその他のコンピューティング・デバイス上にインストールすることもできる。ソーシャル・ネットワーキング・システムは、ユーザにつながっているその他のユーザの集約されたストーリのニュース・フィードなど、ユーザに表示するためのコンテンツ・オブジェクトのパーソナライズされたセットを生成することができる。  スマートフォン、タブレット・コンピュータ、またはラップトップ・コンピュータなどのモバイル・コンピューティング・デバイスは、ＧＰＳ受信機、コンパス、ジャイロスコープ、または加速度計など、そのロケーション、方向または向きを決定するための機能を含むことができる。このようなデバイスは、ＢＬＵＥＴＯＯＴＨ（登録商標）（ＢＴ）通信、近距離無線通信（ＮＦＣ）、もしくは赤外線（ＩＲ）通信などの無線通信、または無線ローカル・エリア・ネットワーク（ＷＬＡＮ）もしくはセルラー電話ネットワークとの通信のための機能も含むことができる。このようなデバイスは、１つまたは複数のカメラ、スキャナ、タッチ・スクリーン、マイクロフォン、またはスピーカも含むことができる。モバイル・コンピューティング・デバイスは、ゲーム、ウェブ・ブラウザ、またはソーシャル・ネットワーキング・アプリケーションなどのソフトウェア・アプリケーションも実行することができる。ソーシャル・ネットワーキング・アプリケーションを用いて、ユーザは、そのソーシャル・ネットワーク内の他のユーザと、つながり、通信し、また、情報を共有することができる。
【図面の簡単な説明】
【０００４】
【図１】ソーシャル・ネットワーキング・システムに関連付けられている例示的ネットワーク環境を示す図。
【図２】例示的ソーシャル・グラフを示す図。
【図３】デバイス・クラウドを管理するための例示的アーキテクチャを示す図。
【図４】例示的デバイス・グラフを示す図。
【図５】コネクテッド・デバイスを制御するための例示的方法を示す図。
【図６】コネクテッド・デバイスへのアクセスを提供するための例示的方法を示す図。
【図７】例示的コンピュータ・システムを示す図。
【発明を実施するための形態】
【０００５】
特定の実施形態は、メッセンジャーを通じて通信するユーザが、ユーザのスマート・デバイスを制御、管理、または起動することを可能にする。さらなる実施形態では、ユーザがユーザのスマート・デバイスを制御、管理または起動するときに、自然言語を使用できるように、人間のような知能をメッセンジャー内に実装することができる。特定の実施形態では、ユーザが特定の照明を点灯するよう頼むと、メッセンジャーは、厳密にどの照明を点灯しなければならないのかを伝えられる必要なく、周囲の因子に基づいてどの照明を点灯するべきかを推測することができる。たとえば、活動のために台所の照明が点灯されていることをメッセンジャーがユーザに通知すると、ユーザが消灯したかったのが台所の照明であると示さなくても、ユーザは「照明を消して」と答えるだけでよい。メッセンジャーは、ユーザのメッセージを受信したことに応答して、台所の照明を消灯すべきだと分かることができる。
【０００６】
特定の実施形態においては、ユーザは、メッセージング・アプリケーションの入力により、コネクテッド・デバイスにクエリを送り、プログラミングし、および管理する能力を有することができる。限定ではなく、例として、メッセージング・インフラストラクチャは、コネクテッド・デバイスのコンテキストの中で自然言語のコマンド・メッセージを理解する能力を有することができる。特定の実施形態では、バックエンド・システムは、自然言語のコマンド・メッセージのテキストを構文解析することができる。バックエンド・システムは、過去のデバイスの対話からコンテキストを判断することができる。
【０００７】
特定の実施形態においては、ユーザは、メッセージング・アプリケーションを通じてコネクテッド・デバイスへの一時的なアクセスを得ることができる。限定ではなく、例として、ユーザは、他のユーザとコネクテッド・デバイスとを識別する自然言語メッセージを送信することにより、コネクテッド・デバイスへのアクセスを付与することができる。特定の実施形態では、バックエンド・システムは、２名のユーザ間のアフィニティ・スコアが所定の閾値を満たしていると決定することができ、その場合、他方のユーザは、コネクテッド・デバイスへの一時的なアクセスを認められることができる。
【０００８】
以下に開示する実施形態は単なる例であり、本開示の範囲はこれに限定されるものではない。特定の実施形態は、上記開示した実施形態のコンポーネント、要素、特徴、機能、動作、または工程の全部もしくは一部を含んでもよく、または含まなくてもよい。本発明による実施形態は、方法、記憶媒体、システムおよびコンピュータ・プログラム製品に向けられた添付の請求項で特に開示され、ある請求項のカテゴリ、たとえば方法、で述べられた任意の特徴は、別の請求項のカテゴリ、たとえばシステム、でも同様に請求されることができる。添付の請求項の従属性または後方参照は、形式上の理由でのみ選択されている。しかし、任意の先行請求項への意図的な後方参照から生じる任意の主題（特に多項従属）は同様に請求されることができるので、添付の請求項で選ばれた従属性に関係なく、請求項およびその特徴の任意の組合せが開示され、請求されることができる。請求することのできる主題は、添付の請求項に記載される特徴の組合せだけでなく、請求項の特徴の任意の他の組合せも含み、請求項で述べられる各特徴は請求項の任意の他の特徴または他の特徴の組合せと組み合わせることができる。さらに、本明細書で記述または示される実施形態および特徴のいずれも、個別の請求項で、および／または、本明細書で記述もしくは示される任意の実施形態もしくは特徴または添付の請求項の特徴のいずれかとの任意の組合せで請求することができる。
【０００９】
図１は、ソーシャル・ネットワーキング・システムに関連付けられている例示的なネットワーク環境１００を示している。ネットワーク環境１００は、ネットワーク１１０によって互いにつながっているクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０を含む。図１は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の特定の構成を示しているが、本開示は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の任意の適切な構成を想定している。限定ではなく、例として、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０のうちの複数は、ネットワーク１１０を迂回して、互いに直接つながることが可能である。別の例として、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０のうちの複数は、物理的にまたは論理的に、全体としてまたは部分的に互いに同一場所に配置されることが可能である。その上、図１は、特定の数のクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を示しているが、本開示は、任意の適切な数のクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を想定している。限定ではなく、例として、ネットワーク環境１００は、複数のクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を含むことができる。
【００１０】
本開示は、任意の適切なネットワーク１１０を想定している。限定ではなく、例として、ネットワーク１１０の１つまたは複数の部分は、アド・ホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、セルラー電話ネットワーク、またはこれらのうちの複数の組合せを含むことができる。ネットワーク１１０は、１つまたは複数のネットワーク１１０を含むことができる。
【００１１】
リンク１５０は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０を通信ネットワーク１１０に、または互いに接続することができる。本開示は、任意の適切なリンク１５０を想定している。特定の実施形態においては、１つまたは複数のリンク１５０は、１つもしくは複数の有線リンク（たとえば、デジタル・サブスクライバ・ライン（ＤＳＬ）もしくはデータ・オーバ・ケーブル・サービス・インタフェース仕様（ＤＯＣＳＩＳ）など）、無線リンク（たとえば、Ｗｉ−Ｆｉもしくはワールドワイド・インターオペラビリティー・フォー・マイクロウェーブ・アクセス（ＷｉＭＡＸ）など）、または光リンク（たとえば、同期光ネットワーク（ＳＯＮＥＴ）もしくは同期デジタル階層（ＳＤＨ）など）を含む。特定の実施形態においては、１つまたは複数のリンク１５０はそれぞれ、アド・ホック・ネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラー・テクノロジーベースのネットワーク、衛星通信テクノロジーベースのネットワーク、別のリンク１５０、または複数のそのようなリンク１５０の組合せを含む。リンク１５０は、ネットワーク環境１００の全体を通じて必ずしも同じである必要はない。１つまたは複数の第１のリンク１５０は、１つまたは複数の点において１つまたは複数の第２のリンク１５０とは異なることが可能である。
【００１２】
特定の実施形態においては、クライアント・システム１３０は、クライアント・システム１３０によって実装またはサポートされる適切な機能を実行することができる、ハードウェア、ソフトウェア、もしくは組み込みロジック・コンポーネント、または複数のそのようなコンポーネントの組合せを含む電子デバイスであることが可能である。限定ではなく、例として、クライアント・システム１３０は、デスクトップ・コンピュータ、ノートブック・コンピュータもしくはラップトップ・コンピュータ、ネットブック、タブレット・コンピュータなどのコンピュータ・システム、ｅブック・リーダ、ＧＰＳデバイス、カメラ、携帯情報端末（ＰＤＡ）、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、強化された／仮想現実デバイス、その他の適切な電子デバイス、またはそれらの任意の適切な組合せを含むことができる。本開示は、任意の適切なクライアント・システム１３０を想定している。クライアント・システム１３０は、クライアント・システム１３０のネットワーク・ユーザがネットワーク１１０にアクセスすることを可能にすることができる。クライアント・システム１３０は、自分のユーザがその他のクライアント・システム１３０のその他のユーザと通信することを可能にすることができる。
【００１３】
特定の実施形態においては、クライアント１３０は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ、またはＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸなどのウェブ・ブラウザ１３２を含むことができ、１つまたは複数のアドオン、プラグイン、またはＴＯＯＬＢＡＲもしくはＹＡＨＯＯ  ＴＯＯＬＢＡＲなどのその他の拡張を有することができる。クライアント・システム１３０のユーザは、ウェブ・ブラウザ１３２を特定のサーバ（サーバ１６２、またはサードパーティ・システム１７０に関連付けられているサーバなど）へ導くユニフォーム・リソース・ロケータ（ＵＲＬ）またはその他のアドレスを入力することができ、ウェブ・ブラウザ１３２は、ハイパー・テキスト転送プロトコル（ＨＴＴＰ）要求を生成して、そのＨＴＴＰ要求をサーバに通信することができる。サーバは、そのＨＴＴＰ要求を受け入れて、そのＨＴＴＰ要求に応答して１つまたは複数のハイパー・テキスト・マークアップ言語（ＨＴＭＬ）ファイルをクライアント・システム１３０に通信することができる。クライアント・システム１３０は、ユーザに提示するためにサーバからのＨＴＭＬファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページ・ファイルを想定している。限定ではなく、例として、ウェブページは、特定のニーズに従って、ＨＴＭＬファイル、拡張可能ハイパー・テキスト・マークアップ言語（ＸＨＴＭＬ）ファイル、または拡張可能マークアップ言語（ＸＭＬ）ファイルからレンダリングすることができる。そのようなページは、限定ではなく、例として、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＪＡＶＡ（登録商標）、ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴで書かれたスクリプトなどのスクリプト、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪＡＶＡＳＣＲＩＰＴ（登録商標）ａｎｄ  ＸＭＬ）などのマークアップ言語とスクリプトの組合せなどを実行することもできる。本明細書においては、ウェブページへの参照は、適切な場合には、（そのウェブページをレンダリングするためにブラウザが使用することができる）１つまたは複数の対応するウェブページ・ファイルを含み、その逆もまた同様である。
【００１４】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークをホストすることができるネットワークアドレス可能なコンピューティング・システムであることが可能である。ソーシャル・ネットワーキング・システム１６０は、たとえば、ユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関連したその他の適切なデータなどのソーシャルネットワーキング・データを生成すること、記憶すること、受け取ること、および送信することが可能である。ソーシャル・ネットワーキング・システム１６０は、ネットワーク環境１００のその他のコンポーネントによって直接、またはネットワーク１１０を通じてアクセスされることが可能である。限定するものではないが例として、クライアント・システム１３０は、直接的またはネットワーク１１０を通じて、ウェブ・ブラウザ１３２またはソーシャル・ネットワーキング・システム１６０に関連付けられているネイティブ・アプリケーション（たとえば、モバイル・ソーシャル・ネットワーキング・アプリケーション、メッセージング・アプリケーション、別の適切なアプリケーション、またはこれらの組み合わせ）を使用してソーシャル・ネットワーキング・システム１６０にアクセスしてもよい。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のサーバ１６２を含むことができる。それぞれのサーバ１６２は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンターにわたる分散サーバであることが可能である。サーバ１６２は、限定ではなく、例として、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、Ｅｘｃｈａｎｇｅサーバ、データベース・サーバ、プロキシ・サーバ、本明細書において記述されている機能もしくはプロセスを実行するのに適している別のサーバ、またはそれらの任意の組合せなど、さまざまなタイプのものであることが可能である。特定の実施形態においては、それぞれのサーバ１６２は、サーバ１６２によって実装またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、もしくは組み込みロジック・コンポーネント、または複数のそのようなコンポーネントの組合せを含むことができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のデータ・ストア１６４を含むことができる。データ・ストア１６４は、さまざまなタイプの情報を記憶するために使用されることが可能である。特定の実施形態においては、データ・ストア１６４内に記憶されている情報は、特定のデータ構造に従って編成されることが可能である。特定の実施形態においては、それぞれのデータ・ストア１６４は、リレーショナル・データベースであることが可能である。特定の実施形態は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、またはサードパーティ・システム１７０が、データ・ストア１６４内に記憶されている情報を管理すること、取り出すこと、修正すること、追加すること、または削除することを可能にするインタフェースを提供することができる。
【００１５】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のソーシャル・グラフを１つまたは複数のデータ・ストア１６４内に記憶することができる。特定の実施形態においては、ソーシャル・グラフは、複数のノード（複数のユーザ・ノード（それぞれが、特定のユーザに対応している）、または複数のコンセプト・ノード（それぞれが、特定のコンセプトに対応している）を含むことができる）と、ノード同士をつなげる複数のエッジとを含むことができる。ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークのユーザに、その他のユーザと通信および対話する能力を提供することができる。特定の実施形態においては、ユーザたちは、ソーシャル・ネットワーキング・システム１６０を通じてオンライン・ソーシャル・ネットワークに参加し、次いで、自分たちがつながりたいと望むソーシャル・ネットワーキング・システム１６０のその他の複数のユーザにつながり（すなわち、関係）を付加することができる。本明細書においては、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム１６０を通じて、つながり、関連付け、または関係を形成しているソーシャル・ネットワーキング・システム１６０のその他の任意のユーザを示すことができる。
【００１６】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・ネットワーキング・システム１６０によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに関してアクションを取る能力をユーザに提供することができる。限定ではなく、例として、それらのアイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム１６０のユーザが属することが可能であるグループもしくはソーシャル・ネットワーク、ユーザが関心を抱く可能性があるイベントもしくはカレンダー・エントリー、ユーザが使用することができるコンピュータベースのアプリケーション、ユーザがサービスを通じてアイテムを購入もしくは販売することを可能にするトランザクション、ユーザが実行することができる広告との対話、またはその他の適切なアイテムもしくはオブジェクトを含むことができる。ユーザは、ソーシャル・ネットワーキング・システム１６０において、またはサードパーティ・システム１７０の外部システム（ソーシャル・ネットワーキング・システム１６０とは別個のものであって、ネットワーク１１０を通じてソーシャル・ネットワーキング・システム１６０に結合されている）によって表されることが可能である任意のものと対話することができる。
【００１７】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、さまざまなエンティティ同士をリンクできることが可能である。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、ユーザたちが互いに対話すること、ならびにサードパーティ・システム１７０もしくはその他のエンティティからのコンテンツを受け取ることを可能にすることができ、またはユーザたちがアプリケーション・プログラミング・インタフェース（ＡＰＩ）もしくはその他の通信チャネルを通じてこれらのエンティティと対話することを可能にすることができる。
【００１８】
特定の実施形態においては、サードパーティ・システム１７０は、１つもしくは複数のタイプのサーバ、１つもしくは複数のデータ・ストア、１つもしくは複数のインタフェース（ＡＰＩを含むが、それには限定されない）、１つもしくは複数のウェブ・サービス、１つもしくは複数のコンテンツ・ソース、１つもしくは複数のネットワーク、または（たとえば、サーバが通信することができる）その他の任意の適切なコンポーネントを含むことができる。サードパーティ・システム１７０は、ソーシャル・ネットワーキング・システム１６０を運営しているエンティティとは異なるエンティティによって運営されることが可能である。しかしながら、特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０およびサードパーティ・システム１７０は、ソーシャル・ネットワーキング・システム１６０またはサードパーティ・システム１７０のユーザにソーシャルネットワーキング・サービスを提供するために互いに連携して機能することができる。この意味において、ソーシャル・ネットワーキング・システム１６０は、サードパーティ・システム１７０などのその他のシステムがインターネットを通じてソーシャルネットワーキング・サービスおよび機能をユーザに提供するために使用することができるプラットフォーム、またはバックボーンを提供することができる。
【００１９】
特定の実施形態においては、サードパーティ・システム１７０は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含むことができる。サードパーティ・コンテンツ・オブジェクト・プロバイダは、コンテンツ・オブジェクトの１つまたは複数のソースを含むことができ、それらのソースは、クライアント・システム１３０に通信されることが可能である。限定ではなく、例として、コンテンツ・オブジェクトは、ユーザにとって関心がある物またはアクティビティに関する情報、たとえば、映画の開始時刻、映画のレビュー、レストランのレビュー、レストランのメニュー、製品の情報およびレビュー、またはその他の適切な情報などを含むことができる。限定ではなく、別の例として、コンテンツ・オブジェクトは、インセンティブ・コンテンツ・オブジェクト、たとえば、クーポン、ディスカウント・チケット、ギフト券、またはその他の適切なインセンティブ・オブジェクトを含むことができる。
【００２０】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０はまた、ユーザによって生成されたコンテンツ・オブジェクトを含み、それらのコンテンツ・オブジェクトは、ソーシャル・ネットワーキング・システム１６０とのユーザの対話を高めることができる。ユーザによって生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム１６０に付加、アップロード、送信、または「投稿」することができる任意のものを含むことができる。限定ではなく、例として、ユーザは、クライアント・システム１３０からソーシャル・ネットワーキング・システム１６０へ投稿を通信する。投稿は、ステータス更新もしくはその他のテキスト・データ、ロケーション情報、写真、映像、リンク、音楽、またはその他の類似したデータもしくはメディアなどのデータを含むことができる。コンテンツは、ニュース・フィードまたはストリームなどの「通信チャネル」を通じてサードパーティによってソーシャル・ネットワーキング・システム１６０に付加されることも可能である。
【００２１】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、さまざまなサーバ、サブシステム、プログラム、モジュール、ログ、およびデータ・ストアを含むことができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ウェブ・サーバ、アクション・ロガー、ＡＰＩ要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類子、通知コントローラ、アクション・ログ、サードパーティ・コンテンツ・オブジェクト露出ログ、推測モジュール、認可／プライバシ・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインタフェース・モジュール、ユーザプロフィール・ストア、つながりストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの１つまたは複数を含むことができる。ソーシャル・ネットワーキング・システム１６０は、適切なコンポーネント、たとえば、ネットワーク・インタフェース、セキュリティー・メカニズム、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワークオペレーション・コンソール、その他の適切なコンポーネント、またはそれらの任意の適切な組合せを含むこともできる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ユーザ・プロフィールを記憶するための１つまたは複数のユーザプロフィール・ストアを含むことができる。ユーザ・プロフィールは、たとえば、経歴情報、人口統計学的情報、挙動情報、ソーシャルな情報、またはその他のタイプの記述的情報、たとえば、職業経験、学歴、趣味もしくは好み、関心、親近感、またはロケーションを含むことができる。関心情報は、１つまたは複数のカテゴリに関連した関心を含むことができる。カテゴリは、一般的または具体的であることが可能である。限定ではなく、例として、ユーザが、あるブランドの靴に関する記事に対して「いいね！」の表明をした場合には、カテゴリは、そのブランド、または「靴」もしくは「衣類」という一般的なカテゴリであることが可能である。ユーザに関するつながり情報を記憶するために、つながりストアが使用されることが可能である。つながり情報は、類似のもしくは共通の職業経験、グループ・メンバーシップ、趣味、学歴を有しているか、または何らかの形で関連しているか、もしくは共通の属性を共有しているユーザ同士を示すことができる。つながり情報は、さまざまなユーザおよびコンテンツ（内部および外部の両方）の間におけるユーザ定義のつながりを含むこともできる。ネットワーク１１０を通じてソーシャル・ネットワーキング・システム１６０を１つもしくは複数のクライアント・システム１３０または１つもしくは複数のサードパーティ・システム１７０にリンクさせるために、ウェブ・サーバが使用されることが可能である。ウェブ・サーバは、ソーシャル・ネットワーキング・システム１６０と、１つまたは複数のクライアント・システム１３０との間においてメッセージを受け取って回送するためにメール・サーバまたはその他のメッセージング機能を含むことができる。ＡＰＩ要求サーバは、サードパーティ・システム１７０が、１つまたは複数のＡＰＩを呼び出すことによってソーシャル・ネットワーキング・システム１６０からの情報にアクセスすることを可能にすることができる。ソーシャル・ネットワーキング・システム１６０の上のまたは外のユーザのアクションに関してウェブ・サーバから通信を受け取るために、アクション・ロガーが使用されることが可能である。アクション・ログとともに、サードパーティコンテンツ・オブジェクトへのユーザの露出についてのサードパーティコンテンツオブジェクト・ログが保持されることが可能である。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアント・システム１３０に提供することができる。情報は、通知としてクライアント・システム１３０へプッシュされることが可能であり、または情報は、クライアント・システム１３０から受け取られた要求に応答してクライアント・システム１３０からプルされることが可能である。ソーシャル・ネットワーキング・システム１６０のユーザの１つまたは複数のプライバシ設定を実施するために、認可サーバが使用されることが可能である。ユーザのプライバシ設定は、ユーザに関連付けられている特定の情報がどのように共有されることが可能であるかを特定する。認可サーバは、ユーザが、たとえば、適切なプライバシ設定を設定することなどによって、自分のアクションをソーシャル・ネットワーキング・システム１６０によって記録されること、またはその他のシステム（たとえば、サードパーティ・システム１７０）と共有されることのオプト・インまたはオプト・アウトを行うことを可能にすることができる。サードパーティ・システム１７０などのサードパーティから受け取られたコンテンツ・オブジェクトを記憶するために、サードパーティコンテンツオブジェクト・ストアが使用されることが可能である。ユーザに関連付けられているクライアント・システム１３０から受け取られたロケーション情報を記憶するために、ロケーション・ストアが使用されることが可能である。広告価格設定モジュールが、ソーシャルな情報、現在時刻、ロケーション情報、またはその他の適切な情報を組み合わせて、関連がある広告を、通知の形式でユーザに提供することができる。
【００２２】
図２は、例示的なソーシャル・グラフ２００を示している。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のソーシャル・グラフ２００を１つまたは複数のデータ・ストア内に記憶することができる。特定の実施形態においては、ソーシャル・グラフ２００は、複数のノード（複数のユーザ・ノード２０２、または複数のコンセプト・ノード２０４を含むことができる）と、ノード同士をつなげる複数のエッジ２０６とを含むことができる。図２において示されている例示的なソーシャル・グラフ２００は、教示上の目的から、二次元の視覚的マップ表示で示されている。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０、クライアント・システム１３０、またはサードパーティ・システム１７０は、適切なアプリケーションに関してソーシャル・グラフ２００および関連したソーシャル・グラフ情報にアクセスすることができる。ソーシャル・グラフ２００のノードおよびエッジは、データ・オブジェクトとして、たとえば（ソーシャル・グラフ・データベースなどの）データ・ストア内に記憶されることが可能である。そのようなデータ・ストアは、ソーシャル・グラフ２００のノードまたはエッジの１つまたは複数の検索可能なまたはクエリ可能なインデックスを含むことができる。
【００２３】
特定の実施形態においては、ユーザ・ノード２０２は、ソーシャル・ネットワーキング・システム１６０のユーザに対応することができる。限定ではなく、例として、ユーザは、ソーシャル・ネットワーキング・システム１６０と、またはソーシャル・ネットワーキング・システム１６０を通じて対話または通信する個人（人間のユーザ）、エンティティ（たとえば、企業、ビジネス、もしくはサードパーティ・アプリケーション）、または（たとえば、個人もしくはエンティティの）グループであることが可能である。特定の実施形態においては、あるユーザがソーシャル・ネットワーキング・システム１６０とのアカウントに登録した場合には、ソーシャル・ネットワーキング・システム１６０は、そのユーザに対応するユーザ・ノード２０２を作成し、そのユーザ・ノード２０２を１つまたは複数のデータ・ストア内に記憶することができる。本明細書において記述されているユーザおよびユーザ・ノード２０２は、適切な場合には、登録されているユーザ、および登録されているユーザに関連付けられているユーザ・ノード２０２を示すことができる。追加として、または代替として、本明細書において記述されているユーザおよびユーザ・ノード２０２は、適切な場合には、ソーシャル・ネットワーキング・システム１６０に登録されていないユーザを示すことができる。特定の実施形態においては、ユーザ・ノード２０２は、ユーザによって提供された情報、またはソーシャル・ネットワーキング・システム１６０を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、ユーザは、自分の名前、プロフィール画像、連絡先情報、生年月日、性別、婚姻状況、家族状況、勤務先、学歴、好み、関心、またはその他の人口統計学的情報を提供することができる。特定の実施形態においては、ユーザ・ノード２０２は、ユーザに関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられることが可能である。特定の実施形態においては、ユーザ・ノード２０２は、１つまたは複数のウェブページに対応することができる。
【００２４】
特定の実施形態においては、コンセプト・ノード２０４は、コンセプトに対応することができる。限定ではなく、例として、コンセプトは、場所（たとえば、映画館、レストラン、ランドマーク、もしくは都市など）、ウェブサイト（たとえば、ソーシャルネットワーク・システム１６０に関連付けられているウェブサイト、もしくはウェブアプリケーション・サーバに関連付けられているサードパーティ・ウェブサイトなど）、エンティティ（たとえば、人、企業、グループ、スポーツ・チーム、もしくは有名人など）、ソーシャル・ネットワーキング・システム１６０内に、もしくはウェブアプリケーション・サーバなどの外部サーバ上に配置されることが可能であるリソース（たとえば、オーディオ・ファイル、営業ファイル、デジタル写真、テキスト・ファイル、構造化文書、もしくはアプリケーションなど）、物的もしくは知的財産（たとえば、彫塑、絵画、映画、ゲーム、曲、着想、写真、もしくは執筆作品など）、ゲーム、アクティビティ、着想もしくは理論、強化された／仮想現実環境におけるオブジェクト、別の適切なコンセプト、または複数のそのようなコンセプトに対応することができる。コンセプト・ノード２０４は、ユーザによって提供されたコンセプトの情報、またはソーシャル・ネットワーキング・システム１６０を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、コンセプトの情報は、名前もしくはタイトル、１つもしくは複数のイメージ（たとえば、本の表紙のイメージ）、ロケーション（たとえば、住所もしくは地理的ロケーション）、（ＵＲＬに関連付けられることが可能である）ウェブサイト、連絡先情報（たとえば、電話番号もしくはＥメール・アドレス）、その他の適切なコンセプト情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態においては、コンセプト・ノード２０４は、コンセプト・ノード２０４に関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられることが可能である。特定の実施形態においては、コンセプト・ノード２０４は、１つまたは複数のウェブページに対応することができる。
【００２５】
特定の実施形態においては、ソーシャル・グラフ２００内のノードは、ウェブページ（「プロフィール・ページ」と呼ばれる場合もある）を表すこと、またはウェブページによって表されることが可能である。プロフィール・ページは、ソーシャル・ネットワーキング・システム１６０によってホストされること、またはソーシャル・ネットワーキング・システム１６０にとってアクセス可能であることが可能である。プロフィール・ページは、サードパーティ・サーバ１７０に関連付けられているサードパーティ・ウェブサイト上にホストされることも可能である。限定ではなく、例として、特定の外部ウェブページに対応するプロフィール・ページは、その特定の外部ウェブページであることが可能であり、そのプロフィール・ページは、特定のコンセプト・ノード２０４に対応することができる。プロフィール・ページは、その他のユーザのうちのすべてまたは選択されたサブセットによって閲覧できることが可能である。限定ではなく、例として、ユーザ・ノード２０２は、対応するユーザ・プロフィール・ページを有することができ、そのユーザ・プロフィール・ページにおいては、対応するユーザが、コンテンツを付加すること、言明を行うこと、またはその他の形で自分自身を表現することが可能である。限定ではなく、別の例として、コンセプト・ノード２０４は、対応するコンセプトプロフィール・ページを有することができ、そのコンセプトプロフィール・ページにおいては、１人または複数のユーザが、特にコンセプト・ノード２０４に対応するコンセプトに関連して、コンテンツを付加すること、言明を行うこと、または自分自身を表現することが可能である。
【００２６】
特定の実施形態においては、コンセプト・ノード２０４は、サードパーティ・システム１７０によってホストされているサードパーティ・ウェブページまたはリソースを表すことができる。サードパーティ・ウェブページまたはリソースは、数ある要素の中でも、コンテンツ、選択可能なもしくはその他のアイコン、または、アクションもしくはアクティビティを表す（たとえば、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＡＪＡＸ、もしくはＰＨＰコードで実装されることが可能である）その他の対話可能なオブジェクトを含むことができる。限定ではなく、例として、サードパーティ・ウェブページは、「いいね！」、「チェックイン」、「食べる」、「推奨する」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含むことができる。サードパーティ・ウェブページを閲覧しているユーザは、それらのアイコンのうちの１つ（たとえば、「チェックイン」）を選択することによってアクションを実行して、クライアント・システム１３０に、そのユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム１６０へ送信させることができる。そのメッセージに応答して、ソーシャル・ネットワーキング・システム１６０は、ユーザに対応するユーザ・ノード２０２と、サードパーティ・ウェブページまたはリソースに対応するコンセプト・ノード２０４との間においてエッジ（たとえば、「チェックイン」のタイプのエッジ）を作成して、エッジ２０６を１つまたは複数のデータ・ストア内に記憶することができる。
【００２７】
特定の実施形態においては、ソーシャル・グラフ２００内の１対のノードが、１つまたは複数のエッジ２０６によって互いにつながることが可能である。１対のノードをつなげるエッジ２０６は、それらの１対のノードの間における関係を表すことができる。特定の実施形態においては、エッジ２０６は、１対のノードの間における関係に対応する１つまたは複数のデータ・オブジェクトまたは属性を含むことまたは表すことが可能である。限定ではなく、例として、第１のユーザは、第２のユーザが第１のユーザの「友達」であるということを示すことができる。この表示に応答して、ソーシャル・ネットワーキング・システム１６０は、「友達要求」を第２のユーザに送信することができる。第２のユーザがその「友達要求」を承認した場合には、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００内で第１のユーザのユーザ・ノード２０２を第２のユーザのユーザ・ノード２０２につなげるエッジ２０６を作成して、エッジ２０６をソーシャル・グラフ情報としてデータ・ストア１６４のうちの１つまたは複数の中に記憶することができる。図２の例においては、ソーシャル・グラフ２００は、ユーザ「Ａ」のユーザ・ノード２０２と、ユーザ「Ｂ」のユーザ・ノード２０２との間における友達関係を示すエッジ２０６と、ユーザ「Ｃ」のユーザ・ノード２０２と、ユーザ「Ｂ」のユーザ・ノード２０２との間における友達関係を示すエッジとを含む。本開示は、特定のユーザ・ノード２０２同士をつなげる特定の属性を伴う特定のエッジ２０６を記述している、または示しているが、本開示は、ユーザ・ノード２０２同士をつなげる任意の適切な属性を伴う任意の適切なエッジ２０６を想定している。限定ではなく、例として、エッジ２０６は、友達関係、家族関係、ビジネスもしくは雇用関係、ファン関係（たとえば、「いいね」と表明することなどを含む）、フォロワー関係、ビジター関係（たとえば、アクセスすること、閲覧すること、チェックインをすること、共有することなどを含む）、サブスクライバ関係、上下関係、互恵的関係、非互恵的関係、別の適切なタイプの関係、または複数のそのような関係を表すことができる。その上、本開示は一般に、ノード同士をつながっているものとして記述しているが、本開示はまた、ユーザ同士またはコンセプト同士をつながっているものとして記述している。本明細書においては、つながっているユーザ同士またはコンセプト同士への言及は、適切な場合には、１つまたは複数のエッジ２０６によってソーシャル・グラフ２００内でつながっているそれらのユーザ同士またはコンセプト同士に対応するノード同士を示すことができる。
【００２８】
特定の実施形態においては、ユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジ２０６は、ユーザ・ノード２０２に関連付けられているユーザによって、コンセプト・ノード２０４に関連付けられているコンセプトに対して実行された特定のアクションまたはアクティビティを表すことができる。限定ではなく、例として、図２において示されているように、ユーザは、コンセプトに対して「いいね！を表明すること」、「通うこと」、「プレイすること」、「聴くこと」、「料理すること」、「勤務すること」、または「観ること」を行った可能性があり、それらの各々は、エッジ・タイプまたはサブタイプに対応することができる。コンセプト・ノード２０４に対応するコンセプトプロフィール・ページは、たとえば、選択可能な「チェックイン」アイコン（たとえば、クリック可能な「チェックイン」アイコンなど）、または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後に、ソーシャル・ネットワーキング・システム１６０は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく、別の例として、あるユーザ（ユーザ「Ｃ」）が、特定のアプリケーション（オンライン音楽アプリケーションであるＳＰＯＴＩＦＹ）を使用して特定の曲（「イマジン」）を聴く場合がある。このケースにおいては、ソーシャル・ネットワーキング・システム１６０は、そのユーザに対応するユーザ・ノード２０２と、その曲およびアプリケーションに対応するコンセプト・ノード２０４との間において、（図２に示されているような）「聴いた」エッジ２０６および「使用した」エッジを作成して、そのユーザがその曲を聴いてそのアプリケーションを使用したということを示すことができる。その上、ソーシャル・ネットワーキング・システム１６０は、その曲に対応するコンセプト・ノード２０４と、そのアプリケーションに対応するコンセプト・ノード２０４との間において、（図２に示されているような）「再生した」エッジ２０６を作成して、その特定の曲がその特定のアプリケーションによって再生されたということを示すことができる。このケースにおいては、「再生した」エッジ２０６は、外部アプリケーション（ＳＰＯＴＩＦＹ）によって外部オーディオ・ファイル（「イマジン」という曲）に関して実行されたアクションに対応する。本開示は、ユーザ・ノード２０２とコンセプト・ノード２０４とをつなげる特定の属性を伴う特定のエッジ２０６について記述しているが、本開示は、ユーザ・ノード２０２とコンセプト・ノード２０４とをつなげる任意の適切な属性を伴う任意の適切なエッジ２０６を想定している。その上、本開示は、単一の関係を表すユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジについて記述しているが、本開示は、１つまたは複数の関係を表すユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジを想定している。限定ではなく、例として、エッジ２０６は、ユーザが特定のコンセプトに対して「いいね！」の表明をしているということ、およびその特定のコンセプトを使用したということの両方を表すことができる。あるいは、別のエッジ２０６は、（図２において、ユーザ「Ｅ」を表すユーザ・ノード２０２と、「ＳＰＯＴＩＦＹ」を表すコンセプト・ノード２０４との間において示されているような）ユーザ・ノード２０２とコンセプト・ノード２０４との間におけるそれぞれのタイプの関係（または、単一の関係が複数集まったもの）を表すことができる。
【００２９】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００内でユーザ・ノード２０２とコンセプト・ノード２０４との間においてエッジ２０６を作成することができる。限定ではなく、例として、（たとえば、ユーザのクライアント・システム１３０によってホストされているウェブ・ブラウザまたは専用のアプリケーションを使用することなどによって）コンセプトプロフィール・ページを閲覧しているユーザは、「いいね！」アイコンをクリックまたは選択することにより、コンセプト・ノード２０４によって表されているコンセプトを自分が気に入っているということを示すことができ、その「いいね！」アイコンをクリックまたは選択することは、ユーザのクライアント・システム１３０に、そのコンセプトプロフィール・ページに関連付けられているそのコンセプトをそのユーザが気に入っているということを示すメッセージをソーシャル・ネットワーキング・システム１６０へ送信させることができる。そのメッセージに応答して、ソーシャル・ネットワーキング・システム１６０は、そのユーザとコンセプト・ノード２０４との間における「いいね！」エッジ２０６によって示されているように、そのユーザに関連付けられているユーザ・ノード２０２とコンセプト・ノード２０４との間においてエッジ２０６を作成することができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、エッジ２０６を１つまたは複数のデータ・ストア内に記憶することができる。特定の実施形態においては、エッジ２０６は、特定のユーザ・アクションに応答してソーシャル・ネットワーキング・システム１６０によって自動的に形成されることが可能である。限定ではなく、例として、第１のユーザが、画像をアップロードすること、映画を観ること、または曲を聴くことを行った場合には、エッジ２０６は、第１のユーザに対応するユーザ・ノード２０２と、それらのコンセプトに対応するコンセプト・ノード２０４との間において形成されることが可能である。本開示は、特定の様式で特定のエッジ２０６を形成することについて記述しているが、本開示は、任意の適切な様式で任意の適切なエッジ２０６を形成することを想定している。
【００３０】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、様々なソーシャル・グラフ・エンティティの互いに対するソーシャル・グラフ・アフィニティ（本明細書では「アフィニティ」ということもある）を決定することができる。アフィニティは、オンライン・ソーシャル・ネットワークに関連付けられているユーザ、コンセプト、コンテンツ、アクション、広告、他のオブジェクト、またはその任意の適切な組合せなど、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強度または関心レベルを表すことができる。アフィニティは、サードパーティ・システム１７０または他の適切なシステムに関連付けられているオブジェクトに関しても決定されることができる。各ユーザ、主題またはコンテンツのタイプについて、ソーシャル・グラフ・エンティティの総合アフィニティが確立されることができる。総合アフィニティは、ソーシャル・グラフ・エンティティに関連付けられているアクションまたは関係の継続的な監視に基づいて変わることがある。本開示は、特定の様式で特定のアフィニティを決定することを説明しているが、本開示は、任意の適切な様式で任意の適切なアフィニティを決定することを企図する。
【００３１】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、アフィニティ係数（本明細書では「係数」ということもある）を使用して、ソーシャル・グラフ・アフィニティを測定または定量化することができる。係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強度を表すか、または定量化することができる。係数は、また、ユーザの特定のアクションへの関心に基づいて、ユーザがそのアクションを実行する確率を表すか、または予測される確率を測定する関数を表すことができる。このように、ユーザの将来のアクションはユーザの過去のアクションに基づいて予測されることができ、その係数は少なくとも部分的にユーザのアクションの履歴で計算されることができる。係数を使用して、オンライン・ソーシャル・ネットワーク内または外の任意の数のアクションを予測することができる。限定ではなく、例として、これらのアクションは、メッセージの送信、コンテンツの投稿もしくはコンテンツに対するコメントなどの様々なタイプの通信、プロフィール・ページ、メディアもしくは他の適切なコンテンツへのアクセスもしくはそれらの視聴などの様々なタイプの観察アクション、同じグループであること、同じ写真にタグ付けされること、同じロケーションにチェックインすること、もしくは同じイベントに出席することなど、２つ以上のソーシャル・グラフ・エンティティに関する様々なタイプの同時発生情報、または他の適切なアクションを含むことができる。本開示は、特定の様式でアフィニティを測定することを説明しているが、本開示は、任意の適切な様式でアフィニティを測定することを企図する。
【００３２】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、係数を計算するために多様な因子を使用することができる。これらの因子には、たとえば、ユーザ・アクション、オブジェクト間の関係のタイプ、ロケーション情報、他の適切な因子、またはその任意の組合せを含むことができる。特定の実施形態においては、係数を計算するときに、異なる因子に異なる重みを付けることができる。各因子の重みは静的であってもよく、または、たとえば、ユーザ、関係のタイプ、アクションのタイプ、ユーザのロケーションなどに応じて、重みを変えてもよい。ユーザの総合的な係数を決定するために、因子のレーティングをその重みに応じて組み合わせることができる。限定ではなく、例として、特定のユーザ・アクションには、レーティングおよび重みの両方を割り当てることができるが、特定のユーザ・アクションに関連付けられている関係には、レーティングおよび相関する重み（たとえば、そのため、重みの合計は１００％）が割り当てられる。特定のオブジェクトに対するユーザの係数を計算するには、ユーザのアクションに割り当てられるレーティングが、たとえば、総合的な係数の６０％を占めることができ、ユーザとオブジェクトとの関係が、総合的な係数の４０％を占めることができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、係数を計算するために使用される様々な因子の重みを決定するとき、たとえば、情報にアクセスされてからの時間、減衰因子、アクセスの頻度、情報との関係もしくは情報がアクセスされたオブジェクトとの関係、オブジェクトとつながりのあるソーシャル・グラフ・エンティティとの関係、ユーザ・アクションの短期的もしくは長期的な平均、ユーザ・フィードバック、他の適切な変数、またはその任意の組合せなど、多様な変数を考慮することができる。限定ではなく、例として、係数は、特定のアクションが提供する信号の強度を時間の経過とともに減衰させる減衰因子を含むことができ、係数を計算するときに、より最近のアクションをより関連性があるようにする。レーティングおよび重みは、係数が根拠とするアクションの継続的な追跡に基づいて、継続的に更新することができる。各因子のレーティングと因子に割り当てられる重みとの割当て、組合せ、平均化などを行うために、任意のタイプのプロセスまたはアルゴリズムを採用することができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、履歴アクションおよび過去のユーザの応答に基づいて訓練された機械学習アルゴリズム、またはユーザに様々なオプションを提示して応答を測定することによってユーザから集められたデータを使用して、係数を決定することができる。本開示は、特定の様式で係数を計算することを説明しているが、本開示は、任意の適切な様式で係数を計算することを企図する。
【００３３】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、ユーザのアクションに基づいて係数を計算することができる。ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワーク、サードパーティ・システム１７０、他の適切なシステム、またはその任意の組合せ上で、該アクションを監視することができる。任意の適切なタイプのユーザ・アクションを追跡または監視することができる。典型的なユーザ・アクションは、プロフィール・ページを閲覧すること、コンテンツを作成もしくは投稿すること、コンテンツと対話すること、画像をタグ付けするもしくは画像にタグ付けされること、グループに参加すること、イベントへの参加をリスト化し確認すること、ロケーションでチェックインすること、特定のページに「いいね！」を表明すること、ページを作成すること、および社会的活動を促す他のタスクを行うことを含む。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、特定のタイプのコンテンツを伴うユーザのアクションに基づいて係数を計算することができる。コンテンツは、オンライン・ソーシャル・ネットワーク、サードパーティ・システム１７０、または別の適切なシステムに関連付けられてもよい。コンテンツは、ユーザ、プロフィール・ページ、投稿、ニュース・ストーリ、ヘッドライン、インスタント・メッセージ、チャットルームの会話、Ｅメール、広告、写真、動画、音楽、他の適切なオブジェクト、またはその任意の組合せを含むことができる。ソーシャル・ネットワーキング・システム１６０はユーザのアクションを分析して、アクションのうちの１つまたは複数が、主題、コンテンツ、他のユーザなどに関するアフィニティを示すかどうかを決定することができる。限定ではなく、例として、ユーザが「コーヒー」またはその変異形に関係するコンテンツを頻繁に投稿する場合、ソーシャル・ネットワーキング・システム１６０は、ユーザが「コーヒー」コンセプトに対して高い係数を有すると決定することができる。特定のアクションまたは特定のタイプのアクションに、他のアクションよりも高い重みおよび／またはレーティングを割り当てることができ、それで総合的な係数の算出値に影響を与えることができる。限定ではなく、例として、第１のユーザが第２のユーザにＥメールを送信する場合、そのアクションに関する重みまたはレーティングは、第１のユーザが第２のユーザのユーザ・プロフィール・ページを単に閲覧するだけの場合よりも高くすることができる。
【００３４】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、特定のオブジェクト間の関係のタイプに基づいて、係数を計算することができる。ソーシャル・グラフ２００を参照して、ソーシャル・ネットワーキング・システム１６０は、係数を計算するときに、特定のユーザ・ノード２０２とコンセプト・ノード２０４とをつなげるエッジ２０６の数および／またはタイプを分析することができる。限定ではなく、例として、配偶者タイプのエッジ（２名のユーザが結婚していることを表す）によってつながっているユーザ・ノード２０２には、友達タイプのエッジによってつながっているユーザ・ノード２０２よりも高い係数を割り当てることができる。言い換えれば、特定のユーザのアクションと関係とに割り当てられる重みに応じて、総合アフィニティは、ユーザの友達に関するコンテンツよりもユーザの配偶者に関するコンテンツに対して高いと決定されることができる。特定の実施形態においては、ユーザが他のオブジェクトに対して有する関係が、そのオブジェクトの係数を計算することに関して、ユーザのアクションの重みおよび／またはレーティングに影響することができる。限定ではなく、例として、ユーザが第１の写真でタグ付けされるが、第２の写真には「いいね！」を表明しただけの場合、コンテンツに対してタグ付けタイプの関係を有することは、コンテンツに対して「いいね！」表明タイプの関係をもつよりも、高い重みおよび／またはレーティングを割り当てられることができるので、ソーシャル・ネットワーキング・システム１６０は、ユーザが第２の写真よりも第１の写真に関して高い係数を有すると決定することができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１人または複数の第２のユーザが特定のオブジェクトに対して有する関係に基づいて、第１のユーザの係数を計算することができる。言い換えれば、他のユーザがオブジェクトに対して有するつながりおよび係数が、そのオブジェクトに関する第１のユーザの係数に影響することができる。限定ではなく、例として、第１のユーザが１人または複数の第２のユーザとつながりがあるかまたはそれに関する係数が高く、その第２のユーザが特定のオブジェクトとつながりがあるかまたはそれに関する係数が高い場合、ソーシャル・ネットワーキング・システム１６０は、第１のユーザもその特定のオブジェクトに関して比較的高い係数を有するはずだと決定することができる。特定の実施形態においては、係数は、特定のオブジェクト間の分離度に基づくことができる。係数が低いほど、ソーシャル・グラフ２００において第１のユーザと間接的につながりのあるユーザのコンテンツ・オブジェクトに対して、第１のユーザが関心を共有する見込みが低いことを表すことができる。限定ではなく、例として、ソーシャル・グラフ２００においてより近くにある（たとえば、分離度が小さい）ソーシャル・グラフ・エンティティ同士は、ソーシャル・グラフ２００でより離れたエンティティ同士よりも、高い係数を有することができる。
【００３５】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ロケーション情報に基づいて係数を計算することができる。互いに地理的により近くにあるオブジェクトは、より遠くにあるオブジェクトよりも、互いにより関係があるかまたはより関心があると考えることができる。特定の実施形態において、特定のオブジェクトに対するユーザの係数は、ユーザに関連付けられている現在のロケーション（またはユーザのクライアント・システム１３０のロケーション）とオブジェクトのロケーションとの近さに基づくことができる。第１のユーザは、第１のユーザのより近くにある他のユーザまたはコンセプトに、より関心を抱くかもしれない。限定ではなく、例として、ユーザが空港から１．６１ｋｍ（１マイル）、給油所から３．２２ｋｍ（２マイル）のところにいる場合、ソーシャル・ネットワーキング・システム１６０は、ユーザに対する空港の近さに基づいて、ユーザは給油所よりも空港に関する係数が高いと決定することができる。
【００３６】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、係数情報に基づいてユーザに関して特定のアクションを実行することができる。係数を使用して、ユーザが特定のアクションを行うかどうかを、ユーザのそのアクションへの関心に基づいて予測することができる。広告、検索結果、ニュース・ストーリ、メディア、メッセージ、通知、または他の適切なオブジェクトなど、任意のタイプのオブジェクトを生成するかまたはユーザに提示するときに、係数を使用することができる。係数はまた、該オブジェクトを、適切な場合、ランク付けまたは順位付けするために利用することができる。このように、ソーシャル・ネットワーキング・システム１６０は、ユーザの関心および現在の状況に関連する情報を提供することができるので、ユーザがそのように関心をもつ情報を見つける見込みが高まる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、係数情報に基づいてコンテンツを生成することができる。コンテンツ・オブジェクトは、ユーザに固有の係数に基づいて提供または選択されることができる。限定ではなく、例として、ユーザのためのメディアを生成するために係数を使用することができ、その場合、メディア・オブジェクトに関してユーザが高い総合的な係数を有するメディアをユーザに提示することができる。限定ではなく、別の例として、ユーザのための広告を生成するために係数を使用することができ、その場合、広告されるオブジェクトに関してユーザが高い総合的な係数を有する広告をユーザに提示することができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、係数情報に基づいて検索結果を生成することができる。特定のユーザのための検索結果は、クエリ・ユーザに関する検索結果に関連付けられている係数に基づいて、スコアまたはランク付けすることができる。限定ではなく、例として、より高い係数を有するオブジェクトに対応する検索結果は、より低い係数を有するオブジェクトに対応する結果よりも、検索結果のページ上で高いランク付けをすることができる。
【００３７】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、特定のシステムまたはプロセスからの係数の要求に応答して、係数を計算することができる。ある所与の状況でユーザが取り得る（または対象になり得る）可能性の高いアクションを予測するために、任意のプロセスが、ユーザについての算出係数を要求することができる。要求は、係数を計算するために使用される様々な因子について使用する、１セットの重みも含むことができる。この要求は、オンライン・ソーシャル・ネットワーク上で実行しているプロセスから、サードパーティ・システム１７０（たとえば、ＡＰＩもしくは他の通信チャネルを経由して）から、または別の適切なシステムから来ることができる。要求に応答して、ソーシャル・ネットワーキング・システム１６０は係数を計算する（または、以前に計算されて記憶されている場合には、係数情報にアクセスする）ことができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、特定のプロセスに関するアフィニティを測定することができる。異なるプロセス（オンライン・ソーシャル・ネットワーク内および外の両方）が、特定のオブジェクトまたはオブジェクトのセットに関する係数を要求することができる。ソーシャル・ネットワーキング・システム１６０は、アフィニティの尺度を要求したその特定のプロセスに関連するアフィニティの尺度を提供することができる。このように、各プロセスは、プロセスがアフィニティの尺度を使用する異なる状況に合わせられたアフィニティの尺度を受け取る。
【００３８】
ソーシャル・グラフ・アフィニティおよびアフィニティ係数に関連して、特定の実施形態では、それぞれを本願明細書に援用する２００６年８月１１日に出願された米国特許出願第１１／５０３０９３号明細書、２０１０年１２月２２日に出願された米国特許出願第１２／９７７０２７号明細書、２０１０年１２月２３日に出願された米国特許出願第１２／９７８２６５号明細書、および２０１２年１０月１日に出願された米国特許出願第１３／６３２８６９号明細書に開示された１つまたは複数のシステム、コンポーネント、要素、機能、方法、動作、または工程を利用することができる。
【００３９】
特定の実施形態では、オンライン・ソーシャル・ネットワークのコンテンツ・オブジェクトのうちの１つまたは複数が、プライバシ設定に関連付けられ得る。オブジェクトに対するプライバシ設定（または「アクセス設定」）は、任意の適切な様式で、たとえば、オブジェクトに関連付けて、認可サーバ上のインデックスで、別の適切な様式で、または任意のそれらの組合せなどで、記憶され得る。オブジェクトのプライバシ設定は、オブジェクトまたはオブジェクトに関連付けられている特定の情報がオンライン・ソーシャル・ネットワークを使用してどのようにアクセス（たとえば、閲覧、または共有）され得るかを指定することができる。オブジェクトに対するプライバシ設定により、そのオブジェクトについて特定のユーザがアクセス、閲覧、または共有することが可能になる場合、オブジェクトは、そのユーザに対して「可視」であると説明され得る。一例として、限定としてではなく、オンライン・ソーシャル・ネットワークのユーザは、ユーザ・プロフィール・ページ上の職務経験情報にアクセスすることができるユーザのセットを識別する、ユーザ・プロフィール・ページに対するプライバシ設定を指定することができ、したがって、他のユーザがその情報にアクセスすることを排除することができる。特定の実施形態では、プライバシ設定は、オブジェクトに関連付けられている特定の情報についてアクセスを許可されるべきでないユーザの「ブロック・リスト（ｂｌｏｃｋｅｄ  ｌｉｓｔ）」を指定することができる。言い換えれば、ブロック・リストは、オブジェクトが可視にされない１つまたは複数のユーザまたはエンティティを指定することができる。一例として、限定としてではなく、ユーザは、ユーザに関連付けられているフォト・アルバムにアクセスできないユーザのセットを指定することができ、したがって、それらのユーザがフォト・アルバムにアクセスすることを排除する（それとともに、場合によっては、そのユーザのセットの範囲外の特定のユーザがフォト・アルバムにアクセスすることを可能にする）。特定の実施形態では、プライバシ設定が特定のソーシャル・グラフ要素に関連付けられてよい。ノードまたはエッジのようなソーシャル・グラフ要素のプライバシ設定は、ソーシャル・グラフ要素、ソーシャル・グラフ要素に関連付けられている情報、またはソーシャル・グラフ要素に関連付けられているコンテンツ・オブジェクトが、オンライン・ソーシャル・ネットワークを使用してどのようにアクセス可能とされ得るかを指定することができる。一例として、限定としてではなく、特定の写真に対応する特定のコンセプト・ノード２０４は、写真においてタグ付けされたユーザおよびその友達によってのみ写真がアクセスされてよいことを指定する、プライバシ設定を有することができる。特定の実施形態では、プライバシ設定は、ユーザのアクションをソーシャル・ネットワーキング・システム１６０によってログを記録させること、または他のシステム（たとえばサードパーティ・システム１７０）によって共有させることに関して、ユーザがオプト・インまたはオプト・アウトすることを可能にすることができる。特定の実施形態では、オブジェクトに関連付けられてい���プライバシ設定は、許可されるアクセスまたはアクセスの拒否の任意の適切な粒度を指定することができる。一例として、限定としてではなく、アクセス、またはアクセスの拒否は、特定のユーザ（たとえば、私のみ（ｏｎｌｙ  ｍｅ）、私のルームメイト、および私の上司）、特定の分離度の範囲内のユーザ（たとえば、友達（ｆｒｉｅｎｄｓ）、友達の友達（ｆｒｉｅｎｄｓ＿ｏｆ＿ｆｒｉｅｎｄｓ））、ユーザ・グループ（たとえば、ゲーム・クラブ、私の家族）、ユーザ・ネットワーク（たとえば、特定の雇用主の従業員、特定の大学の学生もしくは卒業生）、すべてのユーザ（「パブリック（ｐｕｂｌｉｃ）」）、ユーザ無し（「プライベート（ｐｒｉｖａｔｅ）」）、サードパーティ・システム１７０のユーザ、特定のアプリケーション（たとえば、サードパーティ・アプリケーション、外部ウェブサイト）、他の適切なユーザもしくはエンティティ、またはこれらの組合せに対して指定されてよい。本開示では特定のプライバシ設定を特定の様式で使用して説明しているが、本開示は任意の適切なプライバシ設定を任意の適切な様式で使用することを企図する。
【００４０】
特定の実施形態では、１つまたは複数の認可／プライバシ・サーバが、オンライン・ソーシャル・ネットワークに関連付けられているオブジェクトに対する１つまたは複数のプライバシ設定を実施するために使用されてよい。認可サーバは、ソーシャル・ネットワーキング・システム１６０の１つまたは複数のサーバ１６２であってよい。データ・ストア１６４に記憶された特定のオブジェクトを求めるユーザから（または他のエンティティ）の要求に応答して、ソーシャル・ネットワーキング・システム１６０は、データ・ストア１６４にオブジェクトを求める要求を送ることができる。要求は、要求に関連付けられているユーザを識別することができ、認可サーバが、オブジェクトに関連付けられているプライバシ設定に基づいて、ユーザがオブジェクトにアクセスすることを認可されることを決定した場合、そのユーザ（またはユーザのクライアント・システム１３０）にのみ送られることが可能である。要求しているユーザがオブジェクトにアクセスすることを認可されない場合、認可サーバは、要求されたオブジェクトがデータ・ストア１６４から取り出されるのを防止することができ、または要求されたオブジェクトがユーザに送られるのを防止することができる。検索クエリのコンテキストにおいて、クエリ・ユーザがオブジェクトを閲覧またはアクセスすることを認可されない場合、オブジェクトは単に検索結果として生成されることが可能である。言い換えれば、オブジェクトは、クエリ・ユーザに可視である可視性を有しなければならない。オブジェクトがユーザに可視でない可視性を有する場合、オブジェクトは検索結果から除外されることが可能である。特定の実施形態では、ソーシャル・グラフ要素に対するプライバシ設定は、いくつかのノードおよびエッジを有するプライバシ・グラフとして表され得るデータ構造で記憶されてよい。プライバシ・グラフは、特定のソーシャル・グラフ要素の互いに対する可視性を、互いに対するそれらのつながりに基づいて表すことができる。データ・ストア１６４に記憶された特定の情報をユーザが要求したとき、プライバシ・グラフに関して動的に（たとえばリアルタイムで）フィルタリングを行うことにより、ソーシャル・グラフ要素のアクセス・コントロールが、要求しているユーザまたはエンティティに対して検証され認証され得る。本開示ではプライバシ設定を特定の様式で実施することを説明しているが、本開示はプライバシ設定を任意の適切な様式で実施することを企図する。
【００４１】
特定の実施形態では、１つまたは複数のサーバ１６２は、プライバシ設定を実施する認可／プライバシ・サーバであってもよい。データ・ストア１６４に記憶された特定のオブジェクトを求めるユーザから（または他のエンティティ）の要求に応答して、ソーシャル・ネットワーキング・システム１６０は、データ・ストア１６４にオブジェクトを求める要求を送ることができる。要求は、要求に関連付けられているユーザを識別することができ、認可サーバが、オブジェクトに関連付けられているプライバシ設定に基づいて、ユーザがオブジェクトにアクセスすることを認可されることを決定した場合、そのユーザ（またはユーザのクライアント・システム１３０）にのみ送られることが可能である。要求しているユーザがオブジェクトにアクセスすることを認可されない場合、認可サーバは、要求されたオブジェクトがデータ・ストア１６４から取り出されるのを防止することができ、または要求されたオブジェクトがユーザに送られるのを防止することができる。検索クエリのコンテキストにおいて、クエリ・ユーザがオブジェクトをアクセスすることを認可されない場合、オブジェクトは単に検索結果として生成されることが可能である。言い換えれば、オブジェクトは、クエリ・ユーザに可視である可視性を有してもよい。オブジェクトがユーザに可視でない可視性を有する場合、オブジェクトは検索結果から除外されることが可能である。本開示ではプライバシ設定を特定の様式で実施することを説明しているが、本開示はプライバシ設定を任意の適切な様式で実施することを企図する。
【００４２】
特定の実施形態においては、以下に説明するシステムは、消費者／サプライヤ／小売業者／などに便益を与えることができる。特定の実施形態においては、システムは、潜在的には、ローカル（必ずしもクラウドではない）・ストレージを使用して、ホーム・モニタリングおよび家族との通信用に写真および／または動画を提供することができ、接続されている場合は、オンライン・システムに記憶されている写真および動画にアクセスすることができる。さらなる実施形態においては、システムは、ソーシャルＷｉ‐Ｆｉ通信ネットワークを提供することができ、そこで、システムは、ユーザの友達がログインの必要なく特定のＷｉＦｉ通信ネットワークに参加するのを認可することができる。さらなる実施形態においては、システムはロバストなプライバシ・コントロールを提供することができ、そこで、システムは、人々が理解でき、データ共有の便益を感じられ、同意を与えることができる状況で、人々がデータを（ソーシャル・ネットワーキング・システム／パートナー／サードパーティ・アプリケーションに）共有することを可能にすることができる。さらなる実施形態においては、システムは、誰が自宅にいて、特定の人がいつ出かけたかに関する情報を提供することができる。これは、近所の友達にも適用することができる。さらなる実施形態においては、システムは仮想セキュリティを提供することができ、それによってシステムはウイルス、マルウェア、フィッシング等に対する防護のために、ゲートウェイに定期的な更新を提供することができる。さらなる実施形態においては、システムは、任意のタイプの自宅のイベントに基づいて更新するために通知を使用し、また遠隔でサイレンをトリガし、および／または（たとえば、９１１をダイヤルして）救急サービスに連絡する能力も利用することができる。
【００４３】
自宅にいるユーザの注意力や労力を必要とする代わりに、以下に説明するシステムは、位置認識を提供し、複数の個人を識別し、ユーザのコマンドに応答するだけでなく、ユーザが自身の家を構成させ、適応させることができるようにする機械学習サポートを組み込むことができる。たとえば、システムは、カメラ、ドア・センサ、ドア・ロックおよびモーション・センサなどのセキュリティ関連デバイスの機能を使用し、構成し、自動化するための、よりシームレスな体験を提供することができる。
【００４４】
特定の実施形態においては、システムは、自宅をシームレスな無線体験に接続するためのオープンなプラットフォームを作成することができる。特定の実施形態においては、システムは、自宅およびその自宅と対話する家族の体験を改善するために、ソーシャル・ネットワークの重要な資産（たとえば、アイデンティティ、ソーシャル・グラフ、セキュリティ、またはオープンで手ごろな価格のリファレンス・デザインを推進する専門技術）を利用するソリューションを提供することができる。特定の実施形態においては、システムは、オープンなプラットフォームがインターネット・オブ・シングス（ＩｏＴ）デバイス・プロバイダをサポートし、それに価値を提供することを可能にすることができる。
【００４５】
図３は、１セットのデバイスを含むデバイス・クラウドを管理するための例示的アーキテクチャを示す。デバイス・クラウド内の１つまたは複数のコネクテッド・デバイス３０５は、デバイス・クラウド内の１つまたは複数の他のコネクテッド・デバイス３０５と通信し、制御する（能動的または自動的）ために使用することができる。以下に説明するように、デバイス・クラウド内の他のデバイス３０５を制御するために、制御デバイス３１５に制御インタフェースまたはアプリケーションを設けることができる。特定の実施形態においては、システム３００はいくつかのコネクテッド・デバイスまたは「スマート」デバイス３０５および制御デバイス３１５と通信状態にあるゲートウェイ（ＧＷ）デバイス３１０を含むことができる。特定の実施形態では、ゲートウェイ・デバイス３１０は特定の物理的なロケーションに常駐することができる。コネクテッド・デバイス３０５は、複雑な埋込型コンピューティング・デバイスから、スイッチ、単純なセンサまでのいずれも含むことができる。たとえば、図３に図示されるコネクテッド・デバイス３０５は、デスクトップ・コンピュータ、ラップトップ、冷蔵庫、ホーム・セキュリティ・システム、テレビ、自動車、および一眼レフ（ＳＬＲ：ｓｉｎｇｌｅ‐ｌｅｎｓ  ｒｅｆｌｅｘ）カメラを含む。
【００４６】
制御デバイス３１５は、ゲートウェイ・デバイス３１０および（ゲートウェイ・デバイス３１０によって）コネクテッド・デバイス３０５と対話するために、ユーザ・インタフェース（ＵＩ）を提示することができる（たとえば、インストールされた制御アプリケーション、ブラウザ、ショート・メッセージング・サービス（ＳＭＳ）・テキスティング・インタフェース、または制御デバイス３１５のオペレーティング・システムが提供するインタフェースによって。限定ではなく、例として、ユーザのスマートフォンまたはタブレット３１５は、たとえば、コネクテッド照明、冷暖房システム、ドア・ロック機構、またはセキュリティ・システムなど、デバイス・クラウドのコネクテッド・デバイス３０５にアクセスするかまたはそれを制御するためのユーザ・インタフェースを表示することができる。特定の実施形態においては、制御デバイス３１５はデバイス・クラウド内の特定の「制御可能な」デバイスについて、たとえば、閾値近接度内で感知されるもの、デバイスが遠隔制御のコマンドを受信し処理することのできる遠隔対話インタフェースを含むもの、ユーザがデバイスを制御する認可を与えられたもの、または利用できる（たとえば、電源が入れられた、ネットワークに接続されている、作動中、および／または遠隔制御に使用可能にされている）ものについての制御を提供することができる。特定の実施形態においては、制御デバイス３１５の制御アプリケーションはゲートウェイ・デバイス３１０のゲートウェイ・アプリケーションとインタフェースを取り、デバイス・クラウドのコネクテッド・デバイス３０５を制御し、それと対話する機能を提供することができる。特定の実施形態においては、制御デバイス３１５は、システム３００との主なユーザ体験（ＵＸ：ｕｓｅｒ  ｅｘｐｅｒｉｅｎｃｅ）ポイントとして作用する１つまたは複数のＵＩクライアント（たとえば、メッセージング・サービスまたは制御アプリケーション）、ソーシャル・ネットワーキング・アプリケーションまたは他のモバイル・アプリケーション（初期プロビジョニング、ＢＬＵＥＴＯＯＴＨ（登録商標）および位置検出、ならびに一般的に、メッセージング・アプリケーションができないあらゆる許可関連の任意のことに使用されるヘルパー・アプリケーション）を含むことができる。本明細書において、プロビジョニングとは、特定のシステム（たとえば、ゲートウェイベースのシステム３００）で使用するために、デバイス３０５を準備または構成するセットアップ・プロセスをいう。
【００４７】
システム３００は、優れたホーム・コネクティビティをすべてのＩｏＴデバイスにもたらすことができる（たとえば、製品としてのプラットフォーム）。本明細書において、制御アプリケーションとは、制御デバイス３１５にインストールされているブラウザベースのアプリケーションまたは別のアプリケーションをいう。特定の実施形態においては、制御アプリケーションは、ユーザがコネクテッド・デバイス３０５をプロビジョニングするために使用することができる。さらなる実施形態においては、制御アプリケーションは、特定のシナリオに基づいて固有のＵＸをユーザに提供することができる。特定の実施形態においては、制御デバイス３１５の制御アプリケーションは、システム３００のコネクテッド・デバイス３０５のリストの閲覧、コネクテッド・デバイス３０５の制御に関するルールのセットアップを可能にするか、またはコネクテッド・デバイス３０５から制御デバイス３１５のアプリケーション（たとえば、制御アプリケーション）にステータス更新をプッシュすることができる。
【００４８】
特定の実施形態においては、コネクテッド・デバイス３０５は、ＢＬＵＥＴＯＯＴＨ（登録商標）、ＮＦＣ、またはコネクテッド・デバイス３０５とゲートウェイ・デバイス３１０との間の任意の他の適切な形態の通信を使用してプロビジョニングすることができる。特定の実施形態においては、システム３００は、コネクテッド・デバイス３０５のいくつかの管理機能を提供することができる。限定ではなく、例として、本明細書で説明されるソーシャル・グラフまたはデバイス・グラフを活用して、家の中のまたは世界中の任意の場所の人とつながることができ（たとえば、ボイス・オーバー・インターネット・プロトコル（ＶＯＩＰ）、ビデオ通話）、また、着信の発信者識別写真をソーシャル・グラフから引き出すことも可能である（たとえば、ソーシャル・ネットワーキング・アプリケーションを電話の連絡先情報に同期させることができる）。特定の実施形態においては、システム３００は、ソーシャル・ネットワーキング・システム１６０、ソーシャル・ネットワーキング・システム１６０に関連付けられているソーシャル・グラフ、ソーシャル・ネットワーキング・システム１６０に関連付けられているデバイス・グラフ、ソーシャル・グラフ内の特定のアイデンティティ、ユーザに与えられた通知、および「オープン・プラットフォーム」アプローチを活用することができる。
【００４９】
特定の実施形態においては、システム３００は、たとえば、サーモスタット、通気口、照明の調光、ブラインド制御、選択的通電時間（自動車の充電、洗濯、食洗機）、またはホーム・モニタリング・システムなど、コネクテッド・デバイス３０５の制御を可能にすることができる。限定ではなく、例として、任意のコネクテッド・デバイス３０５からゲートウェイ・デバイス３１０を通じて接続されている任意の他のコネクテッド・デバイス３０５に、オーディオまたはビデオ・コンテンツをユニキャストまたはマルチキャストすることができる。特定の実施形態においては、以下に説明する自然言語処理（ＮＬＰ：ｎａｔｕｒａｌ  ｌａｎｇｕａｇｅ  ｐｒｏｃｅｓｓｉｎｇ）テクノロジーを活用し、ユーザがシステム３００の制御デバイス３０５を口頭でまたはテキストで制御できるようにすることができる。特定の実施形態において、システム３００はコネクテッド・デバイス３０５のセンサにより、自宅の温度、湿度、空気の質等を追跡し、問題が発見されたら警報を送信することができる。特定の実施形態においては、システム３００は、過去の挙動に基づいたルールの提案に使用するために、コネクテッド・デバイス３０５からイベント「フィード」を取り出し、コネクテッド・デバイス３０５に関してスマート・ホーム体験をパーソナライズすることができる。
【００５０】
特定の実施形態においては、システム３００は、家の中のディスプレイを備える各サーフェス（たとえば、コネクテッド・デバイス３０５）について、時刻に基づいて、最も関連のあるソーシャル・ネットワーキング・システム１６０またはサードパーティ１７０の情報またはストーリ（天候、誕生日、関連ニュース／公共コンテンツ、オファー／取引、広告等）を表示するかまたは「表に表す（ｓｕｒｆａｃｅ）」ことができる。限定ではなく、例として、任意の共有されるコンテンツを、ソーシャル・ネットワーキング・アプリケーション、ソーシャル・メディア写真共有アプリケーション、メッセージング・アプリケーションなどを通じて、家の中のコネクテッド・デバイス３０５のディスプレイの表に表すことができる。特定の実施形態においては、システム３００は、自動化されたショッピング体験を提供することができ、そこで、システムは購買および消費習慣を追跡して、消耗品の繰り返し購入の自動化を支援することができる。特定の実施形態においては、システム３００はユーザの購入決定にインサイトを与えることができる。自宅での活動およびその居住者の認識は、誰かが購入決定を具体的にどのようにするかに関して詳細なインサイトを提供することができる。購入決定を行ってデジタル広告の情報が実際の購入につながる（広告費ＲＯＩの測定に重要である）ときにユーザがたどるステップについてのより深い理解を得る際に、たとえば、自宅内の物理的なロケーション、使用するデバイス３０５、品物を見る家族構成員の人数、会話、閲覧間の時間等などの因子を感知し、使用することができる。
【００５１】
特定の実施形態においては、システム３００は、システム３００内で起こっている活動に基づいて、広告およびコンテンツを最適化する方法を提供することができる。たとえば、自宅内の現在の環境を把握することが、（ソーシャル・ネットワーキング・システム１６０または家庭内のメディア・コンテンツを通じて）より適切な消費コンテンツを家族構成員に提供するときにも、または広告を提示する最も適切なタイミングを決定するときにも役立つことができる。自宅内で無くなっている物または壊れた物を宣伝するような単純なことから、両親が忙しく動き回っていて子供に食事をさせてから寝かしつけるまでの間にしか通知をチェックできないときではなく、どちらかの親だけが熱心に見るテレビ番組の放送中に、ゆったりとニュース・フィードをスクロールしているときかっこいい自動車の宣伝を提示することまでを行う。
【００５２】
特定の実施形態においては、システム３００はゲートウェイ・デバイス３１０の機能を拡張して、中央ホーム・コンピュータおよびＩｏＴハブとして機能させることができる。さらなる実施形態においては、システム３００は、優れた品質での外部世界へのブロードバンド・アクセスと自宅内のコネクテッド・デバイス３０５間の通信とのために、重要なすべての有線および無線プロトコルのためのローカル・ストレージおよびサポートを提供することができる。さらなる実施形態においては、システムは、コネクテッド・サードパーティ・デバイスおよびブロードバンド・デバイス用の分析ツールを開発することができる。さらなる実施形態においては、システム３００は、オープン原則を確立し、標準プロトコル、汎用ハードウェア（ＨＷ）、オープンソース・オペレーティング・システム、オープンソースＡＰＩなどで稼働することができる。さらなる実施形態においては、システム３００は、ハードウェアおよびファームウェアの無線技術の潜在的な改良をハードウェア・ビルダにもたらすことができる。
【００５３】
このようなシステム・アーキテクチャを、所定の物理的空間（たとえば、家、オフィスビル、もしくは公園）内に存在するコネクテッド・デバイス３０５のために、または特定のユーザもしくはエンティティに関係する１セットのコネクテッド・デバイス３０５（たとえば、ユーザの自宅、自動車および小規模小売店にコネクテッド・デバイスがあるユーザに関連付けられているもの、または一群の建物のドア・ロックおよびアラーム・セキュリティ・システムを管理する不動産管理会社に属するもの）とともに使用することができる。この後者のシナリオでは、物理的なロケーションのそれぞれ（たとえば、家、自動車、および店舗）にそれ自体のゲートウェイ・デバイス３１０が必要であろう。
【００５４】
ゲートウェイ・デバイス３１０はバックエンド・システム３２０とインタフェースを取ることができ、そのバックエンド・システム３２０はリモート・サーバまたはサーバ群にホストされることができる。バックエンド・システム３２０は、メッセージング・インフラストラクチャ３２５（たとえば、制御デバイス３１５と通信するため）と、バックエンド・システム３２０の要素とゲートウェイ・デバイス３１０（および／または制御デバイス３１５および／または直接コネクテッド・デバイス３０５）とのインタフェースを取るための統合層３３０（たとえば、ＰＡＲＳＥなど、多種多様なコネクテッド・デバイス３０５とインタフェースを取るためのプラットフォームおよび／またはアプリケーション・プログラミング・インタフェース（ＡＰＩ））とを含むことができる。バックエンド・システム３２０は、ゲートウェイ・デバイス３１０および各コネクテッド・デバイス・デバイス３０５から受信したデータ、ならびにそれから派生したデータを含め、デバイス・イベントのデータ・ストア３３２を維持することができる。バックエンド・システム３２０は、以下に説明する１つまたは複数のデバイス・グラフについて、データ・ストア３３４も維持することができ、そこで、ゲートウェイ・デバイス３１０およびコネクテッド・デバイス３０５のそれぞれをデバイス・ノードによって表すことができ、デバイス・エッジがデバイス・ノードをつなげる。バックエンド・システム３２０は、デバイス・イベントを処理して分析し、デバイス・グラフを更新し、コネクテッド・デバイス３０５および／または制御デバイス３１５にフィードバックおよび／または命令を提供するための、デバイス・グラフ・インテリジェンス・インフラストラクチャ３３５を含むことができる。バックエンド・システム３２０は、ソーシャル・ネットワーキング・システム１６０とも通信することができる。特定の実施形態においては、一定の機能は、ゲートウェイ・デバイス３１０、バックエンド・システム３２０、またはその組合せによって提供されることができる。
【００５５】
特定の実施形態においては、ゲートウェイ・デバイス３１０は、必要な機能をサポートすることのできる任意のコンピューティング・デバイスを参照してスマート／コネクテッド・デバイス３０５のローカル・ネットワーク制御を容易にし、クラウドで稼働することができるサービスのローカル・ゲートウェイとして機能する。本明細書において、サービスとは、特定のソフトウェアの機能、または１セットの特定のソフトウェアの機能（たとえば、特定の動作の実行）をいう。特定の実施形態においては、サービスは、ユーザとの通信を促進することができる。特定の実施形態においては、システム３００およびユーザは、自然言語を使用して通信することができる（これは、その後、以下で説明するように構文解析することができる）。特定の実施形態においては、ユーザは、メッセージング・アプリケーションを使用して、ゲートウェイ・デバイス３１０および／または（ゲートウェイ・デバイス３１０によって）コネクテッド・デバイス３０５のいずれかと通信することができる。
【００５６】
特定の実施形態において、ゲートウェイ・デバイス３１０は、プロセッサ、近距離ネットワーキング機能、および本明細書で説明される機能の一部または全部を実行する能力を備える任意のコンピューティング・デバイスを含むことができる。限定ではなく、例として、ゲートウェイ・デバイス３１０は、標準コンピューティング・デバイスまたはサーバとＵＳＢ電源ケーブル、マイクロ・セキュア・デジタル（ＳＤ）カードおよびマイクロＳＤカードを挿入した標準ＳＤカード・アダプタ、ＷｉＦｉドングル、ＢＬＵＥＴＯＯＴＨ（登録商標）ドングル、ＨＤＭＩ（登録商標）ケーブルとモニタ、またはＺＷＡＶＥドングルに基づくことができる。特定の実施形態においては、ＨＤＭＩ（登録商標）ケーブルをゲートウェイ・デバイス３１０に差し込んで、特定の工程の出力を見ることができるが、出力を見ることが要求されるわけではない。特定の実施形態においては、ＨＤＭＩ（登録商標）ケーブル／モニタを、ゲートウェイ・デバイス３１０に差し込むことのできるＵＳＢシリアル・ケーブルの代わりに使用することができる。特定の実施形態においては、様々なホーム制御デバイスに対して専用のハブは必要なくてもよい。特定の実施形態においては、ゲートウェイ・デバイス３１０のプロビジョニングは、ブルートゥース（登録商標）・ロー・エナジー（ＢＴＬＥ：ＢＬＵＥＴＯＯＴＨ（登録商標）ｌｏｗ  ｅｎｅｒｇｙ）を使用して行うことができる。
【００５７】
特定の実施形態において、ゲートウェイ・デバイス３１０は、ユーザのホーム・ネットワークに接続されているローカル・ゲートウェイ・デバイス３１０で稼働するゲートウェイ・アプリケーションを含むことができる。特定の実施形態において、ゲートウェイ・デバイス３１０（たとえば、ＲＡＳＰＩＡＮ  ＬＩＮＵＸ（登録商標）を稼働し、ＷｉＦｉ、ＢＬＵＥＴＯＯＴＨ（登録商標）、ＺＷＡＶＥおよびＺＩＧＢＥＥ（登録商標）ドングルをサポートするＲＡＳＰＢＥＲＲＹ  ＰＩプラットフォームに基づく）は、上記説明したゲートウェイ・アプリケーションをホストするために使用することができる。特定の実施形態においては、ゲートウェイ・アプリケーションは限られた数のデバイスによってサポートされることができ、特に、複数のベンダ（たとえば、ＰＨＩＬＬＩＰＳ  ＨＵＥ、ＢＥＬＫＩＮ  ＷＥＭＯ  ＷｉＦｉスイッチ、ＺＩＧＢＥＥ（登録商標）またはＺＷＡＶＥスマート・スイッチ）の２つ以上のコネクテッド照明のサポート検出およびプロビジョニング、１つまたは複数のあらかじめプロビジョニングされているスマート・ロック（たとえば、ＬＯＣＫＩＴＲＯＮ、ＡＵＧＵＳＴ）の制御、コンテンツ（たとえば、音楽および／または動画）の制御と複数のデバイス３０５（たとえば、ＷｉＦｉ接続されたスピーカ、スマートＴＶ、またはゲートウェイ・デバイス３１０自体）へのストリーミング（たとえば、高精細度マルチメディア・インタフェース（ＨＤＭＩ（登録商標））ポート経由）であるが、これだけに限らない。
【００５８】
ゲートウェイ・アプリケーションの責任は、「物理的」レベルでの様々なスマート／コネクテッド・デバイス３０５の理解と取り扱いからなることができ、限定ではないが、ＢＬＵＥＴＯＯＴＨ（登録商標）、ＺＩＧＢＥＥ（登録商標）、ＺＷＡＶＥ、Ｗｉ‐Ｆｉ（アクセスポイントおよび直接）上でのコネクテッド・デバイス３０５の検出とプロビジョニング、デバイス・タイプおよびデバイスＩＤへの物理的デバイスのマッピング、利用できる機能へのデバイス・タイプのマッピング、「垂直」で同じ機能またはタイプを有するデバイス３０５のグループ化／関連付け（たとえば、「照明」または「ドア・ロック」）、様々な業界プロトコル（たとえば、ＡＬＬＪＯＹＮ、ＴＨＲＥＡＤ、ＷＥＡＶＥ、またはＺＩＧＢＥＥ（登録商標））の理解のサポート、バックエンド・システム３２０から渡される特定のユーザの意思（たとえば、固有のデバイスＩＤに関連付けられているもの）のコマンド・メッセージへの翻訳（たとえば、「デバイスＩＤ  ＸＸＸ  オン」はゲートウェイ・デバイス３１０によって「ＰＨＩＬＬＩＰＳ  ＨｕｅデバイスＩＤ  ＸＸＸを点灯」に翻訳することができる）、特定のデバイスの通知を、バックエンド・システム３２０によって解釈できる論理的な通知に翻訳すること（たとえば、「Ａｕｇｕｓｔ  ＳｍａｒｔＬｏｃｋデバイスＩＤ  ＸＸＸ  解錠」は、ゲートウェイ・デバイス３１０によって「デバイスＩＤ  ＸＸＸ  解錠」に翻訳されることができる）を含む。特定の実施形態においては、ゲートウェイ・デバイス３１０は、物理的デバイスと論理的デバイスとの間のマッピングをある程度行う一方で、ゲートウェイ・デバイス３１０は、メッセージをマシン可読構造化フォーマットに変換することができる。特定の実施形態では、ユーザは、特定のデバイス３０５を明示的にグループ化することができ、または、特定のデバイス３０５は、１つまたは複数の基準に基づいて暗黙的にグループ化されることができる（たとえば、機能、ロケーション、過去の対話、またはデバイス３０５を表すノードとユーザを表すノードとの間のデバイス・グラフのつながり、もしくはデバイス・エッジ）。
【００５９】
特定の実施形態においては、ユーザがログインされたら、ゲートウェイ・アプリケーションは定期的なＢＴスキャンを実行して、コネクテッド・デバイス３０５を検知することができる。さらなる実施形態においては、不明な近くのコネクテッド・デバイス３０５について、システム３００は、エコー特性をテストしてコネクテッド・デバイス３０５がパスワード保護されているかどうかをチェックし、コネクテッド・デバイス３０５に関する通知をユーザに提示し、ユーザが通知をクリックする場合、ユーザがコネクテッド・デバイス３０５をシステム３００に追加したいかどうかを尋ね、コネクテッド・デバイス３０５がパスワード保護されている場合、ユーザにパスワードを尋ね、パスワード保護されていない場合、コネクテッド・デバイス３０５をシステム３００に追加することができる。
【００６０】
特定の実施形態においては、既知の近くのコネクテッド・デバイス３０５について、システム３００は、デバイス３０５がシステム３００に接続されている場合、コネクテッド・デバイス３０５のステータスをキャッシュし、エコー特性でキャッシュされたパスワードをテストし、パスワードが変更されたら、ユーザに通知を提示し、コネクテッド・デバイス３０５がシステム３００に接続されていない場合、ユーザに通知を提示し、ユーザがいずれかの通知をクリックする場合、ＷｉＦｉクレデンシャルのパスワードを尋ねることができる。特定の実施形態においては、これらの機能のすべてをゲートウェイ・アプリケーションのデバイス明細スクリーンで行う。さらなる実施形態においては、デバイス明細スクリーンは、コネクテッド・デバイス３０５の名称を変更するか、コネクテッド・デバイス３０５のパスワードを設定／変更するか、コネクテッド・デバイス３０５のＷｉＦｉを明示的に切断／更新するか、またはコネクテッド・デバイス３０５でサポートされる任意のコマンドを実行することができる。
【００６１】
特定の実施形態においては、バックエンド・システム３２０は、ゲートウェイ・デバイス３１０と通信状態にあるクラウドで稼働するアプリケーション／サービスを含むことができる。また、バックエンド・システム３２０は、メッセージング・アプリケーションおよびＮＬＰシステムとの統合、ユーザの意思の、特定の論理デバイスの制御意思への翻訳（たとえば、ＮＬＰおよび実行コンテキスト・アウェアネスを使用して）、複数のコネクテッド・デバイス３０５に関わる複雑な挙動ルールを推測する機械学習（ＭＬ：ｍａｃｈｉｎｅ  ｌｅａｒｎｉｎｇ）を処理することができる。特定の実施形態においては、バックエンド・システム３２０は、ゲートウェイ・デバイス３１０によってコネクテッド・デバイス３０５の個々のものとのみインタフェースを取ることができる。特定の実施形態においては、バックエンド・システム３２０は、論理デバイス（たとえば、「照明」対「ＰＨＩＬＬＩＰＳ  ＨＵＥ」）、ユーザによって割り当てられたエイリアス（たとえば、「玄関ポーチの照明」）、およびデバイス・グループ（たとえば、「全照明」）を処理することができる。特定の実施形態においては、バックエンド・システム３２０は、デバイス３０５のユーザ・エイリアスを、ゲートウェイ・デバイス３１０によって提供される各デバイス３０５の論理ＩＤにマッピングすることができる。限定ではなく、例として、ユーザ名「玄関ポーチの照明」は、前述した特定のデバイスＩＤに関連付けることができる）。別の例として、「水平」またはロケーション（たとえば、「居間」または「玄関ドア」）に従ったデバイス３０５のグループ化／関連付けのエイリアスを、各デバイスＩＤにマッピングすることができる。
【００６２】
特定の実施形態においては、バックエンド・システム３２０は、各デバイス３０５のデバイス機能を人または自然言語による入出力コマンドにマッピングすることができる。限定ではなく、例として、ユーザからの特定の意思は、デバイスＩＤベースのアクションに翻訳されることができる（たとえば、玄関ポーチの照明を点灯）は、バックエンド・システム３２０によって「デバイスＩＤ  ＸＸＸ  オン」に翻訳されることができる）。逆に、デバイス通知は、バックエンド・システム３２０によって人が読めるまたは自然言語フォーマットに翻訳されることができる（たとえば、「デバイスＩＤ  ＸＸＸ  解錠」は、バックエンド・システム３２０によって「玄関ドア解錠」に翻訳されることができる）。特定の実施形態においては、デバイス３０５のこれらの自然言語制御および通知は、制御デバイス３１５で実行されるメッセージング・アプリケーションから行われる。バックエンド・システム３２０は、マルチデバイス命令を作成して実行することができる（たとえば、「玄関ドアが解錠されたら、玄関ポーチの照明を点灯する」）。
【００６３】
特定の実施形態においては、コンテキスト・アウェアでコマンドを解釈できるように、バックエンド・システム３２０は、以下説明するデバイス・グラフにアクセスする論理を含んで、ユーザＩＤ（アクションを行いたいユーザに対応する）および／またはユーザ・ロケーション情報（たとえば、モバイル・セルラー・ネットワークの基地局ＩＤ、ＷｉＦｉジオロケーション、表示されるサービス・セット識別子（ＳＳＩＤ：ｓｅｒｖｉｃｅ‐ｓｅｔ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、またはＧＰＳ座標による強局在、のような信号に基づく）を識別することができる。たとえば、ユーザは、複数の場所（たとえば、本宅、週末用マンション、別宅）に関連付けられているゲートウェイ・デバイス３１０に関連付けられるかもしれないが、その場合、ユーザ・ロケーション情報は、特定のコマンドが適用されるべき特定のデバイス３０５を決定することができる。
【００６４】
ロケーション決定手法は、オープン・スペースでクライアント・システム（たとえば、制御デバイス３１５）のロケーションを決定するのに最も効果的であるかもしれないが、たとえば、ショッピングモールや映画館などの建物内のロケーションを決定するのは難しい。特定の実施形態においては、クライアント・システムのロケーションは、屋内ポジショニング・システムの一部であるＢＴＬＥビーコンを使用して決定することができる。限定ではなく、例として、クライアント・システムのロケーション・サービスは、クライアント・システムが特定の建物の近くにあると決定することができるが、クライアント・システムが建物内にあるか、または建物の外にあるかを決定するためには、店舗内に位置するＢＴＬＥビーコンを使用してクライアント・システムのロケーションの確度を高めることができる。
【００６５】
ＢＴＬＥビーコンは、所定の時間間隔で「近接信号」を送信するよう設定されて構成される。ＢＬＥビーコンは、ユニバーサリ・ユニーク・アイデンティファイア（ＵＵＩＤ：ｕｎｉｖｅｒｓａｌｌｙ  ｕｎｉｑｕｅ  ｉｄｅｎｔｉｆｉｅｒ）ならびにメジャー・コードおよびマイナー・コードを送信する。ＵＵＩＤは、共通のグループのビーコン（たとえば、特定の店舗に関連付けられているもの）を識別するために使用し、メジャー・コードおよびマイナー・コードは、ビーコンを物理的空間の所与のロケーションまた領域に一意に関連付けるために使用することができ、近くの任意の適切な装備をされたデバイス（モバイル・デバイスなど）がそれを検知できるようにする。クライアント・システムで実行されるアプリケーションは、建物内のＢＴＬＥビーコンからの近接信号を処理することができ、ソーシャル・ネットワーキング・システム１６０は、近接信号に符号化された情報に基づいて、クライアント・システムが建物の内部にあると決定することができる。限定ではなく、例として、ＢＴＬＥビーコンを装備した自宅は、制御デバイス３１５が、現在、ビーコンを装備した家の居間に位置しているのか、または台所に位置しているのかを区別することができる。本開示は、室内ロケーション決定の特定の方法を説明しているが、本開示は、たとえば、室内Ｗｉ‐Ｆｉルータ追跡など、室内ロケーション決定の任意の適切な方法を企図する。
【００６６】
特定の実施形態においては、ゲートウェイ・デバイス３１０で稼働するハブ・プロセスは、（ａ）統合層３３０からプッシュをリッスンする、（ｂ）受信したプッシュ・データを（たとえば、標準出力に）書き込むことができる。特定の実施形態においては、ハブ・プロセスはＣ言語で書き込まれることができる。特定の実施形態においては、ルール・ランタイム・インタプリタは、ローカルに記憶されているルールを読み、ハブ・プロセスをスポーン（ｓｐａｗｎ）し、ハブ・プロセスの出力を監視するＪＡＶＡＳＣＲＩＰＴ（登録商標）アプリケーションを含むことができ、（ａ）統合層３３０から受信されるプッシュされたデータを構文解析し、（ｂ）構文解析された情報に基づいて、ルールを更新すること、新規ルールをローカルに記憶すること、デバイス制御を実行すること、クエリを実行すること、デバイス３０５を検出すること、ルールを構文解析すること、ルールによって示されるトリガ（時刻またはセンサ）を待つこと、トリガ時にイベントを実行すること、デバイス制御を実行すること、ローカル・ネットワークを通じてルールのトリガをすることが可能なローカル・ウェブサーバを実行すること、のうちの１つまたは複数を行う。
【００６７】
特定の実施形態においては、コネクテッド・デバイス３０５をシステム３００に追加することは（たとえば、ペアリング・プロセスを手動でトリガするか、または自動検出されたコネクテッド・デバイス３０５に関する通知を与えられることにより）、デバイス３０５に固有のクラウド・デバイスＩＤを生成すること、デバイスＩＤによって識別されるコネクテッド・デバイス３０５のクラウド・オブジェクトを作成し、ゲートウェイ・デバイス３１０のクラウド・オブジェクトに関連付けること、クラウド・デバイスＩＤをゲートウェイ・デバイス３１０に追加すること（クラウドはこのＩＤを使用してデバイス３０５を参照する）、デバイス３０５の基本データまたは特徴をクラウドに追加すること、既知のコネクテッド・デバイス３０５のプロトタイプを含むテーブルのエントリにデバイス３０５を関連付けること、タグからコネクテッド・デバイス３０５にメタデータを追加することを含むことができ、タグは、関連付けられているタイプと価値を有し、ゲートウェイ・デバイス３１０のコンテキスト内にある。
【００６８】
特定の実施形態においては、ゲートウェイ・アプリケーションは、コネクテッド・デバイス３０６と、ユーザがデバイス・クラウドのコネクテッド・デバイス３０５を制御するためにインタフェースを取るバックエンド・システム３２０との間に位置する。したがって、ゲートウェイ・アプリケーションは、バックエンド・システム３２０から送信されるコマンド・メッセージを受信して、コマンド・メッセージを、コネクテッド・デバイス３０５を制御するための命令に変換する。
【００６９】
特定の実施形態においては、コネクテッド・デバイス３０５を制御する命令は、バックエンド・システム３２０の統合層３３０からコネクテッド・デバイス３０５に「プッシュ」することができる。限定ではなく、例として、命令は、制御デバイス３１５に関連付けられているアプリケーションＩＤ（たとえば、デバイスＩＤ）を含むことができる。特定の実施形態においては、命令は、特定のコネクテッド・デバイス３０５、コネクテッド・デバイス３０５のグループ化、またはデバイス・クラウドのすべてのコネクテッド・デバイス３０５に命令を向けるためのフラグまたは変数を含むことができる。前述したように、各コネクテッド・デバイス３０５について固有識別子が生成され、統合層３３０のデータ・テーブルに記憶することができる。特定の実施形態においては、コネクテッド・デバイス３０５にプッシュされる命令は、たとえば、ルール、検出、クエリ、制御または更新などの機能に対応することができる。
【００７０】
限定ではなく、例として、ルール機能は、特定の条件に従ってコネクテッド・デバイス３０５が実行する１セットの命令である。例示的な条件は、デバイスベースの条件または時間ベースの条件を含むことができる。これらの条件は、デバイス３０５がそれぞれ、一定の状態に入るか、または設定された時刻もしくは曜日になると、命令を実行することができる。特定の実施形態においては、デバイス・クラウド（たとえば、自宅内）は、対応するインスタンスをクラウド内に有することができる。各デバイス・アクション（たとえば、制御命令、デバイスの警報等）は記録されて、デバイス・クラウド・インスタンスのメッセージング・キューに送られる。ルールは制御命令を有することができ、それは、タイミングに基づくかまたは別の条件によってトリガされるコネクテッド・デバイス３０５が実行することができる。特定のデバイス・クラウド・インスタンスは、デバイス・アクション・メッセージング・キューを消化するためのルール実行エンジンを有して、ルールを実行することができる。特定の実施形態においては、ルールは一連のコマンドとして実施することができる。
【００７１】
特定の実施形態においては、検出命令は、現在ゲートウェイ・デバイス３１０に接続されているコネクテッド・デバイス３０５のリストを返す。特定の実施形態においては、クエリ命令は、１つまたは複数のコネクテッド・デバイス３０５の現在のステータスを返す。限定ではなく、例として、クエリ命令は、コネクテッド・デバイス３０５のデバイス識別子およびコネクテッド・デバイス３０５に関連付けられているタイプを含むことができる。特定の実施形態においては、制御命令はゲートウェイ・デバイス３１０に、制御命令とともに含まれている１つまたは複数の構成パラメータまたは設定に基づいて、指定のコネクテッド・デバイス３０５の現在の状態を変更させる。構成設定は、制御されるデバイス３０５のタイプに固有とすることができる。限定ではなく、例として、コネクテッド電球の構成設定は、電源オン、電源オフ、明るさ、色調を含むことができる。別の例として、コネクテッド音楽プレーヤの構成設定は、音量設定、電源オン、電源オフ、または再生する特定のコンテンツもしくはプレイリストを含むことができる。
【００７２】
特定の実施形態において、システム３００の要素は、システム３００とインタフェースを取るアプリケーションにアクセス・プロフィールを提供するためのＡＰＩを含むことができ、たとえば、ゲートウェイ・デバイス３１０、その自宅のすべてのデバイスをインタフェース接続してローカル・アクセスおよびオフライン体験を提供する自宅内の中央エンティティ、バックエンド・システム３２０、メッセージング・アプリケーションから自然言語で自宅を制御すること、デバイス・クラウドを管理するモバイル・アプリもしくはブラウザベースの管理インタフェース（いずれも制御デバイス３１５で稼働する）がある。
【００７３】
前述したように、ユーザは、ユーザのデバイス・クラウドの１つまたは複数のコネクテッド・デバイス３０５を制御、管理または起動するために、制御アプリケーションを通じて通信することができる。制御デバイス３１５は、ゲートウェイ・デバイス３１０のゲートウェイ・アプリケーションを通じてコネクテッド・デバイス３０５と対話することができる。特定の実施形態においては、制御アプリケーションの機能をメッセージング・アプリケーションに組み込んで、メッセージング・アプリケーションが、他のユーザとのメッセージング・アプリケーション、および、デバイス・クラウドのコネクテッド・デバイス３０５と対話するための制御アプリケーション、の両方の役割を果たすようにすることができる。限定ではなく、例として、メッセージング・アプリケーションは、通信ネットワーク（たとえば、Ｗｉ‐Ｆｉまたはセルラー・データ・ネットワーク）により２つ以上のクライアント・システム間でリアルタイムのテキスト伝送を提供する。特定の実施形態においては、クライアント・システム間のテキスト伝送は、特定の「チャット」（たとえば、ＭＱテレメトリー・トランスポート（ＭＱＴＴ））プロトコルまたはＳＭＳプロトコル）を使用して行うことができる。さらに、メッセージング・アプリケーションは、ファイル転送、クリックできるハイパーリンク、ＶＯＩＰ通話、またはビデオチャット機能もサポートすることができる。
【００７４】
特定の実施形態においては、ユーザは、制御アプリケーション（たとえば、メッセージング・アプリケーション）を使用して、コネクテッド・デバイス３０５をクエリ、プログラミングまたは管理する能力を有することができる。特定の実施形態においては、人間のような知能または人工知能をメッセージング・アプリケーション内に実装し、ユーザが自然言語のコマンド・メッセージを使用してユーザのコネクテッド・デバイス３０５を制御、管理または起動できるようにすることができる。特定の実施形態においては、メッセージング・アプリケーションによって送信されるコマンド・メッセージは、音声転写メッセージとすることができる。限定ではなく、例として、ユーザは、制御デバイス３１５のマイクロフォンに向かって「自宅のデバイスを一覧表示」と話すと、メッセージング・アプリケーションは、音声転写を使用してコマンド・メッセージを生成し、対応するコマンド・メッセージをメッセージング・インフラストラクチャ３２５に送信することができる。統合層３３０は、自然言語のコマンド・メッセージに対応する命令をゲートウェイ・デバイス３１０に送信することができる。特定の実施形態においては、バックエンド・システム３２０は、以前に使用したコネクテッド・デバイス３０５から実行コンテキストを構築して、どのコネクテッド・デバイス３０５と対話するべきかを暗黙的に推測する能力を有する。限定ではなく、例として、命令の実行コンテキストは、時刻、場所、コマンド、コマンドが実行された頻度、またはコマンドが行われるべき回数に対応することができる。別の例として、実行コンテキストを決定することは、ユーザの認可レベルを決定すること、コネクテッド・デバイス３０５のために構成された許可またはプライバシ設定を決定すること、ユーザの対話履歴を決定すること、またはユーザの現在のロケーションを決定することを含むことができる。
【００７５】
特定の実施形態においては、メッセージング・アプリケーションは、ＮＬＰを通じて、コネクテッド・デバイス３０５のコンテキスト内で、ユーザ間の人間の自然言語のチャットまたはメッセージングを理解する能力を有する。特定の実施形態においては、コマンド・メッセージをソーシャル・ネットワーキング・システム１６０に送信して、コマンド・メッセージのテキストを構文解析して、１つまたは複数のｎ‐ｇｒａｍを識別することができる。一般に、ｎ‐ｇｒａｍは、コマンド・メッセージ内のテキストの所与のシーケンスからのｎ個のアイテムの連続したシーケンスである。限定ではなく、例として、アイテムは、コマンド・メッセージを作り上げるテキストのシーケンスからの、文字（ｃｈａｒａｃｔｅｒ）、音素、音節、文字（ｌｅｔｔｅｒ）、単語、塩基対、プレフィックス、または他の識別可能なアイテムにすることができる。ｎ‐ｇｒａｍは、メッセージング・アプリケーションのＵＩから入力されたテキストの１つまたは複数の文字（ｃｈａｒａｃｔｅｒ）（文字（ｌｅｔｔｅｒ）、数字、句読点など）を含むことができる。特定の実施形態では、各ｎ‐ｇｒａｍはコマンド・メッセージの文字（ｃｈａｒａｃｔｅｒ）列（たとえば、テキストの１つまたは複数の文字（ｃｈａｒａｃｔｅｒ））を含むことができる。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、以下に説明するように、データ・ストア３３４に記憶されているデバイス・グラフのノードと識別されたｎ‐ｇｒａｍとのマッチングを行うことのできるバックエンド・システム３２０のデバイス・グラフ・インテリジェンス・インフラストラクチャ３３５に、識別されたｎ‐ｇｒａｍを返すことができる。
【００７６】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、識別されたｎ‐ｇｒａｍに一致する名称、タイプ、カテゴリまたは他の識別子をバックエンド・システム３２０に返すことができる。ＮＬＰプロセスは１つまたは複数のマッチング・アルゴリズムを使用して、識別されたｎ‐ｇｒａｍに一致する、コマンド（たとえば、制御もしくはクエリ）、デバイスＩＤ、またはロケーション名の識別を試みることができる。１つまたは複数の一致が見つかると、ＮＬＰは特定のコネクテッド・デバイス３０５またはコネクテッド・デバイス３０５のグループに対応する名称（名称文字列）、ならびに、潜在的には、関連付けられている他のメタデータを、デバイス・グラフ・インテリジェンス・インフラストラクチャ３３５に送信することができる。
【００７７】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は識別されたｎ‐ｇｒａｍをバックエンド・システム３２０に返すことができる。特定の実施形態においては、デバイス・グラフ・インテリジェンス・インフラストラクチャ３３５は、特定のコネクテッド・デバイス３０５、水平に沿ったコネクテッド・デバイス３０５のグループ化／関連付け（たとえば、「居間」もしくは「玄関ドア」）、または「垂直」のコネクテッド・デバイス３０５のグループ化／関連付け（たとえば、「照明」もしくは「ドア・ロック」）のエイリアスと、識別されたｎ‐ｇｒａｍとのマッチングを行うことができる。特定の実施形態においては、デバイス・グラフ・インテリジェンス・インフラストラクチャ３３５は、識別されたｎ‐ｇｒａｍと特定のロケーション（たとえば、居間または裏庭）のエイリアスとのマッチングを行うことができる。
【００７８】
特定の実施形態においては、デバイス・グラフ・インテリジェンス・インフラストラクチャ３３５は、デバイス・イベント・データ・ストア３３２に記憶されているコネクテッド・デバイス３０５との過去の対話と、識別されたｎ‐ｇｒａｍとのマッチングを行うことができる。限定ではなく、例として、コネクテッド照明を点灯するようユーザが命令すると（メッセージング・アプリケーション上でのテキストまたは音声メッセージングにより）、バックエンド・システム３２０は、特定のコネクテッド照明に明示的に向ける必要なく、どのコネクテッド照明を点灯するべきかを推測することができる。特定の実施形態においては、この推測は、デバイス・イベント・データ・ストア３３２に記憶されているコネクテッド・デバイス３０５との過去の対話と、ユーザの現在のロケーションとに基づくことができる。限定ではなく、例として、バックエンド・システム３２０は、デバイス・イベント・データ・ストア３３２に記憶されている過去の対話に基づいて、過去にはユーザが台所にいるときは台所の照明を点灯するよう命令したと決定することができる。別の例として、デバイス・グラフ・インテリジェンス・インフラストラクチャ３３５は、メッセージング・インフラストラクチャ３２５がユーザに台所の照明の点灯に関する通知を送信することに基づいて、照明の消灯に関するユーザからのその後のコマンド・メッセージが、最近点灯した台所の照明に言及していると推測することができる。
【００７９】
特定の実施形態においては、実行コンテキストに基づいて、統合層３３０は、メッセージング・インフラストラクチャ３２５から受信したコマンド・メッセージを、ゲートウェイ・デバイス３１０に送信する命令に変換することができる。限定ではなく、例として、コマンド・メッセージ「玄関ポーチの照明を点灯」は、ユーザの現在のロケーションが玄関ポーチの近くであり、ユーザがこの同じ玄関ポーチの照明を以前に点灯したという実行コンテキストに基づいて（デバイス・イベント・データ・ストア３３２から）、命令「デバイスＩＤ  ＸＸＸ  オン」に変換することができる。別の例として、コマンド・メッセージ「午後６時に温度を華氏７５度（約摂氏２４度）に設定」は、ユーザが以前にサーモスタットの電源を入れたという実行コンテキストに基づいて（たとえば、デバイス・イベント・データ・ストア３３２から）、「デバイスＩＤ  ＸＸＸ  制御温度＝７５  時刻＝１８：００」という命令に変換することができる。
【００８０】
前述したように、統合層３３０は、コネクテッド・デバイス３０５からデバイス・メッセージも受信して、デバイス・メッセージを、メッセージング・インフラストラクチャ３２５を通じて制御デバイス３１５に送信される自然言語メッセージに変換することができる。限定ではなく、例として、デバイス・メッセージは、ユーザ・クエリに応答したステータス更新、コマンド・メッセージを明確にするための追加情報の要求、ユーザを認証する要求、コマンド・メッセージに対して肯定応答をするかもしくは命令の完了を確認するメッセージ、命令が実行できないことを述べるメッセージ、またはコネクテッド・デバイス３０５の１つまたは複数に関する警報を含むことができる。
【００８１】
図４は、例示的デバイス・グラフ４００を示す。特定の実施形態においては、バックエンド・システム３２０は、１つまたは複数のデバイス・グラフ４００をデバイス・グラフ・データ・ストア３２４に記憶することができる。特定の実施形態においては、デバイス・グラフ４００はソーシャル・ネットワーキング・システム１６０のソーシャル・グラフ２００に統合されてもよい。デバイス・グラフ４００はソーシャル・グラフ２００と同様にすることができ、複数のユーザ・ノード２０２（それぞれ、特定のユーザに対応する）または複数のデバイス・ノード４０４（それぞれ、特定のデバイスに対応する）、および複数のエッジ（たとえば、２０６または「デバイス」エッジ４０６を含む）を含むことができる。限定ではなく、例として、ユーザの自宅に配置されている各コネクテッド・デバイス３０５は、デバイス・グラフ４００のノード４０４によって表すことができる。特定の実施形態においては、ユーザが特定のコネクテッド・デバイス３０５にコマンドを送信したこと、またはこれと対話したことに基づいて、デバイス・エッジ４０６は、特定のコネクテッド・デバイス３０５に対応するノードを、ユーザに対応するノード２０２につなげる。特定の実施形態においては、デバイス・グラフ４００は、図２に関して説明したように、ユーザ間の関係を表すノード２０２のペア間にエッジ２０６を含むことができる。
【００８２】
特定の実施形態においては、デバイス・ノード４０４は、コネクテッド・デバイスまたはスマート・デバイス３０５に対応することができる。前述したように、コネクテッド・デバイスまたはスマート・デバイス３０５は、デスクトップ・コンピュータ、ラップトップ、ヘッド・マウント・ディスプレイ（ＨＭＤ）、コネクテッド・サーモスタット、冷蔵庫、ホーム・セキュリティ・システム、コネクテッド照明スイッチ、コネクテッド電球、コネクテッド・ドア・ロック、メディア・サーバ、テレビ、自動車、ネットワーク・ルータ、ウェブ対応カメラ、一眼レフ（ＳＬＲ）カメラ、別の適切なデバイス、または２つ以上のこれらのデバイスに対応することができる。デバイス・ノード４０４は、ユーザが提供するコンセプトの情報、またはソーシャル・ネットワーキング・システム１６０を含む様々なシステムによって収集された情報に関連付けることができる。限定ではなく、例として、コネクテッド・デバイス３０５の情報は、名称もしくはデバイスＩＤ、デバイスのタイプ、デバイスの機能、ロケーション（たとえば、アドレスもしくは地理的ロケーション）、所有するユーザもしくはエンティティ、所有者により割り当てられるデバイスのエイリアス、他の適切なデバイス情報、または該情報の任意の適切な組合せを含むことができる。特定の実施形態においては、デバイス・ノード４０４は、デバイス・ノード４０４に関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けることができる。
【００８３】
特定の実施形態においては、「デバイス」エッジ４０６の１つまたは複数は、デバイス・ノード４０４によって表されるデバイス３０５に関連付けられているアクションまたは設定に対応する。特定の実施形態においては、ユーザ・ノード２０２とデバイス・ノード４０４との間のデバイス・エッジ４０６は、ユーザ・ノード２０２に関連付けられているユーザがデバイス・ノード４０４に関連付けられているデバイス３０５に対して行う特定のアクションまたは活動を表すことができる。限定ではなく、例として、図４に図示するように、ユーザはデバイス３０５の「施錠」、「解錠」、「構成」、「ログオン」、または「電源オン」をすることができ、そのそれぞれがデバイス・エッジのタイプまたはサブタイプに対応することができる。別の例として、ユーザ（ユーザ「Ｆ」）は特定のメッセージング・アプリケーションを使用して、特定のデバイス（「自動車」）に対して構成を行うことができる。この場合、ソーシャル・ネットワーキング・システム１６０は、ユーザに対応するユーザ・ノード２０２と自動車に対応するデバイス・ノード４０４との間に「構成」エッジ４０６（図４に図示する通り）を作成することができる。本開示は、ユーザ・ノード２０２とデバイス・ノード４０４とをつなげる特定の属性を有する特定のデバイス・エッジ４０６を説明しているが、本開示は、ユーザ・ノード２０２とコンセプト・ノード２０４とをつなげる任意の適切な属性を有する任意の適切なエッジ２０６を企図する。さらに、本開示は、ユーザ・ノード２０２とデバイス・ノード４０４との間の１つのタイプの関係または対話を表すデバイス・エッジを説明しているが、本開示は、ユーザ・ノード２０２とデバイス・ノード４０４との間の１つまたは複数のタイプの関係または対話を表すデバイス・エッジを企図する。限定ではなく、例として、デバイス・エッジ４０６は、ユーザが特定のコネクテッド・ドア・ロックを「施錠した」および「解錠した」ことの両方を表すことができる。あるいは、別のデバイス・エッジ４０６は、ユーザ・ノード２０２と特定のデバイス・ノード４０４との間の各タイプの関係（またはいくつかの１つの関係）を表すことができる（図４で、ユーザ「Ｂ」を表すユーザ・ノード２０２と「玄関ドア」を表すデバイス・ノード４０４との間に図示されるとおり）。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、デバイス・グラフ４００を修正または更新して、新規ユーザが初めて特定のコネクテッド・デバイス３０５と対話するか、または特定のコネクテッド・デバイス３０５にコマンドを送信することに基づいて、特定のデバイスに対応するノード４０４を新規ユーザに対応するノードにつなげる、新たなデバイス・エッジ４０６を作成することができる。特定の実施形態においては、特定のユーザが前述したように初めて新たなデバイス３０５をゲートウェイ・デバイス３１０に接続するときに、新たなデバイス・ノード４０４およびデバイス・エッジ４０６が作成されて、特定のユーザ・ノード２０２につなげることができる。限定ではなく、例として、デバイス・グラフ４００は、他のユーザ（たとえば、非所有者）を表すノードをユーザのデバイスにつなげるか、またはユーザのデバイス（たとえば、デスクトップ・コンピュータ）と他のコネクテッド・デバイス（たとえば、スマート・サーモスタット）との間をつなげるデバイス・エッジ４０６を含むことができる。
【００８４】
特定の実施形態においては、システム３００に関連付けられている様々なオブジェクト・タイプは、デバイス・グラフ４００のデバイス・ノード４０４によって、またはデバイス・ノード４０４の属性として表すことができる。限定ではなく、例として、デバイス・ノード４０４（またはデバイス・ノード４０４の属性）は、コネクテッド・デバイス３０５、コネクテッド・デバイス３０５のグループ、ゲートウェイ・デバイス３１０、ゾーン（たとえば、水平）、または１セットのデバイス機能に関連付けることができる。特定の実施形態においては、異なるデバイスの関連付けは、デバイス・グラフ４００ではデバイス・エッジ４０６として表すことができる。限定ではなく、例として、デバイス・エッジ４０６はコネクテッド・デバイス３０５とゲートウェイ・デバイス３１０との関連付け、ユーザとゲートウェイ・デバイス３１０との関連付け、各コネクテッド・デバイス３０５に関する許可が各デバイス・エッジ４０６に関連付けられている属性である可能性がある場合には、ユーザとコネクテッド・デバイス３０５との関連付け、コネクテッド・デバイス３０５とコネクテッド・デバイスのグループ（たとえば、垂直）、またはコネクテッド・デバイス３０５とデバイス機能セットとの関連付けを表すことができる。
【００８５】
特定の実施形態においては、上記説明したＮＬＰは、識別されたｎ‐ｇｒａｍと一致するそれぞれの名称、タイプ、カテゴリまたは他の識別子を有する既存のデバイス・グラフの要素を識別する検索を行うか、または行わせることができる。また、デバイス・グラフ・インテリジェンス・インフラストラクチャ３３５は、１つまたは複数のマッチング・アルゴリズムを使用して、メッセージング・アプリケーションが送信した構文解析済みのコマンド・メッセージのｎ‐ｇｒａｍに一致するユーザ・ノード２０２、デバイス・ノード４０４またはデバイス・エッジ４０６の識別を試みることができる。１つまたは複数の一致が見つかると、デバイス・グラフ・インテリジェンス・インフラストラクチャ３３５は、たとえば、一致するノード（たとえば、ユーザ２０２またはデバイス４０４）の名称（名称文字列）、および潜在的には、一致するノードに関連付けられている他のメタデータを含む情報を引き出すことができる。
【００８６】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０またはバックエンド・システム３２０は、前述したソーシャル・グラフ・アフィニティと同様なデバイス・アフィニティ係数（本明細書では「デバイス係数」ということもある）を使用して、「デバイス」アフィニティを測定または定量化することができる。デバイス係数は、コネクテッド・デバイス３０５に関連付けられている特定のオブジェクトとコネクテッド・デバイス３０５のユーザとの間の関係の強度を表現または定量化することができる。特定の実施形態においては、多様な因子を使用して、デバイス係数を計算することができる。これらの因子には、たとえば、ユーザ・アクション、オブジェクト間の関係のタイプ、ロケーション情報、他の適切な因子、またはその任意の組合せを含むことができる。特定の実施形態においては、デバイス係数を計算するときには、異なる係数に異なる重みを付けることができる。各因子の重みは静的であってもよく、または、たとえば、ユーザ、関係のタイプ、アクションのタイプ、ユーザのロケーションなどに従って、重みを変えてもよい。特定の実施形態においては、デバイス係数を計算するために使用される様々な因子の重みを決定するとき、たとえば、特定のユーザが特定のコネクテッド・デバイス３０５と対話してからの時間、減衰因子、対話の頻度、情報との関係もしくは情報がアクセスされたコネクテッド・デバイス３０５との関係、コネクテッド・デバイス３０５につながるデバイス・グラフ・エンティティとの関係、ユーザ・デバイスの対話の短期的もしくは長期的な平均、他の適切な変数、またはその任意の組合せなど、様々な変数を考慮することができる。前述したように、デバイス係数は、特定の対話が提供する信号の強度を時間の経過とともに減衰させる減衰因子を含めることができ、係数を計算するときに、より最近の対話をより関連があるようにする。レーティングおよび重みは、デバイス係数が基づく対話の継続的な追跡に基づいて、継続的に更新することができる。各因子のレーティングおよび因子に割り当てられる重みの、割当て、組合せ、平均化などのために、任意のタイプのプロセスまたはアルゴリズムを採用することができる。特定の実施形態においては、デバイス係数は、履歴アクションまたは過去のユーザの対話を基に訓練される、機械学習アルゴリズムを使用して決定することができる。本開示は、デバイス係数を特定の様式で計算することを説明しているが、本開示は、任意の適切な様式でデバイス係数を計算することを企図する。
【００８７】
特定の実施形態においては、デバイス係数は、１つまたは複数のコネクテッド・デバイス３０５とのユーザの対話に基づいて計算することができる。限定ではなく、例として、ユーザが特定の「玄関ドア」と頻繁な対話を行う場合、ユーザはその特定の「玄関ドア」に関して高いデバイス係数を有すると決定することができる。特定のデバイス対話または対話のタイプには、他のデバイス対話よりも高い重みおよび／またはレーティングを割り当てることができ、それにより、算出される総合的なデバイス係数に影響することができる。限定ではなく、例として、第１のユーザが「サーモスタット」を「構成する」（たとえば、温度を設定する）場合、その特定の対話の重みまたはレーティングは、第１のユーザが単に「サーモスタット」の「電源をオンする」場合よりも高くすることができる。特定の実施形態においては、デバイス係数は、特定のデバイス・グラフ・オブジェクト（たとえば、デバイス・ノード）間の分離度に基づくことができる。特定の実施形態においては、デバイス係数は、特定のデバイスにつながる特定のユーザ間の関係のタイプに基づいて計算することができる。
【００８８】
図５は、コネクテッド・デバイスを制御するための例示的方法を示す。方法５００は工程５１０から始まり、コンピュータ・サーバ・マシンが、ユーザに関連付けられているクライアント・デバイスからコマンド・メッセージを受信することができる。特定の実施形態においては、コマンド・メッセージは、メッセージング・アプリケーションから送信される。工程５２０で、コンピュータ・サーバ・マシンはコマンド・メッセージを構文解析する。特定の実施形態においては、構文解析は、コマンド・メッセージの１つまたは複数のｎ‐ｇｒａｍを識別する。特定の実施形態においては、工程５２０で、コンピュータ・サーバ・マシンはデバイス・グラフにアクセスする。特定の実施形態においては、デバイス・グラフは、ユーザを表す少なくとも１つのノードと、コネクテッド・デバイスの各個をそれぞれが表す１つまたは複数のノードとを含む。工程５３０で、コンピュータ・サーバ・マシンは、構文解析したコマンド・メッセージに基づいて、複数のコネクテッド・デバイスのうちの１つまたは複数を識別する。特定の実施形態においては、複数のコネクテッド・デバイスのうちの１つまたは複数を識別するコンピュータ・サーバ・マシンは、識別されたｎ‐ｇｒａｍのうちの１つまたは複数が、コネクテッド・デバイスのそれぞれを表すノードのうちの１つまたは複数に一致することに少なくとも部分的に基づく。工程５４０で、コンピュータ・サーバ・マシンは、構文解析したコマンド・メッセージに基づいて、識別されたコネクテッド・デバイスのための１つまたは複数の命令を決定する。工程５５０で、コンピュータ・サーバ・マシンは、識別されたコネクテッド・デバイスに命令を提供する。特定の実施形態においては、工程５５５で、コンピュータ・サーバ・マシンは、デバイス・グラフを更新する。特定の実施形態においては、コンピュータ・サーバ・マシンは、デバイス・グラフを更新して、ユーザを表すノードを、それぞれの識別されたコネクテッド・デバイスをそれぞれ表す１つまたは複数のノードにつながるエッジを追加する。特定の実施形態は、適切な場合、図５の方法の１つまたは複数の工程を繰り返すことができる。本開示は、図５の方法の特定の工程が特定の順序で発生するように説明し、示しているが、本開示は、図５の方法の任意の適切な工程が任意の適切な順序で発生することを企図する。さらに、本開示は、図５の方法の特定の工程を含め、コネクテッド・デバイスを制御するための例示的方法を説明し、示しているが、本開示は、任意の適切な工程を含め、適切な場合、図５の方法の工程のうちの全部、一部を含んでもよく、または含まなくてもよく、コネクテッド・デバイスを制御するための任意の適切な方法を企図する。また、本開示は、特定のコンポーネント、デバイス、または図５の方法の特定の工程を行うシステムを説明し、示しているが、本開示は、任意の適切なコンポーネント、デバイス、または図５の方法の任意の適切な工程を行うシステムの任意の適切な組合せを企図する。
【００８９】
特定の実施形態において、システム３００は、デバイス・グラフでユーザ役割設定（ユーザ、コマンドまたはロケーションベース）の構成を提供することができる（たとえば、許可モデルは、完全制御のための管理者の役割または許可が制限された限定ユーザ役割の構成を可能にすることができる）。たとえば、ユーザは、ホームオフィスで働いている間にユーザが現在楽しんでいる音楽を、（ステレオ・システムが置かれている居間で遊んでいる）子供に変更してほしくないかもしれない。
【００９０】
ゲートウェイ・デバイス３１０は、１名のユーザを有することができ、他のユーザは、１つまたは複数のコネクテッド・デバイス３０５を制御するための認証を受けることができる。特定の実施形態においては、ユーザ（たとえば、所有者）は、メッセージング・アプリケーションを使用して送信されるコマンド・メッセージにより、１つまたは複数の他のユーザ（たとえば、友達または家族構成員）にコネクテッド・デバイス３０５への一時的なアクセスを提供することができ、そのためメッセージング・アプリケーションが認可のグループ・フレームワークとして作用する。限定ではなく、例として、１つまたは複数のコネクテッド・デバイス３０５へのアクセスおよび認可は、他のユーザをメッセージング・チャット・セッションに追加することにより、別のユーザに提供することができる。前述したように、自然言語のコマンド・メッセージは、メッセージング・アプリケーションを通じて送信することができる。限定ではなく、例として、ユーザは自然言語のコマンド・メッセージ「ユーザ『Ｂ』に玄関ドアへのキーアクセスを与える」を入力することができる。特定の実施形態においては、バックエンド・システム３２０は、認可プロセスの一部として、ユーザがメッセージング・アプリでユーザ「Ｂ」をグループ・チャットに追加することを要求することができる。特定の実施形態においては、バックエンド・システム３２０は、前述した、所定の閾値を満たすソーシャル・グラフ係数を有するユーザが２名いる（たとえば、ユーザとユーザ「Ｂ」）と決定することができる。この場合、ユーザ（たとえば、ユーザ「Ｂ」）は、コネクテッド・デバイス３０５（たとえば、玄関ドア）への一時的なアクセスを認められることができる。限定ではなく、例として、統合層３３０は、メッセージング・アプリケーションを通じて他のユーザ（たとえば、ユーザ「Ｂ」）のクライアント・システムに一時的なドア開放トークンを送信することができ、したがって、友達がユーザの近所にいる場合、その友達はユーザの家に立ち寄って、自由に玄関ドアを入ることができる。
【００９１】
特定の実施形態においては、所定の閾値は、前述した、所定の閾値を満たす、他のユーザ（たとえば、ユーザ「Ｂ」）と特定のコネクテッド・デバイス３０５（たとえば、玄関ドア）との間のデバイス係数に基づくことができる。限定ではなく、例として、ユーザ「Ｂ」は、ユーザ「Ｂ」が玄関ドアに関して高いデバイス係数を有すること（たとえば、玄関ドアとの頻繁な対話）に基づいて、玄関ドアへのアクセスを一時的に認可されることができる。特定の実施形態においては、特定のコネクテッド・デバイス３０５に対するユーザの認可レベルは、アフィニティ／ソーシャル・グラフ、グループのメンバーであること、プロフィール・データ、または技能認定に基づくことができる。特定の実施形態においては、ハブ・プロセスへのバックエンド接続は、トークンのユーザのチャネル認可にすることができる（たとえば、トークンの送信者は、共有するべき許可をもつ必要がある）。特定の実施形態においては、他のユーザがコネクテッド・デバイス３０５と対話すると、コネクテッド・デバイス３０５のステータスを示すメッセージをユーザに送信することができる。
【００９２】
別の例として、システム３００は、一時的なＷｉ‐Ｆｉネットワークを設定し、その後、制限時間が経過した後にその一時的なＷｉ‐Ｆｉネットワークを削除することによって、通信ネットワーク（たとえば、Ｗｉ‐Ｆｉ）への時間制限付きアクセスを付与することができる。別の例として、帯域外メカニズムを通じて（たとえば、メッセージング・アプリケーションを通じて送信されるイベント招待またはプッシュ通知により）一時的なＷｉ‐Ｆｉ  ＳＳＩＤをブロードキャストすることができ、それにより、特定のユーザがＷｉ‐Ｆｉの近接内に到着すると、または特定のロケーションに到着すると（たとえば、ＳＳＩＤが非表示の場合）、自動的な接続を可能にする。特定の実施形態においては、システムは、個人情報の転送を可能にすることができる。さらなる実施形態においては、システムは、ユーザ認証トークンを含むことができる。さらなる実施形態においては、ユーザ・トークンでインターネットに接続されると、識別されたアカウント情報がデバイスによってフェッチされることができる。特定の実施形態においては、ユーザは、氏名、プロフィール名、Ｅメール、電話番号、または身内の者によって認証されることができるが、これだけに限定されない。さらなる実施形態においては、情報は、ＷｉＦｉネットワーク、ＢＬＵＥＴＯＯＴＨ（登録商標）  ＭＡＣ、または他の関連ＩｏＴデバイスによって転送されることができる。
【００９３】
特定の実施形態においては、関連付けられている１つまたは複数のコネクテッド・デバイス３０５のアクセスまたは制御は、メッセージング・アプリケーションによって一時的に提供されることができる。限定ではなく、例として、招待されたユーザがイベントの場所に来ると、イベントＷｉ‐Ｆｉネットワークに参加するための通知を受信することができる。ユーザが同意すると、ユーザはイベントＷｉ‐Ｆｉネットワークに自動的に移行されることができる。たとえば、音楽サーバなど、イベントに関連付けられているコネクテッド・デバイス３０５は、イベント参加者の全体的な嗜好や好みに基づいて編集されるプレイリストを有することができる。メッセージング・アプリケーションにグループ・チャットが自動的に作成されることができるので、ユーザは、音楽／写真の明示的な要求を行うことができる。ユーザがグループ・チャットに写真を投稿すると、その写真は、イベントで表示されるスクリーンベースのコネクテッド・デバイス３０５に転送される。特定の実施形態においては、上記用途の場合、イベントから選別参加者までの流れは、グループ・チャットで実施されることができる。さらに、メッセージング・アプリケーションは、通知用のＵＩを提供して、新たなＷｉＦＩネットワークに転送し、ユーザのソーシャル・ネットワーキング活動（たとえば、「いいね！」を表明する）に基づいてプレイリストを生成し、（音楽プレーヤと統合するべき）音楽をストリーミングし、コネクテッド・スクリーンに表示するためにグループ・チャット・フォトをリダイレクトする。
【００９４】
図６は、コネクテッド・デバイスにアクセスするための例示的方法を示す。方法６００は工程６１０から始まり、コンピュータ・サーバ・マシンは、自然言語メッセージを受信することができる。特定の実施形態においては、自然言語メッセージは、第２のユーザに関連付けられているいくつかのコネクテッド・デバイスのうちの１つまたは複数への第１のユーザによるアクセスを認可する認可要求を含む。工程６２０で、コンピュータ・サーバ・マシンは自然言語メッセージを構文解析する。特定の実施形態においては、工程６２５で、コンピュータ・サーバ・マシンは、構文解析された自然言語メッセージのいくつかのｎ‐ｇｒａｍを識別することができる。工程６３０で、コンピュータ・サーバ・マシンは、構文解析された自然言語メッセージに基づいて、第１のユーザおよび１つまたは複数のコネクテッド・デバイスを識別する。特定の実施形態においては、コネクテッド・デバイスを識別することは、ｎ‐ｇｒａｍに基づきコネクテッド・デバイスの識別子を識別することを含む。工程６４０で、コンピュータ・サーバ・マシンは、第１のユーザが、識別されたコネクテッド・デバイスへのアクセスを認可されると暗黙的に決定する。特定の実施形態においては、認可は、ソーシャル・グラフにおける第１のユーザを表すノードと、ソーシャル・グラフにおける第２のユーザを表すノードとの間の関係の算出された強度が所定の閾値を満たすことに基づいて暗黙的に決定される。工程６５０で、コンピュータ・サーバ・マシンは、暗黙的な認可に基づいて、識別されたコネクテッド・デバイスへのアクセスを提供する。特定の実施形態においては、アクセスは、所定の時間量の間提供される。特定の実施形態においては、工程６５５で、コンピュータ・サーバ・マシンは、第１のユーザに関連付けられているクライアント・デバイスから、識別されたコネクテッド・デバイスに関するコマンド・メッセージを受信する。特定の実施形態は、適切な場合、図６の方法の１つまたは複数の工程を繰り返すことができる。本開示は、図６の方法の特定の工程が特定の順序で発生すると説明し、示しているが、本開示は、図６の方法の任意の適切な工程が任意の適切な順序で発生することを企図する。さらに、本開示は、図６の方法の特定の工程を含め、コネクテッド・デバイスへのアクセスを提供するための例示的方法を説明し、示しているが、本開示は、任意の適切な工程を含め、適切な場合、図６の方法の工程のうちの全部、一部を含んでもよく、または含まなくてもよく、コネクテッド・デバイスへのアクセスを提供するための任意の適切な方法を企図する。また、本開示は、特定のコンポーネント、デバイス、または図６の方法の特定の工程を行うシステムを説明し、示しているが、本開示は、任意の適切なコンポーネント、デバイス、または図６の方法の任意の適切な工程を行うシステムの任意の適切な組合せを企図する。
【００９５】
図７は、例示的なコンピュータ・システム７００を示している。特定の実施形態においては、１つまたは複数のコンピュータ・システム７００が、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を実行する。特定の実施形態においては、１つまたは複数のコンピュータ・システム７００が、本明細書において記述されているまたは示されている機能を提供する。特定の実施形態においては、１つまたは複数のコンピュータ・システム７００上で稼働するソフトウェアが、本明細書において記述されているもしくは示されている１つもしくは複数の方法の１つもしくは複数の工程を実行し、または本明細書において記述されているもしくは示されている機能を提供する。特定の実施形態は、１つまたは複数のコンピュータ・システム７００の１つまたは複数の部分を含む。本明細書においては、コンピュータ・システムへの言及は、適切な場合には、コンピューティング・デバイスを包含することができる。その上、コンピュータ・システムへの言及は、適切な場合には、１つまたは複数のコンピュータ・システムを包含することができる。
本開示は、任意の適切な数のコンピュータ・システム７００を想定している。本開示は、任意の適切な物理的な形態を取るコンピュータ・システム７００を想定している。限定ではなく、例として、コンピュータ・システム７００は、組み込みコンピュータ・システム、システムオンチップ（ＳＯＣ）、シングルボード・コンピュータ・システム（ＳＢＣ）（たとえば、コンピュータオンモジュール（ＣＯＭ）もしくはシステムオンモジュール（ＳＯＭＹ）など）、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話キオスク、メインフレーム、コンピュータ・システムのメッシュ、モバイル電話、携帯情報端末（ＰＤＡ）、サーバ、タブレット・コンピュータ・システム、強化された／仮想現実デバイス、またはこれらのうちの複数の組合せであることが可能である。適切な場合には、コンピュータ・システム７００は、１つもしくは複数のコンピュータ・システム７００を含むこと、単一型もしくは分散型であること、複数のロケーションにわたること、複数のマシンにわたること、複数のデータセンターにわたること、または、クラウド（１つもしくは複数のネットワーク内の１つもしくは複数のクラウド・コンポーネントを含むことができる）内に常駐することが可能である。適切な場合には、１つまたは複数のコンピュータ・システム７００は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を、実質的な空間上のまたは時間上の制限を伴わずに実行することができる。限定ではなく、例として、１つまたは複数のコンピュータ・システム７００は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程をリアルタイムで、またはバッチ・モードで実行することができる。１つまたは複数のコンピュータ・システム７００は、適切な場合には、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を別々の時点で、または別々のロケーションで実行することができる。
【００９６】
特定の実施形態においては、コンピュータ・システム７００は、プロセッサ７０２、メモリ７０４、ストレージ７０６、入力／出力（Ｉ／Ｏ）インタフェース７０８、通信インタフェース７１０、およびバス７１２を含む。本開示は、特定の数の特定のコンポーネントを特定の構成で有する特定のコンピュータ・システムについて記述し、示しているが、本開示は、任意の適切な数の任意の適切なコンポーネントを任意の適切な構成で有する任意の適切なコンピュータ・システムを想定している。
【００９７】
特定の実施形態においては、プロセッサ７０２は、コンピュータ・プログラムを構成している命令などの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ７０２は、内部レジスタ、内部キャッシュ、メモリ７０４、またはストレージ７０６から命令を取り出し（またはフェッチし）、それらの命令をデコードして実行し、次いで、１つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ７０４、またはストレージ７０６に書き込むことができる。特定の実施形態においては、プロセッサ７０２は、データ、命令、またはアドレスのための１つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ７０２を想定している。限定ではなく、例として、プロセッサ７０２は、１つまたは複数の命令キャッシュ、１つまたは複数のデータ・キャッシュ、および１つまたは複数の変換ルックアサイド・バッファ（ＴＬＢ）を含むことができる。命令キャッシュ内の命令は、メモリ７０４またはストレージ７０６内の命令のコピーであることが可能であり、命令キャッシュは、プロセッサ７０２によるそれらの命令の取り出しをスピードアップすることができる。データ・キャッシュ内のデータは、プロセッサ７０２において実行される命令が機能する際に基づくメモリ７０４もしくはストレージ７０６内のデータのコピー、プロセッサ７０２において実行される後続の命令によるアクセスのための、もしくはメモリ７０４もしくはストレージ７０６への書き込みのためのプロセッサ７０２において実行された以前の命令の結果、またはその他の適切なデータであることが可能である。データ・キャッシュは、プロセッサ７０２による読み取りオペレーションまたは書き込みオペレーションをスピードアップすることができる。ＴＬＢは、プロセッサ７０２のための仮想アドレス変換をスピードアップすることができる。特定の実施形態においては、プロセッサ７０２は、データ、命令、またはアドレスのための１つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ７０２を想定している。適切な場合には、プロセッサ７０２は、１つまたは複数の演算ロジック・ユニット（ＡＬＵ）を含むこと、マルチコア・プロセッサであること、または１つもしくは複数のプロセッサ７０２を含むことが可能である。本開示は、特定のプロセッサについて記述し、示しているが、本開示は、任意の適切なプロセッサを想定している。
【００９８】
特定の実施形態においては、メモリ７０４は、プロセッサ７０２が実行するための命令、またはプロセッサ７０２が機能する際に基づくデータを記憶するためのメイン・メモリを含む。限定ではなく、例として、コンピュータ・システム７００は、命令をストレージ７０６または別のソース（たとえば、別のコンピュータ・システム７００など）からメモリ７０４にロードすることができる。次いでプロセッサ７０２は、命令をメモリ７０４から内部レジスタまたは内部キャッシュにロードすることができる。命令を実行するために、プロセッサ７０２は、命令を内部レジスタまたは内部キャッシュから取り出し、それらの命令をデコードすることができる。命令の実行中または実行後に、プロセッサ７０２は、１つまたは複数の結果（それらは、中間の結果または最終的な結果である場合がある）を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ７０２は、それらの結果のうちの１つまたは複数をメモリ７０４に書き込むことができる。特定の実施形態においては、プロセッサ７０２は、（ストレージ７０６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ７０４内の命令のみを実行し、（ストレージ７０６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ７０４内のデータ上でのみ機能する。１つまたは複数のメモリ・バス（それらは各々、アドレス・バスおよびデータ・バスを含むことができる）は、プロセッサ７０２をメモリ７０４に結合することができる。バス７１２は、以降で記述されているような１つまたは複数のメモリ・バスを含むことができる。特定の実施形態においては、１つまたは複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ７０２とメモリ７０４との間に常駐し、プロセッサ７０２によって要求されるメモリ７０４へのアクセスを容易にする。特定の実施形態においては、メモリ７０４は、ランダム・アクセス・メモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合には、揮発性メモリであることが可能である。適切な場合には、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であることが可能である。その上、適切な場合には、このＲＡＭは、シングルポートＲＡＭまたはマルチポートＲＡＭであることが可能である。本開示は、任意の適切なＲＡＭを想定している。メモリ７０４は、適切な場合には、１つまたは複数のメモリ７０４を含むことができる。本開示は、特定のメモリについて記述し、示しているが、本開示は、任意の適切なメモリを想定している。
【００９９】
特定の実施形態においては、ストレージ７０６は、データまたは命令のためのマス・ストレージを含む。限定ではなく、例として、ストレージ７０６は、ハード・ディスク・ドライブ（ＨＤＤ）、フロッピー（登録商標）ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、またはこれらのうちの複数の組合せを含むことができる。ストレージ７０６は、適切な場合には、取り外し可能なまたは取り外し不能な（すなわち、固定された）媒体を含むことができる。ストレージ７０６は、適切な場合には、コンピュータ・システム７００の内部または外部に存在することが可能である。特定の実施形態においては、ストレージ７０６は、不揮発性のソリッドステート・メモリである。特定の実施形態においては、ストレージ７０６は、読み取り専用メモリ（ＲＯＭ）を含む。適切な場合には、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書替え可能ＲＯＭ（ＥＡＲＯＭ）、またはフラッシュ・メモリ、またはこれらのうちの複数の組合せであることが可能である。本開示は、任意の適切な物理的な形態を取るマス・ストレージ７０６を想定している。ストレージ７０６は、適切な場合には、プロセッサ７０２とストレージ７０６との間における通信を容易にする１つまたは複数のストレージ・コントロール・ユニットを含むことができる。適切な場合には、ストレージ７０６は、１つまたは複数のストレージ７０６を含むことができる。本開示は、特定のストレージについて記述し、示しているが、本開示は、任意の適切なストレージを想定している。
【０１００】
特定の実施形態においては、Ｉ／Ｏインタフェース７０８は、コンピュータ・システム７００と１つまたは複数のＩ／Ｏデバイスとの間における通信のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム７００は、適切な場合には、これらのＩ／Ｏデバイスのうちの１つまたは複数を含むことができる。これらのＩ／Ｏデバイスのうちの１つまたは複数は、人とコンピュータ・システム７００との間における通信を可能にすることができる。限定ではなく、例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、映像カメラ、別の適切なＩ／Ｏデバイス、またはこれらのうちの複数の組合せを含むことができる。Ｉ／Ｏデバイスは、１つまたは複数のセンサを含むことができる。本開示は、任意の適切なＩ／Ｏデバイス、およびそれらのＩ／Ｏデバイスのための任意の適切なＩ／Ｏインタフェース７０８を想定している。適切な場合には、Ｉ／Ｏインタフェース７０８は、プロセッサ７０２がこれらのＩ／Ｏデバイスのうちの１つまたは複数を駆動することを可能にする１つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。Ｉ／Ｏインタフェース７０８は、適切な場合には、１つまたは複数のＩ／Ｏインタフェース７０８を含むことができる。本開示は、特定のＩ／Ｏインタフェースについて記述し、示しているが、本開示は、任意の適切なＩ／Ｏインタフェースを想定している。
【０１０１】
特定の実施形態においては、通信インタフェース７１０は、コンピュータ・システム７００と、１つもしくは複数のその他のコンピュータ・システム７００または１つもしくは複数のネットワークとの間における通信（たとえば、パケットベースの通信など）のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、通信インタフェース７１０は、イーサネット（登録商標）もしくはその他の有線ベースのネットワークと通信するためのネットワーク・インタフェース・コントローラ（ＮＩＣ）もしくはネットワーク・アダプタ、またはＷＩ−ＦＩネットワークなどの無線ネットワークと通信するための無線ＮＩＣ（ＷＮＩＣ）もしくは無線アダプタを含むことができる。本開示は、任意の適切なネットワーク、およびそのネットワークのための任意の適切な通信インタフェース７１０を想定している。限定ではなく、例として、コンピュータ・システム７００は、アド・ホック・ネットワーク、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、またはインターネットの１つまたは複数の部分、またはこれらのうちの複数の組合せと通信することができる。これらのネットワークのうちの１つまたは複数の１つまたは複数の部分は、有線または無線であることが可能である。例として、コンピュータ・システム７００は、無線ＰＡＮ（ＷＰＡＮ）（たとえば、ブルートゥース（登録商標）ＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、セルラー電話ネットワーク（たとえば、グローバル・システム・フォー・モバイル・コミュニケーションズ（ＧＳＭ（登録商標））ネットワークなど）、またはその他の適切な無線ネットワーク、またはこれらのうちの複数の組合せと通信することができる。コンピュータ・システム７００は、適切な場合には、これらのネットワークのうちの任意のネットワークのための任意の適切な通信インタフェース７１０を含むことができる。通信インタフェース７１０は、適切な場合には、１つまたは複数の通信インタフェース７１０を含むことができる。本開示は、特定の通信インタフェースについて記述し、示しているが、本開示は、任意の適切な通信インタフェースを想定している。
【０１０２】
特定の実施形態においては、バス７１２は、コンピュータ・システム７００のコンポーネント同士を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、バス７１２は、アクセラレイティッド・グラフィックス・ポート（ＡＧＰ）もしくはその他のグラフィックス・バス、エンハンスト・インダストリー・スタンダード・アーキテクチャ（ＥＩＳＡ）バス、フロントサイド・バス（ＦＳＢ）、ハイパートランスポート（ＨＴ）インターコネクト、インダストリー・スタンダード・アーキテクチャ（ＩＳＡ）バス、インフィニバンド・インターコネクト、ローピンカウント（ＬＰＣ）バス、メモリ・バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、シリアル・アドバンスト・テクノロジー・アタッチメント（ＳＡＴＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション・ローカル（ＶＬＢ）バス、または別の適切なバス、またはこれらのうちの複数の組合せを含むことができる。バス７１２は、適切な場合には、１つまたは複数のバス７１２を含むことができる。本開示は、特定のバスについて記述し、示しているが、本開示は、任意の適切なバスまたはインターコネクトを想定している。
【０１０３】
本明細書においては、１つまたは複数の非一時的なコンピュータ可読記憶媒体は、適切な場合には、１つもしくは複数の半導体ベースのもしくはその他の集積回路（ＩＣ）（たとえば、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）もしくは特定用途向け集積回路（ＡＳＩＣ）など）、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスク・ドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー（登録商標）・ディスケット、フロッピー（登録商標）・ディスク・ドライブ（ＦＤＤ）、磁気テープ、ソリッドステート・ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはドライブ、その他の任意の適切な非一時的なコンピュータ可読記憶媒体、またはこれらのうちの複数の組合せを含むことができる。非一時的なコンピュータ可読記憶媒体は、適切な場合には、揮発性、不揮発性、または揮発性と不揮発性の組合せであることが可能である。
【０１０４】
本明細書においては、「または（もしくは）」は、包含的であり、排他的ではない（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡまたはＢ」は、「Ａ、Ｂ、またはその両方」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。その上、「および（ならびに）」は、包括的および個別的の両方である（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡおよびＢ」は、「まとめて、または個別に、ＡおよびＢ」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。
【０１０５】
本開示の範囲は、当技術分野における標準的な技術者が理解するであろう、本明細書において記述されているまたは示されている例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書において記述されているまたは示されている例示的な実施形態に限定されない。その上、本開示は、本明細書における各々の実施形態を、特定のコンポーネント、要素、特徴、機能、オペレーション、または工程を含むものとして記述し、示しているが、これらの実施形態のいずれも、当技術分野における標準的な技術者が理解するであろう、本明細書の任意の箇所において記述されているまたは示されているコンポーネント、要素、特徴、機能、オペレーション、または工程のうちの任意のものの任意の組合せまたは順列を含むことができる。さらに、特定の機能を実行するように適合されている、実行するようにアレンジされている、実行することができる、実行するように構成されている、実行することを可能にされている、実行するように機能できる、または実行するように機能する装置もしくはシステム、または装置もしくはシステムのコンポーネントへの添付の特許請求の範囲における言及は、その装置、システム、コンポーネント、またはその特定の機能が、アクティブ化されているか否か、オンにされているか否か、またはロック解除されているか否かを問わず、その装置、システム、またはコンポーネントが、そうするように適合されている、そうするようにアレンジされている、そうすることができる、そうするように構成されている、そうすることを可能にされている、そうするように機能できる、またはそうするように機能する限り、その装置、システム、コンポーネントを包含する。さらに、本開示では、特定の実施形態について特定の有利性が提供するものとして記述または図示しているが、特定の実施形態ではこのような有利性が提供されなくてもよく、または、そのいくつかまたはすべての有利性が提供されてもよい。
【図１】
2018525740.tif 000003
【図２】
2018525740.tif 000004
【図３】
2018525740.tif 000005
【図４】
2018525740.tif 000006
【図５】
2018525740.tif 000007
【図６】
2018525740.tif 000008
【図７】
2018525740.tif 000009
【国際調査報告】
2018525740.tif 000010
2018525740.tif 000011