W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > April to June 2005

Re: [Fwd: Comments on ORDER BY]

From: Jeen Broekstra <jeen@aduna.biz>
Date: Fri, 27 May 2005 15:20:36 +0200
Message-ID: <42971EA4.6010404@aduna.biz>
To: andy.seaborne@hp.com
Cc: RDF Data Access Working Group <public-rdf-dawg@w3.org>

Seaborne, Andy wrote:

> This is a comment that I forgot to process fully.  This points out that 
> ORDER BY is restrictive in that it only provided for a variable or a 
> function.
> 
> http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2005May/0005.html 
> 
> 
> Richard Cyganiak wrote:
> 
>> Comments on http://www.w3.org/2001/sw/DataAccess/rq23/
>> regarding the ORDER BY clause:
>>
>>
>>> From the grammar:
>>
>>
>> | [16] OrderExpression ::= FunctionCall | Var
>> | [59] FunctionCall ::= URI '(' ArgList ')'
>>
>> This doesn't allow expressions like "?a + ?b" in the ORDER BY clause. Is
>> this intentional?
>>
>> If not, this sentence from section 10.1 also needs updating:
>>
>> | An ordering condition can be a variable or a function call.
> 
> 
> 
> There is no reason I can see not to allow an expression but the grammar 
> need tweaking.

Grammar issues aside I'd like to see a use case before we decide to put 
it in.

> But we can't just put "Expression" at this point because this is 
> ambigous: + and - can occur both as unary and binary operators.  We 
> allow multiple ordering conditions on a single line so
> 
> ORDER BY ?a + ?b
> 
> It's either two ordering conditions:
> 
> ORDER BY ?a
> ORDER BY +?b
> 
> or it's one condition
> 
> ORDER BY (?a+?b)
> 
> We already have grouping using ASC/DESC.  We choose [] (mildly) because 
> ASC/DESC aren't functions.  We (for consistency) use blank separated 
> lists of conditions.
> 
> 0/ No change.  Don't allow general expressions.
> 
> 1/ change from using [] to using () for ASC and DESC
> 
> ORDER BY (?a+?b)
> ORDER BY ASC(?a+?b)
> 
> 2/ Make special cases for () expressions inside and outside [].
> 
> ORDER BY (?a+?b)
> ORDER BY ASC[?a+?b]
> 
> 3/ Always require () on expressions which are not simple variables or 
> function calls:
> 
> ORDER BY (?a+?b)
> ORDER BY ASC[(?a+?b)]
> 
> 4/ Only one condition per ORDER BY; multiple ORDER BY clauses.
> 
> 
> I propose #0 :
> For a change to support expressions, #1 is the best in my opinion.

Seconded on #0.


Jeen
Received on Friday, 27 May 2005 13:21:43 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:23 GMT