This is the original N-Triples draft from 2001. The version you probably want is the actual W3C Recommendation N-Triples from 2004.
-- Dave, 2007
$Revision: 1.8 $
N-Triples is a line-based, plain text format (MIME Type text/plain) for representing the correct answers for parsing RDF/XML[RDFMS] test cases as part of the RDF Core working group.
Test cases in N-Triples can be found linked from the RDF Core issues tracking area especially the attention developers and closed issues sections.
This format was designed to be a fixed subset of N3[N3][N3-Primer] and hence N3 tools such as cwm, n-triples2kif.pl and Euler can be used to process it.
An N-Triples document is defined by the ntripleDoc grammar term below and parsing it results in a sequence of RDF statements formed from the subject, predicate and object terms. The meaning of these are defined either in [RDFMS] or is ongoing as part of the RDF Core WG activity.
This EBNF is similar to the notation used in XML 1.0 second edition
| ntripleDoc | ::= | line* | |
| line | ::= | ws* (comment | triple) ? eoln | |
| comment | ::= | '#' [^ cr lf ]* | |
| triple | ::= | subject ws+ predicate ws+ object ws* '.' ws* | |
| subject | ::= | uriref | anonNode | |
| predicate | ::= | uriref | |
| object | ::= | uriref | anonNode | qLiteral | |
| uriref | ::= | '<' absoluteURI '>' | |
| anonNode | ::= | '_' ':' name | |
| qLiteral | ::= | '"' string '"' | |
| ws | ::= | space | tab | |
| eoln | ::= | cr? lf | |
| space | ::= | ASCII space - decimal 32 | |
| cr | ::= | ASCII carriage return - decimal 13 | |
| lf | ::= | ASCII linefeed - decimal 10 | |
| tab | ::= | ASCII horizontal tab - decimal 9 | |
| string | ::= | character* with escapes as defined in section String Escaping | |
| name | ::= | [A-Za-z0-9]+ | |
| absoluteURI | ::= | [^ < > space]+ | |
| character | ::= | An ASCII character from decimal 32 (space) to decimal 255 | # See issues |
After [N3] the following escapes are defined (and no others):
| Escape sequence | Meaning |
|---|---|
| \\ | ASCII backspace character (decimal 92) |
| \" | ASCII double quote (decimal 34) |
| \n | ASCII linefeed (decimal 10) - lf character |
| \r | ASCII carriage return (decimal 13) - cr character |
| \t | ASCII horizontal tab (decimal 9) - tab character |
This is based on a subset of the allowed escapes in [N3] which is in turn based on Python string literals. It is a subset since not all that complexity is needed or required and for example, the \ before real newlines (cr or lf) could not be allowed since that would break the line-basis of N-Triples.
N-Triples was named and decided as the test-case format in the RDF Core WG 2001-06-01 meeting; see the minutes and chat logs
It was based on discussions from the long thread on RDF Core WG in May 2001 - Test cases: format of input and output mostly summarised in this message from Dan Connolly.
The original version of the grammar was based on emails to RDF Core list from Art Barstow: 1, 2 and change to 'triple' rule to allow ws* before '.' from Jan Grant.
[RDFMS] RDF Model and Syntax by Lassila and Swick (ed.), 22 February 1999.
[N3] Notation 3 by Tim Berners-Lee, over period 1998-.
[N3-Primer] Primer: Getting into RDF & Semantic Web using N3 by Tim Berners-Lee, over period 2000-.
Copyright 2001 Dave Beckett, Institute for Learning and Research Technology, University of Bristol