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
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:

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/