- From: Axel Polleres <axel.polleres@deri.org>
- Date: Tue, 8 Jun 2010 16:14:58 +0100
- To: Lee Feigenbaum <lee@thefigtrees.net>
- Cc: "Steve Harris" <steve.harris@garlik.com>, "SPARQL Working Group" <public-rdf-dawg@w3.org>
> I think that Axel means that: > > SELECT ?v1 ?v2 ?v3 > WHERE > { ... } > GROUP BY ?v1 ?v2 ?v3 > > is equivalent to: > > SELECT DISTINCT ?v1 ?v2 ?v3 > WHERE > { ... } > yes, that's what I meant. > ...and I think he's right in that observation? I hope I am :-) Axel On 8 Jun 2010, at 14:42, Lee Feigenbaum wrote: > On 6/8/2010 9:14 AM, Steve Harris wrote: > > On 2010-06-08, at 14:07, Axel Polleres wrote: > > > >> Student of mine pointed me to a somewhat corner test case: > >> > >> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> > >> PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> > >> PREFIX dcterms:<http://purl.org/dc/terms/> > >> PREFIX foaf:<http://xmlns.com/foaf/0.1/> > >> PREFIX mpp:<http://imp.deri.ie/ontology/moviePostProcessing#> > >> > >> SELECT * > >> FROM NAMED<http://imp.deri.ie/vff/ppa/projects> > >> FROM NAMED<http://imp.deri.ie/vff/ppa/people> > >> WHERE { > >> > >> ?project rdf:type foaf:Project ; > >> rdfs:label ?title . > >> ?person rdf:type mpp:Person ; > >> rdfs:label ?personName ; > >> foaf:currentProject ?project . > >> } > >> GROUP BY ?project > >> > >> Actually, I *think* this should be syntactically invalid, as per: > >> "In aggregate queries and sub-queries only expressions which have been used as GROUP BY expressions, or aggregated expressions (i.e. expressions where all variables appear inside an aggregate) can be projected." > >> > >> interestingly, the formulation - strictly speaking - doesn't say what an aggregate query is, but GROUP BY without aggregtate doesn't make a lot of sense anyways, except that it should have the same effect as DISTINCT, right(?), but we still don't want to allow in the presence of GROUP BY some non-grouped/aggregated things to be projected, I assume. > > > > It wouldn't have the same affect as DISTINCT as per the current draft. Cardinality is preserved. > > I think that Axel means that: > > SELECT ?v1 ?v2 ?v3 > WHERE > { ... } > GROUP BY ?v1 ?v2 ?v3 > > is equivalent to: > > SELECT DISTINCT ?v1 ?v2 ?v3 > WHERE > { ... } > > ...and I think he's right in that observation? > > Lee >
Received on Tuesday, 8 June 2010 15:15:32 UTC