【问题标题】:Whats the best way to approach rule validation处理规则验证的最佳方法是什么
【发布时间】:2013-08-18 23:49:24
【问题描述】:

所以我目前在一家公司实习,负责为分析引擎创建 UI 规则编辑器的中间层。作为此任务的一部分,我确保创建的所有规则都是有效规则。这些规则可能非常复杂,由大约 10 个字段组成,每个字段都有多种可能性。

我在这里不知所措,我一直在努力寻找一些材料来指导我完成这项任务,但我似乎找不到太多。我可以采取任何模式或设计方法将其分解为更易于管理的任务吗?要读的书吗?任何想法或指导将不胜感激。

【问题讨论】:

  • 有效性如何定义?有几种选择,例如1) 可以执行规则(语法上有效),2) 可以执行规则并且执行返回有意义的结果(例如具有某些属性的某些数据),3) 规则符合预定义的规则模式。 1 由解析器解决,2 应该易于检查,3 需要对允许的模式进行一些头脑风暴。
  • 您能否举例说明您需要实施的规则类型?

标签: logic analytics business-intelligence rule rule-engine


【解决方案1】:

您可以考虑花时间学习词法分析器/解析器,例如Anltr4。您可以使用 Antlrwork2 ide 辅助可视化和调试。

Antlrworks2:http://tunnelvisionlabs.com/products/demo/antlrworks

您可以通过搜索示例语法开始着手,然后根据您的特定需求对其进行调整。

语法:https://github.com/antlr/grammars-v4

Antlr 提供多种不同语言的输出绑定 - 因此您可能会拥有一种适合您需求的语言。

在任何情况下,这都不是一项微不足道的任务 - 而是一项有趣且有益的任务。

【讨论】:

    【解决方案2】:

    您需要为此构建算法。

    注意事项

    1.) 根据数据类型支持和兼容性验证参数。 2.) 哪个运算符后跟特定数据类型的操作数。 3.) 某个表达式的返回结果应该再次与下一个操作数或运算符兼容。

    提供模拟规则的功能,用户可以在其中选择要触发规则的数据集。

    例如

    a + b > c
    

    可能的组合。

    1.) A、b 可以是字符串、数字或整数。 2.) 但是a+b if String then operator ">" 的组合结果不能来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      • 2010-09-06
      • 2018-04-26
      • 1970-01-01
      相关资源
      最近更新 更多