DMN input data from knowledge source

I’m relatively new to DMN, and haven’t been able to find answers to these interrelated questions online (OMG, etc.), or in Bruce Silver’s books:

  1. Can a knowledge source be connected to input data? For example, my business stakeholders refer to a data table in subordinate legislation to get a value that they key into a decision engine.

  2. If so, can a data repository (such as a database) be a knowledge source? For example, it would help me document business decisions by showing the data repository from which input data is obtained.

  3. Can input data be connected to one another, one as a subset of another? For example, a measurement taken from a water bore yields several discrete data items used by various decisions in my DRD.


Naturally, minutes after posting my query above, I found the answer (‘Yes’) to question #1 on pp. 24 and 26 of the DMN specification.

Hi @CamK and welcome to the forum,

We have to distinguish between the DMN Standard and the subset of DMN that is executable in Camunda. First, I’ll start with the DMN standard:

  1. You found the answer to question 1 yourself. Yes, it is possible to connect a data input to a knowledge source.
  2. It is uncommon to use a data repository as a knowledge source. Yet, it should be possible. Knowledge sources are often reference documents, such as policies and laws, that underlie the decision logic. Yet, it is possible to define the location of a knowledge source via a URI (see p. 44 of the DMN standard). You could link to a certain database here (via a database URI). In the examples of the DMN specification, you see spreadsheets and other documents.
  3. No, DMN does not support modeling a hierarchical structure of data inputs. But, a data input can refer to a structured data input with multiple fields. Within the decision logic, you can access individual fields.

Second, let’s talk about executing decisions in Camunda:
1/2: For Camunda, the requirements level acts mostly as a documentation. Knowledge sources have no impact on the execution. In particular, knowledge sources are ignored by Camunda (as they have no execution semantics).
3: You can use complex data structures as an input to your decision.

I hope this helps!

1 Like

Hi Stephan,

Thanks very much for your prompt and thorough reply. I really appreciate your help and advice.

Cam (Queensland)