W3C home > Mailing lists > Public > public-rdf-dawg-comments@w3.org > July 2012

Re: Proposal - Allow dynamic function calls in SPARQL 1.1

From: Lee Feigenbaum <lee@thefigtrees.net>
Date: Tue, 10 Jul 2012 10:31:55 -0400
Message-ID: <4FFC3CDB.30503@thefigtrees.net>
To: Rob Vesse <rvesse@yarcdata.com>
CC: "public-rdf-dawg-comments@w3.org" <public-rdf-dawg-comments@w3.org>
Hi Rob,

Thanks for the comment.

The WG discussed your suggestion and agrees that it would be a valuable 
addition to SPARQL. As you surmised, we're not going to be able to 
include it in the current round of standardization, however, so we did 
add it to the future items list at 
http://www.w3.org/2009/sparql/wiki/Future_Work_Items .

If you or any other vendors have experience implementing this feature, 
it would be great to learn about that either on this list or at 
public-sparql-dev@w3.org so that we can hopefully have implementers 
proceed along similar lines in advance of future standardization.

Please let us know if this response acknowledges your comment.

thanks,
Lee
On behalf of the SPARQL WG

On 6/22/2012 1:42 PM, Rob Vesse wrote:
> Hi All
>
> This comment/proposal was motivated by something interesting I saw 
> Paul Gearon tweet:
>
> "Sad that SPARQL defines [70] FunctionCall ::= iri ArgList instead of 
> [70] FunctionCall ::= VarOrIri ArgList so many missed opportunities!"
>
> I'm not sure if redefining like so is necessarily a good idea because 
> it may make the syntax a little more convoluted.   Also this change 
> only affects FILTERs where you'd probably want to make a more general 
> change in [118] PrimaryExpression to enable this everywhere.
>
> However I do see the potential value of his comment which is in 
> allowing the bindings generated so far to determine which functions 
> are actually called, particularly this has major benefits and uses in 
> rule based languages built on top of SPARQL such as SPIN.
>
> To this end I would like to propose a new built-in CALL which could be 
> defined as part of [120] Built In Call as 'CALL' ExpressionList
>
> The interpretation of the CALL function would be as follows:
>
>   * If there are no arguments then returns unbound
>   * If there are one/more argument treat the first argument as
>     identifying the function to be called and all remaining arguments
>     as the arguments to that function
>
> I would suggest that at a minimum compliant implementations must 
> accept first arguments whose values are URIs (when 
> expressions/variables are resolved to their values) as valid function 
> identifiers.  Extensions may treat literals and blank nodes as valid 
> function identifiers if they desire but I suspect it would be better 
> to explicitly forbid this.  The behavior in the event of an invalid 
> function identifier would be to give an error.
>
> I am fully aware that it is late in the day to be proposing new 
> features for the specification and so would be quite happy to accept 
> the WG just choosing to put this proposal on the future work list so 
> vendors can choose to implement it as a standard extension and have 
> this be considered for future rounds of standardization instead.
>
> Best Regards,
>
> Rob Vesse
Received on Tuesday, 10 July 2012 14:32:35 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 10 July 2012 14:32:35 GMT