Attributes may be expressed in either the positive form ("the person is happy") or negative form ("the person is not happy") in both conclusions and conditions. For example, you may write "the person is not happy if…" and the rule engine will recognize this as the negative form of "the person is happy if". When compiled, the rule will be marked up like this:
[b10] the person is happy
and
[not b10] the person is not happy
Both of these statements are representations of the same attribute and will be processed as such by the Oracle Determinations Engine.
Repeating a conclusion can result in two conflicting criteria for the conclusion to be satisfied. For example:
[b11] the person is considered an employee if
[b3] the person works set hours
and
[not b11] the person is not considered an employee if
[b4] the person owns the equipment required to do the job
In this example, if a person works set hours and owns the equipment, is the person an employee or not? The logic is unclear. The logic needs to be grouped or prioritized to make that decision.
When using both the positive and negative forms of an attribute within a rulebase, take care that the attribute is only concluded once.
To avoid repeating the conclusion, an exclusion clause can be linked in to the conclusion rather than simply restating the same conclusion in the negative. For example:
[b11] the person is considered an employee if
[b3] the person works set hours and
[not b4] the person does not own the equipment required to do the job