IとしてDroolsのルールルールファイルを有する被験者を定義パターンの定義は次のようにデータベーステーブル内に配置されているよう句は変更することができる場合のパターンのDrools:同じフォーマットの複数のパターンのテンプレート
package com.test
import com.test.fact.Feature;
global com.test.Course subjects;
rule "CS"
when
Feature(subjectName=="Math", rating >= 6)
Feature(subjectName=="Computers", rating >= 9)
Feature(subjectName=="Electronics", rating >= 3)
then
subjects.addSubjectName("Computers");
end
rule "Physics"
when
Feature(subjectName=="Math", rating >= 9)
Feature(subjectName=="Physics", rating >= 9)
then
subjects.addSubjectName("Physics");
end
: PatternDefinition(PatternName、FeatureName、FeatureValue)ここで、PatternDefinitionはPatternName、FeatureNameおよびFeatureValueのテーブル名です。
など。ルール「CS」の場合、定義は次のようにパターン名「CS」で次のようになります。
Row 1 -> CS, Math, >=9
Row 2 -> CS, Computers, >=9
Row 3 -> CS, Electronincs, >=3
私は、データベーステーブルを変更することはできませんが、データの膨大な量であり、サブの多く言及されているようプロジェクト。
特定のルールの定義は、新しいサブジェクトが追加されたり、定義が変更されたりすると変更される可能性があります(特定のサブジェクトのレーティング要件が変更されたとします)。これらは、バックグラウンドからデータベース内で変更されます。
上記のルールをDrools-templateに変換する必要があります。これにより、application-startupは自動的にデータベースの変更を取得し、テンプレートとデータベースのデータを読み取るDroolsルールファイルを準備します。
テンプレートとして単一のフィーチャを設定できましたが、1つのルールで複数のフィーチャを設定することはできませんでした。
お勧めします。
これを見て、これはあなたを助けるかもしれない.... http://opensourcesoftwareandme.blogspot.in/2015/08/dynamically-create-rules-using-drools.html – piyushj
私は正しいことを理解している場合は、最終的に単一のテンプレートプロパティを複数の条件として置き換えるtoString()実装を返す必要があります。つまり、ListOfFeaturesに対して「Physics」のマップを保持できれば、リストを取得するときに、フィーチャーを連結して(新しい行で)テンプレートの完全なフィーチャーセットを構成するtoString()実装を行います。 –
はい、これが役に立ったら教えてください – piyushj