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