(57)【要約】【課題】検索条件を実行することにより生成されるデータのスキーマに関連すると思われるデータを検索して、検索対象データとして簡単に設定できるようにする。【解決手段】検索条件の作成を行う検索条件作成方法であって、前記検索条件により参照されるデータのスキーマ情報を保持するデータソーススキーマ情報保持工程と、前記検索条件を実行することにより生成されるデータのスキーマ情報を保持するターゲットスキーマ情報保持工程と、前記ターゲットスキーマ情報保持工程において保持されるスキーマ情報から前記スキーマ情報に関連するデータソースを検索するデータソース検索工程とを備え、前記データソース検索工程においては、前記検索したデータソースを前記データソーススキーマ情報保持工程において保持する情報として設定する。【選択図】図１
2009217635.tif 000002
【特許請求の範囲】
【請求項１】
検索条件の作成を行う検索条件作成方法であって、
前記検索条件により参照されるデータのスキーマ情報を保持するデータソーススキーマ情報保持工程と、
前記検索条件を実行することにより生成されるデータのスキーマ情報を保持するターゲットスキーマ情報保持工程と、
前記ターゲットスキーマ情報保持工程において保持されるスキーマ情報から前記スキーマ情報に関連するデータソースを検索するデータソース検索工程とを備え、
前記データソース検索工程においては、前記検索したデータソースを前記データソーススキーマ情報保持工程において保持する情報として設定することを特徴とする検索条件作成方法。
【請求項２】
前記データソース検索工程においては、前記ターゲットスキーマ情報保持工程において保持されるスキーマ情報を用いて前記データソースの類似度を算出して前記データソースを前記データソーススキーマ情報保持工程において保持する情報として設定することを特徴とする請求項１に記載の検索条件作成方法。
【請求項３】
前記ターゲットスキーマ情報保持工程においては、前記スキーマ情報の構成要素に対して重要度を設定し、
前記データソース検索工程においては、前記重要度が設定されたスキーマ情報に基づいて検索を行うことを特徴とする請求項１に記載の検索条件作成方法。
【請求項４】
前記データソース検索工程においては、前記ターゲットスキーマ情報保持工程において保持されるスキーマ情報が有する要素と同じ要素もしくは同じ意味を有する要素を含むデータソースを検索することを特徴とする請求項１に記載の検索条件作成方法。
【請求項５】
検索条件の作成を行う検索条件作成装置であって、
前記検索条件により参照されるデータのスキーマ情報を保持するデータソーススキーマ情報保持手段と、
前記検索条件を実行することにより生成されるデータのスキーマ情報を保持するターゲットスキーマ情報保持手段と、
前記ターゲットスキーマ情報保持手段によって保持されるスキーマ情報から前記スキーマ情報に関連するデータソースを検索するデータソース検索手段とを備え、
前記データソース検索手段は、前記検索したデータソースを前記データソーススキーマ情報保持手段によって保持される情報として設定することを特徴とする検索条件作成装置。
【請求項６】
前記データソース検索手段は、前記ターゲットスキーマ情報保持手段で保持されるスキーマ情報を用いて、前記データソースの類似度を算出して前記データソースを前記データソーススキーマ情報保持手段で保持する情報として設定することを特徴とする請求項５に記載の検索条件作成装置。
【請求項７】
請求項１に記載の検索条件作成方法の各工程をコンピュータにて実施させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索条件作成を支援するための検索条件作成方法、検索条件作成装置及びプログラムに関する。
【背景技術】
【０００２】
従来、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）やＸＱｕｅｒｙ（ＸＭＬ  Ｑｕｅｒｙ）といった検索条件を表現する検索言語の作成を支援する環境として、統合開発環境が存在する。この統合開発環境では、コード補間や文法の誤りを指摘するだけでなく、作成中の検索条件の検索対象となるデータ及びスキーマを予め指定しておくことにより、検索対象を指定するコードを容易に作成することができるように工夫がなされている。また、検索条件を実行することにより生成されるデータのスキーマを設定することにより、スキーマに従った構造のデータを生成する検索条件を半自動的に作成することができるように工夫がなされている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来技術では検索条件において参照することになる検索対象データはユーザが自ら統合開発環境において設定する必要があった。このため、作成する検索条件において必要とする検索対象データを保持している場所をあらかじめ知っておく必要があり、検索対象データを保持している場所を忘れてしまった場合は、検索対象データを設定することができなかった。また、必要とする検索対象データの数が多数存在する場合は、すべての検索対象データをユーザにより指定しなければならず、作業が煩雑になる場合もあった。
【０００４】
本発明は前述の問題点に鑑み、検索条件を実行することにより生成されるデータのスキーマに関連すると思われるデータを検索して、検索対象データとして簡単に設定できるようにすることを目的としている。
【課題を解決するための手段】
【０００５】
本発明の検索条件作成方法は、検索条件の作成を行う検索条件作成方法であって、前記検索条件により参照されるデータのスキーマ情報を保持するデータソーススキーマ情報保持工程と、前記検索条件を実行することにより生成されるデータのスキーマ情報を保持するターゲットスキーマ情報保持工程と、前記ターゲットスキーマ情報保持工程において保持されるスキーマ情報から前記スキーマ情報に関連するデータソースを検索するデータソース検索工程とを備え、前記データソース検索工程においては、前記検索したデータソースを前記データソーススキーマ情報保持工程において保持する情報として設定することを特徴とする。
【０００６】
本発明の検索条件作成装置は、検索条件の作成を行う検索条件作成装置であって、前記検索条件により参照されるデータのスキーマ情報を保持するデータソーススキーマ情報保持手段と、前記検索条件を実行することにより生成されるデータのスキーマ情報を保持するターゲットスキーマ情報保持手段と、前記ターゲットスキーマ情報保持手段によって保持されるスキーマ情報から前記スキーマ情報に関連するデータソースを検索するデータソース検索手段とを備え、前記データソース検索手段は、前記検索したデータソースを前記データソーススキーマ情報保持手段によって保持される情報として設定することを特徴とする。
【０００７】
本発明のプログラムは、前記検索条件生成方法の各工程をコンピュータにて実施させることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、検索条件において参照するデータソースをユーザが設定する煩雑な処理や必要なデータソースの設定を忘れることをなくすことができる。さらに、ユーザが認知していないデータソースの存在を知ることが可能であり、検索条件作成作業の効率化を図ることができる。
【発明を実施するための最良の形態】
【０００９】
（第１の実施形態）
本実施形態では、図１から図２３を参照しながらＸＱｕｅｒｙにより生成するデータのスキーマ情報からＸＱｕｅｒｙにおいて参照可能なデータソースを検索し、ユーザに提示する例について説明を行う。
図１は、本実施形態に係る情報処理装置より構成されるネットワークシステムの一例を示す図である。
図１に示すネットワークシステムにおいては、各種データの伝送媒体となるネットワーク１０２上に複数の情報処理装置１０１が接続されている。ネットワーク１０２は、例えばＥｔｈｅｒｎｅｔ（登録商標）のようなＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）あるいはインターネットのような広域情報通信網であってもよい。また、複数の情報処理装置１０１は、図２において後述する通信装置２０８を介して接続されている。
【００１０】
図２は、本実施形態に係る検索条件作成装置である情報処理装置１０１のハードウェア構成例を示すブロック図である。
図２において、２０１はマイクロプロセッサ等のＣＰＵであり、各処理のための演算、論理判断等を行い、バス２０９を介してそれらのバスに接続された各構成要素を制御する。２０２は読み出し専用の固定メモリのＲＯＭであり、本実施形態で実行される処理プログラム等の制御プログラムコードを記憶する。
【００１１】
２０３は書き込み可能なＲＡＭであり、各構成要素からの各種データの一時記憶に用いられる。２０４は入力装置であり、情報（データ）の入力に用いられる。２０５は陰極線管ＣＲＴ（Ｃａｔｈｏｄ−Ｒａｙ  Ｔｕｂｅ）や液晶パネル等の表示装置であり、表示コントローラ２０６は、表示装置２０５におけるドット構成の表示パターン及びカーソルの表示を制御する。
【００１２】
２０７は外部記憶装置であり、種々の情報が格納される。また、これらのデータ及びプログラムを格納する記憶媒体としては、ＲＯＭ、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカード、光磁気ディスクなどを用いることができる。２０８は通信装置であり、Ｅｔｈｅｒｎｅｔなどのネットワークに接続し、ネットワークシステムにおいて複数の情報処理装置同士を接続する役割を担う。
【００１３】
図２に示す構成からなる情報処理装置１０１においては、入力装置２０４から入力される情報および通信装置２０８からネットワークを経由して供給される情報に応じて作動する。入力装置２０４または通信装置２０８から情報が供給されると、まず、インタラプト信号がＣＰＵ２０１に送られる。そして、ＣＰＵ２０１により外部記憶装置２０７内に記憶されている各種の制御信号を読み出し、それらの制御信号に従って各種の制御を行う。
【００１４】
図３は、本実施形態における統合開発環境の画面の一例を示す図である。以下、図３を参照しながら、本実施形態における簡単な概要を説明する。なお、各処理の詳細については、図５以降の説明において後述する。
図３において、３０１はメニュー部であり、統合開発環境における様々な機能を使用するためのメニューを提示する。例えば、ＸＱｕｅｒｙの新規作成やコピー、ペーストなどの編集機能、統合開発環境の環境設定などのメニューがある。
【００１５】
３０２はエディタ部であり、ＸＱｕｅｒｙの記述、編集作業を行うための画面である。ＸＱｕｅｒｙの記述に文法上の誤りがある場合は、誤りのある部分をハイライト表示することにより誤りを指摘する。また、エディタ部３０２には、後述するデータソース表示部３０３、ターゲットスキーマ表示部３０４、ＸＱｕｅｒｙ機能表示部３０５に表示されるデータからの指示により、半自動的に生成されるＸＱｕｅｒｙを表示することが可能である。例えば、ターゲットスキーマ表示部３０４に表示されているａｂｃ要素をエディタ部３０２にドラッグ＆ドロップすることにより、エディタ部３０２にはａｂｃ要素をルート要素として出力するＸＱｕｅｒｙが生成される。
【００１６】
３０３はデータソース表示部であり、統合開発環境において作成するＸＱｕｅｒｙで参照することになるＸＭＬを図４で示すようなツリー構造で表示する。なお、図４に関する詳細な説明は、後述する。そして、表示されるデータソースは、ユーザによる指定が可能である。また、後述するターゲットスキーマ表示部３０４の情報やエディタ部３０２で作成中のＸＱｕｅｒｙを用いて、データソースを検索し、検索結果を自動的にデータソースとして設定することもできる。データソースの検索に関しては、図１６の説明において後述する。
【００１７】
３０４はターゲットスキーマ表示部であり、統合開発環境において作成するＸＱｕｅｒｙを実行することにより生成されるべきＸＭＬデータのスキーマを表示する。表示形式は、データソース表示部３０３で表示されるデータと同様に図４で示すようなツリー構造である。そして、表示されるターゲットスキーマは、ユーザが指定を行うことにより設定される。また、ターゲットスキーマ中の要素や属性に対して重要度を設定することもできる。重要度は、データソース検索の際に使用される。
【００１８】
３０５はＸＱｕｅｒｙ機能表示部であり、ＸＱｕｅｒｙの仕様で定められる関数や式などが一覧表示される。表示される関数や式などには、例えばｆｏｒ文や対象ＸＭＬデータを指定するためのｄｏｃ関数などがある。３０６はコンソール表示部であり、ＸＱｕｅｒｙを実行した結果や各種のエラー情報などの詳細を表示する。３０７はステータスバーであり、エディタ中の行及び列番号や各種処理の実行結果の概略などを示す情報を提示する。
【００１９】
図４は、図３におけるデータソース表示部３０３及びターゲットスキーマ表示部３０４において表示されるデータの一例を示す図である。
図４において、４０１はデータのルート要素であり、ツリー構造の最上位の要素として表示される。
【００２０】
４０２は要素間の関係を示す関係子であり、関係子４０２の下位にあたる要素間の関係を示す。図４に示す例では、"Ｓｅｑ"が関係子４０２であり、関係子４０２の下位にあたる要素であるｎａｍｅ要素とａｄｄｒｅｓｓ要素とが順序を持つことを示している。なお、関係子４０２には、"Ｓｅｑ"以外にも、出現回数の制限を示すものなど、ターゲットスキーマもしくはデータソースのスキーマを記述したスキーマ言語において表現可能な関係が存在する。
【００２１】
４０３は要素を示し、要素４０３は、その上位構造及び下位構造に要素、要素自身に属性を持つ可能性がある。４０４は属性を示し、属性４０４は、要素の子要素と同様に要素の下位に表示される。４０５は、要素４０３もしくは属性４０４のデータ型である。データ型４０５には、文字列を示すｓｔｒｉｎｇなど、関係子４０２と同様にターゲットスキーマもしくはデータソースのスキーマを記述したスキーマ言語において表現可能な型が存在する。
【００２２】
４０６は、展開可能なツリー構造が存在することを示す展開子である。例えば、図４においては、ｎａｍｅ要素はさらに展開することが可能であり、ｎａｍｅ要素の下位には、要素もしくは属性が存在することを示している。すなわち、展開子が存在しない要素は、下位に要素もしくは属性を持たないことを示している。なお、展開子が存在する要素の場合、入力機器の指示によりツリー構造を展開できる。また、展開子が存在しない要素の場合でも、入力機器の指示により、ツリー構造を格納することが可能であり、格納することにより展開子が現れる。
【００２３】
図５は、本実施形態の検索条件作成装置である情報処理装置１０１の機能構成例を示すブロック図である。
図５に示すように、情報処理装置１０１は、入力手段５０１、表示手段５０２、検索条件編集手段５０３及びターゲットスキーマ情報保持手段５０４を有する。また、データソーススキーマ情報保持手段５０５、データソース検索手段５０６及びＸＱｕｅｒｙ構文情報保持手段５０７をさらに有する。
【００２４】
入力手段５０１は、操作者によるデータ入力などを受け付ける。データ入力や指示等は、キーボードやマウスといった入力デバイスによって行われる。表示手段５０２は、検索条件を作成するための統合開発環境を表示する。統合開発環境では、図３において説明したように、作成中の検索条件や設定されたターゲットスキーマ、データソースなどが表示される。
【００２５】
検索条件編集手段５０３では、入力手段５０１から入力された検索条件の情報を保持する。入力手段５０１から入力される検索条件としては、後述するターゲットスキーマ情報保持手段５０４もしくはデータソーススキーマ情報保持手段５０５のスキーマ情報からＸＱｕｅｒｙを作成するためのものもある。なお、ターゲットスキーマ情報保持手段５０４に格納されているスキーマ情報からＸＱｕｅｒｙを生成する処理に関しては、図６を用いて後述する。また、データソーススキーマ情報保持手段５０５に格納されているスキーマ情報からＸＱｕｅｒｙを生成する処理に関しても、図１０を用いて後述する。
【００２６】
検索条件編集手段５０３に保持された検索条件の情報は、後述するＸＱｕｅｒｙ構文情報保持手段５０７に保持される情報を用いて、検索言語の構文規則に正しく従っているか否かの検証に用いられる。検証の結果、構文に誤りがある場合は、誤りがある部分の情報が表示手段５０２に通知される。
【００２７】
ターゲットスキーマ情報保持手段５０４では、入力手段５０１から設定されたターゲットスキーマの情報及びスキーマの重要度を設定して格納する。格納されたターゲットスキーマの情報は、検索条件編集手段５０３において、検索条件を生成する際に使用される。また、検索条件において参照可能なデータソースを検索する際にも使用される。データソース検索処理に関しては、図１６において後述する。
【００２８】
データソーススキーマ情報保持手段５０５では、入力手段５０１から設定されたデータソースのスキーマ情報や検索されたデータソースのスキーマ情報を格納して保持する。なお、ターゲットスキーマ情報保持手段５０４に保持されているスキーマ情報からデータソースを検索する処理に関しては、図１６において後述する。また、格納されたデータソーススキーマ情報は、検索条件編集手段５０３において、図１０の説明において後述するが、検索条件を生成する際に使用される。
【００２９】
データソース検索手段５０６では、ターゲットスキーマ情報保持手段５０４に格納されたターゲットスキーマの情報を参照し、ターゲットスキーマと関連するデータソースを不図示の記憶装置から検索する。検索されたデータソースは、データソーススキーマ情報保持手段５０５に格納される。なお、検索処理の詳細については、図１６を用いて後述する。
【００３０】
ＸＱｕｅｒｙ構文情報保持手段５０７では、ＸＱｕｅｒｙの仕様で規定される様々な構文の情報を保持する。このＸＱｕｅｒｙの構文情報は、検索条件編集手段５０３において、編集されている検索条件が正しい構文で記述されているか否かの検証を行うために使用される。また、ＸＱｕｅｒｙを生成する処理に関しては、図６及び図１０において後述するが、ＸＱｕｅｒｙを生成する際にも使用される。
【００３１】
図６は、ターゲットスキーマ情報保持手段５０４に格納されているスキーマ情報からＸＱｕｅｒｙを生成する処理手順の一例を示すフローチャートである。
まず、図６のステップＳ６００００では、ユーザから指示されたスキーマ情報を特定する。図４で示すようなツリー構造中の要素をユーザが指示することによりスキーマ情報を特定する。
【００３２】
次に、ステップＳ６００１０では、ステップＳ６００００において特定されたスキーマ情報が、スキーマが示すデータのルート要素であるか否かの判断を行う。この判断の結果、ルート要素である場合は、ステップＳ６００３０へ移る。一方、ステップＳ６００１０の判断の結果、ルート要素ではない場合は、ステップＳ６００２０へ移る。
【００３３】
なお、ルート要素であるか否かの判断処理は、指示された要素に祖先となる要素が存在するか否かを既存のスキーマ解析技術を用いて調べることにより行う。例えば、図７に示すスキーマにおいて、ｂｏｏｋｓ要素７０１がユーザにより指示された場合は、ｂｏｏｋｓ要素７０１には祖先となる要素が存在しないため、ルート要素であると判断される。一方、ｂｏｏｋ要素７０２がユーザにより指示された場合は、ｂｏｏｋ要素７０２に祖先となる要素が存在するためルート要素ではないと判断される。
【００３４】
次に、ステップＳ６００２０では、ステップＳ６００００で特定された部分スキーマの最上位要素をルート要素として新しいスキーマ情報を生成する。例えば、図７で示すスキーマにおいてｂｏｏｋ要素７０２がステップＳ６００００において特定された部分スキーマの最上位要素である場合、ｂｏｏｋ要素７０２をルート要素とするスキーマ情報を生成する。なお、生成されるスキーマ情報には、ｂｏｏｋ要素７０２の子孫構造もそのままの形式で生成される。すなわち、ｂｏｏｋ要素７０２の子要素であるｔｉｔｌｅ要素７０３、ａｕｔｈｏｒ要素７０４、ｐｒｉｃｅ要素７０５、ｃｏｎｔｅｎｔ要素７０６を子要素に持つｂｏｏｋ要素をルートとするスキーマ情報が生成される。
【００３５】
次に、ステップＳ６００３０では、ステップＳ６００００で生成されたスキーマ情報もしくはステップＳ６００２０で生成されたスキーマ情報の解析を行う。スキーマ情報の解析処理は、既存のスキーマ解析技術を用いて行い、データの構造、各要素、属性の名前、及びデータ型を取得する。
【００３６】
ステップＳ６００４０では、ステップＳ６００３０において解析されたスキーマ情報からＸＱｕｅｒｙを生成する。ＸＱｕｅｒｙの生成処理は、スキーマ情報の持つ要素をＸＱｕｅｒｙにおけるエレメントコンストラクタにより表現する。すなわち、各要素の内容として入るべきデータに関するクエリを記述する部分を、ユーザにより記述する必要があることを示すユーザ定義識別子（不図示）で表現する。
【００３７】
例えば、スキーマ情報が図８で示すものである場合、図９で示すＸＱｕｅｒｙが生成される。図８のスキーマ情報に含まれる要素は、ｂｏｏｋ要素８０１、ｔｉｔｌｅ要素８０２、ａｕｔｈｏｒ要素８０３、ｐｒｉｃｅ要素８０４及びｃｏｎｔｅｎｔ要素８０５であるので、図９のＸＱｕｅｒｙでは、エレメントコンストラクタ９０１として記述される。また、図８において、内容を持つ要素は、ｔｉｔｌｅ要素８０２、ａｕｔｈｏｒ要素８０３、ｐｒｉｃｅ要素８０４及びｃｏｎｔｅｎｔ要素８０５であるので、図９のＸＱｕｅｒｙでは、ユーザ定義識別子９０２が記述される。
【００３８】
図１０は、データソーススキーマ情報保持手段５０５に格納されるスキーマ情報からＸＱｕｅｒｙを生成する処理手順の一例を示すフローチャートである。
まず、図１０のステップＳ１０００００では、ユーザから指示されたスキーマ情報を特定する。例えば、図１１に示すようなツリー構造で表されるデータソースの一覧から任意の要素をユーザが指示することによりスキーマ情報を特定する。
【００３９】
次に、ステップＳ１０００１０では、ステップＳ１０００００において特定された部分スキーマを既存のスキーマ解析技術により解析可能なスキーマ情報として生成する。なお、このスキーマ情報の生成処理に関しては、図６におけるステップＳ６００００からステップＳ６００２０における処理と同様の方法である。
【００４０】
次に、ステップＳ１０００２０では、ステップＳ１０００１０において生成されたスキーマ情報の解析を行う。スキーマ情報の解析処理は、既存のスキーマ解析技術を用いて行い、データの構造、各要素、属性の名前及びデータ型を取得する。
【００４１】
ステップＳ１０００３０では、ステップＳ１０００２０において解析されたスキーマ情報からデータソースを参照するためのＸＱｕｅｒｙとして使用可能な構文を検索する。ＸＱｕｅｒｙの候補の検索は、図８のＸＱｕｅｒｙ構文情報保持手段５０７に保持されている情報を検索することにより行う。
【００４２】
例えば、データソーススキーマが図１１に示すものであり、ユーザにより指示されたデータソースがｗｒｉｔｔｅｒ要素１１０１である場合を考える。ｗｒｉｔｔｅｒ要素１１０１のデータ型は、ｓｔｒｉｎｇ型１１０２であることがわかるので、ＸＱｕｅｒｙ構文情報保持手段５０７に保持されている情報のうち、ｓｔｒｉｎｇ型を返すことが可能な構文が検索される。この結果、例えば、図１２に示すようなＸＱｕｅｒｙが候補として検索される。
【００４３】
次に、ステップＳ１０００４０では、ステップＳ１０００３０において検索されたＸＱｕｅｒｙの候補の一覧をユーザに提示する。ユーザは、提示された候補の１つを指示することにより、作成するＸＱｕｅｒｙが決定される。
【００４４】
次に、ステップＳ１０００５０では、ステップＳ１０００４０においてユーザにより決定されたＸＱｕｅｒｙを現在編集中のＸＱｕｅｒｙとマージすることにより、新しいＸＱｕｅｒｙを生成する。例えば、編集前（マージ前）のＸＱｕｅｒｙを図１４で示すものとし、ユーザ定義識別子１４０１に、図１１中のｗｒｉｔｔｅｒ要素１１０１をドラッグ及びドロップすると、図１３に示すものになる。
【００４５】
さらに、ステップＳ１０００４０で決定されたＸＱｕｅｒｙ構文を、図１２におけるＸＰａｔｈ式＋ｔｅｘｔ（）とすると、結果として、編集後（マージ後）のＸＱｕｅｒｙは図１５に示すものになる。図１５に示す変更部１５０１が実際に変更された部分であり、ユーザ定義識別子１４０１がｗｒｉｔｔｅｒ要素１１０１を特定するＸＰａｔｈ式とｔｅｘｔ関数とに変更されている。
【００４６】
図１６は、ターゲットスキーマの情報を用いて該ターゲットスキーマに関連するデータソースを検索する処理手順の一例を示すフローチャートである。
まず、図１６のステップＳ１６００００では、ユーザにより設定されたターゲットスキーマのスキーマ情報を取得する。
【００４７】
次に、ステップＳ１６００１０では、ステップＳ１６００００において取得したスキーマ情報を解析し、データソースの検索に必要な情報を取得する。ここで、検索に必要な情報は、要素名および属性名、要素および属性のデータ型、要素の親子関係および属性の存在する要素である。また、ユーザにより要素もしくは属性に設定された重要度を取得する。そして、取得した情報は、図１９に示すような形式で保持される。
【００４８】
次に、ステップＳ１６００２０では、ステップＳ１６００１０において取得した情報をもとにデータソースの検索処理を行う。この検索結果は、データソースの所在情報とターゲットスキーマとの類似度が返される。データソース検索処理の詳細は、図１７を用いて後述する。
【００４９】
次に、ステップＳ１６００３０では、ステップＳ１６００２０における検索結果として得られたデータソースにスキーマが存在するか否かを判断する。この判断の結果、データソースにスキーマが存在しない場合は、ステップＳ１６００４０へ移る。一方、ステップＳ１６００３０の判断の結果、データソースにスキーマが存在する場合は、ステップＳ１６００５０へ移る。
【００５０】
次に、ステップＳ１６００４０では、ステップＳ１６００２０における検索結果であるデータソースのスキーマを生成する。このスキーマを生成する処理は、ＸＭＬデータからスキーマを生成する既存の技術を用いて行う。
【００５１】
次に、ステップＳ１６００５０では、ステップＳ１６００２０における検索結果であるデータソースで指定されるスキーマもしくはステップＳ１６００４０において生成されたスキーマをデータソースとして設定し、処理を終了する。
【００５２】
図１７は、図１６のステップＳ１６００２０における検索処理手順の詳細の一例を示すフローチャートである。
まず、図１７のステップＳ１７００００では、図１６のステップＳ１６００１０において取得した要素名および属性名を用いて、要素名および属性名を持つデータソースの検索を行う。このデータソースを検索する処理では、既存の検索技術を用いて行う。そして、この検索結果は、図１８に示すような検索処理中間テーブルとして保持する。
【００５３】
検索結果中間テーブルは、図１８に示すように、検索結果であるデータソースの場所を示すＵＲＩ１８０１と、データソース中に含まれる要素および属性のリスト１８０２と、要素および属性の重要度リスト１８０３とから構成される。例えば、検索結果（ｂｏｏｋｓ．ｘｍｌ）１８０４は、ａｕｔｈｏｒ要素１８０５、ｐｒｉｃｅ要素１８０６、ｔｉｔｌｅ要素１８０７及びｃｏｎｔｅｎｔ要素１８０８を含むため、検索結果として得られたことになる。また、重要度リスト１８０３の値は、現時点では０．５であり、後述するステップＳ１７００１０からステップＳ１７００３０における処理によって変更される。
【００５４】
次に、ステップＳ１７００１０では、検索に使用されたスキーマ情報の重要度をステップＳ１７００００において生成された図１８の検索処理中間テーブルの重要度リスト１８０３の値に反映させる。この反映処理は、検索に使用された要素もしくは属性に設定された重要度の値を重要度リスト１８０３の値に加算することにより行う。
【００５５】
例えば、検索に用いたスキーマ情報を図１９で示すものとすると、図１８の検索処理中間テーブルは、図２０に示すようなものに更新される。図１９において、ｔｉｔｌｅ要素の重要度は０．１であり、ａｕｔｈｏｒ要素の重要度は０．０５とされている。このため、図１８の重要度リスト１８０３の値は、図２０に示すように、ｔｉｔｌｅ要素の重要度に０．１、ａｕｔｈｏｒ要素の重要度に０．０５が加算されている。
【００５６】
次に、ステップＳ１７００２０では、検索結果中に含まれる要素もしくは属性のデータ型、意味が検索に用いたスキーマ情報のものと等しいか否かの判断を行う。そして、等しいと判断された場合は、ステップＳ１７００１０において更新された図２０の検索処理中間テーブルの重要度リストの値を更新する。
【００５７】
この更新処理では、検索に用いたスキーマ情報から要素もしくは属性のデータ型を取得する。そして、スキーマ情報のデータ型と検索結果中の対応する要素もしくは属性のデータ型とが等しいか否かの検証を行う。検索結果のデータ型については、スキーマが存在すれば該スキーマを用い、存在しない場合は、既存のスキーマ作成技術により検索結果から作成したスキーマを用いてデータ型を取得する。検証の結果、等しいと判断された場合は、検索処理中間テーブルの重要度リスト値に０．２を加算する。
【００５８】
例えば、検索処理中間テーブルが図２０に示すものであり、検索に使用したスキーマが図１９である場合について考える。図１９に示すようにａｕｔｈｏｒ要素はｓｔｒｉｎｇ型である。図２０の検索結果の中では、検索結果１（ｂｏｏｋｓ．ｘｍｌ）２００１のａｕｔｈｏｒ要素はｓｔｒｉｎｇ型であるが、他の検索結果のａｕｔｈｏｒ要素はｓｔｒｉｎｇ型ではないとすると、重要度リストを更新した結果は図２１に示すものとなる。図２１では、検索結果１（ｂｏｏｋｓ．ｘｍｌ）２１０１のａｕｔｈｏｒ要素の重要度のみ０．２が加算されており、他の検索結果の中のａｕｔｈｏｒ要素の重要度は変更されていない。
【００５９】
次に、ステップＳ１７００３０では、検索結果の構造と検索に用いたスキーマ情報が示す構造とが等しいか否かの判断を行う。そして、等しいと判断された場合は、ステップＳ１７００２０において更新された図２１の検索処理中間テーブルの重要度リストの値に０．２を加算する。この構造判断は、検索結果中の要素の親子関係もしくは属性の設定された要素が検索に用いたスキーマ情報が示す構造と等しいか否かを検証することにより行う。
【００６０】
例えば、検索処理中間テーブルが図２１に示すものであり、検索に使用したスキーマが図１９に示すものである場合を考える。図１９に示すように、ａｕｔｈｏｒ要素は親要素としてｂｏｏｋ要素を持ち、子要素は持たない。図２１の検索結果の中では、検索結果１（ｂｏｏｋｓ．ｘｍｌ）２１０１のａｕｔｈｏｒ要素のみが、親要素にｂｏｏｋ要素を持ち、子要素は持たないとすると、重要度リストを交信した結果は図２２に示すものとなる。図２２では、検索結果１（ｂｏｏｋｓ．ｘｍｌ）２２０１のａｕｔｈｏｒ要素のみ０．２が加算されており、他の検索結果中の要素の重要度は変更されていない。
【００６１】
次に、ステップＳ１７００４０では、ステップＳ１７００３０において更新された図２２の検索処理中間テーブルを用いて、検索結果データソースとターゲットスキーマとの類似度を算出する。この類似度を算出する処理は、各検索結果データソース中の重要度リスト値の合計を各検索結果データソースの全要素数で割ることにより行う。
【００６２】
例えば、図２２における検索結果１（ｂｏｏｋｓ．ｘｍｌ）２２０１のデータのスキーマが図２３に示すものであるとする。図２２に示す検索結果１（ｂｏｏｋｓ．ｘｍｌ）の重要度の合計値は、２．５５であり、図２３に示す検索結果１（ｂｏｏｋｓ．ｘｍｌ）の全要素数は６である。したがって、類似度は、２．５５÷６＝０．４２５と算出される。
【００６３】
なお、図１７の検索処理では、検索結果中に含まれる一致した要素の割合により類似度を算出したが、既存の統計学や言語処理技術を用いて類似度を算出してもよい。また、構造化文書の類似検索技術を用いて検索処理を行う方法を用いてもよい。
【００６４】
以上のように本実施形態によれば、検索条件により生成されるデータのスキーマ情報から検索条件において参照可能なデータソースを検索し、ユーザに提示することができる。このため、検索条件において参照するデータソースをユーザが設定する煩雑な処理や必要なデータソースの設定を忘れることをなくすことができる。さらに、ユーザが認知していないデータソースの存在を知ることが可能であり、検索条件作成作業の効率化を図ることができる。
【００６５】
（本発明に係る他の実施形態）
前述した本発明の実施形態における検索条件作成装置を構成する各手段、並びに検索条件作成方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００６６】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００６７】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図６、１０、１６、１７に示すフローチャートに対応したプログラム）を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００６８】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００７０】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００７１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００７２】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００７３】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００７４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００７５】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施形態におけるネットワークシステムの構成例を示す図である。
【図２】本発明の実施形態における情報処理装置のハードウェア構成の一例を示すブロック図である。
【図３】本発明の実施形態における統合開発環境を示す図である。
【図４】本発明の実施形態におけるデータのツリー構造の一例を示す図である。
【図５】本発明の実施形態における情報処理装置の機能構成例を示すブロック図である。
【図６】本発明の実施形態におけるターゲットスキーマを用いたＸＱｕｅｒｙの生成処理手順の一例を示すフローチャートである。
【図７】本発明の実施形態におけるターゲットスキーマのツリー構造の一例を示す図である。
【図８】本発明の実施形態におけるターゲットスキーマにおける部分スキーマのツリー構造の一例を示す図である。
【図９】本発明の実施形態におけるターゲットスキーマから生成されたＸＱｕｅｒｙの一例を示す図である。
【図１０】本発明の実施形態におけるデータソースを用いたＸＱｕｅｒｙ生成処理手順の一例を示すフローチャートである。
【図１１】本発明の実施形態におけるデータソースツリー構造の一例を示す図である。
【図１２】本発明の実施形態におけるクエリ候補提示の一例を示す図である。
【図１３】本発明の実施形態におけるデータソースの一例を示す図である。
【図１４】本発明の実施形態におけるユーザ定義識別子編集前のＸＱｕｅｒｙを示す図である。
【図１５】本発明の実施形態におけるユーザ定義識別子編集後のＸＱｕｅｒｙを示す図である。
【図１６】本発明の実施形態におけるデータソース検索処理手順の一例を示すフローチャートである。
【図１７】本発明の実施形態における検索処理手順の詳細の一例を示すフローチャートである。
【図１８】本発明の実施形態における検索処理中に生成される検索処理中間テーブルの一例を示す図である。
【図１９】本発明の実施形態において、検索処理におけるスキーマ情報の一例を示す図である。
【図２０】本発明の実施形態における検索処理中に生成される検索処理中間テーブルの他の一例を示す図である。
【図２１】本発明の実施形態における検索処理中に生成される検索処理中間テーブルのその他の一例を示す図である。
【図２２】本発明の実施形態における検索処理中に生成される検索処理中間テーブルのその他の一例を示す図である。
【図２３】本発明の実施形態における検索結果データソースのスキーマの一例を示す図である。
【符号の説明】
【００７７】
１０１  情報処理装置
１０２  ネットワーク
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  入力装置
２０５  表示装置
２０６  表示コントローラ
２０７  外部記憶装置
２０８  通信装置
３０１  メニュー部
３０２  エディタ部
３０３  データソース表示部
３０４  ターゲットスキーマ表示部
３０５  ＸＱｕｅｒｙ機能表示部
３０６  コンソール表示部
３０７  ステータスバー
４０１  ルート要素
４０２  関係子
４０３  要素
４０４  属性
４０５  データ型
４０６  展開子
【図１】
2009217635.tif 000003
【図２】
2009217635.tif 000004
【図３】
2009217635.tif 000005
【図４】
2009217635.tif 000006
【図５】
2009217635.tif 000007
【図６】
2009217635.tif 000008
【図７】
2009217635.tif 000009
【図８】
2009217635.tif 000010
【図９】
2009217635.tif 000011
【図１０】
2009217635.tif 000012
【図１１】
2009217635.tif 000013
【図１２】
2009217635.tif 000014
【図１３】
2009217635.tif 000015
【図１４】
2009217635.tif 000016
【図１５】
2009217635.tif 000017
【図１６】
2009217635.tif 000018
【図１７】
2009217635.tif 000019
【図１８】
2009217635.tif 000020
【図１９】
2009217635.tif 000021
【図２０】
2009217635.tif 000022
【図２１】
2009217635.tif 000023
【図２２】
2009217635.tif 000024
【図２３】
2009217635.tif 000025