(57)【要約】【課題】ベクトルフィールド（ベクトル場）を用いてデータを処理すること。【解決手段】一つ以上の入力値に基づいて出力値を発生する少なくとも一つ規則の実例２１０ａ−ｈを有する規則１５２を受け取ること、入力データセット１００からデータを受け取って規則１５２に基づいてそのデータを変換するための変換１１２，１５６を発生することであって、規則が出力データセット１２０における少なくとも一つの出力変数５０８，８０１に対する第１の一連の値８１３を発生し、その第１の一連の値８１３における少なくとも一つの値が第２の一連の値８１６を含むこと、及び出力データセット１２０における少なくとも一つの出力変数５０８，８０１に対応する出力フィールドを第２の一連の値８１６を格納するために提供すること、を含む方法が開示される。【選択図】図２
2014130628.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上の入力値に基づいて出力値を発生する少なくとも一つ規則の実例を有する規則を受け取ること、
入力データセットからデータを受け取るとともに前記規則に基づいて前記データを変換する変換を発生することであって、前記規則は出力データセットにおける少なくとも一つの出力変数に対する第１の一連の値を発生するものであり、前記第１の一連の値における少なくとも一つの値が第２の一連の値を含むもの、及び
前記出力データセットにおける前記少なくとも一つの出力変数に対応する出力フィールドを前記第２の一連の値を格納するために提供すること、
を含む方法。
【請求項２】
請求項１に記載の方法において、
前記変換はグラフによって表現されたグラフであって前記グラフ表現要素内の頂点を有するグラフに基づくアプリケーションの要素に含まれ、前記グラフにおける頂点間の有向リンクは要素間データの流れを表す方法。
【請求項３】
請求項２に記載の方法において、
前記変換を含む第１のグラフ要素は前記入力データセットから前記変換へのデータの流れを提供する方法。
【請求項４】
請求項３に記載の方法において、
前記第１のグラフ要素は実行可能な計算要素であり、前記グラフは前記入力データセットを表すデータ格納要素である第２のグラフ要素を含む方法。
【請求項５】
請求項１に記載の方法において、
前記出力データセットにおける少なくとも一つの出力変数に対する第１の一連の値を発生することは、出力テーブルに対して複数の行を発生することを含み、前記各行は前記出力変数を含む変数のセットに対する複数の値を有するレコードを規定する方法。
【請求項６】
請求項１に記載の方法において、
前記出力フィールドを第２の一連の値を格納するために提供することは、前記第２の一連の値の所定数を格納するためのアレイを提供することであり、前記所定数はユーザが特定する数に修正可能なデフォルト数である方法。
【請求項７】
請求項１に記載の方法において、
前記出力フィールドはテーブルにおけるセルを含む方法。
【請求項８】
請求項１に記載の方法において、
前記規則を受け取ることは、規則テーブルの少なくとも１行を受けとることを含み、前記行は一つの規則の実例に対応し、前記入力値の一つ以上の組合せ、所定値又は前記入力値の一つ以上から計算された値を含む出力を有する方法。
【請求項９】
請求項８に記載の方法において、
前記規則の実例は、
しきい値に等しい入力値を有すること、しきい値より大きい入力値を有すること、しきい値より小さい入力値を有すること、複数の値のセットに属する入力値を有すること、複数の値のパターンに合致する入力値を有すること、他の入力値と関係を有すること、他の規則のセットの出力値と関係を有すること、及び、メモリ内の値と関係を有すること、
の少なくとも一つ以上を含む方法。
【請求項１０】
請求項１に記載の方法において、
前記入力データセットはスカラ変数及びベクトル変数に対する値を有するレコードを含む方法。
【請求項１１】
請求項１０に記載の方法において、
前記レコードの少なくとも一つは所定数のレコードを格納するアレイを含み、前記所定数はユーザが特定した数に修正可能なデフォルト数である方法。
【請求項１２】
請求項１０に記載の方法において、
前記レコードの少なくとも一つは、前記レコードの少なくとも一つにおけるサブレコードとのキー関係を規定する内部参照テーブルを含む方法。
【請求項１３】
請求項１２に記載の方法であって、
規則に応答して、前記内部参照テーブル内の前記キー関係に基づいて前記出力データセットにおける前記出力変数に対して前記第２の一連の値を発生することを含む方法。
【請求項１４】
請求項１に記載の方法であって、
規則内の規則の実例に応答して、前記規則の実例をトリガして前記出力データセットにおける前記出力変数に対する値を発生することを含む方法。
【請求項１５】
請求項１４に記載の方法において、
前記規則の実例をトリガすることは、前記規則における前記少なくとも一つの規則の実例を満足する前記入力データセットにおけるスカラ値に基づいて前記規則の実例をトリガすることを含む方法。
【請求項１６】
請求項１４に記載の方法において、
前記規則の実例をトリガすることは、前記規則における前記少なくとも一つの規則の実例を満足する前記入力データセットにおけるベクトル内の各値に基づいて前記規則の実例をトリガすることを含む方法。
【請求項１７】
請求項１４に記載の方法において、
前記規則の実例をトリガすることは、前記規則における前記少なくとも一つの規則の実例を満足する前記入力データセットにおけるベクトルに適用された集約関数の出力に基づいて前記規則の実例をトリガすることを含む方法。
【請求項１８】
請求項１に記載の方法において、
前記変換を発生することは、前記規則の複数の規則の実例の各々を論理式に変換して複数の論理式を形成すること、及び、前記複数の論理式をコンピュータが実行可能なコードに翻訳することを含む方法。
【請求項１９】
請求項１８に記載の方法において、
前記複数の論理式を翻訳することは、複数の論理式を組合せること、個々の論理式を最適化すること及び複数の論理式のグループを最適化すること、の一つ以上を含む方法。
【請求項２０】
データの流れを表すリンク要素によって接続されたデータ処理要素を有するグラフに基づく計算における要素を更新するためのコンピュータプログラムを格納するコンピュータ読出し可能媒体であって、コンピュータを動作させるための命令を含む前記コンピュータプログラムは、
一つ以上の入力値に基づいて出力値を発生する少なくとも一つ規則の実例を有する規則を受け取る命令、
入力データセットからデータを受け取って前記規則に基づいて前記データを変換する変換を発生する命令であって、前記規則が出力データセットにおける少なくとも一つの出力変数に対する第１の一連の値を発生することを含み、前記第１の一連の値における少なくとも一つの値が第２の一連の値を含むものである、命令、及び
前記出力データセットにおける前記少なくとも一つの出力変数に対応する出力フィールドを前記第２の一連の値を格納するために提供する命令、
を含むコンピュータ読出し可能媒体。
【請求項２１】
一つ以上の入力値に基づいて出力値を発生する少なくとも一つ規則の実例を有する規則を受け取る手段、
入力データセットからデータを受け取って前記規則に基づいて前記データを変換する変換を発生するように構成されたプロセッサであって、前記規則が出力データセットにおける少なくとも一つの出力変数に対する第１の一連の値を発生することを含み、前記第１の一連の値における少なくとも一つの値が第２の一連の値を含む、プロセッサ、及び
前記出力データセットにおける前記少なくとも一つの出力変数に対応する出力フィールドを前記第２の一連の値を格納するために提供する手段、
を含むシステム。
【請求項２２】
請求項１４に記載の方法において、
前記規則の実例をトリガすることは、前記入力値によって、予め定められた一つ以上の規準を満たすことを含む方法。
【請求項２３】
請求項１に記載の方法であって、
前記入力値に応答して前記規則に属する二つ以上の規則の実例をトリガすること、及び
前記第２の一連の値として前記トリガされた二つ以上の規則の実例に各々対応する二つ以上の出力値を前記変換によって発生すること、
を含む方法。
【請求項２４】
請求項２３に記載の方法であって、
前記入力値に応答してトリガされた前記二つ以上の規則の実例を点検する能力をユーザに提供すること、を含む方法。
【請求項２５】
請求項１に記載の方法において、
前記少なくとも一つの規則の実例は一つ以上の規準を含み、前記基準は前記入力値によって同規準が満たされたときに前記変換によって一つ以上の出力値を発生させる方法。
【請求項２６】
請求項１に記載の方法であって、
前記第２の一連の値に対して実行された動作に対応する前記出力データセットうちのスカラ値を格納すること、を含む方法。
【請求項２７】
請求項１に記載の方法であって、
カーソルを前記出力フィールド上に位置させたときに前記第２の一連の値をツールの先端の形で表示することを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はベクトルフィールド（ベクトル場）を用いてデータを処理することに関する。
【背景技術】
【０００２】
いくつかコンピューティングシステムは種々のデータ処理アプリケーションにおいてなされる自動的な決定に用いられる規則を特定するためのインタフェイスを提供する。例えば、クレディットカードの取引又は頻繁に飛行機を利用する人のための(frequent flyer)プログラムを表現するデータの処理に関連した決定は所与の規則のセットによって管理され得る。幾つかの場合において、これらの規則は人間が読み取れる形式で記述される。コンピューティングシステムは、ユーザがこれらの規則を定義又は編集するためのインタフェイスを提供し、次に、これらの規則をデータ処理システムに組み入れる。
【発明の概要】
【０００３】
一態様において、一般に、方法は、一つ以上の入力値に基づいて一つの出力値を生成する少なくとも一つの規則の実例（rule case）を有する規則を受け取ること、入力データセットからデータを受け取り且つ出力データセットにおける少なくとも一つの出力変数に対する第１の一連の値を発生することを含む前記規則に基づいて前記データを変換する変換を発生することであって前記第１の一連の値における少なくとも一つの値が第２の一連の値を含むこと、及び前記出力データセットにおける前記少なくとも一つの出力変数に対応する出力フィールドを前記第２の一連の値を格納するために提供すること、を含む。
【０００４】
複数の態様は一つ以上の以下の特徴を含むことができる。
【０００５】
前記変換はグラフによって表現されるグラフに基づくアプリケーション（graph-based application）の要素（component）に含まれ、前記グラフは前記グラフの表現要素内に頂点を有し、前記グラフにおける頂点間の有向リンクは要素間のデータの流れを表す。
【０００６】
前記変換を含む第１のグラフ要素は、前記入力データセットから前記変換へのデータの流れを提供することができる。
【０００７】
前記第１のグラフ要素は実行可能な計算要素であり、前記グラフは前記入力データセットを表現するデータ格納要素である第２のグラフ要素を含むことができる。
【０００８】
一つの出力データセットにおける少なくとも一つの出力変数に対する第１の一連の値を生成することは、一つの出力テーブルに対して複数の行を生成することを含み、前記行のそれぞれは前記出力変数を含む変数のセットに対する複数の値を有するレコードを定義（規定）する。
【０００９】
前記出力フィールドを前記第２の一連の値を格納するために提供することは、前記第２の一連の値の所定数を格納するためのアレイを提供することを含み、前記所定数はユーザが特定した数に修正可能なデフォルト数である。前記出力フィールドはテーブルにおけるセルを含むことができる。
【００１０】
前記規則を受け取ることは、規則テーブルの少なくとも１行を受け取ることを含むことができ、その行は一つの規則の実例に対応しており、前記入力値の一つ以上もしくは組合せ、所定値又は、前記入力値の一つ以上から計算された値を含む出力を有する。
【００１１】
前記規則の実例は、しきい値に等しい入力値を有すること、しきい値より大きい入力値を有すること、しきい値より小さい入力値を有すること、値のセットに属する入力値を有すること、値のパターンに合致する入力値を有すること、他の入力値と関係を有すること、他の規則のセットの出力値と関係を有すること、及び、メモリ内の値と関係を有すること、の少なくとも一つ以上を含むことができる。
【００１２】
前記入力データセットは、スカラ変数の値及びベクトル変数の値を有するレコードを含むことができる。前記レコードの少なくとも一つは、所定数のレコードを格納するアレイを含むことができ、前記所定数はユーザが特定した数に修正可能なデフォルト数である。前記レコードの少なくとも一つは、前記レコードの少なくとも一つにおけるサブレコードとのキー関係を規定する内部参照テーブルを含む。
【００１３】
前記方法は、規則に応答して、前記内部参照テーブルにおける前記キー関係に基づいて前記出力データセットにおける前記出力変数に対して前記第２の一連の値を提供することを含むことができる。
【００１４】
前記方法は、更に、規則における規則の実例に応答して、前記規則の実例をトリガすることを含み、前記出力データセットにおける前記出力変数に対して値を発生することができる。規則の実例をトリガすることは、前記規則における前記少なくとも一つの規則の実例を満足する前記入力データセットにおけるスカラ値に基づいて前記規則をトリガすることを含むことができる。
【００１５】
規則をトリガすることは、前記規則における前記少なくとも一つの規則の実例を満足する前記入力データセットにおけるベクトル内の各値に基づいて前記規則をトリガすることを含むことができる。
【００１６】
規則の実例をトリガすることは、前記規則における前記少なくとも一つの規則の実例を満足する前記入力データセットにおけるベクトルに適用される集約関数の出力に基づいて前記規則の実例をトリガすることを含むことができる。
【００１７】
前記変換を発生することは、前記規則内の複数の規則の実例の各々を論理式に変換して複数の論理式を形成すること、及び、その複数の論理式をコンピュータが実行可能なコードに翻訳（コンパイル）することを含むことができる。
【００１８】
前記複数の論理式を翻訳（コンパイル）することは、複数の論理式を組合せること、個々の論理式を最適化すること、及び、論理式のグループを最適化すること、の一つ以上を含むことができる。
【００１９】
他の態様において、一般に、
データの流れを表すリンク要素によって接続されたデータ処理要素を有するグラフに基づく計算における要素を更新するためのコンピュータプログラムを格納するコンピュータ読出し可能媒体であって、コンピュータを動作させるための以下の命令を含む。
一つ以上の入力値に基づいて出力値を発生する少なくとも一つ規則の実例を有する規則を受け取る命令；入力データセットからデータを受け取って前記規則に基づいて前記データを変換する変換を発生する命令であって、前記規則が出力データセットにおける少なくとも一つの出力変数に対する第１の一連の値を発生することを含み、前記第１の一連の値における少なくとも一つの値が第２の一連の値を含むものである、命令；及び、前記出力データセットにおける前記少なくとも一つの出力変数に対応する出力フィールドを前記第２の一連の値を格納するために提供する命令。
【００２０】
他の態様において、システムは、
一つ以上の入力値に基づいて出力値を発生する少なくとも一つ規則の実例を有する規則を受け取る手段、入力データセットからデータを受け取って前記規則に基づいて前記データを変換する変換を発生するように構成されたプロセッサであって、前記規則が出力データセットにおける少なくとも一つの出力変数に対する第１の一連の値を発生することを含み、前記第１の一連の値における少なくとも一つの値が第２の一連の値を含む、プロセッサ、及び、前記出力データセットにおける前記少なくとも一つの出力変数に対応する出力フィールドを前記第２の一連の値を格納するために提供する手段、を含む。
【００２１】
本発明の他の特徴及び利点は以下の説明及び特許請求の範囲の請求項から明らかになるであろう。
【図面の簡単な説明】
【００２２】
【図１】変換の例を示す概略図である。
【図２】変換発生器の例である。
【図３】規則セットの例である。
【図４】規則セットの例である。
【図５】多数回発火型（Fire-Many）規則セットの例である。
【図６】出力、規則及び結果タブの例である。
【図７】出力、規則及び結果タブの例である。
【図８】出力、規則及び結果タブの例である。
【図９】スカラ及びベクトルの計算を示す概略図である。
【図１０Ａ】レコードベクトルを有する入力レコードの例を示す。
【図１０Ｂ】レコードベクトルを有する入力レコードの例を示す。
【発明を実施するための形態】
【００２３】
ビジネス規則は規準のセットとして表現でき、例えば、これらの規準を用いてデータを一つのフォーマットから他のフォーマットへと変換し、データについて決定をし、または入力データのセットに基づいて新しいデータを発生することができる。例えば、図１において、飛行機予約システムにおけるレコード１０２は、搭乗者名前１０４、その搭乗者が本年に飛行したマイル数１０６、その搭乗者の搭乗券のクラス１０８及び飛行機におけるその搭乗者の現在の横列(row）１１０を示す。ビジネス規則は、このような搭乗者が搭乗グループ“１”つまりグループ１１８内に分類されるべきであることを指示することができる。ビジネス規則は一般に人間が理解し易くなっており、例えば“ファーストクラス搭乗者はグループ１”となっているが、データ処理に使用され得るようになる前にコンピュータが理解できる言語に翻訳される必要がある場合がある。従って、ビジネス規則を履行するために、一つ以上のデータソース（例えば、入力データセット１００）から一つの入力レコード（例えば、レコード１０２）を受け取り、且つ、搭乗者の名前１０４及びグループ１１８を示す出力レコード（例えば、レコード１１４）を出力データセット１２０内に生成する、変換１１２が発生される。入力データセット及び出力データセットは、データストリームとも称呼される。
【００２４】
非技術的なユーザに対して変換１１２の生成を簡単にするために、典型的には、ビジネス規則のセット（一つの規則のセット又は複数の規則のセットとも称呼される）をユーザに馴染みのあるフォーマットで入力するための編集ツール（図示せず）が提供される。その規則のセットは、順々に、コンピュータシステムに変換１１２を発生するように指示し、変換１１２は更にコンピュータシステムに入力データセット１００をどのように処置すべきか及び出力データセット１２０内に何を生成すべきかを指示する。単一の変換に対応する一つの規則もしくは規則セットは、入力レコードに依存する規則セットの出力変数に対して異なる値を計算する一つ以上の規則の実例(rule case）を含むことができる。規則における規則の実例がトリガされると、その規則、特に、規則の実例は発火（fire）されたとみなされる。例えば、規則における唯一の規則の実例が記録（file）され得る。幾つかの例では、規則の実例が発火されると、規則全体が発火されているとみなすことができる。幾つかの実施形態においては、例えば、入力データセットにおける入力スカラもしくはベクトル値がその規則の実例又は規則における一つ以上の条件を満たせば、その規則の実例又は規則は、トリガ又は発火される。また、規則セットは他の規則セットを含むことができる。この他の規則セットは、付加的又は代替的な出力変数に対して値を生成できる。例えば、規則セットは、“含まれた”規則セットと称呼される他の規則セットを直接含むか又は間接的に参照することができる。
【００２５】
変換を発生するシステムの例は図２に示される。発生器１５０は、エディタ１５４から規則セット１５２を入力として受け取り、変換１５６を発生する。発生した変換１５６は、システムのアーキテクチャと変換及びビジネス規則の目的とに依存してグラフに用いられる要素として又はグラフ自身全体としてグラフに基づく計算システム１５８に提供される。グラフに基づく計算システム１５８は、プログラマが要素を構築ブロック（ビルディングブロック）として用いることによりグラフに基づくアプリケーションを構築することを可能にする計算環境を提供することができる。グラフに基づくアプリケーションは、しばしば有向グラフによって表現される。有向グラフは、グラフにおいて要素を表す頂点（データ格納要素又は実行可能な計算要素）を有し、グラフにおいて要素間のデータの流れを表す有向リンク又は“辺（edges）”を有する。データフローグラフ（単に“グラフ”とも称呼される。）は、モジュールのエンティティ（modular entity）である。各グラフは、一つ以上の他のグラフによって構成することができ、また、特別のグラフはより大きなグラフにおける一つの要素であり得る。
【００２６】
発生器１５０は、例えば、標準ツールを用いて規則セット１５２を受取って変換１５６を出力するように構築された、コンパイラ、特注のプログラム、又はグラフに基づく計算とすることができる。変換１５６を生成し次いで変換１５６を更新するための当業者に知られた如何なる技術を用いても変換１５６を発生できる。例えば、変換を生成する技術は２００７年４月１０日出願の米国特許出願第１１／７３３，４３４号、発明の名称「ビジネス規則の編集及びコンパイリング」に記載され、参考のためにこの全体がこの明細書に組み入れられる。
【００２７】
幾つかの例において、変換１５６は、入力レコード１０２に対応する出力変数のための唯一の値を発生する。このようなスキームにおいては、規則セットは多くとも１回しか発火できない。従って、幾つかの問題（例えばデータ品質問題）は、変換１５６を用いては容易には実現することができない。幾つかの例において、出力データセット１２０内の出力変数は「一回だけ書き込める出力（Write-Once Outputs）」を含むことができる。一般に、「一回だけ書き込める出力」は通常、所与の一つの入力レコードに対して１回のみ書込まれる複数の出力変数であり、その所与の一つの入力レコードに対して唯一の値を格納する。このような変数を発生する規則セットは「一回発火型（Fire-Once）」規則と呼ばれる。
【００２８】
幾つかの例において、「多数回発火型（Fire-Many）」規則は「アキュムレータ」出力変数、例えば、与えられた一つの入力レコードに対して唯一の値の代りに一連の値を受けることができる変数、を発生できる。「多数回発火型」規則は、トリガされた最初の規則の実例だけでなく、その入力レコードに対してトリガされた規則セット内の総ての規則の実例に対して発火するだろう。
【００２９】
幾つかの例において、一つの規則セットは、図３に示したように、セル内で交差する行及び列を有する表形式の（又は、「スプレッドシート」の）フォーマットで入力することができる。テーブル２００におけるトリガ列２０２、２０４、２０６、２０８は、利用可能な入力データ値に対する規準に対応し、行２１０ａ−ｈは規則の実例（即ち、利用可能な入力データ値に関係する規準のセット）に対応する。トリガの列と当てはまる規則の実例の行２１０ｎとが交差する位置のセルは、そのトリガの列及び規則の実例に対する一つの規準を含む。規則の実例が規準を有する各トリガ列に対して図１の与えられたレコード１０２のデータ値がそのトリガする規準に合致すれば、規則の実例２１０ｎはその与えられたレコード１０２に適用する。規則の実例２１０ｎを適用すると、出力は一つ以上の出力列２１２に基づいて発生される。上述したように、一般に、入力関係をすべて満足している規則の実例は「トリガされた」と称呼され、その規則セットは「発火された」と称呼される。各出力列２１２は可能性のある出力変数に対応し、その列２１２とその当てはまった規則の実例の行２１０ｎとが交差する位置の対応するセルにおける値は（その変数に対してあれば）その出力を決定する。幾つかの例において、セルはその変数に割当てられた値を含むことができ、或いは、そのセルは以下に説明するようにその出力値を発生するように値が求められる数式（表現）を含むことができる。図３においては唯一の出力列しか示されていないが、幾つかの例においては二つ以上の出力列が存在するであろう。
【００３０】
トリガ列には幾つかの異なるタイプ（例えば、一つ変数に対応する複数の列、一旦計算された後に変数のように取り扱われる数式、及び、数式のみを含む列を含む。）が存在するであろう。数式のみを含む列は、ある点で、変数に対応する列又は変数として取り扱われる列よりも簡素である。このようなトリガ列は、例えば、トリガ列の規準を規定するための以下のタイプのセル値を含むことができる。
・数式。その数式の値が０でない又は非空値であれば、条件が真と考えられる。
・キーワード「何でも（any）」又は空ストリング。条件は常に真である。トリガ列における各空セルはキーワード「何でも（any）」を明示的に含んでいるセルと等価である。
・キーワード「それ以外（else）」。「それ以外（else）」を含むセルの上のセルのいずれも真でなければ、左側のすべてのセルが同一である行において条件は真である。
・キーワード「同一（same）」。上のセルが真であれば、条件は真である。
【００３１】
一つの変数（複数の列変数）に対応する複数の列は２つのタイプのセルを有することができる。セルの一つのタイプは数式セルである。このようなセルは正に上述したように複数の数式のみを含む１列におけるセルのようにふるまう。しかしながら、キーワード“この（this）”は、その列変数を参照する数式において用いられ得る。セルの他のタイプは比較値である。比較値の文法例は次のとおりである。
比較値::=複合値(“または”複合値)*
複合値::=単純値(“かつ”単純値)*
単純値::=[“否”](数値式|単純関数|会員式)
値表現::=[演算子]値要素
演算子::=“>”|“<”|“>=”|“<=”|“!=”|“=”|“等しい”
値要素::=定数|定数|変数|“(“数式”)”
単純関数::=“空である”|“空白である”|“有効である”|“定義される”|“ｂゼロ（bzero）である”
会員式::=“中（in）”“[“値要素((“,”|“へ（to）”|“又は”) 値要素)*”]”
但し、“*”は用語が１回以上繰返されることを意味する。
【００３２】
他の適切なプログラム言語あるいは構文を用いることができる。例として、Ｃ、Ｊａｖａ（登録商標）、ＤＭＬ又はＰｒｏｌｏｇがある。列変数は、演算子、関数又は会員式に従って比較値と比較される。図３の例では、最初の２つの列２０２，２０４は、“>=” 演算子を有する比較値を含む。従って、その列の値が対応する値より大きいか等しければその規準は満足される。「座席のクラス」の列のように、演算子がなければ、（演算子は）「等しい（equals）」と見做される。いかなるプログラム言語又は構文が基礎となる（underlying）システムに使用されていようと、定数は如何なる合法的な（legal）定数とすることができる。数式は、列変数と比較されることになる互換性のあるデータタイプを戻すように用いられるその言語において合法的な如何なる数式とすることができる。幾つかの例では、比較値内部の数式は不明瞭さを避けるために括弧で括ってある。
【００３３】
図３の例において、第１の行２１０ａは唯一の列２０２内に規準を有し、この規準は、旅行者の頻繁に飛行機を利用する人の飛行マイルの合計数が１，０００，０００よりも大きければ、他の列がどんな値であろうともその規則の実例が当てはまることを示している。その場合、そのユーザの「搭乗グループ」出力変数はグループ１に設定される。同様に、第２の規則の実例２１０ｂは、ファーストクラスのいかなる搭乗者もグループ１に属することを示している。幾つかの例においては、複数の規則は順番に評価されるので、従って、１，０００，０００マイルを超え且つファーストクラス券の搭乗者はグループ１に属するであろうが、第１の規則の実例２１０ａのみがトリガされるであろう。
【００３４】
また、規則の実例２１０ａ−ｈ（図３）は、個別の単純な規則として表現されることができ、図４に示したように、規則のそれぞれは、それ自身の固有のテーブル（表）中に表現される。規則２２０ａ−ｄは図３の行２１０ａ−ｄにそれぞれ対応し、規則２２０ｅは行２１０ｅ−ｈに対応する四つの規則の実例を有する。ユーザは、図３に示した全体のテーブルを発生するよりはむしろ、これらの個々の規則を個別に生成するであろう。各規則の実例は、総てのトリガ列に対して一つの値を（少なくとも内在的に）含み、且つ、総ての出力列に対して一つの値（この値は空白、即ち、効率的に「何でも」に設定され得る。）を含む。複数の規則が同一の出力を発生するとき、その規則は順序付けされ、その規則は、一つの規則における一つの規則の実例がその入力をトリガして出力を発生するまで順に考慮される。一つの規則においてトリガする規則の実例がなければ、同一の出力を発生する次の規則が処理される。いずれの規則においても、出力のためにトリガする規則の実例がなければデフォルト値を用いる。
【００３５】
幾つかの例において、編集ツールのユーザインタフェイスを用いて数式を含むセルを図形的に特定（識別）することができる。従って、ユーザは、それ自身で真偽が評価される数式と、列変数と比較される値を戻す数式と、の相違を理解できる。ユーザがタイピングしているときに、ユーザは特定のセルが数式セルとすべきことを、例えば始めにアスタリスクをタイプすることによって、示すことができる。
【００３６】
出力変数に対応する列に対してセルは次のものの一つを含むことができる。
・値。出力変数に割当てられる値である。
・数式。その数式の値が出力変数に割当てられる。数式が空であるという値を出すならば、その出力フィールドが空にはなれないのでない限り、そのフィールドは空の値を得る。どちらの場合でも、エラーが発生させられる。
・キーワード“空”。出力フィールドが空になれるのであれば、そのフィールドには空が割当てられる。それ以外は、エラーが発生させられる。
・空ストリング。出力フィールドがデフォルト値を有すれば、そのデフォルト値が割当てられる。そうでなければ、そのセルは、そのセルがキーワード“空”を含むかのように取扱われる。
・キーワード“同一”。出力フィールドにはその上のセルにおいて計算された同一の値が割当てられる。
【００３７】
数式に加えて、ユーザは規則内のいかなるセルにもコメントを付け加えることができ、そのコメントはユーザインタラクション（例えば、クリック又はポインタを「うろつかせる（hovering）こと」）に応答して表示され得る。
【００３８】
幾つかの実施態様においては、一つの規則セット（例えば、以下の表１に示したルール）は単一の入力レコードに対して複数の出力レコードを発生する複数の規則の実例を含むことができる。
【表１】
2014130628.tif 000003
【００３９】
上述の規則セットは、家族の予算の観点から家族の自動車選択を考慮して自動車のトリムレベル（調整レベル）を出力する。このような規則セット（「標準化する規則セット」と称呼する。）の例においては、出力値の少なくとも一つはキー出力値（例えば「Ｓ２０００ＣＲ」として特定される。キー出力値「Ｓ２０００ＣＲ」を計算する規則の値を求めるとき、出力値「Ｓ２０００ＣＲ」を発生した入力データレコードによりトリガされた規則の実例（自動車選択：ホンダＳ２０００、及び、予算:>=３７０００）が注目される。次に、その規則セットは、先にトリガされた規則の実例（自動車選択：ホンダＳ２０００、及び、予算:>=３７０００）を無能化して再び評価され、他の規則の実例がトリガして出力値を出力するか否かを調べる。上述の処理をトリガされる更なる規則の実例がなくなるまで繰返す。各出力値は別個の出力レコードとして格納される。幾つかの例において、グループ内の一つがトリガすれば、そのグループ内の他の規則の実例は同一の入力レコードに対する次の繰返し時に無能化されるように、規則の実例がグループ化される。
【００４０】
幾つかの例において、標準化する規則セットに対応する変換は２段階の処理を用いることができる。第１に、入力レコードが読まれ、例えば「長さ」関数を呼出すことによって総数（カウント、count）が計算される。この総数は、発生されるであろう出力レコードの数に対応する。次に、各出力レコードに対して他の関数、即ち、「標準化（normalize）」 関数が呼び出される。標準化関数は、入力レコードのコピー及び長さ関数によって発生された総数から現在のインディックスを受取り、出力値を異なる出力レコード内に発生する。例えば、入力レコードが家族の大きさ四（４）及び予算＄２０，０００を有すれば、変換は三つの出力レコードを発生する。三つの出力レコードは、３つの提案車（アコードセダン、シビック及びエレメント）のそれぞれに対して一つずつである。
【００４１】
ある実施態様において、変換は、「長さ」関数を用いて自動車選択に対する総ての可能な複数の値を計算し、この結果、出力レコードの数が分かる。一旦、変換がすべての可能な自動車出力値を計算すると、次に、変換は出力レコード数だけ「標準化」 関数を呼び出して前記複数の値を各出力レコードに割当てる。
【００４２】
幾つかの実施態様において、上述の２段階処理の代りに、変換は、計算する値がなくなるまで「標準化」 関数を直接複数回呼び出すことによって自動車選択のための総ての可能性のある値を計算することができる。
【００４３】
図５は出力変数５０８に対する複数の値５０４を発生するための規則セット５００の例を示す。ユーザは、ある特定の車両が無効であると考えられた第１の理由だけではなく総て理由を知ることに興味があるだろう。幾つかの例において、図６に示したように、第１のステップは、ユーザがエディタのユーザインタフェイスの出力タブ６００を用いて規則セット５００が複数の出力値５０４を発生することを特定する。
【００４４】
このようなものとして、ユーザは、出力変数５０８「名前有効メッセージ」が一連の値５０４を受け取るためのアキュムレータ変数であることを示す。出力変数５０８に対応する出力タイプ６０４は「アキュムレータ」６０８を示すように変化する。
【００４５】
幾つかの例において、出力変数５０８に対応するスカラ値は「スコアーカード」スタイルの規則セットとともに使用するために「蓄積」され得る。スコアーカードスタイルの規則セットは、ユーザが正又は負のスコアを規則値に含めるべきと指定するビジネス規則のタイプを参照する。従って、出力ベクトルとしての出力変数５０８に対応する値を格納するよりもむしろ、出力変数５０８に対応して蓄積された値の合計をスカラ値として格納する。
【００４６】
幾つかの例において、アキュムレータ出力変数５０８は出力データセット内の各レコードに対する可変長ベクトル又はアレイに配置される（map）。そのようなものとして、出力変数５０８をアレイとして取扱えば、ユーザは出力変数５０８のサイズを特定できる。ユーザは最大総数６１２のパラメータを変化させることによって出力変数５０８の長さを特定できる。従って、フィールド６１４は、出力変数５０８がある数（例えば、２０）の値を受け取るためのアレイとして取扱われることを示す。幾つかの例において、ユーザが特定するサイズが存在しないときには、デフォルトによって出力変数５０８は制限のない数の値を受け取ることができる。そのようなものとして、最大総数６１２のパラメータは、例えば、「制限なし」を示す。幾つかの例において、アキミュレータタイプの出力変数を一度だけ書き込めるタイプの出力変数から区別させるために、エディタはユーザが一度だけ書き込める変数のための最大総数６１２のパラメータを編集することを禁止することができる。幾つかの例において、ユーザがアキミュレータタイプの出力変数から一度だけ書き込めるタイプの出力変数に切り換えると、エディタは最大総数６１２のパラメータをクリアすることができる。
【００４７】
図７は複数回発火型規則セット、例えば「人物確認（Validate Person）」を示す規則タブ７００の例である。アキュムレータ出力変数７０８は、「一度だけ書き込まれる出力」又は「アキュムレータ出力」の注釈によって、一度だけ書き込まれる出力７１２から視覚的に区別される。更に、他の種々の注釈も可能である。例えば、規則セットのタイプ）例えば、「複数回発火型規則」（アキュムレータ出力を発生する規則）、又は、１回発火型規則」（スカラ出力を発生する規則）は、規則タブ７００の上部７０４に示され、或いは、一つの側の縦の注釈７１２は「１回発火型」又は「多数回発火型」を示す。幾つかの例において、１回発火型規則及び多数回発火型規則に対して異なるアイコンを用いることもできる。幾つかの例において、発火した規則の実例の総てはユーザによる検査のために強調される。
【００４８】
図８は、アキュムレータ変数８０１、「確認メッセージ」、の内容を示す結果タブ８００の例である。図示するように、出力変数８０１は各レコードに対して第１の一連の値８１３を呈することができ、その第１の一連の値８１３（例えば、ＴＡＮＧＥＬＡ ＳＣＨＥＰＰに対応する値）の少なくとも一つの値は、コンマによって分離された値の集まりとして表示された第２の一連の値８１６を呈することができる。幾つかの例において、ユーザはアキュムレータ出力値上にてマウスポインタを「うろつかせて」、アキュムレータ値の一つのリストを示すツールの先端を見えるようにすることができる。幾つかの例において、例えばベンチマークデータを含むテストを実行するとき、そのベンチマークデータにおけるベクトルが出力におけるベクトルとどのようであれ相違するのであれば、出力を異なるものとしてマークすることができる。例えば、相違は、ベンチマークベクトルが出力ベクトルと異なる数の項目を有すること、ベンチマークベクトルが出力ベクトルと異なる順序で項目を有すること、及び、各ベクトル内の個々の項目が異なること、を含むことができる。
【００４９】
作動において、アキュムレータ出力変数は、以下に説明するように、複数回発火型規則セットによって発生された複数の出力値を受け取るのに用いられる。例えば、表２に示した次の規則セットについて考察する。
【表２】
2014130628.tif 000004
【００５０】
上記の規則セットは、例えば、家族の大きさが４であり、予算が＄２０，０００であることを考慮して３つの車（アコードセダン、シビック及びエレメント）を提案する。従って、この場合、出力データセットにおける出力変数「自動車選択」は複数の値を受け取ることができるとみなされる。その規則セットにおける各規則の実例は評価され、規則の実例がトリガするといつでも、その規則セットからの値がアキュムレータ出力変数に加えられる。
【００５１】
上述の規則セットのトリガは、入力値、ルックアップ及び他の出力値を含むスカラ変数（非ベクトル）であることができる。幾つかの例においては、出力変数は他の出力変数を計算することができる。幾つかの例において、非ベクトル出力のみがトリガとして用いられ得る。幾つかの例において、間接的に一つのアキュムレータ出力変数を用い、集約関数を用いることによって他のアキュムレータ出力変数を計算することができる。例えば、表３に示した次の規則セットについて考察する。
【表３】
2014130628.tif 000005
【００５２】
上述の規則セットは「家族構成員」と呼ばれるアキュムレータ出力変数を計算する。次に、表４に示した規則セットについて考察する。
【表４】
2014130628.tif 000006
【００５３】
表４の規則セットは、集約関数を用いて「家族サイズ」と呼ばれるスカラ（非ベクトル）を計算する。従って、始めに、すべての我々の家族メンバのリストを含む出力ベクトルが計算される。次に、カウント関数はそのリスト内の人の数を数える。次に、そのカウント値が入力として用いられて自動車のリストを計算する。
【００５４】
図９は、スカラ及びベクトルを用いて実施態様を図示し、この態様はアキュムレータ出力変数を用いて他のスカラ及びベクトルの値を計算する。図示されたように、Ｓ１、Ｓ２及びＳ３はスカラ変数を表わす。Ｖ１及びＶ２はベクトル変数を表わす。Ｓ１を用いてＳ２が計算され、次に、Ｓ２を用いてＶ１の４つの異なる値が計算される。次に、Ｖ１の四つすべての値を用いて（例えば集約関数の使用を介して）Ｓ３が計算される。最後に、Ｓ３を用いてＶ２の３つの値が計算される。
【００５５】
幾つかの実施態様において、ユーザが以下に述べる操作例のいずれかを実行しようとするとエディタは検証（validation）エラーを発生することができる。：データセットのいずれかにおけるフィールドのタイプが可変長ベクトル以外のものであるときに出力をアキュムレータとして印を付す操作；データセットのいずれかにおけるフィールドのタイプがベクトルのときに出力を「一度だけ書き込める」として印を付す操作；（一度だけ書き込める出力のみがデフォルト値を有することができる実施態様において）アキュムレータに対してデフォルト値を提供する操作；アキュムレータ出力を比較トリガ列として用いる操作；単一の規則内にアキュムレータ出力と一度だけ書き込める出力とを混合する操作；及び無制限ではない値又は正ではない値をアキュムレータ出力変数の最大総数（カウント）パラメータに入力する操作。
【００５６】
幾つかの例において、入力レコードはベクトルを含むことができる。図１０Ａは、少なくとも２つのベクトルレコード、即ち、運転者レコードベクトル９５２及び車両レコードベクトル９５４を含む入力レコード９５０のフォーマット例である。図１０Ｂは入力レコード９５０用のデータ９５６の例である。
【００５７】
集約関数は規則セットに含まれてレコードベクトル９５２、９５４をスカラに変換できる。例えば、この規則セットは「最年少運転者の年令」という仕様を含むことができる。幾つかの実施態様において、その仕様は「最小（運転者年令）」として表現でき、或いは、「do minimum（in 0. 運転者、「年令」）」のようなデータ操作言語（ＤＭＬ）機能を用いることができる。この規則セットに応答してスカラ値、例えば２１（図１０ＢのＰｅｂｂｌｅｓのレコード）が発生する。幾つかの例において、動作中、関数は運転者レコードベクトル９５２におけるすべてのレコードをループ（loop）して運転者年令の最小値を見つける。
【００５８】
他の例を考察すると、規則セットにおける仕様は「最年少男性運転者に対して１を加えたポイント数”とすることができる。この仕様は「最小値（運転者年令、運転者性別＝男、運転者ポイント＋１）」として表現できる。この規則セットに応答してスカラ値、例えば（ＢａｍＢａｍのレコードから）１４が発生する。いくつかの実施態様において、これらのスカラ値はスカラである中間変数もしくは出力変数に割当てることができる。
【００５９】
幾つかの例において、規則はレコードベクトルの各要素に対して書くことができる。例えば、表５に示した以下の規則セットについて考察する。
【表５】
2014130628.tif 000007
【００６０】
表５の規則セットの仕様は「各車両について、車両値（車両価値）に対する調整値を計算する。その調整値は、車両がシートベルトを有していれば１００、エアバッグを有していれば１５０、そして両方を有していれば３００である」。図示するように、出力変数「値調整」はベクトル変数である。上述の規則に応答して、ベクトル、例えば[０，３００，１００]が発生する。幾つかの例においては、動作中、規則セットは車両レコードベクトル９５４の各レコードに対して１回実行されるように複数回実行される。
【００６１】
ある例においては、また、規則セットはスカラ値又は同一長であれば他のベクトルを参照できる。例えば、表６に示した以下の規則セットについて考察する。
【表６】
2014130628.tif 000008
【００６２】
表６の規則セットにおける仕様は「各車両について、調整された値を計算する。その調整された値は、車両値、その値調整及び地理的リスクの和である。車両年数が２年より古ければ５０減算する。」である。この規則においては、「調整された値」はベクトル変数である。従って、等しくないベクトル長による実行時間誤差を避けるために、ベクトル変数「値調整」は車両レコードベクトル９５４の長さと同一の長さを有する。この規則セットに応答して、ベクトル、例えば[１０３０，１８８０，１３３０]が発生する。
【００６３】
幾つかの例において、ＸＭＬレコードが複雑であるときには、単一の入力レコードが用いられて多くの論理レコードをキー関係で関係付けることによってその論理レコードを表わすことができる。例えば、車両レコードベクトル９５４における各車両のサブレコードは、外来キー（例えば「運転者」）を含み、運転者レコードベクトル９５２におけるマッチングキー（例えば「名前」）に関係させることができる。このように、レコードベクトル９５２、９５４は、ルックアップファイル又は内部参照テーブルとして実行できる。例えば、車両レコードベクトル９５４に関係付けられた内部参照テーブルは次の通りである。
主運転者名前（主キー）
主運転者年令
主運転者性別
主運転者ポイント数
【００６４】
従って、内部参照テーブルは、レコードベクトル内のサブレコードを内部参照テーブル内のレコードとして取扱うことにより、各入力レコードに対して生成され得る。動作中において、例えば、表７に示した規則セットについて考察する。
【表７】
2014130628.tif 000009
【００６５】
表７の規則セットにおける仕様は、「保険契約運転者の年令を計算する。これは保険契約運転者の値を関連する内部参照テーブルのキーとして用いることによって見つけられた主運転者年令である。」である。この仕様はこの値を主運転者年令列に戻し、次に、「保険契約運転者の年令」という出力変数に割当てられる。「保険契約運転者の年令」はスカラ値である。別の例では、表８に示した規則セットについて考察する。
【表８】
2014130628.tif 000010
【００６６】
表８の規則セットにおける仕様は、「購入時年令を計算する。これは車両年数と車両主運転者の年令との差である。」である。解説の便宜上、ルックアップキーには「車両主運転者」がデフォルトとして割当てられると仮定する。出力変数「購入時年令」はベクトル変数である。従って、上述の規則に応答して [３１，１９，２７]が発生する。
【００６７】
幾つかの例において、ルックアップキー「車両主運転者」は、括弧によって明示的に「主運転者年令（車両主運転者）−車両年令」のように表示され得る。
【００６８】
ある例において、内部参照テーブルは集約関数において用いることができる。例えば、仕様は「全車両の主運転者の平均年令を計算する」とすることができる。この仕様は、関数、例えば「平均（主運転者年令（車両主運転者））」によって実行することができる。この関数に応答してスカラ値、例えば２９．６７が発生する。
【００６９】
幾つかの実施態様において、ユーザは上述の規則セットにおける計算ステップを視覚化することができる。例えばテストモードにおいて、ユーザが興味のある値、例えば入力変数及び出力変数（スカラ変数及びベクトル変数の両方）の中間値、を調べることは有益である。当業者に知られたステップを視覚化するための種々の技術を用いることができる。例えば、入力レコードベクトル９５２、９５４における各要素に対する１行を有するポップアップテーブルが実施され、どの項目がフィルタで取り除かれたか或いは計算されたかを示す中間値を要約することができる。
【００７０】
上述の技術はコンピュータ上で実行されるソフトウェアを用いて実現できる。例えば、このソフトウェアは一つ以上のプログラムされたもしくはプログラム可能なコンピュータシステム（分散型、クライアント/サーバ型又はグリッド型等の種々のアーキテクチャからなる）上で実行される一つ以上のコンピュータプログラム上の手続を形成する。この各コンピュータシステムは、少なくとも一つのプロセッサ、（揮発性メモリ及び不揮発性メモリ、及び／又は記憶素子を含む）少なくとも一つの記憶システム、少なくとも一つの入力装置又は入力ポート、及び、少なくとも一つの出力装置又は出力ポートを含む。ソフトウェアは、例えば、計算グラフの設計及び構成に関係した他のサービスを提供するより大きなプログラムの一つ以上のモジュールを形成できる。グラフのノード及び要素は、コンピュータ読出し可能媒体に格納されたデータ構造又はデータ収納庫に格納されたデータモデルに合致する他の編成データとして実現され得る。
【００７１】
ソフトウェアは、汎用又は専用のプログラマブルコンピュータによって読み出し可能な媒体（例えばＣＤ−ＲＯＭ）に提供され、或いは、（伝播信号に符号化されて）ネットワークを通してそのソフトウェアが実行されるコンピュータに配信され得る。すべての機能は汎用コンピュータ又はコプロセッサのような専用ハードウェアを用いて実現できる。ソフトウェアは、そのソフトウェアによって特定された計算の異なる部分が異なるコンピュータによって実行されるという分散方式によって実現できる。好ましくは、そのような各コンピュータプログラムは、汎用又は専用プログラマブルコンピュータによって読み出し可能な記憶媒体又は装置（例えば、固体メモリ又は媒体、もしくは磁気的又は光学的媒体）上に格納されるか或いはダウンロードされ、記憶媒体又は装置がコンピュータシステムによって読み出されて上述の手順を実行するときにコンピュータを構築及び動作させることができる。また、本発明のシステムはコンピュータプログラムを構築するコンピュータ読み出し可能記憶媒体として実現され、このように構築された記憶媒体はコンピュータシステムを特殊及び予め定義された方法で動作させて上述の機能を実行させることができる。
【００７２】
いくつかの本発明の実施例を記載した。しかしながら、種々の変更が本発明の精神及び請求の範囲から逸脱することなく採用されることが理解されよう。例えば上述のいくつかの工程は順序が独立であり従って上述の順序と異なる順序で実行できる。
【００７３】
上述の説明は例示であり、本発明の特許請求の範囲によって定義される発明の範囲を限定する意図はないことが理解されるべきである。例えば、上述の機能ステップのいくつかは全体の処理に影響することなく異なる順序で実行できる。他の実施例は特許請求の範囲の請求項の範囲内にある。
【図１】
2014130628.tif 000011
【図２】
2014130628.tif 000012
【図３】
2014130628.tif 000013
【図４】
2014130628.tif 000014
【図５】
2014130628.tif 000015
【図６】
2014130628.tif 000016
【図７】
2014130628.tif 000017
【図８】
2014130628.tif 000018
【図９】
2014130628.tif 000019
【図１０Ａ】
2014130628.tif 000020
【図１０Ｂ】
2014130628.tif 000021
【手続補正書】
【提出日】平成26年3月25日(2014.3.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザインタフェースを介してユーザから、一つ以上の入力値に基づいて出力変数に対する出力値を生成する仕様の少なくとも一部を受け取ること、
少なくとも一つのプロセッサを用いて、入力データを前記仕様に従って変換する命令を発生させることであって、前記入力データは少なくとも一つの入力レコードに対する第１の一連の入力値を含み、前記第１の一連の入力値における少なくとも一つの入力値は第２の一連の入力値を含み、前記入力データを変換することは少なくとも一つの出力変数に対する第１の一連の出力値を生成することを含み、前記第１の一連の出力値における少なくとも一つの出力値は第２の一連の出力値を含むこと
を含む方法。
【請求項２】
請求項１に記載の方法において、
前記命令は、グラフによって表現されたグラフに基づくアプリケーションの要素に含まれ、前記グラフにおける頂点は要素を表し、前記グラフにおける頂点間の有向リンクは要素間データの流れを表す、方法。
【請求項３】
請求項２に記載の方法において、
前記命令を含む第１のグラフ要素は入力データセットから前記命令へのデータの流れを提供する、方法。
【請求項４】
請求項３に記載の方法において、
前記第１のグラフ要素は実行可能な計算要素であり、前記グラフは前記入力データセットを表すデータ格納要素である第２のグラフ要素を含む、方法。
【請求項５】
請求項１に記載の方法において、
前記仕様を受け取ることは、規則テーブルの少なくとも１行を含む規則を受けとることを含み、前記行は一つの規則の実例に対応し、前記入力値の一つ以上もしくはその組合せ、所定値、又は、前記入力値の一つ以上から計算された値を含む出力を有する、方法。
【請求項６】
請求項５に記載の方法において、
前記規則の実例は、
しきい値に等しい入力値を有すること、しきい値より大きい入力値を有すること、しきい値より小さい入力値を有すること、複数の値のセットに属する入力値を有すること、複数の値のパターンに合致する入力値を有すること、他の入力値と関係を有すること、他の規則のセットの出力値と関係を有すること、及び、メモリ内の値と関係を有すること、
の少なくとも一つ以上を含む、方法。
【請求項７】
請求項１に記載の方法において、
前記入力データはスカラ変数及びベクトル変数に対する値を有する入力レコードを含む、方法。
【請求項８】
請求項７に記載の方法において、
前記入力レコードの少なくとも一つは所定数の入力レコードを格納するアレイを含み、前記所定数はユーザが特定した数に修正可能なデフォルト数である、方法。
【請求項９】
請求項７に記載の方法において、
前記入力レコードの少なくとも一つは、前記入力レコードの前記少なくとも一つにおけるサブレコードとのキー関係を規定する内部参照テーブルを含む、方法。
【請求項１０】
請求項９に記載の方法であって、
前記変換の適用に応答して、前記内部参照テーブル内の前記キー関係に基づいて前記出力変数に対して前記第２の一連の出力値を生成することをさらに含む方法。
【請求項１１】
請求項５に記載の方法であって、
規則内の規則の実例に応答して、前記規則の実例をトリガして前記出力変数に対する値を生成することをさらに含む方法。
【請求項１２】
請求項１１に記載の方法において、
前記規則の実例をトリガすることは、前記規則における前記少なくとも一つの規則の実例を満足する前記入力データにおけるベクトルに適用された集約関数の出力に基づいて前記規則の実例をトリガすることを含む、方法。
【請求項１３】
請求項１に記載の方法において、
前記命令を発生させることは、前記仕様の少なくとも一部を複数の論理式に変換すること、及び、前記複数の論理式をコンピュータが実行可能なコードに翻訳することを含む、方法。
【請求項１４】
請求項１３に記載の方法において、
前記複数の論理式を翻訳することは、複数の式を組合せること、個々の式を最適化すること及び複数の式のグループを最適化すること、の一つ以上を含む、方法。
【請求項１５】
コンピュータプログラムを格納するコンピュータ読出し可能な非一時的媒体であって、コンピュータを動作させるための命令を含む前記コンピュータプログラムは、
ユーザインタフェースを介してユーザから、一つ以上の入力値に基づいて出力変数に対する出力値を生成する仕様の少なくとも一部を受け取る命令と、
少なくとも一つのプロセッサを用いて、入力データを前記仕様に従って変換する命令を発生させる命令であって、前記入力データは少なくとも一つの入力レコードに対する第１の一連の入力値を含み、前記第１の一連の入力値における少なくとも一つの入力値は第２の一連の入力値を含み、前記入力データを変換することは少なくとも一つの出力変数に対する第１の一連の出力値を生成することを含み、前記第１の一連の出力値における少なくとも一つの出力値が第２の一連の出力値を含むものである、命令と、を含む、
コンピュータ読出し可能な非一時的媒体。
【請求項１６】
請求項１に記載の方法において、
前記仕様の少なくとも一部を受け取ることは、一つ以上の前記出力値を生成するための規則の実例の一部を明示的に規定する値またはキーワードを受け取ることを含む、方法。
【請求項１７】
請求項１に記載の方法において、
前記仕様の少なくとも一部を受け取ることは、一つ以上の前記出力値を生成するための規則の実例の一部を暗黙的に規定する値またはキーワードを受け取ることを含む、方法。
【請求項１８】
請求項１に記載の方法であって、
少なくとも一つの出力変数に対応する複数の出力レコードを含む出力データセットをデータ格納システムに格納することをさらに含み、少なくとも一つの出力レコードは、前記第１の一連の出力値を格納するための複数のフィールドであって、前記第２の一連の出力値を格納するための少なくとも一つのベクトル出力フィールドを含む複数のフィールドを含む、方法。
【請求項１９】
一つ以上の入力値に基づいて出力変数に対する出力値を生成する仕様の少なくとも一部をユーザから受け取るように構成されたユーザインタフェースと、
入力データを前記仕様に従って変換する命令を発生させるように構成された少なくとも一つのプロセッサであって、前記入力データは少なくとも一つの入力レコードに対する第１の一連の入力値を含み、前記第１の一連の入力値における少なくとも一つの入力値は第２の一連の入力値を含み、前記入力データを変換することは少なくとも一つの出力変数に対する第１の一連の出力値を生成することを含み、前記第１の一連の出力値における少なくとも一つの出力値は第２の一連の出力値を含む、少なくとも一つのプロセッサと、
を含むシステム。
【請求項２０】
請求項１８に記載の方法において、
前記出力データセットを格納することは、出力テーブルに対して複数の行を格納することを含み、前記各行は前記複数のフィールドに対する複数の値を有する出力レコードを規定する、方法。
【請求項２１】
請求項１８に記載の方法において、
少なくとも一つのベクトル出力フィールドを前記第２の一連の出力値を格納するために提供することは、前記第２の一連の出力値の所定数を格納するためのアレイを提供することを含み、前記所定数はユーザが特定する数に修正可能なデフォルト数である、方法。
【請求項２２】
請求項１８に記載の方法において、
前記ベクトル出力フィールドはテーブルにおけるセルを含む、方法。 
【外国語明細書】
2014130628000001.pdf