(57)【要約】【課題】構造化データの検索性能を向上させることを可能とする。【解決手段】アプリケーション連携処理部５２１は、ユーザによって指定された第１の文字列を含む検索条件を取得する。オントロジーアクセス部３２は、アプリケーション連携処理部５２１によって取得された検索条件に含まれる第１の文字列に関係する第２の文字列及び当該第２の文字列の意味内容を表すオントロジー情報を、オントロジー格納部２２に格納されているオントロジーから検索する。項目対応記憶部２４は、構造化データ上のノードの位置を示すＰａｔｈを及びオントロジー情報を対応付けて格納する。データベース解析処理部５２５は、オントロジーアクセス部３２によって検索された第２の文字列及びオントロジー情報に対応付けて項目対応記憶部２４に格納されているＰａｔｈに基づいて、構造化データベース２３から構造化データを検索するための検索式を生成する。【選択図】      図５
2010079857.tif 000002
【特許請求の範囲】
【請求項１】
複数の文字列間の関係及び当該文字列の意味内容を表すオントロジー情報を含むオントロジーを格納するオントロジー格納手段と、構造化データ上のノードの位置を示すＰａｔｈ及び前記オントロジー情報を対応付けて格納する項目対応格納手段とを有する外部記憶装置と当該外部記憶装置を利用するコンピュータとから構成され、構造化データ格納手段に格納されている構造化データを検索する構造化データ検索装置において、前記コンピュータによって実行される構造化データ検索プログラムであって、
前記コンピュータに、
ユーザによって指定された第１の文字列を含む検索条件を取得するステップと、
前記取得された検索条件に含まれる第１の文字列に関係する１つまたは複数の第２の文字列及び当該第２の文字列の意味内容を表すオントロジー情報を、前記オントロジー格納手段に格納されているオントロジーから検索するステップと、
前記検索されたオントロジー情報が前記項目対応格納手段に格納されているかを判定するステップと、
前記項目対応格納手段に格納されていると判定された場合、前記検索された第２の文字列及び前記検索されたオントロジー情報に対応付けて当該項目対応格納手段に格納されているＰａｔｈに基づいて、前記構造化データ格納手段に格納されている構造化データを検索するための検索式を生成するステップと
を実行させるための構造化データ検索プログラム。
【請求項２】
前記オントロジー情報によって示される複数の文字列間の関係は、当該複数の文字列の各々が属するクラス間の関係を含み、
前記コンピュータに、
前記検索されたオントロジー情報が前記項目対応格納手段に格納されていないと判定された場合、前記検索された第２の文字列が属するクラスに関係するクラスに属する第３の文字列の意味内容を表すオントロジー情報を、前記オントロジー格納手段に格納されているオントロジーから検索するステップと、
前記検索された第２の文字列及び前記検索された前記第３の文字列の意味内容を表すオントロジー情報に対応付けて前記項目対応格納手段に格納されているＰａｔｈに基づいて前記検索式を生成するステップと
を更に実行させることを特徴とする請求項１記載の構造化データ検索プログラム。
【請求項３】
前記コンピュータに、
前記生成された検索式に合致する構造化データを前記構造化データ格納手段から検索するステップと、
前記検索された構造化データを前記ユーザに対して提示するステップと、
前記ユーザの操作に応じて、前記提示された構造化データが当該ユーザにとって所望の検索結果であるかを判定するステップと、
前記ユーザにとって所望の検索結果でないと判定された場合、前記検索された第２の文字列を含む構造化データを前記構造化データ格納手段から検索するステップと
を更に実行させることを特徴とする請求項１または２記載の構造化データ検索プログラム。
【請求項４】
前記コンピュータに、
前記生成された検索式に合致する第１の構造化データを前記構造化データ格納手段から検索するステップと、
前記検索された第１の構造化データを前記ユーザに対して提示するステップと、
前記ユーザの操作に応じて、前記提示された第１の構造化データが当該ユーザにとって所望の結果であるか否かを判定するステップと、
前記ユーザにとって所望の結果でないと判定された場合、前記検索された第２の文字列を含む第２の構造化データを前記構造化データ格納手段から検索するステップと、
前記検索された第２の構造化データをユーザに対して提示するステップと、
前記提示された第２の構造化データのうち、前記ユーザによって選択された第２の構造化データ上のノードの位置を示すＰａｔｈ及び前記検索された第２の文字列の意味内容を表すオントロジー情報を対応付けて前記対応項目格納手段に格納するステップと
を更に実行させることを特徴とする請求項１または２記載の構造化データ検索プログラム。
【請求項５】
構造化データ格納手段に格納されている構造化データを検索する構造化データ検索装置において、
複数の文字列間の関係及び当該文字列の意味内容を表すオントロジー情報を含むオントロジーを格納するオントロジー格納手段と、
ユーザによって指定された第１の文字列を含む検索条件を取得する取得手段と、
前記取得された検索条件意含まれる第１の文字列に関係する１つまたは複数の第２の文字列及び当該第２の文字列の意味内容を表すオントロジー情報を、前記オントロジー格納手段に格納されているオントロジーから検索するオントロジーアクセス手段と、
前記構造化データ上のノードの位置を示すＰａｔｈ及び前記オントロジー情報を対応付けて格納する項目対応格納手段と、
前記検索されたオントロジー情報が前記項目対応格納手段に格納されているかを判定する判定手段と、
前記項目対応格納手段に格納されていると判定された場合、前記検索された第２の文字列及び前記検索されたオントロジー情報に対応付けて当該項目対応格納手段に格納されているＰａｔｈに基づいて、前記構造化データ格納手段に格納されている構造化データを検索するための検索式を生成する検索式生成手段と
を具備することを特徴とする構造化データ検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化データを検索する構造化データ検索プログラム及び構造化データ検索装置に関する。
【背景技術】
【０００２】
近年、例えば語彙間の関係などの概念の体系を表すオントロジーと呼ばれる技術が知られている。このオントロジーを用いることによって、例えば構造化データベースに格納されている構造化データを検索する際に、より高度な検索を行うことが期待されている。構造化データの代表として、ＸＭＬ（eXtensible Markup Language）形式で記述されたＸＭＬデータがある。
【０００３】
これに関連して、例えばオントロジー検索機能と構造化データベース検索機能を連携させた技術が開示されている（例えば、特許文献１を参照）。
【０００４】
このような技術を用いて、例えば企業（会社）等に関する構造化データを検索するような場合を想定する。この場合、構造化データベース検索システム単体（構造化データベース検索機能のみ）では得ることができない、例えば分割統合された企業に関する関連データまたは同名の企業を区別した関連データ等を検索することが可能となる。
【０００５】
この際、オントロジー検索機能と構造化データベース検索機能を連携させたシステム（構造化データベース検索システム）においては、オントロジーの検索結果を用いて構造化データベースに対してキーワード検索（全文検索）が行われる。これにより、構造化データベースから関連データが検索される。
【特許文献１】特開２００４−９４８０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記したように、オントロジー検索機能と構造化データベース検索機能を連携させることにより、構造化データベース検索機能のみでは得ることができない関連データを検索することが可能となる。
【０００７】
しかしながら、オントロジーの検索結果を用いてキーワード検索が行われる場合には、全ての構造化データを検索することになるので、検索に時間がかかる。また、キーワード検索による検索結果には、適切でない結果が含まれる場合がある。
【０００８】
そこで、本発明の目的は、構造化データの検索性能を向上させることが可能な構造化データ検索プログラム及び構造化データ検索装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の１つの態様によれば、複数の文字列間の関係及び当該文字列の意味内容を表すオントロジー情報を含むオントロジーを格納するオントロジー格納手段と、構造化データ上のノードの位置を示すＰａｔｈ及び前記オントロジー情報を対応付けて格納する項目対応格納手段とを有する外部記憶装置と当該外部記憶装置を利用するコンピュータとから構成され、構造化データ格納手段に格納されている構造化データを検索する構造化データ検索装置において、前記コンピュータによって実行される構造化データ検索プログラムであって、前記コンピュータに、ユーザによって指定された第１の文字列を含む検索条件を取得するステップと、前記取得された検索条件に含まれる第１の文字列に関係する１つまたは複数の第２の文字列及び当該第２の文字列の意味内容を表すオントロジー情報を、前記オントロジー格納手段に格納されているオントロジーから検索するステップと、前記検索されたオントロジー情報が前記項目対応格納手段に格納されているかを判定するステップと、前記項目対応格納手段に格納されていると判定された場合、前記検索された第２の文字列及び前記検索されたオントロジー情報に対応付けて当該項目対応格納手段に格納されているＰａｔｈに基づいて、前記構造化データ格納手段に格納されている構造化データを検索するための検索式を生成するステップとを実行させるための構造化データ検索プログラムが提供される。
【発明の効果】
【００１０】
本発明によれば、構造化データの検索性能を向上させることを可能とする。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明の各実施形態について説明する。
【００１２】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る構造化データ検索装置のハードウェア構成を示すブロック図である。図１に示すように、コンピュータ１０は、例えばハードディスクドライブ（ＨＤＤ：Hard Disk Drive）のような外部記憶装置２０と接続されている。この外部記憶装置２０は、コンピュータ１０によって実行されるプログラム２１を格納する。コンピュータ１０及び外部記憶装置２０は、構造化データ検索装置３０を構成する。
【００１３】
図２は、本実施形態に係る構造化データ検索装置３０の主として機能構成を示すブロック図である。
【００１４】
図２に示す構造化データ検索装置３０は、オントロジー検索機能とデータベース検索機能を連携させたシステム、例えば住宅履歴情報管理システムに適用される。この住宅履歴情報管理システムは、例えば各住宅の設計、施工、維持情報等が記録された住宅履歴情報（構造化データ）を、当該システムを利用するユーザが検索を行って閲覧等を行うことが可能なシステムである。
【００１５】
図２に示すように、構造化データ検索装置３０は、アプリケーション３１、オントロジーアクセス部３２及び構造化データベースアクセス部３３を含む。本実施形態において、アプリケーション３１、オントロジーアクセス部３２及び構造化データベースアクセス部３３は、図１に示すコンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。このプログラム２１は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム２１が例えばネットワークを介してコンピュータ１０にダウンロードされても構わない。
【００１６】
また、構造化データ検索装置３０は、オントロジー格納部２２及び構造化データベース（ＤＢ）２３を含む。本実施形態において、オントロジー格納部２２及び構造化データベース２３は、例えば外部記憶装置２０に格納される。
【００１７】
アプリケーション３１は、例えばユーザによって指定された文字列を含む検索条件（検索情報）を取得する。アプリケーション３１は、取得された検索条件をオントロジーアクセス部３２に渡す。
【００１８】
アプリケーション３１は、オントロジーアクセス部３２からオントロジーの検索結果を取得する。アプリケーション３１は、取得されたオントロジーの検索結果を構造化データベースアクセス部３３に渡す。
【００１９】
アプリケーション３１は、構造化データベースアクセス部３３から構造化データの検索結果を取得する。アプリケーション３１は、取得された構造化データの検索結果をユーザに対して提示する。
【００２０】
オントロジー格納部２２には、例えば複数の語彙（文字列）間の関係及び当該語彙の意味内容を表すオントロジー情報を含むオントロジーが格納される。この複数の文字列間の関係には、当該複数の文字列の各々が属するクラス間の関係が含まれる。ここでは、オントロジー格納部２２には、例えば設計会社、施工会社の情報がオントロジーとして用意されている。このオントロジー格納部２２のデータ構造については後述する。
【００２１】
オントロジーアクセス部３２は、オントロジー格納部２２に対して、オントロジーの検索処理を行う機能部である。オントロジーアクセス部３２は、アプリケーション３１から渡された検索条件を取得する。オントロジーアクセス部３２は、オントロジー検索のライブラリを呼び出し、取得された検索条件に応じた検索結果（オントロジーの検索結果）を受け取る。オントロジーアクセス部３２は、このオントロジーの検索結果をアプリケーション３１に返す。
【００２２】
オントロジーの検索結果には、ユーザによって指定された検索条件に含まれる文字列に関係する１つまたは複数の文字列及び当該文字列の意味内容を表すオントロジー情報等が含まれる。
【００２３】
なお、本実施形態においては、オントロジーの検索プロトコルとしては、例えばＳＰＡＲＱＬ（SPARQL Protocol and RDF Query Language）が用いられるものとする。
【００２４】
構造化データベース２３には、上記したような各住宅の住宅履歴情報として例えば建築情報、素材情報または家歴情報等の構造化データが格納される。また、構造化データベース２３には、構造化データ（実データ）の例えば見出し情報に相当するメタデータが更に格納されてもよい。
【００２５】
構造化データベースアクセス部３３は、構造化データベース２３に対して、構造化データの検索処理を行う機能部である。構造化データベースアクセス部３３は、アプリケーション３１から渡されたオントロジーの検索結果を取得する。構造化データベースアクセス部３３は、取得されたオントロジーの検索結果を用いて、構造化データベース２３から構造化データを検索する。この検索処理の詳細については後述する。
【００２６】
構造化データベースアクセス部３３は、検索結果（構造化データの検索結果）をアプリケーション３１に返す。アプリケーション３１は、ユーザによって指定された検索条件に対する応答として、この構造化データの検索結果を当該ユーザに対して提示する。
【００２７】
図３は、図１に示すオントロジー格納部２２に格納されているオントロジーの一例を示す。具体的には、図３は、上記した設計会社及び施工会社のような建築会社のオントロジーの一例を示す。
【００２８】
図３に示す例では、「ｍａｓｔｅｒＣｏｍｐａｎｙ（クラス）」のサブクラス（ｓｕｂＣｌａｓｓＯｆ）として「ｄｅｓｉｇｎＣｏｍｐａｎｙ（設計会社）」及び「ｂｕｉｌｄＣｏｍｐａｎｙ（施工会社）」が存在する。この場合、「ｍａｓｔｅｒＣｏｍｐａｎｙ」及び「ｄｅｓｉｇｎＣｏｍｐａｎｙ」、「ｍａｓｔｅｒＣｏｍｐａｎｙ」及び「ｂｕｉｌｄＣｏｍｐａｎｙ」は、それぞれ親子関係にあるという。
【００２９】
「ｄｅｓｉｇｎＣｏｍｐａｎｙ（設計会社）」のクラスには、「秋田設計事務所」、「鈴木設計事務所（一級、二級）」、「森下設計事務所」、「朝日設計事務所」等が属している。
【００３０】
一方、「ｂｕｉｌｄＣｏｍｐａｎｙ（施工会社）」のクラスには「千葉工務店」が属している。
【００３１】
また、図３に示す「ｍａｒｇｅＯｆ」及び「ｄｉｖｉｄｅＯｆ」は、複数の文字列（ここでは、秋田設計事務所、森下設計事務所等）の関係を表す。
【００３２】
「ｍａｒｇｅＯｆ」は、矢印の元の設計会社が矢印の先の設計会社が統合することによって設立された設計会社であることを示す。つまり、図３に示す例では、森下設計事務所は、秋田設計事務所及び朝日設計事務所が統合することによって設立された設計会社であることが示されている。
【００３３】
一方、「ｄｉｖｉｄｅＯｆ」は、矢印の元の設計会社が矢印の先の設計会社が分割することによって設立された設計会社であることを示す。つまり、図３に示す例では、鈴木設計事務所、東京設計事務所及び千葉設計事務所は、森下設計事務所が分割することによって設立された設計会社であることが示されている。
【００３４】
また、図３に示す例では、例えば「秋田設計事務所」は、設計会社（ｄｓｉｇｎＣｏｍｐａｎｙ）の名称（ｎａｍｅ）であることが示されている。他の「森下設計事務所」等についても同様である。また、図３に示す例では、「千葉工務店」は、施工会社（ｂｕｉｌｄＣｏｍｐａｎｙ）の名称（ｎａｍｅ）であることが示されている。
【００３５】
上記したように、図３に示すオントロジーには、例えば「秋田設計事務所」、「森下設計事務所」及び「鈴木設計事務所」のような複数の文字列間の関係（例えば、「ｍａｒｇｅＯｆ」）及び当該文字列の意味内容（例えば、「ｎａｍｅ」）を表すオントロジー情報が含まれる。
【００３６】
次に、図４のフローチャートを参照して、図２に示す構造化データ検索装置３０の処理手順について説明する。
【００３７】
まず、アプリケーション３１は、ユーザによって指定された文字列を含む検索条件を取得する（ステップＳ１）。
【００３８】
次に、オントロジーアクセス部３２は、アプリケーション３１によって取得された検索条件（に含まれる文字列）に基づいて、オントロジー格納部２２からオントロジーの検索結果を取得する（ステップＳ２）。このオントロジーの検索結果には、アプリケーション３１によって取得された検索条件に含まれる文字列と関係のある文字列が含まれる。また、オントロジーの検索結果には、当該オントロジーの検索結果に含まれる文字列に関する情報（文字列の意味内容を表す情報）が含まれる。
【００３９】
ここで、アプリケーション３１は、オントロジーアクセス部３２によって取得されたオントロジーの検索結果に含まれる文字列に関する情報に基づいて、構造化データベースアクセス部３３において実行されるキーバリュー検索におけるキー（タグ名）を決定する。
【００４０】
構造化データベースアクセス部３３は、オントロジーアクセス部３２によって取得されたオントロジーの検索結果及びアプリケーション３１によって決定されたタグ名を用いて、構造化データベース２３に対してキーバリュー検索（項目検索）を実行する（ステップＳ３）。この場合、上記したアプリケーション３１によって決定されたタグ名をキー、オントロジーの検索結果に含まれる文字列をバリュー（当該タグの値）として検索処理が実行される。
【００４１】
構造化データベースアクセス部３３は、構造化データの検索結果を取得する（ステップＳ４）。この場合、ユーザによって指定されたタグの値としてオントロジーの検索結果に含まれる文字列が含まれる構造化データが検索結果として取得される。
【００４２】
構造化データベースアクセス部３３によって取得された構造化データの検索結果は、例えばアプリケーション３１を介してユーザに対して提示される（ステップＳ５）。
【００４３】
次に、上記した図３を用いて、本実施形態に係る構造化データ検索装置３０の具体的な動作例について説明する。ここでは、第１及び第２の動作例について説明する。
【００４４】
まず、第１の動作例は、例えば会社名を対象に統廃合検索する場合を想定している。ここでは、上記した図３において述べたように、例えば設計会社の統廃合（統合または分割）を経て現在に至っている状況を前提とする。なお、オントロジーに対しては、ＯＷＬ（Web Ontology Language）のTransitivePropertyを用いて推移律を働かせることを前提とする。
【００４５】
例えば「秋田設計事務所」という設計会社が設計した建物に設計欠陥があることが判明した場合に、「秋田設計事務所」の住宅履歴情報を検索する場合を想定する。しかしながら、この「秋田設計事務所」は、現在は存在しておらず、統合（合併）や分割を経て名称不明の設計会社が承継しているものとする。このような場合には、ユーザは、「秋田設計事務所」が例えば統合または分割された後の会社（承継会社）に関する情報を取得すべきである。
【００４６】
以上のような状況において、ユーザが例えば検索条件として「秋田設計事務所」の情報（文字列）を指定して、「会社名を対象に統廃合検索」を実行したものとする。ユーザは、例えば構造化データ検索装置３０に備えられているモニタ（図示せず）の画面から検索条件等を指定できる。
【００４７】
この場合、構造化データ検索装置３０のアプリケーション３１は、ユーザによって指定された「秋田設計事務所」の情報を取得する。アプリケーション３１は、取得された「秋田設計事務所」の情報をオントロジーアクセス部３２に渡す。
【００４８】
次に、オントロジーアクセス部３２は、オントロジー格納部２２に対して、オントロジーの検索処理を実行する。オントロジーアクセス部３２は、アプリケーション３１から渡された「秋田設計事務所」の情報に基づいて検索処理を実行する。
【００４９】
具体的には、オントロジーアクセス部３２は、アプリケーション３１から渡された「秋田設計事務所」（の情報）の承継会社に関してオントロジーの検索処理を実行する。
【００５０】
これにより、オントロジーアクセス部３２は、オントロジーの検索結果を取得する。このオントロジーの検索結果には、「秋田設計事務所」及び当該「秋田設計事務所」の承継会社に関する情報等が含まれる。
【００５１】
図３に示すオントロジーの例では、オントロジーの検索結果として、「秋田設計事務所」に関係する設計会社である「鈴木設計事務所」、「千葉設計事務所」、「森下設計事務所」、「東京設計事務所」及び「秋田設計事務所」に関する情報（例えば会社名、会社種別、設計会社の級）がオントロジーアクセス部３２によって取得される。
【００５２】
なお、図３に示すオントロジーの例では、「森下設計事務所」は、「秋田設計事務所」が他の設計事務所（朝日設計事務所）と統合されることによって設立された設計会社である。このため、「森下設計事務所」は「秋田設計事務所」の承継会社である。
【００５３】
また、「鈴木設計事務所」、「千葉設計事務所」及び「東京設計事務所」は、「秋田設計事務所」の承継会社である「森下設計事務所」が分割されることによって設立された設計会社である。このため、「鈴木設計事務所」、「千葉設計事務所」及び「東京設計事務所」は、「秋田設計事務所」の承継会社である。
【００５４】
オントロジーアクセス部３２は、オントロジーの検索結果をアプリケーション３１に返す。
【００５５】
アプリケーション３１は、オントロジーアクセス部３２からのオントロジーの検索結果を構造化データベースアクセス部３３に渡す。
【００５６】
また、アプリケーション３１は、オントロジーの検索結果に含まれる例えば会社種別の情報から構造化データアクセス部３３において実行されるキーバリュー検索のキーに相当するタグ名を決定する。として「設計事務所」を決定する。ここでは、アプリケーション３１は、キーに相当するタグ名として例えば「設計事務所」を決定する。
【００５７】
なお、オントロジーの検索結果に含まれる会社種別の情報が例えば施工会社である場合には、例えばキーに相当するタグ名としては「工務店」等が決定される。
【００５８】
構造化データベースアクセス部３３は、アプリケーション３１から渡されたオントロジーの検索結果及びアプリケーション３１によって決定されたタグ名（ここでは、「設計事務所」）を用いて、構造化データベース２３に対して構造化データをキーバリュー検索する。この場合、アプリケーション３１によって決定されたタグ名（設計事務所）をキーとして、また、オントロジーの検索結果（に含まれる例えば「鈴木設計事務所」のような文字列）をバリューとして、キーバリュー検索が実行される。
【００５９】
構造化データベースアクセス部３３は、アプリケーション３１によって決定されたタグ名及びオントロジーの検索結果に含まれる情報（文字列）をキー及びバリューとする検索条件において、当該検索条件に合致する構造化データを検索結果として取得する。構造化データベースアクセス部３３は、取得された検索結果をアプリケーション３１に返す。この検索結果は、ユーザに対して例えば画面表示される。
【００６０】
次に、第２の動作例は、例えば同名（部分一致を含む）の会社名が複数存在する場合に、会社名を対象に曖昧解決検索する場合を想定している。
【００６１】
図３に示す例では、例えば会社名が同名であるが、設計の指定級が異なる複数の「鈴木設計事務所」が存在する。ここで、ユーザが「鈴木」という名の設計事務所（つまり、鈴木設計事務所）」という情報から、当該ユーザが求める鈴木設計事務所が設計を行なった住宅に関する構造化データ（住宅履歴情報）を検索するものとする。
【００６２】
この場合、ユーザは、例えば構造化データ検索装置３０に備えられているモニタの画面から「鈴木」の情報を画面入力（指定）して、「会社名を対象に曖昧解決検索」を実行する。
【００６３】
構造化データ検索装置３０のアプリケーション３１は、ユーザによって指定された「鈴木」の情報を取得する。アプリケーション３１は、取得された「鈴木」の情報をオントロジーアクセス部３２に渡す。
【００６４】
オントロジーアクセス部３２は、オントロジー格納部２２に対して、オントロジーの検索処理を実行する。オントロジーアクセス部３２は、アプリケーション３１から渡された「鈴木」の情報に基づいて検索処理を実行する。
【００６５】
オントロジーアクセス部３２は、オントロジーの検索結果を取得する。図３に示すオントロジーの例では、オントロジーの検索結果として、２つの「鈴木設計事務所」に関する情報が取得される。一方の「鈴木設計事務所」に関する情報は、「鈴木設計事務所」、「設計会社」及び「一級」を含む。また、他方の「鈴木設計事務所」に関する情報は、「鈴木設計事務所」、「設計会社」及び「二級」を含む。
【００６６】
オントロジーアクセス部３２は、オントロジーの検索結果をアプリケーション３１に返す。
【００６７】
アプリケーション３１は、オントロジーの検索結果である「鈴木設計事務所」に関する情報が２件以上存在する場合には、当該２件以上の情報のうち、ユーザが求める情報を例えば１つ当該ユーザに選択させる。この場合、選択画面を表示することによって、ユーザに選択させる。
【００６８】
なお、オントロジーの検索結果である情報が１件の場合には、選択画面は表示されない。
【００６９】
ユーザは、選択画面においていずれかの「鈴木設計事務所」を選択する。ここでは、「鈴木設計事務所」、「設計会社」及び「一級」（を含む「鈴木設計事務所」に関する情報）が選択されたものとする。
【００７０】
アプリケーション３１は、ユーザによって選択されたオントロジーの検索結果（「鈴木設計事務所」、「設計会社」及び「一級」）を構造化データベースアクセス部３３に渡す。
【００７１】
また、アプリケーション３１は、ユーザによって選択された「鈴木設計事務所」に関する情報に基づいて、構造化データベースアクセス部３３におけるキーバリュー検索のキーに相当するタグ名（例えば、「設計事務所」）を決定する。
【００７２】
構造化データベースアクセス部３３は、アプリケーション３１から渡されたオントロジーの検索結果及びアプリケーション３１によって決定されたタグ名を用いて、構造化データベース２３に対して構造化データをキーバリュー検索する。この場合、アプリケーション３１によって決定されたタグ名をキーとして、また、オントロジーの検索結果（に含まれる文字列）をバリューとして、キーバリュー検索が実行される。
【００７３】
構造化データベースアクセス部３３は、アプリケーション３１によって決定されたタグ名及びオントロジーの検索結果に含まれる情報（文字列）をキー及びバリューとする検索条件において、当該検索条件に合致する構造化データを検索結果として取得する。構造化データベースアクセス部３３は、取得された検索結果をアプリケーション３１に返す。この検索結果は、ユーザに対して例えば画面表示される。
【００７４】
上記したように本実施形態においては、ユーザによって指定された検索条件（文字列）に基づいてオントロジーの検索処理を行い、当該オントロジーの検索結果を用いて構造化データベース２３に対してキーバリュー検索を実行する。これにより、例えばオントロジーの検索結果に含まれる文字列をキーワードとしてキーワード検索（全文検索）を実行する場合と比較して、より構造化データの検索性能を向上させることができる。
【００７５】
なお、本実施形態においては、オントロジーの検索結果を用いて構造化データベース２３から構造化データを検索するものとして説明したが、オントロジーの検索結果を用いて例えば構造化データベース２３に格納されている構造化データのメタデータを検索し、当該メタデータのリスト（結果リスト）がユーザに画面表示される構成であってもよい。この場合、画面表示されたメタデータのリストからユーザが所望のメタデータを選択することによって、当該メタデータの実データが表示される。具体的には、ユーザは、メタデータの結果リストにある実データの表示ボタンを用いて、実データの詳細画面を表示させることができる。このように、構造化データでなくメタデータを検索することで、構造化データ自体を検索する場合に比べて、検索処理量を低減させることができるため、処理速度を向上させることができる。
【００７６】
［第２の実施形態］
次に、図５を参照して、本発明の第２の実施形態について説明する。図５は、本実施形態に係る構造化データ検索装置の主として機能構成を示すブロック図である。なお、前述した図２と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図２と異なる部分について主に述べる。
【００７７】
また、本実施形態に係る構造化データ検索装置のハードウェア構成は、前述した第１の実施形態と同様であるため、適宜、図１を用いて説明する。
【００７８】
図５に示すように、構造化データ検索装置５０は、アプリケーション５１、検索最適化処理部５２及び構造化データベースアクセス部５３を含む。検索最適化処理部５２は、アプリケーション連携処理部５２１、中央処理部５２２、オントロジー解析処理部５２３、項目対応処理部５２４及びデータベース解析処理部５２５を含む。
【００７９】
本実施形態において、アプリケーション５１、検索最適化処理部５２に含まれるアプリケーション連携処理部５２１、中央処理部５２２、オントロジー解析処理部５２３、項目対応処理部５２４、データベース解析処理部５２５及び構造化データベースアクセス部５３は、図１に示すコンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。このプログラム２１は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム２１が例えばネットワークを介してコンピュータ１０にダウンロードされても構わない。
【００８０】
また、検索最適化処理部５２は、項目対応記憶部２４を含む。本実施形態において、項目対応記憶部２４は、例えば外部記憶装置２０に格納される。
【００８１】
アプリケーション５１は、例えばユーザによって指定された文字列を含む検索条件を取得する。アプリケーション５１は、取得された検索条件を検索最適化処理部５２に渡す。また、アプリケーション５１は、検索最適化処理部５２から渡される構造化データの検索結果を取得する。アプリケーション５１は、取得された構造化データの検索結果をユーザに対して提示する。
【００８２】
検索最適化処理部５２のアプリケーション連携処理部５２１は、アプリケーション５１から渡された検索条件を取得する。アプリケーション連携処理部５２１は、取得された検索条件を中央処理部５２２に渡す。また、アプリケーション連携処理部５２１は、中央処理部５２２から渡される構造化データの検索結果をアプリケーション５１に渡す。
【００８３】
中央処理部５２２は、検索最適化処理部５２の内部機能部（各部５２１、５２３〜５２５）を呼び出して、検索最適化処理部５２の制御を行う。
【００８４】
中央処理部５２２は、アプリケーション連携処理部５２１から渡された検索条件をオントロジーアクセス部３２に渡し、当該検索条件に応じた結果（オントロジーの検索結果）を取得する。このオントロジーの検索結果には、検索条件に含まれる文字列（第１の文字列）に関係する１つまたは複数の文字列（第２の文字列）及び当該文字列（第２の文字列）の意味内容を表すオントロジー情報が含まれる。
【００８５】
オントロジー情報には、ＯｎｔｏｌｏｇｙＮａｍｅが含まれる。ＯｎｔｏｌｏｇｙＮａｍｅは、オントロジーの例えばプロパティ名またはクラス名を示す。また、オントロジー情報には、名前空間及び種別が含まれる。名前空間は、ＯｎｔｏｌｏｇｙＮａｍｅの前に付加され、名前空間＋ＯｎｔｏｌｏｇｙＮａｍｅで完全なＵＲＩ（Uniform Resource Identifier）となる。種別は、オントロジーのプロパティまたはクラスの種別情報である。
【００８６】
ここで、プロパティとは、オントロジーのＲＤＦ（Resource Description Framework）定義における述語を意味する。なお、種別には、プロパティ（述語）以外に、例えば主語、目的語等が含まれる。この場合には、ＯｎｔｏｌｏｇｙＮａｍｅは主語名または目的語名を示す。
【００８７】
オントロジー解析処理部５２３は、中央処理部５２２によって取得されたオントロジーの検索結果を解析する。これにより、オントロジー解析処理部５２３は、オントロジーの検索結果から、当該オントロジーの検索結果に含まれるオントロジー情報（例えばＯｎｔｏｌｏｇｙＮａｍｅ）を抽出する。具体的には、オントロジー解析処理部５２３は、オントロジーの検索結果をもとに、例えば当該検索結果のインスタンスに関連するプロパティの情報を抽出する。
【００８８】
項目対応記憶部２４には、構造化データ上のノードの位置を示すＰａｔｈ及びオントロジー情報が対応付けて格納（記憶）されている。オントロジー情報には、ＯｎｔｏｌｏｇｙＮａｍｅ、名前空間及び種別が含まれる。
【００８９】
また、項目対応記憶部２４には、Ｐａｔｈ及びオントロジー情報に対応付けてスコアが格納される。このスコアは、オントロジー情報（オントロジーのプロパティまたはクラス）と構造化データのタグ（Ｐａｔｈ）との対応の強さを表す値である。
【００９０】
項目対応処理部５２４は、項目対応記憶部２４への各種データの記録及び読み出しを行う機能を有する。項目対応処理部５２４は、オントロジー解析処理部５２４によって抽出されたオントロジー情報に対応付けて項目対応記憶部２４に格納されているＰａｔｈ（の情報）を読み出す。項目対応処理部５２４は、読み出されたＰａｔｈを、中央処理部５２２を介してデータベース解析処理部５２５に渡す。
【００９１】
データベース解析処理部５２５は、項目対応処理部５２３から渡されたＰａｔｈに基づいてＸＱｕｅｒｙ式（検索式）を生成する。ＸＱｕｅｒｙ式は、構造化データベース２３から構造化データを検索するために用いられる。データベース解析処理部５２５によって生成されたＸＱｕｅｒｙ式は、中央処理部５２２を介して構造化データベースアクセス部５３に渡される。なお、生成される検索式は、例えばＸＰａｔｈ式のような構造化検索式であってもよい。
【００９２】
構造化データベースアクセス部５３は、データベース解析処理部５２５から渡されたＸＱｕｅｒｙ式を取得する。構造化データベースアクセス部５３は、取得されたＸＱｕｅｒｙ式を用いて、構造化データベース２３から構造化データを検索する。構造化データベースアクセス部５３は、ＸＱｕｅｒｙ式に合致する構造化データを検索結果として検索最適化処理部５２（に含まれる中央処理部５２２）に返す。この検索結果（構造化データ）は、ユーザに対して提示される。
【００９３】
ここで、図６を参照して、オントロジーの検索結果に含まれるオントロジー情報について説明する。図６は、オントロジーのデータ構造の一例を示す。
【００９４】
ユーザによって指定された検索条件に含まれる文字列（第１の文字列）に関係する文字列（第２の文字列）が例えば図６に示す「水島設計」である場合を想定する。この場合、「水島設計」は、ユーザによって指定された検索条件に応じて取得されるオントロジーの検索結果に含まれる。
【００９５】
また、この場合においては、オントロジー情報に含まれるＯｎｔｏｌｏｇｙＮａｍｅとしては図６に示す「ＣｏｍｐａｎｙＮａｍｅ」がオントロジーの検索結果に含まれることになる。この「ＣｏｍｐａｎｙＮａｍｅ」は、「水島設計」のプロパティ名である。なお、図６においては、オントロジー情報に含まれる名前空間等については省略されている。
【００９６】
図７は、図５に示す項目対応記憶部２４のデータ構造の一例を示す。図７に示すように、項目対応記憶部２４には、Ｐａｔｈ、オントロジー情報及びスコアが対応付けて格納されている。また、オントロジー情報には、ＯｎｔｏｌｏｇｙＮａｍｅ、名前空間及び種別が含まれる。
【００９７】
Ｐａｔｈは、構造化データのタグを表す。オントロジー情報は、オントロジーの検索結果に含まれる情報である。また、スコアは、Ｐａｔｈ及びオントロジー情報（のＯｎｔｏｌｏｇｙＮａｍｅ）の対応の強さを表す値である。
【００９８】
図７に示す例では、項目対応記憶部２４には、Ｐａｔｈ「／大分類／中分類／業種／会社」、ＯｎｔｏｌｏｇｙＮａｍｅ「ＣｏｍｐａｎｙＮａｍｅ」、名前空間「ｈｔｔｐ：／／ｔｅｓｔ．ｏｎｔｏｌｏｇｙ／」、種別「Ｐｒｏｐｅｒｔｙ」及びスコア「５０」が格納されている。
【００９９】
項目対応記憶部２４には、Ｐａｔｈ「／大分類／中分類／業種」、ＯｎｔｏｌｏｇｙＮａｍｅ「ＢｕｓｉｎｅｓｓＣａｔｅｇｏｒｙＮａｍｅ」、名前空間「ｈｔｔｐ：／／ｔｅｓｔ．ｏｎｔｏｌｏｇｙ／」、種別「Ｐｒｏｐｅｒｔｙ」及びスコア「５０」が格納されている。
【０１００】
項目対応記憶部２４には、Ｐａｔｈ「／インフラ／道路／有料道路／高速道路」、ＯｎｔｏｌｏｇｙＮａｍｅ「ＴｕｒｎｐｉｋｅＮａｍｅ」、名前空間「ｈｔｔｐ：／／ｔｅｓｔ．ｏｎｔｏｌｏｇｙ／」、種別「Ｐｒｏｐｅｒｔｙ」及びスコア「４０」が格納されている。
【０１０１】
また、項目対応記憶部２４には、Ｐａｔｈ「／インフラ／道路／有料道路／山岳道路」、ＯｎｔｏｌｏｇｙＮａｍｅ「ＴｕｒｎｐｉｋｅＮａｍｅ」、名前空間「ｈｔｔｐ：／／ｔｅｓｔ．ｏｎｔｏｌｏｇｙ／」、種別「Ｐｒｏｐｅｒｔｙ」及びスコア「３０」が格納されている。
【０１０２】
次に、図８のフローチャートを参照して、構造化データ検索装置５０の主として検索最適化処理部５２の処理手順について説明する。
【０１０３】
まず、検索最適化処理部５２に含まれる中央処理部５２２は、オントロジーアクセス部３２から渡されたオントロジーの検索結果を取得する（ステップＳ１１）。
【０１０４】
このオントロジーの検索結果は、ユーザによって指定された検索条件に基づいて、オントロジーアクセス部３２がオントロジー格納部２２に対して検索処理を実行した結果として得られたものである。
【０１０５】
以下、オントロジーの検索結果として「水島設計」という会社名が得られているものとして説明する。また、このオントロジーの検索結果に含まれるオントロジー情報には、「水島設計」のＯｎｔｏｌｏｇｙＮａｍｅ（プロパティ名）として「ＣｏｍｐａｎｙＮａｍｅ」が含まれるものとする。
【０１０６】
中央処理部５２２は、取得されたオントロジーの検索結果をオントロジー解析処理部５２４に渡す。
【０１０７】
オントロジー解析処理部５２３は、中央処理部５２２から渡されたオントロジーの検索結果を解析する。オントロジー解析処理部５２３は、オントロジーの検索結果を解析することにより、当該オントロジーの検索結果に含まれるオントロジー情報（ＯｎｔｏｌｏｇｙＮａｍｅ等）を抽出する（ステップＳ１２）。
【０１０８】
項目対応処理部５２４は、オントロジー解析処理部５２３によって抽出されたオントロジー情報を取得する。項目対応処理部５２４は、取得されたオントロジー情報が項目対応記憶部２４に格納されているか、つまり、当該オントロジー情報が項目対応記憶部２４内に存在するか否かを判定する（ステップＳ１３）。
【０１０９】
例えばオントロジー情報が項目対応記憶部２４内に複数存在すると判定された場合（ステップＳ１３のＹＥＳ）、項目対応処理部５２４は、当該複数のオントロジー情報の各々に対応付けて項目対応記憶部２４に格納されている複数のＰａｔｈを取得する。
【０１１０】
この複数のＰａｔｈは、アプリケーション５１を介してユーザに対して画面提示される（ステップＳ１４）。このとき、複数のＰａｔｈは、例えば当該複数のＰａｔｈの各々に対応付けて項目対応記憶部２４に格納されているスコアが高い順に提示される。ユーザは、画面提示された複数のＰａｔｈの中から、１つのＰａｔｈを選択する（ステップＳ１５）。
【０１１１】
ここでは、例えば図７に示すＰａｔｈ「／大分類／中分類／業種／会社」がユーザによって選択されたものとする。
【０１１２】
データベース解析処理部５２５は、ユーザによって選択されたＰａｔｈに基づいて、構造化データベース２３から構造化データを検索するためのＸＱｕｅｒｙ式を生成する（ステップＳ１６）。
【０１１３】
具体的には、ユーザによって選択されたＰａｔｈが「／大分類／中分類／業種／会社」であるため、データベース解析処理部５２５は、構造化データの構造が「／大分類／中分類／業種／会社」であり、会社タグの値に「水島設計」が含まれる構造化データを検索（キーバリュー検索）するためのＸＱｕｅｒｙ式を生成する。
【０１１４】
データベース解析処理部５２５は、生成されたＸＱｕｅｒｙ式を、中央処理部５２２を介して構造化データベースアクセス部５３に渡す。構造化データベースアクセス部５３は、中央処理部５２２から渡されたＸＱｕｅｒｙ式を用いて、構造化データベース２３から当該ＸＱｕｅｒｙ式に合致する構造化データを検索する。構造化データベースアクセス部５３は、構造化データの検索結果を検索最適化処理部５２（に含まれる中央処理部５２２）に返す。
【０１１５】
中央処理部５２２は、構造化データの検索結果を、アプリケーション５１を介してユーザに提示する（ステップＳ１７）。
【０１１６】
このとき、ユーザ（検索者）は、提示された構造化データの検索結果を例えば画面を通して確認することができる。ユーザは、提示された構造化データの検索結果が当該ユーザにとって所望の結果であるか否かを構造化データ検索装置５０に対して指示することができる。つまり、構造化データ検索装置５０においては、ユーザの操作に応じて、構造化データの検索結果が当該ユーザにとって所望の結果であるか否かが判定される。
【０１１７】
構造化データの検索結果がユーザにとって所望の結果でないと判定された場合（ステップＳ１８のＮＯ）、構造化データベースアクセス部５３を介して全文検索が実行される（ステップＳ１９）。この場合、オントロジーの検索結果に含まれる文字列（ユーザによって指定された検索条件に含まれる文字列及び当該文字列に関係のある文字列）、例えば「水島設計」を検索条件（キーワード）として全文検索が実行される。この全文検索による検索結果は、ユーザに対して提示される。
【０１１８】
一方、ステップＳ１３においてオントロジー情報が項目対応記憶部２４内に存在しないと判定された場合、ステップＳ１９の処理が実行される。
【０１１９】
なお、ステップＳ１３においてオントロジー情報が項目対応記憶部２４内に複数存在する場合には当該複数のオントロジー情報に対応付けて項目対応記憶部２４に格納されている複数のＰａｔｈをユーザに対して提示し、Ｐａｔｈをユーザに選択させるものとして説明したが、ステップＳ１３においてオントロジー情報が項目対応記憶部２４内に１つしか存在しない場合には、上記したステップＳ１４及びステップＳ１５の処理は省略されても構わない。
【０１２０】
上記したように本実施形態においては、オントロジーの検索結果に含まれるオントロジー情報（例えばＯｎｔｏｌｏｇｙＮａｍｅ）に対応付けて項目対応記憶部２４に格納されているＰａｔｈからＸＱｕｅｒｙ式が生成され、当該ＸＱｕｅｒｙ式を用いて構造化データが検索される。よって、本実施形態においては、オントロジー検索機能と構造化データベース検索機能を連携させ、オントロジーの検索結果に応じたＸＱｕｅｒｙ式を生成することにより、より検索性能を向上させることが可能となる。つまり、本実施形態においては、例えばキーワード検索のような検索方法と比較して、検索時間を短縮でき、かつ、ノイズを減少させることができるので、より適切な検索結果を機械的に得ることが可能となる。
【０１２１】
また、本実施形態においては、オントロジー検索機能と構造化データベース検索機能を連携させる際に、初期情報の設定等による負担をかけることなく検索性能を向上させることが可能となる。
【０１２２】
なお、本実施形態においては、検索最適化処理部５２に含まれる中央処理部５２２がＰａｔｈに基づいてＸＱｕｅｒｙ式を生成するものとして説明したが、構造化データベースアクセス部５３がＸＱｕｅｒｙ式を生成する構成であってもよい。
【０１２３】
また、本実施形態においては、上記した図８に示すステップＳ１８においてユーザにとって所望の検索結果が得られていない場合にはオントロジーの検索結果に含まれる文字列に基づいて全文検索を実行するものとして説明したが、ユーザにとって所望の検索結果が得られていない場合には図８に示すステップＳ１５に戻って当該ユーザに他のＰａｔｈを更に選択させる構成であっても構わない。この場合、ユーザによって選択されたＰａｔｈに基づいて、ステップＳ１６以降の処理が実行される。
【０１２４】
また、本実施形態においては、図８のステップＳ１３において項目対応記憶部２４にオントロジー情報が複数存在する場合には当該オントロジー情報に対応付けられている複数のＰａｔｈのうちの１つをユーザに対して選択させるものとして説明したが、当該複数のＰａｔｈに対応付けて項目対応記憶部２４に格納されているスコアが最も高いＰａｔｈが自動的に選択される構成であっても構わない。
【０１２５】
具体的には、図７に示す項目対応記憶部２４においては、２つの同一のオントロジー情報（ＯｎｔｏｌｏｇｙＮａｍｅ「ＴｕｒｎｐｉｋｅＮａｍｅ」）が格納されている。この場合、この２つのオントロジー情報に対応付けられているＰａｔｈのうち、スコアが最も高いＰａｔｈ「／インフラ／道路／有料道路／高速道路」が自動的に選択される。これにより、項目対応記憶部２４にオントロジー情報が複数存在する場合であっても、ユーザが例えば構造化データ検索装置５０を操作することによってＰａｔｈを選択するという煩雑さを解消することができる。
【０１２６】
このように、項目対応記憶部２４にオントロジー情報が複数存在する場合に、Ｐａｔｈをユーザに選択させる、またはスコアに基づいて自動的に選択させるといったＰａｔｈの選択方法については、検索最適化処理部５２の設定によって変更可能である。
【０１２７】
また、本実施形態においては、項目対応記憶部２４に格納されているＰａｔｈに基づいてＸＱｕｅｒｙ式が生成されるものとして説明したが、当該Ｐａｔｈの最後のタグのみに基づいてＸＱｕｅｒｙ式が生成される構成でも構わない。これによれば、図８のステップＳ１５においてユーザによって選択されたＰａｔｈが例えば「／大分類／中分類／業種／会社」である場合には、会社タグの値に例えば「水島設計」が含まれる構造化データを検索するためのＸＱｕｅｒｙ式が生成される。これにより、構造化データの検索結果を絞り込みすぎないことで、ユーザにとって所望の検索結果の漏れを防止することが可能となる。
【０１２８】
また、項目対応記憶部２４に格納されているＰａｔｈに基づいてＸＱｕｅｒｙ式が生成されるか、当該Ｐａｔｈの最後のタグのみに基づいてＸＱｕｅｒｙ式が生成されるかについては、ユーザが選択可能な構成であっても構わない。
【０１２９】
［第３の実施形態］
次に、本発明の第３の実施形態について説明する。本実施形態に係る構造化データ検索装置の構成は、前述した第２の実施形態に係る構造化データ検索装置５０と同様であるため、適宜、図５を用いて説明する。
【０１３０】
前述した第２の実施形態においては項目対応記憶部２４にオントロジー情報が存在しない場合には全文検索が実行されるのに対して、本実施形態に係る構造化データ検索装置５０においては、項目対応記憶部２４にオントロジー情報が存在しない場合には後述する関係クラスのオントロジー情報に対応付けて項目対応記憶部２４に格納されているＰａｔｈに基づいてＸＱｕｅｒｙ式が生成される点が異なる。
【０１３１】
以下、図９及び図１０のフローチャートを参照して、本実施形態に係る構造化データ検索装置５０の主として検索最適化処理部５２の処理手順について説明する。
【０１３２】
前述した図８に示すステップＳ１１〜ステップＳ１９の処理に相当するステップＳ２１〜ステップＳ２９の処理が実行される。
【０１３３】
なお、ステップＳ２１において取得されたオントロジーの検索結果は、ユーザによって指定された検索条件に基づいて、オントロジーアクセス部３２がオントロジー格納部２２に対して検索処理を実行した結果として得られたものである。ここでは、オントロジーの検索結果に含まれるオントロジー情報には、「水島設計」のという会社名が得られているものとして説明する。また、このオントロジーの検索結果に含まれるオントロジー情報には、「水島設計」のＯｎｔｏｌｏｇｙＮａｍｅ（プロパティ名）として「ＣｏｍｐａｎｙＮａｍｅ」が含まれるものとする。
【０１３４】
一方、ステップＳ２３においてオントロジー解析処理部５２３によって抽出されたオントロジー情報が項目対応記憶部２４内に存在しないと判定された場合（ステップＳ２３のＮＯ）、ステップＳ３０以降の処理が実行される。
【０１３５】
前述したように、本実施形態においては、抽出されたオントロジー情報が項目対応記憶部２４内に存在しない場合の処理が前述した第１の実施形態と異なる。
【０１３６】
オントロジー情報が項目対応記憶部２４内に存在しないと判定された場合、項目対応処理部５２４は、中央処理部５２２を介して、その旨をオントロジーアクセス部３２に通知する。
【０１３７】
オントロジーアクセス部３２は、項目対応処理部５２４からの通知を受けると、オントロジーの検索結果に含まれる文字列（第２の文字列）が属するクラスに関係するクラス（関係クラス）に属する文字列（第３の文字列）の意味内容を表すオントロジー情報（関係クラスのオントロジー情報）を、オントロジー格納部２２に格納されているオントロジーから検索する。
【０１３８】
これにより、オントロジーアクセス部３２は、関係クラスのオントロジー情報を取得する（ステップＳ３０）。
【０１３９】
ここで、関係クラスのオントロジー情報について、前述した図６を用いて具体的に説明する。上記したように、オントロジーの検索結果として「水島設計」という会社名（文字列）が得られているものとする。
【０１４０】
図６に示す例では、まず、「水島設計」が属するクラス（水島設計インスタンスが参照しているクラス）は、「Ｃｏｍｐａｎｙクラス」である。この「Ｃｏｍｐａｎｙクラス」の関係クラスは、図６に示す例では「ＢｕｓｉｎｅｓｓＣａｔｅｇｏｒｙクラス」である。この場合、「ＢｕｓｉｎｅｓｓＣａｔｅｇｏｒｙクラス」は、「Ｃｏｍｐａｎｙクラス」の親方向の関係クラスである。なお、関係クラスは、例えばｓｕｂＣｌａｓｓＯｆで親、または親の親等で規定されているクラスが含まれる。また、関係クラスは、例えばｓｕｂＣｌａｓｓＯｆで子（つまり、子方向）のクラスであっても構わない。
【０１４１】
これにより、関係クラスに属する文字列としては、図６に示す「建設」が該当する。したがって、図６に示す例では、関係クラスのオントロジー情報（に含まれるＯｎｔｏｌｏｇｙＮａｍｅ）として、「ＢｕｓｉｎｅｓｓＣａｔｅｇｏｒｙＮａｍｅ（建設インスタンスに関連するプロパティ情報）」が検索される。つまり、オントロジーアクセス部３２は、この「ＢｕｓｉｎｅｓｓＣａｔｅｇｏｒｙＮａｍｅ」を取得することになる。なお、ここでの検索は、例えばＳＰＡＲＱＬ等を用いることを想定している。
【０１４２】
オントロジーアクセス部３２は、取得された関係クラスのオントロジー情報を検索最適化処理部５２に渡す。
【０１４３】
検索最適化処理部５２に含まれる項目対応処理部５２４は、オントロジーアクセス部３２から渡された関係クラスのオントロジー情報を取得する。項目対応処理部５２４は、取得された関係クラスのオントロジー情報が項目対応記憶部２４に格納されているか、つまり、当該オントロジー情報が項目対応記憶部２４内に存在するか否かを判定する（ステップＳ３１）。
【０１４４】
関係クラスのオントロジー情報が項目対応記憶部２４内に存在すると判定された場合（ステップＳ３１のＹＥＳ）、オントロジー解析処理部５２３は、当該関係クラスとステップＳ２１において取得されたオントロジーの検索結果に含まれる文字列が属するクラス（今回ターゲットとなるクラス）の位置関係を解析する（ステップＳ３２）。この場合、オントロジー解析処理部５２３は、オントロジーアクセス部３２を介してオントロジー格納部２２を参照して解析処理を実行する。
【０１４５】
オントロジー解析処理部５２３は、解析された位置関係（の情報）を、中央処理部５２２を介してデータベース解析処理部５２５に渡す。
【０１４６】
また、項目対応処理部５２４は、関係クラスのオントロジー情報に対応付けて項目対応記憶部２４に格納されているＰａｔｈを、中央処理部５２２を介してデータベース解析処理部５２５に渡す。
【０１４７】
上記した図６に示す例では、関係クラスである「ＢｕｓｉｎｅｓｓＣａｔｅｇｏｒｙクラス」が今回ターゲットとなるクラス（「水島設計」が属するクラス）である「Ｃｏｍｐａｎｙクラス」の親クラスである旨の情報（位置関係の情報）及び当該関係クラスのオントロジー情報（に含まれるＯｎｔｏｌｏｇｙＮａｍｅ「ＢｕｓｉｎｅｓｓＣａｔｅｇｏｒｙＮａｍｅ」）に対応付けて項目対応記憶部２４に格納されているＰａｔｈ（前述した図７に示す例では、Ｐａｔｈ「／大分類／中分類／業種」）がデータベース解析処理部５２５に渡される。
【０１４８】
データベース解析処理部５２５は、ステップＳ２１において取得されたオントロジーの検索結果に含まれる文字列である「水島設計」、オントロジー解析処理部５２３から渡された位置関係の情報及びＰａｔｈに基づいて、構造化データを検索するための検索式、例えばＸＱｕｅｒｙ式を生成する（ステップＳ３３）。なお、検索式は、例えばＸＰａｔｈ式のような構造化検索式であっても構わない。
【０１４９】
この場合、例えば「／／大分類／中分類［業種ｆｔｃｏｎｔａｉｎｓ“水島設計”］」のようなＸＱｕｅｒｙ式が生成される。このＸＱｕｅｒｙ式によれば、Ｐａｔｈ「／大分類／中分類／業種」の階層構造を有し、当該「業種」のタグより下の階層において「水島設計」を含む構造化データが検索される。つまり、図１１に示すような階層構造の構造化データが構造化データベースアクセス部５３によって検索されることになる。
【０１５０】
一方、関係クラスである「ＢｕｓｉｎｅｓｓＣａｔｅｇｏｒｙクラス」が今回ターゲットとなるクラスである「Ｃｏｍｐａｎｙクラス」の例えば子クラスである場合には、例えば「／／大分類／中分類［ｔｅｘｔ（）＝“水島設計”］」のようなＸＱｕｅｒｙ式が作成される。このＸＱｕｅｒｙ式によれば、Ｐａｔｈ「／大分類／中分類／業種」の階層構造を有し、当該業種の１つ上の階層である「中分類」タグの値に「水島設計」が含まれる構造化データが検索されることになる。
【０１５１】
次に、項目対応処理部５２４は、上記したＸＱｕｅｒｙ式に応じて検索された構造化データ上のノードの位置を示すＰａｔｈ、ステップＳ２１において取得されたオントロジーの検索結果に含まれるオントロジー情報及びスコアを項目対応記憶部２４に格納（記録）する（ステップＳ３４）。なお、スコアは、デフォルト値（例えば、５０）とする。ステップＳ３４の処理が実行されると、ステップＳ２７の処理が実行される。
【０１５２】
一方、ステップＳ３１において関係クラスのオントロジー情報が項目対応記憶部２４内に存在しないと判定された場合には、ステップＳ２９の処理が実行される。つまり、この場合には全文検索が実行されることになる。
【０１５３】
上記したように本実施形態においては、オントロジーの検索結果に含まれるオントロジー情報（例えばＯｎｔｏｌｏｇｙＮａｍｅ）が項目対応記憶部２４内に存在しない場合であっても、オントロジー格納部２２から関係クラスのオントロジー情報が検索され、当該関係クラスのオントロジー情報に対応付けて項目対応記憶部２４に格納されているＰａｔｈに基づいてＸＱｕｅｒｙ式が生成される。
【０１５４】
つまり、本実施形態においては、前述した第２の実施形態においてはオントロジーの検索結果に含まれるオントロジー情報が項目対応記憶部２４内に存在しない場合には全文検索が実行されるのに対して、当該オントロジー情報が項目記憶部２４内に存在しない場合であっても関係クラスのオントロジー情報に基づいてＸＱｕｅｒｙ式が生成され、当該ＸＱｕｅｒｙ式を用いて検索が実行される。これにより、前述した第２の実施形態と比較して、オントロジーの検索結果に含まれるオントロジー情報が項目対応記憶部２４内に存在しない場合であっても、より検索性能を向上させることが可能となる。
【０１５５】
［第４の実施形態］
次に、本発明の第４の実施形態について説明する。本実施形態に係る構造化データ検索装置の構成は、前述した第２及び第３の実施形態に係る構造化データ検索装置５０と同様であるため、適宜、図５を用いて説明する。
【０１５６】
本実施形態においては、ユーザによって選択されたＰａｔｈまたはユーザによって指定された当該ユーザにとって所望の検索結果に基づいて、項目対応記憶部２４に格納される情報が自動的に補正（更新）される点が、前述した第２及び第３の実施形態と異なる。
【０１５７】
以下、図１２のフローチャートを参照して、本実施形態に係る構造化データ検索装置５０の主として検索最適化処理部５２の処理手順について説明する。
【０１５８】
前述した図９に示すステップＳ２１〜ステップＳ２５の処理に相当するステップＳ４１〜ステップＳ４５の処理が実行される。
【０１５９】
ステップＳ４５の処理が実行されると、項目対応処理部５２４は、当該ステップＳ４５においてユーザによって選択されたＰａｔｈに対応付けて項目対応記憶部２４に格納されているスコアに予め定められた値を加点する（ステップＳ４６）。これにより、以後の検索においては、この加点されたスコアが活用される。
【０１６０】
次に、前述した図９に示すステップＳ２６〜ステップＳ２８の処理に相当するステップＳ４７〜ステップＳ４９の処理が実行される。
【０１６１】
ステップＳ４９において構造化データの検索結果がユーザにとって所望の結果でないと判定された場合（ステップＳ４９のＮＯ）、項目対応処理部５２４は、ステップＳ４５においてユーザによって選択されたＰａｔｈに対応付けて項目対応記憶部２４に格納されているスコアから予め定められた値を減点する（ステップＳ５０）。
【０１６２】
ステップＳ５０の処理が実行されると、前述した図９に示すステップＳ２９の処理に相当するステップＳ５１の処理が実行される。
【０１６３】
ここで、ステップＳ５１における全文検索の検索結果である複数の構造化データは、ユーザに対して提示される。ユーザは、提示された複数の構造化データの中から、当該ユーザにとって所望の構造化データを指定することで、当該所望の構造化データを表示させることができる。
【０１６４】
このとき、項目対応処理部５２４は、ユーザによって指定された構造化データ（ユーザにとって所望の構造化データ）及びステップＳ４１によって取得されたオントロジーの検索結果に含まれるオントロジー情報に基づいて、新たなＰａｔｈ、オントロジー情報及びスコアを対応付けて項目対応記憶部２４に格納（記録）する（ステップＳ５２）。以下、便宜的に、新たに項目対応記憶部２４に格納されるＰａｔｈ、オントロジー情報及びスコアをそれぞれ対象Ｐａｔｈ、対象オントロジー情報及び対象スコアと称する。
【０１６５】
対象Ｐａｔｈは、ユーザによって指定された構造化データの階層構造を取得することによって生成される。具体的には、ユーザによって指定された構造化データ（ユーザにとって所望の構造化データ）の階層構造において、例えば最上位のタグから上記したステップＳ４１において取得されたオントロジーの検索結果に含まれる文字列（ここでは、「水島設計」）を値として含むタグまでの階層構造が対象Ｐａｔｈとして生成される。
【０１６６】
対象オントロジー情報は、上記したステップＳ４１において取得されたオントロジーの検索結果に含まれるオントロジー情報である。対象スコアは、デフォルト値（例えば、５０）に設定される。
【０１６７】
なお、対象スコアは、項目対応記憶部２４において対象オントロジー情報と同一のオントロジー情報に対応付けられている他のスコアと比較して高く設定される構成であってもよい。具体的には、対象スコアの値は例えば、５０）に設定され、他のスコアの値が当該対象スコア以下となるように減点される。これにより、ＸＱｕｅｒｙ式の生成において、対象Ｐａｔｈが他のＰａｔｈと比較して優先的に用いられることとなる。
【０１６８】
このように本実施形態においては、項目対応記憶部２４に格納されていなかった対象Ｐａｔｈ、対象オントロジー情報及び対象スコアを自動的に当該項目対応記憶部２４に格納することができる。
【０１６９】
一方、ステップＳ４９において構造化データの検索結果がユーザにとって所望の結果であると判定された場合（ステップＳ４９のＹＥＳ）、項目対応処理部５２４は、上記したステップＳ４５においてユーザによって選択されたＰａｔｈに対応付けて項目対応記憶部２４に格納されているスコアに予め定められている値を加点する（ステップＳ５３）。
【０１７０】
また、ステップＳ４３においてオントロジー解析処理部５２３によって抽出されたオントロジー情報が項目対応記憶部２４に存在しないと判定された場合には、前述した図１０に示すステップＳ３０〜ステップＳ３４の処理が実行された後、ステップＳ４８以降の処理が実行される。
【０１７１】
また、前述した図１０に示すステップＳ３１において関係クラスのオントロジー情報項目対応記憶部２４内に存在しないと判定された場合には（ステップＳ３１のＮＯ）、ステップＳ５１の処理が実行される。
【０１７２】
上記したように本実施形態においては、全文検索が実行された際に、当該検索結果のうち、ユーザにとって所望な構造化データが当該ユーザによって指定された場合に、当該構造化データに基づいて、新たなＰａｔｈ、オントロジー情報及びスコアが項目対応記憶部２４に格納（登録）される。
【０１７３】
また、本実施形態においては、ユーザによって選択されたＰａｔｈに対応付けて項目対応記憶部２４に格納されているスコアを加点する。
【０１７４】
また、本実施形態においては、項目対応記憶部２４に格納されているＰａｔｈに基づいて生成されたＸＱｕｅｒｙ式による検索結果がユーザにとって所望の結果であると判定された場合には、当該Ｐａｔｈに対応付けて項目対応記憶部２４に格納されているスコアを加点する。一方、ユーザにとって所望の結果でない場合には、スコアを減点する。
【０１７５】
換言すれば、本実施形態においては、例えばユーザの操作（Ｐａｔｈの選択、所望な検索結果の指定）に応じて、項目対応記憶部２４に格納されているスコアを自動的に変更することができる。
【０１７６】
このように、本実施形態においては、項目対応記憶部２４（に格納される情報）を例えばユーザにとって所望の構造化データが検索されたか否かに応じて自動的に補正（更新）することができるため、より検索性能を向上させることが可能となる。
【０１７７】
具体的には、新たなＰａｔｈ、オントロジー情報及びスコアが項目対応記憶部２４に格納されることで、次回、同様の検索が実行される場合に、当該Ｐａｔｈに基づいて生成されたＸＱｕｅｒｙ式を用いて検索することが可能となるため、より検索性能を向上させることができる。
【０１７８】
また、上記したように項目対応記憶部２４に格納されているスコアを加点または減点させることで、例えばオントロジーの検索結果に含まれるオントロジー情報が項目対応記憶部２４に複数存在する場合において、前述したようにスコアが最も高いオントロジー情報に対応付けられているＰａｔｈを自動的に選択させるような設定がされている場合であっても、ユーザの意図を反映したようなＰａｔｈが選択されるため、検索性能を向上させることができる。
【０１７９】
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【０１８０】
【図１】本発明の第１の実施形態に係る構造化データ検索装置のハードウェア構成を示すブロック図。
【図２】本実施形態に係る構造化データ検索装置３０の主として機能構成を示すブロック図。
【図３】図１に示すオントロジー格納部２２に格納されているオントロジーの一例を示す図。
【図４】図２に示す構造化データ検索装置３０の処理手順を示すフローチャート。
【図５】本発明の第２の実施形態に係る構造化データ検索装置の主として機能構成を示すブロック図。
【図６】オントロジーの検索結果に含まれるオントロジー情報について説明するための図。
【図７】図５に示す項目対応記憶部２４のデータ構造の一例を示す図。
【図８】構造化データ検索装置５０の主として検索最適化処理部５２の処理手順を示すフローチャート。
【図９】本発明の第３の実施形態に係る構造化データ検索装置５０の主として検索最適化処理部５２の処理手順を示すフローチャート。
【図１０】本発明の第３の実施形態に係る構造化データ検索装置５０の主として検索最適化処理部５２の処理手順を示すフローチャート。
【図１１】構造化データベースアクセス部５３によって検索される構造化データの一例を示す図。
【図１２】本発明の第４の実施形態に係る構造化データ検索装置５０の主として検索最適化処理部５２の処理手順を示すフローチャート。
【符号の説明】
【０１８１】
１０…コンピュータ、２０…外部記憶装置、３０，５０…構造化データ検索装置、２２…オントロジーデータベース（オントロジー格納手段）、２３…構造化データベース、２４…項目対応記憶部（項目対応格納手段）、３１，５１…アプリケーション、３２…オントロジーアクセス部、３３，５３…構造化データベースアクセス部（構造化データ検索手段）、５２…検索最適化処理部、５２１…アプリケーション連携処理部、５２２…中央処理部、５２３…オントロジー解析処理部、５２４…項目対応処理部、５２５…データベース解析処理部（検索式生成手段）。
【図１】
2010079857.tif 000003
【図２】
2010079857.tif 000004
【図３】
2010079857.tif 000005
【図４】
2010079857.tif 000006
【図５】
2010079857.tif 000007
【図６】
2010079857.tif 000008
【図７】
2010079857.tif 000009
【図８】
2010079857.tif 000010
【図９】
2010079857.tif 000011
【図１０】
2010079857.tif 000012
【図１１】
2010079857.tif 000013
【図１２】
2010079857.tif 000014