(57)【要約】  複数のデータ・ソースを表すスキーマを生成するシステム及び方法を本明細書及び特許請求の範囲において記載する。一部の実施例によれば、上記方法は、複数のデータ・ソースそれぞれと、通信するよう結合可能なコンピュータ装置を介して複数のデータ・ソースそれぞれのスキーマを判定する工程であって、複数のデータ・ソースそれぞれが、どのようにしてデータがデータ・ソースに記憶されているかを定義する１つ又は複数のデータ構造を含む工程と、複数のデータ・ソースのスキーマを互いに比較し、複数のデータ・ソースのデータ・ポイントをスキーマに基づいて相互に関係付け、データ・ポイントの相互関係に基づいて複数のデータ・ソースそれぞれのスキーマと、ネゴシエートされたスキーマを相互に関係付け、コンピュータ装置により、記憶媒体にネゴシエートされたスキーマを記憶することにより、ネゴシエートされたスキーマを生成する工程とを含み得る。
2014531076.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ・ソースのネゴシエートされたスキーマを生成する方法であって、
前記複数のデータ・ソースそれぞれと、通信するよう結合可能なコンピュータ装置を介して前記複数のデータ・ソースそれぞれのスキーマを判定する工程であって、前記複数のデータ・ソースそれぞれが、どのようにしてデータが前記データ・ソースに記憶されているかを定義する１つ又は複数のデータ構造を含む工程と、
前記複数のデータ・ソースの前記スキーマを互いに比較し、互いに対応する前記複数のデータ・ソースのデータ・ポイントを相互に関係付け、
前記データ・ポイントの相互関係に基づいて前記複数のデータ・ソースそれぞれの前記スキーマと、前記ネゴシエートされたスキーマを相互に関係付け、前記コンピュータ装置により、記憶媒体に前記ネゴシエートされたスキーマを記憶することにより、
ネゴシエートされたスキーマを生成する工程と
を含む方法。
【請求項２】
請求項１記載の方法であって、前記複数のデータ・ソースそれぞれのスキーマを判定する工程は、
前記１つ又は複数のデータ構造を複数のスキーマ・テンプレートと比較する工程と、
前記１つ又は複数のデータ構造に少なくとも部分的に一致する前記複数のスキーマ・テンプレートのうちの１つを選択する工程と
を含む方法。
【請求項３】
請求項２記載の方法であって、前記比較する工程は、ヒューリスティック・ロジックを前記比較に適用する工程を含み、前記ヒューリスティック・ロジックは、エンド・ユーザ入力、マシン学習手法、メタデータ・タグ、先行スキーマ・ネゴシエーション、予め定義されたカスタム・コネクタ、ヒューリスティックス、及びそれらの組み合わせのうちの少なくとも１つに基づく方法。
【請求項４】
請求項１記載の方法であって、複数のデータ・ソースのデータ・ポイントを相互に関係付ける工程は、データ・ポイント間のファジー関係及び具体的な関係の少なくとも一方を確立する工程を含む方法。
【請求項５】
請求項１記載の方法であって、前記複数のデータ・ソースのデータ・ポイントを相互に関係付ける工程は、前記データ・ポイント間の相互関係を表すメタデータと、関連したデータ・ポイントを関連付ける工程を更に含む方法。
【請求項６】
請求項５記載の方法であって、前記メタデータは、データ属性、データ・ソース毎のスキーマ情報、及びデータ・ポイントの相互に関係する組の信頼度レベルの何れか１つを含み得る方法。
【請求項７】
請求項１記載の方法であって、データ・ポイント間の相互関係が正しい旨の検証をエンド・ユーザから受け取る工程を更に含む方法。
【請求項８】
請求項１記載の方法であって、
クライアント装置から、前記ネゴシエートされたスキーマに対するデータのクエリを受信する工程と、
前記ネゴシエートされたスキーマにより、前記複数のデ―タ・ソースのうちの１つ又は複数からデータ・ポイントを取得し、
前記ネゴシエートされたスキーマに含まれる前記相互関係に応じて前記データ・ポイントを互いに合成して、クエリ応答を作成し、
前記クエリ応答を前記クライアント装置に提供することにより、
前記クエリを満たす工程と
を含む方法。
【請求項９】
請求項８記載の方法であって、前記データ・ソースの１つ又は複数の前記１つ又は複数のデータ構造が変わると、前記ネゴシエートされたスキーマを自動的に更新する工程を備える方法。
【請求項１０】
請求項８記載の方法であって、
要求される１つ又は複数のデータ・ソースが利用可能でない場合に１つ又は複数の別のデータ・ソースを選択する工程、及び
別のデータ・ソースが利用可能でない場合、返す結果セットにおけるメタデータを適切にマーキングする工程
の少なくとも一方を含む方法。
【請求項１１】
複数のデータ・ソースのネゴシエートされたスキーマを生成するシステムであって、
実行可能な命令を記憶するメモリと、
前記命令を実行するプロセッサであって、前記命令は、
前記複数のデータ・ソースそれぞれのスキーマを判定するインテロゲーション・モジュールであって、前記複数のデータ・ソースはそれぞれ、どのようにしてデータが前記データ・ソースに記憶されているかを定義する１つ又は複数のデータ構造を含むインテロゲーション・モジュールと、
前記複数のデータ・ソースの前記スキーマを、互いに、及び、１つ又は複数の既存のスキーマの少なくとも一方と比較し、
互いに対応する前記複数のデータ・ソースのデータ・ポイントを相互に関係付け、
前記データ・ポイントの相互関係に基づいて前記複数のデータ・ソースそれぞれの前記スキーマと、前記ネゴシエートされたスキーマを相互に関係付ける
ことにより、ネゴシエートされたスキーマを生成し、前記ネゴシエートされたスキーマを記憶媒体に記憶するスキーマ生成器と
を含むシステム。
【請求項１２】
請求項１１記載のシステムであって、前記インテロゲーション・モジュールは更に、
前記１つ又は複数のデータ構造を複数のスキーマ・テンプレートと比較し、
前記１つ又は複数のデータ構造に少なくとも部分的に一致する前記複数のスキーマ・テンプレートのうちの１つを選択するシステム。
【請求項１３】
請求項１２記載のシステムであって、前記インテロゲーション・モジュールは、ヒューリスティック・ロジックを適用することにより、前記１つ又は複数のデータ構造を複数のスキーマ・テンプレートと比較し、前記ヒューリスティック・ロジックは、エンド・ユーザ入力、マシン学習手法、メタデータ・タグ、先行スキーマ・ネゴシエーション、予め定義されたカスタム・コネクタ、ヒューリスティックス、及びそれらの組み合わせのうちの少なくとも１つに基づくシステム。
【請求項１４】
請求項１１記載のシステムであって、前記複数のデータ・ソースのデータ・ポイントを相互に関係付けることは、前記スキーマ生成器が、互いに少なくとも部分的に対応する２つ以上のデータ・ソースのデータ・ポイント間のファジー関係及び具体的な関係の少なくとも１つを判定するシステム。
【請求項１５】
請求項１４記載のシステムであって、前記スキーマ生成器が、前記データ・ポイント間の相互関係を記述するメタデータを提供するよう構成されたシステム。
【請求項１６】
請求項１５記載のシステムであって、前記メタデータが、データ・タイプ、データ・ソース毎のスキーマ判定情報、及びデータ・ポイントの相互に関係する組の信頼度レベルの何れかを含み得るシステム。
【請求項１７】
請求項１１記載のシステムであって、前記スキーマ生成器は、データ・ポイント間の相互関係が正しい旨の検証をエンド・ユーザから受け取るシステム。
【請求項１８】
請求項１１記載のシステムであって、前記クエリ・モジュールは更に、
クライアント装置から、前記ネゴシエートされたスキーマに対するデータのクエリを受信し、
前記ネゴシエートされたスキーマにより、前記複数のデ―タ・ソースのうちの１つ又は複数からデータ・ポイントを取得し、
前記ネゴシエートされたスキーマに含まれた前記相互関係に応じて前記データ・ポイントを互いに合成して、クエリ応答を作成することにより、
前記クエリを満たす工程と、
前記クエリ応答を前記クライアント装置に提供する工程と
を含むシステム。
【請求項１９】
請求項１８記載のシステムであって、前記スキーマ生成器は、データ・ポイントに関連付けられたメタデータを取得し、前記クエリ・モジュールが前記クエリ応答を前記クライアント装置に提供する前に前記メタデータを前記データ・ポイントと合成するシステム。
【請求項２０】
プログラムを実施させた一時的でないコンピュータ読み取り可能な記憶媒体であって、前記プログラムは、複数のデータ・ソースのネゴシエートされたスキーマを生成する方法を行うようプロセッサによって実行可能であり、前記方法は、
前記複数のデータ・ソースそれぞれと、通信するよう結合可能なコンピュータ装置を介して前記複数のデータ・ソースそれぞれのスキーマを判定する工程であって、前記複数のデータ・ソースそれぞれが、どのようにしてデータが前記データ・ソースに記憶されているかを定義する１つ又は複数のデータ構造を含む工程と、
前記複数のデータ・ソースの前記スキーマを互いに比較し、
互いに対応する前記複数のデータ・ソースのデータ・ポイントを相互に関係付け、
前記データ・ポイントの相互関係に基づいて前記複数のデータ・ソースそれぞれの前記スキーマと、前記ネゴシエートされたスキーマを相互に関係付け、
前記コンピュータ装置により、記憶媒体に前記ネゴシエートされたスキーマを記憶することにより、
ネゴシエートされたスキーマを生成する工程と
を含む一時的でないコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願の手法は、一般に、複数のデータ・ソースのスキーマ生成及びネゴシエーションに関する。より具体的には、本願の手法は、別々のデータ構造を有するデータ・ソースをネゴシエートし、データ構造内のデータを相互に関係付けるか、又は結合するためのスキーマを作成し、ネゴシエートされたスキーマを利用した複数のデータ・ソースにわたるクエリに対応する。
【背景技術】
【０００２】
データを記憶するための、各種データ記憶スキーマ（例えば、データ記憶プロトコル）を利用するデータ・ソースとの相互作用は、長い活動になり得る。例えば、別々のデータ・ソースが同様のタイプのデータを含み得る一方、互いに大きく異なる記憶スキーマ又は記憶機構を有するデータ構造にデータを記憶し得る。異なるデータ構造に記憶された同様なタイプのデータへのアクセスには、データ構造それぞれを、エンド・ユーザ又はコンピュータ・システムが独立して理解し、ナビゲートすることを必要とし、これは時間を要し、長い作業である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本願の手法は、データ・ソースそれぞれを表すネゴシエートされたスキーマにより、種々のデータ・ソースをネゴシエートするシステム及び方法を提供する。
【課題を解決するための手段】
【０００４】
一部の実施例によれば、本願の手法は、複数のデータ・ソースのネゴシエートされたスキーマを生成する方法に関し得る。上記方法は、（ａ）複数のデータ・ソースそれぞれと、通信するよう結合可能なコンピュータ装置を介して複数のデータ・ソースそれぞれのスキーマを判定する工程であって、複数のデータ・ソースそれぞれが、データ・ソースにどのようにしてデータが記憶されているかを定義する直列化されたデータｂｌｏｂ又は１つ若しくは複数のデータ構造を含む工程と、（ｂ）（ｉ）複数のデータ・ソースのスキーマを互いに比較し、（ｉｉ）互いに対応する複数のデータ・ソースのデータ・ポイントを相互に関係付け、及び（ｉｉｉ）データ・ポイントの相互関係に基づいて複数のデータ・ソースそれぞれのスキーマと、ネゴシエートされたスキーマを相互に関係付けることにより、ネゴシエートされたスキーマを生成する工程と、（ｃ）コンピュータ装置により、記憶媒体に、ネゴシエートされたスキーマを記憶する工程とを含む。
【０００５】
他の実施例によれば、本願の手法は、複数のデータ・ソースのネゴシエートされたスキーマを生成するシステムに関し得る。上記システムは、実行可能な命令を記憶するメモリと、（ｂ）命令を実行するプロセッサであって、命令が、（ｉ）複数のデータ・ソースそれぞれのスキーマを判定するインテロゲーション・モジュールであって、複数のデータ・ソースそれぞれが、どのようにしてデータがデータ・ソースに記憶されるかを定義する１つ又は複数のデータ構造を含むインテロゲーション・モジュールを含むプロセッサと、（ｂ）（１）互いに複数のデータ・ソースのスキーマを比較し、（２）複数のデータ・ソース、予めネゴシエートされたスキーマ、又は互いに対応する任意の数の予めネゴシエートされたスキーマ及びデータ・ソースのデータ・ポイントを相互に関係付け、（３）データ・ポイントの相互関係に基づいて、複数のデータ・ソースそれぞれのスキーマと、ネゴシエートされたスキーマを相互に関係付けることにより、ネゴシエートされたスキーマを生成し、記憶媒体に、ネゴシエートされたスキーマに記憶するスキーマ生成器とを備える。
【０００６】
更なる実施例によれば、本願の手法は、プログラムを実施させた、一時的でないコンピュータ読み取り可能な記憶媒体に関し得、上記プログラムは、複数のデータ・ソースのネゴシエートされたスキーマを生成する方法を行うためにプロセッサによって実行可能である。上記方法は、（ａ）複数のデータ・ソースそれぞれと、通信するよう結合可能なコンピュータ装置を介して複数のデータ・ソースそれぞれのスキーマを判定する工程であって、複数のデータ・ソースそれぞれが、データ・ソースにどのようにしてデータが記憶されているかを定義する直列化された１つ若しくは複数のデータ構造を含む工程と、（ｂ）（ｉ）互いに複数のデータ・ソースのスキーマを比較し、（ｉｉ）互いに対応する複数のデータ・ソースのデータ・ポイントを相互に関係付け、及び（ｉｉｉ）データ・ポイントの相互関係に基づいて複数のデータ・ソースそれぞれのスキーマと、ネゴシエートされたスキーマを相互に関係付けることにより、ネゴシエートされたスキーマを生成する工程と、（ｃ）コンピュータ装置により、記憶媒体に、ネゴシエートされたスキーマを記憶する工程とを含む。
【図面の簡単な説明】
【０００７】
【図１】本願の手法の局面を実施するための例示的なシステム・アーキテクチャを示すブロック図である。
【図２】複数のデータ・ソースを表すスキーマを生成し、クエリを処理するための例示的なアプリケーションを示すブロック図である。
【図３】複数のデータ・ソースを表すスキーマを生成する例示的な方法を示すフローチャートである。
【図４】ネゴシエートされたスキーマを利用して複数のデータ・ソースにわたり、クエリを実行するための例示的な方法を示すフローチャートである。
【図５】本願の手法による実施例を実現するために使用し得る例示的なコンピュータ・システムを示す図である。
【発明を実施するための形態】
【０００８】
本願の手法の特定の実施例は、添付図面によって例証する。図は必ずしも縮尺通りに描いている訳でなく、手法の理解に必要のない詳細、又は他の詳細を認識することを困難にする詳細は割愛し得る。上記手法は、本明細書及び特許請求の範囲に例証する特定の実施例に必ずしも限定される訳でない。
【０００９】
本願の手法には、別々の多くの形態における実施例が考えられるが、本明細書及び特許請求の範囲の記載が、手法の原理の例示とみなすものとし、例証した実施例に手法を限定することを意図するものでないという理解で、特定のいくつかの実施例を詳細に説明する。
【００１０】
本明細書及び特許請求の範囲記載の同様な、又は類似の構成要素及び／若しくは構成部分は、図面を通して、同様な参照符号を付して識別し得るということが分かる。図のいくつかが本願の手法の模式図に過ぎないということが更に分かる。そういうものとして、構成部分の一部は、図を明瞭にするために、その実寸法に対してゆがんでいることがあり得る。
【００１１】
一般に、本願の手法は、複数のデータ・ソースを表すスキーマをネゴシエートし、生成することに関し得る。ネゴシエートされたスキーマは、複数のデータ・ソースのデータ構造間の相互関係を表し、異なったデータ構造に記憶し得る関連したデータ・ポイントを連結し得る。ネゴシエートされたスキーマは、他の予めネゴシエートされたスキーマを含み得るということを当業者は更に、分かり得る。言い換えれば、本手法は、多種多様なデータ・システムにわたって分散している各種データを結合し、又は「相互に関係付け」得る。
【００１２】
スキーマがデータ構造などのデータの組の抽象化又は抽象表現を含み得るということは特筆すべきである。例えば、データ構造は、データ・テーブル、グラフ、データ・ツリー等を含み得る。データ構造は複数のデータ・ポイントを含み得る。
【００１３】
スキーマの、限定でない他の例には、データベース・テーブル及び外部キー、ＪＳＯＮ結果セットを返すウェブＡＰＩ、スプレッドシート・ファイル又はカンマ区切り値（「ＣＳＶ」）などのフラット・ファイル、ＳＱＬだけではない（「ＮｏＳＱＬ」）データ・ソース等を含み得る。更に、抽出されたデータからデータ構造を判定することが可能である。例えば、データｂｌｏｂは、ｚｉｐファイルなどの圧縮ファイルから抽出し得る。データが解凍又は抽出されると、本願の手法はデータｂｌｏｂのデータ構造を評価し得る。
【００１４】
限定でない例として、各種患者データを複数のデータ・ソースに記憶し得、データ・ソースはそれぞれ、プロプラエタリなデータ構造（例えば、ヘルス・レベル７（「ＨＬ７」等）を利用する。一データ・ソースは、血圧測定値などの患者データを有し得る一方、別のものは、有害事象などのデータを含み得る。本願の手法の実用的な実施例が、限定列挙でないが、ファイナンス、運動競技、製造、統計等を含む何れかの数の各種対象にデータ構造又はプロトコルを利用し得るということを当業者は容易に理解するであろう。要求された情報のデータ・ソースそれぞれの個々のクエリを要求するよりも、本願の手法は、データ構造内のデータ・ポイントを相互に関係付けて、ネゴシエートされたスキーマを作成し得る。エンド・ユーザは、ネゴシエートされたスキーマにクエリして、データ・ポイントそれぞれとの関連付けられたメタデータ、及びクエリに対応するデータ・ソースそれぞれからの相互に関連付けられたデータを含む合成されたリッチなクエリ応答を取得し得る。
【００１５】
本願の手法は、複数の構造それぞれを個々にインテロゲートして、特定のデータ・ソースのデータ構造に最も近く関係するスキーマを判定し得る。データ構造のインテロゲーションは、データ・ソースのデータ構造を複数のスキーマ・テンプレートと比較する工程と、ヒューリスティクスを施して、データ・ソースのデータ構造に最も近く（又は少なくとも部分的に）対応するスキーマ・テンプレートを判定する工程とを含み得る。データ・ソースに適用されるヒューリスティクスは、エンド・ユーザ入力、マシン学習手法、メタデータ・タグ、先行するスキーマ・ネゴシエーション、予め定義されたカスタムのコネクタ又はヒューリスティクス等に基づき得る。
【００１６】
スキーマ・テンプレートは更に、データ・ソースに適用されたマシン学習手法、又はエンド・ユーザ人工知能手法から生成し得る。
【００１７】
データ・ソース毎にスキーマ・テンプレートが選択又は作成されると、本願の手法は、データ・ソースのデータ構造間、特に、データ構造に含まれるデータ間の相互関係を表すネゴシエートされたスキーマを生成し得る。ネゴシエートされたスキーマは、各データ・ソースの個々のスキーマの比較及び結合を含むと理解し得る。ネゴシエートされたスキーマは更に、既存のデータから生成されている新たなデータ構造を含み得る。
【００１８】
ネゴシエートされたスキーマは、クエリ処理を介して個々のデータ構造からデータを得るために利用し得る。得られたデータは、互いに結合するか、他のやり方で互いに集約し、集め、連結し、又は互いに関係付け、クエリ応答としてエンド・ユーザに提示し得る。効果的には、クエリに対する応答は、個々のデータ・ソースのクエリのみを介して得られたであろう情報よりも更にロバストな情報を提供し得る。この利点は、部分的には、無関係のようにみえるデータ・ポイントを結合し、又は相互に関係付け得るヒューリスティック情報を介したデータ構造又はデータ・ポイントの結合による。更に、スキーマ・テンプレートの１つ又は複数に関連付けられたメタデータは、クエリの実行中に得られた情報を更に拡充するために、ネゴシエートされたスキーマに適用し得る。
【実施例】
【００１９】
図１は、本願の手法の局面を実施するための例示的なシステム・アーキテクチャ１００を示す。アーキテクチャ１００は、データ・ソース１０５Ａ−Ｎなどの複数のデータ・ソースを含み得る。一般に、前述のデータ構造は、データベース、データ・ストリーム、データ・ファイル、又は構造化形式におけるデータを記憶し、又は編成するための何れかの他の機構のうちの何れかを含み得る。データ・ソース１０５Ａ−Ｎはそれぞれ、特定の形式でデータ・ポイントを記憶するための異なるデータ構造を有し得る。
【００２０】
データ構造１０５Ａ−Ｎは、データ・ソースのデータ構造に対応するスキーマを判定し、データ・ソース１０５Ａ−Ｎそれぞれのスキーマを相互に関係付けることにより、ネゴシエートされたスキーマを生成するための実行可能な命令を含むサーバ１１０に、通信するよう結合し得る。サーバ１１０は、インターネットなどのいくつかの公衆通信媒体又は専用通信媒体の何れかを介してデータ・ソース１０５Ａ−Ｎに、通信するよう結合し得る。図示していないが、一部の実施例では、データ・ソース１０５Ａ−Ｎはそれぞれ、データ構造に適切なスキーマを判定するアダプタを含み得る。アダプタはサーバ１１０と、通信するよう結合し得る。
【００２１】
一部の実施例では、アーキテクチャ１００は、クラウドベースのコンピュータ環境に編成された（サーバ１１０などの）複数のウェブ・サーバを含み得る。一部の実施例によれば、クラウドベースのコンピュータ環境は、複数のデータ・ソースを表すスキーマをネゴシエートし、生成する。一般に、クラウドベースのコンピュータ環境は、通常、プロセッサの大きなグルーピングの計算能力を合成し、かつ／又は、コンピュータ・メモリ又は記憶装置の大きなグルーピングの記憶容量を合成するリソースである。例えば、クラウド・リソースを提供するシステムは、グーグル（登録商標）やアマゾン（登録商標）などの、専らその所有者によって利用され得る。あるいは、前述のシステムは、大容量の計算又は記憶リソースの便益を得るためにコンピュータ・インフラストラクチャ内でアプリケーションを実施する外部ユーザにアクセス可能であり得る。
【００２２】
クラウドは例えば、プロセッサ及び／又は記憶リソースを提供する各サーバ（又は少なくとも複数のサーバ）を有するサーバ・ネットワークによって形成し得る。前述のサーバは、複数のユーザ（例えば、クラウド・リソース顧客又は他のユーザ）によって与えられる作業負荷を管理し得る。通常、各ユーザは、リアルタイムで変動し、時には劇的に変動する、クラウドへの作業負荷の要求を課し得る。前述の変動の特性及び範囲は通常、ユーザに関連付けられたビジネスのタイプに依存する。
【００２３】
クライアント装置１１５は、オープン・アプリケーション・プログラミング・インタフェース（「ＡＰＩ」）を介してサーバ１１０と、通信するよう結合し得る。一般に、アプリケーション・プログラミング・インタフェースは、別々のプラットフォーム上にあるアプリケーション、又は別々のプログラミング言語で記述されたアプリケーションが相互動作することを可能にする。
【００２４】
図２は、以降、「アプリケーション２００」として表すスキーマ・ネゴシエーション・アプリケーションを含むサーバ１１０のブロック図を示す。一部の実施例によれば、アプリケーション２００は、与えられたそれぞれの機能を実現するよう適合された１つ又は複数のモジュール又はエンジンを含み得る。サーバ１１０のプロセッサは、本明細書及び特許請求の範囲記載の構成モジュールの１つ又は複数を実行し得る。
【００２５】
本明細書及び特許請求の範囲記載の「モジュール」の語は更に、特定用途向集積回路（「ＡＳＩＣ」）、電子回路、１つ又は複数のソフトウェア若しくはファームウェア・プログラムを実行するプロセッサ（共有、専用、又はグループ）、組み合わせ論理回路、及び／又は上述の機能を提供する他の適切な構成部分を表し得る。他の実施例では、アプリケーション２００の個々のモジュールは、別個に構成されたサーバ（例えば、サーバ１１０）を含み得る。
【００２６】
一部の実施例では、アプリケーション２００は、インテロゲーション・モジュール２０５、スキーマ生成器２１０、及びクエリ・エンジン２１５を含み得る。アプリケーション２００が更なるモジュール、エンジン、又は構成部分を含み、本願の手法の範囲内になお収まり得るということは特筆すべきである。
【００２７】
インテロゲーション・モジュール２０５は、データ・ソース１０５Ａ−Ｎそれぞれをインテロゲートするよう構成し得る。インテロゲーション・モジュール２０５は、データ・ソースそれぞれにアクセスするために認証資格情報を利用し得る。データ・ソースのクエリに関して以下に更に詳細に説明するが、本願の手法は、アクセスする資格をユーザが有するデータのみをクエリ結果が含み得るようにデータ・ソースのクエリ中に各データ・ソースの下にある資格情報を考慮に入れ得る。
【００２８】
インテロゲーションは、複数のデータ・ソースそれぞれのスキーマを判定する工程を含み得る。インテロゲーション・モジュール２０５は、データ・ソースのデータ構造を複数のスキーマ・テンプレート又は既存のネゴシエートされたスキーマと比較することにより、データ・ソースのスキーマを判定し得る。スキーマ・テンプレートは、各種データ・ソースを表す例示的な抽象化を含み得る。例えば、スキーマ・テンプレートは、ＨＬ７プロトコル又は何れかの他のプロトコルを利用する通常のデータ・ソースの抽象化を含み得る。したがって、未知のタイプのデータ構造を有するデータ・ソースに遭遇した場合、ＨＬ７スキーマ・テンプレートがデータ・ソースと比較され、データ・ソースのデータ構造がＨＬ７スキーマに対応する場合、データ構造がＨＬ７データ構造を利用していると推論し得る。
【００２９】
インテロゲーション・モジュール２０５は、適切なスキーマ・テンプレートを位置特定する前に多くのスキーマ・テンプレートを介して反復し得る。一部の場合には、適切なスキーマ・テンプレートは、データ構造に少なくとも部分的に対応するスキーマ・テンプレートを含み得る。この部分的に対応しているスキーマ・テンプレートは、「ファジー」テンプレート・マッチと表し得る。例えば、スキーマ・テンプレートは、別個の５つのタイプのデータ・ポイント（例えば、ノード）を有するデータ構造が既知のタイプのデータ構造（例えば、プロトコル）に対応する旨を示し得る。データ構造が、別個の５つのうちの４つのタイプのデータを含む場合、データ構造が既知のタイプのデータ構造等に対する「ファジー」マッチであると推論し得る。
【００３０】
インテロゲーション・モジュール２０５は、データ構造とスキーマ・テンプレートとの間の対応関係を判定するためにヒューリスティック・ロジックを利用し得る。ヒューリスティック・ロジックは、エンド・ユーザ入力、マシン学習手法、メガデータ・タグ、先行スキーマ・ネゴシエーション、予め定義されたカスタム・コネクタ、ヒューリスティク等を利用し得る。
【００３１】
インテロゲーション・モジュール２０５による、スキーマ・テンプレートの対応関係又は選択は、エンド・ユーザの検証を受け得る。このことは、データ・ソースとスキーマ・テンプレートとの間の対応関係がファジーである場合に、特に当てはまり得る。しかし、一部の実施例では、上記処理をエンド・ユーザ検証なしで自動的に実行し得るということは特筆すべきである。
【００３２】
インテロゲーション・モジュール２０５のスキーマ判定に関するメタデータは、将来の使用のために、データ・ソースにオーバレイし得る。例えば、データ・ソースのデータ構造に対応しなかったスキーマ・テンプレートに関するメタデータは、データ・ソースと関連付けて、データ・ソースの後続の反復が前述のスキーマ・テンプレートを含まないことを確実にし得る。他のタイプのメタデータは、ファジー・マッチング・テンプレートの相対的なマッチング強度（例えば、マッチが正しい／誤りである可能性はどの程度あるか）を含み得る。
【００３３】
メタデータは、他のオブジェクトとの論理的な衝突又は混乱を避けるために、バケットに入れられるか、又は、「ネームスペースに入れられる」オブジェクトに添付し得る。アプリケーション２００によって利用されるメタデータは、特定のオブジェクトのメタデータ情報のみならず、メタデータを有する更に他の従属オブジェクトのメタデータ情報を含み得る「効果的な」又は「合成された」メタデータ構造の使用を可能にする。
【００３４】
一部の実施例では、２つ以上のスキーマ・テンプレートが、少なくとも部分的にデータ・ソースのデータ構造に対応する場合、インテロゲーション・モジュール２０５は、ヒューリスティック・ロジックを使用するか、又は、どのスキーマ・テンプレートが最も適切かを判定するようエンド・ユーザ検証を使用し得る。
【００３５】
一部の実施例では、複数のスキーマ・テンプレートのうちの１つとデータ・ソースとの間の適切な対応関係が存在しない場合に、インテロゲーション・モジュール２０５により、オンザフライでデータ・ソースのスキーマ・テンプレートを作成し得る。前述の新たに作成されたスキーマ・テンプレートは、メタデータでタギングし、データ構造の将来のインテロゲーションに利用可能にし得る。
【００３６】
データ・ソース１０５Ａ−Ｎそれぞれをインテロゲートすると、スキーマ生成器２１０は、複数のデータ・ソース１０５Ａ−Ｎのデータ構造を表すネゴシエートされたスキーマをネゴシエートし、又は作成するよう実行し得る。ネゴシエートされたスキーマは更に、データ・ソースのデータ構造に記憶されたデータ間の関係の抽象化として表し得る。すなわち、データ・ソース毎に選択されたスキーマ・テンプレートに基づいて、スキーマ生成器２１０は、データ・ソースのスキ―マのデータ・ポイント間又はノード間の関係を解析し、相応に、スキーマのノードを結合し得る。
【００３７】
一部の実施例では、スキーマ生成器２１０は、もう一度、個々のスキーマのノード（例えば、データ・ポイント）間の関係を判定するためにヒューリスティック・ロジックを適用し得る。データ構造がスキーマ・テンプレートに対応しているかを判定するのと同様に、別々のスキーマの対応し、又は相互に関係付けられたノードを互いに結合し得る。ノードは、直接、結合しても間接的に結合してもよい。例えば、患者の血圧の測定値などの直接、結合されたデータは、別々のデータ・ソース（例えば、それぞれが別々のプロプラエタリ・データ構造を有する複数のファイルに記憶された血圧測定値）から収集し得る。間接的に結合されたデータは、変換を介し、又は社会保障番号若しくは他の個人識別可能情報を介して互いに結合し得る各種患者医療データを含み得る。データの変換又は正規化に関し、例えば、スキーマに従うために、値が、適用されるｆ（ｘ）＝ｘ＋１（すなわち、全ての値に１を加える公式）などの関数を有する場合であり得る。前述の間接的な結合は、データが同じ患者に属しているという事実に基づいて各種データ（例えば、血圧測定値、処方薬、手術履歴、アレルギー等）が結合され、又は相互に関連付けられることを可能にし得る。個々のデータ・ソースそれぞれから前述の異なるタイプのデータを得る必要があるのでなく、ネゴシエートされたスキーマは、以下に更に詳細に説明するように、同時に個々のデータ・ソースのクエリを可能にし得る。
【００３８】
一部の実施例によれば、スキーマ生成器２１０は、再帰的バックトラッキング、山登り、アルファベータ枝刈り、又は本明細書及び特許請求の範囲を参照する当業者に知られることになる何れか他の適切な適応アルゴリズムなどの１つ又は複数の適応アルゴリズムを利用することにより、データ・ソース１０５Ａ−Ｎ間の接続又は結合を確立し得る。
【００３９】
一部の実施例では、データ・ポイントの相互関係の接続は、エンド・ユーザ検証に従い得る。更に、種々のスキーマのデータ・ポイント間の接続の一部又は全てはエンド・ユーザ入力を介して手作業で構成し得る。エンド・ユーザ入力は更に、データ・ソース間の競合を解決するために利用し得る。例えば、２つのデータ構造が１つ又は複数の競合マッチの例外と相互に関係付けられ得る場合、競合を解決し、よりロバストなネゴシエートされたスキーマを生成するために、エンド・ユーザ入力をスキーマ生成器２１０によって求め得る。エンド・ユーザ入力は、将来のスキーマ・ネゴシエーションを支援し、かつ／又は自動化するために記憶し得る。
【００４０】
再び、インテロゲーション・モジュール２０５と同様に、スキーマ生成器２１０は、ネゴシエートされたスキーマの作成におけるスキーマのデータ・ポイントの結合に対応する情報を含むネゴシエートされたスキーマにメタデータを付加し得る。メタデータは、解決された競合、２つ以上のスキ―マを結合する理由、接続の信頼性又は正確性を表す接続に関連付けられた信頼水準等の情報を含み得る。
【００４１】
一部の実施例によれば、スキーマ生成器２１０は、クエリを適切に処理するために、データ・ソースのどれが利用可能であるべきかを規定し得る。スキーマ生成器２１０は更に、主要な、又は「必要な」データ・ソースが利用可能でない場合に、アクセスし得る別のデータ・ソースを規定し得る。すなわち、スキーマ生成器２１０は、必要なデータ・ソースが利用可能でない場合、別のデータ・ソースを位置特定し、又は、特定のデータ・ソースが利用可能でない旨をエンド・ユーザに通知することにより、システムはクエリを処理し得るようにフォールト・トレラントに動作し得る。
【００４２】
他の実施例では、別のデータ・ソースが利用可能でない場合、スキーマ生成器２１０は、適切に、返される結果セットにおけるメタデータにマーキングし得る。前述のメタデータは、後続クエリ処理の効率を向上させるために利用し得る。
【００４３】
一部の実施例では、スキーマ生成器２１０は、１つ又は複数のデータ・ソースの１つ又は複数のデータ構造が変わる場合に、ネゴシエートされたスキーマを自動的に更新するよう構成し得る。すなわち、データ・ソースに含まれるデータが経時的に変わるので、ネゴシエートされたスキーマも同様に、ネゴシエートされたスキーマに対して実行されたクエリが最新情報を含むように更新されている。言い換えれば、ネゴシエートされたスキーマは、データ・ソースに含まれるデータが変わるにつれ、発展させることが可能である。
【００４４】
場合によっては、データ・ソースに対する変更の通知は、所定の時間間隔に応じて、下にあるデータ・ソースから通知が提供される場合、かつ／又はユーザが、変更の手作業の通知を作成する場合に、クエリの受信の時点で行われ得る。この時点で、アプリケーション２００は、フォールト・トレラントとなるために、「修理」モードに入り、ネゴシエートされたスキーマの要求された部分が修正されていない限り、サービスの中断なく、データを表すスキーマを修正することができるべきである。
【００４５】
クエリ・エンジン２１５は、サーバ１１０がクライアント装置１１５からクエリを受信すると実行し得る。クエリは、上記ＡＰＩ接続を介してサーバに提供され得る。他の実施例では、アプリケーション２００は、クライアント装置１１５上の実行可能なブラウザを介してアプリケーション２００とエンド・ユーザが相互作用することを可能にするウェブベースのインタフェース（図示せず）を生成し得る。一部の実施例では、ウェブベースのインタフェースは、エンド・ユーザがデータ・ソースをクエリすることを可能にするいくつかの機構を提供し得る。他の実施例では、アプリケーション２００は、データ・ソース間の結合又はスキーマ・テンプレートの使用をエンド・ユーザが検証することを可能にするグラフィカル・ユーザ・インタフェースを生成し得る。
【００４６】
クエリを受信すると、クエリ・エンジン２１５は、キーワード、句、プロトコル等などの、クエリの属性を判定するようクエリを解析し得る。クエリは更に、クエリ・エンジン２１５により、複数のデータ・ソースのうちのどれをサーチすべきかを規定し得る。一部の実施例では、クエリ・エンジンは、クエリに含まれるキーワード又は他の情報に基づいて、サーチすべき適切なデータ・ソースを推論し、又は選び得る。
【００４７】
次に、クエリ・モジュール２１５は、クエリを処理するよう利用すべきネゴシエートされたスキーマを得る。この場合も又、クエリ・モジュール２１５は、クエリに含まれる情報に基づいて、適切なネゴシエートされたスキーマを求め得る。
【００４８】
一部の実施例では、クエリ・モジュール２１５は、クエリに含まれる情報に基づいて、ネゴシエートされた適切なスキーマを生成するようスキーマ生成器２１０を実行し得る。例えば、クエリが、クエリすべきデータ・ソース、及び選択されたデータ・ソースにわたってクエリすべきキーワードを規定した場合、スキーマ生成器２１０は、上述の通り、データ・ソースそれぞれのスキーマを取得し得る。クエリ・モジュール２１５が、クエリを評価するために利用すべき、適切なネゴシエートされたスキーマを判定することができない場合に、前述の方法は有益であり得る。
【００４９】
クエリ生成器２１５が、ネゴシエートされたスキーマを選択すると、クエリは、複数のデータ・ソースそれぞれにわたって、場合によっては並列に実行し得る。ネゴシエートされたスキーマに含まれるデータ・ソース間の相互関係を利用して、クエリ生成器２１５は、クエリに対応する複数のデータ・ソースからデータをすばやくかつ効率的に取得し得る。
【００５０】
クエリ生成器２１５は、データ・ソースに記憶されたデータにアクセスする旨のクエリを生成したエンド・ユーザの適切な認証資格情報を利用し得る。例えば、クエリ生成器２１５は、データ・ソースをエンド・ユーザがアクセスすることを可能にするユーザ名／パスワードの組み合わせ、又はセキュアなＡＰＩ、証明書を利用し得る。クエリ生成器２１５はエンド・ユーザの認証資格情報を利用するので、エンド・ユーザに適切にアクセス可能なデータのみをクエリ生成器２１５によって取得し得る。すなわち、クエリ生成器２１５は、データ・ソース毎に確立されたセキュリティ・プロトコルを考慮に入る。
【００５１】
データ・ポイントがデータ・ソースから得られると、クエリ生成器２１５は、得られたデータをクエリ応答に合成し、又は他のやり方でクエリ応答に集約し、それは次いで、そのクライアント装置を介してエンド・ユーザに提供される。
【００５２】
まとめれば、アプリケーション２００は、別々の多くのデータ構造に記憶されたデータを生成する「最高品質の」システムをエンド・ユーザが利用することを可能にする。すなわち、別々のアプリケーションによって利用されるデータ構造に拘束されるよりも、アプリケーション２００は、データ・ソースのデータ構造にとらわれないデータ処理を可能にする。このようにして、エンド・ユーザは、使用したいアプリケーションがどれかを、データ構造（例えば、ファイル形式及びプロトコル）自体に基づいてではなく、アプリケーション自体の性能に基づいて選択し得る。アプリケーション２００は、データ構造自体を考慮することなく、前述の別個のデータ・ソースにわたって実行し得る。更に、スキーマ・ネゴシエーション及び作成処理は、エンド・ユーザに対して完全にトランスペアレントに生じ得る。
【００５３】
図３は、複数のデータ・ソースの、ネゴシエートされたスキーマを生成する例示的な方法３００のフロー図である。方法３００は、複数のデータ・ソースそれぞれと、通信するよう結合可能なコンピュータ装置を介して複数のデータ・ソースそれぞれのスキーマを判定する工程３０５を含み得る。
【００５４】
複数のデータ・ソースはそれぞれ、データ・ソースにどのデータが記憶されているかを規定する１つ又は複数のデータ構造を含み得る。複数のデータ・ソースそれぞれのスキーマを判定すると、方法３００は、複数のデータ・ソースのスキーマを互いに比較する工程３１５により、ネゴシエートされたスキーマを生成する工程３１０を含み得る。スキーマを比較した後、方法は、スキーマに基づいて複数のデータ・ソースのデータ・ポイントを相互に関係付ける工程３２０を含み得る。最後に、方法３００は、記憶媒体に、ネゴシエートされたスキーマを記憶する工程３２５を含み得る。
【００５５】
図４は、ネゴシエートされたスキーマを利用して複数のデータ・ソースにわたるクエリを実行するための例示的な方法４００のフロー図を示す。方法４００は、クライアント装置からデータに対するクエリを受信する工程４０５を含み得る。
【００５６】
次に、方法は、クエリの、ネゴシエートされたスキーマを選択し、かつ／又は作成する工程４１５を実行することにより、クエリを満たす工程４１０を含み得る。この場合も又、ネゴシエートされたスキーマは、クエリに含まれるキーワード又は他の情報を解析することによって選択し得る。ネゴシエートされたスキーマがない場合、上記で更に詳細に説明したやり方で、ネゴシエートされたスキーマを作成し得る。
【００５７】
適切なネゴシエートされたスキーマを選択した後、方法４００は、ネゴシエートされたスキーマにより、複数のデータ・ソースの１つ又は複数からデータ・ポイントを得る工程４２０を含み得る。すなわち、ネゴシエートされたスキーマに含まれるデータ構造及び／又はデータ・ポイントの相互関係により、複数のデータ・ソースからデータを取得し得る。
【００５８】
次に、方法４００は、ネゴシエートされたスキーマに含まれる相互関係に応じてデータ・ポイントを互いに合成してクエリ応答を作成する工程４２５と、最後に、クライアント装置にクエリ応答を提供する工程４３０とを含む。
【００５９】
図５は、本願の手法の実施例を実現するために使用し得る例示的なコンピュータ・システム５００を示す。図５のコンピュータ・システム５００は、コンピュータ・システム、ネットワーク、サーバ、又はそれらの組み合わせ等の環境において実現し得る。図５のコンピュータ・システム５００は１つ又は複数のプロセッサ５１０及び主メモリ５２０を含む。主メモリ５２０は、プロセッサ５１０による実行のためのデータ及び命令を部分的に記憶する。主メモリ５２０は、動作中、実行可能なコードを記憶し得る。図５のシステム５００は更に、大容量記憶装置５３０、ポータブル記憶媒体ドライブ５４０、出力装置５５０、ユーザ入力装置５６０、グラフィックス・ディスプレイ５７０、及び周辺装置５８０を含む。
【００６０】
図５に示す構成部分は、単一のバス５９０を介して接続されているように描いている。構成部分は１つ又は複数のデータ伝送手段を介して接続し得る。プロセッサ装置５１０及び主メモリ５２０は、局所マイクロプロセッサ・バスを介して接続し得、大容量記憶装置５３０、周辺装置５８０、ポータブル記憶装置５４０、及びディスプレイ・システム５７０は、１つ又は複数の入出力（Ｉ／Ｏ）バスを介して接続し得る。
【００６１】
磁気ディスク・ドライブ、光ディスク・ドライブ、又はＳＳＤで実現し得る大容量記憶装置５３０は、プロセッサ装置５１０によって使用するための命令及びデータを記憶する不揮発記憶装置である。大容量記憶装置５３０は、当該ソフトウェアを主メモリ５２０にロードする目的で本願の手法の実施例を実現するためのシステム・ソフトウェアを記憶し得る。
【００６２】
ポータブル記憶装置５４０は、図５のコンピュータ・システム５００との間でデータ及びコードを入出力するよう、フロッピー（登録商標）・ディスク、コンパクト・ディスク、ディジタル・ビデオ・ディスク、又はＵＳＢ記憶装置とともに動作する。本願の手法の実施例を実現するためのシステム・ソフトウェアは、前述のポータブル媒体上に記憶し、ポ―タブル記憶装置５４０を介してコンピュータ・システム５００に入力し得る。
【００６３】
入力装置５６０はユーザ・インタフェースの一部分を提供する。入力装置５６０は、マウス、トラックボール、スタイラス、又はカーソル方向キーなどの、ポインティング装置、又は英数及び他の情報を入力するための、キーボードなどの英数キーパッドを含み得る。更に、図５に示すシステム５００は、出力装置５５０を含む。適切な出力装置は、スピーカ、プリンタ、ネットワーク・インタフェース、及びモニタを含む。
【００６４】
ディスプレイ・システム５７０は、液晶ディスプレイ（ＬＣＤ）又は他の適切なディスプレイ装置を含み得る。ディスプレイ・システム５７０は、テキスト及びグラフィックス情報を受信し、ディスプレイ装置へ出力するための情報を処理する。
【００６５】
周辺装置５８０は、コンピュータ・システムに更なる機能を付加するための何れかのタイプのコンピュータ・サポート装置を含み得る。周辺装置５８０はモデム又はルータを含み得る。
【００６６】
図５のコンピュータ・システム５００において提供される構成部分は、本願の手法の実施例に使用することが適切であり得る、コンピュータ・システムに通常、存在し、当該技術分野において周知である前述のコンピュータ構成部分の広いカテゴリを表すことを意図している。よって、図５のコンピュータ・システム５００は、パソコン、ハンドヘルド・コンピュータ・システム、電話機、モバイル・コンピュータ・システム、ワークステーション、サーバ、ミニコンピュータ、汎用コンピュータ、又は何れかの他のコンピュータ・システムであり得る。コンピュータは更に、別々のバス構成、ネットワーキングされたプラットフォーム、マルチプロセッサ・プラットフォーム等を含み得る。ユニックス（登録商標）、リナックス（登録商標）、ウィンドウズ（登録商標）、マッキントッシュＯＳ、パームＯＳ、アンドロイド、ｉフォンＯＳ、及び他の適切なオペレーティング・システムを含む種々のオペレーティング・システムを使用し得る。
【００６７】
本明細書及び特許請求の範囲記載の処理を行うために適切なハードウェア・プラットフォームは、上記手法との使用に適している。コンピュータ読み取り可能な記憶媒体は、中央処理装置（ＣＰＵ）、プロセッサ、マイクロコントローラ等に命令を提供するうえで参加する何れかの媒体を表す。前述の媒体は、限定列挙でないが、光ディスクや磁気ディスクなどの、不揮発性媒体及び揮発性媒体を含む形態を呈し得る。コンピュータ読み取り可能な記憶媒体の一般的な形態には、フロッピー（登録商標）・ディスク、フレキシブル・ディスク、ハード・ディスク、磁気テープ、何れかの他の磁気記憶媒体、ＣＤ−ＲＯＭディスク、ディジタル・ビデオ・ディスク（ＤＶＤ）、何れかの他の光記憶媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨＥＰＲＯＭ、何れかの他のメモリ・チップ又はカートリッジを含む。
【００６８】
種々の実施例は、これまで説明してきたが、例としてのみ提示しており、限定として提示しているものでない。上記説明は、本明細書記載の特定の形態に手法の範囲を制限することを意図するものでない。よって、好ましい実施例の幅及び範囲は、上記例示的な実施例の何れかによって限定されるべきでない。上記説明は例証的であり、制限的でない。逆に、本願の説明は、特許請求の範囲に記載され、当業者により、それ以外の態様で理解された手法の趣旨及び範囲内に含まれ得る代替策、修正、及び均等物を包含することが意図されている。本願の手法の範囲はしたがって、上記説明を参照して判定されるものでなく、その代わりに、均等物の完全な範囲とともに、添付した請求項を参照して判定すべきである。
【図１】
2014531076.tif 000003
【図２】
2014531076.tif 000004
【図３】
2014531076.tif 000005
【図４】
2014531076.tif 000006
【図５】
2014531076.tif 000007
【国際調査報告】
2014531076.tif 000008