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]].
This report was tested using the following test subjects:
Individual test results used to construct this report are available here:
Empty file
Only comment
#Empty file.
One comment, one empty line
#One comment, one empty line.
Only IRIs
<http://example/s> <http://example/p> <http://example/o> .
IRIs with Unicode escape
# x53 is capital S
<http://example/\u0053> <http://example/p> <http://example/o> .
IRIs with long Unicode escape
# x53 is capital S
<http://example/\U00000053> <http://example/p> <http://example/o> .
Legal IRIs
# IRI with all chars in it.
<http://example/s> <http://example/p>
<scheme:!$%25&'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> .
@base
@base <http://example/> .
BASE
BASE <http://example/>
@base with relative IRIs
@base <http://example/> .
<s> <p> <o> .
base with relative IRIs
base <http://example/>
<s> <p> <o> .
@prefix
@prefix : <http://example/> .
PreFIX
PreFIX : <http://example/>
Empty PREFIX
PREFIX : <http://example/>
:s :p :123 .
Empty @prefix with % escape
@prefix : <http://example/> .
:s :p :%20 .
@prefix with no suffix
@prefix : <http://example/> .
: : : .
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 :::: .
dash is a legal pname character
# dash is a legal pname character
@prefix x: <http://example/> .
x:a-b-c x:p x:o .
underscore is a legal pname character
# underscore is a legal pname character
@prefix x: <http://example/> .
x:_ x:p_1 x:o .
percents in pnames
# percents
@prefix : <http://example/> .
@prefix x: <http://example/> .
:a%3E x:%25 :a%3Eb .
string literal
<http://example/s> <http://example/p> "string" .
langString literal
<http://example/s> <http://example/p> "string"@en .
langString literal with region
<http://example/s> <http://example/p> "string"@en-uk .
squote string literal
<http://example/s> <http://example/p> 'string' .
squote langString literal
<http://example/s> <http://example/p> 'string'@en .
squote langString literal with region
<http://example/s> <http://example/p> 'string'@en-uk .
long string literal with embedded single- and double-quotes
<http://example/s> <http://example/p> """abc""def''ghi""" .
long string literal with embedded newline
<http://example/s> <http://example/p> """abc
def""" .
squote long string literal with embedded single- and double-quotes
<http://example/s> <http://example/p> '''abc
def''' .
long langString literal with embedded newline
<http://example/s> <http://example/p> """abc
def"""@en .
squote long langString literal with embedded newline
<http://example/s> <http://example/p> '''abc
def'''@en .
string literal with escaped newline
<http://example/s> <http://example/p> "a\n" .
string literal with Unicode escape
<http://example/s> <http://example/p> "a\u0020b" .
string literal with long Unicode escape
<http://example/s> <http://example/p> "a\U00000020b" .
pname with back-slash escapes
@prefix : <http://example/> .
:s :p :\~\.\-\!\$\&\'\(\)\*\+\,\;\=\/\?\#\@\_\%AA .
pname with back-slash escapes (2)
@prefix : <http://example/> .
:s :p :0123\~\.\-\!\$\&\'\(\)\*\+\,\;\=\/\?\#\@\_\%AA123 .
pname with back-slash escapes (3)
@prefix : <http://example/> .
:xyz\~ :abc\.: : .
bnode subject
@prefix : <http://example/> .
[] :p :o .
bnode object
@prefix : <http://example/> .
:s :p [] .
bnode property list object
@prefix : <http://example/> .
:s :p [ :q :o ] .
bnode property list object (2)
@prefix : <http://example/> .
:s :p [ :q1 :o1 ; :q2 :o2 ] .
bnode property list subject
@prefix : <http://example/> .
[ :q1 :o1 ; :q2 :o2 ] :p :o .
labeled bnode subject
@prefix : <http://example/> .
_:a :p :o .
labeled bnode subject and object
@prefix : <http://example/> .
:s :p _:a .
_:a :p :o .
bare bnode property list
@prefix : <http://example/> .
[ :p :o ] .
bnode property list
@prefix : <http://example/> .
[ :p :o1,:2 ] .
:s :p :o .
mixed bnode property list and triple
@prefix : <http://example/> .
:s1 :p :o .
[ :p1 :o1 ; :p2 :o2 ] .
:s2 :p :o .
integer literal
<s> <p> 123 .
negative integer literal
<s> <p> -123 .
positive integer literal
<s> <p> +123 .
decimal literal
# This is a decimal.
<s> <p> 123.0 .
decimal literal (no leading digits)
# This is a decimal.
<s> <p> .1 .
negative decimal literal
# This is a decimal.
<s> <p> -123.0 .
positive decimal literal
# This is a decimal.
<s> <p> +123.0 .
integer literal with decimal lexical confusion
# This is an integer
<s> <p> 123.
double literal
<s> <p> 123.0e1 .
negative double literal
<s> <p> -123e-1 .
double literal no fraction
<s> <p> 123.E+1 .
xsd:byte literal
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<s> <p> "123"^^xsd:byte .
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 .
boolean literal (true)
<s> <p> true .
boolean literal (false)
<s> <p> false .
'a' as keyword
@prefix : <http://example/> .
:s a :C .
object list
@prefix : <http://example/> .
:s :p :o1 , :o2 .
predicate list with object list
@prefix : <http://example/> .
:s :p1 :o1 ;
:p2 :o2 .
predicate list with object list and dangling ';'
@prefix : <http://example/> .
:s :p1 :o1 ;
:p2 :o2 ;
.
empty list
@prefix : <http://example/> .
:s :p () .
mixed list
@prefix : <http://example/> .
:s :p (1 "2" :o) .
isomorphic list as subject and object
@prefix : <http://example/> .
(1) :p (1) .
lists of lists
@prefix : <http://example/> .
(()) :p (()) .
mixed lists with embedded lists
@prefix : <http://example/> .
(1 2 (1 2)) :p (( "a") "b" :o) .
Bad IRI : space (negative test)
# Bad IRI : space.
<http://example/ space> <http://example/p> <http://example/o> .
Bad IRI : bad escape (negative test)
# Bad IRI : bad escape
<http://example/\u00ZZ11> <http://example/p> <http://example/o> .
Bad IRI : bad long escape (negative test)
# Bad IRI : bad escape
<http://example/\U00ZZ1111> <http://example/p> <http://example/o> .
Bad IRI : character escapes not allowed (negative test)
# Bad IRI : character escapes not allowed.
<http://example/\n> <http://example/p> <http://example/o> .
Bad IRI : character escapes not allowed (2) (negative test)
# Bad IRI : character escapes not allowed.
<http://example/\/> <http://example/p> <http://example/o> .
No prefix (negative test)
# No prefix
:s <http://example/p> "x" .
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 .
@prefix without URI (negative test)
# @prefix without URI.
@prefix ex: .
@prefix without prefix name (negative test)
# @prefix without prefix name .
@prefix <http://example/> .
@prefix without ':' (negative test)
# @prefix without :
@prefix x <http://example/> .
@base without URI (negative test)
# @base without URI.
@base .
@base in wrong case (negative test)
# @base in wrong case.
@BASE <http://example/> .
BASE without URI (negative test)
# @base without URI.
BASE <http://example/> .
<s> <p> <o> .
Turtle is not TriG (negative test)
# Turtle is not TriG
{ <http://example/s> <http://example/p> <http://example/o> }
Turtle is not N3 (negative test)
# Turtle is not N3
<http://example/s> = <http://example/o> .
Turtle is not NQuads (negative test)
# Turtle is not NQuads
<http://example/s> <http://example/p> <http://example/o> <http://example/g> .
Turtle does not allow literals-as-subjects (negative test)
# Turtle does not allow literals-as-subjects
"hello" <http://example/p> <http://example/o> .
Turtle does not allow literals-as-predicates (negative test)
# Turtle does not allow literals-as-predicates
<http://example/s> "hello" <http://example/o> .
Turtle does not allow bnodes-as-predicates (negative test)
# Turtle does not allow bnodes-as-predicates
<http://example/s> [] <http://example/o> .
Turtle does not allow labeled bnodes-as-predicates (negative test)
# Turtle does not allow bnodes-as-predicates
<http://example/s> _:p <http://example/o> .
'A' is not a keyword (negative test)
@prefix : <http://example/> .
:s A :C .
'a' cannot be used as subject (negative test)
@prefix : <http://example/> .
a :p :o .
'a' cannot be used as object (negative test)
@prefix : <http://example/> .
:s :p a .
'true' cannot be used as subject (negative test)
@prefix : <http://example/> .
true :p :o .
'true' cannot be used as object (negative test)
@prefix : <http://example/> .
:s true :o .
{} fomulae not in Turtle (negative test)
# {} fomulae not in Turtle
@prefix : <http://example/> .
{ :a :q :c . } :p :z .
= is not Turtle (negative test)
# = is not Turtle
@prefix : <http://example/> .
:a = :b .
N3 paths not in Turtle (negative test)
# N3 paths
@prefix : <http://example/> .
@prefix ns: <http://example/p#> .
:x.
ns:p.
ns:q :p :z .
N3 paths not in Turtle (negative test)
# N3 paths
@prefix : <http://example/> .
@prefix ns: <http://example/p#> .
:x^ns:p :p :z .
N3 is...of not in Turtle (negative test)
# N3 is...of
@prefix : <http://example/> .
:z is :p of :x .
N3 paths not in Turtle (negative test)
# = is not Turtle
@prefix : <http://example/> .
:a.:b.:c .
@keywords is not Turtle (negative test)
# @keywords is not Turtle
@keywords a .
x a Item .
@keywords is not Turtle (negative test)
# @keywords is not Turtle
@keywords a .
x a Item .
=> is not Turtle (negative test)
# => is not Turtle
@prefix : <http://example/> .
:s => :o .
<= is not Turtle (negative test)
# <= is not Turtle
@prefix : <http://example/> .
:s <= :o .
@forSome is not Turtle (negative test)
# @forSome is not Turtle
@prefix : <http://example/> .
@forSome :x .
@forAll is not Turtle (negative test)
# @forAll is not Turtle
@prefix : <http://example/> .
@forAll :x .
@keywords is not Turtle (negative test)
# @keywords is not Turtle
@keywords .
x @a Item .
missing '.' (negative test)
# No DOT
<http://example/s> <http://example/p> <http://example/o>
extra '.' (negative test)
# Too many DOT
<http://example/s> <http://example/p> <http://example/o> . .
extra '.' (negative test)
# Too many DOT
<http://example/s> <http://example/p> <http://example/o> . .
<http://example/s1> <http://example/p1> <http://example/o1> .
trailing ';' no '.' (negative test)
# Trailing ;
<http://example/s> <http://example/p> <http://example/o> ;
subject, predicate, no object (negative test)
<http://example/s> <http://example/p>
subject, predicate, no object (negative test)
<http://example/s> <http://example/p>
literal as subject (negative test)
# Literal as subject
"abc" <http://example/p> <http://example/p> .
literal as predicate (negative test)
# Literal as predicate
<http://example/s> "abc" <http://example/p> .
bnode as predicate (negative test)
# BNode as predicate
<http://example/s> [] <http://example/p> .
labeled bnode as predicate (negative test)
# BNode as predicate
<http://example/s> _:a <http://example/p> .
langString with bad lang (negative test)
# Bad lang tag
<http://example/s> <http://example/p> "string"@1 .
Bad string escape (negative test)
# Bad string escape
<http://example/s> <http://example/p> "a\zb" .
Bad string escape (negative test)
# Bad string escape
<http://example/s> <http://example/p> "\uWXYZ" .
Bad string escape (negative test)
# Bad string escape
<http://example/s> <http://example/p> "\U0000WXYZ" .
Bad string escape (negative test)
# Bad string escape
<http://example/s> <http://example/p> "\U0000WXYZ" .
'~' must be escaped in pname (negative test)
# ~ must be escaped.
@prefix : <http://example/> .
:a~b :p :o .
Bad %-sequence in pname (negative test)
# Bad %-sequence
@prefix : <http://example/> .
:a%2 :p :o .
Bad unicode escape in pname (negative test)
# No \u (x39 is "9")
@prefix : <http://example/> .
:a\u0039 :p :o .
mismatching string literal open/close (negative test)
@prefix : <http://example/> .
:s :p "abc' .
mismatching string literal open/close (negative test)
@prefix : <http://example/> .
:s :p 'abc" .
mismatching string literal long/short (negative test)
@prefix : <http://example/> .
:s :p '''abc' .
mismatching long string literal open/close (negative test)
@prefix : <http://example/> .
:s :p """abc''' .
Long literal with missing end (negative test)
# Long literal with missing end
@prefix : <http://example/> .
:s :p """abc
def
Long literal with extra quote (negative test)
# Long literal with 4"
@prefix : <http://example/> .
:s :p """abc""""@en .
Long literal with extra squote (negative test)
# Long literal with 4'
@prefix : <http://example/> .
:s :p '''abc''''@en .
Bad number format (negative test)
<http://example/s> <http://example/p> 123.abc .
Bad number format (negative test)
<http://example/s> <http://example/p> 123e .
Bad number format (negative test)
<http://example/s> <http://example/p> 123abc .
Bad number format (negative test)
<http://example/s> <http://example/p> 0x123 .
Bad number format (negative test)
<http://example/s> <http://example/p> +-1 .
triple with IRIs
<http://example/s> <http://example/p> <http://example/o> .
<http://example/s> <http://example/p> <http://example/o> .
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> .
Blank subject
@prefix : <#> .
[] :x :y .
_:genid1 <http://example/base/turtle-subm-01.ttl#x> <http://example/base/turtle-subm-01.ttl#y> .
@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> .
, 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> .
; 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> .
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 .
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 .
'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> .
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 .
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> .
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> .
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> .
- 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" .
tests for rdf:_
# 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" .
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> .
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" .
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" .
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> .
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> "" .
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> .
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> .
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!\"" .
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> .
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> .
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> .
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> .
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> .
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> .
Bad IRI : good escape, bad charcater (negative evaluation test)
# Bad IRI : good escape, bad charcater
<http://example/\u0020> <http://example/p> <http://example/o> .
Bad IRI : hex 3C is < (negative evaluation test)
# Bad IRI : hex 3C is <
<http://example/\u003C> <http://example/p> <http://example/o> .
Bad IRI : hex 3E is (negative evaluation test)
# Bad IRI : hex 3E is >
<http://example/\u003E> <http://example/p> <http://example/o> .
Bad IRI : {abc} (negative evaluation test)
# Bad IRI
<http://example/{abc}> <http://example/p> <http://example/o> .
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.