W3C home > Mailing lists > Public > public-rdf-comments@w3.org > May 2013

Re: PrEfIx and BaSe should be removed from Turtle

From: David Booth <david@dbooth.org>
Date: Fri, 24 May 2013 22:41:10 -0400
Message-ID: <51A024C6.3050801@dbooth.org>
To: Sandro Hawke <sandro@w3.org>
CC: Gavin Carothers <gavin@carothers.name>, RDF-WG WG <public-rdf-wg@w3.org>, "public-rdf-comments@w3.org" <public-rdf-comments@w3.org>, David Robillard <d@drobilla.net>, Peter Ansell <ansell.peter@gmail.com>, Gregory Williams <greg@evilfunhouse.com>
I agree with Sandro's bottom line: "*I think it's burden on users to 
have to keep track of arbitrary and meaningless syntactic differences 
between closely related languages.*", and I think that should be the 
W3C's overriding concern.  It is an embarrassment and an annoyance to 
have this obvious design flaw between the two languages (Turtle and SPARQL).

I previously argued for fixing SPARQL in this regard, but it would be 
much more expedient to change Turtle, since it will probably be a few 
years before SPARQL could be changed.

Bottom line: Please align Turtle and SPARQL syntax one way or another.


On 05/22/2013 12:43 PM, Sandro Hawke wrote:
> On 05/15/2013 10:48 PM, Gavin Carothers wrote:
>>   <https://gist.github.com/gcarothers/5589022#prefix-and-base-should-be-removed-from-turtle>PrEfIx
>>   and BaSe should be removed from Turtle
>> PREFIX and BASE were added as features at risk to Turtle before CR.
>> Designed to make it easier to copy and paste between Turtle and SPARQL
>> they have proven controversial. As they are a controversial addition
>> to a settled language they should be removed.
> I don't agree.     Removing them would do a disservice to the future
> users of Turtle.
> To be clear: it's a "coin-toss" non-technical decision whether to
> require the @-sign.   It doesn't have a significant impact on
> implementation difficulty; has no impact on expressive power, etc. It's
> just a question of style and tradition.
> As a question of style, I think the @ is ugly and annoying.    "@" means
> a lot of different things, usually somewhat related to the notion of
> "at".    sandro "at" w3.org.    comment reply directed "at" sandro.
> In Turtle it already has another meaning, for language tags: "chat" "at"
> fr.  Okay, that's not a good fit for "at" -- but it's still another
> meaning for "@".    How are people supposed to read "@prefix"?   Like
> it's a  chat message directed at the prefix processor?
> Historically, the @ was there because Tim didn't want to claim the
> barewords in the language for keywords.   He wanted to allow for
> prefix-less terms, I believe.    But the "a" keyword already violates
> that, and Turtle isn't going to allow prefix-less terms. (I pushed for
> that at one point and the WG had zero interest.)   So that reason has no
> weight -- there's no longer a technical reason to have @.
> Now we come to tradition.  Here we have dueling traditions of N3/Turtle
> with the @-sign and SPARQL (and kind of every other language) without
> the @-sign.   On the one hand, we have lots of people using N3 and
> Turtle.  On the other hand, we have lots of people using SPARQL.
> SPARQL is a W3C Recommendation while N3 and Turtle are not.   SPARQL is
> perhaps used more internally, while N3 and Turtle are published in the open.
> Some people say, "but they are different" -- SPARQL is a database
> interface language, Turtle is a data format, so they can and should be
> arbitrarily different -- but I don't find this compelling at all.  I
> think it makes perfect sense to say Turtle and SPARQL (and TriG) are
> composed of the same pieces, put together in the obvious ways for the
> obvious purposes.  To say that two of the pieces (the directives with
> and without @-sign) serve the exact same purpose but are not
> interchangeable seems to me to be an obvious design flaw.
> We can't just remove the @-sign, because there's lots of Turtle using it
> already, but I see no reason not to allow a slow migration to begin.
> Bottom line:*I think it's burden on users to have to keep track of
> arbitrary and meaningless syntactic differences between closely related
> languages.*   There's a burden to changing, but I believe Turtle will
> have far more users in the future than it has today.
> As I said on the call, this is not a do-or-die thing, of course.   I
> don't think we need to spend a lot of time arguing about it.   Folks did
> ask me to state my reasons, though, so I've done that.   If we require
> @-signs in Turtle, I believe it will be a mistake.    (Not the first,
> not the last, ...  :-)
> (Closely related, I think TriG (beyond the directives) needs to be a
> subset of the SPARQL quad pattern syntax, allowing the GRAPH keyword and
> not requiring braces around the default graph.  I mention it here
> because the arguments are very similar.)
>       -- Sandro
>>     <https://gist.github.com/gcarothers/5589022#rationale>Rationale
>> The FPWD for the Turtle document published by this working group
>> included the following:
>>     Turtle is already a reasonably settled serialization of RDF. Many
>>     implementations of Turtle already exist, we are hoping for
>>     feedback from those existing implementers and other people
>>     deciding that now would be a good time to support Turtle. There
>>     are still a few rough edges that need polishing, and better
>>     alignment with the SPARQL triple patterns. The working group does
>>     not expect to make any large changes to the existing syntax.
>> The laudable goal of reducing copy and paste errors in both Turtle and
>> SPARQL is not strong enough to change a settled serialization.
>> None of the arguments in support of the feature deal with what
>> serialization should be preferred. Introducing the feature also
>> creates issues with the existing @prefix and @base syntax and if they
>> should or should not require a trailing period. Again, there is no
>> clear guidance for serializers. This feature also introduces the first
>> case insensitive keyword in Turtle all other Turtle keywords are case
>> sensitive.
>> Lastly, the goal of full copy and paste between SPARQL and Turtle will
>> not be achieved only by adding this feature. A range of other issues
>> exist preventing this.
>>     <https://gist.github.com/gcarothers/5589022#actions>Actions
>>   * Remove "Feature at Risk" box
>>   * Remove grammar rules 5s, 6s
>>   * Update grammar rule 3 to read |prefixID | base|
>>   * Change grammar note 1 to "All keywords are case sensitive"
>> The grammar at that point requires no magical understanding of case
>> rules as all rules express the case of their keywords.
>>     <https://gist.github.com/gcarothers/5589022#ways-forward-for-those-that-like-copying-and-pasting-prefixbase>Ways
>>     forward for those that like copying and pasting PREFIX/BASE
>> I'd direct your attention to the conformance section of the Turtle
>> document. http://www.w3.org/TR/turtle/#conformance "This specification
>> does not define how Turtle parsers handle non-conforming input
>> documents." That note is not there by mistake.
>>     <https://gist.github.com/gcarothers/5589022#selected-messages-and-threads-from-outside-of-wg>Selected
>>     Messages and Threads (From outside of WG)
>> Yes, I read all the threads again, just a few are included here.
>>       <https://gist.github.com/gcarothers/5589022#supporting>Supporting
>> David Booth david@dbooth.org <mailto:david@dbooth.org>
>> http://www.w3.org/mid/516EAFDF.50708@dbooth.org
>> Copy and paste between Turtle and SPARQL is /very/ common,
>> particularly in debugging. Having to change the prefix syntax back and
>> forth is a significant and pointless waste of time. Please find a path
>> to a single compatible syntax.
>>       <https://gist.github.com/gcarothers/5589022#in-opposition>In
>>       opposition
>> Gregory Williams greg@evilfunhouse.com <mailto:greg@evilfunhouse.com>
>> 2013-03-01:
>> http://www.w3.org/mid/C52BE515-076D-4D10-82D0-27FD757F2F48@EVILFUNHOUSE.COM
>> I'd like to take this opportunity to provide feedback on the inclusion
>> of SPARQL BASE and PREFIX syntax in the new Turtle grammar. I think
>> this is a mistake, adding complexity for both users and implementors.
>> I'm sympathetic to the desire to align syntax for triples between
>> Turtle and SPARQL, but don't believe the alignment is necessary or
>> recommended for the top-level language syntax (as the need for
>> backwards compatibility with pre-REC Turtle means that alignment
>> requires two different syntaxes for the same declarations).
>> David Robillard d@drobilla.net <mailto:d@drobilla.net> 2012-10-08:
>> http://lists.w3.org/Archives/Public/public-rdf-comments/2012Aug/0028.html
>> For what it's worth, as a Turtle implementer I am opposed to this
>> change. It is ugly and inconsistent with the language, clearly an
>> import that does not belong.
>> While it is unfortunate that SPARQL did not use the @directive
>> convention from N3, Turtle does not contain SELECT and such either.
>> While triple copying and pasting between the languages is desirable
>> (even if it has polluted Turtle with path grammar and horrific
>> escaping rules), the directives between the two languages are not
>> compatible.
>> I do not consider messing up the Turtle specification in this way
>> appropriate. If implementations want to support this as an extension,
>> they may. I won't.
>> Peter Ansell ansell.peter@gmail.com <mailto:ansell.peter@gmail.com>
>> 2013-04-28
>> http://www.w3.org/mid/CAGYFOCQKfygwogHQj_b7=nW1CrxM4aq5XUdgJg4nx4uaUSKZFw@mail.gmail.com
>> I am sorry, but I completely disagree that changing a fundamental part
>> of an established syntax as part of its long-delayed "standardisation"
>> process can be rationalised by saying that hypothetical future users
>> will appreciate it and it doesn't matter what a community of current
>> users think.
Received on Saturday, 25 May 2013 02:41:43 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:59:34 UTC