- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Wed, 14 Sep 2005 12:02:20 +0100
- To: Steve Harris <S.W.Harris@ecs.soton.ac.uk>
- CC: RDF Data Access Working Group <public-rdf-dawg@w3.org>
Steve Harris wrote: > On Wed, Sep 14, 2005 at 10:54:51 +0100, Andy Seaborne wrote: > >>== Data 1: >>:x <p> "z" . >>_:a <p> "z" . >> >>== Query: >>SELECT * { ?s <p> ?o } >> >>== Results >>s/:x p/<p> o/"z" >>s/_:a p/<p> o/"z" >> >>And the application wishes to add: >>_:a <q> "y" . >> >>that is, a tripe with the bNode in the abstract syntax form of the grap as >>subject. >> >>This requires both solutions to be returned in the example query. > > > I feel like being pedantic today, so I'l note that the query engine could > also, perfectly legally return > > s/_:zzz p/<p> o/"z" > > to that query, as bNodes aren't round tripped in SPARQL, c.f. last > paragraph of "Templates with Blank Nodes": > > "The use of variable ?x in the template, which in this example will be > bound to blank nodes (which have labels _:a and _:b in the data) causes > different blank node labels (_:v1 and _:v2) as shown by the results." It's not a template - it's a SELECT query but the general point is true. See http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2005Jun/0039.html The point is it should not be wrong to return the bNode so that the application can (local usage) access the graph abstract syntax directly. Andy > > so at the very least this usecase requires knowledge of how bnodes are > handled in results in the implementation. > > - Steve >
Received on Wednesday, 14 September 2005 11:04:53 UTC