(57)【要約】【課題】新たなクエリ（検索式）の生成の際に、事前に詳細で膨大な合成ルールの準備は不要で、かつ、構文に関する情報やデータ構造（スキーマ）に関する情報などの基礎知識は不要であり、簡単な操作を繰り返すことで複雑なクエリを生成することができる構造化文書検索支援装置およびプログラムを提供する。【解決手段】２つのソースクエリを選択させ、選択された２つのソースクエリを用いて構造化文書ＤＢに対する検索処理をそれぞれ実行した検索結果を提示し、２つのソースクエリを用いた各検索結果の所定の構造部分の内、一方の検索結果の所定の構造部分を他方の検索結果の所定の構造部分に対してドラッグ＆ドロップ操作された場合に、２つのソースクエリを用いた各検索結果の所定の構造部分を対応付ける。これにより、新たなクエリであるターゲットクエリおよびターゲットクエリを用いた検索結果を生成する。【選択図】        図１６
2008083992.tif 000002
【特許請求の範囲】
【請求項１】
階層化された論理構造を有している構造化文書を記憶する構造化文書データベースに対する検索処理に用いるクエリの作成を支援する構造化文書検索支援装置において、
前記クエリを記憶部に記憶するクエリ記憶手段と、
このクエリ記憶手段により記憶された少なくとも２以上の前記クエリを用いて各検索結果の所定の構造部分をそれぞれ選択して対応付ける対応付け手段と、
この対応付け手段により対応付けられた２つの前記各検索結果の所定の構造部分に関連する部分グラフをクエリロジックとしてそれぞれ抽出するクエリロジック抽出手段と、
このクエリロジック抽出手段により抽出された前記各クエリロジック間における最適な対応関係を生成するクエリロジック写像手段と、
このクエリロジック写像手段により生成された対応関係に基づいて前記対応付け手段で選択した前記検索結果に対応する前記クエリを変換して新たなクエリを生成するクエリ生成手段と、
を備えることを特徴とする構造化文書検索支援装置。
【請求項２】
前記クエリ生成手段により生成された前記新たなクエリを用いて前記構造化文書データベースに対する検索処理を実行する検索手段と、
この検索手段により検索結果を提示する結果提示手段と、
更に備えることを特徴とする請求項１記載の構造化文書検索支援装置。
【請求項３】
前記対応付け手段は、前記結果一覧提示手段により提示されている２つの前記各検索結果の所定の構造部分の内、一方の前記検索結果の所定の構造部分を他方の前記検索結果の所定の構造部分に対してドラッグ＆ドロップ操作された場合に、前記各検索結果の所定の構造部分を対応付ける、
ことを特徴とする請求項１または２記載の構造化文書検索支援装置。
【請求項４】
前記クエリロジック写像手段による前記各クエリロジック間における評価関数の設定は、前記クエリロジックを構成する構造上の類似度およびデータ上の一致度に関する評価関数である、
ことを特徴とする請求項１ないし３のいずれか一記載の構造化文書検索支援装置。
【請求項５】
前記クエリロジック写像手段は、前記各クエリロジック間における最適な対応関係として複数の候補がある場合には、前記各候補から一の前記候補を選択可能とする、
ことを特徴とする請求項１ないし４のいずれか一記載の構造化文書検索支援装置。
【請求項６】
前記結果一覧提示手段は、前記クエリ記憶手段により記憶された前記クエリから少なくとも２以上の前記クエリを選択する手段と、選択された少なくとも２以上の前記クエリを用いて前記構造化文書データベースに対する検索処理をそれぞれ実行する手段と、選択された少なくとも２以上の前記クエリを用いた検索結果をそれぞれ提示する手段と、を備える、
ことを特徴とする請求項１ないし５のいずれか一記載の構造化文書検索支援装置。
【請求項７】
階層化された論理構造を有している構造化文書を記憶する構造化文書データベースに対する検索処理に用いるクエリの作成支援処理をコンピュータに実行させるプログラムであって、
前記クエリを記憶部に記憶するクエリ記憶機能と、
このクエリ記憶機能により記憶された少なくとも２以上の前記クエリを用いて各検索結果の所定の構造部分をそれぞれ選択して対応付ける操作機能と、
この操作機能により対応付けられた２つの前記各検索結果の所定の構造部分に関連する部分グラフをクエリロジックとしてそれぞれ抽出するクエリロジック抽出機能と、
このクエリロジック抽出機能により抽出された前記各クエリロジック間における最適な対応関係を生成するクエリロジック写像機能と、
このクエリロジック写像機能により生成された対応関係に基づいて前記操作機能で選択した前記検索結果に対応する前記クエリを変換して新たなクエリを生成するクエリ生成機能と、
を前記コンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層化された論理構造を有している構造化文書を記憶する構造化文書データベースに対する検索処理に用いる検索式の作成を支援する構造化文書検索支援装置およびプログラムに関する。
【背景技術】
【０００２】
近年、階層化された論理構造を持つ構造化文書の検索支援に関して、いくつかのアプローチが提案されている。
【０００３】
第１の検索支援には、構文レベルでの支援が挙げられる。この例としては、ＳＱＬ（Structured Query Language）エディタなどがある。これによれば、構文チェックやキーワード補完などについてのユーザの検索式作成を構文レベルで支援することができる。
【０００４】
第２の検索支援には、処理レベルでの支援が挙げられる。この例としては、対話式にデータベースを利用するためのＩ／ＦであるＱＢＥ（Query By Example）などがある。これによれば、ＲＤＢ（Relational Database）における表を例示し、それに対してユーザが条件を入力することでＳＱＬを生成することができるので、スクラッチからのＳＱＬ作成と比較すると扱いやすくなっている。
【０００５】
第３の検索支援として、検索式修正による作成支援が挙げられる。この例としては、特許文献１に記載されている技術が挙げられる。特許文献１には、構造化文書の構造中のノードのタイプ、ノードの内容、ノードの属性、ノード間の構造上の関係のうち複数が記述された検索式をユーザが入力すると、書き換え規則と確からしさを示す基準確度により、複数の緩和された検索式を生成する手法が提示されている。
【０００６】
また、第４の検索支援として、検索式合成による作成支援が挙げられる。この例としては、特許文献２に記載されている技術が挙げられる。特許文献２に記載の技術は、構造化文書に対して検索結果の１つとしてユーザから例示された構造化文書の部分構造に基づき例示された部分構造を含む部分構造を抽出する構造抽出処理と、該構造抽出処理により抽出された部分構造から検索式を合成する検索式合成処理と、を有する検索式作成支援システムである。
【０００７】
【特許文献１】特許第３６１２９１４号公報
【特許文献２】特許第３１６８８２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、第１，２の検索支援である構文レベルでの支援や処理レベルでの支援では、それぞれ構文に関する情報やデータ構造（スキーマ）に関する情報が必要とされるため、一般的なユーザにとっては敷居が高いものとなっている。また、構造化文書ＤＢのように様々なスキーマを持つデータを扱う場合、スキーマに関する十分な前提知識を持つことは不可能である。さらに、ＲＤＢにおける表のように例示する表を１つに絞り込めないため、一般的なユーザの利用は困難と考えられる。
【０００９】
すなわち、第１，２の検索支援では、ユーザに対して、構文に関する情報やスキーマに関する情報を要求しなければならず、一般的なユーザの利用は困難であるという問題がある。
【００１０】
また、第３の検索支援である特許文献１に記載の検索式修正による作成支援によれば、事前に正確な検索式の変換ルールを準備しておくことは困難である。そして、この場合も、スキーマに関する前提知識が必要とされる。
【００１１】
さらに、第４の検索支援である特許文献２に記載の検索式合成による作成支援によれば、事前に詳細で膨大な合成ルールの準備が必要である。そして、その割には単純な検索式しか作成できないという問題もある。加えて、直感的な操作で複雑な検索式を作成することが困難である。
【００１２】
すなわち、第３，４の検索支援では、システム側で合成ルールや変換ルールを事前に大量に用意しなければ、うまく動作しないなどの問題がある。
【００１３】
本発明は、上記に鑑みてなされたものであって、新たなクエリ（検索式）の生成の際に、事前に詳細で膨大な合成ルールの準備は不要で、かつ、構文に関する情報やデータ構造（スキーマ）に関する情報などの基礎知識は不要であり、簡単な操作を繰り返すことで複雑なクエリを生成することができる構造化文書検索支援装置およびプログラムを提供することである。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するために、本発明は、階層化された論理構造を有している構造化文書を記憶する構造化文書データベースに対する検索処理に用いるクエリの作成を支援する構造化文書検索支援装置において、前記クエリを記憶部に記憶するクエリ記憶手段と、このクエリ記憶手段により記憶された少なくとも２以上の前記クエリを用いて各検索結果の所定の構造部分をそれぞれ選択して対応付ける対応付け手段と、この対応付け手段により対応付けられた２つの前記各検索結果の所定の構造部分に関連する部分グラフをクエリロジックとしてそれぞれ抽出するクエリロジック抽出手段と、このクエリロジック抽出手段により抽出された前記各クエリロジック間における最適な対応関係を生成するクエリロジック写像手段と、このクエリロジック写像手段により生成された対応関係に基づいて前記対応付け手段で選択した前記検索結果に対応する前記クエリを変換して新たなクエリを生成するクエリ生成手段と、を備える。
【００１５】
また、本発明は、階層化された論理構造を有している構造化文書を記憶する構造化文書データベースに対する検索処理に用いるクエリの作成支援処理をコンピュータに実行させるプログラムであって、前記クエリを記憶部に記憶するクエリ記憶機能と、このクエリ記憶機能により記憶された少なくとも２以上の前記クエリを用いて各検索結果の所定の構造部分をそれぞれ選択して対応付ける操作機能と、この操作機能により対応付けられた２つの前記各検索結果の所定の構造部分に関連する部分グラフをクエリロジックとしてそれぞれ抽出するクエリロジック抽出機能と、このクエリロジック抽出機能により抽出された前記各クエリロジック間における最適な対応関係を生成するクエリロジック写像機能と、このクエリロジック写像機能により生成された対応関係に基づいて前記操作機能で選択した前記検索結果に対応する前記クエリを変換して新たなクエリを生成するクエリ生成機能と、を前記コンピュータに実行させる。
【発明の効果】
【００１６】
本発明によれば、新たなクエリの生成の際に事前に詳細で膨大な合成ルールの準備は不要で、かつ、構文に関する情報やデータ構造（スキーマ）に関する情報などの基礎知識は不要であり、２つの検索結果の所定の構造部分をそれぞれ選択して対応付ける簡単な操作を繰り返すことで複雑なクエリを生成することができる、という効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、この発明にかかる構造化文書検索支援装置およびプログラムの最良な実施の形態を詳細に説明する。
【００１８】
［第１の実施の形態］
本発明の第１の実施の形態を図１ないし図１５に基づいて説明する。図１は、本発明の第１の実施の形態にかかる構造化文書検索支援装置１のモジュール構成図である。構造化文書検索支援装置１は、例えば、一般的なパーソナルコンピュータである。
【００１９】
図１に示すように、構造化文書検索支援装置１は、情報処理を行うＣＰＵ（Central Processing Unit）１０１、ＢＩＯＳなどを記憶した読出し専用メモリであるＲＯＭ（Read Only Memory）１０２、各種データを書換え可能に記憶するＲＡＭ（Random Access Memory）１０３、各種データベースとして機能するとともに各種のプログラムを格納するＨＤＤ（Hard Disk Drive）１０４、記憶媒体１１０を用いて情報を保管したり外部に情報を配布したり外部から情報を入手するためのＣＤ−ＲＯＭドライブ等の媒体駆動装置１０５、ネットワーク２を介して外部の他のコンピュータと通信により情報を伝達するための通信制御装置１０６、処理経過や結果等を操作者に表示するＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display）等の表示部１０７、並びに操作者がＣＰＵ１０１に命令や情報等を入力するためのキーボードやマウス等の入力部１０８等から構成されており、これらの各部間で送受信されるデータをバスコントローラ１０９が調停して動作する。
【００２０】
このような構造化文書検索支援装置１では、ユーザが電源を投入するとＣＰＵ１０１がＲＯＭ１０２内のローダーというプログラムを起動させ、ＨＤＤ１０４よりＯＳ（Operating System）というコンピュータのハードウェアとソフトウェアとを管理するプログラムをＲＡＭ１０３に読み込み、このＯＳを起動させる。このようなＯＳは、ユーザの操作に応じてプログラムを起動したり、情報を読み込んだり、保存を行ったりする。ＯＳのうち代表的なものとしては、Ｗｉｎｄｏｗｓ（登録商標）等が知られている。これらのＯＳ上で走る動作プログラムをアプリケーションプログラムと呼んでいる。なお、アプリケーションプログラムは、所定のＯＳ上で動作するものに限らず、後述の各種処理の一部の実行をＯＳに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやＯＳなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【００２１】
ここで、構造化文書検索支援装置１は、アプリケーションプログラムとして、構造化文書検索支援プログラムをＨＤＤ１０４に記憶している。この意味で、ＨＤＤ１０４は、構造化文書検索支援プログラムを記憶する記憶媒体として機能する。
【００２２】
また、一般的には、構造化文書検索支援装置１のＨＤＤ１０４にインストールされるアプリケーションプログラムは、ＣＤ−ＲＯＭやＤＶＤなどの各種の光ディスク、各種光磁気ディスク、フレキシブルディスクなどの各種磁気ディスク、半導体メモリ等の各種方式のメディア等の記憶媒体１１０に記録され、この記憶媒体１１０に記録された動作プログラムがＨＤＤ１０４にインストールされる。このため、ＣＤ−ＲＯＭ等の光情報記録メディアやＦＤ等の磁気メディア等の可搬性を有する記憶媒体１１０も、アプリケーションプログラムを記憶する記憶媒体となり得る。さらには、アプリケーションプログラムは、例えば通信制御装置１０６を介して外部から取り込まれ、ＨＤＤ１０４にインストールされても良い。
【００２３】
構造化文書検索支援装置１は、ＯＳ上で動作する構造化文書検索支援プログラムが起動すると、この構造化文書検索支援プログラムに従い、ＣＰＵ１０１が各種の演算処理を実行して各部を集中的に制御する。構造化文書検索支援装置１のＣＰＵ１０１が実行する各種の演算処理のうち、本実施の形態の特長的な処理について以下に説明する。
【００２４】
図２は、構造化文書検索支援装置１の概略構成を示すブロック図である。図２に示すように、構造化文書検索装置１は、構造化文書検索プログラムに従うことにより、記憶部であるＨＤＤ１０４に、クエリを格納するデータベースであるクエリデータベース（クエリＤＢ）２０と、階層化された論理構造を有している構造化文書を格納するデータベースである構造化文書データベース（構造化文書ＤＢ）２１とを形成する。ここに、クエリ記憶手段が実現されている。また、構造化文書検索支援装置１は、構造化文書検索支援プログラムに従うことにより、クエリ入力選択部１１と、結果表示部１２と、表示操作部１３と、クエリ実行部１４と、クエリ生成部１５と、クエリロジック写像部１６と、クエリロジック抽出部１７と、クエリロジック変換部１８とを備える。
【００２５】
ここで、図３は構造化文書ＤＢ２１に格納される構造化文書データの一例を示す模式図である。構造化文書データを記述するための代表的な言語としては、ＸＭＬ（eXtensible Markup Language）が挙げられる。図３に示す構造化文書データは、ＸＭＬで記述されたものである。ＸＭＬでは、文書構造を構成する個々のパーツを「要素」（エレメント：Element）と呼び、要素はタグ（tag）を使って記述する。具体的には、要素の始まりを示すタグ（開始タグ）と、終わりを示すタグ（終了タグ）の２つのタグでデータを挟み込んで、１つの要素を表現している。なお、開始タグと終了タグで挟み込まれたテキストデータは、当該開始タグと終了タグで表された１つの要素に含まれるテキスト要素（テキストノード）である。
【００２６】
図３に示す例では、＜ＤＢ＞というタグに囲まれた要素のルート要素が存在する。この「ＤＢ」要素の直下には、
・  ＜カテゴリ＞というタグで囲まれた３つの子要素
・  ＜年＞というタグで囲まれた３つの子要素
・  ＜カテゴリ＞というタグで囲まれた１つの子要素
・  ＜特許データ＞というタグで囲まれた１つの子要素
が存在する。「カテゴリ」要素は、３＋１の計４回、「ＤＢ」要素の直下に発生し、さらに３番目の「カテゴリ」要素には、孫要素として２つの「カテゴリ」要素が存在する。「特許データ」要素の直下には、複数の「特許」要素が発生している。末端には、テキスト要素が発生している。１番目の「カテゴリ」要素には、「ＸＭＬ」というテキストが存在する。
【００２７】
図４は、図３に示した構造化文書データの構造化文書ＤＢ２１での格納イメージを示す模式図である。このような構造化文書ＤＢ２１は、本実施の形態においてはＨＤＤ１０４に保存されるが、メモリに常駐する形で存在することもある。
【００２８】
図４に示すように、各ノードはオブジェクトデータとして格納されて、ノード間の階層関係はリンクとして表現して格納されている。各オブジェクトにはオブジェクトＩＤ（ＯＩＤ）といった識別子が割り当てられている。なお、図４中、それぞれ四角で囲まれたノードはテキストノードを示している。
【００２９】
構造化文書ＤＢ２１に格納された構造化文書データを取り出す手段として、クエリ言語がある。ＲＤＢの世界ではＳＱＬ（Structured Query Language）があるように、ＸＭＬについてはＷ３ＣでＸＱｕｅｒｙ（XML Query Language）が策定されている。ＸＱｕｅｒｙは、ＸＭＬデータをデータベースのように扱うための言語である。このため条件に合致するデータ集合の取り出しや集計・分析を行うための手段が提供されている。また、ＸＭＬデータは親子や兄弟などの要素が組み合わさった階層構造を持つため、この階層構造を辿る手段が提供されている。
【００３０】
図５は、クエリの一例を示す模式図である。このようなクエリは、クエリＤＢ２０に格納されている。図５に示すクエリは、ＸＱｕｅｒｙに基づいた問合せ記述方法に則っており、構造化文書ＤＢ２１の「カテゴリ」と「年」という２つの軸で「特許」を分類集計するという検索要求を表している。
・  for $c in db（）／／カテゴリ／／text（）
構造化文書ＤＢ中の任意の階層にある「カテゴリ」のテキストについて、変数$c
にセットしてループをまわす。
・  for $y in db（）／／年／／text（）
構造化文書ＤＢ中の任意の階層にある「年」のテキストについて、変数$yにセッ
トしてループをまわす。
・  let $z ：＝ count（db（）／／特許［年 ＝ $y and カテゴリ ＝ $c］）
構造化文書ＤＢ中の任意の階層にある「特許」について、「特許」の直下の「年
」が変数$yと同じ、かつ「特許」の直下の「カテゴリ」が変数$cと同じものを選
択し、その件数をカウントして、変数$zにセットする。
・  return ＜レコード＞…．＜／レコード＞
「レコード」要素として出力する。「カテゴリ」、「年」、「件数」という並び
で子要素を配置し、それぞれに対応する変数値をセットする。
【００３１】
なお、要素間の階層関係としては、「／」と「／／」がある。前者は親子関係を表し、後者先祖子孫の関係を表す。「Text（）」はテキスト要素に対応する。
【００３２】
図６は、図４に示した構造化文書ＤＢ２１に対して図５のクエリをクエリ実行部１４で実行した結果を示したものである。なお、登録はしないが、これも新たな構造化文書データと見なすこともできる。図６に示すように、「結果」というルート要素以下に、先に示したフォーマットである「レコード」が並んでいることがわかる。「レコード」の件数は、
「特許」の件数 × 「年」
の件数である。
【００３３】
図７は、図６で結果として生成された構造化文書データをＸＳＬ（XML Stylesheet Language）という表示変換ルールを通して出力した様子を示す模式図である。ＸＳＬは、構造化文書データに対してスタイルを設定することで、画面や印刷するための書式を整えたり、組み版を行ったりする。図７に示すように、構造化文書ＤＢ２１の「カテゴリ」と「年」という２つの軸で「特許」を分類集計するという検索要求に合致した出力であることがわかる。
【００３４】
図８は、図５とは別のクエリの一例を示す模式図である。これは、構造化文書ＤＢの「マイカテゴリ」を一覧にするという検索要求を表している。
【００３５】
図９は、図４に示した構造化文書ＤＢ２１に対して図８のクエリを実行して表示変換して出力したものである。図９に示すように、「ＸＭＬ」と「ＳＧＭＬ」というテキストが並んでいることがわかる。
【００３６】
次に、図２に示した構造化文書検索支援装置１の構造化文書検索支援機能を構成する各部について詳述する。
【００３７】
クエリ入力選択部１１は、クエリＤＢ２０に格納された初期クエリ集合をユーザに提示し、ユーザにソースクエリを選ばせる。
【００３８】
結果表示部１２は、クエリ実行部１４を通して構造化文書ＤＢ２１にソースクエリやターゲットクエリの実行を行い、その結果である構造化文書をユーザに提示する。
【００３９】
表示操作部１３は、詳細は後述するが、結果として表示された２つの構造化文書に対するドラッグ＆ドロップを基本としたユーザ操作をハンドリングし、クエリ生成部１５を通して、操作内容からユーザ意図を推定し、新たなクエリ（ターゲットクエリ）を生成する。
【００４０】
クエリ生成部１５は、クエリロジック写像部１６とクエリロジック抽出部１７とクエリロジック変換部１８とを呼び出して、新たなクエリ（ターゲットクエリ）を生成する。
【００４１】
クエリロジック抽出部１７は、クエリロジック抽出手段として機能するものであって、詳細は後述するが、ユーザ操作を通して２つのソースクエリの関連する部分を抽出する。
【００４２】
クエリロジック写像部１６は、クエリロジック写像手段として機能するものであって、２つのソースクエリの関連する部分の最適な対応関係を生成する。
【００４３】
クエリロジック変換部１８は、クエリ生成手段として機能するものであって、生成された対応関係を元にソースクエリに対して変換を施し、新たなクエリ（ターゲットクエリ）を生成する。
【００４４】
ここで、構造化文書検索支援装置１における構造化文書検索支援処理の流れを図１０のフローチャートを参照しつつ説明する。なお、クエリＤＢ２０には、既に複数のクエリが登録されているとする。
【００４５】
まず、ステップＳ１では、クエリＤＢ２０に登録されている複数のクエリの一覧（初期クエリ集合）を表示部１０７に表示させることによりユーザに提示し、それらの中から入力部１０８を介してユーザにソースクエリを選択させる（クエリ入力選択部１１）。なお、簡単なクエリであれば、ユーザが作成して新たに登録することもできる。
【００４６】
続くステップＳ２では、２つのソースクエリが選択されているか検査する。
【００４７】
２つのソースクエリが選択されていると判断した場合には（ステップＳ２のＹｅｓ）、各ソースクエリの実行結果を表示部１０７に表示する（ステップ３：結果一覧提示手段）。より詳細には、それぞれクエリ実行部１４にて、ソースクエリを使って構造化文書ＤＢ２１にアクセスし、それぞれの結果を結果表示部１２にて表示部１０７に表示する。図１１は、表示部１０７に表示されているクエリ実行結果の例を示す正面図である。図１１の表示は、図５のクエリおよび図８のクエリがソースクエリとして選択された場合を示すものである。図１１に示すように、図７および図９に示した構造化文書データ、つまり、図５および図８のクエリの実行結果Ｘ，Ｙが画面上に表示されている。画面は２つのサブ画面に分割されており、それぞれに図５および図８のクエリの実行結果Ｘ，Ｙが表示されている。
【００４８】
続くステップＳ４では、ソースクエリの実行結果の部分が選択され、さらに操作されているか否かを検査する（表示操作部１３）。操作は、ドラッグ＆ドロップを基本としたものである。表示操作部１３は、表示された２つのクエリの実行結果に対するドラッグ＆ドロップを基本としたユーザ操作をハンドリングする。
【００４９】
図１２は、表示された２つのクエリの実行結果に対するユーザ操作例を示す模式図である。図１２においては、図１１の表示に対して網掛けで示された領域が、マウスなどの入力部１０８で選択されていることを示している。より詳細には、右サブ画面の図５のクエリの実行結果Ｘの「ＸＭＬ」、「ＳＧＭＬ」、…、「ＲＤＢ」といったカラムをマウスなどの入力部１０８で選択する（グラブする）。これを選択エリアＡとする。その後、入力部１０８であるキーボードのＣＴＬキーなどで押しながら左サブ画面の図８のクエリの実行結果Ｙの「ＸＭＬ」、「ＳＧＭＬ」のカラムをマウスなどの入力部１０８で選択する。これを選択エリアＢとする。その後、マウスなどの入力部１０８で選択エリアＡを再選択し、マウスボタンを押しながら、選択エリアＢへ移動する（ドラッグする）。以上の操作を行なうことで、ソースクエリの実行結果の部分が選択され、さらに操作されていると判断することができる。ここに、対応付け手段の機能が実行される。
【００５０】
ソースクエリおよびターゲットクエリの実行結果の部分が選択され、さらに操作されていると判断した場合には（ステップＳ４のＹｅｓ）、ステップＳ５〜Ｓ７において、ステップＳ４の操作内容からユーザ意図を推定し、新たなクエリ（ターゲットクエリ）を生成する（クエリ生成部１５）。
【００５１】
ステップＳ５では、各ソースクエリのクエリロジックを抽出する（クエリロジック抽出部１７）。具体的には、操作内容から各ソースクエリから関連のある部分をクエリロジックとして抽出する。
【００５２】
ここで、図１３を参照してユーザ意図の推測の方式を述べる。図１３は、図１２の選択エリアＡおよび選択エリアＢに対応するクエリロジックを示している。クエリロジックとは、以下の構成要素からなるグラフである。
・  タグの指定          例）  「db」、「カテゴリ」、「text（）」
・  要素間の階層関係    例）  「／」、「／／」
・  データ比較          例）  「＝」
・  出力タグの指定      例）  「＜カテゴリ＞」
【００５３】
図１３中、選択エリアＡの出力に対応する部分が「＜カテゴリ＞」であり、選択エリアＢの出力に対応する部分が「＜マイカテゴリ＞」である。「＜カテゴリ＞」のテキストを出力しているのが「text（）」であり、その親タグが「カテゴリ」である、といったようにクエリロジックを抽出する。このような処理は、クエリロジック抽出部１７で行なう。
【００５４】
なお、図１３の左のグラフは、図５に示したクエリを全て表現しているわけではない。選択エリアＡだけに関連する部分グラフをクエリロジックとして抽出している。破線で囲まれた部分は、特に出力「＜カテゴリ＞」を導出するパスである（導出ロジック）。図１３の右のグラフも同様に、選択エリアＢだけに関連する部分をクエリロジックとして抽出している。
【００５５】
ステップＳ６では、ソースクエリのクエリロジックの写像を生成する（クエリロジック写像部１６）。具体的には、２つのソースクエリの関連する部分（クエリロジック間）の最適な対応関係を生成する。なお、対応関係は複数生成されることもある。クエリロジック写像部１６は、クエリロジックを構成する“構造上の類似度”および“データ上の一致度”に関する評価関数を設定し、構造化文書ＤＢ２１にアクセスして、それを評価し、評価した結果より最良の対応関係を選択する。
【００５６】
具体的には、図１３の左のクエリロジックと右のクエリロジックを比較する。特に左の導出ロジックと右のクエリロジックを比較すると、
＜db（）／／カテゴリ／text（），  db（）／／マイカテゴリ／text（）＞
＜＜カテゴリ＞，  ＜マイカテゴリ＞＞
＜カテゴリ，  マイカテゴリ＞
という関係が得られる。これは矛盾の無い対応関係である。
【００５７】
ステップＳ７では、ステップＳ６で生成された写像（最良の対応関係）をもとにソースクエリに対して変換を施し、新たなクエリを生成する（クエリロジック変換部１８）。
【００５８】
ここで、ステップＳ６で生成したクエリロジックの写像を使って図５のクエリを変換した結果のクエリを図１４に示す。図１４に示すクエリは、構造化文書ＤＢ２１の「マイカテゴリ」と「年」という２つの軸で「特許」を分類集計するという検索要求を表している。
・  For $c in db（）／／マイカテゴリ／／text（）
構造化文書ＤＢ２１中の任意の階層にある「マイカテゴリ」のテキストについて
変数$cにセットしてループをまわす。
・  For $y in db（）／／年／／text（）
構造化文書DB中の任意の階層にある「年」のテキストについて、変数$yにセッ
トしてループをまわす。
・  let $z :＝ count（db（）／／特許［年 ＝ $y and カテゴリ ＝ $c］）
構造化文書DB中の任意の階層にある「特許」について、「特許」の直下の「年」
が変数$yと同じ、かつ「特許」の直下の「カテゴリ」が変数$cと同じものを選択
し、その件数をカウントして、変数$zにセットする。
・  return ＜レコード＞…．＜／レコード＞
「レコード」要素として出力する。「マイカテゴリ」、「年」、「件数」という
並びで子要素を配置し、それぞれに対応する変数値をセットする。
【００５９】
図１４に示すクエリは、図５に示すクエリときわめて類似した構文に見えるが、
・  カテゴリ  →  マイカテゴリ
に変換されている。この対応関係を＜カテゴリ，マイカテゴリ＞と表記する。
【００６０】
図１４におけるクエリを見比べると、
・  ＜db（）／／カテゴリ／text（），db（）／／マイカテゴリ／text（）＞
・  ＜＜カテゴリ＞，＜マイカテゴリ＞＞
というように、先の対応関係と矛盾の無い対応関係になっていることがわかる。すなわち、図１２でのユーザ操作により、「ＸＭＬ」、「ＳＧＭＬ」、…、「ＲＤＢ」に対応する「カテゴリ」を「ＸＭＬ」、「ＳＧＭＬ」に対応する「マイカテゴリ」で置き換えたい、というユーザ意図を推測していることになる。
【００６１】
ステップＳ８では、ステップＳ５〜Ｓ７において変換されたソースクエリを実行し、実行結果を表示する。ここに、検索手段の機能および結果提示手段の機能が実行される。図１５は、図１２の操作の結果、新たな画面に表示される実行結果である。前述した図７および図９の構造化文書データとは異なる構造化文書データＺが生成されていることがわかる。
【００６２】
すなわち、本実施の形態においては、図１６に示すように、まず、２つのソースクエリを選択させる。その後、選択された２つのソースクエリを用いて構造化文書ＤＢ２１に対する検索処理をそれぞれ実行した検索結果を提示し、２つのソースクエリを用いた各検索結果の所定の構造部分の内、一方の検索結果の所定の構造部分を他方の検索結果の所定の構造部分に対してドラッグ＆ドロップ操作された場合に、２つのソースクエリを用いた各検索結果の所定の構造部分を対応付けることにより、新たなクエリであるターゲットクエリおよびターゲットクエリを用いた検索結果を生成する。つまり、本実施の形態においては、ユーザとインタラクションを行いながら新たなクエリの生成を行うことで、構造化文書の検索支援を行なうことになる。
【００６３】
このように本実施の形態によれば、新たなクエリの生成の際に事前に詳細で膨大な合成ルールの準備は不要であり、２つの検索結果の所定の構造部分をそれぞれ選択して対応付ける簡単な操作を繰り返すことで複雑な検索式を生成することができる。
【００６４】
また、２つの検索結果の所定の構造部分をそれぞれ選択して対応付ける操作は、ドラッグ＆ドロップなどの直感的な操作で良く、簡単な操作で複雑な検索式を生成することができる。
【００６５】
さらに、ユーザは、構文に関する情報やデータ構造（スキーマ）に関する情報などの基礎知識は不要である。
【００６６】
なお、本実施の形態においては、クエリＤＢ２０に登録されている複数のクエリの一覧（初期クエリ集合）を表示部１０７に表示させることによりユーザに提示し、それらの中から入力部１０８を介してユーザにソースクエリを選択させ（クエリ入力選択部１１）、ソースクエリおよびターゲットクエリの実行結果を表示部１０７に表示するようにしたが、これに限るものではなく、図１７に示すように、クエリＤＢ２０に登録されている複数のクエリの実行結果を表示部１０７に一覧表示するようにして、この一覧表示からソースクエリおよびターゲットクエリをユーザに選択させるようにしても良い。
【００６７】
［第２の実施の形態］
次に、本発明の第２の実施の形態を図１８ないし図２６に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００６８】
本実施の形態は、クエリロジック写像部において複数のマッチング候補が生成される場合において、一のマッチング候補を選択するようにしたものである。
【００６９】
図１８は、本発明の第２の実施の形態にかかるクエリの一例を示す模式図である。図１８に示すクエリは、構造化文書ＤＢ２１の「月」を一覧にするという検索要求を表している。なお、distinct-valuesは、指定された条件に合致するテキスト集合を入力としてユニークなテキスト集合を生成するという関数である。
【００７０】
図１９は、表示された２つのクエリの実行結果に対するユーザ操作例を示す模式図である。図１９においては、網掛けで示された領域が、マウスなどの入力部１０８で選択されていることを示している。より詳細には、右サブ画面の図１５（第１の実施の形態参照）のクエリの実行結果Ｚの「１９９８」、「１９９９」、「２０００」といったカラムをマウスなどの入力部１０８で選択する（グラブする）。これを選択エリアＣとする。その後、入力部１０８であるキーボードのＣＴＬキーなどで押しながら左サブ画面のクエリの実行結果Ｗの「１」、「２」、…、「１２」のカラムをマウスなどの入力部１０８で選択する。これを選択エリアＤとする。なお、左サブ画面のクエリの実行結果Ｗは、図４に示した構造化文書ＤＢ２１に対して図１８のクエリを実行し、表示変換して出力したものである。その後、マウスなどの入力部１０８で選択エリアＣを再選択し、マウスボタンを押しながら、選択エリアＤへ移動する（ドラッグする）。以上の操作を行なうことで、ソースクエリの実行結果の部分が選択され、さらに操作されていると判断される（図１０のステップＳ４のＹｅｓ）。
【００７１】
図２０は、図１７の選択エリアＣおよび選択エリアＤに対応するクエリロジックを示している。図２０中、選択エリアＣの出力に対応する部分が「＜年＞」であり、選択エリアＤの出力に対応する部分が「＜月＞」である。「＜年＞」のテキストを出力しているのが「text（）」であり、その親タグが「年」である、といったようにクエリロジックを抽出する。このような処理は、クエリロジック抽出部１７で行なう（図１０のステップＳ５）。
【００７２】
なお、図２０の左のグラフは、図１４のクエリを全て表現しているわけではない。選択エリアＣだけに関連する部分グラフをクエリロジックとして抽出している。破線で囲まれた部分は、特に出力「＜カテゴリ＞」を導出するパスである（導出ロジック）。図２０の右のグラフも同様に、選択エリアＤだけに関連する部分をクエリロジックとして抽出している。
【００７３】
ここで、図２０の左のクエリロジックと右のクエリロジックを比較する。特に左の導出グラフと右のクエリロジックを比較すると、
＜db（）／／年／text（），  db（）／／月／text（）＞
＜＜年＞，＜月＞＞
＜db（）／／特許／年，  db（）／／特許／月＞
という関係が得られる。これは矛盾の無い対応関係である。
【００７４】
次に、クエリロジック写像部１６にてソースクエリのクエリロジックの写像を生成する（図１０のステップＳ６）。
【００７５】
ここで、図２１はクエリロジック写像部１６の動作を示すフローチャートである。図２１に示すように、クエリロジック写像部１６は、クエリロジックを構成するノードに着目しマッチング候補を生成し（ステップＳ１１）、各マッチング候補に対して構造上の類似度を計算するとともに（ステップＳ１２）、各マッチング候補に対してデータ比較メタノードがあればデータ上の一致度を計算する（ステップＳ１３）。最後に、ステップＳ１２で計算した構造上の類似度とステップＳ１３で計算したデータ上の一致度との加重平均をとり最高のスコアを持つマッチング候補を選択する（ステップＳ１４）。なお、構造上の類似度は、以下の意味を持つものである。
・  要素は、各対応関係に対する類似度
・  整合性は、各要素の対応関係の整合性
・  合計は、要素と整合性のスコアを足したもの
データ上の一致度は、以下の意味を持つものである。
・  「＝」などデータ比較の成功度
また、合計スコアは、これらの加重平均をとるものであり、整合性のウエイトを“４”とする。
【００７６】
ここで、具体例を挙げて説明する。ここでは、図２０の左のクエリロジックと右のクエリロジックを比較する。特に左の導出グラフと右のクエリロジックを比較すると、３つのマッチング候補が生成される。図２２は、マッチング候補を例示的に示す説明図である。図２２は、各マッチング候補（Ｍ１、Ｍ２、Ｍ３、・・・）の構造上の類似度、データ上の一致度、構造上の類似度とデータ上の一致度との合計を示したものである。
【００７７】
マッチング候補Ｍ１は、
・  ＜db（）／／年／ｔext（），  db（）／／月／text（）＞
各クエリロジックのfor節での対応
・  ＜＜年＞，  ＜月＞＞
各クエリロジックのreturn節、出力部分での対応
・  ＜db（）／／特許／年，  db（）／／特許／年＞
左のクエリロジックにはあるが、右のクエリロジックには無いので、そのまま使
う。
となっている。
【００７８】
マッチング候補Ｍ２は、
・  ＜db（）／／年／text（），  db（）／／月／text（）＞
各クエリロジックのfor節での対応
・  ＜＜年＞,  ＜年＞＞
左のクエリロジックをそのまま使う。
・  ＜db（）／／特許／年，  db（）／／特許／月＞
上記の対応関係から、<年,月>が対応しているので、その置き換えで生成する。
となっている。
【００７９】
マッチング候補Ｍ３は、
・  ＜db（）／／年／text（），  db（）／／月／text（）＞
各クエリロジックのfor節での対応
・  ＜＜年＞，  ＜月＞＞
上記の対応関係から、<年,月>が対応していることを抽出する。
・  ＜db（）／／特許／年，      db（）／／特許／月＞
上記の対応関係から、＜年，月＞が対応しているので、その置き換えで生成する。
となっている。
【００８０】
以上のようなマッチング候補の構造上の類似度、データ上の一致度、構造上の類似度とデータ上の一致度との合計について説明する。
【００８１】
マッチング候補Ｍ１は、
・  ＜db（）／／年／text（），  db（）／／月／text（）＞
２／３の要素が対応しているので、０．７（小数点第２位を四捨五入）
・  ＜＜年＞，  ＜月＞＞
全く対応していないので、０
・  ＜db（）／／特許／年，  db（）／／特許／年＞
２／３の要素が対応しているので、０．７（小数点第２位を四捨五入）
・  ＜年，月＞という対応関係で、２／３の構造が対応しているので、０．７で、ウ
エイトを４とするので、０．７×４
・  Db（）／／年／text（）＝db（）／／月／text（）というデータ上の一致度は、
構造化文書ＤＢにアクセスすることで、データ比較の成功度は０なので、０
となり、構造上の類似度、データ上の一致度、構造上の類似度とデータ上の一致度との合計が算出される。結果として、マッチング候補Ｍ３が最高のスコア６．４を持つ。したがって、マッチング候補Ｍ３を最高のスコアを持つマッチング候補として選択する。
【００８２】
図２３のクエリは、マッチング候補Ｍ３をクエリロジック変換部１８にて変換した結果である。図２３に示すクエリは、構造化文書ＤＢ２１の「マイカテゴリ」と「月」という２つの軸で「特許」を分類集計するという検索要求を表している。「月」は、distinct-valuesを使って、指定された条件に合致するテキスト集合に対してユニークなテキスト集合を生成している。
【００８３】
図２４は、図４に示した構造化文書ＤＢ２１に対して図２３のクエリをクエリ実行部１４で実行した結果を示したものである。
【００８４】
図２５は、図２４で結果として生成された構造化文書データをＸＳＬ（XML Stylesheet Language）という表示変換ルールを通して出力した様子を示す模式図である。図１７に表示されている各構造化文書データとは異なる構造化文書データＶが生成されていることがわかる。
【００８５】
なお、本実施の形態においては、複数のマッチング候補から一のマッチング候補を自動的に選択するようにしたが、これに限るものではなく、クエリロジック写像部１６は、複数のマッチング候補がある場合には、図２６に示すようにユーザに複数のマッチング候補を提示し、ユーザの選択指示を受け付けるようにしても良い。
【００８６】
［第３の実施の形態］
次に、本発明の第３の実施の形態を図２７ないし図３０に基づいて説明する。なお、前述した第１の実施の形態または第２の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００８７】
図２７は、クエリの一例を示す模式図である。これは、構造化文書ＤＢ２１の「文書」を一覧にするという検索要求を表している。
【００８８】
図２８は、表示された２つのクエリの実行結果に対するユーザ操作例を示す模式図である。図２８の左サブ画面のクエリの実行結果Ｕは、図４に示した構造化文書ＤＢ２１に対して図２７のクエリをクエリ実行部１４で実行し、表示変換して出力したものである。図２８においては、網掛けで示された領域が、マウスなどの入力部１０８で選択されていることを示している。より詳細には、右サブ画面の図２５（第２の実施の形態参照）のクエリの実行結果Ｖの「５」、「１」、…、「２」、「２」などのカラムをマウスなどで選択する（グラブする）。これを選択エリアＥとする。その後、入力部１０８であるキーボードのＣＴＬキーなどで押しながら左サブ画面のクエリの実行結果Ｕの「文書 ２００５／１２ ＸＭＬ」、「文書 ２００３／１ ＳＧＭＬ ＸＭＬ」、…、などのカラムをマウスなどの入力部１０８で選択する。これを選択エリアＦとする。その後、マウスなどの入力部１０８で選択エリアＥを再選択し、マウスボタンを押しながら、選択エリアＦへ移動する（ドラッグする）。以上の操作を行なうことで、ソースクエリの実行結果の部分が選択され、さらに操作されていると判断される（図１０のステップＳ４のＹｅｓ）。
【００８９】
図２９は、クエリ生成部１５によってステップＳ４の操作内容からユーザ意図を推定し、生成された新たなクエリを示すものである。これは、構造化文書ＤＢ２１の「マイカテゴリ」と「月」という２つの軸で「文書」を分類集計するという検索要求を表している。先ほどの「特許」は「文書」に、「カテゴリ」は「ｋｅｙｗｏｒｄ」に、「月」は「ｍｏｎｔｈ」に写像、変換されていることがわかる。
【００９０】
図３０は、図２８の操作の結果、新たな画面に表示される実行結果である。前述した図２８の構造化文書データとは異なる構造化文書データＴが生成されていることがわかる。
【図面の簡単な説明】
【００９１】
【図１】本発明の第１の実施の形態にかかる構造化文書検索支援装置のモジュール構成図である。
【図２】構造化文書検索支援装置の概略構成を示すブロック図である。
【図３】構造化文書ＤＢに格納される構造化文書データの一例を示す模式図である。
【図４】図３に示した構造化文書データの構造化文書ＤＢでの格納イメージを示す模式図である。
【図５】クエリの一例を示す模式図である。
【図６】図４に示した構造化文書ＤＢに対して図５のクエリをクエリ実行部で実行した結果を示す模式図である。
【図７】図６で結果として生成された構造化文書データをＸＳＬという表示変換ルールを通して出力した様子を示す模式図である。
【図８】図５とは別のクエリの一例を示す模式図である。
【図９】図４に示した構造化文書ＤＢに対して図８のクエリを実行して表示変換して出力した様子を示す模式図である。
【図１０】構造化文書検索支援処理の流れを示すフローチャートである。
【図１１】表示部に表示されているクエリ実行結果の例を示す正面図である。
【図１２】表示された２つのクエリの実行結果に対するユーザ操作例を示す模式図である。
【図１３】図１２の選択エリアＡおよび選択エリアＢに対応するクエリロジックを示す模式図である。
【図１４】クエリロジックの写像を使って図５のクエリを変換した結果のクエリを示す模式図である。
【図１５】新たな画面に表示される実行結果を示す模式図である。
【図１６】新たなクエリの生成の流れを簡単に示す模式図である。
【図１７】クエリＤＢに登録されている複数のクエリの実行結果を表示部に一覧表示した例を示す正面図である。
【図１８】本発明の第２の実施の形態にかかるクエリの一例を示す模式図である。
【図１９】表示された２つのクエリの実行結果に対するユーザ操作例を示す模式図である。
【図２０】図１７の選択エリアＣおよび選択エリアＤに対応するクエリロジックを示す模式図である。
【図２１】クエリロジック写像部の動作を示すフローチャートである。
【図２２】マッチング候補を例示的に示す説明図である。
【図２３】マッチング候補Ｍ３をクエリロジック変換部にて変換した結果のクエリを示す模式図である。
【図２４】図４に示した構造化文書ＤＢに対して図２３のクエリをクエリ実行部で実行した結果を示す模式図である。
【図２５】図２４で結果として生成された構造化文書データをＸＳＬという表示変換ルールを通して出力した様子を示す模式図である。
【図２６】複数のマッチング候補を提示する例を示す模式図である。
【図２７】本発明の第３の実施の形態にかかるクエリの一例を示す模式図である。
【図２８】表示された２つのクエリの実行結果に対するユーザ操作例を示す模式図である。
【図２９】生成された新たなクエリを示す模式図である。
【図３０】新たな画面に表示される実行結果を示す模式図である。
【符号の説明】
【００９２】
１      構造化文書検索支援装置
１６      クエリロジック写像手段
１７      クエリロジック抽出手段
１８      クエリ生成手段
２１      構造化文書データベース
１０４    記憶部
【図１】
2008083992.tif 000003
【図２】
2008083992.tif 000004
【図３】
2008083992.tif 000005
【図４】
2008083992.tif 000006
【図５】
2008083992.tif 000007
【図６】
2008083992.tif 000008
【図７】
2008083992.tif 000009
【図８】
2008083992.tif 000010
【図９】
2008083992.tif 000011
【図１０】
2008083992.tif 000012
【図１１】
2008083992.tif 000013
【図１２】
2008083992.tif 000014
【図１３】
2008083992.tif 000015
【図１４】
2008083992.tif 000016
【図１５】
2008083992.tif 000017
【図１６】
2008083992.tif 000018
【図１７】
2008083992.tif 000019
【図１８】
2008083992.tif 000020
【図１９】
2008083992.tif 000021
【図２０】
2008083992.tif 000022
【図２１】
2008083992.tif 000023
【図２２】
2008083992.tif 000024
【図２３】
2008083992.tif 000025
【図２４】
2008083992.tif 000026
【図２５】
2008083992.tif 000027
【図２６】
2008083992.tif 000028
【図２７】
2008083992.tif 000029
【図２８】
2008083992.tif 000030
【図２９】
2008083992.tif 000031
【図３０】
2008083992.tif 000032