問題タブ [rule-engine]

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 投票する
6 に答える
2313 参照

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

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

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

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

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

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

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

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

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

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

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

drools - 動的デシジョンテーブルでdroolsエキスパートを使用する

これが私がやりたかったことです。

データベーステーブルに「ルール」を入れたかったのです。これは、すべてのルールがテーブル内の行になることを除いて、droolsxls決定テーブル形式に似ています。このようにして、ルールを簡単に変更できます。ルールが頻繁に変更される可能性があるため、これをxlsではなくテーブルに配置する必要があります。これはよだれで可能ですか?(DRLまたはxlsファイルの代わりに)DBから取得したルールを使用してナレッジベースを構築できますか?ルールが変更されるたびに、ナレッジベースを最初から再構築できますか(またはナレッジベースの一部のみで、基本的に変更されたルールのみを更新できます) ..)

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

asp.net - ASP.NET 用の堅牢なサーバー側動的フォーム エンジン

私は最近、動的に読み込まれた ASP.NET コントロールを EAV スキーマと組み合わせて使用​​し、データ モデルの可変性を処理する単純な動的フォーム エンジンを実装しました。ビジネスはしばらくの間、最終製品に十分に満足していましたが、現在はより複雑な動的フォームを求めています。

  1. フィールドの可視性は、他のフォーム フィールドの値に関連付けられています
  2. 他のフォームフィールドの状態に関連付けられたドロップダウン可能な値のリスト
  3. フォーム全体でのさまざまなビジネス ルールの適用: つまり、FieldA の値は、FieldX が null でないと仮定して、FieldX + 30 日を超えてはなりません。
  4. その他の複雑な分野間の依存関係とビジネス ルール

ご想像のとおり、このようなエンジンをゼロから作成するのは面倒で時間がかかり、コア ビジネスの一部ではないため、既製のソリューションを探しています。理想的には、すべての層 (ビジネス ロジック、プレゼンテーション層、永続性) を含む完全な ASP.NET フレームワーク (MVC または WebForms) が必要です。ただし、物乞いは選択者になることはできないので、ビジネス ルールの定義と評価のみを扱うフレームワークで間に合わせます。さらに、クライアント側のプラグインへの依存を禁止する厳格なポリシーに縛られているため、厳密にサーバー側のソリューションを探しています。

XForms は完璧に適合するように思えますが、私が見つけた唯一の成熟した実装は、Java (Orbeon) または Django (Chiba) に基づいています。私が見つけた他の XForms 実装は、クライアント側のプラグインに何らかの依存関係を持っています。

Orbeon を ASP.NET アプリケーションと統合する方法が見つかれば、Orbeon を使用しても構いませんが、そのようなハイブリッド実装の実際の例は見たことがありません。

Microsoft Office InfoPath を簡単に調べてみましたが、実装する必要のある複雑なシナリオを処理するのに十分なほど堅牢ではないようです。

すべてのアイデアを歓迎します!

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

java - 複雑な表示値ルックアップのための Drools

この質問の目的は、Web アプリケーション内の複雑な表示値ルックアップ処理に Drools を使用する妥当性を評価することです。私は、ベンダー データベースに保存されている保険情報を (保険証券から) 取得し、その情報をカスタム Web アプリ内に表示する任務を負っています。何百ものカバレッジがあり、各カバレッジに表示される表示値は、カバレッジのタイプごとに 4 つまたは 5 つの異なる列の組み合わせに基づくことができます。カバーの種類は40種類ほどあると思います。

そうは言っても、よだれや決定木メカニズムはこれを処理する良い方法を提供しますか? カバレッジ情報を頻繁に追加/変更する必要がある可能性が非常に高いことを指摘しておく必要があります。このメカニズムに私を惹きつける1つのことは、BAがルールを最新に保つのに役立つということです. ただし、このオプションによって速度が低下する可能性があるのではないかと心配しています。現在、マッピングが正常に行われることを確認するために、データベース内のリフレクションおよび XML と組み合わせてデータベースを使用する実用的なプロトタイプがあります。

