(57)【特許請求の範囲】
【請求項１】
ストーリーの展開に伴って階層間を移動するように、テキストデータ間の親子関係が定義付けられた、階層構造を有する複数のテキストデータからなるデータベースの更新方法であって、
テキスト通信装置との間でネットワークを介した通信が可能であり、且つ、前記データベースを備える、ホスト通信装置が、
前記データベースから読み出した第１のテキストデータを前記テキスト通信装置に送信し出力させるステップと、
前記テキスト通信装置において入力された第２のテキストデータを前記テキスト通信装置から受信するステップと、
前記第２のテキストデータを前記第１のテキストデータの子として前記データベースに登録するステップと、
前記第２のテキストデータに近似する第３のテキストデータを前記データベースから検索するステップと、
検索された第３のテキストデータを親とする第４のテキストデータを前記データベースから検索するステップと、
検索された第４のテキストデータが前記第３のテキストデータの子であるだけでなく前記第２のテキストデータの子にもなるように、前記データベースにおける前記第２のテキストデータと前記第４のテキストデータの間の親子関係の定義付けを変更するステップと、
を実行するデータベースの更新方法。
【請求項２】
前記ホスト通信装置が、
前記第２のテキストデータを、前記テキスト通信装置とは異なる他のテキスト通信装置に送信し出力させるステップと、
前記他のテキスト通信装置において入力された第５のテキストデータを前記他のテキスト通信装置から受信するステップと、
前記第５のテキストデータを前記第２のテキストデータの子として前記データベースに登録するステップと、
を実行する請求項１に記載のデータベースの更新方法。
【請求項３】
前記ホスト通信装置が、
前記第５のテキストデータが前記第２のテキストデータの子であるだけでなく前記第３のテキストデータの子にもなるように、前記データベースにおける前記第３のテキストデータと前記第５のテキストデータの間の親子関係の定義付けを変更するステップを実行する請求項２に記載のデータベースの更新方法。
【請求項４】
前記テキストデータはゲームにおける複数のキャラクタ間の対話において交換されるメッセージを構成する請求項１乃至３のいずれかに記載のデータベースの更新方法。
【請求項５】
請求項１乃至４のいずれかに記載のデータベースの更新方法における各ステップを、前記ホスト通信装置に実行させるためのプログラムを記憶させたコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テキストデータからなるデータベースの更新方法及びゲーム機，携帯電話，携帯情報端末，パーソナルコンピュータ等のようにテキストを出力できる出力部とテキストを入力する入力部とを有し、他の装置との間で、テキストを送受信できる装置を含むテキスト通信システムに関するものである。
【０００２】
【従来の技術】
従来、この種のテキスト通信システムとしては、例えば、パーソナルコンピュータとホストコンピュータとをインターネットを介して接続し、パーソナルコンピュータ上でゲームを行うシステムがあった。このようなテキスト通信システムでは、まず、設定されたストーリーに従って、ホストコンピュータからの質問としてのテキストと質問に対する複数の回答としてのテキストがユーザーのパーソナルコンピュータのディスプレイに表示される。ここで、ユーザーが、複数の回答の中から適当なものを選択して入力すると、その情報がホストコンピュータ側へ送信され、選択された回答に対応するテキストとそれに対する複数の回答が抽出されて再びユーザーのパーソナルコンピュータのディスプレイに表示される。このようにして、対話形式でユーザーとホストとの間でテキストが送受信されることによってゲームが進行して行く。
【０００３】
【発明が解決しようとする課題】
しかしながら、このようなシステムでは、ストーリーに沿って準備されたテキストの組み合わせに従い、自分又は自らが選択したキャラクタに扮して、他のキャラクタと対話することとなるため、設定された仮想のキャラクタとの対話であるとの感覚が強く、リアリティに乏しいものであった。
【０００４】
また、ストーリーも予め設定された所定数のテキスト群から選択されるテキストのやりとりによって進行するため、展開のバラエティが限られてしまい、回数を重ねることによって飽きが生じていた。
【０００５】
本発明は上記の従来技術の課題を解決するためになされたもので、その目的とするところは、リアリティにあふれて飽きの来ないストーリー展開が可能なデータベース及びテキスト通信システムを提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために本発明は、ストーリーの展開に伴って階層間を移動するように、テキストデータ間の親子関係が定義付けられた、階層構造を有する複数のテキストデータからなるデータベースの更新方法であって、テキスト通信装置との間でネットワークを介した通信が可能であり、且つ、前記データベースを備える、ホスト通信装置が、前記データベースから読み出した第１のテキストデータを前記テキスト通信装置に送信し出力させるステップと、前記テキスト通信装置において入力された第２のテキストデータを前記テキスト通信装置から受信するステップと、前記第２のテキストデータを前記第１のテキストデータの子として前記データベースに登録するステップと、前記第２のテキストデータに近似する第３のテキストデータを前記データベースから検索するステップと、検索された第３のテキストデータを親とする第４のテキストデータを前記データベースから検索するステップと、検索された第４のテキストデータが前記第３のテキストデータの子であるだけでなく前記第２のテキストデータの子にもなるように、前記データベースにおける前記第２のテキストデータと前記第４のテキストデータの間の親子関係の定義付けを変更するステップと、を実行するデータベースの更新方法である。ここで、前記ホスト通信装置が、前記第２のテキストデータを、前記テキスト通信装置とは異なる他のテキスト通信装置に送信し出力させるステップと、前記他のテキスト通信装置において入力された第５のテキストデータを前記他のテキスト通信装置から受信するステップと、前記第５のテキストデータを前記第２のテキストデータの子として前記データベースに登録するステップと、を実行するとよい。また、前記ホスト通信装置が、前記第５のテキストデータが前記第２のテキストデータの子であるだけでなく前記第３のテキストデータの子にもなるように、前記データベースにおける前記第３のテキストデータと前記第５のテキストデータの間の親子関係の定義付けを変更するステップを実行するとよい。
【０００７】
このように、第１のテキストデータを出力し、実際に入力されて初めて第１のテキストデータに対して子として定義できるような第２のテキストデータを新たに入力させて、入力された第２のテキストデータをいずれかのテキストデータの親として定義することにより、新たに入力されたテキストデータをデータベースに取り込むことができる。取り込まれたテキストデータは、実際に特定の人によって入力されたものであるから、リアリティがある。また、新たに取り込まれた第２のテキストデータは、第１のテキストデータに対して子として既に定義されていたものではないので、ストーリーを豊富にすることができ、飽きが来ない。
【０００９】
ここで、テキストデータの近似性については、例えば、テキストデータから抽出されたキーワードとの一致数又は共起語の出現数等種々の条件で判断することができるが、これに限られない。
【００１１】
また、前記テキストデータはゲームにおける複数のキャラクタ間の対話において交換されるメッセージを構成するものであってもよい。
【００１２】
このように、複数のキャラクタ間でメッセージを交換するゲームのメッセージのデータベースに本発明を適用すると、プレイヤーに対してキャラクタから提示されるメッセージが実在の他のプレイヤーが以前に入力したテキストデータである可能性もあるので、キャラクタのリアリティが増す。また、種々の異なる感性を持ったプレイヤーが入力した個性的なテキストデータを取り込むことができるので、ストーリー展開を豊富にでき、飽きの来ないゲームを実現することができる。
【００１３】
また、本発明は、上記データベースの更新方法における各ステップを、前記ホスト通信装置に実行させるためのプログラムを記憶させたコンピュータで読み取り可能な記憶媒体である。
【００１４】
ここで、記憶媒体にはＦＤ（フレキシブルディスク），ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ，ＨＤ（ハードディスク）等が含まれるが、プログラムを記憶あるいは保持させることのできるものであればこれらに限られない。
【００１６】
【発明の実施の形態】
以下に図面を参照して、この発明の好適な実施の形態を説明する。
【００１７】
図１は、本発明の第１の実施の形態に係るテキスト通信システムの主要部の概略構成を示したブロック図である。
【００１８】
まず、本テキスト通信システムは、主として、入出力装置１と算出装置２とからなる。入出力装置１は、テキスト（文章）の入出力が可能なものであればよく、例えば、テキストを表示するディスプレイ等の表示部１１とテキストの選択あるいは文字入力等の入力を行う入力部とプログラムを格納するＲＯＭ（リードオンリーメモリ），データ等を格納するＲＡＭ（ランダムアクセスメモリ）等の記憶部と種々の演算，論理判断及び制御を行うＣＰＵ（セントラルプロセッシングユニット）とを備え、モデム等の通信装置にインターフェースを介して接続される通信機能を備えたゲーム機，携帯情報端末，パーソナルコンピュータ，携帯電話等によって構成することができる。算出装置２は、入出力装置１から入力されたテキストに応じたテキストを抽出して入出力装置１に出力させるものであればよく、例えば、ＲＯＭ，ＲＡＭ及びＨＤ（ハードディスク）等の記憶部とＣＰＵとを備え、ターミナルアダプタ等の通信装置にインターフェースを介して接続されるコンピュータによって構成することができる。ここでは、入出力装置１がテキスト通信装置に相当し、算出装置２がホスト通信装置に相当する。また、表示部１１が質問表示部，回答表示部に相当する。さらに図示しない入力部が回答入力部，選択入力部及び自由入力部に相当する。
【００１９】
入出力装置１と算出装置２とは、公衆電話回線，ＩＳＤＮ回線，ケーブルテレビ用通信線，専用線等の有線の通信ネットワークによって接続されていてもよいし、携帯電話網等の無線の通信ネットワークによって接続されていてもよい。また、これらのネットワークを介したインターネットで接続されていてもよい。
【００２０】
算出装置２は、主として、入力種別判定機（入力テキスト判定部）３，自然言語解析機４，結線データ変更機（テキスト関係変更部）５，文章データ記憶装置（テキスト保持部）６，結線データ記憶装置（テキスト関係保持部）７及び出力文章作成機（質問抽出部，回答抽出部）８とからなる。ここで、結線データ変更機５は、後述するように、結線データ変更機１と結線データ変更機２とからなる。
【００２１】
このようなシステムを用いてゲームを行う場合を例として説明する。
【００２２】
ゲームのストーリーは、「昨日、インターネットで『大事件』が起きた。翌日の朝のニュースで大きく報道され、事件の首謀者のひとりである『女』は、苦悩する。『男』はたわいもない間違いメールがきっかけで『女』と知り合う」、という設定である。プレイヤーはストーリー上で「男」又は「女」のいずれかに扮する。プレイヤーが「男」を選択した場合には、入出力装置１の表示部１１には、「女」からのメールが表示されるとともに、そのメールに対して「男」から返信するメッセージの選択肢が表示される。プレイヤーが選択肢のいずれかを選択すると、そのメールに対する「女」からのメールと、「男」から返信するメッセージの選択肢がさらに表示される。このようにして、「男」と「女」との間で電子メールのやりとりを行うことにより、ゲームが進行する。プレイヤーが「女」を選択した場合も同様に、「男」と「女」が入れ替わった形でゲームが進行する。
【００２３】
（全体の流れ）
図２にゲームの全体の流れを示す。
【００２４】
まず、プレイヤーは、自分が「男」か「女」かを選択する（ステップ１）。キャラクタの選択は、例えば、ディスプレイ上に「男」，「女」の文字を表示し、カーソル等のポインタをいずれかの表示領域に移動させてボタンを押す等の入力部の操作によって行う。算出装置２側では、プレイヤーによって選択された情報をmychar＿noとし、選択されなかった相手方の情報をyouchar＿noと定義し、プレイヤーが男を選択した場合にはmychar＿no＝０，youchar＿no＝１と設定し、女を選択した場合にはmychar＿no＝１，youchar＿no＝０と設定する。
【００２５】
次に、算出装置２において、表示する質問とその質問に対する選択肢を算出する（ステップ２）。
【００２６】
次に、プレイヤーがゲームの終了を指示しているか否かを判定する（ステップ３）。終了を指示していない場合には、算出装置２において算出された質問と選択肢を入出力装置１に送信し、表示部１１に表示させる（ステップ４）。選択肢には、表示部１１に表示されるメッセージのいずれかを選択するものと、メッセージの表示と並んで又はその表示に代わってプレイヤーが自由に文字を入力できるフリーメール入力のための選択肢とがある。プレイヤーは表示部１１に表示される質問を見て、表示されたメッセージのいずれかを選択するか、又はフリーメールの入力を行う（ステップ５）。算出装置２では、プレイヤーの入力に応じて、さらに表示する質問と選択肢の算出を行う。
【００２７】
ステップ３において、プレイヤーがゲームの終了を指示している場合には、表示部１１に終了画面を表示して（ステップ６）、ゲームを終了する。
【００２８】
図３に、プレイヤーが「男」を選択した場合に、入出力装置１の表示部１１に表示される「男」と「女」のメッセージの関係を示す。「男」と「女」のメッセージは階層構造を反映した樹形図で表現され、この階層構造においてメッセージはゲームのストーリーの展開に従って下方へと樹形図の階層間を移動するように関係づけられている。
【００２９】
例えば、プレイヤーの入出力装置１の表示部１１には、「男」からのメールとして「こんにちは！君の趣味は？」と「メール初心者です。ちょっと緊張してます。」の二つの選択肢が表示される。
【００３０】
プレイヤーが「こんにちは！君の趣味は？」とのメッセージを選択すると、表示部１１には「女」からのメールとして「私の趣味は歌うこと。カラオケ大好き！」と「趣味？んー、寝ることとか。」のいずれかが乱数，統計等を利用して選択され、表示される。
【００３１】
一方、プレイヤーが「メール初心者です。ちょっと緊張してます。」とのメッセージを選択すると、表示部１１には、この「男」からのメッセージに対応する「女」からのメールとして設定されている「私もはじめてなんだ。」と「メール大好き！よろしくね。」の二つのメッセージのうちからいずれかが乱数，統計等を利用して選択され、表示される。「女」からのメールとして「私もはじめてなんだ。」とのメッセージが選択されると、「男」からの返信メールとして「普段、なにしてるの？」と「そうなんですか」とプレイヤーが任意又は一定の制約内で任意のメッセージである「フリーメール」入力の選択肢が表示される。プレイヤーが「普段、なにしてるの？」を選択すると、「女」からのメールとして「ひまな時はＴＶ見てる、今朝のＮＥＷＳ、すごかった！」と「パソコンとか好きだよ。昨日の事件も……、あ、なんでもないの。」の二つのメッセージのうちのいずれかが乱数，統計を利用して選択されて表示部１１に表示される。
【００３２】
図４に、プレイヤーが「女」を選択した場合に、入出力装置１の表示部１１に表示される「女」と「男」のメッセージを同様の樹形図で示す。
【００３３】
ここでは、「男」からのメッセージとして、「こんにちは！君の趣味は？」と「メール初心者です。ちょっと緊張してます。」の二つのメッセージのうちのいずれかが乱数，統計等を利用して選択されて入出力装置１の表示部１１に表示される。
【００３４】
「メール初心者です。ちょっと緊張してます。」が選択されて表示された場合には、これに対する「女」からのメールとして「私もはじめてなんだ。」と「メール大好き！よろしくね。」の二つのメッセージが表示され、プレイヤーはいずれかのメッセージを選択することができる。
【００３５】
プレイヤーが「私もはじめてなんだ。」を選択すると、「男」からの返信メールとして「普段、なにしてるの？」と「そうなんですか」の二つのメッセージのうちのいずれかが乱数，統計等を利用して選択して表示される。
【００３６】
以下、同様にプレイヤーが「男」を選択した場合と「女」を選択した場合とで、相手から自分に送られるメールと自分から相手に送るメールとが表裏の関係をなす形でゲームが進行して行く。
【００３７】
（算出装置における処理）
図５に示すフローチャートに従って、算出装置２における処理手順を説明する。  まず、算出装置２では、データ入力の調査を行う（ステップ１１）。
【００３８】
次に、入力種別判定機の処理を行う（ステップ１２）。ここでは、入出力装置からの入力が選択肢の選択であるかフリーメールの入力であるかの判定を行う。入力種別判定機は、例えば、ＲＯＭ，ＲＡＭ及びＣＰＵから構成され、ＲＯＭに格納された判定プログラムをレジスタ上に展開し、ＲＡＭに保持された入力データを読み出し、ＣＰＵで実行することによって行う。
【００３９】
ステップ１２において、入力の種別が選択肢であれば、ステップ１９に進み、出力文章作成機８における処理を行う。一方、ステップ１２において、入力の種別がフリーメール入力であれば、一定時間待機し（ステップ１３）、自然言語解析機４において後述する自然言語解析処理を行う（ステップ１４）。
【００４０】
自然言語解析機４においては、入力データがエラーか否かを判定する（ステップ１５）。ここで、エラーと判定されれば、ステップ１９に進み、出力文章作成機８における処理を行う。一方、エラーと判定されなければ、解析結果を結線データ変更機１に送り、後述する結線データ変更処理を行う（ステップ１６）。結線データ変更機１における処理の後に、一定時間待機し（ステップ１７）、結線データ変更機２において、後述する結線データ変更処理を行う（ステップ１８）。結線データ変更機２における処理の後に、出力文章作成機８における出力文章作成処理を行う（ステップ１９）。
【００４１】
（出力文章作成機における処理）
ここで、出力文章作成機８における出力文章作成処理について説明する。出力文章作成機は、例えば、ＲＯＭ，ＲＡＭ，ＨＤ及びＣＰＵから構成される。
【００４２】
図６は、出力文章作成処理手順を示すフローチャートである。
【００４３】
まず、出力文章作成機８は、入力されたフリーメールに対する文章ナンバー又はエラーコードのいずれかを受け取り、これをStrAnsNoと命名する（ステップ２１）。
【００４４】
ここで、ステップ２１の処理について、図７を参照して、図３で示した樹形図でプレイヤーが「メール初心者です。ちょっと緊張してます。」を選択した場合を例として具体的に説明する。図７は文章データ記憶装置６に格納されている文章データのフォーマットである。図７を参照すると、プレイヤーが選択した「メール初心者です。ちょっと緊張してます。」の文章データには、文章ナンバー「０００２」が付与されている。従って、この場合には、StrAnsNo＝０００２となる。図７に示すように、上述の「男」及び「女」のメッセージとなる文章データには、それぞれ文章ナンバーが付与されており、キャラクタの男女の区別を示すCHAR＿Noが登録されている（CHAR＿No＝０が男，CHAR＿No＝１が女を示す。）。質問と回答とは、プレイヤーの選択したキャラクタに応じて入れ替わる。
【００４５】
ステップ２１において、文章ナンバーを受け取っている場合には（ステップ２２）、結線データ記憶装置７からStrAnsNoに対応する次の質問をリストアップし（ステップ２３）、リストアップされた文章のうちから、乱数発生機等を利用してStrAnsNoに対応する次の質問を決定し、StrNextQuesNoと命名する（ステップ２４）。
【００４６】
ステップ２４の処理を上述の例に即して具体的に説明する。ここで、図８は結線データ記憶装置７に格納されている結線データのフォーマットを示す。
【００４７】
図８を参照すると、０００２に対応する次の質問となるのは、文章ナンバー「００１６」，「００１７」の文章データである。図７を参照すると、文章ナンバー「００１６」，「００１７」は、それぞれ「私もはじめてなんだ。」と「メール大好き！よろしくね。」との文章データに付与されていることがわかる。ここで、乱数等により「私もはじめてなんだ。」が選択されると、StrNextQuesNo＝００１６となる。
【００４８】
ステップ２４に続いて、結線データ記憶装置７からStrNextQuesNoに対応する次の回答をリストアップし、それらの集合をStrNextAnswersと命名する（ステップ２５）。
【００４９】
ステップ２５の処理を上述の例に即して具体的に説明する。
【００５０】
ここで、図８を参照すると、StrNextQuesNo＝００１６に対応する次の回答は、文章ナンバー「００１８」，「００１９」，「９９９９」である。従って、この場合には、StrNextAnswers＝００１８，００１９，９９９９となる。
【００５１】
ステップ２５に続いて、StrNextQuesNoに対応する文章を次の質問として、StrNextAnswersに対応する文章を次の回答用選択肢として、入出力装置１に表示する準備を行い（ステップ２６）、出力文章作成処理を終了する。
【００５２】
ステップ２６の処理を上述の例に即して具体的に説明する。
【００５３】
上述のように、StrNextQuesNo＝００１６であり、StrNextAnswers＝００１８，００１９，９９９９である。従って、文章ナンバー「００１６」の「私もはじめてなんだ。」が次の質問として、文章ナンバー「００１８」，「００１９」，「９９９９」の「普段、なにしてるの？」，「そうなんですか」及びフリーメール入力のための選択肢が次の回答用選択肢として、表示部１１に表示されることとなる。
【００５４】
ステップ２１でエラーコードを受け取った場合には、StrNextQuesNoを１００００＋youchar＿noとし（ステップ２７）、ステップ２５に進む。
【００５５】
ステップ２７の処理を上述の例に即して具体的に説明する。
【００５６】
プレイヤーは「男」を選択しているので、youchar＿no＝１である。従って、プレイヤーの入力したフリーメールの文章がエラーと判定された場合には、StrNextQuesNo＝１０００１となる。図７を参照することにより、文章ナンバー１０００１の「ねえ、ねえ。話は変わるけど好きな食べ物は？」のメッセージが次の質問として表示部１１に表示される。
【００５７】
（自然言語解析機における処理）
次に、自然言語解析機４における自然言語解析処理について説明する。
【００５８】
図９は、自然言語解析処理の手順を示すフローチャートである。
【００５９】
自然言語解析機４は、例えば、ＲＯＭ，ＲＡＭ，ＨＤ及びＣＰＵから構成され、ＲＯＭに格納された解析プログラムをレジスタ上に展開し、ＲＡＭに保持された入力データ及びＨＤに格納された解析テーブルを読み出し、ＣＰＵで実行することによって解析処理を行う。
【００６０】
自然言語解析機４では、まず、フリーメールとして入力された文章の解析を行う（ステップ３１）。次に、解析の結果がエラーであるか否かを判定する（ステップ３２）。ここで、エラーでなければ、文章データ記憶装置６に入力されたメッセージを蓄積し（ステップ３３）、当該メッセージの文章ナンバーを決定し（ステップ３４）、文章ナンバーを出力する（ステップ３５）。エラーであれば、エラーコードを決定し（ステップ３６）、エラーコードを出力する（ステップ３５）。
【００６１】
ここで、自然言語解析処理について、上述の例に即して具体的に説明する。
【００６２】
図３において「メール初心者です。ちょっと緊張してます。」を選択したプレイヤーが、「私もはじめてなんだ。」との「女」からのメールに対して、フリーメールを選択して入力した状態を図１０に示す。プレイヤーは、フリーメールとして「昨日の事件は君のイタズラ？」という文章を入力している。
【００６３】
ステップ３１においては、文章の解析、すなわち、入力された文字列が文章を構成するか否かの解析を行う。プレイヤーが入力した文字列は上述のように文章を構成しているので、ステップ３３，３４に進み、文章データ記憶装置６に蓄積されるとともに文章ナンバーが決定される。図１１は文章データ記憶装置６の文章データのフォーマットを示す。プレイヤーが入力した文章に文章ナンバー「０３００」が付与され、「男」のメッセージとして登録されている。従って、この場合には、ステップ３５において、該当する文章ナンバー「０３００」を出力する。
【００６４】
（結線データ変更機１における処理）
次に、結線データ変更機１における結線データ変更処理について説明する。結線データ変更機１は、例えば、ＲＯＭ，ＲＡＭ，ＨＤ及びＣＰＵから構成される。
【００６５】
図１２は結線データ変更処理手順を示すフローチャートである。
【００６６】
まず、結線データ変更機１では、入力データに付与された文章ナンバーを受け取り、これをStrAnsNoと命名する（ステップ４１）。
【００６７】
次に、結線データのフォーマットにおいて、StrAnsNoの前の選択肢に、StrAnsNoを加え、フリーメール入力の選択肢を削除する（ステップ４２）。すなわち、ここでは、フリーメール入力の選択肢とStrAnsNoとを入れ換えている。
【００６８】
次に、結線データフォーマットにおいて、StrAnsNoに続く質問データとして、フリーメール入力の選択肢を登録する（ステップ４３）。
【００６９】
次に、後述するフリーメールエリア（フリーメール入力の選択肢）作成機の処理を実行し（ステップ４４）、結線データ変更機１の処理を終了する。
【００７０】
ここで、結線データ変更処理について、上述の例に即して具体的に説明する。
【００７１】
ステップ４１の処理では、上述のフリーメールとして入力された文章ナンバーが「０３００」であるから、StrAnsNo＝０３００となる。
【００７２】
文章ナンバー「０３００」の前の文章は「私も初めてなんだ。」であり、文章ナンバーが「００１６」であるから、StrAnsNoの前の選択肢は文章ナンバー「００１８」，「００１９」，「９９９９」である（図８参照）。従って、ステップ４２の処理においては、文章ナンバー「００１６」の選択肢を「００１８」，「００１９」，「０３００」とする。このように変更した状態での図３に対応する樹形図を図１３に示す。プレイヤーが入力した文章が、「女」からの「私も初めてなんだ。」とのメールに対応する「男」からのメールの選択肢として登録されている。
【００７３】
続くステップ４３の処理として、文章ナンバー「０３００」に続く質問データとしてフリーメール入力の選択肢を示す文章ナンバー「９９９９」を登録する。このように変更した状態を示す結線データフォーマットが図１４であり、樹形図が図１５である。
【００７４】
次に、ステップ４４として後述するフリーメールエリア作成機の処理を実行し、結線データ変更機１の処理を終了する。
【００７５】
（フリーメールエリア作成機における処理）
次に、フリーメールエリア作成機におけるフリーメールエリア作成処理について説明する。フリーメールエリア作成機は、例えば、ＲＯＭ，ＲＡＭ，ＨＤ及びＣＰＵから構成される。
【００７６】
図１６は、フリーメールエリア作成処理手順を示すフローチャートである。
【００７７】
まず、結線データ記憶装置７のデータを先頭からひとつずつ読み出すために、読み出しポインタを０に設定する（ステップ５１）。
【００７８】
次に、配列変数fmn［］を用意し初期化する（ステップ５２）。
【００７９】
次に、結線データ記憶装置７のデータを、読み出しポインタの位置からひとつ読み出し（ステップ５３）、回答ナンバーに９９９９（すなわちフリーメールエリア）が存在するか否かを判定する（ステップ５４）。
【００８０】
ステップ５４において、回答ナンバーに９９９９が存在すれば、読み出したデータの深度を計算してsel＿numberとし、fmn［sel＿number/5］に１を加え（ステップ５５）、結線データ記憶装置７の読み出しポインタに１を加える（ステップ５６）。ここで、データの深度とは、当該データが結線データ記憶装置のデータのうちで最初から何番目に現れる選択肢であるかという情報である。
【００８１】
ステップ５４において、回答ナンバーに９９９９が存在しなければ、ステップ５６に進む。
【００８２】
ステップ５６で結線データ記憶装置７の読み出しポインタに１を加えた後に、結線データ記憶装置７のデータを最後まで読んだか否かを判定する（ステップ５７）。ここで、データを最後まで読んでいなければ、ステップ５３に戻り、次のデータを読み出し同様の処理を行う。一方、データを最後まで読んでいれば、配列変数fmn［］を最初の要素からひとつずつ読み出すために、読み出しポインタskを０にする（ステップ５８）。
【００８３】
次に、fmn［sk］からデータを読み出し（ステップ５９）、fmn［sk］から読み出されたデータが一定値を超えているか否かを判定する（ステップ６０）。
【００８４】
ステップ６０において、fmn［sk］から読み出されたデータが一定値を超えていなければ、結線データの深度をｎとし、sk×５≦ｎ＜（sk＋１）×５であり、かつ回答ナンバーに９９９９を持たない結線データの集合の中から、ランダムに１つを選び、回答ナンバーに９９９９を加え、回答数に１を加える（ステップ６１）。
【００８５】
ステップ６０において、fmn［sk］から読み出されたデータが一定値を超えていれば、fmn［］を最後まで読んだか否かを判定する（ステップ６２）。ステップ６１の処理が終了した後も同様にステップ６２へと進む。
【００８６】
ステップ６２において、fmn［］を最後まで読んでいれば、フリーメールエリア作成処理を終了し、fmn［］を最後まで読んでいなければ、skに１を加え（ステップ６３）、ステップ５９に戻り次のデータを読み出して同様の処理を行う。
【００８７】
上述の処理では、概略、結線データをいくつかのデータ群に分割し、フリーメールエリアの少ないデータ群に対してはフリーメールエリアを新たに設定している。従って、フリーメールエリアを均等に自動生成し、プレイヤーの興味を常にひきつけるとともに、リアリティの増大及びストーリー展開の豊富化を保障することができる。
【００８８】
（結線データ変更機２における処理）
次に、結線データ変更機２における結線データ変更処理について説明する。結線データ変更機２は、例えば、ＲＯＭ，ＲＡＭ，ＨＤ及びＣＰＵから構成される。
【００８９】
図１７は、結線データ変更処理手順を示すフローチャートである。
【００９０】
まず、結線データ変更機２では、入力されたフリーメールに付与された文章ナンバーを受け取り、これをStrAnsNoと命名する（ステップ７１）。
【００９１】
次に、文章データ記憶装置６から、StrAnsNoの文章に似た内容の文章を検索し、StrLikeと命名する（ステップ７２）。
【００９２】
ステップ７２において、StrAnsNoの文章に似た内容の文章が見つかった場合には、StrLikeに続く選択肢をStrAnsNoに続く選択肢に加える（ステップ７３，７４）。次に、StrAnsNoに続く選択肢をStrLikeに続く選択肢に加え（ステップ７５）、ステップ７２に戻って検索を繰り返す。
【００９３】
ステップ７２において、StrAnsNoの文章に似た内容の文章が少なくともひとつは見つかっている場合には（ステップ７６）、結線データ変更処理を終了する。
【００９４】
ステップ７２において、StrAnsNoの文章に似た内容の文章がひとつも見つかっていない場合には（ステップ７６）、StrAnsNoに有効な選択肢がないか否かを判定する（ステップ７７）。
【００９５】
ステップ７７において、StrAnsNoに有効な選択肢がある場合には、結線データ変更処理を終了する。
【００９６】
ステップ７７において、StrAnsNoに有効な選択肢がない場合には、エラーコードを出力し（ステップ７８）、結線データ変更処理を終了する。
【００９７】
ここで、結線データ変更処理について、上述の例に即して具体的に説明する。図５に示すように、結線データ変更機１と結線データ変更機２との処理の間で一定時間待機するので、文章ナンバー「０３００」に続く質問データとして設定されたフリーメール入力の選択肢に対して（図１２のステップ４３参照）、「女」を選択した他のプレイヤーがフリーメールを入力する場合がある。以下では、このように展開した例に即して説明する。
【００９８】
まず、図１８に、「女」を選択したプレイヤーから見た樹形図である図４に従って他のプレイヤーのプレイ内容を示す。プレイヤーは、「メール初心者です。ちょっと緊張してます。」との「男」からのメールに対して「私も初めてなんだ。」を選択し、これに対して算出装置２が「昨日の事件は君のイタズラ？」を選択し「男」からのメールとして表示部１１に表示している。このメールに対する回答としてフリーメール入力の選択肢が設定されているので、プレイヤーは「一体、どれだけ私の事を知っているというの？昨日の事件のことなんて、なんにも知らないクセに！」と入力している。この入力データに対して自然言語解析機４及び結線データ変更機１の処理が行われる。すなわち、文章データ記憶装置６に蓄積されるとともに文章ナンバー０３０１を付与され、０３００の選択肢に０３０１が加えられてフリーメール入力の選択肢が削除され、０３０１に続く質問データとしてフリーメール入力の選択肢が設定されている。このように変更された文章データ記憶装置６の文章データのフォーマットと結線データ記憶装置７の結線データフォーマットとを図１９及び図２０に示す。  この場合の結線データ変更機２の処理において、ステップ７１の処理では、StrAnsNo＝０３００である。
【００９９】
続くステップ７２の処理において、文章ナンバー「０３００」の文章に似た内容の文章として文章ナンバー「０００７」の「昨日の事件も君の趣味なの？」が該当するので、検索の結果、StrLike＝０００７となる。
【０１００】
ステップ７４の処理において、文章ナンバー「０００７」に続く選択肢は図２０を参照すると文章ナンバー「００１１」及び「００１２」の文章である。従って、文章ナンバー「００１１」及び「００１２」の文章をStrAnsNo＝０３００の選択肢に加える。さらに、ステップ７５の処理において、StrAnsNo＝０３００に続く選択肢である文章ナンバー「０３０１」をStrLike＝０００７の選択肢に加える。このように変更された結線データのフォーマットを図２１に、「男」を選択したプレイヤーのためのメッセージ間の関係を表す樹形図を図２２に示す。
【０１０１】
文章ナンバー「０３００」の文章に似た内容の文章は文章ナンバー「０００７」の文章のみであるので、ステップ７６における判定でＮｏとなり結線データ変更処理を終了する。
【０１０２】
以上、本発明の実施形態に係るテキスト通信システムについて「男」と「女」がメールをやりとりして進行するゲームを例として説明した。フリーメール入力の選択肢に対して「男」を選択したプレイヤー（「女」を選択した場合も同様）が入力した文章が、ゲームの進行に伴って出力される文章データの一つとして取り込まれる。すなわち、新たに入力されたテキストデータが出力されるテキストデータのデータベースに登録され他のテキストデータと関係付けられることにより、データベースが更新され、当該新たに入力されたテキストデータを含むストーリーが創出される。このようにして取り込まれたテキストデータは、「男」から「女」を選択したプレイヤーへのメールとしてあるいは「男」を選択したプレイヤーから「女」へのメールの選択肢として出力されることとなる。このように、プレイヤーは、他のプレイヤーが実際に入力したテキストを相手からのメールとして受け取ることができ、展開によっては自らも自由にメールを入力できるので、プレイヤーにとっても実在の相手とメールをやりとりするかのような感覚を味わうことができ、ゲームのリアリティが増す。また、プレイヤーの入力によってテキストデータ及びストーリーが増殖して行くので、繰り返しゲームをする場合でもプレイヤーを飽きさせることがない。また、上述の例では設定されているキャラクタは２人であるが、３人以上のキャラクタの間で会話が行われるような設定の場合にも同様に本発明を適用することができる。
【０１０３】
【発明の効果】
以上説明したように、本発明によれば、ストーリーの展開に伴って階層間を移動するように互いに関係付けられたテキストデータからなる階層構造を有するデータベースにおいて、現実に自由に入力されたテキストデータを取り込むことができるので、リアリティにあふれ飽きの来ないストーリー展開が可能となる。
【図面の簡単な説明】
【図１】図１は、本発明の実施形態に係るメッセージ通信システムの主要部の概略構成を示したブロック図である。
【図２】図２はゲームの全体の流れを示すフローチャートである。
【図３】図３はプレイヤーが「男」を選択した場合に入出力装置の表示部１１に表示される「男」と「女」のメッセージの関係を示すカード図である。
【図４】図４はプレイヤーが「女」を選択した場合に入出力装置の表示部１１に表示される「女」と「男」のメッセージの関係を示すカード図である。
【図５】図５は算出装置における処理手順を示すフローチャートである。
【図６】図６出力文章作成機における処理手順を示すフローチャートである。
【図７】図７は文章データ記憶装置に格納されている文章データフォーマットの構成を示す図である。
【図８】図８は結線データ記憶装置に格納されている結線データフォーマットの構成を示す図である。
【図９】図９は自然言語解析機における処理手順を示すフローチャートである。
【図１０】図１０はプレイヤーのプレイ内容を示すカード図である。
【図１１】図１１は文章データ記憶装置に格納されている文章データフォーマットの構成を示す図である。
【図１２】図１２は結線データ変更機１における処理手順を示すフローチャートである。
【図１３】図１３は結線データ変更機１の処理によって変更された状態を示すカード図である。
【図１４】図１４は結線データ変更機１の処理によって変更された状態を示す結線データフォーマットの構成を示す図である。
【図１５】図１５は結線データ変更機１の処理によって変更された状態を示すカード図である。
【図１６】図１６はフリーメールエリア作成機における処理手順を示すフローチャートである。
【図１７】図１７は結線データ変更機２における処理手順を示すフローチャートである。
【図１８】図１８「女」を選択したプレイヤーのプレイ内容を示すカード図である。
【図１９】図１９は結線データ変更機２の処理によって変更された文章データフォーマットの構成を示す図である。
【図２０】図２０は結線データ変更機２の処理によって変更された結線データフォーマットの構成を示す図である。
【図２１】図２１は結線データ変更機２の処理によって変更された結線データフォーマットの構成を示す図である。
【図２２】図２２は「男」を選択したプレイヤーのためのメッセージ間の関係を示すカード図である。
【符号の説明】
１  入出力装置
２  算出機
３  入力種別判定機
４  自然言語解析機
５  結線データ変更機
６  文章データ記憶装置
７  結線データ記憶装置
８  出力文章作成機
【図１】
0004183866.tif 000002
【図２】
0004183866.tif 000003
【図３】
0004183866.tif 000004
【図４】
0004183866.tif 000005
【図５】
0004183866.tif 000006
【図６】
0004183866.tif 000007
【図７】
0004183866.tif 000008
【図８】
0004183866.tif 000009
【図９】
0004183866.tif 000010
【図１０】
0004183866.tif 000011
【図１１】
0004183866.tif 000012
【図１２】
0004183866.tif 000013
【図１３】
0004183866.tif 000014
【図１４】
0004183866.tif 000015
【図１５】
0004183866.tif 000016
【図１６】
0004183866.tif 000017
【図１７】
0004183866.tif 000018
【図１８】
0004183866.tif 000019
【図１９】
0004183866.tif 000020
【図２０】
0004183866.tif 000021
【図２１】
0004183866.tif 000022
【図２２】
0004183866.tif 000023