- From: Pierre-Antoine Champin <pierre-antoine.champin@liris.cnrs.fr>
- Date: Thu, 27 Aug 2015 18:20:18 +0200
- To: Gregg Kellogg <gregg@greggkellogg.net>
- Cc: "public-ldp-comments@w3.org" <public-ldp-comments@w3.org>
- Message-ID: <CA+OuRR-nWqQUM56eVnFHhcy1y+76T7HkixOf+7curxR3Lcn6Vg@mail.gmail.com>
I actually just implemented it in ld-patch-py <https://github.com/pchampin/ld-patch-py> :-) On Thu, Aug 27, 2015 at 6:07 PM, Pierre-Antoine Champin < pierre-antoine.champin@liris.cnrs.fr> wrote: > I can not remember if we discussed this point precisely. > On the one hand, I find it more elegant to have exactly one way to do it... > but on the other hand, being able to copy-paste a piece of SPARQL (or > SPARQL-like Turtle) would be nice. > > On Wed, Aug 26, 2015 at 12:54 AM, Gregg Kellogg <gregg@greggkellogg.net> > wrote: > >> Another piece of feedback on the grammar: The spec uses the @prefix >> notation from Turtle, but does not also allow the PREFIX form, inherited >> from SPARQL. This was added to make copy and paste between Turtle and >> SPARQL documents simpler, and the same rational might apply for LD Patch. >> Suggested grammar change would be: >> >> [2] prologue ::= (prefixID | sparqlPrefix)* >> [6s] sparqlPrefix ::= "PREFIX" PNAME_NS IRIREF >> >> My own grammar for Turtle uses the following: >> >> [4] prefixID ::= PREFIX PNAME_NS IRIREF "."? >> [28t] PREFIX ::= "@"?[Pp][Rr][Ee][Ff][Ii][Xx] >> >> which is more permissive, but reduces complexity. >> >> Of course, not including it might be intentional, but I’d consider adding >> it for simpler compatibility with both SPARQL and Turtle in the future. >> >> Gregg >> >> > On Aug 23, 2015, at 10:35 PM, Gregg Kellogg <gregg@greggkellogg.net> >> wrote: >> > >> > I’ve completed an implementation of a Linked Data Patch Format >> processor in Ruby, compatible with the RDF.rb suite. >> > >> > github: https://github.com/ruby-rdf/ld-patch >> > gem: https://rubygems.org/gems/ld-patch >> > earl report: >> https://raw.githubusercontent.com/ruby-rdf/ld-patch/develop/etc/earl.ttl >> > earl report (as HTML+RDFa): >> https://htmlpreview.github.com/?https://github.com/ruby-rdf/ld-patch/blob/develop/etc/earl.html >> > >> > As noted in the README on GitHub, this implementation uses a small >> variation on the EBNF Grammar: >> > >> > * The INDEX terminal was removed in favor of using INTEGER. As both >> INDEX and INTEGER can match the same terminals, it lead to an ambiguity >> that my LL(1) processor could not handle properly. >> > * The graph production is changed as follows: >> > >> > [18] graph ::= triples ('.' triples?)* >> > >> > This has the advantage of being context free, although does allow for >> repeated ‘.’ at the end of a graph, which certain tests ported from Turtle >> check for. >> > >> > The original production: >> > >> > [18] graph ::= triples ( '.' triples )* '.’? >> > >> > is not context free, as ‘.’ is in the FIRST of two different >> productions; I think it should be replaced in the version I used for the >> grammar to be context free. >> > >> > This is a stand-alone processor, and needs to be integrated with an LDP >> server to be useful, such as https://github.com/ruby-rdf/rdf-ldp. >> > >> > Gregg Kellogg >> > gregg@greggkellogg.net >> > >> >> >
Received on Thursday, 27 August 2015 16:21:07 UTC