ソーシャルメディアプラットフォームは、ユーザが自動化された方式でイベントを主催し運営することを可能にすることができる。たとえば、イベントの「管理ユーザ」(たとえば、イベントの企画、運営、スケジューリング、再スケジューリング、監督、および/または公表を行う責任があるユーザ)は、ソーシャルメディアプラットフォームと対話して、イベントを表すソーシャルメディアイベントアイテムを作成することができる。管理ユーザはイベントに関する情報、たとえば、イベントの予定時刻、イベントの計画場所、イベントの説明、およびイベントに関する他のコンテンツ(たとえば、テキスト、画像、音声、ビデオなど)をソーシャルメディアイベントアイテムに入力することができる。さらに、管理ユーザはソーシャルメディアイベントアイテムを他のユーザ(たとえば、参加者候補)と共有することができる。各受信者はソーシャルメディアイベントアイテムをレビューして、イベントに関する情報を取得し、イベントについて議論し、および/またはイベントにRSVPすることができる。
場合により、管理ユーザは、イベントに関係する(pertaining to)、妥当な(relevant to)、および/または他の態様で関連する(associated with)1つまたは複数の興味カテゴリを指定することができる。さらに、特定のイベントに対して管理ユーザによって指定された興味カテゴリを使用して、そのイベントを1人または複数人のユーザに自動的に推薦または提案することができる。たとえば、各ユーザはソーシャルメディアプラットフォームと対話して、ソーシャルメディアプロフィール(たとえば、そのユーザに関する情報を含む個人プロフィール)を作成し、自分にとって興味がある1つまたは複数の興味カテゴリを自分のソーシャルメディアプロフィールに入力することができる。この情報に基づいて、ソーシャルメディアプラットフォームは、特定のユーザがイベントに興味があり得ると自動的に決定することができる(その理由は、たとえば、興味カテゴリがそのユーザのソーシャルメディアプロフィールと、イベントのソーシャルメディアイベントアイテムとの両方に共通しているため)。それに応答して、ソーシャルメディアプラットフォームは、イベントのソーシャルメディアイベントアイテムをその第2のユーザに自動的に提示することができる。
場合により、ソーシャルメディアプラットフォームは、特定のイベントを、そのイベントへの参加を計画していることを表明したユーザによって選択された興味カテゴリに基づいて自動的に提案または推薦することができる。たとえば、何人かのユーザが特定のイベントに「はい」とRSVPしている(たとえば、そのイベントへの参加を計画していることを表明している)場合がある。さらに、それらのユーザの大部分の各々が、そのイベントのソーシャルメディアイベントアイテムに含まれていなかった特定の興味カテゴリを、それぞれのソーシャルメディアプロフィールに対して選択している場合がある。この情報に基づいて、ソーシャルメディアプラットフォームは、この追加の興味カテゴリがイベントの管理ユーザによって明示的に指定されていなかったとしても、追加の興味カテゴリに興味があるユーザはそのイベントも楽しみ得ると自動的に決定することができる。それに応じて、ソーシャルメディアプラットフォームは、自分のソーシャルメディアプロフィールにおいて追加の興味カテゴリも選択した1人または複数人の追加ユーザに対して、そのイベントのソーシャルメディアイベントアイテムを自動的に提示することができる。
一態様では、方法は、サーバシステムによって、複数人のユーザについてのプロフィールデータと、複数のソーシャルメディアイベントについてのイベントデータとを生成することを含む。プロフィールデータは、各ユーザについて、そのユーザに関連付けられた1つまたは複数の興味カテゴリの表示を含む。イベントデータは、各ソーシャルメディアイベントについて、そのソーシャルメディアイベントに関連付けられた1人または複数人のユーザの表示を含む。方法は、サーバシステムによって、第1のユーザのサブセットが第1のソーシャルメディアイベントに関連付けられていると決定することと、サーバシステムによって、プロフィールデータおよびイベントデータを1つまたは複数のデータベースに記憶することとをさらに含む。方法は、サーバシステムによって、第1の興味カテゴリのサブセットが第1のユーザのサブセットに関連付けられていると決定することと、サーバシステムによって、第2の興味カテゴリのサブセットが第1のソーシャルメディアイベントに関連付けられていると決定することであって、第2の興味カテゴリのサブセットは第1のソーシャルメディアイベントの管理ユーザによって選択される、決定することとをさらに含む。方法は、第1の興味カテゴリのサブセットおよび第2の興味カテゴリのサブセットに基づいて、第1のソーシャルメディアイベントについてイベントデータ構造を生成することをさらに含む。イベントデータ構造は、第1の興味カテゴリのサブセットおよび第2の興味カテゴリのサブセットの表示と、第1の興味カテゴリのサブセットおよび第2の興味カテゴリのサブセットのうちの各興味カテゴリについての、その興味カテゴリに関連付けられた第1のユーザのサブセットのユーザの数と、その興味カテゴリが第1のソーシャルメディアイベントの管理ユーザによって選択されているか否かとに基づくそれぞれの度数指標とを含む。方法は、サーバシステムによって、1つまたは複数のデータベースのデータに変化をもたらすデータベーストランザクションを監視するように構成される1つまたは複数の処理を実行することと、サーバシステムによって、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定することと、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定したことに応答して、トランザクションに基づいてイベントデータ構造を修正することとをさらに含む。
この態様の実施態様は、以下の特徴の1つまたは複数を含むことができる。
いくつかの実施態様では、トランザクションは、第1のユーザのサブセットに関連付けられたプロフィールデータへの修正、または第1のイベントに関連付けられたイベントデータへの修正の少なくとも1つを含むことができる。
いくつかの実施態様では、修正は興味カテゴリの追加または削除を含むことができる。
いくつかの実施態様では、修正は、追加ユーザの第1のソーシャルメディアイベントとの関連付け、または第1のソーシャルメディアイベントからのユーザの関連付け解除を含むことができる。
いくつかの実施態様では、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定することは、特定の興味カテゴリが、第1のユーザのサブセットの特定のユーザのプロフィールデータに対して追加または削除されていると決定することと、第1のソーシャルメディアイベントがまだ行われていないと決定することとを含むことができる。イベントデータ構造を修正することは、イベントデータ構造における特定の興味カテゴリに関連する度数指標を修正することを含むことができる。
いくつかの実施態様では、この方法は、サーバシステムによって、トランザクションが1つまたは複数の追加のソーシャルメディアイベントに関するトリガ基準を満たすと決定することと、トランザクションが1つまたは複数のソーシャルメディアイベントに関するトリガ基準を満たすと決定したことに応答して、トランザクションに基づいて1つまたは複数のソーシャルメディアイベントについてのイベントデータ構造を修正することをさらに含むことができる。
いくつかの実施態様では、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定することは、追加ユーザが第1のソーシャルメディアイベントに関連付けられていると決定することと、第1のソーシャルメディアイベントがまだ行われていないと決定することとを含むことができる。イベントデータ構造を修正することは、追加ユーザが追加の興味カテゴリに関連付けられていると決定することと、追加の興味カテゴリの表示を含むようにイベントデータ構造を修正することとを含むことができる。
いくつかの実施態様では、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定することは、追加ユーザが第1のソーシャルメディアイベントに関連付けられていると決定することと、第1のソーシャルメディアイベントがまだ行われていないと決定することとを含むことができる。イベントデータ構造を修正することは、追加ユーザが第1の興味カテゴリのサブセットの特定の興味カテゴリに関連付けられていると決定することと、追加ユーザが第1の興味カテゴリのサブセットの特定の興味カテゴリに関連付けられていると決定したことに応答して、イベントデータ構造における特定の興味カテゴリに関連する度数指標を修正することとを含むことができる。
いくつかの実施態様では、イベントデータ構造における特定の興味カテゴリに関連する度数指標を修正することは、特定の興味カテゴリに関連する度数指標をインクリメントすることを含むことができる。
いくつかの実施態様では、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定することは、第1のユーザのサブセットの特定のユーザが第1のソーシャルメディアイベントと関連付け解除されたと決定することと、第1のソーシャルメディアイベントがまだ行われていないと決定することとを含むことができる。イベントデータ構造を修正することは、関連付け解除されたユーザが第1の興味カテゴリのサブセットの特定の興味カテゴリに関連付けられていたと決定することと、関連付け解除されたユーザが第1の興味カテゴリのサブセットの特定の興味カテゴリに関連付けられていたと決定したことに応答して、イベントデータ構造における特定の興味カテゴリに関連する度数指標を修正することとを含むことができる。
いくつかの実施態様では、イベントデータ構造における特定の興味カテゴリに関連する度数指標を修正することは、特定の興味カテゴリに関連する度数指標をデクリメントすることを含むことができる。
いくつかの実施態様では、この方法は、イベントデータ構造に基づいてヒストグラムを生成し表示することをさらに含むことができる。
いくつかの実施態様では、この方法は、1つまたは複数の追加のソーシャルメディアイベントについて1つまたは複数の追加のイベントデータ構造を生成することと、イベントデータ構造および1つまたは複数の追加のイベントデータ構造に基づいて複数のヒストグラムを生成し表示することとをさらに含むことができる。
いくつかの実施態様では、プロフィールデータは、少なくとも1人のユーザについて、そのユーザに関連付けられた1つまたは複数のパブリック興味カテゴリの表示と、そのユーザに関連付けられた1つまたは複数のプライベート興味カテゴリの表示とを含むことができる。そのユーザと1つまたは複数のパブリック興味カテゴリとの関連付けは、1人または複数人の他のユーザによってアクセス可能にすることができる。そのユーザと1つまたは複数のプライベート興味カテゴリとの関連付けは、1人または複数人の他のユーザによってアクセス不可能にすることができる。
いくつかの実施態様では、この方法は、イベントデータ構造に基づいて1つまたは複数のパブリック興味カテゴリに対応するヒストグラムを生成し表示することをさらに含むことができる。
いくつかの実施態様では、第1の興味カテゴリのサブセットに基づいてイベントデータ構造を生成することは、第1の興味カテゴリのサブセットの各興味カテゴリについて、その興味カテゴリに関連し、第1のソーシャルメディアイベントへの招待を受諾した第1のユーザのサブセットの各ユーザについて、その興味カテゴリに関連する度数指標を第1の量だけインクリメントすることと、その興味カテゴリに関連し、第1のソーシャルメディアイベントへの招待を暫定的に受諾した第1のユーザのサブセットの各ユーザについて、その興味カテゴリに関連する度数指標を第2の量だけインクリメントすることとを含むことができる。第1の量は第2の量と異なることができる。
いくつかの実施態様では、第1の興味カテゴリのサブセットが第1のユーザのサブセットに関連付けられていると決定することは、ユーザのサブセットの少なくとも1人のユーザによって選択された1つまたは複数の興味カテゴリを第1の興味カテゴリのサブセットとして識別することを含むことができる。
いくつかの実施態様では、この方法は、サーバシステムによって、イベントデータ構造に基づいて追加ユーザに対する第1のソーシャルメディアイベントの推薦を生成することをさらに含むことができる。
いくつかの実施態様では、追加ユーザに対する第1のソーシャルメディアイベントの推薦を生成することは、追加ユーザのプロフィールデータを取得することと、追加ユーザのプロフィールデータに基づいて、追加ユーザに関連付けられた興味カテゴリを決定することと、追加ユーザおよびイベントデータ構造に関連付けられた興味カテゴリに基づいて推薦スコアを決定することとを含むことができる。
いくつかの実施態様では、推薦スコアを決定することは、追加ユーザおよびイベントデータ構造に関連付けられた興味カテゴリに共通している1つまたは複数の興味カテゴリを決定することと、共通している興味カテゴリのそれぞれに対応するイベントデータ構造の度数指標を合計することとを含むことができる。
いくつかの実施態様では、推薦スコアを決定することは、追加ユーザに関連付けられた第1の地理的場所と、第1のソーシャルメディアイベントに関連付けられた第2の地理的場所との距離を決定することと、第1の地理的場所と第2の地理的場所との距離に基づいて推薦スコアを修正することとをさらに含むことができる。
いくつかの実施態様では、推薦スコアを決定することは、第2の興味カテゴリのサブセットおよび追加ユーザに関連付けられた興味カテゴリに共通にしている1つまたは複数の興味カテゴリを決定することと、決定に基づいて推薦スコアを修正することとをさらに含むことができる。
いくつかの実施態様では、推薦スコアを決定することは、第2のユーザに関連付けられたユーザの数と、第2のユーザおよび第1のソーシャルメディアイベントの両方に関連付けられたユーザの数とを決定することと、決定に基づいて推薦スコアを修正することとをさらに含むことができる。
いくつかの実施態様では、追加ユーザに対する第1のソーシャルメディアイベントの推薦を生成することは、推薦スコアが閾値スコアを超えていると決定することと、推薦スコアが閾値スコアを超えていると決定したことに応答して、第1のソーシャルメディアイベントを識別する追加ユーザへの通知を生成することとをさらに含むことができる。
いくつかの実施態様では、この方法は、グラフィカルユーザインターフェースをレンダリングすることであって、グラフィカルユーザインターフェースはイベントデータ構造のグラフィカル表現を含む、レンダリングすることと、グラフィカルユーザインターフェースをユーザに提示することとをさらに含むことができる。
いくつかの実施態様では、イベントデータ構造は実質的にリアルタイムに修正することができる。
いくつかの実施態様では、イベントデータ構造は定期的に修正することができる。
いくつかの実施態様では、この方法は、サーバシステムによって、第1のユーザに対する追加の興味カテゴリの推薦を生成することをさらに含むことができる。
いくつかの実施態様では、追加の興味カテゴリの推薦を生成することは、第1のユーザが第1のソーシャルメディアイベントのサブセットに関連付けられていると決定することと、第3の興味カテゴリのサブセットが、第1のソーシャルメディアイベントのサブセットのうちの少なくとも1つのソーシャルメディアイベントに関連付けられていると決定することと、第3の興味カテゴリのサブセット内の各興味カテゴリについて推薦スコアを決定することとを含むことができる。
いくつかの実施態様では、推薦スコアを決定することは、第1のソーシャルメディアイベントのサブセットの各ソーシャルメディアイベントについて、対応するイベントデータ構造を取得することと、第3の興味カテゴリのサブセットの各興味カテゴリについて、その興味カテゴリに対応する取得されたイベントデータ構造の度数指標を合計することとを含むことができる。
いくつかの実施態様では、推薦スコアを決定することは、第1のソーシャルメディアイベントのサブセットの各ソーシャルメディアイベントについて、そのソーシャルメディアイベントの管理ユーザによって選択された1つまたは複数の興味カテゴリを決定することと、決定に基づいて推薦スコアを修正することとをさらに含むことができる。
他の態様では、方法は、サーバシステムによって会場データを生成することを含む。会場データは、会場に関して管理ユーザによって選択された1つまたは複数の第1の興味カテゴリの表示と、会場に関連付けられた1つまたは複数のイベントの表示とを含む。この方法は、サーバシステムによって、会場に関連付けられた1つまたは複数のイベントのそれぞれについてイベントデータ構造を生成することをさらに含む。各イベントデータ構造は、イベントに関連付けられた1つまたは複数の第2の興味カテゴリの表示と、1つまたは複数の第2の興味カテゴリの各興味カテゴリについての、それぞれの度数指標とを含む。この方法は、サーバシステムによって、会場データおよび1つまたは複数のイベントデータ構造に基づいて会場データ構造を生成することをさらに含む。会場データ構造は、1つまたは複数の第1のカテゴリおよび1つまたは複数の第2の興味カテゴリの表示と、1つまたは複数の第1のカテゴリおよび1つまたは複数の第2の興味カテゴリのうちの各興味カテゴリについての、会場データおよび1つまたは複数のイベントデータ構造に基づいて決定されるそれぞれの度数指標とを含む。この方法は、サーバシステムによって、1つまたは複数のデータベースのデータに変化をもたらすデータベーストランザクションを監視するように構成される1つまたは複数の処理を実行することとをさらに含む。この方法は、サーバシステムによって、トランザクションが会場データ構造に関するトリガ基準を満たすと決定することと、それに応答して、トランザクションに基づいて会場データ構造を修正することとをさらに含む。
この態様の実施態様は、以下の特徴の1つまたは複数を含むことができる。
いくつかの実施態様では、トランザクションは1つまたは複数のイベントデータ構造への修正を含むことができる。
いくつかの実施態様では、トランザクションは会場データへの修正を含むことができる。
いくつかの実施態様では、この方法は、会場データ構造に基づいてヒストグラムを生成し表示することをさらに含むことができる。
いくつかの実施態様では、会場データ構造を生成することは、各イベントデータ構造について、それぞれの重みを決定することと、重みに基づいて会場データ構造の度数指標を決定することとを含むことができる。
いくつかの実施態様では、各重みは、それぞれのイベントの開催の新しさに対応することができる。
いくつかの実施態様では、この方法は、サーバシステムによって、会場データおよび1つまたは複数のイベントデータ構造に基づいて1つまたは複数の追加の会場データ構造を生成することさらに含むことができる。各追加の会場データ構造は、それぞれの時刻に応じた1つまたは複数の第1のカテゴリおよび1つまたは複数の第2の興味カテゴリの表示と、1つまたは複数の第1のカテゴリおよび1つまたは複数の第2の興味カテゴリのうちの各興味カテゴリについての、その時刻に応じたそれぞれの度数指標とを含むことができる。
いくつかの実施態様では、この方法は、会場データ構造および1つまたは複数の追加の会場データ構造に基づいて複数のヒストグラムを生成し表示することをさらに含むことができる。
いくつかの実施態様では、この方法は、グラフィカルユーザインターフェースをレンダリングすることをさらに含むことができる。グラフィカルユーザインターフェースはイベントデータ構造のグラフィカル表現を含むことができる。この方法は、グラフィカルユーザインターフェースをユーザに提示することをさらに含むことができる。
いくつかの実施態様では、会場データ構造は実質的にリアルタイムに修正することができる。
いくつかの実施態様では、会場データ構造は定期的に修正することができる。
本明細書に記載の実施態様の1つまたは複数は、様々な技術的利点を提供することができる。たとえば、ソーシャルメディアプラットフォームの実施態様は、ユーザがコンピュータ通信ネットワークを介してイベント情報を迅速かつ効率的に作成し、修正し、配信することを可能にすることができる。一例として、ソーシャルメディアプラットフォームは、イベントに対して妥当であり得る興味カテゴリを自動的に決定し、それらの興味カテゴリを対応するソーシャルメディアイベントアイテムに自動的に関連付け、(たとえば、イベントに興味がありそうな1人または複数人のユーザにソーシャルメディアイベントアイテムを提示することによって)イベントを1人または複数人のユーザに自動的に推薦することができる。これは自動化された方式で実行することができるので、イベントの管理ユーザは、(たとえば、イベントに関連付けられた興味カテゴリを手動で識別し、追加の興味カテゴリを含むようにイベントのソーシャルメディアイベントアイテムを手動で修正し、イベントに興味があり得るユーザを手動で識別し、それらのユーザにイベントのソーシャルメディアイベントアイテムを手動で共有するなどすることと比較して)より少ない入力を使用してイベント情報を作成し、修正し、および/または配信することができる。したがって、ユーザのデバイスにより利用されるコンピュータ資源およびネットワーク資源が削減される。さらに、ソーシャルメディアプラットフォームの実施態様は、特定のデータ処理ルールに従ってデータを受信、処理、記憶、および/または送信することによって、ソーシャルメディアプラットフォームが一貫して、確実に、効率的に動作することを可能にし、従来技術を使用しても実現できなかった結果をもたらす(たとえば、ソーシャルメディアイベントアイテムを動的な方式で自動的に維持する、特定のイベントに興味があり得るユーザを自動的に識別するなど)。またさらに、これらの動作は、主観的な人間の入力(たとえば、各イベントまたは会場についての妥当な興味カテゴリに関する人間の主観的な判断)に基づくのではなく、クラウドソースのコンピュータ化データレコードにコンピュータベースのルールを適用することによって実行することができる。したがって、これによりコンピュータが、従来は困難、非現実的、または不可能であったタスクを実行することが可能になる。たとえば、コンピュータシステムは、イベントまたは会場を正確に記述する興味カテゴリを自動的に決定し、決定に基づいて推薦を行うことができる。
1つまたは複数の実施形態の詳細を添付の図面および以下の説明に記載する。他の特徴および利点は、本説明および図面ならびに特許請求の範囲から明らかになろう。
様々な図における同様の参照符号は同様の要素を示す。
ソーシャルメディアプラットフォームは、ユーザがソーシャルメディアイベントアイテムを使用して自動化された方式でイベントを主催し運営することを可能にすることができる。ソーシャルメディアイベントアイテムとはイベントを表すデータの一部であり、典型的には、たとえば、各ソーシャルメディアイベントの日時、イベントの説明、イベントに関連付けられた1つまたは複数のソーシャルメディアプロフィール(たとえば、ソーシャルメディアイベントアイテムを生成したユーザと、ソーシャルメディアプラットフォームの他のユーザとに対応するソーシャルメディアプロフィール)、および各ソーシャルメディアイベントに関係する他のコンテンツなどのデータを含む。ソーシャルメディアイベントアイテムは、典型的には、ソーシャルメディアプラットフォームに関連付けられたデータベースに記憶される。このデータベースを維持することは、ソーシャルメディアイベントアイテムなど、イベントを表すデータに特有のデータ処理ルールを使用することを含む場合がある。
一実施態様では、ユーザはソーシャルメディアプラットフォームと対話して、イベントを表すソーシャルメディアイベントアイテムを作成することができる。ユーザはイベントに関する情報、たとえば、イベントの予定時刻、イベントの計画場所、イベントの説明、およびイベントに関する他のコンテンツ(たとえば、テキスト、画像、音声、ビデオなど)をソーシャルメディアイベントアイテムに入力することができる。
ソーシャルメディアイベントアイテムが生成された後、ユーザはイベントに対応するソーシャルメディアイベントアイテムを公表して、他のユーザにアクセス可能にすることができる。たとえば、ユーザはソーシャルメディアプラットフォームを使用してソーシャルメディアイベントアイテムを他のユーザと共有することができる。受信者はソーシャルメディアイベントアイテムをレビューして、イベントに関する情報を取得し、(たとえば、ソーシャルメディアプラットフォームによって提供される議論エンジンを使用して)イベントについて議論し、および/または(たとえば、ソーシャルメディアプラットフォームによって提供されるRSVPエンジンを使用して)イベントにRSVPすることができる。
場合により、管理ユーザは、イベントに関係する、妥当な、および/または他の態様で関連する1つまたは複数の興味カテゴリを指定することができる。たとえば、「Team Sharks」対「Team Jets」の野球の試合では、イベントの管理ユーザは、「Team Sharks」、「Team Jets」、「野球」、「スポーツ」、「アウトドア」などの興味カテゴリを指定することができる。これらの興味カテゴリは、ソーシャルメディアイベントアイテムの一部として各ユーザに提示することができる。これは、たとえば参加者候補がイベントの性質を素早く評価し、参加したいか否かを判断できるようになるので、有益であり得る。
場合により、特定のイベントに対して管理ユーザによって指定された興味カテゴリを使用して、そのイベントを1人または複数人のユーザに自動的に推薦または提案することができる。たとえば、各ユーザはソーシャルメディアプラットフォームと対話して、ソーシャルメディアプロフィール(たとえば、そのユーザに関する情報を含む個人プロフィール)を作成し、自分にとって興味がある1つまたは複数の興味カテゴリを自分のソーシャルメディアプロフィールに入力することができる。たとえば、第1のユーザは、「音楽」、「サッカー」、および「映画」に興味があることを示すソーシャルメディアプロフィールを作成する場合があり、第2のユーザは、「食べ物」、「野球」、および「読書」に興味があることを示すソーシャルメディアプロフィールを作成する場合がある。この情報に基づいて、ソーシャルメディアプラットフォームは、第2のユーザが「Team Sharks」対「Team Jets」の野球の試合に興味があり得ると自動的に決定し(その理由は、たとえば、「野球」興味カテゴリが第2のユーザのソーシャルメディアプロフィールと、野球の試合を表すソーシャルメディアイベントアイテムとの両方に共通しているため)、野球の試合を表すソーシャルメディアイベントアイテムを第2のユーザに自動的に提示することができる。
場合により、ソーシャルメディアプラットフォームは、特定のイベントを、そのイベントへの参加を計画していることを表明したユーザによって選択された興味カテゴリに基づいて自動的に提案または推薦することができる。たとえば、何人かのユーザは、「Team Sharks」と「Team Jets」との野球の試合に「はい」とRSVPしている(たとえば、そのイベントへの参加を計画していることを表明している)場合がある。さらに、それらのユーザの大部分の各々が、それぞれのソーシャルメディアプロフィールに対して「ソフトボール」興味カテゴリを選択している場合がある。この情報に基づいて、ソーシャルメディアプラットフォームは、「ソフトボール」興味カテゴリがイベントの管理ユーザによって明示的に指定されていなかったとしても、ソフトボールを楽しいと感じるユーザが野球の試合も楽しみ得ると自動的に決定することができる。それに応じて、ソーシャルメディアプラットフォームは、自分のソーシャルメディアプロフィールにおいて「ソフトボール」興味カテゴリを選択した1人または複数人の追加ユーザに対して、野球の試合のソーシャルメディアイベントアイテムを自動的に提示することができる。
ソーシャルメディアプラットフォームを実装するための例示的なシステム100を図1に示す。システム100は、1つまたは複数のサーバコンピュータを含むサーバシステム102上で維持されるソーシャルメディアプラットフォーム150を含む。
サーバシステム102は、ネットワーク106を使用してクライアントデバイス104a−cに通信可能に接続される。各クライアントデバイス104a−cは、それぞれのユーザインターフェース108a−cを含む。ユーザはユーザインターフェース108a−cと対話して、データ(たとえば、サーバシステム102およびプラットフォーム150上のデータ、ならびに/あるいは他のクライアントデバイス104a−c上のデータ)を閲覧する。また、ユーザはユーザインターフェース108a−cと対話して、他のデバイス(たとえば、サーバシステム102およびプラットフォーム150、ならびに/あるいは他のクライアントデバイス104a−c)にデータを送信する。ユーザはユーザインターフェース108a−cと対話して、コマンド110a−cを(たとえば、サーバシステム102およびプラットフォーム150、ならびに/あるいは他のクライアントデバイス104a−cに)発行する。コマンド110a−cは、たとえば、サーバシステム102および/または他のクライアントデバイス104a−cへの任意のユーザ指示とすることができる。いくつかの実施態様では、ユーザは、これらのタスクを実行しやすくするためのソフトウェアアプリケーションをクライアントデバイス104a−c上にインストールすることができる。
クライアントデバイス104a−cは、ユーザによってデータを閲覧、処理、送信および受信するために使用される任意の電子デバイスとすることができる。クライアントデバイス104a−cの例は、コンピュータ(たとえば、デスクトップコンピュータ、ノートブックコンピュータ、サーバシステムなど)、モバイルコンピューティングデバイス(たとえば、携帯電話、スマートフォン、タブレット、パーソナルデータアシスタント、ネットワーク機能付きのノートブックコンピュータ)、およびネットワーク106との間でデータを送信および受信することが可能な他のコンピューティングデバイスを含む。クライアントデバイス104a−cは、1つまたは複数のオペレーティングシステム(たとえば、Microsoft Windows、Apple OS X、Linux、Unix、Android、Apple iOSなど)、ならびに/あるいはアーキテクチャ(たとえば、x86、PowerPC、ARMなど)を使用して動作するデバイスを含むことができる。いくつかの実施態様では、クライアントデバイス104a−cの1つまたは複数は、システム100の残りの部分に対してローカルに配置される必要はなく、クライアントデバイス104a−cの1つまたは複数は、1つまたは複数の離れた物理的場所に配置することができる。いくつかの実施態様では、クライアントデバイス104a−cは、地理測位システム(たとえば、全地球測位システム[GPS]、Wi−Fi三角測量システムなど)と通信して、その地理的場所を特定することができる。
ネットワーク106は、データを転送および共有可能な任意の通信ネットワークとすることができる。たとえば、ネットワーク106は、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)、たとえば、インターネットとすることができる。ネットワーク106は様々なネットワークインターフェース、たとえば、無線ネットワークインターフェース(たとえば、Wi−Fi、Bluetooth、もしくは赤外線)または有線ネットワークインターフェース(たとえば、イーサネットもしくはシリアル接続)を使用して実装することができる。また、ネットワーク106は2つ以上のネットワークの組み合わせを含むことができ、1つまたは複数のネットワークインターフェースを使用して実装することができる。
サーバシステム102はそれぞれの単一の構成要素として示している。しかしながら、実際には、これは1つまたは複数のコンピューティングデバイス上で実装することができる(たとえば、各コンピューティングデバイスは、マイクロプロセッサまたはマイクロコントローラなどの少なくとも1つのプロセッサを含む)。サーバシステム102は、たとえば、ネットワーク106に接続された単一のコンピューティングデバイスとすることができ、ソーシャルメディアプラットフォーム150は、単一のコンピューティングデバイス上で維持し動作させることができる。いくつかの実施態様では、サーバシステム102は、ネットワーク106に接続された複数のコンピューティングデバイスを含むことができ、ソーシャルメディアプラットフォーム150は、コンピューティングデバイスの一部または全部の上で維持し動作させることができる。たとえば、サーバシステム102はいくつかのコンピューティングデバイスを含むことができ、プラットフォーム150はこれらのコンピューティングデバイスの1つまたは複数に分散させることができる。いくつかの実施態様では、サーバシステム102はシステム100の残りの部分に対してローカルに配置される必要はなく、サーバシステム102の一部は1つまたは複数の離れた物理的場所に配置することができる。
図2にプラットフォーム150の様々な態様を示す。プラットフォーム150は、システム100の動作に関する特定の機能を実行するいくつかのモジュールを含む。たとえば、プラットフォーム150は、データベースモジュール202、伝送モジュール204、および処理モジュール206を含むことができる。
データベースモジュール202は、システム100の1人または複数人のユーザに関する情報を保持する。例として、データベースモジュール202は、ユーザのID証明に関する情報(たとえば、ユーザ名およびパスワード)、連絡先情報(たとえば、電子メールアドレス、実際の住所、電話番号など)、人口統計情報(たとえば、年齢、性別、地理的地域など)、設定(たとえば、システム設定、プライバシー設定など)、場所(たとえば、地理座標、たとえば、全地球測位システム(GPS)、Wi−Fi三角測量システム、または他の地理測位システムを使用して特定されるもの)、関係性情報(たとえば、ユーザの他のユーザとの関連付けの表示など)、および他のユーザ情報(たとえば、ユーザが書いたコンテンツ集、写真、ビデオ、音声コンテンツなど)を記憶することができる。他の例として、データベースモジュール202は、ユーザの1つまたは複数の興味に関する情報(たとえば、ユーザによって選択された1つまたは複数の興味カテゴリ、たとえば、「読書」、「スポーツ」、「アウトドア」、「映画」、「カントリーミュージック」など)を記憶することができる。各ユーザに関する情報は、ソーシャルメディアプロフィール210(たとえば、特定のユーザを表すデータの一部)の形態で記憶することができる。
データベースモジュール202は、1つまたは複数のイベントに関する情報を記憶することもできる。一例として、各イベントは、それぞれのソーシャルメディアイベントアイテム212として表すことができる。各ソーシャルメディアイベントアイテム212は、イベントに関するスケジュール情報を含むことができる。たとえば、ソーシャルメディアイベントアイテム212は、イベントが行われる予定の時間(たとえば、日時)、イベントの予定期間、および/またはイベントが終了する予定の時間を示すことができる。各ソーシャルメディアイベントアイテム212はイベントに関するコンテンツを含むことができる。たとえば、ソーシャルメディアイベントアイテム212は、イベントに関するテキスト情報、画像、ビデオ、音声、または他のコンテンツを含むことができる。各ソーシャルメディアイベントアイテム212は、イベントを管理する責任があるユーザ(たとえば、「管理ユーザ」)および/またはイベントへの被招待者に関する情報を含むこともできる。たとえば、ソーシャルメディアイベントアイテム212は、イベントの1人または複数人の管理ユーザ(たとえば、イベントの企画、運営、スケジューリング、再スケジューリング、監督、および/または公表を行う責任がある1人または複数人のユーザ)、ならびに/あるいはイベントに招待されている1人または複数人のユーザを示すことができる。各ソーシャルメディアイベントアイテム212は、被招待者の1人または複数人に関するRSVP情報を含むこともできる。たとえば、ソーシャルメディアイベントアイテム212は、イベントに招待されている1人または複数人のユーザと、イベントに関する各被招待者の対応するステータス(たとえば、イベントに招待された、招待を辞退した、招待を受諾した、招待を暫定的に受諾した、招待に返事をしていない、など)とを示すことができる。各ソーシャルメディアイベントアイテム212は、(たとえば、イベントの管理ユーザによって指定される)イベントに関係する、妥当な、および/または他の態様で関連する興味カテゴリを示すこともできる。
データベースモジュール202は、1つまたは複数の会場(たとえば、イベントを開催する場所、たとえば、コンサートホール、映画館、スタジアム、クラブ、公園、イベントスペースなど)に関する情報を記憶することもできる。一例として、各会場は、それぞれの会場アイテム218として表すことができる。各会場アイテム218は、会場に関連付けられた1つまたは複数のイベントに関する情報を含むことができる。たとえば、会場アイテム218は、過去に会場で行われた1つまたは複数のイベント、ならびに/あるいは今後会場で行われる予定である1つまたは複数のイベントを示すことができる。場合により、会場アイテム218は、それらのイベントに対応する1つまたは複数のソーシャルメディアイベントアイテム212を(たとえば、1つまたは複数の相互参照を介して)識別することができる。さらに、各会場アイテム218は会場に関するコンテンツを含むことができる。たとえば、会場アイテム218は、会場に関するテキスト情報、画像、ビデオ、音声、または他のコンテンツを含むことができる。各会場アイテム218は、会場を管理または監督する責任があるユーザ(たとえば、「管理ユーザ」)と、会場に関連付けられたイベントを運営および/または主催するユーザとに関する情報を含むこともできる。たとえば、会場アイテム218は、会場の1人または複数人の管理ユーザ(たとえば、会場の運営、監督、および/または公表を行う責任がある1人または複数人のユーザ)、ならびに/あるいは会場で行われたまたは行われる予定であるイベントを運営および/または主催する責任がある1人または複数人のユーザを示すことができる。各会場アイテム218は、(たとえば、会場の管理ユーザによって指定される)会場に関係する、妥当な、および/または他の態様で関連する興味カテゴリを示すこともできる。
様々な情報の例を上述しているが、これらは例示的なものにすぎない。実際には、データベースモジュール202は、プラットフォーム150のユーザ、予定イベントに関する任意の情報、またはプラットフォーム150に関係する他の任意の情報を記憶することができる。
さらに、データベースモジュール202は、データベースクエリまたはトランザクション214を実行することができる。データベースクエリまたはトランザクションは、たとえば、特定のデータがデータベースモジュール202から取得、修正、および/または消去されるように指定するコマンドとすることができる。それに応答して、データベースモジュール202は、クエリまたはトランザクションを実行して要求を果たし、またはソーシャルメディアプラットフォーム150の他の構成要素にクエリを実行するように指示することができる。場合により、データベースクエリまたはトランザクション214は、処理モジュール206によって(たとえば、ユーザの指示に基づいて)生成され、データベースモジュール202に送信されて実行され得る。場合により、データベースクエリまたはトランザクション214は、処理モジュール206によって直接生成および実行することができる(たとえば、処理モジュール206は、データベースモジュール202に記憶されたデータを直接取得、修正、および/または消去することができる)。
伝送モジュール204は、プラットフォーム150との間のデータの伝送を可能にする。たとえば、伝送モジュール204はネットワーク106に通信可能に接続することができ、それによってネットワーク106を介してクライアントデバイス104a−cにデータを送信し、クライアントデバイス104a−cからデータを受信することができる。一例として、クライアントデバイス104a−c上でユーザによって入力された情報は、伝送モジュール204を介してプラットフォーム150に送信することができる。次いで、この情報は、(たとえば、処理モジュール206を使用して)処理し、および/または(たとえば、データベースモジュール202を使用して)記憶することができる。他の例として、プラットフォーム150からの情報(たとえば、データベースモジュール202に記憶された情報)は、伝送モジュール204を介してクライアントデバイス104a−cに送信することができる。
処理モジュール206は、記憶されたまたは他の方法でプラットフォーム150がアクセス可能なデータを処理する。たとえば、処理モジュール206は、1人または複数人のユーザあるいは1つまたは複数のイベントに関係するデータを操作する自動化処理またはユーザが起動した処理を実行することができる。一例として、処理モジュール206は、データベースクエリ214生成し、次いでデータベースモジュール202に送信して、データベースモジュール202に記憶されたデータを取得、修正、および/または消去することができる。他の例として、処理モジュール206は、データベースクエリ214を直接生成し処理することができる(たとえば、処理モジュール206はデータベースクエリ214を実行して、データベースモジュール202に記憶されたデータを直接取得、修正、および/または消去することができる)。さらに、処理モジュール206は、伝送モジュール204から受信されたデータを処理することができる。同様に、処理モジュール206からの処理済みデータは、(たとえば、1つまたは複数のデータベースクエリ214を使用して)データベースモジュール202に記憶され、および/または伝送モジュール204に送られて、他のデバイスに送信され得る。以下、処理モジュール206によって実行することができる例示的な処理をより詳細に説明する。
場合により、データベースモジュール202および/または処理モジュール206は、1つまたは複数のデータ処理ルール216に従って、データベースモジュール202に記憶されたデータを処理することができる。これらのデータ処理ルール216は、特定の条件、基準、および/または要因に基づいて、データベースモジュール202によって記憶されたデータに関して実行される特定の動作を指定することができる。場合により、これらのルールに従って処理されたデータは、ユーザにとってより有用にすることができ、および/またはソーシャルメディアプラットフォーム150によってより効率的に記憶することができる。一例として、データ処理ルール216は、特定のソーシャルメディアイベントアイテム212および/または会場アイテム218が、自動化された方式で作成、修正、および/またはユーザに提示され得る方法を指定することができる。場合により、データ処理ルール216は、処理モジュール206によって記憶することができる(たとえば、処理モジュール206が処理ルール216に直接アクセスできるようにする)。場合により、データ処理ルール216は、データベースモジュール202によって記憶することができる。以下、データ処理ルール216の例示的な実施態様をより詳細に論じる。
上記のように、ソーシャルメディアプラットフォーム150の1つまたは複数の実施態様は、ユーザが自動化された方式でイベントを主催し運営することを可能にする。この機能の例を図3A〜図3Cに示す。
この例では、ユーザはイベントを計画しており、イベントを1人または複数人の他のユーザに告知することを望む。このユーザを「管理ユーザ」と呼ぶ場合がある。これを容易にするために、管理ユーザはソーシャルメディアプラットフォーム150と対話して、ソーシャルメディアイベントアイテム300を作成し、ソーシャルメディアイベントアイテム300にイベントに関する情報を入力することができる。たとえば、管理ユーザは、イベントのタイトル(たとえば、「イベント1」)、イベントに関するスケジュール情報、イベントに関するコンテンツ(たとえば、イベントに関するテキスト情報、画像、ビデオ、音声、または他のコンテンツ)を提供することができる。さらに、管理ユーザは、イベントに関係する、妥当な、および/または他の態様で関連する1つまたは複数の興味カテゴリを示すことができる。これは、たとえば参加者候補がイベントの性質を素早く評価し、参加したいか否かを判断できるようになるので、有益であり得る。この例では、ユーザは興味カテゴリ「A」、「B」および「C」を選択している。
さらに、管理ユーザはソーシャルメディアプラットフォーム150と対話して、1人または複数人の他のユーザをイベントに招待することができる。たとえば、管理ユーザは、ソーシャルメディアイベントアイテム300を他のユーザとの間で共有、送信、または他の方法で配信することができる。この例では、管理ユーザは「人物1」、「人物2」、「人物3」、「人物4」、「人物5」および「人物6」をイベントに招待している。
各ユーザはソーシャルメディアプラットフォーム150と対話して、ソーシャルメディアイベントアイテム300をレビューすることができる(たとえば、イベントに関する情報を取得するため)。さらに、各ユーザは参加を計画しているか否かを表明することができる。たとえば、各ユーザは、イベントに関する「RSVP」データ(たとえば、招待を辞退した、招待を受諾した、招待を暫定的に受諾したことなどを示すデータ)を提出することができる。この例では、「人物1」、「人物2」、「人物3」、「人物5」および「人物6」は、イベントへの参加を計画していることを表明している(たとえば、「はい」というRSVPを提出している)が、「人物4」は、イベントへの参加を計画していないことを表明している(たとえば、「いいえ」というRSVPを提出している)。
さらに、ソーシャルメディアプラットフォーム150の各ユーザは、個人用ソーシャルメディアプロフィールを作成し、ソーシャルメディアプロフィールに自身に関する情報を入力することができる。たとえば、各ユーザは、ID証明、連絡先情報、人口統計情報、設定、場所、関係性情報、ならびに他のユーザ情報を提供して、ソーシャルメディアプロフィールに含めることができる。さらに、各ユーザは、そのユーザの1つまたは複数の興味(たとえば、そのユーザによって選択された1つまたは複数の興味カテゴリ)を示すことができる。この例では、「人物1」は、興味カテゴリ「A」、「D」および「F」を自分のプロフィール302aに対して選択している。「人物2」は、興味カテゴリ「A」、「C」および「F」を自分のプロフィール302bに対して選択している。「人物3」は、興味カテゴリ「B」、「E」および「F」を自分のプロフィール302cに対して選択している。「人物4」は、興味カテゴリ「A」、「B」、「C」、「D」、「F」および「G」を自分のプロフィール302dに対して選択している。「人物5」は、興味カテゴリ「F」および「G」を自分のプロフィール302eに対して選択している。「人物6」は、興味カテゴリ「C」および「F」を自分のプロフィール302fに対して選択している。
ソーシャルメディアイベントアイテム300の管理ユーザおよび招待されたユーザのそれぞれによって選択された興味カテゴリに基づいて、ソーシャルメディアプラットフォーム150は、イベントへの参加に興味があり得る1人または複数人の追加ユーザを自動的に決定することができる。さらに、ソーシャルメディアイベントアイテム300は、(たとえば、ソーシャルメディアイベントアイテム300をそれらの追加ユーザとの間で共有、送信、または他の方法で配信することによって)それらの追加ユーザにイベントを自動的に推薦することができる。
場合により、ソーシャルメディアプラットフォーム150は、イベントについてのイベントデータ構造を生成することができる。イベントデータ構造は、(i)ソーシャルメディアイベントアイテム300の管理ユーザによって選択されたか、または(ii)イベントへの招待を受諾した(たとえば、「はい」とRSVPした)ユーザによって選択された興味カテゴリのそれぞれを示すことができる。さらに、イベントデータ構造は、各興味カテゴリについて、その興味カテゴリが管理ユーザおよび/またはイベントへの招待を受諾したユーザによって選択された回数を示す度数指標を含むことができる。場合により、これはヒストグラムの形態で提示することができる。
図3Bに、ソーシャルメディアイベントアイテム300についての例示的なイベントデータ構造304の表現を示す。この例では、興味カテゴリ「A」は、管理ユーザならびに「人物1」および「人物2」(イベントに「はい」とRSVPしたユーザ)によって選択されているので、度数指標3を有する。なお、「人物4」も興味カテゴリ「A」を選択しているが、「人物4」はイベントに「いいえ」とRSVPしているので、この選択はイベントデータ構造304に反映されない。
同様に、興味カテゴリ「B」は、管理ユーザならびに「人物3」によって選択されているので、度数指標2を有する。さらに、興味カテゴリ「C」は、管理ユーザならびに「人物2」および「人物6」によって選択されているので、度数指標3を有する。さらに、興味カテゴリ「D」は、「人物1」によって選択されているので、度数指標1を有する。さらに、興味カテゴリ「E」は、「人物3」によって選択されているので、度数指標1を有する。さらに、興味カテゴリ「F」は、「人物1」、「人物2」、「人物3」、「人物5」および「人物6」によって選択されているので、度数指標5を有する。さらに、興味カテゴリ「G」は、「人物5」によって選択されているので、度数指標1を有する。上記のように、「人物4」もこれらの興味カテゴリのそれぞれを選択しているが、「人物4」はイベントに「いいえ」とRSVPしているので、これらの選択はイベントデータ構造304に反映されない。
場合により、イベントデータ構造304は、ソーシャルメディアイベントアイテム300に含めて、ソーシャルメディアイベントアイテム300をレビューする場合にユーザに提示することができる。たとえば、ユーザがソーシャルメディアイベントアイテム300にアクセスする場合(たとえば、ソーシャルメディアプラットフォーム150を使用してイベントに関する情報を閲覧する場合)、ソーシャルメディアプラットフォーム150は、イベントデータ構造304を表すヒストグラム(あるいは他のグラフィカル表現および/またはテキスト表現)をユーザに表示することができる。これは、たとえば被招待者候補がイベントに妥当な興味カテゴリを、それらの興味カテゴリがイベントの管理ユーザによって明確に選択されていなかったとしても識別できるようになるので、有益であり得る。この情報は管理ユーザに提示することもできる(たとえば、管理ユーザに、自分のイベントの予想参加者の興味に関する情報を提供するため)。
ソーシャルメディアプラットフォーム150は、イベントデータ構造304を使用して、イベントへの参加に興味があり得る1人または複数人の追加ユーザを識別することもできる。場合により、これは、イベントに関する各被招待者候補に対する推薦指標を導出することによって、実行することができる。推薦指標は、たとえば、ユーザがイベントへの参加に興味があり得る可能性を反映した数値スコアとすることができる。たとえば、より高い推薦指標は、ユーザがイベントへの参加に興味がある可能性がより高いことを示すことができ、より低い推薦指標は、ユーザがイベントへの参加に興味がある可能性がより低いことを示すことができる。推薦指標が特定のユーザについて十分に高い(たとえば、閾値を上回る)場合、ソーシャルメディアプラットフォーム150は、そのユーザがイベントへの参加に興味がある(たとえば、イベントへの参加に十分に高い興味がある)可能性が高いと決定することができる。
一例として、図3Cに、イベントへの3人の被招待者候補、「人物7」、「人物8」および「人物9」を示す。上記と同様に、これらのユーザのそれぞれは、個人用ソーシャルメディアプロフィールを作成し、ソーシャルメディアプロフィールに自身に関する情報、たとえば、個人的な興味を入力することができる。この例では、「人物7」は興味カテゴリ「D」、「F」および「H」を自分のプロフィール302gに対して選択している。「人物8」は興味カテゴリ「E」、「F」および「I」を自分のプロフィール302hに対して選択している。「人物9」は興味カテゴリ「D」、「E」および「G」を自分のプロフィール302iに対して選択している。
イベントに関する各ユーザに対する推薦指標は、そのユーザの興味カテゴリ選択およびイベントデータ構造304に基づいて導出することができる。場合により、推薦指標は、イベントデータ構造304と、ユーザのソーシャルメディアプロフィールとの両方に共通している興味カテゴリを識別し、それらの興味カテゴリのそれぞれについての度数指標を合計することによって、生成することができる。
この例では、興味カテゴリ「D」および「F」は、イベントデータ構造304と、「人物7」のソーシャルメディアプロフィールとの両方に共通している。したがって、イベントに関する「人物7」に対する推薦指標は6である(たとえば、興味カテゴリ「D」の度数指標1、プラス興味カテゴリ「F」の度数指標5)。
さらに、興味カテゴリ「E」および「F」は、イベントデータ構造304と、「人物8」のソーシャルメディアプロフィールとの両方に共通している。したがって、イベントに関する「人物8」に対する推薦指標は6である(たとえば、興味カテゴリ「E」の度数指標1、プラス興味カテゴリ「F」の度数指標5)。
さらに、興味カテゴリ「D」、「E」および「F」は、イベントデータ構造304と、「人物9」のソーシャルメディアプロフィールとの両方に共通している。したがって、イベントに関する「人物9」に対する推薦指標は3である(たとえば、興味カテゴリ「D」の度数指標1、プラス興味カテゴリ「E」の度数指標1、プラス興味カテゴリ「G」の度数指標1)。
イベントに関する「人物7」および「人物8」についての推薦指標は「人物9」よりも高いので、ソーシャルメディアプラットフォーム150は、「人物7」および「人物8」が、「人物9」よりもイベントへの参加に興味がある可能性が高いと決定する。
さらに、ソーシャルメディアプラットフォーム150は、推薦指標に基づいて1人または複数人のユーザにイベントを自動的に推薦することができる。たとえば、特定のユーザに対する推薦指標が閾値を上回る場合、ソーシャルメディアプラットフォーム150は、ソーシャルメディアイベントアイテム300をそのユーザとの間で共有、送信、または他の方法で配信することができる。実際には、閾値は実施態様に応じて異なることができる。場合により、閾値は、ソーシャルメディアプラットフォーム150の監督者または開発者によって指定することができる。場合により、閾値は、ソーシャルメディアプラットフォーム150の1人または複数人のユーザ(たとえば、管理ユーザ)によって指定することができる。
この例では、閾値は5である。したがって、ソーシャルメディアプラットフォーム150は、ソーシャルメディアイベントアイテム300を「人物7」および「人物8」に自動的に送信することができる(これらのユーザについての推薦指標が閾値を超えるため)。しかしながら、ソーシャルメディアプラットフォーム150は、ソーシャルメディアイベントアイテム300を「人物9」に自動的に送信しないようにすることができる(このユーザに対する推薦指標が閾値を超えないため)。
場合により、ソーシャルメディアプラットフォーム150は、イベントの計画された地理的場所に対する各ユーザの地理的場所に基づいて、推薦指標を修正することもできる。たとえば、ユーザがイベントの計画場所の比較的近くに位置する場合、ソーシャルメディアプラットフォーム150は、そのユーザに対するイベントの推薦指標を増加させることができる。ユーザがイベントの想定場所から比較的離れて位置する場合、ソーシャルメディアプラットフォーム150は、そのユーザに対するイベントの推薦指標を減少させることができる。これは、たとえば、ソーシャルメディアプラットフォーム150がそのユーザに妥当な可能性が高いイベント(たとえば、ユーザの比較的近くのイベント)を推薦できるようになるので、有用であり得る。場合により、ソーシャルメディアプラットフォーム150は、ユーザに対して特定の地理的領域内(たとえば、ユーザの場所から特定の距離半径内)で行われる計画のイベントのみを推薦することができる。
場合により、ソーシャルメディアプラットフォーム150は、まずイベントデータアイテムについてのイベントデータ構造を生成し、生成後にイベントデータ構造を1回または複数回修正することができる。
場合により、ソーシャルメディアプラットフォーム150は、1つまたは複数のデータベースのデータに変化をもたらすトランザクション(たとえば、データベースモジュール202によって記憶されたデータ、たとえば、ソーシャルメディアプロフィール210、ソーシャルメディアイベントアイテム212、および/または会場アイテム218に関して処理モジュール206によって実行されるトランザクション)を監視することができる。トランザクションが特定のトリガ基準を満たす場合、ソーシャルメディアプラットフォーム150はそれに応答して1つまたは複数のイベントデータ構造を修正することができる。たとえば、トランザクションがイベントデータ構造に影響するデータフィールドを修正する場合(たとえば、ユーザがイベントに「はい」とRSVPすること、ユーザが自分のソーシャルメディアプロフィールに対して追加の興味カテゴリを選択すること、またはイベントのヒストグラムに影響し得る他のアクションに関するトランザクション修正の場合)、ソーシャルメディアプラットフォーム150は、(たとえば、処理モジュール206を使用して)そのトランザクションを特定のフラグ、たとえば、「トリガ」フラグによってマークすることができる。各トランザクションが正常に完了した場合、ソーシャルメディアプラットフォーム150は、(たとえば、処理モジュール206を使用して)そのトランザクションのフラグを確認し、次いで任意の識別されたフラグに基づいて特定の関数を呼び出す。これらの関数はこれら自体のトランザクションを生成し、このトランザクションは、実行されるとそれに応じて適切なイベントデータ構造を更新する(たとえば、妥当なイベントのヒストグラムを更新する)。これは、たとえば、ソーシャルメディアプラットフォーム150が、イベントデータ構造を更新する前に(これは完了するのに比較的長い時間がかかり得る)、ユーザが行なった任意の変更を素早く確認できるようになるので、有用であり得る。たとえば、ユーザが新たな興味カテゴリを自分のソーシャルメディアプロフィールに追加する場合、ソーシャルメディアプラットフォーム150は、(ユーザが長い時間待たなくてよいように)ユーザの変更を素早く確認し、その後、ユーザが他のタスクを行なっている間に、ユーザの変更に基づいて1つまたは複数のイベントデータ構造を更新することができる。
一例として、管理ユーザがイベントデータアイテムの興味カテゴリ選択を修正した場合、それに応答して、ソーシャルメディアプラットフォーム150は、(たとえば、新たな興味カテゴリをイベントデータ構造に追加する、イベントデータ構造から興味カテゴリを削除する、および/またはイベントデータ構造における興味カテゴリの度数指標を修正することによって)これらの変更を反映するようにイベントデータ構造を修正することができる。他の例として、1人または複数人の追加ユーザがイベントへの参加を計画していることを表明している場合、それに応答して、ソーシャルメディアプラットフォーム150は、(たとえば、新たな興味カテゴリをイベントデータ構造に追加する、および/またはイベントデータ構造において追加ユーザによって選択された興味カテゴリの度数指標をインクリメントすることによって)これらの変更を反映するようにイベントデータ構造を修正することができる。他の例として、1人または複数人のユーザがイベントへの参加をもはや計画していないことを表明している場合、ソーシャルメディアプラットフォーム150は、(たとえば、イベントデータ構造から興味カテゴリを削除する、および/またはイベントデータ構造においてそれらのユーザによって選択された興味カテゴリの度数指標をデクリメントすることによって)これらの変更を反映するようにイベントデータ構造を修正することができる。他の例として、イベントへの参加を計画している1人または複数人のユーザが自分の個人用ソーシャルメディアプロフィール内の興味カテゴリ選択を修正する場合、ソーシャルメディアプラットフォーム150は、(たとえば、新たな興味カテゴリをイベントデータ構造に追加する、イベントデータ構造から興味カテゴリを削除する、および/またはイベントデータ構造における興味カテゴリの度数指標を修正することによって)これらの変更を反映するようにイベントデータ構造を修正することができる。これは、たとえば、ソーシャルメディアプラットフォーム150が、イベントのそれぞれに関する正確な情報を提示し、より正確な推薦をそのユーザに行うことができるようになるので、有用であり得る。場合により、これらの修正は、まだ行われていないイベントに関してのみ行うことができる。
場合により、ソーシャルメディアプラットフォーム150は、イベントデータアイテムをリアルタイムまたは実質的にリアルタイムに更新することができる。たとえば、ソーシャルメディアプラットフォームはトランザクションを監視して、特定のトランザクションが1つまたは複数のトリガ基準を満たすか否かを判定することができる(たとえば、管理ユーザがイベントデータアイテムの興味カテゴリ選択を修正する、1人または複数人の追加ユーザがイベントへの参加を計画していることを表明する、1人または複数人のユーザがイベントへの参加をもはや計画していないことを表明する、イベントへの参加を計画している1人または複数人のユーザが自分の個人用ソーシャルメディアプロフィール内の興味カテゴリ選択を修正する、など)。それに応答して、ソーシャルメディアプラットフォーム150は、対応するイベントデータ構造を即時に(または実質的に即時に)修正することができる。これは、たとえば、ソーシャルメディアプラットフォーム150が、運営されるイベントのそれぞれに関する最新情報を継続的に維持できるようにする際に、有用であり得る。
場合により、ソーシャルメディアプラットフォーム150はイベントデータアイテムを定期的に更新することができる。たとえば、ソーシャルメディアプラットフォーム150は、繰り返しのスケジュールに従って(たとえば、1秒に1回、1分に1回、1時間に1回、1日に1回、または何らかの他のスケジュールに従って)、1つまたは複数のトリガ基準が満たされているか否かを判定することができる。特定のトリガ基準が満たされていると決定すると、ソーシャルメディアプラットフォーム150はそれに応答して対応するイベントデータ構造を修正することができる。これは、たとえば、ソーシャルメディアプラットフォーム150が、(たとえば、リアルタイムに更新するのと比較して)より予測可能なスケジュールに従って、計算コストを削減し得る方式で、運営されるイベントのそれぞれに関する最新情報を維持できるようにする際に、有用であり得る。
これは、たとえば、ソーシャルメディアプラットフォーム150におけるデータの完全性を向上する際にも、有用であり得る。たとえば、動作中に、ソーシャルメディアプラットフォーム150は異常に振る舞って不安定になる場合がある(たとえば、システムクラッシュ)。上記のように、ソーシャルメディアプラットフォーム150は、リアルタイムまたは実質的にリアルタイムに(たとえば、トランザクションを監視して、特定のトランザクションが1つまたは複数のトリガ基準を満たすか否かを判定し、満たす場合、それに応答して即時に対応するイベントデータ構造を修正することによって)イベントデータアイテムを更新することができる。しかしながら、トランザクションの実行後であるが、イベントデータ構造がそれに応答して更新される前に、ソーシャルメディアプラットフォーム150がシステムクラッシュを経験した場合、イベントデータ構造はそのトランザクションの実行を反映しない。さらに、ソーシャルメディアイベントアイテムはリアルタイムまたは実質的にリアルタイムに、予測可能なスケジュールに従わずに更新されるので、ソーシャルメディアイベントアイテムが正しく更新されたか否かを判定することは困難であろう。対照的に、ソーシャルメディアプラットフォーム150がイベントデータアイテムを定期的に(たとえば、予測可能なスケジュールに従って)更新する場合、各ソーシャルメディアイベントアイテムが正しく更新されたか否かを判定することは容易になる。たとえば、システムがクラッシュした時刻を、予定更新時刻と比較することができる。クラッシュが予定更新時刻後に発生した場合、ソーシャルメディアプラットフォーム150は、予定更新が行われたと決定することができる。しかしながら、クラッシュが予定更新時刻前に発生した場合、ソーシャルメディアプラットフォーム150は、予定更新が行われなかったと決定することができ、それに応答して修正措置をとる(たとえば、次の予定更新時に追加の更新をキューに入れる)ことができる。このようにして、ソーシャルメディアプラットフォーム150におけるデータの信頼性を向上させることができる。とはいえ、これはソーシャルメディアプラットフォーム150が、場合により、(たとえば、継続的な最新の情報がデータ完全性の改善よりも望ましい場合に)リアルタイムまたは実質的にリアルタイムにイベントデータアイテムを更新することを排除するものではない。
図3A〜図3Cに示す例では、各興味カテゴリの実績指標は、管理ユーザおよび/またはイベントへの参加を計画しているユーザによって選択されるたびに、特定の量(たとえば、1)だけインクリメントされる。場合により、各興味カテゴリの実績指標は、イベントへの参加を暫定的に計画しているユーザによって選択されるたびに、異なる量だけインクリメントすることができる。たとえば、第1のユーザがイベントへの参加を計画していることを(たとえば、「はい」とRSVPすることによって)表明している場合、第1のユーザが自分の個人用ソーシャルメディアプロフィールにおいて興味カテゴリを選択するたびに、イベントデータ構造におけるそれらのカテゴリの度数指標を第1の単位(たとえば、1)だけインクリメントすることができる。第2のユーザがイベントへの参加を暫定的に計画していることを(たとえば、「たぶん」とRSVPすることによって)表明している場合、第2のユーザが自分の個人用ソーシャルメディアプロフィールにおいて興味カテゴリを選択するたびに、イベントデータ構造におけるそれらのカテゴリの度数指標を第2の単位(たとえば、0.5)だけインクリメントすることができる。これは、たとえば、ソーシャルメディアプラットフォーム150が、イベントへ参加する可能性が高いユーザと、イベントへ参加する可能性が低いユーザとを区別し、これらの違いを考慮した推薦を生成できるようになるので、有用であり得る。例示的な単位(たとえば、1および0.5)を上述しているが、これらは説明のための実例にすぎない。実際には、各単位は実施態様に応じて異なることができる。
上記のように、イベントデータ構造は、ソーシャルメディアイベントアイテムを(たとえば、ヒストグラムの形態で)レビューする場合にユーザに提示することができる。これは、たとえば被招待者候補がイベントに妥当な興味カテゴリを、それらの興味カテゴリがイベントの管理ユーザによって明確に選択されていなかったとしても識別できるようになるので、有益であり得る。しかしながら、これには、イベントへの参加を計画しているユーザの集団的興味を公開する効果もある。場合により、これにより、閲覧者が特定の興味カテゴリを特定のユーザに起因するものと考えることが可能になり得る。一部のユーザにとって、これは望ましくない場合がある。たとえば、ユーザは、特定の興味カテゴリに関連付けられることを気にする場合があり、自分の関連付けをプライベートにしておくことを望み得る。他の例として、ユーザは、自分の個人情報が他人に広く拡散されないように、通常は自分の興味をプライベートにしておくことを好む場合がある。
場合により、この可能性を考慮して、ソーシャルメディアプラットフォーム150は、自分のソーシャルメディアプロフィール内の各興味カテゴリがユーザにパブリックに表示されるべきか否かをユーザが指定できるように構成することができる。たとえば、ユーザは、興味カテゴリを選択して自分のソーシャルメディアプロフィールに含める場合に、各興味カテゴリが「パブリック」としてマークされるべきか(たとえば、自分のソーシャルメディアプロフィールが閲覧される場合に、自分がその興味カテゴリを選択したことを他のユーザが見ることができるようになる)、または「プライベート」としてマークされるべきか(たとえば、自分のソーシャルメディアプロフィールが閲覧される場合に、その興味カテゴリが他のユーザから見えないようになる)を示すこともできる。
さらに、ソーシャルメディアプラットフォーム150は、特定のイベントについて2つの異なるイベントデータ構造を生成するように構成することができる。第1のイベントデータ構造(たとえば、「内部」イベントデータ構造)は、上述のものと同様とすることができる。たとえば、内部イベントデータ構造は、イベントの管理ユーザ、および/またはイベントへの参加を計画していることを表明した(たとえば、「はい」とRSVPした)1人または複数人のユーザによって選択された各興味カテゴリを示すことができる。さらに、上記と同様に、内部イベントデータ構造を使用して、イベントへの参加に興味があり得る1人または複数人の追加ユーザを識別し、そのイベントをそれらのユーザに推薦することができる。したがって、ソーシャルメディアプラットフォーム150は、他のユーザに推薦を行うために利用可能な情報を全て使用する。しかしながら、ソーシャルメディアプラットフォーム150は、(たとえば、ユーザがソーシャルメディアイベントアイテムを閲覧する場合に)内部イベントデータ構造をユーザにパブリックには表示しない。
その代わりに、ソーシャルメディアプラットフォーム150は、ユーザにパブリックに表示するための第2のイベントデータ構造(たとえば、「パブリック」イベントデータ構造)を生成する。パブリックイベントデータ構造は第1のイベントデータ構造に類似しているが、各ユーザのプライバシー設定(たとえば、各ユーザの「パブリック」および「プライベート」の選択)を反映している。たとえば、特定のユーザがイベントへの参加を計画していることを表明した場合、ユーザの各「パブリック」興味カテゴリの度数指標が、パブリックイベントデータ構造において(たとえば、上記と同様にして)インクリメントされる。しかしながら、ユーザの各プライベート興味カテゴリの度数指標は、(たとえば、あたかもユーザがプライベート興味カテゴリを全く選択していないかのように)変わらないままである。したがって、パブリックイベントデータ構造は、ユーザの「プライベート」興味カテゴリ選択を他のユーザにパブリックに公開しないので、閲覧者が特定の興味カテゴリを特定のユーザに起因するものと考えることがより困難になる。
この機能の例を図4A〜図4Cに示す。図3A〜図3Cに関して説明したのと同様に、管理ユーザはイベントを計画しており、イベントを1人または複数人の他のユーザに告知することを望む。これを容易にするために、管理ユーザはソーシャルメディアプラットフォーム150と対話して、ソーシャルメディアイベントアイテム400を作成し、ソーシャルメディアイベントアイテム400にイベントに関する情報を入力することができる。この例では、ソーシャルメディアイベントアイテム400は、上述のソーシャルメディアイベントアイテム300と同様である。たとえば、ここでは、ユーザは興味カテゴリ「A」、「B」および「C」を選択している。
さらに、管理ユーザはソーシャルメディアプラットフォーム150と対話して、1人または複数人の他のユーザをイベントに招待することができる。たとえば、管理ユーザは、ソーシャルメディアイベントアイテム400を他のユーザとの間で共有、送信、または他の方法で配信することができる。この例では、管理ユーザはこの場合もやはり「人物1」、「人物2」、「人物3」、「人物4」、「人物5」および「人物6」をイベントに招待している。
同様に、各ユーザはソーシャルメディアプラットフォーム150と対話して、ソーシャルメディアイベントアイテム400をレビューすることができる(たとえば、イベントに関する情報を取得するため)。さらに、各ユーザは参加を計画しているか否かを表明することができる。この例では、「人物1」、「人物2」、「人物3」、「人物5」および「人物6」は、この場合もやはり、イベントへの参加を計画していることを表明している(たとえば、「はい」というRSVPを提出している)が、「人物4」は、この場合もやはり、イベントへの参加を計画していないことを表明している(たとえば、「いいえ」というRSVPを提出している)。
同様に、ソーシャルメディアプラットフォーム150の各ユーザは、個人用ソーシャルメディアプロフィールを作成し、ソーシャルメディアプロフィールに自身に関する情報を入力することができる。たとえば、各ユーザは、そのユーザの1つまたは複数の興味(たとえば、そのユーザによって選択された1つまたは複数の興味カテゴリ)を示すことができる。しかしながら、各ユーザは、特定の興味カテゴリが「パブリック」であるか(たとえば、自分のソーシャルメディアプロフィールが閲覧される場合に、自分がその興味カテゴリを選択したことを他のユーザが見ることができるようになる)、または「プライベート」であるか(たとえば、自分のソーシャルメディアプロフィールが閲覧される場合に、その興味カテゴリが他のユーザから見えないようになる)を指定することもできる。
この例では、「人物1」はやはり興味カテゴリ「A」、「D」および「F」を自分のプロフィール402aに対して選択しているが、自分の興味カテゴリ「A」の選択がプライベートになるように指定している(アスタリスクで示す)。「人物2」はやはり興味カテゴリ「A」、「C」および「F」を自分のプロフィール402bに対して選択している。「人物3」はやはり興味カテゴリ「B」、「E」および「F」を自分のプロフィール402cに対して選択しているが、自分の興味カテゴリ「B」の選択がプライベートになるように指定している(アスタリスクで示す)。「人物4」はやはり興味カテゴリ「A」、「B」、「C」、「D」、「F」および「G」を自分のプロフィール402dに対して選択している。「人物5」はやはり興味カテゴリ「F」および「G」を自分のプロフィール402eに対して選択しているが、自分の興味カテゴリ「F」の選択がプライベートになるように指定している(アスタリスクで示す)。「人物6」はやはり興味カテゴリ「C」および「F」を自分のプロフィール302fに対して選択している。
ソーシャルメディアプラットフォーム150は、これらの選択に基づいて内部イベントデータ構造およびパブリックイベントデータ構造を生成する。
図4Bに、ソーシャルメディアイベントアイテム400についての例示的な内部イベントデータ構造404の表現を示す。この例では、興味カテゴリ「A」はやはり、管理ユーザならびに「人物1」および「人物2」によって選択されているので、度数指標3を有する。さらに、興味カテゴリ「B」はやはり、管理ユーザならびに「人物3」によって選択されているので、度数指標2を有する。さらに、興味カテゴリ「C」はやはり、管理ユーザならびに「人物2」および「人物6」によって選択されているので、度数指標3を有する。さらに、興味カテゴリ「D」はやはり、「人物1」によって選択されているので、度数指標1を有する。さらに、興味カテゴリ「E」はやはり、「人物3」によって選択されているので、度数指標1を有する。さらに、興味カテゴリ「F」はやはり、「人物1」、「人物2」、「人物3」、「人物5」および「人物6」によって選択されているので、度数指標5を有する。さらに、興味カテゴリ「G」はやはり、「人物5」によって選択されているので、度数指標1を有する。同様に、「人物4」もこれらの興味カテゴリのそれぞれを選択しているが、「人物4」はイベントに「いいえ」とRSVPしているので、これらの選択はイベントデータ構造404に反映されない。
イベントデータ構造304に関して説明したのと同様に、内部イベントデータ構造404を使用して、イベントへの参加に興味があり得る1人または複数人の追加ユーザを識別する。たとえば、ソーシャルメディアプラットフォーム150は、イベントデータ構造404を使用して、イベントに関する各被招待者候補に対する推薦指標を導出することができる。推薦指標が特定のユーザについて十分に高い(たとえば、閾値を上回る)場合、ソーシャルメディアプラットフォーム150は、そのユーザがイベントへの参加に興味があり得ると決定することができる。しかしながら、ソーシャルメディアプラットフォーム150は、(たとえば、ユーザがソーシャルメディアイベントアイテム400を閲覧する場合に)内部イベントデータ構造404をユーザにパブリックには表示しない。
図4Cに、ソーシャルメディアイベントアイテム400についての例示的なパブリックイベントデータ構造406の表現を示す。パブリックイベントデータ構造406は概して内部イベントデータ構造404と同様である。しかしながら、「人物1」、「人物4」および「人物5」は、それぞれ自分の興味カテゴリ「A」「B」および「F」の選択がプライベートであることを指定しているので、各カテゴリについての度数指標は(内部イベントデータ構造404と比較して)1だけ小さい。
場合により、パブリックイベントデータ構造406は、ソーシャルメディアイベントアイテム400をレビューする場合に、1人または複数人のユーザに提示することができる。たとえば、管理ユーザがソーシャルメディアイベントアイテム400にアクセスする場合(たとえば、自分が主催しているイベントに関する情報をレビューする場合)、ソーシャルメディアプラットフォーム150は、パブリックイベントデータ構造406を表すヒストグラム(あるいは他のグラフィカル表現および/またはテキスト表現)を管理ユーザに表示することができる。他の例として、一般ユーザ(たとえば、被招待者または参加者候補)がソーシャルメディアイベントアイテム400にアクセスする場合(たとえば、参加を考えているイベントに関する情報を閲覧する場合)、ソーシャルメディアプラットフォーム150は、パブリックイベントデータ構造406を表すヒストグラム(あるいは他のグラフィカル表現および/またはテキスト表現)をユーザに表示することもできる。どちらの場合も、パブリックイベントデータ構造406は、ユーザのプライベート興味カテゴリが対応する度数指標に反映されないように生成される。したがって、閲覧者が、イベントに関するパブリックな利用可能な情報に基づいて、特定の興味カテゴリを特定のユーザに起因するものと考えることはより困難である。場合により、パブリックイベントデータ構造406は、ソーシャルメディアイベントアイテム400に関連付けられた管理ユーザには提示するが、一般ユーザ(たとえば、被招待者、参加者候補など)には知らせないことができる。場合により、パブリックイベントデータ構造406は、ソーシャルメディアイベントアイテム400に関連付けられた管理ユーザだけでなく、一般ユーザにも提示することができる。
場合により、ソーシャルメディアプラットフォーム150は、ユーザに妥当であり得る興味カテゴリを、ユーザが自分のソーシャルメディアプロフィールに対してそれらの興味カテゴリを明確に選択していなかったとしても、決定することができる。場合により、これは、ユーザが参加を計画しているイベント(たとえば、ユーザが「はい」とRSVPしたイベント)のそれぞれを識別し、それらのイベントにも参加している他のユーザの間で人気の興味カテゴリを識別することによって、実行することができる。特定の興味カテゴリがそれらの他のユーザの間で十分に共通している場合(たとえば、その興味カテゴリの度数指標が特定の閾値より大きい場合)、ソーシャルメディアプラットフォーム150はその興味カテゴリをユーザに推薦することができる。たとえば、ソーシャルメディアプラットフォームは、ユーザがその興味カテゴリを自分のソーシャルメディアプロフィールに追加するように提案することができる。
場合により、これは、各ユーザに対して、その特定のユーザに妥当であり得る興味カテゴリを表すユーザデータ構造を生成することによって、実行することができる。ユーザデータ構造は、ユーザが参加を計画しているイベントについての1つまたは複数のイベントデータ構造に含まれていた各興味カテゴリを示すことができる。さらに、イベントデータ構造は、(たとえば、各興味カテゴリにわたって各イベントデータ構造の度数指標を組み合わせるかまたは合計した)各興味カテゴリについての度数指標を含むことができる。場合により、これはヒストグラムの形態で提示することができる。
この機能の例を図5Aおよび図5Bに示す。この例では、ユーザ(「人物1」)は、ソーシャルメディアプラットフォーム150上で個人用ソーシャルメディアプロフィール500を作成しており、興味カテゴリ「A」、「D」および「F」を選択して、ソーシャルメディアプロフィール500に含めている。さらに、ユーザは2つのイベント、「イベント1」および「イベント2」への参加を計画していることを(たとえば、これらのイベントに「はい」とRSVPすることによって)表明している。
「イベント1」はソーシャルメディアイベントアイテム502aによって表されており、「イベント2」はソーシャルメディアイベントアイテム502bによって表されている。ソーシャルメディアイベントアイテム502aおよび502bは、それぞれ対応するイベントデータ構造504aおよび504bを含む。イベントデータ構造504aおよび504bは、(たとえば、図3A〜図3Cに関して説明した)本明細書に記載の技術などに従って生成することができる。たとえば、イベントデータ構造504aおよび504bは、(i)それぞれのソーシャルメディアイベントアイテムの管理ユーザによって選択されたか、または(ii)それぞれのイベントへの招待を受諾したユーザによって選択された興味カテゴリのそれぞれを示すことができる。さらに、イベントデータ構造504aおよび504bは、各興味カテゴリについて、その興味カテゴリがそれぞれのソーシャルメディアイベントアイテムの管理ユーザおよび/またはそれぞれのイベントへの参加を受諾したユーザによって選択された回数を示す度数指標を含むことができる。場合により、これはヒストグラムの形態で提示することもできる。
図5Bに、「人物1」の例示的なユーザデータ構造506の表現を示す。この例では、興味カテゴリ「A」は度数指標4を有する(イベントデータ構造504aおよび504bにわたる興味カテゴリ「A」についての度数指標の合計)。同様に、興味カテゴリ「B」は度数指標3を有する(イベントデータ構造504aおよび504bにわたる興味カテゴリ「B」についての度数指標の合計)。さらに、興味カテゴリ「C」は度数指標8を有する(イベントデータ構造504aおよび504bにわたる興味カテゴリ「C」についての度数指標の合計)。さらに、興味カテゴリ「D」は度数指標3を有する(イベントデータ構造504aおよび504bにわたる興味カテゴリ「D」についての度数指標の合計)。さらに、興味カテゴリ「E」は度数指標2を有する(イベントデータ構造504aおよび504bにわたる興味カテゴリ「E」についての度数指標の合計)。さらに、興味カテゴリ「F」は度数指標6を有する(イベントデータ構造504aおよび504bにわたる興味カテゴリ「F」についての度数指標の合計)。さらに、興味カテゴリ「G」は度数指標4を有する(イベントデータ構造504aおよび504bにわたる興味カテゴリ「G」についての度数指標の合計)。
ソーシャルメディアプラットフォーム150は、ユーザデータ構造を使用して、ユーザに妥当であり得る1つまたは複数の興味カテゴリを、ユーザが自分のソーシャルメディアプロフィールに対してそれらの興味カテゴリを明確に選択していなかったとしても、識別することができる。一例として、ソーシャルメディアプラットフォーム150は、ユーザに対して提案される興味カテゴリのリストを生成し、リストをユーザに提示して選択させることができる。リストは、たとえば、ユーザがまだ自分のソーシャルメディアプロフィールに含めていない興味カテゴリを識別することによって、決定することができる。さらに、リストは、ユーザに妥当な可能性が高い興味カテゴリが優先され、および/またはユーザにより目立つように表示され(たとえば、リストの先頭の近くに提示され)、ユーザに妥当な可能性が低い興味カテゴリが優先されず、および/またはユーザにより目立たないように表示される(たとえば、リストの後尾の近くに提示される)ようにソートすることができる。ユーザはリストから興味カテゴリの1つまたは複数を選択して、それらの興味カテゴリを自分のプロフィールに追加することができる。
他の例として、ソーシャルメディアプラットフォーム150は、特定の興味カテゴリの度数指標が十分に高い(たとえば、閾値を上回る)か否かを判定することができる。高い場合(かつ、ユーザがその興味カテゴリを自分のソーシャルメディアプロフィールに既に含めていない場合)、ソーシャルメディアプラットフォーム150は、そのユーザがその興味カテゴリを自分のプロフィールに含めることに興味があり得ると決定することができる。さらに、ソーシャルメディアプラットフォーム150は、興味カテゴリをユーザに自動的に推薦する(たとえば、ユーザが興味カテゴリを自分のソーシャルメディアプロフィール500に含めるように提案する通知または他のメッセージをユーザに送信する)ことができる。実際には、閾値は実施態様に応じて異なることができる。場合により、閾値は、ソーシャルメディアプラットフォーム150の監督者または開発者によって指定することができる。場合により、閾値は、ソーシャルメディアプラットフォーム150の1人または複数人のユーザ(たとえば、管理ユーザ)によって指定することができる。
この例では、閾値は5である。したがって、ソーシャルメディアプラットフォーム150は、興味カテゴリ「C」を「人物1」に自動的に提案することができる(興味カテゴリ「C」の度数指標が閾値を超えるため)。さらに、興味カテゴリ「F」の度数指標も閾値を超えるが、ソーシャルメディアプラットフォーム150は、興味カテゴリ「F」を「人物1」に自動的に推薦せず、その理由は、既に自分のソーシャルメディアプロフィール500に含めているためである。
本明細書に記載のように、ユーザはソーシャルメディアプラットフォーム150によって提示されるユーザインターフェースを使用して、ソーシャルメディアプラットフォーム150と対話することができる。例示的なユーザインターフェース(たとえば、ユーザインターフェース600、700、800、900、1000、および1050)を以下に説明する。場合により、本明細書に記載のユーザインターフェースは、図1に示したユーザインターフェース108a−cの一部として実装することができる。
ユーザが興味カテゴリを選択して自分のソーシャルメディアプロフィールに含めることを可能にする例示的なユーザインターフェース600を図6に示す。ユーザインターフェース600は、選択可能な各興味カテゴリを示すメニューペイン602を含む。ユーザはメニューペイン602に表示された興味カテゴリの1つを(たとえば、入力デバイスを使用して所望の興味カテゴリの隣の選択ボックス604をクリックするまたは「チェックを入れる」ことによって)選択することができる。それに応答して、選択された興味カテゴリは選択ペイン606に移動され、ユーザのソーシャルメディアプロフィールに関連付けられる。ユーザはこのようにして複数の興味カテゴリを選択することができる。さらに、ユーザは、(たとえば、興味カテゴリの隣の選択ボックス604の「チェックをはずす」ことによって)選択した興味カテゴリを選択ペイン606から削除し、メニューペイン602に戻すことができる。削除された興味カテゴリは、ユーザのソーシャルメディアプロフィールから削除される。
ユーザが興味カテゴリを選択してソーシャルメディアイベントアイテムに含めることを可能にする例示的なユーザインターフェース700を図7に示す。ユーザインターフェース700は、選択に使用可能な各興味カテゴリを示すメニューペイン702を含む。ユーザ(たとえば、ソーシャルメディアイベントアイテムの管理ユーザ)は、メニューペイン702に表示された興味カテゴリの1つを(たとえば、入力デバイスを使用して所望の興味カテゴリの隣の選択ボックス704をクリックするまたは「チェックを入れる」ことによって)選択することができる。それに応答して、選択された興味カテゴリは選択ペイン706に移動され、ソーシャルメディアイベントアイテムに関連付けられる。ユーザはこのようにして複数の興味カテゴリを選択することができる。さらに、ユーザは、(たとえば、興味カテゴリの隣の選択ボックス604の「チェックをはずす」ことによって)選択した興味カテゴリを選択ペイン706から削除し、メニューペイン702に戻すことができる。削除された興味カテゴリは、ソーシャルメディアイベントアイテムから削除される。
ユーザがイベントに関する情報(たとえば、ソーシャルメディアイベントアイテムからの情報)を閲覧することを可能にする例示的なユーザインターフェース800を図8に示す。ユーザインターフェース800は、イベントに関する情報(たとえば、イベントのタイトル、イベントの場所、イベントの予定時刻および時間、イベントへの参加を計画しているユーザの「友人」の1人または複数人など)を表示する説明ペイン802を含む。説明ペイン802は、イベントに関連付けられた1つまたは複数の興味カテゴリ(たとえば、管理ユーザによって選択された1つまたは複数の興味カテゴリ)も示す。ユーザは、「参加」コマンド804を選択することによって、イベントへの参加を計画していることを表明することができる。
ユーザ(たとえば、管理ユーザ)がイベントデータアイテムの内容を閲覧することを可能にする例示的なユーザインターフェース900を図9に示す。ユーザインターフェース900は、イベントへの参加を計画しているユーザ(たとえば、「参加者」)に関する情報を表示するヒストグラムペイン902を含む。ヒストグラムペイン902は、少なくとも1人の「参加者」が選択して自分の個人用ソーシャルメディアプロフィールに含めた各興味カテゴリの表示と、参加者の間で各興味カテゴリが選択された回数を示す度数指標とを含む。ヒストグラムペイン902は、ユーザがイベントの参加者の間で人気のカテゴリをより容易に決定できるように、度数指標に基づいて興味カテゴリをソートすることができる(たとえば、最高度数を有する興味カテゴリが最初に表示される)。
ユーザが複数のイベントに関する情報を閲覧することを可能にする例示的なユーザインターフェース1000を図10Aに示す。ユーザインターフェース1000は、ユーザが参加可能なイベントを示すフィードペイン1002を含む。場合により、フィードペイン1002に表示されたイベントは、ユーザによって選択された興味カテゴリ、および/または本明細書に記載のイベント推薦技術に基づいて、ソーシャルメディアプラットフォーム150によって選択することができる。ユーザはフィードペイン1002からイベントを選択して、(たとえば、図8に示したユーザインターフェース800を使用して)そのイベントに関するさらなる情報を閲覧することができる。ユーザは「参加」コマンド1004を選択することによって、イベントへの参加を計画していることを表明することもできる。
ユーザが複数のイベントに関する情報を閲覧することを可能にする他の例示的なユーザインターフェース1050を図10Bに示す。ユーザインターフェース1050は、(たとえば、グラフィカルなマップ1056に重ねられたマーカ1054を使用して)ユーザが参加可能なイベントの計画された地理的場所を示すマップペイン1052を含む。場合により、マップペイン1052に表示されたイベントは、ユーザによって選択された興味カテゴリ、および/または本明細書に記載のイベント推薦技術に基づいて、ソーシャルメディアプラットフォーム150によって選択することができる。ユーザはマップペイン1052からマーカ1054を選択して、(たとえば、図8に示したユーザインターフェース800を使用して)特定のイベントに関するさらなる情報を閲覧することができる。
いくつかの実施態様では、ソーシャルメディアプラットフォーム150は、ユーザが自動化された方式で会場に関する情報を決定する(たとえば、会場に関連付けられた興味カテゴリ、および/または会場に関連付けられたイベントを識別する)ことを可能にすることができる。この機能の例を図11Aおよび図11Bに示す。
この例では、ユーザは会場(たとえば、イベントを開催する場所、たとえば、コンサートホール、映画館、スタジアム、クラブ、公園、イベントスペースなど)を管理しており、会場を1人または複数人の他のユーザ(たとえば、参加者候補、イベント運営者、イベント主催者など)に告知することを望む。このユーザを「管理ユーザ」と呼ぶ場合がある。これを容易にするために、管理ユーザはソーシャルメディアプラットフォーム150と対話して、会場アイテム1100を作成し、会場アイテム1100に会場に関する情報を入力することができる。たとえば、管理ユーザは、会場の名前(たとえば、「会場1」)、会場に関連付けられたイベントおよび今後のイベントに関する情報、ならびに会場に関するコンテンツ(たとえば、会場に関するテキスト情報、画像、ビデオ、音声、または他のコンテンツ)を提供することができる。さらに、管理ユーザは、会場に関係する、妥当な、および/または他の態様で関連する1つまたは複数の興味カテゴリを示すことができる。これは、たとえば、管理ユーザが会場に関する人口統計情報および傾向を決定できるようになるので、有益であり得る。これにより、他のユーザ(たとえば、管理ユーザ、参加者候補、イベント運営者、イベント主催者など)が、会場の性質を素早く評価し、会場のイベントに参加したいか、および/または会場のイベントを運営したいかを判断できるようにもなる。この例では、ユーザは、興味カテゴリ「A」、「B」および「C」を選択している。
さらに、管理ユーザはソーシャルメディアプラットフォーム150と対話して、行われたおよび/または行われる予定である1つまたは複数のイベントを示すことができる。場合により、イベントの1つまたは複数は、(たとえば、図2、図3A〜図3C、図4A〜図4C、図5Aおよび図5Bに関して図示および説明したように)ソーシャルメディアイベントアイテムに対応することができる。この例では、管理ユーザは、1つのイベント(ソーシャルメディアイベントアイテム1102aに対応する「イベント1」)が過去に行われたことを示している。さらに、管理ユーザは、3つのイベント(ソーシャルメディアイベントアイテム1102b、1102c、および1102dにそれぞれ対応する「イベント2」、「イベント3」および「イベント4」)が今後行われる予定であることを示している。
場合により、イベントの管理ユーザ(たとえば、運営者、イベント主催者など)は、(たとえば、ソーシャルメディアイベントアイテムに入力する場合に)自分のイベントに関連付けられる会場を指定することができる。ソーシャルメディアプラットフォーム150は、入力に基づいて1つまたは複数の会場アイテムを自動的に生成することができる。たとえば、ソーシャルメディアプラットフォーム150は、特定の会場で行われたまたは行われる予定であるイベントのそれぞれを識別し、それらのイベントのそれぞれを指定する会場アイテムを生成することができる。
本明細書に記載のように、ユーザはソーシャルメディアプラットフォーム150と対話して、ソーシャルメディアイベントアイテムをレビューすることができる(たとえば、イベントに関する情報を取得するため)。さらに、各ユーザは参加を計画しているか否かを表明することができる。たとえば、各ユーザは、イベントに関する「RSVP」データ(たとえば、招待を辞退した、招待を受諾した、招待を暫定的に受諾したことなどを示すデータ)を提出することができる。
さらに、本明細書に記載のように、ソーシャルメディアプラットフォーム150は各イベントについてのイベントデータ構造を生成することができる。イベントデータ構造は、(i)ソーシャルメディアイベントアイテムに入力する場合に、ソーシャルメディアイベントアイテム300の管理ユーザ(たとえば、イベントを運営および/または主催する責任があるユーザ)によって選択されたか、または(ii)自分のユーザプロフィールに入力する場合に、イベントへの招待を受諾した(たとえば、「はい」とRSVPした)ユーザによって選択された興味カテゴリのそれぞれを示すことができる。さらに、イベントデータ構造は、各興味カテゴリについて、その興味カテゴリが(たとえば、ソーシャルメディアイベントアイテムに入力する場合に)イベントの管理ユーザによって選択されたか、および/または(自分のユーザプロフィールに入力する場合に)イベントへの招待を受諾したユーザによって選択された回数を示す度数指標を含むことができる。場合により、これはヒストグラムの形態で提示することができる。この例では、各ソーシャルメディアイベントアイテム1102a−1102dは、ヒストグラムの形態のそれぞれのイベントデータ構造1104a−dを含む。
場合により、ソーシャルメディアプラットフォーム150は、会場についての会場データ構造を生成することができる。会場データ構造は、(i)会場アイテムに入力する場合に、会場の管理ユーザによって選択されたか、(ii)ソーシャルメディアイベントアイテムに入力する場合に、会場に関連付けられたソーシャルメディアイベントアイテムの管理ユーザによって選択されたか、または(iii)自分のユーザプロフィールに入力する場合に、会場に関連付けられたイベントへの招待を受諾した(たとえば、「はい」とRSVPした)ユーザによって選択された興味カテゴリのそれぞれを示すことができる。さらに、会場データ構造は、各興味カテゴリについて、その興味カテゴリがこのようにして選択された回数を示す度数指標を含むことができる。場合により、これはヒストグラムの形態で提示することもできる。
図11Bに、会場アイテム1100についての例示的な会場データ構造1106の表現を示す。この例では、興味カテゴリ「A」は、「会場1」の管理ユーザによって選択され、「イベント1」および「イベント4」に関連付けられたユーザによって6回選択されているので、度数指標7を有する。同様に、興味カテゴリ「B」は、「会場1」の管理ユーザによって選択され、「イベント1」、「イベント3」、および「イベント4」に関連付けられたユーザによって6回選択されているので、度数指標7を有する。さらに、興味カテゴリ「C」は、「会場1」の管理ユーザによって選択され、「イベント1」に関連付けられたユーザによって3回選択されているので、度数指標4を有する。さらに、興味カテゴリ「D」は、「イベント1」、「イベント2」、「イベント3」および「イベント4」に関連付けられたユーザによって4回選択されているので、度数指標4を有する。さらに、興味カテゴリ「E」は、「イベント1」、「イベント2」および「イベント4」に関連付けられたユーザによって4回選択されているので、度数指標4を有する。さらに、興味カテゴリ「F」は、「イベント1」、「イベント2」、「イベント3」および「イベント4」に関連付けられたユーザによって12回選択されているので、度数指標12を有する。さらに、興味カテゴリ「G」は、「イベント1」、「イベント2」および「イベント4」に関連付けられたユーザによって3回選択されているので、度数指標3を有する。
場合により、会場データ構造1106は、会場アイテム1100に含めて、会場アイテム1100をレビューする場合にユーザに提示することができる。たとえば、ユーザが会場アイテム1100にアクセスにする場合(たとえば、ソーシャルメディアプラットフォーム150を使用して会場に関する情報を閲覧する場合)、ソーシャルメディアプラットフォーム150は、会場データ構造1106を表すヒストグラム(あるいは他のグラフィカル表現および/またはテキスト表現)をユーザに表示することができる。これは、たとえばイベントの参加者候補が会場およびそれに関連付けられたイベントに妥当な興味カテゴリを、それらの興味カテゴリが会場またはイベントの管理ユーザによって明確に選択されていなかったとしても識別できるようになるので、有益であり得る。この情報は管理ユーザに提示することもできる(たとえば、会場に関連付けられたイベントの予想参加者の興味に関する情報を管理ユーザに提供するため)。
場合により、会場データ構造の度数指標は、異なる重みに応じて計算することができる。一例として、会場の管理ユーザによって選択された興味カテゴリには、より大きい重みを割り当てることができ(たとえば、各選択は重み10を有する)、他のユーザにはより小さい重みを割り当てることができる(たとえば、各選択は重み1を有する)。したがって、特定のユーザによってなされた興味カテゴリ選択は、会場データ構造の度数指標により大きな影響を与えることができる。
場合により、会場データ構造の度数指標へのイベントの影響は、経時的に変化することができる。たとえば、まだ行われていないイベントには、より大きい重みを割り当てることができる(たとえば、それらのイベントに関連付けられた各興味カテゴリ選択は、重み1を有することができる)。イベントが行われると、イベントに経時的に徐々により小さい重みを割り当てることができる(たとえば、イベントが行われた1ヶ月後には重み0.75、イベントが行われた2ヶ月後には重み0.5、イベントが行われた3ヶ月後には重み0.25、イベントが行われた4ヶ月後には重み0)。この時間ベースの重み付けの「減衰」は、たとえば、会場データ構造についての度数指標の計算において、より最近のイベントを優遇するので、有用であり得る。したがって、経時的な会場の観客の変化を決定することがより簡単になり得る。たとえば、会場が歴史的にコメディイベントに関連していたが、最近は代わりに音楽イベントへ移行している場合、このジャンルの変化は、時間ベースの重み付けの減衰によってより簡単に検出することができる。
例示的な重み付け基準および重みを上記で説明しているが、これらは説明のための例にすぎない。実際には、他の重み付け基準および/または重みを、本明細書に記載したものの代わりにまたはこれに加えて使用することができる。
場合により、ソーシャルメディアプラットフォーム150は、まず会場アイテムについての会場データ構造を生成し、生成後に会場データ構造を1回または複数回修正することができる。
場合により、ソーシャルメディアプラットフォーム150は、1つまたは複数のデータベースのデータに変化をもたらすトランザクション(たとえば、データベースモジュール202によって記憶されたデータ、たとえば、ソーシャルメディアプロフィール210、ソーシャルメディアイベントアイテム212、および/または会場アイテム218に関して処理モジュール206によって実行されるトランザクション)を監視することができる。トランザクションが特定のトリガ基準を満たす場合、ソーシャルメディアプラットフォーム150はそれに応答して1つまたは複数の会場データ構造を修正することができる。たとえば、トランザクションがイベントデータ構造に影響するデータフィールドを修正する場合(たとえば、ユーザがイベントに「はい」とRSVPすること、ユーザが自分のソーシャルメディアプロフィールに対して追加の興味カテゴリを選択すること、またはイベントのヒストグラムに影響し得る他のアクションについてのトランザクション修正の場合)、ソーシャルメディアプラットフォーム150は、(たとえば、処理モジュール206を使用して)そのトランザクションを特定のフラグ、たとえば、「トリガ」フラグによってマークすることができる。各トランザクションが正常に完了した場合、ソーシャルメディアプラットフォーム150は、(たとえば、処理モジュール206を使用して)そのトランザクションのフラグを確認し、次いで任意の識別されたフラグに基づいて特定の関数を呼び出す。これらの関数はこれら自体のトランザクションを生成し、このトランザクションは、実行されるとそれに応じて適切なイベントデータ構造および会場データ構造を更新する(たとえば、妥当なイベントおよび会場のヒストグラムを更新する)。これは、たとえば、ソーシャルメディアプラットフォーム150が、会場データ構造を更新する前に(これは完了するのに比較的長い時間がかかり得る)、ユーザが行なった任意の変更を素早く確認できるようになるので、有用であり得る。たとえば、ユーザが新たな興味カテゴリを自分のソーシャルメディアプロフィールに追加する場合、ソーシャルメディアプラットフォーム150は、(ユーザが長い時間待たなくてよいように)ユーザの変更を素早く確認し、その後、ユーザが他のタスクを行なっている間に、ユーザの変更に基づいて1つまたは複数の会場データ構造を更新することができる。
一例として、管理ユーザが会場アイテムの興味カテゴリ選択を修正した場合、それに応答して、ソーシャルメディアプラットフォーム150は、(たとえば、新たな興味カテゴリを会場データ構造に追加する、会場データ構造から興味カテゴリを削除する、および/または会場データ構造における興味カテゴリの度数指標を修正することによって)これらの変更を反映するように会場データ構造を修正することができる。他の例として、1人または複数人の追加ユーザが会場に関連付けられたイベントへの参加を計画していることを表明している場合、それに応答して、ソーシャルメディアプラットフォーム150は、(たとえば、新たな興味カテゴリを会場データ構造に追加する、および/または会場データ構造において追加ユーザによって選択された興味カテゴリの度数指標をインクリメントすることによって)これらの変更を反映するように会場データ構造を修正することができる。他の例として、1人または複数人のユーザが会場に関連付けられたイベントへの参加をもはや計画していないことを表明している場合、ソーシャルメディアプラットフォーム150は、(たとえば、会場データ構造から興味カテゴリを削除する、および/または会場データ構造においてそれらのユーザによって選択された興味カテゴリの度数指標をデクリメントすることによって)これらの変更を反映するように会場データ構造を修正することができる。他の例として、会場に関連付けられたイベントへの参加を計画している1人または複数人のユーザが自分の個人用ソーシャルメディアプロフィール内の興味カテゴリ選択を修正する場合、ソーシャルメディアプラットフォーム150は、(たとえば、新たな興味カテゴリを会場データ構造に追加する、会場データ構造から興味カテゴリを削除する、および/または会場データ構造における興味カテゴリの度数指標を修正することによって)これらの変更を反映するように会場データ構造を修正することができる。これは、たとえば、ソーシャルメディアプラットフォーム150が、会場のそれぞれに関する正確な情報を提示できるようになるので、有用であり得る。
場合により、これらの修正は、まだ行われていないイベントに関してのみ行うことができる。たとえば、図11Aを参照すると、「イベント1」は既に行われたイベントである。したがって、ソーシャルメディアプラットフォーム150は、(たとえば、「イベント1」が行われた後に)会場データ構造1104aを「凍結」し、イベントが行われたときのユーザの興味カテゴリの過去の記録として会場データ構造1104aを保存することができる。しかしながら、「イベント2」、「イベント3」および「イベント4」はまだ行われていない。したがって、ソーシャルメディアプラットフォーム150は、それぞれのイベントが行われるまで、ユーザの活動に基づいて会場データ構造1104b、1104c、および1104dの修正を継続することができる(たとえば、イベントが行われる前にユーザの興味カテゴリに関する最新情報を提供するため)。
場合により、ソーシャルメディアプラットフォーム150は、会場アイテムをリアルタイムまたは実質的にリアルタイムに更新することができる。たとえば、ソーシャルメディアプラットフォームはトランザクションを監視して、特定のトランザクションが1つまたは複数のトリガ基準を満たすか否かを判定することができる(たとえば、ユーザが特定の会場に関連付けられたイベントデータアイテムの興味カテゴリ選択を修正する、1人または複数人の追加ユーザがその会場に関連付けられたイベントへの参加を計画していることを表明する、1人または複数人のユーザがその会場に関連付けられたイベントへの参加をもはや計画していないことを表明する、その会場に関連付けられたイベントへの参加を計画している1人または複数人のユーザが自分の個人用ソーシャルメディアプロフィール内の興味カテゴリ選択を修正する、など)。それに応答して、ソーシャルメディアプラットフォーム150は、対応する会場データ構造を即時に(または実質的に即時に)修正することができる。これは、たとえば、ソーシャルメディアプラットフォーム150が会場のそれぞれに関する最新情報を継続的に維持できるようにする際に、有用であり得る。
場合により、ソーシャルメディアプラットフォーム150は会場アイテムを定期的に更新することができる。たとえば、ソーシャルメディアプラットフォーム150は、繰り返しのスケジュールに従って(たとえば、1秒に1回、1分に1回、1時間に1回、1日に1回、または何らかの他のスケジュールに従って)、1つまたは複数のトリガ基準が満たされているか否かを判定することができる。特定のトリガ基準が満たされていると決定すると、ソーシャルメディアプラットフォーム150はそれに応答して対応する会場データ構造を修正することができる。これは、たとえば、ソーシャルメディアプラットフォーム150が、(たとえば、リアルタイムに更新するのと比較して)より予測可能なスケジュールに従って、計算コストを削減し得る方式で、運営されるイベントのそれぞれに関する最新情報を維持できるようにする際に、有用であり得る。
これは、たとえば、ソーシャルメディアプラットフォーム150におけるデータの完全性を向上する際にも、有用であり得る。たとえば、動作中に、ソーシャルメディアプラットフォーム150は異常に振る舞って不安定になる場合がある(たとえば、システムクラッシュ)。上記のように、ソーシャルメディアプラットフォーム150は、リアルタイムまたは実質的にリアルタイムに(たとえば、トランザクションを監視して、特定のトランザクションが1つまたは複数のトリガ基準を満たすか否かを判定し、満たす場合、それに応答して即時に対応する会場データ構造を修正することによって)会場アイテムを更新することができる。しかしながら、トランザクションの実行後であるが、会場データ構造がそれに応答して更新される前に、ソーシャルメディアプラットフォーム150がシステムクラッシュを経験した場合、会場データ構造はそのトランザクションの実行を反映しない。さらに、会場アイテムはリアルタイムまたは実質的にリアルタイムに、予測可能なスケジュールに従わずに更新されるので、会場アイテムが正しく更新されたか否かを判定することは困難であろう。対照的に、ソーシャルメディアプラットフォーム150が会場アイテムを定期的に(たとえば、予測可能なスケジュールに従って)更新する場合、各会場アイテムが正しく更新されたか否かを判定することは容易になる。たとえば、システムがクラッシュした時刻を、予定更新時刻と比較することができる。クラッシュが予定更新時刻後に発生した場合、ソーシャルメディアプラットフォーム150は、予定更新が行われたと決定することができる。しかしながら、クラッシュが予定更新時刻前に発生した場合、ソーシャルメディアプラットフォーム150は、予定更新が行われなかったと決定することができ、それに応答して修正措置をとる(たとえば、次の予定更新時に追加の更新をキューに入れる)ことができる。このようにして、ソーシャルメディアプラットフォーム150におけるデータの信頼性を向上させることができる。とはいえ、これはソーシャルメディアプラットフォーム150が、場合により、(たとえば、継続的な最新の情報がデータ完全性の改善よりも望ましい場合に)リアルタイムまたは実質的にリアルタイムに会場アイテムを更新することを排除するものではない。
場合により、ソーシャルメディアプラットフォーム150は、経時的な複数の会場データ構造を生成し、会場データ構造の一部または全部を同時に(たとえば、3次元ヒストグラムの形態で)提示することができる。これは、たとえば、経時的な会場の特徴の変化を決定する際に、有用であり得る。一例として、ソーシャルメディアプラットフォーム150は、時刻t1に応じた会場データ構造(たとえば、時刻t1時点での会場に関連付けられたイベントについての興味カテゴリの度数指標を示すもの)を生成することができる。メディアプラットフォーム150は、時刻t2、t3、およびt4に応じた追加の会場データ構造(たとえば、時刻t2、t3、およびt4時点での会場に関連付けられたイベントについての興味カテゴリの度数指標をそれぞれ示すもの)を生成することもできる。会場データ構造の一部または全部を同時に(たとえば、図12に示す3次元ヒストグラム1200の形態で)ユーザに提示することができる。これにより、ユーザは、経時的な会場に関連付けられた興味カテゴリの変化を識別し、会場で行われるイベントの種類、およびそれらのイベントの参加者の興味をより良く理解することが可能になる。
同様に、ソーシャルメディアプラットフォーム150は、経時的な一連のイベントにわたる複数のイベントデータ構造を生成し、イベントデータ構造の一部または全部を同時に(たとえば、3次元ヒストグラムの形態で)提示することができる。これは、たとえば、経時的な一連のイベントの人口統計の変化を決定する際に、有用であり得る。一例として、繰り返しの一連のイベントは、「イベントA」、「イベントB」、「イベントC」、および「イベントD」を含むことができる。「イベントA」が行われると、ソーシャルメディアプラットフォーム150は、(たとえば、イベントの管理ユーザおよび/またはイベントへの参加を計画していることを表明したユーザによる興味カテゴリ選択に基づいて)「イベントA」に対応する第1のイベントデータ構造を生成することができる。同様に、「イベントB」、「イベントC」、および「イベントD」が行われると、ソーシャルメディアプラットフォーム150は、(たとえば、イベントの管理ユーザおよび/またはイベントへの参加を計画していることを表明したユーザによる興味カテゴリ選択に基づいて)それらのイベントに対応する追加のイベントデータ構造を生成することができる。イベントデータ構造の一部または全部を同時に(たとえば、図13に示す3次元ヒストグラム1300の形態で)ユーザに提示することができる。これにより、ユーザは、経時的な一連のイベントに関連付けられた興味カテゴリの変化を識別し、それらのイベントの参加者の興味をより良く理解することが可能になる。
例示的な処理
自動化された方式でイベントを識別しユーザに推薦するための例示的な処理1400を図14に示す。いくつかの実施態様では、処理1400は、図1のシステム100、および/または図2に示したソーシャルメディアプラットフォーム150によって実行することができる。
処理1400において、サーバシステムは、複数人のユーザについてのプロフィールデータと、複数のソーシャルメディアイベントについてのイベントデータとを生成する(ステップ1402)。サーバシステムは、たとえば、図1に関して説明したソーシャルメディアプラットフォーム150を含むサーバシステム102を含むことができる。プロフィールデータは、各ユーザについて、そのユーザに関連付けられた1つまたは複数の興味カテゴリの表示を含むことができる。イベントデータは、各ソーシャルメディアイベントについて、そのソーシャルメディアイベントに関連付けられた1人または複数人のユーザの表示を含むことができる。この機能の例は、たとえば、図3Aおよび図4Aに関して説明している。
サーバシステムは、第1のユーザのサブセットが第1のソーシャルメディアイベントに関連付けられていると決定する(ステップ1404)。たとえば、サーバシステムは、1人または複数人の特定のユーザが、特定のソーシャルメディアイベントへの参加を計画している、および/または特定のソーシャルメディアイベントへの参加を暫定的に計画していることを表明している(たとえば、「はい」および/または「たぶん」とRSVPしている)と決定することができる。
サーバシステムは、プロフィールデータおよびイベントデータを1つまたは複数のデータベースに記憶する(ステップ1406)。一例として、プロフィールデータおよびイベントデータは、図2に関して説明したデータベースモジュール202を使用して記憶することができる。
サーバシステムは、第1の興味カテゴリのサブセットが第1のユーザのサブセットに関連付けられていると決定する(ステップ1408)。これは、たとえば、第1のユーザのサブセットによって選択され、彼らのプロフィールに含められた興味カテゴリを含むことができる。
サーバシステムは、第2の興味カテゴリのサブセットが第1のソーシャルメディアイベントに関連付けられていると決定する(ステップ1410)。第2の興味カテゴリのサブセットは第1のソーシャルメディアイベントの管理ユーザによって選択される。これは、たとえば、第1のソーシャルメディアイベントの管理ユーザによって、第1のソーシャルメディアイベントに妥当であると識別された興味カテゴリを含むことができる。
第1の興味カテゴリのサブセットおよび第2の興味カテゴリのサブセットに基づいて、第1のソーシャルメディアイベントについてイベントデータ構造が生成される(ステップ1412)。イベントデータ構造は、第1の興味カテゴリのサブセットおよび第2の興味カテゴリのサブセットの表示と、第1の興味カテゴリのサブセットおよび第2の興味カテゴリのサブセットのうちの各興味カテゴリについての、その興味カテゴリに関連付けられた第1のユーザのサブセットのユーザの数と、その興味カテゴリが第1のソーシャルメディアイベントの管理ユーザによって選択されているか否かにとに基づくそれぞれの度数指標とを含む。この機能の例は、たとえば、図3B、図4B、および図4Cに関して説明している。
サーバシステムは、1つまたは複数のデータベースのデータに変化をもたらすデータベーストランザクションを監視するように構成される1つまたは複数の処理を実行する(ステップ1414)。これは、たとえば、図2に関して説明した処理モジュール206を使用して実行することができる。トランザクションは、第1のユーザのサブセットに関連付けられたプロフィールデータへの修正と、第1のイベントに関連付けられたイベントデータへの修正とのうちの少なくとも1つを含むことができる。場合により、修正は興味カテゴリの追加または削除を含むことができる(たとえば、ユーザは自分のプロフィールに対して興味カテゴリを追加または削除する)。場合により、修正は、追加ユーザの第1のソーシャルメディアイベントとの関連付け、または第1のソーシャルメディアイベントからのユーザの関連付け解除を含むことができる(たとえば、ユーザはイベントに「はい」および/または「たぶん」とRSVPし、あるいはユーザは「はい」および/または「たぶん」から「いいえ」にRSVPを切り替える)。
サーバシステムは、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定する(ステップ1416)。トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定したことに応答して、トランザクションに基づいてイベントデータ構造が修正される(ステップ1418)。
場合により、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定することは、特定の興味カテゴリが、第1のユーザのサブセットの特定のユーザのプロフィールデータに対して追加または削除されていると決定することと、第1のソーシャルメディアイベントがまだ行われていないと決定することとを含むことができる。イベントデータ構造を修正することは、イベントデータ構造における特定の興味カテゴリに関連する度数指標を修正することを含むことができる。場合により、サーバシステムはさらに、トランザクションが1つまたは複数の追加のソーシャルメディアイベントに関するトリガ基準を満たすと決定し、トランザクションが1つまたは複数のソーシャルメディアイベントに関するトリガ基準を満たすと決定したことに応答して、トランザクションに基づいて1つまたは複数のソーシャルメディアイベントについてのイベントデータ構造を修正することができる。
場合により、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定することは、追加ユーザが第1のソーシャルメディアイベントに関連付けられていると決定することと、第1のソーシャルメディアイベントがまだ行われていないと決定することとを含むことができる。イベントデータ構造を修正することは、追加ユーザが追加の興味カテゴリに関連付けられていると決定することと、追加の興味カテゴリの表示を含むようにイベントデータ構造を修正することとを含むことができる。
場合により、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定することは、追加ユーザが第1のソーシャルメディアイベントに関連付けられていると決定することと、第1のソーシャルメディアイベントがまだ行われていないと決定することとを含むことができる。イベントデータ構造を修正することは、追加ユーザが第1の興味カテゴリのサブセットの特定の興味カテゴリに関連付けられていると決定することと、追加ユーザが第1の興味カテゴリのサブセットの特定の興味カテゴリに関連付けられていると決定したことに応答して、イベントデータ構造における特定の興味カテゴリに関連する度数指標を修正することとを含むことができる。場合により、イベントデータ構造における特定の興味カテゴリに関連する度数指標を修正することは、特定の興味カテゴリに関連する度数指標をインクリメントすることを含むことができる。
場合により、トランザクションが第1のソーシャルメディアイベントに関するトリガ基準を満たすと決定することは、第1のユーザのサブセットの特定のユーザが第1のソーシャルメディアイベントと関連付け解除されたと決定することと、第1のソーシャルメディアイベントがまだ行われていないと決定することとを含むことができる。イベントデータ構造を修正することは、関連付け解除されたユーザが第1の興味カテゴリのサブセットの特定の興味カテゴリに関連付けられていたと決定することと、関連付け解除されたユーザが第1の興味カテゴリのサブセットの特定の興味カテゴリに関連付けられていたと決定したことに応答して、イベントデータ構造における特定の興味カテゴリに関連する度数指標を修正することとを含むことができる。場合により、イベントデータ構造における特定の興味カテゴリに関連する度数指標を修正することは、特定の興味カテゴリに関連する度数指標をデクリメントすることを含むことができる。
場合により、イベントデータ構造に基づいてヒストグラムを生成し表示することができる。例示的なヒストグラムは、たとえば、図3B、図4B、および図4Cに示している。場合により、1つまたは複数の追加のソーシャルメディアイベントについて1つまたは複数の追加のイベントデータ構造を生成することができる。さらに、イベントデータ構造および1つまたは複数の追加のイベントデータ構造に基づいて複数のヒストグラムを生成し表示することができる。
場合により、プロフィールデータは、少なくとも1人のユーザーについて、そのユーザに関連付けられた1つまたは複数のパブリック興味カテゴリの表示と、そのユーザに関連付けられた1つまたは複数のプライベート興味カテゴリの表示とを含むことができる。そのユーザと1つまたは複数のパブリック興味カテゴリとの関連付けは、1人または複数人の他のユーザによってアクセス可能にすることができ、そのユーザと1つまたは複数のプライベート興味カテゴリとの関連付けは、1人または複数人の他のユーザによってアクセス不可能にすることができる。イベントデータ構造に基づいて1つまたは複数のパブリック興味カテゴリに対応するヒストグラムを生成し表示することができる。
場合により、第1の興味カテゴリのサブセットに基づいてイベントデータ構造を生成することは、第1の興味カテゴリのサブセットの各興味カテゴリについて、その興味カテゴリに関連し、第1のソーシャルメディアイベントへの招待を受諾した第1のユーザのサブセットの各ユーザについて、その興味カテゴリに関連する度数指標を第1の量だけインクリメントすることと、その興味カテゴリに関連し、第1のソーシャルメディアイベントへの招待を暫定的に受諾した第1のユーザのサブセットの各ユーザについて、その興味カテゴリに関連する度数指標を第2の量だけインクリメントすることとを含むことができる。第1の量は第2の量と異なることができる。
場合により、第1の興味カテゴリのサブセットが第1のユーザのサブセットに関連付けられていると決定することは、ユーザのサブセットの少なくとも1人のユーザによって選択された1つまたは複数の興味カテゴリを第1の興味カテゴリのサブセットとして識別すること。を含むことができる。
場合により、サーバシステムは、イベントデータ構造に基づいて追加ユーザに対する第1のソーシャルメディアイベントの推薦を生成することができる。追加ユーザに対する第1のソーシャルメディアイベントの推薦を生成することは、追加ユーザのプロフィールデータを取得することと、追加ユーザのプロフィールデータに基づいて、追加ユーザに関連付けられた興味カテゴリを決定することと、追加ユーザおよびイベントデータ構造に関連付けられた興味カテゴリに基づいて推薦スコアを決定することとを含むことができる。
推薦スコアを決定することは、追加ユーザおよびイベントデータ構造に関連付けられた興味カテゴリに共通している1つまたは複数の興味カテゴリを決定することと、共通している興味カテゴリのそれぞれに対応するイベントデータ構造の度数指標を合計することとを含むことができる。
推薦スコアを決定することは、追加ユーザに関連付けられた第1の地理的場所と、第1のソーシャルメディアイベントに関連付けられた第2の地理的場所との距離を決定することと、第1の地理的場所と第2の地理的場所との距離に基づいて推薦スコアを修正することとをさらに含むことができる。
推薦スコアを決定することは、第2の興味カテゴリのサブセットおよび追加ユーザに関連付けられた興味カテゴリに共通している1つまたは複数の興味カテゴリを決定することと、決定に基づいて推薦スコアを修正することとをさらに含むことができる。
推薦スコアを決定することは、第2のユーザに関連付けられたユーザの数と、第2のユーザおよび第1のソーシャルメディアイベントの両方に関連付けられたユーザの数とを決定することをさらに含むことができる。推薦スコアを決定することは、決定に基づいて推薦スコアを修正することをさらに含むことができる。
追加ユーザに対する第1のソーシャルメディアイベントの推薦を生成することは、推薦スコアが閾値スコアを超えていると決定することと、推薦スコアが閾値スコアを超えていると決定したことに応答して、第1のソーシャルメディアイベントを識別する追加ユーザへの通知を生成することとをさらに含むことができる。
場合により、処理1400は、グラフィカルユーザインターフェースをレンダリングすることをさらに含むことができる。グラフィカルユーザインターフェースはイベントデータ構造のグラフィカル表現を含む。処理1410は、グラフィカルユーザインターフェースをユーザに提示することをさらに含むことができる。例示的なグラフィカルユーザインターフェースは、たとえば、図9に示している。
場合により、イベントデータ構造は実質的にリアルタイムに修正することができる。場合により、イベントデータ構造は定期的に修正することができる。
場合により、サーバシステムは、第1のユーザに対する追加の興味カテゴリの推薦を生成することができる。追加の興味カテゴリの推薦を生成することは、第1のユーザが第1のソーシャルメディアイベントのサブセットに関連付けられていると決定することと、第3の興味カテゴリのサブセットが、第1のソーシャルメディアイベントのサブセットのうちの少なくとも1つのソーシャルメディアイベントに関連付けられていると決定することと、第3の興味カテゴリのサブセット内の各興味カテゴリについて推薦スコアを決定することとを含むことができる。推薦スコアを決定することは、第1のソーシャルメディアイベントのサブセットの各ソーシャルメディアイベントについて、対応するイベントデータ構造を取得することと、第3の興味カテゴリのサブセットの各興味カテゴリについて、興味カテゴリに対応する取得されたイベントデータ構造の度数指標を合計することとを含むことができる。推薦スコアを決定することは、第1のソーシャルメディアイベントのサブセットの各ソーシャルメディアイベントについて、そのソーシャルメディアイベントの管理ユーザによって選択された1つまたは複数の興味カテゴリを決定することと、決定に基づいて推薦スコアを修正することとをさらに含むことができる。この機能の例は、たとえば、図5Aおよび図5Bに関して説明している。
会場の特徴を自動的に決定するための他の例示的な処理1500を図15に示す。いくつかの実施態様では、処理1500は、図1のシステム100、および/または図2に示したソーシャルメディアプラットフォーム150によって実行することができる。
処理1500において、サーバシステムは会場データを生成する(ステップ1502)。会場データは、会場に関して管理ユーザによって選択された1つまたは複数の第1の興味カテゴリの表示と、会場に関連付けられた1つまたは複数のイベントの表示とを含む。たとえば、1つまたは複数の第1の興味カテゴリは、会場の管理ユーザ(たとえば、会場の管理、監督、および/または告知を行う責任があるユーザ)によって、会場アイテムに入力している間に選択することができる。他の例として、1つまたは複数のイベントは、イベントの管理ユーザおよび/または複数人の管理ユーザ(たとえば、イベントを運営および/または主催する責任があるユーザ)によって指定することができる。この機能の例は、たとえば、図11Aに関して図示および説明している。
サーバシステムは、会場に関連付けられた1つまたは複数のイベントのそれぞれについてイベントデータ構造を生成する(ステップ1504)。各イベントデータ構造は、イベントに関連付けられた1つまたは複数の第2の興味カテゴリの表示と、1つまたは複数の第2の興味カテゴリの各興味カテゴリについての、それぞれの度数指標とを含む。イベントデータ構造を生成するための例示的な技術は、たとえば、図3A〜図3C、図4A〜図4C、および図14に関して図示および説明している。
サーバシステムは、会場データおよび1つまたは複数のイベントデータ構造に基づいて会場データ構造を生成する(ステップ1506)。会場データ構造は、1つまたは複数の第1のカテゴリおよび1つまたは複数の第2の興味カテゴリの表示を含む。会場データ構造は、1つまたは複数の第1のカテゴリおよび1つまたは複数の第2の興味カテゴリのうちの各興味カテゴリについての、会場データおよび1つまたは複数のイベントデータ構造に基づいて決定されるそれぞれの度数指標をさらに含む。会場データ構造を生成するための例示的な技術は、たとえば、図11Aおよび図11Bに関して図示および説明している。
いくつかの実施態様では、会場データ構造を生成することは、各イベントデータ構造について、それぞれの重みを決定することと、重みに基づいて会場データ構造の度数指標を決定することとを含むことができる。各重みは、それぞれのイベントの開催の新しさに対応することができる。
サーバシステムは、1つまたは複数のデータベースのデータに変化をもたらすデータベーストランザクションを監視するように構成される1つまたは複数の処理を実行する(ステップ1508)。サーバシステムは、トランザクションが会場データ構造に関するトリガ基準を満たすと決定する(ステップ1510)。トランザクションが会場データ構造に関するトリガ基準を満たすと決定したことに応答して、サーバシステムは、トランザクションに基づいて会場データ構造を修正する(ステップ1512)。いくつかの実施態様では、トランザクションは1つまたは複数のイベントデータ構造への修正を含むことができる。いくつかの実施態様では、トランザクションは会場データへの修正を含むことができる。いくつかの実施態様では、会場データ構造は実質的にリアルタイムに修正することができる。いくつかの実施態様では、会場データ構造は定期的に修正することができる。この機能の例は、たとえば、図11Aおよび図11Bに関して説明している。
いくつかの実施態様では、(たとえば、サーバコンピュータおよび/またはクライアントコンピュータによって)会場データ構造に基づいてヒストグラムを生成し表示することができる。
いくつかの実施態様では、サーバシステムは、会場データおよび1つまたは複数のイベントデータ構造に基づいて1つまたは複数の追加の会場データ構造を生成することができる。各追加の会場データ構造は、それぞれの時刻に応じた1つまたは複数の第1のカテゴリおよび1つまたは複数の第2の興味カテゴリの表示と、1つまたは複数の第1のカテゴリおよび1つまたは複数の第2の興味カテゴリのうちの各興味カテゴリについての、その時刻に応じたそれぞれの度数指標とを含むことができる。会場データ構造および1つまたは複数の追加の会場データ構造に基づいて複数のヒストグラムを生成し表示することができる。例示的なヒストグラムは、たとえば、図12および図13に関して図示および説明している。
いくつかの実施態様では、グラフィカルユーザインターフェースをレンダリングすることができる。グラフィカルユーザインターフェースはイベントデータ構造のグラフィカル表現を含むことができる。グラフィカルユーザインターフェースをユーザに提示することができる。
例示的なシステム
本明細書に記載の主題および動作のいくつかの実施態様は、デジタル電子回路で、または本明細書で開示した構造およびその構造的等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、あるいはそれらの1つまたは複数の組み合わせで実装することができる。たとえば、いくつかの実施態様では、サーバシステム102、プラットフォーム150、およびクライアントデバイス104a−cは、デジタル電子回路を使用して、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、あるいはそれらの1つまたは複数の組み合わせで実装することができる。他の例では、処理1400および1500は、デジタル電子回路を使用して、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、あるいはそれらの1つまたは複数の組み合わせで実装することができる。
本明細書に記載のいくつかの実施態様は、デジタル電子回路、コンピュータソフトウェア、ファームウェア、もしくはハードウェアの1つまたは複数のグループまたはモジュールとして、あるいはそれらの1つまたは複数の組み合わせで実装することができる。異なるモジュールを使用することができるが、各モジュールは別個である必要はなく、複数のモジュールを、同一のデジタル電子回路、コンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらの組み合わせにおいて実装することができる。
本明細書に記載のいくつかの実施態様は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行するための、またはその動作を制御するための、コンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、あるいはそれらの1つまたは複数の組み合わせとすることができ、またはこれらに含めることができる。また、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令の供給源または供給先とすることができる。コンピュータ記憶媒体は、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)とすることができ、またはこれらに含めることができる。
「データ処理装置」という用語は、データを処理するための全ての種類の装置、デバイス、および機械、たとえば、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、またはこれらのうちの複数個、もしくは組み合わせを包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、当該コンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、あるいはそれらの1つまたは複数の組み合わせを構成するコードをさらに含むことができる。装置および実行環境は、様々な異なるコンピューティングモデルインフラストラクチャ、たとえば、Webサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またコードとも呼ばれる)は、コンパイル言語またはインタプリタ言語、宣言型言語または手続き型言語を含む、任意の形式のプログラミング言語で記述することができる。コンピュータプログラムは、必要ではないが、ファイルシステムのファイルに対応してもよい。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプト)を保持するファイルの一部に、当該プログラム専用の単一のファイルに、あるいは複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶したファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、あるいは1つの場所に配置されるか、または複数の場所に分散され通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備することができる。
本明細書に記載の処理フローおよびロジックフローの一部は、1つまたは複数のプログラマブルプロセッサが1つまたは複数のコンピュータプログラムを実行し、入力データに作用し出力を生成してアクションを行うことによって、実行することができる。処理フローおよびロジックフローは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することもでき、装置はこれらとして実装することもできる。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータのプロセッサを含む。一般に、プロセッサは、読み出し専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータは、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとを含む。コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらからデータを受信するかこれらにデータを転送するように動作可能に結合されてもよく、あるいはその両方でもよい。しかしながら、コンピュータはそのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、半導体記憶デバイス(たとえば、EPROM、EEPROM、フラッシュメモリデバイスなど)、磁気ディスク(たとえば、内蔵ハードディスク、リムーバブルディスクなど)、光磁気ディスク、ならびにCD−ROMディスクおよびDVD−ROMディスクを例として含む、全ての形態の不揮発性メモリ、メディアおよびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完することができ、またはこれに組み込むことができる。
ユーザとの対話を提供するために、情報をユーザに表示するための表示デバイス(たとえば、モニタ、または他の種類の表示デバイス)と、ユーザがコンピュータに入力を提供することが可能なキーボードおよびポインティングデバイス(たとえば、マウス、トラックボール、タブレット、タッチ感応スクリーン、または他の種類のポインティングデバイス)とを有するコンピュータ上で動作を実施することができる。他の種類のデバイスを使用してユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受け取ることができる。加えて、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信した要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
コンピュータシステムは、単一のコンピューティングデバイス、または近接してまたは一般的には互いに離れて動作し、典型的には通信ネットワークを介して対話する複数のコンピュータを含んでもよい。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、相互接続ネットワーク(たええば、インターネット)、衛星リンクを含むネットワーク、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。クライアントおよびサーバの関係は、コンピュータプログラムがそれぞれのコンピュータ上で動作し、互いとのクライアント−サーバ関係を有することによって生じ得る。
図16に、プロセッサ1600、メモリ1620、記憶デバイス1630および入出力デバイス1640を含む例示的なコンピュータシステム1200を示す。構成要素1610、1620、1630および1640のそれぞれは、システムバス1650などによって相互接続することができる。プロセッサ1610は、命令を処理してシステム1600内で実行することが可能である。いくつかの実施態様では、プロセッサ1610は、シングルスレッドプロセッサ、マルチスレッドプロセッサ、または他の種類のプロセッサである。プロセッサ1610は、メモリ1620または記憶デバイス1630に記憶された命令を処理することが可能である。メモリ1620および記憶デバイス1630は、システム1600内に情報を記憶することができる。
入出力デバイス1640は、システム1600に対して入出力動作を提供する。いくつかの実施態様では、入出力デバイス1640は、ネットワークインターフェースデバイス、たとえば、イーサネットカード、シリアル通信デバイス、たとえば、RS−232ポート、および/または無線インターフェースデバイス、たとえば、802.11カード、3G無線モデム、4G無線モデム、5G無線モデムなどのうちの1つまたは複数を含むことができる。いくつかの実施態様では、入出力デバイスは、他の入出力デバイス、たとえば、キーボード、プリンタおよび表示デバイス1660から入力データを受け取り、これらに出力データを送るように構成されるドライバデバイスを含むことができる。いくつかの実施態様では、モバイルコンピューティングデバイス、モバイル通信デバイス、および他のデバイスを使用することができる。
本明細書は多くの詳細を含むが、これらは特許請求し得るものの範囲への限定としてではなく、特定の例に固有の特徴の説明として解釈されるべきである。本明細書において別個の実施態様の文脈で説明している特定の特徴は、組み合わせることもできる。反対に、単一の実施態様の文脈で説明している様々な特徴は、複数の実施形態において別々に、または任意の好適な部分的組み合わせで実現することもできる。
いくつかの実施態様を説明した。とはいえ、本発明の趣旨および範囲から逸脱することなく様々な修正がなされ得ることは理解されよう。したがって、他の実施態様は以下の特許請求の範囲内にある。