Re: Turtle Draft

On Wed, May 2, 2012 at 2:49 AM, Andy Seaborne
<andy.seaborne@epimorphics.com> wrote:
>
>
> On 02/05/12 00:02, Gavin Carothers wrote:
>>
>> New draft is up before meeting
>>
>> http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-turtle/index.html
>>
>> Sections I'm still not happy with:
>>
>> 3.1.2: Has no examples, but all the examples showed how to abuse @base
>> to do horrible things. If anyone has a GOOD example of @base twice in
>> a document...
>>
>> 3.3.1: Not a friendly introduction to nested blank nodes, but than I
>> hate nested blank nodes. Better prose welcome.
>>
>> 9: We should likely have a test suite that tests the current grammar
>> and design, just saying.
>>
>> Cheers,
>> Gavin
>>
>
> (rushed, incomplete ... sorry)

Thanks anyway!
>
> I put my "mechanically implement" hat on and went and looked at the formal
> specifications for Turtle and N-Triples:
>
>
> == Turtle
>
> Producing triples from a Turtle document is Section 6.3 "RDF Triples
> Constructors".
>
> It covers:
>
> 1/ """
>   For every object N in the document produces an RDF triple
>    curSubject curPredicate N."""
> 2/ Nodes produced by blankNodePropertyList
> 3/ Nodes produced by collection.
>
> Comment 1:
> I was expecting this section to contain all the places triples are produced.
>
> I was expecting something about predicateObjectList and objectList but I
> don't see anything.  At a minimum, how do these productions set N?
>
> Sec 2.2 "Predicate Lists" describes the process for predicateObjectList but
> is not formal.
>
> Comment 2:
> Terminology:
>  1 says triples are "produced"
>  3 says triples are "created".
>  Sec 7 says "emit"
>
> Comment 3:
>
> "a novel blank node B. "
>
> The usual term is "fresh" not "novel".
>
> Comment 4:
>
> What happens to "B"?  Is it N somehow?  For a formal section, this should be
> explicitly stated.  It does not say it's an object.
>
> "The node produced" but triples are "produced".
>
> Overall suggestion:
>
> Parsing is a process so writing as pseudo-code would be a good way of
> formally defining triple production.  Having already talked about the state
> variables, this seems natural to me.

There was an objection early on to having the parsing being defined
formally with pseudo code. This seems natural to me as well. Will
happily write as such if we can get a sense at todays meeting if
anyone would still object.

>
> == N-Triples
>
> Comment 5:
> Rule names inconsistent
>
> [2]             triple          ::=     subj pred obj '.'
> but the rule names are:
> [3] subjects     (NB plural as well)
> [4] predicate
> [5] object
>
>
> [5] object ::=  (IRIREF | BLANK_NODE_LABEL | lit)
> Ditto 'lit'

Whoops! Fixed.

>
> Comment 6a:
> The links in [2] didn't work\

Related to 5, names don't match links don't match.
>
> Comment 6b:
> [4] IRIREF links back to Turtle, not the rule in the N-Triples grammar (they
> are the same but links in N-Triples should go to the N-Triples copy).
> This occurs several times.

Yes, it seems I forgot to add a way to add a prefix to the element ids
for when there are more than one grammar on a page to my new shiny
bnf2html.

>
> Comment 7:
> It may be trivial but there is not equivalent to section 6.3 for N-Triples.
>  Add such a section.
>
> Comment 8: whitespace, comments
>
> N-Triples does not define horizontal white space processing.
> As stated the doc below is illegal because it has whitespace bewteen tokens.

Right, same language as turtle. Will add.

>
> ---- Doc
> <http://example/s>  <http://example/p>  "abc"  .
> ---- Doc
>
> Something on comments should go it.
>
> EOL is confusing as it's one or more end of lines.

Yes, this was actually to allow the grammar to parse the existing
N-Triples test cases.

>
> Sec 12.1 Summary of diffrences in N-Triples and Turtle should mention that
> triples can't be split across lines.

It should, now it does.

>
> Comment 9:
> [160s]          PN_CHARS                ::=     (PN_CHARS_U
>
> PN_CHARS_U isn't in the N-Triples grammar.
>
> PN_CHARS_BASE is defined but not used.

Fixed.

>
> ==
>
> Other comments:
>
> clicking around:
>
> The link in 3.3.1 tp predicateObjectList results in a page saying:
> error: rdf-turtle/predicateObjectList@a52278f0801e: not found in manifest
>
> <a href="predicateObjectLa novel blank node B. ist">predicateObjectList</a>
> ==>
> <a href="#grammar-production-predicateObjectList">predicateObjectList</a>
>
Err, not sure which link your talking about. Found one that's broken
in 3.3.1 but didn't look like that.
>

Received on Wednesday, 2 May 2012 14:19:14 UTC