javascript - 逻辑表达式可视化工具

标签 javascript .net rule-engine business-rules

我开发了一个业务规则引擎,用户可以用 bool 语法编写规则。

例如规则是:R1、R2、R3

示例表达式:(R1 AND R2) OR R3

我想可视化这个表达式。例如,可视化框架可以在 TreeView 中显示表达式并插入颜色。

是否有任何 JavaScript 或任何其他代码框架可以实现此目的? (应用程序是一个 ASP.NET 应用程序)

最佳答案

尽管我的回答可能无法帮助您轻松解决问题,但我还是忍不住回答这个问题。早在 1998 年,我的第一个 Javascript 项目就是一个 bool 表达式可视化工具。

该代码在任何地方都不可用,因此我无法共享它。 (我怀疑我的前雇主是否还拥有一份副本。)即使是这样,它也可以在 IE4、5.0 和 5.5 上运行;我认为它从未针对 IE6 进行过更新,也不知道它是否在那里运行。

但我仍然可以告诉你基本的想法,即使在今天,我仍然对结果感到相当自豪,尽管我知道看到实际的代码我会不寒而栗。

当然, bool 表达式可以很容易地用树结构表示。每个非叶节点都是树中的 AND、OR 或 NOT 节点,并且 AND 和 OR 可以有多个子节点(因此我将 ("A 和 B 和 C 和 D"表示为 AND(A, B ,C,D),不仅仅是二进制 AND 的组合。)为了显示数据,我简单地使用了嵌套框。AND 水平运行,OR 垂直运行,关键字“and”和“or”在 block 之间重复。NOT只是一个盒子中的盒子,外面有关键字“not”。

我的叶节点与用户可用于测试的真实数据场景相关联,因此它们看起来不仅仅是“A”和“B”,例如

age < 30
gender = 'F'
income > 40000

用户可以在年龄性别收入字段中输入示例数据,输出将更改为红绿色显示显示表达式的每个 block ,当然还有整个表达式是 true 还是 false。

要使用的字段是可配置的,并且测试用例已保存以供将来详细说明。

这是一个非常有趣的项目,它有助于编写规则的业务人员和实现规则的程序员之间的沟通,而这些团队对于如何在礼貌的公司中使用“和”一词经常有非常不同的想法。 :-)

但要点是,可视化 bool 表达式的一种非常有用的方法是使用简单的盒子:NOT 是盒子中的盒子,外面有单词“not”。 OR 是包含垂直分组框且中间有“或”的框,AND 是包含水平分组框且中间有“and”的框。如果您实际上可以为基元分配真实/虚假值,那么绿色代表真实框,红色代表虚假框,从而形成非常引人注目的显示。

...

但是您必须编写自己的代码。抱歉。

关于javascript - 逻辑表达式可视化工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20352132/

相关文章:

.net - 中文代码

c# - 覆盖静态构造函数中的元数据?

java - Spring Boot 项目中 Drools 规则引擎中的 GC 内存不足

javascript - 上传多个文件显示错误代码 : 3

javascript - 获取搜索框以过滤结果

javascript - 如何在javascript中获取<td>中的子节点

c# - 连接项目列表中的属性

javascript - 有没有人为商业规则引擎做过 Javascript 前端?

rule-engine - 规则引擎可以完成什么?

javascript - 如何向 PDF 添加 JavaScript 按钮以将数据保存到 (png) 文件?