あなたがそれらを考えることができるなら、私は他のオプションを受け入れます。

ありがとう、ジェレミー

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

rules - Drools の撤回により、ルールが実行されない

Drools 4.0.7 で奇妙な動作に遭遇しましたが、Drools がどのように機能するかを理解していないことが原因である可能性があります。「property」というプロパティを持つクラス「A」があるとします。

事実として、次の A のリストがあります: A1、プロパティ = 123 A2、プロパティ = 345 A3、プロパティ = 123

次の2つのルールがあります。

私の理解では、「ルール 1」は 123 のプロパティを持つクラス A のファクトを削除します。「ルール 2」になると、「listOfAs」に残っている A が 1 つだけであってはなりません (つまり、プロパティが存在するもの)。 「345」に設定)。私が気付いたのは、撤回されていない「A」オブジェクトがまだ 1 つあると想定しているにもかかわらず、「ルール 2」がまったく実行されないことです。「撤回」をコメントアウトすると、「ルール 2」が正常に実行されます。

これらのルールの機能について何か不足していますか?

ありがとう。ジャスティン

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

sql-server - SQL SERVER を使用したビジネス ルール エンジンの構築

ビジネス ルール エンジンを構築する必要があります。私は SQL SERVER 2005 を使用しています。ビジネス ルールは膨大で、2000 ページにもなります。

例えば。

などなど

したがって、手続きの if else 条件にこれらすべてのルールを単純に記述することはできないと思います。ですから、意思決定表を作成して、その表にすべての条件をレコードとして入れることができるかもしれません。しかし、私はそれを行う方法がわかりません。

誰もがそれを行う方法を知っていますか?

ありがとうございました

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

.net - インテリセンスでテキストを編集するためのコントロールはありますか?

アプリケーションルールエンジン(または言語定義)に基づいてクエリを入力するための.netコントロール(できればWPF)はありますか?インテリセンスまたはJira高度なフィルターを備えたSQLのようなものですか?

言い換えれば、ユーザーがこのようなものをテキスト領域に入力できるようにしたいのです。

アプリケーションは、インテリセンスのような次の有効なトークンを提案します。

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

javascript - Javascript の軽量ルール エンジン

Javascript で実装された軽量ルール エンジンの提案を探しています。

このような実装の理由は、少数のルール セット (20 未満) を使用して、非常に軽量で高速なブラウザー ベースのシミュレーションを構築するためです。シミュレーションは、サーバーに戻る必要なく、6 つのパラメーターを使用してルールを実行し、ブラウザーに結果を表示します。いくつかのラジオ ボタン、チェックボックス、テキスト ボックス、およびパラメーターを制御するスライダーを備えた UI を考えてみてください。シミュレーションは、パラメーターの変更に基づいてすぐに再実行されます。

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

asp.net - ASP.netを使用してゼロから調査プラットフォームを構築することを計画しています

スクリプトインターフェイスも提供するASP.NET調査プラットフォームを構築することを計画しています。ジャンプスタートを提供するための既存のフレームワークまたはオープンソースプラットフォームがあるかどうか疑問に思いました。

また、ルールエンジンは便利ですか?...

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

formatting - HP Exstreamでルールをネストする方法は?

HP Exstream(以前のExstream SoftwareのDialogue)バージョン5.0.xを使用しています。ブール式を「ルール」として定義および保存する機能があります。

これを使って約6年になりますが、別のルールでルールを定義できるかどうか誰か知っていますか?ポップアップウィンドウには「VBのような」言語があるので、変数関係式の形式を使用する必要はありませんが、ドキュメントは手元にありません:-(

全体の逆を繰り返すのではなく、「Foo」の観点から「NotFoo」というルールを定義したいと思います。(はい、それは遅れますが、私が維持している他の例のように、おそらくそれは私がしなければならないことです。)実際、ネストされたルールは、それを行う方法を理解できれば、多くの用途があります。