(57)【特許請求の範囲】
【請求項１】
方法であって、
第１のメタデータに関連付けられ且つ通信スレッドにおいて第１のユーザによって提供された第１のメッセージ要素を識別する工程と、
第２のメタデータに関連付けられ且つ該通信スレッドにおいて第２のユーザによって提供された第２のメッセージ要素を識別する工程と、
１つまたは複数のプロセッサによって、該第１のメッセージ要素および該第２のメッセージ要素が閾値時間内に提供されたと判定する工程と、
該第１のメッセージ要素および該第２のメッセージ要素が該閾値時間内に提供され且つ前記第１のメタデータおよび前記第２のメタデータに基づいているという判定に応答して、該第１のメッセージ要素および該第２のメッセージ要素に対応する第３のメッセージ要素を識別する工程と、
該通信スレッドから、該第１のメッセージ要素および該第２のメッセージ要素を除去し、前記第１のメッセージ要素および第２のメッセージ要素の代わりに、前記第３のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程と、
所定の期間後に、前記通信スレッドから、前記第３のメッセージ要素を除去し、前記第３のメッセージ要素の代わりに、前記第１のメッセージ要素および第２のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程と、を備える方法。
【請求項２】
前記第１のメッセージ要素および前記第２のメッセージ要素に対応する第３のメッセージ要素を識別する工程は、
ルックアップ・テーブルにアクセスし、該ルックアップ・テーブルから、前記第１のメッセージ要素と前記第２のメッセージ要素との組み合わせが前記第３のメッセージ要素を示すと識別する工程を含む、請求項１に記載の方法。
【請求項３】
前記通信スレッドから、前記第１のメッセージ要素および前記第２のメッセージ要素を除去し、前記第１のメッセージ要素および第２のメッセージ要素の代わりに、前記第３のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程は、
前記通信スレッドから、前記第１のメッセージ要素を含む第１のセルを除去する工程と、
前記通信スレッドから、前記第２のメッセージ要素を含む第２のセルを除去する工程と、
前記通信スレッドにおいて前記第３のメッセージ要素を含む新しいセルを提供する工程と、を含む、請求項１に記載の方法。
【請求項４】
前記通信スレッドにおいて前記第３のメッセージ要素を含む前記新しいセルを提供する工程は、
前記通信スレッドにおいて、過去に前記第１のセルおよび前記第２のセルによって占められていた位置に前記新しいセルを配置する工程を含む、請求項３に記載の方法。
【請求項５】
前記通信スレッドから、前記第１のメッセージ要素および前記第２のメッセージ要素を除去し、前記第３のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程は、
前記通信スレッドにおいて前記新しいセル配置した後に前記通信スレッドを再レンダリングして、前記第１のメッセージ要素および前記第２のメッセージ要素を除去し、前記第３のメッセージ要素をレンダリングする工程を含む、請求項４に記載の方法。
【請求項６】
前記所定の期間後に、前記通信スレッドから、前記第３のメッセージ要素を除去し、前記第３のメッセージ要素の代わりに、前記第１のメッセージ要素および第２のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程は、
前記通信スレッドから、前記第３のメッセージ要素を含む前記新しいセルを除去する工程と、
前記通信スレッドにおいて、前記第１のメッセージ要素を含む前記第１のセルを提供する工程と、
前記通信スレッドにおいて、前記第２のメッセージ要素を含む前記第２のセルを提供する工程と、
前記通信スレッドを再レンダリングして、前記第３のメッセージ要素を除去し、前記第１のメッセージ要素および前記第２のメッセージ要素をレンダリングする工程と、を含む、請求項５に記載の方法。
【請求項７】
前記第３のメッセージ要素に関連付けられた第３のメタデータにアクセスして、前記所定の期間を識別する工程をさらに備える請求項６に記載の方法。
【請求項８】
前記第１のメッセージ要素は、第１のステッカーを含み、
前記第２のメッセージ要素は、第２のステッカーを含み、
前記第３のメッセージ要素は、第３のステッカーを含む、請求項１に記載の方法。
【請求項９】
前記第１のステッカーは、第１のイラストレーションを含み、
前記第２のステッカーは、第２のイラストレーションを含み、
前記第３のステッカーは、該第１のイラストレーションと該第２のイラストレーションとを含むアニメーションを含む、請求項８に記載の方法。
【請求項１０】
前記第１のメッセージ要素は、第１の画像を含み、
前記第２のメッセージ要素は、第２の画像を含み、
前記第３のメッセージ要素は、該第１の画像と該第２の画像とを含むコラージュを含む、請求項１に記載の方法。
【請求項１１】
前記第１のメッセージ要素および前記第２のメッセージ要素が前記閾値時間内に提供されたと判定する工程は、
前記第１のメッセージ要素に関連付けられた前記第１のメタデータにアクセスして、前記第１のメッセージ要素の提供時刻を識別する工程と、
前記第２のメッセージ要素に関連付けられた前記第２のメタデータにアクセスして、前記第２のメッセージ要素の提供時刻を識別する工程と、
前記第１のメッセージ要素の提供時刻と前記第２のメッセージ要素の提供時刻との間の差を前記閾値時間と比較する工程と、を含む、請求項１に記載の方法。
【請求項１２】
モバイル・デバイスであって、
少なくとも１つのプロセッサと、
命令を記憶した少なくとも１つの非一時的なコンピュータ読取可能な記憶媒体と、を備え、
該命令は、該少なくとも１つのプロセッサによって実行されると、該モバイル・デバイスに、
第１のメタデータに関連付けられ且つ通信スレッドにおいて第１のユーザによって提供された第１のメッセージ要素を識別する工程と、
第２のメタデータに関連付けられ且つ該通信スレッドにおいて第２のユーザによって提供された第２のメッセージ要素を識別する工程と、
該第１のメッセージ要素および該第２のメッセージ要素が閾値時間内に提供されたと判定する工程と、
該第１のメッセージ要素および該第２のメッセージ要素が該閾値時間内に提供され且つ前記第１のメタデータおよび前記第２のメタデータに基づいているという判定に応答して、該第１のメッセージ要素および該第２のメッセージ要素に対応する第３のメッセージ要素を識別する工程と、
該通信スレッドから、該第１のメッセージ要素および該第２のメッセージ要素を除去し、前記第１のメッセージ要素および第２のメッセージ要素の代わりに、前記第３のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程と、
所定の期間後に、前記通信スレッドから、前記第３のメッセージ要素を除去し、前記第３のメッセージ要素の代わりに、前記第１のメッセージ要素および第２のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程と、を実行させる、モバイル・デバイス。
【請求項１３】
前記第１のメッセージ要素は、第１のイラストレーションを含み、
前記第２のメッセージ要素は、第２のイラストレーションを含み、
前記第３のメッセージ要素は、アニメーションを含む、請求項１２に記載のモバイル・デバイス。
【請求項１４】
前記少なくとも１つのプロセッサによって実行されると、前記モバイル・デバイスに、前記通信スレッドに関連付けられたメッセージング・アプリケーションが開かれた際に、
前記通信スレッドの少なくとも一部を構文解析して、前記通信スレッドに含まれている任意のメッセージ要素を識別する工程と、
前記閾値時間内に送信された、メッセージ要素の対応する対を識別する工程と、
前記通信スレッドから、前記閾値時間内に送信された、前記メッセージ要素の対応する対を除去し、前記メッセージ要素の対応する対と同じ位置で前記メッセージ要素の対応する対を対応する拡張メッセージ要素に置換する工程と、
前記通信スレッドに含まれている残りのメッセージ要素とともに、前記対応する拡張メッセージ要素をレンダリングする工程と、を実行させる命令をさらに備える請求項１２に記載のモバイル・デバイス。
【請求項１５】
前記少なくとも１つのプロセッサによって実行されると、前記モバイル・デバイスに、
前記第１のメッセージ要素に関連付けられた前記第１のメタデータにアクセスして、前記第１のメッセージ要素の提供時刻を識別する工程と、
前記第２のメッセージ要素に関連付けられた前記第２のメタデータにアクセスして、前記第２のメッセージ要素の提供時刻を識別する工程と、
前記第１のメッセージ要素の提供時刻と前記第２のメッセージ要素の提供時刻との間の差を前記閾値時間と比較する工程と、を実行させる命令をさらに備える請求項１２に記載のモバイル・デバイス。
【請求項１６】
前記モバイル・デバイスに、前記所定の期間後に、前記通信スレッドから、前記第３のメッセージ要素を除去し、前記第３のメッセージ要素の代わりに、前記第１のメッセージ要素および前記第２のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程を実行させる命令は、
前記通信スレッドから、前記第１のメッセージ要素を含む第１のセルを除去する工程と、
前記通信スレッドから、前記第２のメッセージ要素を含む第２のセルを除去する工程と、
前記通信スレッドにおいて前記第３のメッセージ要素を含む新しいセルを提供する工程と、
前記通信スレッドにおいて前記新しいセルが提供された後に、前記通信スレッドを再レンダリングして、前記第１のメッセージ要素および前記第２のメッセージ要素を除去し、前記第３のメッセージ要素をレンダリングする工程と、をさらに実行させる、請求項１２に記載のモバイル・デバイス。
【請求項１７】
前記モバイル・デバイスに、前記通信スレッドにおいて前記第３のメッセージ要素を含む前記新しいセルを提供する工程を実行させる命令は、
前記モバイル・デバイスに、前記第１のセルと前記第２のセルとを組み合わせたサイズに対応するように、前記新しいセルのサイズをさらに設定させる、請求項１６に記載のモバイル・デバイス。
【請求項１８】
前記少なくとも１つのプロセッサによって実行されると、前記モバイル・デバイスに、
前記第２のユーザに関連付けられたクライアント・モバイル・デバイスへ前記第１のメッセージ要素を送信するための命令を前記モバイル・デバイスを介して受け取った際に、前記通信スレッドにおいて前記第１のメッセージ要素をレンダリングする工程と、
前記閾値時間内に、前記第２のメッセージ要素が前記第２のユーザから送信されたことを示す、前記クライアント・モバイル・デバイスから送信されたメッセージを受信する工程と、
前記通信スレッドにおいて前記第２のメッセージ要素をレンダリングする工程と、
前記通信スレッドが、前記第１のメッセージ要素および前記第２のメッセージ要素によって以前に占められていた位置に前記第３のメッセージ要素を含むように、前記通信スレッドから前記第１のメッセージ要素および前記第２のメッセージ要素が除去された後に、前記通信スレッドを再レンダリングする工程と、を実行させる命令をさらに備える、請求項１２に記載のモバイル・デバイス。
【請求項１９】
命令を記憶した非一時的なコンピュータ読取可能な媒体であって、該命令は、少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに、
第１のメタデータに関連付けられ且つ通信スレッドにおいて第１のユーザによって提供された第１のメッセージ要素を識別する工程と、
第２のメタデータに関連付けられ且つ該通信スレッドにおいて第２のユーザによって提供された第２のメッセージ要素を識別する工程と、
該第１のメッセージ要素および該第２のメッセージ要素が閾値時間内に提供されたと判定する工程と、
該第１のメッセージ要素および該第２のメッセージ要素が該閾値時間内に提供され且つ前記第１のメタデータおよび前記第２のメタデータに基づいているという判定に応答して、該第１のメッセージ要素および該第２のメッセージ要素に対応する第３のメッセージ要素を識別する工程と、
該通信スレッドから、該第１のメッセージ要素および該第２のメッセージ要素を除去し、前記第１のメッセージ要素および第２のメッセージ要素の代わりに、前記第３のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程と、
所定の期間後に、前記通信スレッドから、前記第３のメッセージ要素を除去し、前記第３のメッセージ要素の代わりに、前記第１のメッセージ要素および第２のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程と、を実行させる、非一時的なコンピュータ読取可能な媒体。
【請求項２０】
少なくとも１つのプロセッサによって実行されると、該少なくとも１つのプロセッサに、
前記通信スレッドにおいて第４のメッセージ要素を識別する工程と、
該第４のメッセージ要素、前記第２のメッセージ要素、および前記第１のメッセージ要素が第２の閾値時間内に提供されたと判定する工程と、
該第４のメッセージ要素、前記第２のメッセージ要素、および前記第１のメッセージ要素が第２の閾値時間内に提供されたという判定に応答して、前記第１のメッセージ要素、前記第２のメッセージ要素、および該第４のメッセージ要素に対応する第５のメッセージ要素を識別する工程と、
前記通信スレッドから、前記第１のメッセージ要素、前記第２のメッセージ要素、および前記第４のメッセージ要素を除去し、前記第１のメッセージ要素、前記第２のメッセージ要素、および前記第４のメッセージ要素の代わりに、第５のメッセージ要素を含むように前記通信スレッドを再レンダリングする工程と、を実行させる命令をさらに備える、請求項１９に記載の非一時的なコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の１つまたは複数の実施形態は、一般に、電子通信に関する。より詳細には、本開示の１つまたは複数の実施形態は、電子通信におけるインテリジェントな拡張メッセージ要素に関する。
【背景技術】
【０００２】
コンピューティング・デバイス（例えば、コンピュータ、タブレット、およびスマートフォン）は、人々が互いにつながり、通信するための多くの手法を提供する。例えば、コンピューティング・デバイスは、電子メッセージを送信し、受信するための様々な方法を提供する電子通信アプリケーションを実行することができる。従来の電子通信アプリケーションは、一般に、ユーザが他のユーザとテキスト・メッセージング、インスタント・メッセージング、ソーシャル・ネットワーク投稿、および他の形態の電子通信を介して通信することを可能にする。また、電子通信は、多種多様なコンテンツ、例えば、テキスト、画像、ビデオ、および／または他のデータなどを含んでもよい。概して、電子通信は、人々が互いにつながり、通信する、普及した手法となった。
【０００３】
人々が電子通信を使用して通信することができる手法の幅広さ、ならびに電子デバイスの便利さおよびモビリティに起因して、ユーザは、多数の電子メッセージの受信および送信に日常的に直面することが多い。電子メッセージを送信し、受信する効率を増加させるために、多くの従来の電子通信アプリケーションは、ユーザが顔文字、ステッカー、画像等を通信のショートカット形態として電子メッセージ内に含めることを可能にする。従来のテキストを使用して、顔文字によって提供される考えを伝えるメッセージを入力することと比較して、電子通信に顔文字を含めるためには、より少ないユーザ入力（例えば、より少ないタイピング）が必要とされ得るので、顔文字、ステッカー、画像等は、通信のショートカット形態を表現することができる。したがって、電子メッセージに顔文字、ステッカー、画像等を含めることは、ユーザがいくつかの単語または文さえタイプする必要を低減することを可能にし得る。
【０００４】
顔文字が普及している理由は、ユーザがテキストを使用して伝えるのが難しい感情および情緒を顔文字が伝えることを可能にするからである。顔文字、ステッカー等の使用は、非言語的な合図の通信をより良好に可能にする電子会話をユーザが有することを可能にするのに役立ち得る。したがって、顔文字、ステッカー等は、テキストのみを使用して伝えるのは困難であるが、対面でのコミュニケーションでは簡単に伝えられる様式でユーザが自己表現することを可能にするのに役立ち得る。
【０００５】
顔文字、ステッカー等の使用は、電子メッセージを送信し、受信する効率を増加させることができる。それにもかかわらず、顔文字、ステッカー等の従来の使用に関しては、いくつかの欠点がある。例えば、顔文字、ステッカー等の使用は、対面での会話において一般的である、非言語的コミュニケーションの対話および相互作用を可能にしない。特に、第１のユーザが顔文字を第２のユーザへ送信した後、第１のユーザは、顔文字が受信されたかどうか、および、どのように顔文字が受信されたかという標識を有しない。言いかえれば、第１のユーザには、一般に、第２のユーザが顔文字を受信したかどうか、第２のユーザが顔文字を実際に見たかどうか、または第１のユーザが顔文字を送信した意味を第２のユーザが理解したかどうかが分からない。
【０００６】
さらに、電子通信において典型的に使用されるメッセージ要素は、堅固ではない。例えば、典型的な顔文字は、電子通信アプリケーションが２人のユーザ間の通信スレッドに対して単に加える静止画像である。いくつかの場合において、顔文字は、初歩的なアニメーションを可能にするフォーマットであり得る。しかし、アニメーション化された顔文字であっても、一般には、反復的で非対話的な動きの少数の自己完結型フレームに限定される。したがって、電子通信においてシンボルを使用する既存の方法は、一般に、２人以上のユーザ間の電子通信に対して表現または対話の層を加えることができない。
【０００７】
したがって、電子通信においてシンボルを利用する現行の方法には、いくつかの欠点がある。
【発明の概要】
【課題を解決するための手段】
【０００８】
本明細書において説明される１つまたは複数の実施形態は、電子通信において拡張メッセージ要素を提供するためのシステムおよび方法により、利点を提供し、および／または本技術における前述の問題もしくは他の問題のうちの１つもしくは複数を解決する。本明細書において説明される１つまたは複数の実施形態は、通信スレッドにおいて対応するメッセージ要素を検出するためのシステムおよび方法を含む。対応するメッセージ要素を検出すると、本システムおよび本方法は、対応するメッセージ要素間に対話を出現させ、対応するメッセージ要素を代替的なメッセージ要素に置換させ、または、そうでなければ、通信スレッドにおいて拡張メッセージ要素を提供させることができる。例えば、１つの実施形態において、本明細書において説明されるシステムおよび方法は、通信スレッドにおいて第１のユーザによって提供されたメッセージ要素と、通信スレッドにおいて第２のユーザによって提供された対応するメッセージ要素とを識別することができる。両方のメッセージ要素を識別することに応答して、本明細書において説明されるシステムおよび方法は、通信スレッド内にメッセージ要素間の対話を表示することができる。したがって、本明細書において説明されるシステムおよび方法は、電子通信に対して表現の別の層を追加する、堅固でインタラクティブな通信機能を提供する。
【０００９】
本開示のさらなる特徴および利点は、以下に続く説明において述べられ、部分的にはその説明から明らかになり、または、そのような例示的な実施形態の実施によって学習され得る。そのような実施形態の特徴および利点は、添付の特許請求の範囲において特に指摘される機器および組み合わせによって実現され、獲得され得る。これらの特徴および他の特徴は、下記の説明および添付の特許請求の範囲から、より完全に明らかになり、または以下に述べられるそのような例示的な実施形態の実施によって学習され得る。
【００１０】
本発明に係る実施形態は、方法、記憶媒体、システムおよびコンピュータ・プログラム製品に向けられた添付の特許請求の範囲において特に開示されており、１つの請求項カテゴリ、例えば、方法において言及される任意の特徴は、別の請求項カテゴリ、例えば、システムにおいても特許請求され得る。添付の特許請求の範囲における従属関係または参照は、形式上の理由で選ばれているに過ぎない。しかしながら、（特に、多数項従属関係において）任意の先行する請求項への意図的な参照から結果として得られる任意の主題も、同様に特許請求され、その結果、請求項およびその特徴の任意の組み合わせは、添付の特許請求の範囲において選ばれている従属関係にかかわらず、開示され、特許請求され得る。特許請求され得る主題は、添付の特許請求の範囲において述べられているような特徴の組み合わせだけでなく、特許請求の範囲における特徴の任意の他の組み合わせも含んでおり、特許請求の範囲において言及されている各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組み合わせと組み合わされ得る。さらに、本明細書において説明され、もしくは図示される実施形態および特徴のうちのいずれも、個別の請求項において特許請求されてもよく、および／または、本明細書において説明され、もしくは図示された任意の実施形態もしくは特徴との任意の組み合わせ、もしくは添付の特許請求の範囲の特徴のうちのいずれかとの任意の組み合わせにおいて特許請求されてもよい。
【００１１】
本発明に係る１実施形態において、方法は、通信スレッドにおいて第１のユーザによって提供された第１のメッセージ要素を識別する工程と、通信スレッドにおいて第２のユーザによって提供された第２のメッセージ要素を識別する工程と、１つまたは複数のプロセッサによって、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたと判定する工程と、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたという判定に応答して、第１のメッセージ要素および第２のメッセージ要素に対応する第３のメッセージ要素を識別する工程と、通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換する工程と、を備える。
【００１２】
本発明に係る１実施形態において、コンピュータにより実行される方法は、第１のコンピューティング・デバイスにおいて、特に、モバイル・デバイスにおいて、通信スレッドにおいて第１のユーザまたはユーザ・デバイスによって提供された第１のコンテンツ・アイテム、特に、メッセージ要素を、特に、第２のユーザまたはユーザ・デバイスへの送信のために識別する工程と、第１のコンピューティング・デバイスにおいて、通信スレッドにおいて、第２のユーザまたはユーザ・デバイスによって提供され、第１のユーザまたはユーザ・デバイスによって受信された第２のコンテンツ・アイテム、特に、メッセージ要素を識別する工程と、第１のコンピューティング・デバイスの１つまたは複数のプロセッサによって、第１のコンテンツ・アイテムおよび第２のコンテンツ・アイテムが、所定の閾値時間内、特に、ユーザ定義された閾値時間内に提供されたと判定する工程と、第１のコンテンツ・アイテムおよび第２のコンテンツ・アイテムが閾値時間内に提供されたという判定に応答して、第１のコンテンツ・アイテムおよび第２のコンテンツ・アイテムに対応する第３のコンテンツ・アイテム、特にメッセージ要素を識別し、および／または生成する工程と、特に、通信スレッドの読みやすさを高めるために、通信スレッドにおいて、第１のコンテンツ・アイテムおよび第２のコンテンツ・アイテムを第３のコンテンツ・アイテムに置換する工程、ならびに／または、表示のために、第１のコンテンツ・アイテムおよび第２のコンテンツ・アイテムの置換として第３のコンテンツ・アイテムを提供する工程と、を備える。
【００１３】
第１のメッセージ要素および第２のメッセージ要素に対応する第３のメッセージ要素を識別する工程は、テーブル・ルックアップにアクセスし、ルックアップ・テーブルから、第１のメッセージ要素と第２のメッセージ要素との組み合わせが第３のメッセージ要素を示すと識別する工程を含み得る。
【００１４】
通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換することは、通信スレッドから、第１のメッセージ要素を含む第１のセルを除去する工程と、通信スレッドから、第２のメッセージ要素を含む第２のセルを除去する工程と、通信スレッドにおいて第３のメッセージ要素を含む新しいセルを提供する工程と、を含み得る。
【００１５】
通信スレッドにおいて第３のメッセージ要素を含む新しいセルを提供する工程は、通信スレッドにおいて、過去に第１のセルおよび第２のセルによって占められていた位置に新しいセルを配置する工程を含み得る。
【００１６】
通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換する工程は、通信スレッドにおいて新しいセルを配置した後に通信スレッドを再レンダリングし、それによって、第１のメッセージ要素および第２のメッセージ要素を除去し、第３のメッセージ要素をレンダリングする工程を含み得る。
【００１７】
本発明に係る１実施形態において、方法は、所定の期間後に、通信スレッドから、第３のメッセージ要素を含む新しいセルを除去する工程と、通信スレッドにおいて、第１のメッセージ要素を含む第１のセルを提供する工程と、通信スレッドにおいて、第２のメッセージ要素を含む第２のセルを提供する工程と、通信スレッドを再レンダリングし、それによって、第３のメッセージ要素を除去し、第１のメッセージ要素および第２のメッセージ要素をレンダリングする工程と、を含み得る。
【００１８】
本発明に係る１実施形態において、方法は、第３のメッセージ要素に関連付けられたメタデータにアクセスして、所定の期間を識別する工程を含み得る。
本発明に係る１実施形態において、方法では、第１のメッセージ要素は、第１のステッカーを含み、第２のメッセージ要素は、第２のステッカーを含み、第３のメッセージ要素は、第３のステッカーを含む。
【００１９】
本発明に係る１実施形態において、方法では、第１のステッカーは、第１のイラストレーションを含み、第２のステッカーは、第２のイラストレーションを含み、第３のステッカーは、第１のイラストレーションと第２のイラストレーションとを含むアニメーションを含む。
【００２０】
本発明に係る１実施形態において、方法では、第１のメッセージ要素は、第１の画像を含み、第２のメッセージ要素は、第２の画像を含み、第３のメッセージ要素は、第１の画像と第２の画像とを含むコラージュを含む。
【００２１】
第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたと判定する工程は、第１のメッセージ要素に関連付けられたメタデータにアクセスして、第１のメッセージ要素の提供時刻を識別する工程と、第２のメッセージ要素に関連付けられたメタデータにアクセスして、第２のメッセージ要素の提供時刻を識別する工程と、第１のメッセージ要素の提供時刻と第２のメッセージ要素の提供時刻との間の差を閾値時間と比較する工程と、を含み得る。
【００２２】
本発明に係る１実施形態において、方法は、通信スレッドにおいて第１のユーザによって提供された第１のメッセージ要素を識別する工程と、通信スレッドにおいて第２のユーザによって提供された第２のメッセージ要素を識別する工程と、１つまたは複数のプロセッサによって、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたと判定する工程と、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたという判定に応答して、第１のメッセージ要素および第２のメッセージ要素に対応する第３のメッセージ要素を識別する工程と、通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換する工程と、を備える。
【００２３】
本発明に係る１実施形態において、モバイル・デバイスは、少なくとも１つのプロセッサと、命令を記憶した、少なくとも１つの非一時的なコンピュータ読取可能な記憶媒体であって、命令は、少なくとも１つのプロセッサによって実行されると、モバイル・デバイスに、通信スレッドにおいて第１のユーザによって提供された第１のメッセージ要素を識別する工程と、通信スレッドにおいて第２のユーザによって提供された第２のメッセージ要素を識別する工程と、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたと判定する工程と、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたという判定に応答して、第１のメッセージ要素および第２のメッセージ要素に対応する第３のメッセージ要素を識別する工程と、通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換する工程と、を実行させる、少なくとも１つの非一時的なコンピュータ読取可能な記憶媒体と、を備える。
【００２４】
本発明に係る１実施形態において、モバイル・デバイスでは、第１のメッセージ要素は、第１のイラストレーションを含み、第２のメッセージ要素は、第２のイラストレーションを含み、第３のメッセージ要素は、アニメーションを含む。
【００２５】
本発明に係る１実施形態において、モバイル・デバイスは、少なくとも１つのプロセッサによって実行されると、モバイル・デバイスに、通信スレッドに関連付けられたメッセージング・アプリケーションが開かれた際に、通信スレッドの少なくとも一部を構文解析して、通信スレッドに含まれている任意のメッセージ要素を識別する工程と、閾値時間内に送信された、メッセージ要素の対応する対を識別する工程と、通信スレッドにおいて、閾値時間内に送信された、メッセージ要素の対応する対を、対応する拡張メッセージ要素に置換する工程と、通信スレッドに含まれているメッセージ要素をレンダリングする工程と、を実行させる命令を備え得る。
【００２６】
本発明に係る１実施形態において、モバイル・デバイスは、少なくとも１つのプロセッサによって実行されると、モバイル・デバイスに、第１のメッセージ要素に関連付けられたメタデータにアクセスして、第１のメッセージ要素の提供時刻を識別する工程と、第２のメッセージ要素に関連付けられたメタデータにアクセスして、第２のメッセージ要素の提供時刻を識別する工程と、第１のメッセージ要素の提供時刻と第２のメッセージ要素の提供時刻との間の差を閾値時間と比較する工程と、を実行させる命令を備え得る。
【００２７】
モバイル・デバイスに、通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換する工程を実行させる命令は、モバイル・デバイスに、通信スレッドから、第１のメッセージ要素を含む第１のセルを除去する工程と、通信スレッドから、第２のメッセージ要素を含む第２のセルを除去する工程と、通信スレッドにおいて第３のメッセージ要素を含む新しいセルを提供する工程と、通信スレッドにおいて新しいセルが提供された後に、通信スレッドを再レンダリングし、それによって、第１のメッセージ要素および第２のメッセージ要素を除去し、第３のメッセージ要素をレンダリングする工程と、を実行させ得る。
【００２８】
モバイル・デバイスに、通信スレッドにおいて第３のメッセージ要素を含む新しいセルを提供する工程を実行させる命令は、モバイル・デバイスに、第１のセルと第２のセルとを組み合わせたサイズに対応するように、新しいセルのサイズを設定させ得る。
【００２９】
本発明に係る１実施形態において、モバイル・デバイスは、少なくとも１つのプロセッサによって実行されると、モバイル・デバイスに、第２のユーザに関連付けられたクライアント・モバイル・デバイスへ第１のメッセージ要素を送信するための命令をモバイル・デバイスを介して受け取った際に、通信スレッドにおいて第１のメッセージ要素をレンダリングする工程と、閾値時間内に、第２のメッセージ要素が第２のユーザから送信されたことを示す、クライアント・デバイスから送信されたメッセージを受信する工程と、通信スレッドにおいて第２のメッセージ要素をレンダリングする工程と、通信スレッドにおいて第１のメッセージ要素および第２のメッセージ要素が第３のメッセージ要素に置換された後に、通信スレッドを再レンダリングする工程と、を実行させる命令を備え得る。
【００３０】
本発明に係る１実施形態において、非一時的なコンピュータ読取可能な媒体は、命令を記憶してもよく、命令は、少なくとも１つのプロセッサによって実行されると、少なくとも１つのプロセッサに、通信スレッドにおいて第１のユーザによって提供された第１のメッセージ要素を識別する工程と、通信スレッドにおいて第２のユーザによって提供された第２のメッセージ要素を識別する工程と、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたと判定する工程と、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたという判定に応答して、第１のメッセージ要素および第２のメッセージ要素に対応する第３のメッセージ要素を識別する工程と、通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換する工程と、を実行させ得る。
【００３１】
本発明に係る１実施形態において、非一時的なコンピュータ読取可能な媒体は、少なくとも１つのプロセッサによって実行されると、少なくとも１つのプロセッサに、通信スレッドにおいて第４のメッセージ要素を識別する工程と、第４のメッセージ要素、第２のメッセージ要素、および第１のメッセージ要素が第２の閾値時間内に提供されたと判定する工程と、第４のメッセージ要素、第２のメッセージ要素、および第１のメッセージ要素が第２の閾値時間内に提供されたという判定に応答して、第１のメッセージ要素、第２のメッセージ要素、および第４のメッセージ要素に対応する第５のメッセージ要素を識別する工程と、通信スレッドにおいて、第１のメッセージ要素、第２のメッセージ要素、および第４のメッセージ要素を第５のメッセージ要素に置換する工程と、を実行させる命令を備え得る。
【００３２】
本発明に係るさらなる実施形態において、１つまたは複数のコンピュータ読取可能な非一時的な記憶媒体は、ソフトウェアを具現化しており、このソフトウェアは、実行されると、本発明に係る方法または上述した実施形態のうちのいずれかを実行するように動作可能である。
【００３３】
本発明に係るさらなる実施形態において、システムは、１つまたは複数のプロセッサと、プロセッサに対して結合され、プロセッサによって実行可能な命令を含む、少なくとも１つのメモリであって、プロセッサは、命令を実行するときに、本発明に係る方法または上述した実施形態のうちのいずれかを実行するように動作可能である、少なくとも１つのメモリと、を備える。
【００３４】
本発明に係るさらなる実施形態において、コンピュータ・プログラム製品は、好ましくは、データ処理システム上で実行されると、本発明に係る方法または上述した実施形態のうちのいずれかを実行するように動作可能である、コンピュータ読取可能な非一時的な記憶媒体を備える。
【００３５】
上述された利点および特徴ならびに他の利点および特徴が獲得され得る様式を説明するために、上記で簡単に説明された１つまたは複数の実施形態の態様のより詳細な説明が、添付の図面に示されるそれらの特定の実施形態への参照によって与えられるであろう。図は、縮尺通りに描かれていないこと、および同様の構造または機能の要素は、一般に、図の全体にわたって例示の目的のために同様の参照符号によって表されることが、留意されるべきである。これらの図面は、典型的な実施形態のみを描いており、したがって、範囲を限定するものとみなされるべきではないとの理解の下で、本開示の１つまたは複数の実施形態は、添付の図面の使用を通じて、付加的な特異性および詳細と共に説明され、解説されるであろう。
【図面の簡単な説明】
【００３６】
【図１】１つまたは複数の実施形態に係る電子通信システムの詳細な概略図。
【図２】１つまたは複数の実施形態に係る電子通信システムを具体化するための環境のブロック図。
【図３Ａ】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素の表示を促進するためのユーザ・インターフェースを示す図。
【図３Ｂ】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素の表示を促進するためのユーザ・インターフェースを示す図。
【図３Ｃ】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素の表示を促進するためのユーザ・インターフェースを示す図。
【図３Ｄ】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素の表示を促進するためのユーザ・インターフェースを示す図。
【図３Ｅ】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素の表示を促進するためのユーザ・インターフェースを示す図。
【図３Ｆ】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素の表示を促進するためのユーザ・インターフェースを示す図。
【図４Ａ】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素の表示を促進するためのユーザ・インターフェースを示す図。
【図４Ｂ】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素の表示を促進するためのユーザ・インターフェースを示す図。
【図４Ｃ】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素の表示を促進するためのユーザ・インターフェースを示す図。
【図４Ｄ】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素の表示を促進するためのユーザ・インターフェースを示す図。
【図５】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素を管理する方法における一連の動作のフローチャート。
【図６】１つまたは複数の実施形態に従って、電子通信スレッドにおけるメッセージ要素を管理する方法における一連の動作のフローチャート。
【図７】１つまたは複数の実施形態に係る例示的なコンピューティング・デバイスのブロック図。
【図８】１つまたは複数の実施形態に係るソーシャル・ネットワーキング・システムの例示のネットワーク環境の図。
【図９】１つまたは複数の実施形態に係るソーシャルグラフを示す図。
【発明を実施するための形態】
【００３７】
本明細書において説明される１つまたは複数の実施形態は、メッセージ要素を利用する電子通信システムを含む。例えば、本明細書において説明される１つまたは複数の実施形態の電子通信システムは、通信スレッド内の参加者によって送信された２つ以上の対応するメッセージ要素を識別する。次いで、電子通信システムは、対応するメッセージ要素を拡張メッセージ要素（augmented message element）に置換し、または変形する。
【００３８】
１つまたは複数の実施形態において、電子通信システムは、１つまたは複数のメッセージ要素を求めて通信スレッドを検索することができる。電子通信システムが、１人の通信参加者から送信された第１のメッセージ要素を識別した場合、電子通信システムは、異なる通信参加者から送信された第２の対応するメッセージ要素を求めて通信スレッドを検索することができる。電子通信システムは、通信スレッド内の対応するメッセージ要素を拡張メッセージ要素に置換することができる。少なくとも１つの実施形態において、拡張メッセージ要素は、電子通信システムが置換した、識別された対応するメッセージ要素間の対話を表示することができる。
【００３９】
電子通信システムは、複数対のメッセージ要素または複数のメッセージ要素を関連付けて、対応するメッセージ要素を作成することができる。特に、電子通信システムは、関連するメッセージ要素を関連付けることができる。例えば、電子通信システムは、２つのサムズ・アップ（thumbs-up）ステッカー（sticker）を関連付けることができる。次いで、電子通信システムは、１つまたは複数の付加的なまたは代替的なメッセージ要素を、対応するメッセージ要素の各セットに関連付けることができる。例えば、前述の例を参照すると、電子メッセージング・システムは、フィストバンプ・アニメーション（fist bump animation）を２つのサムズ・アップ・ステッカーに関連付けることができる。そのため、第２のユーザが、第１のユーザによって送信されたサムズ・アップ・ステッカーに応答してサムズ・アップ・ステッカーを送信する場合、電子通信システムは、２つのサムズ・アップ・ステッカーをフィストバンプ・アニメーションに置換することができる。したがって、電子通信システムは、ユーザが表現および通信の別の層を電子通信の置換に対して加えることを可能にし得る。
【００４０】
電子通信システムは、１つまたは複数のトリガに応答して、通信スレッド内の対応するメッセージ要素を置換することができる。例えば、１つの実施形態において、電子通信システムが、対応するメッセージ要素は閾値期間内に送信されたと判定した場合、電子通信システムは、対応するメッセージ要素を拡張メッセージ要素に置換することができる。代替的に、電子通信システムは、対応するメッセージ要素が連続的に送信された、または閾値期間内に連続的に送信されたと判定すると、対応するメッセージ要素を拡張メッセージ要素に置換することができる。またさらなる実施形態において、ユーザは、対応するメッセージ要素の置換をトリガする入力を提供することができる。
【００４１】
本明細書において、電子メッセージ要素（または、単に「メッセージ要素」）とは、ユーザ・メッセージ、気持ち、トーン、気分、または考えを表現する電子通信の任意の部分を指す。１つまたは複数の実施形態において、メッセージ要素は、従来のテキストから構成されない。例えば、メッセージ要素は、１つまたは複数のステッカー、シンボル、アイコン、顔文字、画像、イラストレーション、アニメーション、音声、ビデオ・クリップ、オーディオ・クリップ、電子通信を介して送信され得る他のコンテンツ、または、これらの組み合わせを含むことができる。例えば、メッセージ要素は、シンボルを含んでもよい。しかしながら、別の例では、単一のメッセージ要素は、アイコン、アニメーション、または音声を含んでもよい。また、１つまたは複数の実施形態において、メッセージ要素は、従来のテキストから構成されないが、電子通信は、従来の書記言語（written language）を含むことができる（例えば、インスタント・メッセージは、
【００４２】
【数１】
0006539856.tif 000002
というメッセージを含んでもよい）。代替的に、電子通信は、メッセージ要素のみを含んでもよい（例えば、インスタント・メッセージは
【００４３】
【数２】
0006539856.tif 000003
というメッセージを含んでもよい）。複数のメッセージ要素、および異なるタイプのメッセージ要素は、単一の電子通信に含められ得る。またさらに、１つまたは複数の実施形態において、メッセージ要素は、従来のテキストから構成されてもよい。
【００４４】
メッセージ要素は、システム生成されたメッセージ要素と、ユーザ生成されたメッセージ要素との両方を含むことができる。例として、ユーザは、様々なメッセージ要素を含むメッセージ要素ファイル、（例えば、「ステッカー・パック（sticker packs）」）を、クライアント・コンピューティング・デバイス（例えば、携帯電話、タブレット、ラップトップ・コンピュータ等）へ定期的にダウンロードすることができる。例えば、１つの実施形態において、メッセージ要素ファイルは、多数のメッセージ要素（例えば、イラストレーション、画像、および／またはアニメーション）を含むことができる。代替的に、ユーザが、メッセージ要素、例えば、画像、オーディオまたはビデオファイル、イラストレーション、テキスト等などを作成してもよい。
【００４５】
各メッセージ要素または各タイプのメッセージ要素は、識別子を含むことができる。電子通信システムは、識別子の対または識別子のグループに、１つまたは複数の拡張メッセージ要素または代替メッセージ要素の識別子を関連付けることができる。この関連付けは、電子通信システムが、対応するメッセージ要素を拡張メッセージ要素または代替メッセージ要素に置換することを可能にし得る。
【００４６】
通信スレッドにおいて２つの関連付けられたメッセージ要素を識別することに応答して、電子通信システムは、第１および第２のメッセージ要素に関連付けられたメタデータを利用して、第３のメッセージ要素を識別することができる。その結果、電子通信システムは、通信スレッドにおける第１および第２の関連付けられたメッセージ要素を、識別された第３のメッセージ要素に置換することができる。１つまたは複数の実施形態において、第３のメッセージ要素は、第１のメッセージ要素のイラストレーションと第２のメッセージ要素のイラストレーションとの間の対話を示すアニメーションである。
【００４７】
１つまたは複数の実施形態において、およびユーザの観点からは、電子通信システムは、第１のユーザからのメッセージ要素と第２のユーザからのメッセージ要素とが互いに対話することを示す、シームレスな（seem-less）表示を提示する。メッセージ要素間の、この付加された対話は、ユーザが画像を単純に送信したり、送信されたりすることから過去に構成されていたものに対して、洗練された堅固な表現の層を加える。電子通信システムは、電子通信において使用するための１つまたは複数のメッセージ要素ファイルの開発およびユーザへの配信を促進することができる。
【００４８】
本明細書において、「電子通信」とは、ユーザから１人または複数の共同ユーザへ送信される電子メッセージを指す。「ソーシャル・ネットワーキング・システム投稿」とは、１人のユーザから、ソーシャル・ネットワーキング・システムを介してそのユーザと関連付けられた１人または複数の共同ユーザへ送信される電子通信を指す。１つの実施形態において、ソーシャル・ネットワーキング・システム投稿は、ソーシャル・ネットワーキング・システムが、ユーザのすべての友達に関連付けられたニュースフィード（すなわち「ウォール（wall）」）へ投稿する、ユーザからの電子通信である。付加的に、または代替的に、ソーシャル・ネットワーキング・システム投稿は、ソーシャル・ネットワーキング・システムが、ソーシャル・ネットワーキング・システム・ユーザの特定グループまたはコミュニティに関連付けられたニュースフィードに加える、ユーザからの電子通信であってもよい。
【００４９】
１つまたは複数の実施形態において、「電子メッセージ」とは、送信者と受信者との間のメッセージを指す。上記で説明したように、ニュースフィードへ電子メッセージを投稿するのではなく、ソーシャル・ネットワーキング・システムは、受信者に関連付けられたプライベートな受信箱に電子メッセージを配信することができる。付加的に、または代替的に、電子メッセージは、送信者と受信者のグループとの間のみのプライベートなメッセージであってもよい。その場合、ソーシャル・ネットワーキング・システムは、プライベートなメッセージのコピーを、受信者のグループの各メンバに関連付けられた受信箱へ配信することができる。電子メッセージの他の例は、テキスト・メッセージ、インスタント・メッセージ、または任意の他の電子メッセージを含む。
【００５０】
１つまたは複数の実施形態において、電子通信は、構造化データに関連付けられる。本明細書において、「構造化データ（structured data）」とは、特定のグループ、フィールド、もしくはカテゴリへ構造化される任意のデータ、および／または電子メッセージの特定の態様に関連付けられる任意のデータを含み得る。構造化データは、ソーシャル・ネットワーキング・システム投稿に関連するノードおよびエッジ情報、電子メッセージに関連する情報、ソーシャル・ネットワーキング・システム投稿または電子メッセージの著者に関連する情報、およびソーシャル・ネットワーキング・システム投稿またはソーシャル・ネットワーキング・システム内の電子メッセージに関連する対話情報に関連付けられたメタデータを含むことができる。例示すると、ソーシャル・ネットワーキング・システム投稿についての構造化データは、ソーシャル・ネットワーキング・システム投稿のテキスト、ソーシャル・ネットワーキング・システム投稿の著者に関連する情報、他のソーシャル・ネットワーキング・システム・ユーザによってソーシャル・ネットワーキング・システム投稿に加えられたコメントを含むソーシャル・ネットワーキング・システム投稿に関連する対話データ、ソーシャル・ネットワーキング・システム投稿に含まれる画像（例えば、デジタル写真）、ビデオ、オーディオ等を含んでもよい。
【００５１】
電子メッセージに関連付けられたメタデータは、電子通信を分類し、その電子通信のソースを示す情報を含むことができる。電子通信システムは、メタデータに含まれる分類情報を使用して、特定の電子通信を体系化すること、および／または取り出すことができる。同様に、電子通信システムは、メタデータに含まれるソース情報を使用して、特定の電子通信を提供した（submit）ソーシャル・ネットワーキング・システム・ユーザに関連する情報を識別することができる。
【００５２】
１つまたは複数の実施形態において、電子通信システムは、ユーザ間の電子メッセージを通信スレッドへ体系化することができる。本明細書において、「通信スレッド（communication thread）」とは、２人のユーザ間で／３人以上のユーザ間で送信したり、送信されたりした電子通信（すなわち、電子メッセージ）のグループである。１つまたは複数の実施形態において、ユーザは、共同ユーザと複数の通信スレッドを有してもよい。したがって、電子通信システムは、各通信スレッドに含まれる共同ユーザに応じて、ユーザの通信スレッドを体系化することができる。
【００５３】
図１は、電子通信システム１００（または、単に「システム１００」）の例示的な実施形態を示す概略図を示す。図１に示されるように、システム１００は、本明細書において説明される方法および特徴を実行するための様々な構成要素を含み得る。例えば、図１に示されるように、システム１００は、１つまたは複数のサーバ・デバイス１０１と、ホスト・システム１０２と、電子通信マネージャ１０４と、クライアント・コンピューティング・デバイス１０６ａおよび１０６ｂとを含み得るが、これらに限定されない。電子通信マネージャ１０４は、通信マネージャ１２２と、メッセージ要素ディレクタ１２４と、ユーザ・データ１２８および通信データ１３０を含むデータ・ストレージ１２６とを含むことができるが、これら限定されない。クライアント・コンピューティング・デバイス１０８ａおよび１０８ｂは、ディスプレイ・マネージャ１１０ａおよび１１０ｂと、ユーザ入力検出器１１２ａおよび１１２ｂと、メッセージ要素マネージャ１１４ａおよび１１４ｂと、ユーザ・データ１１８ａおよび１１８ｂならびにメッセージ要素データ１２０ａおよび１２０ｂを含むアプリケーション・データ・ストレージ１１６ａおよび１１６ｂとを含むメッセージング・アプリケーション１０８ａおよび１０８ｂを含むことができる。
【００５４】
ホスト・システム１０２、電子通信マネージャ１０４の構成要素１２２〜１２６の各々、およびメッセージング・アプリケーション１０８ａ、１０８ｂの構成要素１１０ａ、１１０ｂから１１６ａ、１１６ｂの各々は、本明細書において説明される方法をシステム１００に実行させる命令を実行する少なくとも１つのプロセッサを含む、コンピューティング・デバイスを使用して実装され得る。いくつかの実施形態において、構成要素１０２〜１２６は、単一のサーバ・デバイス１０１によって、または複数のサーバ・デバイス１０１にわたって、実装され得る。付加的に、または代替的に、１つまたは複数のサーバ・デバイスと１つまたは複数のクライアント・デバイスとの組み合わせが、構成要素１０２〜１２６を実装してもよい。さらに、１つの実施形態において、構成要素１０２〜１２６は、一定の機能を実行するための専用処理デバイスなどのハードウェアを備えることができる。付加的に、または代替的に、構成要素１０２〜１２６は、コンピュータ実行可能な命令とハードウェアとの組み合わせを備えることができる。
【００５５】
１つまたは複数の実施形態において、ホスト・システムは、ユーザアカウントまたはクライアント・コンピューティング・デバイス１０６ａ、１０６ｂ間で電子メッセージのやり取りを可能にするメッセージング・ホストを備えることができる。付加的に、または代替的に、ホスト・システム１０２は、メッセージングを可能にするソーシャル・ネットワーキング・システムを備えることができる。そのような場合、ホスト・システム１０２は、以下でより詳細に説明されるようなソーシャルグラフ１３２を含むことができる。
【００５６】
１つまたは複数の実施形態において、メッセージング・アプリケーション１０８ａ、１０８ｂは、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂ上に実装されるネイティブ・アプリケーションであり得る。例えば、メッセージング・アプリケーション１０８ａ、１０８ｂは、スマートフォンまたはタブレットなどのモバイル装置上にインストールされ、実行されるモバイル・アプリケーションであってもよい。代替的に、メッセージング・アプリケーション１０８ａ、１０８ｂは、デスクトップ・アプリケーション、ウィジェット、または他の形態のネイティブ・コンピュータ・プログラムであってもよい。代替的に、メッセージング・アプリケーション１０８ａ、１０８ｂは、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂによってアクセスされる遠隔アプリケーションであってもよい。例えば、メッセージング・アプリケーション１０８ａ、１０８ｂは、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂのウェブ・ブラウザ内で実行されるウェブ・アプリケーションであってもよい。
【００５７】
上述したように、および図１に示されるように、メッセージング・アプリケーション１０８ａ、１０８ｂは、ディスプレイ・マネージャ１１０ａ、１１０ｂを含むことができる。ディスプレイ・マネージャ１１０ａ、１１０ｂは、ユーザが電子メッセージを構成したり、見たり、提供したりすることを可能にするグラフィカル・ユーザ・インターフェース（または、単に「ユーザ・インターフェース」）を提供し、管理し、および／または制御することができる。例えば、ディスプレイ・マネージャ１１０ａ、１１０ｂは、電子メッセージの１つまたは複数の通信スレッドの表示を促進するユーザ・インターフェースを提供することができる。同様に、１つまたは複数の実施形態において、ディスプレイ・マネージャ１１０ａ、１１０ｂは、ソーシャルネットワーク・システム・ユーザのニュースフィードまたはウォールの表示を促進するユーザ・インターフェースを提供することができる。
【００５８】
より詳細には、ディスプレイ・マネージャ１１０ａ、１１０ｂは、（例えば、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂに関連付けられたディスプレイ・デバイスにより）ユーザ・インターフェースの表示を促進する（facilitate）ことができる。例えば、ディスプレイ・マネージャ１１０ａ、１１０ｂは、ユーザが電子メッセージを構成し、送信し、受信することを可能にする、複数のグラフィカル構成要素、オブジェクト、および／または要素から成るユーザ・インターフェースを提供してもよい。より詳細には、ディスプレイ・マネージャ１１０ａ、１１０ｂは、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂに、ユーザが電子メッセージを見ることを可能にするグラフィカル構成要素、オブジェクト、および／または要素のグループを表示するように指示し得る。
【００５９】
また、ディスプレイ・マネージャ１１０ａ、１１０ｂは、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂに、電子メッセージを構成し、送信し、および／または提供するためのユーザ入力を促進する、１つまたは複数のグラフィカル・オブジェクト、制御部、または要素を表示するように指示し得る。例示すると、ディスプレイ・マネージャ１１０ａ、１１０ｂは、ユーザがメッセージング・アプリケーション１０８ａ、１０８ｂに対してユーザ入力を提供することを可能にするユーザ・インターフェースを提供し得る。例えば、ディスプレイ・マネージャ１１０ａ、１１０ｂは、ユーザが１つまたは複数のタイプのコンテンツを電子メッセージに入力することを可能にする、１つまたは複数のユーザ・インターフェースを提供することができる。本明細書において、「コンテンツ」とは、電子メッセージの一部として含まれる任意のデータまたは情報を指す。例えば、「コンテンツ」という用語は、本明細書において、一般に、テキスト、メッセージ要素、画像、デジタル・メディア、ファイル、ロケーション情報、または電子メッセージの一部として含まれ得る任意の他のデータを説明するために使用されるであろう。
【００６０】
ディスプレイ・マネージャ１１０ａ、１１０ｂは、電子メッセージに含まれるテキストまたは他のデータの入力を促進することもできる。例えば、ディスプレイ・マネージャ１１０ａ、１１０ｂは、タッチ・スクリーン・キーボードを含むユーザ・インターフェースを提供することができる。ユーザは、電子メッセージの一部としてテキストを入力するために１つまたは複数のタッチ・ジェスチャを使用して、タッチ・スクリーン・キーボードと対話することができる。例えば、ユーザは、タッチ・スクリーン・キーボードを使用して、電子メッセージのテキストを入力することができる。テキストに加えて、タッチ・スクリーン・キーボードを含むユーザ・インターフェースは、様々な他の文字、ステッカー、シンボル、アイコン、顔文字、または他の情報の入力を促進することができる。
【００６１】
さらに、ディスプレイ・マネージャ１１０ａ、１１０ｂは、２つ以上のグラフィカル・ユーザ・インターフェースを提供し、これらの間で遷移することができる。例えば、１つの実施形態において、ディスプレイ・マネージャ１１０ａ、１１０ｂは、ソーシャル・ネットワーキング・システムを介してユーザに関連付けられた共同ユーザからの１つまたは複数のソーシャル・ネットワーキング・システム投稿を含むニュースフィードを、ソーシャル・ネットワーキング・システム・ユーザに対して提供することができる。後に、ユーザまたは電子通信マネージャ１０４からの検出された入力に応答して、ディスプレイ・マネージャ１１０ａ、１１０ｂは、ユーザを含む様々な通信スレッドのリストを含む第２のグラフィカル・ユーザ・インターフェースに遷移することができる。
【００６２】
図１にさらに示されるように、メッセージング・アプリケーション１０８ａ、１０８ｂは、ユーザ入力検出器１１２ａ、１１２ｂを含むことができる。１つまたは複数の実施形態において、ユーザ入力検出器１１２ａ、１１２ｂは、任意の適切な手法で、ユーザ入力を検出し、受信し、および／または促進することができる。いくつかの例において、ユーザ入力検出器１１２ａ、１１２ｂは、ユーザ・インターフェースに関する１つまたは複数のユーザ対話を検出することができる。本明細書において言及されるように、「ユーザ対話」とは、１つまたは複数の入力デバイスによってユーザから受け取られる、単一の対話、または対話の組み合わせを意味する。
【００６３】
例えば、ユーザ入力検出器１１２ａ、１１２ｂは、キーボード、マウス、タッチ・パッド、タッチスクリーン、および／または任意の他の入力デバイスからのユーザ対話を検出することができる。クライアント・コンピューティング・デバイス１０６ａ、１０６ｂが、タッチスクリーンを含む場合には、ユーザ入力検出器１１２ａ、１１２ｂは、ユーザ対話を形成するユーザから、１つまたは複数のタッチ・ジェスチャ（例えば、スワイプ・ジェスチャ、タップ・ジェスチャ、ピンチ（pinch）・ジェスチャ、またはリバース・ピンチ・ジェスチャ）を検出することができる。いくつかの例において、ユーザは、ユーザ・インターフェースの１つまたは複数のグラフィカル・オブジェクトまたはグラフィカル要素に関連するタッチ・ジェスチャ、および／または、これらに向けられたタッチ・ジェスチャを提供することができる。
【００６４】
ユーザ入力検出器１１２ａ、１１２ｂは、付加的に、または代替的に、ユーザ対話を表すデータを受信してもよい。例えば、ユーザ入力検出器１１２ａ、１１２ｂは、ユーザからの１つもしくは複数のユーザ設定可能なパラメータ、ユーザからの１つもしくは複数のユーザ・コマンド、および／または任意の他の適切なユーザ入力を受信してもよい。ユーザ入力検出器１１２ａ、１１２ｂは、ホスト・システム１０２の１つもしくは複数の構成要素から、または１つもしくは複数の遠隔ロケーションから、入力データを受信し得る。
【００６５】
メッセージング・アプリケーション１０８ａ、１０８ｂは、ユーザ入力検出器１１２ａ、１１２ｂがユーザ入力を検出することおよび／または他のデータを受信することに応答して、１つまたは複数の機能を実行することができる。一般に、ユーザは、ユーザ入力検出器１１２ａ、１１２ｂが検出することができる１つまたは複数の入力を提供することによって、メッセージング・アプリケーション１０８ａ、１０８ｂを制御し、メッセージング・アプリケーション１０８ａ、１０８ｂ内でナビゲートし、メッセージング・アプリケーション１０８ａ、１０８ｂをその他の方法で使用することができる。例えば、ユーザ入力検出器１１２ａ、１１２ｂがユーザ入力を検出することに応答して、メッセージング・アプリケーション１０８ａ、１０８ｂの１つまたは複数の構成要素は、ユーザが電子メッセージの受信者を選択すること、電子メッセージを構成すること、電子メッセージに含めるべきコンテンツを選択すること、および／または電子メッセージを受信者へ送信することを可能にする。付加的に、ユーザ入力検出器１１２ａ、１１２ｂがユーザ入力を検出することに応答して、メッセージング・アプリケーション１０８ａ、１０８ｂの１つまたは複数の構成要素は、ユーザが１つまたは複数のユーザ・インターフェースを通じてナビゲートして、受信された電子メッセージ、ソーシャル・ネットワーキング・システム投稿等を再検討することを可能にする。
【００６６】
図１にさらに示されるように、メッセージング・アプリケーション１０８ａ、１０８ｂは、メッセージ要素マネージャ１１４ａ、１１４ｂを含むことができる。１つまたは複数の実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、通信スレッドにおいてメッセージ要素を識別することができる。例えば、上記で説明したように、通信スレッドは、２人以上のユーザ間で送信したり、送信されたりした複数の電子メッセージおよびメッセージ要素を含むことができる。例示すると、第１のユーザは、サムズ・アップを特徴とするステッカーを第２のユーザへ送信してもよく、その結果、第１のユーザおよび第２のユーザは、第１のユーザと第２のユーザとの間の通信スレッドの一部として、そのステッカーを見ることができる。次いで、第２のユーザは、別のサムズ・アップ・ステッカーを第１のユーザへ送信してもよい。その時点で、メッセージ要素マネージャ１１４ａ、１１４ｂは、第１のユーザおよび第２のユーザに関連付けられた通信スレッドにおいて両方のサムズ・アップ・ステッカーを識別することができる。
【００６７】
さらに、メッセージ要素マネージャ１１４ａ、１１４ｂは、識別されたメッセージ要素に関連付けられたメタデータを分析することができる。例えば、上述したように、メッセージ要素は、メッセージ要素が分類され得る情報を含むメタデータに関連付けられ得る。この情報は、メッセージ要素に関連付けられたカテゴリ、ならびにメッセージ要素に関連付けられた説明および一意の識別子を含むことができる。メタデータは、他の対応するメッセージ要素を識別する情報、および通信スレッドに含めるためのメッセージ要素を提供したユーザに関連する情報も含むことができる。付加的に、メッセージ要素に関連付けられたメタデータは、メッセージ要素が通信スレッドへ提供された日時を含むことができる。
【００６８】
メッセージ要素に関連付けられたメタデータにおいて見出された情報、および通信スレッド内の他の情報に基づいて、メッセージ要素マネージャ１１４ａ、１１４ｂは、識別されたメッセージ要素が置換されるべきことを示すトリガが存在するか、または真であるかを判定することができる。上記で説明したように、メッセージ要素マネージャ１１４ａ、１１４ｂが、第１のメッセージ要素および第２のメッセージ要素は閾値時間内に通信スレッドに対して送信され、または加えられたと判定した場合、メッセージ要素マネージャ１１４ａ、１１４ｂは、第１および第２のメッセージ要素を第３のメッセージ要素に置換することができる。１つまたは複数の実施形態において、ユーザは、閾値時間を特定することができる。代替的に、メッセージ要素マネージャ１１４ａ、１１４ｂは、デフォルト時間（例えば、３０秒等）を閾値時間として使用してもよい。メッセージ要素マネージャ１１４ａ、１１４ｂは、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたかどうかの判定を、両方のメッセージ要素が提供された日時に基づいて行うことができる。
【００６９】
メッセージ要素マネージャ１１４ａ、１１４ｂは、テキストベースのメッセージのコンテンツに基づいて、他のタイプのトリガを識別することができる。例えば、メッセージ要素マネージャ１１４ａ、１１４ｂは、２つ以上のテキストベースのメッセージ間にトリガが存在するかどうかを判定するために、自然言語処理を利用することができる。例示すると、メッセージ要素マネージャ１１４ａ、１１４ｂは、「例の新しい店へランチをしに行きますか？」などの第１のユーザからのメッセージと、「はい！１番通りの例の店ですね！」を含む第２のユーザからのメッセージとの間に適当なトリガが存在すると判定することができる。その場合に、メッセージ要素マネージャ１１４ａ、１１４ｂは、メッセージ・スレッドに含まれる地図表示を含む対話を生成することができる。
【００７０】
第１および第２のメッセージ要素が閾値時間内に提供されたかどうかの判定に応答して、メッセージ要素マネージャ１１４ａ、１１４ｂは、第３のメッセージ要素を識別することができる。例えば、上記で説明したように、ユーザは、第１のメッセージ要素と第２のメッセージ要素とを含むメッセージ要素ファイルを、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂへダウンロードしてもよい。メッセージ要素ファイルは、各メッセージ要素に関連付けられた識別子と共にメッセージ要素の集合を含むことができる。１つまたは複数の実施形態において、メッセージ要素ファイルは、対応するメッセージ要素がグループにまとめられるように、メッセージ要素ファイル内のメッセージ要素のカテゴリ、説明、または一意の識別子にさえ基づいて体系化され得る。付加的な実施形態または代替的な実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、通信スレッドにおいて通信するユーザ間の関係係数が、（例えば、それらのユーザに関連付けられたソーシャル・ネットワーキング・システム・アクティビティ・データに基づいた）所定の閾値を超える場合にのみ、第３のメッセージ要素を識別するように制限されてもよい。
【００７１】
したがって、１つまたは複数の実施形態において、および第１および第２のメッセージ要素に対応する第３のメッセージ要素を識別するために、メッセージ要素マネージャ１１４ａ、１１４ｂは、第１および第２のメッセージ要素に関連付けられたメタデータを利用することができる。例えば、１つの実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、第１および第２のメッセージ要素に関連付けられた識別子（例えば、識別番号、キーワード、タイトル等）に基づいて、第３のメッセージ要素を識別することができる。別の実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、第１および第２のメッセージ要素に関連付けられた説明に基づいて、第３のメッセージ要素を識別してもよい。
【００７２】
その結果として、１つまたは複数の実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、１つまたは複数のメッセージ要素ファイルを管理することもできるということになる。例えば、ユーザが、メッセージ要素ファイルをクライアント・コンピューティング・デバイス１０６ａ、１０６ｂ上にまずダウンロードし、インストールする場合、メッセージ要素マネージャ１１４ａ、１１４ｂは、メッセージ要素ファイルを記憶すること、および、メッセージ要素ファイル内に含まれているメッセージ要素を分類することができる。少なくとも１つの実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、電子通信マネージャ１０４にコンタクトして、１つまたは複数のメッセージ要素ファイルに対する更新情報を定期的にチェックすることもできる。
【００７３】
メッセージ要素ファイルは、様々な構造のうちの１つを有することができる。例えば、メッセージ要素ファイルは、ルックアップ・テーブルとしてフォーマットされてもよく、この場合には、メッセージ要素およびそれらの関連付けられたメタデータは、行と列との交差部分において記憶される。その場合、メッセージ要素は、一意の識別子とキーワードとに基づいて記憶され得る。代替的に、メッセージ要素ファイルは、リンクリスト、ハッシュ表として、またはメッセージ要素を記憶するのに適切な任意の他のタイプの記憶構造としてフォーマットされてもよい。
【００７４】
１つまたは複数の実施形態において、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂのユーザは、メッセージ要素ファイルからではないメッセージ要素を利用し得る。例えば、ユーザは、クライアント・コンピューティング・デバイス１０６ａ上に記憶されたデジタル写真を、クライアント・コンピューティング・デバイス１０６ｂのユーザへ送信してもよい。その場合に、メッセージ要素マネージャ１１４ａ、１１４ｂは、両方のユーザ間の通信スレッドに対してデジタル写真メッセージ要素を加えることができる。クライアント・コンピューティング・デバイス１０６ｂのユーザが、別のデジタル写真をクライアント・コンピューティング・デバイス１０６ａのユーザへ送信することに応答して、メッセージ要素マネージャ１１４ａ、１１４ｂは、両方のデジタル写真メッセージ要素を識別し、両方のデジタル写真メッセージ要素が閾値時間内に送信されたと判定することができる。
【００７５】
その時点で、１つまたは複数の実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、メッセージ要素ファイルからの第３のメッセージ要素を識別するのではなく、第１および第２のメッセージ要素に関連付けられたタイプに基づいてテンプレートを識別することができる。メッセージ要素は、例えば、デジタル写真ファイル、デジタル・ビデオ・ファイル、デジタル・オーディオ・ファイル、クリップ・アート・ファイル、または画像ファイルなどのタイプに関連付けられ得るが、これらに限定されない。例えば、メッセージ要素マネージャ１１４ａ、１１４ｂによって識別されたメッセージ要素のタイプが、デジタル写真ファイルである場合、メッセージ要素マネージャ１１４ａ、１１４ｂは、デジタル写真ファイルに関連付けられたテンプレートを識別することができる。
【００７６】
メッセージ要素マネージャ１１４ａ、１１４ｂが、適当なテンプレートを識別すると、メッセージ要素マネージャ１１４ａ、１１４ｂは、そのテンプレートと、通信スレッド内の識別された第１および第２のメッセージ要素とに基づいて、第３のメッセージ要素を生成することができる。例えば、第１および第２のメッセージ要素が、デジタル写真ファイルのタイプを有する実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、２枚のデジタル写真ファイル用のレイアウトであるテンプレートを識別することができる。したがって、第３のメッセージ要素を生成するために、メッセージ要素マネージャ１１４ａ、１１４ｂは、第１および第２のメッセージ要素を識別されたテンプレート内に配置して、コラージュ（collage）またはスライドショー結果を作成することができる。付加的な実施形態または代替的な実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、識別されたメッセージ要素がすべて閾値時間内に提供されている限り、通信スレッド内の３つ以上の識別されたメッセージ要素に基づいて、第３のメッセージ要素を生成することができる。さらに、他の代替的な実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、テンプレートの使用によってではなく、デジタル・ビデオ・ファイルまたはデジタル・オーディオ・ファイルを層状にすることによって、第３のメッセージ要素を生成することができる。
【００７７】
メッセージ要素マネージャ１１４ａ、１１４ｂが、第１および第２のメッセージ要素に関連付けられたメタデータに基づいて第３のメッセージ要素を識別し、または生成した後に、メッセージ要素マネージャ１１４ａ、１１４ｂは、通信スレッドの表示を変化させることができる。例えば、上記で説明したように、電子通信システム１００は、通信スレッド内の第１および第２のメッセージ要素を第３のメッセージ要素に置換することができる。１つまたは複数の実施形態において、第１および第２のメッセージ要素を第３のメッセージ要素に置換するために、メッセージ要素マネージャ１１４ａ、１１４ｂは、第１および第２のメッセージ要素なしの通信スレッドを再レンダリングすることができる。例えば、第１および第２のメッセージ要素なしの通信スレッドを再レンダリングすることは、第１および第２のメッセージ要素を含む、通信スレッド内のセルを除去し、または隠すことを含み得る。
【００７８】
第１および第２のメッセージ要素の除去に続いて、メッセージ要素マネージャ１１４ａ、１１４ｂは、第３のメッセージ要素を通信スレッドに対して加えることができる。１つまたは複数の実施形態において、第３のメッセージ要素を通信スレッドに対して加えるために、メッセージ要素マネージャ１１４ａ、１１４ｂは、第３のメッセージ要素を含む新しいセルを備えた通信スレッドをレンダリングすることができる。少なくとも１つの実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、第３のメッセージ要素が通信スレッド内で中心に配置されて見えるように、新しいセル内で第３のメッセージ要素を中心に配置することができる。
【００７９】
上記で言及したように、いくつかの実施形態において、第３のメッセージ要素は、第１のメッセージ要素と第２のメッセージ要素との間の対話のアニメーションである。例えば、第１のメッセージ要素が「サムズ・アップ」ステッカー（例えば、サムズ・アップのイラストレーション）であり、第２のメッセージ要素も「サムズ・アップ」ステッカーである場合、第３のメッセージ要素は、通信スレッドの中心において拳を形成し、「フィスト・バンプする」２つのイラストレーションから成るアニメーションであってもよい。少なくとも１つの実施形態において、第３のメッセージ要素によって表示されたアニメーションが完了すると、メッセージ要素マネージャ１１４ａ、１１４ｂは、通信スレッドが変わっていないように見え、メッセージ要素が単に「生き返った」ように見えるように、第３のメッセージ要素を第１および第２のメッセージ要素に置換することができる。
【００８０】
１つまたは複数の実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、第３のメッセージ要素に関連付けられたメタデータを識別して、いつ第３のメッセージ要素を第１および第２のメッセージ要素に置換するべきかを判定することができる。例えば、上述した「フィスト・バンプする」第３のメッセージ要素において、アニメーションは、完了するまでに５秒を要し得る。少なくとも１つの実施形態において、第３のメッセージ要素に関連付けられたメタデータは、第３のメッセージ要素を「再生する」または完了するのに要する時間を含むことができる。メッセージ要素マネージャ１１４ａ、１１４ｂは、第１および第２のメッセージ要素を第３のメッセージ要素に置換した後に、いつこの時間が経過したかを判定することができる。
【００８１】
適当な時間が経過した後に、メッセージ要素マネージャ１１４ａ、１１４ｂは、第３のメッセージ要素を第１および第２のメッセージ要素に置換することができる。例えば、１つまたは複数の実施形態において、第３のメッセージ要素を第１および第２のメッセージ要素に置換するために、メッセージ要素マネージャ１１４ａ、１１４ｂは、第３のメッセージ要素を含む通信スレッド内のセルを除去し、または隠すことによって、第３のメッセージ要素なしの通信スレッドを再び再レンダリングすることができる、これに続いて、メッセージ要素マネージャ１１４ａ、１１４ｂは、第１のメッセージ要素を含む新しいセルと、第２のメッセージ要素を含む新しいセルとを用いて通信スレッドをレンダリングすることによって、第１および第２のメッセージ要素を通信スレッドに対して追加することができる。１つまたは複数の実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂは、第１および第２のメッセージ要素がそれらの元の場所に戻るように、第１および第２のメッセージ要素を含む通信スレッドをレンダリングすることができる。したがって、ユーザの観点からは、ユーザが、通信スレッドが再レンダリングされていることに気づかず、むしろ第１のメッセージ要素と第２のメッセージ要素との間の対話のみを見るような手法で、メッセージ要素マネージャ１１４ａ、１１４ｂは、メッセージ要素を除去し、加えることができる。
【００８２】
メッセージ要素マネージャ１１４ａ、１１４ｂのアクションは、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂ上で発生するものとして説明されているが、付加的な実施形態または代替的な実施形態において、これらの同じアクションは、サーバ・レベルで発生し得る。例えば、１つの実施形態において、メッセージ要素マネージャ１１４ａ、１１４ｂの機能性は、電子通信マネージャ１０４内に存在する。その場合に、電子通信マネージャは、ホスト・システム１０２を介して移動する電子通信をインターセプトし、必要に応じてメッセージ要素を識別することができる。
【００８３】
上記で言及したように、および図１に示されるように、メッセージング・アプリケーション１０８ａ、１０８ｂは、アプリケーション・データ・ストレージ１１６ａ、１１６ｂも含むことができる。図示されるように、アプリケーション・データ・ストレージ１１６ａ、１１６ｂは、ユーザ・データ１１８ａ、１１８ｂと、メッセージ要素データ１２０ａ、１２０ｂとを含むことができる。１つまたは複数の実施形態において、ユーザ・データ１１８ａ、１１８ｂは、本明細書において説明されるような、ユーザ情報を表すデータを含むことができる。同様に、１つまたは複数の実施形態において、メッセージ要素データ１２０ａ、１２０ｂは、本明細書において説明されるような、メッセージ要素情報を表すデータを含むことができる。
【００８４】
図１に示されるように、ホスト・システム１０２は、電子通信マネージャ１０４を含むことができる。１つまたは複数の実施形態において、電子通信マネージャ１０４は、ホスト・システム１０２のユーザ間で送信された電子通信に関するすべてのアクティビティを管理することができる。例えば、上記で説明したように、ユーザは、電子メッセージをホスト・システム１０２の１人または複数の共同ユーザへ送信することができる。
【００８５】
少なくとも１つの実施形態において、および図１に示されるように、電子通信マネージャ１０４は、通信マネージャ１２２を含むことができる。通信マネージャ１２２は、ホスト・システム１０２からデータを受信すること、およびホスト・システム１０２へデータを送信することを促進することができる。特に、通信マネージャ１２２は、電子通信を送信することおよび受信することを促進することができる。例えば、通信マネージャ１２２は、電子通信に含められるべきコンテンツをパッケージし、本明細書において説明されるような、適当な通信プロトコルを使用して、１つまたは複数のコミュニケーションチャンネルを通じて送信されることが可能な任意の必要な形態にその電子通信をフォーマットすることができる。
【００８６】
さらに、通信マネージャ１２２は、ホスト・システム１０２の外部のソースにコンテンツを要求することを促進することができる。例示すると、１つの場合において、第三者（例えば、商業エンティティ、または著者）は、ユーザへの配信のための複数のメッセージ要素を含むメッセージ要素ファイルをホスト・システム１０２へ提供し得る。その場合に、通信マネージャ１２２は、メッセージ要素ファイルを受信するために、第三者と通信することができる。同様に、通信マネージャ１２２は、過去に受信されたメッセージ要素ファイルに対する更新情報または置換情報を受信するために、付加的な第三者と通信することができる。
【００８７】
付加的に、図１に示されるように、要素通信マネージャ１０４は、メッセージ要素ディレクタ１２４を含むことができる。１つまたは複数の実施形態において、メッセージ要素ディレクタ１２４は、メッセージ要素ファイルおよびメッセージ要素ファイルへの更新情報を管理し、体系化し、分散させることができる。例えば、上記で説明したように、電子通信にメッセージ要素を含めるためには、ユーザは、一般に、メッセージ要素ファイルをクライアント・コンピューティング・デバイス１０６ａ、１０６ｂにダウンロードしなければならない。メッセージ要素ファイルをダウンロードするために、メッセージング・アプリケーション１０８ａ、１０８ｂは、要求されたファイルを求めてメッセージ要素ディレクタ１２４にコンタクトすることができる。少なくとも１つの実施形態において、メッセージング・アプリケーション１０８ａ、１０８ｂからのダウンロード・リクエストに応答して、メッセージ要素ディレクタ１２４は、次いで、要求されたメッセージ要素ファイルを提供することができる。
【００８８】
メッセージ要素ファイルをメッセージング・アプリケーション１０８ａ、１０８ｂへ提供した後に、メッセージ要素ディレクタ１２４は、メッセージング・アプリケーション１０８ａ、１０８ｂに関連付けられたソーシャル・ネットワーキング・システム・ユーザへ提供されたメッセージ要素ファイルの記録をとることができる。次いで、１つまたは複数の実施形態において、および特定のメッセージ要素ファイルのソースまたは著者から更新情報を受信することに応答して、メッセージ要素ディレクタ１２４は、特定のメッセージ要素ファイルを過去にダウンロードしたメッセージング・アプリケーション１０８ａ、１０８ｂへ更新情報をプッシュする（push）ことができる。
【００８９】
さらに、少なくとも１つの実施形態において、メッセージ要素ディレクタ１２４は、必要とされるメッセージ要素ファイルをダウンロードするように、電子通信の受信者に促すことができる。例えば、１つの実施形態において、電子通信の送信者は、送信者のクライアント・コンピューティング・デバイス１０６ａ上にダウンロードされた特定のメッセージ要素を含む特定のメッセージ要素ファイルを有し得る。送信者が、特定のメッセージ要素を含む電子通信を受信者へ送信することに応答して、メッセージ要素ディレクタ１２４は、電子通信をインターセプトし、その電子通信の意図された受信者が、特定のメッセージ要素を含む特定のメッセージ要素ファイルをクライアント・コンピューティング・デバイス１０６ｂにダウンロードしたことがあるかどうかを判定することができる。受信者は特定のメッセージ要素ファイルをダウンロードしたことがないとメッセージ要素ディレクタ１２４が判定した場合、メッセージ要素ディレクタ１２４は、適当なダウンロードを要求するように受信者に促すことができる。
【００９０】
さらに、上記で説明したように、および図１に示されるように、電子通信マネージャ１０４は、データ・ストレージ１２６も含むことができる。図示されるように、データ・ストレージ１２６は、ユーザ・データ１２８と、通信およびメッセージ要素データ１３０とを含むことができる。１つまたは複数の実施形態において、ユーザ・データ１２８は、本明細書において説明されるような、ユーザ情報を表すデータを含むことができる。同様に、１つまたは複数の実施形態において、通信およびメッセージ要素データ１３０は、やはり本明細書において説明されるような、通信およびマルチメディア情報を含むことができる。
【００９１】
ホスト・システム１０２がソーシャル・ネットワーキング・システムを備える、１つまたは複数の実施形態において、ホスト・システム１０２は、複数のユーザおよびコンセプトを表現し、分析するためのソーシャルグラフ１３２を含み得る。ソーシャルグラフ１３２のノード情報１３４は、ユーザのノード、コンセプトのノード、トランザクションのノード、およびアイテムのノードを含むノード情報を記憶することができる。ソーシャルグラフ１３２のエッジ情報１３６は、ソーシャル・ネットワーキング・システム内で発生するノードおよび／またはアクション間の関係を含むエッジ情報を記憶することができる。ソーシャル・ネットワーキング・システム、ソーシャルグラフ、エッジ、およびノードに関するさらなる詳細は、図８および図９に関して、以下に提示される。
【００９２】
図２は、電子通信システム１００の例示の概略図を示す。図２に示されるように、電子通信システム１００は、クライアント・コンピューティング・デバイス１０６ａおよび１０６ｂと、メッセージング・アプリケーション１０８ａ、１０８ｂと、サーバ・デバイス１０１と、ホスト・システム１０２とを含むことができ、これらは、ネットワーク２０２を通じて通信可能に結合される。さらに図２に示されるように、ユーザ２０４ａおよび２０４ｂは、ホスト・システム１０２上のコンテンツおよび／またはサービスにアクセスするために、クライアント・コンピューティング・デバイス１０６ａおよび１０６ｂとそれぞれ対話し得る。クライアント・コンピューティング・デバイス１０６ａおよび１０６ｂの各々は、上記で説明したように、メッセージング・アプリケーション１０８ａ、１０８ｂを介してホスト・システム１０２にアクセスし得る。
【００９３】
クライアント・コンピューティング・デバイス１０６ａおよび１０６ｂとホスト・システム１０２とは、ネットワーク２０２を介して通信することができ、ネットワーク２０２は、１つまたは複数のネットワークを含んでもよく、データおよび／または通信信号を送信するのに適した、１つまたは複数の通信プラットフォームまたは技術を使用し得る。１つまたは複数の実施形態において、ネットワーク２０２は、インターネットまたはワールド・ワイド・ウェブを含み得る。しかしながら、ネットワーク２０２は、様々な通信技術およびプロトコルを使用する様々な他のタイプのネットワーク、例えば、企業イントラネット、仮想プライベート・ネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイヤレス・ローカル・ネットワーク（ＷＬＡＮ）、セルラ・ネットワーク、広域ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、または２つ以上のそのようなネットワークの組み合わせなどを含むことができる。図２は、クライアント・コンピューティング・デバイス１０６ａおよび１０６ｂ、ホスト・システム１０２、ならびにネットワーク２０２の特定の構成を示すが、様々な付加的な構成が可能である。例えば、クライアント・コンピューティング・デバイス１０６ａおよび１０６ｂは、ネットワーク２０２を迂回して、ホスト・システム１０２と直接通信してもよい。ネットワーク２０２に関連する付加的な詳細は、図８を参照して、以下に解説される。
【００９４】
図２に示されるように、ユーザ２０４ａ／２０４ｂは、電子通信システム１００を使用して、メッセージ要素を含む電子メッセージを送信することができる。上記で説明したように、ユーザ２０４ａおよび２０４ｂは、個々（すなわち、人間のユーザ）、企業、グループ、または他のエンティティであってもよい。図２は、２人のユーザ２０４ａおよび２０４ｂを示すが、複数のユーザの各々が、対応する複数のクライアント・コンピューティング・デバイスを通じて電子通信システム１００と対話する状態で、電子通信システム１００は、複数のユーザが電子メッセージをやり取りすることを可能にし得ることが理解される。
【００９５】
本明細書において説明される電子通信システム１００を参照すると、ユーザ２０４ａ、２０４ｂのいずれかは、電子メッセージの送信者となり、ユーザ２０４ａ、２０４ｂのいずれかは、電子メッセージの受信者となり得る。一定の実施形態において、ホスト・システム１０２は、ユーザ２０４ａ、２０４ｂが互いに電子通信を送信し、受信することができる前に、ユーザ２０４ａ、２０４ｂがホスト・システム１０２を介して「友達」となることを保証することができる。付加的な実施形態または代替的な実施形態において、ホスト・システム１０２は、電子通信を送信し、受信するユーザは、ホスト・システム１０２のアクティブユーザだけとなることを単に保証してもよい。
【００９６】
クライアント・コンピューティング・デバイス１０６ａ、１０６ｂは、様々なタイプのコンピューティング・デバイスを含んでもよい。例えば、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂは、携帯電話、スマートフォン、ＰＤＡ、タブレット、ラップトップ・コンピュータなどのモバイル・デバイス、または、デスクトップ・コンピュータ、サーバ、もしくは別のタイプのコンピューティング・デバイスなどの非モバイル・デバイスを含むことができる。さらに、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂは、ホスト・システム１０２に関連付けられた専用ソーシャル・ネットワーキング・アプリケーション（例えば、図１に関連して上述したようなソーシャル・ネットワーキング・アプリケーション１０８ａ、１０８ｂなど）を実行して、電子通信システム１００に関連付けられたソーシャル・ネットワーキング・コンテンツ（例えば、投稿、メッセージ、販売リスト、プロフィール等）にアクセスし得る。クライアント・コンピューティング・デバイス１０６ａ、１０６ｂに関する付加的な詳細は、図７に関して、以下に論じられる。
【００９７】
以下により詳細に説明されるように、図１および図２に関して説明されたような電子通信システム１００の構成要素は、他の構成要素と共に／他の構成要素と組み合わせて、１つまたは複数のグラフィカル・ユーザ・インターフェース（「ＧＵＩ」）を提供することができる。特に、構成要素は、ユーザが多種多様な目的のために表示要素の集合と対話することを可能にし得る。具体的には、図３Ａ〜図４Ｄおよび以下に続く説明は、上述したような一般的な原理に係る、ＧＵＩおよび特徴の様々な例示の実施形態を示す。
【００９８】
例えば、図３Ａ〜図４Ｄは、メッセージング・アプリケーション１０８ａ、１０８ｂによってクライアント・コンピューティング・デバイス１０６ａ、１０６ｂにおいて提供されるＧＵＩの様々な図を示す。上記で言及したように、いくつかの実施形態において、クライアント・コンピューティング・デバイス（すなわち、クライアント・コンピューティング・デバイス１０６ａ、１０６ｂ）は、電子通信システム１００からの特徴を実装し、および／または提供することができる。例えば、図３Ａは、電子通信マネージャ１０４の構成要素または特徴のうちの１つまたは複数を実装し得る、ユーザ（例えば、ユーザ２０４ａ）のクライアント・コンピューティング・デバイス３００を示す。図示されるように、クライアント・コンピューティング・デバイス３００は、携帯電話デバイス（例えば、スマートフォン）などのハンドヘルド・デバイスである。本明細書において、「ハンドヘルド・デバイス」という用語は、ユーザの片手で保持され／操作されるような大きさにされ、構成されたデバイスを指す。しかしながら、付加的な例または代替的な例において、タブレット・デバイス、より大きなワイヤレス・デバイス、ラップトップ・コンピュータもしくはデスクトップ・コンピュータ、携帯情報端末デバイス、および／または任意の他の適切なコンピューティング・デバイスなどの、ただし、これらに限定されない、任意の他の適切なコンピューティング・デバイスは、本明細書において説明される方法および／または動作のうちの１つまたは複数を実行することができる。
【００９９】
図３Ａに示されるように、クライアント・コンピューティング・デバイス３００は、ユーザ・インターフェースを表示することができるタッチ・スクリーン・ディスプレイ３０２を含み、このタッチ・スクリーン・ディスプレイ３０２によって、ユーザ入力が受け取られ、および／または検出され得る。本明細書において、「タッチ・スクリーン・ディスプレイ」とは、タッチ・スクリーン・デバイスのディスプレイを指す。１つまたは複数の実施形態において、タッチ・スクリーン・デバイスは、ユーザがタッチ・ジェスチャを実行し得る少なくとも１つの表面を備えたクライアント・コンピューティング・デバイス１０６ａ、１０６ｂ（例えば、ラップトップ・コンピュータ、タブレット・コンピュータ、携帯情報端末、メディア・プレイヤー、携帯電話等）であってもよい。付加的に、または代替的に、クライアント・コンピューティング・デバイス３００は、タッチ・パッドまたは図７を参照して以下に説明されるものなどの、任意の他の適切な入力デバイスを含んでもよい。
【０１００】
図３Ａにおいて、クライアント・コンピューティング・デバイス３００のタッチ・スクリーン・ディスプレイ３０２は、クライアント・コンピューティング・デバイス３００上にインストールされたディスプレイ・マネージャ１１０ａ、１１０ｂによって提供される通信スレッドＧＵＩ３０４を表示する。１つまたは複数の実施形態において、ディスプレイ・マネージャ１１０ａ、１１０ｂは、２人のソーシャル・ネットワーキング・システム・ユーザ間で送信したり、送信されたりする一連の電子メッセージを表示するために、通信スレッドＧＵＩ３０４を提供する。例えば、通信スレッドＧＵＩ３０４によって表示される通信スレッド３０６は、クライアント・コンピューティング・デバイス３００のユーザ（例えば、ユーザ２０４ａ）と、別のユーザ（例えば、ユーザ２０４ｂ）との間で送信された電子メッセージ３０８ａ〜３０８ｄを含む。通信スレッド３０６は、最も古い電子メッセージ３０８ａを通信スレッド３０６の一番上にし、最新の電子メッセージ３０８ｄを通信スレッド３０６の一番下にして、電子メッセージ３０８ａ〜３０８ｄを経時的に表示することができる。１つまたは複数の代替的な実施形態において、通信スレッド３０６における電子メッセージの流れは、逆にされてもよく、または特定の具体化例に適した任意の他の方向であってもよい。
【０１０１】
通信スレッドＧＵＩ３０４は、１つまたは複数の電子メッセージを構成し、送信する際に使用するための付加的な制御部も含むことができる。例えば、図３Ａに示されるように、通信スレッドＧＵＩ３０４は、入力制御部３１２の集合を含むことができる。タッチ・スクリーン・キーボードに加えて、入力制御部３１２の集合を利用することによって、クライアント・コンピューティング・デバイス３００のユーザは、テキスト、メッセージ要素等を含む電子メッセージを構成し、送信することができる。
【０１０２】
図３Ａにさらに示されるように、通信スレッド３０６は、各電子メッセージの送信者を示すように電子メッセージ３０８ａ〜３０８ｄを表示する。例えば、通信スレッド３０６は、「マイケル」（例えば、ユーザ２０４ｂ）が電子メッセージ３０８ａおよび３０８ｃの送信者であることを示すために、電子メッセージ３０８ａおよび３０８ｃならびにメッセージ要素３１０ａを、通信スレッドＧＵＩ３０４の片側の方へ配置する。同様に、通信スレッド３０６は、クライアント・コンピューティング・デバイス３００のユーザ（例えば、ユーザ２０４ａ）が電子メッセージ３０８ｂおよび３０８ｄの送信者であることを示すために、電子メッセージ３０８ｂおよび３０８ｄを、通信スレッドＧＵＩ３０４の反対側の方へ配置する。１つまたは複数の実施形態において、通信スレッド３０６は、通信スレッド３０６内の各電子メッセージの送信者を示すために、ユーザ名およびプロフィール写真などの付加的な情報も含むことができる。
【０１０３】
１つまたは複数の実施形態において、クライアント・コンピューティング・デバイス３００（例えば、クライアント・コンピューティング・デバイス１０６ａ）にインストールされたメッセージング・アプリケーション１０８ａのディスプレイ・マネージャ１１０ａは、少なくとも１つの電子メッセージまたはメッセージ要素を各々が含む個々のセルを含むことによって、通信スレッド３０６をレンダリングする。例えば、少なくとも１つの実施形態において、図３Ａに示される通信スレッド３０６は、１つの電子メッセージまたは１つのメッセージ要素を各々含む複数のセルからなる。ディスプレイ・マネージャ１１０ａは、セル内に含まれている電子メッセージおよび／またはマルチメディアが目に見えても、セルはクライアント・コンピューティング・デバイス３００のユーザに見えないように、各セルをレンダリングすることができる。
【０１０４】
上記で言及したように、メッセージ要素マネージャ１１４ａは、通信スレッド内のメッセージ要素を識別することができる。より詳細には、メッセージ要素３１０ａがステッカーを含む場合、ユーザ２０４ｂは、入力制御部３１２から制御部を選択して、ステッカーの集合を開くことができる。次いで、ユーザ２０４ｂは、ステッカーの集合から所望のステッカーを選択することができる。代替的に、入力制御部３１２は、所望のステッカー（例えば、図３Ａに示されるようなサムズ・アップ・ステッカー）を含んでもよい。１つまたは複数の実施形態において、所望のステッカー３１０ａを選択した際に、メッセージング・アプリケーション１０８ａは、クライアント・コンピューティング・デバイスに、ステッカー３１０ａの識別子をホスト・システム１０２へ送信させることができ、次いで、ホスト・システム１０２は、その識別子をユーザ２０４ａのクライアント・コンピューティング・デバイス３００へ転送することができる。次いで、クライアント・コンピューティング・デバイス３００上で実行されているメッセージング・アプリケーション１０８ａは、識別子を使用して、ステッカー３１０ａを取り出し、レンダリングすることができる。特に、メッセージング・アプリケーション１０８ａは、クライアント・コンピューティング・デバイス１０６ａ上のアプリケーション・データ・ストレージ１１６ａ内のメッセージ要素データ１２０ａから、メッセージ要素（すなわち、サムズ・アップのイラストレーション）を取り出すことができる。
【０１０５】
図３Ｂに示されるように、クライアント・コンピューティング・デバイス３００のユーザ（例えば、ユーザ２０４ａ）は、対応するメッセージ要素３１０ｂをマイケル（例えば、ユーザ２０４ｂ）へ送信することによって、メッセージ要素３１０ａに応答することができる。１つまたは複数の実施形態において、新しい電子通信の付加に応答して、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａに加えて第２のメッセージ要素について通信スレッド３０６を再び分析することができる。メッセージ要素マネージャ１１４ａが、第２のメッセージ要素３１０ｂを識別した場合、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａおよびメッセージ要素３１０ｂに関してトリガが存在するかどうかを判定することができる。例えば、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａ、３１０ｂが連続的に（すなわち、介在するメッセージもしくはメッセージ要素なしに）、および／または閾値時間内に提供されたかどうかを判定することができる。上記で説明したように、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａおよび３１０ｂに関連付けられたメタデータに基づいて、この判定を行うことができる。
【０１０６】
付加的な実施形態または代替的な実施形態において、メッセージ要素マネージャ１１４ａは、第１のメッセージ要素３１０ａおよび第２のメッセージ要素３１０ｂが閾値時間内に提供されなかったとメッセージ要素マネージャ１１４ａが判定した場合、第１のメッセージ要素３１０ａおよび第２のメッセージ要素３１０ｂが第２の時間フレーム内に提供されたかどうかを判定することができる。例えば、第１のメッセージ要素３１０ａおよび第２のメッセージ要素３１０ｂが、第２の時間フレーム内に提供された場合、もし第１のメッセージ要素３１０ａおよび第２のメッセージ要素３１０ｂが閾値時間内に提供されていたならば選択されていたであろうメッセージ要素とは異なる第３のメッセージ要素を、メッセージ要素マネージャ１１４ａは識別することができる。例えば、第１のメッセージ要素３１０ａがサムズ・アップ・ステッカーであり、第２のメッセージ要素３１０ｂもサムズ・アップ・ステッカーである場合、メッセージ要素マネージャ１１４ａは、第１のメッセージ要素３１０ａおよび第２のメッセージ要素３１０ｂが閾値時間内には提供されなかったが、第２の時間フレーム内に提供されたと判定することに応答して、空回りした「ハイファイブ（high-five）」のアニメーションを含む第３のメッセージ要素を識別してもよい。
【０１０７】
メッセージ要素３１０ａおよび３１０ｂは閾値時間内に提供されたと判定することに応答して、メッセージ要素マネージャ１１４ａは、第３のメッセージ要素を識別し、通信スレッド３０６内でメッセージ要素３１０ａおよび３１０ｂを第３のメッセージ要素に置換することができる。１つまたは複数の実施形態において、第３のメッセージ要素を識別するために、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａおよび３１０ｂを含む、クライアント・コンピューティング・デバイス１０６ａ上のメッセージ要素ファイルにアクセスすることができる。例えば、少なくとも１つの実施形態において、メッセージ要素３１０ａおよび３１０ｂは、各メッセージ要素３１０ａ、３１０ｂが発信されたソース（例えば、メッセージ要素ファイル、著者、ウェブサイトへのハイパーリンク等）を識別する情報を含むメタデータに関連付けられる。したがって、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａおよび３１０ｂに関連付けられたメタデータによって示されるメッセージ要素ファイルにアクセスすることができる。
【０１０８】
メッセージ要素マネージャ１１４が、適当なメッセージ要素ファイルにアクセスすると、メッセージ要素マネージャ１１４は、メッセージ要素３１０ａおよび３１０ｂに関連付けられたメタデータをさらに利用して、第３のメッセージ要素を識別することができる。例えば、１つまたは複数の実施形態において、メッセージ要素３１０ａおよび３１０ｂに関連付けられたメタデータは、（例えば、メタデータに含まれたキーワード、説明、識別子等に基づいて）メッセージ要素３１０ａとメッセージ要素３１０ｂとの間の関連性を示す情報を含むことができる。この同じ情報は、メッセージ要素３１０ａおよび３１０ｂと第３のメッセージ要素との間の関連性も示すことができる。例として、メッセージ要素３１０ａおよび３１０ｂは、メッセージ要素３１０ａとメッセージ要素３１０ｂとの両方に対応する第３のメッセージ要素を示すメタデータに関連付けられてもよい。例えば、１つの実施形態において、メッセージ要素３１０ａおよびメッセージ要素３１０ｂに対応する第３のマルチメディア・メディア要素は、メッセージ要素３１０ｂと対話するメッセージ要素３１０ａのアニメーションである。
【０１０９】
したがって、メッセージ要素マネージャ１１４ａが、メッセージ要素３１０ａおよびメッセージ要素３１０ｂに対応する第３のメッセージ要素を識別すると、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａおよびメッセージ要素３１０ｂを除去するように、通信スレッド３０６を再レンダリングすることができる。上述したように、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａおよび３１０ｂを含む、通信スレッド３０６内のセル３１１ａ、３１１ｂを削除することによって、メッセージ要素３１０ａおよび３１０ｂを除去することができる。代替的な実施形態において、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａおよび３１０ｂを含む、通信スレッド３０６内のセル３１１ａ、３１１ｂを単に隠すことによって、メッセージ要素３１０ａおよび３１０ｂを除去してもよい。
【０１１０】
次に、メッセージ要素マネージャ１１４ａは、第３のメッセージ要素を通信スレッド３０６に対して追加することができる。例えば、図３Ｃに示されるように、メッセージ要素マネージャ１１４ａは、クライアント・コンピューティング・デバイス３００のタッチ・スクリーン・ディスプレイ３０２上の通信スレッドＧＵＩ３０４の内の通信スレッド３０６に対して、メッセージ要素３１０ｃを追加することができる。１つまたは複数の実施形態において、メッセージ要素マネージャ１１４ａは、メッセージ要素３０６を含む、通信スレッド３０６内の新しいセル３１１ｃをレンダリングすることによって、メッセージ要素３０６を追加することができる。少なくとも１つの実施形態において、メッセージ要素マネージャ１１４ａは、通信スレッド３０６において、メッセージ要素３１０ｃを含む新しいセル３１１ｃを中心に配置することができる。メッセージ要素マネージャ１１４ａは、さらに、新しいセル３１１ｃにおいてメッセージ要素３１０ｃを中心に配置することができる。
【０１１１】
１つまたは複数の実施形態において、新しいセル３１１ｃは、第１のセル３１１ａまたは第２のセル３１１ｂのいずれかより大きくすることができる。例えば、新しいセル３１１ｃは、第１および第２のセル３１１ａ、３１１ｂの組み合わされたサイズと等しいサイズを有することができる。より大きな新しいセル３１１ｃは、より大きい、またはより複雑なメッセージ要素を可能にすることができる。
【０１１２】
上述したように、メッセージ要素マネージャ１１４ａが、メッセージ要素３１０ａおよび３１０ｂをメッセージ要素３１０ｃに置換した場合、メッセージ要素マネージャ１１４ａは、通信スレッド３０６内にメッセージ要素３１０ｃを無期限に残すことができる。代替的に、メッセージ要素マネージャ１１４ａは、所定の時間後に、メッセージ要素３１０ｃを除去し、メッセージ要素３１０ａおよび３１０ｂをそれらの元の位置において通信スレッド３０６に対して追加することができる。メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ｃに関連付けられたメタデータおよび／またはメッセージング・アプリケーション１０８ａに関連付けられた、ユーザにより設定された設定に基づいて、メッセージ要素３１０ｃを無期限に残すべきか、または所定の時間後にメッセージ要素３１０ｃを除去するべきかに関する判定を行うことができる。
【０１１３】
メッセージ要素３１０ｃが通信スレッド３０６内に無期限に残されるべきではないと判定することに応答して、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ｃを置換する前に待機するべき正確な時間を決定することができる。例えば、図３Ｃ〜図３Ｅに示されるように、メッセージ要素マネージャ１１４ａは、通信スレッド３０６内でメッセージ要素３１０ａおよび３１０ｂが「フィスト・バンプ」を行うイラストレーションのアニメーションを含むことができる。すなわち、図３Ｃにおいて、メッセージ要素３１０ｃは、両方の拳の親指が方向矢印に沿って閉じる、互いに面した２つのサムズアップ・イラストレーションを示す。次に、図３Ｄにおいて、メッセージ要素３１０ｃは、拳になった２つのサムズアップ・イラストレーションを示す。次いで、図３Ｅにおいて、メッセージ要素３１０ｃは、方向矢印に沿って通信スレッド３０６の中心において近づいて、「フィスト・バンプ」を行う２つの拳を示す。
【０１１４】
したがって、メッセージ要素３１０ｃに関連付けられたメタデータは、アニメーションが完了する（すなわち、「フィスト・バンプ」アニメーションが図３Ｅにおいて終了するとき）までに必要な時間を詳述する情報を含むことができる。付加的に、または代替的に、メッセージ要素３１０ｃは、メッセージ要素３１０ｃに関連付けられたメタデータにおいて時間を識別するのではなく、いつアニメーションが完了するかを単に検出してもよい。例えば、メッセージ要素３１０ｃは、アニメーションが（例えば、図３Ｃのような）その最初の開始位置へ戻った場合に、アニメーションが完了したと検出することができる。
【０１１５】
１つまたは複数の実施形態において、必要な時間が満了すると、またはメッセージ要素マネージャ１１４ａがアニメーションが完了したことを検出すると、マルチメディア・マネージャ１１４ａは、メッセージ要素３１０ｃを除去し、通信スレッド３０６を再レンダリングすることができる。例えば、マルチメディア・マネージャ１１４ａは、メッセージ要素３１０ｃを含むセル３１１ｃを除去するように、通信スレッド３０６をレンダリングすることができる。これに続いて、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａおよび３１０ｂを含むセル３１１ａ、３１１ｂを含むように、通信スレッド３０６を再レンダリングすることができる。さらに、図３Ｆに示されるように、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ａおよび３１０ｂを含むセルを、図３Ｂに示されるように、それらが方向矢印に沿ってそれらの元の位置となるように、通信スレッド３０６に対して追加することができる。
【０１１６】
メッセージ要素３１０ａおよび３１０ｂをメッセージ要素３１０ｃに置換し、後で結局、メッセージ要素３１０ａおよび３１０ｂに戻すことの効果は、メッセージ要素３１０ａとメッセージ要素３１０ｂとが実際に対話しているように見える、ユーザ２０４ａに対する錯覚を生み出す。言い換えれば、１つまたは複数の実施形態において、ユーザ２０４ａは、メッセージ要素マネージャ１１４ａによって行われたレンダリングおよび再レンダリングに気づかない。むしろ、レンダリングおよび再レンダリングは、シームレスであり、ユーザ２０４ａには実際に目に見えない。
【０１１７】
図３Ａ〜図３Ｆは、１人のユーザの視点から起こるものとして説明されているが、通信スレッド３０６に参加するすべてのユーザが、上述したメッセージ要素の対話を潜在的に見ることができる。例えば、ユーザが自身のクライアント・コンピューティング・デバイスに適当なマルチメディア・ファイルをダウンロードしたかどうかに依存して、上述したマルチメディア対話は、通信スレッド３０６に関連付けられた各ユーザにとって同じとなり得る。ユーザが、適当なマルチメディア・ファイルをダウンロードしていない場合、通信スレッド３０６は、説明されたマルチメディア対話を含まないであろう。
【０１１８】
したがって、拡張メッセージ要素の使用は、別のレベルの表現を備えたメッセージ会話を提供することができる。図３Ａ〜図３Ｆは、元の２つのメッセージ要素３１０ａ、３１０ｂが、静的なイラストレーション（例えば、ステッカー）であり、拡張イラストレーション３１０ｃが、最初の２つのメッセージ要素３１０ａ、３１０ｂからのイラストレーションを含むアニメーションであることを示す。当業者は、本明細書における開示に照らして、電子通信システム１００がメッセージ要素の組み合わせにおいて多種多様なバリエーションを可能にし得ることを認識するであろう。例えば、最初の２つのメッセージ要素が、アニメーションを含んでもよく、一方で、拡張メッセージ要素または第３のメッセージ要素は、静止画像または異なるアニメーションである。さらに、拡張メッセージ要素または第３のメッセージ要素は、拡張メッセージ要素と置換される対応するメッセージ要素からのいかなるイラストレーションも含む必要はない。
【０１１９】
図３Ａ〜図３Ｆは、閾値期間内の２人の異なるユーザによる、同じメッセージ要素（例えば、サムズアップ・ステッカー）の連続した使用は、連続したメッセージ要素を拡張メッセージ要素（例えば、フィストバンプ・アニメーション）に置換するように電子通信システムをトリガし得ることを示す。したがって、対応するメッセージ要素は、同じメッセージ要素を含むことができる。代替的に、対応するメッセージ要素は、異なるメッセージ要素を含んでもよい。例えば、女性ダンサーのステッカーおよび男性ダンサーのステッカーは、女性と男性とがダンスするアニメーションをトリガしてもよい。
【０１２０】
さらに、同じメッセージ要素は、異なる拡張メッセージ要素に関連付けられた、様々な異なる対応するメッセージ要素を有することができる。したがって、第１のユーザが、第１のメッセージ要素を送信すると、第２のユーザは、第２のメッセージ要素を用いて応答して、第１の拡張メッセージ要素をトリガすることができる。しかしながら、第２のユーザが、第３のメッセージ要素を用いて応答する場合、電子メッセージ・システムは、第１の拡張メッセージ要素ではなく、第２の拡張メッセージ要素を提供することができる。
【０１２１】
上述したように、拡張メッセージ要素は、多種多様な異なる要素を含むことができる。例えば、図３Ａ〜図３Ｆに関連して上述したように、拡張メッセージ要素３１０ｃは、アニメーションを含むことができる。代替的な実施形態において、拡張メッセージ要素３１０ｃは、１つまたは複数の付加的な特徴と共に拡張メッセージ要素をトリガする、対応するメッセージ要素の一方または両方を含んでもよい。例えば、拡張メッセージ要素は、音声またはビデオを、１つまたは複数の対応するメッセージ要素に対して追加することができる。またさらに、拡張メッセージ要素は、１つまたは複数の対応するメッセージ要素のサイズ、色、数、向き、または他の特徴を変化させることができる。
【０１２２】
前述のものに加えて、１つまたは複数の実施形態において、拡張メッセージ要素は、単一のユーザには利用不可能なメッセージ要素を含むことができる。したがって、拡張メッセージ要素を呼び出すためには、メッセージ要素を拡張メッセージ要素に置換するように電子通信システムをトリガする（例えば、連続的に、および／または所与の閾値期間内に、対応するメッセージ要素を提供する）様式で、２人のユーザがメッセージ要素を提供する必要があり得る。
【０１２３】
電子通信システムは、拡張メッセージ要素をトリガするであろうアクションをユーザに通知するために、ユーザに対する支援を提供することもできる。例えば、電子通信システムは、メッセージング・アプリケーション１０８ａとのユーザの自然な体験を中断せずに、関連する支援情報をユーザへ提示することができる。例えば、ユーザが利用可能な様々なアクションは、ユーザがそのアクションを完了させるのを助けるための対応する新しいユーザ支援情報を有してもよい。新しいユーザ支援情報は、メッセージング・アプリケーション１０８ａとのユーザの体験を過度に混乱させずに、どのように対応するアクションを行うかをユーザが簡単にかつ迅速に学習することを可能にする手法で、ユーザに対して提示され得る。
【０１２４】
例えば、メッセージ要素が送信され、または、さもなければ、対応するメッセージ要素を有する通信スレッド内に入力されると、電子通信システムは、拡張メッセージ要素を呼び出すために、ユーザがどのメッセージ要素を送信することができるかを示すユーザ支援情報を提示し得る。さらに、ユーザ支援情報は、拡張メッセージ要素をトリガするための１つまたは複数の条件（期間、メッセージ要素の順序等）に関する情報をユーザに提供することができる。
【０１２５】
本明細書において、「ユーザ支援情報」という用語は、アプリケーションのユーザがそのアプリケーションの１つまたは複数の特徴に精通するのを支援するために使用される任意の情報および／またはコンテンツを一般に指し得る。いくつかの実施形態において、ユーザ支援情報の例は、グラフィカル・ユーザ・インターフェース内で利用可能なアクションに関連する情報を提供するオーディオおよび／またはグラフィカル・コンテンツ、例えば、テキスト、画像、アニメーション、ビデオ、音声、音楽、および会話などを含むことができる。例えば、特定のアクションについてのユーザ支援情報の提示は、アクションを行うための命令およびアクションの視覚的なデモンストレーションを提示することを含んでもよい。
【０１２６】
いくつかの実施形態において、ダウンロードされたメッセージ要素ファイルからメッセージ要素を利用するのではなく、ユーザ２０４ａおよび２０４ｂは、ユーザ自身のクライアント・コンピューティング・デバイス１０６ａ、１０６ｂ上に記憶されたファイルから、ユーザ自身のメッセージ要素を生成することができる。例えば、図４Ａに示されるように、クライアント・コンピューティング・デバイス３００（例えば、クライアント・コンピューティング・デバイス１０６ａ）のユーザ２０４ａは、クライアント・コンピューティング・デバイス３００上に記憶されたファイル（例えば、デジタル写真ファイル）に基づいて、メッセージ要素３１０ｄを作成することができる。図示されるように、メッセージ要素マネージャ１１４ａは、電子メッセージ３０８ｅ（すなわち、「今日私が撮ったこの写真をチェックしてみて！」）に続いて、クライアント・コンピューティング・デバイス３００のタッチ・スクリーン・ディスプレイ３０２に示された通信スレッドＧＵＩ３０４内の通信スレッド３０６に対して、メッセージ要素３１０ｄを追加済みである。クライアント・コンピューティング・デバイス３００のユーザ（例えば、ユーザ２０４ａ）は、入力制御部３１２の集合内の制御部のうちの１つを利用することによって、メッセージ要素３１０ｄを作成するファイルを選択済みであり得る。
【０１２７】
次に、クライアント・コンピューティング・デバイス３００のユーザが通信している相手のユーザ（例えば、ユーザ２０４ｂ）は、電子メッセージ３０８ｆ（例えば、「それはすごいね！これらをチェックしてみて」）と、付加的なメッセージ要素３１０ｅおよび３１０ｆとを用いて返答することができる。図４Ｂに示されるように、付加的なメッセージ要素３１０ｅおよび３１０ｆは、クライアント・コンピューティング・デバイス３００のユーザ（例えば、ユーザ２０４ｂ）が通信している相手のユーザに関連付けられたクライアント・コンピューティング・デバイスからのファイルも含むことができる。図４Ｂに示されるように、クライアント・コンピューティング・デバイス３００のユーザは、すべてのメッセージ要素３１０ｄ〜３１０ｆを見るためには、通信スレッド３０６をスクロールしなければならず、これはユーザにとって面倒となり得る。
【０１２８】
この時点において、上述したように、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ｄ〜３１０ｆを識別し、メッセージ要素３１０ｄ〜３１０ｆが閾値時間内に、または別のトリガに従って、通信スレッド３０６に対して追加されたものであると判定することができる。したがって、メッセージ要素３１０ｄ〜３１０ｆは、閾値時間内に提供されているので、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ｄ〜３１０ｆに対応する第３のメッセージ要素を識別することができる。しかしながら、上述したように、メッセージ要素３１０ｄ〜３１０ｆは、ダウンロードされたメッセージ要素ファイルに由来したものではない。したがって、図３Ａ〜図３Ｅに関して論じられたように、メッセージ要素ファイルから第３のメッセージ要素を識別するのではなく、メッセージ要素マネージャ１１４ａは、クライアント・コンピューティング・デバイス３００上に記憶されたテンプレートの既存の集合からテンプレートを識別し、この識別されたテンプレートに基づいて、第３のメッセージ要素を生成することができる。１つまたは複数の実施形態において、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ｄ〜３１０ｆに関連付けられたタイプに基づいて、テンプレートを識別することができる（例えば、メッセージ要素３１０ｄ〜３１０ｆのタイプがデジタル写真である場合、メッセージ要素マネージャ１１４ａは、３枚のデジタル写真についてのテンプレートを識別することができる）。
【０１２９】
例えば、図４Ｃに示されるように、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ｄ〜３１０ｆをメッセージ要素３１０ｇに置換することができる。１つまたは複数の実施形態において、メッセージ要素マネージャ１１４ａは、識別されたテンプレートおよびメッセージ要素３１０ｄ〜３１０ｆに基づいて、メッセージ要素３１０ｇを生成することができる。言いかえれば、メッセージ要素マネージャ１１４ａは、識別されたテンプレートのレイアウトに従ってメッセージ要素３１０ｄ〜３１０ｆをサイズ変更し、位置決めすることによって、メッセージ要素３１０ｇを生成することができる。
【０１３０】
通信スレッド３０６内でメッセージ要素３１０ｄ〜３１０ｆをメッセージ要素３１０ｇに置換するために、メッセージ要素マネージャ１１４ａは、まず、メッセージ要素３１０ｄ〜３１０ｆを含む、通信スレッド３０６内のセルを除去し、または隠すことができる。これに続いて、図４Ｃに示されるように、メッセージ要素マネージャ１１４ａは、電子メッセージ３０８ｅ、３０８ｆを再配信して、メッセージ要素３１０ｄ〜３１０ｆの除去によって残された空所を取り除くことができる。次いで、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ｇを含む新しいセルを含むように通信スレッド３０６を再レンダリングすることができる。図４Ｃに示されるように、メッセージ要素マネージャ１１４ａは、新しいセルが通信スレッド３０６の中心に配置されるように、その新しいセルを配置することができる。同様に、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ｇが新しいセル内で中心に配置されるように、メッセージ要素３１０ｇを配置することができる。
【０１３１】
１つまたは複数の実施形態において、メッセージ要素マネージャ１１４ａは、メッセージ要素３１０ｇを対話型にするために、メッセージ要素３１０ｇに対して追加の機能性を提供することができる。例えば、図４Ｄに示されるように、メッセージ要素マネージャ１１４ａは、通信スレッド３０６において、メッセージ要素制御部３１４ａおよび３１４ｂをメッセージ要素３１０ｇに関連付けて提供することができる。少なくとも１つの実施形態において、クライアント・コンピューティング・デバイス３００のユーザが、メッセージ要素制御部３１４ａをクリックしたことに応答して、メッセージ要素マネージャ１１４ａは、クライアント・コンピューティング・デバイス３００のユーザに関連付けられたソーシャル・ネットワーキング・システム・ユーザの１つまたは複数のニュースフィードへ含めるために、電子通信マネージャ１０４を介してホスト・システム１０２へメッセージ要素３１０ｇを提供することができる。さらに、クライアント・コンピューティング・デバイス３００のユーザが、メッセージ要素制御部３１４ｂをクリックしたことに応答して、メッセージ要素マネージャ１１４ａは、クライアント・コンピューティング・デバイス３００にマルチメディア・メディア要素３１０ｇを別個のファイルとして保存することができる。
【０１３２】
図１〜図４Ｄ、対応するテキスト、および例は、電子通信スレッドにおいてメッセージ要素を管理するための複数の異なる方法、システム、およびデバイスを提供する。前述のものに加えて、実施形態は、特定の結果を達成するための方法における動作および工程を含むフローチャートの観点からも説明され得る。例えば、図５〜図６は、より少ない工程／動作もしくはより多い工程／動作により実行されてもよく、または、工程／動作は、異なる順序で行われてもよい。付加的に、本明細書において説明される工程／動作は、繰り返されてもよく、または互いに並行して行われてもよく、または同じもしくは同様の工程／動作の異なるインスタンスと並行して行われてもよい。
【０１３３】
図５は、電子通信スレッドにおいてメッセージ要素を管理する１つの例示の方法５００のフローチャートを示す。方法５００は、第１のメッセージ要素を識別する動作５１０を含む。特に、動作５１０は、通信スレッド（例えば、通信スレッド３０６）において、第１のユーザ（例えば、ユーザ２０４ａ）によって提供された第１のメッセージ要素（例えば、メッセージ要素３１０ａ）を識別することを含むことができる。少なくとも１つの実施形態において、通信スレッドに関連付けられたメッセージング・アプリケーションが開かれると、方法５００は、通信スレッドの少なくとも一部を構文解析して、その通信スレッドに含まれている任意のメッセージ要素を識別する動作、閾値時間内に送信されたメッセージ要素の対応する対を識別する動作、通信スレッドにおいて、閾値時間内に送信されたメッセージ要素の対応する対を対応する拡張メッセージ要素に置換する動作、および通信スレッドに含まれているメッセージ要素をレンダリングする動作を含む。
【０１３４】
付加的に、方法５００は、第２のメッセージ要素を識別する動作５２０を含む。特に、動作５２０は、通信スレッドにおいて第２のユーザ（例えば、ユーザ２０４ｂ）によって提供された第２のメッセージ要素（例えば、メッセージ要素３１０ｂ）を識別することを含むことができる。１つまたは複数の実施形態において、第１および／または第２のメッセージ要素は、シンボル、ステッカー、デジタル写真、顔文字、ビデオ・クリップ、オーディオ・クリップ等を含むことができる。
【０１３５】
方法５００は、メッセージ要素が閾値時間内に提供されたかどうかを判定する動作５３０も含む。特に、動作５３０は、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたと判定することを含むことができる。例えば、１つまたは複数の実施形態において、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたかどうかを判定することは、第１のメッセージ要素に関連付けられたメタデータにアクセスして、第１のメッセージ要素の提供時刻を識別すること、第２のメッセージ要素に関連付けられたメタデータにアクセスして、第２のメッセージ要素の提供時刻を識別すること、および第１のメッセージ要素の提供時刻と第２のメッセージ要素の提供時刻との間の差を閾値時間と比較することを含む。
【０１３６】
さらに、方法５００は、第３のメッセージ要素を識別する動作５４０を含む。特に、動作５４０は、第１のメッセージ要素および第２のメッセージ要素が閾値時間に提供されたという判定に応答して、第１のメッセージ要素および第２のメッセージ要素に対応する第３のメッセージ要素（例えば、メッセージ要素３１０ｃ）を識別することを含むことができる。１つまたは複数の実施形態において、第１のメッセージ要素および第２のメッセージ要素に対応する第３のメッセージ要素を識別することは、テーブル・ルックアップにアクセスし、ルックアップ・テーブルから、第１のメッセージ要素と第２のメッセージ要素との組み合わせが第３のメッセージ要素を示すということを、人間による介入なしに識別することを含む。
【０１３７】
方法５００は、第１および第２のメッセージ要素を第３のメッセージ要素に置換する動作５５０も含む。特に、動作５５０は、通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換することを含むことができる。例えば、通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換することは、通信スレッドから、第１のメッセージ要素を含む第１のセルを除去すること、通信スレッドから、第２のメッセージ要素を含む第２のセルを除去すること、および、人間による介入なしに、通信スレッドにおいて第３のメッセージ要素を含む新しいセルを提供することを含むことができる。少なくとも１つの実施形態において、通信スレッドにおいて第３のメッセージ要素を含む新しいセルを提供することは、通信スレッドにおいて、過去に第１および第２のセルによって占められていた位置に新しいセルを配置することを含む。少なくとも１つの実施形態において、通信スレッドにおいて第３のメッセージ要素を含む新しいセルを提供することは、第１のセルと第２のセルとを組み合わせたサイズに対応するように新しいセルのサイズを設定することを含む。付加的に、または代替的に、少なくとも１つの実施形態において、通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換することは、通信スレッドにおいて新しいセル配置した後に通信スレッドを再レンダリングし、それにより、第１のメッセージ要素および第２のメッセージ要素を除去し、第３のメッセージ要素をレンダリングすることを含む。
【０１３８】
方法５００は、所定の期間後に、通信スレッドから、第３のメッセージ要素を含む新しいセルを除去すること、通信スレッドにおいて、第１のメッセージ要素を含む第１のセルを提供すること、通信スレッドにおいて、第２のメッセージ要素を含む第２のセルを提供すること、および通信スレッドを再レンダリングし、それによって、第３のメッセージ要素を除去し、第１のメッセージ要素および第２のメッセージ要素をレンダリングすることも含むことができる。１つまたは複数の実施形態において、本方法は、第３のメッセージ要素に関連付けられたメタデータにアクセスして、所定の期間を識別することをさらに含む。代替的な実施形態において、所定の期間は、ユーザにより設定された設定に基づく。
【０１３９】
付加的に、または代替的に、方法５００は、第２のユーザに関連付けられたクライアント・モバイル・デバイスへ第１のメッセージ要素を送信するための命令をモバイル・デバイスを介して受け取った際に、通信スレッドにおいて第１のメッセージ要素をレンダリングすることを含むことができる。さらに、方法５００は、第２のメッセージ要素が第２のユーザから送信されたことを示す送信されたメッセージをクライアント・デバイスから受信すること、および通信スレッドにおいて第２のメッセージ要素をレンダリングすることを閾値時間内に含むことができる。その場合、方法５００は、第１のメッセージ要素および第２のメッセージ要素が通信スレッドにおいて第３のメッセージ要素と置換された後に、通信スレッドを再レンダリングすることも含むことができる。
【０１４０】
１つまたは複数の実施形態において、第１のメッセージ要素は、第１のステッカーを含み、第２のメッセージ要素は、第２のステッカーを含み、第３のメッセージ要素は、第３のステッカーを含む。例えば、１つの実施形態において、第１のステッカーは、第１のイラストレーションを含み、第２のステッカーは、第２のイラストレーションを含み、第３のステッカーは、第１のイラストレーションと第２のイラストレーションとを含むアニメーションを含む。代替的に、別の実施形態において、第１のメッセージ要素は、第１の画像を含み、第２のメッセージ要素は、第２の画像を含み、第３のメッセージ要素は、第１の画像と第２の画像とを含むコラージュを含む。また別の代替的な実施形態において、第１のメッセージ要素は、第１のイラストレーションを含み、第２のメッセージ要素は、第２のイラストレーションを含み、第３のメッセージ要素は、アニメーションを含む。
【０１４１】
図６は、電子通信スレッドにおいてメッセージ要素を管理する１つの例示の方法６００のフローチャートを示す。方法６００は、第１のメッセージ要素を識別する動作６１０を含む。特に、動作６１０は、第１のユーザの通信スレッド（例えば、通信スレッド３０６）において、第１のユーザ（例えば、ユーザ２０４ａ）によって提供された第１のメッセージ要素（例えば、メッセージ要素３１０ｄ）を識別することを含むことができる。
【０１４２】
付加的に、方法６００は、第２のメッセージ要素を識別する動作６２０を含む。特に、動作６２０は、第１のユーザの通信スレッドにおいて、第２のユーザ（例えば、ユーザ２０４ｂ）によって提供された第２のメッセージ要素（例えば、メッセージ要素３１０ｅ）を識別することを含むことができる。１つまたは複数の実施形態において、第１および／または第２のメッセージ要素は、シンボル、デジタル写真、顔文字、ビデオ・クリップ、オーディオ・クリップ等を含むことができる。
【０１４３】
方法６００は、メッセージ要素が一定の時間フレーム内に提供されたかどうかを判定する動作６３０も含む。特に、動作６３０は、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたかどうかを判定することを含むことができる。例えば、１つまたは複数の実施形態において、第１のメッセージ要素および第２のメッセージ要素が閾値時間内に提供されたかどうかを判定することは、第１のメッセージ要素の提供に関連付けられた日時と、第２のメッセージ要素の提供に関連付けられた日時とが、閾値時間内にあるかどうかを判定することを含む。１つまたは複数の実施形態において、方法６００は、第１のメッセージ要素および第２のメッセージ要素に関連付けられた提供情報を識別する動作をさらに含むことができ、この提供情報は、第１に関連付けられた情報、第２のユーザに関連付けられた情報、第１のメッセージ要素の提供に関連付けられた日時、および第２のメッセージ要素の提供に関連付けられた日時を含む。
【０１４４】
方法６００は、第１のメッセージ要素に関連付けられたタイプおよび第２のメッセージ要素に関連付けられたタイプを、人間による介入なしに識別する動作も含むことができる。１つまたは複数の実施形態において、第１のメッセージ要素に関連付けられたタイプ、および第２のメッセージ要素に関連付けられたタイプは、デジタル写真ファイル、デジタル・ビデオ・ファイル、デジタル・オーディオ・ファイル、クリップ・アート・ファイル、または画像ファイルのうちの１つである。例えば、第１のメッセージ要素に関連付けられたタイプ、および第２のメッセージ要素に関連付けられたタイプを識別することは、第１のメッセージ要素および第２のメッセージ要素に関連付けられたメタデータに基づき得る。
【０１４５】
付加的に、方法６００は、第３のメッセージ要素を生成する動作６４０を含む。特に、動作６４０は、判定に基づいて、第１のメッセージ要素と第２のメッセージ要素とを含む第３のメッセージ要素（例えば、メッセージ要素３１０ｇ）を生成することを含むことができる。例えば、第１のメッセージ要素と第２のメッセージ要素とを含む第３のメッセージ要素を生成することは、第１のメッセージ要素に関連付けられたタイプと第２のメッセージ要素に関連付けられたタイプとに基づいて、テンプレートを求めてテーブル・ルックアップを行うこと、ならびに第１のメッセージ要素および第２のメッセージ要素をテンプレート内に入れることによって、人間による介入なしに、第３のメッセージ要素を生成することを含むことができる。
【０１４６】
さらに、方法６００は、第１および第２のメッセージ要素を第３のメッセージ要素に置換する動作６５０を含む。特に、動作６５０は、通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換することを含むことができる。例えば、通信スレッドにおいて、第１のメッセージ要素および第２のメッセージ要素を第３のメッセージ要素に置換することは、通信スレッドを再レンダリングして、第１のメッセージ要素に関連付けられたセルと第２のメッセージ要素に関連付けられたセルとを除去すること、ならびに通信スレッドにおいて第３のメッセージ要素を含む新しいセルをレンダリングすることを含むことができる。１つまたは複数の実施形態において、通信スレッドにおいて第３のメッセージ要素を含む新しいセルをレンダリングすることは、人間による介入なしに、新しいセルにおいて第３のメッセージ要素を中央に配置することを含む。付加的に、少なくとも１つの実施形態において、方法６００は、人間による介入なしに、第３のメッセージ要素をダウンロードするためのオプションを提示することを含むことができる。
【０１４７】
本開示の実施形態では、以下に詳述する通り、たとえば１つまたは複数のプロセッサおよびシステムメモリ等のコンピュータハードウェアを備えた専用または汎用コンピュータを備えるか、または利用するようにしてもよい。また、本開示の発明の範囲内の実施形態には、コンピュータ実行可能な命令および／またはデータ構造を搬送または記憶する物理的なコンピュータ可読媒体および他のコンピュータ可読媒体を含む。とりわけ、本明細書に記載のプロセスのうちの１つまたは複数は、非一時的コンピュータ可読媒体にて具現化され、１つまたは複数のコンピューティング・デバイス（たとえば、本明細書に記載のメディアコンテンツアクセスデバイスのいずれか）により実行可能な命令として、その少なくとも一部が実装されていてもよい。一般的には、プロセッサ（たとえば、マイクロプロセッサ）が非一時的コンピュータ可読媒体（たとえば、メモリ等）から命令を受け取り、これらの命令を実行することによって、本明細書に記載のプロセスのうちの１つまたは複数等、１つまたは複数のプロセスを実行する。
【０１４８】
コンピュータ可読媒体としては、汎用または専用コンピュータシステムによりアクセス可能な任意の利用可能な媒体が可能である。コンピュータ実行可能な命令を記憶するコンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体（デバイス）である。コンピュータ実行可能な命令を搬送するコンピュータ可読媒体は、伝送媒体である。このように、非限定的な一例として、本開示の実施形態には、非一時的コンピュータ可読記憶媒体（デバイス）および伝送媒体という少なくとも２つの明確に異なる種類のコンピュータ可読媒体を含み得る。
【０１４９】
非一時的コンピュータ可読記憶媒体（デバイス）としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、固体ドライブ（「ＳＳＤ」）（たとえば、ＲＡＭベース）、フラッシュメモリ、相変化メモリ（「ＰＣＭ」）、他の種類のメモリ、他の光ディスクストレージ、磁気ディスクストレージ等の磁気ストレージデバイス、またはコンピュータ実行可能な命令もしくはデータ構造の形態の所望のプログラムコード手段の記憶に使用可能であるとともに、汎用もしくは専用コンピュータによりアクセス可能なその他任意の媒体が挙げられる。
【０１５０】
「ネットワーク」は、コンピュータシステムおよび／またはモジュールおよび／または他の電子機器間で電子データを伝送可能な１つまたは複数のデータリンクとして定義されている。情報がネットワークまたは別の通信接続（有線、無線、または有線もしくは無線の組み合わせ）上でコンピュータに転送または提供される場合、上記コンピュータは、その接続を厳密に伝送媒体と見なす。伝送媒体としては、コンピュータ実行可能な命令またはデータ構造の形態の所望のプログラムコード手段の搬送に使用可能であるとともに、汎用または専用コンピュータによりアクセス可能なネットワークおよび／またはデータリンクが挙げられる。また、上記の組み合わせについても、コンピュータ可読媒体の範囲に含まれるものとする。
【０１５１】
さらに、コンピュータシステムのさまざまな構成要素に到達した際に、コンピュータ実行可能な命令またはデータ構造の形態のプログラムコード手段は、伝送媒体から非一時的コンピュータ可読記憶媒体（デバイス）へと自動的に転送可能である（その逆も可能である）。たとえば、ネットワークまたはデータリンク上で受信されたコンピュータ実行可能な命令またはデータ構造は、ネットワークインターフェースモジュール（たとえば、「ＮＩＣ」）内のＲＡＭにバッファリングした後、最終的には、コンピュータシステムＲＡＭおよび／またはコンピュータシステムにおける低揮発性コンピュータ記憶媒体（デバイス）に転送可能である。したがって、非一時的コンピュータ可読記憶媒体（デバイス）は、伝送媒体も（または、主として）利用するコンピュータシステムの構成要素に含み得ることが了解されるものとする。
【０１５２】
コンピュータ実行可能な命令としては、たとえばプロセッサで実行された場合に、特定の機能または機能群を汎用コンピュータ、専用コンピュータ、または専用処理デバイスに実行させる命令およびデータが挙げられる。いくつかの実施形態においては、コンピュータ実行可能な命令が汎用コンピュータ上で実行されることにより、上記汎用コンピュータは、本開示の実施形態の要素を実装した専用コンピュータへと変化する。コンピュータ実行可能な命令は、たとえばバイナリ、アセンブリ言語等の中間フォーマット命令、あるいはソースコードであってもよい。以上、構造的特徴および／または方法論的行為に固有の表現で主題を説明したが、添付の特許請求の範囲に規定の主題は、必ずしも上述の特徴または行為に限定されないことが了解されるものとする。むしろ、上記特徴および行為は、特許請求の範囲を実施する例示的な形態として開示している。
【０１５３】
当業者であれば、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メッセージプロセッサ、携帯機器、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品、ネットワークＰＣ、マイクロコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ，タブレット、ポケベル、ルータ、スイッチ等、さまざまな種類のコンピュータシステム構成のネットワークコンピュータ環境において本開示が実現されるようになっていてもよいことが認識されよう。また、本開示は、ネットワークを通じて（有線データリンク、無線データリンク、または有線および無線データリンクの組み合わせにより）リンクしたローカルメモリストレージデバイスおよび遠隔コンピュータシステムがともにタスクを実行する分散システム環境において実現されるようになっていてもよい。分散システム環境においては、ローカルメモリストレージデバイスおよび遠隔メモリストレージデバイスの両者にプログラムモジュールが配置されていてもよい。
【０１５４】
また、本開示の実施形態は、クラウドコンピュータ環境において実装可能である。本記載において、「クラウドコンピューティング」は、設定可能なコンピュータリソースの共有プールに対するオンデマンドネットワークアクセスを可能とするモデルとして定義されている。たとえば、クラウドコンピューティングは、設定可能なコンピュータリソースの共有プールに対するユビキタスかつ便利なオンデマンドアクセスを提供する市場で採用可能である。設定可能なコンピュータリソースの共有プールは、仮想化によって迅速に開設可能であるとともに、わずかな管理労力またはサービス・プロバイダ対話で解放可能であるため、これに応じてスケーリング可能である。
【０１５５】
クラウドコンピューティングモデルは、たとえばオンデマンドセルフサービス、ブロードネットワークアクセス、リソースプーリング、ラピッドエラスティシティ、メジャードサービス等のさまざまな特性で構成可能である。また、クラウドコンピューティングモデルは、たとえばサービス型ソフトウェア（「ＳａａＳ」）、サービス型プラットフォーム（「ＰａａＳ」）、およびサービス型インフラ（「ＩａａＳ」）等のさまざまなサービスモデルを提供可能である。また、クラウドコンピューティングモデルは、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド等のさまざまな展開モデルを用いて展開可能である。本明細書および特許請求の範囲において、「クラウドコンピュータ環境」は、クラウドコンピューティングを採用する環境である。
【０１５６】
図７は、上述のプロセスのうちの１つまたは複数を実行するように構成できる例示的なコンピューティング・デバイス７００のブロック図を示している。データコンピューティング・デバイス７００などの１つまたは複数のコンピューティング・デバイスがシステム１００を実装することが理解される。図７に示すように、コンピューティング・デバイス７００は、通信インフラ７１２によって通信されるように結合されている、プロセッサ７０２、メモリ７０４、ストレージデバイス７０６、Ｉ／Ｏインターフェース７０８、および通信インターフェース７１０を備える。図７には、例示的なコンピューティング・デバイス７００を示しているが、図７に示す構成要素は、何ら限定を意図したものではない。他の実施形態においては、付加的または代替的な構成要素を使用するようにしてもよい。さらに、特定の実施形態において、コンピューティング・デバイス７００は、図７よりも少ない構成要素を備える。以下、図７に示すコンピューティング・デバイス７００の構成要素について、さらに詳しく説明する。
【０１５７】
１つまたは複数の実施形態において、プロセッサ７０２は、コンピュータプログラムを構成する命令等を実行するハードウェアを備えてもよい。非限定的な一例として、プロセッサ７０２は、命令を実行するため、内部レジスタ、内部キャッシュ、メモリ７０４、またはストレージデバイス７０６から命令を取り出す（または、フェッチする）とともに、上記命令を復号化して実行するようにしてもよい。１つまたは複数の実施形態において、プロセッサ７０２は、データ、命令、またはアドレス用の１つまたは複数の内部キャッシュを備えてもよい。非限定的な一例として、プロセッサ７０２は、１つまたは複数の命令キャッシュ、１つまたは複数のデータキャッシュ、および１つまたは複数のトランスレーション・ルックアサイド・バッファ（ＴＬＢ）を備えてもよい。命令キャッシュ中の命令は、メモリ７０４またはストレージ７０６中の命令のコピーであってもよい。
【０１５８】
メモリ７０４は、データ、メタデータ、およびプロセッサが実行するプログラムの記憶に使用してもよい。メモリ７０４は、ランダムアクセスメモリ（「ＲＡＭ」）、リードオンリーメモリ（「ＲＯＭ」）、固体ディスク（「ＳＳＤ」）、フラッシュ、相変化メモリ（「ＰＣＭ」）、または他の種類のデータストレージ等、揮発性および不揮発性メモリのうちの１つまたは複数を備えていてもよい。また、メモリ７０４は、内部メモリであってもよいし、分散メモリであってもよい。
【０１５９】
ストレージデバイス７０６は、データまたは命令を記憶するストレージを備える。非限定的な一例として、ストレージデバイス７０６は、上述の非一時的記憶媒体を備える。ストレージデバイス７０６としては、ハードディスクドライブ（ＨＤＤ）、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、ユニバーサルシリアルバス（ＵＳＢ）ドライブ、またはこれらのうちの２つ以上の組み合わせが挙げられる。ストレージデバイス７０６は、必要に応じて、取り外し可能媒体を備えていてもよいし、取り外し可能でない（すなわち、固定）媒体を備えていてもよい。ストレージデバイス７０６は、コンピューティング・デバイス７００の内部であってもよいし、外部であってもよい。１つまたは複数の実施形態において、ストレージデバイス７０６は、不揮発性の固体メモリである。他の実施形態において、ストレージデバイス７０６は、リードオンリーメモリ（ＲＯＭ）を含む。必要に応じて、このＲＯＭは、マスクプログラムＲＯＭ、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書き換え可能ＲＯＭ（ＥＡＲＯＭ）、フラッシュメモリ、またはこれらのうちの２つ以上の組み合わせであってもよい。
【０１６０】
Ｉ／Ｏインターフェース７０８によって、ユーザが、入力を提供し、出力を受け取り、あるいはコンピューティング・デバイス７００に対してデータを転送しデータを受け取ることを可能にする。これらのＩ／Ｏインターフェース７０８は、マウス、キーパッドもしくはキーボード、タッチスクリーン、カメラ、光学スキャナ、ネットワーク・インターフェース、モデル、その他既知のＩ／Ｏデバイス、またはこのようなＩ／Ｏデバイス／インターフェースの組み合わせを含む。Ｉ／Ｏインターフェース７０８は、出力をユーザに提示する１つまたは複数の機器を備えていてもよく、グラフィックスエンジン、ディスプレイ（たとえば、表示画面）、１つまたは複数の出力ドライバ（たとえば、ディスプレイドライバ）、１つまたは複数の音声スピーカ、および１つまたは複数の音声ドライバが挙げられるが、これらに限定されない。特定の実施形態において、Ｉ／Ｏインターフェース７０８は、グラフィックデータをディスプレイに提供して、ユーザに提示するように構成されている。グラフィックデータは、特定の実施態様に役立ち得る１つもしくは複数のグラフィカル・ユーザ・インターフェースおよび／またはその他任意のグラフィックコンテンツを代表するものであってもよい。
【０１６１】
通信インターフェース７１０は、ハードウェア、ソフトウェア、または両者を含み得る。いかなる場合でも、通信インターフェース７１０は、コンピューティング・デバイスと１つもしくは複数の他のコンピューティング・デバイス７００またはネットワークとの間の通信（たとえば、パケットベースの通信等）のための１つまたは複数のインターフェースを提供可能である。非限定的な一例として、通信インターフェース７１０としては、イーサネット（登録商標）等の有線ネットワークと連通するネットワークインターフェースコントローラ（ＮＩＣ）もしくはネットワークアダプタまたはＷｉ−Ｆｉ等の無線ネットワークと連通する無線ＮＩＣ（ＷＮＩＣ）もしくは無線アダプタが挙げられる。
【０１６２】
加えて、または、代替として、通信インターフェース７１０は、アドホック・ネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの１つもしくは複数の部分、またはこれらのうちの２つ以上の組み合わせと通信を行わせる。これらネットワークのうちの１つまたは複数の１つまたは複数の部分は、有線であってもよいし、無線であってもよい。一例として、通信インターフェース７１０は、無線ＰＡＮ（ＷＰＡＮ）（たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標）ＷＰＡＮ等）、Ｗｉ−Ｆｉネットワーク、Ｗｉ−ＭＡＸネットワーク、携帯電話ネットワーク（たとえば、汎欧州デジタル移動電話通信（ＧＳＭ（登録商標））ネットワーク等）、他の適当な無線ネットワーク、またはこれらの組み合わせと通信を行わせる。
【０１６３】
加えて、通信インターフェース７１０は、通信さまざまな通信プロトコルを促進し得る。使用され得る通信プロトコルの例としては、限定されるものではないが、データ伝送媒体、通信デバイス、伝送制御プロトコル（「ＴＣＰ」）、インターネット・プロトコル（「ＩＰ」）、ファイル転送プロトコル（「ＦＴＰ」）、Ｔｅｌｎｅｔ、Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（「ＨＴＴＰ」）、Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｅ（「ＨＴＴＰＳ」）、セッション開始プロトコル（「ＳＩＰ」）、Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（「ＳＯＡＰ」）、拡張マークアップ言語（「ＸＭＬ」）およびその変種、簡易メール転送プロトコル（「ＳＭＴＰ」）、リアルタイム転送プロトコル（「ＲＴＰ」）、ユーザ・データグラム・プロトコル（「ＵＤＰ」）、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（「ＧＳＭ」）技術、符号分割多元接続（「ＣＤＭＡ」）技術、時分割多元接続（「ＴＤＭＡ」）技術、ショート・メッセージ・サービス（「ＳＭＳ」）、マルチメディア・メッセージ・サービス（「ＭＭＳ」）、無線周波数（「ＲＦ」）シグナリング技術、Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ（「ＬＴＥ」）技術、無線通信技術、帯域内シグナリング技術および帯域外シグナリング技術、ならびに他の適切な通信ネットワークおよび技術がある。
【０１６４】
通信インフラ７１２は、コンピューティング・デバイス７００の構成要素を互いに結合するハードウェア、ソフトウェア、または両者を備える。非限定的な一例として、通信インフラ７１２は、アクセラレイテッドグラフィックスポート（ＡＧＰ）等のグラフィックスバス、拡張業界標準アーキテクチャ（ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨＴ）相互接続、業界標準アーキテクチャ（ＩＳＡ）バス、インフィニバンド相互接続、ロウピンカウント（ＬＰＣ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、周辺機器相互接続（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）バス、ビデオエレクトロニクス標準協会ローカル（ＶＬＢ）バス、その他適当なバス、またはこれらの組み合わせを含んでいてもよい。
【０１６５】
上述の通り、システム１００は、ソーシャル・ネットワーキング・システムを含み得る。ソーシャル・ネットワーキング・システムによって、そのユーザ（人または組織など）が、システムに対しておよび互いに対話をすることが可能になる。ソーシャル・ネットワーキング・システムは、ユーザからの入力により、ユーザに関連付けられているユーザプロフィールを作成して上記ソーシャル・ネットワーキング・システムに記憶するようにしてもよい。ユーザプロフィールには、人口統計学的情報、通信チャンネル情報、およびユーザの個人的関心に関する情報を含んでいてもよい。また、ソーシャル・ネットワーキング・システムは、ユーザからの入力により、上記ユーザのソーシャル・ネットワーキング・システムの他ユーザとの関係のレコードを作成して記憶するとともに、ユーザ間の社会的対話を行わせるサービス（たとえば、投稿、写真共有、イベント統合、メッセージング、ゲーム、または広告）を提供するようにしてもよい。
【０１６６】
ソーシャル・ネットワーキング・システムは、複数のノードと、ノード同士をつなげている複数のエッジとを備えるソーシャルグラフ内のユーザおよびユーザ間の関係の記録を記憶し得る。ノードは、複数のユーザ・ノードと、複数のコンセプト・ノードとを含み得る。ソーシャルグラフのユーザ・ノードは、ソーシャル・ネットワーキング・システムのユーザに対応し得る。ユーザは、個人（人間のユーザ）、エンティティ（例えば、企業、ビジネス、もしくはサードパーティ・アプリケーション）、またはグループ（例えば、個人もしくはエンティティ）であってもよい。ユーザに対応するユーザ・ノードは、ユーザによって提供される情報と、ソーシャル・ネットワーキング・システムを含む様々なシステムによって集められた情報とを含み得る。
【０１６７】
例えば、ユーザは、ユーザ・ノードに含まれるべき、ユーザ自身の名前、プロフィール写真、居住市、連絡先情報、生年月日、性別、配偶者の有無、家族構成、職業、学歴、好み、興味、および他の人口統計学的情報を提供してもよい。ソーシャルグラフの各ユーザ・ノードは、対応するウェブページ（典型的には、プロフィール・ページとして知られている）を有してもよい。ユーザ名を含む要求に応答して、ソーシャル・ネットワーキング・システムは、そのユーザ名に対応するユーザ・ノードにアクセスし、そのユーザ名、プロフィール写真、およびユーザに関連付けられた他の情報を含むプロフィール・ページを構築することができる。第１のユーザのプロフィール・ページは、第１のユーザによる１つまたは複数のプライバシー設定、および第１のユーザと第２のユーザとの間の関係に基づいて、第１のユーザの情報の一部または全部が第２のユーザに対して表示され得る。
【０１６８】
コンセプト・ノードは、ソーシャル・ネットワーキング・システムのコンセプトに対応し得る。例えば、コンセプトは、現実世界のエンティティ、例えば、映画、歌、スポーツ・チーム、有名人、グループ、レストラン、または位置もしくはロケーションを表現することができる。コンセプトに対応するコンセプト・ノードの管理ユーザは、（例えば、オンライン・フォームに記入することにより）コンセプトの情報を提供することによってコンセプト・ノードを作成し、または更新して、ソーシャル・ネットワーキング・システムに、その情報をコンセプト・ノードに関連付けさせ得る。限定ではなく、例として、コンセプトに関連付けられた情報は、名前もしくはタイトル、１つもしくは複数の画像（例えば、書籍のカバーページの画像）、ウェブサイト（例えば、ＵＲＬアドレス）または連絡先情報（例えば、電話番号、電子メール・アドレス）を含むことができる。ソーシャルグラフの各コンセプト・ノードは、ウェブページに対応し得る。例えば、名前を含む要求に応答して、ソーシャル・ネットワーキング・システムは、その名前に対応するコンセプト・ノードにアクセスし、そのコンセプトに関連付けられた名前および他の情報を含むウェブページを構築することができる。
【０１６９】
１対のノード間のエッジは、その対のノード間の関係を表現し得る。例えば、２つのユーザ・ノード間のエッジは、２人のユーザ間の友情を表現することができる。別の例として、ソーシャル・ネットワーキング・システムは、ウェブページ内に１つまたは複数の選択可能なオプションまたは選択可能な要素（例えば、「いいね」、「チェックイン」）を組み込んだ、コンセプト・ノード（例えば、レストラン、有名人）のウェブ・ページ（または、構造化文書）を構築してもよい。ユーザは、ユーザのクライアント・デバイスによってホストされているウェブ・ブラウザを使用してそのページにアクセスし、選択可能なオプションまたは選択可能な要素を選択して、クライアント装置に、ユーザとコンセプトとの間の関係を示す（例えば、ユーザがレストランにチェックインする、またはユーザが有名人に対して「いいね」を表明する）、ユーザのユーザ・ノードとコンセプトのコンセプト・ノードとの間のエッジを作成するための要求を、ソーシャル・ネットワーキング・システムへ送信させ得る。
【０１７０】
例として、ユーザは、ユーザ自身の居住市を提供して（または変化させて）、ソーシャル・ネットワーキング・システムに、ユーザに対応するユーザ・ノードと、ユーザによってユーザ自身の居住市として公言された都市に対応するコンセプト・ノードとの間のエッジを作成させてもよい。また、任意の２つのノード間の分離度合いは、１つのノードから別のノードまでソーシャルグラフを辿るのに必要なホップの最小数として定義される。２つのノード間の分離度合いは、ソーシャルグラフ内の２つのノードによって表現されるユーザ間またはコンセプト間の関連性の基準とみなされ得る。例えば、１つのエッジによって直接つながれている（すなわち、第１級のノード（first-degree node）である）ユーザ・ノードを有する２人のユーザは、「つながりのあるユーザ」または「友達」として説明され得る。同様に、別のユーザ・ノードを通じてのみつながっている（すなわち、第２級のノードである）ユーザ・ノードを有する２人のユーザは、「友達の友達」として説明され得る。
【０１７１】
ソーシャル・ネットワーキング・システムは、様々なアプリケーション、例えば、写真共有、オン・ライン・カレンダーおよびイベント、ゲーム、インスタント・メッセージング、ならびに広告をサポートし得る。例えば、ソーシャル・ネットワーキング・システムは、メディア共有能力も含んでもよい。また、ソーシャル・ネットワーキング・システムは、ユーザがユーザのプロフィール・ページに対して、またはアルバムにおいて、写真および他のマルチメディア・コンテンツ・アイテムを投稿すること（典型的には「ウォール投稿」または「タイムライン投稿」として知られている）を可能にしてもよく、プロフィール・ページとアルバムとの双方は、ユーザにより設定されたプライバシー設定に依存して、ソーシャル・ネットワーキング・システムの他のユーザにとってアクセス可能であってもよい。ソーシャル・ネットワーキング・システムは、ユーザがイベントを設定することも可能にし得る。例えば、第１のユーザは、イベントの日時、イベントのロケーション、およびイベントへ招待された他のユーザを含む属性を用いて、イベントを設定してもよい。招待されたユーザは、イベントへの招待を受信し、（招待を受諾すること、または招待を断ることなどによって）応答し得る。さらに、ソーシャル・ネットワーキング・システムは、ユーザが個人のカレンダーを維持することを可能にし得る。イベントと同様に、カレンダー・エントリーは、他のユーザの時間、日付、ロケーションおよびアイデンティティを含んでもよい。
【０１７２】
図８は、ソーシャル・ネットワーキング・システムの例となるネットワーク環境８００を例示する。ネットワーク環境８００は、ネットワーク８０４によって互いに接続された、クライアントシステム８０６と、ソーシャル・ネットワーキング・システム８０２と、サードパーティ・システム８０８とを含む。図８は、クライアントシステム８０６、ソーシャル・ネットワーキング・システム８０２、サードパーティ・システム８０８、およびネットワーク８０４の特定の構成を例示しているが、この開示は、クライアントシステム８０６、ソーシャル・ネットワーキング・システム８０２、サードパーティ・システム８０８、およびネットワーク８０４の任意の適切な構成を企図したものである。限定としてではなく、一例として、クライアントシステム８０６、ソーシャル・ネットワーキング・システム８０２、およびサードパーティ・システム８０８のうちの２つ以上が、ネットワーク８０４をバイパスして、直接的に互いに接続されてもよい。別の例として、クライアントシステム８０６、ソーシャル・ネットワーキング・システム８０２、およびサードパーティ・システム８０８のうちの２つ以上が、全体的にまたは部分的に互いと物理的または論理的に共同設置されてもよい。さらに、図８は、特定の数のクライアントシステム８０６、ソーシャル・ネットワーキング・システム８０２、サードパーティ・システム８０８、およびネットワーク８０４を例示しているが、この開示は、任意の適切な数のクライアントシステム８０６、ソーシャル・ネットワーキング・システム８０２、サードパーティ・システム８０８、およびネットワーク８０４を企図したものである。限定としてではなく、一例として、ネットワーク環境８００は、複数のクライアントシステム８０６と、ソーシャル・ネットワーキング・システム８０２と、サードパーティ・システム８０８と、ネットワーク８０４とを含んでよい。
【０１７３】
本開示は、任意の適切なネットワーク８０４を企図したものである。限定としてではなく、一例として、ネットワーク８０４の１つまたは複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、セルラー電話ネットワーク、またはこれらのうちの２つ以上の組み合わせを含んでよい。ネットワーク８０４は、１つまたは複数のネットワーク８０４を含み得る。
【０１７４】
リンクは、クライアントシステム８０６、ソーシャル・ネットワーキング・システム８０２、およびサードパーティ・システム８０８を通信ネットワーク８０４に対して、または互いに対して接続し得る。本開示は、任意の適切なリンクを企図したものである。特定の実施形態では、１つまたは複数のリンクとしては、１つまたは複数のワイヤライン・リンク（たとえば、デジタル加入者線（ＤＳＬ）またはＤａｔａ  Ｏｖｅｒ  Ｃａｂｌｅ  Ｓｅｒｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＤＯＣＳＩＳ）など）、無線リンク（たとえば、Ｗｉ−ＦｉまたはＷｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ（ＷｉＭＡＸ）など）、または光リンク（たとえば、同期型光ネットワーク（ＳＯＮＥＴ）または同期デジタル・ハイアラーキ（ＳＤＨ）など）がある。特定の実施形態では、１つまたは複数のリンクは各々、アドホック・ネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラー技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク、または２つ以上のそのようなリンクの組み合わせを含む。リンクは、必ずしもネットワーク環境８００全体を通じて同じである必要はない。１つまたは複数の第１のリンクは、１つまたは複数の点において、１つまたは複数の第２のリンクと異なってよい。
【０１７５】
特定の実施形態において、クライアントシステム８０６は、ハードウェア、ソフトウェア、または組み込みロジック・コンポーネントもしくは２つ以上のそのようなコンポーネントの組み合わせを含み、クライアントシステム８０６によって実装され、またはサポートされている適当な機能性を実行することが可能な電子デバイスであり得る。限定ではなく、例として、クライアントシステム８０６は、コンピュータシステム、例えば、デスクトップ・コンピュータ、ノート型コンピュータもしくはラップトップ・コンピュータ、ネットブック、タブレット・コンピュータ、ｅブック・リーダ、ＧＰＳデバイス、カメラ、携帯情報端末（ＰＤＡ）、ハンドヘルド電子デバイス、携帯電話、スマートフォン、他の適切な電子デバイス、または、これらの任意の適切な組み合わせなどを含んでもよい。本開示は、任意の適切なクライアントシステム８０６を想定している。クライアントシステム８０６は、クライアントシステム８０６のネットワークユーザがネットワーク８０４にアクセスすることを可能にし得る。クライアントシステム８０６は、そのユーザが他のクライアントシステム８０６の他のユーザと通信することを可能にしてもよい。
【０１７６】
特定の実施形態では、クライアントシステム８０６は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ、またはＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸなどのウェブ・ブラウザ９３２を含んでよく、１つまたは複数のアドオン、プラグイン、またはツールバーもしくはＹＡＨＯＯツールバーなどの他の拡張機能を有してよい。クライアントシステム８０６におけるユーザは、ユニフォーム・リソース・ロケータ（ＵＲＬ）またはウェブ・ブラウザを特定のサーバ（サーバ、またはサードパーティ・システム８０８に関連付けられているサーバなど）に対して宛てる他のアドレスを入力してよく、ウェブ・ブラウザは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を生成し、ＨＴＴＰ要求をサーバに対して通信し得る。サーバは、ＨＴＴＰ要求を受け入れ、ＨＴＴＰ要求に応答して１つまたは複数のハイパーテキスト・マークアップ言語（ＨＴＭＬ）ファイルをクライアントシステム８０６に対して通信し得る。クライアントシステム８０６は、ユーザに対する提示のために、サーバからのＨＴＭＬファイルに基づいてウェブページをレンダリングし得る。本開示は、任意の適切なウェブページ・ファイルを企図したものである。限定としてではなく、一例として、ウェブページは、特定のニーズに従って、ＨＴＭＬファイル、拡張可能ハイパーテキスト・マークアップ言語（ＸＨＴＭＬ）ファイル、または拡張可能マークアップ言語（ＸＭＬ）ファイルからレンダリングし得る。そのようなページはまた、たとえば、限定されるものではないが、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＪＡＶＡ（登録商標）、ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴで記述されたスクリプトなどのスクリプト、ＡＪＡＸ（非同期ＪＡＶＡＳＣＲＩＰＴおよびＸＭＬ）などのマークアップ言語とスクリプトの組み合わせなどを実行し得る。本明細書では、ウェブページに対する参照は、適切な場合、１つまたは複数の対応するウェブページ・ファイル（ブラウザがウェブページをレンダリングするために使用し得る）を包含し、逆も同様である。
【０１７７】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、オンライン・ソーシャル・ネットワークをホストする、ネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャル・ネットワーキング・システム８０２は、たとえばユーザプロファイル・データ、概念プロファイル・データ、ソーシャルグラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の適切なデータなどのソーシャルネットワーキング・データを生成、記憶、受信、および送信し得る。ソーシャル・ネットワーキング・システム８０２は、直接的に、またはネットワーク８０４を介して、のどちらかで、ネットワーク環境８００の他の構成要素によってアクセスされ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、１つまたは複数のサーバを含み得る。各サーバは、単体サーバであってもよいし、複数のコンピュータまたは複数のデータセンタにまたがる分散サーバであってもよい。サーバは、たとえば限定されるものではないが、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、交換サーバ、データベース・サーバ、プロキシ・サーバ、本明細書で説明される機能もしくはプロセスを実行するのに適した別のサーバ、またはそれらの任意の組み合わせなどの、さまざまなタイプであってよい。特定の実施形態では、各サーバは、ハードウェア、ソフトウェア、または埋め込まれた論理構成要素、またはサーバによって実施もしくはサポートされる適切な機能を実行するための２つ以上そのような構成要素の組み合わせを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、１つまたは複数のデータ・ストアを含み得る。データ・ストアは、さまざまなタイプの情報を記憶するために使用され得る。特定の実施形態では、データ・ストア内に記憶される情報は、具体的なデータ構造に従って編成され得る。特定の実施形態では、各データ・ストアは、リレーショナル・データベース、カラムナ・データベース、相関データベース、または他の適切なデータベースであってよい。本開示は特定のタイプのデータベースを説明または例示しているが、本開示は、任意の適切なタイプのデータベースを企図するものである。特定の実施形態は、クライアントシステム８０６、ソーシャル・ネットワーキング・システム８０２、またはサードパーティ・システム８０８がデータ・ストア内に記憶された情報を管理する、取り出す、修正する、追加する、または削除することを可能にするインターフェースを提供し得る。
【０１７８】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、１つまたは複数のデータ・ストア内に１つまたは複数のソーシャルグラフを記憶し得る。特定の実施形態では、ソーシャルグラフは、複数のユーザ・ノード（各々が特定のユーザに対応する）または複数の概念ノード（各々が特定の概念に対応する）を含み得る複数のノードと、ノードを接続する複数のエッジを含み得る。ソーシャル・ネットワーキング・システム８０２は、オンライン・ソーシャル・ネットワークのユーザに、他のユーザと通信および対話できることを提供し得る。特定の実施形態では、ユーザは、ソーシャル・ネットワーキング・システム８０２を介してオンライン・ソーシャル・ネットワークに加わり、次いで、ユーザが接続されたいソーシャル・ネットワーキング・システム８０２の何人かの他のユーザに対して接続（たとえば、関係）を追加し得る。本明細書では、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム８０２を介して接続、関連付け、または関係を形成した、ソーシャル・ネットワーキング・システム８０２の他の任意のユーザを指し得る。
【０１７９】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、ソーシャル・ネットワーキング・システム８０２によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに対してアクションをとることをユーザに提供し得る。限定としてではなく、一例として、アイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム８０２のユーザが属し得るグループもしくはソーシャル・ネットワーク、ユーザが興味を抱き得るイベントもしくはカレンダー記載事項、ユーザが使用し得るコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売し得る取引、ユーザが実行し得る広告との対話、または他の適切なアイテムもしくはオブジェクトを含み得る。ユーザは、ソーシャル・ネットワーキング・システム８０２内で、またはサードパーティ・システム８０８の外部システムによって表されることが可能なものと対話し得、サードパーティ・システム８０８は、ソーシャル・ネットワーキング・システム８０２とは別個であり、ネットワーク８０４を介してソーシャル・ネットワーキング・システム８０２に結合される。
【０１８０】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、さまざまなエンティティをリンクすることが可能であり得る。限定としてではなく、一例として、ソーシャル・ネットワーキング・システム８０２は、ユーザが、互いと対話し、ならびにサードパーティ・システム８０８もしくは他のエンティティからコンテンツを受信する、またはユーザが、アプリケーション・プログラミング・インターフェース（ＡＰＩ）もしくは他の通信チャネルを通して、これらのエンティティと対話できることを可能にし得る。
【０１８１】
特定の実施形態では、サードパーティ・システム８０８は、１つもしくは複数のタイプのサーバ、１つもしくは複数のデータ・ストア、限定されるものではないがＡＰＩを含む１つもしくは複数のインターフェース、１つもしくは複数のウェブ・サービス、１つもしくは複数のコンテンツ・ソース、１つもしくは複数のネットワーク、または、たとえばサーバが通信し得る他の任意の適切な構成要素であり得る。サードパーティ・システム８０８は、ソーシャル・ネットワーキング・システム８０２を運用するエンティティからの異なるエンティティによって運用され得る。しかしながら、特定の実施形態では、ソーシャル・ネットワーキング・システム８０２およびサードパーティ・システム８０８は、ソーシャル・ネットワーキング・システム８０２またはサードパーティ・システム８０８のユーザにソーシャルネットワーキング・サービスを提供するために互いに運用し得る。この意味で、ソーシャル・ネットワーキング・システム８０２は、サードパーティ・システム８０８などの他のシステムがインターネット全体にわたってソーシャルネットワーキング・サービスおよび機能をユーザに対して提供するために使用し得るプラットフォームすなわちバックボーンを提供し得る。
【０１８２】
特定の実施形態では、サードパーティ・システム８０８は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含み得る。サードパーティ・コンテンツ・オブジェクト・プロバイダは、クライアントシステム８０６に対して通信され得るコンテンツ・オブジェクトの１つまたは複数のソースを含み得る。限定としてではなく、一例として、コンテンツ・オブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の適切な情報などの、ユーザの興味を引く物事またはアクティビティに関する情報を含み得る。限定としてではなく、別の例として、コンテンツ・オブジェクトは、クーポン、割引チケット、商品券、または他の適切な報償となるオブジェクトなどの、報償となるコンテンツ・オブジェクトを含み得る。
【０１８３】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、ソーシャル・ネットワーキング・システム８０２とのユーザの対話を向上させ得る、ユーザにより生成されたコンテンツ・オブジェクトも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム８０２に対して追加、アップロード、送信、または「投稿する」ものを含み得る。限定としてではなく、一例として、ユーザが、クライアントシステム８０６からソーシャル・ネットワーキング・システム８０２に対して投稿を通信する。投稿としては、ステータス更新もしくは他のテキスト・データ、ロケーション情報、フォト、映像、リンク、音楽、または他の類似のデータもしくはメディアなどのデータがあり得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を介して、サードパーティによってソーシャル・ネットワーキング・システム８０２に対して追加され得る。
【０１８４】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、さまざまなサーバと、サブシステムと、プログラムと、モジュールと、ログと、データ・ストアとを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、ウェブ・サーバ、アクション・ロガー、ＡＰＩ要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類器、通知コントローラ、アクション・ログ、サードパーティコンテンツ・オブジェクト公開（exposure）ログ、推測モジュール、許可／プライバシー・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインターフェース・モジュール、ユーザプロファイル・ストア、接続ストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの１つまたは複数を含んでよい。ソーシャル・ネットワーキング・システム８０２は、ネットワーク・インターフェース、セキュリティ機構、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワーク運用コンソール、他の適切な構成要素、またはそれらの任意の適切な組み合わせなどの、適切な構成要素も含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、ユーザ・プロファイルを記憶するための１つまたは複数のユーザプロファイル・ストアを含んでよい。ユーザ・プロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、社会情報、または職歴、学歴、趣味もしくは好み、興味、親密度、もしくはロケーションなどの他のタイプの記述情報を含み得る。興味情報は、１つまたは複数のカテゴリに関係する興味を含み得る。カテゴリは、汎用的であってもよいし、具体的であってもよい。限定としてではなく、一例として、ユーザが、靴のブランドについての記事に対して「いいね」を表明する場合、そのカテゴリはブランドであってもよいし、「靴」または「衣類」という汎用的なカテゴリであってもよい。接続ストアは、ユーザについての接続情報を記憶するために使用され得る。接続情報は、類似もしくは共通の職歴、グループ会員資格、趣味、学歴を有する、または、いかなる形であれ関係する、もしくは共通属性を共有するユーザを示してよい。接続情報は、異なるユーザとコンテンツ（内部と外部の両方）との間の、ユーザにより定義された接続も含み得る。ウェブ・サーバは、ネットワーク８０４を介して１つもしくは複数のクライアントシステム８０６または１つもしくは複数のサードパーティ・システム８０８に対してソーシャル・ネットワーキング・システム８０２をリンクするために使用され得る。ウェブ・サーバは、ソーシャル・ネットワーキング・システム８０２と１つまたは複数のクライアントシステム８０６との間でメッセージを受信およびルーティングするためのメール・サーバまたは他のメッセージング機能を含んでよい。ＡＰＩ要求サーバは、サードパーティ・システム８０８が、１つまたは複数のＡＰＩを呼び出すことによって、ソーシャル・ネットワーキング・システム８０２からの情報にアクセスすることを可能にし得る。アクション・ロガーは、ソーシャル・ネットワーキング・システム８０２上またはそれ以外の場所でのユーザのアクションについて���ェブ・サーバから通信を受信するために使用され得る。アクション・ログとともに、サードパーティコンテンツ・オブジェクトに対するユーザ公開のサードパーティコンテンツオブジェクト・ログが維持され得る。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアントシステム８０６に対して提供し得る。情報は、通知としてクライアントシステム８０６に対してプッシュされてもよいし、情報は、クライアントシステム８０６から受信された要求に応答してクライアントシステム８０６からプルされてもよい。許可サーバは、ソーシャル・ネットワーキング・システム８０２のユーザの１つまたは複数のプライバシー設定を強制するために使用され得る。ユーザのプライバシー設定は、ユーザに関連付けられている特定の情報がどのように共有可能であるかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、アクションをソーシャル・ネットワーキング・システム８０２によってログさせること、または他のシステム（たとえば、サードパーティ・システム８０８）とともに共有させることに加わる、または加わらない（opt in to or opt out of）ことを可能にする。サードパーティコンテンツオブジェクト・ストアは、サードパーティ・システム８０８などのサードパーティから受信されたコンテンツ・オブジェクトを記憶するために使用され得る。ロケーション・ストアは、ユーザに関連付けられているクライアントシステム８０６から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、社会情報、現在の時間、ロケーション情報、または他の適切な情報を組み合わせて、通知の形で関係のある広告をユーザに対して提供し得る。
【０１８５】
図９は、例となるソーシャルグラフ９００を例示する。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、１つまたは複数のデータ・ストア内に１つまたは複数のソーシャルグラフ９００を記憶し得る。特定の実施形態では、ソーシャルグラフ９００は、複数のユーザ・ノード９０２または複数の概念ノード９０４を含み得る複数のノードと、ノードを接続する複数のエッジ９０６とを含み得る。図９に例示される例となるソーシャルグラフ９００は、教説的な目的で、２次元の視覚的なマップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２、クライアントシステム８０６、またはサードパーティ・システム８０８は、適切なアプリケーションのためのソーシャルグラフ９００および関係するソーシャルグラフ情報にアクセスし得る。ソーシャルグラフ９００のノードおよびエッジは、たとえば、データ・ストア（ソーシャルグラフ・データベースなど）内に、データ・オブジェクトとして記憶され得る。そのようなデータ・ストアは、ソーシャルグラフ９００のノードまたはエッジの１つまたは複数の検索可能またはクエリ可能なインデックスを含み得る。
【０１８６】
特定の実施形態では、ユーザ・ノード９０２は、ソーシャル・ネットワーキング・システム８０２のユーザに対応し得る。限定としてではなく、一例として、ユーザは、ソーシャル・ネットワーキング・システム８０２と、またはその上で対話または通信する、個人（人間ユーザ）、エンティティ（たとえば、企業、会社、もしくはサードパーティ・アプリケーション）、または（たとえば、個人もしくはエンティティの）グループであってよい。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム８０２に口座を登録するとき、ソーシャル・ネットワーキング・システム８０２は、ユーザに対応するユーザ・ノード９０２を作成し、１つまたは複数のデータ・ストア内にユーザ・ノード９０２を記憶し得る。本明細書で説明されるユーザおよびユーザ・ノード９０２は、適切な場合には、登録されたユーザと、登録されたユーザに関連付けられているユーザ・ノード９０２を指し得る。加えて、または代替として、本明細書で説明されるユーザおよびユーザ・ノード９０２は、適切な場合には、ソーシャル・ネットワーキング・システム８０２に登録されていないユーザを指し得る。特定の実施形態では、ユーザ・ノード９０２は、ユーザによって提供される情報、またはソーシャル・ネットワーキング・システム８０２を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、ユーザは、自分の名前、プロファイル・ピクチャ、連絡先情報、誕生日、性別、配偶者の有無、家族構成、職業、学歴、好み、興味、または他の人口統計学的情報を提供し得る。特定の実施形態では、ユーザ・ノード９０２は、ユーザに関連する情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、ユーザ・ノード９０２は、１つ以上のウェブページに対応することができる。
【０１８７】
特定の実施形態では、概念ノード９０４は概念に対応し得る。限定としてではなく、一例として、概念は、場所（たとえば、映画館、レストラン、ランドマーク、もしくは都市など）、ウェブサイト（たとえば、ソーシャルネットワーク・システム８０２に関連付けられているウェブサイト、もしくはウェブアプリケーション・サーバに関連付けられているサードパーティ・ウェブサイトなど）、エンティティ（たとえば、人物、会社、グループ、スポーツ・チーム、もしくは有名人など）、ソーシャル・ネットワーキング・システム８０２の中もしくはウェブアプリケーション・サーバなどの外部サーバ上に配置され得るリソース（たとえば、オーディオ・ファイル、映像ファイル、デジタル・フォト、テキスト・ファイル、構造化文書、もしくはアプリケーションなど）、物的財産もしくは知的財産（たとえば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著書など）、ゲーム、アクティビティ、アイデア、もしくは理論、別の適切な概念、または２つ以上のそのような概念に対応し得る。概念ノード９０４は、ユーザによって提供される概念の情報、またはソーシャル・ネットワーキング・システム８０２を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、概念の情報としては、名前もしくはタイトル、１つもしくは複数の画像（たとえば、本のカバー・ページの画像）、ロケーション（たとえば、住所もしくは地理的ロケーション）、ウェブサイト（ＵＲＬに関連付けられ得る）、連絡先情報（たとえば、電話番号もしくは電子メール・アドレス）、他の適切な概念情報、またはそのような情報の任意の適切な組み合わせがあり得る。特定の実施形態では、概念ノード９０４は、概念ノード９０４に関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられ得る。特定の実施形態では、概念ノード９０４は、１つまたは複数のウェブページに対応し得る。
【０１８８】
特定の実施形態では、ソーシャルグラフ９００内のノードは、ウェブページ（「プロファイル・ページ」と呼ばれることがある）を表してもよいし、これによって表されてもよい。プロファイル・ページは、ソーシャル・ネットワーキング・システム８０２によってホストされてもよいし、これに対してアクセス可能であってもよい。プロファイル・ページはまた、サードパーティ・サーバ８０８に関連付けられているサードパーティ・ウェブサイト上にホストされ得る。限定としてではなく、一例として、特定の外部のウェブページに対応するプロファイル・ページは特定の外部ウェブページであってよく、プロファイル・ページは特定の概念ノード９０４に対応し得る。プロファイル・ページは、他のユーザのすべてまたは選択されたサブセットによって閲覧することができてよい。限定としてではなく、一例として、ユーザ・ノード９０２は、対応するユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応するユーザプロファイル・ページを有し得る。限定としてではなく、別の例として、概念ノード９０４は、特に概念ノード９０４に対応する概念に関係して１つまたは複数のユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応する概念プロファイル・ページを有し得る。
【０１８９】
特定の実施形態では、概念ノード９０４は、サードパーティ・システム８０８によってホストされるサードパーティ・ウェブページまたはリソースを表し得る。サードパーティ・ウェブページまたはリソースは、要素の中でもとりわけ、アクションまたはアクティビティを表すコンテンツ、選択可能なアイコンもしくは他のアイコン、または他の対話可能なオブジェクト（たとえば、ＪａｖａＳｃｒｉｐｔコード、ＡＪＡＸコード、またはＰＨＰコードで実装され得る）を含んでよい。限定としてではなく、一例として、サードパーティ・ウェブページは、「いいね」、「チェック・イン」、「食べる」、「推奨」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含み得る。サードパーティ・ウェブページを閲覧するユーザは、アイコンのうちの１つ（たとえば、「食べる」）を選択し、クライアントシステム８０６に、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム８０２に対して送信させることによって、アクションを実行し得る。メッセージに応答して、ソーシャル・ネットワーキング・システム８０２は、ユーザに対応するユーザ・ノード９０２とサードパーティ・ウェブページまたはリソースに対応する概念ノード９０４との間にエッジ（たとえば、「食べる」エッジ）を作成し、１つまたは複数のデータ・ストア内にエッジ９０６を記憶し得る。
【０１９０】
特定の実施形態では、ソーシャルグラフ９００内のノードのペアは、１つまたは複数のエッジ９０６によって互いに接続され得る。ノードのペアを接続するエッジ９０６は、ノードのペアの間の関係を表し得る。特定の実施形態では、エッジ９０６は、ノードのペアの間の関係に対応する１つまたは複数のデータ・オブジェクトまたは属性を含み得るまたはこれを表し得る。限定としてではなく、一例として、第１のユーザは、第２のユーザが第１のユーザの「友達」であることを示し得る。この標識に応答して、ソーシャル・ネットワーキング・システム８０２は、第２のユーザに対して「友達要求」を送信し得る。第２のユーザが「友達要求」を確かめる場合、ソーシャル・ネットワーキング・システム８０２は、ソーシャルグラフ９００内の第１のユーザのユーザ・ノード９０２を第２のユーザのユーザ・ノード９０２に対して接続するエッジ９０６を作成し、エッジ９０６をソーシャルグラフ情報としてデータ・ストアのうちの１つまたは複数に記憶し得る。図９の例では、ソーシャルグラフ９００は、ユーザ「Ａ」とユーザ「Ｂ」のユーザ・ノード９０２間の友達関係を示すエッジ９０６と、ユーザ「Ｃ」とユーザ「Ｂ」のユーザ・ノード９０２間の友達関係を示すエッジとを含む。本開示は、特定のユーザ・ノード９０２を接続する、特定の属性を有する特定のエッジ９０６を説明または例示しているが、本開示は、ユーザ・ノード９０２を接続する、任意の適切な属性を有する任意の適切なエッジ９０６を企図するものである。限定としてではなく、一例として、エッジ９０６は、友達関係、家族関係、ビジネスすなわち雇用関係、ファン関係、フォロワー関係、ビジター関係、購読者関係、上下関係、相互関係、非相互関係、別の適切なタイプの関係、または２つ以上のそのような関係を表し得る。さらに、本開示は一般に、ノードを、接続されていると説明しているが、本開示は、ユーザまたは概念も、接続されていると説明する。本明細書では、接続されているユーザまたは概念への参照は、適切な場合には、ソーシャルグラフ９００内で１つまたは複数のエッジ９０６によって接続されているそれらのユーザまたは概念に対応するノードに及ぶ。
【０１９１】
特定の実施形態では、ユーザ・ノード９０と概念ノード９０４との間のエッジ９０６は、概念ノード９０４に関連付けられている概念のためにユーザ・ノード９０２に関連付けられているユーザによって実行される特定のアクションまたはアクティビティを表し得る。限定としてではなく、一例として、図９に例示されるように、ユーザは、概念に対して「いいね」を表明し、「通学した」、「プレイした」、「聞いた」、「料理した」、「働いた」、または概念を「見た」とする。その各々は、エッジ・タイプまたはサブタイプに対応し得る。概念ノード９０４に対応する概念プロファイル・ページは、たとえば、選択可能な「チェック・イン」アイコン（たとえば、クリック可能な「チェック・イン」アイコンなど）または選択可能な「お気に入りに追加」アイコンを含んでよい。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム８０２は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェック・イン」エッジを作成してよい。限定としてではなく、別の例として、ユーザ（ユーザ「Ｃ」）は、特定のアプリケーション（オンライン音楽アプリケーションであるＳＰＯＴＩＦＹ）を使用して特定の歌（「ランブル・オン」）を聞くことがある。この場合、ソーシャル・ネットワーキング・システム８０２は、ユーザがその歌を聞き、そのアプリケーションを使用したことを示すため、にユーザに対応するユーザ・ノード９０２と歌およびアプリケーションに対応する概念ノード９０４との間に「聞いた」エッジ９０６および「使用した」エッジ（図９に例示される）を作成し得る。さらに、ソーシャル・ネットワーキング・システム８０２は、特定の歌が特定のアプリケーションによってプレイ（再生）されたことを示すために、歌およびアプリケーションに対応する概念ノード９０４間に「プレイした」エッジ９０６（図９に例示される）を作成し得る。この場合、「プレイした」エッジ９０６は、外部オーディオ・ファイル（歌「イマジン」）に対して外部アプリケーション（ＳＰＯＴＩＦＹ）によって実行されるアクションに対応する。本開示は、ユーザ・ノード９０２および概念ノード９０４を接続する、特定の属性を有する特定のエッジ９０６を説明しているが、本開示は、ユーザ・ノード９０２および概念ノード９０４を接続する、任意の適切な属性を有する任意の適切なエッジ９０６を企図するものである。そのうえ、本開示は、単一の関係を表す、ユーザ・ノード９０２と概念ノード９０４との間のエッジを説明しているが、本開示は、１つまたは複数の関係を表す、ユーザ・ノード９０２と概念ノード９０４との間のエッジを企図する。限定としてではなく、一例として、エッジ９０６は、ユーザが特定の概念に対して「いいね」を表明したことと、特定の概念において使用したことの両方を表し得る。代替的に、別のエッジ９０６は、ユーザ・ノード９０２と概念ノード９０４との間の各タイプの関係（または単一の関係の倍数）を表し得る（図９では、ユーザ「Ｅ」のユーザ・ノード９０２と「ＳＰＯＴＩＦＹ」の概念ノード９０４との間に例示される）。
【０１９２】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、ソーシャルグラフ９００内のユーザ・ノード９０２と概念ノード９０４との間にエッジ９０６を作成し得る。限定としてではなく、一例として、（たとえば、ユーザのクライアントシステム８０６によってホストされるウェブ・ブラウザまたは特殊目的アプリケーションを使用することなどによって）概念プロファイル・ページを閲覧するユーザは、自分は概念ノード９０４によって表される概念に対して「いいね」を表明したことを、「いいね」アイコンをクリックまたは選択することによって示し得、それは、ユーザは概念プロファイル・ページに関連付けられている概念に対して「いいね」を表明したことを示すメッセージをソーシャル・ネットワーキング・システム８０２に対して送信することをユーザのクライアントシステム８０６に行わせ得る。メッセージに応答して、ソーシャル・ネットワーキング・システム８０２は、ユーザと概念ノード９０４との間の「いいね」エッジ９０６によって例示されるように、ユーザに関連付けられているユーザ・ノード９０２と概念ノード９０４との間にエッジ９０６を作成し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、１つまたは複数のデータ・ストアにエッジ９０６を記憶し得る。特定の実施形態では、エッジ９０６は、特定のユーザ・アクションに応答して、ソーシャル・ネットワーキング・システム８０２によって自動的に形成され得る。限定としてではなく、一例として、第１のユーザがピクチャをアップロードする、映画を見る、または歌を聞く場合、エッジ９０６は、第１のユーザに対応するユーザ・ノード９０２とそれらの概念に対応する概念ノード９０４との間に形成され得る。本開示は、特定の様式で特定のエッジ９０６を形成することを説明しているが、本開示は、任意の適切な様式で任意の適切なエッジ９０６を形成することを企図するものである。
【０１９３】
特定の実施形態では、広告は、テキスト（ＨＴＭＬリンクであってよい）、１つもしくは複数の画像（ＨＴＭＬリンクであってよい）、１つもしくは複数の映像、オーディオ、１つもしくは複数のＡＤＯＢＥ  ＦＬＡＳＨファイル、これらの適切な組み合わせ、または１つもしくは複数のウェブページ上で、１つもしくは複数の電子メール内で、もしくはユーザによって要求された検索結果に関係して、提示される任意の適切なデジタル・フォーマットの他の任意の適切な広告であってよい。加えて、または代替として、広告は、１つまたは複数のスポンサー付きストーリー（たとえば、ソーシャル・ネットワーキング・システム８０２上のニュースフィードまたはティッカー・アイテム）である。スポンサー付きストーリーは、たとえば、ソーシャル・アクションを、ユーザのプロファイル・ページまたは他のページの所定のエリア内に提示させる、広告主に関連付けられている追加の情報とともに提示させる、他のユーザのニュースフィードもしくはティッカー内で衝突させるもしくは別のやり方で目立たせる、または別のやり方でプロモーションさせることによって広告主がプロモーションする、ユーザによるソーシャル・アクション（ページに対して「いいね」を表明する、ページ上の投稿に対して「いいね」を表明するもしくはコメントする、ページに関連付けられているイベントの出欠を返事する、ページ上で投稿された質問に関して投稿する、ある場所にチェック・インする、アプリケーションを使用するもしくはゲームをする、またはウェブサイトを「リンク」もしくは共有するなど）であってよい。広告主は、ソーシャル・アクションをプロモーションさせるために支払うことがある。限定としてではなく、一例として、広告は検索結果ページの検索結果の間に含まれてよく、そこでは、スポンサー付きコンテンツは、スポンサー付きでないコンテンツよりもプロモーションされる。
【０１９４】
特定の実施形態では、広告は、ソーシャルネットワーキングシステム・ウェブページ、サードパーティ・ウェブページ、または他のページ内での表示のために要求され得る。広告は、ページの上部のバナー・エリア内、ページの側部のカラム内、ページのＧＵＩ内、ポップアップ・ウィンドウ内、ドロップダウン・メニュー内、ページの入力フィールド内、ページのコンテンツの上部の上、またはページに関する他の場所などの、ページの専用部分内に表示され得る。加えて、または代替として、広告はアプリケーション内に表示され得る。広告は、専用ページ内に表示され、ユーザに、ユーザがページにアクセスするまたはアプリケーションを利用する前に広告と対話するまたはこれを見ることを要求し得る。ユーザは、たとえば、ウェブ・ブラウザを通して広告を閲覧してよい。
【０１９５】
ユーザは、任意の適切な様式で広告と対話してよい。ユーザは、広告をクリックしてもよいし、または別のやり方で広告を選択してもよい。広告を選択することによって、ユーザは、広告に関連付けられているページ（または、ユーザによって使用されているブラウザもしくは他のアプリケーション）に対して向けられ得る。広告に関連付けられているページでは、ユーザは、広告に関連付けられている製品もしくはサービスを購入する、広告に関連付けられている情報を受信する、または広告に関連付けられているニュースレターを購読するなどの、追加のアクションをとり得る。オーディオまたは映像を有する広告は、（「プレイ・ボタン」などの）広告の構成要素を選択することによってプレイされ得る。代替的に、広告を選択することによって、ソーシャル・ネットワーキング・システム８０２は、ユーザの特定のアクションを実行または修正し得る。
【０１９６】
広告は、ユーザが対話し得るソーシャル・ネットワーキング・システム機能も含み得る。限定としてではなく、一例として、広告は、ユーザが、支持に関連付けられているアイコンまたはリンクを選択することによって広告に対して「いいね」を表明するまたは別のやり方で広告を支持することを可能にし得る。限定としてではなく、別の例として、広告は、ユーザが、広告主に関連するコンテンツを（たとえば、クエリを実行することによって）検索することを可能にし得る。同様に、ユーザは、別のユーザと（たとえば、ソーシャル・ネットワーキング・システム８０２を通して）広告を共有し得、または広告に関連付けられているイベントの出欠を（たとえば、ソーシャル・ネットワーキング・システム８０２を通して）返事し得る。加えて、または代替として、広告は、ユーザに対して向けられたソーシャルネットワーキングシステム・コンテキストを含み得る。限定としてではなく、一例として、広告は、広告の主題に関連付けられているアクションをとった、ソーシャル・ネットワーキング・システム８０２内のユーザの友達についての情報を表示し得る。
【０１９７】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、互いに対するさまざまなソーシャルグラフ・エンティティのソーシャルグラフ親密度（本明細書では、「親密度」と呼ばれることがある）を決定し得る。親密度は、ユーザ、概念、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、またはそれらの任意の適切な組み合わせなどの、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さまたは興味のレベルを表し得る。親密度は、サードパーティ・システム８０８または他の適切なシステムに関連付けられているオブジェクトに対しても決定され得る。各ユーザ、主題、またはコンテンツのタイプのためのソーシャルグラフ・エンティティの全体的な親密度が確立され得る。全体的な親密度は、ソーシャルグラフ・エンティティに関連付けられているアクションまたは関係の継続モニタリングに基づいて変化し得る。本開示は、特定の様式で特定の親密度を決定することを説明しているが、本開示は、任意の適切な様式で任意の適切な親密度を決定することを企図している。
【０１９８】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、親密度係数（本明細書では、「係数」と呼ばれることがある）を使用してソーシャルグラフ親密度を測定または定量化し得る。係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さを表すまたは定量化し得る。係数は、アクションにおけるユーザの興味に基づいてユーザが特定のアクションを実行する予測確率を測定する確率または機能も表し得る。このようにして、ユーザの将来のアクションは、ユーザの前のアクションに基づいて予測され得、係数は、少なくとも部分的にユーザのアクションの履歴計算され得る。係数は、任意の数のアクションを予測するために使用され得、アクションは、オンライン・ソーシャル・ネットワーク内であってもよいし、オンライン・ソーシャル・ネットワークの外部であってもよい。限定としてではなく、一例として、これらのアクションは、メッセージを送信すること、コンテンツを投稿すること、もしくはコンテンツに対してコメントすることなどのさまざまなタイプの通信、プロファイル・ページ、メディア、もしくは他の適切なコンテンツにアクセスもしくは閲覧するなどのさまざまなタイプの観察アクション、同じグループ内にある、同じ写真でタグ付けされている、同じロケーションにチェック・インした、もしくは同じイベントに出席したなどの２つ以上のソーシャルグラフ・エンティティについてのさまざまなタイプの一致情報、または他の適切なアクションを含み得る。本開示は、特定の様式で親密度を測定することを説明しているが、本開示は、任意の適切な様式で親密度を測定することを企図している。
【０１９９】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、さまざまな因子を使用して係数を計算し得る。これらの因子としては、たとえば、ユーザ・アクション、オブジェクト間の関係のタイプ、ロケーション情報、他の適切な因子、またはそれらの任意の組み合わせがあり得る。特定の実施形態では、異なる因子は、係数を計算するとき、異なるように重み付けされ得る。各因子の重みは静的であってもよいし、重みは、たとえば、ユーザ、関係のタイプ、アクションのタイプ、ユーザのロケーションなどに応じて変化してもよい。因子のレーティングは、ユーザの全体的係数を決定するための重みに応じて組み合わされ得る。限定としてではなく、一例として、特定のユーザ・アクションは、レーティングと重みの両方に対して割り当てられてよく、特定のユーザ・アクションに関連付けられている関係は、レーティングおよび相関重みが割り当てられる（たとえば、そのため、重みは合計１００％になる）。特定のオブジェクトに対するユーザの係数を計算するために、ユーザのアクションに対して割り当てられたレーティングは、たとえば、全体的係数の６０％を備えることがあり、ユーザとオブジェクトとの間の関係は全体的係数の４０％を備えることがある。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、たとえば、情報がアクセスされてからの時間、減衰因子、アクセスの頻度、情報との関係もしくは情報がアクセスされたオブジェクトとの関係、オブジェクトに対して接続されたソーシャルグラフ・エンティティとの関係、ユーザ・アクションの短期もしくは長期の平均、ユーザ・フィードバック、他の適切な変数、またはそれらの任意の組み合わせなどの、係数を計算するために使用されるさまざまな因子に対する重みを決定するとき、さまざまな変数を考慮し得る。限定としてではなく、一例として、係数は、係数を計算するとき、アクションが最近であればあるほど関連度が大きくなるように、特定のアクションによって提供される信号の強さを時間とともに減衰させる減衰因子を含み得る。レーティングおよび重みは、係数が基づくアクションの継続追跡に基づいて連続的に更新され得る。任意のタイプのプロセスまたはアルゴリズムが、各因子および因子に対して割り当てられた重みに対するレーティングを割り当てる、組み合わせる、平均化するなどを行うために用いられてよい。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、履歴アクションおよび過去のユーザ応答、またはさまざまなオプションに対してさらし、応答を測定することによってユーザから得られた（farmed）データに関して訓練された機械学習アルゴリズムを使用して係数を決定し得る。本開示は、特定の様式で係数を計算することを説明しているが、本開示は、任意の適切な様式で係数を計算することを企図している。
【０２００】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、ユーザのアクションに基づいて係数を計算し得る。ソーシャル・ネットワーキング・システム８０２は、オンライン・ソーシャル・ネットワーク上で、サードパーティ・システム８０８上で、他の適切なシステム上で、またはそれらの任意の組み合わせで、そのようなアクションを監視してよい。任意の適切なタイプのユーザ・アクションが追跡または監視されてよい。典型的なユーザ・アクションとしては、プロファイル・ページを閲覧すること、コンテンツを作成または投稿すること、コンテンツと対話すること、グループに加わること、イベントにおける出席をリストし確かめること、ロケーションにチェック・インすること、特定のページに対して「いいね」を表明すること、ページを作成すること、およびソーシャル・アクションを促進する他のタスクを実行することがある。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、特定のタイプのコンテンツとのユーザのアクションに基づいて係数を計算し得る。コンテンツは、オンライン・ソーシャル・ネットワーク、サードパーティ・システム８０８、または別の適切なシステムに関連付けられ得る。コンテンツとしては、ユーザ、プロファイル・ページ、投稿、ニュース・ストーリー、ヘッドライン、インスタント・メッセージ、チャット・ルームの会話、電子メール、広告、ピクチャ、映像、音楽、他の適切なオブジェクト、またはそれらの任意の組み合わせがある。ソーシャル・ネットワーキング・システム８０２は、ユーザのアクションを分析して、アクションのうちの１つまたは複数が主題、コンテンツ、他のユーザなどに対して親密度を示すか否かを決定し得る。限定としてではなく、一例として、ユーザが、「コーヒー」またはその変種に関係したコンテンツの投稿を頻繁に行う場合、ソーシャル・ネットワーキング・システム８０２は、ユーザが「コーヒー」という概念に関して高い係数を有することを決定し得る。特定のアクションまたは特定のタイプのアクションは、計算された全体的係数に影響し得る、他のアクションよりも高い重みおよび／またはレーティングが割り当てられ得る。限定としてではなく、一例として、第１のユーザが第２のユーザに電子メールを出す場合、アクションに対する重みまたはレーティングは、第１のユーザが第２のユーザのためのユーザプロファイル・ページを閲覧するだけの場合よりも高くなり得る。
【０２０１】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、特定のオブジェクト間の関係のタイプに基づいて係数を計算し得る。ソーシャルグラフ９００を参照すると、ソーシャル・ネットワーキング・システム８０２は、係数を計算するとき、特定のユーザ・ノード９０２と概念ノード９０４を接続するエッジ９０６の数および／またはタイプを分析し得る。限定としてではなく、一例として、配偶者タイプのエッジ（２人のユーザが結婚していることを表す）によって接続されるユーザ・ノード９０２は、友達タイプのエッジによって接続されるユーザ・ノード９０２よりも高い係数が割り当てられ得る。言い換えれば、特定のユーザのためのアクションおよび関係に対して割り当てられた重みに応じて、全体的親密度は、ユーザの友達についてのコンテンツに対するよりもユーザの配偶者についてのコンテンツに対して高くなるように決定され得る。特定の実施形態では、ユーザが別のオブジェクトと有する関係は、そのオブジェクトに関する係数を計算することに関するユーザのアクションの重みおよび／またはレーティングに影響し得る。限定としてではなく、一例として、コンテンツとタグ付けタイプの関係を有することは、コンテンツと「いいね」タイプの関係を有するよりも高い重みおよび／またはレーティングを割り当てられ得るので、ユーザが第１のフォトでタグ付けされるが、第２のフォトに対しては「いいね」を表明するにすぎない場合、ソーシャル・ネットワーキング・システム８０２は、ユーザが、第２のフォトよりも第１のフォトに関して高い係数を有することを決定し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、１つまたは複数の第２のユーザが特定のオブジェクトと有する関係に基づいて、第１のユーザに関する係数を計算し得る。言い換えれば、他のユーザがオブジェクトと有する接続および係数は、第１のユーザのオブジェクトに関する係数に影響し得る。限定としてではなく、一例として、第１のユーザが、１つもしくは複数の第２のユーザに対して接続される、またはそれらに関して高い係数を有し、それらの第２のユーザが特定のオブジェクトに接続されるまたはそれに関して高い係数を有する場合、ソーシャル・ネットワーキング・システム８０２は、第１のユーザも、特定のオブジェクトに関する比較的高い係数も有するべきであることを決定し得る。特定の実施形態では、係数は、特定のオブジェクト間の隔たり次数に基づいてよい。より低い係数は、第１のユーザが、ソーシャルグラフ９００内で第１のユーザに対して間接的に接続されたユーザのコンテンツ・オブジェクトにおいて興味を共有する可能性の減少を表し得る。限定としてではなく、一例として、ソーシャルグラフ９００内でより近い（すなわち、分離次数のより低い）ソーシャルグラフ・エンティティは、ソーシャルグラフ９００内でさらに離れたエンティティよりも高い係数を有し得る。
【０２０２】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、ロケーション情報に基づいて係数を計算し得る。互いに対して地理的により近いオブジェクトは、より遠いオブジェクトよりも互いに対してより関係がある、またはより興味があると考えられ得る。特定の実施形態では、特定のオブジェクトのためのユーザの係数は、ユーザに関連付けられている現在のロケーション（またはユーザのクライアントシステム８０６のロケーション）に対するオブジェクトのロケーションの近接性に基づき得る。第１のユーザは、第１のユーザに対してより近い他のユーザまたは概念に、より興味があり得る。限定としてではなく、一例として、ユーザが空港から１．６０９ｋｍ（１マイル）、ガソリン・スタンドから３．２１９ｋｍ（２マイル）のところにいる場合、ソーシャル・ネットワーキング・システム８０２は、ユーザに対する空港の近接性に基づいて、ユーザがガソリン・スタンドよりも空港に関して高い係数を有することを決定し得る。
【０２０３】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、係数情報に基づいて、ユーザに関する特定のアクションを実行し得る。係数は、ユーザのアクションへの興味に基づいて、ユーザが特定のアクションを実行するか否かを予測するために使用され得る。係数は、広告、検索結果、ニュース・ストーリー、メディア、メッセージ、通知、または他の適切なオブジェクトなどの任意のタイプのオブジェクトをユーザに対して生成または提示するとき、使用され得る。係数はまた、必要に応じて、そのようなオブジェクトをランキングし、順序付けるために利用され得る。このようにして、ソーシャル・ネットワーキング・システム８０２は、ユーザの興味および現在の環境に関連のある情報を提供し、興味のあるそのような情報を見つける可能性を増加させ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、係数情報に基づいてコンテンツを生成し得る。コンテンツ・オブジェクトは、ユーザに固有の係数に基づいて提供または選択され得る。限定としてではなく、一例として、ユーザが、ユーザがメディア・オブジェクトに関して高い全体的係数を有するメディアが提示される場合、係数は、ユーザのためのメディアを生成するために使用され得る。限定としてではなく、別の例として、ユーザが、ユーザが広告付きオブジェクトに関して高い全体的係数を有する広告が提示される場合、係数は、ユーザのための広告を生成するために使用され得る。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、係数情報に基づいて検索結果を生成し得る。特定のユーザのための検索結果は、クエリを発行したユーザに対する検索結果に関連付けられている係数に基づいてスコア付けまたはランキングされ得る。限定としてではなく、一例として、より高い係数を有するオブジェクトに対応する検索結果は、検索結果ページ上で、より低い係数を有するオブジェクトに対応する結果よりも高くランキングされ得る。
【０２０４】
特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、特定のシステムまたはプロセスからの係数の要求に応答して係数を計算し得る。ユーザが所与の状況でとり得る（または、その対象であり得る）可能性があるアクションを予測するために、任意のプロセスは、ユーザに関する計算された係数を要求し得る。要求は、係数を計算するために使用されるさまざまな因子に使用する重みのセットも含み得る。この要求は、オンライン・ソーシャル・ネットワーク上で実行されているプロセスから来ることもあるし、サードパーティ・システム８０８から（たとえば、ＡＰＩまたは他の通信チャネルを介して）来ることもあるし、別の適切なシステムから来ることもある。要求に応答して、ソーシャル・ネットワーキング・システム８０２は、係数を計算し得る（または、係数情報が以前に計算され、記憶されている場合、その係数情報にアクセスし得る）。特定の実施形態では、ソーシャル・ネットワーキング・システム８０２は、特定のプロセスに関して親密度を測定し得る。さまざまなプロセス（オンライン・ソーシャル・ネットワークに対して内部と外部の両方にある）は、特定のオブジェクトまたはオブジェクトのセットに関する係数を要求し得る。ソーシャル・ネットワーキング・システム８０２は、親密度の尺度を要求した特定のプロセスに対して関連のある親密度の尺度を提供し得る。このようにして、各プロセスは、プロセスが親密度の尺度を使用する異なるコンテキストに合わせられた親密度の尺度を受信する。
【０２０５】
ソーシャルグラフ親密度および親密度係数に関して、特定の実施形態は、その各々が本願明細書に援用される、２００６年８月１１日に出願された米国特許出願第１１／５０３０９３号、２０１０年１２月２２日に出願された米国特許出願第１２／９７７０２７号、２０１０年１２月２３日に出願された米国特許出願第１２／９７８２６５号、および２０１２年１０月０１日に出願された米国特許出願第１３／６３２８６９号に開示されている１つまたは複数のシステム、構成要素、要素、機能、方法、動作、またはステップを利用し得る。
【０２０６】
特定の実施形態では、オンライン・ソーシャル・ネットワークのコンテンツ・オブジェクトのうちの１つまたは複数がプライバシー設定に関連付けられ得る。オブジェクトのためのプライバシー設定（または「アクセス設定」）は、たとえば、オブジェクトに関連して、許可サーバ上のインデックス内に、別の適切な様式で、または、それらの任意の組み合わせなどの任意の適切な様式で記憶されてよい。オブジェクトのプライバシー設定は、オブジェクト（またはオブジェクトに関連付けられている特定の情報）が、オンライン・ソーシャル・ネットワークを使用してどのようにアクセス（たとえば、閲覧または共有）され得るかを規定し得る。オブジェクトのためのプライバシー設定は、特定のユーザがそのオブジェクトにアクセスすることを可能にし、オブジェクトは、そのユーザに対して「閲覧可能」と説明され得る。限定としてではなく、一例として、オンライン・ソーシャル・ネットワークのユーザは、ユーザプロファイル・ページのためのプライバシー設定が、ユーザプロファイル・ページ上の職歴情報にアクセスし得るユーザのセットを識別し、したがって、他のユーザを情報にアクセスさせないことを規定し得る。特定の実施形態では、プライバシー設定は、オブジェクトに関連付けられている一定の情報にアクセスすることが可能にされるべきではないユーザの「遮断リスト」を規定し得る。言い換えれば、遮断リストは、オブジェクトが見えない１つまたは複数のユーザまたはエンティティを規定し得る。限定としてではなく、一例として、ユーザは、ユーザに関連付けられているフォト・アルバムにアクセスし得ないユーザのセットを規定し、したがって、それらのユーザをフォト・アルバムにアクセスさせ得ない（がまた、おそらく、ユーザのセットに含まれない一定のユーザはフォト・アルバムにアクセスすることを可能にする）。特定の実施形態では、プライバシー設定は、特定のソーシャルグラフ要素に関連付けられ得る。ノードまたはエッジなどのソーシャルグラフ要素のプライバシー設定は、ソーシャルグラフ要素、ソーシャルグラフ要素に関連付けられている情報、またはソーシャルグラフ要素に関連付けられているコンテンツ・オブジェクトがどのようにしてオンライン・ソーシャル・ネットワークを使用してアクセス可能であるかを規定し得る。限定としてではなく、一例として、特定のフォトに対応する特定の概念ノード９０４は、そのフォトは、フォトでタグ付けされたユーザおよびユーザの友達によってのみアクセスされ得ることを規定するプライバシー設定を有し得る。特定の実施形態では、プライバシー設定は、ユーザが、アクションをソーシャル・ネットワーキング・システム８０２によってログさせること、または他のシステム（たとえば、サードパーティ・システム８０８）と共有させることに加わる、または加わらないことを可能にする。特定の実施形態では、オブジェクトに関連付けられているプライバシー設定は、任意の適切な粒度の許容されたアクセスまたはアクセスの否定を規定し得る。限定としてではなく、一例として、アクセスまたはアクセスの否定は、特定のユーザ（たとえば、自分のみ、ルームメイト、および上司）、特定の次数以内の隔たりに含まれるユーザ（たとえば、友達、または友達の友達）、ユーザ・グループ（たとえば、ゲーム・クラブ、家族）、ユーザ・ネットワーク（たとえば、特定の雇用者の従業員、学生、または特定の大学の卒業生）、すべてのユーザ（「パブリック」）、ユーザなし（「プライベート」）、サードパーティ・システム８０８のユーザ、特定のアプリケーション（たとえば、サードパーティ・アプリケーション、外部ウェブサイト）、他の適切なユーザもしくはエンティティ、またはそれらの任意の組み合わせに対して規定され得る。本開示は、特定の様式で特定のプライバシー設定を使用することを説明しているが、本開示は、任意の適切な様式で任意の適切なプライバシー設定を使用することを企図している。
【０２０７】
特定の実施形態では、１つまたは複数のサーバは、プライバシー設定を強制するための許可／プライバシー・サーバであってよい。データ・ストア内に記憶された特定のオブジェクトに関するユーザ（または他のエンティティ）からの要求に応答して、ソーシャル・ネットワーキング・システム８０２は、オブジェクトのためのデータ・ストアに対して要求を送信し得る。要求は、要求に関連付けられているユーザを識別し得、許可サーバが、オブジェクトに関連付けられているプライバシー設定に基づいて、ユーザがオブジェクトにアクセスすることを許可されていることを決定した場合、ユーザ（またはユーザのクライアントシステム８０６）のみに対して送信され得る。要求元ユーザが、オブジェクトにアクセスすることが許可されていない場合、許可サーバは、要求されたオブジェクトがデータ・ストアから取り出されるのを防止し得る、または、要求されたオブジェクトがユーザに対して送信されるのを防止し得る。検索クエリ・コンテキストでは、クエリ元ユーザが、オブジェクトにアクセスすることが許可されている場合、そのオブジェクトは、検索結果としてのみ生成され得る。言い換えれば、オブジェクトは、クエリ元ユーザに見える可視性を有さなければならない。オブジェクトが、ユーザに見えない可視性を有する場合、オブジェクトは検索結果から除外され得る。本開示は、特定の様式でプライバシー設定を強制することを説明しているが、本開示は、任意の適切な様式でプライバシー設定を強制することを企図したものである。
【０２０８】
上記明細は、特定の例示的な実施形態を参照して記載されている。種々実施形態および本開示の様相は、本明細書に記載の詳細を参照して記述され、添付の図面は、これら種々の実施形態を示している。上記説明および図面は、本発明の一例に過ぎず、本発明を制限するものと解釈されるべきではない。多くの具体的詳細の記述によって、本発明の種々の実施形態の十分な理解が得られる。
【０２０９】
追加または代替の実施形態は、その主旨または本質的特性から逸脱することなく、他の特定の形態で具現化されるようになっていてもよい。上記実施形態は、あらゆる点において一例に過ぎず、何ら限定的なものではないと解釈されるべきである。したがって、本開示の範囲は、上記説明ではなく、添付の特許請求の範囲によって指定される。特許請求の範囲と同等の意味および範囲に含まれるすべての変更は、上記請求の範囲に包含されるものとする。
【図１】
0006539856.tif 000004
【図２】
0006539856.tif 000005
【図３Ａ】
0006539856.tif 000006
【図３Ｂ】
0006539856.tif 000007
【図３Ｃ】
0006539856.tif 000008
【図３Ｄ】
0006539856.tif 000009
【図３Ｅ】
0006539856.tif 000010
【図３Ｆ】
0006539856.tif 000011
【図４Ａ】
0006539856.tif 000012
【図４Ｂ】
0006539856.tif 000013
【図４Ｃ】
0006539856.tif 000014
【図４Ｄ】
0006539856.tif 000015
【図５】
0006539856.tif 000016
【図６】
0006539856.tif 000017
【図７】
0006539856.tif 000018
【図８】
0006539856.tif 000019
【図９】
0006539856.tif 000020