JP2004118543A - 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム - Google Patents
構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム Download PDFInfo
- Publication number
- JP2004118543A JP2004118543A JP2002281207A JP2002281207A JP2004118543A JP 2004118543 A JP2004118543 A JP 2004118543A JP 2002281207 A JP2002281207 A JP 2002281207A JP 2002281207 A JP2002281207 A JP 2002281207A JP 2004118543 A JP2004118543 A JP 2004118543A
- Authority
- JP
- Japan
- Prior art keywords
- document
- search
- structured
- documents
- processed
- 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.)
- Pending
Links
Images
Abstract
【課題】構造化文書の文書構造を意識することなく、検索結果を絞り込みながら所望の構造化文書を迅速に効率よく検索することができる、構造化文書検索方法、およびそれを用いた検索支援装置を提供する。
【解決手段】少なくとも1つのキーワードを初期条件として入力されたら、異なる文書構造の複数の構造化文書を記憶するデータベースから、当該キーワードを構成要素の要素値に含む構造化文書を検索し、この検索された構造化文書を処理対象の文書として、当該処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、処理対象の文書から絞り込み条件の候補として抽出した、要素名や要素値として包含する語彙を表示し、表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から当該選択された絞り込み条件を満たす構造化文書を検索する。
【選択図】 図33
【解決手段】少なくとも1つのキーワードを初期条件として入力されたら、異なる文書構造の複数の構造化文書を記憶するデータベースから、当該キーワードを構成要素の要素値に含む構造化文書を検索し、この検索された構造化文書を処理対象の文書として、当該処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、処理対象の文書から絞り込み条件の候補として抽出した、要素名や要素値として包含する語彙を表示し、表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から当該選択された絞り込み条件を満たす構造化文書を検索する。
【選択図】 図33
Description
【0001】
【発明の属する技術分野】
本発明は、異なる文書構造の複数の構造化文書を記憶する、階層化された論理構造を持つ構造化文書データベースで管理する構造化文書管理システムに関し、特に、当該データベースから所望の構造化文書を検索するための絞り込み検索に関する。
【0002】
【従来の技術】
XML(Extesible Markup Language)データベースなど構造化文書データベースでは、検索言語によって記述されたユーザ検索要求により所望の構造化文書を検索する手段が提供されてる。検索言語には、SQL(Structured Query Language)に似た構文を持ち、検索位置、検索条件、情報抽出部分などを記述したものもある。この手段により多種多様な構造化文書を検索することができる。しかし、このような検索言語をベースとしたクエリデータを作成するには、ユーザ側にあらかじめ構造化文書データベース中に存在する構造化文書の文書構造(DTD)や語彙発生状況などに関する情報が必要であった。
【0003】
一方、ユーザ側の構造化文書の文書構造(DTD)や語彙発生状況などに関する情報欠如を補うために、いくつかの支援方法が提案されてきた。
【0004】
検索対象を初期検索の段階から絞り込むために、DTDの一覧を提示し、そこから文書構造のスケルトンを表示させて、ユーザに検索対象の構造に関する条件を設定させる。検索された結果は、出力パターン指定された構造化文書形式に変換して出力する(例えば特許文献1参照)。
【0005】
一方、初期検索では十分に絞り込めないという状況を考慮して、二次検索での絞り込みを支援する方法もある。これはRDBなどに格納されたデータベースを検索対象にする。初期検索では、ユーザに語彙などの粗い検索条件を設定させる。大量の候補が出た場合に、データベースとは別の階層構造を持った背景知識を用いて、効果的な順番で質問を行い、絞り込みを支援するものである(例えば特許文献2参照)。
【0006】
また、テキストで表現されたフルテキストデータベースを検索に対象としたものもある。これは初期検索では、ユーザに語彙などの粗い検索条件を設定させる。大量の候補が出た場合に、データベースとは別の階層構造を持った背景知識を用いて、語彙を背景知識を用いて効果的に展開し、設定された件数になるように自動的に絞り込みを行うものである(例えば特許文献3参照)。
【0007】
【特許文献1】特開2000−200286号公報(第8頁、第4図)
【0008】
【特許文献2】特開平10−187739(第6頁、第1図)
【0009】
【特許文献3】特開7−225772 (第10頁、第1図)
【0010】
【発明が解決しようとする課題】
ユーザが構造化文書を検索する場合には、あらかじめ文書構造(DTD)や語彙発生状況などに関する情報が必要であった。
【0011】
そのためには、いくつかの検索支援方法が提案されてきたが、以下のような問題点があった。
【0012】
(1)DTDがデータベース上に設定されていないと構造条件の候補を提示できず、検索支援できない。
【0013】
(2)2次検索を行って絞り込みをする場合、特別な背景知識が無いと検索支援できない。
【0014】
構造化文書の場合、検索条件として、構造に関する条件、語彙に関する条件、を指定する必要があるが、従来は、これらを適切に組合せた検索、および検索支援ができていなかった。
【0015】
そこで、本発明は上記問題点に鑑み、構造化文書の文書構造を意識することなく、検索結果を絞り込みながら所望の構造化文書を迅速に効率よく検索することができる、構造化文書検索方法、およびそれを用いた検索支援装置を提供することを目的とする。
【0016】
【課題を解決するための手段】
(1)本発明は、異なる文書構造の複数の構造化文書を記憶するデータベース(特に、前記複数の構造化文書のそれぞれの構成要素で構成された階層化された論理構造を有するデータベース)から、所望の構造化文書を検索するためのものであって、少なくとも1つのキーワードを初期条件として入力されたら、前記データベースから、前記キーワードを構成要素の要素名と要素値とのうちの少なくとも一方に含む複数の構造化文書を検索し、この検索された複数の構造化文書を処理対象の文書として、当該処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、絞り込み条件の候補として、前記処理対象の文書から、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出し、この抽出された候補を表示し、表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から当該選択された絞り込み条件を満たす構造化文書を検索した結果を前記処理対象の文書として取得することを特徴とする。
【0017】
好ましくは、前記処理対象の文書間の違いとして、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出し、この違いを絞り込み条件の候補として表示する。
【0018】
本発明によれば、予めユーザ側で文書構造や語彙に関する情報を知らなくとも効果的に構造的な条件や語彙的な条件を優先順位付けして提示することで、必要な構造化文書集合を容易に検索することができる。
【0019】
(2)本発明は、異なる文書構造の複数の構造化文書を記憶するデータベース(特に、前記複数の構造化文書のそれぞれの構成要素で構成された階層化された論理構造を有するデータベース)から、指定された検索条件を満足する構造化文書を検索する検索装置を用いて、所望の構造化文書を検索するための支援を行う検索支援装置であって、少なくとも1つのキーワードを初期条件として入力されたら、前記検索装置が、前記キーワードを構成要素の要素名と要素値とのうちの少なくとも一方に含む構造化文書を検索するための検索要求文を作成する作成手段と、前記検索要求文に基づき前記検索装置で検索された構造化文書を処理対象の文書として取得する取得手段と、前記処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、絞り込み条件の候補として、前記処理対象の文書から、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出する手段と、この抽出手段で抽出された絞り込み条件の候補を表示する表示手段と、この表示手段で表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から当該選択された絞り込み条件を満たす構造化文書を検索した結果を前記処理対象の文書として取得する手段とを具備したことを特徴とする。
【0020】
好ましくは、前記抽出手段は、前記処理対象の文書間の違いとして、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出し、前記表示手段は、前記前記抽出手段で抽出された違いを絞り込み条件の候補として表示する。
【0021】
本発明によれば、予めユーザ側で文書構造や語彙に関する情報を知らなくとも効果的に構造的な条件や語彙的な条件を優先順位付けして提示することで、必要な構造化文書集合を検索装置から容易に取り出すことができる。
【0022】
【発明の実施の形態】
まず、本発明の実施形態について説明する前に、構造化文書管理システムの概要について説明する。
【0023】
(構造化文書管理システムの説明)
構造化文書として、XMLやSGMLなどで記述した文書が挙げられる。SGML(Standard Generalized Markup Language)とは、ISO(国際標準化機構)で定められた規格である。XML(eXtensible Markup Language)とは、W3C(World Wide Web Consortium)にて定められた規格である。これらは、文書を構造化することを可能とする構造化文書の規格である。
【0024】
以下、構造化文書として、XMLにて記述された文書を例に説明を進める。構造化文書の文書構造を定義したデータ(文書構造定義データ)をスキーマと呼ぶ。XMLではスキーマを定義するためにXML−SchemaやXDR(XMLData Reduced)などのスキーマ言語が提案されている。ここでは、例えば、XDRでスキーマを記述する場合を例にとり説明する。
【0025】
スキーマも、構造化文書管理システムの管理対象の構造化文書であり、ここでは、スキーマ文書と呼ぶことがある。スキーマ文書以外の構造化文書であって、特許明細書やメール、週報、広告などの種々雑多な内容を有する文書を、ここでは、コンテンツ文書と呼ぶこともある。
【0026】
構造化文書管理システムでは、上記スキーマ文書、上記コンテンツ文書、さらに、後述するようなユーザからの検索要求を記述したクエリ、すなわち、クエリ文書も管理対象とし、これらを総称して「文書」と呼ぶ。
【0027】
以下、特にことわりがない場合、「文書」と呼ぶときは、コンテンツ文書、スキーマ文書、クエリ文書を全て指すものとする。
【0028】
まず、実施形態の説明の前に、XMLについて簡単に説明する。
【0029】
図3は、XMLで記述された構造化文書の一例として、「特許」情報の例を示したものである。XMLやSGMLは、文書の構造の表現にタグが用いられる。タグには、開始タグと終了タグがある。文書構造の各構成要素は、開始タグと終了タグで囲まれている。開始タグとは構成要素の要素名を「>」で閉じたものであり、終了タグとは要素名を記号「</」と「>」で閉じたものである。タグに続く構成要素の内容が、テキスト(文字列)または子供の構成要素の繰り返しである。また開始タグには「<要素名 属性=“属性値”>」などのように属性情報を設定することができる。「<特許DB></特許DB>」のようにテキストを含まない構成要素は、簡易記法として「<特許DB/>」のように表わすこともできる。
【0030】
図3に示した文書は、「特許」タグから始まる要素をルートとし、その子要素として「タイトル」、「出願日」、「出願者」、「要約」タグから始まる要素が存在する。また、例えば、「タイトル」タグから始まる要素には「XMLデータベース」といった、1つのテキスト(文字列)が要素値として存在する。
【0031】
XMLなどの構造化文書は、任意の構成要素を繰り返し含んでいたり、さらには文書構造があらかじめ決まっていないのが普通である。
【0032】
図3に示したような構造化文書を論理的に表現するために、図4に示すようなツリー表現が用いられる。ツリーは、ノード(番号が付され、円形で示されたもの)とアーク(ノードを表す円形間をつなぐデータ付き線)と四角形で囲まれたテキストから構成されている。
【0033】
1つのノードは1つの構成要素、すなわち、1つの文書オブジェクトに対応する。ノードからタグ名や属性名に相当するラベルが付与された複数のアークが出てきている。そのアークの先は、ノード値または要素値としての文字列(テキスト)である。ノードの中に記載されている英数字(例えば「#0」、「#49」)などは、各文書オブジェクトを識別するためのオブジェクトIDである。
【0034】
図4に示したツリー構造を図3に示した構造化文書の文書オブジェクトツリーと呼ぶ。
【0035】
図1は、本実施形態に係る構造化文書管理システムの構成例を示したものである。図1において、構造化文書管理システムは、大きく分けて、要求制御部1、アクセス要求処理部2、検索要求処理部3、データアクセス部4、文書記憶部5、インデックス記憶部6から構成されている。文書記憶部5、インデックス記憶部6は例えば、外部記憶装置で構成される。
【0036】
図1のシステム構成は、ソフトウエアを用いて実現可能である。
【0037】
要求制御部1は、要求受付部11と結果処理部12から構成されている。要求受付部11は、文書の格納、文書の取得、文書の検索などのユーザからの要求を受け付けて、アクセス要求処理部2を呼び出す。結果処理部12は、アクセス要求処理部2が処理した結果を要求元のユーザに返す処理を行う。
【0038】
アクセス要求処理部2は、文書の格納、文書の取得、文書の削除などのユーザからの各種要求に対応した複数の処理部から構成されている。つまり、文書格納部21、文書取得部22、文書削除部23から構成されている。
【0039】
文書格納部21は、文書記憶部5中の指定された論理的なエリアに文書を格納する処理を行う。
【0040】
文書取得部22は、文書記憶部5中の論理的なエリアが指定されたときに、その指定エリアに存在する文書を取得する処理を行う。
【0041】
文書削除部23は、文書記憶部5中の指定された論理的なエリアに存在する文書を削除する処理を行う。
【0042】
文書記憶部5は、構造化文書データベースであり、例えば、図8に示すように、文書をUNIXのディレクトリ構造のように階層的にツリー構造状に格納している。
【0043】
図8に示すように、構造化文書データベースは、図4に示したような1つの構造化文書のツリー構造と同様に表現できる。すなわち、任意のノード以下の部分的な階層木(部分ツリー)は、構造化文書データベースから切り出された構造化文書であり、ここでは、これを文書オブジェクトツリーと呼ぶ。各ノードにはオブジェクトIDが割り当てられている。オブジェクトIDは、構造化文書データベース内ではユニークな数値である。
【0044】
階層木のルートとなるノードには、それがルートノードであることを特定するためのオブジェクトID「#0」が割り当てられるものとする。
【0045】
ルートノード、すなわち、「#0」のノードからは「root」タグを先頭に持つオブジェクトID「#1」のノードへリンクが張られている。「#1」のノードからは、「特許DB」タグを先頭にもつオブジェクトID「#2」のノードへのリンクが張られている。「#2」ノードからは、「特許」タグを先頭に持つ、オブジェクトID「#42」のノード、「#52」のノード、「#62」のノードへのリンクがそれぞれ張られている。
【0046】
図3に示した「特許」情報は、図8の「#42」ノード以下の部分ツリーに対応している。このノードからは「タイトル」タグ、「出願者」タグ、「要約」タグなどを先頭にもつノードへリンクが張られ、末端のノードからは、「XMLデータベース」、「T社」、「XMLを統一的に管理するデータベースを提供する…」などの文字列(要素値)へのリンクが張られている。
【0047】
図8において、オブジェクトID「#52」のノード以下の部分ツリー、オブジェクトID「#62」のノード以下の部分ノードも1つの「特許」情報に対応する文書オブジェクトツリーである。
【0048】
ところで、例えば、「#43」ノードにリンクされた「XMLデータベース」という要素値は、「#43」ノードと「#value」という特殊なタグ名で接続されている。このタグ名は、「#」で始まるためXMLの規格においては標準的なタグ名として利用することはできない。
【0049】
このような構造化文書データベースの特定ノードを指定するために構造化文書パスを用いる。構造化文書パスは「uix://root」から始まる文字列である。uix(Universal Identifier for XML)は構造化文書パスであることを示す文字列である。
【0050】
例えば、構造化文書パスとして「uix://root/特許DB」と表すと、この構造化文書パスの示す文書記憶部5中の論理的なエリアは、図8において、「#1」ノードから「特許DB」が付与されたアークが指し示すノード、つまり「#2」ノードである。
【0051】
同様にして、構造化文書パス「uix://root/特許DB/特許」は、図8における「#42」ノードを指し示し、構造化文書パス「uix://root/特許DB/出願日/年」は、図8における「#45」ノードを指し示す。
【0052】
例えば、図8において、「#2」ノード以下に、すなわち、「特許DB」という構成要素に、複数の「特許」情報を格納する場合には、各「特許」情報を識別するために、要素名(例えば、この場合「特許」)にインデックスを追加してもよい。
【0053】
「特許DB」の最初の「特許」情報であれば、「uix://root/特許DB/特許[0]」となるが、これは「uix://root/特許DB/特許」と同じとみなす。「特許DB」の2番目の「特許」情報であれば、「uix://root/特許DB/特許[1]」、「特許DB」の5番目の「特許」情報であれば、「uix://root/特許DB/特許[4]」となる。
【0054】
インデックス記憶部6には,検索時に用いる、要素名称生起インデックスとデータ生起インデックスが記憶されている。
【0055】
要素名生起インデックスとは構造化文書データベースに格納されている要素名と、その要素名の構成要素が先頭にある構造化文書(文書オブジェクトツリー)の位置とを関連付けたインデックスファイルである。例えば、図8の構造化文書データベースでは、(「特許」情報に対応する)「特許」という要素名が「#42」ノード以下の構造化文書、「#52」ノード以下の構造化文書、「#62」ノード以下の構造化文書に存在する場合、要素名生起インデックスには、図9に示すように、「#42」ノード、「#52」ノード、「#62」ノードの親ノード、すなわち、「#2」ノードが、要素名「特許」にリンクされて格納される。
【0056】
このように、親ノードでインデックス化すると、インデックスファイルを圧縮することができる。すなわち、親ノードでインデックス化すれば、子ノードが増大しようとも、親ノードで代用しているので、要素名にリンクすべきノードは増大しない。
【0057】
データ生起インデックスとは、構造化文書データベースに格納されている文字列データと、その文字列データが存在する構造化文書(文書オブジェクトツリー)の位置とを関連付けたインデックスファイルである。例えば、図8の構造化文書データベースでは、「XML」という文字列が「#43」ノード以下の構造化文書、「#49」ノード以下の構造化文書に存在する。この場合、データ生起インデックスには、図10に示すように、「#43」ノード、「#49」ノードが、「XML」という文字列にリンクされて格納される。
【0058】
文書記憶部5中の指定された論理的なエリアとは、構造化文書パスを用いてユーザにより指定された文書の格納場所である。構造化文書パスは、ユーザにとって認識可能な表現である。
【0059】
図1の説明に戻る。
【0060】
データアクセス部4は、文書記憶部5をアクセスするための各種処理を行うものである。データアクセス部4は、文書オブジェクトツリー格納部41、文書オブジェクトツリー削除部42、文書オブジェクトツリー取得部43、文書文字列取得部44、文書パーサ部46、合成文書作成部47、インデックス更新部48から構成される。
【0061】
文書オブジェクトツリー格納部41は、文書記憶部5中の指定された物理的なエリアに文書オブジェクトツリーを格納するための処理を行う。
【0062】
文書オブジェクトツリー削除部42は、文書記憶部5中の指定された物理的なエリアに存在する文書オブジェクトツリーを削除するための処理を行う。
【0063】
文書オブジェクトツリー取得部43は、文書記憶部5中の(構造化文書パスなどにより)指定された物理的なエリアに存在する文書オブジェクトツリーを取得するための処理を行う。
【0064】
文書文字列取得部44は、文書オブジェクトツリーを構造化文書(XML文書)に変換するための処理を行う。
【0065】
文書パーサ部46は、ユーザにより入力された構造化文書を読み込んで、その文書構造の検査を行う。さらに文書構造の定義データであるスキーマが存在すれば、入力された構造化文書の文書構造がスキーマにしたがっているかどうかの検証を行う。出力結果は文書オブジェクトツリーとなる。文書パーサは、通常、lex(lexical analyzer generator)といったレキシカルアナライザ(字句解析を行い,トークンに分解する)とyacc(yetanother compiler compiler)といったパーサジェネレータを組み合わせて構築することができる。
【0066】
合成文書作成部47は、文書の格納や文書の削除などをする際に、スキーマに合致しているかどうか検査しなければならないが、この検査時に必要となるデータを作成する。
【0067】
インデックス更新部48は、文書の格納や文書の削除などにより、構造化文書データベースの格納内容が更新されるたびに、図9、図10に示した要素名称生起インデックスとデータ生起インデックスを更新する。
【0068】
文書記憶部5中の物理的なエリアとは、ファイルオフセットやオブジェクトIDなどの構造化文書データベース内ではユニークな文書データの存在場所を指し示す内部データである。ユーザにとっては認識不可能なデータである。
【0069】
検索要求処理部3は、データアクセス部4に備わっている各処理機能部を用いて、文書記憶部5中に格納された文書を検索する処理を行う。要求制御部1の要求受付部11でユーザからの文書検索の要求が受け付けられると、検索要求処理部3には、要求受付部11からクエリ言語で記述されたクエリ文書が入力する。そしてデータアクセス部4を通してインデックス記憶部6,文書記憶部5にアクセスし、検索要求に合致する文書の集合を取得して、その結果を結果処理部12を介して出力する。
【0070】
図2は、図1に示した構造化文書管理システムの一利用形態を示したもので、図2では、WWW(World Wide Web)のバックエンドで、図1に示した構成の構造化文書管理システム100が動作している場合を示している。
【0071】
複数(ここでは、例えば3つ)のクライアント端末(例えばパーソナルコンピュータ、携帯通信端末など)102のそれぞれでWWWブラウザ103が動作している。ユーザは、各クライアント端末からWWWサーバ101にアクセスすることにより、構造化文書管理システム100にアクセスすることができる。WWWブラウザ103とWWWサーバ101とは、HTTP(Hyper TextTransfer Protocol)で通信している。また、WWWサーバ101と構造化文書管理システム100とは、CGI(Common Gateway Interface)またはCOM(Component Object Model)などで通信している。
【0072】
文書の格納、文書の取得、文書の検索などのユーザからの要求は、WWWブラウザ103から送信されて、WWWサーバ101を通して構造化文書管理システム100にて受け付けられる。構造化文書管理システム100にて処理された結果は、WWWサーバ101を通して要求元のWWWブラウザ103へ返信される。
【0073】
以下、図1の構造化文書管理システムの(1)格納機能、(2)検索機能について詳細に説明する。
【0074】
(格納機能)
図1の構造化文書管理システムにおける格納系のコマンドには以下のものがある。
【0075】
insertXML(パス、N番目、XML):文書格納
appendXML(パス、XML) :文書格納
getXML(パス) :文書取得
removeXML(パス) :文書削除
setSchema(パス、スキーマ) :スキーマ格納
getSchema(パス) :スキーマ取得
「insertXML」は、( )内に指定した構造化文書パス以下のN番目に文書を挿入するコマンド(以下、簡単に挿入コマンドと呼ぶ)である。
【0076】
「appendXML」は、( )内に指定した構造化文書パス以下の最後に文書を挿入するコマンド(以下、簡単に追加コマンドと呼ぶ)である。
【0077】
「getXML」は、( )内に指定した構造化文書パス以下の文書を取り出すコマンド(以下、簡単に取得コマンドと呼ぶ)である。
【0078】
「removeXML」は、( )内に指定した構造化文書パス以下の文書(スキーマ文書以外の文書で、主に、コンテンツ文書)を削除するコマンド(以下、簡単に削除コマンドと呼ぶ)である。
【0079】
「setSchema」は、( )内に指定した構造化文書パスにスキーマを設定するコマンド(以下、簡単にスキーマ格納コマンドと呼ぶ)である。
【0080】
「getSchema」は、( )内に指定した構造化文書パスに設定されているスキーマを取り出すコマンド(以下、簡単にスキーマ取得コマンドと呼ぶ)である。
【0081】
上記コマンドのうち、挿入コマンド、追加コマンド、スキーマ格納コマンドについての処理はアクセス要求処理部2の文書格納部21で実行され、取得コマンド、スキーマ取得コマンドについての処理は文書取得部22で実行され、削除コマンドについての処理は文書削除部23で実行される。
【0082】
図5を参照して、構造化文書データベースの初期状態(図5(a)参照)において、追加コマンドを実行する場合について説明する。
【0083】
図5(a)に示すように、「#0」ノードと「#1」ノードが「root」アークで接続されている初期状態に対して、
「appendXML(“uix://root”,“<特許DB/>”)」を実行した結果、図5(b)に示すように、「#2」ノードと「特許DB」アークが作成される。
【0084】
図5(b)に示した状態の構造化文書データベースに対して、取得コマンドを実行する場合について説明する。
【0085】
例えば、「getXML(“uix://root”)」を実行すると、図5(b)の「root」アークが示す「#0」ノード以下の文書オブジェクトツリーが取り出され、それをXML文書に変換する。その結果、「<root><特許DB/></root>」なる文字列が取り出されて、図6に示すようなXML文書に変換される。取得コマンドの処理は、アクセス要求処理部2の文書取得部22にて実行される。
【0086】
次に、図5(b)に示した状態の構造化文書データベースに対して、図3に示すようなコンテンツ文書(XML文書)としての「特許」情報を格納するための追加コマンドを実行する場合について説明する。すなわち、この場合、「appendXML(“uix://root/特許DB”,“<特許>…</特許>”)」を実行する。このコマンド中「“<特許>…</特許>”」が、図3に示した「特許」情報のXML文書に対応する。
【0087】
上記追加コマンドの処理が実行されると、図7に示すように、「#2」ノード以下に「#42」ノードをトップとする文書オブジェクトツリー(図4に対応)が追加される。
【0088】
図5(b)に示した状態の構造化文書データベースに対して、次に示すような追加コマンドを3回繰り返して実行したとする。
【0089】
「appendXML(“uix://root/特許DB”,“<特許>…</特許>”)」
上記コマンド中、「<特許>…</特許>」は、図3に示したXML文書と同じ文書構造のコンテンツ文書に対応する。
【0090】
すると、図8に示すように、「#2」ノード以下に「#42」ノード、「#52」ノード、「#62」ノードをトップとする文書オブジェクトツリーが追加される。
【0091】
次に、図8に示した状態の構造化文書データベースに対して、3つの「特許」情報を取り出すための取得コマンドを実行した場合について説明する。この場合、「getXML(“uix://root/特許DB”)」を実行する。すると、「特許DB」アークが示す「#2」ノード以下の文書オブジェクトツリーが取り出される。その結果、図11に示すように、「<特許DB><特許>…</特許><特許>…</特許><特許>…</特許></特許DB>」なるXML文書が取得できる。
【0092】
構造化文書データベースでは、上記の「特許」情報などのコンテンツ文書(XML文書)の文書構造を定義したデータ、すなわち、スキーマも管理対象とする。
【0093】
図12は、XML文書の文書構造を定義するスキーマの一例を示したものである。ここでは、XMLの文書構造定義言語の一つであるXDR(XML−Data Reduced)を取り上げる。もちろん、XML−Schemaなど他の文書構造定義言語を用いてもかまわない。
【0094】
図12に示したスキーマは、図3に示した「特許」情報の文書構造をXDRで定義したものである。図12からも容易に分かるとおり、スキーマもXML形式の構造化文書である。「Schema」タグから始まる構成要素から始まり、その子要素として、「ElementType」タグから始まる要素集合が存在する。
【0095】
図8に示した状態の構造化文書データベースに対して、図12に示したスキーマ文書を格納するためのスキーマ格納コマンドを実行する場合について説明する。この場合、「setSchema(“uix://root/特許DB”,“<Schema>…</Schema>”)」を実行する。このコマンド中、「“<Schema>…</Schema>”」」が図12に示したスキーマ文書に対応する。
【0096】
上記コマンドの実行により、図13に示すように、「#2」ノード以下に「#schema」アークが追加され、その先には、「#3」ノードをトップノードとする文書オブジェクトツリーが追加される。スキーマ自身がXML文書表現になっているため、前述した「特許」情報のようなコンテンツ文書格納のケースと同様に、図13に示したように、ツリー展開される。
【0097】
図13において、「@name」のように、「@」で始まるアークは属性に対応する。タグ名「#schema」も「#」、「@」で始まるためXML規格においては標準的なタグ名として利用することはできない。
【0098】
「#2」ノード以下に図12に示したスキーマ文書が格納されたことにより、以後、「#2」ノード以下に格納される文書の文書構造は、図12に示したスキーマ文書により定義された文書構造に適合することを要求してもよい。すなわち、この場合、「#2」ノード以下に図12に示したスキーマが設定されることになる。
【0099】
「#2」ノード以下に図12に示したスキーマが設定されると、例えば、図14に示すように、「#2」ノード以下の文書オブジェクトツリーの各ノード(のファイル)には、スキーマが存在する旨の属性値がセットされる。
【0100】
「#2」ノード以下に図12に示したスキーマが設定された後に、このスキーマで定義された文書構造に一致する図3に示したような「特許」情報の文書を、図14に示したように、文書オブジェクトツリーとして構造化文書データベースに格納したとき、この文書の文書構造には図12に示したスキーマが存在する旨の属性値が、当該文書オブジェクトツリーを構成する各文書オブジェクトにセットされる。例えば、当該文書オブジェクトツリーを構成する各文書オブジェクトのファイルに対して、スキーマが存在している旨の属性値(例えば、「スキーマ適合有無」)に「1」がセットされる。図14では、スキーマに適合している各文書オブジェクト(ノード)は2重丸で示している。2重丸で示した各文書オブジェクトには、その文書オブジェクトに対応した文書構造定義が存在することになる。
【0101】
図15は、各文書オブジェクトのファイルの内容を概念的に示したもので、例えば、オブジェクトIDが「#42」の文書オブジェクトのファイルには、その文書オブジェクトにリンクされている他の文書オブジェクトに関する情報(例えば、アークや、リンク先の文書オブジェクトへのポインタ値など)とともに、上記属性値が記述されている。なお、当該文書オブジェクトに適用するスキーマが存在しないときは、「スキーマ適合有無」の値は「0」となる。
【0102】
図16、図17は、図1の構造化文書管理システムで、必要に応じて検索条件として用いるキーワードなどとして使用される語をその意味内容から階層的に分類した結果である概念階層を構造化文書で表現した例を示す。図16、図17に示す「概念」情報はXMLで記述したコンテンツ文書である。
【0103】
図16に示した「概念」情報の例は、いわゆる特許調査における特許文書の内容を分類するための1つの分類軸として用いる「情報モデル」を概念階層で表現している。「概念」タグで囲まれた「概念」情報は、入れ子構造を持った文書構造をもっている。つまり、図16の例では、概念「情報モデル」の子供概念として、概念「ドキュメント」、概念「リレーション」、概念「オブジェクト」が存在している。また、概念「ドキュメント」の子供概念として、概念「構造化ドキュメント」、概念「非構造化ドキュメント」が存在する。さらに、概念「構造化ドキュメント」の子供概念として、概念「XML」、概念「SGML」が存在している。
【0104】
図17に示す「概念」情報の記述例は、図16とは異なる分類軸「情報操作」を概念階層で表現している。図17の例では、概念「情報操作」の子供概念として、概念「検索」、概念「格納」、概念「加工」、概念「流通」が存在している。
【0105】
図16,図17に示したような「概念」情報も、前述の「特許」情報と同様にして、構造化文書データベース内に格納することができる。すなわち、例えば、まず、図8に示した状態の構造化文書データベースに対して、「appendXML(“uix://root”,“<概念DB/>”)」を実行して、図18に示すように、「#201」ノードと「概念DB」アークが作成される。この状態において、図16に示した「概念」情報を格納する場合には、「appendXML(“uix://root/概念DB”,“<概念名前>…</概念>”)」を実行する。このコマンド中「“<概念名前>…</概念>”」が、図16に示した「概念」情報に対応する。
【0106】
上記追加コマンドの処理が実行されると、図19に示すように、「#201」ノード以下に「#202」ノードをトップとする文書オブジェクトツリーが追加される。
【0107】
以上説明したように、図1の構造化文書管理システムでは、構造化文書データベース上に登録される文書構造が異なる膨大な数のXML文書群(コンテンツ文書、スキーマ文書、クエリ文書など)を、図18,図19に示すように、「root」タグを先頭に持つツリー状の1つの巨大なXML文書として取り扱う。そのため、部分的なXML文書をアクセスするには巨大なXML文書に対するパスという、文書構造に依存しない統一的なアクセス手段を用いることにより、幅広くXML文書を検索したり加工したりすることが可能になる。
【0108】
また、構造化文書データベース上の一部にスキーマを設定することで、格納しようとする文書の文書構造がそのスキーマにより定義されている文書構造に一致するか否かの妥当性のチェックを自動的に行うようにしてもよい。
【0109】
(検索機能)
図1の構造化文書管理システムにおける検索系のコマンドには以下のものがある。
【0110】
query(ql)
「query」は、パラメータとして( )内のクエリqlを実行し、その結果のXML文書を取得するコマンド(以下、検索コマンドと呼ぶ)である。
【0111】
クエリは、例えば、図20に示すように、SQL(Structured Query Language)に似た形式の言語により、検索位置、検索条件、情報抽出部分などを記述した、文書構造をもつXML文書である。クエリ文書も構造化文書管理システムの管理対象である。
【0112】
「kf:from」タグから始まる要素には、検索位置の指定と文書要素の値に変数を対応付ける記述があり、「kf:where」タグのから始める要素には、変数に関する条件づけの記述があり、「kf:select」タグから始まる要素には、検索結果の出力形式が記述される。
【0113】
検索には、単純検索と概念検索とがある。単純検索とは、クエリ中に指定された検索条件を満たす情報を検索・抽出するものであり、概念検索とは、クエリ中に指定された概念情報を利用して、クエリ中に指定された検索条件を満たす情報を検索・抽出するものである。
【0114】
図21は、単純検索のクエリの例を示したものである。図21のクエリは、例えば、図14に示したような状態の構造化文書データベースに対し、「特許DB」アークが示すノード以下に格納されている「特許」情報の文書群において、「1999年でかつ、「PC」のような内容の「要約」という要素をもつ文書(「特許」情報)の「タイトル」を列挙せよ」という検索要求の記述例を示している。
【0115】
「kf:from」タグから始まる要素の記述により、変数「$t」、「$y」、「$s」に、それぞれ「特許」情報の「タイトル」、「年」、「要約」という文書要素の値が代入される。
【0116】
「kf:where」タグから始める要素の記述により、変数「$y」=「1999」という比較がなされる。また、コンポーネント「MyLike」は変数「$s」と「PC」を引数として、「PC」と類似する値の変数「$s」を検知するための関数である。
【0117】
「kf:from」タグから始まる要素の記述により、変数「$t」が出力値として利用される。
【0118】
なお、「kf:star」タグは構造の曖昧表現であり、例えば「<特許><kf:star><年>」は「タグ名が「特許」である要素の子孫の要素としていずれかに存在し、タグ名が「年」である要素」を意味する。
【0119】
図22に図21の単純検索のクエリを用いた検索結果を示す。この検索結果もXML文書である。
【0120】
図23は、概念検索のクエリの例を示したものである。図23のクエリは、例えば図18,図19に示すような状態の構造化文書データベースに対し、「特許DB」アークが示すノード以下に格納されている「特許」情報の文書群に対し、「概念DB」アークが示すノード以下に格納されている「概念」情報を利用して検索するための検索要求の記述例を示している。ここで、概念「周辺装置」の値をもつタグの子要素の値には、概念「SCSI」、「メモリ」、「HDD」などがあるものとする。また、図18には示していないが、各「特許」情報の構成要素には、「キーワード」タグから始める要素も存在するものとする。
【0121】
すなわち、図23のクエリは、「概念「周辺装置」以下の概念のいずれかを「キーワード」という構成要素の要素値としてもつ「特許」情報の「タイトル」を列挙せよ」という検索要求の記述例を示している。
【0122】
「kf:from」タグから始まる要素の記述により、変数「$t」、変数「$k」に、それぞれ、「特許」情報の「タイトル」、「キーワード」という要素の値が代入される。また、変数「$x」は「概念」情報として「周辺装置」の値をもつタグの子要素の値(「SCSI」、「メモリ」、「HDD」など)が代入される。
【0123】
「kf:where」タグから始める要素の記述により、「$k」=「周辺装置」もしくは「$k」=「$x」という比較がなされる。
【0124】
次に、図1の構造化文書管理システムの文書検索処理動作について、図24に示すフローチャートを参照して説明する。
【0125】
クライアント端末の所定の表示装置には、構造化文書管理システム100(の例えば、要求制御部1)から提供された、例えば、図25に示すようなユーザインターフェイスとしての画面が表示されている。
【0126】
図25に示した画面上で、ユーザが「XML検索Win」をマウス等のポインティングデバイスなどを用いて選択すると、図26に示すような文書検索を行うためのユーザインタフェースとしての画面が表示される。
【0127】
図26の検索画面において、領域W1には、構造化文書データベースの現在のツリー構造の構成要素の要素名(タグ名)がユーザが理解可能なように簡略的に表示されている。なお、図26では、上位階層の要素名のみを表示しているが、末端の要素名まで表示可能である。
【0128】
領域W11は、検索対象の範囲(ツリー構造上の検索範囲)や、検索条件などを入力するための領域である。領域W12には、検索結果が表示される。
【0129】
例えば、「「uix://root」以下の「特許」を先頭タグに持つ文書の中から、「タイトル」タグをもつ構成要素の要素値に「文書」という文字列を含み、「1998」年以降に作成された文書を検索せよ」という検索要求の場合には、領域W1から「root」をマウス等で選択して検索対象の範囲として、構造化文書パスを入力する。そして、領域W11には、まず、トップノードとして、「特許」を入力する(この場合、領域W1から「特許」をマウス等で選択することにより入力してもよい)。また、検索条件としての、「「タイトル」という構成要素の要素値に「文書」という文字列を含む」「「年」という構成要素の要素値が「1998」以上である」という内容は、予め設けられたデータ入力領域に入力すればよい。
【0130】
その後、「検索」ボタンB21を選択することにより、例えば、図27に示すようなクエリが、当該クエリを構造化文書データベース上に格納するための追加コマンドとともに構造化文書管理システムへ送信される。なお、クエリの格納場所は、予め定められており、システム側が自動的に、この追加コマンドのパラメータを設定することとなる。例えば、構造化文書データベースが図18に示した状態のとき、当該クエリの格納場所を表すパラメータとしての構造化文書パスは、「uix://root/クエリDB」となる。また、追加コマンドのもう一方のパラメータは、当該クエリ文書である。
【0131】
要求受付部11は、上記クエリを受け付けると(ステップS100)、当該クエリを検索要求処理部3へ渡す。そして、当該クエリ文書を格納するための追加コマンドのパラメータを文書格納部21へ渡す。文書格納部21では、追加コマンドの処理を行って、当該クエリは、文書記憶部5に格納される(ステップS101)。
【0132】
一方、検索要求処理部3では、受け取ったクエリを基に、データアクセス部4を通してインデックス記憶部6,文書記憶部5にアクセスし、検索要求に合致する文書集合などを取得して、クエリの中で要求された情報を抽出して結果処理部12を介して出力する。
【0133】
例えば、上記クエリの場合、まず、「「タイトル」タグをもつ構成要素の要素値に「文書」という文字列を含む」という条件に合致するものを検索することが検索対象を絞り込む上で効率がよい。そこで、図10に示したようなデータ生起インデックスを用いて、「文書」という文字列にリンクされているノード(文書オブジェクト)のオブジェクトIDを得る。そして、そのそれぞれについて、文書オブジェクトツリーを上流側に1つ遡り、「タイトル」というタグ名にたどり着いたときは、更に上流に辿っていき、「特許」というタグ名にたどり着いたときは、そのノード以下の文書オブジェクトツリーOt11を抽出する。
【0134】
次に、この抽出された複数の文書オブジェクトツリーOt11の中から、さらに、「年」という構成要素の要素値が「1998」年以上の文書オブジェクトツリーOt12を抽出する。
【0135】
この文書オブジェクトツリーOt12が上記クエリの内容に適合する文書となる。さらに上記クエリの要求内容に従えば、各文書オブジェクトツリーOt12のトップノードへの構造化文書パスを求める(ステップS102)。
【0136】
なお、上記検索処理は、上記した方法に限るものではなく、インデックス情報を用いた様々な効率のよい検索方法が可能である。
【0137】
検索要求処理部3は、ステップS102で得られた結果を統合して、検索結果としてのXML文書を作成する(ステップS103)。
【0138】
例えば、検索結果のXML文書は、
<out>
<result>
uix://root/特許DB/特許[0]
</result>
<result>
uix://root/特許DB/特許[2]
</result>
</out>
となる。
【0139】
検索要求処理部3は、検索結果処理部12を介して、上記XML文書をスタイルシートとともに、要求元のクライアント端末に返す(ステップS104)。
【0140】
クライアント端末では、図11に示したXML文書を、スタイルシートを用いてHTMLデータに変換して、例えば、図26に示すように、領域W12に表示する。ここでは、例えば検索結果として得られた構造化文書の数が多いために、検索された構造化文書の構造化文書パスが検索結果として表示されている。この場合、例えば、図26の領域W12に表示された検索結果の構造化文書パスのうち、所望の1つがユーザにより選択されたとする。例えば、図26の領域W12に表示された構造化文書パスのうち、最初のものが選択されたとする。この場合、クライアント端末から構造化文書管理システムに対し、当該選択された構造化文書パスにより特定される構造化文書を取得するために文書取得要求として、取得コマンドを送信するようにしてもよい。
【0141】
取得コマンドが構造化文書管理システムの要求受付部11にて受け付けられたときの、図1の構造化文書管理システムの文書取得処理動作について、図28に示すフローチャートを参照して説明する。
【0142】
例えば、「getXML(“uix://root/特許DB/特許[0]”)」なる取得コマンドが構造化文書管理システムへ送信される。
【0143】
ここでは、例えば、構造化文書データベースが、図8に示した状態のときに、「getXML(“uix://root/特許DB/特許[0]”)」なる取得コマンドを受け付けた場合を例にとり説明する。
【0144】
要求受付部11は、上記取得コマンドを受け付けると、上記取得コマンド中のパラメータである構造化文書パス「uix://root/特許DB/特許[0]」を文書取得部22へ渡す(ステップS31)。
【0145】
文書取得部22は、文書オブジェクトツリー取得部43へ構造化文書パスを渡す。文書オブジェクトツリー取得部43は、構造化文書パスから文書記憶部5中の物理的なエリアを特定することにより、そのエリアに存在する構造化文書パスにて表されたノード(文書オブジェクトOx5)を取り出す(ステップS32)。構造化文書パスの指定が正しければ、文書オブジェクトOx5のオブジェクトIDを取得することができるので(ステップS33)、その場合は、ステップS35へ進む。
【0146】
例えば、上記取得コマンドの場合、「#42」ノードが文書オブジェクトOx5となるので、そのオブジェクトIDとして、「#42」を取得するとともに、この「#42」ノード以下の文書オブジェクトツリーOt5(「#42」ノード〜「#49」ノード)を取得する(ステップS35)。
【0147】
ステップS32において、指定された構造化文書パスからそれに対応する文書オブジェクトOx5が見つからなければ、エラーとなり(ステップS33)、文書取得部22,結果処理部12を介して、クライアント端末に「文書取得失敗」の旨のメッセージを返す(ステップS34)。
【0148】
ステップS35で取得した文書オブジェクトツリーOt5は、文書文字列取得部44でXML文書に変換される。例えば、上記取得コマンドの場合、取得したXML文書は、図3に示すような「特許」情報のXML文書となる。
【0149】
文書取得部22は、結果処理部12を介して、図3に示したようなXML文書を(例えば、XSL(eXtensible Style Language)といった所定のスタイルシートとともに)、クライアント端末へ返す(ステップS37)。
【0150】
クライアント端末では、図3に示したXML文書を、スタイルシートを用いてHTMLデータに変換して、例えば、図29に示すように、領域W13に表示する。
【0151】
XSLを利用すると、XML文書を様々な形に変換することが出来る。違う構文書造のXML文書に変換することも出来るし、XML文書からHTMLページを生成することも出来る。
【0152】
同様にして、スキーマの検索も行える。
【0153】
例えば、「「uix://root」以下の「schema」を先頭タグに持つ文書の中から、「特許」と「要約」というタグ名を持つスキーマを検索せよ」という検索要求の場合には、図30に示すように、領域W1から「root」をマウス等で選択して検索対象の範囲として、構造化文書パスを入力する。そして、トップノードとして、「#schema」を入力する。また、検索条件として、「構成要素の属性名に「特許」という文字列を含む」「構成要素の属性名に「要約」という文字列を含む」という内容を予め設けられたデータ入力領域に入力すればよい。
【0154】
その後、「検索」ボタンB21を選択することにより、上記検索要求を記述した、例えば、図31に示したようなクエリが、当該クエリを構造化文書データベース上に格納するための追加コマンドとともに構造化文書管理システムへ送信される。
【0155】
さて、上記クエリの場合、例えば、「「#schema」を先頭タグに持つ」という条件に合致するものを検索する。そこで、図9に示したような要素名称生起インデックスを用いて、「#schema」という要素にリンクされているノードの(文書オブジェクト)のオブジェクトIDを得る。そして、そのそれぞれについて、文書オブジェクトツリーを下流側にアークを辿っていき、属性名が「特許」と「要約」いう要素にたどり着いたときは、当該「#schema」を先頭タグにもつ文書オブジェクトツリーOt21を抽出する。この文書オブジェクトツリーOt21が上記クエリの内容に適合する文書となる。さらに、図31に示したクエリの要求内容に従えば、各文書オブジェクトツリーOt21のトップノードへの構造化文書パスを求める。
【0156】
検索要求処理部3は、文書オブジェクトツリーOt21が複数あれば、それぞれのトップノードへの構造化文書パスをまとめて、検索結果としてのXML文書を作成し、検索結果処理部12を介して、上記XML文書をスタイルシートとともに、要求元のクライアント端末に返す。
【0157】
クライアント端末では、検索結果として受け取ったXML文書を、スタイルシートを用いてHTMLデータに変換して、例えば、図26に示すように、領域W12に表示する。
【0158】
クライアント端末では、検索結果の中の1つのスキーマを選択して、表示させると、例えば、図32に示すような文書の格納/削除を行うための画面とともに、その領域W3に、「特許」情報のデータ入力領域が各要素毎に設定されて表示される。
【0159】
ユーザは、このデータ入力領域にデータを入力することで、スキーマにより定義された文書構造の格納文書が容易に作成することができる。
【0160】
例えば、図32の領域W3に入力した「特許」情報の格納先として、領域W1で「特許DB」をマウス等を用いて選択すると、領域W2に構造化文書パスとして、「uix://root/特許DB」が表示される。その後、「登録」ボタンB1を選択すると、「appendXML(“uix://root/特許DB”,“<特許>…</特許>”)」なる追加コマンドが構造化文書管理システムへ送信される。
【0161】
以上説明したように、図1の構造化文書管理システムでは、構造化文書データベース上に登録される文書構造が異なる膨大な数のXML文書群(コンテンツ文書、スキーマ文書、クエリ文書など)を、図18,図19に示すように、「root」タグを先頭に持つツリー状の1つの巨大なXML文書として取り扱う。従って、文書構造が異なる、様々なスキーマを持つ膨大な数の文書の中から検索条件に合致する文書を容易に検索できる。
【0162】
また、検索に用いるクエリも構造化文書であるので、構造化文書データベースにログとして格納することにより、過去のクエリを再利用するようなアプリケーションも容易に構築することができる。
【0163】
(絞込検索)
以下、本発明の実施形態について、図面を参照して説明する。
【0164】
ここでは、ユーザは、単に、検索したい構造化文書の構成要素の要素名や要素値に含まれるようなキーワードを入力しさえすれば、絞込検索を通じて所望の構造化文書が容易に検索することができる手法を適用した検索支援装置について説明する。
【0165】
この検索支援装置は、例えば、図2のクライアント端末102内に構成されていてもよい。この場合、検索支援装置は、前述の図1に示した構造化文書管理システムに入力するためのクエリを生成して、それを図1の構造化文書管理システムに送信したり、また、当該クエリに基づく検索結果を取得して、この検索結果から絞込条件を抽出しユーザに呈示するなどの処理を行うものである。
【0166】
図33は、本実施形態にかかる検索支援装置201の構成例を示したもので、例えば、クライアント端末102のブラウザ103に組み込まれて構成されている。このように図33に示した検索支援装置201は、アドインソフトとして構成可能である。
【0167】
図33に示したように、検索支援装置201は、初期条件入力部211と検索要求発行部212と検索結果取得部213と検索結果サンプリング部214と絞り込み条件抽出部215と選択部216と検索結果表示部217から構成されている。
【0168】
構造化文書管理システム100は、検索支援装置201から送られてきたクエリと呼ばれる検索要求を受信して、XMLデータベース(すなわち、ここでは文書記憶部5に格納されている、例えば、図8に示したような階層化された論理構造をもつデータベース)から当該検索要求にマッチする検索結果としてのXML文書を検索し、XMLデータの並びという形式で検索支援装置201に送信する。
【0169】
XMLデータの並びは、必ずしもテキスト列というわけではなく、バイナリ化されている場合もある。
【0170】
初期条件入力部211は、検索したい文書を検索するための検索条件を生成するために必要な、少なくとも1つのキーワード(複数のキーワードであってもよい)を入力するためのものである。
【0171】
前述したように、XMLデータベースには様々な構造(文書構造)や語彙を持ったXMLデータ(XML文書)が大量に格納されているため、ユーザはこのXMLデータベースの中から所望の文書を検索するために前もって明確なXMLデータに対する検索条件を設定することは困難である。明確な検索条件とは、XMLデータに対する構造に関する条件や語彙に関する条件が必要十分なことである。そこで、ユーザはフルテキスト検索などと同様にキーワードレベルの粗い検索条件しか設定できない場合がほとんどである。初期条件入力部211では、そのような粗い検索条件がユーザにより入力されると、検索要求発行部212を呼び出す。
【0172】
検索要求発行部212では、上記入力されたキーワードを検索条件として構造化文書管理システムが認識できるような形式に変換する。すなわち、上記入力されたキーワードを構成要素の要素名あるいは要素値に含むようなXML文書を検索するためのクエリ(あるいは、以下に示すように、入力されたキーワードを構成要素の要素値に含むようなXML文書を検索するためのクエリであってもよい)を生成し、当該クエリを構造化文書管理システム100へ送信する。
【0173】
検索結果取得部213は、検索要求発行部212で生成されたクエリに基づき構造化文書管理システム100で検索されたXMLデータ(XML文書、簡単に文書と呼ぶこともある)の集合を取得する。ここで検索結果として得られたXML文書の数が多い場合には、検索結果サンプリング部214にて、当該検索結果として得られたXML文書の中から所定数のXML文書を選択し、この選択したXML文書を処理対象の文書として絞り込み条件抽出部215へ渡す。例えば、検索結果のうちの「最初の100件」を無作為に取り出すことにより、実用時間内で応答するように制御するようになっている。もちろん検索結果として得られたXML文書の数が少ない(例えば、上記の例の場合、100件に満たない場合)には、その全てを処理対象の文書として絞り込み条件抽出部215へ渡すようにしてもよい。
【0174】
なお、検索結果サンプリング部214は、必ずしも設ける必要はなく、この構成部のない検索支援装置も構成可能である。この場合、検索結果取得部213は、構造化文書管理システム100から得られた検索結果としてのXML文書を全て処理対象の文書として絞り込み条件抽出部215へ渡せばよい。
【0175】
絞り込み条件抽出部215は、検索結果として得られたXML文書(具体的には、検索結果サンプリング部214で取り出されたXML文書)を処理対象として、この処理対象の文書から、さらに絞り込みをかけるための、より詳細な検索条件としての絞り込み条件を抽出する。なお、絞り込み条件とは、初期条件入力部211にてユーザから設定された粗い検索条件をより詳細化した検索条件である。例えば、処理対象の文書の文書構造上の違いや、各処理対象の文書に含まれている単語などの語彙の違いなどが絞り込み条件の候補として抽出される。
【0176】
検索結果表示部217は、抽出された絞り込み条件と、検索結果として得られたXML文書の一覧などを表示するための表示データを作成し、クライアント端末102のディスプレイなどに表示する。
【0177】
選択部216は、検索結果表示部217により表示された複数の絞り込み条件のうちの1つがユーザにより選択されると、検索要求発行部212を呼び出す。このとき、検索要求発行部212では、直前の検索結果のXML文書の中から、さらに当該選択された絞り込み条件を満たすXML文書を検索するためのクエリ(すなわち、初期条件とそれまでに選択された絞り込み条件とを全て満たすXML文書を検索するためのクエリ)が生成される。このクエリは構造化文書管理システムへ送信される。構造化文書管理システムにおいて当該クエリに基づき検索を行った結果は、検索結果取得部213により取得される。
【0178】
次に、図34〜36に示すフローチャートに従って、図33に示した検索支援装置の処理動作について説明する。
【0179】
前述したように、XMLデータベースには、異なる文書構造の複数のXML文書がその文書構造に基づく階層構造に従って格納されている。この検索支援装置の処理動作の説明に際しては、XMLデータベースの具体例を示さないが、以下に示す検索結果として得られた「BOOK」タグを先頭とする4つの文書は、XMLデータベースの「root」ノード以下のいずれかに記憶されているものとする。また、「BOOK」ノード以下に格納されている文書は、全て同じ文書構造であるとは限らない(すなわち、スキーマが設定されていない)ものとする。従って、「BOOK」ノード以下に格納されている各文書は、例えば内容的には類似するものの文書構造が全て同一であるとは限らない。
【0180】
まず、ユーザは、初期条件入力部211から文書検索のための初期条件として、少なくとも1つのキーワードを入力する(ステップS201)。
【0181】
図37は、初期条件入力部211からクライアント端末102のディスプレイに表示される初期条件入力画面の一例を示したものである。ユーザは、この初期条件入力画面上に設けられた入力領域X1に、文書を検索するための初期条件として、少なくとも1つのキーワードを入力する。ここでは、「XML」というキーワードが入力されているが、複数のキーワードを入力する場合には、それらをカンマなどで区切りながら並べて入力するようにしてもよい。
【0182】
ユーザにより初期条件としてのキーワードが入力されると、検索要求発行部212が起動し、ここでは、当該入力されたキーワードを構成要素の要素値に含むXML文書を検索するためのクエリを生成する(ステップS202)。
【0183】
図38は、検索要求発行部212で生成されたクエリの一例で、「XML」というキーワードをいずれかの構成要素の要素値に含むXML文書を検索することを構造化文書管理システム100に指示する検索要求文である。つまり、「kf:from」節では、XMLデータベース中の検索位置として、構造化文書パスにて、「uix://root」が指定されている。また、「kf:where」節では、「XML」を要素値に含むという条件が記述されている。「kf:select」節では、「uix://root」以下に格納されている文書のうち、「kf:where」節に記述されている条件にマッチする文書の集合を返すことが記述されている。
【0184】
なお、図38に示したクエリは、要素値に「XML」というキーワードを含む文書を検索するクエリであるが、同様にして、検索要求発行部212は、要素名に「XML」というキーワードを含む文書を検索するクエリや、要素名と要素値のうちの少なくとも一方に「XML」というキーワードを含む文書を検索するクエリを生成することも可能である。
【0185】
検索要求発行部212は、例えば、図38に示したようなクエリを生成するためのクエリの雛形を記憶している。この雛形は、例えば、ユーザにより入力されたキーワード「XML」を代入すれば、図38に示したようなクエリが完成するものである。このように、検索要求発行部212は、ユーザにより入力された初期条件、あるいは選択された絞り込み条件を代入、追加さえすればクエリとして完成するクエリの雛形を複数種類予め記憶しておき、これを基にクエリを生成するようにしてもよい。
【0186】
さて、検索要求発行部212で生成されたクエリ(例えば、図38に示したようなクエリ)は、構造化文書管理システム100へ送信されると、構造化文書管理システム100の要求処理部1で当該クエリが受け付けられ、前述したようにして、当該クエリに基づきXMLデータベースの「root」ノード以下から、要素値に「XML」というキーワードを含むXML文書が検索される。検索した結果得られた文書は、クライアント端末102へ送信され、検索支援装置201の検索結果取得部213が当該検索結果を取得する(ステップS203)。
【0187】
例えば、構造化文書管理システムおいて120件の文書が検索されたものとする。この120件の文書全てが検索結果として検索支援装置201の検索結果取得部213で取得されるものとする。そして、検索結果サンプリング部214では、このうち、例えば、先頭の4件の文書を選択(サンプリング)したとする。
【0188】
この4件の文書を、図39に示す。図39に示すように、各文書Rec1〜4は、全て「BOOK」タグをルートとする構造化文書であり、「CATEGORY」タグをもつ構成要素は、4つの文書に共通する構成要素であり、また、「PRICE」タグをもつ構成要素は文書Rec1〜3には存在するが、文書Rec4には存在しない。
【0189】
図39に示した4つの文書が処理対象の文書として、絞り込み条件抽出部215に渡される。絞り込み条件抽出部215では、これら4つの文書のそれぞれの文書構造と構成要素の要素値とから、絞り込み条件を抽出する(ステップS204)。絞り込み条件とは、初期条件入力部211にてユーザから設定された粗い検索条件をより詳細化した条件である。
【0190】
ここで、ステップS204の絞り込み条件抽出部215における絞り込み条件の抽出処理の一例について、図36に示すフローチャートを参照して説明する。
【0191】
まず、今回の処理対象の4つの文書は、最初の検索結果であるので(ステップS221)、ステップS222へ進む。
【0192】
ステップS222では、この処理対象の文書のそれぞれの先頭の構成要素の要素名を抽出し、この抽出された要素名を条件としたとき、処理対象の文書のそれぞれが上記条件のうちどの条件を満たすのかを表した構造テーブルを作成する(ステップS222)。
【0193】
構造テーブルを作成することにより、処理対象の文書の文書構造上、語彙上の相違点が明らかとなる。構造テーブル上に、処理対象の文書の相違点が表れていれば、当該構造テーブル上の条件を絞り込み条件として用いることにより、絞り込みがより効率よく行える。そこで、この生成された構造テーブル上に、処理対象の文書間に存在する相違点が表れていないときには(ステップS223)、展開元の構成要素を選択し(ステップS224)、当該展開元の構成要素に包含される当該構成要素の要素値や構成要素などを抽出して、上記ステップS222と同様にして、これらを条件としたとき、処理対象の文書のそれぞれが、どの条件を満たすのかを表した構造テーブルを作成し(ステップS225)、ステップS223へ戻る。
【0194】
ステップS223において、作成された構造テーブルから、処理対象の文書に相違点があると判断することができるときには、ステップS226へ進む。
【0195】
次に、ステップS222やステップS225での処理の詳細と、構造テーブルについて説明する。
【0196】
構造テーブルのx軸方向には各文書の文書IDを列のインデックスとして設定し、y軸方向には、上記抽出された条件を行のインデックスとして設定し、各文書に対応する列を構成するセルのうち、当該文書が満たしている条件に対応するセルには「○」、当該文書が満たしていない条件に対応するセルに「×」が書き込まれている。
【0197】
XML文書の集合を絞り込むための絞り込み条件は、一般に複数ある。構造テーブルにより、絞り込み条件を優先順位付けしてユーザに提示することで、ユーザは効率よく絞り込みが行えることになる。つまり、「どのような絞り込み条件があるのか分からない」、「どの絞り込み条件を設定すれば効率良く絞り込みができるのか分からない」、などのユーザ要求があるが、これを支援することができるのである。
【0198】
図40は、構造テーブルの一例を示す図である。2つの構造テーブルが存在する。図40(a)に示す構造テーブルは、処理対象としての4つのXML文書Rec1〜Rec4から生成された最初の構造テーブルである。すなわち、ステップS222で生成された構造テーブルである。構造テーブルのx軸には、各XML文書の文書ID「Rec1」〜「Rec4」が並んでいる。y軸には、各XML文書のルート(先頭)から各文書構造を展開した結果得られた条件が並んでいる。4つのXML文書をルートから構造的に見ると、先頭の構成要素は、全て「BOOK」タグをもつ構成要素がある。すなわち、この時点で、“「BOOK」タグを持つ”という条件が抽出された。4つの文書Rec1〜Rec4には、それぞれ「BOOK」タグがあるので、図40(a)に示すように、この条件を満足した印である「○」が並んでいる。
【0199】
これは、すべて条件を満足する「○」なので(4つの文書に相違点がない(「×」がない)ので)、ステップS223からステップS224へ進み、次に、この最初の構造テーブルを展開する(階層構造を1段下流に向かって掘り下げて、そこに存在する文書構造や語彙を調べる)ための処理を行う。
【0200】
まず、この最初の構造テーブル上の条件の中から展開元を選択する(ステップS224)。この場合、「BOOK」という構成要素だけなので、必然的にこの「BOOK」が選択される。そして、ステップS225では、「BOOK」という構成要素に包含される(下流に繋がる)当該構成要素の要素値や構成要素の要素名を処理対象の文書のそれぞれから抽出し、それらを条件としたとき、処理対象の文書のそれぞれがどの条件を満たすのかを表した構造テーブルを作成する(図40(b))。
【0201】
例えば、処理対象の4つの文書のうちの1つである文書Rec1の「BOOK」という構成要素の1段下の階層には、図39からも明らかなように、「CATEGORY」タグ、「TITLE」タグ、「PUBLISHEDDATE」タグ、「PRICE」タグ、「ABSTRACT」タグをそれぞれもつ構成要素がある。
【0202】
すなわち、ステップS225では、“「BOOK」タグを持つという条件”を展開することにより、“「BOOK」タグの下に「CATEGORY」タグがある”、“「BOOK」タグの下に「TITLE」タグがある”、“「BOOK」タグの下に「PUBLISHEDDATE」がある”、などの構造的な条件群が得られる。もちろん、「BOOK」タグをもつ構成要素に要素値をもつものがあれば、それもこの段階で抽出されて、語彙的な条件として用いることもできる。
【0203】
図40(b)に示す構造テーブルでは、y軸上に上記のような条件が並び、処理対象の4つの文書のそれぞれについて、当該条件を満たすか満たさないかを「○」「×」で表している。
【0204】
図40(b)からも明らかなように、「AUTHOR」という要素名の構成要素は、文書Rec2には存在しない。また、「PRICE」という要素名の構成要素は、文書Rec4には存在しない。すなわち、図40(b)に示した構造テーブルから、処理対象の4つの文書に相違点があることがわかる。そこで、この場合には、ステップS223からステップS226へ進む。
【0205】
なお、“「BOOK」タグを持つという条件”を展開しても、処理対象の文書に相違点が存在しないときには、ステップS24へ進み、展開元として、例えば、図40(b)に示す構造テーブル上の条件のうち最初の条件から順番に選択して、相違点が表れるまで図40(b)に示す構造テーブルを展開するようにしてもよい。
【0206】
このように、構造テーブルは、処理対象の文書のそれぞれがもつ文書構造や、処理対象の文書のそれぞれが要素値として包含している語彙を比較するためのものであり、この構造テーブルを用いることにより、処理対象の文書における構造的な特徴と語彙的な特徴の一致点、相違点が明らかとなる。この処理対象の文書における構造的な特徴と語彙的な特徴の相違点を、絞り込み検索の際に用いる条件として用いれば、検索範囲をより限定することができ、絞り込みを効率よく行える。そこで、ここでは、この点に着目し、上記相違点を絞り込み条件の候補として優先的にユーザに呈示するものである。すなわち、各処理対象の文書の文書構造と、各処理対象の文書により包含される語彙とから抽出される条件のうち、処理対象の文書間に違いを生じさせるものほど、検索範囲を限定することができる絞り込み条件となり得るから、そのような条件ほど優先度(優先順位)を高く設定する。
【0207】
構造テーブル上に処理対象の文書の相違点が表れている場合、ステップS226では、例えば、図40(b)に示したような構造テーブル上の行のインデックスとして設定された各条件に対し、優先順位を定める。すなわち、ここでは、より絞り込まれた検索結果が得られるような条件ほど優先順位が高くなるように、優先順位を求める。
【0208】
優先順位の算出手法について、以下に詳細に説明する。この手法は、ID3(J.R.Quinlan, ”Induction of Decision Trees”, Machine Learning, Vol.1, pp.81−pp.106, 1986)などで使用されている期待情報量最大化原理に基づいて行うものである。つまり、Cを属性とその属性値、所属クラスによって表現される事例集合とする。Aを属性の集合とし、Kをクラスの数、Pjを事例集合Cの中で暮らすjに属する事例の比率とすると、事例集合Cの情報量(エントロピー)M(C)は以下の式で表わされる。
【0209】
M(C)=−Σ{j=1,k}Pjlog2(Pj)
Cをある属性aの属性値ai,…anによって部分集合C1,…Cnに分割したときの期待情報量B(C,a)は以下の式で表わされる。
【0210】
B(C,a)=Σ{i=1,n}|Ci|/|C|×M(Ci)
獲得情報量の期待値gain(C,a)は以下の式になる。
【0211】
gain(C,a)=M(C)−B(C,a)
このgain(C,a)を最大にする属性aで事例集合を分割していくことで、効率的に事例をクラスに分けることができる。
【0212】
本実施形態の場合、各検索結果は、それぞれ別のクラスであるとして扱う。
【0213】
M(C)=(−1/n×log2(1/n))×n (n:条件Cを満たす文書の数)
ここで、図40(b)に示した構造テーブルの行のインデックスとして設定された各条件(C)についてM(C)を計算する。
【0214】
M(“BOOK/CATEGORY”)=(−1/4×log2(1/4))×4=2
M(“OOK/TITLE”)=2
M(“BOOK/PUBLISHEDDATE”)=2
M(“BOOK/AUTHOR”)=(−1/3×log2(1/3))×3+(−1/1× log2(1/1))×1=1.19
M(“BOOK/PRICE”)=1.19
M(“BOOK/ABSTRACT”)=2
この場合、M(C)の値が小さいものほど、絞り込まれた検索結果が得られる条件であることを表しており、優先順位の高い条件となる。
【0215】
以上から、各条件を優先順位の高い順に並べると、
“BOOK/AUTHOR”>=“BOOK/PRICE”>“BOOK/CATEGORY”=“BOOK/TITLE”=“BOOK/PUBLISHEDDATE”
となる。
【0216】
絞り込み条件抽出部215は、上記優先順位に従って、図40(b)に示したような構造テーブル上の行のインデックスとして設定された各条件を並べて、絞り込み条件の表示データを作成する(ステップS226)。
【0217】
図34の説明に戻り、ステップS204において、絞り込み条件の表示データが絞り込み条件抽出部215で作成されると、検索結果表示部217では、処理対象の4つの文書の一覧データを作成するとともに、この一覧データと、絞り込み条件の表示データとから、絞り込み条件と検索結果の文書の一覧をユーザに呈示するための検索結果表示画面データを作成し、クライアント端末102のディスプレイに表示する(ステップS205)。
【0218】
図41は、検索結果表示部217で表示する検索結果表示画面の表示例を示したものである。
【0219】
検索結果表示画面の領域Y2には、絞り込み条件が、絞り込み条件抽出部215で求めた優先順位の高い順に並べられて表示されている。図41において、各絞り込み条件の左端にある図形により、他の文書との間の相違点の有無、すなわち、構造テーブル上で「○」と「×」が混在してい文書であるか否かを視覚的に表している。例えば、「◇」は、「○」「×」が発生する条件を表わし、「□」は全て「○」となっている条件を表わしている。
【0220】
検索結果表示画面の領域Y3には、検索結果の文書の一覧が表示されている。ここでは、構造化文書パスにて表示されている。この一覧中の構造化文書パスのうち所望の1つがユーザによりマウス等の入力デバイスを用いて選択されると、図35のステップS208からステップS209へ進み、選択部216は、検索結果表示部217を通じて、当該選択された構造化文書パスに対応する文書の内容を表示させる。また、検索結果表示画面上に設けられた「終了」ボタンが選択されると、検索支援装置201の処理動作は終了する。
【0221】
検索結果表示画面の領域Y2に表示されている絞り込み条件の中から、ユーザは、マウス等の入力デバイスを用いて所望の絞り込み条件を選択することができる。ユーザは、領域Y3に表示された検索結果にさらに絞り込みをかけたいときなどは、領域Y2から所望の絞り込み条件を選択すればよい。例えば、ユーザにより、「BOOK/CATEGORY」が選択されたとする(ステップS206)。
【0222】
ユーザにより絞り込み条件が選択されると、選択部216は、検索要求発行部212を起動する。検索要求発行部212では、前回の検索結果の文書の中から、当該選択された絞り込み条件を満たす文書を検索するためのクエリをステップS202の場合と同様にして生成する(ステップS207)。すなわち、例えば、前回の検索の際に生成されたクエリの検索条件を記述する「kf:where」節に、今回選択された絞り込み条件をさらに追加するなどしてクエリを生成することもできる。
【0223】
この生成されたクエリは、前述同様、構造化文書管理システム100へ送信されて、当該クエリに基づき、XMLデータベースの「root」ノード以下から、要素値に「XML」というキーワードを含むXML文書のうち、「BOOK」ノードの下に「CATEGORY」ノードがあるXML文書が検索される。検索した結果得られた文書は、クライアント端末102へ送信され、検索支援装置201の検索結果取得部213が当該検索結果を取得し(ステップS203)、検索結果として得られた文書の数に応じて、そのうちの先頭の4件が、処理対象として選択される。
【0224】
なお、上記例の場合、処理対象の文書は、前回の検索と同様文書Rec1〜Rec4である。
【0225】
次に、2回目の検索結果に対して、ステップS204で行われる、絞り込み条件抽出部215の処理動作について、図36を参照して説明する。今回の処理対象の文書は、絞り込み検索の検索結果として得られた文書であるから、ステップS221からステップS224へ進み、展開元として、今回の絞り込み検索の際に用いられた絞り込み条件を選択し、次に、ステップS225へ進む。
【0226】
ステップS225では、図40(b)に示した構造テーブルを、この構造テーブル上の条件のうち、今回の絞り込み検索において、ユーザにより選択された絞り込み条件「BOOK/CATEGORY」を展開元として展開する。
【0227】
処理対象の文書Rec1〜Rec4のそれぞれは、図39に示したように、「BOOK/CATEGORY」の下には要素値としてのテキストがあり、それらは「コンピュータ」か「経済」のいずれかである。従って、この2つの語彙のそれぞれを含む条件を、構造テーブルの行のインデックスに設定する。また、文書Rec2以外の文書には「BOOK/CATEGORY」の下に「SUBCATEGORY」という構成要素が発生している(存在している)。従って、この構造上の条件も構造テーブルの行のインデックスに設定する。
【0228】
図42は、このようにして「BOOK/CATEGORY」を展開元として展開した結果得られた構造テーブルを示している。なお、図42では、前回までに作成した構造テーブル上の優先順位の高い条件に、さらに上記語彙情報、構造情報を新たな条件として追加するかたちで作成された構造テーブルの一例を示している。
【0229】
次に、ステップS223からステップS226へ進み、前述同様にして、各条件についてM(C)の値を求めると、以下のようになる。
【0230】
M(“BOOK/CATEGORY/text()=コンピュータ”)=1.19
M(“BOOK/CATEGORY/text()=経済”)=1.19
M(“BOOK/CATEGORY/text()”)=MIN{M(“BOOK/CATEGORY/text()=コンピュータ”),M(“BOOK/CATEGORY/text()=経済”)}=1.19
M(“BOOK/CATEGORY/SUBCATEGORY”)=1.19
M(“BOOK/AUTHOR”)=1.19
M(“BOOK/PRICE”)=1.19
この場合、上記全ての条件のM(C)は同じ値となっているので、絞り込み条件抽出部215は、例えば、構造テーブルの順番に、上記優先順位の等しい条件を並べて、絞り込み条件の表示データを作成する(ステップS226)。
【0231】
図43は、今回、検索結果表示部217で表示する検索結果表示画面の表示例を示したものである。
【0232】
ユーザは、図43に示した検索結果表示画面の領域Y2から絞り込み条件として「BOOK/CATEGORY/SUBCATEGORY」を選択したとする。これを絞り込み条件として絞り込み検索を行うと、検索結果の中から文書Rec2は除かれるので(文書Rec2は、今回の絞り込み条件を満たさないので)、絞り込み条件抽出部215の処理対象の文書は、文書Rec1、Rec3、Rec4となる。この3つの文書を処理対象の文書として、検索支援装置201の絞り込み条件抽出部215で、「BOOK/CATEGORY/SUBCATEGORY」を展開元として作成した構造テーブルの一例を図44に示す。
【0233】
処理対象の文書のそれぞれは、図44に示したように、「BOOK/CATEGORY/SUBCATEGORY」の下には要素値としてのテキストがあり、それらは「ソフトウエア」か「ハードウエア」のいずれかである。従って、この2つの語彙のそれぞれ含む条件が、構造テーブルの行のインデックスに設定されている。なお、図44では、前回までに作成した構造テーブル上の優先順位の高い条件に、さらに上記語彙情報を新たな条件として追加するかたちで作成された構造テーブルの一例を示している。
【0234】
図44に示した構造テーブル上の各条件についてM(C)の値を求めると、以下のようになる。
【0235】
M(“BOOK/CATEGORY/SUBCATEGORY/text()=ソフトウエア”)=1
M(“BOOK/CATEGORY/SUBCATEGORY/text()=ハードウエア”)=1.19
M(“BOOK/CATEGORY/SUBCATEGORY/text()”=MIN(1,1.19)=1
M(“BOOK/AUTHOR”)=1.19
M(“BOOK/PRICE”)=1.19
上記算出結果を基に、各条件を優先順位の高い順に並べると、
“BOOK/CATEGORY/SUBCATEGORY/text()”>“BOOK/AUTHOR”=“BOOK/PRICE”となる。
【0236】
絞り込み条件抽出部215は、上記条件を優先順位の高い順に並べて絞り込み条件の表示データを作成した結果、図45に示したような検索結果表示画面が表示される。上記優先順位の高い順に絞り込み条件(の候補)が並べられている。
【0237】
ユーザは、図45に示した検索結果表示画面の領域Y2から絞り込み条件として「BOOK/CATEGORY/SUBCATEGORY/text()=ソフトウェア」を選んだものとする。そして、絞り込み条件を追加した再検索(絞り込み検索)を行うため、ユーザは、「実行」ボタンを押す。
【0238】
図46は、このとき検索要求発行部212で生成されたクエリデータの一例である。「XML」というキーワードを含むXMLデータを検索するという初期条件以外に、これまでに選択された絞り込み条件が追加されている。つまり、この場合、「kf:from」節では、「“uix://root”以下のXML文書のうち、「BOOK」というタグの構成要素を持ち、その下に「CATEGORY」タグをもつ構成要素があり、この構成要素に「コンピュータ」というテキストがあり、さらに、当該構成要素は「SUBCATEGORY」タグを持つ構成要素を包含し、この「SUBCATEGORY」タグをもつ構成要素に「ソフトウェア」というテキストを持つXML文書」という検索条件が記述されている。
【0239】
図46に示したクエリに基づき構造化文書管理システム100で検索を行った結果、例えば、図47に示すように、文書Rec1と文書Rec4とが検索されたとする。
【0240】
文書Rec1とRec4とを処理対象として絞り込み条件抽出部215では、図36に示したフローチャートに従って、今回の絞り込み条件、すなわち、「BOOK/CATEGORY/SUBCATEGORY/text()=ソフトウェア」を展開元として構造テーブルを展開するが、この場合、もうこれ以上展開することはできない。
【0241】
この場合、当該絞り込み条件が設定されている元の構造テーブル、すなわち、図44に示した構造テーブル上に、文書Rec1とRec4との相違点を表す条件も設定されているので、新たに、展開元を選択することなく、この構造テーブルを用いて、当該構造テーブル上の条件のうち、今回の絞り込み検索に用いた絞り込み条件を除く、文書Rec1とRec4に該当する各条件について、前述同様にしてM(C)の値を求める。そして、その値を基に、優先順位の高い順に条件を並べて、絞り込み条件の表示データを作成する。
【0242】
図48は、今回、検索結果表示部217で表示する検索結果表示画面の表示例を示したものである。
【0243】
図49は、検索結果表示画面の他の例を示したものである。図49に示した検索結果表示画面は、図45に示した検索結果表示画面に対応するが、異なるのは、領域Y3における検索結果一覧の表示方法である。
【0244】
図49では、検索結果の各文書について、その文書の構造化文書パスと、当該文書の要約情報も表示している。要約情報としては、図49に示すように、例えば、同じ画面上の領域Y2で表示されている絞り込み条件のうち、優先順位の高い条件に対応するXML文書の断片であってもよい。
【0245】
すなわち、「BOOK/CATEGORY/SUBCATEGORY」が最も優先順位の高い絞り込み条件であるので、処理対象の各文書中の、この構成要素の周辺データが要約情報として表示されている。このように、ユーザの焦点に合わせて、ユーザが絞り込み条件を選択する手掛かりとなるような情報を各文書に対応付けて表示することもできる。
【0246】
以上説明したように、上記実施形態に係る絞り込み検索によれば、少なくとも1つのキーワードを初期条件として入力されたら、XMLデータベースに格納されている複数の構造化文書の中から、当該キーワードを構成要素の要素値に含む構造化文書を検索し、この検索された複数の構造化文書を処理対象の文書として、当該処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、当該処理対象の文書間の違いを抽出し、少なくともこの違いを絞り込み条件の候補として表示し、表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から当該選択された絞り込み条件を満たす構造化文書を検索し、その結果を今回の処理対象の文書として取得する。
【0247】
上記手法によれば、予めユーザ側で文書構造や語彙に関する情報を知らなくとも効果的に構造的な条件や語彙的な条件を優先順位付けして提示することで、必要な構造化文書集合を容易に取り出すことができる。
【0248】
また、上記実施形態に係る検索支援装置201は、XMLデータベースに格納されている複数の構造化文書の中から、指定された検索条件を満足する構造化文書を検索する構造化文書管理システム100を用いて、所望の構造化文書を検索するための支援を行うものであって、少なくとも1つのキーワードを初期条件として入力されたら、構造化文書管理システム100が上記キーワードを構成要素の要素値に含む複数の構造化文書を検索するための検索要求文(以下、クエリ)を作成して、構造化文書管理システム100に入力し、このクエリに基づき構造化文書管理システム100で検索された複数の構造化文書を処理対象の文書として取得すると、当該処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、絞り込み条件の候補として、少なくとも当該処理対象の文書間の違いを抽出して表示し、この表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から、当該選択された絞り込み条件を満たす構造化文書を検索した結果を、今回の処理対象の文書として取得する。
【0249】
上記検索支援装置201によれば、予めユーザ側で文書構造や語彙に関する情報を知らなくとも効果的に構造的な条件や語彙的な条件を優先順位付けして提示することで、必要な構造化文書集合を構造化文書管理システム100から容易に取り出すことができる。
【0250】
すなわち、上記実施形態によれば、異なる文書構造の複数の構造化文書を記憶するデータベースであって、各構造化文書の構成要素で構成された階層化された論理構造を有するデータベースから、ユーザは、上記論理構造や各構造化文書の文書構造、どの構成要素にどのような語彙が包含されているかなどを意識せず、単なるキーワードを指定するだで、効率よく所望の構造化文書を検索することができる。特に、呈示された絞り込み条件の中から所望のものを選択するという操作だけで、検索結果として得られた大量の文書の中から、容易に絞り込みが行える。
【0251】
上記実施形態では、処理対象の文書から絞り込み条件を抽出する際には、各処理対象の文書を、検索結果が得られる度に、処理対象の文書の文書構造を1段ずつ掘り下げて(展開して)構成要素や語彙を抽出し、構造テーブルを作成する(展開する)。掘り下げる際には、掘り下げる基点としての展開元は、その都度選択する。例えば、構造テーブルに条件として挙げられた構成要素を順番に選択したり、絞り込み条件として選択された構成要素を優先的に選択してもよい。1段掘り下げたところで処理対象の文書間の違いが見つからなければ、さらに1段掘り下げて構成要素や語彙を抽出し構造テーブルを作成する(展開する)。
【0252】
なお、上記実施形態では、絞り込み受験が選択されるたびに、検索要求発行部212がクエリを生成し、構造化文書管理システム100へ検索を依頼するようになっているが、この場合に限らず、初期条件に基づく検索結果が得られたら(構造化文書管理システムから送られてきたら)、検索支援装置201自身が、この検索結果の文書の中から、選択された絞り込み条件を満足する文書を選択(検索)するようにしてもよい。
【0253】
本発明の実施の形態に記載した絞り込み検索手法(図34〜図36参照)は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピーディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体に格納して頒布することもできる。
【0254】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題(の少なくとも1つ)が解決でき、発明の効果の欄で述べられている効果(のなくとも1つ)が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0255】
【発明の効果】
以上説明したように、本発明によれば、構造化文書の文書構造を意識することなく、検索結果を絞り込みながら所望の構造化文書を迅速に効率よく検索することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る構造化文書管理システムの構成例を示した図。
【図2】図1に示した構造化文書管理システムの一利用形態を示したもので、WWWのバックエンドで、構造化文書管理システムが動作している場合を示した図。
【図3】XMLで記述された構造化文書の一例を示した図。
【図4】図3の構造化文書の文書構造を模式的に示した図。
【図5】追加コマンドの機能を説明するための図で、構造化文書データベースの初期状態に追加コマンドを実行した場合について示している。
【図6】図5(b)に示した状態の構造化文書データベースに対し、取得コマンドを実行した場合の処理結果を示した図。
【図7】図5(b)に示した状態の構造化文書データベースに対し、追加コマンドを実行して1つの「特許」情報の文書オブジェクトツリーを追加した場合を示している。
【図8】図5(b)に示した状態の構造化文書データベースに対し、追加コマンドを実行して3つの「特許」情報の文書オブジェクトツリーを追加した場合を示している。
【図9】要素名生起インデックスの格納例を示した図。
【図10】データ生起インデックスの格納例を示した図。
【図11】図8に示した状態の構造化文書データベースに対して、3つの「特許」情報を取り出すための取得コマンドを実行した場合の実行結果を示した図。
【図12】XML文書の文書構造を定義するスキーマの一例を示した図。
【図13】図8に示した状態の構造化文書データベースに、スキーマ格納コマンドを実行して、図12に示したスキーマを追加格納(設定)した場合を示した図。
【図14】スキーマが設定されて、スキーマが存在している旨の属性値のセットされた文書オブジェクトツリーを示した図。
【図15】各オブジェクトファイルに、スキーマが存在している旨の属性値が格納されている様子を概念的に示した図。
【図16】必要に応じて検索で使用される概念階層を構造化文書で表現した例を示した図。
【図17】必要に応じて検索で使用される概念階層を構造化文書で表現した例を示した図。
【図18】図8に示した状態の構造化文書データベースに対し、追加コマンドを実行して、図16,図17に示した「概念」情報の文書オブジェクトツリーを追加した場合を示した図。
【図19】図8に示した状態の構造化文書データベースに対し、追加コマンドを実行して、図16,図17に示した「概念」情報の文書オブジェクトツリーを追加した場合を示した図。
【図20】クエリ(XML文書)の一例を示した図。
【図21】単純検索のクエリ(XML文書)の一例を示した図。
【図22】図21の単純検索のクエリを用いた検索結果(XML文書)を示した図。
【図23】概念検索のクエリ(XML文書)の一例を示した図。
【図24】図1の構造化文書管理システムの文書検索処理動作について説明するためのフローチャート。
【図25】ユーザインタフェースとしての画面の表示例を示した図。
【図26】文書検索を行うためのユーザインタフェースとしての画面の表示例を示した図。
【図27】図26に示した画面上から入力された情報に基づき作成されるクエリを示した図。
【図28】図1の構造化文書管理システムの文書取得処理動作について説明するためのフローチャート。
【図29】文書取得コマンドを実行した結果得られた構造化文書の表示例を示した図。
【図30】文書検索を行うためのユーザインタフェースとしての画面の表示例であって、スキーマの検索処理動作を説明するための図。
【図31】スキーマ検索のクエリの一例を示した図。
【図32】スキーマの取得するためのユーザインタフェースとしての画面の表示例を示したもので、取得されたスキーマの表示例を示している。
【図33】本発明の実施形態に係る検索支援装置の構成例を示した図。
【図34】図33の検索支援装置の処理動作を説明するためのフローチャート。
【図35】図33の検索支援装置の処理動作を説明するためのフローチャート。
【図36】絞り込み条件抽出部の処理動作を説明するためのフローチャート。
【図37】初期条件入力画面の表示例を示した図。
【図38】検索要求発行部で生成されたクエリの一例を示す図。
【図39】図38に示したクエリに基づき構造化文書管理システムで検索した結果得られたXML文書の集合のうち、選択された4件の文書の具体例を示した図。
【図40】絞り込み条件抽出の際に作成される構造テーブルの具体例を示した図。
【図41】絞り込み条件の表示例を示した図。
【図42】絞り込み検索の結果得られたXML文書について作成された構造テーブルの具体例を示した図。
【図43】絞り込み条件の表示例を示した図。
【図44】絞り込み検索の結果得られたXML文書について作成された構造テーブルの具体例を示した図。
【図45】絞り込み条件の表示例を示した図。
【図46】ユーザにより選択された絞り込み条件を用いて作成されたクエリの具体例を示した図。
【図47】図46に示したクエリに基づき検索した結果得られたXML文書の具体例を示した図。
【図48】絞り込み条件の表示例を示した図。
【図49】絞り込み条件とともに表示される検索結果一覧の他の表示例を示した図。
【符号の説明】
100…構造化文書管理システム
201…検索支援装置
211…初期条件入力部
212…検索要求発行部
213…検索結果取得部
214…検索結果サンプリング部
215…絞り込み条件抽出部
216…選択部
217…検索結果表示部
【発明の属する技術分野】
本発明は、異なる文書構造の複数の構造化文書を記憶する、階層化された論理構造を持つ構造化文書データベースで管理する構造化文書管理システムに関し、特に、当該データベースから所望の構造化文書を検索するための絞り込み検索に関する。
【0002】
【従来の技術】
XML(Extesible Markup Language)データベースなど構造化文書データベースでは、検索言語によって記述されたユーザ検索要求により所望の構造化文書を検索する手段が提供されてる。検索言語には、SQL(Structured Query Language)に似た構文を持ち、検索位置、検索条件、情報抽出部分などを記述したものもある。この手段により多種多様な構造化文書を検索することができる。しかし、このような検索言語をベースとしたクエリデータを作成するには、ユーザ側にあらかじめ構造化文書データベース中に存在する構造化文書の文書構造(DTD)や語彙発生状況などに関する情報が必要であった。
【0003】
一方、ユーザ側の構造化文書の文書構造(DTD)や語彙発生状況などに関する情報欠如を補うために、いくつかの支援方法が提案されてきた。
【0004】
検索対象を初期検索の段階から絞り込むために、DTDの一覧を提示し、そこから文書構造のスケルトンを表示させて、ユーザに検索対象の構造に関する条件を設定させる。検索された結果は、出力パターン指定された構造化文書形式に変換して出力する(例えば特許文献1参照)。
【0005】
一方、初期検索では十分に絞り込めないという状況を考慮して、二次検索での絞り込みを支援する方法もある。これはRDBなどに格納されたデータベースを検索対象にする。初期検索では、ユーザに語彙などの粗い検索条件を設定させる。大量の候補が出た場合に、データベースとは別の階層構造を持った背景知識を用いて、効果的な順番で質問を行い、絞り込みを支援するものである(例えば特許文献2参照)。
【0006】
また、テキストで表現されたフルテキストデータベースを検索に対象としたものもある。これは初期検索では、ユーザに語彙などの粗い検索条件を設定させる。大量の候補が出た場合に、データベースとは別の階層構造を持った背景知識を用いて、語彙を背景知識を用いて効果的に展開し、設定された件数になるように自動的に絞り込みを行うものである(例えば特許文献3参照)。
【0007】
【特許文献1】特開2000−200286号公報(第8頁、第4図)
【0008】
【特許文献2】特開平10−187739(第6頁、第1図)
【0009】
【特許文献3】特開7−225772 (第10頁、第1図)
【0010】
【発明が解決しようとする課題】
ユーザが構造化文書を検索する場合には、あらかじめ文書構造(DTD)や語彙発生状況などに関する情報が必要であった。
【0011】
そのためには、いくつかの検索支援方法が提案されてきたが、以下のような問題点があった。
【0012】
(1)DTDがデータベース上に設定されていないと構造条件の候補を提示できず、検索支援できない。
【0013】
(2)2次検索を行って絞り込みをする場合、特別な背景知識が無いと検索支援できない。
【0014】
構造化文書の場合、検索条件として、構造に関する条件、語彙に関する条件、を指定する必要があるが、従来は、これらを適切に組合せた検索、および検索支援ができていなかった。
【0015】
そこで、本発明は上記問題点に鑑み、構造化文書の文書構造を意識することなく、検索結果を絞り込みながら所望の構造化文書を迅速に効率よく検索することができる、構造化文書検索方法、およびそれを用いた検索支援装置を提供することを目的とする。
【0016】
【課題を解決するための手段】
(1)本発明は、異なる文書構造の複数の構造化文書を記憶するデータベース(特に、前記複数の構造化文書のそれぞれの構成要素で構成された階層化された論理構造を有するデータベース)から、所望の構造化文書を検索するためのものであって、少なくとも1つのキーワードを初期条件として入力されたら、前記データベースから、前記キーワードを構成要素の要素名と要素値とのうちの少なくとも一方に含む複数の構造化文書を検索し、この検索された複数の構造化文書を処理対象の文書として、当該処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、絞り込み条件の候補として、前記処理対象の文書から、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出し、この抽出された候補を表示し、表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から当該選択された絞り込み条件を満たす構造化文書を検索した結果を前記処理対象の文書として取得することを特徴とする。
【0017】
好ましくは、前記処理対象の文書間の違いとして、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出し、この違いを絞り込み条件の候補として表示する。
【0018】
本発明によれば、予めユーザ側で文書構造や語彙に関する情報を知らなくとも効果的に構造的な条件や語彙的な条件を優先順位付けして提示することで、必要な構造化文書集合を容易に検索することができる。
【0019】
(2)本発明は、異なる文書構造の複数の構造化文書を記憶するデータベース(特に、前記複数の構造化文書のそれぞれの構成要素で構成された階層化された論理構造を有するデータベース)から、指定された検索条件を満足する構造化文書を検索する検索装置を用いて、所望の構造化文書を検索するための支援を行う検索支援装置であって、少なくとも1つのキーワードを初期条件として入力されたら、前記検索装置が、前記キーワードを構成要素の要素名と要素値とのうちの少なくとも一方に含む構造化文書を検索するための検索要求文を作成する作成手段と、前記検索要求文に基づき前記検索装置で検索された構造化文書を処理対象の文書として取得する取得手段と、前記処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、絞り込み条件の候補として、前記処理対象の文書から、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出する手段と、この抽出手段で抽出された絞り込み条件の候補を表示する表示手段と、この表示手段で表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から当該選択された絞り込み条件を満たす構造化文書を検索した結果を前記処理対象の文書として取得する手段とを具備したことを特徴とする。
【0020】
好ましくは、前記抽出手段は、前記処理対象の文書間の違いとして、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出し、前記表示手段は、前記前記抽出手段で抽出された違いを絞り込み条件の候補として表示する。
【0021】
本発明によれば、予めユーザ側で文書構造や語彙に関する情報を知らなくとも効果的に構造的な条件や語彙的な条件を優先順位付けして提示することで、必要な構造化文書集合を検索装置から容易に取り出すことができる。
【0022】
【発明の実施の形態】
まず、本発明の実施形態について説明する前に、構造化文書管理システムの概要について説明する。
【0023】
(構造化文書管理システムの説明)
構造化文書として、XMLやSGMLなどで記述した文書が挙げられる。SGML(Standard Generalized Markup Language)とは、ISO(国際標準化機構)で定められた規格である。XML(eXtensible Markup Language)とは、W3C(World Wide Web Consortium)にて定められた規格である。これらは、文書を構造化することを可能とする構造化文書の規格である。
【0024】
以下、構造化文書として、XMLにて記述された文書を例に説明を進める。構造化文書の文書構造を定義したデータ(文書構造定義データ)をスキーマと呼ぶ。XMLではスキーマを定義するためにXML−SchemaやXDR(XMLData Reduced)などのスキーマ言語が提案されている。ここでは、例えば、XDRでスキーマを記述する場合を例にとり説明する。
【0025】
スキーマも、構造化文書管理システムの管理対象の構造化文書であり、ここでは、スキーマ文書と呼ぶことがある。スキーマ文書以外の構造化文書であって、特許明細書やメール、週報、広告などの種々雑多な内容を有する文書を、ここでは、コンテンツ文書と呼ぶこともある。
【0026】
構造化文書管理システムでは、上記スキーマ文書、上記コンテンツ文書、さらに、後述するようなユーザからの検索要求を記述したクエリ、すなわち、クエリ文書も管理対象とし、これらを総称して「文書」と呼ぶ。
【0027】
以下、特にことわりがない場合、「文書」と呼ぶときは、コンテンツ文書、スキーマ文書、クエリ文書を全て指すものとする。
【0028】
まず、実施形態の説明の前に、XMLについて簡単に説明する。
【0029】
図3は、XMLで記述された構造化文書の一例として、「特許」情報の例を示したものである。XMLやSGMLは、文書の構造の表現にタグが用いられる。タグには、開始タグと終了タグがある。文書構造の各構成要素は、開始タグと終了タグで囲まれている。開始タグとは構成要素の要素名を「>」で閉じたものであり、終了タグとは要素名を記号「</」と「>」で閉じたものである。タグに続く構成要素の内容が、テキスト(文字列)または子供の構成要素の繰り返しである。また開始タグには「<要素名 属性=“属性値”>」などのように属性情報を設定することができる。「<特許DB></特許DB>」のようにテキストを含まない構成要素は、簡易記法として「<特許DB/>」のように表わすこともできる。
【0030】
図3に示した文書は、「特許」タグから始まる要素をルートとし、その子要素として「タイトル」、「出願日」、「出願者」、「要約」タグから始まる要素が存在する。また、例えば、「タイトル」タグから始まる要素には「XMLデータベース」といった、1つのテキスト(文字列)が要素値として存在する。
【0031】
XMLなどの構造化文書は、任意の構成要素を繰り返し含んでいたり、さらには文書構造があらかじめ決まっていないのが普通である。
【0032】
図3に示したような構造化文書を論理的に表現するために、図4に示すようなツリー表現が用いられる。ツリーは、ノード(番号が付され、円形で示されたもの)とアーク(ノードを表す円形間をつなぐデータ付き線)と四角形で囲まれたテキストから構成されている。
【0033】
1つのノードは1つの構成要素、すなわち、1つの文書オブジェクトに対応する。ノードからタグ名や属性名に相当するラベルが付与された複数のアークが出てきている。そのアークの先は、ノード値または要素値としての文字列(テキスト)である。ノードの中に記載されている英数字(例えば「#0」、「#49」)などは、各文書オブジェクトを識別するためのオブジェクトIDである。
【0034】
図4に示したツリー構造を図3に示した構造化文書の文書オブジェクトツリーと呼ぶ。
【0035】
図1は、本実施形態に係る構造化文書管理システムの構成例を示したものである。図1において、構造化文書管理システムは、大きく分けて、要求制御部1、アクセス要求処理部2、検索要求処理部3、データアクセス部4、文書記憶部5、インデックス記憶部6から構成されている。文書記憶部5、インデックス記憶部6は例えば、外部記憶装置で構成される。
【0036】
図1のシステム構成は、ソフトウエアを用いて実現可能である。
【0037】
要求制御部1は、要求受付部11と結果処理部12から構成されている。要求受付部11は、文書の格納、文書の取得、文書の検索などのユーザからの要求を受け付けて、アクセス要求処理部2を呼び出す。結果処理部12は、アクセス要求処理部2が処理した結果を要求元のユーザに返す処理を行う。
【0038】
アクセス要求処理部2は、文書の格納、文書の取得、文書の削除などのユーザからの各種要求に対応した複数の処理部から構成されている。つまり、文書格納部21、文書取得部22、文書削除部23から構成されている。
【0039】
文書格納部21は、文書記憶部5中の指定された論理的なエリアに文書を格納する処理を行う。
【0040】
文書取得部22は、文書記憶部5中の論理的なエリアが指定されたときに、その指定エリアに存在する文書を取得する処理を行う。
【0041】
文書削除部23は、文書記憶部5中の指定された論理的なエリアに存在する文書を削除する処理を行う。
【0042】
文書記憶部5は、構造化文書データベースであり、例えば、図8に示すように、文書をUNIXのディレクトリ構造のように階層的にツリー構造状に格納している。
【0043】
図8に示すように、構造化文書データベースは、図4に示したような1つの構造化文書のツリー構造と同様に表現できる。すなわち、任意のノード以下の部分的な階層木(部分ツリー)は、構造化文書データベースから切り出された構造化文書であり、ここでは、これを文書オブジェクトツリーと呼ぶ。各ノードにはオブジェクトIDが割り当てられている。オブジェクトIDは、構造化文書データベース内ではユニークな数値である。
【0044】
階層木のルートとなるノードには、それがルートノードであることを特定するためのオブジェクトID「#0」が割り当てられるものとする。
【0045】
ルートノード、すなわち、「#0」のノードからは「root」タグを先頭に持つオブジェクトID「#1」のノードへリンクが張られている。「#1」のノードからは、「特許DB」タグを先頭にもつオブジェクトID「#2」のノードへのリンクが張られている。「#2」ノードからは、「特許」タグを先頭に持つ、オブジェクトID「#42」のノード、「#52」のノード、「#62」のノードへのリンクがそれぞれ張られている。
【0046】
図3に示した「特許」情報は、図8の「#42」ノード以下の部分ツリーに対応している。このノードからは「タイトル」タグ、「出願者」タグ、「要約」タグなどを先頭にもつノードへリンクが張られ、末端のノードからは、「XMLデータベース」、「T社」、「XMLを統一的に管理するデータベースを提供する…」などの文字列(要素値)へのリンクが張られている。
【0047】
図8において、オブジェクトID「#52」のノード以下の部分ツリー、オブジェクトID「#62」のノード以下の部分ノードも1つの「特許」情報に対応する文書オブジェクトツリーである。
【0048】
ところで、例えば、「#43」ノードにリンクされた「XMLデータベース」という要素値は、「#43」ノードと「#value」という特殊なタグ名で接続されている。このタグ名は、「#」で始まるためXMLの規格においては標準的なタグ名として利用することはできない。
【0049】
このような構造化文書データベースの特定ノードを指定するために構造化文書パスを用いる。構造化文書パスは「uix://root」から始まる文字列である。uix(Universal Identifier for XML)は構造化文書パスであることを示す文字列である。
【0050】
例えば、構造化文書パスとして「uix://root/特許DB」と表すと、この構造化文書パスの示す文書記憶部5中の論理的なエリアは、図8において、「#1」ノードから「特許DB」が付与されたアークが指し示すノード、つまり「#2」ノードである。
【0051】
同様にして、構造化文書パス「uix://root/特許DB/特許」は、図8における「#42」ノードを指し示し、構造化文書パス「uix://root/特許DB/出願日/年」は、図8における「#45」ノードを指し示す。
【0052】
例えば、図8において、「#2」ノード以下に、すなわち、「特許DB」という構成要素に、複数の「特許」情報を格納する場合には、各「特許」情報を識別するために、要素名(例えば、この場合「特許」)にインデックスを追加してもよい。
【0053】
「特許DB」の最初の「特許」情報であれば、「uix://root/特許DB/特許[0]」となるが、これは「uix://root/特許DB/特許」と同じとみなす。「特許DB」の2番目の「特許」情報であれば、「uix://root/特許DB/特許[1]」、「特許DB」の5番目の「特許」情報であれば、「uix://root/特許DB/特許[4]」となる。
【0054】
インデックス記憶部6には,検索時に用いる、要素名称生起インデックスとデータ生起インデックスが記憶されている。
【0055】
要素名生起インデックスとは構造化文書データベースに格納されている要素名と、その要素名の構成要素が先頭にある構造化文書(文書オブジェクトツリー)の位置とを関連付けたインデックスファイルである。例えば、図8の構造化文書データベースでは、(「特許」情報に対応する)「特許」という要素名が「#42」ノード以下の構造化文書、「#52」ノード以下の構造化文書、「#62」ノード以下の構造化文書に存在する場合、要素名生起インデックスには、図9に示すように、「#42」ノード、「#52」ノード、「#62」ノードの親ノード、すなわち、「#2」ノードが、要素名「特許」にリンクされて格納される。
【0056】
このように、親ノードでインデックス化すると、インデックスファイルを圧縮することができる。すなわち、親ノードでインデックス化すれば、子ノードが増大しようとも、親ノードで代用しているので、要素名にリンクすべきノードは増大しない。
【0057】
データ生起インデックスとは、構造化文書データベースに格納されている文字列データと、その文字列データが存在する構造化文書(文書オブジェクトツリー)の位置とを関連付けたインデックスファイルである。例えば、図8の構造化文書データベースでは、「XML」という文字列が「#43」ノード以下の構造化文書、「#49」ノード以下の構造化文書に存在する。この場合、データ生起インデックスには、図10に示すように、「#43」ノード、「#49」ノードが、「XML」という文字列にリンクされて格納される。
【0058】
文書記憶部5中の指定された論理的なエリアとは、構造化文書パスを用いてユーザにより指定された文書の格納場所である。構造化文書パスは、ユーザにとって認識可能な表現である。
【0059】
図1の説明に戻る。
【0060】
データアクセス部4は、文書記憶部5をアクセスするための各種処理を行うものである。データアクセス部4は、文書オブジェクトツリー格納部41、文書オブジェクトツリー削除部42、文書オブジェクトツリー取得部43、文書文字列取得部44、文書パーサ部46、合成文書作成部47、インデックス更新部48から構成される。
【0061】
文書オブジェクトツリー格納部41は、文書記憶部5中の指定された物理的なエリアに文書オブジェクトツリーを格納するための処理を行う。
【0062】
文書オブジェクトツリー削除部42は、文書記憶部5中の指定された物理的なエリアに存在する文書オブジェクトツリーを削除するための処理を行う。
【0063】
文書オブジェクトツリー取得部43は、文書記憶部5中の(構造化文書パスなどにより)指定された物理的なエリアに存在する文書オブジェクトツリーを取得するための処理を行う。
【0064】
文書文字列取得部44は、文書オブジェクトツリーを構造化文書(XML文書)に変換するための処理を行う。
【0065】
文書パーサ部46は、ユーザにより入力された構造化文書を読み込んで、その文書構造の検査を行う。さらに文書構造の定義データであるスキーマが存在すれば、入力された構造化文書の文書構造がスキーマにしたがっているかどうかの検証を行う。出力結果は文書オブジェクトツリーとなる。文書パーサは、通常、lex(lexical analyzer generator)といったレキシカルアナライザ(字句解析を行い,トークンに分解する)とyacc(yetanother compiler compiler)といったパーサジェネレータを組み合わせて構築することができる。
【0066】
合成文書作成部47は、文書の格納や文書の削除などをする際に、スキーマに合致しているかどうか検査しなければならないが、この検査時に必要となるデータを作成する。
【0067】
インデックス更新部48は、文書の格納や文書の削除などにより、構造化文書データベースの格納内容が更新されるたびに、図9、図10に示した要素名称生起インデックスとデータ生起インデックスを更新する。
【0068】
文書記憶部5中の物理的なエリアとは、ファイルオフセットやオブジェクトIDなどの構造化文書データベース内ではユニークな文書データの存在場所を指し示す内部データである。ユーザにとっては認識不可能なデータである。
【0069】
検索要求処理部3は、データアクセス部4に備わっている各処理機能部を用いて、文書記憶部5中に格納された文書を検索する処理を行う。要求制御部1の要求受付部11でユーザからの文書検索の要求が受け付けられると、検索要求処理部3には、要求受付部11からクエリ言語で記述されたクエリ文書が入力する。そしてデータアクセス部4を通してインデックス記憶部6,文書記憶部5にアクセスし、検索要求に合致する文書の集合を取得して、その結果を結果処理部12を介して出力する。
【0070】
図2は、図1に示した構造化文書管理システムの一利用形態を示したもので、図2では、WWW(World Wide Web)のバックエンドで、図1に示した構成の構造化文書管理システム100が動作している場合を示している。
【0071】
複数(ここでは、例えば3つ)のクライアント端末(例えばパーソナルコンピュータ、携帯通信端末など)102のそれぞれでWWWブラウザ103が動作している。ユーザは、各クライアント端末からWWWサーバ101にアクセスすることにより、構造化文書管理システム100にアクセスすることができる。WWWブラウザ103とWWWサーバ101とは、HTTP(Hyper TextTransfer Protocol)で通信している。また、WWWサーバ101と構造化文書管理システム100とは、CGI(Common Gateway Interface)またはCOM(Component Object Model)などで通信している。
【0072】
文書の格納、文書の取得、文書の検索などのユーザからの要求は、WWWブラウザ103から送信されて、WWWサーバ101を通して構造化文書管理システム100にて受け付けられる。構造化文書管理システム100にて処理された結果は、WWWサーバ101を通して要求元のWWWブラウザ103へ返信される。
【0073】
以下、図1の構造化文書管理システムの(1)格納機能、(2)検索機能について詳細に説明する。
【0074】
(格納機能)
図1の構造化文書管理システムにおける格納系のコマンドには以下のものがある。
【0075】
insertXML(パス、N番目、XML):文書格納
appendXML(パス、XML) :文書格納
getXML(パス) :文書取得
removeXML(パス) :文書削除
setSchema(パス、スキーマ) :スキーマ格納
getSchema(パス) :スキーマ取得
「insertXML」は、( )内に指定した構造化文書パス以下のN番目に文書を挿入するコマンド(以下、簡単に挿入コマンドと呼ぶ)である。
【0076】
「appendXML」は、( )内に指定した構造化文書パス以下の最後に文書を挿入するコマンド(以下、簡単に追加コマンドと呼ぶ)である。
【0077】
「getXML」は、( )内に指定した構造化文書パス以下の文書を取り出すコマンド(以下、簡単に取得コマンドと呼ぶ)である。
【0078】
「removeXML」は、( )内に指定した構造化文書パス以下の文書(スキーマ文書以外の文書で、主に、コンテンツ文書)を削除するコマンド(以下、簡単に削除コマンドと呼ぶ)である。
【0079】
「setSchema」は、( )内に指定した構造化文書パスにスキーマを設定するコマンド(以下、簡単にスキーマ格納コマンドと呼ぶ)である。
【0080】
「getSchema」は、( )内に指定した構造化文書パスに設定されているスキーマを取り出すコマンド(以下、簡単にスキーマ取得コマンドと呼ぶ)である。
【0081】
上記コマンドのうち、挿入コマンド、追加コマンド、スキーマ格納コマンドについての処理はアクセス要求処理部2の文書格納部21で実行され、取得コマンド、スキーマ取得コマンドについての処理は文書取得部22で実行され、削除コマンドについての処理は文書削除部23で実行される。
【0082】
図5を参照して、構造化文書データベースの初期状態(図5(a)参照)において、追加コマンドを実行する場合について説明する。
【0083】
図5(a)に示すように、「#0」ノードと「#1」ノードが「root」アークで接続されている初期状態に対して、
「appendXML(“uix://root”,“<特許DB/>”)」を実行した結果、図5(b)に示すように、「#2」ノードと「特許DB」アークが作成される。
【0084】
図5(b)に示した状態の構造化文書データベースに対して、取得コマンドを実行する場合について説明する。
【0085】
例えば、「getXML(“uix://root”)」を実行すると、図5(b)の「root」アークが示す「#0」ノード以下の文書オブジェクトツリーが取り出され、それをXML文書に変換する。その結果、「<root><特許DB/></root>」なる文字列が取り出されて、図6に示すようなXML文書に変換される。取得コマンドの処理は、アクセス要求処理部2の文書取得部22にて実行される。
【0086】
次に、図5(b)に示した状態の構造化文書データベースに対して、図3に示すようなコンテンツ文書(XML文書)としての「特許」情報を格納するための追加コマンドを実行する場合について説明する。すなわち、この場合、「appendXML(“uix://root/特許DB”,“<特許>…</特許>”)」を実行する。このコマンド中「“<特許>…</特許>”」が、図3に示した「特許」情報のXML文書に対応する。
【0087】
上記追加コマンドの処理が実行されると、図7に示すように、「#2」ノード以下に「#42」ノードをトップとする文書オブジェクトツリー(図4に対応)が追加される。
【0088】
図5(b)に示した状態の構造化文書データベースに対して、次に示すような追加コマンドを3回繰り返して実行したとする。
【0089】
「appendXML(“uix://root/特許DB”,“<特許>…</特許>”)」
上記コマンド中、「<特許>…</特許>」は、図3に示したXML文書と同じ文書構造のコンテンツ文書に対応する。
【0090】
すると、図8に示すように、「#2」ノード以下に「#42」ノード、「#52」ノード、「#62」ノードをトップとする文書オブジェクトツリーが追加される。
【0091】
次に、図8に示した状態の構造化文書データベースに対して、3つの「特許」情報を取り出すための取得コマンドを実行した場合について説明する。この場合、「getXML(“uix://root/特許DB”)」を実行する。すると、「特許DB」アークが示す「#2」ノード以下の文書オブジェクトツリーが取り出される。その結果、図11に示すように、「<特許DB><特許>…</特許><特許>…</特許><特許>…</特許></特許DB>」なるXML文書が取得できる。
【0092】
構造化文書データベースでは、上記の「特許」情報などのコンテンツ文書(XML文書)の文書構造を定義したデータ、すなわち、スキーマも管理対象とする。
【0093】
図12は、XML文書の文書構造を定義するスキーマの一例を示したものである。ここでは、XMLの文書構造定義言語の一つであるXDR(XML−Data Reduced)を取り上げる。もちろん、XML−Schemaなど他の文書構造定義言語を用いてもかまわない。
【0094】
図12に示したスキーマは、図3に示した「特許」情報の文書構造をXDRで定義したものである。図12からも容易に分かるとおり、スキーマもXML形式の構造化文書である。「Schema」タグから始まる構成要素から始まり、その子要素として、「ElementType」タグから始まる要素集合が存在する。
【0095】
図8に示した状態の構造化文書データベースに対して、図12に示したスキーマ文書を格納するためのスキーマ格納コマンドを実行する場合について説明する。この場合、「setSchema(“uix://root/特許DB”,“<Schema>…</Schema>”)」を実行する。このコマンド中、「“<Schema>…</Schema>”」」が図12に示したスキーマ文書に対応する。
【0096】
上記コマンドの実行により、図13に示すように、「#2」ノード以下に「#schema」アークが追加され、その先には、「#3」ノードをトップノードとする文書オブジェクトツリーが追加される。スキーマ自身がXML文書表現になっているため、前述した「特許」情報のようなコンテンツ文書格納のケースと同様に、図13に示したように、ツリー展開される。
【0097】
図13において、「@name」のように、「@」で始まるアークは属性に対応する。タグ名「#schema」も「#」、「@」で始まるためXML規格においては標準的なタグ名として利用することはできない。
【0098】
「#2」ノード以下に図12に示したスキーマ文書が格納されたことにより、以後、「#2」ノード以下に格納される文書の文書構造は、図12に示したスキーマ文書により定義された文書構造に適合することを要求してもよい。すなわち、この場合、「#2」ノード以下に図12に示したスキーマが設定されることになる。
【0099】
「#2」ノード以下に図12に示したスキーマが設定されると、例えば、図14に示すように、「#2」ノード以下の文書オブジェクトツリーの各ノード(のファイル)には、スキーマが存在する旨の属性値がセットされる。
【0100】
「#2」ノード以下に図12に示したスキーマが設定された後に、このスキーマで定義された文書構造に一致する図3に示したような「特許」情報の文書を、図14に示したように、文書オブジェクトツリーとして構造化文書データベースに格納したとき、この文書の文書構造には図12に示したスキーマが存在する旨の属性値が、当該文書オブジェクトツリーを構成する各文書オブジェクトにセットされる。例えば、当該文書オブジェクトツリーを構成する各文書オブジェクトのファイルに対して、スキーマが存在している旨の属性値(例えば、「スキーマ適合有無」)に「1」がセットされる。図14では、スキーマに適合している各文書オブジェクト(ノード)は2重丸で示している。2重丸で示した各文書オブジェクトには、その文書オブジェクトに対応した文書構造定義が存在することになる。
【0101】
図15は、各文書オブジェクトのファイルの内容を概念的に示したもので、例えば、オブジェクトIDが「#42」の文書オブジェクトのファイルには、その文書オブジェクトにリンクされている他の文書オブジェクトに関する情報(例えば、アークや、リンク先の文書オブジェクトへのポインタ値など)とともに、上記属性値が記述されている。なお、当該文書オブジェクトに適用するスキーマが存在しないときは、「スキーマ適合有無」の値は「0」となる。
【0102】
図16、図17は、図1の構造化文書管理システムで、必要に応じて検索条件として用いるキーワードなどとして使用される語をその意味内容から階層的に分類した結果である概念階層を構造化文書で表現した例を示す。図16、図17に示す「概念」情報はXMLで記述したコンテンツ文書である。
【0103】
図16に示した「概念」情報の例は、いわゆる特許調査における特許文書の内容を分類するための1つの分類軸として用いる「情報モデル」を概念階層で表現している。「概念」タグで囲まれた「概念」情報は、入れ子構造を持った文書構造をもっている。つまり、図16の例では、概念「情報モデル」の子供概念として、概念「ドキュメント」、概念「リレーション」、概念「オブジェクト」が存在している。また、概念「ドキュメント」の子供概念として、概念「構造化ドキュメント」、概念「非構造化ドキュメント」が存在する。さらに、概念「構造化ドキュメント」の子供概念として、概念「XML」、概念「SGML」が存在している。
【0104】
図17に示す「概念」情報の記述例は、図16とは異なる分類軸「情報操作」を概念階層で表現している。図17の例では、概念「情報操作」の子供概念として、概念「検索」、概念「格納」、概念「加工」、概念「流通」が存在している。
【0105】
図16,図17に示したような「概念」情報も、前述の「特許」情報と同様にして、構造化文書データベース内に格納することができる。すなわち、例えば、まず、図8に示した状態の構造化文書データベースに対して、「appendXML(“uix://root”,“<概念DB/>”)」を実行して、図18に示すように、「#201」ノードと「概念DB」アークが作成される。この状態において、図16に示した「概念」情報を格納する場合には、「appendXML(“uix://root/概念DB”,“<概念名前>…</概念>”)」を実行する。このコマンド中「“<概念名前>…</概念>”」が、図16に示した「概念」情報に対応する。
【0106】
上記追加コマンドの処理が実行されると、図19に示すように、「#201」ノード以下に「#202」ノードをトップとする文書オブジェクトツリーが追加される。
【0107】
以上説明したように、図1の構造化文書管理システムでは、構造化文書データベース上に登録される文書構造が異なる膨大な数のXML文書群(コンテンツ文書、スキーマ文書、クエリ文書など)を、図18,図19に示すように、「root」タグを先頭に持つツリー状の1つの巨大なXML文書として取り扱う。そのため、部分的なXML文書をアクセスするには巨大なXML文書に対するパスという、文書構造に依存しない統一的なアクセス手段を用いることにより、幅広くXML文書を検索したり加工したりすることが可能になる。
【0108】
また、構造化文書データベース上の一部にスキーマを設定することで、格納しようとする文書の文書構造がそのスキーマにより定義されている文書構造に一致するか否かの妥当性のチェックを自動的に行うようにしてもよい。
【0109】
(検索機能)
図1の構造化文書管理システムにおける検索系のコマンドには以下のものがある。
【0110】
query(ql)
「query」は、パラメータとして( )内のクエリqlを実行し、その結果のXML文書を取得するコマンド(以下、検索コマンドと呼ぶ)である。
【0111】
クエリは、例えば、図20に示すように、SQL(Structured Query Language)に似た形式の言語により、検索位置、検索条件、情報抽出部分などを記述した、文書構造をもつXML文書である。クエリ文書も構造化文書管理システムの管理対象である。
【0112】
「kf:from」タグから始まる要素には、検索位置の指定と文書要素の値に変数を対応付ける記述があり、「kf:where」タグのから始める要素には、変数に関する条件づけの記述があり、「kf:select」タグから始まる要素には、検索結果の出力形式が記述される。
【0113】
検索には、単純検索と概念検索とがある。単純検索とは、クエリ中に指定された検索条件を満たす情報を検索・抽出するものであり、概念検索とは、クエリ中に指定された概念情報を利用して、クエリ中に指定された検索条件を満たす情報を検索・抽出するものである。
【0114】
図21は、単純検索のクエリの例を示したものである。図21のクエリは、例えば、図14に示したような状態の構造化文書データベースに対し、「特許DB」アークが示すノード以下に格納されている「特許」情報の文書群において、「1999年でかつ、「PC」のような内容の「要約」という要素をもつ文書(「特許」情報)の「タイトル」を列挙せよ」という検索要求の記述例を示している。
【0115】
「kf:from」タグから始まる要素の記述により、変数「$t」、「$y」、「$s」に、それぞれ「特許」情報の「タイトル」、「年」、「要約」という文書要素の値が代入される。
【0116】
「kf:where」タグから始める要素の記述により、変数「$y」=「1999」という比較がなされる。また、コンポーネント「MyLike」は変数「$s」と「PC」を引数として、「PC」と類似する値の変数「$s」を検知するための関数である。
【0117】
「kf:from」タグから始まる要素の記述により、変数「$t」が出力値として利用される。
【0118】
なお、「kf:star」タグは構造の曖昧表現であり、例えば「<特許><kf:star><年>」は「タグ名が「特許」である要素の子孫の要素としていずれかに存在し、タグ名が「年」である要素」を意味する。
【0119】
図22に図21の単純検索のクエリを用いた検索結果を示す。この検索結果もXML文書である。
【0120】
図23は、概念検索のクエリの例を示したものである。図23のクエリは、例えば図18,図19に示すような状態の構造化文書データベースに対し、「特許DB」アークが示すノード以下に格納されている「特許」情報の文書群に対し、「概念DB」アークが示すノード以下に格納されている「概念」情報を利用して検索するための検索要求の記述例を示している。ここで、概念「周辺装置」の値をもつタグの子要素の値には、概念「SCSI」、「メモリ」、「HDD」などがあるものとする。また、図18には示していないが、各「特許」情報の構成要素には、「キーワード」タグから始める要素も存在するものとする。
【0121】
すなわち、図23のクエリは、「概念「周辺装置」以下の概念のいずれかを「キーワード」という構成要素の要素値としてもつ「特許」情報の「タイトル」を列挙せよ」という検索要求の記述例を示している。
【0122】
「kf:from」タグから始まる要素の記述により、変数「$t」、変数「$k」に、それぞれ、「特許」情報の「タイトル」、「キーワード」という要素の値が代入される。また、変数「$x」は「概念」情報として「周辺装置」の値をもつタグの子要素の値(「SCSI」、「メモリ」、「HDD」など)が代入される。
【0123】
「kf:where」タグから始める要素の記述により、「$k」=「周辺装置」もしくは「$k」=「$x」という比較がなされる。
【0124】
次に、図1の構造化文書管理システムの文書検索処理動作について、図24に示すフローチャートを参照して説明する。
【0125】
クライアント端末の所定の表示装置には、構造化文書管理システム100(の例えば、要求制御部1)から提供された、例えば、図25に示すようなユーザインターフェイスとしての画面が表示されている。
【0126】
図25に示した画面上で、ユーザが「XML検索Win」をマウス等のポインティングデバイスなどを用いて選択すると、図26に示すような文書検索を行うためのユーザインタフェースとしての画面が表示される。
【0127】
図26の検索画面において、領域W1には、構造化文書データベースの現在のツリー構造の構成要素の要素名(タグ名)がユーザが理解可能なように簡略的に表示されている。なお、図26では、上位階層の要素名のみを表示しているが、末端の要素名まで表示可能である。
【0128】
領域W11は、検索対象の範囲(ツリー構造上の検索範囲)や、検索条件などを入力するための領域である。領域W12には、検索結果が表示される。
【0129】
例えば、「「uix://root」以下の「特許」を先頭タグに持つ文書の中から、「タイトル」タグをもつ構成要素の要素値に「文書」という文字列を含み、「1998」年以降に作成された文書を検索せよ」という検索要求の場合には、領域W1から「root」をマウス等で選択して検索対象の範囲として、構造化文書パスを入力する。そして、領域W11には、まず、トップノードとして、「特許」を入力する(この場合、領域W1から「特許」をマウス等で選択することにより入力してもよい)。また、検索条件としての、「「タイトル」という構成要素の要素値に「文書」という文字列を含む」「「年」という構成要素の要素値が「1998」以上である」という内容は、予め設けられたデータ入力領域に入力すればよい。
【0130】
その後、「検索」ボタンB21を選択することにより、例えば、図27に示すようなクエリが、当該クエリを構造化文書データベース上に格納するための追加コマンドとともに構造化文書管理システムへ送信される。なお、クエリの格納場所は、予め定められており、システム側が自動的に、この追加コマンドのパラメータを設定することとなる。例えば、構造化文書データベースが図18に示した状態のとき、当該クエリの格納場所を表すパラメータとしての構造化文書パスは、「uix://root/クエリDB」となる。また、追加コマンドのもう一方のパラメータは、当該クエリ文書である。
【0131】
要求受付部11は、上記クエリを受け付けると(ステップS100)、当該クエリを検索要求処理部3へ渡す。そして、当該クエリ文書を格納するための追加コマンドのパラメータを文書格納部21へ渡す。文書格納部21では、追加コマンドの処理を行って、当該クエリは、文書記憶部5に格納される(ステップS101)。
【0132】
一方、検索要求処理部3では、受け取ったクエリを基に、データアクセス部4を通してインデックス記憶部6,文書記憶部5にアクセスし、検索要求に合致する文書集合などを取得して、クエリの中で要求された情報を抽出して結果処理部12を介して出力する。
【0133】
例えば、上記クエリの場合、まず、「「タイトル」タグをもつ構成要素の要素値に「文書」という文字列を含む」という条件に合致するものを検索することが検索対象を絞り込む上で効率がよい。そこで、図10に示したようなデータ生起インデックスを用いて、「文書」という文字列にリンクされているノード(文書オブジェクト)のオブジェクトIDを得る。そして、そのそれぞれについて、文書オブジェクトツリーを上流側に1つ遡り、「タイトル」というタグ名にたどり着いたときは、更に上流に辿っていき、「特許」というタグ名にたどり着いたときは、そのノード以下の文書オブジェクトツリーOt11を抽出する。
【0134】
次に、この抽出された複数の文書オブジェクトツリーOt11の中から、さらに、「年」という構成要素の要素値が「1998」年以上の文書オブジェクトツリーOt12を抽出する。
【0135】
この文書オブジェクトツリーOt12が上記クエリの内容に適合する文書となる。さらに上記クエリの要求内容に従えば、各文書オブジェクトツリーOt12のトップノードへの構造化文書パスを求める(ステップS102)。
【0136】
なお、上記検索処理は、上記した方法に限るものではなく、インデックス情報を用いた様々な効率のよい検索方法が可能である。
【0137】
検索要求処理部3は、ステップS102で得られた結果を統合して、検索結果としてのXML文書を作成する(ステップS103)。
【0138】
例えば、検索結果のXML文書は、
<out>
<result>
uix://root/特許DB/特許[0]
</result>
<result>
uix://root/特許DB/特許[2]
</result>
</out>
となる。
【0139】
検索要求処理部3は、検索結果処理部12を介して、上記XML文書をスタイルシートとともに、要求元のクライアント端末に返す(ステップS104)。
【0140】
クライアント端末では、図11に示したXML文書を、スタイルシートを用いてHTMLデータに変換して、例えば、図26に示すように、領域W12に表示する。ここでは、例えば検索結果として得られた構造化文書の数が多いために、検索された構造化文書の構造化文書パスが検索結果として表示されている。この場合、例えば、図26の領域W12に表示された検索結果の構造化文書パスのうち、所望の1つがユーザにより選択されたとする。例えば、図26の領域W12に表示された構造化文書パスのうち、最初のものが選択されたとする。この場合、クライアント端末から構造化文書管理システムに対し、当該選択された構造化文書パスにより特定される構造化文書を取得するために文書取得要求として、取得コマンドを送信するようにしてもよい。
【0141】
取得コマンドが構造化文書管理システムの要求受付部11にて受け付けられたときの、図1の構造化文書管理システムの文書取得処理動作について、図28に示すフローチャートを参照して説明する。
【0142】
例えば、「getXML(“uix://root/特許DB/特許[0]”)」なる取得コマンドが構造化文書管理システムへ送信される。
【0143】
ここでは、例えば、構造化文書データベースが、図8に示した状態のときに、「getXML(“uix://root/特許DB/特許[0]”)」なる取得コマンドを受け付けた場合を例にとり説明する。
【0144】
要求受付部11は、上記取得コマンドを受け付けると、上記取得コマンド中のパラメータである構造化文書パス「uix://root/特許DB/特許[0]」を文書取得部22へ渡す(ステップS31)。
【0145】
文書取得部22は、文書オブジェクトツリー取得部43へ構造化文書パスを渡す。文書オブジェクトツリー取得部43は、構造化文書パスから文書記憶部5中の物理的なエリアを特定することにより、そのエリアに存在する構造化文書パスにて表されたノード(文書オブジェクトOx5)を取り出す(ステップS32)。構造化文書パスの指定が正しければ、文書オブジェクトOx5のオブジェクトIDを取得することができるので(ステップS33)、その場合は、ステップS35へ進む。
【0146】
例えば、上記取得コマンドの場合、「#42」ノードが文書オブジェクトOx5となるので、そのオブジェクトIDとして、「#42」を取得するとともに、この「#42」ノード以下の文書オブジェクトツリーOt5(「#42」ノード〜「#49」ノード)を取得する(ステップS35)。
【0147】
ステップS32において、指定された構造化文書パスからそれに対応する文書オブジェクトOx5が見つからなければ、エラーとなり(ステップS33)、文書取得部22,結果処理部12を介して、クライアント端末に「文書取得失敗」の旨のメッセージを返す(ステップS34)。
【0148】
ステップS35で取得した文書オブジェクトツリーOt5は、文書文字列取得部44でXML文書に変換される。例えば、上記取得コマンドの場合、取得したXML文書は、図3に示すような「特許」情報のXML文書となる。
【0149】
文書取得部22は、結果処理部12を介して、図3に示したようなXML文書を(例えば、XSL(eXtensible Style Language)といった所定のスタイルシートとともに)、クライアント端末へ返す(ステップS37)。
【0150】
クライアント端末では、図3に示したXML文書を、スタイルシートを用いてHTMLデータに変換して、例えば、図29に示すように、領域W13に表示する。
【0151】
XSLを利用すると、XML文書を様々な形に変換することが出来る。違う構文書造のXML文書に変換することも出来るし、XML文書からHTMLページを生成することも出来る。
【0152】
同様にして、スキーマの検索も行える。
【0153】
例えば、「「uix://root」以下の「schema」を先頭タグに持つ文書の中から、「特許」と「要約」というタグ名を持つスキーマを検索せよ」という検索要求の場合には、図30に示すように、領域W1から「root」をマウス等で選択して検索対象の範囲として、構造化文書パスを入力する。そして、トップノードとして、「#schema」を入力する。また、検索条件として、「構成要素の属性名に「特許」という文字列を含む」「構成要素の属性名に「要約」という文字列を含む」という内容を予め設けられたデータ入力領域に入力すればよい。
【0154】
その後、「検索」ボタンB21を選択することにより、上記検索要求を記述した、例えば、図31に示したようなクエリが、当該クエリを構造化文書データベース上に格納するための追加コマンドとともに構造化文書管理システムへ送信される。
【0155】
さて、上記クエリの場合、例えば、「「#schema」を先頭タグに持つ」という条件に合致するものを検索する。そこで、図9に示したような要素名称生起インデックスを用いて、「#schema」という要素にリンクされているノードの(文書オブジェクト)のオブジェクトIDを得る。そして、そのそれぞれについて、文書オブジェクトツリーを下流側にアークを辿っていき、属性名が「特許」と「要約」いう要素にたどり着いたときは、当該「#schema」を先頭タグにもつ文書オブジェクトツリーOt21を抽出する。この文書オブジェクトツリーOt21が上記クエリの内容に適合する文書となる。さらに、図31に示したクエリの要求内容に従えば、各文書オブジェクトツリーOt21のトップノードへの構造化文書パスを求める。
【0156】
検索要求処理部3は、文書オブジェクトツリーOt21が複数あれば、それぞれのトップノードへの構造化文書パスをまとめて、検索結果としてのXML文書を作成し、検索結果処理部12を介して、上記XML文書をスタイルシートとともに、要求元のクライアント端末に返す。
【0157】
クライアント端末では、検索結果として受け取ったXML文書を、スタイルシートを用いてHTMLデータに変換して、例えば、図26に示すように、領域W12に表示する。
【0158】
クライアント端末では、検索結果の中の1つのスキーマを選択して、表示させると、例えば、図32に示すような文書の格納/削除を行うための画面とともに、その領域W3に、「特許」情報のデータ入力領域が各要素毎に設定されて表示される。
【0159】
ユーザは、このデータ入力領域にデータを入力することで、スキーマにより定義された文書構造の格納文書が容易に作成することができる。
【0160】
例えば、図32の領域W3に入力した「特許」情報の格納先として、領域W1で「特許DB」をマウス等を用いて選択すると、領域W2に構造化文書パスとして、「uix://root/特許DB」が表示される。その後、「登録」ボタンB1を選択すると、「appendXML(“uix://root/特許DB”,“<特許>…</特許>”)」なる追加コマンドが構造化文書管理システムへ送信される。
【0161】
以上説明したように、図1の構造化文書管理システムでは、構造化文書データベース上に登録される文書構造が異なる膨大な数のXML文書群(コンテンツ文書、スキーマ文書、クエリ文書など)を、図18,図19に示すように、「root」タグを先頭に持つツリー状の1つの巨大なXML文書として取り扱う。従って、文書構造が異なる、様々なスキーマを持つ膨大な数の文書の中から検索条件に合致する文書を容易に検索できる。
【0162】
また、検索に用いるクエリも構造化文書であるので、構造化文書データベースにログとして格納することにより、過去のクエリを再利用するようなアプリケーションも容易に構築することができる。
【0163】
(絞込検索)
以下、本発明の実施形態について、図面を参照して説明する。
【0164】
ここでは、ユーザは、単に、検索したい構造化文書の構成要素の要素名や要素値に含まれるようなキーワードを入力しさえすれば、絞込検索を通じて所望の構造化文書が容易に検索することができる手法を適用した検索支援装置について説明する。
【0165】
この検索支援装置は、例えば、図2のクライアント端末102内に構成されていてもよい。この場合、検索支援装置は、前述の図1に示した構造化文書管理システムに入力するためのクエリを生成して、それを図1の構造化文書管理システムに送信したり、また、当該クエリに基づく検索結果を取得して、この検索結果から絞込条件を抽出しユーザに呈示するなどの処理を行うものである。
【0166】
図33は、本実施形態にかかる検索支援装置201の構成例を示したもので、例えば、クライアント端末102のブラウザ103に組み込まれて構成されている。このように図33に示した検索支援装置201は、アドインソフトとして構成可能である。
【0167】
図33に示したように、検索支援装置201は、初期条件入力部211と検索要求発行部212と検索結果取得部213と検索結果サンプリング部214と絞り込み条件抽出部215と選択部216と検索結果表示部217から構成されている。
【0168】
構造化文書管理システム100は、検索支援装置201から送られてきたクエリと呼ばれる検索要求を受信して、XMLデータベース(すなわち、ここでは文書記憶部5に格納されている、例えば、図8に示したような階層化された論理構造をもつデータベース)から当該検索要求にマッチする検索結果としてのXML文書を検索し、XMLデータの並びという形式で検索支援装置201に送信する。
【0169】
XMLデータの並びは、必ずしもテキスト列というわけではなく、バイナリ化されている場合もある。
【0170】
初期条件入力部211は、検索したい文書を検索するための検索条件を生成するために必要な、少なくとも1つのキーワード(複数のキーワードであってもよい)を入力するためのものである。
【0171】
前述したように、XMLデータベースには様々な構造(文書構造)や語彙を持ったXMLデータ(XML文書)が大量に格納されているため、ユーザはこのXMLデータベースの中から所望の文書を検索するために前もって明確なXMLデータに対する検索条件を設定することは困難である。明確な検索条件とは、XMLデータに対する構造に関する条件や語彙に関する条件が必要十分なことである。そこで、ユーザはフルテキスト検索などと同様にキーワードレベルの粗い検索条件しか設定できない場合がほとんどである。初期条件入力部211では、そのような粗い検索条件がユーザにより入力されると、検索要求発行部212を呼び出す。
【0172】
検索要求発行部212では、上記入力されたキーワードを検索条件として構造化文書管理システムが認識できるような形式に変換する。すなわち、上記入力されたキーワードを構成要素の要素名あるいは要素値に含むようなXML文書を検索するためのクエリ(あるいは、以下に示すように、入力されたキーワードを構成要素の要素値に含むようなXML文書を検索するためのクエリであってもよい)を生成し、当該クエリを構造化文書管理システム100へ送信する。
【0173】
検索結果取得部213は、検索要求発行部212で生成されたクエリに基づき構造化文書管理システム100で検索されたXMLデータ(XML文書、簡単に文書と呼ぶこともある)の集合を取得する。ここで検索結果として得られたXML文書の数が多い場合には、検索結果サンプリング部214にて、当該検索結果として得られたXML文書の中から所定数のXML文書を選択し、この選択したXML文書を処理対象の文書として絞り込み条件抽出部215へ渡す。例えば、検索結果のうちの「最初の100件」を無作為に取り出すことにより、実用時間内で応答するように制御するようになっている。もちろん検索結果として得られたXML文書の数が少ない(例えば、上記の例の場合、100件に満たない場合)には、その全てを処理対象の文書として絞り込み条件抽出部215へ渡すようにしてもよい。
【0174】
なお、検索結果サンプリング部214は、必ずしも設ける必要はなく、この構成部のない検索支援装置も構成可能である。この場合、検索結果取得部213は、構造化文書管理システム100から得られた検索結果としてのXML文書を全て処理対象の文書として絞り込み条件抽出部215へ渡せばよい。
【0175】
絞り込み条件抽出部215は、検索結果として得られたXML文書(具体的には、検索結果サンプリング部214で取り出されたXML文書)を処理対象として、この処理対象の文書から、さらに絞り込みをかけるための、より詳細な検索条件としての絞り込み条件を抽出する。なお、絞り込み条件とは、初期条件入力部211にてユーザから設定された粗い検索条件をより詳細化した検索条件である。例えば、処理対象の文書の文書構造上の違いや、各処理対象の文書に含まれている単語などの語彙の違いなどが絞り込み条件の候補として抽出される。
【0176】
検索結果表示部217は、抽出された絞り込み条件と、検索結果として得られたXML文書の一覧などを表示するための表示データを作成し、クライアント端末102のディスプレイなどに表示する。
【0177】
選択部216は、検索結果表示部217により表示された複数の絞り込み条件のうちの1つがユーザにより選択されると、検索要求発行部212を呼び出す。このとき、検索要求発行部212では、直前の検索結果のXML文書の中から、さらに当該選択された絞り込み条件を満たすXML文書を検索するためのクエリ(すなわち、初期条件とそれまでに選択された絞り込み条件とを全て満たすXML文書を検索するためのクエリ)が生成される。このクエリは構造化文書管理システムへ送信される。構造化文書管理システムにおいて当該クエリに基づき検索を行った結果は、検索結果取得部213により取得される。
【0178】
次に、図34〜36に示すフローチャートに従って、図33に示した検索支援装置の処理動作について説明する。
【0179】
前述したように、XMLデータベースには、異なる文書構造の複数のXML文書がその文書構造に基づく階層構造に従って格納されている。この検索支援装置の処理動作の説明に際しては、XMLデータベースの具体例を示さないが、以下に示す検索結果として得られた「BOOK」タグを先頭とする4つの文書は、XMLデータベースの「root」ノード以下のいずれかに記憶されているものとする。また、「BOOK」ノード以下に格納されている文書は、全て同じ文書構造であるとは限らない(すなわち、スキーマが設定されていない)ものとする。従って、「BOOK」ノード以下に格納されている各文書は、例えば内容的には類似するものの文書構造が全て同一であるとは限らない。
【0180】
まず、ユーザは、初期条件入力部211から文書検索のための初期条件として、少なくとも1つのキーワードを入力する(ステップS201)。
【0181】
図37は、初期条件入力部211からクライアント端末102のディスプレイに表示される初期条件入力画面の一例を示したものである。ユーザは、この初期条件入力画面上に設けられた入力領域X1に、文書を検索するための初期条件として、少なくとも1つのキーワードを入力する。ここでは、「XML」というキーワードが入力されているが、複数のキーワードを入力する場合には、それらをカンマなどで区切りながら並べて入力するようにしてもよい。
【0182】
ユーザにより初期条件としてのキーワードが入力されると、検索要求発行部212が起動し、ここでは、当該入力されたキーワードを構成要素の要素値に含むXML文書を検索するためのクエリを生成する(ステップS202)。
【0183】
図38は、検索要求発行部212で生成されたクエリの一例で、「XML」というキーワードをいずれかの構成要素の要素値に含むXML文書を検索することを構造化文書管理システム100に指示する検索要求文である。つまり、「kf:from」節では、XMLデータベース中の検索位置として、構造化文書パスにて、「uix://root」が指定されている。また、「kf:where」節では、「XML」を要素値に含むという条件が記述されている。「kf:select」節では、「uix://root」以下に格納されている文書のうち、「kf:where」節に記述されている条件にマッチする文書の集合を返すことが記述されている。
【0184】
なお、図38に示したクエリは、要素値に「XML」というキーワードを含む文書を検索するクエリであるが、同様にして、検索要求発行部212は、要素名に「XML」というキーワードを含む文書を検索するクエリや、要素名と要素値のうちの少なくとも一方に「XML」というキーワードを含む文書を検索するクエリを生成することも可能である。
【0185】
検索要求発行部212は、例えば、図38に示したようなクエリを生成するためのクエリの雛形を記憶している。この雛形は、例えば、ユーザにより入力されたキーワード「XML」を代入すれば、図38に示したようなクエリが完成するものである。このように、検索要求発行部212は、ユーザにより入力された初期条件、あるいは選択された絞り込み条件を代入、追加さえすればクエリとして完成するクエリの雛形を複数種類予め記憶しておき、これを基にクエリを生成するようにしてもよい。
【0186】
さて、検索要求発行部212で生成されたクエリ(例えば、図38に示したようなクエリ)は、構造化文書管理システム100へ送信されると、構造化文書管理システム100の要求処理部1で当該クエリが受け付けられ、前述したようにして、当該クエリに基づきXMLデータベースの「root」ノード以下から、要素値に「XML」というキーワードを含むXML文書が検索される。検索した結果得られた文書は、クライアント端末102へ送信され、検索支援装置201の検索結果取得部213が当該検索結果を取得する(ステップS203)。
【0187】
例えば、構造化文書管理システムおいて120件の文書が検索されたものとする。この120件の文書全てが検索結果として検索支援装置201の検索結果取得部213で取得されるものとする。そして、検索結果サンプリング部214では、このうち、例えば、先頭の4件の文書を選択(サンプリング)したとする。
【0188】
この4件の文書を、図39に示す。図39に示すように、各文書Rec1〜4は、全て「BOOK」タグをルートとする構造化文書であり、「CATEGORY」タグをもつ構成要素は、4つの文書に共通する構成要素であり、また、「PRICE」タグをもつ構成要素は文書Rec1〜3には存在するが、文書Rec4には存在しない。
【0189】
図39に示した4つの文書が処理対象の文書として、絞り込み条件抽出部215に渡される。絞り込み条件抽出部215では、これら4つの文書のそれぞれの文書構造と構成要素の要素値とから、絞り込み条件を抽出する(ステップS204)。絞り込み条件とは、初期条件入力部211にてユーザから設定された粗い検索条件をより詳細化した条件である。
【0190】
ここで、ステップS204の絞り込み条件抽出部215における絞り込み条件の抽出処理の一例について、図36に示すフローチャートを参照して説明する。
【0191】
まず、今回の処理対象の4つの文書は、最初の検索結果であるので(ステップS221)、ステップS222へ進む。
【0192】
ステップS222では、この処理対象の文書のそれぞれの先頭の構成要素の要素名を抽出し、この抽出された要素名を条件としたとき、処理対象の文書のそれぞれが上記条件のうちどの条件を満たすのかを表した構造テーブルを作成する(ステップS222)。
【0193】
構造テーブルを作成することにより、処理対象の文書の文書構造上、語彙上の相違点が明らかとなる。構造テーブル上に、処理対象の文書の相違点が表れていれば、当該構造テーブル上の条件を絞り込み条件として用いることにより、絞り込みがより効率よく行える。そこで、この生成された構造テーブル上に、処理対象の文書間に存在する相違点が表れていないときには(ステップS223)、展開元の構成要素を選択し(ステップS224)、当該展開元の構成要素に包含される当該構成要素の要素値や構成要素などを抽出して、上記ステップS222と同様にして、これらを条件としたとき、処理対象の文書のそれぞれが、どの条件を満たすのかを表した構造テーブルを作成し(ステップS225)、ステップS223へ戻る。
【0194】
ステップS223において、作成された構造テーブルから、処理対象の文書に相違点があると判断することができるときには、ステップS226へ進む。
【0195】
次に、ステップS222やステップS225での処理の詳細と、構造テーブルについて説明する。
【0196】
構造テーブルのx軸方向には各文書の文書IDを列のインデックスとして設定し、y軸方向には、上記抽出された条件を行のインデックスとして設定し、各文書に対応する列を構成するセルのうち、当該文書が満たしている条件に対応するセルには「○」、当該文書が満たしていない条件に対応するセルに「×」が書き込まれている。
【0197】
XML文書の集合を絞り込むための絞り込み条件は、一般に複数ある。構造テーブルにより、絞り込み条件を優先順位付けしてユーザに提示することで、ユーザは効率よく絞り込みが行えることになる。つまり、「どのような絞り込み条件があるのか分からない」、「どの絞り込み条件を設定すれば効率良く絞り込みができるのか分からない」、などのユーザ要求があるが、これを支援することができるのである。
【0198】
図40は、構造テーブルの一例を示す図である。2つの構造テーブルが存在する。図40(a)に示す構造テーブルは、処理対象としての4つのXML文書Rec1〜Rec4から生成された最初の構造テーブルである。すなわち、ステップS222で生成された構造テーブルである。構造テーブルのx軸には、各XML文書の文書ID「Rec1」〜「Rec4」が並んでいる。y軸には、各XML文書のルート(先頭)から各文書構造を展開した結果得られた条件が並んでいる。4つのXML文書をルートから構造的に見ると、先頭の構成要素は、全て「BOOK」タグをもつ構成要素がある。すなわち、この時点で、“「BOOK」タグを持つ”という条件が抽出された。4つの文書Rec1〜Rec4には、それぞれ「BOOK」タグがあるので、図40(a)に示すように、この条件を満足した印である「○」が並んでいる。
【0199】
これは、すべて条件を満足する「○」なので(4つの文書に相違点がない(「×」がない)ので)、ステップS223からステップS224へ進み、次に、この最初の構造テーブルを展開する(階層構造を1段下流に向かって掘り下げて、そこに存在する文書構造や語彙を調べる)ための処理を行う。
【0200】
まず、この最初の構造テーブル上の条件の中から展開元を選択する(ステップS224)。この場合、「BOOK」という構成要素だけなので、必然的にこの「BOOK」が選択される。そして、ステップS225では、「BOOK」という構成要素に包含される(下流に繋がる)当該構成要素の要素値や構成要素の要素名を処理対象の文書のそれぞれから抽出し、それらを条件としたとき、処理対象の文書のそれぞれがどの条件を満たすのかを表した構造テーブルを作成する(図40(b))。
【0201】
例えば、処理対象の4つの文書のうちの1つである文書Rec1の「BOOK」という構成要素の1段下の階層には、図39からも明らかなように、「CATEGORY」タグ、「TITLE」タグ、「PUBLISHEDDATE」タグ、「PRICE」タグ、「ABSTRACT」タグをそれぞれもつ構成要素がある。
【0202】
すなわち、ステップS225では、“「BOOK」タグを持つという条件”を展開することにより、“「BOOK」タグの下に「CATEGORY」タグがある”、“「BOOK」タグの下に「TITLE」タグがある”、“「BOOK」タグの下に「PUBLISHEDDATE」がある”、などの構造的な条件群が得られる。もちろん、「BOOK」タグをもつ構成要素に要素値をもつものがあれば、それもこの段階で抽出されて、語彙的な条件として用いることもできる。
【0203】
図40(b)に示す構造テーブルでは、y軸上に上記のような条件が並び、処理対象の4つの文書のそれぞれについて、当該条件を満たすか満たさないかを「○」「×」で表している。
【0204】
図40(b)からも明らかなように、「AUTHOR」という要素名の構成要素は、文書Rec2には存在しない。また、「PRICE」という要素名の構成要素は、文書Rec4には存在しない。すなわち、図40(b)に示した構造テーブルから、処理対象の4つの文書に相違点があることがわかる。そこで、この場合には、ステップS223からステップS226へ進む。
【0205】
なお、“「BOOK」タグを持つという条件”を展開しても、処理対象の文書に相違点が存在しないときには、ステップS24へ進み、展開元として、例えば、図40(b)に示す構造テーブル上の条件のうち最初の条件から順番に選択して、相違点が表れるまで図40(b)に示す構造テーブルを展開するようにしてもよい。
【0206】
このように、構造テーブルは、処理対象の文書のそれぞれがもつ文書構造や、処理対象の文書のそれぞれが要素値として包含している語彙を比較するためのものであり、この構造テーブルを用いることにより、処理対象の文書における構造的な特徴と語彙的な特徴の一致点、相違点が明らかとなる。この処理対象の文書における構造的な特徴と語彙的な特徴の相違点を、絞り込み検索の際に用いる条件として用いれば、検索範囲をより限定することができ、絞り込みを効率よく行える。そこで、ここでは、この点に着目し、上記相違点を絞り込み条件の候補として優先的にユーザに呈示するものである。すなわち、各処理対象の文書の文書構造と、各処理対象の文書により包含される語彙とから抽出される条件のうち、処理対象の文書間に違いを生じさせるものほど、検索範囲を限定することができる絞り込み条件となり得るから、そのような条件ほど優先度(優先順位)を高く設定する。
【0207】
構造テーブル上に処理対象の文書の相違点が表れている場合、ステップS226では、例えば、図40(b)に示したような構造テーブル上の行のインデックスとして設定された各条件に対し、優先順位を定める。すなわち、ここでは、より絞り込まれた検索結果が得られるような条件ほど優先順位が高くなるように、優先順位を求める。
【0208】
優先順位の算出手法について、以下に詳細に説明する。この手法は、ID3(J.R.Quinlan, ”Induction of Decision Trees”, Machine Learning, Vol.1, pp.81−pp.106, 1986)などで使用されている期待情報量最大化原理に基づいて行うものである。つまり、Cを属性とその属性値、所属クラスによって表現される事例集合とする。Aを属性の集合とし、Kをクラスの数、Pjを事例集合Cの中で暮らすjに属する事例の比率とすると、事例集合Cの情報量(エントロピー)M(C)は以下の式で表わされる。
【0209】
M(C)=−Σ{j=1,k}Pjlog2(Pj)
Cをある属性aの属性値ai,…anによって部分集合C1,…Cnに分割したときの期待情報量B(C,a)は以下の式で表わされる。
【0210】
B(C,a)=Σ{i=1,n}|Ci|/|C|×M(Ci)
獲得情報量の期待値gain(C,a)は以下の式になる。
【0211】
gain(C,a)=M(C)−B(C,a)
このgain(C,a)を最大にする属性aで事例集合を分割していくことで、効率的に事例をクラスに分けることができる。
【0212】
本実施形態の場合、各検索結果は、それぞれ別のクラスであるとして扱う。
【0213】
M(C)=(−1/n×log2(1/n))×n (n:条件Cを満たす文書の数)
ここで、図40(b)に示した構造テーブルの行のインデックスとして設定された各条件(C)についてM(C)を計算する。
【0214】
M(“BOOK/CATEGORY”)=(−1/4×log2(1/4))×4=2
M(“OOK/TITLE”)=2
M(“BOOK/PUBLISHEDDATE”)=2
M(“BOOK/AUTHOR”)=(−1/3×log2(1/3))×3+(−1/1× log2(1/1))×1=1.19
M(“BOOK/PRICE”)=1.19
M(“BOOK/ABSTRACT”)=2
この場合、M(C)の値が小さいものほど、絞り込まれた検索結果が得られる条件であることを表しており、優先順位の高い条件となる。
【0215】
以上から、各条件を優先順位の高い順に並べると、
“BOOK/AUTHOR”>=“BOOK/PRICE”>“BOOK/CATEGORY”=“BOOK/TITLE”=“BOOK/PUBLISHEDDATE”
となる。
【0216】
絞り込み条件抽出部215は、上記優先順位に従って、図40(b)に示したような構造テーブル上の行のインデックスとして設定された各条件を並べて、絞り込み条件の表示データを作成する(ステップS226)。
【0217】
図34の説明に戻り、ステップS204において、絞り込み条件の表示データが絞り込み条件抽出部215で作成されると、検索結果表示部217では、処理対象の4つの文書の一覧データを作成するとともに、この一覧データと、絞り込み条件の表示データとから、絞り込み条件と検索結果の文書の一覧をユーザに呈示するための検索結果表示画面データを作成し、クライアント端末102のディスプレイに表示する(ステップS205)。
【0218】
図41は、検索結果表示部217で表示する検索結果表示画面の表示例を示したものである。
【0219】
検索結果表示画面の領域Y2には、絞り込み条件が、絞り込み条件抽出部215で求めた優先順位の高い順に並べられて表示されている。図41において、各絞り込み条件の左端にある図形により、他の文書との間の相違点の有無、すなわち、構造テーブル上で「○」と「×」が混在してい文書であるか否かを視覚的に表している。例えば、「◇」は、「○」「×」が発生する条件を表わし、「□」は全て「○」となっている条件を表わしている。
【0220】
検索結果表示画面の領域Y3には、検索結果の文書の一覧が表示されている。ここでは、構造化文書パスにて表示されている。この一覧中の構造化文書パスのうち所望の1つがユーザによりマウス等の入力デバイスを用いて選択されると、図35のステップS208からステップS209へ進み、選択部216は、検索結果表示部217を通じて、当該選択された構造化文書パスに対応する文書の内容を表示させる。また、検索結果表示画面上に設けられた「終了」ボタンが選択されると、検索支援装置201の処理動作は終了する。
【0221】
検索結果表示画面の領域Y2に表示されている絞り込み条件の中から、ユーザは、マウス等の入力デバイスを用いて所望の絞り込み条件を選択することができる。ユーザは、領域Y3に表示された検索結果にさらに絞り込みをかけたいときなどは、領域Y2から所望の絞り込み条件を選択すればよい。例えば、ユーザにより、「BOOK/CATEGORY」が選択されたとする(ステップS206)。
【0222】
ユーザにより絞り込み条件が選択されると、選択部216は、検索要求発行部212を起動する。検索要求発行部212では、前回の検索結果の文書の中から、当該選択された絞り込み条件を満たす文書を検索するためのクエリをステップS202の場合と同様にして生成する(ステップS207)。すなわち、例えば、前回の検索の際に生成されたクエリの検索条件を記述する「kf:where」節に、今回選択された絞り込み条件をさらに追加するなどしてクエリを生成することもできる。
【0223】
この生成されたクエリは、前述同様、構造化文書管理システム100へ送信されて、当該クエリに基づき、XMLデータベースの「root」ノード以下から、要素値に「XML」というキーワードを含むXML文書のうち、「BOOK」ノードの下に「CATEGORY」ノードがあるXML文書が検索される。検索した結果得られた文書は、クライアント端末102へ送信され、検索支援装置201の検索結果取得部213が当該検索結果を取得し(ステップS203)、検索結果として得られた文書の数に応じて、そのうちの先頭の4件が、処理対象として選択される。
【0224】
なお、上記例の場合、処理対象の文書は、前回の検索と同様文書Rec1〜Rec4である。
【0225】
次に、2回目の検索結果に対して、ステップS204で行われる、絞り込み条件抽出部215の処理動作について、図36を参照して説明する。今回の処理対象の文書は、絞り込み検索の検索結果として得られた文書であるから、ステップS221からステップS224へ進み、展開元として、今回の絞り込み検索の際に用いられた絞り込み条件を選択し、次に、ステップS225へ進む。
【0226】
ステップS225では、図40(b)に示した構造テーブルを、この構造テーブル上の条件のうち、今回の絞り込み検索において、ユーザにより選択された絞り込み条件「BOOK/CATEGORY」を展開元として展開する。
【0227】
処理対象の文書Rec1〜Rec4のそれぞれは、図39に示したように、「BOOK/CATEGORY」の下には要素値としてのテキストがあり、それらは「コンピュータ」か「経済」のいずれかである。従って、この2つの語彙のそれぞれを含む条件を、構造テーブルの行のインデックスに設定する。また、文書Rec2以外の文書には「BOOK/CATEGORY」の下に「SUBCATEGORY」という構成要素が発生している(存在している)。従って、この構造上の条件も構造テーブルの行のインデックスに設定する。
【0228】
図42は、このようにして「BOOK/CATEGORY」を展開元として展開した結果得られた構造テーブルを示している。なお、図42では、前回までに作成した構造テーブル上の優先順位の高い条件に、さらに上記語彙情報、構造情報を新たな条件として追加するかたちで作成された構造テーブルの一例を示している。
【0229】
次に、ステップS223からステップS226へ進み、前述同様にして、各条件についてM(C)の値を求めると、以下のようになる。
【0230】
M(“BOOK/CATEGORY/text()=コンピュータ”)=1.19
M(“BOOK/CATEGORY/text()=経済”)=1.19
M(“BOOK/CATEGORY/text()”)=MIN{M(“BOOK/CATEGORY/text()=コンピュータ”),M(“BOOK/CATEGORY/text()=経済”)}=1.19
M(“BOOK/CATEGORY/SUBCATEGORY”)=1.19
M(“BOOK/AUTHOR”)=1.19
M(“BOOK/PRICE”)=1.19
この場合、上記全ての条件のM(C)は同じ値となっているので、絞り込み条件抽出部215は、例えば、構造テーブルの順番に、上記優先順位の等しい条件を並べて、絞り込み条件の表示データを作成する(ステップS226)。
【0231】
図43は、今回、検索結果表示部217で表示する検索結果表示画面の表示例を示したものである。
【0232】
ユーザは、図43に示した検索結果表示画面の領域Y2から絞り込み条件として「BOOK/CATEGORY/SUBCATEGORY」を選択したとする。これを絞り込み条件として絞り込み検索を行うと、検索結果の中から文書Rec2は除かれるので(文書Rec2は、今回の絞り込み条件を満たさないので)、絞り込み条件抽出部215の処理対象の文書は、文書Rec1、Rec3、Rec4となる。この3つの文書を処理対象の文書として、検索支援装置201の絞り込み条件抽出部215で、「BOOK/CATEGORY/SUBCATEGORY」を展開元として作成した構造テーブルの一例を図44に示す。
【0233】
処理対象の文書のそれぞれは、図44に示したように、「BOOK/CATEGORY/SUBCATEGORY」の下には要素値としてのテキストがあり、それらは「ソフトウエア」か「ハードウエア」のいずれかである。従って、この2つの語彙のそれぞれ含む条件が、構造テーブルの行のインデックスに設定されている。なお、図44では、前回までに作成した構造テーブル上の優先順位の高い条件に、さらに上記語彙情報を新たな条件として追加するかたちで作成された構造テーブルの一例を示している。
【0234】
図44に示した構造テーブル上の各条件についてM(C)の値を求めると、以下のようになる。
【0235】
M(“BOOK/CATEGORY/SUBCATEGORY/text()=ソフトウエア”)=1
M(“BOOK/CATEGORY/SUBCATEGORY/text()=ハードウエア”)=1.19
M(“BOOK/CATEGORY/SUBCATEGORY/text()”=MIN(1,1.19)=1
M(“BOOK/AUTHOR”)=1.19
M(“BOOK/PRICE”)=1.19
上記算出結果を基に、各条件を優先順位の高い順に並べると、
“BOOK/CATEGORY/SUBCATEGORY/text()”>“BOOK/AUTHOR”=“BOOK/PRICE”となる。
【0236】
絞り込み条件抽出部215は、上記条件を優先順位の高い順に並べて絞り込み条件の表示データを作成した結果、図45に示したような検索結果表示画面が表示される。上記優先順位の高い順に絞り込み条件(の候補)が並べられている。
【0237】
ユーザは、図45に示した検索結果表示画面の領域Y2から絞り込み条件として「BOOK/CATEGORY/SUBCATEGORY/text()=ソフトウェア」を選んだものとする。そして、絞り込み条件を追加した再検索(絞り込み検索)を行うため、ユーザは、「実行」ボタンを押す。
【0238】
図46は、このとき検索要求発行部212で生成されたクエリデータの一例である。「XML」というキーワードを含むXMLデータを検索するという初期条件以外に、これまでに選択された絞り込み条件が追加されている。つまり、この場合、「kf:from」節では、「“uix://root”以下のXML文書のうち、「BOOK」というタグの構成要素を持ち、その下に「CATEGORY」タグをもつ構成要素があり、この構成要素に「コンピュータ」というテキストがあり、さらに、当該構成要素は「SUBCATEGORY」タグを持つ構成要素を包含し、この「SUBCATEGORY」タグをもつ構成要素に「ソフトウェア」というテキストを持つXML文書」という検索条件が記述されている。
【0239】
図46に示したクエリに基づき構造化文書管理システム100で検索を行った結果、例えば、図47に示すように、文書Rec1と文書Rec4とが検索されたとする。
【0240】
文書Rec1とRec4とを処理対象として絞り込み条件抽出部215では、図36に示したフローチャートに従って、今回の絞り込み条件、すなわち、「BOOK/CATEGORY/SUBCATEGORY/text()=ソフトウェア」を展開元として構造テーブルを展開するが、この場合、もうこれ以上展開することはできない。
【0241】
この場合、当該絞り込み条件が設定されている元の構造テーブル、すなわち、図44に示した構造テーブル上に、文書Rec1とRec4との相違点を表す条件も設定されているので、新たに、展開元を選択することなく、この構造テーブルを用いて、当該構造テーブル上の条件のうち、今回の絞り込み検索に用いた絞り込み条件を除く、文書Rec1とRec4に該当する各条件について、前述同様にしてM(C)の値を求める。そして、その値を基に、優先順位の高い順に条件を並べて、絞り込み条件の表示データを作成する。
【0242】
図48は、今回、検索結果表示部217で表示する検索結果表示画面の表示例を示したものである。
【0243】
図49は、検索結果表示画面の他の例を示したものである。図49に示した検索結果表示画面は、図45に示した検索結果表示画面に対応するが、異なるのは、領域Y3における検索結果一覧の表示方法である。
【0244】
図49では、検索結果の各文書について、その文書の構造化文書パスと、当該文書の要約情報も表示している。要約情報としては、図49に示すように、例えば、同じ画面上の領域Y2で表示されている絞り込み条件のうち、優先順位の高い条件に対応するXML文書の断片であってもよい。
【0245】
すなわち、「BOOK/CATEGORY/SUBCATEGORY」が最も優先順位の高い絞り込み条件であるので、処理対象の各文書中の、この構成要素の周辺データが要約情報として表示されている。このように、ユーザの焦点に合わせて、ユーザが絞り込み条件を選択する手掛かりとなるような情報を各文書に対応付けて表示することもできる。
【0246】
以上説明したように、上記実施形態に係る絞り込み検索によれば、少なくとも1つのキーワードを初期条件として入力されたら、XMLデータベースに格納されている複数の構造化文書の中から、当該キーワードを構成要素の要素値に含む構造化文書を検索し、この検索された複数の構造化文書を処理対象の文書として、当該処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、当該処理対象の文書間の違いを抽出し、少なくともこの違いを絞り込み条件の候補として表示し、表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から当該選択された絞り込み条件を満たす構造化文書を検索し、その結果を今回の処理対象の文書として取得する。
【0247】
上記手法によれば、予めユーザ側で文書構造や語彙に関する情報を知らなくとも効果的に構造的な条件や語彙的な条件を優先順位付けして提示することで、必要な構造化文書集合を容易に取り出すことができる。
【0248】
また、上記実施形態に係る検索支援装置201は、XMLデータベースに格納されている複数の構造化文書の中から、指定された検索条件を満足する構造化文書を検索する構造化文書管理システム100を用いて、所望の構造化文書を検索するための支援を行うものであって、少なくとも1つのキーワードを初期条件として入力されたら、構造化文書管理システム100が上記キーワードを構成要素の要素値に含む複数の構造化文書を検索するための検索要求文(以下、クエリ)を作成して、構造化文書管理システム100に入力し、このクエリに基づき構造化文書管理システム100で検索された複数の構造化文書を処理対象の文書として取得すると、当該処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、絞り込み条件の候補として、少なくとも当該処理対象の文書間の違いを抽出して表示し、この表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から、当該選択された絞り込み条件を満たす構造化文書を検索した結果を、今回の処理対象の文書として取得する。
【0249】
上記検索支援装置201によれば、予めユーザ側で文書構造や語彙に関する情報を知らなくとも効果的に構造的な条件や語彙的な条件を優先順位付けして提示することで、必要な構造化文書集合を構造化文書管理システム100から容易に取り出すことができる。
【0250】
すなわち、上記実施形態によれば、異なる文書構造の複数の構造化文書を記憶するデータベースであって、各構造化文書の構成要素で構成された階層化された論理構造を有するデータベースから、ユーザは、上記論理構造や各構造化文書の文書構造、どの構成要素にどのような語彙が包含されているかなどを意識せず、単なるキーワードを指定するだで、効率よく所望の構造化文書を検索することができる。特に、呈示された絞り込み条件の中から所望のものを選択するという操作だけで、検索結果として得られた大量の文書の中から、容易に絞り込みが行える。
【0251】
上記実施形態では、処理対象の文書から絞り込み条件を抽出する際には、各処理対象の文書を、検索結果が得られる度に、処理対象の文書の文書構造を1段ずつ掘り下げて(展開して)構成要素や語彙を抽出し、構造テーブルを作成する(展開する)。掘り下げる際には、掘り下げる基点としての展開元は、その都度選択する。例えば、構造テーブルに条件として挙げられた構成要素を順番に選択したり、絞り込み条件として選択された構成要素を優先的に選択してもよい。1段掘り下げたところで処理対象の文書間の違いが見つからなければ、さらに1段掘り下げて構成要素や語彙を抽出し構造テーブルを作成する(展開する)。
【0252】
なお、上記実施形態では、絞り込み受験が選択されるたびに、検索要求発行部212がクエリを生成し、構造化文書管理システム100へ検索を依頼するようになっているが、この場合に限らず、初期条件に基づく検索結果が得られたら(構造化文書管理システムから送られてきたら)、検索支援装置201自身が、この検索結果の文書の中から、選択された絞り込み条件を満足する文書を選択(検索)するようにしてもよい。
【0253】
本発明の実施の形態に記載した絞り込み検索手法(図34〜図36参照)は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピーディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体に格納して頒布することもできる。
【0254】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題(の少なくとも1つ)が解決でき、発明の効果の欄で述べられている効果(のなくとも1つ)が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0255】
【発明の効果】
以上説明したように、本発明によれば、構造化文書の文書構造を意識することなく、検索結果を絞り込みながら所望の構造化文書を迅速に効率よく検索することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る構造化文書管理システムの構成例を示した図。
【図2】図1に示した構造化文書管理システムの一利用形態を示したもので、WWWのバックエンドで、構造化文書管理システムが動作している場合を示した図。
【図3】XMLで記述された構造化文書の一例を示した図。
【図4】図3の構造化文書の文書構造を模式的に示した図。
【図5】追加コマンドの機能を説明するための図で、構造化文書データベースの初期状態に追加コマンドを実行した場合について示している。
【図6】図5(b)に示した状態の構造化文書データベースに対し、取得コマンドを実行した場合の処理結果を示した図。
【図7】図5(b)に示した状態の構造化文書データベースに対し、追加コマンドを実行して1つの「特許」情報の文書オブジェクトツリーを追加した場合を示している。
【図8】図5(b)に示した状態の構造化文書データベースに対し、追加コマンドを実行して3つの「特許」情報の文書オブジェクトツリーを追加した場合を示している。
【図9】要素名生起インデックスの格納例を示した図。
【図10】データ生起インデックスの格納例を示した図。
【図11】図8に示した状態の構造化文書データベースに対して、3つの「特許」情報を取り出すための取得コマンドを実行した場合の実行結果を示した図。
【図12】XML文書の文書構造を定義するスキーマの一例を示した図。
【図13】図8に示した状態の構造化文書データベースに、スキーマ格納コマンドを実行して、図12に示したスキーマを追加格納(設定)した場合を示した図。
【図14】スキーマが設定されて、スキーマが存在している旨の属性値のセットされた文書オブジェクトツリーを示した図。
【図15】各オブジェクトファイルに、スキーマが存在している旨の属性値が格納されている様子を概念的に示した図。
【図16】必要に応じて検索で使用される概念階層を構造化文書で表現した例を示した図。
【図17】必要に応じて検索で使用される概念階層を構造化文書で表現した例を示した図。
【図18】図8に示した状態の構造化文書データベースに対し、追加コマンドを実行して、図16,図17に示した「概念」情報の文書オブジェクトツリーを追加した場合を示した図。
【図19】図8に示した状態の構造化文書データベースに対し、追加コマンドを実行して、図16,図17に示した「概念」情報の文書オブジェクトツリーを追加した場合を示した図。
【図20】クエリ(XML文書)の一例を示した図。
【図21】単純検索のクエリ(XML文書)の一例を示した図。
【図22】図21の単純検索のクエリを用いた検索結果(XML文書)を示した図。
【図23】概念検索のクエリ(XML文書)の一例を示した図。
【図24】図1の構造化文書管理システムの文書検索処理動作について説明するためのフローチャート。
【図25】ユーザインタフェースとしての画面の表示例を示した図。
【図26】文書検索を行うためのユーザインタフェースとしての画面の表示例を示した図。
【図27】図26に示した画面上から入力された情報に基づき作成されるクエリを示した図。
【図28】図1の構造化文書管理システムの文書取得処理動作について説明するためのフローチャート。
【図29】文書取得コマンドを実行した結果得られた構造化文書の表示例を示した図。
【図30】文書検索を行うためのユーザインタフェースとしての画面の表示例であって、スキーマの検索処理動作を説明するための図。
【図31】スキーマ検索のクエリの一例を示した図。
【図32】スキーマの取得するためのユーザインタフェースとしての画面の表示例を示したもので、取得されたスキーマの表示例を示している。
【図33】本発明の実施形態に係る検索支援装置の構成例を示した図。
【図34】図33の検索支援装置の処理動作を説明するためのフローチャート。
【図35】図33の検索支援装置の処理動作を説明するためのフローチャート。
【図36】絞り込み条件抽出部の処理動作を説明するためのフローチャート。
【図37】初期条件入力画面の表示例を示した図。
【図38】検索要求発行部で生成されたクエリの一例を示す図。
【図39】図38に示したクエリに基づき構造化文書管理システムで検索した結果得られたXML文書の集合のうち、選択された4件の文書の具体例を示した図。
【図40】絞り込み条件抽出の際に作成される構造テーブルの具体例を示した図。
【図41】絞り込み条件の表示例を示した図。
【図42】絞り込み検索の結果得られたXML文書について作成された構造テーブルの具体例を示した図。
【図43】絞り込み条件の表示例を示した図。
【図44】絞り込み検索の結果得られたXML文書について作成された構造テーブルの具体例を示した図。
【図45】絞り込み条件の表示例を示した図。
【図46】ユーザにより選択された絞り込み条件を用いて作成されたクエリの具体例を示した図。
【図47】図46に示したクエリに基づき検索した結果得られたXML文書の具体例を示した図。
【図48】絞り込み条件の表示例を示した図。
【図49】絞り込み条件とともに表示される検索結果一覧の他の表示例を示した図。
【符号の説明】
100…構造化文書管理システム
201…検索支援装置
211…初期条件入力部
212…検索要求発行部
213…検索結果取得部
214…検索結果サンプリング部
215…絞り込み条件抽出部
216…選択部
217…検索結果表示部
Claims (14)
- 異なる文書構造の複数の構造化文書を記憶するデータベースから、所望の構造化文書を検索するための検索方法であって、
少なくとも1つのキーワードを初期条件として入力されたら、前記データベースから、前記キーワードを構成要素の要素名と要素値とのうちの少なくとも一方に含む複数の構造化文書を検索し、
この検索された複数の構造化文書を処理対象の文書として、当該処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙とを比較することにより、絞り込み条件の候補として、前記処理対象の文書から、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出し、この抽出された候補を表示し、表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から、当該選択された絞り込み条件を満たす構造化文書を検索して、それを前記処理対象の文書として取得することを特徴とする構造化文書検索方法。 - 前記処理対象の文書間の違いとして、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出し、この違いを絞り込み条件の候補として表示することを特徴とする請求項1記載の構造化文書検索方法。
- 前記抽出された各候補に対し、検索範囲をより限定することのできる候補ほど優先順位が高くなるように優先順位を求め、この優先順位に従って、当該候補を並べて表示することを特徴とする請求項1記載の構造化文書検索方法。
- 前記検索結果として得られた構造化文書の中から所定数の構造化文書を選択して、この選択された構造化文書を前記処理対象の文書として用いることを特徴とする請求項1記載の構造化文書検索方法。
- 前記優先順位は、期待情報量最大化原理に基づき求めることを特徴とする請求項3記載の構造化文書検索方法。
- 前記処理対象の文書のそれぞれの文書構造と、各処理対象の文書が要素値として包含する語彙を比較するためのテーブルを作成して、このテーブル上の比較項目を前記絞り込み条件の候補として抽出することを特徴とする請求項1記載の構造化文書検索方法。
- 異なる文書構造の複数の構造化文書を記憶するデータベースから、指定された検索条件を満足する構造化文書を検索する検索装置を用いて、所望の構造化文書を検索するための支援を行う検索支援装置であって、
少なくとも1つのキーワードを初期条件として入力されたら、前記検索装置が、前記キーワードを構成要素の要素名と要素値とのうちの少なくとも一方に含む構造化文書を検索するための検索要求文を作成する作成手段と、
前記検索要求文に基づき前記検索装置で検索された構造化文書を処理対象の文書として取得する取得手段と、
前記処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙とを比較することにより、絞り込み条件の候補として、前記処理対象の文書から、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出する抽出手段と、
この前記抽出手段で抽出された絞り込み条件の候補を表示する表示手段と、
この表示手段で表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から検索された、当該選択された絞り込み条件を満たす構造化文書を、前記処理対象の文書として取得する手段と、
を具備したことを特徴とする検索支援装置。 - 前記抽出手段は、前記処理対象の文書間の違いとして、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出し、
前記表示手段は、前記前記抽出手段で抽出された違いを絞り込み条件の候補として表示することを特徴とする請求項7記載の検索装置。 - 前記抽出手段で抽出された各候補に対し、検索範囲をより限定することのできる候補ほど優先順位が高くなるように優先順位を求め、前記表示手段は、この優先順位に従って、当該候補を並べて表示することを特徴とする請求項7記載の検索支援装置。
- 前記検索結果として得られた構造化文書の中から所定数の構造化文書を選択して、この選択された構造化文書を前記処理対象の文書として用いることを特徴とする請求項7記載の検索支援装置。
- 前記優先順位は、期待情報量最大化原理に基づき求めることを特徴とする請求項9記載の検索支援装置。
- 前記処理対象の文書のそれぞれの文書構造と、各処理対象の文書が要素値として包含する語彙を比較するためのテーブルを作成して、このテーブル上の比較項目を前記絞り込み条件の候補として抽出することを特徴とする請求項7記載の検索支援装置。
- 異なる文書構造の複数の構造化文書を記憶するデータベースから指定された検索条件を満足する構造化文書を検索する検索装置を用いて、所望の構造化文書を検索するための支援を行う検索支援方法であって、
少なくとも1つのキーワードを初期条件として入力されたら、前記検索装置が、前記キーワードを構成要素の要素名と要素値とのうちの少なくとも一方に含む構造化文書を検索するための検索要求文を作成し、この検索要求文に基づき前記検索装置で検索された構造化文書を処理対象の文書として取得すると、当該処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、前記処理対象の文書から、絞り込み条件の候補として、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出し、この抽出された候補を表示し、表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から検索された、当該選択された絞り込み条件を満たす構造化文書を前記処理対象の文書として取得することを特徴とする検索支援方法。 - 異なる文書構造の複数の構造化文書を記憶するデータベースから、指定された検索条件を満足する構造化文書を検索する検索装置を用いて、所望の構造化文書を検索するための支援を行う検索支援プログラムであって、
コンピュータに、
少なくとも1つのキーワードを初期条件として入力されたら、前記検索装置が、前記キーワードを構成要素の要素名と要素値とのうちの少なくとも一方に含む構造化文書を検索するための検索要求文を作成するステップと、
前記検索要求文に基づき前記検索装置で検索された構造化文書を処理対象の文書として取得するステップと、
前記処理対象の文書のそれぞれの文書構造と構成要素の要素値として包含する語彙を比較することにより、前記処理対象の文書から、絞り込み条件の候補として、構成要素の要素名と要素値として包含する語彙のうちの少なくとも一方を抽出する抽出するステップと、
前記絞り込み条件の候補を表示するステップと、
前記表示された候補の中から選択された候補を絞り込み条件として用いて、前回検索された構造化文書の中から検索された、当該選択された絞り込み条件を満たす構造化文書を前記処理対象の文書として取得するステップと、
を実行させる検索支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002281207A JP2004118543A (ja) | 2002-09-26 | 2002-09-26 | 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002281207A JP2004118543A (ja) | 2002-09-26 | 2002-09-26 | 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004118543A true JP2004118543A (ja) | 2004-04-15 |
Family
ID=32275713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002281207A Pending JP2004118543A (ja) | 2002-09-26 | 2002-09-26 | 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004118543A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328401A (ja) * | 2006-06-06 | 2007-12-20 | Osk:Kk | 一括印刷システム |
JP2008065543A (ja) * | 2006-09-06 | 2008-03-21 | Toshiba Corp | 構造化文書検索装置及び構造化文書検索方法 |
JP2008262442A (ja) * | 2007-04-13 | 2008-10-30 | Yahoo Japan Corp | 検索キーデータを表示させる方法及びサーバ |
WO2011142134A1 (ja) * | 2010-05-14 | 2011-11-17 | 日本電気株式会社 | 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造 |
JP2013518318A (ja) * | 2010-01-21 | 2013-05-20 | インディジーン ライフシステムズ プライベート リミテッド | 臨床データマイニング及び分析のためのツール |
-
2002
- 2002-09-26 JP JP2002281207A patent/JP2004118543A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328401A (ja) * | 2006-06-06 | 2007-12-20 | Osk:Kk | 一括印刷システム |
JP4547356B2 (ja) * | 2006-06-06 | 2010-09-22 | 株式会社Osk | 一括印刷システム |
JP2008065543A (ja) * | 2006-09-06 | 2008-03-21 | Toshiba Corp | 構造化文書検索装置及び構造化文書検索方法 |
JP2008262442A (ja) * | 2007-04-13 | 2008-10-30 | Yahoo Japan Corp | 検索キーデータを表示させる方法及びサーバ |
JP2013518318A (ja) * | 2010-01-21 | 2013-05-20 | インディジーン ライフシステムズ プライベート リミテッド | 臨床データマイニング及び分析のためのツール |
WO2011142134A1 (ja) * | 2010-05-14 | 2011-11-17 | 日本電気株式会社 | 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造 |
JP4947245B2 (ja) * | 2010-05-14 | 2012-06-06 | 日本電気株式会社 | 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造 |
US9141727B2 (en) | 2010-05-14 | 2015-09-22 | Nec Corporation | Information search device, information search method, computer program, and data structure |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3842573B2 (ja) | 構造化文書検索方法、構造化文書管理装置及びプログラム | |
JP3842577B2 (ja) | 構造化文書検索方法および構造化文書検索装置およびプログラム | |
US7739257B2 (en) | Search engine | |
US20070078889A1 (en) | Method and system for automated knowledge extraction and organization | |
JP2005190163A (ja) | 構造化データ検索方法、構造化データ検索装置およびプログラム | |
JP2000020537A (ja) | テキスト検索装置及びテキスト検索プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3914081B2 (ja) | アクセス権限設定方法および構造化文書管理システム | |
JP3842572B2 (ja) | 構造化文書管理方法および構造化文書管理装置およびプログラム | |
JP4439497B2 (ja) | 検索処理装置及びプログラム | |
JP2004118543A (ja) | 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム | |
JP2003196294A (ja) | 知識分析システムおよび知識分析方法 | |
JP3842576B2 (ja) | 構造化文書編集方法及び構造化文書編集システム | |
Yu et al. | Metadata management system: design and implementation | |
JP3842574B2 (ja) | 情報抽出方法および構造化文書管理装置およびプログラム | |
JP3842575B2 (ja) | 構造化文書検索方法、構造化文書管理装置及びプログラム | |
JP2003288332A (ja) | 構造化文書作成支援方法及び構造化文書作成支援システム | |
JP3910901B2 (ja) | 文書構造検索方法、文書構造検索装置および文書構造検索プログラム | |
JP2003288365A (ja) | 付加情報管理方法及び付加情報管理システム | |
Hong et al. | Extracting Web query interfaces based on form structures and semantic similarity | |
Marin-Castro et al. | VR-Tree: A novel tree-based approach for modeling Web Query Interfaces | |
AU2010212480B2 (en) | Improved search engine | |
AU2012200686B2 (en) | Improved search engine | |
JP2012194950A (ja) | 構造化文書管理装置、方法およびプログラム | |
JPH10293764A (ja) | 構造化文書データベース検索方法、構造化文書データベース検索システム及び記録媒体 | |
Palmer | CSE 400 Professor: Camillo J. Taylor Advisor: Pat Palmer April 11, 2005 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060704 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061128 |