There are two key knowledge objects in DMN—Business Knowledge Models (BKMs) and Knowledge Sources. They have quite different purposes despite the similar names. To help clarify, we have published a Best Practices Brief, Knowledge Objects in DMN.
Knowledge Sources Are For Documentation
Knowledge Sources are the documents, committees, regulations, policies or people that define how a decision should be made. They are not executable and are intended to reflect real-world things—things that exist outside of a business rules management system (BRMS) project for instance.
BKMs Are About Implementation
BKMs allow the logic of a decision to be written as a reusable function rather than directly for a decision.
- Some methodologies call for this to be done for EVERY decision
We consider this unnecessary overhead as it doubles the number of objects in a model.
- Some methodologies keep decisions at a high level and show the detail with a tree of BKMs.
We consider this poor practice as it hides business decisions inside the implementation rather than including them in a business-facing decision requirements model.
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.
For more information, read our Best Practices Brief, Knowledge Objects in DMN.