0

My logicblox program begins with a set T of initial facts and a set R of rules. It derives a final set of facts T'.

For a run, a rule and several facts are used and it derives some new facts. How can I extract all information about the runs that performed?

In advance, is it possible to extract runs that relate to some derived facts?

2 Answers2

1

Depends on how you evaluate the program. E.g., for the bloxbatch utility, try the "-logLevel debugDetail@factbus" flag to get a full trace/profile of all rule evaluation. This tells you exactly how the joins are performed (i.e., the result of query optimization). If you want to summarize this profile to see which rules end up taking the most time, you can use Thiago Bartolomei's python script LogAnalyzer.py (e.g., publicly available in the Doop framework, here: https://bitbucket.org/yanniss/doop/src/9daaea0b582674603abb2f3e43f73f630ee6d3e1/bin/LogAnalyzer.py).

I don't think there is a general way to compute a fact's provenance, i.e., the set of rules whose evaluation produced a specific derived fact, although experimental facilities for this have existed in the past.

  • Thank you for your answer. the "-logLevel debugDetail@factbus" flag is helpful, but it is not exactly what I need. I found in a Logicblox tutorial, "LogicBlox, Platform and Language: a Tutorial", they said that "Provenance. Dataloglb includes an option to record provenance information during program evaluation". Is there any way to track the provenance information? – Vũ Quang Vinh Mar 04 '16 at 05:22
0

I found a solution in Logicblox 3.10 Reference Manual. Logicblox 3.10 support recording and querying provenance. https://download.logicblox.com/content/docs/core-reference/webhelp/provenance.html#provenance-recording

I don't know why it was not mentioned in Logicblox 4 Reference Manual. Maybe it is no longer supported.