説明

構造化文書検索装置、構造化文書検索方法及び構造化文書検索のためのデータを記憶した記憶媒体

【課題】複数のタグを演算子で連結することなく、同義語のタグのすべてを構造指定情報による検索対象とすることができるようにする。
【解決手段】ハンドリング部131は、端末30からの第1の構造指定情報に含まれる全てのタグについて、同義語辞書14から当該タグに対応する同義語グループIDを検索する。ハンドリング部131は、この検索結果をもとに、第1の構造指定情報に含まれるタグが対応する同義語グループIDに置き換えられた第2の構造指定情報を生成する。同義語ハンドリング部131は、第2の構造指定情報にマッチする同義語構造テンプレートを同義語構造テンプレート管理ブロック152から検索する。ファイル入出力部132は、検索された同義語構造テンプレートに対応する構造テンプレートで示される、構造化文書中の文書構造部分を、データベース15から取得する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タグの同義語を利用して構造化文書中の文書構造部分を検索するのに好適な構造化文書検索装置、構造化文書検索方法及び構造化文書検索のためのデータを記憶した記憶媒体に関する。
【背景技術】
【0002】
データを記述する手段として、XML(Extensible Markup Language)が広く利用されている。このXMLを用いて記述された文書はXML文書と呼ばれる。XML文書は、タグを用いて論理的に木構造で表現される構造化文書として知られている。この種のXML文書中の文書構造(論理構造)部分を対象とする文書検索では、文書構造に基づいた検索要求により、キーワード検索よりも精度の高い検索と、利用部分だけのデータが得られるという、きめ細かい検索が可能となる。また近年は、このようなXML文書中の所望の構造部分を、構造インデックスを利用して高速に検索する技術が提案されている(例えば、特許文献1参照)。
【特許文献1】特開2001−147933(段落0015乃至0021、段落0107乃至0111、図13及び図14)
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、従来技術においては、あるXML文書内で意味は同じでも表記の異なる複数のタグを、XPathと呼ばれる、任意の文書構造部分を指定する構造指定情報を用いて、同時に検索対象とする場合、演算子”|”や論理演算子”or”を用いて同義語となる複数表記を連結する必要がある。そのため、予め検索対象となるタグの同義語をすべて正確に把握して構造指定情報に含めなければ、検索漏れが発生するという問題がある。また、構造指定情報にすべての同義語を網羅すると、当該構造指定情報(XPath式)が大変複雑になるという問題もある。
【0004】
本発明は上記事情を考慮してなされたものでその目的は、複数のタグを演算子で連結することなく、同義語のタグのすべてを構造指定情報による検索対象とすることができる構造化文書検索装置、構造化文書検索方法及び構造化文書検索のためのデータを記憶した記憶媒体を提供することにある。
【0005】
本発明の他の目的は、構造指定情報に含まれる一部のタグのみを同義語検索対象にすることもできるようにすることにある。
【課題を解決するための手段】
【0006】
本発明の1つの観点によれば、クライアント端末から与えられる、タグを含む任意の文書構造部分を指定する第1の構造指定情報を利用した検索要求に応じて、構造化文書が格納されたデータベースから対応する構造化文書中の文書構造部分を検索する構造化文書検索装置において、タグ構造の雛形とこの雛形を示すIDとから成る複数の構造テンプレートを記憶する構造テンプレート記憶手段と、タグの同義語をグループ化した同義語グループ毎に、この同義語グループに固有の同義語グループIDとこの同義語グループに所属するタグの表記とを記憶する同義語辞書と、前記同義語辞書を参照して、前記第1の構造指定情報に含まれるタグについて、当該タグが所属する同義語グループの同義語グループIDを検索する検索処理用同義語検索手段と、前記検索処理用同義語検索手段の検索結果に基づいて、前記第1の構造指定情報に含まれるタグが対応する同義語グループの同義語グループIDに置き換えられた第2の構造指定情報を生成する構造指定情報生成手段と、
前記構造テンプレート記憶手段が記憶する各構造テンプレートに含まれるタグを、当該タグが所属する同義語グループの同義語グループIDに置き換えられた同義語構造テンプレートを記憶する同義語構造テンプレート記憶手段と、前記同義語構造テンプレート記憶手段を参照して、前記第2の構造指定情報と一致する同義語構造テンプレートを検索する同義語構造テンプレート検索手段と、前記同義語構造テンプレート検索手段によって検索された同義語構造テンプレートに対応する構造テンプレートで示される構造化文書中の文書構造部分を前記データベースから取得する取得手段とを具備することを特徴とする。
【0007】
上記した構成の構造化文書検索装置において、クライアント端末から与えられる検索要求で指定された検索式としての第1の構造指定情報から第2の構造指定情報が生成される。この第2の構造指定情報は、第1の構造指定情報に含まれているタグを、当該タグが所属する同義語グループに固有の同義語グループIDに置き換えることによって生成される。そして、同義語構造テンプレート記憶手段から、第2の構造指定情報とマッチする同義語構造テンプレートが検索される。この同義語構造テンプレートは、構造テンプレート記憶手段内の対応する構造テンプレートに含まれるタグを、当該タグが所属する同義語グループに固有の同義語グループIDに置き換えらることによって生成されたものである。したがって、第2の構造指定情報とマッチする同義語構造テンプレート、つまり第1の構造指定情報に含まれているタグが所属する同義語グループに固有の同義語グループIDとマッチする同義語構造テンプレートを検索することにより、第1の構造指定情報に含まれているタグの同義語と一致(マッチ)する構造テンプレートを検索することを実現できる。
【0008】
このように、上記した構成の構造化文書検索装置においては、構造テンプレート記憶手段内の構造テンプレートに対応する同義語構造テンプレートの集合、即ち当該構造テンプレートに含まれるタグが、当該タグの同義語に固有の同義語グループIDに置き換えられた同義語構造テンプレートの集合と、第1の構造指定情報に含まれるタグが当該タグの同義語に固有の同義語グループIDに置き換えられた第2の構造指定情報とを利用して、上述の構造テンプレート検索に代わる同義語構造テンプレート検索を行うことより、複数のタグを演算子で連結することなくタグの同義語を対象とした文書構造部分の検索を行うことができる。また、データベースに格納されている構造化文書内に存在しないタグ名が第1の構造指定情報中に記述されていても、そのタグ名の同義語をもとに、対応する文書構造部分を検索できる。
【0009】
ここで、クライアント端末からの要求に従うデータベースへの構造化文書の格納処理または当該データベース内の構造化文書の更新処理に応じて、構造テンプレート記憶手段に存在しない新たな文書構造部分に対応する構造テンプレートが当該構造テンプレート記憶手段に追加された場合、当該追加された構造テンプレートに含まれている全てのタグについて、上記同義語辞書から、当該タグが所属する同義語グループに固有の同義語グループIDを検索する格納処理用同義語検索手段と、この格納処理用同義語検索手段による検索結果をもとに、追加された構造テンプレートに含まれるタグが対応する同義語グループに固有の同義語グループIDに置き換えられた同義語構造テンプレートを生成する同義語構造テンプレート生成手段と、生成された同義語構造テンプレートを上記同義語構造テンプレート記憶手段に追加する同義語構造テンプレート追加手段とを更に備えると良い。このようにすると、データベースに格納されている全ての構造化文書に含まれている文書構造部分に対応する同義語構造テンプレートを、常に同義語構造テンプレート記憶手段に用意することができる。
【0010】
また、検索処理用同義語検索手段または格納処理用同義語検索手段によって、1つのタグにつき複数の同義語グループIDが検索された場合に、クライアント端末のユーザに対して、当該複数の同義語グループIDで示される同義語グループの中から当該タグを処理すべき同義語グループを選択させる問い合わせを行う構成とすると良い。このようにすると、無駄なヒットを少なくして、効率的に同義語検索結果を処理することができる。
【0011】
また、上記第1の構造指定情報に含まれているタグのうち同義語検索されるべきタグが上記検索要求によって個別に指定されている場合、上記同義語構造テンプレート検索手段によって検索された同義語構造テンプレート毎に、上記第1の構造指定情報中の同義語検索されるべきタグを除く文書構造部分と当該同義語構造テンプレートに対応する構造テンプレートのうちの該当する文書構造部分とが一致するかを判定する判定手段を更に備え、この判定手段によって一致していると判定された構造テンプレートで示される、構造化文書中の文書構造部分のみが、上記取得手段によってデータベースから取得される構成とすると良い。このようにすると、一層効率的に検索結果を取得できる。
【発明の効果】
【0012】
本発明によれば、構造テンプレートに含まれるタグが、当該タグの同義語に固有の同義語グループIDに置き換えられた同義語構造テンプレートの集合と、第1の構造指定情報に含まれるタグが当該タグの同義語に固有の同義語グループIDに置き換えられた第2の構造指定情報とを利用して、同義語構造テンプレートの集合(同義語構造テンプレート記憶手段)からの同義語構造テンプレート検索を行うことより、複数のタグを演算子で連結することなくタグの同義語を対象とした文書構造部分の検索を行うことができる。
【0013】
また本発明によれば、第1の構造指定情報に含まれる一部のタグのみを同義語検索対象にすることもできる。
【発明を実施するための最良の形態】
【0014】
以下、本発明一実施形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る構造化文書検索システムの構成を示すブロック図である。図1の構造化文書検索システムは、構造化文書検索装置10と、ネットワーク20と、構造化文書検索クライアント端末30とから構成される。クライアント端末30は、ネットワーク20を介して構造化文書検索装置10と接続されている。図1では、作図の都合上、1台のクライアント端末30がネットワーク20を介して構造化文書検索装置10に接続されているが、複数のクライアント端末30がネットワーク20を介して構造化文書検索装置10に接続されるのが一般的である。
【0015】
構造化文書検索装置10は、要求処理部11、格納処理部12及び検索処理部13の各処理部と、同義語辞書14及びデータベース15とを備えている。同義語辞書14及びデータベース15は、コンピュータによって読み取り可能なハードディスクなどの記憶媒体に格納される。ここで、同義語辞書14が格納される記憶媒体は必ずしも書き換え可能である必要はないが、データベース15が格納される記憶媒体は書き換え可能である必要がある。
【0016】
要求処理部11は、構造化文書検索装置10とクライアント端末30とのインタフェース処理部を構成しており、当該クライアント端末30からの検索要求及び格納要求など、データベース15への要求を受け付ける。要求処理部11は、受け付けた要求の種別を判別し、その判別結果に応じて当該要求を格納処理部12または検索処理部13へ渡す。
【0017】
格納処理部12は、格納要求を解析し、要求された構造化文書をデータベース15に格納する。格納処理部12は、同義語ハンドリング部121及びファイル入出力部122を含む。同義語ハンドリング部121は、同義語辞書14を参照して、詳細を後述する同義語検索用の構造インデックス(同義語構造テンプレート)を生成する。ファイル入出力部122は、同義語ハンドリング部121によって生成された構造インデックス(同義語構造テンプレート)及びクライアント端末30から要求された構造化文書(構造化文書データ)をデータベース15に格納する。ここでは、構造化文書は、XML文書であるものとする。
【0018】
検索処理部13は、検索要求を解析し、検索要求を満足する検索結果を生成する。検索処理部13は、同義語ハンドリング部131及びファイル入出力部132を含む。同義語ハンドリング部131は、同義語辞書14を参照して、詳細を後述する同義語検索用の検索式を生成する。ファイル入出力部132は、同義語ハンドリング部131によって生成された検索式に従ってデータベース15にアクセスして検索結果を取得する。検索結果は、要求処理部11に渡された後、当該要求処理部11から要求元のクライアント端末30に返される。
【0019】
構造化文書検索装置10内の要求処理部11、格納処理部12及び検索処理部13は、計算機にインストールされた特定のソフトウェアプログラムを当該計算機が読み取って実行することにより実現される。このプログラムは、コンピュータで読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード(頒布)されても構わない。
【0020】
ここで、同義語検索用の構造インデックスについて説明する。本実施形態では、クライアント端末30からの検索要求に対して、データベース15に格納されたXML文書を高速に検索する技術である構造インデックスを利用する。構造インデックスとは、XML文書をデータベースに格納する際に、その文書の構造情報を抽出後、構造テンプレート化し、それと実際のデータベース中の位置を示すレコードを、一意に割り振られたテンプレートIDにより関連付けて索引化する技術である。そのため、データベース15には、構造インデックスファイルが格納される。本実施形態で適用される構造インデックスファイルは、図1に示す、構造インデックス管理ブロック151と同義語構造テンプレート管理ブロック152とから構成される。また、構造インデックス管理ブロック151は、図1に示すように、構造テンプレート管理ブロック151aと構造ポスティングエリア151bとから構成される。これらの各ブロックについては後述する。
【0021】
図2にデータベース15に格納される4つのXML文書41乃至44の例を示す。図3に、図2のXML文書41乃至44に対応した構造インデックス管理ブロック151内の構造テンプレート管理ブロック151a及び構造ポスティングエリア151bのデータ構造例を示す。構造テンプレート管理ブロック151aは、図3(a)に示すように、テンプレートIDと、当該IDが割り当てられたXML文書のタグ構造の雛形を示す構造テンプレートとの対の集合(リスト)である。一方、構造ポスティングエリア151bは、図3(b)に示すように、テンプレートIDと、当該IDが割り当てられた構造テンプレートのデータベース15内の位置を示す位置情報との対の集合(リスト)である。ここで、位置情報はページ番号とページ内位置の情報とから構成される。データベース15内におけるXML文書の格納単位はページと呼ばれる。図3(b)の例では、1ページ目に、図2(a)のXML文書41が、2ページ目に、図2(b)のXML文書42が、それぞれ格納されていることを示す。また、図3(b)の例では、3ページ目に、図2(c)のXML文書43が、4ページ目に、図2(d)のXML文書44が、それぞれ格納されていることを示す。ここでは、XML文書内の各構造テンプレートが格納されるページ内位置は、当該XML文書の先頭側から順に割り当てられている。しかし、実際には、このような順序で割り当てられる必要はない。
【0022】
本実施形態では、図3に示した構造インデックス管理ブロック151(構造インデックス)を用いることで、実際のデータにアクセスすることなく、テンプレート上の走査だけで、“//金属/金”などのタグ構造を指定した検索を高速に行うことが可能となる。特に本実施形態では、構造インデックスを利用して、タグの同義語を用いた検索を実現する。更に具体的に述べるならば、構造インデックス中の構造テンプレートから生成される、同義語を対象とした検索を実施するために必要な同義語構造テンプレートを利用して、タグの同義語を用いた検索(XPath検索)を実現する。
【0023】
同義語構造テンプレートとは、構造テンプレート内のタグ(の表記)を同義語グループIDに置き換えたもので、構造テンプレートと1対1の関係にある。ここでは、同義語ハンドリング部121が、テンプレートID=iに固有の構造テンプレートで示される構造に同義語辞書を適用することで、その構造内のタグが、対応する同義語グループに固有の同義語グループIDに置き換えられた同義語構造テンプレートが生成される。生成された同義語構造テンプレートは、テンプレートID=iに対応付けられる。同義語辞書14の構造、同義語グループ及び同義語グループIDについては後述する。
【0024】
以下、同義語ハンドリング部121による同義語構造テンプレート生成処理について、図4のフローチャートを参照して説明する。
まず、クライアント端末30からの要求に従い、格納処理部12内のファイル入出力部122によって、データベース15へのXML文書の登録またはデータベース15内のXML文書の更新が行われたものとする(ステップS1)。この場合、格納処理部12内の同義語ハンドリング部121は、データベース15に格納されている構造テンプレート管理ブロック151aを参照し、ファイル入出力部122によって登録または更新操作されたXML文書内に、当該構造テンプレート管理ブロック151aに未登録の新しいタグ構造が含まれているか否かを判定する(ステップS2)。
【0025】
もし、新しいタグ構造が含まれていないならば、同義語ハンドリング部121は、すべての構造テンプレートに対応する同義語構造テンプレート生成処理が既に完了していると判断し、処理を終了する。一方、新しいタグ構造が含まれているならば、同義語ハンドリング部121は、構造テンプレート管理ブロック151aに新しいタグ構造に関する情報、つまり構造テンプレートを追加して、その構造テンプレート内に存在するタグを洗い出す(ステップS3)。この追加された構造テンプレートが、同義語構造テンプレート生成処理の対象となる。
【0026】
ここで、同義語構造テンプレート生成処理の対象について、図5を参照して説明する。図5(a)は、同義語構造テンプレート生成処理の対象となる構造テンプレートの第1の例を示す。この第1の例は、構造テンプレート管理ブロック151aに新しいタグ構造に関する情報(構造テンプレート)が初めて登録された場合を想定している。この状態では、同義語構造テンプレート管理ブロック152は空である。この場合、構造テンプレート管理ブロック151a内のすべての構造テンプレート(図5(a)の例ではテンプレートID1〜5のすべての構造テンプレート)が同義語構造テンプレート生成処理の対象となる。
【0027】
図5(b)は、同義語構造テンプレート生成処理の対象となる構造テンプレートの第2の例を示す。この第2の例は、構造テンプレート管理ブロック151a内に既に構造テンプレート(ここではテンプレートID1〜4の構造テンプレート)が格納されていて、更に当該構造テンプレートに対応する同義語構造テンプレートが同義語構造テンプレート管理ブロック152に追加された後に、新しい構造に関する情報(ここでは、テンプレートID5〜8の構造テンプレート)が構造テンプレート管理ブロック151aに追加された場合を想定している。この場合、構造テンプレート管理ブロック151aに追加された構造テンプレート(つまりテンプレートID5〜8の構造テンプレート)が生成対象となる。
【0028】
さて、同義語ハンドリング部121は、追加された構造テンプレート内に存在するタグを洗い出すと(ステップS3)、格納処理用同義語検索手段として機能し、その洗い出されたタグを1つ取り出して、同義語辞書14から、そのタグが含まれる同義語グループのID(同義語グループID)を検索する(ステップS4)。この検索を同義語検索と呼ぶ。
【0029】
同義語辞書14の一例を図6に示す。図6の同義語辞書14では、共通の概念を持つ表記の集合が同義語グループ(概念グループ)として管理される。このように、本実施形態で適用される同義語辞書14で管理される同義語は、当該同義語本来の「意味が同じ語」というよりも、「概念が共通する語」という意味合いが強い。勿論、「意味が同じ語」という本来の意味を持つ同義語毎に、グループ分けして管理される同義語辞書を用いることも可能である。図6の同義語辞書14は、予め定められた同義語グループ(概念グループ)毎に、そのグループに属する代表的な1つの表記を同義語グループ(概念グループ)名として、そのグループ名(同義語グループ名)と、その同義語グループに一意に割り当てられた同義語グループIDと、そのグループに属する同義語の表記とから構成される。
【0030】
同義語ハンドリング部121は、タグによる同義語検索の結果、ただ1つの同義語グループIDが取得されたならば、つまり同義語グループIDが一意に決定できたならば(ステップS5の“=1”の場合)、同義語構造テンプレート生成手段として機能して、同義語構造テンプレート生成のために、当該タグを、決定された同義語グループIDに変換(置換)する(ステップS7)。
【0031】
次に、同義語検索の結果、複数の同義語グループIDが取得されたならば(ステップS5の“=N>1”の場合)、同義語ハンドリング部121はステップS6に進む。このステップS6において、同義語ハンドリング部121は、問い合わせ手段として機能して、同義語検索に用いられたタグが、取得された複数の同義語グループIDで示される複数の同義語グループのうちのいずれのグループに所属するタグであるかを、要求処理部11によってユーザに問い合わせる。この問い合わせは、取得された複数の同義語グループIDの一覧を、要求処理部11によりクライアント端末30に送信させて、当該端末30に表示させることにより実現される。同義語ハンドリング部121は、この問い合わせの結果、複数の同義語グループIDの中から1つの同義語グループIDがユーザによって選択(指定)されると、再び同義語構造テンプレート生成手段として機能して、同義語検索に用いられたタグを、この選択された同義語グループIDに変換(置換)する(ステップS7)。
【0032】
また、同義語検索の結果、同義語辞書14内に該当する同義語グループが存在せず、したがって同義語グループIDを取得できなかったならば(ステップS5の“=0”の場合)、同義語ハンドリング部121は該当するタグをそのまま残す。
【0033】
同義語ハンドリング部121は、上述のステップS4から始まる処理を、ステップS3で取得したすべてのタグに対して繰り返す(ステップS8)。このステップS4から始まる処理の繰り返しにより、構造テンプレート管理ブロック151aに追加された構造テンプレート中のタグが対応する同義語グループに固有の同義語グループIDに置き換えられた同義語構造テンプレートが生成される。すると、同義語ハンドリング部121は同義語構造テンプレート追加手段として機能して、ステップS4から始まる処理の繰り返しによって取得される同義語グループIDを含むすべての同義語構造テンプレートを、同義語構造テンプレート管理ブロック152に追加する(ステップS9)。同義語構造テンプレートは、図5(b)に示されているように、構造テンプレート中のタグが、そのタグが所属する同義語グループに固有の同義語グループIDに置き換えられたものである。
【0034】
図7は、同義語構造テンプレート管理ブロック152の一例を示す。この例は、図5(a)の構造テンプレート管理ブロック151a内の構造テンプレートから、図6の同義語辞書14を使用して同義語構造テンプレートを生成し、同義語構造テンプレート管理ブロック152に追加した場合を示している。ここで、図3(a)中の“金”タグについては、図6の同義語辞書14を用いて同義語検索すると、“金銭”グループ(ID:3)と“金”グループ(ID:5)の2つの同義語グループに所属する表記であることから、2つの同義語グループIDが得られる。この場合、ユーザに「どちらのグループに所属するか」が問い合わされる。図7では、ユーザから「“金”タグは“金”グループ(ID:5)に所属する」と指定された場合を想定している。また、図7の例では、同義語構造テンプレート管理ブロック152内で同義語グループIDが割り当てられていない“技報”タグが存在する。これは、同義語検索した際に同義語グループIDが割り当てられなかったことを示す。
【0035】
次に、図4のフローチャートに従って生成された同義語構造テンプレートを含む同義語構造テンプレート管理ブロック152を利用して行われる、タグの同義語を対象とした検索処理について、図8のフローチャートを参照して説明する。
【0036】
まず、クライアント端末30から構造化文書検索装置10に対し、ネットワーク20を介してタグの同義語も検索対象としたXPath検索要求が送られたものとする(ステップS11)。この検索要求は構造指定情報としてのXPath式を含む。この検索要求は、要求処理部11で受け付けられて、検索処理部13に渡される。検索処理部13内の同義語ハンドリング部131は、検索要求に含まれているXPath式から、当該XPath式に記述されているタグをすべて洗い出す(ステップS12)。すると、同義語ハンドリング部131は検索処理用同義語検索手段として機能し、洗い出されたタグを1つ取り出して、同義語辞書14から、そのタグが含まれる同義語グループのID(同義語グループID)を検索する(ステップS13)。
【0037】
同義語ハンドリング部131は、XPath式内のタグによる同義語検索の結果、同義語グループIDが一意に決定できたならば(ステップS14の“=1”の場合)、構造指定情報生成手段として機能して、構造指定情報の生成(つまり同義語検索用のXPath式の生成)のために当該タグを同義語グループIDに変換(置換)する(ステップS16)。
【0038】
次に、同義語検索の結果、複数の同義語グループIDが取得されたならば(ステップS14の“=N>1”の場合)、同義語ハンドリング部131はステップS15に進む。このステップS15において、同義語ハンドリング部131は、問い合わせ手段として機能して、取得された複数の同義語グループIDで示される複数の同義語グループのうちのいずれのグループで検索するかを、要求処理部11によってユーザに問い合わせる。この問い合わせは、取得された複数の同義語グループIDの一覧を、要求処理部11によりクライアント端末30に送信させて、当該端末30に表示させることにより実現される。同義語ハンドリング部131は、この問い合わせの結果、複数の同義語グループIDの中から1つの同義語グループIDがユーザによって選択(指定)されると、再び構造指定情報生成手段として機能して、同義語検索に用いられたタグを、この選択された同義語グループIDに変換(置換)する(ステップS16)。
【0039】
また、同義語検索の結果、同義語辞書14内に該当する同義語グループが存在せず、したがって同義語グループIDを取得できなかったならば(ステップS14の“=0”の場合)、同義語ハンドリング部131は該当するタグをそのまま残す。
【0040】
同義語ハンドリング部131は、上述のステップS13から始まる処理を、ステップS12で取得したすべてのタグに対して繰り返す(ステップS17)。このステップS13から始まる処理の繰り返しにより、クライアント端末30からの検索要求に含まれているXPath内のタグが同義語グループIDに置き換えられた、同義語検索のための新たなXPath(つまり、同義語グループIDが適用された検索条件)が生成されることになる。するとファイル入出力部132は、同義語構造テンプレート検索手段として機能して、この新たなXPath、即ち同義語グループIDが適用された検索条件で、同義語構造テンプレート管理ブロック152の中から同義語構造テンプレートを検索する(ステップS18)。検索の結果、検索条件にマッチした同義語構造テンプレートが存在する場合には、ファイル入出力部132は取得手段として機能して、その同義語構造テンプレートに関連付けられたテンプレートIDを用いて、データベース15から実際のデータを取得する(ステップS19)。ここではファイル入出力部132は、検索条件にマッチした同義語構造テンプレートに関連付けられたテンプレートIDを用いて、データベース15内の構造インデックス管理ブロック151の構造ポスティングエリア151b(図3(b)参照)を検索することで、当該テンプレートIDに対応付けられている構造ポスティングエリア151bの情報(位置情報)を取得する。そして、この位置情報(ページ番号とページ内位置とを示す情報)をもとに、ファイル入出力部132はデータベース15内の実際のデータにアクセスする。
【0041】
次に、上述したタグの同義語を対象とした検索処理の具体例について説明する。ここでは、“/書籍/金/標題”のXPathに対してタグの同義語を対象とした検索を要求するXPath検索要求がクライアント端末30から構造化文書検索装置10に出された場合を想定している。また、この検索に、図6の同義語辞書14と図7の同義語構造テンプレート管理ブロック152とを利用するものとする。
【0042】
まず、“/書籍/金/標題”は、“書籍”タグ、“金”タグ及び“標題”タグからなる。“/書籍/金/標題”内の各タグについて、図6の同義語辞書14を用いて同義語検索すると、“書籍”タグに対しては“本”グループのID(ID:1)が、“金”タグに対しては“金銭”グループのID(ID:3)及び“金”グループのID(ID:5)が、そして“標題”タグに対しては“標題”グループのID(ID:7)が、それぞれ取得される。このように、“金”タグについては、複数のグループIDが取得される。そこで、ユーザに「どちらのグループに所属するか」が問い合わされる。ここでは、ユーザから「”金”タグは“金銭”グループ(ID:3)に所属する」と指定された場合を想定している。この場合、“/書籍/金/標題”内の、書籍”タグ、“金”タグ及び“標題”タグは、それぞれ“本”グループの同義語グループID(ID:1)、“金銭”グループの同義語グループID(ID:3)及び“標題”グループの同義語グループID(ID:7)にそれぞれ置き換えられる。つまり、これらの同義語グループIDを利用して、XPath式“/書籍/金/標題”から、新たなXPath式“/ID:1/ID:3/ID:7”が生成される。この新たなXPath式と図7の同義語構造テンプレート管理ブロック152とを利用した検索の実行により、テンプレートID:3が割り当てられた同義語構造テンプレートがマッチすることを確認できる。そこでファイル入出力部132は、このテンプレートID:3を用いて、図3の構造インデックス管理ブロック151内の構造ポスティングエリア151bを検索し、対応する構造ポスティングエリア151bの情報、即ち(ページ番号=1,ページ内位置=3)及び(ページ番号=1,ページ内位置=5)を取得する。ファイル入出力部132は、この情報をもとに、実際のデータにアクセスすることにより、図2(a)のXML文書41に含まれている
<タイトル>効率的な資産運用</タイトル>
<タイトル>解説!外国為替レート</タイトル>
の2件を検索結果として取得する。この検索結果は、要求処理部11によってクライアント端末30に返されて、当該クライアント端末30に表示される。なお、上述した“/書籍/金/標題”のXPathで通常の検索を行うと、検索件数は0件となる。
【0043】
このように本実施形態においては、構造テンプレート管理ブロック151a内の構造テンプレート及びXPath式(第1の構造指定情報)から、同義語辞書14を利用して、当該構造テンプレート及びXPath式に含まれているタグ(タグ表記)が対応する同義語グループIDに置き換えられた、同義語構造テンプレート及び新たなXPath式(第2の構造指定情報)がそれぞれ生成される。そして、生成された同義語構造テンプレートを含む同義語構造テンプレート管理ブロック152と生成されたXPath式とを用いて検索が実施される。これにより、タグの同義語を対象としたXPath検索ができるので、文書毎に異なるタグ名の揺らぎを吸収することができる。また、複数の同義語グループに所属するタグが構造テンプレート、或いはXPath式内に存在する場合に、どの同義語グループを利用するかをユーザに選択させることで、無駄なヒットを少なくし効率的に結果を取得することができる。
【0044】
<変形例>
上記実施形態では、XPath式内のすべてのタグが、当該タグの同義語を対象としたXPath検索の対象となる場合を前提としている。そこで、XPath検索時に、同義語を利用して検索したいタグをユーザから指定可能とした、上記実施形態の変形例について説明する。ここでは、データベース15内には、上記図4のフローチャートに従って生成された同義語構造テンプレートを含む図7の同義語構造テンプレート管理ブロック152が格納されているものとする。
【0045】
以下、図7の同義語構造テンプレート管理ブロック152を利用して行われる、ユーザにより指定されたタグの同義語を対象とした検索処理について、図9のフローチャートを参照して説明する。
【0046】
まず、クライアント端末30から構造化文書検索装置10に対し、ネットワーク20を介してタグの同義語も検索対象としたXPath検索要求が送られたものとする(ステップS21)。このXPath検索要求は、検索条件として指定するXPath式内に同義語検索されるべきタグを指定する手段を含む。例えば、“/bib/book/library”というXPathh式のうち、“book”タグだけ同義語検索したい場合には、“/bib/synonym(book)/library”というように、同義語検索を行う旨をXPath内に指定する、XPath式内での指定の他に、同義語検索されるべきタグを別のパラメータで渡すことによっても、同義語検索されるべきタグを指定可能である。
【0047】
構造化文書検索装置10内の同義語ハンドリング部131は、上記実施形態と同様に、要求処理部11によって検索要求として受け付けられたXPath式内のすべてのタグを同義語グループIDに変換(置換)する(ステップS22)。このステップS22の処理は、図7のフローチャートのステップS12乃至S17と同様の処理手順によって実現される。次に同義語ハンドリング部131は、上記実施形態と同様に同義語構造テンプレート検索手段として機能して、XPath(第1の構造指定情報)内のタグが同義語グループIDに置き換えられた新たな検索条件(第2の構造指定情報)で、同義語構造テンプレート管理ブロック152の中から同義語構造テンプレートを検索して該当するテンプレートID(つまり、検索条件にマッチした同義語構造テンプレートに関連付けられたテンプレートID)を取得する(ステップS23)。
【0048】
すると同義語ハンドリング部131は、ユーザによって指定されたタグについてのみ同義語検索を行う処理に入る。まず、同義語ハンドリング部131は、ステップS23で取得されたテンプレートIDを1つ取り出し、そのテンプレートIDが割り当てられている構造テンプレートを図3の構造インデックス管理ブロック151から取得する(ステップS24)。
【0049】
次に同義語ハンドリング部131は、クライアント端末30からの検索要求で指定された検索条件(つまり、元の検索条件)のうちの、同義語検索されるべきタグを除く文書構造部分(つまり、同義語検索対象となっていない文書構造部分)と、取得された構造テンプレート中の対応する文書構造部分とが一致するかどうかのチェックを行う(ステップS25)。もし、元の検索条件中の同義語検索対象となっていない構造部分と構造テンプレート中の対応する構造部分とが一致しているならば(ステップS26)、同義語ハンドリング部131は、その構造テンプレートは検索結果に該当するものと判断する。この場合、同義語ハンドリング部131は、その構造テンプレートを、検索条件にマッチした構造であるとして、そのID(テンプレートID)を保存する(ステップS27)。一方、同義語検索対象となっていないタグが1つでも不一致の場合には、同義語ハンドリング部131は、その構造テンプレートは検索結果に該当するものではないと判断する。この場合、同義語ハンドリング部131は、該当する構造テンプレートを捨てる。そして、未処理のテンプレートIDが存在するならば(ステップS28)、同義語ハンドリング部131は次のテンプレートIDへと処理を移す(ステップS24)。
【0050】
このようにして同義語ハンドリング部131は、ステップS24から始まる処理を、ステップS23で取得したすべてのテンプレートIDについて繰り返す。そして、すべてのテンプレートIDのチェックを終えたならば(ステップS28)、その時点で保存されているすべてのテンプレートIDを用いて、データベース15からデータを取得する(ステップS29)。
【0051】
次に、上述した指定されたタグの同義語を対象とした検索処理の具体例について説明する。ここでは、“/マガジン/マネー/標題”のXPathに対して、“標題”のみを同義語検索の対象として指定したXPath検索要求がクライアント端末30から構造化文書検索装置10に出された場合を想定している。また、この検索に、図6の同義語辞書14と図7の同義語構造テンプレート管理ブロック152とを利用するものとする。更に、同義語検索の対象となるタグの指定方法に、上述のXPath内のタグに対して直接指定する方法が適用されるものとする。この場合、“/マガジン/マネー/標題”のXPathに代えて、“/マガジン/マネー/synonym(標題)”で表されるXPathが用いられる。
【0052】
まず、“/マガジン/マネー/synonym(標題)”は“マガジン”タグ、“マネー”タグ及び“標題”タグからなる。この“/マガジン/マネー/synonym(標題)”内の各タグについて同義語検索すると、“マガジン”タグに対しては“雑誌”グループのID(ID:2)が、、“マネー”タグに対しては“金銭”グループのID(ID:3)が、そして“標題”タグに対しては“標題”グループのID(ID:7)が、それぞれ取得される。この場合、“/マガジン/マネー/synonym(標題)”内の、“マガジン”タグ、“マネー”タグ及び“標題”タグは、それぞれ“雑誌”グループの同義語グループID(ID:2)、“金銭”グループの同義語グループID(ID:3)及び“標題”グループの同義語グループID(ID:7)に置き換えられる。つまり、同義語検索で取得された同義語グループIDを利用して、XPath式“/マガジン/マネー/synonym(標題)”から、新たな検索条件“/ID:2/ID:3/ID:7”が生成される。そして、この新たな検索条件“/ID:2/ID:3/ID:7”を利用して、以下の検索処理が行われる。
【0053】
まず、図7の同義語構造テンプレート管理ブロック152を対象に、“/ID:2/ID:3/ID:7”で同義語構造テンプレートが検索される。この例では、テンプレートID:7が割り当てられた同義語構造テンプレートと、テンプレートID:16が割り当てられた同義語構造テンプレートとが、それぞれ“/ID:2/ID:3/ID:7”にヒットする。そこで同義語ハンドリング部131は、テンプレートID:7及びID:16が同義語検索で一致(マッチ)したことを保存する。
【0054】
次に同義語ハンドリング部131は、図3の構造インデックス管理ブロック151から、テンプレートID:7の構造(構造テンプレート)を取得する。テンプレートID:7の構造は、“/雑誌/お金/題名”である。この場合、同義語ハンドリング部131は、“/雑誌/お金/題名”が、変換前のXPathである“/マガジン/マネー/synonym(標題)”内の3つのタグのうち、同義語検索が指定されていない“マガジン”、“マネー”の2つのタグとは一致(マッチ)しないことを確認する。したがって、テンプレートID:7の構造は捨てられる。続いて同義語ハンドリング部131は、図3の構造インデックス管理ブロック151から、テンプレートID:16の構造を取得する。テンプレートID:16の構造は、“/マガジン/マネー/タイトル”である。この場合、同義語ハンドリング部131は、“/マガジン/マネー/タイトル”が、変換前のXPath中で同義語検索指定されていない“マガジン”、“マネー”の2つのタグとマッチすることを確認する。そこで同義語ハンドリング部131は、このテンプレートID:16を用いて、構造インデックス管理ブロック151内の構造ポスティングエリア151bを検索し、当該エリア151bの情報をもとに、実際のデータにアクセスする。その結果、図2(d)のXML文書44に含まれている
<タイトル>株入門</タイトル>
の1件が検索結果として取得される。なお、“/マガジン/マネー/synonym(標題)”のXPathで通常の検索を行うと、検索件数は0件となる。
【0055】
このように上記実施形態の変形例においては、XPath検索時に同義語を利用して検索したいタグを指定可能とすることで、上記実施形態よりも効率的な検索が可能となる。
【0056】
上記実施形態では、構造化文書検索装置10内に同義語辞書14及びデータベース15が設けられている。しかし、同義語辞書14及びデータベース15を構造化文書検索装置10から独立させて、例えばネットワークを介して構造化文書検索装置10内の格納処理部12及び検索処理部13からアクセス可能な構成とすることも可能である。この場合、同義語辞書14及びデータベース15を、複数の構造化文書検索装置10で共有することも可能である。
【0057】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【0058】
【図1】本発明の一実施形態に係る構造化文書検索システムの構成を示すブロック図。
【図2】図1中のデータベース15に格納される4つのXML文書41乃至44の例を示す図。
【図3】図2のXML文書41乃至44に対応した構造インデックス管理ブロック151内の構造テンプレート管理ブロック151a及び構造ポスティングエリア151bのデータ構造例を示す図。
【図4】同実施形態における同義語構造テンプレート生成処理の手順を示すフローチャート。
【図5】同義語構造テンプレート生成処理の対象を説明するための図。
【図6】図1中の同義語辞書14の一例を示す図。
【図7】同義語構造テンプレート管理ブロック152の一例を示す図。
【図8】同実施形態におけるタグの同義語を対象とした検索処理の手順を示すフローチャート。
【図9】同実施形態の変形例における指定されたタグの同義語を対象とした検索処理の手順を示すフローチャート。
【符号の説明】
【0059】
10…構造化文書検索装置、11…要求処理部、12…格納処理部、13…検索処理部、14…同義語辞書、15…データベース、20…ネットワーク、30…構造化文書検索クライアント端末、41〜44…XML文書、151…構造インデックス管理ブロック、151a…構造テンプレート管理ブロック、151b…構造ポスティングエリア、152…同義語構造テンプレート管理ブロック。

