(57)【要約】  照会を行う前にデータを抽出し、変換してデータベースにロードする必要なく、１又は２以上のデータソースから結果を取得する方法及びシステムについて説明する。データは、そのオリジナルフォーマットを維持してその初期位置に留まることができ、動的に生成された照会文を用いてデータへの選択的アクセスが行われる。それぞれが記憶データのための独自のフォーマットを有する複数のデータソースに同時にアクセスすることができる。所与の照会に使用すべきデータソース、目標フィールド及びパラメータを定義することによって様々なデータソースからデータ（照会結果）を取得するために、照会文を生成する。この文は、データソースからのデータを照会結果に変換（及び時には集約）するために再帰的に適用される所定の演算を含む。照会文及び照会結果は、後で使用できるように保存することができる。【選択図】      図１
2018514044.tif 000002
【特許請求の範囲】
【請求項１】
データソースにデータを照会する方法であって、
（ａ）第１の照会要求を受け取るステップと、
（ｂ）（ｉ）少なくとも１つの第１のデータソースと、
（ｉｉ）少なくとも１つの第１の目標フィールドと、
（ｉｉｉ）第１の照会パラメータと、
（ｉｖ）関連する属性を有する複数のネスト演算と、
を識別する、前記第１の照会要求に対応する第１の照会文を生成するステップと、
（ｃ）（ｖ）前記第１の照会パラメータを用いて前記少なくとも１つの第１のデータソースにアクセスし、
（ｖｉ）前記ネスト演算のうちの少なくとも１つのネスト演算に従って、前記少なくとも１つの第１のデータソースの所与のフィールドからデータを検索し、
（ｖｉｉ）前記ネスト演算のうちの残りのネスト演算に従って、検索したデータを少なくとも１つの目標結果に変換する、
ことによって前記第１の照会文を実行するステップと、
（ｄ）前記少なくとも１つの目標結果を前記少なくとも１つの目標フィールドに追加することによって第１の照会結果を生成するステップと、
を含むことを特徴とする方法。
【請求項２】
前記少なくとも１つの第１のデータソースは、第２の照会文を含む、
請求項１に記載の方法。
【請求項３】
前記第１の照会文を実行するステップは、前記第２の照会文を実行して第２の照会結果を生成するステップを含み、所与のフィールドからデータを検索するステップは、前記第２の照会結果の所与のフィールドからデータを検索するステップを含む、
請求項２に記載の方法。
【請求項４】
前記少なくとも１つの第１のデータソースは、各照会文チェーンについて最終的なデータソースが照会されるまでそれぞれが別の照会文を参照する少なくとも１つの照会文チェーンを含み、前記第１の照会文を実行するステップは、前記チェーンにおける前記照会文を全て実行して対応する照会結果を生成するステップを含む、
請求項１から３のいずれか１項に記載の方法。
【請求項５】
照会文及び照会結果のうちの少なくとも１つを再使用のために保存するステップをさらに含む、
請求項１から４のいずれか１項に記載の方法。
【請求項６】
（ｅ）少なくとも１つの第３のデータソースを識別し、少なくとも１つの第３の目標フィールドを定義して、第３の照会パラメータを含む、第３の照会要求を受け取るステップと、
（ｆ）前記少なくとも１つの第３のデータソース、前記少なくとも１つの第３の目標フィールド及び前記第３の照会パラメータが、前記少なくとも１つの第１のデータソース、前記少なくとも１つの第１の目標フィールド及び前記第１の照会パラメータにそれぞれ一致するかどうかを判定するステップと、
（ｇ）一致しない場合、前記第３の照会要求に従って第３の照会文を生成し、該第３の照会文を実行して第３の照会結果を戻すステップと、
（ｈ）一致する場合、前記第１の照会結果を検索し、該第１の照会結果を前記第３の照会結果として戻すステップと、
をさらに含む、請求項１から５のいずれか１項に記載の方法。
【請求項７】
（ｈ）は、前記少なくとも１つの第１のデータソースが変化したどうかを判定するステップと、
（ｖｉｉｉ）変化していない場合、前記第３の照会結果が実行された時に、前記第１の照会結果を検索して該第１の照会結果を戻すステップと、
（ｉｘ）変化した場合、前記第１の照会結果を削除し、前記第１の照会文を検索し、該第１の照会文を実行して前記第３の照会結果を戻すステップと、
をさらに含む、請求項６に記載の方法。
【請求項８】
（ｉｘ）は、前記変化したデータソースを参照する照会文チェーン内の照会文に関連する全ての照会結果を削除し、前記変化したデータソースを参照する前記照会文チェーン内の前記照会文の照会結果を再生し、前記変化したデータソースを参照する前記照会文チェーンの一部ではない照会文の記憶されている照会結果を検索するステップをさらに含む、
請求項７に記載の方法。
【請求項９】
一致しない場合、及び前記第１の照会パラメータと前記第３の照会パラメータとの間で少なくとも１つのパラメータのみが変化した場合、前記変化した少なくとも１つのパラメータを使用する照会文チェーン内の照会文の照会結果、又は前記変化した少なくとも１つのパラメータを使用した結果を再生し、前記変化した少なくとも１つのパラメータを使用する照会文チェーンの一部ではない照会文の記憶されている照会結果、又は前記変化した少なくとも１つのパラメータを使用した結果を検索するステップをさらに含む、
請求項６から８のいずれか１項に記載の方法。
【請求項１０】
前記第１の照会文を生成するステップは、前記少なくとも１つの目標結果を取得するために、再帰的データ変換ステップを用いて（ｖ）アクセスするステップ、（ｖｉ）検索するステップ及び（ｖｉｉ）変換するステップを定義するステップを含む、
請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記第１の照会結果を生成するステップは、前記再帰的データ変換ステップの各ステップについて戻された値を表示するステップをさらに含む、
請求項１０に記載の方法。
【請求項１２】
前記第１の照会文を実行するステップは、検索データ及び変換データの少なくとも一方をフィルタ処理するステップをさらに含む、
請求項１０又は１１に記載の方法。
【請求項１３】
フィルタ処理するステップは、前記検索データ又は前記変換データに前記フィルタ処理を適用するかどうかを自動的に判定するステップを含む、
請求項１２に記載の方法。
【請求項１４】
前記第１の照会文を生成するステップは、少なくとも２つのデータソースを結合するために、前記再帰的データ変換ステップの最初のステップを結合関数として定義し、前記少なくとも１つの第１の目標フィールドを少なくとも１つの結合目標フィールドとして定義するステップを含む、
請求項１０から１３のいずれか１項に記載の方法。
【請求項１５】
前記結合関数は、前記少なくとも１つの第１のデータソース、アドホックパラメータ及びハードコード値のうちのいずれか１つからのフィールドを使用する、
請求項１４に記載の方法。
【請求項１６】
前記第１の照会文を実行するステップは、前記少なくとも１つの結合目標フィールドに一致する前記少なくとも２つのデータソースからの行のインデックスを自動的に決定するステップを含む、
請求項１４又は１５に記載の方法。
【請求項１７】
検索データを変換するステップは、いずれかの非結合目標フィールドの行の前記インデックスを使用するステップを含む、
請求項１６に記載の方法。
【請求項１８】
前記第１の照会文を実行するステップは、前記少なくとも１つの目標結果に第１のグループ化関数を適用するステップをさらに含み、前記少なくとも１つの目標フィールドに追加するステップは、前記第１のグループ化関数からのフィールドのみを使用するステップを含む、
請求項１０から１７のいずれか１項に記載の方法。
【請求項１９】
前記第１の照会文を実行するステップは、前記少なくとも１つの第１のデータソースに第２のグループ化関数を適用するステップをさらに含み、データを検索するステップは、前記第２のグループ化関数からのフィールドのみを検索するステップを含む、
請求項１０から１８のいずれか１項に記載の方法。
【請求項２０】
データソースにデータを照会するシステムであって、
処理ユニットと、
前記処理ユニットに通信可能に結合された、コンピュータ可読プログラム命令を含むメモリと、
を備え、前記コンピュータ可読プログラム命令は、前記処理ユニットによって、
（ａ）第１の照会要求を受け取るステップと、
（ｂ）（ｉ）少なくとも１つの第１のデータソースと、
（ｉｉ）少なくとも１つの第１の目標フィールドと、
（ｉｉｉ）第１の照会パラメータと、
（ｉｖ）関連する属性を有する複数のネスト演算と、
を識別する、前記第１の照会要求に対応する第１の照会文を生成するステップと、
（ｃ）（ｖ）前記第１の照会パラメータを用いて前記少なくとも１つの第１のデータソースにアクセスし、
（ｖｉ）前記ネスト演算のうちの少なくとも１つのネスト演算に従って、前記少なくとも１つの第１のデータソースの所与のフィールドからデータを検索し、
（ｖｉｉ）前記ネスト演算のうちの残りのネスト演算に従って、検索したデータを少なくとも１つの目標結果に変換する、
ことによって前記第１の照会文を実行するステップと、
（ｄ）前記少なくとも１つの目標結果を前記少なくとも１つの目標フィールドに追加することによって第１の照会結果を生成するステップと、
を実行するように実行可能である、
ことを特徴とするシステム。
【請求項２１】
前記少なくとも１つの第１のデータソースは、第２の照会文を含む、
請求項２０に記載のシステム。
【請求項２２】
前記第１の照会文を実行するステップは、前記第２の照会文を実行して第２の照会結果を生成するステップを含み、所与のフィールドからデータを検索するステップは、前記第２の照会結果の所与のフィールドからデータを検索するステップを含む、
請求項２１に記載のシステム。
【請求項２３】
前記少なくとも１つの第１のデータソースは、各照会文チェーンについて最終的なデータソースが照会されるまでそれぞれが別の照会文を参照する少なくとも１つの照会文チェーンを含み、前記第１の照会文を実行するステップは、前記チェーンにおける前記照会文を全て実行して対応する照会結果を生成するステップを含む、
請求項２０から２２のいずれか１項に記載のシステム。
【請求項２４】
照会文及び照会結果のうちの少なくとも１つを再使用のために保存するステップをさらに含む、
請求項２０から２３のいずれか１項に記載のシステム。
【請求項２５】
前記コンピュータ可読プログラム命令は、前記処理ユニットによって、
（ｅ）少なくとも１つの第３のデータソースを識別し、少なくとも１つの第３の目標フィールドを定義して、第３の照会パラメータを含む、第３の照会要求を受け取るステップと、
（ｆ）前記少なくとも１つの第３のデータソース、前記少なくとも１つの第３の目標フィールド及び前記第３の照会パラメータが、前記少なくとも１つの第１のデータソース、前記少なくとも１つの第１の目標フィールド及び前記第１の照会パラメータにそれぞれ一致するかどうかを判定するステップと、
（ｇ）一致しない場合、前記第３の照会要求に従って第３の照会文を生成し、該第３の照会文を実行して第３の照会結果を戻すステップと、
（ｈ）一致する場合、前記第１の照会結果を検索し、該第１の照会結果を前記第３の照会結果として戻すステップと、
を実行するようにさらに実行可能である、
請求項２０から２４のいずれか１項に記載のシステム。
【請求項２６】
（ｈ）は、前記少なくとも１つの第１のデータソースが変化して  （ｈ）は、前記少なくとも１つの第１のデータソースが変化したどうかを判定するステップと、
（ｖｉｉｉ）変化していない場合、前記第３の照会結果が実行された時に、前記第１の照会結果を検索して該第１の照会結果を戻すステップと、
（ｉｘ）変化した場合、前記第１の照会結果を削除し、前記第１の照会文を検索し、該第１の照会文を実行して前記第３の照会結果を戻すステップと、
をさらに含む、請求項２５に記載のシステム。
【請求項２７】
（ｉｘ）は、前記変化したデータソースを参照する照会文チェーン内の照会文に関連する全ての照会結果を削除し、前記変化したデータソースを参照する前記照会文チェーン内の前記照会文の照会結果を再生し、前記変化したデータソースを参照する前記照会文チェーンの一部ではない照会文の記憶されている照会結果を検索するステップをさらに含む、
請求項２６に記載のシステム。
【請求項２８】
一致しない場合、及び前記第１の照会パラメータと前記第３の照会パラメータとの間で少なくとも１つのパラメータのみが変化した場合、前記変化した少なくとも１つのパラメータを使用する照会文チェーン内の照会文の照会結果、又は前記変化した少なくとも１つのパラメータを使用した結果を再生し、前記変化した少なくとも１つのパラメータを使用する照会文チェーンの一部ではない照会文の記憶されている照会結果、又は前記変化した少なくとも１つのパラメータを使用した結果を検索するステップをさらに含む、
請求項２５から２７のいずれか１項に記載のシステム。
【請求項２９】
前記第１の照会文を生成するステップは、前記少なくとも１つの目標結果を取得するために、再帰的データ変換ステップを用いて（ｖ）アクセスするステップ、（ｖｉ）検索するステップ及び（ｖｉｉ）変換するステップを定義するステップを含む、
請求項２０から２８のいずれか１項に記載のシステム。
【請求項３０】
前記第１の照会結果を生成するステップは、前記再帰的データ変換ステップの各ステップについて戻された値を表示するステップをさらに含む、
請求項２９に記載のシステム。
【請求項３１】
前記第１の照会文を実行するステップは、検索データ及び変換データの少なくとも一方をフィルタ処理するステップをさらに含む、
請求項２９又は３０に記載のシステム。
【請求項３２】
フィルタ処理するステップは、前記検索データ又は前記変換データに前記フィルタ処理を適用するかどうかを自動的に判定するステップを含む、
請求項３１に記載のシステム。
【請求項３３】
前記第１の照会文を生成するステップは、少なくとも２つのデータソースを結合するために、前記再帰的データ変換ステップの最初のステップを結合関数として定義し、前記少なくとも１つの第１の目標フィールドを少なくとも１つの結合目標フィールドとして定義するステップを含む、
請求項２９から３２のいずれか１項に記載のシステム。
【請求項３４】
前記結合関数は、前記少なくとも１つの第１のデータソース、アドホックパラメータ及びハードコード値のうちのいずれか１つからのフィールドを使用する、
請求項３３に記載のシステム。
【請求項３５】
前記第１の照会文を実行するステップは、前記少なくとも１つの結合目標フィールドに一致する前記少なくとも２つのデータソースからの行のインデックスを自動的に決定するステップを含む、
請求項３３又は３４に記載のシステム。
【請求項３６】
検索データを変換するステップは、いずれかの非結合目標フィールドの行の前記インデックスを使用するステップを含む、
請求項３５に記載のシステム。
【請求項３７】
前記第１の照会文を実行するステップは、前記少なくとも１つの目標結果に第１のグループ化関数を適用するステップをさらに含み、前記少なくとも１つの目標フィールドに追加するステップは、前記第１のグループ化関数からのフィールドのみを使用するステップを含む、
請求項２９から３６のいずれか１項に記載のシステム。
【請求項３８】
前記第１の照会文を実行するステップは、前記少なくとも１つの第１のデータソースに第２のグループ化関数を適用するステップをさらに含み、データを検索するステップは、前記第２のグループ化関数からのフィールドのみを検索するステップを含む、
請求項２９から３７のいずれか１項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願との相互参照〕
本出願は、２０１５年３月２６日に出願された米国仮特許出願第６２／１３８，４５０号の合衆国法典第３５編第１１９条（ｅ）に基づく優先権を主張するものであり、この文献の内容はその全体が引用により本明細書に組み入れられる。
【０００２】
本開示は、データ処理の分野に関し、具体的には、複数のデータソース／レイアウトにデータを照会し、データをクリーニングし、変換し、集約して照会結果を戻すことに関する。
【背景技術】
【０００３】
データベース（又はデータウェアハウス）は、情報の検索及び分析を容易にするように設計されたデータリポジトリである。抽出、変換及びロード（ＥＴＬ）は、データベースにデータを追加するために必要な工程である。データは、同種又は異種のデータソースから抽出される。抽出されたデータは、正しいフォーマット又は構造に変換され、変換されたデータは、照会及び分析目的でデータベースのテーブルにロードされる。この手法は、「スキーマオンライト」と呼ばれる。様々なデータソースから抽出されたデータのフォーマット又は構造に大きな差異がある場合、この工程は長くて複雑なものになり得る。また、データテーブルの数が増えると、テーブル自体も変化を必要とし、構造を記憶して管理することに関連するコスト及び記憶されるデータが増加する。
【０００４】
データ照会とは、データベースに情報を要求することを意味する。正しくインデックス化された所定の構造、及び要求された情報のみを効率的に取得するために照会を正しく標的化する能力は、データベースを強力にするものである。照会の提出には、メニューからパラメータを選択するもの、例示による照会（ＱＢＥ）、及び照会言語を使用するものなどの様々な形態がある。構造化照会言語（ＳＱＬ）などの照会言語の使用には、データベース構造、ビジネス概念及び汎用照会プログラミング言語の知識が必要であり、従って全ての人々が新たな照会をオンザフライで設計できるわけではない。照会言語を直接使用する以外の照会方法でも、通常は照会を生成するために陰で照会言語が関与する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データベースにデータを記憶するために全てを前もって定義する厳格さ及び必要性、データベースにデータをロードする前に例外を管理して全てを明確にする複雑さは、あらゆるデータソリューションのコスト及び柔軟性に影響を与える。従って、データソースに記憶されているデータへのアクセスに使用する方法及びシステムを改善することが必要とされている。
【０００６】
さらに、データ管理業界には、非構造化ベースを用いてデータを記憶し、スクリプトを用いて異なるデータ構造を管理し、同様のスクリプトを用いてデータを変換して処理するという推移が存在する。この手法は「スキーマオンリード」と呼ばれ、一般にＮｏＳＱＬ、Ｈａｄｏｏｐ又はＢｉｇ  Ｄａｔａと呼ばれることもある。構造化されたスクリプトが存在しないため、構造を管理する複雑さ及び依存性は、データベース管理者から熟練のプログラマに移行してきた。従って、この手法を構造化して維持する方法を改善することも必要とされている。
【課題を解決するための手段】
【０００７】
本明細書では、照会を行う前にデータを抽出し、変換してデータベースにロードする必要なく、１又は２以上のデータソースから結果を取得する方法及びシステムについて説明する。データは、そのオリジナルフォーマットを維持してその初期位置に留まることができ、動的に生成された照会文を用いてデータへの選択的アクセスが行われる。それぞれが記憶データのための独自のフォーマットを有する複数のデータソースに同時にアクセスすることができる。方法の全体構造及び視覚的性質によって、照会の更新が容易になる。
【０００８】
所与の照会に使用すべきデータソース、目標フィールド及びパラメータを定義することによって様々なデータソースからデータ（照会結果）を取得するために、照会文を生成する。この文は、データソースからのデータを照会結果に変換（及び時には集約）するために再帰的に適用される所定の演算を含む。照会文及び照会結果は、使用されるソース、パラメータ及び照会文を決定する情報ファイルと共に、（妥当な場合に）後で使用できるように保存することができる。
【０００９】
保存した照会結果は、新たな照会が同じデータソース及び同じパラメータを含み、データソースが変化していない場合に再使用（すなわち、照会結果を再生するために使用）することができる。保存した照会文は、新たな照会が同じデータソース及び同じパラメータを含んでいるが、データソースが変化している場合にも再使用することができる。このような場合には、以前に保存された照会結果を削除し、新たな情報ファイルと共に新たな照会結果を生成することができる。
【００１０】
保存された照会文は、新たな照会文のデータソースとして使用することができる。これにより、異なるソースから文によって未加工データをプルし、他の照会結果のソースとして使用すべき照会結果を生成できる、再帰的カスケードアーキテクチャを作成することができる。
【００１１】
基本的に、このシステムは、後でアクセスできるようにデータベースにデータをプッシュする「プッシュタイプ」システムではなく、必要時にデータをプルする「プルタイプ」システムである。このプル機能は、結果を生成するために様々なデータソースからのデータを変換する上で再帰的である。保存された文及び保存された結果は、再帰的カスケードアーキテクチャにおいて使用される。
【００１２】
第１の包括的態様によれば、データソースにデータを照会する方法が提供される。この方法は、第１の照会要求を受け取るステップと、第１の照会要求に対応する第１の照会文を生成するステップとを含み、第１の照会文は、少なくとも１つの第１のデータソースと、少なくとも１つの第１の目標フィールドと、第１の照会パラメータと、関連する属性を有する複数のネスト演算とを識別する。方法は、第１の照会パラメータを用いて少なくとも１つの第１のデータソースにアクセスし、ネスト演算のうちの少なくとも１つのネスト演算に従って、少なくとも１つの第１のデータソースの所与のフィールドからデータを検索し、ネスト演算のうちの残りのネスト演算に従って、検索したデータを少なくとも１つの目標結果に変換することによって、第１の照会文を実行するステップを含む。方法は、少なくとも１つの目標結果を少なくとも１つの目標フィールドに追加することによって第１の照会結果を生成するステップも含む。
【００１３】
別の包括的態様によれば、データソースにデータを照会するシステムが提供される。このシステムは、処理ユニットと、処理ユニットに通信可能に結合された、コンピュータ可読プログラム命令を含むメモリとを含む。コンピュータ可読プログラム命令は、処理ユニットによって、第１の照会要求を受け取るステップと、第１の照会要求に対応する第１の照会文を生成するステップとを実行するように実行可能であり、第１の照会文は、少なくとも１つの第１のデータソースと、少なくとも１つの第１の目標フィールドと、第１の照会パラメータと、関連する属性を有する複数のネスト演算とを識別する。このプログラムは、第１の照会パラメータを用いて少なくとも１つの第１のデータソースにアクセスし、ネスト演算のうちの少なくとも１つのネスト演算に従って、少なくとも１つの第１のデータソースの所与のフィールドからデータを検索し、ネスト演算のうちの残りのネスト演算に従って、検索したデータを少なくとも１つの目標結果に変換することによって、第１の照会文を実行するステップを実行するようにも実行可能である。プログラムコードは、少なくとも１つの目標結果を少なくとも１つの目標フィールドに追加することによって第１の照会結果を生成するステップを実行するようにも実行可能である。
【００１４】
さらに別の包括的態様によれば、データソースにデータを照会するように処理ユニットによって実行可能なプログラム命令を記憶した非一時的コンピュータ可読媒体が提供される。このプログラム命令は、第１の照会要求を受け取るステップと、第１の照会要求に対応する第１の照会文を生成するステップとを実行するように実行可能であり、第１の照会文は、少なくとも１つの第１のデータソースと、少なくとも１つの第１の目標フィールドと、第１の照会パラメータと、関連する属性を有する複数のネスト演算とを識別する。この命令は、第１の照会パラメータを用いて少なくとも１つの第１のデータソースにアクセスし、ネスト演算のうちの少なくとも１つのネスト演算に従って、少なくとも１つの第１のデータソースの所与のフィールドからデータを検索し、ネスト演算のうちの残りのネスト演算に従って、検索したデータを少なくとも１つの目標結果に変換することによって、第１の照会文を実行するステップも実行する。この命令は、少なくとも１つの目標結果を少なくとも１つの目標フィールドに追加することによって第１の照会結果を生成するステップも実行する。
【００１５】
添付図面と組み合わせて行う以下の詳細な説明から、本発明のさらなる特徴及び利点が明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】データ照会方法に使用するいくつかのコンポーネントを示す図である。
【図２】照会文の作成及び実行に使用するいくつかの要素を示す図である。
【図３】照会文の作成に使用する要素の一般的な例である。
【図４ａ】目標フィールドを定義するデータの再帰的変換の例示的な構築を示すグラフィカルユーザインターフェイスのスクリーンショットである。
【図４ｂ】目標フィールドを定義するデータの再帰的変換の例示的な構築を示すグラフィカルユーザインターフェイスのスクリーンショットである。
【図４ｃ】目標フィールドを定義するデータの再帰的変換の例示的な構築を示すグラフィカルユーザインターフェイスのスクリーンショットである。
【図４ｄ】目標フィールドを定義するデータの再帰的変換の例示的な構築を示すグラフィカルユーザインターフェイスのスクリーンショットである。
【図４ｅ】目標フィールドを定義するデータの再帰的変換の例示的な構築を示すグラフィカルユーザインターフェイスのスクリーンショットである。
【図４ｆ】目標フィールドを定義するデータの再帰的変換の例示的な構築を示すグラフィカルユーザインターフェイスのスクリーンショットである。
【図５ａ】少なくとも２つのデータソースが結合されて目標フィールドの初期ノードが結合関数である結合目標を定義するデータの再帰的変換の例示的な構築を示すグラフィカルユーザインターフェイスのスクリーンショットである。
【図５ｂ】少なくとも２つのデータソースが結合されて目標フィールドの初期ノードが結合関数である結合目標を定義するデータの再帰的変換の例示的な構築を示すグラフィカルユーザインターフェイスのスクリーンショットである。
【図５ｃ】少なくとも２つのデータソースが結合されて目標フィールドの初期ノードが結合関数である結合目標を定義するデータの再帰的変換の例示的な構築を示すグラフィカルユーザインターフェイスのスクリーンショットである。
【図５ｄ】少なくとも２つのデータソースが結合されて目標フィールドの初期ノードが結合関数である結合目標を定義するデータの再帰的変換の例示的な構築を示すグラフィカルユーザインターフェイスのスクリーンショットである。
【図６】他の照会文のデータソースとして使用される照会文の例示的な実施形態を示す図である。
【図７】図６の照会文から生成される照会結果の例示的な実施形態を示す図である。
【図８】データソースの変化に起因して再生する必要がある図６のいくつかの照会結果の例示的な実施形態を示す図である。
【図９】アドホックパラメータを照会結果に受け渡す方法の例示的な実施形態を示す図である。
【図１０】パラメータの変化に起因して再生する必要がある図９のいくつかの照会結果の例示的な実施形態を示す図である。
【図１１】例示的なデータ照会システムを示す図である。
【図１２】図１１のデータ照会システムの例示的な実施形態を示す図である。
【図１３】図１２のプロセッサ上で実行されるアプリケーションの例示的な実施形態を示す図である。
【発明を実施するための形態】
【００１７】
添付図面全体を通じ、同じ特徴は同じ参照数字によって識別する。
【００１８】
図１に、データ照会方法の基本的コンポーネントを示す。照会文１００は、照会要求を定義する１又は２以上の演算を含む。照会文１００は、一連のデータソース１０１からの少なくとも１つのデータソースを識別する。データソース１０１は、例えばデータファイル１０１ａ、以前の照会結果１０１ｂ、データベース１０１ｃ、以前の照会文１０１ｄ、又はウェブサイト上のテーブルからのデータなどの他のタイプのデータソース１０１ｅである。照会文１００は、データを抽出すべき少なくとも１つのデータソースからの少なくとも１つの目標フィールドも定義する。照会文１００は、オンザフライで定義して受け渡すことができる照会パラメータ１０２を使用して照会結果１０３を作成する。照会パラメータ１０２は、全ての照会文１００にとって大域的なデフォルトパラメータとすることもできる。
【００１９】
図２に示すように、グラフィカルユーザインターフェイス（ＧＵＩ）２０１を使用して照会要求２００を作成することができる。ＧＵＩ２０１は、照会文１００の生成元である照会要求２００を閲覧及び／又は設定するために使用される。ＧＵＩ２０１は、ソース１０１と、パラメータ１０２と、結果１０３との間の関係をユーザに表示することができる。照会文１００は、ＸＭＬファイル２０２又はその他のこのようなファイルなどのマークアップ言語ファイルとして保存することができる。変更が必要な場合、ＧＵＩ２０１は、以前に作成されたＸＭＬファイル２０２をロードすることができる。照会文実行ファイル２０３は、以前に作成されたＸＭＬファイル２０２を使用して、別個の独立した工程を通じて照会結果１０３を生成することができる。照会文実行ファイル２０３は、例えばＥＸＥタイプ、ＣＯＭタイプ、又はＤＬＬタイプとすることができ、或いはサーバ又はウェブサービスに添付することもできる。
【００２０】
照会文１００は、データソース１０１からのデータを照会結果１０３に変換（及び時には集約）するために再帰的に適用される一連の演算から結果目標フィールドを定義するように構築される。データ変換のためのいくつかの例示的な演算には、ｍａｐ、ｃａｌｃｕｌａｔｅ、ｆｉｎｄ、ｆｏｒｍａｔ、ｌｅｆｔ、ｌｅｎｇｔｈ、ｒｅｐｌａｃｅ、ｒｉｇｈｔ、ｐａｒｔ、ＴｏＳｐｌｉｔ、ｔｒｉｍ、ｓｗｉｔｃｈ及びＥｘｃｅｌＦｘがある。これらは以下のように定義される。
・Ｍａｐ：複数のノードからの値を組み合わせる。
・Ｃａｌｃｕｌａｔｅ：ノードに数式を適用する。
・Ｌｅｆｔ／Ｒｉｇｈｔ：ノードの左側／右側から保持された文字数を戻す。
・Ｐａｒｔ：第２のノードから開始して第３のノードの長さにわたり、第１のノードから保持された文字数を戻す。
・Ｔｒｉｍ：ノードの始まり、ノードの終わり、又は両方から文字を削除する。
・Ｌｅｎｇｔｈ：文字のノード値数をカウントする。
・Ｆｏｒｍａｔ：第１のノード値フォーマットを第２のノードフォーマットに変換し、任意に第３のノードを使用してオリジナルフォーマットを定義する。この演算は、１つのフォーマットから別のフォーマットへのデータ変換方法として使用することができる。
・Ｆｉｎｄ：第１のノードの文字列内の値の位置を発見し、又は第１のノードにおける第２のノードの発生数をカウントする。
・ＴｏＳｐｌｉｔ：第１のノードを第２のノードのセクションに分割して第３のノードのセクション番号を戻す。
・Ｓｗｉｔｃｈ：第２のノード演算子を用いて第１のノードと第３のノードとを比較することによって基本的な「ＩＦ」条件の適用を行う。戻り値は２つの選択肢を有し、真であれば第４のノードが戻され、又は偽であれば第５のノードが戻される。
【００２１】
各演算は、演算のパラメータを定義する１又は２以上の属性を有する。例えば、「ｌｅｆｔ」演算は２つの属性（ノード）を有する。これらは、初期値及び保持すべき長さである。これらの演算を使用して、目標フィールド、フィルタ（イン又はアウト）、又は選択された目標フィールド別にデータを集約／グループ化すべき方法を定めることができる。属性は、以下で例示するようなツリー状変換におけるノードとして設定される。
【００２２】
図３は、照会文１００をどのように作成するかについての一般的な例である。１又は２以上の目標フィールド３００を定め、関連する属性を有する一連のネスト演算３０２を使用して照会結果１０３を追加する。いくつかの実施形態では、１又は２以上のデータソース１０１からのデータを初期フィルタ３０１に通して、後続の工程ステップで使用すべき未加工データのサイズを縮小することができる。このフィルタ処理ステップでは、目標フィールド、大域パラメータ又はハードコード値に対して再帰演算又はネスト演算を使用することができる。目標フィールド３００は、標準的結果又は結合結果を含むことができる。結合結果は、２又は３以上のデータソースからの２つの目標フィールド結果を単一の目標フィールドに組み合わせるのに対し、標準的な目標フィールドは、単一のルートを有してあらゆるソースからデータを取得する。結合目標フィールドは、目標結果の定義において再帰的変換を使用することができる。演算３０２は、未加工データ又は以前の演算の結果に適用される。演算の結果は、例えば結果をフィルタ処理し、グループ化し、又はソートすることによってさらに処理することができる（３０３）。いくつかのグループ化の例には、ｓｅｌｅｃｔ、ｓｕｍ、ａｖｅｒａｇｅ、ｃｏｕｎｔ、ｃｏｕｎｔ  ｄｉｓｔｉｎｃｔ、ｍａｘ、ｍｉｎ、ａｖｇ、ｆｉｒｓｔ、ｌａｓｔ、ｐｅｒｃｅｎｔ、ｔｏｔａｌ、ｐｒｏｄｕｃｔなどによるグループ化がある。
【００２３】
いくつかの実施形態では、１又は２以上のデータソース１０１からのデータを選択されたデータフィールド別にグループ化して、新たな照会文を作成する必要なくコンテンツを修正することができる。他の実施形態では、新たな照会文を作成する必要なく修正されたソースを使用するために、たった１つのソースを有する単純化された照会文を作成してデータソース１０１に適用することができる。これは、「文スタイル」照会と呼ばれ、照会文における一時的なものにすぎず、ソースを再定義するためにのみ適用される。このような照会は、単一のソース、オリジナルソースを有する。
【００２４】
図４ａ〜図４ｆに、例示的なＧＵＩ２０１を用いて照会文１００を作成する特定の例を示す。この例には、フルネームのリストを有するデータソースに照会を行って各行のファーストネームを戻すことができる１つの方法を示す。
【００２５】
図４ａには、データソースエリア４０２と、照会結果エリア４０４と、演算エリア４０６とを含むＧＵＩ２０１を示す。データソースエリア４０２は、データソース１０１のコンテンツを表示する。データソースエリア４０２にどのデータソースを表示すべきかを選択するプルダウンメニュー又はその他の選択メニューを提供することができる。照会結果エリア４０４は、照会結果１０３が生成された時にこれを表示し、演算エリア４０６は、データに適用される各演算及びその対応する属性を表示する。結果エリア４０４内の目標結果が最終的な照会結果においてどのように表示されるかを定義するために使用されるパラメータを表示する結果定義エリア４０８も提供される。図４ａでは、未だ演算が定義されていないので、演算エリア４０６及び照会結果エリア４０４は空白である。データソースエリア４０２は、「Ｓｏｕｒｃｅ（ソース）」という名前のデータソースからの「Ｆｕｌｌｎａｍｅ（フルネーム）」という名前の３行のソースフィールドを表示している。なお、本明細書で使用する目標フィールド及びデータソースの名前及びコンテンツは例示目的にすぎない。
【００２６】
図４ｂには、演算エリア４０６に第１の演算が入力されたことを示す。この演算は、結果エリア４０４の目標フィールド４０３内に初期文字列を追加するために使用される。この例における演算は、所与のソースの所与のフィールドの値を単純に戻すものである。演算属性４１２が、「Ｓｏｕｒｃｅ」という名前のソースの「ＦｕｌｌＮａｍｅ」という名前のフィールドを参照する「［Ｓｏｕｒｃｅ］．［ＦｕｌｌＮａｍｅ］」として表示されている。戻された結果４１４は「Ｊｅａｎ  Ｔｒｅｍｂｌａｙ」であり、属性４１２の隣に表示されている。ＧＵＩ２０１には、選択された演算の属性を表示するための属性エリア４１０が提供される。この特徴は、それぞれが以下に示すような独自の属性を有する複数のネスト演算を用いて照会結果１０３を取得した時に有用である。
【００２７】
図４ｃでは、演算エリア４０６に別の演算が追加されている。この演算は、「ＴｏＳｐｌｉｔ」という名前であり、属性エリア４１０内に表示される３つの属性を含む。なお、演算の名前は例示にすぎず、異なることもできる。それぞれが演算における所定の目的又は役割を有する関連する所定数の属性を有する演算を事前に定義することができる。例えば、「ＴｏＳｐｌｉｔ」演算の第１の属性は、演算の実行対象である文字列を示す。この例では、この文字列が、前の演算からの結果、すなわち「Ｊｅａｎ  Ｔｒｅｍｂｌａｙ」である。第２の属性は、文字列内で何を探索するかを示し、この例ではスペースである。第３の属性は、文字列内で「スペース」に遭遇した時に戻すべきテキストのブロック、すなわち「１」によって識別される最初のテキストブロックを示す。この結果、演算名「ＴｏＳｐｌｉｔ」の隣に「Ｊｅａｎ」が表示される。従って、この演算は、スペースによって分離された文字列内の最初のテキストブロックを戻すように設定されている。第３の属性として値「１」の代わりに「２」が入力されていた場合、戻される結果は、「Ｊｅａｎ」ではなく「Ｔｒｅｍｂｌａｙ」になる。結果エリア４０４には、フィールド４０３ａが「Ｊｅａｎ」として表示され、フィールド４０３ｂが「Ｓａｍｕｅｌ」として表示され、フィールド４０３ｃが「Ｇａｔｅｓ，Ｗｉｌｌ」として表示されているが、これは文字列「Ｇａｔｅｓ，Ｗｉｌｌ」にスペースが存在しないためである。この例で明らかなように、演算は、他の選択肢が可能でない時には初期値を戻すように設定することができる。
【００２８】
図４ｄには、フィールド４０３ｃに戻された結果を変更するために別の演算を追加することによってさらに拡張された照会を示す。新たに追加された演算は「Ｓｗｉｔｃｈ」という名前であり、５つの属性を有する。属性エリア４１０に列挙されるように、これらの属性は、初期値、比較演算子、比較する値、結果が真の場合に使用する値、及び結果が偽の場合に使用する値である。初期値は、それ自体が３つの属性を有する演算である「Ｆｉｎｄ」に設定されている。この３つの属性は、「Ｓｏｕｒｃｅ」というソースにおける「ＦｕｌｌＮａｍｅ」というフィールドによって定義される文字列、検索すべき区切り文字（この例ではカンマ）、及び区切り文字の発生数のカウントである。「Ｓｏｕｒｃｅ」というソースの「ＦｕｌｌＮａｍｅ」というフィールドの１行目について演算「Ｆｉｎｄ」から戻される結果は「０」である。実際に、１行目のフィールドにはカンマが存在しない。従って「Ｓｗｉｔｃｈ」演算は、“０”“＝”“０”であるかどうかを判定するように設定される。比較の結果が真である場合、戻される値は第４の属性である（すなわち、演算「ＴｏＳｐｌｉｔ」が実行される）。換言すれば、フィールド内にカンマが存在しない場合には、文字列内のスペースによって区切られた最初のテキストブロックを戻す。
【００２９】
図４ｅには、「Ｓｗｉｔｃｈ」演算の偽の結果の場合に戻される値を示しており、これは第５の属性からの結果である。別の「ＴｏＳｐｌｉｔ」演算が第５の属性として追加されている。この例では、区切り文字がスペースではなくカンマであり、戻されるテキストの位置が、最初のテキストブロックではなく２番目のテキストブロックである。従って、フィールド内にカンマが存在する場合には、スペースの前のテキストではなくカンマの後のテキストが戻される。図４ｆに、データソースの目標フィールド「ＦｕｌｌＮａｍｅ」の３行目についての演算結果を示す。フィールド４０３Ｃの結果は、ファーストネームである「Ｗｉｌｌ」を含んでいるので、正しく表示された形で示されている。また、変換の各中間ステップも、付随する結果と共に表示されている。ユーザは、結果フィールド４０３ａ、４０３ｂ、４０３ｃのうちのいずれか１つを選択することができ、そのフィールドの戻された結果が演算エリア４０６に表示される。
【００３０】
図４ａ〜図４ｆに示すように、この方法では、工程全体を通じて属性又は最終結果の部分値をユーザに表示することができる。本明細書で説明する再帰的変換の代わりにプログラミングスクリプトを使用する方法との違いはこの点である。プログラミングスクリプトは、最終結果しか出力しない。本方法では、演算の各行について部分結果を体系的に表示することができる。従って、問題点／バグを発見し、選択されたノードを、各ノードの設定方法及び結果を戻す方法を固定又は拡張するように修正することが容易である。図示のように、図４ｃなどの目標フィールドの変換は、部分値を調べ、図４ｄ、図４ｅ及び図４ｆのように３行目の「Ｇａｔｅｓ，Ｗｉｌｌ」に対応するように変換を修正する必要があると認識することによって拡張することができる。部分値を伴わないプログラムコードを使用してこれを容易に行うことはできない。
【００３１】
図５ａ〜図５ｄに、再帰的変換を用いて２又は３以上のデータソースと結合目標フィールドとの自動結合を作成する例示的な実施形態を示す。図５ａ及び図５ｂには、データソースエリア４０２内に２つのソース、すなわち「Ｎｏｔｅｓ（記録）」５０２ａ及び「Ａｖｅｒａｇｅ（平均）」５０２ｂが表示されたＧＵＩ２０１を示す。図５ａには、ソース「Ｎｏｔｅｓ」５０２ａが表示され、図５ｂにはソース「Ａｖｅｒａｇｅ」５０２ｂが表示されている。照会結果エリア４０４に示される目標フィールド４０３は、「Ｓｔｕｄｅｎｔｓ（生徒）」、「ｇｒｏｕｐ（グループ）」、「ｃｌａｓｓ（科目）」、「ｇｒａｄｅｓ（評点）」及び「ａｖｅｒａｇｅ（平均）」である。目標フィールド「Ｓｔｕｄｅｎｔｓ」及び「ｇｒａｄｅｓ」は、「Ｎｏｔｅｓ」５０２ａである単一のソースを有する。目標フィールド「ａｖｅｒａｇｅ」は、「Ａｖｅｒａｇｅ」５０２ｂである単一のソースを有する。目標フィールド「ｇｒｏｕｐ」及び「ｃｌａｓｓ」は、ソース「Ｎｏｔｅｓ」５０２ａ及び「Ａｖｅｒａｇｅ」５０２ｂからの結合目標フィールドである。図５ｂのように、フィールドの値全体ではなく４桁の値を戻すために、ソース「Ａｖｅｒａｇｅ」５０２ｂのフィールド「Ｇｒａｄｅ」に演算「Ｆｏｒｍａｔ」を適用する。
【００３２】
図５ｃには、データソース「Ｎｏｔｅｓ」５０２ａ及び「Ａｖｅｒａｇｅ」５０２ｂから結合目標フィールド「ｃｌａｓｓ」を作成する工程を示す。演算エリア４０６に表示されるように、演算「Ｊｏｉｎ」は、それぞれのデータソース「Ｎｏｔｅｓ」５０２ａ及び「Ａｖｅｒａｇｅ」５０２ｂにおける同じフィールド「Ｇｒｏｕｐ」をそれぞれが参照する複数の属性を有する。両フィールド「Ｇｒｏｕｐ」のコンテンツは１Ｂであり、従って「Ｊｏｉｎ」演算を直接実行することができる。対照的に、図５ｄには、データソース「Ｎｏｔｅｓ」５０２ａ及び「Ａｖｅｒａｇｅ」５０２ｂから結合目標フィールド「ｃｌａｓｓ」を作成する工程を示す。２つのソースにおけるフィールド「Ｃｌａｓｓ」のコンテンツが異なるので、最初にデータソース「Ｎｏｔｅｓ」５０２ａからのフィールド「ｃｌａｓｓ」を、ストリングの最初の３文字のみ、すなわち「Ｃｈｅ」を戻すために「Ｌｅｆｔ」演算を用いて変換する。この変換が行われたら、「Ｊｏｉｎ」演算を正しく実行して目標フィールド「Ｃｌａｓｓ」内の結果を取得することができる。「Ｌｅｆｔ」ノードを適用しなければ、この結合は２つの異種のデータ値に対して実行され、従って結合が一致しないので、両データソースの行数の和に等しい行数が戻される。
【００３３】
このように、結合すべきソース及びフィールドを識別する属性を有する「Ｊｏｉｎ」演算を用いて、標準的な目標フィールドと同様に結合目標フィールドを作成することができる。「Ｊｏｉｎ」演算では、ソースからの１又は２以上のフィールドを「Ｊｏｉｎ」演算のために変換するために、さらなる演算をネスト化することができる。「Ｊｏｉｎ」演算には、所与の目標フィールドに結合されるソース数の関数として２又は３以上の属性を設定することができる。
【００３４】
結合目標フィールドは、照会結果において２又は３以上のデータソースを結び付けるために使用される。複数の列を、結合目標フィールドとすることができる。各ソースからの全ての一致した行のインデックスが作成される。このインデックスを用いて、各目標フィールドの値を決定するための変換を実行することができる。
【００３５】
本明細書に示す例は、各フィールドにファーストネームを戻すために、フィールドがフルネームを含む複数の行を有するソースに照会する１つの方法を実証するものである。本明細書に提示する方法及びシステムに基づいて、他の方法を使用することもできる。例えば、異なる演算を選択し、異なる順序で演算を提示し、異なる属性を使用することができる。ユーザは、演算のネスト性によって変換の中間ステップに容易にアクセスすることができ、これによって１又は２以上のフィールドの誤った結果を戻す可能性がある最初の試行を上記の例で実証したように容易に訂正できるようになる。
【００３６】
演算は、データソースからのデータに対して、未加工データに影響を与えることなく実行される。従って、同じ最初の未加工データを使用して複数の演算を同時に実行することができる。照会工程におけるステップが循環しない限り、無限の数の演算を使用して照会の結果を取得することができる。
【００３７】
いくつかの実施形態では、照会文１００を他の照会文１００のデータソースとして使用することができる。図６に、１つのこのような例を示す。照会文１００ａを実行すると、そのソースとして照会文１００ｂ、１００ｃ及び１００ｄが呼び出される。照会文がソースとして呼び出されると、対応する照会結果の目標フィールドからデータを抽出することができる。演算は、データソースがデータファイルであるか、それとも別の照会文であるかに関わらず、同じ形で提示される。例えば、照会文１００ａにおける「ＴｏＳｐｌｉｔ」演算は、データの抽出元であるソース及びフィールドを識別するために、「［ｑｕｅｒｙ＿ｓｔａｔｅｍｅｎｔ＿１００ｂ］．［ＦｉｒｓｔＮａｍｅ］」を属性として有することができる。照会文１００ｂは、そのソースとしてデータファイル１０１ｗを呼び出し、照会文１００ｃは、そのソースとして照会文１００ｅ及び１００ｆ呼び出す。照会文１００ａを実行すると、これによって照会文１００ｂ、１００ｃ、１００ｄ、１００ｅ、１００ｆ、１００ｇ、１００ｈ、１００ｉ、１００ｋ、１００ｌ、１００ｍ、１００ｎ、１００ｏ、１００ｐ、１００ｑ、１００ｒの連続した実行を引き起こすことができる。照会文１００ｂは、データファイル１０１ｗからデータを抽出し、照会文１００ｏは、データファイル１０１ｍ及び１０１ｎからデータを抽出し、照会文１００ｐは、データファイル１０１ｏ及び１０１ｒからデータを抽出し、照会文１００ｇは、データファイル１０１ｕ及び１０１ｖからデータを抽出し、照会文１００ｈは、データファイル１０１ｖからデータを抽出し、照会文１００ｒはデータファイル１０１ｐ及び１０１ｑからデータを抽出し、照会文１００ｑはデータファイル１０１ｓからデータを抽出し、照会文１００ｎはデータファイル１０１ｔからデータを抽出する。データソース１０１ｍ、１０１ｎ、１０１ｏ、１０１ｐ、１０１ｑ、１０１ｒ、１０１ｓ、１０１ｔ、１０１ｕ、１０１ｖ、１０１ｗから抽出されたデータは、最初に呼び出された照会文１００ａに到達するまで文から文に受け渡される。
【００３８】
図７に、図６の各照会文１００に関連する照会結果１０３を示す。実行された各照会文１００ａ〜１００ｒは、照会結果１０３ａ〜１０３ｒを生成する。具体的には、照会文１００ａを実行すると、照会文１００ｂ〜１００ｒが実行されて照会結果１０３ｂ〜１０３ｒが生成され、さらにこれらを使用して照会結果１０３ａが生成される。なお、照会文１００ａには、１００ｂ、１００ｃ、１００ｄ以外のあらゆる照会文を使用して照会結果１０３ａを生成する旨の指示は存在しない。各照会文は、その直接的なソースのみを識別する。これらの直接的なソースのうちのいずれかが、別のソースを参照する別の照会文である場合、このソースは最初の照会文とは無関係である。
【００３９】
いくつかの実施形態では、生成された照会結果を再使用のために保存することができる。照会結果ファイルがかなり大きなものになり得る場合には、情報を含む単純化したファイルを作成して、例えば照会文名、使用されるパラメータ値、ソース名、及び最後に書き込まれた日付を記憶することができる。照会文を再使用できるかどうかを決定するために、他の情報を記憶することもできる。例えば、照会結果１０３ａ〜１０３ｒが生成後に保存され、これらの結果のうちのいずれか１つが再び呼び出された場合には、照会結果を再生するのではなく、保存された照会結果ファイルを使用することができる。同様に、照会文１００も、保存して後で再使用することができる。なお、データソース１０１は、例えばコンテンツを追加、除去又は修正し、データタイムスタンプを変更し、データのフォーマットを修正し、或いはデータソースに他のいずれかのタイプの変更を行うことによって修正することができる。このような例では、（直接的な又は間接的な）ソースがいずれかのタイプの変更を受けたかどうかに応じて、照会結果１０３を再生することが必要になる場合もある。
【００４０】
図８に、２つのデータソース１０１ｏ及び１０１ｓが変更された例を示す。照会結果１０３ａを呼び出すと、照会結果１０３の様々なチェーンを各データソース１０１ｍ〜１０１ｎまで上に辿っていずれかの変更が行われたかどうかに関して判定が行われる。チェーン内で発見された、変更されたデータソースで終了するあらゆる照会結果１０３は、この変更を考慮するように再生される。使用すべき理論的ソースを単純化したファイルと再帰的に比較することにより、照会結果ファイルを使用できるかどうかを判定することができる。これらのチェーン内では、以前に保存された照会結果を削除し、新たに生成された照会結果に置き換えることができる。この例では、照会結果１０３ａ、１０３ｃ、１０３ｄ、１０３ｆ、１０３ｈ、１０３ｉ、１０３ｌ、１０３ｍ、１０３ｐ及び１０３ｑが再生される。これを行うために、照会文１００ａ、１００ｃ、１００ｄ、１００ｆ、１００ｈ、１００ｉ、１００ｌ、１００ｍ、１００ｐ及び１００ｑが再実行される。照会文１００ａ、１００ｃ、１００ｄ、１００ｆ、１００ｈ、１００ｉ、１００ｌ、１００ｍ、１００ｐ及び１００ｑを再作成する必要性の代わりに、保存された照会文１００を検索して再実行することができる。
【００４１】
なお、全てではないがいくつかの照会文１００では、パラメータ１０２を使用することができる。全ての文１０２がパラメータを使用する必要はなく、これらのパラメータを１つの文から別の文に受け渡す必要もない。いくつかの実施形態では、パラメータ１０２を、同じセッション中に全ての照会文１００において使用すべき大域パラメータとして設定することができる。照会結果１０３ａなどの照会結果の呼び出し時にパラメータ１０２が設定されていない場合には、デフォルト値を使用することができる。特定の照会文１００には、アドホックパラメータを提供することもできる。アドホックパラメータを用いて生成された照会結果は、その中のソース情報及びパラメータ情報と共に保存することができる。
【００４２】
図９は、照会結果１０３のサブセット、すなわち１０３ａ、１０３ｂ、１０３ｅ、１０３ｆ、１０３ｑ、１０３ｍ及び１０３ｎの生成にアドホックパラメータ［ａ］、［ｂ］、［ｃ］を使用する例である。図１０は、図９の照会結果１０３ａを生成するために使用したものと同じ未変更のデータソース及び同じ目標フィールドを用いて照会文１００ａを実行するが、パラメータ［ｂ］が［Ｂ］に変更されている例である。従って、パラメータ変更の影響を受けない照会結果は、再生することなく再使用することができる。パラメータ変更の影響を受ける照会結果、すなわちパラメータ［ｂ］を使用する照会結果、及びパラメータ［ｂ］を使用する照会結果に由来する照会結果は再生される。この例では、照会結果１０３ｂ、１０３ｑ、１０３ｅ及び１０３ｍがパラメータ［ｂ］を使用し、照会結果１０３ａ、１０３ｃ、１０３ｄ、１０３ｆ及び１０３ｉが、パラメータ［ｂ］を使用する１又は２以上の照会結果に由来する。従って、これらは再生される。新たな照会要求１０３ｂｂ、１０３ｇｇ、１０３ｅｅ、１０３ｍｍ、１０３ａａ、１０３ｃｃ、１０３ｄｄ、１０３ｆｆ及び１０３ｉｉを保存することができる。実際には、以前に保存された照会結果１０３ｂｂ、１０３ｇ、１０３ｅ、１０３ｍ、１０３ａ、１０３ｃ、１０３ｄ、１０３ｆ及び１０３ｉは、ソースが変更されていないので削除する必要はない。同じデータソース、目標フィールド及びパラメータ［ａ］、［ｂ］、［ｃ］を有する照会要求を作成する場合には、以前に保存された照会要求１０３ａを使用することができる。
【００４３】
いくつかの実施形態では、全てではないがいくつかのパラメータが変更され、全てではないがいくつかのソースも変更された混成シナリオに遭遇することがある。変更されたデータソースで終了するチェーン内で見つかる照会結果は、変更を考慮するように再生され、パラメータ変更の影響を受ける照会結果も再生される。ソースの変更によって再生された照会結果は、以前に保存された照会結果に取って代わり、パラメータの変更によって再生された照会結果は、一連の保存された照会結果に追加される。
【００４４】
以下、図１１〜図１３を参照しながら、データソースに照会を行うシステムについて説明する。図１１に、データ照会システム１００２を示す。データ照会システム１００２には、複数の装置１０１０のうちのいずれか１つから接続１００８を介して遠隔的にアクセスすることができる。装置１０１０は、接続１００８を介して通信するように構成された、パーソナルコンピュータ、タブレット又はスマートフォンなどのいずれかの装置を含むことができる。いくつかの実施形態では、データ照会システム１００２自体を、ダウンロードされたソフトウェアアプリケーション、ファームウェアアプリケーション、又はこれらの組み合わせのいずれかとして装置１０１０のうちの１つに直接提供することもできる。
【００４５】
１又は２以上のデータソース１０１は、データ照会システム１００２又は装置１０１０のうちのいずれか１つに直接統合することも、又は（図示のように）別個に提供することもできる。データソース１０１に遠隔的にアクセスする例では、接続１００８を介してアクセスを行うことができる。接続１００８は、例えば電線又はケーブルなどの配線に基づく技術、及び／又は光ファイバなどの様々な形を取ることができる。接続１００８は、ＲＦ、赤外線、Ｗｉ−Ｆｉ及びＢｌｕｅｔｏｏｔｈ（登録商標）などの無線とすることもできる。従って、接続１００８は、インターネット、公衆交換電話網（ＰＳＴＮ）、セルラーネットワーク、又は当業者に周知の他のネットワークなどのネットワークを含むことができる。ネットワークを介した通信は、コンピュータネットワーク内の装置による情報の交換を可能するあらゆる既知の通信プロトコルを使用して行うことができる。プロトコルの例には、ＩＰ（インターネットプロトコル）、ＵＤＰ（ユーザデータグラムプロトコル）、ＴＣＰ（送信制御プロトコル）、ＤＨＣＰ（動的ホスト構成プロトコル）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、ＦＴＰ（ファイル転送プロトコル）、Ｔｅｌｎｅｔ（Ｔｅｌｎｅｔリモートプロトコル）、ＳＳＨ（セキュアシェルリモートプロトコル）がある。
【００４６】
本明細書で説明する様々なデータソース１０１は、コンピュータによる高速探索及び検索のために体系化された一群のデータ又は情報として提供することができる。データソース１０１は、様々なデータ処理動作に連動してデータの記憶、検索、修正及び削除を容易にするように構築することができる。データソース１０１は、１又は２以上のサーバなどのデータ記憶媒体上のいずれかのデータ構成とすることができる。
【００４７】
図１２に示すように、データ照会システム１００２は、例示的に１又は２以上のサーバ１１００を含む。例えば、ウェブサーバ、アプリケーションサーバ及びデータベースサーバに対応する一連のサーバを使用することができる。これらのサーバは、全て図１２のサーバ１１００によって表される。サーバ１１００には、ユーザが装置１０１０のうちの１つを使用することによってアクセスすることも、又はシステム１００２上でグラフィカルユーザインターフェイス２０１を介して直接アクセスすることもできる。とりわけ、サーバ１１００は、メモリ１１０２に結合されたプロセッサ１１０４上で実行される複数のアプリケーション１１０６ａ．．．１１０６ｎを含むことができる。なお、本明細書に示すアプリケーション１１０６ａ．．．１１０６ｎは、別個のエンティティとして図示し説明しているが、様々な方法で組み合わせ又は分離することもできると理解されたい。
【００４８】
プロセッサ１１０４がアクセスできるメモリ１１０２は、データを受け取って記憶することができる。メモリ１１０２は、高速ランダムアクセスメモリ（ＲＡＭ）などのメインメモリ、或いはハードディスク、フロッピーディスク又は磁気テープトライブなどの補助ストレージユニットとすることができる。メモリ１１０２は、リードオンリメモリ（ＲＯＭ）などの他のいずれかのタイプのメモリ、又はビデオディスク及びコンパクトディスクなどの光学記憶媒体とすることができる。プロセッサ１１０４は、メモリ１１０２にアクセスしてデータを検索することができる。プロセッサ１１０４は、データに対して演算を実行できるあらゆる装置とすることができる。例としては、中央処理装置（ＣＰＵ）、フロントエンドプロセッサ、マイクロプロセッサ及びネットワークプロセッサが挙げられる。アプリケーション１１０６ａ．．．１１０６ｎは、プロセッサ１１０４に結合されて様々なタスクを実行するように構成される。出力は、装置１０１０に送信することも、又はＧＵＩ２０１上に直接表示することもできる。メモリ１１０２は、所定の演算及び関連する属性を例示的に含む。メモリは、保存された照会文及び／又は保存された照会結果を含むこともできる。
【００４９】
図１３は、プロセッサ１１０４上で実行されるアプリケーション１１０６ａの例示的な実施形態である。アプリケーション１１０６ａは、照会文モジュール１２０２及び照会結果モジュール１２０４を例示的に含む。照会文モジュール１２０２は、照会要求を受け取るように構成することができる。上述したように、照会要求のパラメータは、照会要求内で提供することも、又はこれとは別に提供することもできる。照会文モジュールは、少なくとも１つのデータソースと、少なくとも１つの目標フィールドと、照会パラメータと、関連する属性を有する複数のネスト演算とを含む照会文を生成するように構成される。照会文モジュール１２０２は、データソースにアクセスし、データソースの１又は２以上のフィールドからデータを検索し、ネスト演算を用いて、検索したデータを目標結果に変換することによって照会文を実行するようにも構成される。変換されたデータは、目標フィールドに目標結果を追加することによって照会結果を生成するように構成された照会結果モジュール１２０４に提供される。
【００５０】
アプリケーション１１０６ａ、又はアプリケーション１１０６ｂなどの別のアプリケーションは、別の照会要求の受け取り時に、以前に記憶された照会結果を使用できるかどうかを判定するように構成することができる。アプリケーション１１０６ａ、１１０６ｂ又は別のアプリケーションは、データソースのチェーン内の１又は２以上のソースに変化が起きたかどうかを判定して、ソース変更による影響を受ける照会結果を再生し、再生された照会結果に対応する以前に記憶された照会結果を削除するように構成することができる。アプリケーション１１０６ａ、１１０６ｂ又は別のアプリケーションは、以前の照会文と新たに受け取られた照会文との間でいくつかのパラメータが変化することにより、照会結果のチェーン内のいくつかの照会結果を再使用できる一方で、他の照会結果を再生する必要があるかどうかを判定するように構成することができる。変更されたパラメータの再生された照会結果は、最初の照会結果に加えて記憶することができる。
【００５１】
なお、データソースは、位置又は別の照会文を名前によって識別すること、タイプ又はフォーマットを識別すること、ソースフィールドを定義するためのファイルフォーマットのタイプのヘッダを提供すること、又はその他の方法などの、様々な方法で識別することができる。目標フィールドも、テキスト値を使用して出力層を決定することなどの様々な方法で定義することができる。フィールドの名前、フィールドの順序、最終結果においてフィールドが見えるか否か、及び最終結果をソートするためにフィールドが使用されるかどうかなどの情報を提供することができる。全ての照会文が使用すべき大域パラメータは、最終的な照会文が呼び出されると同時に受け渡される値を識別することができる。これらの大域パラメータは、設定工程におけるデフォルト値として設定することができる。これらの大域パラメータは、目標フィールド設定のための、又はデータをフィルタ処理するためのソース経路として使用することもできる。
【００５２】
上記の説明は、例示であることを意図するものにすぎず、当業者であれば、開示する本発明の範囲から逸脱することなく、説明した実施形態に変更を行うことができると認識するであろう。ブロック図には、異なるデータ信号接続を介して互いに通信する一群の個別のコンポーネントとして示しているが、当業者であれば、本実施形態は、ハードウェアコンポーネントとソフトウェアコンポーネントの組み合わせによって提供され、コンポーネントによっては、ハードウェアシステム又はソフトウェアシステムの所与の機能又は動作によって実装されるものもあり、図示のデータ経路の多くは、コンピュータアプリケーション又はオペレーティングシステム内のデータ通信によって実装されると理解するであろう。従って、図示の構造は、本実施形態を教示する効率をもたらすものである。本開示は、特許請求の範囲の主題から逸脱することなく、他の特定の形態で具体化することもできる。また、当業者であれば、本明細書に開示して図示したシステム、方法及び非一時的コンピュータ可読媒体は、特定数の要素／コンポーネントを含むことができるが、これよりも多くの又は少ないこのような要素／コンポーネントを含むように修正することもできると理解するであろう。本開示は、全ての好適な技術変更を対象として利用するようにも意図される。当業者には、本開示を再検討すれば、本発明の範囲に含まれる修正が明らかになると思われ、このような修正は、添付の特許請求の範囲に含まれるように意図される。
【符号の説明】
【００５３】
１００  照会文
１０１  データソース
１０１ａ  データファイル
１０１ｂ  以前の照会結果
１０１ｃ  データベース
１０１ｄ  以前の照会文
１０１ｅ  他のデータソース
１０２  照会パラメータ
１０３  照会結果
【図１】
2018514044.tif 000003
【図２】
2018514044.tif 000004
【図３】
2018514044.tif 000005
【図４ａ】
2018514044.tif 000006
【図４ｂ】
2018514044.tif 000007
【図４ｃ】
2018514044.tif 000008
【図４ｄ】
2018514044.tif 000009
【図４ｅ】
2018514044.tif 000010
【図４ｆ】
2018514044.tif 000011
【図５ａ】
2018514044.tif 000012
【図５ｂ】
2018514044.tif 000013
【図５ｃ】
2018514044.tif 000014
【図５ｄ】
2018514044.tif 000015
【図６】
2018514044.tif 000016
【図７】
2018514044.tif 000017
【図８】
2018514044.tif 000018
【図９】
2018514044.tif 000019
【図１０】
2018514044.tif 000020
【図１１】
2018514044.tif 000021
【図１２】
2018514044.tif 000022
【図１３】
2018514044.tif 000023
【国際調査報告】
2018514044.tif 000024
2018514044.tif 000025
2018514044.tif 000026