aboutsummaryrefslogtreecommitdiffstats
path: root/tests/JSONLDTests
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2017-11-11 14:00:49 +0100
committerDavid Robillard <d@drobilla.net>2019-05-25 11:15:50 +0200
commit5da18484b9af2406caff5f0daeeb493ead13fc70 (patch)
treeaf0d9f683d434c828d14b10b81f33355b1a74fd2 /tests/JSONLDTests
parentd14838cf7217d27e499908fe324ebf4cd7863ed8 (diff)
downloadserd-5da18484b9af2406caff5f0daeeb493ead13fc70.tar.gz
serd-5da18484b9af2406caff5f0daeeb493ead13fc70.tar.bz2
serd-5da18484b9af2406caff5f0daeeb493ead13fc70.zip
Add JSON-LD test suite
Diffstat (limited to 'tests/JSONLDTests')
-rw-r--r--tests/JSONLDTests/manifest.ttl1137
-rw-r--r--tests/JSONLDTests/toRdf-0001-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0001-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0002-in.jsonld5
-rw-r--r--tests/JSONLDTests/toRdf-0002-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0003-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0003-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0004-in.jsonld6
-rw-r--r--tests/JSONLDTests/toRdf-0004-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0005-in.jsonld6
-rw-r--r--tests/JSONLDTests/toRdf-0005-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0006-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0006-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0007-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0007-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0008-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0008-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0009-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0009-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0010-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0010-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0011-in.jsonld9
-rw-r--r--tests/JSONLDTests/toRdf-0011-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0012-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0012-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0013-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0013-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0014-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0014-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0015-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0015-out.nq5
-rw-r--r--tests/JSONLDTests/toRdf-0016-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0016-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0017-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0017-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0018-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0018-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0019-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0019-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0020-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0020-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0022-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0022-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0023-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0023-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0024-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0024-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0025-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0025-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0026-in.jsonld4
-rw-r--r--tests/JSONLDTests/toRdf-0026-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0027-in.jsonld30
-rw-r--r--tests/JSONLDTests/toRdf-0027-out.nq8
-rw-r--r--tests/JSONLDTests/toRdf-0028-in.jsonld19
-rw-r--r--tests/JSONLDTests/toRdf-0028-out.nq6
-rw-r--r--tests/JSONLDTests/toRdf-0029-in.jsonld18
-rw-r--r--tests/JSONLDTests/toRdf-0029-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0030-in.jsonld28
-rw-r--r--tests/JSONLDTests/toRdf-0030-out.nq7
-rw-r--r--tests/JSONLDTests/toRdf-0031-in.jsonld15
-rw-r--r--tests/JSONLDTests/toRdf-0031-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0032-in.jsonld16
-rw-r--r--tests/JSONLDTests/toRdf-0032-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0033-in.jsonld19
-rw-r--r--tests/JSONLDTests/toRdf-0033-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0034-in.jsonld16
-rw-r--r--tests/JSONLDTests/toRdf-0034-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0035-in.jsonld14
-rw-r--r--tests/JSONLDTests/toRdf-0035-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0036-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0036-out.nq6
-rw-r--r--tests/JSONLDTests/toRdf-0041-in.jsonld1
-rw-r--r--tests/JSONLDTests/toRdf-0041-out.nq0
-rw-r--r--tests/JSONLDTests/toRdf-0042-in.jsonld18
-rw-r--r--tests/JSONLDTests/toRdf-0042-out.nq7
-rw-r--r--tests/JSONLDTests/toRdf-0043-in.jsonld12
-rw-r--r--tests/JSONLDTests/toRdf-0043-out.nq0
-rw-r--r--tests/JSONLDTests/toRdf-0044-in.jsonld21
-rw-r--r--tests/JSONLDTests/toRdf-0044-out.nq11
-rw-r--r--tests/JSONLDTests/toRdf-0045-in.jsonld23
-rw-r--r--tests/JSONLDTests/toRdf-0045-out.nq6
-rw-r--r--tests/JSONLDTests/toRdf-0046-in.jsonld20
-rw-r--r--tests/JSONLDTests/toRdf-0046-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0047-in.jsonld18
-rw-r--r--tests/JSONLDTests/toRdf-0047-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0048-in.jsonld9
-rw-r--r--tests/JSONLDTests/toRdf-0048-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0049-in.jsonld43
-rw-r--r--tests/JSONLDTests/toRdf-0049-out.nq9
-rw-r--r--tests/JSONLDTests/toRdf-0050-in.jsonld11
-rw-r--r--tests/JSONLDTests/toRdf-0050-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0051-in.jsonld13
-rw-r--r--tests/JSONLDTests/toRdf-0051-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0052-in.jsonld39
-rw-r--r--tests/JSONLDTests/toRdf-0052-out.nq9
-rw-r--r--tests/JSONLDTests/toRdf-0053-in.jsonld9
-rw-r--r--tests/JSONLDTests/toRdf-0053-out.nq7
-rw-r--r--tests/JSONLDTests/toRdf-0054-in.jsonld50
-rw-r--r--tests/JSONLDTests/toRdf-0054-out.nq6
-rw-r--r--tests/JSONLDTests/toRdf-0055-in.jsonld14
-rw-r--r--tests/JSONLDTests/toRdf-0055-out.nq6
-rw-r--r--tests/JSONLDTests/toRdf-0056-in.jsonld30
-rw-r--r--tests/JSONLDTests/toRdf-0056-out.nq9
-rw-r--r--tests/JSONLDTests/toRdf-0057-in.jsonld45
-rw-r--r--tests/JSONLDTests/toRdf-0057-out.nq9
-rw-r--r--tests/JSONLDTests/toRdf-0058-in.jsonld24
-rw-r--r--tests/JSONLDTests/toRdf-0058-out.nq9
-rw-r--r--tests/JSONLDTests/toRdf-0059-in.jsonld6
-rw-r--r--tests/JSONLDTests/toRdf-0059-out.nq0
-rw-r--r--tests/JSONLDTests/toRdf-0060-in.jsonld51
-rw-r--r--tests/JSONLDTests/toRdf-0060-out.nq11
-rw-r--r--tests/JSONLDTests/toRdf-0061-in.jsonld56
-rw-r--r--tests/JSONLDTests/toRdf-0061-out.nq13
-rw-r--r--tests/JSONLDTests/toRdf-0062-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0062-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0063-in.jsonld21
-rw-r--r--tests/JSONLDTests/toRdf-0063-out.nq16
-rw-r--r--tests/JSONLDTests/toRdf-0064-in.jsonld14
-rw-r--r--tests/JSONLDTests/toRdf-0064-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0065-in.jsonld9
-rw-r--r--tests/JSONLDTests/toRdf-0065-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0066-in.jsonld20
-rw-r--r--tests/JSONLDTests/toRdf-0066-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0067-in.jsonld9
-rw-r--r--tests/JSONLDTests/toRdf-0067-out.nq12
-rw-r--r--tests/JSONLDTests/toRdf-0068-in.jsonld13
-rw-r--r--tests/JSONLDTests/toRdf-0068-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0069-in.jsonld32
-rw-r--r--tests/JSONLDTests/toRdf-0069-out.nq34
-rw-r--r--tests/JSONLDTests/toRdf-0070-in.jsonld14
-rw-r--r--tests/JSONLDTests/toRdf-0070-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0071-in.jsonld13
-rw-r--r--tests/JSONLDTests/toRdf-0071-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0072-in.jsonld11
-rw-r--r--tests/JSONLDTests/toRdf-0072-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0073-in.jsonld14
-rw-r--r--tests/JSONLDTests/toRdf-0073-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0074-in.jsonld16
-rw-r--r--tests/JSONLDTests/toRdf-0074-out.nq5
-rw-r--r--tests/JSONLDTests/toRdf-0075-in.jsonld18
-rw-r--r--tests/JSONLDTests/toRdf-0075-out.nq5
-rw-r--r--tests/JSONLDTests/toRdf-0076-in.jsonld90
-rw-r--r--tests/JSONLDTests/toRdf-0076-out.nq25
-rw-r--r--tests/JSONLDTests/toRdf-0077-in.jsonld13
-rw-r--r--tests/JSONLDTests/toRdf-0077-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0078-in.jsonld38
-rw-r--r--tests/JSONLDTests/toRdf-0078-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0079-in.jsonld14
-rw-r--r--tests/JSONLDTests/toRdf-0079-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0080-in.jsonld23
-rw-r--r--tests/JSONLDTests/toRdf-0080-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0081-in.jsonld14
-rw-r--r--tests/JSONLDTests/toRdf-0081-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0082-in.jsonld12
-rw-r--r--tests/JSONLDTests/toRdf-0082-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0083-in.jsonld20
-rw-r--r--tests/JSONLDTests/toRdf-0083-out.nq5
-rw-r--r--tests/JSONLDTests/toRdf-0084-in.jsonld16
-rw-r--r--tests/JSONLDTests/toRdf-0084-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0085-in.jsonld3
-rw-r--r--tests/JSONLDTests/toRdf-0085-out.nq0
-rw-r--r--tests/JSONLDTests/toRdf-0086-in.jsonld14
-rw-r--r--tests/JSONLDTests/toRdf-0086-out.nq0
-rw-r--r--tests/JSONLDTests/toRdf-0087-in.jsonld28
-rw-r--r--tests/JSONLDTests/toRdf-0087-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0088-in.jsonld19
-rw-r--r--tests/JSONLDTests/toRdf-0088-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0089-in.jsonld12
-rw-r--r--tests/JSONLDTests/toRdf-0089-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0090-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0090-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0091-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0091-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0092-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0092-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0093-in.jsonld6
-rw-r--r--tests/JSONLDTests/toRdf-0093-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0094-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0094-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0095-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0095-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0096-in.jsonld13
-rw-r--r--tests/JSONLDTests/toRdf-0096-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0097-in.jsonld6
-rw-r--r--tests/JSONLDTests/toRdf-0097-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0098-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0098-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0099-in.jsonld16
-rw-r--r--tests/JSONLDTests/toRdf-0099-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0100-in.jsonld30
-rw-r--r--tests/JSONLDTests/toRdf-0100-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0101-in.jsonld9
-rw-r--r--tests/JSONLDTests/toRdf-0101-out.nq4
-rw-r--r--tests/JSONLDTests/toRdf-0102-in.jsonld35
-rw-r--r--tests/JSONLDTests/toRdf-0102-out.nq38
-rw-r--r--tests/JSONLDTests/toRdf-0103-in.jsonld18
-rw-r--r--tests/JSONLDTests/toRdf-0103-out.nq5
-rw-r--r--tests/JSONLDTests/toRdf-0104-in.jsonld16
-rw-r--r--tests/JSONLDTests/toRdf-0104-out.nq5
-rw-r--r--tests/JSONLDTests/toRdf-0105-in.jsonld18
-rw-r--r--tests/JSONLDTests/toRdf-0105-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0106-in.jsonld19
-rw-r--r--tests/JSONLDTests/toRdf-0106-out.nq5
-rw-r--r--tests/JSONLDTests/toRdf-0107-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0107-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0108-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0108-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0109-in.jsonld9
-rw-r--r--tests/JSONLDTests/toRdf-0109-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0110-in.jsonld9
-rw-r--r--tests/JSONLDTests/toRdf-0110-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0111-in.jsonld15
-rw-r--r--tests/JSONLDTests/toRdf-0111-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0112-in.jsonld13
-rw-r--r--tests/JSONLDTests/toRdf-0112-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0113-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0113-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0114-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0114-out.nq1
-rw-r--r--tests/JSONLDTests/toRdf-0115-in.jsonld20
-rw-r--r--tests/JSONLDTests/toRdf-0115-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0116-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0116-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0117-in.jsonld7
-rw-r--r--tests/JSONLDTests/toRdf-0117-out.nq2
-rw-r--r--tests/JSONLDTests/toRdf-0118-in.jsonld38
-rw-r--r--tests/JSONLDTests/toRdf-0118-out.nq9
-rw-r--r--tests/JSONLDTests/toRdf-0119-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0119-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0120-in.jsonld47
-rw-r--r--tests/JSONLDTests/toRdf-0120-out.nq42
-rw-r--r--tests/JSONLDTests/toRdf-0121-in.jsonld47
-rw-r--r--tests/JSONLDTests/toRdf-0121-out.nq42
-rw-r--r--tests/JSONLDTests/toRdf-0122-in.jsonld47
-rw-r--r--tests/JSONLDTests/toRdf-0122-out.nq42
-rw-r--r--tests/JSONLDTests/toRdf-0123-in.jsonld47
-rw-r--r--tests/JSONLDTests/toRdf-0123-out.nq42
-rw-r--r--tests/JSONLDTests/toRdf-0124-in.jsonld47
-rw-r--r--tests/JSONLDTests/toRdf-0124-out.nq42
-rw-r--r--tests/JSONLDTests/toRdf-0125-in.jsonld47
-rw-r--r--tests/JSONLDTests/toRdf-0125-out.nq42
-rw-r--r--tests/JSONLDTests/toRdf-0126-in.jsonld47
-rw-r--r--tests/JSONLDTests/toRdf-0126-out.nq42
-rw-r--r--tests/JSONLDTests/toRdf-0127-in.jsonld11
-rw-r--r--tests/JSONLDTests/toRdf-0127-out.nq6
-rw-r--r--tests/JSONLDTests/toRdf-0128-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0128-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-0129-in.jsonld8
-rw-r--r--tests/JSONLDTests/toRdf-0129-out.nq3
-rw-r--r--tests/JSONLDTests/toRdf-manifest.jsonld882
250 files changed, 4909 insertions, 0 deletions
diff --git a/tests/JSONLDTests/manifest.ttl b/tests/JSONLDTests/manifest.ttl
new file mode 100644
index 00000000..4fa3ec7a
--- /dev/null
+++ b/tests/JSONLDTests/manifest.ttl
@@ -0,0 +1,1137 @@
+@prefix dc: <http://purl.org/dc/terms/> .
+@prefix jld: <https://json-ld.org/test-suite/vocab#> .
+@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xml: <http://www.w3.org/XML/1998/namespace> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<>
+ a mf:Manifest ;
+ rdfs:comment "JSON-LD to RDF tests generate N-Quads output and use string comparison." ;
+ mf:entries (
+ <#t0001>
+ <#t0002>
+ <#t0003>
+ <#t0004>
+ <#t0005>
+ <#t0006>
+ <#t0007>
+ <#t0008>
+ <#t0009>
+ <#t0010>
+ <#t0011>
+ <#t0012>
+ <#t0013>
+ <#t0014>
+ <#t0015>
+ <#t0016>
+ <#t0017>
+ <#t0018>
+ <#t0019>
+ <#t0020>
+ <#t0022>
+ <#t0023>
+ <#t0024>
+ <#t0025>
+ <#t0026>
+ <#t0027>
+ <#t0028>
+ <#t0029>
+ <#t0030>
+ <#t0031>
+ <#t0032>
+ <#t0033>
+ <#t0034>
+ <#t0035>
+ <#t0036>
+ <#t0041>
+ <#t0042>
+ <#t0043>
+ <#t0044>
+ <#t0045>
+ <#t0046>
+ <#t0047>
+ <#t0048>
+ <#t0049>
+ <#t0050>
+ <#t0051>
+ <#t0052>
+ <#t0053>
+ <#t0054>
+ <#t0055>
+ <#t0056>
+ <#t0057>
+ <#t0058>
+ <#t0059>
+ <#t0060>
+ <#t0061>
+ <#t0062>
+ <#t0063>
+ <#t0064>
+ <#t0065>
+ <#t0066>
+ <#t0067>
+ <#t0068>
+ <#t0069>
+ <#t0070>
+ <#t0071>
+ <#t0072>
+ <#t0073>
+ <#t0074>
+ <#t0075>
+ <#t0076>
+ <#t0077>
+ <#t0078>
+ <#t0079>
+ <#t0080>
+ <#t0081>
+ <#t0082>
+ <#t0083>
+ <#t0084>
+ <#t0085>
+ <#t0086>
+ <#t0087>
+ <#t0088>
+ <#t0089>
+ <#t0090>
+ <#t0091>
+ <#t0092>
+ <#t0093>
+ <#t0094>
+ <#t0095>
+ <#t0096>
+ <#t0097>
+ <#t0098>
+ <#t0099>
+ <#t0100>
+ <#t0101>
+ <#t0102>
+ <#t0103>
+ <#t0104>
+ <#t0105>
+ <#t0106>
+ <#t0107>
+ <#t0108>
+ <#t0109>
+ <#t0110>
+ <#t0111>
+ <#t0112>
+ <#t0113>
+ <#t0114>
+ <#t0115>
+ <#t0116>
+ <#t0117>
+ <#t0118>
+ <#t0119>
+ <#t0120>
+ <#t0121>
+ <#t0122>
+ <#t0123>
+ <#t0124>
+ <#t0125>
+ <#t0126>
+ <#t0127>
+ <#t0128>
+ <#t0129>
+ ) .
+
+<toRdf-manifest.jsonld>
+ mf:name "Transform JSON-LD to RDF" ;
+ jld:baseIri "http://json-ld.org/test-suite/tests/" .
+
+<#t0001>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests generation of a triple using full URIs and a plain literal." ;
+ mf:action <toRdf-0001-in.jsonld> ;
+ mf:name "Plain literal with URIs" ;
+ mf:result <toRdf-0001-out.nq> .
+
+<#t0002>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests generation of a triple using a CURIE defined in the default context." ;
+ mf:action <toRdf-0002-in.jsonld> ;
+ mf:name "Plain literal with CURIE from default context" ;
+ mf:result <toRdf-0002-out.nq> .
+
+<#t0003>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that a BNode is created if no explicit subject is set." ;
+ mf:action <toRdf-0003-in.jsonld> ;
+ mf:name "Default subject is BNode" ;
+ mf:result <toRdf-0003-out.nq> .
+
+<#t0004>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that a plain literal is created with a language tag." ;
+ mf:action <toRdf-0004-in.jsonld> ;
+ mf:name "Literal with language tag" ;
+ mf:result <toRdf-0004-out.nq> .
+
+<#t0005>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that a literal may be created using extended characters." ;
+ mf:action <toRdf-0005-in.jsonld> ;
+ mf:name "Extended character set literal" ;
+ mf:result <toRdf-0005-out.nq> .
+
+<#t0006>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests creation of a literal with a datatype." ;
+ mf:action <toRdf-0006-in.jsonld> ;
+ mf:name "Typed literal" ;
+ mf:result <toRdf-0006-out.nq> .
+
+<#t0007>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment """Verify that 'a' is an alias for rdf:type, and the object is created as an IRI.""" ;
+ mf:action <toRdf-0007-in.jsonld> ;
+ mf:name """Tests 'a' generates rdf:type and object is implicit IRI""" ;
+ mf:result <toRdf-0007-out.nq> .
+
+<#t0008>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Generate an IRI using a prefix defined within an @context." ;
+ mf:action <toRdf-0008-in.jsonld> ;
+ mf:name "Test prefix defined in @context" ;
+ mf:result <toRdf-0008-out.nq> .
+
+<#t0009>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "An empty suffix may be used." ;
+ mf:action <toRdf-0009-in.jsonld> ;
+ mf:name "Test using an empty suffix" ;
+ mf:result <toRdf-0009-out.nq> .
+
+<#t0010>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "A property referencing an associative array gets object from subject of array." ;
+ mf:action <toRdf-0010-in.jsonld> ;
+ mf:name "Test object processing defines object" ;
+ mf:result <toRdf-0010-out.nq> .
+
+<#t0011>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "If no @ is specified, a BNode is created, and will be used as the object of an enclosing property." ;
+ mf:action <toRdf-0011-in.jsonld> ;
+ mf:name "Test object processing defines object with implicit BNode" ;
+ mf:result <toRdf-0011-out.nq> .
+
+<#t0012>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that Multiple Objects are for a Single Property using array syntax." ;
+ mf:action <toRdf-0012-in.jsonld> ;
+ mf:name "Multiple Objects for a Single Property" ;
+ mf:result <toRdf-0012-out.nq> .
+
+<#t0013>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that @list: [] generates an empty list." ;
+ mf:action <toRdf-0013-in.jsonld> ;
+ mf:name "Creation of an empty list" ;
+ mf:result <toRdf-0013-out.nq> .
+
+<#t0014>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that @list generates a list." ;
+ mf:action <toRdf-0014-in.jsonld> ;
+ mf:name "Creation of a list with single element" ;
+ mf:result <toRdf-0014-out.nq> .
+
+<#t0015>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that list with multiple elements." ;
+ mf:action <toRdf-0015-in.jsonld> ;
+ mf:name "Creation of a list with multiple elements" ;
+ mf:result <toRdf-0015-out.nq> .
+
+<#t0016>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Expanding an empty IRI uses the test file location." ;
+ mf:action <toRdf-0016-in.jsonld> ;
+ mf:name "Empty IRI expands to resource location" ;
+ mf:result <toRdf-0016-out.nq> .
+
+<#t0017>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Expanding a relative IRI uses the test file location." ;
+ mf:action <toRdf-0017-in.jsonld> ;
+ mf:name "Relative IRI expands relative resource location" ;
+ mf:result <toRdf-0017-out.nq> .
+
+<#t0018>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Expanding a fragment uses the test file location." ;
+ mf:action <toRdf-0018-in.jsonld> ;
+ mf:name "Frag ID expands relative resource location" ;
+ mf:result <toRdf-0018-out.nq> .
+
+<#t0019>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests coercion of object to anyURI when specified." ;
+ mf:action <toRdf-0019-in.jsonld> ;
+ mf:name "Test type coercion to anyURI" ;
+ mf:result <toRdf-0019-out.nq> .
+
+<#t0020>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests coercion of object to a typed literal when specified." ;
+ mf:action <toRdf-0020-in.jsonld> ;
+ mf:name "Test type coercion to typed literal" ;
+ mf:result <toRdf-0020-out.nq> .
+
+<#t0022>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that a decimal value generates a xsd:double typed literal;." ;
+ mf:action <toRdf-0022-in.jsonld> ;
+ mf:name "Test coercion of double value" ;
+ mf:result <toRdf-0022-out.nq> .
+
+<#t0023>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that a decimal value generates a xsd:integer typed literal." ;
+ mf:action <toRdf-0023-in.jsonld> ;
+ mf:name "Test coercion of integer value" ;
+ mf:result <toRdf-0023-out.nq> .
+
+<#t0024>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that a decimal value generates a xsd:boolean typed literal." ;
+ mf:action <toRdf-0024-in.jsonld> ;
+ mf:name "Test coercion of boolean value" ;
+ mf:result <toRdf-0024-out.nq> .
+
+<#t0025>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that an array with a single element on a property with @list coercion creates an RDF Collection." ;
+ mf:action <toRdf-0025-in.jsonld> ;
+ mf:name "Test list coercion with single element" ;
+ mf:result <toRdf-0025-out.nq> .
+
+<#t0026>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that @type with an array of types creates multiple types." ;
+ mf:action <toRdf-0026-in.jsonld> ;
+ mf:name "Test creation of multiple types" ;
+ mf:result <toRdf-0026-out.nq> .
+
+<#t0027>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Using @graph with other keys places triples in a named graph." ;
+ mf:action <toRdf-0027-in.jsonld> ;
+ mf:name "Simple named graph (Wikidata)" ;
+ mf:result <toRdf-0027-out.nq> .
+
+<#t0028>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Signing a graph." ;
+ mf:action <toRdf-0028-in.jsonld> ;
+ mf:name "Simple named graph" ;
+ mf:result <toRdf-0028-out.nq> .
+
+<#t0029>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that named graphs containing named graphs flatten to single level of graph naming." ;
+ mf:action <toRdf-0029-in.jsonld> ;
+ mf:name "named graph with embedded named graph" ;
+ mf:result <toRdf-0029-out.nq> .
+
+<#t0030>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests graphs containing subject references as strings." ;
+ mf:action <toRdf-0030-in.jsonld> ;
+ mf:name "top-level graph with string subject reference" ;
+ mf:result <toRdf-0030-out.nq> .
+
+<#t0031>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests conversion of reverse properties." ;
+ mf:action <toRdf-0031-in.jsonld> ;
+ mf:name "Reverse property" ;
+ mf:result <toRdf-0031-out.nq> .
+
+<#t0032>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that generated triples do not depend on order of @context." ;
+ mf:action <toRdf-0032-in.jsonld> ;
+ mf:name "@context reordering" ;
+ mf:result <toRdf-0032-out.nq> .
+
+<#t0033>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that generated triples do not depend on order of @id." ;
+ mf:action <toRdf-0033-in.jsonld> ;
+ mf:name "@id reordering" ;
+ mf:result <toRdf-0033-out.nq> .
+
+<#t0034>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Tests that generated triples do not depend on order of properties inside @context." ;
+ mf:action <toRdf-0034-in.jsonld> ;
+ mf:name "context properties reordering" ;
+ mf:result <toRdf-0034-out.nq> .
+
+<#t0035>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment """xsd:double's canonical lexical is used when converting numbers without fraction that are coerced to xsd:double""" ;
+ mf:action <toRdf-0035-in.jsonld> ;
+ mf:name "non-fractional numbers converted to xsd:double" ;
+ mf:result <toRdf-0035-out.nq> .
+
+<#t0036>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "The toRDF algorithm does not relabel blank nodes; it reuses the counter from the nodeMapGeneration to generate new ones" ;
+ mf:action <toRdf-0036-in.jsonld> ;
+ mf:name "Use nodeMapGeneration bnode labels" ;
+ mf:result <toRdf-0036-out.nq> .
+
+<#t0041>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Free-floating nodes do not generate RDF triples" ;
+ mf:action <toRdf-0041-in.jsonld> ;
+ mf:name "drop free-floating nodes" ;
+ mf:result <toRdf-0041-out.nq> .
+
+<#t0042>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Basic RDF conversion" ;
+ mf:action <toRdf-0042-in.jsonld> ;
+ mf:name "basic" ;
+ mf:result <toRdf-0042-out.nq> .
+
+<#t0043>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Properties mapped to null or which are never mapped are dropped" ;
+ mf:action <toRdf-0043-in.jsonld> ;
+ mf:name "drop null and unmapped properties" ;
+ mf:result <toRdf-0043-out.nq> .
+
+<#t0044>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0004" ;
+ mf:action <toRdf-0044-in.jsonld> ;
+ mf:name "optimize @set, keep empty arrays" ;
+ mf:result <toRdf-0044-out.nq> .
+
+<#t0045>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0005" ;
+ mf:action <toRdf-0045-in.jsonld> ;
+ mf:name "do not expand aliased @id/@type" ;
+ mf:result <toRdf-0045-out.nq> .
+
+<#t0046>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0006" ;
+ mf:action <toRdf-0046-in.jsonld> ;
+ mf:name "alias keywords" ;
+ mf:result <toRdf-0046-out.nq> .
+
+<#t0047>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Type-coerced dates generate typed literals" ;
+ mf:action <toRdf-0047-in.jsonld> ;
+ mf:name "date type-coercion" ;
+ mf:result <toRdf-0047-out.nq> .
+
+<#t0048>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0008" ;
+ mf:action <toRdf-0048-in.jsonld> ;
+ mf:name "@value with @language" ;
+ mf:result <toRdf-0048-out.nq> .
+
+<#t0049>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0009" ;
+ mf:action <toRdf-0049-in.jsonld> ;
+ mf:name "@graph with terms" ;
+ mf:result <toRdf-0049-out.nq> .
+
+<#t0050>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Native types generate typed literals" ;
+ mf:action <toRdf-0050-in.jsonld> ;
+ mf:name "native types" ;
+ mf:result <toRdf-0050-out.nq> .
+
+<#t0051>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0011" ;
+ mf:action <toRdf-0051-in.jsonld> ;
+ mf:name "coerced @id" ;
+ mf:result <toRdf-0051-out.nq> .
+
+<#t0052>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0012" ;
+ mf:action <toRdf-0052-in.jsonld> ;
+ mf:name "@graph with embed" ;
+ mf:result <toRdf-0052-out.nq> .
+
+<#t0053>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0013" ;
+ mf:action <toRdf-0053-in.jsonld> ;
+ mf:name "expand already expanded" ;
+ mf:result <toRdf-0053-out.nq> .
+
+<#t0054>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0014" ;
+ mf:action <toRdf-0054-in.jsonld> ;
+ mf:name "@set of @value objects with keyword aliases" ;
+ mf:result <toRdf-0054-out.nq> .
+
+<#t0055>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0015" ;
+ mf:action <toRdf-0055-in.jsonld> ;
+ mf:name "collapse set of sets, keep empty lists" ;
+ mf:result <toRdf-0055-out.nq> .
+
+<#t0056>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0016" ;
+ mf:action <toRdf-0056-in.jsonld> ;
+ mf:name "context reset" ;
+ mf:result <toRdf-0056-out.nq> .
+
+<#t0057>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0017" ;
+ mf:action <toRdf-0057-in.jsonld> ;
+ mf:name "@graph and @id aliased" ;
+ mf:result <toRdf-0057-out.nq> .
+
+<#t0058>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0018" ;
+ mf:action <toRdf-0058-in.jsonld> ;
+ mf:name "override default @language" ;
+ mf:result <toRdf-0058-out.nq> .
+
+<#t0059>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0019" ;
+ mf:action <toRdf-0059-in.jsonld> ;
+ mf:name "remove @value = null" ;
+ mf:result <toRdf-0059-out.nq> .
+
+<#t0060>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Embedded @graph without @id creates BNode-labeled named graph" ;
+ mf:action <toRdf-0060-in.jsonld> ;
+ mf:name "do not remove @graph if not at top-level" ;
+ mf:result <toRdf-0060-out.nq> .
+
+<#t0061>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0021" ;
+ mf:action <toRdf-0061-in.jsonld> ;
+ mf:name "do not remove @graph at top-level if not only property" ;
+ mf:result <toRdf-0061-out.nq> .
+
+<#t0062>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0022" ;
+ mf:action <toRdf-0062-in.jsonld> ;
+ mf:name "expand value with default language" ;
+ mf:result <toRdf-0062-out.nq> .
+
+<#t0063>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0023" ;
+ mf:action <toRdf-0063-in.jsonld> ;
+ mf:name "Lists and sets of properties with list/set coercion" ;
+ mf:result <toRdf-0063-out.nq> .
+
+<#t0064>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0024" ;
+ mf:action <toRdf-0064-in.jsonld> ;
+ mf:name "Multiple contexts" ;
+ mf:result <toRdf-0064-out.nq> .
+
+<#t0065>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0025" ;
+ mf:action <toRdf-0065-in.jsonld> ;
+ mf:name "Problematic IRI expansion tests" ;
+ mf:result <toRdf-0065-out.nq> .
+
+<#t0066>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0026" ;
+ mf:action <toRdf-0066-in.jsonld> ;
+ mf:name "Expanding term mapping to @type uses @type syntax" ;
+ mf:result <toRdf-0066-out.nq> .
+
+<#t0067>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0027" ;
+ mf:action <toRdf-0067-in.jsonld> ;
+ mf:name "Keep duplicate values in @list and @set" ;
+ mf:result <toRdf-0067-out.nq> .
+
+<#t0068>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0028" ;
+ mf:action <toRdf-0068-in.jsonld> ;
+ mf:name "Use @vocab in properties and @type but not in @id" ;
+ mf:result <toRdf-0068-out.nq> .
+
+<#t0069>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0029" ;
+ mf:action <toRdf-0069-in.jsonld> ;
+ mf:name "Relative IRIs" ;
+ mf:result <toRdf-0069-out.nq> .
+
+<#t0070>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0030" ;
+ mf:action <toRdf-0070-in.jsonld> ;
+ mf:name "Language maps" ;
+ mf:result <toRdf-0070-out.nq> .
+
+<#t0071>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0031" ;
+ mf:action <toRdf-0071-in.jsonld> ;
+ mf:name "type-coercion of native types" ;
+ mf:result <toRdf-0071-out.nq> .
+
+<#t0072>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0032" ;
+ mf:action <toRdf-0072-in.jsonld> ;
+ mf:name "Mapping a term to null decouples it from @vocab" ;
+ mf:result <toRdf-0072-out.nq> .
+
+<#t0073>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0033" ;
+ mf:action <toRdf-0073-in.jsonld> ;
+ mf:name "Using @vocab with with type-coercion" ;
+ mf:result <toRdf-0073-out.nq> .
+
+<#t0074>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0034" ;
+ mf:action <toRdf-0074-in.jsonld> ;
+ mf:name "Multiple properties expanding to the same IRI" ;
+ mf:result <toRdf-0074-out.nq> .
+
+<#t0075>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0035" ;
+ mf:action <toRdf-0075-in.jsonld> ;
+ mf:name "Language maps with @vocab, default language, and colliding property" ;
+ mf:result <toRdf-0075-out.nq> .
+
+<#t0076>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0036" ;
+ mf:action <toRdf-0076-in.jsonld> ;
+ mf:name "Expanding @index" ;
+ mf:result <toRdf-0076-out.nq> .
+
+<#t0077>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0037" ;
+ mf:action <toRdf-0077-in.jsonld> ;
+ mf:name "Expanding @reverse" ;
+ mf:result <toRdf-0077-out.nq> .
+
+<#t0078>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Triples with blank node predicates are dropped by default." ;
+ mf:action <toRdf-0078-in.jsonld> ;
+ mf:name "Drop blank node predicates by default" ;
+ mf:result <toRdf-0078-out.nq> .
+
+<#t0079>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0039" ;
+ mf:action <toRdf-0079-in.jsonld> ;
+ mf:name "Using terms in a reverse-maps" ;
+ mf:result <toRdf-0079-out.nq> .
+
+<#t0080>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0040" ;
+ mf:action <toRdf-0080-in.jsonld> ;
+ mf:name "language and index expansion on non-objects" ;
+ mf:result <toRdf-0080-out.nq> .
+
+<#t0081>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0041" ;
+ mf:action <toRdf-0081-in.jsonld> ;
+ mf:name "Reset the default language" ;
+ mf:result <toRdf-0081-out.nq> .
+
+<#t0082>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0042" ;
+ mf:action <toRdf-0082-in.jsonld> ;
+ mf:name "Expanding reverse properties" ;
+ mf:result <toRdf-0082-out.nq> .
+
+<#t0083>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0043" ;
+ mf:action <toRdf-0083-in.jsonld> ;
+ mf:name "Using reverse properties inside a @reverse-container" ;
+ mf:result <toRdf-0083-out.nq> .
+
+<#t0084>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0044" ;
+ mf:action <toRdf-0084-in.jsonld> ;
+ mf:name "Ensure index maps use language mapping" ;
+ mf:result <toRdf-0084-out.nq> .
+
+<#t0085>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0045" ;
+ mf:action <toRdf-0085-in.jsonld> ;
+ mf:name "Top-level value objects are removed" ;
+ mf:result <toRdf-0085-out.nq> .
+
+<#t0086>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0046" ;
+ mf:action <toRdf-0086-in.jsonld> ;
+ mf:name "Free-floating nodes are removed" ;
+ mf:result <toRdf-0086-out.nq> .
+
+<#t0087>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0047" ;
+ mf:action <toRdf-0087-in.jsonld> ;
+ mf:name "Remove free-floating set values and lists" ;
+ mf:result <toRdf-0087-out.nq> .
+
+<#t0088>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0048" ;
+ mf:action <toRdf-0088-in.jsonld> ;
+ mf:name "Terms are ignored in @id" ;
+ mf:result <toRdf-0088-out.nq> .
+
+<#t0089>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0049" ;
+ mf:action <toRdf-0089-in.jsonld> ;
+ mf:name "Using strings as value of a reverse property" ;
+ mf:result <toRdf-0089-out.nq> .
+
+<#t0090>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0050" ;
+ mf:action <toRdf-0090-in.jsonld> ;
+ mf:name "Term definitions with prefix separate from prefix definitions" ;
+ mf:result <toRdf-0090-out.nq> .
+
+<#t0091>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0051" ;
+ mf:action <toRdf-0091-in.jsonld> ;
+ mf:name "Expansion of keyword aliases in term definitions" ;
+ mf:result <toRdf-0091-out.nq> .
+
+<#t0092>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0052" ;
+ mf:action <toRdf-0092-in.jsonld> ;
+ mf:name "@vocab-relative IRIs in term definitions" ;
+ mf:result <toRdf-0092-out.nq> .
+
+<#t0093>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0053" ;
+ mf:action <toRdf-0093-in.jsonld> ;
+ mf:name "Expand absolute IRI with @type: @vocab" ;
+ mf:result <toRdf-0093-out.nq> .
+
+<#t0094>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0054" ;
+ mf:action <toRdf-0094-in.jsonld> ;
+ mf:name "Expand term with @type: @vocab" ;
+ mf:result <toRdf-0094-out.nq> .
+
+<#t0095>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0055" ;
+ mf:action <toRdf-0095-in.jsonld> ;
+ mf:name "Expand @vocab-relative term with @type: @vocab" ;
+ mf:result <toRdf-0095-out.nq> .
+
+<#t0096>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0056" ;
+ mf:action <toRdf-0096-in.jsonld> ;
+ mf:name "Use terms with @type: @vocab but not with @type: @id" ;
+ mf:result <toRdf-0096-out.nq> .
+
+<#t0097>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0057" ;
+ mf:action <toRdf-0097-in.jsonld> ;
+ mf:name "Expand relative IRI with @type: @vocab" ;
+ mf:result <toRdf-0097-out.nq> .
+
+<#t0098>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0058" ;
+ mf:action <toRdf-0098-in.jsonld> ;
+ mf:name "Expand compact IRI with @type: @vocab" ;
+ mf:result <toRdf-0098-out.nq> .
+
+<#t0099>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0059" ;
+ mf:action <toRdf-0099-in.jsonld> ;
+ mf:name "Reset @vocab by setting it to null" ;
+ mf:result <toRdf-0099-out.nq> .
+
+<#t0100>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0060" ;
+ mf:action <toRdf-0100-in.jsonld> ;
+ mf:name "Overwrite document base with @base and reset it again" ;
+ mf:result <toRdf-0100-out.nq> .
+
+<#t0101>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0061" ;
+ mf:action <toRdf-0101-in.jsonld> ;
+ mf:name "Coercing native types to arbitrary datatypes" ;
+ mf:result <toRdf-0101-out.nq> .
+
+<#t0102>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0062" ;
+ mf:action <toRdf-0102-in.jsonld> ;
+ mf:name "Various relative IRIs with with @base" ;
+ mf:result <toRdf-0102-out.nq> .
+
+<#t0103>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0063" ;
+ mf:action <toRdf-0103-in.jsonld> ;
+ mf:name "Expand a reverse property with an index-container" ;
+ mf:result <toRdf-0103-out.nq> .
+
+<#t0104>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0064" ;
+ mf:action <toRdf-0104-in.jsonld> ;
+ mf:name "Expand reverse property whose values are unlabeled blank nodes" ;
+ mf:result <toRdf-0104-out.nq> .
+
+<#t0105>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0065" ;
+ mf:action <toRdf-0105-in.jsonld> ;
+ mf:name "Keys that are not mapped to an IRI in a reverse-map are dropped" ;
+ mf:result <toRdf-0105-out.nq> .
+
+<#t0106>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0066" ;
+ mf:action <toRdf-0106-in.jsonld> ;
+ mf:name "Use @vocab to expand keys in reverse-maps" ;
+ mf:result <toRdf-0106-out.nq> .
+
+<#t0107>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0067" ;
+ mf:action <toRdf-0107-in.jsonld> ;
+ mf:name "prefix:://sufffix not a compact IRI" ;
+ mf:result <toRdf-0107-out.nq> .
+
+<#t0108>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0068" ;
+ mf:action <toRdf-0108-in.jsonld> ;
+ mf:name "_::sufffix not a compact IRI" ;
+ mf:result <toRdf-0108-out.nq> .
+
+<#t0109>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0069" ;
+ mf:action <toRdf-0109-in.jsonld> ;
+ mf:name "Compact IRI as term with type mapping" ;
+ mf:result <toRdf-0109-out.nq> .
+
+<#t0110>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0070" ;
+ mf:action <toRdf-0110-in.jsonld> ;
+ mf:name "Redefine compact IRI with itself" ;
+ mf:result <toRdf-0110-out.nq> .
+
+<#t0111>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0071" ;
+ mf:action <toRdf-0111-in.jsonld> ;
+ mf:name "Redefine terms looking like compact IRIs" ;
+ mf:result <toRdf-0111-out.nq> .
+
+<#t0112>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "RDF version of expand-0072" ;
+ mf:action <toRdf-0112-in.jsonld> ;
+ mf:name "Redefine term using @vocab, not itself" ;
+ mf:result <toRdf-0112-out.nq> .
+
+<#t0113>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Basic use of creating a named graph using an IRI name" ;
+ mf:action <toRdf-0113-in.jsonld> ;
+ mf:name "Dataset with a IRI named graph" ;
+ mf:result <toRdf-0113-out.nq> .
+
+<#t0114>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Basic use of creating a named graph using a BNode name" ;
+ mf:action <toRdf-0114-in.jsonld> ;
+ mf:name "Dataset with a IRI named graph" ;
+ mf:result <toRdf-0114-out.nq> .
+
+<#t0115>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Dataset with a default and two named graphs (IRI and BNode)" ;
+ mf:action <toRdf-0115-in.jsonld> ;
+ mf:name "Dataset with a default and two named graphs" ;
+ mf:result <toRdf-0115-out.nq> .
+
+<#t0116>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Embedding @graph in a node creates a named graph" ;
+ mf:action <toRdf-0116-in.jsonld> ;
+ mf:name "Dataset from node with embedded named graph" ;
+ mf:result <toRdf-0116-out.nq> .
+
+<#t0117>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Embedding @graph in a node creates a named graph. Graph name is created if there is no subject" ;
+ mf:action <toRdf-0117-in.jsonld> ;
+ mf:name "Dataset from node with embedded named graph (bnode)" ;
+ mf:result <toRdf-0117-out.nq> .
+
+<#t0118>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Triples with blank node predicates are not dropped if the produce generalized RDF flag is true." ;
+ mf:action <toRdf-0118-in.jsonld> ;
+ mf:name "produce generalized RDF flag" ;
+ mf:result <toRdf-0118-out.nq> ;
+ jld:option [
+ jld:produceGeneralizedRdf true
+ ] .
+
+<#t0119>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "Proper (re-)labeling of blank nodes if used with reverse properties." ;
+ mf:action <toRdf-0119-in.jsonld> ;
+ mf:name "Blank nodes with reverse properties" ;
+ mf:result <toRdf-0119-out.nq> .
+
+<#t0120>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "IRI resolution according to RFC3986." ;
+ mf:action <toRdf-0120-in.jsonld> ;
+ mf:name "IRI Resolution (0)" ;
+ mf:result <toRdf-0120-out.nq> .
+
+<#t0121>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "IRI resolution according to RFC3986." ;
+ mf:action <toRdf-0121-in.jsonld> ;
+ mf:name "IRI Resolution (1)" ;
+ mf:result <toRdf-0121-out.nq> .
+
+<#t0122>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "IRI resolution according to RFC3986." ;
+ mf:action <toRdf-0122-in.jsonld> ;
+ mf:name "IRI Resolution (2)" ;
+ mf:result <toRdf-0122-out.nq> .
+
+<#t0123>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "IRI resolution according to RFC3986." ;
+ mf:action <toRdf-0123-in.jsonld> ;
+ mf:name "IRI Resolution (3)" ;
+ mf:result <toRdf-0123-out.nq> .
+
+<#t0124>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "IRI resolution according to RFC3986." ;
+ mf:action <toRdf-0124-in.jsonld> ;
+ mf:name "IRI Resolution (4)" ;
+ mf:result <toRdf-0124-out.nq> .
+
+<#t0125>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "IRI resolution according to RFC3986." ;
+ mf:action <toRdf-0125-in.jsonld> ;
+ mf:name "IRI Resolution (5)" ;
+ mf:result <toRdf-0125-out.nq> .
+
+<#t0126>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "IRI resolution according to RFC3986." ;
+ mf:action <toRdf-0126-in.jsonld> ;
+ mf:name "IRI Resolution (6)" ;
+ mf:result <toRdf-0126-out.nq> .
+
+<#t0127>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "IRI resolution according to RFC3986." ;
+ mf:action <toRdf-0127-in.jsonld> ;
+ mf:name "IRI Resolution (7)" ;
+ mf:result <toRdf-0127-out.nq> .
+
+<#t0128>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "IRI resolution according to RFC3986." ;
+ mf:action <toRdf-0128-in.jsonld> ;
+ mf:name "IRI Resolution (8)" ;
+ mf:result <toRdf-0128-out.nq> .
+
+<#t0129>
+ a jld:PositiveEvaluationTest ,
+ jld:ToRDFTest ;
+ rdfs:comment "IRI resolution according to RFC3986." ;
+ mf:action <toRdf-0129-in.jsonld> ;
+ mf:name "IRI Resolution (9)" ;
+ mf:result <toRdf-0129-out.nq> .
+
diff --git a/tests/JSONLDTests/toRdf-0001-in.jsonld b/tests/JSONLDTests/toRdf-0001-in.jsonld
new file mode 100644
index 00000000..fc4e3810
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0001-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://greggkellogg.net/foaf#me",
+ "http://xmlns.com/foaf/0.1/name": "Gregg Kellogg"
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0001-out.nq b/tests/JSONLDTests/toRdf-0001-out.nq
new file mode 100644
index 00000000..f7238bfc
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0001-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
diff --git a/tests/JSONLDTests/toRdf-0002-in.jsonld b/tests/JSONLDTests/toRdf-0002-in.jsonld
new file mode 100644
index 00000000..bd662d13
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0002-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {"foaf": "http://xmlns.com/foaf/0.1/"},
+ "@id": "http://greggkellogg.net/foaf#me",
+ "foaf:name": "Gregg Kellogg"
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0002-out.nq b/tests/JSONLDTests/toRdf-0002-out.nq
new file mode 100644
index 00000000..f7238bfc
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0002-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
diff --git a/tests/JSONLDTests/toRdf-0003-in.jsonld b/tests/JSONLDTests/toRdf-0003-in.jsonld
new file mode 100644
index 00000000..7955fff4
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0003-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foaf": "http://xmlns.com/foaf/0.1/"},
+ "@type": "foaf:Person"
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0003-out.nq b/tests/JSONLDTests/toRdf-0003-out.nq
new file mode 100644
index 00000000..abb5581a
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0003-out.nq
@@ -0,0 +1 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
diff --git a/tests/JSONLDTests/toRdf-0004-in.jsonld b/tests/JSONLDTests/toRdf-0004-in.jsonld
new file mode 100644
index 00000000..31d68b86
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0004-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "http://www.w3.org/2000/01/rdf-schema#label": {
+ "@value": "A plain literal with a lang tag.",
+ "@language": "en-us"
+ }
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0004-out.nq b/tests/JSONLDTests/toRdf-0004-out.nq
new file mode 100644
index 00000000..27d42d9d
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0004-out.nq
@@ -0,0 +1 @@
+_:b0 <http://www.w3.org/2000/01/rdf-schema#label> "A plain literal with a lang tag."@en-us .
diff --git a/tests/JSONLDTests/toRdf-0005-in.jsonld b/tests/JSONLDTests/toRdf-0005-in.jsonld
new file mode 100644
index 00000000..1b04c4e7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0005-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@id": "http://greggkellogg.net/foaf#me",
+ "http://xmlns.com/foaf/0.1/knows": {
+ "http://xmlns.com/foaf/0.1/name": {"@value": "Herman Iván", "@language": "hu"}
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0005-out.nq b/tests/JSONLDTests/toRdf-0005-out.nq
new file mode 100644
index 00000000..69274a94
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0005-out.nq
@@ -0,0 +1,2 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> _:b0 .
+_:b0 <http://xmlns.com/foaf/0.1/name> "Herman Iván"@hu .
diff --git a/tests/JSONLDTests/toRdf-0006-in.jsonld b/tests/JSONLDTests/toRdf-0006-in.jsonld
new file mode 100644
index 00000000..f83b97c5
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0006-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@id": "http://greggkellogg.net/foaf#me",
+ "http://purl.org/dc/terms/created": {
+ "@value": "1957-02-27",
+ "@type": "http://www.w3.org/2001/XMLSchema#date"
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0006-out.nq b/tests/JSONLDTests/toRdf-0006-out.nq
new file mode 100644
index 00000000..232d9928
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0006-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://purl.org/dc/terms/created> "1957-02-27"^^<http://www.w3.org/2001/XMLSchema#date> .
diff --git a/tests/JSONLDTests/toRdf-0007-in.jsonld b/tests/JSONLDTests/toRdf-0007-in.jsonld
new file mode 100644
index 00000000..5d2c77d9
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0007-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://greggkellogg.net/foaf#me",
+ "@type": "http://xmlns.com/foaf/0.1/Person"
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0007-out.nq b/tests/JSONLDTests/toRdf-0007-out.nq
new file mode 100644
index 00000000..7f647003
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0007-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
diff --git a/tests/JSONLDTests/toRdf-0008-in.jsonld b/tests/JSONLDTests/toRdf-0008-in.jsonld
new file mode 100644
index 00000000..f767f653
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0008-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"d": "http://example.com/default#"},
+ "d:foo": "bar"
+}
diff --git a/tests/JSONLDTests/toRdf-0008-out.nq b/tests/JSONLDTests/toRdf-0008-out.nq
new file mode 100644
index 00000000..b9aed32f
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0008-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/default#foo> "bar" .
diff --git a/tests/JSONLDTests/toRdf-0009-in.jsonld b/tests/JSONLDTests/toRdf-0009-in.jsonld
new file mode 100644
index 00000000..5efb8076
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0009-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": "http://example.com/default#"},
+ "foo:": "bar"
+}
diff --git a/tests/JSONLDTests/toRdf-0009-out.nq b/tests/JSONLDTests/toRdf-0009-out.nq
new file mode 100644
index 00000000..20fe7691
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0009-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/default#> "bar" .
diff --git a/tests/JSONLDTests/toRdf-0010-in.jsonld b/tests/JSONLDTests/toRdf-0010-in.jsonld
new file mode 100644
index 00000000..1ecc30b6
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0010-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {"foaf": "http://xmlns.com/foaf/0.1/"},
+ "@id": "http://greggkellogg.net/foaf#me",
+ "foaf:knows": {
+ "@id": "http://manu.sporny.org/#me",
+ "foaf:name": "Manu Sporny"
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0010-out.nq b/tests/JSONLDTests/toRdf-0010-out.nq
new file mode 100644
index 00000000..35c39991
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0010-out.nq
@@ -0,0 +1,2 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> <http://manu.sporny.org/#me> .
+<http://manu.sporny.org/#me> <http://xmlns.com/foaf/0.1/name> "Manu Sporny" .
diff --git a/tests/JSONLDTests/toRdf-0011-in.jsonld b/tests/JSONLDTests/toRdf-0011-in.jsonld
new file mode 100644
index 00000000..853938fa
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0011-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://greggkellogg.net/foaf#me",
+ "foaf:knows": {
+ "foaf:name": "Dave Longley"
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0011-out.nq b/tests/JSONLDTests/toRdf-0011-out.nq
new file mode 100644
index 00000000..019740b5
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0011-out.nq
@@ -0,0 +1,2 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> _:b0 .
+_:b0 <http://xmlns.com/foaf/0.1/name> "Dave Longley" .
diff --git a/tests/JSONLDTests/toRdf-0012-in.jsonld b/tests/JSONLDTests/toRdf-0012-in.jsonld
new file mode 100644
index 00000000..2b326172
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0012-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://greggkellogg.net/foaf#me",
+ "foaf:knows": ["Manu Sporny", "Dave Longley"]
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0012-out.nq b/tests/JSONLDTests/toRdf-0012-out.nq
new file mode 100644
index 00000000..203fc141
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0012-out.nq
@@ -0,0 +1,2 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> "Dave Longley" .
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> "Manu Sporny" .
diff --git a/tests/JSONLDTests/toRdf-0013-in.jsonld b/tests/JSONLDTests/toRdf-0013-in.jsonld
new file mode 100644
index 00000000..d5b025d1
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0013-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://greggkellogg.net/foaf#me",
+ "foaf:knows": {"@list": []}
+}
diff --git a/tests/JSONLDTests/toRdf-0013-out.nq b/tests/JSONLDTests/toRdf-0013-out.nq
new file mode 100644
index 00000000..f334b9bd
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0013-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/tests/JSONLDTests/toRdf-0014-in.jsonld b/tests/JSONLDTests/toRdf-0014-in.jsonld
new file mode 100644
index 00000000..327284f5
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0014-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://greggkellogg.net/foaf#me",
+ "foaf:knows": {"@list": ["Manu Sporny"]}
+}
diff --git a/tests/JSONLDTests/toRdf-0014-out.nq b/tests/JSONLDTests/toRdf-0014-out.nq
new file mode 100644
index 00000000..9a2730cc
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0014-out.nq
@@ -0,0 +1,3 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> _:b0 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "Manu Sporny" .
+_:b0 <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/JSONLDTests/toRdf-0015-in.jsonld b/tests/JSONLDTests/toRdf-0015-in.jsonld
new file mode 100644
index 00000000..b340db46
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0015-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "foaf": "http://xmlns.com/foaf/0.1/"
+ },
+ "@id": "http://greggkellogg.net/foaf#me",
+ "foaf:knows": {"@list": ["Manu Sporny", "Dave Longley"]}
+}
diff --git a/tests/JSONLDTests/toRdf-0015-out.nq b/tests/JSONLDTests/toRdf-0015-out.nq
new file mode 100644
index 00000000..7bab72ef
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0015-out.nq
@@ -0,0 +1,5 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> _:b0 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "Manu Sporny" .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "Dave Longley" .
+_:b1 <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/JSONLDTests/toRdf-0016-in.jsonld b/tests/JSONLDTests/toRdf-0016-in.jsonld
new file mode 100644
index 00000000..bdd01c9b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0016-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "",
+ "@type": "http://www.w3.org/2000/01/rdf-schema#Resource"
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0016-out.nq b/tests/JSONLDTests/toRdf-0016-out.nq
new file mode 100644
index 00000000..0ed95c6e
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0016-out.nq
@@ -0,0 +1 @@
+<http://json-ld.org/test-suite/tests/toRdf-0016-in.jsonld> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
diff --git a/tests/JSONLDTests/toRdf-0017-in.jsonld b/tests/JSONLDTests/toRdf-0017-in.jsonld
new file mode 100644
index 00000000..7e39ca80
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0017-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "a/b",
+ "@type": "http://www.w3.org/2000/01/rdf-schema#Resource"
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0017-out.nq b/tests/JSONLDTests/toRdf-0017-out.nq
new file mode 100644
index 00000000..56e22246
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0017-out.nq
@@ -0,0 +1 @@
+<http://json-ld.org/test-suite/tests/a/b> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
diff --git a/tests/JSONLDTests/toRdf-0018-in.jsonld b/tests/JSONLDTests/toRdf-0018-in.jsonld
new file mode 100644
index 00000000..64ee0c96
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0018-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "#frag",
+ "@type": "http://www.w3.org/2000/01/rdf-schema#Resource"
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0018-out.nq b/tests/JSONLDTests/toRdf-0018-out.nq
new file mode 100644
index 00000000..3d10901d
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0018-out.nq
@@ -0,0 +1 @@
+<http://json-ld.org/test-suite/tests/toRdf-0018-in.jsonld#frag> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
diff --git a/tests/JSONLDTests/toRdf-0019-in.jsonld b/tests/JSONLDTests/toRdf-0019-in.jsonld
new file mode 100644
index 00000000..0e0e3e3f
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0019-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "foaf": "http://xmlns.com/foaf/0.1/",
+ "knows": {"@id": "http://xmlns.com/foaf/0.1/knows", "@type": "@id"}
+ },
+ "@id": "http://greggkellogg.net/foaf#me",
+ "knows": "http://manu.sporny.org/#me"
+}
diff --git a/tests/JSONLDTests/toRdf-0019-out.nq b/tests/JSONLDTests/toRdf-0019-out.nq
new file mode 100644
index 00000000..bbc020fc
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0019-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> <http://manu.sporny.org/#me> .
diff --git a/tests/JSONLDTests/toRdf-0020-in.jsonld b/tests/JSONLDTests/toRdf-0020-in.jsonld
new file mode 100644
index 00000000..804b2fcd
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0020-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "created": {"@id": "http://purl.org/dc/terms/created", "@type": "xsd:date"}
+ },
+ "@id": "http://greggkellogg.net/foaf#me",
+ "created": "1957-02-27"
+}
diff --git a/tests/JSONLDTests/toRdf-0020-out.nq b/tests/JSONLDTests/toRdf-0020-out.nq
new file mode 100644
index 00000000..232d9928
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0020-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://purl.org/dc/terms/created> "1957-02-27"^^<http://www.w3.org/2001/XMLSchema#date> .
diff --git a/tests/JSONLDTests/toRdf-0022-in.jsonld b/tests/JSONLDTests/toRdf-0022-in.jsonld
new file mode 100644
index 00000000..31b76ad2
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0022-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": { "measure": "http://example/measure#"},
+ "measure:cups": 5.3
+}
diff --git a/tests/JSONLDTests/toRdf-0022-out.nq b/tests/JSONLDTests/toRdf-0022-out.nq
new file mode 100644
index 00000000..31092dd7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0022-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/measure#cups> "5.3E0"^^<http://www.w3.org/2001/XMLSchema#double> .
diff --git a/tests/JSONLDTests/toRdf-0023-in.jsonld b/tests/JSONLDTests/toRdf-0023-in.jsonld
new file mode 100644
index 00000000..be260796
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0023-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": { "chem": "http://example/chem#"},
+ "chem:protons": 12
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0023-out.nq b/tests/JSONLDTests/toRdf-0023-out.nq
new file mode 100644
index 00000000..d5a91bd1
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0023-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/chem#protons> "12"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/tests/JSONLDTests/toRdf-0024-in.jsonld b/tests/JSONLDTests/toRdf-0024-in.jsonld
new file mode 100644
index 00000000..777318ae
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0024-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": { "sensor": "http://example/sensor#"},
+ "sensor:active": true
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0024-out.nq b/tests/JSONLDTests/toRdf-0024-out.nq
new file mode 100644
index 00000000..f0582851
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0024-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/sensor#active> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
diff --git a/tests/JSONLDTests/toRdf-0025-in.jsonld b/tests/JSONLDTests/toRdf-0025-in.jsonld
new file mode 100644
index 00000000..a00107b6
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0025-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "knows": {"@id": "http://xmlns.com/foaf/0.1/knows", "@container": "@list"}
+ },
+ "@id": "http://greggkellogg.net/foaf#me",
+ "knows": ["Manu Sporny"]
+}
diff --git a/tests/JSONLDTests/toRdf-0025-out.nq b/tests/JSONLDTests/toRdf-0025-out.nq
new file mode 100644
index 00000000..9a2730cc
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0025-out.nq
@@ -0,0 +1,3 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> _:b0 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "Manu Sporny" .
+_:b0 <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/JSONLDTests/toRdf-0026-in.jsonld b/tests/JSONLDTests/toRdf-0026-in.jsonld
new file mode 100644
index 00000000..bb3ba6a8
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0026-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"rdfs": "http://www.w3.org/2000/01/rdf-schema#"},
+ "@type": ["rdfs:Resource", "rdfs:Class"]
+}
diff --git a/tests/JSONLDTests/toRdf-0026-out.nq b/tests/JSONLDTests/toRdf-0026-out.nq
new file mode 100644
index 00000000..9030c08b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0026-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
diff --git a/tests/JSONLDTests/toRdf-0027-in.jsonld b/tests/JSONLDTests/toRdf-0027-in.jsonld
new file mode 100644
index 00000000..920dcb82
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0027-in.jsonld
@@ -0,0 +1,30 @@
+{
+ "@context": {
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "ex": "http://example.org/",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "ex:locatedIn": {"@type": "@id"},
+ "ex:hasPopulaton": {"@type": "xsd:integer"},
+ "ex:hasReference": {"@type": "@id"}
+ },
+ "@graph": [
+ {
+ "@id": "http://example.org/ParisFact1",
+ "@type": "rdf:Graph",
+ "@graph": {
+ "@id": "http://example.org/location/Paris#this",
+ "ex:locatedIn": "http://example.org/location/France#this"
+ },
+ "ex:hasReference": ["http://www.britannica.com/", "http://www.wikipedia.org/", "http://www.brockhaus.de/"]
+ },
+ {
+ "@id": "http://example.org/ParisFact2",
+ "@type": "rdf:Graph",
+ "@graph": {
+ "@id": "http://example.org/location/Paris#this",
+ "ex:hasPopulation": 7000000
+ },
+ "ex:hasReference": "http://www.wikipedia.org/"
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0027-out.nq b/tests/JSONLDTests/toRdf-0027-out.nq
new file mode 100644
index 00000000..e77f2baa
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0027-out.nq
@@ -0,0 +1,8 @@
+<http://example.org/ParisFact1> <http://example.org/hasReference> <http://www.britannica.com/> .
+<http://example.org/ParisFact1> <http://example.org/hasReference> <http://www.brockhaus.de/> .
+<http://example.org/ParisFact1> <http://example.org/hasReference> <http://www.wikipedia.org/> .
+<http://example.org/ParisFact1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Graph> .
+<http://example.org/ParisFact2> <http://example.org/hasReference> <http://www.wikipedia.org/> .
+<http://example.org/ParisFact2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Graph> .
+<http://example.org/location/Paris#this> <http://example.org/hasPopulation> "7000000"^^<http://www.w3.org/2001/XMLSchema#integer> <http://example.org/ParisFact2> .
+<http://example.org/location/Paris#this> <http://example.org/locatedIn> <http://example.org/location/France#this> <http://example.org/ParisFact1> .
diff --git a/tests/JSONLDTests/toRdf-0028-in.jsonld b/tests/JSONLDTests/toRdf-0028-in.jsonld
new file mode 100644
index 00000000..3795dfb1
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0028-in.jsonld
@@ -0,0 +1,19 @@
+{
+ "@context": {
+ "sec": "http://purl.org/security#",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "dc": "http://purl.org/dc/terms/",
+ "sec:signer": {"@type": "@id"},
+ "dc:created": {"@type": "xsd:dateTime"}
+ },
+ "@id": "http://example.org/sig1",
+ "@type": ["rdf:Graph", "sec:SignedGraph"],
+ "dc:created": "2011-09-23T20:21:34Z",
+ "sec:signer": "http://payswarm.example.com/i/john/keys/5",
+ "sec:signatureValue": "OGQzNGVkMzVm4NTIyZTkZDYMmMzQzNmExMgoYzI43Q3ODIyOWM32NjI=",
+ "@graph": {
+ "@id": "http://example.org/fact1",
+ "dc:title": "Hello World!"
+ }
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0028-out.nq b/tests/JSONLDTests/toRdf-0028-out.nq
new file mode 100644
index 00000000..68b12ab9
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0028-out.nq
@@ -0,0 +1,6 @@
+<http://example.org/fact1> <http://purl.org/dc/terms/title> "Hello World!" <http://example.org/sig1> .
+<http://example.org/sig1> <http://purl.org/dc/terms/created> "2011-09-23T20:21:34Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
+<http://example.org/sig1> <http://purl.org/security#signatureValue> "OGQzNGVkMzVm4NTIyZTkZDYMmMzQzNmExMgoYzI43Q3ODIyOWM32NjI=" .
+<http://example.org/sig1> <http://purl.org/security#signer> <http://payswarm.example.com/i/john/keys/5> .
+<http://example.org/sig1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/security#SignedGraph> .
+<http://example.org/sig1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Graph> .
diff --git a/tests/JSONLDTests/toRdf-0029-in.jsonld b/tests/JSONLDTests/toRdf-0029-in.jsonld
new file mode 100644
index 00000000..4a7a16cc
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0029-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "wd": "http://data.wikipedia.org/vocab#",
+ "ws": "http://data.wikipedia.org/snaks/",
+ "wp": "http://en.wikipedia.org/wiki/"
+ },
+ "@id": "ws:Assertions",
+ "@type": "wd:SnakSet",
+ "@graph": {
+ "@id": "ws:BerlinFact",
+ "@type": "wd:Snak",
+ "@graph": {
+ "@id": "wp:Berlin",
+ "wd:population": 3499879
+ },
+ "wd:assertedBy": "http://www.statistik-berlin-brandenburg.de/"
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0029-out.nq b/tests/JSONLDTests/toRdf-0029-out.nq
new file mode 100644
index 00000000..b3d81238
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0029-out.nq
@@ -0,0 +1,4 @@
+<http://data.wikipedia.org/snaks/Assertions> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.wikipedia.org/vocab#SnakSet> .
+<http://data.wikipedia.org/snaks/BerlinFact> <http://data.wikipedia.org/vocab#assertedBy> "http://www.statistik-berlin-brandenburg.de/" <http://data.wikipedia.org/snaks/Assertions> .
+<http://data.wikipedia.org/snaks/BerlinFact> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.wikipedia.org/vocab#Snak> <http://data.wikipedia.org/snaks/Assertions> .
+<http://en.wikipedia.org/wiki/Berlin> <http://data.wikipedia.org/vocab#population> "3499879"^^<http://www.w3.org/2001/XMLSchema#integer> <http://data.wikipedia.org/snaks/BerlinFact> .
diff --git a/tests/JSONLDTests/toRdf-0030-in.jsonld b/tests/JSONLDTests/toRdf-0030-in.jsonld
new file mode 100644
index 00000000..dc9cff6b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0030-in.jsonld
@@ -0,0 +1,28 @@
+{
+ "@context": {
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "knows": "http://xmlns.com/foaf/0.1/knows",
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "asOf": "http://example.org/asOf"
+ },
+ "@id": "http://example.org/linked-data-graph",
+ "asOf": {"@value": "2012-04-09", "@type": "xsd:date"},
+ "@graph":
+ [
+ {
+ "@id": "http://manu.sporny.org/i/public",
+ "@type": "foaf:Person",
+ "name": "Manu Sporny",
+ "knows": "http://greggkellogg.net/foaf#me"
+ },
+ {
+ "@id": "http://greggkellogg.net/foaf#me",
+ "@type": "foaf:Person",
+ "name": "Gregg Kellogg",
+ "knows": "http://manu.sporny.org/i/public"
+ },
+ {
+ "@id": "http://www.markus-lanthaler.com/"
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0030-out.nq b/tests/JSONLDTests/toRdf-0030-out.nq
new file mode 100644
index 00000000..709e7fb7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0030-out.nq
@@ -0,0 +1,7 @@
+<http://example.org/linked-data-graph> <http://example.org/asOf> "2012-04-09"^^<http://www.w3.org/2001/XMLSchema#date> .
+<http://greggkellogg.net/foaf#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <foaf:Person> <http://example.org/linked-data-graph> .
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/knows> "http://manu.sporny.org/i/public" <http://example.org/linked-data-graph> .
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" <http://example.org/linked-data-graph> .
+<http://manu.sporny.org/i/public> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <foaf:Person> <http://example.org/linked-data-graph> .
+<http://manu.sporny.org/i/public> <http://xmlns.com/foaf/0.1/knows> "http://greggkellogg.net/foaf#me" <http://example.org/linked-data-graph> .
+<http://manu.sporny.org/i/public> <http://xmlns.com/foaf/0.1/name> "Manu Sporny" <http://example.org/linked-data-graph> .
diff --git a/tests/JSONLDTests/toRdf-0031-in.jsonld b/tests/JSONLDTests/toRdf-0031-in.jsonld
new file mode 100644
index 00000000..c3172323
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0031-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "defines": { "@reverse": "rdfs:definedBy" },
+ "label": "rdfs:label"
+ },
+ "@id": "http://example.com/vocab",
+ "label": "My vocabulary",
+ "defines": [
+ {
+ "@id": "http://example.com/vocab#property",
+ "label": "A property"
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0031-out.nq b/tests/JSONLDTests/toRdf-0031-out.nq
new file mode 100644
index 00000000..70485565
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0031-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/vocab#property> <http://www.w3.org/2000/01/rdf-schema#definedBy> <http://example.com/vocab> .
+<http://example.com/vocab#property> <http://www.w3.org/2000/01/rdf-schema#label> "A property" .
+<http://example.com/vocab> <http://www.w3.org/2000/01/rdf-schema#label> "My vocabulary" .
diff --git a/tests/JSONLDTests/toRdf-0032-in.jsonld b/tests/JSONLDTests/toRdf-0032-in.jsonld
new file mode 100644
index 00000000..78873bd8
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0032-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@id": "ex:node1",
+ "owl:sameAs": {
+ "@id": "ex:node2",
+ "rdfs:label": "Node 2",
+ "link": "ex:node3",
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#"
+ }
+ },
+ "@context": {
+ "ex": "http://example.org/",
+ "owl": "http://www.w3.org/2002/07/owl#",
+ "link": { "@id": "ex:link", "@type": "@id" }
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0032-out.nq b/tests/JSONLDTests/toRdf-0032-out.nq
new file mode 100644
index 00000000..119504f6
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0032-out.nq
@@ -0,0 +1,3 @@
+<http://example.org/node1> <http://www.w3.org/2002/07/owl#sameAs> <http://example.org/node2> .
+<http://example.org/node2> <http://example.org/link> <http://example.org/node3> .
+<http://example.org/node2> <http://www.w3.org/2000/01/rdf-schema#label> "Node 2" .
diff --git a/tests/JSONLDTests/toRdf-0033-in.jsonld b/tests/JSONLDTests/toRdf-0033-in.jsonld
new file mode 100644
index 00000000..070a328f
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0033-in.jsonld
@@ -0,0 +1,19 @@
+{
+ "@context": {
+ "ex": "http://example.org/",
+ "owl": "http://www.w3.org/2002/07/owl#",
+ "link": {
+ "@id": "ex:link",
+ "@type": "@id"
+ }
+ },
+ "owl:sameAs": {
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#"
+ },
+ "rdfs:label": "Node 2",
+ "link": "ex:node3",
+ "@id": "ex:node2"
+ },
+ "@id": "ex:node1"
+}
diff --git a/tests/JSONLDTests/toRdf-0033-out.nq b/tests/JSONLDTests/toRdf-0033-out.nq
new file mode 100644
index 00000000..119504f6
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0033-out.nq
@@ -0,0 +1,3 @@
+<http://example.org/node1> <http://www.w3.org/2002/07/owl#sameAs> <http://example.org/node2> .
+<http://example.org/node2> <http://example.org/link> <http://example.org/node3> .
+<http://example.org/node2> <http://www.w3.org/2000/01/rdf-schema#label> "Node 2" .
diff --git a/tests/JSONLDTests/toRdf-0034-in.jsonld b/tests/JSONLDTests/toRdf-0034-in.jsonld
new file mode 100644
index 00000000..e6113232
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0034-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "link": { "@id": "ex:link", "@type": "@id" },
+ "ex": "http://example.org/",
+ "owl": "http://www.w3.org/2002/07/owl#"
+ },
+ "@id": "ex:node1",
+ "owl:sameAs": {
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#"
+ },
+ "@id": "ex:node2",
+ "rdfs:label": "Node 2",
+ "link": "ex:node3"
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0034-out.nq b/tests/JSONLDTests/toRdf-0034-out.nq
new file mode 100644
index 00000000..119504f6
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0034-out.nq
@@ -0,0 +1,3 @@
+<http://example.org/node1> <http://www.w3.org/2002/07/owl#sameAs> <http://example.org/node2> .
+<http://example.org/node2> <http://example.org/link> <http://example.org/node3> .
+<http://example.org/node2> <http://www.w3.org/2000/01/rdf-schema#label> "Node 2" .
diff --git a/tests/JSONLDTests/toRdf-0035-in.jsonld b/tests/JSONLDTests/toRdf-0035-in.jsonld
new file mode 100644
index 00000000..bf6a9502
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0035-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "double": {
+ "@id": "http://example.com/double",
+ "@type": "http://www.w3.org/2001/XMLSchema#double"
+ },
+ "integer": {
+ "@id": "http://example.com/integer",
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ }
+ },
+ "double": [1, 2.2 ],
+ "integer": [8, 9.9 ]
+}
diff --git a/tests/JSONLDTests/toRdf-0035-out.nq b/tests/JSONLDTests/toRdf-0035-out.nq
new file mode 100644
index 00000000..cbbaaedb
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0035-out.nq
@@ -0,0 +1,4 @@
+_:b0 <http://example.com/double> "1.0E0"^^<http://www.w3.org/2001/XMLSchema#double> .
+_:b0 <http://example.com/double> "2.2E0"^^<http://www.w3.org/2001/XMLSchema#double> .
+_:b0 <http://example.com/integer> "8"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.com/integer> "9.9E0"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/tests/JSONLDTests/toRdf-0036-in.jsonld b/tests/JSONLDTests/toRdf-0036-in.jsonld
new file mode 100644
index 00000000..0197274c
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0036-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@id": "http://example.com/",
+ "ex:prop1": {
+ "@list": [ { "@id": "_:x1" }, { "@id": "_:x2" } ]
+ },
+ "ex:prop2": { "@id": "_:x3" }
+}
diff --git a/tests/JSONLDTests/toRdf-0036-out.nq b/tests/JSONLDTests/toRdf-0036-out.nq
new file mode 100644
index 00000000..79f81425
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0036-out.nq
@@ -0,0 +1,6 @@
+<http://example.com/> <ex:prop1> _:b3 .
+<http://example.com/> <ex:prop2> _:b2 .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b0 .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b4 .
+_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b1 .
+_:b4 <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/JSONLDTests/toRdf-0041-in.jsonld b/tests/JSONLDTests/toRdf-0041-in.jsonld
new file mode 100644
index 00000000..0bfd26f0
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0041-in.jsonld
@@ -0,0 +1 @@
+{"@id": "http://example.org/test#example"} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0041-out.nq b/tests/JSONLDTests/toRdf-0041-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0041-out.nq
diff --git a/tests/JSONLDTests/toRdf-0042-in.jsonld b/tests/JSONLDTests/toRdf-0042-in.jsonld
new file mode 100644
index 00000000..e4598e55
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0042-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "t1": "http://example.com/t1",
+ "t2": "http://example.com/t2",
+ "term1": "http://example.com/term1",
+ "term2": "http://example.com/term2",
+ "term3": "http://example.com/term3",
+ "term4": "http://example.com/term4",
+ "term5": "http://example.com/term5"
+ },
+ "@id": "http://example.com/id1",
+ "@type": "t1",
+ "term1": "v1",
+ "term2": {"@value": "v2", "@type": "t2"},
+ "term3": {"@value": "v3", "@language": "en"},
+ "term4": 4,
+ "term5": [50, 51]
+}
diff --git a/tests/JSONLDTests/toRdf-0042-out.nq b/tests/JSONLDTests/toRdf-0042-out.nq
new file mode 100644
index 00000000..54f0bc03
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0042-out.nq
@@ -0,0 +1,7 @@
+<http://example.com/id1> <http://example.com/term1> "v1" .
+<http://example.com/id1> <http://example.com/term2> "v2"^^<http://example.com/t2> .
+<http://example.com/id1> <http://example.com/term3> "v3"@en .
+<http://example.com/id1> <http://example.com/term4> "4"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/id1> <http://example.com/term5> "50"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/id1> <http://example.com/term5> "51"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/id1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/t1> .
diff --git a/tests/JSONLDTests/toRdf-0043-in.jsonld b/tests/JSONLDTests/toRdf-0043-in.jsonld
new file mode 100644
index 00000000..2007f363
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0043-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@id": "http://example.org/id",
+ "http://example.org/property": null,
+ "regularJson": {
+ "nonJsonLd": "property",
+ "deep": [{
+ "foo": "bar"
+ }, {
+ "bar": "foo"
+ }]
+ }
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0043-out.nq b/tests/JSONLDTests/toRdf-0043-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0043-out.nq
diff --git a/tests/JSONLDTests/toRdf-0044-in.jsonld b/tests/JSONLDTests/toRdf-0044-in.jsonld
new file mode 100644
index 00000000..8499bfa0
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0044-in.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": {
+ "mylist1": {"@id": "http://example.com/mylist1", "@container": "@list"},
+ "mylist2": {"@id": "http://example.com/mylist2", "@container": "@list"},
+ "myset2": {"@id": "http://example.com/myset2", "@container": "@set"},
+ "myset3": {"@id": "http://example.com/myset3", "@container": "@set"}
+ },
+ "@id": "http://example.org/id",
+ "mylist1": { "@list": [ ] },
+ "mylist2": "one item",
+ "myset2": { "@set": [ ] },
+ "myset3": [ "v1" ],
+ "http://example.org/list1": { "@list": [ null ] },
+ "http://example.org/list2": { "@list": [ {"@value": null} ] },
+ "http://example.org/set1": { "@set": [ ] },
+ "http://example.org/set2": { "@set": [ null ] },
+ "http://example.org/set3": [ ],
+ "http://example.org/set4": [ null ],
+ "http://example.org/set5": "one item",
+ "http://example.org/property": { "@list": "one item" }
+}
diff --git a/tests/JSONLDTests/toRdf-0044-out.nq b/tests/JSONLDTests/toRdf-0044-out.nq
new file mode 100644
index 00000000..fdb2e633
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0044-out.nq
@@ -0,0 +1,11 @@
+<http://example.org/id> <http://example.com/mylist1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://example.org/id> <http://example.com/mylist2> _:b0 .
+<http://example.org/id> <http://example.com/myset3> "v1" .
+<http://example.org/id> <http://example.org/list1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://example.org/id> <http://example.org/list2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://example.org/id> <http://example.org/property> _:b1 .
+<http://example.org/id> <http://example.org/set5> "one item" .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "one item" .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "one item" .
+_:b1 <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/JSONLDTests/toRdf-0045-in.jsonld b/tests/JSONLDTests/toRdf-0045-in.jsonld
new file mode 100644
index 00000000..33622d53
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0045-in.jsonld
@@ -0,0 +1,23 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "homepage": {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ },
+ "know": "http://xmlns.com/foaf/0.1/knows",
+ "@iri": "@id"
+ },
+ "@id": "#me",
+ "know": [
+ {
+ "@id": "http://example.com/bob#me",
+ "name": "Bob",
+ "homepage": "http://example.com/bob"
+ }, {
+ "@id": "http://example.com/alice#me",
+ "name": "Alice",
+ "homepage": "http://example.com/alice"
+ }
+ ]
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0045-out.nq b/tests/JSONLDTests/toRdf-0045-out.nq
new file mode 100644
index 00000000..fa46f903
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0045-out.nq
@@ -0,0 +1,6 @@
+<http://example.com/alice#me> <http://xmlns.com/foaf/0.1/homepage> <http://example.com/alice> .
+<http://example.com/alice#me> <http://xmlns.com/foaf/0.1/name> "Alice" .
+<http://example.com/bob#me> <http://xmlns.com/foaf/0.1/homepage> <http://example.com/bob> .
+<http://example.com/bob#me> <http://xmlns.com/foaf/0.1/name> "Bob" .
+<http://json-ld.org/test-suite/tests/toRdf-0045-in.jsonld#me> <http://xmlns.com/foaf/0.1/knows> <http://example.com/alice#me> .
+<http://json-ld.org/test-suite/tests/toRdf-0045-in.jsonld#me> <http://xmlns.com/foaf/0.1/knows> <http://example.com/bob#me> .
diff --git a/tests/JSONLDTests/toRdf-0046-in.jsonld b/tests/JSONLDTests/toRdf-0046-in.jsonld
new file mode 100644
index 00000000..045e2a2a
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0046-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "http://example.org/test#property1": {
+ "@type": "@id"
+ },
+ "http://example.org/test#property2": {
+ "@type": "@id"
+ },
+ "uri": "@id"
+ },
+ "http://example.org/test#property1": {
+ "http://example.org/test#property4": "foo",
+ "uri": "http://example.org/test#example2"
+ },
+ "http://example.org/test#property2": "http://example.org/test#example3",
+ "http://example.org/test#property3": {
+ "uri": "http://example.org/test#example4"
+ },
+ "uri": "http://example.org/test#example1"
+}
diff --git a/tests/JSONLDTests/toRdf-0046-out.nq b/tests/JSONLDTests/toRdf-0046-out.nq
new file mode 100644
index 00000000..a9213cf3
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0046-out.nq
@@ -0,0 +1,4 @@
+<http://example.org/test#example1> <http://example.org/test#property1> <http://example.org/test#example2> .
+<http://example.org/test#example1> <http://example.org/test#property2> <http://example.org/test#example3> .
+<http://example.org/test#example1> <http://example.org/test#property3> <http://example.org/test#example4> .
+<http://example.org/test#example2> <http://example.org/test#property4> "foo" .
diff --git a/tests/JSONLDTests/toRdf-0047-in.jsonld b/tests/JSONLDTests/toRdf-0047-in.jsonld
new file mode 100644
index 00000000..b49fac4e
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0047-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "ex": "http://example.org/vocab#",
+ "ex:date": {
+ "@type": "xsd:dateTime"
+ },
+ "ex:parent": {
+ "@type": "@id"
+ },
+ "xsd": "http://www.w3.org/2001/XMLSchema#"
+ },
+ "@id": "http://example.org/test#example1",
+ "ex:date": "2011-01-25T00:00:00Z",
+ "ex:embed": {
+ "@id": "http://example.org/test#example2",
+ "ex:parent": "http://example.org/test#example1"
+ }
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0047-out.nq b/tests/JSONLDTests/toRdf-0047-out.nq
new file mode 100644
index 00000000..5f833b1d
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0047-out.nq
@@ -0,0 +1,3 @@
+<http://example.org/test#example1> <http://example.org/vocab#date> "2011-01-25T00:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
+<http://example.org/test#example1> <http://example.org/vocab#embed> <http://example.org/test#example2> .
+<http://example.org/test#example2> <http://example.org/vocab#parent> <http://example.org/test#example1> .
diff --git a/tests/JSONLDTests/toRdf-0048-in.jsonld b/tests/JSONLDTests/toRdf-0048-in.jsonld
new file mode 100644
index 00000000..a17b9493
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0048-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "ex": "http://example.org/vocab#"
+ },
+ "@id": "http://example.org/test",
+ "ex:test": { "@value": "test", "@language": "en" },
+ "ex:drop-lang-only": { "@language": "en" },
+ "ex:keep-full-value": { "@value": "only value" }
+}
diff --git a/tests/JSONLDTests/toRdf-0048-out.nq b/tests/JSONLDTests/toRdf-0048-out.nq
new file mode 100644
index 00000000..d0af636b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0048-out.nq
@@ -0,0 +1,2 @@
+<http://example.org/test> <http://example.org/vocab#keep-full-value> "only value" .
+<http://example.org/test> <http://example.org/vocab#test> "test"@en .
diff --git a/tests/JSONLDTests/toRdf-0049-in.jsonld b/tests/JSONLDTests/toRdf-0049-in.jsonld
new file mode 100644
index 00000000..6acef5c5
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0049-in.jsonld
@@ -0,0 +1,43 @@
+{
+ "@context": {
+ "authored": {
+ "@id": "http://example.org/vocab#authored",
+ "@type": "@id"
+ },
+ "contains": {
+ "@id": "http://example.org/vocab#contains",
+ "@type": "@id"
+ },
+ "contributor": "http://purl.org/dc/elements/1.1/contributor",
+ "description": "http://purl.org/dc/elements/1.1/description",
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "title": {
+ "@id": "http://purl.org/dc/elements/1.1/title"
+ }
+ },
+ "@graph": [
+ {
+ "@id": "http://example.org/test#chapter",
+ "description": "Fun",
+ "title": "Chapter One"
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "authored": "http://example.org/test#chapter",
+ "name": "Jane"
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "name": "John"
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "contains": {
+ "@id": "http://example.org/test#book",
+ "contains": "http://example.org/test#chapter",
+ "contributor": "Writer",
+ "title": "My Book"
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0049-out.nq b/tests/JSONLDTests/toRdf-0049-out.nq
new file mode 100644
index 00000000..1c8d94af
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0049-out.nq
@@ -0,0 +1,9 @@
+<http://example.org/test#book> <http://example.org/vocab#contains> <http://example.org/test#chapter> .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/contributor> "Writer" .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/title> "My Book" .
+<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/description> "Fun" .
+<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/title> "Chapter One" .
+<http://example.org/test#jane> <http://example.org/vocab#authored> <http://example.org/test#chapter> .
+<http://example.org/test#jane> <http://xmlns.com/foaf/0.1/name> "Jane" .
+<http://example.org/test#john> <http://xmlns.com/foaf/0.1/name> "John" .
+<http://example.org/test#library> <http://example.org/vocab#contains> <http://example.org/test#book> .
diff --git a/tests/JSONLDTests/toRdf-0050-in.jsonld b/tests/JSONLDTests/toRdf-0050-in.jsonld
new file mode 100644
index 00000000..f2d0a384
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0050-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "d": "http://purl.org/dc/elements/1.1/",
+ "e": "http://example.org/vocab#",
+ "f": "http://xmlns.com/foaf/0.1/",
+ "xsd": "http://www.w3.org/2001/XMLSchema#"
+ },
+ "@id": "http://example.org/test",
+ "e:bool": true,
+ "e:int": 123
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0050-out.nq b/tests/JSONLDTests/toRdf-0050-out.nq
new file mode 100644
index 00000000..5fe1cc05
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0050-out.nq
@@ -0,0 +1,2 @@
+<http://example.org/test> <http://example.org/vocab#bool> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.org/test> <http://example.org/vocab#int> "123"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/tests/JSONLDTests/toRdf-0051-in.jsonld b/tests/JSONLDTests/toRdf-0051-in.jsonld
new file mode 100644
index 00000000..15815597
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0051-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "ex": "http://example.org/vocab#",
+ "ex:contains": {
+ "@type": "@id"
+ },
+ "xsd": "http://www.w3.org/2001/XMLSchema#"
+ },
+ "@id": "http://example.org/test#book",
+ "dc:title": "Title",
+ "ex:contains": "http://example.org/test#chapter"
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0051-out.nq b/tests/JSONLDTests/toRdf-0051-out.nq
new file mode 100644
index 00000000..c581db6a
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0051-out.nq
@@ -0,0 +1,2 @@
+<http://example.org/test#book> <http://example.org/vocab#contains> <http://example.org/test#chapter> .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/title> "Title" .
diff --git a/tests/JSONLDTests/toRdf-0052-in.jsonld b/tests/JSONLDTests/toRdf-0052-in.jsonld
new file mode 100644
index 00000000..d081e7fb
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0052-in.jsonld
@@ -0,0 +1,39 @@
+{
+ "@context": {
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "ex": "http://example.org/vocab#",
+ "ex:authored": {
+ "@type": "@id"
+ },
+ "ex:contains": {
+ "@type": "@id"
+ },
+ "foaf": "http://xmlns.com/foaf/0.1/",
+ "xsd": "http://www.w3.org/2001/XMLSchema#"
+ },
+ "@graph": [
+ {
+ "@id": "http://example.org/test#chapter",
+ "dc:description": "Fun",
+ "dc:title": "Chapter One"
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "ex:authored": "http://example.org/test#chapter",
+ "foaf:name": "Jane"
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "foaf:name": "John"
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "ex:contains": {
+ "@id": "http://example.org/test#book",
+ "dc:contributor": "Writer",
+ "dc:title": "My Book",
+ "ex:contains": "http://example.org/test#chapter"
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0052-out.nq b/tests/JSONLDTests/toRdf-0052-out.nq
new file mode 100644
index 00000000..1c8d94af
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0052-out.nq
@@ -0,0 +1,9 @@
+<http://example.org/test#book> <http://example.org/vocab#contains> <http://example.org/test#chapter> .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/contributor> "Writer" .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/title> "My Book" .
+<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/description> "Fun" .
+<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/title> "Chapter One" .
+<http://example.org/test#jane> <http://example.org/vocab#authored> <http://example.org/test#chapter> .
+<http://example.org/test#jane> <http://xmlns.com/foaf/0.1/name> "Jane" .
+<http://example.org/test#john> <http://xmlns.com/foaf/0.1/name> "John" .
+<http://example.org/test#library> <http://example.org/vocab#contains> <http://example.org/test#book> .
diff --git a/tests/JSONLDTests/toRdf-0053-in.jsonld b/tests/JSONLDTests/toRdf-0053-in.jsonld
new file mode 100644
index 00000000..7795576f
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0053-in.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@id": "http://example.com/id1",
+ "@type": ["http://example.com/t1"],
+ "http://example.com/term1": ["v1"],
+ "http://example.com/term2": [{"@value": "v2", "@type": "http://example.com/t2"}],
+ "http://example.com/term3": [{"@value": "v3", "@language": "en"}],
+ "http://example.com/term4": [4],
+ "http://example.com/term5": [50, 51]
+}] \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0053-out.nq b/tests/JSONLDTests/toRdf-0053-out.nq
new file mode 100644
index 00000000..54f0bc03
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0053-out.nq
@@ -0,0 +1,7 @@
+<http://example.com/id1> <http://example.com/term1> "v1" .
+<http://example.com/id1> <http://example.com/term2> "v2"^^<http://example.com/t2> .
+<http://example.com/id1> <http://example.com/term3> "v3"@en .
+<http://example.com/id1> <http://example.com/term4> "4"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/id1> <http://example.com/term5> "50"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/id1> <http://example.com/term5> "51"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/id1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/t1> .
diff --git a/tests/JSONLDTests/toRdf-0054-in.jsonld b/tests/JSONLDTests/toRdf-0054-in.jsonld
new file mode 100644
index 00000000..ba913ff2
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0054-in.jsonld
@@ -0,0 +1,50 @@
+{
+ "@context": {
+ "ex": "http://example.org/test#",
+ "property1": {
+ "@id": "http://example.org/test#property1",
+ "@type": "@id"
+ },
+ "property2": {
+ "@id": "ex:property2",
+ "@type": "@id"
+ },
+ "uri": "@id",
+ "set": "@set",
+ "value": "@value",
+ "type": "@type",
+ "xsd": { "@id": "http://www.w3.org/2001/XMLSchema#" }
+ },
+ "property1": {
+ "uri": "ex:example2",
+ "http://example.org/test#property4": "foo"
+ },
+ "property2": "http://example.org/test#example3",
+ "http://example.org/test#property3": {
+ "uri": "http://example.org/test#example4"
+ },
+ "ex:property4": {
+ "uri": "ex:example4",
+ "ex:property5": [
+ {
+ "set": [
+ {
+ "value": "2012-03-31",
+ "type": "xsd:date"
+ }
+ ]
+ }
+ ]
+ },
+ "ex:property6": [
+ {
+ "set": [
+ {
+ "value": null,
+ "type": "xsd:date"
+ }
+ ]
+ }
+ ],
+ "uri": "http://example.org/test#example1"
+}
diff --git a/tests/JSONLDTests/toRdf-0054-out.nq b/tests/JSONLDTests/toRdf-0054-out.nq
new file mode 100644
index 00000000..a84697e1
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0054-out.nq
@@ -0,0 +1,6 @@
+<http://example.org/test#example1> <http://example.org/test#property1> <http://example.org/test#example2> .
+<http://example.org/test#example1> <http://example.org/test#property2> <http://example.org/test#example3> .
+<http://example.org/test#example1> <http://example.org/test#property3> <http://example.org/test#example4> .
+<http://example.org/test#example1> <http://example.org/test#property4> <http://example.org/test#example4> .
+<http://example.org/test#example2> <http://example.org/test#property4> "foo" .
+<http://example.org/test#example4> <http://example.org/test#property5> "2012-03-31"^^<http://www.w3.org/2001/XMLSchema#date> .
diff --git a/tests/JSONLDTests/toRdf-0055-in.jsonld b/tests/JSONLDTests/toRdf-0055-in.jsonld
new file mode 100644
index 00000000..ae60d731
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0055-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "mylist1": {"@id": "http://example.com/mylist1", "@container": "@list"},
+ "mylist2": {"@id": "http://example.com/mylist2", "@container": "@list"},
+ "myset1": {"@id": "http://example.com/myset1", "@container": "@set" },
+ "myset2": {"@id": "http://example.com/myset2", "@container": "@set" },
+ "myset3": {"@id": "http://example.com/myset3", "@container": "@set" }
+ },
+ "@id": "http://example.org/id",
+ "mylist1": [],
+ "myset1": { "@set": [] },
+ "myset2": [ { "@set": [] }, [], { "@set": [ null ] }, [ null ] ],
+ "myset3": [ { "@set": [ "hello", "this" ] }, "will", { "@set": [ "be", "collapsed" ] } ]
+}
diff --git a/tests/JSONLDTests/toRdf-0055-out.nq b/tests/JSONLDTests/toRdf-0055-out.nq
new file mode 100644
index 00000000..ecd95e6a
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0055-out.nq
@@ -0,0 +1,6 @@
+<http://example.org/id> <http://example.com/mylist1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://example.org/id> <http://example.com/myset3> "be" .
+<http://example.org/id> <http://example.com/myset3> "collapsed" .
+<http://example.org/id> <http://example.com/myset3> "hello" .
+<http://example.org/id> <http://example.com/myset3> "this" .
+<http://example.org/id> <http://example.com/myset3> "will" .
diff --git a/tests/JSONLDTests/toRdf-0056-in.jsonld b/tests/JSONLDTests/toRdf-0056-in.jsonld
new file mode 100644
index 00000000..c151040a
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0056-in.jsonld
@@ -0,0 +1,30 @@
+{
+ "@context": {
+ "myproperty": { "@id": "http://example.com/myproperty" },
+ "mylist1": {"@id": "http://example.com/mylist1", "@container": "@list"},
+ "mylist2": {"@id": "http://example.com/mylist2", "@container": "@list"},
+ "myset1": {"@id": "http://example.com/myset1", "@container": "@set" },
+ "myset2": {"@id": "http://example.com/myset2", "@container": "@set" }
+ },
+ "@id": "http://example.org/id1",
+ "mylist1": [],
+ "mylist2": [ 2, "hi" ],
+ "myset1": { "@set": [] },
+ "myset2": [ { "@set": [] }, [], { "@set": [ null ] }, [ null ] ],
+ "myproperty": {
+ "@context": null,
+ "@id": "http://example.org/id2",
+ "mylist1": [],
+ "mylist2": [ 2, "hi" ],
+ "myset1": { "@set": [] },
+ "myset2": [ { "@set": [] }, [], { "@set": [ null ] }, [ null ] ],
+ "http://example.org/myproperty2": "ok"
+ },
+ "http://example.com/emptyobj": {
+ "@context": null,
+ "mylist1": [],
+ "mylist2": [ 2, "hi" ],
+ "myset1": { "@set": [] },
+ "myset2": [ { "@set": [] }, [], { "@set": [ null ] }, [ null ] ]
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0056-out.nq b/tests/JSONLDTests/toRdf-0056-out.nq
new file mode 100644
index 00000000..c5363743
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0056-out.nq
@@ -0,0 +1,9 @@
+<http://example.org/id1> <http://example.com/emptyobj> _:b0 .
+<http://example.org/id1> <http://example.com/mylist1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://example.org/id1> <http://example.com/mylist2> _:b1 .
+<http://example.org/id1> <http://example.com/myproperty> <http://example.org/id2> .
+<http://example.org/id2> <http://example.org/myproperty2> "ok" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_: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> "hi" .
+_: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/JSONLDTests/toRdf-0057-in.jsonld b/tests/JSONLDTests/toRdf-0057-in.jsonld
new file mode 100644
index 00000000..dea8bf80
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0057-in.jsonld
@@ -0,0 +1,45 @@
+{
+ "@context": {
+ "authored": {
+ "@id": "http://example.org/vocab#authored",
+ "@type": "@id"
+ },
+ "contains": {
+ "@id": "http://example.org/vocab#contains",
+ "@type": "@id"
+ },
+ "contributor": "http://purl.org/dc/elements/1.1/contributor",
+ "description": "http://purl.org/dc/elements/1.1/description",
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "title": {
+ "@id": "http://purl.org/dc/elements/1.1/title"
+ },
+ "id": "@id",
+ "data": "@graph"
+ },
+ "data": [
+ {
+ "id": "http://example.org/test#chapter",
+ "description": "Fun",
+ "title": "Chapter One"
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "authored": "http://example.org/test#chapter",
+ "name": "Jane"
+ },
+ {
+ "id": "http://example.org/test#john",
+ "name": "John"
+ },
+ {
+ "id": "http://example.org/test#library",
+ "contains": {
+ "@id": "http://example.org/test#book",
+ "contains": "http://example.org/test#chapter",
+ "contributor": "Writer",
+ "title": "My Book"
+ }
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0057-out.nq b/tests/JSONLDTests/toRdf-0057-out.nq
new file mode 100644
index 00000000..1c8d94af
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0057-out.nq
@@ -0,0 +1,9 @@
+<http://example.org/test#book> <http://example.org/vocab#contains> <http://example.org/test#chapter> .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/contributor> "Writer" .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/title> "My Book" .
+<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/description> "Fun" .
+<http://example.org/test#chapter> <http://purl.org/dc/elements/1.1/title> "Chapter One" .
+<http://example.org/test#jane> <http://example.org/vocab#authored> <http://example.org/test#chapter> .
+<http://example.org/test#jane> <http://xmlns.com/foaf/0.1/name> "Jane" .
+<http://example.org/test#john> <http://xmlns.com/foaf/0.1/name> "John" .
+<http://example.org/test#library> <http://example.org/vocab#contains> <http://example.org/test#book> .
diff --git a/tests/JSONLDTests/toRdf-0058-in.jsonld b/tests/JSONLDTests/toRdf-0058-in.jsonld
new file mode 100644
index 00000000..21933fda
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0058-in.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": {
+ "ex": "http://example.org/vocab#",
+ "@language": "en",
+ "de": { "@id": "ex:german", "@language": "de" },
+ "nolang": { "@id": "ex:nolang", "@language": null }
+ },
+ "@id": "http://example.org/test",
+ "ex:test-default": [
+ "hello",
+ 1,
+ true
+ ],
+ "de": [
+ "hallo",
+ 2,
+ true
+ ],
+ "nolang": [
+ "no language",
+ 3,
+ false
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0058-out.nq b/tests/JSONLDTests/toRdf-0058-out.nq
new file mode 100644
index 00000000..aaa1eccc
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0058-out.nq
@@ -0,0 +1,9 @@
+<http://example.org/test> <http://example.org/vocab#german> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.org/test> <http://example.org/vocab#german> "hallo"@de .
+<http://example.org/test> <http://example.org/vocab#german> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.org/test> <http://example.org/vocab#nolang> "3"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.org/test> <http://example.org/vocab#nolang> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.org/test> <http://example.org/vocab#nolang> "no language" .
+<http://example.org/test> <http://example.org/vocab#test-default> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.org/test> <http://example.org/vocab#test-default> "hello"@en .
+<http://example.org/test> <http://example.org/vocab#test-default> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
diff --git a/tests/JSONLDTests/toRdf-0059-in.jsonld b/tests/JSONLDTests/toRdf-0059-in.jsonld
new file mode 100644
index 00000000..b91f8860
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0059-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "myproperty": "http://example.com/myproperty"
+ },
+ "myproperty": { "@value" : null }
+}
diff --git a/tests/JSONLDTests/toRdf-0059-out.nq b/tests/JSONLDTests/toRdf-0059-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0059-out.nq
diff --git a/tests/JSONLDTests/toRdf-0060-in.jsonld b/tests/JSONLDTests/toRdf-0060-in.jsonld
new file mode 100644
index 00000000..989e1192
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0060-in.jsonld
@@ -0,0 +1,51 @@
+{
+ "@context": {
+ "authored": {
+ "@id": "http://example.org/vocab#authored",
+ "@type": "@id"
+ },
+ "contains": {
+ "@id": "http://example.org/vocab#contains",
+ "@type": "@id"
+ },
+ "contributor": "http://purl.org/dc/elements/1.1/contributor",
+ "description": "http://purl.org/dc/elements/1.1/description",
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "title": {
+ "@id": "http://purl.org/dc/elements/1.1/title"
+ }
+ },
+ "@graph": [
+ {
+ "@id": "http://example.org/test#jane",
+ "name": "Jane",
+ "authored": {
+ "@graph": [
+ {
+ "@id": "http://example.org/test#chapter1",
+ "description": "Fun",
+ "title": "Chapter One"
+ },
+ {
+ "@id": "http://example.org/test#chapter2",
+ "description": "More fun",
+ "title": "Chapter Two"
+ }
+ ]
+ }
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "name": "John"
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "contains": {
+ "@id": "http://example.org/test#book",
+ "contains": "http://example.org/test#chapter",
+ "contributor": "Writer",
+ "title": "My Book"
+ }
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0060-out.nq b/tests/JSONLDTests/toRdf-0060-out.nq
new file mode 100644
index 00000000..440b2f7b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0060-out.nq
@@ -0,0 +1,11 @@
+<http://example.org/test#book> <http://example.org/vocab#contains> <http://example.org/test#chapter> .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/contributor> "Writer" .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/title> "My Book" .
+<http://example.org/test#chapter1> <http://purl.org/dc/elements/1.1/description> "Fun" _:b0 .
+<http://example.org/test#chapter1> <http://purl.org/dc/elements/1.1/title> "Chapter One" _:b0 .
+<http://example.org/test#chapter2> <http://purl.org/dc/elements/1.1/description> "More fun" _:b0 .
+<http://example.org/test#chapter2> <http://purl.org/dc/elements/1.1/title> "Chapter Two" _:b0 .
+<http://example.org/test#jane> <http://example.org/vocab#authored> _:b0 .
+<http://example.org/test#jane> <http://xmlns.com/foaf/0.1/name> "Jane" .
+<http://example.org/test#john> <http://xmlns.com/foaf/0.1/name> "John" .
+<http://example.org/test#library> <http://example.org/vocab#contains> <http://example.org/test#book> .
diff --git a/tests/JSONLDTests/toRdf-0061-in.jsonld b/tests/JSONLDTests/toRdf-0061-in.jsonld
new file mode 100644
index 00000000..e52fd1b8
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0061-in.jsonld
@@ -0,0 +1,56 @@
+{
+ "@context": {
+ "authored": {
+ "@id": "http://example.org/vocab#authored",
+ "@type": "@id"
+ },
+ "contains": {
+ "@id": "http://example.org/vocab#contains",
+ "@type": "@id"
+ },
+ "contributor": "http://purl.org/dc/elements/1.1/contributor",
+ "description": "http://purl.org/dc/elements/1.1/description",
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "title": {
+ "@id": "http://purl.org/dc/elements/1.1/title"
+ }
+ },
+ "title": "My first graph",
+ "@graph": [
+ {
+ "@id": "http://example.org/test#jane",
+ "name": "Jane",
+ "authored": {
+ "@graph": [
+ {
+ "@id": "http://example.org/test#chapter1",
+ "description": "Fun",
+ "title": "Chapter One"
+ },
+ {
+ "@id": "http://example.org/test#chapter2",
+ "description": "More fun",
+ "title": "Chapter Two"
+ },
+ {
+ "@id": "http://example.org/test#chapter3",
+ "title": "Chapter Three"
+ }
+ ]
+ }
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "name": "John"
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "contains": {
+ "@id": "http://example.org/test#book",
+ "contains": "http://example.org/test#chapter",
+ "contributor": "Writer",
+ "title": "My Book"
+ }
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0061-out.nq b/tests/JSONLDTests/toRdf-0061-out.nq
new file mode 100644
index 00000000..841a3d49
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0061-out.nq
@@ -0,0 +1,13 @@
+<http://example.org/test#book> <http://example.org/vocab#contains> <http://example.org/test#chapter> _:b0 .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/contributor> "Writer" _:b0 .
+<http://example.org/test#book> <http://purl.org/dc/elements/1.1/title> "My Book" _:b0 .
+<http://example.org/test#chapter1> <http://purl.org/dc/elements/1.1/description> "Fun" _:b1 .
+<http://example.org/test#chapter1> <http://purl.org/dc/elements/1.1/title> "Chapter One" _:b1 .
+<http://example.org/test#chapter2> <http://purl.org/dc/elements/1.1/description> "More fun" _:b1 .
+<http://example.org/test#chapter2> <http://purl.org/dc/elements/1.1/title> "Chapter Two" _:b1 .
+<http://example.org/test#chapter3> <http://purl.org/dc/elements/1.1/title> "Chapter Three" _:b1 .
+<http://example.org/test#jane> <http://example.org/vocab#authored> _:b1 _:b0 .
+<http://example.org/test#jane> <http://xmlns.com/foaf/0.1/name> "Jane" _:b0 .
+<http://example.org/test#john> <http://xmlns.com/foaf/0.1/name> "John" _:b0 .
+<http://example.org/test#library> <http://example.org/vocab#contains> <http://example.org/test#book> _:b0 .
+_:b0 <http://purl.org/dc/elements/1.1/title> "My first graph" .
diff --git a/tests/JSONLDTests/toRdf-0062-in.jsonld b/tests/JSONLDTests/toRdf-0062-in.jsonld
new file mode 100644
index 00000000..e7f938ae
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0062-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term": "http://example.com/term",
+ "@language": "en"
+ },
+ "term": "v"
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0062-out.nq b/tests/JSONLDTests/toRdf-0062-out.nq
new file mode 100644
index 00000000..80c93983
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0062-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/term> "v"@en .
diff --git a/tests/JSONLDTests/toRdf-0063-in.jsonld b/tests/JSONLDTests/toRdf-0063-in.jsonld
new file mode 100644
index 00000000..2a33783d
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0063-in.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": {
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "idlist": {"@id": "http://example.com/idlist", "@container": "@list", "@type": "@id"},
+ "datelist": {"@id": "http://example.com/datelist", "@container": "@list", "@type": "xsd:date"},
+ "idset": {"@id": "http://example.com/idset", "@container": "@set", "@type": "@id"},
+ "dateset": {"@id": "http://example.com/dateset", "@container": "@set", "@type": "xsd:date"},
+ "idprop": {"@id": "http://example.com/idprop", "@type": "@id" },
+ "dateprop": {"@id": "http://example.com/dateprop", "@type": "xsd:date" },
+ "idprop2": {"@id": "http://example.com/idprop2", "@type": "@id" },
+ "dateprop2": {"@id": "http://example.com/dateprop2", "@type": "xsd:date" }
+ },
+ "idlist": ["http://example.org/id"],
+ "datelist": ["2012-04-12"],
+ "idprop": {"@list": ["http://example.org/id"]},
+ "dateprop": {"@list": ["2012-04-12"]},
+ "idset": ["http://example.org/id"],
+ "dateset": ["2012-04-12"],
+ "idprop2": {"@set": ["http://example.org/id"]},
+ "dateprop2": {"@set": ["2012-04-12"]}
+}
diff --git a/tests/JSONLDTests/toRdf-0063-out.nq b/tests/JSONLDTests/toRdf-0063-out.nq
new file mode 100644
index 00000000..2b1ed62f
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0063-out.nq
@@ -0,0 +1,16 @@
+_:b0 <http://example.com/datelist> _:b1 .
+_:b0 <http://example.com/dateprop2> "2012-04-12"^^<http://www.w3.org/2001/XMLSchema#date> .
+_:b0 <http://example.com/dateprop> _:b2 .
+_:b0 <http://example.com/dateset> "2012-04-12"^^<http://www.w3.org/2001/XMLSchema#date> .
+_:b0 <http://example.com/idlist> _:b3 .
+_:b0 <http://example.com/idprop2> <http://example.org/id> .
+_:b0 <http://example.com/idprop> _:b4 .
+_:b0 <http://example.com/idset> <http://example.org/id> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2012-04-12"^^<http://www.w3.org/2001/XMLSchema#date> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2012-04-12"^^<http://www.w3.org/2001/XMLSchema#date> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/id> .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/id> .
+_:b4 <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/JSONLDTests/toRdf-0064-in.jsonld b/tests/JSONLDTests/toRdf-0064-in.jsonld
new file mode 100644
index 00000000..fcf010c4
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0064-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": [
+ {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "homepage": {"@id": "http://xmlns.com/foaf/0.1/homepage","@type": "@id"}
+ },
+ {"ical": "http://www.w3.org/2002/12/cal/ical#"}
+ ],
+ "@id": "http://example.com/speakers#Alice",
+ "name": "Alice",
+ "homepage": "http://xkcd.com/177/",
+ "ical:summary": "Alice Talk",
+ "ical:location": "Lyon Convention Centre, Lyon, France"
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0064-out.nq b/tests/JSONLDTests/toRdf-0064-out.nq
new file mode 100644
index 00000000..1ed3b1ca
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0064-out.nq
@@ -0,0 +1,4 @@
+<http://example.com/speakers#Alice> <http://www.w3.org/2002/12/cal/ical#location> "Lyon Convention Centre, Lyon, France" .
+<http://example.com/speakers#Alice> <http://www.w3.org/2002/12/cal/ical#summary> "Alice Talk" .
+<http://example.com/speakers#Alice> <http://xmlns.com/foaf/0.1/homepage> <http://xkcd.com/177/> .
+<http://example.com/speakers#Alice> <http://xmlns.com/foaf/0.1/name> "Alice" .
diff --git a/tests/JSONLDTests/toRdf-0065-in.jsonld b/tests/JSONLDTests/toRdf-0065-in.jsonld
new file mode 100644
index 00000000..426de362
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0065-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "foo": "http://example.com/foo/",
+ "foo:bar": "http://example.com/bar",
+ "bar": {"@id": "foo:bar", "@type": "@id"},
+ "_": "http://example.com/underscore/"
+ },
+ "@type": [ "foo", "foo:bar", "_" ]
+}
diff --git a/tests/JSONLDTests/toRdf-0065-out.nq b/tests/JSONLDTests/toRdf-0065-out.nq
new file mode 100644
index 00000000..57adb84c
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0065-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/bar> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/foo/> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/underscore/> .
diff --git a/tests/JSONLDTests/toRdf-0066-in.jsonld b/tests/JSONLDTests/toRdf-0066-in.jsonld
new file mode 100644
index 00000000..36d8cac7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0066-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": {"@id": "@type", "@type": "@id"}
+ },
+ "@graph": [
+ {
+ "@id": "http://example.com/a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": "http://example.com/b"
+ }, {
+ "@id": "http://example.com/c",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": [
+ "http://example.com/d",
+ "http://example.com/e"
+ ]
+ }, {
+ "@id": "http://example.com/f",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": "http://example.com/g"
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0066-out.nq b/tests/JSONLDTests/toRdf-0066-out.nq
new file mode 100644
index 00000000..093e6294
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0066-out.nq
@@ -0,0 +1,4 @@
+<http://example.com/a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/b> .
+<http://example.com/c> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/d> .
+<http://example.com/c> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/e> .
+<http://example.com/f> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/g> .
diff --git a/tests/JSONLDTests/toRdf-0067-in.jsonld b/tests/JSONLDTests/toRdf-0067-in.jsonld
new file mode 100644
index 00000000..6c47cfb7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0067-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "mylist": {"@id": "http://example.com/mylist", "@container": "@list"},
+ "myset": {"@id": "http://example.com/myset", "@container": "@set"}
+ },
+ "@id": "http://example.org/id",
+ "mylist": [1, 2, 2, 3],
+ "myset": [1, 2, 2, 3]
+}
diff --git a/tests/JSONLDTests/toRdf-0067-out.nq b/tests/JSONLDTests/toRdf-0067-out.nq
new file mode 100644
index 00000000..d089ef53
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0067-out.nq
@@ -0,0 +1,12 @@
+<http://example.org/id> <http://example.com/mylist> _:b0 .
+<http://example.org/id> <http://example.com/myset> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.org/id> <http://example.com/myset> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.org/id> <http://example.com/myset> "3"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_: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> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b3 .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "3"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b3 <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/JSONLDTests/toRdf-0068-in.jsonld b/tests/JSONLDTests/toRdf-0068-in.jsonld
new file mode 100644
index 00000000..4f05d0e4
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0068-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/vocab#",
+ "date": { "@type": "dateTime" }
+ },
+ "@id": "example1",
+ "@type": "test",
+ "date": "2011-01-25T00:00:00Z",
+ "embed": {
+ "@id": "example2",
+ "expandedDate": { "@value": "2012-08-01T00:00:00Z", "@type": "dateTime" }
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0068-out.nq b/tests/JSONLDTests/toRdf-0068-out.nq
new file mode 100644
index 00000000..e8b4f18e
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0068-out.nq
@@ -0,0 +1,4 @@
+<http://json-ld.org/test-suite/tests/example1> <http://example.org/vocab#date> "2011-01-25T00:00:00Z"^^<http://example.org/vocab#dateTime> .
+<http://json-ld.org/test-suite/tests/example1> <http://example.org/vocab#embed> <http://json-ld.org/test-suite/tests/example2> .
+<http://json-ld.org/test-suite/tests/example1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#test> .
+<http://json-ld.org/test-suite/tests/example2> <http://example.org/vocab#expandedDate> "2012-08-01T00:00:00Z"^^<http://example.org/vocab#dateTime> .
diff --git a/tests/JSONLDTests/toRdf-0069-in.jsonld b/tests/JSONLDTests/toRdf-0069-in.jsonld
new file mode 100644
index 00000000..08cdde33
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0069-in.jsonld
@@ -0,0 +1,32 @@
+{
+ "@context": {
+ "links": { "@id": "http://www.example.com/link", "@type": "@id", "@container": "@list" }
+ },
+ "@id": "relativeIris",
+ "@type": [
+ "link",
+ "#fragment-works",
+ "?query=works",
+ "./",
+ "../",
+ "../parent",
+ "../../parent-parent-eq-root",
+ "../../../../../still-root",
+ "../.././.././../../too-many-dots",
+ "/absolute",
+ "//example.org/scheme-relative"
+ ],
+ "links": [
+ "link",
+ "#fragment-works",
+ "?query=works",
+ "./",
+ "../",
+ "../parent",
+ "../../parent-parent-eq-root",
+ "./../../../useless/../../../still-root",
+ "../.././.././../../too-many-dots",
+ "/absolute",
+ "//example.org/scheme-relative"
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0069-out.nq b/tests/JSONLDTests/toRdf-0069-out.nq
new file mode 100644
index 00000000..89910136
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0069-out.nq
@@ -0,0 +1,34 @@
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.example.com/link> _:b0 .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/scheme-relative> .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/absolute> .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/parent-parent-eq-root> .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/still-root> .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/test-suite/> .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/test-suite/parent> .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/test-suite/tests/> .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/test-suite/tests/link> .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/test-suite/tests/toRdf-0069-in.jsonld#fragment-works> .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/test-suite/tests/toRdf-0069-in.jsonld?query=works> .
+<http://json-ld.org/test-suite/tests/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/too-many-dots> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://json-ld.org/test-suite/tests/link> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://json-ld.org/test-suite/tests/toRdf-0069-in.jsonld#fragment-works> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 .
+_:b10 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/scheme-relative> .
+_:b10 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://json-ld.org/test-suite/tests/toRdf-0069-in.jsonld?query=works> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b3 .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://json-ld.org/test-suite/tests/> .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b4 .
+_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://json-ld.org/test-suite/> .
+_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b5 .
+_:b5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://json-ld.org/test-suite/parent> .
+_:b5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b6 .
+_:b6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://json-ld.org/parent-parent-eq-root> .
+_:b6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b7 .
+_:b7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://json-ld.org/still-root> .
+_:b7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b8 .
+_:b8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://json-ld.org/too-many-dots> .
+_:b8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b9 .
+_:b9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://json-ld.org/absolute> .
+_:b9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b10 .
diff --git a/tests/JSONLDTests/toRdf-0070-in.jsonld b/tests/JSONLDTests/toRdf-0070-in.jsonld
new file mode 100644
index 00000000..ca711673
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0070-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0070-out.nq b/tests/JSONLDTests/toRdf-0070-out.nq
new file mode 100644
index 00000000..c171a406
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0070-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/queen> <http://example.com/vocab/label> "Die Königin"@de .
+<http://example.com/queen> <http://example.com/vocab/label> "Ihre Majestät"@de .
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen"@en .
diff --git a/tests/JSONLDTests/toRdf-0071-in.jsonld b/tests/JSONLDTests/toRdf-0071-in.jsonld
new file mode 100644
index 00000000..192ff27c
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0071-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "ex": "http://example.org/vocab#",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "ex:integer": { "@type": "xsd:integer" },
+ "ex:double": { "@type": "xsd:double" },
+ "ex:boolean": { "@type": "xsd:boolean" }
+ },
+ "@id": "http://example.org/test#example1",
+ "ex:integer": 1,
+ "ex:double": 123.45,
+ "ex:boolean": true
+}
diff --git a/tests/JSONLDTests/toRdf-0071-out.nq b/tests/JSONLDTests/toRdf-0071-out.nq
new file mode 100644
index 00000000..3812698c
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0071-out.nq
@@ -0,0 +1,3 @@
+<http://example.org/test#example1> <http://example.org/vocab#boolean> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.org/test#example1> <http://example.org/vocab#double> "1.2345E2"^^<http://www.w3.org/2001/XMLSchema#double> .
+<http://example.org/test#example1> <http://example.org/vocab#integer> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/tests/JSONLDTests/toRdf-0072-in.jsonld b/tests/JSONLDTests/toRdf-0072-in.jsonld
new file mode 100644
index 00000000..920554fc
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0072-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://xmlns.com/foaf/0.1/",
+ "from": null,
+ "university": { "@id": null }
+ },
+ "@id": "http://me.markus-lanthaler.com/",
+ "name": "Markus Lanthaler",
+ "from": "Italy",
+ "university": "TU Graz"
+}
diff --git a/tests/JSONLDTests/toRdf-0072-out.nq b/tests/JSONLDTests/toRdf-0072-out.nq
new file mode 100644
index 00000000..fe7cd665
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0072-out.nq
@@ -0,0 +1 @@
+<http://me.markus-lanthaler.com/> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/tests/JSONLDTests/toRdf-0073-in.jsonld b/tests/JSONLDTests/toRdf-0073-in.jsonld
new file mode 100644
index 00000000..abf6feed
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0073-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/vocab#",
+ "homepage": {
+ "@type": "@id"
+ },
+ "created_at": {
+ "@type": "http://www.w3.org/2001/XMLSchema#date"
+ }
+ },
+ "name": "Markus Lanthaler",
+ "homepage": "http://www.markus-lanthaler.com/",
+ "created_at": "2012-10-28"
+}
diff --git a/tests/JSONLDTests/toRdf-0073-out.nq b/tests/JSONLDTests/toRdf-0073-out.nq
new file mode 100644
index 00000000..58e36e13
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0073-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.com/vocab#created_at> "2012-10-28"^^<http://www.w3.org/2001/XMLSchema#date> .
+_:b0 <http://example.com/vocab#homepage> <http://www.markus-lanthaler.com/> .
+_:b0 <http://example.com/vocab#name> "Markus Lanthaler" .
diff --git a/tests/JSONLDTests/toRdf-0074-in.jsonld b/tests/JSONLDTests/toRdf-0074-in.jsonld
new file mode 100644
index 00000000..22bb6039
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0074-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/vocab/",
+ "colliding": "http://example.com/vocab/collidingTerm"
+ },
+ "@id": "http://example.com/IriCollissions",
+ "colliding": [
+ "value 1",
+ 2
+ ],
+ "collidingTerm": [
+ 3,
+ "four"
+ ],
+ "http://example.com/vocab/collidingTerm": 5
+}
diff --git a/tests/JSONLDTests/toRdf-0074-out.nq b/tests/JSONLDTests/toRdf-0074-out.nq
new file mode 100644
index 00000000..a1c2f661
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0074-out.nq
@@ -0,0 +1,5 @@
+<http://example.com/IriCollissions> <http://example.com/vocab/collidingTerm> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/IriCollissions> <http://example.com/vocab/collidingTerm> "3"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/IriCollissions> <http://example.com/vocab/collidingTerm> "5"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/IriCollissions> <http://example.com/vocab/collidingTerm> "four" .
+<http://example.com/IriCollissions> <http://example.com/vocab/collidingTerm> "value 1" .
diff --git a/tests/JSONLDTests/toRdf-0075-in.jsonld b/tests/JSONLDTests/toRdf-0075-in.jsonld
new file mode 100644
index 00000000..7bf59112
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0075-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/vocab/",
+ "@language": "it",
+ "label": {
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ },
+ "http://example.com/vocab/label": [
+ "Il re",
+ { "@value": "The king", "@language": "en" }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0075-out.nq b/tests/JSONLDTests/toRdf-0075-out.nq
new file mode 100644
index 00000000..a7b58eed
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0075-out.nq
@@ -0,0 +1,5 @@
+<http://example.com/queen> <http://example.com/vocab/label> "Die Königin"@de .
+<http://example.com/queen> <http://example.com/vocab/label> "Ihre Majestät"@de .
+<http://example.com/queen> <http://example.com/vocab/label> "Il re"@it .
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen"@en .
+<http://example.com/queen> <http://example.com/vocab/label> "The king"@en .
diff --git a/tests/JSONLDTests/toRdf-0076-in.jsonld b/tests/JSONLDTests/toRdf-0076-in.jsonld
new file mode 100644
index 00000000..23c99b55
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0076-in.jsonld
@@ -0,0 +1,90 @@
+{
+ "@context": {
+ "property": "http://example.com/property",
+ "indexContainer": { "@id": "http://example.com/container", "@container": "@index" }
+ },
+ "@id": "http://example.org/indexTest",
+ "indexContainer": {
+ "A": [
+ {
+ "@id": "http://example.org/nodeWithoutIndexA"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexA",
+ "@index": "this overrides the 'A' index from the container"
+ },
+ 1,
+ true,
+ false,
+ null,
+ "simple string A",
+ {
+ "@value": "typed literal A",
+ "@type": "http://example.org/type"
+ },
+ {
+ "@value": "language-tagged string A",
+ "@language": "en"
+ }
+ ],
+ "B": "simple string B",
+ "C": [
+ {
+ "@id": "http://example.org/nodeWithoutIndexC"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexC",
+ "@index": "this overrides the 'C' index from the container"
+ },
+ 3,
+ true,
+ false,
+ null,
+ "simple string C",
+ {
+ "@value": "typed literal C",
+ "@type": "http://example.org/type"
+ },
+ {
+ "@value": "language-tagged string C",
+ "@language": "en"
+ }
+ ]
+ },
+ "property": [
+ {
+ "@id": "http://example.org/nodeWithoutIndexProp"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexProp",
+ "@index": "prop"
+ },
+ {
+ "@value": 3,
+ "@index": "prop"
+ },
+ {
+ "@value": true,
+ "@index": "prop"
+ },
+ {
+ "@value": false,
+ "@index": "prop"
+ },
+ {
+ "@value": null,
+ "@index": "prop"
+ },
+ "simple string no index",
+ {
+ "@value": "typed literal Prop",
+ "@type": "http://example.org/type",
+ "@index": "prop"
+ },
+ {
+ "@value": "language-tagged string Prop",
+ "@language": "en",
+ "@index": "prop"
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0076-out.nq b/tests/JSONLDTests/toRdf-0076-out.nq
new file mode 100644
index 00000000..5fc76bd7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0076-out.nq
@@ -0,0 +1,25 @@
+<http://example.org/indexTest> <http://example.com/container> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.org/indexTest> <http://example.com/container> "3"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.org/indexTest> <http://example.com/container> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.org/indexTest> <http://example.com/container> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.org/indexTest> <http://example.com/container> "language-tagged string A"@en .
+<http://example.org/indexTest> <http://example.com/container> "language-tagged string C"@en .
+<http://example.org/indexTest> <http://example.com/container> "simple string A" .
+<http://example.org/indexTest> <http://example.com/container> "simple string B" .
+<http://example.org/indexTest> <http://example.com/container> "simple string C" .
+<http://example.org/indexTest> <http://example.com/container> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.org/indexTest> <http://example.com/container> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.org/indexTest> <http://example.com/container> "typed literal A"^^<http://example.org/type> .
+<http://example.org/indexTest> <http://example.com/container> "typed literal C"^^<http://example.org/type> .
+<http://example.org/indexTest> <http://example.com/container> <http://example.org/nodeWithIndexA> .
+<http://example.org/indexTest> <http://example.com/container> <http://example.org/nodeWithIndexC> .
+<http://example.org/indexTest> <http://example.com/container> <http://example.org/nodeWithoutIndexA> .
+<http://example.org/indexTest> <http://example.com/container> <http://example.org/nodeWithoutIndexC> .
+<http://example.org/indexTest> <http://example.com/property> "3"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.org/indexTest> <http://example.com/property> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.org/indexTest> <http://example.com/property> "language-tagged string Prop"@en .
+<http://example.org/indexTest> <http://example.com/property> "simple string no index" .
+<http://example.org/indexTest> <http://example.com/property> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.org/indexTest> <http://example.com/property> "typed literal Prop"^^<http://example.org/type> .
+<http://example.org/indexTest> <http://example.com/property> <http://example.org/nodeWithIndexProp> .
+<http://example.org/indexTest> <http://example.com/property> <http://example.org/nodeWithoutIndexProp> .
diff --git a/tests/JSONLDTests/toRdf-0077-in.jsonld b/tests/JSONLDTests/toRdf-0077-in.jsonld
new file mode 100644
index 00000000..7e65af4a
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0077-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name"
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": {
+ "@id": "http://example.com/people/dave",
+ "name": "Dave Longley"
+ }
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0077-out.nq b/tests/JSONLDTests/toRdf-0077-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0077-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/name> "Dave Longley" .
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/tests/JSONLDTests/toRdf-0078-in.jsonld b/tests/JSONLDTests/toRdf-0078-in.jsonld
new file mode 100644
index 00000000..17071294
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0078-in.jsonld
@@ -0,0 +1,38 @@
+{
+ "@context": {
+ "term": "_:term",
+ "termId": { "@id": "term", "@type": "@id" }
+ },
+ "@id": "_:term",
+ "@type": "_:term",
+ "term": [
+ {
+ "@id": "_:term",
+ "@type": "term"
+ },
+ {
+ "@id": "_:Bx",
+ "term": "term"
+ },
+ "plain value",
+ {
+ "@id": "_:term"
+ }
+ ],
+ "termId": [
+ {
+ "@id": "_:term",
+ "@type": "term"
+ },
+ {
+ "@id": "_:Cx",
+ "term": "termId"
+ },
+ "term:AppendedToBlankNode",
+ "_:termAppendedToBlankNode",
+ "relativeIri",
+ {
+ "@id": "_:term"
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0078-out.nq b/tests/JSONLDTests/toRdf-0078-out.nq
new file mode 100644
index 00000000..bca23603
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0078-out.nq
@@ -0,0 +1 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:b0 .
diff --git a/tests/JSONLDTests/toRdf-0079-in.jsonld b/tests/JSONLDTests/toRdf-0079-in.jsonld
new file mode 100644
index 00000000..7c3549ee
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0079-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "knows": "http://xmlns.com/foaf/0.1/knows"
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "@reverse": {
+ "knows": {
+ "@id": "http://example.com/people/dave",
+ "name": "Dave Longley"
+ }
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0079-out.nq b/tests/JSONLDTests/toRdf-0079-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0079-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/name> "Dave Longley" .
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/tests/JSONLDTests/toRdf-0080-in.jsonld b/tests/JSONLDTests/toRdf-0080-in.jsonld
new file mode 100644
index 00000000..2d02e0ad
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0080-in.jsonld
@@ -0,0 +1,23 @@
+{
+ "@context": {
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@container": "@language"
+ },
+ "indexes": {
+ "@id": "vocab:index",
+ "@container": "@index"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": [
+ "The Queen"
+ ],
+ "indexes":
+ [
+ "No",
+ "indexes",
+ { "@id": "asTheValueIsntAnObject" }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0080-out.nq b/tests/JSONLDTests/toRdf-0080-out.nq
new file mode 100644
index 00000000..4059ef58
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0080-out.nq
@@ -0,0 +1,4 @@
+<http://example.com/queen> <http://example.com/vocab/index> "No" .
+<http://example.com/queen> <http://example.com/vocab/index> "indexes" .
+<http://example.com/queen> <http://example.com/vocab/index> <http://json-ld.org/test-suite/tests/asTheValueIsntAnObject> .
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen" .
diff --git a/tests/JSONLDTests/toRdf-0081-in.jsonld b/tests/JSONLDTests/toRdf-0081-in.jsonld
new file mode 100644
index 00000000..7915153e
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0081-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "property": "http://example.com/property",
+ "nested": "http://example.com/nested",
+ "@language": "en"
+ },
+ "property": "this is English",
+ "nested": {
+ "@context": {
+ "@language": null
+ },
+ "property": "and this is a plain string"
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0081-out.nq b/tests/JSONLDTests/toRdf-0081-out.nq
new file mode 100644
index 00000000..d938ed71
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0081-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.com/nested> _:b1 .
+_:b0 <http://example.com/property> "this is English"@en .
+_:b1 <http://example.com/property> "and this is a plain string" .
diff --git a/tests/JSONLDTests/toRdf-0082-in.jsonld b/tests/JSONLDTests/toRdf-0082-in.jsonld
new file mode 100644
index 00000000..60cf9ac2
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0082-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows" }
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "isKnownBy": {
+ "@id": "http://example.com/people/dave",
+ "name": "Dave Longley"
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0082-out.nq b/tests/JSONLDTests/toRdf-0082-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0082-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/name> "Dave Longley" .
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/tests/JSONLDTests/toRdf-0083-in.jsonld b/tests/JSONLDTests/toRdf-0083-in.jsonld
new file mode 100644
index 00000000..8ef07587
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0083-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows" }
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "@reverse": {
+ "isKnownBy": [
+ {
+ "@id": "http://example.com/people/dave",
+ "name": "Dave Longley"
+ },
+ {
+ "@id": "http://example.com/people/gregg",
+ "name": "Gregg Kellogg"
+ }
+ ]
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0083-out.nq b/tests/JSONLDTests/toRdf-0083-out.nq
new file mode 100644
index 00000000..82f12f7f
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0083-out.nq
@@ -0,0 +1,5 @@
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/name> "Dave Longley" .
+<http://example.com/people/gregg> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/dave> .
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/gregg> .
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/tests/JSONLDTests/toRdf-0084-in.jsonld b/tests/JSONLDTests/toRdf-0084-in.jsonld
new file mode 100644
index 00000000..c12bd7b2
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0084-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "property": { "@id": "http://example.com/vocab/property", "@language": "de" },
+ "indexMap": { "@id": "http://example.com/vocab/indexMap", "@language": "en", "@container": "@index" }
+ },
+ "@id": "http://example.com/node",
+ "property": [
+ {
+ "@id": "http://example.com/propertyValueNode",
+ "indexMap": {
+ "expands to english string": "simple string"
+ }
+ },
+ "einfacher String"
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0084-out.nq b/tests/JSONLDTests/toRdf-0084-out.nq
new file mode 100644
index 00000000..21981f04
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0084-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/node> <http://example.com/vocab/property> "einfacher String"@de .
+<http://example.com/node> <http://example.com/vocab/property> <http://example.com/propertyValueNode> .
+<http://example.com/propertyValueNode> <http://example.com/vocab/indexMap> "simple string"@en .
diff --git a/tests/JSONLDTests/toRdf-0085-in.jsonld b/tests/JSONLDTests/toRdf-0085-in.jsonld
new file mode 100644
index 00000000..09207e31
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0085-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@value": "free-floating value"
+}
diff --git a/tests/JSONLDTests/toRdf-0085-out.nq b/tests/JSONLDTests/toRdf-0085-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0085-out.nq
diff --git a/tests/JSONLDTests/toRdf-0086-in.jsonld b/tests/JSONLDTests/toRdf-0086-in.jsonld
new file mode 100644
index 00000000..081a8877
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0086-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@graph": [
+ { "@id": "http://example.com/free-floating-node" },
+ { "@value": "free-floating value object" },
+ { "@value": "free-floating value language-tagged string", "@language": "en" },
+ { "@value": "free-floating value typed value", "@type": "http://example.com/type" },
+ "free-floating plain string",
+ true,
+ false,
+ null,
+ 1,
+ 1.5
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0086-out.nq b/tests/JSONLDTests/toRdf-0086-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0086-out.nq
diff --git a/tests/JSONLDTests/toRdf-0087-in.jsonld b/tests/JSONLDTests/toRdf-0087-in.jsonld
new file mode 100644
index 00000000..90d54114
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0087-in.jsonld
@@ -0,0 +1,28 @@
+{
+ "@context": {
+ "property": "http://example.com/property"
+ },
+ "@graph": [
+ {
+ "@set": [
+ "free-floating strings in set objects are removed",
+ {
+ "@id": "http://example.com/free-floating-node"
+ },
+ {
+ "@id": "http://example.com/node",
+ "property": "nodes with properties are not removed"
+ }
+ ]
+ },
+ {
+ "@list": [
+ "lists are removed even though they represent an invisible linked structure, they have no real meaning",
+ {
+ "@id": "http://example.com/node-in-free-floating-list",
+ "property": "everything inside a free-floating list is removed with the list; also nodes with properties"
+ }
+ ]
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0087-out.nq b/tests/JSONLDTests/toRdf-0087-out.nq
new file mode 100644
index 00000000..f9b7ee6f
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0087-out.nq
@@ -0,0 +1 @@
+<http://example.com/node> <http://example.com/property> "nodes with properties are not removed" .
diff --git a/tests/JSONLDTests/toRdf-0088-in.jsonld b/tests/JSONLDTests/toRdf-0088-in.jsonld
new file mode 100644
index 00000000..005f5e16
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0088-in.jsonld
@@ -0,0 +1,19 @@
+{
+ "@context": {
+ "term": "http://example.com/terms-are-not-considered-in-id",
+ "compact-iris": "http://example.com/compact-iris-",
+ "property": "http://example.com/property",
+ "@vocab": "http://example.org/vocab-is-not-considered-for-id"
+ },
+ "@id": "term",
+ "property": [
+ {
+ "@id": "compact-iris:are-considered",
+ "property": "@id supports the following values: relative, absolute, and compact IRIs"
+ },
+ {
+ "@id": "../parent-node",
+ "property": "relative IRIs get resolved against the document's base IRI"
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0088-out.nq b/tests/JSONLDTests/toRdf-0088-out.nq
new file mode 100644
index 00000000..55b4f9ff
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0088-out.nq
@@ -0,0 +1,4 @@
+<http://example.com/compact-iris-are-considered> <http://example.com/property> "@id supports the following values: relative, absolute, and compact IRIs" .
+<http://json-ld.org/test-suite/parent-node> <http://example.com/property> "relative IRIs get resolved against the document's base IRI" .
+<http://json-ld.org/test-suite/tests/term> <http://example.com/property> <http://example.com/compact-iris-are-considered> .
+<http://json-ld.org/test-suite/tests/term> <http://example.com/property> <http://json-ld.org/test-suite/parent-node> .
diff --git a/tests/JSONLDTests/toRdf-0089-in.jsonld b/tests/JSONLDTests/toRdf-0089-in.jsonld
new file mode 100644
index 00000000..3f10e016
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0089-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows", "@type": "@id" }
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "isKnownBy": [
+ "http://example.com/people/dave",
+ "http://example.com/people/gregg"
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0089-out.nq b/tests/JSONLDTests/toRdf-0089-out.nq
new file mode 100644
index 00000000..fe5c7f32
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0089-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+<http://example.com/people/gregg> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/tests/JSONLDTests/toRdf-0090-in.jsonld b/tests/JSONLDTests/toRdf-0090-in.jsonld
new file mode 100644
index 00000000..01b24726
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0090-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "issue": { "@id": "http://example.com/issue/", "@type": "@id" },
+ "issue:raisedBy": { "@container": "@set" }
+ },
+ "issue": "/issue/1",
+ "issue:raisedBy": "Markus"
+}
diff --git a/tests/JSONLDTests/toRdf-0090-out.nq b/tests/JSONLDTests/toRdf-0090-out.nq
new file mode 100644
index 00000000..537edf6e
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0090-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.com/issue/> <http://json-ld.org/issue/1> .
+_:b0 <http://example.com/issue/raisedBy> "Markus" .
diff --git a/tests/JSONLDTests/toRdf-0091-in.jsonld b/tests/JSONLDTests/toRdf-0091-in.jsonld
new file mode 100644
index 00000000..77b7fbd8
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0091-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": [
+ { "id": "@id" },
+ { "url": "id" }
+ ],
+ "url": "/issue/1",
+ "http://example.com/property": "ok"
+}
diff --git a/tests/JSONLDTests/toRdf-0091-out.nq b/tests/JSONLDTests/toRdf-0091-out.nq
new file mode 100644
index 00000000..34819079
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0091-out.nq
@@ -0,0 +1 @@
+<http://json-ld.org/issue/1> <http://example.com/property> "ok" .
diff --git a/tests/JSONLDTests/toRdf-0092-in.jsonld b/tests/JSONLDTests/toRdf-0092-in.jsonld
new file mode 100644
index 00000000..ee3d9d2e
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0092-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "property": "vocabRelativeProperty"
+ },
+ "property": "must expand to http://example.org/vocabRelativeProperty",
+ "http://example.org/property": "ok"
+}
diff --git a/tests/JSONLDTests/toRdf-0092-out.nq b/tests/JSONLDTests/toRdf-0092-out.nq
new file mode 100644
index 00000000..7e88362c
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0092-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/property> "ok" .
+_:b0 <http://example.org/vocabRelativeProperty> "must expand to http://example.org/vocabRelativeProperty" .
diff --git a/tests/JSONLDTests/toRdf-0093-in.jsonld b/tests/JSONLDTests/toRdf-0093-in.jsonld
new file mode 100644
index 00000000..3ac3ea98
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0093-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"}
+ },
+ "term": "http://example.org/enum"
+}
diff --git a/tests/JSONLDTests/toRdf-0093-out.nq b/tests/JSONLDTests/toRdf-0093-out.nq
new file mode 100644
index 00000000..fe48284d
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0093-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.org/enum> .
diff --git a/tests/JSONLDTests/toRdf-0094-in.jsonld b/tests/JSONLDTests/toRdf-0094-in.jsonld
new file mode 100644
index 00000000..680afbf0
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0094-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"},
+ "enum": {"@id": "http://example.org/enum"}
+ },
+ "term": "enum"
+}
diff --git a/tests/JSONLDTests/toRdf-0094-out.nq b/tests/JSONLDTests/toRdf-0094-out.nq
new file mode 100644
index 00000000..fe48284d
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0094-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.org/enum> .
diff --git a/tests/JSONLDTests/toRdf-0095-in.jsonld b/tests/JSONLDTests/toRdf-0095-in.jsonld
new file mode 100644
index 00000000..1c5ed3b0
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0095-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"}
+ },
+ "term": "enum"
+}
diff --git a/tests/JSONLDTests/toRdf-0095-out.nq b/tests/JSONLDTests/toRdf-0095-out.nq
new file mode 100644
index 00000000..fe48284d
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0095-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.org/enum> .
diff --git a/tests/JSONLDTests/toRdf-0096-in.jsonld b/tests/JSONLDTests/toRdf-0096-in.jsonld
new file mode 100644
index 00000000..6d5b0cb9
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0096-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "homepage": { "@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@vocab" },
+ "link": { "@id": "http://example.com/link", "@type": "@id" },
+ "MarkusHomepage": "http://www.markus-lanthaler.com/",
+ "relative-iri": "http://example.com/error-if-this-is-used-for-link"
+ },
+ "@id": "http://me.markus-lanthaler.com/",
+ "name": "Markus Lanthaler",
+ "homepage": "MarkusHomepage",
+ "link": "relative-iri"
+}
diff --git a/tests/JSONLDTests/toRdf-0096-out.nq b/tests/JSONLDTests/toRdf-0096-out.nq
new file mode 100644
index 00000000..bca879ff
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0096-out.nq
@@ -0,0 +1,3 @@
+<http://me.markus-lanthaler.com/> <http://example.com/link> <http://json-ld.org/test-suite/tests/relative-iri> .
+<http://me.markus-lanthaler.com/> <http://xmlns.com/foaf/0.1/homepage> <http://www.markus-lanthaler.com/> .
+<http://me.markus-lanthaler.com/> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/tests/JSONLDTests/toRdf-0097-in.jsonld b/tests/JSONLDTests/toRdf-0097-in.jsonld
new file mode 100644
index 00000000..732cc923
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0097-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": { "@id": "http://example.org/term", "@type": "@vocab" }
+ },
+ "term": "not-a-term-thus-a-relative-IRI"
+}
diff --git a/tests/JSONLDTests/toRdf-0097-out.nq b/tests/JSONLDTests/toRdf-0097-out.nq
new file mode 100644
index 00000000..384f1d91
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0097-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://json-ld.org/test-suite/tests/not-a-term-thus-a-relative-IRI> .
diff --git a/tests/JSONLDTests/toRdf-0098-in.jsonld b/tests/JSONLDTests/toRdf-0098-in.jsonld
new file mode 100644
index 00000000..68dc3249
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0098-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term": { "@id": "http://example.org/term", "@type": "@vocab" },
+ "prefix": "http://example.com/vocab#"
+ },
+ "term": "prefix:suffix"
+}
diff --git a/tests/JSONLDTests/toRdf-0098-out.nq b/tests/JSONLDTests/toRdf-0098-out.nq
new file mode 100644
index 00000000..49cae840
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0098-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.com/vocab#suffix> .
diff --git a/tests/JSONLDTests/toRdf-0099-in.jsonld b/tests/JSONLDTests/toRdf-0099-in.jsonld
new file mode 100644
index 00000000..05f582f0
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0099-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/vocab#"
+ },
+ "@id": "example-with-vocab",
+ "@type": "vocab-prefixed",
+ "property": "property expanded using @vocab",
+ "embed": {
+ "@context": {
+ "@vocab": null
+ },
+ "@id": "example-vocab-reset",
+ "@type": "document-relative",
+ "property": "@vocab reset, property will be dropped"
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0099-out.nq b/tests/JSONLDTests/toRdf-0099-out.nq
new file mode 100644
index 00000000..85da3ac8
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0099-out.nq
@@ -0,0 +1,4 @@
+<http://json-ld.org/test-suite/tests/example-vocab-reset> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/test-suite/tests/document-relative> .
+<http://json-ld.org/test-suite/tests/example-with-vocab> <http://example.org/vocab#embed> <http://json-ld.org/test-suite/tests/example-vocab-reset> .
+<http://json-ld.org/test-suite/tests/example-with-vocab> <http://example.org/vocab#property> "property expanded using @vocab" .
+<http://json-ld.org/test-suite/tests/example-with-vocab> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#vocab-prefixed> .
diff --git a/tests/JSONLDTests/toRdf-0100-in.jsonld b/tests/JSONLDTests/toRdf-0100-in.jsonld
new file mode 100644
index 00000000..2a2d1905
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0100-in.jsonld
@@ -0,0 +1,30 @@
+{
+ "@context": {
+ "property": "http://example.com/vocab#property"
+ },
+ "@id": "../document-relative",
+ "@type": "#document-relative",
+ "property": {
+ "@context": {
+ "@base": "http://example.org/test/"
+ },
+ "@id": "../document-base-overwritten",
+ "@type": "#document-base-overwritten",
+ "property": [
+ {
+ "@context": null,
+ "@id": "../document-relative",
+ "@type": "#document-relative",
+ "property": "context completely reset, drops property"
+ },
+ {
+ "@context": {
+ "@base": null
+ },
+ "@id": "../document-relative",
+ "@type": "#document-relative",
+ "property": "@base is set to none"
+ }
+ ]
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0100-out.nq b/tests/JSONLDTests/toRdf-0100-out.nq
new file mode 100644
index 00000000..8f20fb1b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0100-out.nq
@@ -0,0 +1,4 @@
+<http://example.org/document-base-overwritten> <http://example.com/vocab#property> <http://json-ld.org/test-suite/document-relative> .
+<http://example.org/document-base-overwritten> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/test/#document-base-overwritten> .
+<http://json-ld.org/test-suite/document-relative> <http://example.com/vocab#property> <http://example.org/document-base-overwritten> .
+<http://json-ld.org/test-suite/document-relative> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://json-ld.org/test-suite/tests/toRdf-0100-in.jsonld#document-relative> .
diff --git a/tests/JSONLDTests/toRdf-0101-in.jsonld b/tests/JSONLDTests/toRdf-0101-in.jsonld
new file mode 100644
index 00000000..45c1d511
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0101-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "property": {
+ "@id": "http://example.com/property",
+ "@type": "http://example.com/datatype"
+ }
+ },
+ "property": [ 1, true, false, 5.1 ]
+}
diff --git a/tests/JSONLDTests/toRdf-0101-out.nq b/tests/JSONLDTests/toRdf-0101-out.nq
new file mode 100644
index 00000000..00a8ffe3
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0101-out.nq
@@ -0,0 +1,4 @@
+_:b0 <http://example.com/property> "1"^^<http://example.com/datatype> .
+_:b0 <http://example.com/property> "5.1E0"^^<http://example.com/datatype> .
+_:b0 <http://example.com/property> "false"^^<http://example.com/datatype> .
+_:b0 <http://example.com/property> "true"^^<http://example.com/datatype> .
diff --git a/tests/JSONLDTests/toRdf-0102-in.jsonld b/tests/JSONLDTests/toRdf-0102-in.jsonld
new file mode 100644
index 00000000..fb472514
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0102-in.jsonld
@@ -0,0 +1,35 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/deep/directory/and/file#with-a-fragment",
+ "links": { "@id": "http://www.example.com/link", "@type": "@id", "@container": "@list" }
+ },
+ "@id": "relativeIris",
+ "@type": [
+ "link",
+ "#fragment-works",
+ "?query=works",
+ "./",
+ "../",
+ "../parent",
+ "../../parent-parent-eq-root",
+ "../../../../../still-root",
+ "../.././.././../../too-many-dots",
+ "/absolute",
+ "//example.org/scheme-relative"
+ ],
+ "links": [
+ "link",
+ "#fragment-works",
+ "?query=works",
+ "./",
+ "../",
+ "../parent",
+ "../../parent-parent-eq-root",
+ "./../../../../../still-root",
+ "../.././.././../../too-many-dots",
+ "/absolute",
+ "//example.org/scheme-relative",
+ "//example.org/../scheme-relative",
+ "//example.org/.././useless/../../scheme-relative"
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0102-out.nq b/tests/JSONLDTests/toRdf-0102-out.nq
new file mode 100644
index 00000000..d5f5db3e
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0102-out.nq
@@ -0,0 +1,38 @@
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.example.com/link> _:b0 .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/absolute> .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/some/deep/directory/> .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/some/deep/directory/and/> .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/some/deep/directory/and/file#fragment-works> .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/some/deep/directory/and/file?query=works> .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/some/deep/directory/and/link> .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/some/deep/directory/parent> .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/some/deep/parent-parent-eq-root> .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/still-root> .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/too-many-dots> .
+<http://example.com/some/deep/directory/and/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/scheme-relative> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/some/deep/directory/and/link> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/some/deep/directory/and/file#fragment-works> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 .
+_:b10 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/scheme-relative> .
+_:b10 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b11 .
+_:b11 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/scheme-relative> .
+_:b11 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b12 .
+_:b12 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.org/scheme-relative> .
+_:b12 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/some/deep/directory/and/file?query=works> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b3 .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/some/deep/directory/and/> .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b4 .
+_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/some/deep/directory/> .
+_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b5 .
+_:b5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/some/deep/directory/parent> .
+_:b5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b6 .
+_:b6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/some/deep/parent-parent-eq-root> .
+_:b6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b7 .
+_:b7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/still-root> .
+_:b7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b8 .
+_:b8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/too-many-dots> .
+_:b8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b9 .
+_:b9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/absolute> .
+_:b9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b10 .
diff --git a/tests/JSONLDTests/toRdf-0103-in.jsonld b/tests/JSONLDTests/toRdf-0103-in.jsonld
new file mode 100644
index 00000000..a9a83b0c
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0103-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows", "@container": "@index" }
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "isKnownBy": {
+ "Dave": {
+ "@id": "http://example.com/people/dave",
+ "name": "Dave Longley"
+ },
+ "Gregg": {
+ "@id": "http://example.com/people/gregg",
+ "name": "Gregg Kellogg"
+ }
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0103-out.nq b/tests/JSONLDTests/toRdf-0103-out.nq
new file mode 100644
index 00000000..d907850e
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0103-out.nq
@@ -0,0 +1,5 @@
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/name> "Dave Longley" .
+<http://example.com/people/gregg> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+<http://example.com/people/gregg> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/tests/JSONLDTests/toRdf-0104-in.jsonld b/tests/JSONLDTests/toRdf-0104-in.jsonld
new file mode 100644
index 00000000..dc313893
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0104-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows" }
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "isKnownBy": [
+ {
+ "name": "Dave Longley"
+ },
+ {
+ "name": "Gregg Kellogg"
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0104-out.nq b/tests/JSONLDTests/toRdf-0104-out.nq
new file mode 100644
index 00000000..15b58420
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0104-out.nq
@@ -0,0 +1,5 @@
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
+_:b0 <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+_:b0 <http://xmlns.com/foaf/0.1/name> "Dave Longley" .
+_:b1 <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+_:b1 <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
diff --git a/tests/JSONLDTests/toRdf-0105-in.jsonld b/tests/JSONLDTests/toRdf-0105-in.jsonld
new file mode 100644
index 00000000..116e0504
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0105-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "knows": "http://xmlns.com/foaf/0.1/knows"
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "@reverse": {
+ "knows": {
+ "@id": "http://example.com/people/dave",
+ "name": "Dave Longley"
+ },
+ "relative-iri": {
+ "@id": "relative-node",
+ "name": "Keys that are not mapped to an IRI in a reverse-map are dropped"
+ }
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0105-out.nq b/tests/JSONLDTests/toRdf-0105-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0105-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/name> "Dave Longley" .
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/tests/JSONLDTests/toRdf-0106-in.jsonld b/tests/JSONLDTests/toRdf-0106-in.jsonld
new file mode 100644
index 00000000..b3a9bd80
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0106-in.jsonld
@@ -0,0 +1,19 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "knows": "http://xmlns.com/foaf/0.1/knows",
+ "@vocab": "http://example.com/vocab/"
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "@reverse": {
+ "knows": {
+ "@id": "http://example.com/people/dave",
+ "name": "Dave Longley"
+ },
+ "noTerm": {
+ "@id": "relative-node",
+ "name": "Compact keys using @vocab"
+ }
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0106-out.nq b/tests/JSONLDTests/toRdf-0106-out.nq
new file mode 100644
index 00000000..1dcbdf7d
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0106-out.nq
@@ -0,0 +1,5 @@
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/name> "Dave Longley" .
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
+<http://json-ld.org/test-suite/tests/relative-node> <http://example.com/vocab/noTerm> <http://example.com/people/markus> .
+<http://json-ld.org/test-suite/tests/relative-node> <http://xmlns.com/foaf/0.1/name> "Compact keys using @vocab" .
diff --git a/tests/JSONLDTests/toRdf-0107-in.jsonld b/tests/JSONLDTests/toRdf-0107-in.jsonld
new file mode 100644
index 00000000..a8e29a67
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0107-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "http": "http://example.com/this-prefix-would-overwrite-all-http-iris"
+ },
+ "@id": "http://example.org/node1",
+ "@type": "http://example.org/type",
+ "http://example.org/property": "all these IRIs remain unchanged because they are interpreted as absolute IRIs"
+}
diff --git a/tests/JSONLDTests/toRdf-0107-out.nq b/tests/JSONLDTests/toRdf-0107-out.nq
new file mode 100644
index 00000000..c33dd89a
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0107-out.nq
@@ -0,0 +1,2 @@
+<http://example.org/node1> <http://example.org/property> "all these IRIs remain unchanged because they are interpreted as absolute IRIs" .
+<http://example.org/node1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/type> .
diff --git a/tests/JSONLDTests/toRdf-0108-in.jsonld b/tests/JSONLDTests/toRdf-0108-in.jsonld
new file mode 100644
index 00000000..ab52e5e7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0108-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "_": "http://example.com/this-prefix-would-overwrite-all-blank-node-identifiers"
+ },
+ "@id": "_:node1",
+ "@type": "_:type",
+ "_:property": "all these IRIs remain unchanged because they are interpreted as blank node identifiers"
+}
diff --git a/tests/JSONLDTests/toRdf-0108-out.nq b/tests/JSONLDTests/toRdf-0108-out.nq
new file mode 100644
index 00000000..6a736bb1
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0108-out.nq
@@ -0,0 +1 @@
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:b0 .
diff --git a/tests/JSONLDTests/toRdf-0109-in.jsonld b/tests/JSONLDTests/toRdf-0109-in.jsonld
new file mode 100644
index 00000000..8f4a9aa9
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0109-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "rdfs:subClassOf": { "@id": "rdfs:subClassOf", "@type": "@id" }
+ },
+ "@id": "http://example.com/vocab#class",
+ "@type": "rdfs:Class",
+ "rdfs:subClassOf": "http://example.com/vocab#someOtherClass"
+}
diff --git a/tests/JSONLDTests/toRdf-0109-out.nq b/tests/JSONLDTests/toRdf-0109-out.nq
new file mode 100644
index 00000000..eb20efc7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0109-out.nq
@@ -0,0 +1,2 @@
+<http://example.com/vocab#class> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
+<http://example.com/vocab#class> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://example.com/vocab#someOtherClass> .
diff --git a/tests/JSONLDTests/toRdf-0110-in.jsonld b/tests/JSONLDTests/toRdf-0110-in.jsonld
new file mode 100644
index 00000000..59733fb5
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0110-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "prefix": "http://www.example.org/vocab#",
+ "prefix:foo": "prefix:foo"
+ },
+ "@id": "http://example.com/vocab#id",
+ "@type": "prefix:Class",
+ "prefix:foo": "bar"
+}
diff --git a/tests/JSONLDTests/toRdf-0110-out.nq b/tests/JSONLDTests/toRdf-0110-out.nq
new file mode 100644
index 00000000..532caa7a
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0110-out.nq
@@ -0,0 +1,2 @@
+<http://example.com/vocab#id> <http://www.example.org/vocab#foo> "bar" .
+<http://example.com/vocab#id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.org/vocab#Class> .
diff --git a/tests/JSONLDTests/toRdf-0111-in.jsonld b/tests/JSONLDTests/toRdf-0111-in.jsonld
new file mode 100644
index 00000000..598c43fe
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0111-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": [
+ {
+ "v": "http://example.com/vocab#",
+ "v:term": "v:somethingElse",
+ "v:termId": { "@id": "v:somethingElseId" }
+ },
+ {
+ "v:term": "v:term",
+ "v:termId": { "@id": "v:termId" }
+ }
+ ],
+ "v:term": "value of v:term",
+ "v:termId": "value of v:termId"
+}
diff --git a/tests/JSONLDTests/toRdf-0111-out.nq b/tests/JSONLDTests/toRdf-0111-out.nq
new file mode 100644
index 00000000..3f78e2ce
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0111-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.com/vocab#term> "value of v:term" .
+_:b0 <http://example.com/vocab#termId> "value of v:termId" .
diff --git a/tests/JSONLDTests/toRdf-0112-in.jsonld b/tests/JSONLDTests/toRdf-0112-in.jsonld
new file mode 100644
index 00000000..dcfa1b40
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0112-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": [
+ {
+ "v": "http://example.com/vocab#",
+ "term": "v:somethingElse"
+ },
+ {
+ "@vocab": "http://example.com/anotherVocab#",
+ "term": "term"
+ }
+ ],
+ "term": "value of term"
+}
diff --git a/tests/JSONLDTests/toRdf-0112-out.nq b/tests/JSONLDTests/toRdf-0112-out.nq
new file mode 100644
index 00000000..8799e69b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0112-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/anotherVocab#term> "value of term" .
diff --git a/tests/JSONLDTests/toRdf-0113-in.jsonld b/tests/JSONLDTests/toRdf-0113-in.jsonld
new file mode 100644
index 00000000..3c337f02
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0113-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@id": "http://example/g",
+ "@graph": {
+ "@id": "http://example/s",
+ "http://example/p": {"@id": "http://example/o"}
+ }
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0113-out.nq b/tests/JSONLDTests/toRdf-0113-out.nq
new file mode 100644
index 00000000..a52ec902
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0113-out.nq
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o> <http://example/g> .
diff --git a/tests/JSONLDTests/toRdf-0114-in.jsonld b/tests/JSONLDTests/toRdf-0114-in.jsonld
new file mode 100644
index 00000000..9f170b51
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0114-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@id": "_:g",
+ "@graph": {
+ "@id": "http://example/s",
+ "http://example/p": {"@id": "http://example/o"}
+ }
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0114-out.nq b/tests/JSONLDTests/toRdf-0114-out.nq
new file mode 100644
index 00000000..58a2adc7
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0114-out.nq
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o> _:b0 .
diff --git a/tests/JSONLDTests/toRdf-0115-in.jsonld b/tests/JSONLDTests/toRdf-0115-in.jsonld
new file mode 100644
index 00000000..c7191848
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0115-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@graph": [{
+ "@id": "http://example/s0",
+ "http://example/p0": {"@id": "http://example/o0"}
+ },
+ {
+ "@id": "http://example/g",
+ "@graph": {
+ "@id": "http://example/s1",
+ "http://example/p1": {"@id": "http://example/o1"}
+ }
+ },
+ {
+ "@id": "_:g",
+ "@graph": {
+ "@id": "http://example/s2",
+ "http://example/p2": {"@id": "http://example/o2"}
+ }
+ }]
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0115-out.nq b/tests/JSONLDTests/toRdf-0115-out.nq
new file mode 100644
index 00000000..975388bf
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0115-out.nq
@@ -0,0 +1,3 @@
+<http://example/s0> <http://example/p0> <http://example/o0> .
+<http://example/s1> <http://example/p1> <http://example/o1> <http://example/g> .
+<http://example/s2> <http://example/p2> <http://example/o2> _:b0 .
diff --git a/tests/JSONLDTests/toRdf-0116-in.jsonld b/tests/JSONLDTests/toRdf-0116-in.jsonld
new file mode 100644
index 00000000..d5749891
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0116-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@id": "http://example/s0",
+ "http://example/p0": {"@id": "http://example/o0"},
+ "@graph": {
+ "@id": "http://example/s1",
+ "http://example/p1": {"@id": "http://example/o1"}
+ }
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0116-out.nq b/tests/JSONLDTests/toRdf-0116-out.nq
new file mode 100644
index 00000000..a7887a9f
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0116-out.nq
@@ -0,0 +1,2 @@
+<http://example/s0> <http://example/p0> <http://example/o0> .
+<http://example/s1> <http://example/p1> <http://example/o1> <http://example/s0> .
diff --git a/tests/JSONLDTests/toRdf-0117-in.jsonld b/tests/JSONLDTests/toRdf-0117-in.jsonld
new file mode 100644
index 00000000..cdd79a85
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0117-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "http://example/p0": {"@id": "http://example/o0"},
+ "@graph": {
+ "@id": "http://example/s1",
+ "http://example/p1": {"@id": "http://example/o1"}
+ }
+}
diff --git a/tests/JSONLDTests/toRdf-0117-out.nq b/tests/JSONLDTests/toRdf-0117-out.nq
new file mode 100644
index 00000000..1fdb0e0e
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0117-out.nq
@@ -0,0 +1,2 @@
+<http://example/s1> <http://example/p1> <http://example/o1> _:b0 .
+_:b0 <http://example/p0> <http://example/o0> .
diff --git a/tests/JSONLDTests/toRdf-0118-in.jsonld b/tests/JSONLDTests/toRdf-0118-in.jsonld
new file mode 100644
index 00000000..17071294
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0118-in.jsonld
@@ -0,0 +1,38 @@
+{
+ "@context": {
+ "term": "_:term",
+ "termId": { "@id": "term", "@type": "@id" }
+ },
+ "@id": "_:term",
+ "@type": "_:term",
+ "term": [
+ {
+ "@id": "_:term",
+ "@type": "term"
+ },
+ {
+ "@id": "_:Bx",
+ "term": "term"
+ },
+ "plain value",
+ {
+ "@id": "_:term"
+ }
+ ],
+ "termId": [
+ {
+ "@id": "_:term",
+ "@type": "term"
+ },
+ {
+ "@id": "_:Cx",
+ "term": "termId"
+ },
+ "term:AppendedToBlankNode",
+ "_:termAppendedToBlankNode",
+ "relativeIri",
+ {
+ "@id": "_:term"
+ }
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0118-out.nq b/tests/JSONLDTests/toRdf-0118-out.nq
new file mode 100644
index 00000000..a9451eef
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0118-out.nq
@@ -0,0 +1,9 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:b0 .
+_:b0 _:b0 "plain value" .
+_:b0 _:b0 <http://json-ld.org/test-suite/tests/relativeIri> .
+_:b0 _:b0 _:b0 .
+_:b0 _:b0 _:b1 .
+_:b0 _:b0 _:b2 .
+_:b0 _:b0 _:b3 .
+_:b1 _:b0 "term" .
+_:b2 _:b0 "termId" .
diff --git a/tests/JSONLDTests/toRdf-0119-in.jsonld b/tests/JSONLDTests/toRdf-0119-in.jsonld
new file mode 100644
index 00000000..088bb2ff
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0119-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "foo": "http://example.org/foo",
+ "bar": { "@reverse": "http://example.org/bar", "@type": "@id" }
+ },
+ "foo": "Foo",
+ "bar": [ "http://example.org/origin", "_:b0" ]
+}
diff --git a/tests/JSONLDTests/toRdf-0119-out.nq b/tests/JSONLDTests/toRdf-0119-out.nq
new file mode 100644
index 00000000..6fbbe3de
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0119-out.nq
@@ -0,0 +1,3 @@
+<http://example.org/origin> <http://example.org/bar> _:b0 .
+_:b0 <http://example.org/foo> "Foo" .
+_:b1 <http://example.org/bar> _:b0 .
diff --git a/tests/JSONLDTests/toRdf-0120-in.jsonld b/tests/JSONLDTests/toRdf-0120-in.jsonld
new file mode 100644
index 00000000..ad2884b9
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0120-in.jsonld
@@ -0,0 +1,47 @@
+{
+ "@context": {"@base": "http://a/bb/ccc/d;p?q", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s001", "urn:ex:p": "g:h"},
+ {"@id": "urn:ex:s002", "urn:ex:p": "g"},
+ {"@id": "urn:ex:s003", "urn:ex:p": "./g"},
+ {"@id": "urn:ex:s004", "urn:ex:p": "g/"},
+ {"@id": "urn:ex:s005", "urn:ex:p": "/g"},
+ {"@id": "urn:ex:s006", "urn:ex:p": "//g"},
+ {"@id": "urn:ex:s007", "urn:ex:p": "?y"},
+ {"@id": "urn:ex:s008", "urn:ex:p": "g?y"},
+ {"@id": "urn:ex:s009", "urn:ex:p": "#s"},
+ {"@id": "urn:ex:s010", "urn:ex:p": "g#s"},
+ {"@id": "urn:ex:s011", "urn:ex:p": "g?y#s"},
+ {"@id": "urn:ex:s012", "urn:ex:p": ";x"},
+ {"@id": "urn:ex:s013", "urn:ex:p": "g;x"},
+ {"@id": "urn:ex:s014", "urn:ex:p": "g;x?y#s"},
+ {"@id": "urn:ex:s015", "urn:ex:p": ""},
+ {"@id": "urn:ex:s016", "urn:ex:p": "."},
+ {"@id": "urn:ex:s017", "urn:ex:p": "./"},
+ {"@id": "urn:ex:s018", "urn:ex:p": ".."},
+ {"@id": "urn:ex:s019", "urn:ex:p": "../"},
+ {"@id": "urn:ex:s020", "urn:ex:p": "../g"},
+ {"@id": "urn:ex:s021", "urn:ex:p": "../.."},
+ {"@id": "urn:ex:s022", "urn:ex:p": "../../"},
+ {"@id": "urn:ex:s023", "urn:ex:p": "../../g"},
+ {"@id": "urn:ex:s024", "urn:ex:p": "../../../g"},
+ {"@id": "urn:ex:s025", "urn:ex:p": "../../../../g"},
+ {"@id": "urn:ex:s026", "urn:ex:p": "/./g"},
+ {"@id": "urn:ex:s027", "urn:ex:p": "/../g"},
+ {"@id": "urn:ex:s028", "urn:ex:p": "g."},
+ {"@id": "urn:ex:s029", "urn:ex:p": ".g"},
+ {"@id": "urn:ex:s030", "urn:ex:p": "g.."},
+ {"@id": "urn:ex:s031", "urn:ex:p": "..g"},
+ {"@id": "urn:ex:s032", "urn:ex:p": "./../g"},
+ {"@id": "urn:ex:s033", "urn:ex:p": "./g/."},
+ {"@id": "urn:ex:s034", "urn:ex:p": "g/./h"},
+ {"@id": "urn:ex:s035", "urn:ex:p": "g/../h"},
+ {"@id": "urn:ex:s036", "urn:ex:p": "g;x=1/./y"},
+ {"@id": "urn:ex:s037", "urn:ex:p": "g;x=1/../y"},
+ {"@id": "urn:ex:s038", "urn:ex:p": "g?y/./x"},
+ {"@id": "urn:ex:s039", "urn:ex:p": "g?y/../x"},
+ {"@id": "urn:ex:s040", "urn:ex:p": "g#s/./x"},
+ {"@id": "urn:ex:s041", "urn:ex:p": "g#s/../x"},
+ {"@id": "urn:ex:s042", "urn:ex:p": "http:g"}
+ ]
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0120-out.nq b/tests/JSONLDTests/toRdf-0120-out.nq
new file mode 100644
index 00000000..8503e524
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0120-out.nq
@@ -0,0 +1,42 @@
+<urn:ex:s001> <urn:ex:p> <g:h> .
+<urn:ex:s002> <urn:ex:p> <http://a/bb/ccc/g> .
+<urn:ex:s003> <urn:ex:p> <http://a/bb/ccc/g> .
+<urn:ex:s004> <urn:ex:p> <http://a/bb/ccc/g/> .
+<urn:ex:s005> <urn:ex:p> <http://a/g> .
+<urn:ex:s006> <urn:ex:p> <http://g> .
+<urn:ex:s007> <urn:ex:p> <http://a/bb/ccc/d;p?y> .
+<urn:ex:s008> <urn:ex:p> <http://a/bb/ccc/g?y> .
+<urn:ex:s009> <urn:ex:p> <http://a/bb/ccc/d;p?q#s> .
+<urn:ex:s010> <urn:ex:p> <http://a/bb/ccc/g#s> .
+<urn:ex:s011> <urn:ex:p> <http://a/bb/ccc/g?y#s> .
+<urn:ex:s012> <urn:ex:p> <http://a/bb/ccc/;x> .
+<urn:ex:s013> <urn:ex:p> <http://a/bb/ccc/g;x> .
+<urn:ex:s014> <urn:ex:p> <http://a/bb/ccc/g;x?y#s> .
+<urn:ex:s015> <urn:ex:p> <http://a/bb/ccc/d;p?q> .
+<urn:ex:s016> <urn:ex:p> <http://a/bb/ccc/> .
+<urn:ex:s017> <urn:ex:p> <http://a/bb/ccc/> .
+<urn:ex:s018> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s019> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s020> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s021> <urn:ex:p> <http://a/> .
+<urn:ex:s022> <urn:ex:p> <http://a/> .
+<urn:ex:s023> <urn:ex:p> <http://a/g> .
+<urn:ex:s024> <urn:ex:p> <http://a/g> .
+<urn:ex:s025> <urn:ex:p> <http://a/g> .
+<urn:ex:s026> <urn:ex:p> <http://a/g> .
+<urn:ex:s027> <urn:ex:p> <http://a/g> .
+<urn:ex:s028> <urn:ex:p> <http://a/bb/ccc/g.> .
+<urn:ex:s029> <urn:ex:p> <http://a/bb/ccc/.g> .
+<urn:ex:s030> <urn:ex:p> <http://a/bb/ccc/g..> .
+<urn:ex:s031> <urn:ex:p> <http://a/bb/ccc/..g> .
+<urn:ex:s032> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s033> <urn:ex:p> <http://a/bb/ccc/g/> .
+<urn:ex:s034> <urn:ex:p> <http://a/bb/ccc/g/h> .
+<urn:ex:s035> <urn:ex:p> <http://a/bb/ccc/h> .
+<urn:ex:s036> <urn:ex:p> <http://a/bb/ccc/g;x=1/y> .
+<urn:ex:s037> <urn:ex:p> <http://a/bb/ccc/y> .
+<urn:ex:s038> <urn:ex:p> <http://a/bb/ccc/g?y/./x> .
+<urn:ex:s039> <urn:ex:p> <http://a/bb/ccc/g?y/../x> .
+<urn:ex:s040> <urn:ex:p> <http://a/bb/ccc/g#s/./x> .
+<urn:ex:s041> <urn:ex:p> <http://a/bb/ccc/g#s/../x> .
+<urn:ex:s042> <urn:ex:p> <http:g> .
diff --git a/tests/JSONLDTests/toRdf-0121-in.jsonld b/tests/JSONLDTests/toRdf-0121-in.jsonld
new file mode 100644
index 00000000..86a197dc
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0121-in.jsonld
@@ -0,0 +1,47 @@
+{
+ "@context": {"@base": "http://a/bb/ccc/d/", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s043", "urn:ex:p": "g:h"},
+ {"@id": "urn:ex:s044", "urn:ex:p": "g"},
+ {"@id": "urn:ex:s045", "urn:ex:p": "./g"},
+ {"@id": "urn:ex:s046", "urn:ex:p": "g/"},
+ {"@id": "urn:ex:s047", "urn:ex:p": "/g"},
+ {"@id": "urn:ex:s048", "urn:ex:p": "//g"},
+ {"@id": "urn:ex:s049", "urn:ex:p": "?y"},
+ {"@id": "urn:ex:s050", "urn:ex:p": "g?y"},
+ {"@id": "urn:ex:s051", "urn:ex:p": "#s"},
+ {"@id": "urn:ex:s052", "urn:ex:p": "g#s"},
+ {"@id": "urn:ex:s053", "urn:ex:p": "g?y#s"},
+ {"@id": "urn:ex:s054", "urn:ex:p": ";x"},
+ {"@id": "urn:ex:s055", "urn:ex:p": "g;x"},
+ {"@id": "urn:ex:s056", "urn:ex:p": "g;x?y#s"},
+ {"@id": "urn:ex:s057", "urn:ex:p": ""},
+ {"@id": "urn:ex:s058", "urn:ex:p": "."},
+ {"@id": "urn:ex:s059", "urn:ex:p": "./"},
+ {"@id": "urn:ex:s060", "urn:ex:p": ".."},
+ {"@id": "urn:ex:s061", "urn:ex:p": "../"},
+ {"@id": "urn:ex:s062", "urn:ex:p": "../g"},
+ {"@id": "urn:ex:s063", "urn:ex:p": "../.."},
+ {"@id": "urn:ex:s064", "urn:ex:p": "../../"},
+ {"@id": "urn:ex:s065", "urn:ex:p": "../../g"},
+ {"@id": "urn:ex:s066", "urn:ex:p": "../../../g"},
+ {"@id": "urn:ex:s067", "urn:ex:p": "../../../../g"},
+ {"@id": "urn:ex:s068", "urn:ex:p": "/./g"},
+ {"@id": "urn:ex:s069", "urn:ex:p": "/../g"},
+ {"@id": "urn:ex:s070", "urn:ex:p": "g."},
+ {"@id": "urn:ex:s071", "urn:ex:p": ".g"},
+ {"@id": "urn:ex:s072", "urn:ex:p": "g.."},
+ {"@id": "urn:ex:s073", "urn:ex:p": "..g"},
+ {"@id": "urn:ex:s074", "urn:ex:p": "./../g"},
+ {"@id": "urn:ex:s075", "urn:ex:p": "./g/."},
+ {"@id": "urn:ex:s076", "urn:ex:p": "g/./h"},
+ {"@id": "urn:ex:s077", "urn:ex:p": "g/../h"},
+ {"@id": "urn:ex:s078", "urn:ex:p": "g;x=1/./y"},
+ {"@id": "urn:ex:s079", "urn:ex:p": "g;x=1/../y"},
+ {"@id": "urn:ex:s080", "urn:ex:p": "g?y/./x"},
+ {"@id": "urn:ex:s081", "urn:ex:p": "g?y/../x"},
+ {"@id": "urn:ex:s082", "urn:ex:p": "g#s/./x"},
+ {"@id": "urn:ex:s083", "urn:ex:p": "g#s/../x"},
+ {"@id": "urn:ex:s084", "urn:ex:p": "http:g"}
+ ]
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0121-out.nq b/tests/JSONLDTests/toRdf-0121-out.nq
new file mode 100644
index 00000000..b0a0231a
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0121-out.nq
@@ -0,0 +1,42 @@
+<urn:ex:s043> <urn:ex:p> <g:h> .
+<urn:ex:s044> <urn:ex:p> <http://a/bb/ccc/d/g> .
+<urn:ex:s045> <urn:ex:p> <http://a/bb/ccc/d/g> .
+<urn:ex:s046> <urn:ex:p> <http://a/bb/ccc/d/g/> .
+<urn:ex:s047> <urn:ex:p> <http://a/g> .
+<urn:ex:s048> <urn:ex:p> <http://g> .
+<urn:ex:s049> <urn:ex:p> <http://a/bb/ccc/d/?y> .
+<urn:ex:s050> <urn:ex:p> <http://a/bb/ccc/d/g?y> .
+<urn:ex:s051> <urn:ex:p> <http://a/bb/ccc/d/#s> .
+<urn:ex:s052> <urn:ex:p> <http://a/bb/ccc/d/g#s> .
+<urn:ex:s053> <urn:ex:p> <http://a/bb/ccc/d/g?y#s> .
+<urn:ex:s054> <urn:ex:p> <http://a/bb/ccc/d/;x> .
+<urn:ex:s055> <urn:ex:p> <http://a/bb/ccc/d/g;x> .
+<urn:ex:s056> <urn:ex:p> <http://a/bb/ccc/d/g;x?y#s> .
+<urn:ex:s057> <urn:ex:p> <http://a/bb/ccc/d/> .
+<urn:ex:s058> <urn:ex:p> <http://a/bb/ccc/d/> .
+<urn:ex:s059> <urn:ex:p> <http://a/bb/ccc/d/> .
+<urn:ex:s060> <urn:ex:p> <http://a/bb/ccc/> .
+<urn:ex:s061> <urn:ex:p> <http://a/bb/ccc/> .
+<urn:ex:s062> <urn:ex:p> <http://a/bb/ccc/g> .
+<urn:ex:s063> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s064> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s065> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s066> <urn:ex:p> <http://a/g> .
+<urn:ex:s067> <urn:ex:p> <http://a/g> .
+<urn:ex:s068> <urn:ex:p> <http://a/g> .
+<urn:ex:s069> <urn:ex:p> <http://a/g> .
+<urn:ex:s070> <urn:ex:p> <http://a/bb/ccc/d/g.> .
+<urn:ex:s071> <urn:ex:p> <http://a/bb/ccc/d/.g> .
+<urn:ex:s072> <urn:ex:p> <http://a/bb/ccc/d/g..> .
+<urn:ex:s073> <urn:ex:p> <http://a/bb/ccc/d/..g> .
+<urn:ex:s074> <urn:ex:p> <http://a/bb/ccc/g> .
+<urn:ex:s075> <urn:ex:p> <http://a/bb/ccc/d/g/> .
+<urn:ex:s076> <urn:ex:p> <http://a/bb/ccc/d/g/h> .
+<urn:ex:s077> <urn:ex:p> <http://a/bb/ccc/d/h> .
+<urn:ex:s078> <urn:ex:p> <http://a/bb/ccc/d/g;x=1/y> .
+<urn:ex:s079> <urn:ex:p> <http://a/bb/ccc/d/y> .
+<urn:ex:s080> <urn:ex:p> <http://a/bb/ccc/d/g?y/./x> .
+<urn:ex:s081> <urn:ex:p> <http://a/bb/ccc/d/g?y/../x> .
+<urn:ex:s082> <urn:ex:p> <http://a/bb/ccc/d/g#s/./x> .
+<urn:ex:s083> <urn:ex:p> <http://a/bb/ccc/d/g#s/../x> .
+<urn:ex:s084> <urn:ex:p> <http:g> .
diff --git a/tests/JSONLDTests/toRdf-0122-in.jsonld b/tests/JSONLDTests/toRdf-0122-in.jsonld
new file mode 100644
index 00000000..f6c240c0
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0122-in.jsonld
@@ -0,0 +1,47 @@
+{
+ "@context": {"@base": "http://a/bb/ccc/./d;p?q", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s085", "urn:ex:p": "g:h"},
+ {"@id": "urn:ex:s086", "urn:ex:p": "g"},
+ {"@id": "urn:ex:s087", "urn:ex:p": "./g"},
+ {"@id": "urn:ex:s088", "urn:ex:p": "g/"},
+ {"@id": "urn:ex:s089", "urn:ex:p": "/g"},
+ {"@id": "urn:ex:s090", "urn:ex:p": "//g"},
+ {"@id": "urn:ex:s091", "urn:ex:p": "?y"},
+ {"@id": "urn:ex:s092", "urn:ex:p": "g?y"},
+ {"@id": "urn:ex:s093", "urn:ex:p": "#s"},
+ {"@id": "urn:ex:s094", "urn:ex:p": "g#s"},
+ {"@id": "urn:ex:s095", "urn:ex:p": "g?y#s"},
+ {"@id": "urn:ex:s096", "urn:ex:p": ";x"},
+ {"@id": "urn:ex:s097", "urn:ex:p": "g;x"},
+ {"@id": "urn:ex:s098", "urn:ex:p": "g;x?y#s"},
+ {"@id": "urn:ex:s099", "urn:ex:p": ""},
+ {"@id": "urn:ex:s100", "urn:ex:p": "."},
+ {"@id": "urn:ex:s101", "urn:ex:p": "./"},
+ {"@id": "urn:ex:s102", "urn:ex:p": ".."},
+ {"@id": "urn:ex:s103", "urn:ex:p": "../"},
+ {"@id": "urn:ex:s104", "urn:ex:p": "../g"},
+ {"@id": "urn:ex:s105", "urn:ex:p": "../.."},
+ {"@id": "urn:ex:s106", "urn:ex:p": "../../"},
+ {"@id": "urn:ex:s107", "urn:ex:p": "../../g"},
+ {"@id": "urn:ex:s108", "urn:ex:p": "../../../g"},
+ {"@id": "urn:ex:s109", "urn:ex:p": "../../../../g"},
+ {"@id": "urn:ex:s110", "urn:ex:p": "/./g"},
+ {"@id": "urn:ex:s111", "urn:ex:p": "/../g"},
+ {"@id": "urn:ex:s112", "urn:ex:p": "g."},
+ {"@id": "urn:ex:s113", "urn:ex:p": ".g"},
+ {"@id": "urn:ex:s114", "urn:ex:p": "g.."},
+ {"@id": "urn:ex:s115", "urn:ex:p": "..g"},
+ {"@id": "urn:ex:s116", "urn:ex:p": "./../g"},
+ {"@id": "urn:ex:s117", "urn:ex:p": "./g/."},
+ {"@id": "urn:ex:s118", "urn:ex:p": "g/./h"},
+ {"@id": "urn:ex:s119", "urn:ex:p": "g/../h"},
+ {"@id": "urn:ex:s120", "urn:ex:p": "g;x=1/./y"},
+ {"@id": "urn:ex:s121", "urn:ex:p": "g;x=1/../y"},
+ {"@id": "urn:ex:s122", "urn:ex:p": "g?y/./x"},
+ {"@id": "urn:ex:s123", "urn:ex:p": "g?y/../x"},
+ {"@id": "urn:ex:s124", "urn:ex:p": "g#s/./x"},
+ {"@id": "urn:ex:s125", "urn:ex:p": "g#s/../x"},
+ {"@id": "urn:ex:s126", "urn:ex:p": "http:g"}
+ ]
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0122-out.nq b/tests/JSONLDTests/toRdf-0122-out.nq
new file mode 100644
index 00000000..fd518304
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0122-out.nq
@@ -0,0 +1,42 @@
+<urn:ex:s085> <urn:ex:p> <g:h> .
+<urn:ex:s086> <urn:ex:p> <http://a/bb/ccc/g> .
+<urn:ex:s087> <urn:ex:p> <http://a/bb/ccc/g> .
+<urn:ex:s088> <urn:ex:p> <http://a/bb/ccc/g/> .
+<urn:ex:s089> <urn:ex:p> <http://a/g> .
+<urn:ex:s090> <urn:ex:p> <http://g> .
+<urn:ex:s091> <urn:ex:p> <http://a/bb/ccc/./d;p?y> .
+<urn:ex:s092> <urn:ex:p> <http://a/bb/ccc/g?y> .
+<urn:ex:s093> <urn:ex:p> <http://a/bb/ccc/./d;p?q#s> .
+<urn:ex:s094> <urn:ex:p> <http://a/bb/ccc/g#s> .
+<urn:ex:s095> <urn:ex:p> <http://a/bb/ccc/g?y#s> .
+<urn:ex:s096> <urn:ex:p> <http://a/bb/ccc/;x> .
+<urn:ex:s097> <urn:ex:p> <http://a/bb/ccc/g;x> .
+<urn:ex:s098> <urn:ex:p> <http://a/bb/ccc/g;x?y#s> .
+<urn:ex:s099> <urn:ex:p> <http://a/bb/ccc/./d;p?q> .
+<urn:ex:s100> <urn:ex:p> <http://a/bb/ccc/> .
+<urn:ex:s101> <urn:ex:p> <http://a/bb/ccc/> .
+<urn:ex:s102> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s103> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s104> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s105> <urn:ex:p> <http://a/> .
+<urn:ex:s106> <urn:ex:p> <http://a/> .
+<urn:ex:s107> <urn:ex:p> <http://a/g> .
+<urn:ex:s108> <urn:ex:p> <http://a/g> .
+<urn:ex:s109> <urn:ex:p> <http://a/g> .
+<urn:ex:s110> <urn:ex:p> <http://a/g> .
+<urn:ex:s111> <urn:ex:p> <http://a/g> .
+<urn:ex:s112> <urn:ex:p> <http://a/bb/ccc/g.> .
+<urn:ex:s113> <urn:ex:p> <http://a/bb/ccc/.g> .
+<urn:ex:s114> <urn:ex:p> <http://a/bb/ccc/g..> .
+<urn:ex:s115> <urn:ex:p> <http://a/bb/ccc/..g> .
+<urn:ex:s116> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s117> <urn:ex:p> <http://a/bb/ccc/g/> .
+<urn:ex:s118> <urn:ex:p> <http://a/bb/ccc/g/h> .
+<urn:ex:s119> <urn:ex:p> <http://a/bb/ccc/h> .
+<urn:ex:s120> <urn:ex:p> <http://a/bb/ccc/g;x=1/y> .
+<urn:ex:s121> <urn:ex:p> <http://a/bb/ccc/y> .
+<urn:ex:s122> <urn:ex:p> <http://a/bb/ccc/g?y/./x> .
+<urn:ex:s123> <urn:ex:p> <http://a/bb/ccc/g?y/../x> .
+<urn:ex:s124> <urn:ex:p> <http://a/bb/ccc/g#s/./x> .
+<urn:ex:s125> <urn:ex:p> <http://a/bb/ccc/g#s/../x> .
+<urn:ex:s126> <urn:ex:p> <http:g> .
diff --git a/tests/JSONLDTests/toRdf-0123-in.jsonld b/tests/JSONLDTests/toRdf-0123-in.jsonld
new file mode 100644
index 00000000..006fa689
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0123-in.jsonld
@@ -0,0 +1,47 @@
+{
+ "@context": {"@base": "http://a/bb/ccc/../d;p?q", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s127", "urn:ex:p": "g:h"},
+ {"@id": "urn:ex:s128", "urn:ex:p": "g"},
+ {"@id": "urn:ex:s129", "urn:ex:p": "./g"},
+ {"@id": "urn:ex:s130", "urn:ex:p": "g/"},
+ {"@id": "urn:ex:s131", "urn:ex:p": "/g"},
+ {"@id": "urn:ex:s132", "urn:ex:p": "//g"},
+ {"@id": "urn:ex:s133", "urn:ex:p": "?y"},
+ {"@id": "urn:ex:s134", "urn:ex:p": "g?y"},
+ {"@id": "urn:ex:s135", "urn:ex:p": "#s"},
+ {"@id": "urn:ex:s136", "urn:ex:p": "g#s"},
+ {"@id": "urn:ex:s137", "urn:ex:p": "g?y#s"},
+ {"@id": "urn:ex:s138", "urn:ex:p": ";x"},
+ {"@id": "urn:ex:s139", "urn:ex:p": "g;x"},
+ {"@id": "urn:ex:s140", "urn:ex:p": "g;x?y#s"},
+ {"@id": "urn:ex:s141", "urn:ex:p": ""},
+ {"@id": "urn:ex:s142", "urn:ex:p": "."},
+ {"@id": "urn:ex:s143", "urn:ex:p": "./"},
+ {"@id": "urn:ex:s144", "urn:ex:p": ".."},
+ {"@id": "urn:ex:s145", "urn:ex:p": "../"},
+ {"@id": "urn:ex:s146", "urn:ex:p": "../g"},
+ {"@id": "urn:ex:s147", "urn:ex:p": "../.."},
+ {"@id": "urn:ex:s148", "urn:ex:p": "../../"},
+ {"@id": "urn:ex:s149", "urn:ex:p": "../../g"},
+ {"@id": "urn:ex:s150", "urn:ex:p": "../../../g"},
+ {"@id": "urn:ex:s151", "urn:ex:p": "../../../../g"},
+ {"@id": "urn:ex:s152", "urn:ex:p": "/./g"},
+ {"@id": "urn:ex:s153", "urn:ex:p": "/../g"},
+ {"@id": "urn:ex:s154", "urn:ex:p": "g."},
+ {"@id": "urn:ex:s155", "urn:ex:p": ".g"},
+ {"@id": "urn:ex:s156", "urn:ex:p": "g.."},
+ {"@id": "urn:ex:s157", "urn:ex:p": "..g"},
+ {"@id": "urn:ex:s158", "urn:ex:p": "./../g"},
+ {"@id": "urn:ex:s159", "urn:ex:p": "./g/."},
+ {"@id": "urn:ex:s160", "urn:ex:p": "g/./h"},
+ {"@id": "urn:ex:s161", "urn:ex:p": "g/../h"},
+ {"@id": "urn:ex:s162", "urn:ex:p": "g;x=1/./y"},
+ {"@id": "urn:ex:s163", "urn:ex:p": "g;x=1/../y"},
+ {"@id": "urn:ex:s164", "urn:ex:p": "g?y/./x"},
+ {"@id": "urn:ex:s165", "urn:ex:p": "g?y/../x"},
+ {"@id": "urn:ex:s166", "urn:ex:p": "g#s/./x"},
+ {"@id": "urn:ex:s167", "urn:ex:p": "g#s/../x"},
+ {"@id": "urn:ex:s168", "urn:ex:p": "http:g"}
+ ]
+} \ No newline at end of file
diff --git a/tests/JSONLDTests/toRdf-0123-out.nq b/tests/JSONLDTests/toRdf-0123-out.nq
new file mode 100644
index 00000000..59af1ece
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0123-out.nq
@@ -0,0 +1,42 @@
+<urn:ex:s127> <urn:ex:p> <g:h> .
+<urn:ex:s128> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s129> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s130> <urn:ex:p> <http://a/bb/g/> .
+<urn:ex:s131> <urn:ex:p> <http://a/g> .
+<urn:ex:s132> <urn:ex:p> <http://g> .
+<urn:ex:s133> <urn:ex:p> <http://a/bb/ccc/../d;p?y> .
+<urn:ex:s134> <urn:ex:p> <http://a/bb/g?y> .
+<urn:ex:s135> <urn:ex:p> <http://a/bb/ccc/../d;p?q#s> .
+<urn:ex:s136> <urn:ex:p> <http://a/bb/g#s> .
+<urn:ex:s137> <urn:ex:p> <http://a/bb/g?y#s> .
+<urn:ex:s138> <urn:ex:p> <http://a/bb/;x> .
+<urn:ex:s139> <urn:ex:p> <http://a/bb/g;x> .
+<urn:ex:s140> <urn:ex:p> <http://a/bb/g;x?y#s> .
+<urn:ex:s141> <urn:ex:p> <http://a/bb/ccc/../d;p?q> .
+<urn:ex:s142> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s143> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s144> <urn:ex:p> <http://a/> .
+<urn:ex:s145> <urn:ex:p> <http://a/> .
+<urn:ex:s146> <urn:ex:p> <http://a/g> .
+<urn:ex:s147> <urn:ex:p> <http://a/> .
+<urn:ex:s148> <urn:ex:p> <http://a/> .
+<urn:ex:s149> <urn:ex:p> <http://a/g> .
+<urn:ex:s150> <urn:ex:p> <http://a/g> .
+<urn:ex:s151> <urn:ex:p> <http://a/g> .
+<urn:ex:s152> <urn:ex:p> <http://a/g> .
+<urn:ex:s153> <urn:ex:p> <http://a/g> .
+<urn:ex:s154> <urn:ex:p> <http://a/bb/g.> .
+<urn:ex:s155> <urn:ex:p> <http://a/bb/.g> .
+<urn:ex:s156> <urn:ex:p> <http://a/bb/g..> .
+<urn:ex:s157> <urn:ex:p> <http://a/bb/..g> .
+<urn:ex:s158> <urn:ex:p> <http://a/g> .
+<urn:ex:s159> <urn:ex:p> <http://a/bb/g/> .
+<urn:ex:s160> <urn:ex:p> <http://a/bb/g/h> .
+<urn:ex:s161> <urn:ex:p> <http://a/bb/h> .
+<urn:ex:s162> <urn:ex:p> <http://a/bb/g;x=1/y> .
+<urn:ex:s163> <urn:ex:p> <http://a/bb/y> .
+<urn:ex:s164> <urn:ex:p> <http://a/bb/g?y/./x> .
+<urn:ex:s165> <urn:ex:p> <http://a/bb/g?y/../x> .
+<urn:ex:s166> <urn:ex:p> <http://a/bb/g#s/./x> .
+<urn:ex:s167> <urn:ex:p> <http://a/bb/g#s/../x> .
+<urn:ex:s168> <urn:ex:p> <http:g> .
diff --git a/tests/JSONLDTests/toRdf-0124-in.jsonld b/tests/JSONLDTests/toRdf-0124-in.jsonld
new file mode 100644
index 00000000..d75b3d8c
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0124-in.jsonld
@@ -0,0 +1,47 @@
+{
+ "@context": {"@base": "http://a/bb/ccc/.", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s169", "urn:ex:p": "g:h"},
+ {"@id": "urn:ex:s170", "urn:ex:p": "g"},
+ {"@id": "urn:ex:s171", "urn:ex:p": "./g"},
+ {"@id": "urn:ex:s172", "urn:ex:p": "g/"},
+ {"@id": "urn:ex:s173", "urn:ex:p": "/g"},
+ {"@id": "urn:ex:s174", "urn:ex:p": "//g"},
+ {"@id": "urn:ex:s175", "urn:ex:p": "?y"},
+ {"@id": "urn:ex:s176", "urn:ex:p": "g?y"},
+ {"@id": "urn:ex:s177", "urn:ex:p": "#s"},
+ {"@id": "urn:ex:s178", "urn:ex:p": "g#s"},
+ {"@id": "urn:ex:s179", "urn:ex:p": "g?y#s"},
+ {"@id": "urn:ex:s180", "urn:ex:p": ";x"},
+ {"@id": "urn:ex:s181", "urn:ex:p": "g;x"},
+ {"@id": "urn:ex:s182", "urn:ex:p": "g;x?y#s"},
+ {"@id": "urn:ex:s183", "urn:ex:p": ""},
+ {"@id": "urn:ex:s184", "urn:ex:p": "."},
+ {"@id": "urn:ex:s185", "urn:ex:p": "./"},
+ {"@id": "urn:ex:s186", "urn:ex:p": ".."},
+ {"@id": "urn:ex:s187", "urn:ex:p": "../"},
+ {"@id": "urn:ex:s188", "urn:ex:p": "../g"},
+ {"@id": "urn:ex:s189", "urn:ex:p": "../.."},
+ {"@id": "urn:ex:s190", "urn:ex:p": "../../"},
+ {"@id": "urn:ex:s191", "urn:ex:p": "../../g"},
+ {"@id": "urn:ex:s192", "urn:ex:p": "../../../g"},
+ {"@id": "urn:ex:s193", "urn:ex:p": "../../../../g"},
+ {"@id": "urn:ex:s194", "urn:ex:p": "/./g"},
+ {"@id": "urn:ex:s195", "urn:ex:p": "/../g"},
+ {"@id": "urn:ex:s196", "urn:ex:p": "g."},
+ {"@id": "urn:ex:s197", "urn:ex:p": ".g"},
+ {"@id": "urn:ex:s198", "urn:ex:p": "g.."},
+ {"@id": "urn:ex:s199", "urn:ex:p": "..g"},
+ {"@id": "urn:ex:s200", "urn:ex:p": "./../g"},
+ {"@id": "urn:ex:s201", "urn:ex:p": "./g/."},
+ {"@id": "urn:ex:s202", "urn:ex:p": "g/./h"},
+ {"@id": "urn:ex:s203", "urn:ex:p": "g/../h"},
+ {"@id": "urn:ex:s204", "urn:ex:p": "g;x=1/./y"},
+ {"@id": "urn:ex:s205", "urn:ex:p": "g;x=1/../y"},
+ {"@id": "urn:ex:s206", "urn:ex:p": "g?y/./x"},
+ {"@id": "urn:ex:s207", "urn:ex:p": "g?y/../x"},
+ {"@id": "urn:ex:s208", "urn:ex:p": "g#s/./x"},
+ {"@id": "urn:ex:s209", "urn:ex:p": "g#s/../x"},
+ {"@id": "urn:ex:s210", "urn:ex:p": "http:g"}
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0124-out.nq b/tests/JSONLDTests/toRdf-0124-out.nq
new file mode 100644
index 00000000..7a57e0e6
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0124-out.nq
@@ -0,0 +1,42 @@
+<urn:ex:s169> <urn:ex:p> <g:h> .
+<urn:ex:s170> <urn:ex:p> <http://a/bb/ccc/g> .
+<urn:ex:s171> <urn:ex:p> <http://a/bb/ccc/g> .
+<urn:ex:s172> <urn:ex:p> <http://a/bb/ccc/g/> .
+<urn:ex:s173> <urn:ex:p> <http://a/g> .
+<urn:ex:s174> <urn:ex:p> <http://g> .
+<urn:ex:s175> <urn:ex:p> <http://a/bb/ccc/.?y> .
+<urn:ex:s176> <urn:ex:p> <http://a/bb/ccc/g?y> .
+<urn:ex:s177> <urn:ex:p> <http://a/bb/ccc/.#s> .
+<urn:ex:s178> <urn:ex:p> <http://a/bb/ccc/g#s> .
+<urn:ex:s179> <urn:ex:p> <http://a/bb/ccc/g?y#s> .
+<urn:ex:s180> <urn:ex:p> <http://a/bb/ccc/;x> .
+<urn:ex:s181> <urn:ex:p> <http://a/bb/ccc/g;x> .
+<urn:ex:s182> <urn:ex:p> <http://a/bb/ccc/g;x?y#s> .
+<urn:ex:s183> <urn:ex:p> <http://a/bb/ccc/.> .
+<urn:ex:s184> <urn:ex:p> <http://a/bb/ccc/> .
+<urn:ex:s185> <urn:ex:p> <http://a/bb/ccc/> .
+<urn:ex:s186> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s187> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s188> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s189> <urn:ex:p> <http://a/> .
+<urn:ex:s190> <urn:ex:p> <http://a/> .
+<urn:ex:s191> <urn:ex:p> <http://a/g> .
+<urn:ex:s192> <urn:ex:p> <http://a/g> .
+<urn:ex:s193> <urn:ex:p> <http://a/g> .
+<urn:ex:s194> <urn:ex:p> <http://a/g> .
+<urn:ex:s195> <urn:ex:p> <http://a/g> .
+<urn:ex:s196> <urn:ex:p> <http://a/bb/ccc/g.> .
+<urn:ex:s197> <urn:ex:p> <http://a/bb/ccc/.g> .
+<urn:ex:s198> <urn:ex:p> <http://a/bb/ccc/g..> .
+<urn:ex:s199> <urn:ex:p> <http://a/bb/ccc/..g> .
+<urn:ex:s200> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s201> <urn:ex:p> <http://a/bb/ccc/g/> .
+<urn:ex:s202> <urn:ex:p> <http://a/bb/ccc/g/h> .
+<urn:ex:s203> <urn:ex:p> <http://a/bb/ccc/h> .
+<urn:ex:s204> <urn:ex:p> <http://a/bb/ccc/g;x=1/y> .
+<urn:ex:s205> <urn:ex:p> <http://a/bb/ccc/y> .
+<urn:ex:s206> <urn:ex:p> <http://a/bb/ccc/g?y/./x> .
+<urn:ex:s207> <urn:ex:p> <http://a/bb/ccc/g?y/../x> .
+<urn:ex:s208> <urn:ex:p> <http://a/bb/ccc/g#s/./x> .
+<urn:ex:s209> <urn:ex:p> <http://a/bb/ccc/g#s/../x> .
+<urn:ex:s210> <urn:ex:p> <http:g> .
diff --git a/tests/JSONLDTests/toRdf-0125-in.jsonld b/tests/JSONLDTests/toRdf-0125-in.jsonld
new file mode 100644
index 00000000..2e1adc8b
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0125-in.jsonld
@@ -0,0 +1,47 @@
+{
+ "@context": {"@base": "http://a/bb/ccc/..", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s211", "urn:ex:p": "g:h"},
+ {"@id": "urn:ex:s212", "urn:ex:p": "g"},
+ {"@id": "urn:ex:s213", "urn:ex:p": "./g"},
+ {"@id": "urn:ex:s214", "urn:ex:p": "g/"},
+ {"@id": "urn:ex:s215", "urn:ex:p": "/g"},
+ {"@id": "urn:ex:s216", "urn:ex:p": "//g"},
+ {"@id": "urn:ex:s217", "urn:ex:p": "?y"},
+ {"@id": "urn:ex:s218", "urn:ex:p": "g?y"},
+ {"@id": "urn:ex:s219", "urn:ex:p": "#s"},
+ {"@id": "urn:ex:s220", "urn:ex:p": "g#s"},
+ {"@id": "urn:ex:s221", "urn:ex:p": "g?y#s"},
+ {"@id": "urn:ex:s222", "urn:ex:p": ";x"},
+ {"@id": "urn:ex:s223", "urn:ex:p": "g;x"},
+ {"@id": "urn:ex:s224", "urn:ex:p": "g;x?y#s"},
+ {"@id": "urn:ex:s225", "urn:ex:p": ""},
+ {"@id": "urn:ex:s226", "urn:ex:p": "."},
+ {"@id": "urn:ex:s227", "urn:ex:p": "./"},
+ {"@id": "urn:ex:s228", "urn:ex:p": ".."},
+ {"@id": "urn:ex:s229", "urn:ex:p": "../"},
+ {"@id": "urn:ex:s230", "urn:ex:p": "../g"},
+ {"@id": "urn:ex:s231", "urn:ex:p": "../.."},
+ {"@id": "urn:ex:s232", "urn:ex:p": "../../"},
+ {"@id": "urn:ex:s233", "urn:ex:p": "../../g"},
+ {"@id": "urn:ex:s234", "urn:ex:p": "../../../g"},
+ {"@id": "urn:ex:s235", "urn:ex:p": "../../../../g"},
+ {"@id": "urn:ex:s236", "urn:ex:p": "/./g"},
+ {"@id": "urn:ex:s237", "urn:ex:p": "/../g"},
+ {"@id": "urn:ex:s238", "urn:ex:p": "g."},
+ {"@id": "urn:ex:s239", "urn:ex:p": ".g"},
+ {"@id": "urn:ex:s240", "urn:ex:p": "g.."},
+ {"@id": "urn:ex:s241", "urn:ex:p": "..g"},
+ {"@id": "urn:ex:s242", "urn:ex:p": "./../g"},
+ {"@id": "urn:ex:s243", "urn:ex:p": "./g/."},
+ {"@id": "urn:ex:s244", "urn:ex:p": "g/./h"},
+ {"@id": "urn:ex:s245", "urn:ex:p": "g/../h"},
+ {"@id": "urn:ex:s246", "urn:ex:p": "g;x=1/./y"},
+ {"@id": "urn:ex:s247", "urn:ex:p": "g;x=1/../y"},
+ {"@id": "urn:ex:s248", "urn:ex:p": "g?y/./x"},
+ {"@id": "urn:ex:s249", "urn:ex:p": "g?y/../x"},
+ {"@id": "urn:ex:s250", "urn:ex:p": "g#s/./x"},
+ {"@id": "urn:ex:s251", "urn:ex:p": "g#s/../x"},
+ {"@id": "urn:ex:s252", "urn:ex:p": "http:g"}
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0125-out.nq b/tests/JSONLDTests/toRdf-0125-out.nq
new file mode 100644
index 00000000..89a3f659
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0125-out.nq
@@ -0,0 +1,42 @@
+<urn:ex:s211> <urn:ex:p> <g:h> .
+<urn:ex:s212> <urn:ex:p> <http://a/bb/ccc/g> .
+<urn:ex:s213> <urn:ex:p> <http://a/bb/ccc/g> .
+<urn:ex:s214> <urn:ex:p> <http://a/bb/ccc/g/> .
+<urn:ex:s215> <urn:ex:p> <http://a/g> .
+<urn:ex:s216> <urn:ex:p> <http://g> .
+<urn:ex:s217> <urn:ex:p> <http://a/bb/ccc/..?y> .
+<urn:ex:s218> <urn:ex:p> <http://a/bb/ccc/g?y> .
+<urn:ex:s219> <urn:ex:p> <http://a/bb/ccc/..#s> .
+<urn:ex:s220> <urn:ex:p> <http://a/bb/ccc/g#s> .
+<urn:ex:s221> <urn:ex:p> <http://a/bb/ccc/g?y#s> .
+<urn:ex:s222> <urn:ex:p> <http://a/bb/ccc/;x> .
+<urn:ex:s223> <urn:ex:p> <http://a/bb/ccc/g;x> .
+<urn:ex:s224> <urn:ex:p> <http://a/bb/ccc/g;x?y#s> .
+<urn:ex:s225> <urn:ex:p> <http://a/bb/ccc/..> .
+<urn:ex:s226> <urn:ex:p> <http://a/bb/ccc/> .
+<urn:ex:s227> <urn:ex:p> <http://a/bb/ccc/> .
+<urn:ex:s228> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s229> <urn:ex:p> <http://a/bb/> .
+<urn:ex:s230> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s231> <urn:ex:p> <http://a/> .
+<urn:ex:s232> <urn:ex:p> <http://a/> .
+<urn:ex:s233> <urn:ex:p> <http://a/g> .
+<urn:ex:s234> <urn:ex:p> <http://a/g> .
+<urn:ex:s235> <urn:ex:p> <http://a/g> .
+<urn:ex:s236> <urn:ex:p> <http://a/g> .
+<urn:ex:s237> <urn:ex:p> <http://a/g> .
+<urn:ex:s238> <urn:ex:p> <http://a/bb/ccc/g.> .
+<urn:ex:s239> <urn:ex:p> <http://a/bb/ccc/.g> .
+<urn:ex:s240> <urn:ex:p> <http://a/bb/ccc/g..> .
+<urn:ex:s241> <urn:ex:p> <http://a/bb/ccc/..g> .
+<urn:ex:s242> <urn:ex:p> <http://a/bb/g> .
+<urn:ex:s243> <urn:ex:p> <http://a/bb/ccc/g/> .
+<urn:ex:s244> <urn:ex:p> <http://a/bb/ccc/g/h> .
+<urn:ex:s245> <urn:ex:p> <http://a/bb/ccc/h> .
+<urn:ex:s246> <urn:ex:p> <http://a/bb/ccc/g;x=1/y> .
+<urn:ex:s247> <urn:ex:p> <http://a/bb/ccc/y> .
+<urn:ex:s248> <urn:ex:p> <http://a/bb/ccc/g?y/./x> .
+<urn:ex:s249> <urn:ex:p> <http://a/bb/ccc/g?y/../x> .
+<urn:ex:s250> <urn:ex:p> <http://a/bb/ccc/g#s/./x> .
+<urn:ex:s251> <urn:ex:p> <http://a/bb/ccc/g#s/../x> .
+<urn:ex:s252> <urn:ex:p> <http:g> .
diff --git a/tests/JSONLDTests/toRdf-0126-in.jsonld b/tests/JSONLDTests/toRdf-0126-in.jsonld
new file mode 100644
index 00000000..81a64571
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0126-in.jsonld
@@ -0,0 +1,47 @@
+{
+ "@context": {"@base": "file:///a/bb/ccc/d;p?q", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s253", "urn:ex:p": "g:h"},
+ {"@id": "urn:ex:s254", "urn:ex:p": "g"},
+ {"@id": "urn:ex:s255", "urn:ex:p": "./g"},
+ {"@id": "urn:ex:s256", "urn:ex:p": "g/"},
+ {"@id": "urn:ex:s257", "urn:ex:p": "/g"},
+ {"@id": "urn:ex:s258", "urn:ex:p": "//g"},
+ {"@id": "urn:ex:s259", "urn:ex:p": "?y"},
+ {"@id": "urn:ex:s260", "urn:ex:p": "g?y"},
+ {"@id": "urn:ex:s261", "urn:ex:p": "#s"},
+ {"@id": "urn:ex:s262", "urn:ex:p": "g#s"},
+ {"@id": "urn:ex:s263", "urn:ex:p": "g?y#s"},
+ {"@id": "urn:ex:s264", "urn:ex:p": ";x"},
+ {"@id": "urn:ex:s265", "urn:ex:p": "g;x"},
+ {"@id": "urn:ex:s266", "urn:ex:p": "g;x?y#s"},
+ {"@id": "urn:ex:s267", "urn:ex:p": ""},
+ {"@id": "urn:ex:s268", "urn:ex:p": "."},
+ {"@id": "urn:ex:s269", "urn:ex:p": "./"},
+ {"@id": "urn:ex:s270", "urn:ex:p": ".."},
+ {"@id": "urn:ex:s271", "urn:ex:p": "../"},
+ {"@id": "urn:ex:s272", "urn:ex:p": "../g"},
+ {"@id": "urn:ex:s273", "urn:ex:p": "../.."},
+ {"@id": "urn:ex:s274", "urn:ex:p": "../../"},
+ {"@id": "urn:ex:s275", "urn:ex:p": "../../g"},
+ {"@id": "urn:ex:s276", "urn:ex:p": "../../../g"},
+ {"@id": "urn:ex:s277", "urn:ex:p": "../../../../g"},
+ {"@id": "urn:ex:s278", "urn:ex:p": "/./g"},
+ {"@id": "urn:ex:s279", "urn:ex:p": "/../g"},
+ {"@id": "urn:ex:s280", "urn:ex:p": "g."},
+ {"@id": "urn:ex:s281", "urn:ex:p": ".g"},
+ {"@id": "urn:ex:s282", "urn:ex:p": "g.."},
+ {"@id": "urn:ex:s283", "urn:ex:p": "..g"},
+ {"@id": "urn:ex:s284", "urn:ex:p": "./../g"},
+ {"@id": "urn:ex:s285", "urn:ex:p": "./g/."},
+ {"@id": "urn:ex:s286", "urn:ex:p": "g/./h"},
+ {"@id": "urn:ex:s287", "urn:ex:p": "g/../h"},
+ {"@id": "urn:ex:s288", "urn:ex:p": "g;x=1/./y"},
+ {"@id": "urn:ex:s289", "urn:ex:p": "g;x=1/../y"},
+ {"@id": "urn:ex:s290", "urn:ex:p": "g?y/./x"},
+ {"@id": "urn:ex:s291", "urn:ex:p": "g?y/../x"},
+ {"@id": "urn:ex:s292", "urn:ex:p": "g#s/./x"},
+ {"@id": "urn:ex:s293", "urn:ex:p": "g#s/../x"},
+ {"@id": "urn:ex:s294", "urn:ex:p": "http:g"}
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0126-out.nq b/tests/JSONLDTests/toRdf-0126-out.nq
new file mode 100644
index 00000000..e1fc4f36
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0126-out.nq
@@ -0,0 +1,42 @@
+<urn:ex:s253> <urn:ex:p> <g:h> .
+<urn:ex:s254> <urn:ex:p> <file:///a/bb/ccc/g> .
+<urn:ex:s255> <urn:ex:p> <file:///a/bb/ccc/g> .
+<urn:ex:s256> <urn:ex:p> <file:///a/bb/ccc/g/> .
+<urn:ex:s257> <urn:ex:p> <file:///g> .
+<urn:ex:s258> <urn:ex:p> <file://g> .
+<urn:ex:s259> <urn:ex:p> <file:///a/bb/ccc/d;p?y> .
+<urn:ex:s260> <urn:ex:p> <file:///a/bb/ccc/g?y> .
+<urn:ex:s261> <urn:ex:p> <file:///a/bb/ccc/d;p?q#s> .
+<urn:ex:s262> <urn:ex:p> <file:///a/bb/ccc/g#s> .
+<urn:ex:s263> <urn:ex:p> <file:///a/bb/ccc/g?y#s> .
+<urn:ex:s264> <urn:ex:p> <file:///a/bb/ccc/;x> .
+<urn:ex:s265> <urn:ex:p> <file:///a/bb/ccc/g;x> .
+<urn:ex:s266> <urn:ex:p> <file:///a/bb/ccc/g;x?y#s> .
+<urn:ex:s267> <urn:ex:p> <file:///a/bb/ccc/d;p?q> .
+<urn:ex:s268> <urn:ex:p> <file:///a/bb/ccc/> .
+<urn:ex:s269> <urn:ex:p> <file:///a/bb/ccc/> .
+<urn:ex:s270> <urn:ex:p> <file:///a/bb/> .
+<urn:ex:s271> <urn:ex:p> <file:///a/bb/> .
+<urn:ex:s272> <urn:ex:p> <file:///a/bb/g> .
+<urn:ex:s273> <urn:ex:p> <file:///a/> .
+<urn:ex:s274> <urn:ex:p> <file:///a/> .
+<urn:ex:s275> <urn:ex:p> <file:///a/g> .
+<urn:ex:s276> <urn:ex:p> <file:///g> .
+<urn:ex:s277> <urn:ex:p> <file:///g> .
+<urn:ex:s278> <urn:ex:p> <file:///g> .
+<urn:ex:s279> <urn:ex:p> <file:///g> .
+<urn:ex:s280> <urn:ex:p> <file:///a/bb/ccc/g.> .
+<urn:ex:s281> <urn:ex:p> <file:///a/bb/ccc/.g> .
+<urn:ex:s282> <urn:ex:p> <file:///a/bb/ccc/g..> .
+<urn:ex:s283> <urn:ex:p> <file:///a/bb/ccc/..g> .
+<urn:ex:s284> <urn:ex:p> <file:///a/bb/g> .
+<urn:ex:s285> <urn:ex:p> <file:///a/bb/ccc/g/> .
+<urn:ex:s286> <urn:ex:p> <file:///a/bb/ccc/g/h> .
+<urn:ex:s287> <urn:ex:p> <file:///a/bb/ccc/h> .
+<urn:ex:s288> <urn:ex:p> <file:///a/bb/ccc/g;x=1/y> .
+<urn:ex:s289> <urn:ex:p> <file:///a/bb/ccc/y> .
+<urn:ex:s290> <urn:ex:p> <file:///a/bb/ccc/g?y/./x> .
+<urn:ex:s291> <urn:ex:p> <file:///a/bb/ccc/g?y/../x> .
+<urn:ex:s292> <urn:ex:p> <file:///a/bb/ccc/g#s/./x> .
+<urn:ex:s293> <urn:ex:p> <file:///a/bb/ccc/g#s/../x> .
+<urn:ex:s294> <urn:ex:p> <http:g> .
diff --git a/tests/JSONLDTests/toRdf-0127-in.jsonld b/tests/JSONLDTests/toRdf-0127-in.jsonld
new file mode 100644
index 00000000..eec91f99
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0127-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {"@base": "http://abc/def/ghi", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s295", "urn:ex:p": "."},
+ {"@id": "urn:ex:s296", "urn:ex:p": ".?a=b"},
+ {"@id": "urn:ex:s297", "urn:ex:p": ".#a=b"},
+ {"@id": "urn:ex:s298", "urn:ex:p": ".."},
+ {"@id": "urn:ex:s299", "urn:ex:p": "..?a=b"},
+ {"@id": "urn:ex:s300", "urn:ex:p": "..#a=b"}
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0127-out.nq b/tests/JSONLDTests/toRdf-0127-out.nq
new file mode 100644
index 00000000..65e26022
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0127-out.nq
@@ -0,0 +1,6 @@
+<urn:ex:s295> <urn:ex:p> <http://abc/def/> .
+<urn:ex:s296> <urn:ex:p> <http://abc/def/?a=b> .
+<urn:ex:s297> <urn:ex:p> <http://abc/def/#a=b> .
+<urn:ex:s298> <urn:ex:p> <http://abc/> .
+<urn:ex:s299> <urn:ex:p> <http://abc/?a=b> .
+<urn:ex:s300> <urn:ex:p> <http://abc/#a=b> .
diff --git a/tests/JSONLDTests/toRdf-0128-in.jsonld b/tests/JSONLDTests/toRdf-0128-in.jsonld
new file mode 100644
index 00000000..3863011f
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0128-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {"@base": "http://ab//de//ghi", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s301", "urn:ex:p": "xyz"},
+ {"@id": "urn:ex:s302", "urn:ex:p": "./xyz"},
+ {"@id": "urn:ex:s303", "urn:ex:p": "../xyz"}
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0128-out.nq b/tests/JSONLDTests/toRdf-0128-out.nq
new file mode 100644
index 00000000..8fc2148f
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0128-out.nq
@@ -0,0 +1,3 @@
+<urn:ex:s301> <urn:ex:p> <http://ab//de//xyz> .
+<urn:ex:s302> <urn:ex:p> <http://ab//de//xyz> .
+<urn:ex:s303> <urn:ex:p> <http://ab//de/xyz> .
diff --git a/tests/JSONLDTests/toRdf-0129-in.jsonld b/tests/JSONLDTests/toRdf-0129-in.jsonld
new file mode 100644
index 00000000..a199895e
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0129-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {"@base": "http://abc/d:f/ghi", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s304", "urn:ex:p": "xyz"},
+ {"@id": "urn:ex:s305", "urn:ex:p": "./xyz"},
+ {"@id": "urn:ex:s306", "urn:ex:p": "../xyz"}
+ ]
+}
diff --git a/tests/JSONLDTests/toRdf-0129-out.nq b/tests/JSONLDTests/toRdf-0129-out.nq
new file mode 100644
index 00000000..31bce616
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-0129-out.nq
@@ -0,0 +1,3 @@
+<urn:ex:s304> <urn:ex:p> <http://abc/d:f/xyz> .
+<urn:ex:s305> <urn:ex:p> <http://abc/d:f/xyz> .
+<urn:ex:s306> <urn:ex:p> <http://abc/xyz> .
diff --git a/tests/JSONLDTests/toRdf-manifest.jsonld b/tests/JSONLDTests/toRdf-manifest.jsonld
new file mode 100644
index 00000000..0f39092a
--- /dev/null
+++ b/tests/JSONLDTests/toRdf-manifest.jsonld
@@ -0,0 +1,882 @@
+{
+ "@context": "https://json-ld.org/test-suite/context.jsonld",
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "Transform JSON-LD to RDF",
+ "description": "JSON-LD to RDF tests generate N-Quads output and use string comparison.",
+ "baseIri": "http://json-ld.org/test-suite/tests/",
+ "sequence": [
+ {
+ "@id": "#t0001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Plain literal with URIs",
+ "purpose": "Tests generation of a triple using full URIs and a plain literal.",
+ "input": "toRdf-0001-in.jsonld",
+ "expect": "toRdf-0001-out.nq"
+ }, {
+ "@id": "#t0002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Plain literal with CURIE from default context",
+ "purpose": "Tests generation of a triple using a CURIE defined in the default context.",
+ "input": "toRdf-0002-in.jsonld",
+ "expect": "toRdf-0002-out.nq"
+ }, {
+ "@id": "#t0003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Default subject is BNode",
+ "purpose": "Tests that a BNode is created if no explicit subject is set.",
+ "input": "toRdf-0003-in.jsonld",
+ "expect": "toRdf-0003-out.nq"
+ }, {
+ "@id": "#t0004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Literal with language tag",
+ "purpose": "Tests that a plain literal is created with a language tag.",
+ "input": "toRdf-0004-in.jsonld",
+ "expect": "toRdf-0004-out.nq"
+ }, {
+ "@id": "#t0005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Extended character set literal",
+ "purpose": "Tests that a literal may be created using extended characters.",
+ "input": "toRdf-0005-in.jsonld",
+ "expect": "toRdf-0005-out.nq"
+ }, {
+ "@id": "#t0006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Typed literal",
+ "purpose": "Tests creation of a literal with a datatype.",
+ "input": "toRdf-0006-in.jsonld",
+ "expect": "toRdf-0006-out.nq"
+ }, {
+ "@id": "#t0007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Tests 'a' generates rdf:type and object is implicit IRI",
+ "purpose": "Verify that 'a' is an alias for rdf:type, and the object is created as an IRI.",
+ "input": "toRdf-0007-in.jsonld",
+ "expect": "toRdf-0007-out.nq"
+ }, {
+ "@id": "#t0008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test prefix defined in @context",
+ "purpose": "Generate an IRI using a prefix defined within an @context.",
+ "input": "toRdf-0008-in.jsonld",
+ "expect": "toRdf-0008-out.nq"
+ }, {
+ "@id": "#t0009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test using an empty suffix",
+ "purpose": "An empty suffix may be used.",
+ "input": "toRdf-0009-in.jsonld",
+ "expect": "toRdf-0009-out.nq"
+ }, {
+ "@id": "#t0010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test object processing defines object",
+ "purpose": "A property referencing an associative array gets object from subject of array.",
+ "input": "toRdf-0010-in.jsonld",
+ "expect": "toRdf-0010-out.nq"
+ }, {
+ "@id": "#t0011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test object processing defines object with implicit BNode",
+ "purpose": "If no @ is specified, a BNode is created, and will be used as the object of an enclosing property.",
+ "input": "toRdf-0011-in.jsonld",
+ "expect": "toRdf-0011-out.nq"
+ }, {
+ "@id": "#t0012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Multiple Objects for a Single Property",
+ "purpose": "Tests that Multiple Objects are for a Single Property using array syntax.",
+ "input": "toRdf-0012-in.jsonld",
+ "expect": "toRdf-0012-out.nq"
+ }, {
+ "@id": "#t0013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Creation of an empty list",
+ "purpose": "Tests that @list: [] generates an empty list.",
+ "input": "toRdf-0013-in.jsonld",
+ "expect": "toRdf-0013-out.nq"
+ }, {
+ "@id": "#t0014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Creation of a list with single element",
+ "purpose": "Tests that @list generates a list.",
+ "input": "toRdf-0014-in.jsonld",
+ "expect": "toRdf-0014-out.nq"
+ }, {
+ "@id": "#t0015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Creation of a list with multiple elements",
+ "purpose": "Tests that list with multiple elements.",
+ "input": "toRdf-0015-in.jsonld",
+ "expect": "toRdf-0015-out.nq"
+ }, {
+ "@id": "#t0016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Empty IRI expands to resource location",
+ "purpose": "Expanding an empty IRI uses the test file location.",
+ "input": "toRdf-0016-in.jsonld",
+ "expect": "toRdf-0016-out.nq"
+ }, {
+ "@id": "#t0017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Relative IRI expands relative resource location",
+ "purpose": "Expanding a relative IRI uses the test file location.",
+ "input": "toRdf-0017-in.jsonld",
+ "expect": "toRdf-0017-out.nq"
+ }, {
+ "@id": "#t0018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Frag ID expands relative resource location",
+ "purpose": "Expanding a fragment uses the test file location.",
+ "input": "toRdf-0018-in.jsonld",
+ "expect": "toRdf-0018-out.nq"
+ }, {
+ "@id": "#t0019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test type coercion to anyURI",
+ "purpose": "Tests coercion of object to anyURI when specified.",
+ "input": "toRdf-0019-in.jsonld",
+ "expect": "toRdf-0019-out.nq"
+ }, {
+ "@id": "#t0020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test type coercion to typed literal",
+ "purpose": "Tests coercion of object to a typed literal when specified.",
+ "input": "toRdf-0020-in.jsonld",
+ "expect": "toRdf-0020-out.nq"
+ }, {
+ "@id": "#t0022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test coercion of double value",
+ "purpose": "Tests that a decimal value generates a xsd:double typed literal;.",
+ "input": "toRdf-0022-in.jsonld",
+ "expect": "toRdf-0022-out.nq"
+ }, {
+ "@id": "#t0023",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test coercion of integer value",
+ "purpose": "Tests that a decimal value generates a xsd:integer typed literal.",
+ "input": "toRdf-0023-in.jsonld",
+ "expect": "toRdf-0023-out.nq"
+ }, {
+ "@id": "#t0024",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test coercion of boolean value",
+ "purpose": "Tests that a decimal value generates a xsd:boolean typed literal.",
+ "input": "toRdf-0024-in.jsonld",
+ "expect": "toRdf-0024-out.nq"
+ }, {
+ "@id": "#t0025",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test list coercion with single element",
+ "purpose": "Tests that an array with a single element on a property with @list coercion creates an RDF Collection.",
+ "input": "toRdf-0025-in.jsonld",
+ "expect": "toRdf-0025-out.nq"
+ }, {
+ "@id": "#t0026",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Test creation of multiple types",
+ "purpose": "Tests that @type with an array of types creates multiple types.",
+ "input": "toRdf-0026-in.jsonld",
+ "expect": "toRdf-0026-out.nq"
+ }, {
+ "@id": "#t0027",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Simple named graph (Wikidata)",
+ "purpose": "Using @graph with other keys places triples in a named graph.",
+ "input": "toRdf-0027-in.jsonld",
+ "expect": "toRdf-0027-out.nq"
+ }, {
+ "@id": "#t0028",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Simple named graph",
+ "purpose": "Signing a graph.",
+ "input": "toRdf-0028-in.jsonld",
+ "expect": "toRdf-0028-out.nq"
+ }, {
+ "@id": "#t0029",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "named graph with embedded named graph",
+ "purpose": "Tests that named graphs containing named graphs flatten to single level of graph naming.",
+ "input": "toRdf-0029-in.jsonld",
+ "expect": "toRdf-0029-out.nq"
+ }, {
+ "@id": "#t0030",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "top-level graph with string subject reference",
+ "purpose": "Tests graphs containing subject references as strings.",
+ "input": "toRdf-0030-in.jsonld",
+ "expect": "toRdf-0030-out.nq"
+ }, {
+ "@id": "#t0031",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Reverse property",
+ "purpose": "Tests conversion of reverse properties.",
+ "input": "toRdf-0031-in.jsonld",
+ "expect": "toRdf-0031-out.nq"
+ }, {
+ "@id": "#t0032",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@context reordering",
+ "purpose": "Tests that generated triples do not depend on order of @context.",
+ "input": "toRdf-0032-in.jsonld",
+ "expect": "toRdf-0032-out.nq"
+ }, {
+ "@id": "#t0033",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@id reordering",
+ "purpose": "Tests that generated triples do not depend on order of @id.",
+ "input": "toRdf-0033-in.jsonld",
+ "expect": "toRdf-0033-out.nq"
+ }, {
+ "@id": "#t0034",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "context properties reordering",
+ "purpose": "Tests that generated triples do not depend on order of properties inside @context.",
+ "input": "toRdf-0034-in.jsonld",
+ "expect": "toRdf-0034-out.nq"
+ }, {
+ "@id": "#t0035",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "non-fractional numbers converted to xsd:double",
+ "purpose": "xsd:double's canonical lexical is used when converting numbers without fraction that are coerced to xsd:double",
+ "input": "toRdf-0035-in.jsonld",
+ "expect": "toRdf-0035-out.nq"
+ }, {
+ "@id": "#t0036",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Use nodeMapGeneration bnode labels",
+ "purpose": "The toRDF algorithm does not relabel blank nodes; it reuses the counter from the nodeMapGeneration to generate new ones",
+ "input": "toRdf-0036-in.jsonld",
+ "expect": "toRdf-0036-out.nq"
+ }, {
+ "@id": "#t0041",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "drop free-floating nodes",
+ "purpose": "Free-floating nodes do not generate RDF triples",
+ "input": "toRdf-0041-in.jsonld",
+ "expect": "toRdf-0041-out.nq"
+ }, {
+ "@id": "#t0042",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "basic",
+ "purpose": "Basic RDF conversion",
+ "input": "toRdf-0042-in.jsonld",
+ "expect": "toRdf-0042-out.nq"
+ }, {
+ "@id": "#t0043",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "drop null and unmapped properties",
+ "purpose": "Properties mapped to null or which are never mapped are dropped",
+ "input": "toRdf-0043-in.jsonld",
+ "expect": "toRdf-0043-out.nq"
+ }, {
+ "@id": "#t0044",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "optimize @set, keep empty arrays",
+ "purpose": "RDF version of expand-0004",
+ "input": "toRdf-0044-in.jsonld",
+ "expect": "toRdf-0044-out.nq"
+ }, {
+ "@id": "#t0045",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "do not expand aliased @id/@type",
+ "purpose": "RDF version of expand-0005",
+ "input": "toRdf-0045-in.jsonld",
+ "expect": "toRdf-0045-out.nq"
+ }, {
+ "@id": "#t0046",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "alias keywords",
+ "purpose": "RDF version of expand-0006",
+ "input": "toRdf-0046-in.jsonld",
+ "expect": "toRdf-0046-out.nq"
+ }, {
+ "@id": "#t0047",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "date type-coercion",
+ "purpose": "Type-coerced dates generate typed literals",
+ "input": "toRdf-0047-in.jsonld",
+ "expect": "toRdf-0047-out.nq"
+ }, {
+ "@id": "#t0048",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@value with @language",
+ "purpose": "RDF version of expand-0008",
+ "input": "toRdf-0048-in.jsonld",
+ "expect": "toRdf-0048-out.nq"
+ }, {
+ "@id": "#t0049",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@graph with terms",
+ "purpose": "RDF version of expand-0009",
+ "input": "toRdf-0049-in.jsonld",
+ "expect": "toRdf-0049-out.nq"
+ }, {
+ "@id": "#t0050",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "native types",
+ "purpose": "Native types generate typed literals",
+ "input": "toRdf-0050-in.jsonld",
+ "expect": "toRdf-0050-out.nq"
+ }, {
+ "@id": "#t0051",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "coerced @id",
+ "purpose": "RDF version of expand-0011",
+ "input": "toRdf-0051-in.jsonld",
+ "expect": "toRdf-0051-out.nq"
+ }, {
+ "@id": "#t0052",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@graph with embed",
+ "purpose": "RDF version of expand-0012",
+ "input": "toRdf-0052-in.jsonld",
+ "expect": "toRdf-0052-out.nq"
+ }, {
+ "@id": "#t0053",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand already expanded",
+ "purpose": "RDF version of expand-0013",
+ "input": "toRdf-0053-in.jsonld",
+ "expect": "toRdf-0053-out.nq"
+ }, {
+ "@id": "#t0054",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@set of @value objects with keyword aliases",
+ "purpose": "RDF version of expand-0014",
+ "input": "toRdf-0054-in.jsonld",
+ "expect": "toRdf-0054-out.nq"
+ }, {
+ "@id": "#t0055",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "collapse set of sets, keep empty lists",
+ "purpose": "RDF version of expand-0015",
+ "input": "toRdf-0055-in.jsonld",
+ "expect": "toRdf-0055-out.nq"
+ }, {
+ "@id": "#t0056",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "context reset",
+ "purpose": "RDF version of expand-0016",
+ "input": "toRdf-0056-in.jsonld",
+ "expect": "toRdf-0056-out.nq"
+ }, {
+ "@id": "#t0057",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@graph and @id aliased",
+ "purpose": "RDF version of expand-0017",
+ "input": "toRdf-0057-in.jsonld",
+ "expect": "toRdf-0057-out.nq"
+ }, {
+ "@id": "#t0058",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "override default @language",
+ "purpose": "RDF version of expand-0018",
+ "input": "toRdf-0058-in.jsonld",
+ "expect": "toRdf-0058-out.nq"
+ }, {
+ "@id": "#t0059",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "remove @value = null",
+ "purpose": "RDF version of expand-0019",
+ "input": "toRdf-0059-in.jsonld",
+ "expect": "toRdf-0059-out.nq"
+ }, {
+ "@id": "#t0060",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "do not remove @graph if not at top-level",
+ "purpose": "Embedded @graph without @id creates BNode-labeled named graph",
+ "input": "toRdf-0060-in.jsonld",
+ "expect": "toRdf-0060-out.nq"
+ }, {
+ "@id": "#t0061",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "do not remove @graph at top-level if not only property",
+ "purpose": "RDF version of expand-0021",
+ "input": "toRdf-0061-in.jsonld",
+ "expect": "toRdf-0061-out.nq"
+ }, {
+ "@id": "#t0062",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand value with default language",
+ "purpose": "RDF version of expand-0022",
+ "input": "toRdf-0062-in.jsonld",
+ "expect": "toRdf-0062-out.nq"
+ }, {
+ "@id": "#t0063",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Lists and sets of properties with list/set coercion",
+ "purpose": "RDF version of expand-0023",
+ "input": "toRdf-0063-in.jsonld",
+ "expect": "toRdf-0063-out.nq"
+ }, {
+ "@id": "#t0064",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Multiple contexts",
+ "purpose": "RDF version of expand-0024",
+ "input": "toRdf-0064-in.jsonld",
+ "expect": "toRdf-0064-out.nq"
+ }, {
+ "@id": "#t0065",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Problematic IRI expansion tests",
+ "purpose": "RDF version of expand-0025",
+ "input": "toRdf-0065-in.jsonld",
+ "expect": "toRdf-0065-out.nq"
+ }, {
+ "@id": "#t0066",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expanding term mapping to @type uses @type syntax",
+ "purpose": "RDF version of expand-0026",
+ "input": "toRdf-0066-in.jsonld",
+ "expect": "toRdf-0066-out.nq"
+ }, {
+ "@id": "#t0067",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Keep duplicate values in @list and @set",
+ "purpose": "RDF version of expand-0027",
+ "input": "toRdf-0067-in.jsonld",
+ "expect": "toRdf-0067-out.nq"
+ }, {
+ "@id": "#t0068",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Use @vocab in properties and @type but not in @id",
+ "purpose": "RDF version of expand-0028",
+ "input": "toRdf-0068-in.jsonld",
+ "expect": "toRdf-0068-out.nq"
+ }, {
+ "@id": "#t0069",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Relative IRIs",
+ "purpose": "RDF version of expand-0029",
+ "input": "toRdf-0069-in.jsonld",
+ "expect": "toRdf-0069-out.nq"
+ }, {
+ "@id": "#t0070",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Language maps",
+ "purpose": "RDF version of expand-0030",
+ "input": "toRdf-0070-in.jsonld",
+ "expect": "toRdf-0070-out.nq"
+ }, {
+ "@id": "#t0071",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-coercion of native types",
+ "purpose": "RDF version of expand-0031",
+ "input": "toRdf-0071-in.jsonld",
+ "expect": "toRdf-0071-out.nq"
+ }, {
+ "@id": "#t0072",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Mapping a term to null decouples it from @vocab",
+ "purpose": "RDF version of expand-0032",
+ "input": "toRdf-0072-in.jsonld",
+ "expect": "toRdf-0072-out.nq"
+ }, {
+ "@id": "#t0073",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Using @vocab with with type-coercion",
+ "purpose": "RDF version of expand-0033",
+ "input": "toRdf-0073-in.jsonld",
+ "expect": "toRdf-0073-out.nq"
+ }, {
+ "@id": "#t0074",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Multiple properties expanding to the same IRI",
+ "purpose": "RDF version of expand-0034",
+ "input": "toRdf-0074-in.jsonld",
+ "expect": "toRdf-0074-out.nq"
+ }, {
+ "@id": "#t0075",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Language maps with @vocab, default language, and colliding property",
+ "purpose": "RDF version of expand-0035",
+ "input": "toRdf-0075-in.jsonld",
+ "expect": "toRdf-0075-out.nq"
+ }, {
+ "@id": "#t0076",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expanding @index",
+ "purpose": "RDF version of expand-0036",
+ "input": "toRdf-0076-in.jsonld",
+ "expect": "toRdf-0076-out.nq"
+ }, {
+ "@id": "#t0077",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expanding @reverse",
+ "purpose": "RDF version of expand-0037",
+ "input": "toRdf-0077-in.jsonld",
+ "expect": "toRdf-0077-out.nq"
+ }, {
+ "@id": "#t0078",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Drop blank node predicates by default",
+ "purpose": "Triples with blank node predicates are dropped by default.",
+ "input": "toRdf-0078-in.jsonld",
+ "expect": "toRdf-0078-out.nq"
+ }, {
+ "@id": "#t0079",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Using terms in a reverse-maps",
+ "purpose": "RDF version of expand-0039",
+ "input": "toRdf-0079-in.jsonld",
+ "expect": "toRdf-0079-out.nq"
+ }, {
+ "@id": "#t0080",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "language and index expansion on non-objects",
+ "purpose": "RDF version of expand-0040",
+ "input": "toRdf-0080-in.jsonld",
+ "expect": "toRdf-0080-out.nq"
+ }, {
+ "@id": "#t0081",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Reset the default language",
+ "purpose": "RDF version of expand-0041",
+ "input": "toRdf-0081-in.jsonld",
+ "expect": "toRdf-0081-out.nq"
+ }, {
+ "@id": "#t0082",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expanding reverse properties",
+ "purpose": "RDF version of expand-0042",
+ "input": "toRdf-0082-in.jsonld",
+ "expect": "toRdf-0082-out.nq"
+ }, {
+ "@id": "#t0083",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Using reverse properties inside a @reverse-container",
+ "purpose": "RDF version of expand-0043",
+ "input": "toRdf-0083-in.jsonld",
+ "expect": "toRdf-0083-out.nq"
+ }, {
+ "@id": "#t0084",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ensure index maps use language mapping",
+ "purpose": "RDF version of expand-0044",
+ "input": "toRdf-0084-in.jsonld",
+ "expect": "toRdf-0084-out.nq"
+ }, {
+ "@id": "#t0085",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Top-level value objects are removed",
+ "purpose": "RDF version of expand-0045",
+ "input": "toRdf-0085-in.jsonld",
+ "expect": "toRdf-0085-out.nq"
+ }, {
+ "@id": "#t0086",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Free-floating nodes are removed",
+ "purpose": "RDF version of expand-0046",
+ "input": "toRdf-0086-in.jsonld",
+ "expect": "toRdf-0086-out.nq"
+ }, {
+ "@id": "#t0087",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Remove free-floating set values and lists",
+ "purpose": "RDF version of expand-0047",
+ "input": "toRdf-0087-in.jsonld",
+ "expect": "toRdf-0087-out.nq"
+ }, {
+ "@id": "#t0088",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Terms are ignored in @id",
+ "purpose": "RDF version of expand-0048",
+ "input": "toRdf-0088-in.jsonld",
+ "expect": "toRdf-0088-out.nq"
+ }, {
+ "@id": "#t0089",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Using strings as value of a reverse property",
+ "purpose": "RDF version of expand-0049",
+ "input": "toRdf-0089-in.jsonld",
+ "expect": "toRdf-0089-out.nq"
+ }, {
+ "@id": "#t0090",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Term definitions with prefix separate from prefix definitions",
+ "purpose": "RDF version of expand-0050",
+ "input": "toRdf-0090-in.jsonld",
+ "expect": "toRdf-0090-out.nq"
+ }, {
+ "@id": "#t0091",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expansion of keyword aliases in term definitions",
+ "purpose": "RDF version of expand-0051",
+ "input": "toRdf-0091-in.jsonld",
+ "expect": "toRdf-0091-out.nq"
+ }, {
+ "@id": "#t0092",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@vocab-relative IRIs in term definitions",
+ "purpose": "RDF version of expand-0052",
+ "input": "toRdf-0092-in.jsonld",
+ "expect": "toRdf-0092-out.nq"
+ }, {
+ "@id": "#t0093",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand absolute IRI with @type: @vocab",
+ "purpose": "RDF version of expand-0053",
+ "input": "toRdf-0093-in.jsonld",
+ "expect": "toRdf-0093-out.nq"
+ }, {
+ "@id": "#t0094",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand term with @type: @vocab",
+ "purpose": "RDF version of expand-0054",
+ "input": "toRdf-0094-in.jsonld",
+ "expect": "toRdf-0094-out.nq"
+ }, {
+ "@id": "#t0095",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand @vocab-relative term with @type: @vocab",
+ "purpose": "RDF version of expand-0055",
+ "input": "toRdf-0095-in.jsonld",
+ "expect": "toRdf-0095-out.nq"
+ }, {
+ "@id": "#t0096",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Use terms with @type: @vocab but not with @type: @id",
+ "purpose": "RDF version of expand-0056",
+ "input": "toRdf-0096-in.jsonld",
+ "expect": "toRdf-0096-out.nq"
+ }, {
+ "@id": "#t0097",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand relative IRI with @type: @vocab",
+ "purpose": "RDF version of expand-0057",
+ "input": "toRdf-0097-in.jsonld",
+ "expect": "toRdf-0097-out.nq"
+ }, {
+ "@id": "#t0098",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand compact IRI with @type: @vocab",
+ "purpose": "RDF version of expand-0058",
+ "input": "toRdf-0098-in.jsonld",
+ "expect": "toRdf-0098-out.nq"
+ }, {
+ "@id": "#t0099",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Reset @vocab by setting it to null",
+ "purpose": "RDF version of expand-0059",
+ "input": "toRdf-0099-in.jsonld",
+ "expect": "toRdf-0099-out.nq"
+ }, {
+ "@id": "#t0100",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Overwrite document base with @base and reset it again",
+ "purpose": "RDF version of expand-0060",
+ "input": "toRdf-0100-in.jsonld",
+ "expect": "toRdf-0100-out.nq"
+ }, {
+ "@id": "#t0101",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Coercing native types to arbitrary datatypes",
+ "purpose": "RDF version of expand-0061",
+ "input": "toRdf-0101-in.jsonld",
+ "expect": "toRdf-0101-out.nq"
+ }, {
+ "@id": "#t0102",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Various relative IRIs with with @base",
+ "purpose": "RDF version of expand-0062",
+ "input": "toRdf-0102-in.jsonld",
+ "expect": "toRdf-0102-out.nq"
+ }, {
+ "@id": "#t0103",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand a reverse property with an index-container",
+ "purpose": "RDF version of expand-0063",
+ "input": "toRdf-0103-in.jsonld",
+ "expect": "toRdf-0103-out.nq"
+ }, {
+ "@id": "#t0104",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand reverse property whose values are unlabeled blank nodes",
+ "purpose": "RDF version of expand-0064",
+ "input": "toRdf-0104-in.jsonld",
+ "expect": "toRdf-0104-out.nq"
+ }, {
+ "@id": "#t0105",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Keys that are not mapped to an IRI in a reverse-map are dropped",
+ "purpose": "RDF version of expand-0065",
+ "input": "toRdf-0105-in.jsonld",
+ "expect": "toRdf-0105-out.nq"
+ }, {
+ "@id": "#t0106",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Use @vocab to expand keys in reverse-maps",
+ "purpose": "RDF version of expand-0066",
+ "input": "toRdf-0106-in.jsonld",
+ "expect": "toRdf-0106-out.nq"
+ }, {
+ "@id": "#t0107",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "prefix:://sufffix not a compact IRI",
+ "purpose": "RDF version of expand-0067",
+ "input": "toRdf-0107-in.jsonld",
+ "expect": "toRdf-0107-out.nq"
+ }, {
+ "@id": "#t0108",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "_::sufffix not a compact IRI",
+ "purpose": "RDF version of expand-0068",
+ "input": "toRdf-0108-in.jsonld",
+ "expect": "toRdf-0108-out.nq"
+ }, {
+ "@id": "#t0109",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Compact IRI as term with type mapping",
+ "purpose": "RDF version of expand-0069",
+ "input": "toRdf-0109-in.jsonld",
+ "expect": "toRdf-0109-out.nq"
+ }, {
+ "@id": "#t0110",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Redefine compact IRI with itself",
+ "purpose": "RDF version of expand-0070",
+ "input": "toRdf-0110-in.jsonld",
+ "expect": "toRdf-0110-out.nq"
+ }, {
+ "@id": "#t0111",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Redefine terms looking like compact IRIs",
+ "purpose": "RDF version of expand-0071",
+ "input": "toRdf-0111-in.jsonld",
+ "expect": "toRdf-0111-out.nq"
+ }, {
+ "@id": "#t0112",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Redefine term using @vocab, not itself",
+ "purpose": "RDF version of expand-0072",
+ "input": "toRdf-0112-in.jsonld",
+ "expect": "toRdf-0112-out.nq"
+ }, {
+ "@id": "#t0113",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Dataset with a IRI named graph",
+ "purpose": "Basic use of creating a named graph using an IRI name",
+ "input": "toRdf-0113-in.jsonld",
+ "expect": "toRdf-0113-out.nq"
+ }, {
+ "@id": "#t0114",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Dataset with a IRI named graph",
+ "purpose": "Basic use of creating a named graph using a BNode name",
+ "input": "toRdf-0114-in.jsonld",
+ "expect": "toRdf-0114-out.nq"
+ }, {
+ "@id": "#t0115",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Dataset with a default and two named graphs",
+ "purpose": "Dataset with a default and two named graphs (IRI and BNode)",
+ "input": "toRdf-0115-in.jsonld",
+ "expect": "toRdf-0115-out.nq"
+ }, {
+ "@id": "#t0116",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Dataset from node with embedded named graph",
+ "purpose": "Embedding @graph in a node creates a named graph",
+ "input": "toRdf-0116-in.jsonld",
+ "expect": "toRdf-0116-out.nq"
+ }, {
+ "@id": "#t0117",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Dataset from node with embedded named graph (bnode)",
+ "purpose": "Embedding @graph in a node creates a named graph. Graph name is created if there is no subject",
+ "input": "toRdf-0117-in.jsonld",
+ "expect": "toRdf-0117-out.nq"
+ }, {
+ "@id": "#t0118",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "produce generalized RDF flag",
+ "purpose": "Triples with blank node predicates are not dropped if the produce generalized RDF flag is true.",
+ "option": {
+ "produceGeneralizedRdf": true
+ },
+ "input": "toRdf-0118-in.jsonld",
+ "expect": "toRdf-0118-out.nq"
+ }, {
+ "@id": "#t0119",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Blank nodes with reverse properties",
+ "purpose": "Proper (re-)labeling of blank nodes if used with reverse properties.",
+ "input": "toRdf-0119-in.jsonld",
+ "expect": "toRdf-0119-out.nq"
+ }, {
+ "@id": "#t0120",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (0)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf-0120-in.jsonld",
+ "expect": "toRdf-0120-out.nq"
+ }, {
+ "@id": "#t0121",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (1)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf-0121-in.jsonld",
+ "expect": "toRdf-0121-out.nq"
+ }, {
+ "@id": "#t0122",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (2)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf-0122-in.jsonld",
+ "expect": "toRdf-0122-out.nq"
+ }, {
+ "@id": "#t0123",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (3)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf-0123-in.jsonld",
+ "expect": "toRdf-0123-out.nq"
+ }, {
+ "@id": "#t0124",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (4)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf-0124-in.jsonld",
+ "expect": "toRdf-0124-out.nq"
+ }, {
+ "@id": "#t0125",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (5)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf-0125-in.jsonld",
+ "expect": "toRdf-0125-out.nq"
+ }, {
+ "@id": "#t0126",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (6)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf-0126-in.jsonld",
+ "expect": "toRdf-0126-out.nq"
+ }, {
+ "@id": "#t0127",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (7)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf-0127-in.jsonld",
+ "expect": "toRdf-0127-out.nq"
+ }, {
+ "@id": "#t0128",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (8)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf-0128-in.jsonld",
+ "expect": "toRdf-0128-out.nq"
+ }, {
+ "@id": "#t0129",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (9)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf-0129-in.jsonld",
+ "expect": "toRdf-0129-out.nq"
+ }
+ ]
+}