(57)【要約】      （修正有）【課題】検索の柔軟性の向上を図ったデータ検索装置、データ検索方法、およびプログラムを提供する。【解決手段】検索の範囲を指定する情報を含む第1のフィルタ、および前記整列の条件を指定する情報を含む第２のフィルタの少なくとも何れかに基づいて、データの検索、検索結果の整列を行う。更に、検索対象のデータ構造識別する構造識別情報を含む第３のフィルタを記憶し、前記構造識別情報に基づいて、検索結果データが、該構造を持つか否かも検証する。また、第１の記憶部には、データを登録でき、第２の記憶部によりデータの一意性が検証される。【選択図】図１
2007156845.tif 000002
【特許請求の範囲】
【請求項１】
検索を要求する検索要求情報に基づいて、データが記憶された第1の記憶部を検索する問い合わせを行う問合部と、
前記問い合わせによる検索の結果を整列する整列部と、
前記検索の範囲を指定する情報を含む第1のフィルタ、および前記整列の条件を指定する情報を含む第２のフィルタの少なくとも何れかを記憶する第２の記憶部と、
を具備することを特徴とするデータ検索装置。
【請求項２】
前記第２の記憶部が、検索対象のデータ構造を識別する構造識別情報を含む第３のフィルタをさらに記憶し、
前記データ検索装置が、前記構造識別情報に基づいて、前記問い合わせによる検索結果に含まれるデータが所定のデータ構造を有するか否かを検証する検証部をさらに具備する
ことを特徴とする請求項１記載のデータ検索装置。
【請求項３】
前記構造識別情報が、検索対象のデータ構造を表す構造表現情報を含むファイルを指定する情報を含む、
ことを特徴とする請求項２記載のデータ検索装置。
【請求項４】
登録を要求する登録要求情報に基づいて、前記第1の記憶部にデータを登録する登録部と、
前記登録されるデータの一意性を検証する一意性検証部と、をさらに具備し、
前記第２の記憶部が、前記一意性の検証に用いられ、かつ検索対象を識別する検索対象識別情報を含む第４のフィルタをさらに記憶する、
ことを特徴とする請求項１記載のデータ検索装置。
【請求項５】
検索の範囲を指定する情報を含む第1のフィルタおよび検索を要求する検索要求情報に基づいて、データが記憶された記憶部を検索するステップと、
検索対象のデータ構造を識別する構造識別情報を含む第２のフィルタに基づいて、前記検索結果に含まれるデータが所定のデータ構造を有するか否かを検証するステップと、
整列の条件を指定する情報を含む第３のフィルタに基づいて、前記検証された検索の結果を整列するステップと、
を具備することを特徴とするデータ検索方法。
【請求項６】
検索対象を識別する検索対象識別情報を含む第４のフィルタおよび登録を要求する登録要求情報に基づいて、登録されるデータの一意性を検証するステップと、
前記検証されたデータを記憶部に登録するステップと、
をさらに具備することを特徴とする請求項５記載のデータ検索方法。
【請求項７】
検索の範囲を指定する情報を含む第1のフィルタおよび検索を要求する検索要求情報に基づいて、データが記憶された記憶部を検索するステップと、
検索対象のデータ構造を識別する構造識別情報を含む第２のフィルタに基づいて、前記検索結果に含まれるデータが所定のデータ構造を有するか否かを検証するステップと、
整列の条件を指定する情報を含む第３のフィルタに基づいて、前記検証された検索の結果を整列するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを検索するデータ検索装置、データ検索方法、およびプログラムに関する。
【背景技術】
【０００２】
データを検索するデータ検索装置が用いられている（例えば、特許文献１参照）。また、データの検索に関して、種々のサービスが提供されている（例えば、Google、Yahoo!、Amazon、特許検索システム、TX1）。
【特許文献１】特開平８−１４７３２８
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の技術では、データの検索等の処理に柔軟性を欠いている。例えば、検索する範囲、検索するデータのフォーマット、検索結果の並び替えを柔軟に指定することが困難である。
上記に鑑み、本発明は検索の柔軟性の向上を図ったデータ検索装置、データ検索方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明に係るデータ検索装置は、検索を要求する検索要求情報に基づいて、データが記憶された第1の記憶部を検索する問い合わせを行う問合部と、前記問い合わせによる検索の結果を整列する整列部と、前記検索の範囲を指定する情報を含む第1のフィルタ、および前記整列の条件を指定する情報を含む第２のフィルタの少なくとも何れかを記憶する第２の記憶部と、を具備することを特徴とする。
【０００５】
本発明に係るデータ検索方法は、検索の範囲を指定する情報を含む第1のフィルタおよび検索を要求する検索要求情報に基づいて、データが記憶された記憶部を検索するステップと、検索対象のデータ構造を識別する構造識別情報を含む第２のフィルタに基づいて、前記検索結果に含まれるデータが所定のデータ構造を有するか否かを検証するステップと、整列の条件を指定する情報を含む第３のフィルタに基づいて、前記検証された検索の結果を整列するステップと、を具備することを特徴とする。
【０００６】
本発明に係るプログラムは、検索の範囲を指定する情報を含む第1のフィルタおよび検索を要求する検索要求情報に基づいて、データが記憶された記憶部を検索するステップと、検索対象のデータ構造を識別する構造識別情報を含む第２のフィルタに基づいて、前記検索結果に含まれるデータが所定のデータ構造を有するか否かを検証するステップと、整列の条件を指定する情報を含む第３のフィルタに基づいて、前記検証された検索の結果を整列するステップと、をコンピュータに実行させる。
【発明の効果】
【０００７】
本発明によれば、検索の柔軟性の向上を図ったデータ検索装置、データ検索方法、およびプログラムを提供できる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して、本発明の実施の形態を詳細に説明する。
（第１の実施の形態）
図１は本発明の一実施形態に係るデータ検索システムを表すブロック図である。
データ検索システムは、データ検索装置１００，データ格納装置２００，端末３００を有する。
データ検索装置１００は、端末３００からの検索要求、登録要求に基づいてデータ格納装置２００内のデータの検索、登録等を行うものであり、コンピュータによって構成することができる。
【０００９】
データ格納装置２００は，ネットワーク等によりデータ検索装置１００に接続され、検索対象のデータを格納する記憶装置、例えば、ハードディスクであり、必要に応じて、その記憶装置を制御する制御装置、例えば、コンピュータを含む。データ格納装置２００は，ＸＭＬ（Extensible Markup Language）等で記述された半構造化データを格納する。なお、半構造化データは、データが一定の構造（ツリー構造等）を有し、かつコンピュータ、人間の双方で処理可能なデータを意味する。
端末３００は、ネットワーク等によりデータ検索装置１００に接続され、データ検索装置１００にデータの検索、登録を依頼し、検索結果等を受領するコンピュータであり、入力装置、表示装置等を有する。
【００１０】
図２は、データ格納装置２００に格納される検索対象データの一例を表す模式図である。この例では、地震の情報をＸＭＬで記述している。
図２に示すデータは、データの項目として、「表題（title）」、「地震の発生時刻（generatingTime）」、「記録時刻（registrationTime）」、「アップデート時刻（updateTime）」、「地震の発生場所（generatingPlace）」としての「震源の地名（focus）」、…、「地震の概要（outline）」等が表わされる。これらのデータ項目の内容として、「平成17年5月19日発生  釧路沖を震源とする地震について」、「2005/05/19 01:33」等が示される。
【００１１】
また、図２の検索対象データは、スキーマおよびＩＤの情報を含む。
「スキーマ」は、検索対象データのデータ構造、例えば、どのようなデータがどのように配列されるかを表現するものである。
「ＩＤ」はデータを互いに識別する識別情報であり、データの同一性の判定に利用できる。このＩＤは適宜に付与することもできるし（例えば、後述のように、適宜の複数の項目の組み合わせからＩＤを生成する）、既存の情報を用いることもできる。例えば、検索対象データが社員の場合に社員番号をＩＤとしたり、データが製品の場合に製品番号をＩＤとしたりすることができる。このＩＤは後述する一意性の検証に用いられる。
【００１２】
図２のスキーマの情報は、データ項目「地震データのスキーマの配置（earthquakes schemaLocation）」に「earthquake.xsd」としてスキーマ記述ファイルのパスが表される。即ち、「スキーマの配置」は、スキーマ（データ構造）それ自体を直接指定するのではなく、スキーマが記述されたファイル（スキーマ記述ファイル）を指定する（スキーマの間接的な指定）。
【００１３】
また図２のＩＤの情報は、地震のデータを互いに識別する識別情報として、データ項目「地震識別番号（earthquake id）」に「１」が表される。
【００１４】
検索処理部１１０は、検索要求に基づきデータ格納装置２００内のデータを検索するものであり、問い合わせ言語変換部１１１，問い合わせ部１１２、整列部１１３，検証部１１４，スキーマ格納部１１５，検索範囲指定フィルタ１４１，並べ替え指定フィルタ１４２，スキーマ指定フィルタ１４３を有する。
【００１５】
問い合わせ言語変換部１１１は、変換テーブルを用いて、端末３００からの問い合わせ（検索要求）をデータ格納装置２００内に対応した問い合わせ言語での問い合わせ（検索要求）に変換する。この変換テーブル（変換前後の言語を対応して表すテーブル）は、問い合わせ言語変換部１１１内に保持される。なお、変換後の言語として、例えば、XQueryやXPathを用いることができる。なお、XPathとはXML Path Languageの略であり、W3Cにより標準化されたＸＭＬデータを検索するための仕様である。XPathにより、ＸＭＬデータの階層構造の一部を指定できる。
【００１６】
問い合わせ言語変換部１１１によって、キーワードやキーバリュー形式の汎用的な問い合わせを、XQueryやXPathなどの半構造化データに対する問い合わせ言語に変換することで、検索が容易なインタフェースを端末３００で提供することができる。
【００１７】
問い合わせ言語変換部１１１は、例えば、「2005年に北海道近辺でおきた地震」を検索したい場合、汎用的な「2005 北海道」というキーワード型の検索式を、以下のようなXPath形式に変換する。
「/*[contains(.//text(), ’2005’) and contains(.//text(), ‘北海道’)]」
【００１８】
問い合わせ部１１２は、問い合わせ言語変換部１１１によって変換された問い合わせ言語に基づき、データ格納装置２００に対して問い合わせ（検索）を行なう。この検索に際して、必要に応じて、検索範囲指定フィルタ１４１、スキーマ指定フィルタ１４３が用いられ、検索範囲、スキーマが指定される。
【００１９】
整列部１１３は、問い合わせ部１１２での問い合わせと連動し、検索結果を並び替える。この並び替えに際して、必要に応じて、並び替え指定フィルタ１４２が用いられ、並び替えの条件が設定される。整列部１１３は、特に、データ格納装置２００が並び替え機能を持たない場合に有効である。
【００２０】
検証部１１４は、問い合わせ部１１２と連動し、検索結果のスキーマ検証（データ構造の確認）を行なう。複数のデータが検索される場合に、検索結果から真に必要とするデータを選別することが可能となる。このスキーマ検証に際して、スキーマ指定フィルタ１４３が用いられ、スキーマが指定される。
後述のように、スキーマ指定フィルタ１４３は、スキーマそれ自体を直接指定するのではなく、スキーマ記述ファイルのパス（検索対象のデータ構造を識別する構造識別情報の一種）を指定する。検証部１１４は、スキーマ格納部１１５（またはデータ検索装置１００にネットワーク等で接続された図示しないスキーマ格納装置）に格納されているスキーマ記述ファイルによって、スキーマの情報（検索対象のデータ構造を表す構造表現情報）を取得し、スキーマを検証する。
【００２１】
検索範囲指定フィルタ１４１、並び替え指定フィルタ１４２、スキーマ指定フィルタ１４３（以下、「検索範囲指定フィルタ１４１等」という）は、所定の情報を含むファイルである。
検索範囲指定フィルタ１４１等それぞれを複数用意しておき、入れ替えることで、適宜の検索が可能となる。フィルタ格納部１３０に格納されたファイルによって、検索範囲指定フィルタ１４１等を入れ替えることができる。また、端末３００から入力された情報を問い合わせ言語変換部１１１で変換することで、検索範囲指定フィルタ１４１等を生成することも可能である。
【００２２】
検索範囲指定フィルタ１４１は、検索範囲を指定する情報を含む。
検索範囲指定フィルタ１４１によって、検索範囲を指定できる。検索要求に検索範囲指定フィルタ１４１を特定する情報を含めることで、端末３００からの検索の際に検索範囲を指定できる。また、検索要求とは別個に検索範囲指定フィルタ１４１を設定することで、データの提供側が検索範囲を制限することも可能である。
【００２３】
例えば、検索範囲を「表題（title）」と「概要（outline）」のデータ項目に限定したい場合、検索範囲指定フィルタ１４１を以下のように指定する。
「//title
//outline」
【００２４】
並び替え指定フィルタ１４２は、検索結果の並べ替え条件を指定する情報を含む。
並び替え指定フィルタ１４２によって、検索結果を適宜の項目で並べ換えられる。また、第２キー以降を適宜に指定できる。
検索要求に並び替え指定フィルタ１４２を特定する情報を含めることで、端末３００からの検索の際に並び替え条件を指定できる。また、検索要求とは別個に並び替え指定フィルタ１４２を設定することで、データの提供側が並び替え条件を指定することも可能である。
【００２５】
例えば、第1キーを「地震のマグニチュード（magnitude）」の降順とし、第２キーを「地震の発生時刻（generatingTime）」の昇順として、検索結果を整列したい場合、以下のように並び替え指定フィルタ１４２を指定する。
「//magnitude,DSC
//generatingTime,ASC」
【００２６】
スキーマ指定フィルタ１４３は、スキーマを指定する情報を含む。
ここで、スキーマ指定フィルタ１４３は、スキーマ（データ構造）それ自体を直接指定するのではなく、スキーマが記述されたファイル（スキーマ記述ファイル）のパスを指定する（スキーマの間接的な指定）。スキーマ記述ファイルのパスは、検索対象のデータ構造を識別する構造識別情報として機能する。また、スキーマ記述ファイルは、検索対象のデータ構造を表す構造表現情報を含む。
【００２７】
スキーマ指定フィルタ１４３によって、登録対象あるいは検索対象のスキーマを指定できる。検索要求とは別個にスキーマ指定フィルタ１４３を設定することで、データの提供側が検索範囲を制限することも可能である。また、検索要求にスキーマ指定フィルタ１４３を特定する情報を含めることで、端末３００からの検索の際に検索対象のスキーマを指定できる。
【００２８】
スキーマを指定して検索あるいは登録する場合、例えば、以下のようにスキーマ指定フィルタ１４３を設定する。
「earthquake.xsd」、「http://www.example.com/earthquake.xsd」
前者はスキーマ格納部１１５内のスキーマを指定する場合であり、後者はインターネットで指定された場所にあるスキーマを指定する場合(URL指定)である。
【００２９】
登録処理部１２０は、登録要求に基づきデータ格納装置２００内にデータを登録するものであり、登録要求変換部１２１，登録部１２２、一意性検証部１２３，ＩＤ指定フィルタ１４４を有する。
【００３０】
登録要求変換部１２１は、変換テーブルを用いて、端末３００からの登録要求をデータ格納装置２００内に対応した登録言語（登録要求）に変換する。この変換テーブル（変換前後の言語を対応して表すテーブル）は、登録要求変換部１２１内に保持される。なお、変換後の言語として、例えば、XPathを用いることができる。
【００３１】
登録部１２２は、登録要求変換部１２１によって変換された登録言語に基づき、データ格納装置２００へのデータの登録を行なう。この登録に際して、必要に応じて、ＩＤ指定フィルタ１４４が用いられ、登録するデータのＩＤが指定される。
【００３２】
一意性検証部１２３は、登録部１２２と連動し、データ格納装置２００に登録されるデータの一意性を検証する。即ち、登録するデータがデータ格納装置２００に既に存在しないかが検証される。データ格納装置２００内に既登録の同一データが存在しない場合、登録部１２２がデータを登録する。この一意性の検証に際して、必要に応じて、ＩＤ指定フィルタ１４４が用いられる。
【００３３】
ＩＤ指定フィルタ１４４は、ＩＤの情報を含むファイルである。
ＩＤ指定フィルタ１４４によって、複数項目の組み合わせで一意性を指定し、当該項目の組合せで同一のものが既に格納されていれば、登録を拒否することができる。
例えば、「地震の発生時刻（generatingTime）」および「地震の発生場所（generatingPlace）」のデータ項目によって、登録するデータを一意に識別したい場合、以下のようにフィルタを指定する。これらの項目の双方が同一のデータが既にデータ格納装置２００に格納されていれば、新たなデータの登録が拒否される。
「//generatingTime
//generatingPlace」
【００３４】
また、複数項目の組み合わせに対して、新規の識別子（ＩＤ）を付与することも可能である。例えば、「地震の発生時刻（generatingTime）」および「地震の発生場所（generatingPlace）」のデータ項目によって、図３の「地震識別番号（earthquake id）」を決定し、このデータを登録する。
【００３５】
ＩＤ指定フィルタ１４４を複数用意しておき、入れ替えることで、適宜の登録が可能となる。フィルタ格納部１３０に格納されたファイルによって、ＩＤ指定フィルタ１４４を入れ替えることができる。また、端末３００から入力された情報を登録要求変換部１２１で変換することで、ＩＤ指定フィルタ１４４を生成することも可能である。
【００３６】
フィルタ格納部１３０は、検索範囲指定フィルタ１４１、並び替え指定フィルタ１４２、スキーマ指定フィルタ１４３、ＩＤ指定フィルタ１４４を格納する記憶装置、例えば、半導体メモリ、ハードディスクである。フィルタを入れ替えることで、適宜の検索、登録が容易になる。
【００３７】
（データ検索システムの動作）
以下、データ検索システムの動作（データの登録、検索）につき説明する。
Ａ．データの登録
図３は、データ検索システムでのデータの登録手順の一例を表すフロー図である。
（１）端末３００からの登録要求の受領によって、データの登録処理が開始される（ステップＳ１１）。
（２）登録要求を受けた登録要求変換部１２１が、この登録要求をデータ格納装置２００内に対応した登録要求に変換する（ステップＳ１２）。
【００３８】
（３）一意性検証部１２３が、データ格納装置２００に登録されるデータの一意性を検証する（ステップＳ１３）。データに記述されたＩＤによりデータの同一性を識別できる。また、ＩＤ指定フィルタ１４４を用いて、適宜にデータの同一性を識別できる。
（４）登録部１２２が、データ格納装置２００へのデータの登録を行なう（ステップＳ１４）。この登録に際して、必要に応じて、ＩＤ指定フィルタ１４４が用いられ、登録するデータのＩＤが決定（生成）される。
（５）登録の結果が端末３００に通知され（ステップＳ１２）、端末３００は登録の成功、失敗等を知ることができる。
【００３９】
Ｂ．データの検索
図４は、データ検索システムでのデータの検索手順の一例を表すフロー図である。
（１）端末３００からの検索要求の受領によって、データの検索処理が開始される（ステップＳ２１）。
（２）検索要求を受けた問い合わせ言語変換部１１１が、この検索要求をデータ格納装置２００内に対応した検索要求に変換する（ステップＳ２２）。
（３）問い合わせ部１１２が、データ格納装置２００のデータの検索する（ステップＳ２３）。この検索に際して、必要に応じて、検索範囲指定フィルタ１４１、スキーマ指定フィルタ１４３が用いられ、検索範囲、スキーマ（データの構造）が指定される。
【００４０】
（４）検証部１１４が、検索結果のスキーマ検証を行なう（ステップＳ２４）。このスキーマ検証に際して、スキーマ指定フィルタ１４３が用いられ、スキーマが指定される。
（５）整列部１１３が、検索結果を並び替える（ステップＳ２５）。この並び替えに際して、必要に応じて、並び替え指定フィルタ１４２が用いられ、並び替えの条件が設定される。
（６）検索の結果が端末３００に通知される（ステップＳ２６）。
【００４１】
（その他の実施形態）
本発明の実施形態は上記の実施形態に限られず拡張、変更可能であり、拡張、変更した実施形態も本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【００４２】
【図１】本発明の一実施形態に係るデータ検索システムを表すブロック図である。
【図２】データ格納装置に格納される検索対象データの一例を表す模式図である。
【図３】データ検索システムでのデータの登録手順の一例を表すフロー図である。
【図４】データ検索システムでのデータの検索手順の一例を表すフロー図である。
【符号の説明】
【００４３】
１００…データ検索装置、１１０…検索処理部、１１１…言語変換部、１１２…問い合わせ部、１１３…整列部、１１４…検証部、１１５…スキーマ格納部、１２０…登録処理部、１２１…登録要求変換部、１２２…登録部、１２３…一意性検証部、１３０…フィルタ格納部、１４１…検索範囲指定フィルタ、１４２…並び替え指定フィルタ、１４３…スキーマ指定フィルタ、１４４…ＩＤ指定フィルタ、２００…データ格納装置、３００…端末
【図１】
2007156845.tif 000003
【図２】
2007156845.tif 000004
【図３】
2007156845.tif 000005
【図４】
2007156845.tif 000006