aboutsummaryrefslogtreecommitdiffstats
path: root/tests/tests-ttl
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-02-25 06:18:29 +0000
committerDavid Robillard <d@drobilla.net>2013-02-25 06:18:29 +0000
commit4cd874e79f88f79a3782d4b7feea60b48ec26598 (patch)
treec94ee6cacfe15c43e96b75e5f41d226f62325f9c /tests/tests-ttl
parent29c0649c9f5cc4467b0545eb95759b835da9991b (diff)
downloadserd-4cd874e79f88f79a3782d4b7feea60b48ec26598.tar.gz
serd-4cd874e79f88f79a3782d4b7feea60b48ec26598.tar.bz2
serd-4cd874e79f88f79a3782d4b7feea60b48ec26598.zip
Support most of the latest Turtle Editor's Draft.
git-svn-id: http://svn.drobilla.net/serd/trunk@418 490d8e77-9747-427b-9fa3-0b8f29cee8a0
Diffstat (limited to 'tests/tests-ttl')
-rw-r--r--tests/tests-ttl/LICENSE40
-rw-r--r--tests/tests-ttl/README1
-rw-r--r--tests/tests-ttl/manifest.ttl1276
-rw-r--r--tests/tests-ttl/turtle-eval-bad-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-eval-bad-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-eval-bad-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-eval-bad-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-eval-struct-01.nt1
-rw-r--r--tests/tests-ttl/turtle-eval-struct-01.ttl1
-rw-r--r--tests/tests-ttl/turtle-eval-struct-02.nt2
-rw-r--r--tests/tests-ttl/turtle-eval-struct-02.ttl4
-rw-r--r--tests/tests-ttl/turtle-subm-01.nt1
-rw-r--r--tests/tests-ttl/turtle-subm-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-subm-02.nt3
-rw-r--r--tests/tests-ttl/turtle-subm-02.ttl7
-rw-r--r--tests/tests-ttl/turtle-subm-03.nt3
-rw-r--r--tests/tests-ttl/turtle-subm-03.ttl5
-rw-r--r--tests/tests-ttl/turtle-subm-04.nt3
-rw-r--r--tests/tests-ttl/turtle-subm-04.ttl5
-rw-r--r--tests/tests-ttl/turtle-subm-05.nt2
-rw-r--r--tests/tests-ttl/turtle-subm-05.ttl4
-rw-r--r--tests/tests-ttl/turtle-subm-06.nt4
-rw-r--r--tests/tests-ttl/turtle-subm-06.ttl4
-rw-r--r--tests/tests-ttl/turtle-subm-07.nt1
-rw-r--r--tests/tests-ttl/turtle-subm-07.ttl3
-rw-r--r--tests/tests-ttl/turtle-subm-08.nt5
-rw-r--r--tests/tests-ttl/turtle-subm-08.ttl3
-rw-r--r--tests/tests-ttl/turtle-subm-09.nt1
-rw-r--r--tests/tests-ttl/turtle-subm-09.ttl3
-rw-r--r--tests/tests-ttl/turtle-subm-10.nt4
-rw-r--r--tests/tests-ttl/turtle-subm-10.ttl10
-rw-r--r--tests/tests-ttl/turtle-subm-11.nt5
-rw-r--r--tests/tests-ttl/turtle-subm-11.ttl5
-rw-r--r--tests/tests-ttl/turtle-subm-12.nt4
-rw-r--r--tests/tests-ttl/turtle-subm-12.ttl10
-rw-r--r--tests/tests-ttl/turtle-subm-13.nt4
-rw-r--r--tests/tests-ttl/turtle-subm-13.ttl9
-rw-r--r--tests/tests-ttl/turtle-subm-14.nt2
-rw-r--r--tests/tests-ttl/turtle-subm-14.ttl7
-rw-r--r--tests/tests-ttl/turtle-subm-15.nt1
-rw-r--r--tests/tests-ttl/turtle-subm-15.ttl6
-rw-r--r--tests/tests-ttl/turtle-subm-16.nt2
-rw-r--r--tests/tests-ttl/turtle-subm-16.ttl20
-rw-r--r--tests/tests-ttl/turtle-subm-17.nt1
-rw-r--r--tests/tests-ttl/turtle-subm-17.ttl4
-rw-r--r--tests/tests-ttl/turtle-subm-18.nt2
-rw-r--r--tests/tests-ttl/turtle-subm-18.ttl6
-rw-r--r--tests/tests-ttl/turtle-subm-19.nt3
-rw-r--r--tests/tests-ttl/turtle-subm-19.ttl4
-rw-r--r--tests/tests-ttl/turtle-subm-20.nt3
-rw-r--r--tests/tests-ttl/turtle-subm-20.ttl4
-rw-r--r--tests/tests-ttl/turtle-subm-21.nt1
-rw-r--r--tests/tests-ttl/turtle-subm-21.ttl3
-rw-r--r--tests/tests-ttl/turtle-subm-22.nt2
-rw-r--r--tests/tests-ttl/turtle-subm-22.ttl3
-rw-r--r--tests/tests-ttl/turtle-subm-23.nt7
-rw-r--r--tests/tests-ttl/turtle-subm-23.ttl14
-rw-r--r--tests/tests-ttl/turtle-subm-24.nt1
-rw-r--r--tests/tests-ttl/turtle-subm-24.ttl4
-rw-r--r--tests/tests-ttl/turtle-subm-25.nt1
-rw-r--r--tests/tests-ttl/turtle-subm-25.ttl5
-rw-r--r--tests/tests-ttl/turtle-subm-26.nt22
-rw-r--r--tests/tests-ttl/turtle-subm-26.ttl22
-rw-r--r--tests/tests-ttl/turtle-subm-27.nt5
-rw-r--r--tests/tests-ttl/turtle-subm-27.ttl12
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-base-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-base-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-base-03.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-esc-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-esc-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-esc-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-esc-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-kw-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-kw-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-kw-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-kw-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-kw-05.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-lang-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-01.ttl5
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-02.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-03.ttl7
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-04.ttl5
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-05.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-06.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-07.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-08.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-09.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-10.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-11.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-12.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-n3-extras-13.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-num-01.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-num-02.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-num-03.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-num-04.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-num-05.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-pname-01.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-pname-02.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-pname-03.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-prefix-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-prefix-02.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-prefix-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-prefix-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-prefix-05.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-string-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-string-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-string-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-string-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-string-05.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-string-06.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-string-07.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-05.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-06.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-07.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-08.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-09.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-10.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-11.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-12.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-13.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-14.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-15.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-16.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-struct-17.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-uri-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-uri-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-uri-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-uri-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-uri-05.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-base-01.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-base-02.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-base-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-base-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bnode-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bnode-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bnode-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bnode-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bnode-05.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bnode-06.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bnode-07.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bnode-08.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bnode-09.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-bnode-10.ttl5
-rw-r--r--tests/tests-ttl/turtle-syntax-datatypes-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-datatypes-02.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-file-01.ttl0
-rw-r--r--tests/tests-ttl/turtle-syntax-file-02.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-file-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-kw-01.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-kw-02.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-kw-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-lists-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-lists-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-lists-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-lists-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-lists-05.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-number-01.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-number-02.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-number-03.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-number-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-number-05.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-number-06.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-number-07.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-number-08.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-number-09.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-number-10.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-number-11.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-pname-esc-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-pname-esc-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-pname-esc-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-prefix-01.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-prefix-02.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-prefix-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-prefix-04.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-prefix-05.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-prefix-06.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-prefix-07.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-prefix-08.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-prefix-09.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-str-esc-01.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-str-esc-02.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-str-esc-03.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-string-01.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-string-02.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-string-03.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-string-04.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-string-05.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-string-06.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-string-07.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-string-08.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-string-09.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-string-10.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-string-11.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-struct-01.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-struct-02.ttl3
-rw-r--r--tests/tests-ttl/turtle-syntax-struct-03.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-struct-04.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-struct-05.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-uri-01.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-uri-02.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-uri-03.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-uri-04.ttl3
206 files changed, 1913 insertions, 0 deletions
diff --git a/tests/tests-ttl/LICENSE b/tests/tests-ttl/LICENSE
new file mode 100644
index 00000000..35eb3db2
--- /dev/null
+++ b/tests/tests-ttl/LICENSE
@@ -0,0 +1,40 @@
+## License for RDF 1.1 Trutle test Suite.
+##
+## By obtaining, using and/or copying this work, you (the licensee) agree that
+## you have read, understood, and will comply with the following terms and
+## conditions.
+##
+## Permission to copy, modify, and distribute this software and its
+## documentation, with or without modification, for any purpose and without
+## fee or royalty is hereby granted, provided that you include the following
+## on ALL copies of the software and documentation or portions thereof,
+## including modifications:
+##
+## * The full text of this NOTICE in a location viewable to users of the
+## redistributed or derivative work.
+##
+## * Any pre-existing intellectual property disclaimers, notices, or terms and
+## conditions. If none exist, the W3C Software Short Notice should be included
+## (hypertext is preferred, text is permitted) within the body of any
+## redistributed or derivative code.
+##
+## * Notice of any changes or modifications to the files, including the date
+## changes were made. (We recommend you provide URIs to the location from
+## which the code is derived.)
+##
+## Disclaimers
+##
+## THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
+## MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
+## NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
+## PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE
+## ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+##
+## COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+## CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
+## DOCUMENTATION.
+##
+## The name and trademarks of copyright holders may NOT be used in advertising
+## or publicity pertaining to the software without specific, written prior
+## permission. Title to copyright in this software and any associated
+## documentation will at all times remain with copyright holders.
diff --git a/tests/tests-ttl/README b/tests/tests-ttl/README
new file mode 100644
index 00000000..83ef182b
--- /dev/null
+++ b/tests/tests-ttl/README
@@ -0,0 +1 @@
+See http://www.w3.org/2011/rdf-wg/wiki/Turtle_Test_Suite for details.
diff --git a/tests/tests-ttl/manifest.ttl b/tests/tests-ttl/manifest.ttl
new file mode 100644
index 00000000..f149f451
--- /dev/null
+++ b/tests/tests-ttl/manifest.ttl
@@ -0,0 +1,1276 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Test named *subm* are (c) W3C and taken from the Trutle submission.
+
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
+@prefix qt: <http://www.w3.org/2001/sw/DataAccess/tests/test-query#> .
+
+@prefix rdft: <http://www.w3.org/ns/rdftest#> .
+
+<> rdf:type mf:Manifest ;
+ rdfs:comment "Turtle tests" ;
+ mf:entries
+ (
+ <#turtle-syntax-file-01>
+ <#turtle-syntax-file-02>
+ <#turtle-syntax-file-03>
+ <#turtle-syntax-uri-01>
+ <#turtle-syntax-uri-02>
+ <#turtle-syntax-uri-03>
+ <#turtle-syntax-uri-04>
+ <#turtle-syntax-base-01>
+ <#turtle-syntax-base-02>
+ <#turtle-syntax-base-03>
+ <#turtle-syntax-base-04>
+ <#turtle-syntax-prefix-01>
+ <#turtle-syntax-prefix-02>
+ <#turtle-syntax-prefix-03>
+ <#turtle-syntax-prefix-04>
+ <#turtle-syntax-prefix-05>
+ <#turtle-syntax-prefix-06>
+ <#turtle-syntax-prefix-07>
+ <#turtle-syntax-prefix-08>
+ <#turtle-syntax-prefix-09>
+ <#turtle-syntax-string-01>
+ <#turtle-syntax-string-02>
+ <#turtle-syntax-string-03>
+ <#turtle-syntax-string-04>
+ <#turtle-syntax-string-05>
+ <#turtle-syntax-string-06>
+ <#turtle-syntax-string-07>
+ <#turtle-syntax-string-08>
+ <#turtle-syntax-string-09>
+ <#turtle-syntax-string-10>
+ <#turtle-syntax-string-11>
+ <#turtle-syntax-str-esc-01>
+ <#turtle-syntax-str-esc-02>
+ <#turtle-syntax-str-esc-03>
+ <#turtle-syntax-pname-esc-01>
+ <#turtle-syntax-pname-esc-02>
+ <#turtle-syntax-pname-esc-03>
+ <#turtle-syntax-bnode-01>
+ <#turtle-syntax-bnode-02>
+ <#turtle-syntax-bnode-03>
+ <#turtle-syntax-bnode-04>
+ <#turtle-syntax-bnode-05>
+ <#turtle-syntax-bnode-06>
+ <#turtle-syntax-bnode-07>
+ <#turtle-syntax-bnode-08>
+ <#turtle-syntax-bnode-09>
+ <#turtle-syntax-bnode-10>
+ <#turtle-syntax-number-01>
+ <#turtle-syntax-number-02>
+ <#turtle-syntax-number-03>
+ <#turtle-syntax-number-04>
+ <#turtle-syntax-number-05>
+ <#turtle-syntax-number-06>
+ <#turtle-syntax-number-07>
+ <#turtle-syntax-number-08>
+ <#turtle-syntax-number-09>
+ <#turtle-syntax-number-10>
+ <#turtle-syntax-number-11>
+ <#turtle-syntax-datatypes-01>
+ <#turtle-syntax-datatypes-02>
+ <#turtle-syntax-kw-01>
+ <#turtle-syntax-kw-02>
+ <#turtle-syntax-kw-03>
+ <#turtle-syntax-struct-01>
+ <#turtle-syntax-struct-02>
+ <#turtle-syntax-struct-03>
+ <#turtle-syntax-struct-04>
+ <#turtle-syntax-struct-05>
+ <#turtle-syntax-lists-01>
+ <#turtle-syntax-lists-02>
+ <#turtle-syntax-lists-03>
+ <#turtle-syntax-lists-04>
+ <#turtle-syntax-lists-05>
+ <#turtle-syntax-bad-uri-01>
+ <#turtle-syntax-bad-uri-02>
+ <#turtle-syntax-bad-uri-03>
+ <#turtle-syntax-bad-uri-04>
+ <#turtle-syntax-bad-uri-05>
+ <#turtle-syntax-bad-prefix-01>
+ <#turtle-syntax-bad-prefix-02>
+ <#turtle-syntax-bad-prefix-03>
+ <#turtle-syntax-bad-prefix-04>
+ <#turtle-syntax-bad-prefix-05>
+ <#turtle-syntax-bad-base-01>
+ <#turtle-syntax-bad-base-02>
+ <#turtle-syntax-bad-base-03>
+ <#turtle-syntax-bad-struct-01>
+ <#turtle-syntax-bad-struct-02>
+ <#turtle-syntax-bad-struct-03>
+ <#turtle-syntax-bad-struct-04>
+ <#turtle-syntax-bad-struct-05>
+ <#turtle-syntax-bad-struct-06>
+ <#turtle-syntax-bad-struct-07>
+ <#turtle-syntax-bad-kw-01>
+ <#turtle-syntax-bad-kw-02>
+ <#turtle-syntax-bad-kw-03>
+ <#turtle-syntax-bad-kw-04>
+ <#turtle-syntax-bad-kw-05>
+ <#turtle-syntax-bad-n3-extras-01>
+ <#turtle-syntax-bad-n3-extras-02>
+ <#turtle-syntax-bad-n3-extras-03>
+ <#turtle-syntax-bad-n3-extras-04>
+ <#turtle-syntax-bad-n3-extras-05>
+ <#turtle-syntax-bad-n3-extras-06>
+ <#turtle-syntax-bad-n3-extras-07>
+ <#turtle-syntax-bad-n3-extras-08>
+ <#turtle-syntax-bad-n3-extras-09>
+ <#turtle-syntax-bad-n3-extras-10>
+ <#turtle-syntax-bad-n3-extras-11>
+ <#turtle-syntax-bad-n3-extras-12>
+ <#turtle-syntax-bad-n3-extras-13>
+ <#turtle-syntax-bad-struct-08>
+ <#turtle-syntax-bad-struct-09>
+ <#turtle-syntax-bad-struct-10>
+ <#turtle-syntax-bad-struct-11>
+ <#turtle-syntax-bad-struct-12>
+ <#turtle-syntax-bad-struct-13>
+ <#turtle-syntax-bad-struct-14>
+ <#turtle-syntax-bad-struct-15>
+ <#turtle-syntax-bad-struct-16>
+ <#turtle-syntax-bad-struct-17>
+ <#turtle-syntax-bad-lang-01>
+ <#turtle-syntax-bad-esc-01>
+ <#turtle-syntax-bad-esc-02>
+ <#turtle-syntax-bad-esc-03>
+ <#turtle-syntax-bad-esc-04>
+ <#turtle-syntax-bad-pname-01>
+ <#turtle-syntax-bad-pname-02>
+ <#turtle-syntax-bad-pname-03>
+ <#turtle-syntax-bad-string-01>
+ <#turtle-syntax-bad-string-02>
+ <#turtle-syntax-bad-string-03>
+ <#turtle-syntax-bad-string-04>
+ <#turtle-syntax-bad-string-05>
+ <#turtle-syntax-bad-string-06>
+ <#turtle-syntax-bad-string-07>
+ <#turtle-syntax-bad-num-01>
+ <#turtle-syntax-bad-num-02>
+ <#turtle-syntax-bad-num-03>
+ <#turtle-syntax-bad-num-04>
+ <#turtle-syntax-bad-num-05>
+ <#turtle-eval-struct-01>
+ <#turtle-eval-struct-02>
+ <#turtle-subm-01>
+ <#turtle-subm-02>
+ <#turtle-subm-03>
+ <#turtle-subm-04>
+ <#turtle-subm-05>
+ <#turtle-subm-06>
+ <#turtle-subm-07>
+ <#turtle-subm-08>
+ <#turtle-subm-09>
+ <#turtle-subm-10>
+ <#turtle-subm-11>
+ <#turtle-subm-12>
+ <#turtle-subm-13>
+ <#turtle-subm-14>
+ <#turtle-subm-15>
+ <#turtle-subm-16>
+ <#turtle-subm-17>
+ <#turtle-subm-18>
+ <#turtle-subm-19>
+ <#turtle-subm-20>
+ <#turtle-subm-21>
+ <#turtle-subm-22>
+ <#turtle-subm-23>
+ <#turtle-subm-24>
+ <#turtle-subm-25>
+ <#turtle-subm-26>
+ <#turtle-subm-27>
+ <#turtle-eval-bad-01>
+ <#turtle-eval-bad-02>
+ <#turtle-eval-bad-03>
+ <#turtle-eval-bad-04>
+ ) .
+
+<#turtle-syntax-file-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-file-01" ;
+ rdfs:comment "Empty file" ;
+ mf:action <turtle-syntax-file-01.ttl> ;
+ .
+
+<#turtle-syntax-file-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-file-02" ;
+ rdfs:comment "Only comment" ;
+ mf:action <turtle-syntax-file-02.ttl> ;
+ .
+
+<#turtle-syntax-file-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-file-03" ;
+ rdfs:comment "One comment, one empty line" ;
+ mf:action <turtle-syntax-file-03.ttl> ;
+ .
+
+<#turtle-syntax-uri-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-uri-01" ;
+ rdfs:comment "Only IRIs" ;
+ mf:action <turtle-syntax-uri-01.ttl> ;
+ .
+
+<#turtle-syntax-uri-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-uri-02" ;
+ rdfs:comment "IRIs with Unicode escape" ;
+ mf:action <turtle-syntax-uri-02.ttl> ;
+ .
+
+<#turtle-syntax-uri-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-uri-03" ;
+ rdfs:comment "IRIs with long Unicode escape" ;
+ mf:action <turtle-syntax-uri-03.ttl> ;
+ .
+
+<#turtle-syntax-uri-04> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-uri-04" ;
+ rdfs:comment "Legal IRIs" ;
+ mf:action <turtle-syntax-uri-04.ttl> ;
+ .
+
+<#turtle-syntax-base-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-base-01" ;
+ rdfs:comment "@base" ;
+ mf:action <turtle-syntax-base-01.ttl> ;
+ .
+
+<#turtle-syntax-base-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-base-02" ;
+ rdfs:comment "BASE" ;
+ mf:action <turtle-syntax-base-02.ttl> ;
+ .
+
+<#turtle-syntax-base-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-base-03" ;
+ rdfs:comment "@base with relative IRIs" ;
+ mf:action <turtle-syntax-base-03.ttl> ;
+ .
+
+<#turtle-syntax-base-04> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-base-04" ;
+ rdfs:comment "base with relative IRIs" ;
+ mf:action <turtle-syntax-base-04.ttl> ;
+ .
+
+<#turtle-syntax-prefix-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-prefix-01" ;
+ rdfs:comment "@prefix" ;
+ mf:action <turtle-syntax-prefix-01.ttl> ;
+ .
+
+<#turtle-syntax-prefix-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-prefix-02" ;
+ rdfs:comment "PreFIX" ;
+ mf:action <turtle-syntax-prefix-02.ttl> ;
+ .
+
+<#turtle-syntax-prefix-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-prefix-03" ;
+ rdfs:comment "Empty PREFIX" ;
+ mf:action <turtle-syntax-prefix-03.ttl> ;
+ .
+
+<#turtle-syntax-prefix-04> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-prefix-04" ;
+ rdfs:comment "Empty @prefix with % escape" ;
+ mf:action <turtle-syntax-prefix-04.ttl> ;
+ .
+
+<#turtle-syntax-prefix-05> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-prefix-05" ;
+ rdfs:comment "@prefix with no suffix" ;
+ mf:action <turtle-syntax-prefix-05.ttl> ;
+ .
+
+<#turtle-syntax-prefix-06> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-prefix-06" ;
+ rdfs:comment "colon is a legal pname character" ;
+ mf:action <turtle-syntax-prefix-06.ttl> ;
+ .
+
+<#turtle-syntax-prefix-07> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-prefix-07" ;
+ rdfs:comment "dash is a legal pname character" ;
+ mf:action <turtle-syntax-prefix-07.ttl> ;
+ .
+
+<#turtle-syntax-prefix-08> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-prefix-08" ;
+ rdfs:comment "underscore is a legal pname character" ;
+ mf:action <turtle-syntax-prefix-08.ttl> ;
+ .
+
+<#turtle-syntax-prefix-09> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-prefix-09" ;
+ rdfs:comment "percents in pnames" ;
+ mf:action <turtle-syntax-prefix-09.ttl> ;
+ .
+
+<#turtle-syntax-string-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-01" ;
+ rdfs:comment "string literal" ;
+ mf:action <turtle-syntax-string-01.ttl> ;
+ .
+
+<#turtle-syntax-string-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-02" ;
+ rdfs:comment "langString literal" ;
+ mf:action <turtle-syntax-string-02.ttl> ;
+ .
+
+<#turtle-syntax-string-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-03" ;
+ rdfs:comment "langString literal with region" ;
+ mf:action <turtle-syntax-string-03.ttl> ;
+ .
+
+<#turtle-syntax-string-04> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-04" ;
+ rdfs:comment "squote string literal" ;
+ mf:action <turtle-syntax-string-04.ttl> ;
+ .
+
+<#turtle-syntax-string-05> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-05" ;
+ rdfs:comment "squote langString literal" ;
+ mf:action <turtle-syntax-string-05.ttl> ;
+ .
+
+<#turtle-syntax-string-06> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-06" ;
+ rdfs:comment "squote langString literal with region" ;
+ mf:action <turtle-syntax-string-06.ttl> ;
+ .
+
+<#turtle-syntax-string-07> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-07" ;
+ rdfs:comment "long string literal with embedded single- and double-quotes" ;
+ mf:action <turtle-syntax-string-07.ttl> ;
+ .
+
+<#turtle-syntax-string-08> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-08" ;
+ rdfs:comment "long string literal with embedded newline" ;
+ mf:action <turtle-syntax-string-08.ttl> ;
+ .
+
+<#turtle-syntax-string-09> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-09" ;
+ rdfs:comment "squote long string literal with embedded single- and double-quotes" ;
+ mf:action <turtle-syntax-string-09.ttl> ;
+ .
+
+<#turtle-syntax-string-10> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-10" ;
+ rdfs:comment "long langString literal with embedded newline" ;
+ mf:action <turtle-syntax-string-10.ttl> ;
+ .
+
+<#turtle-syntax-string-11> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-string-11" ;
+ rdfs:comment "squote long langString literal with embedded newline" ;
+ mf:action <turtle-syntax-string-11.ttl> ;
+ .
+
+<#turtle-syntax-str-esc-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-str-esc-01" ;
+ rdfs:comment "string literal with escaped newline" ;
+ mf:action <turtle-syntax-str-esc-01.ttl> ;
+ .
+
+<#turtle-syntax-str-esc-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-str-esc-02" ;
+ rdfs:comment "string literal with Unicode escape" ;
+ mf:action <turtle-syntax-str-esc-02.ttl> ;
+ .
+
+<#turtle-syntax-str-esc-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-str-esc-03" ;
+ rdfs:comment "string literal with long Unicode escape" ;
+ mf:action <turtle-syntax-str-esc-03.ttl> ;
+ .
+
+<#turtle-syntax-pname-esc-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-pname-esc-01" ;
+ rdfs:comment "pname with back-slash escapes" ;
+ mf:action <turtle-syntax-pname-esc-01.ttl> ;
+ .
+
+<#turtle-syntax-pname-esc-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-pname-esc-02" ;
+ rdfs:comment "pname with back-slash escapes (2)" ;
+ mf:action <turtle-syntax-pname-esc-02.ttl> ;
+ .
+
+<#turtle-syntax-pname-esc-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-pname-esc-03" ;
+ rdfs:comment "pname with back-slash escapes (3)" ;
+ mf:action <turtle-syntax-pname-esc-03.ttl> ;
+ .
+
+<#turtle-syntax-bnode-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-bnode-01" ;
+ rdfs:comment "bnode subject" ;
+ mf:action <turtle-syntax-bnode-01.ttl> ;
+ .
+
+<#turtle-syntax-bnode-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-bnode-02" ;
+ rdfs:comment "bnode object" ;
+ mf:action <turtle-syntax-bnode-02.ttl> ;
+ .
+
+<#turtle-syntax-bnode-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-bnode-03" ;
+ rdfs:comment "bnode property list object" ;
+ mf:action <turtle-syntax-bnode-03.ttl> ;
+ .
+
+<#turtle-syntax-bnode-04> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-bnode-04" ;
+ rdfs:comment "bnode property list object (2)" ;
+ mf:action <turtle-syntax-bnode-04.ttl> ;
+ .
+
+<#turtle-syntax-bnode-05> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-bnode-05" ;
+ rdfs:comment "bnode property list subject" ;
+ mf:action <turtle-syntax-bnode-05.ttl> ;
+ .
+
+<#turtle-syntax-bnode-06> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-bnode-06" ;
+ rdfs:comment "labeled bnode subject" ;
+ mf:action <turtle-syntax-bnode-06.ttl> ;
+ .
+
+<#turtle-syntax-bnode-07> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-bnode-07" ;
+ rdfs:comment "labeled bnode subject and object" ;
+ mf:action <turtle-syntax-bnode-07.ttl> ;
+ .
+
+<#turtle-syntax-bnode-08> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-bnode-08" ;
+ rdfs:comment "bare bnode property list" ;
+ mf:action <turtle-syntax-bnode-08.ttl> ;
+ .
+
+<#turtle-syntax-bnode-09> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-bnode-09" ;
+ rdfs:comment "bnode property list" ;
+ mf:action <turtle-syntax-bnode-09.ttl> ;
+ .
+
+<#turtle-syntax-bnode-10> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-bnode-10" ;
+ rdfs:comment "mixed bnode property list and triple" ;
+ mf:action <turtle-syntax-bnode-10.ttl> ;
+ .
+
+<#turtle-syntax-number-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-01" ;
+ rdfs:comment "integer literal" ;
+ mf:action <turtle-syntax-number-01.ttl> ;
+ .
+
+<#turtle-syntax-number-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-02" ;
+ rdfs:comment "negative integer literal" ;
+ mf:action <turtle-syntax-number-02.ttl> ;
+ .
+
+<#turtle-syntax-number-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-03" ;
+ rdfs:comment "positive integer literal" ;
+ mf:action <turtle-syntax-number-03.ttl> ;
+ .
+
+<#turtle-syntax-number-04> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-04" ;
+ rdfs:comment "decimal literal" ;
+ mf:action <turtle-syntax-number-04.ttl> ;
+ .
+
+<#turtle-syntax-number-05> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-05" ;
+ rdfs:comment "decimal literal (no leading digits)" ;
+ mf:action <turtle-syntax-number-05.ttl> ;
+ .
+
+<#turtle-syntax-number-06> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-06" ;
+ rdfs:comment "negative decimal literal" ;
+ mf:action <turtle-syntax-number-06.ttl> ;
+ .
+
+<#turtle-syntax-number-07> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-07" ;
+ rdfs:comment "positive decimal literal" ;
+ mf:action <turtle-syntax-number-07.ttl> ;
+ .
+
+<#turtle-syntax-number-08> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-08" ;
+ rdfs:comment "integer literal with decimal lexical confusion" ;
+ mf:action <turtle-syntax-number-08.ttl> ;
+ .
+
+<#turtle-syntax-number-09> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-09" ;
+ rdfs:comment "double literal" ;
+ mf:action <turtle-syntax-number-09.ttl> ;
+ .
+
+<#turtle-syntax-number-10> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-10" ;
+ rdfs:comment "negative double literal" ;
+ mf:action <turtle-syntax-number-10.ttl> ;
+ .
+
+<#turtle-syntax-number-11> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-number-11" ;
+ rdfs:comment "double literal no fraction" ;
+ mf:action <turtle-syntax-number-11.ttl> ;
+ .
+
+<#turtle-syntax-datatypes-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-datatypes-01" ;
+ rdfs:comment "xsd:byte literal" ;
+ mf:action <turtle-syntax-datatypes-01.ttl> ;
+ .
+
+<#turtle-syntax-datatypes-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-datatypes-02" ;
+ rdfs:comment "integer as xsd:string" ;
+ mf:action <turtle-syntax-datatypes-02.ttl> ;
+ .
+
+<#turtle-syntax-kw-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-kw-01" ;
+ rdfs:comment "boolean literal (true)" ;
+ mf:action <turtle-syntax-kw-01.ttl> ;
+ .
+
+<#turtle-syntax-kw-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-kw-02" ;
+ rdfs:comment "boolean literal (false)" ;
+ mf:action <turtle-syntax-kw-02.ttl> ;
+ .
+
+<#turtle-syntax-kw-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-kw-03" ;
+ rdfs:comment "'a' as keyword" ;
+ mf:action <turtle-syntax-kw-03.ttl> ;
+ .
+
+<#turtle-syntax-struct-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-struct-01" ;
+ rdfs:comment "object list" ;
+ mf:action <turtle-syntax-struct-01.ttl> ;
+ .
+
+<#turtle-syntax-struct-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-struct-02" ;
+ rdfs:comment "predicate list with object list" ;
+ mf:action <turtle-syntax-struct-02.ttl> ;
+ .
+
+<#turtle-syntax-struct-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-struct-03" ;
+ rdfs:comment "predicate list with object list and dangling ';'" ;
+ mf:action <turtle-syntax-struct-03.ttl> ;
+ .
+
+<#turtle-syntax-struct-04> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-struct-04" ;
+ rdfs:comment "predicate list with multiple ;;" ;
+ mf:action <turtle-syntax-struct-04.ttl> ;
+ .
+
+<#turtle-syntax-struct-05> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-struct-05" ;
+ rdfs:comment "predicate list with multiple ;;" ;
+ mf:action <turtle-syntax-struct-05.ttl> ;
+ .
+
+<#turtle-syntax-lists-01> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-lists-01" ;
+ rdfs:comment "empty list" ;
+ mf:action <turtle-syntax-lists-01.ttl> ;
+ .
+
+<#turtle-syntax-lists-02> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-lists-02" ;
+ rdfs:comment "mixed list" ;
+ mf:action <turtle-syntax-lists-02.ttl> ;
+ .
+
+<#turtle-syntax-lists-03> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-lists-03" ;
+ rdfs:comment "isomorphic list as subject and object" ;
+ mf:action <turtle-syntax-lists-03.ttl> ;
+ .
+
+<#turtle-syntax-lists-04> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-lists-04" ;
+ rdfs:comment "lists of lists" ;
+ mf:action <turtle-syntax-lists-04.ttl> ;
+ .
+
+<#turtle-syntax-lists-05> rdf:type rdft:TestTurtlePositiveSyntax ;
+ mf:name "turtle-syntax-lists-05" ;
+ rdfs:comment "mixed lists with embedded lists" ;
+ mf:action <turtle-syntax-lists-05.ttl> ;
+ .
+
+<#turtle-syntax-bad-uri-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-uri-01" ;
+ rdfs:comment "Bad IRI : space (negative test)" ;
+ mf:action <turtle-syntax-bad-uri-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-uri-02> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-uri-02" ;
+ rdfs:comment "Bad IRI : bad escape (negative test)" ;
+ mf:action <turtle-syntax-bad-uri-02.ttl> ;
+ .
+
+<#turtle-syntax-bad-uri-03> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-uri-03" ;
+ rdfs:comment "Bad IRI : bad long escape (negative test)" ;
+ mf:action <turtle-syntax-bad-uri-03.ttl> ;
+ .
+
+<#turtle-syntax-bad-uri-04> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-uri-04" ;
+ rdfs:comment "Bad IRI : character escapes not allowed (negative test)" ;
+ mf:action <turtle-syntax-bad-uri-04.ttl> ;
+ .
+
+<#turtle-syntax-bad-uri-05> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-uri-05" ;
+ rdfs:comment "Bad IRI : character escapes not allowed (2) (negative test)" ;
+ mf:action <turtle-syntax-bad-uri-05.ttl> ;
+ .
+
+<#turtle-syntax-bad-prefix-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-prefix-01" ;
+ rdfs:comment "No prefix (negative test)" ;
+ mf:action <turtle-syntax-bad-prefix-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-prefix-02> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-prefix-02" ;
+ rdfs:comment "No prefix (2) (negative test)" ;
+ mf:action <turtle-syntax-bad-prefix-02.ttl> ;
+ .
+
+<#turtle-syntax-bad-prefix-03> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-prefix-03" ;
+ rdfs:comment "@prefix without URI (negative test)" ;
+ mf:action <turtle-syntax-bad-prefix-03.ttl> ;
+ .
+
+<#turtle-syntax-bad-prefix-04> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-prefix-04" ;
+ rdfs:comment "@prefix without prefix name (negative test)" ;
+ mf:action <turtle-syntax-bad-prefix-04.ttl> ;
+ .
+
+<#turtle-syntax-bad-prefix-05> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-prefix-05" ;
+ rdfs:comment "@prefix without ':' (negative test)" ;
+ mf:action <turtle-syntax-bad-prefix-05.ttl> ;
+ .
+
+<#turtle-syntax-bad-base-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-base-01" ;
+ rdfs:comment "@base without URI (negative test)" ;
+ mf:action <turtle-syntax-bad-base-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-base-02> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-base-02" ;
+ rdfs:comment "@base in wrong case (negative test)" ;
+ mf:action <turtle-syntax-bad-base-02.ttl> ;
+ .
+
+<#turtle-syntax-bad-base-03> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-base-03" ;
+ rdfs:comment "BASE without URI (negative test)" ;
+ mf:action <turtle-syntax-bad-base-03.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-01" ;
+ rdfs:comment "Turtle is not TriG (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-02> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-02" ;
+ rdfs:comment "Turtle is not N3 (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-02.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-03> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-03" ;
+ rdfs:comment "Turtle is not NQuads (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-03.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-04> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-04" ;
+ rdfs:comment "Turtle does not allow literals-as-subjects (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-04.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-05> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-05" ;
+ rdfs:comment "Turtle does not allow literals-as-predicates (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-05.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-06> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-06" ;
+ rdfs:comment "Turtle does not allow bnodes-as-predicates (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-06.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-07> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-07" ;
+ rdfs:comment "Turtle does not allow labeled bnodes-as-predicates (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-07.ttl> ;
+ .
+
+<#turtle-syntax-bad-kw-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-kw-01" ;
+ rdfs:comment "'A' is not a keyword (negative test)" ;
+ mf:action <turtle-syntax-bad-kw-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-kw-02> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-kw-02" ;
+ rdfs:comment "'a' cannot be used as subject (negative test)" ;
+ mf:action <turtle-syntax-bad-kw-02.ttl> ;
+ .
+
+<#turtle-syntax-bad-kw-03> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-kw-03" ;
+ rdfs:comment "'a' cannot be used as object (negative test)" ;
+ mf:action <turtle-syntax-bad-kw-03.ttl> ;
+ .
+
+<#turtle-syntax-bad-kw-04> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-kw-04" ;
+ rdfs:comment "'true' cannot be used as subject (negative test)" ;
+ mf:action <turtle-syntax-bad-kw-04.ttl> ;
+ .
+
+<#turtle-syntax-bad-kw-05> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-kw-05" ;
+ rdfs:comment "'true' cannot be used as object (negative test)" ;
+ mf:action <turtle-syntax-bad-kw-05.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-01" ;
+ rdfs:comment "{} fomulae not in Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-02> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-02" ;
+ rdfs:comment "= is not Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-02.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-03> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-03" ;
+ rdfs:comment "N3 paths not in Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-03.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-04> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-04" ;
+ rdfs:comment "N3 paths not in Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-04.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-05> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-05" ;
+ rdfs:comment "N3 is...of not in Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-05.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-06> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-06" ;
+ rdfs:comment "N3 paths not in Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-06.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-07> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-07" ;
+ rdfs:comment "@keywords is not Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-07.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-08> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-08" ;
+ rdfs:comment "@keywords is not Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-08.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-09> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-09" ;
+ rdfs:comment "=> is not Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-09.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-10> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-10" ;
+ rdfs:comment "<= is not Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-10.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-11> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-11" ;
+ rdfs:comment "@forSome is not Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-11.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-12> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-12" ;
+ rdfs:comment "@forAll is not Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-12.ttl> ;
+ .
+
+<#turtle-syntax-bad-n3-extras-13> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-n3-extras-13" ;
+ rdfs:comment "@keywords is not Turtle (negative test)" ;
+ mf:action <turtle-syntax-bad-n3-extras-13.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-08> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-08" ;
+ rdfs:comment "missing '.' (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-08.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-09> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-09" ;
+ rdfs:comment "extra '.' (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-09.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-10> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-10" ;
+ rdfs:comment "extra '.' (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-10.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-11> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-11" ;
+ rdfs:comment "trailing ';' no '.' (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-11.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-12> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-12" ;
+ rdfs:comment "subject, predicate, no object (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-12.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-13> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-13" ;
+ rdfs:comment "subject, predicate, no object (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-13.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-14> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-14" ;
+ rdfs:comment "literal as subject (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-14.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-15> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-15" ;
+ rdfs:comment "literal as predicate (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-15.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-16> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-16" ;
+ rdfs:comment "bnode as predicate (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-16.ttl> ;
+ .
+
+<#turtle-syntax-bad-struct-17> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-struct-17" ;
+ rdfs:comment "labeled bnode as predicate (negative test)" ;
+ mf:action <turtle-syntax-bad-struct-17.ttl> ;
+ .
+
+<#turtle-syntax-bad-lang-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-lang-01" ;
+ rdfs:comment "langString with bad lang (negative test)" ;
+ mf:action <turtle-syntax-bad-lang-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-esc-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-esc-01" ;
+ rdfs:comment "Bad string escape (negative test)" ;
+ mf:action <turtle-syntax-bad-esc-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-esc-02> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-esc-02" ;
+ rdfs:comment "Bad string escape (negative test)" ;
+ mf:action <turtle-syntax-bad-esc-02.ttl> ;
+ .
+
+<#turtle-syntax-bad-esc-03> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-esc-03" ;
+ rdfs:comment "Bad string escape (negative test)" ;
+ mf:action <turtle-syntax-bad-esc-03.ttl> ;
+ .
+
+<#turtle-syntax-bad-esc-04> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-esc-04" ;
+ rdfs:comment "Bad string escape (negative test)" ;
+ mf:action <turtle-syntax-bad-esc-04.ttl> ;
+ .
+
+<#turtle-syntax-bad-pname-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-pname-01" ;
+ rdfs:comment "'~' must be escaped in pname (negative test)" ;
+ mf:action <turtle-syntax-bad-pname-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-pname-02> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-pname-02" ;
+ rdfs:comment "Bad %-sequence in pname (negative test)" ;
+ mf:action <turtle-syntax-bad-pname-02.ttl> ;
+ .
+
+<#turtle-syntax-bad-pname-03> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-pname-03" ;
+ rdfs:comment "Bad unicode escape in pname (negative test)" ;
+ mf:action <turtle-syntax-bad-pname-03.ttl> ;
+ .
+
+<#turtle-syntax-bad-string-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-string-01" ;
+ rdfs:comment "mismatching string literal open/close (negative test)" ;
+ mf:action <turtle-syntax-bad-string-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-string-02> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-string-02" ;
+ rdfs:comment "mismatching string literal open/close (negative test)" ;
+ mf:action <turtle-syntax-bad-string-02.ttl> ;
+ .
+
+<#turtle-syntax-bad-string-03> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-string-03" ;
+ rdfs:comment "mismatching string literal long/short (negative test)" ;
+ mf:action <turtle-syntax-bad-string-03.ttl> ;
+ .
+
+<#turtle-syntax-bad-string-04> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-string-04" ;
+ rdfs:comment "mismatching long string literal open/close (negative test)" ;
+ mf:action <turtle-syntax-bad-string-04.ttl> ;
+ .
+
+<#turtle-syntax-bad-string-05> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-string-05" ;
+ rdfs:comment "Long literal with missing end (negative test)" ;
+ mf:action <turtle-syntax-bad-string-05.ttl> ;
+ .
+
+<#turtle-syntax-bad-string-06> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-string-06" ;
+ rdfs:comment "Long literal with extra quote (negative test)" ;
+ mf:action <turtle-syntax-bad-string-06.ttl> ;
+ .
+
+<#turtle-syntax-bad-string-07> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-string-07" ;
+ rdfs:comment "Long literal with extra squote (negative test)" ;
+ mf:action <turtle-syntax-bad-string-07.ttl> ;
+ .
+
+<#turtle-syntax-bad-num-01> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-num-01" ;
+ rdfs:comment "Bad number format (negative test)" ;
+ mf:action <turtle-syntax-bad-num-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-num-02> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-num-02" ;
+ rdfs:comment "Bad number format (negative test)" ;
+ mf:action <turtle-syntax-bad-num-02.ttl> ;
+ .
+
+<#turtle-syntax-bad-num-03> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-num-03" ;
+ rdfs:comment "Bad number format (negative test)" ;
+ mf:action <turtle-syntax-bad-num-03.ttl> ;
+ .
+
+<#turtle-syntax-bad-num-04> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-num-04" ;
+ rdfs:comment "Bad number format (negative test)" ;
+ mf:action <turtle-syntax-bad-num-04.ttl> ;
+ .
+
+<#turtle-syntax-bad-num-05> rdf:type rdft:TestTurtleNegativeSyntax ;
+ mf:name "turtle-syntax-bad-num-05" ;
+ rdfs:comment "Bad number format (negative test)" ;
+ mf:action <turtle-syntax-bad-num-05.ttl> ;
+ .
+
+<#turtle-eval-struct-01> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-eval-struct-01" ;
+ rdfs:comment "triple with IRIs" ;
+ mf:action <turtle-eval-struct-01.ttl> ;
+ mf:result <turtle-eval-struct-01.nt> ;
+ .
+
+<#turtle-eval-struct-02> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-eval-struct-02" ;
+ rdfs:comment "triple with IRIs and embedded whitespace" ;
+ mf:action <turtle-eval-struct-02.ttl> ;
+ mf:result <turtle-eval-struct-02.nt> ;
+ .
+
+<#turtle-subm-01> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-01" ;
+ rdfs:comment "Blank subject" ;
+ mf:action <turtle-subm-01.ttl> ;
+ mf:result <turtle-subm-01.nt> ;
+ .
+
+<#turtle-subm-02> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-02" ;
+ rdfs:comment "@prefix and qnames" ;
+ mf:action <turtle-subm-02.ttl> ;
+ mf:result <turtle-subm-02.nt> ;
+ .
+
+<#turtle-subm-03> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-03" ;
+ rdfs:comment ", operator" ;
+ mf:action <turtle-subm-03.ttl> ;
+ mf:result <turtle-subm-03.nt> ;
+ .
+
+<#turtle-subm-04> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-04" ;
+ rdfs:comment "; operator" ;
+ mf:action <turtle-subm-04.ttl> ;
+ mf:result <turtle-subm-04.nt> ;
+ .
+
+<#turtle-subm-05> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-05" ;
+ rdfs:comment "empty [] as subject and object" ;
+ mf:action <turtle-subm-05.ttl> ;
+ mf:result <turtle-subm-05.nt> ;
+ .
+
+<#turtle-subm-06> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-06" ;
+ rdfs:comment "non-empty [] as subject and object" ;
+ mf:action <turtle-subm-06.ttl> ;
+ mf:result <turtle-subm-06.nt> ;
+ .
+
+<#turtle-subm-07> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-07" ;
+ rdfs:comment "'a' as predicate" ;
+ mf:action <turtle-subm-07.ttl> ;
+ mf:result <turtle-subm-07.nt> ;
+ .
+
+<#turtle-subm-08> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-08" ;
+ rdfs:comment "simple collection" ;
+ mf:action <turtle-subm-08.ttl> ;
+ mf:result <turtle-subm-08.nt> ;
+ .
+
+<#turtle-subm-09> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-09" ;
+ rdfs:comment "empty collection" ;
+ mf:action <turtle-subm-09.ttl> ;
+ mf:result <turtle-subm-09.nt> ;
+ .
+
+<#turtle-subm-10> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-10" ;
+ rdfs:comment "integer datatyped literal" ;
+ mf:action <turtle-subm-10.ttl> ;
+ mf:result <turtle-subm-10.nt> ;
+ .
+
+<#turtle-subm-11> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-11" ;
+ rdfs:comment "decimal integer canonicalization" ;
+ mf:action <turtle-subm-11.ttl> ;
+ mf:result <turtle-subm-11.nt> ;
+ .
+
+<#turtle-subm-12> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-12" ;
+ rdfs:comment "- and _ in names and qnames" ;
+ mf:action <turtle-subm-12.ttl> ;
+ mf:result <turtle-subm-12.nt> ;
+ .
+
+<#turtle-subm-13> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-13" ;
+ rdfs:comment "tests for rdf:_<numbers> and other qnames starting with _" ;
+ mf:action <turtle-subm-13.ttl> ;
+ mf:result <turtle-subm-13.nt> ;
+ .
+
+<#turtle-subm-14> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-14" ;
+ rdfs:comment "bare : allowed" ;
+ mf:action <turtle-subm-14.ttl> ;
+ mf:result <turtle-subm-14.nt> ;
+ .
+
+<#turtle-subm-15> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-15" ;
+ rdfs:comment "simple long literal" ;
+ mf:action <turtle-subm-15.ttl> ;
+ mf:result <turtle-subm-15.nt> ;
+ .
+
+<#turtle-subm-16> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-16" ;
+ rdfs:comment "long literals with escapes" ;
+ mf:action <turtle-subm-16.ttl> ;
+ mf:result <turtle-subm-16.nt> ;
+ .
+
+<#turtle-subm-17> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-17" ;
+ rdfs:comment "floating point number" ;
+ mf:action <turtle-subm-17.ttl> ;
+ mf:result <turtle-subm-17.nt> ;
+ .
+
+<#turtle-subm-18> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-18" ;
+ rdfs:comment "empty literals, normal and long variant" ;
+ mf:action <turtle-subm-18.ttl> ;
+ mf:result <turtle-subm-18.nt> ;
+ .
+
+<#turtle-subm-19> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-19" ;
+ rdfs:comment "positive integer, decimal and doubles" ;
+ mf:action <turtle-subm-19.ttl> ;
+ mf:result <turtle-subm-19.nt> ;
+ .
+
+<#turtle-subm-20> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-20" ;
+ rdfs:comment "negative integer, decimal and doubles" ;
+ mf:action <turtle-subm-20.ttl> ;
+ mf:result <turtle-subm-20.nt> ;
+ .
+
+<#turtle-subm-21> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-21" ;
+ rdfs:comment "long literal ending in double quote" ;
+ mf:action <turtle-subm-21.ttl> ;
+ mf:result <turtle-subm-21.nt> ;
+ .
+
+<#turtle-subm-22> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-22" ;
+ rdfs:comment "boolean literals" ;
+ mf:action <turtle-subm-22.ttl> ;
+ mf:result <turtle-subm-22.nt> ;
+ .
+
+<#turtle-subm-23> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-23" ;
+ rdfs:comment "comments" ;
+ mf:action <turtle-subm-23.ttl> ;
+ mf:result <turtle-subm-23.nt> ;
+ .
+
+<#turtle-subm-24> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-24" ;
+ rdfs:comment "no final mewline" ;
+ mf:action <turtle-subm-24.ttl> ;
+ mf:result <turtle-subm-24.nt> ;
+ .
+
+<#turtle-subm-25> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-25" ;
+ rdfs:comment "repeating a @prefix changes pname definition" ;
+ mf:action <turtle-subm-25.ttl> ;
+ mf:result <turtle-subm-25.nt> ;
+ .
+
+<#turtle-subm-26> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-26" ;
+ rdfs:comment "Variations on decimal canonicalization" ;
+ mf:action <turtle-subm-26.ttl> ;
+ mf:result <turtle-subm-26.nt> ;
+ .
+
+<#turtle-subm-27> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-subm-27" ;
+ rdfs:comment "Repeating @base changes base for relative IRI lookup" ;
+ mf:action <turtle-subm-27.ttl> ;
+ mf:result <turtle-subm-27.nt> ;
+ .
+
+<#turtle-eval-bad-01> rdf:type rdft:TestTurtleNegativeEval ;
+ mf:name "turtle-eval-bad-01" ;
+ rdfs:comment "Bad IRI : good escape, bad charcater (negative evaluation test)" ;
+ mf:action <turtle-eval-bad-01.ttl> ;
+ .
+
+<#turtle-eval-bad-02> rdf:type rdft:TestTurtleNegativeEval ;
+ mf:name "turtle-eval-bad-02" ;
+ rdfs:comment "Bad IRI : hex 3C is < (negative evaluation test)" ;
+ mf:action <turtle-eval-bad-02.ttl> ;
+ .
+
+<#turtle-eval-bad-03> rdf:type rdft:TestTurtleNegativeEval ;
+ mf:name "turtle-eval-bad-03" ;
+ rdfs:comment "Bad IRI : hex 3E is (negative evaluation test)" ;
+ mf:action <turtle-eval-bad-03.ttl> ;
+ .
+
+<#turtle-eval-bad-04> rdf:type rdft:TestTurtleNegativeEval ;
+ mf:name "turtle-eval-bad-04" ;
+ rdfs:comment "Bad IRI : {abc} (negative evaluation test)" ;
+ mf:action <turtle-eval-bad-04.ttl> ;
+ .
diff --git a/tests/tests-ttl/turtle-eval-bad-01.ttl b/tests/tests-ttl/turtle-eval-bad-01.ttl
new file mode 100644
index 00000000..dc58ca82
--- /dev/null
+++ b/tests/tests-ttl/turtle-eval-bad-01.ttl
@@ -0,0 +1,2 @@
+# Bad IRI : good escape, bad charcater
+<http://example/\u0020> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-eval-bad-02.ttl b/tests/tests-ttl/turtle-eval-bad-02.ttl
new file mode 100644
index 00000000..ef20d6ae
--- /dev/null
+++ b/tests/tests-ttl/turtle-eval-bad-02.ttl
@@ -0,0 +1,2 @@
+# Bad IRI : hex 3C is <
+<http://example/\u003C> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-eval-bad-03.ttl b/tests/tests-ttl/turtle-eval-bad-03.ttl
new file mode 100644
index 00000000..55ecd5b0
--- /dev/null
+++ b/tests/tests-ttl/turtle-eval-bad-03.ttl
@@ -0,0 +1,2 @@
+# Bad IRI : hex 3E is >
+<http://example/\u003E> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-eval-bad-04.ttl b/tests/tests-ttl/turtle-eval-bad-04.ttl
new file mode 100644
index 00000000..557418ff
--- /dev/null
+++ b/tests/tests-ttl/turtle-eval-bad-04.ttl
@@ -0,0 +1,2 @@
+# Bad IRI
+<http://example/{abc}> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-eval-struct-01.nt b/tests/tests-ttl/turtle-eval-struct-01.nt
new file mode 100644
index 00000000..02e6ba98
--- /dev/null
+++ b/tests/tests-ttl/turtle-eval-struct-01.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-eval-struct-01.ttl b/tests/tests-ttl/turtle-eval-struct-01.ttl
new file mode 100644
index 00000000..02e6ba98
--- /dev/null
+++ b/tests/tests-ttl/turtle-eval-struct-01.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-eval-struct-02.nt b/tests/tests-ttl/turtle-eval-struct-02.nt
new file mode 100644
index 00000000..a4a5286c
--- /dev/null
+++ b/tests/tests-ttl/turtle-eval-struct-02.nt
@@ -0,0 +1,2 @@
+<http://example/s> <http://example/p1> <http://example/o1> .
+<http://example/s> <http://example/p2> <http://example/o2> .
diff --git a/tests/tests-ttl/turtle-eval-struct-02.ttl b/tests/tests-ttl/turtle-eval-struct-02.ttl
new file mode 100644
index 00000000..13231835
--- /dev/null
+++ b/tests/tests-ttl/turtle-eval-struct-02.ttl
@@ -0,0 +1,4 @@
+<http://example/s>
+ <http://example/p1> <http://example/o1> ;
+ <http://example/p2> <http://example/o2> ;
+ .
diff --git a/tests/tests-ttl/turtle-subm-01.nt b/tests/tests-ttl/turtle-subm-01.nt
new file mode 100644
index 00000000..ae545ac3
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-01.nt
@@ -0,0 +1 @@
+_:b1 <http://example/base/turtle-subm-01.ttl#x> <http://example/base/turtle-subm-01.ttl#y> .
diff --git a/tests/tests-ttl/turtle-subm-01.ttl b/tests/tests-ttl/turtle-subm-01.ttl
new file mode 100644
index 00000000..78da35e6
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-01.ttl
@@ -0,0 +1,2 @@
+@prefix : <#> .
+[] :x :y .
diff --git a/tests/tests-ttl/turtle-subm-02.nt b/tests/tests-ttl/turtle-subm-02.nt
new file mode 100644
index 00000000..5ccb5bd2
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-02.nt
@@ -0,0 +1,3 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-02.ttl b/tests/tests-ttl/turtle-subm-02.ttl
new file mode 100644
index 00000000..9070d2c4
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-02.ttl
@@ -0,0 +1,7 @@
+# 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 .
diff --git a/tests/tests-ttl/turtle-subm-03.nt b/tests/tests-ttl/turtle-subm-03.nt
new file mode 100644
index 00000000..99732ab3
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-03.nt
@@ -0,0 +1,3 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-03.ttl b/tests/tests-ttl/turtle-subm-03.ttl
new file mode 100644
index 00000000..a623f3c1
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-03.ttl
@@ -0,0 +1,5 @@
+# Test , operator
+@prefix : <http://example.org/base#> .
+:a :b :c,
+ :d,
+ :e .
diff --git a/tests/tests-ttl/turtle-subm-04.nt b/tests/tests-ttl/turtle-subm-04.nt
new file mode 100644
index 00000000..d6ce9e8f
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-04.nt
@@ -0,0 +1,3 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-04.ttl b/tests/tests-ttl/turtle-subm-04.ttl
new file mode 100644
index 00000000..9179fa50
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-04.ttl
@@ -0,0 +1,5 @@
+# Test ; operator
+@prefix : <http://example.org/base#> .
+:a :b :c ;
+ :d :e ;
+ :f :g .
diff --git a/tests/tests-ttl/turtle-subm-05.nt b/tests/tests-ttl/turtle-subm-05.nt
new file mode 100644
index 00000000..d5d01526
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-05.nt
@@ -0,0 +1,2 @@
+_:b1 <http://example.org/base#a> <http://example.org/base#b> .
+<http://example.org/base#c> <http://example.org/base#d> _:b2 .
diff --git a/tests/tests-ttl/turtle-subm-05.ttl b/tests/tests-ttl/turtle-subm-05.ttl
new file mode 100644
index 00000000..c5181479
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-05.ttl
@@ -0,0 +1,4 @@
+# Test empty [] operator; not allowed as predicate
+@prefix : <http://example.org/base#> .
+[] :a :b .
+:c :d [] .
diff --git a/tests/tests-ttl/turtle-subm-06.nt b/tests/tests-ttl/turtle-subm-06.nt
new file mode 100644
index 00000000..d440197f
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-06.nt
@@ -0,0 +1,4 @@
+_:b1 <http://example.org/base#a> <http://example.org/base#b> .
+_:b1 <http://example.org/base#c> <http://example.org/base#d> .
+<http://example.org/base#e> <http://example.org/base#f> _:b2 .
+_:b2 <http://example.org/base#g> <http://example.org/base#h> .
diff --git a/tests/tests-ttl/turtle-subm-06.ttl b/tests/tests-ttl/turtle-subm-06.ttl
new file mode 100644
index 00000000..adcbcabd
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-06.ttl
@@ -0,0 +1,4 @@
+# Test non empty [] operator; not allowed as predicate
+@prefix : <http://example.org/base#> .
+[ :a :b ] :c :d .
+:e :f [ :g :h ] .
diff --git a/tests/tests-ttl/turtle-subm-07.nt b/tests/tests-ttl/turtle-subm-07.nt
new file mode 100644
index 00000000..49961ea6
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-07.nt
@@ -0,0 +1 @@
+<http://example.org/base#a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/base#b> .
diff --git a/tests/tests-ttl/turtle-subm-07.ttl b/tests/tests-ttl/turtle-subm-07.ttl
new file mode 100644
index 00000000..9c1005cc
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-07.ttl
@@ -0,0 +1,3 @@
+# 'a' only allowed as a predicate
+@prefix : <http://example.org/base#> .
+:a a :b .
diff --git a/tests/tests-ttl/turtle-subm-08.nt b/tests/tests-ttl/turtle-subm-08.nt
new file mode 100644
index 00000000..e62cede5
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-08.nt
@@ -0,0 +1,5 @@
+<http://example.org/stuff/1.0/a> <http://example.org/stuff/1.0/b> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "apple" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "banana" .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/tests/tests-ttl/turtle-subm-08.ttl b/tests/tests-ttl/turtle-subm-08.ttl
new file mode 100644
index 00000000..84559403
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-08.ttl
@@ -0,0 +1,3 @@
+@prefix : <http://example.org/stuff/1.0/> .
+:a :b ( "apple" "banana" ) .
+
diff --git a/tests/tests-ttl/turtle-subm-09.nt b/tests/tests-ttl/turtle-subm-09.nt
new file mode 100644
index 00000000..a77939cd
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-09.nt
@@ -0,0 +1 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-09.ttl b/tests/tests-ttl/turtle-subm-09.ttl
new file mode 100644
index 00000000..adce0a20
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-09.ttl
@@ -0,0 +1,3 @@
+@prefix : <http://example.org/stuff/1.0/> .
+:a :b ( ) .
+
diff --git a/tests/tests-ttl/turtle-subm-10.nt b/tests/tests-ttl/turtle-subm-10.nt
new file mode 100644
index 00000000..c7164085
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-10.nt
@@ -0,0 +1,4 @@
+_:hasParent <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Restriction> .
+_:b1 <http://www.w3.org/2002/07/owl#onProperty> _:hasParent .
+_:b1 <http://www.w3.org/2002/07/owl#maxCardinality> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/tests/tests-ttl/turtle-subm-10.ttl b/tests/tests-ttl/turtle-subm-10.ttl
new file mode 100644
index 00000000..0afe1b0a
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-10.ttl
@@ -0,0 +1,10 @@
+# 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 .
diff --git a/tests/tests-ttl/turtle-subm-11.nt b/tests/tests-ttl/turtle-subm-11.nt
new file mode 100644
index 00000000..ff88aa6f
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-11.nt
@@ -0,0 +1,5 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-11.ttl b/tests/tests-ttl/turtle-subm-11.ttl
new file mode 100644
index 00000000..5d36360e
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-11.ttl
@@ -0,0 +1,5 @@
+<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 .
diff --git a/tests/tests-ttl/turtle-subm-12.nt b/tests/tests-ttl/turtle-subm-12.nt
new file mode 100644
index 00000000..f936a5b6
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-12.nt
@@ -0,0 +1,4 @@
+<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" .
diff --git a/tests/tests-ttl/turtle-subm-12.ttl b/tests/tests-ttl/turtle-subm-12.ttl
new file mode 100644
index 00000000..3de1a43f
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-12.ttl
@@ -0,0 +1,10 @@
+# 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" .
diff --git a/tests/tests-ttl/turtle-subm-13.nt b/tests/tests-ttl/turtle-subm-13.nt
new file mode 100644
index 00000000..67404a59
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-13.nt
@@ -0,0 +1,4 @@
+<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" .
diff --git a/tests/tests-ttl/turtle-subm-13.ttl b/tests/tests-ttl/turtle-subm-13.ttl
new file mode 100644
index 00000000..1fed9f5e
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-13.ttl
@@ -0,0 +1,9 @@
+# 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" .
diff --git a/tests/tests-ttl/turtle-subm-14.nt b/tests/tests-ttl/turtle-subm-14.nt
new file mode 100644
index 00000000..195a1af7
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-14.nt
@@ -0,0 +1,2 @@
+_:b1 <http://example.org/ron> _:b2 .
+<http://example.org/ron> <http://example.org/ron> <http://example.org/ron> .
diff --git a/tests/tests-ttl/turtle-subm-14.ttl b/tests/tests-ttl/turtle-subm-14.ttl
new file mode 100644
index 00000000..a8be95be
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-14.ttl
@@ -0,0 +1,7 @@
+# Test for : allowed
+@prefix : <http://example.org/ron> .
+
+[] : [] .
+
+: : : .
+
diff --git a/tests/tests-ttl/turtle-subm-15.nt b/tests/tests-ttl/turtle-subm-15.nt
new file mode 100644
index 00000000..466edbb2
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-15.nt
@@ -0,0 +1 @@
+<http://example.org/ex#a> <http://example.org/ex#b> "a long\n\tliteral\nwith\nnewlines" .
diff --git a/tests/tests-ttl/turtle-subm-15.ttl b/tests/tests-ttl/turtle-subm-15.ttl
new file mode 100644
index 00000000..86c453bd
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-15.ttl
@@ -0,0 +1,6 @@
+# Test long literal
+@prefix : <http://example.org/ex#> .
+:a :b """a long
+ literal
+with
+newlines""" .
diff --git a/tests/tests-ttl/turtle-subm-16.nt b/tests/tests-ttl/turtle-subm-16.nt
new file mode 100644
index 00000000..7726bbfc
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-16.nt
@@ -0,0 +1,2 @@
+<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" .
diff --git a/tests/tests-ttl/turtle-subm-16.ttl b/tests/tests-ttl/turtle-subm-16.ttl
new file mode 100644
index 00000000..f5482d4a
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-16.ttl
@@ -0,0 +1,20 @@
+@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
+""" .
diff --git a/tests/tests-ttl/turtle-subm-17.nt b/tests/tests-ttl/turtle-subm-17.nt
new file mode 100644
index 00000000..2e2dbe40
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-17.nt
@@ -0,0 +1 @@
+<http://example.org/#a> <http://example.org/#b> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> .
diff --git a/tests/tests-ttl/turtle-subm-17.ttl b/tests/tests-ttl/turtle-subm-17.ttl
new file mode 100644
index 00000000..9de0c07b
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-17.ttl
@@ -0,0 +1,4 @@
+@prefix : <http://example.org/#> .
+
+:a :b 1.0 .
+
diff --git a/tests/tests-ttl/turtle-subm-18.nt b/tests/tests-ttl/turtle-subm-18.nt
new file mode 100644
index 00000000..fff2da56
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-18.nt
@@ -0,0 +1,2 @@
+<http://example.org/#a> <http://example.org/#b> "" .
+<http://example.org/#c> <http://example.org/#d> "" .
diff --git a/tests/tests-ttl/turtle-subm-18.ttl b/tests/tests-ttl/turtle-subm-18.ttl
new file mode 100644
index 00000000..37a9a4f3
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-18.ttl
@@ -0,0 +1,6 @@
+@prefix : <http://example.org/#> .
+
+:a :b "" .
+
+:c :d """""" .
+
diff --git a/tests/tests-ttl/turtle-subm-19.nt b/tests/tests-ttl/turtle-subm-19.nt
new file mode 100644
index 00000000..d5dca690
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-19.nt
@@ -0,0 +1,3 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-19.ttl b/tests/tests-ttl/turtle-subm-19.ttl
new file mode 100644
index 00000000..a8e8dc15
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-19.ttl
@@ -0,0 +1,4 @@
+@prefix : <http://example.org#> .
+:a :b 1.0 .
+:c :d 1 .
+:e :f 1.0e0 .
diff --git a/tests/tests-ttl/turtle-subm-20.nt b/tests/tests-ttl/turtle-subm-20.nt
new file mode 100644
index 00000000..3d0f970e
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-20.nt
@@ -0,0 +1,3 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-20.ttl b/tests/tests-ttl/turtle-subm-20.ttl
new file mode 100644
index 00000000..9b1a725a
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-20.ttl
@@ -0,0 +1,4 @@
+@prefix : <http://example.org#> .
+:a :b -1.0 .
+:c :d -1 .
+:e :f -1.0e0 .
diff --git a/tests/tests-ttl/turtle-subm-21.nt b/tests/tests-ttl/turtle-subm-21.nt
new file mode 100644
index 00000000..fde31312
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-21.nt
@@ -0,0 +1 @@
+<http://example.org/ex#a> <http://example.org/ex#b> "John said: \"Hello World!\"" .
diff --git a/tests/tests-ttl/turtle-subm-21.ttl b/tests/tests-ttl/turtle-subm-21.ttl
new file mode 100644
index 00000000..9f5360af
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-21.ttl
@@ -0,0 +1,3 @@
+# Test long literal
+@prefix : <http://example.org/ex#> .
+:a :b """John said: "Hello World!\"""" .
diff --git a/tests/tests-ttl/turtle-subm-22.nt b/tests/tests-ttl/turtle-subm-22.nt
new file mode 100644
index 00000000..5a70bff1
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-22.nt
@@ -0,0 +1,2 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-22.ttl b/tests/tests-ttl/turtle-subm-22.ttl
new file mode 100644
index 00000000..25f3b757
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-22.ttl
@@ -0,0 +1,3 @@
+@prefix : <http://example.org#> .
+:a :b true .
+:c :d false .
diff --git a/tests/tests-ttl/turtle-subm-23.nt b/tests/tests-ttl/turtle-subm-23.nt
new file mode 100644
index 00000000..1a38415f
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-23.nt
@@ -0,0 +1,7 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-23.ttl b/tests/tests-ttl/turtle-subm-23.ttl
new file mode 100644
index 00000000..310349da
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-23.ttl
@@ -0,0 +1,14 @@
+# 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
diff --git a/tests/tests-ttl/turtle-subm-24.nt b/tests/tests-ttl/turtle-subm-24.nt
new file mode 100644
index 00000000..ad105cf4
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-24.nt
@@ -0,0 +1 @@
+<http://example.org/#a> <http://example.org/#b> <http://example.org/#c> .
diff --git a/tests/tests-ttl/turtle-subm-24.ttl b/tests/tests-ttl/turtle-subm-24.ttl
new file mode 100644
index 00000000..0667c6b4
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-24.ttl
@@ -0,0 +1,4 @@
+# comment line with no final newline test
+@prefix : <http://example.org/#> .
+:a :b :c .
+#foo
diff --git a/tests/tests-ttl/turtle-subm-25.nt b/tests/tests-ttl/turtle-subm-25.nt
new file mode 100644
index 00000000..7da0635b
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-25.nt
@@ -0,0 +1 @@
+<http://example.org/bar#blah> <http://example.org/bar#blah> <http://example.org/bar#blah> .
diff --git a/tests/tests-ttl/turtle-subm-25.ttl b/tests/tests-ttl/turtle-subm-25.ttl
new file mode 100644
index 00000000..569023c8
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-25.ttl
@@ -0,0 +1,5 @@
+@prefix foo: <http://example.org/foo#> .
+@prefix foo: <http://example.org/bar#> .
+
+foo:blah foo:blah foo:blah .
+
diff --git a/tests/tests-ttl/turtle-subm-26.nt b/tests/tests-ttl/turtle-subm-26.nt
new file mode 100644
index 00000000..7357dd40
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-26.nt
@@ -0,0 +1,22 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-26.ttl b/tests/tests-ttl/turtle-subm-26.ttl
new file mode 100644
index 00000000..7357dd40
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-26.ttl
@@ -0,0 +1,22 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-27.nt b/tests/tests-ttl/turtle-subm-27.nt
new file mode 100644
index 00000000..c7f5baf4
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-27.nt
@@ -0,0 +1,5 @@
+<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> .
diff --git a/tests/tests-ttl/turtle-subm-27.ttl b/tests/tests-ttl/turtle-subm-27.ttl
new file mode 100644
index 00000000..6721ec24
--- /dev/null
+++ b/tests/tests-ttl/turtle-subm-27.ttl
@@ -0,0 +1,12 @@
+# 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 .
diff --git a/tests/tests-ttl/turtle-syntax-bad-base-01.ttl b/tests/tests-ttl/turtle-syntax-bad-base-01.ttl
new file mode 100644
index 00000000..7b0412f8
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-base-01.ttl
@@ -0,0 +1,2 @@
+# @base without URI.
+@base .
diff --git a/tests/tests-ttl/turtle-syntax-bad-base-02.ttl b/tests/tests-ttl/turtle-syntax-bad-base-02.ttl
new file mode 100644
index 00000000..1b2e4845
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-base-02.ttl
@@ -0,0 +1,2 @@
+# @base in wrong case.
+@BASE <http://example/> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-base-03.ttl b/tests/tests-ttl/turtle-syntax-bad-base-03.ttl
new file mode 100644
index 00000000..b5ef61dd
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-base-03.ttl
@@ -0,0 +1,3 @@
+# @base without URI.
+BASE <http://example/> .
+<s> <p> <o> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-esc-01.ttl b/tests/tests-ttl/turtle-syntax-bad-esc-01.ttl
new file mode 100644
index 00000000..f7a88add
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-esc-01.ttl
@@ -0,0 +1,2 @@
+# Bad string escape
+<http://example/s> <http://example/p> "a\zb" .
diff --git a/tests/tests-ttl/turtle-syntax-bad-esc-02.ttl b/tests/tests-ttl/turtle-syntax-bad-esc-02.ttl
new file mode 100644
index 00000000..72711d49
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-esc-02.ttl
@@ -0,0 +1,2 @@
+# Bad string escape
+<http://example/s> <http://example/p> "\uWXYZ" .
diff --git a/tests/tests-ttl/turtle-syntax-bad-esc-03.ttl b/tests/tests-ttl/turtle-syntax-bad-esc-03.ttl
new file mode 100644
index 00000000..3a4522fc
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-esc-03.ttl
@@ -0,0 +1,2 @@
+# Bad string escape
+<http://example/s> <http://example/p> "\U0000WXYZ" .
diff --git a/tests/tests-ttl/turtle-syntax-bad-esc-04.ttl b/tests/tests-ttl/turtle-syntax-bad-esc-04.ttl
new file mode 100644
index 00000000..3a4522fc
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-esc-04.ttl
@@ -0,0 +1,2 @@
+# Bad string escape
+<http://example/s> <http://example/p> "\U0000WXYZ" .
diff --git a/tests/tests-ttl/turtle-syntax-bad-kw-01.ttl b/tests/tests-ttl/turtle-syntax-bad-kw-01.ttl
new file mode 100644
index 00000000..f2e3927f
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-kw-01.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s A :C .
diff --git a/tests/tests-ttl/turtle-syntax-bad-kw-02.ttl b/tests/tests-ttl/turtle-syntax-bad-kw-02.ttl
new file mode 100644
index 00000000..ab5bf1e7
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-kw-02.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+a :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-kw-03.ttl b/tests/tests-ttl/turtle-syntax-bad-kw-03.ttl
new file mode 100644
index 00000000..1be7e34a
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-kw-03.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p a .
diff --git a/tests/tests-ttl/turtle-syntax-bad-kw-04.ttl b/tests/tests-ttl/turtle-syntax-bad-kw-04.ttl
new file mode 100644
index 00000000..11cb50b5
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-kw-04.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+true :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-kw-05.ttl b/tests/tests-ttl/turtle-syntax-bad-kw-05.ttl
new file mode 100644
index 00000000..12e3a4cb
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-kw-05.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s true :o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-lang-01.ttl b/tests/tests-ttl/turtle-syntax-bad-lang-01.ttl
new file mode 100644
index 00000000..a4d952c8
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-lang-01.ttl
@@ -0,0 +1,2 @@
+# Bad lang tag
+<http://example/s> <http://example/p> "string"@1 .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-01.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-01.ttl
new file mode 100644
index 00000000..7a429acd
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-01.ttl
@@ -0,0 +1,5 @@
+# {} fomulae not in Turtle
+@prefix : <http://example/> .
+
+{ :a :q :c . } :p :z .
+
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-02.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-02.ttl
new file mode 100644
index 00000000..510cd226
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-02.ttl
@@ -0,0 +1,4 @@
+# = is not Turtle
+@prefix : <http://example/> .
+
+:a = :b .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-03.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-03.ttl
new file mode 100644
index 00000000..1f7e0df1
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-03.ttl
@@ -0,0 +1,7 @@
+# N3 paths
+@prefix : <http://example/> .
+@prefix ns: <http://example/p#> .
+
+:x.
+ ns:p.
+ ns:q :p :z .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-04.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-04.ttl
new file mode 100644
index 00000000..151db2da
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-04.ttl
@@ -0,0 +1,5 @@
+# N3 paths
+@prefix : <http://example/> .
+@prefix ns: <http://example/p#> .
+
+:x^ns:p :p :z .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-05.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-05.ttl
new file mode 100644
index 00000000..76d03261
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-05.ttl
@@ -0,0 +1,4 @@
+# N3 is...of
+@prefix : <http://example/> .
+
+:z is :p of :x .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-06.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-06.ttl
new file mode 100644
index 00000000..12bdd9ef
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-06.ttl
@@ -0,0 +1,4 @@
+# = is not Turtle
+@prefix : <http://example/> .
+
+:a.:b.:c .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-07.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-07.ttl
new file mode 100644
index 00000000..419f7cad
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-07.ttl
@@ -0,0 +1,3 @@
+# @keywords is not Turtle
+@keywords a .
+x a Item .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-08.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-08.ttl
new file mode 100644
index 00000000..419f7cad
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-08.ttl
@@ -0,0 +1,3 @@
+# @keywords is not Turtle
+@keywords a .
+x a Item .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-09.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-09.ttl
new file mode 100644
index 00000000..390ef6d2
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-09.ttl
@@ -0,0 +1,3 @@
+# => is not Turtle
+@prefix : <http://example/> .
+:s => :o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-10.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-10.ttl
new file mode 100644
index 00000000..efef5f6b
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-10.ttl
@@ -0,0 +1,3 @@
+# <= is not Turtle
+@prefix : <http://example/> .
+:s <= :o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-11.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-11.ttl
new file mode 100644
index 00000000..dabadf02
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-11.ttl
@@ -0,0 +1,3 @@
+# @forSome is not Turtle
+@prefix : <http://example/> .
+@forSome :x .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-12.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-12.ttl
new file mode 100644
index 00000000..5a6c3562
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-12.ttl
@@ -0,0 +1,3 @@
+# @forAll is not Turtle
+@prefix : <http://example/> .
+@forAll :x .
diff --git a/tests/tests-ttl/turtle-syntax-bad-n3-extras-13.ttl b/tests/tests-ttl/turtle-syntax-bad-n3-extras-13.ttl
new file mode 100644
index 00000000..5f719a24
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-n3-extras-13.ttl
@@ -0,0 +1,3 @@
+# @keywords is not Turtle
+@keywords .
+x @a Item .
diff --git a/tests/tests-ttl/turtle-syntax-bad-num-01.ttl b/tests/tests-ttl/turtle-syntax-bad-num-01.ttl
new file mode 100644
index 00000000..817809f6
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-num-01.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 123.abc .
diff --git a/tests/tests-ttl/turtle-syntax-bad-num-02.ttl b/tests/tests-ttl/turtle-syntax-bad-num-02.ttl
new file mode 100644
index 00000000..dca36d2b
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-num-02.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 123e .
diff --git a/tests/tests-ttl/turtle-syntax-bad-num-03.ttl b/tests/tests-ttl/turtle-syntax-bad-num-03.ttl
new file mode 100644
index 00000000..e9ea90c9
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-num-03.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 123abc .
diff --git a/tests/tests-ttl/turtle-syntax-bad-num-04.ttl b/tests/tests-ttl/turtle-syntax-bad-num-04.ttl
new file mode 100644
index 00000000..363755f0
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-num-04.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 0x123 .
diff --git a/tests/tests-ttl/turtle-syntax-bad-num-05.ttl b/tests/tests-ttl/turtle-syntax-bad-num-05.ttl
new file mode 100644
index 00000000..d8fab1ab
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-num-05.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> +-1 .
diff --git a/tests/tests-ttl/turtle-syntax-bad-pname-01.ttl b/tests/tests-ttl/turtle-syntax-bad-pname-01.ttl
new file mode 100644
index 00000000..90e42197
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-pname-01.ttl
@@ -0,0 +1,3 @@
+# ~ must be escaped.
+@prefix : <http://example/> .
+:a~b :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-pname-02.ttl b/tests/tests-ttl/turtle-syntax-bad-pname-02.ttl
new file mode 100644
index 00000000..ff3e35c8
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-pname-02.ttl
@@ -0,0 +1,3 @@
+# Bad %-sequence
+@prefix : <http://example/> .
+:a%2 :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-pname-03.ttl b/tests/tests-ttl/turtle-syntax-bad-pname-03.ttl
new file mode 100644
index 00000000..cb358bd0
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-pname-03.ttl
@@ -0,0 +1,3 @@
+# No \u (x39 is "9")
+@prefix : <http://example/> .
+:a\u0039 :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-prefix-01.ttl b/tests/tests-ttl/turtle-syntax-bad-prefix-01.ttl
new file mode 100644
index 00000000..97021d96
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-prefix-01.ttl
@@ -0,0 +1,2 @@
+# No prefix
+:s <http://example/p> "x" .
diff --git a/tests/tests-ttl/turtle-syntax-bad-prefix-02.ttl b/tests/tests-ttl/turtle-syntax-bad-prefix-02.ttl
new file mode 100644
index 00000000..69271456
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-prefix-02.ttl
@@ -0,0 +1,3 @@
+# No prefix
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+<http://example/s> rdf:type :C .
diff --git a/tests/tests-ttl/turtle-syntax-bad-prefix-03.ttl b/tests/tests-ttl/turtle-syntax-bad-prefix-03.ttl
new file mode 100644
index 00000000..1ab01e7b
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-prefix-03.ttl
@@ -0,0 +1,2 @@
+# @prefix without URI.
+@prefix ex: .
diff --git a/tests/tests-ttl/turtle-syntax-bad-prefix-04.ttl b/tests/tests-ttl/turtle-syntax-bad-prefix-04.ttl
new file mode 100644
index 00000000..dbbda05b
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-prefix-04.ttl
@@ -0,0 +1,2 @@
+# @prefix without prefix name .
+@prefix <http://example/> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-prefix-05.ttl b/tests/tests-ttl/turtle-syntax-bad-prefix-05.ttl
new file mode 100644
index 00000000..6d145e07
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-prefix-05.ttl
@@ -0,0 +1,2 @@
+# @prefix without :
+@prefix x <http://example/> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-string-01.ttl b/tests/tests-ttl/turtle-syntax-bad-string-01.ttl
new file mode 100644
index 00000000..7e8da141
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-string-01.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p "abc' .
diff --git a/tests/tests-ttl/turtle-syntax-bad-string-02.ttl b/tests/tests-ttl/turtle-syntax-bad-string-02.ttl
new file mode 100644
index 00000000..d2866d25
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-string-02.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p 'abc" .
diff --git a/tests/tests-ttl/turtle-syntax-bad-string-03.ttl b/tests/tests-ttl/turtle-syntax-bad-string-03.ttl
new file mode 100644
index 00000000..610446b2
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-string-03.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p '''abc' .
diff --git a/tests/tests-ttl/turtle-syntax-bad-string-04.ttl b/tests/tests-ttl/turtle-syntax-bad-string-04.ttl
new file mode 100644
index 00000000..6643614c
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-string-04.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p """abc''' .
diff --git a/tests/tests-ttl/turtle-syntax-bad-string-05.ttl b/tests/tests-ttl/turtle-syntax-bad-string-05.ttl
new file mode 100644
index 00000000..e25a4927
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-string-05.ttl
@@ -0,0 +1,4 @@
+# Long literal with missing end
+@prefix : <http://example/> .
+:s :p """abc
+def
diff --git a/tests/tests-ttl/turtle-syntax-bad-string-06.ttl b/tests/tests-ttl/turtle-syntax-bad-string-06.ttl
new file mode 100644
index 00000000..2c717b5e
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-string-06.ttl
@@ -0,0 +1,3 @@
+# Long literal with 4"
+@prefix : <http://example/> .
+:s :p """abc""""@en .
diff --git a/tests/tests-ttl/turtle-syntax-bad-string-07.ttl b/tests/tests-ttl/turtle-syntax-bad-string-07.ttl
new file mode 100644
index 00000000..ce6f7a7d
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-string-07.ttl
@@ -0,0 +1,3 @@
+# Long literal with 4'
+@prefix : <http://example/> .
+:s :p '''abc''''@en .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-01.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-01.ttl
new file mode 100644
index 00000000..7594edc4
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-01.ttl
@@ -0,0 +1,2 @@
+# Turtle is not TriG
+{ <http://example/s> <http://example/p> <http://example/o> }
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-02.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-02.ttl
new file mode 100644
index 00000000..e447c376
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-02.ttl
@@ -0,0 +1,2 @@
+# Turtle is not N3
+<http://example/s> = <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-03.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-03.ttl
new file mode 100644
index 00000000..76d57aee
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-03.ttl
@@ -0,0 +1,2 @@
+# Turtle is not NQuads
+<http://example/s> <http://example/p> <http://example/o> <http://example/g> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-04.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-04.ttl
new file mode 100644
index 00000000..6c675a0c
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-04.ttl
@@ -0,0 +1,2 @@
+# Turtle does not allow literals-as-subjects
+"hello" <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-05.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-05.ttl
new file mode 100644
index 00000000..c7a3552d
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-05.ttl
@@ -0,0 +1,2 @@
+# Turtle does not allow literals-as-predicates
+<http://example/s> "hello" <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-06.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-06.ttl
new file mode 100644
index 00000000..dd663288
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-06.ttl
@@ -0,0 +1,2 @@
+# Turtle does not allow bnodes-as-predicates
+<http://example/s> [] <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-07.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-07.ttl
new file mode 100644
index 00000000..c1e4aa7c
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-07.ttl
@@ -0,0 +1,2 @@
+# Turtle does not allow bnodes-as-predicates
+<http://example/s> _:p <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-08.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-08.ttl
new file mode 100644
index 00000000..5449ad93
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-08.ttl
@@ -0,0 +1,2 @@
+# No DOT
+<http://example/s> <http://example/p> <http://example/o>
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-09.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-09.ttl
new file mode 100644
index 00000000..33159c97
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-09.ttl
@@ -0,0 +1,2 @@
+# Too many DOT
+<http://example/s> <http://example/p> <http://example/o> . .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-10.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-10.ttl
new file mode 100644
index 00000000..8fcc7fea
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-10.ttl
@@ -0,0 +1,3 @@
+# Too many DOT
+<http://example/s> <http://example/p> <http://example/o> . .
+<http://example/s1> <http://example/p1> <http://example/o1> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-11.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-11.ttl
new file mode 100644
index 00000000..2351eb87
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-11.ttl
@@ -0,0 +1,2 @@
+# Trailing ;
+<http://example/s> <http://example/p> <http://example/o> ;
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-12.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-12.ttl
new file mode 100644
index 00000000..b11d7f53
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-12.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p>
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-13.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-13.ttl
new file mode 100644
index 00000000..b11d7f53
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-13.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p>
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-14.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-14.ttl
new file mode 100644
index 00000000..039f96d4
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-14.ttl
@@ -0,0 +1,2 @@
+# Literal as subject
+"abc" <http://example/p> <http://example/p> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-15.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-15.ttl
new file mode 100644
index 00000000..c3b147ca
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-15.ttl
@@ -0,0 +1,2 @@
+# Literal as predicate
+<http://example/s> "abc" <http://example/p> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-16.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-16.ttl
new file mode 100644
index 00000000..f8621e9c
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-16.ttl
@@ -0,0 +1,2 @@
+# BNode as predicate
+<http://example/s> [] <http://example/p> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-struct-17.ttl b/tests/tests-ttl/turtle-syntax-bad-struct-17.ttl
new file mode 100644
index 00000000..194c0f0e
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-struct-17.ttl
@@ -0,0 +1,2 @@
+# BNode as predicate
+<http://example/s> _:a <http://example/p> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-uri-01.ttl b/tests/tests-ttl/turtle-syntax-bad-uri-01.ttl
new file mode 100644
index 00000000..0e69dc0c
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-uri-01.ttl
@@ -0,0 +1,2 @@
+# Bad IRI : space.
+<http://example/ space> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-uri-02.ttl b/tests/tests-ttl/turtle-syntax-bad-uri-02.ttl
new file mode 100644
index 00000000..36d91af9
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-uri-02.ttl
@@ -0,0 +1,2 @@
+# Bad IRI : bad escape
+<http://example/\u00ZZ11> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-uri-03.ttl b/tests/tests-ttl/turtle-syntax-bad-uri-03.ttl
new file mode 100644
index 00000000..f512345f
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-uri-03.ttl
@@ -0,0 +1,2 @@
+# Bad IRI : bad escape
+<http://example/\U00ZZ1111> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-uri-04.ttl b/tests/tests-ttl/turtle-syntax-bad-uri-04.ttl
new file mode 100644
index 00000000..5cab062c
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-uri-04.ttl
@@ -0,0 +1,2 @@
+# Bad IRI : character escapes not allowed.
+<http://example/\n> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-uri-05.ttl b/tests/tests-ttl/turtle-syntax-bad-uri-05.ttl
new file mode 100644
index 00000000..be0a21e0
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-uri-05.ttl
@@ -0,0 +1,2 @@
+# Bad IRI : character escapes not allowed.
+<http://example/\/> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-base-01.ttl b/tests/tests-ttl/turtle-syntax-base-01.ttl
new file mode 100644
index 00000000..dff1b3b4
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-base-01.ttl
@@ -0,0 +1 @@
+@base <http://example/> .
diff --git a/tests/tests-ttl/turtle-syntax-base-02.ttl b/tests/tests-ttl/turtle-syntax-base-02.ttl
new file mode 100644
index 00000000..04f1bfdb
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-base-02.ttl
@@ -0,0 +1 @@
+BASE <http://example/>
diff --git a/tests/tests-ttl/turtle-syntax-base-03.ttl b/tests/tests-ttl/turtle-syntax-base-03.ttl
new file mode 100644
index 00000000..19414dd0
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-base-03.ttl
@@ -0,0 +1,2 @@
+@base <http://example/> .
+<s> <p> <o> .
diff --git a/tests/tests-ttl/turtle-syntax-base-04.ttl b/tests/tests-ttl/turtle-syntax-base-04.ttl
new file mode 100644
index 00000000..f9f136dc
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-base-04.ttl
@@ -0,0 +1,2 @@
+base <http://example/>
+<s> <p> <o> .
diff --git a/tests/tests-ttl/turtle-syntax-bnode-01.ttl b/tests/tests-ttl/turtle-syntax-bnode-01.ttl
new file mode 100644
index 00000000..2d0a548a
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bnode-01.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+[] :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bnode-02.ttl b/tests/tests-ttl/turtle-syntax-bnode-02.ttl
new file mode 100644
index 00000000..8d681582
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bnode-02.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p [] .
diff --git a/tests/tests-ttl/turtle-syntax-bnode-03.ttl b/tests/tests-ttl/turtle-syntax-bnode-03.ttl
new file mode 100644
index 00000000..58719441
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bnode-03.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p [ :q :o ] .
diff --git a/tests/tests-ttl/turtle-syntax-bnode-04.ttl b/tests/tests-ttl/turtle-syntax-bnode-04.ttl
new file mode 100644
index 00000000..09f096d1
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bnode-04.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p [ :q1 :o1 ; :q2 :o2 ] .
diff --git a/tests/tests-ttl/turtle-syntax-bnode-05.ttl b/tests/tests-ttl/turtle-syntax-bnode-05.ttl
new file mode 100644
index 00000000..6eec0b5f
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bnode-05.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+[ :q1 :o1 ; :q2 :o2 ] :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bnode-06.ttl b/tests/tests-ttl/turtle-syntax-bnode-06.ttl
new file mode 100644
index 00000000..a930b24c
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bnode-06.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+_:a :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bnode-07.ttl b/tests/tests-ttl/turtle-syntax-bnode-07.ttl
new file mode 100644
index 00000000..19462a69
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bnode-07.ttl
@@ -0,0 +1,3 @@
+@prefix : <http://example/> .
+:s :p _:a .
+_:a :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bnode-08.ttl b/tests/tests-ttl/turtle-syntax-bnode-08.ttl
new file mode 100644
index 00000000..e379819d
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bnode-08.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+[ :p :o ] .
diff --git a/tests/tests-ttl/turtle-syntax-bnode-09.ttl b/tests/tests-ttl/turtle-syntax-bnode-09.ttl
new file mode 100644
index 00000000..568be4e3
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bnode-09.ttl
@@ -0,0 +1,3 @@
+@prefix : <http://example/> .
+[ :p :o1,:2 ] .
+:s :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bnode-10.ttl b/tests/tests-ttl/turtle-syntax-bnode-10.ttl
new file mode 100644
index 00000000..9d1ba060
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bnode-10.ttl
@@ -0,0 +1,5 @@
+@prefix : <http://example/> .
+
+:s1 :p :o .
+[ :p1 :o1 ; :p2 :o2 ] .
+:s2 :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-datatypes-01.ttl b/tests/tests-ttl/turtle-syntax-datatypes-01.ttl
new file mode 100644
index 00000000..9e273c51
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-datatypes-01.ttl
@@ -0,0 +1,2 @@
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+<s> <p> "123"^^xsd:byte .
diff --git a/tests/tests-ttl/turtle-syntax-datatypes-02.ttl b/tests/tests-ttl/turtle-syntax-datatypes-02.ttl
new file mode 100644
index 00000000..477bd73c
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-datatypes-02.ttl
@@ -0,0 +1,3 @@
+@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 .
diff --git a/tests/tests-ttl/turtle-syntax-file-01.ttl b/tests/tests-ttl/turtle-syntax-file-01.ttl
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-file-01.ttl
diff --git a/tests/tests-ttl/turtle-syntax-file-02.ttl b/tests/tests-ttl/turtle-syntax-file-02.ttl
new file mode 100644
index 00000000..e6d327d5
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-file-02.ttl
@@ -0,0 +1 @@
+#Empty file.
diff --git a/tests/tests-ttl/turtle-syntax-file-03.ttl b/tests/tests-ttl/turtle-syntax-file-03.ttl
new file mode 100644
index 00000000..a9ca0358
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-file-03.ttl
@@ -0,0 +1,2 @@
+#One comment, one empty line.
+
diff --git a/tests/tests-ttl/turtle-syntax-kw-01.ttl b/tests/tests-ttl/turtle-syntax-kw-01.ttl
new file mode 100644
index 00000000..854c7568
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-kw-01.ttl
@@ -0,0 +1 @@
+<s> <p> true .
diff --git a/tests/tests-ttl/turtle-syntax-kw-02.ttl b/tests/tests-ttl/turtle-syntax-kw-02.ttl
new file mode 100644
index 00000000..c948160b
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-kw-02.ttl
@@ -0,0 +1 @@
+<s> <p> false .
diff --git a/tests/tests-ttl/turtle-syntax-kw-03.ttl b/tests/tests-ttl/turtle-syntax-kw-03.ttl
new file mode 100644
index 00000000..ca35f7a5
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-kw-03.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s a :C .
diff --git a/tests/tests-ttl/turtle-syntax-lists-01.ttl b/tests/tests-ttl/turtle-syntax-lists-01.ttl
new file mode 100644
index 00000000..438a4711
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-lists-01.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p () .
diff --git a/tests/tests-ttl/turtle-syntax-lists-02.ttl b/tests/tests-ttl/turtle-syntax-lists-02.ttl
new file mode 100644
index 00000000..20ddd626
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-lists-02.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p (1 "2" :o) .
diff --git a/tests/tests-ttl/turtle-syntax-lists-03.ttl b/tests/tests-ttl/turtle-syntax-lists-03.ttl
new file mode 100644
index 00000000..5656dca3
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-lists-03.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+(1) :p (1) .
diff --git a/tests/tests-ttl/turtle-syntax-lists-04.ttl b/tests/tests-ttl/turtle-syntax-lists-04.ttl
new file mode 100644
index 00000000..2adee236
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-lists-04.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+(()) :p (()) .
diff --git a/tests/tests-ttl/turtle-syntax-lists-05.ttl b/tests/tests-ttl/turtle-syntax-lists-05.ttl
new file mode 100644
index 00000000..84f6e722
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-lists-05.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+(1 2 (1 2)) :p (( "a") "b" :o) .
diff --git a/tests/tests-ttl/turtle-syntax-number-01.ttl b/tests/tests-ttl/turtle-syntax-number-01.ttl
new file mode 100644
index 00000000..016fa8f2
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-01.ttl
@@ -0,0 +1 @@
+<s> <p> 123 .
diff --git a/tests/tests-ttl/turtle-syntax-number-02.ttl b/tests/tests-ttl/turtle-syntax-number-02.ttl
new file mode 100644
index 00000000..66d1b389
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-02.ttl
@@ -0,0 +1 @@
+<s> <p> -123 .
diff --git a/tests/tests-ttl/turtle-syntax-number-03.ttl b/tests/tests-ttl/turtle-syntax-number-03.ttl
new file mode 100644
index 00000000..44142857
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-03.ttl
@@ -0,0 +1 @@
+<s> <p> +123 .
diff --git a/tests/tests-ttl/turtle-syntax-number-04.ttl b/tests/tests-ttl/turtle-syntax-number-04.ttl
new file mode 100644
index 00000000..ab48cbc6
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-04.ttl
@@ -0,0 +1,2 @@
+# This is a decimal.
+<s> <p> 123.0 .
diff --git a/tests/tests-ttl/turtle-syntax-number-05.ttl b/tests/tests-ttl/turtle-syntax-number-05.ttl
new file mode 100644
index 00000000..a8d5845a
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-05.ttl
@@ -0,0 +1,2 @@
+# This is a decimal.
+<s> <p> .1 .
diff --git a/tests/tests-ttl/turtle-syntax-number-06.ttl b/tests/tests-ttl/turtle-syntax-number-06.ttl
new file mode 100644
index 00000000..cb3a2b06
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-06.ttl
@@ -0,0 +1,2 @@
+# This is a decimal.
+<s> <p> -123.0 .
diff --git a/tests/tests-ttl/turtle-syntax-number-07.ttl b/tests/tests-ttl/turtle-syntax-number-07.ttl
new file mode 100644
index 00000000..8b0050e6
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-07.ttl
@@ -0,0 +1,2 @@
+# This is a decimal.
+<s> <p> +123.0 .
diff --git a/tests/tests-ttl/turtle-syntax-number-08.ttl b/tests/tests-ttl/turtle-syntax-number-08.ttl
new file mode 100644
index 00000000..70ddeed3
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-08.ttl
@@ -0,0 +1,2 @@
+# This is an integer
+<s> <p> 123.
diff --git a/tests/tests-ttl/turtle-syntax-number-09.ttl b/tests/tests-ttl/turtle-syntax-number-09.ttl
new file mode 100644
index 00000000..386b819f
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-09.ttl
@@ -0,0 +1 @@
+<s> <p> 123.0e1 .
diff --git a/tests/tests-ttl/turtle-syntax-number-10.ttl b/tests/tests-ttl/turtle-syntax-number-10.ttl
new file mode 100644
index 00000000..46875e94
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-10.ttl
@@ -0,0 +1 @@
+<s> <p> -123e-1 .
diff --git a/tests/tests-ttl/turtle-syntax-number-11.ttl b/tests/tests-ttl/turtle-syntax-number-11.ttl
new file mode 100644
index 00000000..1d8c367e
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-number-11.ttl
@@ -0,0 +1 @@
+<s> <p> 123.E+1 .
diff --git a/tests/tests-ttl/turtle-syntax-pname-esc-01.ttl b/tests/tests-ttl/turtle-syntax-pname-esc-01.ttl
new file mode 100644
index 00000000..46f3b3d9
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-pname-esc-01.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p :\~\.\-\!\$\&\'\(\)\*\+\,\;\=\/\?\#\@\_\%AA .
diff --git a/tests/tests-ttl/turtle-syntax-pname-esc-02.ttl b/tests/tests-ttl/turtle-syntax-pname-esc-02.ttl
new file mode 100644
index 00000000..518feb67
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-pname-esc-02.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p :0123\~\.\-\!\$\&\'\(\)\*\+\,\;\=\/\?\#\@\_\%AA123 .
diff --git a/tests/tests-ttl/turtle-syntax-pname-esc-03.ttl b/tests/tests-ttl/turtle-syntax-pname-esc-03.ttl
new file mode 100644
index 00000000..e259f345
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-pname-esc-03.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:xyz\~ :abc\.: : .
diff --git a/tests/tests-ttl/turtle-syntax-prefix-01.ttl b/tests/tests-ttl/turtle-syntax-prefix-01.ttl
new file mode 100644
index 00000000..89e08cc7
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-prefix-01.ttl
@@ -0,0 +1 @@
+@prefix : <http://example/> .
diff --git a/tests/tests-ttl/turtle-syntax-prefix-02.ttl b/tests/tests-ttl/turtle-syntax-prefix-02.ttl
new file mode 100644
index 00000000..5869e8bd
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-prefix-02.ttl
@@ -0,0 +1 @@
+PreFIX : <http://example/>
diff --git a/tests/tests-ttl/turtle-syntax-prefix-03.ttl b/tests/tests-ttl/turtle-syntax-prefix-03.ttl
new file mode 100644
index 00000000..f9c0a3f3
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-prefix-03.ttl
@@ -0,0 +1,2 @@
+PREFIX : <http://example/>
+:s :p :123 .
diff --git a/tests/tests-ttl/turtle-syntax-prefix-04.ttl b/tests/tests-ttl/turtle-syntax-prefix-04.ttl
new file mode 100644
index 00000000..3d1b4097
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-prefix-04.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p :%20 .
diff --git a/tests/tests-ttl/turtle-syntax-prefix-05.ttl b/tests/tests-ttl/turtle-syntax-prefix-05.ttl
new file mode 100644
index 00000000..36b46fcc
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-prefix-05.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+: : : .
diff --git a/tests/tests-ttl/turtle-syntax-prefix-06.ttl b/tests/tests-ttl/turtle-syntax-prefix-06.ttl
new file mode 100644
index 00000000..eb21c253
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-prefix-06.ttl
@@ -0,0 +1,4 @@
+# colon is a legal pname character
+@prefix : <http://example/> .
+@prefix x: <http://example/> .
+:a:b:c x:d:e:f :::: .
diff --git a/tests/tests-ttl/turtle-syntax-prefix-07.ttl b/tests/tests-ttl/turtle-syntax-prefix-07.ttl
new file mode 100644
index 00000000..bb498d91
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-prefix-07.ttl
@@ -0,0 +1,3 @@
+# dash is a legal pname character
+@prefix x: <http://example/> .
+x:a-b-c x:p x:o .
diff --git a/tests/tests-ttl/turtle-syntax-prefix-08.ttl b/tests/tests-ttl/turtle-syntax-prefix-08.ttl
new file mode 100644
index 00000000..e5ecff2b
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-prefix-08.ttl
@@ -0,0 +1,3 @@
+# underscore is a legal pname character
+@prefix x: <http://example/> .
+x:_ x:p_1 x:o .
diff --git a/tests/tests-ttl/turtle-syntax-prefix-09.ttl b/tests/tests-ttl/turtle-syntax-prefix-09.ttl
new file mode 100644
index 00000000..6f6345e1
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-prefix-09.ttl
@@ -0,0 +1,4 @@
+# percents
+@prefix : <http://example/> .
+@prefix x: <http://example/> .
+:a%3E x:%25 :a%3Eb .
diff --git a/tests/tests-ttl/turtle-syntax-str-esc-01.ttl b/tests/tests-ttl/turtle-syntax-str-esc-01.ttl
new file mode 100644
index 00000000..3925f2ec
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-str-esc-01.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "a\n" .
diff --git a/tests/tests-ttl/turtle-syntax-str-esc-02.ttl b/tests/tests-ttl/turtle-syntax-str-esc-02.ttl
new file mode 100644
index 00000000..e7d032f0
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-str-esc-02.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "a\u0020b" .
diff --git a/tests/tests-ttl/turtle-syntax-str-esc-03.ttl b/tests/tests-ttl/turtle-syntax-str-esc-03.ttl
new file mode 100644
index 00000000..b8588c79
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-str-esc-03.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "a\U00000020b" .
diff --git a/tests/tests-ttl/turtle-syntax-string-01.ttl b/tests/tests-ttl/turtle-syntax-string-01.ttl
new file mode 100644
index 00000000..5333aefe
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-01.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "string" .
diff --git a/tests/tests-ttl/turtle-syntax-string-02.ttl b/tests/tests-ttl/turtle-syntax-string-02.ttl
new file mode 100644
index 00000000..1ab55a33
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-02.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "string"@en .
diff --git a/tests/tests-ttl/turtle-syntax-string-03.ttl b/tests/tests-ttl/turtle-syntax-string-03.ttl
new file mode 100644
index 00000000..b34ca0f6
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-03.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "string"@en-uk .
diff --git a/tests/tests-ttl/turtle-syntax-string-04.ttl b/tests/tests-ttl/turtle-syntax-string-04.ttl
new file mode 100644
index 00000000..09ebaa1f
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-04.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 'string' .
diff --git a/tests/tests-ttl/turtle-syntax-string-05.ttl b/tests/tests-ttl/turtle-syntax-string-05.ttl
new file mode 100644
index 00000000..b7d3978d
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-05.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 'string'@en .
diff --git a/tests/tests-ttl/turtle-syntax-string-06.ttl b/tests/tests-ttl/turtle-syntax-string-06.ttl
new file mode 100644
index 00000000..da99bc28
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-06.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 'string'@en-uk .
diff --git a/tests/tests-ttl/turtle-syntax-string-07.ttl b/tests/tests-ttl/turtle-syntax-string-07.ttl
new file mode 100644
index 00000000..b848eead
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-07.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> """abc""def''ghi""" .
diff --git a/tests/tests-ttl/turtle-syntax-string-08.ttl b/tests/tests-ttl/turtle-syntax-string-08.ttl
new file mode 100644
index 00000000..c7376d44
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-08.ttl
@@ -0,0 +1,2 @@
+<http://example/s> <http://example/p> """abc
+def""" .
diff --git a/tests/tests-ttl/turtle-syntax-string-09.ttl b/tests/tests-ttl/turtle-syntax-string-09.ttl
new file mode 100644
index 00000000..fd300f4a
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-09.ttl
@@ -0,0 +1,2 @@
+<http://example/s> <http://example/p> '''abc
+def''' .
diff --git a/tests/tests-ttl/turtle-syntax-string-10.ttl b/tests/tests-ttl/turtle-syntax-string-10.ttl
new file mode 100644
index 00000000..a0ead0cf
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-10.ttl
@@ -0,0 +1,2 @@
+<http://example/s> <http://example/p> """abc
+def"""@en .
diff --git a/tests/tests-ttl/turtle-syntax-string-11.ttl b/tests/tests-ttl/turtle-syntax-string-11.ttl
new file mode 100644
index 00000000..fb722b6f
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-string-11.ttl
@@ -0,0 +1,2 @@
+<http://example/s> <http://example/p> '''abc
+def'''@en .
diff --git a/tests/tests-ttl/turtle-syntax-struct-01.ttl b/tests/tests-ttl/turtle-syntax-struct-01.ttl
new file mode 100644
index 00000000..0674e0ab
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-struct-01.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p :o1 , :o2 .
diff --git a/tests/tests-ttl/turtle-syntax-struct-02.ttl b/tests/tests-ttl/turtle-syntax-struct-02.ttl
new file mode 100644
index 00000000..ccbf36e8
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-struct-02.ttl
@@ -0,0 +1,3 @@
+@prefix : <http://example/> .
+:s :p1 :o1 ;
+ :p2 :o2 .
diff --git a/tests/tests-ttl/turtle-syntax-struct-03.ttl b/tests/tests-ttl/turtle-syntax-struct-03.ttl
new file mode 100644
index 00000000..503ee6e9
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-struct-03.ttl
@@ -0,0 +1,4 @@
+@prefix : <http://example/> .
+:s :p1 :o1 ;
+ :p2 :o2 ;
+ .
diff --git a/tests/tests-ttl/turtle-syntax-struct-04.ttl b/tests/tests-ttl/turtle-syntax-struct-04.ttl
new file mode 100644
index 00000000..8e771a54
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-struct-04.ttl
@@ -0,0 +1,4 @@
+@prefix : <http://example/> .
+:s :p1 :o1 ;;
+ :p2 :o2
+ .
diff --git a/tests/tests-ttl/turtle-syntax-struct-05.ttl b/tests/tests-ttl/turtle-syntax-struct-05.ttl
new file mode 100644
index 00000000..53757297
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-struct-05.ttl
@@ -0,0 +1,4 @@
+@prefix : <http://example/> .
+:s :p1 :o1 ;
+ :p2 :o2 ;;
+ .
diff --git a/tests/tests-ttl/turtle-syntax-uri-01.ttl b/tests/tests-ttl/turtle-syntax-uri-01.ttl
new file mode 100644
index 00000000..02e6ba98
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-uri-01.ttl
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-uri-02.ttl b/tests/tests-ttl/turtle-syntax-uri-02.ttl
new file mode 100644
index 00000000..664feea1
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-uri-02.ttl
@@ -0,0 +1,2 @@
+# x53 is capital S
+<http://example/\u0053> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-uri-03.ttl b/tests/tests-ttl/turtle-syntax-uri-03.ttl
new file mode 100644
index 00000000..b5aeb26e
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-uri-03.ttl
@@ -0,0 +1,2 @@
+# x53 is capital S
+<http://example/\U00000053> <http://example/p> <http://example/o> .
diff --git a/tests/tests-ttl/turtle-syntax-uri-04.ttl b/tests/tests-ttl/turtle-syntax-uri-04.ttl
new file mode 100644
index 00000000..bd042040
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-uri-04.ttl
@@ -0,0 +1,3 @@
+# IRI with all chars in it.
+<http://example/s> <http://example/p>
+<scheme:!$%25&'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> .