W3C home > Mailing lists > Public > public-rdf-dawg-comments@w3.org > March 2009

Re: Suggestion: Parameterised Queries

From: Benjamin Nowack <bnowack@semsol.com>
Date: Tue, 10 Mar 2009 09:53:50 +0100
To: public-rdf-dawg-comments@w3.org
Message-ID: <PM-GA.20090310095350.E8FEC.2.1D@semsol.com>


ARC uses "${var}" for parameters, a notation that's sometimes
used in template languages.

   It requires a grammar tweak.

   It separates vars from parameters so that a processor can 
   detect missing input data, and it opens the door to things
   like ${var.stripTags()}, ${var.toLowerCase()}, or 

Related implementation issue: 
   How to detect/specify the type of an input parameter, i.e.
   should &var=foo be handled as <foo>, "foo", or _:foo, or
   whether there should also be a &var-type=uri|bnode|literal.


Benjamin Nowack

>Hi all,
>Sesame also supports this in its HTTP protocol and we use it a lot. We
>decided to use a '$' prefix for variable names though, to prevent
>accidental name collisions with other URL-parameters (e.g. "query").
>Leigh Dodds wrote:
>> Hi,
>> I have the following featur esuggestion for the WG.
>> Feature: Parameterised Queries
>> Feature Description:
>>   Extend the SPARQL protocol such that additional URL parameters in
>> the query string (or a subset that match
>>   a specific naming convention) are reflected into the query as
>> initial variable bindings.
>> Example:
>>   E.g. for a query such as:
>>   PREFIX foaf: <http://xmlns.com/foaf/0.1/>
>>   SELECT ?name
>>   WHERE {
>>    ?x foaf:name ?name.
>>    ?x foaf:weblog ?blog.
>>   }
>>   A protocol request of the form:
>>   /sparql?query=...&blog=http://www.example.org/blog
>>   Would bind ?blog to the value in the URL parameter before it is
>> matched against the dataset.
>> Existing Implementations
>>  ARQ supports this usage in its core URL, and I have used this to
>> implement the above style of parameter passing in
>>  several apps and endpoints whilst at my previous employer.
>> Use Cases
>> Enable support SQL style parameterised query directly from the SPARQL
>> protocol. In conjunction with the proposed Query By Reference
>> feature it enables the creation of simple "web APIs" using only the
>> SPARQL protocol. E.g. I am able to publish a common
>> SPARQL query that does some useful data extraction, and then reuse
>> that query by altering the passed parameters.
>> Even without the Query By Reference feature it would simplify
>> interaction with an endpoint (change url parameter(s) not query) and
>> would allow the endpoint to cache and parse a query for repeated use,
>> thereby removing any query parsing overheads.
>> Cheers,
>> L.
>Arjohn Kampman, Senior Software Engineer
>Aduna - Semantic Power
Received on Tuesday, 10 March 2009 08:59:57 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:52:10 UTC