aboutsummaryrefslogtreecommitdiffstats
path: root/test/NTriplesTests
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-11-09 12:11:13 +0100
committerDavid Robillard <d@drobilla.net>2020-11-09 20:01:27 +0100
commit8e0270ea4d800d4f52d6c563dbb07dbb6e8cd1b7 (patch)
tree3db87de8309be4faa9e4f36f3c4794cdf16a0c7c /test/NTriplesTests
parentd65769b7b9ad6a8c9c75f8fd96f929f8a2938774 (diff)
downloadserd-8e0270ea4d800d4f52d6c563dbb07dbb6e8cd1b7.tar.gz
serd-8e0270ea4d800d4f52d6c563dbb07dbb6e8cd1b7.tar.bz2
serd-8e0270ea4d800d4f52d6c563dbb07dbb6e8cd1b7.zip
Rename test directory
Diffstat (limited to 'test/NTriplesTests')
-rw-r--r--test/NTriplesTests/README25
-rw-r--r--test/NTriplesTests/comment_following_triple.nt5
-rw-r--r--test/NTriplesTests/langtagged_string.nt1
-rw-r--r--test/NTriplesTests/lantag_with_subtag.nt1
-rw-r--r--test/NTriplesTests/literal.nt1
-rw-r--r--test/NTriplesTests/literal_all_controls.nt1
-rw-r--r--test/NTriplesTests/literal_all_punctuation.nt1
-rw-r--r--test/NTriplesTests/literal_ascii_boundaries.ntbin0 -> 57 bytes
-rw-r--r--test/NTriplesTests/literal_false.nt1
-rw-r--r--test/NTriplesTests/literal_true.nt1
-rw-r--r--test/NTriplesTests/literal_with_2_dquotes.nt1
-rw-r--r--test/NTriplesTests/literal_with_2_squotes.nt1
-rw-r--r--test/NTriplesTests/literal_with_BACKSPACE.nt1
-rw-r--r--test/NTriplesTests/literal_with_CARRIAGE_RETURN.nt1
-rw-r--r--test/NTriplesTests/literal_with_CHARACTER_TABULATION.nt1
-rw-r--r--test/NTriplesTests/literal_with_FORM_FEED.nt1
-rw-r--r--test/NTriplesTests/literal_with_LINE_FEED.nt1
-rw-r--r--test/NTriplesTests/literal_with_REVERSE_SOLIDUS.nt1
-rw-r--r--test/NTriplesTests/literal_with_REVERSE_SOLIDUS2.nt1
-rw-r--r--test/NTriplesTests/literal_with_UTF8_boundaries.nt1
-rw-r--r--test/NTriplesTests/literal_with_dquote.nt1
-rw-r--r--test/NTriplesTests/literal_with_numeric_escape4.nt1
-rw-r--r--test/NTriplesTests/literal_with_numeric_escape8.nt1
-rw-r--r--test/NTriplesTests/literal_with_squote.nt1
-rw-r--r--test/NTriplesTests/manifest.ttl512
-rw-r--r--test/NTriplesTests/minimal_whitespace.nt6
-rw-r--r--test/NTriplesTests/nt-syntax-bad-base-01.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-esc-01.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-esc-02.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-esc-03.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-lang-01.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-num-01.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-num-02.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-num-03.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-prefix-01.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-string-01.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-string-02.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-string-03.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-string-04.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-string-05.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-string-06.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-string-07.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-struct-01.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-struct-02.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bad-uri-01.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-uri-02.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-uri-03.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-uri-04.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-uri-05.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-uri-06.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-uri-07.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-uri-08.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bad-uri-09.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bnode-01.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-bnode-02.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-bnode-03.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-datatypes-01.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-datatypes-02.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-file-01.nt0
-rw-r--r--test/NTriplesTests/nt-syntax-file-02.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-file-03.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-str-esc-01.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-str-esc-02.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-str-esc-03.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-string-01.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-string-02.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-string-03.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-subm-01.nt79
-rw-r--r--test/NTriplesTests/nt-syntax-uri-01.nt1
-rw-r--r--test/NTriplesTests/nt-syntax-uri-02.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-uri-03.nt2
-rw-r--r--test/NTriplesTests/nt-syntax-uri-04.nt2
72 files changed, 711 insertions, 0 deletions
diff --git a/test/NTriplesTests/README b/test/NTriplesTests/README
new file mode 100644
index 00000000..12d8bf16
--- /dev/null
+++ b/test/NTriplesTests/README
@@ -0,0 +1,25 @@
+This README is for the W3C RDF Working Group's N-Triples test suite.
+This test suite contains two kinds of tests:
+
+ Positive syntax (rdft:TestNTriplesPositiveSyntax) - an input N-Triples
+ file with no syntax errors.
+
+ Negative syntax (rdft:TestNTriplesNegativeSyntax) - an input N-Triples
+ file with at least one syntax error.
+
+The manifest.ttl file in this directory lists tests in the
+RDF WG's N-Triples test suite. All
+tests have a name (mf:name) and an input (mf:action).
+
+• An implementation passes a positive syntax test if it parses the
+ input.
+
+• An implementation passes a negative syntax test if it fails to parse
+ the input.
+
+The home of the test suite is <http://www.w3.org/2013/N-TriplesTests/>.
+
+See http://www.w3.org/2011/rdf-wg/wiki/RDF_Test_Suites for more details.
+
+Eric Prud'hommeaux <eric+turtle@w3.org> - 11 June 2013.
+Gregg Kellogg <gregg@greggkellogg.net> - 26 June 2013.
diff --git a/test/NTriplesTests/comment_following_triple.nt b/test/NTriplesTests/comment_following_triple.nt
new file mode 100644
index 00000000..5619459a
--- /dev/null
+++ b/test/NTriplesTests/comment_following_triple.nt
@@ -0,0 +1,5 @@
+<http://example/s> <http://example/p> <http://example/o> . # comment
+<http://example/s> <http://example/p> _:o . # comment
+<http://example/s> <http://example/p> "o" . # comment
+<http://example/s> <http://example/p> "o"^^<http://example/dt> . # comment
+<http://example/s> <http://example/p> "o"@en . # comment
diff --git a/test/NTriplesTests/langtagged_string.nt b/test/NTriplesTests/langtagged_string.nt
new file mode 100644
index 00000000..1bddb04e
--- /dev/null
+++ b/test/NTriplesTests/langtagged_string.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "chat"@en .
diff --git a/test/NTriplesTests/lantag_with_subtag.nt b/test/NTriplesTests/lantag_with_subtag.nt
new file mode 100644
index 00000000..629cbf42
--- /dev/null
+++ b/test/NTriplesTests/lantag_with_subtag.nt
@@ -0,0 +1 @@
+<http://example.org/ex#a> <http://example.org/ex#b> "Cheers"@en-UK .
diff --git a/test/NTriplesTests/literal.nt b/test/NTriplesTests/literal.nt
new file mode 100644
index 00000000..3aba89e4
--- /dev/null
+++ b/test/NTriplesTests/literal.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x" .
diff --git a/test/NTriplesTests/literal_all_controls.nt b/test/NTriplesTests/literal_all_controls.nt
new file mode 100644
index 00000000..91c8af14
--- /dev/null
+++ b/test/NTriplesTests/literal_all_controls.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\t\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" .
diff --git a/test/NTriplesTests/literal_all_punctuation.nt b/test/NTriplesTests/literal_all_punctuation.nt
new file mode 100644
index 00000000..c25d818f
--- /dev/null
+++ b/test/NTriplesTests/literal_all_punctuation.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> " !\"#$%&():;<=>?@[]^_`{|}~" .
diff --git a/test/NTriplesTests/literal_ascii_boundaries.nt b/test/NTriplesTests/literal_ascii_boundaries.nt
new file mode 100644
index 00000000..7a4dc717
--- /dev/null
+++ b/test/NTriplesTests/literal_ascii_boundaries.nt
Binary files differ
diff --git a/test/NTriplesTests/literal_false.nt b/test/NTriplesTests/literal_false.nt
new file mode 100644
index 00000000..5bbbae84
--- /dev/null
+++ b/test/NTriplesTests/literal_false.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
diff --git a/test/NTriplesTests/literal_true.nt b/test/NTriplesTests/literal_true.nt
new file mode 100644
index 00000000..054b229f
--- /dev/null
+++ b/test/NTriplesTests/literal_true.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
diff --git a/test/NTriplesTests/literal_with_2_dquotes.nt b/test/NTriplesTests/literal_with_2_dquotes.nt
new file mode 100644
index 00000000..3e69dc10
--- /dev/null
+++ b/test/NTriplesTests/literal_with_2_dquotes.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x\"\"y" .
diff --git a/test/NTriplesTests/literal_with_2_squotes.nt b/test/NTriplesTests/literal_with_2_squotes.nt
new file mode 100644
index 00000000..8ddc52e8
--- /dev/null
+++ b/test/NTriplesTests/literal_with_2_squotes.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x''y" .
diff --git a/test/NTriplesTests/literal_with_BACKSPACE.nt b/test/NTriplesTests/literal_with_BACKSPACE.nt
new file mode 100644
index 00000000..339013df
--- /dev/null
+++ b/test/NTriplesTests/literal_with_BACKSPACE.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\b" .
diff --git a/test/NTriplesTests/literal_with_CARRIAGE_RETURN.nt b/test/NTriplesTests/literal_with_CARRIAGE_RETURN.nt
new file mode 100644
index 00000000..91b85c89
--- /dev/null
+++ b/test/NTriplesTests/literal_with_CARRIAGE_RETURN.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\r" .
diff --git a/test/NTriplesTests/literal_with_CHARACTER_TABULATION.nt b/test/NTriplesTests/literal_with_CHARACTER_TABULATION.nt
new file mode 100644
index 00000000..a6a9d9f0
--- /dev/null
+++ b/test/NTriplesTests/literal_with_CHARACTER_TABULATION.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\t" .
diff --git a/test/NTriplesTests/literal_with_FORM_FEED.nt b/test/NTriplesTests/literal_with_FORM_FEED.nt
new file mode 100644
index 00000000..10d2c6d7
--- /dev/null
+++ b/test/NTriplesTests/literal_with_FORM_FEED.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\f" .
diff --git a/test/NTriplesTests/literal_with_LINE_FEED.nt b/test/NTriplesTests/literal_with_LINE_FEED.nt
new file mode 100644
index 00000000..462f97ac
--- /dev/null
+++ b/test/NTriplesTests/literal_with_LINE_FEED.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\n" .
diff --git a/test/NTriplesTests/literal_with_REVERSE_SOLIDUS.nt b/test/NTriplesTests/literal_with_REVERSE_SOLIDUS.nt
new file mode 100644
index 00000000..ebc846ed
--- /dev/null
+++ b/test/NTriplesTests/literal_with_REVERSE_SOLIDUS.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\\" .
diff --git a/test/NTriplesTests/literal_with_REVERSE_SOLIDUS2.nt b/test/NTriplesTests/literal_with_REVERSE_SOLIDUS2.nt
new file mode 100644
index 00000000..586e364d
--- /dev/null
+++ b/test/NTriplesTests/literal_with_REVERSE_SOLIDUS2.nt
@@ -0,0 +1 @@
+<http://example.org/ns#s> <http://example.org/ns#p1> "test-\\" .
diff --git a/test/NTriplesTests/literal_with_UTF8_boundaries.nt b/test/NTriplesTests/literal_with_UTF8_boundaries.nt
new file mode 100644
index 00000000..0e1616db
--- /dev/null
+++ b/test/NTriplesTests/literal_with_UTF8_boundaries.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "€߿ࠀ࿿က쿿퀀퟿�𐀀𿿽񀀀󿿽􀀀􏿽" .
diff --git a/test/NTriplesTests/literal_with_dquote.nt b/test/NTriplesTests/literal_with_dquote.nt
new file mode 100644
index 00000000..05a1fd3a
--- /dev/null
+++ b/test/NTriplesTests/literal_with_dquote.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x\"y" .
diff --git a/test/NTriplesTests/literal_with_numeric_escape4.nt b/test/NTriplesTests/literal_with_numeric_escape4.nt
new file mode 100644
index 00000000..16f0a036
--- /dev/null
+++ b/test/NTriplesTests/literal_with_numeric_escape4.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\u006F" .
diff --git a/test/NTriplesTests/literal_with_numeric_escape8.nt b/test/NTriplesTests/literal_with_numeric_escape8.nt
new file mode 100644
index 00000000..e909a79d
--- /dev/null
+++ b/test/NTriplesTests/literal_with_numeric_escape8.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\U0000006F" .
diff --git a/test/NTriplesTests/literal_with_squote.nt b/test/NTriplesTests/literal_with_squote.nt
new file mode 100644
index 00000000..acf7f58f
--- /dev/null
+++ b/test/NTriplesTests/literal_with_squote.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x'y" .
diff --git a/test/NTriplesTests/manifest.ttl b/test/NTriplesTests/manifest.ttl
new file mode 100644
index 00000000..246561cb
--- /dev/null
+++ b/test/NTriplesTests/manifest.ttl
@@ -0,0 +1,512 @@
+# N-Triples Syntax tests
+
+@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 ;
+ mf:name "N-Triples tests" ;
+ mf:entries
+ (
+ <#nt-syntax-file-01>
+ <#nt-syntax-file-02>
+ <#nt-syntax-file-03>
+ <#nt-syntax-uri-01>
+ <#nt-syntax-uri-02>
+ <#nt-syntax-uri-03>
+ <#nt-syntax-uri-04>
+ <#nt-syntax-string-01>
+ <#nt-syntax-string-02>
+ <#nt-syntax-string-03>
+ <#nt-syntax-str-esc-01>
+ <#nt-syntax-str-esc-02>
+ <#nt-syntax-str-esc-03>
+ <#nt-syntax-bnode-01>
+ <#nt-syntax-bnode-02>
+ <#nt-syntax-bnode-03>
+ <#nt-syntax-datatypes-01>
+ <#nt-syntax-datatypes-02>
+ <#nt-syntax-bad-uri-01>
+ <#nt-syntax-bad-uri-02>
+ <#nt-syntax-bad-uri-03>
+ <#nt-syntax-bad-uri-04>
+ <#nt-syntax-bad-uri-05>
+ <#nt-syntax-bad-uri-06>
+ <#nt-syntax-bad-uri-07>
+ <#nt-syntax-bad-uri-08>
+ <#nt-syntax-bad-uri-09>
+ <#nt-syntax-bad-prefix-01>
+ <#nt-syntax-bad-base-01>
+ <#nt-syntax-bad-struct-01>
+ <#nt-syntax-bad-struct-02>
+ <#nt-syntax-bad-lang-01>
+ <#nt-syntax-bad-esc-01>
+ <#nt-syntax-bad-esc-02>
+ <#nt-syntax-bad-esc-03>
+ <#nt-syntax-bad-string-01>
+ <#nt-syntax-bad-string-02>
+ <#nt-syntax-bad-string-03>
+ <#nt-syntax-bad-string-04>
+ <#nt-syntax-bad-string-05>
+ <#nt-syntax-bad-string-06>
+ <#nt-syntax-bad-string-07>
+ <#nt-syntax-bad-num-01>
+ <#nt-syntax-bad-num-02>
+ <#nt-syntax-bad-num-03>
+ <#nt-syntax-subm-01>
+ <#comment_following_triple>
+ <#literal>
+ <#literal_all_controls>
+ <#literal_all_punctuation>
+ <#literal_ascii_boundaries>
+ <#literal_with_2_dquotes>
+ <#literal_with_2_squotes>
+ <#literal_with_BACKSPACE>
+ <#literal_with_CARRIAGE_RETURN>
+ <#literal_with_CHARACTER_TABULATION>
+ <#literal_with_dquote>
+ <#literal_with_FORM_FEED>
+ <#literal_with_LINE_FEED>
+ <#literal_with_numeric_escape4>
+ <#literal_with_numeric_escape8>
+ <#literal_with_REVERSE_SOLIDUS>
+ <#literal_with_REVERSE_SOLIDUS2>
+ <#literal_with_squote>
+ <#literal_with_UTF8_boundaries>
+ <#langtagged_string>
+ <#lantag_with_subtag>
+ <#minimal_whitespace>
+ ) .
+
+<#nt-syntax-file-01> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-file-01" ;
+ rdfs:comment "Empty file" ;
+ mf:action <nt-syntax-file-01.nt> ;
+ .
+
+<#nt-syntax-file-02> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-file-02" ;
+ rdfs:comment "Only comment" ;
+ mf:action <nt-syntax-file-02.nt> ;
+ .
+
+<#nt-syntax-file-03> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-file-03" ;
+ rdfs:comment "One comment, one empty line" ;
+ mf:action <nt-syntax-file-03.nt> ;
+ .
+
+<#nt-syntax-uri-01> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-uri-01" ;
+ rdfs:comment "Only IRIs" ;
+ mf:action <nt-syntax-uri-01.nt> ;
+ .
+
+<#nt-syntax-uri-02> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-uri-02" ;
+ rdfs:comment "IRIs with Unicode escape" ;
+ mf:action <nt-syntax-uri-02.nt> ;
+ .
+
+<#nt-syntax-uri-03> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-uri-03" ;
+ rdfs:comment "IRIs with long Unicode escape" ;
+ mf:action <nt-syntax-uri-03.nt> ;
+ .
+
+<#nt-syntax-uri-04> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-uri-04" ;
+ rdfs:comment "Legal IRIs" ;
+ mf:action <nt-syntax-uri-04.nt> ;
+ .
+
+<#nt-syntax-string-01> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-string-01" ;
+ rdfs:comment "string literal" ;
+ mf:action <nt-syntax-string-01.nt> ;
+ .
+
+<#nt-syntax-string-02> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-string-02" ;
+ rdfs:comment "langString literal" ;
+ mf:action <nt-syntax-string-02.nt> ;
+ .
+
+<#nt-syntax-string-03> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-string-03" ;
+ rdfs:comment "langString literal with region" ;
+ mf:action <nt-syntax-string-03.nt> ;
+ .
+
+<#nt-syntax-str-esc-01> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-str-esc-01" ;
+ rdfs:comment "string literal with escaped newline" ;
+ mf:action <nt-syntax-str-esc-01.nt> ;
+ .
+
+<#nt-syntax-str-esc-02> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-str-esc-02" ;
+ rdfs:comment "string literal with Unicode escape" ;
+ mf:action <nt-syntax-str-esc-02.nt> ;
+ .
+
+<#nt-syntax-str-esc-03> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-str-esc-03" ;
+ rdfs:comment "string literal with long Unicode escape" ;
+ mf:action <nt-syntax-str-esc-03.nt> ;
+ .
+
+<#nt-syntax-bnode-01> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-bnode-01" ;
+ rdfs:comment "bnode subject" ;
+ mf:action <nt-syntax-bnode-01.nt> ;
+ .
+
+<#nt-syntax-bnode-02> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-bnode-02" ;
+ rdfs:comment "bnode object" ;
+ mf:action <nt-syntax-bnode-02.nt> ;
+ .
+
+<#nt-syntax-bnode-03> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-bnode-03" ;
+ rdfs:comment "Blank node labels may start with a digit" ;
+ mf:action <nt-syntax-bnode-03.nt> ;
+ .
+
+<#nt-syntax-datatypes-01> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-datatypes-01" ;
+ rdfs:comment "xsd:byte literal" ;
+ mf:action <nt-syntax-datatypes-01.nt> ;
+ .
+
+<#nt-syntax-datatypes-02> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-datatypes-02" ;
+ rdfs:comment "integer as xsd:string" ;
+ mf:action <nt-syntax-datatypes-02.nt> ;
+ .
+
+<#nt-syntax-bad-uri-01> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-uri-01" ;
+ rdfs:comment "Bad IRI : space (negative test)" ;
+ mf:action <nt-syntax-bad-uri-01.nt> ;
+ .
+
+<#nt-syntax-bad-uri-02> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-uri-02" ;
+ rdfs:comment "Bad IRI : bad escape (negative test)" ;
+ mf:action <nt-syntax-bad-uri-02.nt> ;
+ .
+
+<#nt-syntax-bad-uri-03> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-uri-03" ;
+ rdfs:comment "Bad IRI : bad long escape (negative test)" ;
+ mf:action <nt-syntax-bad-uri-03.nt> ;
+ .
+
+<#nt-syntax-bad-uri-04> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-uri-04" ;
+ rdfs:comment "Bad IRI : character escapes not allowed (negative test)" ;
+ mf:action <nt-syntax-bad-uri-04.nt> ;
+ .
+
+<#nt-syntax-bad-uri-05> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-uri-05" ;
+ rdfs:comment "Bad IRI : character escapes not allowed (2) (negative test)" ;
+ mf:action <nt-syntax-bad-uri-05.nt> ;
+ .
+
+<#nt-syntax-bad-uri-06> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-uri-06" ;
+ rdfs:comment "Bad IRI : relative IRI not allowed in subject (negative test)" ;
+ mf:action <nt-syntax-bad-uri-06.nt> ;
+ .
+
+<#nt-syntax-bad-uri-07> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-uri-07" ;
+ rdfs:comment "Bad IRI : relative IRI not allowed in predicate (negative test)" ;
+ mf:action <nt-syntax-bad-uri-07.nt> ;
+ .
+
+<#nt-syntax-bad-uri-08> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-uri-08" ;
+ rdfs:comment "Bad IRI : relative IRI not allowed in object (negative test)" ;
+ mf:action <nt-syntax-bad-uri-08.nt> ;
+ .
+
+<#nt-syntax-bad-uri-09> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-uri-09" ;
+ rdfs:comment "Bad IRI : relative IRI not allowed in datatype (negative test)" ;
+ mf:action <nt-syntax-bad-uri-09.nt> ;
+ .
+
+<#nt-syntax-bad-prefix-01> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-prefix-01" ;
+ rdfs:comment "@prefix not allowed in n-triples (negative test)" ;
+ mf:action <nt-syntax-bad-prefix-01.nt> ;
+ .
+
+<#nt-syntax-bad-base-01> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-base-01" ;
+ rdfs:comment "@base not allowed in N-Triples (negative test)" ;
+ mf:action <nt-syntax-bad-base-01.nt> ;
+ .
+
+<#nt-syntax-bad-struct-01> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-struct-01" ;
+ rdfs:comment "N-Triples does not have objectList (negative test)" ;
+ mf:action <nt-syntax-bad-struct-01.nt> ;
+ .
+
+<#nt-syntax-bad-struct-02> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-struct-02" ;
+ rdfs:comment "N-Triples does not have predicateObjectList (negative test)" ;
+ mf:action <nt-syntax-bad-struct-02.nt> ;
+ .
+
+<#nt-syntax-bad-lang-01> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-lang-01" ;
+ rdfs:comment "langString with bad lang (negative test)" ;
+ mf:action <nt-syntax-bad-lang-01.nt> ;
+ .
+
+<#nt-syntax-bad-esc-01> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-esc-01" ;
+ rdfs:comment "Bad string escape (negative test)" ;
+ mf:action <nt-syntax-bad-esc-01.nt> ;
+ .
+
+<#nt-syntax-bad-esc-02> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-esc-02" ;
+ rdfs:comment "Bad string escape (negative test)" ;
+ mf:action <nt-syntax-bad-esc-02.nt> ;
+ .
+
+<#nt-syntax-bad-esc-03> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-esc-03" ;
+ rdfs:comment "Bad string escape (negative test)" ;
+ mf:action <nt-syntax-bad-esc-03.nt> ;
+ .
+
+<#nt-syntax-bad-string-01> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-string-01" ;
+ rdfs:comment "mismatching string literal open/close (negative test)" ;
+ mf:action <nt-syntax-bad-string-01.nt> ;
+ .
+
+<#nt-syntax-bad-string-02> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-string-02" ;
+ rdfs:comment "mismatching string literal open/close (negative test)" ;
+ mf:action <nt-syntax-bad-string-02.nt> ;
+ .
+
+<#nt-syntax-bad-string-03> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-string-03" ;
+ rdfs:comment "single quotes (negative test)" ;
+ mf:action <nt-syntax-bad-string-03.nt> ;
+ .
+
+<#nt-syntax-bad-string-04> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-string-04" ;
+ rdfs:comment "long single string literal (negative test)" ;
+ mf:action <nt-syntax-bad-string-04.nt> ;
+ .
+
+<#nt-syntax-bad-string-05> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-string-05" ;
+ rdfs:comment "long double string literal (negative test)" ;
+ mf:action <nt-syntax-bad-string-05.nt> ;
+ .
+
+<#nt-syntax-bad-string-06> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-string-06" ;
+ rdfs:comment "string literal with no end (negative test)" ;
+ mf:action <nt-syntax-bad-string-06.nt> ;
+ .
+
+<#nt-syntax-bad-string-07> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-string-07" ;
+ rdfs:comment "string literal with no start (negative test)" ;
+ mf:action <nt-syntax-bad-string-07.nt> ;
+ .
+
+<#nt-syntax-bad-num-01> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-num-01" ;
+ rdfs:comment "no numbers in N-Triples (integer) (negative test)" ;
+ mf:action <nt-syntax-bad-num-01.nt> ;
+ .
+
+<#nt-syntax-bad-num-02> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-num-02" ;
+ rdfs:comment "no numbers in N-Triples (decimal) (negative test)" ;
+ mf:action <nt-syntax-bad-num-02.nt> ;
+ .
+
+<#nt-syntax-bad-num-03> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "nt-syntax-bad-num-03" ;
+ rdfs:comment "no numbers in N-Triples (float) (negative test)" ;
+ mf:action <nt-syntax-bad-num-03.nt> ;
+ .
+
+<#nt-syntax-subm-01> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "nt-syntax-subm-01" ;
+ rdfs:comment "Submission test from Original RDF Test Cases" ;
+ mf:action <nt-syntax-subm-01.nt> ;
+ .
+
+<#comment_following_triple> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "comment_following_triple" ;
+ rdfs:comment "Tests comments after a triple" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <comment_following_triple.nt> ;
+ .
+
+<#literal_ascii_boundaries> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_ascii_boundaries" ;
+ rdfs:comment "literal_ascii_boundaries '\\x00\\x26\\x28...'" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_ascii_boundaries.nt> ;
+ .
+
+<#literal_with_UTF8_boundaries> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_UTF8_boundaries" ;
+ rdfs:comment "literal_with_UTF8_boundaries '\\x80\\x7ff\\x800\\xfff...'" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_UTF8_boundaries.nt> ;
+ .
+
+<#literal_all_controls> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_all_controls" ;
+ rdfs:comment "literal_all_controls '\\x00\\x01\\x02\\x03\\x04...'" ;
+ rdft:approval rdft:Approved ;
+ mf:action <literal_all_controls.nt> ;
+ .
+
+<#literal_all_punctuation> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_all_punctuation" ;
+ rdfs:comment "literal_all_punctuation '!\"#$%&()...'" ;
+ rdft:approval rdft:Approved ;
+ mf:action <literal_all_punctuation.nt> ;
+ .
+
+<#literal_with_squote> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_squote" ;
+ rdfs:comment "literal with squote \"x'y\"" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_squote.nt> ;
+ .
+
+<#literal_with_2_squotes> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_2_squotes" ;
+ rdfs:comment "literal with 2 squotes \"x''y\"" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_2_squotes.nt> ;
+ .
+
+<#literal> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal" ;
+ rdfs:comment "literal \"\"\"x\"\"\"" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal.nt> ;
+ .
+
+<#literal_with_dquote> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_dquote" ;
+ rdfs:comment "literal with dquote \"x\"y\"" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_dquote.nt> ;
+ .
+
+<#literal_with_2_dquotes> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_2_dquotes" ;
+ rdfs:comment "literal with 2 squotes \"\"\"a\"\"b\"\"\"" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_2_dquotes.nt> ;
+ .
+
+<#literal_with_REVERSE_SOLIDUS2> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_REVERSE_SOLIDUS2" ;
+ rdfs:comment "REVERSE SOLIDUS at end of literal" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_REVERSE_SOLIDUS2.nt> ;
+ .
+
+<#literal_with_CHARACTER_TABULATION> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_CHARACTER_TABULATION" ;
+ rdfs:comment "literal with CHARACTER TABULATION" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_CHARACTER_TABULATION.nt> ;
+ .
+
+<#literal_with_BACKSPACE> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_BACKSPACE" ;
+ rdfs:comment "literal with BACKSPACE" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_BACKSPACE.nt> ;
+ .
+
+<#literal_with_LINE_FEED> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_LINE_FEED" ;
+ rdfs:comment "literal with LINE FEED" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_LINE_FEED.nt> ;
+ .
+
+<#literal_with_CARRIAGE_RETURN> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_CARRIAGE_RETURN" ;
+ rdfs:comment "literal with CARRIAGE RETURN" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_CARRIAGE_RETURN.nt> ;
+ .
+
+<#literal_with_FORM_FEED> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_FORM_FEED" ;
+ rdfs:comment "literal with FORM FEED" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_FORM_FEED.nt> ;
+ .
+
+<#literal_with_REVERSE_SOLIDUS> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_REVERSE_SOLIDUS" ;
+ rdfs:comment "literal with REVERSE SOLIDUS" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_REVERSE_SOLIDUS.nt> ;
+ .
+
+<#literal_with_numeric_escape4> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_numeric_escape4" ;
+ rdfs:comment "literal with numeric escape4 \\u" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_numeric_escape4.nt> ;
+ .
+
+<#literal_with_numeric_escape8> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "literal_with_numeric_escape8" ;
+ rdfs:comment "literal with numeric escape8 \\U" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <literal_with_numeric_escape8.nt> ;
+ .
+
+<#langtagged_string> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "langtagged_string" ;
+ rdfs:comment "langtagged string \"x\"@en" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <langtagged_string.nt> ;
+ .
+
+<#lantag_with_subtag> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "lantag_with_subtag" ;
+ rdfs:comment "lantag with subtag \"x\"@en-us" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <lantag_with_subtag.nt> ;
+ .
+
+<#minimal_whitespace> rdf:type rdft:TestNTriplesPositiveSyntax ;
+ mf:name "minimal_whitespace" ;
+ rdfs:comment "tests absense of whitespace between subject, predicate, object and end-of-statement" ;
+ rdft:approval rdft:Proposed ;
+ mf:action <minimal_whitespace.nt> ;
+ .
diff --git a/test/NTriplesTests/minimal_whitespace.nt b/test/NTriplesTests/minimal_whitespace.nt
new file mode 100644
index 00000000..e9e3a801
--- /dev/null
+++ b/test/NTriplesTests/minimal_whitespace.nt
@@ -0,0 +1,6 @@
+<http://example/s><http://example/p><http://example/o>.
+<http://example/s><http://example/p>"Alice".
+<http://example/s><http://example/p>_:o.
+_:s<http://example/p><http://example/o>.
+_:s<http://example/p>"Alice".
+_:s<http://example/p>_:bnode1.
diff --git a/test/NTriplesTests/nt-syntax-bad-base-01.nt b/test/NTriplesTests/nt-syntax-bad-base-01.nt
new file mode 100644
index 00000000..dff1b3b4
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-base-01.nt
@@ -0,0 +1 @@
+@base <http://example/> .
diff --git a/test/NTriplesTests/nt-syntax-bad-esc-01.nt b/test/NTriplesTests/nt-syntax-bad-esc-01.nt
new file mode 100644
index 00000000..f7a88add
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-esc-01.nt
@@ -0,0 +1,2 @@
+# Bad string escape
+<http://example/s> <http://example/p> "a\zb" .
diff --git a/test/NTriplesTests/nt-syntax-bad-esc-02.nt b/test/NTriplesTests/nt-syntax-bad-esc-02.nt
new file mode 100644
index 00000000..72711d49
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-esc-02.nt
@@ -0,0 +1,2 @@
+# Bad string escape
+<http://example/s> <http://example/p> "\uWXYZ" .
diff --git a/test/NTriplesTests/nt-syntax-bad-esc-03.nt b/test/NTriplesTests/nt-syntax-bad-esc-03.nt
new file mode 100644
index 00000000..3a4522fc
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-esc-03.nt
@@ -0,0 +1,2 @@
+# Bad string escape
+<http://example/s> <http://example/p> "\U0000WXYZ" .
diff --git a/test/NTriplesTests/nt-syntax-bad-lang-01.nt b/test/NTriplesTests/nt-syntax-bad-lang-01.nt
new file mode 100644
index 00000000..a4d952c8
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-lang-01.nt
@@ -0,0 +1,2 @@
+# Bad lang tag
+<http://example/s> <http://example/p> "string"@1 .
diff --git a/test/NTriplesTests/nt-syntax-bad-num-01.nt b/test/NTriplesTests/nt-syntax-bad-num-01.nt
new file mode 100644
index 00000000..2be6f516
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-num-01.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 1 .
diff --git a/test/NTriplesTests/nt-syntax-bad-num-02.nt b/test/NTriplesTests/nt-syntax-bad-num-02.nt
new file mode 100644
index 00000000..e1d5b06c
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-num-02.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 1.0 .
diff --git a/test/NTriplesTests/nt-syntax-bad-num-03.nt b/test/NTriplesTests/nt-syntax-bad-num-03.nt
new file mode 100644
index 00000000..a9be82fc
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-num-03.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 1.0e0 .
diff --git a/test/NTriplesTests/nt-syntax-bad-prefix-01.nt b/test/NTriplesTests/nt-syntax-bad-prefix-01.nt
new file mode 100644
index 00000000..89e08cc7
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-prefix-01.nt
@@ -0,0 +1 @@
+@prefix : <http://example/> .
diff --git a/test/NTriplesTests/nt-syntax-bad-string-01.nt b/test/NTriplesTests/nt-syntax-bad-string-01.nt
new file mode 100644
index 00000000..988af87a
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-string-01.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "abc' .
diff --git a/test/NTriplesTests/nt-syntax-bad-string-02.nt b/test/NTriplesTests/nt-syntax-bad-string-02.nt
new file mode 100644
index 00000000..e1d5b06c
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-string-02.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 1.0 .
diff --git a/test/NTriplesTests/nt-syntax-bad-string-03.nt b/test/NTriplesTests/nt-syntax-bad-string-03.nt
new file mode 100644
index 00000000..64d343da
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-string-03.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> 1.0e1 .
diff --git a/test/NTriplesTests/nt-syntax-bad-string-04.nt b/test/NTriplesTests/nt-syntax-bad-string-04.nt
new file mode 100644
index 00000000..af4ff28f
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-string-04.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> '''abc''' .
diff --git a/test/NTriplesTests/nt-syntax-bad-string-05.nt b/test/NTriplesTests/nt-syntax-bad-string-05.nt
new file mode 100644
index 00000000..75ad4b2b
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-string-05.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> """abc""" .
diff --git a/test/NTriplesTests/nt-syntax-bad-string-06.nt b/test/NTriplesTests/nt-syntax-bad-string-06.nt
new file mode 100644
index 00000000..56dcbc60
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-string-06.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "abc .
diff --git a/test/NTriplesTests/nt-syntax-bad-string-07.nt b/test/NTriplesTests/nt-syntax-bad-string-07.nt
new file mode 100644
index 00000000..7f1ee800
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-string-07.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> abc" .
diff --git a/test/NTriplesTests/nt-syntax-bad-struct-01.nt b/test/NTriplesTests/nt-syntax-bad-struct-01.nt
new file mode 100644
index 00000000..d546d564
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-struct-01.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o>, <http://example/o2> .
diff --git a/test/NTriplesTests/nt-syntax-bad-struct-02.nt b/test/NTriplesTests/nt-syntax-bad-struct-02.nt
new file mode 100644
index 00000000..1f388c6e
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-struct-02.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o>; <http://example/p2>, <http://example/o2> .
diff --git a/test/NTriplesTests/nt-syntax-bad-uri-01.nt b/test/NTriplesTests/nt-syntax-bad-uri-01.nt
new file mode 100644
index 00000000..0e69dc0c
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-uri-01.nt
@@ -0,0 +1,2 @@
+# Bad IRI : space.
+<http://example/ space> <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-bad-uri-02.nt b/test/NTriplesTests/nt-syntax-bad-uri-02.nt
new file mode 100644
index 00000000..36d91af9
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-uri-02.nt
@@ -0,0 +1,2 @@
+# Bad IRI : bad escape
+<http://example/\u00ZZ11> <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-bad-uri-03.nt b/test/NTriplesTests/nt-syntax-bad-uri-03.nt
new file mode 100644
index 00000000..f512345f
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-uri-03.nt
@@ -0,0 +1,2 @@
+# Bad IRI : bad escape
+<http://example/\U00ZZ1111> <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-bad-uri-04.nt b/test/NTriplesTests/nt-syntax-bad-uri-04.nt
new file mode 100644
index 00000000..5cab062c
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-uri-04.nt
@@ -0,0 +1,2 @@
+# Bad IRI : character escapes not allowed.
+<http://example/\n> <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-bad-uri-05.nt b/test/NTriplesTests/nt-syntax-bad-uri-05.nt
new file mode 100644
index 00000000..be0a21e0
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-uri-05.nt
@@ -0,0 +1,2 @@
+# Bad IRI : character escapes not allowed.
+<http://example/\/> <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-bad-uri-06.nt b/test/NTriplesTests/nt-syntax-bad-uri-06.nt
new file mode 100644
index 00000000..b4e64592
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-uri-06.nt
@@ -0,0 +1,2 @@
+# No relative IRIs in N-Triples
+<s> <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-bad-uri-07.nt b/test/NTriplesTests/nt-syntax-bad-uri-07.nt
new file mode 100644
index 00000000..74534dde
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-uri-07.nt
@@ -0,0 +1,2 @@
+# No relative IRIs in N-Triples
+<http://example/s> <p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-bad-uri-08.nt b/test/NTriplesTests/nt-syntax-bad-uri-08.nt
new file mode 100644
index 00000000..41a953d4
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-uri-08.nt
@@ -0,0 +1,2 @@
+# No relative IRIs in N-Triples
+<http://example/s> <http://example/p> <o> .
diff --git a/test/NTriplesTests/nt-syntax-bad-uri-09.nt b/test/NTriplesTests/nt-syntax-bad-uri-09.nt
new file mode 100644
index 00000000..58821da8
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bad-uri-09.nt
@@ -0,0 +1,2 @@
+# No relative IRIs in N-Triples
+<http://example/s> <http://example/p> "foo"^^<dt> .
diff --git a/test/NTriplesTests/nt-syntax-bnode-01.nt b/test/NTriplesTests/nt-syntax-bnode-01.nt
new file mode 100644
index 00000000..5fb0d0f9
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bnode-01.nt
@@ -0,0 +1 @@
+_:a <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-bnode-02.nt b/test/NTriplesTests/nt-syntax-bnode-02.nt
new file mode 100644
index 00000000..737e81b4
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bnode-02.nt
@@ -0,0 +1,2 @@
+<http://example/s> <http://example/p> _:a .
+_:a <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-bnode-03.nt b/test/NTriplesTests/nt-syntax-bnode-03.nt
new file mode 100644
index 00000000..1a1f1c9f
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-bnode-03.nt
@@ -0,0 +1,2 @@
+<http://example/s> <http://example/p> _:1a .
+_:1a <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-datatypes-01.nt b/test/NTriplesTests/nt-syntax-datatypes-01.nt
new file mode 100644
index 00000000..91263091
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-datatypes-01.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "123"^^<http://www.w3.org/2001/XMLSchema#byte> .
diff --git a/test/NTriplesTests/nt-syntax-datatypes-02.nt b/test/NTriplesTests/nt-syntax-datatypes-02.nt
new file mode 100644
index 00000000..d49cc27d
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-datatypes-02.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "123"^^<http://www.w3.org/2001/XMLSchema#string> .
diff --git a/test/NTriplesTests/nt-syntax-file-01.nt b/test/NTriplesTests/nt-syntax-file-01.nt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-file-01.nt
diff --git a/test/NTriplesTests/nt-syntax-file-02.nt b/test/NTriplesTests/nt-syntax-file-02.nt
new file mode 100644
index 00000000..e6d327d5
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-file-02.nt
@@ -0,0 +1 @@
+#Empty file.
diff --git a/test/NTriplesTests/nt-syntax-file-03.nt b/test/NTriplesTests/nt-syntax-file-03.nt
new file mode 100644
index 00000000..a9ca0358
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-file-03.nt
@@ -0,0 +1,2 @@
+#One comment, one empty line.
+
diff --git a/test/NTriplesTests/nt-syntax-str-esc-01.nt b/test/NTriplesTests/nt-syntax-str-esc-01.nt
new file mode 100644
index 00000000..3925f2ec
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-str-esc-01.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "a\n" .
diff --git a/test/NTriplesTests/nt-syntax-str-esc-02.nt b/test/NTriplesTests/nt-syntax-str-esc-02.nt
new file mode 100644
index 00000000..e7d032f0
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-str-esc-02.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "a\u0020b" .
diff --git a/test/NTriplesTests/nt-syntax-str-esc-03.nt b/test/NTriplesTests/nt-syntax-str-esc-03.nt
new file mode 100644
index 00000000..b8588c79
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-str-esc-03.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "a\U00000020b" .
diff --git a/test/NTriplesTests/nt-syntax-string-01.nt b/test/NTriplesTests/nt-syntax-string-01.nt
new file mode 100644
index 00000000..5333aefe
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-string-01.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "string" .
diff --git a/test/NTriplesTests/nt-syntax-string-02.nt b/test/NTriplesTests/nt-syntax-string-02.nt
new file mode 100644
index 00000000..1ab55a33
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-string-02.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "string"@en .
diff --git a/test/NTriplesTests/nt-syntax-string-03.nt b/test/NTriplesTests/nt-syntax-string-03.nt
new file mode 100644
index 00000000..b34ca0f6
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-string-03.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> "string"@en-uk .
diff --git a/test/NTriplesTests/nt-syntax-subm-01.nt b/test/NTriplesTests/nt-syntax-subm-01.nt
new file mode 100644
index 00000000..91b49889
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-subm-01.nt
@@ -0,0 +1,79 @@
+#
+# Copyright World Wide Web Consortium, (Massachusetts Institute of
+# Technology, Institut National de Recherche en Informatique et en
+# Automatique, Keio University).
+#
+# All Rights Reserved.
+#
+# Please see the full Copyright clause at
+# <http://www.w3.org/Consortium/Legal/copyright-software.html>
+#
+# Test file with a variety of legal N-Triples
+#
+# Dave Beckett - http://purl.org/net/dajobe/
+#
+# $Id: test.nt,v 1.7 2003/10/06 15:52:19 dbeckett2 Exp $
+#
+#####################################################################
+
+# comment lines
+ # comment line after whitespace
+# empty blank line, then one with spaces and tabs
+
+
+<http://example.org/resource1> <http://example.org/property> <http://example.org/resource2> .
+_:anon <http://example.org/property> <http://example.org/resource2> .
+<http://example.org/resource2> <http://example.org/property> _:anon .
+# spaces and tabs throughout:
+ <http://example.org/resource3> <http://example.org/property> <http://example.org/resource2> .
+
+# line ending with CR NL (ASCII 13, ASCII 10)
+<http://example.org/resource4> <http://example.org/property> <http://example.org/resource2> .
+
+# 2 statement lines separated by single CR (ASCII 10)
+<http://example.org/resource5> <http://example.org/property> <http://example.org/resource2> .
+<http://example.org/resource6> <http://example.org/property> <http://example.org/resource2> .
+
+
+# All literal escapes
+<http://example.org/resource7> <http://example.org/property> "simple literal" .
+<http://example.org/resource8> <http://example.org/property> "backslash:\\" .
+<http://example.org/resource9> <http://example.org/property> "dquote:\"" .
+<http://example.org/resource10> <http://example.org/property> "newline:\n" .
+<http://example.org/resource11> <http://example.org/property> "return\r" .
+<http://example.org/resource12> <http://example.org/property> "tab:\t" .
+
+# Space is optional before final .
+<http://example.org/resource13> <http://example.org/property> <http://example.org/resource2>.
+<http://example.org/resource14> <http://example.org/property> "x".
+<http://example.org/resource15> <http://example.org/property> _:anon.
+
+# \u and \U escapes
+# latin small letter e with acute symbol \u00E9 - 3 UTF-8 bytes #xC3 #A9
+<http://example.org/resource16> <http://example.org/property> "\u00E9" .
+# Euro symbol \u20ac - 3 UTF-8 bytes #xE2 #x82 #xAC
+<http://example.org/resource17> <http://example.org/property> "\u20AC" .
+# resource18 test removed
+# resource19 test removed
+# resource20 test removed
+
+# XML Literals as Datatyped Literals
+<http://example.org/resource21> <http://example.org/property> ""^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
+<http://example.org/resource22> <http://example.org/property> " "^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
+<http://example.org/resource23> <http://example.org/property> "x"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
+<http://example.org/resource23> <http://example.org/property> "\""^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
+<http://example.org/resource24> <http://example.org/property> "<a></a>"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
+<http://example.org/resource25> <http://example.org/property> "a <b></b>"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
+<http://example.org/resource26> <http://example.org/property> "a <b></b> c"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
+<http://example.org/resource26> <http://example.org/property> "a\n<b></b>\nc"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
+<http://example.org/resource27> <http://example.org/property> "chat"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> .
+# resource28 test removed 2003-08-03
+# resource29 test removed 2003-08-03
+
+# Plain literals with languages
+<http://example.org/resource30> <http://example.org/property> "chat"@fr .
+<http://example.org/resource31> <http://example.org/property> "chat"@en .
+
+# Typed Literals
+<http://example.org/resource32> <http://example.org/property> "abc"^^<http://example.org/datatype1> .
+# resource33 test removed 2003-08-03
diff --git a/test/NTriplesTests/nt-syntax-uri-01.nt b/test/NTriplesTests/nt-syntax-uri-01.nt
new file mode 100644
index 00000000..02e6ba98
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-uri-01.nt
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-uri-02.nt b/test/NTriplesTests/nt-syntax-uri-02.nt
new file mode 100644
index 00000000..664feea1
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-uri-02.nt
@@ -0,0 +1,2 @@
+# x53 is capital S
+<http://example/\u0053> <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-uri-03.nt b/test/NTriplesTests/nt-syntax-uri-03.nt
new file mode 100644
index 00000000..b5aeb26e
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-uri-03.nt
@@ -0,0 +1,2 @@
+# x53 is capital S
+<http://example/\U00000053> <http://example/p> <http://example/o> .
diff --git a/test/NTriplesTests/nt-syntax-uri-04.nt b/test/NTriplesTests/nt-syntax-uri-04.nt
new file mode 100644
index 00000000..49bacca7
--- /dev/null
+++ b/test/NTriplesTests/nt-syntax-uri-04.nt
@@ -0,0 +1,2 @@
+# IRI with all chars in it.
+<http://example/s> <http://example/p> <scheme:!$%25&'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> .