DMN Demystified, Part 7. Conformance Levels

While unifying decision modeling and execution is a laudable goal, OMG realizes not all DMN vendors and practitioners want to do that. So DMN defines three levels of conformance to the standard. A tool vendor can implement just a sliver of DMN and still proudly slap that "standards-based" label on their software.

Conformance Level 1 (CL1) applies to tools that support DRDs and non-executable decision tables. Non-executable means the decision logic may be defined informally, in natural language, for example, and makes no presumption of completeness, consistency, or even common sense. CL1 tools are intended to engage business users in defining decision management requirements for developers working in some other system.

Conformance Level 2 (CL2) is DMN's baseline for executable decision logic. CL2 tools support DRDs, decision tables, and literal expressions based on S-FEEL, a small subset of FEEL expressions - basically arithmetic and simple comparisons. That's sufficient to handle a significant fraction of user scenarios, however. While the spec does not require it, it is reasonable to assume that a CL2 tool is able to verify completeness and consistency of its decision tables and generate decision output values for user-defined inputs.

Conformance Level 3 (CL3) assumes support for FEEL, boxed expressions, data tables ("relations"), function invocation, and all the really good stuff. CL3 is the real unification of decision modeling and execution. Needless to say, those tools have not appeared yet.

What the DMN spec failed to anticipate is the fact that while the Conformance Levels are specified in terms of FEEL and S-FEEL, first-generation tool vendors are not using them! Many claim that their proprietary expression languages provide equivalent capability, and that's good enough. I think that kind of violates the spirit of a standard, though. What do you think?