W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > April to June 2005

Re: test case for graphSolutionMapping

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>
Message-Id: <1113315088.4891.133.camel@localhost>

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 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:23 GMT