(58)【調査した分野】(Int.Cl.,DB名)
オンラインサービスを提供するシステムの1つまたは複数のサーバによって、前記オンラインサービスの第1のユーザと関連付けられた第1のクライアントコンピューティングデバイスにトークンを送信することであって、前記トークンは、前記第1のユーザのユーザ識別子に少なくとも部分的に基づいて前記サーバによって生成されることと、
前記サーバによって、前記オンラインサービスの第2のユーザと関連付けられた第2のクライアントコンピューティングデバイスから前記トークンを受信することであって、前記トークンは、前記第1のクライアントコンピューティングデバイスから前記第2のクライアントコンピューティングデバイスに無線接続を通じて送信されていることと、
前記サーバによって、前記第1のユーザの前記ユーザ識別子に少なくとも部分的に基づいて、かつ前記第1のユーザに対応する第1のノードから前記第2のユーザに対応する第2のノードまでソーシャルグラフ内を移動するエッジの最小数によって示される分離の度合いに基づいて前記トークンを検証すること、
前記トークンが検証された場合に、前記サーバによって、前記第2のユーザにアクセス可能なデータを判定することであって、前記第2のユーザにアクセスするための前記ソーシャルグラフ内の複数のノードのリストを決定することを含み、前記複数のノードのリストは、前記第1のノード及び前記第2のノードの双方に共通に接続されているものを表すことと、
前記サーバによって、前記第2のクライアントコンピューティングデバイスに、前記第2のユーザにアクセス可能なデータの少なくとも一部を送信すること
を備える方法。
前記トークンを検証することが更に、前記第1および第2のクライアントコンピューティングデバイスと関連付けられたそれぞれの位置に基づいて行われ、該それぞれの位置は、前記第1および第2のクライアントコンピューティングデバイスによって、グローバルポジショニングシステム(GPS)、セルラ信号三角測量、Wi−Fi(登録商標)ホットスポット位置、またはそれらのうちの任意の組み合わせに基づいて決定される、請求項1に記載の方法。
前記第1のクライアントコンピューティングデバイスに前記トークンを送信することが、前記第1のクライアントコンピューティングデバイスと前記サーバとの間の安全な接続を通じて行われる、請求項1に記載の方法。
前記無線接続は、Wi−Fi(登録商標)、短距離無線通信インタフェース、ピアツーピアセルラ、または無線周波数識別(RFID)プロトコルに基づいている、請求項1に記載の方法。
前記システムは、複数のノードと、該複数のノードをつなぐエッジとからなるグラフを備えたソーシャルネットワーキングシステムであり、前記複数のノードは前記第1のノードと前記第2のノードとを含み、
前記オンラインサービスは、前記ソーシャルネットワーキングシステムによって提供されるソーシャルネットワーキングサービスである、請求項1に記載の方法。
前記複数のノードは、少なくとも2つのユーザノードとコンセプトノードとを含み、前記コンセプトノードは、前記第1のユーザまたは前記第2のユーザによって行われるアクティビティを表すエッジを介して、少なくとも前記第1または第2のノードに接続されている、請求項1に記載の方法。
コンピュータによって実行可能な命令を記憶するコンピュータ可読データ記憶メモリであって、前記命令は、該命令の実行時に、コンピュータシステムに、コンピュータに実装された方法を実行させるものであり、前記命令は、
オンラインサービスを提供するシステムよって、オンラインサービスの第1のユーザと関連付けられた第1のクライアントコンピューティングデバイスにトークンを送信するための命令であって、前記トークンは、前記第1のユーザのユーザ識別子に少なくとも部分的に基づいて生成されることと、
前記オンラインサービスの第2のユーザと関連付けられた第2のクライアントコンピューティングデバイスから前記トークンを受信するための命令であって、前記トークンは、前記第1のクライアントコンピューティングデバイスから前記第2のクライアントコンピューティングデバイスに無線接続を通じて送信されていることと、
前記第1のユーザの前記ユーザ識別子に少なくとも部分的に基づいて、かつ前記第1のユーザに対応する第1のノードから前記第2のユーザに対応する第2のノードまでソーシャルグラフ内を移動するエッジの最小数によって示される分離の度合いに基づいて前記トークンを検証するための命令と、
前記トークンが検証された場合に、前記第2のユーザにアクセス可能なデータを判定するための命令であって、前記第2のユーザにアクセスするための前記ソーシャルグラフ内の複数のノードのリストを決定することを含み、前記複数のノードのリストは、前記第1のノード及び前記第2のノードの双方に共通に接続されているものを表すことと、
前記第2のクライアントコンピューティングデバイスに、前記第2のユーザにアクセス可能なデータの少なくとも一部を送信するための命令と
を備える、コンピュータ可読データ記憶メモリ。
前記トークンを検証することが更に、前記第1および第2のクライアントコンピューティングデバイスと関連付けられたそれぞれの位置に基づいて行われ、該それぞれの位置は、前記第1および第2のクライアントコンピューティングデバイスによって、グローバルポジショニングシステム(GPS)、セルラ信号三角測量、Wi−Fi(登録商標)ホットスポット位置、またはそれらのうちの任意の組み合わせに基づいて決定される、請求項10に記載のコンピュータ可読データ記憶メモリ。
前記第1のクライアントコンピューティングデバイスに前記トークンを送信することが、前記第1のクライアントコンピューティングデバイスとの安全な接続を通じて行われる、請求項10に記載のコンピュータ可読データ記憶メモリ。
前記無線接続は、Wi−Fi(登録商標)、短距離無線通信インタフェース、ピアツーピアセルラ、または無線周波数識別(RFID)プロトコルに基づいている、請求項10に記載のコンピュータ可読データ記憶メモリ。
前記無線接続には、前記オンラインサービスの第3のユーザと関連付けられた第3のクライアントコンピューティングデバイスが含まれる、請求項10に記載のコンピュータ可読データ記憶メモリ。
前記オンラインサービスは、ソーシャルネットワーキングシステムによって提供されるソーシャルネットワーキングサービスである、請求項10に記載のコンピュータ可読データ記憶メモリ。
【発明を実施するための形態】
【0006】
図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を含んでもよい。
【0007】
特定の実施形態において、ユーザ101は、ソーシャルネットワーキングシステム160と対話または通信する、あるいはソーシャルネットワーキングシステム160を通じて対話または通信する、個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサードパーティーのアプリケーション)、またはグループ(例えば、個人のまたはエンティティの)であってもよい。特定の実施形態では、ソーシャルネットワーキングシステム160は、オンラインソーシャルネットワークをホスティングする、ネットワークにアドレス指定可能なコンピューティングシステムであってもよい。ソーシャルネットワーキングシステム160は、例えば、オンラインソーシャルネットワークに関連するユーザプロフィールデータ、コンセプトプロフィールデータ、ソーシャルグラフ情報、または他の適切なデータなどのソーシャルネットワーキングデータを生成、記憶、受信、および送信してもよい。ソーシャルネットワーキングシステム160は、ネットワーク環境100の他のコンポーネントによって直接またはネットワーク110を介してアクセスされてもよい。特定の実施形態では、ソーシャルネットワーキングシステム160は、認証サーバ(または他の適切なコンポーネント)を含むことができる。認証サーバは、例えば、適切なプライバシー設定を設定することによって、ユーザ101に対し、ユーザの行為をソーシャルネットワーキングシステム160によってロギングさせること、または他のシステム(例えば、サードパーティーシステム170)によって共有させることをオプトインまたはオプトアウトすることを可能にする。ユーザのプライバシー設定は、ユーザと関連付けられた何の情報がロギングされ得るか、ユーザと関連付けられた情報がどのようにロギングされ得るか、ユーザと関連付けられた情報がいつロギングされ得るか、誰がユーザと関連付けられた情報をロギングし得るか、ユーザと関連付けられた情報が誰と共有され得るか、およびユーザと関連付けられた情報が何の目的でロギングもしくは共有され得るかを決定することができる。認証サーバは、必要に応じて、ブロッキング、データハッシング、匿名化、または他の適切な技術を通じて、ソーシャルネットワーキングシステム160のユーザの1つまたは複数のプライバシー設定を実施するために使用されてもよい。特定の実施形態では、サードパーティーシステム170は、ウェブサイトおよびアプリケーションをホスティングすることができる、ネットワークにアドレス指定可能なコンピューティングシステムであってもよい。サードパーティーシステム170は、限定するものではないが、例えば、ウェブページ、テキスト、画像、ビデオ、音声、またはアプリケーションなどのサードパーティーシステムデータを生成、記憶、受信、および送信してもよい。サードパーティーシステム170は、ネットワーク環境100の他のコンポーネントによって直接またはネットワーク110を介してアクセスされてもよい。特定の実施形態では、1つまたは複数のユーザ101は、1つまたは複数のクライアントシステム130を使用してソーシャルネットワーキングシステム160またはサードパーティーシステム170にアクセスし、それらにデータを送信したり、それらからデータを受信したりしてもよい。クライアントシステム130は、ソーシャルネットワーキングシステム160またはサードパーティーシステム170に、直接あるいはネットワーク110を介して、またはサードパーティーシステムを介してアクセスしてもよい。限定ではなく一例として、クライアントシステム130は、ソーシャルネットワーキングシステム160を介してサードパーティーシステム170にアクセスしてもよい。クライアントシステム130は、例えば、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、スマートフォン、またはタブレットコンピュータなどの任意の適切なコンピューティングデバイスであってもよい。特定の実施形態では、クライアントシステム130は、運動器具、電化製品、自動車、自転車、心拍数モニタ、または血圧モニタであってもよい。
【0008】
本開示は、任意の適切なネットワーク110を想定している。限定ではなく一例として、ネットワーク110の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、無線WAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部、公衆交換電話網(PSTN)の一部、セルラ電話網、またはそれらのうち2つ以上の組み合わせを含んでもよい。ネットワーク110は、1つまたは複数のネットワーク110を含んでもよい。
【0009】
リンク150は、クライアントシステム130、ソーシャルネットワーキングシステム160、およびサードパーティーシステム170を、通信ネットワーク110に、または相互に接続することができる。本開示は、任意の適切なリンク150を想定している。特定の実施形態では、1つまたは複数のリンク150は、1つまたは複数の有線リンク(例えば、デジタル加入者線(DSL)またはデータオーバーケーブルサービスインターフェイス仕様(DOCSIS)等)、無線リンク(例えば、Wi−Fi(登録商標)もしくは802.11、WiMAX(登録商標)、またはテレビホワイトスペース上の無線通信等)、または光学リンク(例えば、同期型光ネットワーク(SONET)または同期デジタルハイアラーキ(SDH)等)を含む。特定の実施形態では、1つまたは複数のリンク150の各々は、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN(例えば、イーサネット(登録商標))、WLAN、WAN、WWAN、MAN、インターネットの一部、PSTNの一部、セルラ技術によるネットワーク(例えば、GSM(登録商標)、GPRS、UMTS、またはLTE)、衛星通信技術によるネットワーク、別のリンク150、または2つ以上のそのようなリンク150の組み合わせを含む。リンク150は、必ずしもネットワーク環境100全体を通じて同一である必要はない。1つまたは複数の第1のリンク150は、1つまたは複数の第2のリンク150とは、1つまたは複数の点で異なっていてもよい。
【0010】
図2は、例示的なソーシャルグラフ200を示している。特定の実施形態では、ソーシャルネットワーキングシステム160は、1つまたは複数のデータストア内に1つまたは複数のソーシャルグラフ200を記憶してもよい。特定の実施形態では、ソーシャルグラフ200は、複数のユーザノード202や複数のコンセプトノード204を含み得る複数のノードと、それらノードを接続する複数のエッジ206とを含んでもよい。
図2に示される例示的なソーシャルグラフ200は、2次元の視覚マップ表現で、教示を目的に示されている。特定の実施形態では、ソーシャルネットワーキングシステム160、クライアントシステム130、またはサードパーティーシステム170は、ソーシャルグラフ200および適切なアプリケーションに対する関連するソーシャルグラフ情報にアクセスしてもよい。ソーシャルグラフ200のノードおよびエッジは、例えば、データストア(ソーシャルグラフデータベースなど)に、データオブジェクトとして記憶されてもよい。そのようなデータストアは、ソーシャルグラフ200のノードまたはエッジの1つまたは複数の検索可能または照会可能なインデックスを含んでもよい。
【0011】
特定の実施形態では、ユーザノード202は、ソーシャルネットワーキングシステム160のユーザに対応してもよい。限定ではなく一例として、ユーザは、ソーシャルネットワーキングシステム160と対話あるいは通信する、またはソーシャルネットワーキングシステム160を通じて対話あるいは通信する、個人(人間であるユーザ)、エンティティ(例えば、企業、ビジネスもしくはサードパーティーアプリケーション)、またはグループ(例えば、個人のもしくはエンティティの)であってもよい。特定の実施形態では、ユーザがソーシャルネットワーキングシステム160にアカウントを登録するとき、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード202を作成し、ユーザノード202を1つまたは複数のデータストアに記憶してもよい。本明細書で説明されるユーザおよびユーザノード202は、必要に応じて、登録ユーザ、および登録ユーザと関連付けられたユーザノード202を意味し得る。加えて、または代替として、本明細書で説明されるユーザおよびユーザノード202は、必要に応じて、ソーシャルネットワーキングシステム160に登録されていないユーザを意味し得る。特定の実施形態では、ユーザノード202は、ユーザによって提供される情報、またはソーシャルネットワーキングシステム160を含む種々のシステムによって収集される情報と関連付けられてもよい。限定ではなく一例として、ユーザは、氏名、プロフィール画像、コンタクト情報、誕生日、性別、配偶者の有無、家族状態、職業、学歴、嗜好、関心、または他の人口統計情報を提供してもよい。特定の実施形態では、ユーザノード202は、ユーザと関連付けられた情報に対応する1つまたは複数のデータオブジェクトと関連付けられてもよい。特定の実施形態では、ユーザノード202は、1つまたは複数のウェブページに対応してもよい。
【0012】
特定の実施形態では、コンセプトノード204は、コンセプト(concept)に対応し得る。限定ではなく一例として、コンセプトは、場所(例えば、映画館、レストラン、ランドマーク、もしくは都市)、ウェブサイト(例えば、ソーシャルネットワーキングシステム160と関連付けられたウェブサイト、もしくはウェブ−アプリケーションサーバと関連付けられたサードパーティーウェブサイト)、エンティティ(例えば、人、ビジネス、グループ、スポーツチーム、もしくは著名人)、ソーシャルネットワーキングシステム160、もしくはウェブアプリケーションサーバなどの外部サーバに位置することができるリソース(例えば、音声ファイル、ビデオファイル、デジタル写真、テキストファイル、構造化文書、もしくはアプリケーション)、不動産もしくは知的財産(例えば、彫刻、絵画、映画、ゲーム、歌曲、アイデア、写真、もしくは書物)、ゲーム、活動、アイデアもしくは理論、別の適切なコンセプト、または2つ以上のそのようなコンセプトに対応してもよい。コンセプトノード204は、ユーザによって提供されるコンセプトの情報、またはソーシャルネットワーキングシステム160を含む種々のシステムによって収集される情報と関連付けられてもよい。限定ではなく一例として、コンセプトの情報は、氏名もしくは表題、1つまたは複数の画像(例えば、本の表紙の画像)、位置(例えば、アドレスもしくは地理的位置)、ウェブサイト(URLと関連付けることができる)、コンタクト情報(例えば、電話番号もしくは電子メールアドレス)、他の適切な情報、またはそのような情報の任意の適切な組み合わせを含んでもよい。特定の実施形態では、コンセプトノード204は、コンセプトノード204と関連付けられた情報に対応する1つまたは複数のデータオブジェクトと関連付けられてもよい。特定の実施形態では、コンセプトノード204は1つまたは複数のウェブページに対応してもよい。
【0013】
特定の実施形態では、ソーシャルグラフ200におけるノードは、ウェブページ(「プロフィールページ」と称する場合もある)を表してもよく、またはウェブページによって表されてもよい。プロフィールページは、ソーシャルネットワーキングシステム160によってホスティングされてもよく、またはソーシャルネットワーキングシステム160にアクセス可能であってもよい。プロフィールページはまた、サードパーティーシステム170のサーバと関連付けられたサードパーティーウェブサイト上でホスティングされてもよい。限定ではなく一例として、特定の外部ウェブページに対応するプロフィールページは特定の外部ウェブページであってもよく、かつプロフィールページは、特定のコンセプトノード204に対応してもよい。プロフィールページは、他のユーザの全てまたは選択されたサブセットによって参照可能であってもよい。限定ではなく一例として、ユーザノード202は、対応するユーザプロフィールページを有してもよく、対応するユーザは、そのページにおいて、コンテンツを追加し、告知し、または自己紹介をすることができる。限定ではなく他の例として、コンセプトノード204は、対応するコンセプトプロフィールページを有してもよく、1つまたは複数のユーザは、そのページにおいて、特に、コンセプトノード204に対応するコンセプトと関連して、コンテンツを追加し、告知し、または自己紹介をすることができる。
【0014】
特定の実施形態では、コンセプトノード204は、サードパーティーウェブページ、またはサードパーティーシステム170によってホスティングされるリソースを表してもよい。サードパーティーウェブページまたはリソースは、とりわけ、コンテンツ、選択可能もしくは他のアイコン、またはアクションもしくはアクティビティを表す他の相互に動作可能なオブジェクト(例えば、JavaScript(登録商標)、AJAX、もしくはPHPのコードで実装することができる)を含んでもよい。限定ではなく一例として、サードパーティーウェブページは、「いいね」、「チェックイン」、「たべる」、「おすすめ」または別の適切なアクションもしくはアクティビティなどの、選択可能なアイコンを含んでもよい。サードパーティーウェブページを参照するユーザは、クライアントシステム130に、ユーザのアクションを示すメッセージをソーシャルネットワーキングシステム160に送信させるアイコン(例えば、「たべる」)を選択することによって、アクションを行ってもよい。メッセージに応答して、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード202と、サードパーティーウェブページもしくはリソースに対応するコンセプトノード204との間のエッジ(例えば、「たべる」エッジ)を作成し、エッジ206を1つまたは複数のデータストアに記憶してもよい。
【0015】
特定の実施形態では、ソーシャルグラフ200における一対のノードは、1つまたは複数のエッジ206によって相互につながれてもよい。一対のノードをつなぐエッジ206は、一対のノード間の関係を表してもよい。特定の実施形態では、エッジ206は、一対のノード間の関係に対応する1つまたは複数のデータオブジェクトまたは属性を含んでもよく、またはそれらを表してもよい。限定ではなく一例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを示してもよい。このインジケーションに応答して、ソーシャルネットワーキングシステム160は、「友達申請」を第2のユーザに送信してもよい。第2のユーザが「友達申請」を確認した場合、ソーシャルネットワーキングシステム160は、ソーシャルグラフ200において、第1のユーザのユーザノード202を第2のユーザのユーザノード202につなぐエッジ206を作成し、エッジ206をソーシャルグラフ情報として1つまたは複数のデータストアに記憶してもよい。
図2の例では、ソーシャルグラフ200は、ユーザ「A」のユーザノード202とユーザ「B」のユーザノード202との友達関係を示すエッジ206、およびユーザ「C」のユーザノード202とユーザ「B」のユーザノード202との友達関係を示すエッジを含む。本開示では、特定のユーザノード202をつなぐ特定の属性を有する特定のエッジ206について説明および示しているが、本開示は、ユーザノード202をつなぐ任意の適切な属性を有する任意の適切なエッジ206を想定している。限定ではなく一例として、エッジ206は、友達関係、家族関係、ビジネスもしくは雇用関係、ファン関係、フォロワー関係、ビジター関係、加入者関係、上司/部下関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のそのような関係を表してもよい。また、本開示では概して、つながれているノードについて説明するが、本開示はまた、つながれているユーザまたはコンセプトについても説明する。なお、つながれているユーザまたはコンセプトとは、必要に応じて、1つまたは複数のエッジ206によってソーシャルグラフ200においてつながれているそれらのユーザおよびコンセプトに対応するノードを意味する。
【0016】
特定の実施形態では、ユーザノード202とコンセプトノード204との間のエッジ206は、コンセプトノード204と関連付けられたコンセプトに対して、ユーザノード202と関連付けられたユーザによって行われる特定のアクションまたはアクティビティを表してもよい。限定ではなく一例として、
図2に示すように、ユーザは、各々、エッジのタイプまたはサブタイプに対応し得るコンセプトを、「いいね!」、「通った」、「プレイした」、「聴いた」、「料理した」、「勤務した」、または「観た」として表すことができる。コンセプトノード204に対応するコンセプトプロフィールページは、例えば、選択可能な「チェックイン」アイコン(例えば、クリック可能な「チェックイン」アイコン)または選択可能な「お気に入りに追加」アイコンを含んでもよい。同様に、ユーザがそれらのアイコンをクリックした後、ソーシャルネットワーキングシステム160は、個別のアクションに対応するユーザのアクションに応答して、「お気に入り」エッジまたは「チェックイン」エッジを作成してもよい。限定ではなく別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンラインのミュージックアプリケーションであるSPOTIFY(登録商標)を使用して、特定の歌(「ランブルオン」)を聴くことができる。このケースでは、ソーシャルネットワーキングシステム160は、ユーザに対応するユーザノード202と、歌およびアプリケーションに対応するコンセプトノード204との間で「聴いた」エッジ206および「使用した」エッジ(
図2で示すような)を作成して、ユーザが歌を聴き、アプリケーションを使用したことを示してもよい。さらに、ソーシャルネットワーキングシステム160は、歌およびアプリケーションに対応するコンセプトノード204の間で、「プレイした」エッジ206(
図2で示すような)を作成して、特定の歌が特定のアプリケーションによって再生されたことを示してもよい。このケースでは、「プレイした」エッジ206は、外部音声ファイル(歌「イマジン」)上で外部アプリケーションのSPOTIFY(登録商標)によって行われたアクションに対応する。本開示では、ユーザノード202およびコンセプトノード204をつなぐ特定の属性を有する特定のエッジ206について説明するが、本開示は、ユーザノード202およびコンセプトノード204をつなぐ任意の適切な属性を有する任意の適切なエッジ206を想定している。さらに、本開示では、単一の関係を表す、ユーザノード202とコンセプトノード204との間の関係について説明するが、本開示は、1つまたは複数の関係を表す、ユーザノード202とコンセプトノード204との間のエッジを想定している。限定ではなく一例として、エッジ206は、ユーザが特定のコンセプトを好むこと、および特定のコンセプトで使用していることの両方を表してもよい。代わりに、別のエッジ206は、ユーザノード202とコンセプトノード204との間(
図2に示すようなユーザ「E」に対するユーザノード202と、「SPOTIFY」(登録商標)に対するコンセプトノード204との間)の各々のタイプ関係(または、単一の関係の複数)を表してもよい。
【0017】
特定の実施形態では、ソーシャルネットワーキングシステム160は、ソーシャルグラフ200においてユーザノード202とコンセプトノード204との間でエッジ206を作成してもよい。限定ではなく一例として、コンセプトプロフィールページを参照するユーザは(例えば、ユーザのクライアントシステム130にホスティングされたウェブブラウザ特殊用途アプリケーションを使用することによって)、「いいね」アイコンをクリックまたは選択することによって、コンセプトノード204により表されるコンセプトをユーザが好んでいるかを示してもよく、「いいね」アイコンによって、ユーザのクライアントシステム130が、コンセプトプロフィールページと関連付けられたコンセプトをユーザが好んでいることを示すメッセージをソーシャルネットワーキングシステム160に送信することができる。メッセージに応答して、ソーシャルネットワーキングシステム160は、ユーザとコンセプトノード204との間の「いいね」エッジ206によって示されるように、ユーザと関連付けられたユーザノード202とコンセプトノード204との間でエッジ206を作成してもよい。特定の実施形態では、ソーシャルネットワーキングシステム160は、エッジ206を1つまたは複数のデータストアに記憶してもよい。特定の実施形態では、エッジ206は、特定のユーザのアクションに応答して、ソーシャルネットワーキングシステム160によって自動的に形成されてもよい。限定ではなく一例として、第1のユーザが写真をアップロードし、動画を閲覧し、または歌を聴く場合、第1のユーザに対応するユーザノード202と、それらのコンセプトに対応するコンセプトノード204との間でエッジ206が形成されてもよい。本開示においては、特定の方式で特定のエッジ206を形成することを説明するが、本開示は、任意の適切な方式で任意の適切なエッジ206を形成することを想定している。
【0018】
また、任意の2つのノード間の分離の度合いが、1つのノードから別のノードまでソーシャルグラフを移動するのに必要なホップ(またはエッジ)の最小数として規定される。この2つのノード間の分離の度合いは、ソーシャルグラフにおいて2つのノードによって表されるユーザ間の関係またはコンセプト間の関係の指標とみなすことができる。
【0019】
ソーシャルネットワーキングシステムは、ユーザに関連付けることができる記録されたアクティビティまたはアクションに基づいて、頻繁に更新されたコンテンツをユーザに提供してもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、ニュースフィードサービスをサポートしてもよい。特定の実施形態では、ニュースフィードは、1つまたは複数のニュースフィード記事を含むデータフォーマットを備えてもよい。各ニュースフィード記事は、具体的な主題またはトピックに関連するコンテンツを含んでもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、具体的なユーザのアクションに関連するアクティビティまたはアクションをニュースフィード記事に集約してもよい。例えば、第1のユーザは、写真をソーシャルネットワーキングシステムに投稿してもよく、ソーシャルネットワーキングシステムの他のユーザは、写真に関連する種々のアクティビティまたはアクションを行ってもよい。他のユーザは、写真、写真への投稿コメントを「いいね」と表したり、1つまたは複数の特定のユーザを写真にタグ付けしたりしてもよい。ソーシャルネットワーキングシステムは、写真に関連するアクティビティを、写真の画像や、第1のユーザのプロフィール画像や、他のユーザによる写真の「いいね」の総数や、写真に関連する1つまたは複数のコメントを備えるニュースフィード記事に集約してもよい。別の例として、第1のユーザは、場所(例えば、ランドマーク、レストラン、デパートメントストア)に対応するウェブページ(ソーシャルネットワーキングシステムまたはサードパーティーシステムによって維持される)をチェックインしてもよい。ソーシャルネットワーキングシステムの他のユーザは、チェックインアクティビティを「いいね」と表したり、またはチェックインアクティビティに関連するコメントを投稿したりしてもよい。ソーシャルネットワーキングシステムは、チェックインアクティビティに関連するアクティビティを、ウェブページのリンクおよび画像や、第1のユーザのプロフィール画像や、他のユーザによるチェックインアクティビティの「いいね」の総数や、チェックインアクティビティに関連する1つまたは複数のコメントを備えるニュースフィード記事に集約してもよい。ソーシャルネットワーキングシステムはまた、ウェブページ、またはウェブページに関連する広告(例えば、ウェブページに関連するビジネスからのオンラインクーポン)を、更新したニュースフィード記事に集約してもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、1つまたは複数のニュースフィード記事を含むニュースフィードを、参照するユーザに提示してもよい。例えば、参照するユーザのクライアントデバイスによってホスティングされるアプリケーション(例えば、ウェブブラウザ)またはオペレーティングシステムは、ソーシャルネットワーキングシステムからニュースフィードを取り出し、そのニュースフィードをアプリケーションのユーザインタフェースに表示してもよい。アプリケーションは、ニュースフィードにおける各ニュースフィード記事を、アプリケーションのユーザインタフェースにおいて(または、オペレーティングシステムのグラフィカルユーザインタフェースにおいて)、それぞれのフレーム(例えば、ハイパーテキストマークアップ言語、またはHTMLのiFrame(登録商標))に表示してもよい。
【0020】
ソーシャルネットワーキングシステムは、ソーシャルグラフ情報に基づいて、アクティビティまたはアクションをニュースフィード記事に集約してもよい。例えば、ソーシャルネットワーキングシステムは、ソーシャルグラフ上において、参照するユーザからの指定された分離度合いの範囲内(例えば、2つの分離度合いの範囲内)に存在するユーザによって行われるアクティビティまたはアクションに関連するニュースフィード記事を含むニュースフィードを、参照するユーザに対して集約してもよい。ソーシャルネットワーキングシステムは、プライバシー設定に基づいて、アクティビティまたはアクションをニュースフィード記事に集約してもよい。例えば、ユーザは、ユーザによって行われた特定のアクティビティの情報にどの他のユーザがアクセスすることができるかを指定してもよい。ソーシャルネットワーキングシステムは、参照するユーザにアクセス可能なアクティビティに関連するニュースフィード記事を含むニュースフィードを、参照するユーザに対して集約してもよい。
【0021】
オンラインサービスは、オンラインサービスのユーザにサービスおよびデータを提供してもよい。例えば、ウェブポータルシステムは、電子メール、ゲーム、ショッピング、ニュース、天気予報、株式相場、およびスポーツの結果などのオンラインサービスを提供してもよい。別の例では、ソーシャルネットワーキングウェブサイトは、ウォールポスト、フォトシェアリング、イベントオーガニゼーション、メッセージング、ゲーム、または広告などの、オンラインソーシャルネットワーキングサービスを提供してもよい。オンラインサービスは、ユーザに対し、オンラインサービスに登録して、オンラインサービスにより提供されるサービスおよびデータにアクセスすることを依頼してもよい。オンラインサービスはまた、ユーザに対し、オンラインサービスにアクセスするユーザを認証するためのユーザ認証情報(例えば、ユーザ識別子およびパスワード)をセットアップすることを問い合わせてもよい。ユーザは、クライアントコンピューティングデバイスによって表示される(オンラインサービスの)ログインユーザインタフェース(例えば、クライアントコンピューティングデバイス上で稼動するウェブブラウザにより表示されるログインウェブページ)でユーザ認証情報を提供することによって、クライアントコンピューティングデバイス上のオンラインサービスにアクセスしてもよい。オンラインサービスは、特定のユーザに対するプライバシー設定に基づいて、特定のユーザと関連付けられた特定の情報をどのようにオンラインサービスの別のユーザと共有することができるかを判定してもよい。
【0022】
オンラインサービスのユーザは、ローカル無線ネットワーク上で、情報を共有し、または相互に対話してもよい。例えば、オンラインサービスのユーザは、2人のユーザのブルートゥース(登録商標)対応の携帯電話間でのブルートゥース(登録商標)接続を使用して、近くの別のユーザと、情報(例えば、電子メールアドレス、電話番号、およびプロフィール画像など)を共有してもよい。特定の実施形態では、ソーシャルネットワーキングシステム上の人々のグループは、ブルートゥース(登録商標)もしくはWi−Fi(登録商標)ダイレクト、またはピアツーピア無線接続を使用して、集会またはイベントにおいて写真を撮り、かつ写真を共有し、もしくは写真における集会の出席者を自動的にタグ付けして、出席者のリストを自動的に確立してもよい。特定の実施形態では、近くにいる個人のグループは、一時的なメッセージングを通信する。ユーザが相互に近くにいるとき、一時的なメッセージングが自動的に開始されてもよい。特定の実施形態では、ピアのグループに基づいて、相互に伝言するユーザのリストが自動的に生成されてもよい。ローカル無線ネットワーク上で情報を共有したり、他のユーザと対話したりすることは、オンラインサービスでのユーザの経験を高めることができる。しかしながら、ローカル無線ネットワーク上でのデータ伝送がオンラインサービスのプライバシー設定によるものではなく、物理的な近隣者によって判定されることが多いので、ローカル無線ネットワーク上で情報を共有することが、オンラインサービスのプライバシー設定に結びつかないことがある。プライバシーの不安がない場合でさえ、ある部屋の何人かの人々が同一の通信セッションに参加して相互の関係を知っているときに自動グループ生成が行われることを保証する確立された方法が存在しないことがある。ローカル無線ネットワーク上でのオンラインサービスのユーザの情報を簡易にブロードキャストすることは、ユーザのプライバシー設定に基づいて情報にアクセスすることが許可されていない人々に情報を公開してしまうことがある。特定の実施形態は、無線データのプライバシーを維持しながら、無線接続上で情報を共有する方法を説明する。特定の実施形態は、オンラインサービスを通じて、手動でのユーザ入力なしに、無線データのプライバシーを維持することができる。
【0023】
図3は、無線データのプライバシーを維持する例示的な方法300を示す。方法300は、オンラインサービスを提供するシステムの1つまたは複数のサーバによって実装されてもよい。例えば、方法300は、ソーシャルネットワーキングシステムの1つまたは複数のサーバによって実装されてもよい。方法300は、ステップ310において開始することができる。特定の実施形態では、ステップ310において、オンラインサービスを提供するシステムの1つまたは複数のサーバは、オンラインサービスの第1のユーザと関連付けられた第1のクライアントコンピューティングデバイスにトークンを送信することができる。第1のユーザは、個人またはエンティティ(例えば、ビジネス、ライブラリ、アプリケーション)であってもよい。第1のユーザは、先に説明したソーシャルネットワーキングシステムの任意の適切なオブジェクト(例えば、ユーザ、コンセプト)であってもよい。第1のクライアントコンピューティングデバイスは、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、セルラ電話、スマートフォン、または第1のユーザと関連付けられた任意の適切なクライアントコンピューティングデバイスであってもよい。サーバが、第1のクライアントコンピューティングデバイスとサーバとの間で、安全な接続を通じて(例えば、ハイパーテキストトランスファープロトコルセキュアもしくはHTTPSプロトコル、またはセキュアソケットレイヤもしくはSSLプロトコルに基づいて)、第1のクライアントコンピューティングデバイスにトークンを送信してもよい。
【0024】
特定の実施形態では、サーバは、第1のユーザのユーザ識別子に少なくとも部分的に基づいてトークンを生成してもよい。例えば、サーバは、オンラインサービスの第1のユーザのユーザ識別子を暗号化することによってトークンを生成してもよい。例えば、サーバは、ワンタイムパッドアルゴリズムに基づいて第1のユーザのユーザ識別子を暗号化してもよい。他の実施形態では、サーバは、番号(例えば、乱数、連続した乱数)を生成し、その番号を安全な接続を通じて第1のクライアントコンピューティングデバイスに送信してもよい。特定の実施形態では、サーバは、(例えば、SHA−256ハッシュアルゴリズムを使用して)第1のユーザのユーザ識別子のハッシュを生成してもよい。特定の実施形態では、サーバは、ユーザからの暗号化されたメッセージを復号化するためのセッション鍵を提供してもよい。第1のクライアントコンピューティングデバイスは、その番号で第1のユーザのユーザ識別子を暗号化することによって(例えば、その番号を暗号鍵として使用することによって)トークンを生成してもよい。特定の実施形態は、第1のユーザのユーザ識別子に基づいてトークンを生成する任意の適切な方法を想定している。
【0025】
特定の実施形態では、トークンが切り捨てられ、物理無線プロトコル内で媒体アクセス制御(MAC)識別子として使用されてもよい。アプリケーションレイヤにおける安全な接続の使用にも関わらず(例えば、HTTPSまたはSSLプロトコルに基づいて)、Wi−Fi(登録商標)802.11のMACレイヤおよびブルートゥース(登録商標)は、スタティックで一意な48ビットの識別子(MACアドレス)を利用してもよい。このMACアドレスは、おそらくは第1のユーザの位置のプライバシーを危険にさらすローカルな無線環境において追跡されることがある。限定されたユーザ環境内で衝突する可能性が小さいと仮定すると、サーバによって生成されたトークンをMACアドレスとして使用することが可能な場合がある。妥当なトークンのリフレッシュレートで第1のユーザの位置が追跡される可能性を低くすることができる。
【0026】
特定の実施形態では、第1のクライアントコンピューティングデバイスは、無線接続を通じて、オンラインサービスの第2のユーザと関連付けられた第2のクライアントコンピューティングデバイスにトークンを送信してもよい。第2のユーザは、個人またはエンティティ(例えば、ビジネス、ライブラリ、アプリケーション)であってもよい。第2のユーザは、上述したようなソーシャルネットワーキングシステムの任意の適切なオブジェクト(例えば、ユーザ、コンセプト)であってもよい。無線接続は、Wi−Fi(登録商標)、ブルートゥース(登録商標)、ピアツーピアセルラ、近距離無線通信(NFC)、赤外線(IR)、または無線周波数識別(RFID)プロトコルに基づいてもよい。無線接続は、暗号化されてもよいし、または暗号化されなくてもよい。第1のクライアントコンピューティングデバイスから第2のクライアントコンピューティングデバイスに直接送信されることに加えて、トークンは最初に、オンラインサービスの別のユーザと関連付けられた別のクライアントコンピューティングデバイスに送信されてもよく、他のクライアントコンピューティングデバイスによって第2のクライアントコンピューティングデバイスに中継されてもよい。すなわち、無線接続はさらに、オンラインサービスの第3のユーザと関連付けられた第3のクライアントコンピューティングデバイスを備えてもよい。無線接続は、各々がオンラインサービスのユーザと関連付けられた複数のクライアントコンピューティングデバイスの間のピアツーピアネットワークを備えてもよい。トークンは、ピアツーピアネットワークを通じて第1のクライアントコンピューティングデバイスから第2のクライアントコンピューティングデバイスに送信されてもよい。特定の実施形態は、無線接続を通じて第1のクライアントコンピューティングデバイスから第2のクライアントコンピューティングデバイスにトークンを送信する任意の適切な方法を想定している。特定の実施形態では、ステップ320において、オンラインサービスを提供するシステムのサーバは、オンラインサービスの第2のユーザと関連付けられた第2のクライアントコンピューティングデバイスからトークンを受信してもよい。サーバはまた、第2のユーザのユーザ識別子を第2のクライアントコンピューティングデバイスから受信してもよい。トークン(および、第2のユーザのユーザ識別子)は、安全な接続を通じて第2のクライアントコンピューティングデバイスからサーバに送信されてもよい。
【0027】
特定の実施形態では、ステップ330において、サーバは、第1のユーザのユーザ識別子に少なくとも部分的に基づいてトークンを検証してもよい。例えば、サーバは、トークンを復号し、復号したトークンが第1のユーザのユーザ識別子に一致することを検証してもよい。一部の実施形態では、トークンは、サーバによって検証された後に失効してもよい。すなわち、トークンは、ワンタイムトークン(「ノンス」(nonce))であってもよい。
【0028】
特定の実施形態では、ステップ340において、サーバは、トークンが検証された場合、第2のユーザにアクセス可能なデータを判定してもよい。サーバは、第1のユーザによって(または、オンラインサービスを提供するシステムによって)設定された1つまたは複数のプライバシー設定に基づいて、第2のユーザにアクセス可能なデータを判定してもよい。例えば、第1のユーザは、第1のユーザのコンタクト情報(例えば、電話番号、電子メールアドレス、およびインスタントメッセージもしくはIMユーザ識別子など)へのアクセスを有するユーザのリスト(例えば、オンラインサービスのユーザ識別子のリスト)を作成してもよい。第2のユーザ(例えば、第2のユーザのユーザ識別子)をリストと比較することによって、サーバは、第1のユーザのコンタクト情報が第2のユーザにアクセス可能であるかを判定してもよい。
【0029】
ソーシャルネットワーキングシステムなどのオンラインサービスの場合、サーバは、ソーシャルネットワーキングシステムのソーシャルグラフにアクセスして、トークンを検証してもよい。サーバは、ソーシャルグラフにおいて、第1のユーザに対応する第1のノードと第2のユーザに対応する第2のノードとの間のエッジの
最小数にさらに少なくとも基づいて(すなわち、第1のノードと第2のノードとの間の分離度合いに基づいて)トークンを検証してもよい。例えば、第1のユーザは、ソーシャルグラフにおける第1のユーザの第1および第2の段階の友達のみが第1のユーザの情報にアクセスすることができるという点で、プライバシー設定を設定してもよい。サーバは、トークンが第1のユーザと関連付けられ、かつソーシャルグラフ上で第2のユーザが第1のユーザから2つの分離度合いの範囲内に存在する場合に、トークンが有効であると判定してもよい。サーバは、トークンが有効である場合、第1のユーザの情報が第2のユーザにアクセス可能であると判定してもよい。
【0030】
特定の実施形態では、ステップ350において、サーバは、第2のユーザにアクセス可能なデータの少なくとも一部を第2のクライアントコンピューティングデバイスに送信してもよい。例えば、サーバは、オンラインサービスの第1のユーザのユーザ識別子を、第2のクライアントコンピューティングデバイスに送信してもよい。第2のクライアントコンピューティングデバイスは、第2のクライアントコンピューティングデバイス上で稼動し、よって第2のユーザに第1のユーザの存在を通知するグラフィカルユーザインタフェースにおいて第1のユーザのユーザ識別子を表示してもよい。別の例では、上述したように、第1のユーザのコンタクト情報が第2のユーザにアクセス可能であるとサーバが判定した場合に、サーバは、第1のユーザのコンタクト情報の一部(例えば、電子メールアドレス)を第2のクライアントコンピューティングデバイスに送信し、第2のクライアントコンピューティングデバイスに電子メールアドレスを第2のユーザに表示させてもよい。さらなる別の例では、サーバは、ソーシャルネットワーキングシステムの第1および第2のユーザと共通の友達のリスト(例えば、ソーシャルグラフにおいて第1のユーザに対応する第1のノードと第2のユーザに対応する第2のノードとにそれぞれつながるノードに対応するユーザ)について、上述のソーシャルグラフにアクセスしてもよい。サーバは、第2のユーザに表示されることになる共通の友達のリストを第2のクライアントコンピューティングデバイスに送信してもよい。サーバはまた、第1のユーザに表示されることになる共通の友達のリストを第1のクライアントコンピューティングデバイスに送信してもよい。共通の友達のリストを、第1のユーザと第2のユーザとの「会話ブレーカ」(ソーシャルネットワーキングシステムにおいて、非常に近くにいるが、未だ第1の段階の友達ではない)とすることができる。
【0031】
また、サーバは、第2のユーザに関連する情報を第1のクライアントコンピューティングデバイスに送信してもよい。例えば、サーバは、第2のユーザの氏名およびプロフィール画像を第1のクライアントコンピューティングデバイス(すなわち、第1のユーザ)に送信してもよい。
【0032】
トークンが検証された場合、サーバは、第1のまたは第2のユーザと関連付けられたアプリケーションに関連する情報を第2のクライアントコンピューティングデバイスに送信してもよい。例えば、サーバは、第1のユーザが第1のクライアントコンピューティングデバイス上で現在行っているゲームアプリケーションの情報(例えば、ゲームアプリケーションへのリンク、ゲームアプリケーションの特定のステージ)を、第2のクライアントコンピューティングデバイスに送信してもよい。第2のユーザは、その情報に基づいて、ゲームアプリケーションにおいて(例えば、第1のユーザと同じゲームのステージにおいて)、第2のクライアントコンピューティングデバイスから第1のユーザと合流してもよい。サーバはまた、第2のクライアントコンピューティングデバイス上で稼働しているアプリケーションの状態を変更させてもよい。例えば、サーバは、第2のクライアントコンピューティングデバイス上で稼働しているニュースフィードアプリケーションを、ニュースフィード記事の表示を再順序付けさせ、それによって第1のユーザに関連する記事がニュースフィードアプリケーションによって表示されるニュースフィードのトップに配置されるようにするメッセージを、第2のクライアントコンピューティングデバイスに送信してもよい。別の例では、サーバは、第2のクライアントコンピューティングデバイス上で稼働しているアドレスブックアプリケーションに、第1のユーザの第1のコンタクト情報を表示させるようにする(例えば、コンタクトのリストのトップで)メッセージを、第2のクライアントコンピューティングデバイスに送信してもよい。
【0033】
上述したように、無線ネットワーク上で第1のユーザの情報(例えば、ユーザ識別子)を簡易にブロードキャストする代わりに、第1のクライアントコンピューティングデバイスは、最初に、オンラインサービスを提供するシステムのサーバから、第1のユーザと関連付けられたトークンを受信し、無線接続上で、第2のユーザと関連付けられた第2のクライアントコンピューティングデバイスにトークンを送信(ブロードキャスト)してもよい。次いで、第2のクライアントコンピューティングデバイスは、オンラインサービスを提供するシステムのサーバにトークンを送信して、サーバに、トークンが第1のユーザと関連付けられていることを検証させてもよい。次いで、サーバは、第2のユーザにアクセス可能なデータを判定し(トークンが有効な場合)、第2のユーザにアクセス可能なデータの少なくとも一部を第2のクライアントコンピューティングデバイスに送信してもよい。ここで、トークンの生成、交換および検証、トークンが検証された場合の第2のユーザにアクセス可能なデータの判定、ならびに第2のユーザによる消費に対して有効な情報(第2のユーザにアクセス可能なデータ)を送信することは、ユーザの手動の入力なしに、バックグラウンドで行われてもよい。さらに、トークンがサーバによって検証された後、第1のクライアントコンピューティングデバイスと第2のクライアントコンピューティングデバイスとの間(および第1のユーザと第2のユーザとの間)の情報共有および対話は、必ずしも第1のクライアントコンピューティングデバイスと第2のクライアントコンピューティングデバイスとの間のピアツーピア無線接続を通じてではなく、オンラインサービスを提供するシステムを通じてであってもよい。
【0034】
一部の実施形態では、サーバは、第1のおよび第2のクライアントコンピューティングデバイスと関連付けられたそれぞれの位置に基づいて、トークンを検証してもよい。例えば、第2のクライアントコンピューティングデバイスおよび第1のクライアントコンピューティングデバイスが第1のユーザの自宅の位置またはその近くにある場合、サーバは、トークンを検証し、かつ第2のユーザが第1のユーザの自宅における第1のユーザとともにあり、よって第1のユーザにとって信頼された人間である可能性が高いので、第1のユーザのプライバシー設定に関わらず、第2のユーザが第1のユーザの情報にアクセスすることができることを判定してもよい。同様に、第2のクライアントコンピューティングデバイスが第1のユーザの職場にあり、またはその近くにあるとサーバが判定した場合、サーバは、トークンを検証し、第2のユーザが第1のユーザにとって信頼された人間である可能性が高いので、第1のユーザのプライバシー設定に関わらず、第2のユーザが第1のユーザの情報にアクセスすることができることを判定してもよい。第1の(または、第2の)クライアントコンピューティングデバイスは、グローバルポジショニングシステムつまりGPS信号、セルラ信号三角測量、Wi−Fi(登録商標)ホットスポットの位置、または任意の適切な位置測量技術に基づいてその位置を判定し、その位置をサーバに送信してもよい。サーバは、第1の(または第2の)ユーザの位置チェックインアクティビティに基づいて、第1の(または第2の)クライアントコンピューティングデバイスの位置情報を判定してもよい。特定の実施形態は、第1および第2のクライアントコンピューティングデバイスの位置情報を判定する任意の適切な方法を想定している。
【0035】
図4は、例示的なピアツーピアネットワークを示している。3人のユーザ401、402、403のモバイルデバイスは、Wi−Fi(登録商標)ダイレクト、ブルートゥース(登録商標)、セルラ直接通信、またはRFIDなどのピアツーピア無線通信プロトコルを通じて相互に通信している間は、相互に物理的に近接している。3人のユーザの各モバイルデバイスは、ソーシャルネットワーキングシステムのユーザのそれぞれのユーザ識別子に基づいて、ソーシャルネットワーキングシステムのサーバからトークンを受信する。モバイルデバイスは全て、各ペアの接続404、405、406を通じて、または通信プロトコルの範囲が制限された場合のより小さなサブセットを介したトークンの蓄積および通信を通じてトークンを交換する。モバイルデバイスは、他のモバイルデバイスから受信したそれぞれのトークンを、ユーザ識別子に変換するためにソーシャルネットワークに送信する。ユーザ「A」401およびユーザ「B」402は、ソーシャルネットワーキングシステム上で友達(407)であり、したがって、各々がそれぞれのモバイルデバイス上で他の人の情報を自動的に(参照するために)受信してもよい。ユーザ「A」およびユーザ「C」は友達ではないが、両者は、同一の学術機関への共有されたつながり(これは共有されたイベントまたは任意の同様にマッチした、学術的な、専門的な、もしくは個人的な努力であり得る)が、物理的な環境でソーシャルネットワーキングシステム情報の共有を可能にすることを指定している。学校「スタンフォード」408に相互に通った409,410ということによって、情報の共有がまた自動的となり得るが、追加的なコンテキストでは、共有されたつながりは友達関係を通じないことに留意されたい。それらの2人のユーザは、物理的に近接しているので、出会いの結果として、相互に「友達」となり得る。ユーザ「B」およびユーザ「C」は物理的に近接しているが、ソーシャルネットワーキングシステム上では相互の直接のつながりを有さず、それぞれのモバイルデバイスは、ソーシャルネットワーキングシステム上のプライバシー設定によって、モバイルデバイス上の相互の物理的な存在を示さない。
【0036】
特定の実施形態は、必要に応じて、
図3の方法の1つまたは複数のステップを繰り返してもよい。本開示は、
図3の方法の特定のステップを、特定の順序で行うものとして説明および示しているが、本開示は、任意の適切な順序での
図3の方法の任意の適切なステップを行うことを想定している。さらに、本開示は、
図3の方法の特定のステップを実行する特定のコンポーネント、デバイス、またはシステムを説明および示しているが、本開示は、
図3の方法の任意の適切なステップを実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組み合わせを想定している。
【0037】
図5は、例示的なコンピュータシステム500を示している。特定の実施形態では、1つまたは複数のコンピュータシステム500は、本明細書で説明または示した1つまたは複数の方法の1つまたは複数のステップを実行する。特定の実施形態では、1つまたは複数のコンピュータシステム500は、本明細書で説明または示した機能を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム500上で稼働しているソフトウェアは、本明細書で説明または示した1つまたは複数の方法のうちの1つまたは複数のステップを実行し、あるいは、本明細書で説明または示した機能を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム500の1つまたは複数の部分を含む。ここで、コンピュータシステムへの言及は、必要に応じて、コンピューティングデバイスを包含することがあり、逆も同様である。さらに、コンピュータシステムへの言及は、必要に応じて、1つまたは複数のコンピュータシステムを包含することがある。
【0038】
本開示は、任意の適切な数のコンピュータシステム500を想定するとともに、本開示は、任意の適切な物理的形式をとるコンピュータシステム500を想定している。限定ではなく一例として、コンピュータシステム500は、組み込みコンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、またはそれらのうち2つ以上の組み合わせであってもよい。必要に応じて、コンピュータシステム500は、1つまたは複数のコンピュータシステム500を含んでもよく、単一もしくは分散されてもよく、複数の位置にわたってもよく、複数のマシンにわたってもよく、複数のデータセンタにわたってもよく、あるいは、1つまたは複数のネットワークにおいて1つまたは複数のクラウドコンポーネントを含み得るクラウドに存在してもよい。必要に応じて、1つまたは複数のコンピュータシステム500は、実質的な空間的または時間的な制限なしに、本明細書で説明または示した1つまたは複数の方法のうちの1つまたは複数のステップを実行してもよい。限定ではなく一例として、1つまたは複数のコンピュータシステム500は、リアルタイムで、またはバッチモードで、本明細書で説明あるいは示した1つまたは複数の方法のうちの1つまたは複数のステップを実行してもよい。1つまたは複数のコンピュータシステム500は、必要に応じて、異なる時間で、または異なる位置で、本明細書で説明あるいは示した1つまたは複数の方法のうちの1つまたは複数のステップを実行してもよい。
【0039】
特定の実施形態では、コンピュータシステム500は、プロセッサ502、メモリ504、記憶装置506、入力/出力(I/O)インタフェース508、通信インタフェース510、およびバス512を含む。本開示では、特定の配置において特定の数の特定のコンポーネントを有する特定のコンピュータシステムを説明および示しているが、本開示は、任意の適切な配置において任意の適切な数の任意の適切なコンポーネントを有する任意の適切なコンピュータシステムを想定している。
【0040】
特定の実施形態では、プロセッサ502は、コンピュータプログラムを構成する命令などの命令を実行するハードウェアを含む。限定ではなく一例として、命令を実行するために、プロセッサ502は、内部レジスタ、内部キャッシュ、メモリ504、または記憶装置506から命令を取り出し(またはフェッチ)、それらを復号および実行し、次いで、1つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ504、または記憶装置506に書き込んでもよい。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレスに対する1つまたは複数の内部キャッシュを含んでもよい。本開示は、必要に応じて、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ502を想定している。限定ではなく一例として、プロセッサ502は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数の変換索引バッファ(TLB)を含んでもよい。命令キャッシュにおける命令は、メモリ504または記憶装置506における命令のコピーであってもよく、命令キャッシュは、プロセッサ502によるそれらの命令の取り出しを加速させることができる。データキャッシュにおけるデータは、処理を行うためにプロセッサ502で実行する命令のためのメモリ504または記憶装置506におけるデータのコピーや、プロセッサ502で実行する後続命令によるアクセスのためにあるいはメモリ504もしくは記憶装置506への書き込みのためにプロセッサ502で実行された先の命令の結果や、他の適切なデータであってもよい。データキャッシュは、プロセッサ502による読み込み動作および書き込み動作を加速させることができる。TLBは、プロセッサ502に対する仮想アドレス変換を加速させることができる。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレスに対する1つまたは複数の内部レジスタを含んでもよい。本開示は、必要に応じて、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ502を想定している。必要に応じて、プロセッサ502は、1つまたは複数の論理演算ユニット(ALU)を含んでもよく、マルチコアプロセッサであってもよく、あるいは1つまたは複数のプロセッサ502を含んでもよい。本開示では、特定のプロセッサについて説明および示しているが、本開示は、任意の適切なプロセッサを想定している。
【0041】
特定の実施形態では、メモリ504は、プロセッサ502が実行する命令や、プロセッサ502を動作させるためのデータを記憶するメインメモリを含む。限定ではなく一例として、コンピュータシステム500は、記憶装置506または別のソース(例えば、別のコンピュータシステム500)からメモリ504に命令をロードしてもよい。この場合、プロセッサ502は、メモリ504から内部レジスタまたは内部キャッシュに命令をロードしてもよい。命令を実行するために、プロセッサ502は、内部レジスタまたは内部キャッシュから命令を取り出し、それらを復号してもよい。命令を実行する間、またはその後、プロセッサ502は、1つまたは複数の結果(中間または最終結果とすることができる)を、内部レジスタまたは内部キャッシュに書き込んでもよい。この場合、プロセッサ502は、それらの結果のうちの1つまたは複数をメモリ504に書き込んでもよい。特定の実施形態では、プロセッサ502は、1つまたは複数の内部レジスタもしくは内部キャッシュあるいはメモリ504(記憶装置506やその他のものとは対照的なもの)において命令のみを実行したり、1つまたは複数の内部レジスタもしくは内部キャッシュあるいはメモリ504(記憶装置506やその他のものとは対照的なもの)においてデータのみを処理したりしてもよい。1つまたは複数のメモリバス(各々がアドレスバスおよびデータバスを含むことができる)は、プロセッサ502をメモリ504に結合し得る。バス512は、以下に説明するように、1つまたは複数のメモリバスを含んでもよい。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)は、プロセッサ502とメモリ504との間に存在し、プロセッサ502によって要求されるメモリ504へのアクセスを促進することができる。特定の実施形態では、メモリ504は、ランダムアクセスメモリ(RAM)を含む。このRAMは、必要に応じて揮発性メモリであってもよい。必要に応じて、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってもよい。さらに、必要に応じて、このRAMは、単一ポートまたはマルチポートRAMであってもよい。本開示は、任意の適切なRAMを想定している。メモリ504は、必要に応じて、1つまたは複数のメモリ504を含んでもよい。本開示では、特定のメモリについて説明および示しているが、本開示は、任意の適切なメモリを想定している。
【0042】
特定の実施形態では、記憶装置506は、データまたは命令に対する大容量記憶装置を含む。限定ではなく一例として、記憶装置506は、ハードディスクドライブ(HDD)、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、磁気光ディスク、磁気テープ、もしくはユニバーサルシリアルバス(USB)、またはそれらのうち2つ以上の組み合わせを含んでもよい。記憶装置506は、必要に応じて、着脱可能または着脱不能(または固定)媒体を含んでもよい。記憶装置506は、必要に応じて、コンピュータシステム500の内部または外部にあってもよい。特定の実施形態では、記憶装置506は、不揮発性、ソリッドステートメモリである。特定の実施形態では、記憶装置506は、読み出し専用メモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電子的消去可能PROM(EPROM)、電気的消去再書き込みROM(EAROM)、もしくはフラッシュメモリ、またはそれらのうち2つ以上の組み合わせであってもよい。本開示は、任意の適切な物理的形式をとる大容量記憶装置506を想定している。記憶装置506は、必要に応じて、プロセッサ502と記憶装置506との間の通信を促進する1つまたは複数の記憶制御ユニットを含んでもよい。必要に応じて、記憶装置506は、1つまたは複数の記憶装置506を含んでもよい。本開示では、特定の記憶装置について説明および示しているが、本開示は、任意の適切な記憶装置を想定している。
【0043】
特定の実施形態では、I/Oインタフェース508は、コンピュータシステム500と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインタフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム500は、必要に応じて、それらのI/Oデバイスの1つまたは複数を含んでもよい。それらのI/Oデバイスの1つまたは複数によって、人間とコンピュータシステム500との間の通信が可能になる。限定ではなく一例として、I/Oデバイスは、キーボード、キーパッド、マクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、静止カメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/Oデバイス、またはそれらのうち2つ以上の組み合わせを含んでもよい。I/Oデバイスは、1つまたは複数のセンサを含んでもよい。本開示は、それらのための任意の適切なI/Oデバイスおよび任意の適切なI/Oインタフェース508を含み得る。必要に応じて、I/Oインタフェース508は、プロセッサ502がそれらI/Oデバイスのうちの1つまたは複数を駆動させることを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含んでもよい。I/Oインタフェース508は、必要に応じて、1つまたは複数のI/Oインタフェース508を含んでもよい。本開示は、特定のI/Oインタフェースについて説明および示しているが、本開示は、任意の適切なI/Oインタフェースを想定している。
【0044】
特定の実施形態では、通信インタフェース510は、コンピュータシステム500と、1つまたは複数の他のコンピュータシステムあるいは1つまたは複数のネットワークとの間の通信(例えば、パケットによる通信)のための1つまたは複数のインタフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定ではなく一例として、通信インタフェース510は、イーサネット(登録商標)もしくは他の有線によるネットワークと通信するネットワークインタフェースコントローラ(NIC)もしくはネットワークアダプタ、WI−FI(登録商標)ネットワークなどの無線ネットワークと通信する無線NIC(WNIC)もしくは無線アダプタを含んでもよい。本開示は、任意の適切なネットワークおよび任意の適切な通信インタフェース510を想定している。限定ではなく一例として、コンピュータシステム500は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、もしくはインターネットの1つまたは複数の部分、またはそれらのうち2つ以上の組み合わせと通信してもよい。それらのネットワークの1つまたは複数のうちの1つまたは複数の部分は、有線または無線であってもよい。例として、コンピュータシステム500は、無線PAN(WPAN)(例えば、BLUETOOTH(登録商標)WPANなど)、WI−FI(登録商標)ネットワーク、WiMAX(登録商標)ネットワーク、セルラ電話網、(例えば、汎欧州デジタル移動電話(GSM)(登録商標)ネットワーク)、もしくは他の適切な無線ネットワーク、またはそれらのうち2つ以上の組み合わせと通信してもよい。コンピュータシステム500は、必要に応じて、それらのネットワークのいずれかに対する任意の適切な通信インタフェース510を含んでもよい。通信インタフェース510は、必要に応じて、1つまたは複数の通信インタフェース510を含んでもよい。本開示では、特定の通信インタフェースについて説明および示しているが、本開示は、任意の適切な通信インタフェースを想定している。
【0045】
特定の実施形態では、バス512は、コンピュータシステム500のコンポーネントを相互に結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定ではなく一例として、バス512は、アクセラレーテッド・グラフィック・ポート(AGP)もしくは他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロント・サイド・バス(FSB)、ハイパー・トランスポート(HT)インターコネクト、業界標準アーキテクチャ(ISA)バス、インフィニバンド(INFINIBAND)インターコネクト、ロー・ピン・カウント(LPC)バス、メモリバス、マイクロ・チャネル・アーキテクチャ(MCA)バス、ペリフェラル・コンポーネント・インターコネクト(PCI)バス、PCIエクスプレス(PCIe)バス、シリアル・アドバンスト・テクノロジー・アタッチメント(SATA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション・ローカル(VLB)バス、もしくは別の適切なバス、またはそれらのうち2つ以上の組み合わせを含んでもよい。バス512は、必要に応じて、1つまたは複数のバス512を含んでもよい。本開示では、特定のバスについて説明および示しているが、本開示は、任意の適切なバスまたはインターコネクトを想定している。
【0046】
ここで、コンピュータ可読非一時的記憶媒体は、必要に応じて、1つまたは複数の半導体ベースもしくは他の集積回路(IC)(例えば、フィールドプログラマブルゲートアレイ(FPGA)や特定用途IC(ASIC)など)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、磁気光ディスク、磁気光学ドライブ、フロッピー(登録商標)ディスケット、フロッピー(登録商標)ディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードもしくはドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、または任意の適切なそれらのうち2つ以上の組み合わせを含んでもよい。コンピュータ可読非一時的記憶媒体は、必要に応じて、揮発性、不揮発性、または揮発性および不揮発性の組み合わせであってもよい。
【0047】
本明細書において、「または」は、別段明示的に示されず別段文脈によっても示されない場合、包括的であり排他的ではない。したがって、本明細書において、「AまたはB」は、別段明示的に示されず別段文脈によっても示されない場合、「A、B、または両方」を意味する。また、「および」は、別段明示的に示されず別段文脈によっても示されない場合、共にと別々の両方のことである。したがって、本明細書において、「AおよびB」は、別段明示的に示されず別段文脈によっても示されない場合、「共にまたは別々にAおよびB」を意味する。
【0048】
本開示の範囲は、当業者が認識することになる、本明細書に記載または示した例示的な実施形態の変形、置換、変化、改変、および変更をすべて含む。本開示の範囲は、本明細書に記載または示した例示的な実施形態に限定されない。また、本開示は、それぞれの実施形態を、特定の構成要素、要素、機能、動作、または工程を含みものとして本明細書に記載しかつ示したが、これらの実施形態のいずれも、当業者が認識することになる、本明細書のいずれかの箇所に記載または示された構成要素、要素、機能、動作、または工程のいずれかの任意の組合せまたは並べ替えを含むことができる。さらに、特許請求の範囲において、装置またはシステム、あるいは装置またはシステムの構成要素が、特定の機能を行うように適合された、ように配置された、ことが可能な、ように構成された、ことを可能にする、ように動作可能な、またはように動作する、などの言及は、その特定の機能が有効化され、作動され、またはアンロックされているかどうかにかかわらず、そのような装置、システム、または構成要素が、そのように適合され、配置され、可能であり、構成され、可能にし、動作可能であり、または動作する限り、こうした装置、システム、構成要素を含む。