(57)【要約】【課題】異なるデータ構造の複数の構造化データの中から、所望の構造化データを検索する際には、そのデータ構造に依存することなく（正確な要素名を知る必要なく）、所望の情報データを要素値としてもつ構成要素を含む構造化データを容易に、しかも確実に検索することができる構造化データ検索装置を提供する。【解決手段】記憶手段に記憶された複数の構造化データの構成要素の要素値の種類を推定して、当該構造化データの構成要素と、当該構成要素の要素値に対し推定された種類に対応するラベルとの対応関係を記憶しておく。キーワードとラベルを含む検索要求が入力されたとき、まず、当該検索要求に含まれるラベルに対応する構成要素を上記対応関係から検索し、次に、この検索された構成要素と、当該検索要求に含まれるキーワードを要素値としてもつ構成要素とを含む構造化データを記憶手段に記憶された構造化データの中から検索する。【選択図】    図１
2004164104.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段に記憶された、複数の構成要素からなる階層化されたデータ構造をもつ複数の構造化データの中から、所望の構造化データを検索するための構造化データ検索方法であって、
前記記憶手段に記憶された各構造化データの構成要素の要素値の種類を推定して、前記構造化データの構成要素と、当該構成要素の要素値に対し推定された種類に対応するラベルとの対応関係を表したテーブルを記憶し、
キーワードと前記ラベルを含む検索要求が入力されたとき、まず、当該検索要求に含まれるラベルに対応する構成要素を前記テーブルから検索し、次に、この検索された構成要素と、前記検索要求に含まれるキーワードを要素値としてもつ構成要素とを含む構造化データを前記記憶手段に記憶された構造化データの中から検索し、
この検索された構造化データのうち、少なくとも、前記検索要求に含まれるラベルに対応する構成要素の要素値を検索結果として出力することを特徴とする構造化データ検索方法。
【請求項２】
記憶手段に記憶された、複数の構成要素からなる階層化されたデータ構造をもつ複数の構造化データの中から、所望の構造化データを検索するための構造化データ検索方法であって、
前記記憶手段に記憶された各構造化データの構成要素の要素値の種類を推定して、前記構造化データの構成要素と、当該構成要素の要素値に対し推定された種類に対応するラベルとの対応関係を表したテーブルを記憶し、
自然文の検索要求が入力されたとき、当該検索要求としての自然文に含まれる語から前記ラベルを推定するとともに、キーワードに対応する語を推定した後、まず、この推定されたラベルに対応する構成要素を前記テーブルから検索し、次に、検索された構成要素と、前記推定されたキーワードを要素値としてもつ構成要素とを含む構造化データを前記記憶手段に記憶された構造化データの中から検索し、
この検索された構造化データのうち、少なくとも、前記検索要求から推定されたラベルに対応する構成要素の要素値を検索結果として出力することを特徴とする構造化データ検索方法。
【請求項３】
前記要素値の種類毎に定められた、当該種類に対応する文字の種類や文字の並びを表した文字列のパタンを、当該種類に対応するラベルに対応つけて予め記憶しておき、
各構造化データの構成要素の要素値の種類を推定する際には、当該構成要素の要素値としての文字列の文字の種類や文字の並びと、前記予め記憶されたパタンとを比較して、当該要素値に一致するパタンに対応するラベルを求めることを特徴とする請求項１または２記載の構造化データ検索方法。
【請求項４】
前記検索要求としての自然文に含まれる語の中から前記ラベルを推定するために、前記ラベルと当該ラベルを指定していると推定される語とを対応つけて予め記憶しておき、
前記検索要求としての自然文に含まれる語から前記ラベルを推定する際には、当該自然文から前記記憶された語を探索することにより、前記ラベルを求めることを特徴とする請求項２記載の構造化データ検索方法。
【請求項５】
複数の構成要素からなる階層化されたデータ構造をもつ構造化データを蓄積する蓄積手段と、
この蓄積手段に蓄積された各構造化データの構成要素の要素値の種類を推定する第１の推定手段と、
前記構造化データの構成要素と、当該構成要素の要素値に対し前記第１の推定手段で推定された種類に対応するラベルとの対応関係を表したテーブルを記憶する第１の記憶手段と、
キーワードと前記ラベルを含む検索要求を入力する入力手段と、
この入力手段で入力された前記検索要求に含まれるラベルに対応する構成要素を前記テーブルから検索する第１の検索手段と、
この第１の検索手段で検索された構成要素と、前記検索要求に含まれるキーワードを要素値としてもつ構成要素とを含む構造化データを前記蓄積手段で蓄積された構造化データの中から検索する第２の検索手段と、
この第２の検索手段で検索された構造化データのうち、少なくとも、前記検索要求に含まれるラベルに対応する構成要素の要素値を検索結果として出力する出力手段と、
を具備したことを特徴とする構造化データ検索装置。
【請求項６】
複数の構成要素からなる階層化されたデータ構造をもつ構造化データを蓄積する蓄積手段と、
この蓄積手段に蓄積された各構造化データの構成要素の要素値の種類を推定する第１の推定手段と、
前記構造化データの構成要素と、当該構成要素の要素値に対し前記第１の推定手段で推定された種類に対応するラベルとの対応関係を表したテーブルを記憶する第１の記憶手段と、
自然文の検索要求を入力する入力手段と、
この入力手段で入力された検索要求としての自然文に含まれる語から前記ラベルを推定するとともに、キーワードに対応する語を推定する第２の推定手段と、この第２の推定手段で推定されたラベルに対応する構成要素を前記テーブルから検索する第１の検索手段と、
この第１の検索手段で検索された構成要素と、前記第２の推定手段で推定されたキーワードを要素値としてもつ構成要素とを含む構造化データを前記蓄積手段で蓄積された構造化データの中から検索する第２の検索手段と、
この第２の検索手段で検索された構造化データのうち、少なくとも、前記第２の推定手段で推定されたラベルに対応する構成要素の要素値を検索結果として出力する出力手段と、
を具備したことを特徴とする構造化データ検索装置。
【請求項７】
前記要素値の種類毎に定められた、当該種類に対応する文字の種類や文字の並びを表した文字列のパタンと、当該種類に対応するラベルとを対応つけて記憶する第２の記憶手段をさらに具備し、
前記第１の推定手段は、各構造化データの構成要素の要素値としての文字列の文字の種類や文字の並びと、前記第２の記憶手段に記憶されたパタンとを比較して、当該要素値に一致するパタンに対応するラベルを求めることを特徴とする請求項５または６記載の構造化データ検索装置。
【請求項８】
前記検索要求としての自然文に含まれる語の中から前記ラベルを推定するために、前記ラベルと当該ラベルを指定していると推定される語とを対応つけて記憶する第３の記憶手段をさらに具備し、
前記第２の推定手段は、前記検索要求としての自然文から、前記第３の記憶手段に記憶された語を探索することにより、前記ラベルを求めることを特徴とする請求項６記載の構造化データ検索装置。
【請求項９】
前記第２の推定手段で、前記検索要求としての自然文から推定されたラベルとキーワードに対応する語を表示し、これらを修正する手段をさらに具備したことを特徴とする請求項６記載の構造化データ検索装置。
【請求項１０】
前記第２の検索手段で前記構造化データを検索する際に用いる所定の検索言語で記述された検索要求文を表示し、この検索要求文を修正する手段と、
をさらに具備したことを特徴とする請求項５または６記載の構造化データ検索装置。
【請求項１１】
前記第１の記憶手段に記憶された前記テーブルを表示する手段をさらに具備したことを特徴とする請求項１０記載の構造化データ検索装置。
【請求項１２】
記憶手段に記憶された、複数の構成要素からなる階層化されたデータ構造をもつ複数の構造化データの中から、所望の構造化データを検索するためプログラムであって、
コンピュータに、
前記記憶手段に記憶された各構造化データの構成要素の要素値の種類を推定するステップと、
前記構造化データの構成要素と、当該構成要素の要素値に対し推定された種類に対応するラベルとの対応関係を記憶するステップと、
キーワードと前記ラベルを含む検索要求を入力するステップと
前記検索要求に含まれるラベルに対応する構成要素を前記対応関係から検索する第１の検索ステップと、
この第１の検索ステップで検索された構成要素と、前記検索要求に含まれるキーワードを要素値としてもつ構成要素とを含む構造化データを前記記憶手段に記憶された構造化データの中から検索する第２の検索ステップと、
この第２の検索ステップで検索された構造化データのうち、少なくとも、前記検索要求に含まれるラベルに対応する構成要素の要素値を検索結果として出力するステップと、
を実行させるプログラム。
【請求項１３】
記憶手段に記憶された、複数の構成要素からなる階層化されたデータ構造をもつ複数の構造化データの中から、所望の構造化データを検索するためプログラムであって、
コンピュータに、
前記記憶手段に記憶された各構造化データの構成要素の要素値の種類を推定するステップと、
前記構造化データの構成要素と、当該構成要素の要素値に対し推定された種類に対応するラベルとの対応関係を記憶するステップと、
自然文の検索要求を入力するステップと、
前記検索要求としての自然文に含まれる語から前記ラベルを推定するとともに、キーワードに対応する語を推定する推定ステップと、
この推定ステップで推定されたラベルに対応する構成要素を前記対応関係から検索する第１の検索ステップと、
この第１の検索ステップで検索された構成要素と、前記推定ステップで推定されたキーワードを要素値としてもつ構成要素とを含む構造化データを前記記憶手段に記憶された構造化データの中から検索する第２の検索ステップと、
この第２の検索ステップで検索された構造化データのうち、少なくとも、前記検索要求から推定されたラベルに対応する構成要素の要素値を検索結果として出力するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の構成要素からなる階層化されたデータ構造（論理構造）を持つ構造化データを検索する構造化データ検索装置に関し、特に、構成要素の要素名などのデータ構造が統一されていない様々なデータ構造の構造化データの中から所望の構造化データを検索するための構造化データ検索装置に関する。
【０００２】
【従来の技術】
従来のリレーショナルデータベース管理システム（ＲＤＢＭＳ）ではデータベースの構造が予め定められており、利用者はデータの構造を利用した検索を行なうことができる。例えばある商品データベースにおいて、商品価格を保持するための属性として「ＰＲＩＣＥ」という属性が用意されていれば、データ作成者は商品価格を「ＰＲＩＣＥ」属性に記録し、検索利用者は商品価格を参照するために「ＰＲＩＣＥ」属性を参照すればよい、ということが予め決められている。このような検索を行なうための検索言語としては構造化問い合わせ言語（ＳＱＬ）がある。また、検索利用者がＳＱＬを記述するのではなく、検索利用者は自然言語で検索要求を入力し、システムが検索要求を解釈してＳＱＬに変換する、という技術もある（例えば、特許文献１参照）。この場合も、データベースの構造が既知であるので、自然言語の解釈結果をデータベースの構造に合わせるための知識を予め用意しておくことができる。また、近年注目されている拡張可能なマークアップ言語（ＸＭＬ：ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）を利用したデータベース管理システムではＸＱＵＥＲＹなどの検索言語が用意されている。
【０００３】
複数の構成要素からなる階層化された論理構造をもつ構造化データの１つであるＸＭＬデータでは、構成要素の要素名などのデータ構造は必ずしも予め定められている必要はなく、データ作成者が独自に要素名などのデータ構造を定める（あるいは拡張する）ことができる。ＸＭＬデータでは、上記属性を構成要素の要素名、すなわち、タグとして定義することができる。例えば商品データベースにおいて、商品価格を保持するためのタグは、＜ＰＲＩＣＥ＞タグでも、＜価格＞タグでもよく、さらに、＜ＴＡＧ１＞であってもよい。このように、タグ名は、自由に設定できるため、＜ＴＡＧ１＞など必ずしも内容を表さないタグ名が利用される場合もある。
【０００４】
このため、検索利用者には商品価格がどのタグに記述されているかわからない。また、データを一瞥しただけではデータの構造を知ることは困難である。
【０００５】
このように、従来は、構造化データを検索する際には、検索しようとするユーザは、予め検索したい構造化データの構成要素の要素名などのデータ構造を知る必要があった。ユーザが知り得るデータ構造の範囲内に構造化データの検索を制限することは、ＸＭＬデータを利用するメリットが大きく損われるというものである。
【０００６】
【特許文献１】
特開平５−５４０７８号公報
【０００７】
【発明が解決しようとする課題】
従来の検索手法では、異なるデータ構造の複数の構造化データの中から、所望の構造化データを検索する際には、ユーザは、この異なるデータ構造を全て知る必要があり、従って、所望のデータを要素値としてもつ構成要素を含む構造化データを容易に、しかも確実に検索することが困難であるという問題点があった。
【０００８】
そこで、本発明は上記問題点に鑑み、異なるデータ構造の複数の構造化データの中から、所望の構造化データを検索する際には、そのデータ構造に依存することなく、所望の情報データを要素値としてもつ構成要素を含む構造化データを容易に、しかも確実に検索することができる構造化データ検索方法およびそれを用いた構造化データ検索装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
（１）本発明は、記憶手段に記憶された、複数の構成要素からなる階層化されたデータ構造をもつ複数の構造化データの中から、所望の構造化データを検索するためのものであって、前記記憶手段に記憶された各構造化データの構成要素の要素値の種類を推定して、前記構造化データの構成要素と、当該構成要素の要素値に対し推定された種類に対応するラベルとの対応関係を表したテーブルを記憶し、キーワードと前記ラベルを含む検索要求が入力されたとき、まず、当該検索要求に含まれるラベルに対応する構成要素を前記テーブルから検索し、次に、この検索された構成要素と、前記検索要求に含まれるキーワードを要素値としてもつ構成要素とを含む構造化データを前記記憶手段に記憶された構造化データの中から検索し、この検索された構造化データのうち、少なくとも、前記検索要求に含まれるラベルに対応する構成要素の要素値を検索結果として出力することを特徴とする。
【００１０】
本発明によれば、ユーザは、所望のラベルとキーワードを含む検索要求を入力すれば、当該ラベルに対応する構成要素と当該キーワードを含む構造化データを検索することができる。すなわち、本発明によれば、異なるデータ構造の複数の構造化データの中から、所望の構造化データを検索する際には、そのデータ構造に依存することなく（正確な要素名を知る必要なく、検索したいデータの種類に対応するラベルを指定すれば）、所望の情報データを要素値としてもつ構成要素を含む構造化データを容易に、しかも確実に検索することができる。
【００１１】
好ましくは、前記要素値の種類毎に定められた、当該種類に対応する文字の種類や文字の並びを表した文字列のパタンを、当該種類に対応するラベルに対応つけて予め記憶しておき、各構造化データの構成要素の要素値の種類を推定する際には、当該構成要素の要素値としての文字列の文字の種類や文字の並びと、前記予め記憶されたパタンとを比較して、当該要素値に一致するパタンに対応するラベルを求める。
【００１２】
（２）本発明は、記憶手段に記憶された、複数の構成要素からなる階層化されたデータ構造をもつ複数の構造化データの中から、所望の構造化データを検索するためのものであって、前記記憶手段に記憶された各構造化データの構成要素の要素値の種類を推定して、前記構造化データの構成要素と、当該構成要素の要素値に対し推定された種類に対応するラベルとの対応関係を表したテーブルを記憶し、自然文の検索要求が入力されたとき、当該検索要求としての自然文に含まれる語から前記ラベルを推定するとともに、キーワードに対応する語を推定した後、まず、この推定されたラベルに対応する構成要素を前記テーブルから検索し、次に、検索された構成要素と、前記推定されたキーワードを要素値としてもつ構成要素とを含む構造化データを前記記憶手段に記憶された構造化データの中から検索し、この検索された構造化データのうち、少なくとも、前記検索要求から推定されたラベルに対応する構成要素の要素値を検索結果として出力することを特徴とする。
【００１３】
本発明によれば、ユーザは、どのような構造化データを検索したいのかを自然文で表現した検索要求を入力すれば、実際の検索に用いるためのラベルとキーワードとを当該自然文から推定する。そして、このラベルに対応する構成要素と当該キーワードを含む構造化データを検索する。すなわち、本発明によれば、異なるデータ構造の複数の構造化データの中から、所望の構造化データを検索する際には、そのデータ構造に依存することなく（正確な要素名を知る必要なく、検索したいデータの種類やキーワードなどを表した自然文を入力すれば）、所望の情報データを要素値としてもつ構成要素を含む構造化データを容易に、しかも確実に検索することができる。
【００１４】
好ましくは、前記要素値の種類毎に定められた、当該種類に対応する文字の種類や文字の並びを表した文字列のパタンを、当該種類に対応するラベルに対応つけて予め記憶しておき、各構造化データの構成要素の要素値の種類を推定する際には、当該構成要素の要素値としての文字列の文字の種類や文字の並びと、前記予め記憶されたパタンとを比較して、当該要素値に一致するパタンに対応するラベルを求める。
【００１５】
また、好ましくは、前記検索要求としての自然文に含まれる語の中から前記ラベルを推定するために、前記ラベルと当該ラベルを指定していると推定される語とを対応つけて予め記憶しておき、前記検索要求としての自然文に含まれる語から前記ラベルを推定する際には、当該自然文から前記記憶された語を探索する。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１７】
（第１の実施形態）
第１の実施形態では、構造化データの記述言語としてＸＭＬを用い、構造化データの具体例として複数の店舗が扱う種々の商品の情報を検索する、商品情報検索装置を考える。このような商品情報（構造化データ）は、例えばインターネット上に各店舗が公開しているカタログデータとして収集することができる。このように集められた商品情報は、各店舗毎に構造が異なり、さらにはそれらの構造が予告なく更新されることが考えられる。
【００１８】
図１は、第１の実施形態に係る商品情報検索装置の構成例を示したものである。
【００１９】
構造化データ蓄積部１０１は、ここでは明示しないデータ収集手段によってインターネット上から収集された、ＸＭＬで記述された商品情報データを蓄積する。商品情報データは、複数の構成要素からなる階層化されたデータ構造をもつ構造化データである。各構成要素は、当該構成要素の名称に対応する要素名（タグあるいはタグ名）をもち、要素値として、データ（テキストデータや画像データや音声データ）をもつものもある。
【００２０】
なお、以下の説明において、各構成要素をタグ名あるいはタグで区別して呼ぶことがある。
【００２１】
第１の推定知識保持部１０２は、商品情報データ中の要素値の種類を推定するための推定知識を保持する。
【００２２】
第１の推定部１０３は、第１の推定知識保持部１０２が保持する推定知識を用いて、構造化データ蓄積部１０１に蓄積された商品情報データの構成要素の要素値の種類を推定し、その推定結果を推定結果記憶部１０４に記憶する。推定結果記憶部１０４には、商品情報データの構成要素と、当該構成要素の要旨に対し第１の推定部１０３で推定された種類に対応するラベルとの対応関係を表したテーブルが記憶されている。
【００２３】
検索要求入力部１０５は、ユーザからの検索要求の入力を受け付け、検索要求変換部１０７に送る。
【００２４】
変換知識保持部１０６は、検索要求を検索部１０８が解釈できる検索言語に変換するための変換知識を保持する。ここでは、検索言語として具体的にはＸＱＵＥＲＹ（ＵＲＬ「ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＸＭＬ／Ｑｕｅｒｙ」、「ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｑｕｅｒｙ」）を考える。
【００２５】
検索要求変換部１０７は、変換知識保持部１０６が保持する変換知識を参照して検索要求を検索部１０８が解釈できる検索言語に変換する。
【００２６】
検索部１０８は、検索要求変換部１０７の変換結果である、ＸＱＵＥＲＹで記述された検索命令に基づき、構造化データ蓄積部１０１に蓄積された商品情報データや、後述する推定結果記憶部１０４に記憶された推定結果などの構造化データを検索する。
【００２７】
検索部１０８は、公知技術のＸＭＬデータベース管理システムを用いてもよく、ここでは、検索手法そのものは、本願発明の要旨ではないので、説明は省略する。
【００２８】
検索結果出力部１０９は、検索部１０８での検索結果をユーザに提示するためのものである。
【００２９】
図２は、構造化データ蓄積部１０１に蓄積された、構造化データの一例として、商品情報データの例を図２（ａ）〜（ｄ）のそれぞれに示したものである。
【００３０】
商品情報データは、例えば、図２（ａ）に示すように、ＸＭＬで表現され、収集手段により、各店舗から収集された生データ２１１と、生データを店舗毎に整理するために、例えば収集手段によって付与された、上記生データ以外の整理用データ２０１が含まれている。生データ２１１は、＜データ＞タグで囲まれた部分である。図２（ｂ）〜（ｄ）についても図２（ａ）と同様である。
【００３１】
構造化データ蓄積部１０１には、上記のような複数の構造化データが記憶されている。
【００３２】
図３は、第１の推定知識保持部１０２に保持されている、商品情報データ中の要素値の種類を推定するための推定知識の例を示したものである。
【００３３】
ここでは推定知識をテーブル形式で示しているが、この場合に限らず、推定知識は、例えばＸＭＬを用いて表現されたＸＭＬデータとして、構造化データ蓄積部１０１と同様にして保持することができる。
【００３４】
図３に示す推定知識は、例えばＰｅｒｌ言語（「Ｐｅｒｌプログラミング」Ｌａｒｒｙ  Ｗａｌｌ  ｅｔ  ａｌ．，ソフトバンク株式会社  、ｐｐ．３１−３２参照）を用いて表現されたパタンと、当該パタンに対応するラベルの対になっている。パタンとは、要素値として表されている内容の意味や役割などから分類することのできる種類を、定型化して表したものである。１つの種類に対し１つのラベルが対応し、１つのラベルに対し、１または複数のパタンが対応付けられている。
【００３５】
例えば、推定知識３０１は、「価格」というラベルと、当該ラベル（すなわち、種類）に対応するパタンを対応付けたもので、このパタンは、例えば、「１０００円」や「１，０００円」のように、「１つ以上の数字またはカンマ（，）の列の直後に「円」という文字」という文字列を表したものである。また、推定知識３０２は、上記推定知識３０１と同様、「価格」というラベルと、当該ラベル（すなわち、種類）に対応する他のパタンを対応付けたもので、このパタンでは、例えば、「￥１０００」や「￥１，０００」のように、上記推定知識３０１で表されたパタンの先頭に、さらに「￥」のある文字列を表している。
【００３６】
推定知識３０３では、「時間」というラベルと、当該ラベルに対応するパタンを対応付けたもので、このパタンは、例えば、「３．５時間」のような文字列を表したものである。また、推定知識３０４では、「時間」というラベルと、当該ラベルに対応する他のパタンを対応付けたもので、このパタンは、例えば、「３時間５分」のような文字列を表したものである。
【００３７】
推定知識３０５は、「長さ」というラベルと、当該ラベルに対応するパタンを対応付けたもので、このパタンは、例えば、「１０．５ｃｍ」「１０．２ｍｍ」「１０．１ｍ」のような文字列を表したものである。
【００３８】
推定知識３０６は、「容量」というラベルと、当該ラベルに対応するパタンを対応付けたもので、このパタンは、例えば、「１０ＧＢ」「１１ＭＢ」のような文字列を表したものである。
【００３９】
推定知識３０７は、「周波数」というラベルと、当該ラベルに対応するパタンを対応付けたもので、このパタンは、例えば、「１．８ＧＨｚ」「１．９ＭＨｚ」のような文字列を表したものである。
【００４０】
このように、図３に示す推定知識は、それぞれ、要素値が文字列の場合に、当該文字列を構成する文字の種類や文字の並びなどをパタン化し、それを要素値の種類に（ラベル）に対応付けて構成されたものである。
【００４１】
次に、図４を参照して、第１の推定知識保持部１０２に記憶されている、上記推定知識を用いた第１の推定部１０３の処理動作について説明する。
【００４２】
まず、第１の推定部１０３は構造化データ蓄積部１０１からひとつずつ構造化データとしての商品情報データを取り出す（ステップＳ１）。ここで構造化データ蓄積部１０１に蓄積された商品情報データの例として図２（ａ）〜（ｅ）を考えると、このステップＳ１では、ＸＭＬデータベースとしての構造化データ蓄積部１０１から、順に＜商品情報＞タグ以下のサブツリー（すなわち、＜商品情報＞タグで囲まれた部分）を取り出す処理になる。
【００４３】
次に、ステップＳ１で取得した＜商品情報＞タグ以下のサブツリーから、店舗名とデータを取り出す（ステップＳ２）。すなわち、ここでは、＜店舗名＞タグの値（要素値）と、＜データ＞タグ以下のサブツリー（すなわち、＜データ＞タグで囲まれた部分）を取り出す処理になる。
【００４４】
ステップＳ３では、ステップＳ２で取り出した＜データ＞タグ以下のサブツリーからの中から、順に、構成要素（タグ）とその値を取り出す。なお、ここでは、１つの構成要素が他の構成要素を包含している場合（構成要素が階層構造を有する場合）は、当該包含されているタグを出現順に取り出し、その値として含まれる子タグ以下を取り除くこととする。
【００４５】
ステップＳ４で、第１の推定知識保持部１０２から推定知識を１つずつ順に取り出し、ステップＳ５では、第１の推定部１０３において、ステップＳ３で取得したタグの値（要素値）がステップＳ４で取り出した推定知識のパタンとマッチするかチェックする。
【００４６】
ステップＳ５でのチェックの結果、要素値と推定知識のパタンとがマッチした場合、ステップＳ６に進み、当該要素値のタグ名と当該推定知識に対応するラベルとの対応関係を推定結果記憶部１０４に記憶するとともに、ここでは、例えば当該対応関係に、当該タグ名をもつ商品情報に対応する店舗名（この店舗名は、当該商品情報中の＜店舗名＞タグの値として記述されている）を対応付けて記憶する。その後、ステップＳ７へ進む。
【００４７】
なお、ステップＳ６では、推定結果記憶部１０４に、当該要素値のタグ名と当該推定知識に対応するラベルと当該タグ名をもつ商品情報に対応する店舗名との対応関係を記憶するようになっているが、この場合に限らず、ここでは、少なくとも、どの商品情報（どの店舗名の商品情報）の構成要素かがわかるように対応関係が記憶されていればよい。例えば、構造化データ中の各構成要素を当該構造化データの階層構造（ツリー構造）におけるノードとみなし、当該構造化データ中の目的の構成要素の位置を、当該ツリー構造の先頭から目的の構成要素のノードに至るまでの経路上の構成要素を並べて表現することもできる。これをパスと呼ぶ。このパスを用いて上記ラベルと対応つける構成要素（タグ名）を表現してもよい。
【００４８】
推定結果記憶部１０４に記憶される上記対応関係の記憶例を図５に示す。なお、図５、図６の推定結果の説明は後述する。
【００４９】
ステップＳ５で要素値が推定知識のパタンとマッチしなかった場合には、ステップＳ７へ進む。ステップＳ７では、ステップＳ３で取り出した要素値に対し、第１の推定知識保持部１０２に記憶されている全ての推定知識を用いてチェックし終わるまで、ステップＳ４〜ステップＳ６を繰り返すようになっている。
【００５０】
ステップＳ７において、ステップＳ３で取り出された要素値に対し、全ての推定知識を用いたチェックが終了したときは、ステップＳ８に進む。
【００５１】
ステップＳ８では、ステップＳ２で取り出した＜データ＞タグ以下のサブツリーから全てのタグを取り出したか判断し、まだ取り出していないタグがある場合にはステップＳ３に戻るようになっている。
【００５２】
ステップＳ８で全てのタグについての処理が終了したと判断された場合、ステップＳ９に進み、構造化データ蓄積部１０１から全ての商品情報を取り出したかを判断する。まだ取り出していない商品情報がある場合にはステップＳ１に戻り、上記ステップＳ１〜ステップＳ８を繰り返し、全ての商品情報が処理された場合には終了する。
【００５３】
ここでは、構造化データ蓄積部１０１に予め蓄積された構造化データ（商品情報）を全て取り出して処理するフローを説明したが、構造化データ蓄積部１０１に新たな商品情報が追加された場合に、当該追加された商品情報について順次、図４と同様の手順で処理すればよい。
【００５４】
次に、図４に示した、第１の推定部１０３の処理動作を、図２に示した商品情報と、図３に示した推定知識を用いて具体的に説明する。
【００５５】
ステップＳ１で構造化データ蓄積部１０１から商品情報がひとつ取り出される。ここでは図２（ａ）が取り出された場合を考える。
【００５６】
ステップＳ２で、図２（ａ）から店舗名として「ＡＡデンキ」、データとして、＜データ＞タグで囲まれた部分２１１が取り出される。
【００５７】
ステップＳ３で、＜データ＞タグで囲まれた部分２１１内から順にタグとその値が取り出される。ここでは最初に＜商品名＞タグとその値「ＰＣ−Ａ１００」が取り出された場合を考える。
【００５８】
ステップＳ４では、図３に示したような推定知識の中から上から順に推定知識が取り出される。ここでは最初に推定知識３０１が取り出された場合を考えるが、この場合、ステップＳ５では、当該推定知識３０１のパタンと「ＰＣ−Ａ１００」とはマッチしないためステップＳ７に進む。
【００５９】
その後、ステップＳ４〜ステップＳ７が繰り返されるが、「ＰＣ−Ａ１００」は図３の推定知識のいずれともマッチせず、ステップＳ８へと進む。
【００６０】
ステップＳ８からステップＳ３に戻り、次に、＜データ＞タグで囲まれた部分２１１から、＜販売価格＞タグとその値「１２３，０００円」が取り出される。
【００６１】
ステップＳ４でもう一度推定知識が順に取り出される。ここでは先程と同様に推定知識３０１が取り出された場合を考える。
【００６２】
推定知識３０１が「１２３，０００円」とマッチするため、次に、ステップＳ６に進む。
【００６３】
ステップＳ６では、当該＜販売価格＞タグのＸＱＵＥＲＹ（ＸＰＡＴＨ）表現（パス表現の一種）である「／商品情報［店舗名＝“ＡＡデンキ”］／データ／販売価格」と、推定知識３０１のラベルである「価格」を対として、推定結果記憶部１０４に記憶し、ステップＳ７に進む。
【００６４】
以下同様に、図３の推定知識が順に全て取り出されるまで、ステップＳ４〜ステップＳ７を繰り返し、ステップＳ７で推定知識が全て取り出される。また、＜データ＞タグで囲まれた部分２１１から全てのタグが取り出されるまで、ステップＳ３〜ステップＳ１０８が繰り返される。さらに、構造化データ蓄積部１０１に蓄積されている、例えば、図２（ｂ）〜（ｄ）に示す全ての商品情報に対し、ステップＳ１〜ステップＳ９を繰り返す。
【００６５】
以上のラベル推定結果は、推定結果記憶部１０４に、例えば、図５に示すように記憶される。ここで、例えば図５における最初の推定結果（対応関係）５０１では、その店舗名から、図２（ａ）及び（ｂ）に示した商品情報の両方に適用されるが、実際に、図４の推定処理動作によりラベルの対応付けられたものは、図２（ａ）のみである。このことは、推定結果を図５のように表現することで、実際に推定知識のパタンに要素値がマッチしないタグであっても、当該要素値の種類を推定してラベルを対応付けることができることを示している。
【００６６】
図５は、推定結果を摸式的に示しているが、実施方法としては例えば図６に示したように、推定結果をＸＭＬによって表現したＸＭＬデータとして、構造化データ蓄積部１０１と同様にして、推定結果記憶部１０４に記憶することができる。この場合、検索部１０８は、構造化データ蓄積部１０１に記憶されている構造化データを検索するのと同様にして、推定結果記憶部１０４から推定結果を検索することができる。本実施形態の以後の説明では、推定結果は図６のようにＸＭＬで表現され、構造化データ蓄積部１０１と同じデータベース上に記録されているものとする。
【００６７】
なお、図４では、ステップＳ５で推定知識のパタンがマッチすると直ちにステップＳ６へ進み、推定結果を記憶すると説明したが、この場合に限らない。例えば、同じタグに異なる推定知識のラベルに対応するパタンがマッチした場合に、ステップＳ２で取り出した店舗名毎にタグとラベルの対応関係を集計し、統計的に（例えば一番多くマッチしたラベルを選択するなどの方法で）推定を行なってもよい。
【００６８】
図７は、検索要求入力部１０５に検索要求を入力するための手順を説明するための図である。検索要求を入力するために、例えば、図７（ａ）に示すような検索要求入力画面が検索要求入力部１０５により表示される。この検索要求入力画面は、キーワード入力領域と選択式のＧＵＩによってラベルを入力することにより、検索要求の入力を受け付ける例である。
【００６９】
図７（ａ）は、検索要求入力画面の初期状態を示している。ここで利用者が、「「ＰＣ−Ｂ２００」の「価格」を知りたい」場合、キーワード入力領域６０１にキーワードとして「ＰＣ−Ｂ２００」と入力し、続いて、ラベル入力領域６０２にラベルを入力するために、まず、当該ラベル入力領域６０２に設けられたボタン６０３を選択する。すると、図７（ｂ）に示すような選択可能なラベルの一覧が表示されるので、利用者は、この一覧の中から所望のラベル（例えば、ここでは「価格」）を選択する。
【００７０】
このようにして、入力されたキーワードとラベルとを含む検索要求（図７（ｃ）参照）は、内部では例えば「ラベル＝“価格”、キーワード＝“ＰＣ−Ｂ２００”」といった表現で保持することができる。もちろんＸＭＬ形式で保持してもよい。
【００７１】
図８、図９は変換知識保持部１０６に保持された変換知識の例を示したものである。
【００７２】
図８は、予備検索のための第１の検索命令を作成するために用いる変換知識（第１の変換知識）であり、図９は、構造化データ蓄積部１０１に蓄積された商品情報を検索するための第２の検索命令を作成するために用いる変換知識（第２の変換知識）を示している。
【００７３】
なお、本実施形態では、利用者により入力された検索要求に対応する検索は、第１の検索命令を用いた予備検索（第１の検索）と、第２の検索命令を用いた第２の検索との２回行われる。
【００７４】
図８に示す第１の変換知識は、推定結果記憶部１０４から、利用者からの検索要求に含まれていたラベルと対応関係にある構成要素（タグ名）と店舗名を検索するための第１の検索命令を生成するための変換知識である。
【００７５】
図９に示す第２の変換知識は、予備検索の結果を利用して利用者からの検索要求を検索命令（第２の検索命令）に変換するための変換知識である。各変換知識は、ラベル毎に対応付けられている。
【００７６】
なお、この実施形態では、第１の変換知識及び第２の変換知識は、ＸＱＵＥＲＹのＦＬＷＲ構文と呼ばれる形式の一部を置換文字列とした形式で表現されている。
【００７７】
図８に示した第１の変換知識では、「＃＃ＲＯＬＥ＃＃」と表現されている部分が、ユーザにより検索要求として入力されたラベルが代入される、置換文字列である。後述する手順でこれらの置換文字列が、上記検索要求に含まれるラベルに置換され、例えば、ここでは、検索言語ＸＱＵＥＲＹで記述された第１の検索命令が生成される。なお、変換知識保持部１０６には、異なる複数の第１の変換知識が記憶されていてもよい。
【００７８】
図８に示した第１の変換知識は、推定結果記憶部１０４から、検索要求に含まれていたラベルと対応関係をもつ構成要素を検索するための第１の検索命令を生成するためのもので、そのための記述が検索言語ＸＱＵＥＲＹで記述されている。なお、ここで生成される第１の検索命令は、検索要求に含まれていたラベルと対応関係をもつ構成要素と、当該構成要素をもつ商品情報中の「店舗名」とを検索結果として求めるためのものである。第１の変換知識は、上記置換文字列以外は、予め定められた検索言語で記述されて、上記置換文字列を入力されたラベルに置き換えさえすれば第１の検索命令が完成するようになっている。
【００７９】
図９に示した第２の変換知識では、「＃＃ＲＯＬＥ＃＃」「＃＃ＫＥＹＷＯＲＤ＃＃」「＃＃ＳＨＯＰ＃＃」及び「＃＃ＰＡＴＨ＃＃」と表現されている部分が置換文字列である。後述する手順でこれらの置換文字列が検索要求あるいは予備検索結果に従って置換され、検索言語ＸＱＵＥＲＹで記述された第２の検索命令が生成される。なお、ここで生成される第２の検索命令は、検索要求に含まれていたラベルと対応関係にある構成要素を含むとともに、当該検索要求に含まれていたキーワードを要素値としてもつ構成要素を含む商品情報を検索し、この検索された商品情報の中から「店舗名」と、当該ラベルに対応する構成要素の要素値を検索結果として求めるためのものである。第２の変換知識は、上記置換文字列以外は、予め定められた検索言語で記述されて、上記置換文字列を、利用者により入力されたラベルやキーワード、予備検索の結果得られた店舗名やタグ名に置き換えさえすれば第２の検索命令が完成するようになっている。
【００８０】
本実施形態ではこれらの置換文字列は本装置での予約語として扱われるが、もちろん置換文字列の表現方法はここで示した例に限られない。例えばデータ中に決して現れないエスケープ文字によって置換文字列を表現すれば、予約語とデータの衝突を避けることができる。
【００８１】
また、図９では変換知識をテーブルによって表現しているが、例えばＸＭＬ表現によって記述して、構造化データ蓄積部１０１と同様に保持してもよい。
【００８２】
次に、図１０に示すフローチャートを参照して検索要求変換部１０７の処理動作を説明する。ここでは、第１の検索命令を生成するための処理動作について説明する。
【００８３】
ステップＳ２１で、検索要求変換部１０７は検索要求入力部１０５から検索要求を受け取ると、続いてステップＳ２２及びＳ２３で、当該検索要求に含まれるラベルとキーワードをそれぞれ取得する。
【００８４】
次に、ステップＳ２４において、第１の変換知識を、変換知識保持部１０６から取り出す。この取り出した変換知識の中に、置換文字列「＃＃ＲＯＬＥ＃＃」が含まれる場合（ステップＳ２５）、これをステップＳ２２で取得したラベルに置換える（ステップＳ２６）。このステップＳ２５からステップＳ２６の処理を当該変換知識中の置換文字列「＃＃ＲＯＬＥ＃＃」が全て置換されるまで繰り返し（ステップＳ２５）、その結果、第１の検索命令を生成する。
【００８５】
ステップＳ２７では、当該第１の検索命令を検索部１０７へ出力する。検索部１０７では、当該第１の検索命令を基に、推定結果記憶部１０４から、当該第１の検索命令中に検索条件として定められたラベルに対応付けられた構成要素（すなわち、ここでは、タグ）と、当該タグを含む商品情報中の店舗名とを検索結果として求める、予備検索を開始する。なお、検索部１０７におけるＸＭＬデータの検索手法は、公知、公用のＸＭＬ検索システムなどと同様であり、また、本発明の要旨でないので、ここでは詳細を説明しない。
【００８６】
図１１に示すフローチャートは、図１０のステップＳ２７で得られる、予備検索の結果を利用して、利用者の検索要求を第２の検索命令に変換するための検索要求変換部１０７の処理動作を説明するためのものである。
【００８７】
予備検索の結果として、タグ名と当該タグ名を含む商品情報中の店舗名とを１組の予備検索結果としたとき、少なくとも１組の予備検索結果が得られたとする。
【００８８】
ステップＳ２８では、予備検索結果を一組取り出し、当該予備検索結果から店舗名（ステップＳ２９）とタグ（ステップＳ３０）を取り出す。
【００８９】
次に、図１０のステップＳ２２で取得したラベルに対応する第２の変換知識を、変換知識保持部１０６から取り出す（ステップＳ３１）。取り出した第２の変換知識に置換文字列「＃＃ＫＥＹＷＯＲＤ＃＃」が含まれる場合（ステップＳ３２）、これを図１０のステップＳ２３で取得した検索要求中のキーワードに置換し（ステップＳ３３）、この処理を第２の変換知識中の置換文字列「＃＃ＫＥＹＷＯＲＤ＃＃」が全て置換されるまで繰り返す。
【００９０】
また、取り出した第２の変換知識に置換文字列「＃＃ＳＨＯＰ＃＃」が含まれる場合（ステップＳ３４）、これをステップＳ２９で取得した、予備検索結果中の店舗名に置換し（ステップＳ３５）、この処理を変換知識中の置換文字列「＃＃ＳＨＯＰ＃＃」が全て置換されるまで繰り返す。
【００９１】
同様に、取り出した変換知識に置換文字列「＃＃ＰＡＴＨ＃＃」が含まれる場合（ステップＳ３６）、これをステップＳ３０で取得した、予備検索結果中のタグ名に置換し（ステップＳ３７）、この処理を変換知識中の置換文字列「＃＃ＰＡＴＨ＃＃」が全て置換されるまで繰り返す。
【００９２】
こうして、第２の検索命令が生成される。生成された第２の検索命令は検索部１０８に出力される（ステップＳ３８）。
【００９３】
予備検索結果が残っていれば、ステップＳ２８に戻り、次の予備検索結果を取り出して上記同様に処理を繰り返し、予備検索結果が全て取り出されたならこのフローを終了する（ステップＳ３９）。
【００９４】
次に、例えば、図７（ｃ）に示したようなラベルとキーワードを含む検索要求がステップＳ２１で検索要求変換部１０８が受け取る場合を例にとり、図１０、図１１に示した処理動作を具体的に説明する。
【００９５】
この場合、ステップＳ２２でラベルとして「価格」が取り出され、ステップＳ２３でキーワードとして「ＰＣ−Ｂ２００」が取り出される。ステップＳ２４では、図８に示したような第１の変換知識が取り出され、この第１の変換知識中の置換文字列「＃＃ＲＯＬＥ＃＃」が探索され（ステップＳ２５）、この置換文字列を、ステップＳ２２で取得されたラベル「価格」に置換する（ステップＳ２６）。図７に示すように、この第１の変換知識には置換文字列「＃＃ＲＯＬＥ＃＃」は一度しか出現しないので、ここではステップＳ２６は一度だけ処理される。
【００９６】
上記処理の結果、図１２に示したような、第１の検索命令が生成される。この第１の検索命令は、検索部１０８へ渡されて、予備検索が開始される（ステップＳ２７）。
【００９７】
第１の検索命令は、検索部１０８に送られ、予備検索処理が行なわれるが、この動作については既知のＸＭＬ検索システムなどと同様であり、ここでは詳細を説明しない。
【００９８】
この予備検索の結果として、例えば、図１４に示すように、２組（件）の予備検索結果が得られたとする。
【００９９】
次に、図１１に処理動作を具体的に説明する。
【０１００】
ステップＳ２８で、図１４に示した予備検索結果のうちの１つ目の予備検索結果「＜タグリスト＞＜店舗名＞ＡＡデンキ＜／店舗名＞＜タグ＞販売価格＜／タグ＞＜／タグリスト＞」が取り出される。この予備検索結果から、ステップＳ２９では店舗名として「ＡＡデンキ」、ステップＳ３０ではタグとして「販売価格」が取り出される。
【０１０１】
次に、ステップＳ２２で検索要求から取り出されたラベル「価格」に対応する第２の変換知識として図９から第２の変換知識７０２が取り出される（ステップＳ３１）。第２の変換知識７０２中の置換文字列「＃＃ＫＥＹＷＯＲＤ＃＃」はステップＳ２３で検索要求から取り出されたキーワード「ＰＣ−Ｂ２００」に置換される（ステップＳ３２）。第２の変換知識７０２中に「＃＃ＫＥＹＷＯＲＤ＃＃」は一度しか出現しないのでステップＳ３３は一度だけ処理される（ステップＳ３２）。
【０１０２】
同様に第２の変換知識７０２中の置換文字列「＃＃ＳＨＯＰ＃＃」がステップＳ２９で予備検索結果から取り出された店舗名「ＡＡデンキ」に置換される（ステップＳ３５）。第２の変換知識７０２中に「＃＃ＫＥＹＷＯＲＤ＃＃」は２回出現するので、ステップＳ３５は２度処理される（ステップＳ３４）。第２の変換知識７０２中の置換文字列「＃＃ＰＡＴＨ＃＃」はステップＳ３０で予備検索結果から取り出されたタグ「販売価格」に置換される（ステップＳ３７）。第２の変換知識７０２中に「＃＃ＰＡＴＨ＃＃」は一度しか出現しないので、ステップＳ３７は一度だけ処理される（ステップＳ３６）。
【０１０３】
このようにして生成されたＸＱＵＥＲＹ形式の第２の検索命令がステップＳ３８で出力される。生成された第２の検索命令を図１３に示す。
【０１０４】
なお、図１４に示したように、予備検索結果は２件あるので、ステップＳ３９によってステップＳ２８から処理が繰り返される。
【０１０５】
２度目のループでは、ステップＳ２８で予備検索結果として「＜タグリスト＞＜店舗名＞ＹＹ商店＜／店舗名＞＜タグ＞ＴａｇＣ＜／タグ＞＜／タグリスト＞」が取り出され、以降ステップＳ２９〜ステップＳ３８が１度目のループと同様に処理される。
【０１０６】
予備検索結果は２件なので、２度目にステップＳ３９に到達するとフローは終了する。
【０１０７】
この例では検索要求変換部１０７によって、２つの第２の検索命令が出力されたことになる。１つ目の第２の検索命令に基づき、検索部１０８は、構造化データ蓄積部１０１から、店舗名「ＡＡデンキ」の商品情報の中から、▲１▼検索要求に含まれていたキーワードを要素値としてもつ構成要素を含み、しかも▲２▼検索要求に含まれていたラベルと対応関係にある構成要素を含む、商品情報を検索する。また、２つ目の第２の検索命令に基づき「ＹＹ商店」の商品情報の中から、上記▲１▼および▲２▼を満たす商品情報を検索する。
【０１０８】
上記１つ目の第２の検索命令によれば、検索された商品情報のうち、＜店舗名＞タグの値と、ラベル「価格」に対応する＜販売価格＞タグの値が検索結果として得られることになる。また、上記２つ目の第２の検索命令によれば、検索された商品情報のうち、＜店舗名＞タグの値と、ラベル「価格」に対応する＜ＴａｇＣ＞タグの値が検索結果として得られることになる。
【０１０９】
検索部１０８は、例えばＸＱＵＥＲＹなどの検索言語を処理できる既知のＸＭＬデータベース管理システムによって実現できるのでここでは動作の詳細を説明しない。
【０１１０】
具体的な検索対象のＸＭＬデータとして図２に示したような商品情報を考えると、図１３に示した第２の検索命令によって、指定されたキーワードである「ＰＣ−Ｂ２００」という文字列を含むデータとして図２（ｂ）の商品情報が検索され、この検索された商品情報の内容が、図１３に示した第２の検索命令に記述されている「ＲＥＴＵＲＮ」節によって再構成されて、検索結果として出力されることになる。
【０１１１】
なお、図１１の２度目のループで出力される上記２つ目の第２の検索命令については、図２に示した商品情報には、当該第２の検索命令中の上記検索条件▲１▼および▲２▼を満たす商品情報は存在しない。従って検索結果は得られない。
【０１１２】
検索結果出力部１０９は、例えば、図１５に示すように、上記検索結果を表示する。ここでは検索結果が１件のみの例を示しているが、複数の商品情報が検索された場合であっても、例えばリスト形式で表示すればよい。また、ここでは検索結果として検索部１０８から得られた表現をそのまま出力しているが、この場合に限らず、例えば「「ＰＣ−Ｂ２００」は「ＡＡデンキ」で「特価３０％ＯＦＦ」です」のように検索結果出力部１０９が自然文による表現などに変換して出力してもよい。
【０１１３】
以上説明したように、上記第１の実施形態によれば、構造化データ蓄積部１０１に記憶された、複数の構成要素からなる階層化されたデータ構造をもつ複数の構造化データの構成要素の要素値の種類を推定して、当該構造化データの構成要素と、当該構成要素の要素値に対し推定された種類に対応するラベルとの対応関係を推定結果記憶部１０４に記憶しておく。キーワードとラベルを含む検索要求が入力されたとき、まず、当該検索要求に含まれるラベルに対応する構成要素を推定結果記憶部１０４に記憶されている対応関係から検索し、次に、この検索された構成要素と、当該検索要求に含まれるキーワードを要素値としてもつ構成要素とを含む構造化データを構造化データ蓄積部１０１に記憶された構造化データの中から検索する。この検索された構造化データのうち、少なくとも、検索要求に含まれるラベルに対応する構成要素の要素値を検索結果として出力する。
【０１１４】
このような構成により、商品情報のデータ構造が未知であったり、従来の手段では要素値として含まれている個々のデータの意味役割といった要素値の種類がわからない場合であっても、キーワード（例えば製品名「ＰＣ−Ｂ２００」）と要素値の種類に対応するラベル（例えば「価格」）を入力するだけで、当該キーワードを要素値としてもつ構成要素と、当該ラベルに対応する要素名をもつ構成要素とを含む所望の情報を検索し、当該キーワードを要素値としてもつ構成要素を含む情報の中から、利用者の知りたい、当該ラベルに対応する要素名の構成要素の要素値（例えば「大特価３０％ＯＦＦ」）を検索結果として得ることができる。
【０１１５】
すなわち、異なるデータ構造の複数の構造化データの中から、所望の構造化データを検索する際には、そのデータ構造に依存することなく（正確な要素名を知る必要なく、検索したいデータの種類に対応するラベルを指定すれば）、所望の情報データを要素値としてもつ構成要素を含む構造化データを容易に、しかも確実に検索することができる。
【０１１６】
（第１実施形態の第１の変形例）
次に上記第１実施形態の第１の変形例を説明する。この第１の変形例では、ユーザからの自然言語による検索要求の入力を受け付けることが可能で、入力された自然言語による検索要求からラベルを推定し、この推定結果に基づいた検索を行なうことのできる、商品情報検索装置を考える。
【０１１７】
図１６は、第１の変形例に係る商品情報検索装置の構成例を示したものである。なお、図１６において、図１と同一部分には同一符号を付し、異なる部分についてのみ説明する。すなわち、図１６では、検索要求入力部１０５からユーザにより入力される自然文の検索要求から、ラベルやキーワードに対応する語を推定するための、第２の推定部１１１と第２の推定知識保持部１１０と、さらに、第２の推定部１１１で推定されたラベルやキーワードに対応する語、さらに、これらを基に生成された第１の検索命令や第２の検索命令をユーザに提示して、必要に応じて修正させるための修正部１１２が追加されている。
【０１１８】
検索要求入力部１０５は、ユーザから入力される自然言語で記述された検索要求を受け付け、それを検索要求変換部１０７に送る。
【０１１９】
第１の変形例では検索言語として第１実施形態と同様ＸＱＵＥＲＹを考える。
【０１２０】
第２の推定知識保持部１１０は、検索要求入力部１０５から入力された検索要求からラベルを推定するための推定知識を保持する。
【０１２１】
検索要求変換部１０７は、検索要求入力部１０５から渡された検索要求を、まず、第２の推定部１１１へ送り、ここで、第２の推定知識保持部１１０に記憶されている推定知識に基づき、当該自然文の検索要求から、第１の実施形態で説明した、ラベルや、キーワードに対応する語を推定する。その後、検索要求変換部１０７では、この推定されたラベルや、キーワードに対応する語を基に、第１の実施形態で説明したように、第１の検索命令や第２の検索命令を生成する。生成された第１の検索命令や第２の検索命令は、修正部１１２に送られる。
【０１２２】
修正部１１２は、第２の推定部１１１で推定されたラベルやキーワードに対応する語、検索要求変換部１０７によって生成された第１の検索命令、第２の検索命令をユーザに提示し、ユーザからの修正を受け付け、修正されたラベルやキーワードを再び、検索要求変換部１０７へ渡したり、修正された第１の検索命令や第２の検索命令を検索部１０８に送る。もちろん、ラベルやキーワード、第１の検索命令や第２の検索命令に修正がなければ、そのまま検索要求変換部１０７、検索部１０８に送られる。
【０１２３】
以下、上記各部に処理動作について具体的に説明する。
【０１２４】
図１７は、第１の変形例における検索要求入力部１０５により表示される検索要求入力画面の一例を示したものである。ここでは検索要求として「ＤＢ３２５４はいくらですか？」という自然文が入力されている。
【０１２５】
検索要求変換部１０７は、検索要求入力部１０５から上記検索要求を受け取り、これを第２の推定部１１１へと送ることにより、上記検索要求からラベルと、キーワードに対応する語を推定結果として受け取る。
【０１２６】
第２の推定知識保持部１１０には、例えば図１８に示すような推定知識が記憶されている。ここに記憶されている推定知識は、ラベルと、検索要求の自然文に含まれることが予想される当該ラベル（すなわち、構成要素の要素値の種類を表すような語）を指定していると推定される語とを対応付けて構成されたものである。ここでは、構成要素の要素値の種類を表すような語を指定していると推定される語をパタンと呼ぶ。図１８に示す推定知識によれば、例えば、検索要求の自然文中に、「値段」、「価格」、「いくら」などといった語が含まれていれば、このような語により、当該検索要求により「価格」というラベルが指定されているものと推定する。
【０１２７】
次に、図１９に示すフローチャートを参照して第２の推定部１１１におけるラベルと、キーワードに対応する語の推定処理動作について説明する。
【０１２８】
第２の推定部１１１は、検索要求入力部１０５から入力された検索要求を受け取ると、当該検索要求を形態素解析して、当該検索要求から単語を抽出する（ステップＳ４１）。第２の推定知識保持部１１０に記憶されている図１８に示したような推定知識を１つづつ取り出し、当該抽出した単語の中に、各推定知識のパタンに一致するものがあるかチェックする（ステップＳ４２）。推定知識のパタンと一致する単語があれば（ステップＳ４３）、当該推定知識のラベルを当該検索要求のラベルと推定するとともに、ステップＳ４１で抽出された単語のうち、当該ラベルに対応する語以外の単語のうち自立語があれば、それを、キーワードとして抽出する（ステップＳ４４）。一方、ステップＳ４３で、推定知識のパタンと一致する単語がなければ、ラベルは「不定」と推定し、ステップＳ４１で抽出された単語のうち自立語があれば、それをキーワードとして抽出する（ステップＳ４５）。
【０１２９】
例えば、図１７に示したような自然文の検索要求が入力された場合、当該自然文から、「いくら」という語がラベル「価格」のパタンに一致するので、ラベルとして「価格」が求まる。また、当該自然文中の単語のうち、「いくら」以外の単語からは、「ＤＢ３２５４」が自立語であるので、この語が、キーワードとなる。
【０１３０】
第２の推定部１１１での推定結果は、第１の実施形態で検索要求入力部１０５に入力された検索要求と同様に「ラベル＝“価格”、キーワード＝“ＤＢ３２５４”」といった表現で保持することができる。
【０１３１】
このように推定結果を保持すれば、第１の変形例の検索要求変換部１０７による変換処理は第１の実施形態の場合と同様、図１０、図１１に従って行なうことができる。
【０１３２】
ただし、第１の変形例では、第２の推定部１１１において、図１９のステップＳ４５のように、検索要求からのラベルの推定に失敗する場合がある（ラベルが「不定」と推定される場合）。そこで、このラベルが「不定」の場合の第２の変換知識を図２０に示す。
【０１３３】
図２０に示す、ラベルが「不定」の場合の第２の変換知識では、図１９のステップＳ４５でキーワードとして抽出された語を要素値としてもつ構成要素を含む商品情報を検索するための第２の検索命令が生成されるようになっている。このようなラベルが「不定」の第２の変換知識も変換知識保持部１０６に記憶する。
【０１３４】
第１の変形例での検索要求変換部１０７で生成される第２の変換命令のうちの１つを図２１に示す。第１実施形態同様、検索要求変換部１０７によって生成される第２の検索命令は複数出力されることがある。
【０１３５】
修正部１１２は、図２２に示すような修正画面を表示する。この修正画面は、ユーザにより入力された自然文の検索要求を表示（および修正）する領域８０１と、第２の推定部１１１において、当該検索要求から抽出されたキーワードに対応する語を表示（および修正）する領域８０２と、当該検索要求から推定されたラベルを表示（および修正）する領域８０３とからなる。
【０１３６】
ユーザは、この修正画面の領域８０２、８０３に表示されたキーワード、ラベルに修正があれば、各領域８０２，８０３上で修正することができる。
【０１３７】
図２２に示す修正画面上で、ユーザは第２の推定部１１１の推定結果を直接修正することもできるし、自然文の検索要求自体を再度入力し直して修正作業を行なってもよい。
【０１３８】
領域８０１に検索要求の入力をやり直した場合には、第２の推定部１１１で再度図１９に示した推定処理が行われ、その推定結果が再び、図２２の領域８０２，８０３に表示される。
【０１３９】
ユーザは必要があれば検索要求の修正を行ない、所望の検索条件が設定されたら、検索の実行を指示するためのボタン８０４を押す。
【０１４０】
ここでは特にユーザからの検索要求の修正はなかったものとする。検索要求の修正が完了すると、修正部１１２は、キーワード、ラベルを検索要求変換部１０７へ渡し、ここで、第１の実施形態で説明したように、第１の検索命令、第２の検索命令が生成される。以後の処理動作は、第１の実施形態と同様である。
【０１４１】
以上説明したように、上記第１の変形例によれば、構造化データ蓄積部１０１に記憶された、複数の構成要素からなる階層化されたデータ構造をもつ複数の構造化データの構成要素の要素値の種類を推定して、当該構造化データの構成要素と、当該構成要素の要素値に対し推定された種類に対応するラベルとの対応関係を推定結果記憶部１０４に記憶しておく。自然文の検索要求が入力されたとき、当該検索要求としての自然文に含まれる語から前記ラベルを推定するとともに、キーワードに対応する語を推定する。そして、まず、この推定されたラベルに対応する構成要素を推定結果記憶ぶ１０４に記憶された対応関係から検索し、次に、検索された構成要素と、当該推定されたキーワードを要素値としてもつ構成要素とを含む構造化データを構造化データ蓄積部１０１に記憶された構造化データの中から検索する。この検索された構造化データのうち、少なくとも、検索要求から推定されたラベルに対応する構成要素の要素値を検索結果として出力する。
【０１４２】
このような構成により、商品情報のデータ構造が未知であったり、従来の手段では要素値として含まれている個々のデータの意味役割といった要素値の種類がわからない場合であっても、ユーザが質問を自然言語によって記述すると（例えば「ＤＢ３２５４はいくらですか？」を入力すると）、その質問からラベルとキーワードを推定することにより、当該キーワードを要素値としてもつ構成要素と、当該ラベルに対応する要素名をもつ構成要素とを含む所望の情報を検索し、当該キーワードを要素値としてもつ構成要素を含む情報の中から、利用者の知りたい、当該ラベルに対応する要素名の構成要素の要素値（例えば「キャンペーン価格」）を回答として得ることができる。
【０１４３】
（第１実施形態の第２の変形例）
第１実施形態の第１の変形例のさらに変形例として、修正部１１２が、検索要求変換部１０７で生成された第１の検索命令や第２の検索命令をユーザに提示し、修正を受け付ける場合を考える。
【０１４４】
この第２の変形例に係る商品情報検索装置の構成例を図２３に示す。なお、図２３において、図１や図１６と同一部分には同一符号を付し、異なる部分についてのみ説明する。すなわち、図２３に示す構成は、図１６に示した構成にさらに、第１の推定部１０３での推定結果をユーザに表示するための推定結果提示部１１３が追加されている。
【０１４５】
例えば、図２に示したような商品情報が構造化データ蓄積部１０１に記憶されており、また、第２の推定知識保持部１１０には図１８に示したような推定知識が記憶され、変換知識保持部１０６には、図８、図９に示したような変換知識が記憶されているとする。このとき、ユーザにより検索要求として「ＤＢ３２５４はいくらですか？」が入力された場合を考える。
【０１４６】
この場合、上記検索要求からは、前述したように、ラベルとして「価格」が推定され、キーワードとして「ＤＢ３２５４」が推定されるので、これらから前述したように、第１の検索命令、第２の検索命令が生成される。
【０１４７】
例えば、第２の検索命令が生成されると、修正部１１２は、当該第２の検索命令の修正を可能にするために、当該第２の検索命令を表示し、推定結果提示部１１３は、推定結果記憶部１０４に記憶されている推定結果を表示する。
【０１４８】
図２４は、上記第２の検索命令の修正画面の表示例を示したもので、この修正画面には、上記第２の検索命令と推定結果とが表示されている。図２４に示したように、第２の検索命令と推定結果とは同一画面上に表示され、第２の検索命令は、領域９０２に表示され、検索結果は領域９０１に表示される。
【０１４９】
ユーザは、図２４に示した画面上で、領域９０１に提示された推定結果を参照しながら、領域９０２に表示された検索要求変換部１０７で生成した第２の検索命令を修正することができるようになっている。ユーザは、例えば、図２４に示した画面上で、第２の検索命令に「＜時間＞｛＄ａ／データ／稼働時間／ｔｅｘｔ（）｝＜／時間＞」という１行を追加している。
【０１５０】
この修正により、ユーザは予め入力した検索要求「ＤＢ３２５４はいくらですか？」に加え、時間に関する情報、恐らくはバッテリの持続時間についての情報も検索するように指示している。
【０１５１】
第２の検索命令の修正が済むと、ユーザは実行ボタン９０４を押す。すると、修正部１１２は、当該修正された第２の検索命令を検索部１０８に送る。その後の検索部１０８、検索結果出力部１０９の処理動作は、第１実施形態と同様なのでここでは説明しない。
【０１５２】
第２の変形例の場合、ユーザは商品情報のデータ構造を参照しながら、より詳細な検索の指示が行なえることになる。
【０１５３】
また、ユーザはある程度検索言語（例えばＸＱｕｅｒｙ）に関する知識を持っている必要があるが、初期の検索要求を自然言語で与えることができるので、最初から検索言語を用いて検索命令を構築するよりも簡単に検索を行なうことができる。
【０１５４】
本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピーディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【０１５５】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（のなくとも１つ）が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０１５６】
【発明の効果】
以上説明したように、本発明によれば、異なるデータ構造の複数の構造化データの中から、所望の構造化データを検索する際には、そのデータ構造に依存することなく、所望の情報データを要素値としてもつ構成要素を含む構造化データを容易に、しかも確実に検索することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る商品情報検索装置の構成例を示した図。
【図２】商品情報の具体例を示した図。
【図３】第１の推定知識保持部に保持されている推定知識の具体例を示した図。
【図４】第１の推定部の処理動作を説明するためのフローチャート。
【図５】推定結果記憶部に記憶されているラベルとタグとの対応関係の記憶例を示した図。
【図６】推定結果記憶部に記憶されているラベルとタグとの対応関係の他の記憶例を示した図。
【図７】検索要求を入力するための手順を説明するための図。
【図８】変換知識保持部に記憶されている第１の変換知識の一例を示した図。
【図９】変換知識保持部に記憶されている第２の変換知識の例を示した図。
【図１０】検索要求変換部の処理動作のうち、第１の検索命令を生成するための処理動作を説明するためのフローチャート。
【図１１】検索要求変換部の処理動作のうち、第２の検索命令を生成するための処理動作を説明するためのフローチャート。
【図１２】第１の検索命令の具体例を示した図。
【図１３】第２の検索命令の具体例を示した図。
【図１４】第１の検索命令を実行して（予備検索を行って）得られた検索結果の一例を示した図。
【図１５】第２の検索命令を実行した結果である検索結果の表示例を示した図。
【図１６】第１の実施形態の第１の変形例に係る商品情報検索装置の構成例を示した図。
【図１７】自然文の検索要求の入力画面の一例とその入力画面に入力された検索要求を示した図。
【図１８】第２の推定知識保持部に記憶されている推定知識の具体例を示した図。
【図１９】第２の推定部におけるラベルと、キーワードに対応する語の推定処理動作を説明するためのフローチャート。
【図２０】ラベルが「不定」の場合に用いる第２の変換知識の例を示した図。
【図２１】検索要求変換部で生成される第２の変換命令の一例を示した図。
【図２２】入力された検索要求から推定されたラベルとキーワードを修正する修正画面の一例を示した図。
【図２３】第１の実施形態の第２の変形例に係る商品情報検索装置の構成例を示した図。
【図２４】第２の検索命令の修正画面の表示例を示した図。
【符号の説明】
１０１…構造化データ蓄積部
１０２…第１の推定知識保持部
１０３…第１の推定部
１０４…推定結果記憶部
１０５…検索要求入力部
１０６…変換知識保持部
１０７…検索要求変換部
１０８…検索部
１０９…検索結果出力部
１１０…第２の推定知識保持部
１１１…第１の推定部
１１２…修正部
１１３…推定結果提示部
【図１】
2004164104.tif 000003
【図２】
2004164104.tif 000004
【図３】
2004164104.tif 000005
【図４】
2004164104.tif 000006
【図５】
2004164104.tif 000007
【図６】
2004164104.tif 000008
【図７】
2004164104.tif 000009
【図８】
2004164104.tif 000010
【図９】
2004164104.tif 000011
【図１０】
2004164104.tif 000012
【図１１】
2004164104.tif 000013
【図１２】
2004164104.tif 000014
【図１３】
2004164104.tif 000015
【図１４】
2004164104.tif 000016
【図１５】
2004164104.tif 000017
【図１６】
2004164104.tif 000018
【図１７】
2004164104.tif 000019
【図１８】
2004164104.tif 000020
【図１９】
2004164104.tif 000021
【図２０】
2004164104.tif 000022
【図２１】
2004164104.tif 000023
【図２２】
2004164104.tif 000024
【図２３】
2004164104.tif 000025
【図２４】
2004164104.tif 000026