RE: Comments on SPARQL draft

Hi Andy,

Thanks for the reply. I just wanted to follow up on one item below. 

> -----Original Message-----
> From: Seaborne, Andy [mailto:andy.seaborne@hp.com]
> Sent: Wednesday, November 03, 2004 11:10 AM
> To: Geoff Chappell
> Cc: public-rdf-dawg-comments@w3.org
> Subject: RE: Comments on SPARQL draft
> 

[...]


> > - Missing Value Assignment
> 
> Assigment and the switch statement you describe imply a procedural view
> of query execution.  Currently, SPARQL is declarative and execution
> order does not matter in functional terms.  Hopefully, this allows
> implmentations the freedom in optimization.  

Can you explain why you consider these to be procedural? For example, a
switch case such as:

Case condition_a:
	result_a
Case condition_b:
	result_b
Default:
	result_default

Could be re-written as:

(condition_a and result_a) 
	or 
(not condition_a and condition_b and result_b)
	or
(not condition_a and not condition_b and result_default)

which admittedly requires disjunction and negation, two features not
currently in the sparql draft, but doesn't require a procedural view of
things.

Similarly, I don't see how an assignment operator implies a procedural view
of the world (as long as the same operator is used for both equality and
assignment it doesn't even imply a necessary order of evaluation - is that
what you mean by procedural in this instance?). 

OTOH, surely functions do imply an order of operations (i.e. for many
functions, an optimizer would not be free to move a function evaluation to a
point prior to where its arguments are bound to values). Do you consider
this to mean that functions imply a procedural view of query execution?

Thanks,

Geoff

Received on Wednesday, 3 November 2004 18:11:11 UTC