- From: David Booth <david@dbooth.org>
- Date: Fri, 11 May 2012 10:30:27 -0400
- To: public-rdf-dawg-comments <public-rdf-dawg-comments@w3.org>
I'm looking further at this, and now I am more confused. I am trying to
verify that when a CREATE SILENT operation is performed on an existing
named graph, the content of that named graph is not changed. This is
how I previously understood it to work and how I think it *should* work.
And when I read the formal semantics of CREATE, I see:
http://www.w3.org/TR/sparql11-update/#defn_createOperation
[[
OpCreate(GS, iri) = GS union {(iri, {})} if iri not in graphNames(GS);
otherwise, OpCreate(GS, iri) = GS
]]
If I am reading the above correctly, in this case iri *would* be in
graphNames(GS), so the "otherwise" clause would apply and the graph
store would be unchanged, i.e., the content of an *existing* named graph
should be unchanged.
However, I just noticed the "Note" below that section, which says that
any CREATE may be viewed as immediately followed by a DROP:
[[
Since (non graph-aware) Graph Stores may remove graphs that are left
empty, for such Graph Stores any CreateOperation may be viewed as
implicitly immediately followed by a DropOperation (see next
subsection), or simply as an operation with no effect.
]]
But a DROP operation would delete the content of an existing named
graph, so if I am understanding all this correctly, there seems to be a
conflict between this "Note" and the formal semantics.
Clarification please? I hope it is the "Note" that is in error.
Thanks!
David
On Wed, 2012-04-11 at 12:17 -0400, David Booth wrote:
> At http://www.w3.org/TR/sparql11-update/#create
> I suggest adding the sentence: "If the graph already exists then its
> content is unchanged."
>
>
--
David Booth, Ph.D.
http://dbooth.org/
Opinions expressed herein are those of the author and do not necessarily
reflect those of his employer.
Received on Friday, 11 May 2012 14:31:02 UTC