(57)【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサを用いて、第１のユーザのアドレスブックを受信するステップであって、前記アドレスブックは第２のユーザに属する電話番号を含む、ステップと、
１つまたは複数のプロセッサを用いて、前記アドレスブック内の前記電話番号を前記第２のユーザのアカウントに関連づけることによってフォン・エッジを生成するステップと、
１つまたは複数のプロセッサを用いて、前記電話番号に関連付けられた前記アカウントを取得するための前記電話番号を含む要求を前記第１のユーザから受信するステップと、
１つまたは複数のプロセッサを用いて、前記第１のユーザに対する前記フォン・エッジに関連付けられたエッジ・コストを決定するステップと、
前記エッジ・コストに基づいて前記フォン・エッジを前記第１のユーザに提供するかどうかを判定するステップと、
ポジティブな判定に応答して前記フォン・エッジを前記第１のユーザに提供するステップと、
を含む、コンピュータ実行型の方法。
【請求項２】
前記フォン・エッジに関連付けられた前記エッジ・コストを決定するステップはさらに、
前記アドレスブック内の前記電話番号に対応する名前があるかどうかを判定するステップと、
前記アドレスブック内の前記名前と前記第２のユーザのアカウント名との間のマッチのレベルを決定するステップと、
前記電話番号に対応する前記名前が前記アドレスブック内にあるかどうかと、前記アドレスブック内の前記名前と前記第２のユーザの前記アカウント名の間のマッチのレベルとに基づいて、前記第１のユーザに対する前記フォン・エッジに関連付けられた前記エッジ・コストを計算するステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記第１のユーザの前記アドレスブック内の複数の電話番号に対して生成された複数のフォン・エッジに関連付けられた複数のエッジ・コストを決定するステップと、
前記複数のエッジ・コストに基づいて前記第１のユーザに対するコストベースのクォータを計算するステップと、
をさらに含み、
前記フォン・エッジを前記第１のユーザに提供するかどうかを判定するステップはまた前記クォータに基づく、
請求項１に記載の方法。
【請求項４】
前記第１のユーザに対する前記コストベースのクォータを調節するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記第１のユーザのアカウントに対する少なくとも１つの属性を収集するステップと、
前記少なくとも１つの属性に基づいて前記第１のユーザに対する属性ベースのクォータを決定するステップ
をさらに含み、
前記フォン・エッジを前記第１のユーザに提供するかどうかを判定するステップは前記属性ベースのクォータに基づく、
請求項１に記載の方法。
【請求項６】
前記第１のユーザに対する前記属性ベースのクォータを調節するステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記フォン・エッジをマークで注釈付けするステップと、
前記コストベースのクォータに基づいて前記フォン・エッジの前記マークを変更するかどうかを判定するステップと、
をさらに含み、
前記フォン・エッジを前記第１のユーザに提供するステップは前記マークが変更されたことに応答して行われる、
請求項３に記載の方法。
【請求項８】
前記要求と前記要求の前に前記フォン・エッジを前記第１のユーザに提供することに失敗したこととの間の時間差を計算するステップと、
前記時間差が閾値時間を超過したかどうかを判定するステップと、
をさらに含み、
前記フォン・エッジを前記第１のユーザに提供するかどうかを判定するステップは前記時間間隔が前記閾値時間を超過したことに応答して行われる、
請求項１に記載の方法。
【請求項９】
前記フォン・エッジが前記第１のユーザに提供されているかどうかを前記第１のユーザに通知するステップをさらに含む、請求項１に記載の方法。
【請求項１０】
コンピュータ可読プログラムを含むコンピュータ使用可能記憶媒体であって、前記コンピュータ可読プログラムは、コンピュータで実行されたとき、前記コンピュータに、
第２のユーザに属する電話番号を含む第１のユーザのアドレスブックを受信させ、
前記アドレスブック内の前記電話番号を前記第２のユーザのアカウントに関連づけることによってフォン・エッジを生成させ、
前記電話番号に関連付けられた前記アカウントを取得するための前記電話番号を含む要求を前記第１のユーザから受信させ、
前記第１のユーザに対する前記フォン・エッジに関連付けられたエッジ・コストを決定させ、
前記エッジ・コストに基づいて前記フォン・エッジを前記第１のユーザに提供するかどうかを判定させ、
ポジティブな判定に応答して前記フォン・エッジを前記第１のユーザに提供させる、
コンピュータ使用可能記憶媒体。
【請求項１１】
前記フォン・エッジに関連付けられた前記エッジ・コストを決定するステップはさらに、
前記アドレスブック内の前記電話番号に対応する名前があるかどうかを判定するステップと、
前記アドレスブック内の前記名前と前記第２のユーザのアカウント名との間のマッチのレベルを決定するステップと、
前記電話番号に対応する前記名前が前記アドレスブック内にあるかどうかと、前記アドレスブック内の前記名前と前記第２のユーザの前記アカウント名の間のマッチのレベルとに基づいて、前記第１のユーザに対する前記フォン・エッジに関連付けられた前記エッジ・コストを計算するステップと、
を含む、請求項１０に記載のコンピュータ使用可能記憶媒体。
【請求項１２】
前記コンピュータ可読プログラムは、前記コンピュータで実行されたとき、さらに前記コンピュータに、
前記第１のユーザの前記アドレスブック内の複数の電話番号に対して生成された複数のフォン・エッジに関連付けられた複数のエッジ・コストを決定させ、
前記複数のエッジ・コストに基づいて前記第１のユーザに対するコストベースのクォータを計算させ、
前記フォン・エッジを前記第１のユーザに提供するかどうかを判定するステップはまた前記クォータに基づく、
請求項１０に記載のコンピュータ使用可能記憶媒体。
【請求項１３】
前記コンピュータ可読プログラムは、前記コンピュータで実行されたとき、さらに前記コンピュータに、前記第１のユーザに対する前記コストベースのクォータを調節させる、請求項１２に記載のコンピュータ使用可能記憶媒体。
【請求項１４】
前記コンピュータ可読プログラムは、前記コンピュータで実行されたとき、さらに前記コンピュータに
前記第１のユーザのアカウントに対する少なくとも１つの属性を収集させ、
前記少なくとも１つの属性に基づいて前記第１のユーザに対する属性ベースのクォータを決定させ、
前記フォン・エッジを前記第１のユーザに提供するかどうかを判定するステップは前記属性ベースのクォータに基づく、
請求項１０に記載のコンピュータ使用可能記憶媒体。
【請求項１５】
前記コンピュータ可読プログラムは、前記コンピュータで実行されたとき、さらに前記コンピュータに、前記第１のユーザに対する前記属性ベースのクォータを調節させる、請求項１４に記載のコンピュータ使用可能記憶媒体。
【請求項１６】
１つまたは複数のプロセッサと、
実行されたとき、前記システムに、
第２のユーザに属する電話番号を含む第１のユーザのアドレスブックを受信させ、
前記アドレスブック内の前記電話番号を前記第２のユーザのアカウントに関連づけることによってフォン・エッジを生成させ、
前記電話番号に関連付けられた前記アカウントを取得するための前記電話番号を含む要求を前記第１のユーザから受信させ、
前記第１のユーザに対する前記フォン・エッジに関連付けられたエッジ・コストを決定させ、
前記エッジ・コストに基づいて前記フォン・エッジを前記第１のユーザに提供するかどうかを判定させ、
ポジティブな判定に応答して前記フォン・エッジを前記第１のユーザに提供させる、
命令を格納したメモリと、
を備える、システム。
【請求項１７】
前記フォン・エッジに関連付けられた前記エッジ・コストを決定するステップはさらに、
前記アドレスブック内の前記電話番号に対応する名前があるかどうかを判定するステップと、
前記アドレスブック内の前記名前と前記第２のユーザのアカウント名との間のマッチのレベルを決定するステップと、
前記電話番号に対応する前記名前が前記アドレスブック内にあるかどうかと、前記アドレスブック内の前記名前と前記第２のユーザの前記アカウント名の間のマッチのレベルとに基づいて、前記第１のユーザに対する前記フォン・エッジに関連付けられた前記エッジ・コストを計算するステップと、
を含む、請求項１６に記載のシステム。
【請求項１８】
前記命令は、実行されたとき、さらに前記システムに、
前記第１のユーザの前記アドレスブック内の複数の電話番号に対して生成された複数のフォン・エッジに関連付けられた複数のエッジ・コストを決定させ、
前記複数のエッジ・コストに基づいて前記第１のユーザに対するコストベースのクォータを計算させ、
前記フォン・エッジを前記第１のユーザに提供するかどうかを判定するステップはまた前記クォータに基づく、請求項１６に記載のシステム。
【請求項１９】
前記命令は、実行されたとき、さらに前記システムに、
前記第１のユーザのアカウントに対する少なくとも１つの属性を収集させ、
前記少なくとも１つの属性に基づいて前記第１のユーザに対する属性ベースのクォータを決定させ、
前記フォン・エッジを前記第１のユーザに提供するかどうかを判定するステップは前記属性ベースのクォータに基づく、
請求項１６に記載のシステム。
【請求項２０】
前記命令は、実行されたとき、さらに前記システムに、前記フォン・エッジが前記第１のユーザに提供されているかどうかを前記第１のユーザに通知させる、請求項１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は情報検索に関する。特に、本明細書は、電話番号を介してアカウントを取得するための要求を評価し、当該評価に基づいて当該アカウントの情報をユーザに提供するかどうかを判定することに関する。
【背景技術】
【０００２】
技術は人々の間の通信を容易かつ高速にする。例えば、人々は、電話でチャットでき、または、ソーシャル・ネットワーク上で互いと話すことができる。人々は、電話番号を友達と交換し、知り合いからの電話を受け、保険会社の電話番号を保険カードから発見し、店の電話番号を広告から取得できる、等である。人々が電話番号を得る多数の方法がある。しかし、人のアカウントを取得し、その人のアカウント情報を用いてその人と接続するのは、電話番号を得るのと同じくらい簡単というわけではないかもしれない。人の電話番号を発見するための代替的なソリューションを発見するのが望ましいであろう。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
電話番号マッピングを可能とすることから生ずる１つの問題は、無節操なユーザがこの機能を使用して、電話番号とユーザの間の大規模なマッピングを生成しようと試みるという可能なシナリオである。例えば、ユーザは、可能な限り多くの電話番号を取得しようと試み、これらの番号の所有者を推定しようと試み、自分が（例えば、広告によって）これらの所有者と接続することから利益を得ることができるようにするかもしれない。
【課題を解決するための手段】
【０００４】
本開示は、電話番号検索の割合を限定するためのシステムおよび方法に関する。本開示で説明する主題の１つの進歩的な態様によれば、システムが、１つまたは複数のプロセッサと、実行されたとき、当該システムに、第２のユーザに属する電話番号を含む第１のユーザのアドレスブックを受信させ、当該アドレスブック内の当該電話番号を第２のユーザのアカウントに関連づけることによってフォン・エッジを生成させ、当該電話番号に関連付けられたアカウントを取得するための当該電話番号を含む要求を第１のユーザから受信させ、第１のユーザに対する当該フォン・エッジに関連付けられたエッジ・コストを決定させ、当該エッジ・コストに基づいて当該フォン・エッジを第１のユーザに提供するかどうかを判定させ、ポジティブな判定に応答して当該フォン・エッジを第１のユーザに提供させる命令を格納したメモリとを備える。幾つかの実施形態では、当該ユーザはソーシャル・ネットワーク内にいてもよい。
【０００５】
一般に、本開示で説明する主題の別の進歩的な態様を、１つまたは複数のプロセッサを用いて、第１のユーザのアドレスブックを受信するステップであって、当該アドレスブックは第２のユーザに属する電話番号を含む、ステップと、１つまたは複数のプロセッサを用いて、当該アドレスブック内の当該電話番号を第２のユーザのアカウントに関連づけることによってフォン・エッジを生成するステップと、１つまたは複数のプロセッサを用いて、当該電話番号に関連付けられたアカウントを取得するための当該電話番号を含む要求を第１のユーザから受信するステップと、１つまたは複数のプロセッサを用いて、第１のユーザに対する当該フォン・エッジに関連付けられたエッジ・コストを決定するステップと、１つまたは複数のプロセッサを用いて、当該エッジ・コストに基づいて当該フォン・エッジを第１のユーザに提供するかどうかを判定するステップと、ポジティブな判定に応答して当該フォン・エッジを第１のユーザに提供するステップとを含む方法で具現化してもよい。
【０００６】
これらの態様のうち１つまたは複数の他の実装は、コンピュータ記憶デバイスで具現化された、当該方法の動作を実施するように構成された対応するシステム、装置、およびコンピュータプログラムを含む。
【０００７】
これらのおよび他の実装はそれぞれ、場合によっては以下の特徴のうち１つまたは複数を含んでもよい。例えば、当該特徴はアドレスブック内の電話番号に対応する名前があるかどうかを判定するステップと、当該アドレスブック内の名前と第２のユーザのアカウント名との間のマッチのレベルを決定するステップと、当該電話番号に対応する名前が当該アドレスブック内にあるかどうかと、当該アドレスブック内の名前と第２のユーザのアカウント名の間のマッチのレベルとに基づいて、第１のユーザに対する当該フォン・エッジに関連付けられたエッジ・コストを計算するステップを含んでもよい。当該特徴は、第１のユーザのアドレスブック内の複数の電話番号に対して生成された複数のフォン・エッジに関連付けられた複数のエッジ・コストを決定するステップと、当該複数のエッジ・コストに基づいて第１のユーザに対するコストベースのクォータを計算するステップとを含んでもよく、当該フォン・エッジを第１のユーザに提供するかどうかを判定するステップはまた当該クォータに基づく。当該特徴は第１のユーザに対するコストベースのクォータを調節するステップを含んでもよい。当該特徴は、第１のユーザのアカウントに対する少なくとも１つの属性を収集するステップと、当該少なくとも１つの属性に基づいて第１のユーザに対する属性ベースのクォータを決定するステップとを含んでもよく、当該フォン・エッジを第１のユーザに提供するかどうかを判定するステップは当該属性ベースのクォータに基づく。当該特徴は第１のユーザに対する当該属性ベースのクォータを調節するステップを含んでもよい。当該特徴は当該フォン・エッジをマークで注釈付けするステップと、当該コストベースのクォータに基づいて当該フォン・エッジの当該マークを変更するかどうかを判定するステップとを含んでもよく、当該フォン・エッジを第１のユーザに提供するステップは当該マークが変更されたことに応答して行われる。当該特徴は当該要求と当該要求の前に当該フォン・エッジを第１のユーザに提供することに失敗したこととの間の時間差を計算するステップと、当該時間差が閾値時間を超過したかどうかを判定するステップとを含んでもよく、当該フォン・エッジを第１のユーザに提供するかどうかを判定するステップは当該時間間隔が当該閾値時間を超過したことに応答して行われる。当該特徴は当該フォン・エッジが第１のユーザに提供されているかどうかを第１のユーザに通知するステップを含んでもよい。
【０００８】
これらの実装は幾つかの観点で特に有利である。例えば、コストおよびコストベースのクォータに基づいて検索要求を評価することで、検索要求を区別することができる。したがって、正当な要求が正常に動作する一方で乱用的な要求を罰することができる。さらに、検索要求を評価することはユーザ依存であることができる。したがって、第２のユーザよりも健康的なアカウント（例えば、より良い評判）を有する第１のユーザは、連絡先アカウント情報を得るのに第２のユーザよりも良いチャンスを有しうる。さらに、本明細書で説明する電話検索に提供される同一のソリューションを、電子メールのような他の分野で使用することもできる。
【０００９】
しかし、上述の特徴および利点は全てを含むものではなく、多数の追加の特徴および利点が考慮され本開示の範囲内に入ることは理解されるべきである。さらに、本開示で使用する言葉は主に、可読性および示唆的な目的のために選択されたものであり、本明細書で開示した主題の範囲を限定しようとするものではないことは理解されるべきである。
【００１０】
本明細書を添付図面において限定ではなく例として説明する。添付図面では、同じ参照番号は同じ要素を指すために使用される。
【図面の簡単な説明】
【００１１】
【図１】電話番号を介してｎ個のアカウントを取得し、当該評価に基づいてｎ個のアカウントの情報を含むフォン・エッジをユーザに提供するかどうかを判定するための要求を評価するための例示的な方法の流れ図である。
【図２Ａ】電話番号を介してアカウントを取得するための要求を評価し、当該評価に基づいて当該アカウントの情報を含むフォン・エッジをユーザに提供するかどうかを判定するための特定の例示的な方法の流れ図である。
【図２Ｂ】電話番号を介してアカウントを取得するための要求を評価し、当該評価に基づいて当該アカウントの情報を含むフォン・エッジをユーザに提供するかどうかを判定するための特定の例示的な方法の流れ図である。
【図３】電話番号を介してアカウントを取得するための要求を評価し、当該評価に基づいて当該アカウントの情報をユーザに提供するかどうかを判定するための例示的な方法の流れ図である。
【図４】例示的なアドレスブックのグラフィカル表現の図である。
【図５】ユーザに対する例示的な通知のグラフィカル表現の図である。
【図６】乱用に対する例示的な通知のグラフィカル表現の図である。
【図７】電話番号を介してアカウントを取得するための要求を評価し、当該評価に基づいて当該アカウントの情報をユーザに提供するかどうかを判定するための例示的なシステムを示すブロック図である。
【図８】アカウント検索アプリケーションの１つのインスタンスを示すブロック図である。
【発明を実施するための形態】
【００１２】
電話番号検索の割合を限定するためのシステム、方法およびインタフェースが開示される。本開示のシステム、方法およびインタフェースを次にクライアント・サーバ・システムの文脈で説明するが、当該システム、方法およびインタフェースを、絵画的な描画が単一のサーバで実施されるネットワーク上で動作可能に接続されるクライアント・サーバ・システムとは異なるシステムに適用できることは理解されるべきである。例えば、クライアント・デバイス、サード・パーティ・サーバ、電子メール・サーバ、またはアカウント検索アプリケーションが格納されるサーバは本明細書で説明する機能の一部または全部を提供してもよく、サーバのクラスタを使用してかかる機能を提供してもよい。追加の例として、クライアント・ハードウェアは携帯電話またはタブレット・デバイスであってもよい。
【００１３】
一般に、電話番号検索の割合を限定するためのシステム、方法およびインタフェースは、コスト、コストベースのクォータおよび属性ベースのクォータを含む基準に基づく。ユーザが連絡先の電話番号を含む要求を送信することで連絡先アカウントの情報を検索するとき、コストが決定される。当該連絡先アカウント情報は、当該電話番号を当該連絡先アカウントにマップするフォン・エッジであることができる。当該コストは、どれだけ多くのユーザが、当該要求された連絡先アカウント情報を取得するために支払うことができるかを示す。名前マッチング・アルゴリズムを使用して当該コストを決定することができる。使用されているアドレスブック内の電話番号に対応する名前が実際の連絡先アカウント名とマッチする場合、最小コストが決定される。当該アドレスブックに当該名前が存在せず、当該実際の連絡先アカウント名にマッチもしないとき、最大コストが決定される。２つの名前の間に部分的なマッチがある場合、最小と最大の間のコストが決定される。当該ユーザは、当該要求された連絡先アカウント情報（例えば、フォン・エッジ）を異なるコストで取得する。
【００１４】
コストベースのクォータおよび属性ベースのクォータはまた、当該連絡先アカウント情報を当該ユーザに提供するかどうかを判定するために使用される。当該コストベースのクォータを、名前のマッチに関連付けられたエッジの数、部分的な名前のマッチに関連付けられたエッジの数、名前のマッチおよび対応するコストを有さないエッジの数に基づいて計算することができる。当該ユーザに対するコストベースのクォータを超過した場合、当該ユーザはフォン・エッジを取得することができない。属性ベースのクォータを、当該ユーザに関連付けられたアカウントの属性に基づいて計算してもよい。当該属性は、当該アカウントの作成時刻、当該ユーザの評判スコア等を含む。当該ユーザは、当該属性ベースのクォータ基準が満たされたときに連絡先アカウント情報を取得することができる。
【００１５】
検索要求を割合制限するためにコスト、コストベースのクォータおよび属性ベースのクォータを用いることによって、本明細書で説明したシステムおよび方法は、要求を区別し、正当な要求およびユーザができるだけ多くの利益を得、同時に乱用的な要求およびユーザが重く罰せられるように、各要求に対する適切な応答を提供する。
【００１６】
図１は、アカウント検索アプリケーション７２０を用いて電話番号を介してアカウントを取得するための要求を評価し、当該評価に基づいて当該アカウントの情報を含むフォン・エッジをユーザに提供するかどうかを判定するための例示的な方法の流れ図１００を含む。幾つかの実装では、当該アカウントはソーシャル・ネットワーク・アカウントであってもよい。方法１００は、第２のユーザに属する電話番号を含む第１のユーザのアドレスブックを受信すること（１０２）で開始する。幾つかの実装では、当該ユーザはソーシャル・ネットワーク内にいてもよい。１例では、図８を参照して後にさらに詳細に説明する属性エンジン８０２が当該アドレスブックを受信してもよい。例えば、属性エンジン８２２は、電話番号および対応する名前（存在する場合）を、後述するソーシャル・ネットワーク・アプリケーション７２２により管理される連絡先リストから抽出することでアドレスブックを受信してもよい。あるいは、属性エンジン８２２は、携帯電話で第１のユーザにより入力された電話番号および名前を受信し、それらをアドレスブックとして格納することができる。
【００１７】
方法１００は次いで、当該アドレスブック内の電話番号を第２のユーザのアカウントに関連づけることによってフォン・エッジを生成する（１０４）。
【００１８】
１例では、図８を参照して説明したエッジ生成エンジン８２４が当該フォン・エッジを生成する。例えば、エッジ生成エンジン８２４が、第１のユーザのアドレスブック内の電話番号に基づいてユーザ・プロフィールを検索してもよく、第２のユーザのユーザ・プロフィールに列挙された電話番号（例えば、自宅番号、携帯番号）が当該アドレスブック内の電話番号にマッチすると判定する。結果として、エッジ生成エンジン８２４は第２のユーザを当該電話番号の所有者として識別し、第２のユーザのアカウントを当該電話番号に関連付けてフォン・エッジを生成する。幾つかの事例では、フォン・エッジを生成するとき、エッジ生成エンジン８２４はまた当該フォン・エッジをマークで注釈付けする。
【００１９】
次に、方法１００は、当該電話番号に関連付けられた当該アカウントを取得するための当該電話番号を含む要求を第１のユーザから受信し（１０６）、第１のユーザに対するフォン・エッジに関連付けられたエッジ・コストを決定し（１０８）、当該エッジ・コストに基づいて当該フォン・エッジを第１のユーザに提供するかどうかを判定し（１１０）、ポジティブな判定に応答して当該フォン・エッジを第１のユーザに提供してもよい（１１２）。１例では、図８を参照して以下でさらに詳細に説明する乱用判定エンジン８２８がこれらのステップを実装してもよい。
【００２０】
エッジ生成エンジン８２４が電話番号を第１のユーザから受信し当該電話番号をバックエンド・システム内のアカウントにマップするフォン・エッジを生成するとき、当該フォン・エッジは第１のユーザに示されない。しかし、第１のユーザは当該フォン・エッジに含まれる連絡先アカウント情報を知りたいかもしれない。例えば、Aliceは、Janeの電話番号を知っているだけで、Aliceが自分の結婚式の写真をJaneと共有できるようにJaneと連絡を取りたい。乱用判定エンジン８２８は、当該電話番号に関連付けられた連絡先アカウントを検索する要求を第１のユーザから受信し、当該要求に応答してフォン・エッジを第１のユーザに提供するかどうかを判定する。上の例を続けると、AliceはJaneの電話番号を含む要求を送信してJaneのアカウントを取得する。当該要求に応答して、AliceはJaneのアカウントを受信してJaneと連絡を取ることができる。
【００２１】
幾つかの事例では、乱用判定エンジン８２８は、第１のユーザに対するフォン・エッジに関連付けられたエッジ・コストを決定し（１０８）、当該エッジ・コストに基づいて当該フォン・エッジを第１のユーザに提供するかどうかを判定する（１１０）。例えば、乱用判定エンジン８２８は、AliceがJaneのアカウントをコスト無しに取得できるように、Aliceに対してゼロコストを決定してもよい。しかし、乱用判定エンジン８２８が１０００のコストをAliceに対して決定した場合、Aliceは、Janeのアカウントを取得するために１０００を支払う必要がある。この割合制限機構は（例えば、ゼロコストを有する）正当なユーザの利益を保護でき、同時に（例えば、１０００コストを有する）乱用的な振舞いのリスクを軽減する。
【００２２】
図２Ａおよび２Ｂは、電話番号を介してアカウントを取得するための要求を評価し、当該評価に基づいて当該アカウントの情報を含むフォン・エッジをユーザに提供するかどうかを判定するための特定の例示的な方法の流れ図である。図２Ａでは、方法２００は、第２のユーザに属する電話番号を含む第１のユーザのアドレスブックを受信する（２０２）。方法２００は次いで、当該アドレスブック内の電話番号を第２のユーザのアカウントに関連づけることによってフォン・エッジを生成する（２０４）。方法２００は次に、当該電話番号に関連付けられたアカウントを取得するための当該電話番号を含む要求を第１のユーザから受信し、どのように当該要求に応答するかを判定する（２０６）。
【００２３】
当該要求に応答するために、乱用判定エンジン８２８はまず、当該アドレスブック内の電話番号に対応する名前があるかどうかを決定する（２０８）。そうである場合、乱用判定エンジン８２８は、当該アドレスブック内の名前と第２のユーザのアカウント名との間のマッチのレベルを決定し（２１０）、第１のユーザに対するフォン・エッジに関連付けられたエッジ・コストを計算する（２１２）。そうでない場合、乱用判定エンジン８２８は、第１のユーザに対するフォン・エッジに関連付けられたエッジ・コストを直接計算する（２１２）。例えば、当該アドレスブック内の名前が「John Smith」である場合、これはアカウント名「John Smith」に完全にマッチし、当該乱用判定エンジンは、名前マッチング・エッジ・コストをコスト値１０で計算する。当該アドレスブック内の名前が「John」である場合、これは部分的にアカウント名「John Smith」にマッチし、当該乱用判定エンジンは部分名前マッチング・エッジ・コストをコスト値３００で計算する。「John Smith」の電話番号に対応する名前がアドレスブックに存在しない場合、当該乱用判定エンジンは非名前マッチング・エッジ・コストをコスト値２０００で計算する。
【００２４】
次に図２Ｂを参照すると、乱用判定エンジン８２８は、エッジ・コストに基づいて第１のユーザに対するコストベースのクォータを計算する（２１４）。例えば、第１のユーザに１日最大１００個の名前マッチング・エッジ、５０個の部分マッチング・エッジおよび２０個の非名前マッチング・エッジが許可されており、対応する名前マッチング・エッジ・コスト、部分名前マッチング・エッジ・コストおよび非名前マッチング・エッジ・コストがそれぞれ１０、５００および１０００である場合、乱用判定エンジン８２８は、４６ｋ／日のコストベースのクォータを計算する。即ち、コストベースのクォータ＝１００×１０＋５０×５００＋２０×１０００＝４６０００である。
【００２５】
乱用判定エンジン８２８はまた、第１のユーザまたは第２のユーザのアカウントに関連付けられた少なくとも１つの属性を収集する（２１６）。例えば、当該少なくとも１つの属性は、第１のユーザに関連付けられた所有者アカウントの作成時刻、第１のユーザの評判スコア等を含む。乱用判定エンジン８２８は当該少なくとも１つの属性に基づいて第１のユーザに対する属性ベースのクォータを決定する。例えば、Aliceの評判スコアがAndrewの評判スコアより高いので、乱用判定エンジン８２８はAndrewに割り当てられた属性ベースのクォータよりも高い属性ベースのクォータをAliceに与える。
【００２６】
乱用判定エンジン８２８は、第１のユーザが正当なユーザであるかどうかを判定し（２２０）、第１のユーザに対するコストベースのクォータおよび属性クォータのうち少なくとも１つを調節する（２２２）。例えば、第１のユーザのアドレスブック内の名前が実際のソーシャル・ネットワーク・アカウント名にマッチしない場合、乱用判定エンジン８２８は、第１のユーザが乱用であると判定し、第１のユーザに対するコストクォータを３００ｋ／月から１０ｋ／月に減らして乱用的な振舞いを罰することができる。乱用判定エンジン８２８は次いで、エッジ・コスト、コストベースのクォータおよび属性ベースのクォータの少なくとも１つに基づいて、フォン・エッジを第１のユーザに提供するかどうかを判定する（２２４）。ポジティブな判定に応答して、乱用判定エンジン８２８は当該フォン・エッジを第１のユーザに提供する（２２６）。乱用判定エンジン８２８は第１のユーザに当該判定を通知してもよい（２２８）。
【００２７】
図３は、電話番号を介してアカウントを取得するための要求を評価し、当該評価に基づいて当該アカウントの情報をユーザに提供するかどうかを判定するための例示的な方法の流れ図を含む。方法３００は、当該電話番号に関連付けられたアカウントを取得するための第１のユーザからの電話番号を含む直接要求を第１のユーザから受信することで開始する。当該電話番号は第２のユーザに属する。例えば、第１のユーザは、（例えば、後述するソーシャル・ネットワーク・アプリケーション７２２により管理されるユーザ・プロフィール・ホームページの）検索ボックスに電話番号を入力することにより直接要求を送信して、当該電話番号に対応するアカウントを検索する。幾つかの実装では、方法３００は次いで、第１のユーザのアカウントに対する少なくとも１つの属性を収集し（３０４）、当該少なくとも１つの属性に基づいて第１のユーザに対する属性ベースのクォータを計算する（３０６）。幾つかの実施形態では、方法３００はまた、第２のユーザのアカウントに対する少なくとも１つの属性を収集する（３０４）。方法３００は次に、当該属性ベースのクォータに基づいて、第２のユーザのソーシャル・ネットワーク・アカウントを第１のユーザに提供するかどうかを判定する（３０８）。ポジティブな判定に応答して、方法３００は、当該アカウントの情報を第１のユーザに提供する（３１０）。方法３００はまた、第１のユーザに当該判定を通知する（３１２）。
【００２８】
図４は例示的なアドレスブックのグラフィック表現である。図示した例において、アドレスブック４００はユーザの携帯電話に格納される。当該アドレスブックは少なくとも当該ユーザの連絡先の電話番号を含む。当該アドレスブックのエントリ（例えば、４０２）は電話番号のみを含んでもよい。エントリはまた、電話番号および当該電話番号に対応する名前を含んでもよい。例えば、４０４は、番号８０１−１２３−４５６１に対応する第１の名前「Amy」を含む。４０６は番号８０１−１２３−４５６４に対応するニックネーム「Rockstar」を含む。エントリ（例えば、４０８）はさらに電話番号および当該電話番号に対応するフルネームを含んでもよい。当該ユーザは、当該アドレスブック内の電話番号を使用して、各連絡先に対応するソーシャル・ネットワーク・アカウントを発見して、当該ユーザがこれらの連絡先に接続できるようにしたい。当該ユーザは他の方法で写真を共有し、推奨を提供し、連絡先と対話することができる。当該ユーザが連絡先に接続するのを支援するために、このアドレスブックを、図８を参照して後述するエンジン８２２−８２８に送信して、連絡先アカウントの情報を当該ユーザに提供するかどうかを判定する。
【００２９】
図５はユーザに対する例示的な通知のグラフィック表現である。図示した図５では、ユーザ・プロフィール・ページ５００がユーザTom.Lに表示される。ユーザ・プロフィール・ページ５００は第１の通知５０２および第２の通知５０４を含む。幾つかの事例では、通知エンジン８３０は、乱用判定エンジン８２８と通信して、連絡先アカウントの情報をユーザからの要求に応答してユーザに提供するかどうかの判定に基づいて、通知５０２または５０４を送信する。第１の通知５０２は、電話番号８０１−１２３−４５６８に対応するアカウントを取得するためのユーザ要求に応答する。第１の通知５０２は、要求されたソーシャル・ネットワーク・アカウントがユーザ「Erin Yellow」に関連付けられ、「Erin Yellow」の要求されたソーシャル・ネットワーク・アカウント情報が当該ユーザに提供されていることを、当該ユーザに「Erin Yellow」の写真５０６と当該ユーザを「Erin Yellow」に接続できるようにするリンク５０８とを提供することで、当該ユーザに伝える。第２の通知５０４は、電話番号８０１−１２３−４５６１に対応するアカウントを取得するためのユーザ要求に応答する。第２の通知５０４は、要求された情報を提供できないことを当該ユーザに通知する。さらに、第２の通知５０４はまた、なぜ当該ユーザが当該要求された情報を取得できないかに関する説明（例えば、クォータ基準を満たすのに失敗したこと）と、リトライ要求の数を制限するために当該ユーザが２日後に同一の要求をリトライすべきというリマインダとを含む。
【００３０】
図６は乱用に対する例示的な通知のグラフィック表現である。図示した図６において、ユーザ・プロフィール・ページ６００がユーザTom.Lに表示される。ユーザ・プロフィール・ページ６００は通知６０２を含む。通知６０２は、電話番号８０１−１２３−４５６７に対応するアカウントを取得するためのユーザ要求に応答する。通知６０２は、現在の要求が乱用的な要求として分類され、当該ユーザは乱用として分類されるので、当該要求された情報を当該ユーザに提供できないと当該ユーザに通知する。通知６０２はさらに、当該分類に関する説明、例えば、当該ユーザが当該電話番号を用いてソーシャル・ネットワーク・アカウントを得ようと何回も試みたがその殆どが失敗したとの説明を与える。例えば、当該ユーザは、実際の電話番号（例えば、非ゼロの数で始まる１０桁等）のフォーマットでランダムに生成された電話番号の巨大なリストを有してもよい。当該ユーザはこのリストを使用して、どのソーシャル・ネットワーク・アカウントがこれらの電話番号にマッチしうるかを推定し、その結果、当該ユーザは、（例えば、これらのソーシャル・ネットワーク・アカウントに広告することで）これらのソーシャル・ネットワーク・アカウントに接続することから利益を得ることができる。かかる乱用的な振舞いを通知６０２により示すように検出することができる。通知６０２はさらに、当該ユーザに対するクォータが減ったとユーザに通知する。これはまた、将来の乱用的な振舞いに対する予防的措置である。
【００３１】
図７は、電話番号を介してアカウントを取得するための要求を評価し、当該評価に基づいて当該アカウントの情報をユーザに提供するかどうかを判定するためのシステム７００のブロック図を示す。図示したシステム７００は、ユーザ７１４ａ、７１４ｎ、サーバ７０１、電子メール・サーバ７３０およびサード・パーティ・サーバ７４０によりアクセスされるクライアント・デバイス７０６ａ、７０６ｎを備える。図示した例において、これらのエンティティはネットワーク７０５を介して通信可能に接続される。図１および残りの図面において、参照番号の後の文字、例えば、「７０６ａ」は、その特定の参照番号を有する要素に対する参照である。後続の文字がないテキスト内の参照番号、例えば、「７０６」は、その参照番号をもつ要素の異なる実施形態に対する一般的な参照である。２つのデバイスのみが図示されているが、当業者は、任意数のクライアント・デバイス７０６ｎが任意数のユーザ７１４ｎに利用可能であることを認識する。
【００３２】
ネットワーク７０５は従来のタイプ、有線または無線であってもよく、星形構成、トークンリング構成または他の構成を含む多数の異なる構成を有してもよい。さらに、ネットワーク７０５は、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）（例えば、インターネット）、および／または複数のデバイスが通信できる他の相互接続されたデータ経路を含んでもよい。幾つかの事例では、ネットワーク７０５はピア・ツー・ピア・ネットワークであってもよい。ネットワーク７０５はまた、様々な異なる通信プロトコルでデータを送信するための電気通信ネットワークの一部に接続されるかまたはそれを含んでもよい。幾つかの他の事例では、ネットワーク７０５は、Bluetooth（登録商標）通信ネットワークまたはショート・メッセージ・サービス（ＳＭＳ）、マルチメディア・メッセージング・サービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メール等を介してデータを送受信するためのセルラ通信ネットワークを含む。図１はクライアント・デバイス７０６およびサード・パーティ・サーバ７４０に接続された１つのネットワーク７０５を示すが、実際には１つまたは複数のネットワーク７０５はこれらのエンティティに接続することができる。
【００３３】
図１のクライアント・デバイス７０６ａ、７０６ｎは例として使用されている。２つのクライアント・デバイス７０６のみが示されているが、本開示は任意数のクライアント・デバイス７０６を有するシステムアーキテクチャに適用される。図示した実装では、ユーザ７１４ａ、７１４ｎはそれぞれクライアント・デバイス７０６ａ、７０６ｎと信号線７１２ａ、７１２ｎを介して対話する。クライアント・デバイス７０６ａ、７０６ｎはそれぞれ信号線７０４ａ、７０４ｎを介してネットワーク７０５に通信可能に接続され、サーバ７０１、電子メール・サーバ７３０およびサード・パーティ・サーバ７４０と情報を交換する。例えば、クライアント・デバイス７０６ａは、電話番号を介してアカウントを検索するための要求をサーバ７０１に送信する。当該アカウントはユーザに関連付けられる。サーバ７０１は、当該要求を処理し、当該要求されたアカウント情報をクライアント・デバイス７０６ａに提供するかどうかを判定する。
【００３４】
幾つかの事例では、クライアント・デバイス７０６は、メモリおよびプロセッサを含む任意のコンピューティング・デバイスであることができる。例えば、クライアント・デバイス７０６は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイル電話、携帯情報端末、モバイル電子メールデバイス、ポータブルゲーム・プレイヤ、ポータブル音楽プレイヤ、１つまたは複数のプロセッサを組み込むかまたはそれに接続されるテレビまたはネットワーク７０５にアクセスできる任意の他の電子デバイス等であることができる。
【００３５】
サーバ７０１は、プロセッサ、メモリおよびネットワーク通信能力を含むハードウェアサーバであることができる。サーバ７０１は、信号線７１８を介してネットワーク７０５に通信可能に接続される。幾つかの事例では、サーバ７０１は、クライアント・デバイス７０６、電子メール・サーバ７３０およびサード・パーティ・サーバ７４０のうち１つまたは複数に対してネットワーク７０５を介してデータを送受信する。サーバ７０１はソーシャル・ネットワーク・アプリケーション７２２を含む。
【００３６】
ソーシャル・ネットワークは、ユーザが共通の特徴により接続されうる一種の社会的構造であることができる。当該共通の特徴は関係／接続、例えば、友達関係、家族、仕事、関心等を含む。当該共通の特徴は、明示的に定義された関係および他のオンラインユーザとのソーシャル接続により示唆された関係を含む１つまたは複数のソーシャルネットワーキングシステムにより提供されうる。当該関係はソーシャル・グラフを形成する。幾つかの例では、当該ソーシャル・グラフは、これらのユーザのマッピングを反映し、どのようにそれらを関連付けうるかを反映できる。サーバ７０１内のソーシャル・ネットワーク・アプリケーション７２２は、ユーザの登録、コンテンツの公開（例えば、投稿、コメント、写真、リンク、チェックイン等）を処理し、マルチユーザ通信セッションをホストし、グループを管理し、異なる共有レベルを管理し、ソーシャル・グラフを更新すること等によって、当該ソーシャル・ネットワークを管理する。ソーシャル・ネットワーク・アプリケーション７２２は、ユーザ名およびパスワードのような情報を受信することでユーザを登録し、当該ユーザに関連付けられ当該ソーシャル・グラフの一部として格納されるユーザ・プロフィールを生成する。幾つかの事例では、当該ユーザ・プロフィールは、関心（例えば、サッカー、読書、食事、購読等）、アクティビティ（例えば、検索履歴、承認の指示、投稿、コメント、マルチユーザ通信セッション等）、人口（例えば、年齢、民族、位置等）およびプロフィール評価および評判（例えば、知識評価、ユーモア評価等）を含む、ユーザに関する追加の情報を含む。システム７００は従来のソーシャル・ネットワークサーバ、電子メール・サーバ、マイクロ−ブログサーバ、ブログサーバ、フォーラムサーバ、メッセージサーバ等を含む複数のサーバ７０１を含んでもよい。
【００３７】
さらに、サーバ７０１およびソーシャル・ネットワーク・アプリケーション７２２は１つのソーシャル・ネットワークを代表してもよい。ネットワーク７０５に接続される複数のソーシャル・ネットワークがあってもよく、それぞれは、独自のサーバ、アプリケーションおよびソーシャル・グラフを有する。例えば、第１のソーシャル・ネットワークはビジネスネットワーキングにより関連し、第２のソーシャル・ネットワークはより学術に関連するかまたは集約され、第３のソーシャル・ネットワークはローカルビジネスにより関連してもよい。
【００３８】
電子メール・サーバ７３０は、プロセッサ、メモリおよびネットワーク通信能力を含むハードウェアサーバであることができる。電子メール・サーバ７３０は、信号線７２８を介してネットワーク７０５に通信可能に接続される。幾つかの事例では、電子メール・サーバ７３０は検索エンジン７３０を含む。検索エンジン７３０は、検索要求をクライアント・デバイス７０６から受信し、当該検索要求に基づいて検索を行い、検索結果をクライアント・デバイス７０６に送信し戻す。例えば当該検索要求は「電話」、「セル」、または「連絡先」等のようなキーワードを含む。当該検索結果は電話番号を含み、当該電話番号に関連付けられた連絡先名であってもよい。サーバ７０１は、クライアント・デバイス７０６と通信して、当該検索結果に基づいてアドレスブックを決定し、当該アドレスブックを処理して、電話番号に対応するアカウントをユーザに提供するかどうかを判定する。
【００３９】
サード・パーティ・サーバ７４０は、プロセッサ、メモリおよびネットワーク通信能力を含むコンピューティング・デバイスであることができる。サード・パーティ・サーバ７４０は信号線７３８を介してネットワーク７０５に接続される。サード・パーティ・サーバ７４０は、ネットワーク７０５を介してクライアント・デバイス７０６、サーバ７０１およびシステム７００の検索サーバとデータを送受信する。例えば、サード・パーティ・サーバ７４０は、サードパーティアプリケーション（例えば、電話番号生成器）を格納し、当該サードパーティアプリケーションから受信した電話番号をサーバ７０１にさらなる処理のために送信する。
【００４０】
幾つかの事例では、サーバ７０１はアカウント検索アプリケーション７２０ａを含む。他の事例では、アカウント検索アプリケーション７２０ｂをクライアント・デバイス７０６に格納してもよい。例えば、アカウント検索アプリケーション７２０ｂは、クライアント・デバイス７０６上のアカウント検索アプリケーション７２０の部分と、当該ユーザにより要求されたアカウントのユーザ情報を提供するかどうかを判定するための、サーバ７０１上のアカウント検索アプリケーション７２０の部分とを含む、シン・クライアントアプリケーションである。
【００４１】
アカウント検索アプリケーション７２０は、アカウントを検索するための要求を第１のユーザから受信し、当該アカウントを第１のユーザに提供するかどうかを判定する。当該要求は電話番号を含む。第１のユーザは、どのソーシャル・ネットワーク・アカウントに当該電話番号が属するかを発見し、第１のユーザが当該アカウントに関連付けられる第２のユーザに接続できるようにしたい。幾つかのシナリオでは、当該電話番号は、第１のユーザが当該アカウントについて知っている唯一のものでありうる。第１のユーザは、当該電話番号にマップするソーシャル・ネットワーク・アカウントをできるだけ多く取得し、彼または彼女がこれらのソーシャル・ネットワーク・アカウントと接続することから利益を得ることができるようにしたいだけである。かかる振舞いは潜在的に乱用的な振舞いである。アカウント検索アプリケーション７２０は、乱用的な振舞いのリスクを軽減し、同時に正当な振舞いを保護するように動作する。
【００４２】
幾つかの事例では、第１のユーザから電話番号を受信したことに応答して、アカウント検索アプリケーション７２０は、当該電話番号を当該対応するソーシャル・ネットワーク・アカウントにマップするためのフォン・エッジを生成する。アカウント検索アプリケーション７２０は、このフォン・エッジを生成するが、このフォン・エッジを第１のユーザには示さない。アカウント検索アプリケーション７２０は、このフォン・エッジを読むための要求を第１のユーザから受信し、コスト、コストベースのクォータおよび属性ベースのクォータを計算して、第１のユーザがこのフォン・エッジを読めるかどうかを判定する。幾つかの事例では、アカウント検索アプリケーション７２０は、名前マッチング・アルゴリズムを使用して、当該コストおよび当該コストベースのクォータを決定する。例えば、Ryanは番号１２３４５６７を有し、この番号１２３４５６７が属する人全てと接続したい。アカウント検索アプリケーション７２０は、この番号１２３４５６７がJohn Smithに属すると判定し、この１２３４５６７をJohn Smithにマップするためのフォン・エッジを生成する。第１のシナリオでは、RyanはJohn Smithの友達である。RyanはJohnの名前をJohnの電話番号とともに自分のアドレスブックに入れる。したがって、RyanがJohnのソーシャル・ネットワーク・アカウントの情報を要求したとき、アカウント検索アプリケーション７２０は、Ryanのアドレスブック内の名前がJohn Smithのアカウント名にマッチすると判定する。このマッチに基づいて、アカウント検索アプリケーション７２０はゼロコストを当該フォン・エッジに割り当て、RyanがコストなしにJohnに接続できるようにする。第２のシナリオでは、Johnは１度Ryanのために働いた配管工である。RyanはJohnの第１の名前および電話番号を自分のアドレスブックに持っている。この時点でRyanはJohnの支援がまた必要であるが、電話でJohnに連絡できない。Ryanは自分の電話番号を用いてJohnを発見し、Johnに接続したい。アカウント検索アプリケーション７２０は、Ryanのアドレスブック内の名前「John」とソーシャルアカウント名「John Smith」の間の部分的なマッチを決定する。この部分的なマッチに基づいて、アカウント検索アプリケーション７２０は、コスト５０を当該フォン・エッジに割り当てて、Ryanが５０を支払ってJohnと接続できるようにする。第３のシナリオでは、Ryanは、電話番号生成器によりランダムに生成された番号のリストを取得する。Ryanは誰が番号１２３４５６７を所有するかを知らず、したがってRyanのアドレスブック内のこの番号に関連付けられた名前を有さない。Ryanは、広告を送付できるように、この番号が指す人を知りたい。アカウント検索アプリケーション７２０はRyanの要求を受信し、名前マッチが全く無いと判定する。この場合、アカウント検索アプリケーション７２０は、Ryanが５０００だけを支払ってJohnの情報を得ることができるように、コスト５０００をRyanに設定する。アカウント検索アプリケーション７２０は、当該３つの要求を３つの異なるシナリオにおいて区別し、各要求に応答するための適切なソリューションを提供する。
【００４３】
他の事例では、アカウント検索アプリケーション７２０はまた、属性ベースのクォータを計算して、要求するユーザに連絡先アカウント情報を提供するかどうかを判定する。例えば、アカウント検索アプリケーション７２０は、ユーザがより多くのフォロワを得ると当該ユーザの評判スコアが上がるので、当該ユーザに対する属性ベースのクォータを増大させる。より高い属性ベースのクォータは、より多くの数の電話番号に関連付けられた連絡先アカウント情報を当該ユーザに取得させうる。
【００４４】
幾つかの事例では、アカウント検索アプリケーション７２０は要求を正当または乱用的と分類する。上の例に関して、アカウント検索アプリケーション７２０は、第１のシナリオ内の当該要求を正当と判定し、第３のシナリオ内の当該要求を乱用的な要求と判定してもよい。したがって、アカウント検索アプリケーション７２０は正当な要求にコスト無しで応答し、一方でコストを５０００に上げることで乱用的な要求を罰する。
【００４５】
アカウント検索アプリケーション７２０により提供される同一のソリューションを電子メールに適用することもできる。電子メール検索で使用するとき、アカウント検索アプリケーション７２０は、電子メールの空間はかなり大きいので、「６または７文字の長さまでの全ての電子メールアドレスの所有者を発見すること」を緩和してもよい。
【００４６】
次に図８を参照すると、アカウント検索アプリケーション７２０の１例をより詳細に説明する。図８は、幾つかの実装に従う、プロセッサ８０２、メモリ８０４、通信ユニット８０８、記憶８１０およびアカウント検索アプリケーション７２０を含む、コンピューティング・デバイス８００のブロック図である。コンピューティング・デバイス８００のコンポーネントはバス８０６により通信可能に接続される。幾つかの事例では、コンピューティング・デバイス８００はサーバ７０１である。他の事例では、コンピューティング・デバイス８００はクライアント・デバイス７０６である。
【００４７】
プロセッサ８０２は、計算を実施し電子表示信号をディスプレイデバイスに提供するための、算術論理ユニット、マイクロプロセッサ、汎用目的コントローラまたは幾つかの他のプロセッサアレイの一部または全部を含む。プロセッサ８０２は、当該他のコンポーネントと通信するためのバス８０６に接続される。プロセッサ８０２は、データ信号を処理し、複雑命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、または命令セットの組合せを実装するためのアーキテクチャを含む様々なコンピューティングアーキテクチャを含んでもよい。図８は単一のプロセッサを含むが、複数のプロセッサが含まれる。当該処理能力は、画像のディスプレイおよび画像のキャプチャと送信をサポートすることに限定してもよい。当該処理能力はより複雑なタスクを実施するのに十分かもしれず、当該タスクは様々なタイプの特徴抽出とサンプリングを含む。他のプロセッサ、オペレーティング・システム、センサ、ディスプレイおよび物理構成が可能であることは当業者には明らかであろう。
【００４８】
メモリ８０４は、プロセッサ８０２により実行されうる命令および／またはデータを格納する。メモリ８０４は他のコンポーネントと通信するためのバス８０６に接続される。当該命令および／またはデータは、本明細書で説明した技術の何れかおよび／または全てを実施するためのコードを含んでもよい。メモリ８０４は、動的ランダム・アクセスメモリ（ＤＲＡＭ）デバイス、静的ランダム・アクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリまたは当業界で公知な幾つかの他のメモリデバイスであってもよい。幾つかの事例では、メモリ８０４はまた、不揮発性メモリまたは同様な永続記憶および媒体、例えば、ハードディスクドライブ、フロッピーディスクドライブ、ＣＤ-ＲＯＭデバイス、ＤＶＤ-ＲＯＭデバイス、ＤＶＤ-ＲＡＭデバイス、ＤＶＤ-ＲＷデバイス、フラッシュメモリデバイス、または幾つかの他の大容量記憶当業界で公知な情報をより永続に記憶するためのを含む。
【００４９】
通信ユニット８０８は、クライアント・デバイス７０６、サーバ７０１、電子メール・サーバ７３０およびサード・パーティ・サーバ７４０に対してデータを送受信する。通信ユニット８０８はバス８０６に接続される。例えば、通信ユニット８０８は、クライアント・デバイス７０６からのアドレスを含むデータを受信し、当該データをサーバ７０１に送信する。サーバ７１０は、サーバ７０１に格納されたアカウント検索アプリケーション７２０を用いて当該データを処理し、結果をクライアント・デバイス７０６に送信する。
【００５０】
幾つかの事例では、通信ユニット８０８は、クライアント・デバイス７０６または別の通信チャネルに対する直接物理接続のためのポートを含む。例えば、通信ユニット８０８はクライアント・デバイス７０６との有線通信のためのＲＪ４５ポートまたは同様なポートを含む。他の事例では、通信ユニット８０８は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、Ｂｌｕｅｔｏｏｔｈ「登録商標」または別の適切な無線通信方法のような１つまたは複数の無線通信方法を用いてクライアント・デバイス７０６または任意の他の通信チャネルとデータを交換するための無線送受信器（図示せず）を備える。
【００５１】
幾つかの他の事例では、通信ユニット８０８は、ショート・メッセージ・サービス（ＳＭＳ）、マルチメディア・メッセージング・サービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、無線アプリケーションプロトコル（ＷＡＰ）、ｅ−メールまたは別の適切なタイプの電子通信を介してセルラ通信ネットワーク上でデータをを送受信するためのセルラ通信送受信器を含む。さらに別の実施形態では、通信ユニット８０８は有線ポートおよび無線送受信器を含む。通信ユニット８０８はまた、当業者に理解されるようにＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳおよびＳＭＴＰのような標準的なネットワークプロトコルを用いたファイルおよび／または媒体オブジェクトの配分のためのネットワーク７０５への他の従来の接続を提供する。
【００５２】
記憶８１０は、本明細書で説明する機能を提供するためのデータを格納する非一時的メモリである。記憶８１０はバス８０６に接続される。記憶８１０は動的ランダム・アクセスメモリ（ＤＲＡＭ）デバイス、静的ランダム・アクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリまたは幾つかの他のメモリデバイスであってもよい。幾つかの事例では、記憶８１０はまた、不揮発性メモリまたは同様な永続記憶およびハードディスクドライブ、フロッピーディスクドライブ、ＣＤ-ＲＯＭデバイス、ＤＶＤ-ＲＯＭデバイス、ＤＶＤ-ＲＡＭデバイス、ＤＶＤ-ＲＷデバイス、フラッシュメモリデバイス、または情報をより永続に記憶するための幾つかの他の大容量記憶を含む媒体を含む。
【００５３】
幾つかの事例では、記憶８１０は、ユーザに関連付けられたソーシャル・ネットワークプロフィール、当該ユーザにより収集されたアカウント属性（例えば、アカウントの作成時刻、ユーザの評判スコア等）、当該ユーザのアドレスブック、電話番号をソーシャル・ネットワーク・アカウントにマップするフォン・エッジ、通知等を格納する。
【００５４】
幾つかの事例では、アカウント検索アプリケーション７２０はコントローラ８２０、属性エンジン８２２、エッジ生成エンジン８２４、基準エンジン８２６、乱用判定エンジン８２８、および通知エンジン８３０を含む。
【００５５】
コントローラ８２０はデータを適切なコンポーネントに対して送受信するためのルーチンを含むソフトウェアであることができる。幾つかの事例では、コントローラ８２０は、データを送受信するための後述する機能を提供するためのプロセッサ８０２により実行可能な１組の命令であることができる。他の事例では、コントローラ８２０は、コンピューティング・デバイス８００のメモリ８０４に格納でき、プロセッサ８０２によりアクセス可能かつ実行可能であることができる。幾つかの事例では、コントローラ８２０を、プロセッサ８０２およびコンピューティング・デバイス８００の他のコンポーネントとの協調と通信のために適合することができる。
【００５６】
幾つかの事例では、コントローラ８２０は通信ユニット８０８を介してデータを受信し、データをアカウント検索アプリケーション７２０の適切なエンジンに送信する。例えば、コントローラ８２０は、通信ユニット８０８を介してアドレスブックをクライアント・デバイス１０６から受信し、当該アドレスブックを属性エンジン８２２にさらなる処理のために送信する。別の例では、コントローラ８２０は、アカウントの情報をエッジ生成エンジン８２４から、少なくとも１つの属性を属性エンジン８２２から受信し、当該アカウントの情報および当該少なくとも１つの属性を乱用判定エンジン８２６に送信して、当該少なくとも１つの属性に基づいて当該アカウントの情報を要求するユーザに提供するかどうかを判定する。
【００５７】
属性エンジン８２２は、アカウントに関連付けられた属性情報を収集するためのルーチンを含むソフトウェアであることができる。幾つかの事例では、属性エンジン８２２は、アカウントに関連付けられた属性情報を収集するための後述する機能を提供するためのプロセッサ８０２により実行可能な１組の命令であることができる。他の事例では、属性エンジン８２２は、コンピューティング・デバイス８００のメモリ８０４に格納でき、プロセッサ８０２によりアクセス可能かつ実行可能であることができる。幾つかの事例では、属性エンジン８２２を、プロセッサ８０２およびコンピューティング・デバイス８００の他のコンポーネントとの協調と通信のために適合することができる。
【００５８】
属性エンジン８２２は、ソーシャル・ネットワーク・アプリケーション７２２と通信して、アカウントの属性情報を収集する。当該アカウントは第１のユーザに関連付けられた所有者アカウントであることができる。第１のユーザは、電話番号を用いて別のソーシャル・ネットワーク・アカウントを検索することを要求する。第１のユーザにより要求された他のソーシャル・ネットワークは連絡先アカウントである。当該連絡先アカウントは第２のユーザに関連付けられる。属性エンジン８２２により収集された属性を使用して、第２のユーザに関連付けられた連絡先アカウントを要求するための第１のユーザからの要求が正当であるかどうかを判定し、当該連絡先アカウント情報を第１のユーザに提供するかどうかを判定することができる。当該連絡先アカウント情報は少なくとも第２のユーザのアカウント名および第２のユーザのユーザ・プロフィールを含む。
【００５９】
幾つかの事例では、属性エンジン８２２は、所有者アカウントの名前、当該所有者アカウントの作成時刻、当該所有者アカウントの年齢、アカウント健康属性等を含む、当該所有者アカウントに対する属性を収集する。幾つかの事例では、当該アカウント健康属性は、評判スコア、ユーザ分類（例えば、乱用、スパマ、ヘルパ等）または他のサーバ（例えば、携帯電話、電子メール・サーバ等）にインストールされた乱用検出システムから受信された他の信号を含む。例えば、第１のユーザが良好な評判を有するという指示が、第１のユーザからの検索要求が正当であると判定する際に優先されてもよい。他の事例では、当該アカウント健康属性は、当該所有者アカウントのプロフィール構成が完了しているかどうか、当該所有者アカウントのユーザ・プロフィールが最後に更新されたのはいつか、平均してどれくらい長く当該所有者アカウントのユーザ・プロフィールが更新されているか等に関する活動データを含む。例えば、当該アカウント健康属性が、過去２か月に電話番号を介した連絡先アカウントの要求を除いて、当該所有者アカウントにおいてゼロ回の更新を示すことは、当該要求が正当であることに対する指示である。
【００６０】
他の事例では、属性エンジン８２２は、連絡先アカウントの名前、当該連絡先アカウントの作成時刻、当該連絡先アカウントの年齢を含む当該連絡先アカウントに対する属性、および当該連絡先アカウントに関連付けられた第２のユーザが、第３のソーシャル・ネットワーク・アカウント（即ち、異なる連絡先アカウント）を要求する所有者として動作するかどうか、どれだけ頻繁に第２のユーザが異なる連絡先アカウントに対する要求を開始するか等を含む活動データに基づく属性を収集する。
【００６１】
幾つかの他の事例では、属性エンジン８２２は、どの更新を所有者アカウントが連絡先アカウントに関連する情報に対して行っているかに関する属性を収集する。例えば、属性エンジン８２２は、第１のユーザが第１のユーザのアドレスブック内のどのエントリをどのように更新するかを判定する。当該エントリは、電話名前および名前のような連絡先の情報を含む。属性エンジン８２２は、エントリが電話番号に対応する連絡先名「John Smith」なしに最初に生成され、次いで第１の名前「John」が当該電話番号に対応するように追加され、最後に姓「Smith」が当該電話番号に対応するように追加されたことを示す属性を収集してもよい。これらの属性は、要求する第１のユーザに第２のユーザの連絡先アカウント情報を提供するかどうかを判定するのを支援する。例えば、第１のユーザのアドレスブックの複数のエントリにおける名前の頻繁な更新は乱用的な振舞いのヒントでありうる。
【００６２】
属性は第１のユーザのアドレスブックを含んでもよい。当該アドレスブックは第１のユーザの連絡先の情報を含む。当該アドレスブック内のエントリは電話番号を含む。エントリはまた、当該電話番号が属する連絡先のフルネーム、部分的な名前を含んでもよく、または当該連絡先の名前を含まなくてもよい。例示的なアドレスブックは図４を参照して以下で説明される。幾つかの事例では、属性エンジン８２２は、第１のユーザに対するアドレスブックをソーシャル・ネットワーク・アプリケーション７２２から受信する。例えば、属性エンジン８２２は、電話番号および対応する名前（存在すれば）をソーシャル・ネットワーク・アプリケーション７２２により管理される連絡先リストから抽出することによって、アドレスブックを取得する。他の事例では、属性エンジン８２２は第１のユーザに対するアドレスブックをクライアント・デバイス１０６から受信する。例えば、属性エンジン８２２は、第１のユーザの携帯電話に格納されたアドレスブックを取得する。幾つかの実装では、属性エンジン８２２は、当該携帯電話で第１のユーザにより入力された電話番号および名前を受信し、それらを当該アドレスブックに格納する。当該ユーザが入力した電話番号は、実際の電話番号の形をとり単に検索目的で使用される、ランダムに生成された番号であることができる。幾つかの他の事例では、属性エンジン８０２は、電子メール・サーバ７３０と通信し、または幾つかの実装では、サード・パーティ・サーバ７４０と通信して、第１のユーザに対するアドレス帳を収集する。例えば、属性エンジン８０２は、電子メール署名の分析に基づいて第１のユーザに対するアドレスブックを取得する。あるいは、属性エンジン８０２は、連絡先を他のソーシャル・ネットワークサーバから抽出して結合することによって第１のユーザに対するアドレスブックを収集する。属性エンジン８０２は、様々なソースからのアドレスブックを第１のユーザに対するアドレスブックに結合する。
【００６３】
属性エンジン８２２は、ユーザの同意のもとでユーザに関連する属性を収集する。幾つかの事例では、属性エンジン８２２は収集された属性を記憶８１０に格納する。他の事例では、属性エンジン８２２は収集された属性をエッジ生成エンジン８２４、基準エンジン８２６および乱用判定エンジン８２８にさらなる処理のために送信する。
【００６４】
エッジ生成エンジン８２４は、電話番号を属性エンジン８２２から受信したことに応答して、フォン・エッジを生成するためのルーチンを含むソフトウェアであることができる。幾つかの事例では、エッジ生成エンジン８２４は、電話番号を属性エンジン８２２から受信したことに応答してフォン・エッジを生成するための後述する機能を提供するためのプロセッサ８０２により実行可能な１組の命令であることができる。他の事例では、エッジ生成エンジン８２４は、コンピューティング・デバイス８００のメモリ８０４に格納し、プロセッサ８０２によりアクセス可能および実行可能であることができる。幾つかの事例では、エッジ生成エンジン８２４を、プロセッサ８０２およびコンピューティング・デバイス８００の他のコンポーネントとの協調と通信のために適合することができる。
【００６５】
幾つかの事例では、エッジ生成エンジン８２４は第１のユーザのアドレスブックを属性エンジン８２２から受信する。当該アドレスブックのエントリは少なくとも電話番号を含む。当該アドレスブックのエントリはまた、当該電話番号に対応するフルネーム、ニックネームまたは部分的な名前を含んでもよい。エッジ生成エンジン８２４は、当該電話番号をアカウントにマップすることでフォン・エッジを生成する。当該フォン・エッジは電話番号およびアカウントの間の接続である。例えば、エッジ生成エンジン８２４は、第１のユーザのアドレスブック内の電話番号に基づいてユーザ・プロフィールを検索し、第２のユーザのユーザ・プロフィールに列挙された電話番号（例えば、自宅番号、携帯番号）がアドレスブック内の電話番号にマッチすると判定する。結果として、エッジ生成エンジン８２４は第２のユーザを当該電話番号の所有者として識別し、第２のユーザのアカウントを当該電話番号に関連付けてフォン・エッジを生成する。幾つかの事例では、フォン・エッジを生成するとき、エッジ生成エンジン８２４はまた当該フォン・エッジをマークで注釈付けする。当該マークは、第１のユーザがこのフォン・エッジを読めるかどうかを判定するための後述する乱用判定エンジン８２８により修正し使用することができる。
【００６６】
幾つかの事例では、エッジ生成エンジン８２４はフォン・エッジをシステム８００のバックエンドで生成し、したがって当該フォン・エッジは第１のユーザに示されない。当該フォン・エッジは、第１のユーザのアドレスブックで与えられる電話番号にマップされる連絡先アカウントの情報を含む。かかる情報は第１のユーザには未知であるかもしれず、第１のユーザにより要求される。例えば、AliceはJaneの電話番号のみを知っているが、Aliceが自分の結婚式の写真をJaneと共有できるように、当該電話番号に基づいてJaneと接続したい。幾つかの事例では、第１のユーザのアドレスブック内の電話番号に対するフォン・エッジを生成することに加えて、エッジ生成エンジン８２４はまた、当該電話番号に関連付けられた連絡先アカウントを検索するための第１のユーザに対する要求を生成する。当該フォン・エッジは、当該要求に対する応答として第１のユーザに示されても示されなくてもよい。上の例を続けると、エッジ生成エンジン８２４が、Aliceのアドレスブックに列挙されているJaneの電話番号にJaneのソーシャル・ネットワーク・アカウントで接続するためのフォン・エッジを生成するとき、エッジ生成エンジン８２４はまた、AliceがJaneのソーシャル・ネットワーク・アカウントを要求するための要求を生成する。当該要求に応答して、Aliceは、Janeのソーシャル・ネットワーク・アカウントを受信して、Janeに接続してもよい。当該要求を受信したことに応答して当該フォン・エッジを第１のユーザに提供するかどうかを判定することを、乱用判定エンジン８２８を参照して以下で詳細に説明する。
【００６７】
幾つかの事例では、エッジ生成エンジン８２４は、第１のユーザのアドレスブックに含まれる電話番号のリストを受信する。エッジ生成エンジン８２４は、各電話番号を当該電話番号が指すアカウントに関連付けることによって、当該リスト内の電話番号ごとにフォン・エッジを生成する。幾つかの事例では、エッジ生成エンジン８２４は、属性エンジン８２２から当該アドレスブックを定期的に受信し、当該アドレスブックに基づいてフォン・エッジを生成する。幾つかの事例では、エッジ生成エンジン８２４はフォン・エッジを記憶８１０に格納する。
【００６８】
基準エンジン８２６は、電話番号を介してアカウントを検索するための要求に応答するための少なくとも１つの基準を設定するためのルーチンを含むソフトウェアであることができる。幾つかの事例では、基準エンジン８２６は、電話番号を介してアカウントを検索するための要求に応答するための少なくとも１つの基準を設定するための後述する機能を提供するためのプロセッサ８０２により実行可能な１組の命令であることができる。他の事例では、基準エンジン８２６は、コンピューティング・デバイス８００のメモリ８０４に格納でき、プロセッサ８０２によりアクセス可能かつ実行可能であることができる。幾つかの事例では、基準エンジン８２６を、プロセッサ８０２およびコンピューティング・デバイス８００の他のコンポーネントとの協調と通信のために適合することができる。
【００６９】
第２のユーザの電話番号を有し第２のユーザと接続したい第１のユーザに対して、当該電話番号を用いて第２のユーザのアカウント（即ち、連絡先アカウント）を検索するための要求を送信するための２つの方法がある。幾つかの事例では、第１のユーザは、（例えば、ソーシャル・ネットワーク・アプリケーション７２２により管理されるユーザ・プロフィール・ホームページの）検索ボックスに電話番号を入力することで直接要求を送信して、当該電話番号に対応する連絡先アカウントを検索する。他の事例では、エッジ生成エンジン８２６は、第１のユーザのアドレスブック内の電話番号に対応する連絡先アカウントを検索するための第１のユーザに対する要求を自動的に生成する。この自動的な要求生成機構は、連絡先アカウントを発見するための時間と労力を減らすので、有利である。直接要求および自動的な要求の両方を以降、検索要求と称してもよい。
【００７０】
基準エンジン８２６は、直接要求または自動的な要求を受信したことに応答して、連絡先アカウントの情報を第１のユーザに提供するかどうかを判定するために使用される少なくとも１つの基準を設定する。当該少なくとも１つの基準はコストベースのクォータおよび属性ベースのクォータを含むことができる。
【００７１】
幾つかの事例では、基準エンジン８２６は、コストをフォン・エッジに対して設定し、当該コストに基づいて、要求するユーザ（例えば、第１のユーザ）に対するクォータをどのように計算するかを定義する。このコストおよびコストベースのクォータは、検索要求がエッジ生成エンジン８２４により自動的に生成されるシナリオでのみ使用できるので、エッジ関連である。当該フォン・エッジは、第１のユーザのアドレスブック内の電話番号を第２のユーザのアカウントにマップする。幾つかの事例では、基準エンジン８２６は、当該アドレスブック内の電話番号に対応する名前および第２のユーザのアカウント名の間のマッチのレベルに基づいて、当該フォン・エッジに対するコストを決定する。例えば、当該２つの名前がマッチするとき、基準エンジン８２０は、名前マッチング・エッジ・コストを１０と決定し、当該名前マッチング・エッジ・コストを当該フォン・エッジに割り当てる。当該２つの名前が部分的にマッチするとき、基準エンジン８２０は、部分名前マッチング・エッジ・コストを５００と決定し、当該部分名前マッチング・エッジ・コストを当該フォン・エッジに割り当てる。当該２つの名前がマッチしないとき、基準エンジン８２０は、非名前マッチング・エッジ・コストを１０００と決定し、当該非名前マッチング・エッジ・コストを当該フォン・エッジに割り当てる。一般に、名前マッチが少ないと、コストが高くなる。当該名前マッチングシナリオでは、第１のユーザは第２のユーザの電話番号および名前の両方を知っている。第１のユーザはしたがって第２のユーザの知り合いである可能性が高い。第２のユーザのアカウントに対する第１のユーザからの要求が正当である可能性が高い。第１のユーザは最小のコストを有する第２のユーザのアカウントを取得してもよい。当該非名前マッチングシナリオでは、第１のユーザは第２のユーザの電話番号のみを知っている。これは、第１のユーザがランダムな番号で連絡先を推定しようと試みる乱用的なケースでは必ずしもないが、乱用的なケースが支配的になる可能性が高い。当該要求およびエッジは乱用的な振舞いを信号送信しうる。第１のユーザは、第２のユーザのアカウントを取得しないか、または、最大コストでそれを取得してもよい。基準エンジン８２６が様々な種類のコストおよび異なるコスト値を決定しうることは当業者に知られている。
【００７２】
基準エンジン８２６は、エッジ生成エンジン８２４により第１のユーザのアドレスブック内の電話番号のリストに基づいて生成されたフォン・エッジにコストを割り当てる。基準エンジン８２６は次いで、当該コストに基づいて、要求するユーザ（例えば、第１のユーザ）に対するクォータをどのように計算するかを定義する。幾つかの事例では、基準エンジン８２６は、対応するエッジの数により重み付けされたコストの和としてクォータを定義する。例えば、第１のユーザに対するコストベースのクォータ＝名前マッチング・エッジの数×名前マッチング・コスト＋部分名前マッチング・エッジの数×部分名前マッチング・コスト＋非名前マッチング・エッジの数×非名前マッチング・コストである。他のアルゴリズムを使用してコストに基づいてクォータを計算できることは当業者には知られている。当該コストベースのクォータは、フォン・エッジを第１のユーザに提供するかどうかを判定するために使用される。当該クォータが高いと、第１のユーザが当該フォン・エッジを取得する確率が高い。乱用判定エンジン８２８は、後述するように、当該コストベースのクォータに基づいてフォン・エッジを、要求するユーザに提供するかどうかを判定する。
【００７３】
基準エンジン８２６はまた、名前マッチのレベルを判定するための基準を設定する。当該基準は、フルネーム・マッチがあるかどうかを判定するステップ、大文字小文字を無視するかどうか（例えば、daViDがDavidにマッチするかどうか）を判定するステップ、名前の中のプレフィックスおよびサフィックスを無視するかどうか（例えば、Mr.David SmithがDavid Smithにマッチするかどうか）を判定するステップ、区別的発音符、句読点、空白文字等を無視するかどうか（例えば、David、SmithがDavid Smithにマッチするかどうか）を判定するステップ、最初の名前マッチまたは中央の名前マッチまたは最後の名前マッチが動作するかどうか（例えば、DavidがDavid Smithにマッチするかどうか、David SがDavid Smithにマッチするかどうか、SmithがDavid Smithにマッチするかどうか、JoeがDavid Joe Smithにマッチするかどうか）を判定するステップ、異なる名前の順序が重要であるかどうか（例えば、David SmithがSmith Davidにマッチするかどうか）を判定するステップ、共通の短い名前およびニックネームが動作するかどうか（例えば、Bob SmithがRobert Smithにマッチするかどうか、JenがJennifer Smithにマッチするかどうか）を判定するステップ、少々ミススペルした名前が動作するかどうかを判定するステップ（例えば、JeniferがJennifer Smithにマッチするかどうか、RadikaがRadhika Smithにマッチするかどうか）、および或る名前が他の名前の部分文字列かどうか（例えば、RadがRadhikaにマッチするかどうか、hikがRadhikaにマッチするかどうか）を判定するステップ等を含む。
【００７４】
幾つかの事例では、基準エンジン８２６が、名前マッチに対する確信度スコアを決定するための基準を設定し、当該確信度スコアを対応するフォン・エッジと関連付ける。当該確信度スコアはゼロと１の間にあってもよい。例えば、基準エンジン８２６からの基準に基づいて、フルネーム・マッチは１に等しい確信度スコアを有し、Jeniferおよび（１文字のミスマッチを有する）Jennifer Smithの間の名前マッチは、Radおよび（４つの文字ミスマッチを有する）Radhikaの間の名前マッチより高い確信度スコアを有し、RadおよびRadhikaの間の名前マッチがhikおよび（開始文字のマッチがない）Radhikaの間の名前マッチより高い確信度スコアを有する。基準エンジン８２６は、コストベースのクォータを計算するときに、当該確信度スコアを考慮に入れるためのルールを設定することができる。例えば、基準エンジン８２６は、当該フォン・エッジに関連付けられた確信度スコアに基づいてフォン・エッジに対するコストを変更する基準を定義してもよく、当該変化するコストに基づいて当該クォータを計算する。
【００７５】
他の事例では、基準エンジン８２６は、アカウントの属性を属性エンジン８２２から受信し、当該属性に基づいて属性ベースのクォータを定義する。幾つかの事例では、基準エンジン８２６は、名前、作成時刻、アカウントの年齢、アカウント健康属性（例えば、評判スコア）等を含む属性に基づいて属性ベースのクォータを定義する。例えば、基準エンジン８２６は、第１のユーザに対して第１の値を割り当てて、第１のユーザに関連付けられた所有者アカウントの作成時刻が閾値期間内であることを反映し、第１のユーザに対して第２の値を割り当てて、第１のユーザが閾値スコアより上の評判スコアで良い評判を有することを反映する。第１の値は第２の値より小さい。基準エンジン８２６は、第１の値および第２の値を属性ベースのクォータに結合するためのルールを設定する。例えば、当該属性ベースのクォータは第１のおよび第２の値の和である。他の事例では、基準エンジン８２６は、どの更新を当該所有者アカウントが当該連絡先アカウントに関連する情報に対して行っているかに関する属性に基づいて当該属性ベースのクォータを定義する。例えば、第１のユーザに関連付けられた当該所有者アカウントが、当該正確な連絡先名を取得しようと試みた結果として、電話番号に対応する連絡先名を繰り返し更新する場合、第１のユーザを乱用と分類してもよい。かかる属性は基準エンジン８２６に低いクォータを第１のユーザに割り当てさせてもよい。
【００７６】
幾つかの他の事例では、基準エンジン８２６はまた他の基準を設定する。例えば、当該基準エンジンは、フォン・エッジを第１のユーザに提供するための以前の失敗と第１のユーザからの当該フォン・エッジに対する現在の要求との間の閾値時間を割り当てる。現在の要求を、以前の失敗と現在の要求の間の時間差が当該閾値時間を超えるときにのみ処理することができる。別の例では、基準エンジン８２６は、どれだけ多くの非名前マッチング・エッジがエッジ全体に存在しうるかに関する閾値パーセンテージを割り当てる。当該要求されたエッジが非名前マッチング・エッジであるパーセンテージが当該閾値パーセンテージより下である場合にのみ、要求するユーザはフォン・エッジを取得してもよい。
【００７７】
基準エンジン８２６は、乱用判定エンジン８２６と通信して、コスト、コストベースのクォータ、属性ベースのクォータおよび他の基準を調節することができる。例えば、基準エンジン８２６は名前マッチング・エッジ・コストを１０からゼロに変更することができる。正当なユーザはしたがってコストなしにフォン・エッジを取得することができる。別の例では、基準エンジン８２６は、第１のユーザが乱用であると判定すると一旦乱用判定エンジン８２８が判定すると、当該コストベースのクォータを増大させる。基準エンジン８２６は基準をリアルタイムに設定し調節する。幾つかの事例では、基準エンジン８２６は当該基準を記憶８１０に格納する。
【００７８】
乱用判定エンジン８２８は、第１のユーザからの検索要求に応答して、連絡先アカウントの情報を第１のユーザに提供するかどうかを判定するためのルーチンを含むソフトウェアであることができる。幾つかの事例では、乱用判定エンジン８２８は、第１のユーザからの検索要求に応答して、連絡先アカウントの情報を第１のユーザに提供するかどうかを判定するための後述する機能を提供するためのプロセッサ８０２により実行可能な１組の命令であることができる。他の事例では、乱用判定エンジン８２８は、コンピューティング・デバイス８００のメモリ８０４に格納でき、プロセッサ８０２によりアクセス可能かつ実行可能であることができる。幾つかの事例では、乱用判定エンジン８２８を、プロセッサ８０２およびコンピューティング・デバイス８００の他のコンポーネントとの協調と通信のために適合することができる。
【００７９】
幾つかの事例では、エッジ生成エンジン８２４は、第１のユーザのアドレスブック内の電話番号のリストを受信し、当該リスト内の各電話番号を対応する連絡先アカウントに関連付けることによって、これらの電話番号に対するフォン・エッジを生成する。この時点で、当該フォン・エッジは、エッジ生成エンジン８２４によりバックエンドで生成され、第１のユーザにまだ示されていない。エッジ生成エンジン８２４は、当該フォン・エッジを読むための第１のユーザに対する要求を生成する。当該要求を受信したことに応答して、乱用判定エンジン８２８は、基準エンジン８２６によって定義された少なくとも１つの基準に基づいて、当該フォン・エッジを第１のユーザに提供するかどうかを判定する。このように、乱用判定エンジン８２８は、第１のユーザの読取り時間の間に第１のユーザに返すことができるフォン・エッジの数を制限する。
【００８０】
乱用判定エンジン８２８は、名前マッチング・アルゴリズムを使用して、フォン・エッジを第１のユーザに提供するかどうかを判定する。当該フォン・エッジは、第１のユーザのアドレスブック内の電話番号を第２のユーザのアカウント（例えば、連絡先アカウント）にマップする。当該名前マッチング・アルゴリズムで使用される基準は、名前のマッチに関する基準（例えば、大文字小文字を無視するかどうか、開始文字のマッチがあるかどうか等）、コスト、コストベースのクォータ等を含む。
【００８１】
幾つかの事例では、乱用判定エンジン８２８は、第１のユーザのアドレスブック内に当該電話番号に対応する名前があるかどうかを判定する。名前が当該アドレスブック内にある場合、乱用判定エンジン８２８は、当該名前と第２のユーザのアカウント名の間のマッチのレベルを決定し、フォン・エッジに対するエッジ・コストを計算する。例えば、乱用判定エンジン８２８は、フルネーム・マッチに基づいて、名前マッチング・エッジ・コストを第１のフォン・エッジに対するコスト値ゼロで決定し、部分的な名前マッチに基づいて、部分名前マッチング・エッジ・コストを第２のフォン・エッジに対するコスト値５００で決定する。当該アドレスブック内に名前がない場合、乱用判定エンジン８２８は、フォン・エッジに対する非名前マッチング・エッジ・コストを基準エンジン８２６により割り当てられたコスト値、例えば、１０で決定する。幾つかの事例では、乱用判定エンジン８２８はまた、名前マッチに対する確信度スコアを決定し、当該確信度スコアに基づいてエッジ・コストを計算する。例えば、乱用判定エンジン８２８は、開始文字のマッチに関する基準に基づいて、JeniとJenniferの間の部分的な名前マッチに対する０．９の確信度スコアを決定する。乱用判定エンジン８２８はまた、非開始文字のマッチに関する基準に基づいて、hikとRadhikaの間の部分的な名前マッチに対する０．２の確信度スコアを決定する。「Jeni」と「hik」は第１のユーザのアドレスブック内にある。「Jennifer」と「Radhika」は実際の連絡先アカウント名である。当該確信度スコアに基づいて、乱用判定エンジン８２８は、Jenniferへのフォン・エッジ・マッピングのための５５０個の部分名前エッジ・マッチング・コストを決定し、Radhikaへのフォン・エッジ・マッピングに対する８００個の部分名前エッジ・マッチング・コストを決定する。
【００８２】
名前がマッチする場合、乱用判定エンジン８２８は、対応するフォン・エッジ、このエッジを取得するための要求およびこのエッジを要求した第１のユーザが正当であると判定してもよい。結果として、第１のユーザは、乱用判定エンジン８２８により提供されたフォン・エッジを取得するための名前マッチング・エッジ・コストを支払うことができる。当該名前マッチング・コストはゼロまたは小さな数でありうる。名前が部分的にマッチする場合、乱用判定エンジン８２８は依然として当該フォン・エッジを第１のユーザに提供してもよいが、第１のユーザは、当該フォン・エッジをより高いコスト、例えば、部分マッチング・エッジ・コスト６００で取得する。名前がマッチしない場合、それは必ずしも乱用的なケースではないが、乱用的なケースである可能性が高い。乱用判定エンジン８２８は当該フォン・エッジを第１のユーザに提供するが、第１のユーザは、当該フォン・エッジを最大のコストで、例えば、非マッチング・エッジ・コスト１０００で取得することが可能である。
【００８３】
幾つかの事例では、乱用判定エンジン８２８はまた、コストベースのクォータに依存して、フォン・エッジを第１のユーザに提供するかどうかを判定する。乱用判定エンジン８２８は、或る時間長内の第１のユーザに対するコストベースのクォータを計算する。乱用判定エンジン８２８は次いで、どれだけ多くのフォン・エッジおよびどの種類のフォン・エッジが第１のユーザにより当該時間長内に要求されたかに基づいて、当該時間長内のクォータ利用を計算する。乱用判定エンジン８２８は、基準エンジン８２６で定義された同一の基準に基づいて、コストクォータおよびクォータ利用を計算する。フォン・エッジに対する要求を第１のユーザから受信したことに応答して、乱用判定エンジン８２８は、当該クォータ利用が当該コストベースのクォータを超えたかどうかに基づいて、当該フォン・エッジを第１のユーザに提供するかどうかを判定する。例えば、基準エンジン８２６は、高々１００個の名前マッチング・エッジ、５０個の部分マッチング・エッジおよび２０個の非名前マッチング・エッジを１日あたり第１のユーザに許可できると定義する。乱用判定エンジン８２８は、名前マッチング・エッジ・コスト、部分名前マッチング・エッジ・コスト１０および非名前マッチング・エッジ・コストがそれぞれ１０、５００および１０００であることが与えられると、４６ｋ／ｄａｙコストベースのクォータを計算する。即ち、コストベースのクォータ＝１００×１０＋５０×５００＋２０×１０００＝４６０００である。乱用判定エンジン８２８はまた、第１のユーザに対するクォータ利用を、１日に第１のユーザにより要求された９０個の名前マッチング・エッジ、８０個の部分マッチング・エッジおよび５個の非名前マッチング・エッジに基づいて、例えば、９０×１０＋８０×５００＋５×１０００＝４５９００と計算する。第１のユーザは９０＋８０＋５＝１７５個のフォン・エッジを要求している。第１のユーザがその日において１７６番目の部分マッチング・エッジを要求したとき、乱用判定エンジン８２８は、当該１７６番目のフォン・エッジを第１のユーザに提供しない。なぜならば、当該１７６番目のフォン・エッジを含むクォータ利用は９０×１０＋８１×５００＋５×１０００＝４６４００であり、４６ｋを超えるからである。
【００８４】
幾つかの事例では、乱用判定エンジン８２８は、コストベースのクォータに基づいて、フォン・エッジで注釈付けされたマークを変更するかどうかを判定し、当該マークが変更されているかどうかに基づいて、当該フォン・エッジを第１のユーザに提供するかどうかを判定する。例えば、エッジ生成エンジン８２４は、当該フォン・エッジを生成するときに、全てのフォン・エッジを「偽」マークで注釈付けする。乱用判定エンジン８２８は、どれだけ多くのエッジを「真」としてマークできるかに関してクォータを決定し、「真」マーカを有するフォン・エッジのみを第１のユーザに返す。１例では、基準エンジン８２６は、全ての名前マッチング・エッジをゼロコストで「真」とマークできると定義する。基準エンジン８２６はまた、最大１００個の非マッチング・エッジをコスト１で「真」とマークできると定義する。第１のユーザからの検索要求の際、乱用判定エンジン８２８は、全ての名前マッチング・エッジおよび幾つかの成功する非名前マッチング・エッジを返すことができる。この番号は１００未満である。したがって、第１のユーザは３０を支払って１０００個の名前マッチング・エッジおよび３０個の非名前マッチング・エッジを得ることができるが、第１のユーザは１つの名前マッチング・エッジおよび１０１個の非名前マッチング・エッジを得ることができない。
【００８５】
コストベースのクォータに加えて、乱用判定エンジン８２８はまた、基準エンジン８２６により定義された少なくとも１つの基準に基づいて属性ベースのクォータを決定する。当該少なくとも１つの基準は、第１のユーザに関連付けられた所有者アカウントの作成時刻、第１のユーザの評判スコア、どの更新を当該所有者アカウントが当該連絡先アカウントに関連する情報に対して行っているか等を含む属性に関連する。例えば、乱用判定エンジン８２８は、Aliceの評判スコアがAndrewの評判スコアより高いので、Aliceに、Andrewに割り当てられた属性ベースのクォータより高い属性ベースのクォータを与える。乱用判定エンジン８２８は、当該属性ベースのクォータに基づいて、フォン・エッジを第１のユーザに提供するかどうかを判定する。例えば、（例えば、システム７００に統合された他の乱用検出システムにより検出された幾つかの乱用的な振舞いに起因した）第１のユーザの評判の悪化が、属性ベースのクォータが超過することをもたらすかもしれない。結果として、乱用判定エンジン８２８は、第１のユーザからの検索要求に応答してフォン・エッジを第１のユーザに提供しない。
【００８６】
幾つかの事例では、乱用判定エンジン８２８は、第１のユーザからのフォン・エッジに対する現在の要求の前に、当該フォン・エッジを第１のユーザに提供するのに失敗したかどうかを判定する。当該失敗は、アドレスブック内の名前および実際のソーシャル・ネットワーク・アカウント名をマッチできなかったことまたはクォータ基準を満たせなかったことに起因してもよい。失敗があった場合、乱用判定エンジン８２８は、当該失敗が発生した時刻と現在の要求が受信された時刻の時間差を計算し、当該時間差が閾値時間、例えば、１週間を超過したかどうかを判定する。乱用判定エンジン８２８は、当該時間差が当該閾値時間を超えるときにのみ現在の要求に応答する。したがって、第１のユーザから今日１００個の検索要求を受信したことに応答して、乱用判定エンジン８２８が連絡先アカウント情報を第１のユーザに提供するのに失敗した場合、乱用判定エンジン８２８は、次の数日間における同一の１００個の検索要求を処理する必要はない。乱用判定エンジン８２８はしたがって、リトライ回数を制限することによって効率を得る。他の事例では、乱用判定エンジン８２８はまた、或る期間に第１のユーザから受信された検索要求の数を制限する。
【００８７】
幾つかの事例では、エッジ生成エンジン８２４により生成された自動的な要求に応答して、乱用判定エンジン８２８はコストベースのクォータおよび属性ベースのクォータに基づいて全体クォータを決定し、当該コストベースのクォータ、当該属性ベースのクォータおよび当該全体クォータのうち少なくとも１つに基づいて、フォン・エッジを第１のユーザに提供するかどうかを判定する。他の事例では、（例えば、電話名前を検索ボックスに入力することによって）第１のユーザからの直接要求に応答して、乱用判定エンジン８２８は、当該属性ベースのクォータを使用して、連絡先アカウントの情報を第１のユーザに提供するかどうかを判定する。このシナリオでは、乱用判定エンジン８２８は、エッジ生成エンジン８２４と通信することなく当該直接要求を処理する。フォン・エッジが生成されないので、乱用判定エンジン８２８は、連絡先アカウント情報を第１のユーザに返すかどうかを判定するためにエッジ関連のコストおよびコストベースのクォータを使用しなくてもよい。
【００８８】
乱用判定エンジン８２８は、上述のコスト、コストベースのクォータおよび属性ベースのクォータに基づいて、第１のユーザに対する電話番号を用いて連絡先アカウントを検索するための要求が正当であるかどうかを判定する。例えば、乱用判定エンジン８２８は、名前マッチング・エッジに対する第１の要求が正当であると判定し、第２の要求の前かつ或る期間内に第１のユーザにより要求された非名前マッチング・エッジのパーセンテージが閾値パーセンテージを超えるので、第２の要求が乱用的な要求であると判定する。幾つかの事例では、乱用判定エンジン８２８はまた、連絡先アカウントを要求する第１のユーザが正当なユーザまたは乱用であるかどうかを判定する。例えば、乱用判定エンジン８２８は、或る時間期間内の第１のユーザからの乱用的な要求が閾値を超えた場合に、第１のユーザが乱用であると判定する。
【００８９】
乱用判定エンジン８２８は、要求が正当な要求かどうかまたはユーザが正当なユーザかどうかに基づいて、コスト、コストベースのクォータおよび属性ベースのクォータを調節することができる。正当な要求またはユーザに対して、乱用判定エンジン８２８は、当該コストを減らすか、または、当該ユーザを利するために当該コストまたはクォータを増やすことができる。乱用的な要求またはユーザに対して、乱用判定エンジン８２８は、当該ユーザを罰するために当該コストまたはクォータを低下させることができる。例えば、乱用判定エンジン８２８が、第１のユーザが正当なユーザであり、第１のユーザのアドレスブック内の名前がすべて実際のソーシャル・ネットワークの名前にマッチすると判定した場合、乱用判定エンジン８２８は、第１のユーザに対するコストクォータを３００ｋ／月から６００ｋ／月にアップグレードすることができる。しかし、第１のユーザのアドレスブック内の名前の何れも実際のソーシャル・ネットワーク・アカウント名にマッチしない場合、乱用判定エンジン８２８は、第１のユーザに対するコストクォータを３００ｋ／月から１０ｋ／月に減らし、第１のユーザに対する非マッチエッジ・コストを１０００から５０００に増大させることができる。当該要求を区別することによって、乱用判定エンジン８２８は、正当なユーザが出来るだけ多くの利益を得ることを保証し、同時に乱用が重く罰せられることを保証する。
【００９０】
通知エンジン８３０は、連絡先アカウントの情報が第１のユーザに提供されるかどうかを第１のユーザに通知するためのルーチンを含むソフトウェアであることができる。幾つかの事例では、通知エンジン８３０は、当該連絡先アカウントの情報が第１のユーザに提供されるかどうかを第１のユーザに通知するための後述する機能を提供するためのプロセッサ８０２により実行可能な１組の命令であることができる。他の事例では、通知エンジン８３０は、コンピューティング・デバイス８００のメモリ８０４に格納でき、プロセッサ８０２によりアクセス可能かつ実行可能であることができる。幾つかの事例では、通知エンジン８３０を、プロセッサ８０２およびコンピューティング・デバイス８００の他のコンポーネントとの協調と通信のために適合することができる。
【００９１】
通知エンジン８３０は、第２のユーザに関連付けられた連絡先アカウント情報を第１のユーザに乱用判定エンジン８２８から提供するかどうかの判定を受信し、第１のユーザに当該判定を通知する。ポジティブな判定に対して、当該通知は、第２のユーザのアカウント名と、第２のユーザに関連付けられたユーザ・プロフィールへのリンク、第２のユーザの写真、第２のユーザに接続する第１のユーザに対するリンク等を含む他の情報とを含む。ネガティブな判定に対して、当該通知は、乱用判定エンジン８２８がなぜ第２のユーザの連絡先アカウント情報に対する第１のユーザの要求を拒否したのかに関する説明を含む。例えば、通知エンジン８３０は、第１のユーザがクォータ基準を満たせないので第１のユーザが要求された連絡先アカウント情報を取得できないことを示す通知を送信する。当該通知はまた、他の情報、例えば、第１のユーザがいつ同一の連絡先アカウント情報を検索するのを再度試みることができるかのリマインダを含んでもよい。
【００９２】
幾つかの事例では、当該通知は様々な形式をとることができる。当該通知は、携帯電話上のポップアップウィンドウ、第１のユーザに表示されたウェブ・ページ上に提供されたオーバレイ、電子メッセージ等であることができる。幾つかの事例では、通知エンジン８３０は当該通知を記憶８１０に格納する。
【００９３】
以下の説明では、説明の目的のため、本明細書の徹底的な理解を提供するために多数の具体的な詳細を説明した。しかし、当該技術をこれらの具体的な詳細なしに実践できることは当業者には明らかである。他の事例では、構造およびデバイスは、説明を不明瞭にするのを避けるためにブロック図の形で示してある。例えば、本明細書は、ユーザインタフェースおよび特定のハードウェアを参照して幾つかの事例で説明されている。しかし、当該説明は、データおよびコマンドを受信できる任意の種類のコンピューティング・デバイス、およびサービスを提供する任意の周辺デバイスに適用される。
【００９４】
本明細書における「幾つかのインスタンス」または「１実施形態」という参照は、当該実施形態に関連して説明した特定の特徴、構造、または特性が本説明の少なくとも幾つかのインスタンスに含まれることを意味する。本明細書内の様々な場所における「幾つかのインスタンスにおいて」というフレーズの出現は必ずしも全て同一の実施形態を指すものではない。
【００９５】
詳細な説明の幾つかの部分はコンピュータメモリ内のデータビットに対する動作のアルゴリズムおよび記号的表現の観点から説明されている。これらのアルゴリズム的説明および表現は、当該データ処理分野の当業者が使用する手段を、かれらの成果物を他の当業者に最も効果的に伝達するものである。アルゴリズムは一般に、所望の結果をもたらすと考えられる首尾一貫したステップのシーケンスと考えられる。当該ステップは物理量の物理操作を必要とするものである。通常、必ずしもそうではないが、これらの量は、格納し、転送し、結合し、比較し、または操作できる電気または磁気信号の形態をとる。これらの信号をビット、値、要素、シンボル、文字、項、番号等として参照することが、主に共通的な使用のために、しばしば都合が良いことが分かっている。
【００９６】
しかし、これらのおよび同様な用語のすべてが当該適切な物理量に関連付けられ、都合が良いこれらの量に適用されるラベルであることに留意すべきである。特に断らない限り以下の議論から明らかなように、本明細書の説明にわたって、「処理」または「コンピューティング」または「計算」または「判定」または「表示」等のような用語を用いた議論は、当該コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表されたデータを操作し、当該コンピュータシステムメモリまたはレジスタまたは他のかかる情報記憶、送信またはディスプレイデバイス内の物理量として同様に表された他のデータに変換するコンピュータシステム、または同様な電子コンピューティング・デバイスのアクションおよびプロセスを指すことは理解される。
【００９７】
本明細書が、本明細書の動作を実施するための装置に関してもよい。当該装置は、特に当該必要な目的のために構築されてもよく、または当該コンピュータに格納されたコンピュータプログラムにより選択的に起動または再構成される汎用目的コンピュータを含んでもよい。かかるコンピュータプログラムはコンピュータ可読記憶媒体に格納されてもよく、これにはそれぞれコンピュータシステムバスに接続されたフロッピーディスク、光ディスク、ＣＤ-ＲＯＭ、および磁気ディスク、読取専用メモリ（ＲＯＭ）、ランダム・アクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光カード、不揮発性メモリまたは電子命令を格納するのに適した任意の種類の媒体を有するＵＳＢキーを含むフラッシュメモリを含む任意の種類のディスクがあるがこれらに限られない。
【００９８】
本明細書は、もっぱらハードウェア実施形態、もっぱらソフトウェア実施形態またはハードウェアおよびソフトウェア要素の両方を含む実施形態の形態をとることができる。幾つかの事例では、本明細書がソフトウェアで実装され、当該ソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがこれらに限られない。
【００９９】
さらに、当該説明は、コンピュータまたは任意の命令実行システムによりまたはそれと関連して使用するためのプログラムコードを提供するコンピュータ−使用可能またはコンピュータ−可読媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。この説明のため、コンピュータ−使用可能またはコンピュータ可読媒体は、当該命令実行システム、装置、またはデバイスによりまたはそれらと接続して使用するためのプログラムを含み、格納し、通信し、伝播し、または転送できる任意の装置であることができる。
【０１００】
Ａプログラムコードを格納および／または実行するのに適したデータ処理システムは、システムバスを通じて直接または間接にメモリ要素に接続された少なくとも１つのプロセッサを含む。当該メモリ要素は、当該プログラムコードの実際の実行中に使用されるローカルメモリ、バルク記憶、およびコードを実行中にバルク記憶から抽出しなければならない回数を削減するために少なくとも幾つかのプログラムコードの一時記憶を提供するキャッシュメモリを含むことができる。
【０１０１】
入出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティングデバイス等を含むがこれらに限られない）を、直接にまたは介在するＩ／Ｏコントローラを介して、当該システムに接続することができる。
【０１０２】
ネットワークアダプタを当該システムに接続して、当該データ処理システムが、介在するプライベートまたはパブリックネットワークを通じて他のデータ処理システムまたはリモートプリンタまたはソーシャル・ネットワークデータ・ストアに接続されるようにできる。モデム、ケーブルモデムおよびイーサネット（登録商標）カードは現在利用可能なタイプのネットワークアダプタのごく幾つかにすぎない。
【０１０３】
最後に、本明細書で提供したアルゴリズムおよびディスプレイは任意の特定のコンピュータまたは他の装置に本来的には関連しない。様々な汎用目的システムを本明細書の教示事項に従うプログラムで使用してもよく、または当該必要な方法ステップを実施するためのより特化した装置を構築するのに都合が良いことを証明できる。様々なこれらのシステムに対する必要な構造は以下の説明から明らかになろう。さらに、本明細書はどの特定のプログラミング言語を参照して説明されていない。様々なプログラミング言語を使用して本明細書の教示事項を本明細書で説明したように実装してもよいことは理解されよう。
【０１０４】
本明細書の実施形態の以上の説明を例示および説明の目的のために提示した。包括的であることは意図しておらず、本明細書を開示した厳密な形態に限定する意図もない。多数の修正および変形が上述の教示事項に照らして可能である。本開示の範囲はこの詳細な説明により限定されず、本願の特許請求の範囲により限定されることが意図されている。当業者にわかるように、本明細書を、その趣旨または本質的な特性から逸脱せずに他の特定の形態で具現化してもよい。同様に、エンジン、ルーチン、特徴、属性、方法および他の態様の特定の名前付けおよび分割は必須でも重要でもなく、本明細書またはその特徴を実装する機構が異なる名前、分割および／または形式を有してもよい。さらに、当業者に明らかなように、本開示のエンジン、ルーチン、特徴、属性、方法および他の態様をソフトウェア、ハードウェア、ファームウェアまたはその３つの任意の組合せとして実装することができる。また、本明細書のコンポーネントが、その１例はエンジンであるが、ソフトウェアとして実装されるときは常に、当該コンポーネントを、スタンドアロンプログラムとして、大規模プログラムの一部として、複数の別個のプログラムとして、静的リンクにまたは動的リンクライブラリとして、カーネルロード可能エンジンとして、デバイスドライバとして、および／またはコンピュータプログラミングの業界で当業者に対して既知または将来知られる全ての任意の他の方法で実装することができる。さらに、本開示は決して、任意の特定のプログラミング言語における実装、または任意の特定のオペレーティング・システムまたは環境に対する実装に限定されない。したがって、本開示は本明細書の範囲の例示的であって限定的ではなく、それは添付の特許請求の範囲で説明される。
【符号の説明】
【０１０５】
７０１  サーバ
７０５  ネットワーク
７０６ａ  クライアント・デバイス
７０６ｎ  クライアント・デバイス
７２０ａ  アカウント検索アプリケーション
７２０ｂ  アカウント検索アプリケーション
７２２  ソーシャル・ネットワーク・アプリケーション
７３０  電子メール・サーバ
７４０  サードパーティ・サーバ
８０２  プロセッサ
８０４  メモリ
８０８  通信ユニット
８１０  記憶部
８２０  コントローラ
８２２  属性エンジン
８２４  エッジ生成エンジン
８２６  基準エンジン
８２８  乱用判定エンジン
８３０  通知エンジン
【図１】
0006363806.tif 000002
【図２Ａ】
0006363806.tif 000003
【図２Ｂ】
0006363806.tif 000004
【図３】
0006363806.tif 000005
【図４】
0006363806.tif 000006
【図５】
0006363806.tif 000007
【図６】
0006363806.tif 000008
【図７】
0006363806.tif 000009
【図８】
0006363806.tif 000010