TriG Implementation Report

## Abstract

This document report test subject conformance for and related specifications for TriG [TRIG] 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 TriG. The new tests are available at http://w3c.github.io/rdf-tests/trig/ 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.

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-trig>
        dc:issued "2013-06-18T17:30:22-07:00"^^xsd:dateTime ;
        foaf:maker <http://greggkellogg.net/foaf#me> .

      <http://rubygems.org/gems/rdf-trig> a doap:Project, earl:TestSubject, earl:Software ;
        doap:name          "RDF::TriG" ;
        doap:homepage      <http://ruby-rdf.github.com/rdf-trig> ;
        doap:license       <http://creativecommons.org/licenses/publicdomain/> ;
        doap:description   "RDF::TriG is an TriG 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/trig/> ;
        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::TriG" ;
        dc:description     "RDF::TriG is an TriG 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 TriG tests

Test | Apache Jena | RDF::TriG | Chelona | rdflib | N3.js
--- | --- | --- | --- | --- | ---
anonymous_blank_node_graph | PASS | PASS | PASS | PASS | PASS
labeled_blank_node_graph | PASS | PASS | PASS | PASS | PASS
alternating_iri_graphs | PASS | PASS | PASS | PASS | PASS
alternating_bnode_graphs | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-base-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-base-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-prefix-06 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-prefix-07 | PASS | PASS | PASS | PASS | PASS
trig-syntax-struct-06 | PASS | PASS | PASS | PASS | PASS
trig-syntax-struct-07 | PASS | PASS | PASS | PASS | PASS
trig-syntax-minimal-whitespace-01 | PASS | PASS | PASS | PASS | PASS
IRI_subject | PASS | PASS | PASS | PASS | PASS
IRI_with_four_digit_numeric_escape | PASS | PASS | PASS | PASS | PASS
IRI_with_eight_digit_numeric_escape | PASS | PASS | PASS | PASS | PASS
IRI_with_all_punctuation | PASS | PASS | PASS | PASS | PASS
bareword_a_predicate | PASS | PASS | PASS | PASS | PASS
old_style_prefix | PASS | PASS | PASS | PASS | PASS
SPARQL_style_prefix | PASS | PASS | PASS | PASS | PASS
prefixed_IRI_predicate | PASS | PASS | PASS | PASS | PASS
prefixed_IRI_object | PASS | PASS | PASS | PASS | PASS
prefix_only_IRI | PASS | PASS | PASS | PASS | PASS
prefix_with_PN_CHARS_BASE_character_boundaries | PASS | PASS | PASS | PASS | PASS
prefix_with_non_leading_extras | PASS | PASS | PASS | PASS | PASS
default_namespace_IRI | PASS | PASS | PASS | PASS | PASS
prefix_reassigned_and_used | PASS | PASS | PASS | PASS | PASS
reserved_escaped_localName | PASS | PASS | PASS | PASS | PASS
percent_escaped_localName | PASS | PASS | PASS | PASS | PASS
HYPHEN_MINUS_in_localName | PASS | PASS | PASS | PASS | PASS
underscore_in_localName | PASS | PASS | PASS | PASS | PASS
localname_with_COLON | PASS | PASS | PASS | PASS | PASS
localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries | PASS | PASS | PASS | PASS | PASS
localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries | PASS | PASS | PASS | PASS | PASS
localName_with_nfc_PN_CHARS_BASE_character_boundaries | PASS | PASS | PASS | PASS | PASS
localName_with_leading_underscore | PASS | PASS | PASS | PASS | PASS
localName_with_leading_digit | PASS | PASS | PASS | PASS | PASS
localName_with_non_leading_extras | PASS | PASS | PASS | PASS | PASS
old_style_base | PASS | PASS | PASS | PASS | PASS
SPARQL_style_base | PASS | PASS | PASS | PASS | PASS
labeled_blank_node_subject | PASS | PASS | PASS | PASS | PASS
labeled_blank_node_object | PASS | PASS | PASS | PASS | PASS
labeled_blank_node_with_PN_CHARS_BASE_character_boundaries | PASS | PASS | PASS | PASS | PASS
labeled_blank_node_with_leading_underscore | PASS | PASS | PASS | PASS | PASS
labeled_blank_node_with_leading_digit | PASS | PASS | PASS | PASS | PASS
labeled_blank_node_with_non_leading_extras | PASS | PASS | PASS | PASS | PASS
anonymous_blank_node_subject | PASS | PASS | PASS | PASS | PASS
anonymous_blank_node_object | PASS | PASS | PASS | PASS | PASS
sole_blankNodePropertyList | PASS | PASS | PASS | PASS | PASS
blankNodePropertyList_as_subject | PASS | PASS | PASS | PASS | PASS
blankNodePropertyList_as_object | PASS | PASS | PASS | PASS | PASS
blankNodePropertyList_with_multiple_triples | PASS | PASS | PASS | PASS | PASS
nested_blankNodePropertyLists | PASS | PASS | PASS | PASS | PASS
blankNodePropertyList_containing_collection | PASS | PASS | PASS | PASS | PASS
collection_subject | PASS | PASS | PASS | PASS | PASS
collection_object | PASS | PASS | PASS | PASS | PASS
empty_collection | PASS | PASS | PASS | PASS | PASS
nested_collection | PASS | PASS | PASS | PASS | PASS
first | PASS | PASS | PASS | PASS | PASS
last | PASS | PASS | PASS | PASS | PASS
LITERAL1 | PASS | PASS | PASS | PASS | PASS
LITERAL1_ascii_boundaries | PASS | PASS | PASS | PASS | PASS
LITERAL1_with_UTF8_boundaries | PASS | PASS | PASS | PASS | PASS
LITERAL1_all_controls | PASS | PASS | PASS | PASS | PASS
LITERAL1_all_punctuation | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG1 | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG1_ascii_boundaries | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG1_with_UTF8_boundaries | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG1_with_1_squote | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG1_with_2_squotes | PASS | PASS | PASS | PASS | PASS
LITERAL2 | PASS | PASS | PASS | PASS | PASS
LITERAL2_ascii_boundaries | PASS | PASS | PASS | PASS | PASS
LITERAL2_with_UTF8_boundaries | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG2 | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG2_ascii_boundaries | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG2_with_UTF8_boundaries | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG2_with_1_squote | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG2_with_2_squotes | PASS | PASS | PASS | PASS | PASS
literal_with_CHARACTER_TABULATION | PASS | PASS | PASS | PASS | PASS
literal_with_BACKSPACE | PASS | PASS | PASS | PASS | PASS
literal_with_LINE_FEED | PASS | PASS | PASS | PASS | PASS
literal_with_CARRIAGE_RETURN | PASS | PASS | PASS | PASS | PASS
literal_with_FORM_FEED | PASS | PASS | PASS | PASS | PASS
literal_with_REVERSE_SOLIDUS | PASS | PASS | PASS | PASS | PASS
literal_with_escaped_CHARACTER_TABULATION | PASS | PASS | PASS | PASS | PASS
literal_with_escaped_BACKSPACE | PASS | PASS | PASS | PASS | PASS
literal_with_escaped_LINE_FEED | PASS | PASS | PASS | PASS | PASS
literal_with_escaped_CARRIAGE_RETURN | PASS | PASS | PASS | PASS | PASS
literal_with_escaped_FORM_FEED | PASS | PASS | PASS | PASS | PASS
literal_with_numeric_escape4 | PASS | PASS | PASS | PASS | PASS
literal_with_numeric_escape8 | PASS | PASS | PASS | PASS | PASS
IRIREF_datatype | PASS | PASS | PASS | PASS | PASS
prefixed_name_datatype | PASS | PASS | PASS | PASS | PASS
bareword_integer | PASS | PASS | PASS | PASS | PASS
bareword_decimal | PASS | PASS | PASS | PASS | PASS
bareword_double | PASS | PASS | PASS | PASS | PASS
double_lower_case_e | PASS | PASS | PASS | PASS | PASS
negative_numeric | PASS | PASS | PASS | PASS | PASS
positive_numeric | PASS | PASS | PASS | PASS | PASS
numeric_with_leading_0 | PASS | PASS | PASS | PASS | PASS
literal_true | PASS | PASS | PASS | PASS | PASS
literal_false | PASS | PASS | PASS | PASS | PASS
langtagged_non_LONG | PASS | PASS | PASS | PASS | PASS
langtagged_LONG | PASS | PASS | PASS | PASS | PASS
lantag_with_subtag | PASS | PASS | PASS | PASS | PASS
objectList_with_two_objects | PASS | PASS | PASS | PASS | PASS
predicateObjectList_with_two_objectLists | PASS | PASS | PASS | PASS | PASS
repeated_semis_at_end | PASS | PASS | PASS | PASS | PASS
repeated_semis_not_at_end | PASS | PASS | PASS | PASS | PASS
comment_following_localName | PASS | PASS | PASS | PASS | PASS
number_sign_following_localName | PASS | PASS | PASS | PASS | PASS
comment_following_PNAME_NS | PASS | PASS | PASS | PASS | PASS
number_sign_following_PNAME_NS | PASS | PASS | PASS | PASS | PASS
LITERAL_LONG2_with_REVERSE_SOLIDUS | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-num-05 | PASS | PASS | PASS | PASS | PASS
two_LITERAL_LONG2s | PASS | PASS | PASS | PASS | PASS
langtagged_LONG_with_subtag | PASS | PASS | PASS | PASS | PASS
trig-syntax-file-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-file-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-file-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-uri-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-uri-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-uri-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-uri-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-base-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-base-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-base-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-base-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-prefix-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-prefix-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-prefix-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-prefix-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-prefix-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-prefix-06 | PASS | PASS | PASS | PASS | PASS
trig-syntax-prefix-07 | PASS | PASS | PASS | PASS | PASS
trig-syntax-prefix-08 | PASS | PASS | PASS | PASS | PASS
trig-syntax-prefix-09 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-06 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-07 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-08 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-09 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-10 | PASS | PASS | PASS | PASS | PASS
trig-syntax-string-11 | PASS | PASS | PASS | PASS | PASS
trig-syntax-str-esc-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-str-esc-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-str-esc-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-pname-esc-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-pname-esc-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-pname-esc-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bnode-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bnode-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bnode-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bnode-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bnode-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bnode-06 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bnode-07 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bnode-08 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bnode-09 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bnode-10 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-06 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-07 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-08 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-09 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-10 | PASS | PASS | PASS | PASS | PASS
trig-syntax-number-11 | PASS | PASS | PASS | PASS | PASS
trig-syntax-datatypes-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-datatypes-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-kw-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-kw-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-kw-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-struct-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-struct-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-struct-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-struct-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-struct-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-lists-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-lists-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-lists-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-lists-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-lists-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-uri-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-uri-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-uri-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-uri-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-uri-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-prefix-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-prefix-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-prefix-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-prefix-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-prefix-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-base-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-base-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-base-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-06 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-07 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-kw-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-kw-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-kw-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-kw-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-kw-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-06 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-07 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-08 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-09 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-10 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-11 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-12 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-n3-extras-13 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-09 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-10 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-12 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-13 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-14 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-15 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-16 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-struct-17 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-lang-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-esc-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-esc-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-esc-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-esc-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-pname-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-pname-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-pname-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-string-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-string-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-string-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-string-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-string-05 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-string-06 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-string-07 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-num-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-num-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-num-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-num-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-num-05 | PASS | PASS | PASS | PASS | PASS
trig-eval-struct-01 | PASS | PASS | PASS | PASS | PASS
trig-eval-struct-02 | PASS | PASS | PASS | PASS | PASS
trig-subm-01 | PASS | PASS | PASS | PASS | PASS
trig-subm-02 | PASS | PASS | PASS | PASS | PASS
trig-subm-03 | PASS | PASS | PASS | PASS | PASS
trig-subm-04 | PASS | PASS | PASS | PASS | PASS
trig-subm-05 | PASS | PASS | PASS | PASS | PASS
trig-subm-06 | PASS | PASS | PASS | PASS | PASS
trig-subm-07 | PASS | PASS | PASS | PASS | PASS
trig-subm-08 | PASS | PASS | PASS | PASS | PASS
trig-subm-09 | PASS | PASS | PASS | PASS | PASS
trig-subm-10 | PASS | PASS | PASS | PASS | PASS
trig-subm-11 | PASS | PASS | PASS | PASS | PASS
trig-subm-12 | PASS | PASS | PASS | PASS | PASS
trig-subm-13 | PASS | PASS | PASS | PASS | PASS
trig-subm-14 | PASS | PASS | PASS | PASS | PASS
trig-subm-15 | PASS | PASS | PASS | PASS | PASS
trig-subm-16 | PASS | PASS | PASS | PASS | PASS
trig-subm-17 | PASS | PASS | PASS | PASS | PASS
trig-subm-18 | PASS | PASS | PASS | PASS | PASS
trig-subm-19 | PASS | PASS | PASS | PASS | PASS
trig-subm-20 | PASS | PASS | PASS | PASS | PASS
trig-subm-21 | PASS | PASS | PASS | PASS | PASS
trig-subm-22 | PASS | PASS | PASS | PASS | PASS
trig-subm-23 | PASS | PASS | PASS | PASS | PASS
trig-subm-24 | PASS | PASS | PASS | PASS | PASS
trig-subm-25 | PASS | PASS | PASS | PASS | PASS
trig-subm-26 | PASS | PASS | PASS | PASS | PASS
trig-subm-27 | PASS | PASS | PASS | PASS | PASS
trig-eval-bad-01 | PASS | PASS | PASS | PASS | PASS
trig-eval-bad-02 | PASS | PASS | PASS | PASS | PASS
trig-eval-bad-03 | PASS | PASS | PASS | PASS | PASS
trig-eval-bad-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-blank-label-dot-end | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-ln-dash-start | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-ln-escape-start | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-ln-escape | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-missing-ns-dot-end | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-missing-ns-dot-start | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-ns-dot-end | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-ns-dot-start | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-number-dot-in-anon | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-list-01 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-list-02 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-list-03 | PASS | PASS | PASS | PASS | PASS
trig-syntax-bad-list-04 | PASS | PASS | PASS | PASS | PASS
trig-syntax-blank-label | PASS | PASS | PASS | PASS | PASS
trig-syntax-ln-colons | PASS | PASS | PASS | PASS | PASS
trig-syntax-ln-dots | PASS | PASS | PASS | PASS | PASS
trig-syntax-ns-dots | PASS | PASS | PASS | PASS | PASS
trig-kw-graph-01 | PASS | PASS | PASS | PASS | PASS
trig-kw-graph-02 | PASS | PASS | PASS | PASS | PASS
trig-kw-graph-03 | PASS | PASS | PASS | PASS | PASS
trig-kw-graph-04 | PASS | PASS | PASS | PASS | PASS
trig-kw-graph-05 | PASS | PASS | PASS | PASS | PASS
trig-kw-graph-06 | PASS | PASS | PASS | PASS | PASS
trig-kw-graph-07 | PASS | PASS | PASS | PASS | PASS
trig-kw-graph-08 | PASS | PASS | PASS | PASS | PASS
trig-kw-graph-09 | PASS | PASS | PASS | PASS | PASS
trig-kw-graph-10 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-01 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-02 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-03 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-04 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-05 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-06 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-07 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-08 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-09 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-10 | PASS | PASS | PASS | PASS | PASS
trig-graph-bad-11 | PASS | PASS | PASS | PASS | PASS
trig-bnodeplist-graph-bad-01 | PASS | PASS | PASS | PASS | PASS
trig-collection-graph-bad-01 | PASS | PASS | PASS | PASS | PASS
trig-collection-graph-bad-02 | PASS | PASS | PASS | PASS | PASS
trig-turtle-01 | PASS | PASS | PASS | PASS | PASS
trig-turtle-02 | PASS | PASS | PASS | PASS | PASS
trig-turtle-03 | PASS | PASS | PASS | PASS | PASS
trig-turtle-04 | PASS | PASS | PASS | PASS | PASS
trig-turtle-05 | PASS | PASS | PASS | PASS | PASS
trig-turtle-06 | PASS | PASS | PASS | PASS | PASS
trig-turtle-bad-01 | PASS | PASS | PASS | PASS | PASS
trig-turtle-bad-02 | PASS | PASS | PASS | PASS | PASS
Percentage passed out of 335 Tests | 100.0% | 100.0% | 100.0% | 100.0% | 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

    335/335 (100.0%)

RDF::TriG
  Description
    TriG reader/writer for RDF.rb
  Programming Language
    Ruby
  Home Page
    http://github.com/ruby-rdf/rdf-trig
  Developer
    Gregg Kellogg
  Home Page
    http://greggkellogg.net/
