RE: DESCRIBE optimizations (was RE: Berlin SPARQL Benchmark V2 - Results for Sesame, Virtuoso, Jena TDB, D2R Server, and MySQL)

-----Original Message-----
From: semantic-web-request@w3.org [mailto:semantic-web-request@w3.org] On
Behalf Of Kjetil Kjernsmo

This is very interesting and I can see why this is so, but we look upon our 
DESCRIBEs as retrieving multiple attributes of the same single key (URI). 
Thus, would it be possible to optimize for this situation somehow, by
putting 
these attributes next to each other?

As an aside, we don't do this a lot now, but it seems like an important case

to quickly retrieve all data of something that you know only an IFP of, e.g.

DESCRIBE ?user WHERE { ?user foaf:mbox "dahut@example.org" . }

Given that you know which node to DESCRIBE at the first hit if foaf:mbox is
an 
IFP, is this is a situation that could be optimized for?

Kind regards 



Kjetil

Of course it is possible to optimize all things but we would have to be more
specific to say more about this.  Virtuoso's describe  lists all properties
of the subjects plus all triples of which the subject being described is the
object.  It is like {{ ?s ?p <thing> } union { ?thing ?p ?s}.

Depending on the index scheme being used and whether the graph is supplied,
whether the object values are short or long, this is or is not 2 contiguous
database reads.  But 2 sequential reads is indeed the best case, in the same
ballpark as reading a relational row.


For any further questions, please contact us through support channels.



Orri

Received on Monday, 29 September 2008 22:33:09 UTC