Re: Editorial suggestion for CREATE operation

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