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

Re: SPARQL Update (almost?) LC ready from my side ...

From: Axel Polleres <axel.polleres@deri.org>
Date: Mon, 2 May 2011 00:50:49 +0100
Cc: Andy Seaborne <andy.seaborne@epimorphics.com>
Message-Id: <EE86BBCE-2F1A-477C-ADB1-BB97C46C0AC8@deri.org>
To: SPARQL Working Group <public-rdf-dawg@w3.org>
I have addressed all of Andy's points now in 

   http://www.w3.org/2009/sparql/docs/update-1.1/Overview.xml

see details below.

Thanks again for the detailed feedback,

Axel


On 30 Apr 2011, at 13:29, Andy Seaborne wrote:
> >> Revision 1.120
> >> By the way: the CVS log entry is
> >>
> >> --------
> >> Revision 1.120  2011/04/29 09:42:21  apollere2
> >> Added missing
> >>
> >>
> >>
> >> --------
> >> i.e. several blank lines.  Yes, something missing!
> >
> >
> > :-) cvs log Overview.xml ...
> > ----------------------------
> > revision 1.120
> > date: 2011/04/29 09:42:21;  author: apollere2;  state: Exp;  lines: +6 -1
> > Added missing<ul/>
> > ----------------------------
> >
> > :-) ... fixed that in the xml to ...
> >
> > "
> > Added missing&lt;ul/&gt;
> > "

done.


> >
> >>
> >> I took a slightly hurried pass over the formal definitions.  Comments
> >> below. No showstoppers in the design, but some things could do with fixing.
> >>
> >> See the 5 "[Major]" below.
> >>
> >>          Andy
> >>
> >>
> >> [MUST]
> >> **Remove editors note about issue-59.
> >
> > You mean, the reference to he ISSUE? Is it harmful/forbidden to leave a reference to a CLOSED issue in?
> > I think you are probably right in the sense that we should mark all "AT RISK" parts uniformly across our LC docs.
> > We can go with the "red box" as you have it in
> > http://www.w3.org/2009/sparql/docs/query-1.1/rq25.xml#grammar
> > just leaving the sentence:
> > "
> > The following shortcuts have been proposed for graph management and are marked "AT RISK". The SPARQL WG is seeking comments and feedback from implementers and end-users regarding this proposal.
> > "
> > in such a red box.
>
> If the issue is closed, they are not really at risk?  Just seems confusing.



Ah! misunderstanding... clarification:
We closed the issue based on the understanding that we mark them "AT RISK" in the document:

"RESOLVED: Add update shortcuts in LC marked explicitly "AT RISK" and asking for feedback, explicitly about potentially complicating the language, and implementation experience, SteveH, LeeF, kasei abstaining
23 Nov 2010, 15:51:35"

I put it in a red wgnote box now, as it's indeed confusing to mention the closed ISSUE.

> >>
> >> ** Definition: Graph Store
> >>
> >> [Minor improvement]
> >> avoid "identified"
> >> """
> >> zero or more named slots identified by an IRI iri sub i.
> >> """
> >> ==>
> >> """
> >> zero or more named slots.  The unnamed slot holds an RDF graph; each a
> >> named slot is pair of graph and an associated IRI.
> >> """
> >
> > Fine with me.

done.


> >
> >> Remove "Note:"
> >
> > you just mean the bold "Note:", not the actual note, I assume... fine to remove that.
>
> No - remove the whole thing.  if it says "slightly abusing notation" you
> are just asking for trouble!


I rather reformulated that than completely removing it, since I put the note in after Greg's explicit feedback on that point.

"<note>We will use GS for the graph store, but sometimes also - synonymously - for the RDF dataset corresponding to the current graph store content
in subsequent definitions.</note>"




>
> >
> >>
> >> ** Definition: Abstract Update Operation
> >>
> >> [Editorial]
> >> The languge defines a "An Update Operation"
> >> Either drop "Abstract" or include in first line.
> >
> > fine.

done.


> >
> >>
> >> [Minor] it would be nice to say what "atomic" means
> >>
> >
> > fine. somthing like:
> >
> > "Here, by atomic we mean that the operation performs the described transformation of the Graph Store either completely or leaves the Graph Store unchanged."
> >

done. added:

"
By 'atomic operation' we mean that the operation performs the described transformation of the Graph Store either completely or leaves the Graph Store unchanged, i.e. the result is either GS' or GS (in case of error).
"

> >
> >> ** Deal with 4.2 @@@
> >>
> > @@@ is currently only used to mark "merge"
> > if all agree we don't need the merge definition here anymore, I am fine to simply drop.
> >
> >> ** 4.2.4  Dataset( QuadPattern,  μ )
> >> [Minor]
> >> case '{}' is covered by '{' TriplesTemplate? '}'
> >
> > true, but kinda prefer to make it explicit, if no objections.
>
> Fine - just pointing it out.



ok, left 'as is'.


>
> >
> >>
> >> [Major]
> >> 'GRAPH' VarOrIRIref '{' TriplesTemplate? '}''
> >>
> >> Consider GRAPH ?g {<s>  <p>  <o>  }
> >> Need to say that if ?g is unbound, there are no triples.
> >>
> >
> > good point. suggested:
> >
> > -------
> > Dataset(QuadPattern, μ ) is the Dataset consisting of the empty default graph and a named graph (μ(VarOrIRIref), G) such that G is composed by all valid RDF triples obtained from substituting the variables in TriplesTemplate according to μ and combining these triples into a single RDF graph by set union.
> > -------
> > -->
> > -------
> > Dataset(QuadPattern, μ ) is the Dataset consisting of the empty default graph and, in case μ(VarOrIRIref) yields a valid IRI, a named graph (μ(VarOrIRIref), G) such that G is composed by all valid RDF triples obtained from substituting the variables in TriplesTemplate according to μ and combining these triples into a single RDF graph by set union.
> > -------
>
> And add what happens if it's not a IRI?  It's unspecificed in your text
> - implicitly it's do nothing, but it isn't defined.

It would be just "the Dataset consisting of the empty default graph"... changed s/and/plus/, hope that makes it clearer now:

"
Dataset(QuadPattern, μ ) is the Dataset consisting of the empty default graph, *plus* - in case μ(VarOrIRIref) yields a valid IRI - a named graph (μ(VarOrIRIref), G) such that G is composed by all valid RDF triples obtained from substituting the variables in TriplesTemplate according to μ and combining these triples into a single RDF graph by set union.
"

>
> >
> >>
> >> ** 4.2.5  Dataset( QuadPattern,  P, GS )
> >>
> >> [Major]
> >> Doesn't the bNode replacement done by sk have to be in 4.2.4 not here?
> >
> > hmmmm...
> >
> >> because in 4.3.1 Insert Data Operation, the replacement needs to be done
> >> but the operation is:
> >>
> >> OpInsertData(GS, QuadPattern) =
> >>      Dataset-UNION(GS, Dataset(QuadPattern,{}))
> >>
> >> so no replacement is done.
> >
> > ... yes! :-) will change.


done. moved bnode replacement sk<sub>μ</sub> to 4.2.4.

> >
> >> ** 4.3.1 Insert Data Operation
> >> ** 4.3.2 Delete Data Operation
> >> ** 4.3.3 Delete Insert Operation
> >>
> >> [Editorial]
> >> "either in the default slot or in a named slot."
> >> ==>
> >> "in the default slot or in named slots."
> >
> >>
> >> The either-or is confusing as it can be both.
> >>
> >
> > fine.

done, likewise 
 "from the default slot or from named slots"
further below.

> >
> >
> >> ** 4.3.4 Load Operation
> >> [editorial]
> >> "; i.e.;" =>  "; i.e."
> >
> > fine.

done.

> >
> >>
> >> ** 4.3.5 Clear Operation
> >>
> >> [Major]
> >> Definition: Load Operation
> >> ==>
> >> Definition: Clear Operation
> >
> > fine.

done.

> >
> >>
> >> ** 4.4.1 Create Operation
> >> Definition: CreateOperation
> >>
> >> Generally, what happens on errors?
> >> The defn says "create a new slot" and nothing about if the IRI is in use.
> >
> > yes, should say something like:
> >
> > "
> >   OpCreate(GS, iri) = Dataset-UNION(GS, (iri, {}))  ... if iri not in graphnames(GS)
> >                     = GS                            ... otherwise
> > "
> >

done.


> >>
> >> ** 4.4.2 DropOperation
> >> [Major]
> >> OpDrop(GS, iri) = ... GS minus {(irij, Gj)}
> >>
> >> "minus" on GS isn't defined.
> >
> > add:
> > "where minus here is set-difference"
> > or alike.
>
> That will work but it might be (eitorially) easier to write out GS and
> say "i = 1 to n except j"
>
> Not a block on LC.

done, changed as suggested. 

>
> >
> >>
> >> ** 4.5 Mapping Update Requests to the Formal Model
> >> [Major]
> >> Table uses "Tr(GS,UsingClause)" but the Tr operation is "Tr(GS,Request)"
> >> and "UsingClause" isn't a request
> >
> > right, sloppily re-used that out of  convenience...
> > can rename "Tr(GS,UsingClause)" to something like "Tr<sub>Dataset</sub>(GS,UsingClause)" to set it apart.

I did that and defined Tr<sub>Dataset</sub>(GS,UsingClause) in an extra table. Reads better now, I think.


> I think I need to reread it (if time...) about USING and WITH.

For clarification: WITH is only a marco for GRAPH in all "unnamed" triples pattern, and in Section 4.5 before Table 1 it
says already that it expects WITH to be expanded.

>
>         Andy
>
> >
> >
> >
> > Great, thanks again for the quick and on-spot remarks! Looks as we're converging.
> >
> > Axel
> >
>
Received on Sunday, 1 May 2011 23:51:38 GMT

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