Decision Model and Notation Avatar
  1. OMG Specification

Decision Model and Notation — Open Issues

  • Acronym: DMN
  • Issues Count: 25
  • Description: Issues not resolved
Open Closed All
Issues not resolved

Issues Summary

Key Issue Reported Fixed Disposition Status
DMN16-106 Duplicated names and labels DMN 1.5b1 open
DMN16-123 Clarification on the FEEL sort function with the precedes function DMN 1.5b1 open
DMN16-119 Knowledge Sources are not fit for ML or AI purposes DMN 1.5 open
DMN16-112 XML serialization is not human friendly DMN 1.5b1 open
DMN16-101 No binding to Python functions DMN 1.5 open
DMN16-77 No way to show dependencies of a grey-box decision service DMN 1.5 open
DMN16-79 Relation conforms to and equivalent do not cover functions with variable arguments DMN 1.5b1 open
DMN16-130 Frequently changing Namespace URIs cause market fragmentation DMN 1.5b1 open
DMN16-105 Add `number(from: number)` function DMN 1.5b1 open
DMN16-205 New Namespace URIs needed DMN 1.5b1 open
DMN16-90 Allow ONNX as well as PMML functions DMN 1.5 open
DMN16-93 Rounding functions introduced in DMN 1.4 should have single parameter version DMN 1.5b1 open
DMN16-134 External Function Definitions should be optional DMN 1.5b1 open
DMN16-85 Grammar rule does not match with the one proposal - typo DMN 1.5b1 open
DMN16-91 Binary operators should not return null DMN 1.5 open
DMN16-135 Copyright section needs update DMN 1.5b1 open
DMN16-137 Acknowledgements for DMN 1.6 contributors needed DMN 1.5b1 open
DMN16-117 Returning null is not enough for reporting/handling errors DMN 1.5b1 open
DMN16-132 Outdated reference to machine readable files DMN 1.5b1 open
DMN16-128 Examples use typeRef for BKMs incorrectly DMN 1.5b1 open
DMN16-104 Missing paragraph break and new constraintType DMN 1.5b1 open
DMN16-94 Filter and Iterator in attribute should not require a collection DMN 1.5b1 open
DMN16-92 Inconsistent capitalization of datatypes names DMN 1.5b1 open
DMN16-82 Behaviour when decimal is provided but integer expected DMN 1.5b1 open
DMN16-81 Range of scale for number is open to interpretation DMN 1.5b1 open

Issues Descriptions

Duplicated names and labels

  • Key: DMN16-106
  • Status: open  
  • Source: Goldman Sachs ( Dr. Octavian Patrascoiu)
  • Summary:

    According to 6.3.1 DMN Element metamodel and 6.3.5 DRG Element metamodel, DRGElements have name and label attributes.

    They also have a variable property that has a name. The DMNDI model also has a label property.

    Possible solution:

    • deprecate the attributes (e.g. DMNElement.label)
    • add a constraint (e.g. DRGElement.name == DRGElement.variable.name)
  • Reported: DMN 1.5b1 — Mon, 27 Nov 2023 10:49 GMT
  • Updated: Sat, 27 Apr 2024 00:20 GMT

Clarification on the FEEL sort function with the precedes function

  • Key: DMN16-123
  • Status: open  
  • Source: Trisotech ( Mr. Simon Ringuette)
  • Summary:

    In section 10.3.4.9 of the DMN 1.5 specification (page 153, PDF 161) the sort function is defined with the possibility to use a precedes boolean function to compare list elements.

    Text should be added after table 80 to clarify how the precedes function deal with equal parameters.

    I would propose that precedes return false when both parameters are equals.

    This new paragraph should also establish the stability expectation of the sort FEEL function (equal elements keep the order of the original list).

    I would propose that the FEEL sort function does not guarantee stability. Guaranteeing stability could impact certain sort performances.

  • Reported: DMN 1.5b1 — Thu, 21 Mar 2024 19:28 GMT
  • Updated: Sat, 27 Apr 2024 00:17 GMT

