問題タブ [rules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1464 参照

import - ワイルドカードを使用した Drools ルールのインポート

Drools ルールを使用しています。一部の開発者は、Guvnor (ルール リポジトリ) に配置してパッケージをビルドする必要があるルールを作成しました。これらのルールには、ワイルドカードを含む import ステートメントがあります。例: import org.drools.runtime.rule.*;

これを Guvnor にアップロードしてビルドしようとすると、次のように表示されます。必要な各ファクト タイプを明示的にインポートしてください。

Drools ルールでワイルドカード インポートを使用することは可能ですか?

0 投票する
1 に答える
2188 参照

spring - ETL、Esper、またはDrools?

質問環境はJavaEE、Springに関連しています

着信メッセージの任意のTCP(または他の)リスナーを開始および停止できるシステムを開発しています。これらのメッセージを認証する必要があるかもしれません。これらのメッセージは、解析して他のエンティティに保存する必要があります。これらのエンティティは、格納するフィールドをモデル化します。

したがって、たとえば、2つのテキストフィールドFillLevel1とFillLevel2を持つことができるproperty1がある場合、テキストでF1 = 100; F2=90として指定された両方の塗りつぶしレベルを持つメッセージをTCPで受信できます。

後で、メッセージF1 = xx; F2 = xx; F3 = xxの受信を開始したときに、FillLevel3などの別のファイルを追加できます。しかし、これはシステムモデラー側の意識的な決定です。

私の質問は、メッセージの解析と保存に何を使用するのが良いと思いますか。ETL(他のシステムで使用されているPantahoを使用)では、生のメッセージを保存し、タスクエグゼキューターを使用してそれらを1つずつ消費し、ルールに従って変換されたメッセージを保存します。

EsprまたはDroolsを使用して同じことを行い、ルールを保存してタイマーで実行することもできますが、ルールを作成することでどれほど動的にできるかはわかりません(実行中のシステムで、できればほとんどの場合、エンドユーザーが作成する必要があります)ユーザーフレンドリーな方法、つまりスクリプトやコードなし、GUIのみ)

エンドユーザーは、解析ルールを変更できる必要があります。エンドユーザーがアーカイブデータも変更したい場合もあります(たとえば、上記の例では、FillLevelの新しい値が追加された場合、前の値にFillLevel=-99を入れてデータを作成します。一貫性のある)。

説明をお願いします。少し修正が必要な気がします。

ありがとう

0 投票する
3 に答える
309 参照

postgresql - PostgreSQL で DELETE の戻り値を変更できますか

ユーザーが Confluence wiki でスペースを取り消し不能に削除できないようにしようとしています。私が最初に考えたのは、spacesテーブルの名前を に変更しallspaces、新しい列を追加し、古いテーブルの代わりにdeletedビューを作成することでした。spacesビューは、削除されていないスペースのみを返します。ビューで INSERT、UPDATE、および DELETE を許可する 3 つのルールを作成しましたspaces。DELETE ルールはdeletedフィールドを変更するだけでビューから削除しますが、すべてのデータはデータベースに残ります。

問題は、PostgreSQL からspaces戻ったときの DELETE ステートメントです。DELETE 0これにより、Hibernate が反転して例外が投げられ、Confluence が爆発します。

INSTEAD ルールで削除された行ではなく、変更された行を PostgreSQL に返すようにする方法はありますか。

0 投票する
2 に答える
76 参照

random - キャプチャされたデータを不明な形式で分類しますか?

キャプチャされたデータの大規模なセット(場合によっては数十万のレコード)があり、それを分類して「典型的な」データを自分で作成できるように、それを分解できる必要があります。さらに説明させてください...

次のデータ文字列がある場合:

あなたは次のことを推測し始めるかもしれません:

  • おそらくすべての文字列は14文字の長さです
  • 4番目、8番目、10番目、および14番目の文字は常にアルファであり、残りは数字です。
  • 最初の文字は常に「1」である可能性があります
  • 4番目の文字は常に文字「T」である可能性があります
  • 14番目の文字は「S」または「T」のみに制限される場合があります
  • 等々...

実際のデータのサンプルをどんどん取得すると、これらの「ルール」の一部が消える可能性があります。15文字の長さの文字列が表示された場合は、最初の「ルール」が正しくないという証拠があります。ただし、正確に14文字の長さの文字列のサンプルが十分に大きい場合は、「すべての文字列は14文字の長さである」と想定し、自信の程度に数値を割り当てることができます(事実に関する適切な一連の想定を使用して)キャプチャされた可能性のあるすべてのデータの適切にランダムなセットが表示されていること)。

おそらくお分かりのように、人間はこの分類の多くを目で行うことができますが、私はコンピューターがそれを行うことを可能にするライブラリーやアルゴリズムを知りません。

