(58)【調査した分野】(Int.Cl.,DB名)
1または複数の電子メッセージング・チャネルを選択することは、前記メッセージの添付ファイルおよび前記メッセージのサイズのうちの少なくとも1つにさらに基づき1または複数の電子メッセージング・チャネルを選択することを含む、
請求項1に記載の方法。
前記メッセージを送達する手法を判定することは、前記受信者の現在のステータスを示す情報に基づき、前記メッセージについて前記受信者にどのように通知すべきかを判定することを含む、
請求項4に記載の方法。
前記メッセージを送達する手法を判定することは、前記受信者の現在のステータスを示す情報に基づき、前記メッセージをいつ前記受信者に送達すべきかを判定することを含む、
請求項4に記載の方法。
前記メッセージは、前記メッセージに対する応答が事前に決定された長さの時間以内により高い優先順位のチャネルを介して前記受信者から受信されない場合に、より低い優先順位のチャネルに送達される、
請求項10に記載の方法。
前記受信者の以前のメッセージング・アクティビティを示す情報は、前記メッセージの送信者によって送信された以前のメッセージに応答するために前記メッセージの前記受信者によって使用された最も最近のメッセージング・チャネルを示す情報を含む、
請求項16に記載の方法。
【発明を実施するための形態】
【0010】
図面は、例示のためにのみ本発明のさまざまな実施形態を示す。当業者は、以下の議論から、本明細書で示される構造および方法の代替実施形態を、本明細書で説明される発明の原理から逸脱せずに使用できることをたやすく認めるであろう。
【0011】
図1は、1実施形態によるメッセージング・システム100のハイレベル・ブロック図である。
図1は、ネットワーク170によって接続されたメッセージサーバ101および複数のクライアント・デバイス180を示す。1実施形態では、メッセージサーバ101
およびクライアント・デバイス180はそれぞれ、1または複数のコンピュータからなる。あるいは、クライアント・デバイス180は、携帯電話機、ラップトップ機、ネットブック、タブレット、ケーブル・ボックス、テレビジョン、ビデオ・ゲーム機、その他など、任意の他のタイプのコンピューティング・デバイスからなることができる。他の実施形態では、メッセージサーバ101に通信する数百万個のクライアント・デバイス180があってもよい。
【0012】
クライアント・デバイス180のユーザは、ウェブ・ブラウザまたはネイティブ・アプリケーションなどのアプリケーションを介してメッセージサーバ101と相互作用して、メッセージング・システム100の他のユーザへのメッセージの書込および送信、またはメッセージング・システム100の他のユーザによって送信されたメッセージの取出および読取などの動作を実行する。たとえば、アプリケーションを、サーバ101によって提供されるウェブ・ページをロードするウェブ・ブラウザとすることができる。ウェブ・ページ内で提供される機能性を介して、ユーザは、メッセージを読み取り、書き込む。クライアント・デバイス180は、メッセージサーバ101を介して他のユーザにメッセージを送信し、他のユーザからメッセージを受信し、メッセージは、メッセージサーバによってサポートされるさまざまなメッセージング・チャネルのいずれかを介して通信され得る。或る実施形態では、メッセージは、プレーン・テキストを含むことができ、あるいは、メッセージは、写真、ビデオ、および添付ファイルなど、他のコンテンツを含むことができる。
【0013】
クライアント・デバイス180は、さまざまなタイプの非メッセージング情報(non−messaging information)を追跡し、メッセージサーバ101に通信することもできる。非メッセージング情報の例は、たとえば、ユーザが最後にクライアント・デバイス180と相互作用した時間、クライアント・デバイス180の位置、クライアント・デバイス180が移動している速度などを含む。この情報は、メッセージサーバ101からの要求時に、または或る事前に決定されたインターバルで、通信されうる。
【0014】
メッセージサーバ101は、ユーザ・データストア110、メッセージング・モジュール120、およびグラフ情報データベース130を備える。ユーザ・データストア110は、メッセージング・システム100のユーザに関するさまざまなタイプの情報を格納する。ユーザごとに格納できる情報の例は、ユーザの1または複数の電子メール・アドレス、ユーザの電話番号、ユーザがユーザの電話機にインストールされたモバイル・メッセージング・アプリケーションを有するか否か、ユーザのアクティビティ・カレンダ、ユーザのメッセージの受信箱、ユーザの過去のメッセージング・アクティビティに関する履歴情報などを含む。或る実施形態では、メッセージサーバ101は、ユーザの電子メール・アカウントをホスティングすることもでき、あるいはその代わりに、ユーザが、異なるメッセージサーバによってホスティングされる電子メール・アカウントを有してもよい。
【0015】
1実施形態では、メッセージング・システム100はまた、ソーシャル・ネットワーキング・システムであり、「ソーシャル・グラフ」内で一緒にリンクされたノードとしてユーザ・データストア110のユーザを表すグラフ情報データストア130をさらに含む。ソーシャル・ネットワーキング・システムの、アプリケーション、イベント、ウェブ・ページ、写真、その他など、ユーザ以外の他のオブジェクトは、グラフ情報データストア130内でノードとして表されてもよい。したがって、グラフ情報ストア130は、さまざまなオブジェクト・ノードを接続するエッジとして表される、オブジェクトの間またはオブジェクトの中の関係に関する情報からなる。ソーシャル・グラフ内のエッジのさまざまな例は、2〜3例を挙げると、ユーザがソーシャル・ネットワーキング・システム内で関係を有する(友人である、通信した、他者のプロファイルを見た、何らかの形で相互作用
した)ことを表す2つのユーザ・オブジェクトの間のエッジと、ユーザがアプリケーションを使用したことを表すユーザ・オブジェクトとアプリケーション・オブジェクトとの間のエッジと、ユーザがウェブ・ページを見たことを表すユーザ・オブジェクトとウェブ・ページ・オブジェクトとの間のエッジとを含む。たとえば、或るユーザが、ソーシャル・ネットワーキング・システム内で別のユーザとの関係を確立する場合に、この2つのユーザは、それぞれ1つのノードとして表され、その間のエッジは、確立される関係を表し、2つのユーザは、その後、ソーシャル・ネットワーク・システム内で接続されると言われる。この例を続けると、このユーザの一方は、ソーシャル・ネットワーキング・システム内で他方のユーザにメッセージを送信することができる。メッセージを送信するというこの行為は、この2つのノードの間のもう1つのエッジであり、このエッジを、ソーシャル・ネットワーキング・システムによって格納し、かつ/または追跡することができる。メッセージ自体は、ノードとして扱われうる。もう1つの例では、一方のユーザが、ソーシャル・ネットワーキング・システムによって維持されるイメージ内で他方のユーザにタグを付けることができる。このタグ付けアクションは、ユーザの間のエッジならびにユーザのそれぞれとやはりノードであるイメージとの間のエッジを作成することができる。もう1つの例では、或るユーザが、イベントへの参加を確認する場合に、そのユーザおよびイベントは、ノードであり、そのユーザがそのイベントに参加するか否かの表示が、エッジである。
【0016】
したがって、ソーシャル・グラフを使用して、メッセージング・システム100は、多数の異なるタイプのオブジェクトおよびエッジ(これらのオブジェクトの間の相互作用および接続)を記憶し、これによって、社会的に関連する情報の極めて豊富なストアを維持することができる。ソーシャル・グラフのエッジによって表される社会的関係から、メッセージング・システム100の2つのユーザの間の関係の強さを示す
親近感(affinity)を判定することができる。
【0017】
メッセージング・モジュール120は、メッセージング・チャネルを介するメッセージング・システムのユーザからのメッセージの受信およびユーザへのメッセージの送達の機能性を提供する。メッセージング・モジュール120は、複数のメッセージング・チャネルをサポートし、このメッセージング・チャネルのそれぞれは、メッセージング・システム100のユーザとの電子通信の手段を提供する。一般的に言って、メッセージング・チャネルは、メッセージング・システムのユーザに電子メッセージを送達するのに使用できるすべての技術である。メッセージング・チャネルは、テキスト、写真、ビデオ、および/または音楽など、さまざまなタイプの情報の伝送をサポートすることができる。メッセージング・チャネルの例は、とりわけ、ウェブ・チャット(たとえば、メッセージサーバ101によってホスティングされるウェブ・ページのチャット・アプリケーション)、電子メール、extensible messaging and presence protocol(XMPP)、ショート・メッセージ・サービス(SMS)文字通信、モバイル・チャット(たとえば、クライアント・デバイス180にインストールされたアプリケーションを介する)、ゲーム機によって提供されるチャット・サービス、およびサード・パーティ・アプリケーションがメッセージを送信するのに使用できるアプリケーション・プログラム・インターフェース(API)を含む。
【0018】
1実施形態では、複数のメッセージング・チャネルが、所与のユーザ(「メッセージ受信者」)へのメッセージを送達するために使用可能である。メッセージング・モジュール120は、メッセージを送達するためにメッセージング・チャネルのうちの1または複数を選択する。正しいメッセージング・チャネルが選択されることを保証するために、メッセージング・モジュール120は、その選択を、たとえばメッセージ受信者の過去のメッセージング・アクティビティまたはステータスに関する情報を提供する1または複数の信号に基づかせる。したがって、メッセージを送信するユーザは、メッセージ受信者に到達
するために最良のメッセージング・チャネルを任意に選択することを必要としない。というのは、この判断が、メッセージング・モジュール120によって自動的に行われるからである。或る実施形態では、メッセージング・モジュール120は、正しいメッセージング・チャネルを判定するためにポリシ・ルールのセットまたは予測機械学習されたモデルを適用することによって、メッセージング・チャネルを選択しうる。
【0019】
追加の実施形態では、メッセージング・モジュール120は、メッセージの送信者に選択された送達チャネルの視覚的表示を提供する。この表示は、クライアント・デバイス180上に表示できるユーザ・インターフェースを介して提供される。この表示を、メッセージが送達される前またはメッセージが組み立てられつつある時に、送信者に提供することができ、この表示は、メッセージがメッセージ受信者にどのように送達されるのかについての予測可能性の感覚を提供し、メッセージング・システム100の使用に対する信頼を構築する。
【0020】
更に他の実施形態では、メッセージング・モジュール120は、メッセージのコピーを複数の送達チャネルに送達し、その結果、受信者が、メッセージング・チャネルのいずれかをチェックすることによってメッセージを受信するようにする。メッセージング・モジュール120は、送達チャネルのうちの1つを介してメッセージ受信者からメッセージに対する応答を受信する。応答の受信に応答して、メッセージング・モジュール120は、他の送達チャネルに送信されたメッセージのコピーを撤回し、これは、複製メッセージでメッセージ受信者を閉口させるのを回避する。
【0021】
メッセージング・チャネルの選択
ここで
図2を参照すると、示されているのは、メッセージング・モジュール120の1実施形態による、メッセージング・チャネルを介するメッセージの受信および送達の概要である。図示されているように、メッセージは、複数の着信メッセージング・チャネル202のいずれか1つを介してメッセージング・システム100のユーザから受信されうる。たとえばメッセージ受信者に関する情報を提供する、1または複数の情報信号210を使用して、メッセージング・モジュールは、メッセージを送達するための1または複数の発信メッセージング・チャネル204を選択する。信号210を、
図3に関連してより詳細に説明する。
【0022】
或る実施形態では、メッセージング・モジュール120は、メッセージを受信し、その後、メッセージが受信された後に、適当な発信メッセージング・チャネル204を選択する。他の実施形態では、メッセージの受信者は、メッセージが受信される前に既知とすることができ、したがって、メッセージング・モジュール120は、メッセージの受信の前に発信メッセージング・チャネル204を選択することができる。その後、メッセージは、選択されたメッセージング・チャネル(1または複数)に送達される。たとえば、SMSチャネルを介して受信されたメッセージは、SMSチャネルとXMPPチャネルとの両方を介してメッセージ受信者に送達されうる。
【0023】
或る実施形態では、メッセージング・モジュール120は、メッセージの送信に使用するメッセージング・チャネル204を判定するだけではなく、選択されたチャネルをメッセージの送信に使用する形をも判定する。言い替えると、メッセージング・モジュール120は、メッセージをどこに送達すべきかと、メッセージを選択されたメッセージング・チャネルにどのように送達すべきかとの両方を判定する。たとえば、メッセージング・モジュール120は、信号210のうちの1または複数を考慮することによって、メッセージの送達を遅延させ、あるいはメッセージに関するユーザへの通知の機構(mechanism)を判定することができる。
【0024】
図3を参照すると、メッセージング・モジュール120の1実施形態による、メッセージング・チャネルを介するメッセージの受信および送達の工程フローが示されている。ステップ305では、メッセージング・モジュール120は、メッセージング・システム100の別のユーザ宛であるメッセージを、メッセージング・システム100のユーザから受信する。このメッセージは、複数の異なるメッセージング・チャネルのいずれを介しても受信されうる。
【0025】
ステップ310では、メッセージング・モジュール120は、メッセージ受信者であるユーザを判定する。メッセージ受信者は、たとえば、所与のユーザを識別するためにユーザ・データストア110内の情報と照合される、メッセージに関連するメタデータから、判定されうる。他の実施形態では、メッセージング・モジュール120は、メッセージ自体を受信する前に、クライアント180からメッセージ受信者に関する識別する情報を受信することによって、意図される受信者を判定する。
【0026】
ステップ315では、メッセージング・モジュール120は、メッセージ受信者へのメッセージの送達のために1または複数の送達チャネルを選択する。1実施形態では、複数の異なるメッセージ・チャネルは、メッセージを送達するために使用可能である。所与のユーザについて、
メッセージング・モジュール120は、さまざまな信号を考慮に入れるポリシ・ルールのセットを適用することによって、1または複数のチャネルを選択する。1実施形態では、ポリシ・ルールは、どのメッセージ・チャネルを選択すべきかの結論につながる所定の経路を有する決定木として構成される。たとえば、送信者がメッセージを送信するのにウェブ・チャット・インターフェースを使用しており、受信者が現在はウェブ・チャット・インターフェースを使用しておらず、受信者の電話機にインストールされたモバイル・アプリケーションを受信者が有する場合に、決定木を通る1つの経路は、メッセージが携帯電話機アプリケーションに送信されるものとされることができる。
【0027】
メッセージング・モジュール120は、メッセージング・チャネルの選択を案内する異なる信号を、たとえば、(1)受信者の以前のメッセージング・アクティビティ、(2)受信者の現在のステータス、(3)メッセージ自体の属性、および(4)他の信号を表す信号を、考慮することができる。受信者の以前のメッセージング・アクティビティと、それらがメッセージング・チャネルの選択にどのように影響するのかとの例は、次を含む。
【0028】
・最後の応答チャネル
最後の応答チャネルは、送信者に応答するのに受信者によって最後に使用されたメッセージ・チャネルを指す。最後の応答チャネルは、通信のために受信者によって現在選ばれているメッセージ・チャネルを示す。1実施形態では、メッセージング・モジュール120は、正しいメッセージング・チャネルとして最後の応答チャネルを選択する可能性がより高い。
【0029】
・履歴メッセージング使用
履歴メッセージング使用は、或る時間期間に亘るさまざまなメッセージング・チャネルの受信者の使用パターンを指す。たとえば、受信者が、彼のメッセージの65%をウェブ・チャットを介して、20%を電子メールを介して、15%をモバイル・チャット・アプリケーションを介して過去に送信した場合に、これらの統計をメッセージング・モジュール120によって使用して、メッセージがその受信者にウェブ・チャットを介して送信される尤度を高めることができる。もう1つの例として、ユーザが、そのユーザの電子メールをチェックするためにメッセージング・システムに頻繁にログインする場合に、これは、メッセージが電子メールを介してその受信者に送信される尤度を高めることができる。
【0030】
受信者の現在のステータスおよびそれがメッセージング・チャネルの選択にどのように
影響するのかのインジケータの例は、次を含む。
・クライアント・デバイスとの最近の相互作用
クライアント・デバイスとの最近の相互作用は、受信者がクライアント・デバイスと最後に相互作用した時と、ユーザによって使用されるクライアント・デバイスのタイプとを指す。たとえば、受信者が、最近に受信者のコンピュータ上でマウスを移動した場合に、メッセージがウェブ・チャットを介して受信者に送達される尤度が、高められる。もう1つの例では、受信者が、最近にユーザのセル電話機と相互作用した場合に、メッセージがSMSまたはモバイル・チャットを介して受信者に送達される尤度が、高められる。
【0031】
・現在時刻
現在時刻は、受信者の位置での現在時刻を指す。たとえば、受信者の位置で午前2時と午前6時との間である場合に、メッセージング・モジュール120は、メッセージを送達するためにモバイル・チャット・チャネルではなく電子メール送達チャネルを選択することができる。
【0032】
・送信者と受信者との間の近接(Proximity)
送信者と受信者との間の近接は、メッセージの送信者とメッセージの受信者との間の物理的距離を指す。たとえば、送信者および受信者が、物理的に極めて近接しており、送信者が、モバイル・チャット・チャネルを介して電話機を用いてメッセージを送信する場合に、メッセージング・モジュール120も、モバイル・チャット・チャネルを介して受信者にメッセージを送信することができる。
【0033】
・速度
移動の速度は、受信者が移動している速度を指す。たとえば、メッセージング・モジュール120は、受信者が高速で移動している場合に、受信者の携帯電話機に到達するためにメッセージがモバイル・チャット・チャネルに送信される尤度を高めることができる。
【0034】
・カレンダ・エントリ
カレンダ・エントリは、受信者のオンライン・カレンダ内のエントリまたはクライアント・デバイスにローカルに格納されるカレンダ内のエントリを指す。カレンダ・エントリは、ユーザが忙しい可能性があり、邪魔されてはならないことを示す。受信者のカレンダが、ユーザが忙しいことを示す時には、メッセージング・モジュール120は、メッセージがモバイル・チャット・チャネルではなく電子メール・チャネルを介して送信される尤度を高めることができる。
【0035】
メッセージ属性およびそれらがメッセージング・チャネルの選択にどのように影響するのかの例は、次を含む。
・メッセージ長
メッセージ長は、メッセージの長さを指す。たとえば、メッセージが、かなりの量のテキストを含む場合に、メッセージング・モジュール120は、チャット・チャネルではなく電子メール・チャネルを介してそのメッセージを送信すると判断することができる。
【0036】
・メッセージ添付ファイル
メッセージ添付ファイルは、メッセージに添付ファイルがあるかどうか、または添付ファイルのサイズを指す。たとえばメッセージング・モジュール120は、SMSチャネルが添付ファイルを扱うことができない場合があるので、添付ファイルを有するメッセージを、SMSチャネルではなく電子メール・チャネルを介してのみ送信することができる。
【0037】
他の信号およびそれらがメッセージング・チャネルの選択にどのように影響するのかの例は、次を含む。
・チャネル可用性(channel availability)
チャネル可用性は、或るチャネルが受信者との通信に使用可能であるかどうかを指す。たとえば、ユーザが、現在はオンラインであり、ウェブ・チャット・アプリケーションを介してメッセージサーバ101に接続されている場合に、メッセージがウェブ・チャットを介して送達される尤度が高められる。もう1つの例として、ユーザが、モバイル・チャット・アプリケーションをユーザの電話機にインストールしている場合には、メッセージがモバイル・チャット・チャネルを介して送達される尤度が高められる。
【0038】
・起点チャネル(Originating channel)
起点チャネルは、メッセージをメッセージ・システムに提供するためにメッセージの送信者によって使用されるチャネルを指す。たとえば、送信者が電子メール・チャネルを使用している場合には、そのことが、メッセージも電子メール・チャネルを介して受信者に送達される尤度を高める。
【0039】
・送信者と受信者との間の
親近感(Affinity)
送信者と受信者との間の
親近感は、ソーシャル・ネットワーク内での送信者と受信者との間の相互作用などを含むことができる、ソーシャル・グラフ内の情報から判定される送信者と受信者との間の社会的関係を指す。たとえば、SMSなどのいくつかのメッセージ
ング・チャネルは、よりパーソナルであると考えられ、お互いとの強い
親近感(すなわち、社会的関係)を有するユーザの間でのみ使用可能である場合がある。したがって、メッセージング・モジュール120は、メッセージの送信者と受信者との間に強い
親近感がある場合に、SMSチャネルを選択する尤度を高めることができる。
【0040】
或る実施形態では、信号は、ユーザ・データストア110から取り出されうる。他の実施形態では、信号は、クライアント・デバイス180自体から取り出されうる。他の実施形態では、メッセージング・モジュール120は、ポリシ・ルールではなく、さまざまな入力信号の関数としてメッセージング・チャネルごとのチャネル・スコアを判定する機械学習されたモデルを適用する。その後、メッセージング・モジュール120は、少なくとも部分的にチャネル・スコアに基づき、適当なメッセージング・チャネルを選択する。機械学習されたモデルを、
図7に関連してより詳細に説明する。
【0041】
ステップ320では、メッセージング・モジュール120は、選択されたチャネルにメッセージを送達する形を判定する。言い替えると、メッセージング・モジュール120は、メッセージをどこに送信すべきか(すなわち、選択されたメッセージング・チャネル)と、選択されたメッセージング・チャネルを介してメッセージをどのように送信すべきか(すなわち、メッセージが送達される形)との両方を判定する。メッセージを送達すべき形の判定を、前述の信号のうちの1または複数に基づくものとすることができる。
【0042】
1実施形態では、メッセージをどのようにして送達すべきかの判定は、新しいメッセージについて受信者にどのようにして通知すべきかの判定からなる。この判定は、ユーザの現在のステータスに基づき行われうる。たとえば、モバイル・チャット・アプリケーションを有するユーザに、ユーザの電話機を振動させること、ユーザの電話機から可聴アラート(audible alert)を発すること、またはユーザの電話機上の点滅するLEDのアクティブ化によってユーザに静かに通知することのいずれかによって、新しいメッセージについて通知することができる。メッセージング・モジュール120は、ユーザの位置で現在は夜間であり、ユーザが2時間にわたってユーザの電話機と相互作用していない場合に、通知を静かな通知にしなければならないと判定することができる。もう1つの例として、メッセージサーバによって提供されるウェブ・ページを使用する受信者に、ウェブ・ページ内に表示される視覚的インジケータ(たとえば、メッセージング・アイコン)を明るくすることまたは新しい電子メールについてユーザに通知するポップアップ・
ウィンドウを表示することのいずれかによって、新しい電子メール・メッセージについて通知することができる。メッセージング・モジュール120は、マウス・イベントが最後の5分に検出されなかった場合や、ユーザが忙しいことをユーザのカレンダ・エントリが示す場合に、通知がインジケータを明るくすることでなければならないと判定することができる。
【0043】
1実施形態では、メッセージをどのように送達すべきか判定することは、メッセージをいつ送達すべきか判定することからなる。いくつかのメッセージング・チャネルについて、メッセージング・モジュール120は、複数のメッセージを一緒にバッチ化し、それらのメッセージを周期的なインターバルでメッセージの単一のダイジェストとしてメッセージング・チャネルを介して送達することができる。1実施形態では、ユーザの過去のメッセージング・アクティビティが、彼らがメッセージング・システムの頻繁なユーザであることを示す場合に、ダイジェストを、より高い頻度で送達することができる。ユーザの過去のメッセージング・アクティビティが、そのユーザが頻繁なユーザではないことを示す場合には、ダイジェストをより低い頻度で送達することができる。たとえば、ユーザが、メッセージサーバによって提供されるウェブ・ページに1時間に1回ログ・オンする場合に、ダイジェストを、30分おきに送達することができる。ユーザが、毎週1回ログ・オンする場合には、ダイジェストを2日おきに送達することができる。
【0044】
更に他の実施形態では、メッセージは、ユーザの現在のステータスに基づいてユーザに送達されうる。たとえば、ユーザのカレンダ・エントリが、ユーザが忙しいことを示す場合には、メッセージング・モジュールは、ユーザにメッセージを全く送信しないと判断することができる。ユーザがもはや忙しくなくなった後に、メッセージは、メッセージの単一のバッチまたはメッセージのストリームとして1または複数のメッセージング・チャネルを介してユーザに送達される。
【0045】
この形でのメッセージのバッチ化および送達は、個々のメッセージの定常ストリーム(steady stream)でいくつかのメッセージング・チャネルを過負荷にすることを回避する。たとえば、メッセージング・モジュール120が、所与の受信者との通信のチャネルとしてウェブ・チャット・チャネルおよび電子メール・チャネルを選択すると仮定する。メッセージは、ウェブ・チャット・チャネルを介して受信者に瞬時に送達されうる。しかし、電子メール・チャネルについて、メッセージは、一緒にバッチ化され、電子メール・チャネルを介してメッセージのダイジェストとして周期的に送達される。
【0046】
或る実施形態では、メッセージング・モジュール120は、メッセージが受信者によって肯定応答される時に、能動的にメッセージを挿入し、ダイジェストからメッセージを除去する。たとえば、メッセージがバッチ化されている時間中に、受信者が、ウェブ・チャット・チャネルを介してメッセージの一部を読み取るか応答する場合がある。他のメッセージング・チャネルを介して既に読み取られたか応答されたメッセージについて、メッセージング・モジュール120は、これらのメッセージをダイジェストから除去することができる。したがって、ダイジェストは、複製メッセージで受信者を閉口させることを回避するために、受信者によって肯定応答されていないメッセージだけを含む。
【0047】
更に他の実施形態では、選択されたメッセージング・チャネルには優先順位が付けられ、その優先順位の順番でチャネルに送達されうる。メッセージは、まず、より高い優先順位のチャネルに送達され、その後、事前に決定された長さの時間以内にユーザから応答が受信されない場合に、より低い優先順位のチャネルに送達される。たとえば、選択されたメッセージング・チャネルを、ウェブ・チャット・チャネルおよびモバイル・チャット・チャネルとし、ウェブ・チャット・チャネルをより高い優先順位のチャネルとすることができる。受信者にアドレッシングされたメッセージは、まず、ウェブ・チャット・チャネ
ルを介して送達される。20秒以内に受信者から応答が受信されない場合には、メッセージング・モジュール120は、モバイル・チャット・チャネルを介してメッセージを送達する。
【0048】
或る実施形態では、メッセージング・モジュール120は、ユーザ入力を全く用いずに、より低い優先順位のチャネルを自動的に試みる判断を行う。他の実施形態では、送信者が、より低い優先順位のチャネルを介するメッセージの送達を取り消すか進行させるオプションを与えられ、メッセージング・モジュール120は、このユーザ入力に従って、より低い優先順位のチャネルにメッセージを送達する。或る実施形態では、チャネルの優先順位は前もって設定されてもよく、その結果、いくつかのチャネルは、必ず他のチャネルよりも高い優先順位を有するようになる。あるいは、チャネル・スコアがチャネルごとに計算される場合に、より高いスコアを有するチャネルに、より高い優先順位を与えることができ、より低いスコアを有するチャネルに、より低い優先順位を与えることができる。
【0049】
ステップ325では、メッセージング・モジュール120は、判定された形で選択されたチャネル(1または複数)を介して、受信者にメッセージを送達する。或る実施形態では、メッセージを送達することは、クライアント・デバイス180にメッセージを送信することを含むことができる。他の実施形態では、たとえば、選択されたチャネルが電子メール・チャネルであり、ユーザの電子メール受信箱がメッセージサーバ101によってホスティングされる場合に、メッセージを送達することは、ユーザの受信箱にメッセージを格納することを含む。選択されたチャネルが、電子メール・チャネルであり、受信者電子メールが、メッセージサーバ101によってホスティングされない場合には、メッセージング・モジュール120は、simple mail transfer protocol(SMTP)などのメール・プロトコルを介してリモート・メッセージサーバにメッセージを送信することができる。その後、格納された電子メールは、後でメッセージ受信者によって取り出されうる。
【0050】
選択されたメッセージング・チャネルへのメッセージの選択的送達は、メッセージがタイムリーな形で意図される受信者(intended receipient)に達することを保証するのに有益である。さらに、複数のチャネルが選択される場合には、メッセージのコピーが、選択されたメッセージング・チャネルのそれぞれを介して送達され、これはさらに、メッセージが受信者に到達する尤度を高め、かつ/または受信者がメッセージを受信するまでの予期される時間を減らす。各メッセージング・チャネルが、メッセージの内容に関する要件の異なるセットを有することができるので、各チャネルに送信されるメッセージのコピーは、正確な複製であるのではなく、メッセージング・チャネルの要件に従うように再フォーマットされ得る。
【0051】
ユーザ・インターフェース
ここで
図4を参照すると、メッセージング・モジュール120の更に他の実施形態による、メッセージング・モジュール120によってクライアント・デバイス180に提供されるユーザ・インターフェース400が示されている。1実施形態では、メッセージング・モジュール120は、メッセージが受信者にどのように送達されるのかの表示を含むユーザ・インターフェース400をクライアント・デバイス180に提供する。ユーザ・インターフェース400は、たとえば、電子メールを組み立てるか他のユーザとチャットするためにメッセージサーバ101によって提供されるウェブ・ページとすることができる。視覚的表示は、メッセージがどのように送達されるのかの予測性の感覚を送信者に与え、メッセージング・システム100の使用に対する信頼を構築する。
【0052】
図示されているように、ユーザ・インターフェース400は、ユーザがメッセージの意図される受信者(intended receipient of the messa
ge)の名前を入力することを可能にする相互作用領域405を含む。ユーザ・インターフェース400の別の領域内の複数の視覚的インジケータ410は、どのメッセージング・チャネルが、意図される受信者にメッセージを送達するのに使用されるのかを示す。ここでメッセージの受信者は、ジム(Jim)という名前によるユーザであり、視覚的インジケータ410は、メッセージが、ジムの携帯電話機にインストールされたモバイル・チャット・アプリケーションおよびジムのコンピュータ・ブラウザ内のチャット・ウィンドウに送信されることを示す。
【0053】
ユーザ・インターフェース400の視覚的インジケータ410は、経時的に変化することができる。メッセージング・モジュール120は、受信者にメッセージを送達するのに使用されているメッセージ・チャネルに対応するように、視覚的インジケータ410を継続的に更新する。たとえば、当初に、選択されたメッセージ・チャネルは、モバイル・チャットおよびウェブ・チャットとされうる。受信者にメッセージを送信した後に、受信者は、ウェブ・チャット・チャネルを介してそのメッセージに応答することができる。この応答の受信に応答して、メッセージング・モジュール120は、ウェブ・チャット・チャネルが、今や、受信者にメッセージを送達するための適切なチャネルであると判断し、モバイル・チャット・チャネルを選択解除する。その後、視覚的インジケータ410は、メッセージング・チャネルが、今やモバイル・チャットではなくウェブ・チャットであることを示すように更新される。或る実施形態では、視覚的インジケータは、対話型とすることができ、単に正しいメッセージング・チャネルの提案である。したがって、ユーザは、メッセージング・モジュール120によって選択されたメッセージング・チャネルをオーバーライドする(override)ために、推奨されるチャネルのいずれをも選択し、または選択解除することができる。
【0054】
ユーザ・インターフェース400は、メッセージの本体を入力するための、ユーザ・インターフェース400のもう1つの領域内のテキスト・ボックス415をも含む。ユーザ・インターフェース400はさらに、着信メッセージ(ユーザであるジムから受信された)および発信メッセージ(ユーザであるジムに送信される)を含むメッセージのスレッドを表示するもう1つのテキスト・ボックス420を含む。言い替えると、テキスト・ボックス420などは、チャット・ウィンドウのように働き、2つのユーザの間の会話のメッセージを記憶する。メッセージは、メッセージの送達または受信に使用されるメッセージング・チャネルにかかわりなく、テキスト・ボックス420内で単一のスレッドとして維持される。メッセージング・チャネルは、視覚的インジケータ410によって示されるように経時的に変化する場合があるが、送信者と受信者との間の会話は、ユーザ・インターフェース400を介して中断されないままであるように見える。
【0055】
さらに、ユーザ・インターフェース400は、
図4に示されたものとは異なる外見を有することができる。或る実施形態では、インターフェース400は、受信者の現在の物理的位置の視覚的表示を含むことができる。位置は、たとえば、受信者の電話機内のGPS情報、受信者のコンピュータのIPアドレス、またはユーザの位置を示すメッセージング・システムから使用可能な任意の他の情報(たとえば、ユーザが現在食事をしているレストランに関する情報、ユーザが現在参加しているコンサートに関する情報など)から判定することができる。或る実施形態では、インターフェース400は、選択されたチャネルに関する受信者のプレゼンス(presence)の表示を含むことができる。プレゼンスは、一般に、受信者が所与のチャネルを介してメッセージに応答するために求めに応じられるかどうかを指す。たとえば、ウェブ・チャット・チャネルが選択されているが、ユーザが、チャット・ウィンドウを開くことができないか、ユーザが、過去30分間にマウス移動を全く行わなかった場合がある。したがって、インターフェース400は、メッセージがウェブ・チャット・チャネルを介して送信されるが、ユーザがこのチャネルを介して応答するために求めに応じられない可能性があることの表示を含むことができる。
【0056】
ここで
図5を参照すると、メッセージング・モジュール120の1実施形態による、ユーザ・インターフェース内で選択されたチャネルの表示を提供する工程フローが示されている。ステップ505では、メッセージング・モジュール120は、クライアント・デバイス180のユーザへの表示のために、クライアント・デバイス180にユーザ・インターフェースを提供する。たとえば、ユーザ・インターフェースは、
図4のユーザ・インターフェースに類似するものとされてもよい。ステップ510では、メッセージング・モジュール120は、メッセージの意図される受信者を識別する情報を受け取る。たとえば、クライアント・デバイス180のユーザは、彼または彼女が連絡を望むユーザの名前を入力するか、ユーザのリストからユーザを選択することができる。その後、この情報は、メッセージサーバ101に送信され、メッセージング・モジュール120によって受信される。
【0057】
ステップ515では、メッセージング・モジュール120は、意図される受信者にメッセージを送達するために、1または複数のチャネルを選択する。複数のメッセージング・チャネルが、メッセージの送達に使用可能である場合があるので、メッセージング・モジュールは、既に
図2および
図3に関連して説明したように、さまざまな情報信号を使用する異なるメッセージング・チャネルの中から選択する。メッセージング・モジュール120は、メッセージング・チャネルを自動的に選択し、その結果、適当なメッセージング・チャネルが、メッセージの意図される受信者に連絡するために選択されるようになる。
【0058】
ステップ520では、メッセージング・モジュール120は、ユーザ・インターフェース内に選択されたメッセージ・チャネル(1または複数)の視覚的表示を提供する。この表示は、選択されたメッセージ・チャネル(1または複数)に関する情報を伝える任意の視覚的表示、たとえば、選択されたメッセージ・チャネルを説明するテキストまたはメッセージ・チャネルを示すグラフィックとされてもよい。複数のチャネルが選択される場合には、チャネルごとに提供される別々の視覚的インジケータがあってもよい。したがって、これらの表示を提供することによって、送信者は、メッセージがどこに送信されるのかを正確に知る。
【0059】
その後、送信者は、メッセージを入力し、これをメッセージング・モジュールに提供する。メッセージング・モジュール120は、送信者からメッセージを受け取り(図示せず)、そのメッセージを選択されたチャネル(1または複数)を介して受信者に送達する。受信者が応答し、2つのユーザの間の会話が進行する時に、メッセージング・モジュール120は、選択されたメッセージング・チャネルに変化がある(すなわち、新しいチャネルが選択されるか古いチャネルが選択解除される)場合に、選択されたメッセージング・チャネルに対応するように視覚的インジケータを継続的に更新する。たとえば、メッセージに応答するのに受信者によって最後に使用されたチャネルは、メッセージング・モジュール120によって、適切な送達チャネルにするために選択されうる。
【0060】
新しいメッセージが送信され、受信される時に、それらは、メッセージを送達するメッセージング・チャネルが変化する時であっても、スレッドに追加され、単一のスレッドとしてテキスト・ボックス420内に表示される。たとえば、受信者は、或るメッセージング・チャネル(たとえば、SMS)を介して応答メッセージを送信し、その後、異なるメッセージング・チャネル(たとえば、ウェブ・チャット)を介して別の応答メッセージを送信することができる。両方のメッセージが、テキスト・ボックス420内の同一のスレッドまたは会話の一部としての表示のために提供される。したがって、送信者には、会話の流れを中断することなく、異なるメッセージング・チャネルの間で自動的にシームレスに遷移する単一のインターフェースが与えられる。
【0061】
複製メッセージの撤回
1実施形態では、メッセージング・モジュール120は、受信者がメッセージを受信する可能性を高め、および/または受信者がそれを受信するまでの期待される時間を減らすために、メッセージを受け取り、複数のメッセージング・チャネルを介してメッセージをその受信者に送達する。メッセージング・モジュール120が、メッセージング・チャネルのうちの1つを介して受信者から応答を受信すると、メッセージング・モジュール120は、複製メッセージでユーザを閉口させることを回避するために、他のメッセージング・チャネルに送信されたメッセージを撤回する。将来に、メッセージング・モジュール120は、受信者に将来のメッセージを送達するための正しいチャネルとして、応答チャネルを使用することができる。
【0062】
ここで
図6を参照すると、メッセージング・モジュール120の1実施形態による、
メッセージを撤回する工程フローが示されている。ステップ603では、メッセージング・モジュール120は、メッセージング・システムの別のユーザ宛であるメッセージをメッセージング・システムのユーザから受け取る。たとえば、メッセージは、クライアント・デバイスのユーザから受け取られうる。ステップ605では、メッセージング・モジュール120は、メッセージの受信者によってチェックすることができる複数のメッセージング・チャネルを介して、受信者にメッセージを送達する。たとえば、メッセージング・モジュール
120は、
図3に関連して説明した工程を介して、選択された複数のメッセージング・チャネルによってメッセージを送達することができる。
【0063】
ステップ610では、メッセージング・モジュール
120は、メッセージに対する応答をメッセージの受信者からメッセージング・チャネルを介して受信する。たとえば、オリジナル・メッセージが、ウェブ・チャット・チャネルおよびXMPPチャネルを介して受信者に送信された場合がある。その後、受信者は、ウェブ・チャット・チャネルではなくXMPPチャネルを介して戻りメッセージを送信することによって、応答しうる。
【0064】
ステップ615では、
メッセージング・モジュール120は、他のチャネルすなわちユーザがそこから応答しなかったチャネルに送信されたメッセージのコピーを撤回する。たとえば、ユーザが、ウェブ・チャット・ウィンドウ内とXMPPを介してとの両方でメッセージのコピーを受信すると仮定する。ユーザがXMPPを介して応答する場合には、
メッセージング・モジュール120は、ウェブ・チャットを介して送信されたメッセージのコピーを撤回する。或る実施形態では、撤回することは、他のメッセージング・チャネルを介して送達されたメッセージのコピーを削除することを含むことができる。あるいは、撤回することは、メッセージ自体を除去することなく、メッセージのコピーを読み取られたものとしてマーキングすることを含むことができる。
【0065】
いくつかのメッセージング・チャネルは、撤回可能チャネル(rescindable
channels)であってもよく、この撤回可能チャネルは、メッセージサーバ101がそこからメッセージを撤回できるチャネルである。撤回可能チャネルの例は、ウェブ・チャットおよびメッセージサーバ101によってホスティングされる電子メールを含む。複数の送達チャネルのうちの幾つかは、非撤回可能チャネル(non−rescindable channels)であってもよく、この非撤回可能チャネルは、メッセージサーバ101がそこからメッセージを撤回できないチャネルである。非撤回可能チャネルの例は、XMPP、SMS、プッシュ通知に頼るモバイル・チャット、および他のメッセージサーバ101によってホスティングされる電子メールを含む。メッセージング・モジュール
120は、撤回可能メッセージ・チャネルからメッセージを撤回しうるが、非撤回
可能メッセージ・チャネルからはメッセージを撤回しない。
【0066】
メッセージング・モジュール120は、他の理由からメッセージを撤回することもでき
る。1実施形態では、メッセージング・モジュール120は、特定のチャネルを介して送達されたメッセージのコピーがユーザによって読み取られたことの通知を受信する。たとえば、ユーザは、メッセージをクリックすることによってウェブ・ページを介してユーザの電子メール・メッセージにアクセスすることができ、メッセージのクリックのおかげで、メッセージング・モジュール120は、メッセージがユーザによってアクセスされ、読み取られたことの表示を与えられる。この表示の受信に応答して、メッセージング・モジュール120は、他のメッセージング・チャネルに送達されたメッセージのコピーを撤回する。更に他の実施形態では、メッセージング・モジュール120は、或る長さの時間が経過した後に、或るチャネルを介して送信されたメッセージを受信者が読み取らない場合に、そのチャネルからメッセージを撤回することができる。
【0067】
メッセージング・モジュールのトレーニング
1実施形態では、メッセージング・モジュール120は、メッセージング・チャネルを選択するための予測モデルを展開するトレーニング工程を受ける。その後、予測モデルが、たとえば
図3の工程で使用されることで、受信者にメッセージを送達するための1または複数のメッセージング・チャネルを選択することができる。1実施形態では、予測モデルは、メッセージング・システムの多数のユーザに適用できるグローバル・モデルである。
【0068】
一般的に言って、メッセージング・モジュール120は、トレーニング・データを収集することによってモデルを構築する。トレーニング・データは、ユーザのグループに関する好まれるメッセージング・チャネル(preferred messaging channels)および好まれるメッセージング・チャネルに関連する信号に関する情報を含む。たとえば、メッセージング・モジュール120は、複数のメッセージング・チャネルを介してユーザにメッセージを送達することができる。ユーザは、メッセージング・チャネルのうちの1つを介してメッセージに応答したり、またはメッセージを見たりする。このメッセージング・チャネルは、メッセージング・モジュール120に、ユーザによって好まれるメッセージング・チャネルの表示を与える。1または複数の信号のステータスが、識別され(たとえば、受信者が、メッセージに応答するかメッセージを受信する時に、高速で移動している)、好まれるメッセージング・チャネルに関連付けられる。
【0069】
トレーニング・データにアクセスすることと、信号と好まれるメッセージング・チャネルとの間の関係を分析することとによって、メッセージング・モジュール120は、メッセージ受信者によって好まれるメッセージング・チャネルを予測するのに使用できるモデルを生成する。このモデルは、入力として或る信号を受け入れ、その信号を使用して、メッセージング・チャネルごとのチャネル・スコアを生成する。チャネル・スコアは、受信者の好まれるメッセージング・チャネル(1または複数)を示す。予測モデルが、より多くのトレーニング・データが収集される時に更新されることで、より多くの信号もしくはメッセージング・チャネルが使用される時に、ならびに/または新しいメッセージング・チャネルおよび通知機構(notification mechanisms)もしくは他のメッセージング特徴(messaging features)を追加することなどによって、システムが更新される時に、予測モデルの反復改良(iterative refinement)を可能にすることができる。
【0070】
1実施形態では、予測モデルは、所与の受信者に関するメッセージング・チャネルごとのスコアを計算する関数である。たとえば、関数を、さまざまな情報信号の荷重和とすることができ、関数は、次の式によって表される。
【0072】
ここで、Score
NMは、特定のチャネルNおよびメッセージ受信者Mについて計算されるチャネル・スコアを表す。X、Y、およびZは、特定の受信者Mに関する異なる情報信号の数値表現である。A、B、およびCは、信号のそれぞれの数値重みである。重みA、B、およびCは、トレーニング・データのセット内の、信号と、ユーザによって好まれるチャネルとの間の関係を分析する学習工程を介して計算される。この関数がさまざまなメッセージング・チャネルに適用される時に、より高いスコアは、チャネルが受信者によって好まれることを示し、より低いスコアは、チャネルが受信者によって好まれないことを示す。
【0073】
ここで
図7を参照すると、1実施形態による、予測モデルをトレーニングする工程フローが示されている。ステップ710では、メッセージング・モジュール120は、複数のメッセージング・チャネルを介して受信者にメッセージを送達する。また、ステップ710では、メッセージング・モジュール120は、メッセージが送達される時に1または複数の情報信号のステータスを記録する。1または複数の情報信号は、ユーザおよび/またはメッセージに関連する。たとえば、特定の受信者にメッセージを送信する時に、メッセージング・モジュール120は、受信者が高速で移動していることを示す情報を記録することもできる。多数の異なるタイプの信号が記録されることができ、この記録は、この情報から生成されるモデルの正確さを改善することに役立つ。
【0074】
ステップ715では、メッセージング・モジュール120は、メッセージの受信者によって好まれるメッセージング・チャネルを判定する。1実施形態では、受信者は、メッセージング・チャネルのうちの1つを介してメッセージに応答することができ、この応答は、応答チャネルが受信者の好まれるチャネルであることの表示として扱われる。更に他の実施形態では、受信者は、メッセージング・チャネルのうちの1または複数を使用してメッセージのコピーを読み取ることができ、メッセージを読み取るのに使用される最初のチャネルは、好まれるメッセージング・チャネルの表示として扱われる。更に他の実施形態では、メッセージング・モジュール120は、どのメッセージング・チャネルが好まれるメッセージング・チャネルであるのかに関してユーザにプロンプトを出す(prompt)ことができる。たとえば、ユーザに、質問「どのチャネルからメッセージを受信することをお好みですか」を提示することができる。その後、プロンプトに対するユーザの応答は、好まれるメッセージング・チャネルの明示的識別として扱われる。
【0075】
ステップ720では、メッセージング・モジュール120は、好まれるメッセージング・チャネルを、記録された情報信号のステータスに関連付ける。1実施形態では、メッセージング・チャネルと信号との間の関係は、共起テーブル(co−occurrence
table)に格納される。共起テーブル内の各エントリは、好まれるチャネルに関連してどれほどしばしば特定の信号が発生するのかを指定する。以下は、共起テーブルの基本的な例である。
【0077】
このテーブルでは、受信者の移動速度が8km/h(5mph)を超える時に、モバイル・チャット・チャネルは、850回の好まれるメッセージング・チャネルであり、電子メール・チャネルは、100回の好まれるメッセージング・チャネルである。カレンダ・エントリが、受信者が忙しいことを示す時に、モバイル・チャット・チャネルは、120回の好まれるメッセージング・チャネルであり、電子メール・チャネルは、820回の好まれるメッセージング・チャネルである。したがって、共起テーブル内のデータは、電子メール・チャネルと比較した場合に、モバイル・チャット・チャネルが、受信者が高速で移動している(たとえば、受信者が自動車内にいる)時に頻繁に使用されることを示す。このデータは、ユーザのカレンダ・エントリが、ユーザが忙しいことを示す(たとえば、ユーザが会議中である)時に、電子メール・チャネルが頻繁に使用されることをも示す。
【0078】
ステップ725では、メッセージング・モジュール120は、信号とメッセージング・チャネルとの間の関係に関するさらなる情報を収集するために、この工程を繰り返す。統計的に有意な量の情報が収集されるまで、この工程は、何回でも繰り返される。トレーニング・データの収集が完了した後に、この工程はステップ730に進む。
【0079】
ステップ730では、メッセージング・モジュール120は、メッセージの受信者によって好まれる1または複数のメッセージング・チャネルを予測するのに使用できるモデルをトレーニングする。モデルは、多数のユーザから収集されたデータから生成されるので、メッセージング・システムの1または複数の異なるユーザに適用できるグローバル・モデルである。他の実施形態では、特定のユーザからのみデータを収集することと、その情報からモデルを生成することとによって、モデルは、その特定のユーザに合わせて調整されうる。
【0080】
1実施形態では、その共起(co−occurrences)によって示されるように、信号とメッセージング・チャネルとの間の関係の強さは、メッセージング・チャネルごとの信号ごとに重みを生成するのに使用される。再び式1を参照すると、重みは、A、B、およびCなどの変数である。重みは、ある上限と下限(たとえば、0から100まで)の間でスケーリングされうる。たとえば、モバイル・チャット・チャネルについて、高い速度が、「85」の重みに関連付けられ、カレンダ・エントリが、「12」の重みに関連付けられる。電子メール・チャネルについて、高い速度が、「12」の重みに関連付けられ、カレンダ・エントリが、「82」の重みに関連付けられる。或る実施形態では、重みは、或る信号の重要性を強調するために、異なる信号にまたがってだけでなく、異なるチャネルの間でもスケーリングされる。他の実施形態では、モデルは、式1で表されるものより複雑なまたはこれとは異なる関数によって表されてもよい。
【0081】
ステップ735では、メッセージング・モジュール120は、固定記憶媒体またはメモリなどのストレージ・デバイスに、予測モデルを格納する。モデルは、その後、メッセージング・システムのユーザにメッセージを送達するための1または複数のメッセージング・チャネルを自動的に選択するのに、使用される。たとえば、所与のメッセージの入力信号およびメッセージの受信者のセットを与えられて、メッセージング・モジュール120は、予測モデルを使用して、異なるメッセージング・チャネルのチャネル・スコアを判定
する。1実施形態では、或るしきい値を越えるスコアを有するチャネルが、正しいメッセージング・チャネルとして選択される。しきい値は、相対的(たとえば、第50パーセンタイル超)または絶対値とすることができる。他の実施形態では、メッセージング・モジュール120は、正しいメッセージング・チャネルを選択する際に、他の要因(たとえば、金銭的コストまたは送信遅延)と組み合わせてスコアを考慮する。有益なことに、この形でのトレーニングおよびその後のモデルの生成は、ユーザによって好まれるメッセージング・チャネルの正確な予測を可能にし、これは、メッセージを適当なメッセージング・チャネルを介してユーザに送達することを可能にする。
【0082】
追加の考慮事項
本発明の実施形態の前述の説明は、例示のために提示されたものであり、網羅的であることまたは本発明を開示された正確な形態に限定することは意図されていない。当業者は、上の開示に鑑みて、多数の修正形態および変形形態が可能であることを了解するであろう。
【0083】
この説明のいくつかの部分は、情報に対する動作のアルゴリズムおよび記号表現に関して本発明の実施形態を説明する。これらのアルゴリズム的説明および表現は、データ処理技術の当業者によって、彼らの作業の実質を他の当業者に伝えるのに一般的に使用されるものである。これらの動作は、機能的、計算的、または論理的に説明されるが、コンピュータ・プログラムもしくは同等の電気回路、マイクロコードなどによって実施されると理解される。さらに、時々、一般性を失わずに、動作のこれらの配置をモジュールと称することが便利であることも分かっている。説明された動作およびそれに関連するモジュールを、ソフトウェア、ファームウェア、ハードウェア、またはその組合せで実施することができる。
【0084】
本明細書で説明されるステップ、動作、または工程のいずれをも、1または複数のハードウェア・モジュールまたはソフトウェア・モジュールを単独でまたは他のデバイスと組み合わせて用いて実行しまたは実施することができる。1実施形態では、ソフトウェア・モジュールが、説明されるステップ、動作、または工程のいずれかまたはすべてを実行するためにコンピュータ・プロセッサによって実行され得るコンピュータ・プログラム・コードを含む固定コンピュータ可読媒体からなるコンピュータ・プログラム製品を用いて実施される。
【0085】
本発明の実施形態は、本明細書の動作を実行する装置に関係することもできる。この装置を、必要な目的のために特に構成することができ、かつ/またはこの装置は、コンピュータ内に格納されたコンピュータ・プログラムによって選択的にアクティブ化されまたは再構成される汎用コンピューティング・デバイスからなることができる。そのようなコンピュータ・プログラムを、電子命令を記憶するのに適する、コンピュータ・システム・バスに結合された固定コンピュータ可読記憶媒体または任意のタイプの媒体に格納することができる。さらに、本明細書で言及されたすべてのコンピューティング・システムは、単一のプロセッサを含むことができ、あるいは、高められた計算能力のために設計された複数のプロセッサを使用するアーキテクチャとすることができる。
【0086】
最後に、本明細書で使用される言葉は、原理的に可読性および教育的目的のために選択され、発明的主題を詳細に描写しまたはその範囲を定めるために選択されたものではない可能性がある。したがって、本発明の範囲が、この詳細な説明ではなく、本明細書に基づく出願時に生じる特許請求の範囲によって限定されることが意図されている。したがって、本発明の実施形態の開示は、添付の特許請求の範囲に示された本発明の範囲の、限定ではなく例示であることが意図されている。