Powrót do samurai:start

UserV

Orginal Rules

In comparison to orginal model, models implmented in CLIPS, Jess and Drools assumes that concept of Client and Driver are the same. This is because, it is impossible to support many drivers or cars simultaneously in XTT2 model.

Model in CLIPS

Model 1: userv-clips.clp

Rules: 84

Uwagi:

Rule automobile-eligibility-potential-occupant-injury::POIR-exhigh2 must have increased priority in order to fire first within the group. This rule is activated by different set of facts than other rules within this group and thus its LHS can be satisfied simultaneously with LHS of other rules. In case when this and another rule are satisfied, firing this rule in the second place may provide to incorrect (to low) value of POIR: the first rule change it to low and pops the module from the focus stack preventing this rule from firing and setting POIT to extremely high.

Model in Jess

Model 1: userv-jess.clp

Rules: 84

Uwagi:

Definitions of numerical-based slots in Jess fact model should also provide default values. This is because, Jess has only one rete network for all modules. Hence, some rules from the modules that have not current focus can be evaluated as well. If a comparison of two numerical fields are performed within such rules then Jess can cause error in case if at least one of these values are not set yet. This situation can be observed when the default value of CarFacts → BasePremium is removed
This error does not appear in CLIPS because it generates a separated rete network for each module.

Model in Drools

Model 1: userv.java userv-drools.drl

Rules: 85

Uwagi:

Due to the fact that drools does not provide corresponding mechanisms for execution control like CLIPS or Jess, it is not possible to mix rules that should be fired exclusively with rules that can be fired several times in one module. This is why, the “automobile-eligibility-potential-theft” module must have a corresponding module that contains only one rule, that assert fact of the CarFact type.

Global variables cannot be defined and initialized within DRL file. They must be created in java file and then inserted into working memory:

Integer year = 2013; ksession.setGlobal("currentYear", year);

and in DRL file:

global Integer currentYear;

Model in XTT2

Model 1:

Rules:

Uwagi: