【发布时间】:2019-09-02 20:55:25
【问题描述】:
我正在利用 engine.Host 类创建我自己的规则引擎实例并通过 JSON 文件加载规则并调用 set_rulesets() 方法。这一切都很好。
持久规则:https://pypi.org/project/durable-rules/
但是,对于我的一条规则,我需要进行否定。我不确定语法。否定另一个子句的正确方法是什么?例如,考虑以下规则:
"r_1": {
"all": [
{"first": {"condition": "foo"}},
{"second": {
"$and": [
{"id": {"first": "id"}},
{"condition": "bar"}
]
}},
{"third": {
"$and": [
{"id": {"second": "id"}},
{"condition": "cat"}
]
}}
],
"run": "rule_fired"
}
我怎样才能接受条件的非(第三个)例如,
第一和第二而不是第三
谢谢 鲍登
【问题讨论】:
-
不确定我是否理解问题所在。为什么不做
1stAND2ndANDnot 3rd,即否定第三条规则?然后你可以简单地再次使用 all 语句,对吧? -
就是这样。关于持久规则的文档是有限的。问题在于进行否定的语法,是否有一个 not 运算符可以用来否定第三个表达式?
-
@Caconde,我想试试这个,谁能帮我如何通过 json 文件加载规则?
标签: python rule-engine