Knowledge Sources are not fit for ML or AI purposes

  • Key: DMN16-119
  • Status: open  
  • Source: Decision Management Solutions ( Mr. James Taylor)
  • Summary:

    Especially when used in projects that use ML or AI models, the current approach to Knowledge Sources is not fit for purpose. A more structured, template-based approach is needed to specify what information should be captured about a policy document, a regulation, a MVAR/imputation approach, an ML model training regime, data distributions etc. Either a defined set of knowledge source types should be defined with more specific properties or it should be possible to define, exchange and use templates.

  • Reported: DMN 1.5 — Fri, 23 Feb 2024 22:50 GMT
  • Updated: Sat, 27 Apr 2024 00:17 GMT

XML serialization is not human friendly

  • Key: DMN16-112
  • Status: open  
  • Source: Goldman Sachs ( Dr. Octavian Patrascoiu)
  • Summary:

    DMN models are serialized in the XML format. XML notation is not user-friendly.

    I suggest adopting an equivalent textual notation that is user-friendly similar to the HUTN notation for UML https://www.omg.org/spec/HUTN/1.0/PDF

  • Reported: DMN 1.5b1 — Tue, 5 Dec 2023 11:28 GMT
  • Updated: Sat, 27 Apr 2024 00:17 GMT

No binding to Python functions

  • Key: DMN16-101
  • Status: open  
  • Source: Decision Management Solutions ( Mr. James Taylor)
  • Summary:

    There is clear value to ML projects of using DMN to document their projects (requirements, project design, MLOps). ML programmers though use Python not Java for their functions. If DMN can support Java libraries for rules developers, it should support Python for ML developers.

  • Reported: DMN 1.5 — Fri, 3 Nov 2023 22:25 GMT
  • Updated: Sat, 27 Apr 2024 00:17 GMT

No way to show dependencies of a grey-box decision service

  • Key: DMN16-77
  • Status: open  
  • Source: FICO ( Dr. Alan Fish)
  • Summary:

    When a decision service is fully defined, its dependencies are shown as the information requirements of its encapsulated decisions on external decisions or input data. If the encapsulated decisions of a decision service are not fully defined (e.g. temporarily during analysis, or because it is modelling a 3rd-party service with partial obfuscation), this may not be possible. It would be convenient in such cases to be able to draw information dependencies attaching to the boundary of the decision service. Such a service would not be executable.

    This issue is a continuation of https://issues.omg.org/browse/DMN15-36 which was deferred to 1.6.

  • Reported: DMN 1.5 — Wed, 5 Jul 2023 16:05 GMT
  • Updated: Sat, 27 Apr 2024 00:17 GMT
  • Attachments:

Relation conforms to and equivalent do not cover functions with variable arguments

  • Key: DMN16-79
  • Status: open  
  • Source: Goldman Sachs ( Dr. Octavian Patrascoiu)
  • Summary:

    Sections 10.3.2.9.1 Type Equivalence and 10.3.2.9.2 Type Conformance define relations between types.

    The definitions do not contain specification for existing builtin functions with variable arguments (e.g. sum).

    The issue was discovered in TCK when testing function invocations.

  • Reported: DMN 1.5b1 — Tue, 4 Jul 2023 07:57 GMT
  • Updated: Sat, 27 Apr 2024 00:17 GMT

Frequently changing Namespace URIs cause market fragmentation

  • Key: DMN16-130
  • Status: open  
  • Source: Camunda Services GmbH ( Mr. Falko Menge)
  • Summary:

    Currently, the version of DMN used in an DMN XML file is identified by the XML namespace URI, which is therefore changed with every revision. However, frequently changing namespace URIs cause market fragmentation across supported specification versions, as it cannot be assumed that all vendors update to the latest version of the spec at the same time, if at all.

    This forces users to do unnecessary version migrations, or their models would be rejected by a tool as invalid or outdated even though language features used in the model may be perfectly supported by the tool. This issue has also been recognized by Specification Common Elements (SCE) in SCE-117.

    With DMN shipping bugfixes on a yearly pace, the fragmentation of the tool market increases, while the actual number of changes to the XML schema decreases. In fact, DMN 1.6 has zero changes to the XML schema at all but if it would follow the "tradition", it would again declare itself totally incompatible with DMN 1.5 and all prior versions.

    DMN 1.x revisions have been following the backwards compatibility guidelines for machine-readable files and XML schemas as defined in the OMG Policy for Versioning of Specification URIs, File URIs, and XML Namespaces (smsc/2018-08-01). Therefore, DMN 1.x revisions should not change the namespace URL until a version 2.0 introduces breaking changes, which is not planned at the moment.

    The "tradition" to always change the namespace has somewhat accidentally grown:

  • Reported: DMN 1.5b1 — Mon, 22 Apr 2024 19:36 GMT
  • Updated: Sat, 27 Apr 2024 00:17 GMT

Add `number(from: number)` function

  • Key: DMN16-105
  • Status: open  
  • Source: Camunda Services GmbH ( Mr. Maciej Barelkowski)
  • Summary:

    Currently, `string(string_variable) = string_variable`, but `number(number_variable) = null`.
    This leads to surprising results like `number(5) = null` but `number("5") = 5`.
    Let's add a function `number(from)` which would accept `number` as the parameter.

  • Reported: DMN 1.5b1 — Tue, 7 Nov 2023 14:46 GMT
  • Updated: Sat, 27 Apr 2024 00:17 GMT

New Namespace URIs needed

  • Key: DMN16-205
  • Status: open  
  • Source: Camunda Services GmbH ( Mr. Falko Menge)
  • Summary:

    For tools to clearly identify the version of a DMN file or FEEL expression, the XML namespaces of DMN, and FEEL should be updated.

    Namespace URIs must be backwards compatible with the scheme applied in previous versions for tools that support multiple versions in parallel. See:

    DMN DI, DI, and DC namespaces can stay the same as DMN 1.6 DI is unchanged since 1.5 and still based on the same DD 1.1 specification and "OMG Policy for Versioning of Specification URIs, File URIs, and XML Namespaces in OMG Specifications", states explicitly:

    Note: if a spec has many machine readable files, and only some of them change at a given specification version, then only the changed files should get new URIs. That could mean a mixture of URI date segment values for a given specification version.

  • Reported: DMN 1.5b1 — Fri, 26 Apr 2024 21:27 GMT
  • Updated: Fri, 26 Apr 2024 23:42 GMT

Allow ONNX as well as PMML functions

  • Key: DMN16-90
  • Status: open  
  • Source: Decision Management Solutions ( Mr. James Taylor)
  • Summary:

    ONNX https://onnx.ai/ is an open format for ML models that supports some model types, especially neural networks, better than PMML. DMN should consider allow ONNX functions as it does PMML functions.

  • Reported: DMN 1.5 — Fri, 6 Oct 2023 21:56 GMT
  • Updated: Fri, 26 Apr 2024 22:16 GMT

Rounding functions introduced in DMN 1.4 should have single parameter version

  • Key: DMN16-93
  • Status: open  
  • Source: Trisotech ( Mr. Simon Ringuette)
  • Summary:

    Currently the 4 rounding methods: round up, round down, round half up, round half down only have signatures with 2 numeric arguments (n and scale).

    However, pre-existing rounding functions: floor and ceiling have both a single numeric argument version and a 2 numeric argument function (n and scale).

    The single numeric argument is backward compatible with DMN 1.3 (and before). It assumes a scale of 0.

  • Reported: DMN 1.5b1 — Thu, 19 Oct 2023 21:52 GMT
  • Updated: Fri, 26 Apr 2024 21:43 GMT

