good evening;

On 25 Jul 2014, at 14:16, Kingsley Idehen <kide...@openlinksw.com> wrote:

> On 7/23/14 6:43 AM, james anderson wrote:
>> good afternoon;
>> 
>> On 11 Jul 2014, at 10:38, Carsten Keßler<m...@carsten.io>  wrote:
>> 
>>> >Dear all,
>>> >
>>> >I'm running Virtuoso OS 7.1.0 and trying to run some federated queries to 
>>> >DBpedia and Europeana. Here's an example of what I'm trying to do (fetch 
>>> >some Europeana artifacts created during the lifetime of Ghandi, as a 
>>> >simplified example):
>>> >
>>> >prefix db:<http://dbpedia.org/ontology/>
>>> >prefix dc:<http://purl.org/dc/elements/1.1/>
>>> >prefix xsd:<http://www.w3.org/2001/XMLSchema#>
>>> >
>>> >SELECT * WHERE {
>>> >
>>> >   SERVICE<http://dbpedia.org/sparql>  {
>>> >           <http://dbpedia.org/resource/Mahatma_Gandhi>  db:birthDate 
>>> > ?birth ;
>>> >                             db:deathDate ?death .
>>> >
>>> >   }
>>> >
>>> >       SERVICE<http://europeana.ontotext.com/sparql>  {
>>> >            SELECT * WHERE {
>>> >           ?artifact dc:date ?date .
>>> >           FILTER ( ?date >= xsd:string(?birth) && ?date <= 
>>> > xsd:string(?death) )   
>>> >           } LIMIT 10      
>>> >   }
>>> >
>>> >} LIMIT 10
>>> >
>>> >If I run this through the sparql.org endpoint, it works without problems 
>>> >[1]. Virtuoso gives me the following error, though:
>>> >
>>> >Virtuoso 37000 Error SP031: SPARQL compiler: Variable 'birth' is used in 
>>> >the query result set but not assigned
>>> >Is this a know limitation of Virtuoso?
>>> >
>>> >Thanks,
>>> >Carsten
>> Notwithstanding the sparql.org response, the description of variable 
>> scope[1] provides no binding for either ?birth or ?death, which lends 
>> support to virtuoso’s compiler. See, for example, the ‘minus’ example[2]. 
>> One might argue that the discussion in the federation spec[3] would lead one 
>> to believe that the sparql.org behavior is a reasonable extension. I would 
>> agree, but nothing in the federation semantics requires it.
>> 
>> best regards, from berlin,
>> -----
>> [1]http://www.w3.org/TR/sparql11-query/#variableScope
>> [2]http://www.w3.org/TR/sparql11-query/#idp899488
>> [3|http://www.w3.org/TR/sparql11-federated-query/#values
> 
> Thus, you have:
> 
> [1] 
> http://bit.ly/sparql-fed-query-results-from-virtuoso-uriburner-and-european-sparql-endpoints
>  -- Query Result
> [2] 
> http://bit.ly/sparql-query-definition-for-sparql-fed-over-uriburner-and-europeana-endpoints
>  -- Query Definition.
> 
> The order of SERVICE bindings in the query matters.

that is, the sparql scope rules require particular nesting in order to ensure 
that the respective variables are in scope.
which, in turn, requires the outer service allows the service service request 
to the inner service.

best regards, from berlin,


------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to