W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > July to September 2011

Re: how to specify that in SERVICE VAR how we query all possible sparql endpoints

From: Andy Seaborne <andy.seaborne@epimorphics.com>
Date: Tue, 26 Jul 2011 10:47:58 +0100
Message-ID: <4E2E8D4E.8040006@epimorphics.com>
To: public-rdf-dawg@w3.org

On 25/07/11 12:35, Carlos Buil Aranda wrote:
> Hello all,
> I've been working in dividing the Fed extension semantics section in
> two, one for SERVICE and another one for SERVICE VAR. I just added new
> semantics definition for SERVICE VAR, but now, in that part I do not
> know how to specify that when doing SERVICE ?X, ?X may be still not
> bounded and a query to all possible values may happen. Any idea?

Section 2.3 talks about SERVICE ?var as an optional feature and the 
document has quite a lot of machinary that drfines it (boundedness 
condition, evaluation semantics, strongly bounded variable, service 

I'd like to suggest a different approach which is to describe it (sec 
2.3 - and it's would be marked "Informative"), provide some guidance 
text as to what it might do, and then not mention it in the definition 
section. The guidance text would include some conditions but done in 
language and not be exhaustive.

Put this section after the formal definition (currently sec 3), before 
"conformance".  Section 4 (Grammar) can be removed as it is in the query 
doc already (I thought we'd already decided to do that).

This section could include the structure that it's a loop over the 
possible values of the variable, and the results unioned together.  c.f. 
GRAPH ?var

Define SILENT to mean it applies to each invocation, so failure of one 
invovation does not fail the entire SERVICE ?var

The determination of the possible values of the variable is the part 
left undefined.

Don't define "Strongly bound variable" or "Service safeness" -- we are 
going to keep it informative and they make it too much like a formal 
definition after all..

Rough idea:
A SERVICE clause involving a variable is executed as a series of 
separate invocations of SPARQL query services.  The results of each 
invocation are combined using union

<insert something like the defn box "Evaluation of a Service Pattern 
with Variable" here>

The query engine must determine the possible target SPARQL query services.

The exact mechanism for doing this is not defined in this document.

It must be done in a way that is compatible with the rest of the query 
results, such as constraints on variables from other graph pattern 
matching in the query.  Execution order may also be used to determine 
the list of services to to be tried.

I don't think we can include a formal definition and argue it's left open.


Received on Tuesday, 26 July 2011 09:48:40 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:01:04 UTC