本明細書において説明される1つまたは複数の実施形態は、メッセージ要素を利用する電子通信システムを含む。例えば、本明細書において説明される1つまたは複数の実施形態の電子通信システムは、通信スレッド内の参加者によって送信された2つ以上の対応するメッセージ要素を識別する。次いで、電子通信システムは、対応するメッセージ要素を拡張メッセージ要素(augmented message element)に置換し、または変形する。
1つまたは複数の実施形態において、電子通信システムは、1つまたは複数のメッセージ要素を求めて通信スレッドを検索することができる。電子通信システムが、1人の通信参加者から送信された第1のメッセージ要素を識別した場合、電子通信システムは、異なる通信参加者から送信された第2の対応するメッセージ要素を求めて通信スレッドを検索することができる。電子通信システムは、通信スレッド内の対応するメッセージ要素を拡張メッセージ要素に置換することができる。少なくとも1つの実施形態において、拡張メッセージ要素は、電子通信システムが置換した、識別された対応するメッセージ要素間の対話を表示することができる。
電子通信システムは、複数対のメッセージ要素または複数のメッセージ要素を関連付けて、対応するメッセージ要素を作成することができる。特に、電子通信システムは、関連するメッセージ要素を関連付けることができる。例えば、電子通信システムは、2つのサムズ・アップ(thumbs-up)ステッカー(sticker)を関連付けることができる。次いで、電子通信システムは、1つまたは複数の付加的なまたは代替的なメッセージ要素を、対応するメッセージ要素の各セットに関連付けることができる。例えば、前述の例を参照すると、電子メッセージング・システムは、フィストバンプ・アニメーション(fist bump animation)を2つのサムズ・アップ・ステッカーに関連付けることができる。そのため、第2のユーザが、第1のユーザによって送信されたサムズ・アップ・ステッカーに応答してサムズ・アップ・ステッカーを送信する場合、電子通信システムは、2つのサムズ・アップ・ステッカーをフィストバンプ・アニメーションに置換することができる。したがって、電子通信システムは、ユーザが表現および通信の別の層を電子通信の置換に対して加えることを可能にし得る。
電子通信システムは、1つまたは複数のトリガに応答して、通信スレッド内の対応するメッセージ要素を置換することができる。例えば、1つの実施形態において、電子通信システムが、対応するメッセージ要素は閾値期間内に送信されたと判定した場合、電子通信システムは、対応するメッセージ要素を拡張メッセージ要素に置換することができる。代替的に、電子通信システムは、対応するメッセージ要素が連続的に送信された、または閾値期間内に連続的に送信されたと判定すると、対応するメッセージ要素を拡張メッセージ要素に置換することができる。またさらなる実施形態において、ユーザは、対応するメッセージ要素の置換をトリガする入力を提供することができる。
本明細書において、電子メッセージ要素(または、単に「メッセージ要素」)とは、ユーザ・メッセージ、気持ち、トーン、気分、または考えを表現する電子通信の任意の部分を指す。1つまたは複数の実施形態において、メッセージ要素は、従来のテキストから構成されない。例えば、メッセージ要素は、1つまたは複数のステッカー、シンボル、アイコン、顔文字、画像、イラストレーション、アニメーション、音声、ビデオ・クリップ、オーディオ・クリップ、電子通信を介して送信され得る他のコンテンツ、または、これらの組み合わせを含むことができる。例えば、メッセージ要素は、シンボルを含んでもよい。しかしながら、別の例では、単一のメッセージ要素は、アイコン、アニメーション、または音声を含んでもよい。また、1つまたは複数の実施形態において、メッセージ要素は、従来のテキストから構成されないが、電子通信は、従来の書記言語(written language)を含むことができる(例えば、インスタント・メッセージは、
というメッセージを含んでもよい)。代替的に、電子通信は、メッセージ要素のみを含んでもよい(例えば、インスタント・メッセージは
というメッセージを含んでもよい)。複数のメッセージ要素、および異なるタイプのメッセージ要素は、単一の電子通信に含められ得る。またさらに、1つまたは複数の実施形態において、メッセージ要素は、従来のテキストから構成されてもよい。
メッセージ要素は、システム生成されたメッセージ要素と、ユーザ生成されたメッセージ要素との両方を含むことができる。例として、ユーザは、様々なメッセージ要素を含むメッセージ要素ファイル、(例えば、「ステッカー・パック(sticker packs)」)を、クライアント・コンピューティング・デバイス(例えば、携帯電話、タブレット、ラップトップ・コンピュータ等)へ定期的にダウンロードすることができる。例えば、1つの実施形態において、メッセージ要素ファイルは、多数のメッセージ要素(例えば、イラストレーション、画像、および/またはアニメーション)を含むことができる。代替的に、ユーザが、メッセージ要素、例えば、画像、オーディオまたはビデオファイル、イラストレーション、テキスト等などを作成してもよい。
各メッセージ要素または各タイプのメッセージ要素は、識別子を含むことができる。電子通信システムは、識別子の対または識別子のグループに、1つまたは複数の拡張メッセージ要素または代替メッセージ要素の識別子を関連付けることができる。この関連付けは、電子通信システムが、対応するメッセージ要素を拡張メッセージ要素または代替メッセージ要素に置換することを可能にし得る。
通信スレッドにおいて2つの関連付けられたメッセージ要素を識別することに応答して、電子通信システムは、第1および第2のメッセージ要素に関連付けられたメタデータを利用して、第3のメッセージ要素を識別することができる。その結果、電子通信システムは、通信スレッドにおける第1および第2の関連付けられたメッセージ要素を、識別された第3のメッセージ要素に置換することができる。1つまたは複数の実施形態において、第3のメッセージ要素は、第1のメッセージ要素のイラストレーションと第2のメッセージ要素のイラストレーションとの間の対話を示すアニメーションである。
1つまたは複数の実施形態において、およびユーザの観点からは、電子通信システムは、第1のユーザからのメッセージ要素と第2のユーザからのメッセージ要素とが互いに対話することを示す、シームレスな(seem-less)表示を提示する。メッセージ要素間の、この付加された対話は、ユーザが画像を単純に送信したり、送信されたりすることから過去に構成されていたものに対して、洗練された堅固な表現の層を加える。電子通信システムは、電子通信において使用するための1つまたは複数のメッセージ要素ファイルの開発およびユーザへの配信を促進することができる。
本明細書において、「電子通信」とは、ユーザから1人または複数の共同ユーザへ送信される電子メッセージを指す。「ソーシャル・ネットワーキング・システム投稿」とは、1人のユーザから、ソーシャル・ネットワーキング・システムを介してそのユーザと関連付けられた1人または複数の共同ユーザへ送信される電子通信を指す。1つの実施形態において、ソーシャル・ネットワーキング・システム投稿は、ソーシャル・ネットワーキング・システムが、ユーザのすべての友達に関連付けられたニュースフィード(すなわち「ウォール(wall)」)へ投稿する、ユーザからの電子通信である。付加的に、または代替的に、ソーシャル・ネットワーキング・システム投稿は、ソーシャル・ネットワーキング・システムが、ソーシャル・ネットワーキング・システム・ユーザの特定グループまたはコミュニティに関連付けられたニュースフィードに加える、ユーザからの電子通信であってもよい。
1つまたは複数の実施形態において、「電子メッセージ」とは、送信者と受信者との間のメッセージを指す。上記で説明したように、ニュースフィードへ電子メッセージを投稿するのではなく、ソーシャル・ネットワーキング・システムは、受信者に関連付けられたプライベートな受信箱に電子メッセージを配信することができる。付加的に、または代替的に、電子メッセージは、送信者と受信者のグループとの間のみのプライベートなメッセージであってもよい。その場合、ソーシャル・ネットワーキング・システムは、プライベートなメッセージのコピーを、受信者のグループの各メンバに関連付けられた受信箱へ配信することができる。電子メッセージの他の例は、テキスト・メッセージ、インスタント・メッセージ、または任意の他の電子メッセージを含む。
1つまたは複数の実施形態において、電子通信は、構造化データに関連付けられる。本明細書において、「構造化データ(structured data)」とは、特定のグループ、フィールド、もしくはカテゴリへ構造化される任意のデータ、および/または電子メッセージの特定の態様に関連付けられる任意のデータを含み得る。構造化データは、ソーシャル・ネットワーキング・システム投稿に関連するノードおよびエッジ情報、電子メッセージに関連する情報、ソーシャル・ネットワーキング・システム投稿または電子メッセージの著者に関連する情報、およびソーシャル・ネットワーキング・システム投稿またはソーシャル・ネットワーキング・システム内の電子メッセージに関連する対話情報に関連付けられたメタデータを含むことができる。例示すると、ソーシャル・ネットワーキング・システム投稿についての構造化データは、ソーシャル・ネットワーキング・システム投稿のテキスト、ソーシャル・ネットワーキング・システム投稿の著者に関連する情報、他のソーシャル・ネットワーキング・システム・ユーザによってソーシャル・ネットワーキング・システム投稿に加えられたコメントを含むソーシャル・ネットワーキング・システム投稿に関連する対話データ、ソーシャル・ネットワーキング・システム投稿に含まれる画像(例えば、デジタル写真)、ビデオ、オーディオ等を含んでもよい。
電子メッセージに関連付けられたメタデータは、電子通信を分類し、その電子通信のソースを示す情報を含むことができる。電子通信システムは、メタデータに含まれる分類情報を使用して、特定の電子通信を体系化すること、および/または取り出すことができる。同様に、電子通信システムは、メタデータに含まれるソース情報を使用して、特定の電子通信を提供した(submit)ソーシャル・ネットワーキング・システム・ユーザに関連する情報を識別することができる。
1つまたは複数の実施形態において、電子通信システムは、ユーザ間の電子メッセージを通信スレッドへ体系化することができる。本明細書において、「通信スレッド(communication thread)」とは、2人のユーザ間で/3人以上のユーザ間で送信したり、送信されたりした電子通信(すなわち、電子メッセージ)のグループである。1つまたは複数の実施形態において、ユーザは、共同ユーザと複数の通信スレッドを有してもよい。したがって、電子通信システムは、各通信スレッドに含まれる共同ユーザに応じて、ユーザの通信スレッドを体系化することができる。
図1は、電子通信システム100(または、単に「システム100」)の例示的な実施形態を示す概略図を示す。図1に示されるように、システム100は、本明細書において説明される方法および特徴を実行するための様々な構成要素を含み得る。例えば、図1に示されるように、システム100は、1つまたは複数のサーバ・デバイス101と、ホスト・システム102と、電子通信マネージャ104と、クライアント・コンピューティング・デバイス106aおよび106bとを含み得るが、これらに限定されない。電子通信マネージャ104は、通信マネージャ122と、メッセージ要素ディレクタ124と、ユーザ・データ128および通信データ130を含むデータ・ストレージ126とを含むことができるが、これら限定されない。クライアント・コンピューティング・デバイス108aおよび108bは、ディスプレイ・マネージャ110aおよび110bと、ユーザ入力検出器112aおよび112bと、メッセージ要素マネージャ114aおよび114bと、ユーザ・データ118aおよび118bならびにメッセージ要素データ120aおよび120bを含むアプリケーション・データ・ストレージ116aおよび116bとを含むメッセージング・アプリケーション108aおよび108bを含むことができる。
ホスト・システム102、電子通信マネージャ104の構成要素122〜126の各々、およびメッセージング・アプリケーション108a、108bの構成要素110a、110bから116a、116bの各々は、本明細書において説明される方法をシステム100に実行させる命令を実行する少なくとも1つのプロセッサを含む、コンピューティング・デバイスを使用して実装され得る。いくつかの実施形態において、構成要素102〜126は、単一のサーバ・デバイス101によって、または複数のサーバ・デバイス101にわたって、実装され得る。付加的に、または代替的に、1つまたは複数のサーバ・デバイスと1つまたは複数のクライアント・デバイスとの組み合わせが、構成要素102〜126を実装してもよい。さらに、1つの実施形態において、構成要素102〜126は、一定の機能を実行するための専用処理デバイスなどのハードウェアを備えることができる。付加的に、または代替的に、構成要素102〜126は、コンピュータ実行可能な命令とハードウェアとの組み合わせを備えることができる。
1つまたは複数の実施形態において、ホスト・システムは、ユーザアカウントまたはクライアント・コンピューティング・デバイス106a、106b間で電子メッセージのやり取りを可能にするメッセージング・ホストを備えることができる。付加的に、または代替的に、ホスト・システム102は、メッセージングを可能にするソーシャル・ネットワーキング・システムを備えることができる。そのような場合、ホスト・システム102は、以下でより詳細に説明されるようなソーシャルグラフ132を含むことができる。
1つまたは複数の実施形態において、メッセージング・アプリケーション108a、108bは、クライアント・コンピューティング・デバイス106a、106b上に実装されるネイティブ・アプリケーションであり得る。例えば、メッセージング・アプリケーション108a、108bは、スマートフォンまたはタブレットなどのモバイル装置上にインストールされ、実行されるモバイル・アプリケーションであってもよい。代替的に、メッセージング・アプリケーション108a、108bは、デスクトップ・アプリケーション、ウィジェット、または他の形態のネイティブ・コンピュータ・プログラムであってもよい。代替的に、メッセージング・アプリケーション108a、108bは、クライアント・コンピューティング・デバイス106a、106bによってアクセスされる遠隔アプリケーションであってもよい。例えば、メッセージング・アプリケーション108a、108bは、クライアント・コンピューティング・デバイス106a、106bのウェブ・ブラウザ内で実行されるウェブ・アプリケーションであってもよい。
上述したように、および図1に示されるように、メッセージング・アプリケーション108a、108bは、ディスプレイ・マネージャ110a、110bを含むことができる。ディスプレイ・マネージャ110a、110bは、ユーザが電子メッセージを構成したり、見たり、提供したりすることを可能にするグラフィカル・ユーザ・インターフェース(または、単に「ユーザ・インターフェース」)を提供し、管理し、および/または制御することができる。例えば、ディスプレイ・マネージャ110a、110bは、電子メッセージの1つまたは複数の通信スレッドの表示を促進するユーザ・インターフェースを提供することができる。同様に、1つまたは複数の実施形態において、ディスプレイ・マネージャ110a、110bは、ソーシャルネットワーク・システム・ユーザのニュースフィードまたはウォールの表示を促進するユーザ・インターフェースを提供することができる。
より詳細には、ディスプレイ・マネージャ110a、110bは、(例えば、クライアント・コンピューティング・デバイス106a、106bに関連付けられたディスプレイ・デバイスにより)ユーザ・インターフェースの表示を促進する(facilitate)ことができる。例えば、ディスプレイ・マネージャ110a、110bは、ユーザが電子メッセージを構成し、送信し、受信することを可能にする、複数のグラフィカル構成要素、オブジェクト、および/または要素から成るユーザ・インターフェースを提供してもよい。より詳細には、ディスプレイ・マネージャ110a、110bは、クライアント・コンピューティング・デバイス106a、106bに、ユーザが電子メッセージを見ることを可能にするグラフィカル構成要素、オブジェクト、および/または要素のグループを表示するように指示し得る。
また、ディスプレイ・マネージャ110a、110bは、クライアント・コンピューティング・デバイス106a、106bに、電子メッセージを構成し、送信し、および/または提供するためのユーザ入力を促進する、1つまたは複数のグラフィカル・オブジェクト、制御部、または要素を表示するように指示し得る。例示すると、ディスプレイ・マネージャ110a、110bは、ユーザがメッセージング・アプリケーション108a、108bに対してユーザ入力を提供することを可能にするユーザ・インターフェースを提供し得る。例えば、ディスプレイ・マネージャ110a、110bは、ユーザが1つまたは複数のタイプのコンテンツを電子メッセージに入力することを可能にする、1つまたは複数のユーザ・インターフェースを提供することができる。本明細書において、「コンテンツ」とは、電子メッセージの一部として含まれる任意のデータまたは情報を指す。例えば、「コンテンツ」という用語は、本明細書において、一般に、テキスト、メッセージ要素、画像、デジタル・メディア、ファイル、ロケーション情報、または電子メッセージの一部として含まれ得る任意の他のデータを説明するために使用されるであろう。
ディスプレイ・マネージャ110a、110bは、電子メッセージに含まれるテキストまたは他のデータの入力を促進することもできる。例えば、ディスプレイ・マネージャ110a、110bは、タッチ・スクリーン・キーボードを含むユーザ・インターフェースを提供することができる。ユーザは、電子メッセージの一部としてテキストを入力するために1つまたは複数のタッチ・ジェスチャを使用して、タッチ・スクリーン・キーボードと対話することができる。例えば、ユーザは、タッチ・スクリーン・キーボードを使用して、電子メッセージのテキストを入力することができる。テキストに加えて、タッチ・スクリーン・キーボードを含むユーザ・インターフェースは、様々な他の文字、ステッカー、シンボル、アイコン、顔文字、または他の情報の入力を促進することができる。
さらに、ディスプレイ・マネージャ110a、110bは、2つ以上のグラフィカル・ユーザ・インターフェースを提供し、これらの間で遷移することができる。例えば、1つの実施形態において、ディスプレイ・マネージャ110a、110bは、ソーシャル・ネットワーキング・システムを介してユーザに関連付けられた共同ユーザからの1つまたは複数のソーシャル・ネットワーキング・システム投稿を含むニュースフィードを、ソーシャル・ネットワーキング・システム・ユーザに対して提供することができる。後に、ユーザまたは電子通信マネージャ104からの検出された入力に応答して、ディスプレイ・マネージャ110a、110bは、ユーザを含む様々な通信スレッドのリストを含む第2のグラフィカル・ユーザ・インターフェースに遷移することができる。
図1にさらに示されるように、メッセージング・アプリケーション108a、108bは、ユーザ入力検出器112a、112bを含むことができる。1つまたは複数の実施形態において、ユーザ入力検出器112a、112bは、任意の適切な手法で、ユーザ入力を検出し、受信し、および/または促進することができる。いくつかの例において、ユーザ入力検出器112a、112bは、ユーザ・インターフェースに関する1つまたは複数のユーザ対話を検出することができる。本明細書において言及されるように、「ユーザ対話」とは、1つまたは複数の入力デバイスによってユーザから受け取られる、単一の対話、または対話の組み合わせを意味する。
例えば、ユーザ入力検出器112a、112bは、キーボード、マウス、タッチ・パッド、タッチスクリーン、および/または任意の他の入力デバイスからのユーザ対話を検出することができる。クライアント・コンピューティング・デバイス106a、106bが、タッチスクリーンを含む場合には、ユーザ入力検出器112a、112bは、ユーザ対話を形成するユーザから、1つまたは複数のタッチ・ジェスチャ(例えば、スワイプ・ジェスチャ、タップ・ジェスチャ、ピンチ(pinch)・ジェスチャ、またはリバース・ピンチ・ジェスチャ)を検出することができる。いくつかの例において、ユーザは、ユーザ・インターフェースの1つまたは複数のグラフィカル・オブジェクトまたはグラフィカル要素に関連するタッチ・ジェスチャ、および/または、これらに向けられたタッチ・ジェスチャを提供することができる。
ユーザ入力検出器112a、112bは、付加的に、または代替的に、ユーザ対話を表すデータを受信してもよい。例えば、ユーザ入力検出器112a、112bは、ユーザからの1つもしくは複数のユーザ設定可能なパラメータ、ユーザからの1つもしくは複数のユーザ・コマンド、および/または任意の他の適切なユーザ入力を受信してもよい。ユーザ入力検出器112a、112bは、ホスト・システム102の1つもしくは複数の構成要素から、または1つもしくは複数の遠隔ロケーションから、入力データを受信し得る。
メッセージング・アプリケーション108a、108bは、ユーザ入力検出器112a、112bがユーザ入力を検出することおよび/または他のデータを受信することに応答して、1つまたは複数の機能を実行することができる。一般に、ユーザは、ユーザ入力検出器112a、112bが検出することができる1つまたは複数の入力を提供することによって、メッセージング・アプリケーション108a、108bを制御し、メッセージング・アプリケーション108a、108b内でナビゲートし、メッセージング・アプリケーション108a、108bをその他の方法で使用することができる。例えば、ユーザ入力検出器112a、112bがユーザ入力を検出することに応答して、メッセージング・アプリケーション108a、108bの1つまたは複数の構成要素は、ユーザが電子メッセージの受信者を選択すること、電子メッセージを構成すること、電子メッセージに含めるべきコンテンツを選択すること、および/または電子メッセージを受信者へ送信することを可能にする。付加的に、ユーザ入力検出器112a、112bがユーザ入力を検出することに応答して、メッセージング・アプリケーション108a、108bの1つまたは複数の構成要素は、ユーザが1つまたは複数のユーザ・インターフェースを通じてナビゲートして、受信された電子メッセージ、ソーシャル・ネットワーキング・システム投稿等を再検討することを可能にする。
図1にさらに示されるように、メッセージング・アプリケーション108a、108bは、メッセージ要素マネージャ114a、114bを含むことができる。1つまたは複数の実施形態において、メッセージ要素マネージャ114a、114bは、通信スレッドにおいてメッセージ要素を識別することができる。例えば、上記で説明したように、通信スレッドは、2人以上のユーザ間で送信したり、送信されたりした複数の電子メッセージおよびメッセージ要素を含むことができる。例示すると、第1のユーザは、サムズ・アップを特徴とするステッカーを第2のユーザへ送信してもよく、その結果、第1のユーザおよび第2のユーザは、第1のユーザと第2のユーザとの間の通信スレッドの一部として、そのステッカーを見ることができる。次いで、第2のユーザは、別のサムズ・アップ・ステッカーを第1のユーザへ送信してもよい。その時点で、メッセージ要素マネージャ114a、114bは、第1のユーザおよび第2のユーザに関連付けられた通信スレッドにおいて両方のサムズ・アップ・ステッカーを識別することができる。
さらに、メッセージ要素マネージャ114a、114bは、識別されたメッセージ要素に関連付けられたメタデータを分析することができる。例えば、上述したように、メッセージ要素は、メッセージ要素が分類され得る情報を含むメタデータに関連付けられ得る。この情報は、メッセージ要素に関連付けられたカテゴリ、ならびにメッセージ要素に関連付けられた説明および一意の識別子を含むことができる。メタデータは、他の対応するメッセージ要素を識別する情報、および通信スレッドに含めるためのメッセージ要素を提供したユーザに関連する情報も含むことができる。付加的に、メッセージ要素に関連付けられたメタデータは、メッセージ要素が通信スレッドへ提供された日時を含むことができる。
メッセージ要素に関連付けられたメタデータにおいて見出された情報、および通信スレッド内の他の情報に基づいて、メッセージ要素マネージャ114a、114bは、識別されたメッセージ要素が置換されるべきことを示すトリガが存在するか、または真であるかを判定することができる。上記で説明したように、メッセージ要素マネージャ114a、114bが、第1のメッセージ要素および第2のメッセージ要素は閾値時間内に通信スレッドに対して送信され、または加えられたと判定した場合、メッセージ要素マネージャ114a、114bは、第1および第2のメッセージ要素を第3のメッセージ要素に置換することができる。1つまたは複数の実施形態において、ユーザは、閾値時間を特定することができる。代替的に、メッセージ要素マネージャ114a、114bは、デフォルト時間(例えば、30秒等)を閾値時間として使用してもよい。メッセージ要素マネージャ114a、114bは、第1のメッセージ要素および第2のメッセージ要素が閾値時間内に提供されたかどうかの判定を、両方のメッセージ要素が提供された日時に基づいて行うことができる。
メッセージ要素マネージャ114a、114bは、テキストベースのメッセージのコンテンツに基づいて、他のタイプのトリガを識別することができる。例えば、メッセージ要素マネージャ114a、114bは、2つ以上のテキストベースのメッセージ間にトリガが存在するかどうかを判定するために、自然言語処理を利用することができる。例示すると、メッセージ要素マネージャ114a、114bは、「例の新しい店へランチをしに行きますか?」などの第1のユーザからのメッセージと、「はい!1番通りの例の店ですね!」を含む第2のユーザからのメッセージとの間に適当なトリガが存在すると判定することができる。その場合に、メッセージ要素マネージャ114a、114bは、メッセージ・スレッドに含まれる地図表示を含む対話を生成することができる。
第1および第2のメッセージ要素が閾値時間内に提供されたかどうかの判定に応答して、メッセージ要素マネージャ114a、114bは、第3のメッセージ要素を識別することができる。例えば、上記で説明したように、ユーザは、第1のメッセージ要素と第2のメッセージ要素とを含むメッセージ要素ファイルを、クライアント・コンピューティング・デバイス106a、106bへダウンロードしてもよい。メッセージ要素ファイルは、各メッセージ要素に関連付けられた識別子と共にメッセージ要素の集合を含むことができる。1つまたは複数の実施形態において、メッセージ要素ファイルは、対応するメッセージ要素がグループにまとめられるように、メッセージ要素ファイル内のメッセージ要素のカテゴリ、説明、または一意の識別子にさえ基づいて体系化され得る。付加的な実施形態または代替的な実施形態において、メッセージ要素マネージャ114a、114bは、通信スレッドにおいて通信するユーザ間の関係係数が、(例えば、それらのユーザに関連付けられたソーシャル・ネットワーキング・システム・アクティビティ・データに基づいた)所定の閾値を超える場合にのみ、第3のメッセージ要素を識別するように制限されてもよい。
したがって、1つまたは複数の実施形態において、および第1および第2のメッセージ要素に対応する第3のメッセージ要素を識別するために、メッセージ要素マネージャ114a、114bは、第1および第2のメッセージ要素に関連付けられたメタデータを利用することができる。例えば、1つの実施形態において、メッセージ要素マネージャ114a、114bは、第1および第2のメッセージ要素に関連付けられた識別子(例えば、識別番号、キーワード、タイトル等)に基づいて、第3のメッセージ要素を識別することができる。別の実施形態において、メッセージ要素マネージャ114a、114bは、第1および第2のメッセージ要素に関連付けられた説明に基づいて、第3のメッセージ要素を識別してもよい。
その結果として、1つまたは複数の実施形態において、メッセージ要素マネージャ114a、114bは、1つまたは複数のメッセージ要素ファイルを管理することもできるということになる。例えば、ユーザが、メッセージ要素ファイルをクライアント・コンピューティング・デバイス106a、106b上にまずダウンロードし、インストールする場合、メッセージ要素マネージャ114a、114bは、メッセージ要素ファイルを記憶すること、および、メッセージ要素ファイル内に含まれているメッセージ要素を分類することができる。少なくとも1つの実施形態において、メッセージ要素マネージャ114a、114bは、電子通信マネージャ104にコンタクトして、1つまたは複数のメッセージ要素ファイルに対する更新情報を定期的にチェックすることもできる。
メッセージ要素ファイルは、様々な構造のうちの1つを有することができる。例えば、メッセージ要素ファイルは、ルックアップ・テーブルとしてフォーマットされてもよく、この場合には、メッセージ要素およびそれらの関連付けられたメタデータは、行と列との交差部分において記憶される。その場合、メッセージ要素は、一意の識別子とキーワードとに基づいて記憶され得る。代替的に、メッセージ要素ファイルは、リンクリスト、ハッシュ表として、またはメッセージ要素を記憶するのに適切な任意の他のタイプの記憶構造としてフォーマットされてもよい。
1つまたは複数の実施形態において、クライアント・コンピューティング・デバイス106a、106bのユーザは、メッセージ要素ファイルからではないメッセージ要素を利用し得る。例えば、ユーザは、クライアント・コンピューティング・デバイス106a上に記憶されたデジタル写真を、クライアント・コンピューティング・デバイス106bのユーザへ送信してもよい。その場合に、メッセージ要素マネージャ114a、114bは、両方のユーザ間の通信スレッドに対してデジタル写真メッセージ要素を加えることができる。クライアント・コンピューティング・デバイス106bのユーザが、別のデジタル写真をクライアント・コンピューティング・デバイス106aのユーザへ送信することに応答して、メッセージ要素マネージャ114a、114bは、両方のデジタル写真メッセージ要素を識別し、両方のデジタル写真メッセージ要素が閾値時間内に送信されたと判定することができる。
その時点で、1つまたは複数の実施形態において、メッセージ要素マネージャ114a、114bは、メッセージ要素ファイルからの第3のメッセージ要素を識別するのではなく、第1および第2のメッセージ要素に関連付けられたタイプに基づいてテンプレートを識別することができる。メッセージ要素は、例えば、デジタル写真ファイル、デジタル・ビデオ・ファイル、デジタル・オーディオ・ファイル、クリップ・アート・ファイル、または画像ファイルなどのタイプに関連付けられ得るが、これらに限定されない。例えば、メッセージ要素マネージャ114a、114bによって識別されたメッセージ要素のタイプが、デジタル写真ファイルである場合、メッセージ要素マネージャ114a、114bは、デジタル写真ファイルに関連付けられたテンプレートを識別することができる。
メッセージ要素マネージャ114a、114bが、適当なテンプレートを識別すると、メッセージ要素マネージャ114a、114bは、そのテンプレートと、通信スレッド内の識別された第1および第2のメッセージ要素とに基づいて、第3のメッセージ要素を生成することができる。例えば、第1および第2のメッセージ要素が、デジタル写真ファイルのタイプを有する実施形態において、メッセージ要素マネージャ114a、114bは、2枚のデジタル写真ファイル用のレイアウトであるテンプレートを識別することができる。したがって、第3のメッセージ要素を生成するために、メッセージ要素マネージャ114a、114bは、第1および第2のメッセージ要素を識別されたテンプレート内に配置して、コラージュ(collage)またはスライドショー結果を作成することができる。付加的な実施形態または代替的な実施形態において、メッセージ要素マネージャ114a、114bは、識別されたメッセージ要素がすべて閾値時間内に提供されている限り、通信スレッド内の3つ以上の識別されたメッセージ要素に基づいて、第3のメッセージ要素を生成することができる。さらに、他の代替的な実施形態において、メッセージ要素マネージャ114a、114bは、テンプレートの使用によってではなく、デジタル・ビデオ・ファイルまたはデジタル・オーディオ・ファイルを層状にすることによって、第3のメッセージ要素を生成することができる。
メッセージ要素マネージャ114a、114bが、第1および第2のメッセージ要素に関連付けられたメタデータに基づいて第3のメッセージ要素を識別し、または生成した後に、メッセージ要素マネージャ114a、114bは、通信スレッドの表示を変化させることができる。例えば、上記で説明したように、電子通信システム100は、通信スレッド内の第1および第2のメッセージ要素を第3のメッセージ要素に置換することができる。1つまたは複数の実施形態において、第1および第2のメッセージ要素を第3のメッセージ要素に置換するために、メッセージ要素マネージャ114a、114bは、第1および第2のメッセージ要素なしの通信スレッドを再レンダリングすることができる。例えば、第1および第2のメッセージ要素なしの通信スレッドを再レンダリングすることは、第1および第2のメッセージ要素を含む、通信スレッド内のセルを除去し、または隠すことを含み得る。
第1および第2のメッセージ要素の除去に続いて、メッセージ要素マネージャ114a、114bは、第3のメッセージ要素を通信スレッドに対して加えることができる。1つまたは複数の実施形態において、第3のメッセージ要素を通信スレッドに対して加えるために、メッセージ要素マネージャ114a、114bは、第3のメッセージ要素を含む新しいセルを備えた通信スレッドをレンダリングすることができる。少なくとも1つの実施形態において、メッセージ要素マネージャ114a、114bは、第3のメッセージ要素が通信スレッド内で中心に配置されて見えるように、新しいセル内で第3のメッセージ要素を中心に配置することができる。
上記で言及したように、いくつかの実施形態において、第3のメッセージ要素は、第1のメッセージ要素と第2のメッセージ要素との間の対話のアニメーションである。例えば、第1のメッセージ要素が「サムズ・アップ」ステッカー(例えば、サムズ・アップのイラストレーション)であり、第2のメッセージ要素も「サムズ・アップ」ステッカーである場合、第3のメッセージ要素は、通信スレッドの中心において拳を形成し、「フィスト・バンプする」2つのイラストレーションから成るアニメーションであってもよい。少なくとも1つの実施形態において、第3のメッセージ要素によって表示されたアニメーションが完了すると、メッセージ要素マネージャ114a、114bは、通信スレッドが変わっていないように見え、メッセージ要素が単に「生き返った」ように見えるように、第3のメッセージ要素を第1および第2のメッセージ要素に置換することができる。
1つまたは複数の実施形態において、メッセージ要素マネージャ114a、114bは、第3のメッセージ要素に関連付けられたメタデータを識別して、いつ第3のメッセージ要素を第1および第2のメッセージ要素に置換するべきかを判定することができる。例えば、上述した「フィスト・バンプする」第3のメッセージ要素において、アニメーションは、完了するまでに5秒を要し得る。少なくとも1つの実施形態において、第3のメッセージ要素に関連付けられたメタデータは、第3のメッセージ要素を「再生する」または完了するのに要する時間を含むことができる。メッセージ要素マネージャ114a、114bは、第1および第2のメッセージ要素を第3のメッセージ要素に置換した後に、いつこの時間が経過したかを判定することができる。
適当な時間が経過した後に、メッセージ要素マネージャ114a、114bは、第3のメッセージ要素を第1および第2のメッセージ要素に置換することができる。例えば、1つまたは複数の実施形態において、第3のメッセージ要素を第1および第2のメッセージ要素に置換するために、メッセージ要素マネージャ114a、114bは、第3のメッセージ要素を含む通信スレッド内のセルを除去し、または隠すことによって、第3のメッセージ要素なしの通信スレッドを再び再レンダリングすることができる、これに続いて、メッセージ要素マネージャ114a、114bは、第1のメッセージ要素を含む新しいセルと、第2のメッセージ要素を含む新しいセルとを用いて通信スレッドをレンダリングすることによって、第1および第2のメッセージ要素を通信スレッドに対して追加することができる。1つまたは複数の実施形態において、メッセージ要素マネージャ114a、114bは、第1および第2のメッセージ要素がそれらの元の場所に戻るように、第1および第2のメッセージ要素を含む通信スレッドをレンダリングすることができる。したがって、ユーザの観点からは、ユーザが、通信スレッドが再レンダリングされていることに気づかず、むしろ第1のメッセージ要素と第2のメッセージ要素との間の対話のみを見るような手法で、メッセージ要素マネージャ114a、114bは、メッセージ要素を除去し、加えることができる。
メッセージ要素マネージャ114a、114bのアクションは、クライアント・コンピューティング・デバイス106a、106b上で発生するものとして説明されているが、付加的な実施形態または代替的な実施形態において、これらの同じアクションは、サーバ・レベルで発生し得る。例えば、1つの実施形態において、メッセージ要素マネージャ114a、114bの機能性は、電子通信マネージャ104内に存在する。その場合に、電子通信マネージャは、ホスト・システム102を介して移動する電子通信をインターセプトし、必要に応じてメッセージ要素を識別することができる。
上記で言及したように、および図1に示されるように、メッセージング・アプリケーション108a、108bは、アプリケーション・データ・ストレージ116a、116bも含むことができる。図示されるように、アプリケーション・データ・ストレージ116a、116bは、ユーザ・データ118a、118bと、メッセージ要素データ120a、120bとを含むことができる。1つまたは複数の実施形態において、ユーザ・データ118a、118bは、本明細書において説明されるような、ユーザ情報を表すデータを含むことができる。同様に、1つまたは複数の実施形態において、メッセージ要素データ120a、120bは、本明細書において説明されるような、メッセージ要素情報を表すデータを含むことができる。
図1に示されるように、ホスト・システム102は、電子通信マネージャ104を含むことができる。1つまたは複数の実施形態において、電子通信マネージャ104は、ホスト・システム102のユーザ間で送信された電子通信に関するすべてのアクティビティを管理することができる。例えば、上記で説明したように、ユーザは、電子メッセージをホスト・システム102の1人または複数の共同ユーザへ送信することができる。
少なくとも1つの実施形態において、および図1に示されるように、電子通信マネージャ104は、通信マネージャ122を含むことができる。通信マネージャ122は、ホスト・システム102からデータを受信すること、およびホスト・システム102へデータを送信することを促進することができる。特に、通信マネージャ122は、電子通信を送信することおよび受信することを促進することができる。例えば、通信マネージャ122は、電子通信に含められるべきコンテンツをパッケージし、本明細書において説明されるような、適当な通信プロトコルを使用して、1つまたは複数のコミュニケーションチャンネルを通じて送信されることが可能な任意の必要な形態にその電子通信をフォーマットすることができる。
さらに、通信マネージャ122は、ホスト・システム102の外部のソースにコンテンツを要求することを促進することができる。例示すると、1つの場合において、第三者(例えば、商業エンティティ、または著者)は、ユーザへの配信のための複数のメッセージ要素を含むメッセージ要素ファイルをホスト・システム102へ提供し得る。その場合に、通信マネージャ122は、メッセージ要素ファイルを受信するために、第三者と通信することができる。同様に、通信マネージャ122は、過去に受信されたメッセージ要素ファイルに対する更新情報または置換情報を受信するために、付加的な第三者と通信することができる。
付加的に、図1に示されるように、要素通信マネージャ104は、メッセージ要素ディレクタ124を含むことができる。1つまたは複数の実施形態において、メッセージ要素ディレクタ124は、メッセージ要素ファイルおよびメッセージ要素ファイルへの更新情報を管理し、体系化し、分散させることができる。例えば、上記で説明したように、電子通信にメッセージ要素を含めるためには、ユーザは、一般に、メッセージ要素ファイルをクライアント・コンピューティング・デバイス106a、106bにダウンロードしなければならない。メッセージ要素ファイルをダウンロードするために、メッセージング・アプリケーション108a、108bは、要求されたファイルを求めてメッセージ要素ディレクタ124にコンタクトすることができる。少なくとも1つの実施形態において、メッセージング・アプリケーション108a、108bからのダウンロード・リクエストに応答して、メッセージ要素ディレクタ124は、次いで、要求されたメッセージ要素ファイルを提供することができる。
メッセージ要素ファイルをメッセージング・アプリケーション108a、108bへ提供した後に、メッセージ要素ディレクタ124は、メッセージング・アプリケーション108a、108bに関連付けられたソーシャル・ネットワーキング・システム・ユーザへ提供されたメッセージ要素ファイルの記録をとることができる。次いで、1つまたは複数の実施形態において、および特定のメッセージ要素ファイルのソースまたは著者から更新情報を受信することに応答して、メッセージ要素ディレクタ124は、特定のメッセージ要素ファイルを過去にダウンロードしたメッセージング・アプリケーション108a、108bへ更新情報をプッシュする(push)ことができる。
さらに、少なくとも1つの実施形態において、メッセージ要素ディレクタ124は、必要とされるメッセージ要素ファイルをダウンロードするように、電子通信の受信者に促すことができる。例えば、1つの実施形態において、電子通信の送信者は、送信者のクライアント・コンピューティング・デバイス106a上にダウンロードされた特定のメッセージ要素を含む特定のメッセージ要素ファイルを有し得る。送信者が、特定のメッセージ要素を含む電子通信を受信者へ送信することに応答して、メッセージ要素ディレクタ124は、電子通信をインターセプトし、その電子通信の意図された受信者が、特定のメッセージ要素を含む特定のメッセージ要素ファイルをクライアント・コンピューティング・デバイス106bにダウンロードしたことがあるかどうかを判定することができる。受信者は特定のメッセージ要素ファイルをダウンロードしたことがないとメッセージ要素ディレクタ124が判定した場合、メッセージ要素ディレクタ124は、適当なダウンロードを要求するように受信者に促すことができる。
さらに、上記で説明したように、および図1に示されるように、電子通信マネージャ104は、データ・ストレージ126も含むことができる。図示されるように、データ・ストレージ126は、ユーザ・データ128と、通信およびメッセージ要素データ130とを含むことができる。1つまたは複数の実施形態において、ユーザ・データ128は、本明細書において説明されるような、ユーザ情報を表すデータを含むことができる。同様に、1つまたは複数の実施形態において、通信およびメッセージ要素データ130は、やはり本明細書において説明されるような、通信およびマルチメディア情報を含むことができる。
ホスト・システム102がソーシャル・ネットワーキング・システムを備える、1つまたは複数の実施形態において、ホスト・システム102は、複数のユーザおよびコンセプトを表現し、分析するためのソーシャルグラフ132を含み得る。ソーシャルグラフ132のノード情報134は、ユーザのノード、コンセプトのノード、トランザクションのノード、およびアイテムのノードを含むノード情報を記憶することができる。ソーシャルグラフ132のエッジ情報136は、ソーシャル・ネットワーキング・システム内で発生するノードおよび/またはアクション間の関係を含むエッジ情報を記憶することができる。ソーシャル・ネットワーキング・システム、ソーシャルグラフ、エッジ、およびノードに関するさらなる詳細は、図8および図9に関して、以下に提示される。
図2は、電子通信システム100の例示の概略図を示す。図2に示されるように、電子通信システム100は、クライアント・コンピューティング・デバイス106aおよび106bと、メッセージング・アプリケーション108a、108bと、サーバ・デバイス101と、ホスト・システム102とを含むことができ、これらは、ネットワーク202を通じて通信可能に結合される。さらに図2に示されるように、ユーザ204aおよび204bは、ホスト・システム102上のコンテンツおよび/またはサービスにアクセスするために、クライアント・コンピューティング・デバイス106aおよび106bとそれぞれ対話し得る。クライアント・コンピューティング・デバイス106aおよび106bの各々は、上記で説明したように、メッセージング・アプリケーション108a、108bを介してホスト・システム102にアクセスし得る。
クライアント・コンピューティング・デバイス106aおよび106bとホスト・システム102とは、ネットワーク202を介して通信することができ、ネットワーク202は、1つまたは複数のネットワークを含んでもよく、データおよび/または通信信号を送信するのに適した、1つまたは複数の通信プラットフォームまたは技術を使用し得る。1つまたは複数の実施形態において、ネットワーク202は、インターネットまたはワールド・ワイド・ウェブを含み得る。しかしながら、ネットワーク202は、様々な通信技術およびプロトコルを使用する様々な他のタイプのネットワーク、例えば、企業イントラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ローカル・ネットワーク(WLAN)、セルラ・ネットワーク、広域ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、または2つ以上のそのようなネットワークの組み合わせなどを含むことができる。図2は、クライアント・コンピューティング・デバイス106aおよび106b、ホスト・システム102、ならびにネットワーク202の特定の構成を示すが、様々な付加的な構成が可能である。例えば、クライアント・コンピューティング・デバイス106aおよび106bは、ネットワーク202を迂回して、ホスト・システム102と直接通信してもよい。ネットワーク202に関連する付加的な詳細は、図8を参照して、以下に解説される。
図2に示されるように、ユーザ204a/204bは、電子通信システム100を使用して、メッセージ要素を含む電子メッセージを送信することができる。上記で説明したように、ユーザ204aおよび204bは、個々(すなわち、人間のユーザ)、企業、グループ、または他のエンティティであってもよい。図2は、2人のユーザ204aおよび204bを示すが、複数のユーザの各々が、対応する複数のクライアント・コンピューティング・デバイスを通じて電子通信システム100と対話する状態で、電子通信システム100は、複数のユーザが電子メッセージをやり取りすることを可能にし得ることが理解される。
本明細書において説明される電子通信システム100を参照すると、ユーザ204a、204bのいずれかは、電子メッセージの送信者となり、ユーザ204a、204bのいずれかは、電子メッセージの受信者となり得る。一定の実施形態において、ホスト・システム102は、ユーザ204a、204bが互いに電子通信を送信し、受信することができる前に、ユーザ204a、204bがホスト・システム102を介して「友達」となることを保証することができる。付加的な実施形態または代替的な実施形態において、ホスト・システム102は、電子通信を送信し、受信するユーザは、ホスト・システム102のアクティブユーザだけとなることを単に保証してもよい。
クライアント・コンピューティング・デバイス106a、106bは、様々なタイプのコンピューティング・デバイスを含んでもよい。例えば、クライアント・コンピューティング・デバイス106a、106bは、携帯電話、スマートフォン、PDA、タブレット、ラップトップ・コンピュータなどのモバイル・デバイス、または、デスクトップ・コンピュータ、サーバ、もしくは別のタイプのコンピューティング・デバイスなどの非モバイル・デバイスを含むことができる。さらに、クライアント・コンピューティング・デバイス106a、106bは、ホスト・システム102に関連付けられた専用ソーシャル・ネットワーキング・アプリケーション(例えば、図1に関連して上述したようなソーシャル・ネットワーキング・アプリケーション108a、108bなど)を実行して、電子通信システム100に関連付けられたソーシャル・ネットワーキング・コンテンツ(例えば、投稿、メッセージ、販売リスト、プロフィール等)にアクセスし得る。クライアント・コンピューティング・デバイス106a、106bに関する付加的な詳細は、図7に関して、以下に論じられる。
以下により詳細に説明されるように、図1および図2に関して説明されたような電子通信システム100の構成要素は、他の構成要素と共に/他の構成要素と組み合わせて、1つまたは複数のグラフィカル・ユーザ・インターフェース(「GUI」)を提供することができる。特に、構成要素は、ユーザが多種多様な目的のために表示要素の集合と対話することを可能にし得る。具体的には、図3A〜図4Dおよび以下に続く説明は、上述したような一般的な原理に係る、GUIおよび特徴の様々な例示の実施形態を示す。
例えば、図3A〜図4Dは、メッセージング・アプリケーション108a、108bによってクライアント・コンピューティング・デバイス106a、106bにおいて提供されるGUIの様々な図を示す。上記で言及したように、いくつかの実施形態において、クライアント・コンピューティング・デバイス(すなわち、クライアント・コンピューティング・デバイス106a、106b)は、電子通信システム100からの特徴を実装し、および/または提供することができる。例えば、図3Aは、電子通信マネージャ104の構成要素または特徴のうちの1つまたは複数を実装し得る、ユーザ(例えば、ユーザ204a)のクライアント・コンピューティング・デバイス300を示す。図示されるように、クライアント・コンピューティング・デバイス300は、携帯電話デバイス(例えば、スマートフォン)などのハンドヘルド・デバイスである。本明細書において、「ハンドヘルド・デバイス」という用語は、ユーザの片手で保持され/操作されるような大きさにされ、構成されたデバイスを指す。しかしながら、付加的な例または代替的な例において、タブレット・デバイス、より大きなワイヤレス・デバイス、ラップトップ・コンピュータもしくはデスクトップ・コンピュータ、携帯情報端末デバイス、および/または任意の他の適切なコンピューティング・デバイスなどの、ただし、これらに限定されない、任意の他の適切なコンピューティング・デバイスは、本明細書において説明される方法および/または動作のうちの1つまたは複数を実行することができる。
図3Aに示されるように、クライアント・コンピューティング・デバイス300は、ユーザ・インターフェースを表示することができるタッチ・スクリーン・ディスプレイ302を含み、このタッチ・スクリーン・ディスプレイ302によって、ユーザ入力が受け取られ、および/または検出され得る。本明細書において、「タッチ・スクリーン・ディスプレイ」とは、タッチ・スクリーン・デバイスのディスプレイを指す。1つまたは複数の実施形態において、タッチ・スクリーン・デバイスは、ユーザがタッチ・ジェスチャを実行し得る少なくとも1つの表面を備えたクライアント・コンピューティング・デバイス106a、106b(例えば、ラップトップ・コンピュータ、タブレット・コンピュータ、携帯情報端末、メディア・プレイヤー、携帯電話等)であってもよい。付加的に、または代替的に、クライアント・コンピューティング・デバイス300は、タッチ・パッドまたは図7を参照して以下に説明されるものなどの、任意の他の適切な入力デバイスを含んでもよい。
図3Aにおいて、クライアント・コンピューティング・デバイス300のタッチ・スクリーン・ディスプレイ302は、クライアント・コンピューティング・デバイス300上にインストールされたディスプレイ・マネージャ110a、110bによって提供される通信スレッドGUI304を表示する。1つまたは複数の実施形態において、ディスプレイ・マネージャ110a、110bは、2人のソーシャル・ネットワーキング・システム・ユーザ間で送信したり、送信されたりする一連の電子メッセージを表示するために、通信スレッドGUI304を提供する。例えば、通信スレッドGUI304によって表示される通信スレッド306は、クライアント・コンピューティング・デバイス300のユーザ(例えば、ユーザ204a)と、別のユーザ(例えば、ユーザ204b)との間で送信された電子メッセージ308a〜308dを含む。通信スレッド306は、最も古い電子メッセージ308aを通信スレッド306の一番上にし、最新の電子メッセージ308dを通信スレッド306の一番下にして、電子メッセージ308a〜308dを経時的に表示することができる。1つまたは複数の代替的な実施形態において、通信スレッド306における電子メッセージの流れは、逆にされてもよく、または特定の具体化例に適した任意の他の方向であってもよい。
通信スレッドGUI304は、1つまたは複数の電子メッセージを構成し、送信する際に使用するための付加的な制御部も含むことができる。例えば、図3Aに示されるように、通信スレッドGUI304は、入力制御部312の集合を含むことができる。タッチ・スクリーン・キーボードに加えて、入力制御部312の集合を利用することによって、クライアント・コンピューティング・デバイス300のユーザは、テキスト、メッセージ要素等を含む電子メッセージを構成し、送信することができる。
図3Aにさらに示されるように、通信スレッド306は、各電子メッセージの送信者を示すように電子メッセージ308a〜308dを表示する。例えば、通信スレッド306は、「マイケル」(例えば、ユーザ204b)が電子メッセージ308aおよび308cの送信者であることを示すために、電子メッセージ308aおよび308cならびにメッセージ要素310aを、通信スレッドGUI304の片側の方へ配置する。同様に、通信スレッド306は、クライアント・コンピューティング・デバイス300のユーザ(例えば、ユーザ204a)が電子メッセージ308bおよび308dの送信者であることを示すために、電子メッセージ308bおよび308dを、通信スレッドGUI304の反対側の方へ配置する。1つまたは複数の実施形態において、通信スレッド306は、通信スレッド306内の各電子メッセージの送信者を示すために、ユーザ名およびプロフィール写真などの付加的な情報も含むことができる。
1つまたは複数の実施形態において、クライアント・コンピューティング・デバイス300(例えば、クライアント・コンピューティング・デバイス106a)にインストールされたメッセージング・アプリケーション108aのディスプレイ・マネージャ110aは、少なくとも1つの電子メッセージまたはメッセージ要素を各々が含む個々のセルを含むことによって、通信スレッド306をレンダリングする。例えば、少なくとも1つの実施形態において、図3Aに示される通信スレッド306は、1つの電子メッセージまたは1つのメッセージ要素を各々含む複数のセルからなる。ディスプレイ・マネージャ110aは、セル内に含まれている電子メッセージおよび/またはマルチメディアが目に見えても、セルはクライアント・コンピューティング・デバイス300のユーザに見えないように、各セルをレンダリングすることができる。
上記で言及したように、メッセージ要素マネージャ114aは、通信スレッド内のメッセージ要素を識別することができる。より詳細には、メッセージ要素310aがステッカーを含む場合、ユーザ204bは、入力制御部312から制御部を選択して、ステッカーの集合を開くことができる。次いで、ユーザ204bは、ステッカーの集合から所望のステッカーを選択することができる。代替的に、入力制御部312は、所望のステッカー(例えば、図3Aに示されるようなサムズ・アップ・ステッカー)を含んでもよい。1つまたは複数の実施形態において、所望のステッカー310aを選択した際に、メッセージング・アプリケーション108aは、クライアント・コンピューティング・デバイスに、ステッカー310aの識別子をホスト・システム102へ送信させることができ、次いで、ホスト・システム102は、その識別子をユーザ204aのクライアント・コンピューティング・デバイス300へ転送することができる。次いで、クライアント・コンピューティング・デバイス300上で実行されているメッセージング・アプリケーション108aは、識別子を使用して、ステッカー310aを取り出し、レンダリングすることができる。特に、メッセージング・アプリケーション108aは、クライアント・コンピューティング・デバイス106a上のアプリケーション・データ・ストレージ116a内のメッセージ要素データ120aから、メッセージ要素(すなわち、サムズ・アップのイラストレーション)を取り出すことができる。
図3Bに示されるように、クライアント・コンピューティング・デバイス300のユーザ(例えば、ユーザ204a)は、対応するメッセージ要素310bをマイケル(例えば、ユーザ204b)へ送信することによって、メッセージ要素310aに応答することができる。1つまたは複数の実施形態において、新しい電子通信の付加に応答して、メッセージ要素マネージャ114aは、メッセージ要素310aに加えて第2のメッセージ要素について通信スレッド306を再び分析することができる。メッセージ要素マネージャ114aが、第2のメッセージ要素310bを識別した場合、メッセージ要素マネージャ114aは、メッセージ要素310aおよびメッセージ要素310bに関してトリガが存在するかどうかを判定することができる。例えば、メッセージ要素マネージャ114aは、メッセージ要素310a、310bが連続的に(すなわち、介在するメッセージもしくはメッセージ要素なしに)、および/または閾値時間内に提供されたかどうかを判定することができる。上記で説明したように、メッセージ要素マネージャ114aは、メッセージ要素310aおよび310bに関連付けられたメタデータに基づいて、この判定を行うことができる。
付加的な実施形態または代替的な実施形態において、メッセージ要素マネージャ114aは、第1のメッセージ要素310aおよび第2のメッセージ要素310bが閾値時間内に提供されなかったとメッセージ要素マネージャ114aが判定した場合、第1のメッセージ要素310aおよび第2のメッセージ要素310bが第2の時間フレーム内に提供されたかどうかを判定することができる。例えば、第1のメッセージ要素310aおよび第2のメッセージ要素310bが、第2の時間フレーム内に提供された場合、もし第1のメッセージ要素310aおよび第2のメッセージ要素310bが閾値時間内に提供されていたならば選択されていたであろうメッセージ要素とは異なる第3のメッセージ要素を、メッセージ要素マネージャ114aは識別することができる。例えば、第1のメッセージ要素310aがサムズ・アップ・ステッカーであり、第2のメッセージ要素310bもサムズ・アップ・ステッカーである場合、メッセージ要素マネージャ114aは、第1のメッセージ要素310aおよび第2のメッセージ要素310bが閾値時間内には提供されなかったが、第2の時間フレーム内に提供されたと判定することに応答して、空回りした「ハイファイブ(high-five)」のアニメーションを含む第3のメッセージ要素を識別してもよい。
メッセージ要素310aおよび310bは閾値時間内に提供されたと判定することに応答して、メッセージ要素マネージャ114aは、第3のメッセージ要素を識別し、通信スレッド306内でメッセージ要素310aおよび310bを第3のメッセージ要素に置換することができる。1つまたは複数の実施形態において、第3のメッセージ要素を識別するために、メッセージ要素マネージャ114aは、メッセージ要素310aおよび310bを含む、クライアント・コンピューティング・デバイス106a上のメッセージ要素ファイルにアクセスすることができる。例えば、少なくとも1つの実施形態において、メッセージ要素310aおよび310bは、各メッセージ要素310a、310bが発信されたソース(例えば、メッセージ要素ファイル、著者、ウェブサイトへのハイパーリンク等)を識別する情報を含むメタデータに関連付けられる。したがって、メッセージ要素マネージャ114aは、メッセージ要素310aおよび310bに関連付けられたメタデータによって示されるメッセージ要素ファイルにアクセスすることができる。
メッセージ要素マネージャ114が、適当なメッセージ要素ファイルにアクセスすると、メッセージ要素マネージャ114は、メッセージ要素310aおよび310bに関連付けられたメタデータをさらに利用して、第3のメッセージ要素を識別することができる。例えば、1つまたは複数の実施形態において、メッセージ要素310aおよび310bに関連付けられたメタデータは、(例えば、メタデータに含まれたキーワード、説明、識別子等に基づいて)メッセージ要素310aとメッセージ要素310bとの間の関連性を示す情報を含むことができる。この同じ情報は、メッセージ要素310aおよび310bと第3のメッセージ要素との間の関連性も示すことができる。例として、メッセージ要素310aおよび310bは、メッセージ要素310aとメッセージ要素310bとの両方に対応する第3のメッセージ要素を示すメタデータに関連付けられてもよい。例えば、1つの実施形態において、メッセージ要素310aおよびメッセージ要素310bに対応する第3のマルチメディア・メディア要素は、メッセージ要素310bと対話するメッセージ要素310aのアニメーションである。
したがって、メッセージ要素マネージャ114aが、メッセージ要素310aおよびメッセージ要素310bに対応する第3のメッセージ要素を識別すると、メッセージ要素マネージャ114aは、メッセージ要素310aおよびメッセージ要素310bを除去するように、通信スレッド306を再レンダリングすることができる。上述したように、メッセージ要素マネージャ114aは、メッセージ要素310aおよび310bを含む、通信スレッド306内のセル311a、311bを削除することによって、メッセージ要素310aおよび310bを除去することができる。代替的な実施形態において、メッセージ要素マネージャ114aは、メッセージ要素310aおよび310bを含む、通信スレッド306内のセル311a、311bを単に隠すことによって、メッセージ要素310aおよび310bを除去してもよい。
次に、メッセージ要素マネージャ114aは、第3のメッセージ要素を通信スレッド306に対して追加することができる。例えば、図3Cに示されるように、メッセージ要素マネージャ114aは、クライアント・コンピューティング・デバイス300のタッチ・スクリーン・ディスプレイ302上の通信スレッドGUI304の内の通信スレッド306に対して、メッセージ要素310cを追加することができる。1つまたは複数の実施形態において、メッセージ要素マネージャ114aは、メッセージ要素306を含む、通信スレッド306内の新しいセル311cをレンダリングすることによって、メッセージ要素306を追加することができる。少なくとも1つの実施形態において、メッセージ要素マネージャ114aは、通信スレッド306において、メッセージ要素310cを含む新しいセル311cを中心に配置することができる。メッセージ要素マネージャ114aは、さらに、新しいセル311cにおいてメッセージ要素310cを中心に配置することができる。
1つまたは複数の実施形態において、新しいセル311cは、第1のセル311aまたは第2のセル311bのいずれかより大きくすることができる。例えば、新しいセル311cは、第1および第2のセル311a、311bの組み合わされたサイズと等しいサイズを有することができる。より大きな新しいセル311cは、より大きい、またはより複雑なメッセージ要素を可能にすることができる。
上述したように、メッセージ要素マネージャ114aが、メッセージ要素310aおよび310bをメッセージ要素310cに置換した場合、メッセージ要素マネージャ114aは、通信スレッド306内にメッセージ要素310cを無期限に残すことができる。代替的に、メッセージ要素マネージャ114aは、所定の時間後に、メッセージ要素310cを除去し、メッセージ要素310aおよび310bをそれらの元の位置において通信スレッド306に対して追加することができる。メッセージ要素マネージャ114aは、メッセージ要素310cに関連付けられたメタデータおよび/またはメッセージング・アプリケーション108aに関連付けられた、ユーザにより設定された設定に基づいて、メッセージ要素310cを無期限に残すべきか、または所定の時間後にメッセージ要素310cを除去するべきかに関する判定を行うことができる。
メッセージ要素310cが通信スレッド306内に無期限に残されるべきではないと判定することに応答して、メッセージ要素マネージャ114aは、メッセージ要素310cを置換する前に待機するべき正確な時間を決定することができる。例えば、図3C〜図3Eに示されるように、メッセージ要素マネージャ114aは、通信スレッド306内でメッセージ要素310aおよび310bが「フィスト・バンプ」を行うイラストレーションのアニメーションを含むことができる。すなわち、図3Cにおいて、メッセージ要素310cは、両方の拳の親指が方向矢印に沿って閉じる、互いに面した2つのサムズアップ・イラストレーションを示す。次に、図3Dにおいて、メッセージ要素310cは、拳になった2つのサムズアップ・イラストレーションを示す。次いで、図3Eにおいて、メッセージ要素310cは、方向矢印に沿って通信スレッド306の中心において近づいて、「フィスト・バンプ」を行う2つの拳を示す。
したがって、メッセージ要素310cに関連付けられたメタデータは、アニメーションが完了する(すなわち、「フィスト・バンプ」アニメーションが図3Eにおいて終了するとき)までに必要な時間を詳述する情報を含むことができる。付加的に、または代替的に、メッセージ要素310cは、メッセージ要素310cに関連付けられたメタデータにおいて時間を識別するのではなく、いつアニメーションが完了するかを単に検出してもよい。例えば、メッセージ要素310cは、アニメーションが(例えば、図3Cのような)その最初の開始位置へ戻った場合に、アニメーションが完了したと検出することができる。
1つまたは複数の実施形態において、必要な時間が満了すると、またはメッセージ要素マネージャ114aがアニメーションが完了したことを検出すると、マルチメディア・マネージャ114aは、メッセージ要素310cを除去し、通信スレッド306を再レンダリングすることができる。例えば、マルチメディア・マネージャ114aは、メッセージ要素310cを含むセル311cを除去するように、通信スレッド306をレンダリングすることができる。これに続いて、メッセージ要素マネージャ114aは、メッセージ要素310aおよび310bを含むセル311a、311bを含むように、通信スレッド306を再レンダリングすることができる。さらに、図3Fに示されるように、メッセージ要素マネージャ114aは、メッセージ要素310aおよび310bを含むセルを、図3Bに示されるように、それらが方向矢印に沿ってそれらの元の位置となるように、通信スレッド306に対して追加することができる。
メッセージ要素310aおよび310bをメッセージ要素310cに置換し、後で結局、メッセージ要素310aおよび310bに戻すことの効果は、メッセージ要素310aとメッセージ要素310bとが実際に対話しているように見える、ユーザ204aに対する錯覚を生み出す。言い換えれば、1つまたは複数の実施形態において、ユーザ204aは、メッセージ要素マネージャ114aによって行われたレンダリングおよび再レンダリングに気づかない。むしろ、レンダリングおよび再レンダリングは、シームレスであり、ユーザ204aには実際に目に見えない。
図3A〜図3Fは、1人のユーザの視点から起こるものとして説明されているが、通信スレッド306に参加するすべてのユーザが、上述したメッセージ要素の対話を潜在的に見ることができる。例えば、ユーザが自身のクライアント・コンピューティング・デバイスに適当なマルチメディア・ファイルをダウンロードしたかどうかに依存して、上述したマルチメディア対話は、通信スレッド306に関連付けられた各ユーザにとって同じとなり得る。ユーザが、適当なマルチメディア・ファイルをダウンロードしていない場合、通信スレッド306は、説明されたマルチメディア対話を含まないであろう。
したがって、拡張メッセージ要素の使用は、別のレベルの表現を備えたメッセージ会話を提供することができる。図3A〜図3Fは、元の2つのメッセージ要素310a、310bが、静的なイラストレーション(例えば、ステッカー)であり、拡張イラストレーション310cが、最初の2つのメッセージ要素310a、310bからのイラストレーションを含むアニメーションであることを示す。当業者は、本明細書における開示に照らして、電子通信システム100がメッセージ要素の組み合わせにおいて多種多様なバリエーションを可能にし得ることを認識するであろう。例えば、最初の2つのメッセージ要素が、アニメーションを含んでもよく、一方で、拡張メッセージ要素または第3のメッセージ要素は、静止画像または異なるアニメーションである。さらに、拡張メッセージ要素または第3のメッセージ要素は、拡張メッセージ要素と置換される対応するメッセージ要素からのいかなるイラストレーションも含む必要はない。
図3A〜図3Fは、閾値期間内の2人の異なるユーザによる、同じメッセージ要素(例えば、サムズアップ・ステッカー)の連続した使用は、連続したメッセージ要素を拡張メッセージ要素(例えば、フィストバンプ・アニメーション)に置換するように電子通信システムをトリガし得ることを示す。したがって、対応するメッセージ要素は、同じメッセージ要素を含むことができる。代替的に、対応するメッセージ要素は、異なるメッセージ要素を含んでもよい。例えば、女性ダンサーのステッカーおよび男性ダンサーのステッカーは、女性と男性とがダンスするアニメーションをトリガしてもよい。
さらに、同じメッセージ要素は、異なる拡張メッセージ要素に関連付けられた、様々な異なる対応するメッセージ要素を有することができる。したがって、第1のユーザが、第1のメッセージ要素を送信すると、第2のユーザは、第2のメッセージ要素を用いて応答して、第1の拡張メッセージ要素をトリガすることができる。しかしながら、第2のユーザが、第3のメッセージ要素を用いて応答する場合、電子メッセージ・システムは、第1の拡張メッセージ要素ではなく、第2の拡張メッセージ要素を提供することができる。
上述したように、拡張メッセージ要素は、多種多様な異なる要素を含むことができる。例えば、図3A〜図3Fに関連して上述したように、拡張メッセージ要素310cは、アニメーションを含むことができる。代替的な実施形態において、拡張メッセージ要素310cは、1つまたは複数の付加的な特徴と共に拡張メッセージ要素をトリガする、対応するメッセージ要素の一方または両方を含んでもよい。例えば、拡張メッセージ要素は、音声またはビデオを、1つまたは複数の対応するメッセージ要素に対して追加することができる。またさらに、拡張メッセージ要素は、1つまたは複数の対応するメッセージ要素のサイズ、色、数、向き、または他の特徴を変化させることができる。
前述のものに加えて、1つまたは複数の実施形態において、拡張メッセージ要素は、単一のユーザには利用不可能なメッセージ要素を含むことができる。したがって、拡張メッセージ要素を呼び出すためには、メッセージ要素を拡張メッセージ要素に置換するように電子通信システムをトリガする(例えば、連続的に、および/または所与の閾値期間内に、対応するメッセージ要素を提供する)様式で、2人のユーザがメッセージ要素を提供する必要があり得る。
電子通信システムは、拡張メッセージ要素をトリガするであろうアクションをユーザに通知するために、ユーザに対する支援を提供することもできる。例えば、電子通信システムは、メッセージング・アプリケーション108aとのユーザの自然な体験を中断せずに、関連する支援情報をユーザへ提示することができる。例えば、ユーザが利用可能な様々なアクションは、ユーザがそのアクションを完了させるのを助けるための対応する新しいユーザ支援情報を有してもよい。新しいユーザ支援情報は、メッセージング・アプリケーション108aとのユーザの体験を過度に混乱させずに、どのように対応するアクションを行うかをユーザが簡単にかつ迅速に学習することを可能にする手法で、ユーザに対して提示され得る。
例えば、メッセージ要素が送信され、または、さもなければ、対応するメッセージ要素を有する通信スレッド内に入力されると、電子通信システムは、拡張メッセージ要素を呼び出すために、ユーザがどのメッセージ要素を送信することができるかを示すユーザ支援情報を提示し得る。さらに、ユーザ支援情報は、拡張メッセージ要素をトリガするための1つまたは複数の条件(期間、メッセージ要素の順序等)に関する情報をユーザに提供することができる。
本明細書において、「ユーザ支援情報」という用語は、アプリケーションのユーザがそのアプリケーションの1つまたは複数の特徴に精通するのを支援するために使用される任意の情報および/またはコンテンツを一般に指し得る。いくつかの実施形態において、ユーザ支援情報の例は、グラフィカル・ユーザ・インターフェース内で利用可能なアクションに関連する情報を提供するオーディオおよび/またはグラフィカル・コンテンツ、例えば、テキスト、画像、アニメーション、ビデオ、音声、音楽、および会話などを含むことができる。例えば、特定のアクションについてのユーザ支援情報の提示は、アクションを行うための命令およびアクションの視覚的なデモンストレーションを提示することを含んでもよい。
いくつかの実施形態において、ダウンロードされたメッセージ要素ファイルからメッセージ要素を利用するのではなく、ユーザ204aおよび204bは、ユーザ自身のクライアント・コンピューティング・デバイス106a、106b上に記憶されたファイルから、ユーザ自身のメッセージ要素を生成することができる。例えば、図4Aに示されるように、クライアント・コンピューティング・デバイス300(例えば、クライアント・コンピューティング・デバイス106a)のユーザ204aは、クライアント・コンピューティング・デバイス300上に記憶されたファイル(例えば、デジタル写真ファイル)に基づいて、メッセージ要素310dを作成することができる。図示されるように、メッセージ要素マネージャ114aは、電子メッセージ308e(すなわち、「今日私が撮ったこの写真をチェックしてみて!」)に続いて、クライアント・コンピューティング・デバイス300のタッチ・スクリーン・ディスプレイ302に示された通信スレッドGUI304内の通信スレッド306に対して、メッセージ要素310dを追加済みである。クライアント・コンピューティング・デバイス300のユーザ(例えば、ユーザ204a)は、入力制御部312の集合内の制御部のうちの1つを利用することによって、メッセージ要素310dを作成するファイルを選択済みであり得る。
次に、クライアント・コンピューティング・デバイス300のユーザが通信している相手のユーザ(例えば、ユーザ204b)は、電子メッセージ308f(例えば、「それはすごいね!これらをチェックしてみて」)と、付加的なメッセージ要素310eおよび310fとを用いて返答することができる。図4Bに示されるように、付加的なメッセージ要素310eおよび310fは、クライアント・コンピューティング・デバイス300のユーザ(例えば、ユーザ204b)が通信している相手のユーザに関連付けられたクライアント・コンピューティング・デバイスからのファイルも含むことができる。図4Bに示されるように、クライアント・コンピューティング・デバイス300のユーザは、すべてのメッセージ要素310d〜310fを見るためには、通信スレッド306をスクロールしなければならず、これはユーザにとって面倒となり得る。
この時点において、上述したように、メッセージ要素マネージャ114aは、メッセージ要素310d〜310fを識別し、メッセージ要素310d〜310fが閾値時間内に、または別のトリガに従って、通信スレッド306に対して追加されたものであると判定することができる。したがって、メッセージ要素310d〜310fは、閾値時間内に提供されているので、メッセージ要素マネージャ114aは、メッセージ要素310d〜310fに対応する第3のメッセージ要素を識別することができる。しかしながら、上述したように、メッセージ要素310d〜310fは、ダウンロードされたメッセージ要素ファイルに由来したものではない。したがって、図3A〜図3Eに関して論じられたように、メッセージ要素ファイルから第3のメッセージ要素を識別するのではなく、メッセージ要素マネージャ114aは、クライアント・コンピューティング・デバイス300上に記憶されたテンプレートの既存の集合からテンプレートを識別し、この識別されたテンプレートに基づいて、第3のメッセージ要素を生成することができる。1つまたは複数の実施形態において、メッセージ要素マネージャ114aは、メッセージ要素310d〜310fに関連付けられたタイプに基づいて、テンプレートを識別することができる(例えば、メッセージ要素310d〜310fのタイプがデジタル写真である場合、メッセージ要素マネージャ114aは、3枚のデジタル写真についてのテンプレートを識別することができる)。
例えば、図4Cに示されるように、メッセージ要素マネージャ114aは、メッセージ要素310d〜310fをメッセージ要素310gに置換することができる。1つまたは複数の実施形態において、メッセージ要素マネージャ114aは、識別されたテンプレートおよびメッセージ要素310d〜310fに基づいて、メッセージ要素310gを生成することができる。言いかえれば、メッセージ要素マネージャ114aは、識別されたテンプレートのレイアウトに従ってメッセージ要素310d〜310fをサイズ変更し、位置決めすることによって、メッセージ要素310gを生成することができる。
通信スレッド306内でメッセージ要素310d〜310fをメッセージ要素310gに置換するために、メッセージ要素マネージャ114aは、まず、メッセージ要素310d〜310fを含む、通信スレッド306内のセルを除去し、または隠すことができる。これに続いて、図4Cに示されるように、メッセージ要素マネージャ114aは、電子メッセージ308e、308fを再配信して、メッセージ要素310d〜310fの除去によって残された空所を取り除くことができる。次いで、メッセージ要素マネージャ114aは、メッセージ要素310gを含む新しいセルを含むように通信スレッド306を再レンダリングすることができる。図4Cに示されるように、メッセージ要素マネージャ114aは、新しいセルが通信スレッド306の中心に配置されるように、その新しいセルを配置することができる。同様に、メッセージ要素マネージャ114aは、メッセージ要素310gが新しいセル内で中心に配置されるように、メッセージ要素310gを配置することができる。
1つまたは複数の実施形態において、メッセージ要素マネージャ114aは、メッセージ要素310gを対話型にするために、メッセージ要素310gに対して追加の機能性を提供することができる。例えば、図4Dに示されるように、メッセージ要素マネージャ114aは、通信スレッド306において、メッセージ要素制御部314aおよび314bをメッセージ要素310gに関連付けて提供することができる。少なくとも1つの実施形態において、クライアント・コンピューティング・デバイス300のユーザが、メッセージ要素制御部314aをクリックしたことに応答して、メッセージ要素マネージャ114aは、クライアント・コンピューティング・デバイス300のユーザに関連付けられたソーシャル・ネットワーキング・システム・ユーザの1つまたは複数のニュースフィードへ含めるために、電子通信マネージャ104を介してホスト・システム102へメッセージ要素310gを提供することができる。さらに、クライアント・コンピューティング・デバイス300のユーザが、メッセージ要素制御部314bをクリックしたことに応答して、メッセージ要素マネージャ114aは、クライアント・コンピューティング・デバイス300にマルチメディア・メディア要素310gを別個のファイルとして保存することができる。
図1〜図4D、対応するテキスト、および例は、電子通信スレッドにおいてメッセージ要素を管理するための複数の異なる方法、システム、およびデバイスを提供する。前述のものに加えて、実施形態は、特定の結果を達成するための方法における動作および工程を含むフローチャートの観点からも説明され得る。例えば、図5〜図6は、より少ない工程/動作もしくはより多い工程/動作により実行されてもよく、または、工程/動作は、異なる順序で行われてもよい。付加的に、本明細書において説明される工程/動作は、繰り返されてもよく、または互いに並行して行われてもよく、または同じもしくは同様の工程/動作の異なるインスタンスと並行して行われてもよい。
図5は、電子通信スレッドにおいてメッセージ要素を管理する1つの例示の方法500のフローチャートを示す。方法500は、第1のメッセージ要素を識別する動作510を含む。特に、動作510は、通信スレッド(例えば、通信スレッド306)において、第1のユーザ(例えば、ユーザ204a)によって提供された第1のメッセージ要素(例えば、メッセージ要素310a)を識別することを含むことができる。少なくとも1つの実施形態において、通信スレッドに関連付けられたメッセージング・アプリケーションが開かれると、方法500は、通信スレッドの少なくとも一部を構文解析して、その通信スレッドに含まれている任意のメッセージ要素を識別する動作、閾値時間内に送信されたメッセージ要素の対応する対を識別する動作、通信スレッドにおいて、閾値時間内に送信されたメッセージ要素の対応する対を対応する拡張メッセージ要素に置換する動作、および通信スレッドに含まれているメッセージ要素をレンダリングする動作を含む。
付加的に、方法500は、第2のメッセージ要素を識別する動作520を含む。特に、動作520は、通信スレッドにおいて第2のユーザ(例えば、ユーザ204b)によって提供された第2のメッセージ要素(例えば、メッセージ要素310b)を識別することを含むことができる。1つまたは複数の実施形態において、第1および/または第2のメッセージ要素は、シンボル、ステッカー、デジタル写真、顔文字、ビデオ・クリップ、オーディオ・クリップ等を含むことができる。
方法500は、メッセージ要素が閾値時間内に提供されたかどうかを判定する動作530も含む。特に、動作530は、第1のメッセージ要素および第2のメッセージ要素が閾値時間内に提供されたと判定することを含むことができる。例えば、1つまたは複数の実施形態において、第1のメッセージ要素および第2のメッセージ要素が閾値時間内に提供されたかどうかを判定することは、第1のメッセージ要素に関連付けられたメタデータにアクセスして、第1のメッセージ要素の提供時刻を識別すること、第2のメッセージ要素に関連付けられたメタデータにアクセスして、第2のメッセージ要素の提供時刻を識別すること、および第1のメッセージ要素の提供時刻と第2のメッセージ要素の提供時刻との間の差を閾値時間と比較することを含む。
さらに、方法500は、第3のメッセージ要素を識別する動作540を含む。特に、動作540は、第1のメッセージ要素および第2のメッセージ要素が閾値時間に提供されたという判定に応答して、第1のメッセージ要素および第2のメッセージ要素に対応する第3のメッセージ要素(例えば、メッセージ要素310c)を識別することを含むことができる。1つまたは複数の実施形態において、第1のメッセージ要素および第2のメッセージ要素に対応する第3のメッセージ要素を識別することは、テーブル・ルックアップにアクセスし、ルックアップ・テーブルから、第1のメッセージ要素と第2のメッセージ要素との組み合わせが第3のメッセージ要素を示すということを、人間による介入なしに識別することを含む。
方法500は、第1および第2のメッセージ要素を第3のメッセージ要素に置換する動作550も含む。特に、動作550は、通信スレッドにおいて、第1のメッセージ要素および第2のメッセージ要素を第3のメッセージ要素に置換することを含むことができる。例えば、通信スレッドにおいて、第1のメッセージ要素および第2のメッセージ要素を第3のメッセージ要素に置換することは、通信スレッドから、第1のメッセージ要素を含む第1のセルを除去すること、通信スレッドから、第2のメッセージ要素を含む第2のセルを除去すること、および、人間による介入なしに、通信スレッドにおいて第3のメッセージ要素を含む新しいセルを提供することを含むことができる。少なくとも1つの実施形態において、通信スレッドにおいて第3のメッセージ要素を含む新しいセルを提供することは、通信スレッドにおいて、過去に第1および第2のセルによって占められていた位置に新しいセルを配置することを含む。少なくとも1つの実施形態において、通信スレッドにおいて第3のメッセージ要素を含む新しいセルを提供することは、第1のセルと第2のセルとを組み合わせたサイズに対応するように新しいセルのサイズを設定することを含む。付加的に、または代替的に、少なくとも1つの実施形態において、通信スレッドにおいて、第1のメッセージ要素および第2のメッセージ要素を第3のメッセージ要素に置換することは、通信スレッドにおいて新しいセル配置した後に通信スレッドを再レンダリングし、それにより、第1のメッセージ要素および第2のメッセージ要素を除去し、第3のメッセージ要素をレンダリングすることを含む。
方法500は、所定の期間後に、通信スレッドから、第3のメッセージ要素を含む新しいセルを除去すること、通信スレッドにおいて、第1のメッセージ要素を含む第1のセルを提供すること、通信スレッドにおいて、第2のメッセージ要素を含む第2のセルを提供すること、および通信スレッドを再レンダリングし、それによって、第3のメッセージ要素を除去し、第1のメッセージ要素および第2のメッセージ要素をレンダリングすることも含むことができる。1つまたは複数の実施形態において、本方法は、第3のメッセージ要素に関連付けられたメタデータにアクセスして、所定の期間を識別することをさらに含む。代替的な実施形態において、所定の期間は、ユーザにより設定された設定に基づく。
付加的に、または代替的に、方法500は、第2のユーザに関連付けられたクライアント・モバイル・デバイスへ第1のメッセージ要素を送信するための命令をモバイル・デバイスを介して受け取った際に、通信スレッドにおいて第1のメッセージ要素をレンダリングすることを含むことができる。さらに、方法500は、第2のメッセージ要素が第2のユーザから送信されたことを示す送信されたメッセージをクライアント・デバイスから受信すること、および通信スレッドにおいて第2のメッセージ要素をレンダリングすることを閾値時間内に含むことができる。その場合、方法500は、第1のメッセージ要素および第2のメッセージ要素が通信スレッドにおいて第3のメッセージ要素と置換された後に、通信スレッドを再レンダリングすることも含むことができる。
1つまたは複数の実施形態において、第1のメッセージ要素は、第1のステッカーを含み、第2のメッセージ要素は、第2のステッカーを含み、第3のメッセージ要素は、第3のステッカーを含む。例えば、1つの実施形態において、第1のステッカーは、第1のイラストレーションを含み、第2のステッカーは、第2のイラストレーションを含み、第3のステッカーは、第1のイラストレーションと第2のイラストレーションとを含むアニメーションを含む。代替的に、別の実施形態において、第1のメッセージ要素は、第1の画像を含み、第2のメッセージ要素は、第2の画像を含み、第3のメッセージ要素は、第1の画像と第2の画像とを含むコラージュを含む。また別の代替的な実施形態において、第1のメッセージ要素は、第1のイラストレーションを含み、第2のメッセージ要素は、第2のイラストレーションを含み、第3のメッセージ要素は、アニメーションを含む。
図6は、電子通信スレッドにおいてメッセージ要素を管理する1つの例示の方法600のフローチャートを示す。方法600は、第1のメッセージ要素を識別する動作610を含む。特に、動作610は、第1のユーザの通信スレッド(例えば、通信スレッド306)において、第1のユーザ(例えば、ユーザ204a)によって提供された第1のメッセージ要素(例えば、メッセージ要素310d)を識別することを含むことができる。
付加的に、方法600は、第2のメッセージ要素を識別する動作620を含む。特に、動作620は、第1のユーザの通信スレッドにおいて、第2のユーザ(例えば、ユーザ204b)によって提供された第2のメッセージ要素(例えば、メッセージ要素310e)を識別することを含むことができる。1つまたは複数の実施形態において、第1および/または第2のメッセージ要素は、シンボル、デジタル写真、顔文字、ビデオ・クリップ、オーディオ・クリップ等を含むことができる。
方法600は、メッセージ要素が一定の時間フレーム内に提供されたかどうかを判定する動作630も含む。特に、動作630は、第1のメッセージ要素および第2のメッセージ要素が閾値時間内に提供されたかどうかを判定することを含むことができる。例えば、1つまたは複数の実施形態において、第1のメッセージ要素および第2のメッセージ要素が閾値時間内に提供されたかどうかを判定することは、第1のメッセージ要素の提供に関連付けられた日時と、第2のメッセージ要素の提供に関連付けられた日時とが、閾値時間内にあるかどうかを判定することを含む。1つまたは複数の実施形態において、方法600は、第1のメッセージ要素および第2のメッセージ要素に関連付けられた提供情報を識別する動作をさらに含むことができ、この提供情報は、第1に関連付けられた情報、第2のユーザに関連付けられた情報、第1のメッセージ要素の提供に関連付けられた日時、および第2のメッセージ要素の提供に関連付けられた日時を含む。
方法600は、第1のメッセージ要素に関連付けられたタイプおよび第2のメッセージ要素に関連付けられたタイプを、人間による介入なしに識別する動作も含むことができる。1つまたは複数の実施形態において、第1のメッセージ要素に関連付けられたタイプ、および第2のメッセージ要素に関連付けられたタイプは、デジタル写真ファイル、デジタル・ビデオ・ファイル、デジタル・オーディオ・ファイル、クリップ・アート・ファイル、または画像ファイルのうちの1つである。例えば、第1のメッセージ要素に関連付けられたタイプ、および第2のメッセージ要素に関連付けられたタイプを識別することは、第1のメッセージ要素および第2のメッセージ要素に関連付けられたメタデータに基づき得る。
付加的に、方法600は、第3のメッセージ要素を生成する動作640を含む。特に、動作640は、判定に基づいて、第1のメッセージ要素と第2のメッセージ要素とを含む第3のメッセージ要素(例えば、メッセージ要素310g)を生成することを含むことができる。例えば、第1のメッセージ要素と第2のメッセージ要素とを含む第3のメッセージ要素を生成することは、第1のメッセージ要素に関連付けられたタイプと第2のメッセージ要素に関連付けられたタイプとに基づいて、テンプレートを求めてテーブル・ルックアップを行うこと、ならびに第1のメッセージ要素および第2のメッセージ要素をテンプレート内に入れることによって、人間による介入なしに、第3のメッセージ要素を生成することを含むことができる。
さらに、方法600は、第1および第2のメッセージ要素を第3のメッセージ要素に置換する動作650を含む。特に、動作650は、通信スレッドにおいて、第1のメッセージ要素および第2のメッセージ要素を第3のメッセージ要素に置換することを含むことができる。例えば、通信スレッドにおいて、第1のメッセージ要素および第2のメッセージ要素を第3のメッセージ要素に置換することは、通信スレッドを再レンダリングして、第1のメッセージ要素に関連付けられたセルと第2のメッセージ要素に関連付けられたセルとを除去すること、ならびに通信スレッドにおいて第3のメッセージ要素を含む新しいセルをレンダリングすることを含むことができる。1つまたは複数の実施形態において、通信スレッドにおいて第3のメッセージ要素を含む新しいセルをレンダリングすることは、人間による介入なしに、新しいセルにおいて第3のメッセージ要素を中央に配置することを含む。付加的に、少なくとも1つの実施形態において、方法600は、人間による介入なしに、第3のメッセージ要素をダウンロードするためのオプションを提示することを含むことができる。
本開示の実施形態では、以下に詳述する通り、たとえば1つまたは複数のプロセッサおよびシステムメモリ等のコンピュータハードウェアを備えた専用または汎用コンピュータを備えるか、または利用するようにしてもよい。また、本開示の発明の範囲内の実施形態には、コンピュータ実行可能な命令および/またはデータ構造を搬送または記憶する物理的なコンピュータ可読媒体および他のコンピュータ可読媒体を含む。とりわけ、本明細書に記載のプロセスのうちの1つまたは複数は、非一時的コンピュータ可読媒体にて具現化され、1つまたは複数のコンピューティング・デバイス(たとえば、本明細書に記載のメディアコンテンツアクセスデバイスのいずれか)により実行可能な命令として、その少なくとも一部が実装されていてもよい。一般的には、プロセッサ(たとえば、マイクロプロセッサ)が非一時的コンピュータ可読媒体(たとえば、メモリ等)から命令を受け取り、これらの命令を実行することによって、本明細書に記載のプロセスのうちの1つまたは複数等、1つまたは複数のプロセスを実行する。
コンピュータ可読媒体としては、汎用または専用コンピュータシステムによりアクセス可能な任意の利用可能な媒体が可能である。コンピュータ実行可能な命令を記憶するコンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体(デバイス)である。コンピュータ実行可能な命令を搬送するコンピュータ可読媒体は、伝送媒体である。このように、非限定的な一例として、本開示の実施形態には、非一時的コンピュータ可読記憶媒体(デバイス)および伝送媒体という少なくとも2つの明確に異なる種類のコンピュータ可読媒体を含み得る。
非一時的コンピュータ可読記憶媒体(デバイス)としては、RAM、ROM、EEPROM、CD−ROM、固体ドライブ(「SSD」)(たとえば、RAMベース)、フラッシュメモリ、相変化メモリ(「PCM」)、他の種類のメモリ、他の光ディスクストレージ、磁気ディスクストレージ等の磁気ストレージデバイス、またはコンピュータ実行可能な命令もしくはデータ構造の形態の所望のプログラムコード手段の記憶に使用可能であるとともに、汎用もしくは専用コンピュータによりアクセス可能なその他任意の媒体が挙げられる。
「ネットワーク」は、コンピュータシステムおよび/またはモジュールおよび/または他の電子機器間で電子データを伝送可能な1つまたは複数のデータリンクとして定義されている。情報がネットワークまたは別の通信接続(有線、無線、または有線もしくは無線の組み合わせ)上でコンピュータに転送または提供される場合、上記コンピュータは、その接続を厳密に伝送媒体と見なす。伝送媒体としては、コンピュータ実行可能な命令またはデータ構造の形態の所望のプログラムコード手段の搬送に使用可能であるとともに、汎用または専用コンピュータによりアクセス可能なネットワークおよび/またはデータリンクが挙げられる。また、上記の組み合わせについても、コンピュータ可読媒体の範囲に含まれるものとする。
さらに、コンピュータシステムのさまざまな構成要素に到達した際に、コンピュータ実行可能な命令またはデータ構造の形態のプログラムコード手段は、伝送媒体から非一時的コンピュータ可読記憶媒体(デバイス)へと自動的に転送可能である(その逆も可能である)。たとえば、ネットワークまたはデータリンク上で受信されたコンピュータ実行可能な命令またはデータ構造は、ネットワークインターフェースモジュール(たとえば、「NIC」)内のRAMにバッファリングした後、最終的には、コンピュータシステムRAMおよび/またはコンピュータシステムにおける低揮発性コンピュータ記憶媒体(デバイス)に転送可能である。したがって、非一時的コンピュータ可読記憶媒体(デバイス)は、伝送媒体も(または、主として)利用するコンピュータシステムの構成要素に含み得ることが了解されるものとする。
コンピュータ実行可能な命令としては、たとえばプロセッサで実行された場合に、特定の機能または機能群を汎用コンピュータ、専用コンピュータ、または専用処理デバイスに実行させる命令およびデータが挙げられる。いくつかの実施形態においては、コンピュータ実行可能な命令が汎用コンピュータ上で実行されることにより、上記汎用コンピュータは、本開示の実施形態の要素を実装した専用コンピュータへと変化する。コンピュータ実行可能な命令は、たとえばバイナリ、アセンブリ言語等の中間フォーマット命令、あるいはソースコードであってもよい。以上、構造的特徴および/または方法論的行為に固有の表現で主題を説明したが、添付の特許請求の範囲に規定の主題は、必ずしも上述の特徴または行為に限定されないことが了解されるものとする。むしろ、上記特徴および行為は、特許請求の範囲を実施する例示的な形態として開示している。
当業者であれば、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メッセージプロセッサ、携帯機器、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品、ネットワークPC、マイクロコンピュータ、メインフレームコンピュータ、携帯電話、PDA,タブレット、ポケベル、ルータ、スイッチ等、さまざまな種類のコンピュータシステム構成のネットワークコンピュータ環境において本開示が実現されるようになっていてもよいことが認識されよう。また、本開示は、ネットワークを通じて(有線データリンク、無線データリンク、または有線および無線データリンクの組み合わせにより)リンクしたローカルメモリストレージデバイスおよび遠隔コンピュータシステムがともにタスクを実行する分散システム環境において実現されるようになっていてもよい。分散システム環境においては、ローカルメモリストレージデバイスおよび遠隔メモリストレージデバイスの両者にプログラムモジュールが配置されていてもよい。
また、本開示の実施形態は、クラウドコンピュータ環境において実装可能である。本記載において、「クラウドコンピューティング」は、設定可能なコンピュータリソースの共有プールに対するオンデマンドネットワークアクセスを可能とするモデルとして定義されている。たとえば、クラウドコンピューティングは、設定可能なコンピュータリソースの共有プールに対するユビキタスかつ便利なオンデマンドアクセスを提供する市場で採用可能である。設定可能なコンピュータリソースの共有プールは、仮想化によって迅速に開設可能であるとともに、わずかな管理労力またはサービス・プロバイダ対話で解放可能であるため、これに応じてスケーリング可能である。
クラウドコンピューティングモデルは、たとえばオンデマンドセルフサービス、ブロードネットワークアクセス、リソースプーリング、ラピッドエラスティシティ、メジャードサービス等のさまざまな特性で構成可能である。また、クラウドコンピューティングモデルは、たとえばサービス型ソフトウェア(「SaaS」)、サービス型プラットフォーム(「PaaS」)、およびサービス型インフラ(「IaaS」)等のさまざまなサービスモデルを提供可能である。また、クラウドコンピューティングモデルは、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド等のさまざまな展開モデルを用いて展開可能である。本明細書および特許請求の範囲において、「クラウドコンピュータ環境」は、クラウドコンピューティングを採用する環境である。
図7は、上述のプロセスのうちの1つまたは複数を実行するように構成できる例示的なコンピューティング・デバイス700のブロック図を示している。データコンピューティング・デバイス700などの1つまたは複数のコンピューティング・デバイスがシステム100を実装することが理解される。図7に示すように、コンピューティング・デバイス700は、通信インフラ712によって通信されるように結合されている、プロセッサ702、メモリ704、ストレージデバイス706、I/Oインターフェース708、および通信インターフェース710を備える。図7には、例示的なコンピューティング・デバイス700を示しているが、図7に示す構成要素は、何ら限定を意図したものではない。他の実施形態においては、付加的または代替的な構成要素を使用するようにしてもよい。さらに、特定の実施形態において、コンピューティング・デバイス700は、図7よりも少ない構成要素を備える。以下、図7に示すコンピューティング・デバイス700の構成要素について、さらに詳しく説明する。
1つまたは複数の実施形態において、プロセッサ702は、コンピュータプログラムを構成する命令等を実行するハードウェアを備えてもよい。非限定的な一例として、プロセッサ702は、命令を実行するため、内部レジスタ、内部キャッシュ、メモリ704、またはストレージデバイス706から命令を取り出す(または、フェッチする)とともに、上記命令を復号化して実行するようにしてもよい。1つまたは複数の実施形態において、プロセッサ702は、データ、命令、またはアドレス用の1つまたは複数の内部キャッシュを備えてもよい。非限定的な一例として、プロセッサ702は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーション・ルックアサイド・バッファ(TLB)を備えてもよい。命令キャッシュ中の命令は、メモリ704またはストレージ706中の命令のコピーであってもよい。
メモリ704は、データ、メタデータ、およびプロセッサが実行するプログラムの記憶に使用してもよい。メモリ704は、ランダムアクセスメモリ(「RAM」)、リードオンリーメモリ(「ROM」)、固体ディスク(「SSD」)、フラッシュ、相変化メモリ(「PCM」)、または他の種類のデータストレージ等、揮発性および不揮発性メモリのうちの1つまたは複数を備えていてもよい。また、メモリ704は、内部メモリであってもよいし、分散メモリであってもよい。
ストレージデバイス706は、データまたは命令を記憶するストレージを備える。非限定的な一例として、ストレージデバイス706は、上述の非一時的記憶媒体を備える。ストレージデバイス706としては、ハードディスクドライブ(HDD)、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、ユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組み合わせが挙げられる。ストレージデバイス706は、必要に応じて、取り外し可能媒体を備えていてもよいし、取り外し可能でない(すなわち、固定)媒体を備えていてもよい。ストレージデバイス706は、コンピューティング・デバイス700の内部であってもよいし、外部であってもよい。1つまたは複数の実施形態において、ストレージデバイス706は、不揮発性の固体メモリである。他の実施形態において、ストレージデバイス706は、リードオンリーメモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムROM、プログラム可能ROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、フラッシュメモリ、またはこれらのうちの2つ以上の組み合わせであってもよい。
I/Oインターフェース708によって、ユーザが、入力を提供し、出力を受け取り、あるいはコンピューティング・デバイス700に対してデータを転送しデータを受け取ることを可能にする。これらのI/Oインターフェース708は、マウス、キーパッドもしくはキーボード、タッチスクリーン、カメラ、光学スキャナ、ネットワーク・インターフェース、モデル、その他既知のI/Oデバイス、またはこのようなI/Oデバイス/インターフェースの組み合わせを含む。I/Oインターフェース708は、出力をユーザに提示する1つまたは複数の機器を備えていてもよく、グラフィックスエンジン、ディスプレイ(たとえば、表示画面)、1つまたは複数の出力ドライバ(たとえば、ディスプレイドライバ)、1つまたは複数の音声スピーカ、および1つまたは複数の音声ドライバが挙げられるが、これらに限定されない。特定の実施形態において、I/Oインターフェース708は、グラフィックデータをディスプレイに提供して、ユーザに提示するように構成されている。グラフィックデータは、特定の実施態様に役立ち得る1つもしくは複数のグラフィカル・ユーザ・インターフェースおよび/またはその他任意のグラフィックコンテンツを代表するものであってもよい。
通信インターフェース710は、ハードウェア、ソフトウェア、または両者を含み得る。いかなる場合でも、通信インターフェース710は、コンピューティング・デバイスと1つもしくは複数の他のコンピューティング・デバイス700またはネットワークとの間の通信(たとえば、パケットベースの通信等)のための1つまたは複数のインターフェースを提供可能である。非限定的な一例として、通信インターフェース710としては、イーサネット(登録商標)等の有線ネットワークと連通するネットワークインターフェースコントローラ(NIC)もしくはネットワークアダプタまたはWi−Fi等の無線ネットワークと連通する無線NIC(WNIC)もしくは無線アダプタが挙げられる。
加えて、または、代替として、通信インターフェース710は、アドホック・ネットワーク、パーソナルエリアネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの1つもしくは複数の部分、またはこれらのうちの2つ以上の組み合わせと通信を行わせる。これらネットワークのうちの1つまたは複数の1つまたは複数の部分は、有線であってもよいし、無線であってもよい。一例として、通信インターフェース710は、無線PAN(WPAN)(たとえば、Bluetooth(登録商標)WPAN等)、Wi−Fiネットワーク、Wi−MAXネットワーク、携帯電話ネットワーク(たとえば、汎欧州デジタル移動電話通信(GSM(登録商標))ネットワーク等)、他の適当な無線ネットワーク、またはこれらの組み合わせと通信を行わせる。
加えて、通信インターフェース710は、通信さまざまな通信プロトコルを促進し得る。使用され得る通信プロトコルの例としては、限定されるものではないが、データ伝送媒体、通信デバイス、伝送制御プロトコル(「TCP」)、インターネット・プロトコル(「IP」)、ファイル転送プロトコル(「FTP」)、Telnet、Hypertext Transfer Protocol(「HTTP」)、Hypertext Transfer Protocol Secure(「HTTPS」)、セッション開始プロトコル(「SIP」)、Simple Object Access Protocol(「SOAP」)、拡張マークアップ言語(「XML」)およびその変種、簡易メール転送プロトコル(「SMTP」)、リアルタイム転送プロトコル(「RTP」)、ユーザ・データグラム・プロトコル(「UDP」)、Global System for Mobile Communications(「GSM」)技術、符号分割多元接続(「CDMA」)技術、時分割多元接続(「TDMA」)技術、ショート・メッセージ・サービス(「SMS」)、マルチメディア・メッセージ・サービス(「MMS」)、無線周波数(「RF」)シグナリング技術、Long Term Evolution(「LTE」)技術、無線通信技術、帯域内シグナリング技術および帯域外シグナリング技術、ならびに他の適切な通信ネットワークおよび技術がある。
通信インフラ712は、コンピューティング・デバイス700の構成要素を互いに結合するハードウェア、ソフトウェア、または両者を備える。非限定的な一例として、通信インフラ712は、アクセラレイテッドグラフィックスポート(AGP)等のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)相互接続、業界標準アーキテクチャ(ISA)バス、インフィニバンド相互接続、ロウピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺機器相互接続(PCI)バス、PCIエクスプレス(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス標準協会ローカル(VLB)バス、その他適当なバス、またはこれらの組み合わせを含んでいてもよい。
上述の通り、システム100は、ソーシャル・ネットワーキング・システムを含み得る。ソーシャル・ネットワーキング・システムによって、そのユーザ(人または組織など)が、システムに対しておよび互いに対話をすることが可能になる。ソーシャル・ネットワーキング・システムは、ユーザからの入力により、ユーザに関連付けられているユーザプロフィールを作成して上記ソーシャル・ネットワーキング・システムに記憶するようにしてもよい。ユーザプロフィールには、人口統計学的情報、通信チャンネル情報、およびユーザの個人的関心に関する情報を含んでいてもよい。また、ソーシャル・ネットワーキング・システムは、ユーザからの入力により、上記ユーザのソーシャル・ネットワーキング・システムの他ユーザとの関係のレコードを作成して記憶するとともに、ユーザ間の社会的対話を行わせるサービス(たとえば、投稿、写真共有、イベント統合、メッセージング、ゲーム、または広告)を提供するようにしてもよい。
ソーシャル・ネットワーキング・システムは、複数のノードと、ノード同士をつなげている複数のエッジとを備えるソーシャルグラフ内のユーザおよびユーザ間の関係の記録を記憶し得る。ノードは、複数のユーザ・ノードと、複数のコンセプト・ノードとを含み得る。ソーシャルグラフのユーザ・ノードは、ソーシャル・ネットワーキング・システムのユーザに対応し得る。ユーザは、個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、もしくはサードパーティ・アプリケーション)、またはグループ(例えば、個人もしくはエンティティ)であってもよい。ユーザに対応するユーザ・ノードは、ユーザによって提供される情報と、ソーシャル・ネットワーキング・システムを含む様々なシステムによって集められた情報とを含み得る。
例えば、ユーザは、ユーザ・ノードに含まれるべき、ユーザ自身の名前、プロフィール写真、居住市、連絡先情報、生年月日、性別、配偶者の有無、家族構成、職業、学歴、好み、興味、および他の人口統計学的情報を提供してもよい。ソーシャルグラフの各ユーザ・ノードは、対応するウェブページ(典型的には、プロフィール・ページとして知られている)を有してもよい。ユーザ名を含む要求に応答して、ソーシャル・ネットワーキング・システムは、そのユーザ名に対応するユーザ・ノードにアクセスし、そのユーザ名、プロフィール写真、およびユーザに関連付けられた他の情報を含むプロフィール・ページを構築することができる。第1のユーザのプロフィール・ページは、第1のユーザによる1つまたは複数のプライバシー設定、および第1のユーザと第2のユーザとの間の関係に基づいて、第1のユーザの情報の一部または全部が第2のユーザに対して表示され得る。
コンセプト・ノードは、ソーシャル・ネットワーキング・システムのコンセプトに対応し得る。例えば、コンセプトは、現実世界のエンティティ、例えば、映画、歌、スポーツ・チーム、有名人、グループ、レストラン、または位置もしくはロケーションを表現することができる。コンセプトに対応するコンセプト・ノードの管理ユーザは、(例えば、オンライン・フォームに記入することにより)コンセプトの情報を提供することによってコンセプト・ノードを作成し、または更新して、ソーシャル・ネットワーキング・システムに、その情報をコンセプト・ノードに関連付けさせ得る。限定ではなく、例として、コンセプトに関連付けられた情報は、名前もしくはタイトル、1つもしくは複数の画像(例えば、書籍のカバーページの画像)、ウェブサイト(例えば、URLアドレス)または連絡先情報(例えば、電話番号、電子メール・アドレス)を含むことができる。ソーシャルグラフの各コンセプト・ノードは、ウェブページに対応し得る。例えば、名前を含む要求に応答して、ソーシャル・ネットワーキング・システムは、その名前に対応するコンセプト・ノードにアクセスし、そのコンセプトに関連付けられた名前および他の情報を含むウェブページを構築することができる。
1対のノード間のエッジは、その対のノード間の関係を表現し得る。例えば、2つのユーザ・ノード間のエッジは、2人のユーザ間の友情を表現することができる。別の例として、ソーシャル・ネットワーキング・システムは、ウェブページ内に1つまたは複数の選択可能なオプションまたは選択可能な要素(例えば、「いいね」、「チェックイン」)を組み込んだ、コンセプト・ノード(例えば、レストラン、有名人)のウェブ・ページ(または、構造化文書)を構築してもよい。ユーザは、ユーザのクライアント・デバイスによってホストされているウェブ・ブラウザを使用してそのページにアクセスし、選択可能なオプションまたは選択可能な要素を選択して、クライアント装置に、ユーザとコンセプトとの間の関係を示す(例えば、ユーザがレストランにチェックインする、またはユーザが有名人に対して「いいね」を表明する)、ユーザのユーザ・ノードとコンセプトのコンセプト・ノードとの間のエッジを作成するための要求を、ソーシャル・ネットワーキング・システムへ送信させ得る。
例として、ユーザは、ユーザ自身の居住市を提供して(または変化させて)、ソーシャル・ネットワーキング・システムに、ユーザに対応するユーザ・ノードと、ユーザによってユーザ自身の居住市として公言された都市に対応するコンセプト・ノードとの間のエッジを作成させてもよい。また、任意の2つのノード間の分離度合いは、1つのノードから別のノードまでソーシャルグラフを辿るのに必要なホップの最小数として定義される。2つのノード間の分離度合いは、ソーシャルグラフ内の2つのノードによって表現されるユーザ間またはコンセプト間の関連性の基準とみなされ得る。例えば、1つのエッジによって直接つながれている(すなわち、第1級のノード(first-degree node)である)ユーザ・ノードを有する2人のユーザは、「つながりのあるユーザ」または「友達」として説明され得る。同様に、別のユーザ・ノードを通じてのみつながっている(すなわち、第2級のノードである)ユーザ・ノードを有する2人のユーザは、「友達の友達」として説明され得る。
ソーシャル・ネットワーキング・システムは、様々なアプリケーション、例えば、写真共有、オン・ライン・カレンダーおよびイベント、ゲーム、インスタント・メッセージング、ならびに広告をサポートし得る。例えば、ソーシャル・ネットワーキング・システムは、メディア共有能力も含んでもよい。また、ソーシャル・ネットワーキング・システムは、ユーザがユーザのプロフィール・ページに対して、またはアルバムにおいて、写真および他のマルチメディア・コンテンツ・アイテムを投稿すること(典型的には「ウォール投稿」または「タイムライン投稿」として知られている)を可能にしてもよく、プロフィール・ページとアルバムとの双方は、ユーザにより設定されたプライバシー設定に依存して、ソーシャル・ネットワーキング・システムの他のユーザにとってアクセス可能であってもよい。ソーシャル・ネットワーキング・システムは、ユーザがイベントを設定することも可能にし得る。例えば、第1のユーザは、イベントの日時、イベントのロケーション、およびイベントへ招待された他のユーザを含む属性を用いて、イベントを設定してもよい。招待されたユーザは、イベントへの招待を受信し、(招待を受諾すること、または招待を断ることなどによって)応答し得る。さらに、ソーシャル・ネットワーキング・システムは、ユーザが個人のカレンダーを維持することを可能にし得る。イベントと同様に、カレンダー・エントリーは、他のユーザの時間、日付、ロケーションおよびアイデンティティを含んでもよい。
図8は、ソーシャル・ネットワーキング・システムの例となるネットワーク環境800を例示する。ネットワーク環境800は、ネットワーク804によって互いに接続された、クライアントシステム806と、ソーシャル・ネットワーキング・システム802と、サードパーティ・システム808とを含む。図8は、クライアントシステム806、ソーシャル・ネットワーキング・システム802、サードパーティ・システム808、およびネットワーク804の特定の構成を例示しているが、この開示は、クライアントシステム806、ソーシャル・ネットワーキング・システム802、サードパーティ・システム808、およびネットワーク804の任意の適切な構成を企図したものである。限定としてではなく、一例として、クライアントシステム806、ソーシャル・ネットワーキング・システム802、およびサードパーティ・システム808のうちの2つ以上が、ネットワーク804をバイパスして、直接的に互いに接続されてもよい。別の例として、クライアントシステム806、ソーシャル・ネットワーキング・システム802、およびサードパーティ・システム808のうちの2つ以上が、全体的にまたは部分的に互いと物理的または論理的に共同設置されてもよい。さらに、図8は、特定の数のクライアントシステム806、ソーシャル・ネットワーキング・システム802、サードパーティ・システム808、およびネットワーク804を例示しているが、この開示は、任意の適切な数のクライアントシステム806、ソーシャル・ネットワーキング・システム802、サードパーティ・システム808、およびネットワーク804を企図したものである。限定としてではなく、一例として、ネットワーク環境800は、複数のクライアントシステム806と、ソーシャル・ネットワーキング・システム802と、サードパーティ・システム808と、ネットワーク804とを含んでよい。
本開示は、任意の適切なネットワーク804を企図したものである。限定としてではなく、一例として、ネットワーク804の1つまたは複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、無線WAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つ以上の組み合わせを含んでよい。ネットワーク804は、1つまたは複数のネットワーク804を含み得る。
リンクは、クライアントシステム806、ソーシャル・ネットワーキング・システム802、およびサードパーティ・システム808を通信ネットワーク804に対して、または互いに対して接続し得る。本開示は、任意の適切なリンクを企図したものである。特定の実施形態では、1つまたは複数のリンクとしては、1つまたは複数のワイヤライン・リンク(たとえば、デジタル加入者線(DSL)またはData Over Cable Service Interface Specification(DOCSIS)など)、無線リンク(たとえば、Wi−FiまたはWorldwide Interoperability for Microwave Access(WiMAX)など)、または光リンク(たとえば、同期型光ネットワーク(SONET)または同期デジタル・ハイアラーキ(SDH)など)がある。特定の実施形態では、1つまたは複数のリンクは各々、アドホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク、または2つ以上のそのようなリンクの組み合わせを含む。リンクは、必ずしもネットワーク環境800全体を通じて同じである必要はない。1つまたは複数の第1のリンクは、1つまたは複数の点において、1つまたは複数の第2のリンクと異なってよい。
特定の実施形態において、クライアントシステム806は、ハードウェア、ソフトウェア、または組み込みロジック・コンポーネントもしくは2つ以上のそのようなコンポーネントの組み合わせを含み、クライアントシステム806によって実装され、またはサポートされている適当な機能性を実行することが可能な電子デバイスであり得る。限定ではなく、例として、クライアントシステム806は、コンピュータシステム、例えば、デスクトップ・コンピュータ、ノート型コンピュータもしくはラップトップ・コンピュータ、ネットブック、タブレット・コンピュータ、eブック・リーダ、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、携帯電話、スマートフォン、他の適切な電子デバイス、または、これらの任意の適切な組み合わせなどを含んでもよい。本開示は、任意の適切なクライアントシステム806を想定している。クライアントシステム806は、クライアントシステム806のネットワークユーザがネットワーク804にアクセスすることを可能にし得る。クライアントシステム806は、そのユーザが他のクライアントシステム806の他のユーザと通信することを可能にしてもよい。
特定の実施形態では、クライアントシステム806は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROME、またはMOZILLA FIREFOXなどのウェブ・ブラウザ932を含んでよく、1つまたは複数のアドオン、プラグイン、またはツールバーもしくはYAHOOツールバーなどの他の拡張機能を有してよい。クライアントシステム806におけるユーザは、ユニフォーム・リソース・ロケータ(URL)またはウェブ・ブラウザを特定のサーバ(サーバ、またはサードパーティ・システム808に関連付けられているサーバなど)に対して宛てる他のアドレスを入力してよく、ウェブ・ブラウザは、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに対して通信し得る。サーバは、HTTP要求を受け入れ、HTTP要求に応答して1つまたは複数のハイパーテキスト・マークアップ言語(HTML)ファイルをクライアントシステム806に対して通信し得る。クライアントシステム806は、ユーザに対する提示のために、サーバからのHTMLファイルに基づいてウェブページをレンダリングし得る。本開示は、任意の適切なウェブページ・ファイルを企図したものである。限定としてではなく、一例として、ウェブページは、特定のニーズに従って、HTMLファイル、拡張可能ハイパーテキスト・マークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルからレンダリングし得る。そのようなページはまた、たとえば、限定されるものではないが、JAVASCRIPT(登録商標)、JAVA(登録商標)、MICROSOFT SILVERLIGHTで記述されたスクリプトなどのスクリプト、AJAX(非同期JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトの組み合わせなどを実行し得る。本明細書では、ウェブページに対する参照は、適切な場合、1つまたは複数の対応するウェブページ・ファイル(ブラウザがウェブページをレンダリングするために使用し得る)を包含し、逆も同様である。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、オンライン・ソーシャル・ネットワークをホストする、ネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャル・ネットワーキング・システム802は、たとえばユーザプロファイル・データ、概念プロファイル・データ、ソーシャルグラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の適切なデータなどのソーシャルネットワーキング・データを生成、記憶、受信、および送信し得る。ソーシャル・ネットワーキング・システム802は、直接的に、またはネットワーク804を介して、のどちらかで、ネットワーク環境800の他の構成要素によってアクセスされ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、1つまたは複数のサーバを含み得る。各サーバは、単体サーバであってもよいし、複数のコンピュータまたは複数のデータセンタにまたがる分散サーバであってもよい。サーバは、たとえば限定されるものではないが、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、交換サーバ、データベース・サーバ、プロキシ・サーバ、本明細書で説明される機能もしくはプロセスを実行するのに適した別のサーバ、またはそれらの任意の組み合わせなどの、さまざまなタイプであってよい。特定の実施形態では、各サーバは、ハードウェア、ソフトウェア、または埋め込まれた論理構成要素、またはサーバによって実施もしくはサポートされる適切な機能を実行するための2つ以上そのような構成要素の組み合わせを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、1つまたは複数のデータ・ストアを含み得る。データ・ストアは、さまざまなタイプの情報を記憶するために使用され得る。特定の実施形態では、データ・ストア内に記憶される情報は、具体的なデータ構造に従って編成され得る。特定の実施形態では、各データ・ストアは、リレーショナル・データベース、カラムナ・データベース、相関データベース、または他の適切なデータベースであってよい。本開示は特定のタイプのデータベースを説明または例示しているが、本開示は、任意の適切なタイプのデータベースを企図するものである。特定の実施形態は、クライアントシステム806、ソーシャル・ネットワーキング・システム802、またはサードパーティ・システム808がデータ・ストア内に記憶された情報を管理する、取り出す、修正する、追加する、または削除することを可能にするインターフェースを提供し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、1つまたは複数のデータ・ストア内に1つまたは複数のソーシャルグラフを記憶し得る。特定の実施形態では、ソーシャルグラフは、複数のユーザ・ノード(各々が特定のユーザに対応する)または複数の概念ノード(各々が特定の概念に対応する)を含み得る複数のノードと、ノードを接続する複数のエッジを含み得る。ソーシャル・ネットワーキング・システム802は、オンライン・ソーシャル・ネットワークのユーザに、他のユーザと通信および対話できることを提供し得る。特定の実施形態では、ユーザは、ソーシャル・ネットワーキング・システム802を介してオンライン・ソーシャル・ネットワークに加わり、次いで、ユーザが接続されたいソーシャル・ネットワーキング・システム802の何人かの他のユーザに対して接続(たとえば、関係)を追加し得る。本明細書では、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム802を介して接続、関連付け、または関係を形成した、ソーシャル・ネットワーキング・システム802の他の任意のユーザを指し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、ソーシャル・ネットワーキング・システム802によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに対してアクションをとることをユーザに提供し得る。限定としてではなく、一例として、アイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム802のユーザが属し得るグループもしくはソーシャル・ネットワーク、ユーザが興味を抱き得るイベントもしくはカレンダー記載事項、ユーザが使用し得るコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売し得る取引、ユーザが実行し得る広告との対話、または他の適切なアイテムもしくはオブジェクトを含み得る。ユーザは、ソーシャル・ネットワーキング・システム802内で、またはサードパーティ・システム808の外部システムによって表されることが可能なものと対話し得、サードパーティ・システム808は、ソーシャル・ネットワーキング・システム802とは別個であり、ネットワーク804を介してソーシャル・ネットワーキング・システム802に結合される。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、さまざまなエンティティをリンクすることが可能であり得る。限定としてではなく、一例として、ソーシャル・ネットワーキング・システム802は、ユーザが、互いと対話し、ならびにサードパーティ・システム808もしくは他のエンティティからコンテンツを受信する、またはユーザが、アプリケーション・プログラミング・インターフェース(API)もしくは他の通信チャネルを通して、これらのエンティティと対話できることを可能にし得る。
特定の実施形態では、サードパーティ・システム808は、1つもしくは複数のタイプのサーバ、1つもしくは複数のデータ・ストア、限定されるものではないがAPIを含む1つもしくは複数のインターフェース、1つもしくは複数のウェブ・サービス、1つもしくは複数のコンテンツ・ソース、1つもしくは複数のネットワーク、または、たとえばサーバが通信し得る他の任意の適切な構成要素であり得る。サードパーティ・システム808は、ソーシャル・ネットワーキング・システム802を運用するエンティティからの異なるエンティティによって運用され得る。しかしながら、特定の実施形態では、ソーシャル・ネットワーキング・システム802およびサードパーティ・システム808は、ソーシャル・ネットワーキング・システム802またはサードパーティ・システム808のユーザにソーシャルネットワーキング・サービスを提供するために互いに運用し得る。この意味で、ソーシャル・ネットワーキング・システム802は、サードパーティ・システム808などの他のシステムがインターネット全体にわたってソーシャルネットワーキング・サービスおよび機能をユーザに対して提供するために使用し得るプラットフォームすなわちバックボーンを提供し得る。
特定の実施形態では、サードパーティ・システム808は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含み得る。サードパーティ・コンテンツ・オブジェクト・プロバイダは、クライアントシステム806に対して通信され得るコンテンツ・オブジェクトの1つまたは複数のソースを含み得る。限定としてではなく、一例として、コンテンツ・オブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の適切な情報などの、ユーザの興味を引く物事またはアクティビティに関する情報を含み得る。限定としてではなく、別の例として、コンテンツ・オブジェクトは、クーポン、割引チケット、商品券、または他の適切な報償となるオブジェクトなどの、報償となるコンテンツ・オブジェクトを含み得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、ソーシャル・ネットワーキング・システム802とのユーザの対話を向上させ得る、ユーザにより生成されたコンテンツ・オブジェクトも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム802に対して追加、アップロード、送信、または「投稿する」ものを含み得る。限定としてではなく、一例として、ユーザが、クライアントシステム806からソーシャル・ネットワーキング・システム802に対して投稿を通信する。投稿としては、ステータス更新もしくは他のテキスト・データ、ロケーション情報、フォト、映像、リンク、音楽、または他の類似のデータもしくはメディアなどのデータがあり得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を介して、サードパーティによってソーシャル・ネットワーキング・システム802に対して追加され得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、さまざまなサーバと、サブシステムと、プログラムと、モジュールと、ログと、データ・ストアとを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、ウェブ・サーバ、アクション・ロガー、API要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類器、通知コントローラ、アクション・ログ、サードパーティコンテンツ・オブジェクト公開(exposure)ログ、推測モジュール、許可/プライバシー・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインターフェース・モジュール、ユーザプロファイル・ストア、接続ストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの1つまたは複数を含んでよい。ソーシャル・ネットワーキング・システム802は、ネットワーク・インターフェース、セキュリティ機構、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワーク運用コンソール、他の適切な構成要素、またはそれらの任意の適切な組み合わせなどの、適切な構成要素も含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、ユーザ・プロファイルを記憶するための1つまたは複数のユーザプロファイル・ストアを含んでよい。ユーザ・プロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、社会情報、または職歴、学歴、趣味もしくは好み、興味、親密度、もしくはロケーションなどの他のタイプの記述情報を含み得る。興味情報は、1つまたは複数のカテゴリに関係する興味を含み得る。カテゴリは、汎用的であってもよいし、具体的であってもよい。限定としてではなく、一例として、ユーザが、靴のブランドについての記事に対して「いいね」を表明する場合、そのカテゴリはブランドであってもよいし、「靴」または「衣類」という汎用的なカテゴリであってもよい。接続ストアは、ユーザについての接続情報を記憶するために使用され得る。接続情報は、類似もしくは共通の職歴、グループ会員資格、趣味、学歴を有する、または、いかなる形であれ関係する、もしくは共通属性を共有するユーザを示してよい。接続情報は、異なるユーザとコンテンツ(内部と外部の両方)との間の、ユーザにより定義された接続も含み得る。ウェブ・サーバは、ネットワーク804を介して1つもしくは複数のクライアントシステム806または1つもしくは複数のサードパーティ・システム808に対してソーシャル・ネットワーキング・システム802をリンクするために使用され得る。ウェブ・サーバは、ソーシャル・ネットワーキング・システム802と1つまたは複数のクライアントシステム806との間でメッセージを受信およびルーティングするためのメール・サーバまたは他のメッセージング機能を含んでよい。API要求サーバは、サードパーティ・システム808が、1つまたは複数のAPIを呼び出すことによって、ソーシャル・ネットワーキング・システム802からの情報にアクセスすることを可能にし得る。アクション・ロガーは、ソーシャル・ネットワーキング・システム802上またはそれ以外の場所でのユーザのアクションについてウェブ・サーバから通信を受信するために使用され得る。アクション・ログとともに、サードパーティコンテンツ・オブジェクトに対するユーザ公開のサードパーティコンテンツオブジェクト・ログが維持され得る。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアントシステム806に対して提供し得る。情報は、通知としてクライアントシステム806に対してプッシュされてもよいし、情報は、クライアントシステム806から受信された要求に応答してクライアントシステム806からプルされてもよい。許可サーバは、ソーシャル・ネットワーキング・システム802のユーザの1つまたは複数のプライバシー設定を強制するために使用され得る。ユーザのプライバシー設定は、ユーザに関連付けられている特定の情報がどのように共有可能であるかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、アクションをソーシャル・ネットワーキング・システム802によってログさせること、または他のシステム(たとえば、サードパーティ・システム808)とともに共有させることに加わる、または加わらない(opt in to or opt out of)ことを可能にする。サードパーティコンテンツオブジェクト・ストアは、サードパーティ・システム808などのサードパーティから受信されたコンテンツ・オブジェクトを記憶するために使用され得る。ロケーション・ストアは、ユーザに関連付けられているクライアントシステム806から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、社会情報、現在の時間、ロケーション情報、または他の適切な情報を組み合わせて、通知の形で関係のある広告をユーザに対して提供し得る。
図9は、例となるソーシャルグラフ900を例示する。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、1つまたは複数のデータ・ストア内に1つまたは複数のソーシャルグラフ900を記憶し得る。特定の実施形態では、ソーシャルグラフ900は、複数のユーザ・ノード902または複数の概念ノード904を含み得る複数のノードと、ノードを接続する複数のエッジ906とを含み得る。図9に例示される例となるソーシャルグラフ900は、教説的な目的で、2次元の視覚的なマップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム802、クライアントシステム806、またはサードパーティ・システム808は、適切なアプリケーションのためのソーシャルグラフ900および関係するソーシャルグラフ情報にアクセスし得る。ソーシャルグラフ900のノードおよびエッジは、たとえば、データ・ストア(ソーシャルグラフ・データベースなど)内に、データ・オブジェクトとして記憶され得る。そのようなデータ・ストアは、ソーシャルグラフ900のノードまたはエッジの1つまたは複数の検索可能またはクエリ可能なインデックスを含み得る。
特定の実施形態では、ユーザ・ノード902は、ソーシャル・ネットワーキング・システム802のユーザに対応し得る。限定としてではなく、一例として、ユーザは、ソーシャル・ネットワーキング・システム802と、またはその上で対話または通信する、個人(人間ユーザ)、エンティティ(たとえば、企業、会社、もしくはサードパーティ・アプリケーション)、または(たとえば、個人もしくはエンティティの)グループであってよい。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム802に口座を登録するとき、ソーシャル・ネットワーキング・システム802は、ユーザに対応するユーザ・ノード902を作成し、1つまたは複数のデータ・ストア内にユーザ・ノード902を記憶し得る。本明細書で説明されるユーザおよびユーザ・ノード902は、適切な場合には、登録されたユーザと、登録されたユーザに関連付けられているユーザ・ノード902を指し得る。加えて、または代替として、本明細書で説明されるユーザおよびユーザ・ノード902は、適切な場合には、ソーシャル・ネットワーキング・システム802に登録されていないユーザを指し得る。特定の実施形態では、ユーザ・ノード902は、ユーザによって提供される情報、またはソーシャル・ネットワーキング・システム802を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、ユーザは、自分の名前、プロファイル・ピクチャ、連絡先情報、誕生日、性別、配偶者の有無、家族構成、職業、学歴、好み、興味、または他の人口統計学的情報を提供し得る。特定の実施形態では、ユーザ・ノード902は、ユーザに関連する情報に対応する1つまたは複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、ユーザ・ノード902は、1つ以上のウェブページに対応することができる。
特定の実施形態では、概念ノード904は概念に対応し得る。限定としてではなく、一例として、概念は、場所(たとえば、映画館、レストラン、ランドマーク、もしくは都市など)、ウェブサイト(たとえば、ソーシャルネットワーク・システム802に関連付けられているウェブサイト、もしくはウェブアプリケーション・サーバに関連付けられているサードパーティ・ウェブサイトなど)、エンティティ(たとえば、人物、会社、グループ、スポーツ・チーム、もしくは有名人など)、ソーシャル・ネットワーキング・システム802の中もしくはウェブアプリケーション・サーバなどの外部サーバ上に配置され得るリソース(たとえば、オーディオ・ファイル、映像ファイル、デジタル・フォト、テキスト・ファイル、構造化文書、もしくはアプリケーションなど)、物的財産もしくは知的財産(たとえば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著書など)、ゲーム、アクティビティ、アイデア、もしくは理論、別の適切な概念、または2つ以上のそのような概念に対応し得る。概念ノード904は、ユーザによって提供される概念の情報、またはソーシャル・ネットワーキング・システム802を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、概念の情報としては、名前もしくはタイトル、1つもしくは複数の画像(たとえば、本のカバー・ページの画像)、ロケーション(たとえば、住所もしくは地理的ロケーション)、ウェブサイト(URLに関連付けられ得る)、連絡先情報(たとえば、電話番号もしくは電子メール・アドレス)、他の適切な概念情報、またはそのような情報の任意の適切な組み合わせがあり得る。特定の実施形態では、概念ノード904は、概念ノード904に関連付けられている情報に対応する1つまたは複数のデータ・オブジェクトに関連付けられ得る。特定の実施形態では、概念ノード904は、1つまたは複数のウェブページに対応し得る。
特定の実施形態では、ソーシャルグラフ900内のノードは、ウェブページ(「プロファイル・ページ」と呼ばれることがある)を表してもよいし、これによって表されてもよい。プロファイル・ページは、ソーシャル・ネットワーキング・システム802によってホストされてもよいし、これに対してアクセス可能であってもよい。プロファイル・ページはまた、サードパーティ・サーバ808に関連付けられているサードパーティ・ウェブサイト上にホストされ得る。限定としてではなく、一例として、特定の外部のウェブページに対応するプロファイル・ページは特定の外部ウェブページであってよく、プロファイル・ページは特定の概念ノード904に対応し得る。プロファイル・ページは、他のユーザのすべてまたは選択されたサブセットによって閲覧することができてよい。限定としてではなく、一例として、ユーザ・ノード902は、対応するユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応するユーザプロファイル・ページを有し得る。限定としてではなく、別の例として、概念ノード904は、特に概念ノード904に対応する概念に関係して1つまたは複数のユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応する概念プロファイル・ページを有し得る。
特定の実施形態では、概念ノード904は、サードパーティ・システム808によってホストされるサードパーティ・ウェブページまたはリソースを表し得る。サードパーティ・ウェブページまたはリソースは、要素の中でもとりわけ、アクションまたはアクティビティを表すコンテンツ、選択可能なアイコンもしくは他のアイコン、または他の対話可能なオブジェクト(たとえば、JavaScriptコード、AJAXコード、またはPHPコードで実装され得る)を含んでよい。限定としてではなく、一例として、サードパーティ・ウェブページは、「いいね」、「チェック・イン」、「食べる」、「推奨」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含み得る。サードパーティ・ウェブページを閲覧するユーザは、アイコンのうちの1つ(たとえば、「食べる」)を選択し、クライアントシステム806に、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム802に対して送信させることによって、アクションを実行し得る。メッセージに応答して、ソーシャル・ネットワーキング・システム802は、ユーザに対応するユーザ・ノード902とサードパーティ・ウェブページまたはリソースに対応する概念ノード904との間にエッジ(たとえば、「食べる」エッジ)を作成し、1つまたは複数のデータ・ストア内にエッジ906を記憶し得る。
特定の実施形態では、ソーシャルグラフ900内のノードのペアは、1つまたは複数のエッジ906によって互いに接続され得る。ノードのペアを接続するエッジ906は、ノードのペアの間の関係を表し得る。特定の実施形態では、エッジ906は、ノードのペアの間の関係に対応する1つまたは複数のデータ・オブジェクトまたは属性を含み得るまたはこれを表し得る。限定としてではなく、一例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを示し得る。この標識に応答して、ソーシャル・ネットワーキング・システム802は、第2のユーザに対して「友達要求」を送信し得る。第2のユーザが「友達要求」を確かめる場合、ソーシャル・ネットワーキング・システム802は、ソーシャルグラフ900内の第1のユーザのユーザ・ノード902を第2のユーザのユーザ・ノード902に対して接続するエッジ906を作成し、エッジ906をソーシャルグラフ情報としてデータ・ストアのうちの1つまたは複数に記憶し得る。図9の例では、ソーシャルグラフ900は、ユーザ「A」とユーザ「B」のユーザ・ノード902間の友達関係を示すエッジ906と、ユーザ「C」とユーザ「B」のユーザ・ノード902間の友達関係を示すエッジとを含む。本開示は、特定のユーザ・ノード902を接続する、特定の属性を有する特定のエッジ906を説明または例示しているが、本開示は、ユーザ・ノード902を接続する、任意の適切な属性を有する任意の適切なエッジ906を企図するものである。限定としてではなく、一例として、エッジ906は、友達関係、家族関係、ビジネスすなわち雇用関係、ファン関係、フォロワー関係、ビジター関係、購読者関係、上下関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のそのような関係を表し得る。さらに、本開示は一般に、ノードを、接続されていると説明しているが、本開示は、ユーザまたは概念も、接続されていると説明する。本明細書では、接続されているユーザまたは概念への参照は、適切な場合には、ソーシャルグラフ900内で1つまたは複数のエッジ906によって接続されているそれらのユーザまたは概念に対応するノードに及ぶ。
特定の実施形態では、ユーザ・ノード90と概念ノード904との間のエッジ906は、概念ノード904に関連付けられている概念のためにユーザ・ノード902に関連付けられているユーザによって実行される特定のアクションまたはアクティビティを表し得る。限定としてではなく、一例として、図9に例示されるように、ユーザは、概念に対して「いいね」を表明し、「通学した」、「プレイした」、「聞いた」、「料理した」、「働いた」、または概念を「見た」とする。その各々は、エッジ・タイプまたはサブタイプに対応し得る。概念ノード904に対応する概念プロファイル・ページは、たとえば、選択可能な「チェック・イン」アイコン(たとえば、クリック可能な「チェック・イン」アイコンなど)または選択可能な「お気に入りに追加」アイコンを含んでよい。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム802は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェック・イン」エッジを作成してよい。限定としてではなく、別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンライン音楽アプリケーションであるSPOTIFY)を使用して特定の歌(「ランブル・オン」)を聞くことがある。この場合、ソーシャル・ネットワーキング・システム802は、ユーザがその歌を聞き、そのアプリケーションを使用したことを示すため、にユーザに対応するユーザ・ノード902と歌およびアプリケーションに対応する概念ノード904との間に「聞いた」エッジ906および「使用した」エッジ(図9に例示される)を作成し得る。さらに、ソーシャル・ネットワーキング・システム802は、特定の歌が特定のアプリケーションによってプレイ(再生)されたことを示すために、歌およびアプリケーションに対応する概念ノード904間に「プレイした」エッジ906(図9に例示される)を作成し得る。この場合、「プレイした」エッジ906は、外部オーディオ・ファイル(歌「イマジン」)に対して外部アプリケーション(SPOTIFY)によって実行されるアクションに対応する。本開示は、ユーザ・ノード902および概念ノード904を接続する、特定の属性を有する特定のエッジ906を説明しているが、本開示は、ユーザ・ノード902および概念ノード904を接続する、任意の適切な属性を有する任意の適切なエッジ906を企図するものである。そのうえ、本開示は、単一の関係を表す、ユーザ・ノード902と概念ノード904との間のエッジを説明しているが、本開示は、1つまたは複数の関係を表す、ユーザ・ノード902と概念ノード904との間のエッジを企図する。限定としてではなく、一例として、エッジ906は、ユーザが特定の概念に対して「いいね」を表明したことと、特定の概念において使用したことの両方を表し得る。代替的に、別のエッジ906は、ユーザ・ノード902と概念ノード904との間の各タイプの関係(または単一の関係の倍数)を表し得る(図9では、ユーザ「E」のユーザ・ノード902と「SPOTIFY」の概念ノード904との間に例示される)。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、ソーシャルグラフ900内のユーザ・ノード902と概念ノード904との間にエッジ906を作成し得る。限定としてではなく、一例として、(たとえば、ユーザのクライアントシステム806によってホストされるウェブ・ブラウザまたは特殊目的アプリケーションを使用することなどによって)概念プロファイル・ページを閲覧するユーザは、自分は概念ノード904によって表される概念に対して「いいね」を表明したことを、「いいね」アイコンをクリックまたは選択することによって示し得、それは、ユーザは概念プロファイル・ページに関連付けられている概念に対して「いいね」を表明したことを示すメッセージをソーシャル・ネットワーキング・システム802に対して送信することをユーザのクライアントシステム806に行わせ得る。メッセージに応答して、ソーシャル・ネットワーキング・システム802は、ユーザと概念ノード904との間の「いいね」エッジ906によって例示されるように、ユーザに関連付けられているユーザ・ノード902と概念ノード904との間にエッジ906を作成し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、1つまたは複数のデータ・ストアにエッジ906を記憶し得る。特定の実施形態では、エッジ906は、特定のユーザ・アクションに応答して、ソーシャル・ネットワーキング・システム802によって自動的に形成され得る。限定としてではなく、一例として、第1のユーザがピクチャをアップロードする、映画を見る、または歌を聞く場合、エッジ906は、第1のユーザに対応するユーザ・ノード902とそれらの概念に対応する概念ノード904との間に形成され得る。本開示は、特定の様式で特定のエッジ906を形成することを説明しているが、本開示は、任意の適切な様式で任意の適切なエッジ906を形成することを企図するものである。
特定の実施形態では、広告は、テキスト(HTMLリンクであってよい)、1つもしくは複数の画像(HTMLリンクであってよい)、1つもしくは複数の映像、オーディオ、1つもしくは複数のADOBE FLASHファイル、これらの適切な組み合わせ、または1つもしくは複数のウェブページ上で、1つもしくは複数の電子メール内で、もしくはユーザによって要求された検索結果に関係して、提示される任意の適切なデジタル・フォーマットの他の任意の適切な広告であってよい。加えて、または代替として、広告は、1つまたは複数のスポンサー付きストーリー(たとえば、ソーシャル・ネットワーキング・システム802上のニュースフィードまたはティッカー・アイテム)である。スポンサー付きストーリーは、たとえば、ソーシャル・アクションを、ユーザのプロファイル・ページまたは他のページの所定のエリア内に提示させる、広告主に関連付けられている追加の情報とともに提示させる、他のユーザのニュースフィードもしくはティッカー内で衝突させるもしくは別のやり方で目立たせる、または別のやり方でプロモーションさせることによって広告主がプロモーションする、ユーザによるソーシャル・アクション(ページに対して「いいね」を表明する、ページ上の投稿に対して「いいね」を表明するもしくはコメントする、ページに関連付けられているイベントの出欠を返事する、ページ上で投稿された質問に関して投稿する、ある場所にチェック・インする、アプリケーションを使用するもしくはゲームをする、またはウェブサイトを「リンク」もしくは共有するなど)であってよい。広告主は、ソーシャル・アクションをプロモーションさせるために支払うことがある。限定としてではなく、一例として、広告は検索結果ページの検索結果の間に含まれてよく、そこでは、スポンサー付きコンテンツは、スポンサー付きでないコンテンツよりもプロモーションされる。
特定の実施形態では、広告は、ソーシャルネットワーキングシステム・ウェブページ、サードパーティ・ウェブページ、または他のページ内での表示のために要求され得る。広告は、ページの上部のバナー・エリア内、ページの側部のカラム内、ページのGUI内、ポップアップ・ウィンドウ内、ドロップダウン・メニュー内、ページの入力フィールド内、ページのコンテンツの上部の上、またはページに関する他の場所などの、ページの専用部分内に表示され得る。加えて、または代替として、広告はアプリケーション内に表示され得る。広告は、専用ページ内に表示され、ユーザに、ユーザがページにアクセスするまたはアプリケーションを利用する前に広告と対話するまたはこれを見ることを要求し得る。ユーザは、たとえば、ウェブ・ブラウザを通して広告を閲覧してよい。
ユーザは、任意の適切な様式で広告と対話してよい。ユーザは、広告をクリックしてもよいし、または別のやり方で広告を選択してもよい。広告を選択することによって、ユーザは、広告に関連付けられているページ(または、ユーザによって使用されているブラウザもしくは他のアプリケーション)に対して向けられ得る。広告に関連付けられているページでは、ユーザは、広告に関連付けられている製品もしくはサービスを購入する、広告に関連付けられている情報を受信する、または広告に関連付けられているニュースレターを購読するなどの、追加のアクションをとり得る。オーディオまたは映像を有する広告は、(「プレイ・ボタン」などの)広告の構成要素を選択することによってプレイされ得る。代替的に、広告を選択することによって、ソーシャル・ネットワーキング・システム802は、ユーザの特定のアクションを実行または修正し得る。
広告は、ユーザが対話し得るソーシャル・ネットワーキング・システム機能も含み得る。限定としてではなく、一例として、広告は、ユーザが、支持に関連付けられているアイコンまたはリンクを選択することによって広告に対して「いいね」を表明するまたは別のやり方で広告を支持することを可能にし得る。限定としてではなく、別の例として、広告は、ユーザが、広告主に関連するコンテンツを(たとえば、クエリを実行することによって)検索することを可能にし得る。同様に、ユーザは、別のユーザと(たとえば、ソーシャル・ネットワーキング・システム802を通して)広告を共有し得、または広告に関連付けられているイベントの出欠を(たとえば、ソーシャル・ネットワーキング・システム802を通して)返事し得る。加えて、または代替として、広告は、ユーザに対して向けられたソーシャルネットワーキングシステム・コンテキストを含み得る。限定としてではなく、一例として、広告は、広告の主題に関連付けられているアクションをとった、ソーシャル・ネットワーキング・システム802内のユーザの友達についての情報を表示し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、互いに対するさまざまなソーシャルグラフ・エンティティのソーシャルグラフ親密度(本明細書では、「親密度」と呼ばれることがある)を決定し得る。親密度は、ユーザ、概念、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、またはそれらの任意の適切な組み合わせなどの、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さまたは興味のレベルを表し得る。親密度は、サードパーティ・システム808または他の適切なシステムに関連付けられているオブジェクトに対しても決定され得る。各ユーザ、主題、またはコンテンツのタイプのためのソーシャルグラフ・エンティティの全体的な親密度が確立され得る。全体的な親密度は、ソーシャルグラフ・エンティティに関連付けられているアクションまたは関係の継続モニタリングに基づいて変化し得る。本開示は、特定の様式で特定の親密度を決定することを説明しているが、本開示は、任意の適切な様式で任意の適切な親密度を決定することを企図している。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、親密度係数(本明細書では、「係数」と呼ばれることがある)を使用してソーシャルグラフ親密度を測定または定量化し得る。係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さを表すまたは定量化し得る。係数は、アクションにおけるユーザの興味に基づいてユーザが特定のアクションを実行する予測確率を測定する確率または機能も表し得る。このようにして、ユーザの将来のアクションは、ユーザの前のアクションに基づいて予測され得、係数は、少なくとも部分的にユーザのアクションの履歴計算され得る。係数は、任意の数のアクションを予測するために使用され得、アクションは、オンライン・ソーシャル・ネットワーク内であってもよいし、オンライン・ソーシャル・ネットワークの外部であってもよい。限定としてではなく、一例として、これらのアクションは、メッセージを送信すること、コンテンツを投稿すること、もしくはコンテンツに対してコメントすることなどのさまざまなタイプの通信、プロファイル・ページ、メディア、もしくは他の適切なコンテンツにアクセスもしくは閲覧するなどのさまざまなタイプの観察アクション、同じグループ内にある、同じ写真でタグ付けされている、同じロケーションにチェック・インした、もしくは同じイベントに出席したなどの2つ以上のソーシャルグラフ・エンティティについてのさまざまなタイプの一致情報、または他の適切なアクションを含み得る。本開示は、特定の様式で親密度を測定することを説明しているが、本開示は、任意の適切な様式で親密度を測定することを企図している。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、さまざまな因子を使用して係数を計算し得る。これらの因子としては、たとえば、ユーザ・アクション、オブジェクト間の関係のタイプ、ロケーション情報、他の適切な因子、またはそれらの任意の組み合わせがあり得る。特定の実施形態では、異なる因子は、係数を計算するとき、異なるように重み付けされ得る。各因子の重みは静的であってもよいし、重みは、たとえば、ユーザ、関係のタイプ、アクションのタイプ、ユーザのロケーションなどに応じて変化してもよい。因子のレーティングは、ユーザの全体的係数を決定するための重みに応じて組み合わされ得る。限定としてではなく、一例として、特定のユーザ・アクションは、レーティングと重みの両方に対して割り当てられてよく、特定のユーザ・アクションに関連付けられている関係は、レーティングおよび相関重みが割り当てられる(たとえば、そのため、重みは合計100%になる)。特定のオブジェクトに対するユーザの係数を計算するために、ユーザのアクションに対して割り当てられたレーティングは、たとえば、全体的係数の60%を備えることがあり、ユーザとオブジェクトとの間の関係は全体的係数の40%を備えることがある。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、たとえば、情報がアクセスされてからの時間、減衰因子、アクセスの頻度、情報との関係もしくは情報がアクセスされたオブジェクトとの関係、オブジェクトに対して接続されたソーシャルグラフ・エンティティとの関係、ユーザ・アクションの短期もしくは長期の平均、ユーザ・フィードバック、他の適切な変数、またはそれらの任意の組み合わせなどの、係数を計算するために使用されるさまざまな因子に対する重みを決定するとき、さまざまな変数を考慮し得る。限定としてではなく、一例として、係数は、係数を計算するとき、アクションが最近であればあるほど関連度が大きくなるように、特定のアクションによって提供される信号の強さを時間とともに減衰させる減衰因子を含み得る。レーティングおよび重みは、係数が基づくアクションの継続追跡に基づいて連続的に更新され得る。任意のタイプのプロセスまたはアルゴリズムが、各因子および因子に対して割り当てられた重みに対するレーティングを割り当てる、組み合わせる、平均化するなどを行うために用いられてよい。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、履歴アクションおよび過去のユーザ応答、またはさまざまなオプションに対してさらし、応答を測定することによってユーザから得られた(farmed)データに関して訓練された機械学習アルゴリズムを使用して係数を決定し得る。本開示は、特定の様式で係数を計算することを説明しているが、本開示は、任意の適切な様式で係数を計算することを企図している。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、ユーザのアクションに基づいて係数を計算し得る。ソーシャル・ネットワーキング・システム802は、オンライン・ソーシャル・ネットワーク上で、サードパーティ・システム808上で、他の適切なシステム上で、またはそれらの任意の組み合わせで、そのようなアクションを監視してよい。任意の適切なタイプのユーザ・アクションが追跡または監視されてよい。典型的なユーザ・アクションとしては、プロファイル・ページを閲覧すること、コンテンツを作成または投稿すること、コンテンツと対話すること、グループに加わること、イベントにおける出席をリストし確かめること、ロケーションにチェック・インすること、特定のページに対して「いいね」を表明すること、ページを作成すること、およびソーシャル・アクションを促進する他のタスクを実行することがある。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、特定のタイプのコンテンツとのユーザのアクションに基づいて係数を計算し得る。コンテンツは、オンライン・ソーシャル・ネットワーク、サードパーティ・システム808、または別の適切なシステムに関連付けられ得る。コンテンツとしては、ユーザ、プロファイル・ページ、投稿、ニュース・ストーリー、ヘッドライン、インスタント・メッセージ、チャット・ルームの会話、電子メール、広告、ピクチャ、映像、音楽、他の適切なオブジェクト、またはそれらの任意の組み合わせがある。ソーシャル・ネットワーキング・システム802は、ユーザのアクションを分析して、アクションのうちの1つまたは複数が主題、コンテンツ、他のユーザなどに対して親密度を示すか否かを決定し得る。限定としてではなく、一例として、ユーザが、「コーヒー」またはその変種に関係したコンテンツの投稿を頻繁に行う場合、ソーシャル・ネットワーキング・システム802は、ユーザが「コーヒー」という概念に関して高い係数を有することを決定し得る。特定のアクションまたは特定のタイプのアクションは、計算された全体的係数に影響し得る、他のアクションよりも高い重みおよび/またはレーティングが割り当てられ得る。限定としてではなく、一例として、第1のユーザが第2のユーザに電子メールを出す場合、アクションに対する重みまたはレーティングは、第1のユーザが第2のユーザのためのユーザプロファイル・ページを閲覧するだけの場合よりも高くなり得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、特定のオブジェクト間の関係のタイプに基づいて係数を計算し得る。ソーシャルグラフ900を参照すると、ソーシャル・ネットワーキング・システム802は、係数を計算するとき、特定のユーザ・ノード902と概念ノード904を接続するエッジ906の数および/またはタイプを分析し得る。限定としてではなく、一例として、配偶者タイプのエッジ(2人のユーザが結婚していることを表す)によって接続されるユーザ・ノード902は、友達タイプのエッジによって接続されるユーザ・ノード902よりも高い係数が割り当てられ得る。言い換えれば、特定のユーザのためのアクションおよび関係に対して割り当てられた重みに応じて、全体的親密度は、ユーザの友達についてのコンテンツに対するよりもユーザの配偶者についてのコンテンツに対して高くなるように決定され得る。特定の実施形態では、ユーザが別のオブジェクトと有する関係は、そのオブジェクトに関する係数を計算することに関するユーザのアクションの重みおよび/またはレーティングに影響し得る。限定としてではなく、一例として、コンテンツとタグ付けタイプの関係を有することは、コンテンツと「いいね」タイプの関係を有するよりも高い重みおよび/またはレーティングを割り当てられ得るので、ユーザが第1のフォトでタグ付けされるが、第2のフォトに対しては「いいね」を表明するにすぎない場合、ソーシャル・ネットワーキング・システム802は、ユーザが、第2のフォトよりも第1のフォトに関して高い係数を有することを決定し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、1つまたは複数の第2のユーザが特定のオブジェクトと有する関係に基づいて、第1のユーザに関する係数を計算し得る。言い換えれば、他のユーザがオブジェクトと有する接続および係数は、第1のユーザのオブジェクトに関する係数に影響し得る。限定としてではなく、一例として、第1のユーザが、1つもしくは複数の第2のユーザに対して接続される、またはそれらに関して高い係数を有し、それらの第2のユーザが特定のオブジェクトに接続されるまたはそれに関して高い係数を有する場合、ソーシャル・ネットワーキング・システム802は、第1のユーザも、特定のオブジェクトに関する比較的高い係数も有するべきであることを決定し得る。特定の実施形態では、係数は、特定のオブジェクト間の隔たり次数に基づいてよい。より低い係数は、第1のユーザが、ソーシャルグラフ900内で第1のユーザに対して間接的に接続されたユーザのコンテンツ・オブジェクトにおいて興味を共有する可能性の減少を表し得る。限定としてではなく、一例として、ソーシャルグラフ900内でより近い(すなわち、分離次数のより低い)ソーシャルグラフ・エンティティは、ソーシャルグラフ900内でさらに離れたエンティティよりも高い係数を有し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、ロケーション情報に基づいて係数を計算し得る。互いに対して地理的により近いオブジェクトは、より遠いオブジェクトよりも互いに対してより関係がある、またはより興味があると考えられ得る。特定の実施形態では、特定のオブジェクトのためのユーザの係数は、ユーザに関連付けられている現在のロケーション(またはユーザのクライアントシステム806のロケーション)に対するオブジェクトのロケーションの近接性に基づき得る。第1のユーザは、第1のユーザに対してより近い他のユーザまたは概念に、より興味があり得る。限定としてではなく、一例として、ユーザが空港から1.609km(1マイル)、ガソリン・スタンドから3.219km(2マイル)のところにいる場合、ソーシャル・ネットワーキング・システム802は、ユーザに対する空港の近接性に基づいて、ユーザがガソリン・スタンドよりも空港に関して高い係数を有することを決定し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、係数情報に基づいて、ユーザに関する特定のアクションを実行し得る。係数は、ユーザのアクションへの興味に基づいて、ユーザが特定のアクションを実行するか否かを予測するために使用され得る。係数は、広告、検索結果、ニュース・ストーリー、メディア、メッセージ、通知、または他の適切なオブジェクトなどの任意のタイプのオブジェクトをユーザに対して生成または提示するとき、使用され得る。係数はまた、必要に応じて、そのようなオブジェクトをランキングし、順序付けるために利用され得る。このようにして、ソーシャル・ネットワーキング・システム802は、ユーザの興味および現在の環境に関連のある情報を提供し、興味のあるそのような情報を見つける可能性を増加させ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、係数情報に基づいてコンテンツを生成し得る。コンテンツ・オブジェクトは、ユーザに固有の係数に基づいて提供または選択され得る。限定としてではなく、一例として、ユーザが、ユーザがメディア・オブジェクトに関して高い全体的係数を有するメディアが提示される場合、係数は、ユーザのためのメディアを生成するために使用され得る。限定としてではなく、別の例として、ユーザが、ユーザが広告付きオブジェクトに関して高い全体的係数を有する広告が提示される場合、係数は、ユーザのための広告を生成するために使用され得る。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、係数情報に基づいて検索結果を生成し得る。特定のユーザのための検索結果は、クエリを発行したユーザに対する検索結果に関連付けられている係数に基づいてスコア付けまたはランキングされ得る。限定としてではなく、一例として、より高い係数を有するオブジェクトに対応する検索結果は、検索結果ページ上で、より低い係数を有するオブジェクトに対応する結果よりも高くランキングされ得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム802は、特定のシステムまたはプロセスからの係数の要求に応答して係数を計算し得る。ユーザが所与の状況でとり得る(または、その対象であり得る)可能性があるアクションを予測するために、任意のプロセスは、ユーザに関する計算された係数を要求し得る。要求は、係数を計算するために使用されるさまざまな因子に使用する重みのセットも含み得る。この要求は、オンライン・ソーシャル・ネットワーク上で実行されているプロセスから来ることもあるし、サードパーティ・システム808から(たとえば、APIまたは他の通信チャネルを介して)来ることもあるし、別の適切なシステムから来ることもある。要求に応答して、ソーシャル・ネットワーキング・システム802は、係数を計算し得る(または、係数情報が以前に計算され、記憶されている場合、その係数情報にアクセスし得る)。特定の実施形態では、ソーシャル・ネットワーキング・システム802は、特定のプロセスに関して親密度を測定し得る。さまざまなプロセス(オンライン・ソーシャル・ネットワークに対して内部と外部の両方にある)は、特定のオブジェクトまたはオブジェクトのセットに関する係数を要求し得る。ソーシャル・ネットワーキング・システム802は、親密度の尺度を要求した特定のプロセスに対して関連のある親密度の尺度を提供し得る。このようにして、各プロセスは、プロセスが親密度の尺度を使用する異なるコンテキストに合わせられた親密度の尺度を受信する。
ソーシャルグラフ親密度および親密度係数に関して、特定の実施形態は、その各々が本願明細書に援用される、2006年8月11日に出願された米国特許出願第11/503093号、2010年12月22日に出願された米国特許出願第12/977027号、2010年12月23日に出願された米国特許出願第12/978265号、および2012年10月01日に出願された米国特許出願第13/632869号に開示されている1つまたは複数のシステム、構成要素、要素、機能、方法、動作、またはステップを利用し得る。
特定の実施形態では、オンライン・ソーシャル・ネットワークのコンテンツ・オブジェクトのうちの1つまたは複数がプライバシー設定に関連付けられ得る。オブジェクトのためのプライバシー設定(または「アクセス設定」)は、たとえば、オブジェクトに関連して、許可サーバ上のインデックス内に、別の適切な様式で、または、それらの任意の組み合わせなどの任意の適切な様式で記憶されてよい。オブジェクトのプライバシー設定は、オブジェクト(またはオブジェクトに関連付けられている特定の情報)が、オンライン・ソーシャル・ネットワークを使用してどのようにアクセス(たとえば、閲覧または共有)され得るかを規定し得る。オブジェクトのためのプライバシー設定は、特定のユーザがそのオブジェクトにアクセスすることを可能にし、オブジェクトは、そのユーザに対して「閲覧可能」と説明され得る。限定としてではなく、一例として、オンライン・ソーシャル・ネットワークのユーザは、ユーザプロファイル・ページのためのプライバシー設定が、ユーザプロファイル・ページ上の職歴情報にアクセスし得るユーザのセットを識別し、したがって、他のユーザを情報にアクセスさせないことを規定し得る。特定の実施形態では、プライバシー設定は、オブジェクトに関連付けられている一定の情報にアクセスすることが可能にされるべきではないユーザの「遮断リスト」を規定し得る。言い換えれば、遮断リストは、オブジェクトが見えない1つまたは複数のユーザまたはエンティティを規定し得る。限定としてではなく、一例として、ユーザは、ユーザに関連付けられているフォト・アルバムにアクセスし得ないユーザのセットを規定し、したがって、それらのユーザをフォト・アルバムにアクセスさせ得ない(がまた、おそらく、ユーザのセットに含まれない一定のユーザはフォト・アルバムにアクセスすることを可能にする)。特定の実施形態では、プライバシー設定は、特定のソーシャルグラフ要素に関連付けられ得る。ノードまたはエッジなどのソーシャルグラフ要素のプライバシー設定は、ソーシャルグラフ要素、ソーシャルグラフ要素に関連付けられている情報、またはソーシャルグラフ要素に関連付けられているコンテンツ・オブジェクトがどのようにしてオンライン・ソーシャル・ネットワークを使用してアクセス可能であるかを規定し得る。限定としてではなく、一例として、特定のフォトに対応する特定の概念ノード904は、そのフォトは、フォトでタグ付けされたユーザおよびユーザの友達によってのみアクセスされ得ることを規定するプライバシー設定を有し得る。特定の実施形態では、プライバシー設定は、ユーザが、アクションをソーシャル・ネットワーキング・システム802によってログさせること、または他のシステム(たとえば、サードパーティ・システム808)と共有させることに加わる、または加わらないことを可能にする。特定の実施形態では、オブジェクトに関連付けられているプライバシー設定は、任意の適切な粒度の許容されたアクセスまたはアクセスの否定を規定し得る。限定としてではなく、一例として、アクセスまたはアクセスの否定は、特定のユーザ(たとえば、自分のみ、ルームメイト、および上司)、特定の次数以内の隔たりに含まれるユーザ(たとえば、友達、または友達の友達)、ユーザ・グループ(たとえば、ゲーム・クラブ、家族)、ユーザ・ネットワーク(たとえば、特定の雇用者の従業員、学生、または特定の大学の卒業生)、すべてのユーザ(「パブリック」)、ユーザなし(「プライベート」)、サードパーティ・システム808のユーザ、特定のアプリケーション(たとえば、サードパーティ・アプリケーション、外部ウェブサイト)、他の適切なユーザもしくはエンティティ、またはそれらの任意の組み合わせに対して規定され得る。本開示は、特定の様式で特定のプライバシー設定を使用することを説明しているが、本開示は、任意の適切な様式で任意の適切なプライバシー設定を使用することを企図している。
特定の実施形態では、1つまたは複数のサーバは、プライバシー設定を強制するための許可/プライバシー・サーバであってよい。データ・ストア内に記憶された特定のオブジェクトに関するユーザ(または他のエンティティ)からの要求に応答して、ソーシャル・ネットワーキング・システム802は、オブジェクトのためのデータ・ストアに対して要求を送信し得る。要求は、要求に関連付けられているユーザを識別し得、許可サーバが、オブジェクトに関連付けられているプライバシー設定に基づいて、ユーザがオブジェクトにアクセスすることを許可されていることを決定した場合、ユーザ(またはユーザのクライアントシステム806)のみに対して送信され得る。要求元ユーザが、オブジェクトにアクセスすることが許可されていない場合、許可サーバは、要求されたオブジェクトがデータ・ストアから取り出されるのを防止し得る、または、要求されたオブジェクトがユーザに対して送信されるのを防止し得る。検索クエリ・コンテキストでは、クエリ元ユーザが、オブジェクトにアクセスすることが許可されている場合、そのオブジェクトは、検索結果としてのみ生成され得る。言い換えれば、オブジェクトは、クエリ元ユーザに見える可視性を有さなければならない。オブジェクトが、ユーザに見えない可視性を有する場合、オブジェクトは検索結果から除外され得る。本開示は、特定の様式でプライバシー設定を強制することを説明しているが、本開示は、任意の適切な様式でプライバシー設定を強制することを企図したものである。
上記明細は、特定の例示的な実施形態を参照して記載されている。種々実施形態および本開示の様相は、本明細書に記載の詳細を参照して記述され、添付の図面は、これら種々の実施形態を示している。上記説明および図面は、本発明の一例に過ぎず、本発明を制限するものと解釈されるべきではない。多くの具体的詳細の記述によって、本発明の種々の実施形態の十分な理解が得られる。
追加または代替の実施形態は、その主旨または本質的特性から逸脱することなく、他の特定の形態で具現化されるようになっていてもよい。上記実施形態は、あらゆる点において一例に過ぎず、何ら限定的なものではないと解釈されるべきである。したがって、本開示の範囲は、上記説明ではなく、添付の特許請求の範囲によって指定される。特許請求の範囲と同等の意味および範囲に含まれるすべての変更は、上記請求の範囲に包含されるものとする。