- From: Axel Polleres <axel.polleres@deri.org>
- Date: Thu, 30 Apr 2009 21:24:06 +0100
- To: Steve Harris <steve.harris@garlik.com>
- CC: Simon Schenk <sschenk@uni-koblenz.de>, SPARQL Working Group <public-rdf-dawg@w3.org>
If have a related question. Do we really talk only about subSELECTS or
should we - more generally speak about subQUERIES.
I have the impression, that also ASK and CONSTRUCT subqueries in
Specific places make sense, like:
CONSTRUCT subqueries in FROM/FROM NAMED clauses
SELECT ...
FROM {CONSTRUCT ... }
WHERE
ASK subqueries in FILTERS
SELECT ...
WHERE { pattern FILTER( !ASK {...} )}
agreed? The latter would, BTW, be an alternative way to express negation.
Axel
Steve Harris wrote:
> On 30 Apr 2009, at 11:48, Simon Schenk wrote:
>> If we do not add any features such as aggregates, scalar expressions,
>> assignment
>> or similar - do subselects add anything to the expressiveness of the
>> language?
>> All examples in the wiki include at least one such additional feature.
>>
>> Typical uses such as FORALL or EXISTS should be possible in the
>> current version
>> of SPARQL using a combination of OPTIONAL, BOUND filters and perhaps
>> DISTINCT, I
>> think.
>
> There's nothing you couldn't do with multiple queries before. But, you
> can do new things using DISTINCT and LIMIT inside the subselect in one
> query, that's enough to do LimitByResource in many cases, which you
> can't do without SubSelects.
>
> Example off the top of my head (may be incorrect):
>
> SELECT *
> WHERE {
> ?x a foaf:Person
> SUB {
> SELECT ?name
> WHERE { ?x foaf:name ?name }
> LIMIT 1
> }
> SUB {
> SELECT ?mbox
> WHERE { ?x foaf:mbox ?mbox }
> LIMIT 4
> }
> }
>
> Currently we don't implement sub queries, so we end up doing something
> like 20, where 1 would be fine.
>
> - Steve
>
--
Dr. Axel Polleres
Digital Enterprise Research Institute, National University of Ireland,
Galway
email: axel.polleres@deri.org url: http://www.polleres.net/
Received on Thursday, 30 April 2009 20:24:46 UTC