[[.:..:start|Powrót do samurai:start]]
====== UserV ======
* {{.:userv-desc.pdf|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: