(57)【要約】【課題】検索項目を指定することなく複数の検索タームを入力して検索を行う場合において検索精度を向上させることを可能とする。【解決手段】検索ターム入力部３１は、ユーザによって指定された第１及び第２の検索タームを入力する。検索項目抽出部３２は、入力された第１及び第２の検索タームを含む検索項目関係情報に含まれる第１及び第２の検索項目を取得する。ノード間距離処理部３３は、データ格納部２２に格納されている構造情報によって示される構造化データの構造における、第１及び第２の検索項目の距離を示す距離情報を取得する。検索項目組み合わせ処理部３４は、距離情報によって示される距離が近い第１及び第２の検索項目の組み合わせを組み合わせ候補として特定する。検索実行部３６は、特定された組み合わせ候補に基づいて生成された検索式に合致する構造化データをデータ格納部２２から検索する。【選択図】      図２
2010086470.tif 000002
【特許請求の範囲】
【請求項１】
構造化データ、検索タームに対応付けて当該検索タームに関係する検索項目を含む検索項目関係情報及び前記構造化データの構造を示す複数の検索項目を含む構造情報を予め格納するデータ格納手段を有する外部記憶装置と当該外部記憶装置を利用するコンピュータとから構成される構造化データ検索装置において、前記コンピュータによって実行される構造化データ検索プログラムであって、
前記コンピュータに、
ユーザによって指定された第１及び第２の検索タームを入力するステップと、
前記入力された第１の検索タームを含む前記検索項目関係情報に含まれる第１の検索項目及び前記入力された第２の検索タームを含む前記検索項目関係情報に含まれる第２の検索項目を取得するステップと、
前記データ格納手段に格納されている構造情報によって示される構造化データの構造における、前記取得された第１の検索項目及び第２の検索項目の距離を示す距離情報を取得するステップと、
前記取得された距離情報によって示される距離が短い前記第１の検索項目及び前記第２の検索項目の組み合わせを組み合わせ候補として特定するステップと、
前記特定された組み合わせ候補に基づいて、前記構造化データを検索するための検索式を生成するステップと、
前記生成された検索式に合致する構造化データを前記データ格納手段から検索するステップと
を実行させるための構造化データ検索プログラム。
【請求項２】
前記コンピュータに、前記特定された組み合わせ候補を前記ユーザに対して提示するステップを更に実行させ、
前記検索式を生成するステップにおいて、前記提示された組み合わせ候補のうち、前記ユーザによって指定された組み合わせ候補に基づいて前記構造化データを検索するための検索式を生成する
ことを特徴とする請求項１記載の構造化データ検索プログラム。
【請求項３】
前記コンピュータに、
前記特定された組み合わせ候補を示す組み合わせ関係情報を前記データ格納手段に格納するステップと、
前記取得された第１の検索項目及び第２の検索項目の組み合わせが、前記データ格納手段に格納されている組み合わせ関係情報によって示される組み合わせ候補であるかを判定するステップと
を更に実行させ、
前記組み合わせ関係情報によって示される組み合わせ候補であると判定された場合、前記提示するステップにおいて、前記取得された第１の検索項目及び第２の検索項目の組み合わせを組み合わせ候補として前記ユーザに対して提示する
ことを特徴とする請求項２記載の構造化データ検索プログラム。
【請求項４】
前記組み合わせ関係情報は、当該組み合わせ関係情報によって示される組み合わせ候補の対応の強さを表すスコアを含み、
前記コンピュータに、
前記提示された組み合わせ候補のうち、前記ユーザによって指定された組み合わせ候補を示す組み合わせ関係情報に含まれるスコアを補正するステップを更に実行させ、
前記組み合わせ関係情報によって示される組み合わせ候補であると判定された場合、前記提示するステップにおいて、前記取得された第１の検索項目及び第２の検索項目の組み合わせを組み合わせ候補として、当該組み合わせ候補を示す組み合わせ関係情報に含まれるスコアが高い順に提示する
ことを特徴とする請求項３記載の構造化データ検索プログラム。
【請求項５】
前記距離情報を取得するステップにおいて、前記取得された第１の検索項目及び前記第２の検索項目が、前記構造情報によって示される構造化データの構造における要素に対応するかまたは属性に対応するかに基づいて前記距離情報を取得することを特徴とする請求項１記載の構造化データ検索プログラム。
【請求項６】
前記データ格納手段は、異なる構造化データの構造を示す複数の構造情報を格納し、
前記データ格納手段に格納されている検索項目関係情報は、前記検索項目に対応付けて当該検索項目を含む構造情報によって示される構造の構造名を更に含み、
前記外部記憶装置は、前記データ格納手段に格納されている複数の構造情報によって示される構造のうちの２つの構造の構造名に対応付けて当該構造間の距離を示す構造間距離情報を格納する構造間情報格納手段を更に有し、
前記コンピュータに、
前記取得された第１の検索項目に対応付けて前記検索項目関係情報に含まれる第１の構造名及び前記取得された第２の検索項目に対応付けて前記検索項目関係情報に含まれる第２の構造名が同一であるかを、前記データ格納手段を参照して判定するステップ
を更に実行させ、
前記距離情報を取得するステップにおいて、前記第１の構造名及び第２の構造名が同一でないと判定された場合、前記構造間情報格納手段において当該第１の構造名及び第２の構造名に対応付けられている構造間距離情報に基づいて、前記取得された第１の検索項目及び第２の検索項目の距離を示す距離情報を取得する
ことを特徴とする請求項１記載の構造化データ検索プログラム。
【請求項７】
構造化データ、検索タームに対応付けて当該検索タームに関係する検索項目を含む検索項目関係情報及び前記構造化データの構造を示す複数の検索項目を含む構造情報を格納するデータ格納手段と、
ユーザによって指定された第１及び第２の検索タームを入力するステップと、
前記入力された第１の検索タームを含む前記検索項目関係情報に含まれる第１の検索項目及び前記入力された第２の検索タームを含む前記検索項目関係情報に含まれる第２の検索項目を取得する検索項目取得手段と、
前記データ格納手段に格納されている構造情報によって示される構造化データの構造における、前記取得された第１の検索項目及び第２の検索項目の距離を示す距離情報を取得する距離情報取得手段と、
前記取得された距離情報によって示される距離が短い前記第１の検索項目及び第２の検索項目の組み合わせを組み合わせ候補として特定する特定手段と、
前記特定された組み合わせ候補に基づいて、前記構造化データを検索するための検索式を生成する生成手段と、
前記生成された検索式に合致する構造化データを前記データ格納手段から検索する検索手段と
を具備することを特徴とする構造化データ検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化データを検索する構造化データ検索プログラム及び構造化データ検索装置に関する。
【背景技術】
【０００２】
近年、構造化データを検索する検索方法としてキーバリュー検索（項目検索）が知られている。
【０００３】
キーバリュー検索とは、当該キーバリュー検索におけるキーに相当する検索項目（構造化データにおけるタグ）を指定し、更に、当該キーバリュー検索におけるバリューに相当する検索タームを入力することで、当該指定された検索項目の値として検索タームを含む構造化データを検索する検索方法である。
【０００４】
全文検索が全ての構造化データを検索対象とするのに対して、上記したキーバリュー検索は、指定されたキーに関する検索タームのみを検索対象とするため、検索対象が絞られる。したがって、キーバリュー検索は、全文検索と比較して検索精度が高い。
【０００５】
更に、入力されたキーバリュー検索の検索タームについて、より適切な検索項目を指定して検索を実行することで、より精度（性能）のよい検索が実行できる。
【０００６】
そこで、例えば統計作成用文書においてタームが出現する構造に関連する統計情報や共起スコアを取得し、検索文書集合から構造が出現するものを当該構造に関する統計情報や共起スコアを用いて適切に検索するのに好適な技術（以下、先行技術と表記）が開示されている（例えば、特許文献１を参照）。この先行技術によれば、検索タームにおいて適する検索項目が順にスコア化されて用意されており、そのスコアに基づいた検索項目を用いてキーバリュー検索が実行される。
【特許文献１】特開２００４−１６４１１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上記した先行技術を用いて複数の検索タームによるキーバリュー検索を実行する場合を想定する。この場合、上記した先行技術においては、各検索タームに対して最もスコア（関連度）が高い検索項目を用いて検索が実行されることになる。
【０００８】
しかしながら、このように最もスコアが高い検索項目を用いて検索が実行された場合であっても、適切な検索項目が必ずしも選択されるとは限らない。よって、複数の検索項目の組み合わせによっては検索結果の精度が低くなる可能性がある。
【０００９】
以下、例えば建設関係の検索システムにおける具体例について説明する。例えば「佐藤」という検索タームに関連する検索項目においては、検索項目「発注者」のスコアが５０で最高スコアであるものとする。また、「建設」という検索タームに関連する検索項目においては、検索項目「担当部局」のスコアが４０で最高スコアであるものとする。
【００１０】
このような状況において、ユーザが例えば「佐藤」という検索タームを入力してキーバリュー検索を行う場合には、上記した先行技術によれば「発注者（名）＝佐藤」とする検索式が機械的に組み立てられ（生成され）、当該検索式を用いて検索が実行される。同様に、ユーザが例えば「建設」という検索タームを入力してキーバリュー検索を行う場合には、「担当部局＝建設」とする検索式が機械的に組み立てられ、当該検索式を用いて検索が実行される。
【００１１】
これらを踏まえた上で、ユーザが例えば「佐藤and建設」という複数の検索タームを入力してキーバリュー検索を行う場合を想定する。この場合、「（発注者＝佐藤）and（担当部局＝建設）」とする検索式が機械的に組み立てられて、当該検索式を用いて検索が実行されることになる。
【００１２】
しかしながら、「発注者＝佐藤」または「担当部局＝建設」とする検索式が、各検索項目に関しては最高のスコアである場合であっても、「（発注者＝佐藤）and（担当部局＝建設）」のような複数の条件を組み合わせた検索式の場合には、必ずしも最も適する検索項目の組み合わせであるとは言えない。
【００１３】
具体的には、「佐藤」という検索タームにおいてスコアが３０である検索項目「施工者」及び「建設」という検索タームにおいてスコアが２０である検索項目「業種」が存在する場合を想定する。この場合、各検索タームにおいて「施工者」及び「業種」のスコアは検索ターム「佐藤」及び「建設」において最高スコアでない。しかしながら、上記した最高スコアに基づいて組み立てられた「（発注者＝佐藤）and（担当部局＝建設）」とする検索式よりも「（施工者＝佐藤）and（業種＝建設）」とする検索式の方がより適切な検索結果が得られる場合がある。
【００１４】
そこで、本発明の目的は、検索項目を指定することなく複数の検索タームを入力して検索を行う場合において検索精度を向上させることが可能な構造化データ検索プログラム及び構造化データ検索装置を提供することにある。
【課題を解決するための手段】
【００１５】
本発明の１つの態様によれば、構造化データ、検索タームに対応付けて当該検索タームに関係する検索項目を含む検索項目関係情報及び前記構造化データの構造を示す複数の検索項目を含む構造情報を予め格納するデータ格納手段を有する外部記憶装置と当該外部記憶装置を利用するコンピュータとから構成される構造化データ検索装置において、前記コンピュータによって実行される構造化データ検索プログラムであって、前記コンピュータに、ユーザによって指定された第１及び第２の検索タームを入力するステップと、前記入力された第１の検索タームを含む前記検索項目関係情報に含まれる第１の検索項目及び前記入力された第２の検索タームを含む前記検索項目関係情報に含まれる第２の検索項目を取得するステップと、前記データ格納手段に格納されている構造情報によって示される構造化データの構造における、前記取得された第１の検索項目及び第２の検索項目の距離を示す距離情報を取得するステップと、前記取得された距離情報によって示される距離が近い前記第１の検索項目及び前記第２の検索項目の組み合わせを組み合わせ候補として特定するステップと、前記特定された組み合わせ候補に基づいて、前記構造化データを検索するための検索式を生成するステップと、前記生成された検索式に合致する構造化データを前記データ格納手段から検索するステップとを実行させるための構造化データ検索プログラムが提供される。
【発明の効果】
【００１６】
本発明によれば、検索項目を指定することなく複数の検索タームを入力して検索を行う場合において検索精度を向上させることを可能とする。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明の各実施形態について説明する。
【００１８】
［第１の実施形態］
まず、図１及び図２を参照して、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態に係る構造化データ検索装置のハードウェア構成を示すブロック図である。図１に示すように、コンピュータ１０は、例えばハードディスクドライブ（ＨＤＤ：）のような外部記憶装置２０と接続されている。この外部記憶装置２０は、コンピュータ１０によって実行されるプログラム２１を格納する。コンピュータ１０及び外部記憶装置２０は、構造化データ検索装置３０を構成する。
【００１９】
図２は、図１に示す構造化データ検索装置３０の主として機能構成を示すブロック図である。
【００２０】
図２に示すように、構造化データ検索装置３０は、検索ターム入力部３１、検索項目抽出部３２、ノード間距離処理部３３、検索項目組み合わせ処理部３４、検索候補表示処理部３５及び検索実行部３６を含む。本実施形態において、これらの各部３１乃至３６は、図１に示すコンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。このプログラム２１は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム２１が例えばネットワークを介してコンピュータ１０にダウンロードされても構わない。
【００２１】
また、構造化データ検索装置３０は、データ格納部２２を含む。本実施形態において、データ格納部２２は、例えば外部記憶装置２０に格納される。
【００２２】
データ格納部２２には、構造化データ検索装置３０による検索の対象となる構造化データが格納される。この構造化データの代表としては、ＸＭＬ（eXtensible Markup Language）形式で記述されたＸＭＬデータがある。
【００２３】
データ格納部２２には、例えばユーザによって指定される検索タームに対応付けて当該検索タームに関係する検索項目を含む検索項目関係情報が格納される。この検索項目は、例えばデータ格納部２２に格納される構造化データのタグ名を含む。また、この検索項目関係情報には、検索ターム及び検索項目に対応付けてスコアが含まれる。なお、１つの検索タームに対応付けて複数の検索項目が検索項目関係情報に含まれていても構わない。
【００２４】
また、データ格納部２２には、当該データ格納部２２に格納されている構造化データの構造（階層構造）を示す構造情報が格納される。この構造情報には、複数の検索項目（ノード）が含まれる。
【００２５】
検索ターム入力部３１は、ユーザによって指定された複数の検索タームを入力する。この検索タームは、例えば「佐藤」のような文字列を含む。以下、検索ターム入力部３１は、２つの検索ターム（第１及び第２の検索ターム）を入力するものとして説明する。
【００２６】
検索項目抽出部３２は、検索ターム入力部３１によって入力された第１の検索タームに対応付けて検索項目関係情報に含まれる検索項目（第１の検索項目）を取得（抽出）する。また、検索項目抽出部３２は、検索ターム入力部３１によって入力された第２の検索タームに対応付けて検索項目関係情報に含まれる検索項目（第２の検索項目）を取得する。検索項目抽出部３２は、データ格納部２２を参照して取得処理を実行する。
【００２７】
なお、上記したように検索タームに対応付けて複数の検索項目が検索項目関係情報に含まれている場合には、当該検索項目に対応付けて検索項目関係情報に含まれるスコア順（スコアが高い順）に当該複数の検索項目が取得される。
【００２８】
ノード間距離処理部３３は、データ格納部２２に格納されている構造情報によって示される構造化データの構造における、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目のノード間の距離（ノード間距離）を示すノード間距離情報を取得（抽出）する。なお、各検索項目のノード間距離は、構造化データにおける関係の強弱を表しているため、当該ノード間距離が短いほど当該検索項目の組み合わせの関係が強いものとして扱うものとする。
【００２９】
また、上記したように検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目がそれぞれ複数存在する場合には、ノード間距離処理部３３は、当該第１の検索項目及び第２の検索項目の組み合わせの全てについてノード間距離情報を取得する。具体的には、例えば第１の検索項目が「Ａ」及び「Ｂ」であり、第２の検索項目が「Ｃ」及び「Ｄ」であるものとする。この場合、ノード間距離処理部３３は、第１の検索項目「Ａ」及び第２の検索項目「Ｃ」のノード間距離、第１の検索項目「Ａ」及び第２の検索項目「Ｄ」のノード間距離、第１の検索項目「Ｂ」及び第２の検索項目「Ｃ」のノード間距離、第１の検索項目「Ｂ」及び第２の検索項目「Ｄ」のノード間距離の各々を示すノード間距離情報を取得する。
【００３０】
なお、ノード間距離を示すノード間距離情報の取得処理の詳細については、後述する。
【００３１】
検索項目組み合わせ処理部３４は、ノード間距離処理部３３によって取得されたノード間距離情報によって示されるノード間距離が短い順（候補順）に、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目の組み合わせを組み合わせ候補として特定（生成）する。このとき、検索項目組み合わせ処理部３４は、複数の組み合わせ候補を特定しても構わない。なお、ノード間距離が同一の場合には、検索項目関係情報において第１の検索項目及び第２の検索項目に対応付けられているスコアに基づいて候補順が決定される。
【００３２】
検索候補表示処理部３５は、検索項目組み合わせ処理部３４によって特定された組み合わせ候補（第１の検索項目及び第２の検索項目の組み合わせ）を候補順にユーザに対して提示（表示）する。
【００３３】
また、検索候補表示処理部３５は、ユーザに対して提示された組み合わせ候補のうち、ユーザによって指定された組み合わせ候補（を示す情報）を取得する。このとき、ユーザは、例えば画面に表示された複数の組み合わせ候補群から１つを当該画面上で指定（選択）することができる。
【００３４】
検索実行部３６は、検索候補表示処理部３５によって取得された組み合わせ候補（ユーザによって指定された組み合わせ候補）に基づいて、構造化データを検索するための検索式、例えばＸＱｕｅｒｙ式を生成する。
【００３５】
検索実行部３６は、生成された検索式に合致する構造化データを、データ格納部２２から検索する。検索実行部３６によって検索された構造化データは、例えば検索候補表示処理部３６を介してユーザに対して提示される。
【００３６】
図３は、図２に示すデータ格納部２２に格納される検索項目関係情報のデータ構造の一例を示す。
【００３７】
図３に示すように、検索項目関係情報には、検索ターム、検索項目及びスコアが対応付けて含まれる。図３に示す例では、１つの検索タームに対応付けて２つの検索項目が検索項目関係情報に含まれている。この２つの検索項目は、当該検索項目のスコア順に検索項目関係情報に含まれている。
【００３８】
検索タームは、ユーザによって指定される例えば文字列である。検索項目は、構造化データの構造及びタグ名を示す。また、スコアは、検索ターム及び検索項目の対応の強さを表す値である。
【００３９】
図３に示す例では、データ格納部２２には、検索項目関係情報２２１及び２２２が格納されている。
【００４０】
検索項目関係情報２２１には、検索ターム「佐藤」に対応付けて検索項目としてＰａｔｈである「／○○○／業種／設計人／会社」及びスコア「５０」が含まれている。同様に、検索項目関係情報２２１には、検索ターム「佐藤」に対応付けて検索項目「／○○○／業種／設計人」及びスコア「４０」が含まれている。これによれば、検索ターム「佐藤」に関係する検索項目は、「／○○○／業種／設計人／会社」及び「／○○○／業種／設計人」であり、当該検索項目のスコアはそれぞれ「５０」及び「４０」である旨が示されている。
【００４１】
また、検索項目関係情報２２２には、検索ターム「建設」に対応付けて検索項目「／○○○／業種」及びスコア「５０」が含まれている。同様に、検索項目関係情報２２２には、検索ターム「建設」に対応付けて検索項目「○○○／業種／設計人／会社／部／課」及びスコア「３０」が含まれている。これによれば、検索ターム「建設」に関係する検索項目は、「／○○○／業種」及び「○○○／業種／設計人／会社／部／課」であり、当該検索項目のスコアはそれぞれ「５０」及び「３０」である旨が示されている。
【００４２】
次に、図４のフローチャートを参照して、本実施形態に係る構造化データ検索装置３０の処理手順について説明する。なお、データ格納部２２に格納される検索項目関係情報は、上記した図３に示す検索項目関係情報２２１及び２２２であるものとする。
【００４３】
まず、検索ターム入力部３１は、ユーザによって指定された複数の検索タームを入力する（ステップＳ１）。ここでは、ユーザによって指定された複数の検索タームは、２つであるものとする。また、この２つの検索タームは、それぞれ「佐藤」（第１の検索ターム）及び「建設」（第２の検索ターム）であるものとして説明する。
【００４４】
次に、検索項目抽出部３２は、検索ターム入力部３１によって入力された２つの検索ターム（「佐藤」及び「建設」）に対応付けて検索項目関係情報に含まれる検索項目をスコア順に取得する（ステップＳ２）。
【００４５】
ここでは、検索項目抽出部３２は、検索ターム「佐藤」に対応付けて検索項目関係情報２２１に含まれる検索項目「／○○○／業種／設計人／会社」及び「／○○○／業種／設計人」（第１の検索項目）を取得する。また、検索項目抽出部３２は、検索ターム「建設」に対応付けて検索項目関係情報２２２に含まれる検索項目「／○○○／業種」及び「／○○○／業種／設計人／会社／部／課」（第２の検索項目）を取得する。
【００４６】
検索項目組み合わせ処理部３４は、検索項目抽出部３２によって取得された第１の検索項目（「／○○○／業種／設計人／会社」及び「／○○○／業種／設計人」）及び第２の検索項目（「／○○○／業種」及び「／○○○／業種／設計人／会社／部／課」）をノード間距離処理部３３に渡す。
【００４７】
ノード間距離処理部３３は、検索項目組み合わせ処理部３４から渡された第１の検索項目及び第２の検索項目を取得する。
【００４８】
ノード間距離処理部３３は、データ格納部２２に格納されている構造情報に基づいて、取得された第１の検索項目及び第２の検索項目のノード間距離を示すノード間距離情報を取得する。
【００４９】
なお、本実施形態においてノード間距離を用いるのは、近くにあるノードの方が遠くにあるノードよりも関連性（凝集性）が高いためである。具体的には、文書データにおいて、同一の段落内に存在する２つのデータは、異なる段落に存在する２つのデータよりも関連性は高いと考えられるためである。
【００５０】
以下、ノード間距離処理部３３によるノード間距離情報の取得処理について具体的に説明する。
【００５１】
まず、ノード間距離処理部３３は、取得された第１の検索項目及び第２の検索項目の全ての組み合わせをリストアップする。
【００５２】
ノード間距離は、検索項目の最後のタグ名に基づいて取得される。例えば第１の検索項目「／○○○／業種／設計人／会社」と第２の検索項目「／○○○／業種」とのノード間距離は、「会社」及び「業種」に基づいて取得される。つまり、ノード間距離処理部３３は、第１の検索項目及び第２の検索項目の最後のタグについて全ての組み合わせをリストアップする。
【００５３】
これにより、ノード間距離処理部３３は、第１の検索項目及び第２の検索項目の組み合わせとして、以下に示す第１〜第４の組み合わせをリストアップする。
【００５４】
第１の組み合わせは、第１の検索項目「／○○○／業種／設計人／会社」及び第２の検索項目「／○○○／業種」から、「会社」及び「業種」である。
【００５５】
第２の組み合わせは、第１の検索項目「／○○○／業種／設計人／会社」及び第２の検索項目「／○○○／業種／設計人／会社／部／課」から、「会社」及び「課」である。
【００５６】
第３の組み合わせは、第１の検索項目「／○○○／業種／設計人」及び第２の検索項目「／○○○／業種」から、「設計人」及び「業種」である。
【００５７】
第４の組み合わせは、第１の検索項目「／○○○／業種／設計人」及び第２の検索項目「／○○○／業種／設計人／会社／部／課」から、「設計人」及び「課」である。
【００５８】
ノード間距離処理部３３は、上記した第１〜第４の組み合わせの各々についてノード間距離（ノード間距離情報）を取得する。
【００５９】
ここで、図５及び図６は、ノード間距離情報の取得に用いられる構造情報の一例を示す。図５は、データ格納部２２に格納されている構造化データの構造（つまり、構造情報）の一例を示す。図６は、図５に示す構造化データの構造を表す図（構造図）の一例を示す。なお、データ格納部２２に格納されている構造化データの構造は、図５及び図６に示す構造に統一されているものとする。
【００６０】
ノード間距離処理部３３は、図５及び図６に示す構造情報に照らし合わせて第１〜第４の組み合わせについてノード間距離を取得する。
【００６１】
なお、ノード間距離の取得方法は、例えば予め設定された法則に従って取得される。ここでは、基本的な法則の一例について説明する。ノード間距離の取得における法則には、例えば第１〜第３の法則が含まれる。なお、以下に説明する第１〜第３の法則は一例であるため、当該第１〜第３の法則以外の法則に従ってノード間距離が取得されても構わない。
【００６２】
第１の法則は、構造化データの構造において、あるノードから親ノードへのノード間距離を１とするものである。図５及び図６に示す例では、例えば「設計人」から「業種」へのノード間距離は１である。
【００６３】
第２の法則は、構造化データの構造において、あるノードから子ノードへのノード間距離を１とするものである。図５及び図６に示す例では、例えば「設計人」から「会社」へのノード間距離は１である。
【００６４】
第３の法則は、構造化データの構造において、あるノードから兄弟ノードへのノード間距離を１とするものである。図５及び図６に示す例では、例えば「設計人」から「発注人」へのノード間距離は１である。
【００６５】
以上の第１〜第３の法則によって上記した第１〜第４の組み合わせ毎にノード間距離を取得すると、第１の組み合わせにおけるノード間距離として２、第２の組み合わせにおけるノード間距離として２、第３の組み合わせにおけるノード間距離として１、第４の組み合わせにおけるノード間距離として３が取得される。
【００６６】
これにより、ノード間距離処理部３３は、第１の組み合わせにおけるノード間距離「２」を示すノード間距離情報、第２の組み合わせにおけるノード間距離「２」を示すノード間距離情報、第３の組み合わせにおけるノード間距離「１」を示すノード間距離情報及び第４の組み合わせにおけるノード間距離「３」を示すノード間距離情報を検索項目組み合わせ処理部３４に渡す。
【００６７】
再び図４に戻ると、検索項目組み合わせ処理部３４は、ノード間距離処理部３３から渡されたノード間距離情報によって示されるノード間距離が短い第１の検索項目及び第２の検索項目の組み合わせを組み合わせ候補として特定する（ステップＳ４）。このとき、検索項目組み合わせ処理部３４は、ノード間距離が短い順に予め定められた数の組み合わせを組み合わせ候補として特定する。また、検索項目組み合わせ処理部３４は、ノード間距離が短い順を組み合わせ候補の候補順とする。
【００６８】
ここでは、検索項目組み合わせ処理部３４は、ノード間距離処理部３３によって取得されたノード間距離情報に基づいて、以下のように上記した第１〜第４の組み合わせを組み合わせ候補として特定するものとする。
【００６９】
検索項目組み合わせ処理部３４は、ノード間距離が最も短い（ノード間距離「１」）組み合わせは上記した第３の組み合わせであるため、第１の検索項目「／○○○／業種／設計人」及び第２の検索項目「／○○○／業種」の組み合わせを候補順が１番（最上位）の組み合わせ候補として特定する。
【００７０】
ここで、ノード間距離が２番目に短い（ノード間距離「２」）組み合わせは第１の組み合わせ及び第２の組み合わせである。しかしながら、データ格納部２２に格納されている検索項目関係情報において、第１の組み合わせの検索項目に対応付けられているスコアの方が第２の組み合わせの検索項目に対応付けられているスコアよりも高い。
【００７１】
このため、検索項目組み合わせ処理部３４は、上記した第１の組み合わせに基づいて、第１の検索項目「／○○○／業種／設計人／会社」及び第２の検索項目「／○○○／業種」の組み合わせを候補順が２番目の組み合わせ候補として特定する。
【００７２】
また、検索項目組み合わせ処理部３４は、上記した第２の組み合わせに基づいて、第１の検索項目「／○○○／業種／設計人／会社」及び第２の検索項目「／○○○／業種／設計人／会社／部／課」の組み合わせを候補順が３番目の組み合わせ候補として特定する。
【００７３】
更に、検索項目組み合わせ処理部３４は、ノード間距離が最も長い（ノード間距離「３」）組み合わせは上記した第４の組み合わせであるため、第１の検索項目「／○○○／業種／設計人」及び第２の検索項目「／○○○／業種／設計人／会社／部／課」の組み合わせを候補順が４番目（最下位）の組み合わせ候補として特定する。
【００７４】
次に、検索候補表示処理部３５は、検索項目組み合わせ処理部３４によって特定された組み合わせ候補をユーザに対して提示する（ステップＳ５）。
【００７５】
ここでは、上記した第１〜第４の組み合わせが組み合わせ候補として候補順にユーザに対して提示されたものとする。この場合、組み合わせ候補が提示されたユーザは、第１〜第４の組み合わせ候補（第１〜第４の組み合わせ）のうち、当該ユーザにとって所望の検索結果を得ることができるような組み合わせ候補を指定（選択）することができる。
【００７６】
検索候補表示処理部３５は、ユーザによって指定された組み合わせ候補（を示す情報）を取得する。検索候補表示処理部３５は、取得された組み合わせ候補を検索実行部３６に渡す。ここでは、ユーザによって指定された組み合わせ候補は、候補順が最上位である第３の組み合わせ候補であるものとする。
【００７７】
次に、検索実行部３６は、ユーザによって指定された第３の組み合わせ候補（検索候補表示処理部３５から渡された組み合わせ候補）から検索式を生成する（ステップＳ６）。この検索式は、データ格納部２２に格納されている構造化データを検索するための構造化検索式であり、例えばＸＱｕｅｒｙ式である。
【００７８】
検索実行部３６は、生成された検索式に合致する構造化データをデータ格納部２２から検索（キーバリュー検索）する（ステップＳ７）。
【００７９】
この場合、ユーザによって指定された第３の組み合わせ候補は、第１の検索項目「／○○○／業種／設計人」及び第２の検索項目「／○○○／業種」の組み合わせであるため、「設計人」タグの値として第１の検索タームである「佐藤」を含み、かつ、「業種」タグの値として第２の検索タームである「建設」を含む構造化データが検索結果としてデータ格納部２２から検索される。
【００８０】
検索実行部３６は、例えば検索候補表示処理部３５を介して検索結果をユーザに対して提示する（ステップＳ８）。
【００８１】
ここで、検索結果が提示されたユーザは、当該検索結果が当該ユーザにとって所望の結果であるか否かを判断し、所望の結果でないと判断された場合には構造化データ検索装置３０に対して再検索を指示することができる。
【００８２】
ユーザにより再検索が指示された場合（ステップＳ９のＹＥＳ）、ステップＳ５に戻って処理が繰り返される。一方、ユーザにより再検索が指示されない、つまり、ユーザにとって所望の結果が得られたと当該ユーザによって判断された場合には、処理は終了される。
【００８３】
ここでは、上記したステップＳ４において第１〜第４の組み合わせが組み合わせ候補として特定された場合には、当該各組み合わせ候補（第１〜第４の組み合わせ）が候補順にユーザに対して提示され、当該ユーザによって指定された組み合わせ候補に基づいて検索式が生成されるものとして説明したが、当該ステップＳ４において特定された組み合わせ候補（第１〜第４の組み合わせ）のうち、最も候補順が高い組み合わせ候補（第３の組み合わせ）に基づいて検索式が自動的に生成される構成であっても構わない。
【００８４】
なお、最も候補順が高い組み合わせ候補に基づいて検索式が自動的に生成されるか、もしくは、上記したように組み合わせ候補をユーザに提示し、当該ユーザによって指定された組み合わせ候補に基づいて検索式が生成されるかについては、例えば構造化データ検索装置３０における設定において変更可能である。
【００８５】
上記したように本実施形態においては、ユーザによって指定された複数の検索ターム（第１及び第２の検索ターム）の各々に対応付けて検索項目関係情報に含まれる検索項目（第１及び第２の検索項目）のノード間距離（情報）を取得し、当該ノード間距離に基づいて当該第１及び第２の検索タームにおける適切な検索項目の組み合わせを組み合わせ候補として特定し、当該組み合わせ候補に基づいて検索式を生成することが可能となる。これにより、検索項目を指定することなく複数の検索タームを入力して検索を行なう場合においても、より適切な検索式を用いて検索を実行することができるため、検索精度を向上させることが可能となる。
【００８６】
また、本実施形態においては、取得されたノード間距離に基づいて特定された組み合わせ候補をユーザに対して提示し、当該ユーザに所望の検索結果を得ることができるような組み合わせ候補を指定させることで、より適切な検索式を生成し、検索精度を向上させることができる。
【００８７】
なお、本実施形態においては、ユーザによって指定される検索タームが２つである場合について主に説明したが、当該検索ターム数がｎ（ｎは３以上の整数）である場合におけるノード間距離については、例えば平均ノード間距離を用いることが可能である。この平均ノード間距離は、具体的には、（各ノード間距離の和）＊２／ｎ（ｎ−１）により取得される。したがって、検索ターム数がｎの場合には、この平均ノード間距離を用いて検索項目の組み合わせ候補が特定され、当該組み合わせ候補に基づいて検索式が生成される。
【００８８】
［第２の実施形態］
次に、図７及び図８を参照して、本発明の第２の実施形態について説明する。なお、本実施形態に係る構造化データ検索装置の構成は、前述した第１の実施形態に係る構造化データ検索装置３０と同様であるため、適宜、図２を用いて説明する。
【００８９】
本実施形態においては、検索項目組み合わせ処理部３４によって特定された組み合わせ候補の情報（以下、組み合わせ関係情報と表記）をデータ格納部２２に格納し、当該組み合わせ関係情報を次回の検索以降に利用する点が、前述した第１の実施形態とは異なる。以下、前述した第１の実施形態と異なる部分について主に述べる。
【００９０】
検索項目組み合わせ処理部３４は、ノード間距離処理部３３によって取得されたノード間距離情報によって示されるノード間距離が短い順（候補順）に、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目の組み合わせを組み合わせ候補として特定する。このとき、検索項目組み合わせ処理部３４は、特定された組み合わせ候補を示す組み合わせ関係情報をデータ格納部２２に格納する。この組み合わせ情報には、特定された組み合わせ候補の検索項目（第１の検索項目及び第２の検索項目の組み合わせ）及びスコアが含まれる。
【００９１】
上記したように組み合わせ関係情報がデータ格納部２２に格納される際、当該組み合わせ関係情報に含まれるスコアには、当該組み合わせ関係情報に含まれる組み合わせ候補の検索項目のノード間距離に応じた値が設定される。
【００９２】
また、検索項目組み合わせ処理部３４は、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目の組み合わせが、データ格納部２２に格納されている組み合わせ関係情報によって示される組み合わせ候補であるか否かを判定する。検索項目組み合わせ処理部３４は、データ格納部２２に格納されている組み合わせ関係情報によって示される組み合わせ候補であると判定された場合、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目の組み合わせを組み合わせ候補として特定する。
【００９３】
ここで、図７は、上記した本実施形態に係る構造化データ検索装置３０のデータ格納部２２に格納される組み合わせ関係情報のデータ構造の一例を示す。図７に示すように、組み合わせ関係情報には、検索項目Ａ、検索項目Ｂ及びスコアが含まれる。
【００９４】
ここで、検索項目Ａは、上記した検索項目組み合わせ処理部３４によって特定された組み合わせ候補の検索項目のうち、一方の検索項目（例えば、第１の検索項目）を示す。また、検索項目Ｂは、検索項目組み合わせ処理部３４によって特定された組み合わせ候補の検索項目のうち、検索項目Ａによって示される検索項目とは異なる検索項目（例えば、第２の検索項目）を示す。
【００９５】
また、スコアは、検索項目Ａ及び検索項目Ｂの各々によって示される検索項目の対応の強さを表す値である。つまり、スコアは、検索項目Ａによって示される検索項目及び検索項目Ｂによって示される検索項目のノード間距離に相当する。
【００９６】
図７に示す例では、データ格納部２２には、組み合わせ関係情報２２３〜２２６が格納されている。
【００９７】
組み合わせ関係情報２２３には、検索項目Ａ「／○○○／業種／設計人」、検索項目Ｂ「／○○○／業種」及びスコア「５０」が含まれている。
【００９８】
組み合わせ関係情報２２４には、検索項目Ａ「／○○○／業種／設計人」、検索項目Ｂ「／○○○／業種／設計人／会社／部／課」及びスコア「２０」が含まれている。
【００９９】
組み合わせ関係情報２２５には、検索項目Ａ「／○○○／業種／設計人／会社」、検索項目Ｂ「／○○○／業種」及びスコア「３０」が含まれている。
【０１００】
組み合わせ関係情報２２６には、検索項目Ａ「／○○○／業種／設計人／会社」、検索項目Ｂ「／○○○／業種／設計人／会社／部／課」及びスコア「３０」が含まれている。
【０１０１】
次に、図８に示すフローチャートを参照して、本実施形態に係る構造化データ検索装置３０の処理手順について説明する。なお、データ格納部２２には、既に組み合わせ関係情報、例えば組み合わせ関係情報２２３〜２２６が格納されているものとする。
【０１０２】
まず、前述した図４に示すステップＳ１及びステップＳ２の処理に相当するステップＳ１１及びステップＳ１２の処理が実行される。
【０１０３】
次に、検索項目組み合わせ処理部３４は、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目の組み合わせが、データ格納部２２に格納されている組み合わせ関係情報によって示される組み合わせ候補であるか否かを判定する（ステップＳ１３）。この場合、第１の検索項目及び第２の検索項目の全ての組み合わせについて判定処理が実行される。
【０１０４】
組み合わせ関係情報によって示される組み合わせ候補であると判定された場合（ステップＳ１３のＹＥＳ）、検索項目組み合わせ処理部３４は、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目の組み合わせ（当該組み合わせ関係情報によって示される組み合わせ候補）を組み合わせ候補として特定する（ステップＳ１４）。このとき、検索項目組み合わせ処理部３４は、組み合わせ候補に対応付けて組み合わせ関係情報に含まれるスコアを取得する。
【０１０５】
一方、組み合わせ関係情報によって示される組み合わせ候補でないと判定された場合（ステップＳ１３のＮＯ）、前述した図４に示すステップＳ３及びステップＳ４の処理に相当するステップＳ１５及びステップＳ１６の処理が実行される。
【０１０６】
次に、検索項目組み合わせ処理部３４は、ステップＳ１６の処理において特定された組み合わせ候補を示す組み合わせ関係情報をデータ格納部２２に格納する（ステップＳ１７）。このとき、検索項目組み合わせ処理部３４は、取得されたノード間距離情報によって示されるノード間距離を、当該ノード間距離に応じたスコアに変換する。例えばノード間距離が「１」である場合には、当該ノード間距離はスコア「５０」に変換される。同様に、ノード間距離が「２」の場合はスコア「３０」、ノード間距離が「３」の場合はスコア「２０」に変換される。
【０１０７】
検索項目組み合わせ処理部３４は、変換されたスコアを含む組み合わせ関係情報をデータ格納部２２に格納する。
【０１０８】
上記したように第１の検索項目及び第２の検索項目の全ての組み合わせについてステップＳ１３の判定処理が実行されるため、当該組み合わせ毎に、ステップＳ１４の処理またはステップＳ１５〜ステップＳ１７の処理いずれかが実行される。
【０１０９】
検索候補表示処理部３５は、ステップＳ１４において特定された組み合わせ候補及びステップＳ１６において特定された組み合わせ候補をユーザに対して提示する（ステップＳ１８）。このとき、検索候補表示処理部３５は、検索項目組み合わせ処理部３４によって取得されたスコア（つまり、ステップＳ１４において特定された組み合わせ候補のスコア）または変換されたスコア（つまり、ステップＳ１６において特定された組み合わせ候補のスコア）の順に組み合わせ候補を提示する。
【０１１０】
以下、前述した図４に示すステップＳ６〜ステップＳ９の処理に相当するステップＳ１９〜ステップＳ２２の処理が実行される。なお、ステップＳ２２においてユーザにより再検索が指示された場合にはステップＳ１８に戻って処理が繰り返される。
【０１１１】
上記したように本実施形態においては、検索項目組み合わせ処理部３４によって組み合わせ候補が特定された場合に、当該組み合わせ候補を示す組み合わせ関係情報がデータ格納部２２に格納される。これにより、本実施形態においては、次回検索が行われる際に、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目が組み合わせ関係情報によって示される組み合わせ候補である場合には、当該第１の検索項目及び第２の検索項目を組み合わせ候補として以降の処理が実行される。つまり、この場合には、ノード間距離処理部３３によるノード間距離（ノード間距離情報）の取得処理を行う必要がない。
【０１１２】
したがって、本実施形態においては、組み合わせ関係情報（組み合わせ候補の過去情報）に応じてノード間距離処理部３３の動作を省略することが可能となるので、前述した第１の実施形態と比較して、構造化データ検索装置３０の処理量を軽減することが可能となる。
【０１１３】
［第３の実施形態］
次に、図９を参照して、本発明の第３の実施形態について説明する。図９は、本実施形態に係る構造化データ検索装置の主として機能構成を示すブロック図である。なお、前述した図２と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図２と異なる部分について主に述べる。
【０１１４】
また、本実施形態に係る構造化データ検索装置のハードウェア構成は、前述した第１の実施形態と同様であるため、適宜、図１を用いて説明する。
【０１１５】
図９に示すように、構造化データ検索装置１００は、検索データ処理部１０１を含む。なお、検索データ処理部１０１以外の各部３１〜３６及びデータ格納部２２については、前述した第２の実施形態と同様である。
【０１１６】
本実施形態において、検索データ処理部１０１は、図１に示すコンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。
【０１１７】
検索データ処理部１０１は、検索候補表示処理部３５によって取得された組み合わせ候補（ユーザに対して提示された複数の組み合わせ候補群のうち、当該ユーザによって指定された組み合わせ候補）に基づいて、データ格納部２２に格納されている組み合わせ関係情報を補正する。この組み合わせ関係情報は、前述した第２の実施形態における組み合わせ関係情報と同様であるため、その詳しい説明を省略する。
【０１１８】
検索データ処理部１０１は、検索候補表示処理部３５によって取得された組み合わせ候補を示す組み合わせ関係情報に含まれるスコア（の値）を補正する。次回の検索以降では、補正されたスコアを用いて処理が実行される。
【０１１９】
次に、図１０のフローチャートを参照して、本実施形態に係る構造化データ検索装置１００の処理手順について説明する。なお、データ格納部２２には、前述した図７に示す組み合わせ情報２２３〜２２６のような組み合わせ情報が格納されているものとする。
【０１２０】
まず、前述した図８に示すステップＳ１１〜ステップＳ１８の処理に相当するステップＳ３１〜ステップＳ３８の処理が実行される。
【０１２１】
ステップＳ３８の処理が実行されると、検索候補表示処理部３５は、ユーザに対して提示された組み合わせ候補群のうち、当該ユーザによって指定された組み合わせ候補を取得する。
【０１２２】
次に、検索データ処理部１０１は、検索候補表示処理部３５によって取得された組み合わせ候補に基づいて、データ格納部２２に格納されている組み合わせ関係情報を補正する（ステップＳ３９）。この組み合わせ関係情報は、前述した第２の実施形態と同様に、検索項目組み合わせ処理部３４によって特定された組み合わせ候補を示す情報である。また、組み合わせ関係情報には、スコアが含まれる。
【０１２３】
この場合、検索データ処理部１０１は、検索候補表示処理部３５によって取得された組み合わせ候補を示す組み合わせ関係情報を取得する。検索データ処理部１０１は、取得された組み合わせ関係情報に含まれるスコアの値を補正する。
【０１２４】
検索データ処理部１０１は、取得された組み合わせ関係情報に含まれるスコアの値を、データ格納部２２に格納されている他の組み合わせ関係情報（に含まれるスコア）よりも高くする。
【０１２５】
具体的には、ステップＳ３６において、前述した図７に示す組み合わせ関係情報２２３によって示される組み合わせ候補（「／○○○／業種／設計人」及び「／○○○／業種」の組み合わせ候補）、組み合わせ関係情報２２４によって示される組み合わせ候補（「／○○○／業種／設計人」及び「／○○○／業種／設計人／会社／部／課」の組み合わせ候補）、組み合わせ関係情報２２５によって示される組み合わせ候補（「／○○○／業種／設計人／会社」及び「／○○○／業種」の組み合わせ候補）、組み合わせ関係情報２２６によって示される組み合わせ候補（「／○○○／業種／設計人／会社」及び「／○○○／業種／設計人／会社／部／課」の組み合わせ候補）を含む複数の組み合わせ候補がユーザに対して提示されたものとする。
【０１２６】
ここで、ユーザによって組み合わせ関係情報２２５によって示される組み合わせ候補が指定された場合を想定する。この場合、組み合わせ関係情報２２５に含まれるスコアの値を、例えば３０から６０に補正する。つまり、他の組み合わせ関係情報２２３、２２４及び２２６に含まれるスコアの値よりも高くする。
【０１２７】
これにより、次回の検索においては、組み合わせ関係情報２２５によって示される組み合わせ候補が他の組み合わせ関係情報によって示される組み合わせ候補より上位の候補順となる。
【０１２８】
上記したように組み合わせ関係情報が補正されると、検索データ処理部１０１は、スコアの値が補正された組み合わせ関係情報をデータ格納部２２に格納する。
【０１２９】
次に、前述した図８に示すステップＳ１９〜ステップＳ２２の処理に相当するステップＳ４０〜ステップＳ４３の処理が実行される。
【０１３０】
ステップＳ４３においてユーザにより再検索が指示された場合、ステップＳ３８に戻って処理が繰り返される。
【０１３１】
なお、ユーザにより再検索が指示される場合とは検索結果がユーザにとって所望の結果でない場合である。したがって、ステップＳ４３においてユーザにより再検索が指示された場合には、上記ステップＳ３９において補正された組み合わせ関係情報に含まれるスコアの値を補正前の値に戻す処理が実行される構成であっても構わない。
【０１３２】
上記したように本実施形態においては、ユーザによって指定された組み合わせ候補に基づいて、組み合わせ関係情報に含まれるスコアの値が自動的に補正される。これにより、本実施形態においては、前述したように例えば最も候補順が高い組み合わせ候補に基づいて検索式が自動的に生成されるように構造化データ検索装置１００において設定されている場合であっても、上記した補正によりユーザによって指定された組み合わせ候補を示す組み合わせ関係情報に含まれるスコアの値が高くなるため、当該ユーザの意図する組み合わせ候補が優先的に用いられることになる。したがって、本実施形態においては、ユーザの意図を反映した組み合わせ候補に基づいて生成された検索式を用いて検索が実行されるため、検索精度を向上させることが可能となる。
【０１３３】
［第４の実施形態］
次に、本発明の第４の実施形態について説明する。なお、本実施形態に係る構造化データ検索装置の構成は、前述した第１の実施形態に係る構造化データ検索装置３０と同様であるため、適宜、図２を用いて説明する。
【０１３４】
本実施形態においては、構造化データ検索装置３０に含まれるノード間距離処理部３３によって取得されるノード間距離（情報）において構造化データ（ＸＭＬデータ）の要素及び属性を考慮する点が、前述した第１の実施形態とは異なる。つまり、本実施形態においては、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目が構造化データの構造における要素に対応するかまたは属性に対応するかに基づいてノード間距離が取得される。
【０１３５】
以下、本実施形態に係る構造化データ検索装置３０に含まれるノード間距離処理部３３におけるノード間距離の取得処理について説明する。
【０１３６】
本実施形態において、構造化データの要素及び属性を考慮する場合、ノード間距離の取得における予め設定された法則には、前述した第１〜第３の法則に加えて、第４及び第５の法則が含まれる。なお、以下に説明する第４及び第５の法則は一例であるため、当該第４及び第５の法則以外の法則に従ってノード間距離が取得されても構わない。
【０１３７】
第４の法則は、構造化データの構造において、ある要素から同一のタグ内に存在する属性へのノード間距離を０．５とするものである。つまり、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目の一方が要素に対応するものであり、他方が当該要素と同一のタグ内の属性（当該要素に付加された属性）に対応するものである場合には、当該第１の検索項目及び第２の検索項目のノード間距離は０．５となる。
【０１３８】
第５の法則は、構造化データの構造において、ある属性から同一のタグ内に存在する属性へのノード間距離を０．５とするものである。つまり、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目が同一のタグ内に存在する属性に対応するものである場合には、当該第１の検索項目及び第２の検索項目のノード間距離は０．５となる。
【０１３９】
なお、同一のタグ内に存在する属性間におけるノード間距離であっても、例えば当該同一のタグ内に当該２つの属性以外の属性が存在する場合には、当該属性以外の属性の数毎に予め設定された値（例えば、０．１）が０．５（デフォルト値）に加算されるものとする。具体的には、同一のタグ内に、属性に対応する第１の検索項目及び第２の検索項目以外の属性が１つ存在する場合には、当該第１の検索項目及び第２の検索項目のノード間距離は０．６（＝０．５＋０．１）となる。つまり、同一のタグ内に第１の検索項目及び第２の検索項目以外の属性の数が多いほど、当該第１の検索項目及び第２の検索項目のノード間距離は長くなる。
【０１４０】
ところで、上記第４及び第５の法則におけるノード間距離が同一であるのは、前述した第１〜第３の法則により親子のノード間距離と兄弟のノード間距離が同一であり、要素及び属性が親子、属性同士が兄弟の関係とみなすことができることに基づく。したがって、第３の法則におけるノード間距離が第１及び２の法則におけるノード間距離の例えば１．５倍である場合には、第５の法則によるノード間距離も第４の法則によるノード間距離の１．５倍となる。
【０１４１】
なお、第１の検索項目及び第２の検索項目の両方が要素に対応するものである場合には、前述した第１の実施形態と同様にして、ノード間距離が取得される。
【０１４２】
ここで、図１１を参照して、本実施形態における構造化データの要素及び属性を考慮した場合のノード間距離について具体的に説明する。図１１は、前述した図５に示す構造化データの構造における要素「会社」には属性１〜３が指定（付加）されており、要素「部」には属性４及び５が指定されている構造化データの構造を示す。
【０１４３】
まず、例えば「業種」及び「属性１」のノード間距離について説明する。この場合、前述した第２の法則により「業種」及び「会社」のノード間距離が２、第４の法則により「会社」及び「属性１」のノード間距離が０．５であるため、「業種」及び「属性１」のノード間距離は２．５となる。
【０１４４】
次に、例えば「属性１」及び「属性２」のノード間距離について説明する。この場合、「会社」タグには「属性１」及び「属性２」以外に「属性３」が存在するため、第５の法則により「属性１」及び「属性２」のノード間距離は０．６となる。
【０１４５】
また、例えば「属性４」及び「属性５」のノード間距離について説明する。この場合、要素「部」のタグには「属性４」及び「属性５」以外の属性は存在しないため、第５の法則により「属性４」及び「属性５」のノード間距離は０．５となる。
【０１４６】
本実施形態においては、上記したように構造化データの要素及び属性を考慮して第１の検索項目及び第２の検索項目のノード間距離が取得される。
【０１４７】
なお、本実施形態は、前述した第２及び第３の実施形態にも適用可能であるが、この場合、上記したように取得されたノード間距離は、前述したように当該ノード間距離に応じたスコアに変換されて用いられることになる。
【０１４８】
なお、上記したノード間距離の取得処理以外の処理については、前述した第１の実施形態と同様あるため、その詳しい説明を省略する。
【０１４９】
上記したように本実施形態においては、第１の検索項目及び第２の検索項目が構造化データにおける要素及び属性に対応するものである旨を考慮してノード間距離を取得することができる。これにより、本実施形態においては、前述した第１の実施形態等と比較して、正確なノード間距離を取得することができるため、より検索精度を向上させることが可能となる。
【０１５０】
［第５の実施形態］
次に、図１２を参照して、本発明の第５の実施形態について説明する。図１２は、本実施形態に係る構造化データ検索装置の主として機能構成を示すブロック図である。なお、前述した図２及び図９と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図２及び図９と異なる部分について主に述べる。
【０１５１】
また、本実施形態に係る構造化データ検索装置のハードウェア構成は、前述した第１の実施形態と同様であるため、適宜、図１を用いて説明する。
【０１５２】
前述した第１〜第４の実施形態においてはデータ格納部２２に格納されている構造化データの構造（スキーマ）は統一されている場合を想定していたが、本実施形態においては、データ格納部２２に格納されている構造化データにおいて異種のスキーマが存在する場合を想定している。つまり、本実施形態においては、データ格納部２２に複数のスキーマ（構造）を示す構造情報が格納されている。なお、データ格納部２２には、前述した第３の実施形態で説明した組み合わせ関係情報が格納される。
【０１５３】
図１２に示すように、構造化データ検索装置１１０は、スキーマ情報判定部１１１、スキーマ間情報処理部１１２、同類語処理部１１３、換算用情報処理部１１４及び検索項目組み合わせ処理部１１５を含む。本実施形態において、これら各部１１１〜１１５は、図１に示すコンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。
【０１５４】
また、構造化データ検索装置１１０は、スキーマ間情報格納部２３、同類語情報格納部２４及び換算用情報格納部２５を含む。本実施形態において、スキーマ間情報格納部２３、同類語情報格納部２４及び換算用情報格納部２５は、例えば外部記憶装置２０に格納される。
【０１５５】
本実施形態におけるデータ格納部２２に格納される検索項目関係情報には、検索ターム、当該検索タームに関係する検索項目に対応付けて当該検索項目を含むスキーマ（構造情報によって示される構造）のスキーマ名（構造名）が含まれる。また、データ格納部２２に格納される組み合わせ関係情報には、組み合わせ候補の検索項目を含むスキーマのスキーマ名が含まれる。
【０１５６】
スキーマ間情報格納部２３には、スキーマ間距離情報が格納されている。スキーマ間距離情報は、２つの異なるスキーマ（構造情報によって示される構造）間の距離を示す。このスキーマ間距離情報には、２つの異なるスキーマのスキーマ名（構造名）及び当該スキーマ間の距離（スキーマ間距離）が対応付けて含まれている。また、スキーマ間距離情報には、２つの異なるスキーマ名の各々に対応付けて当該スキーマにおける最近接要素名が含まれている。つまり、スキーマ間距離情報には２つの最近接要素名が含まれる。
【０１５７】
この最近接要素名の組み合わせは、スキーマ間距離情報に含まれる２つのスキーマのうちの一方のスキーマの要素名と他方のスキーマの要素名との組み合わせであって最も類似の度合い（後述する類似度）が高い要素名の組み合わせである。
【０１５８】
同類語情報格納部２４には、同類語情報が格納されている。同類語情報には、互いに類似する２つの単語及び当該２つの単語が類似する度合いを表す類似度が対応付けて含まれる。
【０１５９】
換算用情報格納部２５には、換算用情報が格納される。この換算用情報は、例えば類似度から換算ノード間距離を算出するために用いられる。換算用情報には、ノード間距離及び類似度が対応付けて含まれる。なお、換算用情報は、構造化データ検索装置１１０の初期状態においては換算用情報格納部２５には格納されておらず、後述するように当該構造化データ検索装置１１０の処理によって格納される。
【０１６０】
スキーマ情報判定部１１１は、検索項目抽出部３２によって取得された情報（第１の検索項目及び第２の検索項目）が、同一のスキーマのみに含まれるか、または異種のスキーマに含まれるか否かを判定する。スキーマ情報判定部１１１は、データ格納部２２に格納されている検索項目関係情報に基づいて判定処理を実行する。
【０１６１】
スキーマ間情報処理部１１２は、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目の各々が含まれるスキーマのスキーマ名を含むスキーマ間距離情報がスキーマ間情報格納部２３内に存在するか否かを確認する。以下、第１の検索項目が含まれるスキーマを第１のスキーマと称する。また、第２の検索項目が含まれるスキーマを第２のスキーマと称する。
【０１６２】
同類語処理部１１３は、第１のスキーマの要素名及び第２のスキーマの要素名の組み合わせにおいて最も類似度が高い要素名（最近接要素名）の組み合わせ及び当該最近接要素名間の類似度を、同類語情報格納部２４から取得する。
【０１６３】
換算用情報処理部１１４は、同一のスキーマ内の要素名に関する類似度（要素名間の類似度）を同類語情報格納部２４から取得する。換算用情報処理部１１４は、この要素名間の距離（ノード間距離）を取得する。換算用情報処理部１１４は、このスキーマのスキーマ名、取得されたノード間距離及び類似度を対応付けて含む換算用情報を換算用情報格納部２５に格納する。
【０１６４】
なお、ノード間距離の取得方法は、前述した第１の実施形態におけるノード間距離処理部３３と同様であるため、その詳しい説明を省略する。
【０１６５】
換算用情報処理部１１４は、同類語処理部１１３によって取得された最近接要素名間の類似度に対応する換算ノード間距離を算出する。この換算ノード間距離の算出処理の詳細については後述する。
【０１６６】
検索項目組み合わせ処理部１１５は、スキーマ間情報格納部２３に格納されているスキーマ間距離情報または換算用情報処理部１１４によって算出された換算ノード間距離等に基づいて、検索項目抽出部３２によって取得された第１及び第２の検索項目の総合距離を算出する。この総合距離の算出処理の詳細については後述する。
【０１６７】
図１３は、本実施形態におけるデータ格納部２２に格納されている検索項目関係情報のデータ構造の一例を示す。
【０１６８】
図１３に示すように、検索項目関係情報には、検索ターム、スキーマ名、検索項目及びスコアが対応付けて含まれる。スキーマ名は、検索項目を含むスキーマの名称である。図１３に示す例では、１つの検索タームに対応付けて２つの検索項目が検索項目関係情報に含まれている。この２つの検索項目は、当該検索項目のスコア順に検索項目関係情報に含まれている。
【０１６９】
図１３に示す例では、検索項目関係情報２２１には、検索ターム「佐藤」に対応付けてスキーマ名「Ｓｃｈｅｍａ＿Ａ」、検索項目「／○○○／業種／設計人／会社」及びスコア「５０」が含まれている。また、検索項目関係情報２２１には、検索ターム「佐藤」に対応付けてスキーマ名「Ｓｃｈｅｍａ＿Ａ」、検索項目「／○○○／業種／設計人」及びスコア「４０」が含まれている。これによれば、検索項目「／○○○／業種／設計人／会社」を含むスキーマのスキーマ名が「Ｓｃｈｅｍａ＿Ａ」、検索項目「／○○○／業種／設計人」を含むスキーマのスキーマ名が「Ｓｃｈｅｍａ＿Ａ」であることが示される。
【０１７０】
同様に、検索項目関係情報２２２には、検索ターム「建設」に対応付けてスキーマ名「Ｓｃｈｅｍａ＿Ｂ」、検索項目「／○○○／業種」及びスコア「５０」が含まれている。また、検索項目関係情報２２２には、検索ターム「建設」に対応付けてスキーマ名「Ｓｃｈｅｍａ＿Ａ」、検索項目「○○○／業種／設計人／会社／部／課」及びスコア「３０」が含まれている。
【０１７１】
図１４は、本実施形態におけるデータ格納部２２に格納される組み合わせ関係情報のデータ構造の一例を示す。
【０１７２】
図１４に示すように、組み合わせ関係情報には、検索項目Ａ及び検索項目Ｂのそれぞれに対応付けて当該検索項目を含むスキーマのスキーマ名が含まれている。
【０１７３】
図１４に示す例では、組み合わせ関係情報２２３には、スキーマ名「Ｓｃｈｅｍａ＿Ａ」、検索項目Ａ「／○○○／業種／設計人」、スキーマ名「Ｓｃｈｅｍａ＿Ｂ」、検索項目Ｂ「／○○○／業種」及びスコア「５０」が含まれている。これによれば、検索項目Ａ「／○○○／業種／設計人」を含むスキーマのスキーマ名が「Ｓｃｈｅｍａ＿Ａ」であることが示される。また、検索項目Ｂ「／○○○／業種」を含むスキーマのスキーマ名が「Ｓｃｈｅｍａ＿Ｂ」であることが示される。
【０１７４】
また、組み合わせ関係情報２２４には、スキーマ名「Ｓｃｈｅｍａ＿Ａ」、検索項目Ａ「／○○○／業種／設計人」、スキーマ名「Ｓｃｈｅｍａ＿Ａ」、検索項目Ｂ「／○○○／業種／設計人／会社／部／課」及びスコア「２０」が含まれている。
【０１７５】
組み合わせ関係情報２２５には、スキーマ名「Ｓｃｈｅｍａ＿Ａ」、検索項目Ａ「／○○○／業種／設計人／会社」、スキーマ名「Ｓｃｈｅｍａ＿Ｂ」、検索項目Ｂ「／○○○／業種」及びスコア「３０」が含まれている。
【０１７６】
組み合わせ関係情報２２６には、スキーマ名「Ｓｃｈｅｍａ＿Ａ」、検索項目Ａ「／○○○／業種／設計人／会社」、スキーマ名「Ｓｃｈｅｍａ＿Ａ」、検索項目Ｂ「／○○○／業種／設計人／会社／部／課」及びスコア「３０」が含まれている。
【０１７７】
図１５は、図１２に示すスキーマ間情報格納部２３に格納されているスキーマ間距離情報のデータ構造の一例を示す。スキーマ間距離情報は、異なる２つのスキーマ（スキーマ１及びスキーマ２）間の距離を示す。図１５に示すように、スキーマ間距離情報には、例えばスキーマ１のスキーマ名、スキーマ１の最近接要素名、スキーマ２のスキーマ名、スキーマ２の最近接要素名及び当該スキーマ１とスキーマ２との間の距離（スキーマ間距離）が対応付けて含まれる。
【０１７８】
なお、スキーマ１の最近接要素名及びスキーマ２の最近接要素名は、スキーマ１の要素名及びスキーマ２の要素名の組み合わせのうち、最も類似度が高い要素名の組み合わせを示す。
【０１７９】
図１５に示す例では、スキーマ間距離情報には、スキーマ１のスキーマ名として「Ｓｃｈｅｍａ＿Ａ」、スキーマ１の最近接要素名として「／○○／材料」、スキーマ２のスキーマ名として「Ｓｃｈｅｍａ＿Ｂ」、スキーマ２の最近接要素名として「／○○／素材」及びスキーマ間距離「４」が対応付けて含まれている。
【０１８０】
同様に、スキーマ間距離情報には、スキーマ１のスキーマ名として「Ｓｃｈｅｍａ＿Ａ」、スキーマ１の最近接要素名として「／○○／材料」、スキーマ２のスキーマ名として「Ｓｃｈｅｍａ＿Ｃ」、スキーマ２の最近接要素名として「／○○／物資」及びスキーマ間距離「７」が対応付けて含まれている。
【０１８１】
図１６は、図１２に示す同類語情報格納部２５に格納されている同類語情報のデータ構造の一例を示す。図１６に示すように、同類語情報には、単語（要素名）１、単語２及び類似度が対応付けて含まれる。
【０１８２】
図１６に示す例では、同類語情報には、単語１「材料」、単語２「素材」及び類似度「５０」が対応付けて含まれている。これによれば、単語１である「材料」及び単語２である「素材」が互いに類似する度合い（つまり、類似度）が「５０」であることが示されている。
【０１８３】
同様に、同類語情報には、単語１「材料」、単語２「物資」及び類似度「３０」が対応付けて含まれている。これによれば、単語１である「材料」及び単語２である「物資」が互いに類似する度合いが「３０」であることが示されている。
【０１８４】
図１７は、図１２に示す換算用情報格納部２３に格納される換算用情報のデータ構造の一例を示す。この換算用情報は、換算用情報処理部１１４によって換算用情報格納部２５に格納される。
【０１８５】
図１７に示すように、換算用情報には、スキーマ名、ノード間距離及び類似度が対応付けて含まれている。
【０１８６】
図１７に示す例では、換算用情報には、スキーマ名「Ｓｃｈｅｍａ＿Ａ」、ノード間距離「５」及び類似度「４０」が対応付けて含まれている。
【０１８７】
換算用情報には、スキーマ名「Ｓｃｈｅｍａ＿Ａ」、ノード間距離「４」及び類似度「５０」が対応付けて含まれている。
【０１８８】
換算用情報には、スキーマ名「Ｓｃｈｅｍａ＿Ａ」、ノード間距離「３」及び類似度「６０」が対応付けて含まれている。
【０１８９】
換算用情報には、スキーマ名「Ｓｃｈｅｍａ＿Ｂ」、ノード間距離「５」及び類似度「４０」が対応付けて含まれている。
【０１９０】
換算用情報には、スキーマ名「Ｓｃｈｅｍａ＿Ｂ」、ノード間距離「３」及び類似度「６０」が対応付けて含まれている。
【０１９１】
次に、図１８のフローチャートを参照して、本実施形態に係る構造化データ検索装置１１０の処理手順について説明する。
【０１９２】
まず、前述した図４に示すステップＳ１及びステップＳ２（図１０に示すステップＳ３１及びステップＳ３２）の処理に相当するステップＳ５１及びステップＳ５２の処理が実行される。なお、ステップＳ５２において第１の検索項目及び第２の検索項目が複数取得された場合には、前述した第１の実施形態等と同様に、その第１の検索項目及び第２の検索項目の組み合わせの全てについて以下に説明するステップＳ５３〜ステップＳ５７の処理が実行される。
【０１９３】
次に、スキーマ情報判定部１１１は、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目が同一のスキーマであるか、または異種のスキーマが混ざっているか否かを判定する。つまり、スキーマ情報判定部１１１は、第１の検索項目が含まれるスキーマ（第１のスキーマ）及び第２の検索項目が含まれるスキーマ（第２のスキーマ）が同一スキーマであるか否かを判定する（ステップＳ５３）。スキーマ情報判定部１１１は、データ格納部２２に格納されている検索項目関係情報に基づいて判定処理を実行する。
【０１９４】
具体的には、スキーマ情報判定部１１１は、データ格納部２２に格納されている検索項目関係情報において第１の検索項目に対応付けられているスキーマ名（第１のスキーマ名）及び第２の検索項目に対応付けられているスキーマ名（第２のスキーマ名）が同一である場合には、第１のスキーマ及び第２のスキーマが同一であると判定する。一方、スキーマ情報判定部１１１は、第１のスキーマ名及び第２のスキーマ名が同一でない場合には、第１のスキーマ及び第２のスキーマが同一でないと判定する。
【０１９５】
なお、例えば第１（または第２）のスキーマが複数存在するような場合には、当該複数のスキーマのそれぞれについてステップＳ５３以降の処理が実行される。
【０１９６】
同一スキーマであると判定された場合（ステップＳ５３のＹＥＳ）、前述した図１０に示すステップＳ３３以降の処理が実行される。つまり、ステップＳ５３において同一スキーマであると判定された場合には、前述した第３の実施形態と同様の処理が実行される。
【０１９７】
一方、同一スキーマでないと判定された場合（ステップＳ５３のＮＯ）、スキーマ間情報処理部１１２は、第１のスキーマのスキーマ名（第１のスキーマ名）及び第２のスキーマのスキーマ名（第２のスキーマ名）を対応付けて含むスキーマ間距離情報がスキーマ間情報格納部２３内に存在する（格納されている）か否かを判定する（ステップＳ５４）。スキーマ間情報格納部２３内にスキーマ間距離情報が存在すると判定された場合（ステップＳ５４のＹＥＳ）、後述するステップＳ５７の処理が実行される。
【０１９８】
一方、スキーマ間情報格納部２３内にスキーマ間距離情報が存在しないと判定された場合（ステップＳ５４のＮＯ）、同類語処理部１１３は、対象スキーマ（第１のスキーマ及び第２のスキーマ）における、最近接要素名と当該間の類似度を取得する（ステップＳ５５）。同類語処理部１１３は、第１のスキーマの要素名及び第２のスキーマの要素名の組み合わせであって最も類似度の高い要素名（最近接要素名）の組み合わせ及び当該最近接要素名間の類似度を、同類語情報格納部２４から取得する。
【０１９９】
例えば第１のスキーマに要素名「材料」が存在し、第２のスキーマに要素名「素材」及び「物資」が存在する場合を想定する。この場合、同類語情報格納部２４に格納されている同類語情報が上記した図１５に示す同類語情報であるものとすると、同類語処理部１１３は、最近接要素名として要素名「材料」及び「素材」（の組み合わせ）を取得し、類似度「５０」を取得する。
【０２００】
次に、換算用情報処理部１１４は、同一スキーマ（例えばＳｃｈｅｍａ＿Ａ）内の要素名に関する類似度（要素名間の類似度）及び当該要素名間の距離（ノード間距離）を取得する（ステップＳ５６）。この類似度は、同類語情報格納部２４から取得される。また、ノード間距離の取得方法は、前述した第１の実施形態におけるノード間距離処理部３３と同様である。
【０２０１】
換算用情報処理部１１４は、このスキーマのスキーマ名、取得された類似度及びノード間距離から換算用情報を生成する。換算用情報処理部１１４は、スキーマ名、ノード間距離及び類似度を含む換算用情報を換算用情報格納部２５に格納する。ここでは、Ｓｃｈｅｍａ＿Ａについて説明したが、他の全てのスキーマ（例えばＳｃｈｅｍａ＿Ｂ及びＳｃｈｅｍａ＿Ｃ）についても同様にして換算用情報が格納（生成）される。
【０２０２】
ステップＳ５６における換算用情報格納処理は、換算用情報格納部２５に換算用情報が存在しない場合に実行される。換算用情報が存在しない場合とは、上記したように構造化データ検索装置１１０が初期状態である場合である。つまり、このステップＳ５６における換算用情報格納処理は、当該構造化データ検索装置１１０の最初の処理においてのみ行われる。なお、例えばスキーマまたは同類語情報に変更があった場合には、このステップＳ５６における換算用情報格納処理によって新たな換算用情報が格納される。
【０２０３】
次に、換算用情報処理部１１４は、換算用情報格納部２５に格納された換算用情報において例えば第１のスキーマ（例えばＳｃｈｅｍａ＿Ａ）のスキーマ名に対応付けられている全てのノード間距離及び類似度を取得する。換算用情報処理部１１４は、取得されたノード間距離及び類似度に対する所定の計算（例えば最小二乗法）により、第１のスキーマにおけるノード間距離及び類似度の対応関係（を表すグラフ等）を算出する。換算用情報処理部１１４は、算出された第１のスキーマにおけるノード間距離及び類似度の対応関係に基づいて、同類語処理部１１３によって取得された最近接要素名間の類似度（例えば「５０」）に対応するノード間距離（以下、第１のスキーマのノード間距離と表記）を算出する。換算用情報処理部１１４は、第２のスキーマに対しても同様の処理を実行して、第２のスキーマのノード間距離を算出する。
【０２０４】
換算用情報処理部１１４は、算出された第１のスキーマのノード間距離及び第２のスキーマのノード間距離の平均（例えば「４」）を、同類語処理部１１３によって取得された最近接要素名間の類似度に対応する換算ノード間距離として算出する（ステップＳ５７）このとき、同類語処理部１１３は、この算出された換算ノード間距離を一時的に保管しておく。
【０２０５】
次に、検索項目組み合わせ処理部１１５は、検索項目抽出部３２によって取得された第１の検索項目及び第２の検索項目における総合距離（情報）を算出する（ステップＳ５８）。
【０２０６】
総合距離の算出処理は、上記したステップＳ５４においてスキーマ間情報格納部２３内にスキーマ間距離情報が存在しないと判定された場合（ステップＳ５４のＮＯ）とスキーマ間情報格納部２３内にスキーマ間距離情報が存在すると判定された場合（ステップＳ５４のＹＥＳ）とによって処理が異なる。
【０２０７】
したがって、ステップＳ５４のＮＯの場合（つまり、ステップＳ５５及びステップＳ５６の処理が実行された場合）の総合距離の算出処理（以下、第１の算出処理）とステップＳ５４のＹＥＳの場合の総合距離の算出処理（以下、第２の算出処理）とに分けて説明する。
【０２０８】
まず、第１の算出処理について説明する。第１の算出処理においては、総合距離はノード間距離と上記した換算用情報処理部１１４によって算出された換算ノード距離を加算することによって算出される。ここで、第１の算出処理におけるノード間距離とは、上記したステップＳ５５において取得された第１のスキーマの最近接要素名及び第１の検索項目の（最後の）要素名（タグ名）の当該第１のスキーマにおけるノード間距離と、上記したステップＳ５５において取得された第２のスキーマの最近接要素名及び第２の検索項目の（最後の）要素名（タグ名）の当該第２のスキーマにおけるノード間距離とをいう。
【０２０９】
ここで、第１の検索項目の要素名が「設計人」、ステップＳ５５において取得された第１のスキーマの最近接要素名が「材料」、ステップＳ５５において取得された第２のスキーマの最近接要素名が「素材」、第２の検索項目の要素名が「業種」である場合を想定する。
【０２１０】
この場合には、検索項目組み合わせ処理部１１５は、第１のスキーマにおける要素名「設計人」及び「材料」のノード間距離、ステップＳ５７において同類語処理部１１３によって取得された換算ノード間距離及び第２のスキーマにおける要素名「素材」及び「業種」のノード間距離の各々を加算することによって総合距離を算出する。
【０２１１】
次に、第２の算出処理について説明する。第２の算出処理においては、上記したようにステップＳ５４のＹＥＳの場合であるから、第１のスキーマのスキーマ名及び第２のスキーマのスキーマ名を含むスキーマ間距離情報がスキーマ間情報格納部２３内に存在する。
【０２１２】
この場合、スキーマ間情報処理部１１２は、第１のスキーマのスキーマ名及び第２のスキーマのスキーマ名を含むスキーマ間距離情報に含まれる第１のスキーマの最近接要素名と、第２のスキーマの最近接要素名と、当該第１のスキーマ及び第２のスキーマのスキーマ間距離を、スキーマ間情報格納部２３から取得する。
【０２１３】
第２の算出処理においては、総合距離はノード間距離とスキーマ間情報処理部１１２によって取得されたスキーマ間距離を加算することによって算出される。つまり、第２の算出処理においては、スキーマ間情報格納部２３（に格納されているスキーマ間距離情報）において第１のスキーマのスキーマ名（第１のスキーマ名）及び第２のスキーマのスキーマ名（第２のスキーマ名）に対応付けられているスキーマ間距離（情報）に基づいて総合距離が算出される。
【０２１４】
第２の算出処理におけるノード間距離とは、スキーマ間情報処理部１１２によって取得された第１のスキーマの最近接要素名及び第１の検索項目の（最後の）要素名（タグ名）の当該第１のスキーマにおけるノード間距離と、スキーマ間情報処理部１１２によって取得された第２のスキーマの最近接要素名及び第２の検索項目の（最後の）要素名（タグ名）の当該第２のスキーマにおけるノード間距離とをいう。
【０２１５】
ここで、第１の検索項目の要素名が「設計人」、スキーマ間情報処理部１１２によって取得された第１のスキーマの最近接要素名が「材料」、スキーマ間情報処理部１１２によって取得された第２のスキーマの最近接要素名が「素材」、第２の検索項目の要素名が「業種」である場合を想定する。
【０２１６】
この場合には、検索項目組み合わせ処理部１１５は、第１のスキーマにおける要素名「設計人」及び「材料」のノード間距離、スキーマ間情報処理部１１２によって取得されたスキーマ間距離及び第２のスキーマにおける要素名「素材」及び「業種」のノード間距離の各々を加算することによって総合距離を算出する。
【０２１７】
つまり、第２の算出処理におけるスキーマ間距離は、第１の算出処理における換算ノード間距離に相当する。
【０２１８】
なお、上記したようにステップＳ５２において第１の検索項目及び第２の検索項目が複数取得された場合には、その第１の検索項目及び第２の検索項目の組み合わせの全てについて総合距離が算出される。
【０２１９】
次に、検索項目組み合わせ処理部１１５は、算出された総合距離及び前述した図１０に示すステップＳ３５において取得されたノード間距離が短い順に第１の検索項目及び第２の検索項目の組み合わせを組み合わせ候補として特定する（ステップＳ５９）。このとき、検索項目組み合わせ処理部１１５は、算出された総合距離及び前述した図１０に示すステップＳ３５において取得されたノード間距離が短い順に予め定められた数の組み合わせを組み合わせ候補として特定する。なお、前述した図１０に示すステップＳ３４において組み合わせ候補が特定されている場合には、当該組み合わせ候補を用いる。
【０２２０】
次に、前述した図１０に示すステップＳ３７〜ステップＳ４３の処理に相当するステップＳ６０〜ステップＳ６６の処理が実行される。
【０２２１】
なお、上記したステップＳ５６において一時的に換算ノード間距離が保管されている場合には、当該換算ノード間距離は、例えばステップＳ６６においてユーザにより再検索が指示されず処理が終了される前にスキーマ間情報格納部２３に書き込まれる。この場合、この換算ノード間距離は、スキーマ間情報格納部２３に格納されているスキーマ間距離情報において第１のスキーマのスキーマ名及び第２のスキーマのスキーマ名に対応付けられているスキーマ間距離情報として、当該スキーマ間情報格納部２３に書き込まれる。
【０２２２】
上記したように本実施形態においては、データ格納部２２に格納されている構造化データのスキーマが統一されておらず複数（異種）のスキーマが存在する場合であっても、入力された複数の検索タームに関係する検索項目に関して、適切な検索項目の組み合わせ候補を生成することできる。したがって、本実施形態においては、異種のスキーマが存在する場合であっても、検索項目を指定することなく複数の検索タームを入力して検索を行う場合において検索精度を向上させることが可能となる。
【０２２３】
なお、本実施形態においては、換算ノード間距離の取得処理等において同類語情報を用いたが、例えば構造（スキーマ）の類似度を用いる等の他の方法であっても構わない。
【０２２４】
また、本実施形態においては、データ格納部２２に格納されている複数の構造情報によって示される構造（つまり、複数のスキーマ）は変更されないものとして説明したが、例えば構造化データ検索装置１１０の運用中にスキーマが変更された場合には、新たに換算用情報が生成（格納）される。また、このスキーマの変更に応じてスキーマ間距離情報も変更される。
【０２２５】
また、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【０２２６】
【図１】本発明の第１の実施形態に係る構造化データ検索装置のハードウェア構成を示すブロック図。
【図２】図１に示す構造化データ検索装置３０の主として機能構成を示すブロック図。
【図３】図２に示すデータ格納部２２に格納される検索項目関係情報のデータ構造の一例を示す図。
【図４】本実施形態に係る構造化データ検索装置３０の処理手順を示すフローチャート。
【図５】データ格納部２２に格納されている構造化データの構造の一例を示す図。
【図６】図５に示す構造化データの構造を表す構造図。
【図７】本発明の第２の実施形態に係る構造化データ検索装置３０のデータ格納部２２に格納される組み合わせ関係情報のデータ構造の一例を示す図。
【図８】本実施形態に係る構造化データ検索装置３０の処理手順を示すフローチャート。
【図９】本発明の第３の実施形態に係る構造化データ検索装置の主として機能構成を示すブロック図。
【図１０】本実施形態に係る構造化データ検索装置１００の処理手順を示すフローチャート。
【図１１】本発明の第４の実施形態における構造化データの要素及び属性を考慮した場合のノード間距離について具体的に説明するための図。
【図１２】本発明の第５の実施形態に係る構造化データ検索装置の主として機能構成を示すブロック図。
【図１３】本実施形態におけるデータ格納部２２に格納されている検索項目関係情報のデータ構造の一例を示す図。
【図１４】本実施形態におけるデータ格納部２２に格納される組み合わせ関係情報のデータ構造の一例を示す図。
【図１５】図１２に示すスキーマ間情報格納部２３に格納されているスキーマ間距離情報のデータ構造の一例を示す図。
【図１６】図１２に示す同類語情報格納部２４に格納されている同類語情報のデータ構造の一例を示す図。
【図１７】図１２に示す換算用情報格納部２５に格納されている換算用情報のデータ構造の一例を示す図。
【図１８】本実施形態に係る構造化データ検索装置１１０の処理手順を示すフローチャート。
【符号の説明】
【０２２７】
１０…コンピュータ、２０…外部記憶装置、２２…データ格納部、２３…スキーマ間情報格納部（構造間情報格納手段）、２４…同類語情報格納部、２５…換算用情報格納部、３０，１００，１１０…構造化データ検索装置、３１…検索ターム入力部、３２…検索項目抽出部、３３…ノード間距離処理部、３４，１１５…検索項目組み合わせ処理部、３５…検索候補表示処理部、３６…検索実行部、１０１…検索データ処理部、１１１…スキーマ情報判定部、１１２…スキーマ間情報処理部、１１３…同類語処理部、１１４…換算用情報処理部。
【図１】
2010086470.tif 000003
【図２】
2010086470.tif 000004
【図３】
2010086470.tif 000005
【図４】
2010086470.tif 000006
【図５】
2010086470.tif 000007
【図６】
2010086470.tif 000008
【図７】
2010086470.tif 000009
【図８】
2010086470.tif 000010
【図９】
2010086470.tif 000011
【図１０】
2010086470.tif 000012
【図１１】
2010086470.tif 000013
【図１２】
2010086470.tif 000014
【図１３】
2010086470.tif 000015
【図１４】
2010086470.tif 000016
【図１５】
2010086470.tif 000017
【図１６】
2010086470.tif 000018
【図１７】
2010086470.tif 000019
【図１８】
2010086470.tif 000020