This document report processor conformance for and related specifications for Turtle [[TURTLE]] according to the requirements of the Evaluation and Report Language (EARL) 1.0 Schema [[EARL10-SCHEMA]].

Results

Test Apache Jena RDF::Turtle
turtle-syntax-file-01 PASS PASS
turtle-syntax-file-02 PASS PASS
turtle-syntax-file-03 PASS PASS
turtle-syntax-uri-01 PASS PASS
turtle-syntax-uri-02 PASS PASS
turtle-syntax-uri-03 PASS PASS
turtle-syntax-uri-04 PASS PASS
turtle-syntax-base-01 PASS PASS
turtle-syntax-base-02 PASS PASS
turtle-syntax-base-03 PASS PASS
turtle-syntax-base-04 PASS PASS
turtle-syntax-prefix-01 PASS PASS
turtle-syntax-prefix-02 PASS PASS
turtle-syntax-prefix-03 PASS PASS
turtle-syntax-prefix-04 PASS PASS
turtle-syntax-prefix-05 PASS PASS
turtle-syntax-prefix-06 PASS PASS
turtle-syntax-prefix-07 PASS PASS
turtle-syntax-prefix-08 PASS PASS
turtle-syntax-prefix-09 PASS PASS
turtle-syntax-string-01 PASS PASS
turtle-syntax-string-02 PASS PASS
turtle-syntax-string-03 PASS PASS
turtle-syntax-string-04 PASS PASS
turtle-syntax-string-05 PASS PASS
turtle-syntax-string-06 PASS PASS
turtle-syntax-string-07 PASS PASS
turtle-syntax-string-08 PASS PASS
turtle-syntax-string-09 PASS PASS
turtle-syntax-string-10 PASS PASS
turtle-syntax-string-11 PASS PASS
turtle-syntax-str-esc-01 PASS PASS
turtle-syntax-str-esc-02 PASS PASS
turtle-syntax-str-esc-03 PASS PASS
turtle-syntax-pname-esc-01 PASS PASS
turtle-syntax-pname-esc-02 PASS PASS
turtle-syntax-pname-esc-03 PASS PASS
turtle-syntax-bnode-01 PASS PASS
turtle-syntax-bnode-02 PASS PASS
turtle-syntax-bnode-03 PASS PASS
turtle-syntax-bnode-04 PASS PASS
turtle-syntax-bnode-05 PASS PASS
turtle-syntax-bnode-06 PASS PASS
turtle-syntax-bnode-07 PASS PASS
turtle-syntax-bnode-08 PASS PASS
turtle-syntax-bnode-09 PASS PASS
turtle-syntax-bnode-10 PASS PASS
turtle-syntax-number-01 PASS PASS
turtle-syntax-number-02 PASS PASS
turtle-syntax-number-03 PASS PASS
turtle-syntax-number-04 PASS PASS
turtle-syntax-number-05 PASS PASS
turtle-syntax-number-06 PASS PASS
turtle-syntax-number-07 PASS PASS
turtle-syntax-number-08 PASS PASS
turtle-syntax-number-09 PASS PASS
turtle-syntax-number-10 PASS PASS
turtle-syntax-number-11 PASS PASS
turtle-syntax-datatypes-01 PASS PASS
turtle-syntax-datatypes-02 PASS PASS
turtle-syntax-kw-01 PASS PASS
turtle-syntax-kw-02 PASS PASS
turtle-syntax-kw-03 PASS PASS
turtle-syntax-struct-01 PASS PASS
turtle-syntax-struct-02 PASS PASS
turtle-syntax-struct-03 PASS PASS
turtle-syntax-lists-01 PASS PASS
turtle-syntax-lists-02 PASS PASS
turtle-syntax-lists-03 PASS PASS
turtle-syntax-lists-04 PASS PASS
turtle-syntax-lists-05 PASS PASS
turtle-syntax-bad-uri-01 PASS PASS
turtle-syntax-bad-uri-02 PASS PASS
turtle-syntax-bad-uri-03 PASS PASS
turtle-syntax-bad-uri-04 PASS PASS
turtle-syntax-bad-uri-05 PASS PASS
turtle-syntax-bad-prefix-01 PASS PASS
turtle-syntax-bad-prefix-02 PASS PASS
turtle-syntax-bad-prefix-03 PASS PASS
turtle-syntax-bad-prefix-04 PASS PASS
turtle-syntax-bad-prefix-05 PASS PASS
turtle-syntax-bad-base-01 PASS PASS
turtle-syntax-bad-base-02 PASS PASS
turtle-syntax-bad-base-03 PASS PASS
turtle-syntax-bad-struct-01 PASS PASS
turtle-syntax-bad-struct-02 PASS PASS
turtle-syntax-bad-struct-03 PASS PASS
turtle-syntax-bad-struct-04 PASS PASS
turtle-syntax-bad-struct-05 PASS PASS
turtle-syntax-bad-struct-06 PASS PASS
turtle-syntax-bad-struct-07 PASS PASS
turtle-syntax-bad-kw-01 PASS PASS
turtle-syntax-bad-kw-02 PASS PASS
turtle-syntax-bad-kw-03 PASS PASS
turtle-syntax-bad-kw-04 PASS PASS
turtle-syntax-bad-kw-05 PASS PASS
turtle-syntax-bad-n3-extras-01 PASS PASS
turtle-syntax-bad-n3-extras-02 PASS PASS
turtle-syntax-bad-n3-extras-03 PASS PASS
turtle-syntax-bad-n3-extras-04 PASS PASS
turtle-syntax-bad-n3-extras-05 PASS PASS
turtle-syntax-bad-n3-extras-06 PASS PASS
turtle-syntax-bad-n3-extras-07 PASS PASS
turtle-syntax-bad-n3-extras-08 PASS PASS
turtle-syntax-bad-n3-extras-09 PASS PASS
turtle-syntax-bad-n3-extras-10 PASS PASS
turtle-syntax-bad-n3-extras-11 PASS PASS
turtle-syntax-bad-n3-extras-12 PASS PASS
turtle-syntax-bad-n3-extras-13 PASS PASS
turtle-syntax-bad-struct-08 PASS PASS
turtle-syntax-bad-struct-09 PASS PASS
turtle-syntax-bad-struct-10 PASS PASS
turtle-syntax-bad-struct-11 PASS PASS
turtle-syntax-bad-struct-12 PASS PASS
turtle-syntax-bad-struct-13 PASS PASS
turtle-syntax-bad-struct-14 PASS PASS
turtle-syntax-bad-struct-15 PASS PASS
turtle-syntax-bad-struct-16 PASS PASS
turtle-syntax-bad-struct-17 PASS PASS
turtle-syntax-bad-lang-01 PASS PASS
turtle-syntax-bad-esc-01 PASS PASS
turtle-syntax-bad-esc-02 PASS PASS
turtle-syntax-bad-esc-03 PASS PASS
turtle-syntax-bad-esc-04 PASS PASS
turtle-syntax-bad-pname-01 PASS PASS
turtle-syntax-bad-pname-02 PASS PASS
turtle-syntax-bad-pname-03 PASS PASS
turtle-syntax-bad-string-01 PASS PASS
turtle-syntax-bad-string-02 PASS PASS
turtle-syntax-bad-string-03 PASS PASS
turtle-syntax-bad-string-04 PASS PASS
turtle-syntax-bad-string-05 PASS PASS
turtle-syntax-bad-string-06 UNTEST UNTEST
turtle-syntax-bad-string-07 UNTEST UNTEST
turtle-syntax-bad-num-01 PASS PASS
turtle-syntax-bad-num-02 PASS PASS
turtle-syntax-bad-num-03 PASS PASS
turtle-syntax-bad-num-04 PASS PASS
turtle-syntax-bad-num-05 PASS PASS
turtle-eval-struct-01 PASS PASS
turtle-eval-struct-02 PASS PASS
turtle-subm-01 PASS PASS
turtle-subm-02 PASS PASS
turtle-subm-03 PASS PASS
turtle-subm-04 PASS PASS
turtle-subm-05 PASS PASS
turtle-subm-06 PASS PASS
turtle-subm-07 PASS PASS
turtle-subm-08 PASS PASS
turtle-subm-09 PASS PASS
turtle-subm-10 PASS PASS
turtle-subm-11 PASS PASS
turtle-subm-12 PASS PASS
turtle-subm-13 PASS PASS
turtle-subm-14 PASS PASS
turtle-subm-15 PASS PASS
turtle-subm-16 PASS PASS
turtle-subm-17 PASS PASS
turtle-subm-18 PASS PASS
turtle-subm-19 PASS PASS
turtle-subm-20 PASS PASS
turtle-subm-21 PASS PASS
turtle-subm-22 PASS PASS
turtle-subm-23 PASS PASS
turtle-subm-24 PASS PASS
turtle-subm-25 PASS PASS
turtle-subm-26 PASS PASS
turtle-subm-27 PASS PASS
turtle-eval-bad-01 PASS PASS
turtle-eval-bad-02 PASS PASS
turtle-eval-bad-03 PASS PASS
turtle-eval-bad-04 PASS PASS

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
Developer
Andy Seaborne
Ian Dickinson
Dave Reynolds
Stephen Allen
Chris Dollin
Damian Steer
Paolo Castagna
Rob Vesse
RDF::Turtle
Description
RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.
Programming Language
Ruby
Developer
Home Page
http://greggkellogg.net/

