(57)【要約】      （修正有）【課題】インスタント・メッセージングを通じたスパム（ＳＰＩＭ）を低減する。【解決手段】特定のユーザーがある時点で有することができるオープン・インスタント・メッセージング・スレッドの数を制限し、潜在的なスパマーがインスタント・メッセージング・ユーザーにＳＰＩＭを殺到させるのを防止する。また、オープン・インスタント・メッセージング・スレッドの数を制限する技法を、ユーザーがインスタント・メッセージング・サービス等に、ＳＰＩＭまたはその他の望ましくないコンテンツを送っているユーザーについて通知できるようにするユーザー・フィードバック技法や、インスタント・メッセージング・サービス等が、ユーザーによって発生されたテキストを分析し、そのユーザーがＳＰＩＭまたはその他の望ましくないコンテンツを他のインスタント・メッセージング・ユーザーに送っているか否か判断できるようにするテキスト分析技法と組み合わせる。【選択図】図３
2011238249.tif 000002
【特許請求の範囲】
【請求項１】
新たなチャット会話を開始する要求を、エンティティから受け取るステップと、
ユーザーが既に提案しているオープン・チャット・スレッドの数に少なくとも部分的に基づいて、前記エンティティが前記新たなチャット会話を開始することを許可するか否か判断するステップと、
を備えている、方法。
【請求項２】
請求項１記載の方法において、前記判断するステップは、チャット・キューに照会して、前記エンティティが提案しているオープン・チャット・スレッドの数を求めるステップを含む、方法。
【請求項３】
請求項１記載の方法であって、更に、
前記エンティティが有するオープン・チャット・スレッドが閾値数未満であるという判断に応答して、前記エンティティに新たなチャット会話を開始することを許可するステップを備えている、方法。
【請求項４】
請求項１記載の方法であって、更に、
前記エンティティが、少なくとも閾値数のオープン・チャット・スレッドを有するという判断に応答して、前記新たなチャット会話を開始する要求を拒否するステップを備えている、方法。
【請求項５】
請求項１記載の方法であって、更に、
前記エンティティに、前記新たなチャット会話を開始することを許可することを示すステップと、
前記エンティティが新たなチャット会話を開始したことに応答して、前記エンティティと関連のあるチャット・キューに、新たなチャット・スレッドを記録するステップと、
を備えている、方法。
【請求項６】
請求項５記載の方法であって、更に、
前記チャット・キューから、時間切れとなったオープン・チャット・スレッドをいずれも取り除くステップを備えている、方法。
【請求項７】
請求項５記載の方法であって、更に、
回答を受け取ったオープン・チャット・スレッドをいずれも前記チャット・キューから取り除くステップを備えている、方法。
【請求項８】
請求項１記載の方法であって、更に、
前記エンティティと関連のあるフィードバックを分析するステップと、
少なくとも部分的に前記フィードバックに基づいて、チャレンジを前記エンティティに送信するステップと、
を備えている、方法。
【請求項９】
コンピューター実行可能命令を備えている１つ又は複数のコンピューター読み取り可能媒体であって、前記命令を実行すると、
チャット・キューに、エンティティが提案したオープン・チャット・スレッドを記録し、
前記エンティティが提案したオープン・チャット・スレッドの内、回答を受け取ったものをいずれも前記チャット・キューから取り除き、
前記エンティティが提案し前記チャット・キューに残っているオープン・チャット・スレッドの数に少なくとも部分的に基づいて、前記エンティティに新たなチャット会話を開始することを許可するか否か判断する、
ことを含む行為を実行する、１つ又は複数のコンピューター読み取り可能媒体。
【請求項１０】
請求項９記載の１つ又は複数のコンピューター読み取り可能媒体において、前記チャット・キューは、時間切れとなったオープン・チャット・スレッドをいずれも取り除くように構成されている、１つ又は複数のコンピューター読み取り可能媒体。
【請求項１１】
請求項９記載の１つ又は複数のコンピューター読み取り可能媒体において、更に、実行すると、
前記エンティティが提案し前記チャット・キューに残っているオープン・チャット・スレッドの数が、閾値量未満であるという判断に応答して、前記エンティティに新たなチャット会話を開始することを許可する、
ことを含む行為を実行するコンピューター実行可能命令を備えている、１つ又は複数のコンピューター読み取り可能媒体。
【請求項１２】
請求項９記載の１つ又は複数のコンピューター読み取り可能媒体において、更に、実行すると、
前記エンティティと関連のあるフィードバックを受け取り、
少なくとも部分的に前記フィードバックに基づいて、チャレンジを前記エンティティに送信する、
ことを含む行為を実行するコンピューター実行可能命令を備えている、１つ又は複数のコンピューター読み取り可能媒体。
【請求項１３】
請求項９記載の１つ又は複数のコンピューター読み取り可能媒体において、更に、実行すると、
前記エンティティが、チャット会話の一部として発生したテキストを分析し、
少なくとも部分的に前記分析に基づいて、チャレンジを前記エンティティに送信する、
ことを含む行為を実行するコンピューター実行可能命令を備えている、１つ又は複数のコンピューター読み取り可能媒体。
【請求項１４】
請求項９記載の１つ又は複数のコンピューター読み取り可能媒体において、前記判断は、更に、
前記エンティティと関連のあるフィードバックを受け取り、
前記エンティティが、チャット会話の一部として発生したテキストを分析する、
ことを含む、１つ又は複数のコンピューター読み取り可能媒体。
【請求項１５】
エンティティが既に提案しているオープン・チャット・スレッドの数に少なくとも部分的に基づいて、前記エンティティに新たなオープン・チャット・スレッドを開くことを許可するか否か判断するように構成されている要求モジュールと、
前記エンティティが既に提案しているオープン・チャット・スレッドの数を追跡するためのチャット・キューと、
前記チャット・キューの中にある各オープン・チャットを計時し、時間切れとなったオープン・チャット・スレッドをいずれも取り除くためのタイマーと、
を備えている、システム。
【請求項１６】
請求項１５記載のシステムにおいて、前記要求モジュールは、前記エンティティが既に提案しているオープン・チャット・スレッドの数が、閾値量以上である場合、前記エンティティに新たなチャット・スレッドを開くことを許可しないという指示を出すように構成されている、システム。
【請求項１７】
請求項１５記載のシステムにおいて、前記チャット・キューは、回答を受け取ったチャット・スレッドをいずれも取り除くように構成されている、システム。
【請求項１８】
請求項１５記載のシステムであって、更に、
前記エンティティのチャット言動に関連するフィードバックを受け取るように構成されているフィードバック・モジュールを備えている、システム。
【請求項１９】
請求項１５記載のシステムであって、更に、
前記エンティティがチャット会話の一部として発生するテキストを分析するテキスト分析モジュールを備えている、システム。
【請求項２０】
請求項１５記載のシステムであって、更に、
前記エンティティと関連のあるフィードバック、および前記エンティティがチャット会話の一部として発生したテキストのテキスト分析の内少なくとも１つに少なくとも部分的に基づいて、チャレンジを発生し、該チャレンジを前記エンティティに送信するチャレンジ発生器を備えている、システム。
【発明の詳細な説明】
【背景技術】
【０００１】
インターネットおよびその他のネットワークは、個人の通信能力を大幅に高めた。これらのネットワークを利用する通信ツールの中に、インスタント・メッセージング・サービスがある。インスタント・メッセージング・サービスは、ユーザー同士が互いに、リアル・タイムまたはほぼリアル・タイムのテキストおよび画像交換によって通信することを可能にする。しかしながら、他の通信媒体と同様に、インスタント・メッセージング・サービスは、広告主や、望ましくないコンテンツまたは不適切なコンテンツのその他の提供者による不正使用を受け易い。このようなコンテンツの一例に、世間一般に「スパム」として知られているものがある。これは、一般に、電子通信媒体を通じて送られる大量の非請求メッセージのことを言う。インスタント・メッセージ・サービスのコンテキストでは、スパムは「ＳＰＩＭ」、即ち、「インスタント（またはインターネット）メッセージングを通じたスパム」とも呼ばれている。ＳＰＩＭおよびその他の不適切なコンテンツまたは望ましくないコンテンツを送信する個人およびエンティティは、世間一般に「スピマー」として知られている。スピマーによるインスタント・メッセージング・サービスの不正使用によって貴重なネットワーク帯域幅が占領され、正当なインスタント・メッセージング・ユーザーの全体的なユーザー体験の質が低下することになる。ＳＰＩＭの拡散を抑えるために種々の技法が実施されているが、問題は根強く残っている。
【発明の概要】
【０００２】
この摘要は、詳細な説明において以下で更に説明する、インスタント・メッセージングを通じたスパムの技法およびプロセスを導入するために提示するものである。この摘要は、特許請求する主題の必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断する際に用いることを意図するのでもない。
【０００３】
本開示は、インスタント・メッセージングを通じたスパム（ＳＰＩＭ）を低減するプロセスおよび技法を対象とする。一実施態様では、特定のユーザーが所与の時点において有することができるオープン・インスタント・メッセージング・スレッド（「チャット・スレッド」）の数を制限して、潜在的なスパマーがインスタント・メッセージング・ユーザーにＳＰＩＭを殺到させるのを防止する。別の実施態様では、オープン・インスタント・メッセージング・スレッドの数を制限する技法を、ユーザー・フィードバック技法と組み合わせる。ユーザー・フィードバック技法は、ユーザーがインスタント・メッセージング・サービスまたはその他のエンティティに、ＳＰＩＭまたはその他の望ましくないコンテンツを送っているユーザーについてのフィードバックを提供することを可能にする。別の実施態様では、オープン・インスタント・メッセージング・スレッドの数を制限する技法を、テキスト分析技法と組み合わせる。テキスト分析技法は、インスタント・メッセージング・サービスまたはその他のエンティティが、ユーザーによって発生されたテキストを分析し、そのユーザーがＳＰＩＭまたはその他の望ましくないコンテンツを他のインスタント・メッセージング・ユーザーに送っているか否か判断することを可能にする。
【図面の簡単な説明】
【０００４】
添付図面を参照しながら、詳細な説明を明記する。図面においては、参照番号の一番左側の数字（群）が、その参照番号が最初に出てくる図を示す。異なる図面において同じ参照番号を用いる場合、同様または同一の項目を示すものとする。
【図１】図１は、インスタント・メッセージングを通じたスパムの制御プロセスおよび技法を実現する環境の一例を示す。
【図２】図２は、個々のインスタント・メッセージング・ユーザーについてオープン・チャット・スレッドを追跡するキャット・キューの一例を示す。
【図３】図３は、個々のユーザーが有することができるオープン・チャット・スレッドの数を制限するプロセスの流れ図である。
【図４】図４は、個々のユーザーが有することができるオープン・チャット・スレッドの数を制限するプロセスの特定的な態様の流れ図である。
【図５】図５は、ユーザー・フィードバックをオンライン・チャット環境に組み込むプロセスの流れ図である。
【図６】図６は、テキスト分析をオンライン・チャット環境に組み込むプロセスの流れ図である。
【図７】図７は、レート制限、ユーザー・フィードバック、およびテキスト分析をオンライン・チャット環境に組み込むプロセスの流れ図である。
【発明を実施するための形態】
【０００５】
本明細書に記載するのは、インスタント・メッセージングを通じたスパム（ＳＰＩＭ）の増殖を抑えるプロセスおよび技法である。本プロセスおよび技法は、インスタント・メッセージング・サービス（チャット・サービスとしても知られている）、ピア・ツー・ピア・ネットワーク、またはその他の適したエンティティであればいずれによってでも実現することができる。チャット・サービスは、ピア・ツー・ピア・ネットワークを通じて実現することもできる。チャット・サービスは、チャット・ネットワークをホストし、チャット・ユーザーの通信を容易にするハードウェアおよび／またはソフトウェア設備を提供する。チャット・サービスは、レート制限技法を実施して、個々のチャット・ユーザーが所与の時点において有することができるオープン・チャット・スレッドの数を制限することができる。チャット・スレッドは、チャット・ユーザーが他のユーザー（「招待客」(invitee)）を招待したときに、そのチャット・ユーザーとのインスタント・メッセージング会話に使用するために作成される。チャット・スレッドは、招待客からの回答がないままチャットに対する招待が残留する限り、またはチャット・スレッドが時間切れにならない限り、開いたまま、即ち、「保留」のままでいる。
【０００６】
人間のチャット・ユーザーであれば、特定の時間期間においてそのユーザーが発生することができるトラフィックの量には限度があるであろうが、コンピューターの自動化によって、スパマーおよびその他のエンティティが大量のＳＰＩＭを殆ど瞬時に送ることが可能となっている。このようなコンピューター自動化の一例にボット(bot)がある。ボットとは、自動的にまたは最小限の人間の介入によって、コンピューター化したオンライン環境においてコマンドを実行し、メッセージに回答し、またはルーチン・タスクを実行することができる、デバイスまたはソフトウェア・モジュールのことである。つまり、ボットは、チャット招待またはその他の合法的なチャット・コンテンツを偽って、多数のチャット・ユーザーにＳＰＩＭを送るようにプログラミングすることができる。しかしながら、ボットは、特定のユーザー・エリアスまたはユーザー識別子と関連付けることもできる。個々のユーザーが所与の時点において有することができるオープン・チャット・スレッドの数を制限することによって、チャット・サービスは、短期間に大量のＳＰＩＭを送るボットの能力を抑制する。本明細書において用いる場合、「ユーザー」または「チャット・ユーザー」という用語は、人間のユーザー、コンピューター化したユーザー、または人間のユーザーおよびコンピューター化したユーザーの組み合わせを指すことができる。
【０００７】
また、チャット・ユーザーが、ＳＰＩＭを送るというような、違法チャット言動に関与しているか否か判断するために、ユーザー・フィードバックも利用する。チャット・サービスは、チャット・ユーザーにユーザー・フィードバックを提出させることができ、このフィードバックに基づいて、チャット・サービスは、ユーザーが、ＳＰＩＭをチャット・ユーザーに送っているボットまたはその他のエンティティであるか否か判断するために、別の手順を実施することができる。
【０００８】
テキスト分析は、チャット・サービスが、チャット・ユーザーによって発生したテキストを分析して、そのチャット・ユーザーがＳＰＩＭを送信しているか否か判断することを可能にする。テキスト分析は、分析している個々のチャット・コンテンツがＳＰＩＭである高い可能性を示す、特定の単語または単語の集合体を探すことができる。
【０００９】
レート制限、ユーザー・フィードバック、およびテキスト分析技法は、異なる方法で組み合わせて、特定のインスタント・メッセージング・サービスを用いて大量のＳＰＩＭを送信するスパマーの能力を抑制することができる。本明細書において記載する技法は、多くの異なる動作環境およびシステムにおいて用いることもできる。以下に、多種多様の実施態様について説明する。以下の章では、種々の実施態様を実用化するのに適した環境例について説明する。
【００１０】
動作環境例
図１は、前述のプロセスおよび技法を利用することができる動作環境の一例１００を示す。しかしながら、本明細書において記載するプロセスおよび技法は、他のいずれのネットワークまたは他の計算デバイスの集合体にも、更に広く適用可能である。動作環境１００は、プロファイル・サーバー１０２、チャット・イニシエータ１０４、およびチャット招待客１０６を含む。プロファイル・サーバー１０２は、例えば、単体の汎用計算デバイスまたはメインフレームのような、あるいはサーバーのクラスタ（例えば、サーバー・ファーム状に配列する）のようなものを含む、多くの方法で実現することができる。プロファイル・サーバー１０２は、チャット・サーバーをホストし、チャット・サーバー機能を実行することができる。他の動作環境例では、接続サーバー、チャット・サーバー、およびその他のネットワーク・リソースを利用するチャット・サービスを用いることもできる。
【００１１】
チャット・イニシエータ１０４およびチャット招待客１０６は、例えば、汎用計算デバイス、ラップトップ、移動体計算デバイス、ＰＤＡ、セルラ・フォン、衛星デバイスなどのようなものを含む、あらゆる数の方法で実現することができる。更に、チャット・イニシエータ１０４およびチャット招待客１０６は、人間のユーザー、自動化ユーザー（例えば、「ボット」）、または人間のユーザーおよび自動化ユーザーの組み合わせのようなエンティティによって動作させることもできる。環境１００におけるエンティティはネットワーク（群）１０８を通じて接続され、互いに通信することができる。ネットワーク（群）１０８は、限定ではなく、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、および都市エリア・ネットワーク（ＭＡＮ）を含むことができる。更に、ネットワーク（群）１０８は、ワイヤレス・ネットワーク、有線ネットワーク、またはその組み合わせを表す。
【００１２】
プロファイル・サーバー１０２は、システム・メモリー１１２に結合されている１つ又は複数のプロセッサー（群）１１０を含む。プロセッサー（群）１１０は、例えば、マイクロプロセッサー、マイクロコントローラー、マルチコア・プロセッサーなどを含むことができる。プロセッサー（群）１１０は、システム・メモリー１１２に格納されているコンピューター・プログラム命令を読み出して実行するように構成されている。システム・メモリー１１２は、ランダム・アクセス・メモリー（ＲＡＭ）のような揮発性メモリー、および／またはリード・オンリー・メモリー（ＲＯＭ）またはフラッシュＲＡＭのような不揮発性メモリーの形態とした、コンピューター読み取り可能媒体を含む。入力／出力コンポーネント１１４（例えば、マウスおよびキーボード）は、プロファイル・サーバー１０２にデータ入力および出力機能(capabilities)を設ける。
【００１３】
また、プロファイル・サーバー１０２は、チャット・ユーザーのオンライン・チャット言動を追跡、分析、および格納する種々のコンポーネントも含む。これらのコンポーネントには、チャット要求モジュール１１６、チャット・キュー１１８、タイマー・モジュール１２０、フィードバック・モジュール１２２、テキスト分析モジュール１２４、およびチャレンジ発生器(challenge generator)１２６が含まれる。チャット要求モジュール１１６は、クエリーを処理して、チャット・ユーザーが新たなチャット・スレッドを開くことを許可されているか否か判断する。チャット・キュー１１８は、チャット・ユーザーのオープン・チャット・スレッドを追跡する。一例では、オープン・チャット・スレッドが作成されるのは、チャット・イニシエータ１０４が紹介をチャット招待客１０６に送り、この招待客にオンライン・チャット・セッションを開始するように促したときである。チャット・スレッドが閉じられるのは、チャット招待客が招待に回答したとき、またはオープン・チャット・スレッドが時間切れになったときである。
【００１４】
タイマー・モジュール１２０は、チャット会話の時間的側面を追跡する。例えば、タイマー・モジュール１２０は、個々のチャット・スレッドがチャット・キュー１１８においてどの位の時間開いていたかまたは保留になっていたか計時することができる。フィードバック・モジュール１２２は、チャット・サービス・ユーザーについてのフィードバックを請求および／または受信するように構成されている。テキスト分析モジュール１２４は、チャット会話の間に発生したテキストを分析するように構成されている。チャレンジ発生器１２６は、チャット・サービス・ユーザーの素性（例えば、チャット・サービス・ユーザーが人間のエンティティであり、ボットのような、自動化ＳＰＩＭ発生器ではないこと）を検証および／認証するために用いることができるチャレンジを発生および／または送信するように構成されている。プロファイル・サーバー１０２のこれらの態様およびコンポーネントについては、以下で更に詳しく論ずる。
【００１５】
チャット・セッションを提案する(initiate)には、チャット・イニシエータ１０４が、当該チャット・イニシエータがチャット招待をチャット招待客１０６に送ることによって、新たなチャット・セッションを開始したいという指示を与える。一例では、これは、チャット・イニシエータ１０４上に表示されるチャット・ユーザー・インターフェースとのユーザー対話を通じて行われる。
【００１６】
チャット・セッション提案プロセスの一部として、チャット・イニシエータ１０４は、プロファイル・サーバー１０２に照会して、チャット・イニシエータ１０４が新たなチャット・セッションを提案することを許されているか否か判断する。チャット要求モジュール１１６は、プロファイル・サーバー１０２上でこの照会を受信し、チャット・イニシエータ１０４がチャット・キュー１１８の中に何らかのオープン・チャット・スレッドを有するか否か判断する。チャット・イニシエータ１０４がチャット・キュー１１８の中に閾値数のオープン・チャット・スレッドを既に蓄積している場合、プロファイル・サーバー１０２は、このチャット・イニシエータは既にチャット・スレッドの閾値数に達しており、新たなチャット・スレッドを全く開くことができないことを、チャット・イニシエータ１０４に示す。
【００１７】
チャット要求モジュール１１６が、チャット・イニシエータ１０４によって提案されたオープン・チャット・スレッドの数が閾値量よりも下であると判断した場合、チャット要求モジュールは、チャット・イニシエータ１０４が新たなチャット会話を開始してもよいことを示す。チャット・イニシエータ１０４によって提案されたチャット招待は、チャット招待客１０６に転送され、このチャット招待に付随する新たなオープン・チャット・スレッドがチャット・キュー１１８に記録される。実施態様によっては、チャット招待を、チャット招待客１０６と関連のある接続サーバーに送り、次いで接続サーバーがチャット招待をチャット招待客に転送する場合もある。
【００１８】
タイマー・モジュール１２０は、新たなチャット・スレッドの通知を受け、そのチャット・スレッドがチャット・キューにおいて開いている時間を追跡する。チャット招待客１０６は、チャット・イニシエータ１０４に回答することによって、チャット招待を受け入れることができ、あるいはチャット招待客はこの招待を無視してもよい。チャット招待客がチャット招待に回答した場合、プロファイル・サーバー１０２には、チャット招待が回答を受けたことが通知され、オープン・チャット・スレッドは閉鎖された（即ち、「承認された」）ものとして指定され、そのスレッドはチャット・キュー１１８から取り除かれる。チャット招待客１０６がチャット招待に回答しない場合、オープン・チャット・スレッドはチャット・キューの中に残り、タイマー・モジュール１２０によって追跡される「開放時間」を蓄積する。オープン・チャット・スレッドが閾値開放時間（または「保留時間」）に達したかまたはこれを超過した場合、チャット・スレッドは時間切れとなり、チャット招待はチャット招待客１０６から引き上げられる。次いで、このオープン・チャット・スレッドはチャット・キュー１１８から取り除かれる。
【００１９】
図２は、チャット・キュー１１８の一例を、２００で示す。チャット・キュー１１８は、ユーザーのオンライン・チャット言動の様々な側面を追跡する会話表２０２を含む。２０４に示すように、会話表２０２は、特定のチャット・ユーザーを識別するエンティティ識別子を含む。メディア・アクセス制御（ＭＡＣ）アドレス、チャット・エリアス、インターネット・プロトコル（ＩＰ）アドレス等のような、適した識別子であればいずれでも用いることができる。２０６に示すように、会話表２０２は、オープン・チャット・スレッド毎にスレッド数を追跡するフィールド、各チャット・スレッドが開いたときを示す開始時間、および各チャット・スレッドが時間切れとなるときを示す時間切れ時刻を含む。この例における時間切れフィールドは、１０分という時間切れ期間を示すが、これは例を目的にするに過ぎず、時間切れ期間は、適した時間長であればいずれにでも設定することができる。更に、各オープン・チャット・スレッドは異なる時間切れ期間を有してもよい。データ・レコード２０８は、オープン・チャット・スレッドについてのデータを追跡する一例を例示する。図示のように、このレコードは、１３：４５：０１に開き、１３：５５：０１に時間切れとなるチャット・スレッドＮｏ．１について示している。このオープン・チャット・スレッドが１３：５５：０１よりも前に回答を受け取った場合、このスレッドは会話表から取り除かれる。そうでなければ、このオープン・チャット・スレッドは１３：５５：０１に時間切れとなり、その時刻以降にキューから取り除かれる。
【００２０】
プロセス例
この章では、図１および図２も付加的に参照しながらプロセス例について説明する。これらのプロセスは、先に示した環境１００のコンテキストで説明するが、それは便宜上に過ぎず、これらのプロセスはネットワーク状に接続したコンポーネントのその他のシステムや環境にも広く適用可能である。
【００２１】
図３は、新たなチャット会話を開始するプロセスの全体像を提示し、図４は、チャット会話開始および監視プロセスの特定的な態様を示す。図５は、チャット・サービスがＳＰＩＭを抑制することを可能にするユーザー・フィードバックの組み込みを示し、図６は、ユーザーがチャット・サービスを通じてＳＰＩＭを送信しているか否か判断するためのテキスト分析の組み込みを示す。図７は、チャット・サービスを通じたＳＰＩＭおよびその他の不適切なコンテンツの増殖を抑制するためにレート制限、ユーザー・フィードバック、およびテキスト分析を組み合わせるプロセスを示す。
【００２２】
図示のプロセスは、コンピューター実行可能命令という一般的なコンテキストにおいて説明することができ、論理フローチャートにおけるブロックの集合体として示されている。これらのフローチャートは、ハードウェア、ソフトウェア、またはその組み合わせで実現することができる一連の動作を表す。一般に、コンピューター実行可能命令は、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、関数等を含むことができ、これらは特定の関数を実行するか、または特定の抽象データ・タイプを実装する。また、本プロセスは分散型計算環境において実用化することもでき、その場合、通信リンクを通じて連結されているリモート処理デバイスによって機能を実行する。分散型計算環境では、コンピューター実行可能命令は、メモリー記憶デバイスを含む、ローカルおよびリモート双方のコンピューター記憶媒体に配置することができる。
【００２３】
図３は、新たなチャット会話を開始するプロセスの一例を、３００で示す。３０２において、ユーザーは、新たなチャット会話を開始する要求を起こす。一例では、行為３０２は、ユーザーが別のユーザー（「招待客」）に、このユーザーとチャットを行うチャット招待を送ったことに応答する。３０３４において、プロファイル・サーバーに照会して、このユーザーが、新たなチャット会話を開始するために用いることができる、何らかの利用可能なチャット・スレッドを有するか否か判断する。３０６において、プロファイル・サーバーは、ユーザーが現在有しているオープン・チャット・スレッドの数を判定する。先に論じたように、チャット要求モジュール１１６は、チャット・キュー１１８をチェックしてユーザーが開始したオープン・チャット・スレッドを調べることによって、この判定を行うことができる。
【００２４】
３０８において、プロファイル・サーバーは、ユーザーが現在有しているオープン・チャット・スレッドの数を閾値数と比較することによって、ユーザーが何らかの利用可能なチャット・スレッドを有するか否か判断する。例えば、ユーザーは、いずれの所与の時点においても保留中のオープン・チャット・スレッドを１０個有することが許されている（即ち、閾値数は１０に等しい）。ユーザーが１０個未満のオープン・チャット・スレッドを有する場合、ユーザーは新たなチャット・スレッドを開き、新たなチャット会話を始めることが許される。そうではなく、ユーザーが１０個よりも多い保留中のチャット・スレッドを有する場合、ユーザーは新たなチャット・スレッドを開くことを許されない。この想定場面は、一例を目的として紹介するに過ぎず、個々のユーザーに対するオープン・チャット・スレッドの閾値数は、適した数であればいずれにでも設定することができる。
【００２５】
ユーザーに利用可能なチャット・スレッドがない（即ち、ユーザーのチャット・スレッドが既に閾値数に達しているまたはこれを超過している）場合、３１０において、プロファイル・サーバーは、ユーザーが閾値数のオープン・チャット・スレッド（即ち、保留中のチャット会話）に達しているので、ユーザーは新たなチャット会話を開始できないことをユーザーに通知する。
【００２６】
ユーザーに利用可能なチャット・スレッドがある場合、３１２において、プロファイル・サーバーは新たなチャット・スレッドをチャット・キューの中に記録する。ステップ３１４において、プロファイル・サーバーは新たなチャット・スレッドを提案する。３１６において、元のチャット招待を招待客に転送する。次いで、招待客はこのチャット招待に応答する、またはこれを無視することもできる。
【００２７】
図４は、図３に示したプロセスの別の態様を、４００で示す。３１６において、チャット招待を招待客に転送する。４０２において、招待客が、招待に回答することによって、ユーザーとチャットを行う招待を受け入れたか否か判断する。招待客が招待に回答した場合、４０４において、ユーザーと招待客との間でチャット・セッションを確立する。一実施態様では、これは、招待客がユーザーとチャットを行うことに同意したことを意味する。４０６において、オープン・チャット・スレッドは閉鎖されたと見なされ、このスレッドはチャット・キューから取り除かれる。
【００２８】
実施態様によっては、ユーザーがチャット招待に回答した場合、このチャット招待はＳＰＩＭではないと見なされる。つまり、回答を受けたチャット招待はチャット・キューから取り除かれ、チャット・ユーザーのオープン・チャット・スレッドの閾値数にとって不利に作用することはない。オープン・チャット・スレッドがＳＰＩＭでないと判断し、そのオープン・チャット・スレッドをチャット・キューから取り除くために、ユーザー・フィードバックおよびテキスト分析というような、他の方法も設けることができる。これらの技法については、以下で更に詳しく論ずる。
【００２９】
招待客が招待に回答していない場合、４０８において、ユーザーが提案したオープン・チャット・スレッドは時間切れになったと判断する。先に論じたように、プロファイル・サーバー上のタイマー・モジュールは、チャット・キューの中にあるオープン・チャット・スレッド毎に、保留時間を追跡する。各チャット・ユーザーおよび／または各オープン・チャット・スレッドには、保留時間または時間が割り当てられており、それを過ぎると、オープン・チャット・スレッドは時間切れとなり、チャット招待は取り下げられる。オープン・チャット・スレッドが時間切れになると、そのスレッドはチャット・キューから取り除かれ、チャット招待はチャット招待客にとってもはや保留ではなくなる。
【００３０】
オープン・チャット・スレッドが未だ時間切れになっていない場合、プロセスは４０２に戻り、招待客がチャット招待に回答したか否か判断する。オープン・チャット・スレッドが時間切れとなった場合、４１０において、チャット招待を招待客から引き上げる。４０６において、オープン・チャット・スレッドは閉鎖されたと見なし、そのスレッドをチャット・キューから取り除く。
【００３１】
図５は、ユーザー・フィードバックをチャット環境に組み込むプロセスの一例を、５００で示す。プロセス５００は、先に論じたプロセス３００を参照しながら論ずることとし、ＳＰＩＭのような望まれないチャット活動の増殖を抑制するために、他の論じたプロセスおよび技法と組み合わせることもできる。本プロセスは、フィードバック・モジュール１２２のような、フィードバック・モジュールによって全体的または部分的に実施することができる。
【００３２】
３１６において、チャット招待を招待客に転送する。５０２において、招待客（群）、および／またはユーザーのチャット言動に関与するその他のチャット・ユーザーからフィードバックを受け取る。このフィードバックは、ユーザーの格付けのような、定性的データを含むことができる。つまり、フィードバックは、性質上、肯定的、中立、および否定的である可能性がある。このフィードバックによって、チャット・サービスはチャット・ユーザーを追跡し、ある種のチャット・ユーザーが、ＳＰＩＭまたはその他の不適切なコンテンツを他のチャット・ユーザーに送るというような、不適切なチャット言動に関与しているか否か判断することが可能となる。例えば、チャット・サービスは、チャット・ユーザーに他のチャット・ユーザーについてのフィードバックを提出させるチャット・ユーザー・インターフェースの一部として、フィードバック・メカニズムを設けることができる。チャット・ユーザー・インターフェースは、「非請求広告を送ったことによりこのユーザーにフラグを立てる」、「不適切なコンテンツを送ったことにより、このユーザーにフラグを立てる」、またはユーザーがフィードバックをチャット・サービスに送ることができるようにするその他の何らかのメカニズムというように、否定的フィードバックに対して選択肢を指定することができる。
【００３３】
５０４において、ユーザーに関連のある否定的フィードバックが閾値量だけ受け取られたか否か判断する。閾値量の否定的フィードバックは、否定的応答の閾値レベルに達したユーザーと関連のあるフィードバックで構成することもできる。チャット・サービスは、特定のチャット・ユーザーが、ある処置が講じられる前に、受けることができる否定的フィードバック応答の数に対して、閾値を設定することができる。例えば、チャット・サービスは、個々のチャット・ユーザーが２０回の否定的応答を受け取ることができ、その後にチャット・サービスは、そのユーザーのチャット特権を制限するおよび／または剥奪すべきか否か判断するための処置を講ずることを指定することができる。
【００３４】
ユーザーと関連のある否定的フィードバックが閾値量だけ受け取られていないと判断した場合、５０６において、ユーザーはチャット会話を提案し続けることができる。ユーザーと関連のある否定的フィードバックが閾値量だけ受け取られたと判断した場合、５０８において、チャット・サービスは、チャレンジを発生してユーザーに送信し、そのユーザーが人間のユーザーか、またはチャット・コンテンツ（例えば、ＳＰＩＭ）を他のチャット・ユーザーに自動的に送信するように構成されている、何らかの種類の自動化ユーザー（例えば、ボット）か判断する。行為５０８は、チャレンジ発生器１２６のような、チャレンジ発生器によって全体的または部分的に実現することができる。
【００３５】
チャレンジの一例に、人間対話証明（ＨＩＰ：human interactive proof）チャレンジがある。ＨＩＰチャレンジは、ユーザーが人間であるか否か判断するために計算システムにおいて用いられる、一種のチャレンジ−応答検査である。一例では、ユーザーに単語および／または画像を提示し、その単語および／または画像を特定するようにユーザーに要求する。単語および／または画像は歪んでおり、従前からのコンピューター実装テキストおよび画像認識方法では、その単語および／または画像を認識することができないが、殆どの人間のユーザーであればその画像を認識することができるようになっている。つまり、殆どの人間はＨＩＰチャレンジに正しく応答することができるが、コンピューターはできない。ＨＩＰチャレンジの一例では、チャット・ユーザーに時計面板の画像を提示し、時計面板画像上にある時計の針の位置が表す時刻を教えるように、ユーザーに要求する。殆どのコンピューター実装画像認識技法は、このチャレンジを解釈して正しい答えを与える程十分に精巧化されていないが、殆どの人間のユーザーは、難なくこの質問に正しく答えることができる。
【００３６】
５１０において、ユーザーがチャレンジに正しく答えたか否か判断する。ユーザーが正しくチャレンジに答えた場合、５０６において、ユーザーはチャット会話を提案し続けることができる。ユーザーがチャレンジに正しく答え損ねた場合、５１２において、ユーザーのチャット特権を制限するかまたは無効にする。一例では、ユーザーは、それ以上いかなるチャット会話も開始することが禁止される。チャレンジに正しく答え損ねたことに応答して、別のチャレンジを提出してユーザーに正しい答えを与える追加の機会を与える、あるいはある種の懇願プロセスを起動して、これによってユーザーがチャット・サービスと対話し、ユーザーが人間のエンティティであること、および／またはユーザーがＳＰＩＭやその他の不適切なコンテンツをチャット・サービスを通じて送信していないことを検証しようとする更に別の手順を行えるようにするというような、別の処置を講じてもよい。
【００３７】
ユーザーが有することができるオープン・チャット・スレッドの数を制限する、先に論じたプロセスを、ユーザー・フィードバック・プロセスと組み合わせることによって、スピマーがＳＰＩＭを送るレートを遅くさせ、こうしてユーザー・フィードバック・システムが、ＳＰＩＭ増殖を極力抑えつつ、潜在的なスピマーを特定する能力を高めることを、チャット・サービスに可能にさせることができる。
【００３８】
潜在的なスピマーを特定することに加えて、ユーザー・フィードバック・システムは、ＳＰＩＭではないチャット・スレッド、およびスピマーではないチャット・ユーザーを特定するために用いることができる場合もある。例えば、ユーザーがＳＰＩＭを送っていないことを示す肯定的フィードバックをチャット・サービスが受け取った場合、このユーザーに合法的ユーザー（即ち、「非スピマー」）のフラグを立てることができる。このようなフィードバックは、他のチャット・ユーザーから収集することができ、「このユーザーに合法的のフラグと立てる」または「このユーザーに非スピマーのフラグを立てる」というような入力を含むことができる。肯定的フィードバックの閾値量に基づいて、チャット・サービスは、これらのユーザーのオープン・チャット・スレッド閾値を高めることを許容することができる。即ち、ある閾値レベルの肯定的フィードバック（例えば、２５以上）に達したユーザーには、彼らが以前に有していたより、および／またはその他のチャット・ユーザーが有するより、多い保留チャット・スレッドを有することができる許可を付与することができる。
【００３９】
図６は、チャット・ユーザーがＳＰＩＭまたはその他の不適切なコンテンツをチャット・サービスを通じて送信しているか否か判断するために、チャット会話の間に発生したテキストを分析するプロセスの一例を、６００で示す。プロセス６００については、先に論じたプロセス３００を参照しながら論ずるが、ＳＰＩＭのような望まれないチャット活動の増殖を抑制するために、他の論じたプロセスおよび技法と組み合わせることもできる。本プロセスは、テキスト分析モジュール１２４のような、テキスト分析モジュールによって全体的または部分的に実現することができる。
【００４０】
３１６において、チャット招待を招待客に転送する。６０２において、チャット・ユーザーがチャット活動中に発生したチャット・テキストを取り込む。このチャット・テキストは、初期チャット招待から、および／またはその結果得られたチャット会話から取り込むことができる。６０４において、いずれかの適したテキスト分析技法を用いて、このチャット・テキストを分析する。チャット・テキストを分析して、ユーザーがＳＰＩＭまたはその他の不適切なコンテンツを送っていることを示す単語および／または単語の集合体があることを見いだせればよい。
【００４１】
６０６において、テキストの分析により、チャット・テキストの中に何らかの問題となるチャット・コンテンツがあることが示されたか否か判断する。問題となるチャット・コンテンツは、当該チャット・テキストが潜在的にＳＰＩＭおよび／またはその他の不適切なコンテンツであることを示す単語または単語の集合体を含む。例えば、テキスト分析技法が多数の単語および／または単語集合体を有し、これらを用いてチャット・テキストを検索することができる。チャット・テキストの特定の区間においてこれらの単語および／または単語集合体を発見した場合、この技法はこのチャット・テキストにＳＰＩＭのフラグを立てる。問題となるようなチャット会話コンテンツが検出されない場合、６０８において、チャット・ユーザーはチャット会話を提案し続けることができる。また、テキスト分析は、個々のユーザーにスピマーのフラグを立てる前にそのユーザーが達することができる閾値量を、問題となるチャット・コンテンツに設けることもできる。
【００４２】
問題となるチャット・コンテントが検出された場合、６１０において、チャレンジ（例えば、ＨＩＰチャレンジ）を発生し、問題となるチャット・コンテンツが発生した元であるユーザーに宛てて送信する。チャレンジを発生し送信するプロセスおよび技法については、先に論じた。６１２において、ユーザーがチャレンジに正しく答えたか否か判断する。ユーザーがチャレンジに正しく答えた場合、６０８において、ユーザーはチャット会話を提案し続け、それに参加することができる。実施態様によっては、ユーザーのチャット会話において問題となるチャット・コンテンツが検出されたこと、およびユーザーがＳＰＩＭまたはその他の不適切なコンテンツをチャット・サービスを用いて送信していると判断した場合、そのユーザーのチャット特権を制限するまたは無効にする場合もあることを、ユーザーに警告してもよい。
【００４３】
ユーザーがチャレンジに正しく答え損ねた場合、６１４において、ユーザーのチャット特権を制限するか、または無効にする。一例では、ユーザーはそれ以上チャット会話を提案することを禁止される。チャレンジに正しく答え損ねたことに応答して、別のチャレンジを提出してユーザーに正しい答えを与える追加の機会を与える、あるいはある種の懇願プロセスを開始して、これによってこのユーザーがチャット・サービスと対話し、ユーザーが人間のエンティティであること、および／またはユーザーがＳＰＩＭやその他の不適切なコンテンツをチャット・サービスを通じて送信していないことを検証しようとする更に別の手順を行えるようにするというような、別の処置を講じてもよい。
【００４４】
また、テキスト分析は、ＳＰＩＭを送っていないユーザーを識別するために用いることもできる。チャット・サービスは、チャット・ユーザーから発信したチャット・テキスト（例えば、招待客に対するチャット招待）についてテキスト分析を実行することができ、問題のあるテキストがないとチャット・サービスが判断した場合、チャット・サービスはそのチャット・コンテンツに「非ＳＰＩＭ」のフラグを立てることができる。チャット・キューの中にあるオープン・チャット・スレッドからチャット・コンテンツを取り込んだ場合、チャット・サービスはそのチャット・スレッドをチャット・キューから取り除くことができる。つまり、「非ＳＰＩＭ」のフラグが立てられたチャット・スレッドは、そのユーザーのオープン・チャット・スレッドの閾値量に不利に作用することはない。
【００４５】
図７は、チャット環境においてＳＰＩＭを検出し、ＳＰＩＭおよびその他の不適切なコンテンツの増殖を低減するために、レート制限、ユーザー・フィードバック、およびテキスト分析の組み合わせを利用するプロセスの一例を、７００で示す。本プロセスは、既に論じたプロセスのいずれともまたは全てと連携して用いること、またはこれらと組み合わせることもできる。
【００４６】
７０２において、特定の閾値にしたがって、所与の時間期間においてユーザーが有することができるオープン・チャット・スレッドの数を制限する。これは、チャット・ユーザーが所与の時間枠の間に提案することができる新たなチャット会話（例えば、新たなチャット招待）の数を制限する、レート・リミッタとしての役割を果たす。７０４において、ユーザーと関連のあるフィードバックを分析して、そのユーザーがチャット・サービスを用いてＳＰＩＭまたはその他の不適切なコンテンツを送信していることを、フィードバックの性質および／または量が示しているか否か判断する。７０６において、ユーザーが発生したチャット・テキストを分析して、ユーザーがチャット・サービスを用いてＳＰＩＭまたはその他の不適切なコンテンツを送信していることを示す単語および／または単語パターンがないか確かめる。
【００４７】
７０８において、ユーザー・フィードバックおよび／またはテキスト分析が、ユーザーがチャット・サービスを用いてＳＰＩＭまたはその他の不適切なコンテンツを送信しているかもしれないことを示すか否か判断する。ユーザー・フィードバックおよび／またはテキスト分析が十分な否定的フィードバックおよび／または問題のあるチャット・テキストを示していない場合、７１０において、ユーザーに引き続きチャット会話を提案し、これに加わることを許可する。ユーザー・フィードバックおよび／またはテキスト分析が十分な否定的フィードバックおよび／または問題のあるチャット・テキストを示す場合、７１２において、認証手順を実施して、ユーザーが人間のユーザーであること、そしてこのユーザーはチャット・サービスを用いてＳＰＩＭやその他の不適切なコンテンツを送信していないことを確認する。認証手順の一例では、先に論じたように、チャレンジをユーザーに送信する。ユーザーが認証手順で不合格になった場合、このユーザーのチャット会話を提案する許可、および／またはそれ以外でチャット会話に参加する許可を制限するまたは無効にすることができる。
【００４８】
以上で論じた例では、ユーザー・フィードバックおよびテキスト分析技法は、チャット・サービスを用いてＳＰＩＭを配布している潜在的可能性があるユーザーを検出する方法を提供する。更に、レート制限の態様は、スピマーを特定し、このスピマーがチャット・ユーザーにＳＰＩＭを殺到させることができるようになる前に、スピマーがＳＰＩＭを配布するのを防止する（例えば、スピマーのチャット特権を抑制するまたは無効にすることによって）時間を、ユーザー・フィードバックおよびテキスト分析技法に与えることによって、これらの技法を改良する。
【００４９】
以上、種々の例示的なデバイスおよび動作実施態様について説明したが、これらの実施態様のコンポーネント、モジュール、および機構は、状況に応じて、配置しなおすこと、修正することもでき、および／または全体的に省略することもできる。
【００５０】
また、本方法におけるある種の行為は、記載された順序で実行する必要はなく、状況に応じて、配置しなおすこと、修正することもでき、および／または全体的に省略することもできることは言うまでもない。
【００５１】
更に、いずれの方法に関して先に説明した行為のいずれでも、１つ又は複数のコンピューター読み取り可能媒体上に格納されている命令に基づいて、プロセッサーまたはその他の計算デバイスによって実現することができる。コンピューター読み取り可能媒体は、リソース・モデリング・アプリケーションによってローカルにまたはリモートにアクセスすることができる、入手可能な媒体であればいずれでも可能である。限定ではない一例として、コンピューター読み取り可能媒体は、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、またはその他のデータというような、情報格納のためのいずれの方法または技術においても実施される揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含むことができる。コンピューター読み取り可能媒体は、限定ではなく、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたはその他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、またはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができ、リソース・モデリング・アプリケーションによってアクセスすることができるその他のいずれの媒体も含む。前述した媒体のいずれの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
【００５２】
結論
以上、構造的特徴および／または方法論的行為に特定的なことばで、本発明について説明したが、本発明は、記載した特定的な特徴や行為には必ずしも限定されないことは言うまでもない。逆に、これらの特定的な特徴や行為は、本発明を実現する例示的形態として開示したに過ぎない。
【図１】
2011238249.tif 000003
【図２】
2011238249.tif 000004
【図３】
2011238249.tif 000005
【図４】
2011238249.tif 000006
【図５】
2011238249.tif 000007
【図６】
2011238249.tif 000008
【図７】
2011238249.tif 000009