- 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