2016-05-09 3 views
0

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つのルールで複数のフィーチャを設定することはできませんでした。

お勧めします。

+0

これを見て、これはあなたを助けるかもしれない.... http://opensourcesoftwareandme.blogspot.in/2015/08/dynamically-create-rules-using-drools.html – piyushj

+0

私は正しいことを理解している場合は、最終的に単一のテンプレートプロパティを複数の条件として置き換えるtoString()実装を返す必要があります。つまり、ListOfFeaturesに対して「Physics」のマップを保持できれば、リストを取得するときに、フィーチャーを連結して(新しい行で)テンプレートの完全なフィーチャーセットを構成するtoString()実装を行います。 –

+0

はい、これが役に立ったら教えてください – piyushj

答えて

0

基本的な解決策は、ルール/パターン名ごとに1,2、... n行のn個のテンプレートを定義することです。

よりインテリジェントな解決策としては、これらのルールの目的を知る必要があります。どの機能名がグローバルリストに追加されるのですか?その理由は何ですか?

+0

どうすればこれらの個々のテンプレートをグループ化して1つのルールにすることができますか? 'Feature(subjectName == "Math"、rating> = 9) 'がtemplate1にあり、' Feature(subjectName == "Physics"、rating> = 9) 'がtemplate2にあるとします。しかし、それらは一緒に**ルール "物理学" **を形成する。あなたは例を教えてください。 –

+0

これらの2つの例は2つのテンプレートではなく、1つのテンプレートの2つのインスタンス*であり、サブジェクト名と評価値はインスタンス化のパラメータです。 - おそらくあなたは私の質問に答えるでしょう - 私はこれらの規則の目的を見ることはできません。 – laune

関連する問題