(57)【特許請求の範囲】
【請求項１】
ネットワークを介して複数の端末装置に接続されたパターン検索装置上で実行される複数の項目で構成された検索対象データのパターン検索方法において、
前記複数の端末装置の各々から送信された、検索対象データを検索するための項目識別符号と検索語と検索式とを含む検索条件を、前記各端末装置を特定するための端末装置情報とともに受信し、
前記複数の端末装置から受信した検索条件と端末装置情報とを纏めて検索条件バッファに格納し、
先行する検索処理が実行中か否かを判断し、
先行する検索処理が実行中でないと判断された場合、
前記検索条件バッファに格納された項目識別符号および検索語のうち、２以上の同一の項目識別符号および検索語があれば１の検索パターン以外の項目識別符号および検索語を省き、前記検索条件バッファ中に存在する全ての項目識別符号及び検索語に関してそれぞれを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成し、
前記検索条件バッファに格納された検索式および端末装置情報と前記作成された検索パターン変数テーブルとに基づいて、前記検索パターンを前記第１の変数を用いて表した検索要求式と前記検索要求式を値とする第２の変数との対応、および前記端末装置情報と前記検索式を前記第２の変数を用いて表した検索要求式と前記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成し、
前記作成された検索パターン変数テーブルと検索要求式変数テーブルとの関連に従って、
前記検索対象データを格納した検索対象データデータベースを検索して
前記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出し、
前記抽出された検索結果を前記複数の端末装置の各々に送信し、
検索対象データは、複数のレコードから構成され、該各レコードは複数の項目から構成され、該レコードはレコード区切り符号等により識別することができ、該レコード内の項目は項目区切り符号により区切られており、項目識別符号により一意に特定することができるデータであって、
検索パターン変数テーブルは更に、検索対象レコード中に存在したか否かを示す第一のヒットフラグを有し、
検索要求式変数テーブルは更に、前記検索要求式変数にＩＤ番号を付与した最終式変数ＩＤ欄と第二のヒットフラグを有し、
パターンマッチング処理で、キーワードを検出した場合は、検索パターン変数テーブル中の該当する第一のヒットフラグを真にし、
項目区切り符号を検出した場合は、検索要求式変数テーブルの全ての式変数について論理演算を行い、その結果が真となるものについて、第二のヒットフラグの値を真にする検索要求式変数評価を行い、
前記検索要求式変数評価の後、検索パターン変数テーブルの第一のヒットフラグの全てを偽にし、
レコード区切り符号を検出した場合は、前記最終式変数ＩＤが真で、かつ第二のヒットフラグが真になっている検索要求式変数の最終式変数ＩＤを取り出し、検索結果テーブルのその最終式変数ＩＤの欄に検出したレコードの内容を書き込み、
その後、検索パターン変数テーブルと検索要求式変数テーブルの全ヒットフラグを偽にして、検索対象データの終了まで、パターンマッチングを再度行う
ことを特徴とするパターン検索方法。
【請求項２】
前記検索条件バッファは、実行中の検索処理が終了したことを判断するまで、前記検索条件を格納することを特徴とする請求項１に記載のパターン検索方法。
【請求項３】
前記検索条件バッファは、予め定めた時間または予め定めた容量に達するまで、前記検索条件を格納することを特徴とする請求項１に記載のパターン検索方法。
【請求項４】
前記検索は、複数個の検索パターンを同時に検索する手法であることを特徴とする請求項１乃至３の何れか１項に記載のパターン検索方法。
【請求項５】
ネットワークを介して複数の端末装置に接続されたパターン検索装置において、
複数の項目で構成された検索対象データを格納する検索対象データ格納手段と、
前記複数の端末装置の各々から送信された、前記検索対象データを検索するための項目識別符号と検索語と検索式とを含む検索条件を、前記各端末装置を特定するための端末装置情報とともに受信する検索条件受信手段と、
前記検索条件受信手段によって前記複数の端末装置から受信した検索条件と端末装置情報とを纏めて格納する検索条件バッファ手段と、
先行する検索処理が実行中か否かを判断する検索処理判断手段と、
前記検索処理判断手段によって先行する検索処理が実行中でないと判断された場合、前記検索条件バッファ手段に格納された項目識別符号および検索語のうち、２以上の同一の項目識別符号および検索語があれば１の検索パターン以外の項目識別符号および検索語を省き、前記検索条件バッファ手段に存在する全ての項目識別符号及び検索語に関してそれぞれを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成する検索パターン変数テーブル作成手段と、
前記検索条件バッファ手段に格納された検索式および端末装置情報と前記検索パターン変数テーブル作成手段によって作成された検索パターン変数テーブルとに基づいて、前記検索パターンを前記第１の変数を用いて表した検索要求式と前記検索要求式を値とする第２の変数との対応、および前記端末装置情報と前記検索式を前記第２の変数を用いて表した検索要求式と前記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成する検索要求式変数テーブル作成手段と、
前記検索パターン変数テーブル作成手段によって作成された検索パターン変数テーブルと前記検索要求式変数テーブル作成手段によって作成された検索要求式変数テーブルとの関連に従って、前記検索対象データ格納手段を検索して前記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出する検索手段と、
前記検索手段によって抽出された検索結果を前記複数の端末装置の各々に送信する送信手段とを備え、
検索対象データは、複数のレコードから構成され、該各レコードは複数の項目から構成され、該レコードはレコード区切り符号等により識別することができ、該レコード内の項目は項目区切り符号により区切られており、項目識別符号により一意に特定することができるデータであって、
検索パターン変数テーブルは更に、検索対象レコード中に存在したか否かを示す第一のヒットフラグを有し、
検索要求式変数テーブルは更に、前記検索要求式変数にＩＤ番号を付与した最終式変数ＩＤ欄と第二のヒットフラグを有し、
パターンマッチング処理で、キーワードを検出した場合は、検索パターン変数テーブル中の該当する第一のヒットフラグを真にし、
項目区切り符号を検出した場合は、検索要求式変数テーブルの全ての式変数について論理演算を行い、その結果が真となるものについて、第二のヒットフラグの値を真にする検索要求式変数評価を行い、
前記検索要求式変数評価の後、検索パターン変数テーブルの第一のヒットフラグの全てを偽にし、
レコード区切り符号を検出した場合は、前記最終式変数ＩＤが真で、かつ第二のヒットフラグが真になっている検索要求式変数の最終式変数ＩＤを取り出し、検索結果テーブルのその最終式変数ＩＤの欄に検出したレコードの内容を書き込み、
その後、検索パターン変数テーブルと検索要求式変数テーブルの全ヒットフラグを偽にして、検索対象データの終了まで、パターンマッチングを再度行う
ことを特徴とするパターン検索装置。
【請求項６】
ネットワークを介して複数の端末装置に接続されたパターン検索装置上で実行される複数の項目で構成された検索対象データのパターン検索プログラムのプログラムコードを記録したコンピュータ読み取り可能な記録媒体において、
前記複数の端末装置の各々から送信された、検索対象データを検索するための項目識別符号と検索語と検索式とを含む検索条件を、前記各端末装置を特定するための端末装置情報とともに受信し、
前記複数の端末装置から受信した検索条件と端末装置情報とを纏めて検索条件バッファに格納し、
先行する検索処理が実行中か否かを判断し、
先行する検索処理が実行中でないと判断された場合、
前記検索条件バッファに格納された項目識別符号および検索語のうち、２以上の同一の項目識別符号および検索語があれば１の検索パターン以外の項目識別符号および検索語を省き、前記検索条件バッファ中に存在する全ての項目識別符号及び検索語に関してそれぞれを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成し、
前記検索条件バッファに格納された検索式および端末装置情報と前記作成された検索パターン変数テーブルとに基づいて、前記検索パターンを前記第１の変数を用いて表した検索要求式と前記検索要求式を値とする第２の変数との対応、および前記端末装置情報と前記検索式を前記第２の変数を用いて表した検索要求式と前記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成し、
前記作成された検索パターン変数テーブルと検索要求式変数テーブルとの関連に従って、
前記検索対象データを格納した検索対象データデータベースを検索して
前記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出し、
前記抽出された検索結果を前記複数の端末装置の各々に送信し、
検索対象データは、複数のレコードから構成され、該各レコードは複数の項目から構成され、該レコードはレコード区切り符号等により識別することができ、該レコード内の項目は項目区切り符号により区切られており、項目識別符号により一意に特定することができるデータであって、
検索パターン変数テーブルは更に、検索対象レコード中に存在したか否かを示す第一のヒットフラグを有し、
検索要求式変数テーブルは更に、前記検索要求式変数にＩＤ番号を付与した最終式変数ＩＤ欄と第二のヒットフラグを有し、
パターンマッチング処理で、キーワードを検出した場合は、検索パターン変数テーブル中の該当する第一のヒットフラグを真にし、
項目区切り符号を検出した場合は、検索要求式変数テーブルの全ての式変数について論理演算を行い、その結果が真となるものについて、第二のヒットフラグの値を真にする検索要求式変数評価を行い、
前記検索要求式変数評価の後、検索パターン変数テーブルの第一のヒットフラグの全てを偽にし、
レコード区切り符号を検出した場合は、前記最終式変数ＩＤが真で、かつ第二のヒットフラグが真になっている検索要求式変数の最終式変数ＩＤを取り出し、検索結果テーブルのその最終式変数ＩＤの欄に検出したレコードの内容を書き込み、
その後、検索パターン変数テーブルと検索要求式変数テーブルの全ヒットフラグを偽にして、検索対象データの終了まで、パターンマッチングを再度行う
ことをコンピュータに実行させるためのパターン検索プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
ネットワークを介して複数の端末装置とパターン検索装置とが接続されたパターン検索システムにおいて、
前記複数の端末装置の各々は、
複数の項目で構成された検索対象データを検索するための項目識別符号と検索語と検索式とを含む検索条件を、前記各端末装置を特定するための端末装置情報とともに送信する端末装置側送信手段を備え、
前記パターン検索装置は、
複数の項目で構成された検索対象データを格納する検索対象データ格納手段と、
前記複数の端末装置の各々の前記端末側送信手段から送信された、前記検索対象データを検索するための項目識別符号と検索語と検索式とを含む検索条件を、前記各端末装置を特定するための端末装置情報とともに受信する検索条件受信手段と、
前記検索条件受信手段によって前記複数の端末装置から受信した検索条件と端末装置情報とを纏めて格納する検索条件バッファ手段と、
先行する検索処理が実行中か否かを判断する検索処理判断手段と、
前記検索処理判断手段によって先行する検索処理が実行中でないと判断された場合、前記検索条件バッファ手段に格納された項目識別符号および検索語のうち、２以上の同一の項目識別符号および検索語があれば１の検索パターン以外の項目識別符号および検索語を省き、前記検索条件バッファ手段に存在する全ての項目識別符号及び検索語に関してそれぞれを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成する検索パターン変数テーブル作成手段と、
前記検索条件バッファ手段に格納された検索式および端末装置情報と前記検索パターン変数テーブル作成手段によって作成された検索パターン変数テーブルとに基づいて、前記検索パターンを前記第１の変数を用いて表した検索要求式と前記検索要求式を値とする第２の変数との対応、および前記端末装置情報と前記検索式を前記第２の変数を用いて表した検索要求式と前記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成する検索要求式変数テーブル作成手段と、
前記検索パターン変数テーブル作成手段によって作成された検索パターン変数テーブルと前記検索要求式変数テーブル作成手段によって作成された検索要求式変数テーブルとの関連に従って、前記検索対象データ格納手段を検索して前記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出する検索手段と、
前記検索手段によって抽出された検索結果を前記複数の端末装置の各々に送信する送信手段とを備え、
前記複数の端末装置の各々は、さらに、前記送信手段によって送信された前記結果を受信する端末装置側受信手段とを備え、
検索対象データは、複数のレコードから構成され、該各レコードは複数の項目から構成され、該レコードはレコード区切り符号等により識別することができ、該レコード内の項目は項目区切り符号により区切られており、項目識別符号により一意に特定することができるデータであって、
検索パターン変数テーブルは更に、検索対象レコード中に存在したか否かを示す第一のヒットフラグを有し、
検索要求式変数テーブルは更に、前記検索要求式変数にＩＤ番号を付与した最終式変数ＩＤ欄と第二のヒットフラグを有し、
パターンマッチング処理で、キーワードを検出した場合は、検索パターン変数テーブル中の該当する第一のヒットフラグを真にし、
項目区切り符号を検出した場合は、検索要求式変数テーブルの全ての式変数について論理演算を行い、その結果が真となるものについて、第二のヒットフラグの値を真にする検索要求式変数評価を行い、
前記検索要求式変数評価の後、検索パターン変数テーブルの第一のヒットフラグの全てを偽にし、
レコード区切り符号を検出した場合は、前記最終式変数ＩＤが真で、かつ第二のヒットフラグが真になっている検索要求式変数の最終式変数ＩＤを取り出し、検索結果テーブルのその最終式変数ＩＤの欄に検出したレコードの内容を書き込み、
その後、検索パターン変数テーブルと検索要求式変数テーブルの全ヒットフラグを偽にして、検索対象データの終了まで、パターンマッチングを再度行う
ことを特徴とするパターン検索システム。
【請求項８】
ネットワークを介して複数の端末装置に接続されたパターン検索装置上で実行される複数の項目で構成された検索対象データのパターン検索プログラムにおいて、
前記複数の端末装置の各々から送信された、検索対象データを検索するための項目識別符号と検索語と検索式とを含む検索条件を、前記各端末装置を特定するための端末装置情報とともに受信し、
前記複数の端末装置から受信した検索条件と端末装置情報とを纏めて検索条件バッファに格納し、
先行する検索処理が実行中か否かを判断し、
先行する検索処理が実行中でないと判断された場合、
前記検索条件バッファに格納された項目識別符号および検索語のうち、２以上の同一の項目識別符号および検索語があれば１の検索パターン以外の項目識別符号および検索語を省き、前記検索条件バッファ手段に存在する全ての項目識別符号及び検索語に関してそれぞれを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成し、
前記検索条件バッファに格納された検索式および端末装置情報と前記作成された検索パターン変数テーブルとに基づいて、前記検索パターンを前記第１の変数を用いて表した検索要求式と前記検索要求式を値とする第２の変数との対応、および前記端末装置情報と前記検索式を前記第２の変数を用いて表した検索要求式と前記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成し、
前記作成された検索パターン変数テーブルと検索要求式変数テーブルとの関連に従って、
前記検索対象データを格納した検索対象データデータベースを検索して
前記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出し、
前記抽出された検索結果を前記複数の端末装置の各々に送信し、
検索対象データは、複数のレコードから構成され、該各レコードは複数の項目から構成され、該レコードはレコード区切り符号等により識別することができ、該レコード内の項目は項目区切り符号により区切られており、項目識別符号により一意に特定することができるデータであって、
検索パターン変数テーブルは更に、検索対象レコード中に存在したか否かを示す第一のヒットフラグを有し、
検索要求式変数テーブルは更に、前記検索要求式変数にＩＤ番号を付与した最終式変数ＩＤ欄と第二のヒットフラグを有し、
パターンマッチング処理で、キーワードを検出した場合は、検索パターン変数テーブル中の該当する第一のヒットフラグを真にし、
項目区切り符号を検出した場合は、検索要求式変数テーブルの全ての式変数について論理演算を行い、その結果が真となるものについて、第二のヒットフラグの値を真にする検索要求式変数評価を行い、
前記検索要求式変数評価の後、検索パターン変数テーブルの第一のヒットフラグの全てを偽にし、
レコード区切り符号を検出した場合は、前記最終式変数ＩＤが真で、かつ第二のヒットフラグが真になっている検索要求式変数の最終式変数ＩＤを取り出し、検索結果テーブルのその最終式変数ＩＤの欄に検出したレコードの内容を書き込み、
その後、検索パターン変数テーブルと検索要求式変数テーブルの全ヒットフラグを偽にして、検索対象データの終了まで、パターンマッチングを再度行う
ことをコンピュータに実行させるためのパターン検索プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、検索対象から検索パターンを検索するパターン検索技術に関し、特に、複数の端末装置からの検索要求が同時に送られてくる場合に、これらの検索要求を纏めて一度に検索し、検索結果を各端末装置に振り分けて返信することにより、全体の処理時間を飛躍的に短縮するパターン検索技術に関する。
【０００２】
【従来の技術】
従来、文字列照合方式を用いた全文検索システムが存在している。文字列照合方式を用いた全文検索システムとは、指定した文字列と検索対象のテキストデータを、検索対象のテキストデータの先頭より後方に向かって逐次照合しながら、指定した文字列が検索対象のテキストデータ中に存在するか否かを調べるシステムである。
【０００３】
【発明が解決しようとする課題】
しかしながら、この文字列照合方式を用いた全文検索システムにおいては、システムのＣＰＵがテキストデータスキャンの間中文字の照合動作を行なっており、その間他の処理を行なうことができない。このことは、例えば、ネットワークを介して複数のユーザ端末と検索装置とが接続されたシステムにおいて、複数のユーザ端末に検索サービスを時分割に提供することが困難であるということを意味する。
【０００４】
すなわち、フルテキストサーチ処理を行なう検索装置に複数個のユーザ端末が接続し、その各々のユーザ端末から頻繁に検索要求が与えられる場合、検索処理を開始した検索装置のＣＰＵは、テキストスキャン中のため他の処理を行なうことができず、ＣＰＵの文字照合動作が一通り終了するまで他の要求が待たされるという問題があった。
【０００５】
また、異なるユーザ端末から略同時期に同じ検索要求が来た場合であっても、検索装置は、それぞれの検索要求に対して同じ検索処理を反復して実行するという無駄な処理を行なっているという問題点があった。
【０００６】
本発明は、上記問題点に鑑みてなされたもので、複数のユーザ端末と接続されたフルテキストサーチの検索装置において、各ユーザ端末からの検索要求が連続的に送られてきても、ユーザ端末と検索装置とが１対１である場合と略同じ応答時間で各ユーザ端末に検索結果を返すことのできる検索方法、検索装置、検索プログラムを記録したコンピュータ読み取り可能な記録媒体、検索システムおよび検索プログラムを提供することを目的とする。
【０００７】
また、本発明は、異なるユーザ端末から略同時期に同じ検索要求が来た場合に、無駄な検索処理を行なわずに検索処理を実行する検索方法、検索装置、検索プログラムを記録したコンピュータ読み取り可能な記録媒体、検索システムおよび検索プログラムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のパターン検索方法、パターン検索装置、パターン検索プログラムを記録したコンピュータ読み取り可能な記録媒体、パターン検索システムおよびパターン検索プログラムは、ネットワークを介して複数の端末装置とパターン検索装置とが接続されたパターン検索システムにおいて、上記複数の端末装置の各々から送信された、検索対象データを検索するための検索パターンと検索式とを含む検索条件を、上記各端末装置を特定するための端末装置情報とともに受信し、上記受信した検索条件と端末装置情報とを検索条件バッファに格納し、先行する検索処理が実行中か否かを判断し、先行する検索処理が実行中でないと判断された場合、上記検索条件バッファに格納された検索パターンのうち、２以上の同一の検索パターンがあれば１の検索パターン以外の検索パターンを省き、検索パターンと上記検索パターンを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成し、上記検索条件バッファに格納された検索式および端末装置情報と上記作成された検索パターン変数テーブルとに基づいて、上記検索パターンを上記第１の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数との対応、および上記端末装置情報と上記検索式を上記第２の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成し、上記作成された検索要求式変数テーブルに従って、上記検索対象データを格納した検索対象データデータベースを検索して上記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出し、上記抽出された検索結果を上記複数の端末装置の各々に送信することを特徴とする。
【０００９】
これにより、短時間に多数の検索要求がある場合であっても、従来用いられていた技術に比べ、格段に高速で処理することができる。
また、好適には、上記検索条件バッファが、実行中の検索処理が終了したことを判断するまで、上記検索条件を格納することが望ましい。
【００１０】
また、好適には、上記検索条件バッファが、予め定めた時間または予め定めた容量に達するまで、上記検索条件を格納することが望ましい。
また、好適には、上記検索が、複数個の検索パターンを同時に検索する手法であることが望ましい。
【００１１】
また、好適には、上記検索が、Ａｈｏ−Ｃｏｒａｓｉｃｋ（ＡＣ）法、Ｅｘｐａｎｄｅｄ−Ｂｏｙｅｒ−Ｍｏｏｒｅ（ＥＢＭ）法、またはＳｈｉｎｏｈａｒａ−Ａｒｉｋａｗａ（ＳＡ）法の何れかであることが望ましい。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
図１は、本発明を適用したパターン検索システムの機能構成図である。
【００１３】
図１において、パターン検索システム１は、ネットワーク２を介して複数の端末装置３とパターン検索装置４とが接続されている。
上記複数の端末装置３の各々は、端末装置側送信手段３１と、端末装置側受信手段３２とを備える。
【００１４】
上記パターン検索装置４は、検索対象データ格納手段（データベース）４１と、検索条件受信手段４２と、検索条件バッファ手段４３と、検索処理判断手段４４と、検索パターン変数テーブル作成手段４５と、検索パターン変数テーブル４６と、検索要求式変数テーブル作成手段４７と、検索要求式変数テーブル４８と、検索手段４９と、送信手段５０とを備える。
【００１５】
端末装置側送信手段３１は、検索対象データを検索するための検索パターンと検索式とを含む検索条件を、上記各端末装置３を特定するための端末装置情報とともに送信する。
【００１６】
検索対象データ格納手段４１は、検索対象データを格納する。
検索条件受信手段４２は、上記複数の端末装置３の各々の上記端末側送信手段３１から送信された、上記検索対象データを検索するための検索パターンと検索式とを含む検索条件を、上記各端末装置３を特定するための端末装置情報とともに受信する。
【００１７】
検索条件バッファ手段４３は、上記検索条件受信手段４２によって受信した検索条件と端末装置情報とを格納する。例えば、下記検索処理判断手段４４により先行する検索処理が終了したと判断するまで、あるいは、予め定めた時間または予め定めた容量に達するまで、上記検索パターンを格納する。
【００１８】
検索処理判断手段４４は、先行する検索処理が実行中か否かを判断する。
検索パターン変数テーブル作成手段４５は、上記検索処理判断手段４４によって先行する検索処理が実行中でないと判断された場合、上記検索条件バッファ手段４３に格納された検索パターンのうち、２以上の同一の検索パターンがあれば１の検索パターン以外の検索パターンを省き、検索パターンと上記検索パターンを値とする第１の変数とを対応付けた検索パターン変数テーブル４６を作成する。
【００１９】
検索要求式変数テーブル作成手段４７は、上記検索条件バッファ手段４３に格納された検索式および端末装置情報と上記検索パターン変数テーブル作成手段４５によって作成された検索パターン変数テーブル４６とに基づいて、上記検索パターンを上記第１の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数との対応、および上記端末装置情報と上記検索式を上記第２の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブル４８を作成する。
【００２０】
検索手段４９は、上記検索要求式変数テーブル作成手段４７によって作成された検索要求式変数テーブル４８に従って、上記検索対象データ格納手段４１を検索して上記複数の端末装置３の各々から送信された検索条件に合致する検索結果を抽出する。検索の手法としては、複数個の検索パターンを同時に検索する手法を用いることができる。例えば、Ａｈｏ−Ｃｏｒａｓｉｃｋ（ＡＣ）法、Ｅｘｐａｎｄｅｄ−Ｂｏｙｅｒ−Ｍｏｏｒｅ（ＥＢＭ）法、またはＳｈｉｎｏｈａｒａ−Ａｒｉｋａｗａ（ＳＡ）法を用いることができる。これらＡＣ法、ＥＢＭ法、ＳＡ法については概略を後述する。
【００２１】
送信手段５０は、上記検索手段４９によって抽出された検索結果を上記複数の端末装置３の各々に送信する。
端末装置側受信手段３２は、上記送信手段５０によって送信された結果を受信する。
【００２２】
図２は、図１を用いて説明したパターン検索装置４上で実行されるパターン検索処理のフローチャートである。
処理が開始されると、まずステップＳ１において、パターン検索装置４は、検索条件受信手段４２によって、複数の端末装置３の各々の端末装置側送信手段３１から送信された、検索対象データを検索するための検索パターンと検索式とを含む検索条件を、上記各端末装置３を特定するための端末装置情報とともに受信する。
【００２３】
ステップＳ２において、パターン検索装置４は、検索条件バッファ手段４３によって、上記受信した検索条件と端末装置情報とをバッファメモリ上に一時的に格納する。
【００２４】
そして、ステップＳ３において、パターン検索装置４は、検索処理判断手段４４によって、先行する検索処理が実行中か否かを判断する。
検索実行中であれば（ステップＳ３：ＹＥＳ）、ステップＳ１に戻り、端末装置側送信手段３１から送信された、他の検索条件等を受信し、上記バッファメモリ上に一時的に続けて格納（ステップＳ２）する。この受信（ステップＳ１）および格納（ステップＳ２）は、ステップＳ３で検索処理判断手段４４により先行する検索処理が終了したと判断されるまで繰り返す。なお、先行する検索処理が終了したと判断されても、予め定めた時間または予め定めた容量に達するまで、上記検索条件等の受信／格納を繰り返すようにしても良い。
【００２５】
一方、ステップＳ３で検索実行中でない（先行する検索処理が終了した）と判断される（ステップＳ３：ＮＯ）と、ステップＳ４において、パターン検索装置４は、検索パターン変数テーブル作成手段によって、上記バッファメモリに格納された検索パターンのうち、２以上の同一の検索パターンがあれば１の検索パターン以外の検索パターンを省き、検索パターンと上記検索パターンを値とする第１の変数とを対応付けた検索パターン変数テーブル４６を作成する。
【００２６】
続いて、ステップＳ５において、パターン検索装置４は、検索要求式変数テーブル作成手段４７によって、上記バッファメモリに格納された検索式および端末装置情報と上記作成された検索パターン変数テーブル４６とに基づいて、上記検索パターンを上記第１の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数との対応、および上記端末装置情報と上記検索式を上記第２の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブル４８を作成する。
【００２７】
そして、ステップＳ６において、パターン検索装置４は、検索手段４９によって、上記作成された検索要求式変数テーブル４８に従って、上記検索対象データを格納した検索対象データ格納手段４１を検索して上記複数の端末装置３の各々から送信された検索条件に合致する検索結果を、複数個の検索パターンを同時に検索する手法、ＡＣ法、ＥＢＭ法、あるいは、ＳＡ法を用いて抽出（検索）する。
【００２８】
最後に、ステップＳ７において、パターン検索装置４は、送信手段５０によって、上記抽出された検索結果を上記複数の端末装置３の各々に送信する。端末装置３側では、各々の端末装置側受信手段３２によって、上記検索結果を受信する。
【００２９】
ここで、上述のＡＣ法、ＥＢＭ法、ＳＡ法について概略を説明する。
まず、ＡＣ法について概略を説明する。なお、ＡＣ法に関しては、参考文献１（Aho.A.V. and Corasick.M.J., "Efficient String Matching:An Aid to Bibliographic Search", Comm.ACM, vol.18, no.6, pp.333-340, 1975）に詳述されている。
【００３０】
ＡＣ法は、上記参考文献１の著者であるAlfred AhoとMargaret Corasick が考案したパターンマッチングエンジンのアルゴリズムであり、検索対象文字列を先頭から後方に向かって１回操作するだけで、複数個の検索文字列の存在を見つけ出すことができる手法である。
【００３１】
ここでは、ＡＣアルゴリズムが採用している、検索対象文字列に存在する検索文字列を見つけ出す基本論理を説明する。
一般に情報処理技術では、文字列を、実態上、０又は１の値しかとらないビットと呼ぶ２進数値の羅列により表現している。文字列は、それを１ビットまでに分解すれば２進数値の羅列であるが、４ビット単位に分解すれば１６進数値の羅列であり、８ビット単位に分解すれば２５６進数値の羅列である。
【００３２】
ここでは、文字列を１６進数値の羅列として取り扱って、ＡＣアルゴリズムの基本論理を説明する。
まず、検索語を「富士（９５７８  ８Ｅ６Ｄ）」、「瞬索（８Ｆ７５  ８ＤＦ５）」、「高速（８Ｄ８２  ９１ＡＣ）」の３つとする。括弧内は同検索語の１６進数表現の例である。
【００３３】
そして、検索対象文字列を「富士の瞬索は超高速（９５７８  ８Ｅ６Ｄ  ８２ＣＣ  ８Ｆ７５  ８ＤＦ５  ８２ＣＤ  ９２Ｂ４  ８Ｄ８２  ９１ＡＣ）」とする。ただし、「の（８２ＣＣ）」、「は（８２ＣＤ）」、「超（９２Ｂ４）」である。
【００３４】
パターンマッチングエンジンは、まず、上記検索語に基づいて、図３に示すような状態遷移テーブルを作成する。
図３は、「判定１」において、検索対象文字列の中の任意の４ビット（ｎ番目の４ビット）が、「９」であるのか「８」であるのか、あるいは「９」と「８」のいずれでもないのかを判定する。そして、「９」であれば「判定２−１」を行ない、「８」であれば「判定２−２」を行なう。また、それ以外であればｎ＋１番目の４ビットについて「判定１」を行なう。
【００３５】
「判定２−１」においては、ｎ＋１番目の４ビットが「５」であるのか、あるいはそれ以外であるのかを判定する。「５」であればｎ＋２番目の４ビットについて「判定３−１」を行ない、それ以外であればｎ＋１番目の４ビットについて「判定１」を行なう。
【００３６】
以下同様に逐次４ビット単位の判定を行なっていく。
このような過程において、「判定８−１」が行なわれ、判定した４ビットが  「Ｄ」であれば、検索語「富士」を検出したことになる。また、「判定８−２」が行なわれ、判定した４ビットが「Ｃ」であれば、検索語「高速」を検出したことになり、「判定８−３」が行なわれ、判定した４ビットが「５」であれば、  「瞬索」を検出したことになる。
【００３７】
なお、検索語は、「富士」、「高速」、「瞬索」の３つがあるが、「判定1 」では、３回の判定を行なわず、「９」か「８」かの２回の判定だけで済んでいる。しかし、「判定２−２」で、「Ｄ」か「Ｆ」かの判定を行なっているので、一見、「判定１」での判定回数の削減が意味をなさないように見えるが、「判定１」の結果が「８」でなければ「判定２−２」を実施しなくて済むわけであるから、実態上、判定回数が削減されることになる。各数値の出現する確率が等確率であれば、「８」の出現する確率は１６分の１となり、「判定２−２」の実施確率も１６分の１となる。
【００３８】
以上の説明の範囲では、判定回数の削減効果はあるものの、文字列照合時間が検索語の数に影響されないとは言えない。特に、検索語の数が少ない場合は、判定回数の削減効果は小さい。
【００３９】
しかし、各判定処理を以下の方法により効率化することができる。
各判定は、図４に示すような判定テーブルを使用して作成する。図４は、「判定１」の判定テーブルである。図４は、判定対象４ビットの値が、「９」であれば、次の４ビットを「判定２−１」の判定テーブルに従って判定を行ない、「８」であれば、次の４ビットを「判定２−１」の判定テーブルに従って判定を行ない、それ以外であれば、次の４ビットを「判定１」の判定テーブルに従って判定を行なうことを指示している。
【００４０】
この判定テーブルでの判定は次のように行なう。
前述した検索対象文字列を例にとれば、最初の数値は「９」であるので、まず、判定テーブル中の判定対象４ビットの値が「９」の欄を直接見に行き、「判定２−１」の判定テーブルに進む。つまり、判定テーブルの内容がどのようになっていても、常に、その一つの欄を見るだけで済む。従って、判定テーブルでの判定処理時間は検索語の数に影響されないことになる。
【００４１】
以降、判定テーブルに従って検索対象文字列を走査すれば、一回の走査で、全検索対象文字列と全検索語の照合が完了することになる。
なお、最後の判定テーブルでヒットした場合の行き先テーブルには、ヒットした文字列やその位置情報などの照合結果情報を格納しておき、そのテーブルに遷移した時点で、照合結果情報の取り出しを行なう。
【００４２】
上述の説明では、文字を４ビット単位に区切って、判定テーブルを作成したが、文字を８ビット単位に区切れば、１回の判定処理で、次の判定テーブルに遷移する確率は２５６分の１となり、更に、処理時間は削減される。
【００４３】
なお、状態遷移テーブルを作成する時間が、検索処理に加算されるが、この時間も一般的には検索処理時間に比較して十分に短いので、全体の処理時間には殆ど影響しない。
【００４４】
次に、ＥＢＭ法について概略を説明する。
ＥＢＭ法は、ＢＭ（Ｂｏｙｅｒ−Ｍｏｏｒｅ）法を複数個のパターンが扱えるように拡張したアルゴリズムである。ＥＢＭ法もＡＣ法と同じく、テキストを１回走査するだけで複数個のパターンすべてを検出することができるが、ＡＣ法に比べ作業領域が少なくて済み、比較的効率が良い。
【００４５】
まず、ＢＭ法について概略を説明する。ＢＭ法では、検索対象文字列とパターンをパターンの末尾から前方に向かって照合する。その照合過程においてアンマッチが発生した場合、検索対象文字列の照合を行う位置を後方にずらして、再度、パターンの末尾より照合を行う。この処理を、照合位置が検索対象文字列の末尾になるまで繰り返し行う。アンマッチが発生した場合に、照合を行う位置を何文字分後方にずらせば良いかは、アンマッチが発生した時点の検索対象文字列の文字により、一意に決まり、与えられたパターンを元に、文字と後方にずらす文字数の対応のテーブルを作成することができる。
【００４６】
たとえば、「ＡＢＣＤ」というパターンが与えられた場合、そのテーブルは、図５（ａ）中のｄｅｌ＿ａｂｃｄのようなｄｅｌｔａ１テーブル（負でない整数値の一次元配列）をとなる。上段は、照合過程でアンマッチとなった時点の検索対象文字列中の文字であり、下段は、その時、照合位置を何文字後方にずらすかを示す値である。パターンの末尾の文字の下段の数値は０とする。パターン中に存在しない文字の下段の値はパターンの文字数となる。照合時は、まず、パターンの末尾文字と照合すべき位置にある検索対象文字列中の文字を取り出し、ｄｅｌｔａ１テーブルのその文字に対応する文字の下段の数値を調べ、その数値が０であれば、パターンの末尾の文字と一致していることになるので、前方に向かって照合を行い、下段の数値が１以上であれば、その数値分だけ検索対象文字列とパターンの照合位置を検索対象文字列の後方にずらして、引き続きパターンの末尾文字の照合を行う。この処理を、照合位置が検索対象文字列の末尾になるまで繰り返せば、照合が完了する。
【００４７】
ＥＢＭ法では、このテーブルを次のように利用する。
いま、「ＡＢＣＤ」と「ＢＣＤＥ」という２つのパターンが与えられたとすると、まず、それぞれのパターンごとに図５（ａ）中のｄｅｌ＿ａｂｃｄとｄｅｌ＿ｂｃｄｅのようなｄｅｌｔａ１テーブル（負でない整数値の１次元配列）を作成する。次にこれらのテーブルを合成して（同じ文字に対応する値の小さい方を値とする）図５（ａ）中のｄｅｌ＿ｃｏｍのようなｄｅｌｔａ１テーブルを作成する。なお、最小値が０の場合は、０の代わりに大きな値Ｌ（ｌａｒｇｅ：検索対象文字列の文字数＋パターンの文字数＋１）を入れて置く。Ｌは照合処理の終わりを判定するのに使用される。
【００４８】
また、パターンの末尾の文字が見つかったとき（ｄｅｌｔａ１の値がｌａｒｇｅのとき）、それがどのパターンの末尾の文字に対応するのかをわかるようにしておくために、図５（ｂ）のようなテーブルを作成しておく。図５（ｂ）中の数字（１、２、３）は、どのパターン化を示す番号である。
そして、図５（ａ）のｄｅｌ＿ｃｏｍと図５（ｂ）を用いて、ＢＭ方と同様な照合を行うことにより、パターンの数が複数あっても、検索対象文字列の前方から後方に向かった一回の照合処理で、検索処理を終えることができる。
【００４９】
最後に、ＳＡ法について概略を説明する。
ＳＡ法は、日本語テキストに対して文字列のパターンマッチングを行なう場合のアルゴリズムである。
【００５０】
日本語テキストには、２バイト文字と１バイト文字とが混在することがある。２バイト文字と１バイト文字とが混在すると、注目している文字コードが１バイト文字であるのか２バイト文字であるのかを容易に認識することはできない。つまり、文字列の先頭から文字の切替わりを認識しながら処理をしていかないと、図６に示すような「ずれ読み」と呼ばれる現象が発生してしまう。
【００５１】
先に説明したＡＣ法およびＥＢＭ法は、複数のパターンのマッチングを効率的に行う方法は示しているが、この「ずれ読み」の問題を効率的に解決する手段を示していない。日本語テキストにおいては、この「ずれ読み」の問題を解決しないと、いずれの方法も効果的な適用ができない。ＳＡ法は、ＡＣ法をベースにしながら、この「ずれ読み」の問題を解決する手段を、以下のとおり示している。
【００５２】
この「ずれ読み」の問題を解決するための方法の１つとして、１バイト文字と２バイト文字との境界を常に認識しながらパターンマッチングを行ない、「ずれ読み」が起こらないようにする方法がある。そのためには、日本語テキスト上でコード系（シフトＪＩＳ）の特性を反映したオートマトンを作成し、これを用いてパターンマッチングを行なう。
【００５３】
図７は、日本語テキスト上でコード系の特性を反映したオートマトンの例を示す図である。
図７に示されたオートマトンは、｛ＡＢ，苑，庭｝のパターン集合を対象としている。図中の状態７は，中間状態を示しており，状態３と状態５の破線がこの中間状態７に向かっている。状態３または状態５から遷移ができなくなった場合、まず中間状態７へ遷移を行なう。中間状態７では、「ずれ読み」の調整を行った後、状態０に遷移する。この方法により、マッチングの過程において、効率的に「ずれ読み」の調整を行うことができる。
【００５４】
例えば、テキストとして「外苑の初霜」が与えられると、図８に示す状態遷移が発生し、パターンを正しく検出することができる。
なお、ＡＣ法、ＥＢＭ法については、参考文献２（「５種類のパターン・マッチング手法をＣ言語の関数で実現する  第１回  英文テキストの場合」，  ＮＩＫＫＥＩ  ＢＹＴＥ／ＡＵＧＵＳＴ  １９８７）に、ＳＡ法については、参考文献３（「５種類のパターン・マッチング手法をＣ言語の関数で実現する  第２回日本語テキストの場合」，  ＮＩＫＫＥＩ  ＢＹＴＥ／ＳＥＰＴＥＭＢＥＲ  １９８７）に詳述されている。
【００５５】
図９は、本発明の文字列照合方式全文検索システム（以下、本システムという。）の概念モデルを示す図である。
本システムは、複数の端末から非定期的に発生する検索要求に対して、検索対称テキストデータの中からそれぞれの検索要求を満足する情報を抽出して、その情報を検索結果としてそれぞれの端末に返信する装置である。検索対象テキストデータの内容の例を図１０に示す。検索対象テキストデータの全体をここではファイルと言う。ファイルは複数のレコードから構成され、各レコードは複数の項目から構成される。項目の中身は文字列であり、レコードはレコード区切符号等により識別することができる。レコード内の項目は項目区切符号により区切られており、項目識別符号（以下、項目タグという。）により一意に特定することができる。
【００５６】
検索要求は時系列で頻繁に本システムへ訪れる。各検索要求は、図１１に示すように、項目タグと検索語を対とした情報の羅列と、検索条件式を持つ。これらの情報は、検索対象レコードの中の項目タグで指定する項目の中に指定検索語が存在し、かつ、検索条件式を満足するレコードを捜して欲しい、と言うことを意味する。
【００５７】
そして、本システムは検索要求を満足するレコードをファイルの中から見つけ出し、そのレコードの一部または全体を検索要求元に返す。
図９に示したような文字列照合方式全文検索システムは、従来は、端末から検索要求があった場合、その都度、検索処理を行なって、検索結果を端末に返していたが、本発明では、各端末からの検索要求を纏めて一度に検索処理を行ない、検索処理後に、検索結果をそれぞれの端末に振り分けて返信することにより、全体の処理時間を飛躍的に短縮している。
【００５８】
検索要求は時系列で頻繁に本システムに訪れるが、各検索要求を個別に処理せず、複数の検索要求を纏めて一括して処理する。その一括処理する検索要求の集合を、ここでは検索要求群という。その概念を図１２に示す。
【００５９】
検索要求群は以下のようにして構成される。
本システムがある検索要求群の処理を行なっている最中に訪れた検索要求を全て待たせておき、処理中の検索要求群の処理が完了した時点で待っている検索要求全てを次の検索要求群とする。また、待っている検索要求が存在しない場合は、次に訪れる最初の検索要求１つだけで検索要求群を構成する。また、最初の検索要求群に含まれる検索要求の数は１つである。
【００６０】
図１３は、本発明の全体構成図の例を示す図である。
本発明は、情報処理装置と磁気ファイル装置とプログラム記憶装置とで構成される。プログラム記憶装置の構成要素は、制御プログラム、受付プログラム、依頼者スレッド、検索要求テーブル、検索結果テーブル及び検索プログラムである。
【００６１】
図１４は、制御プログラムの処理の流れを示すフローチャートである。
制御プログラムは、諸テーブルの初期化等のシステムの初期化処理を行なった（ステップＳ１４１）後、検索プログラムの起動（ステップＳ１４２）と受付プログラムの起動を（ステップＳ１４３）順に行なう。
【００６２】
図１５は、受付プログラムの処理の流れを示すフローチャートである。
受付プログラムは、常に端末からの検索要求待ちの状態（ステップＳ１５１）にあり、端末から検索要求が合った都度、依頼者スレッドを起動する（ステップＳ１５２）。依頼者スレッドは検索要求の数だけ作成される。
【００６３】
図１６は、依頼者スレッドの処理の流れを示すフローチャートである。
依頼者スレッドは、起動された後、検索要求テーブルに検索要求の書込を行なう（ステップＳ１６１）。このステップＳ１６１の処理の概念図を図１７に示す。
【００６４】
その後、依頼者スレッドは、検索処理の完了待ちの状態となる（ステップＳ１６２）。検索処理終了後、検索結果が検索結果テーブルに書き込まれ、また、各依頼者スレッドへの回答が、検索結果テーブルの何処に書き込まれているかを示す最終式変数ＩＤが、共通領域に書き込まれる。依頼者スレッドは、待ちの状態が溶けた後、共通領域内の自分の領域の最終式変数ＩＤを見て（ステップＳ１６３）、検索結果テーブルより、ヒットレコードの内容を取り出して（ステップＳ１６４）、回答を編集して（ステップＳ１６５）端末に返信する（ステップＳ１６６）。このステップＳ１６２乃至ステップＳ１６５の処理の概念を図１８に示す。
【００６５】
図１９は、検索プログラムの全体の構造を示す図である。
検索プログラムは、前処理、検索処理及び後処理等から構成される。
図２０は、前処理の処理の流れを示すフローチャートである。
【００６６】
前処理は、最初に新規の依頼者スレッドの検索要求テーブルへの書き込みを禁止する（ステップＳ２０１）。
続いて、検索要求テーブルを元にキーワード変数テーブルと検索要求式変数テーブルを作成し（ステップＳ２０２、Ｓ２０３）、共通領域に各依頼者スレッドの最終式変数ＩＤを書き込む（ステップＳ２０４）。
【００６７】
その後、検索要求テーブルの全ての内容を削除（ステップＳ２０５）した後、新規の依頼者スレッドの検索要求テーブルへの書込禁止を解除する（ステップＳ２０６）。
【００６８】
図２１は、キーワード変数テーブル作成処理の概念を示す図である。
キーワード変数テーブルは、項目タグおよび検索語（両者を総称してキーワードという。）が複数並んだテーブル情報である。キーワードにはキーワード変数を付与し、更に、キーワードが検索対象レコード中に存在したかどうかを示すヒットフラグ欄を設ける。ヒットフラグの初期値は０であり、ヒットした場合は１にする。ヒットフラグは検索処理の過程において使用される。
【００６９】
キーワード変数テーブルへ記録する項目タグ及び検索語は、検索要求テーブル中に存在する全ての項目タグ及び検索語である。但し、同じ内容の項目タグ及び検索語は重複して記録しない。
【００７０】
図２２は、検索要求式変数テーブル作成の概念を示す図である。
検索要求式変数テーブルは、検索論理式が複数並んだテーブル情報である。各検索論理式には、一意に特定できる符号（以下、式変数という。）を付与する。検索論理式テーブルには、検索要求テーブル中の、項目タグと検索語の全ての対を、それぞれ、タグ変数と検索語変数（具体的には付与されたキーワード変数）を論理積（ａｎｄ）演算子で結んだ論理式として記録する。この論理式に付けた式変数をタグ式変数と呼ぶ。同一内容のタグ式変数は重複して登録しない。
【００７１】
また、検索要求テーブル内の全ての検索条件式を、タグ式変数を論理演算子で結んだ論理式に置き換えて、検索要求式変数テーブルに記録する。この論理式に付けた式変数を検索要求式変数と呼ぶ。同一内容の検索論理式を持つ検索要求式変数は、重複して検索論理式テーブルに登録しない。
【００７２】
検索要求式変数テーブルには、各式変数に対応して、最終式変数ＩＤ欄とヒットフラグ欄を設ける。検索要求式変数の最終式変数ＩＤ欄には、１から順を追って番号を付与する。タグ変数の最終式変数ＩＤ欄には、０を記録する。ヒットフラグ欄は検索処理の過程において使用する。ヒットフラグ欄の初期値は０である。
【００７３】
この検索要求式変換テーブルの作成処理の後、共通領域内の各依頼者スレッドの対応領域に、その依頼者スレッドの検索条件に対応する検索要求式変数の最終式変数ＩＤの書き込みを行なう。
【００７４】
図２３は、検索処理の処理の流れを示すフローチャートである。
検索処理は、キーワード変数テーブル及び検索要求式変数テーブルを元にして、検索対象テキストデータから各依頼者スレッドからの検索要求を満足するレコードを見つけ出し、そのレコードの内容を、最終式変数ＩＤ別に、検索結果テーブルに書き込む処理である。
【００７５】
この検索処理は、大きく分けて、ファイル中から指定文字列を検出するパターンマッチング処理（ステップＳ２３１）と、指定文字列を検出した後、検出された文字列に従って行なう処理（ステップＳ２３２乃至Ｓ２３８）に分けられる。
【００７６】
パターンマッチング処理では、キーワード変数テーブル中の全キーワードにレコード区切り符号と項目区切り符号を加えて、検索対象テキストデータの先頭より全文字照合を行なう。本発明で使用するパターンマッチング処理の技術としては、処理時間がキーワードの数に依存しないＡＣアルゴリズム等（上述のＡＣ法、ＥＭＢ法、ＳＡ法等）の技術を用いる。
【００７７】
まず、パターンマッチング処理で、キーワードがヒット( 検出) した場合は、キーワード変数テーブル中のヒットしたキーワードのヒットフラグを真（１）にする（ステップＳ２３２）。
【００７８】
項目区切り符号がヒットした場合は、検索要求式変数評価を行なう（ステップＳ２３３）。検索要求式変数評価とは、検索要求式変数テーブルの全ての式変数について論理演算を行ない、その結果が真（１）となるものについて、ヒットフラグの値を真（１）にする処理である。
【００７９】
図１０の検索対象テキストデータを検索した場合、２番目の項目区切り符号を検出した時点では、キーワード変数テーブル及び検索要求式変数テーブルの状態は図２４のとおりとなる。
【００８０】
そして、検索要求式変数評価の後、キーワード変数テーブルの全ヒットフラグを偽（０）にする（ステップＳ２３４）。
レコード区切り符号がヒットした場合は、最終式変数ＩＤが真（１以上）で、かつヒットフラグが真（１）になっている（ステップＳ２３５：ＹＥＳ）検索要求式変数の最終式変数ＩＤを取り出し、検索結果テーブルのその最終式変数ＩＤの欄にヒットしたレコードの内容を書き込む（ステップＳ２３６）。その後、ファイルの終了まで（ステップＳ２３７：ＹＥＳ）、キーワード変数テーブルと検索要求式変数テーブルの全ヒットフラグを偽（０）にして（ステップＳ２３８）、ステップＳ２３１に戻り、パターンマッチング処理を続行する。
【００８１】
図１０の検索対象テキストデータを検索した場合、１件目のレコードの最後の項目区切り符号を検出した後の検索式変数評価後のキーワード変数テーブル及び検索要求式変数テーブルの状態は図２５のとおりとなり、１件目レコードの最後にあるレコード区切り符号を検出した後の処理では、検索結果テーブルの内容は図２６のとおりとなる。
【００８２】
検索処理完了後、後処理を行なう。後処理は、各依頼者スレッドの待ちの状態を解除する。
以上で本発明の第１の実施の形態の説明を終わる。
【００８３】
次に、本発明の第２の実施の形態について説明する。
第１の実施の形態では、レコードが複数の項目で構成されているデータの検索について説明したが、第２の実施の形態では、検索対象データのレコードが項目に分割されていない場合について説明する。
【００８４】
図２７は、第２の実施の形態の検索対象テキストデータの内容を示す図である。
第２の実施の形態の制御プログラム、受付プログラム、依頼者スレッド及び検索プログラムの動きは、第１の実施の形態の場合と同じであるが、キーワード変数テーブル及び検索要求式変数テーブルの内容は、第１の実施の形態の場合と第２の実施の形態の場合とでは異なる。
【００８５】
レコードが項目に分割されていない場合、検索要求では項目タグが使用されない。従って、第１の実施の形態の図２１に対応する検索要求テーブル及びキーワード変数テーブルは、図２８のとおりとなる。また、第１の実施の形態の図２２に対応する検索要求式変数テーブルは、タグ変数が存在しなくなるため、図２９のとおりとなる。
【００８６】
検索処理も、図２３と同じに動作するが、１件目のレコードの最後の項目区切り符号を検出した後の検索要求式変数評価の後の、キーワード変数テーブル及び検索要求式変数テーブルの内容は図３０のとおりとなる。
【００８７】
また、１件目のレコードの最後のレコード区切り符号を検出した後の処理が完了した後の検索結果テーブルは図３１のとおりとなる。
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、本発明は、以下のような特徴を有している。
（１）端末から検索要求があった時点で、その端末に対応してその端末との会話権を持つ依頼者スレッドを起動し、それぞれの依頼者スレッドが、１つの検索要求テーブルに、自分が会話権を持つ端末からの検索要求を書き込む。
（２）検索プログラムの処理が終了した時点で、その時までに検索要求テーブルに書き込まれていた検索要求全体を１つの処理単位として検索処理を行なう。
（３）検索要求テーブルに存在する全ての項目タグ及び検索語を、検索要求単位に関係なく、まとめてキーワード変数テーブルに書き込む。その時、同じ項目タグ、同じ検索語が存在したら、キーワード変数テーブルに重複書込を行なわない。
（４）検索要求テーブルに存在する、全ての項目タグと検索語の対の論理積（ａｎｄ）条件と、全ての検索条件式を、検索論理式として、検索要求単位に関係なく、纏めて検索要求式変数テーブルに書き込む。その時、同じ内容の検索論理式は重複して書き込まない。
（５）検索要求式変数テーブル中の、検索要求テーブル中の検索条件式に対応する検索論理式の最終式変数ＩＤ欄に、順に番号を記入する。さらに、その付与した番号を、検索論理式の元となる検索条件式を持つ検索要求を検索要求テーブルに書き込んだ依頼者スレッドに対応付けされた共通領域に書き込む。
（６）キーワード変数テーブル中の全キーワードと検索対象テキストデータのパターンマッチング処理を行なっている過程において、検索要求式変数テーブル中の最終式変数ＩＤ欄に付番している検索論理式が真（１）となる全てのレコードの内容を最終式変数ＩＤと対応させて検索結果テーブルに書き込む。
（７）依頼者スレッドが、共通領域に書き込まれた最終式変数ＩＤを見て、その最終式変数ＩＤに対応するレコードの内容を、検索結果テーブルから取り出して、自分が会話権を持っている端末に返信する。
【００８８】
上述のように、本発明の実施の形態を、図面を参照しながら説明してきたが、本発明が適用されるパターン検索装置は、その機能が実行されるのであれば、上述の実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、ＬＡＮ、ＷＡＮ等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。
【００８９】
また、バスに接続されたＣＰＵ、ＲＯＭやＲＡＭのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、可搬記録媒体、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた実施の形態のシステムを実現するソフトェアのプログラムコードを記録したＲＯＭやＲＡＭのメモリ、外部記録装置、可搬記録媒体を、パターン検索装置に供給し、そのパターン検索装置のコンピュータがプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００９０】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記録した可搬記録媒体等は本発明を構成することになる。
【００９１】
プログラムコードを供給するための可搬記録媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリーカード、ＲＯＭカード、電子メールやパソコン通信等のネットワーク接続装置（言い換えれば、通信回線）を介して記録した種々の記録媒体などを用いることができる。
【００９２】
また、図３２に示すように、コンピュータ３２０がメモリ３２１上に読み出したプログラムコードを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現される。
【００９３】
さらに、可搬型記録媒体３２２から読み出されたプログラムコードが、コンピュータ３２０に挿入された機能拡張ボードやコンピュータ３２０に接続された機能拡張ユニットに備わるメモリ３２１に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現され得る。
【００９４】
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
ここで、上述した実施の形態の特徴を列挙すると、以下の通りである。
【００９５】
（付記１）  ネットワークを介して複数の端末装置に接続されたパターン検索装置上で実行されるパターン検索方法において、
上記複数の端末装置の各々から送信された、検索対象データを検索するための検索パターンと検索式とを含む検索条件を、上記各端末装置を特定するための端末装置情報とともに受信し、
上記受信した検索条件と端末装置情報とを検索条件バッファに格納し、
先行する検索処理が実行中か否かを判断し、
先行する検索処理が実行中でないと判断された場合、上記検索条件バッファに格納された検索パターンのうち、２以上の同一の検索パターンがあれば１の検索パターン以外の検索パターンを省き、検索パターンと上記検索パターンを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成し、
上記検索条件バッファに格納された検索式および端末装置情報と上記作成された検索パターン変数テーブルとに基づいて、上記検索パターンを上記第１の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数との対応、および上記端末装置情報と上記検索式を上記第２の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成し、
上記作成された検索要求式変数テーブルに従って、上記検索対象データを格納した検索対象データデータベースを検索して上記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出し、
上記抽出された検索結果を上記複数の端末装置の各々に送信することを特徴とするパターン検索方法。
（付記２）  上記検索条件バッファは、実行中の検索処理が終了したことを判断するまで、上記検索条件を格納することを特徴とする付記１に記載のパターン検索方法。
（付記３）  上記検索条件バッファは、予め定めた時間または予め定めた容量に達するまで、上記検索条件を格納することを特徴とする付記１に記載のパターン検索方法。
（付記４）  上記検索は、複数個の検索パターンを同時に検索する手法であることを特徴とする付記１乃至３の何れか１項に記載のパターン検索方法。
（付記５）  上記検索は、Ａｈｏ−Ｃｏｒａｓｉｃｋ（ＡＣ）法、Ｅｘｐａｎｄｅｄ−Ｂｏｙｅｒ−Ｍｏｏｒｅ（ＥＢＭ）法、またはＳｈｉｎｏｈａｒａ−Ａｒｉｋａｗａ（ＳＡ）法の何れかであることを特徴とする付記１乃至３の何れか１項に記載のパターン検索方法。
（付記６）  ネットワークを介して複数の端末装置に接続されたパターン検索装置において、
検索対象データを格納する検索対象データ格納手段と、
上記複数の端末装置の各々から送信された、上記検索対象データを検索するための検索パターンと検索式とを含む検索条件を、上記各端末装置を特定するための端末装置情報とともに受信する検索条件受信手段と、
上記検索条件受信手段によって受信した検索条件と端末装置情報とを格納する検索条件バッファ手段と、
先行する検索処理が実行中か否かを判断する検索処理判断手段と、
上記検索処理判断手段によって先行する検索処理が実行中でないと判断された場合、上記検索条件バッファ手段に格納された検索パターンのうち、２以上の同一の検索パターンがあれば１の検索パターン以外の検索パターンを省き、検索パターンと上記検索パターンを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成する検索パターン変数テーブル作成手段と、
上記検索条件バッファ手段に格納された検索式および端末装置情報と上記検索パターン変数テーブル作成手段によって作成された検索パターン変数テーブルとに基づいて、上記検索パターンを上記第１の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数との対応、および上記端末装置情報と上記検索式を上記第２の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成する検索要求式変数テーブル作成手段と、
上記検索要求式変数テーブル作成手段によって作成された検索要求式変数テーブルに従って、上記検索対象データ格納手段を検索して上記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出する検索手段と、
上記検索手段によって抽出された検索結果を上記複数の端末装置の各々に送信する送信手段とを備えたことを特徴とするパターン検索装置。
（付記７）  上記検索条件バッファ手段は、上記検索処理判断手段により上記実行中の検索処理が終了したことを判断するまで、上記検索条件を格納することを特徴とする付記６に記載のパターン検索装置。
（付記８）  上記検索条件バッファ手段は、予め定めた時間または予め定めた容量に達するまで、上記検索条件を格納することを特徴とする付記６に記載のパターン検索装置。
（付記９）  上記検索手段は、複数個の検索パターンを同時に検索する手法であることを特徴とする付記６乃至８の何れか１項に記載のパターン検索装置。
（付記１０）  上記検索手段は、Ａｈｏ−Ｃｏｒａｓｉｃｋ（ＡＣ）法、Ｅｘｐａｎｄｅｄ−Ｂｏｙｅｒ−Ｍｏｏｒｅ（ＥＢＭ）法、またはＳｈｉｎｏｈａｒａ−Ａｒｉｋａｗａ（ＳＡ）法の何れかであることを特徴とする付記６乃至８の何れか１項に記載のパターン検索装置。
（付記１１）  ネットワークを介して複数の端末装置に接続されたパターン検索装置上で実行されるパターン検索プログラムのプログラムコードを記録したコンピュータ読み取り可能な記録媒体において、
上記複数の端末装置の各々から送信された、検索対象データを検索するための検索パターンと検索式とを含む検索条件を、上記各端末装置を特定するための端末装置情報とともに受信し、
上記受信した検索条件と端末装置情報とを検索条件バッファに格納し、
先行する検索処理が実行中か否かを判断し、
先行する検索処理が実行中でないと判断された場合、上記検索条件バッファに格納された検索パターンのうち、２以上の同一の検索パターンがあれば１の検索パターン以外の検索パターンを省き、検索パターンと上記検索パターンを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成し、
上記検索条件バッファに格納された検索式および端末装置情報と上記作成された検索パターン変数テーブルとに基づいて、上記検索パターンを上記第１の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数との対応、および上記端末装置情報と上記検索式を上記第２の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成し、
上記作成された検索要求式変数テーブルに従って、上記検索対象データを格納した検索対象データデータベースを検索して上記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出し、
上記抽出された検索結果を上記複数の端末装置の各々に送信することをコンピュータに実行させるためのパターン検索プログラムを記録したコンピュータ読み取り可能な記録媒体。
（付記１２）  上記検索条件バッファは、実行中の検索処理が終了したことを判断するまで、上記検索条件を格納するためのパターン検索プログラムを記録した付記１１に記載のコンピュータ読み取り可能な記録媒体。
（付記１３）  上記検索条件バッファは、予め定めた時間または予め定めた容量に達するまで、上記検索条件を格納するためのパターン検索プログラムを記録した付記１１に記載のコンピュータ読み取り可能な記録媒体。
（付記１４）  上記検索は、複数個の検索パターンを同時に検索する手法であるパターン検索プログラムを記録した付記１１乃至１３の何れか１項に記載のコンピュータ読み取り可能な記録媒体。
（付記１５）  上記検索は、Ａｈｏ−Ｃｏｒａｓｉｃｋ（ＡＣ）法、Ｅｘｐａｎｄｅｄ−Ｂｏｙｅｒ−Ｍｏｏｒｅ（ＥＢＭ）法、またはＳｈｉｎｏｈａｒａ−Ａｒｉｋａｗａ（ＳＡ）法の何れかであるパターン検索プログラムを記録した付記１１乃至１３の何れか１項に記載のコンピュータ読み取り可能な記録媒体。
（付記１６）  ネットワークを介して複数の端末装置とパターン検索装置とが接続されたパターン検索システムにおいて、
上記複数の端末装置の各々は、
検索対象データを検索するための検索パターンと検索式とを含む検索条件を、上記各端末装置を特定するための端末装置情報とともに送信する端末装置側送信手段を備え、
上記パターン検索装置は、
検索対象データを格納する検索対象データ格納手段と、
上記複数の端末装置の各々の上記端末側送信手段から送信された、上記検索対象データを検索するための検索パターンと検索式とを含む検索条件を、上記各端末装置を特定するための端末装置情報とともに受信する検索条件受信手段と、上記検索条件受信手段によって受信した検索条件と端末装置情報とを格納する検索条件バッファ手段と、
先行する検索処理が実行中か否かを判断する検索処理判断手段と、
上記検索処理判断手段によって先行する検索処理が実行中でないと判断された場合、上記検索条件バッファ手段に格納された検索パターンのうち、２以上の同一の検索パターンがあれば１の検索パターン以外の検索パターンを省き、検索パターンと上記検索パターンを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成する検索パターン変数テーブル作成手段と、
上記検索条件バッファ手段に格納された検索式および端末装置情報と上記検索パターン変数テーブル作成手段によって作成された検索パターン変数テーブルとに基づいて、上記検索パターンを上記第１の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数との対応、および上記端末装置情報と上記検索式を上記第２の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成する検索要求式変数テーブル作成手段と、
上記検索要求式変数テーブル作成手段によって作成された検索要求式変数テーブルに従って、上記検索対象データ格納手段を検索して上記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出する検索手段と、
上記検索手段によって抽出された検索結果を上記複数の端末装置の各々に送信する送信手段とを備え、
上記複数の端末装置の各々は、さらに、上記送信手段によって送信された上記結果を受信する端末装置側受信手段とを備えたことを特徴とするパターン検索システム。
（付記１７）  ネットワークを介して複数の端末装置に接続されたパターン検索装置上で実行されるパターン検索プログラムにおいて、
上記複数の端末装置の各々から送信された、検索対象データを検索するための検索パターンと検索式とを含む検索条件を、上記各端末装置を特定するための端末装置情報とともに受信し、
上記受信した検索条件と端末装置情報とを検索条件バッファに格納し、
先行する検索処理が実行中か否かを判断し、
先行する検索処理が実行中でないと判断された場合、上記検索条件バッファに格納された検索パターンのうち、２以上の同一の検索パターンがあれば１の検索パターン以外の検索パターンを省き、検索パターンと上記検索パターンを値とする第１の変数とを対応付けた検索パターン変数テーブルを作成し、
上記検索条件バッファに格納された検索式および端末装置情報と上記作成された検索パターン変数テーブルとに基づいて、上記検索パターンを上記第１の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数との対応、および上記端末装置情報と上記検索式を上記第２の変数を用いて表した検索要求式と上記検索要求式を値とする第２の変数とを対応付けた検索要求式変数テーブルを作成し、
上記作成された検索要求式変数テーブルに従って、上記検索対象データを格納した検索対象データデータベースを検索して上記複数の端末装置の各々から送信された検索条件に合致する検索結果を抽出し、
上記抽出された検索結果を上記複数の端末装置の各々に送信することをコンピュータに実行させるためのパターン検索プログラム。
（付記１８）  上記検索条件バッファは、実行中の検索処理が終了したことを判断するまで、上記検索条件を格納するためのパターン検索プログラムを記録した付記１７に記載のパターン検索プログラム。
（付記１９）  上記検索条件バッファは、予め定めた時間または予め定めた容量に達するまで、上記検索条件を格納するためのパターン検索プログラムを記録した付記１７に記載のパターン検索プログラム。
（付記２０）  上記検索は、複数個の検索パターンを同時に検索する手法であるパターン検索プログラムを記録した付記１７乃至１９の何れか１項に記載のパターン検索プログラム。
（付記２１）  上記検索は、Ａｈｏ−Ｃｏｒａｓｉｃｋ（ＡＣ）法、Ｅｘｐａｎｄｅｄ−Ｂｏｙｅｒ−Ｍｏｏｒｅ（ＥＢＭ）法、またはＳｈｉｎｏｈａｒａ−Ａｒｉｋａｗａ（ＳＡ）法の何れかであるパターン検索プログラムを記録した付記１７乃至１９の何れか１項に記載のパターン検索プログラム。
【００９６】
【発明の効果】
以上説明してきたように、本発明によれば、文字列照合方式を用いた全文検索システムにおいて、短時間に多数の検索要求がある場合に、従来用いられていた技術に比べ、格段に高速で処理することができる。
【００９７】
また、本発明によれば、索引ファイルを必要とする全文検索方式に比較し、ソフトウェアを格段に軽量化でき、また、索引ファイルの保守が不要であるため運用性に優れている。
【００９８】
すなわち、本発明によれば、文字列照合方式を用いた全文検索システムで、かつ、短時間に多数の検索要求が時系列に発生する場合において、１件の検索要求を単独に処理した場合の時間に検索要求の数を掛けた時間以下の時間で、全ての検索要求を処理することができる。例えば、１件の検索要求を単独に処理するのに１秒かかる検索エンジンを使用して、１００件の検索要求があってもそれを３秒以内に処理を終わらせることも可能である。
【図面の簡単な説明】
【図１】本発明を適用したパターン検索システムの機能構成図である。
【図２】図１を用いて説明したパターン検索装置４上で実行されるパターン検索処理のフローチャートである。
【図３】ＡＣ法における状態遷移テーブルを説明するための図である。
【図４】図３の判定１の判定テーブルを示す図である。
【図５】ＥＢＭ法に用いるｄｅｌｔａ１テーブル（ａ）とパターンの右端を判定するためのテーブル（ｂ）を示す図である。
【図６】日本語テキストの「ずれ読み」の例を示す図である。
【図７】日本語テキスト上でコード系の特性を反映したオートマトンの例を示す図である。
【図８】状態遷移によるパターンの検出を示す図である。
【図９】本発明の文字列照合方式全文検索システムの概念モデルを示す図である。
【図１０】検索対象テキストデータの内容の例を示す図である。
【図１１】検索要求の例を示す図である。
【図１２】検索要求群の概念を示す図である。
【図１３】本発明の全体構成図の例を示す図である。
【図１４】制御プログラムの処理の流れを示すフローチャートである。
【図１５】受付プログラムの処理の流れを示すフローチャートである。
【図１６】依頼者スレッドの処理の流れを示すフローチャートである。
【図１７】検索要求テーブルに検索要求の書き込みを行なう処理の概念を示す図である。
【図１８】検索結果の端末への返信処理の概念を示す図である。
【図１９】検索プログラムの全体の構造を示す図である。
【図２０】前処理の処理の流れを示すフローチャートである。
【図２１】第１の実施の形態におけるキーワード変数テーブル作成処理の概念を示す図である。
【図２２】第１の実施の形態における検索要求式変数テーブル作成の概念を示す図である。
【図２３】検索処理の処理の流れを示すフローチャートである。
【図２４】第１の実施の形態におけるキーワード変数テーブル（ａ）及び検索要求式変数テーブル（ｂ）の例（その１）を示す図である。
【図２５】第１の実施の形態におけるキーワード変数テーブル（ａ）及び検索要求式変数テーブル（ｂ）の例（その２）を示す図である。
【図２６】第１の実施の形態における検索結果テーブルの例を示す図である。
【図２７】第２の実施の形態の検索対象テキストデータの内容を示す図である。
【図２８】第２の実施の形態におけるキーワード変数テーブル作成処理の概念を示す図である。
【図２９】第２の実施の形態における検索要求式変数テーブル作成の概念を示す図である。
【図３０】第２の実施の形態におけるキーワード変数テーブル（ａ）及び検索要求式変数テーブル（ｂ）の例を示す図である。
【図３１】第２の実施の形態における検索結果テーブルの例を示す図である。
【図３２】本発明におけるプログラムのコンピュータへのローディングを説明する図である。
【符号の説明】
１  パターン検索システム
２  ネットワーク
３  端末装置
４  パターン検索装置
３１  端末装置側送信手段
３２  端末装置側受信装置
４１  検索対象データ格納手段（データベース）
４２  検索条件受信手段
４３  検索条件バッファ手段
４４  検索処理判断手段
４５  検索パターン変数テーブル作成手段
４６  検索パターン変数テーブル
４７  検索要求式変数テーブル作成手段
４８  検索要求式変数テーブル
４９  検索手段
５０  送信手段
３２０  コンピュータ
３２１  メモリ
３２２  可搬型記録媒体
【図１】
0004155382.tif 000002
【図２】
0004155382.tif 000003
【図３】
0004155382.tif 000004
【図４】
0004155382.tif 000005
【図５】
0004155382.tif 000006
【図６】
0004155382.tif 000007
【図７】
0004155382.tif 000008
【図８】
0004155382.tif 000009
【図９】
0004155382.tif 000010
【図１０】
0004155382.tif 000011
【図１１】
0004155382.tif 000012
【図１２】
0004155382.tif 000013
【図１３】
0004155382.tif 000014
【図１４】
0004155382.tif 000015
【図１５】
0004155382.tif 000016
【図１６】
0004155382.tif 000017
【図１７】
0004155382.tif 000018
【図１８】
0004155382.tif 000019
【図１９】
0004155382.tif 000020
【図２０】
0004155382.tif 000021
【図２１】
0004155382.tif 000022
【図２２】
0004155382.tif 000023
【図２３】
0004155382.tif 000024
【図２４】
0004155382.tif 000025
【図２５】
0004155382.tif 000026
【図２６】
0004155382.tif 000027
【図２７】
0004155382.tif 000028
【図２８】
0004155382.tif 000029
【図２９】
0004155382.tif 000030
【図３０】
0004155382.tif 000031
【図３１】
0004155382.tif 000032
【図３２】
0004155382.tif 000033