> > * For the SPARQL community, BSBM sends the message that one ought to
> >  support parameterized queries and stored procedures. This would be
> >  a SPARQL protocol extension; the SPARUL syntax should also have a
> >  way of calling a procedure. Something like select proc (??, ??)
> >  would be enough, where ?? is a parameter marker, like ? in
> >  ODBC/JDBC.
>
> Also a great idea and maybe something Ivan does not have on his list
> yet.

SPARQL already has parameterized queries!  Because it has explicit (named) 
variables, these can be used to set variables scoped just outside the query 
string.
The ODBC /JDBC approach of positional parameters, and this is named parameters. 
 Semantics is it like joining in a one row table (because you can think of 
variables in graph patterns as set-once assignments that allow reassignment of 
th eame value but not a different value.

There is an issue of whether the parameterisation is applied client or server 
side.  If client side, no protocol changes are needed.  It is a burden on a 
client do some level of parsing to correctly substitute parameters but I think 
it's just a (non-trivial) regex as it only has to deal with variable-like 
syntax outside strings (c.f. the canonical JSON regex to check for safe 
javascript).  That means even simple clients that don’t do much more than 
build/send SPARQL strings are still possible.  No parser necessary.

Adding to the protocol might be nice but it's not a showstopper.  This has 
worked well in ARQ, for RDQL and SPARQL for a while.


ARQ has had stored procedures for a while. Property functions (with ists foir 
subject and or object) seem to be preferred because it remains within strict 
SPARQL syntax.  They do get messy if the match to the S-list/P/O-list form is 
not natural. Property functions don’t allow for expressions.

        Andy

Reply via email to