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 :-?

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 }

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