実施形態1.
次に、本発明の実施形態を図面を参照して説明する。図1は、本発明の第1の実施形態の検索式可視化装置の構成例を示すブロック図である。なお、以下の各実施形態では、特許検索に用いられる検索式を例に用いて説明するが、本発明の対象とする検索式は特許検索に用いられる検索式に限られない。
図1に示す検索式可視化装置100は、検索式入力部11と、検索式構造分析部12と、層構造表示部13と、を備える。
検索式入力部11は、1つ以上の検索式を含む検索式集合を入力する。
検索式構造分析部12は、入力された検索式集合に含まれる各検索式内の条件式を分析して、検索式集合に含まれる検索式間の連結関係および各検索式内の条件式間の連結関係を示す検索式構造データを生成する。
層構造表示部13は、生成された検索式構造データに基づき、入力された検索式集合の少なくとも一部を、階層化して表示する。
また、図2は、検索式可視化装置100のハードウェア構成の一例を示す構成図である。図2に示す検索式可視化装置100は、CPU(Central Processing Unit)1001、メモリ1002、出力装置1003、入力装置1004およびネットワークインタフェース1005を含む。
メモリ1002は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)等である。出力装置1003は、例えば、ディスプレイ装置やプリンタ等のように、情報を出力する装置である。入力装置1004は、例えば、キーボードやマウス等のように、ユーザ操作の入力を受け付ける装置である。ネットワークインタフェース1005は、例えば、インターネット、LAN(Local Area Network)、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークに接続するインタフェースである。
図1に示す検索式可視化装置100の上記機能ブロックの各々は、メモリ1002に格納されるコンピュータ・プログラムを読み込んで実行するとともに他の各部を制御するCPU1001によって構成されてもよい。なお、検索式可視化装置100およびその各機能ブロックのハードウェア構成は、上記の構成に限定されない。
また、図3は、検索式構造分析部12のより詳細な構成例を示すブロック図である。図3に示すように、検索式構造分析部12は、例えば、層構造分析部121と、演算子分析部122と、を含んでいてもよい。
層構造分析部121は、入力された検索式集合に含まれる検索式を順に走査していき、各検索式を、1つ以上の条件式に展開し、展開後の条件式に関する情報とともに条件式間の階層関係(ネスト関係だけでなく並列関係を含む)を示す検索式構造データを生成する。このとき、層構造分析部121は、条件式が他の検索式を指定(引用)するものである場合には、指定する側を上位、指定される側を下位として両者の階層関係を示す検索式構造データを生成する。また、層構造分析部121は、検索式が条件式のネスト構造を有する場合など、条件式が他の条件式を含む場合には、含む側を上位、含まれる側を下位として両者の階層関係を示す検索式構造データを生成する。また、層構造分析部121は、条件式が展開元の検索式に相当するもの、すなわち同じ検索式から展開された条件式の中で最も上位の条件式である場合、当該条件式のラベル情報として該検索式の識別情報(式ナンバー等)を含ませるなどして、条件式と検索式との対応関係が分かるようにする。これにより、検索式の単位よりも細かい単位である条件式を単位にした、条件式間の階層構造を示す情報として、検索式内の条件式間のネスト関係や並列関係だけでなく、検索式同士の引用関係の情報も含む検索式構造データが生成できる。
ここで、条件式の最小単位は、1つの検索項目とその検索項目に対する指定要素の組みであってもよいし、括弧で括られる最小のものであってもよい。なお、後者において、括弧内に検索演算子が含まれている場合には、検索演算子を境に式を分解等して得られる、1つの検索項目とその検索項目に対する指定要素の組みまたは他の検索式の指定を、最小単位としてもよい。なお、検索式をどのレベルの条件式まで細分化して展開するか、条件式の最小単位の条件をユーザが指定できるようにしてもよい。その際、ユーザが、検索式に使用される検索演算子のうち、分解対象とする検索演算子を指定できるようにしてもよい。
検索式に使用される検索演算子は、検索環境に応じたものであればよく、特に限定されない。一般に、検索演算子は、論理積演算子と、論理和演算子と、否定演算子と、を含む。また、検索演算子は、さらに、排他的論理和演算子(XOR演算子)を含んでいてもよい。また、検索演算子は、この他にも、文字列用の演算子、例えば、近接演算子やワイルドカード、連結演算子、LIKE演算子等を含んでいてもよい。
図4は、検索式から1つ以上の条件式への展開例を示す説明図である。ここで、“+”は論理和演算子、“*”は論理積演算子を表している。例えば、図4(a)には、“検索項目X=xxx”という条件が指定された検索式S001の例が示されている。例えば、検索式S001は、“X=xxx”という1つの条件式1−1に展開される。なお、本例の場合、条件式1−1が展開元の検索式S001に相当する条件式となる。また、図4(b)には、“検索項目Y=yyy”という条件が指定された検索式S002の例が示されている。例えば、検索式S002は、“Y=yyy”という1つの条件式2−1に展開される。なお、本例の場合、条件式2−1が展開元の検索式S002に相当する条件式となる。また、図4(c)には、“S001”かつ“検索項目Z=zzz”という条件が指定された検索式S003の例が示されている。例えば、検索式S003は、“S001”という条件式3−1と、“Z=zzz”という条件式3−2と、“(条件式3−1)*(条件式3−2)”という条件式3−3の、計3つの条件式に展開される。なお、本例の場合、条件式3−3が展開元の検索式S003に相当する条件式となる。また、図4(d)には、“検索項目Z ⊇ (aaa,bbb)”という条件が指定された検索式S004の例が示されている。ここで、“⊇”は包含関係を表す記号である。例えば、“集合1⊇集合2”は集合2が集合1の部分集合であることを表している。また、括弧内のコンマは文字列演算子のorを表している。すなわち、検索式S004は、検索項目Z(例えば、全文等)に文字列“aaa”または文字列“bbb”が含まれる、という条件を指定した検索式の例である。例えば、検索式S004は、“Z ⊇ (aaa,bbb)”という1つの条件式4−1aに展開されてもよいし、条件式4−1aをさらに細分化して、“Z ⊇ aaa”という条件式4−1bと、”Z ⊇ bbb”という条件式4−2bと、”(条件式4−1a)+(条件式4−1b)”という条件式4−3bの、計3つの条件式に展開されてもよい。なお、本例では、展開元の検索式S004に相当する条件式は、前者の場合、条件式4−1aが相当し、後者の場合には条件式4−3bが相当する。
演算子分析部122は、層構造分析部121が検索式を1つ以上の条件式に展開すると、検索式内においてそれら条件式をつなぐ検索演算子があるかどうか、また、ある場合にはどのような検索演算子で接続されているかを分析し、検索式構造データに、条件式間の接続形態を示す情報を付与する。例えば、演算子分析部122は、ネストの関係にある条件式に対して、上位や下位の条件式の情報とともに両者を接続している検索演算子の情報を追加してもよい。これにより、条件式間の階層構造(どのような条件式が上位や下位に接続されているか等)を示す情報に加えて、階層間(条件式間)がどのような検索演算子で接続されているか等を示す接続形態情報を含む検索式構造データが生成できる。以下、条件式間の階層構造を示す情報と階層間の接続形態を示す情報とを含む情報を、条件式間の連結関係を示す情報という場合がある。ここで、「条件式間」には、検索式に相当する条件式とそうでない条件式間や、検索式に相当する条件式間も含まれる。
次に、本実施形態の動作について説明する。図5は、本実施形態の検索式可視化装置の動作の一例を示すフローチャートである。図5に示す例では、まず、検索式入力部11が1つ以上の検索式を含む検索式集合を入力する(ステップA11)。検索式集合は、例えば、ある目的に対して作成された等、互いに関係のある検索式の集合を想定しているが、ユーザが可視化の対象としたい検索式の集合であればよく、特に限定されない。
次に、検索式構造分析部12が、入力された検索式集合に含まれる各検索式を分析して、検索式構造データを生成する(ステップA12)。
次に、層構造表示部13が、生成された検索式構造データを基に、検索式集合または検索式に含まれる検索式の一部を、階層型グラフ形式で階層化して表示する(ステップA13)。
図6A、図6Bおよび図6Cは、層構造表示部13による階層表示の例を示す説明図である。図6Aは、検索式集合が4つの検索式を含み、そのうちのいずれかの検索式で論理和演算子および論理積演算子が使用される場合の階層表示の例を示す説明図であり、図6Bおよび図6Cは、検索式集合が2つの検索式を含み、そのうちのいずれかの検索式で論理和演算子および否定演算子が使用される場合の階層表示の例を示す説明図である。なお、図6Cは図6Bの階層表示の別例である。
図6A〜図6Cでは、図面左側に階層表示の例を示し、図面右側に階層表示に用いた検索式集合を示している。層構造表示部13は、検索式集合の少なくとも一部を、検索式または検索式に含まれる条件式に対応するノード(例えば、図中の81a、81b参照)と、それらノード間を結ぶエッジであって検索演算子に対応する演算子エッジ(例えば、図中の82a、82b参照)と、を有する階層型グラフ構造に階層化して表示する。なお、ノードは、節点や頂点とも呼ばれる。また、エッジは、枝や辺やリンクとも呼ばれる。
ここで、階層型グラフ構造は、ネットワーク構造とも呼ばれるグラフ構造であって、ツリー構造に似たグラフ構造である。ただし、ツリー構造とは異なり、根となるノード(ルートノード)の数がいくつであってもよく、また、1つのノードが複数の上位ノードと接続されていてもよい。また、本発明において、階層型グラフ構造は、エッジがなくノードが1つだけのものも含む。なお、表示上のエッジは有向性であっても無向性であってもよいが、内部データとしては引用関係またはネスト関係によって上位と下位とを区別する。また、以下では、上位の方向にノードを持たないノードをルートノード、下位の方向にノードを持たないノードを末端ノードという場合がある。また、ルートノードおよび末端ノード以外のノードを、中間ノードという場合がある。なお、中間ノードは上位および下位の方向にノードを持つノードである。また、あるノードから見て下位の方向に直接接続されているノードを、当該ノードの子ノードといい、あるノードから見て上位の方向に直接接続されているノードを、当該ノードの親ノードという。また、あるノードから見て上位の方向に直接または間接的に(親ノードを介して等)接続されているノードの総称として、上位ノードという場合がある。同様に、あるノードから見て下位の方向に直接または間接的に(子ノードを介して等)接続されているノードの総称として、下位ノードという場合がある。
また、以下では、検索式(より具体的には検索式に相当する条件式)に対応するノードを、検索式ノードという場合がある。また、条件式に対応するノードのうち検索式に対応しないノード、すなわち、検索式から展開される条件式のうち、展開元の検索式に相当する条件式以外の条件式に対応するノードを、独立条件式ノードという場合がある。
なお、層構造表示部13は、検索式に用いられる検索演算子のうちの論理和演算子と論理積演算子と否定演算子の3種に絞って、階層表示を行ってもよい。
図6Aにおいて、実線の円は検索式ノードを示している(図中の81a参照)。また、破線の円は独立条件式ノードを示している(図中の81b参照)。また、検索式ノードに付された“S−”(−は任意の数字)は検索式集合に含まれる検索式に付与される識別情報としての式ナンバー(式No.)を表している。なお、層構造表示部13は、独立条件式ノードに対して、独立条件式を識別するための識別情報として、仮の式ナンバー(本例ではb1)を付してもよい。また、ノード間を結ぶ線分(演算子エッジ)のうちの、実線の直線は、論理積に対応する演算子エッジである論理積エッジを示している(図中の82a参照)。また、一点鎖線の折れ線は、論理和に対応する演算子エッジである論理和エッジを示している(図中の82b参照)。このように、層構造表示部13が行う階層表示の構造は、検索式に対応する検索式ノードと、検索式ノードと重複しない範囲で検索式に含まれる条件式に対応する独立条件式ノードと、を含んでいてもよい。このようなノードとエッジの組み合わせによれば、階層構造が冗長とならないので、検索数が多い場合や、ネストが深い場合でも、コンパクトな表示ができる。以下、ノード“−”(−は任意のアルファベットや数字や記号もしくはその組合せ等)といった場合には、検索式もしくは独立条件式を識別するための識別情報(式ナンバーや仮の式ナンバー)が、”−”である検索式もしくは独立条件式に対応するノードを表すものとする。なお、図6Aにおいて、ノード“S004”がルートノードに相当する。また、ノード“S003”、ノード“S001”およびノード“b1”が末端ノードに相当する。他のノード(本例ではノード“S002”)は中間ノードである。
また、層構造表示部13は、本例のように、検索演算子の種類に応じて演算子エッジの表示態様(例えば、色、形状、線種、太さなど)を異ならせて表示するのが好ましい。なお、形状と色といったように2種以上の項目を異ならせた方が、当該エッジが何を意味するかを識別し易くなるため、より好ましい。
また、図6Bおよび図6Cにおいて、丸付きの線分は、否定演算子に対応する演算子エッジである否定エッジを示している(図中の82c参照)。また、図6Bに示す例では、検索式S001が、異なる検索項目に対する指定を論理和演算子で接続した条件式、を含んでいることから、当該検索式を論理和演算子の前後で分解し、分解後の条件式をそれぞれ独立条件式ノード“b1”および独立条件式ノード“b2”として布置している。なお、検索式S001に対応する検索式ノード“S001”は、独立条件式ノード“b1”および独立条件式ノード“b2”の親ノードとして布置され、子ノードである独立条件式ノード“b1”および独立条件式ノード“b2”と論理和エッジを介して接続される。このように、層構造表示部13は、末端ノードが、最小の条件式のみが含まれる検索式ノード(図6Aのノード“S001”やノード“S003”等参照)、または、1つの検索項目に対する指定のみが含まれる独立条件式ノード(図6Bのノード“b1”やノード“b2”等参照)のいずれかとなるように、ノード化してもよい。なお、図6Cに示す例のように、他の検索式の指定を含まない検索式(例えば、検索式S001)についてはそれ以上細分化せずに1つの条件式として扱い、当該検索式ノードに対して子ノードを設けない構成としてもよい。
なお、図7A〜図7Cは、検索式構造データの例を示す説明図である。なお、図7A〜図7Cはそれぞれ図6A〜図6Cに対応している。検索式構造データは、例えば、条件式を識別する情報(条件式ID)と、ノード種別(検索式に対応するのか、検索式から展開される条件式のうち展開元の検索式に相当する条件式以外の条件式である独立条件式に対応するのか等)と、ラベル(どの検索式に対応するのか、または検索式内におけるネスト位置等)と、子ノードの数と、各子ノードの情報として識別情報および結合種別と、親ノード数と、階層数と、を含んでいてもよい。ここで、階層数は、末端ノードから積み上げたときの当該ノードの階層数であってもよい。なお、図示省略しているが、検索式構造データは、条件式の内容を示す情報を含んでいてもよい。また、層構造表示部13は、例えば、図7Bに示す検索式構造データから図6Cに示す階層表示を行うことも可能である。その場合、独立条件式ノードのみの下位ノードは表示しないといった設定を行えばよい。
図8は、層構造表示部13が行う階層表示処理(図5のステップA13)の処理フローの例を示すフローチャートである。図8に示す例では、層構造表示部13は、まず、検索母集団となる式ナンバーを選択する(ステップA131)。ここで、層構造表示部13は、例えば、検索式構造データを参照して、ルートノードとなる条件式、すなわち上位ノード数がゼロの条件式のラベル情報から、該当する式ナンバーを得ればよい。以下、ここで選択された式ナンバーをNとおく。
次に、層構造表示部13は、選択された式ナンバーに対応する検索式ノードを階層型グラフ構造のルートノードとして、所定の階層表示領域に布置する(ステップA132)。ここで、階層型グラフ構造は、左から右に広がる構造であることが望ましいが、この限りではなく、上から下に広がる構造でも構わない。なお、本例では、検索式ノードの内側または近傍に、式ナンバーを記述する。また、好ましくは、式ナンバーとともに検索ヒット件数を記述する。ノードの形状はいずれのものも選択可能であり、円や楕円あるいは矩形であってもよい。また、必要に応じてノードに背景色を付与することができる。
次に、層構造表示部13は、式ナンバーNの検索式が引用している1つ以上の検索式に対応するノードや、式ナンバーNの検索式に含まれる独立条件式に対応するノードを上記のルートノードの子ノードとして布置するとともに、布置した子ノードとの間に演算子エッジを形成する(ステップA133)。
一般に、子ノードとして布置されるノードの式ナンバーは親ノードの式ナンバーよりも小さい数である。このとき、子ノード同士の位置関係は任意であるが、例えば、式ナンバーNが式ナンバーN−1と式ナンバーN−2との検索式を引用している場合であって、ノード“N−1”とノード“N−2”とがノード“N”の右側に布置される場合においては、ノード“N−1”がノード“N−2”の上にある方が望ましい。なお、独立条件式に対応するノードの場合はこの限りではない。
次に、層構造表示部13は、布置した子ノードが対応する条件式(検索式に相当する条件式または独立条件式)が、他の検索式を引用しているまたは他の条件式を含む(ネストしている)場合、当該条件式が引用している検索式に対応する検索式ノードや、当該条件式から展開される独立条件式に対応する独立条件式ノードを、上記の布置した子ノードの子ノード(すなわち、式ナンバーNの孫ノード)としてさらに布置するとともに、演算子エッジで当該ノード間(式ナンバーNから見て子ノードと孫ノード間)を接続する(ステップA134)。このときも、孫ノード同士の位置関係は任意であるが、ノードに付された式ナンバーが小さい方が上に配置される方が望ましい。以後、当該処理を末端ノードに至るまで、すなわち、最初の抽出した式ナンバーが示す検索式もしくは引用先の検索式において他の検索式の引用が無くなる、および、ノード未布置の独立条件式が無くなるまで繰り返す。
次に、必要に応じて、布置したノードに付随させて、条件式の内容(検索項目とその指定内容等)を表示する。さらに、コメント(条件式の説明等)を表示することも可能である。ここで、「ノードに付随させる」とは、より具体的には、対応関係が明確になるように、他のノードと比較して対象ノードと最も近くなるように配置したり、引き出し線等を付したり、ノード内に記述することであってもよい。
条件式の内容やコメントを付随させて表示することで、ノードの意味するところを明確化し、検索式の認識性を向上させることができる。ここで、層構造表示部13は、例えば、末端ノードを対象に、条件式の内容やコメントを付随させてもよい。
次に、層構造表示部13は、まだ検索式ノードを布置していない式ナンバーがあれば、それを抽出する(ステップA136)。ここで、式ナンバーが抽出された場合、層構造表示部13は、当該式ナンバーが示す検索式に対応する検索式ノードを第2のルートノードとして、布置する(ステップA137)。第2のルートノードは、第1のルートノードと同じ階層に位置するように布置するのが好ましい。第2のルートノードを布置した以降の動作は、第1のルートノードを布置した以降の動作と同じである。すなわち、ステップA133〜ステップA137を未処理の式ナンバーが無くなるまで繰り返す。
図9〜図13は、層構造表示部による階層表示の例を示す説明図である。図9は、1つの検索式に論理和演算子と論理積演算子が含まれていた場合の表示例を示す説明図である。今、検索式S004として、((検索式S001+検索式S002)*検索式S003)という条件が与えられたとする。このような場合に、例えば、検索式の各々に対して少なくとも検索式ノードを割り当てるルールの場合、検索式S004は、少なくとも4つの条件式に展開される。例えば、検索式S004は、検索式S001の引用を示す条件式4−1aと、検索式S002の引用を示す条件式4−2aと、検索式S003の引用を示す条件式4−3aと、検索式S004に相当する条件式であり、上記3つの条件式に対する論理積および論理和の演算子を有する条件式4−4aと、に展開される。図9(a)は、そのように展開された検索式S004に対する階層表示の例である。なお、本例は、条件式に対応する検索式ノードのみを布置する例であり、検索式S004に含まれる、他の検索式の引用を示す条件式を、そのまま引用先の検索式に相当する条件式として扱っている。この場合、図9(a)に示すように、論理和エッジと論理積エッジとが一体化して表示されてもよい。また、図9(b)および図9(c)に示すように、検索式の引用を示す条件式に検索式ノードを割り当てるだけでなく、括弧に対応した条件式にも独立条件式ノードを割り当てることも可能である。この場合、例えば、検索式S004は、検索式S001の引用を示す条件式4−1bと、検索式S002の引用を示す条件式4−2bと、条件式4−1bと条件式4−2bの論理和演算を示す条件式4−3b、検索式S003の引用を示す条件式4−4bと、検索式S004に相当する条件式であり、上記の条件式4−1bと条件式4−4bの論理積演算を示す条件式4−5bと、に展開される。層構造表示部13は、図9(b)や図9(c)に示すように、内括弧に対応する条件式4−3bに対応するノードとして、“t1”とラベリングされた独立条件式ノード81cを追加して表示することも可能である。なお、図中では表示していないが、独立条件式ノードを追加した場合において、当該独立条件式ノードに対応する条件式を基に新たに検索式を設けた場合には、それ以降の検索式の番号を繰り上げる等の処理を併せて行ってもよい。独立条件式ノードを設ける利点として、独立条件式ノードに対応する条件式を基に検索を実行して得られた検索ヒット件数等を表示するなど、独立条件式ノードに対応する情報が表示しやすくなることが挙げられる。なお、図9(a)に示す例においても、論理和エッジと論理積エッジとの接続点付近に、同じような検索ヒット件数を表示することは可能であるが、独立条件式ノードを設けた方が、その対応関係は分かり易いため、好ましい。なお、図9(b)と図9(c)の違いはノード“S003”の階層位置だけであり、いずれでもよい。
また、図10は、ある検索式に否定演算子と他の演算子(例えば、論理積演算子)が含まれていた場合の表示例を示す説明図である。今、検索式S003として、(検索式S002#検索式S001)という条件式が与えられたとする。ここで、“#”は否定演算子を表している。このような場合に、層構造表示部13は、例えば、否定後の状態に対応した条件式“#検索式S001”に対応する独立条件式ノードを設ける方法と、設けない方法とを選択できる。例えば、後者の場合、検索式ノードのみを布置してもよい。その場合、例えば、検索式S003は、検索式S001の引用を示す条件式3−1aと、検索式S002の引用を示す条件式3−2aと、当該検索式S003に相当する条件式であり、上記の条件式3−1aに対する否定と否定後の状態と条件式3−2aとの論理積演算を示す条件式3−3aと、に展開される。図10(a)はそのように展開された検索式S003に対する階層表示の例である。一方、前者の場合、検索式ノードだけでなく、内括弧に対応した独立条件式ノードを布置してもよい。その場合、例えば、検索式S003は、検索式S001の引用を示す条件式3−1bと、条件式3−1bの否定演算を示す条件式3−2bと、検索式S002の引用を示す条件式3−3bと、当該検索式S003に相当する条件式であり、上記の条件式3−2bと条件式3−3bの論理積演算を示す条件式3−4bと、に展開される。図10(b)および図10(c)はそのように展開された検索式S003に対する階層表示の例である。図10(b)および図10(c)に示す例は、図10(a)に示す例と比べて、否定後の状態に対応した条件式3−2bに対応する独立条件式ノードが追加されている。なお、図10(b)と図10(c)の違いはノード“S002”の階層位置だけであり、いずれでもよい。なお、独立条件式ノードを追加した場合に、以降の検索式の番号を繰り上げてもよい点は上記と同様である。
図11は、近接演算子が含まれていた場合の表示例を示す説明図である。今、検索式S001として、全文に対して“[“aaa”*“bbb”,“ccc”]near50”という条件が与えられたとする。ここで、“near50”は順序を問わず50文字以内で近接する、旨の条件を表す近接演算子を表している。すなわち、本例の検索式S001は、全文に、文字列“aaa”と文字列“bbb”の両方を含み、かつこれらのいずれかと、文字列“ccc”とが順不同で50文字以内に含まれている、という条件を指定した検索式の例である。ここで、層構造表示部13は、与えられた検索式S001を1つの条件式と見なして1つの検索式ノードの布置だけで済ますことも可能であるが、例えば図11に示すように、与えられた検索式S001をさらに展開して、1つ以上の独立条件式ノードを含む階層表示を行うことも可能である。その場合、例えば、検索式S001は、全文に文字列“aaa”が含まれる旨の条件を示す条件式1−1と、全文に文字列“bbb”が含まれる旨の条件を示す条件式1−2と、全文に文字列“ccc”が含まれる旨の条件を示す条件式1−3と、当該検索式S001に相当する条件式であり、全文に文字列“aaa”、文字列“bbb”および“ccc”を含み、かつ、文字列“aaa”と文字列“ccc”が順不同で50文字以内に含まれるか文字列“bbb”と文字列“ccc”が順不同で50文字以内に含まれる旨の条件を示す条件式1−4と、に展開されてもよい。なお、図中の独立条件式ノードb1が上記の条件式1−1に対応し、独立条件式ノードb2が上記の条件式1−2に対応し、独立条件式ノードb3が上記の条件式1−3に対応している。図中において符号81dは近接演算子中の論理和演算を示す演算子エッジを表している。なお、図11に示す例では、条件式1−1と条件式1−2の論理積後の状態、すなわち文字列演算子における論理和と論理積との接続点に相当する位置に仮のノード(独立条件式ノード)を設けていないが、当該位置に条件式1−1と条件式1−2の論理積後の状態に対応する独立条件式ノードを設けることも可能である。また、独立条件式ノードを追加した場合に、以降の検索式の番号を繰り上げてもよい点は上記と同様である。
図12は、ある1つの検索式が複数の検索式から引用された場合の表示例を示す説明図である。図12に示す例では、検索式S002が、検索式S003と検索式S005とによって引用されている。また、図13は、ルートノードが複数ある場合の表示例を示す説明図である。図13(a)に示す例では、検索式S003に対応するノードと、検索式S005に対応するノードが各々ルートノードに相当する。また、図13(b)に示す例では、検索式S003に対応するノードと、検索式S004に対応するノードが各々ルートノードに相当する。図13(b)における、検索式S004に対応するノードのように、他のノードのいずれにも接続されないノードも存在し得る。また、検索式が1つだけの場合、1つのノードのみの階層表示となる場合もあり得る。
また、図14は、入力される検索式集合の例を示す説明図である。図14に示すように、検索式集合には、検索式だけでなく、各検索式についての、検索式の識別情報としての式ナンバーと、検索結果としての検索ヒット件数と、コメントとが含まれていてもよい。ここで、コメントは検索式の作成者などが入力する、当該検索式の説明であってもよい。なお、コメントはすべての検索式に付されていなくてもよい。例えば、コメントは、末端ノードに相当する検索式にのみ付されていてもよい。
また、図15は、図14に示す検索式集合に対する階層表示の例を示す説明図である。図15に示すように、層構造表示部13は、検索式または独立条件式に対応するノードと演算子エッジとで構成される検索式の階層表示に加え、その末端ノードに付随させて、条件式の内容を記述した内容ノードや、コメント記述したコメントノードを表示してもよい。このとき、内容ノードやコメントノードの表示態様(形状、文字色、枠線、背景色等)を、検索項目に応じて異ならせてもよい。また、ノードの大きさ(または面積)を検索ヒット件数に応じて異ならせてもよい。
図16〜図18は、層構造表示部による階層表示の例を示す説明図である。層構造表示部13は、図16に示すように、中間ノードやルートノードに付随させて、条件式の内容を記述した内容ノードや、コメント記述したコメントノードを表示することも可能である。また、上記の図15では、検索式集合において母集合となる検索式をルートノードに配置して階層表示を行う例を示したが、層構造表示部13は、例えば、図17に示すように、ユーザが指定した検索式やノードをルートノードにして階層表示を行ってもよい。図17に示す例は、ノードEに対応する検索式を指定して階層表示を行った場合の例である。なお、図17では、上位ノードが省略されている旨を示すものとして、上位側を向いた三角形の印を当該ノードの近傍に配置しているが、当該印は省略されてもよいし、他の表示方法であってもよい。また、図18に示すように、階層数が多くなりすぎた等で表示しきれない場合など、階層数が所定の上限値(本例の場合は簡便に3)を超えた場合には、ノードCのように下位ノードの表示を省略することも可能である。その場合、ノードCに、下位ノードの情報を集約して表示するのが好ましい。また、本例でも、下位ノードが省略されている旨を示すものとして、下位側を向いた三角形の印を当該ノードの近傍に配置しているが、当該印は省略されてもよいし、他の表示方法であってもよい。
ここで、階層数は2から10の範囲が好ましく、4から8の範囲がより好ましく、6から7の範囲がさらに好ましい。
また、図19は、本実施形態の検索式可視化装置の他の構成例を示すブロック図である。図19に示すように、検索式可視化装置100は、説明生成部14をさらに備えていてもよい。説明生成部14は、検索式構造分析部12が生成した検索式構造データに基づいて、上位ノードに対応する検索式または条件式の内容の説明を、当該上位ノードの下位に位置するノードに対応する検索式または条件式の内容の説明を基に生成する。説明生成部14は、その際、重複する部分を削除するなどの加工を行ってもよい。
なお、図19では、図1に示す第1の実施形態の構成に、説明生成部14を加えた構成を示したが、説明生成部14は、第1の実施形態の他の構成や、他の実施形態の構成に含まれていてもよい。
このような説明生成部14を備えることにより、ユーザはすべての検索式に対してコメントを入力しなくても済むため、ユーザの手間を省くことができる。
また、図20は、本実施形態の検索式可視化装置の他の構成例を示すブロック図である。なお、図20には、検索式可視化装置100を備える検索システムの構成例が示されている。図20に示すように、検索式可視化装置100は、検索要求部15をさらに備えていてもよい。検索要求部15は、入力された検索式集合に含まれる検索式の条件式がネストを含む場合に、ネストを分解し、条件式の階層ごとに検索式を作成して、所定の検索手段(本例では、図中の検索実行部200)に検索を要求する。検索要求部15は、例えば、検索式構造分析部12が生成した検索式構造データに含まれる条件式のうちの独立条件式について検索式を作成して検索を要求してもよいし、ユーザが指定した条件式について検索式を作成して検索を要求してもよい。
なお、図20でも、図1に示す第1の実施形態の構成に、検索要求部15を加えた構成を示したが、検索要求部15は、第1の実施形態の他の構成や、他の実施形態の構成に含まれていてもよい。
検索実行部200は、検索式が入力されると、入力された検索式を用いて、検索対象とされるデータを記憶する検索対象データ記憶部300に対して検索を実行する。
図21は、本例の検索式可視化装置の動作の一例を示すフローチャートである。以下では、図8に示す動作と同じものについては同じ符号を付し、説明を省略する。図21に示す例では、検索式構造分析部12による検索式の分析処理(ステップA12)が終了すると、検索要求部15が、入力された検索式集合に検索未実行の検索式または条件式の有無を判定する(ステップA1251)。そして、検索未実行の検索式または条件式があった場合(ステップA1251のYes)、検索要求部15は、検索式を抽出または作成して、検索実行部200に検索を要求する(ステップA1252)。
そして、検索結果を受信した後(ステップA1253)、層構造表示部13が、受信した検索結果を用いて、階層表示(ステップA13)を行ってもよい。
このような構成によれば、各条件式について検索ヒット件数を表示することができるので、ユーザが検索式をより詳細に把握できる。
また、図22に示すように、検索式可視化装置100は、変更操作受付部16と、検索式集合更新部17とをさらに備えていてもよい。
変更操作受付部16は、例えば、層構造表示部13による階層表示を含む画面上で、表示中の階層表示に対する変更操作を受け付ける。変更操作としては、例えば、ノードの追加や削除やエッジの追加や削除、エッジ種別の変更などが挙げられる。また、変更操作受付部16は、ノードが追加された場合またはノードの追加指示とともに、対応する検索式や条件式の情報(式ナンバーや条件式の内容やコメント等)を受け付けられるように、予め用意しておいたデータ入力用の画面を表示させてもよい。
検索式集合更新部17は、変更操作受付部16が受け付けた変更操作を示す情報に基づいて、検索式を変更、追加、削除するなどの検索式集合の更新処理を行う。検索式の変更は、例えば、層構造表示部13が、変更操作受付部16が受け付けた変更操作を示す情報に基づいて階層表示を更新するとともに、検索式構造データを更新後の階層表示に合わせて更新することにより行ってもよい。その場合、検索式集合更新部17は、更新された検索式構造データを基に、検索式集合に新たな検索式を追加したり、既存の検索式の条件式や構造を変更したり、既存の検索式を削除するなどの更新処理を行ってもよい。
なお、検索式集合が更新された場合、更新された検索式や条件式を対象に、上述した検索要求部15による検索の要求処理を行うことも可能である。
以上のように、本実施形態によれば、作成される検索式の数が多い場合や、作成される検索式のネストが深い場合であっても、必要な情報が分かり易く、かつ冗長にならずに表示されるため、視認性のよい階層表示を行うことができる。これにより、ユーザは、検索式集合の全体構造が容易に俯瞰できるので、作成された検索式またはその集合の内容や妥当性を容易に把握できる。
実施形態2.
次に、本発明の第2の実施形態について説明する。図23は、本発明の第2の実施形態の検索式可視化装置の構成例を示すブロック図である。図23に示す検索式可視化装置100は、図1に示した第1の実施形態の構成に比べて、ベン図表示部21を備えている点が異なる。
なお、図23では、図1に示す第1の実施形態の構成に、ベン図表示部21を加えた構成を示したが、ベン図表示部21は、第1の実施形態の他の構成や、他の実施形態の構成に含まれていてもよい。
ベン図表示部21は、指定されたノードに対応する検索式または条件式に関する階層表示をベン図形式にて表示する。
また、図24は、本実施形態の検索式可視化装置100の動作の一例を示すフローチャートである。なお、以下でも、上記の実施形態と同じ動作については同じ符号を付し、説明を省略する。図24に示すように、ベン図表示部21は、例えば、層構造表示部13による階層表示に対して、ユーザが、表示中のあるノードを指定してベン図の表示を要求する操作(ノードをクリックする等)を行った場合に(ステップA21)、ベン図を表示してもよい(ステップA22)。このとき、ベン図表示部21は、指定されたノードの下位ノードに対応する集合を部分集合とするベン図を表示してもよい。
ベン図の表示対象とされる集合は、例えば、指定されたノードの1つ下の下位ノードに対応する集合だけでなく、さらにその下の下位ノード,・・・というように1階層以上の下位ノードに対応する集合を含めてもよい。その上で、ベン図の表示対象とする集合を図式化(円など)し、それらの連結関係に基づいて、重ねて表示する、あるいは、重ねずに表示した上で1つ以上の円を囲む枠を設けるなどして、ベン図を作図してもよい。
図25A〜図25Dは、ベン図表示部によるベン図表示の例を示す説明図である。図25A〜図25Dにおけるベン図は、いずれも図14に示した検索式集合を基に表示された図15に示す階層表示における階層構造を元データとしている。
図25Aには、ノード“S009”が指定された場合の円内表示のベン図表示の例が示されている。また、図25Aには、ベン図表示領域R101内に表示されるベン図の例の他に、ベン図の表示対象とされる集合に関する情報の表示方法を選択するためのラジオボタンの例も示されている。円内表示の場合、ベン図表示部21は、例えば、ベン図の表示対象とされた集合の各々に対応する円の中に、その集合に関する情報として指定された情報(本例では、式ナンバーおよび検索ヒット件数)とともに、指定された情報以外の情報(本例では、条件式の内容)を可能な範囲でテキスト形式にて表示する。
本実施形態では、対象とされる情報を可能な範囲で円内に表示する円内表示と、指定された情報以外の情報を円外に吹き出しを用いて表示する円外表示と、指定された情報以外の情報を円外に表形式にて表示するリスト表示の3種から選択可能としている。ベン図における集合の各々(部分集合が重なることまたは重ならないことによってできる集合も含む)は、色分けされていてもよい。ベン図表示部21は、指定したノードに対応する集合に相当する領域(符号R102参照)を、目立つように濃い色で着色するのが好ましい。なお、当該領域は、実際の円の重なり具合によって形成される領域の形状とは異なる形状であってもよい。
また、図25Bには、円内表示のベン図であって、ルートノードであるノード“S018”が指定された場合のベン図表示の例が示されている。図25Bに示すように、例えば、ルートノードに対応する条件式のベン図の場合、他にルートノード(図の例では、ノード“S019”)があれば、それも別集合として領域内に表示するようにしてもよい。ここで、ノード“S019”に対応する検索式S019は、図14には示されていないが、本例では、出願人を指定する1つの条件式のみを含む検索式であるとしている。なお、ベン図において指定したルートノードとは異なる集合に属する、他のルートノードであることが分かるように、下位ノードの集合で作られる図形の表示態様とは異なる表示態様(例えば、線種を点線にする等)を用いるのが好ましい。
また、図25Cには、ノード“S009”が指定された場合の円外表示のベン図表示の例が示されている。円外表示の場合、ベン図表示部21は、例えば、ベン図の表示対象とされた集合の各々に対応する円の中に、その集合に関する情報として指定された情報(本例では、式ナンバーおよび検索ヒット件数)を可能な範囲でテキスト形式にて表示するとともに、指定された情報以外の情報(本例では、条件式の内容)を当該円からの吹き出し内にテキスト形式にて表示する。このとき、吹き出しの色を、対応するベン図の領域の色と同じまたは類似の色としてもよい。
また、図25Dには、ノード“S009”が指定された場合のリスト表示のベン図表示の例が示されている。リスト表示の場合、ベン図表示部21は、例えば、ベン図の表示対象とされた集合の各々に対応する円の中に、その集合に関する情報として指定された情報(本例では、式ナンバーおよび検索ヒット件数)を可能な範囲でテキスト形式にて表示するとともに、それらベン図の近くに、指定された情報を含む情報(本例では、式ナンバー、ヒット件および条件式の内容)を表形式にして表示する。ここで、表の一番下の行を、指定したノードに対応する集合の情報としてもよい。また、このとき、表の各行の色を、対応するベン図の領域の色と同じまたは類似の色としてもよい。
また、図26Aおよび図26Bは、論理和で連結される条件式に対応する集合を含むベン図表示の例を示す説明図である。なお、図26Aに示す例は、ノード“S014”が指定された場合の円外表示のベン図表示の例である。ベン図表示部21は、条件式間の連結関係が論理和の場合、見やすさや実現性の観点から、例えば、各円を一律に、重ならないように配置してもよい。その上で、それらを囲む枠R103等を設けて、それらの関係が論理和であることを表現してもよい。
また、図26Aに示すように、例えば、ノード“S005”,ノード“S009”,ノード“S012”のように指定したノードの子ノード(第1の下位ノード)にさらに子ノード(第2の下位ノード)がある場合、次のようにして当該第1の下位ノードの条件式の内容を表示してもよい。すなわち、ベン図表示部21は、条件式の内容を表示する際に、第1の下位ノードよりも下位の下位ノードがある場合には、最下層までの各下位ノードの条件式を結合したものを、当該第1の下位ノードの条件式の内容として表示してもよい。
また、図26Bに示す例は、図26Aに示した例のリスト表示バージョンである。ベン図表示部21は、下位ノードを2階層以上含むノードが指定された場合、次のようなリスト表示を行ってもよい。すなわち、第1の下位ノード別に当該第1の下位ノードを構成する最下層までの条件式が連接されるように順番を組み替えたリストを表示してもよい。
また、図27は、論理積で連結される条件式に対応する集合を4以上含むベン図表示の例を示す説明図である。図27に示すように、連結関係が論理積である集合の数が多い場合、見やすさや実現性の観点から、必ずしも、対応する円の重なり具合を正しいものとしなくてもよい。ベン図表示部21は、例えば、対応する円が全体として繋がっている図形(本例では、雲型の図形。以下、連続体図形という)となっていることを条件に、対応する全ての円同士が重なっていなくてもよいことにしてもよい。例えば、図27に示す例では、検索式S01に対応する集合と検索式S03に対応する集合との間の重複は非考慮とされている。そのような場合、指定されたノードに対応する集合に相当する領域の表示については省略してもよいし、例えば、連続体図形の略中心等に特定の図形(本例では、三角形)を置くことによって行ってもよい。なお、図27では、条件式の表示を省略している。
また、図28は、論理積と論理和が混在している集合を含むベン図表示の例を示す説明図である。論理積と論理和とが混在している場合には、ベン図表示部21は、図28に示すように、論理和で連結された和集合に相当する領域(枠R103で囲まれた領域)を、1つの仮集合として表示してもよい。なお、図28に示す例は、例えば、(検索式S07+検索式S08)*検索式S09*検索式S10*検索式S11、という条件を指定した検索式S12に対応するノードが指定された場合のベン図表示の例である。
また、図29は、ベン図表示における円の配置例を示す説明図である。図29(a)は、論理和で連結される条件式に対応する集合を多数含む場合の円の配置例を示す説明図であり、図29(b)は、論理積で連結される条件式に対応する集合を多数含む場合の円の配置例を示す説明図である。対象とする集合が多い場合、ベン図表示部21は、各円が対応する式ナンバーが最も小さい円を中心に布置した上で、そこから順に時計周りでらせん状に円を布置してもよい。このとき、例えば、各円の直径は設定ファイルで変更可能にしてもよい。その上で、図29(a)に示すように論理和接続の場合には、各円の中心間の距離を、円の直径の1倍より大きい距離となるようにしてもよい。
一方、図29(b)に示すように論理積接続の場合には、各円の中心位置の距離を、円の直径の1倍未満の値となるようにしてもよい。ここで、図29(b)に示す例では、中心に仮の円“S00”(図中の(0)が付された円)を置くことで、指定したノードに対応する集合に相当する領域の表示スペースを確保しているが、指定したノードに対応する集合に相当する領域の表示を省略する場合には、仮の円“S00”を置かずに、図29(a)と同様、式ナンバーが最も小さい円を中心に布置してもよい。
以上のように、本実施形態によれば、指定されたノードに対してその下層の集合に関するベン図を表示することができるので、さらに検索式間、検索式と条件式間の関係等を把握しやすくなる。
実施形態3.
次に、本発明の第3の実施形態について説明する。図30は、第3の実施形態の検索式可視化装置の構成例を示すブロック図である。図30に示す検索式可視化装置100は、図19に示した第1の実施形態の構成に比べて、問題検出部31と、アラート表示部32と、を備えている点が異なる。
なお、図30では、図23に示す第1の実施形態の構成に、ベン図表示部21を加えた構成を示したが、問題検出部31およびアラート表示部32は、第1の実施形態の他の構成や、他の実施形態の構成に含まれていてもよい。
問題検出部31は、検索式集合に含まれる検索式間の連結関係、検索式内の条件式間の連結関係、検索式内の条件式の内容または検索式の内容の説明に対して、予め定められた条件に従い、問題を検出する。
アラート表示部32は、問題検出部31によって問題が検出された場合に、アラートを表示する。
また、図31は、本実施形態の検索式可視化装置の動作の一例を示すフローチャートである。なお、以下でも、上記の実施形態と同じ動作については同じ符号を付し、説明を省略する。図31に示すように、問題検出部31は、例えば、層構造表示部13による階層化表示の後、検索式集合に含まれる検索式間の連結関係または検索式内の条件式間の連結関係もしくは検索式内の条件式の内容を走査して、問題の有無を判定する(ステップA31)。問題が検出された場合(ステップA31のYes)、アラート表示部32が、検出された問題の情報を出力する(ステップA32)。なお、問題検出のタイミングはこの限りではない。例えば、問題検出部31は、階層化表示の前に、検索式構造データに基づいて問題の有無を判定してもよい。
問題検出部31は、他の検索式と連結関係のない検索式が含まれている場合に、当該検索式に対して問題を検出してもよい。これは、例えば、図13(b)におけるノード“S004”が相当する。
また、問題検出部31は、ある検索式内において論理和演算子で連結された要素(条件式や検索項目に対する指定内容等)間で検索ヒット件数が大きく異なる場合に、問題を検出してもよい。問題検出部31は、例えば、論理和演算子で連結された要素間で検索ヒット件数の比が所定の閾値以上または比の差が所定の閾値以上となる条件式を含む検索式があった場合に、当該検索式または条件式に対して問題を検出してもよい。これは、ある条件式内において他の指定要素と比べて極端に検索ヒット件数が大きい指定要素がそのような他の指定要素と論理和演算子で結合された場合、広い概念と狭い概念とで論理和をとっていることが想定されるためである。そのような絞り込みでは狭い方の概念の寄与がほとんど現れないことから、ユーザが意図的に作成していない場合にはアラートを表示して注意喚起を行うのが好ましい。ここで、意図的か否かに関して、例えば、問題検出部31は、ユーザが予め用意されているアラーム項目のうち検出対象とするアラーム項目を指定できるようにしてもよい。以下、他の問題検出に関して同様とする。そのようにすれば、ユーザは上記のような検索式を意図的に作成した場合に、該当するアラーム項目を検出対象から除外することで、不要なアラームが表示されないようにできる。
問題検出部31は、例えば、論理和演算子で連結される要素が2つの場合、両者の検索ヒット件数の比が所定の閾値以上であれば、問題を検出してもよい。また、問題検出部31は、例えば、論理和演算子で連結される要素が3つ以上の場合、論理和で接続された条件式同士で検索ヒット件数の比を求めた上で、各々のヒット件数の比同士の差を求め、得られた差のいずれか1つでも所定の閾値以上であれば、問題を検出してもよい。
また、問題検出部31は、2つ以上の検索式から引用される検索式がある場合に、問題を検出してもよい。これは、例えば、図12におけるノード“S002”が相当する。
また、問題検出部31は、検索式集合内に2つのルートノードが含まれている場合に、問題を検出してもよい。これは、例えば、図13(a)におけるノード“S003”とノード“S005”や、図13(b)におけるノード“S003”とノード“S004”が相当する。
また、問題検出部31は、コード形式の検索項目に対する指定を含む検索式があった場合に、当該検索式において指定されたコードに関して、正規の説明と、ユーザが入力した説明とを比較して、両者の説明が大きく異なる場合に、問題を検出してもよい。これは、分類コードのように、コード形式の検索項目の場合、数値等の入力ミスが考えられるためである。問題検出部31は、例えば、条件式において指定されたコードについて、予め登録されている正規の説明と、検索式集合にコメントとして含まれている、ユーザがコードの入力の際に併せて入力した、入力コードに関する説明とのマッチングを行い、類似度が所定の閾値以下である場合に、当該条件式または当該条件式を含む検索式に対して問題を検出してもよい。
また、問題検出部31は、テキスト形式の検索項目に対する指定を含む検索式があった場合であって、当該指定に複数のキーワードが記載されている場合に、各キーワードの概念のレベルを判定してもよい。問題検出部31は、例えば、シソーラスを用いてキーワード間の概念の上/中/下といったレベルを判定し、概念の広さが大きく異なるキーワードが用いられている条件式を含む検索式があった場合に、当該検索式または条件式に対して問題を検出してもよい。例えば、上位概念の用語と下位概念の用語とが論理積や論理和演算で結ばれているような条件式を含む検索式があった場合、上位概念の用語による検索ヒット件数の跳ね上がりや逆に下位概念の用語による検索ヒット件数の極端な減少が起こりやすい。このため、ユーザが意図的に作成していない場合にはアラートを表示するなどして注意喚起を行うのが好ましい。
アラート表示部32は、アラートを表示する方法として、層構造表示部13による階層表示において、検出された問題に関連する箇所を強調表示してもよい。その際、アラート表示部32は、層構造表示部13に問題箇所を特定可能な情報を付与した要求を行うことで、層構造表示部13に該当箇所の強調表示を行わせてもよい。そのように、層構造表示部13がアラート表示部32の一部の機能を兼ねていてもよい。
また、アラート表示部32は、アラートを表示する方法として、ベン図表示部21によるベン図表示において、検出された問題に関連する箇所を強調表示してもよい。その際、アラート表示部32は、ベン図表示部21に問題箇所を特定可能な情報を付与した要求を行うことで、ベン図表示部21に該当箇所の強調表示を行わせてもよい。そのように、ベン図表示部21が、アラート表示部32の一部の機能を兼ねていてもよい。
また、図32は、問題検出部31のより詳細な構成例を示すブロック図である。なお、本例は、コードの入力ミスを検出するための構成の例である。なお、本例では、コード形式の検索項目が特許分類である場合を例に用いて説明するが、コード形式の検索項目は特許分類に限られない。
図32に示す問題検出部31は、特許分類説明抽出部311Aと、説明比較部312Aと、を含んでいる。また、本実施形態の検索式可視化装置100には、コード形式の検索項目において指定可能な各コードに対応する説明をテキスト形式で記憶するデータベース(本例では、特許分類データベース41)にアクセス可能なインタフェース(例えば、ネットワークインタフェース1005)が含まれているものとする。
ここで、特許分類データベース41(以下、特許分類DB41)内に含まれる特許分類としては、FI、Fターム、IPC、CPC、USC、ECLA、ICO等が挙げられるが、これに限定されない。また、特許分類DB41には、これらの特許分類の各コードについての説明テキストが登録されているものとする。
特許分類説明抽出部311Aは、検索式に利用された特許分類を確認し、それに対応する特許分類の説明文を特許分類DB41から抽出する。
説明比較部312Aは、特許分類DB41から抽出した特許分類の説明と、該特許分類が使用された検索式に対応づけられているコメント(ユーザが入力した説明文)から抽出される、該特許分類の説明との整合性すなわち類似度を確認する。この類似度の確認には、一般的な自然言語処理技術が利用できる。例えば、編集距離やレーベンシュタイン距離などを利用する方法が挙げられる。さらに、コサイン類似度、TF−IDF(Term Frequency−Inverse Document Frequency)や、LSI(Latent Semantic Indexing)なども利用できるが、これに限定されるものではない。
説明比較部312Aは、算出された2つの説明文の類似度が所定の閾値以下の場合に、該特許分類または該特許分類の指定を含む条件式もしくは検索式に対して問題を検出してもよい。
また、図33は、問題検出部31の他の構成例を示すブロック図である。なお、本例は、キーワード間の概念のレベルを検出するための構成の例である。
図33に示す問題検出部31は、テキスト抽出部311Bと、テキスト比較部312Bと、を含んでいる。また、本実施形態の検索式可視化装置100には、シソーラスデータベース42にアクセス可能なインタフェース(例えば、ネットワークインタフェース1005)が含まれているものとする。
シソーラスデータベース42(以下、シソーラスDB42という)としては、任意のものを利用できる。例えば、「WordNet」等のシソーラスデータベースが利用できる。
テキスト抽出部311Bは、各検索式中のテキスト形式で指定されたキーワードを抽出する。また、テキスト抽出部311Bは、抽出したキーワード間の関係を、抽出元の各検索式にしたがって構造化する。構造化の形式は特に問わない。例えば、木構造であってもよいし、ベン図形式であってもよい。なお、キーワードの構造化は検索式構造データを参照する場合は省略可能である。
テキスト比較部312Bは、シソーラスDB42を用いて、抽出された各キーワードを上位概念、下位概念等に分類する。その結果、テキスト比較部312Bは、概念のレベルが所定の範囲を超えて異なるキーワード間に連結関係を有する条件式を含む検索式があれば、問題を検出してもよい。テキスト比較部312Bは、例えば、下位の階層のキーワードと上位の階層のキーワードが論理和演算子で結びつけられていた場合、検索式としては好ましくない場合があるため、問題を検出してもよい。
なお、図33に示す構成では、さらにシソーラスDB42と、入力された検索式に対するコメントとを利用して、適切な検索ができているかを確認してもよい。
例えば、図34に示すノード“S003”に対応する検索式のように、論理和を含む検索式S003があった場合、検索式S003に対するコメントが、検索式S001に対するコメントと検索式S002に対するコメントの選言であれば、当該検索式は適切と判断できる。
テキスト抽出部311Bは、検索式に付与されたコメントを抽出する。コメントはキーワードでもテキストでも構わない。テキスト抽出部311Bは、テキストの場合に形態素解析を行うことができる。
本例では、説明生成部14が、検索式S001に対するコメントと検索式S002に対するコメントから検索式S003に対するコメントを生成しているものとする。図34の例の場合、論理和演算子が用いられていることから、検索式S001に対するコメントと検索式S002に対するコメントを合成して検索式S003に対するコメントとして1つのコメントを生成する。説明生成部14は、例えば、コメントがテキストの場合、類似部分を省略した上で、選言を作成してもよい。コメントが単語であれば、2つの単語の上位概念をシソーラスDB42を参照して抽出し、それを検索式S003に対するコメントとしてもよい。
テキスト比較部312Bは、検索式内に論理和演算子が含まれていた場合、説明生成部14が下位ノードのコメントから生成したコメントをそのまま当該検索式のコメントとして採用してもよい。または、テキスト比較部312Bは、説明生成部14が生成したコメントとユーザが作成したコメントとを比較して、その類似性を確認してもよい。類似性の確認は、人的に行ってもよいし、自然言語処理に基づいて類似度の判定を行っても構わない。類似度が小さい場合(非類似判定となった場合)、テキスト比較部312Bは、その差の原因を分析し、結果を、検索式S001または検索式S002に対するコメントや条件式に反映させてもよい。または、テキスト比較部312Bは、類似度が小さい場合に、上位ノードに対応する検索式(例えば、検索式S003)に対して問題を検出してもよい。
なお、図34の例は、コメント数が2で階層数が2の場合の例であるが、コメント数や階層数に特に制限はなく、論理積演算子との混合系であっても構わない。また、本例のプロセスは、コメント欄にテキストや単語が含まれていれば、検索項目や条件式に特に制限はない。
例えば、図35に示すノード“S003”が対応する検索式のように、論理積を含む検索式(S003)があった場合も適用可能である。例えば、検索式S003に対するコメントが、検索式S001に対するコメントと検索式S002に対するコメントの選言であれば、当該検索式S003は適切と判断できる。
本例でも、説明生成部14が、検索式S001に対するコメントと検索式S002に対するコメントから検索式S003に対するコメントを生成しているものとする。図35の例の場合、論理積演算子が用いられていることから、検索式S001に対するコメントと検索式S002に対するコメントの連言を、検索式S003に対するコメントとして生成してもよい。連言は、2つの文章の単純な短縮系となっても構わない。また、説明生成部14は、例えば、コメントがテキストの場合は、「かつ」で繋げてもよい。
テキスト比較部312Bは、下位ノードを持つノード(上位ノード)に対応する検索式に対するコメントとして、説明生成部14が生成したコメントをそのまま採用してもよいし、説明生成部14が生成したコメントとユーザが作成したコメントとを比較して、その類似性を確認してもよい。類似性の確認は、人的に行ってもよいし、自然言語処理に基づいて類似度の判定を行っても構わない。類似度が小さい場合(非類似判定となった場合)、テキスト比較部312Bは、その差の原因を分析し、結果を、S001またはS002のコメントや条件式に反映させてもよい。または、テキスト比較部312Bは、類似度が小さい場合に、当該検索式または当該検索式に対してユーザが作成したコメントに対して問題を検出してもよい。
なお、図35の例も、コメント数が2で階層数が2の場合の例であるが、コメント数や階層数に特に制限はなく、論理和演算子との混合系であっても構わない。また、本例のプロセスは、コメント欄にテキストや単語が含まれていれば、検索項目や条件式に特に制限はない。
例えば、コメントの自動作成機能をルートノードまで繰り返し行えば、ルートノードのコメントを見るだけで、その検索式集合がどのような検索を行っているのかをテキストベースで確認することも可能である。また、ルートノードのコメントから、目的と合致する検索式が作成されたか否かを評価することも可能である。
以上のように、本実施形態によれば、検索式として好ましくない可能性のある種々のアラートが表示されるので、問題の有無を含めて検索式の全体構造が容易に把握できる。さらに、問題のある箇所が指摘されることにより、検索式作成の効率が著しく改善されるとともに手戻りの工数も大きく削減できる。
次に、本発明の概要を説明する。図36は、本発明の概要を示すブロック図である。図36に示すように、本発明の検索式可視化装置500は、検索式集合入力手段501と、第1の表示手段502と、を備えている。
検索式集合入力手段501(例えば、検索式入力部11)は、1つ以上の検索式を含む検索式集合を入力する。
第1の表示手段502(例えば、層構造表示部13)は、入力された検索式集合の少なくとも一部を、階層化して表示する。
ここで、第1の表示手段502は、入力された検索式集合の少なくとも一部を、検索式または検索式に含まれる条件式に対応するノードと、ノード間を結ぶエッジであって検索演算子に対応する演算子エッジと、を有する構造に階層化して表示する。
以上のような構成を備えることにより、検索式に不慣れなユーザであっても、また、作成された検索式内における条件式の構造が複雑な場合であっても、作成された検索式またはその集合の内容や妥当性を容易に把握できる。
また、検索式可視化装置500は、図37に示すような構成であってもよい。すなわち、検索式可視化装置500は、さらに、検索式集合分析手段503や、第2の表示手段504や、説明生成手段505や、問題検出手段506や、アラート表示手段507や、変更操作受付手段508や、検索式更新手段509や、検索要求手段510を備えていてもよい。なお、検索式可視化装置500は、図37に示した手段のうちのいずれか1つを備える構成であってもよい。
検索式集合分析手段503(例えば、検索式構造分析部12)は、検索式集合に含まれる各検索式内の条件式を分析して、検索式集合に含まれる検索式間の連結関係および各検索式内の条件式間の連結関係を示すデータを生成する。
第2の表示手段504(例えば、ベン図表示部21)は、指定されたノードに対応する検索式または条件式に関する階層表示をベン図形式にて表示する。
説明生成手段505(例えば、説明生成部14)は、上位ノードに対応する検索式または条件式の内容の説明を、当該上位ノードの下位に位置する下位ノードに対応する検索式または条件式の内容の説明を基に生成する。
問題検出手段506(例えば、問題検出部31)は、検索式集合、検索式集合に含まれる検索式の内容、検索式内の条件式の内容、検索式集合に含まれる検索式間の連結関係、検索式内の条件式間の連結関係、または、検索式もしくは検索式内の条件式の内容の説明、の少なくともいずれかに対して、予め定められた条件に従い、問題を検出する。
アラート表示手段507(例えば、アラート表示部32や層構造表示部13やベン図表示部21)は、問題検出手段506によって検出された問題が検出された場合に、アラートを表示する。
変更操作受付手段508(例えば、変更操作受付部16)は、第1の表示手段502による階層表示を含む画面上で、階層表示に対する変更操作を受け付ける。
検索式更新手段509(例えば、検索式集合更新部17)は、変更操作受付手段508が受け付けた変更操作を示す情報を基に、検索式集合を更新する。
検索要求手段510(例えば、検索要求部15)は、入力された検索式集合に含まれる検索式が2以上の条件式を含む場合に、該条件式のうち検索結果が付与されていない条件式の各々について、所定の検索手段に検索を要求する。
なお、第1の表示手段が行う階層表示の構造は、検索式に対応する検索式ノードと、検索式ノードと重複しない範囲で検索式に含まれる条件式に対応する独立条件式ノードと、を含んでいてもよい。
また、第1の表示手段は、検索演算子の種類に応じて演算子エッジの表示態様を異ならせて表示してもよい。
また、第1の表示手段は、表示対象とされる、検索式または検索式に含まれる条件式に対応するノードのうち、少なくとも下位の末端に位置する末端ノードに付随させて、当該末端ノードに対応する検索式または条件式の内容および/または内容の説明を表示してもよい。
また、第1の表示手段は、検索式に対応する検索式ノード内または該検索式ノード付近に、当該検索式ノードに対応する検索式による検索ヒット件数または該検索式の識別情報を表示してもよい。
また、第2の表示手段は、指定されたノードの下位ノードに対応する集合を部分集合とするベン図を表示するとともに、ベン図に含まれる集合に関する情報を、円内に表示する円内表示、円外に吹き出しを用いて表示する円外表示、円外に表形式にて表示するリスト表示、のいずれかの方式により表示してもよい。
また、問題検出手段は、検索式集合に、他の検索式と連結関係のない検索式が含まれている場合に、問題を検出してもよい。
また、問題検出手段は、論理和演算子で連結されている要素間の検索ヒット件数の比が所定の閾値以上または比の差が所定の閾値以上である場合に、問題を検出してもよい。
また、問題検出手段は、1つのノードが複数の上位ノードに接続している場合に、問題を検出してもよい。
また、問題検出手段は、コード形式の検索項目に対する指定を含む条件式があった場合に、該条件式において指定されたコードに関する説明であって所定のデータベースに記憶されている説明である第1の説明と、該コードに関してユーザが入力した説明である第2の説明とのマッチングを行った結果、類似度が所定の閾値以下である場合に、問題を検出してもよい。
また、アラート表示手段は、第1の表示手段による階層表示において、問題検出手段により検出された問題に関連する箇所を強調表示することにより、アラートを表示してもよい。
また、上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)検索式集合、前記検索式集合に含まれる検索式の内容、前記検索式内の条件式の内容、前記検索式間の連結関係、前記検索式内の条件式間の連結関係、または、前記検索式もしくは前記条件式の内容の説明、の少なくともいずれかに対して、予め定められた条件に従い、問題を検出する問題検出手段と、前記問題検出手段によって問題が検出された場合に、アラートを表示するアラート表示手段と、を備え、問題検出手段は、検索式集合に、他の検索式と連結関係のない検索式が含まれている場合に、問題を検出することを特徴とする検索式可視化装置。
(付記2)情報処理装置が、検索式集合に、他の検索式と連結関係のない検索式が含まれている場合に問題を検出して、アラートを表示することを特徴とする検索式可視化方法。
(付記3)コンピュータに、検索式集合、前記検索式集合に含まれる検索式の内容、前記検索式内の条件式の内容、前記検索式間の連結関係、前記検索式内の条件式間の連結関係、または、前記検索式もしくは前記条件式の内容の説明、の少なくともいずれかに対して、予め定められた条件に従い、問題を検出する問題検出処理、および問題が検出された場合に、アラートを表示するアラート表示処理を実行させ、問題検出処理で、検索式集合に、他の検索式と連結関係のない検索式が含まれている場合に、問題を検出させることを特徴とする検索式可視化プログラム。
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。