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