N-Triples Implementation Report

## Abstract

This document report test subject conformance for and related specifications for N-Triples [N-TRIPLES] according to the requirements of the Evaluation and Report Language (EARL) 1.0 Schema [EARL10-SCHEMA].

This report is also available in alternate formats: Turtle and JSON-LD

See also the Implementation report for PR transition (a step in the W3C Process ).

## Status of This Document

This document is merely a public working draft of a potential specification. It has no official standing of any kind and does not represent the support or consensus of any standards organisation.

New Version Available

The RDF Test Curation Community Group is maintaining updates to important test suites, including for N-Triples. The new tests are available at http://w3c.github.io/rdf-tests/ntriples/ along with an updated Implementation Report.

## Table of Contents

## 1. Instructions for submitting implementation reports

Tests should be run using the test manifests defined in the Test Manifests Section.

Reports should be submitted in Turtle format to public-rdf-comments@w3.org and include an `earl:Assertion` for each test, referencing the test resource from the associated manifest and the test subject being reported upon. An example test entry is be the following:

      [ a earl:Assertion;
        earl:assertedBy <http://greggkellogg.net/foaf#me>;
        earl:subject <http://rubygems.org/gems/rdf>;
        earl:test <http://www.w3.org/2013/N-TriplesTests/manifest.ttl#nt-syntax-file-01>;
        earl:result [
          a earl:TestResult;
          earl:outcome earl:passed;
          dc:date "2013-02-22T15:12:30-08:00"^^xsd:dateTime];
        earl:mode earl:automatic ] .

The Test Subject should be defined as a `doap:Project`, including the name, homepage and developer(s) of the software (see [DOAP]). Optionally, including the project description and programming language. An example test subject description is the following:

      <> foaf:primaryTopic <http://rubygems.org/gems/rdf>
        dc:issued "2013-02-22T15:12:30-08:00"^^xsd:dateTime ;
        foaf:maker <http://greggkellogg.net/foaf#me> .

      <http://rubygems.org/gems/rdf> a doap:Project, earl:TestSubject, earl:Software ;
        doap:name          "RDF.rb" ;
        doap:homepage      <http://rubygems.org/gems/rdf> ;
        doap:license       <http://creativecommons.org/licenses/publicdomain/> ;
        doap:description   "RDF.rb is a pure-Ruby library for working with Resource Description Framework (RDF) data."@en ;
        doap:developer     <http://ar.to/#self>, <http://bhuga.net/#ben>, <http://greggkellogg.net/foaf#me> ;
        doap:maintainer    <http://ar.to/#self>, <http://bhuga.net/#ben>, <http://greggkellogg.net/foaf#me> ;
        doap:documenter    <http://ar.to/#self>, <http://bhuga.net/#ben>, <http://greggkellogg.net/foaf#me> ;
        foaf:maker         <http://ar.to/#self> ;
        dc:creator         <http://ar.to/#self> .

The software developer, either an organization or one or more individuals SHOULD be referenced from `doap:developer` using [FOAF]. For example:

      <http://greggkellogg.net/foaf#me> a foaf:Person, earl:Assertor;
        foaf:name "Gregg Kellogg";
        foaf:title "Implementor";
        foaf:homepage <http://greggkellogg.net/> .

See Turtle Test Suite Wiki for more information.

## 2. Test Manifests

### 2.1 N-Triples tests

Test | Apache Jena | Raptor | RDF.rb | Chelona | rdflib | N3.js
--- | --- | --- | --- | --- | --- | ---
nt-syntax-file-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-file-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-file-03 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-uri-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-uri-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-uri-03 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-uri-04 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-string-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-string-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-string-03 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-str-esc-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-str-esc-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-str-esc-03 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bnode-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bnode-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bnode-03 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-datatypes-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-datatypes-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-uri-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-uri-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-uri-03 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-uri-04 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-uri-05 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-uri-06 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-uri-07 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-uri-08 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-uri-09 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-prefix-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-base-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-struct-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-struct-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-lang-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-esc-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-esc-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-esc-03 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-string-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-string-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-string-03 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-string-04 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-string-05 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-string-06 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-string-07 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-num-01 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-num-02 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-bad-num-03 | PASS | PASS | PASS | PASS | PASS | PASS
nt-syntax-subm-01 | PASS | PASS | PASS | PASS | PASS | PASS
comment_following_triple | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_all_controls | PASS | PASS | PASS | PASS | PASS | PASS
literal_all_punctuation | PASS | PASS | PASS | PASS | PASS | PASS
literal_ascii_boundaries | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_2_dquotes | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_2_squotes | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_BACKSPACE | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_CARRIAGE_RETURN | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_CHARACTER_TABULATION | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_dquote | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_FORM_FEED | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_LINE_FEED | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_numeric_escape4 | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_numeric_escape8 | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_REVERSE_SOLIDUS | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_REVERSE_SOLIDUS2 | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_squote | PASS | PASS | PASS | PASS | UNTESTED | PASS
literal_with_UTF8_boundaries | PASS | PASS | PASS | PASS | UNTESTED | PASS
langtagged_string | PASS | PASS | PASS | PASS | UNTESTED | PASS
lantag_with_subtag | PASS | PASS | PASS | PASS | UNTESTED | PASS
minimal_whitespace | PASS | PASS | PASS | PASS | UNTESTED | PASS
Percentage passed out of 68 Tests | 100.0% | 100.0% | 100.0% | 100.0% | 70.6% | 100.0%

## A. Test Subjects

This report was tested using the following test subjects:

Apache Jena
  Description
    Apache Jena provides a complete framework for building Semantic Web and Linked Data applications in Java, and provides: parsers for RDF/XML, Turtle and N-triples; a Java programming API; a complete implementation of the SPARQL query language; a rule-based inference engine for RDFS and OWL entailments; TDB (a non-SQL persistent triple store); SDB (a persistent triples store built on a relational store) and Fuseki, an RDF server using web protocols. Jena complies with all relevant recommendations for RDF and related technologies from the W3C.
  Programming Language
    Java
  Home Page
    http://jena.apache.org
  Developer
    Rob Vesse
    Paolo Castagna
    Chris Dollin
    Stephen Allen
    Ian Dickinson
    Damian Steer
    Andy Seaborne
    Claude Warren
    Dave Reynolds
  Test Suite Compliance

    68/68 (100.0%)

Raptor
  Programming Language
    C
  Home Page
    http://librdf.org/raptor/
  Developer
    Dave Beckett
  Home Page
    http://www.dajobe.org/
Test Suite Compliance

  68/68 (100.0%)

RDF.rb
  Description
    RDF.rb is a pure-Ruby library for working with Resource Description Framework (RDF) data.
  Home Page
    http://rubygems.org/gems/rdf
  Developer
    Arto Bendiken
  Home Page
    http://ar.to/
  Ben Lavender
  Home Page
    http://bhuga.net/
  Gregg Kellogg
  Home Page
    http://greggkellogg.net/
Test Suite Compliance

  68/68 (100.0%)

Chelona
  Description
    Cheló̱na is a reader / writer for the W3C RDF 1.1 Turtle, Trig and N-Triples Languages written in Scala.
  Programming Language
    Scala
  Home Page
    https://github.com/JuPfu/chelona
  Developer
    Jürgen Pfundt
  Test Suite Compliance

    68/68 (100.0%)

rdflib
  Home Page
    https://github.com/RDFLib/rdflib
  Developer
    Gunnar Aastrand Grimnes
  Home Page
    http://gromgull.net
Test Suite Compliance

  48/68 (70.6%)

N3.js
  Description
    N3.js is an asynchronous, streaming RDF parser for JavaScript.
  Programming Language
    JavaScript
  Home Page
    https://github.com/RubenVerborgh/N3.js
  Developer
    Ruben Verborgh
  Home Page
    http://ruben.verborgh.org/
