(57)【要約】【課題】可視空間において指定された点に対応する、適切なクエリを取得する。【解決手段】クエリ処理システムは、データ集合を検索するための少なくとも一つの文字列を含む複数のクエリを受け付ける入力部と、前記受け付けた複数のクエリを保持するクエリ蓄積部と、前記複数のクエリ間の類似度に従って、前記複数のクエリを可視空間に表示する表示制御部と、前記入力部が、前記可視空間において指定された座標を受け付けた場合、前記指定された座標に対応する第１のクエリを生成するクエリ生成部と、を有し、前記クエリ生成部は、前記指定された座標から前記表示された複数のクエリまでの距離に従って、前記可視空間から複数のクエリを抽出し、前記抽出された複数のクエリを組み合わせることによって、前記第１のクエリを生成する。【選択図】図１
2015001770.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ、及び、メモリを有するクエリ処理システムであって、
前記クエリ処理システムは、
データ集合を検索するための少なくとも一つの文字列を含む複数のクエリを受け付ける入力部と、
前記受け付けた複数のクエリを保持するクエリ蓄積部と、
前記複数のクエリ間の類似度に従って、前記複数のクエリを可視空間に表示する表示制御部と、
前記入力部が、前記可視空間において指定された座標を受け付けた場合、前記指定された座標に対応する第１のクエリを生成するクエリ生成部と、を有し、
前記クエリ生成部は、
前記指定された座標から前記表示された複数のクエリまでの距離に従って、前記可視空間から複数のクエリを抽出し、
前記抽出された複数のクエリを組み合わせることによって、前記第１のクエリを生成することを特徴とするクエリ処理システム。
【請求項２】
請求項１に記載のクエリ処理システムであって、
前記クエリ生成部は、
前記第１のクエリに含まれる複数の文字列が、前記表示される複数のクエリに含まれる数に従って、前記第１のクエリから少なくとも一つの文字列を抽出し、
前記抽出された文字列を含む第２のクエリを生成することを特徴とするクエリ処理システム。
【請求項３】
請求項２に記載のクエリ処理システムであって、
前記クエリ処理システムは、前記複数のクエリを用いてデータ集合を検索する検索部を有し、
前記クエリ生成部は、
前記検索部が前記第２のクエリを用いて前記データ集合を検索した検索結果を取得し、
前記取得された検索結果に含まれる文字列に基づいて、第３のクエリを生成することを特徴とするクエリ処理システム。
【請求項４】
請求項１から３のいずれかに記載のクエリ処理システムであって、
前記クエリ生成部は、
周囲に表示されるクエリが最も少ない、前記可視空間における座標を特定し、
前記特定された座標に対応する第１のクエリを生成することを特徴とするクエリ処理システム。
【請求項５】
請求項４に記載のクエリ処理システムであって、
前記クエリ生成部は、
前記入力部が受け付けた複数のクエリの各々の重要度を取得し、
前記指定された座標からの距離と、前記取得された複数のクエリの各々の重要度とに従って、前記可視空間から複数のクエリを抽出することを特徴とするクエリ処理システム。
【請求項６】
請求項５に記載のクエリ処理システムであって、
前記クエリ処理システムは、前記複数のクエリを用いてデータ集合を検索する検索部を有し、
前記クエリ生成部は、
前記複数のクエリに含まれる文字列の各々を用いて前記検索部が検索した結果、複数の文字列の各々によって得られたデータ集合の件数を取得し、
前記複数の文字列の各々によって得られたデータ集合の件数に基づいて、前記複数のクエリ間の類似度を求め、
前記表示制御部は、前記求められた複数のクエリ間の類似度に従って前記複数のクエリを可視空間に表示することを特徴とするクエリ処理システム。
【請求項７】
請求項６に記載のクエリ処理システムであって、
前記クエリ生成部は、前記複数のクエリのうちの二つのクエリが包含関係を有するか否かを特定し、
前記表示制御部は、前記特定された包含関係を有する二つのクエリと、当該包含関係とを、前記可視空間に表示することを特徴とするクエリ処理システム。
【請求項８】
請求項７に記載のクエリ処理システムであって、
前記表示制御部は、
前記複数のクエリの各々を用いて前記検索部が検索した結果、前記複数のクエリの各々によって得られたデータ集合の件数を取得し、
前記得られたデータ集合の件数が多いクエリほど前記可視空間において大きく表示されるように、前記複数のクエリを前記可視空間に表示することを特徴とするクエリ処理システム。
【請求項９】
プロセッサ、及び、メモリを有するクエリ処理システムによるクエリ処理方法であって、
前記クエリ処理システムは、
データ集合を検索するための少なくとも一つの文字列を含む複数のクエリを受け付ける入力部と、
前記受け付けた複数のクエリを保持するクエリ蓄積部と、を有し、
前記方法は、
前記プロセッサが、前記複数のクエリ間の類似度に従って、前記複数のクエリを可視空間に表示する表示制御手順と、
前記入力部が、前記可視空間において指定された座標を受け付けた場合、前記プロセッサが、前記指定された座標に対応する第１のクエリを生成するクエリ生成手順と、を含み、
前記クエリ生成手順は、
前記プロセッサが、前記指定された座標から前記表示された複数のクエリまでの距離に従って、前記可視空間から複数のクエリを抽出する手順と、
前記プロセッサが、前記抽出された複数のクエリを組み合わせることによって、前記第１のクエリを生成する手順と、を含むことを特徴とするクエリ処理方法。
【請求項１０】
請求項９に記載のクエリ処理方法であって、
前記クエリ生成手順は、
前記プロセッサが、前記第１のクエリに含まれる複数の文字列が、前記表示される複数のクエリに含まれる数に従って、前記第１のクエリから少なくとも一つの文字列を抽出する手順と、
前記プロセッサが、前記抽出された文字列を含む第２のクエリを生成する手順と、を含むことを特徴とするクエリ処理方法。
【請求項１１】
請求項１０に記載のクエリ処理方法であって、
前記方法は、前記複数のクエリを用いてデータ集合を検索する検索手順を含み、
前記クエリ生成手順は、
前記プロセッサが、前記検索手順が前記第２のクエリを用いて前記データ集合を検索した検索結果を取得する手順と、
前記プロセッサが、前記取得された検索結果に含まれる文字列に基づいて、第３のクエリを生成する手順と、を含むことを特徴とするクエリ処理方法。
【請求項１２】
請求項９から１１のいずれかに記載のクエリ処理方法であって、
前記クエリ生成手順は、
前記プロセッサが、周囲に表示されるクエリが最も少ない、前記可視空間における座標を特定する手順と、
前記プロセッサが、前記特定された座標に対応する第１のクエリを生成する手順と、を含むことを特徴とするクエリ処理方法。
【請求項１３】
請求項１２に記載のクエリ処理方法であって、
前記クエリ生成手順は、
前記プロセッサが、前記入力部が受け付けた複数のクエリの各々の重要度を取得する手順と、
前記プロセッサが、前記指定された座標からの距離と、前記取得された複数のクエリの各々の重要度とに従って、前記可視空間から複数のクエリを抽出する手順と、を含むことを特徴とするクエリ処理方法。
【請求項１４】
請求項１３に記載のクエリ処理方法であって、
前記方法は、前記複数のクエリを用いてデータ集合を検索する検索手順を含み、
前記クエリ生成手順は、
前記プロセッサが、前記複数のクエリに含まれる文字列の各々を用いて前記検索手順が検索した結果、複数の文字列の各々によって得られたデータ集合の件数を取得する手順と、
前記プロセッサが、前記複数の文字列の各々によって得られたデータ集合の件数に基づいて、前記複数のクエリ間の類似度を求める手順と、を含み、
前記表示制御手順は、前記求められた複数のクエリ間の類似度に従って前記複数のクエリを可視空間に表示する手順を含むことを特徴とするクエリ処理方法。
【請求項１５】
請求項１４に記載のクエリ処理方法であって、
前記クエリ生成手順は、前記複数のクエリのうちの二つのクエリが包含関係を有するか否かを特定する手順を含み、
前記表示制御手順は、前記特定された包含関係を有する二つのクエリと、当該包含関係とを、前記可視空間に表示する手順を含むことを特徴とするクエリ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クエリ処理システムに関する。
【背景技術】
【０００２】
特許公報又は論文の調査など、所望の文書を集めるため、ユーザは、検索システムにクエリ（検索式）を入力する。検索システムに入力されるクエリは、所望の文書を網羅的に集めるため複数回修正されるため、検索システムには、最終的に数十種類のクエリが入力される場合がある。加えて、入力されるクエリの各々が複雑な論理式であることも多い。
【０００３】
このような状況で、ユーザは、検索対象のデータ空間で迷うことがある。「データ空間で迷う」とは、以前に入力されたクエリと似たクエリを入力してしまったり、次にどのようなクエリを入力すべきかわからなくなったり、検索対象を網羅的に探せているのかわからなくなったりすることである。
【０００４】
これに対して、ユーザが入力したクエリ系列を、検索のための地図として可視化することによって、上記の問題の一部を解決する技術が提案されている。ここで、クエリ系列とは、入力された順に複数のクエリを含む集合である。
【０００５】
従来において、一つのキーワードからなるクエリを複数含むクエリ系列を、二次元空間上に配置することによって、クエリ系列を可視化する技術が提案されている（例えば、特許文献１参照）。特許文献１では、「連関性」が高いキーワード対のクエリを、二次元空間上の近い距離に配置し、「連関性」が低いキーワード対のクエリを、二次元空間上の遠い距離に配置する。特許文献１によって生成された二次元空間は、複数のキーワードに関連するキーワードを提示する手段として用いられる。
【０００６】
さらに、特許文献１は、二次元空間に配置したクエリ集合中から、複数のクエリを順に選び（クエリ系列の選択）、それらに関連する別のクエリを見つける技術を提案している。例えば、特許文献１は、「マイケル・ジョーダン」、「運動靴」及び「有名ブランド」という三つのクエリのクエリ系列が選択された場合、二次元空間におけるそれら三つのクエリの位置を三角形として同定する。そして、三角形の重心の一番近くに位置し、かつ、前述の三つのクエリとは異なるクエリを、三つのクエリにもっとも関連するクエリとしてユーザに提示する。
【０００７】
つまり、特許文献１に記載された技術は、二次元空間上のある点のクエリが知りたい場合、ある点の一番近くに位置し、かつ、ユーザによって既に入力されたクエリを候補として出力する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２２６２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１の技術を用いてクエリ系列を可視化しただけでは、ユーザは、自分が入力した実績しか確認できず、次にどのようなクエリを入力すればよいのかという指針までわからない。
【００１０】
また、可視化された二次元空間において、周囲にクエリがない点が指定された場合、特許文献１の技術は、指定された点に一番近いクエリではあるが、指定された点からの距離が非常に遠いクエリを出力する可能性がある。このため、特許文献１の技術は、指定された点に対応するクエリを適切に出力できない。
【００１１】
本発明の目的は、ユーザへの可視化のためにクエリ集合が配置された空間において、近傍に入力済みのクエリが存在しないような点が指定された場合、指定された点に対応するクエリを適切に出力する方法の提供である。そして、本発明の目的は、これによって、ユーザに、効率よく、かつ、漏れなくデータを検索させる方法の提供である。
【課題を解決するための手段】
【００１２】
本発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサ、及び、メモリを有するクエリ処理システムであって、前記クエリ処理システムは、少なくとも一つのデータ集合を検索するための少なくとも一つの文字列を含む複数のクエリを受け付ける入力部と、前記受け付けた複数のクエリを保持するクエリ蓄積部と、前記複数のクエリ間の類似度に従って、前記複数のクエリを可視空間に表示する表示制御部と、前記入力部が、前記可視空間において指定された座標を受け付けた場合、前記指定された座標に対応する第１のクエリを生成するクエリ生成部と、を有し、前記クエリ生成部は、前記指定された座標から前記表示された複数のクエリまでの距離に従って、前記可視空間から複数のクエリを抽出し、前記抽出された複数のクエリを組み合わせることによって、前記第１のクエリを生成する。
【発明の効果】
【００１３】
本発明の一実施形態によると、可視空間において指定された点に対応する、適切なクエリを提供することによって、効率よく、かつ、漏れなくデータを検索することができる。
【００１４】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１５】
【図１】本実施例のクエリ処理システムの構成を示すブロック図である。
【図２】本実施例の表示制御部により生成されるクエリマップの一例を示す説明図である。
【図３】本実施例のクエリＡとクエリＢとの包含関係を示す説明図である。
【図４】本実施例のクエリＡとクエリＢとの類似関係を示す説明図である。
【図５】本実施例のクエリ系列を可視化する処理を示すフローチャートである。
【図６】本実施例の包含関係および類似度を求める処理を示すフローチャートである。
【図７】本実施例の積和標準形の論理式の簡略化処理を示すフローチャートである。
【図８】本実施例のユーザによって点が指定されたクエリマップを示す説明図である。
【図９】本実施例の複数のクエリの例を示す説明図である。
【図１０】本実施例の指定された点に対応するクエリを生成する処理を示すフローチャートである。
【図１１】本実施例のクエリマップにおけるクエリがない領域を抽出する処理を示すフローチャートである。
【発明を実施するための形態】
【００１６】
本実施例は、クエリ間の類似度に基づいてクエリ集合が配置される空間において任意の点が指定された場合、指定された点に対応するクエリを生成する方法および装置に関する。以下、図面を用いて実施例を説明する。
【００１７】
図１は、本実施例のクエリ処理システムの構成を示すブロック図である。
【００１８】
本実施例のクエリ処理システムは、クライアント１０、ネットワーク１１及び検索サーバ１２を備える。
【００１９】
クライアント１０は、ユーザが操作する端末であり、文書を検索するためのクエリをユーザが入力する装置である。クライアント１０は、ＣＰＵ１０１、メモリ１０２、キーボード・マウス１０３、ディスプレイ１０４、クエリ生成部１０５、表示制御部１０６、データ通信部１０７及びクエリ蓄積部１０８を有する。なお、クエリ生成部１０５は、検索サーバ１２に配置されてもよい。
【００２０】
ＣＰＵ１０１は、演算装置であり、クエリ生成部１０５及び表示制御部１０６を構成する各種プログラムを実行することによってクライアント１０の機能を実装する。ＣＰＵ１０１は、少なくとも一つのプロセッサによって構成されていれば、いかなる構成のいかなるプロセッサであってもよい。
【００２１】
メモリ１０２は、ＣＰＵ１０１が実行するプログラム、及びプログラムを実行するために必要なデータを一時的に記憶する。図１に示すクエリ生成部１０５及び表示制御部１０６を実装するためのプログラムは、メモリ１０２に記憶される。
【００２２】
なお、クエリ生成部１０５及び表示制御部１０６は、以下に示す説明においてプログラムによって実装されるが、集積回路等の物理的な装置によって実装されてもよい。また、クエリ生成部１０５及び表示制御部１０６は、一つのプログラム、又は、三つ以上のプログラムによって実装されてもよい。
【００２３】
キーボード・マウス１０３は、ユーザからの入力を受け付けるための入力装置である。キーボード・マウス１０３は、入力装置であればいかなる装置でもよく、例えばタブレット端末でもよい。
【００２４】
ディスプレイ１０４は、クライアント１０又は検索サーバ１２による処理の結果をユーザに出力するための装置である。ディスプレイ１０４は、出力装置であればいかなる装置でもよい。ディスプレイ１０４は、クエリ系列を可視化するための後述するクエリマップを、表示制御部１０６の指示によって表示する。
【００２５】
クエリ生成部１０５は、クエリマップ上の任意の点からクエリを生成するプログラムと、クエリマップ上で近傍にクエリが存在しない点に該当するクエリを検索するプログラムとによって実装される機能部である。クエリ生成部１０５のプログラムは、必要に応じて検索サーバ１２と通信し、検索サーバ１２からクエリを生成するために必要なデータを収集する。
【００２６】
表示制御部１０６は、クエリマップを表示するプログラムによって実装される機能部である。クエリ生成部１０５からの指示に従って、クエリマップをディスプレイ１０４に表示する。
【００２７】
データ通信部１０７は、クライアント１０がネットワーク１１を介して検索サーバ１２とデータ通信をするためのインターフェースであり、例えば、ＴＣＰ／ＩＰプロトコルによって通信可能なＬＡＮカードによって構成される。
【００２８】
クエリ蓄積部１０８は、キーボード・マウス１０３を介して入力されたクエリを、保持する記憶部である。クエリ蓄積部１０８は、記憶装置によって構成され、メモリ１０２によって実装されてもよいし、メモリ１０２とは異なる記憶装置によって実装されてもよい。
【００２９】
ネットワーク１１は、ＬＡＮ、ＷＡＮ、又は、インターネット等、いかなるネットワークでもよい。
【００３０】
検索サーバ１２は、検索される文書を保持する計算機であり、クライアント１０から送信されるクエリに基づいて、文書を検索する。検索サーバ１２は、ＣＰＵ１２１、メモリ１２２、インデックス１２３、検索部１２４及びデータ通信部１２５を備える。
【００３１】
ＣＰＵ１２１は、検索部１２４を構成する各種プログラムを実行することによって検索サーバ１２の機能を実装する。メモリ１２２は、ＣＰＵ１２１が実行するプログラム、及びプログラムを実行するために必要なデータを一時的に記憶する。
【００３２】
インデックス１２３は、クエリによって検索される文書を検索に適したデータ構造で保持する記憶媒体である。インデックス１２３は、例えば、磁気記憶媒体によって構成される。
【００３３】
検索部１２４は、クライアント１０から送られる検索要求を受け付け、インデックス１２３にアクセスし、検索要求に含まれるクエリを用いてインデックス１２３を検索する。そして、検索部１２４は、クライアント１０に検索結果を送信する。
【００３４】
図１に示す検索部１２４は、プログラムによって実装されるが、本実施例の検索部１２４は、集積回路等の物理的な装置によって実装されてもよい。
【００３５】
データ通信部１２５は、検索サーバ１２がネットワーク１１を介してクライアント１０とデータ通信をするためのインターフェースであり、例えば、ＴＣＰ／ＩＰプロトコルによって通信可能なＬＡＮカードによって構成される。
【００３６】
図２は、本実施例の表示制御部１０６により生成されるクエリマップ２０の一例を示す説明図である。
【００３７】
表示制御部１０６は、クエリ蓄積部１０８が保持するクエリと、クエリ生成部１０５による処理の結果とに基づいて、クエリマップ２０をディスプレイ１０４に表示する。クライアント１０に入力されたクエリの各々は、丸によって描かれた複数のノード２１の各々に対応する。
【００３８】
クエリマップ２０は、類似するクエリ対（クエリのペア）を近い場所に表示し、類似しないクエリ対を遠い場所に表示することによって、ユーザがこれまで入力してきたクエリの集合を示す。また、クエリマップ２０は、クエリ対に包含関係がある場合、包含関係をクエリ対のリンク２２によって示す。また、ノード２１に表示される数字は、クエリの入力順を示す。図２に示すノード２１は、数字が小さいほど入力された時期が古いことを示す。
【００３９】
図２に示す複数のノード２１は、中心部にクエリがない空いた空間を示す。これは、空いた空間に該当するクエリを用いて、ユーザが、まだインデックス１２３を検索しきれていないことを示唆する。よって、空いた空間に該当するクエリをユーザに提供できれば、本実施例のクエリ生成システムは、次の検索のための有用な指針をユーザに与えることができる。
【００４０】
図２に示すクエリマップ２０は、二次元空間（平面）によって複数のクエリの類似関係及び包含関係を表示するが、三次元空間（立体）、又は、一次元空間（線）によって複数のクエリの類似関係又は包含関係を示してもよい。以下に示すクエリマップ２０は、二次元空間によってクエリを表示する。
【００４１】
さらに、クエリマップ２０は、過去に入力されたクエリを表示する用途以外に、検索システムによる検索のために用いられてもよい。クエリマップ２０が検索のために用いられる場合、クエリマップ２０は、入力エリア２０１及びボタン２０２を含む。
【００４２】
入力エリア２０１は、ユーザがクエリを入力するための領域である。ボタン２０２は、入力エリア２０１に入力されたクエリを、クライアント１０及び検索サーバ１２に受け付けさせるために、ユーザが操作するボタンである。
【００４３】
このため、本実施例のクエリ処理システムは、後述するクエリを生成する処理、及び、クエリを表示する処理等のクエリマップ２０に関する処理以外にも、入力されたクエリを用いて検索する処理を実行してもよく、さらに、検索結果を示す画面を表示してもよい。本実施例のクエリ処理システムは、これらの検索処理及び検索結果の表示処理を、従来の技術を用いて実行する。
【００４４】
以下に、ユーザによるクエリマップ２０への操作によって、開始される処理を説明する。
【００４５】
ユーザが、入力エリア２０１にクエリを入力し、ボタン２０２をクリックした場合、検索サーバ１２の検索部１２４は、入力されたクエリを用いてインデックス１２３を検索する。さらに、クエリ生成部１０５は、後述する図５に示すフローチャートに従って、入力されたクエリが追加された新たなクエリマップを生成する。そして、表示制御部１０６は、生成されたクエリマップによって、クエリマップ２０を更新する。図５に処理の詳細は後述する。
【００４６】
また、ユーザが、クエリマップ２０における任意の点をキーボード・マウス１０３を用いて指定し、ボタン２０２をクリックした場合、表示制御部１０６は、ユーザが指定した任意の点に対応する座標をクエリ生成部１０５に送る。クエリ生成部１０５は、後述する図１０に示すフローチャートに従って、送られた座標に対応するクエリを生成する。図１０の処理の詳細は後述する。
【００４７】
そして、クエリ生成部１０５は、図５に示す処理によって、生成されたクエリが追加された新たなクエリマップを生成する。そして、表示制御部１０６は、生成されたクエリマップによってクエリマップ２０を更新する。以上により、ユーザは、クエリマップ２０上の任意の点に対応するクエリを知ることができる。
【００４８】
また、ユーザが、入力エリア２０１にクエリを入力せず、かつ、クエリマップ２０に任意の点を指定せずに、ボタン２０２をクリックした場合、クエリ生成部１０５は、図１１に示すフローチャートに従って、周囲にクエリが存在しないクエリマップ２０における点を特定する。図１１の処理の詳細は後述する。
【００４９】
そして、クエリ生成部１０５は、図１０の処理によって特定された点の座標に対応するクエリを生成する。そして、クエリ生成部１０５及び表示制御部１０６は、図５の処理に従って、生成されたクエリを追加された新たなクエリマップを生成し、生成されたクエリマップによってクエリマップ２０を更新する。以上により、ユーザは、次に入力すべきクエリを知ることができる。
【００５０】
表示制御部１０６は、クエリ間の類似度に基づいてクエリが配置されるクエリマップ２０を表示する。また、表示制御部１０６は、クエリ対に包含関係がある場合、包含関係があるクエリ対の間にリンク２２を表示する。以下に、本実施例における包含関係、及び、類似度を説明する。
【００５１】
図３は、本実施例のクエリＡとクエリＢとの包含関係を示す説明図である。
【００５２】
図３は、集合３０１及び集合３０２の関係と、クエリＡ及びクエリＢの間のリンク２２とを示す。集合３０１は、クエリＡを用いて検索部１２４が検索した結果の文書の集合を示す。集合３０２は、クエリＢを用いて検索部１２４が検索した結果の文書の集合を示す。
【００５３】
集合３０１及び集合３０２の間に包含関係がある場合、本実施例において、クエリＡとクエリＢとには包含関係があると記載する。そして、クエリマップ２０は、含むクエリ（クエリＡ）から含まれるクエリ（クエリＢ）に向けた矢印によって、リンク２２を表示する（３０３）。
【００５４】
例えば、クエリＡが「情報∧検索」であり、このクエリＡに一つのキーワード「システム」が追加されたクエリ「情報∧検索∧システム」がクエリＢである場合、クエリＡとクエリＢとの間には包含関係がある。
【００５５】
例えば、あるクエリによる検索結果が多すぎる場合、ユーザは、新たなキーワードをクエリに加えることによって、検索結果を絞り込む。このような絞込みが、包含関係を有するクエリが生成される根拠である。
【００５６】
一方で、あるクエリによる検索結果が少なすぎる場合、ユーザは、不要なキーワードをクエリから除くことによって、検索結果を拡張する。このような拡張が、逆向きの包含関係を有するクエリが生成される根拠である。
【００５７】
このように、クエリ間に包含関係がある場合、包含関係を有する複数のクエリを含むクエリ系列は、検索結果の絞込み又は拡張といった、意図的な検索行為に関連することが多い。このため、本実施例のクエリマップ２０は、包含関係を明らかに表示することにより、ユーザに検索処理の状況を正確に把握させることができる。
【００５８】
図４は、本実施例のクエリＡとクエリＢとの類似関係を示す説明図である。
【００５９】
図４は、集合４０１及び集合４０２の関係と、クエリＡ及びクエリＢの類似度とを示す。集合４０１は、クエリＡを用いて検索部１２４が検索した結果の文書の集合を示す。集合４０２は、クエリＢを用いて検索部１２４が検索した結果の文書の集合を示す。また、集合４０３は、集合４０１と集合４０２との積集合である。図３に示す集合３０１及び集合３０２と異なり、集合４０１と集合４０２との間に包含関係はない。
【００６０】
本実施例の類似度は、集合４０３が集合４０１及び集合４０２の各々において占める割合を示す式４０４によって算出される。このため、クエリＡによる検索結果と、クエリＢによる検索結果との重複が多いほど、クエリＡとクエリＢとの類似度が大きい。なお、クエリＡ及びクエリＢが図３の包含関係にある場合、本実施例のクエリ生成部１０５は、類似度を最大値（１．０）に定める。
【００６１】
本実施例における類似度は、式４０４に示すとおり、クエリＡによる検索結果とクエリＢによる検索結果とが重複する件数の２倍を、クエリＡによる検索結果の件数とクエリＢによる検索結果の件数との和で除算した結果である。
【００６２】
次に、クエリ対の包含関係及び類似関係に基づいて、クエリ系列を本実施例の可視空間上に配置する処理を説明する。
【００６３】
図５は、本実施例のクエリ系列を可視化する処理を示すフローチャートである。
【００６４】
まず、表示制御部１０６が入力エリア２０１から新たなクエリを受け付けた場合、クエリ生成部１０５は、クエリ蓄積部１０８に保持される過去に入力されたクエリと、表示制御部１０６によって受け付けられたクエリとを、クエリ系列Ｑとして取得する（８０１）。
【００６５】
ステップ８０１の後、クエリ生成部１０５は、取得されたクエリ系列Ｑ内の全てのクエリ対に図６に示す処理を実行する。図６に示す処理によって、クエリ生成部１０５は、クエリ系列Ｑに含まれるすべてのクエリ対の包含関係を示す包含関係の集合Ｒと、クエリ系列Ｑに含まれるすべてのクエリ対の類似度を示す類似度の集合Ｓとを求める（８０２）。図６の詳細は後述する。
【００６６】
ステップ８０２の後、クエリ生成部１０５は、包含関係の集合Ｒを簡略化する（８０３）。全ての包含関係がリンク２２として表示された場合、クエリマップ２０の表示が煩雑になる。このため、クエリ生成部１０５は、ステップ８０３によって、ユーザが把握するために最低限必要な包含関係のみを包含関係の集合Ｒが含むように、包含関係の集合Ｒを精査する。
【００６７】
具体的には、クエリ生成部１０５は、他の包含関係から推移律により得られる包含関係を、クエリマップ２０のリンク２２として表示させない。
【００６８】
例えば、包含関係の集合Ｒに含まれる三つのクエリｘ、ｙ、ｚの間に、ｘ⊆ｙ、かつ、ｙ⊆ｚ、かつ、ｘ⊆ｚという包含関係がある場合のステップ８０３における処理を以下に示す。この場合、前者の二つの包含関係（ｘ⊆ｙ、かつ、ｙ⊆ｚ）に推移律が適用された結果、クエリ生成部１０５は、最後の包含関係（ｘ⊆ｚ）を得る。このため、クエリ生成部１０５は、包含関係（ｘ⊆ｚ）を包含関係の集合Ｒから除くことによって、包含関係の集合Ｒを簡略化する。このようにして簡略化した包含関係の集合Ｒは、ハッセ図に相当する。
【００６９】
ステップ８０３の後、クエリ生成部１０５は、クエリ系列Ｑに含まれるクエリの各々のクエリマップ２０における座標を、類似度の集合Ｓに基づいて決定する（８０４）。本実施例においてクエリ生成部１０５は、類似度が高いクエリ対は近い場所に配置し、類似度が低いクエリ対は遠い位置に配置するように座標を決定する。
【００７０】
Ｓ８０４における座標の決定方法には、様々な方法が知られている。本実施例におけるクエリ生成部１０５は、いかなる方法を用いてもよいが、以下に示す実施例では、バネモデルと呼ばれる力学モデルを用いる。
【００７１】
バネモデルを用いた場合、クエリ生成部１０５は、類似度に対応する自然長を持つバネを、全てのクエリ間に仮想的に設置する。そして、クエリ生成部１０５は、クエリをランダムな場所に配置し、バネによるクエリの移動を力学的にシミュレートする。
【００７２】
クエリ生成部１０５は、このバネモデルによってシミュレートした結果、類似するクエリ対は近く、類似しないクエリ対は遠い位置に配置されるクエリの座標を得ることができる。そして、クエリ生成部１０５は、得られたクエリの座標を、クエリマップ２０における座標として決定する。
【００７３】
ステップ８０４の後、クエリ生成部１０５は、ステップ８０４において決定された座標を、表示制御部１０６によってクエリマップ２０に描画させる（８０５）。ステップ８０５の後、表示制御部１０６は、各クエリの系列情報（入力された順番）をクエリマップ２０に表示する（８０６）。表示制御部１０６は、クエリの系列情報を、クエリ蓄積部１０８及びクエリ生成部１０５のいずれから取得してもよい。
【００７４】
系列情報の表示方法にはいくつかバリエーションがある。表示方法の一つには、まず、入力された順をノード２１が表示される箇所に、通し番号として表示する方法がある。この方法を用いた場合、系列情報は、図２に示すノード２１のように表示される。
【００７５】
また、表示制御部１０６は、ノード２１の色の濃淡、又は透明度によって、系列情報を表示してもよい。例えば、表示制御部１０６は、入力された順番が古いクエリほど、表示されるノード２１の色を薄く表示し、または、透明度を高く表示してもよい。そして、表示制御部１０６は、入力された順番が新しいクエリほど、表示されるノード２１の色を濃く表示し、または、透明度を低く表示してもよい。これによって、古いクエリほどクエリマップ２０からフェードアウトしていくため、表示制御部１０６は、直近のクエリしか興味がないユーザに、効果的に検索状況を表示できる。
【００７６】
ステップ８０６の後、表示制御部１０６は、クエリ系列Ｑの各クエリによる検索結果の件数をクエリマップ２０に表示する（８０７）。なお、検索サーバ１２の検索部１２４、又は、クライアント１０のメモリ１０２は、クエリ系列Ｑに含まれるクエリの各々を用いて検索した結果、得られた文書の件数を保持する。
【００７７】
検索結果の件数を表現する方法には、いくつかのバリエーションがある。表示制御部１０６は、ユーザがカーソルをノード２１にあわせた場合、件数がポップアップされるように表示してもよいし、ノード２１に件数自体を表示してもよい。また、表示制御部１０６は、ステップ８０６と同じく、ノード２１の色の濃淡又は透明度によって件数を表示してもよい。
【００７８】
また、表示制御部１０６は、検索結果の文書の件数に応じた大きさのノード２１を表示してもよい。これによって、ユーザは、クエリの各々によって得られる文書の件数を、直感的に把握することができる。
【００７９】
ステップ８０７の後、表示制御部１０６は、ステップ８０３において簡略化された包含関係の集合Ｒに基づいて、クエリ対に対応する包含関係を示すリンク２２をクエリマップ２０に表示する（８０８）。表示制御部１０６は、包含関係にあるクエリ対に対応するノード２１間に、含む方から含まれる方に向かうリンク２２を表示する。
【００８０】
包含関係が表示されることによって、ユーザはクエリマップ２０から、過去に入力したクエリ間の関係を容易に取得することができる。
【００８１】
以下において、ステップ８０２における、クエリ対の包含関係判定処理及び類似度算出処理の詳細を説明する。
【００８２】
図６は、本実施例の包含関係および類似度を求める処理を示すフローチャートである。
【００８３】
本実施例におけるクエリは、キーワードを含む論理式である。例えば、論理式「ｘ∧ｙ」はキーワードｘ及びキーワードｙの双方が存在すれば真を返す論理式である。論理式「ｘ∨ｙ」は、キーワードｘ又はキーワードｙのいずれかが存在すれば真を返す論理式である。検索部１２４は、このような論理式が真を返すような文書を、インデックス１２３から検索する。
【００８４】
クエリ生成部１０５は、クエリ系列Ｑに含まれる複数のクエリから、クエリ対をすべて抽出する。そして、クエリ生成部１０５は、抽出されたクエリ対の各々に、図６に示す処理を実行する。
【００８５】
まず、クエリ生成部１０５は、クエリ系列Ｑから抽出されたクエリ対から一つのクエリ対を取得する（５０１）。ここで取得されたクエリ対は、クエリＡ及びクエリＢであり、クエリＡは、論理式Ａによって指定される。また、クエリＢは、論理式Ｂによって指定される。
【００８６】
Ｓ５０１の後、クエリ生成部１０５は、論理式Ａと論理式Ｂとの各々を、従来の技術のド・モルガンの法則及び分配法則等を用い、積和標準形（加法標準形、Ｄｉｓｊｕｎｃｔｉｖｅ  ｎｏｒｍａｌ  ｆｏｒｍ）に変換する。そして、クエリ生成部１０５は、積和標準形に変換された論理式の各々を、ベキ等律と吸収律とによって簡略化する（５０２）。簡略化の詳細は、図７に述べる。
【００８７】
Ｓ５０２の後、クエリ生成部１０５は、ステップ５０２において簡略化された論理式Ａと論理式Ｂとの積（Ａ∧Ｂ）を算出する。算出された積（Ａ∧Ｂ）は、既に積和形であるため、クエリ生成部１０５は、図７の処理によって積（Ａ∧Ｂ）の簡略化のみを行う（５０３）。
【００８８】
ステップ５０２及び５０３によって、論理式Ａ、論理式Ｂ、及び、積（Ａ∧Ｂ）が正規化される。これによって、クエリ生成部１０５は、後述するステップ５０４及び５０６において、クエリＡとクエリＢとの包含関係を判定することができる。
【００８９】
ステップ５０３の後、クエリ生成部１０５は、論理式Ａが積（Ａ∧Ｂ）と等しいか否かを判定する（５０４）。論理式Ａと積（Ａ∧Ｂ）とが等しい場合、図３に示すとおり、クエリＡは、クエリＢに包含される。このため、クエリ生成部１０５は、Ａ⊆Ｂという包含関係と類似度１．０とを出力する（５０５）。
【００９０】
論理式Ａと積（Ａ∧Ｂ）とが異なる場合、クエリ生成部１０５は、論理式Ｂが積（Ａ∧Ｂ）と等しいか否かを判定する（５０６）。論理式Ｂと積（Ａ∧Ｂ）とが等しい場合、クエリＡは、クエリＢを包含する。このため、クエリ生成部１０５は、Ａ⊇Ｂという包含関係と類似度１．０とを出力する（５０７）。
【００９１】
論理式Ａ及び論理式Ｂのいずれもが積（Ａ∧Ｂ）と等しくない場合、クエリ生成部１０５は、クエリＡ及びクエリＢに包含関係がないと判定し、クエリＡとクエリＢとの類似度を算出する。そして、算出された類似度のみを出力する（５０８）。
【００９２】
図４に示す式４０４のような類似度を算出するためには、クエリ生成部１０５は、クエリＡによる検索結果の件数、クエリＢによる検索結果の件数、積（Ａ∧Ｂ）のクエリによる検索結果の件数が必要になる。
【００９３】
クエリ生成部１０５は、過去に検索されたクエリの検索結果の件数をあらかじめ保持してもよく、この場合、クエリＡ及びクエリＢの各々の検索結果の件数を、あらかじめ保持された件数から取得できる。
【００９４】
一方で、クエリ生成部１０５は、クエリＡ及びクエリＢの各々による検索結果から類推するか、または、積（Ａ∧Ｂ）を用いてインデックス１２３を実際に検索するかしなければ、積（Ａ∧Ｂ）による検索結果の件数を取得できない。一般的に、検索結果の保持、新たな論理式による再検索は、記憶容量及び計算時間の遅延の観点から望ましくないことが多い。このため、本実施例のクエリ生成部１０５は、以下の式１及び式２と、クエリＡによる検索結果の件数と、クエリＢによる検索結果の件数とを用いて、積（Ａ∧Ｂ）のクエリによる検索結果の件数を推定する。
【００９５】
Ｐ（Ａ∧Ｂ）≒Ｐ（Ａ）＊Ｐ（Ｂ）                          （式１）
Ｐ（Ａ∨Ｂ）≒ｍｉｎ｛１．０，Ｐ（Ａ）＋Ｐ（Ｂ）−Ｐ（Ａ∧Ｂ）｝      （式２）
式１は、論理積に対する件数の推定式であり、式２は、論理和に対する件数の推定式である。式１及び式２は、それぞれ、式の出現の独立性を仮定し、確率的に件数を推定するための式である。Ｐは、確率を示す。例えばＰ（Ａ）は、任意の文書に対して論理式Ａが真となる確率である。すなわち、Ｐ（Ａ）は、インデックス１２３に格納される文書全体の数によって、論理式Ａが真となる文書の数を除算した数である。
【００９６】
なお、本実施例において、インデックス１２３に格納される文書全体の数は、論理式Ａによる検索の場合も論理式Ｂによる検索の場合も同じであり、Ｐ（Ａ）及びＰ（Ｂ）等の分母は同じ値であるため、クエリ生成部１０５は、式１及び式２におけるＰを、論理式による検索結果の件数とみなすことができる。
【００９７】
このため、クエリ生成部１０５は、式１と式２とを再帰的に適用することによって、キーワード（前述の例では、論理式Ａに含まれるキーワードｘ及びｙ）による検索結果の件数を用いる式に、式４０４を展開することができる。よって、クエリ生成部１０５は、各キーワードによる検索結果の文書の件数を取得できれば、それらのキーワードを含む任意の論理式による検索結果の件数を推定できる。
【００９８】
一つのキーワードによる検索結果の件数は、検索サーバ１２が保持する独立したインデックスによって管理されることが多い。このため、クエリ生成部１０５が、一つのキーワードによる検索結果の件数を、高速に検索サーバ１２から取得できる場合が多い。
【００９９】
さらに、一つのキーワードによる検索結果の件数を取得することが難しい場合、クエリ生成部１０５は、すべてのキーワードの各々による検索結果の件数は同じであると仮定し、論理式全体のヒット件数を推定してもよい。本実施例の図面に示される件数等はすべて、この仮定によって算出された類似度に基づく。
【０１００】
以上によって、クエリ生成部１０５は、類似度を算出し、クエリ対の包含関係と、類似度とを出力する。そして、クエリ生成部１０５は、クエリ系列Ｑのすべてのクエリ対に図６に示す処理を実行することによって、包含関係の集合Ｒと類似度の集合Ｓとを求める。
【０１０１】
図７は、本実施例の積和標準形の論理式の簡略化処理を示すフローチャートである。
【０１０２】
以下において、図７に示す処理に入力される論理式を積和形Ｘと記載する。積和形Ｘは、ステップ５０２において論理式Ａ及び論理式Ｂの各々であり、ステップ５０３において積（Ａ∧Ｂ）である。
【０１０３】
また、積和形Ｘにおいて、論理和によって統合される複数の論理式を、Ｘ１、Ｘ２、・・・と記載する。具体的には、積和形Ｘ＝Ｘ１∨Ｘ２∨・・・である。
【０１０４】
まず、クエリ生成部１０５は、積和形Ｘの各要素（論理式Ｘｉ：Ｘ１、Ｘ２、・・・）をベキ等律によって簡略化する（６０２〜６０７）。クエリ生成部１０５は、論理式Ｘ１、Ｘ２、・・・の各々に、ステップ６０３〜６０６を繰り返す。このため、クエリ生成部１０５は、まず、論理式Ｘ１、Ｘ２、・・・の中から、ステップ６０３〜６０６を実行されていない論理式Ｘｉを一つ取得する（６０２）。
【０１０５】
論理式Ｘｉは、キーワード（ｘ１、ｘ２・・・）の論理積ｘ１∧ｘ２∧・・・である。ここで、論理式Ｘｉに含まれるキーワードをｘｓ、及び、ｘｔと記載する。
【０１０６】
クエリ生成部１０５は、論理式Ｘｉのすべてのキーワード対（ｘｓ、ｘｔ）の各々に、ステップ６０４を実行する。具体的には、クエリ生成部１０５は、論理式Ｘｉから、ステップ６０４が実行されていない、任意のキーワード対（ｘｓ、ｘｔ）を一組抽出する（６０３）。
【０１０７】
クエリ生成部１０５は、抽出されたキーワード対（ｘｓ、ｘｔ）について、ｘｓ⊆ｘｔが成立するか否かを判定する（６０４）。ｘｓ⊆ｘｔが成立しない場合、クエリ生成部１０５は、ステップ６０３に戻り、新たなキーワード対（ｘｓ、ｘｔ）を一組抽出する。
【０１０８】
ｘｓ⊆ｘｔが成立する場合、クエリ生成部１０５は、キーワードｘｔを論理式Ｘｉから削除する（６０５）。
【０１０９】
ここで、本実施例において、ｘｓ⊆ｘｔが成立する場合とは、キーワードｘｓとキーワードｘｔとが等しい場合、又は、キーワードｘｓがキーワードｘｔの部分文字列である場合である。キーワードｘｓがキーワードｘｔの部分文字列である場合、一般的に、キーワードｘｓによる検索結果は、キーワードｘｔによる検索結果に含まれるためである。このため、クエリ生成部１０５は、このキーワードによる検索結果の包含関係を、キーワードの文字列から判定することができる。
【０１１０】
また、クエリ生成部１０５は、ステップ６０４において、キーワードｘｓとキーワードｘｔとを実際に検索部１２４に検索させ、各々のキーワードによる検索結果の包含関係を判定してもよい。
【０１１１】
ステップ６０２〜６０７の繰返しが終了した後、クエリ生成部１０５は、ステップ６０２〜６０７によって簡略化された論理積Ｘ１、Ｘ２、・・・を、吸収律を用いて更に簡略化する（６０８〜６１１）。クエリ生成部１０５は、積和形Ｘから論理式Ｘｉと論理式Ｘｊとを一組抽出する（６０８）。論理式Ｘｉと論理式Ｘｊとは、論理積である。
【０１１２】
クエリ生成部１０５は、論理式Ｘｉ＝ｘ１∧ｘ２∧・・・、及び、論理式Ｘｊ＝ｙ１∧ｙ２∧・・・に基づいて、論理式Ｘｉの全てのキーワードｘｓについて、ｘｓ⊇ｙｔを満たすキーワードｙｔが論理式Ｘｊに含まれるか否かを判定する（６０９）。論理式Ｘｉの全てのキーワードｘｓについて、ｘｓ⊇ｙｔを満たすキーワードｙｔが論理式Ｘｊに含まれる場合、クエリ生成部１０５は、論理式Ｘｊを削除する。
【０１１３】
ステップ６０９において、ｘｓ⊇ｙｔが成立するか否かを判定する方法は、ステップ６０４における方法と同じである。
【０１１４】
ステップ６０９において、論理式Ｘｉの全てのキーワードｘｓについて、ｘｓ⊇ｙｔを満たすキーワードｙｔが論理式Ｘｊに含まれないと判定された場合、クエリ生成部１０５は、ステップ６０８に戻り、新たな二つの論理式を積和形Ｘから抽出する。
【０１１５】
以上の図７に示す処理によって、積和形Ｘ、すなわち、論理式Ａ、論理式Ｂ、及び、積（Ａ∧Ｂ）は、簡略化され、また、正規化される。
【０１１６】
次に、クエリマップ２０において、ユーザが任意の点を指定し、指定された点に対応するクエリを、クエリ生成部１０５が生成する処理を示す。
【０１１７】
図８は、本実施例のユーザによって点が指定されたクエリマップ２０を示す説明図である。
【０１１８】
図８に示すクエリマップ２０は、図２に示すクエリマップ２０と同じクエリを示す。
【０１１９】
図９は、本実施例の複数のクエリの例を示す説明図である。
【０１２０】
図９は、通し番号が０〜１９の２０個のクエリを示す。図２及び図８に示すクエリマップ２０は、図９に示す２０個のクエリと、そのクエリの入力順とを示す。
【０１２１】
図２及び図８は、クエリが表示されない空間がクエリマップ２０の中央にあることを示す。そして、クエリマップ２０は、このように空いた空間に相当するクエリが、まだ検索に用いられていないことを示す。
【０１２２】
このため、図８に示す点１１０１に対応するクエリを取得できれば、本実施例のクエリ処理システムは、取得されたクエリを用いて検索することによって、クエリマップ２０において空いた空間をカバーし、そして、検索対象をまんべんなく検索することができる。
【０１２３】
このような場合、ユーザは、クエリマップ２０の点１１０１を指定する。ユーザによって指定された点１１０１を、以下において点ｐと記載する。
【０１２４】
図１０は、本実施例の指定された点に対応するクエリを生成する処理を示すフローチャートである。
【０１２５】
まず、クエリ生成部１０５は、クエリマップ２０から点ｐの座標を取得し、クエリの所定の数Ｋ及びキーワードの所定の数Ｎを取得する（９０１）。クエリの数Ｋ及びキーワードの数Ｎは、あらかじめクエリ生成部１０５に設定されていてもよく、また、点ｐが指定される際にユーザによって設定されてもよい。
【０１２６】
ステップ９０１の後、クエリ生成部１０５は、点ｐからの距離が近い順にＫ個のクエリを選択し、選択されたクエリの論理式を論理和で結合する（９０２）。ここで、距離とは、図５に示すステップ８０４において決定された座標に基づく距離であり、ステップ８０２において算出されたクエリ間の類似度に基づく。
【０１２７】
クエリの数Ｋが１０である場合、図８に示す例において、クエリ生成部１０５は、通し番号が２、３、４、５、１１、１２、１６、１７及び１８である１０個のクエリを、点ｐに近いクエリとして選択する。クエリ生成部１０５は、ステップ９０２において、選択されたクエリを論理和で結合した候補クエリＱを生成する。
【０１２８】
通し番号が２、３、４及び５であるクエリは、図９に示すクエリ群１２０１のクエリであり、通し番号が１１及び１２であるクエリは、図９に示すクエリ群１２０２のクエリであり、通し番号が１６、１７及び１８であるクエリは、図９に示すクエリ群１２０３のクエリである。
【０１２９】
なお、クエリマップ２０を表示する際、それぞれのクエリは積和標準形に変換されているため（ステップ８０２及びステップ５０２による）、候補クエリＱも積和標準形である。
【０１３０】
また、クエリ生成部１０５は、候補クエリＱを表示制御部１０６に、点ｐに対応するクエリとしてクエリマップ２０に表示させてもよい。これによって、ユーザは、今まで検索されておらず、次に入力すべきクエリを取得することができ、これによって、検索対象のインデックス１２３を、効率よく、かつ、漏れなく検索することができる。
【０１３１】
しかし、候補クエリＱは、複雑な積和標準形であるため、クエリ生成部１０５は、以降の処理によって候補クエリＱを簡略化する。
【０１３２】
ステップ９０２の後、クエリ生成部１０５は、候補クエリＱに含まれるキーワードの中から、候補クエリＱのみに特徴的に現れるキーワードをＮ個選択する（９０３）。クエリ生成部１０５は、候補クエリＱのみに特徴的に現れることを示す尺度として、ＴＦ−ＩＤＦ法という尺度を用いてもよいし、他の方法による尺度を用いてもよい。
【０１３３】
ＴＦ−ＩＤＦ法は、与えられた集合内で出現頻度が高く、かつ、その集合外ではあまり出現しないキーワードに大きな重みを与える方法である。例えば、図９に示すクエリ群１２０１のクエリには、「燃焼」というキーワードがよく出現する。しかし、「燃焼」は、候補クエリＱに含まれるクエリ以外のクエリには出現しない。このため、クエリ生成部１０５は、キーワード「燃焼」に大きい重みを割り当てる。
【０１３４】
また、キーワード「自動」は、通し番号が１７及び１８のクエリに出現し、候補クエリＱに含まれるクエリ以外のクエリに出現しない。このため、キーワード「自動」にも、大きい重みが割り当てられる。
【０１３５】
また、キーワード「プラント」は、通し番号が１４及び１５のクエリに出現し、かつ、通し番号が１６、１７及び１８のクエリに出現する。通し番号が１４及び１５のクエリは、候補クエリＱに含まれておらず、通し番号が１６、１７及び１８のクエリは、候補クエリＱに含まれる。このため、キーワード「プラント」には、キーワード「燃焼」及び「自動」よりも、小さい重みが割り当てられる。
【０１３６】
また、キーワード「報知」は、通し番号が２、３、４及び５のクエリに出現し、かつ、通し番号が０、１、６、７及び８のクエリに出現する。通し番号２、３、４及び５のクエリは、候補クエリＱに含まれ、通し番号が０、１、６、７及び８のクエリは、候補クエリＱに含まれない。
【０１３７】
ここで、キーワード「報知」が候補クエリＱに含まれる頻度は、候補クエリＱ以外のクエリに含まれる頻度よりも少ない。一方で、キーワード「プラント」が候補クエリＱに含まれる頻度は、候補クエリＱ以外のクエリに含まれる頻度よりも多い。このため、キーワード「報知」には、キーワード「プラント」に割り当てられた重みよりも小さい重みが割り当てられる。
【０１３８】
そして、キーワード「燃焼」、「自動」、「プラント」及び「報知」の中で、キーワード「報知」は、最も小さい重みが割り当てられる。
【０１３９】
このように、クエリ生成部１０５は、ステップ９０２において選択されたクエリに含まれるキーワードに重みを割り当てられ、さらに、重みが大きい順にＮ個分のキーワードを選択する。キーワードの数Ｎが３である場合、クエリ生成部１０５は、例えば、キーワード「燃焼」、「自動」及び「プラント」を、ステップ９０３において選択する。
【０１４０】
ステップ９０３の後、クエリ生成部１０５は、候補クエリＱから、ステップ９０３において選択されたキーワード以外のキーワードを削除することによって、候補クエリＱ１を生成する（９０４）。候補クエリＱ１を生成することによって、クエリ生成部１０５は、候補クエリＱを簡略化する。
【０１４１】
図８及び図９の例において、クエリ生成部１０５が、通し番号が２、３、４、５、１１、１２、１５、１６、１７及び１８のクエリを論理和で結合した候補クエリＱから、キーワード「燃焼」、「自動」及び「プラント」以外のキーワードを削除した後、通し番号が２のクエリは空になる。また、通し番号が３、４及び５のクエリは、キーワード「燃焼」のみを含む。また、通し番号が１１及び１２のクエリは、空になる。
【０１４２】
また、通し番号が１６、１７及び１８のクエリは、「プラント∨（プラント∧自動）」のクエリに変換される。この結果、クエリ生成部１０５は、候補クエリＱを、「燃焼∨プラント∨（プラント∧自動）」の候補クエリＱ１に変換する。
【０１４３】
クエリ生成部１０５は、ステップ９０４においてさらに、この候補クエリＱ１を、図７に示す処理によってさらに正規化することによって、候補クエリＱ１を、「燃焼∨プラント」に変換する。
【０１４４】
クエリ生成部１０５は、ステップ９０４において生成された候補クエリＱ１を表示制御部１０６に、点ｐに対応するクエリとして表示させてもよい。これによって、ユーザは、今まで検索されておらず、次に入力すべきクエリを取得することができ、検索対象のインデックス１２３を、効率よく、かつ、漏れなく検索することができる。また、ユーザは、候補クエリＱを提示されるよりも、簡易で理解しやすいクエリを取得することができる。
【０１４５】
ここで、候補クエリＱ１には、これまでにユーザが入力してきたキーワードしか含まれていない。しかし、点ｐに対応する真のクエリには、新たなキーワードが入っている可能性がある。このため、本実施例のクエリ生成部１０５は、以下の処理を実行することによって、真のクエリに含まれるべき新たなキーワードを特定する。
【０１４６】
ステップ９０４の後、クエリ生成部１０５は、検索サーバ１２の検索部１２４に、候補クエリＱ１を用いてインデックス１２３を検索させる（９０５）。この検索部１２４による検索結果のデータ集合を、データ集合Ｄと記載する。データ集合Ｄは、例えば、検索結果によって得られた文書の内容である。
【０１４７】
データ集合Ｄには、ユーザがこれまでにクエリとして入力してきたキーワード以外のキーワードも含まれる。このため、クエリ生成部１０５は、データ集合Ｄから検索式を逆生成する（９０６）。
【０１４８】
検索式を逆生成する方法は、例えば、特開２０１２−１５５６７３号において開示される技術である。特開２０１２−１５５６７３号は、与えられた文書集合のみをもれなく検索できる検索式を自動生成する方法を開示する。本実施例におけるクエリ生成部１０５は、データ集合Ｄを文書集合として特開２０１２−１５５６７３号における処理を実行することによって、検索式を逆生成する。
【０１４９】
クエリ生成部１０５は、ステップ９０６において逆生成された検索式を、点ｐに対応する候補クエリＱ２として取得する。
【０１５０】
図８及び図９に示す例において、候補クエリＱ１として「燃焼∨プラント」が生成された場合を以下に示す。ここで、候補クエリＱ１「燃焼∨プラント」を用いて検索部１２４がインデックス１２３を検索し、クエリ生成部１０５がこの検索結果から検索式を逆生成した場合、クエリ生成部１０５は、候補クエリＱ２「燃焼∧プラント∧制御∧（ガス∨空気）」の検索式を得る。候補クエリＱ２には、候補クエリＱ１に含まれるキーワードの他に、新たなキーワードとして「制御」、「ガス」及び「空気」などが追加される。
【０１５１】
ステップ９０６の後、クエリ生成部１０５は、生成された候補クエリＱ２を表示制御部１０６に送り、表示制御部１０６は、図５の処理によって、送られた候補クエリＱ２と既に保持するクエリとを、クエリマップ２０に再描画する（９０７）。
【０１５２】
再描画されたクエリマップ２０は、点ｐの近傍に、候補クエリＱ２に対応するノード２１を表示する。これによって、ユーザは、今まで検索されておらず、次に入力すべきクエリを取得することができ、これによって、検索対象のインデックス１２３を、効率よく、かつ、漏れなく検索することができる。
【０１５３】
また、ユーザは、今まで検索していなかったキーワードに基づくクエリを取得できるため、候補クエリＱ又は候補クエリＱ１よりも、より正確に指定された点に対応するクエリを取得できる。そして、これによって、さらに漏れなくインデックス１２３を検索することができる。
【０１５４】
以下に、図１０の処理におけるバリエーションを何点か列挙する。
【０１５５】
まず、ステップ９０２のＫ個のクエリを選択する処理において、クエリ生成部１０５は、点ｐからの距離のみに従ってクエリを選択せず、クエリの重要度と距離とに従ってクエリを選択してもよい。クエリにはユーザが試しに入力したものもあれば、考え抜いて入力したものもあり、ユーザにとってクエリの各々の重要度は異なる。
【０１５６】
このため、クエリの重要度が何らかの方法によって取得できる場合、クエリ生成部１０５は、点ｐからの距離と、重要度の逆数との積を算出し、算出された積の大きさの順にクエリを選択してもよい。
【０１５７】
クエリ生成部１０５は、クエリの重要度を取得する方法として、例えば、ユーザがクエリを入力時に指定した（例えば、いくつかの段階を評価するなどによって指定した）重要度を取得する方法を用いてもよい。
【０１５８】
また、クエリ生成部１０５は、ユーザが検索結果を調べていた時間が長いほど、当該検索結果が得られたクエリを重要度が高いクエリとして取得してもよい。また、クエリ生成部１０５は、検索結果のうち、実際にユーザが調べたデータの数（文書数）が多いほど、当該検索結果が得られたクエリを重要度が高いクエリとして取得してもよい。
【０１５９】
クエリの重要度に従って、候補クエリＱに含まれるクエリを選択することによって、クエリ生成部１０５は、ユーザにとって有用であるクエリのみを用いて候補クエリＱを生成することができる。
【０１６０】
さらに、図１０の処理におけるバリエーションとして、前述のステップ９０２において、クエリ生成部１０５は、選択されたＫ個のクエリを論理和で結合して候補クエリＱ１を生成したが、選択されたクエリを論理積によって結合してもよい。この場合、より特殊なクエリが生成されることになる。
【０１６１】
最後に、ユーザは点ｐを指定せず、クエリ生成部１０５が、クエリマップ２０においてクエリがない所定の広さの領域を抽出し、抽出された領域に対応するクエリを生成する処理を説明する。
【０１６２】
図１１は、本実施例のクエリマップ２０におけるクエリがない領域を抽出する処理を示すフローチャートである。
【０１６３】
クエリ生成部１０５は、クエリマップ２０に表示されるクエリの集合Ｑを取得し、クエリマップ２０における格子点間の横方向の距離Ｗ及び縦方向の距離Ｈを取得する。クエリ生成部１０５は、表示されるクエリの集合Ｑを、表示制御部１０６から取得してもよいし、クエリ蓄積部１０８から取得してもよい。
【０１６４】
また、クエリ生成部１０５は、クエリマップ２０の領域を複数の格子に分割するための、格子点間の横方向の距離Ｗ及び縦方向の距離Ｈを、ユーザによってあらかじめ設定されてもよい。また、クエリ生成部１０５は、クエリマップ２０が三次元で表示される場合、格子点間の高さ方向の距離を取得してもよい。また、クエリマップ２０が一次元で表示される場合、所定の距離を取得してもよい。
【０１６５】
ステップ１００１の後、クエリ生成部１０５は、横方向の距離Ｗ及び縦方向の距離Ｈを用いてクエリマップ２０を格子状に区切り、複数の格子点Ｇ（＝ｇ１、ｇ２、・・・）を仮想的に生成することによって、複数の格子点Ｇの各々の座標を取得する（１００２）。
【０１６６】
ステップ１００２の後、クエリ生成部１０５は、ステップ１００３〜１００５を繰り返すことによって、すべての格子点Ｇにステップ１００４を実行し、周囲に表示されるクエリが最も少ない格子点ｇｉを抽出する。具体的には、クエリ生成部１０５は、格子点Ｇから、ステップ１００４を実行していない格子点ｇｉを取得する（１００３）。
【０１６７】
クエリ生成部１０５は、取得された格子点ｇｉと、表示制御部１０６によって表示されるすべてのクエリとの距離を算出する。そして、クエリ生成部１０５は、格子点ｇｉとクエリとの距離のうち、一番小さい距離を空隙度ｖｉとして取得する（１００４）。
【０１６８】
空隙度ｖｉの算出は、前述の方法に限定されない。例えば、格子点ｇｉから所定の距離内に存在するクエリの密度を、空隙度として算出してもよい。また、クエリ生成部１０５は、ステップ９０２においてクエリを選択した方法と同様に、クエリとの距離とクエリの重要度とに従って空隙度を算出してもよい。
【０１６９】
クエリ生成部１０５は、ステップ１００３〜１００５を繰り返すことによって、格子点Ｇの各々の空隙度ｖを算出する。
【０１７０】
ステップ１００３〜１００５の繰返しが終了した後、クエリ生成部１０５は、空隙度ｖが一番大きい格子点ｇを出力する（１００６）。そして、この格子点ｇの座標を、図１０における点ｐの座標として特定することによって、クエリ生成部１０５は、図１０に示す処理により、自動的に抽出された格子点ｇに対応するクエリを生成する。
【０１７１】
前述した図１１に示す処理により、クエリ処理システムは、クエリマップ２０において検索しきれていないと予想される領域を自動的に同定し、その領域に対応するクエリを次に入力すべき候補クエリＱ１として、ユーザに提示することができる。更に、生成した候補クエリＱ２を用いて検索し、検索結果に基づいて生成された候補クエリＱ３をユーザに提示することもできる。
【０１７２】
さらに、クエリ生成部１０５は、ユーザによってクエリが連続して入力され、所定の数のクエリが入力された後、それらクエリがカバーしきれていない領域を万遍なく自動探索し、その結果をユーザに提示してもよい。これによって、ユーザは、所定の数の検索を行った後、次に入力すべきクエリを提示されるため、入力すべきクエリに迷うことがない。
【０１７３】
本実施例のクライアント１０は、クエリマップ２０において、ユーザによって点ｐが入力された場合、又は、周囲にクエリが存在しない点ｐが自動的に特定された場合、点ｐに対応するクエリを適切に出力する。これによって、本実施例のクライアント１０は、これまでに検索された検索対象の領域の周辺でまだ検索しきれていない領域に対応するクエリを適切に生成することができる。そして、ユーザは、生成されたクエリを提示されることによって、特許公報又は論文などの検索において、効率良く、かつ、漏れなく検索対象を調べ尽くすことができる。
【０１７４】
なお、前述において、インデックス１２３に格納される検索対象は文書であり、クエリはキーワードの論理式であるが、本発明の適用範囲はこの場合に限られない。例えば、一般のデータベースのように、検索対象が任意のデータのメタデータである場合にも適用できる。検索対象がメタデータである場合、クエリを構成する要素は、キーワードに加え、数値範囲（例えば、ある年からある年の間に出版された図書等）であってもよい。
【０１７５】
このような一般的なデータ、および、クエリにも、クエリ間の包含関係及び類似度が定義されることによって、本実施例を適用できる。そして、クエリマップ２０を作成し、クエリマップ２０上の任意の点に対応するクエリを自動生成したり、クエリマップ２０上を自動探索して次に発行すべきクエリを生成したりできる。
【０１７６】
このため、本実施例は、複数のデータ集合を検索する検索システムに適用可能である。ここで、本実施例におけるデータ集合とは、例えば、文書、又は、メタデータ等であり、検索される対象（キーワード又は数値等の文字列）を複数含む集合を示す。
【０１７７】
また、前述において、クエリ生成部１０５及び表示制御部１０６は、異なる機能部として記載したが、クエリ生成部１０５の一部の機能を表示制御部１０６が実装してもよく、また、クエリ生成部１０５及び表示制御部１０６が一つのプログラムによって実装されてもよい。
【０１７８】
また、本発明は前述した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【０１７９】
また、上記の各構成、機能、処理部、処理手順等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、各機能を実現するプログラム、テーブル、及びファイル等の情報は、メモリ、ハードディスク、若しくは、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、又は、ＩＣカード、ＳＤカード、若しくは、ＤＶＤ等の記録媒体に置くことができる。
【０１８０】
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１８１】
１０    クライアント
１０１  ＣＰＵ
１０２  メモリ
１０３  キーボード・マウス
１０４  ディスプレイ
１０５  クエリ生成部
１０６  表示制御部
１０７  データ通信部
１１    ネットワーク
１２    検索サーバ
１２１  ＣＰＵ
１２２  メモリ
１２３  インデックス
１２４  検索部
１２５  データ通信部
【図１】
2015001770.tif 000003
【図２】
2015001770.tif 000004
【図３】
2015001770.tif 000005
【図４】
2015001770.tif 000006
【図５】
2015001770.tif 000007
【図６】
2015001770.tif 000008
【図７】
2015001770.tif 000009
【図８】
2015001770.tif 000010
【図９】
2015001770.tif 000011
【図１０】
2015001770.tif 000012
【図１１】
2015001770.tif 000013