没有合适的资源?快使用搜索试试~ 我知道了~
在DMN中,所有的decision logic都是用boxed expression展现的。Clause 7.2介绍了boxed expression的概念并且定义了两个简单类:boxed literal expressions 和boxed invacations。Clause 8 中定义的decision tables就是一种非常重要的boxed expression。此章节通过定义其他种类的boxed expression,完善了decision logic的图形符号(graphical notation)。 Box中的表达式都是FEEL表达式。FEEL是Friendly Enough Expression Language的缩写
资源推荐
资源详情
资源评论
10. 表达语言(FEEL)
10.1. 介绍
在 DMN 中,所有的 decision logic 都是用 boxed expression 展现的。Clause 7.2 介绍了 boxed
expression 的概念并且定义了两个简单类:boxed literal expressions 和 boxed invacations。
Clause 8 中定义的 decision tables 就是一种非常重要的 boxed expression。此章节通过定义其
他种类的 boxed expression,完善了 decision logic 的图形符号(graphical notation)。
Box 中的表达式都是 FEEL 表达式。FEEL 是 Friendly Enough Expression Language 的缩写,
具有以下特点:
没有副作用
简单的数据模型(通过 numbers, dates, strings, lists, contexts 搭建)
大众化的语法设计
基于 SQL 和 PMML 的三值逻辑(true,false,null)
此章节完整的规范了 FEEL 的语法和语义。语法被指定为 grammar (10.3.1)。一部分为了
被展现成 boxed expression 的语法被指定为 meta-model (10.5)。
在 DMN 中,FEEL 扮演了两个角色:
1.1 Boxed expression(比如 decision table)中的文字符号
1.2 作为一个稍大的语言来展现表达式和 DRG 的逻辑,为了统一简单的表达语义
10.2. 符号
10.2.1. Boxed Expressions
此章节是建立在 decision logic 和 boxed expressions(clause 7.2)的一般符号之上。
我们把一个 decision logic 的图形符号定义为 boxed expressions。这个符号可以将 decision logic
模型分解成能和 DRG artifacts 关联的小模块。DRG 加上来自完善的图形化的语言的 boxed
expressions 共同定义了 decision models.
一个 boxed expression 是
一个 decision table,
一个 boxed FEEL expression,
一个 boxed invocation,
一个 boxed context,
一个 boxed list,
一个 relation, 或者
一个 boxed function.
Boxed expressions是被循环的定义的,也就是,boxed expressions可以包含其他的
boxed expressions。顶层的boxed expression对应了一个DRG artifact的decision logic。
这个boxed expression必须包含一个name box,其中含有对应DRG artifact的名字。
Name box可以被附加在一个Box的顶部,如图38:
图38:Boxed expression
或者,可以用虚线来连接name box和expression box,如图39:
图 39:Name box 和 expression box 分离的 Boxed expression
Name 是DRG元素和decision logic元素之间唯一的联系。图形化工具是用来支持图形化联系
的,比如,点击一个decision shape可以打开一个decision table。
10.2.1.1. Decision tables
这里的可执行的 decision table 和 Clause 8 中定义的 decision table 使用相同的符号。执行语
义在 Clause 10.3.2.7 中定义了。
10.2.1.2. Boxed FEEL expression
Boxed Feel expression 是在表单元格中的 FEEL 表达式 e,(定义在 Clause 10.3.1),如图 40:
图 40:Boxed Feel expression
一个包含 e 的 boxed expression 的意义是 FEEL(e, s),s 是范围。这个范围包括了 DRD 推导出
的 context(见 10.4)和任何包含 e 的 boxed context。
实际操作中,我们会用一个相对简单的 e,然后通过小的 boxed expression 组合成较大的 boxed
expression。
10.2.1.3. Boxed Invocation
Boxed invation 的语法的定义在 Clause 7.2.3。次语法可以用在调用各种函数(比如:
business knowledge model, FEEL builtin function, boxed function definition)。
标有“invoked business knowledge model”的 box 可以是任何值是函数的 boxed
expression,如图 41:
图 41:Boxed invocation
这个盒子化的语法(boxed syntax)对应了文本语法(定义在 grammar rules 40, 41, 42, 43)。
Boxed invocation 使用了 named parameters。包含 positional invocation 文 本 的 Boxed
expression 可以实现 Positional invocation。
这个盒子化的语法(boxed syntax)需要至少一个参数。没有参数的函数必须通过文本语法
调用,比如:
Boxed invovation 的 正 规 意 义 是 通 过 等 价 的 文 本 invocaiton 的 语 义 给 出 的 , 比 如 :
function-valued expression(parameter: binding expression, parameter: binding
expression, …)。
10.2.1.4. Boxed Context
Boxed context 是 n 个(name,value)组合的集合,选择性的可以有一个 result value。每个
组合是一个 context entry。Context entry 可以通过空格分开,用虚线来连接(在顶部或者左
侧)。这样通过看纵向 context 的左侧边缘或者看横向 context 的顶部边缘就可以轻松的分辨
出所有的 entry。 单元格必须按一下方式排列(图 42,43):
图 42:纵向 context
图 43:横向 context
Context 中的 context entry 常用于把复杂的 expression 分解成多个较简单的 expression,每
个分解后的 expression 都有命名。可以把这些 context entry 当做中间结果。比如,没有最终
结果的 box 可以用来展现案例数据(图 44)。
图 44:context entry 的用途
有最终结果的 box 用来展现计算过程(图 45)。
图 45:最终结果 box 的使用
当 decision table 是(没结果)的 context entry,输出单元格可以用来命名 entry,从而节省空
间。任何格式的 decision table (format decision table???)都可以用在纵向 context。右
侧边缘不用对齐。Context entry 之间可以用空格隔开。
图 46:有 decision table entry 的纵向 context
建议使用不同颜色。
Name 必须是合法的 FEEL name。 Value 和 result 都是 boxed expression。
Boxed context 可以把 decision table 作为 result, 是命名好的 context entry 计算输入并给输入
命名。例(图 47):
剩余46页未读,继续阅读
资源评论
SeameNow
- 粉丝: 10
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
- 音乐展示网页、基于Stenography的图像数字水印添加与提取,以及基于颜色矩和Tamura算法的图像相似度评估算法py源码
- 基于EmguCV(OpenCV .net封装),图像数字水印加解密算法的实现,其中包含最低有效位算法,离散傅里叶变换算法+文档书
- 基于matlab+DWT的图像水印项目,数字水印+源代码+文档说明+图片+报告pdf
- (优秀毕业设计)基于python实现的数字图像可视化水印系统的设计与实现,多种数字算法实现+源代码+文档说明+理论演示pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功