Insertion and traceability of inferred data


The inferred data after making a query by default are inserted in the database?. If not, is there any command or configuration to be inserted?. If this is possible, can the inferred data be differentiated from the other data? Traceability of the inference process is preserved, for example it can be established that, the data d3 was inferred from the rule r1 and the data d1 and d2?



Kasper here. I hope you are doing extremely well.

So the current state of reality is the following:

  • by default inferred information is NOT inserted into the database (fastest)
  • you can optionally insert if:
    • in the shell, by specifying the -m option,
    • in dashboard, by ticking the materialise inference option
    • from the API level, when constructing QueryBuilder you specify .materialise(true)
  • in all of the above cases, you have to explicitly commit the graph after querying to persist the inferences
  • if you specify to insert (materialise) inferences, all inferences found when executing the query will be inserted, not only the answers to your query
  • regarding differentiating inferred data from other db data, we are planning to insert an extra label to mark the inferences, I envisage it happening after the next release.

The inference insertion behaviour is subject to change as it was not getting a lot of use. Hence, please let us know if anything is a particular pain in the neck. Any kind of feedback would be very welcome :slight_smile:

Hope that helps. Give us a shout if you need more clarification.