External Function Definitions should be optional

  • Key: DMN16-134
  • Status: open  
  • Source: Decision Management Solutions ( Mr. James Taylor)
  • Summary:

    The specification lists for 1.6 will list three external function types - Java, PMML and ONNX. It is not reasonable to insist on support for these to be conformant.
    2.1 Conformance Levels should be amended such that Conformance Level 3 excludes the need to support any function Kind other than FEEL - support for Java, PMML and ONNX is not required..

  • Reported: DMN 1.5b1 — Tue, 23 Apr 2024 17:26 GMT
  • Updated: Thu, 25 Apr 2024 03:55 GMT

Grammar rule does not match with the one proposal - typo

  • Key: DMN16-85
  • Status: open  
  • Source: Goldman Sachs ( Dr. Octavian Patrascoiu)
  • Summary:

    Grammar rule does not match to the one in proposal https://issues.omg.org/browse/DMN15-107

    35. numeric literal = [ "" ] , ( digits , [ ".", digits ] | "." , digits, [ ( "e" | "E" ) , [ "+" | "" ] , digits ] ) ;

    should be

    35. numeric literal = [ "" ] , ( digits , [ ".", digits ] | "." , digits) , [ ( "e" | "E" ) , [ "+" | "" ] , digits ] ;

  • Reported: DMN 1.5b1 — Tue, 15 Aug 2023 13:43 GMT
  • Updated: Wed, 24 Apr 2024 21:47 GMT

Binary operators should not return null

  • Key: DMN16-91
  • Status: open  
  • Source: Trisotech ( Mr. Denis Gagne)
  • Summary:

    Here, I am considering the following operators: =, <, >, not(), and, or, in, between

    When considering FEEL for low-codes applications, we should expect these binary operators to always return true or false. Currently, when there is typing error, it returns null.

    ex:
    "a" = 1 => null
    false and "a" => null
    "a" in [0..100] => null
    ...

  • Reported: DMN 1.5 — Tue, 10 Oct 2023 15:57 GMT
  • Updated: Wed, 24 Apr 2024 20:29 GMT


Acknowledgements for DMN 1.6 contributors needed

  • Key: DMN16-137
  • Status: open  
  • Source: Trisotech ( Mr. Denis Gagne)
  • Summary:

    Section 4.1 Acknowledgement needs to be updated with DMN 1.6 RTF contributors.

  • Reported: DMN 1.5b1 — Wed, 24 Apr 2024 14:32 GMT
  • Updated: Wed, 24 Apr 2024 20:11 GMT

Returning null is not enough for reporting/handling errors

  • Key: DMN16-117
  • Status: open  
  • Source: Camunda Services GmbH ( Mr. Falko Menge)
  • Summary:

    Abusing null as an error indicator is not enough for reporting/handling errors.
    In particular, it does not solve the need for users to:

    • know exactly what the root cause of an error was
    • control the reaction to errors

    The specification already mentions error reporting but is neither a strict requirement nor consequently used:

    When a built-in function encounters input that is outside its defined domain, the function SHOULD report or log diagnostic information if appropriate and SHALL return null.

  • Reported: DMN 1.5b1 — Tue, 30 Jan 2024 17:00 GMT
  • Updated: Wed, 24 Apr 2024 20:07 GMT

Outdated reference to machine readable files

  • Key: DMN16-132
  • Status: open  
  • Source: Camunda Services GmbH ( Mr. Falko Menge)
  • Summary:

    Section "12.2 Machine Readable Files" refers to dtc/15-11-12 as a source for XMI and XSDs. This is wrong in several ways:

    • The file is from DMN 1.1
    • It is the ancillary .zip file of the RTF report, which contains a mix of normative files but also internal files of various RTF discussions
    • Therefore, it is restricted to OMG members only
  • Reported: DMN 1.5b1 — Mon, 22 Apr 2024 21:48 GMT
  • Updated: Wed, 24 Apr 2024 19:52 GMT

Examples use typeRef for BKMs incorrectly

  • Key: DMN16-128
  • Status: open  
  • Source: Camunda Services GmbH ( Mr. Falko Menge)
  • Summary:

    There are a few other DMN example files with the same error as in DMN15-74. Also the typeRef, has to move into the body of the BKM not the encapsulatedLogic as this one is the same with BKM.typeRef.

  • Reported: DMN 1.5b1 — Mon, 22 Apr 2024 16:15 GMT
  • Updated: Mon, 22 Apr 2024 16:43 GMT

