This is an internal documentation. There is a good chance you’re looking for something else. See Disclaimer.

Qualification

We use Drools in the qualification module to calculate averages, rounding values, setting dispenses and implement promotion rules. Promotion rules are defined in the Promotion_rule entity, which can be grouped together to create packages of rules. All our base rules are defined in the input-calculate.drl file.

../../../../_images/drools_qualification.png

a rough overview how we build our knowledge base and start the evaluation

Facts

A summary of the available and most often used facts in the qualification context. See the integration handbook for detailed documentation.

Node

This represents a node in the qualification structure. It can be either a EvalNode, wrapping a Evaluation_node, or a RatingNode, wrapping a Input_node.

Grade

This represents a numeric grade, the average of potentially multiple different exams or nodes. Any input with the type grades, grades_max, grade_mandatory, grades_drop, or points_threshold will produce these facts.

TotalPoints

This represents the sum of potentially multiple different exams where points can be entered. Both the points and points_threshold inputs will get summed.

ChoiceRating

This represents the selection from a list of values from choice_rating inputs.

Presence

This represents the presence of a student in a given node. This might a manually entered value or automatically calculated. This is only available if a input of type presence exists.

IsDispensed

This represents a student being dispensed from a node. Check for the existence of this fact if you want to validate if a student is dispensed.

Status

This fact is used to find available status to set on a promotion.

ArrayList

This is the normal Java ArrayList, but it can be used in Drools together with the from collect instruction to easily collect a list of facts.

Sum

This fact is a modified list that can also calculate sums or averages of its contents. It can be used the same way as ArrayList and then checked for its calculations.

Conclusion

These facts symbolize some rule that got triggered and usually marks a participant as either having passed or not passed, as well as a potential border case situation. If you want to check for previous conclusions in your own rule, make sure to mark your rule with a sufficently low salience (-1000 generally seems to do the trick) and no-loop.

Utils

A summary for the available utility classes in the qualification Drools context. See the integration handbook for detailed documentation.

ConclusionFactory

This class is used together with Status facts to set a promotion status for the current evaluation. The final status is decided by prioritizing all inserted status by their weights, filtering out any that where inserted with a negative flag and picking the first remaining one.

Examples

Since customers and integrators can write rules as well, these can be found in our regular manual.