Test Suite Compliance

  335/335 (100.0%)

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

    335/335 (100.0%)

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

  335/335 (100.0%)

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

  335/335 (100.0%)

## B. Individual Test Results

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

- Apache-Jena-trig-earl-2013-11-23.ttl
- RIOT-jena-details.ttl
- chelona_trig_earl_2015-06-21.ttl
- n3js-earl-report-trig.ttl
- rdf.rb-earl-2013-11-24.ttl
- rdflib_trig-2013-12-30T15-56-57.ttl

## C. Test Definitions

Test anonymous_blank_node_graph

  anonymous blank node graph

  Example 1: anonymous_blank_node_graph Input

      [] {<http://a.example/s> <http://a.example/p> <http://a.example/o> .}

  Example 2: anonymous_blank_node_graph Result

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

Test labeled_blank_node_graph

  labeled blank node graph

  Example 3: labeled_blank_node_graph Input

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

  Example 4: labeled_blank_node_graph Result

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

Test alternating_iri_graphs

  alternating graphs with IRI names

  Example 5: alternating_iri_graphs Input

      @prefix : <http://example/> .
      {:a :b :c.}
      :G {:a :b :d.}
      {:a :b :e.}
      :G {:a :b :f.}

  Example 6: alternating_iri_graphs Result

      <http://example/a> <http://example/b> <http://example/c> .
      <http://example/a> <http://example/b> <http://example/d> <http://example/G> .
      <http://example/a> <http://example/b> <http://example/e> .
      <http://example/a> <http://example/b> <http://example/f> <http://example/G> .

Test alternating_bnode_graphs

  alternating graphs with BNode names

  Example 7: alternating_bnode_graphs Input

      @prefix : <http://example/> .
      {:a :b :c.}
      _:G {:a :b :d.}
      {:a :b :e.}
      _:G {:a :b :f.}

  Example 8: alternating_bnode_graphs Result

      <http://example/a> <http://example/b> <http://example/c> .
      <http://example/a> <http://example/b> <http://example/d> _:G .
      <http://example/a> <http://example/b> <http://example/e> .
      <http://example/a> <http://example/b> <http://example/f> _:G .

Test trig-syntax-bad-base-04

  @base inside graph (negative test)

  Example 9: trig-syntax-bad-base-04 Input

      # @base inside graph
      {
        @base <http://example/> .
      }

Test trig-syntax-bad-base-05

  BASE inside graph (negative test)

  Example 10: trig-syntax-bad-base-05 Input

      # BASE inside graph
      {
        BASE <http://example/>
      }

Test trig-syntax-bad-prefix-06

  @prefix inside graph (negative test)

  Example 11: trig-syntax-bad-prefix-06 Input

      # @prefix inside graph
      {
        @prefix ex: <http://example/> .
      }

Test trig-syntax-bad-prefix-07

  PREFIX inside graph (negative test)

  Example 12: trig-syntax-bad-prefix-07 Input

      # PREFIX inside graph
      {
        PREFIX ex: <http://example/>
      }

Test trig-syntax-struct-06

  missing '.'

  Example 13: trig-syntax-struct-06 Input

      # No DOT
      {<http://example/s> <http://example/p> <http://example/o>}

Test trig-syntax-struct-07

  trailing ';' no '.'

  Example 14: trig-syntax-struct-07 Input

      # Trailing ;
      {<http://example/s> <http://example/p> <http://example/o> ;}

Test trig-syntax-minimal-whitespace-01

  tests absense of whitespace in various positions

  Example 15: trig-syntax-minimal-whitespace-01 Input

      BASE<http://example/base>
      @base<http://example/base>.
      PREFIX :<http://example/a/>
      PREFIX b:<http://example/b/>
      @prefix:<http://example/c/>.
      @prefix
      d:<http://example/d/>.

      {<http://example/s><http://example/p><http://example/o>.<http://example/s><http://example/p>"Alice".<http://example/s><http://example/p>_:o.}
      {:s :p :o .:s :p"Alice".:s :p _:o.}
      {b:s b:p b:o .b:s b:p"Alice".b:s b:p _:o.}
      {_:s:p :o ._:s:p"Alice". _:s:p _:o .}
      {[:p :o].[:p"Alice"].[:p _:o].}
      {[:p(:o)].[:p(_:o)].[:p("Alice")].[:p(<http://example/o>)].}
      {:s :p :o,:o2 .:s :p"Alice","Ted".:s :p _:o,_:o2.}
      {:s :p :o;:p2 :o2 .:s :p"Alice";:p2 "Ted".:s :p _:o;:p2 _:o2.}
      <http://example/g>{:s :p :o .:s :p"Alice".:s :p _:o.}
      :s{:s :p :o .:s :p"Alice".:s :p _:o.}
      _:s{:s :p :o .:s :p"Alice".:s :p _:o.}
      :{: : :}{: : :}:{: : :}
      :{():()}{():[]}:{[]:[]}

Test IRI_subject

  IRI subject

  Example 16: IRI_subject Input

      {<http://a.example/s> <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> <http://a.example/o> .}

  Example 17: IRI_subject Result

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

Test IRI_with_four_digit_numeric_escape

  IRI with four digit numeric escape (\u)

  Example 18: IRI_with_four_digit_numeric_escape Input

      {<http://a.example/\u0073> <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {<http://a.example/\u0073> <http://a.example/p> <http://a.example/o> .}

  Example 19: IRI_with_four_digit_numeric_escape Result

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

Test IRI_with_eight_digit_numeric_escape

  IRI with eight digit numeric escape (\U)

  Example 20: IRI_with_eight_digit_numeric_escape Input

      {<http://a.example/\U00000073> <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {<http://a.example/\U00000073> <http://a.example/p> <http://a.example/o> .}

  Example 21: IRI_with_eight_digit_numeric_escape Result

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

Test IRI_with_all_punctuation

  IRI with all punctuation

  Example 22: IRI_with_all_punctuation Input

      {<scheme:!$%25&amp;'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {<scheme:!$%25&amp;'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> <http://a.example/p> <http://a.example/o> .}

  Example 23: IRI_with_all_punctuation Result

      <scheme:!$%25&amp;'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> <http://a.example/p> <http://a.example/o> .
      <scheme:!$%25&amp;'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test bareword_a_predicate

  bareword a predicate

  Example 24: bareword_a_predicate Input

      {<http://a.example/s> a <http://a.example/o> .}
      <http://example/graph> {<http://a.example/s> a <http://a.example/o> .}

  Example 25: bareword_a_predicate Result

      <http://a.example/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://a.example/o> .
      <http://a.example/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://a.example/o> <http://example/graph> .

Test old_style_prefix

  old-style prefix

  Example 26: old_style_prefix Input

      @prefix p: <http://a.example/>.
      {p:s <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p:s <http://a.example/p> <http://a.example/o> .}

  Example 27: old_style_prefix Result

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

Test SPARQL_style_prefix

  SPARQL-style prefix

  Example 28: SPARQL_style_prefix Input

      PREFIX p: <http://a.example/>
      {p:s <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p:s <http://a.example/p> <http://a.example/o> .}

  Example 29: SPARQL_style_prefix Result

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

Test prefixed_IRI_predicate

  prefixed IRI predicate

  Example 30: prefixed_IRI_predicate Input

      @prefix p: <http://a.example/>.
      {<http://a.example/s> p:p <http://a.example/o> .}
      <http://example/graph> {<http://a.example/s> p:p <http://a.example/o> .}

  Example 31: prefixed_IRI_predicate Result

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

Test prefixed_IRI_object

  prefixed IRI object

  Example 32: prefixed_IRI_object Input

      @prefix p: <http://a.example/>.
      {<http://a.example/s> <http://a.example/p> p:o .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> p:o .}

  Example 33: prefixed_IRI_object Result

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

Test prefix_only_IRI

  prefix-only IRI (p:)

  Example 34: prefix_only_IRI Input

      @prefix p: <http://a.example/s>.
      {p: <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p: <http://a.example/p> <http://a.example/o> .}

  Example 35: prefix_only_IRI Result

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

Test prefix_with_PN_CHARS_BASE_character_boundaries

  prefix with PN CHARS BASE character boundaries (prefix: AZazÀÖØöø...:)

  Example 36: prefix_with_PN_CHARS_BASE_character_boundaries Input

      @prefix AZazÀÖØöø˿ͰͽͿ῿‌‍⁰↏Ⰰ⿯、퟿豈﷏ﷰ�𐀀󯿽: <http://a.example/> .
      {<http://a.example/s> <http://a.example/p> AZazÀÖØöø˿ͰͽͿ῿‌‍⁰↏Ⰰ⿯、퟿豈﷏ﷰ�𐀀󯿽:o}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> AZazÀÖØöø˿ͰͽͿ῿‌‍⁰↏Ⰰ⿯、퟿豈﷏ﷰ�𐀀󯿽:o}

  Example 37: prefix_with_PN_CHARS_BASE_character_boundaries Result

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

Test prefix_with_non_leading_extras

  prefix with_non_leading_extras (_:a·̀ͯ‿.⁀)

  Example 38: prefix_with_non_leading_extras Input

      @prefix a·̀ͯ‿.⁀: <http://a.example/>.
      {a·̀ͯ‿.⁀:s <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {a·̀ͯ‿.⁀:s <http://a.example/p> <http://a.example/o> .}

  Example 39: prefix_with_non_leading_extras Result

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

Test default_namespace_IRI

  default namespace IRI (:ln)

  Example 40: default_namespace_IRI Input

      @prefix : <http://a.example/>.
      {:s <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {:s <http://a.example/p> <http://a.example/o> .}

  Example 41: default_namespace_IRI Result

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

Test prefix_reassigned_and_used

  prefix reassigned and used

  Example 42: prefix_reassigned_and_used Input

      @prefix p: <http://a.example/>.
      @prefix p: <http://b.example/>.
      {p:s <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p:s <http://a.example/p> <http://a.example/o> .}

  Example 43: prefix_reassigned_and_used Result

      <http://b.example/s> <http://a.example/p> <http://a.example/o> .
      <http://b.example/s> <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test reserved_escaped_localName

  reserved-escaped local name

  Example 44: reserved_escaped_localName Input

      @prefix p: <http://a.example/>.
      {p:\_\~\.\-\!\$\&\'\(\)\*\+\,\;\=\/\?\#\@\%00 <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p:\_\~\.\-\!\$\&\'\(\)\*\+\,\;\=\/\?\#\@\%00 <http://a.example/p> <http://a.example/o> .}

  Example 45: reserved_escaped_localName Result

      <http://a.example/_~.-!$&'()*+,;=/?#@%00> <http://a.example/p> <http://a.example/o> .
      <http://a.example/_~.-!$&'()*+,;=/?#@%00> <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test percent_escaped_localName

  percent-escaped local name

  Example 46: percent_escaped_localName Input

      @prefix p: <http://a.example/>.
      {p:%25 <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p:%25 <http://a.example/p> <http://a.example/o> .}

  Example 47: percent_escaped_localName Result

      <http://a.example/%25> <http://a.example/p> <http://a.example/o> .
      <http://a.example/%25> <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test HYPHEN_MINUS_in_localName

  HYPHEN-MINUS in local name

  Example 48: HYPHEN_MINUS_in_localName Input

      @prefix p: <http://a.example/>.
      {p:s- <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p:s- <http://a.example/p> <http://a.example/o> .}

  Example 49: HYPHEN_MINUS_in_localName Result

      <http://a.example/s-> <http://a.example/p> <http://a.example/o> .
      <http://a.example/s-> <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test underscore_in_localName

  underscore in local name

  Example 50: underscore_in_localName Input

      @prefix p: <http://a.example/>.
      {p:s_ <http://a.example/p> <http://a.example/o> .}

  Example 51: underscore_in_localName Result

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

Test localname_with_COLON

  localname with COLON

  Example 52: localname_with_COLON Input

      @prefix p: <http://a.example/>.
      {p:s: <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p:s: <http://a.example/p> <http://a.example/o> .}

  Example 53: localname_with_COLON Result

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

Test localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries

  localName with assigned, NFC-normalized, basic-multilingual-plane PN CHARS BASE character boundaries (p:AZazÀÖØöø...)

  Example 54: localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries Input

      @prefix p: <http://a.example/> .
      {<http://a.example/s> <http://a.example/p> p:AZazÀÖØöø˿Ͱͽ΄῾‌‍⁰↉Ⰰ⿕、ퟻ﨎ﷇﷰ￯ .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> p:AZazÀÖØöø˿Ͱͽ΄῾‌‍⁰↉Ⰰ⿕、ퟻ﨎ﷇﷰ￯ .}

  Example 55: localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries Result

      <http://a.example/s> <http://a.example/p> <http://a.example/AZaz\u00C0\u00D6\u00D8\u00F6\u00F8\u02FF\u0370\u037D\u0384\u1FFE\u200C\u200D\u2070\u2189\u2C00\u2FD5\u3001\uD7FB\uFA0E\uFDC7\uFDF0\uFFEF> .
      <http://a.example/s> <http://a.example/p> <http://a.example/AZaz\u00C0\u00D6\u00D8\u00F6\u00F8\u02FF\u0370\u037D\u0384\u1FFE\u200C\u200D\u2070\u2189\u2C00\u2FD5\u3001\uD7FB\uFA0E\uFDC7\uFDF0\uFFEF> <http://example/graph> .

Test localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries

  localName with assigned, NFC-normalized PN CHARS BASE character boundaries (p:AZazÀÖØöø...)

  Example 56: localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries Input

      @prefix p: <http://a.example/> .
      {<http://a.example/s> <http://a.example/p> p:AZazÀÖØöø˿Ͱͽ΄῾‌‍⁰↉Ⰰ⿕、ퟻ﨎ﷇﷰ￯𐀀󠇯 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> p:AZazÀÖØöø˿Ͱͽ΄῾‌‍⁰↉Ⰰ⿕、ퟻ﨎ﷇﷰ￯𐀀󠇯 .}

  Example 57: localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries Result

      <http://a.example/s> <http://a.example/p> <http://a.example/AZaz\u00C0\u00D6\u00D8\u00F6\u00F8\u02FF\u0370\u037D\u0384\u1FFE\u200C\u200D\u2070\u2189\u2C00\u2FD5\u3001\uD7FB\uFA0E\uFDC7\uFDF0\uFFEF\U00010000\U000E01EF> .
      <http://a.example/s> <http://a.example/p> <http://a.example/AZaz\u00C0\u00D6\u00D8\u00F6\u00F8\u02FF\u0370\u037D\u0384\u1FFE\u200C\u200D\u2070\u2189\u2C00\u2FD5\u3001\uD7FB\uFA0E\uFDC7\uFDF0\uFFEF\U00010000\U000E01EF> <http://example/graph> .

Test localName_with_nfc_PN_CHARS_BASE_character_boundaries

  localName with nfc-normalize PN CHARS BASE character boundaries (p:AZazÀÖØöø...)

  Example 58: localName_with_nfc_PN_CHARS_BASE_character_boundaries Input

      @prefix p: <http://a.example/> .
      {<http://a.example/s> <http://a.example/p> p:AZazÀÖØöø˿ͰͽͿ῿‌‍⁰↏Ⰰ⿯、퟿﨎﷏ﷰ￯𐀀󯿽 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> p:AZazÀÖØöø˿ͰͽͿ῿‌‍⁰↏Ⰰ⿯、퟿﨎﷏ﷰ￯𐀀󯿽 .}

  Example 59: localName_with_nfc_PN_CHARS_BASE_character_boundaries Result

      <http://a.example/s> <http://a.example/p> <http://a.example/AZaz\u00C0\u00D6\u00D8\u00F6\u00F8\u02FF\u0370\u037D\u037F\u1FFF\u200C\u200D\u2070\u218F\u2C00\u2FEF\u3001\uD7FF\uFA0E\uFDCF\uFDF0\uFFEF\U00010000\U000EFFFD> .
      <http://a.example/s> <http://a.example/p> <http://a.example/AZaz\u00C0\u00D6\u00D8\u00F6\u00F8\u02FF\u0370\u037D\u037F\u1FFF\u200C\u200D\u2070\u218F\u2C00\u2FEF\u3001\uD7FF\uFA0E\uFDCF\uFDF0\uFFEF\U00010000\U000EFFFD> <http://example/graph> .

Test localName_with_leading_underscore

  localName with leading underscore (p:_)

  Example 60: localName_with_leading_underscore Input

      @prefix p: <http://a.example/>.
      {p:_ <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p:_ <http://a.example/p> <http://a.example/o> .}

  Example 61: localName_with_leading_underscore Result

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

Test localName_with_leading_digit

  localName with leading digit (p:_)

  Example 62: localName_with_leading_digit Input

      @prefix p: <http://a.example/>.
      {p:0 <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p:0 <http://a.example/p> <http://a.example/o> .}

  Example 63: localName_with_leading_digit Result

      <http://a.example/0> <http://a.example/p> <http://a.example/o> .
      <http://a.example/0> <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test localName_with_non_leading_extras

  localName with_non_leading_extras (_:a·̀ͯ‿.⁀)

  Example 64: localName_with_non_leading_extras Input

      @prefix p: <http://a.example/>.
      {p:a·̀ͯ‿.⁀ <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {p:a·̀ͯ‿.⁀ <http://a.example/p> <http://a.example/o> .}

  Example 65: localName_with_non_leading_extras Result

      <http://a.example/a·̀ͯ‿.⁀> <http://a.example/p> <http://a.example/o> .
      <http://a.example/a·̀ͯ‿.⁀> <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test old_style_base

  old-style base

  Example 66: old_style_base Input

      @base <http://a.example/>.
      {<s> <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {<s> <http://a.example/p> <http://a.example/o> .}

  Example 67: old_style_base Result

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

Test SPARQL_style_base

  SPARQL-style base

  Example 68: SPARQL_style_base Input

      BASE <http://a.example/>
      {<s> <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {<s> <http://a.example/p> <http://a.example/o> .}

  Example 69: SPARQL_style_base Result

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

Test labeled_blank_node_subject

  labeled blank node subject

  Example 70: labeled_blank_node_subject Input

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

  Example 71: labeled_blank_node_subject Result

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

Test labeled_blank_node_object

  labeled blank node object

  Example 72: labeled_blank_node_object Input

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

  Example 73: labeled_blank_node_object Result

      <http://a.example/s> <http://a.example/p> _:b1 .
      <http://a.example/s> <http://a.example/p> _:b1 <http://example/graph> .

Test labeled_blank_node_with_PN_CHARS_BASE_character_boundaries

  labeled blank node with PN_CHARS_BASE character boundaries (_:AZazÀÖØöø...)

  Example 74: labeled_blank_node_with_PN_CHARS_BASE_character_boundaries Input

      {<http://a.example/s> <http://a.example/p> _:AZazÀÖØöø˿ͰͽͿ῿‌‍⁰↏Ⰰ⿯、퟿豈﷏ﷰ�𐀀󯿽 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> _:AZazÀÖØöø˿ͰͽͿ῿‌‍⁰↏Ⰰ⿯、퟿豈﷏ﷰ�𐀀󯿽 .}

  Example 75: labeled_blank_node_with_PN_CHARS_BASE_character_boundaries Result

      <http://a.example/s> <http://a.example/p> _:b1 .
      <http://a.example/s> <http://a.example/p> _:b1 <http://example/graph> .

Test labeled_blank_node_with_leading_underscore

  labeled blank node with_leading_underscore (_:_)

  Example 76: labeled_blank_node_with_leading_underscore Input

      {<http://a.example/s> <http://a.example/p> _:_ .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> _:_ .}

  Example 77: labeled_blank_node_with_leading_underscore Result

      <http://a.example/s> <http://a.example/p> _:b1 .
      <http://a.example/s> <http://a.example/p> _:b1 <http://example/graph> .

Test labeled_blank_node_with_leading_digit

  labeled blank node with_leading_digit (_:0)

  Example 78: labeled_blank_node_with_leading_digit Input

      {<http://a.example/s> <http://a.example/p> _:0 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> _:0 .}

  Example 79: labeled_blank_node_with_leading_digit Result

      <http://a.example/s> <http://a.example/p> _:b1 .
      <http://a.example/s> <http://a.example/p> _:b1 <http://example/graph> .

Test labeled_blank_node_with_non_leading_extras

  labeled blank node with_non_leading_extras (_:a·̀ͯ‿.⁀)

  Example 80: labeled_blank_node_with_non_leading_extras Input

      {<http://a.example/s> <http://a.example/p> _:a·̀ͯ‿.⁀ .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> _:a·̀ͯ‿.⁀ .}

  Example 81: labeled_blank_node_with_non_leading_extras Result

      <http://a.example/s> <http://a.example/p> _:b1 .
      <http://a.example/s> <http://a.example/p> _:b1 <http://example/graph> .

Test anonymous_blank_node_subject

  anonymous blank node subject

  Example 82: anonymous_blank_node_subject Input

      {[] <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {[] <http://a.example/p> <http://a.example/o> .}

  Example 83: anonymous_blank_node_subject Result

      _:b1 <http://a.example/p> <http://a.example/o> .
      _:b2 <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test anonymous_blank_node_object

  anonymous blank node object

  Example 84: anonymous_blank_node_object Input

      {<http://a.example/s> <http://a.example/p> [] .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> [] .}

  Example 85: anonymous_blank_node_object Result

      <http://a.example/s> <http://a.example/p> _:b1 .
      <http://a.example/s> <http://a.example/p> _:b2 <http://example/graph> .

Test sole_blankNodePropertyList

  sole blankNodePropertyList [ <p> <o> ] .

  Example 86: sole_blankNodePropertyList Input

      {[ <http://a.example/p> <http://a.example/o> ] .}
      <http://example/graph> { [ <http://a.example/p> <http://a.example/o> ] .}
      <http://example/graph> { [ <http://a.example/p> <http://a.example/o> ] }

  Example 87: sole_blankNodePropertyList Result

      _:b1 <http://a.example/p> <http://a.example/o> .
      _:b2 <http://a.example/p> <http://a.example/o> <http://example/graph> .
      _:b3 <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test blankNodePropertyList_as_subject

  blankNodePropertyList as subject [ … ] <p> <o> .

  Example 88: blankNodePropertyList_as_subject Input

      {[ <http://a.example/p> <http://a.example/o> ] <http://a.example/p2> <http://a.example/o2> .}
      <http://example/graph> {[ <http://a.example/p> <http://a.example/o> ] <http://a.example/p2> <http://a.example/o2> .}

  Example 89: blankNodePropertyList_as_subject Result

      _:b1 <http://a.example/p> <http://a.example/o> .
      _:b1 <http://a.example/p2> <http://a.example/o2> .
      _:b2 <http://a.example/p> <http://a.example/o> <http://example/graph> .
      _:b2 <http://a.example/p2> <http://a.example/o2> <http://example/graph>  .

Test blankNodePropertyList_as_object

  blankNodePropertyList as object <s> <p> [ … ] .

  Example 90: blankNodePropertyList_as_object Input

      {<http://a.example/s> <http://a.example/p> [ <http://a.example/p2> <http://a.example/o2> ] .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> [ <http://a.example/p2> <http://a.example/o2> ] .}

  Example 91: blankNodePropertyList_as_object Result

      <http://a.example/s> <http://a.example/p> _:b1 .
      _:b1 <http://a.example/p2> <http://a.example/o2> .
      <http://a.example/s> <http://a.example/p> _:b2 <http://example/graph> .
      _:b2 <http://a.example/p2> <http://a.example/o2> <http://example/graph>  .

Test blankNodePropertyList_with_multiple_triples

  blankNodePropertyList with multiple triples [ <s> <p> ; <s2> <p2> ]

  Example 92: blankNodePropertyList_with_multiple_triples Input

      {[ <http://a.example/p1> <http://a.example/o1> ; <http://a.example/p2> <http://a.example/o2> ] <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {[ <http://a.example/p1> <http://a.example/o1> ; <http://a.example/p2> <http://a.example/o2> ] <http://a.example/p> <http://a.example/o> .}

  Example 93: blankNodePropertyList_with_multiple_triples Result

      _:b1 <http://a.example/p1> <http://a.example/o1> .
      _:b1 <http://a.example/p2> <http://a.example/o2> .
      _:b1 <http://a.example/p> <http://a.example/o> .
      _:b2 <http://a.example/p1> <http://a.example/o1> <http://example/graph> .
      _:b2 <http://a.example/p2> <http://a.example/o2> <http://example/graph> .
      _:b2 <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test nested_blankNodePropertyLists

  nested blankNodePropertyLists [ <p1> [ <p2> <o2> ] ; <p3> <o3> ]

  Example 94: nested_blankNodePropertyLists Input

      {[ <http://a.example/p1> [ <http://a.example/p2> <http://a.example/o2> ] ; <http://a.example/p> <http://a.example/o> ].}
      <http://example/graph> {[ <http://a.example/p1> [ <http://a.example/p2> <http://a.example/o2> ] ; <http://a.example/p> <http://a.example/o> ].}

  Example 95: nested_blankNodePropertyLists Result

      _:b1 <http://a.example/p1> _:b2 .
      _:b2 <http://a.example/p2> <http://a.example/o2> .
      _:b1 <http://a.example/p> <http://a.example/o> .
      _:b3 <http://a.example/p1> _:b4 <http://example/graph> .
      _:b4 <http://a.example/p2> <http://a.example/o2> <http://example/graph> .
      _:b3 <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test blankNodePropertyList_containing_collection

  blankNodePropertyList containing collection [ <p1> ( … ) ]

  Example 96: blankNodePropertyList_containing_collection Input

      {[ <http://a.example/p1> (1) ] .}
      <http://example/graph> {[ <http://a.example/p1> (1) ] .}

  Example 97: blankNodePropertyList_containing_collection Result

      _:b1 <http://a.example/p1> _:el1 .
      _:el1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      _:el1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      _:b2 <http://a.example/p1> _:el2 <http://example/graph> .
      _:el2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      _:el2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .

Test collection_subject

  collection subject

  Example 98: collection_subject Input

      {(1) <http://a.example/p> <http://a.example/o> .}
      <http://example/graph> {(1) <http://a.example/p> <http://a.example/o> .}

  Example 99: collection_subject Result

      _:el1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      _:el1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      _:el1 <http://a.example/p> <http://a.example/o> .
      _:el2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      _:el2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .
      _:el2 <http://a.example/p> <http://a.example/o> <http://example/graph> .

Test collection_object

  collection object

  Example 100: collection_object Input

      {<http://a.example/s> <http://a.example/p> (1) .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> (1) .}

  Example 101: collection_object Result

      <http://a.example/s> <http://a.example/p> _:el1 .
      _:el1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      _:el1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      <http://a.example/s> <http://a.example/p> _:el2 <http://example/graph> .
      _:el2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      _:el2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .

Test empty_collection

  empty collection ()

  Example 102: empty_collection Input

      {<http://a.example/s> <http://a.example/p> () .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> () .}

  Example 103: empty_collection Result

      <http://a.example/s> <http://a.example/p> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      <http://a.example/s> <http://a.example/p> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .

Test nested_collection

  nested collection (())

  Example 104: nested_collection Input

      {<http://a.example/s> <http://a.example/p> ((1)) .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> ((1)) .}

  Example 105: nested_collection Result

      <http://a.example/s> <http://a.example/p> _:outerEl1 .
      _:outerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:innerEl1 .
      _:innerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      _:innerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      _:outerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      <http://a.example/s> <http://a.example/p> _:outerEl3 <http://example/graph> .
      _:outerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:innerEl3 <http://example/graph> .
      _:innerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      _:innerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .
      _:outerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .

Test first

  first, not last, non-empty nested collection

  Example 106: first Input

      {<http://a.example/s> <http://a.example/p> ((1) 2) .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> ((1) 2) .}

  Example 107: first Result

      <http://a.example/s> <http://a.example/p> _:outerEl1 .
      _:outerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:innerEl1 .
      _:innerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      _:innerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      _:outerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:outerEl2 .
      _:outerEl2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
      _:outerEl2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      <http://a.example/s> <http://a.example/p> _:outerEl3 <http://example/graph> .
      _:outerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:innerEl3 <http://example/graph> .
      _:innerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      _:innerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .
      _:outerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:outerEl4 <http://example/graph> .
      _:outerEl4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      _:outerEl4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .

Test last

  last, not first, non-empty nested collection

  Example 108: last Input

      {<http://a.example/s> <http://a.example/p> (1 (2)) .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> (1 (2)) .}

  Example 109: last Result

      <http://a.example/s> <http://a.example/p> _:outerEl1 .
      _:outerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      _:outerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:outerEl2 .
      _:outerEl2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:innerEl1 .
      _:innerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
      _:innerEl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      _:outerEl2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      <http://a.example/s> <http://a.example/p> _:outerEl3 <http://example/graph> .
      _:outerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      _:outerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:outerEl4 <http://example/graph> .
      _:outerEl4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:innerEl3 <http://example/graph> .
      _:innerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      _:innerEl3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .
      _:outerEl4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .

Test LITERAL1

  LITERAL1 'x'

  Example 110: LITERAL1 Input

      {<http://a.example/s> <http://a.example/p> 'x' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> 'x' .}

  Example 111: LITERAL1 Result

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

Test LITERAL1_ascii_boundaries

  LITERAL1_ascii_boundaries '\x00\x09\x0b\x0c\x0e\x26\x28...'

  Example 112: LITERAL1_ascii_boundaries Input

      {<http://a.example/s> <http://a.example/p> '	&([]' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '	&([]' .}

  Example 113: LITERAL1_ascii_boundaries Result

      <http://a.example/s> <http://a.example/p> "\u0000\u0009\u000B\u000C\u000E\u0026\u0028\u005B\u005D\u007F" .
      <http://a.example/s> <http://a.example/p> "\u0000\u0009\u000B\u000C\u000E\u0026\u0028\u005B\u005D\u007F" <http://example/graph> .

Test LITERAL1_with_UTF8_boundaries

  LITERAL1_with_UTF8_boundaries '\x80\x7ff\x800\xfff...'

  Example 114: LITERAL1_with_UTF8_boundaries Input

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

  Example 115: LITERAL1_with_UTF8_boundaries Result

      <http://a.example/s> <http://a.example/p> "\u0080\u07FF\u0800\u0FFF\u1000\uCFFF\uD000\uD7FF\uE000\uFFFD\U00010000\U0003FFFD\U00040000\U000FFFFD\U00100000\U0010FFFD" .

Test LITERAL1_all_controls

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

  Example 116: LITERAL1_all_controls Input

      {<http://a.example/s> <http://a.example/p> '	' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '	' .}

  Example 117: LITERAL1_all_controls Result

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

Test LITERAL1_all_punctuation

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

  Example 118: LITERAL1_all_punctuation Input

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

  Example 119: LITERAL1_all_punctuation Result

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

Test LITERAL_LONG1

  LITERAL_LONG1 '''x'''

  Example 120: LITERAL_LONG1 Input

      {<http://a.example/s> <http://a.example/p> '''x''' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '''x''' .}

  Example 121: LITERAL_LONG1 Result

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

Test LITERAL_LONG1_ascii_boundaries

  LITERAL_LONG1_ascii_boundaries '\x00\x26\x28...'

  Example 122: LITERAL_LONG1_ascii_boundaries Input

      {<http://a.example/s> <http://a.example/p> '&([]' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '&([]' .}

  Example 123: LITERAL_LONG1_ascii_boundaries Result

      <http://a.example/s> <http://a.example/p> "\u0000\u0026\u0028\u005B\u005D\u007F" .
      <http://a.example/s> <http://a.example/p> "\u0000\u0026\u0028\u005B\u005D\u007F" <http://example/graph> .

Test LITERAL_LONG1_with_UTF8_boundaries

  LITERAL_LONG1_with_UTF8_boundaries '\x80\x7ff\x800\xfff...'

  Example 124: LITERAL_LONG1_with_UTF8_boundaries Input

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

  Example 125: LITERAL_LONG1_with_UTF8_boundaries Result

      <http://a.example/s> <http://a.example/p> "\u0080\u07FF\u0800\u0FFF\u1000\uCFFF\uD000\uD7FF\uE000\uFFFD\U00010000\U0003FFFD\U00040000\U000FFFFD\U00100000\U0010FFFD" .

Test LITERAL_LONG1_with_1_squote

  LITERAL_LONG1 with 1 squote '''a'b'''

  Example 126: LITERAL_LONG1_with_1_squote Input

      {<http://a.example/s> <http://a.example/p> '''x'y''' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '''x'y''' .}

  Example 127: LITERAL_LONG1_with_1_squote Result

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

Test LITERAL_LONG1_with_2_squotes

  LITERAL_LONG1 with 2 squotes '''a''b'''

  Example 128: LITERAL_LONG1_with_2_squotes Input

      {<http://a.example/s> <http://a.example/p> '''x''y''' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '''x''y''' .}

  Example 129: LITERAL_LONG1_with_2_squotes Result

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

Test LITERAL2

  LITERAL2 "x"

  Example 130: LITERAL2 Input

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

  Example 131: LITERAL2 Result

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

Test LITERAL2_ascii_boundaries

  LITERAL2_ascii_boundaries '\x00\x09\x0b\x0c\x0e\x21\x23...'

  Example 132: LITERAL2_ascii_boundaries Input

      {<http://a.example/s> <http://a.example/p> "	!#[]" .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> "	!#[]" .}

  Example 133: LITERAL2_ascii_boundaries Result

      <http://a.example/s> <http://a.example/p> "\u0000\u0009\u000B\u000C\u000E\u0021\u0023\u005B\u005D\u007F" .
      <http://a.example/s> <http://a.example/p> "\u0000\u0009\u000B\u000C\u000E\u0021\u0023\u005B\u005D\u007F" <http://example/graph> .

Test LITERAL2_with_UTF8_boundaries

  LITERAL2_with_UTF8_boundaries '\x80\x7ff\x800\xfff...'

  Example 134: LITERAL2_with_UTF8_boundaries Input

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

  Example 135: LITERAL2_with_UTF8_boundaries Result

      <http://a.example/s> <http://a.example/p> "\u0080\u07FF\u0800\u0FFF\u1000\uCFFF\uD000\uD7FF\uE000\uFFFD\U00010000\U0003FFFD\U00040000\U000FFFFD\U00100000\U0010FFFD" .

Test LITERAL_LONG2

  LITERAL_LONG2 """x"""

  Example 136: LITERAL_LONG2 Input

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

  Example 137: LITERAL_LONG2 Result

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

Test LITERAL_LONG2_ascii_boundaries

  LITERAL_LONG2_ascii_boundaries '\x00\x21\x23...'

  Example 138: LITERAL_LONG2_ascii_boundaries Input

      {<http://a.example/s> <http://a.example/p> "!#[]" .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> "!#[]" .}

  Example 139: LITERAL_LONG2_ascii_boundaries Result

      <http://a.example/s> <http://a.example/p> "\u0000\u0021\u0023\u005B\u005D\u007F" .
      <http://a.example/s> <http://a.example/p> "\u0000\u0021\u0023\u005B\u005D\u007F" <http://example/graph> .

Test LITERAL_LONG2_with_UTF8_boundaries

  LITERAL_LONG2_with_UTF8_boundaries '\x80\x7ff\x800\xfff...'

  Example 140: LITERAL_LONG2_with_UTF8_boundaries Input

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

  Example 141: LITERAL_LONG2_with_UTF8_boundaries Result

      <http://a.example/s> <http://a.example/p> "\u0080\u07FF\u0800\u0FFF\u1000\uCFFF\uD000\uD7FF\uE000\uFFFD\U00010000\U0003FFFD\U00040000\U000FFFFD\U00100000\U0010FFFD" .

Test LITERAL_LONG2_with_1_squote

  LITERAL_LONG2 with 1 squote """a"b"""

  Example 142: LITERAL_LONG2_with_1_squote Input

      {<http://a.example/s> <http://a.example/p> """x"y""" .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> """x"y""" .}

  Example 143: LITERAL_LONG2_with_1_squote Result

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

Test LITERAL_LONG2_with_2_squotes

  LITERAL_LONG2 with 2 squotes """a""b"""

  Example 144: LITERAL_LONG2_with_2_squotes Input

      {<http://a.example/s> <http://a.example/p> """x""y""" .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> """x""y""" .}

  Example 145: LITERAL_LONG2_with_2_squotes Result

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

Test literal_with_CHARACTER_TABULATION

  literal with CHARACTER TABULATION

  Example 146: literal_with_CHARACTER_TABULATION Input

      {<http://a.example/s> <http://a.example/p> '	' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '	' .}

  Example 147: literal_with_CHARACTER_TABULATION Result

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

Test literal_with_BACKSPACE

  literal with BACKSPACE

  Example 148: literal_with_BACKSPACE Input

      {<http://a.example/s> <http://a.example/p> '' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '' .}

  Example 149: literal_with_BACKSPACE Result

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

Test literal_with_LINE_FEED

  literal with LINE FEED

  Example 150: literal_with_LINE_FEED Input

      {<http://a.example/s> <http://a.example/p> '''
      ''' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '''
      ''' .}

  Example 151: literal_with_LINE_FEED Result

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

Test literal_with_CARRIAGE_RETURN

  literal with CARRIAGE RETURN

  Example 152: literal_with_CARRIAGE_RETURN Input

      {<http://a.example/s> <http://a.example/p> '''
      ''' .}

      <http://example/graph> {<http://a.example/s> <http://a.example/p> '''
      ''' .}

  Example 153: literal_with_CARRIAGE_RETURN Result

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

Test literal_with_FORM_FEED

  literal with FORM FEED

  Example 154: literal_with_FORM_FEED Input

      {<http://a.example/s> <http://a.example/p> '' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '' .}

  Example 155: literal_with_FORM_FEED Result

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

Test literal_with_REVERSE_SOLIDUS

  literal with REVERSE SOLIDUS

  Example 156: literal_with_REVERSE_SOLIDUS Input

      {<http://a.example/s> <http://a.example/p> '\\' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '\\' .}

  Example 157: literal_with_REVERSE_SOLIDUS Result

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

Test literal_with_escaped_CHARACTER_TABULATION

  literal with escaped CHARACTER TABULATION

  Example 158: literal_with_escaped_CHARACTER_TABULATION Input

      {<http://a.example/s> <http://a.example/p> '\t' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '\t' .}

  Example 159: literal_with_escaped_CHARACTER_TABULATION Result

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

Test literal_with_escaped_BACKSPACE

  literal with escaped BACKSPACE

  Example 160: literal_with_escaped_BACKSPACE Input

      {<http://a.example/s> <http://a.example/p> '\b' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '\b' .}

  Example 161: literal_with_escaped_BACKSPACE Result

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

Test literal_with_escaped_LINE_FEED

  literal with escaped LINE FEED

  Example 162: literal_with_escaped_LINE_FEED Input

      {<http://a.example/s> <http://a.example/p> '\n' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '\n' .}

  Example 163: literal_with_escaped_LINE_FEED Result

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

Test literal_with_escaped_CARRIAGE_RETURN

  literal with escaped CARRIAGE RETURN

  Example 164: literal_with_escaped_CARRIAGE_RETURN Input

      {<http://a.example/s> <http://a.example/p> '\r' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '\r' .}

  Example 165: literal_with_escaped_CARRIAGE_RETURN Result

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

Test literal_with_escaped_FORM_FEED

  literal with escaped FORM FEED

  Example 166: literal_with_escaped_FORM_FEED Input

      {<http://a.example/s> <http://a.example/p> '\f' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '\f' .}

  Example 167: literal_with_escaped_FORM_FEED Result

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

Test literal_with_numeric_escape4

  literal with numeric escape4 \u

  Example 168: literal_with_numeric_escape4 Input

      {<http://a.example/s> <http://a.example/p> '\u006F' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '\u006F' .}

  Example 169: literal_with_numeric_escape4 Result

      <http://a.example/s> <http://a.example/p> "o" .
      <http://a.example/s> <http://a.example/p> "o" <http://example/graph> .

Test literal_with_numeric_escape8

  literal with numeric escape8 \U

  Example 170: literal_with_numeric_escape8 Input

      {<http://a.example/s> <http://a.example/p> '\U0000006F' .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> '\U0000006F' .}

  Example 171: literal_with_numeric_escape8 Result

      <http://a.example/s> <http://a.example/p> "o" .
      <http://a.example/s> <http://a.example/p> "o" <http://example/graph> .

Test IRIREF_datatype

  IRIREF datatype ""^^<t>

  Example 172: IRIREF_datatype Input

      {<http://a.example/s> <http://a.example/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .}

  Example 173: IRIREF_datatype Result

      <http://a.example/s> <http://a.example/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://a.example/s> <http://a.example/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .

Test prefixed_name_datatype

  prefixed name datatype ""^^p:t

  Example 174: prefixed_name_datatype Input

      @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
      {<http://a.example/s> <http://a.example/p> "1"^^xsd:integer .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> "1"^^xsd:integer .}

  Example 175: prefixed_name_datatype Result

      <http://a.example/s> <http://a.example/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://a.example/s> <http://a.example/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .

Test bareword_integer

  bareword integer

  Example 176: bareword_integer Input

      {<http://a.example/s> <http://a.example/p> 1 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> 1 .}

  Example 177: bareword_integer Result

      <http://a.example/s> <http://a.example/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://a.example/s> <http://a.example/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .

Test bareword_decimal

  bareword decimal

  Example 178: bareword_decimal Input

      {<http://a.example/s> <http://a.example/p> 1.0 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> 1.0 .}

  Example 179: bareword_decimal Result

      <http://a.example/s> <http://a.example/p> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://a.example/s> <http://a.example/p> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> <http://example/graph> .

Test bareword_double

  bareword double

  Example 180: bareword_double Input

      {<http://a.example/s> <http://a.example/p> 1E0 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> 1E0 .}

  Example 181: bareword_double Result

      <http://a.example/s> <http://a.example/p> "1E0"^^<http://www.w3.org/2001/XMLSchema#double> .
      <http://a.example/s> <http://a.example/p> "1E0"^^<http://www.w3.org/2001/XMLSchema#double> <http://example/graph> .

Test double_lower_case_e

  double lower case e

  Example 182: double_lower_case_e Input

      {<http://a.example/s> <http://a.example/p> 1e0 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> 1e0 .}

  Example 183: double_lower_case_e Result

      <http://a.example/s> <http://a.example/p> "1e0"^^<http://www.w3.org/2001/XMLSchema#double> .
      <http://a.example/s> <http://a.example/p> "1e0"^^<http://www.w3.org/2001/XMLSchema#double> <http://example/graph> .

Test negative_numeric

  negative numeric

  Example 184: negative_numeric Input

      {<http://a.example/s> <http://a.example/p> -1 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> -1 .}

  Example 185: negative_numeric Result

      <http://a.example/s> <http://a.example/p> "-1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://a.example/s> <http://a.example/p> "-1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .

Test positive_numeric

  positive numeric

  Example 186: positive_numeric Input

      {<http://a.example/s> <http://a.example/p> +1 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> +1 .}

  Example 187: positive_numeric Result

      <http://a.example/s> <http://a.example/p> "+1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://a.example/s> <http://a.example/p> "+1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .

Test numeric_with_leading_0

  numeric with leading 0

  Example 188: numeric_with_leading_0 Input

      {<http://a.example/s> <http://a.example/p> 01 .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> 01 .}

  Example 189: numeric_with_leading_0 Result

      <http://a.example/s> <http://a.example/p> "01"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://a.example/s> <http://a.example/p> "01"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .

Test literal_true

  literal true

  Example 190: literal_true Input

      {<http://a.example/s> <http://a.example/p> true .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> true .}

  Example 191: literal_true Result

      <http://a.example/s> <http://a.example/p> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
      <http://a.example/s> <http://a.example/p> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> <http://example/graph> .

Test literal_false

  literal false

  Example 192: literal_false Input

      {<http://a.example/s> <http://a.example/p> false .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> false .}

  Example 193: literal_false Result

      <http://a.example/s> <http://a.example/p> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
      <http://a.example/s> <http://a.example/p> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> <http://example/graph> .

Test langtagged_non_LONG

  langtagged non-LONG "x"@en

  Example 194: langtagged_non_LONG Input

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

  Example 195: langtagged_non_LONG Result

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

Test langtagged_LONG

  langtagged LONG """x"""@en

  Example 196: langtagged_LONG Input

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

  Example 197: langtagged_LONG Result

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

Test lantag_with_subtag

  lantag with subtag "x"@en-us

  Example 198: lantag_with_subtag Input

      {<http://a.example/s> <http://a.example/p> "chat"@en-us .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> "chat"@en-us .}

  Example 199: lantag_with_subtag Result

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

Test objectList_with_two_objects

  objectList with two objects … <o1>,<o2>

  Example 200: objectList_with_two_objects Input

      {<http://a.example/s> <http://a.example/p> <http://a.example/o1>, <http://a.example/o2> .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p> <http://a.example/o1>, <http://a.example/o2> .}

  Example 201: objectList_with_two_objects Result

      <http://a.example/s> <http://a.example/p> <http://a.example/o1> .
      <http://a.example/s> <http://a.example/p> <http://a.example/o2> .
      <http://a.example/s> <http://a.example/p> <http://a.example/o1> <http://example/graph> .
      <http://a.example/s> <http://a.example/p> <http://a.example/o2> <http://example/graph> .

Test predicateObjectList_with_two_objectLists

  predicateObjectList with two objectLists … <o1>,<o2>

  Example 202: predicateObjectList_with_two_objectLists Input

      {<http://a.example/s> <http://a.example/p1> <http://a.example/o1>; <http://a.example/p2> <http://a.example/o2> .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p1> <http://a.example/o1>; <http://a.example/p2> <http://a.example/o2> .}

  Example 203: predicateObjectList_with_two_objectLists Result

      <http://a.example/s> <http://a.example/p1> <http://a.example/o1> .
      <http://a.example/s> <http://a.example/p2> <http://a.example/o2> .
      <http://a.example/s> <http://a.example/p1> <http://a.example/o1> <http://example/graph> .
      <http://a.example/s> <http://a.example/p2> <http://a.example/o2> <http://example/graph> .

Test repeated_semis_at_end

  repeated semis at end <s> <p> <o> ;; <p2> <o2> .

  Example 204: repeated_semis_at_end Input

      {<http://a.example/s> <http://a.example/p1> <http://a.example/o1>;; <http://a.example/p2> <http://a.example/o2> .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p1> <http://a.example/o1>;; <http://a.example/p2> <http://a.example/o2> .}

  Example 205: repeated_semis_at_end Result

      <http://a.example/s> <http://a.example/p1> <http://a.example/o1> .
      <http://a.example/s> <http://a.example/p2> <http://a.example/o2> .
      <http://a.example/s> <http://a.example/p1> <http://a.example/o1> <http://example/graph> .
      <http://a.example/s> <http://a.example/p2> <http://a.example/o2> <http://example/graph> .

Test repeated_semis_not_at_end

  repeated semis not at end <s> <p> <o> ;;.

  Example 206: repeated_semis_not_at_end Input

      {<http://a.example/s> <http://a.example/p1> <http://a.example/o1>;; .}
      <http://example/graph> {<http://a.example/s> <http://a.example/p1> <http://a.example/o1>;; .}

  Example 207: repeated_semis_not_at_end Result

      <http://a.example/s> <http://a.example/p1> <http://a.example/o1> .
      <http://a.example/s> <http://a.example/p1> <http://a.example/o1> <http://example/graph> .

Test comment_following_localName

  comment following localName

  Example 208: comment_following_localName Input

      @prefix p: <http://a.example/> .
      <http://a.example/s> <http://a.example/p> p:o#comment
      .

      <http://example/graph> {
        <http://a.example/s> <http://a.example/p> <http://a.example/o>#comment
        .
      }

  Example 209: comment_following_localName Result

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

Test number_sign_following_localName

  number sign following localName

  Example 210: number_sign_following_localName Input

      @prefix p: <http://a.example/> .
      <http://a.example/s> <http://a.example/p> p:o\#numbersign
      .

  Example 211: number_sign_following_localName Result

      <http://a.example/s> <http://a.example/p> <http://a.example/o#numbersign> .

Test comment_following_PNAME_NS

  comment following PNAME_NS

  Example 212: comment_following_PNAME_NS Input

      @prefix p: <http://a.example/> .
      <http://a.example/s> <http://a.example/p> p:#comment
      .

  Example 213: comment_following_PNAME_NS Result

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

Test number_sign_following_PNAME_NS

  number sign following PNAME_NS

  Example 214: number_sign_following_PNAME_NS Input

      @prefix p: <http://a.example/>.
      <http://a.example/s> <http://a.example/p> p:\#numbersign
      .

  Example 215: number_sign_following_PNAME_NS Result

      <http://a.example/s> <http://a.example/p> <http://a.example/#numbersign> .

Test LITERAL_LONG2_with_REVERSE_SOLIDUS

  REVERSE SOLIDUS at end of LITERAL_LONG2

  Example 216: LITERAL_LONG2_with_REVERSE_SOLIDUS Input

      @prefix : <http://example.org/ns#> .

      {:s :p1 """test-\\""" .}
      <http://example/graph> {:s :p1 """test-\\""" .}

  Example 217: LITERAL_LONG2_with_REVERSE_SOLIDUS Result

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

Test trig-syntax-bad-num-05

  Bad number format (negative test)

  Example 218: trig-syntax-bad-num-05 Input

      {<http://example.org/resource> <http://example.org#pred> "value"@en^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .}

Test two_LITERAL_LONG2s

  two LITERAL_LONG2s testing quote delimiter overrun

  Example 219: two_LITERAL_LONG2s Input

      # Test long literal twice to ensure it does not over-quote
      @prefix :  <http://example.org/ex#> .
      {
      :a :b """first long literal""" .
      :c :d """second long literal""" .
      }

  Example 220: two_LITERAL_LONG2s Result

      <http://example.org/ex#a> <http://example.org/ex#b> "first long literal" .
      <http://example.org/ex#c> <http://example.org/ex#d> "second long literal" .

Test langtagged_LONG_with_subtag

  langtagged LONG with subtag """Cheers"""@en-UK

  Example 221: langtagged_LONG_with_subtag Input

      # Test long literal with lang tag
      @prefix :  <http://example.org/ex#> .
      {:a :b """Cheers"""@en-UK .}
      <http://example/graph> {:a :b """Cheers"""@en-UK .}

  Example 222: langtagged_LONG_with_subtag Result

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

Test trig-syntax-file-01

  Empty file

  Example 223: trig-syntax-file-01 Input

Test trig-syntax-file-02

  Only comment

  Example 224: trig-syntax-file-02 Input

      #Empty file.

Test trig-syntax-file-03

  One comment, one empty line

  Example 225: trig-syntax-file-03 Input

      #One comment, one empty line.

Test trig-syntax-uri-01

  Only IRIs

  Example 226: trig-syntax-uri-01 Input

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

Test trig-syntax-uri-02

  IRIs with Unicode escape

  Example 227: trig-syntax-uri-02 Input

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

Test trig-syntax-uri-03

  IRIs with long Unicode escape

  Example 228: trig-syntax-uri-03 Input

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

Test trig-syntax-uri-04

  Legal IRIs

  Example 229: trig-syntax-uri-04 Input

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

Test trig-syntax-base-01

  @base

  Example 230: trig-syntax-base-01 Input

      @base <http://example/> .

Test trig-syntax-base-02

  BASE

  Example 231: trig-syntax-base-02 Input

      BASE <http://example/>

Test trig-syntax-base-03

  @base with relative IRIs

  Example 232: trig-syntax-base-03 Input

      @base <http://example/> .
      {<s> <p> <o> .}

Test trig-syntax-base-04

  base with relative IRIs

  Example 233: trig-syntax-base-04 Input

      base <http://example/>
      {<s> <p> <o> .}

Test trig-syntax-prefix-01

  @prefix

  Example 234: trig-syntax-prefix-01 Input

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

Test trig-syntax-prefix-02

  PreFIX

  Example 235: trig-syntax-prefix-02 Input

      PreFIX : <http://example/>

Test trig-syntax-prefix-03

  Empty PREFIX

  Example 236: trig-syntax-prefix-03 Input

      PREFIX : <http://example/>
      {:s :p :123 .}

Test trig-syntax-prefix-04

  Empty @prefix with % escape

  Example 237: trig-syntax-prefix-04 Input

      @prefix : <http://example/> .
      {:s :p :%20 .}

Test trig-syntax-prefix-05

  @prefix with no suffix

  Example 238: trig-syntax-prefix-05 Input

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

Test trig-syntax-prefix-06

  colon is a legal pname character

  Example 239: trig-syntax-prefix-06 Input

      # colon is a legal pname character
      @prefix : <http://example/> .
      @prefix x: <http://example/> .
      {:a:b:c  x:d:e:f :::: .}

Test trig-syntax-prefix-07

  dash is a legal pname character

  Example 240: trig-syntax-prefix-07 Input

      # dash is a legal pname character
      @prefix x: <http://example/> .
      {x:a-b-c  x:p x:o .}

Test trig-syntax-prefix-08

  underscore is a legal pname character

  Example 241: trig-syntax-prefix-08 Input

      # underscore is a legal pname character
      @prefix x: <http://example/> .
      {x:_  x:p_1 x:o .}

Test trig-syntax-prefix-09

  percents in pnames

  Example 242: trig-syntax-prefix-09 Input

      # percents
      @prefix : <http://example/> .
      @prefix x: <http://example/> .
      {:a%3E  x:%25 :a%3Eb .}

Test trig-syntax-string-01

  string literal

  Example 243: trig-syntax-string-01 Input

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

Test trig-syntax-string-02

  langString literal

  Example 244: trig-syntax-string-02 Input

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

Test trig-syntax-string-03

  langString literal with region

  Example 245: trig-syntax-string-03 Input

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

Test trig-syntax-string-04

  squote string literal

  Example 246: trig-syntax-string-04 Input

      {<http://example/s> <http://example/p> 'string' .}

Test trig-syntax-string-05

  squote langString literal

  Example 247: trig-syntax-string-05 Input

      {<http://example/s> <http://example/p> 'string'@en .}

Test trig-syntax-string-06

  squote langString literal with region

  Example 248: trig-syntax-string-06 Input

      {<http://example/s> <http://example/p> 'string'@en-uk .}

Test trig-syntax-string-07

  long string literal with embedded single- and double-quotes

  Example 249: trig-syntax-string-07 Input

      {<http://example/s> <http://example/p> """abc""def''ghi""" .}

Test trig-syntax-string-08

  long string literal with embedded newline

  Example 250: trig-syntax-string-08 Input

      {<http://example/s> <http://example/p> """abc
      def""" .}

Test trig-syntax-string-09

  squote long string literal with embedded single- and double-quotes

  Example 251: trig-syntax-string-09 Input

      {<http://example/s> <http://example/p> '''abc
      def''' .}

Test trig-syntax-string-10

  long langString literal with embedded newline

  Example 252: trig-syntax-string-10 Input

      {<http://example/s> <http://example/p> """abc
      def"""@en .}

Test trig-syntax-string-11

  squote long langString literal with embedded newline

  Example 253: trig-syntax-string-11 Input

      {<http://example/s> <http://example/p> '''abc
      def'''@en .}

Test trig-syntax-str-esc-01

  string literal with escaped newline

  Example 254: trig-syntax-str-esc-01 Input

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

Test trig-syntax-str-esc-02

  string literal with Unicode escape

  Example 255: trig-syntax-str-esc-02 Input

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

Test trig-syntax-str-esc-03

  string literal with long Unicode escape

  Example 256: trig-syntax-str-esc-03 Input

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

Test trig-syntax-pname-esc-01

  pname with back-slash escapes

  Example 257: trig-syntax-pname-esc-01 Input

      @prefix : <http://example/> .
      {:s :p :\~\.\-\!\$\&\'\(\)\*\+\,\;\=\/\?\#\@\_\%AA .}

Test trig-syntax-pname-esc-02

  pname with back-slash escapes (2)

  Example 258: trig-syntax-pname-esc-02 Input

      @prefix : <http://example/> .
      {:s :p :0123\~\.\-\!\$\&\'\(\)\*\+\,\;\=\/\?\#\@\_\%AA123 .}

Test trig-syntax-pname-esc-03

  pname with back-slash escapes (3)

  Example 259: trig-syntax-pname-esc-03 Input

      @prefix : <http://example/> .
      {:xyz\~ :abc\.:  : .}

Test trig-syntax-bnode-01

  bnode subject

  Example 260: trig-syntax-bnode-01 Input

      @prefix : <http://example/> .
      {[] :p :o .}

Test trig-syntax-bnode-02

  bnode object

  Example 261: trig-syntax-bnode-02 Input

      @prefix : <http://example/> .
      {:s :p [] .}

Test trig-syntax-bnode-03

  bnode property list object

  Example 262: trig-syntax-bnode-03 Input

      @prefix : <http://example/> .
      {:s :p [ :q :o ] .}

Test trig-syntax-bnode-04

  bnode property list object (2)

  Example 263: trig-syntax-bnode-04 Input

      @prefix : <http://example/> .
      {:s :p [ :q1 :o1 ; :q2 :o2 ] .}

Test trig-syntax-bnode-05

  bnode property list subject

  Example 264: trig-syntax-bnode-05 Input

      @prefix : <http://example/> .
      {[ :q1 :o1 ; :q2 :o2 ] :p :o .}

Test trig-syntax-bnode-06

  labeled bnode subject

  Example 265: trig-syntax-bnode-06 Input

      @prefix : <http://example/> .
      {_:a  :p :o .}

Test trig-syntax-bnode-07

  labeled bnode subject and object

  Example 266: trig-syntax-bnode-07 Input

      @prefix : <http://example/> .
      {:s  :p _:a .
      _:a  :p :o .
      }

Test trig-syntax-bnode-08

  bare bnode property list

  Example 267: trig-syntax-bnode-08 Input

      @prefix : <http://example/> .
      {[ :p  :o ] .}

Test trig-syntax-bnode-09

  bnode property list

  Example 268: trig-syntax-bnode-09 Input

      @prefix : <http://example/> .
      {[ :p  :o1,:2 ] .
      :s :p :o  .}

Test trig-syntax-bnode-10

  mixed bnode property list and triple

  Example 269: trig-syntax-bnode-10 Input

      @prefix : <http://example/> .
      {
      :s1 :p :o .
      [ :p1  :o1 ; :p2 :o2 ] .
      :s2 :p :o .
      }

Test trig-syntax-number-01

  integer literal

  Example 270: trig-syntax-number-01 Input

      {<s> <p> 123 .}

Test trig-syntax-number-02

  negative integer literal

  Example 271: trig-syntax-number-02 Input

      {<s> <p> -123 .}

Test trig-syntax-number-03

  positive integer literal

  Example 272: trig-syntax-number-03 Input

      {<s> <p> +123 .}

Test trig-syntax-number-04

  decimal literal

  Example 273: trig-syntax-number-04 Input

      # This is a decimal.
      {<s> <p> 123.0 . }

Test trig-syntax-number-05

  decimal literal (no leading digits)

  Example 274: trig-syntax-number-05 Input

      # This is a decimal.
      {<s> <p> .1 . }

Test trig-syntax-number-06

  negative decimal literal

  Example 275: trig-syntax-number-06 Input

      # This is a decimal.
      {<s> <p> -123.0 . }

Test trig-syntax-number-07

  positive decimal literal

  Example 276: trig-syntax-number-07 Input

      # This is a decimal.
      {<s> <p> +123.0 . }

Test trig-syntax-number-08

  integer literal with decimal lexical confusion

  Example 277: trig-syntax-number-08 Input

      # This is an integer
      {<s> <p> 123.}

Test trig-syntax-number-09

  double literal

  Example 278: trig-syntax-number-09 Input

      {<s> <p> 123.0e1 .}

Test trig-syntax-number-10

  negative double literal

  Example 279: trig-syntax-number-10 Input

      {<s> <p> -123e-1 .}

Test trig-syntax-number-11

  double literal no fraction

  Example 280: trig-syntax-number-11 Input

      {<s> <p> 123.E+1 .}

Test trig-syntax-datatypes-01

  xsd:byte literal

  Example 281: trig-syntax-datatypes-01 Input

      @prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
      {<s> <p> "123"^^xsd:byte .}

Test trig-syntax-datatypes-02

  integer as xsd:string

  Example 282: trig-syntax-datatypes-02 Input

      @prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
      @prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
      {<s> <p> "123"^^xsd:string .}

Test trig-syntax-kw-01

  boolean literal (true)

  Example 283: trig-syntax-kw-01 Input

      {<s> <p> true .}

Test trig-syntax-kw-02

  boolean literal (false)

  Example 284: trig-syntax-kw-02 Input

      {<s> <p> false .}

Test trig-syntax-kw-03

  'a' as keyword

  Example 285: trig-syntax-kw-03 Input

      @prefix : <http://example/> .
      {:s a :C .}

Test trig-syntax-struct-01

  object list

  Example 286: trig-syntax-struct-01 Input

      @prefix : <http://example/> .
      {:s :p :o1 , :o2 .}

Test trig-syntax-struct-02

  predicate list with object list

  Example 287: trig-syntax-struct-02 Input

      @prefix : <http://example/> .
      {:s :p1 :o1 ;
         :p2 :o2 .
      }

Test trig-syntax-struct-03

  predicate list with object list and dangling ';'

  Example 288: trig-syntax-struct-03 Input

      @prefix : <http://example/> .
      {:s :p1 :o1 ;
         :p2 :o2 ;
         .
      }

Test trig-syntax-struct-04

  predicate list with multiple ;;

  Example 289: trig-syntax-struct-04 Input

      @prefix : <http://example/> .
      {:s :p1 :o1 ;;
         :p2 :o2
         .
      }

Test trig-syntax-struct-05

  predicate list with multiple ;;

  Example 290: trig-syntax-struct-05 Input

      @prefix : <http://example/> .
      {:s :p1 :o1 ;
         :p2 :o2 ;;
         .
      }

Test trig-syntax-lists-01

  empty list

  Example 291: trig-syntax-lists-01 Input

      @prefix : <http://example/> .
      {:s :p () .}

Test trig-syntax-lists-02

  mixed list

  Example 292: trig-syntax-lists-02 Input

      @prefix : <http://example/> .
      {:s :p (1 "2" :o) .}

Test trig-syntax-lists-03

  isomorphic list as subject and object

  Example 293: trig-syntax-lists-03 Input

      @prefix : <http://example/> .
      {(1) :p (1) .}

Test trig-syntax-lists-04

  lists of lists

  Example 294: trig-syntax-lists-04 Input

      @prefix : <http://example/> .
      {(()) :p (()) .}

Test trig-syntax-lists-05

  mixed lists with embedded lists

  Example 295: trig-syntax-lists-05 Input

      @prefix : <http://example/> .
      {(1 2 (1 2)) :p (( "a") "b" :o) .}

Test trig-syntax-bad-uri-01

  Bad IRI : space (negative test)

  Example 296: trig-syntax-bad-uri-01 Input

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

Test trig-syntax-bad-uri-02

  Bad IRI : bad escape (negative test)

  Example 297: trig-syntax-bad-uri-02 Input

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

Test trig-syntax-bad-uri-03

  Bad IRI : bad long escape (negative test)

  Example 298: trig-syntax-bad-uri-03 Input

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

Test trig-syntax-bad-uri-04

  Bad IRI : character escapes not allowed (negative test)

  Example 299: trig-syntax-bad-uri-04 Input

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

Test trig-syntax-bad-uri-05

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

  Example 300: trig-syntax-bad-uri-05 Input

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

Test trig-syntax-bad-prefix-01

  No prefix (negative test)

  Example 301: trig-syntax-bad-prefix-01 Input

      # No prefix
      {:s <http://example/p> "x" .}

Test trig-syntax-bad-prefix-02

  No prefix (2) (negative test)

  Example 302: trig-syntax-bad-prefix-02 Input

      # No prefix
      @prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
      {<http://example/s> rdf:type :C .}

Test trig-syntax-bad-prefix-03

  @prefix without URI (negative test)

  Example 303: trig-syntax-bad-prefix-03 Input

      # @prefix without URI.
      @prefix ex: .

Test trig-syntax-bad-prefix-04

  @prefix without prefix name (negative test)

  Example 304: trig-syntax-bad-prefix-04 Input

      # @prefix without prefix name .
      @prefix <http://example/> .

Test trig-syntax-bad-prefix-05

  @prefix without ':' (negative test)

  Example 305: trig-syntax-bad-prefix-05 Input

      # @prefix without :
      @prefix x <http://example/> .

Test trig-syntax-bad-base-01

  @base without URI (negative test)

  Example 306: trig-syntax-bad-base-01 Input

      # @base without URI.
      @base .

Test trig-syntax-bad-base-02

  @base in wrong case (negative test)

  Example 307: trig-syntax-bad-base-02 Input

      # @base in wrong case.
      @BASE <http://example/> .

Test trig-syntax-bad-base-03

  BASE without URI (negative test)

  Example 308: trig-syntax-bad-base-03 Input

      # FULL STOP used after SPARQL BASE
      BASE <http://example/> .
      {<s> <p> <o> .}

Test trig-syntax-bad-struct-02

  Turtle is not N3 (negative test)

  Example 309: trig-syntax-bad-struct-02 Input

      # TriG is not N3
      <http://example/s> = <http://example/o> .

Test trig-syntax-bad-struct-03

  Turtle is not NQuads (negative test)

  Example 310: trig-syntax-bad-struct-03 Input

      # TriG is not NQuads
      <http://example/s> <http://example/p> <http://example/o> <http://example/graph> .

Test trig-syntax-bad-struct-04

  Turtle does not allow literals-as-subjects (negative test)

  Example 311: trig-syntax-bad-struct-04 Input

      # TriG does not allow literals-as-subjects
      {"hello" <http://example/p> <http://example/o> .}

Test trig-syntax-bad-struct-05

  Turtle does not allow literals-as-predicates (negative test)

  Example 312: trig-syntax-bad-struct-05 Input

      # TriG does not allow literals-as-predicates
      {<http://example/s> "hello" <http://example/o> .}

Test trig-syntax-bad-struct-06

  Turtle does not allow bnodes-as-predicates (negative test)

  Example 313: trig-syntax-bad-struct-06 Input

      # TriG does not allow bnodes-as-predicates
      {<http://example/s> [] <http://example/o> .}

Test trig-syntax-bad-struct-07

  Turtle does not allow labeled bnodes-as-predicates (negative test)

  Example 314: trig-syntax-bad-struct-07 Input

      # TriG does not allow bnodes-as-predicates
      {<http://example/s> _:p <http://example/o> .}

Test trig-syntax-bad-kw-01

  'A' is not a keyword (negative test)

  Example 315: trig-syntax-bad-kw-01 Input

      @prefix : <http://example/> .
      {:s A :C .}

Test trig-syntax-bad-kw-02

  'a' cannot be used as subject (negative test)

  Example 316: trig-syntax-bad-kw-02 Input

      @prefix : <http://example/> .
      {a :p :o .}

Test trig-syntax-bad-kw-03

  'a' cannot be used as object (negative test)

  Example 317: trig-syntax-bad-kw-03 Input

      @prefix : <http://example/> .
      {:s :p a .}

Test trig-syntax-bad-kw-04

  'true' cannot be used as subject (negative test)

  Example 318: trig-syntax-bad-kw-04 Input

      @prefix : <http://example/> .
      {true :p :o .}

Test trig-syntax-bad-kw-05

  'true' cannot be used as object (negative test)

  Example 319: trig-syntax-bad-kw-05 Input

      @prefix : <http://example/> .
      {:s true :o .}

Test trig-syntax-bad-n3-extras-01

  {} fomulae not in Turtle (negative test)

  Example 320: trig-syntax-bad-n3-extras-01 Input

      # {} formulae not in Turtle
      @prefix : <http://example/> .

      { :a :q :c . } :p :z .

Test trig-syntax-bad-n3-extras-02

  = is not Turtle (negative test)

  Example 321: trig-syntax-bad-n3-extras-02 Input

      # = is not Turtle
      @prefix : <http://example/> .

      {:a = :b .}

Test trig-syntax-bad-n3-extras-03

  N3 paths not in Turtle (negative test)

  Example 322: trig-syntax-bad-n3-extras-03 Input

      # N3 paths
      @prefix : <http://example/> .
      @prefix ns: <http://example/p#> .

      {
      :x.
        ns:p.
          ns:q :p :z .
      }

Test trig-syntax-bad-n3-extras-04

  N3 paths not in Turtle (negative test)

  Example 323: trig-syntax-bad-n3-extras-04 Input

      # N3 paths
      @prefix : <http://example/> .
      @prefix ns: <http://example/p#> .

      {:x^ns:p :p :z .}

Test trig-syntax-bad-n3-extras-05

  N3 is...of not in Turtle (negative test)

  Example 324: trig-syntax-bad-n3-extras-05 Input

      # N3 is...of
      @prefix : <http://example/> .

      {:z is :p of :x .}

Test trig-syntax-bad-n3-extras-06

  N3 paths not in Turtle (negative test)

  Example 325: trig-syntax-bad-n3-extras-06 Input

      # = is not Turtle
      @prefix : <http://example/> .

      {:a.:b.:c .}

Test trig-syntax-bad-n3-extras-07

  @keywords is not Turtle (negative test)

  Example 326: trig-syntax-bad-n3-extras-07 Input

      # @keywords is not Turtle
      @keywords a .
      {x a Item .}

Test trig-syntax-bad-n3-extras-08

  @keywords is not Turtle (negative test)

  Example 327: trig-syntax-bad-n3-extras-08 Input

      # @keywords is not Turtle
      @keywords a .
      {x a Item .}

Test trig-syntax-bad-n3-extras-09

  => is not Turtle (negative test)

  Example 328: trig-syntax-bad-n3-extras-09 Input

      # => is not Turtle
      @prefix : <http://example/> .
      {:s => :o .}

Test trig-syntax-bad-n3-extras-10

  <= is not Turtle (negative test)

  Example 329: trig-syntax-bad-n3-extras-10 Input

      # <= is not Turtle
      @prefix : <http://example/> .
      {:s <= :o .}

Test trig-syntax-bad-n3-extras-11

  @forSome is not Turtle (negative test)

  Example 330: trig-syntax-bad-n3-extras-11 Input

      # @forSome is not Turtle
      @prefix : <http://example/> .
      @forSome :x .

Test trig-syntax-bad-n3-extras-12

  @forAll is not Turtle (negative test)

  Example 331: trig-syntax-bad-n3-extras-12 Input

      # @forAll is not Turtle
      @prefix : <http://example/> .
      @forAll :x .

Test trig-syntax-bad-n3-extras-13

  @keywords is not Turtle (negative test)

  Example 332: trig-syntax-bad-n3-extras-13 Input

      # @keywords is not Turtle
      @keywords .
      {x @a Item .}

Test trig-syntax-bad-struct-09

  extra '.' (negative test)

  Example 333: trig-syntax-bad-struct-09 Input

      # Too many DOTs
      {<http://example/s> <http://example/p> <http://example/o> . .}

Test trig-syntax-bad-struct-10

  extra '.' (negative test)

  Example 334: trig-syntax-bad-struct-10 Input

      # Too many DOTs
      {
      <http://example/s> <http://example/p> <http://example/o> . .
      <http://example/s1> <http://example/p1> <http://example/o1> .
      }

Test trig-syntax-bad-struct-12

  subject, predicate, no object (negative test)

  Example 335: trig-syntax-bad-struct-12 Input

      {<http://example/s> }

Test trig-syntax-bad-struct-13

  subject, predicate, no object (negative test)

  Example 336: trig-syntax-bad-struct-13 Input

      {<http://example/s> <http://example/p> }

Test trig-syntax-bad-struct-14

  literal as subject (negative test)

  Example 337: trig-syntax-bad-struct-14 Input

      # Literal as subject
      {"abc" <http://example/p> <http://example/p>  .}

Test trig-syntax-bad-struct-15

  literal as predicate (negative test)

  Example 338: trig-syntax-bad-struct-15 Input

      # Literal as predicate
      {<http://example/s> "abc" <http://example/p>  .}

Test trig-syntax-bad-struct-16

  bnode as predicate (negative test)

  Example 339: trig-syntax-bad-struct-16 Input

      # BNode as predicate
      {<http://example/s> [] <http://example/p>  .}

Test trig-syntax-bad-struct-17

  labeled bnode as predicate (negative test)

  Example 340: trig-syntax-bad-struct-17 Input

      # BNode as predicate
      {<http://example/s> _:a <http://example/p>  .}

Test trig-syntax-bad-lang-01

  langString with bad lang (negative test)

  Example 341: trig-syntax-bad-lang-01 Input

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

Test trig-syntax-bad-esc-01

  Bad string escape (negative test)

  Example 342: trig-syntax-bad-esc-01 Input

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

Test trig-syntax-bad-esc-02

  Bad string escape (negative test)

  Example 343: trig-syntax-bad-esc-02 Input

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

Test trig-syntax-bad-esc-03

  Bad string escape (negative test)

  Example 344: trig-syntax-bad-esc-03 Input

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

Test trig-syntax-bad-esc-04

  Bad string escape (negative test)

  Example 345: trig-syntax-bad-esc-04 Input

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

Test trig-syntax-bad-pname-01

  '~' must be escaped in pname (negative test)

  Example 346: trig-syntax-bad-pname-01 Input

      # ~ must be escaped.
      @prefix : <http://example/> .
      {:a~b :p :o .}

Test trig-syntax-bad-pname-02

  Bad %-sequence in pname (negative test)

  Example 347: trig-syntax-bad-pname-02 Input

      # Bad %-sequence
      @prefix : <http://example/> .
      {:a%2 :p :o .}

Test trig-syntax-bad-pname-03

  Bad unicode escape in pname (negative test)

  Example 348: trig-syntax-bad-pname-03 Input

      # No \u (x39 is "9")
      @prefix : <http://example/> .
      {:a\u0039 :p :o .}

Test trig-syntax-bad-string-01

  mismatching string literal open/close (negative test)

  Example 349: trig-syntax-bad-string-01 Input

      @prefix : <http://example/> .
      {:s :p "abc' .}

Test trig-syntax-bad-string-02

  mismatching string literal open/close (negative test)

  Example 350: trig-syntax-bad-string-02 Input

      @prefix : <http://example/> .
      {:s :p 'abc" .}

Test trig-syntax-bad-string-03

  mismatching string literal long/short (negative test)

  Example 351: trig-syntax-bad-string-03 Input

      @prefix : <http://example/> .
      {:s :p '''abc' .}

Test trig-syntax-bad-string-04

  mismatching long string literal open/close (negative test)

  Example 352: trig-syntax-bad-string-04 Input

      @prefix : <http://example/> .
      {:s :p """abc''' .}

Test trig-syntax-bad-string-05

  Long literal with missing end (negative test)

  Example 353: trig-syntax-bad-string-05 Input

      # Long literal with missing end
      @prefix : <http://example/> .
      {
      :s :p """abc
      def
      }

Test trig-syntax-bad-string-06

  Long literal with extra quote (negative test)

  Example 354: trig-syntax-bad-string-06 Input

      # Long literal with 4"
      @prefix : <http://example/> .
      {:s :p """abc""""@en .}

Test trig-syntax-bad-string-07

  Long literal with extra squote (negative test)

  Example 355: trig-syntax-bad-string-07 Input

      # Long literal with 4'
      @prefix : <http://example/> .
      {:s :p '''abc''''@en .}

Test trig-syntax-bad-num-01

  Bad number format (negative test)

  Example 356: trig-syntax-bad-num-01 Input

      {<http://example/s> <http://example/p> 123.abc .}

Test trig-syntax-bad-num-02

  Bad number format (negative test)

  Example 357: trig-syntax-bad-num-02 Input

      {<http://example/s> <http://example/p> 123e .}

Test trig-syntax-bad-num-03

  Bad number format (negative test)

  Example 358: trig-syntax-bad-num-03 Input

      {<http://example/s> <http://example/p> 123abc .}

Test trig-syntax-bad-num-04

  Bad number format (negative test)

  Example 359: trig-syntax-bad-num-04 Input

      {<http://example/s> <http://example/p> 0x123 .}

Test trig-syntax-bad-num-05

  Bad number format (negative test)

  Example 360: trig-syntax-bad-num-05 Input

      {<http://example/s> <http://example/p> +-1 .}

Test trig-eval-struct-01

  triple with IRIs

  Example 361: trig-eval-struct-01 Input

      {<http://example/s> <http://example/p> <http://example/o> .}
      <http://example/graph> {<http://example/s> <http://example/p> <http://example/o> .}

  Example 362: trig-eval-struct-01 Result

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

Test trig-eval-struct-02

  triple with IRIs and embedded whitespace

  Example 363: trig-eval-struct-02 Input

      {
        <http://example/s>
            <http://example/p1> <http://example/o1> ;
            <http://example/p2> <http://example/o2> ;
            .
      }

      <http://example/graph> {
        <http://example/s>
            <http://example/p1> <http://example/o1> ;
            <http://example/p2> <http://example/o2> ;
            .
      }

  Example 364: trig-eval-struct-02 Result

      <http://example/s> <http://example/p1> <http://example/o1> .
      <http://example/s> <http://example/p2> <http://example/o2> .
      <http://example/s> <http://example/p1> <http://example/o1> <http://example/graph> .
      <http://example/s> <http://example/p2> <http://example/o2> <http://example/graph> .

Test trig-subm-01

  Blank subject

  Example 365: trig-subm-01 Input

      @prefix : <#> .
      {[] :x :y .}
      <http://example/graph> {[] :x :y .}

  Example 366: trig-subm-01 Result

      _:genid1 <http://www.w3.org/2013/TriGTests/trig-subm-01.trig#x> <http://www.w3.org/2013/TriGTests/trig-subm-01.trig#y> .
      _:genid2 <http://www.w3.org/2013/TriGTests/trig-subm-01.trig#x> <http://www.w3.org/2013/TriGTests/trig-subm-01.trig#y> <http://example/graph> .

Test trig-subm-02

  @prefix and qnames

  Example 367: trig-subm-02 Input

      # Test @prefix and qnames
      @prefix :  <http://example.org/base1#> .
      @prefix a: <http://example.org/base2#> .
      @prefix b: <http://example.org/base3#> .

      {
        :a :b :c .
        a:a a:b a:c .
        :a a:a b:a .
      }

      <http://example/graph> {
        :a :b :c .
        a:a a:b a:c .
        :a a:a b:a .
      }

  Example 368: trig-subm-02 Result

      <http://example.org/base1#a> <http://example.org/base1#b> <http://example.org/base1#c> .
      <http://example.org/base2#a> <http://example.org/base2#b> <http://example.org/base2#c> .
      <http://example.org/base1#a> <http://example.org/base2#a> <http://example.org/base3#a> .
      <http://example.org/base1#a> <http://example.org/base1#b> <http://example.org/base1#c> <http://example/graph> .
      <http://example.org/base2#a> <http://example.org/base2#b> <http://example.org/base2#c> <http://example/graph> .
      <http://example.org/base1#a> <http://example.org/base2#a> <http://example.org/base3#a> <http://example/graph> .

Test trig-subm-03

  , operator

  Example 369: trig-subm-03 Input

      # Test , operator
      @prefix : <http://example.org/base#> .

      {
      :a :b :c,
            :d,
            :e .
      }

      <http://example/graph> {
      :a :b :c,
            :d,
            :e .
      }

  Example 370: trig-subm-03 Result

      <http://example.org/base#a> <http://example.org/base#b> <http://example.org/base#c> .
      <http://example.org/base#a> <http://example.org/base#b> <http://example.org/base#d> .
      <http://example.org/base#a> <http://example.org/base#b> <http://example.org/base#e> .
      <http://example.org/base#a> <http://example.org/base#b> <http://example.org/base#c> <http://example/graph> .
      <http://example.org/base#a> <http://example.org/base#b> <http://example.org/base#d> <http://example/graph> .
      <http://example.org/base#a> <http://example.org/base#b> <http://example.org/base#e> <http://example/graph> .

Test trig-subm-04

  ; operator

  Example 371: trig-subm-04 Input

      # Test ; operator
      @prefix : <http://example.org/base#> .

      {
      :a :b :c ;
         :d :e ;
         :f :g .
      }

      <http://example/graph> {
      :a :b :c ;
         :d :e ;
         :f :g .
      }

  Example 372: trig-subm-04 Result

      <http://example.org/base#a> <http://example.org/base#b> <http://example.org/base#c> .
      <http://example.org/base#a> <http://example.org/base#d> <http://example.org/base#e> .
      <http://example.org/base#a> <http://example.org/base#f> <http://example.org/base#g> .
      <http://example.org/base#a> <http://example.org/base#b> <http://example.org/base#c> <http://example/graph> .
      <http://example.org/base#a> <http://example.org/base#d> <http://example.org/base#e> <http://example/graph> .
      <http://example.org/base#a> <http://example.org/base#f> <http://example.org/base#g> <http://example/graph> .

Test trig-subm-05

  empty [] as subject and object

  Example 373: trig-subm-05 Input

      # Test empty [] operator; not allowed as predicate
      @prefix : <http://example.org/base#> .

      {
      [] :a :b .
      :c :d [] .
      }

      <http://example/graph> {
      [] :a :b .
      :c :d [] .
      }

  Example 374: trig-subm-05 Result

      _:genid1 <http://example.org/base#a> <http://example.org/base#b> .
      <http://example.org/base#c> <http://example.org/base#d> _:genid2 .
      _:genid3 <http://example.org/base#a> <http://example.org/base#b> <http://example/graph> .
      <http://example.org/base#c> <http://example.org/base#d> _:genid4 <http://example/graph> .

Test trig-subm-06

  non-empty [] as subject and object

  Example 375: trig-subm-06 Input

      # Test non empty [] operator; not allowed as predicate
      @prefix : <http://example.org/base#> .

      {
      [ :a :b ] :c :d .
      :e :f [ :g :h ] .
      }

      <http://example/graph> {
      [ :a :b ] :c :d .
      :e :f [ :g :h ] .
      }

  Example 376: trig-subm-06 Result

      _:genid1 <http://example.org/base#a> <http://example.org/base#b> .
      _:genid1 <http://example.org/base#c> <http://example.org/base#d> .
      _:genid2 <http://example.org/base#g> <http://example.org/base#h> .
      <http://example.org/base#e> <http://example.org/base#f> _:genid2 .
      _:genid3 <http://example.org/base#a> <http://example.org/base#b> <http://example/graph> .
      _:genid3 <http://example.org/base#c> <http://example.org/base#d> <http://example/graph> .
      _:genid4 <http://example.org/base#g> <http://example.org/base#h> <http://example/graph> .
      <http://example.org/base#e> <http://example.org/base#f> _:genid4 <http://example/graph> .

Test trig-subm-07

  'a' as predicate

  Example 377: trig-subm-07 Input

      # 'a' only allowed as a predicate
      @prefix : <http://example.org/base#> .
      {:a a :b .}
      <http://example/graph> {:a a :b .}

  Example 378: trig-subm-07 Result

      <http://example.org/base#a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/base#b> .
      <http://example.org/base#a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/base#b> <http://example/graph> .

Test trig-subm-08

  simple collection

  Example 379: trig-subm-08 Input

      @prefix : <http://example.org/stuff/1.0/> .
      {:a :b ( "apple" "banana" ) .}
      <http://example/graph> {:a :b ( "apple" "banana" ) .}

  Example 380: trig-subm-08 Result

      _:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "banana" .
      _:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      _:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "apple" .
      _:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:genid1 .
      <http://example.org/stuff/1.0/a> <http://example.org/stuff/1.0/b> _:genid2 .

      _:genid3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "banana" <http://example/graph> .
      _:genid3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .
      _:genid4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "apple" <http://example/graph> .
      _:genid4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:genid3 <http://example/graph> .
      <http://example.org/stuff/1.0/a> <http://example.org/stuff/1.0/b> _:genid4 <http://example/graph> .

Test trig-subm-09

  empty collection

  Example 381: trig-subm-09 Input

      @prefix : <http://example.org/stuff/1.0/> .
      {:a :b ( ) .}
      <http://example/graph> {:a :b ( ) .}

  Example 382: trig-subm-09 Result

      <http://example.org/stuff/1.0/a> <http://example.org/stuff/1.0/b> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
      <http://example.org/stuff/1.0/a> <http://example.org/stuff/1.0/b> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example/graph> .

Test trig-subm-10

  integer datatyped literal

  Example 383: trig-subm-10 Input

      # Test integer datatyped literals using an OWL cardinality constraint
      @prefix owl: <http://www.w3.org/2002/07/owl#> .

      # based on examples in the OWL Reference

      {
      _:hasParent a owl:ObjectProperty .

      [] a owl:Restriction ;
        owl:onProperty _:hasParent ;
        owl:maxCardinality 2 .
      }

      <http://example/graph> {
      _:hasParent a owl:ObjectProperty .

      [] a owl:Restriction ;
        owl:onProperty _:hasParent ;
        owl:maxCardinality 2 .
      }

  Example 384: trig-subm-10 Result

      _:hasParent <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
      _:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
      _:genid1 <http://www.w3.org/2002/07/owl#onProperty> _:hasParent .
      _:genid1 <http://www.w3.org/2002/07/owl#maxCardinality> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
      _:hasParent <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> <http://example/graph> .
      _:genid3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> <http://example/graph> .
      _:genid3 <http://www.w3.org/2002/07/owl#onProperty> _:hasParent <http://example/graph> .
      _:genid3 <http://www.w3.org/2002/07/owl#maxCardinality> "2"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .

Test trig-subm-11

  decimal integer canonicalization

  Example 385: trig-subm-11 Input

      {
      <http://example.org/res1> <http://example.org/prop1> 000000 .
      <http://example.org/res2> <http://example.org/prop2> 0 .
      <http://example.org/res3> <http://example.org/prop3> 000001 .
      <http://example.org/res4> <http://example.org/prop4> 2 .
      <http://example.org/res5> <http://example.org/prop5> 4 .
      }

      <http://example/graph> {
      <http://example.org/res1> <http://example.org/prop1> 000000 .
      <http://example.org/res2> <http://example.org/prop2> 0 .
      <http://example.org/res3> <http://example.org/prop3> 000001 .
      <http://example.org/res4> <http://example.org/prop4> 2 .
      <http://example.org/res5> <http://example.org/prop5> 4 .
      }

  Example 386: trig-subm-11 Result

      <http://example.org/res1> <http://example.org/prop1> "000000"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://example.org/res2> <http://example.org/prop2> "0"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://example.org/res3> <http://example.org/prop3> "000001"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://example.org/res4> <http://example.org/prop4> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://example.org/res5> <http://example.org/prop5> "4"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://example.org/res1> <http://example.org/prop1> "000000"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      <http://example.org/res2> <http://example.org/prop2> "0"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      <http://example.org/res3> <http://example.org/prop3> "000001"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      <http://example.org/res4> <http://example.org/prop4> "2"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      <http://example.org/res5> <http://example.org/prop5> "4"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .

Test trig-subm-12

  - and _ in names and qnames

  Example 387: trig-subm-12 Input

      # Tests for - and _ in names, qnames
      @prefix ex1: <http://example.org/ex1#> .
      @prefix ex-2: <http://example.org/ex2#> .
      @prefix ex3_: <http://example.org/ex3#> .
      @prefix ex4-: <http://example.org/ex4#> .

      {
      ex1:foo-bar ex1:foo_bar "a" .
      ex-2:foo-bar ex-2:foo_bar "b" .
      ex3_:foo-bar ex3_:foo_bar "c" .
      ex4-:foo-bar ex4-:foo_bar "d" .
      }

      <http://example/graph> {
      ex1:foo-bar ex1:foo_bar "a" .
      ex-2:foo-bar ex-2:foo_bar "b" .
      ex3_:foo-bar ex3_:foo_bar "c" .
      ex4-:foo-bar ex4-:foo_bar "d" .
      }

  Example 388: trig-subm-12 Result

      <http://example.org/ex1#foo-bar> <http://example.org/ex1#foo_bar> "a" .
      <http://example.org/ex2#foo-bar> <http://example.org/ex2#foo_bar> "b" .
      <http://example.org/ex3#foo-bar> <http://example.org/ex3#foo_bar> "c" .
      <http://example.org/ex4#foo-bar> <http://example.org/ex4#foo_bar> "d" .
      <http://example.org/ex1#foo-bar> <http://example.org/ex1#foo_bar> "a" <http://example/graph> .
      <http://example.org/ex2#foo-bar> <http://example.org/ex2#foo_bar> "b" <http://example/graph> .
      <http://example.org/ex3#foo-bar> <http://example.org/ex3#foo_bar> "c" <http://example/graph> .
      <http://example.org/ex4#foo-bar> <http://example.org/ex4#foo_bar> "d" <http://example/graph> .

Test trig-subm-13

  tests for rdf:_<numbers> and other qnames starting with _

  Example 389: trig-subm-13 Input

      # Tests for rdf:_<numbers> and other qnames starting with _
      @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
      @prefix ex:  <http://example.org/ex#> .
      @prefix :    <http://example.org/myprop#> .

      {
      ex:foo rdf:_1 "1" .
      ex:foo rdf:_2 "2" .
      ex:foo :_abc "def" .
      ex:foo :_345 "678" .
      }

      <http://example/graph> {
      ex:foo rdf:_1 "1" .
      ex:foo rdf:_2 "2" .
      ex:foo :_abc "def" .
      ex:foo :_345 "678" .
      }

  Example 390: trig-subm-13 Result

      <http://example.org/ex#foo> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> "1" .
      <http://example.org/ex#foo> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> "2" .
      <http://example.org/ex#foo> <http://example.org/myprop#_abc> "def" .
      <http://example.org/ex#foo> <http://example.org/myprop#_345> "678" .
      <http://example.org/ex#foo> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> "1" <http://example/graph> .
      <http://example.org/ex#foo> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> "2" <http://example/graph> .
      <http://example.org/ex#foo> <http://example.org/myprop#_abc> "def" <http://example/graph> .
      <http://example.org/ex#foo> <http://example.org/myprop#_345> "678" <http://example/graph> .

Test trig-subm-14

  bare : allowed

  Example 391: trig-subm-14 Input

      # Test for : allowed
      @prefix :    <http://example.org/ron> .

      {
      [] : [] .

      : : : .

      }

      <http://example/graph> {
      [] : [] .

      : : : .

      }

  Example 392: trig-subm-14 Result

      _:genid1 <http://example.org/ron> _:genid2 .
      <http://example.org/ron> <http://example.org/ron> <http://example.org/ron> .
      _:genid3 <http://example.org/ron> _:genid4 <http://example/graph> .
      <http://example.org/ron> <http://example.org/ron> <http://example.org/ron> <http://example/graph> .

Test trig-subm-15

  simple long literal

  Example 393: trig-subm-15 Input

      # Test long literal
      @prefix :  <http://example.org/ex#> .

      {
      :a :b """a long
      	literal
      with
      newlines""" .
      }

      <http://example/graph> {
      :a :b """a long
      	literal
      with
      newlines""" .
      }

  Example 394: trig-subm-15 Result

      <http://example.org/ex#a> <http://example.org/ex#b> "a long\n\tliteral\nwith\nnewlines" .
      <http://example.org/ex#a> <http://example.org/ex#b> "a long\n\tliteral\nwith\nnewlines" <http://example/graph> .

Test trig-subm-16

  long literals with escapes

  Example 395: trig-subm-16 Input

      @prefix : <http://example.org/foo#> .

      {
      ## \U00015678 is a not a legal codepoint
      ## :a :b """\nthis \ris a \U00015678long\t
      ## literal\uABCD
      ## """ .
      ##
      ## :d :e """\tThis \uABCDis\r \U00015678another\n
      ## one
      ## """ .

      # \U00015678 is a not a legal codepoint
      # \U00012451 in Cuneiform numeric ban 3
      :a :b """\nthis \ris a \U00012451long\t
      literal\uABCD
      """ .

      :d :e """\tThis \uABCDis\r \U00012451another\n
      one
      """ .
      }

      <http://example/graph> {
      ## \U00015678 is a not a legal codepoint
      ## :a :b """\nthis \ris a \U00015678long\t
      ## literal\uABCD
      ## """ .
      ##
      ## :d :e """\tThis \uABCDis\r \U00015678another\n
      ## one
      ## """ .

      # \U00015678 is a not a legal codepoint
      # \U00012451 in Cuneiform numeric ban 3
      :a :b """\nthis \ris a \U00012451long\t
      literal\uABCD
      """ .

      :d :e """\tThis \uABCDis\r \U00012451another\n
      one
      """ .
      }

  Example 396: trig-subm-16 Result

      <http://example.org/foo#a> <http://example.org/foo#b> "\nthis \ris a \U00012451long\t\nliteral\uABCD\n" .
      <http://example.org/foo#d> <http://example.org/foo#e> "\tThis \uABCDis\r \U00012451another\n\none\n" .
      <http://example.org/foo#a> <http://example.org/foo#b> "\nthis \ris a \U00012451long\t\nliteral\uABCD\n" <http://example/graph> .
      <http://example.org/foo#d> <http://example.org/foo#e> "\tThis \uABCDis\r \U00012451another\n\none\n" <http://example/graph> .

Test trig-subm-17

  floating point number

  Example 397: trig-subm-17 Input

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

      {:a :b  1.0 .}
      <http://example/graph> {:a :b  1.0 .}

  Example 398: trig-subm-17 Result

      <http://example.org/#a> <http://example.org/#b> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/#a> <http://example.org/#b> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> <http://example/graph> .

Test trig-subm-18

  empty literals, normal and long variant

  Example 399: trig-subm-18 Input

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

      {
      :a :b "" .

      :c :d """""" .

      }

      <http://example/graph> {
      :a :b "" .

      :c :d """""" .

      }

  Example 400: trig-subm-18 Result

      <http://example.org/#a> <http://example.org/#b> "" .
      <http://example.org/#c> <http://example.org/#d> "" .
      <http://example.org/#a> <http://example.org/#b> "" <http://example/graph> .
      <http://example.org/#c> <http://example.org/#d> "" <http://example/graph> .

Test trig-subm-19

  positive integer, decimal and doubles

  Example 401: trig-subm-19 Input

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

      {
      :a :b 1.0 .
      :c :d 1 .
      :e :f 1.0e0 .
      }

      <http://example/graph> {
      :a :b 1.0 .
      :c :d 1 .
      :e :f 1.0e0 .
      }

  Example 402: trig-subm-19 Result

      <http://example.org#a> <http://example.org#b> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org#c> <http://example.org#d> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://example.org#e> <http://example.org#f> "1.0e0"^^<http://www.w3.org/2001/XMLSchema#double> .
      <http://example.org#a> <http://example.org#b> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> <http://example/graph> .
      <http://example.org#c> <http://example.org#d> "1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      <http://example.org#e> <http://example.org#f> "1.0e0"^^<http://www.w3.org/2001/XMLSchema#double> <http://example/graph> .

Test trig-subm-20

  negative integer, decimal and doubles

  Example 403: trig-subm-20 Input

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

      {
      :a :b -1.0 .
      :c :d -1 .
      :e :f -1.0e0 .
      }

      <http://example/graph> {
      :a :b -1.0 .
      :c :d -1 .
      :e :f -1.0e0 .
      }

  Example 404: trig-subm-20 Result

      <http://example.org#a> <http://example.org#b> "-1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org#c> <http://example.org#d> "-1"^^<http://www.w3.org/2001/XMLSchema#integer> .
      <http://example.org#e> <http://example.org#f> "-1.0e0"^^<http://www.w3.org/2001/XMLSchema#double> .
      <http://example.org#a> <http://example.org#b> "-1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> <http://example/graph> .
      <http://example.org#c> <http://example.org#d> "-1"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example/graph> .
      <http://example.org#e> <http://example.org#f> "-1.0e0"^^<http://www.w3.org/2001/XMLSchema#double> <http://example/graph> .

Test trig-subm-21

  long literal ending in double quote

  Example 405: trig-subm-21 Input

      # Test long literal
      @prefix :  <http://example.org/ex#> .
      {:a :b """John said: "Hello World!\"""" .}
      <http://example/graph> {:a :b """John said: "Hello World!\"""" .}

  Example 406: trig-subm-21 Result

      <http://example.org/ex#a> <http://example.org/ex#b> "John said: \"Hello World!\"" .
      <http://example.org/ex#a> <http://example.org/ex#b> "John said: \"Hello World!\"" <http://example/graph> .

Test trig-subm-22

  boolean literals

  Example 407: trig-subm-22 Input

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

      {
      :a :b true .
      :c :d false .
      }

      <http://example/graph> {
      :a :b true .
      :c :d false .
      }

  Example 408: trig-subm-22 Result

      <http://example.org#a> <http://example.org#b> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
      <http://example.org#c> <http://example.org#d> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
      <http://example.org#a> <http://example.org#b> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> <http://example/graph> .
      <http://example.org#c> <http://example.org#d> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> <http://example/graph> .

Test trig-subm-23

  comments

  Example 409: trig-subm-23 Input

      # comment test
      @prefix : <http://example.org/#> .

      {
      :a :b :c . # end of line comment
      :d # ignore me
        :e # and me
            :f # and me
              .
      :g :h #ignore me
           :i,  # and me
           :j . # and me

      :k :l :m ; #ignore me
         :n :o ; # and me
         :p :q . # and me
      }

      <http://example/graph> {
      :a :b :c . # end of line comment
      :d # ignore me
        :e # and me
            :f # and me
              .
      :g :h #ignore me
           :i,  # and me
           :j . # and me

      :k :l :m ; #ignore me
         :n :o ; # and me
         :p :q . # and me
      }

  Example 410: trig-subm-23 Result

      <http://example.org/#a> <http://example.org/#b> <http://example.org/#c> .
      <http://example.org/#d> <http://example.org/#e> <http://example.org/#f> .
      <http://example.org/#g> <http://example.org/#h> <http://example.org/#i> .
      <http://example.org/#g> <http://example.org/#h> <http://example.org/#j> .
      <http://example.org/#k> <http://example.org/#l> <http://example.org/#m> .
      <http://example.org/#k> <http://example.org/#n> <http://example.org/#o> .
      <http://example.org/#k> <http://example.org/#p> <http://example.org/#q> .
      <http://example.org/#a> <http://example.org/#b> <http://example.org/#c> <http://example/graph> .
      <http://example.org/#d> <http://example.org/#e> <http://example.org/#f> <http://example/graph> .
      <http://example.org/#g> <http://example.org/#h> <http://example.org/#i> <http://example/graph> .
      <http://example.org/#g> <http://example.org/#h> <http://example.org/#j> <http://example/graph> .
      <http://example.org/#k> <http://example.org/#l> <http://example.org/#m> <http://example/graph> .
      <http://example.org/#k> <http://example.org/#n> <http://example.org/#o> <http://example/graph> .
      <http://example.org/#k> <http://example.org/#p> <http://example.org/#q> <http://example/graph> .

Test trig-subm-24

  no final mewline

  Example 411: trig-subm-24 Input

      # comment line with no final newline test
      @prefix : <http://example.org/#> .
      {:a :b :c .}
      <http://example/graph> {:a :b :c .}
      #foo

  Example 412: trig-subm-24 Result

      <http://example.org/#a> <http://example.org/#b> <http://example.org/#c> .
      <http://example.org/#a> <http://example.org/#b> <http://example.org/#c> <http://example/graph> .

Test trig-subm-25

  repeating a @prefix changes pname definition

  Example 413: trig-subm-25 Input

      @prefix foo: <http://example.org/foo#>  .
      @prefix foo: <http://example.org/bar#>  .

      {foo:blah foo:blah foo:blah .}
      <http://example/graph> {foo:blah foo:blah foo:blah .}

  Example 414: trig-subm-25 Result

      <http://example.org/bar#blah> <http://example.org/bar#blah> <http://example.org/bar#blah> .
      <http://example.org/bar#blah> <http://example.org/bar#blah> <http://example.org/bar#blah> <http://example/graph> .

Test trig-subm-26

  Variations on decimal canonicalization

  Example 415: trig-subm-26 Input

      {
      <http://example.org/foo> <http://example.org/bar> "2.345"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "1"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "1."^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "1.000000000"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.3"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.234000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.2340000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.23400000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.234000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.2340000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.23400000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.234000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.2340000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.23400000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.234000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.2340000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.23400000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.234000000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.2340000000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.23400000000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "1.2345678901234567890123457890"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      }

  Example 416: trig-subm-26 Result

      <http://example.org/foo> <http://example.org/bar> "2.345"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "1"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "1."^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "1.000000000"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.3"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.234000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.2340000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.23400000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.234000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.2340000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.23400000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.234000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.2340000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.23400000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.234000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.2340000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.23400000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.234000000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.2340000000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "2.23400000000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
      <http://example.org/foo> <http://example.org/bar> "1.2345678901234567890123457890"^^<http://www.w3.org/2001/XMLSchema#decimal> .

Test trig-subm-27

  Repeating @base changes base for relative IRI lookup

  Example 417: trig-subm-27 Input

      # In-scope base URI is <http://www.w3.org/2013/TriGTests/trig-subm-27.trig> at this point
      {<a1> <b1> <c1> .}
      @base <http://example.org/ns/> .
      # In-scope base URI is http://example.org/ns/ at this point
      {<a2> <http://example.org/ns/b2> <c2> .}
      @base <foo/> .
      # In-scope base URI is http://example.org/ns/foo/ at this point
      {<a3> <b3> <c3> .}
      @prefix : <bar#> .
      {:a4 :b4 :c4 .}
      @prefix : <http://example.org/ns2#> .
      {:a5 :b5 :c5 .}

  Example 418: trig-subm-27 Result

      <http://www.w3.org/2013/TriGTests/a1> <http://www.w3.org/2013/TriGTests/b1> <http://www.w3.org/2013/TriGTests/c1> .
      <http://example.org/ns/a2> <http://example.org/ns/b2> <http://example.org/ns/c2> .
      <http://example.org/ns/foo/a3> <http://example.org/ns/foo/b3> <http://example.org/ns/foo/c3> .
      <http://example.org/ns/foo/bar#a4> <http://example.org/ns/foo/bar#b4> <http://example.org/ns/foo/bar#c4> .
      <http://example.org/ns2#a5> <http://example.org/ns2#b5> <http://example.org/ns2#c5> .

Test trig-eval-bad-01

  Bad IRI : good escape, bad charcater (negative evaluation test)

  Example 419: trig-eval-bad-01 Input

      # Bad IRI : good escape, bad charcater
      {<http://example/\u0020> <http://example/p> <http://example/o> .}

Test trig-eval-bad-02

  Bad IRI : hex 3C is < (negative evaluation test)

  Example 420: trig-eval-bad-02 Input

      # Bad IRI : hex 3C is <
      {<http://example/\u003C> <http://example/p> <http://example/o> .}

Test trig-eval-bad-03

  Bad IRI : hex 3E is (negative evaluation test)

  Example 421: trig-eval-bad-03 Input

      # Bad IRI : hex 3E is >
      {<http://example/\u003E> <http://example/p> <http://example/o> .}

Test trig-eval-bad-04

  Bad IRI : {abc} (negative evaluation test)

  Example 422: trig-eval-bad-04 Input

      # Bad IRI
      {<http://example/{abc}> <http://example/p> <http://example/o> .}

Test trig-syntax-bad-blank-label-dot-end

  Blank node label must not end in dot

  Example 423: trig-syntax-bad-blank-label-dot-end Input

      @prefix : <http://example/> .
      {_:b1. :p :o .}

Test trig-syntax-bad-ln-dash-start

  Local name must not begin with dash

  Example 424: trig-syntax-bad-ln-dash-start Input

      @prefix : <http://example/> .
      {:s :p :-o .}

Test trig-syntax-bad-ln-escape-start

  Bad hex escape at start of local name

  Example 425: trig-syntax-bad-ln-escape-start Input

      @prefix : <http://example/> .
      {:s :p :%2o .}

Test trig-syntax-bad-ln-escape

  Bad hex escape in local name

  Example 426: trig-syntax-bad-ln-escape Input

      @prefix : <http://example/> .
      {:s :p :o%2 .}

Test trig-syntax-bad-missing-ns-dot-end

  Prefix must not end in dot (error in triple, not prefix directive like trig-syntax-bad-ns-dot-end)

  Example 427: trig-syntax-bad-missing-ns-dot-end Input

      {valid:s valid:p invalid.:o .}

Test trig-syntax-bad-missing-ns-dot-start

  Prefix must not start with dot (error in triple, not prefix directive like trig-syntax-bad-ns-dot-end)

  Example 428: trig-syntax-bad-missing-ns-dot-start Input

      {.undefined:s .undefined:p .undefined:o .}

Test trig-syntax-bad-ns-dot-end

  Prefix must not end in dot

  Example 429: trig-syntax-bad-ns-dot-end Input

      @prefix eg. : <http://example/> .
      {eg.:s eg.:p eg.:o .}

Test trig-syntax-bad-ns-dot-start

  Prefix must not start with dot

  Example 430: trig-syntax-bad-ns-dot-start Input

      @prefix .eg : <http://example/> .
      {.eg:s .eg:p .eg:o .}

Test trig-syntax-bad-number-dot-in-anon

  Dot delimeter may not appear in anonymous nodes

  Example 431: trig-syntax-bad-number-dot-in-anon Input

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

      {
      :s
      	:p [
      		:p1 27.
      	] .
      }

Test trig-syntax-bad-list-01

  Free-standing list outside {} : bad syntax

  Example 432: trig-syntax-bad-list-01 Input

      # RDF collection without predicate-object-list
      ( 1 2 3 ) .

Test trig-syntax-bad-list-02

  Free-standing list of zero-elements outside {} : bad syntax

  Example 433: trig-syntax-bad-list-02 Input

      # RDF collection without predicate-object-list
      ( 1 2 3 ) .

Test trig-syntax-bad-list-03

  Free-standing list inside {} : bad syntax

  Example 434: trig-syntax-bad-list-03 Input

      # RDF collection without predicate-object-list
      { ( 1 2 3 ) }

Test trig-syntax-bad-list-04

  Free-standing list of zero elements : bad syntax

  Example 435: trig-syntax-bad-list-04 Input

      # RDF collection without predicate-object-list
      { ( ) }

Test trig-syntax-blank-label

  Characters allowed in blank node labels

  Example 436: trig-syntax-blank-label Input

      @prefix : <http://example/> .
      {
      _:0b :p :o . # Starts with digit
      _:_b :p :o . # Starts with underscore
      _:b.0 :p :o . # Contains dot, ends with digit
      }

Test trig-syntax-ln-colons

  Colons in pname local names

  Example 437: trig-syntax-ln-colons Input

      @prefix : <http://example/> .
      {
      :s:1 :p:1 :o:1 .
      :s::2 :p::2 :o::2 .
      :3:s :3:p :3 .
      ::s ::p ::o .
      ::s: ::p: ::o: .
      }

Test trig-syntax-ln-dots

  Dots in pname local names

  Example 438: trig-syntax-ln-dots Input

      @prefix : <http://example/> .
      {
      :s.1 :p.1 :o.1 .
      :s..2 :p..2 :o..2.
      :3.s :3.p :3.
      }

Test trig-syntax-ns-dots

  Dots in namespace names

  Example 439: trig-syntax-ns-dots Input

      @prefix e.g: <http://example/> .
      {e.g:s e.g:p e.g:o .}

Test trig-kw-graph-01

  Named graphs can be proceeded by GRAPH

  Example 440: trig-kw-graph-01 Input

      # GRAPH tests
      PREFIX : <http://example/>

      GRAPH :g { :s :p :o }

Test trig-kw-graph-02

  Trailing . not necessary inside {}

  Example 441: trig-kw-graph-02 Input

      # GRAPH tests
      PREFIX : <http://example/>

      GRAPH :g { :s :p :o . }

Test trig-kw-graph-03

  Named graph may be empty

  Example 442: trig-kw-graph-03 Input

      # GRAPH tests
      PREFIX : <http://example/>

      GRAPH :g { }

Test trig-kw-graph-04

  Example 443: trig-kw-graph-04 Input

      # GRAPH tests
      PREFIX : <http://example/>

      GRAPH :g1 { :s :p :o }
      GRAPH :g2 { :s :p :o }
      :g3 { :s :p :o }
      GRAPH :g4 { :s :p :o }
      GRAPH :g5 { :s :p :o }

Test trig-kw-graph-05

  Use of empty prefix inside named graph

  Example 444: trig-kw-graph-05 Input

      # GRAPH tests
      PREFIX : <http://example/>

      GRAPH :g { :s :p :o }

Test trig-kw-graph-06

  Example 445: trig-kw-graph-06 Input

      # GRAPH tests
      PREFIX : <http://example/>

      GRAPH _:a { :s :p :o }

Test trig-kw-graph-07

  Named graph may be named with BNode _:a

  Example 446: trig-kw-graph-07 Input

      # GRAPH tests
      PREFIX : <http://example/>

      GRAPH [] { :s :p :o }
      [] { :s :p :o }
      GRAPH [] { :s :p :o }

Test trig-kw-graph-08

  Named graph may be named with BNode []

  Example 447: trig-kw-graph-08 Input

      # GRAPH tests
      PREFIX : <http://example/>

      GRAPH :g { :s :p :o }

Test trig-kw-graph-09

  Named graph may be named with PNAME

  Example 448: trig-kw-graph-09 Input

      # GRAPH tests
      PREFIX : <http://example/>

      GRAPH :g { :s :p :o }

Test trig-kw-graph-10

  Named graph with PNAME and empty graph

  Example 449: trig-kw-graph-10 Input

      # GRAPH tests
      PREFIX : <http://example/>

      GRAPH :g { }

Test trig-graph-bad-01

  GRAPH but no name - GRAPH is not used with the default graph

  Example 450: trig-graph-bad-01 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH but no name - GRAPH is not used with the default graph
      GRAPH { :s :p :o }

Test trig-graph-bad-02

  GRAPH not followed by DOT

  Example 451: trig-graph-bad-02 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH not followed by DOT
      GRAPH :g1 { :s :p :o } .
      GRAPH :g2 { :s :p :o } .

Test trig-graph-bad-03

  GRAPH needs {}

  Example 452: trig-graph-bad-03 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH needs {}
      GRAPH :g
        :s :p :o .

Test trig-graph-bad-04

  GRAPH needs {}

  Example 453: trig-graph-bad-04 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH needs {}
      GRAPH :s :p :o

Test trig-graph-bad-05

  GRAPH and a name, not several

  Example 454: trig-graph-bad-05 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH and a name, not several.
      GRAPH :g1 :g2 { :s :p :o }

Test trig-graph-bad-06

  GRAPH - Must close {}

  Example 455: trig-graph-bad-06 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH - Must close {}
      GRAPH :g { :s :p :o

Test trig-graph-bad-07

  GRAPH may not include a GRAPH

  Example 456: trig-graph-bad-07 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH and a triples block.
      GRAPH :g {
         :s :p :o .
         GRAPH :g1 { :s1 :p1 :o1 }
      }

Test trig-graph-bad-08

  @graph is not a keyword

  Example 457: trig-graph-bad-08 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH and a triples block.
      @graph :g { :s :p :o }

Test trig-graph-bad-09

  Directives not allowed inside GRAPH

  Example 458: trig-graph-bad-09 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH - no directives
      graph :g {
        :s :p :o
      prefix x: <http://example/x#>
        x:s1 x:p1 x:o1 .
      }

Test trig-graph-bad-10

  A graph may not be named with an empty collection

  Example 459: trig-graph-bad-10 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH - no lists
      GRAPH () { :s :p :o }

Test trig-graph-bad-11

  A graph may not be named with a collection

  Example 460: trig-graph-bad-11 Input

      # GRAPH tests
      PREFIX : <http://example/>

      # GRAPH - no lists
      graph (1 2) { :s :p :o }

Test trig-bnodeplist-graph-bad-01

  A graph may not be named with a blankNodePropertyList

  Example 461: trig-bnodeplist-graph-bad-01 Input

      # BlankNodePropertyList as Graph Name
      PREFIX : <http://example/>

      [:p1 :o1] {:s :p :o}

Test trig-collection-graph-bad-01

  A graph may not be named with an empty collection

  Example 462: trig-collection-graph-bad-01 Input

      # Collection as Graph Name
      PREFIX : <http://example/>

      () {:s :p :o}

Test trig-collection-graph-bad-02

  A graph may not be named with a collection

  Example 463: trig-collection-graph-bad-02 Input

      # Collection as Graph Name
      PREFIX : <http://example/>

      (1 2) {:s :p :o}

Test trig-turtle-01

  TriG can parse Turtle

  Example 464: trig-turtle-01 Input

      # Turtle is TriG
      PREFIX : <http://example/>

      :s :p :o ;
         :q 123 , 456 .

      :s1 :p1 "more" .

Test trig-turtle-02

  TriG can parse Turtle (repeated PREFIX)

  Example 465: trig-turtle-02 Input

      # Turtle is TriG
      PREFIX : <http://example/>

      :s :p :o ;
         :q 123 , 456 .

      PREFIX : <http://example/ns#>

      :s :p :o .

Test trig-turtle-03

  TriG can parse Turtle (blankNodePropertyList subject)

  Example 466: trig-turtle-03 Input

      # Turtle is TriG
      prefix : <http://example/>

      [ :p 123 ; :q 456 ] :r 1 .

Test trig-turtle-04

  TriG can parse Turtle (blankNodePropertyList subject)

  Example 467: trig-turtle-04 Input

      # Turtle is TriG
      prefix : <http://example/>

      [] :p :o .

Test trig-turtle-05

  TriG can parse Turtle (bare blankNodePropertyList)

  Example 468: trig-turtle-05 Input

      # Turtle is TriG
      prefix : <http://example/>

      [ :p :o ] .

Test trig-turtle-06

  TriG can parse Turtle (collection subject and object)

  Example 469: trig-turtle-06 Input

      # Turtle is TriG
      prefix : <http://example/>

      ( 1 2 3 ) :p ( 4 5 6 ) .

Test trig-turtle-bad-01

  Trailing dot required in Turtle block

  Example 470: trig-turtle-bad-01 Input

      # Turtle is TriG

      # Trailing dot required in Turtle block.

      :s :p :o

Test trig-turtle-bad-02

  TriG is not N-Quads

  Example 471: trig-turtle-bad-02 Input

      # Turtle is TriG

      # N-Quads.

      :s :p :o :g .

## 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
[TRIG]
  Gavin Carothers, Andy Seaborne. TriG: RDF Dataset Language. W3C Recommendation, 25 February 2014. URL: http://www.w3.org/TR/2014/REC-trig-20140225/. The latest edition is available at http://www.w3.org/TR/trig/