(57)【特許請求の範囲】
【請求項１】
非構造化データを記憶する非構造化データ記憶手段と、
前記非構造化データを処理対象とするクエリを受信するクエリ受信手段と、
前記クエリ受信手段で受信したクエリを解析して、該クエリによる処理の対象となる非構造化データの抽出条件を示す抽出条件情報と、該クエリによる処理が扱うデータ型を示す型情報と、該クエリによる処理のタイプを示した処理タイプ情報とを取得するクエリ情報取得手段と、
前記非構造化データから、前記抽出条件情報が示す条件に合致するデータを抽出し、抽出したデータを、前記型情報が示すデータ型に変換した構造化データを作成する構造化データ作成手段と、
前記構造化データ作成手段で作成した構造化データを記憶する構造化データ記憶手段と、
前記型情報と前記処理タイプ情報とに基づいて、前記構造化データ記憶手段に記憶した構造化データに対するインデックスデータを作成するインデックスデータ作成手段と、
前記インデックスデータ作成手段で作成したインデックスデータを記憶するインデックスデータ記憶手段と、
前記クエリ受信手段で受信したクエリによる処理を、処理対象データを前記構造化データ記憶手段に記憶した構造化データとして、前記インデックスデータ記憶手段に記憶したインデックスデータを参照して実行する、クエリ実行手段と、
を備えることを特徴とする、データ処理装置。
【請求項２】
前記インデックスデータ作成手段は、
前記型情報と前記処理タイプ情報とに基づいてインデックスタイプを特定し、
特定したインデックスタイプのインデックスデータを作成する、
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
コンピュータを用いてデータを処理するためのデータ処理方法であって、
非構造化データを処理対象とするクエリを受信するステップと、
受信したクエリを解析して、該クエリによる処理の対象となる非構造化データの抽出条件を示す抽出条件情報と、該クエリによる処理が扱うデータ型を示す型情報と、該クエリによる処理のタイプを示した処理タイプ情報とを取得するステップと、
前記非構造化データから、前記抽出条件情報が示す条件に合致するデータを抽出し、抽出したデータを、前記型情報が示すデータ型に変換した構造化データを作成するステップと、
前記型情報と前記処理タイプ情報とに基づいて、作成した構造化データに対するインデックスデータを作成するステップと、
受信したクエリによる処理を、処理対象データを作成した構造化データとして、作成したインデックスデータを参照して実行するステップと、
を備えることを特徴とする、データ処理方法。
【請求項４】
コンピュータを、
非構造化データを記憶する非構造化データ記憶手段と、
前記非構造化データを処理対象とするクエリを受信するクエリ受信手段と、
前記クエリ受信手段で受信したクエリを解析して、該クエリによる処理の対象となる非構造化データの抽出条件を示す抽出条件情報と、該クエリによる処理が扱うデータ型を示す型情報と、該クエリによる処理のタイプを示した処理タイプ情報とを取得するクエリ情報取得手段と、
前記非構造化データから、前記抽出条件情報が示す条件に合致するデータを抽出し、抽出したデータを、前記型情報が示すデータ型に変換した構造化データを作成する構造化データ作成手段と、
前記構造化データ作成手段で作成した構造化データを記憶する構造化データ記憶手段と、
前記型情報と前記処理タイプ情報とに基づいて、前記構造化データ記憶手段に記憶した構造化データに対するインデックスデータを作成するインデックスデータ作成手段と、
前記インデックスデータ作成手段で作成したインデックスデータを記憶するインデックスデータ記憶手段と、
前記クエリ受信手段で受信したクエリによる処理を、処理対象データを前記構造化データ記憶手段に記憶した構造化データとして、前記インデックスデータ記憶手段に記憶したインデックスデータを参照して実行する、クエリ実行手段と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、および、プログラムに関する。
【背景技術】
【０００２】
構造化されているデータ（構造化データ）に対する、検索、ソート、比較などの処理を高速化するために、データを構成する特定のデータ項目に、該データ項目の型や処理内容に適した各種のインデックスを付与することが行われている。
例えば、特許文献１、２は、リレーショナルデータベースに格納されている構造化データへのクエリの履歴を分析し、該構造化データを構成するデータ項目に自動的にインデックスを付与する技術を開示している。
【０００３】
オフィス文書やログデータ等のように、明確な構造を持たないデータ（非構造化データ）がある。非構造化データは、べた書きされたテキストデータやバイナリデータ等であり、データ項目に分割されていないため、インデックスを付与して処理の高速化を行うことができない。
【０００４】
特許文献３は、あらかじめ作成した所定のルールに基づいて、非構造化文書（非構造化データ）を、データ項目を有する構造化文書（構造化データ）に変換する技術を開示している。
【特許文献１】特開平１１−０５３４０１号公報
【特許文献２】特開平１０−１１１８１９号公報
【特許文献３】特開平９−０６９１０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献３に記載の技術では、変換するための所定のルールを変換先の構造化文書の形式毎に定義しなければならず、ユーザにとって大きな負担となる。
【０００６】
また、非構造化データをテキストデータに変換し、形態素解析などの解析をして、全文検索インデックスを付与することで、非構造化データに対する処理を高速化できるようにすることも行われている。しかしながら、全文検索インデックスは、文字や文字列に対する処理を高速化するためのインデックスであるため、数値的な比較や集計処理などの処理を高速化することはできない。
【０００７】
本発明は、上記実状に鑑みてなされたものであり、非構造化データに対する処理を従来より高速に行うことができるデータ処理装置等を提供することを目的とする。
また、本発明は、非構造化データを構造化する際における、ユーザの負担を軽減することができるデータ処理装置等を提供することを目的とする。
さらに、本発明は、処理の内容に適したインデックスをデータに付与することができるデータ処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の第１の観点に係るデータ処理装置は、
非構造化データを記憶する非構造化データ記憶手段と、
前記非構造化データを処理対象とするクエリを受信するクエリ受信手段と、
前記クエリ受信手段で受信したクエリを解析して、該クエリによる処理の対象となる非構造化データの抽出条件を示す抽出条件情報と、該クエリによる処理が扱うデータ型を示す型情報と、該クエリによる処理のタイプを示した処理タイプ情報とを取得するクエリ情報取得手段と、
前記非構造化データから、前記抽出条件情報が示す条件に合致するデータを抽出し、抽出したデータを、前記型情報が示すデータ型に変換した構造化データを作成する構造化データ作成手段と、
前記構造化データ作成手段で作成した構造化データを記憶する構造化データ記憶手段と、
前記型情報と前記処理タイプ情報とに基づいて、前記構造化データ記憶手段に記憶した構造化データに対するインデックスデータを作成するインデックスデータ作成手段と、
前記インデックスデータ作成手段で作成したインデックスデータを記憶するインデックスデータ記憶手段と、
前記クエリ受信手段で受信したクエリによる処理を、処理対象データを前記構造化データ記憶手段に記憶した構造化データとして、前記インデックスデータ記憶手段に記憶したインデックスデータを参照して実行する、クエリ実行手段と、
を備えることを特徴とする。
【０００９】
前記インデックスデータ作成手段は、
前記型情報と前記処理タイプ情報とに基づいてインデックスタイプを特定し、
特定したインデックスタイプのインデックスデータを作成してもよい。
【００１０】
上記目的を達成するため、本発明の第２の観点に係るデータ処理方法は、
コンピュータを用いてデータを処理するためのデータ処理方法であって、
非構造化データを処理対象とするクエリを受信するステップと、
受信したクエリを解析して、該クエリによる処理の対象となる非構造化データの抽出条件を示す抽出条件情報と、該クエリによる処理が扱うデータ型を示す型情報と、該クエリによる処理のタイプを示した処理タイプ情報とを取得するステップと、
前記非構造化データから、前記抽出条件情報が示す条件に合致するデータを抽出し、抽出したデータを、前記型情報が示すデータ型に変換した構造化データを作成するステップと、
前記型情報と前記処理タイプ情報とに基づいて、作成した構造化データに対するインデックスデータを作成するステップと、
受信したクエリによる処理を、処理対象データを作成した構造化データとして、作成したインデックスデータを参照して実行するステップと、
を備えることを特徴とする。
【００１１】
上記目的を達成するため、本発明の第３の観点に係るプログラムは、
コンピュータを、
非構造化データを記憶する非構造化データ記憶手段と、
前記非構造化データを処理対象とするクエリを受信するクエリ受信手段と、
前記クエリ受信手段で受信したクエリを解析して、該クエリによる処理の対象となる非構造化データの抽出条件を示す抽出条件情報と、該クエリによる処理が扱うデータ型を示す型情報と、該クエリによる処理のタイプを示した処理タイプ情報とを取得するクエリ情報取得手段と、
前記非構造化データから、前記抽出条件情報が示す条件に合致するデータを抽出し、抽出したデータを、前記型情報が示すデータ型に変換した構造化データを作成する構造化データ作成手段と、
前記構造化データ作成手段で作成した構造化データを記憶する構造化データ記憶手段と、
前記型情報と前記処理タイプ情報とに基づいて、前記構造化データ記憶手段に記憶した構造化データに対するインデックスデータを作成するインデックスデータ作成手段と、
前記インデックスデータ作成手段で作成したインデックスデータを記憶するインデックスデータ記憶手段と、
前記クエリ受信手段で受信したクエリによる処理を、処理対象データを前記構造化データ記憶手段に記憶した構造化データとして、前記インデックスデータ記憶手段に記憶したインデックスデータを参照して実行する、クエリ実行手段と、
して機能させる。
【発明の効果】
【００１２】
本発明によれば、クエリを解析した結果に基づいて、非構造化データを構造化する。そして、クエリの処理に最適なインデックスデータを、該構造化したデータの値に対して作成する。従って、非構造化データに対する処理を従来よりも高速に行うことが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態に係るデータ処理装置１について、図面を参照して説明する。
データ処理装置１は、図１に示すように、入力部１１と、出力部１２と、記憶部１３と、制御部１４と、を備え、各部はバス１５を介して互いに接続されている。
【００１４】
入力部１１は、キーボードやマウス等によって構成され、データ処理装置１に様々な情報や指示を入力するものである。例えば、ユーザは、入力部１１を操作して、データ検索などの処理要求（以下、クエリという）を入力する。
【００１５】
出力部１２は、ディスプレイ等の表示装置から構成され、様々な情報を出力する。例えば、出力部１２は、ユーザが入力したクエリによる処理の実行結果を示す画面を表示する。
【００１６】
記憶部１３は、ハードディスク等から構成され、様々な情報、固定データ、および、制御部１４が動作するためのプログラム等を記憶する。
また、記憶部１３は、図２に示すように、非構造化データ記憶部１３１と、構造化データ記憶部１３２と、最適インデック選択用テーブル１３３と、インデックス記憶部１３４と、を備える。
【００１７】
非構造化データ記憶部１３１は、非構造化データ（ワープロ文書、表計算文書、ログデータ等）と、該非構造化データの属性情報を記憶する非構造化データ管理テーブル１３１ａとを記憶する。
非構造化データ管理テーブル１３１ａは、図３に示すように、非構造化データ毎に、非構造化データＩＤと、該非構造化データの名称（ファイル名）と、該非構造化データの格納位置を示す情報とを記憶する。
【００１８】
図２に戻り、構造化データ記憶部１３２は、後述するクエリ処理により構造化されたデータ（構造化データ）の値と、該構造化データの属性情報を記憶する構造化データ管理テーブル１３２ａとを記憶する。
構造化データ管理テーブル１３２ａは、図４に示すように、構造化データ毎に、構造化データＩＤと、該構造化データの抽出条件と、抽出の型とを記憶する。この抽出条件で、非構造化データから抽出したデータを抽出の型が示すデータ型に変換した値が、構造化データ記憶部１３２に、対応する構造化データの値として記憶される。
例えば、図４に示す構造化データ管理テーブル１３２ａの先頭エントリより、構造化データＩＤ「１」の構造化データには、非構造化データ「発注書」の３行目、タブ位置５個目に位置するデータを数値型に変換したデータが、該構造化データの値として格納されていることがわかる。
【００１９】
構造化データの値は、構造化データ管理テーブル１３２ａのエントリ毎に、構造化値ＩＤを付与されて記憶される。図５は、図４に示す管理テーブルの先頭のエントリが示す構造化データ（構造化データＩＤが１である構造化データ）の値を示したものであり、該構造化データは３つの値「１０７７６」、「６６５７」、「７７８７９」を有していることを示している。また、各値にはそれぞれ構造化値ＩＤが付与されている。
【００２０】
図２に戻り、最適インデックス選択用テーブル１３３は、処理対象データを処理するのに最適なインデックスのタイプを選択するために参照されるテーブルである。
最適インデックス選択用テーブル１３３は、図６に示すように、処理対象データのデータ型と処理タイプの組みに対して、最適なインデックスのタイプを示す情報を格納する。
例えば、図６に示す最適インデックス選択用テーブル１３３の先頭エントリより、「数値型」のデータに対して「完全一致比較」をする処理に最適なインデックスのタイプは、「Hash Table」であることがわかる。
【００２１】
図２に戻り、インデックス記憶部１３４は、インデックスデータと、インデックスデータの属性情報を記憶するインデックス管理テーブル１３４ａとを記憶する。
【００２２】
インデックスデータは、処理対象データに対して行われる処理を高速に実行するために参照されるデータであり、インデックスのタイプ毎に異なる構造を有する。
図７に、インデックスタイプが「Hash Table」であるインデックスデータの構造の例を示す。このインデックスデータは、処理対象データである構造型データの値（構造化値）のハッシュ値を所定の式で算出し、算出したハッシュ値で構造化値のＩＤを分類したテーブルの構成を有している。そして、ある検索値を有する構造型データの値を検索する際には、まず、検索値のハッシュ値を求め、そのハッシュ値と一致する構造化値のＩＤを上述のインデックスデータから取得し、取得したＩＤを有する構造化値の中から、検索値に一致する構造化値を検索すればよく、インデックスデータを参照することにより、検索対象の構造化値が絞り込まれることになるため、検索処理が高速化する。
【００２３】
インデックス管理テーブル１３４ａは、図８に示すように、インデックスデータ毎に、該インデックスデータの作成元となる構造化データのＩＤと、インデックスのタイプと、インデックスデータの格納位置を示す情報とを対応付けて記憶する。
例えば、図８に示すインデックス管理テーブル１３４ａの先頭エントリより、インデックスＩＤ「１」が示す構造化データには、インデックスタイプ「Ｂ−Ｔｒｅｅ」のインデックスデータがインデックス記憶部１３４の「/index/dat1」に作成されていることがわかる。
【００２４】
図１に戻り、制御部１４は、データの演算処理を行うと共に、バス１５を介して入力部１１、出力部１２、記憶部１３を制御するものであり、ＣＰＵ（Central Processing Unit）１４１、ＲＯＭ（Read Only Memory）１４２、ＲＡＭ（Random Access Memory）１４３等を備える。制御部１４における演算処理及び制御処理は、具体的には、ＣＰＵ１４１が、ＲＡＭ１４３を作業領域として使用して各種データを一時的に記憶させながら、ＲＯＭ１４２に記憶されている制御プログラムを実行することにより行われる。
また、制御部１４は、ＲＯＭ１４２や記憶部１３に記憶されている制御プログラムに従って上記各部を制御することにより、データ処理装置１の後述する処理等を行う。
【００２５】
データ処理装置１は、機能的には、図９に示すように、クエリ解析部２１と、構造化データ／インデックス検索部２２と、構造化データ／インデックス作成部２３と、データ処理部２４とを備える。なお、これらの各構成要素は、図１に示した制御部１４が、同じく図１に示した入力部１１、出力部１２、又は記憶部１３を制御することにより、実現する。
【００２６】
クエリ解析部２１は、ユーザによって入力されたクエリを受信し、受信したクエリを解析して、「処理対象データ抽出条件」、「処理対象データ型」、および、「処理タイプ」を示す情報を取得する。
【００２７】
「処理対象データ抽出条件」は、クエリが示す処理の処理対象となるデータを抽出するための条件を示した情報である。
「処理対象データ型」は、処理対象データ抽出条件で抽出した処理対象データを変換するデータの型を示した情報である。なお、「処理対象データ型」の類型化した候補の一覧（数値型、ベクトル型、文字列型、バイナリ型等）が、あらかじめ記憶部１３に記憶されている。
「処理タイプ」は、処理対象データ抽出条件で抽出し、処理対象データ型で型変換した処理対象データに対して行う処理のタイプを示した情報である。なお、「処理タイプ」の類型化した候補の一覧（完全一致比較、前方一致比較、中間一致比較、後方一致比較、大小比較等）が、あらかじめ記憶部１３に記憶されている。
【００２８】
ここで、具体例を挙げて、「処理対象データ抽出条件」、「処理対象データ型」、「処理タイプ」について説明する。例えば、非構造化データ記憶部１３１に、非構造化データである複数のテキストファイルである「発注書」が格納されており、ユーザから「発注書の３行目のタブ位置５個目の項目を抽出し、数値変換した上で、最も大きな値を取得する」処理を示すクエリが入力された場合を考える。
この場合、「処理対象データ抽出条件」は「発注書の３行目のタブ位置５個目の項目」、「処理対象データ型」は「数値型」、「処理タイプ」は「大小比較」となる。  
【００２９】
構造化データ／インデックス検索部２２は、クエリ解析部２１が解析したクエリの処理対象のデータが既に構造化されて構造化データ記憶部１３２に記憶されているか否かを判別する。
そして、処理対象データが記憶されていると判別した場合には、構造化データ／インデックス検索部２２は、最適インデックス選択用テーブル１３３、および、インデックス記憶部１３４を参照して、該処理対象データに対して最適なインデックスが作成されているか否かを判別する。
【００３０】
構造化データ／インデックス作成部２３は、構造化データ／インデックス検索部２２が、処理対象データが構造化データ記憶部１３２に記憶されていないと判別した場合に、非構造化データ記憶部１３１から処理対象データを抽出して、抽出したデータを構造化して、構造化データ記憶部１３２に記憶する。そして、その構造化した処理対象データに最適なインデックスを最適インデックス選択用テーブル１３３を参照して作成し、インデックス記憶部１３４に記憶する。
また、構造化データ／インデックス作成部２３は、構造化データ／インデックス検索部２２が、処理対象データが構造化データ記憶部１３２に記憶されているが該処理対象データに最適なインデックスが作成されていないと判別した場合、最適なインデックスを最適インデックス選択用テーブル１３３を参照して作成し、インデックス記憶部１３４に記憶する。
【００３１】
データ処理部２４は、クエリを実行する。なお、この際クエリの処理対象となるデータには、処理に最適なインデックスデータがインデックス記憶部１３４に記憶されており、データ処理部２４は、このインデックスデータを参照して処理を高速に実行する。
そして、データ処理部２４はその処理結果を出力部１２に表示させる。
【００３２】
続いて、データ処理装置１で、ユーザから入力されたクエリを実行する処理（クエリ処理）の動作について説明する。
【００３３】
ユーザから、データ処理装置１に記憶されている非構造化データを処理するためのクエリが入力部１１より入力され、その入力情報が制御部１４に送信されると、図１０に示すような、クエリ処理が開始される。
【００３４】
まず、クエリ解析部２１は、入力されたクエリを解析して、「処理対象データ抽出条件」、「処理対象データ型」、および、「処理タイプ」を取得する（ステップＳ１０）。
【００３５】
続いて、構造化データ／インデックス検索部２２は、ステップＳ１０で取得した、「処理対象データ抽出条件」と「処理対象データ型」の組が、構造化データ管理テーブル１３２aに登録されているか否かを判別する（ステップＳ２０）。
【００３６】
構造化データ管理テーブル１３２aに登録されていないと判別した場合（ステップＳ２０；Ｎｏ）、クエリによる処理の対象となるデータ（処理対象データ）は、未だ構造化されていないことになり、構造化データ／インデックス作成部２３は、処理対象データを構造化する構造化処理を行う（ステップＳ３０）。
【００３７】
図１１に、構造化処理（ステップＳ３０）の詳細を示す。
まず、構造化データ／インデックス作成部２３は、新たな構造化データＩＤを発行し、構造化データ管理テーブル１３２aにエントリを１つ追加する（ステップＳ３１）。なお、この追加されるエントリの「処理対象データ抽出条件」、および、「処理対象データ型」は、ステップＳ１０で取得したものとする。
【００３８】
続いて、構造化データ／インデックス作成部２３は、非構造化データ記憶部１３１から、ステップＳ１０で取得した「処理対象データ抽出条件」に合致する非構造化データの値を抽出する（ステップＳ３２）。
【００３９】
続いて、構造化データ／インデックス作成部２３は、ステップＳ３２で抽出した非構造化データの値を、ステップＳ１０で取得した「処理対象データ型」が示す型に変換する（ステップＳ３３）。
【００４０】
そして、構造化データ／インデックス作成部２３は、変換した値それぞれに、構造化値ＩＤを付与し、ステップＳ３１で構造化データ管理テーブル１３２aに追加したエントリが示す構造化データの値として、構造化データ記憶部１３２に記憶する（ステップＳ３４）。
以上で、構造化処理は終了し、図１０のステップＳ６０に処理が移る。
【００４１】
「処理対象データ抽出条件」と「処理対象データ型」との組が、構造化データ管理テーブル１３２aに登録されていると判別した場合（ステップＳ２０；Ｙｅｓ）、構造化データ／インデックス検索部２２は、この組みに対応付けられている構造化ＩＤを取得する（ステップＳ４０）。
【００４２】
そして、構造化データ／インデックス検索部２２は、クエリによる処理を実行するのに最適なインデックスが作成されているか否かを判別する（ステップＳ５０）。
具体的には、構造化データ／インデックス検索部２２は、ステップＳ１０で取得した「処理対象データ型」、および、「処理タイプ」の組みに対応付けられているインデックスタイプを、最適インデックス選択用テーブル１３３から取得する。そして、構造化データ／インデックス検索部２２は、取得したインデックスタイプとステップＳ４０で取得した構造化データＩＤとの組みがインデックス管理テーブル１３４ａに記憶されているか否かを判別することで、最適なインデックスが作成されているか否かを判別する。
【００４３】
最適なインデックスが作成されていないと判別した場合（ステップＳ５０；Ｎｏ）、処理をステップＳ６０に移す。
最適なインデックスが作成されていると判別した場合（ステップＳ５０；Ｙｅｓ）、処理をステップＳ７０に移す。
【００４４】
ステップＳ６０で、構造化データ／インデックス作成部２３は、インデックスを作成、登録するインデックス作成・登録処理を行う。
【００４５】
図１２に、インデックス作成・登録処理（ステップＳ６０）の詳細を示す。
まず、構造化データ／インデックス作成部２３は、クエリによる処理を実行するのに、最適なインデックスのタイプを取得する（ステッＳ６１）。
具体的には、構造化データ／インデックス作成部２３は、ステップＳ１０で取得した「処理対象データ型」と「処理タイプ」の組みに関連付けられているインデックスタイプを最適インデックス選択用テーブル１３３から取得する。
【００４６】
続いて、構造化データ／インデックス作成部２３は、ステップＳ４０で取得した構造化データＩＤが示す構造化データの値、又は、ステップＳ３０で構造化した構造化データの値を、構造化データ記憶部１３２から取得する（ステップＳ６２）。
【００４７】
そして、構造化データ／インデックス作成部２３は、ステップＳ６１で取得したインデックスタイプに基づいた手法で、さきほど取得した構造化データの値を高速に処理するためのインデックスデータを作成し、インデックス記憶部１３４に記憶する（ステップＳ６３）。
【００４８】
そして、構造化データ／インデックス作成部２３は、インデックス管理テーブル１３４ａに、記憶したインデックスデータに対応するエントリを登録し（ステップＳ６４）、インデックス作成・登録処理は終了する。
【００４９】
図１０に戻り、ステップＳ７０で、データ処理部２４は、クエリによる処理を実行する（ステップＳ７０）。なお、この際、処理の対象となるデータは、構造化されて、構造化データ記憶部１３２に記憶されている。また、この構造化された処理対象データには、処理に最適なタイプのインデックスデータが作成されており、クエリによる処理の実行の際に、データ処理部２４は、このインデックスデータを参照する。
【００５０】
続いて、データ処理部２４は、クエリによる処理の結果を、出力部１２に表示させる（ステップＳ８０）。以上で、クエリ処理は終了する。
【００５１】
以上説明したように、この実施の形態では、クエリを解析して、クエリの処理対象である非構造化データを、ユーザによる操作を介することなく構造化データに変換する。そして、この構造化データを処理するのに最適なインデックスデータを作成する。そして、クエリを実行する際には、このインデックスデータを参照するため、非構造化データに対するクエリ処理を従来より高速に行うことが可能となる。
【００５２】
なお、この発明は上記実施の形態に限定されず、様々な応用が可能である。
【００５３】
例えば、本実施形態では、明確な構造を持たない非構造化データをクエリの処理対象としたが、何らかの構造を持つものの、その使われ方が一定ではないようなデータ（半構造化データ）に対しても、本発明を適用しても同様な効果を得ることができる。
何故ならば、本発明では、半構造化データを処理対象とするクエリを解析した各種情報に基づいて、半構造化データを構造化してインデックスデータを作成するため、半構造化データの使われ方に適したインデックスが作成されるからである。
【００５４】
また、本実施形態では、処理対象となる非構造化データはデータ処理装置１に記憶されているものとしたが、これに限る必要はなく、記録媒体に格納されている非構造化データや、インターネットなどのネットワークを介して与えられる非構造化データを処理対象としてもよい。
【００５５】
なお、本発明のデータ処理装置は、専用のハードウェアに限られるものではなく、通常のコンピュータシステムによっても実現することができる。
具体的には、上記実施の形態では、データ処理装置１のプログラムが、メモリ等に予め記憶されているものとして説明した。しかし、上述の処理動作を実行させるためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto-Optical disk）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータにインストールすることにより、上述の処理を実行するデータ処理装置１を構成してもよい。
【００５６】
また、プログラムをインターネット等の通信ネットワーク上のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するようにしてもよい。さらに、通信ネットワークを介してプログラムを転送しながら起動実行することによっても、上述の処理を達成することができる。
また、上述の機能を、ＯＳ（Operating System）が分担又はＯＳとアプリケーションの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施の形態に係るデータ処理装置の構成例を示すブロック図である。
【図２】図１に示したデータ処理装置の記憶部の構成を示す図である。
【図３】非構造化データ管理テーブルの構成を示す図である。
【図４】構造化データ管理テーブルの構成を示す図である。
【図５】構造化データの値を示す表を示す図である。
【図６】最適インデックス選択用テーブルの構成を示す図である。
【図７】インデックスタイプが「Hash Table」である場合のインデックスデータの構造の例を示す図である。
【図８】インデックス管理テーブルの構成を示す図である。
【図９】本発明の実施の形態に係るデータ処理装置の機能構成例を示すブロック図である。
【図１０】クエリ処理の動作を説明するためのフローチャートである。
【図１１】構造化処理の動作を説明するためのフローチャートである。
【図１２】インデックス作成・登録処理の動作を説明するためのフローチャートである。
【符号の説明】
【００５８】
１  データ処理装置
１３１  非構造化データ記憶部
１３２  構造化データ記憶部
１３３  最適インデックス選択用テーブル
１３４  インデックス記憶部
２１  クエリ解析部
２２  構造化データ／インデックス検索部
２３  構造化データ／インデックス作成部
２４  データ処理部
【図１】
0005162215.tif 000002
【図２】
0005162215.tif 000003
【図３】
0005162215.tif 000004
【図４】
0005162215.tif 000005
【図５】
0005162215.tif 000006
【図６】
0005162215.tif 000007
【図７】
0005162215.tif 000008
【図８】
0005162215.tif 000009
【図９】
0005162215.tif 000010
【図１０】
0005162215.tif 000011
【図１１】
0005162215.tif 000012
【図１２】
0005162215.tif 000013