(57)【要約】  複数のデータソースからデータの部分集合を作成するためのデータ処理システムであって、エディタインタフェース内で表される複数のデータソースを記憶するメモリ、エディタインタフェース内で表される複数のデータソースを選択し、且つ複数のデータソース内に含まれるデータの部分集合を生成するデータ構造修正モジュール、部分集合内に含まれる選択されたデータ構造を記憶するメモリであって、記憶されたデータ構造の少なくとも１つは、１つ又は複数のそれぞれのフィールドの１つ又は複数の修正された属性を含む、メモリ、記憶されたデータ構造の表現をエディタインタフェース内で表示するレンダリングモジュール及び複数の受信されたデータレコードをセグメント化するセグメント化モジュールを含むデータ処理システム。
2021533500.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータソースからデータの部分集合を作成し、前記部分集合の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正し、且つ前記１つ又は複数の修正されたフィールドの１つ又は複数の表現を表示することにより、データレコードのセグメント化を可能にするエディタインタフェースを表示するためのデータ処理システムであって、
エディタインタフェース内で表される複数のデータソースを記憶するメモリ、
エディタインタフェース内で表される複数のデータソースを選択し、及び前記複数のデータソース内に含まれるデータの部分集合を、前記データソースのそれぞれについて、前記データソースから、それぞれのデータ構造が１つ又は複数のフィールドを含む、１つ又は複数のデータ構造を選択し、且つ少なくとも１つの選択されたデータ構造について、前記データ構造内の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正することによって生成するデータ構造修正モジュール、
前記部分集合内に含まれる前記選択されたデータ構造を記憶するメモリであって、前記記憶されたデータ構造の少なくとも１つは、前記１つ又は複数のそれぞれのフィールドの前記１つ又は複数の修正された属性を含む、メモリ、
前記記憶されたデータ構造の表現を前記エディタインタフェース内で表示するレンダリングモジュールであって、前記表現の少なくとも１つは、前記１つ又は複数のそれぞれのフィールドの前記１つ又は複数の修正された属性のものであり、各表現は、１つ又は複数の選択可能部分を含み、選択可能部分は、データ構造のフィールドを表し、及び前記レンダリングモジュールは、１つ又は複数の選択可能部分の選択を指定する選択データを、前記エディタインタフェースを通して受信する、レンダリングモジュール、及び
前記受信されたデータレコードの何れのものが、選択された前記１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応する１つ又は複数のフィールドを有するかを識別することにより、複数の受信されたデータレコードをセグメント化するセグメント化モジュール
を含むデータ処理システム。
【請求項２】
複数のデータソースからデータの部分集合を作成し、前記部分集合の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正し、且つ前記１つ又は複数の修正されたフィールドの１つ又は複数の表現を表示することにより、データレコードのセグメント化を可能にするエディタインタフェースを表示するための、データ処理システムによって実装される方法であって、
エディタインタフェース内で表される複数のデータソースを選択すること、
前記複数のデータソース内に含まれるデータの部分集合を、
前記データソースのそれぞれについて、前記データソースから、それぞれのデータ構造が１つ又は複数のフィールドを含む、１つ又は複数のデータ構造を選択し、
少なくとも１つの選択されたデータ構造について、前記データ構造内の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正する
ことによって生成すること、
前記部分集合内に含まれる前記選択されたデータ構造をメモリ内に記憶することであって、前記記憶されたデータ構造の少なくとも１つは、前記１つ又は複数のそれぞれのフィールドの前記１つ又は複数の修正された属性を含む、記憶すること、
前記記憶されたデータ構造の表現を前記エディタインタフェース内で表示することであって、前記表現の少なくとも１つは、前記１つ又は複数のそれぞれのフィールドの前記１つ又は複数の修正された属性のものであり、各表現は、１つ又は複数の選択可能部分を含み、選択可能部分は、データ構造のフィールドを表す、表示すること、
１つ又は複数の選択可能部分の選択を指定する選択データを、前記エディタインタフェースを通して受信すること、及び
前記受信されたデータレコードの何れのものが、選択された前記１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応する１つ又は複数のフィールドを有するかを識別することにより、複数の受信されたデータレコードをセグメント化すること
を含む方法。
【請求項３】
データ構造は、前記データ構造のためのキーを表すキーフィールドを含み、レコードは、前記キーの値に関連し、前記方法は、
複数の前記選択されたデータ構造から複数のフィールドを選択すること、
実行されたとき、
前記キーの指定された値について、前記それぞれの選択されたフィールドの値を選択すること、
前記キーの前記指定された値について、前記選択された値を結合すること、及び
前記結合された値を出力すること
を行う実行可能命令をメモリ内に記憶すること
を更に含む、請求項２に記載の方法。
【請求項４】
前記表現は、第１の表現であり、前記方法は、
実行可能命令の第２の表現を前記エディタインタフェース内で表示すること
を更に含む、請求項２に記載の方法。
【請求項５】
前記第２の表現の選択を指定し、且つ前記エディタインタフェースを通して選択された前記１つ又は複数の選択可能部分によって表される前記１つ又は複数の所与のフィールドの前記出力された結合値に１つ又は複数の基準が適用されることを更に指定する追加の選択データを、前記エディタインタフェースを通して受信することを更に含む、請求項４に記載の方法。
【請求項６】
データ構造を選択するための１つ又は複数の第１のコントロール及び前記１つ又は複数のフィールドを修正するための１つ又は複数の第２のコントロールを有するユーザインタフェースを表示することを含む、請求項２に記載の方法。
【請求項７】
前記エディタインタフェースを通して選択された前記１つ又は複数の選択可能部分によって表される１つ又は複数の所与のフィールドに適用される１つ又は複数の基準を指定する追加のデータを、前記エディタインタフェースを通して受信することを更に含み、
セグメント化することは、前記受信されたデータレコードの何れのものが、選択された前記１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応し、且つ前記１つ又は複数の基準を満たす１つ又は複数のフィールドの１つ又は複数の値を有するかを識別することにより、前記複数の受信されたデータレコードをセグメント化することを含む、請求項２に記載の方法。
【請求項８】
データ構造は、１つ又は複数のレコードを含み、各レコードは、特定のフィールドのための１つ又は複数の値を有する、請求項２に記載の方法。
【請求項９】
前記データソースの少なくとも１つは、選択されていないデータ構造を含む、請求項２に記載の方法。
【請求項１０】
ほぼリアルタイムの集約を生成するための、データ処理システムによって実行される方法であって、
１つ又は複数のデータソースからデータレコードを断続的に受信すること、
受信された所与のデータレコードについて、
前記所与のデータレコード内の少なくとも第１のフィールド及び第２のフィールドを識別すること、
前記第１のフィールド内の第１の値及び前記第２のフィールド内の第２の値を検出すること、及び
前記第１のフィールドの前記第１の値及び前記第２のフィールドの前記第２の値に従って複合キーを生成すること、
少なくとも前記第１のフィールド又は前記第２のフィールドに関係する集約データにメモリからアクセスすること、
前記複合キーを記憶するフィールド及び前記集約データの項目をそれぞれ記憶する１つ又は複数のフィールドを有するデータレコードを生成することにより、複合キー値を生成することであって、前記複合キー値は、少なくとも前記第１のフィールド又は前記第２のフィールドに関係するデータのほぼリアルタイムの集約を表す、生成すること、並びに
前記複合キー値をメモリ内に記憶することにより、前記所与のデータレコードの発生を記録すること
を含む方法。
【請求項１１】
前記複合キーを生成することは、前記第１の値を前記第２の値と連結することを含む、請求項１０に記載の方法。
【請求項１２】
前記複合キーをハッシュすること、
複合値と共に、前記ハッシュされた複合キーをハッシュテーブル内に記憶すること
を更に含む、請求項１０に記載の方法。
【請求項１３】
前記複合値は、前記集約データである、請求項１２に記載の方法。
【請求項１４】
前記所与のレコードについて、
前記所与のレコード内に含まれる各フィールドの値を検出すること、及び
少なくとも２つの検出された値の複数の一意の組み合わせを生成することであって、それぞれの一意の組み合わせは、複合キーである、生成すること、
各複合キーについて、
前記所与のレコード内の１つ又は複数のフィールドであって、前記１つ又は複数のフィールドについて、前記複合キーは、前記１つ又は複数のフィールドの１つ又は複数のそれぞれの値を含む、１つ又は複数のフィールドを識別すること、
前記１つ又は複数の識別されたフィールドの少なくとも１つに関係する集約データにメモリからアクセスすること、
前記複合キーを記憶するフィールド及び前記集約データを記憶するフィールドを有するデータレコードを生成することにより、複合キー値を生成すること、及び
前記複合キー値をメモリ内に記憶すること
を更に含む、請求項１３に記載の方法。
【請求項１５】
複数の一意の組み合わせを生成することは、前記所与のレコード内のフィールドの検出された値の複数の全ての一意の組み合わせを生成することを含む、請求項１４に記載の方法。
【請求項１６】
ある期間にわたる指定された値の集約のための要求を受信すること、
前記指定された値の発生を記憶する複合キー値をメモリから選択すること、及び
前記要求された集約を前記複合キー値から抽出すること
を更に含む、請求項１０に記載の方法。
【請求項１７】
前記集約データの１つ又は複数の項目を前記所与のデータレコード内のフィールドの値と集約すること、
前記集約することに基づいて、前記フィールドのほぼリアルタイムの集約値を生成すること、及び
前記ほぼリアルタイムの集約値を前記複合キー値内に記憶すること
を更に含む、請求項１０に記載の方法。
【請求項１８】
１つ又は複数の指定された値に関係する集約のための要求を受信すること、
前記１つ又は複数の指定された値から複合キーを生成すること、
前記複合キーをハッシュすること、
前記ハッシュされた複合キーと共に記憶された前記複合値を、メモリ内に記憶された前記ハッシュテーブルから要求すること、及び
要求された集約データの項目を前記複合値から抽出すること
を更に含む、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本願は、ネットワーク化されたデータベース環境におけるデータの集約に関する。本願は、ネットワーク化されたデータベース環境におけるデータのセグメント化にも関する。
【背景技術】
【０００２】
背景
データベース管理システムでは、一次データソースは、ディスク又は遠隔サーバ内にあり得るデータベースである。コンピュータプログラムのためのデータソースは、ファイル、データシート、スプレッドシート、ＸＭＬファイル、更にプログラム内のハードコードされたデータであり得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
全般的な態様１では、複数のデータソースからデータの部分集合を作成し、部分集合の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正し、且つ１つ又は複数の修正されたフィールドの１つ又は複数の表現を表示することにより、データレコードのセグメント化を可能にするエディタインタフェースを表示するための、データ処理システムによって実装される方法が記載され、この方法は、エディタインタフェース内で表される複数のデータソースを選択すること、複数のデータソース内に含まれるデータの部分集合を、データソースのそれぞれについて、そのデータソースから、それぞれのデータ構造が１つ又は複数のフィールドを含む、１つ又は複数のデータ構造を選択し、少なくとも１つの選択されたデータ構造について、そのデータ構造内の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正することによって生成すること、部分集合内に含まれる選択されたデータ構造をメモリ内に記憶することであって、記憶されたデータ構造の少なくとも１つは、１つ又は複数のそれぞれのフィールドの１つ又は複数の修正された属性を含む、記憶すること、記憶されたデータ構造の表現をエディタインタフェース内で表示することであって、表現の少なくとも１つは、１つ又は複数のそれぞれのフィールドの１つ又は複数の修正された属性のものであり、各表現は、１つ又は複数の選択可能部分を含み、選択可能部分は、データ構造のフィールドを表す、表示すること、１つ又は複数の選択可能部分の選択を指定する選択データを、エディタインタフェースを通して受信すること及び受信されたデータレコードの何れのものが、選択された１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応する１つ又は複数のフィールドを有するかを識別することにより、複数の受信されたデータレコードをセグメント化することを含む。
【０００４】
態様１による態様２では、データ構造は、そのデータ構造のためのキーを表すキーフィールドを含み、レコードは、キーの値に関連し、この方法は、複数の選択されたデータ構造から複数のフィールドを選択すること、実行されたとき、キーの指定された値について、それぞれの選択されたフィールドの値を選択すること、キーの指定された値について、選択された値を結合すること及び結合された値を出力することを行う実行可能命令をメモリ内に記憶することを更に含む。
【０００５】
態様１〜２の何れか１つによる態様３では、表現は、第１の表現であり、この方法は、実行可能命令の第２の表現をエディタインタフェース内で表示することを更に含む。
【０００６】
態様１〜３の何れか１つによる態様４では、この方法は、第２の表現の選択を指定し、且つエディタインタフェースを通して選択された１つ又は複数の選択可能部分によって表される１つ又は複数の所与のフィールドのそれらの出力された結合値に１つ又は複数の基準が適用されることを更に指定する追加の選択データを、エディタインタフェースを通して受信することを更に含む。
【０００７】
態様１〜４の何れか１つによる態様５では、この方法は、データ構造を選択するための１つ又は複数の第１のコントロール及び１つ又は複数のフィールドを修正するための１つ又は複数の第２のコントロールを有するユーザインタフェースを表示することを更に含む。
【０００８】
態様１〜５の何れか１つによる態様６では、この方法は、エディタインタフェースを通して選択された１つ又は複数の選択可能部分によって表される１つ又は複数の所与のフィールドに適用される１つ又は複数の基準を指定する追加のデータを、エディタインタフェースを通して受信することを更に含み、セグメント化することは、受信されたデータレコードの何れのものが、選択された１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応し、且つ１つ又は複数の基準を満たす１つ又は複数のフィールドの１つ又は複数の値を有するかを識別することにより、複数の受信されたデータレコードをセグメント化することを含む。
【０００９】
態様１〜６の何れか１つによる態様７では、データ構造は、１つ又は複数のレコードを含み、各レコードは、特定のフィールドのための１つ又は複数の値を有する。
【００１０】
態様１〜７の何れか１つによる態様８では、データソースの少なくとも１つは、選択されていないデータ構造を含む。
【００１１】
全般的な態様９では、複数のデータソースからデータの部分集合を作成し、部分集合の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正し、且つ１つ又は複数の修正されたフィールドの１つ又は複数の表現を表示することにより、セグメント化を可能にするエディタインタフェースを表示するためのデータ処理システムが記載され、このデータ処理システムは、１つ又は複数の処理装置と、エディタインタフェース内で表される複数のデータソースを選択すること、複数のデータソース内に含まれるデータの部分集合を、データソースのそれぞれについて、そのデータソースから、それぞれのデータ構造が１つ又は複数のフィールドを含む、１つ又は複数のデータ構造を選択し、少なくとも１つの選択されたデータ構造について、そのデータ構造内の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正することによって生成すること、部分集合内に含まれる選択されたデータ構造をメモリ内に記憶することであって、記憶されたデータ構造の少なくとも１つは、１つ又は複数のそれぞれのフィールドの１つ又は複数の修正された属性を含む、記憶すること、記憶されたデータ構造の表現をエディタインタフェース内で表示することであって、表現の少なくとも１つは、１つ又は複数のそれぞれのフィールドの１つ又は複数の修正された属性のものであり、各表現は、１つ又は複数の選択可能部分を含み、選択可能部分は、データ構造のフィールドを表す、表示すること、１つ又は複数の選択可能部分の選択を指定する選択データを、エディタインタフェースを通して受信すること及び受信されたデータレコードの何れのものが、選択された１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応する１つ又は複数のフィールドを有するかを識別することにより、複数の受信されたデータレコードをセグメント化することを含む操作を実行するために１つ又は複数の処理装置によって実行可能な命令を記憶する１つ又は複数の機械可読ハードウェア記憶装置とを含む。
【００１２】
態様９による態様１０では、データ構造は、そのデータ構造のためのキーを表すキーフィールドを含み、レコードは、キーの値に関連し、１つ又は複数の操作は、複数の選択されたデータ構造から複数のフィールドを選択すること、実行されたとき、キーの指定された値について、それぞれの選択されたフィールドの値を選択すること、キーの指定された値について、選択された値を結合すること及び結合された値を出力することを行う実行可能命令をメモリ内に記憶することを更に含む。
【００１３】
態様９〜１０の何れか１つによる態様１１では、表現は、第１の表現であり、１つ又は複数の操作は、実行可能命令の第２の表現をエディタインタフェース内で表示することを更に含む。
【００１４】
態様９〜１１の何れか１つによる態様１２では、１つ又は複数の操作は、第２の表現の選択を指定し、且つエディタインタフェースを通して選択された１つ又は複数の選択可能部分によって表される１つ又は複数の所与のフィールドのそれらの出力された結合値に１つ又は複数の基準が適用されることを更に指定する追加の選択データを、エディタインタフェースを通して受信することを更に含む。
【００１５】
態様９〜１２の何れか１つによる態様１３では、１つ又は複数の操作は、データ構造を選択するための１つ又は複数の第１のコントロール及び１つ又は複数のフィールドを修正するための１つ又は複数の第２のコントロールを有するユーザインタフェースを表示することを更に含む。
【００１６】
態様９〜１３の何れか１つによる態様１４では、１つ又は複数の操作は、エディタインタフェースを通して選択された１つ又は複数の選択可能部分によって表される１つ又は複数の所与のフィールドに適用される１つ又は複数の基準を指定する追加のデータを、エディタインタフェースを通して受信することを更に含み、セグメント化することは、受信されたデータレコードの何れのものが、選択された１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応し、且つ１つ又は複数の基準を満たす１つ又は複数のフィールドの１つ又は複数の値を有するかを識別することにより、複数の受信されたデータレコードをセグメント化することを含む。
【００１７】
態様９〜１４の何れか１つによる態様１５では、データ構造は、１つ又は複数のレコードを含み、各レコードは、特定のフィールドのための１つ又は複数の値を有する。
【００１８】
態様９〜１５の何れか１つによる態様１６では、データソースの少なくとも１つは、選択されていないデータ構造を含む。
【００１９】
全般的な態様１７では、複数のデータソースからデータの部分集合を作成し、部分集合の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正し、且つ１つ又は複数の修正されたフィールドの１つ又は複数の表現を表示することにより、セグメント化を可能にするエディタインタフェースを表示するための１つ又は複数の機械可読ハードウェア記憶装置が記載され、１つ又は複数の機械可読ハードウェア記憶装置は、エディタインタフェース内で表される複数のデータソースを選択すること、複数のデータソース内に含まれるデータの部分集合を、データソースのそれぞれについて、そのデータソースから、それぞれのデータ構造が１つ又は複数のフィールドを含む、１つ又は複数のデータ構造を選択し、少なくとも１つの選択されたデータ構造について、そのデータ構造内の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正することによって生成すること、部分集合内に含まれる選択されたデータ構造をメモリ内に記憶することであって、記憶されたデータ構造の少なくとも１つは、１つ又は複数のそれぞれのフィールドの１つ又は複数の修正された属性を含む、記憶すること、記憶されたデータ構造の表現をエディタインタフェース内で表示することであって、表現の少なくとも１つは、１つ又は複数のそれぞれのフィールドの１つ又は複数の修正された属性のものであり、各表現は、１つ又は複数の選択可能部分を含み、選択可能部分は、データ構造のフィールドを表す、表示すること、１つ又は複数の選択可能部分の選択を指定する選択データを、エディタインタフェースを通して受信すること及び受信されたデータレコードの何れのものが、選択された１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応する１つ又は複数のフィールドを有するかを識別することにより、複数の受信されたデータレコードをセグメント化することを含む操作を実行するために１つ又は複数の処理装置によって実行可能な命令を記憶する。
【００２０】
態様１７による態様１８では、データ構造は、そのデータ構造のためのキーを表すキーフィールドを含み、レコードは、キーの値に関連し、１つ又は複数の操作は、複数の選択されたデータ構造から複数のフィールドを選択すること、実行されたとき、キーの指定された値について、それぞれの選択されたフィールドの値を選択すること、キーの指定された値について、選択された値を結合すること及び結合された値を出力することを行う実行可能命令をメモリ内に記憶することを更に含む。
【００２１】
態様１７〜１８の何れか１つによる態様１９では、表現は、第１の表現であり、１つ又は複数の操作は、実行可能命令の第２の表現をエディタインタフェース内で表示することを更に含む。
【００２２】
態様１７〜１９の何れか１つによる態様２０では、１つ又は複数の操作は、第２の表現の選択を指定し、且つエディタインタフェースを通して選択された１つ又は複数の選択可能部分によって表される１つ又は複数の所与のフィールドのそれらの出力された結合値に１つ又は複数の基準が適用されることを更に指定する追加の選択データを、エディタインタフェースを通して受信することを更に含む。
【００２３】
態様１７〜２０の何れか１つによる態様２１では、１つ又は複数の操作は、データ構造を選択するための１つ又は複数の第１のコントロール及び１つ又は複数のフィールドを修正するための１つ又は複数の第２のコントロールを有するユーザインタフェースを表示することを更に含む。
【００２４】
態様１７〜２１の何れか１つによる態様２２では、１つ又は複数の操作は、エディタインタフェースを通して選択された１つ又は複数の選択可能部分によって表される１つ又は複数の所与のフィールドに適用される１つ又は複数の基準を指定する追加のデータを、エディタインタフェースを通して受信することを更に含み、セグメント化することは、受信されたデータレコードの何れのものが、選択された１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応し、且つ１つ又は複数の基準を満たす１つ又は複数のフィールドの１つ又は複数の値を有するかを識別することにより、複数の受信されたデータレコードをセグメント化することを含む。
【００２５】
態様１７〜２２の何れか１つによる態様２３では、データ構造は、１つ又は複数のレコードを含み、各レコードは、特定のフィールドのための１つ又は複数の値を有する。
【００２６】
態様１７〜２３の何れか１つによる態様２４では、データソースの少なくとも１つは、選択されていないデータ構造を含む。
【００２７】
全般的な態様２５では、ほぼリアルタイムの集約を生成するための、データ処理システムによって実行される方法が記載され、この方法は、１つ又は複数のデータソースからデータレコードを断続的に受信すること、受信された所与のデータレコードについて、所与のデータレコード内の少なくとも第１のフィールド及び第２のフィールドを識別すること、第１のフィールド内の第１の値及び第２のフィールド内の第２の値を検出すること及び第１のフィールドの第１の値及び第２のフィールドの第２の値に従って複合キーを生成すること、少なくとも第１のフィールド又は第２のフィールドに関係する集約データにメモリからアクセスすること、複合キーを記憶するフィールド及び集約データの項目をそれぞれ記憶する１つ又は複数のフィールドを有するデータレコードを生成することにより、複合キー値を生成することであって、複合キー値は、少なくとも第１のフィールド又は第２のフィールドに関係するデータのほぼリアルタイムの集約を表す、生成すること並びに複合キー値をメモリ内に記憶することにより、所与のデータレコードの発生を記録することを含む。
【００２８】
態様２５による態様２６では、複合キーを生成することは、第１の値を第２の値と連結することを含む。
【００２９】
態様２５〜２６の何れか１つによる態様２７では、この方法は、複合キーをハッシュすること及び複合値と共に、ハッシュされた複合キーをハッシュテーブル内に記憶することを更に含む。
【００３０】
態様２５〜２７の何れか１つによる態様２８では、複合値は、集約データである。
【００３１】
態様２５〜２８の何れか１つによる態様２９では、この方法は、所与のレコードについて、その所与のレコード内に含まれる各フィールドの値を検出すること及び少なくとも２つの検出された値の複数の一意の組み合わせを生成することであって、それぞれの一意の組み合わせは、複合キーである、生成すること、各複合キーについて、所与のレコード内の１つ又は複数のフィールドであって、１つ又は複数のフィールドについて、複合キーは、それらの１つ又は複数のフィールドの１つ又は複数のそれぞれの値を含む、１つ又は複数のフィールドを識別すること、１つ又は複数の識別されたフィールドの少なくとも１つに関係する集約データにメモリからアクセスすること、複合キーを記憶するフィールド及び集約データを記憶するフィールドを有するデータレコードを生成することにより、複合キー値を生成すること及び複合キー値をメモリ内に記憶することを更に含む。
【００３２】
態様２５〜２９の何れか１つによる態様３０では、複数の一意の組み合わせを生成することは、所与のレコード内のフィールドの検出された値の複数の全ての一意の組み合わせを生成することを含む。
【００３３】
態様２５〜３０の何れか１つによる態様３１であって、この方法は、ある期間にわたる指定された値の集約のための要求を受信すること、指定された値の発生を記憶する複合キー値をメモリから選択すること及び要求された集約を複合キー値から抽出することを更に含む、態様３１。
【００３４】
態様２５〜３１の何れか１つによる態様３２では、この方法は、集約データの１つ又は複数の項目を所与のデータレコード内のフィールドの値と集約すること、集約することに基づいて、そのフィールドのほぼリアルタイムの集約値を生成すること及びほぼリアルタイムの集約値を複合キー値内に記憶することを更に含む。
【００３５】
態様２５〜３２の何れか１つによる態様３３では、この方法は、１つ又は複数の指定された値に関係する集約のための要求を受信すること、１つ又は複数の指定された値から複合キーを生成すること、複合キーをハッシュすること、ハッシュされた複合キーと共に記憶された複合値を、メモリ内に記憶されたハッシュテーブルから要求すること及び要求された集約データの項目を複合値から抽出することを更に含む。
【００３６】
全般的な態様３４では、ほぼリアルタイムの集約を生成するためのデータ処理システムであって、１つ又は複数の処理装置と、１つ又は複数のデータソースからデータレコードを断続的に受信すること、受信された所与のデータレコードについて、所与のデータレコード内の少なくとも第１のフィールド及び第２のフィールドを識別すること、第１のフィールド内の第１の値及び第２のフィールド内の第２の値を検出すること及び第１のフィールドの第１の値及び第２のキーの第２の値に従って複合キーを生成すること、少なくとも第１のフィールド又は第２のフィールドに関係する集約データにメモリからアクセスすること、複合キーを記憶するフィールド及び集約データの項目をそれぞれ記憶する１つ又は複数のフィールドを有するデータレコードを生成することにより、複合キー値を生成することであって、複合キー値は、少なくとも第１のフィールド又は第２のフィールドに関係するデータのほぼリアルタイムの集約を表す、生成すること並びに複合キー値をメモリ内に記憶することにより、所与のデータレコードの発生を記録することを含む操作を実行するために１つ又は複数の処理装置によって実行可能な命令を記憶する１つ又は複数の機械可読ハードウェア記憶装置とを含む、ほぼリアルタイムの集約を生成するためのデータ処理システムが記載される。
【００３７】
態様３４による態様３５では、複合キーを生成することは、第１の値を第２の値と連結することを含む。
【００３８】
態様３４〜３５の何れか１つによる態様３６では、１つ又は複数の操作は、複合キーをハッシュすること及び複合値と共に、ハッシュされた複合キーをハッシュテーブル内に記憶することを更に含む。
【００３９】
態様３４〜３６の何れか１つによる態様３７では、複合値は、集約データである。
【００４０】
態様３４〜３７の何れか１つによる態様３８では、１つ又は複数の操作は、所与のレコードについて、その所与のレコード内に含まれる各フィールドの値を検出すること及び少なくとも２つの検出された値の複数の一意の組み合わせを生成することであって、それぞれの一意の組み合わせは、複合キーである、生成すること、各複合キーについて、所与のレコード内の１つ又は複数のフィールドであって、１つ又は複数のフィールドについて、複合キーは、それらの１つ又は複数のフィールドの１つ又は複数のそれぞれの値を含む、１つ又は複数のフィールドを識別すること、１つ又は複数の識別されたフィールドの少なくとも１つに関係する集約データにメモリからアクセスすること、複合キーを記憶するフィールド及び集約データを記憶するフィールドを有するデータレコードを生成することにより、複合キー値を生成すること及び複合キー値をメモリ内に記憶することを更に含む。
【００４１】
態様３４〜３８の何れか１つによる態様３９では、複数の一意の組み合わせを生成することは、所与のレコード内のフィールドの検出された値の複数の全ての一意の組み合わせを生成することを含む。
【００４２】
態様３４〜３９の何れか１つによる態様４０では、１つ又は複数の操作は、ある期間にわたる指定された値の集約のための要求を受信すること、指定された値の発生を記憶する複合キー値をメモリから選択すること及び要求された集約を複合キー値から抽出することを更に含む。
【００４３】
態様３４〜４０の何れか１つによる態様４１では、１つ又は複数の操作は、集約データの１つ又は複数の項目を所与のデータレコード内のフィールドの値と集約すること、集約することに基づいて、そのフィールドのほぼリアルタイムの集約値を生成すること及びほぼリアルタイムの集約値を複合キー値内に記憶することを更に含む。
【００４４】
態様３４〜４１の何れか１つによる態様４２では、１つ又は複数の操作は、１つ又は複数の指定された値に関係する集約のための要求を受信すること、１つ又は複数の指定された値から複合キーを生成すること、複合キーをハッシュすること、ハッシュされた複合キーと共に記憶された複合値を、メモリ内に記憶されたハッシュテーブルから要求すること及び要求された集約データの項目を複合値から抽出することを更に含む。
【００４５】
記載した態様１〜４２の何れか１つによる全般的な態様４３では、ほぼリアルタイムの集約を生成するための１つ又は複数の機械可読ハードウェア記憶装置であり、１つ又は複数の機械可読ハードウェア記憶装置は、１つ又は複数のデータソースからデータレコードを断続的に受信すること、受信された所与のデータレコードについて、所与のデータレコード内の少なくとも第１のフィールド及び第２のフィールドを識別すること、第１のフィールド内の第１の値及び第２のフィールド内の第２の値を検出すること及び第１のフィールドの第１の値及び第２のキーの第２の値に従って複合キーを生成すること、少なくとも第１のフィールド又は第２のフィールドに関係する集約データにメモリからアクセスすること、複合キーを記憶するフィールド及び集約データの項目をそれぞれ記憶する１つ又は複数のフィールドを有するデータレコードを生成することにより、複合キー値を生成することであって、複合キー値は、少なくとも第１のフィールド又は第２のフィールドに関係するデータのほぼリアルタイムの集約を表す、生成すること並びに複合キー値をメモリ内に記憶することにより、所与のデータレコードの発生を記録することを含む操作を実行するために１つ又は複数の処理装置によって実行可能な命令を記憶する。
【００４６】
態様１〜４４の何れか１つによる態様４４では、複合キーを生成することは、第１の値を第２の値と連結することを含む。
【００４７】
態様１〜４４の何れか１つによる態様４５では、１つ又は複数の操作は、複合キーをハッシュすること及び複合値と共に、ハッシュされた複合キーをハッシュテーブル内に記憶することを更に含む。
【００４８】
態様１〜４５の何れか１つによる態様４６では、複合値は、集約データである。
【００４９】
態様１〜４６の何れか１つによる態様４７では、１つ又は複数の操作は、所与のレコードについて、その所与のレコード内に含まれる各フィールドの値を検出すること及び少なくとも２つの検出された値の複数の一意の組み合わせを生成することであって、それぞれの一意の組み合わせは、複合キーである、生成すること、各複合キーついて、所与のレコード内の１つ又は複数のフィールドであって、１つ又は複数のフィールドについて、複合キーは、それらの１つ又は複数のフィールドの１つ又は複数のそれぞれの値を含む、１つ又は複数のフィールドを識別すること、１つ又は複数の識別されたフィールドの少なくとも１つに関係する集約データにメモリからアクセスすること、複合キーを記憶するフィールド及び集約データを記憶するフィールドを有するデータレコードを生成することにより、複合キー値を生成すること及び複合キー値をメモリ内に記憶することを更に含む。
【００５０】
態様１〜４７の何れか１つによる態様４８では、複数の一意の組み合わせを生成することは、所与のレコード内のフィールドの検出された値の複数の全ての一意の組み合わせを生成することを含む。
【００５１】
態様１〜４８の何れか１つによる態様４９では、１つ又は複数の操作は、ある期間にわたる指定された値の集約のための要求を受信すること、指定された値の発生を記憶する複合キー値をメモリから選択すること及び要求された集約を複合キー値から抽出することを更に含む。
【００５２】
態様１〜４９の何れか１つによる態様５０では、１つ又は複数の操作は、集約データの１つ又は複数の項目を所与のデータレコード内のフィールドの値と集約すること、集約することに基づいて、そのフィールドのほぼリアルタイムの集約値を生成すること及びほぼリアルタイムの集約値を複合キー値内に記憶することを更に含む。
【００５３】
態様１〜５０の何れか１つによる態様５１では、１つ又は複数の操作は、１つ又は複数の指定された値に関係する集約のための要求を受信すること、１つ又は複数の指定された値から複合キーを生成すること、複合キーをハッシュすること、ハッシュされた複合キーと共に記憶された複合値を、メモリ内に記憶されたハッシュテーブルから要求すること及び要求された集約データの項目を複合値から抽出することを更に含む。
【００５４】
態様１〜５０の何れか１つによる態様５２では、複数のデータソースからデータの部分集合を作成し、部分集合の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正し、且つ１つ又は複数の修正されたフィールドの１つ又は複数の表現を表示することにより、データレコードのセグメント化を可能にするエディタインタフェースを表示するためのデータ処理システムであって、エディタインタフェース内で表される複数のデータソースを記憶するメモリ、エディタインタフェース内で表される複数のデータソースを選択し、及び複数のデータソース内に含まれるデータの部分集合を、データソースのそれぞれについて、そのデータソースから、それぞれのデータ構造が１つ又は複数のフィールドを含む、１つ又は複数のデータ構造を選択し、且つ少なくとも１つの選択されたデータ構造について、そのデータ構造内の１つ又は複数のそれぞれのフィールドの１つ又は複数の属性を修正することによって生成するデータ構造修正モジュール、部分集合内に含まれる選択されたデータ構造を記憶するメモリであって、記憶されたデータ構造の少なくとも１つは、１つ又は複数のそれぞれのフィールドの１つ又は複数の修正された属性を含む、メモリ、記憶されたデータ構造の表現をエディタインタフェース内で表示するレンダリングモジュールであって、表現の少なくとも１つは、１つ又は複数のそれぞれのフィールドの１つ又は複数の修正された属性のものであり、各表現は、１つ又は複数の選択可能部分を含み、選択可能部分は、データ構造のフィールドを表し、及びレンダリングモジュールは、１つ又は複数の選択可能部分の選択を指定する選択データを、エディタインタフェースを通して受信する、レンダリングモジュール及び受信されたデータレコードの何れのものが、選択された１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応する１つ又は複数のフィールドを有するかを識別することにより、複数の受信されたデータレコードをセグメント化するセグメント化モジュールを含むデータ処理システムを含む。
【００５５】
本発明の他の特徴及び利点が以下の説明及び特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００５６】
【図１】複合データソース内に含まれる修正されるデータの部分集合を作成するためのネットワーク化されたシステムのブロック図である。
【図２】複合データソース内に含まれる修正されるデータの部分集合を作成するための実行システムのブロック図である。
【図３】複合キーモジュールを用いて複合キーを作成する実行システムのブロック図である。
【図４】複合キーの生成に関与するテーブルを示すブロック図である。
【図５Ａ】複合キーを生成し使用するように構成される実行システムを示すブロック図である。
【図５Ｂ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図６】ほぼリアルタイムの集約を生成するように構成される実行システムのブロック図である。
【図７】データソース及びデータ構造のフィールドを修正するユーザインタフェースのレンダリングを引き起こすための実行システムの使用を示すブロック図である。
【図８Ａ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｂ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｃ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｄ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｅ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｆ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｇ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｈ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｉ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｊ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｋ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｌ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｍ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｎ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｏ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｐ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｑ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｒ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｓ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図８Ｔ】複合データソース内に含まれる修正されるデータの部分集合を作成するためのグラフィカルユーザインタフェースの図である。
【図９】収集−検出−動作（ＣＤＡ）処理を実装する実行環境のブロック図である。
【図１０】図９の実行環境における検出処理の詳細のブロック図である。
【図１１】複合データソース内に含まれる修正されるデータ構造を作成するための流れ図である。
【図１２】複合キー値を生成する流れ図である。
【図１３】実行システム内に含まれる機能モジュールの機能を示す図である。
【図１４】実行システム内に含まれる機能モジュールの機能を示す図である。
【発明を実施するための形態】
【００５７】
詳細な説明
図１を参照すると、データ構造（例えば、テーブル）を修正するためのネットワーク化されたシステム１０が示されている。具体的には、ネットワーク化されたシステム１０は、複数のデータソースからデータ構造を取得すること及びデータソースからのそれらのデータ構造の１つ又は複数のフィールド（又は他の属性若しくはフィールドの属性）を修正することを可能にする。概して、フィールドは、例えば、リレーショナルデータベース内にデータ及び／又はローを記憶するためのデータレコードの指定の部分を含む。概して、属性は、例えば、データ形式等の特性を含む。ネットワーク化されたシステム１０は、データソース１２ａ〜１２ｃを含む。ネットワーク化されたシステム１０は、例えば、データ構造にアクセスするための、それらのデータ構造の何れをクライアント装置に提供するかを指定し、且つそれらのデータ構造を修正するための実行システム１４を含む。実行システム１４は、データソース１２ａ〜１２ｃからデータ構造を受信及び記憶するための（例えば、揮発性メモリ、不揮発性メモリ等を含む）メモリ１６を含む。
【００５８】
一例では、メモリ１６がデータソース１２ａ〜１２ｃのそれぞれへの参照を記憶する。メモリ１６は、データソース１２ａ〜１２ｃ内に含まれるデータ構造をそれらのデータソースのそれぞれから受信する。メモリ１６は、実行システム１４にデータ構造を伝送したデータソースへの参照に関連してデータ構造（及びテーブル内のレコード等、データ構造内に含まれるデータ）を記憶する。実行システム１４は、例えば、データの提供元である１つ又は複数のデータソースを選択し、それらの選択された１つ又は複数のデータソース内の１つ又は複数のデータ構造を選択し、且つ１つ又は複数の選択されたデータソース内の１つ又は複数のデータ構造を（例えば、フィールド名を修正することによって）修正するためのデータ構造選択及びデータ構造修正モジュール１８（以下では「モジュール１８」）も含む。データ構造がテーブルである一例では、テーブル内のカラムをフィールドと呼び、テーブル内のローをレコードと呼ぶ。モジュール１８は、例えば、様々なデータ構造からの２つ以上のフィールドの結合を含む新たなデータ構造を生成できるようにすることにより、データ構造及び／又はデータ構造内のフィールドの強化も可能にする。実行システム１４は、例えば、修正されたデータ構造の視覚的表現を（クライアント装置上で表示される）ユーザインタフェース２４内でレンダリングするためのレンダリングモジュール２０を含む。
【００５９】
セグメント化のための命令を指定するために、ユーザは、ユーザインタフェース２４によってデータ構造の１つ又は複数のフィールド又は部分を選択する。概して、セグメント化は、データレコードの集合を１つ又は複数の指定の基準を満たすデータレコードのみに定め、細分するプロセスを含む。ユーザインタフェース２４をレンダリングするクライアント装置は、データ構造の１つ又は複数のフィールド又は部分の選択を指定するデータをレンダリングモジュール２０に伝送する。レンダリングモジュール２０は、（選択を指定する）このデータをセグメント化モジュール２２に伝送し、セグメント化モジュール２２は、メモリ１６又は他のデータリポジトリ内に記憶される様々なデータレコードのセグメント化を実施し、出力データセット２６を作成する。
【００６０】
図２を参照すると、ネットワーク化されたシステム１０は、データ構造Ａ〜データ構造Ｄ（例えば、テーブル）を修正するように構成される実行システム１４を有する。この具体例では、データ構造Ａ及びデータ構造Ｃがデータ構造修正モジュール１８によって修正される。グラフィカルユーザインタフェース１８ｂに示すように、データ構造修正モジュール１８から、「カード購入Visa」及び「顧客エンゲージメント」と題されたフィールドでそれぞれデータ投入され、且つ「ＩＤ」、「取引金額」並びに「ＩＤ」及び「期間」のフィールド名をそれぞれ含む修正されるデータ構造Ａ及びＢが図示されている。データ構造修正モジュール１８は、レンダリングモジュール２０に送信する修正されたフィールドデータ１８ａも作成し、レンダリングモジュール２０は、結合ＩＤ、例えば返却データレコード内に含まれるＩＤフィールドの値に基づいて返却データレコードを結合するための命令と共に、修正された構造Ａ及びＣの表現２１をユーザインタフェース２４（図１）によってレンダリングする。概して、修正されたフィールドデータは、データ構造のフィールドに対する１つ又は複数の修正、例えばフィールドの名前又はデータ構造内のカラム若しくはローの修正等を指定するデータを含む。
【００６１】
実行システム１４は、修正されたフィールドデータ１８ａ（ＩＤによる結合（取引金額＞＄５０００）＆（顧客エンゲージメント＜６カ月））をセグメント化モジュール２２に送信し、セグメント化モジュール２２は、データソース、例えば１２ｄにアクセスするためのセグメント化ロジック２２ａに基づいて（クエリ（取引金額＞＄５０００）＆（顧客エンゲージメント＜６カ月）のクエリを作成し、データソース１２ｄは、そのそれぞれが図示のように「ＩＤ：ｆ４２３５４３  VISA：７３４９．００」及び「ＩＤ：ｆ４２３５４３  顧客エンゲージメント：２カ月」のコンテンツをそれぞれ含む２つのレコード１３ａ、１３ｂを返す。返却レコード２２ｂは、セグメント化モジュール２２に送り返され、（結合ＩＤによる）返却レコードの結合１８ａ「ＩＤ：ｆ４２３５４３  VISA：＄７３４９．００  顧客エンゲージメント：２カ月」を指定するための論理モジュール２５に与えられる。
【００６２】
次に、図３を参照すると、複合キーモジュール３０によって複合キーを作成するように構成される実行システム１４が示されている。データ構造修正モジュール１８は、修正されたフィールドデータを複合キーモジュール３０に送信する。複合キーモジュール３０は、返却レコードの結合１８ａ「ＩＤ：ｆ４２３５４３  VISA：＄７３４９．００  顧客エンゲージメント：２カ月」も送信され、複合キー３１ａと複合値３１ｂとを連結したものであり、データストア１２ｅ内に記憶される複合キー値３１を作成する。概して、複合キーは、データレコード内のもう１つのフィールドの１つ又は複数の値から生成されるキーを含む。概して、複合値は、複合キーの生成元である値の１つ又は複数に関係する幾つかの集約又は他のデータを含む。この例では、複合値が「５５５０．３２，３４５．２４，１２．０１，２３」の集約を含み、そのそれぞれは、現在の取引の現在の金額、指定の期間（例えば、過去３０日間）にわたるその特定のＩＤに関連する平均取引金額、その期間にわたって生じた最低取引金額及びその期間にわたって生じた取引数のカウントをそれぞれ示す。以下で説明するように、複合キーモジュール３０及び互いからの出力に対してそれぞれ操作するレンダリングモジュール２０、セグメント化モジュール２２及び論理モジュール２５も図示する。
【００６３】
図４を参照すると、データレコードフィールドの値に由来する複合キー及び関連する複合値の構造３２が示されている。この例では、システム１０は、加入者ＩＤ（ＳｕｂＩＤ）フィールド、イベントタイプフィールド、日付フィールド及び（音声イベントの時間の長さを指定する）長さフィールドの４つのフィールドを含むデータレコード３２ａを受信する。この例では、ＳｕｂＩＤフィールドの値は、「４３０５４４２１」である。イベントタイプフィールドの値は、「音声」である。日付フィールドの値は、「４／３／２０１８」である。長さフィールドの値は、「４．３４分」である。データレコード３２ａ内の最初の３つのフィールドの値から、システム１０は、幾つかのキー、例えばフィールドの可能な組み合わせごとに１つのキーを生成する。一部の例では、データレコードが「ｎ」個のフィールドを有する場合、フィールドの異なる組み合わせの数は、２ｎである。テーブル３３ａに示すように、この例では、データレコード３２内のフィールドからシステム１０が７個の別個のキーを生成する。７個の別個のキーは、下記の通りである。
キー１：ＳｕｂＩＤ
キー２：ＳｕｂＩＤ．イベントタイプ
キー３：ＳｕｂＩＤ．日付
キー４：ＳｕｂＩＤ．イベントタイプ．日付
キー５：イベントタイプ
キー６：日付
キー７：イベントタイプ．日付
【００６４】
複合キーのそれぞれについて、システムは１つ又は複数の指定された値を含む複合値を生成する。「ＳｕｂＩＤ」キー（即ちテーブル３３ａ内のキー１）では、（テーブル３３ａ内の複合値１によって示す）複合値は、ＳｕｂＩＤによって表される加入者について指定の期間（例えば、５日間）にわたって受信されるイベントの平均数（「Average」）及びその加入者について指定の期間にわたって受信されるイベント数のカウント（「Count」）である。即ち、「ＳｕｂＩＤ」のキーでは、テーブル３３ａに示すように複合値は、「Average，Count」である。
【００６５】
「ＳｕｂＩＤ．イベントタイプ」のキー（即ちテーブル３３ａ内のキー２）では、（テーブル３３ａ内の複合値２によって示す）複合値は、ＳｕｂＩＤによって表される加入者について指定の期間（例えば、５日間）にわたって受信される（キー内で指定されるイベントタイプの）イベントの平均数（「Average」）、指定のイベントタイプのイベントの最短時間（「Ｍｉｎ」）、指定のイベントタイプのイベントの最長時間（「Ｍａｘ」）及びその加入者について指定の期間にわたって受信される（キー内で指定されるイベントタイプの）イベント数のカウント（「Count」）である。即ち、「ＳｕｂＩＤ．イベントタイプ」のキーでは、テーブル３３ａに示すように複合値は、「Average，Ｍｉｎ，Ｍａｘ，Count」である。
【００６６】
「ＳｕｂＩＤ．日付」キー（即ちテーブル３３ａ内のキー３）では、（テーブル３３ａ内の複合値３によって示す）複合値は、ＳｕｂＩＤフィールドによって指定される加入者について日付フィールドによって指定される日付に受信されるイベント数のカウント（「Count」）である。即ち、「ＳｕｂＩＤ．日付」のキーでは、テーブル３３ａに示すように複合値は、「Count」である。
【００６７】
「ＳｕｂＩＤ．イベントタイプ．日付」のキー（即ちテーブル３３ａ内のキー４）では、（テーブル３３ａ内の複合値４によって示す）複合値は、ＳｕｂＩＤフィールド内で指定される加入者に関する指定のイベントタイプの、且つ日付フィールド内の指定の日付のイベントの最短時間（「Ｍｉｎ」）、ＳｕｂＩＤフィールド内で指定される加入者に関する指定のイベントタイプの、且つ日付フィールド内の指定の日付のイベントの最長時間（「Ｍａｘ」）及びＳｕｂＩＤフィールド内で指定される加入者に関し且つ日付フィールド内の指定の日付の（キー内で指定されるイベントタイプの）イベント数のカウント（「Count」）である。即ち、「ＳｕｂＩＤ．イベントタイプ．日付」のキーでは、テーブル３３ａに示すように複合値は、「Ｍｉｎ，Ｍａｘ，Count」である。
【００６８】
「イベントタイプ」のキー（即ちテーブル３３ａ内のキー５）では、（テーブル３３ａ内の複合値５によって示す）複合値は、指定の期間（例えば、５日間）にわたって受信される（キー内で指定されるイベントタイプの）イベントの平均数（「Average」）、指定の期間にわたる指定のイベントタイプのイベントの最短時間（「Ｍｉｎ」）、指定の期間にわたる指定のイベントタイプのイベントの最長時間（「Ｍａｘ」）及び指定の期間にわたる（キー内で指定されるイベントタイプの）イベント数のカウント（「Count」）である。即ち、「イベントタイプ」のキーでは、テーブル３３ａに示すように複合値は、「Average，Ｍｉｎ，Ｍａｘ，Count」である。
【００６９】
「日付」キー（即ちテーブル３３ａ内のキー６）では、（テーブル３３ａ内の複合値６によって示す）複合値は、日付フィールドによって指定される日付に受信されるイベント数のカウント（「Count」）である。即ち、「日付」のキーでは、テーブル３３ａに示すように複合値は、「Count」である。
【００７０】
「イベントタイプ．日付」のキー（即ちテーブル３３ａ内のキー７）では、（テーブル３３ａ内の複合値７によって示す）複合値は、日付フィールド内の指定の日付の指定のイベントタイプのイベントの最短時間（「Ｍｉｎ」）、日付フィールド内の指定の日付の指定のイベントタイプのイベントの最長時間（「Ｍａｘ」）及び日付フィールド内の指定の日付の（キー内で指定されるイベントタイプの）イベント数のカウント（「Count」）である。即ち、「イベントタイプ．日付」のキーでは、テーブル３３ａに示すように複合値は、「Ｍｉｎ，Ｍａｘ，Count」である。
【００７１】
テーブル３３ｂは、キー１〜７の実際のキー及び関連する複合値である複合値１〜７をそれぞれ示す。この例では、キー１〜７の値がデータレコード３３ａ内のフィールドの値から生成される。システムは、過去に計算された複合値を更新することにより、及び／又は永続メモリ５８（図６）からの指定のデータにアクセスすることにより複合値を生成する。例えば、キー４（即ちＳｕｂＩＤ．イベントタイプ．日付キー）では、メモリ５６（図６）がそのキーのためのエントリを既に記憶している場合がある。その記憶されたエントリは、次の通りであり得る：キー４：４３０５４４２１．音声．４／３／２０１８、複合値４：最短０．９、最長８．０９、２。この例では、レコード３２ａが受信されると、システム１０は、自らが４３０５４４２１．音声．４／３／２０１８というキーの複合値を既に記憶していることを特定する。そのため、システム１０は、データレコード２６８ａ内で指定された音声イベントの長さ（即ち４．３４分）に従って複合値を更新する。この更新に基づき、システムは、図４に示すように「最短１．２、最長８．０９、３」の新たな複合値を決定する。
【００７２】
他の例では、システムがキー４の複合値を依然として特定しいない場合がある。この例では、システムは、データレコード３２ａ内で参照される加入者（即ちＳｕｂＩＤ：４３０５４４２１）のためのデータレコードにメモリ５６（図６）及び／又は永続メモリ５８（図６）からアクセスする。アクセスしたそれらのデータレコードから、システムは、何れのデータレコードが指定の日付、即ち４／３／２０１８に関する音声イベントを参照するかを決定する。指定の日付に関する音声イベントを参照するデータレコードから、システムは、指定の加入者について指定の日付に生じた（例えば、それぞれのレコードの「長さ」フィールドからの）音声イベントの最短時間、（例えば、それぞれのレコードの「長さ」フィールドからの）音声イベントの最長時間及び音声イベント数のカウントを決定する。決定したそれらの値から、システムは、複合値を決定し、それを「４３０５４４２１．音声．４／３／２０１８」のキー、即ちキー４のハッシュ値に関連して（即ちハッシュテーブル２６８ｄ内に）記憶する。
【００７３】
この例では、メモリ（不図示）がキー１〜７のそれぞれのハッシュされたキー値３５ａ〜３５ｇを有するハッシュテーブル３３ｃを記憶する。この例では、システムは、複合キーにハッシングアルゴリズムを適用することにより、ハッシュされたキー値を生成する。ハッシュテーブル３３ｃは、テーブル３３ｃ内の複合値１〜７にそれぞれ対応する複合値３６ａ〜３６ｇも記憶する。概して、対応する又は対応は、マッチすること又は同様の閾値を有することを指す。この例では、複合キー及び関連する複合値を記憶することによって各レコードが独立に記憶される。
【００７４】
これらの例では、システムがキーの様々な組み合わせについてデータ値を事前に計算している。例えば、「４３０５４４２１．音声．４／３／２０１８」のキーでは、システムは、４／３／２０１８に生じた指定の加入者の音声イベントに関する最小値、最大値及びカウント値を事前に計算する。これらの値を事前に計算することにより、システムは、リアルタイムの集約及び他のリアルタイムの値を決定することに関して実行時のレイテンシを減らす（又はなくす）。例えば、実行時において、システムは、ＳｕｂＩＤ  ４３０５４４２１によって表される加入者について４／３／２０１８に生じる音声イベント数を決定する必要がある。システムは、４３０５４４２１の値を有するＳｕｂＩＤフィールドを含むデータレコードについて様々なデータリポジトリ及びウェアハウスをクエリすることにより、このリアルタイムの集約を決定することができる。次いで、全ての返却データレコードから、システムは、データレコードを構文解析して、イベントタイプフィールドについて「音声」の値を有し、日付フィールドについて「４／３／２０１８」の値を有するデータレコードの部分集合を決定することができる。次いで、システム１０は、部分集合内で返されるレコードの数をカウントして、カウントを決定することができる。但し、このクエリ及び処理は、システムがクエリ及び構文解析を行うときに関連するレイテンシを引き起こす。このレイテンシを減らすか又はなくすために、システムは、集約（又は最小値及び最大値等の他の値）を事前に計算し、それらの集約を複合キーのハッシュ値に関連して記憶する。そのため、特定の日付に特定の加入者によって行われる音声通話回数のカウントを探索するために、システムは、ＳｕｂＩＤ．音声．日付又は４３０５４４２１．音声．４／３／２０１８という適切なキーを生成する。システムは、キーの値をハッシュし、且つハッシュされたキー値を使用してハッシュテーブル３３ｃ内で複合値にアクセスする。そうすることにより、システムは、集約をリアルタイムで計算しなければならないことに関連するレイテンシをなくすか又は減らす。
【００７５】
複合キーに関連して複合値を記憶する別の利点は、データレコードに新たなフィールドを追加する場合、その新たなフィールドのための値を有する新たな複合キーを生成し、関連する複合値内のカウント（又は別の集約）を追跡することにより、その新たなフィールド内の値の発生を容易に追跡できることである。例えば、「新規顧客」フィールドがデータレコード３２ａに追加される。この例では、顧客が過去６か月のうちに電話会社サービスに申し込んでいる場合、その顧客は、新規顧客である。この場合、新規顧客フィールドがイエスの値を有する。さもなければ、新規顧客フィールドは、ノーの値を有する。この例では、４／３／２０１８の指定の日付に音声通話を行った新規顧客の発生をシステムが追跡し、イエス．音声．４／３／２０１８の値を有する新規顧客．イベントタイプ．日付の新たなキーをシステムが生成する。この新たなキーの複合値は、「count」である。その後、新たなレコードが受信されると、システムは、４／３／２０１８に受信した新規顧客の音声イベントを参照するレコードの数に従って複合値を生成又は更新する。複合値を生成し、且つそれを複合キーに関連して記憶することの利点は、データレコードに新たなフィールドを追加するとき、それらの新たなフィールドの値を追跡するためにテーブルにカラムを追加する必要がないことである。むしろ、フィールドの新たな値は、新たなキーを生成することによって追跡することができ、新たなキーの生成は、新たなカラムを追加することによってテーブルの構造を変更するのではなく、テーブルに新たなローを追加することを単純に必要とする。
【００７６】
次に、図５Ａを参照すると、実行システム１４がデータソース１２ａにアクセスし、データソース１２ａはそのそれぞれが「ＩＤ：５３０５４４２３、取引金額：＄５５５０．３２、日付：４／３／２０１８、カードの種類：Visa」及び「ＩＤ：５３０５４４２３、顧客エンゲージメント：２カ月、日付：４／３／２０１８」のそれぞれのコンテンツを含む２つのレコード１８ａ、１８ｂを返す。返却レコード１８ａ、１８ｂは、（レコード１８ａのための複合キー２５ａ及び（レコード１８ｂのための複合キー２５ｂを作成するために複合キーモジュール３０に送信される。複合キー値２５ａ、２５ｂがデータストア１２ｆ内に記憶され、図５Ｂに示す表現をレンダリングするレンダリングモジュール２０に対して複合キーモジュール３０が複合キー値２５ａ、２５ｂを送信する。この例では、複合キー値２５ａは、「５３０５４４２３．VISA」の複合キーと、現在の取引の合計購入金額、指定の日数（例えば、過去３０日間）にわたる平均購入金額、指定の日数にわたる最低購入金額及び指定の日数にわたって行われた購入数のカウントを表す「５５５０．３２，３４５．２４，１２．０１，２３」の複合値とを含む。複合キー値２５ｂは、「５３０５４４２３．顧客エンゲージメント」の複合キーと、ＩＤフィールドによって表される特定のユーザが顧客である期間、ユーザが顧客になった日付、顧客の最低購入金額、顧客の最大購入金額及び顧客の平均購入金額をそれぞれ表す「２，１／１／２０１８，９．００，１０４５，１０４」の複合値とを含む。図５Ｂに関して以下でより詳細に説明するように、複合キー値２５ａ、２５ｂは、レンダリングモジュール２０に送信されて、セグメント化テンプレートの一部として何れの集約を表示できるかをレンダリングモジュールが決定できるようにする。以下でより詳細に説明するように、この例では、何れのテーブルが選択されるか及びそれらのテーブルに何れの複合キー値が関連するか又は利用できるかに応じて、複合キー値２５ａ、２５ｂに含まれる集約（例えば、最小、カウント等）がセグメント化における定義で利用できるようになる。
【００７７】
レンダリングモジュール２０は、（図５Ｂに示すグラフィカルユーザインタフェース内で指定される）セグメント化ロジック２３ｃを受信し、セグメント化ロジック２３ｃをセグメント化モジュール２２に送信する。この例では、セグメント化ロジックは、次の通りである：「（ＩＤによる結合（Count（Visa  取引金額＞＄５０００）＞２）及び（顧客エンゲージメント＜６カ月且つ合計取引カウント＞１００））」。それに応答して、セグメント化モジュール２２は、複合キークエリ２３ａ（５３０５４４２３．VISA）及び複合キークエリ２３ｂ（５３０５４４２３．顧客エンゲージメント）を作成し、複合キークエリ２３ａ、２３ｂをデータリポジトリ１２ｆに伝送する。それに応答して、データリポジトリ１２ｆは、クエリ２３ａ、２３ｂ内で指定された複合キーとマッチする複合キーを有する複合キー値を（例えば、テーブル内で）探索する。この例では、複合キークエリ２３ａが「５３０５４４２３．VISA」の複合キーを含む。この複合キーに基づき、データリポジトリ１２ｆは、「５３０５４４２３．VISA」の複合キーを有し、従って複合キークエリ２３ａ内で指定された複合キーとマッチする複合キー値２５ａを取得する。この例では、複合キークエリ２３ｂが「５３０５４４２３．顧客エンゲージメント」の複合キーを含む。この複合キーに基づき、データリポジトリ１２ｆは、「５３０５４４２３．顧客エンゲージメント」の複合キーを有し、従って複合キークエリ２３ｂ内で指定された複合キーとマッチする複合キー値２５ｂを取得する。データリポジトリ１２ｆは、返却レコード２２ｃとして複合キー値２５ａ、２５ｂをセグメント化モジュール２２に返す。それに応答し、セグメント化モジュール２２は、返却レコード２２ｃを更なる処理のために論理モジュール２５に伝送する。この例では、論理モジュール２５が（例えば、セグメント化モジュール２２から）セグメント化ロジック２３ｃも受信し、返却レコード２２ｃを結合して集約又は結合されたレコード２７を作成するための結合ロジックを実装する。
【００７８】
図５Ｂを参照すると、グラフィカルユーザインタフェース４０は、グラフィカルユーザインタフェース２１（図２）の改変形態である。この例では、グラフィカルユーザインタフェース４０がコンポーネント４０ａ〜４０ｅを含む。この例では、コンポーネント４０ａは、６か月間よりも長く顧客である顧客のみを含めることによって顧客をセグメント化するために「顧客エンゲージメント」テーブルを使用することを指定する。この例では、特定の集約（例えば、カウント）が顧客エンゲージメントテーブルに関連する。一部の例では、各複合値が同じ種類の集約を含む。そのため、各テーブルは、同じ種類の集約に関連し得る。他の例では、テーブルが特定の種類の集約のみに関連し得る。この例では、複合キークエリがデータリポジトリに送信され、セグメント化に必要な集約を含まない複合キー値が返される場合、実行システムは、保持される複合キー値を単純に破棄する）。この例では、コンポーネント４０ｅは、Visaカード購入テーブルをセグメント化に使用すること、更にコンポーネント４０ｄによって指定されているように、３回以上のカード購入を行った顧客のみをセグメントに含めることを指定する。コンポーネント４０ｃは、コンポーネント４０ａ〜４０ｂ、４０ｄ及び４０ｅ内で指定されたロジックを実行することで返されるレコードを結合することを指定する。
【００７９】
規模を拡大したリアルタイム（又はほぼリアルタイム）の集約の生成
一部の例では、システム１０によって大量のデータが受信されるとき、システム１０が著しいレイテンシなしに集約を行うように、データの受信時にシステム１０がフィールド内のデータをリアルタイム（又はほぼリアルタイム）で集約し、更に規模を拡大してデータを集約する。一部の例では、システムがセグメント化を行うときにアクセス又は取得されるデータを生成する際にこれらの集約が使用される。
【００８０】
次に、図６を参照すると、ネットワーク化されたシステム１０（図１）は、リアルタイムの集約を生成するシステム５０も含む。一部の例では、システム５０は、図１における実行システム１４である。この例では、システム５０がデータソース１２ａからデータレコード５２ａ〜５２ｃを受信し、データソース１２ｂからデータレコード５２ｄ〜５２ｆを受信する。データレコード５２ａ〜５２ｆのそれぞれは、ユーザを一意に識別する値を有するキーフィールド（即ち加入者識別子（ＳｕｂＩＤ）フィールド）等の１つ又は複数のフィールドを含む。データレコード５２ａ〜５２ｆのそれぞれは、通信の種類を識別する値（即ち音声、ＳＭＳ又はデータ）を記憶するための通信タイプ（「通信タイプ」）フィールドも含み得る。
【００８１】
ネットワーク化されたシステム１０は、更に実行システム１４（図１）であり、且つメモリ５６（例えば、共用メモリ、半導体メモリ、低永続メモリ等）及び永続メモリ５８を含む記憶域を含む。メモリ５６及び５８は、図１のメモリ１６を形成し得る。概して、メモリ５６は、例えば、永続メモリ５８からデータ又はデータレコードを取得する際のレイテンシと比較してレイテンシを低減しながらシステム５０によってアクセス可能なメモリを含む。メモリ５６は、ディスクメモリではない（例えば、メモリ５６内に記憶するときデータレコードがディスクに記憶されない）ため、メモリ５６のレイテンシは、低い。一部の例では、メモリ５６は、キャッシュストア又はＲＡＭキャッシュと呼ばれることもあるメモリキャッシュを含み、メモリキャッシュは、メインメモリ、例えば永続メモリ５８に使用される遅いダイナミックＲＡＭ（ＤＲＡＭ）ではなく、高速のスタティックＲＡＭ（ＳＲＡＭ）で作られるメモリの一部分である。この例では、メモリ５６が最近のデータ（又は最近のデータの発生のレコード）のみを記憶し、データは、閾値期間未満（例えば、１４日間未満）に受信されている場合に「最近」である。この閾値期間よりもデータが古くなると、システム５０又はメモリ５６は、そのデータをより永続的に記憶するために永続メモリ５８に伝送する。システム５０は、より最近のデータに最も頻繁にアクセスするため、メモリ５６上でのメモリキャッシングは、効果的である。即ち、メモリ５６内に記憶されたデータは、システム５０によって盛んに使用されるデータである。この情報を可能な限りＳＲＡＭ又はメモリ５６内に保つことにより、システム５０は、遅いＤＲＡＭ又は永続メモリ５８へのアクセスを回避する。
【００８２】
この例では、システム５０は、受信されたデータ又はデータレコード自体ではなく、イベントのレコードを記憶する。概して、イベントは、特定のフィールドでの特定の値の発生を含む。この例では、システム５０は、「通信タイプ」フィールドのあり得るそれぞれの値（即ち音声、ＳＭＳ又はデータ）がイベントであることを指定する。メモリ５６は、個々の検出イベント（及びそのイベントに関する加入者ＩＤ）のレコードを保存するデータレコード６０を記憶する。具体的には、データレコード６０は、カラム６０ａ〜６０ｃを含む。カラム６０ａは、「音声イベント」の発生（「通信タイプ」フィールドでの「音声」値の検出）を示すデータを記憶する。カラム６０ｂは、「データイベント」の発生（「通信タイプ」フィールドでの「データ」値の検出）を示すデータを記憶する。カラム６０ｃは、「ＳＭＳイベント」の発生（「通信タイプ」フィールドでの「ＳＭＳ」値の検出）を示すデータを記憶する。
【００８３】
具体的には、システム５０は、データレコード５２ａを受信し、音声イベントの発生をデータレコード５２ａ内で検出する。そのため、システム５０は、データレコード６０のカラム６０ａ内に加入者ＩＤの値を挿入する。システム５０は、データレコード５２ｂを受信し、ＳＭＳイベントの発生をデータレコード５２ｂ内で検出する。そのため、システム５０は、データレコード５２ｂ内のＳｕｂＩＤフィールド内で指定された加入者ＩＤをカラム６０ｃ内に挿入する。
【００８４】
システム５０は、データレコード５２ｃを受信し、音声イベントの発生をデータレコード５２ｃ内で検出する。そのため、システム５０は、データレコード５２ｃ内のＳｕｂＩＤフィールド内で指定された加入者ＩＤをカラム６０ａ内に挿入する。システム５０は、データレコード５２ｄを受信し、音声イベントの発生をデータレコード５２ｄ内で検出する。そのため、システム５０は、データレコード５２ｄ内のＳｕｂＩＤフィールド内で指定された加入者ＩＤの値をカラム６０ａ内に挿入する。システム５０は、データレコード５２ｅを受信し、音声イベントの発生をデータレコード５２ｅ内で検出する。そのため、システム５０は、データレコード５２ｅ内のＳｕｂＩＤフィールド内で指定された「加入者ＩＤの値をカラム６０ａ内に挿入する。システム５０は、データレコード５２ｆを受信し、データイベントの発生をデータレコード５２ｆ内で検出する。そのため、システム５０は、データレコード５２ｆ内のＳｕｂＩＤフィールド内で指定された加入者ＩＤの値をカラム６０ｂ内に挿入する。
【００８５】
この例では、データレコード６０は、柔軟性の増加を伴うデータレコードであり、それは、データレコード６０に別のカラムを追加することによって他の種類のイベント（例えば、テレビ会議イベント）の発生も追跡するようにデータレコード６０を修正することができるからである。そのため、新たなイベントの集約を追跡するようにデータレコード６０が実行中に修正され得る。これは、受信したデータレコード自体を保存することを上回る柔軟性の改善をもたらし、それは、以下でより詳細に説明するように、新たなイベントの新たな複合キーを生成することによってそのイベントを追跡することができるからである。加えて、データレコード６０を検索することは、個々のデータレコードに対してクエリを実行する際のレイテンシに比べ、クエリを実行する際のレイテンシの低下をもたらす。例えば、システム５０は、音声通信に携わる加入者についてデータレコード６０をクエリすることができる。この例では、システム５０が「通信タイプ＝音声」のクエリを生成する。このクエリに基づき、メモリ５６は、カラム６０ａ内に含まれる加入者ＩＤの値を単純に探索するカラム６０ａ内の値を返す。システム５０は、このクエリの結果を（クエリを満たすデータレコードを識別するために個々のデータレコード５２ａ〜ｆを検索するのに必要な速度と比較して）より高速に返し、なぜなら、システム５０（又はメモリ５６）は、クエリを満たす値を記憶するレコードを識別するためにデータレコードをくまなく検索する代わりに、クエリにマッチするか又はクエリを満たすカラムを識別するのみでよいからである。一部の例では、閾値時間の経過後、データレコード６０内のデータが永続メモリ５８に転送され、データレコード６２ａ．．．６２ｎの１つに記憶される。
【００８６】
一部の例では、カラム６０ａ〜６０ｃのそれぞれが特定の種類のイベントの集約を表すため、それらのカラム内に含まれるデータがメモリ内集約とそれぞれ呼ばれる。概して、メモリ内集約（例えば、カウント、平均等）は、メモリ５６内に記憶されたデータの集約を含む。他の例では、システム５０は、レコード６０内に含まれるデータに対して操作を実行してメモリ内集約を生成し得る。例えば、システム５０は、「通信タイプ＝音声」且つ「ＳｕｂＩＤ＝５３０５４４２３」であるレコードのカウントについてメモリ５６をクエリすることができる。この例では、「ＳｕｂＩＤ＝５３０５４４２３」を有する加入者が２回の音声通信を有したことをカラム６０ａが示すため、メモリ５６が「２」の値を返すであろう。この例では、メモリ５６がクエリに関するメモリ内集約を生成し、メモリ内集約は、２の値を有する。メモリ５６（又はシステム５０）は、メモリ内集約の値を共用変数内に記憶する。この例では、「通信タイプ＝音声且つＳｕｂＩＤ＝５３０５４４２３のカウント」のクエリを受信すると、メモリ５６は、「通信タイプ＝音声且つＳｕｂＩＤ＝５３０５４４２３のカウント」の名前を有する共用変数を生成し、共用変数の値を「２」であるように設定する。この例では、共用変数がメモリ内集約の値を記憶する。先に記載したように、これらのメモリ内集約は、（これらのメモリ内集約を永続メモリ５８から取得する速度又は個々のデータレコード５２ａ〜ｆをくまなく検索することでこれらのメモリ内集約を構築することによって取得する速度と比較して）より高速にメモリ５６から取得される。
【００８７】
データレコード６０内のデータがディスクに移される（即ち永続メモリ５８に移される）と、カラム６０ａ〜６０ｃ内の値は、メモリ上に記憶されるのではなく、例えばディスク上に記憶される発生のレコードを含むディスク上集約である。一部の例では、閾値時間の経過後に共用変数の値も永続メモリ５８に移される。
【００８８】
データレコード自体を記憶するのではなく、イベントの発生を記録することにより、システム５０は、規模を拡大して集約を決定し、例えばデータレコード６０内で表されるレコードの数が増加するときにレイテンシの増加がなく（又はレイテンシの増加が最小限のみであり）、なぜなら、システム５０は、個々のレコード５２ａ〜ｆをくまなく構文解析し、そのコンテンツを識別するのではなく、データレコード６０内の関連フィールド（又はカラム内の関連セル）を識別するのみでよいからである。レコード内の発生数が増加してもフィールドの数が増加しないため、データレコード内の関連フィールドを識別することは、拡張性のあるプロセスである。そのため、これらのリアルタイムの集約を識別することは、拡張性があり、処理するデータレコードの数が増えてもレイテンシを生じさせない。
【００８９】
以下でより詳細に説明するように、改変形態では、メモリ５６がハッシュテーブルを記憶し、ハッシュテーブル内に複合値に関連して複合キーのハッシュ値が記憶される。概して、複合キーは、複数の別個の値からアセンブルされる（又はかかる値を含む）キーを含む。概して、複合値は、複数の別個の値の連結又はアセンブリを含む。
【００９０】
図７を参照すると、システム１０によって（例えば、図１のモジュール１８によって）実行される選択及び修正機能が示されている。この例では、１つ又は複数のデータソースが選択され、より多くのデータ構造の１つが選択され、それらのデータ構造の１つ又は複数のフィールドが修正される様々なユーザインタフェースのレンダリングをシステムが引き起こす。この例では、データソース７２ａ〜７２ｄ（そのうちのデータソース７２ａ〜７２ｃは、データソース１２ａ〜１２ｃにそれぞれ対応する）は、レンダリングモジュール（例えば、図１のレンダリングモジュール２０）によってデータが提供される元となる候補データソースである。レンダリングモジュール２０（図１）は、エンドユーザ（例えば、ビジネスユーザ）がデータのキュレートされた部分集合を閲覧し、かかる部分集合にアクセスする様々なグラフィカルユーザインタフェースを提供する。キュレートされた部分集合から、システムは、例えば、グラフィカルユーザインタフェースによって受信されるデータに基づいて様々な操作及びアクションを実行するための命令を生成する。データの部分集合は、データソース（例えば、データソース７２ａ〜７２ｄ）にわたるデータの上位集合からセグメント化操作等の指定の操作のための部分集合にキュレートされる。レンダリングモジュールは、データをどのようにキュレートするかに関する指示を受信するためのグラフィカルユーザインタフェースも提供する。この例では、データソース７２ａ〜７２ｄは、部分集合の生成元、例えばキュレート元であるデータの上位集合である。システムは、様々なデータ構造（例えば、テーブル）を修正する元のデータソースとしてデータソース７２ｂ、７２ｄを選択する。一部の例では、データソース１４、１８の選択に基づいてシステムがデータソース７２ａ、７２ｄのための参照を識別し、識別したそれらの参照に何れのテーブルが関連するかをメモリ１６（図１）内で探索する。次いで、システムは、それらのテーブルをデータソース７２ｂ、７２ｄから、又はメモリ１６自体がテーブルを記憶する場合にはメモリ１６から取得する。
【００９１】
この例では、データソース７２ａがテーブル７３、７４、７５を含む。データソース７２ｄは、テーブル７８、７９、８０、８１を含む。テーブル７３、７４、７５から、システムは、レンダリングモジュール２０（図１）によってテーブル２６の視覚的表現をレンダリングすることで修正（例えば、キュレート）しようとするデータ構造としてテーブル２６を選択する。テーブル７８、７９、８０、８１から、システムは、レンダリングモジュール２０（図１）によってテーブル３２の視覚的表現をレンダリングすることで修正（例えば、キュレート）しようとするデータ構造としてテーブル３２を選択する。これらの選択は、例えば、テーブル２６、３２を選択するためにユーザインタフェースによって受信されるユーザ命令に従って行われる。即ち、テーブル７３、７４、７５、７８、７９、８０及び８１の全てが修正及びキュレートされるわけではない。選択されたデータソースからの選択されたテーブルのみが修正され、レンダリングモジュール２０によってユーザインタフェース２４（図１）内で提供される。
【００９２】
テーブル７５のビュー７５ａは、テーブル７５のコンテンツを示す。限定なしに且つ便宜上、本明細書では、ビュー７５ａ及びテーブル７５をまとめて「テーブル７５」と呼ぶ場合がある。テーブル７５は、「プラン統計」のタイトルを指定するタイトル部分７５ｇを含む。この例では、テーブル７５がカラム７５ｂ、７５ｃ、７５ｄ（本明細書ではそれぞれ「フィールド７５ｂ、７５ｃ、７５ｄ」とも呼ぶ）を含む。フィールド７５ｂ、７５ｃ、７５ｄの名前は、それぞれ「sub_id」、「min_usd」、prc_pln_id」である。テーブル７５は、ロー７５ｅ、７５ｆも含む。一例では、タイトル及び／又はフィールドを修正及び／又再命名できるようにするために、更に例えば様々なテーブルのフィールドを結合するときに使用されるキーであるようにフィールドの１つを指定できるようにするために、テーブル７５（又はテーブル７５の視覚的表現）がユーザインタフェース内でレンダリングされる。テーブル７６は、テーブル７５の修正版である。テーブル７６は、実行システム１４からのグラフィカルユーザインタフェースデータの受信に基づいてクライアント装置８５ａ上でレンダリングされ、グラフィカルユーザインタフェースデータは、テーブル７５のコンテンツを指定する。このテーブル７５の修正版では、部分７５ｇ内で指定されていた元のタイトルは、部分７６ａ内で指定されているように「プラン統計」のタイトルに修正されている。加えて、フィールド７５ｂ、７５ｃ、７５ｄのそれぞれがより説明的な名前（例えば、ビジネスユーザにとってより有意味な名前）に再命名されている。フィールド７６ｂ内に示すように、この例では、フィールド７５ｂの名前が「加入者ＩＤ」に再命名されている。概して、加入者は、システムのユーザを含み、加入者ＩＤとも呼ばれるキーによって識別される。アイコン７６ｃによって示すように、この例では、フィールド７６ｂがキーとして選択されている。フィールド７６ｅによって指定されるように、フィールド７５ｃの名前が「使用分数」に再命名されている。フィールド７６ｆ内で指定されるように、フィールド７５ｄの名前が「料金プラン名」に再命名されている。テーブル７６は、ロー７６ｇ、７６ｈも含み、そのそれぞれのコンテンツは、ロー７５ｅ、７５ｆにそれぞれ対応する。この例では、テーブル７６がシステムによってエンドユーザに提示される。データソース１４から提供されるデータの閲覧及び／又は選択を可能にするために、この例では、テーブル７６のみがエンドユーザに提示される（テーブル７３、７４、７５は、提示されない）。テーブル７６（又はテーブル７６の視覚的表現（不図示））は、データソース１４からのデータのキュレート版又はキュレート構成を表す。一部の例では、テーブル７５のキュレート版（例えば、テーブル７６）がテーブル７５内のフィールドの部分集合のみを含む場合がある。例えば、フィールド７５ｃ又は７５ｄは、テーブル７６内で除去され、テーブル７６内に含まれなくてもよい。別の例では、例えばそれらが特定の加入者ＩＤに関する複数のローである場合、テーブル７５（又はテーブル７６）内のローをピボットローであるようにユーザが選択することができる。
【００９３】
テーブル８１のビュー８３は、テーブル８１のコンテンツを示す。限定なしに且つ便宜上、本明細書では、ビュー８３及びテーブル８１をまとめて「テーブル８１」と呼ぶ場合がある。テーブル８１は、「Bndld_vc_data」のタイトルを指定するタイトル部分８３ａを含む。この例では、テーブル８１がカラム８１ｂ、８１ｃ（本明細書ではそれぞれ「フィールド８１ｂ、８１ｃ」とも呼ぶ）を含む。フィールド８１ｂ、８１ｃの名前は、それぞれ「sub_id」及び「sub_bndledvd」である。テーブル８１は、ロー８１ｄ、８１ｅも含む。一例では、タイトル及び／又はフィールドを修正及び／又は再命名できるようにするために、更に例えば様々なテーブルのフィールドを結合するときに使用されるキーであるようにフィールドの１つを指定できるようにするために、テーブル８１がユーザインタフェース内でレンダリングされる。テーブル８３は、テーブル８１の修正版である。テーブル８３は、実行システム１４からのグラフィカルユーザインタフェースデータの受信に基づいてクライアント装置８５ｂ上でレンダリングされ、グラフィカルユーザインタフェースデータはテーブル８１のコンテンツを指定する。この修正版では、部分８１ａ内で指定されていた元のタイトルが部分８３ｇ内で指定されているように「音声及びデータバンドル」のタイトルに修正されている。加えて、フィールド８１ｂ、８１ｃのそれぞれがより説明的な名前（例えば、ビジネスユーザにとってより有意味な名前）に再命名されている。フィールド８３ａ内に示すように、この例では、フィールド８１ｂの名前が「加入者ＩＤ」に再命名されている。アイコン８３ｂによって示すように、この例では、フィールド８３ａがキーとして選択されている。
【００９４】
フィールド８３ｃによって指定されるように、フィールド８１ｃの名前が「音声及びデータバンドル」に再命名されている。テーブル８３は、ロー８３ｄ、８３ｅも含み、そのそれぞれのコンテンツは、ロー８１ｄ、８１ｅにそれぞれ対応する。この例では、テーブル８３がシステムによってエンドユーザに提示される。データソース７２ｄから提供されるデータの閲覧及び／又は選択を可能にするために、この例では、テーブル８３のみがエンドユーザに提示される（テーブル７８、７９、８０、８１は、提示されない）。テーブル８３は、データソース７２ｄからのデータのキュレート版又はキュレート構成を表す。
【００９５】
図８Ａを参照すると、例えばそのデータを修正する１つ又は複数のデータソースの選択を可能にするために、グラフィカルユーザインタフェース９０がシステムによってレンダリングされている。この例では、グラフィカルユーザインタフェース９０は、レンダリングモジュール２０（図１）によってレンダリングされるグラフィカルユーザインタフェースの１つである。グラフィカルユーザインタフェース９０は、コントロール９２ａを有するメニュー部分９２を含み、コントロール９２ａの選択は、利用可能なデータソースの視覚的表現９３ａ〜９３ｄをグラフィカルユーザインタフェース９０の部分９４においてグラフィカルユーザインタフェース９０に表示させる。この例では、視覚的表現９３ａ〜９３ｄは、データソース７２ａ〜７２ｄ（図７）をそれぞれ表す。視覚的表現９３ａ及び９３ｄのそれぞれと並んだ視覚的表現９５ａ、９５ｄによって示すように、修正するためのデータ構造の選択元のデータソースとして、ユーザは、データソース７２ａ、７２ｄ（図７）又は１２、１４（図２）をグラフィカルユーザインタフェース９０によって選択する。この例では、カラム９６が選択可能なコントロール（不図示）を含み、かかるコントロールを選択することは、視覚的表現９３ａ及び９３ｄの１つ等の視覚的表現の表示を引き起こす。
【００９６】
図８Ｂを参照すると、修正しようとする（選択されたデータソースからの）１つ又は複数のデータ構造（例えば、テーブル）を選択できるようにするグラフィカルユーザインタフェース９０の発展した状態が示されている。この例では、グラフィカルユーザインタフェース９０は、コントロール９２ａを有する（例えば、図８Ａのメニュー部分９２に対応し得る）メニュー部分９２を表示し、コントロール９２ａの選択は、選択されたデータソース７２ａ、７２ｄ（図７）ごとに、そのデータソース内に含まれるデータ構造を部分９４においてグラフィカルユーザインタフェース９０に表示させる。例えば、部分９４は、カラム９５ａ〜９５ｊを含むテーブル９６を表示する。カラム９５ａは、例えば、図３又は図７において選択されるように、選択されたデータソースの名前を有する視覚的表現９６ａ〜９６ｇを表示する。視覚的表現９６ａ〜９６ｇは、例えば、キュレートのためにテーブルが選択されるデータソースとしてデータソース７２ｄを指定する視覚的表現９５ｄ（図８Ａ）に従って選択されたデータソース７２ｄを表す。視覚的表現９６ａ〜９６ｇは、例えば、キュレートのためにテーブルが選択されるデータソースとしてデータソース７２ｄを指定する視覚的表現５８（図８Ａ）に従ってデータソース７２ｄを表す。カラム９５ｂは、視覚的表現９７ａ〜９７ｇを表示し、そのそれぞれは、視覚的表現９６ａ〜９６ｇの対応するものにおいて表されるデータソース内のテーブルの名前をそれぞれ表す。カラム９５ｃは、カラム９５ｂ内で表されるテーブルのそれぞれに関するデータタイプを表示する。カラム９５ｄは、カラム９５ａ内で表されるテーブルそれぞれの説明を入力するためのコントロールを提供する。カラム９５ｅは、選択可能なコントロールを表示し、その選択は、修正のためにデータ及び／又はデータ構造が選択されるテーブルを（例えば、視覚的表現９５ｅ’、９５ｅ’’等の視覚的表現の表示によって）指定する。この例では、視覚的表現９７ｃ、９７ｆのそれぞれによって表されるテーブルが修正のために選択されるテーブルであることを指定するために、視覚的表現９５ｅ’、９５ｅ’’がカラム９５ｅ内に表示されている。
【００９７】
テーブル９６は、選択及び適用され得る特定の機能をそれぞれ指定するカラム９５ｆ〜９５ｈも含む。テーブル９６は、そのローによって表されるテーブルを、最後に更新したユーザ及び更新が行われたときを指定するデータをテーブル９６内のローごとに表示する「最終更新」カラム９５ｉを含む。テーブル９６は、テーブル９６内のローごとのコントロール（例えば、コントロール９５ｊ’、９５ｊ’’）を表す編集カラム９５ｊも含む。そのローによって表されるテーブルが編集可能であることをカラム９５ｅが指定する特定のローについて、そのローの編集カラム９５ｊ内に表示されているコントロールを選択することは、そのテーブルを編集及び修正することを可能にする。例えば、コントロール９５ｊ’を選択することは、視覚的表現９７ｃによって表されるテーブルを修正できるようにする。この例では、視覚的表現９７ｃがテーブル７５（図７）を表し、先に記載したようにテーブル７５が修正される。コントロール９５ｊ’’を選択することは、視覚的表現９７ｆによって表されるテーブルを修正できるようにする。この例では、視覚的表現９７ｆがテーブル８１（図７）を表し、先に記載したようにテーブル８１が修正される。
【００９８】
図８Ｃを参照すると、例えばセグメント化を行うための命令をユーザが生成できるようにすることにより、修正されたデータ構造からの命令のユーザによるアクセス、閲覧及び生成を可能にするためのグラフィカルユーザインタフェース１５０が（例えば、図１のレンダリングモジュール２０によって）表示されている。グラフィカルユーザインタフェース１５０は、コントロールを含むメニュー部分１５２を含み、その選択は、様々な種類の命令を生成できるようにする。この例では、メニュー部分１５２がコントロール１５４を含み、その選択は、データレコードを選択する（及び／又はそれらのデータレコードに対して操作を行う）元となる選択されたデータ構造、例えば７２ａ、７２ｄの１つ又は複数のうちの１つ又は複数のフィールドを指定できるようにする。
【００９９】
グラフィカルユーザインタフェース１５０は、データのセグメント化及び例えばフィルタリング、結合等の他の様々な操作を指定するためのエディタインタフェース１５６を含む。コントロール１５４を選択すると、コンポーネント１５８がエディタインタフェース１５６内に表示される。概して、コンポーネントは、様々な操作を行うためのセグメント化ロジック等の実行可能ロジック（又は命令）を表す。コンポーネントは、選択データ又は他の入力データ等の入力を（エディタインタフェース１５６によって）受信し、実行可能ロジックを生成する際にシステムが受信された入力を使用する。一例では、システムは、実行可能ロジック及びコンポーネント間の予め構成されたマッピングを記憶する。次いで、入力に基づいて又はコンポーネントによって指定され、（そのコンポーネントのための）実行可能ロジックがその入力を含むように更新又は修正される。コンポーネント１５８は、９７ａ〜９７ｇ等の特定のテーブル（例えば、キュレートされたテーブル）を選択するための命令を指定できるようにする。コンポーネント１５８は、アイコン１６０を含み、その選択は、特定のキュレートされたテーブルを選択できるようにする。
【０１００】
図８Ｄを参照すると、グラフィカルユーザインタフェース１７０が表示されている。グラフィカルユーザインタフェース１７０は、例えば、アイコン１６０の選択後に更新されるグラフィカルユーザインタフェース１５０（図８Ｃ）の更新版である。アイコン１６０が選択されると、オーバレイ部分１７２がグラフィカルユーザインタフェース１７０内にレンダリングされる。オーバレイ部分１７２は、（修正及びキュレートされているテーブル８３（図２）、９７ｆ（図８Ｂ）の）視覚的表現１７２ａ及び（修正及びキュレートされているテーブル７６（図７）の）視覚的表現１７２ｂを含む。この例では、視覚的表現１７２ａが選択されている。
【０１０１】
図８Ｅを参照すると、グラフィカルユーザインタフェース１７４が表示されている。グラフィカルユーザインタフェース１７４は、グラフィカルユーザインタフェース１７０（図８Ｄ）の更新版である。視覚的表現１７２ａが選択されると、オーバレイ１７６が表示される。オーバレイ１７６は、テーブル３８のコンテンツを表示し、選択可能部分１７６ａを含み、その選択は、コンポーネント１５８によって表される実行可能ロジック内に含めるために選択可能部分１７６ａ内で表されるフィールド（即ち「音声及びデータバンドルフィールド」）をユーザが選択できるようにする。オーバレイ１７６は、加入者ＩＤフィールドを表す部分１７６ｂも含む。この例では、適切な加入者に値を属させるために、選択可能部分１７６ａ内で表されるフィールド内の値を加入者ＩＤに関連付ける必要があるため、選択可能部分１７６ａの選択が部分１７６ｂの選択を自動で引き起こす。一部の例では、選択可能部分１７６ａを選択することによって選択されるフィールドに従い、コンポーネント１５８によって表される実行可能ロジックが修正又は更新される。
【０１０２】
図８Ｆを参照すると、グラフィカルユーザインタフェース１８０が表示されている。グラフィカルユーザインタフェース１８０は、グラフィカルユーザインタフェース１７４（図８Ｅ）の更新版である。この例では、コンポーネント１５８が部分１５８ａ、１５８ｂで更新されている。部分１５８ａは、コンポーネント１５８のためのタイトルを指定し、タイトルは、図８Ｅ内の選択可能部分１７６ａ内で表されるフィールドの選択に基づく。部分１５８ｂは、「音声及びデータバンドル」フィールドの値が「１」に等しいデータレコードを、例えばシステムによって受信又は記憶されたデータレコードから選択するように（コンポーネント１５８によって表される）実行可能ロジックが構成されることを指定する。より一般的な表現では、部分１５８ｂは、受信されたデータレコードの何れのものが、選択された１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応する１つ又は複数のフィールドを有するかを識別することにより、受信又は記憶されたデータレコードのセグメント化を指定する。概して、セグメント化は、指定のグループにデータレコードを割り当てること、データレコードを分割すること及び／又は指定の集合からデータレコードを排除し、他の集合にデータレコードを含めることを含む。これは、ユーザがエディタインタフェースによってデータレコードのセグメント化を「実行中に」開始できるようにする。従って、エディタインタフェースによって表示される表現は、セグメント化プロセスのための条件を設定するためのグラフィカルショートカットを提供し、それは、例えば、条件のタイプ入力等によりそれらの条件を段階的に定めることと比較して入力データレコードのより効率的（時間及び資源）なセグメント化をもたらす。全体的に、入力データレコードのセグメント化のより直接的で誤りを起こしにくく且つより迅速な制御がユーザに与えられる。図８Ｆの例では、選択可能部分１７６ａ（図８Ｅ）が選択されると、部分１５８ｂが「音声及びデータバンドルの加入者＝＿＿＿＿」の文字列で自動的にデータ投入される。この例では、グラフィカルユーザインタフェース１８０は、前述の文字列内の空のフィールド「＿＿＿＿」について「１」又は「０」の値を埋めるようユーザに促すプロンプト（不図示）を表示する。この例では、ユーザが「１」の値を選択する。この例では、前述の文字列内で参照される加入者は、部分１７６ｂ（図７）内で表される加入者ＩＤフィールドによって表される。
【０１０３】
この例では、エディタインタフェース１５６にコンポーネント１８２を追加させるためにユーザがコントロール１５４も選択する。コンポーネント１８２は、別の特定のテーブル（例えば、キュレートされたテーブル）から１つ又は複数のフィールドを選択するための命令を指定することを可能にする。コンポーネント１８２は、アイコン１８２ａを含み、その選択は、特定のキュレートされたテーブル及び／又は特定のキュレートされたテーブルからのフィールドの選択を可能にする。
【０１０４】
図８Ｇを参照すると、グラフィカルユーザインタフェース１８４が表示されている。グラフィカルユーザインタフェース１８４は、例えば、アイコン１８２ａの選択後に更新されるグラフィカルユーザインタフェース１８０（図８Ｆ）の更新版である。アイコン１８２ａが選択されると、オーバレイ部分１８６がグラフィカルユーザインタフェース１８４内にレンダリングされる。オーバレイ部分１８６は、（修正及びキュレートされているテーブル８３（図７）の）視覚的表現１８６ａ及び（修正及びキュレートされているテーブル７６（図７）の）視覚的表現１８６ｂを含む。この例では、視覚的表現１８６ｂが選択されている。
【０１０５】
図８Ｈを参照すると、グラフィカルユーザインタフェース１８８が表示されている。グラフィカルユーザインタフェース１８８は、グラフィカルユーザインタフェース１８４（図８Ｇ）の更新版である。視覚的表現１８６ｂ（図８Ｇ）が選択されると、オーバレイ１９０が表示される。オーバレイ１９０は、テーブル７６（図７）のコンテンツを表示し、選択可能部分１９０ａ、１９０ｂ、１９０ｃを含み、その選択は、コンポーネント１８２によって表される実行可能ロジック内に含めるために加入者ＩＤフィールド、使用分数フィールド及び料金プラン名フィールドをユーザがそれぞれ選択できるようにする。この例では、適切な加入者（例えば、ユーザ）に値を属させるために、選択可能部分１９０ａ、１９０ｂ内で表されるフィールド内の値を加入者ＩＤに関連付ける必要があるため、選択可能部分１９０ｂ、１９０ｃの１つ又は複数の選択が選択可能部分１９０ａの選択を自動で引き起こす。一部の例では、この例で選択されている選択可能部分１９０ｂを選択することによって選択されるフィールドに従い、コンポーネント１８２によって表される実行可能ロジックが修正又は更新される。
【０１０６】
図８Ｉを参照すると、グラフィカルユーザインタフェース１９２が表示されている。グラフィカルユーザインタフェース１９２は、グラフィカルユーザインタフェース１８８（図８Ｈ）の更新版である。この例では、コンポーネント１８２が部分１８２ｂ、１８２ｃで更新されている。部分１８２ｃは、コンポーネント１８２のためのタイトルを指定し、タイトルは、図８Ｈ内の選択可能部分１９０ｂ内で表されるフィールドの選択に基づく。部分１８２ｂは、選択可能部分１９０ｂ（図８Ｈ）内で指定される「使用分数」フィールドを含むデータレコードを、例えばシステムによって受信又は記憶されたデータレコードから選択するように（コンポーネント１８２によって表される）実行可能ロジックが構成されることを指定する。この例では、「使用分数」フィールドは、キュレートされたフィールドであり、実際のデータレコード内のフィールドの名前と実際にはマッチしない。そのため、システムは、（データレコード自体内のフィールドの実際の名前を含む）図７のテーブル７５及び（フィールドのキュレートされた名前を含む）図７のテーブル７６の複製並びにテーブル７６内のフィールド名に対するテーブル７５内のフィールド名のそれぞれの間のマッピングを記憶する。このマッピングに基づき、システムは、キュレートされたフィールド名に関する実際のフィールド名を探索する。例えば、システムは、このマッピングを使用して、部分１８２ｂ内で参照される「使用分数」フィールドが実際にはデータレコード内の「min_used」フィールドであることを識別する。
【０１０７】
図８Ｊを参照すると、グラフィカルユーザインタフェース１９４は、コントロール１９８の選択後にエディタインタフェースが結合コンポーネント２００で更新されていることを示す。この例では、結合コンポーネント２００が２つの別個のデータストリーム又はデータレコードの集合を結合するための実行可能ロジックを表す。この例では、結合コンポーネント２００は、（「音声及びデータバンドル」フィールドの値が「１」に等しいデータレコードである）コンポーネント１５８の出力と、（「加入者による使用分数」フィールド内の値を有するデータレコードである）コンポーネント１８２の出力との結合を表す。改変形態では、コンポーネント１５８の出力は、値が「１」に等しい場合、「音声及びデータバンドル」フィールド（即ち図７のフィールド８１ｃ又はフィールド８２ｃ）の値及び「加入者ＩＤ」フィールド（即ち図７のフィールド８３ａ又はフィールド８１ｂ）の関連する値である。この改変形態では、コンポーネント１８２の出力は、「使用分数」フィールド（図７のフィールド７６ｃ又はフィールド７５ｃ）の値及び「加入者ＩＤ」フィールド（即ち図７のフィールド７６ｂ又はフィールド７５ｂ）の関連する値である。結合コンポーネント２００によって表される実行可能ロジックは、コンポーネント１５８、１８２の出力を加入者ＩＤごとに結合する。この例では、コンポーネント１５８、１８２の出力を結合コンポーネント２００内に入力してコンポーネント１５８、１８２の出力を結合することを指定するために、例えばコントロール１９７を選択することによってコネクタ２０１、２０３をメニュー部分１５２から選択することができる。
【０１０８】
この例では、保存コントロール１９６を選択することによって（例えば、将来使用するために）保存することができる特定のセグメントの定義をエディタインタフェース１５６が表示し、保存コントロール１９６の選択は、セグメントを名前によって後で取得できるようにするためにセグメントの名前を入力するようユーザに促す。
【０１０９】
図８Ｋを参照すると、事前定義データ集約（「エンティティ」とも呼ぶ）の作成を可能にするためのグラフィカルユーザインタフェース２０６が表示されている。具体的には、（例えば）ユーザインタフェース２０６によって受信される命令に基づき、システムは、異なるテーブルからのデータを結合してこれらのエンティティを生成し、生成されたエンティティは、セグメント化を発生させるときに（例えば、システム経由で）利用することができる。これらのエンティティは、様々なデータを指定のカテゴリにまとめる。
【０１１０】
グラフィカルユーザインタフェース２０６は、加入者コントロール２０７ａを有するメニュー部分２０７を含み、加入者コントロール２０７ａの選択は、エンティティ部分２０８の表示を引き起こす。エンティティ部分２０８は、定められるエンティティを表示し、生成コントロール２０５を含み、生成コントロール２０５の選択は、ユーザが新たなエンティティを定めるための一連のプロンプト及びコントロールを表示する。この例では、エンティティ部分は、（例えば、加入者を表す）特定のキーに関連するハンドセット又は装置に関係するデータの集約を指定する過去に定められたエンティティの視覚的表現２０９を表示する。
【０１１１】
図８Ｌを参照すると、例えば生成コントロール２０５（図８Ｋ）を選択したときのグラフィカルユーザインタフェース２０６（図８Ｋ）へのオーバレイとしてグラフィカルユーザインタフェース２１０が表示されている。グラフィカルユーザインタフェース２１０は、新たなエンティティを生成できるようにし、作成されているエンティティの名前を指定する情報を入力するための名前部分２１０ａ、生成されるエンティティの実用上の又はデータベースのフィールド名を指定するプレフィックスを入力するためのプレフィックス部分２１０ｂ及び作成されているエンティティの説明を指定する情報を入力するための説明部分２１０ｃを含む。グラフィカルユーザインタフェース２１０は、グラフィカルユーザインタフェース２１０内で定められているエンティティ内に含まれるフィールド２１２ａ〜２１２ｊを指定するフィールド部分２１２も含む。この例では、フィールド２１２ａ〜２１２ｊは、様々なデータソース、例えば図１のデータソース１２ａ〜１２ｃ内に含まれるテーブルから選択されたフィールドである。この例では、フィールド部分２１２がカラム２１２ｋ内の（例えば、キュレートされていないテーブルからの）元のフィールド名及びカラム２１２ｌ内の修正又はキュレートされたフィールド名の両方を表示する。この例では、フィールド２１２ｈは、図２のフィールド７５ｄに対応し、フィールド２１２ｍは、フィールド２１２ｈの修正版又はキュレート版である。例えば、フィールド部分２１２がフィールドの元のフィールド名及びフィールドの修正されたフィールド名の両方によるフィールドの選択をどのように可能にするかを示すために、フィールド２１２ｍは、図７のフィールド７６ｆに対応する。フィールド部分２１２は、検索クエリ又は１つ若しくは複数の検索語を入力するための検索コントロール２１２ｎも含む。システムは、検索コントロール２１２ｎの入力を使用して、検索基準にマッチ又は対応する（データソース内のテーブルからの）フィールド名を検索する。適切なフィールドが選択されると、それらのフィールドがフィールド部分２１２内に表示される。
【０１１２】
図８Ｍを参照すると、グラフィカルユーザインタフェース２１３は、グラフィカルユーザインタフェース２０６（図８Ｋ）の修正版である。この例では、グラフィカルユーザインタフェース２１０（図８Ｌ）内で行われる指定及び選択に従って作成されるエンティティ（以下では「加入者エンリッチメントエンティティ」と呼ぶ）を表す視覚的表現２１４を表示するようにエンティティ部分２０８が更新されている。以下でより詳細に説明するように、この例では、セグメントを定義する際、ユーザに対して視覚的表現２０９、２１４内で表されるエンティティが提供される。
【０１１３】
図８Ｎを参照すると、グラフィカルユーザインタフェース２１６が表示されており、グラフィカルユーザインタフェース２１６は、グラフィカルユーザインタフェース１９４（図８Ｊ）と同じグラフィカルユーザインタフェースである。例えば、エンティティ部分２０８（図１５）内で表される事前定義エンティティにアクセスするために、メニュー部分１５２からコントロール２１８が選択される。
【０１１４】
図８Ｏを参照すると、グラフィカルユーザインタフェース２２０が表示されており、グラフィカルユーザインタフェース２２０は、グラフィカルユーザインタフェース２１６（図８Ｎ）の修正版であり、エディタインタフェース１５６内にオーバレイ部分２２２がレンダリングされている。オーバレイ部分２２２は、（図８Ｌのグラフィカルユーザインタフェース２１０内で定められる加入者エンリッチメントエンティティの）視覚的表現２２２ａ及び（図８Ｋの視覚的表現２０９によって表されるハンドセットエンティティの）視覚的表現１２２ｂを含む。例えば、加入者エンリッチメントエンティティによって指定される一定の基準を満たす加入者をエディタインタフェース１５６内で定められているセグメントに追加するために、この例では、視覚的表現２２２ａが選択されている。
【０１１５】
図８Ｐを参照すると、グラフィカルユーザインタフェース２２４が表示されている。グラフィカルユーザインタフェース２２４は、グラフィカルユーザインタフェース２２０（図８Ｏ）の修正版であり、エディタインタフェース１５６にエンティティコンポーネント２２６が追加されている。この例では、指定のフィールド（例えば、図８Ｍのフィールド２１２ｋ〜２１２ｊ）を有するデータレコードを実行時に取得する実行可能ロジックをエンティティコンポーネント２２６が表す。改変形態では、フィールド２１２ｋ〜２１２ｊ（図８Ｍ）の値及びそれらのフィールドに関連するキーの値を実行時に取得する実行可能ロジックをエンティティコンポーネント２２６が表す。この例では、エンティティコンポーネント２２６からプロファイルデータが出力され、コネクタ２２８を介してコンポーネント１５８、１８２の出力と共に結合コンポーネント２００に結合される。エディタインタフェース１５６にエンティティコンポーネント２２６を追加することにより、エンティティコンポーネント２２６によって指定される加入者、（コンポーネント１５８によって指定される）音声及びデータバンドルプランを有する加入者及び（コンポーネント１８３によって指定される）使用分数のある加入者のみを含むようにセグメント２３０が定められる。この例では、保存コントロール１９６を選択することによってセグメント２３０が（後で使用するために）保存される。この例では、保存コントロール１９６を選択することは、コンポーネント１５８、１８２、２００、２２６によって且つコネクタ２０１、２０３、２２８によって表す実行可能ロジックを、例えば他のセグメントを更に定める際に後で取得するために（例えば、データ構造内に）保存することを引き起こす。この例では、例えばセグメント２３０によって指定される定義を満たすフィールド及び／又はフィールドの値を有するデータレコードのみを含むように、メモリ１６（図１）内に記憶される複数のデータレコードをセグメント化するために、実行システム１４（図１）がセグメント２３０を実行することができる。この例では、セグメントコンポーネントの選択を可能にするセグメントコントロール２３２によってセグメント２３０にアクセスすることができる。セグメントコンポーネントは、セグメントを構築するとき、データ選択のためのソースとして既に定められているセグメントを使用することを可能にする。
【０１１６】
この例では、セグメント２３０が、セグメント化を行うために図１のセグメント化モジュール２２（又は図９のセグメント化モジュール２２）によって実行される実行可能データフローグラフである。概して、実行可能データフローグラフは、有向データフローグラフを含み、グラフ内の頂点は、コンポーネント（データファイル又はプロセス）を表し、グラフ内のリンク又は「辺」はコンポーネント間のデータフローを示す。かかるグラフベースの計算及びデータフローグラフを実行するためのシステムは、参照により本明細書に援用される「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」という名称の過去の米国特許第５，９６６，０７２号に記載されている。システム１４（図１）上で実行されるデータフローグラフとしてセグメント化を行うことにより、システム１４のシステム資源及びメモリ１６（図１）が解放され、なぜなら、システムは、データ及びデータレコードのソート、フィルタリング、結合等の機能をメモリ１６（図１）又は他のデータ記憶装置内で直接実行するのではなく、かかる機能を（データフローグラフを実行することによって）行うからである。即ち、セグメント化に必要な操作がメモリ１６内で直接実行される場合のメモリ１６の処理能力及び速度と比較して、（メモリ内のデータに対して直接操作することによってセグメント化機能を行うのではなく）データフローグラフを実行してセグメント化機能を行うことにより、メモリ１６（図１）の処理能力及び速度が増加する。
【０１１７】
一部の例では、本明細書に記載のシステムが様々なキャンペーンに関するセグメントを識別する。概して、キャンペーンとは、指定のユーザに対して例えば指定の時間に送信するための選択されたオファーの定義である。例えば、キャンペーンに割り当てられたセグメントに何れのオファーを送信するかを決定する方法をデータフローグラフの実行可能ロジックが指定する場合、データフローグラフは、キャンペーンを定めることができる。キャンペーンには、例えば、キャンペーンにおけるメンバシップを指定又は制限する命令を含む提供タイプが割り当てられる場合がある。例えば、「なし」タイプ、「グローバル」タイプ、「音声」タイプ、「データ」タイプ、「ＳＭＳ」タイプ、「パッケージ」タイプ、「リロード」タイプ等を含む様々な提供タイプがある。なしの提供タイプを有するキャンペーンは、加入者に対する制限を設けない。グローバルの提供タイプを有するキャンペーンは、加入者がそのキャンペーンに含まれ得、他のキャンペーンに同時に含まれないことを指定する。音声の提供タイプを有するキャンペーンは、加入者が１回につき音声提供タイプの単一のキャンペーンのみに含まれなければならないことを指定する。データの提供タイプを有するキャンペーンは、加入者が１回につきデータ提供タイプの単一のキャンペーンのみに含まれなければならないことを指定する。ＳＭＳの提供タイプを有するキャンペーンは、加入者が１回につきＳＭＳ提供タイプの単一のキャンペーンのみに含まれなければならないことを指定する。パッケージの提供タイプを有するキャンペーンは、加入者が１回につきパッケージ提供タイプの単一のキャンペーンのみに含まれなければならないことを指定する。リロードの提供タイプを有するキャンペーンは、加入者が１回につきリロード提供タイプの単一のキャンペーンのみに含まれなければならないことを指定する。キャンペーンを構成するとき、キャンペーンのサイクルが終了したときにキャンペーン提供から加入者を解放するかどうかをユーザが選択することができる。
【０１１８】
このシステムは、キャンペーンの目標を表すテーマ（例えば、テーマを表すデータを記憶するデータ構造）を各キャンペーンに割り当てもする。キャンペーンテーマは、優先順位を有する。以下で説明するように、システムは、接触ポリシと共にキャンペーンの調停中にこの優先順位を使用する。
【０１１９】
任意の時点において、加入者は、１つ又は複数のキャンペーンの権利を得る場合がある。多過ぎるオファーで不所望の大量のメッセージを加入者に送信せず、加入者に対する最も重要なオファーに的を絞ることが重要であり、一部の事例では管理機関によって調整されている。接触ポリシは、キャンペーン中にシステムが加入者と通信することができる頻度を管理する。接触ポリシは、システムが伝送可能なアウトバウンドオファーの数に制限を設定する。加入者が複数のキャンペーンの権利を有する場合、優先順位が高いキャンペーンを得るようにオファーを拡張できるとき、優先順位が低いキャンペーンを得るようにオファーを拡張しないように、システムは、接触ポリシ及び実行中の様々なキャンペーンの相対的な優先順位に従ってそれらのオファーを拡張する必要がある。例えば、加入者は、優先順位が高いキャンペーンの特定のステージにあったが、低エンゲージメントセグメントに該当し始める場合がある。以下で説明するように、優先順位が高いオファーを加入者に割り当てるべき場合に優先順位が低いオファーが加入者に割り当てられないことを確実にするために、システムは、キャンペーン調停命令を実行する。
【０１２０】
対象の顧客に送信可能なオファー数を接触ポリシが制限する場合、キャンペーンテーマ及び優先順位に基づいて最良のオファーを選択するために、システムは、キャンペーン調停命令を実行する。例えば、１日当たり２つのオファーのみを顧客に送信できることを接触ポリシが規定し、顧客が５つのオファーの権利を有する場合、システムは、キャンペーンテーマ及び優先順位に基づいて上位２つのオファーを選択する（例えば、システムは、他のキャンペーンの優先順位に対して上位２つの優先順位を有するキャンペーンの１つにそれぞれ関連する２つのオファーを選択する）。
【０１２１】
例えば、数千ものキャンペーンを構成する場合、優先順位が高いキャンペーンに対してシステムが与えることを望む接触ポリシの限度を、１日のうちで先に実行されることが予定されているキャンペーンが費やす可能性がある。この問題を解決するために、システムは、キャンペーンテーマの優先順位を使用して、システム内に含まれる通信サブシステムを用いて加入者のための通信スロットを確保する。概して、システムは、加入者ごとにデータ構造又は待ち行列を記憶し、メッセージが加入者にいつ伝送されるかを表すデータを用いてデータ構造内のエントリにデータ投入し、及び／又は特定のキャンペーンのためにそのエントリを確保するデータを用いてデータ構造内のエントリにデータ投入する。メッセージを送信する時間になると、その日のうちに必要な接触ポリシの限度を、優先順位が低いキャンペーンが費やさないように、システムは、その加入者に関する接触ポリシ及びデータ構造を確認する。
【０１２２】
図８Ｑを参照すると、グラフィカルユーザインタフェース２１０（図８Ｌ）内で定められる加入者エンリッチメントエンティティを修正できるようにするグラフィカルユーザインタフェース２７０が表示されている。この例では、例えば、加入者エンリッチメントエンティティの定義に１つ又は複数の追加のフィールドを加えるために作成コントロール２７２が選択されている。この例では、作成コントロール２７２が選択されると、１つ又は複数のメモリ内集約が加入者エンリッチメントエンティティに追加される。
【０１２３】
図８Ｒを参照すると、例えばグラフィカルユーザインタフェース２７０（図８Ｑ）へのオーバレイとしてオーバレイ２７４が表示されている。この例では、オーバレイ２７４は、加入者エンリッチメントエンティティ内に含めるために追加可能な様々な種類のメモリ内集約２７４ａ、２７４ｂ、２７４ｃ、２７４ｄを表示する。この例では、加入者エンリッチメントエンティティ内に含めるためにメモリ内集約２７４ｄの１つ（即ちメモリ内集約２７４ｄ’）が選択されている。この例では、メモリ内集約２７４ｄ’は、音声使用カウント（例えば、ユーザが行った音声通話の回数）を指定するメモリ内集約である。
【０１２４】
図８Ｓを参照すると、グラフィカルユーザインタフェース２７６は、グラフィカルユーザインタフェース２７０（図８Ｑ）の更新版であり、図２１のメモリ内集約２７４ｄ’の選択に従ってフィールド２７８を含むようにフィールド部分２１２が更新されている。フィールド２７８は、メモリ内集約２７４ｄ’の値を記憶し、それにより加入者エンリッチメントエンティティにメモリ内集約２７４ｄ’を追加するためのフィールドである。この例では、メモリ内集約２７４ｄ’は、音声通話量のカウントをキーごとに提供する音声使用カウントのメモリ内集約である。
【０１２５】
図８Ｔを参照すると、グラフィカルユーザインタフェース２８０は、グラフィカルユーザインタフェース２２４（図８Ｎ）の更新版であり、例えばフィルタコントロール２８４の選択後にフィルタコンポーネント２８２がエディタインタフェース１５６に追加される。フィルタコンポーネントは、指定の規則に従ってデータのフローに対してデータをフィルタするための実行可能ロジックを表す。コネクタ２８６によって指定されているように、エンティティコンポーネント２２６から出力されるプロファイルデータがフィルタコンポーネント内に入力される。この例では、エンティティコンポーネント２２６から出力されるプロファイルデータが音声使用カウントのメモリ内集約のための値を（例えば、キー値ごとに）含む。フィルタコンポーネント２８２は、出力されるプロファイルデータ内に含まれるデータレコードから、音声使用カウントのメモリ内集約の値が２の値以上であるデータレコードを除外するように構成される。この例では、加入者が２回未満の音声通話を行ったことを指定する受信されたデータレコードのみがフィルタコンポーネント２８２によって表されるロジックを通過し、なぜなら、それらのデータレコードは、加入者が２回未満の音声通話を行ったことを指定する唯一の受信されたデータレコードであるからである。フィルタコンポーネント２８２によって表される基準又はロジックを通過するデータレコードは、フィルタされたデータであり、それらは、コネクタ２８８によって指定するように結合コンポーネント２００内に入力される。エディタインタフェース１５６のコンテンツは、新たなセグメント、即ちセグメント２９０を定める。
【０１２６】
図９を参照すると、実行環境３００は、（例えば、先に説明したようにフィールドがキュレート又は修正されるデータレコードを受信するための）データソース３０３、（処理されるデータレコードを受信するための）データソース３０２を使用し、収集−検出−動作（ＣＤＡ）を実装するためのシステム３１４を含む。概して、ＣＤＡは、データレコードを収集し、それらのデータレコードを処理して、何れのデータレコードが指定の基準を満たす値を含むかを検出し、それらのデータレコードに関して１つ又は複数のアクションを実行するシステム３１４のプロセスを指す。この環境は、上記で論じたように（例えば、フィールド名を修正することによって）１つ又は複数のデータ構造を修正するために、データが提供される１つ又は複数のデータソースを選択し、それらの１つ又は複数の選択されたデータソース内の１つ又は複数のデータ構造を選択するためのデータ構造修正モジュール１８（図１）を含む、（実行モジュール１４と同様の）実行時前モジュール１４’も含む。図１で論じたように、実行時前モジュール１４’は、修正されたデータ構造の視覚的表現を（クライアント装置３０１上で表示される）ユーザインタフェース内でレンダリングするためのレンダリングモジュール２０（図１）も含む。
【０１２７】
図１０を参照すると、システム３１４は、データレコード（例えば、データソース３０２から受信されるデータレコード３０２ａ〜ｃ及び他のデータ）を収集し、データレコード３０２ａ〜３０２ｃ内のデータを変換されたデータ３０６に変換し、その変換されたデータ３０６を例えばセグメント化モジュール３２６、検出モジュール３１８及び動作モジュール３２０を含む下流のアプリケーションに分配するための収集モジュール３１６を含む。データレコード３０２ａのコンテンツは、「ＩＤ：３４２１３、イベントタイプ：音声、日付：４／３／２０１８」を含む。データレコード３０２ｂのコンテンツは、「ＩＤ：３４２１４、イベントタイプ：ＳＭＳ、日付：４／３／２０１８」である。データレコード３０２ｃのコンテンツは、「ＩＤ：３４２１５、プランタイプ：バンドルプラン、日付：４／３／２０１８」である。この例では、動作モジュール３２０がサードパーティシステム及び／又は外部システムへのインタフェースを含む。具体的には、収集モジュール３１６は、例えば、データソース３０２等の様々なソース又は様々な位置にあり、ネットワークによって相互接続される様々なサーバからのバッチ又はリアルタイムのデータ及びリアルタイムデータストリーム、例えば様々な位置にあり、ネットワークによって相互接続される様々なサーバから到来するリアルタイムデータを集める。データソース３０２を提供する記憶装置は、システム３１４にとってローカルであり得、例えばシステム３１４を実行するコンピュータに接続される記憶媒体（例えば、ハードドライブ）上に記憶されるか、又はシステム３１４にとってリモートであり得、例えばローカルエリアデータネットワーク又は広域データネットワーク上でシステム３１４と通信する遠隔システム上にホストされる。
【０１２８】
収集モジュール３１６は、受信されたデータレコード内で生じる各イベントのレコードをメモリ３２２内に記録する。先に説明したように、収集モジュール３１６は、これらの発生をデータレコード内に又はテーブル内に記録する。この例では、収集モジュール３１６は、受信イベントの発生をメモリ３２２内のハッシュテーブル内に記録する。収集モジュール３１６は、受信レコードごとに、（ｉ）複合キーを生成することによる複合キー値であって、後にハッシュされて、カラム３４６ａ内に示すようにハッシュされた複合キーが生成される、複合キー値と、（ｉｉ）カラム３４６ｂ内に示すように複合値とを生成する。この例では、集約（例えば、カウント、最小値、平均値、最大値等）を表す、受信されたデータレコード内のフィールド内に含まれるデータ及び／又は過去に記憶された（例えば、メモリ３２２又はメモリ３２４内に記憶された）データから複合値が生成される。この例では、ハッシュテーブル３４６内のエントリ３４６ｃが受信レコード３０２ａから生成される。エントリ３４６ｃを生成するために、収集モジュール３１６がレコード３０２ａ内のＩＤフィールドの値（「３４２１３」）をハッシュして「０１１１」のハッシュ値を生成し、このハッシュ値は、エントリ３４６ｃのカラム３４６ａ内に記憶される。この例では、収集モジュール３１６は、エントリ３４６ｃの複合値カラム３４６ｂ内にレコード３０２ａ内のイベントフィールドの「音声」の値を含める。収集モジュール３１６は、３４２１３のＩＤについて、エントリ３４６ｃの複合値カラム３４６ｂ内に（例えば、メモリ３２２又は永続メモリ３２４から取得される）他の集約も含める。この例では、指定の期間（例えば、過去３０日間）にわたって使用されたＳＭＳメッセージ数のカウント（「４」）を、取得された集約データが表す。この例では、ハッシュテーブル３４６は、カラム３４６ａ及び３４６ｂ内の図示の値を有するエントリ３４６ｄ、３４６ｅも含む。この例では、エントリ３４６ｄが「バンドルプラン、平均２３分」の複合値を含み、この複合値は、ハッシュ値「００１０」を有するＩＤについて、そのＩＤがバンドルプラン（その値は、受信されたデータレコードのフィールドから取得されている）に関連し、そのＩＤを有する加入者の平均分数が２３分（その値はメモリ３２２又は永続メモリ３２４から取得される集約である）であることを表す。エントリ３４６ｅは、「５０分、平均２３４０分」の複合値を含み、この複合値は、ハッシュ値「１１０１」を有するＩＤについて、そのＩＤが５０分の長さ（その値は、受信されたデータレコードのフィールドから取得されている）の現在のイベント（例えば、通話）を有し、そのＩＤを有する加入者の平均分数が２３４０分（その値は、メモリ３２２又は永続メモリ３２４から取得される集約である）であることを表す。以下でより詳細に説明するように、データレコードの何れのものが、メモリ３２２内に記憶される１つ又は複数のセグメント定義の様々な基準を満たすフィールドの値を含むかを識別することにより、セグメント化モジュール３２６がデータレコードをセグメント化する。この例では、セグメント化モジュール３２６がセグメント化ロジック３２６ａを含む。
【０１２９】
次に、図１０も参照すると、この例では、検出モジュール３１８は、例えば図１のセグメント化モジュール２２と同じであり得るセグメント化モジュール３２６内に記憶されるか又は含まれるセグメント化ロジック３２６ａを実行する。本明細書に記載の技法を使用して、セグメント化モジュール３２６は、１つ又は複数のセグメント定義を実行して、１つ又は複数のセグメント定義、例えばセグメント化ロジック３２６ａ内に含まれる様々な基準を満たす加入者（キー又は加入者ＩＤによって識別される）を識別する。例えば、セグメント化モジュール３２６は、セグメント定義の様々な基準を満たすデータレコードの部分集合を識別するために、例えばメモリ３２２又は永続メモリ３２４内に記憶されたデータレコードの１つ又は複数の集合に対してセグメント定義を実行する。概して、セグメント定義は、セグメントの定義を表すデータを記憶するデータ構造を含む。この例では、メモリ３２２が１４日間にわたるイベント発生のレコードを記憶する。１４日間よりも古いイベント発生のレコードは、永続メモリ３２４内に記憶される。
【０１３０】
一部の例では、セグメント定義は、過去１４日間のうちに発生したイベントのリアルタイムの集約（又はほぼリアルタイム（例えば、ライブタイム）の集約）を必要とする。この例では、セグメント化モジュール３２６が（セグメント定義に関する）適切なクエリ３４４ａ〜３４４ｃを生成し、そのクエリをメモリ３２２に送ることによってリアルタイムの集約を生成する。それに応答して、メモリ３２２は、クエリ３４４ａ〜３４４ｃの適切なものをハッシュテーブル３４６に対して実行する。この例では、ハッシュテーブル３４６内のそれぞれのハッシュされたキー値のそれぞれに関する複合値のそれぞれは、クエリ３４４ａ〜３４４ｃに対して返される結果である。この例では、メモリがクエリ結果３４７を返し、以下でより詳細に説明するように、クエリ結果３４７は、返却エントリ３４７ａ〜３４７ｃを含む。
【０１３１】
この例では、セグメント化モジュール３２６がレコード３０２ａのコンテンツから（及び／又はレコード３０２ａのコンテンツを表す変換されたデータ３０６内に含まれるデータから）クエリ３４４ａを生成する。この例では、レコード３０２ａがイベントタイプフィールドについて音声の値を含むことをセグメント化モジュール３２６が検出する。このフィールドに基づき、セグメント化モジュール３２６は、データレコード３０２ａ内のＩＤフィールド及びイベントタイプフィールドの値の連結である「３４２１３．音声」の複合キーを含むクエリ３４４ａを生成する。複合キーの最初の部分は、ＩＤの値を表すため、クエリ３４４ａを受信すると、メモリ３２２は、複合キーの最初の部分をハッシュするように構成される。この例では、「３４２１３」のハッシュ値は、「０１１１」であり、メモリ３２２は、返却エントリ３４７ａとしてエントリ３４６ｃをセグメント化モジュール３２６に返す。この例では、エントリ３４６ｃの値を返すとき、メモリ３２２は、ハッシュされたキー値をアンハッシュし、そのため、返却エントリ３４７ａは、「３４２１３」のＩＤ値を含む。
【０１３２】
セグメント化モジュール３２６は、レコード３０２ｂのコンテンツから（及び／又はレコード３０２ｂのコンテンツを表す変換されたデータ３０６内に含まれるデータから）クエリ３４４ｂを生成する。この例では、レコード３０２ｂがイベントフィールドについてＳＭＳの値を含むことをセグメント化モジュール３２６が検出する。このフィールドに基づき、セグメント化モジュール３２６は、データレコード３０２ｂ内のＩＤフィールド及びイベントタイプフィールドの値の連結である「３４２１４．ＳＭＳ」の複合キーを含むクエリ３４４ｂを生成する。複合キーの最初の部分は、ＩＤの値を表すため、クエリ３４４ｂを受信すると、メモリ３２２は、複合キーの最初の部分をハッシュするように構成される。この例では、「３４２１４」のハッシュ値は、「００１０」であり、メモリ３２２は、返却エントリ３４７ｂとしてエントリ３４６ｄをセグメント化モジュール３２６に返す。この例では、エントリ３４６ｄの値を返すとき、メモリ３２２は、ハッシュされたキー値をアンハッシュし、そのため、返却エントリ３４７ｂは、「３４２１４」のＩＤ値を含む。
【０１３３】
セグメント化モジュール３２６は、レコード３０２ｃのコンテンツから（及び／又はレコード３０２ｃのコンテンツを表す変換されたデータ３０６内に含まれるデータから）クエリ３４４ｃを生成する。この例では、レコード３０２ｃがイベントフィールドについてバンドルプランの値を含むことをセグメント化モジュール３２６が検出する。このフィールドに基づき、セグメント化モジュール３２６は、データレコード３０２ｃ内のＩＤフィールド及びイベントタイプフィールドの値の連結である「３４２１５．バンドルプラン」の複合キーを含むクエリ３４４ｃを生成する。複合キーの最初の部分は、ＩＤの値を表すため、クエリ３４４ｃを受信すると、メモリ３２２は、複合キーの最初の部分をハッシュするように構成される。この例では、「３４２１５」のハッシュ値は、「１１０１」であり、メモリ３２２は、返却エントリ３４７ｃとしてエントリ３４６ｅをセグメント化モジュール３２６に返す。この例では、エントリ３４６ｅの値を返すとき、メモリ３２２は、ハッシュされたキー値をアンハッシュし、そのため、返却エントリ３４７ｃは、「３４２１５」のＩＤ値を含む。
【０１３４】
クエリ結果３４７を受信すると、セグメント化モジュール３２６は、セグメント化ロジック３２６ａに対して返却エントリ３４７ａ〜３４７ｃのそれぞれを実行する。この例では、返却エントリ３４７ａがフィルタ１を通過し、従って返却エントリ３４７ａ内のＩＤによって表されるユーザがセグメント内に含まれる。この例では、返却エントリ３４７ｂがフィルタ２を通過し、従って返却エントリ３４７ｂ内のＩＤによって表されるユーザがセグメント内に含まれる。この例では、返却エントリ３４７ｃがフィルタ３を通過し、従って返却エントリ３４７ｃ内のＩＤによって表されるユーザがセグメント内に含まれる。エントリ３４７ａ〜３４７ｃのそれぞれが、セグメント化ロジック３２６ａ内に含まれるフィルタの少なくとも１つを通過することに基づき、セグメント化モジュール３２６は、（セグメント化ロジック３２６ａ内で指定される）「結合：フィルタ１の出力、フィルタ２の出力、フィルタ３の出力」のロジックを実行し、セグメント化ロジック３２６ａによって定められるセグメント内に含まれるデータレコードのＩＤフィールドの値を指定する結合データレコード３２７を生成する。以下でより詳細に説明するように、セグメント化モジュール３２６は、結合データレコード３２７を更なる処理のために論理モジュール３２８に伝送する。
【０１３５】
一部の例では、要求されたリアルタイムの集約を表す共用変数をセグメント化モジュール３２６が記憶する。セグメント化モジュール３２６は、メモリ３２２から返される値又はエントリを共用変数内に記憶し、それらは、共用変数を要求する様々なセグメント定義によってアクセス可能になる。この例では、システム３１４がディスク（例えば、永続メモリ３２４）からデータを取得する必要がないため、（例えば、ハッシュテーブル３４６からの返却エントリ内に含まれる複合値の例えば１つ又は複数の項目として）メモリ３２２から返される集約は、リアルタイムの集約（又はほぼリアルタイムの集約）である。むしろ、集約は、オンシステムメモリ（例えば、メモリ３２２）から取得され得る。加えて、システム３１４は、レコード自体を記憶するのではなく、例えばイベントの発生を記録することによって集約を事前に計算する。イベントの発生を記録することにより、システム３１４は、要求されたデータの種類にマッチする（又は対応する）名前を有するカラムを単純に識別することにより、クエリをより迅速に実行することができる。次いで、要求された集約がカウントである場合、例えば、システム３１４は、識別したカラム内の発生数をカウントすることができ、この処理は、データレコード及びデータレコード内のフィールドをくまなく構文解析してセグメントの指定の基準を満たす値を有するデータレコードを識別するのにかかる処理時間よりも短い処理時間を有する。
【０１３６】
別の例では、セグメント化モジュール３２６は、過去２０日間のうちに生じたデータレコードに関するリアルタイムの集約を要求する。そのため、システム３１４は、リアルタイムの集約を得るためにメモリ３２２及び永続メモリ３２４の両方をクエリする必要がある。この例では、システム３１４は、上記で説明したようにメモリ３２２をクエリする。システム３１４は、リアルタイムの集約に必要な基準を満たすデータを得るために（及び／又はデータの発生を得るために）永続メモリ３２４もクエリする。要求される基準に基づき、永続メモリ３２４は、データレコード内の適切な及び／又は関連するデータを（例えば、古いレコード、例えば指定の日付よりも前に受信されたレコードのコンテンツをハッシュするハッシュテーブル３２４ａから）取得し、その取得データを（ディスク上データとして）検出モジュール３１８に伝送する。
【０１３７】
この例では、永続メモリ３２４からのデータは、イベントの発生を指定するデータを含み、それらの発生は、１４日間よりも前に生じている。この例では、要求されたリアルタイムの集約（例えば、複合キー値の複合値部分に含まれる集約）を生成するために、セグメント化モジュール３２６は、永続メモリ３２４からのデータを、メモリ３２２から取得されるデータと集約する。具体的には、セグメント化モジュール３２６によって実装されるセグメント定義は、過去２０日間のうちに音声通話を４回以上行ったユーザのみがセグメントに含まれることを指定する。この例では、論理モジュール３２８によって実装される実行可能ロジックは、セグメント内のユーザのデータレコード（例えば、セグメント内のユーザを表すキーを含むデータレコード）に対して実行される。この例では、システム３１４は、特定の加入者ＩＤに関連する音声通話のカウントについてメモリ３２２をクエリする。
【０１３８】
この例では、特定の加入者ＩＤによって表されるユーザについて２回の音声通話が行われているカウントをメモリ３２２が返す。次いで、システム３１４は、（過去６日間のうちに行われた）音声通話のカウント及び関連する指定の加入者ＩＤについて永続メモリ３２４をクエリする。（例えば、ハッシュテーブル３２４ａをクエリすることに基づいて）永続メモリ３２４から返されるデータは、特定の加入者ＩＤに関連するユーザについて１回の音声通話が行われていることを指定する。そのため、ディスク上データは、特定の加入者ＩＤによって表されるユーザについて１回の音声通話が行われているカウントを指定する。検出モジュール３１８がディスク上データを受信し、特定の加入者ＩＤに関する（ディスク上データ内に含まれる）カウントを、メモリ３２２から取得される特定の加入者ＩＤに関するカウントと集約して、特定の加入者ＩＤに関連するユーザが過去２０日間のうちに通話を３回行っており、従ってセグメント定義の基準を満たし、セグメント内に含まれることを識別する。
【０１３９】
この例では、１つ又は複数のセグメント定義の基準を満たす加入者の加入者ＩＤを指定するデータ項目をセグメント化モジュール３２６が論理モジュール３２８に伝送する。この例では、データ項目のそれぞれは、システム３１４によって使用される全ての複合値を含むワイドレコードである。即ち、ワイドレコードは、システムによって使用される全てのイベント又は複合キーのワイドレコードである。この例では、先に説明したように、システムは、全ての複合キー及び関連する複合値を記憶する。しかし、システムは、システム３１４によって（例えば、セグメント化モジュール３２６、論理モジュール３２８又は動作モジュール３２０によって）実際に使用されている複合キーのみをワイドレコード内に含める。この例では、システムの性能を最適化し、データ処理に関してレイテンシの増加がないことを保証するために、システムは、何れの複合キーが使用及び／又はアクセスされているかを事前に識別し、それらのアクセスされる複合キー（及び関連する複合値）のみをワイドレコードに追加する。
【０１４０】
先に説明したように、論理モジュール３２８は、データフローグラフとして表される実行可能ロジックを記憶及び実行する。この例では、論理モジュール３２８は、セグメント化モジュール３２６内で識別される加入者の特定のセグメントに対してデータフローグラフを実行する。データフローグラフは、例えば、セグメント内に含まれる加入者の属性に基づいて様々な加入者に関して実行すべき様々なアクションを識別する。
【０１４１】
アクションを実行するための様々な基準を満たす（セグメント内に含まれる）加入者を検出すると、検出モジュール３１８は、トリガ３３２（例えば、命令又はメッセージ）を待ち行列に発行し、そのコンテンツは、動作モジュール３２０によって受信され処理される。概して、トリガ３３２は、１つ又は複数のアクションを実行するための１つ又は複数の命令を指定する。
【０１４２】
動作モジュール３２０は、テキストメッセージ又は電子メールを送信すること、案件管理システムにおけるワークオーダのチケットをオープンすること、サービスを直ちに切断すること、標的となるシステム又は装置にウェブサービスを提供すること、パケット化データを１つ又は複数の通知と共に伝送すること等、トリガされているアクションを実行する。別の例では、動作モジュール３２０が命令及び／又はメッセージのコンテンツを生成し、それらの命令（及び／又はコンテンツ）をサードパーティシステムに送信し、それを受けて、サードパーティシステムは、命令に基づいてアクション、例えばテキストメッセージの伝送、ウェブサービスの提供等を行う。一例では、動作モジュール３２０が様々な受信者のためのカスタマイズされたコンテンツを生成するように構成される。この例では、何れのカスタマイズされたコンテンツが何れの受信者に送信又は伝送されるかを指定する規則又は命令を用いて動作モジュール３２０が構成される。
【０１４３】
次に、図１１を参照すると、データ構造の属性を修正するためにデータ構造を処理するためのプロセス３５０が示されている。この処理は、エディタインタフェース内で表される複数のデータソースの１つ又は複数を選択し（３５２）、複数のデータソース内に含まれるデータの部分集合を生成し（３５４）、選択されたデータソースから１つ又は複数のデータ構造を選択し（３５６）、各データ構造は、選択されたデータ構造内の１つ又は複数のフィールドの１つ又は複数の属性を修正すること（３５８）によって修正される１つ又は複数のフィールドを含む。修正されたデータ構造をメモリ（例えば、図１のメモリ１６、又は図６のメモリ５６、又は図６のメモリ５８）内に記憶し（３６０）、選択されたデータ構造は、部分集合内に含まれる。エディタインタフェース内に表示されるのは、記憶されたデータ構造の表現である。このプロセスは、１つ又は複数の選択可能部分の選択を指定する選択データを、エディタインタフェースを通して受信し（３６４）、プロセス３５０は、受信されたデータレコードの何れのものが、選択された１つ又は複数の選択可能部分内で表される１つ又は複数のフィールドに対応する１つ又は複数のフィールドを有するかを識別することにより、複数の受信されたデータレコードをセグメント化する（３６６）。次に、図１２を参照すると、データレコードを集約するためのプロセス３８０が示されている。プロセス３８０は、１つ又は複数のデータソース、例えば７２ａ〜７２ｄ（図７）からデータレコードを断続的に受信し（３８２）、１つ又は複数のデータソースからの所与のデータレコード内の少なくとも第１のフィールド及び第２のフィールドを識別する（３８４）。プロセス３８０は、所与のレコードの第１のフィールド内の第１の値及び第２のフィールド内の第２の値の存在を検出する（３８６）。プロセス３８０は、上記で説明したように複合キー値を生成する（３８８）。このプロセスは、所与のレコードの少なくとも第１のフィールド又は第２のフィールドに関係する集約データにメモリ３２２（図７）からアクセスし（３９０）、複合キー値を生成し（３９２）、所与のデータレコードの発生を記録する（３９４）。
【０１４４】
次に、図１３を参照すると、プロセス４００が実行され、データ構造修正モジュール１８、レンダリングモジュール２０、セグメント化モジュール２２、及び複合キーモジュール３０、及び論理モジュール２５のそれぞれによって実行される機能モジュールが示されている。データ構造修正モジュール１８がデータ構造を受信し（４０２）、データ構造の視覚化のレンダリングを引き起こし（４０４）、実行システムは、データ構造修正モジュール１８内でデータ構造を修正することで生じる修正されたデータ構造４１８を受信する（４０６）。
【０１４５】
レンダリングモジュール２０は、データ構造修正モジュール１８から、修正されたデータ構造を受信し、修正されたデータ構造と共にセグメント化テンプレートのレンダリングを引き起こす（４１０）。レンダリングモジュールは、更に、セグメント化ロジックを受信し（４１２）、セグメント化ロジックをセグメント化モジュール２２に伝送する（４１４）。
【０１４６】
セグメント化モジュール２２は、セグメント化ロジックを受信し（４２０）、複合キーモジュール３０に伝送される（４２４）複合キークエリを生成する（４２２）。
【０１４７】
複合キーモジュール３０は、（例えば、図１のリポジトリ１２ａから）データレコードを受信し（４３０）、そのデータレコードから複合キー値を生成する（４３４）ことによって複合キーが生成される。複合キーモジュール３０は、（例えば、図３のデータリポジトリ１２ｅ内に）複合キー値を記憶する（４３６）。
【０１４８】
次に、図１４を参照すると、セグメント化モジュール２２、及び複合キーモジュール３０、及び論理モジュール２５のそれぞれによって実行される機能モジュールを示すプロセス４５０が示されている。複合キーモジュール３０が複合キークエリを受信し（４３８）、指定の基準を満たす複合キーを有するレコードを取得し（４４０）、取得したレコードをセグメント化モジュール２２に伝送する。セグメント化モジュール２２は、取得されたクエリされたレコードを複合キーモジュール３０から受信し（４２６）、取得されたレコードを論理モジュール２５に伝送する（４２８）。
【０１４９】
論理モジュール２５は、セグメント化モジュール２２からの伝送レコードを受信し（４５０）、コンポーネント１５８によって表す実行可能ロジック等のセグメント化ロジックによって指定されるロジックを適用し（４５２）、その後、処理から生じたデータセットを出力する（４５４）。
【０１５０】
上記の技法は、コンピュータ上で実行するためのソフトウェアを使用して実装することができる。例えば、ソフトウェアは、（分散、クライアント／サーバ、グリッド等の様々なアーキテクチャのものであり得る）１つ又は複数のプログラムされた又はプログラム可能なコンピュータシステム上で実行される１つ又は複数のコンピュータプログラムによって手続きを形成し、かかるコンピュータシステムは、少なくとも１つのプロセッサ、少なくとも１つのデータ記憶システム（揮発性及び不揮発性のメモリ及び／又は記憶素子を含む）、少なくとも１つの入力装置又はポート及び少なくとも１つの出力装置又はポートをそれぞれ含む。ソフトウェアは、例えば、チャート及びフローチャートの設計及び構成に関係する他のサービスを提供するより大きいプログラムの１つ又は複数のモジュールを形成し得る。チャートのノード、リンク及び要素は、コンピュータ可読媒体内に記憶されるデータ構造又はデータリポジトリ内に記憶されるデータモデルに準拠する他の編成されたデータとして実装することができる。
【０１５１】
本明細書に記載した技法は、デジタル電子回路又はコンピュータハードウェア、ファームウェア、ソフトウェア若しくはその組合せによって実装することができる。機器は、プログラム可能なプロセッサによって実行するために機械可読記憶装置（例えば、非一時的機械可読記憶装置、機械可読ハードウェア記憶装置等）内に有形に具体化されるか又は記憶されるコンピュータプログラム製品によって実装することができ、方法のアクションは、入力データに作用して出力を生成することにより、機能を実行するために命令のプログラムを実行するプログラム可能なプロセッサによって実行され得る。本明細書に記載した実施形態及び特許請求の範囲に記載の他の実施形態並びに本明細書に記載した技法は、データ及び命令をデータ記憶システムとの間でやり取りするために結合される少なくとも１つのプログラム可能なプロセッサと、少なくとも１つの入力装置と、少なくとも１つの出力装置とを含むプログラム可能なシステム上で実行可能な１つ又は複数のコンピュータプログラムによって有利に実装することができる。各コンピュータプログラムは、高水準手続き型プログラミング言語若しくはオブジェクト指向プログラミング言語又は必要に応じてアセンブリ言語若しくは機械言語によって実装することができ、何れにしても、言語は、コンパイラ型言語又はインタープリタ型言語であり得る。
【０１５２】
コンピュータプログラムを実行するのに適したプロセッサは、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方並びに任意の種類のデジタルコンピュータの１つ又は複数の任意のプロセッサを例として含む。概して、プロセッサは、読取専用メモリ若しくはランダムアクセスメモリ又はその両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ並びに命令及びデータを記憶するための１つ又は複数のメモリ装置である。概して、コンピュータは、データを記憶するための１つ又は複数の大容量記憶装置、例えば磁気ディスク、光磁気ディスク、光ディスクも含むか、又はそれからデータを受信するために、それにデータを転送するために若しくはその両方を行うためにそれらに動作可能に結合される。コンピュータプログラム命令及びデータを具体化するためのコンピュータ可読媒体は、半導体メモリ装置、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ装置、磁気ディスク、例えば内蔵ハードディスク又はリムーバブルディスク、光磁気ディスク並びにＣＤ  ＲＯＭディスク及びＤＶＤ−ＲＯＭディスクを例として含むあらゆる形式の不揮発性メモリを含む。プロセッサ及びメモリは、専用論理回路によって補うことができるか、又は専用論理回路に組み込むことができる。上記のものの何れもＡＳＩＣ（特定用途向け集積回路）によって補うことができるか、又はＡＳＩＣに組み込むことができる。
【０１５３】
利用者との対話を可能にするために、利用者に情報を表示するためのディスプレイ装置、例えばＬＣＤ（液晶ディスプレイ）モニタ並びに利用者がそれによりコンピュータに入力を与えることができるキーボード及びポインティング装置、例えばマウス又はトラックボールを有するコンピュータ上で実施形態を実装することができる。利用者との対話を可能にするために他の種類の装置も使用することができ、例えば、利用者に与えられるフィードバックは、任意の形式の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、触覚フィードバックであり得、利用者からの入力は、音響入力、音声入力又は触覚入力を含む任意の形式で受信され得る。
【０１５４】
実施形態は、例えば、データサーバとしてバックエンドコンポーネントを含む計算システムにより、ミドルウェアコンポーネント、例えばアプリケーションサーバを含む計算システムにより、フロントエンドコンポーネント、例えば利用者がそれにより実施形態の実装と対話することができるグラフィカルユーザインタフェース又はウェブブラウザを有するクライアントコンピュータを含む計算システムにより、又はかかるバックエンドコンポーネント、ミドルウェアコンポーネント若しくはフロントエンドコンポーネントの任意の組合せを含む計算システムにより実装することができる。システムのコンポーネントは、デジタルデータ通信の任意の形式又は媒体、例えば通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク（ＬＡＮ）及び広域ネットワーク（ＷＡＮ）、例えばインターネットを含む。
【０１５５】
システム及び方法又はその一部は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を利用するインターネット上のサーバの集合である「ワールドワイドウェブ」（ウェブ又はＷＷＷ）を使用し得る。ＨＴＴＰは、テキスト、グラフィックス、画像、音声、ビデオ、ハイパーテキストマーク付け言語（ＨＴＭＬ）、プログラム等の様々な形式の情報であり得る資源へのアクセスを利用者に提供する既知のアプリケーションプロトコルである。利用者によってリンクが指定されると、クライアントコンピュータがウェブサーバにＴＣＰ／ＩＰリクエストを行い、ＨＴＭＬに従ってフォーマットされた別のウェブページであり得る情報を受信する。利用者は、画面上の指示に従うことにより、特定のデータを入力することにより、又は選択されたアイコンをクリックすることにより、同じサーバ又は他のサーバ上の他のページにアクセスすることもできる。所与のコンポーネントに関する選択肢を利用者が選択できるようにするために、ウェブページを使用する実施形態には、チェックボックス及びドロップダウンボックス等、当業者に知られている任意の種類の選択デバイスを使用できることにも留意すべきである。UNIXマシンを含むサーバは、様々なプラットフォーム上で実行されるが、Windows 2000/2003、Windows NT、Sun、Linux、Macintosh等の他のプラットフォームも使用され得る。コンピュータの利用者は、Firefox、Netscape Navigator、Microsoft Internet Explorer、Mosaicブラウザ等のブラウジングソフトウェアを使用することにより、ウェブ上のサーバ又はネットワーク上で入手可能な情報を閲覧することができる。計算システムは、クライアント及びサーバを含み得る。クライアントとサーバとは、概して、互いに離れており、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバ間の関係を有するコンピュータプログラムによって生じる。
【０１５６】
他の実施形態も本明細書及び特許請求の範囲の範囲及び趣旨に含まれる。例えば、ソフトウェアの性質により、上記の機能は、ソフトウェア、ハードウェア、ファームウェア、ハードワイヤリング又はそれらのものの何れかの組合せを使用して実装することができる。機能の一部が様々な物理的位置に実装されるように、機能を実装する特徴は、分散させることを含めて様々な位置に物理的に配置することもできる。本明細書及び本願の全体を通して、「１つの（a）」という語を使用することは、限定的な意味で使用するのではなく、従って「１つの（a）」という語について複数の意味又は「１つ又は複数」の意味を排除することを意図しない。加えて、仮特許出願に対して優先権が主張される限り、仮特許出願は、限定的ではなく、本明細書に記載した技法をどのように実装し得るかについての例を含むことを理解すべきである。
【０１５７】
本発明の幾つかの実施形態を説明してきた。それでもなお、特許請求の範囲及び本明細書に記載した技法の趣旨及び範囲から逸脱することなしに様々な修正形態がなされ得ることを当業者は理解するであろう。
【図１】
2021533500.tif 000003
【図２】
2021533500.tif 000004
【図３】
2021533500.tif 000005
【図４】
2021533500.tif 000006
【図５Ａ】
2021533500.tif 000007
【図５Ｂ】
2021533500.tif 000008
【図６】
2021533500.tif 000009
【図７】
2021533500.tif 000010
【図８Ａ】
2021533500.tif 000011
【図８Ｂ】
2021533500.tif 000012
【図８Ｃ】
2021533500.tif 000013
【図８Ｄ】
2021533500.tif 000014
【図８Ｅ】
2021533500.tif 000015
【図８Ｆ】
2021533500.tif 000016
【図８Ｇ】
2021533500.tif 000017
【図８Ｈ】
2021533500.tif 000018
【図８Ｉ】
2021533500.tif 000019
【図８Ｊ】
2021533500.tif 000020
【図８Ｋ】
2021533500.tif 000021
【図８Ｌ】
2021533500.tif 000022
【図８Ｍ】
2021533500.tif 000023
【図８Ｎ】
2021533500.tif 000024
【図８Ｏ】
2021533500.tif 000025
【図８Ｐ】
2021533500.tif 000026
【図８Ｑ】
2021533500.tif 000027
【図８Ｒ】
2021533500.tif 000028
【図８Ｓ】
2021533500.tif 000029
【図８Ｔ】
2021533500.tif 000030
【図９】
2021533500.tif 000031
【図１０】
2021533500.tif 000032
【図１１】
2021533500.tif 000033
【図１２】
2021533500.tif 000034
【図１３】
2021533500.tif 000035
【図１４】
2021533500.tif 000036
【国際調査報告】
2021533500.tif 000037
2021533500.tif 000038
2021533500.tif 000039
2021533500.tif 000040
2021533500.tif 000041