Individual Test Results

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

Test Definitions

Test turtle-syntax-file-01

Empty file


            
Test turtle-syntax-file-02

Only comment

#Empty file.
Test turtle-syntax-file-03

One comment, one empty line

#One comment, one empty line.

Test turtle-syntax-uri-01

Only IRIs

<http://example/s> <http://example/p> <http://example/o> .
Test turtle-syntax-uri-02

IRIs with Unicode escape

# x53 is capital S
<http://example/\u0053> <http://example/p> <http://example/o> .
Test turtle-syntax-uri-03

IRIs with long Unicode escape

# x53 is capital S
<http://example/\U00000053> <http://example/p> <http://example/o> .
Test turtle-syntax-uri-04

Legal IRIs

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

@base

@base <http://example/> .
Test turtle-syntax-base-02

BASE

BASE <http://example/>
Test turtle-syntax-base-03

@base with relative IRIs

@base <http://example/> .
<s> <p> <o> .
Test turtle-syntax-base-04

base with relative IRIs

base <http://example/>
<s> <p> <o> .
Test turtle-syntax-prefix-01

@prefix

@prefix : <http://example/> .
Test turtle-syntax-prefix-02

PreFIX

PreFIX : <http://example/>
Test turtle-syntax-prefix-03

Empty PREFIX

