- From: Alexandre Bertails <alexandre@bertails.org>
- Date: Mon, 21 Jul 2014 07:21:02 -0400
- To: John Arwe <johnarwe@us.ibm.com>
- Cc: "public-ldp-wg@w3.org Group" <public-ldp-wg@w3.org>
- Message-ID: <CANvn8kyytCNr2ybjf4H3kfSaVd5xZoKBh9niTEs-x3+zqV8qtg@mail.gmail.com>
On Tue, Jul 15, 2014 at 12:51 PM, John Arwe <johnarwe@us.ibm.com> wrote: > From July 14 minutes > Draft added to Mercurial > http://dvcs.w3.org/hg/ldpwg/raw-file/ldpatch/ldpatch.html > > I note this is on its own branch. What's the utility of that? It's not > like the sensible case we had with bblfish where he was making "prospective > updates" to existing documents that others were hacking away at in parallel. > This is one file, in most cases the editors are going to fuss with it and no > one else. I was going to fix some clear typos myself, but creating a new > repo locally to keep the branches untangled is more effort than it's worth > to me. Just do `hg update ldpatch` to switch branches. No need for another repo. You may have to pull it first. > > Non-typo comments: > > 1: This seems "bigger than a breadbox". I'm honestly not sure it fits in 5 > months, given its current state. Unless Sandro et al. warrants that nearly > all of the Frankensyntax is re-used, and with all the dependencies it needs > easily added, this feels like another iteration of "oh for pete's sake how > hard could this possibly be?" playing out. The 3 authors have spent time trying to make it as simple as possible. I am very interested in what you can "remove" from the approach to make it "easier" (not simpler I guess), while respecting the use-case. Remember, we don't have skolemization and we still want to change non-pathological graphs with bnodes. Also, most of the syntax is _copy/pasted_ from Turtle. My claim is that the "new" productions are extremely easy to handle compared to Turtle's. > > 2: Printing on std US paper at a reasonable font size, many of the examples > overflow the right margin at least once. Anything with a path is likely to > overflow, for starters. I am sure we can work on that. Also, paths can span on several lines if needed. > > 3: My sensible side assumes that whitespace between lexical tokens is (a) > allowed and (b) follows the common definitions, but I can't actually verify > that from the BNF body parts in here (I seem to be on a Halloween theme > today), so there may be unstated "global" assumptions that need to be added > ... and if so, one hopes that they are compatible with all the graves whence > the parts were collected. The concrete syntax is broken in 3 parts: the LD Patch specific rules, the ones copied from Turtle and the ones from SPARQL. Production rules for terminal are in upper case. We can certainly add a sentence to explain how the tokens are parser wrt whitespaces. I can see with Eric how they did in Turtle (couldn't find a specific sentence). > > 4: The text media type tree seems like an odd choice. I expected > application/ We asked around and others were expecting text/. It was arbitrary. I personally don't care. Really. > > 5: The unicity constraint definition leaves me hanging on the "...or what?" > I.e. what if the path is NOT unique up to the point where the ! occurs? I'd > guess you're implying that's an error, but I find nothing in the text really > to support my supposition ... it's just the least surprising choice (to me). >From the introduction: [[ Note that each step can, in general, result in several matching nodes, as a given node can have several (incoming or outgoing) arcs with the same predicate. ]] The error part will be specified in the semantics. > > 6: 2.4 talks about the variable "pointing" at an RDF Term (sic). Keeping > with the binding theme instead of switching to "point*" might be clearer. > E.g. "...will be bound" or just "...is bound". Yes, we meant "bound", not "point". The text will be updated accordingly. > > 7: 2.6 suggests (by omission) that it is impossible to delete a list, > although (in later sections) it's possible to empty a list. The asymmetry > of being able to add a list, but not delete it again later, seems vaguely > suspect although I have no concrete use cases requiring it. At some level I > think about it as: can I undo whatever havoc I cause? ...and the answer > here appears to be 'no'. You should UpdateList as syntactic sugar for manipulating the structure of a list. As I don't understand what you think you cannot do, I will ask you to provide an example. > > 8: The (first) Path BNF is ( step | constraint ) * ... so I can have two > consecutive constraints. Yes, you can. > The end of 2.4 is all I see wrt those constraints, > so if I put >1 on here, how do I know their relation? Guessing again, you > want And... as in, meets all constraints. No. You read it from left to right. Each step will produce a new set of nodes, by following predicates (ie. pattern s p ?o). A constraint will restrict the current set. In the spirit, it's a bit like xpath, but I don't want to use the comparison too much. > > 9: I don't see any Abstract Syntax definition for UNICITY_CONSTRAINT. It's a singleton. Or imagine something like `UNICITY_CONSTRAINT ::= ()`. Truth is I don't know how to represent that explicitly, so I just used upper case for the name. > > 10: I'm not sure how to reliably interpret section 4, even after following > my nose to the first 2 links. I get the sense that you're asking me to > somehow apply BNF syntax to the content of those pages, which don't appear > to have any remotely similar syntax. The abstract syntax is what I can use in the semantics. The approach follows exactly what was done in RDB2RDF Direct Mapping. > > 11: Given that Constraint wanders into comparison for equality, you need > rules for that if anyone is going to reliably interop on it. In paging, we > re-used SPARQL's rules. Otherwise you have to lay out the various cases > like typed ?= untyped if the lexical value is otherwise identical, which > history shows are not trivial to get complete and right. It is _strict_ equality: in the case of a literal, the three components must be the same(lexical form, datatype, langtag if present). No magic like in SPARQL, the use-case here is very different. Regards, Alexandre. PS: I am joining my slides for tomorrow, hoping that I will be able to point to them tomorrow from the archives. > > Best Regards, John > > Voice US 845-435-9470 BluePages > Cloud and Smarter Infrastructure OSLC Lead
Attachments
- text/html attachment: ldpatch.html
Received on Monday, 21 July 2014 11:21:30 UTC