Re: aggregates

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> CONSTRUCT
> { ?X ex:hasFriends
>   {COUNT ?X WHERE ?P foaf:knows ?X}
> }
> WHERE {?P a foaf:Person}

In [3] on slide 3 it should be 'COUNT ?P', right? If not, could you please
explain the example, as in that case I do not understand it. ;-)

Subqueries in CONSTRUCT frighten me. I would prefer to keep CONSTRUCT similar to
a projection, perhaps with scalar expressions in the line of the current filter
expressions, but not as complicated as subqueries. I'd prefer something like

CONSTRUCT
{ ?P ex:hasFriends ?F }
WHERE {
  ?P a foaf:Person.
  SELECT COUNT(?X) AS ?F WHERE {
    ?P foaf:knows ?X }
}

Btw, that argument affects other features such as fulltext as well. The current
SPARQL design is quite clean: BGP matching binds variables. FILTER filters out
some of these bindings. Result formats and modifiers do some post processing.
That may involve sorting, grouping, in the future also filter expressions and
aggregate functions, grouping etc, but not matching. I'd prefer to keep it like
this.

Cheers,
Simon

Axel Polleres schrieb:
> Looking at the examples for aggregates [1] and thinking about an earlier
> implementation I did on aggregate functions inspired rather by
> aggregates in declarative logic programming than in SQL, I sketched an
> alternative syntax proposal for aggregates at [3] which I could present
> briefly as part of the aggregates discussion on day 2.
> 
> 1.
> http://www.w3.org/2009/sparql/wiki/Feature:AggregateFunctions
> 2.
> http://www.mat.unical.it/asptut/slides/unit2.pdf, slide 60ff
> 3.
> http://www.polleres.net/presentations/20090506SPARQL_aggregates_as_subqueries.pdf
> 
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkoBUMEACgkQQ0Lz1fXAQeOljACgo34w+HMXBTp5AUlZqXff4cDi
uRkAn3ihvdd7DwfXnZwF0bNIQ8kMxCuZ
=k9MM
-----END PGP SIGNATURE-----

Received on Wednesday, 6 May 2009 08:57:23 UTC