- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Thu, 12 Mar 2009 19:04:20 -0400
- To: Ivan Mikhailov <imikhailov@openlinksw.com>
- Cc: Steve Harris <steve.harris@garlik.com>, SPARQL Working Group <public-rdf-dawg@w3.org>
- Message-ID: <20090312230420.GB1114@w3.org>
On Fri, Mar 13, 2009 at 03:48:38AM +0600, Ivan Mikhailov wrote: > Hello all, > > > I'm curious as to the interplay between: > > > > projected expressions > > sub-selects > > assignment > > Is there a combination of these that makes the 3rd irrelevant? I'd say that assignments give you the same expressivity as projected expression + sub-selects. > Sub-selects can't be avoided, period. Projected expressions can be > avoided if assignments are allowed --- just LET a fake variable and > return it. Assignments can be avoided if projected expressions are > allowed (but macroexpansion of LET may result a huge amount of text). Let's examine the uses of sub-selects in SQL: union - each disjoint is created from a select. complex optionals - outer joins accepting solutions requiring a join e.g. outjoin ( ... Employees JOIN Managers ON Employees.id=Projects.manager ). aggregate functions - SQL only provides aggregate operators at the SELECT, so operations like "managers whose total employee income is less than .5M" must wrap the intermediate aggregates assignments - if you want to banty about someones total IQ and shoesize, you can select that in a sub-select. SPARQL already has inline unions and complex optionals. I can't promise that at syntax for inline aggregates, e.g. { ?manager :manages ?department . { ?employee :worksFor ?manager ; :hasSalary ?salary . LET ?total := :sum(?salary) GROUP BY ?manager } FILTER ( ?total > 5000000 ) } is very attractive, but then { ?manager :manages ?department . SELECT ?manager :sum(?salary) AS ?total { ?employee :worksFor ?manager ; :hasSalary ?salary . } FILTER ( ?total > 5000000 ) } doesn't seem to get any prettier for is reduced expressivity. > I'd recommend to not choose 20 of 3 as soon as all 3 can be implemented. > Developers have enough reasons for headache, an artificial puzzle of > weird limitations of the language will not make them happy. > > Best Regards, > > Ivan Mikhailov > OpenLink Software > http://virtuoso.openlinksw.com > > -- -eric office: +1.617.258.5741 32-G528, MIT, Cambridge, MA 02144 USA mobile: +1.617.599.3509 (eric@w3.org) Feel free to forward this message to any list for any purpose other than email address distribution.
Received on Thursday, 12 March 2009 23:04:36 UTC