- From: Dan Connolly <connolly@w3.org>
- Date: Tue, 12 Apr 2005 09:11:28 -0500
- To: andy.seaborne@hp.com
- Cc: RDF Data Access Working Group <public-rdf-dawg@w3.org>
On Tue, 2005-04-12 at 13:26 +0100, Seaborne, Andy wrote: > > Dan Connolly wrote: > > Klyne asks > > > > [[ > > Source data: > > > > _:a ex:p1 ex:o1 . > > _:a ex:p1 ex:o2 . > > > > Query: > > CONSTRUCT ( ?s ex:p1 ?o ) > > WHERE { ( ?s ex:p1 ?o ) } > > > > Result (a): > > _:a ex:p1 ex:o1 . > > _:a ex:p1 ex:o2 . > > or (b): > > _:a1 ex:p1 ex:o1 . > > _:a2 ex:p1 ex:o2 . > > ? > > ]] > > http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2005Apr/0012.html > > > > > > He thinks (b) and so do I, and I think that follows from the > > text, esp from the definition of RDF graph merge. Perhaps > > it would be useful to be more explicit about importing the > > term "merge" from rdf-mt or rdf-concepts. > > It should be (a) - I agree the text is misleading at best. Hmm... the text is what the WG agreed on. http://www.w3.org/2001/sw/DataAccess/ftf4.html#item20 I know I was thinking about the relationship between skolem functions http://mathworld.wolfram.com/SkolemFunction.html and bNodes because sandro sent a comment just a little before... http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2004Nov/0019 but thinking a bit more (and testing with cwm), I agree it should be (a) in that case. (Should I re-open the issue to confirm, or just assume this is what we meant when we decided? Unless anybody requests re-opening it now, I think I'll leave it closed and put this test in the test suite. If anybody is surprised by the test result, we can re-open the question.) The case I'm thinking of is this one: Source data: _:a ex:p1 ex:o1 . _:a ex:p1 ex:o2 . Query: CONSTRUCT { [] ex:p1 ?o } WHERE { ( ?s ex:p1 ?o ) } Result: _:n1 ex:p1 ex:o1. _:n2 ex:p1 ex:o2. Let's please add that to the test suite too. Hmm... I think somewhere we specify that _:existentials work just like ?universals . That's true in the "if" part of a rule, i.e. a query, but not in the "then" part, ala a CONSTRUCT clause. If that surprises anybody, let me know and we can reconsider this issue. > I'l change it to > something like union of sets of triples to avoid the merge word. Until it is > serialized, it is the same bNode from the query matching. > > (b) is unhelpful: > > CONSTRUCT { ?x ?y ?z } WHERE { ?x ?y ?z } will not give an isomorphic graph is > any bNode is <1-connected. > > Andy > > > > > In any case, let's add a test case to be sure. Steve, are you game? > > Or Dave? Or perhaps I should learn to do these myself? > > > > For reference... > > http://www.w3.org/2001/sw/DataAccess/issues#graphSolutionMapping > > -- Dan Connolly, W3C http://www.w3.org/People/Connolly/ D3C2 887B 0F92 6005 C541 0875 0F91 96DE 6E52 C29E
Received on Tuesday, 12 April 2005 14:11:30 UTC