Test Suite Compliance

  68/68 (100.0%)

## B. Individual Test Results

Individual test results used to construct this report are available here:

- Apache-Jena-ntriples-earl-2013-11-23.ttl
- RIOT-jena-details.ttl
- chelona_ntriples_earl_2015-06-21.ttl
- n3js-earl-report-ntriples.ttl
- raptor2012-earl-ntriples.ttl
- rdf.rb-earl-2013-11-24.ttl
- rdflib_nt-2013-12-22T19-12-25.ttl

## C. Test Definitions

Test nt-syntax-file-01

  Empty file

  Example 1: nt-syntax-file-01 Input

Test nt-syntax-file-02

  Only comment

  Example 2: nt-syntax-file-02 Input

      #Empty file.

Test nt-syntax-file-03

  One comment, one empty line

  Example 3: nt-syntax-file-03 Input

      #One comment, one empty line.

Test nt-syntax-uri-01

  Only IRIs

  Example 4: nt-syntax-uri-01 Input

      <http://example/s> <http://example/p> <http://example/o> .

Test nt-syntax-uri-02

  IRIs with Unicode escape

  Example 5: nt-syntax-uri-02 Input

      # x53 is capital S
      <http://example/\u0053> <http://example/p> <http://example/o> .

Test nt-syntax-uri-03

  IRIs with long Unicode escape

  Example 6: nt-syntax-uri-03 Input

      # x53 is capital S
      <http://example/\U00000053> <http://example/p> <http://example/o> .

Test nt-syntax-uri-04

  Legal IRIs

  Example 7: nt-syntax-uri-04 Input

      # IRI with all chars in it.
      <http://example/s> <http://example/p> <scheme:!$%25&'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> .

Test nt-syntax-string-01

  string literal

  Example 8: nt-syntax-string-01 Input

      <http://example/s> <http://example/p> "string" .

Test nt-syntax-string-02

  langString literal

  Example 9: nt-syntax-string-02 Input

      <http://example/s> <http://example/p> "string"@en .

Test nt-syntax-string-03

  langString literal with region

  Example 10: nt-syntax-string-03 Input

      <http://example/s> <http://example/p> "string"@en-uk .

Test nt-syntax-str-esc-01

  string literal with escaped newline

  Example 11: nt-syntax-str-esc-01 Input

      <http://example/s> <http://example/p> "a\n" .

Test nt-syntax-str-esc-02

  string literal with Unicode escape

  Example 12: nt-syntax-str-esc-02 Input

      <http://example/s> <http://example/p> "a\u0020b" .

Test nt-syntax-str-esc-03

  string literal with long Unicode escape

  Example 13: nt-syntax-str-esc-03 Input

      <http://example/s> <http://example/p> "a\U00000020b" .

Test nt-syntax-bnode-01

  bnode subject

  Example 14: nt-syntax-bnode-01 Input

      _:a  <http://example/p> <http://example/o> .

Test nt-syntax-bnode-02

  bnode object

  Example 15: nt-syntax-bnode-02 Input

      <http://example/s> <http://example/p> _:a .
      _:a  <http://example/p> <http://example/o> .

Test nt-syntax-bnode-03

  Blank node labels may start with a digit

  Example 16: nt-syntax-bnode-03 Input

      <http://example/s> <http://example/p> _:1a .
      _:1a  <http://example/p> <http://example/o> .

Test nt-syntax-datatypes-01

  xsd:byte literal

  Example 17: nt-syntax-datatypes-01 Input

      <http://example/s> <http://example/p> "123"^^<http://www.w3.org/2001/XMLSchema#byte> .

Test nt-syntax-datatypes-02

  integer as xsd:string

  Example 18: nt-syntax-datatypes-02 Input

      <http://example/s> <http://example/p> "123"^^<http://www.w3.org/2001/XMLSchema#string> .

Test nt-syntax-bad-uri-01

  Bad IRI : space (negative test)

  Example 19: nt-syntax-bad-uri-01 Input

      # Bad IRI : space.
      <http://example/ space> <http://example/p> <http://example/o> .

Test nt-syntax-bad-uri-02

  Bad IRI : bad escape (negative test)

  Example 20: nt-syntax-bad-uri-02 Input

      # Bad IRI : bad escape
      <http://example/\u00ZZ11> <http://example/p> <http://example/o> .

Test nt-syntax-bad-uri-03

  Bad IRI : bad long escape (negative test)

  Example 21: nt-syntax-bad-uri-03 Input

      # Bad IRI : bad escape
      <http://example/\U00ZZ1111> <http://example/p> <http://example/o> .

Test nt-syntax-bad-uri-04

  Bad IRI : character escapes not allowed (negative test)

  Example 22: nt-syntax-bad-uri-04 Input

      # Bad IRI : character escapes not allowed.
      <http://example/\n> <http://example/p> <http://example/o> .

Test nt-syntax-bad-uri-05

  Bad IRI : character escapes not allowed (2) (negative test)

  Example 23: nt-syntax-bad-uri-05 Input

      # Bad IRI : character escapes not allowed.
      <http://example/\/> <http://example/p> <http://example/o> .

Test nt-syntax-bad-uri-06

  Bad IRI : relative IRI not allowed in subject (negative test)

  Example 24: nt-syntax-bad-uri-06 Input

      # No relative IRIs in N-Triples
      <s> <http://example/p> <http://example/o> .

Test nt-syntax-bad-uri-07

  Bad IRI : relative IRI not allowed in predicate (negative test)

  Example 25: nt-syntax-bad-uri-07 Input

      # No relative IRIs in N-Triples
      <http://example/s> <p> <http://example/o> .

Test nt-syntax-bad-uri-08

  Bad IRI : relative IRI not allowed in object (negative test)

  Example 26: nt-syntax-bad-uri-08 Input

      # No relative IRIs in N-Triples
      <http://example/s> <http://example/p> <o> .

Test nt-syntax-bad-uri-09

  Bad IRI : relative IRI not allowed in datatype (negative test)

  Example 27: nt-syntax-bad-uri-09 Input

      # No relative IRIs in N-Triples
      <http://example/s> <http://example/p> "foo"^^<dt> .

Test nt-syntax-bad-prefix-01

  @prefix not allowed in n-triples (negative test)

  Example 28: nt-syntax-bad-prefix-01 Input

      @prefix : <http://example/> .

Test nt-syntax-bad-base-01

  @base not allowed in N-Triples (negative test)

  Example 29: nt-syntax-bad-base-01 Input

      @base <http://example/> .

Test nt-syntax-bad-struct-01

  N-Triples does not have objectList (negative test)

  Example 30: nt-syntax-bad-struct-01 Input

      <http://example/s> <http://example/p> <http://example/o>, <http://example/o2> .

Test nt-syntax-bad-struct-02

  N-Triples does not have predicateObjectList (negative test)

  Example 31: nt-syntax-bad-struct-02 Input

      <http://example/s> <http://example/p> <http://example/o>; <http://example/p2>, <http://example/o2> .

Test nt-syntax-bad-lang-01

  langString with bad lang (negative test)

  Example 32: nt-syntax-bad-lang-01 Input

      # Bad lang tag
      <http://example/s> <http://example/p> "string"@1 .

Test nt-syntax-bad-esc-01

  Bad string escape (negative test)

  Example 33: nt-syntax-bad-esc-01 Input

      # Bad string escape
      <http://example/s> <http://example/p> "a\zb" .

Test nt-syntax-bad-esc-02

  Bad string escape (negative test)

  Example 34: nt-syntax-bad-esc-02 Input

      # Bad string escape
      <http://example/s> <http://example/p> "\uWXYZ" .

Test nt-syntax-bad-esc-03

  Bad string escape (negative test)

  Example 35: nt-syntax-bad-esc-03 Input

      # Bad string escape
      <http://example/s> <http://example/p> "\U0000WXYZ" .

Test nt-syntax-bad-string-01

  mismatching string literal open/close (negative test)

  Example 36: nt-syntax-bad-string-01 Input

      <http://example/s> <http://example/p> "abc' .

Test nt-syntax-bad-string-02

  mismatching string literal open/close (negative test)

  Example 37: nt-syntax-bad-string-02 Input

      <http://example/s> <http://example/p> 1.0 .

Test nt-syntax-bad-string-03

  single quotes (negative test)

  Example 38: nt-syntax-bad-string-03 Input

      <http://example/s> <http://example/p> 1.0e1 .

Test nt-syntax-bad-string-04

  long single string literal (negative test)

  Example 39: nt-syntax-bad-string-04 Input

      <http://example/s> <http://example/p> '''abc''' .

Test nt-syntax-bad-string-05

  long double string literal (negative test)

  Example 40: nt-syntax-bad-string-05 Input

      <http://example/s> <http://example/p> """abc""" .

Test nt-syntax-bad-string-06

  string literal with no end (negative test)

  Example 41: nt-syntax-bad-string-06 Input

      <http://example/s> <http://example/p> "abc .

Test nt-syntax-bad-string-07

  string literal with no start (negative test)

  Example 42: nt-syntax-bad-string-07 Input

      <http://example/s> <http://example/p> abc" .

Test nt-syntax-bad-num-01

  no numbers in N-Triples (integer) (negative test)

  Example 43: nt-syntax-bad-num-01 Input

      <http://example/s> <http://example/p> 1 .

Test nt-syntax-bad-num-02

  no numbers in N-Triples (decimal) (negative test)

  Example 44: nt-syntax-bad-num-02 Input

      <http://example/s> <http://example/p> 1.0 .

Test nt-syntax-bad-num-03

  no numbers in N-Triples (float) (negative test)

  Example 45: nt-syntax-bad-num-03 Input

      <http://example/s> <http://example/p> 1.0e0 .

Test nt-syntax-subm-01

  Submission test from Original RDF Test Cases

  Example 46: nt-syntax-subm-01 Input

      #
      # Copyright World Wide Web Consortium, (Massachusetts Institute of
      # Technology, Institut National de Recherche en Informatique et en
      # Automatique, Keio University).
      #
      # All Rights Reserved.
      #
      # Please see the full Copyright clause at
      # <http://www.w3.org/Consortium/Legal/copyright-software.html>
      #
      # Test file with a variety of legal N-Triples
      #
      # Dave Beckett - http://purl.org/net/dajobe/
      #
      # $Id: nt-syntax-subm-01.nt,v 1.1 2014-02-18 04:45:32 sandro Exp $
      #
      #####################################################################

      # comment lines
        	  	   # comment line after whitespace
      # empty blank line, then one with spaces and tabs

      <http://example.org/resource1> <http://example.org/property> <http://example.org/resource2> .
      _:anon <http://example.org/property> <http://example.org/resource2> .
      <http://example.org/resource2> <http://example.org/property> _:anon .
      # spaces and tabs throughout:
       	 <http://example.org/resource3> 	 <http://example.org/property>	 <http://example.org/resource2> 	.

      # line ending with CR NL (ASCII 13, ASCII 10)
      <http://example.org/resource4> <http://example.org/property> <http://example.org/resource2> .

      # 2 statement lines separated by single CR (ASCII 10)
      <http://example.org/resource5> <http://example.org/property> <http://example.org/resource2> .
      <http://example.org/resource6> <http://example.org/property> <http://example.org/resource2> .

      # All literal escapes
      <http://example.org/resource7> <http://example.org/property> "simple literal" .
      <http://example.org/resource8> <http://example.org/property> "backslash:\\" .
      <http://example.org/resource9> <http://example.org/property> "dquote:\"" .
      <http://example.org/resource10> <http://example.org/property> "newline:\n" .
      <http://example.org/resource11> <http://example.org/property> "return\r" .
      <http://example.org/resource12> <http://example.org/property> "tab:\t" .

      # Space is optional before final .
      <http://example.org/resource13> <http://example.org/property> <http://example.org/resource2>.
      <http://example.org/resource14> <http://example.org/property> "x".
      <http://example.org/resource15> <http://example.org/property> _:anon.

      # \u and \U escapes
      # latin small letter e with acute symbol \u00E9 - 3 UTF-8 bytes #xC3 #A9
      <http://example.org/resource16> <http://example.org/property> "\u00E9" .
      # Euro symbol \u20ac  - 3 UTF-8 bytes #xE2 #x82 #xAC
      <http://example.org/resource17> <http://example.org/property> "\u20AC" .
      # resource18 test removed
      # resource19 test removed
      # resource20 test removed

      # XML Literals as Datatyped Literals
      <http://example.org/resource21> <http://example.org/property> ""^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
      <http://example.org/resource22> <http://example.org/property> " "^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
      <http://example.org/resource23> <http://example.org/property> "x"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
      <http://example.org/resource23> <http://example.org/property> "\""^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
      <http://example.org/resource24> <http://example.org/property> "<a></a>"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
      <http://example.org/resource25> <http://example.org/property> "a <b></b>"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
      <http://example.org/resource26> <http://example.org/property> "a <b></b> c"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
      <http://example.org/resource26> <http://example.org/property> "a\n<b></b>\nc"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
      <http://example.org/resource27> <http://example.org/property> "chat"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
      # resource28 test removed 2003-08-03
      # resource29 test removed 2003-08-03

      # Plain literals with languages
      <http://example.org/resource30> <http://example.org/property> "chat"@fr .
      <http://example.org/resource31> <http://example.org/property> "chat"@en .

      # Typed Literals
      <http://example.org/resource32> <http://example.org/property> "abc"^^<http://example.org/datatype1> .
      # resource33 test removed 2003-08-03

Test comment_following_triple

  Tests comments after a triple

  Example 47: comment_following_triple Input

      <http://example/s> <http://example/p> <http://example/o> . # comment
      <http://example/s> <http://example/p> _:o . # comment
      <http://example/s> <http://example/p> "o" . # comment
      <http://example/s> <http://example/p> "o"^^<http://example/dt> . # comment
      <http://example/s> <http://example/p> "o"@en . # comment

Test literal

  literal """x"""

  Example 48: literal Input

      <http://a.example/s> <http://a.example/p> "x" .

Test literal_all_controls

  literal_all_controls '\x00\x01\x02\x03\x04...'

  Example 49: literal_all_controls Input

      <http://a.example/s> <http://a.example/p> "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\t\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" .

Test literal_all_punctuation

  literal_all_punctuation '!"#$%&()...'

  Example 50: literal_all_punctuation Input

      <http://a.example/s> <http://a.example/p> " !\"#$%&():;<=>?@[]^_`{|}~" .

Test literal_ascii_boundaries

  literal_ascii_boundaries '\x00\x26\x28...'

  Example 51: literal_ascii_boundaries Input

      <http://a.example/s> <http://a.example/p> "	&([]" .

Test literal_with_2_dquotes

  literal with 2 squotes """a""b"""

  Example 52: literal_with_2_dquotes Input

      <http://a.example/s> <http://a.example/p> "x\"\"y" .

Test literal_with_2_squotes

  literal with 2 squotes "x''y"

  Example 53: literal_with_2_squotes Input

      <http://a.example/s> <http://a.example/p> "x''y" .

Test literal_with_BACKSPACE

  literal with BACKSPACE

  Example 54: literal_with_BACKSPACE Input

      <http://a.example/s> <http://a.example/p> "\b" .

Test literal_with_CARRIAGE_RETURN

  literal with CARRIAGE RETURN

  Example 55: literal_with_CARRIAGE_RETURN Input

      <http://a.example/s> <http://a.example/p> "\r" .

Test literal_with_CHARACTER_TABULATION

  literal with CHARACTER TABULATION

  Example 56: literal_with_CHARACTER_TABULATION Input

      <http://a.example/s> <http://a.example/p> "\t" .

