(58)【調査した分野】(Int.Cl.,DB名)
前記第1のグループは、前記第1のユーザと、前記第1のユーザとチャットしている第2のユーザとを含み、前記第2のグループは、前記第1のユーザを含むチャット・グループを含み、前記共通部分商は、以下の:
前記第1のグループ及び前記第2のグループ内で話される現在のトピックの間の相関、
前記第1のグループ及び前記第2のグループのチャット・アクティブ時間の間の相関、
の少なくとも1つに関連する、請求項1に記載の方法。
前記第1のグループは、前記第1のユーザを含む第1のチャット・グループを含み、前記第2のグループは、前記第1のユーザを含む第2のチャット・グループを含み、前記共通部分商は、以下の:
前記第1のグループ及び第2のグループ内の共通メンバーの数、
前記第1のグループ及び前記第2のグループ内で話される現在のトピックの間の相関、
前記第1のグループ及び前記第2のグループ内で話される履歴トピックの間の相関、
前記第1のグループ及び前記第2のグループのチャット・アクティブ時間の間の相関、
の少なくとも1つに関連する、請求項1に記載の方法。
【発明を実施するための形態】
【0009】
図面の全体を通して、同一又は類似の参照番号は、同一又は類似の要素を表す。
【0010】
ここで幾つかの例示的な実施形態を参照して、本開示を説明する。これらの実施形態は、説明のためだけに記載されたものであり、本開示の範囲に関するいずれの制限も示唆することなく、当業者が、本開示を理解し、実施するのを助けることを理解すべきである。本明細書に記載される開示は、以下に記載されるもの以外の種々の方法で実施することができる。
【0011】
本明細書で使用される場合、「含む(include)」という用語及びその変形は、「含むが、それらに限定されない」ことを意味する、非限定用語(opened term)として解釈すべきである。「基づく(based on)」という用語は、「少なくとも部分的に基づく」と解釈すべきである。「1つの実施形態」及び「実施形態」という用語は、「少なくとも1つの実施形態」と解釈すべきである。「別の実施形態」という用語は、「少なくとも1つの他の実施形態」と解釈すべきである。他の定義は、明示的及び暗黙的に下記に含まれ得る。
【0012】
最初に、本開示の実施形態を実施するのに適用可能な例示的な電子デバイス又はコンピュータ・システム/サーバ12が示される、
図1を参照する。コンピュータ・システム/サーバ12は、単なる例示であり、本明細書に説明される本開示の実施形態の使用又は機能の範囲に関していかなる限定を示唆することも意図しない。
【0013】
図1に示されるように、コンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ12のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ又は処理ユニット16と、システム・メモリ28と、システム・メモリ28を含む種々のシステム・コンポーネントをプロセッサ16に結合するバス18とを含むことができる。
【0014】
バス18は、種々のバス・アーキテクチャのいずれかを使用する、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及びプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のいずれかのうちの1つ又は複数を表す。限定ではなく例として、このようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture、ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ電子装置規格化協会(Video Electronics Standards Association、VESA)ローカル・バス、及び周辺部品相互接続(Peripheral Component Interconnect、PCI)バスを含む。
【0015】
コンピュータ・システム/サーバ12は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12によりアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不可能媒体の両方とを含む。
【0016】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30及び/又はキャッシュ・メモリ32のような、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ・システム34を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピィ・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブと、CD−ROM、DVD−ROM又は他の光媒体のような取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例では、各々は、1つ又は複数のデータ媒体インターフェースによってバス18に接続することができる。以下でさらに示され、説明されるように、メモリ28は、本開示の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
【0017】
限定ではなく例として、メモリ28内に、プログラム・モジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40、並びにオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの幾つかの組み合わせの各々は、ネットワーキング環境の実装を含むことができる。プログラム・モジュール42は、一般に、本明細書で説明されるような本開示の実施形態の機能及び/又は方法を実行する。
【0018】
コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイス、ディスプレイ24等といった1つ又は複数の外部デバイス14;ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つ又は複数のデバイス;及び/又は、コンピュータ・システム/サーバ12が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワーク・カード、モデム等)と通信することもできる。このような通信は、入力/出力(I/O)インターフェース22を介して行うことができる。さらに、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと通信することができる。示されるように、ネットワーク・アダプタ20は、バス18を介して、コンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示されないが、コンピュータ・システム/サーバ12と共に他のハードウェア及び/又はソフトウェア・コンポーネントを使用できることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システム等が挙げられる。
【0019】
幾つかのシナリオにおいて、ユーザは、グループ又はセッションを頻繁に切り替える必要がないように、複数のグループ(グループは、1又は複数のメンバーから成り得る)又はセッションを1つのセッションに併合したいと望むことがある。例えば、ユーザは、必ずしも各グループにわたって同じステートメントを個々に繰り返すことを望まない共通のテーマを共有しているため、ユーザが、これらのグループを結合することを望むことがある。
【0020】
図2は、インスタント・メッセージング・クライアント200における2つのチャット・ウィンドウ210及び220を示す。一般に、ユーザは、両方のチャット・ウィンドウを同時に見ることができないことに留意されたい。しかしながら、他の例では、ユーザは、それらを同時に見ることができる。この説明のため、特定の個人及びグループを参照する。しかしながら、個人及びグループの名前は、単に、本明細書で提示される概念に従う際の読み手の便宜のために与えられるものである。アリス(Allice)とアンは友達であり、ボブ(Bob)とアンは友達であるが、アリスとボブは友達ではない、第1の例がある。アリスもボブも、異なるチャット・ウィンドウ(それぞれウィンドウ210及び220)で、アンの米国旅行についてアンに挨拶している。アンが、ボブをアリスのセッションに加えるなど、2つのセッションを併合して1つの物理的グループにした場合、アリスとボブの両方とも、全てのチャット内容を見ることができ、互いに知り合うこともできる。しかしながら、例えば、プライバシーの問題のため、アリス及び/又はボブが、同じグループ内にいることが心地よくないことがある。従って、アリス又はボブは、彼らが同じグループ内にいないかのように自由に話すことができない。そのため、アンは彼らを物理的グループに併合しない。従って、アンは、2つのチャット・ウィンドウを切り替え、同じ質問に2度答えなければならない。
【0021】
図3は、アンが関与するチャットの第2の例を示す。この例において、アンは、ウィンドウ310においてココ(Coco)と、そして、ウィンドウ320において母親のグループとチャットしている。この例では、ココとアンは友達であり、アンは、母親グループ(Mother group)と名付けられたグループ内にいるが、ココは、母親グループ内にいない。ココ及び母親グループ内のメンバーは皆、最近アンの赤ちゃんが風邪をひいたため、アンの赤ちゃんを心配しており、アンにアドバスを与えている。アンが、ココを母親グループに加えるなど、2つのセッションを併合して1つの物理的グループにした場合、ココは、母親グループ内の全てのチャット内容を見ることができる。幾つかのシナリオにおいては、母親グループは、そのメンバーが同じ部門で働いている特定のグループである一方、ココは、その部門のメンバーではなく、アンがココを母親グループに加えるのは適切ではない。従って、アンはこの場合も、2つのチャット・ウィンドウを切り替え、同じ質問に二度答えなければならない。
【0022】
図4は、アンが、子育て方法に関連する2つの異なるグループに参加している第3の例を示す。1つは、新米ママ(New mum)グループ(ウィンドウ420)と名付けられたグループ(ウィンドウ410)であり、別のものは、子育て(Raising children)グループと名付けられたグループである。両方のグループは、同様のトピックを論じることが多い。ひとたび両方のグループがアクティブになると、アンは、2つのチャット・ウィンドウを頻繁に切り替え、同じ質問に二度答えなければならない。
【0023】
上述の問題に対処するために、本開示は、インスタント・メッセージング・クライアントにおいて仮想グループを構築するための方法を提供する。
図5は、本開示の幾つかの実施形態による、インスタント・メッセージング・クライアントにおいて仮想グループを構築するための方法500のフローチャートを示す。
【0024】
プロセスは、インスタント・メッセージング・クライアントが仮想グループ構築要求を受信するときに始まる。これはステップ501に示される。このステップにおいて、インスタント・メッセージング・クライアントは、第1のユーザのインスタント・メッセージング・クライアントにおいて、第1のユーザに関連した第1のグループ及び第1のユーザに関連した少なくとも1つの第2のグループについての仮想グループ構築要求を受信する。幾つかの実施形態においては、このステップは随意的なものである。これは、ひとたび特定の条件(単数又は複数)が満たされ、そうした状況において要求が存在しないとき、自動的に仮想グループを構築するように第1のユーザのインスタント・メッセージング・クライアントを構成できるように行い得る。これらの条件は、例えば、同一又は類似の2つ又はそれより多いウィンドウ内に入力される、同一のテキストが所定の時間内にウィンドウに入力される、グループのメンバーにおける特定の重複、又はそれらを関連付けることができること、及びユーザが仮想グループを有することを望み得ることを示すチャット・グループについてのいずれかの他のデータ点を含むことができる。
【0025】
ひととび仮想グループ構築要求を受信すると、プロセスは続行し、仮想グループを構築する。これは、ステップ502に示される。このステップにおいて、インスタント・メッセージング・クライアントは、第1のユーザに関連した第1のグループ、及び第1のユーザに関連した少なくとも1つの第2のグループについての仮想グループを構築する。
【0026】
仮想グループの構築後、プロセスは、メッセージを受信候補に送信する。これは、ステップ503に示される。このステップにおいて、仮想グループ内の第1のユーザからメッセージ及びメッセージの受信者候補を受信することであって、受信者候補は第1のグループ及び/又は少なくとも1つの第2のグループである、受信することに応答して、インスタント・メッセージング・クライアントは、メッセージを受信者候補に送信する。
【0027】
上記の3つの例において、アンのインスタント・メッセージング・クライアントは、アンが第1のユーザであるので、アンのインスタント・メッセージング・クライアントにおいて仮想グループ構築要求を受信することができる。第1の例において、第1のグループは、アン及びアリスを含み、第2のグループは、アン及びボブを含む。第2の例において、第1のグループは、アン及びココを含み、第2のグループは、母親グループ内のメンバーを含む。第3の例において、第1のグループは、新米ママ・グループ内のメンバーを含み、第2のグループは、子育てグループ内のメンバーを含む。
【0028】
幾つかの実施形態において、要求は、代替的に、例えばアンの入力など、第1のユーザの入力により開始される。複数のチャット・セッションがある場合、アンは、1つのウィンドウで全ての既存のセッションを見ることができる。インスタント・メッセージング・クライアントは、ユーザの入力のためのツールを提供できるので、要求を開始することができる。
【0029】
ここで、
図6及び
図7を参照して、ステップ501、502及び503におけるプロセスの議論をさらに詳細に検討する。
図6は、アンのインスタント・メッセージング・クライアント上の第1の例についての例示的なインターフェースを示し、そこで、アンは、アンのクライアントにおいて全ての既存のセッションを見ることができる。第1のグループは、アリスのセッション601として示され、第2のグループは、インターフェースにおけるボブのセッション602として示される。同じく、ケート(Kate)のセッション603も示される。クライアントは、ユーザが併合要求を開始するためのボタン605を提供する。アンが「併合」ボタン605を押した場合、全ての既存のセッションについての全ての選択可能なボタンが示される(ボタン621、622及び623で示される)。このインターフェースにおいて、アンは、アリス及びボブのセッションの両方を選択し、「終了」ボタン625を押す。この時、アンのインスタント・メッセージング・クライアントは、要求を受信し、例えば、
図6に要素635として示される、2つのグループについての仮想グループ−アリス/ボブなどの仮想グループを構築する。仮想グループ635は、アンにより構築されるので、アンのクライアント上で仮想グループを見ることができる。この実施形態において、インスタント・メッセージング・クライアントのみが関係しているが、インスタント・メッセージ・サーバは関係していない。この例は、2つのグループについての仮想グループをどのように構築するかを示すが、アンのインスタント・メッセージング・クライアントは、同じ方法を用いて2つより多いグループについての仮想グループも構築できることを理解されたい。さらに、仮想グループの形成後、追加のグループを仮想グループ635に追加することができる。
【0030】
幾つかの実施形態において、仮想チャット・グループ構築要求が、第1のユーザのインスタント・メッセージング・クライアントにより開始される。他の実施形態において、仮想チャット・グループ構築要求は、インスタント・メッセージ・サーバにより開始される。クライアント又はサーバは、第1のグループ内及び第2のグループ内の全てのチャット内容を保存し、これらのいずれも2つのグループ間の共通部分商(intersection quotient)を計算し、次に、計算された共通部分商を第1の閾値と比較することができる。計算された共通部分商が第1の閾値を満たす場合、クライアント又はサーバは、第1のグループ及び第2のグループについての仮想グループ構築要求をクライアントに送信することができる。
【0031】
図7は、仮想グループを自動識別及び構築するための一連のスクリーン710、720、730を示す。スクリーン・ショットは、アンのインスタント・メッセージング・クライアント又はサーバが2つのグループについての仮想グループ構築要求を開始するときの、第1の例のアンのインターフェースを示す。この例において、クライアント及び/又はサーバは、例えば、計算された共通部分商が第1の閾値を満たすので、2つのセッションが同じトピックについて論じていることを、独自に判断する。次に、クライアント及び/又はサーバは、ユーザに「アリスとのセッション及びボブとのセッションが同じトピックについて話している。これらを併合して仮想グループにしたいか?」と尋ねるウィンドウをセッション内に生成する。ひとたびユーザが「OK」ボタン725を押して要求を確認すると、クライアントは、あたかも2つのセッションについての仮想チャット・グループ構築要求を受信したかのように動作し、仮想グループの構築に進む。代替的に、クライアント又はサーバは、ユーザの確認を要することなく、仮想チャット・グループを直接構築することもできる。クライアント又はサーバの決定は、ユーザの構成によって決まる。
【0032】
幾つかの実施形態において、2つのグループ間の共通部分商は、2つのグループ内で話される現在のトピックの間の相関に関連する。代替的に、2つのグループ間の共通部分商は、2つのグループ内で話される履歴トピックの間の相関に関連する。2つのグループ内で話されるトピックの間の相関は、テキスト文書を予備処理し、キーワードを取り出すことができる、テキスト・マイニング技術及び線形回帰技術を用いて計算できるが、他の技術及び手法を用いることもできる。ここで、既存の技術を用いて、全ての音声メッセージ及び写真メッセージを取り出してテキスト・メッセージにすることができる。1つの実施形態において、テキスト・マイニング技術を用いて、所定の期間中の全てのチャット記録を分析する。次に、2つのグループ間のキーワードを生成し、互いに比較して、2つのグループが同じトピックについて話しているかどうかを判断する。
【0033】
例えば、直近の5つの入力メッセージ、又は10分以内の入力メッセージ、又は2つのグループの各々における入力メッセージ中の1000個のテキスト文字を分析し、そのキーワードを生成する。ここで、共通部分商とは、同じキーワードの数として定められる。次に、同じキーワードの数が、3などの閾値より大きい 場合、インスタント・メッセージング・クライアントは、2つのグループについての仮想グループ構築要求を開始する。
【0034】
幾つかの実施形態において、2つのグループ間の共通部分商は、第1のグループ及び第2のグループにおいてチャットがアクティブであった時間の長さの間の相関に関連する。ここで、共通部分商は、2つのグループの最新入力時間の間の時間差として定められる。クライアント又はサーバは、時間差を計算し、それを閾値と比較する。時間差が所定の閾値を下回る場合、クライアント又はサーバは、クライアントの2つのセッションについての仮想グループ構築要求を開始する。例えば、アリスの最新の入力が今日の10:15AMに行われ、ボブの最新の入力が今日の10:16AMに行われた場合、クライアント又はサーバは、時間差を1分として計算し、これを、2分といった閾値と比較し、時間差が閾値を下回ると判断する。次に、クライアント又はサーバは、クライアントの2つのグループについての仮想グループ構築要求を開始する。
【0035】
幾つかの実施形態において、2つのグループ間の共通部分商は、第1のグループ及び第2のグループにおける共通メンバーの数に関連する。ここで、共通部分商は、第1のグループ及び第2のグループにおける共通メンバーの数として定められる。クライアント又はサーバは、共通メンバーの数を計算し、それを共通メンバーの閾値数と比較する。共通メンバーの数が所定の閾値より大きい場合、クライアント又はサーバは、クライアントの2つのセッションについての仮想グループ構築要求を開始する。例えば、第3の例(
図4)において、新米ママ・グループが15人のメンバーを有し、子育てグループが20人のメンバーを有する場合である。クライアント又はサーバは、各グループの10人のメンバーが共通メンバーであると計算及び判断する。次に、クライアント及び/又はサーバは、例えば10人などの共通メンバーの数を、8などの閾値と比較し、共通メンバーの数が閾値より大きいことを見出す。その結果、クライアント及び/又はサーバは、クライアントの2つのグループについての仮想グループ構築要求を開始する。ここで、共通部分商は、第1のグループ及び第2のグループにおける共通メンバーの百分率とすることもできることを理解されたい。
【0036】
当業者であれば、上記の実施形態の任意の組み合わせに基づいて、共通部分商を定めることもできることを理解することができる。また、共通部分商は、他の方法で定めることもできる。
【0037】
幾つかの実施形態において、第1のユーザが仮想グループの存在を知る必要性があり、その結果、第1のユーザは、仮想グループの1つのチャット・ウィンドウ内で第1のグループ及び/又は少なくとも1つの第2のグループとチャットすることができる。
図8は、アンが使用する仮想グループ635のチャット・ウィンドウを示す。本開示の実施形態によると、ひとたび仮想グループが構築されると、第1のユーザは、仮想グループのチャット・ウィンドウを開く。幾つかの実施形態において、アンのインスタント・メッセージング・クライアントは、第1のグループ又は第2のグループのいずれかのチャット・ウィンドウに基づいて、仮想グループのチャット・ウィンドウを作成する。例えば、
図8の仮想グループのチャット・ウィンドウは、アリスのセッション602のチャット・ウィンドウに基づいているので、アリスのセッションの履歴チャット内容は、仮想グループのチャット・ウィンドウ内に保持されている。幾つかの実施形態において、アンのインスタント・メッセージング・クライアントは、セッションのいずれの履歴チャット内容も含まない仮想グループの新しいチャット・ウィンドウを作成する。随意的に、仮想グループのチャット・ウィンドウ内に、アリスのセッション602からのものであれ又はボブのセッション603からのものであれ、全ての履歴チャット内容が示される。代替的に、仮想グループのチャット・ウィンドウ内に、全ての履歴チャット内容は示されない。仮想グループのチャット・ウィンドウにおいて、アンがメッセージを入力した場合、インスタント・メッセージング・クライアントは、例えば、メッセージの受信者候補の選択など、アンがどのグループに送信するかを、アンに思い起こさせる。次に、アンは、第1のグループのみに送信するためのボタン810、第2のグループにのみ送信するためのボタン820、又は第1のグループ及び第2のグループの両方に送信するためのボタン830を選択することができる。また、ひとたびインスタント・メッセージング・クライアントが、アンの命令に従ってアンの入力メッセージを送信すると、インスタント・メッセージング・クライアントは、チャット・ウィンドウ内のメッセージの下に、「アリスへ」、「ボブへ」、又は「両方へ」といったリマインダ835も提供する。しかしながら、異なる色、フォント等のような他の表示を用いて、誰にメッセージを送信したかに関する情報をアンに提供することができる。
【0038】
再び
図5を参照すると、仮想グループのメンバーから、メッセージが表示される。これは、ステップ504で示される。このステップにおいて、インスタント・メッセージング・クライアントは、仮想グループのメンバーからメッセージを受信することに応答して、仮想グループのチャット・ウィンドウ上に仮想グループのメンバーからのメッセージを表示する。随意的に、インスタント・メッセージング・クライアントは、メッセージが仮想グループの構築前にメッセージを受信しても、仮想グループのチャット・ウィンドウ上に仮想グループのメンバーからのメッセージを表示するので、第1のユーザは、1つのチャット・ウィンドウ内で仮想グループ間の全ての通信履歴を見ることができる。
図8の例において、アリス及びボブからの全てのメッセージが、仮想チャット・ウィンドウ内に示される。チャット・ウィンドウ上に、彼らのさらなるメッセージも示される。
【0039】
幾つかの実施形態において、仮想グループ内の第1のユーザだけが仮想グループの存在を認識するので、他のメンバーは自由にチャットすることができる。従って、全ての仮想グループ関連情報が、第1のユーザのインスタント・メッセージング・クライアント内に保持されるだけであり、インスタント・メッセージング・サーバには送信されない。次に、他のメンバーは、仮想グループの存在を認識しない。それらのインスタント・メッセージング・クライアントは通常どおりに示され、仮想グループ関連情報を、サーバから受信しない。例えば、第1の例において、アンのインスタント・メッセージング・クライアント内にアリス及びボブを含む仮想グループが存在するが、アリス及びボブのクライアントは、仮想グループを知らないので、どちらも、あたかも仮想グループが存在しないかのように、それぞれ自身のチャット・ウィンドウ内でアンとチャットする。
【0040】
幾つかの実施形態において、方法はさらに、他のグループ又は個人を仮想グループに追加することを可能にする。これは、ステップ505に示される。このステップにおいて、インスタント・メッセージング・クライアントは、第1のユーザに関連した少なくとも1つの第3のグループを仮想グループに追加する。また、随意的に、ステップ505は、仮想グループ内の第1のユーザからメッセージ及びメッセージの受信者候補を受信することに応答して、メッセージを受信者候補に送信するステップをさらに含み、受信者候補は、第1のグループ及び/又は少なくとも1つの第2のグループ、又は少なくとも第3のグループである。この方法を用いて、第1のユーザは、単一のチャット・ウィンドウ内で、第1のグループ及び/又は少なくとも1つの第2のグループ及び/又は少なくとも1つの第3のグループとチャットすることができ、仮想グループの中の第1のユーザを除いたメンバーは、仮想グループの存在を認識しない。
【0041】
一例において、ステップ505は、少なくとも1つの第3のグループの仮想グループへの追加要求に応答して実行される。上述のように、ステップは、要求なしにインスタント・メッセージング・クライアント構成に従って自動的に実行され得るので、要求は、随意的なものである。さらに第1の例において、アン、アリス及びボブについての仮想グループが構築されている。アンは、仮想グループ内の友達と自由に話している。この時、アンは、アンディ(Andy)からチャットを受信する。次に、アンのインスタント・メッセージング・クライアントは、アンディのセッション(アンディ及びアンを含む)のグループを仮想グループに追加することができ、一例において、この動作は、こうした要求の受信に応答している。随意的に、要求は、アンの入力により開始される。代替的に、要求は、既存の仮想グループとアンディのセッションとの間の共通部分商を分析することによって、アンのインスタント・メッセージング・クライアント又はサーバにより開始される。上記と同様に、アンは、アリス、ボブ、又はアンディと自由にチャットできるが、アリス、ボブ及びアンディの誰も、仮想グループの存在を認識せず、彼らは、アンが1つの仮想グループ内で3人と話していることを知らず、例えば、アリス、ボブ、又はアンディのインスタント・メッセージング・クライアントは、通常と同じであり、彼らは、自分自身とアンとの間のチャット内容しか見ることができない。
【0042】
幾つかの実施形態において、インスタント・メッセージング・クライアントは、既存の仮想グループの閉鎖を可能にすることができる。これは、ステップ506に示される。このステップにおいて、インスタント・メッセージング・クライアントは、仮想グループ解放要求に応答して、仮想グループを解放(又は閉鎖)する。ひとたび既存の仮想グループが解放されると、仮想グループのチャット・ウィンドウが閉じられる。また、1つの実施形態において、第1のグループ又は第2のグループのチャット・ウィンドウも閉じられる。
【0043】
既存の仮想グループを解放する動作は、仮想グループの既存のチャット・ウィンドウ上の「仮想グループを解放」のようなボタンを押すことによって、第1のユーザにより開始することができる。代替的に、インスタント・メッセージング・クライアント又はサーバにより、機能を開始することができる、これらのどちらも、仮想グループを構築するために使用されたグループ間の共通部分商を計算することができ、次に、計算された共通部分商を第2の閾値と比較することができる。第2の閾値が満たされる場合、機能は、既存の仮想グループ解放要求をインスタント・メッセージグング・クライアントに送信する。さらに、インスタント・メッセージング・クライアントは、閾値が満たされた場合、既存の仮想グループを直接解放し得る。或いは、インスタント・メッセージング・クライアントは、所定の時間内に入力がない場合、既存の仮想グループを直接解放し得る。従って、ステップ506は、第1のグループと少なくとも1つの第2のグループとの間の計算された共通部分商が第2の閾値を満たすことに応答して、仮想グループを解放するステップをさらい含む。例えば、第1の例において、アンは、アン、アリス及びボブについての仮想グループ解放要求を開始することができる。さらに、アンのインスタント・メッセージング・クライアント又はサーバは、2つのグループ間の共通部分商を計算することによって、仮想グループ解放要求を開始することもできる。ひとたびアンのインスタント・メッセージング・クライアントが解放要求を受信すると、仮想グループを解放する。
【0044】
本開示の方法により、インスタント・メッセージング・クライアントは、ユーザのための仮想グループを構築することができ、ユーザは、複数のグループと容易に通信することができ、一方、複数のグループ内の他のメンバーは、仮想グループの存在を認識しないので、彼らはユーザに自由に話すことができる。
【0045】
本開示の1つの実施形態によると、コンピューティング・システムが開示される。コンピューティング・システムは、コンピュータ可読メモリ・ユニットに結合されたコンピュータ・プロセッサを含み、メモリ・ユニットは、コンピュータ・プロセッサにより実行されたとき、方法を実施する命令を含む。方法において、第1のユーザに関連した第1のグループ及び第1のユーザに関連した少なくとも1つの第2のグループについての仮想グループが構築される。また、仮想グループ内の第1のユーザからメッセージ及びメッセージの受信者候補を受信することであって、受信者候補は第1のグループ及び/又は少なくとも1つの第2のグループである、受信することに応答して、メッセージが受信者候補に送信される。従って、第1のユーザは、仮想グループの1つのチャット・ウィンドウ内で、第1のグループ及び/又は少なくとも1つの第2のグループとチャットすることができ、仮想グループの中の第1のユーザを除いたメンバーは、仮想グループの存在を認識しない。1つの実施形態において、仮想グループは、第1のユーザに関連した第1のグループ及び第1のユーザに関連した少なくとも1つの第2のグループについての仮想グループ構築要求に応答して、構築される。要求は、ユーザ、インスタント・メッセージング・クライアント、又はインスタント・メッセージング・サーバからのものとすることができる。別の実施形態において、仮想グループは、所定の条件が満たされることに基づいて、構築される。
【0046】
本開示の1つの実施形態において、第1のユーザに関連した少なくとも1つの第3のグループが仮想グループに追加され、随意的に、実施形態は、仮想グループ内の第1のグループからメッセージ及びメッセージの受信者候補を受信することに応答して、メッセージを受信者候補に送信するステップをさらに含み、受信者候補は、第1のグループ及び/又は少なくとも1つの第2のグループ及び/又は少なくとも第3のグループである。従って、第1のユーザは、仮想グループの1つのチャット・ウィンドウ内で、第1のグループ及び/又は少なくとも1つの第2のグループ及び/又は少なくとも1つの第3のグループとチャットすることができ、仮想グループの中の第1のユーザを除いたメンバーは、仮想グループの存在を認識しない。1つの実施形態において、仮想グルーブは、第1のユーザに関連した少なくとも1つの第3のグループの仮想グループへの追加要求に応答して、構築される。
【0047】
本開示の1つの実施形態において、仮想グループが解放される。解放は、仮想グループ解放要求に応答したもの、又は所定の条件が満たされることに応答したものであり得る。要求は、ユーザ、インスタント・メッセージング・クライアント、又はインスタント・メッセージング・サーバからのものであり得る。
【0048】
本開示の1つの実施形態において、第1のユーザに関連した第1のグループ及び第1のユーザに関連した少なくとも1つの第2のグループについての仮想グループが、第1のグループと少なくとも1つの第2のグループとの間の共通部分商が第1の閾値を満たすことに応答して、構築される。
【0049】
本開示の1つの実施形態において、仮想グループは、第1のグループと少なくとも1つの第2のグループとの間の計算された共通部分商が第2の閾値を満たすことに応答して、解放される。
【0050】
本開示の1つの実施形態において、第1のグループは、第1のユーザと、第1のユーザとチャットしている第2のユーザとを含み、第2のグループは、第1のユーザと、第1のユーザとチャットしている第3のユーザとを含み、共通部分商は、以下の:すなわち、第1のグループ及び第2のグループで話される現在のトピックの間の相関、又は第1のグループ及び第2のグループのチャット・アクティブ時間の間の相関の少なくとも1つに関連する。
【0051】
本開示の1つの実施形態において、第1のグループは、第1のユーザと、第1のユーザとチャットしている第2のユーザとを含み、第2のグループは、第1のユーザを含む第1のチャット・グループを含み、共通部分商は、以下の:すなわち、第1のグループ及び第2のグループ内で話される現在のトピックの間の相関、又は第1のグループ及び第2のグループのチャット・アクティブ時間の間の相関の少なくとも1つに関連する。
【0052】
本開示の1つの実施形態において、第1のグループは、第1のユーザを含む第1のチャット・グループを含み、第2のグループは、第1のユーザを含む第2のチャット・グループを含み、共通部分商は、以下の:すなわち、第1のグループ及び第2のグループ内の共通メンバーの数、第1のグループ及び第2のグループ内で話される現在のトピックの間の相関、第1のグループ及び第2のグループ内で話される履歴トピックの間の相関、又は第1のグループ及び第2のグループのチャット・アクティブ時間の間の相関の少なくとも1つに関連する。
【0053】
本開示の1つの実施形態によると、コンピュータ・プログラム製品が開示される。コンピュータ・プログラム製品は、非一時的マシン可読媒体上に有形に格納され、マシン実行可能命令を含む。命令は、電子デバイス上で実行されるとき、電子デバイスに、第1のユーザに関連した第1のグループ及び第1のユーザに関連した少なくとも1つの第2のグループについての仮想グループを構築させ、仮想グループ内の第1のユーザからメッセージ及びメッセージの受信者候補を受信することであって、受信者候補は第1のグループ及び/又は少なくとも1つの第2のグループである、受信することに応答して、メッセージを受信者候補に送信させる。従って、第1のユーザは、仮想グループの1つのチャット・ウィンドウ内で、第1のユーザ及び/又は少なくとも1つの第2のグループとチャットすることができ、仮想グループの中の第1のユーザを除いたメンバーは、仮想グループの存在を認識しない。1つの実施形態において、仮想グループは、第1のユーザに関連した第1のグループ及び第1のユーザに関連した少なくとも1つの第2のグループについての仮想グループ構築要求に応答して、構築される。要求は、ユーザ、インスタント・メッセージング・クライアント、又はインスタント・メッセージング・サーバからのものとすることができる。別の実施形態において、仮想グループは、所定の条件が満たされることに基づいて、構築される。
【0054】
本開示の1つの実施形態において、命令はさらに、電子デバイスに、第1のユーザに関連した少なくとも1つの第3のグループを仮想グループに追加させることができ、随意的に、実施形態は、仮想グループ内の第1のグループからメッセージ及びメッセージの受信者候補を受信することであって、受信者候補は第1のグループ及び/又は少なくとも1つの第2のグループ及び/又は少なくとも第3のグループである、受信することに応答して、メッセージを受信者候補に送信するステップをさらに含む。従って、第1のユーザは、仮想グループの1つのチャット・ウィンドウ内で、第1のグループ及び/又は少なくとも1つの第2のグループ及び/又は少なくとも1つの第3のグループとチャットすることができ、仮想グループの中の第1のユーザを除いたメンバーは、仮想グループの存在を認識しない。本開示の1つの実施形態において、命令はさらに、電子デバイスに、仮想グループを解放させることができる。解放は、仮想グループ解放要求に応答したもの、又は所定の条件が満たされることに応答したものであり得る。要求は、ユーザ、インスタント・メッセージング・クライアント、又はインスタント・メッセージング・サーバからのものであり得る。
【0055】
本開示の1つの実施形態において、命令はさらに、電子デバイスに、第1のグループと少なくとも1つの第2のグループとの間の共通部分商が第1の閾値を満たすことに応答して、第1のユーザに関連した第1のグループ及び第1のユーザに関連した少なくとも1つの第2のグループについての仮想グループを構築させることができる。
【0056】
本開示の1つの実施形態において、命令はさらに、電子デバイスに、第1のグループと少なくとも1つの第2のグループとの間の計算された共通部分商が第2の閾値を満たすことに応答して、仮想グループを解放させることができる。
【0057】
本開示の1つの実施形態において、命令はさらに、電子デバイスに、仮想グループを構築する要求に応答して、第1のユーザに関連した第1のグループ及び第1のユーザに関連した少なくとも1つの第2のグループについての仮想グループを構築させることができる。
【0058】
本開示の1つの実施形態において、第1のグループは、第1のユーザと、第1のユーザとチャットしている第2のユーザとを含み、第2のグループは、第1のユーザと、第1のユーザとチャットしている第3のユーザとを含み、共通部分商は、以下の:すなわち、第1のグループ及び第2のグループ内で話される現在のトピックの間の相関、又は第1のグループ及び第2のグループのチャット・アクティブ時間の間の相関の少なくとも1つに関連する。
【0059】
本開示の1つの実施形態において、第1のグループは、第1のユーザと、第1のユーザとチャットしている第2のユーザとを含み、第2のグループは、第1のユーザを含む第2のチャット・グループを含み、共通部分商は、以下の:すなわち、第1のグループ及び第2のグループ内で話される現在のトピックの間の相関、又は第1のグループ及び第2のグループのチャット・アクティブ時間の間の相関の少なくとも1つに関連する。
【0060】
本開示の1つの実施形態において、第1のグループは、第1のユーザを含む第1のチャット・グループを含み、第2のグループは、第1のユーザを含む第2のチャット・グループを含み、共通部分商は、以下の:すなわち、第1のグループ及び第2のグループ内の共通メンバーの数、第1のグループ及び第2のグループ内で話される現在のトピックの間の相関、第1のグループ及び第2のグループ内で話される履歴トピックの間の相関、又は第1のグループ及び第2のグループのチャット・アクティブ時間の間の相関の少なくとも1つに関連する。
【0061】
本開示の実施形態は、種々のタイプのコンピューティング・デバイスにおいて実施することができ、例えば、実施形態は、デスクトップ、ラップトップ、ノートブック、サーバ、タブレット、スマートフォン等上で実施することができる。さらに、オペレーティング・システム上にインストールされたアプリケーションとの間で必要とされるデータを読み出し/書き込みするために、これらのオペレーティング・システムが本開示の方法をサポートできる限り、本開示の実施形態は、Windows(登録商標)、Linux(登録商標)、Mac OS(登録商標)、Android(登録商標)及び他のオペレーティング・システムのような種々のオペレーティング・システム上で実施することができる。
【0062】
添付図面を参照して、本開示の方法を実施する種々の実施形態が上述されている。当業者であれば、この方法を、ソフトウェア、ハードウェア、又はソフトウェアとハードウェアの組み合わせで実施できることを理解することができる。さらに、当業者であれば、上述の方法のステップを、ソフトウェア、ハードウェア、又はソフトウェアとハードウェアの組み合わせで実施することによって、同じ開示の概念に基づいた装置/システムを提供できることを理解することができる。装置/システムが汎用処理デバイスと同じハードウェア構造を有する場合であっても、内部に含まれるソフトウェアの機能によって装置/システムに、汎用処理デバイスとは区別される特性を示させることにより、本開示の種々の実施形態の装置/システムが形成される。本開示に記載される装置/システムは、幾つかの手段又はモジュールを含み、それらの手段又はモジュールは対応するステップを実行するように構成される。当業者であれば、本明細書を読むと、これらの手段又はモジュールによって実行される動作を実施するためのプログラムを書く方法を理解することができる。この装置/システムは上記の方法と同じ開示の概念に基づくため、同じ又は対応する実施の詳細が、上記の方法に対応する手段又はモジュールにも適用可能である。上記に詳細かつ完全な説明が提示されているので、装置/システムは以下で詳述しない。
【0063】
さらに、システムは、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせを含む種々の方法で実装することができる。例えば、幾つかの実施形態において、装置は、ソフトウェア及び/又はファームウェアにより実装することができる。代替的に又は付加的に、システムは、ハードウェアに基づいて部分的に又は完全に実装することができる。例えば、システム内の1つ又は複数のユニットは、集積回路(IC)チップ、特定用途向け集積回路(ASIC)、システム・オン・チップ(SOC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)等として実装することができる。本意図の範囲は、この態様に限定されない。
【0064】
本開示は、システム、装置、デバイス、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本開示の態様を実行させるためのコンピュータ可読プログラム命令をそこに有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
【0065】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【0066】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【0067】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、又は、「C」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述することができるいずれかのソース・コード若しくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本開示の態様を実施することができる。
【0068】
本開示の態様は、本開示の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0069】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサにより実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び/又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を製造するようにすることもできる。
【0070】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するようにすることもできる。
【0071】
フローチャート及びブロック図は、本開示の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロック又はブロック図は、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、スニペット、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがあることにも留意されたい。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【0072】
本開示の種々の実施形態の説明は、説明を目的として提示されているが、網羅的であること、又は開示された実施形態に限定することを意図したものではない。当業者には、説明される実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の用途、若しくは市場で見出される技術に優る技術的改善を最も良く説明するために、又は当業者が本明細書に開示される実施形態を理解するのを可能にするために、選択された。