On 22/08/15 06:37, Nauman Ramzan wrote:
Hi Mark
Did you connect virtuoso with fuseki or you just import data into fuseki ?


On Aug 22, 2015, at 2:56 AM, Mark Feblowitz <[email protected]> wrote:

This seems like it should be a FAQ, but I’m not finding anything useful.

I’m using SPARQL to explore linked data, which includes discovering predicates. 
My understanding was that I could bind a subject and use variables for 
predicate and object.

It’s important to note that what I’m experiencing is when using dbpedia, which 
is built on Virtuoso - perhaps my question should be posted elsewhere? But I am 
doing this via a Fuseki endpoint, so there’s at least some relevance :-?

Yes - this is possible see below.

Fuseki is just passing on the query and is not responsible for the results. "common carrier" :-)


Here’s what I’m trying to do:

I have some queries to a Fuseki endpoint that call out to dbpedia using SERVICE 
blocks. Before entering the service I bind a value for ?Player, and then with 
the service I pose the query;

PREFIX do: <http://dbpedia.org/ontology/>
...
{SELECT DISTINCT * where {
          ?Player a do:BasketballPlayer.
          ?Player ?r ?A.
          ?Player2 ?r ?A }

Mark - did you test just

SELECT DISTINCT * where {
      ?Player a do:BasketballPlayer.
      ?Player ?r ?A.
      ?Player2 ?r ?A }

in isolation (SERVICE call?) or as a nested SELECT in a larger query?

It is possible, especially in the sub-query form, that the query plan is expensive because property variables are uncommon (but correct) so less work goes on into optimizing such plans.

Also an internal timeout executing that part of the query would explain what you are seeing.

There are going to be a lot of answers - 14,818,205,957? - counting non-DISTINCT. The DISTINCT version may be significantly more expensive
but

SELECT (count(DISTINCT *) AS ?c) {

is a syntax error for DBpedia though it is legal SPARQL.

        Andy


I expected to find a binding for ?r as do:team. And when I pre-bind ?r to that, 
I see plenty of bindings for ?A and ?Player2. The one binding that I do see 
when leaving ?r unbound is

http://www.w3.org/1999/02/22-rdf-syntax-ns#type

(I notice that dbpedia virtuso is limited - it cannot handle a BIND statement.)

Is the case am I seeing universal behavior or behavior specific to virtuoso? 
Either way, are there clever workarounds?

I do know that I can “white-list in” some bindings for ?r, using a VALUES 
statement. But that pretty much defeats the discovery purpose. Also, as this is 
varied and often schema-less content, I can’t rely on an ontology as a guide to 
defined predicates.

Any suggestions?

Thanks,

Mark


Reply via email to