Thank you, Dave.

Judging by subsequent questions on the users list there's a fair amount of 
interest in option 2 ("query the union....").

--Jeff

On 9/20/20, 4:12 AM, "Dave Reynolds" <dave.e.reyno...@gmail.com> wrote:

    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