【特許請求の範囲】
【請求項1】
クライアント端末から与えられる、タグを含む任意の文書構造部分を指定する第1の構造指定情報を利用した検索要求に応じて、構造化文書が格納されたデータベースから対応する構造化文書中の文書構造部分を検索する構造化文書検索装置において、
タグ構造の雛形とこの雛形を示すIDとから成る複数の構造テンプレートを記憶する構造テンプレート記憶手段と、
タグの同義語をグループ化した同義語グループ毎に、この同義語グループに固有の同義語グループIDとこの同義語グループに所属するタグの表記とを記憶する同義語辞書と、
前記同義語辞書を参照して、前記第1の構造指定情報に含まれるタグについて、当該タグが所属する同義語グループの同義語グループIDを検索する検索処理用同義語検索手段と、
前記検索処理用同義語検索手段の検索結果に基づいて、前記第1の構造指定情報に含まれるタグが対応する同義語グループの同義語グループIDに置き換えられた第2の構造指定情報を生成する構造指定情報生成手段と、
前記構造テンプレート記憶手段が記憶する各構造テンプレートに含まれるタグを、当該タグが所属する同義語グループの同義語グループIDに置き換えられた同義語構造テンプレートを記憶する同義語構造テンプレート記憶手段と、
前記同義語構造テンプレート記憶手段を参照して、前記第2の構造指定情報と一致する同義語構造テンプレートを検索する同義語構造テンプレート検索手段と、
前記同義語構造テンプレート検索手段によって検索された同義語構造テンプレートに対応する構造テンプレートで示される構造化文書中の文書構造部分を前記データベースから取得する取得手段と
を具備することを特徴とする構造化文書検索装置。
【請求項2】
前記検索処理用同義語検索手段によって、1つのタグにつき複数の同義語グループIDが検索された場合、前記クライアント端末のユーザに対して、当該複数の同義語グループIDで示される同義語グループの中から当該タグを処理すべき同義語グループを選択させる問い合わせを行う問い合わせ手段を更に具備し、
前記構造指定情報生成手段は、前記複数の同義語グループIDに対応する、前記第1の構造指定情報に含まれるタグを、ユーザによって選択された同義語グループの同義語グループIDに置き換える
ことを特徴とする請求項1記載の構造化文書検索装置。
【請求項3】
前記クライアント端末からの要求に従う前記データベースへの構造化文書の格納処理または前記データベース内の構造化文書の更新処理に応じて、前記構造テンプレート記憶手段に存在しない新たな文書構造部分に対応する構造テンプレートが当該構造テンプレート記憶手段に追加された場合、当該追加された構造テンプレートに含まれているタグについて、前記同義語辞書から、当該タグが所属する同義語グループに固有の同義語グループIDを検索する格納処理用同義語検索手段と、
前記格納処理用同義語検索手段の検索結果に基づいて、前記追加された構造テンプレートに含まれるタグが対応する同義語グループの同義語グループIDに置き換えられた同義語構造テンプレートを生成する同義語構造テンプレート生成手段と、
前記同義語構造テンプレート生成手段によって生成された同義語構造テンプレートを前記同義語構造テンプレート記憶手段に追加する同義語構造テンプレート追加手段と
を更に具備することを特徴とする請求項1記載の構造化文書検索装置。
【請求項4】
前記格納処理用同義語検索手段によって、1つのタグにつき複数の同義語グループIDが検索された場合、前記クライアント端末のユーザに対して、当該複数の同義語グループIDで示される同義語グループの中から当該タグを処理すべき同義語グループを選択させる問い合わせを行う問い合わせ手段を更に具備し、
前記同義語構造テンプレート生成手段は、前記複数の同義語グループIDに対応する前記構造テンプレートに含まれるタグをユーザによって選択された同義語グループの同義語グループIDに置き換える
ことを特徴とする請求項3記載の構造化文書検索装置。
【請求項5】
前記第1の構造指定情報に含まれているタグのうち同義語検索されるべきタグが前記検索要求によって個別に指定されている場合、前記同義語構造テンプレート検索手段によって検索された同義語構造テンプレート毎に、前記第1の構造指定情報中の同義語検索されるべきタグを除く文書構造部分と当該同義語構造テンプレートに対応する構造テンプレートのうちの該当する文書構造部分とが一致するかを判定する判定手段を更に具備し、
前記取得手段は、前記判定手段によって一致していると判定された構造テンプレートで示される、構造化文書中の文書構造部分のみを、前記データベースから取得する
ことを特徴とする請求項1記載の構造化文書検索装置。
【請求項6】
クライアント端末から与えられる、タグを含む任意の文書構造部分を指定する第1の構造指定情報を利用した検索要求に応じて、構造化文書が格納されたデータベースから対応する構造化文書中の文書構造部分を検索する構造化文書検索方法において、
タグ構造の雛形とこの雛形を示すIDとから成る複数の構造テンプレートを記憶する構造テンプレート記憶ステップと、
タグの同義語をグループ化した同義語グループ毎に、この同義語グループに固有の同義語グループIDとこの同義語グループに所属するタグの表記とを同義語辞書として記憶する同義語辞書記憶ステップと、
前記同義語辞書を参照して、前記第1の構造指定情報に含まれるタグについて、当該タグが所属する同義語グループの同義語グループIDを検索する検索処理用同義語検索ステップと、
前記検索処理用同義語検索ステップの検索結果に基づいて、前記第1の構造指定情報に含まれるタグが対応する同義語グループの同義語グループIDに置き換えられた第2の構造指定情報を生成する構造指定情報生成ステップと、
前記構造テンプレート記憶ステップで記憶された各構造テンプレートに含まれるタグを、当該タグが所属する同義語グループの同義語グループIDに置き換えられた同義語構造テンプレートとして記憶する同義語構造テンプレート記憶ステップと、
前記同義語構造テンプレート記憶ステップで記憶された同義語構造テンプレートを参照して、前記第2の構造指定情報と一致する同義語構造テンプレートを検索する同義語構造テンプレート検索ステップと、
前記同義語構造テンプレート検索ステップによって検索された同義語構造テンプレートに対応する構造テンプレートで示される構造化文書中の文書構造部分を前記データベースから取得する取得ステップと
を具備することを特徴とする構造化文書検索方法。
【請求項7】
前記第1の構造指定情報に含まれているタグのうち同義語検索されるべきタグが前記検索要求によって個別に指定されている場合、前記同義語構造テンプレート検索ステップによって検索された同義語構造テンプレート毎に、前記第1の構造指定情報中の同義語検索されるべきタグを除く文書構造部分と当該同義語構造テンプレートに対応する構造テンプレートのうちの該当する文書構造部分とが一致するかを判定する判定ステップを更に具備し、
前記取得ステップでは、前記判定ステップによって一致していると判定された構造テンプレートで示される、構造化文書中の文書構造部分のみが、前記データベースから取得される
ことを特徴とする請求項6記載の構造化文書検索方法。
【請求項8】
データベースに格納されている構造化文書に含まれているタグ構造の雛形とこの雛形に割り当てられたIDとを対応付けて格納された構造テンプレートと、
タグの同義語をグループ化した同義語グループ毎に、この同義語グループに所属するタグ表記の集合が、当該同義語グループに割り当てられた同義語グループIDに対応付けて格納された同義語辞書と、
前記構造テンプレート毎に、当該構造テンプレートに含まれているタグを当該タグが所属する同義語グループに割り当てられた同義語グループIDに置き換えることにより生成された同義語構造テンプレートに、当該構造テンプレートに割り当てられたテンプレートIDを対応付けて格納された同義語構造テンプレートと
を有する構造化文書検索のためのデータを記憶した記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2006−92316(P2006−92316A)
【公開日】平成18年4月6日(2006.4.6)
【国際特許分類】
【出願番号】特願2004−277888(P2004−277888)
【出願日】平成16年9月24日(2004.9.24)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】