Missing paragraph break and new constraintType

  • Key: DMN16-104
  • Status: open  
  • Source: Goldman Sachs ( Dr. Octavian Patrascoiu)
  • Summary:

    The below text was a separate paragraph in DMN 1.4. In DMN 1.5 is a part of the previous paragraph. Also, the new typeConstraint property is missing.

    An alternative way to define an instance of ItemDefinition is as a composition of ItemDefinition elements. An instance of ItemDefinition may contain zero or more itemComponent, which are themselves ItemDefinitions. Each itemComponent in turn may be defined by either a typeRef and allowedValues or a nested itemComponent. In this way, complex types may be defined within DMN. The name of an itemComponent (nested ItemDefinition) must be unique within its containing ItemDefinition or itemComponent.

  • Reported: DMN 1.5b1 — Thu, 2 Nov 2023 11:42 GMT
  • Updated: Wed, 17 Jan 2024 00:32 GMT

Filter and Iterator in attribute should not require a collection

  • Key: DMN16-94
  • Status: open  
  • Source: Trisotech ( Mr. Simon Ringuette)
  • Summary:

    Currently the in parameter is defined as: This attribute holds the expression that is evaluated as the collection to be processed.

    The intention was to align with the FEEL version of filter and iterators and therefore apply the the 10.3.2.9.4 Type conversions rule: to singleton list: When the type of the expression is T and the target type is List<T> the expression is converted to a singleton list.

    The definition of the in parameter needs to be updated to properly reflect this.

  • Reported: DMN 1.5b1 — Thu, 19 Oct 2023 21:59 GMT
  • Updated: Wed, 17 Jan 2024 00:32 GMT

Inconsistent capitalization of datatypes names

  • Key: DMN16-92
  • Status: open  
  • Source: Trisotech ( Mr. Simon Ringuette)
  • Summary:

    In section 10.3.1.3 Literals, data types, built-in functions, there is an enumeration of FEEL datatypes.

    The first 3 starts with uppercase letters (Number, String, Boolean) while the other starts with lowercase letters.

    Number, String and Boolean should be number, string, boolean like presented in the Figure 10-26: FEEL lattice type on page 112.

  • Reported: DMN 1.5b1 — Tue, 17 Oct 2023 15:16 GMT
  • Updated: Wed, 17 Jan 2024 00:32 GMT

Behaviour when decimal is provided but integer expected

  • Key: DMN16-82
  • Status: open  
  • Source: Goldman Sachs ( Dr. Octavian Patrascoiu)
  • Summary:

    In the DMN spec the only supported number type is decimal.

    However, there are a few places (e.g. scale in round functions and list access) when an integer is needed.

    What is the expected behavior when an integer is expected but a decimal number is provided? For example 'decimal(123, 5.6)' or ''remove([1, 2], 1.5).

    Is this an error or the engine recovers from the error and uses only the integer part of the number?

  • Reported: DMN 1.5b1 — Thu, 20 Jul 2023 15:34 GMT
  • Updated: Wed, 17 Jan 2024 00:32 GMT

Range of scale for number is open to interpretation

  • Key: DMN16-81
  • Status: open  
  • Source: Goldman Sachs ( Dr. Octavian Patrascoiu)
  • Summary:

    According to the DMN spec (10.3.2.3.1 number) a number is equivalent to "Java BigDecimal with MathContext DECIMAL 128.".

    The Java doc states, " A BigDecimal consists of an arbitrary precision integer unscaled value and a 32-bit integer scale.".

    However, the DMN spec de scale is in range range [−6111..6176].

    The question is what is the correct range for scale?

  • Reported: DMN 1.5b1 — Thu, 20 Jul 2023 15:23 GMT
  • Updated: Wed, 17 Jan 2024 00:32 GMT