good afternoon;

> On 2017-01-01, at 18:59, Andy Seaborne <[email protected]> wrote:
> 
> […]
> 
>> 
>> As you might know, some triplestores (RDF4J, Dydra) provide an
>> extension of the SPARQL protocol that allows sending query bindings
>> separately from the query string. (Too bad it's not standardized and
>> I'm not even able to find a good reference right now, but that is
>> another topic).
> 
> What semantics do they have? Specifically, is it replace name-by-value 
> regardless? (so inside nested SELECT where it can be a "different" variable)? 
> What about aggregates?

as one may have gathered from the discussion related to filters and shacl, the 
dydra sparql processor implements dynamic variables.
that is, it supports variable bindings with dynamic extent and indefinite scope.
in addition to the cases where "(not) exists" would depend on such a binding, 
we recognize request arguments to establish such bindings.
the consequence is that a variable which is not governed by some combinational 
binding form observes a dynamic binding, if one exists.

this serves to implement a behavior analogous to sesame query arguments, but 
based on bindings rather than interpolation.

in order to avoid that the client must mint queries in order to communicate 
constraints and to allow them to take advantage of pre-compilation, we 
recognize arguments which correspond to values clauses based on the clause 
dimensions (that is the “var*”) and substitute the parsed compound datablock 
into the expression at run-time.

examples are present here: 
https://github.com/dydra/http-api-tests/tree/master/extensions/sparql-protocol/values

best regards, from berlin,

Reply via email to