如何在 Logicblox 中跟踪运行?

How to trace runs in Logicblox?

我的 logicblox 程序以一组 T 初始事实和一组 R 规则开始。它推导出最后一组事实 T'。

对于运行,使用了一个规则和几个事实,它导出了一些新的事实。 我怎样才能提取有关执行的 运行 的所有信息?

是否可以提前提取与某些派生事实相关的运行?

取决于您如何评价该程序。例如,对于 bloxbatch 实用程序,尝试“-logLevel debugDetail@factbus”标志以获得所有规则评估的完整 trace/profile。这会准确地告诉您连接是如何执行的(即查询优化的结果)。如果您想总结此配置文件以查看哪些规则最终花费最多时间,您可以使用 Thiago Bartolomei 的 python 脚本 LogAnalyzer.py(例如,在 Doop 框架中公开可用,此处:https://bitbucket.org/yanniss/doop/src/9daaea0b582674603abb2f3e43f73f630ee6d3e1/bin/LogAnalyzer.py).

我认为没有通用的方法来计算事实的出处,即其评估产生特定派生事实的规则集,尽管过去已经存在这方面的实验设施。

我在 Logicblox 3.10 参考手册中找到了解决方案。 Logicblox 3.10 支持记录和查询出处。 https://download.logicblox.com/content/docs/core-reference/webhelp/provenance.html#provenance-recording

不知道为什么Logicblox 4 Reference Manual中没有提到。可能不再支持了。