You've made a common error that people trying to benchmark Jena make. execSelect() simply prepares a result set backed by an iterator that is capable of answering the query, until you are consume that result set no execution actually takes place. All query execution in Jena is lazy, if you want to time the time to execute the full results use a method that consumes/copies the returned iterator such as ResultSetFactory.copyResults() thus forcing full execution to happen
So what you are timing as the results processing is actually results processing + query execution. Over an inference model the act of executing a query will cause inference rules to be applied which depending on the ontology and rules may take a long time. Rob On 14/03/2018, 16:26, "[email protected]" <[email protected]> wrote: Hi, I have included here (https://gist.github.com/MarcAgate/8bbe334fd852817977c909af107a9c6b) some code tha illustrates the issue. It runs the same query against three different models (Model, InfModel and OntModel) of the same ontology. There's obviously a problem with InfModel. Any idea ? Thanks Marc
