コンピュータによって実施される方法であって、前記方法は、受信者にアドレッシングされたメッセージを受信することであって、前記受信者は、メッセージングシステムのユーザであることと;前記メッセージングシステム内での前記受信者の以前のメッセージングアクティビティの1または複数の表示に基づき、前記受信者に前記メッセージを送達するために複数のメッセージングチャネルから1以上のメッセージングチャネルを選択することと;選択された前記1以上のメッセージングチャネルを介して前記メッセージを前記受信者に送達することとを有する、コンピュータによって実施される方法。前記受信者の以前のメッセージングアクティビティの前記1または複数の表示は、前記メッセージの送信者によって送信された以前のメッセージに応答するために前記メッセージの前記受信者によって使用された最も最近のメッセージングチャネルの表示からなる、請求項1に記載の方法。前記受信者の以前のメッセージングアクティビティの前記1または複数の表示は、前記複数のメッセージングチャネルの前記受信者の以前の使用パターンからなる、請求項1に記載の方法。1または複数のメッセージングチャネルを選択することはさらに、前記受信者の現在のステータスの1または複数の表示に基づき1または複数のメッセージングチャネルを選択することを含む、請求項1に記載の方法。1または複数のメッセージングチャネルを選択することはさらに、前記メッセージの1または複数の属性に基づき1または複数のメッセージングチャネルを選択することを含む、請求項1に記載の方法。1または複数のメッセージングチャネルを選択することは、前記メッセージの送信者と前記メッセージの前記受信者との間の社会的関係に基づき1または複数のメッセージングチャネルを選択することを含む、請求項1に記載の方法。前記メッセージを送達することはさらに、前記メッセージ前記選択されたチャネルを介して前記受信者に送達する形を判定することと;前記判定された形で前記1または複数の選択されたチャネルを介して前記受信者に前記メッセージを送達することとを含む、請求項1に記載の方法。前記メッセージを送達する形を判定することは、前記受信者の現在のステータスの少なくとも1つの表示に基づき、前記メッセージについて前記受信者にどのように通知すべきかを判定することを含む、請求項7に記載の方法。前記メッセージを送達する形を判定することは、前記メッセージングシステム内での前記受信者の以前のメッセージングアクティビティの少なくとも1つの表示に基づき、前記メッセージをいつ前記受信者に送達すべきかを判定することを含む、請求項7に記載の方法。前記メッセージを送達する形を判定することは、前記受信者の現在のステータスの少なくとも1つの表示に基づき、前記メッセージをいつ前記受信者に送達すべきかを判定することを含む、請求項7に記載の方法。前記メッセージを送達することは、前記受信者にアドレッシングされた他のメッセージと一緒に前記メッセージをバッチ化することと;前記選択されたメッセージングチャネルのうちの少なくとも1つを介してメッセージのダイジェストとして前記バッチ化されたメッセージを送達することとからなる、請求項1に記載の方法。ダイジェストとして前記バッチ化されたメッセージを送達することは、前記バッチ化されたメッセージのうちで前記受信者によって読み取られる1または複数を除去することと;前記選択されたメッセージングチャネルのうちの少なくとも1つを介してメッセージのダイジェストとして残りのバッチ化されたメッセージを送達することとからなる、請求項11に記載の方法。前記メッセージを送達することは、前記選択されたメッセージングチャネルに優先順位を付けることと;優先順位の順で前記選択されたメッセージングチャネルを介して前記メッセージを送達することとからなる、請求項1に記載の方法。前記メッセージは、前記メッセージに対する応答が事前に決定された長さの時間以内により高い優先順位のチャネルを介して前記受信者から受信されない場合に、より低い優先順位のチャネルに送達される、請求項13に記載の方法。前記メッセージングチャネルは、ウェブチャットチャネル、電子メールチャネル、およびモバイルチャットチャネルのうちの少なくとも1つからなる、請求項1に記載の方法。前記選択されたメッセージングチャネルのうちの少なくとも1つは、前記メッセージがそこから受信されるメッセージングチャネルとは異なる、請求項1に記載の方法。前記1または複数のメッセージングチャネルは、ポリシルールのセットを適用することによって選択される、請求項1に記載の方法。前記1または複数のメッセージングチャネルは、予測機械学習されたモデルを適用することによって選択される、請求項1に記載の方法。コンピュータによって実施される方法であって、前記方法は、複数の以前に送信されたメッセージに対応する複数の信号、前記以前に送信されたメッセージの受信者によって好まれる複数のメッセージングチャネル、および前記信号と前記好まれるメッセージングチャネルとの間の関連付けを含むトレーニングデータにアクセスすることと;前記トレーニングデータを使用して予測モデルをトレーニングすることであって、前記モデルは、前記信号の関数として前記メッセージングチャネルのチャネルスコアを出力するように構成され、前記チャネルスコアは、前記メッセージングチャネルのユーザプリファレンスを示すことと;前記予測モデルを格納することとを有する、コンピュータによって実施される方法。前記好まれるチャネルは、前記以前に送信されたメッセージに応答するために前記受信者によって使用されたメッセージングチャネルからなる、請求項19に記載の方法。前記好まれるチャネルは、前記以前に送信されたメッセージを読み取るために前記受信者によって使用されたメッセージングチャネルからなる、請求項19に記載の方法。前記好まれるチャネルは、前記好まれるチャネルであるものとして前記受信者によって明示的に識別されたメッセージングチャネルからなる、請求項19に記載の方法。前記方法はさらに、新しい受信者にアドレッシングされた新しいメッセージを受け取ることと;前記予測モデルを用いて前記複数のメッセージングチャネルの前記チャネルスコアを判定することと;前記判定されたスコアに少なくとも部分的に基づいて、前記新しい受信者に前記新しいメッセージを送達するために前記メッセージングチャネルのうちの1または複数を選択することと;前記1または複数の選択されたメッセージングチャネルを介して前記新しい受信者に前記新しいメッセージを送達することとを有する、請求項19に記載の方法。前記トレーニングデータは、共起テーブル内に格納される、請求項19に記載の方法。コンピュータによって実施される方法であって、前記方法は、メッセージングシステムのユーザにアドレッシングされたメッセージを受け取ることと;複数のメッセージングチャネルを介して前記メッセージの複数のコピーを前記ユーザに送達することであって、各コピーは、前記複数のメッセージングチャネルの異なるメッセージングチャネルを介して送達されることと;前記複数のメッセージングチャネルのうちの1つを介して前記ユーザから前記メッセージに対する応答を受信することと;前記応答を受信することに応答して、前記複数のメッセージングチャネルの1または複数の他のメッセージングチャネルに送達された前記メッセージのコピーを撤回することとを有する、コンピュータ実施される方法。撤回することは、前記1または複数の他のメッセージングチャネルに送達された前記メッセージのコピーを削除することを含む、請求項25に記載の方法。撤回することは、前記1または複数の他のメッセージングチャネルに送達された前記メッセージのコピーを読み取られたものとしてマーキングすることを含む、請求項25に記載の方法。前記メッセージングチャネルは、ウェブチャットチャネル、電子メールチャネル、およびモバイルチャットチャネルのうちの少なくとも1つからなる、請求項25に記載の方法。前記複数のメッセージングチャネルは、撤回可能チャネルおよび非撤回可能チャネルからなり、前記メッセージのコピーを撤回することは、前記撤回可能チャネルのうちの1または複数に送達された前記メッセージのコピーを撤回することを含む、請求項25に記載の方法。コンピュータによって実施される方法であって、前記方法は、メッセージングシステムのユーザにアドレッシングされたメッセージを受け取ることと;複数のメッセージングチャネルを介して前記ユーザに前記メッセージのコピーを送達することであって、各コピーは、前記複数のメッセージングチャネルの異なるメッセージングチャネルを介して送達されことと;前記ユーザが前記メッセージングチャネルのうちの1に送達された前記コピーのうちの1を読み取ることの表示を受信することと;前記表示を受信することに応答して、前記複数のメッセージングチャネルの1または複数の他のメッセージングチャネルに送達された前記メッセージのコピーを撤回することとを有する、コンピュータによって実施される方法。撤回することは、前記1または複数の他のメッセージングチャネルに送達された前記メッセージのコピーを削除することを含む、請求項30に記載の方法。撤回することは、前記1または複数の他のメッセージングチャネルに送達された前記メッセージのコピーを読み取られたものとしてマーキングすることを含む、請求項30に記載の方法。前記複数のメッセージングチャネルは、ウェブチャットチャネル、電子メールチャネル、およびモバイルチャットチャネルのうちの少なくとも1つからなる、請求項30に記載の方法。前記複数のメッセージングチャネルは、撤回可能チャネルおよび非撤回可能チャネルからなり、前記メッセージのコピーを撤回することは、前記撤回可能チャネルのうちの1または複数に送達された前記メッセージのコピーを撤回することを含む、請求項30に記載の方法。コンピュータによって実施される方法であって、前記方法は、メッセージの受信者を識別する情報を受信することであって、前記受信者は、メッセージングシステムのユーザであることと;前記メッセージングシステムによって自動的に、前記受信者に前記メッセージを送達するために複数のメッセージングチャネルから1または複数のメッセージングチャネルを選択することと;前記1または複数のメッセージングチャネルを選択することに応答して、前記受信者に前記メッセージを送達するために選択された前記メッセージングチャネルの視覚的表示をユーザインターフェース内の表示のために提供することであって、前記ユーザインターフェースは、メッセージスレッドを表示する第1領域および前記選択されたメッセージングチャネルの前記視覚的表示を表示する第2領域からなることとを有する、コンピュータによって実施される方法。1または複数のメッセージングチャネルを選択することは、1または複数の信号に基づいて1または複数のメッセージングチャネルを選択することを含む、請求項35に記載の方法。前記1または複数の選択されたメッセージングチャネルの前記視覚的表示を提供することは、前記1または複数の選択されたメッセージングチャネルのテキスト説明を提供することを含む、請求項35に記載の方法。前記1または複数の選択されたメッセージングチャネルの前記視覚的表示を提供することは、前記1または複数の選択されたメッセージングチャネルを表す1または複数のグラフィックスを提供することを含む、請求項35に記載の方法。前記方法はさらに、前記選択されたメッセージングチャネルのうちの少なくとも1つに関する前記メッセージの受信者であるメッセージ受信者のプレゼンスを判定することと;前記ユーザインターフェース内の表示のために前記メッセージ受信者の前記プレゼンスの視覚的表示を提供することとを含む、請求項35に記載の方法。前記方法はさらに、前記メッセージの受信者であるメッセージ受信者の位置を判定することと;前記ユーザインターフェース内の表示のために前記メッセージ受信者の前記位置の視覚的表示を提供することとを含む、請求項35に記載の方法。前記選択されたメッセージングチャネルは、少なくとも2つのメッセージングチャネルからなり、前記方法はさらに、前記少なくとも2つのメッセージングチャネルを介して前記メッセージを送達することと;前記少なくとも2つのメッセージングチャネルのうちの一方を介して前記受信者から応答メッセージを受信することと;前記少なくとも2つのメッセージングチャネルのうちの他方のメッセージングチャネルが選択解除されることを示すために前記視覚的表示を更新することとを含む、請求項35に記載の方法。前記方法はさらに、前記複数のメッセージングチャネルのうちの第1メッセージングチャネルを介して前記受信者から第1応答メッセージを受信することと、前記複数のメッセージングチャネルのうちの第2メッセージングチャネルを介して前記受信者から第2応答メッセージを受信することと、前記ユーザインターフェースの前記第1領域内の表示のために前記メッセージスレッドの一部として前記第1メッセージおよび前記第2メッセージを提供することとを含む、請求項35に記載の方法。前記メッセージングチャネルは、ウェブチャットチャネル、電子メールチャネル、およびモバイルチャットチャネルのうちの少なくとも1つからなる、請求項35に記載の方法。その結果、正しいチャネルが利用される場合には回避され得る、送信者と受信者との間の通信の遅延が増すことになる。本発明の実施形態は、ユーザが複数のメッセージングチャネルを介してお互いに通信することを可能にするメッセージングシステムに関する。1実施形態では、メッセージサーバのメッセージングモジュールが、メッセージングシステムのユーザすなわち、受信者にアドレッシングされたメッセージを受け取り、複数のメッセージングチャネルから1または複数のメッセージングチャネルを選択する。メッセージングモジュールは、たとえば受信者の現在のステータスまたは受信者の過去のメッセージングアクティビティを示す1またはより多くの信号に基づいてメッセージングチャネルを選択する。その後、メッセージングモジュールは、選択されたメッセージングチャネルを介して受信者にメッセージを送達する。或る実施形態では、メッセージングモジュールは、選択されたメッセージングチャネルを介してメッセージをどのように送達すべきかを判定することもできる。或る実施形態では、メッセージングモジュールは、信号に基づきメッセージングチャネルを選択するための予測モデルを展開するトレーニング工程を受ける。メッセージングモジュールは、異なる信号とメッセージングチャネルとの間の関連付けに関するトレーニングデータを収集し、トレーニングデータを分析して、予測モデルを生成する。予測モデルは、その後、たとえば、受信者にメッセージを送達するための1または複数のメッセージングチャネルを選択するのに使用される。更に他の実施形態では、メッセージングモジュールは、メッセージの送信者に、メッセージがどのように送信されるのかに関する透過的フィードバックtransparentfeedbackを与え、このフィードバックは、メッセージングシステムの使用に対する信頼を構築する。メッセージングモジュールは、たとえばメッセージの送信者によって入力された情報から、メッセージの受信者を識別する情報を受け取る。メッセージングモジュールは、受信者へメッセージを送達するために、複数のメッセージングチャネルから1または複数のメッセージングチャネルを選択する。その後、メッセージングモジュールは、メッセージの送信者へのユーザインターフェース内の表示のために、システムがその中でメッセージを送信すると判定した選択された1または複数のチャネルの視覚的表示を提供する。メッセージングチャネルに関する受信者のプレゼンスまたは受信者の位置など、他の情報をユーザインターフェース内で提供することができる。更に他の実施形態では、メッセージングモジュールは、複数のメッセージングチャネルを介して受信者にメッセージを送信し、その結果、受信者は、チャネルのいずれかをチェックすることによってメッセージを受信する。しかし、メッセージングモジュールは、複製メッセージで受信者を閉口させることを回避するやり方でメッセージを管理もする。メッセージが受信者のために受信される時に、メッセージングモジュールは、複数のメッセージングチャネルを介して受信者にメッセージのコピーを送達する。各コピーは、異なるメッセージングチャネルを介して送達され、その結果、受信者は、これらのチャネルのいずれか1つをチェックすることによってメッセージを受信できるようになる。メッセージングモジュールは、メッセージに対する応答または受信者がメッセージングチャネルのうちの1つからメッセージを受信したことの他の確認を受信する。これに応答して、メッセージングモジュールは、他のメッセージングチャネルに送達されたメッセージのコピーを撤回するrescind。図面は、例示のためにのみ本発明のさまざまな実施形態を示す。当業者は、以下の議論から、本明細書で示される構造および方法の代替実施形態を、本明細書で説明される発明の原理から逸脱せずに使用できることをたやすく認めるであろう。図1は、1実施形態によるメッセージングシステム100のハイレベルブロック図である。図1は、ネットワーク170によって接続されたメッセージサーバ101および複数のクライアントデバイス180を示す。1実施形態では、メッセージサーバ101およびクライアントデバイス180はそれぞれ、1または複数のコンピュータからなる。あるいは、クライアントデバイス180は、携帯電話機、ラップトップ機、ネットブック、タブレット、ケーブルボックス、テレビジョン、ビデオゲーム機、その他など、任意の他のタイプのコンピューティングデバイスからなることができる。他の実施形態では、メッセージサーバ101に通信する数百万個のクライアントデバイス180があってもよい。クライアントデバイス180のユーザは、ウェブブラウザまたはネイティブアプリケーションなどのアプリケーションを介してメッセージサーバ101と相互作用して、メッセージングシステム100の他のユーザへのメッセージの書込および送信、またはメッセージングシステム100の他のユーザによって送信されたメッセージの取出および読取などの動作を実行する。たとえば、アプリケーションを、サーバ101によって提供されるウェブページをロードするウェブブラウザとすることができる。ウェブページ内で提供される機能性を介して、ユーザは、メッセージを読み取り、書き込む。クライアントデバイス180は、メッセージサーバ101を介して他のユーザにメッセージを送信し、他のユーザからメッセージを受信し、メッセージは、メッセージサーバによってサポートされるさまざまなメッセージングチャネルのいずれかを介して通信され得る。或る実施形態では、メッセージは、プレーンテキストを含むことができ、あるいは、メッセージは、写真、ビデオ、および添付ファイルなど、他のコンテンツを含むことができる。クライアントデバイス180は、さまざまなタイプの非メッセージング情報non-messaginginformationを追跡し、メッセージサーバ101に通信することもできる。非メッセージング情報の例は、たとえば、ユーザが最後にクライアントデバイス180と相互作用した時間、クライアントデバイス180の位置、クライアントデバイス180が移動している速度などを含む。この情報は、メッセージサーバ101からの要求時に、または或る事前に決定されたインターバルで、通信されうる。メッセージサーバ101は、ユーザデータストア110、メッセージングモジュール120、およびグラフ情報データベース130を備える。ユーザデータストア110は、メッセージングシステム100のユーザに関するさまざまなタイプの情報を格納する。ユーザごとに格納できる情報の例は、ユーザの1または複数の電子メールアドレス、ユーザの電話番号、ユーザがユーザの電話機にインストールされたモバイルメッセージングアプリケーションを有するか否か、ユーザのアクティビティカレンダ、ユーザのメッセージの受信箱、ユーザの過去のメッセージングアクティビティに関する履歴情報などを含む。或る実施形態では、メッセージサーバ101は、ユーザの電子メールアカウントをホスティングすることもでき、あるいはその代わりに、ユーザが、異なるメッセージサーバによってホスティングされる電子メールアカウントを有してもよい。1実施形態では、メッセージングシステム100はまた、ソーシャルネットワーキングシステムであり、ソーシャルグラフ内で一緒にリンクされたノードとしてユーザデータストア110のユーザを表すグラフ情報データストア130をさらに含む。ソーシャルネットワーキングシステムの、アプリケーション、イベント、ウェブページ、写真、その他など、ユーザ以外の他のオブジェクトは、グラフ情報データストア130内でノードとして表されてもよい。したがって、グラフ情報ストア130は、さまざまなオブジェクトノードを接続するエッジとして表される、オブジェクトの間またはオブジェクトの中の関係に関する情報からなる。ソーシャルグラフ内のエッジのさまざまな例は、2~3例を挙げると、ユーザがソーシャルネットワーキングシステム内で関係を有する友人である、通信した、他者のプロファイルを見た、何らかの形で相互作用したことを表す2つのユーザオブジェクトの間のエッジと、ユーザがアプリケーションを使用したことを表すユーザオブジェクトとアプリケーションオブジェクトとの間のエッジと、ユーザがウェブページを見たことを表すユーザオブジェクトとウェブページオブジェクトとの間のエッジとを含む。たとえば、或るユーザが、ソーシャルネットワーキングシステム内で別のユーザとの関係を確立する場合に、この2つのユーザは、それぞれ1つのノードとして表され、その間のエッジは、確立される関係を表し、2つのユーザは、その後、ソーシャルネットワークシステム内で接続されると言われる。この例を続けると、このユーザの一方は、ソーシャルネットワーキングシステム内で他方のユーザにメッセージを送信することができる。メッセージを送信するというこの行為は、この2つのノードの間のもう1つのエッジであり、このエッジを、ソーシャルネットワーキングシステムによって格納し、かつ/または追跡することができる。メッセージ自体は、ノードとして扱われうる。もう1つの例では、一方のユーザが、ソーシャルネットワーキングシステムによって維持されるイメージ内で他方のユーザにタグを付けることができる。このタグ付けアクションは、ユーザの間のエッジならびにユーザのそれぞれとやはりノードであるイメージとの間のエッジを作成することができる。もう1つの例では、或るユーザが、イベントへの参加を確認する場合に、そのユーザおよびイベントは、ノードであり、そのユーザがそのイベントに参加するか否かの表示が、エッジである。したがって、ソーシャルグラフを使用して、メッセージングシステム100は、多数の異なるタイプのオブジェクトおよびエッジこれらのオブジェクトの間の相互作用および接続を記憶し、これによって、社会的に関連する情報の極めて豊富なストアを維持することができる。ソーシャルグラフのエッジによって表される社会的関係から、メッセージングシステム100の2つのユーザの間の関係の強さを示す共通性affinityを判定することができる。メッセージングモジュール120は、メッセージングチャネルを介するメッセージングシステムのユーザからのメッセージの受信およびユーザへのメッセージの送達の機能性を提供する。メッセージングモジュール120は、複数のメッセージングチャネルをサポートし、このメッセージングチャネルのそれぞれは、メッセージングシステム100のユーザとの電子通信の手段を提供する。一般的に言って、メッセージングチャネルは、メッセージングシステムのユーザに電子メッセージを送達するのに使用できるすべての技術である。メッセージングチャネルは、テキスト、写真、ビデオ、および/または音楽など、さまざまなタイプの情報の伝送をサポートすることができる。メッセージングチャネルの例は、とりわけ、ウェブチャットたとえば、メッセージサーバ101によってホスティングされるウェブページのチャットアプリケーション、電子メール、extensiblemessagingandpresenceprotocolXMPP、ショートメッセージサービスSMS文字通信、モバイルチャットたとえば、クライアントデバイス180にインストールされたアプリケーションを介する、ゲーム機によって提供されるチャットサービス、およびサードパーティアプリケーションがメッセージを送信するのに使用できるアプリケーションプログラムインターフェースAPIを含む。1実施形態では、複数のメッセージングチャネルが、所与のユーザメッセージ受信者へのメッセージを送達するために使用可能である。メッセージングモジュール120は、メッセージを送達するためにメッセージングチャネルのうちの1または複数を選択する。正しいメッセージングチャネルが選択されることを保証するために、メッセージングモジュール120は、その選択を、たとえばメッセージ受信者の過去のメッセージングアクティビティまたはステータスに関する情報を提供する1または複数の信号に基づかせる。したがって、メッセージを送信するユーザは、メッセージ受信者に到達するために最良のメッセージングチャネルを任意に選択することを必要としない。というのは、この判断が、メッセージングモジュール120によって自動的に行われるからである。或る実施形態では、メッセージングモジュール120は、正しいメッセージングチャネルを判定するためにポリシルールのセットまたは予測機械学習されたモデルを適用することによって、メッセージングチャネルを選択しうる。追加の実施形態では、メッセージングモジュール120は、メッセージの送信者に選択された送達チャネルの視覚的表示を提供する。この表示は、クライアントデバイス180上に表示できるユーザインターフェースを介して提供される。この表示を、メッセージが送達される前またはメッセージが組み立てられつつある時に、送信者に提供することができ、この表示は、メッセージがメッセージ受信者にどのように送達されるのかについての予測可能性の感覚を提供し、メッセージングシステム100の使用に対する信頼を構築する。更に他の実施形態では、メッセージングモジュール120は、メッセージのコピーを複数の送達チャネルに送達し、その結果、受信者が、メッセージングチャネルのいずれかをチェックすることによってメッセージを受信するようにする。メッセージングモジュール120は、送達チャネルのうちの1つを介してメッセージ受信者からメッセージに対する応答を受信する。応答の受信に応答して、メッセージングモジュール120は、他の送達チャネルに送信されたメッセージのコピーを撤回し、これは、複製メッセージでメッセージ受信者を閉口させるのを回避する。メッセージングチャネルの選択ここで図2を参照すると、示されているのは、メッセージングモジュール120の1実施形態による、メッセージングチャネルを介するメッセージの受信および送達の概要である。図示されているように、メッセージは、複数の着信メッセージングチャネル202のいずれか1つを介してメッセージングシステム100のユーザから受信されうる。たとえばメッセージ受信者に関する情報を提供する、1または複数の情報信号210を使用して、メッセージングモジュールは、メッセージを送達するための1または複数の発信メッセージングチャネル204を選択する。信号210を、図3に関連してより詳細に説明する。或る実施形態では、メッセージングモジュール120は、メッセージを受信し、その後、メッセージが受信された後に、適当な発信メッセージングチャネル204を選択する。他の実施形態では、メッセージの受信者は、メッセージが受信される前に既知とすることができ、したがって、メッセージングモジュール120は、メッセージの受信の前に発信メッセージングチャネル204を選択することができる。その後、メッセージは、選択されたメッセージングチャネル1または複数に送達される。たとえば、SMSチャネルを介して受信されたメッセージは、SMSチャネルとXMPPチャネルとの両方を介してメッセージ受信者に送達されうる。或る実施形態では、メッセージングモジュール120は、メッセージの送信に使用するメッセージングチャネル204を判定するだけではなく、選択されたチャネルをメッセージの送信に使用する形をも判定する。言い替えると、メッセージングモジュール120は、メッセージをどこに送達すべきかと、メッセージを選択されたメッセージングチャネルにどのように送達すべきかとの両方を判定する。たとえば、メッセージングモジュール120は、信号210のうちの1または複数を考慮することによって、メッセージの送達を遅延させ、あるいはメッセージに関するユーザへの通知の機構mechanismを判定することができる。図3を参照すると、メッセージングモジュール120の1実施形態による、メッセージングチャネルを介するメッセージの受信および送達の工程フローが示されている。ステップ305では、メッセージングモジュール120は、メッセージングシステム100の別のユーザ宛であるメッセージを、メッセージングシステム100のユーザから受信する。このメッセージは、複数の異なるメッセージングチャネルのいずれを介しても受信されうる。ステップ310では、メッセージングモジュール120は、メッセージ受信者であるユーザを判定する。メッセージ受信者は、たとえば、所与のユーザを識別するためにユーザデータストア110内の情報と照合される、メッセージに関連するメタデータから、判定されうる。他の実施形態では、メッセージングモジュール120は、メッセージ自体を受信する前に、クライアント180からメッセージ受信者に関する識別する情報を受信することによって、意図される受信者を判定する。ステップ315では、メッセージングモジュール120は、メッセージ受信者へのメッセージの送達のために1または複数の送達チャネルを選択する。1実施形態では、複数の異なるメッセージチャネルは、メッセージを送達するために使用可能である。所与のユーザについて、選択モジュール132は、さまざまな信号を考慮に入れるポリシルールのセットを適用することによって、1または複数のチャネルを選択する。1実施形態では、ポリシルールは、どのメッセージチャネルを選択すべきかの結論につながる所定の経路を有する決定木として構成される。たとえば、送信者がメッセージを送信するのにウェブチャットインターフェースを使用しており、受信者が現在はウェブチャットインターフェースを使用しておらず、受信者の電話機にインストールされたモバイルアプリケーションを受信者が有する場合に、決定木を通る1つの経路は、メッセージが携帯電話機アプリケーションに送信されるものとされることができる。メッセージングモジュール120は、メッセージングチャネルの選択を案内する異なる信号を、たとえば、1受信者の以前のメッセージングアクティビティ、2受信者の現在のステータス、3メッセージ自体の属性、および4他の信号を表す信号を、考慮することができる。受信者の以前のメッセージングアクティビティと、それらがメッセージングチャネルの選択にどのように影響するのかとの例は、次を含む。最後の応答チャネル最後の応答チャネルは、送信者に応答するのに受信者によって最後に使用されたメッセージチャネルを指す。最後の応答チャネルは、通信のために受信者によって現在選ばれているメッセージチャネルを示す。1実施形態では、メッセージングモジュール120は、正しいメッセージングチャネルとして最後の応答チャネルを選択する可能性がより高い。履歴メッセージング使用履歴メッセージング使用は、或る時間期間に亘るさまざまなメッセージングチャネルの受信者の使用パターンを指す。たとえば、受信者が、彼のメッセージの65をウェブチャットを介して、20を電子メールを介して、15をモバイルチャットアプリケーションを介して過去に送信した場合に、これらの統計をメッセージングモジュール120によって使用して、メッセージがその受信者にウェブチャットを介して送信される尤度を高めることができる。もう1つの例として、ユーザが、そのユーザの電子メールをチェックするためにメッセージングシステムに頻繁にログインする場合に、これは、メッセージが電子メールを介してその受信者に送信される尤度を高めることができる。受信者の現在のステータスおよびそれがメッセージングチャネルの選択にどのように影響するのかのインジケータの例は、次を含む。クライアントデバイスとの最近の相互作用クライアントデバイスとの最近の相互作用は、受信者がクライアントデバイスと最後に相互作用した時と、ユーザによって使用されるクライアントデバイスのタイプとを指す。たとえば、受信者が、最近に受信者のコンピュータ上でマウスを移動した場合に、メッセージがウェブチャットを介して受信者に送達される尤度が、高められる。もう1つの例では、受信者が、最近にユーザのセル電話機と相互作用した場合に、メッセージがSMSまたはモバイルチャットを介して受信者に送達される尤度が、高められる。現在時刻現在時刻は、受信者の位置での現在時刻を指す。たとえば、受信者の位置で午前2時と午前6時との間である場合に、メッセージングモジュール120は、メッセージを送達するためにモバイルチャットチャネルではなく電子メール送達チャネルを選択することができる。送信者と受信者との間の近接Proximity送信者と受信者との間の近接は、メッセージの送信者とメッセージの受信者との間の物理的距離を指す。たとえば、送信者および受信者が、物理的に極めて近接しており、送信者が、モバイルチャットチャネルを介して電話機を用いてメッセージを送信する場合に、メッセージングモジュール120も、モバイルチャットチャネルを介して受信者にメッセージを送信することができる。速度移動の速度は、受信者が移動している速度を指す。たとえば、メッセージングモジュール120は、受信者が高速で移動している場合に、受信者の携帯電話機に到達するためにメッセージがモバイルチャットチャネルに送信される尤度を高めることができる。カレンダエントリカレンダエントリは、受信者のオンラインカレンダ内のエントリまたはクライアントデバイスにローカルに格納されるカレンダ内のエントリを指す。カレンダエントリは、ユーザが忙しい可能性があり、邪魔されてはならないことを示す。受信者のカレンダが、ユーザが忙しいことを示す時には、メッセージングモジュール120は、メッセージがモバイルチャットチャネルではなく電子メールチャネルを介して送信される尤度を高めることができる。メッセージ属性およびそれらがメッセージングチャネルの選択にどのように影響するのかの例は、次を含む。メッセージ長メッセージ長は、メッセージの長さを指す。たとえば、メッセージが、かなりの量のテキストを含む場合に、メッセージングモジュール120は、チャットチャネルではなく電子メールチャネルを介してそのメッセージを送信すると判断することができる。メッセージ添付ファイルメッセージ添付ファイルは、メッセージに添付ファイルがあるかどうか、または添付ファイルのサイズを指す。たとえばメッセージングモジュール120は、SMSチャネルが添付ファイルを扱うことができない場合があるので、添付ファイルを有するメッセージを、SMSチャネルではなく電子メールチャネルを介してのみ送信することができる。他の信号およびそれらがメッセージングチャネルの選択にどのように影響するのかの例は、次を含む。チャネル可用性channelavailabilityチャネル可用性は、或るチャネルが受信者との通信に使用可能であるかどうかを指す。たとえば、ユーザが、現在はオンラインであり、ウェブチャットアプリケーションを介してメッセージサーバ101に接続されている場合に、メッセージがウェブチャットを介して送達される尤度が高められる。もう1つの例として、ユーザが、モバイルチャットアプリケーションをユーザの電話機にインストールしている場合には、メッセージがモバイルチャットチャネルを介して送達される尤度が高められる。起点チャネルOriginatingchannel起点チャネルは、メッセージをメッセージシステムに提供するためにメッセージの送信者によって使用されるチャネルを指す。たとえば、送信者が電子メールチャネルを使用している場合には、そのことが、メッセージも電子メールチャネルを介して受信者に送達される尤度を高める。送信者と受信者との間の共通性Affinity送信者と受信者との間の共通性は、ソーシャルネットワーク内での送信者と受信者との間の相互作用などを含むことができる、ソーシャルグラフ内の情報から判定される送信者と受信者との間の社会的関係を指す。たとえば、SMSなどのいくつかのメッセージングチャネルは、よりパーソナルであると考えられ、お互いとの強い共通性すなわち、社会的関係を有するユーザの間でのみ使用可能である場合がある。したがって、メッセージングモジュール120は、メッセージの送信者と受信者との間に強い共通性がある場合に、SMSチャネルを選択する尤度を高めることができる。或る実施形態では、信号は、ユーザデータストア110から取り出されうる。他の実施形態では、信号は、クライアントデバイス180自体から取り出されうる。他の実施形態では、メッセージングモジュール120は、ポリシルールではなく、さまざまな入力信号の関数としてメッセージングチャネルごとのチャネルスコアを判定する機械学習されたモデルを適用する。その後、メッセージングモジュール120は、少なくとも部分的にチャネルスコアに基づき、適当なメッセージングチャネルを選択する。機械学習されたモデルを、図7に関連してより詳細に説明する。ステップ320では、メッセージングモジュール120は、選択されたチャネルにメッセージを送達する形を判定する。言い替えると、メッセージングモジュール120は、メッセージをどこに送信すべきかすなわち、選択されたメッセージングチャネルと、選択されたメッセージングチャネルを介してメッセージをどのように送信すべきかすなわち、メッセージが送達される形との両方を判定する。メッセージを送達すべき形の判定を、前述の信号のうちの1または複数に基づくものとすることができる。1実施形態では、メッセージをどのようにして送達すべきかの判定は、新しいメッセージについて受信者にどのようにして通知すべきかの判定からなる。この判定は、ユーザの現在のステータスに基づき行われうる。たとえば、モバイルチャットアプリケーションを有するユーザに、ユーザの電話機を振動させること、ユーザの電話機から可聴アラートaudiblealertを発すること、またはユーザの電話機上の点滅するLEDのアクティブ化によってユーザに静かに通知することのいずれかによって、新しいメッセージについて通知することができる。メッセージングモジュール120は、ユーザの位置で現在は夜間であり、ユーザが2時間にわたってユーザの電話機と相互作用していない場合に、通知を静かな通知にしなければならないと判定することができる。もう1つの例として、メッセージサーバによって提供されるウェブページを使用する受信者に、ウェブページ内に表示される視覚的インジケータたとえば、メッセージングアイコンを明るくすることまたは新しい電子メールについてユーザに通知するポップアップウィンドウを表示することのいずれかによって、新しい電子メールメッセージについて通知することができる。メッセージングモジュール120は、マウスイベントが最後の5分に検出されなかった場合や、ユーザが忙しいことをユーザのカレンダエントリが示す場合に、通知がインジケータを明るくすることでなければならないと判定することができる。1実施形態では、メッセージをどのように送達すべきか判定することは、メッセージをいつ送達すべきか判定することからなる。いくつかのメッセージングチャネルについて、メッセージングモジュール120は、複数のメッセージを一緒にバッチ化し、それらのメッセージを周期的なインターバルでメッセージの単一のダイジェストとしてメッセージングチャネルを介して送達することができる。1実施形態では、ユーザの過去のメッセージングアクティビティが、彼らがメッセージングシステムの頻繁なユーザであることを示す場合に、ダイジェストを、より高い頻度で送達することができる。ユーザの過去のメッセージングアクティビティが、そのユーザが頻繁なユーザではないことを示す場合には、ダイジェストをより低い頻度で送達することができる。たとえば、ユーザが、メッセージサーバによって提供されるウェブページに1時間に1回ログオンする場合に、ダイジェストを、30分おきに送達することができる。ユーザが、毎週1回ログオンする場合には、ダイジェストを2日おきに送達することができる。更に他の実施形態では、メッセージは、ユーザの現在のステータスに基づいてユーザに送達されうる。たとえば、ユーザのカレンダエントリが、ユーザが忙しいことを示す場合には、メッセージングモジュールは、ユーザにメッセージを全く送信しないと判断することができる。ユーザがもはや忙しくなくなった後に、メッセージは、メッセージの単一のバッチまたはメッセージのストリームとして1または複数のメッセージングチャネルを介してユーザに送達される。この形でのメッセージのバッチ化および送達は、個々のメッセージの定常ストリームsteadystreamでいくつかのメッセージングチャネルを過負荷にすることを回避する。たとえば、メッセージングモジュール120が、所与の受信者との通信のチャネルとしてウェブチャットチャネルおよび電子メールチャネルを選択すると仮定する。メッセージは、ウェブチャットチャネルを介して受信者に瞬時に送達されうる。しかし、電子メールチャネルについて、メッセージは、一緒にバッチ化され、電子メールチャネルを介してメッセージのダイジェストとして周期的に送達される。或る実施形態では、メッセージングモジュール120は、メッセージが受信者によって肯定応答される時に、能動的にメッセージを挿入し、ダイジェストからメッセージを除去する。たとえば、メッセージがバッチ化されている時間中に、受信者が、ウェブチャットチャネルを介してメッセージの一部を読み取るか応答する場合がある。他のメッセージングチャネルを介して既に読み取られたか応答されたメッセージについて、メッセージングモジュール120は、これらのメッセージをダイジェストから除去することができる。したがって、ダイジェストは、複製メッセージで受信者を閉口させることを回避するために、受信者によって肯定応答されていないメッセージだけを含む。更に他の実施形態では、選択されたメッセージングチャネルには優先順位が付けられ、その優先順位の順番でチャネルに送達されうる。メッセージは、まず、より高い優先順位のチャネルに送達され、その後、事前に決定された長さの時間以内にユーザから応答が受信されない場合に、より低い優先順位のチャネルに送達される。たとえば、選択されたメッセージングチャネルを、ウェブチャットチャネルおよびモバイルチャットチャネルとし、ウェブチャットチャネルをより高い優先順位のチャネルとすることができる。受信者にアドレッシングされたメッセージは、まず、ウェブチャットチャネルを介して送達される。20秒以内に受信者から応答が受信されない場合には、メッセージングモジュール120は、モバイルチャットチャネルを介してメッセージを送達する。或る実施形態では、メッセージングモジュール120は、ユーザ入力を全く用いずに、より低い優先順位のチャネルを自動的に試みる判断を行う。他の実施形態では、送信者が、より低い優先順位のチャネルを介するメッセージの送達を取り消すか進行させるオプションを与えられ、メッセージングモジュール120は、このユーザ入力に従って、より低い優先順位のチャネルにメッセージを送達する。或る実施形態では、チャネルの優先順位は前もって設定されてもよく、その結果、いくつかのチャネルは、必ず他のチャネルよりも高い優先順位を有するようになる。あるいは、チャネルスコアがチャネルごとに計算される場合に、より高いスコアを有するチャネルに、より高い優先順位を与えることができ、より低いスコアを有するチャネルに、より低い優先順位を与えることができる。ステップ325では、メッセージングモジュール120は、判定された形で選択されたチャネル1または複数を介して、受信者にメッセージを送達する。或る実施形態では、メッセージを送達することは、クライアントデバイス180にメッセージを送信することを含むことができる。他の実施形態では、たとえば、選択されたチャネルが電子メールチャネルであり、ユーザの電子メール受信箱がメッセージサーバ101によってホスティングされる場合に、メッセージを送達することは、ユーザの受信箱にメッセージを格納することを含む。選択されたチャネルが、電子メールチャネルであり、受信者電子メールが、メッセージサーバ101によってホスティングされない場合には、メッセージングモジュール120は、simplemailtransferprotocolSMTPなどのメールプロトコルを介してリモートメッセージサーバにメッセージを送信することができる。その後、格納された電子メールは、後でメッセージ受信者によって取り出されうる。選択されたメッセージングチャネルへのメッセージの選択的送達は、メッセージがタイムリーな形で意図される受信者intendedreceipientに達することを保証するのに有益である。さらに、複数のチャネルが選択される場合には、メッセージのコピーが、選択されたメッセージングチャネルのそれぞれを介して送達され、これはさらに、メッセージが受信者に到達する尤度を高め、かつ/または受信者がメッセージを受信するまでの予期される時間を減らす。各メッセージングチャネルが、メッセージの内容に関する要件の異なるセットを有することができるので、各チャネルに送信されるメッセージのコピーは、正確な複製であるのではなく、メッセージングチャネルの要件に従うように再フォーマットされ得る。ユーザインターフェースここで図4を参照すると、メッセージングモジュール120の更に他の実施形態による、メッセージングモジュール120によってクライアントデバイス180に提供されるユーザインターフェース400が示されている。1実施形態では、メッセージングモジュール120は、メッセージが受信者にどのように送達されるのかの表示を含むユーザインターフェース400をクライアントデバイス180に提供する。ユーザインターフェース400は、たとえば、電子メールを組み立てるか他のユーザとチャットするためにメッセージサーバ101によって提供されるウェブページとすることができる。視覚的表示は、メッセージがどのように送達されるのかの予測性の感覚を送信者に与え、メッセージングシステム100の使用に対する信頼を構築する。図示されているように、ユーザインターフェース400は、ユーザがメッセージの意図される受信者intendedreceipientofthemessageの名前を入力することを可能にする相互作用領域405を含む。ユーザインターフェース400の別の領域内の複数の視覚的インジケータ410は、どのメッセージングチャネルが、意図される受信者にメッセージを送達するのに使用されるのかを示す。ここでメッセージの受信者は、ジムJimという名前によるユーザであり、視覚的インジケータ410は、メッセージが、ジムの携帯電話機にインストールされたモバイルチャットアプリケーションおよびジムのコンピュータブラウザ内のチャットウィンドウに送信されることを示す。ユーザインターフェース400の視覚的インジケータ410は、経時的に変化することができる。メッセージングモジュール120は、受信者にメッセージを送達するのに使用されているメッセージチャネルに対応するように、視覚的インジケータ410を継続的に更新する。たとえば、当初に、選択されたメッセージチャネルは、モバイルチャットおよびウェブチャットとされうる。受信者にメッセージを送信した後に、受信者は、ウェブチャットチャネルを介してそのメッセージに応答することができる。この応答の受信に応答して、メッセージングモジュール120は、ウェブチャットチャネルが、今や、受信者にメッセージを送達するための適切なチャネルであると判断し、モバイルチャットチャネルを選択解除する。その後、視覚的インジケータ410は、メッセージングチャネルが、今やモバイルチャットではなくウェブチャットであることを示すように更新される。或る実施形態では、視覚的インジケータは、対話型とすることができ、単に正しいメッセージングチャネルの提案である。したがって、ユーザは、メッセージングモジュール120によって選択されたメッセージングチャネルをオーバーライドするoverrideために、推奨されるチャネルのいずれをも選択し、または選択解除することができる。ユーザインターフェース400は、メッセージの本体を入力するための、ユーザインターフェース400のもう1つの領域内のテキストボックス415をも含む。ユーザインターフェース400はさらに、着信メッセージユーザであるジムから受信されたおよび発信メッセージユーザであるジムに送信されるを含むメッセージのスレッドを表示するもう1つのテキストボックス420を含む。言い替えると、テキストボックス420などは、チャットウィンドウのように働き、2つのユーザの間の会話のメッセージを記憶する。メッセージは、メッセージの送達または受信に使用されるメッセージングチャネルにかかわりなく、テキストボックス420内で単一のスレッドとして維持される。メッセージングチャネルは、視覚的インジケータ410によって示されるように経時的に変化する場合があるが、送信者と受信者との間の会話は、ユーザインターフェース400を介して中断されないままであるように見える。さらに、ユーザインターフェース400は、図4に示されたものとは異なる外見を有することができる。或る実施形態では、インターフェース400は、受信者の現在の物理的位置の視覚的表示を含むことができる。位置は、たとえば、受信者の電話機内のGPS情報、受信者のコンピュータのIPアドレス、またはユーザの位置を示すメッセージングシステムから使用可能な任意の他の情報たとえば、ユーザが現在食事をしているレストランに関する情報、ユーザが現在参加しているコンサートに関する情報などから判定することができる。或る実施形態では、インターフェース400は、選択されたチャネルに関する受信者のプレゼンスpresenceの表示を含むことができる。プレゼンスは、一般に、受信者が所与のチャネルを介してメッセージに応答するために求めに応じられるかどうかを指す。たとえば、ウェブチャットチャネルが選択されているが、ユーザが、チャットウィンドウを開くことができないか、ユーザが、過去30分間にマウス移動を全く行わなかった場合がある。したがって、インターフェース400は、メッセージがウェブチャットチャネルを介して送信されるが、ユーザがこのチャネルを介して応答するために求めに応じられない可能性があることの表示を含むことができる。ここで図5を参照すると、メッセージングモジュール120の1実施形態による、ユーザインターフェース内で選択されたチャネルの表示を提供する工程フローが示されている。ステップ505では、メッセージングモジュール120は、クライアントデバイス180のユーザへの表示のために、クライアントデバイス180にユーザインターフェースを提供する。たとえば、ユーザインターフェースは、図4のユーザインターフェースに類似するものとされてもよい。ステップ510では、メッセージングモジュール120は、メッセージの意図される受信者を識別する情報を受け取る。たとえば、クライアントデバイス180のユーザは、彼または彼女が連絡を望むユーザの名前を入力するか、ユーザのリストからユーザを選択することができる。その後、この情報は、メッセージサーバ101に送信され、メッセージングモジュール120によって受信される。ステップ515では、メッセージングモジュール120は、意図される受信者にメッセージを送達するために、1または複数のチャネルを選択する。複数のメッセージングチャネルが、メッセージの送達に使用可能である場合があるので、メッセージングモジュールは、既に図2および図3に関連して説明したように、さまざまな情報信号を使用する異なるメッセージングチャネルの中から選択する。メッセージングモジュール120は、メッセージングチャネルを自動的に選択し、その結果、適当なメッセージングチャネルが、メッセージの意図される受信者に連絡するために選択されるようになる。ステップ520では、メッセージングモジュール120は、ユーザインターフェース内に選択されたメッセージチャネル1または複数の視覚的表示を提供する。この表示は、選択されたメッセージチャネル1または複数に関する情報を伝える任意の視覚的表示、たとえば、選択されたメッセージチャネルを説明するテキストまたはメッセージチャネルを示すグラフィックとされてもよい。複数のチャネルが選択される場合には、チャネルごとに提供される別々の視覚的インジケータがあってもよい。したがって、これらの表示を提供することによって、送信者は、メッセージがどこに送信されるのかを正確に知る。その後、送信者は、メッセージを入力し、これをメッセージングモジュールに提供する。メッセージングモジュール120は、送信者からメッセージを受け取り図示せず、そのメッセージを選択されたチャネル1または複数を介して受信者に送達する。受信者が応答し、2つのユーザの間の会話が進行する時に、メッセージングモジュール120は、選択されたメッセージングチャネルに変化があるすなわち、新しいチャネルが選択されるか古いチャネルが選択解除される場合に、選択されたメッセージングチャネルに対応するように視覚的インジケータを継続的に更新する。たとえば、メッセージに応答するのに受信者によって最後に使用されたチャネルは、メッセージングモジュール120によって、適切な送達チャネルにするために選択されうる。新しいメッセージが送信され、受信される時に、それらは、メッセージを送達するメッセージングチャネルが変化する時であっても、スレッドに追加され、単一のスレッドとしてテキストボックス420内に表示される。たとえば、受信者は、或るメッセージングチャネルたとえば、SMSを介して応答メッセージを送信し、その後、異なるメッセージングチャネルたとえば、ウェブチャットを介して別の応答メッセージを送信することができる。両方のメッセージが、テキストボックス420内の同一のスレッドまたは会話の一部としての表示のために提供される。したがって、送信者には、会話の流れを中断することなく、異なるメッセージングチャネルの間で自動的にシームレスに遷移する単一のインターフェースが与えられる。複製メッセージの撤回1実施形態では、メッセージングモジュール120は、受信者がメッセージを受信する可能性を高め、および/または受信者がそれを受信するまでの期待される時間を減らすために、メッセージを受け取り、複数のメッセージングチャネルを介してメッセージをその受信者に送達する。メッセージングモジュール120が、メッセージングチャネルのうちの1つを介して受信者から応答を受信すると、メッセージングモジュール120は、複製メッセージでユーザを閉口させることを回避するために、他のメッセージングチャネルに送信されたメッセージを撤回する。将来に、メッセージングモジュール120は、受信者に将来のメッセージを送達するための正しいチャネルとして、応答チャネルを使用することができる。ここで図6を参照すると、メッセージングモジュール120の1実施形態による、メッセージを撤回する工程フローが示されている。ステップ603では、メッセージングモジュール120は、メッセージングシステムの別のユーザ宛であるメッセージをメッセージングシステムのユーザから受け取る。たとえば、メッセージは、クライアントデバイスのユーザから受け取られうる。ステップ605では、メッセージングモジュール120は、メッセージの受信者によってチェックすることができる複数のメッセージングチャネルを介して、受信者にメッセージを送達する。たとえば、メッセージングモジュール610は、図3に関連して説明した工程を介して、選択された複数のメッセージングチャネルによってメッセージを送達することができる。ステップ610では、メッセージングモジュールは、メッセージに対する応答をメッセージの受信者からメッセージングチャネルを介して受信する。たとえば、オリジナルメッセージが、ウェブチャットチャネルおよびXMPPチャネルを介して受信者に送信された場合がある。その後、受信者は、ウェブチャットチャネルではなくXMPPチャネルを介して戻りメッセージを送信することによって、応答しうる。ステップ615では、撤回モジュール138は、他のチャネルすなわちユーザがそこから応答しなかったチャネルに送信されたメッセージのコピーを撤回する。たとえば、ユーザが、ウェブチャットウィンドウ内とXMPPを介してとの両方でメッセージのコピーを受信すると仮定する。ユーザがXMPPを介して応答する場合には、撤回モジュール138は、ウェブチャットを介して送信されたメッセージのコピーを撤回する。或る実施形態では、撤回することは、他のメッセージングチャネルを介して送達されたメッセージのコピーを削除することを含むことができる。あるいは、撤回することは、メッセージ自体を除去することなく、メッセージのコピーを読み取られたものとしてマーキングすることを含むことができる。いくつかのメッセージングチャネルは、撤回可能チャネルrescindablechannelsであってもよく、この撤回可能チャネルは、メッセージサーバ101がそこからメッセージを撤回できるチャネルである。撤回可能チャネルの例は、ウェブチャットおよびメッセージサーバ101によってホスティングされる電子メールを含む。複数の送達チャネルのうちの幾つかは、非撤回可能チャネルnon-rescindablechannelsであってもよく、この非撤回可能チャネルは、メッセージサーバ101がそこからメッセージを撤回できないチャネルである。非撤回可能チャネルの例は、XMPP、SMS、プッシュ通知に頼るモバイルチャット、および他のメッセージサーバ101によってホスティングされる電子メールを含む。メッセージングモジュール138は、撤回可能メッセージチャネルからメッセージを撤回しうるが、非撤回可能メッセージチャネルからはメッセージを撤回しない。メッセージングモジュール120は、他の理由からメッセージを撤回することもできる。1実施形態では、メッセージングモジュール120は、特定のチャネルを介して送達されたメッセージのコピーがユーザによって読み取られたことの通知を受信する。たとえば、ユーザは、メッセージをクリックすることによってウェブページを介してユーザの電子メールメッセージにアクセスすることができ、メッセージのクリックのおかげで、メッセージングモジュール120は、メッセージがユーザによってアクセスされ、読み取られたことの表示を与えられる。この表示の受信に応答して、メッセージングモジュール120は、他のメッセージングチャネルに送達されたメッセージのコピーを撤回する。更に他の実施形態では、メッセージングモジュール120は、或る長さの時間が経過した後に、或るチャネルを介して送信されたメッセージを受信者が読み取らない場合に、そのチャネルからメッセージを撤回することができる。メッセージングモジュールのトレーニング1実施形態では、メッセージングモジュール120は、メッセージングチャネルを選択するための予測モデルを展開するトレーニング工程を受ける。その後、予測モデルが、たとえば図3の工程で使用されることで、受信者にメッセージを送達するための1または複数のメッセージングチャネルを選択することができる。1実施形態では、予測モデルは、メッセージングシステムの多数のユーザに適用できるグローバルモデルである。一般的に言って、メッセージングモジュール120は、トレーニングデータを収集することによってモデルを構築する。トレーニングデータは、ユーザのグループに関する好まれるメッセージングチャネルpreferredmessagingchannelsおよび好まれるメッセージングチャネルに関連する信号に関する情報を含む。たとえば、メッセージングモジュール120は、複数のメッセージングチャネルを介してユーザにメッセージを送達することができる。ユーザは、メッセージングチャネルのうちの1つを介してメッセージに応答したり、またはメッセージを見たりする。このメッセージングチャネルは、メッセージングモジュール120に、ユーザによって好まれるメッセージングチャネルの表示を与える。1または複数の信号のステータスが、識別されたとえば、受信者が、メッセージに応答するかメッセージを受信する時に、高速で移動している、好まれるメッセージングチャネルに関連付けられる。トレーニングデータにアクセスすることと、信号と好まれるメッセージングチャネルとの間の関係を分析することとによって、メッセージングモジュール120は、メッセージ受信者によって好まれるメッセージングチャネルを予測するのに使用できるモデルを生成する。このモデルは、入力として或る信号を受け入れ、その信号を使用して、メッセージングチャネルごとのチャネルスコアを生成する。チャネルスコアは、受信者の好まれるメッセージングチャネル1または複数を示す。予測モデルが、より多くのトレーニングデータが収集される時に更新されることで、より多くの信号もしくはメッセージングチャネルが使用される時に、ならびに/または新しいメッセージングチャネルおよび通知機構notificationmechanismsもしくは他のメッセージング特徴messagingfeaturesを追加することなどによって、システムが更新される時に、予測モデルの反復改良iterativerefinementを可能にすることができる。1実施形態では、予測モデルは、所与の受信者に関するメッセージングチャネルごとのスコアを計算する関数である。たとえば、関数を、さまざまな情報信号の荷重和とすることができ、関数は、次の式によって表される。ここで、ScoreNMは、特定のチャネルNおよびメッセージ受信者Mについて計算されるチャネルスコアを表す。X、Y、およびZは、特定の受信者Mに関する異なる情報信号の数値表現である。A、B、およびCは、信号のそれぞれの数値重みである。重みA、B、およびCは、トレーニングデータのセット内の、信号と、ユーザによって好まれるチャネルとの間の関係を分析する学習工程を介して計算される。この関数がさまざまなメッセージングチャネルに適用される時に、より高いスコアは、チャネルが受信者によって好まれることを示し、より低いスコアは、チャネルが受信者によって好まれないことを示す。ここで図7を参照すると、1実施形態による、予測モデルをトレーニングする工程フローが示されている。ステップ710では、メッセージングモジュール120は、複数のメッセージングチャネルを介して受信者にメッセージを送達する。また、ステップ710では、メッセージングモジュール120は、メッセージが送達される時に1または複数の情報信号のステータスを記録する。1または複数の情報信号は、ユーザおよび/またはメッセージに関連する。たとえば、特定の受信者にメッセージを送信する時に、メッセージングモジュール120は、受信者が高速で移動していることを示す情報を記録することもできる。多数の異なるタイプの信号が記録されることができ、この記録は、この情報から生成されるモデルの正確さを改善することに役立つ。ステップ715では、メッセージングモジュール120は、メッセージの受信者によって好まれるメッセージングチャネルを判定する。1実施形態では、受信者は、メッセージングチャネルのうちの1つを介してメッセージに応答することができ、この応答は、応答チャネルが受信者の好まれるチャネルであることの表示として扱われる。更に他の実施形態では、受信者は、メッセージングチャネルのうちの1または複数を使用してメッセージのコピーを読み取ることができ、メッセージを読み取るのに使用される最初のチャネルは、好まれるメッセージングチャネルの表示として扱われる。更に他の実施形態では、メッセージングモジュール120は、どのメッセージングチャネルが好まれるメッセージングチャネルであるのかに関してユーザにプロンプトを出すpromptことができる。たとえば、ユーザに、質問どのチャネルからメッセージを受信することをお好みですかを提示することができる。その後、プロンプトに対するユーザの応答は、好まれるメッセージングチャネルの明示的識別として扱われる。ステップ720では、メッセージングモジュール120は、好まれるメッセージングチャネルを、記録された情報信号のステータスに関連付ける。1実施形態では、メッセージングチャネルと信号との間の関係は、共起テーブルco-occurrencetableに格納される。共起テーブル内の各エントリは、好まれるチャネルに関連してどれほどしばしば特定の信号が発生するのかを指定する。以下は、共起テーブルの基本的な例である。このテーブルでは、受信者の移動速度が8km/h5mphを超える時に、モバイルチャットチャネルは、850回の好まれるメッセージングチャネルであり、電子メールチャネルは、100回の好まれるメッセージングチャネルである。カレンダエントリが、受信者が忙しいことを示す時に、モバイルチャットチャネルは、120回の好まれるメッセージングチャネルであり、電子メールチャネルは、820回の好まれるメッセージングチャネルである。したがって、共起テーブル内のデータは、電子メールチャネルと比較した場合に、モバイルチャットチャネルが、受信者が高速で移動しているたとえば、受信者が自動車内にいる時に頻繁に使用されることを示す。このデータは、ユーザのカレンダエントリが、ユーザが忙しいことを示すたとえば、ユーザが会議中である時に、電子メールチャネルが頻繁に使用されることをも示す。ステップ725では、メッセージングモジュール120は、信号とメッセージングチャネルとの間の関係に関するさらなる情報を収集するために、この工程を繰り返す。統計的に有意な量の情報が収集されるまで、この工程は、何回でも繰り返される。トレーニングデータの収集が完了した後に、この工程はステップ730に進む。ステップ730では、メッセージングモジュール120は、メッセージの受信者によって好まれる1または複数のメッセージングチャネルを予測するのに使用できるモデルをトレーニングする。モデルは、多数のユーザから収集されたデータから生成されるので、メッセージングシステムの1または複数の異なるユーザに適用できるグローバルモデルである。他の実施形態では、特定のユーザからのみデータを収集することと、その情報からモデルを生成することとによって、モデルは、その特定のユーザに合わせて調整されうる。1実施形態では、その共起co-occurrencesによって示されるように、信号とメッセージングチャネルとの間の関係の強さは、メッセージングチャネルごとの信号ごとに重みを生成するのに使用される。再び式1を参照すると、重みは、A、B、およびCなどの変数である。重みは、ある上限と下限たとえば、0から100までの間でスケーリングされうる。たとえば、モバイルチャットチャネルについて、高い速度が、85の重みに関連付けられ、カレンダエントリが、12の重みに関連付けられる。電子メールチャネルについて、高い速度が、12の重みに関連付けられ、カレンダエントリが、82の重みに関連付けられる。或る実施形態では、重みは、或る信号の重要性を強調するために、異なる信号にまたがってだけでなく、異なるチャネルの間でもスケーリングされる。他の実施形態では、モデルは、式1で表されるものより複雑なまたはこれとは異なる関数によって表されてもよい。ステップ735では、メッセージングモジュール120は、固定記憶媒体またはメモリなどのストレージデバイスに、予測モデルを格納する。モデルは、その後、メッセージングシステムのユーザにメッセージを送達するための1または複数のメッセージングチャネルを自動的に選択するのに、使用される。たとえば、所与のメッセージの入力信号およびメッセージの受信者のセットを与えられて、メッセージングモジュール120は、予測モデルを使用して、異なるメッセージングチャネルのチャネルスコアを判定する。1実施形態では、或るしきい値を越えるスコアを有するチャネルが、正しいメッセージングチャネルとして選択される。しきい値は、相対的たとえば、第50パーセンタイル超または絶対値とすることができる。他の実施形態では、メッセージングモジュール120は、正しいメッセージングチャネルを選択する際に、他の要因たとえば、金銭的コストまたは送信遅延と組み合わせてスコアを考慮する。有益なことに、この形でのトレーニングおよびその後のモデルの生成は、ユーザによって好まれるメッセージングチャネルの正確な予測を可能にし、これは、メッセージを適当なメッセージングチャネルを介してユーザに送達することを可能にする。追加の考慮事項本発明の実施形態の前述の説明は、例示のために提示されたものであり、網羅的であることまたは本発明を開示された正確な形態に限定することは意図されていない。当業者は、上の開示に鑑みて、多数の修正形態および変形形態が可能であることを了解するであろう。この説明のいくつかの部分は、情報に対する動作のアルゴリズムおよび記号表現に関して本発明の実施形態を説明する。これらのアルゴリズム的説明および表現は、データ処理技術の当業者によって、彼らの作業の実質を他の当業者に伝えるのに一般的に使用されるものである。これらの動作は、機能的、計算的、または論理的に説明されるが、コンピュータプログラムもしくは同等の電気回路、マイクロコードなどによって実施されると理解される。さらに、時々、一般性を失わずに、動作のこれらの配置をモジュールと称することが便利であることも分かっている。説明された動作およびそれに関連するモジュールを、ソフトウェア、ファームウェア、ハードウェア、またはその組合せで実施することができる。本明細書で説明されるステップ、動作、または工程のいずれをも、1または複数のハードウェアモジュールまたはソフトウェアモジュールを単独でまたは他のデバイスと組み合わせて用いて実行しまたは実施することができる。1実施形態では、ソフトウェアモジュールが、説明されるステップ、動作、または工程のいずれかまたはすべてを実行するためにコンピュータプロセッサによって実行され得るコンピュータプログラムコードを含む固定コンピュータ可読媒体からなるコンピュータプログラム製品を用いて実施される。本発明の実施形態は、本明細書の動作を実行する装置に関係することもできる。この装置を、必要な目的のために特に構成することができ、かつ/またはこの装置は、コンピュータ内に格納されたコンピュータプログラムによって選択的にアクティブ化されまたは再構成される汎用コンピューティングデバイスからなることができる。そのようなコンピュータプログラムを、電子命令を記憶するのに適する、コンピュータシステムバスに結合された固定コンピュータ可読記憶媒体または任意のタイプの媒体に格納することができる。さらに、本明細書で言及されたすべてのコンピューティングシステムは、単一のプロセッサを含むことができ、あるいは、高められた計算能力のために設計された複数のプロセッサを使用するアーキテクチャとすることができる。最後に、本明細書で使用される言葉は、原理的に可読性および教育的目的のために選択され、発明的主題を詳細に描写しまたはその範囲を定めるために選択されたものではない可能性がある。したがって、本発明の範囲が、この詳細な説明ではなく、本明細書に基づく出願時に生じる特許請求の範囲によって限定されることが意図されている。したがって、本発明の実施形態の開示は、添付の特許請求の範囲に示された本発明の範囲の、限定ではなく例示であることが意図されている。