Hey all,

I'm currently working on a project where I want to ask a lot "cross-border" 
SPARQL-Queries like the following one:

SELECT DISTINCT ?p ?lp ?o ?lo
WHERE {
 <http://dbpedia.org/resource/Barack_Obama> ?p ?o.
 OPTIONAL { ?p rdfs:label ?lp. }
 OPTIONAL { ?o rdfs:label ?lo. }
}

(So I'd prefer a human readable version of potential URIs for ?p and ?o.)

Now virtuoso allows me to do so by using
DEFINE input:grab-all "yes"
DEFINE input:grab-depth 1

Nevertheless, as all drop-downs and tutorials say, the performance of this is 
very bad (takes around 15 minutes, when I execute the query).

So my question is: is there any way to configure the sponger behind this to
1. cache its lookups, so don't retrieve graphs already present in the local 
quad store (the DEFINE get:soft "soft" seems to be what I want, but that only 
works for graphs mentioned in a FROM or FROM NAMED clause),
2. do n-fetches in parallel and/or,
3. tell me if some object turned out not to be a linked data resource, but 
just an URL (e.g., in the triple: (dbpedia:Barack_Obama dbpprop:reference 
<http://www.chicagolife.net/content/politics/Barack_Obama>) )

Perhaps someone could point me into the right direction / has some helpful 
thoughts?

Cheers,
Jörn

Reply via email to