0

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

对于一次运行,使用了一个规则和几个事实,它得出了一些新的事实。如何提取有关已执行运行的所有信息?

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

4

2 回答 2

1

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

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

于 2016-03-02T14:07:24.927 回答
0

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

我不知道为什么 Logicblox 4 参考手册中没有提到它。也许它不再受支持。

于 2016-03-10T10:03:20.890 回答