You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

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>e2575ae5-e344-46bd-88b5-f5a98cb76ca8</bq:instanceId>
      <bq:sourceType>Default</bq:sourceType>
      <bq:justificationText justificationTextId="RequiredMonthlyInstallmentCalculation">
		The formula is M = P * (J / (1 - (1 - (1 + J)^ -N)) - F. 
		M: monthly payment. 
		P: principal or amount of loan. 
		J: monthly interest; annual interest divided by 100, then divided by 12. 
		N: number of months of amortization, determined by length in years of loan. 
		F: monthly fee.
	  </bq:justificationText>
      <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>7e72ae81-34a8-4c52-8538-0e09549ab3fe</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>e7b51f3c-0181-42b9-94f3-dd6fc05ddae3</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>e7b51f3c-0181-42b9-94f3-dd6fc05ddae3</bq:instanceId>
      <bq:sourceType>User</bq:sourceType>
   </InputData>
   <InputData id="inputData2" name="RequestedProduct.Rate">
      <bq:value>6.0</bq:value>
      <bq:instanceId>e7b51f3c-0181-42b9-94f3-dd6fc05ddae3</bq:instanceId>
      <bq:sourceType>User</bq:sourceType>
   </InputData>
   <InputData id="inputData3" name="RequestedProduct.Term">
      <bq:value>36.0</bq:value>
      <bq:instanceId>e7b51f3c-0181-42b9-94f3-dd6fc05ddae3</bq:instanceId>
      <bq:sourceType>User</bq:sourceType>
   </InputData>
   <InputData id="inputData4" name="RequestedProduct.ProductType">
      <bq:value>Standard loan</bq:value>
      <bq:instanceId>e7b51f3c-0181-42b9-94f3-dd6fc05ddae3</bq:instanceId>
      <bq:sourceType>User</bq:sourceType>
   </InputData>
   <BusinessKnowledgeModel id="businessKnowledgeModel1" name="Control.MonthlyInterest-default-expression" />
   <BusinessKnowledgeModel id="businessKnowledgeModel2" name="DecisionTableMonthlyFee" />
   <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 identifies the decision in the entire diagram. Inside the decision other default and custom XML components are included. The custom components can be identified by the bq prefix. The value element contains the value after determination of the decision. 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, business rule, default rule etc. To indicate which logic is used to determine the decision, a knowledgeRequirement tag is placed inside the decision. Take for example the attribute RequiredMonthlyInstallment where a DRG is made for, it uses a default rule.

When an attribute contains a justification text, it will also be displayed inside the DRG graph and the XML variant. In XML this text is displayed between the JustificationText start and end tags inside a decision.


BusinessKnowledeModel
Inside the name attribute of the BusinessKnowledeModel the name of a logic component, such as a decision table, default rule, business rule is placed.

InputData
The data that is set by the user is placed inside the InputData element tags.

  • No labels