- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Wed, 21 Dec 2005 11:39:14 +0000
- To: Leo Sauermann <leo@gnowsis.com>
- CC: Richard Newman <r.newman@reading.ac.uk>, public-rdf-dawg-comments@w3.org
The working group has considered this comment but in the end it decided to
leave "CONSTRUCT *" out of this version of SPARQL.
--------
PROPOSED: to leave out CONSTRUCT *, as the cost of delaying the SPARQL spec to
work out the design details, and the risk of conflict with rules designs,
outweighs the convenience of adding it
ACCEPTED
--------
There is some discussion from
http://lists.w3.org/Archives/Public/public-rdf-dawg/2005OctDec/0266.html
Addressing some restricted, simple cases, and not others, didn't motivate the
working group members, given that a quick, restricted design may block later
designs as well as have potential interactions with rules.
Please let us know whether this reply addresses your comment.
If you could additionally send a message with [closed] in the
subject line, it would save us a little bit of bookkeeping.
Andy
Seaborne, Andy wrote:
>
>
> Richard Newman wrote:
>
>>That is a challenge. I don't know what solutions the WG came up with,
>>but I can see three:
>>
>>1. Allow this only with a result format that supports named graphs. A
>>request for RDF/XML with this query will return some invalid request
>>HTTP response. A SPARQL endpoint that can do content negotiation, and
>>can serialise in a smarter format, is free to actually serialise the
>>graph correctly. Obviously, using SPARQL internally with a quad store
>>(as is the case with Wilbur) can allow for this to be done
>>programmatically.
>>
>>2. Synthesise the triples regardless, ignoring the graph binding. One
>>can consider the query below to be "build me a NEW graph using the
>>results of this query", in which case discarding the source graph is
>>quite reasonable. Note, of course, that the result bindings can still
>>be filtered on ?G, so supporting GRAPH within the CONSTRUCT statement
>>remains quite reasonable.
>>
>>This also makes sense if you define '*' in this context as "the graph
>>pattern you're querying on, with all the GRAPH stuff removed". As
>>long as it's defined in the docs, nobody can really complain :)
>>
>>3. Reject any such query -- let CONSTRUCT * only apply to queries
>>that ignore graph names.
>>
>>Any of these is something of a step up from not having the feature,
>>and the implementation is straightforward regardless. I'm personally
>>in favour of 2 or 3, with engines optionally supporting 1 if the
>>serialisation format supports it.
>>
>>Thoughts?
>>
>>-R
>
>
> Given this implementation experience, I'll prepare a proposal for the working
> group based on a restricted form of CONSTRUCT *. Something like:
>
> CONSTRUCT * WHERE { .. no GRAPH .. }
> CONSTRUCT * WHERE { GRAPH <g> { .. no GRAPH .. } }
>
> In the above suggestions: my personal views are:
>
> 1/ I would like to see a standard, deployed multigraph serialization syntax,
> first. Until there is a standrad, I'd leave this to extensions to a SPARQL
> server (presumably just one providing HTTP for the content negotiation).
>
> 2/ Could be made to work but I'm not sure having one fixed merging mechanism
> is justified. One of the main reasons for keeping RDF in separate graphs is
> so that it can be treated independently.
>
> 3/ seems like a balence bewteen need and generality. With a series of
> queries, you could do the other cases.
>
> Andy
>
>
>>On 16 Nov 2005, at 19:15, Dan Connolly wrote:
>>
>>
>>
>>>In a bit of haste...
>>>
>>>As I recall, the problem with CONSTRUCT * is interactions with GRAPH.
>>>For example:
>>>
>>>CONSTRUCT * WHERE { GRAPH ?G { ?work dc:title ?txt } }.
>>>
>>>I think the WG chose to punt on * rather than think too hard about
>>>that.
>>>
>>>If you have a suggestion that we didn't consider, we'll consider it.
>>>
>>>--
>>>Dan Connolly, W3C http://www.w3.org/People/Connolly/
>>>
>>
>>
>>
>
>
Received on Wednesday, 21 December 2005 11:39:33 UTC