0

有没有办法获取已添加到 ERESYE 规则引擎的规则列表?想象一下我有这样的功能:

start () ->
  eresye:start(engine),
  eresye:add_rule(engine, {module, a_rule_function}),
  eresye:add_rule(engine, {module, another_rule_function}),
  %% do some other stuff
  ok.

给定引擎的名称,有没有办法检索已添加的所有规则函数的数组?我可以自己跟踪这一点,但如果我能做类似的事情会更容易eresye:list_rules(engine)

提前致谢!

4

1 回答 1

0

源码,看起来规则是eresye_tree_list在进程状态中以a的形式存储的。您可以获取整个“rete”并使用以下内容提取树:

[_, _, Tree, _, _] = eresye:get_rete(engine).

然后,您可以使用eresye_tree_list模块中的函数来遍历Tree并将其转换为列表。eresye将其作为模块本身的一部分来实现可能是有意义的。

于 2013-11-09T12:41:54.063 回答