- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Wed, 02 May 2012 10:49:50 +0100
- To: public-rdf-wg@w3.org
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)
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.
== 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'
Comment 6a:
The links in [2] didn't work
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.
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.
---- 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.
Sec 12.1 Summary of diffrences in N-Triples and Turtle should mention
that triples can't be split across lines.
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.
==
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>
Received on Wednesday, 2 May 2012 09:50:29 UTC