(57)【要約】【課題】構造化文書データに含まれる要素を指定するために行う設定の負担を軽減する。【解決手段】階層化された論理構造を用いて要素を保持する構造化文書に対して要素を特定するパス式と、該パス式により特定された要素に対して指定／指定解除を定義する指定情報とが対応付けられたフィルタデータを格納する格納部と、フィルタデータのパス式に基づいて、構造化文書からパス式に合致する要素を取得する取得部と、パス式と対応付けられていた記述子を取得する指定取得部と、取得した前記指定情報から、要素を指定するか指定解除するか判定する要素判定部と、判定された要素に指定又は指定解除を行う指定部と、を備える。【選択図】        図５
2008084128.tif 000002
【特許請求の範囲】
【請求項１】
階層化された論理構造を用いて要素を保持する構造化文書に対して要素を特定する構造パス式と、該構造パス式により特定された要素に対して指定／指定解除を定義する指定情報とが対応付けられた要素指定対応情報を格納する格納部と、
前記要素指定対応情報の前記構造パス式に基づいて、前記構造化文書から前記構造パス式に合致する要素を取得する取得部と、
前記要素の取得に用いた前記構造パス式と対応付けられていた前記指定情報を前記要素指定対応情報から取得する指定取得部と、
取得した前記指定情報から、前記要素を指定するか指定解除するかを判定する要素判定部と、
判定された要素に対して、判定に従って指定又は指定解除を行う指定部と、
を備えることを特徴とする構造化文書の要素指定装置。
【請求項２】
前記記憶部は、前記要素指定対応情報にて、前記構造パス式毎に順位付けがなされており、
前記順位に従い、当該順位の前記構造パス式を用いて前記取得部と、前記指定取得部と、前記要素判定部と、前記指定部との処理を繰り返すこと、
を特徴とする請求項１に記載の構造化文書の要素指定装置。
【請求項３】
前記指定部は、指定が行われた前記要素に対して、要素を識別する識別情報を付加することを特徴とする請求項１又は２に記載の構造化文書の要素指定装置。
【請求項４】
前記指定部は、指定が行われた前記要素に対して、前記構造化文書における前記要素の位置を示すパス情報を、前記識別情報として付加することを特徴とする請求項３に記載の構造化文書の要素指定装置。
【請求項５】
前記識別情報が付加された前記要素に格納された実体情報と、前記識別情報とを対応付けた検索索引を生成する検索索引生成部を、さらに備えたことを特徴とする請求項３又は４に記載の構造化文書の要素指定装置。
【請求項６】
生成された前記検索索引を使用して、前記構造化文書に格納された要素を検索する検索処理部を、さらに備えたことを特徴とする請求項５に記載の構造化文書の要素指定装置。
【請求項７】
前記記憶部は、前記要素指定対応情報において、前記要素の実体情報に対する種別を設定する索引種別情報を、さらに対応付けて記憶し、
前記指定部は、指定すると判定された前記要素に対して、当該要素を特定するために使用された前記構造パス式と対応付けられた索引種別情報をさらに指定すること、
を特徴とする請求項１乃至６のいずれか一つに記載の構造化文書の要素指定装置。
【請求項８】
前記要素の実体情報に対して、設定された索引種別情報が適切であるか否か確認する確認部を、さらに備えたことを特徴とする請求項７に記載の構造化文書の要素指定装置。
【請求項９】
前記要素毎に設定された索引種別情報毎に、前記要素に格納された実体情報を検索するための検索索引を生成する検索索引生成部を、さらに備えたことを特量とする請求項７又は８に記載の構造化文書の要素指定装置。
【請求項１０】
前記要素指定対応情報の入力を受け付ける受付部をさらに備え、
前記受付部は、入力を受け付けた前記要素指定対応情報を、前記格納部に出力すること、
を特徴とする請求項１乃至９のいずれか一つに記載の構造化文書の要素指定装置。
【請求項１１】
前記取得部は、前記要素指定対応情報の前記構造パス式に基づいて、前記構造化文書から、前記構造パス式と一致する一つ又は複数の要素からなる構造化情報を取得し、
前記要素判定部は、取得した前記指定情報から、前記構造化情報を指定するか指定解除するか判定し、
前記指定部は、前回指定又は指定解除が行われた結果取得した中間構造化情報に対して、判定された前記構造化情報の結合又は削除を行い、この結果取得した前記構造化情報に含まれる各要素に対して指定が行われたと処理すること、
を特徴とする請求項１乃至１０のいずれか一つに記載の構造化文書の要素指定装置。
【請求項１２】
前記格納部は、前記要素指定対応情報において、前記構造パス式を相対パスで記述可能であること、
を特徴とする請求項１乃至１１のいずれか一つに記載の構造化文書の要素指定装置。
【請求項１３】
要素指定の対象となった構造化文書データを格納する構造化文書格納部と、
指定された要素を含む構造化文書データを、前記構造化文書格納部に格納する処理を行う格納処理部と、をさらに備えることを特徴とする請求項１乃至１２のいずれか一つに記載の構造化文書の要素指定装置。
【請求項１４】
階層化された論理構造を用いて要素を保持する構造化文書に対して要素を特定する構造パス式と、該構造パス式により特定された要素に対して指定／指定解除を定義する指定情報とが対応付けられた要素指定対応情報を取得する対応情報取得ステップと、
取得した前記要素指定対応情報の前記構造パス式に基づいて、前記構造化文書から前記構造パス式に合致する要素を取得する取得ステップと、
前記要素の取得に用いた前記構造パス式と対応付けられていた前記指定情報を前記要素指定対応情報から取得する指定取得ステップと、
取得した前記指定情報から、前記要素を指定するか指定解除するかを判定する要素判定ステップと、
判定された要素に対して、判定に従って指定又は指定解除を行う指定ステップと、
を有することを特徴とする構造化文書の要素指定方法。
【請求項１５】
構造化文書に含まれる要素を指定する要素指定プログラムであって、
階層化された論理構造を用いて要素を保持する構造化文書に対して要素を特定する構造パス式と、該構造パス式により特定された要素に対して指定／指定解除を定義する指定情報とが対応付けられた要素指定対応情報を取得する対応情報取得ステップと、
取得した前記要素指定対応情報の前記構造パス式に基づいて、前記構造化文書から前記構造パス式に合致する要素を取得する取得ステップと、
前記要素の取得に用いた前記構造パス式と対応付けられていた前記指定情報を前記要素指定対応情報から取得する指定取得ステップと、
取得した前記指定情報から、前記要素を指定するか指定解除するかを判定する要素判定ステップと、
判定された要素に対して、判定に従って指定又は指定解除を行う指定ステップと、
をコンピュータに実行させる構造化文書の要素指定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、階層化された論理構造を用いて要素が格納された構造化文書から、条件に一致した要素を指定する構造化文書の要素指定装置、要素指定方法及び要素指定プログラムに関するものである。
【背景技術】
【０００２】
構造化文書は、所定の記号を用いて構造化された要素を内包し、構造により各要素の論理的な関係（文書論理構造）を保持する文書である。構造化文書を記述するメタ言語の例として、ＳＧＭＬ（Standard Generalized Mark-up Language）や、Ｗ３Ｃ（World Wide Web Consortium）で定められ、近年急速に普及が進んでいるＸＭＬ（eXtensible Markup Language）がある。
【０００３】
そして、構造化文書を管理するために構造化文書データベースが使用されている。この構造化文書データベースは、構造化文書が保持する要素の論理的な関係を表す情報を管理する。そして、利用者が構造化文書の構造を検索条件として設定した場合、この情報を検索時に使用することで、精度の高い検索を実現する。
【０００４】
そして、検索条件として構造が設定された場合に高速に検索を行うために、構造化文書管理データベースが、構造化文書の各階層又は要素に対して予め索引を生成しておき、検索時に当該索引を利用する技術がある。
【０００５】
例えば、特許文献１には、構造化データ検索装置が索引データ記憶部を備えている。この索引データ記憶部は、テキストデータと、当該テキストデータを含む構造化文書中の各要素を示したオブジェクトＩＤとを対応付けて記憶している。
【０００６】
ところで、構造化文書は、通常の文書特比べて、複雑な構造を保持することができる。また、索引情報を生成するためには、通常は、あらかじめ検索時に使用すると考えられる要素等のみを対象に索引情報を生成する。
【０００７】
つまり、索引を設定するために、索引として設定される要素を、構造を用いて要素単位で明示的に指定する必要がある。このような構造を用いて要素単位で明示的に指定する場合、一般的にはスキーマ言語やアドレッシング言語を使用する。
【０００８】
【特許文献１】特開２００５−１９０１６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、構造化文書は文書毎に構造が異なることが多い。例えば、ＸＭＬは、文書の論理構造や構成要素の名前を自由に定義する事が可能なので、文書毎に構造が大きく異なることも多い。
【００１０】
そして、これら構造化文書に対して、従来のスキーマ言語を用いて、索引情報の生成対象となる要素を指定するためには、利用者が、当該構造化文書毎の構造を予め知り、索引生成する対象となる要素を記述する必要があるため、利用者に対する負担が大きいという問題があった。
【００１１】
本発明は、上記に鑑みてなされたものであって、要素を指定する際の利用者の負担を軽減することができる構造化文書の要素指定装置、要素指定方法及び要素指定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明は、構造化文書の要素指定装置であって、階層化された論理構造を用いて要素を保持する構造化文書に対して要素を特定する構造パス式と、該構造パス式により特定された要素に対して指定／指定解除を定義する指定情報とが対応付けられた要素指定対応情報を格納する格納部と、前記要素指定対応情報の前記構造パス式に基づいて、前記構造化文書から前記構造パス式に合致する要素を取得する取得部と、前記要素の取得に用いた前記構造パス式と対応付けられていた前記指定情報を前記要素指定対応情報から取得する指定取得部と、取得した前記指定情報から、前記要素を指定するか指定解除するかを判定する要素判定部と、判定された要素に対して、判定に従って指定又は指定解除を行う指定部と、を備えることを特徴とする。
【００１３】
また、本発明は、構造化文書の要素指定方法であって、階層化された論理構造を用いて要素を保持する構造化文書に対して要素を特定する構造パス式と、該構造パス式により特定された要素に対して指定／指定解除を定義する指定情報とが対応付けられた要素指定対応情報を取得する対応情報取得ステップと、取得した前記要素指定対応情報の前記構造パス式に基づいて、前記構造化文書から前記構造パス式に合致する要素を取得する取得ステップと、前記要素の取得に用いた前記構造パス式と対応付けられていた前記指定情報を前記要素指定対応情報から取得する指定取得ステップと、取得した前記指定情報から、前記要素を指定するか指定解除するかを判定する要素判定ステップと、判定された要素に対して、判定に従って指定又は指定解除を行う指定ステップと、を有することを特徴とする。
【００１４】
また、本発明は、構造化文書に含まれる要素を指定する要素指定プログラムであって、構造化文書に含まれる要素を指定する要素指定プログラムであって、階層化された論理構造を用いて要素を保持する構造化文書に対して要素を特定する構造パス式と、該構造パス式により特定された要素に対して指定／指定解除を定義する指定情報とが対応付けられた要素指定対応情報を取得する対応情報取得ステップと、取得した前記要素指定対応情報の前記構造パス式に基づいて、前記構造化文書から前記構造パス式に合致する要素を取得する取得ステップと、前記要素の取得に用いた前記構造パス式と対応付けられていた前記指定情報を前記要素指定対応情報から取得する指定取得ステップと、取得した前記指定情報から、前記要素を指定するか指定解除するかを判定する要素判定ステップと、判定された要素に対して、判定に従って指定又は指定解除を行う指定ステップと、をコンピュータに実行させる。
【発明の効果】
【００１５】
本発明によれば、要素指定対応情報を用いて構造化文書が保持する要素の指定と指定解除を行うことで、構造パス式のみで要素を指定するより柔軟性が向上するので、要素を指定するために行われる利用者の設定の負担が軽減されるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、この発明にかかる構造化文書の要素指定装置、要素指定方法及び要素指定プログラムの最良な実施の形態を詳細に説明する。後述する実施形態においては、構造化文書の要素指定装置を構造化文書管理装置に適用した例について説明する。なお、構造化文書の要素指定装置は、構造化文書管理装置以外の様々な装置に対して適用することができる。
【００１７】
（第１の実施の形態）
図１は、第１の実施の形態にかかる構造化文書管理装置１００の構成を示すブロック図である。本図に示すように、構造化文書管理装置１００は、入出力処理部１０１と、検索処理部１０２と、フィルタ処理部１０３と、検索索引生成部１０４と、データ格納処理部１０５と、データ削除処理部１０６と、構造テンプレート格納部１０７と、索引格納部１０８と、構造化文書データ格納部１０９とを備える。
【００１８】
また、構造化文書データは、どのような形式のものでも良いが、例えば、ＳＧＭＬ、ＸＭＬ、そのサブセットであるＸＨＴＭＬ（eXtensible HyperText Markup Language）形式等記述された文書データがある。また、本実施の形態は、構造化文書管理装置１００がＸＭＬ形式で記述された構造化文書に対して処理を行った例について説明する。
【００１９】
図２は、構造化文書管理装置１００の処理対象となる構造化文書データの例を示した図である。図２で示した構造化文書データは、ＸＭＬ形式で記述されている。このＸＭＬ形式で記述された構造化文書データは、対になったタグにより要素を形成している。この対になったタグを開始タグと終了タグとする。また、内部にタグを含んでいない要素を、データ要素とする。
【００２０】
そして、構造化文書データは、これらの複数の要素により、入れ子の構造をなしている。図２においては、要素“bib”は要素“book"を含み、要素“book”は、“title”、“author”等を含んでいる。また、要素“title”の直下にデータ要素を含んでいる。このデータ要素の実体データは“How to live in Japan"となる。
【００２１】
また、ＸＭＬ形式では、図２で示す例では要素“author”が２つの要素“author”を含むように、要素の内部に同じ要素を複数並べる事ができる。また、ＸＭＬ形式では、直下に要素を持たない要素を記述することもできる。図２で示す例では、要素“rates”が該当する。
【００２２】
図１に戻り、入出力処理部１０１は、処理要求受付部１１１と、要求処理部１１２と、フィルタ決定部１１３と、結果処理部１１４とを備え、構造化文書管理装置１００に対して入出力されるデータを処理する。
【００２３】
処理要求受付部１１１は、外部から構造化文書管理装置１００に対して、入力された要求や情報を受け付ける。例えば、処理要求受付部１１１は、利用者からの検索要求、管理対象となる構造化文書データ又はフィルタデータの入力を受け付ける。
【００２４】
また、フィルタデータは、構造化文書データが保持する要素を指定するためのルールが記載されているものであり、詳細については後述する。
【００２５】
要求処理部１１２は、入力された構造化文書データを、木構造と実体データに分解する処理を行う。
【００２６】
図３は、図２に示した構造化文書データを分解した木構造の概念を示した説明図である。図３で示された円形は要素とし、方形はデータ要素とし、要素及びデータ要素間を結ぶリンクはアークとする。
【００２７】
フィルタ決定部１１３は、フィルタ格納部１１５を備え、フィルタデータが入力された場合、フィルタ格納部１１５にフィルタデータを格納し、当該フィルタデータから構造化文書データの要素を指定するためのルールを、部分木処理部１２２に出力する。フィルタ格納部１１５は、構造化文書データに対してフィルタリングを行うためのフィルタデータを格納する。
【００２８】
図４は、フィルタ格納部１１５に格納されたフィルタデータのデータ構造の例を示した図である。このフィルタデータの各行には、構造化文書データの要素の指定／指定解除を行うためのルールが記述子として格納されている。各ルールは、図４に示すようにルール番号と、記述子と、構造パス式と、索引種類とが対応付けられている。本実施の形態にかかる構造化文書管理装置１００では、これらルールを用いて、構造化文書データの要素を指定する。なお、詳細な処理手順については後述する。なお、フィルタデータは、換言すれば要素指定対応情報に相当する。
【００２９】
また、図４に示すパス式では、要素間の記号“/"は、要素の直下の要素を示し、要素間の記号“//”は、要素以下の全ての要素を示している。このように要素間の記号を使い分けることで、要素の指定が容易となり、利用者の負担を軽減させることができる。
【００３０】
図４に示すフィルタデータは、利用者が『abstractタグ以下と、numbersタグ以下を除いて語彙索引を設定し、numbersタグ以下のratesタグを除く全ての要素に数値索引を設定したい』と考えた場合に記述されたフィルタデータとする。
【００３１】
ルール番号は、当該ルールを適用するための順序を保持する。また、記述子は、当該ルールが、フィルタとして通すか否かを保持する。記述子が“ＰＡＳＳ”であればフィルタとして通す、結果として要素が指定される。また、記述子が“ＲＥＪＥＣＴ”であればフィルタとして通さない、結果として要素の指定が解除される。索引種類は、検索索引のタイプを示している。索引種類が“ｌｅｘ”であれば、文字列として索引生成され、索引種類が“ｎｕｍ”であれば、数値として索引生成される。
【００３２】
図１に戻り、結果処理部１１４は、構造化文書管理装置１００において行った処理の結果を出力する。例えば、結果処理部１１４は、利用者からの要求に応じて行われた検索処理部１０２が行った検索結果を、利用者に対して出力する。
【００３３】
検索処理部１０２は、利用者からの検索要求を受け付けた場合に、構造テンプレート格納部１０７又は構造化文書データ格納部１０９に対して検索を行う。また、検索対象の索引を索引格納部１０８が保持している場合、当該索引を利用して検索を行う。
【００３４】
フィルタ処理部１０３は、構造パス式処理部１２１と、部分木処理部１２２とを備えている。
【００３５】
構造パス式処理部１２１は、構造化文書データ格納部１０９に格納されていた構造化文書データ又は構造テンプレート格納部に格納されていた構造テンプレートを取得し、構造化文書データ等から木構造と実体データに分解し、部分木処理部１２２に出力する。
【００３６】
部分木処理部１２２は、取得部１２３と、指定取得部１２４と、要素判定部１２５と、指定部１２６と、を備え、構造化文書データの木構造と実体データから、フィルタデータに記述されたルールに基づいて構造化文書データの要素を指定する処理を行う。
【００３７】
取得部１２３は、フィルタ決定部１１３から入力されたルールに記述されたパス式に基づいて、入力された構造化文書データの木構造から、パス式に合致する部分木を取得する。
【００３８】
なお、既に前回行われた処理により、指定された要素を保持する中間結果の部分木が生成されている場合、取得部１２３はこの中間結果の部分木と、取得した部分木とを比較する。そして、取得部１２３は、今回取得した部分木のうち中間結果の部分木に含まれない要素で構成される第１の分割部分木と、取得した部分木のうち中間結果の部分木に含まれる要素で構成される第２の部分木とを取得する。
【００３９】
指定取得部１２４は、取得部１２３の部分木の取得に用いたパス式と対応付けられた記述子を取得する。なお、この記述子は、フィルタ決定部１１３から入力される。
【００４０】
要素判定部１２５は、指定取得部１２４が取得した記述子が“ＰＡＳＳ”か“ＲＥＪＥＣＴ”であるか判定する。“ＰＡＳＳ”であれば、取得した部分木に含まれる要素が指定の対象となり、“ＲＥＪＥＣＴ”であれば、取得した部分木に含まれる要素が指定解除の対象となる。
【００４１】
指定部１２６は、判定された部分木に含まれる要素に対して指定又は指定解除を行う。本実施の形態では、指定部１２６は、判定結果が“ＰＡＳＳ”であれば、前回までに行われた中間結果の部分木に対して、第１の分割部分木と結合処理を行う。また、指定部１２６は、判定結果が“ＲＥＪＥＣＴ”であれば、前回までに行われた中間結果の部分木から、第２の分割部分木の削除処理を行う。なお、結合又は削除の対象となる部分木の各要素には、今回の処理で用いたパス式と対応付けられていた索引種類と、当該要素を示すパス情報が付加されている。この付加されたパス情報は、当該要素を識別する識別情報としても用いられる。
【００４２】
確認部１２７は、フィルタデータの各ルールを適用する度に、結合又は削除した後の部分木に矛盾があるか否か確認を行う。
【００４３】
また、確認部１２７は、フィルタデータの全てのルールを適用した後に、最終的に得られた部分木が、各索引処理部に出力するために適切なものであるか確認する。例えば、確認部１２７は、当該部分木が“Ｖａｌｉｄ”であるかを判別する処理を行う。また、確認部１２７は、各要素に付加された索引種類と実体データに矛盾がないか確認する。なお、“Ｖａｌｉｄ”とは、well-formed(整形式)なＸＭＬ形式の条件を満たすとともに、個別のＤＴＤにも適合していることをいう。
【００４４】
また、確認部１２７が“Ｖａｌｉｄ”であるか判別するのは、データベースシステムとその索引の種類によっては、例えば「特定の索引を設定する要素は、全てルート要素から辿れなければならない」「数値の索引を設定する要素には、数字以外のデータは含まれてはならない」「属性値については索引を設定できない」などの制限が存在する場合があるためである。
【００４５】
確認部１２７が、上述した確認処理を行うことで、部分木に適切な要素が含まれている場合に限り、索引が生成される。このため、生成された索引の信頼性が向上する。そして、この確認で問題が無ければ、検索索引生成部１０４に出力される。
【００４６】
検索索引生成部１０４は、語彙索引生成部１４１と数値索引生成部１４２とを備える。検索索引生成部１０４が、索引を生成することで、構造化文書データが保持する要素の検索を高速化することができる。
【００４７】
語彙索引生成部１４１は、構造化文書データのうち、フィルタ処理部１０で索引種類“ｌｅｘ”が付加された要素に対して索引を生成し、生成した索引を語彙索引格納部１３１に格納する。
【００４８】
数値索引生成部１４２は、構造化文書データのうち、フィルタ処理部１０で索引種類“ｎｕｍ”が付加された要素に対して索引を生成し、生成した索引を数値索引格納部１３２に格納する。
【００４９】
データ格納処理部１０５は、入力された構造化文書データを構造化文書データ格納部１０９に格納し、当該構造化文書データから利用者が利用する部分木が抽出されていた場合には当該部分木を構造テンプレート格納部１０７に格納する。
【００５０】
データ削除処理部１０６は、利用者からの要求により構造化文書データ格納部１０９に格納された構造化文書データの削除、又は構造テンプレート格納部１０７に格納された部分木データの削除を行う。
【００５１】
構造テンプレート格納部１０７は、構造テンプレートデータを格納している。構造テンプレートデータは、入力された構造化文書データから、利用者が利用する必要な部分木のみ抽出した構造データとする。
【００５２】
索引格納部１０８は、語彙索引格納部１３１と、数値索引格納部１３２とを備え、構造化文書データに対して生成された索引を格納している。
【００５３】
語彙索引格納部１３１は、フィルタ処理部１０３から入力された部分木に含まれる要素のうち、索引種類“ｌｅｘ”が付加された要素に対して語彙索引を生成し、語彙索引格納部１３１に格納する。また、語彙索引格納部１３１は、この語彙索引を生成するために、当該要素に付加されたパス情報を利用する。
【００５４】
数値索引格納部１３２は、フィルタ処理部１０３から入力された部分木に含まれる要素のうち、索引種類“ｎｕｍ”が付加された要素に対して数値索引を生成し、数値索引格納部１３２に格納する。また、数値索引格納部１３２は、この数値索引を生成するために、当該要素に付加されたパス情報を利用する。
【００５５】
構造化文書データ格納部１０９は、構造化文書データを格納している。なお、格納手法については、周知の手法を問わず、あらゆる手法を用いても良い。
【００５６】
次に、図１に示す構造化文書管理装置１００の入力された構造化文書データに対する索引を生成するまでの処理手順について説明する。図５は、構造化文書管理装置１００の入力された構造化文書データに対する索引を生成するまでの処理手順を示すフローチャートである。なお、索引を生成するための要素を指定するフィルタデータは、すでにフィルタ格納部１１５に格納されているものとする。
【００５７】
まず、要求処理部１１２は、入力された構造化文書データを分解して、当該構造化文書データの木構造と実体化データを取得する（ステップＳ５０１）。なお、取得した構造化文書データの木構造と実体データは、フィルタ処理部１０３に出力する。
【００５８】
次に、フィルタ決定部１１３は、フィルタ格納部１１５に格納されているフィルタデータのうち最初のルールを、フィルタ処理部１０３に出力する（ステップＳ５０２）。
【００５９】
そして、取得部１２３は、構造化文書データの木構造を検索し、入力されたルールに示されたパス式の条件に合致する部分木を取得する（ステップＳ５０３）。
【００６０】
次に、取得部１２３は、中間結果の部分木があれば、取得した部分木と比較して、分割部分木を取得する（ステップＳ５０４）。つまり、取得部１２３は、今回取得した部分木のうち中間結果の部分木に含まれない要素で構成される第１の分割部分木と、取得した部分木のうち中間結果の部分木に含まれる要素で構成される第２の部分木とを取得する。なお、中間結果の部分木がない場合、取得した部分木全てが第１の分割部分木となり、第２の分割部分木は存在しないことになる。
【００６１】
そして、指定取得部１２４は、入力されたルールに示された記述子を取得する（ステップＳ５０５）。次に、要素判定部１２５が、取得した記述子が“ＰＡＳＳ”であるか否か判定する（ステップＳ５０６）。
【００６２】
そして、要素判定部１２５が、取得した記述子が“ＰＡＳＳ”だと判定した場合（ステップＳ５０６：Ｙｅｓ）、指定部１２６は、中間結果の部分木に第１の分割部分木を結合し、新たな中間結果の部分木を取得する（ステップＳ５０７）。
【００６３】
そして、要素判定部１２５が、取得した記述子が“ＲＥＪＥＣＴ”だと判定した場合（ステップＳ５０６：Ｎｏ）、指定部１２６は、中間結果の部分木から第２の分割部分木を削除して、新たな中間結果の部分木を取得する（ステップＳ５０８）。なお、中間結果の部分木がない場合、特に処理を行わない。
【００６４】
次に、取得部１２３は、入力されたパス式で文書データの木構造を全て検索したか判断する（ステップＳ５０９）。全ての木構造を検索していないと判断した場合（ステップＳ５０９：Ｎｏ）、再び取得部１２３は、木構造の検索を行う（ステップＳ５０３）。
【００６５】
また、全ての木構造を検索したと判断した場合（ステップＳ５０９：Ｙｅｓ）、確認部１２７が、中間結果である部分木の整合性の確認処理を行う（ステップＳ５１０）。確認処理に成功した場合、特に処理を行わない。確認処理に失敗した場合、異常状態とみなして、利用者に対してその旨を通知する等の処理を行う。
【００６６】
次に、フィルタ決定部１１３が、フィルタデータに含まれる全てのルールを出力したか判定する（ステップＳ５１１）。全てのルールを出力していないと判定した場合（ステップＳ５１１：Ｎｏ）、フィルタ決定部１１３は、次のルールを、フィルタ処理部１０３に出力する（ステップＳ５１２）。
【００６７】
そして、フィルタ決定部１１３が、フィルタデータに含まれる全てのルールを出力したと判定した場合（ステップＳ５１１：Ｙｅｓ）、確認部１２７は、部分木に対する最終確認処理を行う（ステップＳ５１３）。確認処理に成功した場合及び失敗した場合の処理はステップＳ５１０で説明した場合と同様とする。
【００６８】
次に、語彙索引生成部１４１は、取得した部分木のうち索引種類が“ｌｅｘ”の要素を用いて索引を生成し、生成した索引を語彙索引格納部１３１に格納する（ステップＳ５１４）。
【００６９】
そして、数値索引生成部１４２は、取得した部分木のうち索引種類が“ｎｕｍ”の要素を用いて索引を生成し、生成した索引を数値索引格納部１３２に格納する（ステップＳ５１５）。
【００７０】
上述した処理手順では、入力された構造化文書データに対して索引を付加する処理について説明した。しかしながら、索引を生成する場合、既に構造化文書データ格納部１０９に格納される構造化文書等に対して索引を生成する場合も考えられ、この場合についても同様の処理を行うことで索引を生成することができる。
【００７１】
次に、フィルタデータの各ルールに従って要素が結合／削除される部分木について説明する。なお、ルール毎に行われる処理は、図５に示したので説明を省略する。
【００７２】
図６は、図４で示したフィルタデータのルール番号‘１’のルールを、図３で示した構造化文書データに適用した後の中間結果の部分木の概念を示した図である。この図４のフィルタデータに記述されたルール番号‘１’のパス式（ＸＰａｔｈ式）「／／ｔｅｘｔ（）」は、「ルート要素以下の全てのデータ要素」を意味している。また、ルール番号‘１’では、パス式に合致した部分木に付加される索引種類は“ｌｅｘ”である。そこで、部分木処理部１２２は、図６に示すように、ルート要素以下の全てのデータ要素に“ｌｅｘ”が付加された部分木を取得する。また、当該ルールの記述子が“ＰＡＳＳ”でまだ中間結果の部分木が保持されていないので、この部分木が中間結果の部分木となる。なお、パス式に合致する部分木に含まれる各要素は、（図示しないが）パス情報が付加されている。なお、以下の図についても同様にパス式に合致する部分木に含まれる各要素にはパス情報が付加されているものとする。
【００７３】
さらに、図３で示した構造化文書データの木構造に対して、図５で示したフィルタデータの各ルールを適用していく。次に、部分木処理部１２２は、ルール番号‘２’のルールを、図３に示した構造化文書データの木構造に対して適用する。パス式が「／ｂｉｂ／ｂｏｏｋ／ａｂｓｔｒａｃｔ/Ｔｅｘｔ（）」なので、要素“bib"の直下の要素“book"の直下の要素“abstract”の直下のデータ要素が、部分木となる。また、ルール番号‘２’のルールの記述子“ＲＥＪＥＣＴ”と索引種別“ｌｅｘ”より、図６で示した中間結果の部分木から、索引種別“ｌｅｘ“のデータ要素を削除した部分木が、中間結果の部分木となる。
【００７４】
同様に、ルール番号‘３’のルールを、図３に示した構造化文書データの木構造に対して適用する。パス式が「／／ｎｕｍｂｅｒｓ／／ｔｅｘｔ（）」で、記述子が“ＲＥＪＥＣＴ”で、索引種別“ｌｅｘ”なので、部分木処理部１２２は、ルール番号‘２’のルールを適用した後の中間結果の部分木から、要素“ｎｕｍｂｅｒｓ"以下で、索引種別が“ｌｅｘ”の全てのデータ要素を削除する。
【００７５】
図７は、図４に示すフィルタデータのうちルール番号‘３’までのルールを適用した後の中間結果の部分木の概念を示した図である。図７に示すデータ要素８０１はルール番号‘２’のルールの適用時に索引種別“ｌｅｘ”による指定が解除され、データ要素８０２〜８０５は、ルール番号'３'のルールの適用時に索引種別“ｌｅｘ”による指定が解除されていることとなる。
【００７６】
次に、ルール番号‘４’のルールを、図３に示した構造化文書データの木構造に対して適用する。パス式が「／／ｎｕｍｂｅｒｓ／／ｔｅｘｔ（）」で、記述子が“ＰＡＳＳ”で、索引種別“ｎｕｍ”なので、部分木処理部１２２は、ルール番号‘３’のルールを適用した後の中間結果の部分木と、“ｎｕｍｂｅｒｓ”以下の全てのデータ要素に索引種別“ｎｕｍ”が指定された部分木とを結合する。
【００７７】
図８は、図４に示すフィルタデータのうちルール番号‘４’までのルールを適用した後の中間結果の部分木の概念を示した図である。図８に示すデータ要素９０１〜９０４は、ルール番号‘４’のルールの適用時に索引種別“ｎｕｍ”で指定がなされたこととなる。
【００７８】
次に、ルール番号‘５’のルールを、図３に示した構造化文書データの木構造に対して適用する。パス式が「／／ｒａｔｅｓ／ｔｅｘｔ（）」で、記述子が“ＲＥＪＥＣＴ”で、索引種別“ｎｕｍ”なので、部分木処理部１２２は、ルール番号‘４’のルールを適用した後の中間結果の部分木に対して、要素“rates”の直下で索引種別が“ｎｕｍ”のデータ要素が削除される。これによりフィルタデータの全てのルールの適用が終了した。
【００７９】
図９は、図４に示すフィルタデータの全てのルールを適用した後の部分木の概念を示した図である。図９に示した部分木は、フィルタデータの記述時に利用者が考えた『abstractタグ以下と、ｎｕｍｂｅｒｓタグ以下を除いて語彙索引を設定し、ｎｕｍｂｅｒｓタグ以下のratesタグを除く全ての要素に数値索引を設定したい』という条件を満たしていることが確認できる。なお、データ要素の上部に記述された“ｌｅｘ”はデータ要素が語彙で索引を生成されることを示している。また、“ｎｕｍ”はデータ要素が数値で索引を生成されることを示している。
【００８０】
そして、フィルタ処理部１０３の処理が終了した後、最終的に生成された部分木と実体データの情報が、検索索引生成部１０４に出力される。最終的に生成された部分木が図９で示した部分木の場合、語彙索引生成部１４１は、要素“first”、要素“last”、要素“publisher”、要素“title”の直下のデータ要素に対して語彙索引を付加し、語彙索引格納部１３１に格納する。そして、数値索引生成部１４２は、要素“year”、要素“price”、要素“pages”の直下のデータ要素に対して数値索引を付加し、数値索引格納部１３２に格納する。
【００８１】
このように、本実施の形態にかかる構造化文書管理装置１００においては、フィルタデータに記述されたルールを、構造化文書データの木構造に対して適用し、取得した部分木と記述子を用いて、中間結果の部分木に含まれる要素の指定の増減を行うこととした。
【００８２】
これに対し、従来は、記述子や順序を設定することができなかった。このため、従来の手法で、要素を指定するためには、パス式（例えば、ＸＰａｔｈ式）のみで記載していた。
【００８３】
図１０が、図４で示した本実施の形態のフィルタデータと同等の要素を抽出可能な、従来のフィルタデータのデータ構造を示した図である。図１０に示すように、図４と比べてパス式記述量が２行多いのが確認できる。また、さらに複雑な構造を備える構造化文書データから、要素を抽出する場合に、さらにパス式記述量に違いがでると考えられる。このように、本実施の形態においては、利用者のパス記述量の負担を軽減できる。
【００８４】
また、従来のフィルタデータでは、複雑な条件をパス式として定義する場合、利用者が当該フィルタデータを参照しても、当該フィルタデータの内容を理解するのが難しくなるという問題があった。これに対し、本実施の形態においては、従来のパス式と、記述子により要素の指定／指定解除の組み合わせで、要素を指定している。これにより、フィルタリングの条件の記述量が減少し、フィルタデータの参照時に、フィルタデータの内容を理解するのが容易となった。さらに、パス式と記述子とを組み合わせたルールの使用順序が定義されているので、要素指定するための条件の記述がさらに容易となる。
【００８５】
本実施の形態では、構造化文書管理装置１００が備える構造化文書のデータベースとして索引のタイプを語彙索引及び数値索引の２種類に対して設定した場合について説明した。しかしながら、索引のタイプを制限するものではなく、例えば文書間のリンクを保持するためのリンク索引など、様々な索引のタイプ毎に索引を設定しても良い。
【００８６】
また、本実施の形態で説明したデータ要素は構造化文書データの構成する要素の一つとする。そして、本実施の形態は、検索索引を生成するためにデータ要素を指定するものに限るものではなく、タグ等の構造要素や属性に対して指定を行っても良い。
【００８７】
このようにフィルタに対して“ＰＡＳＳ”と“ＲＥＪＥＣＴ”を組み合わせて要素を指定することで、要素毎に明示的に指定する必要が無くなり、柔軟に対応することが可能となった。特に、上述したルールが定義されたフィルタを、構造の異なる構造化文書データに対して適用する場合、さらに利用者の負担を軽減できるという効果が期待できる。
【００８８】
また、利用者が要素を指定する際の要求をフィルタデータに対して適切にルールとして定義した場合、当該ルールは上述したように柔軟性が高いため、構造が異なる複数の構造化文書や、構造が不明な構造化文書に対して、当該構造化文書データに含まれている要素に対して適切に指定できる可能性がある。
【００８９】
また、要素を指定する際の柔軟に対応できるので、構造化文書の構造が変更された場合に、変更に合わせてスキーマを再定義することが軽減される。またこれらを組み合わせで要素を指定するので、フィルタのもつルールの肥大化を抑止することができる。
【００９０】
（第２の実施の形態）
第１の実施の形態では、ＸＭＬ形式の構造化文書データを一つ登録する例について説明した。第２の実施形態においては、ＸＨＴＭＬ形式の構造化文書データを、複数登録する場合について説明する。
【００９１】
なお、第２の実施の形態にかかる構造化文書管理装置の構成は、第１の実施の形態にかかる構造化文書管理装置１００の構成と同じなので、同一の符号を付加し、説明を省略する。
【００９２】
図１１は、本実施の形態における構造化文書管理装置１００の処理対象となるＸＨＴＭＬ形式の第１の構造化文書データの例を示した図である。図１２は、図１１で示した第１の構造化文書データを分解した木構造の概念を示した説明図である。
【００９３】
図１３は、構造化文書管理装置１００の処理対象となるＸＨＴＭＬ形式の第２の構造化文書データの例を示した図である。図１４は、図１３で示した第２の構造化文書データを分解した木構造の概念を示した説明図である。
【００９４】
これら第１の構造化文書データ及び第２の構造化文書データは、同じ名称のタグで示された要素を保持している。しかし、第１の構造化文書データと、第２の構造化文書データとでは、同じ名称のタグでも出現頻度や構造が異なる。例えば、図１２に示した第１の構造化文書データの木構造では、要素“a”１２０１は、要素“body”の直下にのみ配置されている。これに対し、図１４に示した第２の構造化文書データの木構造では、要素“a”１４０１〜１４０３は、要素“body”の直下のみならず、要素“body”直下の要素“p”の直下、又は要素“body”直下の要素“div”の直下にも配置されている。
【００９５】
ところで、従来の手法では、構造が異なる構造化文書に対して、索引を生成するために要素を指定する場合、要素を指定するために膨大な数のパス式の記述が必要な可能性がある。また、索引を生成する時に全ての要素を絶対パスで指定すると、要素の配置の全てのパターンを考慮して、パス式を記述する必要があり、利用者の負担が大きくなる。しかし、本実施の形態では、索引の生成対象となる要素の配置に規則性があるならば、この規則に従ってフィルタデータにルールを記述することで、全てのパターンを記述する必要が無くなる。また、規則性を相対パスで表現できるならば、相対パスで表現することで、利用者のパス式を記述する負担を軽減させることができる。
【００９６】
例えば、これら構造化文書データに含まれる要素の中に、検索時に検索条件として使用されない要素が含まれている場合がある。例えば、装飾タグ（HTMLでよく用いられる）で示された要素が該当する。装飾タグの例としては、“br”タグがある。この“br”タグは、改行を表現するための装飾タグであり、配下に子の要素を保持しない。また、“p”タグも改行を表現するための装飾タグである。このような装飾タグで示された要素は、索引のみならず構造としても保持する必要が無い場合もある。また、これら装飾タグで示された要素を考慮して、絶対パスで要素を指定する場合、様々な態様を考慮する必要がある。これに対し、相対パスで要素を指定する場合、パス式にこれら装飾タグの要素を考慮せずとも、所望する要素を指定できることが多くなる。
【００９７】
他の例としては、一般的にＨＴＭＬ形式の構造化文書データでは、“title”タグで示された要素の実体データは、当該文書の表題や題名を格納している場合が多い。また、“a”タグで示された要素は、リンク情報を保持する事が多い。これらのタグで示された要素は、検索時に条件として使用されることが多い。このため、これらのタグについては索引を生成したいという要望が多い。しかしながら、“a”タグ等は、構造化文書データ中で記述される階層の自由度が大きいため、これら全ての階層を考慮すると、従来の手法では、さまざまなパス式を記述する必要があった。しかしながら、パス式に相対パスで記述し、記述子“ＰＡＳＳ”と“ＲＥＪＥＣＴ”を組み合わせることで、これら要素を容易に指定することができる。
【００９８】
図１５は、フィルタ格納部１１５に格納されたフィルタデータのデータ構造の例を示した図である。図１５に示すフィルタデータは、図４で示したフィルタデータと同様の構成を備えている。このフィルタデータは、上述した構造化文書データに対して、『文書の持つ“title”タグ直下のデータ要素と、“body”タグ以下で“p"タグ以下ではない“a”タグ直下の全てのデータ要素に対して索引を生成する』することを目的として定義したフィルタとする。
【００９９】
図１６は、図１２に示した第１の構造化文書データの木構造に対して、図１５に示したフィルタデータの全てのルールを適用した後の部分木の概念を示した図である。図１６に示すようにデータ要素１６０１、１６０２に索引種類“ｌｅｘ”が付加されていることが確認できる。
【０１００】
図１７は、図１４に示した第２の構造化文書データの木構造に対して、図１５に示したフィルタデータの全てのルールを適用した後の部分木の概念を示した図である。図１７に示すようにデータ要素１７０１〜１７０３に索引種類“ｌｅｘ”が付加されていることが確認できる。
【０１０１】
このように、図１６及び図１７に示したルール適用した後の部分木は、フィルタデータの目的である『文書の持つ“title”タグ直下のデータ要素と、“body”タグ以下で“p"タグ以下ではない“a”タグ直下の全てのデータ要素に対して索引を生成する』を満足していることが確認できる。
【０１０２】
例えば、従来においては要素を指定するときに「Ａを除く全て」を指定する場合、‘Ａ’以外の全ての条件をパス式で記述する必要があった。しかし、本実施の形態においては、このような条件をルールとして設定できるので、記述の負担が軽減すると共に、フィルタデータを参照するだけで、フィルタデータの記述者の意図を容易に把握できることになる。
【０１０３】
また、従来のフィルタデータでは、構造化文書データに含まれる要素をパス式のみで指定しているので、構造化文書データ毎に構造に違いがある場合、構造化文書データ毎にパス式のパターンを全て列挙する必要があった。しかし、本実施の形態で説明したように、異なる構造の構造化文書データ毎に、異なるパス式を定義する必要が無く、利用者の負担を軽減させることができる。
【０１０４】
図１８は、上述した実施の形態にかかる構造化文書管理装置１００のハードウェア構成を示す図である。構造化文書管理装置１００は、ハードウェア構成として、構造化文書管理装置１００における構造化文書の要素指定プログラムなどが格納されているＲＯＭ１８０２と、ＲＯＭ１８０２内のプログラムに従って構造化文書管理装置１００の各部を制御するＣＰＵ１８０１と、構造化文書管理装置１００の制御に必要な種々のデータを記憶するＲＡＭ１８０３と、ネットワークに接続して通信を行う通信Ｉ／Ｆ１８０４と、構造化文書管理装置１００で処理した結果を表示する表示部１８０５と、利用者が処理の要求などを入力するための入力Ｉ／Ｆ１８０６と、各部を接続するバス１８０７を備えている。また、構造化文書管理装置１００は、上述した構成を備えた、一般的なコンピュータに適用することができる。
【０１０５】
上述した実施の形態にかかる構造化文書管理装置１００で実行される構造化文書の要素指定プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１０６】
この場合には、構造化文書の要素指定プログラムは、構造化文書管理装置１００において上記記録媒体から読み出して実行することにより主記憶装置上にロードされ、上記ソフトウェア構成で説明した各部が主記憶装置上に生成されるようになっている。
【０１０７】
また、上述した実施の形態にかかる構造化文書管理装置１００で実行される構造化文書の要素指定プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上述した実施の形態にかかる構造化文書管理装置１００で実行される構造化文書の要素指定プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１０８】
また、本実施形態の構造化文書の要素指定プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１０９】
本実施の形態の構造化文書管理装置１００で実行される構造化文書の要素指定プログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体から構造化文書の要素指定プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上記各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【０１１０】
以上のように、本発明にかかる構造化文書の要素指定装置、要素指定方法及び要素指定プログラムは、構造化文書データに対して索引を生成する際に、当該構造化文書データに含まれる要素を指定する技術として有用である。
【図面の簡単な説明】
【０１１１】
【図１】第１の実施の形態にかかる構造化文書管理装置の構成を示すブロック図である。
【図２】構造化文書データの例を示した図である。
【図３】構造化文書データを分解した木構造の概念を示した説明図である。
【図４】第１の実施の形態にかかる構造化文書管理装置のフィルタ格納部に格納されたフィルタデータのデータ構造の例を示した図である。
【図５】構造化文書管理装置の入力された構造化文書データに対する索引を生成するまでの処理手順を示すフローチャートである。
【図６】図４で示したフィルタデータのルール番号‘１’のルールを、図３で示した構造化文書データに適用した後の中間結果の部分木の概念を示した図である。
【図７】フィルタデータのうちルール番号‘３’までのルールを適用した後の中間結果の部分木の概念を示した図である。
【図８】フィルタデータのうちルール番号‘４’までのルールを適用した後の中間結果の部分木の概念を示した図である。
【図９】フィルタデータの全てのルールを適用した後の部分木の概念を示した図である。
【図１０】従来のフィルタデータのデータ構造を示した図である。
【図１１】第２の実施の形態における構造化文書管理装置の処理対象となるＸＨＴＭＬ形式の第１の構造化文書データの例を示した図である。
【図１２】第１の構造化文書データを分解した木構造の概念を示した説明図である。
【図１３】第２の実施の形態における構造化文書管理装置の処理対象となるＸＨＴＭＬ形式の第２の構造化文書データの例を示した図である。
【図１４】第２の構造化文書データを分解した木構造の概念を示した説明図である。
【図１５】第２の実施の形態における構造化文書管理装置のフィルタ格納部に格納されたフィルタデータのデータ構造の例を示した図である。
【図１６】図１２に示した第１の構造化文書データの木構造に対して、図１５に示したフィルタデータの全てのルールを適用した後の部分木の概念を示した図である。
【図１７】図１４に示した第２の構造化文書データの木構造に対して、図１５に示したフィルタデータの全てのルールを適用した後の部分木の概念を示した図である。
【図１８】構造化文書管理装置のハードウェア構成を示す図である。
【符号の説明】
【０１１２】
１００  構造化文書管理装置
１０１  入出力処理部
１０２  検索処理部
１０３  フィルタ部
１０４  検索索引生成部
１０５  データ格納処理部
１０６  データ削除処理部
１０７  構造テンプレート格納部
１０８  索引格納部
１０９  構造化文書データ格納部
１１１  処理要求受付部
１１２  要求処理部
１１３  フィルタ決定部
１１４  結果処理部
１１５  フィルタ格納部
１２１  構造パス式処理部
１２２  部分木処理部
１２３  取得部
１２４  指定取得部
１２５  要素判定部
１２６  指定部
１２７  確認部
１３１  語彙索引格納部
１３２  数値索引格納部
１４１  語彙索引生成部
１４２  数値索引生成部
８０１〜８０５、９０１〜９０４、１６０１、１６０２、１７０１〜１７０３  データ要素
１２０１、１４０１〜１４０３  要素“a”
１８０１  ＣＰＵ
１８０２  ＲＯＭ
１８０３  ＲＡＭ
１８０４  通信Ｉ／Ｆ
１８０５  表示部
【図１】
2008084128.tif 000003
【図２】
2008084128.tif 000004
【図３】
2008084128.tif 000005
【図４】
2008084128.tif 000006
【図５】
2008084128.tif 000007
【図６】
2008084128.tif 000008
【図７】
2008084128.tif 000009
【図８】
2008084128.tif 000010
【図９】
2008084128.tif 000011
【図１０】
2008084128.tif 000012
【図１１】
2008084128.tif 000013
【図１２】
2008084128.tif 000014
【図１３】
2008084128.tif 000015
【図１４】
2008084128.tif 000016
【図１５】
2008084128.tif 000017
【図１６】
2008084128.tif 000018
【図１７】
2008084128.tif 000019
【図１８】
2008084128.tif 000020