PREFIX : <http://example/>
:s :p :123 .
Test turtle-syntax-prefix-04

Empty @prefix with % escape

@prefix : <http://example/> .
:s :p :%20 .
Test turtle-syntax-prefix-05

@prefix with no suffix

@prefix : <http://example/> .
: : : .
Test turtle-syntax-prefix-06

colon is a legal pname character

# colon is a legal pname character
@prefix : <http://example/> .
@prefix x: <http://example/> .
:a:b:c x:d:e:f :::: .
Test turtle-syntax-prefix-07

dash is a legal pname character

# dash is a legal pname character
@prefix x: <http://example/> .
x:a-b-c x:p x:o .
Test turtle-syntax-prefix-08

underscore is a legal pname character

# underscore is a legal pname character
@prefix x: <http://example/> .
x:_ x:p_1 x:o .
Test turtle-syntax-prefix-09

percents in pnames

# percents
@prefix : <http://example/> .
@prefix x: <http://example/> .
:a%3E x:%25 :a%3Eb .
Test turtle-syntax-string-01

string literal

<http://example/s> <http://example/p> "string" .
Test turtle-syntax-string-02

langString literal

<http://example/s> <http://example/p> "string"@en .
Test turtle-syntax-string-03

langString literal with region

<http://example/s> <http://example/p> "string"@en-uk .
Test turtle-syntax-string-04

squote string literal

<http://example/s> <http://example/p> 'string' .
Test turtle-syntax-string-05

squote langString literal

<http://example/s> <http://example/p> 'string'@en .
Test turtle-syntax-string-06

squote langString literal with region

<http://example/s> <http://example/p> 'string'@en-uk .
Test turtle-syntax-string-07

long string literal with embedded single- and double-quotes

<http://example/s> <http://example/p> """abc""def''ghi""" .
Test turtle-syntax-string-08

long string literal with embedded newline

