On Mon, 2011-12-05 at 23:06 +0100, Mariano Rodriguez wrote:

> The results are fine. However, the time to compute them is slow. In 
> particular, returning from qexec.exectSelect is very fast (few millisecond)
> but retrieving the count is very slow, even if its just a couple of rows.

The inference doesn't start until you start to pull on results, then
there is a large upfront forward inference cost and smaller per-query
backward inference steps.

> Am I doing something wrong here? 

Didn't notice anything particularly wrong, the rule reasoner must just
be slow on that data. Don't know why.

As Andy said, using the streaming RDFS inference is probably a better
match. 

> I'm now thinking it might be actually better to store the model, complete 
> with inferences in TDB, and then querying. Would this be more efficient? If 
> so, would this code suffice?

Yes. There is no point in doing inference over TDB, the normal mode of
use is to compute the wanted closure in memory and then store in the
persistent store for efficient query later.

Dave

> String directory = 
> /Users/mariano/Documents/Archive/Work/projects/semantic-index/lubm/benchmarks/jena/tdb10";
> Model database = TDBFactory.createModel(directory);
> database.add(lubm1);
> database.commit();
> database.close();
> 
> 
> Thank you in advance, 
> Best regards,
> Mariano
> 
> 
> 
> 
> 
> 
>  
> Mariano Rodriguez Muro                
> http://www.inf.unibz.it/~rodriguez/   
> KRDB Research Center                  
> Faculty of Computer Science           
> Free University of Bozen-Bolzano (FUB)
> Piazza Domenicani 3,                  
> I-39100 Bozen-Bolzano BZ, Italy       
> 猴
> 
> 
> 
> 


Reply via email to