There are two key knowledge objects in DMN—Business Knowledge Models (BKMs) and Knowledge Sources. They have quite different purposes despite the similar names.
- Knowledge Sources are for documentation.
- BKMs are about implementation.
Possible Points of Confusion
- Because both objects involve “knowledge”, there is some confusion about how to document source documents. These are Knowledge Sources not BKMs.
- Some DMN examples show a BKM for every Decision, giving the impression that decision logic can only be specified in a BKM. The DMN specification makes it clear this is not the case.
- The value of BKMs in allowing reuse is real when one is trying to store the implementation definition outside the BRMS and then generate code for it. If you are linking directly to a BRMS for implementation, then BKMs are unnecessary.
Why Doesn’t DecisionsFirst Modeler Have BKMs?
Our decision modeling software, DecisionsFirst Modeler, does not capture implementation details such as business rules or decision tables in our models as this results in duplication—there would be one version in the model and another in your implementation environment. Instead we link Decisions to Implementation Components representing the business rules, decision tables or decision trees in your BRMS. Because the relationship between Decisions and Implementation Components is many:many, reuse of logic between Decisions is supported.
- With a BKM, one might define a BKM and write rules for it before linking it to several decisions.
- In DecisionsFirst Modeler one would simply write these rules in a BRMS like IBM ODM and then link the resulting Implementation Component to the Decisions.
This has the same effect but directly leverages the BRMS directly rather than imposing BKMs as a layer of indirection.