JP4432475B2 - 文書検索装置、文書検索方法、プログラム - Google Patents

文書検索装置、文書検索方法、プログラム Download PDF

Info

Publication number
JP4432475B2
JP4432475B2 JP2003401508A JP2003401508A JP4432475B2 JP 4432475 B2 JP4432475 B2 JP 4432475B2 JP 2003401508 A JP2003401508 A JP 2003401508A JP 2003401508 A JP2003401508 A JP 2003401508A JP 4432475 B2 JP4432475 B2 JP 4432475B2
Authority
JP
Japan
Prior art keywords
document
search
document information
output
logical operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003401508A
Other languages
English (en)
Other versions
JP2005165521A5 (ja
JP2005165521A (ja
Inventor
季史 山田
惠久 川邉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2003401508A priority Critical patent/JP4432475B2/ja
Publication of JP2005165521A publication Critical patent/JP2005165521A/ja
Publication of JP2005165521A5 publication Critical patent/JP2005165521A5/ja
Application granted granted Critical
Publication of JP4432475B2 publication Critical patent/JP4432475B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、入力された検索式に基づいて所定の条件を満たす文書を検索する文書検索装置、および、その方法、プログラムに関する。
従来から、蓄積された大量の文書の中から所望の文書を取得するための装置として文書検索装置が知られている。これは、予め、各文書に含まれる語(検索語)と各文書の文書情報とを関連付けて記録したインデックス(索引)を作成し、このインデックスに基づいて所望の検索語を含む文書の検索を行うものである。
この装置を用いて文書検索をする場合、通常、ユーザーは、所望の文書の条件を表す検索式を入力する。検索式は、文書に含まれる検索語や論理演算子を組み合わせて、所望の文書の条件を表したものである。文書検索装置は、入力された検索式が示す条件を満たす文書をインデックスから探し、出力する。
特開2001−22757号公報
ところで、従来の文書検索装置では、検索処理に時間がかかるという問題があった。特に、実際に出力される検索結果(検索式の示す条件を満たす文書)の数が数百件の場合であっても、多数(数千、数万件)の検索結果を出力する場合と同じ程度の処理時間がかかっていた。これは、数百件のみを出力する場合であっても、検索処理においては検索式の示す条件を満たす文書を全て検索していたなどの理由による。このように検索処理に時間がかかると、検索開始から結果出力までのレスポンスが悪化し、ひいては、文書検索装置を利用するユーザーに不快感を与えていた。
そのため、従来から検索処理時間を短縮するための種々の技術が開示されている。例えば、特許文献1には、SQLによる関係データベースにアクセスする際に、SQLの構文解析木を走査し、複数の結合処理を展開し、一元的な表の並びとした中間オブジェクトを生成するデータベースアクセス方法が開示されている。これによれば、より高速に関係データベースにアクセスすることができる。しかしながら、この技術は、関係データベースという特殊なデータベースにおいて効力を発揮するものであり、文書検索装置への適用は困難であった。
そこで、本発明では、検索処理時間を短縮できる文書検索装置およびその方法、プログラムを提供することを目的とする。
本発明の文書検索装置は、入力された検索式を解析し、当該検索式を構成する検索語および論理演算子それぞれに対応する複数のノードから構成される構文木を作成する構文解析手段と、各検索語ごとに設けられ、対応する検索語を含む文書の文書IDを含む文書情報を文書IDの順に記録している複数のデータベースと、各検索語ごとに設けられ、出力要求が入力された場合に、対応する検索語のデータベースに記録されている文書情報を文書IDの順に一つずつ読み込むとともに、当該読み込んだ一つの文書情報を出力する複数の取出手段と、各論理演算子ごとに設けられた複数の論理演算手段であって、出力要求が入力された場合に、下位に位置する取出手段または他の論理演算手段である下位手段が出力した文書情報の文書IDに基づいて、対応する論理演算子が示す条件に合致する文書情報を適合文書情報として一つ特定し、当該特定された一つの適合文書情報を出力する複数の論理演算手段と、構文解析手段により作成された構文木を構成する各ノードそれぞれに対応する取出手段および論理演算手段の入出力関係を、当該構文木を構成するノードの一つである下位ノードに対応する論理演算手段または取出手段から出力された文書情報が当該下位ノードよりも一つ上位に位置する上位ノードに対応する論理演算手段に入力され、かつ、前記上位ノードに対応する論理演算手段からの出力された出力要求が前記下位ノードに対応する論理演算手段または取出手段に入力されるように、設定することにより検索式に対応する文書情報を出力する文書検索手段を生成する生成手段と、検索要求に応じて、所定数の文書情報を取得するまで文書検索手段を動作させ、得られた文書情報を検索結果として出力する制御手段と、を有し、OR演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報のうち文書IDの順番が最も前の文書情報を適合文書情報として特定し、AND演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報全ての文書IDが合致した場合に、当該文書情報を適合文書として特定し、NOT演算子に対応する論理演算手段は、前回適合文書情報として特定した文書情報の文書IDの順番を一つ進めた文書情報が、前記下位手段が出力した文書情報の文書IDに達していない場合には、当該文書IDの文書情報を適合文書情報として特定する、ことを特徴とする。
他の本発明である文書検索プログラムは、入力された検索式を解析し、当該検索式を構成する検索語および論理演算子それぞれに対応する複数のノードから構成される構文木を作成する構文解析手段と、検索語毎に設けられた複数の取出手段であって、出力要求が入力された場合に、検索語ごとに設けられるとともに対応する検索語を含む文書の文書IDを含む文書情報を文書IDの順に記録している複数のデータベースのうち対応する検索語のデータベースに記録されている文書情報を文書IDの順に一つずつ読み込むとともに、当該読み込んだ一つの文書情報を出力する複数の取出手段と、各論理演算子毎に設けられた複数の論理演算手段であって、出力要求が入力された場合、下位に位置する取出手段または他の論理演算手段である下位手段が出力した文書情報の文書IDに基づいて、対応する論理演算子が示す条件に合致する文書情報を適合文書情報として一つ特定し、当該特定された一つの適合文書情報を出力する複数の論理演算手段と、構文解析手段により作成された構文木を構成する各ノードそれぞれに対応する取出手段および論理演算手段の入出力関係を、当該構文木を構成するノードの一つである下位ノードに対応する論理演算手段または取出手段から出力された文書情報が当該下位ノードよりも一つ上位に位置する上位ノードに対応する論理演算手段に入力され、かつ、前記上位ノードに対応する論理演算手段からの出力された出力要求が前記下位ノードに対応する論理演算手段または取出手段に入力されるように、設定することにより検索式に対応する文書情報を出力する文書検索手段を生成する生成手段と、検索要求に応じて、所定数の文書情報を取得するまで文書検索手段を動作させ、得られた文書情報を検索結果として出力する制御手段と、として機能させる文書検索プログラムであって、OR演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報のうち文書IDの順番が最も前の文書情報を適合文書情報として特定し、AND演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報全ての文書IDが合致した場合に、当該文書情報を適合文書として特定し、NOT演算子に対応する論理演算手段は、前回適合文書情報として特定した文書情報の文書IDの順番を一つ進めた文書情報が、前記下位手段が出力した文書情報の文書IDに達していない場合には、当該文書IDの文書情報を適合文書情報として特定する、ことを特徴とする。この場合、AND演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報全ての文書IDが合致しなかった場合には、前記下位手段に新たな文書情報の出力要求とともに複数の文書IDのうち最も順番が後の文書IDも次候補IDとして入力し、前記下位手段は、出力要求とともに次候補IDが入力された場合には、当該次候補IDと同じ、または、当該次候補IDより順番が後の文書IDの文書情報のうち、最も順番が前の文書IDを有した文書情報を出力することが望ましい。また、複数の論理演算手段は、いずれも、1以上の文書情報を入力とし、1つの文書情報を出力する、ことが望ましい。
本発明によれば、文書検索装置での検索処理時間を短縮できる。
以下、本発明の実施の形態について図面を参照して説明する。
図1は、本発明の実施の形態である文書検索装置10のハードウェア構成を示すブロック図である。文書検索装置10には、各部を制御する機能を有する中央処理装置(以下、「CPU」という)12、ROMやRAM等で構成されたメモリ14、検索対象の文書及びその文書情報等を記憶するハードディスク16、キーボードやマウス等で検索条件や種々の指示を与える入力部20、CRTまたは液晶ディスプレイ等で構成され検索結果等を表示する表示部22、フレキシブルディスクに対するデータの読み書きを行なうフレキシブルディスクドライブ(FDD)24、CD−ROMからのデータの読み出しを行なうCD−ROMドライブ26、他の通信装置と信号及びデータを遣り取りするための通信部18等をそれぞれバスによって接続して構成されている。
図2は文書検索装置10の機能構成を示すブロック図である。文書検索装置10は、入力処理部30、検索条件作成部32、検索処理部34、出力処理部36、インデックス作成部38を有している。これらは、CPU12によって制御される。また、多数の文書データを格納する文書格納部40、各文書データの索引(インデックス)を格納するインデックスデータベース群(以下、「インデックスDB群」という)42も有している。これらは、ハードディスク16または通信部18を介して通信される他のコンピュータのハードディスクに設けられる。
入力処理部30は、ユーザーによって入力された検索条件を表す入力内容を取得し、検索条件作成部32に出力するものである。ユーザーが入力する内容としては、所望の文書に含まれるであろう語(検索語)や論理演算子などがある。
検索条件作成部32では、入力された内容に基づいて、検索条件を表す検索式を作成する。検索式とは、検索したい文書の条件を検索語や論理演算子などで表したものである。論理演算子は、検索語に対して条件付けを行うもので、「AND(*(すべてを含む))」、「OR(+(いずれかを含む))」、「NOT(!(含まない))」の3種類がある。したがって、例えば、「語Aと語Bの全てを含む」という条件は、(* A B)という検索式で表される。
作成された検索式は、検索処理部34に出力される。検索処理部34は、後述するように作成された検索式に基づいて、所定の条件を満たす文書の検索処理を行う。検索処理部34の処理により得られた検索結果は、出力処理部36で所定の出力形式に整えられ、出力される。
インデックス作成部38は、文書格納部40に格納された多数の文書データを読み込み、各文書に含まれる検索語とその文書の文書情報とを関連付けたインデックスを作成する。文書情報としては、文書の識別子となる文書IDやその文書の作成日、文書の所在を示すアドレスなどがある。インデックスは、各検索語毎に作成され、各検索語用データベース(以下、「各検索語用DB」という)としてインデックスDB群42に記録される。
インデックスDB群42について図3を用いて説明する。インデックスDB群42には、図3に示すように、各検索語毎に作成されたインデックスである各索語用DB42a,42b・・・が格納されている。したがって、例えば、検索語「aaa」を含む文書についての文書情報は、aaa用DB42aにまとめて記録されている。その記録の順序は、文書IDの昇順となっている。また、検索語「bbb」を含む文書についての文書情報は、bbb用DB42bに文書IDの順にまとめて記録されている。インデックスDB群42には、このような各検索語用DBが複数格納されている。したがって、例えば、検索語「aaa」を含む文書の情報を取得したい場合には、全てのDBを読み込むことなく、aaa用DB42aのみを読み込めばよい。つまり、所定の検索語を含む文書の文書情報を得たい場合は、その検索語に対応付けられた各検索語用DBにアクセスすればよい。
なお、ここでは、インデックスDB群42を別個の複数のDBの集まりとしているが、図4に示すように1個のツリー構造DBで実現してもよい。図4は、各検索語を含む文書の文書情報をツリー構造で記録したツリー構造DB43の一例を示す図である。このツリー構造DB43の最下層ノード43dには、各検索語を含む文書の文書情報が記録されている。その記録の順番は、検索語を第1キー、文書IDを第2キーとしてソートした順番である。したがって、最下層ノード43dでは、ある検索語を含む文書の文書情報が文書IDの順に連続して記録されている。言い換えれば、各検索語用DB42を横に並べた場合と同じようになる。
また、中間ノード43b,43cは、それぞれ、複数の下位ノードのうち、最も先頭に位置する下位ノードに記録された検索語と同じ検索語を記録している。例えば、あるノード43b1が、下位ノードとして検索語「A」を記録したノード43c1、検索語「B」を記録したノード43c2、検索語「C」を記録したノード43c3を有する場合、あるノード43b1は、下位ノードのうち先頭に位置するノード43c1に記録された検索語「A」を記録している。
このように、各ノードが最も先頭に位置する下位ノードに記録された検索語を記録することにより、所望の検索語を記録したノードに容易に到達することができる。すなわち、上位ノードから順に下位ノードへ移動する際に、常に、所望の検索語より手前または同じ検索語を記録した下位ノードへと移動することにより、最短の距離で所望の最下層ノードへと到達することができる。
次に、図2における検索処理部34について詳説する。図5に検索処理部34の詳細な機能ブロック図を示す。検索処理部34は、構文解析部50、モジュール作成部52、プログラム作成部54、実行部56を有する。構文解析部50は、入力された検索式を解析し、図6に示すような構文木を作成する。構文木は、検索式を左から順に走査し、その検索式に含まれる各要素(検索語や論理演算子)の関係を木構造で表現したものである。したがって、例えば、(* (+ A B) C)という検索式は、図6に示すような構文木64として表現できる。すなわち、ルートノード66の下に論理演算子AND「*」68が接続され、論理演算子AND「*」68の下に論理演算子OR「+」70と検索語「C」72とが接続され、論理演算子OR「+」70の下に検索語「A」74と検索語「B」76とが接続された構文木64として表現できる。
モジュール作成部52は、後述する論理演算モジュール60および文書ID取得モジュール58を作成する。論理演算モジュール60は論理演算子の種類ごとに、文書ID取得モジュール58は各検索語ごとに作成される。この2種類のモジュール58,60は、予め、作成され保存されていてもよいし、構文木が作成される度に構文木に基づいて作成されてもよい。
プログラム作成部54は、作成された構文木の各ノードを対応するモジュール58,60に置き換えて接続して、検索式で示す条件を満たす文書情報を出力する文書検索プログラム62を作成する。この文書検索プログラム62は、文書検索処理を行うためのプログラムであり、実行部56へと出力される。
実行部56では、文書検索プログラム62を実行し、実際に文書の検索処理を行う。また、実行部56には、予め、所定の数である必要結果数が記録されている。そして、実行部56は、文書検索プログラム62の実行の結果得られる文書情報(検索結果)が、必要結果数に達すれば、その実行を中止する。このように所定の数に達すれば検索プログラム62の実行を中止するのは、次の理由による。
多くの場合、ユーザーが必要とする文書検索結果の数は、数百件程度であることが多い。文書検索結果として数千件を取得しても、ユーザーは、その全ての結果を閲覧することが困難だからである。したがって、文書検索処理の際には、実際にユーザーが閲覧可能な程度の値を必要結果数として設定し、必要結果数分の文書情報(検索結果)が得られれば検索処理を中止するようにする。こうすることで、不必要な検索処理を省くことができ、検索処理時間を短縮できる。
ところで、本実施の形態において、必要結果数の文書情報を得た時点で、文書検索プログラム62の実行を中止できるのは、後述するように文書検索プログラム62がストリーム型プログラムであるからであるが、これについては後に詳説する。
次に、検索プログラム62の処理の流れについて簡単に説明する。図7は、検索式(*(+A B) C)についての検索プログラム62の処理を概念的に示した図である。検索プログラム62は、構文木の各ノードを、それぞれ、モジュール作成部52で作成された文書ID取得モジュール58または論理演算モジュール60に置き換えて接続したものである。したがって、図7において構文木の各ノードに対応する各ブロック60a,60b,58a,58b,58cは、それぞれ、文書ID取得モジュール58または論理演算モジュール60に相当する。各モジュール58,60への入出力関係は、図7における矢印で示されている。
図7において、最下層ノードに相当する各検索語用の文書ID取得モジュール58a,58b,58cは、上位ノードからの出力要求に応じて、各検索語用DB42a,42b42cにアクセスして所定の文書IDを一つ取得する。そして取得した1つの文書IDを上位ノードに出力する。
図7において、*ブロックまたは+ブロックで表される論理演算モジュール60a,60bは、上位モジュール(又はルートノード)からの出力要求に応じて、下位モジュールに対して入力要求(下位モジュールにとっては出力要求)を出力する。そして、下位モジュールから入力された文書IDのうち、各論理演算子の示す条件を満たした文書ID(適合ID)があるかを判別する。適合IDがある場合は、それを上位ノードに一つ出力し、無い場合は、再度、下位モジュールに対して入力要求を出す。
例えば、図7に示した例では、ルートノードから出力要求があった場合、AND演算モジュール60aは、下位モジュールであるOR演算モジュール60bと検索語C用文書ID取得モジュール58cとに入力要求(下位モジュールにとっては出力要求)を出力する。
上位モジュールであるAND演算モジュール60aから出力要求を受けたOR演算モジュール60bは、さらに、下位モジュールである検索語A用文書ID取得モジュール58aと検索語B用文書ID取得モジュール58bとに文書IDの入力要求を出力する。検索語A用文書ID取得モジュール58aは、A用DB42aにアクセスし、所定の文書IDを1つ取得する。そして取得した1つの文書IDをOR演算モジュール60bに出力する。また、検索語B用文書ID取得モジュール58bも所定の1つの文書IDをOR演算モジュール60bに出力する。OR演算モジュール60bは、2つの下位モジュールから入力された2つの文書IDの中に、所定の条件を満たす適合IDがあるかを判別し、有る場合には1つの文書IDを一つ上位モジュール(AND演算モジュール60a)に出力する。無い場合には、適合文書IDを一つ得られるまで、下位モジュール(検索語A用文書ID取得モジュール58a、検索語B用文書ID取得モジュール58b)に入力要求を出力する。
一方、上位モジュールであるAND演算モジュール60aから出力要求を受けた検索語C用文書ID取得モジュール58cもC用DB42cにアクセスして所定の文書IDを一つ取得し、AND演算モジュール60aに出力する。
AND演算モジュール60aは、OR演算モジュール60bおよび検索語C用文書ID取得モジュール58cから入力された2つの文書IDの中に、所定の条件を満たす文書ID(適合ID)があるかを判別する。適合IDが有る場合にはそれを出力し、無い場合には、再度、下位モジュールに対して入力要求を出力する。
この検索プログラム62は、実行の都度にプログラムに記載された命令を解釈するインタプリタ型ではなく、予め、機械語にコンパイルされたコインパイル型プログラムである。したがって、実行の度に、命令解釈をする必要がない。
また、この検索プログラム62は、所定の条件を満たす文書IDを1つ得るために上位モジュールから下位モジュールに向かって順次処理を行うストリーム型プログラムとなっている。
これに対し、従来の多くの文書検索装置では、各ノードごとに各ノードで示す条件を満たす全文書の文書IDを取得し、これを上位ノードに出力していた。したがって、例えば、図7の例では、最下層ノードである検索語A用文書ID取得モジュール58aは、DB全部を読み込み、検索語Aを含む全文書の文書IDを取得し、上位ノードに出力していた。つまり、各ノード毎に中間出力として所定の条件を満たす全文書IDを出力していた。
このような中間出力を出力していたのは、従来の文書検索装置では、各ノード毎に中間出力を出力しなければ、最終的に出力される検索結果の最適性(検索結果が検索式で示す条件を満たしているということ)が担保できなかったからである。特にAND検索を行う場合には、中間出力を出力しなければAND条件を満たしているかの正確な判断ができなかった。
しかしながら、中間出力を出力する従来の方式では、DB全部を読み込まなければならず、全体の検索処理時間が長くなってしまっていた。特に、所定の数(例えば、数百件など)の検索結果のみが必要な場合であっても、所定の条件を満たす文書を全て出力しなければならず、必要数の検索結果が得られた時点での検索処理の中止ができなかった。したがって、必要以上に検索処理時間がかかっていた。
一方、本実施の形態では、上述したように、所定の条件を満たす文書IDを1つ得るために上位モジュールから下位モジュールに向かって順次処理を行うストリーム型プログラムとなっている。そして、各モジュール(ノード)それぞれが、各モジュール(ノード)の示す条件を満たす文書IDを1つ取得し、それを上位モジュールに出力する。したがって、所定の数の検索結果が得られた時点で検索処理を中止できる。したがって、その所定の数の検索結果を得るために必要となる最低限の時間で検索処理を行うことができる。
このようなストリーム型プログラムであっても、その出力の最適性が保障されるのは、インデックスDB群の構成、および、文書検索プログラム62を構成する各モジュール58,60の処理の方式に特徴があるからである。そこで、各モジュール58,60での処理について図8〜図12を用いて説明する。
はじめに、文書ID取得モジュール58の処理について図8を用いて説明する。文書ID取得モジュール58では、上位モジュールから出力要求があった場合、対応する検索語用DBを読み込む(S10)。例えば、検索語「aaa」用の文書ID取得モジュールでは、検索語「aaa」を含む文書の文書情報を記録したaaa用DBを読み込む。したがって、文書ID取得モジュールは、DBの中から対応する検索語を探す必要はなく、各検索語用DBに記録されている順番に文書情報を読み込めばよい。
そして、各検索語用DBにおいてN番目に記録されている文書IDを取得する(S12)。ここで、Nは、文書ID取得モジュールが備えているカウンタの値である。このカウンタの初期値は1となっているため、文書ID取得モジュールは、最初は、各検索語用DBに1番目に記録されている文書IDを取得する。そして、取得した文書IDを上位ノードに出力する(S14)。なお、本実施の形態では、文書IDのみを取得し、出力しているが、他の文書情報、例えば、文書データのアドレスや作成日なども取得出力してもよい。
文書IDを出力すれば、カウンタの値Nを一つインクリメントする(S16)。したがって、次に出力要求があった場合は、前回出力した文書IDの次に記録された文書IDを出力する。言い換えれば、文書ID取得モジュールは、文書IDを各検索語用DBに記録されている順に一つずつ取得、出力する。
ここで、各検索語用DBは、各検索語を含む文書の文書情報を文書IDの順に記録されている。また、文書ID取得モジュールは、文書IDを記録されている順に一つずつ取得、出力する。したがって、文書ID取得モジュールは、各検索語を含む文書の文書情報を文書IDの順に取得、出力することになる。
また、文書ID取得モジュールは、各検索語用DBに記録されている順に文書IDを一つずつ取得し、出力する。したがって、各検索語用DB全てを読み込む必要はなく、一つの文書IDを取得出力するための処理時間は、極めて、短時間ですむことになる。
次に、論理演算モジュールの処理について図9を用いて説明する。論理演算モジュールは、上位モジュールから出力要求があれば、対象下位モジュールに対して入力要求(下位モジュールにとっての出力要求)を出力する(S20)。ここで、対象下位モジュールとは、論理演算モジュールの下位に位置する1以上の下位モジュールのうち、入力要求を出す対象となる下位モジュールである。この対象下位モジュールは、初期では、論理演算モジュールの下位に位置する全ての下位モジュールであり、2回目以降では後述する適合IDの有無判別処理において判別された下位モジュールである。
次に下位モジュールから文書IDが入力されれば、これを取得する(S22)。そして得られた文書IDに基づいて文書IDテーブル80を更新する(S24)。文書IDテーブル80は、図9に示すように各下位モジュールから出力された文書IDを記録したテーブルである。ここには、どの下位モジュールがどの文書IDを出力したかが関連付けられて記録される。ただし、ここで各下位モジュールは、何番目の下位モジュールであるかのみが認識されており、その下位モジュールの具体的種類、論理演算モジュールであるのか、取得モジュールであるか、などの認識はなされない。したがって、各論理モジュールが何で有るかを認識しなくてよい。
文書IDテーブル80を更新すれば、その文書IDテーブル80に記録された文書IDのうち、所定の条件を満たす文書IDである適合IDがあるかを判別する(S26)。この適合IDの有無判別の処理は、各論理演算子毎に決められている。そして、適合IDがあると判別した場合は、それを上位モジュールに出力する(S30)。一方、適合IDが無いと判別した場合は、対象下位モジュールに再度、入力要求を出力する(S20)。そして、適合IDが得られるまで、これを繰り返す。
次に、各論理演算子毎に決められる適合IDの有無判別について図10〜図12を用いて説明する。初めにOR用の論理演算モジュールであるOR演算モジュールでの適合IDの有無判別について図10を用いて説明する。
OR演算モジュールは、適合IDの有無を判別する場合、まず、文書IDテーブルに記録された文書IDを比較する(S32)。ここで、ORは、「いずれかを含む」を表す論理演算子である。したがって、OR演算モジュールは、複数の下位モジュールが示す複数の条件のうち、いずれか1つの条件を満たす文書IDを出力すればよい。また、各下位モジュールはそれぞれが示す条件を満たした文書IDを出力する。したがって、OR演算モジュールは、複数の下位モジュールから出力される複数の文書IDであれば、どれであっても適合IDとすることができる。言い換えれば、OR演算モジュールは、下位モジュールから文書IDが入力されれば、常に、適合IDが有ると判別することができる。
ただし、下位モジュールから複数の文書IDが出力されても、OR演算モジュールが出力する文書IDは、1つずつである。そこで、OR演算モジュールは、文書IDテーブル80に記憶された複数の文書IDのうち、最小の文書IDを適合IDとして判別する(S36)。
また、適合IDを出力した下位モジュールを、次に入力要求を出力する対象下位モジュールとして設定する(S38)。最小の文書IDが2以上の下位モジュールから出力されていた場合には、その2以上の下位モジュールを対象下位モジュールとしてセットする。
次にAND演算モジュールの適合IDの有無判別処理について図11を用いて説明する。ANDは、「すべてを含む」を表す論理演算子である。したがって、AND演算モジュールは、複数の下位モジュールが示す複数の条件全てを満たす文書IDを出力する。
上述したように下位モジュールは、各モジュールが示す条件を満たす文書IDを出力している。したがって、各下位モジュールから出力された文書IDが一致する場合、その文書IDは、各下位モジュールで示す複数の条件全てを満たす文書の文書IDであると判断できる。例えば、検索語「A」を含み、かつ、検索語「B」を含むという条件は、図15に示すような構文木で表すことができる。このとき、A用文書ID取得モジュール58aは検索語Aを含む文書の文書IDを、B用文書ID取得モジュール58bは検索語Bを含む文書の文書IDを、それぞれ出力する。したがって、A用文書ID取得モジュール58aで出力された文書IDとB用文書ID取得モジュール58bで出力された文書IDとが同じである場合、その文書IDの文書は、「検索語Aを含み、かつ、検索語Bを含む」と判断できる。
したがって、AND演算モジュールは、適合IDの有無判別において、文書IDテーブル80に記録された文書IDが全て一致するかを判別する(S40)。全て一致する場合は、適合文書IDがあると判断し(S42)、一致した文書IDを適合IDとして出力する(S44)。また、全下位ノードを対象下位ノードにセットする(S46)。
一方、全文書IDが一致しなかった場合は、適合文書IDは無いと判別する(S48)。そして、全文書IDのうち、最小の文書IDを出力したモジュールを対象下位モジュールにセットする(S50)。これにより、次回は、最小の文書IDを出力したモジュールから新たな文書IDが入力される。
このように判別する理由について簡単に説明する。例えば、図15に示す構文木において、最初の入力要求に対して、A用文書ID取得モジュール58aから文書ID「0003」が出力され、B用文書ID取得モジュール58bから「0004」が出力された場合について考える。各文書ID取得モジュール58a,58bは文書IDを昇順に出力する。したがって、B用文書ID取得モジュール58bから「0004」が出力された場合、検索語Bは文書ID「0004」より小さい文書IDの文書には含まれないと判断できる。言い換えれば、文書ID「0003」の文書には、検索語Bは含まれないと判別できる。一方で、文書ID「0004」の文書には検索語Aが含まれるか否かは、まだ不明である。したがって、文書ID「0003」を出力したA用文書ID取得モジュール58aを対象下位モジュールにセットし、A用文書ID取得モジュール58aに対して再度の入力要求を出力する。
そして、A用文書ID取得モジュール58aから文書ID「0004」が出力されれば、全文書IDが一致するため「0004」を適合IDと判別できる。一方、A用文書ID取得モジュール58aから「0004」より後の文書IDが出力されれば、文書ID「0004」の文書には検索語Aが含まれないことが確実となる。その場合、今度は、B用文書ID取得モジュール58bを対象下位モジュールにセットして、再度の入力要求を出力する。
このように、各モジュールで示す条件を満たす文書IDが昇順で出力されるため、AND演算モジュールは、下位モジュールから入力される文書IDが一つずつであっても、AND条件を満たす文書の文書IDを取得できる。したがって、各モジュール毎に所定の条件を満たす全文書IDを中間出力として出力する必要がない。そのため、所定の数の検索結果が必要な場合、その検索結果を得るのに最低限必要な処理時間で検索処理を行うことができる。
次に、NOT演算モジュールでの判別について図12を用いて説明する。NOTは「含まない」を示す論理演算子である。したがって、NOT演算モジュールは、下位モジュールから出力された文書ID以外の文書IDを適合文書IDとして出力すればよい。ただし、このNOT演算モジュールも、文書IDを昇順に一つずつ出力しなければならない。したがって、前回出力した適合IDを前回適合IDとして記録しておき、前回適合IDに1を加算した値を適合IDとして出力するようにすればよい。ただし、この前回適合IDに1を加算した値が下位モジュールから入力された文書IDと一致する場合はNOT条件に反する。したがって、その場合は、適合ID無しと判断できる。
したがって、NOT演算モジュールでの判別処理は、図12に示すように、まず、下位モジュールから入力された文書IDが前回適合ID+1より大きいかを判別する(S52)。入力された文書IDのほうが大きい場合は、適合ID有りと判別する(S54)。そして、前回適合IDに1を加算した値を今回の適合IDとして判別する(S56)。このとき、対象下位モジュールとしては、NULLをセットする(S60)。すなわち、次の出力要求の際には、どの下位モジュールに対しても入力要求を出力しない。
一方、下位モジュールから入力された文書IDと前回適合ID+1とが等しい場合は、適合文書ID無しと判別する(S62)。また、入力された文書IDを前回適合IDとして記録する(S64)。そして、全下位モジュールを対象下位モジュールにセットし(S66)、再度の入力要求を出力する。
このように、下位モジュールからの入力される文書IDが常に文書IDの順で入力されることが明らかなため、NOT論理演算モジュールにおいても、下位モジュールから文書IDが一つずつの入力されても、正確な判断をすることができる。
以上、説明したように、各論理演算モジュールは、下位モジュールから入力される文書IDが1つずつ入力されても、その文書IDを所定の手順で比較することにより、所定の条件を満たすか否かを正確に判別することができる。これは、文書ID取得モジュールが常に各検索語を含む文書の文書IDを昇順に出力するようになっており、ひいては、各論理演算モジュールも所定の条件を満たす文書IDを昇順に出力するようになっているからである。
また、各モジュールは、各モジュールの示す条件を満たす文書IDを一つずつ出力する。したがって、各モジュールが示す条件を満たす文書IDを全て取得してから上位モジュールに出力する方法に比べてより短時間で検索処理を行うことができる。
また、全ての論理演算モジュールは、その入出力の形式が統一されている。すなわち、各論理演算モジュールは、その下位および上位に位置するモジュールがどのようなモジュールであっても、1以上の文書IDを入力とし、一つの文書IDを出力する形式となる。したがって、これら論理演算モジュールを組み合わせて文書検索プログラムを作成する際に、その入出力の形式を改めて整える必要は無い。そのため、より容易に文書検索プログラムを作成することができる。
なお、AND演算モジュールにおいて、下位モジュールに対して入力要求とともに次回での適合ID候補である次候補IDを出力すれば、より効率的に検索処理を行うことができる。これについて図13を用いて説明する。
図13は、他のAND演算モジュールでの処理の流れを示す図である。このAND演算モジュールでは、下位モジュールから入力された文書IDが一致しなかった場合、適合ID無しと判断するとともに、文書IDテーブルに記憶された文書IDのうち最大の文書IDを「次候補ID」としてセットする(S80)。そして、対象下位ノードに対して入力要求を出力する際に次候補IDも出力する。
最大IDを次候補IDとするのは、次の理由による。上述したように下位モジュールそれぞれからは、文書IDが文書IDの昇順に入力される。したがって、例えば、例えば図15の構文木において、A用文書ID取得モジュール58aから文書ID「0005」が出力され、B用文書ID取得モジュール58bから文書ID「0002」が出力された場合、文書ID「0005」より前の文書IDを有する文書は、検索語Aを含む文書は無いことが確実である。一方、文書ID「0005」の文書は、検索語Bを含むか否かは不明である。したがって、この時点では、文書ID「0005」が最も有力な適合IDの候補であるといえる。そこで、AND演算モジュール60は、文書IDテーブルに記録された文書IDが不一致の場合、そのうち最大の文書IDを「次候補ID]として記録し、これを対象モジュールに出力する。
一方、文書ID取得モジュールにおいては、上位モジュールから次候補IDが渡された場合、図14に示すような処理を行う。すなわち、各検索語用DBを読み込みN番目の文書IDを取得した後、次候補IDが上位モジュールから渡されているかを判別する(S82)。次候補IDが渡されていない場合は、そのまま、取得した文書IDを上位ノードに出力し、カウンタの値Nをインクリメントして処理を終了する(S14、S16)。
次候補IDが上位モジュールから渡されている場合は、取得した文書IDと次候補IDとを比較する(S86)。そして取得した文書IDより次候補IDのほうが大きいと判断した場合、カウンタNの値をインクリメントし、再度、文書IDの取得を行う(S84,S12)。
すなわち、文書ID取得モジュールは、次候補IDが上位モジュールから渡されている場合、その次候補IDより小さい文書IDを上位モジュールに出力しないようになっている。すなわち、上述したように、次候補IDより小さい文書IDは、上位に位置するAND演算モジュールの示す条件を満たさないことが確実である。したがって、そのような文書IDを出力しても無駄な処理となってしまう。そこで、次候補IDが上位モジュールから渡された場合は、次候補IDより小さい文書IDは、出力しないようにする。
こうすることで無駄な処理を省くことができ、より、効率的に検索処理を行うことができる。
なお、以上の説明では、各検索語用DBに文書情報が文書IDの昇順に記録されているとしているが、当然ながら降順であってもよい。その場合、各論理演算モジュールでの適合IDの有無判別も適宜変更する。また、本実施の形態では、論理演算モジュールは、文書IDテーブルに基づいて適合IDの有無や対象下位モジュールの判別などを行っているが、下位モジュールから入力された文書IDの中に適合IDが有るかを判別し、有ると判別した場合は適合IDを出力し、無いと判断した場合は適合IDを得るまで下位モジュールに対して入力要求を出力するものであれば、他の処理方式であってもよい。
本発明の実施の形態である文書検索装置のハードウェア構成を示すブロック図である。 文書検索装置の機能構成を示すブロック図である。 インデックスDB群を説明するための図である。 他のインデックスDB群の例を示す図である。 検索処理部の機能構成を示すブロック図である。 構文木の一例を示す図である。 文書検索プログラムの処理の概念図である。 文書ID取得モジュールのフローチャートである。 論理演算モジュールのフローチャートである。 OR演算モジュールにおける適合IDの有無判別のフローチャートである。 AND演算モジュールにおける適合IDの有無判別のフローチャートである。 NOT演算モジュールにおける適合IDの有無判別のフローチャートである。 他のAND演算モジュールにおける適合IDの有無判別のフローチャートである。 他の文書ID取得モジュールのフローチャートである。 構文木の一例を示す図である。
符号の説明
10 文書検索装置、30 入力処理部、32 検索条件作成部、34 検索処理部、36 出力処理部、38 インデックス作成部、40 文書格納部、42 インデックスDB群、52 モジュール作成部、54 プログラム作成部、56 実行部、58 文書ID取得モジュール、60 論理演算モジュール、62 文書検索プログラム、62 検索プログラム、64 構文木。

Claims (5)

  1. 入力された検索式に基づいて、文書を検索する文書検索装置であって、
    前記入力された検索式を解析し、当該検索式を構成する検索語および論理演算子それぞれに対応する複数のノードから構成される構文木を作成する構文解析手段と、
    各検索語ごとに設けられ、対応する検索語を含む文書の文書IDを含む文書情報を文書IDの順に記録している複数のデータベースと、
    各検索語ごとに設けられ、出力要求が入力された場合に、対応する検索語のデータベースに記録されている文書情報を文書IDの順に一つずつ読み込むとともに、当該読み込んだ一つの文書情報を出力する複数の取出手段と、
    各論理演算子ごとに設けられた複数の論理演算手段であって、出力要求が入力された場合に、下位に位置する取出手段または他の論理演算手段である下位手段が出力した文書情報の文書IDに基づいて、対応する論理演算子が示す条件に合致する文書情報を適合文書情報として一つ特定し、当該特定された一つの適合文書情報を出力する複数の論理演算手段と、
    構文解析手段により作成された構文木を構成する各ノードそれぞれに対応する取出手段および論理演算手段の入出力関係を、当該構文木を構成するノードの一つである下位ノードに対応する論理演算手段または取出手段から出力された文書情報が当該下位ノードよりも一つ上位に位置する上位ノードに対応する論理演算手段に入力され、かつ、前記上位ノードに対応する論理演算手段からの出力された出力要求が前記下位ノードに対応する論理演算手段または取出手段に入力されるように、設定することにより検索式に対応する文書情報を出力する文書検索手段を生成する生成手段と、
    検索要求に応じて、所定数の文書情報を取得するまで文書検索手段を動作させ、得られた文書情報を検索結果として出力する制御手段と、
    を有し、
    OR演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報のうち文書IDの順番が最も前の文書情報を適合文書情報として特定し、
    AND演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報全ての文書IDが合致した場合に、当該文書情報を適合文書として特定し、
    NOT演算子に対応する論理演算手段は、前回適合文書情報として特定した文書情報の文書IDの順番を一つ進めた文書情報が、前記下位手段が出力した文書情報の文書IDに達していない場合には、当該文書IDの文書情報を適合文書情報として特定する、
    ことを特徴とする文書検索装置。
  2. 検索の際に用いられる複数の検索語それぞれに対応付けられるとともに、それぞれ対応する検索語を含む文書の文書情報を文書IDの順に記録している複数のデータベースを備えたコンピュータシステムを、
    入力された検索式を解析し、当該検索式を構成する検索語および論理演算子それぞれに対応する複数のノードから構成される構文木を作成する構文解析手段と、
    検索語毎に設けられた複数の取り出し手段であって、出力要求が入力された場合に、
    検索語ごとに設けられるとともに対応する検索語を含む文書の文書IDを含む文書情報を文書IDの順に記録している複数のデータベースのうち対応する検索語のデータベースに記録されている文書情報を文書IDの順に一つずつ読み込むとともに、当該読み込んだ一つの文書情報を出力する複数の取出手段と、
    各論理演算子毎に設けられた複数の論理演算手段であって、出力要求が入力された場合、下位に位置する取出手段または他の論理演算手段である下位手段が出力した文書情報の文書IDに基づいて、対応する論理演算子が示す条件に合致する文書情報を適合文書情報として一つ特定し、当該特定された一つの適合文書情報を出力する複数の論理演算手段と、
    構文解析手段により作成された構文木を構成する各ノードそれぞれに対応する取出手段および論理演算手段の入出力関係を、当該構文木を構成するノードの一つである下位ノードに対応する論理演算手段または取出手段から出力された文書情報が当該下位ノードよりも一つ上位に位置する上位ノードに対応する論理演算手段に入力され、かつ、前記上位ノードに対応する論理演算手段からの出力された出力要求が前記下位ノードに対応する論理演算手段または取出手段に入力されるように、設定することにより検索式に対応する文書情報を出力する文書検索手段を生成する生成手段と、
    検索要求に応じて、所定数の文書情報を取得するまで文書検索手段を動作させ、得られた文書情報を検索結果として出力する制御手段と、
    として機能させる文書検索プログラムであって、
    OR演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報のうち文書IDの順番が最も前の文書情報を適合文書情報として特定し、
    AND演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報全ての文書IDが合致した場合に、当該文書情報を適合文書として特定し、
    NOT演算子に対応する論理演算手段は、前回適合文書情報として特定した文書情報の文書IDの順番を一つ進めた文書情報が、前記下位手段が出力した文書情報の文書IDに達していない場合には、当該文書IDの文書情報を適合文書情報として特定する、
    ことを特徴とする文書検索プログラム。
  3. 請求項2に記載の文書検索プログラムであって、
    AND演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報全ての文書IDが合致しなかった場合には、前記下位手段に新たな文書情報の出力要求とともに複数の文書IDのうち最も順番が後の文書IDも次候補IDとして入力し、
    前記下位手段は、出力要求とともに次候補IDが入力された場合には、当該次候補IDと同じ、または、当該次候補IDより順番が後の文書IDの文書情報のうち、最も順番が前の文書IDを有した文書情報を出力することを特徴とする文書検索プログラム。
  4. 請求項2または3のいずれか1に記載の文書検索プログラムであって、
    複数の論理演算手段は、いずれも、1以上の文書情報を入力とし、1つの文書情報を出力する、
    ことを特徴とする文書検索プログラム。
  5. 入力された検索式に基づいて、文書を検索する文書検索方法であって、
    構文解析手段が入力された検索式を解析し、当該検索式を構成する検索語および論理演算子それぞれに対応する複数のノードから構成される構文木を作成するステップと、
    データベース作成手段が検索の際に用いられる複数の検索語それぞれに対応付けられた複数のデータベースであって、それぞれ対応する検索語を含む文書の文書IDを含む文書情報を文書IDの順に記録している複数のデータベースを作成するステップと、
    取出モジュール作成手段が複数の検索語毎に設けられ、出力要求が入力された場合に、対応する検索語のデータベースに記録されている文書情報を文書IDの順に一つずつ読み込むとともに、当該読み込んだ文書情報を出力する複数の取出モジュールを作成するステップと、
    論理演算モジュール作成手段が、論理演算子毎に設けられた複数の論理演算手段であって、出力要求が入力された場合に、下位に位置する取り出し手段または他の論理演算手段である下位手段が出力した文書情報の文書IDに基づいて、対応する論理演算子が示す条件に合致する文書情報を適合文書情報として特定し、当該特定された一つの適合文書情報を出力する複数の論理演算手段を作成するステップと、
    生成手段が構文木に基づいて、構文解析手段により作成された構文木を構成する各ノードそれぞれに対応する取出手段および論理演算手段の入出力関係を、当該構文木を構成するノードの一つである下位ノードに対応する論理演算手段または取出手段から出力された文書情報が当該下位ノードよりも一つ上位に位置する上位ノードに対応する論理演算手段に入力され、かつ、前記上位ノードに対応する論理演算手段からの出力された出力要求が前記下位ノードに対応する論理演算手段または取出手段に入力されるように、設定することにより検索式に対応する文書情報を出力する文書検索手段を生成するステップと、
    制御手段が検索要求に応じて、所定数の文書情報を取得するまで文書検索手段を動作させ、得られた文書情報を検索結果として出力するステップと、
    を有し、
    OR演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報のうち文書IDの順番が最も前の文書情報を適合文書情報として特定し、
    AND演算子に対応する論理演算手段は、前記下位手段が出力した複数の文書情報全ての文書IDが合致した場合に、当該文書情報を適合文書として特定し、
    NOT演算子に対応する論理演算手段は、前回適合文書情報として特定した文書情報の文書IDの順番を一つ進めた文書情報が、前記下位手段が出力した文書情報の文書IDに達していない場合には、当該文書IDの文書情報を適合文書情報として特定する、
    ことを特徴とする文書検索方法。
JP2003401508A 2003-12-01 2003-12-01 文書検索装置、文書検索方法、プログラム Expired - Fee Related JP4432475B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003401508A JP4432475B2 (ja) 2003-12-01 2003-12-01 文書検索装置、文書検索方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003401508A JP4432475B2 (ja) 2003-12-01 2003-12-01 文書検索装置、文書検索方法、プログラム

Publications (3)

Publication Number Publication Date
JP2005165521A JP2005165521A (ja) 2005-06-23
JP2005165521A5 JP2005165521A5 (ja) 2007-01-25
JP4432475B2 true JP4432475B2 (ja) 2010-03-17

Family

ID=34725422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003401508A Expired - Fee Related JP4432475B2 (ja) 2003-12-01 2003-12-01 文書検索装置、文書検索方法、プログラム

Country Status (1)

Country Link
JP (1) JP4432475B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5782937B2 (ja) * 2011-09-08 2015-09-24 富士通株式会社 タグ管理装置、タグ管理システムおよびタグ管理プログラム
JP5954742B2 (ja) * 2013-07-23 2016-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 文書を検索する装置及び方法
JP5765463B2 (ja) * 2014-04-28 2015-08-19 富士ゼロックス株式会社 画像形成装置及び画像形成プログラム

Also Published As

Publication number Publication date
JP2005165521A (ja) 2005-06-23

Similar Documents

Publication Publication Date Title
KR101027864B1 (ko) 대량의 전자 문서 검색을 위한 문서 관련성을 판정하기위한 기계-학습 접근법
JP4997966B2 (ja) 対訳例文検索プログラム、対訳例文検索装置、および対訳例文検索方法
KR100638695B1 (ko) 구조화 문서의 데이터를 검색하는 장치 및 방법
EP1315103B1 (en) File search method and apparatus, and index file creation method and device
US11537797B2 (en) Hierarchical entity recognition and semantic modeling framework for information extraction
JP4160548B2 (ja) 文書要約作成システム、方法、及びプログラム
JP4832952B2 (ja) データベース解析システム及びデータベース解析方法及びプログラム
JP4207438B2 (ja) Xml文書格納/検索装置及びそれに用いるxml文書格納/検索方法並びにそのプログラム
JP4432475B2 (ja) 文書検索装置、文書検索方法、プログラム
US6269359B1 (en) Relational data base system and method for rapidly realizing a query to a database
JP2000003366A (ja) 文書登録方法と文書検索方法及びその実施装置並びにその処理プログラムを記録した媒体
RU2409849C2 (ru) Способ поиска информации в политематических массивах неструктурированных текстов
JP2003108576A (ja) データベース管理装置およびデータベース管理方法
WO2024047997A1 (ja) 文書分析装置、及び文書分析用プログラム
JP5326945B2 (ja) 文字入力支援装置、プログラム及び文字入力支援方法
JPH1011424A (ja) 文章作成支援装置
US20050136457A1 (en) Method for analyzing genome
JP2017167837A (ja) 検索装置、検索方法及びプログラム
CN115952309A (zh) 面向多个多媒体检索任务的结构化多模态检索方法及***
KR20230100462A (ko) 다국가 임상데이터 표준화 방법 및 장치
JPH11161666A (ja) ドキュメントデータ検索方法および装置、並びにドキュメント編集装置
JPH06203078A (ja) 情報検索方法およびその装置
JP2021009591A (ja) データ取得装置、データ取得方法、およびデータ取得プログラム
JP2000259637A (ja) 情報検索装置及び情報検索方法並びに情報検索処理プログラムを記録した記録媒体
JP2009129280A (ja) 文書検索方法、文書検索装置および文書検索プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091030

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091201

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091214

R150 Certificate of patent or registration of utility model

Ref document number: 4432475

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees