Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-1970

[DMN Editor] Hit policies

    XMLWordPrintable

Details

    Description

      Implement hit policies of the DMN Specification:

      • Unique (Single hit policy)
        • No overlap is possible and all rules are disjoint. Only a single rule can be matched. This is the default.
      • First (Single hit policy)
        • Multiple (overlapping) rules can match, with different output entries. The first hit by rule order is returned (and
          evaluation can halt). This is still a common usage, because it resolves inconsistencies by forcing the first hit.
          However, first hit tables are not considered good practice because they do not offer a clear overview of the decision
          logic. It is important to distinguish this type of table from others because the meaning depends on the order of the
          rules. The last rule is often the catch-remainder. Because of this order, the table is hard to validate manually and
          therefore has to be used with care.
      • Priority (Single hit policy)
        • Multiple rules can match, with different output entries. This policy returns the matching rule with the
          highest output priority. Output priorities are specified in the ordered list of output values, in decreasing order of
          priority. Note that priorities are independent from rule sequence.
      • Any (Single hit policy)
        • There may be overlap, but all of the matching rules show equal output entries for each output, so any match can
          be used. If the output entries are non-equal, the hit policy is incorrect and the result is undefined.
      • Output Order (Multiple hit policy)
        • returns all hits in decreasing output priority order. Output priorities are specified in the ordered list of
          output values in decreasing order of priority.
      • Rule Order (Multiple hit policy)
        • Returns all hits in rule order. Note: the meaning may depend on the sequence of the rules.
      • Collect ( Multple hit policy with the aggregation operators +, >, < and #)
        • Returns all hits in arbitrary order. An operator (‘+’, ‘<’, ‘>’, ‘#’) can be added to apply a simple function to the outputs. If no operator is present, the result is the list of all the output entries. Collect operators are:
          a) + (sum): the result of the decision table is the sum of all the distinct outputs.
          b) < (min): the result of the decision table is the smallest value of all the outputs.
          c) > (max): the result of the decision table is the largest value of all the outputs.
          d) # (count): the result of the decision table is the number of distinct outputs.
          Other policies, such as more complex manipulations on the outputs, can be performed by post-processing the
          output list (outside the decision table).

      Please ensure that the HIT policy can be changed whenever during modeling the decision table.

      Attachments

        Issue Links

          Activity

            People

              manstis@redhat.com Michael Anstis
              rh-ee-jomarko Jozef Marko
              Jozef Marko Jozef Marko
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: