设为首页 | 收藏本站
18515218668

DMN元模型详解

发表时间:2026-04-01 10:55作者:Together规则引擎
文章附图

根据DMN规范,DMN元模型(Metamodel)是基于MOF(元对象设施)定义的抽象语法,它规定了决策模型的结构、元素属性及其相互关系。DMN元模型确保了模型在不同工具之间的可交换性。

4.png

以下是DMN元模型的核心组成部分详解:

1.核心基类与层级结构

DMNElement(抽象基类):所有DMN元素的超类。它提供可选的id(模型内唯一)、description(描述)和label(短说明)属性。

NamedElement(抽象类):继承自DMNElement,增加了强制性的name(名称)属性。

Definitions(根容器):DMN决策模型的最外层容器。它定义了可见性范围、命名空间(Namespace)、默认的表达式语言和类型语言,并包含所有的DRG元素、项目定义和导入信息。

2.决策需求图(DRG)元素元模型

DRGElement是所有在DRD中有图形表示的元素的抽象基类:

Decision(决策):核心元素,由decisionLogic(表达式形式的决策逻辑)和各类需求(信息、知识、权威需求)组成。它还定义了一个InformationItem来存储输出结果。

InputData(输入数据):定义模型外部输入的变量,通过InformationItem存储值。

Invocable(可调用元素):

BusinessKnowledgeModel(BKM):封装可重用的决策逻辑(如函数或决策表),必须包含一个FEEL框式函数定义。

DecisionService(决策服务):封装一组决策逻辑,定义了输入数据、输入决策、封装决策和输出决策的接口。

KnowledgeSource(知识来源):表示权威机构或知识源,用于提供指导或约束。

3.需求(Requirements)元模型

需求用于连接DRG元素,表示它们之间的依赖关系:

InformationRequirement:建模决策对输入数据或其他决策的依赖(实线箭头)。

KnowledgeRequirement:建模对Invocable元素(BKM或服务)的调用(虚线箭头)。

AuthorityRequirement:建模元素对KnowledgeSource的权威依赖(带实心圆头的虚线箭头)。

4.决策逻辑与表达式元模型

Expression是所有决策逻辑元素的抽象超类:

LiteralExpression(文字表达式):以文本(如FEEL语言)描述逻辑的简单表达式。

DecisionTable(决策表):包含输入子句(InputClause)、输出子句(OutputClause)和一组规则(DecisionRule)。它具有hitPolicy(命中策略)和aggregation(聚合函数)等关键属性。

Invocation(调用):用于调用BKM或决策服务,包含一系列绑定(Binding),将实际输入参数与形式参数关联。

框式表达式(BoxedExpressions):FEEL扩展定义的元模型,包括Context(键值对集合)、List(列表)、Relation(关系表)、FunctionDefinition(函数定义)等。

5.数据建模元模型

ItemDefinition(项目定义):定义数据的结构和取值范围。支持通过引用内置类型、组合嵌套定义(itemComponent)或定义函数签名(FunctionItem)来实现。

InformationItem(信息项):在逻辑层代表变量或参数,通过typeRef引用ItemDefinition。

6.图表交换(DMNDI)元模型

DMNDI专门用于记录图表的视觉外观,而非逻辑语义:

DMNDI:包含所有DMNDiagram和共享样式的容器。

DMNShape&DMNEdge:分别表示图表中的形状(节点)和边(连线)。它们通过dmnElementRef属性引用上述抽象语法中的DMNElement。

DMNStyle:存储非规范性的视觉属性,如填充颜色、边框颜色和字体。

7.扩展性(Extensibility)

DMN元模型设计为可扩展的,允许通过ExtensionElements(容器)和ExtensionAttribute(带名属性)将其他元模型(如自定义属性或第三方工具元数据)附加到任何DMN元素上,而不会破坏标准的一致性。

精选文章
公众号
关于我们
联系方式
让您的业务更自动化、智能化!
联系邮箱:   zhangyi@rongtek.com      wangyilong@rongtek.com
咨询热线:185 1521 8668        183 3562 2627
电话:010-8200081