(57)【特許請求の範囲】
【請求項１】
コンピュータにより実行される方法であって、
第１のユーザに関連付けられた第１のユーザデバイスから、第２のユーザと共有されるべき前記第１のユーザの現在の物理的位置を示す位置データを受信すること、
前記第２のユーザに関連付けられた第２のユーザデバイスから、前記第１のユーザの現在の物理的位置に関するリクエストを受信すること、
前記第２のユーザデバイスから受信した前記リクエストに応答して、共有された位置データに基づいて前記第１のユーザの現在の物理的位置を前記第２のユーザデバイスに送信すること、
前記第２のユーザデバイスからサードパーティ・サービスの選択を受信すること、
前記第１のユーザの現在の物理的位置に製品を送るかまたはサービスを提供するための前記サードパーティ・サービスに対するリクエスト内で、前記サードパーティ・サービスに関連付けられたサーバに前記第１のユーザの現在の物理的位置を送信すること、を備える方法。
【請求項２】
前記サードパーティ・サービスに対するリクエストは、
前記第１のユーザをピックアップするカーサービスを提供するための前記サードパーティ・サービスに対するリクエストを含む、請求項１に記載の方法。
【請求項３】
前記第２のユーザの現在の物理的位置を示す位置データを前記第２のユーザデバイスから受信することをさらに備え、
前記サードパーティ・サービスに対するリクエストは、
前記第２のユーザの現在の物理的位置と、前記第１のユーザを前記第２のユーザの現在の物理的位置に運ぶカーサービスに関するリクエストをさらに含む、請求項２に記載の方法。
【請求項４】
前記第１のユーザの現在の物理的位置から前記第２のユーザの現在の物理的位置まで前記第１のユーザを運ぶための見積もり料金を、前記サードパーティ・サービスに対するリクエストに応答して前記サードパーティ・サービスに関連付けられたサーバから受信すること、をさらに備える請求項３に記載の方法。
【請求項５】
前記サードパーティ・サービスに対するリクエストは、
前記第１のユーザの現在の物理的位置にアイテムを配送するリクエストを含む、請求項１に記載の方法。
【請求項６】
前記サードパーティ・サービスに対するリクエストを送信することは、
前記第１のユーザの名前または前記第１のユーザのプロファイル画像を前記サードパーティ・サービスに送信することを含む、請求項１に記載の方法。
【請求項７】
前記サードパーティ・サービスに関連付けられたサーバから、前記リクエストに応答して前記第１のユーザの現在の物理的位置に送られた前記サードパーティ・サービスの従業員の識別情報を受信すること、
前記従業員の識別情報を第１のユーザデバイスに送信すること、をさらに備える請求項１に記載の方法。
【請求項８】
第３のユーザに関連付けられた第３のユーザデバイスから、第２のユーザと共有される前記第３のユーザの現在の物理的位置を示す位置データを受信すること、
前記第２のユーザに関連付けられた第２のユーザデバイスから、前記第３のユーザの現在の物理的位置に関するリクエストを受信すること、
前記第２のユーザデバイスから受信した前記リクエストに応答して、共有された位置データに基づいて前記第３のユーザの現在の物理的位置を前記第２のユーザデバイスに送信すること、
前記第３のユーザの物理的位置が変化した場合、前記第２のユーザデバイスから、前記第２のユーザが前記第３のユーザに従うナビゲーション指示を提供するためのリクエストを受信すること、
前記第２のユーザの現在の物理的位置から前記第３のユーザの現在の物理的な位置へのナビゲーション指示を前記第２のユーザデバイスに送信すること、
前記第３のユーザの物理的位置が変化した場合、更新されたナビゲーション指示を前記第２のユーザデバイスに送信すること、をさらに備える請求項１に記載の方法。
【請求項９】
前記第３のユーザデバイスから目的地を受信すること、
前記第２のユーザデバイスから、前記第３のユーザデバイスから受信した目的地へナビゲートするためのリクエストを受信すること、
更新されたナビゲーション指示を前記第２のユーザデバイスに送信して前記第２のユーザデバイスの現在の物理的位置から目的地までのルートを反映すること、をさらに備える請求項８に記載の方法。
【請求項１０】
第３のユーザに関連付けられた第３のユーザデバイスから、第２のユーザと共有される前記第３のユーザの現在の物理的位置を示す位置データを受信すること、
前記第２のユーザに関連付けられた前記第２のユーザデバイスから、前記第３のユーザの現在の物理的位置に関するリクエストを受信すること、
前記第２のユーザデバイスから受信した前記リクエストに応答して、共有された位置データに基づいて前記第３のユーザの現在の物理的位置を第２のユーザデバイスに送信すること、
前記第２のユーザデバイスから、前記第２のユーザの現在の物理的位置と前記第３のユーザの現在の物理的位置との間の集合場所の提案を提供するためのリクエストを受信すること、
前記第２のユーザの現在の物理的位置と前記第３のユーザの現在の物理的位置との間の中間点領域を決定すること、
ソーシャルネットワーキングシステム内の第２および第３のユーザの一方または両方によって取られた複数のアクションに基づいて、前記第２のユーザデバイスに、集合場所の提案を送信すること、をさらに備え、
前記複数のアクションは、前記集合場所の提案の優先度を示す、請求項１に記載の方法。
【請求項１１】
複数の命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、
前記複数の命令は、処理デバイス内の１つまたは複数のプロセッサにより実行されると、前記処理デバイスに、方法を実行させ、
前記方法は、
第１のユーザに関連付けられた第１のユーザデバイスから、第２のユーザと共有されるべき前記第１のユーザの現在の物理的位置を示す位置データを受信すること、
前記第２のユーザに関連付けられた第２のユーザデバイスから、前記第１のユーザの現在の物理的位置に関するリクエストを受信すること、
前記第２のユーザデバイスから受信した前記リクエストに応答して、共有された位置データに基づいて前記第１のユーザの現在の物理的位置を前記第２のユーザデバイスに送信すること、
前記第２のユーザデバイスからサードパーティ・サービスの選択を受信すること、
前記第１のユーザの現在の物理的位置に製品を送るかまたはサービスを提供するための前記サードパーティ・サービスに対するリクエスト内で、前記サードパーティ・サービスに関連付けられたサーバに前記第１のユーザの現在の物理的位置を送信すること、を備える、非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記サードパーティ・サービスに対するリクエストは、
前記第１のユーザをピックアップするカーサービスを提供するための前記サードパーティ・サービスに対するリクエストを含む、請求項１１に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項１３】
前記方法は、
前記第２のユーザの現在の物理的位置を示す位置データを前記第２のユーザデバイスから受信することをさらに備え、
前記サードパーティ・サービスに対するリクエストは、
前記第２のユーザの現在の物理的位置と、前記第１のユーザを前記第２のユーザの現在の物理的位置に運ぶカーサービスに関するリクエストをさらに含む、請求項１２に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項１４】
前記方法は、
前記第１のユーザの現在の物理的位置から前記第２のユーザの現在の物理的位置まで前記第１のユーザを運ぶための見積もり料金を、前記サードパーティ・サービスに対するリクエストに応答して前記サードパーティ・サービスに関連付けられたサーバから受信すること、をさらに備える、請求項１３に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項１５】
前記サードパーティ・サービスに対するリクエストは、
前記第１のユーザの現在の物理的位置にアイテムを配送するリクエストを含む、請求項１１に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項１６】
前記サードパーティ・サービスに対するリクエストを送信することは、
前記第１のユーザの名前または前記第１のユーザのプロファイル画像を前記サードパーティ・サービスに送信することを含む、請求項１１に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項１７】
前記方法は、
前記サードパーティ・サービスに関連付けられたサーバから、前記リクエストに応答して前記第１のユーザの現在の物理的位置に送られた前記サードパーティ・サービスの従業員の識別情報を受信すること、
前記従業員の識別情報を第１のユーザデバイスに送信すること、をさらに備える、請求項１１に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項１８】
前記方法は、
第３のユーザに関連付けられた第３のユーザデバイスから、第２のユーザと共有される前記第３のユーザの現在の物理的位置を示す位置データを受信すること、
前記第２のユーザに関連付けられた第２のユーザデバイスから、前記第３のユーザの現在の物理的位置に関するリクエストを受信すること、
前記第２のユーザデバイスから受信した前記リクエストに応答して、共有された位置データに基づいて前記第３のユーザの現在の物理的位置を前記第２のユーザデバイスに送信すること、
前記第３のユーザの物理的位置が変化した場合、前記第２のユーザデバイスから、前記第２のユーザが前記第３のユーザに従うナビゲーション指示を提供するためのリクエストを受信すること、
前記第２のユーザの現在の物理的位置から前記第３のユーザの現在の物理的な位置へのナビゲーション指示を前記第２のユーザデバイスに送信すること、
前記第３のユーザの物理的位置が変化した場合、更新されたナビゲーション指示を前記第２のユーザデバイスに送信すること、をさらに備える、請求項１１に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項１９】
前記方法は、
前記第３のユーザデバイスから目的地を受信すること、
前記第２のユーザデバイスから、前記第３のユーザデバイスから受信した目的地へナビゲートするためのリクエストを受信すること、
更新されたナビゲーション指示を前記第２のユーザデバイスに送信して前記第２のユーザデバイスの現在の物理的位置から目的地までのルートを反映すること、をさらに備える、請求項１８に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項２０】
前記方法は、
第３のユーザに関連付けられた第３のユーザデバイスから、第２のユーザと共有される前記第３のユーザの現在の物理的位置を示す位置データを受信すること、
前記第２のユーザに関連付けられた前記第２のユーザデバイスから、前記第３のユーザの現在の物理的位置に関するリクエストを受信すること、
前記第２のユーザデバイスから受信した前記リクエストに応答して、共有された位置データに基づいて前記第３のユーザの現在の物理的位置を第２のユーザデバイスに送信すること、
前記第２のユーザデバイスから、前記第２のユーザの現在の物理的位置と前記第３のユーザの現在の物理的位置との間の集合場所の提案を提供するためのリクエストを受信すること、
前記第２のユーザの現在の物理的位置と前記第３のユーザの現在の物理的位置との間の中間点領域を決定すること、
ソーシャルネットワーキングシステム内の第２および第３のユーザの一方または両方によって取られた複数のアクションに基づいて、前記第２のユーザデバイスに、集合場所の提案を送信すること、をさらに備え、
前記複数のアクションは、前記集合場所の提案の優先度を示す、請求項１１に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の様々な実施形態は、位置データをリアルタイムで共有することに関する。特に、実施形態は、ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスのリクエストを実行することに関する。
【背景技術】
【０００２】
ソーシャルネットワーキングシステムは、ユーザがソーシャルネットワーク内に表される様々なオブジェクトと対話することを可能にする。例えば、ソーシャルネットワーキングシステムは、他のユーザまたはエンティティを接続（connection）として指定する（または他のユーザまたはエンティティと接続するか、または関係を形成する）こと、接続に貢献して対話すること、メディアまたはコメントを投稿すること、外部コンテンツに対するリンクを共有すること、位置データを共有すること、アプリケーションを使用すること、グループに参加すること、イベントの出席者をリストし、確認すること、接続を招待すること、ソーシャルインタラクションを促進する他のタスクを実行することを、ユーザに実行させることができる。また、外部アプリケーションは、ソーシャルネットワーキングシステムのサービスを使用して、認証されたユーザが外部アプリケーションの使用と上記のソーシャルインタラクション（social interaction）の一部を組み込むことを可能にする。同様のインタラクションは、他のネットワークサービス内のユーザーエクスペリエンス（user experience）の一部でもある。
【発明の概要】
【課題を解決するための手段】
【０００３】
例示的な方法、装置、およびシステムは、第１のユーザに関連付けられた第１のユーザデバイスから、第１のユーザの現在の物理的位置を示す位置データを受信する。例えば、モバイルデバイスは、グローバル・ポジショニング・システム（ＧＰＳ）データまたはモバイルデバイスによって取得された他の位置データをサーバにアップロードする位置共有アプリケーションを実行することができる。実施形態は、第２のユーザに関連付けられた第２のユーザデバイスから、第１のユーザの現在の物理的位置に関するリクエストを受信する。受信された選択に応答して、共有された位置データに基づいて第１のユーザの現在の物理的位置が、第２のユーザデバイスに送信される。例えば、位置共有アプリケーション内で、第１のユーザは、第２のユーザを個別に、またはグループの一部として、第１のユーザの位置を閲覧することができるように指定することができる。実施形態は、さらに、第２のユーザデバイスからサードパーティ・サービスの選択を受信する。第１のユーザの現在の物理的位置は、サービスまたは製品を第１のユーザの現在の物理的位置に送るために、サードパーティ・サービスのリクエスト内で、サードパーティ・サービスに関連付けられたサーバに送信される。例えば、第２のユーザは、カーサービスを選択し、第１のユーザをピックアップし、第２のユーザを第１のユーザに連れて行くなどのように本明細書で説明される実施形態に指示することができる。
【０００４】
別の実施形態では、キャラバンのためのナビゲーションを提供するリクエストが受信される。例えば、第１のユーザおよび第２のユーザは、異なる２つの車両で移動してもよい。１人のユーザがキャラバンを導き、他のユーザはフォロワになっている。第１のユーザと第２のユーザとの間の共有された位置データを使用して、実施形態は、リーダーが移動しているときに、定期的に更新されたリーダーへのルートをフォロワに提供する。実施形態はさらに、リーダーが目的地を入力し、目的地をフォロワと共有することを可能にする。フォロワは、目的地を受信し、リーダーの追従から最終目的地へのマッピングされたルートにルーティングを変更することができる。さらに、実施形態は、リーダーがフォロワになり、フォロワがリーダーになるようにフォロワとリーダーが役割を変更することを可能にする。実施形態はさらに、ユーザがキャラバンのナビゲーションユーザインタフェース内のメッセージまたはコールを介して容易に通信することを可能にする。
【０００５】
さらに別の実施形態では、第１および第２のユーザに提案される集合場所を提供するためのリクエストが受信される。例えば、リクエストは、レストラン、カフェ、バーなどのカテゴリを含むことができる。実施形態は、第１のユーザと第２のユーザの共有された複数の位置間の中間点領域を決定する。実施形態はさらに、第１のユーザと第２のユーザの一方または両方が頻繁に訪れたか、またはそうでなければユーザの嗜好に合致すると決定された中間点領域の１つまたは複数の位置を決定する。決定された１つまたは複数の位置が提案として提示される。
【０００６】
他の特徴および利点は、添付図面および詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００７】
【図１】ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行するソーシャルネットワーキングシステムの例示的なネットワーク環境を示す。
【図２】ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行するように使用されるソーシャルネットワークデータの例示的なグラフを示す。
【図３Ａ】ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行する例示的な方法を示す。
【図３Ｂ】ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行する例示的な方法を示す。
【図３Ｃ】ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行する例示的な方法を示す。
【図３Ｄ】ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行する例示的な方法を示す。
【図４】共有されたユーザ位置データを含む例示的なユーザインタフェースを示す。
【図５】選択されたユーザの共有されたユーザ位置データを含む例示的なユーザインタフェースを示す。
【図６】選択されたユーザの位置データに基づいて実行され得るサービスのメニューを含む例示的なユーザインタフェースを示す。
【図７】第１および第２のユーザの共有された複数の位置間のカーサービスの見積もり料金を含む例示的なユーザインタフェースを示す。
【図８】第１および第２のユーザの共有された複数の位置間でカーサービスをリクエストする例示的なユーザインタフェースを示す。
【図９】複数のユーザ間で共有される位置データに基づくキャラバンのナビゲーションのためのオプションのメニューを含む例示的なユーザインタフェースを示す。
【図１０】キャラバンのナビゲーションサービスにおけるマッピングされたルートを含む例示的なユーザインタフェースを示す。
【図１１】複数のユーザ間で共有される位置データに基づいて、提案される集合位置を生成し共有するための例示的なユーザインタフェースを示す。
【図１２】ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行するための例示的な処理システムをブロック図で示す。
【発明を実施するための形態】
【０００８】
本発明は、添付図面の図において限定ではなく一例として示され、同様の参照符号が同様の要素を示す。
本明細書で説明される実施形態は、ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行する。具体的には、実施形態は、位置共有アプリケーションにおける複数のユーザが、他のユーザを選択し、選択されたユーザによって共有される位置データに基づいてカーサービスをリクエストし、選択されたユーザによって共有される位置データに基づいて選択されたユーザにアイテムを配信し、キャラバン（caravan）のためのナビゲーション（例えば、キャラバンフォロワ（caravan follower）からキャラバンリーダー（caravan leader）への定期的に更新されたルート）、および／または選択されたユーザと集合するための位置の提案をリクエストすることができる。結果として、リアルタイムの位置データ共有プラットフォームの複数のユーザは、他のユーザの位置を受動的に閲覧するのではなく、共有の位置データに基づいてサービスリクエストを自動化するためにプラットフォームを利用することができる。
【０００９】
以下の説明では、多くの具体的な詳細が述べられている。しかしながら、本発明の実施形態は、これらの特定の詳細なしに具体化され得ることが理解される。プロモーション構成（promotion configuration）および支援の実施形態を説明するためにソーシャルネットワーキングシステムが使用されるが、これらの概念は一般に他のネットワークサービス／エンティティ、ウェブサイトなどに適用可能であることが理解されよう。本明細書における「一実施形態」、説明された実施形態が特定の特徴、構造、または特性を含むことができることを示しているが、すべての実施形態は必ずしも特定の特徴、構造または特性を含む必要はない。さらに、そのような語句は必ずしも同じ実施形態を指しているわけではない。さらに、特定の特徴、構造、または特性が実施形態に関連して記載されている場合、明示的に記載されているか否かに関わらず、そのような特徴、構造、または特性に影響を与えることは、当業者の知識の範囲内であると考慮される。
【００１０】
図１は、ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行する、ソーシャルネットワーキングシステム１３０を含むシステム１００の例示的なネットワーク環境を示す。ソーシャルネットワーキングシステム１３０は、本発明の実施形態に従って、そのユーザ１０２Ａ〜１０２Ｎに、ソーシャルネットワーキングシステム１３０の他のユーザ１０２Ａ〜１０２Ｎおよびエンティティと通信し対話する機能を提供する。ユーザデバイス１０４Ａ〜１０４Ｎは、ソーシャルネットワーキングシステム１３０と相互作用することが可能であり、ネットワーク（例えば、ネットワーク１２１）を介してユーザ入力を受信し、データを送信および／または受信することができる任意のタイプのコンピューティングデバイスとすることができる。例示的なユーザデバイス１０４Ａ〜１０４Ｎは、デスクトップまたはラップトップコンピュータなどの従来のコンピュータシステムを含むか、またはパーソナルデジタルアシスタント（ＰＤＡ）、セルラーまたは携帯電話、スマートフォン、イン／アウト・カーナビゲーションシステム（in- or out-of-car navigation systems）、ゲーム装置、または本明細書に記載の１つまたは複数の実施形態を具体化するようにプログラムされた他の電子装置等の複数のコンピュータ機能を有するデバイスを含み得る。
【００１１】
一実施形態では、ユーザデバイス（例えば、１０４Ａ）は、ユーザデバイス１０４Ａのユーザ１０２Ａがソーシャルネットワーキングシステム１３０と対話することを可能にするユーザアプリケーション（例えば１０５Ａ）を実行することができる。例えば、ユーザアプリケーション１０５Ａは、ウェブブラウザアプリケーション（Microsoft Windows Internet Explorer、Mozilla Firefox、Apple Safari、Google Chrome、Operaなど）などがある。一実施形態では、ユーザアプリケーション１０５Ａは、専用クライアントアプリケーション（例えば、ｉＰｈｏｎｅまたはｉＰａｄ用のＦａｃｅｂｏｏｋなど）であり、一実施形態では、ユーザアプリケーション１０５Ａは、ＡＰＩリクエストサーバ１２５を介してソーシャルネットワーキングシステム１３０と直接インタフェースするＡＰＩ（Application Programming Interface）を利用することができるＷｉｎｄｏｗｓ（登録商標）、Ｍａｃ  ＯＳＸ（登録商標）、ｉＯＳ（登録商標）、またはＡＮＤＲＯＩＤ（商標）等のユーザデバイス１０４Ａのネイティブプラットフォームまたはオペレーティングシステムである。
【００１２】
ユーザデバイス１０４Ａ〜１０４Ｎは、インターネット、企業イントラネット、仮想プライベートネットワーク（Virtual Private Network : VPN）、ローカルエリアネットワーク（LAN）、ワイヤレスローカルエリアネットワーク（WLAN）、セルラーネットワーク、ワイドエリアネットワーク（WAN）、メトロポリタンエリアネットワーク（MAN）、または２つ以上のそのようなネットワークの組み合わせ等のネットワーク１２１または複数のネットワークの集合を介してソーシャルネットワーキングシステム１３０と通信するように構成される。ネットワーク１２１は、有線、無線、またはその両方の組み合わせであってもよい。一実施形態では、ネットワーク１２１は、標準的な通信技術および／またはプロトコルを使用する。
【００１３】
いくつかの実施形態では、ソーシャルネットワーキングシステム１３０は、ユーザ１０２Ａ〜１０２Ｎおよび／または他のオブジェクトに関連するユーザプロファイル、ならびに複数のユーザと他のユーザ１０２Ａ〜１０２Ｎおよび／または複数のオブジェクトとの間の接続を記憶する１つまたは複数のコンピューティングデバイスを備える。ソーシャルネットワーキングシステム１３０を使用するユーザ１０２Ａ〜１０２Ｎは、接続を望むソーシャルネットワーキングシステム１３０の他のユーザまたはオブジェクトに接続を追加することができ、これらの他のユーザまたはオブジェクトと相互作用することもできる。ソーシャルネットワーキングシステム１３０のユーザは個人（例えば人間）であり、オブジェクトは、（企業、組織、大学、製造業者、ブランド、有名人などの）エンティティ、概念、または場所、アルバム、記事、本、映画、食物などを含むが、これに限定されない他の非人間のものを含み得る。
【００１４】
ソーシャルネットワーキングシステム１３０は、複数のユーザ、複数のオブジェクト、および複数のユーザおよび／または複数のオブジェクト間の接続に関する記憶されたデータに基づいて、ソーシャルグラフストア１４０内に複数のエッジにより相互接続された複数のノードを含む「ソーシャルグラフ（social graph）」を生成および維持する。ソーシャルグラフの各ノードは、別のノード上で動作することができ、および／または別のノードによって動作することができるユーザまたはオブジェクトを表す。ソーシャルグラフ内の２つのノード間のエッジは、２つのノード間の特定の種類の接続を表す。２つのノードは、他のノード上の複数のノードのうちの１つによって実行されたアクションに起因する可能性がある。例えば、ユーザが友人として追加のユーザを識別すると、ソーシャルグラフのエッジが生成され、第１のユーザを表すノードと、追加のユーザを表す追加のノードとが接続される。生成されたエッジは、ユーザが友人であることを示す接続タイプを有する。様々なノードが互いに相互作用すると、ソーシャルネットワーキングシステム１３０は、様々なノードを接続するエッジを追加、削除、または変更して、相互作用を反映する。例示的なソーシャルグラフが、図２を参照して説明される。
【００１５】
これらの機能を提供するために、ソーシャルネットワーキングシステム１３０の実施形態は、ＡＰＩリクエストサーバ１２５、ウェブサーバ１２３、メッセージサーバ１２４、アクションロガー（action log）１２６、およびデータストア１０１のセットを含む。この実施形態は、データストア１０１において、ノードストア１４２およびプロモーションストア（promotion store）１４４を含むソーシャルグラフストア１４０と、コンテンツストア１４６と、アクションログ１４８と、ユーザプロファイルデータストア１５２と、オブジェクトデータストア１５４とを含む。他の実施形態では、ソーシャルネットワーキングシステム１３０は、様々なアプリケーションのための追加の、より少ない、または異なるモジュールを含むことができる。もちろん、システムの詳細を不明瞭にしないように、複数のプロセッサ、複数のメモリ、複数のセキュリティ機構、複数のロードバランサ、複数のフェイルオーバーサーバ、複数の管理およびネットワーク操作コンソールなどの従来のコンポーネントが図１に示されていない。
【００１６】
ソーシャルネットワーキングシステム１３０は、そのユーザ１０２Ａ〜１０２Ｎが、本明細書で説明されるように、互いに通信し、あるいは互いに相互作用し、コンテンツにアクセスすることを可能にする。ソーシャルネットワーキングシステム１３０は、ユーザプロファイルデータストア１５２にユーザプロファイルを記憶する。ユーザプロファイルは、ユーザによって明示的に共有されたユーザに関する宣言的情報（declarative information）を含み、ソーシャルネットワーキングシステム１３０によって推測されるプロファイル情報も含むことができる。ユーザプロファイルは、複数のデータフィールドを含み、各データフィールドは、ソーシャルネットワーキングシステム１３０の対応するユーザの１つ以上の属性を示す。ユーザプロファイルデータストア１５２に格納されたユーザプロファイル情報は、仕事経験、教育履歴、性別、関係状態、趣味、位置、他の好みなどの経歴、人口統計、およびその他のタイプの説明情報を含むソーシャルネットワーキングシステム１３０のユーザ１０２Ａ〜１０２Ｎを示す。ユーザプロファイルはまた、ユーザによって提供される情報を記憶してもよい。例えば、ユーザによって提供される画像またはビデオは、ユーザプロファイル内に格納されてもよい。他の実施形態では、ユーザのテキストデータのみがユーザプロファイルに格納され、他のデータ（例えば、画像、ビデオ）はマルチメディアストアに記憶され、（例えば、ユーザのユーザ識別子をマルチメディアコンテンツの画像／ビデオ識別子と関連付けて）ユーザに関連付けられる。特定の実施形態では、ソーシャルネットワーキングシステム１３０のユーザを含むか、または描写する画像またはビデオは、それらのユーザの識別情報で「タグ付け」されてもよい。ユーザプロファイルデータストア１５２内のユーザプロファイルは、コンテンツストア１４６内のコンテンツアイテムに対して実行され、エッジストア１４４に記憶された対応するユーザによる（ユーザプロファイルまたはアクションログ１４８に記憶されている）アクションへの参照を維持することもできる。ユーザは、そのユーザのユーザプロファイルに記憶されている１つまたは複数のプライバシー設定を指定することもできる。プライバシー設定は、ソーシャルネットワーキングシステム１３０またはソーシャルネットワーキングシステム１３０の他のユーザがそのユーザのユーザプロファイルからアクセスすることを許可される情報を制限する。
【００１７】
ウェブサーバ１２３は、ユーザデバイス１０４Ａ〜１０４Ｎからのリクエストを承認し、および／または画像ファイル、オーディオファイル、ビデオファイル、Ｊａｖａアプレット、Ｆｌａｓｈ、ＸＭＬ、ＪａｖａＳｃｒｉｐｔ、カスケーディングスタイルシート（Cascading Style Sheets : CSS）などのファイル１０４Ａ〜１０４Ｎを含むウェブページまたは他のウェブ関連コンテンツをユーザデバイス１０４Ａ〜１０４Ｎに送信することによって、ネットワーク１２１を介して１つまたは複数のユーザデバイス１０４Ａ〜１０４Ｎにソーシャルネットワーキングシステム１３０をリンクさせる。いくつかの実施形態におけるウェブサーバ１２３は、ネットワーク１２１を介してメッセージを送受信するために、一組の１つ以上のネットワークインタフェース１２７を利用するように構成される。いくつかの実施形態では、ウェブサーバ１２３は（付加的にまたは交互に）メッセージサーバ１２４（例えば、専用サーバエンドステーション、専用ソフトウェアアプリケーションなど）を利用して、ユーザデバイス１０４Ａ〜１０４Ｎと通信するか、インスタント・メッセージ、キューに入れられたメッセージ（例えば、電子メール）、テキストおよびＳＭＳ（ショート・メッセージ・サービス）メッセージを受信するか、または他の適切なメッセージング技術を利用する。
【００１８】
いくつかの実施形態では、ソーシャルネットワーキングシステム１３０を介してユーザによって別のユーザに送信されたメッセージは、例えば、ユーザの特定の接続（ソーシャルネットワークにおける直接的に接続された複数のユーザ、ソーシャルグラフにおける複数のホップ離れた（more than one hop away）他のユーザなど）がメッセージを受信する。（メッセージの受信者に加えて）ソーシャルネットワーキングシステム１３０の他のユーザが閲覧することができるメッセージのタイプの例は、一般に「ポスト（post）」として知られている。いくつかの実施形態では、ユーザは、他のユーザのみによって取り出すことができる他のユーザへのプライベートメッセージを送信することができる。
【００１９】
ユーザがソーシャルネットワーキングシステム１３０内でアクションするとき、アクションは、ユーザおよび／またはソーシャルネットワーキングシステム１３０の任意のプライバシー設定および制限に従って、アクションロガー１２６によってアクションログ１４８に記録されてもよい。一実施形態では、ソーシャルネットワーキングシステム１３０は、アクションログ１４８をエントリのデータベースとして維持する。アクションがソーシャルネットワーキングシステム１３０上で行われるとき、ソーシャルネットワーキングシステム１３０は、そのアクションのエントリをアクションログ１４８に追加することができる。様々な実施形態によれば、アクションロガー１２６は、ソーシャルネットワーキングシステム１３０上でのユーザの行動に関するウェブサーバ１２３からの通信を受信することができる。アクションロガー１２６は、アクションログ１４８にこれらのユーザアクションに関する情報を追加する。この情報は、ユーザに関連付けられたプライバシー設定の対象となる場合がある。特定のユーザが別のユーザに対して取るアクションは、アクションログ１４８などのデータベースまたは他のデータリポジトリに保持されている情報を介して、各ユーザのプロファイルに関連付けられる。アクションログ１４８に記憶され得るソーシャルネットワーキングシステム１３０で行われるアクションの例は、他のユーザへの接続の追加、ポストの作成または別のユーザへのメッセージの送信、他のユーザからのメッセージの読み取り、他のユーザによって関連付けられるかまたは作成されたコンテンツ（例えば、ウォールポスト、画像、ビデオ）を閲覧すること、他のユーザによってポストされたイベントへの出席、他のユーザと写真でタグ付けされることなどを含む。いくつかの実施形態では、複数のユーザに関連して特定のアクションが記載され、これらのアクションは、それらのユーザに関連付けられてもよく、アクションログ１４８に記憶されてもよい。
【００２０】
ユーザは、ソーシャルネットワーキングシステム１３０上の様々なオブジェクトと対話することができる。これは、ポストに対するコメント、リンクの共有、およびモバイルデバイスを介した物理的位置へのチェックイン、シーケンスまたは他のインタラクションにおけるコンテンツアイテムへのアクセスが含まれる。アクションログ１４８に含まれるソーシャルネットワーキングシステム１３０上のオブジェクトとの対話の追加の例には、ソーシャルネットワーキングシステム１３０へのログイン、写真アルバムに対するコメント、複数のユーザ間の通信、各エンティティのページに「いいね」を表明すること（like）よってミュージシャンまたはブランドのファンになること、カレンダーにイベントを追加すること、グループに参加すること、イベントを作成すること、アプリケーションを承認すること、アプリケーションを使用すること、およびトランザクション（transaction）を行うことなどが含まれる。さらに、アクションログ１４８は、ソーシャルネットワーキングシステム１３０およびソーシャルネットワーキングシステム１３０上で動作する他のアプリケーション上の広告とのユーザの対話を記録する。いくつかの実施形態では、アクションログ１４８からのデータが使用されて、ユーザプロファイルに含まれる関心を増強し、ユーザの好みをより完全に理解できるようにする。
【００２１】
アクションログ１４８は、ソーシャルネットワーキングシステム１３０によって用いられて、ソーシャルネットワーキングシステム１３０に通信される外部アプリケーション１５０（例えば、ウェブサイト）上のアクションとともに、ソーシャルネットワーキングシステム１３０上の他のユーザアクションを追跡してもよい。例えば、ソーシャルネットワーキングシステム１３０は、ユーザが外部（例えば、サードパーティ）アプリケーション１５０（例えば、ウェブサイト）、外部ストレージ１５５、および／または外部サーバ１１５（例えば、サーバエンドステーション）と対話することを可能にすることができる。ＡＰＩリクエストサーバ１２５は、外部システム（例えば、外部サーバ１１５の外部アプリケーション１５０、および／またはユーザデバイス１０４Ａ〜１０４Ｎのユーザアプリケーション１０５Ａ）に、ソーシャルネットワーキングシステム１３０から情報にアクセスさせるか、またはＡＰＩ呼び出しを発行することによってソーシャルネットワーキングシステム１３０に情報を送信させる。ソーシャルネットワーキングシステム１３０によって提供される情報は、ユーザの個々のプライバシー設定に従うユーザプロファイル情報またはユーザの接続情報を含むことができる。例えば、システム（例えば、外部アプリケーション１５０）は、ネットワーク１２１を介してソーシャルネットワーキングシステム１３０にＡＰＩリクエストを送信して、ユーザに代わってストーリーを公開し、（ユーザからの許可を得た後）ユーザについての情報をリクエストし、ユーザに代わって写真をアップロードしてもよい。ＡＰＩリクエストは、ＡＰＩリクエストサーバ１２５によってソーシャルネットワーキングシステム１３０で受信され、ＡＰＩリクエストサーバ１２５は、ＡＰＩリクエストによって求められる動作を実行することによってリクエストを処理し、これらの応答をネットワーク１２１を介してリクエスト元のアプリケーション１５０に返送する。
【００２２】
コンテンツストア１４６は、画像、ビデオ、および／またはオーディオファイルなどのユーザプロファイルに関連付けられたコンテンツアイテムを記憶する。コンテンツストア１４６からのコンテンツアイテムは、ユーザプロファイルが閲覧されたとき、またはユーザプロファイルに関連付けられた他のコンテンツが閲覧されたときに表示されてもよい。例えば、表示されるコンテンツアイテムは、ユーザプロファイルに関連付けられた画像またはビデオを表示することができ、またはユーザの状態を表すテキストを表示することができる。さらに、他のコンテンツアイテムは、ユーザが他のユーザまたはエンティティへの接続を拡張し、新しいユーザをシステムに招待したり、ユーザ、オブジェクト、アクティビティ、またはソーシャルネットワーキングシステム１３０の機能に関連するコンテンツを表示することによってソーシャルネットワーキングシステム１３０との対話を増加させる。ソーシャルネットワーキングコンテンツアイテムの例は、他のアクションを実行するための示唆された接続または示唆、ソーシャルネットワーキングシステム１３０に提供または維持されるメディア（写真、ビデオなど）、ユーザがソーシャルネットワーキングシステムにポストしたステータスメッセージまたはリンク、イベント、グループ、（例えば、組織または商業エンティティを表す）ページ、およびソーシャルネットワーキングシステム１３０によって提供されるか、またはソーシャルネットワーキングシステム１３０を介してアクセス可能なその他のコンテンツを含む。
【００２３】
コンテンツストア１４６は、ソーシャルグラフストア１４０に含まれるエンティティに関連する１つ以上のページも含む。エンティティは、ビジネス、ベンダー、組織、または大学等のソーシャルネットワーキングシステム１３０の非個人的ユーザであり得るオブジェクトのタイプである。しかしながら、本発明のいくつかの実施形態では、エンティティは、有名人または他の周知の個人を表すことができ、したがって、人物のエンティティオブジェクトノードは、（その個人の「ブランド」として作用し、他のユーザが「いいね」を表明した関連ページを有する）ソーシャルグラフ内に存在することができ、同じ人のユーザノードもソーシャルグラフ（その人の個人アカウントの表現として機能する）に存在することができる。ページは、エンティティに関連するコンテンツと、ソーシャルネットワーキングシステム１３０のユーザにコンテンツを提示するための命令とを含む。例えば、ページは、（オブジェクトデータストア１５４からの）エンティティの格納されたコンテンツに関連するコンテンツを、そのページを閲覧しているユーザに提示する方法を記載する情報とともに識別する。
【００２４】
図示の実施形態では、ソーシャルネットワーキングシステム１３０は、複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行する位置サービスモジュール１２９を含む。別の実施形態では、位置サービスモジュール１２９は、外部サーバ１１５の一部である。例えば、位置サービスモジュール１２９は、外部アプリケーション１５０によって具体化されてもよい。一実施形態では、位置サービスモジュール１２９は、位置に基づくリクエスト（location-based request）の構成に対する複数の選択可能な要素を含むグラフィカルユーザインターフェース（ＧＵＩ）を生成する。ＧＵＩは、ユーザデバイス１０４に送信され、ユーザデバイス１０４によって表示される。ＧＵＩ内の要素の選択は、ユーザデバイス１０４から受信され、ここで説明される位置に基づくサービス（location-based services）を実行するために使用される。位置に基づくサービスの実行は、本明細書において図３〜図１１を参照して説明される。
【００２５】
図２は、ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行するために使用されるソーシャルネットワークデータの例示的なグラフ２００を示す。グラフ２００において、オブジェクトは円として示され、アクションは複数の円の間のラベル付き接続（labeled connection）として示される。ソーシャルネットワークまたは対応するソーシャルネットワークアプリケーションの開発者は、ユーザがソーシャルネットワークおよび／またはそのアプリケーションと対話できる様々な方法を表すアクションを定義する。ユーザがアクションを実行すると、ユーザとオブジェクト間で接続が確立される。たとえば、ユーザＡはソーシャルネットワークにおける多くのアクションを実行し、以前はボストンに住んでいたこと、現在ワシントンＤＣに住んでいて、民主党とＣｏｎＬａｗ  Ｌｏｖｅｒｓのグループに参加していて、ホワイトソックスのファンであり、Ｐｉ  Ｐｉｚｚｅｒｉａにチェックインし、ユーザＢと友達である。ユーザＢおよびユーザＣも、グラフ２００においてオブジェクトに関して多数のアクションを実行している。
【００２６】
一実施形態では、ユーザは、ユーザプロファイル２０５〜２１５に人口統計情報を追加することができる。一実施形態では、ユーザによって入力されていない人口統計情報について、ソーシャルネットワークアプリケーションは、ユーザのアクション、接続、および／または接続のアクションに基づいて推定を生成する。例えば、ユーザＢは、ユーザプロフィール２１０に母校を入力していない。ソーシャルネットワークアプリケーションは、ユーザＢの連絡先、活動、居住都市などから、ユーザＢの可能性の高い母校がブリガムヤング大学とハーバード大学の一方または両方であると判断することがある。一実施形態では、ユーザプロファイル２０５〜２１０は、他のユーザとの関係、ユーザが働いた場所、ユーザの興味などのような追加の情報を含む。
【００２７】
一実施形態では、ユーザは、他のユーザ／エンティティのアクションに関するフィードバックを提供することができる。その結果、アクションは、実行される可能性のあるオブジェクトとしても表示される。たとえば、ユーザＢはアーティスト、Ｔｈｅ  Ｋｉｌｌｅｒｓによる音楽を聴いた。結果として、ソーシャルネットワーキングシステムは、ユーザＢがアーティスト（The Killers）によって音楽を聴いたことを示すユーザＢに関連するナラティブ（narrative）（例えば、ニュースフィード、ユーザＢのプロフィールなど）を公表する。ニュースフィード、ユーザＢのプロフィール、またはソーシャルネットワーキングシステムの公表の別の形態を表示する際に、ソーシャルネットワーキングシステムは、ユーザＡにナラティブを表示する。次いで、ソーシャルネットワーキングシステムは、ユーザＡがユーザＢはＴｈｅ  Ｋｉｌｌｅｒｓを聞いたことに「いいね」と表明したことを示す入力をユーザＡから受け取る。
【００２８】
一実施形態では、人口統計学的データは、ユーザとオブジェクトとの間のアフィニティ（affinity）を示す重みまたはスコアをさらに含む。例えば、１つのオブジェクトを有する反復的なユーザアクションは、ユーザが制限された対話を有する別のオブジェクトよりもオブジェクトに対するより強いアフィニティを示すことができる。第１の接続度（First degree connections）、例えば、ユーザＡとユーザＢとの間の友達関係は、第２の接続度よりもより強いアフィニティを示し、例えば、ユーザＡが、ユーザＣと友達であるユーザＢと友達であり、ユーザＡとユーザＣとの間の第２の接続度を生成する。２人のユーザが結婚しているという表示は、２人のユーザが友達である場合よりも強いアフィニティを示し得る。さらに、アクション／ユーザの時間的および地理的近接度は、アフィニティの他の例示的な指標である。
【００２９】
一実施形態では、位置サービスモジュール１２９は、グラフ２００に格納されたユーザ特性を利用して、１つ以上の位置に基づくサービスを実行する。例えば、位置サービスモジュール１２９は、ソーシャルグラフ２００における（選択、接続タイプ、アフィニティなどに基づく）ユーザ接続を利用して、位置データを共有するためのプライバシー制御を適用することができる。さらに、位置サービスモジュール１２９は、グラフ２００を利用して、プロファイル情報をサードパーティ・サービスと共有したり、例えば本明細書で説明されるユーザのフィードバック、嗜好、チェックインなどに基づいて位置の提案を決定することができる。
【００３０】
図３Ａ〜３Ｄは、ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスリクエストを実行する例示的な方法３００を示す。図３Ａを参照すると、ブロック３０２において、位置サービスモジュール１２９は、第１のユーザの現在の物理的位置を表す位置データを受信する。例えば、モバイルデバイス１０４は、第１のユーザのユーザアカウントに関連付けられ、アカウントは、位置データの共有を可能にするプライバシー制御を含む。モバイルデバイス１０４は、グローバル・ポジショニング・システム（global positioning system : GPS）データまたはモバイルデバイス１０５によって取得された他の位置データを位置サービスモジュール１２９にアップロードする位置共有アプリケーション１０５を実行する。
【００３１】
ブロック３０４において、位置サービスモジュール１２９は、第２のユーザアカウントに関連付けられた第２のユーザデバイスから、第１のユーザの現在の物理的位置に関するリクエストを受信する。例えば、第２のユーザのモバイルデバイス１０４上で実行されている位置共有アプリケーション１０５は、位置共有アプリケーション１０５（または別のアプリケーション１０５の位置共有機能）を開くことおよび／または位置共有アプリケーション１０５の第１のユーザの表現（representation）を選択することに応答して、位置サービスモジュール１２９に対するリクエストを送信する。
【００３２】
ブロック３０６において、位置サービスモジュール１２９は、第１のユーザの現在の物理的位置を第２のユーザに送信する。例えば、位置サービスモジュール１２９は、受信した位置データまたは第１のユーザの位置データの別の表現を第２のユーザのモバイルデバイスに送信する。
【００３３】
ブロック３０８において、位置サービスモジュール１２９は、第１のユーザの現在の物理的位置に基づいて、第２のユーザデバイスからサービスのリクエストを受信する。例示的な位置に基づくサービスは、カーサービス、商品の配送、キャラバンのナビゲーション、および集合場所の提案を含むが、これらに限定されない。
【００３４】
ブロック３１０において、位置サービスモジュール１２９は、リクエストがカーサービスまたは製品の配送のいずれかに関するものであるかどうかを判定する。リクエストがカーサービスまたは製品の配送である場合、ブロック３１２において、位置サービスモジュール１２９は、リクエストがカーサービスまたは製品の配送に関するものであるかを判定する。リクエストが製品の配送に関するものである場合、ブロック３１４において、位置サービスモジュール１２９は、第１のユーザの現在の物理的位置を、配送アドレスとしてサードパーティ・サーバに送信する。例えば、位置サービスモジュール１２９は、アプリケーションプログラミングインターフェース（application programming interface : API）を使用して、そのアドレスをサードパーティ・ショッピングまたは配送プラットフォーム１５０に送信する。一実施形態では、位置サービスモジュール１２９は、第１のユーザの現在の物理的位置を、製品／配送に関する情報とともに、第１ユーザの現在の物理的位置を送信する。あるいは、位置サービスモジュール１２９は、第２ユーザが製品／配送の注文情報を入力するのを予測して、第１のユーザの現在の物理的位置を送信する。
【００３５】
一実施形態では、位置サービスモジュール１２９は、第１のユーザのアカウントに関連付けられたユーザプロファイル情報を、第１のユーザの現在の物理的位置とともに送信する。例えば、位置サービスモジュール１２９は、配送をさらに支援にするために、（第１のユーザのプライバシー設定によって許可されている場合）第１のユーザの名前および／またはプロフィール画像を送信することができる。
【００３６】
ブロック３１６において、位置サービスモジュール１２９は、オプションとして、配送リクエストを完了するか、またはサードパーティ・アプリケーションを起動するために、第２のユーザからの入力を受け取る。例えば、位置サービスモジュール１２９は、配信リクエストを完了するためのユーザ入力を受信するためのユーザインタフェースを提示し、および／または（例えば、ソーシャルネットワーキングシステム１３０内またはソーシャルネットワーキングシステム１３０の外部の）サードパーティ・アプリケーションを起動して配送リクエストを完了する。あるいは、位置サービスモジュール１２９は、第１のユーザの現在の物理的位置をサードパーティ・サーバに送信することに関連して、配送リクエストを完了するかまたはサードパーティ・アプリケーションを起動する。
【００３７】
リクエストがカーサービスに関するものである場合、方法３００はオフページコネクタ（off page connector）Ｂを介して継続し、図３Ｂを参照して説明される。リクエストが配送またはカーサービスに関するものでない場合、ブロック３１８において、位置サービスモジュール１２９は、そのリクエストがキャラバンのナビゲーションまたは集合場所の提案に関するものであるかどうかを判定する。リクエストがキャラバンのナビゲーションに関するものである場合、方法３００は、オフページコネクタＣを介して継続し、図３Ｃを参照して説明される。リクエストが集合場所の提案に関するものである場合、方法３００は、オフページコネクタＤを介して継続し、図３Ｄを参照して説明される。
【００３８】
図３Ｂを参照すると、ブロック３２０において、位置サービスモジュール１２９は、リクエストが第１のユーザをピックアップするためのカーサービスに関するものか、または第２のユーザをピックアップするためのカーサービスに関するものかを判定する。例えば、位置サービスモジュール１２９は、第１のユーザを第２のユーザに連れて行くかまたは第２のユーザを第１のユーザに連れて行くためのカーサービスをリクエストする選択可能なオプションを第２のユーザに提示することができる。一実施形態では、位置サービスモジュール１２９は、第２のユーザの現在の物理的な場所とは異なる目的地または異なる目的地を持たない第１のユーザをピックアップするためのカーサービスをリクエストする選択可能なオプションを第２のユーザに提示する。
【００３９】
リクエストが、カーサービスが第１のユーザをピックアップすることに関するものである場合、ブロック３２２において、位置サービスモジュール１２９は、第１のユーザの現在の物理的位置を、カーサービスに関連付けられたサードパーティ・サーバにピックアップアドレス（pickup address）として送信する。一実施形態では、位置サービスモジュール１２９は、目的地アドレスも送信する。例えば、リクエストが、第１のユーザを第２のユーザに連れて行くためのカーサービスに関するものである場合、位置サービスモジュール１２９は、第２のユーザの現在の物理的位置を目的地アドレスとして送信する。一実施形態では、位置サービスモジュール１２９は、第１のユーザのアカウントに関連付けられたユーザプロファイル情報を、第１のユーザの現在の物理的位置とともに送信する。例えば、位置サービスモジュール１２９は、（第１のユーザのプライバシー設定によって許可されている場合）第１のユーザの名前および／またはプロフィール画像を送信して、カーサービスの運転手が第１のユーザを予定された乗客として識別できるようにすることができる。
【００４０】
リクエストが第２のユーザをピックアップするカーサービスに関するものである場合、ブロック３２４において、位置サービスモジュール１２９は、第２のユーザの現在の物理的位置を、カーサービスに関連付けられたサードパーティ・サーバにピックアップアドレスとして送信する。一実施形態では、位置サービスモジュール１２９は、目的地アドレスも送信する。例えば、リクエストが第２のユーザを第１のユーザに連れて行くカーサービスに関するものである場合、位置サービスモジュール１２９は、第１のユーザの現在の物理的位置を目的地アドレスとして送信する。一実施形態では、位置サービスモジュール１２９は、第２のユーザのアカウントに関連付けられたユーザプロファイル情報を、第２のユーザの現在の物理的位置とともに送信する。例えば、位置サービスモジュール１２９は、（第２のユーザのプライバシー設定によって許可されている場合）第２のユーザの名前および／またはプロフィール画像を送信して、カーサービスの運転手が第２のユーザを予定された乗客として識別できるようにすることができる。
【００４１】
ブロック３２６において、位置サービスモジュール１２９は、オプションとして、サードパーティ・サーバから料金の見積もりを受信する。例えば、位置サービスモジュール１２９が（例えば、第１のユーザを第２のユーザに、またはその逆にするために）サードパーティ・サーバにピックアップアドレスおよび目的地アドレスの両方を送信する場合、サードパーティ・サーバは、カーサービスリクエストを完了する前に、またはその一部として料金の見積もりで応答することができる。
【００４２】
ブロック３２８において、位置サービスモジュール１２９は、入力を受け取ってカーサービス注文を完了するか、またはサードパーティのアプリケーションを起動してカーサービス注文を完了する。例えば、位置サービスモジュール１２９は、ユーザ入力を受け取ってカーサービス注文を完了し、および／または（例えば、ソーシャルネットワーキングシステム１３０のプラットフォーム内またはソーシャルネットワーキングシステム１３０の外部として）サードパーティのアプリケーションを起動してカーサービス注文を完了するためにユーザインタフェースを提示する。
【００４３】
ブロック３３０において、位置サービスモジュール１２９は、オプションとして、第１のユーザにカーサービス注文確認を送信する。例えば、位置サービスモジュール１２９は、カーサービス注文を完了したことに応答して注文確認情報を受信することができる。第２のユーザが第１のユーザをピックアップするカーサービスをリクエストした場合、位置サービスモジュール１２９は、第１のユーザにリクエストを通知する。一実施形態では、通知は、カーサービス会社の識別情報、第１のユーザをピックアップするカーサービス車両の識別情報、第１のユーザをピックアップするカーサービスドライバの識別情報、および／または、カーサービスが第１のユーザをピックアップする推定時間等の確認情報を含む。
【００４４】
共有位置データに基づくカーサービスのリクエストについては、図４〜図８を参照してさらに説明される。
図３Ｃを参照すると、ブロック３３２において、位置サービスモジュール１２９は、キャラバンのオプションを第２のユーザに提示する。例えば、位置サービスモジュール１２９は、キャラバンの目的地を入力するか、キャラバンを導くか、キャラバン内の第１のユーザに従うか、または第１のユーザによって入力された目的地にナビゲートする選択可能なオプションを第２のユーザに提示する。
【００４５】
ブロック３３４において、位置サービスモジュール１２９は、第２のユーザデバイスからキャラバンのオプションのうちの１つの選択を受信する。ブロック３３６において、受信された選択がキャラバンの目的地を入力するリクエストであるかどうかを判定する。受信された選択が目的地を入力するリクエストである場合、ブロック３３８において、位置サービスモジュール１２９は目的地アドレスを受信する。例えば、ユーザは、ＧＵＩに提示された入力ボックスにアドレス、ランドマーク、または他の位置データを入力することができる。あるいは、目的地アドレスの受信は、位置サービスモジュール１２９によって既に入力され、共有され、または別の方法で決定された位置のユーザ選択を含むことができる。
【００４６】
例えば、受信した目的地アドレスは、他のユーザの共有位置であってもよいし、入力された目的地の履歴からの位置であってもよい。
一実施形態では、位置サービスモジュール１２９は、目的地を入力するユーザに、目的地をキャラバンの別のユーザと共有するオプションを提供する。例えば、ユーザは、メニューからオプションを選択し、ボックス等をチェックして目的地を共有し、選択に応答して、位置サービスモジュール１２９は、本明細書でさらに説明されるように目的地を他のユーザに提供することができる。
【００４７】
ブロック３４０において、位置サービスモジュール１２９は、入力された目的地にルートをマッピングし、そのルートをキャラバン内の１人以上のユーザに提示する。例えば、位置サービスモジュール１２９は、第２のユーザが目的地を入力したことに応答して、第２のユーザの現在位置からの地図および／またはナビゲーション命令のリストを生成する。（ブロック３３６で）受信された選択が第１のユーザによって入力されたものと同じ目的地へのナビゲートである場合、位置サービスモジュール１２９は、第２のユーザの現在位置から第１のユーザによって入力された目的地までの地図および／またはナビゲーション命令のリストを生成する。一実施形態では、位置サービスモジュール１２９は、サードパーティのＡＰＩを利用して経路を生成する。
【００４８】
（ブロック３３６での）受信された選択が目的地を入力するリクエストでない場合、ブロック３４２において、位置サービスモジュール１２９は、フォロア（follower）としての第２のユーザからリーダーとしての第１のユーザまでのルートをマッピングし、そのルートをキャラバン内の１人または両方のユーザに提示する。例えば、第２のユーザがキャラバン内の第１のユーザに従うことを選択した場合、位置サービスモジュール１２９は、第２のユーザ（フォロア）から第１のユーザ（リーダー）へのルートをマッピングし提示する。第２のユーザが、第２のユーザがキャラバンを導くことを示す選択を入力すると、位置サービスモジュール１２９は、第１のユーザ（フォロア）から第２のユーザ（リーダー）へのルートをマッピングし提示する。一実施形態では、位置サービスモジュール１２９は、フォロワからリーダーへのルートをフォロワのみに提示する。別の実施形態では、位置サービスモジュール１２９は、フォロワが取る経路の表示、キャラバン内の複数のユーザ間の距離などとして、リーダーにルートを提示する。
【００４９】
ブロック３４４において、位置サービスモジュール１２９は、位置サービスモジュール１２９が第２のユーザデバイスから新しいキャラバンのオプションの選択を受信したかどうかを判定する。一実施形態では、位置サービスモジュール１２９は、キャラバンのナビゲーションＧＵＩ内に選択可能なユーザインタフェースオブジェクトを提示して、リーダーまたはフォロワがナビゲーションをキャンセルするか、または新しい選択を行うことを可能にする。例えば、ユーザは、役割を（リーダーからフォロワへ、またはその逆に）変更し、目的地を変更し、ナビゲーション／キャラバンを開始した後に目的地を入力し、目的地をキャラバンと共有し、単にリーダーに従うことから入力された／供給された目的地へのナビゲーションに変更し得る。
【００５０】
一実施形態では、位置サービスモジュール１２９は、キャラバンのナビゲーションＧＵＩ内に選択可能なユーザインタフェースオブジェクトを提示して、リーダーまたはフォロワがキャラバン内の別のユーザと通信することを可能にする。例えば、位置サービスモジュール１２９は、ユーザが、キャラバン内の複数のユーザ間で電話またはボイスオーバーインターネットプロトコル（voice over internet protocol : VOIP）コールを開始し、キャラバン内でボイスメッセージをキャラバン内の他のユーザに送信し、キャラバン内の他のユーザへのテキストメッセージを作成し、キャラバン内の他のユーザに画像やその他のメディアを送信するなどを可能にする。
【００５１】
位置サービスモジュール１２９が新しいキャラバンのオプションの選択を受信した場合、方法３００はブロック３３６に戻る。位置サービスモジュール１２９が新しいキャラバンのオプションの選択を受信しなかった場合、ブロック３４６において、位置サービスモジュール１２９は、第１および第２のユーザからの共有位置データに基づいて定期的な間隔でフォロワからリーダーへのルートを更新する。例えば、リーダーおよび／またはフォロワが移動している可能性があり、フォロワが取るべきルートは、リーダーおよび／またはフォロワの新しい位置を反映するように定期的に更新される。
【００５２】
一実施形態では、キャラバンのナビゲーションは、ユーザが目的地に到着すると終了する。例えば、位置サービスモジュール１２９は、目的地と一致する現在の物理的位置を共有しているユーザのルートの定期的な更新を終了する。一実施形態では、位置サービスモジュール１２９は、ユーザが目的地に到着したことを検出することに応答して、ソーシャルネットワーキングシステムのポスト提案（post recommendation）を提示する。例えば、位置サービスモジュール１２９は、目的地の位置に「チェックイン（check-in）」をポストするオプションをユーザに提示する。
【００５３】
共有位置データに基づくキャラバンのナビゲーションのリクエストは、図４〜６，９〜１０を参照して本明細書でさらに説明される。
図３Ｄを参照すると、ブロック３４８において、位置サービスモジュール１２９は、オプションとして、第２のユーザから位置提案（location suggestion）のカテゴリの選択を受信する。例示的なカテゴリは、レストラン、カフェ、バー、公園、小売店、芸術および娯楽施設などを含む。
【００５４】
ブロック３５０において、位置サービスモジュール１２９は、第１のユーザと第２のユーザとの間の中間点領域を決定する。例えば、位置サービスモジュール１２９は、第１のユーザと第２のユーザとの間で等距離にあるポイントを決定することができる。中間点領域は、等距離点からの半径または他の距離の値内の地理的領域を含むことができる。
【００５５】
ブロック３５２において、位置サービスモジュール１２９は、決定された中間点領域内の複数の候補集合場所を決定する。一実施形態では、位置サービスモジュール１２９は、ソーシャルグラフデータに基づいて複数の候補位置を決定する。例えば、位置サービスモジュール１２９は、第１および／または第２のユーザがお気に入り、「いいね」を表明した、頻繁に訪れた、肯定評価などを与えたとして示した１つまたは複数の候補位置を選択する。一実施形態では、位置サービスモジュール１２９は、第１および／または第２のユーザがお気に入り、「いいね」を表明した、頻繁に訪れた、肯定評価などを与えたとして示した複数の位置と同様な１つまたは複数の候補位置を選択する。例えば、ユーザが第１のレストランをお気に入りに指定した場合、位置サービスモジュール１２９は、料理の種類、価格帯などの第１のレストランと特性を共有する第２のレストランを選択する。一実施形態では、位置サービスモジュール１２９は、他のユーザがお気に入りとして示した、「いいね」を表明した、頻繁に訪れた、肯定評価を与えられたなどの１つ以上の候補位置を選択する。例えば、位置サービスモジュール１２９は、会うべき複数のユーザの一方または両方と同様のソーシャルグラフデータ（人口統計情報、取られたアクション、興味など）を有する１人または複数のユーザによって「いいね」と表明された候補位置を選択することができる。一実施形態では、位置サービスモジュール１２９は、米国特許出願第１３／８００，６３３号に開示されているように、ランキングに基づいて１つ以上の位置を提案する。さらに、位置サービスモジュール１２９は、他のユーザの間で一般に人気のある候補位置を選択してもよい。１つ以上の候補位置を決定すると、位置サービスモジュール１２９は、（複数の）候補位置を第２のユーザに、例えばリストまたはマップにおいて提示する。
【００５６】
ブロック３５４において、位置サービスモジュール１２９は、第２のユーザデバイスからユーザ入力を受信し、ユーザ入力が集合場所としての候補位置の選択または追加の候補位置のリクエストを含むかどうかを判定する。ユーザ入力が追加の候補位置のリクエストを含む場合、ブロック３５６において、位置サービスモジュール１２９は、オプションとして、中間点領域のサイズを増大させる。例えば、中間点領域内に追加の候補位置がない場合、位置サービスモジュール１２９は、中間点領域のサイズを段階的に増大させる。一実施形態では、位置サービスモジュール１２９は、中間点領域を移動またはサイズ変更するためのユーザ入力を受け取る。さらなる位置のリクエスト（または中間点領域のサイズ変更／移動）に応答して、方法３００は、ブロック３５２に戻り、現在の／増大した中間点領域内の追加の候補位置を決定し提示する。
【００５７】
ユーザ入力が、第２のユーザの集合場所としての候補位置の選択を含む場合、位置サービスモジュール１２９は、選択された位置を第１のユーザに提示する。例えば、位置サービスモジュール１２９は、第２のユーザが、選択された位置で集合を提案したことを示すメッセージを第１のユーザに送信する。
【００５８】
ブロック３６０において、位置サービスモジュール１２９は、第１のユーザが選択された位置を確認したかどうかを判定する。例えば、第１のユーザデバイスは、第１のユーザが選択された位置で集合することに同意したかどうかを示す応答メッセージを位置サービスモジュール１２９に送信することができる。第１のユーザが選択された位置を拒否する場合、位置サービスモジュール１２９は、拒否された選択の表示を提示し、方法３００はブロック３５２に戻り、第２のユーザが別の候補位置を選択できるようにする。あるいは、応答メッセージは、第１のユーザによって選択された位置を含む。
【００５９】
ブロック３６２において、第１のユーザが選択された位置を確認すると、位置サービスモジュール１２９は、各ユーザの現在位置から選択された位置までのナビゲーション命令の地図および／またはリストを生成し、対応するユーザに各ルートを提示する。一実施形態では、位置サービスモジュール１２９は、サードパーティＡＰＩを利用して、対応するユーザが選択された位置に向かって移動するときにルートを生成し更新する。一実施形態では、ナビゲーションは、ユーザが目的地に到着すると終了する。例えば、位置サービスモジュール１２９は、選択された位置と一致する現在の物理的位置を共有しているユーザのルートの定期的な更新を終了する。一実施形態では、位置サービスモジュール１２９は、ユーザが選択された位置に到着したことの検出に応答して、ソーシャルネットワーキングシステムのポスト提案を提示する。例えば、位置サービスモジュール１２９は、選択された位置に「チェックイン」をポストするオプションをユーザに提示する。
【００６０】
共有位置データに基づく集合場所のリクエストについては、図４〜６，１１を参照してさらに説明される。
方法３００および本明細書に記載の実施形態は、例えばＧＵＩを介して受信された入力を参照して説明される。しかし、いくつかの実施形態では、１つまたは複数の入力が、音声入力を介して対応するユーザデバイスに受信される。例えば、モバイルデバイス１０４は、音声を受信して処理して、テキストを入力したり、メニューオプションを選択したり、または位置サービスモジュール１２９に送信された入力を作成してもよい。さらに、明細書において説明される方法３００および実施形態は、例えば、ＧＵＩを用いて具体化される。しかしながら、いくつかの実施形態では、１つまたは複数の出力が音声（audio）を用いて提示される。例えば、ナビゲーション命令は、視覚的指示に加えて、またはその代わりに、音声出力を用いて提供されてもよい。
【００６１】
図４は、共有ユーザ位置データを含む例示的なユーザインタフェース４００を示す。例えば、モバイルデバイス１０４上の位置共有アプリケーション１０５を起動すると、モバイルデバイス１０４は、モバイルデバイス１０４に関連付けられたユーザアカウントを有する位置データの共有を許可した複数の接続の位置に関して、位置サービスモジュール１２９にリクエストを送信する。ユーザのアクセス許可は、正確な位置を共有する接続と一般的な推定位置を共有する接続を区別するように使用される。例えば、Ｓｔｅｒｌｉｎｇ  Ａｒｃｈｅｒ４０５は、地図４１５上に示されているように、Ｓｔｅｒｌｉｎｇ  Ａｒｃｈｅｒの現在の物理的位置４１０を見つけるために使用され得る正確な位置を共有している。一実施形態では、地図４１５は、Ｓｔｅｒｌｉｎｇ  Ａｒｃｈｅｒの現在の物理的位置４１０までの距離の表示を閲覧ユーザに提供するために、ユーザインタフェース４００を表示するモバイルデバイス１０４の現在位置４２０をさらに含む。他の２人のユーザ４２０、Ｌａｎａ  ＫａｎｅとＣｙｒｉｌ  Ｆｉｇｇｉｓは、現在位置している都市を示す推定位置を共有している。
【００６２】
図５は、選択されたユーザの共有ユーザ位置データを含むユーザインタフェース４００を示す。例えば、位置サービスモジュール１２９は、Ｓｔｅｒｌｉｎｇ  Ａｒｃｈｅｒ４０５のユーザ選択を（例えば、図４に示すユーザインタフェース４００内で）受信し、これに応答して、Ｓｔｅｒｌｉｎｇ  Ａｒｃｈｅｒ４０５の現在の物理的位置（またはSterling Archer  ４０５の現在の物理的位置に関する追加の詳細）を、ユーザのアカウントに関連付けられたモバイルデバイス１０４に送信する。例えば、位置サービスモジュール１２９は、モバイルデバイス１０４が地図５０５をより近いズームレベルで提示してＳｔｅｒｌｉｎｇ  Ａｒｃｈｅｒ４０５のより正確な現在の物理的位置５１０を示すように、位置データを送信する。一実施形態では、位置データは、住所、場所の名前、ＧＰＳ座標、または選択されたユーザの現在の物理的位置の別の指標を含む。例えば、地図５０５は、Ｓｔｅｒｌｉｎｇ  Ａｒｃｈｅｒ４０５が現在「本社（Headquarters）」の近くにいるまたは一致している物理的位置５１０にいることを示すラベル５１５を含む。
【００６３】
図６は、選択されたユーザの位置データに基づいて実行され得るサービスのメニューを含むユーザインタフェース４００を示す。例えば、位置サービスモジュール１２９は、（例えば、図５に示すようにユーザインタフェース４００内にある）現在の物理的位置５１０またはラベル５１５のユーザ選択を受信し、これに応答して、ユーザのモバイルデバイス１０４に、位置に基づくサービスのメニューを提示する。図示されているように、例示的なメニューは、選択されたユーザ（Sterling Archer）の現在の物理的位置５１０にユーザ閲覧ユーザインタフェース（user viewing user interface）４００を表示するカーサービスをリクエストし（６０５）、選択されたユーザをユーザ閲覧ユーザインタフェース４００の現在の物理的位置に連れて行くカーサービスをリクエストし（６１０）、選択されたユーザの現在の物理的位置５１０にアイテムを配送することをリクエストし（６１５）、選択されたユーザとのキャラバンのナビゲーションを開始することをリクエストし（６２０）、選択されたユーザと集合する位置を見つけることをリクエストする複数の選択可能なオプションを含む。位置サービスモジュール１２９は、リクエスト６０５〜６２５のうちの１つの選択を受信することに応答して、位置データを共有する一方または両方のユーザの現在の物理的位置を利用して、対応するサービスを開始および／または実行する。リクエスト６０５〜６２５は、図３，７〜１１を参照して本明細書でさらに説明される。
【００６４】
図７は、第１および第２のユーザの複数の共有位置の間のカーサービスの見積もられた料金を含むユーザインタフェース４００を示す。例えば、位置サービスモジュール１２９は、選択されたユーザを選択されたユーザの現在の物理的位置で選択されたユーザをピックアップし、選択されたユーザをリクエストしたユーザの現在の物理的位置に連れて行くカーサービスを有するリクエスト６１０のユーザ選択（例えば、図６に示すユーザインタフェース４００内）を受信する。これに応答して、リクエスト６１０に応答して、位置サービスモジュール１２９は、選択されたユーザの現在の物理的位置を、ピックアップ位置としてのカーサービスに関連付けられたサードパーティ・サーバに送信する。さらに、位置サービスモジュール１２９は、リクエストしたユーザの現在の物理的位置を、目的地の位置としてカーサービスに関連付けられたサードパーティ・サーバに送信する。位置サービスモジュール１２９は、サードパーティ・サーバから、提供されたピックアップの位置および目的地の位置７１０に基づいて料金見積もり７０５を受信する。ユーザインタフェース４００はさらに、ユーザが異なる目的地および選択可能要素７２０を入力させることを可能にする選択可能要素７１５を含み、ユーザが現在の目的地を確認することを可能にする。別の実施形態では、位置サービスモジュール１２９は、選択されたユーザの現在の物理的位置をピックアップの位置としてサードパーティ・サーバに送信すると共に、目的地を変更／確認するために、見積もられた料金７０５、ピックアップの位置および目的地の位置、および要素７１５，７２０を表示するサードパーティ・アプリケーションを起動する。
【００６５】
図８は、第１のユーザと第２のユーザの複数の共有位置の間でカーサービスのリクエストを確定するためのユーザインタフェース４００を示す。例えば、位置サービスモジュール１２９は、選択されたユーザを選択されたユーザの現在の物理的位置でピックアップして、選択されたユーザをリクエストしたユーザの現在の物理的位置に連れて行くカーサービスを有するための（例えば、図６に示されているユーザインタフェース４００内の）リクエスト６１０のユーザ選択または目的地の（例えば、図７に示されているユーザインタフェース４００内の）確認７２０のユーザ選択を受信する。このリクエストに応答して、位置サービスモジュール１２９は、ユーザのモバイルデバイス１０４に、ピックアップの位置および目的地の位置７１０を提示するように指示し、ピックアップを示す地図が、選択されたユーザ５１０の現在の物理的位置で発生し、ユーザインタフェース８０５は、リクエストしたユーザにカーサービスのリクエストを確定させる。
【００６６】
図７〜８は、（例えば、図６に示すリクエスト６１０の選択に応答して）選択されたユーザをリクエストしたユーザに連れて行くカーサービスのリクエストを参照して説明される。同様の一組のユーザインタフェースが提示されてもよく、同様の一連の動作が、リクエストしたユーザを選択されたユーザに連れて行くカーサービスのリクエストに応答して（例えば、図６に示されたリクエスト６０５の選択に応答して）、またはいずれかのユーザを別の目的地に連れて行くカーサービスのリクエストに応答して実行され得る。さらに、（例えば、図６に示されたようなリクエスト６１５の選択に応答して）配送リクエストに応答して、同様の一組のユーザインタフェースが提示され、同様の一組の動作が実行されてもよい。しかしながら、配送リクエストは、ピックアップの位置で削除することがある。
【００６７】
図９は、複数のユーザ間で共有される位置データに基づいてキャラバンのナビゲーションのオプションメニューを含むユーザインタフェース４００を示す。例えば、位置サービスモジュール１２９は、キャラバンのナビゲーションを提供するために（例えば、図６に示されたユーザインタフェース４００内の）リクエスト６２０のユーザ選択を受信する。リクエスト６２０に応答して、位置サービスモジュール１２９は、ユーザのモバイルデバイス１０４に、キャラバンのナビゲーションのオプションメニューを提示するように命令する。例示されているように、例示的なメニューは、キャラバンの目的地を入力するためのオプション９０５、閲覧しているユーザがキャラバンを導くことを示すオプション９１０、閲覧しているユーザが選択されたユーザに従うことを示すオプション９１５、閲覧しているユーザが選択されたユーザによって入力／共有された目的地へのナビゲーションをリクエストするオプション９２０を含む。位置サービスモジュール１２９は、オプション９０５〜９２０のうちの１つの選択を受信すると、位置データを共有するユーザが現在の物理的位置を利用して、対応するキャラバンのナビゲーションサービスを開始および／または実行する。オプション９０５〜９２０に基づくリクエストの実行は、図３，１０を参照して本明細書でさらに説明される。
【００６８】
図１０は、キャラバンのナビゲーションサービスのマッピングされたルートを含むユーザインタフェース４００を示す。例えば、位置サービスモジュール１２９は、オプション９０５〜９２０のうちの１つまたは複数のユーザ選択を受け取り、それに応じて、ユーザのモバイルデバイス１０４に地図または他のナビゲーション指示を提示するように命令する。例示されているように、地図は、フォロア１００５、リーダー１０１０、および目的地１０１５を含む。一実施形態では、目的地が入力されないので、目的地１０１５は地図から省略され、キャラバンのナビゲーションは、それぞれの定期的に更新された現在の物理的位置に基づいてフォロア１００５をリーダー１０１０にナビゲートすることにフォーカスしている。さらに、フォロア１００５は、オプション１０２０を選択して、リーダー１０１０によって共有される目的地１０１５にナビゲートすることができ、その結果、ナビゲーション指示は、（例えば、リーダー１０１０によって取られたルートと異なるルートに従って）提示されたよりも目的地１０１５へのより直接的なルートを提示することができる。
【００６９】
本明細書で説明されるように、ユーザインタフェース４００は、キャラバン内の複数のユーザ間の通信を支援するユーザインタフェース要素１０２０を含むものとして例示されている。例えば、位置サービスモジュール１２９は、ソーシャルネットワーキングシステム１３０内のユーザプロファイルおよび／または通信ツールに格納されたコンタクト情報（contact information）を利用して、ＶＯＩＰコールを開始し、キャラバン内で識別された複数のユーザ間でメッセージを送信することができる。
【００７０】
また、ユーザインタフェース４００は、メニューオブジェクト１０２５を含む。例えば、メニューオブジェクト１０２５のユーザ選択に応答して、位置サービスモジュール１２９は、ユーザがリーダー／フォロワの役割を変更し、目的地を入力し、目的地を変更し、目的地を共有し、共有された目的地を後から変更することなどを可能にするメニューオプション９０５〜９２０を提示するようにユーザデバイスに命令し得る。
【００７１】
図１１は、複数のユーザ間で共有される位置データに基づいて提案される集合場所を含むユーザインタフェース４００を示す。例えば、位置サービスモジュール１２９は、ユーザが集合するための位置の１つまたは複数の提案を提供するために、（例えば、図６に示すユーザインタフェース４００内の）リクエスト６２５のユーザ選択を受信する。これに応答して、位置サービスモジュール１２９は、閲覧しているユーザおよび選択されたユーザによって共有される位置データ、すなわち閲覧しているユーザ１１０５および選択されたユーザ１１００（例えば、Sterling Archer）の現在の物理的位置に基づいて中間点領域１１２０を決定する。本明細書で説明されるように、位置サービスモジュール１２９は、ソーシャルグラフデータおよび／またはユーザレビューと、該当する場合には位置カテゴリとに基づいて、中間点領域１１２０内の候補位置１１１５を選択する。位置サービスモジュール１２９は、閲覧しているユーザ１１０５、選択されたユーザ１１００（例えば、Sterling Archer）、および候補位置１１５の現在の物理的位置の地図または他の表示を含むユーザインタフェース４００を提示するようにユーザデバイスに命令する。一実施形態では、中間点領域１１２０は、ジェスチャー／タッチ入力を介して移動および／またはサイズ変更することができる選択可能なユーザインタフェースオブジェクトである。別の実施形態では、ユーザインタフェース４００は、ユーザインタフェース４００からの中間点領域１１２０の表示を省略している。ユーザインタフェース４００は、ユーザが、例えばドロップダウンメニューから、候補位置のカテゴリを選択することを可能にするメニューオブジェクト１１１０を含む。例えば、ユーザインタフェース４００は、選択されたカテゴリとして「レストラン」と示されている。したがって、位置サービスモジュール１２９によって提案される候補位置１１１５、Ｂｏｂ’ｓ  Ｂｕｒｇｅｒｓはレストランである。ユーザインタフェース４００は、ユーザが候補位置を受け入れ、選択されたユーザ（例えば、Sterling Archer）に提案としてその位置を送信することを可能にするユーザインタフェースオブジェクト１１２５をさらに含む。
【００７２】
図１２は、ネットワークサービスの複数のユーザ間で共有されるリアルタイムの位置データに基づいてサービスのリクエストを実行するための例示的な処理システム１２００をブロック図で示す。データ処理システム１２００は、上述したユーザデバイス１０４、外部サーバ１１５、ソーシャルネットワーキングシステム１３０、またはそれらのコンポーネントの１つまたは複数の例示的な表現である。
【００７３】
データ処理システム１２００は、１つ以上のマイクロプロセッサ１２０５と、接続された複数のシステム構成要素（例えば、複数の接続されたチップ）とを含む。あるいは、データ処理システム１２００は、チップ上のシステムである。
【００７４】
データ処理システム１２００は、（複数の）マイクロプロセッサ１２０５に接続されたメモリ１２１０を含む。メモリ１２１０は、（複数の）マイクロプロセッサ１２０５による実行のためにデータ、メタデータ、およびプログラムを記憶するために使用され得る。例えば、メモリ１２１０は、１つ以上のデータストア１０１を含むことができ、および／または本明細書に記載された複数のモジュールを記憶することができる。メモリ１２１０は、ランダムアクセスメモリ（「ＲＡＭ」）、読み出し専用メモリ（「ＲＯＭ」）、ソリッドステートディスク（「ＳＳＤ」）、フラッシュメモリ、相変化メモリ（「ＰＣＭ」）、または他のタイプのデータ記憶デバイス等の１つ以上の揮発性メモリおよび不揮発性メモリを含むことができる。メモリ１２１０は、内部メモリまたは分散メモリであってもよい。
【００７５】
データ処理システム１２００は、システム１２００を他のデバイス、外部コンポーネント、またはネットワークに接続するために、ポート、ドック用のコネクタ、ＵＳＢインタフェース用のコネクタ、ＦｉｒｅＷｉｒｅ、Ｔｈｕｎｄｅｒｂｏｌｔ、Ｅｔｈｅｒｎｅｔ、ファイバチャネルなどのネットワークおよびポートインタフェース１２１５を含む。例示的なネットワークおよびポートインタフェース１２１５は、ＩＥＥＥ８０２．１１トランシーバ、赤外線トランシーバ、ブルートゥーストランシーバ、（例えば２Ｇ、３Ｇ、４Ｇなど）無線セルラー電話トランシーバ、または他の無線プロトコル等の複数の無線トランシーバを含み、データ処理システム１２００を別のデバイス、外部コンポーネント、またはネットワークと接続し、記憶された命令、データ、トークンなどを受け取る。
【００７６】
データ処理システム１２００はまた、ディスプレイコントローラおよびディスプレイデバイス１２２０および１つまたは複数の入力または出力（「Ｉ／Ｏ」）デバイスおよびインタフェース１２２５を含む。ディスプレイコントローラおよびディスプレイデバイス１２２０は、ユーザに対する視覚的ユーザインタフェースを提供する。Ｉ／Ｏデバイス１２２５は、ユーザによって、システムに入力を提供し、システムから出力を受け取り、システムからおよびシステムにデータを転送することを可能にする。Ｉ／Ｏデバイス１２２５は、マウス、キーパッドまたはキーボード、タッチパネルまたはマルチタッチ入力パネル、カメラ、光スキャナ、オーディオ入出力（例えば、マイクロフォンおよび／またはスピーカ）、他の既知のＩ／ＯデバイスまたはそのようなＩ／Ｏデバイスの組み合わせを含む。
【００７７】
図１２に示される様々な構成要素を相互接続するために、１つまたは複数のバスを使用することができることが理解されよう。
データ処理システム１２００は、パーソナルコンピュータ、タブレットスタイルのデバイス、パーソナルデジタルアシスタント（ＰＤＡ）、ＰＤＡのような機能を有する携帯電話、Ｗｉ−Ｆｉベースの電話、携帯電話を含むハンドヘルドコンピュータ、メディアプレーヤ、エンターテイメントシステム、または単一のデバイス内でＰＤＡおよび携帯電話と組み合わされたメディアプレーヤ等のこれらの装置の態様または機能を組み合わせたデバイスを含む。他の実施形態では、データ処理システム１２００は、ネットワークコンピュータ、サーバ、または別のデバイスまたは消費者電子製品（consumer electronic product）内のエンベデッド処理デバイス（embedded processing device）であってもよい。本明細書で使用されたように、コンピュータ、デバイス、システム、処理システム、処理デバイス、および「処理デバイスを備える装置」という用語は、データ処理システム１２００と変更可能に使用され、上記の列挙した例示的な実施形態を含む。
【００７８】
図示されていない追加の構成要素もまた、データ処理システム１２００の一部であってもよく、特定の実施形態では、図１２に示される構成要素よりも少ない構成要素がデータ処理システム１２００において使用されてもよい。この説明から、本発明の態様は、少なくとも部分的にソフトウェアで具体化され得ることが明らかであろう。すなわち、コンピュータによって実行される方法３００は、そのプロセッサまたは処理システム１２０５が、メモリ１２１０または他の非一時的な機械読み取り可能な記憶媒体などのメモリに含まれる命令のシーケンスを実行することに応答して、コンピュータシステムまたは他のデータ処理システム１２００において実行されてもよい。ソフトウェアは、ネットワークインタフェースデバイス１２１５を介してネットワーク（図示せず）を介してさらに送信または受信することができる。様々な実施形態では、本実施形態を具体化するためにハードウェア回路がソフトウェア命令と組み合わせて使用され得る。したがって、この技術は、ハードウェア回路およびソフトウェアの特定の組み合わせ、またはデータ処理システム１２００によって実行される命令のための特定のソースに限定されない。
【００７９】
製品は、上述の実施形態の機能性の少なくとも一部を提供するプログラムコードを記憶するように使用されてもよい。さらに、製品は、上述の実施形態の機能の少なくとも一部を使用して作成されたプログラムコードを記憶するように使用されてもよい。プログラムコードを記憶する製品は、１つ以上のメモリ（例えば、１つ以上のフラッシュメモリ、静的、動的、またはその他のランダムアクセスメモリ）、光ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光カード、または電子命令を記憶するのに適した他のタイプの非一時的な機械読み取り可能媒体を含む。さらに、本発明の実施形態は、ＦＰＧＡ、ＡＳＩＣ、プロセッサ、コンピュータ、またはネットワークを含むコンピュータシステムを利用するハードウェアまたはファームウェアで具体化されることができるが、これに限定されない。ハードウェアまたはソフトウェアの具体化の複数のモジュールおよび複数のコンポーネントは、本発明の実施形態を大幅に変更することなく、分割または組み合わせることができる。
【００８０】
本発明による実施形態は、特に、方法、記憶媒体、システム、およびコンピュータプログラム製品に関する添付の特許請求の範囲に開示されている。１つのクレームカテゴリ、例えば、方法に記載されている任意の特徴は、他のクレームカテゴリ、例えば、システムにおいても同様に請求され得る。添付の特許請求の範囲に記載された従属性または参照は、形式的な理由のためにのみ選択される。しかしながら、複数の請求項とその特徴の任意の組合せが開示され、添付された特許請求の範囲における従属関係に依存するか否かにかかわらず請求することができるように、（特に複数の従属において）前の請求項への意図的な参照から生じる任意の特定事項が同様に請求され得る。請求され得る特定事項は、添付の特許請求の範囲に記載された特徴の組み合わせだけでなく、特許請求の範囲における他の特徴の組み合わせも含む。特許請求の範囲に記載された各特徴は、特許請求の範囲における他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書に記載または図示された実施形態および特徴のうちのいずれかは、別個の請求項および／または本明細書に記載または図示された任意の実施形態または特徴並びに添付の特許請求の範囲の任意の特徴との任意の組み合わせにおいて請求され得る。
【００８１】
添付の特許請求の範囲に記載された本発明のより広い趣旨および範囲から逸脱することなく、様々な変更がなされ得ることは明らかであろう。例えば、本明細書に記載された複数の方法は、より少ないまたはより多くの特徴／ブロックを用いて実行されてもよく、または特徴／ブロックが異なる順序で実行されてもよい。さらに、本明細書に記載される複数の方法は、互いに、または同じまたは同様の方法の異なるステップと並行して、繰り返され得るか、または実行され得る。
【図１】
0006715251.tif 000002
【図２】
0006715251.tif 000003
【図３Ａ】
0006715251.tif 000004
【図３Ｂ】
0006715251.tif 000005
【図３Ｃ】
0006715251.tif 000006
【図３Ｄ】
0006715251.tif 000007
【図４】
0006715251.tif 000008
【図５】
0006715251.tif 000009
【図６】
0006715251.tif 000010
【図７】
0006715251.tif 000011
【図８】
0006715251.tif 000012
【図９】
0006715251.tif 000013
【図１０】
0006715251.tif 000014
【図１１】
0006715251.tif 000015
【図１２】
0006715251.tif 000016