Test literal_with_dquote

  literal with dquote "x"y"

  Example 57: literal_with_dquote Input

      <http://a.example/s> <http://a.example/p> "x\"y" .

Test literal_with_FORM_FEED

  literal with FORM FEED

  Example 58: literal_with_FORM_FEED Input

      <http://a.example/s> <http://a.example/p> "\f" .

Test literal_with_LINE_FEED

  literal with LINE FEED

  Example 59: literal_with_LINE_FEED Input

      <http://a.example/s> <http://a.example/p> "\n" .

Test literal_with_numeric_escape4

  literal with numeric escape4 \u

  Example 60: literal_with_numeric_escape4 Input

      <http://a.example/s> <http://a.example/p> "\u006F" .

Test literal_with_numeric_escape8

  literal with numeric escape8 \U

  Example 61: literal_with_numeric_escape8 Input

      <http://a.example/s> <http://a.example/p> "\U0000006F" .

Test literal_with_REVERSE_SOLIDUS

  literal with REVERSE SOLIDUS

  Example 62: literal_with_REVERSE_SOLIDUS Input

      <http://a.example/s> <http://a.example/p> "\\" .

Test literal_with_REVERSE_SOLIDUS2

  REVERSE SOLIDUS at end of literal

  Example 63: literal_with_REVERSE_SOLIDUS2 Input

      <http://example.org/ns#s> <http://example.org/ns#p1> "test-\\" .

Test literal_with_squote

  literal with squote "x'y"

  Example 64: literal_with_squote Input

      <http://a.example/s> <http://a.example/p> "x'y" .

Test literal_with_UTF8_boundaries

  literal_with_UTF8_boundaries '\x80\x7ff\x800\xfff...'

  Example 65: literal_with_UTF8_boundaries Input

      <http://a.example/s> <http://a.example/p> "߿ࠀ࿿က쿿퀀퟿�𐀀𿿽񀀀󿿽􀀀􏿽" .

Test langtagged_string

  langtagged string "x"@en

  Example 66: langtagged_string Input

      <http://a.example/s> <http://a.example/p> "chat"@en .

Test lantag_with_subtag

  lantag with subtag "x"@en-us

  Example 67: lantag_with_subtag Input

      <http://example.org/ex#a> <http://example.org/ex#b> "Cheers"@en-UK .

Test minimal_whitespace

  tests absense of whitespace between subject, predicate, object and end-of-statement

  Example 68: minimal_whitespace Input

      <http://example/s><http://example/p><http://example/o>.
      <http://example/s><http://example/p>"Alice".
      <http://example/s><http://example/p>_:o.
      _:s<http://example/p><http://example/o>.
      _:s<http://example/p>"Alice".
      _:s<http://example/p>_:bnode1.

## D. Report Generation Software

This report generated by earl-report version 0.3.6 an Unlicensed Ruby application. More information is available at https://github.com/gkellogg/earl-report .

This software is provided by Gregg Kellogg in hopes that it might make the lives of conformance testers easier.

## E. References

### E.1 Informative references

[DOAP]
  Ed Dumbill. Description of a Project. Community Specification. URL: https://github.com/edumbill/doap/wiki
[EARL10-SCHEMA]
  Shadi Abou-Zahra. Evaluation and Report Language (EARL) 1.0 Schema. 10 May 2011. W3C Last Call Working Draft. URL: http://www.w3.org/TR/EARL10-Schema/
[FOAF]
  Dan Brickley; Libby Miller. FOAF Vocabulary Specification 0.99 (Paddington Edition). 14 January 2014. URL: http://xmlns.com/foaf/spec
[N-TRIPLES]
  Gavin Carothers, Andy Seabourne. RDF 1.1 N-Triples. W3C Recommendation, 25 February 2014. URL: http://www.w3.org/TR/2014/REC-n-triples-20140225/. The latest edition is available at http://www.w3.org/TR/n-triples/