0

I have a Fuseki database with 1.5 million triples, stored in a persistant tdb store. Simple queries without reasoning work very well, but when using the Owl forward-backward reasoner provided with Fuseki the performance drops dramatically, leading to very long response times and Java memory errors.

In a related question (Jena Fuseki assembler file + TDB + OWL reasoner) it was suggested by @andys to expand the triples once using the reasoner, store the expanded triples and query without the reasoner. This solution has some obvious conceptual and practical disadvantages but I would like to try it. So the question is: how can I do this?

The most important example would be transitive closure. Given

:myCat rdf:type :cat
:cat rdf:type :animal

Add to the triple store:

:myCat rdf:type :animal
Community
  • 1
  • 1
Marijn
  • 1,640
  • 14
  • 24
  • `:cat rdfs:subClassOf :animal .` to get that inference. (You do not need the OWL reasoner for this, other reasoners wil do it with less overhead.) – AndyS Nov 04 '16 at 11:18
  • The infernce engines run in-memory so write run once, writing out the the whole graph, inferences and base data, and load that. – AndyS Nov 04 '16 at 11:20
  • @AndyS can you expand on how to do that exactly, with a query, with one of the command-line tools provided with Jena/Fuseki, or from within Java? – Marijn Nov 04 '16 at 11:22

0 Answers0