キャプチャされたデータのセット(上記よりも大幅に複雑です...)を考えると、この種の分類を行うためにコードに適用できるライブラリがありますか?これにより、一定の信頼度で「ルール」が識別されますか?

次のステップとして、これらのルールを取得し、それらを使用して、これらのルールに準拠する独自のデータを作成できるようにする必要があります。これは分類よりもはるかに簡単な手順だと思いますが、これまでこのようなタスクを実行する必要がなかったので、どれほど複雑かはわかりません。

推測では、PythonまたはJava(またはPerlまたはR)は、おそらくこれらの種類のライブラリを持っている可能性が最も高い「一般的な」言語であり、おそらく一部の生物情報ライブラリはこの種のことを行います。どの言語を使用する必要があるかは本当に気にしません。私はできる限りの方法で問題を解決する必要があります。

情報へのあらゆる種類のポインタが非常に役立ちます。おそらくお分かりのように、私はこの問題を明確に説明するのに苦労しています。Googleにプラグインできる適切なキーワードのセットがあり、それが解決策を示している可能性があります。

0 投票する
6 に答える
2313 参照

java - 内部ルールに従ってマッチングセットを計算する推論エンジン

属性を持つオブジェクトのセットと、オブジェクトのセットに適用されると、それらのオブジェクトのサブセットを提供する一連のルールがあります。これを理解しやすくするために、具体的な例を示します。

私のオブジェクトは人であり、それぞれに3つの属性があります。出身国、性別、年齢層です(すべての属性は個別です)。「米国のすべての男性」のように、このより大きなオブジェクトのセットのサブセットに対応する一連のルールがあります。

ルールから人のサブセットにマッピングできる既存のJava「推論エンジン」または同様のもの、または自分で作成する方法についてのアドバイスを探しています。ルールエンジンについて読んだことがありますが、その用語はビジネスルールを外部化するエキスパートシステムにのみ使用されているようで、通常、高度な形式の推論は含まれていません。これが私が対処しなければならないより複雑なシナリオのいくつかの例です:

  1. ルールの接続詞が必要です。したがって、「すべての男性を含める」と「10〜20歳のグループのすべての米国人を除外する」の両方が提示された場合、私は米国外の男性と、米国内の10〜20歳以外の男性にのみ関心があります。 20歳のグループ。

  2. ルールの優先順位は異なる場合があります(明示的に定義されています)。したがって、「すべての男性を除外する」というルールは、「すべての米国の男性を含める」というルールを上書きします。

  3. ルールが競合している可能性があります。したがって、「すべての男性を含める」と「すべての男性を除外する」の両方を設定することができます。その場合、優先順位によって問題を解決する必要があります。

  4. ルールは対称的です。したがって、「すべての男性を含める」は「すべての女性を除外する」と同じです。

  5. ルール(またはサブセット)には、メタルール(明示的に定義されている)が関連付けられている場合があります。これらのメタルールは、元のルールが適用される場合、または推論によってサブセットに到達する場合に適用する必要があります。したがって、「米国を除外する」というメタルールが「すべての男性を含める」というルールに関連付けられており、エンジンに「すべての女性を除外する」というルールを提供すると、「すべての女性を除外する」サブセットを推測できるはずです。 「すべての男性を含める」サブセットと同等であるため、「米国を除外する」ルールを追加で適用します。

私はおそらく項目5なしで生きることができますが、言及されている他のすべてのプロパティが必要です。ルールとオブジェクトの両方がデータベースに保存されており、いつでも更新される可能性があるため、必要に応じて「推論エンジン」をインスタンス化し、後で破棄する必要があります。

0 投票する
1 に答える
85 参照

design-patterns - 訳語・ルールパターン

1 つのドメイン オブジェクトを 2 番目のドメイン オブジェクトに変換するコードがあります。2 番目のオブジェクトのフィールド値の 1 つは、多くの「If then else」と return ステートメント (100 行のコード) を含む長い関数を介して変換されます。最初のオブジェクトのいくつかのフィールドを使用して、2 番目のドメイン オブジェクトの 1 つのフィールドの値を決定すると言えます。

さて、質問ですが、これを読みやすくするためのパターンはありますか? …そして、利害関係者のためにこれらのルールを抽出することはできますか?

0 投票する
3 に答える
12396 参照

makefile - Make のデフォルト ルール

組み込みルールと同様に、どこでも使用できるデフォルトのグローバル暗黙ルールを許可するメカニズムが make にありますか?

Make は、C/C++/Fortran ファイルをコンパイルするための組み込みの暗黙的な規則をいくつか提供しますMakefile。ただし、他の言語 (Go プログラミング言語ファイルなど) をコンパイルする場合は、Makefile常に a が必要です。Makeenvironment を拡張して、デフォルトで暗黙のルールを利用できるようにしたいと考えています。

0 投票する
1 に答える
457 参照

parsing - ANTLRトークンをチェックする方法はパーサーで1回以下しか使用されていません

