On 18/09/2020 07:23, Jeffrey Kenneth Tyzzer wrote:
Hello, Group.

I have two questions re: the Fuseki reasoner (we’re using v.3.14.0 but the 
questions are, I think, version-agnostic):


   1.  Five or so years ago, Andy 
wrote<https://users.jena.apache.narkive.com/rqCd9MTM/rdfs-inference-in-fuseki-w-tdb> re: 
persisting entailments for performance gains that "[i]n the current codebase the only two 
options are using [the] in-memory reasoner or forward-chaining the data when it is loaded."



Is it still the case that the reasoner can only be in-memory?

Yes.

You can, in principle, copy the inference closure to another graph, persist that in TDB and then at runtime query the union of the base and closure graph without inference but (a) that requires code and (b) that's only useful for static data.

   1.  Via tdb2.tdbquery –explain,  I was hoping to be able to be able to get some 
insights into how the reasoner might affect the query plan of a query against 
TDB2-based data, but according to 
this<https://users.jena.apache.narkive.com/Gq5M7ZCT/inference-on-tdbquery>, 
“inference results are purely in memory and not part of the TDB data.”

Does this mean there’s no way to see/report the effect of the inferencer’s 
entailments on a given query (outside of writing Java ModelFactory code)?

Correct. TDB and thus tdbquery know nothing about inference. If some inference closure has been performed before loading then to TDB it is just dealing with more triples. If you have a base model in TDB and configure inference over the top then the inference results are computed in memory by the InfGraph and the TDB base model doesn't see any of that.

Dave

Reply via email to