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 に答える