On 02/04/17 10:04, Élie Roux wrote:
Hello,

Jena's inference is purely in memory so running over a TDB store is
possible but doesn't give you any scalability and is slower than
running over an in-memory copy of the same data. Plus, as you already
know, it's not named-graphs-aware.

Thank you for your clarifying answer! I really think this should be made
clear somewhere in the documentation, as it would have saved us a few
days of tests trying to understand why fuseki didn't behave as we
expected...

Sorry about that!

also maybe a few warning or error messages when fuseki reads
the docs and sees inference on tdb or unionDefaultGraph?

It should be possible to create an inference graph over TDB with union default (that's my option 2) so there's no need for a warning. It's "just" that performance may be poor and the inference results won't be persisted.

Not sure why it wasn't working for you.

Assuming modest data sizes and static data then you could either:

Well, it's fairly large (a few million triples) and very dynamic... but
we ended up with the following solution, I explain it here in case it
can help people with the same needs:

In the code that transfers data to fuseki, we run a reasoner and add the
inferred triples in the corresponding named graph, and then transfer all
the triples (our data + inferred) to fuseki which stores it into TDB.
This is doable for us because we only need limitted forward chaining
inference that doesn't cross named graphs, but this would certainly not
work for very large inferences such as the OWL full reasoner across the
union graph...

Sounds like option 1, glad you have something working.

Dave

Reply via email to