(57)【特許請求の範囲】
【請求項１】
チャットサーバを介して他のクライアント装置とチャットを行う疑似クライアント装置であって、
伝言メッセージ及びその宛先とを互いに対応付けて保持するメッセージテーブルと、
前記他のクライアント装置から前記チャットサーバへ送信される発言の内容を監視する監視手段と、
前記監視手段によって監視された発言の内容が所定の文章条件を満たしているか否かを識別する識別手段と、
前記識別手段によって所定の文章条件を満たすと識別された発言があった場合には、その発言に含まれている伝言メッセージ及びその宛先を、前記メッセージテーブルに登録し、前記識別手段によって他の所定の文章条件を満たすと識別された発言があった場合には、その発言を送信したクライアントの識別情報が宛先として対応付けられている伝言メッセージを発言として前記チャットサーバへ送信し、その伝言メッセージ及びその宛先を前記メッセージテーブルから削除する処理実行手段と
を備えたことを特徴とする疑似クライアント装置。
【請求項２】
チャットサーバを介して他のクライアント装置とチャットを行う疑似クライアント装置であって、
伝言メッセージ及びその宛先とを互いに対応付けて保持するメッセージテーブルと、
前記他のクライアント装置から前記チャットサーバへ送信される発言の内容を監視する監視手段と、
前記監視手段によって監視された発言の内容が所定の文章条件を満たしているか否かを識別する識別手段と、
前記識別手段によって所定の文章条件を満たすと識別された発言があった場合には、その発言に含まれている伝言メッセージ及びその宛先を、前記メッセージテーブルに登録し、前記メッセージテーブルに宛先として登録されているクライアントが前記チャットサーバに発言を送信した時に、前記メッセージテーブルに登録されている宛先に対して伝言メッセージが有る旨のメッセージ情報を、発言として前記チャットサーバへ送信する処理実行手段と
を備えたことを特徴とする疑似クライアント装置。
【請求項３】
前記処理実行手段は、前記識別手段によって更に他の所定の文章条件を満たすと識別された発言があった場合には、その発言を送信したクライアントが過去に送信した発言に含まれていた伝言メッセージのうち前記メッセージテーブルに現に登録されているものを、発言として前記チャットサーバへ送信する
ことを特徴とする請求項１記載の疑似クライアント装置。
【請求項４】
前記処理実行手段は、前記識別手段によって更に他の所定の文章条件を満たすと識別された発言があった場合には、その発言を送信したクライアントが過去に送信した発言に含まれていた伝言メッセージを前記メッセージテーブルから削除する
ことを特徴とする請求項１記載の疑似クライアント装置。
【請求項５】
チャットサーバを介して他のクライアント装置とチャットを行う疑似クライアント装置であって、
伝言メッセージ及びその宛先とを互いに対応付けて保持するメッセージテーブルと、
伝言メッセージ，その宛先，及び指定日時を互いに対応付けて保持する日時指定メッセージテーブルと、
前記他のクライアント装置から前記チャットサーバへ送信される発言の内容を監視する監視手段と、
前記監視手段によって監視された発言の内容が所定の文章条件を満たしているか否かを識別する識別手段と、
前記識別手段によって所定の文章条件を満たすと識別された発言があった場合には、その発言に含まれている伝言メッセージ及びその宛先を、前記メッセージテーブルに登録し、前記識別手段によって他の所定の文章条件を満たすと識別された発言があった場合には、その発言に含まれている伝言メッセージ，その宛先及び指定日時を前記日時指定メッセージテーブルに登録し、現在日時が前記指定日時に達した場合には、その指定日時に対応付けられて前記日時指定メッセージテーブルに登録されている前記伝言メッセージ及びその宛先を前記メッセージテーブルに移動する処理実行手段と
を備えたことを特徴とする疑似クライアント装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、チャットサーバがチャットサービスを提供するチャンネルに接続して、そのチャンネルに接続している他のクライアントとの間で情報の授受を自動的に行う疑似クライアント装置，コンピュータをこのような疑似クライアント装置として機能させる疑似クライアントプログラムを格納したコンピュータ可読媒体，及び、チャットサーバ及び疑似クライアントから構成されるチャットシステムに、関する。
【０００２】
【従来の技術】
従来、コンピュータネットワークを介して複数の端末（利用者）がホストコンピュータにアクセスして、リアルタイムで会話や会議を行うことができるチャットサービスが、様々なコンピュータネットワークサービス提供者によって提供されている。特に、近年においては、インターネットの一般化により、ＩＲＣ（インターネット・リレイ・チャット）プロトコルに従ったチャットサービスが提供されている。このＩＲＣプロトコルに従ったチャットサービスの概念を、図３８を用いて説明する。
【０００３】
図において、ＩＲＣサーバ１００及び各利用者のクライアント端末１０１は、インターネットＮを介して、通信可能となっている。このＩＲＣサーバ１００は、論理的に複数のチャンネル（チャンネル１，チャンネル２）を生成する。各利用者のクライアント端末１０１は、ＩＲＣプロトコルに従ってＩＲＣサーバ１００に接続するとともに、更に、このＩＲＣサーバ１００が生成した何れかのチャンネルに接続する。各チャンネルには、当然ながら複数のクライアント端末１０１が接続可能であり、また、各クライアント端末１０１は、同時に複数のチャンネルに接続可能である。図においては、利用者Ａのクライアント端末１０１Ａはチャンネル１，２に接続し、利用者Ｂのクライアント端末１０１Ｂはチャンネル１に接続し、利用者Ｃのクライアント端末１０１Ｃはチャンネル２に接続している。
【０００４】
何れかのチャンネルに接続したクライアント端末１０１の利用者は、このチャンネル（物理的には、ＩＲＣサーバ１００が実行されているコンピュータのＲＡＭにおける当該チャンネルに割り当てられた領域）へメッセージを送信することとができる。このようにして各チャンネルへ送信されたメッセージは、直ちに、当該チャンネルに接続している全利用者のクライアント端末１０１へ送信される。従って、このチャンネル上において、このチャンネルに接続している全てのクライアント端末１０１の利用者が、リアルタイムで、互いに会話したり会議することが可能となるのである。
【０００５】
【発明が解決しようとする課題】
しかしながら、従来のチャットシステムは、あくまでも利用者同士の会話，即ち情報交換をリアルタイムに行うための環境を提供するものであったので、一つのチャンネルに２以上のクライアント端末が接続していなければならなかった。つまり、ある利用者が、他者と会話をする目的でそのクライアント端末を特定のチャンネルに接続したとしても、その時点で他者のクライアント端末がそのチャンネルに接続してなければ、会話が成り立たないので、他者のクライアント端末がそのチャンネルに接続してくるのを待つか、会話を諦めてそのチャンネルに対する接続を終了するしかなかった。これが、従来における第１の問題点である。
【０００６】
特に、ある利用者が他の利用者に対して情報を提供すべき事情や会話をしなければならない事情がある場合には、これら利用者が別の通信手段（電話，電子メール等）を用いて、チャンネルに接続する時間を予め取り決めたり、同時にチャンネルに接続するためにスケジュールを調整しなければならないので、チャットシステムを用いる情報交換の利便性を損なうことにもなりかねなかった。これが、従来における第２の問題点である。
【０００７】
また、特定のチャンネルに複数の利用者のクライアント端末が接続することによってこれら複数の利用者間で会話が成り立っていたとしても、会話中にこれら利用者が持っていない情報を参照する必要が生じた時には、Web等、チャットシステム以外のツールを用いて、該当する情報を収集しなければならなかった。また、そのチャンネルに接続していない利用者に対する緊急の連絡事項が生じた時には、チャットシステム以外の伝達方法を用いて連絡をとらねばならなかった。これらの作業は、リアルタイムで会話を行っている利用者にとっては、非常に煩雑な作業であり、これにより、会話の効率が低下する可能性もあった。これが、従来における第３の問題点である。
【０００８】
本発明の主たる課題は、上述した第１の問題点を解決し、チャットサーバに対して接続してきた他のクライアント端末に対して別個のクライアントとして振る舞い、このクライアント端末から送信された発言の内容に応じて、このクライアント端末との間で情報の授受を自動的に行う疑似クライアント装置，コンピュータをこのような疑似クライアント装置として機能させる疑似クライアントプログラムを格納したコンピュータ可読媒体，及びこのような疑似クライアントとチャットサーバとからなるチャットシステムを、提供することである。
【０００９】
本発明の付随的課題の第１は、上述した第２の問題点を解決し、チャットサーバに対して接続しているクライアント端末から送信された発言の内容に応じて、この発言に含まれる他者宛の伝言メッセージを保管するとともに、当該他者のクライアント端末から送信された発言の内容に従って、上記伝言メッセージを通知することができる疑似クライアント装置，コンピュータをこのような疑似クライアント装置として機能させる疑似クライアントプログラムを格納したコンピュータ可読媒体，及びこのような疑似クライアントとチャットサーバとからなるチャットシステムを、提供することである。
【００１０】
本発明の付随的課題の第２は、上述した第３の問題点を解決し、特定のチャンネルに接続してきた利用者のクライアント端末から送信されたメッセージの内容に応じて、このメッセージによって求められている処理を実行する何れかのバックエンドサーバと通信を行うことにより、このバックエンドサーバに対する処理依頼の代行を行う疑似クライアント装置，コンピュータをこのような疑似クライアント装置として機能させる疑似クライアントプログラムを格納したコンピュータ可読媒体，及びこのような疑似クライアント装置とチャットサーバとからなるチャットシステムを、提供することである。
【００１１】
【課題を解決するための手段】
本発明の疑似クライアント装置は、上記した主たる課題を解決するために、以下の構成を採用した。
【００１２】
即ち、本発明は、図１の発明原理図に示したように、チャットサーバ２０１を介して他のクライアント２００とチャットを行う疑似クライアント装置２０２であって、前記他のクライアント２００から前記チャットサーバ２０１へ送信される発言の内容を監視する監視手段２０３と、前記監視手段２０３によって監視された発言の内容が所定の文章条件を満たしているか否かを識別する識別手段２０４と、この識別手段２０４によって所定の文章条件を満たすと識別された発言があった場合にはその発言に含まれている伝言メッセージ及びその宛先を、メッセージテーブルに登録する処理実行手段２０５とを、備えたことを特徴とする。
【００１３】
このように構成されると、チャットサーバ２０１に接続したクライアント２００を使用する利用者は、このチャットサーバ２０１に別のクライアントが接続していなくても、所定の文章条件を満たした発言をチャットサーバ２０１に送信すれば、疑似クライアント装置２０２に対してその文章条件に従った処理を実行させることができる。即ち、疑似クライアント装置２０２においては、監視手段２０３が、常時、チャットサーバ２０１に対して各クライアント２００が送信して来る発言の内容を監視しているので、所定の文章条件を満たした発言が送信されると、識別手段２０４が、この発言が所定の文章条件を満たしているものと識別する。すると、処理実行手段２０５が、その発言に含まれている伝言メッセージ及びその宛先を、メッセージテーブルに登録するのである。これにより、疑似クライアント装置は、そのメッセージテーブルに登録された宛先へ、それに対応するメッセージを送信できる。従って、この発言を送信したクライアント２００の利用者は、別のクライアントがチャットサーバ２０１に接続してくるのを待たなくても、疑似クライアント装置２０２を相手に、ある程度の作業を行うことができる。
【００１４】
なお、疑似クライアント装置２０２は、チャットサーバとは別のコンピュータとして構成されていても良いが、チャットサーバと同一のコンピュータとして構成されていても良い。この場合、そのコンピュータは、チャットサーバのプログラムに従ってチャットサーバとして機能するオブジェクトと、疑似クライアントのプログラムに従って疑似クラアイアンと装置として機能するオブジェクトとを、論理的に内包することになる。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
【００１６】
＜チャットシステムの概略構成＞
図２は、本実施形態によるチャットシステムの概略構成を示すブロック図である。この図２に示されるように、このチャットシステムは、一台のチャットサーバ１と、このチャットサーバ１に対してインターネットＮを通じて（ＩＲＰプロトコルに従って）通信可能に設定された複数台のクライアント端末２Ａ〜２Ｃ及び疑似クライアント装置３と、この疑似クライアント装置３に対してインターネットＮを通じて通信可能に設定された複数台のバックエンドサーバ４とから、構成されている。
【００１７】
このチャットサーバ装置１は、一般的なＩＲＣ（インターネット・リレー・チャット）サーバプログラムを実行しているコンピュータである。チャットサーバ装置１のハードウェアは、一般的なサーバコンピュータであるので、ＩＲＣサーバプログラム以外のプログラムも実行可能であるが、ここでは、ＩＲＣサーバプログラムを実行している時の機能のみが注目されるので、以下、単に「チャットサーバ」と称される。
【００１８】
また、各クライアント装置２Ａ〜２Ｃは、一般的なチャットツールプログラム（ブラウザ）を実行しているコンピュータである。各クライアント装置２Ａ〜２Ｃのハードウェアは、一般的な通信機能を有したパーソナルコンピュータであるので、チャットクライアントプログラム以外のプログラムも実行可能であるが、ここでは、チャットクライアントプログラムを実行している時の機能のみが注目されるので、以下、単に「クライアント」と称される。
【００１９】
また、疑似クライアント装置３は、後述する疑似クライアントプログラムを実行しているコンピュータである。疑似クライアント装置３のハードウェアは、一般的な通信機能を有したパーソナルコンピュータであっても良いし、チャットサーバ１と同じサーバコンピュータであっても良いが、ここでは、疑似クライアントプログラムを実行している時の機能のみが注目されるので、以下、単に「疑似クライアント」と称される場合もある。
【００２０】
上述したチャットサーバ１は、論理的に複数のチャンネルを生成し、各チャンネル毎にチャットサービスを提供する。即ち、チャットサーバ１は、各クライアント２から自己のサーバ名及びポート番号を指定した接続要求があった時には、そのクライアント２を接続させて通信可能な状態に設定するとともに、接続済みのクライアント２から何れかのチャンネルが指定された場合には、そのクライアント２を指定チャンネルへ接続させて、チャット（会話）可能な状態に設定する。即ち、そのクライアント２に対して、指定チャンネルへのメッセージの送信を許可するとともに、このチャンネルに接続している全てのクライアント２からこのチャンネルへ送信されたメッセージを、このチャットチャンネルに接続している全てのクライアント２に対して、リアルタイムで送信（転送）する。これにより、各チャンネルに接続したクライアント２に対して、そのチャンネルを通じての、クライアント同士のリアルタイムな情報交換（会話）の環境を、提供するのである。
【００２１】
なお、チャットサーバ１は、各チャンネル毎にそのチャンネルに現在接続しているクライアント２を特定する識別情報（クライアント２を操作している利用者のニックネーム）を管理する利用者管理テーブルを備えている。また、各クライアント２は、各チャンネルに最初に接続する際には、「ＪＯＩＮメッセージ」と称される接続を宣言するメッセージを、そのチャンネルへ送信する。チャットサーバ１は、この「ＪＯＩＮメッセージ」を検出することにより、利用者管理テーブルに必要事項を登録するのである。
【００２２】
また、チャットサーバ１は、図２においては一つのみ示されているが、各クライアント２がインターネットＮを介して接続可能なチャットサーバ１は、一つのみに限られない。
【００２３】
また、各クライアント２は、同一のチャットサーバ１が生成した複数のチャンネルに、同時に接続することができる。なお、各クライアント２が特定のチャンネルへ送信するメッセージは、実際には、そのチャンネルに接続している全てのクライアント２へ送信（転送）されるが、特定の利用者を相手方としてなされる発言の場合、通常、そのメッセージの内容は、“相手方のニックネーム＞メッセージ本文”のように、発言の相手方としての利用者のニックネーム（識別情報としてのハンドルネーム）がメッセージ本文に付加された形式のものとなる。
【００２４】
上述した疑似クライアント３は、通常のクライアント２と同様の資格で、チャットサーバ１が生成した全てのチャンネルに接続する。但し、通常のクライアント２が利用者の操作に応じてメッセージを送信するのとは異なり、疑似クライアント３は、予めプログラミングされたアルゴリズムに従い、自動的に、各チャンネル上に送信される各クライアント２からのメッセージに応じた処理（メッセージに対する返答を含む）を実行する。
【００２５】
なお、疑似クライアント３は、各クライアント２からのメッセージに応じた処理をする際に、必要に応じて、各種バックエンドサーバ４と連携し、各バックエンドサーバ４から必要な情報を獲得したり、各バックエンドサーバ４に対して所定の処理を依頼する。このバックエンドサーバ４には、問い合わされた利用者がどのチャンネルに現在接続しているかどうかを回答するチャットサーバ１自身も、含まれている。他のバックエンドサーバ４の例としては、電子メールを所定のアドレスへ送信するメールサーバ（ＳＭＴＰサーバ），メッセージをＦＡＸ送信するＦＡＸメールサーバ，問い合わされた単語に対する翻訳文を回答する辞書サーバ，問い合わされた単語を含むホームページのＵＲＬを検索する検索サーバ（ポータルサイト），問い合わされた個人の個人情報を回答する個人情報管理サーバ，各事業所毎に設置されているとともにその事業所の会議室（場所）の予約状況や所属社員のスケジュールを管理するカレンダーサーバ，等が、挙げられる。
【００２６】
＜疑似クライアント装置の構成＞
次に、疑似クライアント装置３の構成を、図３のブロック図に基づいて、説明する。上述したように疑似クライアント装置３のハードウェアは、一般的なコンピュータ（パーソナルコンピュータ又はサーバコンピュータ）であるので、バスＢを介して互いに接続されたＣＰＵ３１，ＲＡＭ３２，ＨＤＤ３３及びモデム３４を有している。
【００２７】
ハードディスク３３は、コンピュータ可読媒体であり、通信モジュールを含むオペレーションシステムプログラム（例えば、マイクロソフト社製のウインドウズ９５又は９８（商標））１０，及び、アプリケーションプログラムである疑似クライアントプログラム１１を格納している。
【００２８】
ＣＰＵ３１は、ハードディスク３３からオペレーションシステムプログラム１０及び疑似クライアントプログラム１１を読み出して夫々実行することによって、この疑似クライアントプログラム１１によって予めプログラミングされた動作を行う。
【００２９】
モデム３４は、ＣＰＵ３１からインターネットＮ経由で送信すべきものとして受け取ったデータを、通信媒体を介して伝達可能な信号形式に変調したり、ＣＰＵ３１からの指示に応じてインターネットＮ経由で受信したデータをＣＰＵ３１が処理可能な信号形式に復調する装置である。なお、このモデム３４は、インターネットＮと疑似クライアント装置３との間を中継する通信媒体の形式如何によっては、ＤＳＵ（デジタル・シグナル・ユニット）及びＴＡ（ターミナル・アダプタ）や、他の通信装置へ置換される。
【００３０】
ＲＡＭ３２は、このＣＰＵ３１が上述した各プログラム１０，１１を実行するに際して、各プログラム１１のモジュールがページングされたり、インターネットＮ経由で受信したデータを一時的に保存したり、ＣＰＵ３１が各プログラム１０，１１を実行することによって生成したデータを一時的に保存する作業領域として、機能する。図３には、一定期間の間にＲＡＭ３２上に存在する各プログラム１０，１１及びデータの一部が、示されている。このうちの疑似クライアントプログラム１１については、後において詳細に説明するので、ここでは、ＣＰＵ３１が疑似クライアントプログラム１１を実行することによって生成されるデータであるチャンネル管理テーブル１２，メッセージテーブル１３，日時指定メッセージテーブル１４，連絡先登録テーブル１５，予定参照支援テーブル１６，アラーム管理テーブル１７及びキーワード登録テーブル１８を、説明する。
【００３１】
チャンネル管理テーブル１２は、図４に示すように、チャットサーバ１の各チャンネル毎に、そのチャンネルに接続している各利用者のニックネーム（ハンドルネーム），各利用者の前回の発言時刻（最後にメッセージを送信した時刻），及び、前回の発言中のキーワード（最後のメッセージから抽出された特定キーワード）を登録するテーブルである。なお、特定キーワードとは、「さよなら」，「帰る」，「バイバイ」等、そのチャンネルに対する接続を切断してチャットを終了する旨を示すキーワードであり、これらは、疑似クライアントプログラム１１によって予め定められている。
【００３２】
メッセージテーブル１３は、図５に示すように、チャットサーバ１の何れかのチャンネルの接続者から他の利用者（何れかのチャンネルに接続する資格を有する利用者）へ伝言すべきことを依頼された伝言メッセージを格納するテーブルであり、伝言メッセージ毎に、その依頼者のニックネーム，宛先の利用者のニックネーム，及び伝言メッセージ受信日時（依頼を受けた日時）も、記録する。
【００３３】
日時指定メッセージテーブル１４は、図６に示すように、チャットサーバ１の何れかのチャンネルの接続者から他の利用者（何れかのチャンネルに接続する資格を有する利用者）へ指定日時に伝言すべきこと依頼された伝言メッセージを格納するテーブルであり、伝言メッセージ毎に、その依頼者のニックネーム，宛先の利用者のニックネーム，及び指定日時を、記録する。
【００３４】
連絡先登録テーブル１５は、図７に示すように、予め登録された利用者に対する連絡先が登録されるテーブルであり、具体的には、連絡先利用者のニックネーム，伝達方法種別，連絡先アドレス，登録者名及び登録時刻を、一組の情報として記録する。
【００３５】
予定参照支援テーブル１６は、予め登録された利用者のニックネーム，本名及び所属する事業所名を、一組の情報として記録する。
【００３６】
アラーム管理テーブル１７は、指定時刻に登録者に対して発されるアラームの内容が登録されるテーブルであり、その登録者のニックネーム，指定時刻，及びアラームとして通知される通知メッセージの内容を、一組の情報として記録する。
【００３７】
キーワード登録テーブル１７は、図１０に示すように、一又は複数のキーワードの組合せに対して所定の文字列とが対応付けて登録されるテーブルであり、文字列毎に、それに対応付けられて登録された一又は複数のキーワード，登録者のニックネーム，及び、その対応付けが有効なチャンネルの指定が、記録される。
【００３８】
なお、一旦生成された各テーブル１２〜１８は、随時、ハードディスク３３の所定フォルダに保存されるとともに、ＣＰＵ３１が疑似クライアントプログラム１１を立ち上げる毎に、前回の実行時において最終的にハードディスク３３内に保存された各テーブル１２〜１８が、ＣＰＵ３１によって読み出されてＲＡＭ３２上に展開される。
【００３９】
＜疑似クライアントプログラムによる処理内容＞
次に、ハードディスク３３からＲＡＭ３２に読み出された疑似クライアントプログラム１１に従ってＣＰＵ３１が実行する処理の内容を、図１１乃至図３７のフローチャートに基づいて説明する。図１１のメインルーチンは、疑似クライアント３において所定のスタートコマンドが入力されることによって、スタートする。スタート後、最初のＳ０００１では、ＣＰＵ３１は、チャットサーバ１のサーバ名，ポート番号及び自己のニックネーム（ここでは、ニックネームが“ｐｏｃｈｉ”であるものとする）を指定して、一クライアントとして、チャットサーバ１に接続する。
【００４０】
次のＳ０００２では、ＣＰＵ３１は、初期化処理を実行する。
【００４１】
次のＳ０００３では、ＣＰＵ３１は、チャットサーバ１における予め指定された一又は複数又は全てのチャンネルに対して接続を行う。即ち、ＣＰＵ３１は、接続しようとする全てのチャンネルへ、上述した「ＪＯＩＮメッセージ」を送信する。
【００４２】
次に、ＣＰＵ３１は、接続した全てのチャンネルに流れるメッセージを検出するために、Ｓ０００４乃至Ｓ００２８のループ処理を実行する。このループ処理に入って最初のＳ０００４では、ＣＰＵ３１は、予め設定されたイベント（ＪＯＩＮメッセージの検出，通常メッセージの検出，処理周期のタイムアップ）の何れかが発生したかどうかをチェックする。そして、ＣＰＵ３１は、通常のメッセージを検出した場合には、処理をＳ０００５へ進め、ＪＯＩＮメッセージを検出した場合には、処理をＳ００１０へ進め、所定周期のタイムアップイベントが発生したと判断した場合には、処理をＳ００２２へ進める。なお、所定周期のタイムアップイベントは、Ｓ０００２での初期化処理の実行後１分経過した時，及び、それ以後１分経過する毎に、夫々、発生する。
【００４３】
Ｓ０００５では、ＣＰＵ３１は、検出した通常メッセージ（以下、「処理対象メッセージ」と称される）の字句解析及びそれに対応した処理を実行する。図１４は、このＳ０００５にて実行されるサブルーチンを示すフローチャートである。このサブルーチンに入って最初のＳ０１０１では、ＣＰＵ３１は、処理対象メッセージ中に自己のニックネーム（ｐｏｃｈｉ）が宛先として含まれるか否かを、チェックする（監視手段に相当）。そして、自己のニックネームが含まれない場合には、ＣＰＵ３１は、処理をそのままＳ０１０９へ進める。これに対して、処理対象メッセージに自己のニックネームが含まれる場合には、ＣＰＵ３１は、Ｓ０１０２において、検出した処理対象メッセージから宛先を削除して、メッセージの本文のみを抽出した後に、処理をＳ０１０３へ進める。このＳ０１０３以後、Ｓ０１０４，Ｓ０１０６，Ｓ０１０７の各処理は、発言の内容が所定の文章条件を満たしているか否かを識別する識別手段に相当する処理である。
【００４４】
Ｓ０１０３では、ＣＰＵ３１は、Ｓ０１０２にて抽出されたメッセージ本文の先頭文節（所定の位置にある単語）が所定の動作指示単語（所定の単語）であるか否かを、チェックする。ここで、所定の「動作指示単語」とは、“伝言”，“伝言みせて”，“伝言ある？”，“伝言どうかな？”，“指定伝言”，“通知”，“アラーム”，“メモ”，“メモ一覧”，“ｄｉｃｔ”，“ｆｉｎｄ”，“会議室参照”，“会議室予約”，“予定参照”，及び、“連絡”である。そして、メッセージ本文の先頭文節が所定の「動作指定単語」であった場合には、ＣＰＵ３１は、処理をＳ０１０５へ進める。
【００４５】
これに対して、メッセージ本文の先頭文節が所定の「動作指定単語」でない場合には、ＣＰＵ３１は、Ｓ０１０４において、メッセージ本文の先頭からの文脈が、ニックネーム＋指定文節という流れに沿っているかか否かを、チェックする。即ち、所定の位置に所定の文節があるか否かをチェックする。ここで、「指定文節」とは、“の連絡先は”，“いる？”，“の名前は”，“のカレンダーサーバは”，及び、“どこにいる？”である。そして、メッセージ本文の先頭からの文脈がニックネーム＋指定文節でない場合には場合には、ＣＰＵ３１は、処理をＳ１０６へ進める。これに対して、メッセージ本文の先頭からの文脈がニックネーム＋指定文節である場合には、ＣＰＵ３１は、処理をＳ０１０５へ進める。
【００４６】
Ｓ０１０５では、ＣＰＵ３１は、「動作指定単語」又は「指定文節」によって指示された処理を実行する（処理実行手段に相当）。図１５は、このＳ０１０５にて実行されるサブルーチンを示すフローチャートである。このサブルーチンに入って最初のＳ０２０１では、ＣＰＵ３１は、メッセージ本文における「動作指定単語」又は「指定文節」に基づき、対応する処理がバックエンドサーバ４との連携を要するか否かをチェックする。そして、「動作指定単語」が“伝言”，“伝言みせて”，“伝言ある？”，“伝言どうかな？”，“指定伝言”，“通知”，“アラーム”，“メモ”，又は、“メモ一覧”である場合，若しくは、「指定文節」が“の連絡先は”，“いる？”，“の名前は”，又は、“のカレンダーサーバは”である場合には、ＣＰＵ３１は、対応する処理がバックエンドサーバ４との連携を要さないと判断して、処理をＳ０２０２へ進める。これに対して、「動作指定単語」が“ｄｉｃｔ”，“ｆｉｎｄ”，“会議室参照”，“会議室予約”，“予定参照”，又は、“連絡”である場合，若しくは、「指定文節」が“どこにいる？”である場合には、ＣＰＵ３１は、対応する処理がバックエンドサーバ４との連携を要すると判断して、処理をＳ０２０６へ進める。
【００４７】
Ｓ０２０２では、ＣＰＵ３１は、単独で（即ち、何れのバックエンドサーバ４の助けも要さずに）、メッセージ本文の内容に従った処理を実行する。具体的には、「動作指定単語」が“伝言”である場合には図１７に示すサブルーチンを実行し（請求項７又は請求項１５に相当）、「動作指定単語」が“伝言ある？”である場合には図１８に示すサブルーチンを実行し（請求項１３に相当）、「動作指定単語」が“伝言みせて”である場合には図１９に示すサブルーチンを実行し（請求項８に相当）、「動作指定単語」が“伝言どうかな？”である場合には図２０に示すサブルーチンを実行し（請求項１４に相当）、「動作指定単語」が“指定伝言”である場合には図２１に示すサブルーチンを実行し（請求項１６に相当）、「動作指定単語」が“通知”である場合には図２６に示すサブルーチンを実行し（請求項１８に相当）、「動作指定単語」が“アラーム”である場合には図３５に示すサブルーチンを実行し（請求項３８に相当）、「動作指定単語」が“メモ”である場合には図３６に示すサブルーチンを実行し（請求項２５又は２６に相当）、「動作指定単語」が“メモ一覧”である場合には図３７に示すサブルーチンを実行し、「指定文節」が“の連絡先は”である場合には図２２に示すサブルーチンを実行し（請求項３０に相当）、「指定文節」が“いる？”である場合には図２４に示すサブルーチンを実行し（請求項１７に相当）、「指定文節」が“の名前は”である場合には図３３に示すサブルーチンを実行し、「指定文節」が“のカレンダーサーバは”である場合には図３４に示すサブルーチンを実行する。以下、これらのサブルーチンの内容を、順番に説明する。
【００４８】
先ず、「動作指定単語」が“伝言”であった場合に実行される図１７のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ０４０１において、メッセージ本文の第２文節がニックネーム（宛先）であるか否かをチェックする。そして、第２文節がニックネームでない場合には、ＣＰＵ３１は、メッセージ本文が所定の文法条件を満たしていないと判断して、何ら処理を行うことなく、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００４９】
これに対して、第２文節がニックネームである場合には、ＣＰＵ３１は、メッセージ本文の第３文節が“消して”であるか否かをチェックする。そして、第３文節が“消して”でない場合には（請求項７に相当）、ＣＰＵ３１は、処理対象メッセージはメッセージ本文の第３文節を伝言メッセージとしてメッセージテーブル１３へ登録することを求めるものであると判断して、処理をＳ０４０３へ進める。このＳ０４０３では、ＣＰＵ３１は、メッセージ本文の第２文節をメッセージテーブル１３の「宛先」欄へ、第３文節を「伝言メッセージ」欄へ、現在時刻を「受信日時」欄へ、発言者のニックネームを「依頼者」欄へ、夫々書き込む。このＳ０４０３を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００５０】
これに対して、メッセージ本文の第３文節が“消して”であるとＳ０４０２にて判断した場合には（請求項１５に相当）、ＣＰＵ３１は、処理対象メッセージはメッセージテーブル１３から伝言メッセージを削除することを求めるものであると判断して、処理をＳ０４０４へ進める。Ｓ０４０４では、ＣＰＵ３１は、メッセージテーブル１３内に、第２文節によって指定された利用者宛に発言者（処理対象メッセージを送信してきたクライアント２のことを言う。以下同じ）によって依頼された伝言メッセージがあるか否かを、調べる。即ち、発言者のニックネームが「依頼者」欄に記載されているとともにメッセージ本文の第２文節に示されたニックネームが「宛先」欄に記載されている行があるか否かを、調べる。
【００５１】
次のＳ０４０５では、ＣＰＵ３１は、Ｓ０４０４にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが無かった場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。これに対して、該当する伝言メッセージが有った場合、ＣＰＵ３１は、Ｓ０４０６において、発言者に対して、該当する全ての伝言メッセージ（即ち、発言者のニックネームが「依頼者」欄に記載されているとともにメッセージ本文の第２文節に示されたニックネームが「宛先」欄に記載されている全ての行における「伝言メッセージ」欄に記載された内容）を、発言者に対して通知することとする。
【００５２】
次のＳ４０７では、ＣＰＵ３１は、該当する全ての伝言メッセージ（即ち、Ｓ０４０６にて発言者に対して通知された伝言メッセージ）を、メッセージテーブル１３から消去する。このＳ０４０７を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００５３】
次に、「動作指定単語」が“伝言ある？”であった場合にＳ０２０２にて実行される図１８のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ０５０１において、発言者宛の伝言メッセージがメッセージテーブル１３内にあるか否かを、調べる。即ち、発言者のニックネームが「宛先」欄に記載されている行があるか否かを、調べる。
【００５４】
次のＳ０５０２では、ＣＰＵ３１は、Ｓ０５０１にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが有った場合、ＣＰＵ３１は、Ｓ０５０３において、発言者に対して、該当する伝言メッセージがある旨及びその件数を通知することとする。これに対して、該当する伝言メッセージが無かった場合には、ＣＰＵ３１は、Ｓ０５０４において、発言者に対して、該当する伝言メッセージがない旨を通知することとする。これらＳ０５０３又はＳ０５０４を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００５５】
次に、「動作指定単語」が“伝言みせて”であった場合にＳ０２０２にて実行される図１９のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ０６０１において、発言者宛の伝言メッセージがメッセージテーブル１３内にあるか否かを、調べる。即ち、発言者のニックネームが「宛先」欄に記載されている行があるか否かを、調べる。
【００５６】
次のＳ０６０２では、ＣＰＵ３１は、Ｓ０６０１にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが無かった場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。これに対して、該当する伝言メッセージが有った場合、ＣＰＵ３１は、Ｓ０６０３において、発言者に対して、該当する全ての伝言メッセージ（即ち、発言者のニックネームが「宛先」欄に記載されている全ての行における「伝言メッセージ」欄に記載された内容）を、発言者に対して通知することとする。
【００５７】
次のＳ０６０４では、ＣＰＵ３１は、伝言メッセージの全依頼者（即ち、発言者のニックネームが「宛先」欄に記載されている各行における「依頼者」欄にニックネームが記載されている全利用者）に対して、「現在メッセージの通知を実施している旨」を、プライベートメッセージによって通知することとする。
【００５８】
次のＳ６０５では、ＣＰＵ３１は、該当する全ての伝言メッセージ（即ち、Ｓ０６０３にて発言者に対して通知された伝言メッセージ）を、メッセージテーブル１３から消去する。このＳ０６０４を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００５９】
次に、「動作指定単語」が“伝言どうかな？”であった場合にＳ０２０２にて実行される図２０のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ０７０１において、発言者によって依頼された伝言メッセージがメッセージテーブル１３内にあるか否かを、調べる。即ち、発言者のニックネームが「依頼者」欄に記載されている行があるか否かを、調べる。
【００６０】
次のＳ０７０２では、ＣＰＵ３１は、Ｓ０７０１にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが無かった場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。これに対して、該当する伝言メッセージが有った場合、ＣＰＵ３１は、Ｓ０７０３において、発言者に対して、該当する全ての伝言メッセージ（即ち、発言者のニックネームが「依頼者」欄に記載されている全ての行における「伝言メッセージ」欄に記載された内容）を、発言者に対して通知することとする。このＳ０７０３を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００６１】
次に、「動作指定単語」が“指定伝言”であった場合に実行される図２１のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ０８０１において、メッセージ本文の内容が「動作指示単語」＝“指定伝言”に対応した文法に従っているか否かを、チェックする。即ち、第２文節がニックネーム，第３文節が年月日，第４文節が時刻，第５文節が伝言メッセージに相当する文字列であるか否かを、チェックする。そして、メッセージ本文の内容が「動作指示単語」＝“指定伝言”に対応した文法に従っていない場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。これに対して、メッセージ本文の内容が「動作指示単語」＝“指定伝言”に対応した文法に従っている場合には、ＣＰＵ３１は、処理をＳ０８０２へ進める。
【００６２】
Ｓ０８０２では、ＣＰＵ３１は、メッセージ本文の第３文節及び第４文節によって指定された日時は現在日時以前であるか否かをチェックする。そして、指定日時が現在日時よりも先であるとＳ０８０２にて判断した場合には、ＣＰＵ３１は、Ｓ０８０３において、メッセージ本文の第２文節を日時指定メッセージテーブル１４の「宛先」欄へ、第３及び第４文節を「指定日時」欄へ、第５文節を「伝言メッセージ」欄へ、発言者のニックネームを「依頼者」欄へ、夫々書き込む。次のＳ０８０３では、ＣＰＵ３１は、日時指定メッセージテーブル１４の各行を、夫々の「指定日時」欄に記載された日時の早い順にソートする。このＳ０８０３を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００６３】
これに対して、指定日時が現在日時以前であるとＳ０８０２にて判断した場合には、ＣＰＵ３１は、依頼された伝言メッセージは通常の伝言メッセージとして扱えば足りると判断して、処理をＳ０８０５へ進める。このＳ０８０５では、ＣＰＵ３１は、メッセージ本文の第２文節をメッセージテーブル１３の「宛先」欄へ、第５文節を「伝言メッセージ」欄へ、現在時刻を「受信日時」欄へ、発言者のニックネームを「依頼者」欄へ、夫々書き込む。このＳ０８０５を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００６４】
次に、「指定文節」が“の連絡先は”であった場合に実行される図２２のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ０９０１において、メッセージ本文の内容が「指定文節」＝“の連絡先は”に対応した文法に従っているか否かを、チェックする。即ち、「指定文節」に続く第３文節が伝達方法種別に相当する文字列であり、且つ、それに続く第４文節が連絡先アドレスに相当する文字列であるか否かを、チェックする。そして、メッセージ本文の内容が「指定文節」＝“の連絡先は”に対応した文法に従っていない場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。これに対して、メッセージ本文の内容が「指定文節」＝“の連絡先は”に対応した文法に従っている場合には、ＣＰＵ３１は、Ｓ９０２において、メッセージ本文の第３文節を連絡先登録テーブル１５の「伝達方法種別」欄へ、第４文節を「連絡先アドレス」欄へ、第１文節に示されたニックネームを「連絡先利用者名」欄へ、発言者のニックネームを「登録者」欄へ、現在日時を「登録時刻」欄へ、夫々書き込む。
【００６５】
次に、「指定文節」が“いる？”であった場合に実行される図２４のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ１１０１において、チャンネル管理テーブル１２の当該チャンネル（処理対象メッセージが検出されたチャンネル）内にメッセージ本文の第１文節によって示されるニックネームが「利用者」として登録され、且つ、そのニックネーム（利用者）に対応して特定キーワードが登録されているか否かを、調べる。なお、この特定キーワードは、後述するＳ０１１１の処理に依り、チャンネル管理テーブル１２に登録されたものである。
【００６６】
次のＳ１１０２では、ＣＰＵ３１は、Ｓ１１０１にて調べた結果、条件を満たす特定キーワードが有ったか否かを、チェックする。そして、条件を満たす特定キーワードが登録されていた場合には、ＣＰＵ３１は、Ｓ１１０３において、発言者に対して、ニックネームが示す利用者がそのチャンネルから抜けた（帰った）可能性がある旨を、そのニックネームに対応してチャンネル管理テーブル１２内に登録されている「前回の発言時刻」欄及び「前回の発言中のキーワード」欄の内容とともに通知することとする。これに対して、条件を満たす特定キーワードが登録されていなかった場合には、ＣＰＵ３１は、Ｓ１１０４において、発言者に対して、ニックネームが示す利用者がそのチャンネルにいる可能性がある旨を、そのニックネームに対応してチャンネル管理テーブル１２内に登録されている「前回の発言時刻」欄の内容とともに通知することとする。これらＳ１１０３又はＳ１１０４を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００６７】
次に、「動作指示単語」が“通知”であった場合に実行される図２６のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ１３０１において、チャットサーバ１内において自らが接続中の全チャンネルに対して、メッセージ本文の第２文節以下の伝言メッセージ，依頼者名（即ち、処理対象メッセージの発言者のニックネーム），及び、依頼時刻を、通知することとする。このＳ１３０１を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００６８】
次に、「指定文節」が“の名前は”であった場合に実行される図３３のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ１９０１において、メッセージ本文の内容が「指定文節」＝“の名前は”に対応した文法に従っているか否かを、チェックする。即ち、「指定文節」に続く第３文節が利用者の本名に相当する文字列であるか否かを、チェックする。そして、メッセージ本文の内容が「指定文節」＝“の名前は”に対応した文法に従っていない場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００６９】
これに対して、メッセージ本文の内容が「指定文節」＝“の名前は”に対応した文法に従っている場合には、ＣＰＵ３１は、Ｓ１９０２において、メッセージ本文の第１文節に示されたニックネーム及び第３文節に示された本名を、関連付けて予定参照支援テーブル１６に登録する。この時、そのニックネームが既に「事業所名」欄に対応して登録されている場合（Ｓ２００２参照）には、ＣＰＵ３１は、「事業所名」欄と同じ行の「本名」欄へ、その本名を書き込む。これに対して、そのニックネームが予定参照支援テーブル１６内に一切登録されていない場合には、ＣＰＵ３１は、そのニックネームを「ニックネーム」欄へ書き込むとともに、その本名を「本名」欄へ書き込む。このＳ１９０２を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００７０】
次に、「指定文節」が“のカレンダーサーバは”であった場合に実行される図３４のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ２００１において、メッセージ本文の内容が「指定文節」＝“のカレンダーサーバは”に対応した文法に従っているか否かを、チェックする。即ち、「指定文節」に続く第３文節が事業所名に相当する文字列であるか否かを、チェックする。そして、メッセージ本文の内容が「指定文節」＝“のカレンダーサーバは”に対応した文法に従っていない場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００７１】
これに対して、メッセージ本文の内容が「指定文節」＝“のカレンダーサーバは”に対応した文法に従っている場合には、ＣＰＵ３１は、Ｓ２００２において、メッセージ本文の第１文節に示されたニックネーム及び第３文節に示された事業所名を、関連付けて予定参照支援テーブル１６に登録する。この時、そのニックネームが既に「本名」欄に対応して登録されている場合（Ｓ１９０２参照）には、ＣＰＵ３１は、「本名」欄と同じ行の「事業所名」欄へ、その事業所名を書き込む。これに対して、そのニックネームが予定参照支援テーブル１６内に一切登録されていない場合には、ＣＰＵ３１は、そのニックネームを「ニックネーム」欄へ書き込むとともに、その事業所名を「事業所名」欄へ書き込む。このＳ２００２を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００７２】
次に、「動作指定単語」が“アラーム”であった場合に実行される図３５のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ２１０１において、メッセージ本文の内容が「動作指示単語」＝“アラーム”に対応した文法に従っているか否かを、チェックする。即ち、第２文節が時刻，第３文節が通知メッセージに相当する文字列であるか否かを、チェックする。そして、メッセージ本文の内容が「動作指示単語」＝“アラーム”に対応した文法に従っていない場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。これに対して、メッセージ本文の内容が「動作指示単語」＝“アラーム”に対応した文法に従っている場合には、ＣＰＵ３１は、処理をＳ２１０２へ進める。
【００７３】
Ｓ２１０２では、ＣＰＵ３１は、メッセージ本文の第２文節が時間（例，６０）であるか時刻（例，“１７：００”）であるかをチェックする。そして、時間である場合には、ＣＰＵ３１は、Ｓ２１０３において、第２文節に示された時間を現在時刻に加算することによって時刻に変換した後に、処理をＳ２１０４へ進める。これに対して、メッセージ本文の第２文節が時刻であるとＳ２１０２にて判断した場合には、ＣＰＵ３１は、処理をそのままＳ２１０４へ進める。
【００７４】
Ｓ２１０４では、ＣＰＵ３１は、第２文節に示された時刻又はＳ２１０３にて変換された時刻をアラーム管理テーブル１７の「指定時刻」欄へ、第３文節を「通知メッセージ」欄へ、発言者のニックネームを「登録者」欄へ、夫々書き込む。このＳ２１０４を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００７５】
次に、「動作指示単語」が“メモ”であった場合に実行される図３６のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ２２０１において、メッセージ本文の内容が「動作指示単語」＝“メモ”に対応した文法に従っているか否かを、チェックする。即ち、第２文節以降の１又は複数の文節がカンマで区切られて並べられ、その後にスペースを開けて文字列が配置されているか否かを、チェックする。そして、メッセージ本文の内容が「動作指示単語」＝“メモ”に対応した文法に従っていない場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００７６】
これに対して、メッセージ本文の内容が「動作指示単語」＝“メモ”に対応した文法に従っている場合には、ＣＰＵ３１は、Ｓ２２０２において、メッセージ本文の第２文節以降のカンマで区切られた一又は複数の文節（但し、先頭文字が“＃”である文節を除く）をキーワード登録テーブル１８の「登録キーワード」欄へ、カンマに続いて“＃”で始まる文節がある場合にはその文節を「チャンネル指定」欄へ、スペースに続く文字列を「登録文字列」欄へ、発言者のニックネームを「登録者」欄へ、夫々書き込む。なお、メッセージ本文にカンマが含まれていない場合には、その第２分節のみがキーワードであると認識されて、Ｓ２２０１及びＳ２２０２が実行される。Ｓ２２０２を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００７７】
次に、「動作指示単語」が“メモ一覧”であった場合に実行される図３７のサブルーチンを、説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ２３０１において、メッセージ本文にチャンネル指定があるか否かをチェックする。即ち、第２分節として“＃”で始まる文節が含まれるか否かを、チェックする。なお、この“＃”に続く文字列は、指定されたチャンネルの名称である。そして、メッセージ本文にチャンネル指定がない場合（即ち、“＃”で始まる文節がメッセージ本文に含まれない場合）、ＣＰＵ３１は、Ｓ２３０２において、キーワード登録テーブル１８に記載された全情報を、一つのｈｔｍｌファイルへ変換する。これに対して、メッセージ本文にチャンネル指定があるとＳ２３０１にて判断した場合（即ち、先頭文字が“＃”で始まる文節がメッセージ本文に含まれている場合）、ＣＰＵ３１は、Ｓ２３０３において、メッセージ本文中の“＃”で始まる文節が「チャンネル指定」欄に記載されている各行に記載された全情報を、キーワード登録テーブル１８から読み出して、一つのｈｔｍｌファイルへ変換する。何れの場合においても、ＣＰＵ３１は、次のＳ２３０４において、Ｓ２３０２又はＳ２３０３にて変換したｈｔｍｌファイルを、連携しているウェブサーバの指定場所に格納し、その指定場所を示すＵＲＬを獲得する。
【００７８】
次のＳ２３０５では、ＣＰＵ３１は、Ｓ２３０４にて獲得したＵＲＬを、発言者に対して通知することとする。このＳ２３０５を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００７９】
図１５に戻り、Ｓ０２０２での処理が完了すると、ＣＰＵ３１は、処理をＳ０２０３へ進める。このＳ０２０３では、ＣＰＵ３１は、Ｓ０２０２にて実行された処理の結果として通知をすることとしたか否かを、チェックする。そして、通知をすることとしなかった場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１４のルーチンへ戻す。
【００８０】
これに対して、通知することとした場合には、ＣＰＵ３１は、Ｓ０２０４において、通知すべき情報及び通知先利用者のニックネームを含む文字列（メッセージ情報）を作成する。次のＳ０２０５では、ＣＰＵ３１は、Ｓ０２０４にて作成した文字列を出力（チャットサーバ１に対して送信）する。なお、本実施形態において、通知すべき情報及び通知先を含む文字列（メッセージ情報）は、原則として、その通知先利用者が接続しているチャンネルへ送信される。但し、Ｓ０６０４の場合には、プライベートメッセージによって通知されることとされるので、チャンネル経由ではなく、直接通知先利用者へ送信される。Ｓ０２０５を完了すると、ＣＰＵ３１は、この図１５のサブルーチンを終了して、処理を図１４のルーチンへ戻す。
【００８１】
一方、Ｓ０２０６では、ＣＰＵ３１は、何れかのバックエンドサーバ４と連携して、メッセージ本文の内容に従った処理を実行する。具体的には、「動作指定単語」が“連絡”である場合には図２３に示すサブルーチンを実行し（請求項２８に相当）、「動作指定単語」が“ｄｉｃｔ”である場合には図２７に示すサブルーチンを実行し（請求項３２に相当）、「動作指定単語」が“ｆｉｎｄ”である場合には図２８に示すサブルーチンを実行し（請求項３３及び請求項３４に相当）、「動作指定単語」が“会議室予約”である場合には図３０に示すサブルーチンを実行し（請求項３５に相当）、「動作指定単語」が“会議室参照”である場合には図３１に示すサブルーチンを実行し（請求項３６に相当）、「動作指定単語」が“予定参照”である場合には図３２に示すサブルーチンを実行し（請求項３７に相当）、「指定文節」が“どこにいる？”である場合には図２５に示すサブルーチンを実行する。以下、これらのサブルーチンの内容を、順番に説明する。
【００８２】
先ず、「動作指示単語」＝“連絡”であった場合に実行される図２３のサブルーチンを説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ１００１において、メッセージ本文の第２文節によって示された利用者名（ニックネーム）が連絡先登録テーブル１５の「連絡先利用者名」欄に登録されているか否かを、調べる。
【００８３】
次のＳ１００２では、ＣＰＵ３１は、Ｓ１００１にて調べた結果、第２文節によって示された利用者名が連絡先登録テーブル１５に登録されていたか否かをチェックする。そして、その利用者名が登録されていなかった場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１４のルーチンへ戻す。これに対して、その利用者名が登録されていた場合には、ＣＰＵ３１は、Ｓ１００３において、連絡先登録テーブル１５中でその利用者名に対応付けられた伝達方法種別を読み出すとともに、その伝達方法種別に対応したバックエンドサーバ４を、処理対象サーバ（即ち、連携先のバックエンドサーバ）として決定する。
【００８４】
次のＳ１００４では、ＣＰＵ３１は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、ＣＰＵ３１は、メッセージ本文の第３文節の内容を伝達対象メッセージとし、連絡先登録テーブル１５中で第２文節が示す連絡先利用者名に対応付けられた連絡先アドレスを伝達相手先とし、連絡先登録テーブル１５中で第２文節が示す連絡先利用者名に対応付けられた伝達方法を伝達方法種別として、伝達対象メッセージを伝達方法種別に従って連絡先アドレスへ伝達することを内容としたリクエスト文字列を作成する。
【００８５】
次のＳ１００５では、ＣＰＵ３１は、Ｓ１００４にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。このＳ１００５の完了後、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００８６】
次に、「指定文節」＝“どこにいる？”であった場合に実行される図２５のサブルーチンを説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ１２０１において、チャットサーバ１自身を、処理対象サーバ（即ち、連携先のバックエンドサーバ）として決定する。
【００８７】
次のＳ１２０２では、ＣＰＵ３１は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、ＣＰＵ３１は、メッセージ本文の第１文節にニックネームが示された利用者がどのチャンネルに接続中であるのか否かの調査を内容としたリクエスト文字列を作成する。
【００８８】
次のＳ１２０３では、ＣＰＵ３１は、Ｓ１２０２にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。このリクエスト文字列を受信したチャットサーバ１は、リクエスト文字列に含まれるニックネームの利用者がどのチャンネルに接続しているのか、若しくは、何れのチャンネルにも接続していないのかを調べ、その調査結果を疑似クライアント３へ解答する。
【００８９】
次のＳ１２０４では、ＣＰＵ３１は、処理対象サーバとしてのチャットサーバ１から返答された問合せ結果を解析する。
【００９０】
次のＳ１２０５では、ＣＰＵ３１は、Ｓ１２０４での解析結果に基づいて、メッセージ本文の第１文節にニックネームが示された利用者がチャットサーバ１の何れかのチャンネルに存在するか否かをチェックする。そして、その利用者が何れかのチャンネルに存在する場合には、ＣＰＵ３１は、Ｓ１２０６において、その利用者が接続している全チャンネルを一覧する応答文字列（メッセージ情報）を作成する。これに対して、その利用者が何れのチャンネルにも存在しない場合には、ＣＰＵ３１は、Ｓ１２０７において、その利用者が居ない旨を示す応答文字列（メッセージ情報）を作成する。これらＳ１２０６又はＳ１２０７を完了すると、ＣＰＵ３１は、Ｓ１２０８において、Ｓ１２０６又はＳ１２０７にて作成した応答文字列を出力（チャットサーバ１に対して送信）する。このＳ１２０８の完了後、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００９１】
次に、「動作指示単語」＝“ｄｉｃｔ”であった場合に実行される図２７のサブルーチンを説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ１４０１において、メッセージ本文の文法を解析する。即ち、第２文節に示された辞書検索の指定の種別，第３文節に示された辞書対象文字を、夫々、識別する。
【００９２】
次のＳ１４０２では、ＣＰＵ３１は、メッセージ本文の第２文節に示された指定が「単語翻訳」を表す“−ｔ”であるか否かをチェックする。そして、第２文節に示された指定が「単語翻訳」を表す“−ｔ”でない場合には、ＣＰＵ３１は、Ｓ１４０９において、指定に応じた処理を実行する。例えば、指定が「意味検索」であった場合には、ＣＰＵ３１は、百科事典等のデータベースを有する図示せぬサーバと連携して、第３文節に示された辞書対象文字の意味を調べて、発言者に応答する。Ｓ１４０９を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００９３】
これに対して、メッセージ本文の第２文節に示された指定が「単語翻訳」を表す“−ｔ”である場合には、ＣＰＵ３１は、Ｓ１４０３において、予め「単語翻訳」に対応付けて登録されていた辞書サーバを、処理対象サーバ（即ち、連携先のバックエンドサーバ）として決定する。
【００９４】
次のＳ１４０４では、ＣＰＵ３１は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、ＣＰＵ３１は、メッセージ本文の第３文節に示された辞書対象文字を翻訳することを内容としたリクエスト文字列を作成する。
【００９５】
次のＳ１４０５では、ＣＰＵ３１は、Ｓ１４０４にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【００９６】
次のＳ１４０６では、ＣＰＵ３１は、処理対象サーバとしての辞書サーバから返答された問合せ結果を解析して、辞書対処文字の翻訳文を抽出する。
【００９７】
次のＳ１４０７では、ＣＰＵ３１は、Ｓ１４０６にて抽出された辞書対象文字の翻訳文を表す応答文字列（メッセージ情報）を作成する。
【００９８】
次のＳ１４０８では、ＣＰＵ３１は、Ｓ１４０７にて作成した応答文字列（メッセージ情報）を出力（チャットサーバ１に対して送信）する。このＳ１４０８の完了後、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。
【００９９】
次に、「動作指示単語」＝“ｆｉｎｄ”であった場合に実行される図２８及び図２９のサブルーチンを説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ１５０１において、メッセージ本文の文法を解析する。即ち、第２文節に示された検索サーバ名，第３文節に示された検索対象文字を、夫々、識別する。
【０１００】
次のＳ１５０２では、ＣＰＵ３１は、メッセージ本文の第２文節に示された検索サーバを、処理対象サーバ（即ち、連携先のバックエンドサーバ）として決定する。
【０１０１】
次のＳ１５０３では、Ｓ１５０２にて決定された処理対象サーバがポータルサイトであるか個人情報管理サーバであるか否かを、チェックする。そして、ＣＰＵ３１は、処理対象サーバがポータルサイトであれば、処理をＳ１５０４へ進め、処理対象サーバがｗｈｏｉｓ，Ｘ．５００，ＬＤＡＰ等の規約に基づく個人情報管理サーバであれば、処理をＳ１５１３へ進める。
【０１０２】
処理対象サーバがポータルサイトである場合（請求項３３に相当）に実行されるＳ１５０４では、ＣＰＵ３１は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、ＣＰＵ３１は、メッセージ本文の第３文節に示された検索対象文字に関するインターネットホームページを検索することを内容としたリクエスト文字列を作成する。
【０１０３】
次のＳ１５０５では、ＣＰＵ３１は、Ｓ１５０４にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【０１０４】
次のＳ１５０６では、ＣＰＵ３１は、処理対象サーバとしてのポータルサイトから返答された問合せ結果を解析する。
【０１０５】
次のＳ１５０７では、ＣＰＵ３１は、Ｓ１５０６での解析結果に基づいて、応答文字列（該当するホームページの概略）及び情報件数（該当するホームページの件数）を獲得する。
【０１０６】
次のＳ１５０８では、ＣＰＵ３１は、Ｓ１５０７にて獲得した情報件数が１件以上であるか否かをチェックする。そして、情報件数がゼロであった場合には、ＣＰＵ３１は、Ｓ１５１１において、情報件数がゼロであることを示す応答文字列（メッセージ情報）を作成し、Ｓ１５１２において、Ｓ１５１１にて作成した応答文字列を出力（チャットサーバ１に対して送信）した後に、このサブルーチンを終了して、処理を図１５のルーチンに戻す。
【０１０７】
これに対して、Ｓ１５０７にて獲得した情報件数が１件以上であるとＳ１５０８にて判断した場合には、ＣＰＵ３１は、Ｓ１５０９において、連携しているＷｅｂサーバ内における特定位置にＳ１５０７にて獲得した応答文字列を書き込むとともに、そのページのＵＲＬを獲得する。次のＳ１５１０では、ＣＰＵ３１は、Ｓ１５０７にて獲得した情報件数及びＳ１５０９にて獲得したＵＲＬを示す応答文字列（メッセージ情報）を作成する。次のＳ１５１２では、ＣＰＵ３１は、Ｓ１５１０にて作成した応答文字列を出力（チャットサーバ１に対して送信）する。Ｓ１５１２の完了後、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンに戻す。
【０１０８】
一方、処理対象サーバが個人情報管理サーバである場合（請求項３４に相当）に実行されるＳ１５１３では、ＣＰＵ３１は、メッセージ本文の第３文節がニックネームであるか個人の不変的情報（本名，メールアドレス，等）であるかを、チェックする。そして、メッセージ本文の第３文節が個人の不変的情報である場合には、ＣＰＵ３１は、処理をＳ１５１７へ進める。これに対して、メッセージ本文の第３文節がニックネームである場合には、ＣＰＵ３１は、Ｓ１５１４において、第３文節が示すニックネームが、連絡先登録テーブル１５の「連絡先利用者」欄に登録されているか否かをチェックする。そして、登録されていない場合には、ＣＰＵ３１は、検索不可能であるとして、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。これに対して、第３文節が示すニックネームが連絡先登録テーブル１５に登録されている場合には、ＣＰＵ３１は、Ｓ１５１６において、メッセージ本文の第３文節の内容を、連絡先登録テーブル１５内でそのニックネームに対応付けられている連絡先アドレスへ変換した後に、処理をＳ１５１７へ進める。
【０１０９】
Ｓ１５１７では、ＣＰＵ３１は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、ＣＰＵ３１は、メッセージ本文の第３文節に示された検索条件（個人の不変的情報）に対応した個人情報を検索することを内容としたリクエスト文字列を作成する。なお、第３文節に示された検索条件は、その一部がワイルドカード（＊）に置き換えられていても良い。その場合には、ワイルドカード（＊）以外の部分を共通とするあらゆる検索条件の論理和に基づいた、あいまい検索となる。
【０１１０】
次のＳ１５１８では、ＣＰＵ３１は、Ｓ１５１７にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【０１１１】
次のＳ１５１９では、ＣＰＵ３１は、処理対象サーバとしての個人情報管理サーバから返答された問合せ結果を解析する。この問合せ結果には、個人情報管理サーバにおいて検索条件に対応付けられている全項目の情報が含まれている。
【０１１２】
次のＳ１５２０では、ＣＰＵ３１は、Ｓ１５１７にて作成したリクエスト文字列中の検索条件があいまい検索のものであるか否かを、チェックする。そして、検索条件があいまい検索のものではなかった場合，即ち、検索条件にワイルドカード（＊）が含まれていなかった場合、ＣＰＵ３１は、処理をＳ１５２１へ進める。このＳ１５２１では、ＣＰＵ３１は、Ｓ１５１９にて解析した問合せ結果の全項目に基づいて応答文字列（メッセージ情報）を作成する。但し、発言者のクライアント２のシステムが問合せ結果の全項目を表示できない場合には、ＣＰＵ３１は、当該システムが表示可能な範囲に限定された項目に基づいて、応答文字列（メッセージ情報）を作成する。これに対して、検索条件があいまい検索のものであった場合，即ち、検索条件にワイルドカード（＊）が含まれていた場合、ＣＰＵ３１は、処理をＳ１５２２へ進める。このＳ１５２２では、ＣＰＵ３１は、Ｓ１５１９にて解析した問合せ結果の全項目のうち予め設定された出力対象項目に基づいて、応答文字列を作成する。
【０１１３】
Ｓ１５２１又はＳ１５２２の完了後、ＣＰＵ３１は、Ｓ１５２３において、Ｓ１５２１又はＳ１５２２にて作成された応答文字列を出力（チャットサーバ１に対して送信）した後に、このサブルーチンを終了して、処理を図１５のルーチンに戻す。
【０１１４】
次に、「動作指示単語」＝“会議室予約”であった場合に実行される図３０のサブルーチンを説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ１６０１において、メッセージ本文の文法を解析する。即ち、第２文節に示された事業所名，第３文節に示された会議室名（場所），第４文節に示された年月日，第５文節に示された時間帯，第６文節に示された予約目的を、夫々、識別する。
【０１１５】
次のＳ１６０２では、ＣＰＵ３１は、メッセージ本文の第２文節に示された事業所のカレンダーサーバを、処理対象サーバ（即ち、連携先のバックエンドサーバ）として決定する。
【０１１６】
次のＳ１６０３では、ＣＰＵ３１は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、ＣＰＵ３１は、メッセージ本文の第３文節に示された会議室を第４文節に示された年月日の第５文節に示された時間帯に第６文節に示された目的で発言者の名前で予約申込することを内容としたリクエスト文字列を、作成する。
【０１１７】
次のＳ１６０４では、ＣＰＵ３１は、Ｓ１６０３にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【０１１８】
次のＳ１６０５では、ＣＰＵ３１は、処理対象サーバとしてのカレンダーサーバから返答された問合せ結果を解析する。ここでの問合せ結果は、予約ができたかできなかったかの何れかである。
【０１１９】
次のＳ１６０６では、ＣＰＵ３１は、Ｓ１６０５での解析結果に基づいて、応答文字列（予約ができたかできなかったかを示すメッセージ情報）を作成する。
【０１２０】
次のＳ１６０７では、ＣＰＵ３１は、Ｓ１６０６にて作成した応答文字列を出力（チャットサーバ１に対して送信）する。このＳ１６０７を完了した後、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンに戻す。
【０１２１】
次に、「動作指示単語」＝“会議室参照”であった場合に実行される図３１のサブルーチンを説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ１７０１において、メッセージ本文の文法を解析する。即ち、第２文節に示された事業所名，第３文節に示された会議室名，第４文節に示された年月日，第５文節に示された時間帯を、夫々、識別する。
【０１２２】
次のＳ１７０２では、ＣＰＵ３１は、メッセージ本文の第２文節に示された事業所のカレンダーサーバを、処理対象サーバ（即ち、連携先のバックエンドサーバ）として決定する。
【０１２３】
次のＳ１７０３では、ＣＰＵ３１は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、ＣＰＵ３１は、メッセージ本文の第３文節に示された会議室が第４文節に示された年月日の第５文節に示された時間帯に予約されていることの確認を内容としたリクエスト文字列を、作成する。
【０１２４】
次のＳ１７０４では、ＣＰＵ３１は、Ｓ１７０３にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【０１２５】
次のＳ１７０５では、ＣＰＵ３１は、処理対象サーバとしてのカレンダーサーバから返答された問合せ結果を解析する。ここでの問合せ結果は、予約がなされていないか、若しくは、誰の名前で何の目的で予約されているかである。
【０１２６】
次のＳ１７０６では、ＣＰＵ３１は、Ｓ１７０５での解析結果に基づいて、応答文字列（メッセージ情報）を作成する。
【０１２７】
次のＳ１７０７では、ＣＰＵ３１は、Ｓ１７０６にて作成した応答文字列を出力（チャットサーバ１に対して送信）する。このＳ１７０７を完了した後、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンに戻す。
【０１２８】
次に、「動作指示単語」＝“予定参照”であった場合に実行される図３２のサブルーチンを説明する。ＣＰＵ３１は、このサブルーチンに入ると、最初のＳ１５０１において、メッセージ本文の文法を解析する。即ち、第２文節に示された事業所名，第３文節に示された個人名，第４文節に示された年月日，第５文節に示された時間帯，若しくは、第２文節に示されたニックネーム，第３文節に示された年月日，第４文節に示された時間帯を、夫々、識別する。
【０１２９】
次のＳ１８０２では、ＣＰＵ３１は、メッセージ本文の第２文節がニックネームであるか否かを、チェックする。そして、メッセージ本文の第２文節がニックネームでない場合（即ち、事業所名である場合）には、ＣＰＵ３１は、処理をＳ１８０６へ進める。これに対して、メッセージ本文の第２文節がニックネームである場合には、ＣＰＵ３１は、Ｓ１８０３において、第２文節が示すニックネームが、予定参照支援テーブル１６の「ニックネーム」欄に登録されているか否かを調べる。次のＳ１８０４では、ＣＰＵ３１は、Ｓ１８０３にて調べた結果ニックネームが登録されていたか否かをチェックし、登録されていない場合には、ＣＰＵ３１は、検索不可能であるとして、このサブルーチンを終了して、処理を図１５のルーチンへ戻す。これに対して、第２文節が示すニックネームが予定参照支援テーブル１６に登録されている場合には、ＣＰＵ３１は、Ｓ１８０５において、メッセージ本文の第２文節を削除して、その位置に、予定参照支援テーブル１６内でそのニックネームと同じ行に記載された「本名」及び「事業所名」の内容を挿入した後に、処理をＳ１８０６へ進める。
【０１３０】
次のＳ１８０６では、ＣＰＵ３１は、メッセージ本文の第２文節に示された事業所のカレンダーサーバを、処理対象サーバ（即ち、連携先のバックエンドサーバ）として決定する。
【０１３１】
Ｓ１８０７では、ＣＰＵ３１は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、ＣＰＵ３１は、メッセージ本文の第３文節に示された個人の第４文節に示された年月日の第５文節に示された時間帯における予定の確認を内容としたリクエスト文字列を、作成する。
【０１３２】
次のＳ１８０８では、ＣＰＵ３１は、Ｓ１８０７にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【０１３３】
次のＳ１８０９では、ＣＰＵ３１は、処理対象サーバとしてのカレンダーサーバから返答された問合せ結果を解析する。
【０１３４】
次のＳ１８１０では、ＣＰＵ３１は、Ｓ１８０９での解析結果に基づいて、応答文字列（メッセージ情報）を作成する。
【０１３５】
次のＳ１８１１では、ＣＰＵ３１は、Ｓ１８１０にて作成した応答文字列を出力（チャットサーバ１に対して送信）する。このＳ１８１１を完了した後、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１５のルーチンに戻す。
【０１３６】
図１５に戻り、Ｓ０２０６での処理が完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１４のルーチンへ戻す。
【０１３７】
図１４に戻り、Ｓ０１０５での処理が完了すると、ＣＰＵ３１は、処理をＳ０１０９へ進める。
【０１３８】
一方、Ｓ０１０６では、ＣＰＵ３１は、キーワード登録テーブル１８の「登録キーワード」欄に記載された各キーワードを、メッセージ本文内で検索する。
【０１３９】
次のＳ０１０７では、ＣＰＵ３１は、キーワード登録テーブル１８の「登録キーワード」欄中の何れかの行に記載されたキーワードの組み合わせがメッセージ本文内に含まれているか否かを、チェックする。そして、何れのキーワードの組み合わせもメッセージ本文内に含まれていない場合には、ＣＰＵ３１は、処理をＳ０１０９へ進める。これに対して、何れかのキーワードの組み合わせがメッセージ本文内に含まれている場合（請求項１９に相当）には、ＣＰＵ３１は、Ｓ０１０８においてキーワード対応処理を実行する（処理実行手段に相当）。
【０１４０】
図１６は、このＳ０１０８にて実行されるサブルーチンを示すフローチャートである。ＣＰＵ３１は、このサブルーチンに入ると、最初の０３０１において、メッセージ本文内に全て含まれているキーワードの組み合わせが「登録キーワード」欄に記載されている行を、文字列キーワード登録テーブル１８内で検索する。
【０１４１】
次のＳ０３０２では、ＣＰＵ３１は、Ｓ０３０１にて検索された行の「登録文字列」欄に文字列が登録されているか否かを、チェックする。そして、該当する行の「登録文字列」欄が空欄である場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１４のルーチンへ戻す。これに対して、該当する行の「登録文字列」欄に文字列（以下、「登録文字列」という）が登録されている場合には、ＣＰＵ３１は、処理をＳ０３０３へ進める。
【０１４２】
Ｓ０３０３では、ＣＰＵ３１は、処理対象メッセージが検出されたチャンネル以外のチャンネル名が、Ｓ０３０１にて検索された行の「チャンネル指定」欄に記載されているか否かを、チェックする。そして、Ｓ０３０１にて検索された行の「チャンネル指定」欄に何れかのチャンネル名が記載されており、且つ、そのチャンネル名と処理対象メッセージが検出されたチャンネルとが対応なければ、ＣＰＵ３１は、登録文字列が有効ではないと判断して、このサブルーチンを終了して、処理を図１４のルーチンへ戻す。これに対して、Ｓ０３０１にて検索された行の「チャンネル指定」欄に処理対象メッセージが検出されたチャンネルのチャンネル名が記載されている場合，又は、Ｓ０３０１にて検索された行の「チャンネル指定」欄が空欄である場合には、ＣＰＵ３１は、処理をＳ０３０４へ進める。
【０１４３】
Ｓ０３０４では、ＣＰＵ３１は、Ｓ０３０１にて検索された行の「登録文字列」欄に記載された登録文字列が単純テキストであるか、若しくは、特殊文字列（“＄＝”，“＄＠”，又は“＄％”）を含んでいるかを、チェックする。そして、登録文字列が単純テキストである場合には、ＣＰＵ３１は、Ｓ０３０５において、登録文字列をそのまま応答（チャットサーバ１に対して送信）した後に、このサブルーチンを終了して、処理を図１４に戻す（請求項２０に相当）。これに対して、登録文字列に特殊文字列が含まれる場合には、ＣＰＵ３１は、処理をＳ０３０６へ進める。
【０１４４】
Ｓ０３０６では、ＣＰＵ３１は、登録文字列に特殊文字“＄＝”が含まれるか否かをチェックする。そして、登録文字列に特殊文字“＄＝”が含まれている場合には、ＣＰＵ３１は、Ｓ０３０７において、メッセージ本文の内容を、登録文字列（特殊文字以外の部分）によって置き換えた後に、Ｓ０３０８において、指示対象処理を実行する。このＳ０３０８にて実行される指示対象処理の内容は、Ｓ０１０５にて実行される図１５のものと全く同じであるので、その説明を省略する。そして、このＳ０３０８を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１４に戻す。これに対して、登録文字列に“＄＝”以外の特殊文字列が含まれる場合には、ＣＰＵ３１は、処理をＳ０３０９へ進める。
【０１４５】
Ｓ０３０９では、ＣＰＵ３１は、特殊文字列（“＄＠”又は“＄％”）を含む登録文字列の内容に従って、応答文字列（メッセージ情報）を作成する。具体的には、登録文字列における特殊文字列以外の部分は文書ファイル名であるので、この特殊文字列が“＄＠”である場合には、ＣＰＵ３１は、その文書ファイルにおける任意の１行のみを示す応答文字列（メッセージ情報）を作成する。また、特殊文字列が“＄％”である場合には、ＣＰＵ３１は、その文書ファイルにおける任意の１文のみを示す応答文字列（メッセージ情報）を作成する。
【０１４６】
次のＳ０３１０では、ＣＰＵ３１は、Ｓ０３０９にて作成した応答文字列を、応答（チャットサーバ１に対して送信）する（請求項２１に相当）。このＳ０３１０を完了すると、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１４に戻す。
【０１４７】
図１４に戻り、Ｓ０１０８での処理が完了すると、ＣＰＵ３１は、処理をＳ０１０９へ進める。
【０１４８】
Ｓ０１０９では、ＣＰＵ３１は、チャンネル管理テーブル１２における処理対象メッセージが検出されたチャンネル中の発言者に関する行における「前回の発言時刻」欄に、現在時刻を上書きする。
【０１４９】
次のＳ０１１０では、ＣＰＵ３１は、メッセージ本文中に上述した特定キーワードが含まれているか否かをチェックする。そして、メッセージ本文中に特定キーワードが含まれていなかった場合には、ＣＰＵ３１は、このサブルーチンを終了して、処理を図１１のメインルーチンへ戻す。これに対して、メッセージ本文中に特定キーワードが含まれていた場合には、ＣＰＵ３１は、Ｓ０１１１において、チャンネル管理テーブル１２における処理対象メッセージが検出されたチャンネル中の発言者の行の「前回の発言中のキーワード」欄に、メッセージ本文中に含まれている特定キーワードを書き込む（管理手段に相当）。ＣＰＵ３１は、Ｓ０１１１を完了後、このサブルーチンを終了して、処理を図１１のメインルーチンへ戻す。
【０１５０】
図１１に戻り、Ｓ０００５の処理が終了すると、ＣＰＵ３１は、処理をＳ０００６へ進める（請求項１３に相当）。
【０１５１】
Ｓ０００６では、ＣＰＵ３１は、発言者宛の伝言メッセージがメッセージテーブル１３内にあるか否かを、調べる。即ち、発言者のニックネームが「宛先」欄に記載されている行があるか否かを、調べる。
【０１５２】
次のＳ０００７では、ＣＰＵ３１は、Ｓ０００６にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが無かった場合には、ＣＰＵ３１は、処理をＳ０００４に戻して次のイベント発生を待つ。これに対して、該当する伝言メッセージが有った場合、ＣＰＵ３１は、処理をＳ０００８へ進める。
【０１５３】
Ｓ０００８では、ＣＰＵ３１は、Ｓ０００６にて調べた結果見つかった伝言メッセージについて、過去所定時間（例えば、３分）内に処理対象メッセージの発言者（即ち、伝言メッセージの宛先）に対して何れかのチャンネルを介して通知を行ったか否かをチェックする。そして、通知を行っている場合には、ＣＰＵ３１は、重ねて通知をする必要がないと判断し、処理をＳ０００４に戻して次のイベント発生を待つ。これに対して、過去所定時間内に通知を行っている場合には、ＣＰＵ３１は、処理をＳ０００９へ進める。
【０１５４】
Ｓ０００９では、ＣＰＵ３１は、処理対象メッセージの発言者（即ち、伝言メッセージの宛先）に対して、該当する伝言メッセージがある旨及びその件数を通知する（その旨の文字列をチャットサーバ１に対して送信する）。このＳ０００９を完了すると、ＣＰＵ３１は、処理をＳ０００４に戻して次のイベント発生を待つ。
【０１５５】
一方、ＪＯＩＮメッセージを検出した時に実行されるＳ００１０では、ＣＰＵ３１は、ＪＯＩＮメッセージの発言者である新規接続利用者宛の伝言メッセージがメッセージテーブル１３内にあるか否かを、調べる。即ち、当該新規接続利用者のニックネームが「宛先」欄に記載されている行があるか否かを、調べる。
【０１５６】
次のＳ００１１では、ＣＰＵ３１は、Ｓ００１０にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが無かった場合には、ＣＰＵ３１は、処理をＳ００１４へ進める。これに対して、該当する伝言メッセージが有った場合、ＣＰＵ３１は、処理をＳ００１２へ進める。
【０１５７】
Ｓ００１２では、ＣＰＵ３１は、Ｓ００１０にて調べた結果見つかった伝言メッセージについて、過去所定時間（例えば、３分）内に処理対象メッセージの発言者（即ち、伝言メッセージの宛先）に対して何れかのチャンネルを介して通知を行ったか否かをチェックする。そして、通知を行っている場合には、ＣＰＵ３１は、重ねて通知をする必要がないと判断し、処理をＳ００１４へ進める。これに対して、過去所定時間内に通知を行っている場合には、ＣＰＵ３１は、処理をＳ００１３へ進める。
【０１５８】
Ｓ００１３では、ＣＰＵ３１は、新規接続利用者に対して、該当する伝言メッセージがある旨及びその件数を通知する（その旨の文字列をチャットサーバに対して送信する）（請求項１１及び請求項１２に相当）。このＳ００１３を完了すると、ＣＰＵ３１は、処理をＳ００１４へ進める。
【０１５９】
Ｓ００１４では、ＣＰＵ３１は、新規接続利用者のニックネームが予定参照支援テーブル１６の「ニックネーム」欄に記載されているか否か、及び、どの行に記載されているのかを、調べる。
【０１６０】
次のＳ００１５では、ＣＰＵ３１は、Ｓ００１４にて調べた結果に基づいて、ニックネームが登録されているかどうかをチェックし、登録されていない場合には、処理をそのままＳ０００４に戻して、次のイベント発生を待つ。これに対してニックネームが登録されている場合には、ＣＰＵ３１は、処理をＳ００１６へ進める。
【０１６１】
Ｓ００１６では、ＣＰＵ３１は、Ｓ００１４にて調べた行の「事業所名」欄に記載された事業所（即ち、ニックネームに対応付けられた事業所）のカレンダーサーバを、処理対象サーバ（即ち、連携先のバックエンドサーバ）として決定する。
【０１６２】
次のＳ００１７では、ＣＰＵ３１は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、ＣＰＵ３１は、Ｓ００１４にて調べた行の「本名」欄に記載された個人（即ち、ニックネームに対応付けられた本名が示す個人）の現時点から一定時間（例えば、２４時間）内の予定の確認を内容としたリクエスト文字列を、作成する。
【０１６３】
次のＳ００１８では、ＣＰＵ３１は、Ｓ００１７にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【０１６４】
次のＳ００１９では、ＣＰＵ３１は、処理対象サーバとしてのカレンダーサーバから返答された問合せ結果を解析する。
【０１６５】
次のＳ００２０では、ＣＰＵ３１は、Ｓ００１９での解析結果に基づいて、応答文字列を作成する。
【０１６６】
次のＳ００２１では、ＣＰＵ３１は、Ｓ００２０にて作成した応答文字列を出力（チャットサーバ１に対して送信）する。このＳ００２１を完了した後、ＣＰＵ３１は、処理をＳ０００４へ戻し、新たなイベントの発生を待つ。
【０１６７】
一方、所定周期（例えば、１分間）のタイムアップが発生した時に実行されるＳ００２２では、ＣＰＵ３１は、日時指定メッセージテーブル１４内において、「指定日時」欄に記載された日時が現在時刻以前である伝言メッセージを調べる。
【０１６８】
次のＳ００２３では、ＣＰＵ３１は、Ｓ００２２で調べた結果に基づいて、該当する伝言メッセージが有るか否かをチェックし、なければ、処理をＳ００２５へ進める。これに対して、該当する伝言メッセージが有る場合、ＣＰＵ３１は、処理をＳ００２４へ進める。
【０１６９】
Ｓ００２４では、ＣＰＵ３１は、日時指定メッセージテーブル１４における「指定日時」欄に記載された日時が現在時刻以前である行の記載内容を、メッセージテーブル１３へ移動する（請求項１６に相当）。この際、ＣＰＵ３１は、日時指定メッセージテーブル１４の「指定日時」欄に記載されていた日時を、メッセージテーブル１３の「受信日時」欄へ書き込む。このＳ００２４を完了すると、ＣＰＵ３１は、処理をＳ００２５へ進める。
【０１７０】
Ｓ００２５では、ＣＰＵ３１は、アラーム管理テーブル１７内において、「指定時刻」欄に記載された時刻が現在時刻以前である通知メッセージを調べる。
【０１７１】
次のＳ００２６では、ＣＰＵ３１は、Ｓ００２５で調べた結果に基づいて、該当する通知メッセージが有るか否かをチェックし、なければ、処理をＳ０００４へ戻して、新たなイベント発生を待つ。これに対して、該当する通知メッセージが有る場合、ＣＰＵ３１は、処理をＳ００２７へ進める。
【０１７２】
Ｓ００２７では、ＣＰＵ３１は、アラーム管理テーブル１７における「指定日時」欄に記載された日時が現在時刻以前である行の「通知メッセージ」欄に記載された文字列（通知メッセージ）を、同じ行の「登録者」に記載されたニックネームを宛先として付して、通知する（その旨の文字列をチャットサーバに対して送信する）（請求項３８に相当）。
【０１７３】
次のＳ００２８では、ＣＰＵ３１は、Ｓ００２７にて通知された通知メッセージが記載されていた行の記載内容を、アラーム管理テーブル１７から削除する。このＳ００２８を完了すると、ＣＰＵ３１は、処理をＳ０００４へ戻し、新たなイベント発生を待つ。
【０１７４】
＜疑似クライアントの動作＞
以下、上記のように構成される本実施形態による疑似クライアント３と任意のクライアント２との間でなされる会話を、具体的に説明する。
【０１７５】
〔伝言〕
何れかの利用者がチャンネルに接続した時に会話をしたかった相手がそのチャンネルにいなかった場合、若しくは、先にチャンネルとの接続を切断した利用者に対して伝えたい事がある場合に、その利用者は、下記の形式のメッセージ本文に、疑似クライアント３のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『伝言  user02  来週の金曜日の打ち合わせは中止になりました』
ここで、“伝言”は動作指示単語，“user02”は相手先利用者のニックネーム，“来週の金曜日の打ち合わせは中止になりました”は伝言メッセージの内容である。
【０１７６】
このメッセージを検出した疑似クライアント３は、相手のニックネーム及び伝言メッセージの内容を、メッセージテーブル１３に登録する（Ｓ０４０３）。
【０１７７】
その後、この相手先利用者が何れかのチャンネルに接続すると、疑似クライアント３は、その利用者からのＪＯＩＮメッセージを検出することによって、その利用者宛の伝言メッセージをメッセージテーブル１３から探し出し、その利用者宛の伝言メッセージがある旨を、例えば以下のような形式で通知する（Ｓ００１３）。
『伝言があるんだわん＞user02  （『伝言みせて』でみれるんだわん）』
【０１７８】
但し、このような通知を行った後、所定時間（例えば３分間）以内において、当該相手先利用者が別のチャンネルに対して接続した場合には、伝言メッセージがある旨は通知されず（Ｓ００１２）、所定時間を経過した後に他のチャンネルに接続した場合に限って、再度の通知がなされる（Ｓ００１３）。
【０１７９】
なお、伝言メッセージがある旨は、相手先利用者が何れかのチャンネルに接続した後においても、通知される。即ち、相手先利用者が何れかの宛先を付したメッセージを送信すると、疑似クライアント３は、そのメッセージを検出することによって、その利用者宛の伝言メッセージをメッセージテーブル１３から探し出し、その利用者宛の伝言メッセージがある旨を通知する（Ｓ０００９）。但し、その利用者に対して過去所定時間（例えば３分）内に通知を行っていた場合には、疑似クライアント３は通知を行わず（Ｓ０００８）、所定時間を経過した後にメッセージを検出した場合に限って、通知を行う。従って、相手先がチャンネルに接続しているにも拘わらず発言者がそれに気付かずに伝言メッセージの依頼を行った場合や、相手先が接続時における通知を無視してしまった場合においても、伝言メッセージがある旨が、確実に相手先利用者に通知される。
【０１８０】
さらに、各利用者は、自己宛の伝言メッセージがあるか否かを、任意に、疑似クライアント３に対して問い合わせることができる。この場合、問い合わせを行う利用者は、下記形式のメッセージ本文に、疑似クライアント３のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『伝言ある？』
【０１８１】
このメッセージを検出した疑似クライアント３は、このメッセージの発言者宛の伝言メッセージをメッセージテーブル１３から探し出し、その発言者宛の伝言メッセージがある旨を、例えば以下のような形式で通知する（Ｓ０５０３）。
『１件のメッセージがあるんだわん』
【０１８２】
これに対して、発言者宛の伝言メッセージがない場合には、疑似クライアント３は、例えば以下のような形式で通知する（Ｓ０５０４）。
『ないんだわん』
【０１８３】
以上のようにして自己宛の伝言メッセージがある旨を通知された相手先利用者は、任意に、自己宛の伝言メッセージの送信を求めることができる。この場合、その利用者は、以下の形式のメッセージ本文に、疑似クライアント３のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『伝言みせて』
【０１８４】
このメッセージを検出した疑似クライアント３は、このメッセージの発言者宛の伝言メッセージをメッセージテーブル１３から探し出し、探し出した全ての伝言メッセージを、例えば以下の形式で、依頼者名とともに発言者宛に送信する（Ｓ０６０３）。
『user01（受信日時）：来週の金曜日の打ち合わせは中止になりました』
ここで、“user01”は、伝言メッセージの依頼者のニックネームを示す。
【０１８５】
続いて、疑似クライアント３は、伝言メッセージを送信中である旨を、例えば以下の形式で依頼者に対して通知する（Ｓ０６０４）。
『user02さんが伝言を読んでるんだわん』
“user02”は、伝言メッセージの相手先利用者のニックネームを示す。
【０１８６】
続いて、疑似クライアント３は、送信完了した全メッセージをメッセージテーブル１３から削除する（Ｓ０６０５）。
【０１８７】
なお、依頼者が疑似クライアント３に対して伝言メッセージの依頼をした後にチャンネルに対する接続を切断してしまった場合には、依頼者は、伝言メッセージが送信中である旨の上述した通知を読むことができない。そこで、本実施形態においては、伝言メッセージの依頼をした利用者が任意に伝言メッセージが相手先へ通知されたか否かを問い合わせできる手段が、用意されている。具体的には、伝言メッセージの依頼をした利用者は、以下の形式のメッセージ本文に、疑似クライアント３のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『伝言どうかな？』
【０１８８】
このメッセージを検出した疑似クライアント３は、この利用者によって過去に依頼された伝言メッセージのうちメッセージテーブル１３内に残っている（即ち、未だ相手先利用者に送信されていない）ものの全てを、例えば以下の形式で依頼元利用者に提示する（Ｓ０７０３）。
『user02（受信日時）：来週の金曜日の打ち合わせは中止になりました見ていないのがあるんだわん』
ここで、“user02”は、伝言メッセージの相手先利用者のニックネームを示す。
【０１８９】
なお、依頼者が疑似クライアント３に対して伝言メッセージの依頼をした後に伝言を取り消すべき事情が発生した場合には、依頼者は、その伝言メッセージを取り消すことができる。その場合、依頼者は、以下の形式のメッセージ本文に、疑似クライアント３のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『伝言  user02  消して』
ここで、“user02”は、伝言メッセージの相手先利用者のニックネームを示す。
【０１９０】
このメッセージを検出した疑似クライアント３は、この発言者によって過去に依頼された伝言メッセージのうちメッセージテーブル１３内に残っている（即ち、未だ相手先利用者に送信されていない）ものの全てを、例えば以下の形式で発言者に提示した後に（Ｓ０４０６）、それらの伝言メッセージをメッセージテーブル１３から削除する（Ｓ０４０７）。
『user02（受信日時）：来週の金曜日の打ち合わせは中止になりました消したんだわん』
ここで、“user02”は、伝言メッセージの相手先利用者のニックネームを示す。
【０１９１】
〔指定伝言〕
例えば誕生日のメッセージや季節のあいさつ等は、伝言の依頼後直ちに相手先利用者へ通知されるのではなく、指定された日時に通知されることが求められる。そこで、本実施形態においては、相手先へ通知される日時を指定して伝言メッセージを預ける手段が、用意されている。具体的には、通知日時の指定を付して伝言メッセージを依頼する利用者は、下記の形式のメッセージ本文に、疑似クライアント３のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『指定伝言  user03  2000/02/03  10:00  誕生日おめでとう』
ここで、“指定伝言”は動作指示単語，“user03”は相手先利用者のニックネーム，“2000/02/03”は指定された年月日，“10:00”は指定された時刻，“誕生日おめでとう”は伝言メッセージの内容である。
【０１９２】
このメッセージを検出した疑似クライアント３は、指定された年月日及び時刻が現在日時以前であれば、上述した通常の伝言メッセージと同じ扱いを行うが（Ｓ０８０５）、指定された年月日及び時刻が現在日時よりも先であれば、相手先利用者のニックネーム，指定日時（指定された年月日及び時刻）及び伝言メッセージの内容を、日時指定メッセージテーブル１４に登録する（Ｓ０８０３）。
【０１９３】
その後、疑似クライアント３は、所定周期（例えば、１分）がタイムアップする毎に、日時指定メッセージテーブル１４に登録された指定日時を現在日時が過ぎたかどうかを調べ（Ｓ００２２）、現在日時が指定日時を越えた場合には、その指定日時を受信日時とした上で、その指定日時に対応した伝言メッセージを、メッセージテーブル１３へ移す（Ｓ００２４）。以後、この伝言メッセージは、指定日時に依頼された通常の伝言メッセージとして、上述したのと同様に取り扱われる。従って、相手先利用者は、その伝言メッセージを、依頼者が指定日時に依頼したものと認識する。
【０１９４】
〔連絡〕
例えば、何れのチャンネルにも接続していない利用者に対して緊急に連絡したい事情がある場合には、通常の伝言メッセージのように、その利用者が何れかのチャンネルに接続するのを待ってその伝言メッセージを通知するのでは、常に確実にメッセージが通知されるという保証がない。そのため、本実施例においては、そのような緊急なメッセージを、電子メールで直接その相手方利用者にメッセージを通知したり、携帯電話やポケットベルのようにＩＰアドレスを有する携帯端末へメッセージを通知したり、ＦＡＸへメッセージを送信する手段が、用意されている。
【０１９５】
その前提として、相手方利用者へ連絡するためのメディア（伝達方法種別）及び連絡先アドレスが、連絡先登録テーブル１５に登録されている必要がある。そのためには、何れかの利用者が、下記の形式のメッセージ本文を、疑似クライアント３のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信しておかなければならない。
『user04  の連絡先は  email  09012345678@email.phone.co.jp』
ここで、“user04”は連絡先が登録される利用者のニックネーム，“email”は伝達方法種別（電子メール），“09012345678@email.phone.co.jp”は連絡先アドレス（携帯電話の電子メールアドレス）である。
【０１９６】
このメッセージを検出した疑似クライアント３は、メッセージ中のニックネーム，伝達方法種別及び連絡先アドレスを対応付けて、連絡先登録テーブル１５に登録する（Ｓ０９０２）。
【０１９７】
このようにして伝達方法種別及び連絡先アドレスが連絡先登録テーブル１５に登録されている利用者に対する連絡を依頼する利用者は、下記の形式のメッセージ本文を、疑似クライアント３のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『連絡  user04  至急私の自宅に電話ください』
ここで、“連絡”は動作指示単語，“user04”は連絡相手先のニックネーム，“至急私の自宅に電話ください”は伝達対象メッセージである。
【０１９８】
このメッセージを検出した疑似クライアント３は、連絡先登録テーブル１５を検索することによって、このニックネームに対応する伝達方法種別及び連絡先アドレスを読み出す（Ｓ１００１）。そして、読み出した伝達方法種別“email”に対応したバックエンドサーバ（メールサーバ）に対して、連絡先アドレスに向けて伝達対象メッセージを伝達することを依頼する（Ｓ１００３〜Ｓ１００５）。その結果、このバックエンドサーバ（メールサーバ）によって、伝達対象メッセージが、確実に連絡相手先へ伝達される。
【０１９９】
〔利用者の接続状況調査〕
上述した伝言や連絡は、相手先がチャンネルに対して現に接続しているのであれば、通常のメッセージ送信を行えば事足りる。従って、これら伝言や連絡の依頼をする前に、依頼を行おうとする利用者は、相手先がチャンネルに接続しているか否か、若しくは、相手方がチャットサーバ１に接続しているか否かを、知らなければならない。しかしなら、チャットシステムにおいては、各利用者は、自らが接続しているチャットサーバ１のチャンネルに対して誰が現に接続しているのかについての正確な情報を、持たされていない。そのため、本実施例においては、各利用者の接続情報を各利用者が疑似クライアント３に対して問い合わせるための手段が、二通り用意されている。
【０２００】
そのうちの一つは、正確性は多少劣るが疑似クライアント３が単独で処理する故に迅速に解答がなされるものである。疑似クライアント３は、この解答を行うために、常時、各チャンネルへ送信された全ての利用者からのメッセージを監視して、各チャンネルにおいて各利用者から送信された最後（最新）のメッセージの送信時刻（前回の発言時刻），及び、そのメッセージから抽出された特定キーワード（各利用者がチャンネルとの接続を切断することを示唆する言葉）を、チャンネル管理テーブル１２に記録している（Ｓ０１１１）。そして、自らが接続しているチャンネルに対して特定の他の利用者が現に接続しているか否かを問い合わせようとする利用者は、下記の形式のメッセージ本文を、疑似クライアント３のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『user05  いる？』
ここで、“user05”は、問い合わせ対象である他の利用者のニックネームである。
【０２０１】
このメッセージを検出した疑似クライアント３は、チャンネル管理テーブル１２を検索することによって、そのチャンネルにその利用者がいるかどうかを判定する（Ｓ１１０１）。具体的には、チャンネル管理テーブル１２においてその利用者が最後にした発言中の特定キーワードが登録されている場合には、疑似クライアント３は、例えば下記形式の解答を行う（Ｓ１１０３）。
『帰った可能性があるわん（10:00  ばいばい）』
ここで、“10:00”は前回の発言時刻であり、“ばいばい”は前回の発言中の特定キーワードである。
【０２０２】
これに対して、特定キーワードが登録されていない場合には、疑似クライアント３は、例えば下記形式の解答を行う（Ｓ１１０４）。
『いるわん』
【０２０３】
各利用者の接続情報を各利用者が疑似クライアント３に対して問い合わせるための手段の他の一つは、疑似クライアント３がチャットサーバ１と連携することによって正確な解答を行うものである。チャットサーバ１は、この解答を行うために、各チャンネルに現に接続しているクライアント２の情報を、常時管理している。そして、特定の他の利用者がチャットサーバ１の何れかのチャンネルに接続しているのか否かを問い合わせようとする利用者は、下記の形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『user06  どこにいる？』
ここで、“user06”は、問い合わせ対象である他の利用者のニックネームである。
【０２０４】
このメッセージを検出した疑似クライアント３は、チャットサーバ１に対して、その利用者がどのチャンネルに接続中であるかの調査を、ｗｈｏｉｓコマンド等を用いて依頼する（Ｓ１２０１〜Ｓ１２０３）。この依頼を受けたチャットサーバ１は、その利用者が現に接続中の全チャンネルの特定情報，若しくは、どのチャンネルにも接続していない旨を解答する。この解答を受けた疑似クライアント３は、何れかのチャンネルにその利用者が現に接続中であれば、下記形式の解答を行う（Ｓ１２０６）。
『＃patent，＃planning  にいるだわん』
ここで、“＃patent”，“＃planning”は、夫々、チャンネルの名称である。
【０２０５】
〔通知〕
例えば、チャットサーバ１のシステム管理者が、このチャットサーバ１の各チャンネルに接続している全利用者に対して管理上の通知を行う場合には、各チャンネル毎に、同じメッセージを送信しなければならない。そこで、本実施形態においては、疑似クライアント３に対して１回メッセージを送信するだけで、そのメッセージが全チャンネルへ転送される手段が、用意されている。具体的には、このような通知を行おうとする利用者は、下記形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『通知  メンテナンスのため間もなく抜けます』
ここで、“通知”は動作指示単語であり、“メンテナンスのため間もなく抜けます”は、伝言メッセージである。
【０２０６】
このメッセージを検出した疑似クライアント３は、チャンネル管理テーブル１２を参照して、自らが現在接続している全てのチャンネルに対して、伝言メッセージ，依頼者名及び依頼時刻を送信する（Ｓ１３０１）。これにより、各チャンネルに接続している全ての利用者が、その通知を読むことができる。
【０２０７】
〔辞書検索〕
本実施形態においては、チャット中に疑似クライアント３に対して辞書検索を依頼する発言をすれば、疑似クライアント３がバックエンドサーバである辞書サーバに対する検索を代行するので、別段の検索ツールがなくても辞書検索を行うことができる。この場合、辞書検索を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『dict  -t  sample』
ここで、“dict”は辞書機能を呼び出すための動作指示単語であり、“-t”は対象文字の翻訳文を検索するための指定であり、“sample”は辞書対象文字である。
【０２０８】
このメッセージを検出した疑似クライアント３は、文法解析により、“sample”という単語の翻訳依頼であると、判断する（Ｓ１４０１，Ｓ１４０２）。そして、予めシステムに登録しておいたバックエンドサーバ４である辞書サーバに対して、ネットワークインターフェース又はＡＰＩを通じて問い合わせを行い（Ｓ１４０３〜Ｓ１４０５）、その応答結果を、例えば下記形式で、会話中のクライアントからのメッセージとして依頼者宛へ応答する（Ｓ１４０８）。
『［sample］  sample.n（全体・種類を代表する）見本（全体・種類を代表する）標本
，見本，標本：サンプル，試供品；
［sample］  sample.v見本で試す；標本抽出をする；経験する，試す；
［sample］  sample.adj見本になる
以上、３項目（１１件）あったんだわん』
【０２０９】
〔ホームページ検索〕
本実施形態においては、チャット中に疑似クライアント３に対してホームページ検索を依頼する発言をすれば、疑似クライアント３がバックエンドサーバであるポータルサイトに対する検索を代行するので、別途ブラウザを立ち上げなくてもホームページ検索を行うことができる。この場合、ホームページ検索を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『find  search  チャットシステム』
ここで、“find”は検索機能を呼び出すための動作指示単語であり、“seach”はポータルサイトのサーバ名であり、“チャットシステム”は検索対象文字である。
【０２１０】
このメッセージを検出した疑似クライアント３は、文法解析により、“チャットシステム”というキーワードを“search”によって検索することの依頼であると、判断する（Ｓ１５０１〜Ｓ１５０３）。そして、予めシステムに登録しておいたバックエンドサーバ４である“search”に対して、ネットワークインターフェース又はＡＰＩを通じて問い合わせを行い（Ｓ１５０４，Ｓ１５０５）、その応答結果を連携しているＷｅｂサーバに書き込み、そのページのＵＲＬ情報及び情報件数を、例えば下記形式で、依頼者宛に応答する（Ｓ１５０６〜Ｓ１５１０，Ｓ１５１２）。
『http://www.pochi.server.ne.jp/pochi/sample/1.htmlに結果をまとめたんだわん。１２３件あったんだわん』
【０２１１】
なお、バックエンドサーバからの応答結果内に１件も情報が含まれていない場合には、疑似クライアント３は、得られた情報の件数が０件である旨のみを、例えば下記形式で、依頼者宛に応答する（Ｓ１５１１，Ｓ１５１２）。
『０件あったんだわん』
【０２１２】
〔個人情報検索〕
本実施形態においては、チャット中に疑似クライアント３に対して個人情報検索を依頼する発言をすれば、疑似クライアント３がバックエンドサーバである個人情報管理サーバに対する検索を代行するので、別途検索ツールを立ち上げなくても個人情報検索を行うことができる。この場合、個人情報検索を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『find  ldap mail=tyamada@bld-z.pochi.co.jp』
ここで、“find”は検索機能を呼び出すための動作指示単語であり、“ldap”は検索サーバの名称であり、“mail=tyamada@bld-z.pochi.co.jp”は検索条件（電子メールアドレスが“tyamada@bld-z.pochi.co.jp”であること）である。
【０２１３】
このメッセージを検出した疑似クライアント３は、文法解析により、メールアドレスが“tyamada@bld-z.pochi.co.jp”である人物の情報検索を“ldap”サーバによって検索することの依頼であると、判断する（Ｓ１５０１〜Ｓ１５０３）。そして、予めシステムに登録しておいたバックエンドサーバ４である“ldap”サーバに対して、ネットワークインターフェース又はＡＰＩを通じて問い合わせを行い（Ｓ１５１７，Ｓ１５１８）、その応答結果の全項目のうち依頼者のクライアント２で表示可能な範囲の項目を、例えば下記形式で、依頼者宛に応答する（Ｓ１５２１，Ｓ１５２３）。
『会社名＝POCHI Corporation
所蔵  ＝ソフトウェア事業部開発部
名前  ＝山田  太郎
メール＝tyamada@bld-z.pochi.co.jp
事業所＝ビルディング−Ｚ
電話  ：内線＝1234-5678，外線＝03-9876-5432
ＦＡＸ：内線＝1234-6789，外線＝03-9876-4321
以上だわん』
【０２１４】
なお、上記検索条件は、その一部をワイルドカード（＊）に置き換えることができる。その場合には、検索条件は、ワイルドカード以外の部分を共通とする全てのキーワードの論理和と等価になる。従って、検索サーバからの応答結果の項目数は莫大なものとなるので、疑似クライアント３は、このようなあいまい検索の場合に限っては、検索サーバからの応答結果の全項目のうち予め設定された出力対象項目についてのみ、依頼者宛に応答する（Ｓ１５２２，Ｓ１５２３）。例えば、検索依頼のメッセージが以下のようなものだったとする。
『find  ldap mail=suzuki@*』
【０２１５】
この場合に依頼者宛に応答される文字列は、例えば、以下のようになる。
『鈴木  太郎  事業所Ａ  03-5678-1234  suzuki@bld-a.pochi.co.jp
鈴木  次郎  事業所Ｂ  044-432-9876  suzuki@bld-b.pochi.co.jp
鈴木  花子  事業所Ｃ  045-478-1234  suzuki@bld-c.pochi.co.jp
以上、３件あったんだわん』
【０２１６】
また、上述したように連絡先登録テーブル１５にそのニックネーム及び連絡先アドレスが登録されている利用者に関しては、検索条件としてそのニックネームが指定されていても、疑似クライアント３は、連絡先登録テーブル１５を参照することによってそのニックネームを連絡先アドレスに変換して、検索サーバに問い合わせをすることができる（Ｓ１５１４〜Ｓ１５１６）。例えば、ニックネーム“user07”に対して連絡先アドレス“tyamada@bld-z.pochi.co.jp”が連絡先登録テーブル１５に登録されている場合には、以下のような検索依頼のメッセージに対しても、上述したように応答することができる。
『find  ldap user07』
【０２１７】
〔会議室予約〕
本実施形態においては、チャット中に疑似クライアント３に対して会議室予約又は予約状況確認を依頼する発言をすれば、疑似クライアント３がバックエンドサーバである事業所毎のカレンダーサーバに対して、そのカレンダーサーバによって管理されている会議室等の共用設備に対する予約申込又は予約状況参照を代行するので、別段のツールを準備しなくても済む。
【０２１８】
具体的には、会議室予約を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『会議室予約  事業所Ａ  1152会議室  2000/02/03  13:00-18:00  特許連絡会』
ここで、“会議室予約”は情報検索機能呼び出しのための動作指示単語であり、“事業所Ａ”はカレンダーサーバの指定であり、“1152会議室”は予約対象会議室であり、“2000/02/03”は予約対象年月日であり、“13:00-18:00”は予約対象時間帯であり、“特許連絡会”は使用目的である。
【０２１９】
このメッセージを検出した疑似クライアント３は、文法解析により、“事業所Ａ”のカレンダーサーバに対して“1152会議室”を“2000/02/03”の“13:00-18:00”に“特許連絡会”のために使用することを予約する依頼であると、判断する（Ｓ１６０１）。そして、バックエンドサーバ４である事業所Ａのカレンダーサーバに対して、ネットワークインターフェース又はＡＰＩを通じて問い合わせを行い（Ｓ１６０２〜Ｓ１６０４）、その応答結果を、例えば下記形式で、依頼者宛に応答する（Ｓ１６０５〜Ｓ１６０７）。
『カレンダーサーバ：事業所Ａ
予約場所：1152会議室
予約日時：2000/02/03 13:00-18:00
予約メモ：特許連絡会
以上を予約したわん』
【０２２０】
また、会議室の予約状況参照を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『会議室参照  事業所Ａ  1152会議室  2000/02/03 13:00-18:00』
ここで、“会議室参照”は情報検索機能呼び出しのための動作指示単語であり、それ以外の文節の内容は、会議室予約の場合と同じである。
【０２２１】
このメッセージを検出した疑似クライアント３は、文法解析により、“事業所Ａ”のカレンダーサーバに対して“1152会議室”の“2000/02/03”の“13:00-18:00”における予約状況を確認する依頼であると、判断する（Ｓ１７０１）。そして、バックエンドサーバ４である事業所Ａのカレンダーサーバに対して、ネットワークインターフェース又はＡＰＩを通じて問い合わせを行い（Ｓ１７０２〜Ｓ１７０４）、その応答結果を、例えば下記形式で、依頼者宛に応答する（Ｓ１７０５〜Ｓ１７０７）。
『カレンダーサーバ：事業所Ａ
予約者：山田  太郎
2000/02/03 13:00-18:00：特許連絡会
以上だわん』
【０２２２】
なお、上記予約状況確認に対してカレンダーサーバが未予約である旨を応答してきた場合には、その応答結果は、例えば下記形式で、依頼者宛に応答される。
『予約ははいってないんだわん』
【０２２３】
〔予定参照〕
本実施形態においては、チャット中に疑似クライアント３に対して特定個人の予定参照を依頼する発言をすれば、疑似クライアント３がバックエンドサーバである事業所毎のカレンダーサーバに対して、そのカレンダーサーバによって管理されている当該特定個人のスケジュールの参照を代行するので、別段のツールを準備しなくても済む。
【０２２４】
具体的には、特定個人の予定参照を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『予定参照  事業所Ａ  社員Ｂ  2000/02/03 13:00-18:00』
ここで、“予定参照”は情報検索機能呼び出しのための動作指示単語であり、“事業所Ａ”はカレンダーサーバの指定であり、“社員Ｂ”は予定参照対象者の本名であり、“2000/02/03”は予定参照対象年月日であり、“13:00-18:00”は予定参照対象時間帯である。
【０２２５】
このメッセージを検出した疑似クライアント３は、文法解析により、“事業所Ａ”のカレンダーサーバに対して“社員Ｂ”の“2000/02/03”の“13:00-18:00”における予定参照依頼であると、判断する（Ｓ１８０１）。そして、バックエンドサーバ４である事業所Ａのカレンダーサーバに対して、ネットワークインターフェース又はＡＰＩを通じて問い合わせを行い（Ｓ１８０６〜Ｓ１８０８）、その応答結果を、例えば下記形式で、依頼者宛に応答する（Ｓ１８０９〜Ｓ１８１１）。
『カレンダーサーバ：事業所Ａ
2000/02/03 13:00-18:00：特許連絡会
以上だわん』
【０２２６】
なお、予定参照を依頼する利用者は、予定参照対象者の本名及び担当カレンダーサーバの設置事業所名をその対象者のニックネームに関連付けて予め予定参照支援テーブル１６に登録しておけば、上記予定参照依頼のメッセージにおいて本名（社員Ｂ）及びカレンダーサーバの指定（事業所Ａ）の代わりにニックネーム（user08）を書き込めば足りるようになる。具体的には、依頼者は、予め、下記形式の二つメッセージ本文を、夫々、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『user08  の名前は  社員Ｂ』
『user08  のカレンダーサーバは  事業所Ａ』
【０２２７】
これらのメッセージを検出した疑似クライアント３は、“社員Ｂ”，“事業所Ａ”及び“user08”を、互いに関連付けて予定参照支援テーブル１６に登録する（Ｓ１９０２，Ｓ２００２）。以後、この社員Ｂについての予定参照を依頼する利用者は、上記形式の代わりに、下記形式のメッセージ本文を用いることが可能になる。
『予定参照  user08  2000/02/03 13:00-18:00』
【０２２８】
このメッセージを検出した疑似クライアント３は、予定参照支援テーブル１６を参照して、“user08”を“事業所Ａ”“社員Ｂ”と置き換える（Ｓ１８０３〜Ｓ１８０５）。そして、上述したのと同様の処理を行って、同じ応答結果を依頼者宛に応答する（Ｓ１８０６〜Ｓ１８１１）。
【０２２９】
また、上述したように予定参照支援テーブル１６に自らのニックネーム“user08”，本名“社員Ｂ”及び担当カレンダーサーバの設置事業所名“事業所Ａ”が登録されている利用者が何れかのチャンネルに接続すると、その利用者からのＪＯＩＮメッセージを受信した疑似クライアント装置３は、予定参照支援テーブル１６を参照することによってその利用者のニックネーム“user08”に対応する本名及び担当カレンダーサーバの設置事業所名が夫々“社員Ｂ”，“事業所Ａ”であると認識する（Ｓ００１４）。すると、疑似クライアント３は、バックエンドサーバ４である事業所Ａのカレンダーサーバに対して、ネットワークインターフェース又はＡＰＩを通じて、社員Ｂの以後２４時間の予定を問い合わせ（Ｓ００１６〜Ｓ００１８）、その応答結果を、例えば下記形式で、依頼者宛に応答する（Ｓ００１９〜Ｓ００２１）。
『＝user08＝  本日の予定：
＝user08＝  13:00-18:00：特許連絡会
＝user08＝  以上だわん』
【０２３０】
〔アラーム〕
上述した指定伝言は、主に、依頼者以外の他の利用者を宛先とするものであり、相手先利用者が新規接続するか何らかのメッセージ送信を行わない限りその相手先利用者によって読まれることのないものであったが、指定時間になったら直ちに依頼者自身宛にメッセージが送信されれば、依頼者は、このメッセージをアラームとして利用することができる。そこで、本実施形態においては、そのようなアラームの手段が、用意されている。具体的には、アラーム設定を依頼する利用者は、下記形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として付して、チャンネルへ送信する。
『アラーム  17:00 歯医者に行く時間』
ここで、“アラーム”は時間経過通知のための動作指示単語であり、“17:00”はアラームを求める指定時刻であり、“歯医者に行く時間”は通知メッセージである。
【０２３１】
このメッセージを検出した疑似クライアント３は、指定時刻（17:00）及び通知メッセージ（歯医者に行く時間）を依頼者のニックネーム（user09）に関連付けてアラーム管理テーブル１７に登録する（Ｓ２１０４）。
【０２３２】
なお、依頼者は、アラーム設定を依頼するメッセージ本文において、指定時刻の代わりに、現在から何分経過後にアラームを求めるかを指定する指定時間を書き込むこともできる。この場合のメッセージ本文の形式は、以下の通りとなる。
『アラーム  60歯医者に行く時間』
ここで、“60”が指定時間である。
【０２３３】
このメッセージを検出した疑似クライアント３は、指定時間“60”によって指定された６０分を現在時刻に加算することによって、指定時刻に変換する（Ｓ２１０３）。その後、上述したのと同様にして、アラーム管理テーブル１７に対する登録を行う（Ｓ２１０４）。
【０２３４】
その後、疑似クライアント３は、所定周期（例えば、１分）がタイムアップする毎に、アラーム管理テーブル１７に登録された指定時刻（17:00）に現在日時が達したか否かを調べ（Ｓ００２５）、現在日時が指定時刻(17:00)になった場合には、その指定時刻（17:00）に対応した通知メッセージ（歯医者に行く時間）を、例えば下記形式で、それに対応したニックネーム（user09）の利用者宛に通知するとともに（Ｓ００２７）、アラーム管理テーブル１７上から削除する（Ｓ００２８）。
『歯医者に行く時間  なんだわん＞user09』
【０２３５】
〔キーワード対応処理〕
本実施形態においては、予めキーワード群に応答文字列を対応付けておくことにより、チャット中でなされたこれらキーワード群を含む発言に対応した文字列を、疑似クライアント３の発言として、チャンネルへ送信することができる。
【０２３６】
具体的には、予め、何れかのチャンネルに接続している何れかの利用者が、キーワード群と文字列とを対応させる「メモ」の登録を依頼するために、下記の形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として、チャンネルへ送信する。
『メモ  user10，ホームページ  http://www.foo.bar.ne.jp/home/user10』
ここで、“メモ”は情報登録のための動作指定単語であり、カンマで区切られて並べられた“user10”及び“ホームページ”は登録対象キーワード群であり、スペースを置いて続く“http://www.foo.bar.ne.jp/home/user10”はキーワード群に対応付けられる文字列である。
【０２３７】
このメッセージを検出した疑似クライアント３は、文法解析により、“user10”及び“ホームページ”というキーワード群と文字列“http://www.foo.bar.ne.jp/home/user10”とを対応付けて、キーワード登録テーブル１８に登録する（Ｓ２２０１，Ｓ２２０２）。
【０２３８】
一方、疑似クライアント３は、常時、各チャンネルに各利用者から送信された全ての発言（メッセージ）を監視しており（Ｓ０１０７）、キーワード登録テーブル１８に登録されている何れかのキーワード群を全て含む発言（メッセージ）を検出すると、キーワード登録テーブル１８においてそのキーワード群に対応付けられて登録されている文字列を、そのチャンネルへ送信する（Ｓ０３０９，Ｓ０３１０）。上記「メモ」の登録後、例えば、以下のような発言（メッセージ）が検出されたとする。
『user10  さんのホームページアドレスって、何ですか？』
【０２３９】
すると、疑似クライアント３は、キーワード登録テーブル１８に登録されているキーワード群“user10”，“ホームページ”がこの発言（メッセージ）中に含まれている事を検出し、そのキーワード群に対応付けられてキーワード登録テーブル１８に登録されている文字列“http://www.foo.bar.ne.jp/home/user10”に従って、以下の形式の応答を行う（Ｓ０３０５）。
『http://www.foo.bar.ne.jp/home/user10だわん』
【０２４０】
なお、キーワード群と文字列とを対応させる「メモ」の登録を依頼する利用者は、キーワード群と文字列との対応を特定のチャンネルでのみ有効とするように指定することができる。この場合、その利用者は、下記の形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として、チャンネルへ送信する。
『メモ  user10，ホームページ，＃sample  http://www.foo.bar.ne.jp/home/user10』
ここで、カンマに続く“＃sample”はチャンネルの指定である。
【０２４１】
このメッセージを検出した疑似クライアント３は、＃から始まる文節である“＃sample”を、チャンネル指定と認識して、キーワード群及び文字列に対応付けてキーワード登録テーブル１８に登録する（Ｓ２２０２）。
【０２４２】
以後、チャンネル名が“＃sample”であるチャンネル以外において、“＃sample”に対応したキーワード群“user10”，“ホームページ”を含む発言（メッセージ）がなされても、疑似クライアント３は、その発言（メッセージ）を無視する（Ｓ０３０３）。そして、チャンネル名が“＃sample”であるチャンネルにおいて“＃sample”に対応したキーワード群“user10”，“ホームページ”を含む発言（メッセージ）がなされた場合のみ、そのキーワード群に対応付けられてキーワード登録テーブル１８に登録されている文字列“http://www.foo.bar.ne.jp/home/user10”を応答する（Ｓ０３０５）。
【０２４３】
ところで、各利用者は、以上のようにしてキーワード登録テーブル１８に登録された全ての「メモ」の内容を確認することができる。この場合には、「メモ」の内容の確認を求める利用者は、下記の形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として、チャンネルへ送信する。
『メモ一覧』
ここで、“メモ一覧”は情報参照のための動作指示単語である。
【０２４４】
このメッセージを検出した疑似クライアント３は、キーワード登録テーブル１８に登録されている全ての情報をｈｔｍｌファイルに変換し、環境設定により定められた指定のWebサーバに書き込むと同時に、対応するＵＲＬを生成する。そして、そのＵＲＬを、例えば下記形式で、依頼者宛に通知する（Ｓ２３０２，Ｓ２３０４，Ｓ２３０５）。
『http://www.pochi.server.ne.jp/pochi/sample/2.htmlにメモ一覧をまとめたんだわん。２３件あったんだわん』
【０２４５】
なお、この「メモ」の内容の確認を求める際には、何れかのチャンネルについてのみ有効な「メモ」に限ってその内容を確認することも可能である。この場合、確認を求める利用者は、下記の形式のメッセージ本文を、疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先として、チャンネルへ送信する。
『メモ一覧  ＃sample』
ここで“＃sample”は、チャンネルの指定である。
【０２４６】
このメッセージを検出した疑似クライアント３は、“＃sample”に関連付けられてキーワード登録テーブル１８に登録されている情報のみをｈｔｍｌファイルに変換し、環境設定により定められた指定のWebサーバに書き込むと同時に、対応するＵＲＬを生成する。そして、そのＵＲＬを、例えば下記形式で、依頼者宛に通知する（Ｓ２３０３，Ｓ２３０４，Ｓ２３０５）。
『http://www.pochi.server.ne.jp/pochi/sample/3.htmlに＃sampleのメモ一覧をまとめたんだわん。１１件あったんだわん』
【０２４７】
以上の説明は、キーワード群が発言中に検出された時にそのまま出力される文字列（単純テキスト）をキーワード登録テーブル１８に登録することの説明であるが、単純テキストではなく、特殊文字列（$@，$%，$=）を含む文字列をキーワード登録テーブル１８に登録することも可能である。
【０２４８】
具体的には、以下の内容を有する“dice.txt”なるファイル名の文書ファイルがあるとする。
『１
２
３
４
５
６』
【０２４９】
この場合、各利用者は、特殊文字列“$@”に続けることによって、このファイル名“dice.txt”を、キーワード登録テーブル１８に文字列として登録することができる。即ち、登録を求める利用者は、下記の形式のメッセージ本文に疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先としてチャンネルへ送信する。
『メモ  さいころ，$@disc.txt』
【０２５０】
その後、疑似クライアント３は、キーワード群“さいころ”を含むメッセージを検出すると、特殊文字列“$@”に続くファイル名“disc.txt”が示すファイルから任意の１行を読み出して、応答する（Ｓ０３０９，Ｓ０３１０）。この場合、メッセージを送信した利用者と疑似クライアント３との会話は、例えば、以下の様になる。
『＜user11＞さいころ
＜pochi＞  ４
＜user11＞さいころ
＜pochi＞  ２』
【０２５１】
また、以下の内容を有する“news.txt”なるファイル名の文書ファイルがあるとする。
『news1-1
news1-2
news1-3
news2-1
news2-2』
【０２５２】
この場合、各利用者は、特殊文字列“$%”に続けることによって、このファイル名“news.txt”を、キーワード登録テーブル１８に文字列として登録することができる。即ち、登録を求める利用者は、下記の形式のメッセージ本文に疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先としてチャンネルへ送信する。
『メモ  ニュース，$%news.txt』
【０２５３】
その後、疑似クライアント３は、キーワード群“ニュース”を含むメッセージを検出すると、特殊文字列“$%”に続くファイル名“news.txt”が示すファイルからデリミタ（例えば、空行）で区切られた任意の１文を読み出して、応答する（Ｓ０３０９，Ｓ０３１０）。この場合、メッセージを送信した利用者と疑似クライアント３との会話は、例えば、以下の様になる。
『＜user12＞ニュース
＜pochi＞  news2-1
＜pochi＞  news2-2
＜user12＞ニュース
＜pochi＞  news1-1
＜pochi＞  news1-2
＜pochi＞  news1-3』
【０２５４】
また、各利用者は、特殊文字列“$=”に続けることによって、指示対象処理（Ｓ０３０８）を求めるメッセージを、キーワード登録テーブル１８に文字列として登録することができる。即ち、登録を求める利用者は、下記の形式のメッセージ本文に疑似クライアント２のニックネーム（ｐｏｃｈｉ）を宛先としてチャンネルへ送信する。
『メモ  利用者Ａ，いますか？  $=user13いる？』
ここで、“user13いる？”は図２４に示す指示対象処理を求めるためのメッセージ本文の内容である。
【０２５５】
その後、疑似クライアント３は、キーワード群“利用者Ａ”，“いますか？”を含むメッセージを検出すると、特殊文字列“$=”に続くメッセージ本文に基づいて、その動作指示単語又は指定文節（いる？）に対応した指示対象処理（図２４）を実行する（Ｓ０３０８）。
【０２５６】
以上に説明した本実施形態によると、チャットサーバ１の各チャンネルに接続した利用者は、そのチャンネルに他のクライアント２が接続していなくても、所定の形式のメッセージをそのチャンネルへ送信すれば、そのメッセージの内容に従った処理を疑似クライアント３が実行するので、チャットに接続している時間を有効に活用することができる。また、チャンネルに複数の利用者が接続している場合においても、疑似クライアント３は、各利用者からの発言（メッセージ）の内容に応じて所定の処理を実行するので、各利用者は、チャットシステム以外の別段のツールを用いることなく会話中における指示によって、疑似クライアント３に様々な処理を実行させて、会話をサポートさせることができる。
【０２５７】
【発明の効果】
以上説明したように、本発明の疑似クライアント装置によれば、チャットサーバが提供する特定のチャンネルに対して接続してきた利用者のクライアント端末に対して別個のクライアントとして振る舞い、このクライアント端末から送信されたメッセージ内容に応じて、このクライアント端末との間で情報の授受を自動的に行うことができる。
【図面の簡単な説明】
【図１】  本発明の原理図
【図２】  本発明の実施の形態であるチャットシステムの全体構成を示すブロック図
【図３】  疑似クライアント装置の内部構成を示すブロック図
【図４】  チャンネル管理テーブルの構成を示す図
【図５】  メッセージテーブルの構成を示す図
【図６】  日時指定メッセージテーブルの構成を示す図
【図７】  連絡先登録テーブルの構成を示す図
【図８】  予定参照支援テーブルの構成を示す図
【図９】  アラーム管理テーブルの構成を示す図
【図１０】  キーワード登録テーブルの構成を示す図
【図１１】  疑似クライアントプログラムに従ってＣＰＵが実行する処理のメインルーチンを示すフローチャート
【図１２】  疑似クライアントプログラムに従ってＣＰＵが実行する処理のメインルーチンを示すフローチャート
【図１３】  疑似クライアントプログラムに従ってＣＰＵが実行する処理のメインルーチンを示すフローチャート
【図１４】  図１１のＳ０００５にて実行されるサブルーチンを示すフローチャート
【図１５】  図１４のＳ０１０５又は図１６のＳ０３０８にて実行されるサブルーチンを示すフローチャート
【図１６】  図１４のＳ０１０８にて実行されるサブルーチンを示すフローチャート
【図１７】  動作指示単語＝「伝言」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図１８】  動作指示単語＝「伝言ある？」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図１９】  動作指示単語＝「伝言みせて」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図２０】  動作指示単語＝「伝言どうかな？」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図２１】  動作指示単語＝「指定伝言」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図２２】  指定文節＝「の連絡先は」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図２３】  動作指示単語＝「連絡」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図２４】  指定文節＝「いる？」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図２５】  指定文節＝「どこにいる？」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図２６】  動作指示単語＝「通知」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図２７】  動作指示単語＝「dict」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図２８】  動作指示単語＝「find」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図２９】  動作指示単語＝「find」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図３０】  動作指示単語＝「会議室予約」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図３１】  動作指示単語＝「会議室参照」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図３２】  動作指示単語＝「予定参照」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図３３】  指定文節＝「の名前は」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図３４】  指定文節＝「カレンダーサーバは」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図３５】  動作指示単語＝「アラーム」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図３６】  動作指示単語＝「メモ」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図３７】  動作指示単語＝「メモ一覧」の場合に図１５のＳ０２０２にて実行されるサブルーチンを示すフローチャート
【図３８】  チャットの概念の説明図
【符号の説明】
１      チャットサーバ
２      クライアント
３      疑似クライアント
４      バックエンドサーバ
１１      疑似クライアントプログラム
１２      チャンネル管理テーブル
１３      メッセージテーブル
１４      日時指定メッセージテーブル
１５      連絡先登録テーブル
１６      予定参照支援テーブル
１７      アラーム管理テーブル
１８      キーワード登録テーブル
３１      ＣＰＵ
３２      ＲＡＭ
３３      ハードディスク
【図１】
0004172886.tif 000002
【図２】
0004172886.tif 000003
【図３】
0004172886.tif 000004
【図４】
0004172886.tif 000005
【図５】
0004172886.tif 000006
【図６】
0004172886.tif 000007
【図７】
0004172886.tif 000008
【図８】
0004172886.tif 000009
【図９】
0004172886.tif 000010
【図１０】
0004172886.tif 000011
【図１１】
0004172886.tif 000012
【図１２】
0004172886.tif 000013
【図１３】
0004172886.tif 000014
【図１４】
0004172886.tif 000015
【図１５】
0004172886.tif 000016
【図１６】
0004172886.tif 000017
【図１７】
0004172886.tif 000018
【図１８】
0004172886.tif 000019
【図１９】
0004172886.tif 000020
【図２０】
0004172886.tif 000021
【図２１】
0004172886.tif 000022
【図２２】
0004172886.tif 000023
【図２３】
0004172886.tif 000024
【図２４】
0004172886.tif 000025
【図２５】
0004172886.tif 000026
【図２６】
0004172886.tif 000027
【図２７】
0004172886.tif 000028
【図２８】
0004172886.tif 000029
【図２９】
0004172886.tif 000030
【図３０】
0004172886.tif 000031
【図３１】
0004172886.tif 000032
【図３２】
0004172886.tif 000033
【図３３】
0004172886.tif 000034
【図３４】
0004172886.tif 000035
【図３５】
0004172886.tif 000036
【図３６】
0004172886.tif 000037
【図３７】
0004172886.tif 000038
【図３８】
0004172886.tif 000039