<http://example/s> <http://example/p> """abc
def""" .
Test turtle-syntax-string-09

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

<http://example/s> <http://example/p> '''abc
def''' .
Test turtle-syntax-string-10

long langString literal with embedded newline

<http://example/s> <http://example/p> """abc
def"""@en .
Test turtle-syntax-string-11

squote long langString literal with embedded newline

<http://example/s> <http://example/p> '''abc
def'''@en .
Test turtle-syntax-str-esc-01

string literal with escaped newline

<http://example/s> <http://example/p> "a\n" .
Test turtle-syntax-str-esc-02

string literal with Unicode escape

<http://example/s> <http://example/p> "a\u0020b" .
Test turtle-syntax-str-esc-03

string literal with long Unicode escape

<http://example/s> <http://example/p> "a\U00000020b" .
Test turtle-syntax-pname-esc-01

pname with back-slash escapes

@prefix : <http://example/> .
:s :p :\~\.\-\!\$\&\'\(\)\*\+\,\;\=\/\?\#\@\_\%AA .
Test turtle-syntax-pname-esc-02

pname with back-slash escapes (2)

@prefix : <http://example/> .
:s :p :0123\~\.\-\!\$\&\'\(\)\*\+\,\;\=\/\?\#\@\_\%AA123 .
Test turtle-syntax-pname-esc-03

pname with back-slash escapes (3)

@prefix : <http://example/> .
:xyz\~ :abc\.: : .
Test turtle-syntax-bnode-01

bnode subject

@prefix : <http://example/> .
[] :p :o .
Test turtle-syntax-bnode-02

bnode object

@prefix : <http://example/> .
:s :p [] .
Test turtle-syntax-bnode-03

bnode property list object

@prefix : <http://example/> .
:s :p [ :q :o ] .
Test turtle-syntax-bnode-04

bnode property list object (2)

@prefix : <http://example/> .
:s :p [ :q1 :o1 ; :q2 :o2 ] .
Test turtle-syntax-bnode-05

bnode property list subject

@prefix : <http://example/> .
[ :q1 :o1 ; :q2 :o2 ] :p :o .
Test turtle-syntax-bnode-06

labeled bnode subject

@prefix : <http://example/> .
_:a :p :o .
Test turtle-syntax-bnode-07

labeled bnode subject and object

@prefix : <http://example/> .
:s :p _:a .
_:a :p :o .
Test turtle-syntax-bnode-08

bare bnode property list

@prefix : <http://example/> .
[ :p :o ] .
Test turtle-syntax-bnode-09

bnode property list

@prefix : <http://example/> .
[ :p :o1,:2 ] .
:s :p :o .
Test turtle-syntax-bnode-10

mixed bnode property list and triple

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

:s1 :p :o .
[ :p1 :o1 ; :p2 :o2 ] .
:s2 :p :o .
Test turtle-syntax-number-01

integer literal

<s> <p> 123 .
Test turtle-syntax-number-02

negative integer literal

<s> <p> -123 .
Test turtle-syntax-number-03

positive integer literal

<s> <p> +123 .
Test turtle-syntax-number-04

decimal literal

# This is a decimal.
<s> <p> 123.0 .
Test turtle-syntax-number-05

decimal literal (no leading digits)

# This is a decimal.
<s> <p> .1 .
Test turtle-syntax-number-06

negative decimal literal

# This is a decimal.
<s> <p> -123.0 .
Test turtle-syntax-number-07

positive decimal literal

# This is a decimal.
<s> <p> +123.0 .
Test turtle-syntax-number-08

integer literal with decimal lexical confusion

# This is an integer
<s> <p> 123.
Test turtle-syntax-number-09

double literal

<s> <p> 123.0e1 .
Test turtle-syntax-number-10

negative double literal

<s> <p> -123e-1 .
Test turtle-syntax-number-11

double literal no fraction

<s> <p> 123.E+1 .
Test turtle-syntax-datatypes-01

xsd:byte literal

@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
<s> <p> "123"^^xsd:byte .
Test turtle-syntax-datatypes-02

integer as xsd:string

@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 turtle-syntax-kw-01

boolean literal (true)

<s> <p> true .
Test turtle-syntax-kw-02

boolean literal (false)

<s> <p> false .
Test turtle-syntax-kw-03

'a' as keyword

@prefix : <http://example/> .
:s a :C .
Test turtle-syntax-struct-01

object list

@prefix : <http://example/> .
:s :p :o1 , :o2 .
Test turtle-syntax-struct-02

predicate list with object list

@prefix : <http://example/> .
:s :p1 :o1 ;
:p2 :o2 .
Test turtle-syntax-struct-03

predicate list with object list and dangling ';'

@prefix : <http://example/> .
:s :p1 :o1 ;
:p2 :o2 ;
.
Test turtle-syntax-lists-01

empty list

@prefix : <http://example/> .
:s :p () .
Test turtle-syntax-lists-02

mixed list

@prefix : <http://example/> .
:s :p (1 "2" :o) .
Test turtle-syntax-lists-03

isomorphic list as subject and object

@prefix : <http://example/> .
(1) :p (1) .
Test turtle-syntax-lists-04

lists of lists

@prefix : <http://example/> .
(()) :p (()) .
Test turtle-syntax-lists-05

mixed lists with embedded lists

@prefix : <http://example/> .
(1 2 (1 2)) :p (( "a") "b" :o) .
Test turtle-syntax-bad-uri-01

Bad IRI : space (negative test)

# Bad IRI : space.
<http://example/ space> <http://example/p> <http://example/o> .
Test turtle-syntax-bad-uri-02

Bad IRI : bad escape (negative test)

# Bad IRI : bad escape
<http://example/\u00ZZ11> <http://example/p> <http://example/o> .
Test turtle-syntax-bad-uri-03

Bad IRI : bad long escape (negative test)

# Bad IRI : bad escape
<http://example/\U00ZZ1111> <http://example/p> <http://example/o> .
Test turtle-syntax-bad-uri-04

Bad IRI : character escapes not allowed (negative test)

# Bad IRI : character escapes not allowed.
<http://example/\n> <http://example/p> <http://example/o> .
Test turtle-syntax-bad-uri-05

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

# Bad IRI : character escapes not allowed.
<http://example/\/> <http://example/p> <http://example/o> .
Test turtle-syntax-bad-prefix-01

No prefix (negative test)

# No prefix
:s <http://example/p> "x" .
Test turtle-syntax-bad-prefix-02

No prefix (2) (negative test)

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

@prefix without URI (negative test)

# @prefix without URI.
@prefix ex: .
Test turtle-syntax-bad-prefix-04

@prefix without prefix name (negative test)

# @prefix without prefix name .
@prefix <http://example/> .
Test turtle-syntax-bad-prefix-05

@prefix without ':' (negative test)

# @prefix without :
@prefix x <http://example/> .
Test turtle-syntax-bad-base-01

@base without URI (negative test)

# @base without URI.
@base .
Test turtle-syntax-bad-base-02

@base in wrong case (negative test)

# @base in wrong case.
@BASE <http://example/> .
Test turtle-syntax-bad-base-03

BASE without URI (negative test)

# @base without URI.
BASE <http://example/> .
<s> <p> <o> .
Test turtle-syntax-bad-struct-01

Turtle is not TriG (negative test)

# Turtle is not TriG
{ <http://example/s> <http://example/p> <http://example/o> }
Test turtle-syntax-bad-struct-02

Turtle is not N3 (negative test)

# Turtle is not N3
<http://example/s> = <http://example/o> .
Test turtle-syntax-bad-struct-03

Turtle is not NQuads (negative test)

# Turtle is not NQuads
<http://example/s> <http://example/p> <http://example/o> <http://example/g> .
Test turtle-syntax-bad-struct-04

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

# Turtle does not allow literals-as-subjects
"hello" <http://example/p> <http://example/o> .
Test turtle-syntax-bad-struct-05

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

# Turtle does not allow literals-as-predicates
<http://example/s> "hello" <http://example/o> .
Test turtle-syntax-bad-struct-06

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

# Turtle does not allow bnodes-as-predicates
<http://example/s> [] <http://example/o> .
Test turtle-syntax-bad-struct-07

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

# Turtle does not allow bnodes-as-predicates
<http://example/s> _:p <http://example/o> .
Test turtle-syntax-bad-kw-01

'A' is not a keyword (negative test)

@prefix : <http://example/> .
:s A :C .
Test turtle-syntax-bad-kw-02

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

@prefix : <http://example/> .
a :p :o .
Test turtle-syntax-bad-kw-03

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

@prefix : <http://example/> .
:s :p a .
Test turtle-syntax-bad-kw-04

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

@prefix : <http://example/> .
true :p :o .
Test turtle-syntax-bad-kw-05

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

@prefix : <http://example/> .
:s true :o .
Test turtle-syntax-bad-n3-extras-01

{} fomulae not in Turtle (negative test)

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

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

Test turtle-syntax-bad-n3-extras-02

= is not Turtle (negative test)

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

:a = :b .
Test turtle-syntax-bad-n3-extras-03

N3 paths not in Turtle (negative test)

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

:x.
ns:p.
ns:q :p :z .
Test turtle-syntax-bad-n3-extras-04

N3 paths not in Turtle (negative test)

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

:x^ns:p :p :z .
Test turtle-syntax-bad-n3-extras-05

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

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

:z is :p of :x .
Test turtle-syntax-bad-n3-extras-06

N3 paths not in Turtle (negative test)

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

:a.:b.:c .
Test turtle-syntax-bad-n3-extras-07

@keywords is not Turtle (negative test)

# @keywords is not Turtle
@keywords a .
x a Item .
Test turtle-syntax-bad-n3-extras-08

@keywords is not Turtle (negative test)

# @keywords is not Turtle
@keywords a .
x a Item .
Test turtle-syntax-bad-n3-extras-09

=> is not Turtle (negative test)

# => is not Turtle
@prefix : <http://example/> .
:s => :o .
Test turtle-syntax-bad-n3-extras-10

<= is not Turtle (negative test)

# <= is not Turtle
@prefix : <http://example/> .
:s <= :o .
Test turtle-syntax-bad-n3-extras-11

@forSome is not Turtle (negative test)

# @forSome is not Turtle
@prefix : <http://example/> .
@forSome :x .
Test turtle-syntax-bad-n3-extras-12

@forAll is not Turtle (negative test)

# @forAll is not Turtle
@prefix : <http://example/> .
@forAll :x .
Test turtle-syntax-bad-n3-extras-13

@keywords is not Turtle (negative test)

# @keywords is not Turtle
@keywords .
x @a Item .
Test turtle-syntax-bad-struct-08

missing '.' (negative test)

# No DOT
<http://example/s> <http://example/p> <http://example/o>
Test turtle-syntax-bad-struct-09

extra '.' (negative test)

# Too many DOT
<http://example/s> <http://example/p> <http://example/o> . .
Test turtle-syntax-bad-struct-10

extra '.' (negative test)

# Too many DOT
<http://example/s> <http://example/p> <http://example/o> . .
<http://example/s1> <http://example/p1> <http://example/o1> .
Test turtle-syntax-bad-struct-11

trailing ';' no '.' (negative test)

# Trailing ;
<http://example/s> <http://example/p> <http://example/o> ;
Test turtle-syntax-bad-struct-12

subject, predicate, no object (negative test)

<http://example/s> <http://example/p> 
Test turtle-syntax-bad-struct-13

subject, predicate, no object (negative test)

<http://example/s> <http://example/p> 
Test turtle-syntax-bad-struct-14

literal as subject (negative test)

# Literal as subject
"abc" <http://example/p> <http://example/p> .
Test turtle-syntax-bad-struct-15

literal as predicate (negative test)

# Literal as predicate
<http://example/s> "abc" <http://example/p> .
Test turtle-syntax-bad-struct-16

bnode as predicate (negative test)

# BNode as predicate
<http://example/s> [] <http://example/p> .
Test turtle-syntax-bad-struct-17

labeled bnode as predicate (negative test)

# BNode as predicate
<http://example/s> _:a <http://example/p> .
Test turtle-syntax-bad-lang-01

langString with bad lang (negative test)

# Bad lang tag
<http://example/s> <http://example/p> "string"@1 .
Test turtle-syntax-bad-esc-01

Bad string escape (negative test)

# Bad string escape
<http://example/s> <http://example/p> "a\zb" .
Test turtle-syntax-bad-esc-02

Bad string escape (negative test)

# Bad string escape
<http://example/s> <http://example/p> "\uWXYZ" .
Test turtle-syntax-bad-esc-03

Bad string escape (negative test)

# Bad string escape
<http://example/s> <http://example/p> "\U0000WXYZ" .
Test turtle-syntax-bad-esc-04

Bad string escape (negative test)

# Bad string escape
<http://example/s> <http://example/p> "\U0000WXYZ" .
Test turtle-syntax-bad-pname-01

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

# ~ must be escaped.
@prefix : <http://example/> .
:a~b :p :o .
Test turtle-syntax-bad-pname-02

Bad %-sequence in pname (negative test)

# Bad %-sequence
@prefix : <http://example/> .
:a%2 :p :o .
Test turtle-syntax-bad-pname-03

Bad unicode escape in pname (negative test)

# No \u (x39 is "9")
@prefix : <http://example/> .
:a\u0039 :p :o .
Test turtle-syntax-bad-string-01

mismatching string literal open/close (negative test)

@prefix : <http://example/> .
:s :p "abc' .
Test turtle-syntax-bad-string-02

mismatching string literal open/close (negative test)

@prefix : <http://example/> .
:s :p 'abc" .
Test turtle-syntax-bad-string-03

mismatching string literal long/short (negative test)

@prefix : <http://example/> .
:s :p '''abc' .
Test turtle-syntax-bad-string-04

mismatching long string literal open/close (negative test)

@prefix : <http://example/> .
:s :p """abc''' .
Test turtle-syntax-bad-string-05

Long literal with missing end (negative test)

# Long literal with missing end
@prefix : <http://example/> .
:s :p """abc
def
Test turtle-syntax-bad-string-06

Long literal with extra quote (negative test)

# Long literal with 4"
@prefix : <http://example/> .
:s :p """abc""""@en .
Test turtle-syntax-bad-string-07

Long literal with extra squote (negative test)

# Long literal with 4'
@prefix : <http://example/> .
:s :p '''abc''''@en .
Test turtle-syntax-bad-num-01

Bad number format (negative test)

<http://example/s> <http://example/p> 123.abc .
Test turtle-syntax-bad-num-02

Bad number format (negative test)

<http://example/s> <http://example/p> 123e .
Test turtle-syntax-bad-num-03

Bad number format (negative test)

<http://example/s> <http://example/p> 123abc .
Test turtle-syntax-bad-num-04

Bad number format (negative test)

<http://example/s> <http://example/p> 0x123 .
Test turtle-syntax-bad-num-05

Bad number format (negative test)

<http://example/s> <http://example/p> +-1 .
Test turtle-eval-struct-01

triple with IRIs

<http://example/s> <http://example/p> <http://example/o> .
<http://example/s> <http://example/p> <http://example/o> .
Test turtle-eval-struct-02

triple with IRIs and embedded whitespace

<http://example/s> 
<http://example/p1> <http://example/o1> ;
<http://example/p2> <http://example/o2> ;
.
<http://example/s> <http://example/p1> <http://example/o1> .
<http://example/s> <http://example/p2> <http://example/o2> .
Test turtle-subm-01

Blank subject

@prefix : <#> .
[] :x :y .
_:genid1 <http://example/base/turtle-subm-01.ttl#x> <http://example/base/turtle-subm-01.ttl#y> .
Test turtle-subm-02

@prefix and qnames

# 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.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> .
Test turtle-subm-03

, operator

# Test , operator
@prefix : <http://example.org/base#> .
:a :b :c,
:d,
:e .
<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> .
Test turtle-subm-04

; operator

# Test ; operator
@prefix : <http://example.org/base#> .
:a :b :c ;
:d :e ;
:f :g .
<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> .
Test turtle-subm-05

empty [] as subject and object

# Test empty [] operator; not allowed as predicate
@prefix : <http://example.org/base#> .
[] :a :b .
:c :d [] .
_:genid1 <http://example.org/base#a> <http://example.org/base#b> .
<http://example.org/base#c> <http://example.org/base#d> _:genid2 .
Test turtle-subm-06

non-empty [] as subject and object

# Test non empty [] operator; not allowed as predicate
@prefix : <http://example.org/base#> .
[ :a :b ] :c :d .
:e :f [ :g :h ] .
_: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 .
Test turtle-subm-07

'a' as predicate

# 'a' only allowed as a predicate
@prefix : <http://example.org/base#> .
:a a :b .
<http://example.org/base#a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/base#b> .
Test turtle-subm-08

simple collection

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

_: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 .
Test turtle-subm-09

empty collection

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

<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> .
Test turtle-subm-10

integer datatyped literal

# 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 .
_: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> .
Test turtle-subm-11

decimal integer canonicalization

<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.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> .
Test turtle-subm-12

- and _ in names and qnames

# 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.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" .
Test turtle-subm-13

tests for rdf:_ and other qnames starting with _

# 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.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" .
Test turtle-subm-14

bare : allowed

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

[] : [] .

: : : .

_:genid1 <http://example.org/ron> _:genid2 .
<http://example.org/ron> <http://example.org/ron> <http://example.org/ron> .
Test turtle-subm-15

simple long literal

# Test long literal
@prefix : <http://example.org/ex#> .
:a :b """a long
literal
with
newlines""" .
<http://example.org/ex#a> <http://example.org/ex#b> "a long\n\tliteral\nwith\nnewlines" .
Test turtle-subm-16

long literals with escapes

@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.org/foo#a> <http://example.org/foo#b> "\nthis \ris a \U00015678long\t\nliteral\uABCD\n" .
## <http://example.org/foo#d> <http://example.org/foo#e> "\tThis \uABCDis\r \U00015678another\n\none\n" .

<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" .
Test turtle-subm-17

floating point number

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

:a :b 1.0 .

<http://example.org/#a> <http://example.org/#b> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> .
Test turtle-subm-18

empty literals, normal and long variant

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

:a :b "" .

:c :d """""" .

<http://example.org/#a> <http://example.org/#b> "" .
<http://example.org/#c> <http://example.org/#d> "" .
Test turtle-subm-19

positive integer, decimal and doubles

@prefix : <http://example.org#> .
:a :b 1.0 .
:c :d 1 .
:e :f 1.0e0 .
<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> .
Test turtle-subm-20

negative integer, decimal and doubles

@prefix : <http://example.org#> .
:a :b -1.0 .
:c :d -1 .
:e :f -1.0e0 .
<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> .
Test turtle-subm-21

long literal ending in double quote

# Test long literal
@prefix : <http://example.org/ex#> .
:a :b """John said: "Hello World!\"""" .
<http://example.org/ex#a> <http://example.org/ex#b> "John said: \"Hello World!\"" .
Test turtle-subm-22

boolean literals

@prefix : <http://example.org#> .
:a :b true .
:c :d false .
<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> .
Test turtle-subm-23

comments

# 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.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> .
Test turtle-subm-24

no final mewline

# comment line with no final newline test
@prefix : <http://example.org/#> .
:a :b :c .
#foo
<http://example.org/#a> <http://example.org/#b> <http://example.org/#c> .
Test turtle-subm-25

repeating a @prefix changes pname definition

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

foo:blah foo:blah foo:blah .

<http://example.org/bar#blah> <http://example.org/bar#blah> <http://example.org/bar#blah> .
Test turtle-subm-26

Variations on decimal canonicalization

<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> .
# Incomplete.
## <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.0"^^<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.0"^^<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> "2.30"^^<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.234"^^<http://www.w3.org/2001/XMLSchema#decimal> .
## <http://example.org/foo> <http://example.org/bar> "2.234"^^<http://www.w3.org/2001/XMLSchema#decimal> .
## <http://example.org/foo> <http://example.org/bar> "2.234"^^<http://www.w3.org/2001/XMLSchema#decimal> .
## <http://example.org/foo> <http://example.org/bar> "2.234"^^<http://www.w3.org/2001/XMLSchema#decimal> .
## <http://example.org/foo> <http://example.org/bar> "2.234"^^<http://www.w3.org/2001/XMLSchema#decimal> .
## <http://example.org/foo> <http://example.org/bar> "2.234"^^<http://www.w3.org/2001/XMLSchema#decimal> .
## <http://example.org/foo> <http://example.org/bar> "2.234"^^<http://www.w3.org/2001/XMLSchema#decimal> .
## <http://example.org/foo> <http://example.org/bar> "1.2345678901234567"^^<http://www.w3.org/2001/XMLSchema#decimal> .

#Corrected.
<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.234000000000000000005"^^<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.345"^^<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.23400000000005"^^<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.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.2340000000000005"^^<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> "2.234000000000000005"^^<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> "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.23400000000000005"^^<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> "1.2345678901234567890123457890"^^<http://www.w3.org/2001/XMLSchema#decimal> .
<http://example.org/foo> <http://example.org/bar> "2.2340000000000000005"^^<http://www.w3.org/2001/XMLSchema#decimal> .
Test turtle-subm-27

Repeating @base changes base for relative IRI lookup

# In-scope base URI is http://www.w3.org/2001/sw/DataAccess/df1/tests/ 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 .
<http://example/base/a1> <http://example/base/b1> <http://example/base/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 turtle-eval-bad-01

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

# Bad IRI : good escape, bad charcater
<http://example/\u0020> <http://example/p> <http://example/o> .
Test turtle-eval-bad-02

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

# Bad IRI : hex 3C is <
<http://example/\u003C> <http://example/p> <http://example/o> .
Test turtle-eval-bad-03

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

# Bad IRI : hex 3E is >
<http://example/\u003E> <http://example/p> <http://example/o> .
Test turtle-eval-bad-04

Bad IRI : {abc} (negative evaluation test)

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

Report Generation Software

This report generated by earl-report version 0.1.2 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.