Antlrで、たとえば次のようなルールがある場合:

それは受け入れるでしょう:「tokenatokenb」

TOKENAをオプションにしたい場合は、

次に、「tokenatokenb」または「tokenb」または「tokenatokenatokenb」を使用できます。

しかし、これはまた、それを複数回繰り返すことができることを意味します。とにかく、このトークンは1回以下で、1回以下であると言えますか?だからそれは受け入れるでしょう:

「tokenatokenb」または「tokenb」ですが、「tokenatokenatokenb」ではありませんか?

どうもありがとう

0 投票する
3 に答える
10049 参照

postgresql - パーティションテーブルを使用してデータを挿入および選択するにはどうすればよいですか?

http://www.postgresql.org/docs/8.1/interactive/ddl-partitioning.htmlのドキュメントごとにパーティション化されたテーブルのセットを設定しました

私の理解では、t(year、a)VALUES(1980、5)に挿入すると、t_1980になり、t(year、a)VALUES(1981、3)にINSERTすると、t_1981になります。 。しかし、私の理解は間違っているようです。まず、ドキュメントから次のことを理解できません

「現在、行をマスターテーブルに挿入してはならないことを指定する簡単な方法はありません。マスターテーブルのCHECK(false)制約はすべての子テーブルに継承されるため、この目的には使用できません。1つの可能性は次のとおりです。常にエラーを発生させるONINSERTトリガーをマスターテーブルに設定します(または、上記のような一連のルールを使用する代わりに、このようなトリガーを使用してデータを適切な子テーブルにリダイレクトすることもできます)。

上記は、CHECK制約とルールを設定しているにもかかわらず、INSERTが正しいテーブルに移動するように、マスターテーブルにトリガーを作成する必要があることを意味しますか?その場合、パーティション化をサポートするデータベースのポイントは何でしょうか?自分で別々のテーブルを設定することはできますか?一連の値をマスターテーブルに挿入しましたが、それらの行は継承されたテーブルではなく、マスターテーブルに残っています。

2番目の質問。行を取得するときに、マスターテーブルから選択する必要がありますか、それとも必要に応じて個々のテーブルから選択する必要がありますか?次はどのように機能しますか?

更新:自分の質問に対する答えを見つけたようです

「COPYコマンドはルールを無視することに注意してください。COPYを使用してデータを挿入する場合は、データを親ではなく正しい子テーブルにコピーする必要があります。COPYはトリガーを起動するため、パーティションを作成する場合は通常どおりに使用できます。トリガーアプローチを使用したテーブル。」

私は実際にCOPYFROMを使用してデータをロードしていたため、ルールは無視されていました。TRIGGERで試してみます。

0 投票する
2 に答える
37150 参照

package - ファイルをターゲットに単純にコピーするには、Debian ルール ファイルが必要です。

次のファイルがある大規模なプロジェクトがあります。

  • いくつかのサードパーティのプリコンパイル済みバイナリ
  • 独自の社内バイナリ
  • Ruby スクリプト集
  • かなりの規模の Ruby on Rails プロジェクト

この製品は、ターゲット OS として Ubuntu Linux (Lucid) を使用して、雇用主が既に選択したアプライアンス ハードウェアにインストールされます。目標は、インストールとアップグレードを容易にするために、アーカイブを Debian パッケージとして配布することです。さらに、顧客ごとに適切な値を「入力」する必要がある多くの ERB テンプレートがあるため、postinstスクリプトの使用は、この目的には特に便利です。

ちなみに、Debian パッケージは、社内で管理するサーバー リポジトリに保存されます。

この段階で、dh_makeを使用して Debian ディレクトリと関連ファイル (例: rules、control など) を作成しましたが、生成された rules ファイルは私の目的にはやり過ぎのようです。

この説明に基づいて、「ルール」ファイルで本当に必要なのは、ソース ディレクトリ (またはアーカイブ内) から以下に示すターゲット ディレクトリにファイルをコピーすることだけです

...等々。

私は Debian Policy Manual といくつかの How-To を読みましたが、ディレクトリの作成に使用する rules ファイルを変更してはならないことを示しており、通常、ほとんどのニーズを満たすことができるdh_アプリ (dh_installdirs など) があります。インストールの目的。これらのdh_関連アプリのマニュアル ページはせいぜい大雑把で、私は「例」のような人です。mkdir

とは言うものの、ルールファイルを取得して、コンパイル済みのさまざまなバイナリと Ruby/Rails テキスト ファイルを目的の場所にインストールするための最善の方法について、少し迷っています。

これが私の最初のルールファイルです。これは、dh_make が作成するほぼ標準的なボイラープレート ルール ファイルです。私の考えでは、インストール以外のすべてのセクションをコメントアウトし、そのセクション内でディレクトリを作成したり、ファイルをコピーしたりするための適切なコマンドを見つける必要があります。

アドバイスや提案は大歓迎です。