You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.
This document describes how the decision graph is stored in such a way it follows the XSD of the DMN specification.
The goal of storing a decision is that an organization can rebuild a model of the decisions that has been made by the runtime. By rebuilding the decisions with the values organization have insight how decisions are made. The meta model for the exchange of decisions according to the DMN specifications prescribes that each decision, each, Business knowledge model and each input is a separate DMN element. So for each type a description will be given here how the information will be stored.
More information on the specification of the meta model and the XSD can be found here: http://www.omg.org/spec/DMN/1.0/Beta1/
Description of all the parts of a DRG at runtime
<?xml version="1.0" encoding="UTF-8"?> <Definitions xmlns="http://www.omg.org/spec/DMN/20130901" xmlns:bq="http://www.blueriq.com/dmn/drg" id="DRG_for_Application.RequiredMonthlyInstallment" namespace="http://www.blueriq.com/dmn"> <Decision id="decision1" name="Application.RequiredMonthlyInstallment"> <bq:value>284.219374515558</bq:value> <bq:instanceId>2e479125-32c2-47c8-bf31-7ea245687f6a</bq:instanceId> <bq:sourceType>Default</bq:sourceType> <informationRequirement> <InformationItem id="decision1InformationItem0" name="RequestedProduct.Amount" /> <requiredInput>inputData1</requiredInput> </informationRequirement> <informationRequirement> <InformationItem id="decision1InformationItem1" name="Control.MonthlyInterest" /> <requiredDecision>decision2</requiredDecision> </informationRequirement> <informationRequirement> <InformationItem id="decision1InformationItem2" name="RequestedProduct.Term" /> <requiredInput>inputData3</requiredInput> </informationRequirement> <informationRequirement> <InformationItem id="decision1InformationItem3" name="RequestedProduct.MonthlyFee" /> <requiredDecision>decision3</requiredDecision> </informationRequirement> <knowledgeRequirement> <requiredKnowledge>businessKnowledgeModel3</requiredKnowledge> </knowledgeRequirement> </Decision> <Decision id="decision2" name="Control.MonthlyInterest"> <bq:value>0.0050</bq:value> <bq:instanceId>3ccfa67e-686d-4724-b9ac-c04068716586</bq:instanceId> <bq:sourceType>Default</bq:sourceType> <informationRequirement> <InformationItem id="decision2InformationItem0" name="RequestedProduct.Rate" /> <requiredInput>inputData2</requiredInput> </informationRequirement> <knowledgeRequirement> <requiredKnowledge>businessKnowledgeModel1</requiredKnowledge> </knowledgeRequirement> </Decision> <Decision id="decision3" name="RequestedProduct.MonthlyFee"> <bq:value>20.0</bq:value> <bq:instanceId>100ba8bf-25a7-48de-8f25-6508bd090941</bq:instanceId> <bq:sourceType>System</bq:sourceType> <informationRequirement> <InformationItem id="decision3InformationItem0" name="RequestedProduct.ProductType" /> <requiredInput>inputData4</requiredInput> </informationRequirement> <knowledgeRequirement> <requiredKnowledge>businessKnowledgeModel2</requiredKnowledge> </knowledgeRequirement> </Decision> <InputData id="inputData1" name="RequestedProduct.Amount"> <bq:value>10000.0</bq:value> <bq:instanceId>100ba8bf-25a7-48de-8f25-6508bd090941</bq:instanceId> <bq:sourceType>User</bq:sourceType> </InputData> <InputData id="inputData2" name="RequestedProduct.Rate"> <bq:value>6.0</bq:value> <bq:instanceId>100ba8bf-25a7-48de-8f25-6508bd090941</bq:instanceId> <bq:sourceType>User</bq:sourceType> </InputData> <InputData id="inputData3" name="RequestedProduct.Term"> <bq:value>36.0</bq:value> <bq:instanceId>100ba8bf-25a7-48de-8f25-6508bd090941</bq:instanceId> <bq:sourceType>User</bq:sourceType> </InputData> <InputData id="inputData4" name="RequestedProduct.ProductType"> <bq:value>Standard loan</bq:value> <bq:instanceId>100ba8bf-25a7-48de-8f25-6508bd090941</bq:instanceId> <bq:sourceType>User</bq:sourceType> </InputData> <BusinessKnowledgeModel id="businessKnowledgeModel1" name="Control.MonthlyInterest-default-expression" /> <BusinessKnowledgeModel id="businessKnowledgeModel2" name="MonthlyFee" /> <BusinessKnowledgeModel id="businessKnowledgeModel3" name="Application.RequiredMonthlyInstallment-default-expression" /> </Definitions>
XML representation of the decision requirements graph shown above.
The XML document contains the entire decision requirements graph (DRG) from the image shown above.
All the XML components for a single DRG are placed between the definitions start and end tag.
Decision
Between the decision tags, the DRG components are placed to identify and determine the decision.
The name attribute of the decision refers to an entity attribute where a decision had to be made for.
The id attribute uniquely indentifies the decision in the entire diagram.
Inside the decision other default and custom XML components are included. The custom components can be indentified by the bq prefix.
The value element contains the value after determination of the decison.
To determine a decision, information is needed. To accomplish this, "informationRequirement" tags are included inside a decision.
The "informationRequirement" tags point on their way forth to input data ("inputData") or other decisions ("decision").
For determining a decision, logic is needed. This logic can come from different sources, for example a decision table, bussiness rule, default rule etc.
To indicate which logic is used to determine the decision, a "knowledgeRequirement" tag is placed inside the decision.
For example the entity attribute "RequiredMonthlyInstallment where are DRG is made for, uses a default rule ("A rule that is linked to this attribute and evaluated each time a underlying component changes.").
BusinessKnowledeModel
InputData
The metamodel of a DMN element
In the XSD the model will be stored by using three types of DRG elements, the InformationRequirement (a reference to input and decisions) and the KnowledgeRequirement (a reference to a BusinessKnowledgeModel)
Decision
A DRG element of the type decision will consist of the parts described underneath
DMNElement attributes and model associations
XSD Attribute | Description | Data from runtime | Required |
name: String [0..1] | The name of this element. | Technical name attribute | Yes |
id: String | The string that identifies this DMNElement uniquely within its containing Definitions element. | Unique ID | Yes |
Decision attributes and model associations
Attribute | Description | Data from runtime | Required |
informationRequirement: InformationRequirement [*] | This attribute lists the instances of InformationRequirement that compose this Decision. | Reference to all the InformationRequirements used as to make the decision (Informationrequirement is a reference to an input or another decision) | No |
knowledgeRequirement: KnowledgeRequirement [*] | This attribute lists the instances of KnowledgeRequirement that compose this Decision. | Reference to the knowledge requirement used to make the decision (Knowledge requirement contains a reference to the logic element used to set the value) | No |
Custom part for Blueriq
Attribute | Description | Required |
---|---|---|
Value: 1 : 1 | The value for the decision | Yes |
Sourcetype 1: 1 | the sourcetype for the decision (User, System, Constant , etc) | Yes |
Justification 1 : 1 | The justification for the result | No |
InputData
A DRG element of the type decision will consist of the parts described underneath
DMNElement attributes and model associations
Attribute | Description | Data from runtime | Required |
name: String [0..1] | The name of this element. | Technical name attribute | Yes |
id: String | The string that identifies this DMNElement uniquely within its containing Definitions element. | Unique ID | Yes |
InputData attributes and model associations
Attribute | Description | Data from runtime | Required |
Custom part for a Blueriq
Attribute | Description | Required |
---|---|---|
Value: 1 : 1 | The value for the decision | Yes |
Sourcetype 1: 1 | the sourcetype for the decision (User, System, Constant , etc) | Yes |
BusinessKnowledgeModel
DMNElement attributes and model associations
Attribute | Description | Data from runtime | Required |
name: String [0..1] | The name of this element. | Technical name used logic element (expression for default expression Constant fro constant) | Yes |
id: String | The string that identifies this DMNElement uniquely within its containing Definitions element. | Unique ID | Yes |
BusinessKnowledgeModel attributes and model associations
Attribute | Description | Data from runtime | Required |
InformationRequirement
DMNElement attributes and model associations
Attribute | Description | Data from runtime | Required |
name: String [0..1] | The name of this element. | Technical name attribute | Yes |
id: String | The string that identifies this DMNElement uniquely within its containing Definitions element. | Unique ID | Yes |
InformationRequirement attributes and model associations
Attribute | Description | Data from runtime | Required |
requiredDecision: Decision [0..1] | The instance of Decision that this InformationRequirement associates with its containing Decision element. | ID of a DRGelement containing a decision | No |
requiredInput: InputData [0..1] | The instance of InputData that this InformationRequirement associates with its containing Decision element. | ID of a DRGelement conatining an Input | No |
KnowledgeRequirement
DMNElement attributes and model associations
Attribute | Description | Data from runtime | Required |
name: String [0..1] | The name of this element. | Technical name attribute | Yes |
id: String | The string that identifies this DMNElement uniquely within its containing Definitions element. | Unique ID | Yes |
KnowledgeRequirement attributes and model associations
Attribute | Description | Data from runtime | Required |
requiredKnowledge: BusinessKnowledgeModel | The instance of BusinessKnowledgeModel that this KnowledgeRequirement associates with its its containing Decision or BusinessKnowledgeModel element. | ID of a DRGelement containing a BusinessKnowledgeModel | Yes |