Abstract

This document report test subject conformance for and related specifications for Turtle [TURTLE] 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.

Table of Contents

1. Instructions for submitting implementation reports

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

The assumed base URI for the tests is <http://example/base/> if needed.

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-turtle>;
    earl:test <http://www.w3.org/2013/TurtleTests/manifest.ttl#turtle-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-turtle>
    dc:issued "2013-06-18T17:30:22-07:00"^^xsd:dateTime ;
    foaf:maker <http://greggkellogg.net/foaf#me> .

  <http://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
    doap:name          "RDF::Turtle" ;
    doap:homepage      <http://ruby-rdf.github.com/rdf-turtle> ;
    doap:license       <http://creativecommons.org/licenses/publicdomain/> ;
    doap:description   "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
    doap:created       "2011-08-29"^^xsd:date ;
    doap:programming-language "Ruby" ;
    doap:implements    <http://www.w3.org/TR/turtle/> ;
    doap:category      <http://dbpedia.org/resource/Resource_Description_Framework>,
                       <http://dbpedia.org/resource/Ruby_(programming_language)> ;
    doap:developer     <http://greggkellogg.net/foaf#me> ;
    dc:title           "RDF::Turtle" ;
    dc:description     "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
    dc:date            "2011-08-29"^^xsd:date ;
    .

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 Turtle tests

Test Serd EYE Apache Jena RIOT RDF::Trine Raptor Wesin RDF::Turtle SWObjects dotNetRDF Green Turtle Chelona rdflib N3.js Turtle Parser
IRI_subject PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
IRI_with_four_digit_numeric_escape PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
IRI_with_eight_digit_numeric_escape PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
IRI_with_all_punctuation PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
bareword_a_predicate PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
old_style_prefix PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
SPARQL_style_prefix UNTESTED PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
prefixed_IRI_predicate PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
prefixed_IRI_object PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
prefix_only_IRI PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
prefix_with_PN_CHARS_BASE_character_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
prefix_with_non_leading_extras PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
default_namespace_IRI PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
prefix_reassigned_and_used PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
reserved_escaped_localName PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
percent_escaped_localName PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
HYPHEN_MINUS_in_localName PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
underscore_in_localName PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
localname_with_COLON PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
localName_with_nfc_PN_CHARS_BASE_character_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
localName_with_leading_underscore PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
localName_with_leading_digit PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
localName_with_non_leading_extras PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
old_style_base PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
SPARQL_style_base UNTESTED PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
labeled_blank_node_subject PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
labeled_blank_node_object PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
labeled_blank_node_with_PN_CHARS_BASE_character_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
labeled_blank_node_with_leading_underscore PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
labeled_blank_node_with_leading_digit PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
labeled_blank_node_with_non_leading_extras PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
anonymous_blank_node_subject PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
anonymous_blank_node_object PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
sole_blankNodePropertyList PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
blankNodePropertyList_as_subject PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
blankNodePropertyList_as_object PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
blankNodePropertyList_with_multiple_triples PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
nested_blankNodePropertyLists PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
blankNodePropertyList_containing_collection PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
collection_subject PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
collection_object PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
empty_collection PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
nested_collection PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
first PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
last PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL1 PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL1_ascii_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL1_with_UTF8_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL1_all_controls PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL1_all_punctuation PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL_LONG1 PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL_LONG1_ascii_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL_LONG1_with_UTF8_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL_LONG1_with_1_squote PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL_LONG1_with_2_squotes PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL2 PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL2_ascii_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL2_with_UTF8_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL_LONG2 PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL_LONG2_ascii_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL_LONG2_with_UTF8_boundaries PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL_LONG2_with_1_squote PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
LITERAL_LONG2_with_2_squotes PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_CHARACTER_TABULATION PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_BACKSPACE PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_LINE_FEED PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_CARRIAGE_RETURN PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_FORM_FEED PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_REVERSE_SOLIDUS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_escaped_CHARACTER_TABULATION PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_escaped_BACKSPACE PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_escaped_LINE_FEED PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_escaped_CARRIAGE_RETURN PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_escaped_FORM_FEED PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_numeric_escape4 PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_with_numeric_escape8 PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
IRIREF_datatype PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
prefixed_name_datatype PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
bareword_integer PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
bareword_decimal PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
bareword_double PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
double_lower_case_e PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
negative_numeric PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
positive_numeric PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
numeric_with_leading_0 PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_true PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
literal_false PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
langtagged_non_LONG PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
langtagged_LONG PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
lantag_with_subtag PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
objectList_with_two_objects PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
predicateObjectList_with_two_objectLists PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
repeated_semis_at_end PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
repeated_semis_not_at_end PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
comment_following_localName PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS UNTESTED PASS PASS
number_sign_following_localName PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS UNTESTED PASS PASS
comment_following_PNAME_NS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS UNTESTED PASS PASS
number_sign_following_PNAME_NS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS UNTESTED PASS PASS
LITERAL_LONG2_with_REVERSE_SOLIDUS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
turtle-syntax-bad-num-05 PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
two_LITERAL_LONG2s PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
langtagged_LONG_with_subtag PASS