summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/jsonld/1.1/compact-manifest.jsonld2134
-rw-r--r--test/jsonld/1.1/compact/0001-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0001-in.jsonld1
-rw-r--r--test/jsonld/1.1/compact/0001-out.jsonld1
-rw-r--r--test/jsonld/1.1/compact/0002-context.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0002-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0002-out.jsonld18
-rw-r--r--test/jsonld/1.1/compact/0003-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0003-in.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0003-out.jsonld1
-rw-r--r--test/jsonld/1.1/compact/0004-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0004-in.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0004-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/0005-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0005-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0005-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0006-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0006-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0006-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0007-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0007-in.jsonld27
-rw-r--r--test/jsonld/1.1/compact/0007-out.jsonld34
-rw-r--r--test/jsonld/1.1/compact/0008-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0008-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0008-out.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0009-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0009-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0009-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0010-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0010-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0010-out.jsonld20
-rw-r--r--test/jsonld/1.1/compact/0011-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0011-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0011-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0012-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0012-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0012-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0013-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0013-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/0013-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0014-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0014-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0014-out.jsonld21
-rw-r--r--test/jsonld/1.1/compact/0015-context.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0015-in.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0015-out.jsonld19
-rw-r--r--test/jsonld/1.1/compact/0016-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0016-in.jsonld22
-rw-r--r--test/jsonld/1.1/compact/0016-out.jsonld23
-rw-r--r--test/jsonld/1.1/compact/0017-context.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0017-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0017-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0018-context.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0018-in.jsonld69
-rw-r--r--test/jsonld/1.1/compact/0018-out.jsonld62
-rw-r--r--test/jsonld/1.1/compact/0019-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0019-in.jsonld17
-rw-r--r--test/jsonld/1.1/compact/0019-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0020-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0020-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0020-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0021-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0021-in.jsonld23
-rw-r--r--test/jsonld/1.1/compact/0021-out.jsonld16
-rw-r--r--test/jsonld/1.1/compact/0022-context.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0022-in.jsonld39
-rw-r--r--test/jsonld/1.1/compact/0022-out.jsonld34
-rw-r--r--test/jsonld/1.1/compact/0023-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0023-in.jsonld23
-rw-r--r--test/jsonld/1.1/compact/0023-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/0024-context.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0024-in.jsonld48
-rw-r--r--test/jsonld/1.1/compact/0024-out.jsonld46
-rw-r--r--test/jsonld/1.1/compact/0025-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0025-in.jsonld18
-rw-r--r--test/jsonld/1.1/compact/0025-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0026-context.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0026-in.jsonld21
-rw-r--r--test/jsonld/1.1/compact/0026-out.jsonld16
-rw-r--r--test/jsonld/1.1/compact/0027-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0027-in.jsonld21
-rw-r--r--test/jsonld/1.1/compact/0027-out.jsonld25
-rw-r--r--test/jsonld/1.1/compact/0028-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0028-in.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0028-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0029-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0029-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0029-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/0030-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0030-in.jsonld117
-rw-r--r--test/jsonld/1.1/compact/0030-out.jsonld86
-rw-r--r--test/jsonld/1.1/compact/0031-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0031-in.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0031-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0032-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0032-in.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0032-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0033-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0033-in.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0033-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0034-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0034-in.jsonld16
-rw-r--r--test/jsonld/1.1/compact/0034-out.jsonld18
-rw-r--r--test/jsonld/1.1/compact/0035-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0035-in.jsonld16
-rw-r--r--test/jsonld/1.1/compact/0035-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0036-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0036-in.jsonld20
-rw-r--r--test/jsonld/1.1/compact/0036-out.jsonld18
-rw-r--r--test/jsonld/1.1/compact/0037-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0037-in.jsonld20
-rw-r--r--test/jsonld/1.1/compact/0037-out.jsonld19
-rw-r--r--test/jsonld/1.1/compact/0038-context.jsonld18
-rw-r--r--test/jsonld/1.1/compact/0038-in.jsonld85
-rw-r--r--test/jsonld/1.1/compact/0038-out.jsonld57
-rw-r--r--test/jsonld/1.1/compact/0038a-out.jsonld57
-rw-r--r--test/jsonld/1.1/compact/0039-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0039-in.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0039-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0040-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0040-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0040-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0041-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0041-in.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0041-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0042-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0042-in.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0042-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0043-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0043-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0043-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0044-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0044-in.jsonld16
-rw-r--r--test/jsonld/1.1/compact/0044-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0045-context.jsonld19
-rw-r--r--test/jsonld/1.1/compact/0045-in.jsonld19
-rw-r--r--test/jsonld/1.1/compact/0045-out.jsonld19
-rw-r--r--test/jsonld/1.1/compact/0046-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0046-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0046-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0047-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0047-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0047-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0048-context.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0048-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/0048-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0049-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0049-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0049-out.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0050-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0050-in.jsonld16
-rw-r--r--test/jsonld/1.1/compact/0050-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0051-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0051-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0051-out.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0052-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0052-in.jsonld18
-rw-r--r--test/jsonld/1.1/compact/0052-out.jsonld18
-rw-r--r--test/jsonld/1.1/compact/0053-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0053-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0053-out.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0054-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0054-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0054-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0055-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0055-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0055-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0056-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0056-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0056-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0057-context.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0057-in.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0057-out.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0058-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0058-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0058-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0059-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0059-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0059-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0060-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0060-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0060-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0061-context.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0061-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0061-out.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0062-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0062-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0062-out.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0063-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0063-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0063-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0064-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0064-in.jsonld17
-rw-r--r--test/jsonld/1.1/compact/0064-out.jsonld16
-rw-r--r--test/jsonld/1.1/compact/0065-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0065-in.jsonld17
-rw-r--r--test/jsonld/1.1/compact/0065-out.jsonld18
-rw-r--r--test/jsonld/1.1/compact/0066-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0066-in.jsonld34
-rw-r--r--test/jsonld/1.1/compact/0066-out.jsonld33
-rw-r--r--test/jsonld/1.1/compact/0067-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0067-in.jsonld16
-rw-r--r--test/jsonld/1.1/compact/0067-out.jsonld16
-rw-r--r--test/jsonld/1.1/compact/0068-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0068-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0068-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0069-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0069-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0069-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0070-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0070-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/0070-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0071-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0071-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0071-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0072-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0072-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0072-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0073-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0073-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0073-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0074-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0074-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0074-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0075-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0075-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0075-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0076-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0076-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/0076-out.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0077-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0077-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0077-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0078-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0078-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0078-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0079-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0079-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0079-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0080-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0080-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0080-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0081-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0081-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0081-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0082-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0082-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0082-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0083-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0083-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0083-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0084-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0084-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0084-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0085-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0085-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0085-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0086-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0086-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0086-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0087-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0087-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0087-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0088-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0088-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0088-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0089-context.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0089-in.jsonld23
-rw-r--r--test/jsonld/1.1/compact/0089-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/0090-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0090-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0090-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0091-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0091-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0091-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0092-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0092-in.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0092-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0093-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0093-in.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0093-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0094-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/0094-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0094-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/0095-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0095-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0095-out.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0096-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0096-in.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0096-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0097-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0097-in.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0097-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/0098-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0098-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0098-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0099-context.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0099-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0099-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0100-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0100-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0100-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0101-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0101-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0101-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0102-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0102-in.jsonld23
-rw-r--r--test/jsonld/1.1/compact/0102-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0103-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0103-in.jsonld23
-rw-r--r--test/jsonld/1.1/compact/0103-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0104-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0104-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0104-out.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0105-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0105-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0105-out.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0106-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0106-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/0106-out.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0107-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0107-in.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0107-out.jsonld15
-rw-r--r--test/jsonld/1.1/compact/0108-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0108-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0108-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0109-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0109-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0109-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0110-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0110-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/0110-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/0111-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/0111-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/0111-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0112-context.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0112-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0112-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/0113-context.jsonld10
-rw-r--r--test/jsonld/1.1/compact/0113-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/0113-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/c001-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/c001-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/c001-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/c002-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/c002-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/c002-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/c003-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/c003-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/c003-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/c004-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/c004-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/c004-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/c005-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/c005-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/c005-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/c006-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/c006-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c006-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/c007-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/c007-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c007-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c008-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/c008-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c008-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c009-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/c009-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c009-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c010-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/c010-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c010-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/c011-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c011-in.jsonld11
-rw-r--r--test/jsonld/1.1/compact/c011-out.jsonld15
-rw-r--r--test/jsonld/1.1/compact/c012-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/c012-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/c012-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/c013-context.jsonld14
-rw-r--r--test/jsonld/1.1/compact/c013-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c013-out.jsonld16
-rw-r--r--test/jsonld/1.1/compact/c014-context.jsonld11
-rw-r--r--test/jsonld/1.1/compact/c014-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c014-out.jsonld15
-rw-r--r--test/jsonld/1.1/compact/c015-context.jsonld12
-rw-r--r--test/jsonld/1.1/compact/c015-in.jsonld16
-rw-r--r--test/jsonld/1.1/compact/c015-out.jsonld24
-rw-r--r--test/jsonld/1.1/compact/c016-context.jsonld10
-rw-r--r--test/jsonld/1.1/compact/c016-in.jsonld16
-rw-r--r--test/jsonld/1.1/compact/c016-out.jsonld18
-rw-r--r--test/jsonld/1.1/compact/c017-context.jsonld19
-rw-r--r--test/jsonld/1.1/compact/c017-in.jsonld14
-rw-r--r--test/jsonld/1.1/compact/c017-out.jsonld24
-rw-r--r--test/jsonld/1.1/compact/c018-context.jsonld21
-rw-r--r--test/jsonld/1.1/compact/c018-in.jsonld11
-rw-r--r--test/jsonld/1.1/compact/c018-out.jsonld24
-rw-r--r--test/jsonld/1.1/compact/c019-context.jsonld20
-rw-r--r--test/jsonld/1.1/compact/c019-in.jsonld26
-rw-r--r--test/jsonld/1.1/compact/c019-out.jsonld30
-rw-r--r--test/jsonld/1.1/compact/c020-context.jsonld11
-rw-r--r--test/jsonld/1.1/compact/c020-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/c020-out.jsonld16
-rw-r--r--test/jsonld/1.1/compact/c021-context.jsonld13
-rw-r--r--test/jsonld/1.1/compact/c021-in.jsonld19
-rw-r--r--test/jsonld/1.1/compact/c021-out.jsonld30
-rw-r--r--test/jsonld/1.1/compact/c022-context.jsonld18
-rw-r--r--test/jsonld/1.1/compact/c022-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/c022-out.jsonld20
-rw-r--r--test/jsonld/1.1/compact/c023-context.jsonld24
-rw-r--r--test/jsonld/1.1/compact/c023-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/c023-out.jsonld29
-rw-r--r--test/jsonld/1.1/compact/c024-context.jsonld33
-rw-r--r--test/jsonld/1.1/compact/c024-in.jsonld11
-rw-r--r--test/jsonld/1.1/compact/c024-out.jsonld39
-rw-r--r--test/jsonld/1.1/compact/c025-context.jsonld22
-rw-r--r--test/jsonld/1.1/compact/c025-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/c025-out.jsonld27
-rw-r--r--test/jsonld/1.1/compact/c026-context.jsonld12
-rw-r--r--test/jsonld/1.1/compact/c026-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/c026-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/c027-context.jsonld12
-rw-r--r--test/jsonld/1.1/compact/c027-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/c027-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/c028-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/c028-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/c028-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/di01-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/di01-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/di01-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/di02-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/di02-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/di02-out.jsonld4
-rw-r--r--test/jsonld/1.1/compact/di03-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/di03-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/di03-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/di04-context.jsonld11
-rw-r--r--test/jsonld/1.1/compact/di04-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/di04-out.jsonld16
-rw-r--r--test/jsonld/1.1/compact/di05-context.jsonld12
-rw-r--r--test/jsonld/1.1/compact/di05-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/di05-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/di06-context.jsonld12
-rw-r--r--test/jsonld/1.1/compact/di06-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/di06-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/di07-context.jsonld15
-rw-r--r--test/jsonld/1.1/compact/di07-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/di07-out.jsonld19
-rw-r--r--test/jsonld/1.1/compact/e001-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/e001-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/e002-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/e002-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/en01-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/en01-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/ep05-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/ep05-in.jsonld1
-rw-r--r--test/jsonld/1.1/compact/ep06-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/ep06-in.jsonld1
-rw-r--r--test/jsonld/1.1/compact/ep07-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/ep07-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/ep08-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/ep08-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/ep09-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/ep09-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/ep10-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/ep10-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/ep11-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/ep11-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/ep12-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/ep12-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/ep13-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/ep13-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/ep14-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/ep14-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/ep15-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/ep15-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/in01-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/in01-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/in01-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/in02-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/in02-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/in02-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/in03-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/in03-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/in03-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/in04-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/in04-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/in04-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/in05-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/in05-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/in05-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/js01-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js01-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js01-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/js02-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js02-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js02-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/js03-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js03-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js03-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/js04-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js04-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js04-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/js05-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js05-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js05-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/js06-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js06-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js06-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/js07-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js07-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js07-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/js08-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js08-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js08-out.jsonld4
-rw-r--r--test/jsonld/1.1/compact/js09-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js09-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/js09-out.jsonld4
-rw-r--r--test/jsonld/1.1/compact/js10-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js10-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js10-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/js11-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js11-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/js11-out.jsonld7
-rw-r--r--test/jsonld/1.1/compact/la01-context.jsonld15
-rw-r--r--test/jsonld/1.1/compact/la01-in.jsonld48
-rw-r--r--test/jsonld/1.1/compact/la01-out.jsonld46
-rw-r--r--test/jsonld/1.1/compact/li01-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/li01-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/li01-out.jsonld4
-rw-r--r--test/jsonld/1.1/compact/li02-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/li02-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/li02-out.jsonld4
-rw-r--r--test/jsonld/1.1/compact/li03-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/li03-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/li03-out.jsonld4
-rw-r--r--test/jsonld/1.1/compact/li04-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/li04-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/li04-out.jsonld4
-rw-r--r--test/jsonld/1.1/compact/li05-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/li05-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/li05-out.jsonld4
-rw-r--r--test/jsonld/1.1/compact/m001-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m001-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m001-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m002-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m002-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m002-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m003-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m003-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m003-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m004-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m004-in.jsonld12
-rw-r--r--test/jsonld/1.1/compact/m004-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m005-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/m005-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/m005-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m006-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m006-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/m006-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/m007-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/m007-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/m007-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m008-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/m008-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/m008-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/m009-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/m009-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/m009-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/m010-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/m010-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/m010-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/m011-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m011-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m011-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/m012-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/m012-in.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m012-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/m013-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/m013-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/m013-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m014-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/m014-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/m014-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/m015-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/m015-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/m015-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m016-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/m016-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/m016-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/m017-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m017-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/m017-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/m018-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m018-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/m018-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/m019-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/m019-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/m019-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/m020-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/m020-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m020-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/m021-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/m021-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m021-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/m022-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/m022-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/m022-out.jsonld9
-rw-r--r--test/jsonld/1.1/compact/n001-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/n001-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/n001-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/n002-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/n002-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/n002-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/n003-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/n003-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/n003-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/n004-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/n004-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/n004-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/n005-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/n005-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/n005-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/n006-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/n006-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/n006-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/n007-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/n007-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/n007-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/n008-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/n008-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/n008-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/n009-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/n009-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/n009-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/n010-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/n010-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/n010-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/n011-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/n011-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/n011-out.jsonld11
-rw-r--r--test/jsonld/1.1/compact/p001-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/p001-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/p001-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/p002-context.jsonld5
-rw-r--r--test/jsonld/1.1/compact/p002-in.jsonld5
-rw-r--r--test/jsonld/1.1/compact/p002-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/p003-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/p003-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/p003-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/p004-context.jsonld11
-rw-r--r--test/jsonld/1.1/compact/p004-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/p004-out.jsonld18
-rw-r--r--test/jsonld/1.1/compact/p005-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/p005-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/p005-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/p006-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/p006-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/p006-out.jsonld10
-rw-r--r--test/jsonld/1.1/compact/p007-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/p007-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/p007-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/p008-context.jsonld6
-rw-r--r--test/jsonld/1.1/compact/p008-in.jsonld6
-rw-r--r--test/jsonld/1.1/compact/p008-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/pi01-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pi01-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pi01-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/pi02-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pi02-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pi02-out.jsonld16
-rw-r--r--test/jsonld/1.1/compact/pi03-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/pi03-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pi03-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/pi04-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/pi04-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pi04-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/pi05-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pi05-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pi05-out.jsonld12
-rw-r--r--test/jsonld/1.1/compact/pi06-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pi06-in.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pi06-out.jsonld16
-rw-r--r--test/jsonld/1.1/compact/pr01-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/pr01-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/pr02-context.jsonld9
-rw-r--r--test/jsonld/1.1/compact/pr02-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/pr03-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pr03-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/pr04-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/pr04-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/pr04-out.jsonld14
-rw-r--r--test/jsonld/1.1/compact/pr05-context.jsonld12
-rw-r--r--test/jsonld/1.1/compact/pr05-in.jsonld20
-rw-r--r--test/jsonld/1.1/compact/pr05-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/r001-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/r001-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/r001-out.jsonld5
-rw-r--r--test/jsonld/1.1/compact/r002-context.jsonld3
-rw-r--r--test/jsonld/1.1/compact/r002-in.jsonld4
-rw-r--r--test/jsonld/1.1/compact/r002-out.jsonld5
-rw-r--r--test/jsonld/1.1/compact/s001-context.jsonld10
-rw-r--r--test/jsonld/1.1/compact/s001-in.jsonld9
-rw-r--r--test/jsonld/1.1/compact/s001-out.jsonld17
-rw-r--r--test/jsonld/1.1/compact/s002-context.jsonld8
-rw-r--r--test/jsonld/1.1/compact/s002-in.jsonld7
-rw-r--r--test/jsonld/1.1/compact/s002-out.jsonld13
-rw-r--r--test/jsonld/1.1/compact/tn01-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/tn01-in.jsonld14
-rw-r--r--test/jsonld/1.1/compact/tn01-out.jsonld19
-rw-r--r--test/jsonld/1.1/compact/tn02-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/tn02-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/tn02-out.jsonld8
-rw-r--r--test/jsonld/1.1/compact/tn03-context.jsonld7
-rw-r--r--test/jsonld/1.1/compact/tn03-in.jsonld3
-rw-r--r--test/jsonld/1.1/compact/tn03-out.jsonld8
-rw-r--r--test/jsonld/1.1/context.jsonld37
-rw-r--r--test/jsonld/1.1/expand-manifest.jsonld2944
-rw-r--r--test/jsonld/1.1/expand/0001-in.jsonld1
-rw-r--r--test/jsonld/1.1/expand/0001-out.jsonld1
-rw-r--r--test/jsonld/1.1/expand/0002-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0002-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0003-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/0003-out.jsonld1
-rw-r--r--test/jsonld/1.1/expand/0004-in.jsonld21
-rw-r--r--test/jsonld/1.1/expand/0004-out.jsonld15
-rw-r--r--test/jsonld/1.1/expand/0005-in.jsonld23
-rw-r--r--test/jsonld/1.1/expand/0005-out.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0006-in.jsonld20
-rw-r--r--test/jsonld/1.1/expand/0006-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0007-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0007-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0008-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0008-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0009-in.jsonld43
-rw-r--r--test/jsonld/1.1/expand/0009-out.jsonld29
-rw-r--r--test/jsonld/1.1/expand/0010-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/0010-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/0011-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0011-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0012-in.jsonld39
-rw-r--r--test/jsonld/1.1/expand/0012-out.jsonld29
-rw-r--r--test/jsonld/1.1/expand/0013-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0013-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0014-in.jsonld50
-rw-r--r--test/jsonld/1.1/expand/0014-out.jsonld31
-rw-r--r--test/jsonld/1.1/expand/0015-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0015-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0016-in.jsonld30
-rw-r--r--test/jsonld/1.1/expand/0016-out.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0017-in.jsonld45
-rw-r--r--test/jsonld/1.1/expand/0017-out.jsonld29
-rw-r--r--test/jsonld/1.1/expand/0018-in.jsonld24
-rw-r--r--test/jsonld/1.1/expand/0018-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0019-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/0019-out.jsonld1
-rw-r--r--test/jsonld/1.1/expand/0020-in.jsonld51
-rw-r--r--test/jsonld/1.1/expand/0020-out.jsonld37
-rw-r--r--test/jsonld/1.1/expand/0021-in.jsonld56
-rw-r--r--test/jsonld/1.1/expand/0021-out.jsonld46
-rw-r--r--test/jsonld/1.1/expand/0022-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0022-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/0023-in.jsonld21
-rw-r--r--test/jsonld/1.1/expand/0023-out.jsonld12
-rw-r--r--test/jsonld/1.1/expand/0024-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0024-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0025-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0025-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0026-in.jsonld20
-rw-r--r--test/jsonld/1.1/expand/0026-out.jsonld21
-rw-r--r--test/jsonld/1.1/expand/0027-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0027-out.jsonld17
-rw-r--r--test/jsonld/1.1/expand/0028-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0028-out.jsonld23
-rw-r--r--test/jsonld/1.1/expand/0029-in.jsonld32
-rw-r--r--test/jsonld/1.1/expand/0029-out.jsonld35
-rw-r--r--test/jsonld/1.1/expand/0030-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0030-out.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0031-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0031-out.jsonld17
-rw-r--r--test/jsonld/1.1/expand/0032-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/0032-out.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0033-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0033-out.jsonld12
-rw-r--r--test/jsonld/1.1/expand/0034-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0034-out.jsonld17
-rw-r--r--test/jsonld/1.1/expand/0035-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0035-out.jsonld21
-rw-r--r--test/jsonld/1.1/expand/0036-in.jsonld90
-rw-r--r--test/jsonld/1.1/expand/0036-out.jsonld113
-rw-r--r--test/jsonld/1.1/expand/0037-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0037-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0038-in.jsonld38
-rw-r--r--test/jsonld/1.1/expand/0038-out.jsonld56
-rw-r--r--test/jsonld/1.1/expand/0039-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0039-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0040-in.jsonld23
-rw-r--r--test/jsonld/1.1/expand/0040-out.jsonld23
-rw-r--r--test/jsonld/1.1/expand/0041-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0041-out.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0042-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/0042-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0043-in.jsonld20
-rw-r--r--test/jsonld/1.1/expand/0043-out.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0044-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0044-out.jsonld21
-rw-r--r--test/jsonld/1.1/expand/0045-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/0045-out.jsonld1
-rw-r--r--test/jsonld/1.1/expand/0046-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0046-out.jsonld1
-rw-r--r--test/jsonld/1.1/expand/0047-in.jsonld28
-rw-r--r--test/jsonld/1.1/expand/0047-out.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0048-in.jsonld19
-rw-r--r--test/jsonld/1.1/expand/0048-out.jsonld19
-rw-r--r--test/jsonld/1.1/expand/0049-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/0049-out.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0050-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0050-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/0051-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0051-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/0052-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0052-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/0053-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/0053-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/0054-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0054-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/0055-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0055-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/0056-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0056-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0057-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/0057-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/0058-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0058-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/0059-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0059-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0060-in.jsonld30
-rw-r--r--test/jsonld/1.1/expand/0060-out.jsonld23
-rw-r--r--test/jsonld/1.1/expand/0061-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0061-out.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0062-in.jsonld35
-rw-r--r--test/jsonld/1.1/expand/0062-out.jsonld35
-rw-r--r--test/jsonld/1.1/expand/0063-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0063-out.jsonld20
-rw-r--r--test/jsonld/1.1/expand/0064-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0064-out.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0065-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0065-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0066-in.jsonld19
-rw-r--r--test/jsonld/1.1/expand/0066-out.jsonld20
-rw-r--r--test/jsonld/1.1/expand/0067-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0067-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0068-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0068-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0069-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0069-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0070-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0070-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0071-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/0071-out.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0072-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0072-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0073-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0073-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0074-in.jsonld19
-rw-r--r--test/jsonld/1.1/expand/0074-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0075-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0075-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0076-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/0076-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/0077-context.jsonld11
-rw-r--r--test/jsonld/1.1/expand/0077-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0077-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0078-in.jsonld29
-rw-r--r--test/jsonld/1.1/expand/0078-out.jsonld26
-rw-r--r--test/jsonld/1.1/expand/0079-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0079-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0080-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0080-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0081-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/0081-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0082-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0082-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0083-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0083-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0084-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0084-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0085-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0085-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0086-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0086-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0087-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0087-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0088-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/0088-out.jsonld25
-rw-r--r--test/jsonld/1.1/expand/0089-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0089-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/0090-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0090-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/0091-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0091-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/0092-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0092-out.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0093-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/0093-out.jsonld15
-rw-r--r--test/jsonld/1.1/expand/0094-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/0094-out.jsonld15
-rw-r--r--test/jsonld/1.1/expand/0095-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/0095-out.jsonld11
-rw-r--r--test/jsonld/1.1/expand/0096-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0096-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0097-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0097-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0098-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0098-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0099-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0099-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0100-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0100-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0101-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0101-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0102-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0102-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0103-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/0103-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0104-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0104-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0105-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0105-out.jsonld23
-rw-r--r--test/jsonld/1.1/expand/0106-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0106-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/0107-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0107-out.jsonld23
-rw-r--r--test/jsonld/1.1/expand/0108-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0108-out.jsonld23
-rw-r--r--test/jsonld/1.1/expand/0109-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0109-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/0110-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/0110-out.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0111-in.jsonld21
-rw-r--r--test/jsonld/1.1/expand/0111-out.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0112-in.jsonld21
-rw-r--r--test/jsonld/1.1/expand/0112-out.jsonld16
-rw-r--r--test/jsonld/1.1/expand/0113-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0113-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0114-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0114-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/0115-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0116-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0117-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0117-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/0118-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0118-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0119-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0119-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/0120-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/0120-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/0121-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/0121-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0122-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/0122-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/0123-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/0124-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/0124-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0125-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/0125-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/0126-context.jsonld12
-rw-r--r--test/jsonld/1.1/expand/0126-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0126-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0127-context-1.jsonld12
-rw-r--r--test/jsonld/1.1/expand/0127-context-2.jsonld3
-rw-r--r--test/jsonld/1.1/expand/0127-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/0127-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0128-context-1.jsonld3
-rw-r--r--test/jsonld/1.1/expand/0128-context-2.jsonld3
-rw-r--r--test/jsonld/1.1/expand/0128-context-3.jsonld12
-rw-r--r--test/jsonld/1.1/expand/0128-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/0128-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/0129-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/0129-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/0130-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/0130-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/c001-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/c001-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/c002-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/c002-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/c003-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/c003-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/c004-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/c004-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/c005-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/c005-out.jsonld10
-rw-r--r--test/jsonld/1.1/expand/c006-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/c006-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c007-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c007-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c008-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c008-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c009-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c009-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c010-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/c010-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c011-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/c011-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/c012-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/c012-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c013-in.jsonld28
-rw-r--r--test/jsonld/1.1/expand/c013-out.jsonld12
-rw-r--r--test/jsonld/1.1/expand/c014-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/c014-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c015-in.jsonld24
-rw-r--r--test/jsonld/1.1/expand/c015-out.jsonld16
-rw-r--r--test/jsonld/1.1/expand/c016-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/c016-out.jsonld16
-rw-r--r--test/jsonld/1.1/expand/c017-in.jsonld24
-rw-r--r--test/jsonld/1.1/expand/c017-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/c018-in.jsonld26
-rw-r--r--test/jsonld/1.1/expand/c018-out.jsonld11
-rw-r--r--test/jsonld/1.1/expand/c019-in.jsonld30
-rw-r--r--test/jsonld/1.1/expand/c019-out.jsonld26
-rw-r--r--test/jsonld/1.1/expand/c020-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/c020-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/c021-in.jsonld34
-rw-r--r--test/jsonld/1.1/expand/c021-out.jsonld19
-rw-r--r--test/jsonld/1.1/expand/c022-in.jsonld20
-rw-r--r--test/jsonld/1.1/expand/c022-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/c023-in.jsonld29
-rw-r--r--test/jsonld/1.1/expand/c023-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/c024-in.jsonld39
-rw-r--r--test/jsonld/1.1/expand/c024-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/c025-in.jsonld27
-rw-r--r--test/jsonld/1.1/expand/c025-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/c026-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/c026-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/c027-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/c027-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/c028-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/c028-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/c029-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/c030-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/c031-context.jsonld9
-rw-r--r--test/jsonld/1.1/expand/c031-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/c031-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/c031/c031-context.jsonld10
-rw-r--r--test/jsonld/1.1/expand/c032-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/c033-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/c034-context.jsonld5
-rw-r--r--test/jsonld/1.1/expand/c034-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/c034-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/c035-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/c035-out.jsonld20
-rw-r--r--test/jsonld/1.1/expand/c036-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/c036-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/c037-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/c037-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/c038-in.jsonld54
-rw-r--r--test/jsonld/1.1/expand/c038-out.jsonld12
-rw-r--r--test/jsonld/1.1/expand/di01-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/di01-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/di02-in.jsonld25
-rw-r--r--test/jsonld/1.1/expand/di02-out.jsonld13
-rw-r--r--test/jsonld/1.1/expand/di03-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/di03-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/di04-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/di04-out.jsonld10
-rw-r--r--test/jsonld/1.1/expand/di05-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/di05-out.jsonld10
-rw-r--r--test/jsonld/1.1/expand/di06-in.jsonld17
-rw-r--r--test/jsonld/1.1/expand/di06-out.jsonld10
-rw-r--r--test/jsonld/1.1/expand/di07-in.jsonld17
-rw-r--r--test/jsonld/1.1/expand/di07-out.jsonld10
-rw-r--r--test/jsonld/1.1/expand/di08-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/di09-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/e003-context.jsonld3
-rw-r--r--test/jsonld/1.1/expand/e052-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/e053-context.jsonld3
-rw-r--r--test/jsonld/1.1/expand/e053-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/e054-context-1.jsonld3
-rw-r--r--test/jsonld/1.1/expand/e054-context-2.jsonld3
-rw-r--r--test/jsonld/1.1/expand/e054-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/ec01-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/ec02-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/em01-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/en01-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/en02-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/en03-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/en04-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/en05-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/en06-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/ep02-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/ep03-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/er01-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er02-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/er03-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/er04-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/er05-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/er06-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/er07-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/er08-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/er09-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/er10-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er11-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er12-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er13-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er14-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er15-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er17-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er18-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er19-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er20-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er21-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er22-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er23-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er24-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/er25-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er26-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/er27-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/er28-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/er29-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/er30-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/er31-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/er32-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/er33-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/er34-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/er35-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/er36-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/er37-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/er38-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/er39-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/er40-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/er41-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/er42-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er43-in.jsonld20
-rw-r--r--test/jsonld/1.1/expand/er44-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/er45-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/er48-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er49-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/er50-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/er51-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/er52-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/er53-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er54-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/er55-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/es01-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/es02-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/in01-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/in01-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/in02-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/in02-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/in03-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/in03-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/in04-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/in04-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/in05-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/in05-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/in06-in.jsonld90
-rw-r--r--test/jsonld/1.1/expand/in06-out.jsonld42
-rw-r--r--test/jsonld/1.1/expand/in07-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/in08-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/in09-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js01-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js01-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js02-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js02-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js03-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js03-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js04-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js04-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js05-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js05-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js06-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js06-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js07-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js07-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js08-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/js08-out.jsonld17
-rw-r--r--test/jsonld/1.1/expand/js09-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/js09-out.jsonld15
-rw-r--r--test/jsonld/1.1/expand/js10-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/js10-out.jsonld17
-rw-r--r--test/jsonld/1.1/expand/js11-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/js11-out.jsonld12
-rw-r--r--test/jsonld/1.1/expand/js12-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/js12-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/js13-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/js13-out.jsonld19
-rw-r--r--test/jsonld/1.1/expand/js14-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js14-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js15-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js15-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js16-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/js16-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js17-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js17-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/js18-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/js18-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/js19-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/js19-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/js20-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/js20-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/js21-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/js21-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/js22-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js22-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/js23-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/js23-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/l001-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/l001-out.jsonld12
-rw-r--r--test/jsonld/1.1/expand/li01-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/li01-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/li02-in.jsonld3
-rw-r--r--test/jsonld/1.1/expand/li02-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/li03-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/li03-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/li04-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/li04-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/li05-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/li05-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/li06-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/li06-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/li07-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/li07-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/li08-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/li08-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/li09-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/li09-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/li10-in.jsonld4
-rw-r--r--test/jsonld/1.1/expand/li10-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/m001-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/m001-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/m002-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/m002-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/m003-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/m003-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/m004-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/m004-out.jsonld12
-rw-r--r--test/jsonld/1.1/expand/m005-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/m005-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/m006-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/m006-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/m007-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/m007-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/m008-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/m008-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/m009-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/m009-out.jsonld11
-rw-r--r--test/jsonld/1.1/expand/m010-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/m010-out.jsonld11
-rw-r--r--test/jsonld/1.1/expand/m011-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/m011-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/m012-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/m012-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/m013-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/m013-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/m014-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/m014-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/m015-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/m015-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/m016-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/m016-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/m017-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/m017-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/m018-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/m018-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/m019-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/m019-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/m020-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/n001-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/n001-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/n002-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/n002-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/n003-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/n003-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/n004-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/n004-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/n005-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/n005-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/n006-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/n006-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/n007-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/n007-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/n008-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/n008-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/p001-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/p001-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/p002-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/p002-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/p003-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/p003-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/p004-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/p004-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/pi01-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/pi02-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/pi03-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/pi04-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/pi05-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/pi06-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/pi06-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pi07-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/pi07-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pi08-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/pi08-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pi09-in.jsonld17
-rw-r--r--test/jsonld/1.1/expand/pi09-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pi10-in.jsonld17
-rw-r--r--test/jsonld/1.1/expand/pi10-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pi11-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/pi11-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pr01-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/pr02-in.jsonld20
-rw-r--r--test/jsonld/1.1/expand/pr02-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/pr03-in.jsonld21
-rw-r--r--test/jsonld/1.1/expand/pr04-in.jsonld21
-rw-r--r--test/jsonld/1.1/expand/pr05-in.jsonld17
-rw-r--r--test/jsonld/1.1/expand/pr06-in.jsonld17
-rw-r--r--test/jsonld/1.1/expand/pr06-out.jsonld5
-rw-r--r--test/jsonld/1.1/expand/pr08-in.jsonld38
-rw-r--r--test/jsonld/1.1/expand/pr09-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/pr10-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/pr10-out.jsonld18
-rw-r--r--test/jsonld/1.1/expand/pr11-in.jsonld17
-rw-r--r--test/jsonld/1.1/expand/pr12-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/pr13-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/pr13-out.jsonld18
-rw-r--r--test/jsonld/1.1/expand/pr14-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/pr14-out.jsonld18
-rw-r--r--test/jsonld/1.1/expand/pr15-in.jsonld20
-rw-r--r--test/jsonld/1.1/expand/pr15-out.jsonld18
-rw-r--r--test/jsonld/1.1/expand/pr16-in.jsonld30
-rw-r--r--test/jsonld/1.1/expand/pr16-out.jsonld28
-rw-r--r--test/jsonld/1.1/expand/pr17-in.jsonld22
-rw-r--r--test/jsonld/1.1/expand/pr18-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/pr19-in.jsonld29
-rw-r--r--test/jsonld/1.1/expand/pr19-out.jsonld23
-rw-r--r--test/jsonld/1.1/expand/pr20-in.jsonld24
-rw-r--r--test/jsonld/1.1/expand/pr21-in.jsonld20
-rw-r--r--test/jsonld/1.1/expand/pr22-in.jsonld17
-rw-r--r--test/jsonld/1.1/expand/pr22-out.jsonld20
-rw-r--r--test/jsonld/1.1/expand/pr23-in.jsonld15
-rw-r--r--test/jsonld/1.1/expand/pr23-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/pr24-in.jsonld12
-rw-r--r--test/jsonld/1.1/expand/pr24-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pr25-in.jsonld141
-rw-r--r--test/jsonld/1.1/expand/pr25-out.jsonld23
-rw-r--r--test/jsonld/1.1/expand/pr26-in.jsonld136
-rw-r--r--test/jsonld/1.1/expand/pr27-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/pr27-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/pr28-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/pr29-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pr29-out.jsonld14
-rw-r--r--test/jsonld/1.1/expand/pr30-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/pr30-out.jsonld9
-rw-r--r--test/jsonld/1.1/expand/pr31-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/pr32-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/pr33-in.jsonld10
-rw-r--r--test/jsonld/1.1/expand/pr34-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/pr34-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/pr35-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pr35-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/pr36-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/pr36-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/pr37-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pr37-out.jsonld4
-rw-r--r--test/jsonld/1.1/expand/pr38-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/pr38-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/pr39-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/pr39-out.jsonld6
-rw-r--r--test/jsonld/1.1/expand/pr40-in.jsonld17
-rw-r--r--test/jsonld/1.1/expand/pr40-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/so01-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/so02-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/so03-in.jsonld6
-rw-r--r--test/jsonld/1.1/expand/so05-context.jsonld5
-rw-r--r--test/jsonld/1.1/expand/so05-in.jsonld14
-rw-r--r--test/jsonld/1.1/expand/so05-out.jsonld8
-rw-r--r--test/jsonld/1.1/expand/so06-context.jsonld5
-rw-r--r--test/jsonld/1.1/expand/so06-in.jsonld13
-rw-r--r--test/jsonld/1.1/expand/so06-out.jsonld7
-rw-r--r--test/jsonld/1.1/expand/so07-context.jsonld10
-rw-r--r--test/jsonld/1.1/expand/so07-in.jsonld16
-rw-r--r--test/jsonld/1.1/expand/so08-context.jsonld5
-rw-r--r--test/jsonld/1.1/expand/so08-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/so08-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/so09-context.jsonld6
-rw-r--r--test/jsonld/1.1/expand/so09-in.jsonld8
-rw-r--r--test/jsonld/1.1/expand/so09-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/so10-context.jsonld5
-rw-r--r--test/jsonld/1.1/expand/so10-in.jsonld11
-rw-r--r--test/jsonld/1.1/expand/so11-context.jsonld5
-rw-r--r--test/jsonld/1.1/expand/so11-in.jsonld9
-rw-r--r--test/jsonld/1.1/expand/so11-out.jsonld3
-rw-r--r--test/jsonld/1.1/expand/so12-in.jsonld5
-rw-r--r--test/jsonld/1.1/expand/so13-context.jsonld7
-rw-r--r--test/jsonld/1.1/expand/so13-in.jsonld7
-rw-r--r--test/jsonld/1.1/expand/tn01-in.jsonld18
-rw-r--r--test/jsonld/1.1/expand/tn02-in.jsonld19
-rw-r--r--test/jsonld/1.1/expand/tn02-out.jsonld14
-rw-r--r--test/jsonld/1.1/flatten-manifest.jsonld435
-rw-r--r--test/jsonld/1.1/flatten/0001-in.jsonld1
-rw-r--r--test/jsonld/1.1/flatten/0001-out.jsonld1
-rw-r--r--test/jsonld/1.1/flatten/0002-in.jsonld18
-rw-r--r--test/jsonld/1.1/flatten/0002-out.jsonld38
-rw-r--r--test/jsonld/1.1/flatten/0003-in.jsonld12
-rw-r--r--test/jsonld/1.1/flatten/0003-out.jsonld1
-rw-r--r--test/jsonld/1.1/flatten/0004-in.jsonld21
-rw-r--r--test/jsonld/1.1/flatten/0004-out.jsonld25
-rw-r--r--test/jsonld/1.1/flatten/0005-in.jsonld23
-rw-r--r--test/jsonld/1.1/flatten/0005-out.jsonld39
-rw-r--r--test/jsonld/1.1/flatten/0006-in.jsonld20
-rw-r--r--test/jsonld/1.1/flatten/0006-out.jsonld28
-rw-r--r--test/jsonld/1.1/flatten/0007-in.jsonld18
-rw-r--r--test/jsonld/1.1/flatten/0007-out.jsonld24
-rw-r--r--test/jsonld/1.1/flatten/0008-in.jsonld9
-rw-r--r--test/jsonld/1.1/flatten/0008-out.jsonld16
-rw-r--r--test/jsonld/1.1/flatten/0009-in.jsonld43
-rw-r--r--test/jsonld/1.1/flatten/0009-out.jsonld62
-rw-r--r--test/jsonld/1.1/flatten/0010-in.jsonld11
-rw-r--r--test/jsonld/1.1/flatten/0010-out.jsonld15
-rw-r--r--test/jsonld/1.1/flatten/0011-in.jsonld13
-rw-r--r--test/jsonld/1.1/flatten/0011-out.jsonld15
-rw-r--r--test/jsonld/1.1/flatten/0012-in.jsonld39
-rw-r--r--test/jsonld/1.1/flatten/0012-out.jsonld62
-rw-r--r--test/jsonld/1.1/flatten/0013-in.jsonld9
-rw-r--r--test/jsonld/1.1/flatten/0013-out.jsonld38
-rw-r--r--test/jsonld/1.1/flatten/0014-in.jsonld50
-rw-r--r--test/jsonld/1.1/flatten/0014-out.jsonld45
-rw-r--r--test/jsonld/1.1/flatten/0015-in.jsonld14
-rw-r--r--test/jsonld/1.1/flatten/0015-out.jsonld35
-rw-r--r--test/jsonld/1.1/flatten/0016-in.jsonld30
-rw-r--r--test/jsonld/1.1/flatten/0016-out.jsonld48
-rw-r--r--test/jsonld/1.1/flatten/0017-in.jsonld45
-rw-r--r--test/jsonld/1.1/flatten/0017-out.jsonld62
-rw-r--r--test/jsonld/1.1/flatten/0018-in.jsonld24
-rw-r--r--test/jsonld/1.1/flatten/0018-out.jsonld40
-rw-r--r--test/jsonld/1.1/flatten/0019-in.jsonld6
-rw-r--r--test/jsonld/1.1/flatten/0019-out.jsonld1
-rw-r--r--test/jsonld/1.1/flatten/0020-in.jsonld51
-rw-r--r--test/jsonld/1.1/flatten/0020-out.jsonld80
-rw-r--r--test/jsonld/1.1/flatten/0021-in.jsonld56
-rw-r--r--test/jsonld/1.1/flatten/0021-out.jsonld98
-rw-r--r--test/jsonld/1.1/flatten/0022-in.jsonld7
-rw-r--r--test/jsonld/1.1/flatten/0022-out.jsonld11
-rw-r--r--test/jsonld/1.1/flatten/0023-in.jsonld21
-rw-r--r--test/jsonld/1.1/flatten/0023-out.jsonld65
-rw-r--r--test/jsonld/1.1/flatten/0024-in.jsonld14
-rw-r--r--test/jsonld/1.1/flatten/0024-out.jsonld25
-rw-r--r--test/jsonld/1.1/flatten/0025-in.jsonld9
-rw-r--r--test/jsonld/1.1/flatten/0025-out.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/0026-in.jsonld20
-rw-r--r--test/jsonld/1.1/flatten/0026-out.jsonld21
-rw-r--r--test/jsonld/1.1/flatten/0027-in.jsonld9
-rw-r--r--test/jsonld/1.1/flatten/0027-out.jsonld34
-rw-r--r--test/jsonld/1.1/flatten/0028-in.jsonld13
-rw-r--r--test/jsonld/1.1/flatten/0028-out.jsonld28
-rw-r--r--test/jsonld/1.1/flatten/0030-in.jsonld14
-rw-r--r--test/jsonld/1.1/flatten/0030-out.jsonld19
-rw-r--r--test/jsonld/1.1/flatten/0031-in.jsonld13
-rw-r--r--test/jsonld/1.1/flatten/0031-out.jsonld23
-rw-r--r--test/jsonld/1.1/flatten/0032-in.jsonld11
-rw-r--r--test/jsonld/1.1/flatten/0032-out.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/0033-in.jsonld14
-rw-r--r--test/jsonld/1.1/flatten/0033-out.jsonld21
-rw-r--r--test/jsonld/1.1/flatten/0034-in.jsonld16
-rw-r--r--test/jsonld/1.1/flatten/0034-out.jsonld22
-rw-r--r--test/jsonld/1.1/flatten/0035-in.jsonld18
-rw-r--r--test/jsonld/1.1/flatten/0035-out.jsonld27
-rw-r--r--test/jsonld/1.1/flatten/0036-in.jsonld90
-rw-r--r--test/jsonld/1.1/flatten/0036-out.jsonld128
-rw-r--r--test/jsonld/1.1/flatten/0037-in.jsonld16
-rw-r--r--test/jsonld/1.1/flatten/0037-out.jsonld14
-rw-r--r--test/jsonld/1.1/flatten/0038-in.jsonld38
-rw-r--r--test/jsonld/1.1/flatten/0038-out.jsonld44
-rw-r--r--test/jsonld/1.1/flatten/0039-in.jsonld16
-rw-r--r--test/jsonld/1.1/flatten/0039-out.jsonld16
-rw-r--r--test/jsonld/1.1/flatten/0040-in.jsonld23
-rw-r--r--test/jsonld/1.1/flatten/0040-out.jsonld21
-rw-r--r--test/jsonld/1.1/flatten/0041-in.jsonld24
-rw-r--r--test/jsonld/1.1/flatten/0041-out.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/0042-in.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/0042-out.jsonld13
-rw-r--r--test/jsonld/1.1/flatten/0043-in.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/0043-out.jsonld17
-rw-r--r--test/jsonld/1.1/flatten/0044-context.jsonld5
-rw-r--r--test/jsonld/1.1/flatten/0044-in.jsonld4
-rw-r--r--test/jsonld/1.1/flatten/0044-out.jsonld9
-rw-r--r--test/jsonld/1.1/flatten/0045-in.jsonld8
-rw-r--r--test/jsonld/1.1/flatten/0045-out.jsonld14
-rw-r--r--test/jsonld/1.1/flatten/0046-in.jsonld17
-rw-r--r--test/jsonld/1.1/flatten/0046-out.jsonld16
-rw-r--r--test/jsonld/1.1/flatten/0047-in.jsonld7
-rw-r--r--test/jsonld/1.1/flatten/0047-out.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/0048-in.jsonld8
-rw-r--r--test/jsonld/1.1/flatten/0048-out.jsonld16
-rw-r--r--test/jsonld/1.1/flatten/0049-in.jsonld9
-rw-r--r--test/jsonld/1.1/flatten/0049-out.jsonld15
-rw-r--r--test/jsonld/1.1/flatten/e001-in.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/in01-in.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/in01-out.jsonld7
-rw-r--r--test/jsonld/1.1/flatten/in02-in.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/in02-out.jsonld7
-rw-r--r--test/jsonld/1.1/flatten/in03-in.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/in03-out.jsonld7
-rw-r--r--test/jsonld/1.1/flatten/in04-in.jsonld13
-rw-r--r--test/jsonld/1.1/flatten/in04-out.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/in05-in.jsonld12
-rw-r--r--test/jsonld/1.1/flatten/in05-out.jsonld10
-rw-r--r--test/jsonld/1.1/flatten/in06-in.jsonld90
-rw-r--r--test/jsonld/1.1/flatten/in06-out.jsonld40
-rw-r--r--test/jsonld/1.1/flatten/li01-in.jsonld3
-rw-r--r--test/jsonld/1.1/flatten/li01-out.jsonld4
-rw-r--r--test/jsonld/1.1/flatten/li02-in.jsonld3
-rw-r--r--test/jsonld/1.1/flatten/li02-out.jsonld4
-rw-r--r--test/jsonld/1.1/flatten/li03-in.jsonld6
-rw-r--r--test/jsonld/1.1/flatten/li03-out.jsonld19
-rw-r--r--test/jsonld/1.1/fromRdf-manifest.jsonld408
-rw-r--r--test/jsonld/1.1/fromRdf/0001-in.nq5
-rw-r--r--test/jsonld/1.1/fromRdf/0001-out.jsonld12
-rw-r--r--test/jsonld/1.1/fromRdf/0002-in.nq5
-rw-r--r--test/jsonld/1.1/fromRdf/0002-out.jsonld27
-rw-r--r--test/jsonld/1.1/fromRdf/0003-in.nq6
-rw-r--r--test/jsonld/1.1/fromRdf/0003-out.jsonld19
-rw-r--r--test/jsonld/1.1/fromRdf/0004-in.nq10
-rw-r--r--test/jsonld/1.1/fromRdf/0004-out.jsonld18
-rw-r--r--test/jsonld/1.1/fromRdf/0005-in.nq9
-rw-r--r--test/jsonld/1.1/fromRdf/0005-out.jsonld20
-rw-r--r--test/jsonld/1.1/fromRdf/0006-in.nq14
-rw-r--r--test/jsonld/1.1/fromRdf/0006-out.jsonld34
-rw-r--r--test/jsonld/1.1/fromRdf/0007-in.nq5
-rw-r--r--test/jsonld/1.1/fromRdf/0007-out.jsonld27
-rw-r--r--test/jsonld/1.1/fromRdf/0008-in.nq28
-rw-r--r--test/jsonld/1.1/fromRdf/0008-out.jsonld50
-rw-r--r--test/jsonld/1.1/fromRdf/0009-in.nq7
-rw-r--r--test/jsonld/1.1/fromRdf/0009-out.jsonld18
-rw-r--r--test/jsonld/1.1/fromRdf/0010-in.nq6
-rw-r--r--test/jsonld/1.1/fromRdf/0010-out.jsonld20
-rw-r--r--test/jsonld/1.1/fromRdf/0011-in.nq8
-rw-r--r--test/jsonld/1.1/fromRdf/0011-out.jsonld25
-rw-r--r--test/jsonld/1.1/fromRdf/0012-in.nq7
-rw-r--r--test/jsonld/1.1/fromRdf/0012-out.jsonld21
-rw-r--r--test/jsonld/1.1/fromRdf/0013-in.nq8
-rw-r--r--test/jsonld/1.1/fromRdf/0013-out.jsonld27
-rw-r--r--test/jsonld/1.1/fromRdf/0014-in.nq10
-rw-r--r--test/jsonld/1.1/fromRdf/0014-out.jsonld19
-rw-r--r--test/jsonld/1.1/fromRdf/0015-in.nq3
-rw-r--r--test/jsonld/1.1/fromRdf/0015-out.jsonld11
-rw-r--r--test/jsonld/1.1/fromRdf/0016-in.nq11
-rw-r--r--test/jsonld/1.1/fromRdf/0016-out.jsonld20
-rw-r--r--test/jsonld/1.1/fromRdf/0017-in.nq9
-rw-r--r--test/jsonld/1.1/fromRdf/0017-out.jsonld14
-rw-r--r--test/jsonld/1.1/fromRdf/0018-in.nq5
-rw-r--r--test/jsonld/1.1/fromRdf/0018-out.jsonld12
-rw-r--r--test/jsonld/1.1/fromRdf/0019-in.nq5
-rw-r--r--test/jsonld/1.1/fromRdf/0019-out.jsonld14
-rw-r--r--test/jsonld/1.1/fromRdf/0020-in.nq6
-rw-r--r--test/jsonld/1.1/fromRdf/0020-out.jsonld30
-rw-r--r--test/jsonld/1.1/fromRdf/0021-in.nq6
-rw-r--r--test/jsonld/1.1/fromRdf/0021-out.jsonld31
-rw-r--r--test/jsonld/1.1/fromRdf/0022-in.nq6
-rw-r--r--test/jsonld/1.1/fromRdf/0022-out.jsonld22
-rw-r--r--test/jsonld/1.1/fromRdf/0023-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/0023-out.jsonld10
-rw-r--r--test/jsonld/1.1/fromRdf/0024-in.nq2
-rw-r--r--test/jsonld/1.1/fromRdf/0024-out.jsonld15
-rw-r--r--test/jsonld/1.1/fromRdf/0025-in.nq2
-rw-r--r--test/jsonld/1.1/fromRdf/0025-out.jsonld15
-rw-r--r--test/jsonld/1.1/fromRdf/0026-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/0026-out.jsonld11
-rw-r--r--test/jsonld/1.1/fromRdf/di01-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/di01-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/di02-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/di02-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/di03-in.nq3
-rw-r--r--test/jsonld/1.1/fromRdf/di03-out.jsonld8
-rw-r--r--test/jsonld/1.1/fromRdf/di04-in.nq4
-rw-r--r--test/jsonld/1.1/fromRdf/di04-out.jsonld9
-rw-r--r--test/jsonld/1.1/fromRdf/di05-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/di05-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/di06-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/di06-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/di07-in.nq3
-rw-r--r--test/jsonld/1.1/fromRdf/di07-out.jsonld8
-rw-r--r--test/jsonld/1.1/fromRdf/di08-in.nq4
-rw-r--r--test/jsonld/1.1/fromRdf/di08-out.jsonld9
-rw-r--r--test/jsonld/1.1/fromRdf/di09-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/di09-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/di10-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/di10-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/di11-in.nq3
-rw-r--r--test/jsonld/1.1/fromRdf/di11-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/di12-in.nq4
-rw-r--r--test/jsonld/1.1/fromRdf/di12-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/js01-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js01-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/js02-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js02-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/js03-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js03-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/js04-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js04-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/js05-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js05-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/js06-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js06-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/js07-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js07-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/js08-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js09-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js10-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js10-out.jsonld7
-rw-r--r--test/jsonld/1.1/fromRdf/js11-in.nq1
-rw-r--r--test/jsonld/1.1/fromRdf/js11-out.jsonld7
-rw-r--r--test/jsonld/1.1/fromRdf/li01-in.nq3
-rw-r--r--test/jsonld/1.1/fromRdf/li01-out.jsonld4
-rw-r--r--test/jsonld/1.1/fromRdf/li02-in.nq9
-rw-r--r--test/jsonld/1.1/fromRdf/li02-out.jsonld7
-rw-r--r--test/jsonld/1.1/fromRdf/li03-in.nq28
-rw-r--r--test/jsonld/1.1/fromRdf/li03-out.jsonld14
-rw-r--r--test/jsonld/1.1/html-manifest.jsonld473
-rw-r--r--test/jsonld/1.1/html/c001-context.jsonld5
-rw-r--r--test/jsonld/1.1/html/c001-in.html12
-rw-r--r--test/jsonld/1.1/html/c001-out.jsonld6
-rw-r--r--test/jsonld/1.1/html/c002-context.jsonld5
-rw-r--r--test/jsonld/1.1/html/c002-in.html21
-rw-r--r--test/jsonld/1.1/html/c002-out.jsonld6
-rw-r--r--test/jsonld/1.1/html/c003-context.jsonld3
-rw-r--r--test/jsonld/1.1/html/c003-in.html21
-rw-r--r--test/jsonld/1.1/html/c003-out.jsonld7
-rw-r--r--test/jsonld/1.1/html/c004-context.jsonld6
-rw-r--r--test/jsonld/1.1/html/c004-in.html21
-rw-r--r--test/jsonld/1.1/html/c004-out.jsonld15
-rw-r--r--test/jsonld/1.1/html/e001-in.html12
-rw-r--r--test/jsonld/1.1/html/e001-out.jsonld3
-rw-r--r--test/jsonld/1.1/html/e002-in.html21
-rw-r--r--test/jsonld/1.1/html/e002-out.jsonld3
-rw-r--r--test/jsonld/1.1/html/e003-in.html21
-rw-r--r--test/jsonld/1.1/html/e003-out.jsonld4
-rw-r--r--test/jsonld/1.1/html/e004-in.html21
-rw-r--r--test/jsonld/1.1/html/e004-out.jsonld10
-rw-r--r--test/jsonld/1.1/html/e005-in.html18
-rw-r--r--test/jsonld/1.1/html/e005-out.jsonld5
-rw-r--r--test/jsonld/1.1/html/e006-in.html1
-rw-r--r--test/jsonld/1.1/html/e007-in.html1
-rw-r--r--test/jsonld/1.1/html/e007-out.jsonld1
-rw-r--r--test/jsonld/1.1/html/e008-in.html14
-rw-r--r--test/jsonld/1.1/html/e008-out.jsonld3
-rw-r--r--test/jsonld/1.1/html/e009-in.html13
-rw-r--r--test/jsonld/1.1/html/e009-out.jsonld6
-rw-r--r--test/jsonld/1.1/html/e010-in.html10
-rw-r--r--test/jsonld/1.1/html/e010-out.jsonld3
-rw-r--r--test/jsonld/1.1/html/e011-in.html21
-rw-r--r--test/jsonld/1.1/html/e012-in.html12
-rw-r--r--test/jsonld/1.1/html/e013-in.html12
-rw-r--r--test/jsonld/1.1/html/e014-in.html14
-rw-r--r--test/jsonld/1.1/html/e015-in.html13
-rw-r--r--test/jsonld/1.1/html/e016-in.html13
-rw-r--r--test/jsonld/1.1/html/e017-in.html7
-rw-r--r--test/jsonld/1.1/html/e018-in.html13
-rw-r--r--test/jsonld/1.1/html/e018-out.jsonld4
-rw-r--r--test/jsonld/1.1/html/e019-in.html13
-rw-r--r--test/jsonld/1.1/html/e019-out.jsonld4
-rw-r--r--test/jsonld/1.1/html/e020-in.html14
-rw-r--r--test/jsonld/1.1/html/e020-out.jsonld4
-rw-r--r--test/jsonld/1.1/html/e021-in.html14
-rw-r--r--test/jsonld/1.1/html/e021-out.jsonld4
-rw-r--r--test/jsonld/1.1/html/e022-in.html20
-rw-r--r--test/jsonld/1.1/html/e022-out.jsonld4
-rw-r--r--test/jsonld/1.1/html/f001-context.jsonld5
-rw-r--r--test/jsonld/1.1/html/f001-in.html12
-rw-r--r--test/jsonld/1.1/html/f001-out.jsonld7
-rw-r--r--test/jsonld/1.1/html/f002-context.jsonld5
-rw-r--r--test/jsonld/1.1/html/f002-in.html21
-rw-r--r--test/jsonld/1.1/html/f002-out.jsonld7
-rw-r--r--test/jsonld/1.1/html/f003-context.jsonld3
-rw-r--r--test/jsonld/1.1/html/f003-in.html21
-rw-r--r--test/jsonld/1.1/html/f003-out.jsonld7
-rw-r--r--test/jsonld/1.1/html/f004-context.jsonld6
-rw-r--r--test/jsonld/1.1/html/f004-in.html18
-rw-r--r--test/jsonld/1.1/html/f004-out.jsonld11
-rw-r--r--test/jsonld/1.1/html/r001-in.html12
-rw-r--r--test/jsonld/1.1/html/r001-out.nq3
-rw-r--r--test/jsonld/1.1/html/r002-in.html21
-rw-r--r--test/jsonld/1.1/html/r002-out.nq3
-rw-r--r--test/jsonld/1.1/html/r003-in.html21
-rw-r--r--test/jsonld/1.1/html/r003-out.nq2
-rw-r--r--test/jsonld/1.1/html/r004-in.html21
-rw-r--r--test/jsonld/1.1/html/r004-out.nq5
-rw-r--r--test/jsonld/1.1/html/r005-in.html18
-rw-r--r--test/jsonld/1.1/html/r005-out.nq5
-rw-r--r--test/jsonld/1.1/html/r006-in.html1
-rw-r--r--test/jsonld/1.1/html/r006-out.nq0
-rw-r--r--test/jsonld/1.1/html/r007-in.html1
-rw-r--r--test/jsonld/1.1/html/r007-out.nq0
-rw-r--r--test/jsonld/1.1/html/r010-in.html10
-rw-r--r--test/jsonld/1.1/html/r010-out.nq1
-rw-r--r--test/jsonld/1.1/html/r011-in.html21
-rw-r--r--test/jsonld/1.1/html/r012-in.html12
-rw-r--r--test/jsonld/1.1/html/r013-in.html12
-rw-r--r--test/jsonld/1.1/html/r014-in.html14
-rw-r--r--test/jsonld/1.1/html/r015-in.html13
-rw-r--r--test/jsonld/1.1/html/r016-in.html13
-rw-r--r--test/jsonld/1.1/html/r017-in.html7
-rw-r--r--test/jsonld/1.1/html/r018-in.html13
-rw-r--r--test/jsonld/1.1/html/r018-out.nq1
-rw-r--r--test/jsonld/1.1/html/r019-in.html13
-rw-r--r--test/jsonld/1.1/html/r019-out.nq1
-rw-r--r--test/jsonld/1.1/html/r020-in.html14
-rw-r--r--test/jsonld/1.1/html/r020-out.nq1
-rw-r--r--test/jsonld/1.1/html/r021-in.html14
-rw-r--r--test/jsonld/1.1/html/r021-out.nq1
-rw-r--r--test/jsonld/1.1/html/r022-in.html20
-rw-r--r--test/jsonld/1.1/html/r022-out.nq1
-rw-r--r--test/jsonld/1.1/manifest.jsonld16
-rw-r--r--test/jsonld/1.1/remote-doc-manifest.jsonld191
-rw-r--r--test/jsonld/1.1/remote-doc/.htaccess35
-rw-r--r--test/jsonld/1.1/remote-doc/0001-in.jsonld7
-rw-r--r--test/jsonld/1.1/remote-doc/0001-out.jsonld4
-rw-r--r--test/jsonld/1.1/remote-doc/0002-in.json7
-rw-r--r--test/jsonld/1.1/remote-doc/0002-out.jsonld4
-rw-r--r--test/jsonld/1.1/remote-doc/0003-in.jldt7
-rw-r--r--test/jsonld/1.1/remote-doc/0003-out.jsonld4
-rw-r--r--test/jsonld/1.1/remote-doc/0004-in.jldte0
-rw-r--r--test/jsonld/1.1/remote-doc/0009-context.jsonld5
-rw-r--r--test/jsonld/1.1/remote-doc/0009-in.jsonld5
-rw-r--r--test/jsonld/1.1/remote-doc/0009-out.jsonld4
-rw-r--r--test/jsonld/1.1/remote-doc/0010-context.jsonld5
-rw-r--r--test/jsonld/1.1/remote-doc/0010-in.json4
-rw-r--r--test/jsonld/1.1/remote-doc/0010-out.jsonld4
-rw-r--r--test/jsonld/1.1/remote-doc/0011-context.jsonld5
-rw-r--r--test/jsonld/1.1/remote-doc/0011-in.jldt4
-rw-r--r--test/jsonld/1.1/remote-doc/0011-out.jsonld4
-rw-r--r--test/jsonld/1.1/remote-doc/0012-context1.jsonld5
-rw-r--r--test/jsonld/1.1/remote-doc/0012-context2.jsonld5
-rw-r--r--test/jsonld/1.1/remote-doc/0012-in.json4
-rw-r--r--test/jsonld/1.1/remote-doc/0013-context.html11
-rw-r--r--test/jsonld/1.1/remote-doc/0013-in.json4
-rw-r--r--test/jsonld/1.1/remote-doc/0013-out.jsonld4
-rw-r--r--test/jsonld/1.1/remote-doc/la01-alternate.jsonld6
-rw-r--r--test/jsonld/1.1/remote-doc/la01-in.html16
-rw-r--r--test/jsonld/1.1/remote-doc/la01-out.jsonld3
-rw-r--r--test/jsonld/1.1/remote-doc/la02-alternate.jsonld6
-rw-r--r--test/jsonld/1.1/remote-doc/la02-in.jsonld6
-rw-r--r--test/jsonld/1.1/remote-doc/la02-out.jsonld3
-rw-r--r--test/jsonld/1.1/remote-doc/la03-alternate.json6
-rw-r--r--test/jsonld/1.1/remote-doc/la03-in.json6
-rw-r--r--test/jsonld/1.1/remote-doc/la03-out.jsonld3
-rw-r--r--test/jsonld/1.1/remote-doc/la04-alternate.jsonld6
-rw-r--r--test/jsonld/1.1/remote-doc/la04-in.json6
-rw-r--r--test/jsonld/1.1/remote-doc/la04-out.jsonld3
-rw-r--r--test/jsonld/1.1/remote-doc/la05-alternate.jsonld7
-rw-r--r--test/jsonld/1.1/remote-doc/la05-in.html17
-rw-r--r--test/jsonld/1.1/remote-doc/la05-out.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf-manifest.jsonld3530
-rw-r--r--test/jsonld/1.1/toRdf/0001-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0001-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0002-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/0002-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0003-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0003-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0004-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/0004-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0005-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/0005-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/0006-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/0006-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0007-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0007-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0008-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0008-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0009-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0009-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0010-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/0010-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/0011-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/0011-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/0012-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/0012-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/0013-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/0013-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0014-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/0014-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/0015-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/0015-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/0016-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0016-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0017-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0017-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0018-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0018-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0019-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/0019-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0020-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/0020-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0022-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0022-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0023-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0023-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0024-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0024-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0025-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/0025-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/0026-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/0026-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/0027-in.jsonld30
-rw-r--r--test/jsonld/1.1/toRdf/0027-out.nq8
-rw-r--r--test/jsonld/1.1/toRdf/0028-in.jsonld19
-rw-r--r--test/jsonld/1.1/toRdf/0028-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/0029-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/0029-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/0030-in.jsonld28
-rw-r--r--test/jsonld/1.1/toRdf/0030-out.nq7
-rw-r--r--test/jsonld/1.1/toRdf/0031-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/0031-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/0032-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/0032-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/0033-in.jsonld19
-rw-r--r--test/jsonld/1.1/toRdf/0033-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/0034-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/0034-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/0035-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/0035-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/0036-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/0036-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/0113-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/0113-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0114-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/0114-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0115-in.jsonld20
-rw-r--r--test/jsonld/1.1/toRdf/0115-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/0116-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/0116-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/0117-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/0117-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/0118-in.jsonld38
-rw-r--r--test/jsonld/1.1/toRdf/0118-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/0119-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/0119-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/0120-in.jsonld47
-rw-r--r--test/jsonld/1.1/toRdf/0120-out.nq42
-rw-r--r--test/jsonld/1.1/toRdf/0121-in.jsonld47
-rw-r--r--test/jsonld/1.1/toRdf/0121-out.nq42
-rw-r--r--test/jsonld/1.1/toRdf/0122-in.jsonld47
-rw-r--r--test/jsonld/1.1/toRdf/0122-out.nq42
-rw-r--r--test/jsonld/1.1/toRdf/0123-in.jsonld47
-rw-r--r--test/jsonld/1.1/toRdf/0123-out.nq42
-rw-r--r--test/jsonld/1.1/toRdf/0124-in.jsonld47
-rw-r--r--test/jsonld/1.1/toRdf/0124-out.nq42
-rw-r--r--test/jsonld/1.1/toRdf/0125-in.jsonld47
-rw-r--r--test/jsonld/1.1/toRdf/0125-out.nq42
-rw-r--r--test/jsonld/1.1/toRdf/0126-in.jsonld47
-rw-r--r--test/jsonld/1.1/toRdf/0126-out.nq42
-rw-r--r--test/jsonld/1.1/toRdf/0127-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/0127-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/0128-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/0128-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/0129-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/0129-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/0130-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/0130-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0131-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/0131-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/0132-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/0132-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/c001-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/c001-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/c002-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/c002-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/c003-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/c003-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/c004-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/c004-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c005-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/c005-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/c006-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/c006-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c007-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/c007-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c008-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/c008-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c009-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/c009-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c010-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/c010-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/c011-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/c011-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c012-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/c012-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c013-in.jsonld28
-rw-r--r--test/jsonld/1.1/toRdf/c013-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/c014-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/c014-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c015-in.jsonld24
-rw-r--r--test/jsonld/1.1/toRdf/c015-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/c016-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/c016-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/c017-in.jsonld24
-rw-r--r--test/jsonld/1.1/toRdf/c017-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/c018-in.jsonld26
-rw-r--r--test/jsonld/1.1/toRdf/c018-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c019-in.jsonld30
-rw-r--r--test/jsonld/1.1/toRdf/c019-out.nq7
-rw-r--r--test/jsonld/1.1/toRdf/c020-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/c020-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/c021-in.jsonld34
-rw-r--r--test/jsonld/1.1/toRdf/c021-out.nq10
-rw-r--r--test/jsonld/1.1/toRdf/c022-in.jsonld20
-rw-r--r--test/jsonld/1.1/toRdf/c022-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/c023-in.jsonld29
-rw-r--r--test/jsonld/1.1/toRdf/c023-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/c024-in.jsonld39
-rw-r--r--test/jsonld/1.1/toRdf/c024-out.nq7
-rw-r--r--test/jsonld/1.1/toRdf/c025-in.jsonld27
-rw-r--r--test/jsonld/1.1/toRdf/c025-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/c026-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/c026-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c027-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/c027-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c028-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/c028-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c029-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/c030-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/c031-context.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/c031-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/c031-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/c031/c031-context.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/c032-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/c033-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/c034-context.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/c034-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/c034-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/c035-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/c035-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c036-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/c036-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/c037-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/c037-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/c038-in.jsonld54
-rw-r--r--test/jsonld/1.1/toRdf/c038-out.nq7
-rw-r--r--test/jsonld/1.1/toRdf/di01-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/di01-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/di02-in.jsonld25
-rw-r--r--test/jsonld/1.1/toRdf/di02-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/di03-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/di03-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/di04-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/di04-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/di05-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/di05-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/di06-in.jsonld17
-rw-r--r--test/jsonld/1.1/toRdf/di06-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/di07-in.jsonld17
-rw-r--r--test/jsonld/1.1/toRdf/di07-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/di08-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/di09-in.jsonld1
-rw-r--r--test/jsonld/1.1/toRdf/di09-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/di10-in.jsonld1
-rw-r--r--test/jsonld/1.1/toRdf/di10-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/di11-in.jsonld1
-rw-r--r--test/jsonld/1.1/toRdf/di11-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/di12-in.jsonld1
-rw-r--r--test/jsonld/1.1/toRdf/di12-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e001-in.jsonld1
-rw-r--r--test/jsonld/1.1/toRdf/e001-out.nq0
-rw-r--r--test/jsonld/1.1/toRdf/e002-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/e002-out.nq7
-rw-r--r--test/jsonld/1.1/toRdf/e003-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e003-out.nq0
-rw-r--r--test/jsonld/1.1/toRdf/e004-in.jsonld21
-rw-r--r--test/jsonld/1.1/toRdf/e004-out.nq11
-rw-r--r--test/jsonld/1.1/toRdf/e005-in.jsonld23
-rw-r--r--test/jsonld/1.1/toRdf/e005-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/e006-in.jsonld20
-rw-r--r--test/jsonld/1.1/toRdf/e006-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e007-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/e007-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e008-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e008-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e009-in.jsonld43
-rw-r--r--test/jsonld/1.1/toRdf/e009-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/e010-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/e010-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e011-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/e011-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e012-in.jsonld39
-rw-r--r--test/jsonld/1.1/toRdf/e012-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/e013-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e013-out.nq7
-rw-r--r--test/jsonld/1.1/toRdf/e014-in.jsonld50
-rw-r--r--test/jsonld/1.1/toRdf/e014-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/e015-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/e015-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/e016-in.jsonld30
-rw-r--r--test/jsonld/1.1/toRdf/e016-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/e017-in.jsonld45
-rw-r--r--test/jsonld/1.1/toRdf/e017-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/e018-in.jsonld24
-rw-r--r--test/jsonld/1.1/toRdf/e018-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/e019-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/e019-out.nq0
-rw-r--r--test/jsonld/1.1/toRdf/e020-in.jsonld51
-rw-r--r--test/jsonld/1.1/toRdf/e020-out.nq11
-rw-r--r--test/jsonld/1.1/toRdf/e021-in.jsonld56
-rw-r--r--test/jsonld/1.1/toRdf/e021-out.nq13
-rw-r--r--test/jsonld/1.1/toRdf/e022-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/e022-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e023-in.jsonld21
-rw-r--r--test/jsonld/1.1/toRdf/e023-out.nq16
-rw-r--r--test/jsonld/1.1/toRdf/e024-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/e024-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e025-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e025-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e026-in.jsonld20
-rw-r--r--test/jsonld/1.1/toRdf/e026-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e027-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e027-out.nq12
-rw-r--r--test/jsonld/1.1/toRdf/e028-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/e028-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e029-in.jsonld32
-rw-r--r--test/jsonld/1.1/toRdf/e029-out.nq34
-rw-r--r--test/jsonld/1.1/toRdf/e030-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/e030-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e031-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/e031-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e032-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/e032-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e033-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/e033-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e034-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/e034-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/e035-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/e035-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/e036-in.jsonld90
-rw-r--r--test/jsonld/1.1/toRdf/e036-out.nq25
-rw-r--r--test/jsonld/1.1/toRdf/e037-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/e037-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e038-in.jsonld38
-rw-r--r--test/jsonld/1.1/toRdf/e038-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e039-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/e039-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e040-in.jsonld23
-rw-r--r--test/jsonld/1.1/toRdf/e040-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e041-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/e041-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e042-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e042-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e043-in.jsonld20
-rw-r--r--test/jsonld/1.1/toRdf/e043-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/e044-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/e044-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e045-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/e045-out.nq0
-rw-r--r--test/jsonld/1.1/toRdf/e046-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/e046-out.nq0
-rw-r--r--test/jsonld/1.1/toRdf/e047-in.jsonld28
-rw-r--r--test/jsonld/1.1/toRdf/e047-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e048-in.jsonld19
-rw-r--r--test/jsonld/1.1/toRdf/e048-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e049-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e049-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e050-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e050-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e051-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e051-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e052-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e052-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e053-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/e053-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e054-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/e054-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e055-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/e055-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e056-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/e056-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e057-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/e057-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e058-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/e058-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e059-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/e059-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e060-in.jsonld30
-rw-r--r--test/jsonld/1.1/toRdf/e060-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e061-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e061-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e062-in.jsonld35
-rw-r--r--test/jsonld/1.1/toRdf/e062-out.nq38
-rw-r--r--test/jsonld/1.1/toRdf/e063-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/e063-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/e064-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/e064-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/e065-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/e065-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e066-in.jsonld19
-rw-r--r--test/jsonld/1.1/toRdf/e066-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/e067-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e067-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e068-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e068-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e069-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e069-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e070-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e070-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e071-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/e071-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e072-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/e072-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e073-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/e073-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e074-in.jsonld19
-rw-r--r--test/jsonld/1.1/toRdf/e074-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e075-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e075-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e076-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/e076-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e077-context.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/e077-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e077-out.nq7
-rw-r--r--test/jsonld/1.1/toRdf/e078-in.jsonld29
-rw-r--r--test/jsonld/1.1/toRdf/e078-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/e079-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e079-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e080-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e080-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e081-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/e081-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e082-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e082-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e083-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e083-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e084-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/e084-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e085-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e085-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e086-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e086-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e087-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/e087-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e088-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/e088-out.nq15
-rw-r--r--test/jsonld/1.1/toRdf/e089-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/e089-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e090-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/e090-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e091-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e091-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e092-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/e092-out.nq11
-rw-r--r--test/jsonld/1.1/toRdf/e093-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e093-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e094-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e094-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e095-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/e095-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e096-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e096-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e097-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e097-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e098-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e098-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e099-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e099-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e100-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e100-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e101-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/e101-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e102-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/e102-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e103-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/e103-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e104-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e104-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e105-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e105-out.nq8
-rw-r--r--test/jsonld/1.1/toRdf/e106-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/e106-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e107-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e107-out.nq8
-rw-r--r--test/jsonld/1.1/toRdf/e108-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e108-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/e109-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/e109-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e110-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/e110-out.nq11
-rw-r--r--test/jsonld/1.1/toRdf/e111-in.jsonld21
-rw-r--r--test/jsonld/1.1/toRdf/e111-out.nq10
-rw-r--r--test/jsonld/1.1/toRdf/e112-in.jsonld21
-rw-r--r--test/jsonld/1.1/toRdf/e112-out.nq10
-rw-r--r--test/jsonld/1.1/toRdf/e113-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e113-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e114-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/e114-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e115-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e116-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e117-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/e117-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e118-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e118-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/e119-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e119-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e120-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/e120-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/e121-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/e121-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e122-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/e122-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e123-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/e124-context.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e124-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/e124-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e125-context-1.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e125-context-2.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/e125-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/e125-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e126-context-1.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/e126-context-2.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/e126-context-3.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e126-context.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e126-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/e126-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e127-context-1.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e127-context-2.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/e127-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/e127-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e128-context-1.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/e128-context-2.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/e128-context-3.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/e128-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/e128-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/e129-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/e129-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/e130-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/e130-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/ec01-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/ec02-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/em01-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/en01-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/en02-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/en03-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/en04-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/en05-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/en06-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/ep02-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/ep03-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/er01-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er02-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/er03-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/er04-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/er05-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/er06-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/er07-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/er08-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/er09-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/er10-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er11-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er12-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er13-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er14-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er15-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er17-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er18-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er19-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er20-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er21-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er22-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er23-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er24-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/er25-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er26-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/er27-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/er28-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/er29-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/er30-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/er31-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/er32-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/er33-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/er34-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/er35-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/er36-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/er37-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/er38-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/er39-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/er40-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/er41-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/er42-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er43-in.jsonld20
-rw-r--r--test/jsonld/1.1/toRdf/er44-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/er45-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/er48-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er49-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/er50-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/er51-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/er52-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/er53-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er54-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/er55-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/in01-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/in01-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/in02-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/in02-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/in03-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/in03-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/in04-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/in04-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/in05-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/in05-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/in06-in.jsonld90
-rw-r--r--test/jsonld/1.1/toRdf/in06-out.nq23
-rw-r--r--test/jsonld/1.1/toRdf/in07-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/in08-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/in09-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js01-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js01-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js02-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js02-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js03-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js03-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js04-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js04-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js05-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js05-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js06-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js06-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js07-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js07-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js08-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/js08-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js09-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/js09-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js10-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/js10-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js11-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/js11-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js12-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/js12-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js13-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/js13-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js14-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js14-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js15-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/js15-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js16-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/js16-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js17-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js17-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js18-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/js18-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js19-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/js19-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js20-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/js20-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js21-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/js21-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js22-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/js22-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/js23-in.jsonld3
-rw-r--r--test/jsonld/1.1/toRdf/js23-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/li01-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/li01-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/li02-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/li02-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/li03-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/li03-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/li04-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/li04-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/li05-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/li05-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/li06-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/li06-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/li07-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/li07-out.nq7
-rw-r--r--test/jsonld/1.1/toRdf/li08-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/li08-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/li09-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/li09-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/li10-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/li10-out.nq7
-rw-r--r--test/jsonld/1.1/toRdf/li11-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/li11-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/li12-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/li12-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/li13-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/li13-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/li14-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/li14-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/m001-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/m001-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/m002-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/m002-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/m003-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/m003-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/m004-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/m004-out.nq8
-rw-r--r--test/jsonld/1.1/toRdf/m005-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/m005-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/m006-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/m006-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/m007-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/m007-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/m008-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/m008-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/m009-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/m009-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/m010-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/m010-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/m011-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/m011-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/m012-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/m012-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/m013-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/m013-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/m014-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/m014-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/m015-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/m015-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/m016-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/m016-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/m017-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/m017-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/m018-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/m018-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/m019-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/m019-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/m020-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/n001-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/n001-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/n002-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/n002-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/n003-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/n003-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/n004-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/n004-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/n005-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/n005-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/n006-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/n006-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/n007-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/n007-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/n008-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/n008-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/nt01-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt02-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt03-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt04-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt05-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt06-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt07-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt08-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt09-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt10-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt11-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt12-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt13-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt14-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt15-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/nt16-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/p001-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/p001-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/p002-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/p002-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/p003-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/p003-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/p004-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/p004-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/pi01-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/pi02-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/pi03-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/pi04-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/pi05-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/pi06-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/pi06-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/pi07-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/pi07-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/pi08-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/pi08-out.nq6
-rw-r--r--test/jsonld/1.1/toRdf/pi09-in.jsonld17
-rw-r--r--test/jsonld/1.1/toRdf/pi09-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/pi10-in.jsonld17
-rw-r--r--test/jsonld/1.1/toRdf/pi10-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/pi11-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/pi11-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/pr01-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/pr02-in.jsonld20
-rw-r--r--test/jsonld/1.1/toRdf/pr02-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/pr03-in.jsonld21
-rw-r--r--test/jsonld/1.1/toRdf/pr04-in.jsonld21
-rw-r--r--test/jsonld/1.1/toRdf/pr05-in.jsonld17
-rw-r--r--test/jsonld/1.1/toRdf/pr06-in.jsonld17
-rw-r--r--test/jsonld/1.1/toRdf/pr06-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/pr08-in.jsonld38
-rw-r--r--test/jsonld/1.1/toRdf/pr09-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/pr10-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/pr10-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/pr11-in.jsonld17
-rw-r--r--test/jsonld/1.1/toRdf/pr12-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/pr13-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/pr13-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/pr14-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/pr14-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/pr15-in.jsonld20
-rw-r--r--test/jsonld/1.1/toRdf/pr15-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/pr16-in.jsonld30
-rw-r--r--test/jsonld/1.1/toRdf/pr16-out.nq5
-rw-r--r--test/jsonld/1.1/toRdf/pr17-in.jsonld22
-rw-r--r--test/jsonld/1.1/toRdf/pr18-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/pr19-in.jsonld29
-rw-r--r--test/jsonld/1.1/toRdf/pr19-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/pr20-in.jsonld24
-rw-r--r--test/jsonld/1.1/toRdf/pr21-in.jsonld20
-rw-r--r--test/jsonld/1.1/toRdf/pr22-in.jsonld17
-rw-r--r--test/jsonld/1.1/toRdf/pr22-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/pr23-in.jsonld15
-rw-r--r--test/jsonld/1.1/toRdf/pr23-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/pr24-in.jsonld12
-rw-r--r--test/jsonld/1.1/toRdf/pr24-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/pr25-in.jsonld141
-rw-r--r--test/jsonld/1.1/toRdf/pr25-out.nq7
-rw-r--r--test/jsonld/1.1/toRdf/pr26-in.jsonld136
-rw-r--r--test/jsonld/1.1/toRdf/pr27-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/pr27-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/pr28-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/pr29-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/pr29-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/pr30-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/pr30-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/pr31-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/pr32-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/pr33-in.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/pr34-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/pr34-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/pr35-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/pr35-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/pr36-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/pr36-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/pr37-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/pr37-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/pr38-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/pr38-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/pr39-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/pr39-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/pr40-in.jsonld17
-rw-r--r--test/jsonld/1.1/toRdf/pr40-out.nq2
-rw-r--r--test/jsonld/1.1/toRdf/rt01-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/rt01-out.nq4
-rw-r--r--test/jsonld/1.1/toRdf/so01-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/so02-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/so03-in.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/so05-context.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/so05-in.jsonld14
-rw-r--r--test/jsonld/1.1/toRdf/so05-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/so06-context.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/so06-in.jsonld13
-rw-r--r--test/jsonld/1.1/toRdf/so06-out.nq3
-rw-r--r--test/jsonld/1.1/toRdf/so07-context.jsonld10
-rw-r--r--test/jsonld/1.1/toRdf/so07-in.jsonld16
-rw-r--r--test/jsonld/1.1/toRdf/so08-context.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/so08-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/so08-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/so09-context.jsonld6
-rw-r--r--test/jsonld/1.1/toRdf/so09-in.jsonld8
-rw-r--r--test/jsonld/1.1/toRdf/so09-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/so10-context.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/so10-in.jsonld11
-rw-r--r--test/jsonld/1.1/toRdf/so11-context.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/so11-in.jsonld9
-rw-r--r--test/jsonld/1.1/toRdf/so11-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/so12-in.jsonld5
-rw-r--r--test/jsonld/1.1/toRdf/so13-context.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/so13-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/tn01-in.jsonld18
-rw-r--r--test/jsonld/1.1/toRdf/tn02-in.jsonld19
-rw-r--r--test/jsonld/1.1/toRdf/tn02-out.nq9
-rw-r--r--test/jsonld/1.1/toRdf/wf01-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/wf01-out.nq0
-rw-r--r--test/jsonld/1.1/toRdf/wf02-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/wf02-out.nq0
-rw-r--r--test/jsonld/1.1/toRdf/wf03-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/wf03-out.nq0
-rw-r--r--test/jsonld/1.1/toRdf/wf04-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/wf04-out.nq1
-rw-r--r--test/jsonld/1.1/toRdf/wf05-in.jsonld4
-rw-r--r--test/jsonld/1.1/toRdf/wf05-out.nq0
-rw-r--r--test/jsonld/1.1/toRdf/wf07-in.jsonld7
-rw-r--r--test/jsonld/1.1/toRdf/wf07-out.nq0
-rw-r--r--test/jsonld/1.1/vocab.jsonld332
-rw-r--r--test/jsonld/1.1/vocab.ttl343
-rw-r--r--test/jsonld/1.1/vocab_context.jsonld16
-rw-r--r--test/jsonld/README.md9
-rw-r--r--test/jsonld/__init__.py8
-rw-r--r--test/jsonld/local-suite/manifest.jsonld24
-rw-r--r--test/jsonld/local-suite/sample-urn-in.jsonld12
-rw-r--r--test/jsonld/local-suite/sample-urn-out.nq3
-rw-r--r--test/jsonld/local-suite/toRdf-twoidnodes-in.jsonld10
-rw-r--r--test/jsonld/local-suite/toRdf-twoidnodes-out.nq1
-rw-r--r--test/jsonld/runner.py144
-rw-r--r--test/jsonld/test-suite/README62
-rw-r--r--test/jsonld/test-suite/context.jsonld32
-rw-r--r--test/jsonld/test-suite/manifest.jsonld18
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0001-in.nq5
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0001-out.jsonld12
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0002-in.nq5
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0002-out.jsonld27
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0003-in.nq6
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0003-out.jsonld19
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0004-in.nq10
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0004-out.jsonld18
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0005-in.nq9
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0005-out.jsonld20
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0006-in.nq14
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0006-out.jsonld34
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0007-in.nq5
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0007-out.jsonld27
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0008-in.nq28
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0008-out.jsonld50
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0009-in.nq7
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0009-out.jsonld18
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0010-in.nq6
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0010-out.jsonld20
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0011-in.nq8
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0011-out.jsonld25
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0012-in.nq7
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0012-out.jsonld21
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0013-in.nq8
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0013-out.jsonld27
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0014-in.nq10
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0014-out.jsonld19
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0015-in.nq3
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0015-out.jsonld11
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0016-in.nq11
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0016-out.jsonld20
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0017-in.nq9
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0017-out.jsonld14
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0018-in.nq5
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0018-out.jsonld12
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0019-in.nq5
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-0019-out.jsonld14
-rw-r--r--test/jsonld/test-suite/tests/fromRdf-manifest.jsonld150
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0001-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0001-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0002-in.jsonld5
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0002-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0003-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0003-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0004-in.jsonld6
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0004-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0005-in.jsonld6
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0005-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0006-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0006-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0007-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0007-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0008-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0008-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0009-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0009-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0010-in.jsonld8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0010-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0011-in.jsonld9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0011-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0012-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0012-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0013-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0013-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0014-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0014-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0015-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0015-out.nq5
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0016-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0016-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0017-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0017-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0018-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0018-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0019-in.jsonld8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0019-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0020-in.jsonld8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0020-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0022-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0022-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0023-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0023-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0024-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0024-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0025-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0025-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0026-in.jsonld4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0026-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0027-in.jsonld30
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0027-out.nq8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0028-in.jsonld19
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0028-out.nq6
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0029-in.jsonld18
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0029-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0030-in.jsonld28
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0030-out.nq7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0031-in.jsonld15
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0031-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0032-in.jsonld16
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0032-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0033-in.jsonld19
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0033-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0034-in.jsonld16
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0034-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0035-in.jsonld14
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0035-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0036-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0036-out.nq6
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0041-in.jsonld1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0041-out.nq0
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0042-in.jsonld18
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0042-out.nq7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0043-in.jsonld12
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0043-out.nq0
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0044-in.jsonld21
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0044-out.nq11
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0045-in.jsonld23
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0045-out.nq6
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0046-in.jsonld20
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0046-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0047-in.jsonld18
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0047-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0048-in.jsonld9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0048-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0049-in.jsonld43
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0049-out.nq9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0050-in.jsonld11
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0050-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0051-in.jsonld13
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0051-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0052-in.jsonld39
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0052-out.nq9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0053-in.jsonld9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0053-out.nq7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0054-in.jsonld50
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0054-out.nq6
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0055-in.jsonld14
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0055-out.nq6
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0056-in.jsonld30
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0056-out.nq9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0057-in.jsonld45
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0057-out.nq9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0058-in.jsonld24
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0058-out.nq9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0059-in.jsonld6
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0059-out.nq0
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0060-in.jsonld51
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0060-out.nq11
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0061-in.jsonld56
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0061-out.nq13
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0062-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0062-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0063-in.jsonld21
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0063-out.nq16
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0064-in.jsonld14
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0064-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0065-in.jsonld9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0065-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0066-in.jsonld20
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0066-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0067-in.jsonld9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0067-out.nq12
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0068-in.jsonld13
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0068-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0069-in.jsonld32
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0069-out.nq34
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0070-in.jsonld14
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0070-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0071-in.jsonld13
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0071-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0072-in.jsonld11
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0072-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0073-in.jsonld14
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0073-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0074-in.jsonld16
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0074-out.nq5
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0075-in.jsonld18
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0075-out.nq5
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0076-in.jsonld90
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0076-out.nq25
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0077-in.jsonld13
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0077-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0078-in.jsonld38
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0078-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0079-in.jsonld14
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0079-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0080-in.jsonld23
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0080-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0081-in.jsonld14
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0081-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0082-in.jsonld12
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0082-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0083-in.jsonld20
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0083-out.nq5
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0084-in.jsonld16
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0084-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0085-in.jsonld3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0085-out.nq0
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0086-in.jsonld14
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0086-out.nq0
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0087-in.jsonld28
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0087-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0088-in.jsonld19
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0088-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0089-in.jsonld12
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0089-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0090-in.jsonld8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0090-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0091-in.jsonld8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0091-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0092-in.jsonld8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0092-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0093-in.jsonld6
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0093-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0094-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0094-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0095-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0095-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0096-in.jsonld13
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0096-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0097-in.jsonld6
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0097-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0098-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0098-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0099-in.jsonld16
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0099-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0100-in.jsonld30
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0100-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0101-in.jsonld9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0101-out.nq4
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0102-in.jsonld35
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0102-out.nq38
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0103-in.jsonld18
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0103-out.nq5
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0104-in.jsonld16
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0104-out.nq5
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0105-in.jsonld18
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0105-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0106-in.jsonld19
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0106-out.nq5
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0107-in.jsonld8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0107-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0108-in.jsonld8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0108-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0109-in.jsonld9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0109-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0110-in.jsonld9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0110-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0111-in.jsonld15
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0111-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0112-in.jsonld13
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0112-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0113-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0113-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0114-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0114-out.nq1
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0115-in.jsonld20
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0115-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0116-in.jsonld8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0116-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0117-in.jsonld7
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0117-out.nq2
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0118-in.jsonld38
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0118-out.nq9
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0119-in.jsonld8
-rw-r--r--test/jsonld/test-suite/tests/toRdf-0119-out.nq3
-rw-r--r--test/jsonld/test-suite/tests/toRdf-manifest.jsonld812
-rw-r--r--test/jsonld/test-suite/vocab.jsonld231
-rw-r--r--test/jsonld/test-suite/vocab_context.jsonld15
-rw-r--r--test/jsonld/test_api.py32
-rw-r--r--test/jsonld/test_compaction.py257
-rw-r--r--test/jsonld/test_context.py212
-rw-r--r--test/jsonld/test_localsuite.py36
-rw-r--r--test/jsonld/test_named_graphs.py66
-rw-r--r--test/jsonld/test_onedotone.py169
-rw-r--r--test/jsonld/test_testsuite.py168
2870 files changed, 44112 insertions, 0 deletions
diff --git a/test/jsonld/1.1/compact-manifest.jsonld b/test/jsonld/1.1/compact-manifest.jsonld
new file mode 100644
index 00000000..6dc7cb47
--- /dev/null
+++ b/test/jsonld/1.1/compact-manifest.jsonld
@@ -0,0 +1,2134 @@
+{
+ "@context": ["context.jsonld", {"@base": "compact-manifest"}],
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "Compaction",
+ "description": "These tests implement the requirements for the JSON-LD [Compaction Algorithm](https://www.w3.org/TR/json-ld11-api/#compaction-algorithm).",
+ "baseIri": "https://w3c.github.io/json-ld-api/tests/",
+ "sequence": [
+ {
+ "@id": "#t0001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "drop free-floating nodes",
+ "purpose": "Unreferenced nodes not containing properties are dropped",
+ "input": "compact/0001-in.jsonld",
+ "context": "compact/0001-context.jsonld",
+ "expect": "compact/0001-out.jsonld"
+ }, {
+ "@id": "#t0002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "basic",
+ "purpose": "Basic term and value compaction",
+ "input": "compact/0002-in.jsonld",
+ "context": "compact/0002-context.jsonld",
+ "expect": "compact/0002-out.jsonld"
+ }, {
+ "@id": "#t0003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "drop null and unmapped properties",
+ "purpose": "Properties mapped to null or which are never mapped are dropped",
+ "input": "compact/0003-in.jsonld",
+ "context": "compact/0003-context.jsonld",
+ "expect": "compact/0003-out.jsonld"
+ }, {
+ "@id": "#t0004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "optimize @set, keep empty arrays",
+ "purpose": "Containers mapped to @set keep empty arrays",
+ "input": "compact/0004-in.jsonld",
+ "context": "compact/0004-context.jsonld",
+ "expect": "compact/0004-out.jsonld"
+ }, {
+ "@id": "#t0005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@type and prefix compaction",
+ "purpose": "Compact uses prefixes in @type",
+ "input": "compact/0005-in.jsonld",
+ "context": "compact/0005-context.jsonld",
+ "expect": "compact/0005-out.jsonld"
+ }, {
+ "@id": "#t0006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "keep expanded object format if @type doesn't match",
+ "purpose": "Values not matching a coerced @type remain in expanded form",
+ "input": "compact/0006-in.jsonld",
+ "context": "compact/0006-context.jsonld",
+ "expect": "compact/0006-out.jsonld"
+ }, {
+ "@id": "#t0007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "add context",
+ "purpose": "External context is added to the compacted document",
+ "input": "compact/0007-in.jsonld",
+ "context": "compact/0007-context.jsonld",
+ "expect": "compact/0007-out.jsonld"
+ }, {
+ "@id": "#t0008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "alias keywords",
+ "purpose": "Aliases for keywords are used in compacted document",
+ "input": "compact/0008-in.jsonld",
+ "context": "compact/0008-context.jsonld",
+ "expect": "compact/0008-out.jsonld"
+ }, {
+ "@id": "#t0009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "compact @id",
+ "purpose": "Value with @id is compacted to string if property cast to @id",
+ "input": "compact/0009-in.jsonld",
+ "context": "compact/0009-context.jsonld",
+ "expect": "compact/0009-out.jsonld"
+ }, {
+ "@id": "#t0010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "array to @graph",
+ "purpose": "An array of objects is serialized with @graph",
+ "input": "compact/0010-in.jsonld",
+ "context": "compact/0010-context.jsonld",
+ "expect": "compact/0010-out.jsonld"
+ }, {
+ "@id": "#t0011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "compact date",
+ "purpose": "Expanded value with type xsd:dateTime is represented as string with type coercion",
+ "input": "compact/0011-in.jsonld",
+ "context": "compact/0011-context.jsonld",
+ "expect": "compact/0011-out.jsonld"
+ }, {
+ "@id": "#t0012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "native types",
+ "purpose": "Native values are unmodified during compaction",
+ "input": "compact/0012-in.jsonld",
+ "context": "compact/0012-context.jsonld",
+ "expect": "compact/0012-out.jsonld"
+ }, {
+ "@id": "#t0013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@value with @language",
+ "purpose": "Values with @language remain in expanded form by default",
+ "input": "compact/0013-in.jsonld",
+ "context": "compact/0013-context.jsonld",
+ "expect": "compact/0013-out.jsonld"
+ }, {
+ "@id": "#t0014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "array to aliased @graph",
+ "purpose": "Aliasing @graph uses alias in compacted document",
+ "input": "compact/0014-in.jsonld",
+ "context": "compact/0014-context.jsonld",
+ "expect": "compact/0014-out.jsonld"
+ }, {
+ "@id": "#t0015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "best match compaction",
+ "purpose": "Property with values of different types use most appropriate term when compacting",
+ "input": "compact/0015-in.jsonld",
+ "context": "compact/0015-context.jsonld",
+ "expect": "compact/0015-out.jsonld"
+ }, {
+ "@id": "#t0016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "recursive named graphs",
+ "purpose": "Compacting a document with multiple embedded uses of @graph",
+ "input": "compact/0016-in.jsonld",
+ "context": "compact/0016-context.jsonld",
+ "expect": "compact/0016-out.jsonld"
+ }, {
+ "@id": "#t0017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "A term mapping to null removes the mapping",
+ "purpose": "Mapping a term to null causes the property and its values to be removed from the compacted document",
+ "input": "compact/0017-in.jsonld",
+ "context": "compact/0017-context.jsonld",
+ "expect": "compact/0017-out.jsonld"
+ }, {
+ "@id": "#t0018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "best matching term for lists",
+ "purpose": "Lists with values of different types use best term in compacted document",
+ "input": "compact/0018-in.jsonld",
+ "context": "compact/0018-context.jsonld",
+ "expect": "compact/0018-out.jsonld"
+ }, {
+ "@id": "#t0019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Keep duplicate values in @list and @set",
+ "purpose": "Duplicate values in @list or @set are retained in compacted document",
+ "input": "compact/0019-in.jsonld",
+ "context": "compact/0019-context.jsonld",
+ "expect": "compact/0019-out.jsonld"
+ }, {
+ "@id": "#t0020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact @id that is a property IRI when @container is @list",
+ "purpose": "A term with @container: @list is also used as the value of an @id, if appropriate",
+ "input": "compact/0020-in.jsonld",
+ "context": "compact/0020-context.jsonld",
+ "expect": "compact/0020-out.jsonld"
+ }, {
+ "@id": "#t0021",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact properties and types using @vocab",
+ "purpose": "@vocab is used to create relative properties and types if no other term matches",
+ "input": "compact/0021-in.jsonld",
+ "context": "compact/0021-context.jsonld",
+ "expect": "compact/0021-out.jsonld"
+ }, {
+ "@id": "#t0022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@list compaction of nested properties",
+ "purpose": "Compact nested properties using @list containers",
+ "input": "compact/0022-in.jsonld",
+ "context": "compact/0022-context.jsonld",
+ "expect": "compact/0022-out.jsonld"
+ }, {
+ "@id": "#t0023",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "prefer @vocab over compacted IRIs",
+ "purpose": "@vocab takes precedence over prefixes - even if the result is longer",
+ "input": "compact/0023-in.jsonld",
+ "context": "compact/0023-context.jsonld",
+ "expect": "compact/0023-out.jsonld"
+ }, {
+ "@id": "#t0024",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "most specific term matching in @list.",
+ "purpose": "The most specific term that matches all of the elements in the list, taking into account the default language, must be selected.",
+ "input": "compact/0024-in.jsonld",
+ "context": "compact/0024-context.jsonld",
+ "expect": "compact/0024-out.jsonld"
+ }, {
+ "@id": "#t0025",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Language maps",
+ "purpose": "Multiple values with different languages use language maps if property has @container: @language",
+ "input": "compact/0025-in.jsonld",
+ "context": "compact/0025-context.jsonld",
+ "expect": "compact/0025-out.jsonld"
+ }, {
+ "@id": "#t0026",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Language map term selection with complications",
+ "purpose": "Test appropriate property use given language maps with @vocab, a default language, and a competing term",
+ "input": "compact/0026-in.jsonld",
+ "context": "compact/0026-context.jsonld",
+ "expect": "compact/0026-out.jsonld"
+ }, {
+ "@id": "#t0027",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@container: @set with multiple values",
+ "purpose": "Fall back to term with @set container if term with language map is defined",
+ "input": "compact/0027-in.jsonld",
+ "context": "compact/0027-context.jsonld",
+ "expect": "compact/0027-out.jsonld"
+ }, {
+ "@id": "#t0028",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Alias keywords and use @vocab",
+ "purpose": "Combination of keyword aliases and @vocab",
+ "input": "compact/0028-in.jsonld",
+ "context": "compact/0028-context.jsonld",
+ "expect": "compact/0028-out.jsonld"
+ }, {
+ "@id": "#t0029",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Simple @index map",
+ "purpose": "Output uses index mapping if term is defined with @container: @index",
+ "input": "compact/0029-in.jsonld",
+ "context": "compact/0029-context.jsonld",
+ "expect": "compact/0029-out.jsonld"
+ }, {
+ "@id": "#t0030",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "non-matching @container: @index",
+ "purpose": "Preserve @index tags if not compacted to an index map",
+ "input": "compact/0030-in.jsonld",
+ "context": "compact/0030-context.jsonld",
+ "expect": "compact/0030-out.jsonld"
+ }, {
+ "@id": "#t0031",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact @reverse",
+ "purpose": "Compact traverses through @reverse",
+ "input": "compact/0031-in.jsonld",
+ "context": "compact/0031-context.jsonld",
+ "expect": "compact/0031-out.jsonld"
+ }, {
+ "@id": "#t0032",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact keys in reverse-maps",
+ "purpose": "Compact traverses through @reverse",
+ "input": "compact/0032-in.jsonld",
+ "context": "compact/0032-context.jsonld",
+ "expect": "compact/0032-out.jsonld"
+ }, {
+ "@id": "#t0033",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact reverse-map to reverse property",
+ "purpose": "A reverse map is replaced with a matching property defined with @reverse",
+ "input": "compact/0033-in.jsonld",
+ "context": "compact/0033-context.jsonld",
+ "expect": "compact/0033-out.jsonld"
+ }, {
+ "@id": "#t0034",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Skip property with @reverse if no match",
+ "purpose": "Do not use reverse property if no other property matches as normal property",
+ "input": "compact/0034-in.jsonld",
+ "context": "compact/0034-context.jsonld",
+ "expect": "compact/0034-out.jsonld"
+ }, {
+ "@id": "#t0035",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact @reverse node references using strings",
+ "purpose": "Compact node references to strings for reverse properties using @type: @id",
+ "input": "compact/0035-in.jsonld",
+ "context": "compact/0035-context.jsonld",
+ "expect": "compact/0035-out.jsonld"
+ }, {
+ "@id": "#t0036",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact reverse properties using index containers",
+ "purpose": "Compact using both reverse properties and index containers",
+ "input": "compact/0036-in.jsonld",
+ "context": "compact/0036-context.jsonld",
+ "expect": "compact/0036-out.jsonld"
+ }, {
+ "@id": "#t0037",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact keys in @reverse using @vocab",
+ "purpose": "Compact keys in @reverse using @vocab",
+ "input": "compact/0037-in.jsonld",
+ "context": "compact/0037-context.jsonld",
+ "expect": "compact/0037-out.jsonld"
+ }, {
+ "@id": "#t0038",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Index map round-tripping",
+ "purpose": "Complex round-tripping use case from Drupal",
+ "option": {"specVersion": "json-ld-1.0"},
+ "input": "compact/0038-in.jsonld",
+ "context": "compact/0038-context.jsonld",
+ "expect": "compact/0038-out.jsonld"
+ }, {
+ "@id": "#ta038",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Index map round-tripping",
+ "purpose": "Complex round-tripping use case from Drupal",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/0038-in.jsonld",
+ "context": "compact/0038-context.jsonld",
+ "expect": "compact/0038a-out.jsonld"
+ }, {
+ "@id": "#t0039",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@graph is array",
+ "purpose": "Value of @graph is always an array",
+ "input": "compact/0039-in.jsonld",
+ "context": "compact/0039-context.jsonld",
+ "expect": "compact/0039-out.jsonld"
+ }, {
+ "@id": "#t0040",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@list is array",
+ "purpose": "Ensure that value of @list is always an array",
+ "input": "compact/0040-in.jsonld",
+ "context": "compact/0040-context.jsonld",
+ "expect": "compact/0040-out.jsonld"
+ }, {
+ "@id": "#t0041",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "index rejects term having @list",
+ "purpose": "If an index is present, a term having an @list container is not selected",
+ "input": "compact/0041-in.jsonld",
+ "context": "compact/0041-context.jsonld",
+ "expect": "compact/0041-out.jsonld"
+ }, {
+ "@id": "#t0042",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@list keyword aliasing",
+ "purpose": "Make sure keyword aliasing works if a list can't be compacted",
+ "input": "compact/0042-in.jsonld",
+ "context": "compact/0042-context.jsonld",
+ "expect": "compact/0042-out.jsonld"
+ }, {
+ "@id": "#t0043",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "select term over @vocab",
+ "purpose": "Ensure that @vocab compaction isn't used if the result collides with a term",
+ "input": "compact/0043-in.jsonld",
+ "context": "compact/0043-context.jsonld",
+ "expect": "compact/0043-out.jsonld"
+ }, {
+ "@id": "#t0044",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@type: @vocab in reverse-map",
+ "purpose": "Prefer properties with @type: @vocab in reverse-maps if the value can be compacted to a term",
+ "input": "compact/0044-in.jsonld",
+ "context": "compact/0044-context.jsonld",
+ "expect": "compact/0044-out.jsonld"
+ }, {
+ "@id": "#t0045",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@id value uses relative IRI, not term",
+ "purpose": "Values of @id are transformed to relative IRIs, terms are ignored",
+ "input": "compact/0045-in.jsonld",
+ "context": "compact/0045-context.jsonld",
+ "expect": "compact/0045-out.jsonld"
+ }, {
+ "@id": "#t0046",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "multiple objects without @context use @graph",
+ "purpose": "Wrap top-level array into @graph even if no context is passed",
+ "input": "compact/0046-in.jsonld",
+ "context": "compact/0046-context.jsonld",
+ "expect": "compact/0046-out.jsonld"
+ }, {
+ "@id": "#t0047",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Round-trip relative URLs",
+ "purpose": "Relative URLs remain relative after compaction",
+ "input": "compact/0047-in.jsonld",
+ "context": "compact/0047-context.jsonld",
+ "expect": "compact/0047-out.jsonld"
+ }, {
+ "@id": "#t0048",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "term with @language: null",
+ "purpose": "Prefer terms with a language mapping set to null over terms without language-mapping for non-strings",
+ "input": "compact/0048-in.jsonld",
+ "context": "compact/0048-context.jsonld",
+ "expect": "compact/0048-out.jsonld"
+ }, {
+ "@id": "#t0049",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Round tripping of lists that contain just IRIs",
+ "purpose": "List compaction without @container: @list still uses strings if @type: @id",
+ "input": "compact/0049-in.jsonld",
+ "context": "compact/0049-context.jsonld",
+ "expect": "compact/0049-out.jsonld"
+ }, {
+ "@id": "#t0050",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Reverse properties require @type: @id to use string values",
+ "purpose": "Node references in reverse properties are not compacted to strings without explicit type-coercion",
+ "input": "compact/0050-in.jsonld",
+ "context": "compact/0050-context.jsonld",
+ "expect": "compact/0050-out.jsonld"
+ }, {
+ "@id": "#t0051",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Round tripping @list with scalar",
+ "purpose": "Native values survive round-tripping with @list",
+ "input": "compact/0051-in.jsonld",
+ "context": "compact/0051-context.jsonld",
+ "expect": "compact/0051-out.jsonld"
+ }, {
+ "@id": "#t0052",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Round tripping @list with scalar and @graph alias",
+ "purpose": "Native values survive round-tripping with @list and @graph alias",
+ "input": "compact/0052-in.jsonld",
+ "context": "compact/0052-context.jsonld",
+ "expect": "compact/0052-out.jsonld"
+ }, {
+ "@id": "#t0053",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Use @type: @vocab if no @type: @id",
+ "purpose": "Compact to @type: @vocab when no @type: @id term available",
+ "input": "compact/0053-in.jsonld",
+ "context": "compact/0053-context.jsonld",
+ "expect": "compact/0053-out.jsonld"
+ }, {
+ "@id": "#t0054",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact to @type: @vocab and compact @id to term",
+ "purpose": "Compact to @type: @vocab and compact @id to term",
+ "input": "compact/0054-in.jsonld",
+ "context": "compact/0054-context.jsonld",
+ "expect": "compact/0054-out.jsonld"
+ }, {
+ "@id": "#t0055",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Round tripping @type: @vocab",
+ "purpose": "Compacting IRI value of property with @type: @vocab can use term",
+ "input": "compact/0055-in.jsonld",
+ "context": "compact/0055-context.jsonld",
+ "expect": "compact/0055-out.jsonld"
+ }, {
+ "@id": "#t0056",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Prefer @type: @vocab over @type: @id for terms",
+ "purpose": "Compacting IRI value of property with @type: @vocab can use term",
+ "input": "compact/0056-in.jsonld",
+ "context": "compact/0056-context.jsonld",
+ "expect": "compact/0056-out.jsonld"
+ }, {
+ "@id": "#t0057",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Complex round tripping @type: @vocab and @type: @id",
+ "purpose": "Compacting IRI value of property with @type: @vocab can use term; more complex",
+ "input": "compact/0057-in.jsonld",
+ "context": "compact/0057-context.jsonld",
+ "expect": "compact/0057-out.jsonld"
+ }, {
+ "@id": "#t0058",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Prefer @type: @id over @type: @vocab for non-terms",
+ "purpose": "Choose a term having @type: @id over @type: @value if value is not a term",
+ "input": "compact/0058-in.jsonld",
+ "context": "compact/0058-context.jsonld",
+ "expect": "compact/0058-out.jsonld"
+ }, {
+ "@id": "#t0059",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Term with @type: @vocab if no @type: @id",
+ "purpose": "If there's no term with @type: @id, use terms with @type: @vocab for IRIs not mapped to terms",
+ "input": "compact/0059-in.jsonld",
+ "context": "compact/0059-context.jsonld",
+ "expect": "compact/0059-out.jsonld"
+ }, {
+ "@id": "#t0060",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Term with @type: @id if no @type: @vocab and term value",
+ "purpose": "If there's no term with @type: @vocab, use terms with @type: @id for IRIs mapped to terms",
+ "input": "compact/0060-in.jsonld",
+ "context": "compact/0060-context.jsonld",
+ "expect": "compact/0060-out.jsonld"
+ }, {
+ "@id": "#t0061",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@type: @vocab/@id with values matching either",
+ "purpose": "Separate IRIs for the same property to use term with more specific @type (@id vs. @vocab)",
+ "input": "compact/0061-in.jsonld",
+ "context": "compact/0061-context.jsonld",
+ "expect": "compact/0061-out.jsonld"
+ }, {
+ "@id": "#t0062",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@type: @vocab and relative IRIs",
+ "purpose": "Relative IRIs don't round-trip with @type: @vocab",
+ "input": "compact/0062-in.jsonld",
+ "context": "compact/0062-context.jsonld",
+ "expect": "compact/0062-out.jsonld"
+ }, {
+ "@id": "#t0063",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact IRI round-tripping with @type: @vocab",
+ "purpose": "Term with @type: @vocab will use compact IRIs",
+ "input": "compact/0063-in.jsonld",
+ "context": "compact/0063-context.jsonld",
+ "expect": "compact/0063-out.jsonld"
+ }, {
+ "@id": "#t0064",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact language-tagged and indexed strings to index-map",
+ "purpose": "Given values with both @index and @language and term index-map term, use index map",
+ "input": "compact/0064-in.jsonld",
+ "context": "compact/0064-context.jsonld",
+ "expect": "compact/0064-out.jsonld"
+ }, {
+ "@id": "#t0065",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Language-tagged and indexed strings with language-map",
+ "purpose": "Language-tagged and indexed strings don't compact to language-map",
+ "input": "compact/0065-in.jsonld",
+ "context": "compact/0065-context.jsonld",
+ "expect": "compact/0065-out.jsonld"
+ }, {
+ "@id": "#t0066",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Relative IRIs",
+ "purpose": "Complex use cases for relative IRI compaction",
+ "input": "compact/0066-in.jsonld",
+ "context": "compact/0066-context.jsonld",
+ "expect": "compact/0066-out.jsonld"
+ }, {
+ "@id": "#t0067",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Reverse properties with blank nodes",
+ "purpose": "Compact reverse property whose values are unlabeled blank nodes",
+ "input": "compact/0067-in.jsonld",
+ "context": "compact/0067-context.jsonld",
+ "expect": "compact/0067-out.jsonld"
+ }, {
+ "@id": "#t0068",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Single value reverse properties",
+ "purpose": "Single values of reverse properties are compacted as values of ordinary properties",
+ "input": "compact/0068-in.jsonld",
+ "context": "compact/0068-context.jsonld",
+ "expect": "compact/0068-out.jsonld"
+ }, {
+ "@id": "#t0069",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Single value reverse properties with @set",
+ "purpose": "Single values are kept in array form for reverse properties if the container is to @set",
+ "input": "compact/0069-in.jsonld",
+ "context": "compact/0069-context.jsonld",
+ "expect": "compact/0069-out.jsonld"
+ }, {
+ "@id": "#t0070",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "compactArrays option",
+ "purpose": "Setting compactArrays to false causes single element arrays to be retained",
+ "option": {
+ "compactArrays": false
+ },
+ "input": "compact/0070-in.jsonld",
+ "context": "compact/0070-context.jsonld",
+ "expect": "compact/0070-out.jsonld"
+ }, {
+ "@id": "#t0071",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Input has multiple @contexts, output has one",
+ "purpose": "Expanding input with multiple @contexts and compacting with just one doesn't output undefined properties",
+ "input": "compact/0071-in.jsonld",
+ "context": "compact/0071-context.jsonld",
+ "expect": "compact/0071-out.jsonld"
+ }, {
+ "@id": "#t0072",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Default language and unmapped properties",
+ "purpose": "Ensure that the default language is handled correctly for unmapped properties",
+ "input": "compact/0072-in.jsonld",
+ "context": "compact/0072-context.jsonld",
+ "expect": "compact/0072-out.jsonld"
+ }, {
+ "@id": "#t0073",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Mapped @id and @type",
+ "purpose": "Ensure that compaction works with mapped @id and @type",
+ "input": "compact/0073-in.jsonld",
+ "context": "compact/0073-context.jsonld",
+ "expect": "compact/0073-out.jsonld"
+ }, {
+ "@id": "#t0074",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Container as a list with type of @id",
+ "purpose": "Ensure that compaction works for empty list when property has container declared as @list and type as @id",
+ "input": "compact/0074-in.jsonld",
+ "context": "compact/0074-context.jsonld",
+ "expect": "compact/0074-out.jsonld"
+ }, {
+ "@id": "#t0075",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact using relative fragment identifier",
+ "purpose": "Compacting a relative round-trips",
+ "option": {"processingMode": "json-ld-1.0", "base": "http://example.org/"},
+ "input": "compact/0075-in.jsonld",
+ "context": "compact/0075-context.jsonld",
+ "expect": "compact/0075-out.jsonld"
+ }, {
+ "@id": "#t0076",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compacting IRI equivalent to base",
+ "purpose": "Compacting IRI equivalent to base, uses last path segment of base ending in '/'",
+ "input": "compact/0076-in.jsonld",
+ "context": "compact/0076-context.jsonld",
+ "expect": "compact/0076-out.jsonld"
+ }, {
+ "@id": "#t0077",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact a @graph container",
+ "purpose": "Compact a @graph container",
+ "input": "compact/0077-in.jsonld",
+ "context": "compact/0077-context.jsonld",
+ "expect": "compact/0077-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0078",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact a [@graph, @set] container",
+ "purpose": "Compact with [@graph, @set]",
+ "input": "compact/0078-in.jsonld",
+ "context": "compact/0078-context.jsonld",
+ "expect": "compact/0078-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0079",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact a @graph container having @index",
+ "purpose": "Verify that having both @graph and @index allows @graph container compaction",
+ "input": "compact/0079-in.jsonld",
+ "context": "compact/0079-context.jsonld",
+ "expect": "compact/0079-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0080",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Do not compact a graph having @id with a term having an @graph container",
+ "purpose": "Graph compaction works only on simple graphs",
+ "input": "compact/0080-in.jsonld",
+ "context": "compact/0080-context.jsonld",
+ "expect": "compact/0080-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0081",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact a [@graph, @index] container",
+ "purpose": "Compact a @graph container with @index",
+ "input": "compact/0081-in.jsonld",
+ "context": "compact/0081-context.jsonld",
+ "expect": "compact/0081-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0082",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact a [@graph, @index, @set] container",
+ "purpose": "Compact a @graph container with @index and @set",
+ "input": "compact/0082-in.jsonld",
+ "context": "compact/0082-context.jsonld",
+ "expect": "compact/0082-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0083",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "[@graph, @index] does not compact graph with @id",
+ "purpose": "Graph compaction with @graph and @index works only on simple graphs",
+ "input": "compact/0083-in.jsonld",
+ "context": "compact/0083-context.jsonld",
+ "expect": "compact/0083-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0084",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact a simple graph with a [@graph, @id] container",
+ "purpose": "Compact a simple graph using a @graph container with @id",
+ "input": "compact/0084-in.jsonld",
+ "context": "compact/0084-context.jsonld",
+ "expect": "compact/0084-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0085",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact a named graph with a [@graph, @id] container",
+ "purpose": "Compact a named graph using a @graph container with @id",
+ "input": "compact/0085-in.jsonld",
+ "context": "compact/0085-context.jsonld",
+ "expect": "compact/0085-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0086",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact a simple graph with a [@graph, @id, @set] container",
+ "purpose": "Compact a simple graph using a @graph container with @id and @set",
+ "input": "compact/0086-in.jsonld",
+ "context": "compact/0086-context.jsonld",
+ "expect": "compact/0086-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0087",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact a named graph with a [@graph, @id, @set] container",
+ "purpose": "Compact a named graph using a @graph container with @id and @set",
+ "input": "compact/0087-in.jsonld",
+ "context": "compact/0087-context.jsonld",
+ "expect": "compact/0087-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0088",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact a graph with @index using a [@graph, @id] container",
+ "purpose": "Compact a @graph container with @id and @set, discarding an @index value",
+ "input": "compact/0088-in.jsonld",
+ "context": "compact/0088-context.jsonld",
+ "expect": "compact/0088-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0089",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Language map term selection with complications",
+ "purpose": "Test appropriate property use given language maps with @vocab, a default language, no language, and competing terms",
+ "input": "compact/0089-in.jsonld",
+ "context": "compact/0089-context.jsonld",
+ "expect": "compact/0089-out.jsonld"
+ }, {
+ "@id": "#t0090",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact input with @graph container to output without @graph container",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0090-in.jsonld",
+ "context": "compact/0090-context.jsonld",
+ "expect": "compact/0090-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0091",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact input with @graph container to output without @graph container with compactArrays unset",
+ "purpose": "Ensure @graph appears properly in output with compactArrays unset",
+ "input": "compact/0091-in.jsonld",
+ "context": "compact/0091-context.jsonld",
+ "expect": "compact/0091-out.jsonld",
+ "option": {"compactArrays": false, "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0092",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact input with [@graph, @set] container to output without [@graph, @set] container",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0092-in.jsonld",
+ "context": "compact/0092-context.jsonld",
+ "expect": "compact/0092-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0093",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact input with [@graph, @set] container to output without [@graph, @set] container with compactArrays unset",
+ "purpose": "Ensure @graph appears properly in output with compactArrays unset",
+ "input": "compact/0093-in.jsonld",
+ "context": "compact/0093-context.jsonld",
+ "expect": "compact/0093-out.jsonld",
+ "option": {"compactArrays": false, "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0094",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact input with [@graph, @set] container to output without [@graph, @set] container",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0094-in.jsonld",
+ "context": "compact/0094-context.jsonld",
+ "expect": "compact/0094-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0095",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Relative propererty IRIs with @vocab: ''",
+ "purpose": "Complex use cases for relative IRI compaction or properties",
+ "input": "compact/0095-in.jsonld",
+ "context": "compact/0095-context.jsonld",
+ "expect": "compact/0095-out.jsonld"
+ }, {
+ "@id": "#t0096",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact @graph container (multiple graphs)",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0096-in.jsonld",
+ "context": "compact/0096-context.jsonld",
+ "expect": "compact/0096-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0097",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact [@graph, @set] container (multiple graphs)",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0097-in.jsonld",
+ "context": "compact/0097-context.jsonld",
+ "expect": "compact/0097-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0098",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact [@graph, @index] container (multiple indexed objects)",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0098-in.jsonld",
+ "context": "compact/0098-context.jsonld",
+ "expect": "compact/0098-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0099",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact [@graph, @index, @set] container (multiple indexed objects)",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0099-in.jsonld",
+ "context": "compact/0099-context.jsonld",
+ "expect": "compact/0099-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0100",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact [@graph, @id] container (multiple indexed objects)",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0100-in.jsonld",
+ "context": "compact/0100-context.jsonld",
+ "expect": "compact/0100-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0101",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact [@graph, @id, @set] container (multiple indexed objects)",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0101-in.jsonld",
+ "context": "compact/0101-context.jsonld",
+ "expect": "compact/0101-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0102",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact [@graph, @index] container (multiple indexes and objects)",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0102-in.jsonld",
+ "context": "compact/0102-context.jsonld",
+ "expect": "compact/0102-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0103",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact [@graph, @id] container (multiple ids and objects)",
+ "purpose": "Ensure @graph appears properly in output",
+ "input": "compact/0103-in.jsonld",
+ "context": "compact/0103-context.jsonld",
+ "expect": "compact/0103-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0104",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact @type with @container: @set",
+ "purpose": "Ensures that a single @type value is represented as an array",
+ "input": "compact/0104-in.jsonld",
+ "context": "compact/0104-context.jsonld",
+ "expect": "compact/0104-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0105",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact @type with @container: @set using an alias of @type",
+ "purpose": "Ensures that a single @type value is represented as an array",
+ "input": "compact/0105-in.jsonld",
+ "context": "compact/0105-context.jsonld",
+ "expect": "compact/0105-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0106",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Do not compact @type with @container: @set to an array using an alias of @type",
+ "purpose": "Ensures that a single @type value is not represented as an array in 1.0",
+ "input": "compact/0106-in.jsonld",
+ "context": "compact/0106-context.jsonld",
+ "expect": "compact/0106-out.jsonld",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0107",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Relative propererty IRIs with @vocab: ''",
+ "purpose": "Complex use cases for relative IRI compaction or properties",
+ "input": "compact/0107-in.jsonld",
+ "context": "compact/0107-context.jsonld",
+ "expect": "compact/0107-out.jsonld"
+ }, {
+ "@id": "#t0108",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Relative propererty IRIs with @vocab: ''",
+ "purpose": "Complex use cases for relative IRI compaction or properties",
+ "name": "context with JavaScript Object property names",
+ "purpose": "Compact with context including JavaScript Object property names",
+ "input": "compact/0108-in.jsonld",
+ "context": "compact/0108-context.jsonld",
+ "expect": "compact/0108-out.jsonld"
+ }, {
+ "@id": "#t0109",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact @graph container (multiple objects)",
+ "purpose": "Multiple objects in a simple graph with a graph container need to use @included",
+ "input": "compact/0109-in.jsonld",
+ "context": "compact/0109-context.jsonld",
+ "expect": "compact/0109-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0110",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact [@graph, @set] container (multiple objects)",
+ "purpose": "Multiple objects in a simple graph with a graph container need to use @included",
+ "input": "compact/0110-in.jsonld",
+ "context": "compact/0110-context.jsonld",
+ "expect": "compact/0110-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0111",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Keyword-like relative IRIs",
+ "purpose": "Relative IRIs must not have the form a of keyword",
+ "input": "compact/0111-in.jsonld",
+ "context": "compact/0111-context.jsonld",
+ "expect": "compact/0111-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0113",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact property index using Absolute IRI index",
+ "purpose": "With @container: @index and @index an absolute IRI, ensure round-tripping of compacted representation",
+ "input": "compact/0113-in.jsonld",
+ "context": "compact/0113-context.jsonld",
+ "expect": "compact/0113-out.jsonld"
+ }, {
+ "@id": "#t0112",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact property index using Compact IRI index",
+ "purpose": "With @container: @index and @index a compact IRI, ensure round-tripping of compacted representation",
+ "input": "compact/0112-in.jsonld",
+ "context": "compact/0112-context.jsonld",
+ "expect": "compact/0112-out.jsonld"
+ }, {
+ "@id": "#tc001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "adding new term",
+ "purpose": "Compaction using a scoped context uses term scope for selecting proper term",
+ "input": "compact/c001-in.jsonld",
+ "context": "compact/c001-context.jsonld",
+ "expect": "compact/c001-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "overriding a term",
+ "purpose": "Compaction using a scoped context uses term scope for selecting proper term",
+ "input": "compact/c002-in.jsonld",
+ "context": "compact/c002-context.jsonld",
+ "expect": "compact/c002-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "property and value with different terms mapping to the same expanded property",
+ "purpose": "Compaction using a scoped context uses term scope for selecting proper term",
+ "input": "compact/c003-in.jsonld",
+ "context": "compact/c003-context.jsonld",
+ "expect": "compact/c003-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "deep @context affects nested nodes",
+ "purpose": "Compaction using a scoped context uses term scope for selecting proper term",
+ "input": "compact/c004-in.jsonld",
+ "context": "compact/c004-context.jsonld",
+ "expect": "compact/c004-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "scoped context layers on intemediate contexts",
+ "purpose": "Compaction using a scoped context uses term scope for selecting proper term",
+ "input": "compact/c005-in.jsonld",
+ "context": "compact/c005-context.jsonld",
+ "expect": "compact/c005-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "adding new term",
+ "purpose": "scoped context on @type",
+ "input": "compact/c006-in.jsonld",
+ "context": "compact/c006-context.jsonld",
+ "expect": "compact/c006-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "overriding a term",
+ "purpose": "scoped context on @type",
+ "input": "compact/c007-in.jsonld",
+ "context": "compact/c007-context.jsonld",
+ "expect": "compact/c007-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "alias of @type",
+ "purpose": "scoped context on @type",
+ "input": "compact/c008-in.jsonld",
+ "context": "compact/c008-context.jsonld",
+ "expect": "compact/c008-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "deep @type-scoped @context does NOT affect nested nodes",
+ "purpose": "scoped context on @type",
+ "input": "compact/c009-in.jsonld",
+ "context": "compact/c009-context.jsonld",
+ "expect": "compact/c009-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "scoped context layers on intemediate contexts",
+ "purpose": "scoped context on @type",
+ "input": "compact/c010-in.jsonld",
+ "context": "compact/c010-context.jsonld",
+ "expect": "compact/c010-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "applies context for all values",
+ "purpose": "scoped context on @type",
+ "input": "compact/c011-in.jsonld",
+ "context": "compact/c011-context.jsonld",
+ "expect": "compact/c011-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "orders @type terms when applying scoped contexts",
+ "purpose": "scoped context on @type",
+ "input": "compact/c012-in.jsonld",
+ "context": "compact/c012-context.jsonld",
+ "expect": "compact/c012-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "deep property-term scoped @context in @type-scoped @context affects nested nodes",
+ "purpose": "scoped context on @type",
+ "input": "compact/c013-in.jsonld",
+ "context": "compact/c013-context.jsonld",
+ "expect": "compact/c013-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type-scoped context nullification",
+ "purpose": "Nullifying a type-scoped context continues to use the previous context when compacting @type.",
+ "input": "compact/c014-in.jsonld",
+ "context": "compact/c014-context.jsonld",
+ "expect": "compact/c014-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type-scoped base",
+ "purpose": "type-scoped base",
+ "input": "compact/c015-in.jsonld",
+ "context": "compact/c015-context.jsonld",
+ "expect": "compact/c015-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type-scoped vocab",
+ "purpose": "type-scoped vocab",
+ "input": "compact/c016-in.jsonld",
+ "context": "compact/c016-context.jsonld",
+ "expect": "compact/c016-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "multiple type-scoped contexts are properly reverted",
+ "purpose": "multiple type-scoped contexts are property reverted",
+ "input": "compact/c017-in.jsonld",
+ "context": "compact/c017-context.jsonld",
+ "expect": "compact/c017-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "multiple type-scoped types resolved against previous context",
+ "purpose": "multiple type-scoped types resolved against previous context",
+ "input": "compact/c018-in.jsonld",
+ "context": "compact/c018-context.jsonld",
+ "expect": "compact/c018-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type-scoped context with multiple property scoped terms",
+ "purpose": "type-scoped context with multiple property scoped terms",
+ "input": "compact/c019-in.jsonld",
+ "context": "compact/c019-context.jsonld",
+ "expect": "compact/c019-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type-scoped value",
+ "purpose": "type-scoped value",
+ "input": "compact/c020-in.jsonld",
+ "context": "compact/c020-context.jsonld",
+ "expect": "compact/c020-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc021",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type-scoped value mix",
+ "purpose": "type-scoped value mix",
+ "input": "compact/c021-in.jsonld",
+ "context": "compact/c021-context.jsonld",
+ "expect": "compact/c021-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type-scoped property-scoped contexts including @type:@vocab",
+ "purpose": "type-scoped property-scoped contexts including @type:@vocab",
+ "input": "compact/c022-in.jsonld",
+ "context": "compact/c022-context.jsonld",
+ "expect": "compact/c022-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc023",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "composed type-scoped property-scoped contexts including @type:@vocab",
+ "purpose": "composed type-scoped property-scoped contexts including @type:@vocab",
+ "input": "compact/c023-in.jsonld",
+ "context": "compact/c023-context.jsonld",
+ "expect": "compact/c023-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc024",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type-scoped + property-scoped + values evaluates against previous context",
+ "purpose": "type-scoped + property-scoped + values evaluates against previous context",
+ "input": "compact/c024-in.jsonld",
+ "context": "compact/c024-context.jsonld",
+ "expect": "compact/c024-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc025",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type-scoped + graph container",
+ "purpose": "type-scoped + graph container",
+ "input": "compact/c025-in.jsonld",
+ "context": "compact/c025-context.jsonld",
+ "expect": "compact/c025-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc026",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@propagate: true on type-scoped context",
+ "purpose": "type-scoped context with @propagate: true survive node-objects",
+ "input": "compact/c026-in.jsonld",
+ "context": "compact/c026-context.jsonld",
+ "expect": "compact/c026-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc027",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@propagate: false on property-scoped context",
+ "purpose": "property-scoped context with @propagate: false do not survive node-objects",
+ "input": "compact/c027-in.jsonld",
+ "context": "compact/c027-context.jsonld",
+ "expect": "compact/c027-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc028",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Empty-property scoped context does not affect term selection.",
+ "purpose": "Adding a minimal/empty property-scoped context should not affect the using terms defined in outer context.",
+ "input": "compact/c028-in.jsonld",
+ "context": "compact/c028-context.jsonld",
+ "expect": "compact/c028-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tdi01",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "term direction null",
+ "purpose": "Uses term with null direction when two terms conflict on direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/di01-in.jsonld",
+ "context": "compact/di01-context.jsonld",
+ "expect": "compact/di01-out.jsonld"
+ }, {
+ "@id": "#tdi02",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "use alias of @direction",
+ "purpose": "Use alias of @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/di02-in.jsonld",
+ "context": "compact/di02-context.jsonld",
+ "expect": "compact/di02-out.jsonld"
+ }, {
+ "@id": "#tdi03",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "term selection with lists and direction",
+ "purpose": "Term selection includes values of @list.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/di03-in.jsonld",
+ "context": "compact/di03-context.jsonld",
+ "expect": "compact/di03-out.jsonld"
+ }, {
+ "@id": "#tdi04",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "simple language map with term direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/di04-in.jsonld",
+ "context": "compact/di04-context.jsonld",
+ "expect": "compact/di04-out.jsonld"
+ }, {
+ "@id": "#tdi05",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "simple language map with overriding term direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/di05-in.jsonld",
+ "context": "compact/di05-context.jsonld",
+ "expect": "compact/di05-out.jsonld"
+ }, {
+ "@id": "#tdi06",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "simple language map with overriding null direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/di06-in.jsonld",
+ "context": "compact/di06-context.jsonld",
+ "expect": "compact/di06-out.jsonld"
+ }, {
+ "@id": "#tdi07",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "simple language map with mismatching term direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/di07-in.jsonld",
+ "context": "compact/di07-context.jsonld",
+ "expect": "compact/di07-out.jsonld"
+ }, {
+ "@id": "#te001",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:CompactTest" ],
+ "name": "Compaction to list of lists",
+ "purpose": "Verifies that an exception is raised in Compaction when attempting to compact a list of lists",
+ "option": {"specVersion": "json-ld-1.0"},
+ "input": "compact/e001-in.jsonld",
+ "context": "compact/e001-context.jsonld",
+ "expectErrorCode": "compaction to list of lists"
+ }, {
+ "@id": "#te002",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:CompactTest" ],
+ "name": "Absolute IRI confused with Compact IRI",
+ "purpose": "Verifies that IRI compaction detects when the result is an absolute IRI with a scheme matching a term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/e002-in.jsonld",
+ "context": "compact/e002-context.jsonld",
+ "expectErrorCode": "IRI confused with prefix"
+ }, {
+ "@id": "#ten01",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:CompactTest" ],
+ "name": "Nest term not defined",
+ "purpose": "Transparent Nesting",
+ "input": "compact/en01-in.jsonld",
+ "context": "compact/en01-context.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tep05",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "processingMode json-ld-1.0 conflicts with @version: 1.1",
+ "purpose": "If processingMode is explicitly json-ld-1.0, it will conflict with 1.1 features.",
+ "input": "compact/ep05-in.jsonld",
+ "context": "compact/ep05-context.jsonld",
+ "expectErrorCode": "processing mode conflict",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tep06",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "@version must be 1.1",
+ "purpose": "If @version is specified, it must be 1.1",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/ep06-in.jsonld",
+ "context": "compact/ep06-context.jsonld",
+ "expectErrorCode": "invalid @version value"
+ }, {
+ "@id": "#tep07",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "@prefix is not allowed in 1.0",
+ "purpose": "@prefix is not allowed in a term definition 1.0",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"},
+ "input": "compact/ep07-in.jsonld",
+ "context": "compact/ep07-context.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tep08",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "@prefix must be a boolean",
+ "purpose": "@prefix must be a boolean in a term definition in 1.1",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/ep08-in.jsonld",
+ "context": "compact/ep08-context.jsonld",
+ "expectErrorCode": "invalid @prefix value"
+ }, {
+ "@id": "#tep09",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "@prefix not allowed on compact IRI term",
+ "purpose": "If processingMode is json-ld-1.0, or if term contains a colon (:), an invalid term definition has been detected and processing is aborted.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/ep09-in.jsonld",
+ "context": "compact/ep09-context.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tep10",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "@nest is not allowed in 1.0",
+ "purpose": "@nest is not allowed in a term definitionin 1.0",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"},
+ "input": "compact/ep10-in.jsonld",
+ "context": "compact/ep10-context.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tep11",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "@context is not allowed in 1.0",
+ "purpose": "@context is not allowed in a term definitionin 1.0",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"},
+ "input": "compact/ep11-in.jsonld",
+ "context": "compact/ep11-context.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tep12",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "@container may not be an array in 1.0",
+ "purpose": "validate appropriate values of @container",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"},
+ "input": "compact/ep12-in.jsonld",
+ "context": "compact/ep12-context.jsonld",
+ "expectErrorCode": "invalid container mapping"
+ }, {
+ "@id": "#tep13",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "@container may not be @id in 1.0",
+ "purpose": "validate appropriate values of @container",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"},
+ "input": "compact/ep13-in.jsonld",
+ "context": "compact/ep13-context.jsonld",
+ "expectErrorCode": "invalid container mapping"
+ }, {
+ "@id": "#tep14",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "@container may not be @type in 1.0",
+ "purpose": "validate appropriate values of @container",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"},
+ "input": "compact/ep14-in.jsonld",
+ "context": "compact/ep14-context.jsonld",
+ "expectErrorCode": "invalid container mapping"
+ }, {
+ "@id": "#tep15",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "@container may not be @graph in 1.0",
+ "purpose": "validate appropriate values of @container",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"},
+ "input": "compact/ep15-in.jsonld",
+ "context": "compact/ep15-context.jsonld",
+ "expectErrorCode": "invalid container mapping"
+ }, {
+ "@id": "#tin01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Basic Included array",
+ "purpose": "Tests included blocks.",
+ "input": "compact/in01-in.jsonld",
+ "context": "compact/in01-context.jsonld",
+ "expect": "compact/in01-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Basic Included object",
+ "purpose": "Tests included blocks.",
+ "input": "compact/in02-in.jsonld",
+ "context": "compact/in02-context.jsonld",
+ "expect": "compact/in02-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Multiple properties mapping to @included are folded together",
+ "purpose": "Tests included blocks.",
+ "input": "compact/in03-in.jsonld",
+ "context": "compact/in03-context.jsonld",
+ "expect": "compact/in03-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Included containing @included",
+ "purpose": "Tests included blocks.",
+ "input": "compact/in04-in.jsonld",
+ "context": "compact/in04-context.jsonld",
+ "expect": "compact/in04-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Property value with @included",
+ "purpose": "Tests included blocks.",
+ "input": "compact/in05-in.jsonld",
+ "context": "compact/in05-context.jsonld",
+ "expect": "compact/in05-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact JSON literal (boolean true)",
+ "purpose": "Tests compacting property with @type @json to a JSON literal (boolean true).",
+ "input": "compact/js01-in.jsonld",
+ "context": "compact/js01-context.jsonld",
+ "expect": "compact/js01-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact JSON literal (boolean false)",
+ "purpose": "Tests compacting property with @type @json to a JSON literal (boolean false).",
+ "input": "compact/js02-in.jsonld",
+ "context": "compact/js02-context.jsonld",
+ "expect": "compact/js02-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact JSON literal (double)",
+ "purpose": "Tests compacting property with @type @json to a JSON literal (double).",
+ "input": "compact/js03-in.jsonld",
+ "context": "compact/js03-context.jsonld",
+ "expect": "compact/js03-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact JSON literal (double-zero)",
+ "purpose": "Tests compacting property with @type @json to a JSON literal (double-zero).",
+ "input": "compact/js04-in.jsonld",
+ "context": "compact/js04-context.jsonld",
+ "expect": "compact/js04-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact JSON literal (integer)",
+ "purpose": "Tests compacting property with @type @json to a JSON literal (integer).",
+ "input": "compact/js05-in.jsonld",
+ "context": "compact/js05-context.jsonld",
+ "expect": "compact/js05-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact JSON literal (object)",
+ "purpose": "Tests compacting property with @type @json to a JSON literal (object).",
+ "input": "compact/js06-in.jsonld",
+ "context": "compact/js06-context.jsonld",
+ "expect": "compact/js06-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs07",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact JSON literal (array)",
+ "purpose": "Tests compacting property with @type @json to a JSON literal (array).",
+ "input": "compact/js07-in.jsonld",
+ "context": "compact/js07-context.jsonld",
+ "expect": "compact/js07-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs08",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact already expanded JSON literal",
+ "purpose": "Tests compacting JSON literal does not expand terms inside json.",
+ "input": "compact/js08-in.jsonld",
+ "context": "compact/js08-context.jsonld",
+ "expect": "compact/js08-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs09",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact already expanded JSON literal with aliased keys",
+ "purpose": "Tests compacting JSON literal in expanded form.",
+ "input": "compact/js09-in.jsonld",
+ "context": "compact/js09-context.jsonld",
+ "expect": "compact/js09-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs10",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact JSON literal (string)",
+ "purpose": "Tests compacting property with @type @json to a JSON literal (string).",
+ "input": "compact/js10-in.jsonld",
+ "context": "compact/js10-context.jsonld",
+ "expect": "compact/js10-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs11",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact JSON literal (null)",
+ "purpose": "Tests compacting property with @type @json to a JSON literal (null).",
+ "input": "compact/js11-in.jsonld",
+ "context": "compact/js11-context.jsonld",
+ "expect": "compact/js11-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tla01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "most specific term matching in @list.",
+ "purpose": "The most specific term that matches all of the elements in the list, taking into account the default language, must be selected, without considering case of language.",
+ "input": "compact/la01-in.jsonld",
+ "context": "compact/la01-context.jsonld",
+ "expect": "compact/la01-out.jsonld"
+ }, {
+ "@id": "#tli01",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "coerced @list containing an empty list",
+ "purpose": "Lists of Lists",
+ "input": "compact/li01-in.jsonld",
+ "context": "compact/li01-context.jsonld",
+ "expect": "compact/li01-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tli02",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "coerced @list containing a list",
+ "purpose": "Lists of Lists",
+ "input": "compact/li02-in.jsonld",
+ "context": "compact/li02-context.jsonld",
+ "expect": "compact/li02-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tli03",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "coerced @list containing an deep list",
+ "purpose": "Lists of Lists",
+ "input": "compact/li03-in.jsonld",
+ "context": "compact/li03-context.jsonld",
+ "expect": "compact/li03-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tli04",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "coerced @list containing multiple lists",
+ "purpose": "Lists of Lists",
+ "input": "compact/li04-in.jsonld",
+ "context": "compact/li04-context.jsonld",
+ "expect": "compact/li04-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tli05",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:CompactTest" ],
+ "name": "coerced @list containing mixed list values",
+ "purpose": "Lists of Lists",
+ "input": "compact/li05-in.jsonld",
+ "context": "compact/li05-context.jsonld",
+ "expect": "compact/li05-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Indexes to object not having an @id",
+ "purpose": "Compaction using @container: @id",
+ "input": "compact/m001-in.jsonld",
+ "context": "compact/m001-context.jsonld",
+ "expect": "compact/m001-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Indexes to object already having an @id",
+ "purpose": "Compaction using @container: @id",
+ "input": "compact/m002-in.jsonld",
+ "context": "compact/m002-context.jsonld",
+ "expect": "compact/m002-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Indexes to object not having an @type",
+ "purpose": "Compaction using @container: @type",
+ "input": "compact/m003-in.jsonld",
+ "context": "compact/m003-context.jsonld",
+ "expect": "compact/m003-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Indexes to object already having an @type",
+ "purpose": "Compaction using @container: @type",
+ "input": "compact/m004-in.jsonld",
+ "context": "compact/m004-context.jsonld",
+ "expect": "compact/m004-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Indexes to object using compact IRI @id",
+ "purpose": "Compaction using @container: @id",
+ "input": "compact/m005-in.jsonld",
+ "context": "compact/m005-context.jsonld",
+ "expect": "compact/m005-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Indexes using compacted @type",
+ "purpose": "Compaction using @container: @type",
+ "input": "compact/m006-in.jsonld",
+ "context": "compact/m006-context.jsonld",
+ "expect": "compact/m006-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "When type is in a type map",
+ "purpose": "scoped context on @type",
+ "input": "compact/m007-in.jsonld",
+ "context": "compact/m007-context.jsonld",
+ "expect": "compact/m007-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@index map with @none node definition",
+ "purpose": "index on @index",
+ "input": "compact/m008-in.jsonld",
+ "context": "compact/m008-context.jsonld",
+ "expect": "compact/m008-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@index map with @none value",
+ "purpose": "index on @index",
+ "input": "compact/m009-in.jsonld",
+ "context": "compact/m009-context.jsonld",
+ "expect": "compact/m009-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@index map with @none value using alias of @none",
+ "purpose": "index on @index",
+ "input": "compact/m010-in.jsonld",
+ "context": "compact/m010-context.jsonld",
+ "expect": "compact/m010-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@language map with no @language",
+ "purpose": "index on @language",
+ "input": "compact/m011-in.jsonld",
+ "context": "compact/m011-context.jsonld",
+ "expect": "compact/m011-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "language map with no @language using alias of @none",
+ "purpose": "index on @language",
+ "input": "compact/m012-in.jsonld",
+ "context": "compact/m012-context.jsonld",
+ "expect": "compact/m012-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "id map using @none",
+ "purpose": "index on @id",
+ "input": "compact/m013-in.jsonld",
+ "context": "compact/m013-context.jsonld",
+ "expect": "compact/m013-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "id map using @none with alias",
+ "purpose": "index on @id",
+ "input": "compact/m014-in.jsonld",
+ "context": "compact/m014-context.jsonld",
+ "expect": "compact/m014-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type map using @none with alias",
+ "purpose": "index on @type",
+ "input": "compact/m015-in.jsonld",
+ "context": "compact/m015-context.jsonld",
+ "expect": "compact/m015-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "type map using @none with alias",
+ "purpose": "index on @type",
+ "input": "compact/m016-in.jsonld",
+ "context": "compact/m016-context.jsonld",
+ "expect": "compact/m016-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "graph index map using @none",
+ "purpose": "index on @graph and @index",
+ "input": "compact/m017-in.jsonld",
+ "context": "compact/m017-context.jsonld",
+ "expect": "compact/m017-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "graph id map using @none",
+ "purpose": "index on @graph and @id",
+ "input": "compact/m018-in.jsonld",
+ "context": "compact/m018-context.jsonld",
+ "expect": "compact/m018-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "graph id map using alias of @none",
+ "purpose": "index on @graph and @id",
+ "input": "compact/m019-in.jsonld",
+ "context": "compact/m019-context.jsonld",
+ "expect": "compact/m019-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "node reference compacts to string value of type map",
+ "purpose": "index on @type",
+ "input": "compact/m020-in.jsonld",
+ "context": "compact/m020-context.jsonld",
+ "expect": "compact/m020-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm021",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "node reference compacts to string value of type map with @type: @id",
+ "purpose": "index on @type",
+ "input": "compact/m021-in.jsonld",
+ "context": "compact/m021-context.jsonld",
+ "expect": "compact/m021-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "node reference compacts to string value of type map with @type: @vocab",
+ "purpose": "index on @type",
+ "input": "compact/m022-in.jsonld",
+ "context": "compact/m022-context.jsonld",
+ "expect": "compact/m022-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Indexes to @nest for property with @nest",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n001-in.jsonld",
+ "context": "compact/n001-context.jsonld",
+ "expect": "compact/n001-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Indexes to @nest for all properties with @nest",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n002-in.jsonld",
+ "context": "compact/n002-context.jsonld",
+ "expect": "compact/n002-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Nests using alias of @nest",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n003-in.jsonld",
+ "context": "compact/n003-context.jsonld",
+ "expect": "compact/n003-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Arrays of nested values",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n004-in.jsonld",
+ "context": "compact/n004-context.jsonld",
+ "expect": "compact/n004-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Nested @container: @list",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n005-in.jsonld",
+ "context": "compact/n005-context.jsonld",
+ "expect": "compact/n005-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Nested @container: @index",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n006-in.jsonld",
+ "context": "compact/n006-context.jsonld",
+ "expect": "compact/n006-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Nested @container: @language",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n007-in.jsonld",
+ "context": "compact/n007-context.jsonld",
+ "expect": "compact/n007-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Nested @container: @type",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n008-in.jsonld",
+ "context": "compact/n008-context.jsonld",
+ "expect": "compact/n008-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Nested @container: @id",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n009-in.jsonld",
+ "context": "compact/n009-context.jsonld",
+ "expect": "compact/n009-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Multiple nest aliases",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n010-in.jsonld",
+ "context": "compact/n010-context.jsonld",
+ "expect": "compact/n010-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Nests using alias of @nest (defined with @id)",
+ "purpose": "Compaction using @nest",
+ "input": "compact/n011-in.jsonld",
+ "context": "compact/n011-context.jsonld",
+ "expect": "compact/n011-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tp001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact IRI will not use an expanded term definition in 1.0",
+ "purpose": "Terms with an expanded term definition are not used for creating compact IRIs",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"},
+ "input": "compact/p001-in.jsonld",
+ "context": "compact/p001-context.jsonld",
+ "expect": "compact/p001-out.jsonld"
+ }, {
+ "@id": "#tp002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact IRI does not use expanded term definition in 1.1",
+ "purpose": "Terms with an expanded term definition are not used for creating compact IRIs",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/p002-in.jsonld",
+ "context": "compact/p002-context.jsonld",
+ "expect": "compact/p002-out.jsonld"
+ }, {
+ "@id": "#tp003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact IRI does not use simple term that does not end with a gen-delim",
+ "purpose": "Terms not ending with a gen-delim are not used for creating compact IRIs",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/p003-in.jsonld",
+ "context": "compact/p003-context.jsonld",
+ "expect": "compact/p003-out.jsonld"
+ }, {
+ "@id": "#tp004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact IRIs using simple terms ending with gen-delim",
+ "purpose": "All simple terms ending with gen-delim are suitable for compaction",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/p004-in.jsonld",
+ "context": "compact/p004-context.jsonld",
+ "expect": "compact/p004-out.jsonld"
+ }, {
+ "@id": "#tp005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact IRI uses term with definition including @prefix: true",
+ "purpose": "Expanded term definition may set prefix explicitly in 1.1",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/p005-in.jsonld",
+ "context": "compact/p005-context.jsonld",
+ "expect": "compact/p005-out.jsonld"
+ }, {
+ "@id": "#tp006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact IRI uses term with definition including @prefix: true",
+ "purpose": "Expanded term definition may set prefix explicitly in 1.1",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/p006-in.jsonld",
+ "context": "compact/p006-context.jsonld",
+ "expect": "compact/p006-out.jsonld"
+ }, {
+ "@id": "#tp007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact IRI not used as prefix",
+ "purpose": "Terms including a colon are excluded from being used as a prefix",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/p007-in.jsonld",
+ "context": "compact/p007-context.jsonld",
+ "expect": "compact/p007-out.jsonld"
+ }, {
+ "@id": "#tp008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Compact IRI does not use term with definition including @prefix: false",
+ "purpose": "Expanded term definition may set prefix explicitly in 1.1",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/p008-in.jsonld",
+ "context": "compact/p008-context.jsonld",
+ "expect": "compact/p008-out.jsonld"
+ }, {
+ "@id": "#tpi01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "property-valued index indexes property value, instead of property (value)",
+ "purpose": "Compacting property-valued indexes.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pi01-in.jsonld",
+ "context": "compact/pi01-context.jsonld",
+ "expect": "compact/pi01-out.jsonld"
+ }, {
+ "@id": "#tpi02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "property-valued index indexes property value, instead of property (multiple values)",
+ "purpose": "Compacting property-valued indexes.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pi02-in.jsonld",
+ "context": "compact/pi02-context.jsonld",
+ "expect": "compact/pi02-out.jsonld"
+ }, {
+ "@id": "#tpi03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "property-valued index indexes property value, instead of property (node)",
+ "purpose": "Compacting property-valued indexes.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pi03-in.jsonld",
+ "context": "compact/pi03-context.jsonld",
+ "expect": "compact/pi03-out.jsonld"
+ }, {
+ "@id": "#tpi04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "property-valued index indexes property value, instead of property (multiple nodes)",
+ "purpose": "Compacting property-valued indexes.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pi04-in.jsonld",
+ "context": "compact/pi04-context.jsonld",
+ "expect": "compact/pi04-out.jsonld"
+ }, {
+ "@id": "#tpi05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "property-valued index indexes using @none if no property value exists",
+ "purpose": "Compacting property-valued indexes.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pi05-in.jsonld",
+ "context": "compact/pi05-context.jsonld",
+ "expect": "compact/pi05-out.jsonld"
+ }, {
+ "@id": "#tpi06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "property-valued index indexes using @none if no property value does not compact to string",
+ "purpose": "Compacting property-valued indexes.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pi06-in.jsonld",
+ "context": "compact/pi06-context.jsonld",
+ "expect": "compact/pi06-out.jsonld"
+ }, {
+ "@id": "#tpr01",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "Check illegal clearing of context with protected terms",
+ "purpose": "Check error when clearing a context with protected terms.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pr01-in.jsonld",
+ "context": "compact/pr01-context.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr02",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "Check illegal overriding of protected term",
+ "purpose": "Check error when overriding a protected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pr02-in.jsonld",
+ "context": "compact/pr02-context.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr03",
+ "@type": ["jld:NegativeEvaluationTest", "jld:CompactTest"],
+ "name": "Check illegal overriding of protected term from type-scoped context",
+ "purpose": "Check error when overriding a protected term from type-scoped context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pr03-in.jsonld",
+ "context": "compact/pr03-context.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Check legal overriding of protected term from property-scoped context",
+ "purpose": "Check overriding a protected term from property-scoped context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pr04-in.jsonld",
+ "context": "compact/pr04-context.jsonld",
+ "expect": "compact/pr04-out.jsonld"
+ }, {
+ "@id": "#tpr05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Check legal overriding of type-scoped protected term from nested node",
+ "purpose": "Check legal overriding of type-scoped protected term from nested node.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "compact/pr05-in.jsonld",
+ "context": "compact/pr05-context.jsonld",
+ "expect": "compact/pr05-out.jsonld"
+ }, {
+ "@id": "#tr001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Expands and compacts to document base by default",
+ "purpose": "Compact IRI attempts to compact document-relative IRIs",
+ "input": "compact/r001-in.jsonld",
+ "context": "compact/r001-context.jsonld",
+ "expect": "compact/r001-out.jsonld",
+ "option": {"base": "http://example.org/", "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tr002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "Expands and does not compact to document base with compactToRelative false",
+ "purpose": "With compactToRelative option set to false, IRIs which could be made relative to the document base are not made relative.",
+ "input": "compact/r002-in.jsonld",
+ "context": "compact/r002-context.jsonld",
+ "expect": "compact/r002-out.jsonld",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "compactToRelative": false
+ }
+ }, {
+ "@id": "#ts001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@context with single array values",
+ "purpose": "@context values may be in an array",
+ "input": "compact/s001-in.jsonld",
+ "context": "compact/s001-context.jsonld",
+ "expect": "compact/s001-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ts002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@context with array including @set uses array values",
+ "purpose": "@context values may include @set along with another compatible value",
+ "input": "compact/s002-in.jsonld",
+ "context": "compact/s002-context.jsonld",
+ "expect": "compact/s002-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ttn01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@type: @none does not compact values",
+ "purpose": "@type: @none does not compact values.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "context": "compact/tn01-context.jsonld",
+ "input": "compact/tn01-in.jsonld",
+ "expect": "compact/tn01-out.jsonld"
+ }, {
+ "@id": "#ttn02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@type: @none does not use arrays by default",
+ "purpose": "@type: @none honors @container.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "context": "compact/tn02-context.jsonld",
+ "input": "compact/tn02-in.jsonld",
+ "expect": "compact/tn02-out.jsonld"
+ }, {
+ "@id": "#ttn03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest"],
+ "name": "@type: @none uses arrays with @container: @set",
+ "purpose": "@type: @none honors @container.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "context": "compact/tn03-context.jsonld",
+ "input": "compact/tn03-in.jsonld",
+ "expect": "compact/tn03-out.jsonld"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0001-context.jsonld b/test/jsonld/1.1/compact/0001-context.jsonld
new file mode 100644
index 00000000..998900ca
--- /dev/null
+++ b/test/jsonld/1.1/compact/0001-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {}
+}
diff --git a/test/jsonld/1.1/compact/0001-in.jsonld b/test/jsonld/1.1/compact/0001-in.jsonld
new file mode 100644
index 00000000..0bfd26f0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0001-in.jsonld
@@ -0,0 +1 @@
+{"@id": "http://example.org/test#example"} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0001-out.jsonld b/test/jsonld/1.1/compact/0001-out.jsonld
new file mode 100644
index 00000000..9e26dfee
--- /dev/null
+++ b/test/jsonld/1.1/compact/0001-out.jsonld
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0002-context.jsonld b/test/jsonld/1.1/compact/0002-context.jsonld
new file mode 100644
index 00000000..79129cb2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0002-context.jsonld
@@ -0,0 +1,11 @@
+{
+ "@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"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0002-in.jsonld b/test/jsonld/1.1/compact/0002-in.jsonld
new file mode 100644
index 00000000..7795576f
--- /dev/null
+++ b/test/jsonld/1.1/compact/0002-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/test/jsonld/1.1/compact/0002-out.jsonld b/test/jsonld/1.1/compact/0002-out.jsonld
new file mode 100644
index 00000000..e4598e55
--- /dev/null
+++ b/test/jsonld/1.1/compact/0002-out.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/test/jsonld/1.1/compact/0003-context.jsonld b/test/jsonld/1.1/compact/0003-context.jsonld
new file mode 100644
index 00000000..998900ca
--- /dev/null
+++ b/test/jsonld/1.1/compact/0003-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {}
+}
diff --git a/test/jsonld/1.1/compact/0003-in.jsonld b/test/jsonld/1.1/compact/0003-in.jsonld
new file mode 100644
index 00000000..2007f363
--- /dev/null
+++ b/test/jsonld/1.1/compact/0003-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/test/jsonld/1.1/compact/0003-out.jsonld b/test/jsonld/1.1/compact/0003-out.jsonld
new file mode 100644
index 00000000..9e26dfee
--- /dev/null
+++ b/test/jsonld/1.1/compact/0003-out.jsonld
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0004-context.jsonld b/test/jsonld/1.1/compact/0004-context.jsonld
new file mode 100644
index 00000000..14eac099
--- /dev/null
+++ b/test/jsonld/1.1/compact/0004-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "mylist1": {"@id": "http://example.com/mylist1", "@container": "@list"},
+ "myset2": {"@id": "http://example.com/myset2", "@container": "@set"},
+ "myset3": {"@id": "http://example.com/myset3", "@container": "@set"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0004-in.jsonld b/test/jsonld/1.1/compact/0004-in.jsonld
new file mode 100644
index 00000000..4b8438f7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0004-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@id": "http://example.org/id",
+ "http://example.com/mylist1": {"@list": []},
+ "http://example.com/myset2": {"@set": []},
+ "http://example.com/myset3": "v1",
+ "http://example.org/list1": {"@list": []},
+ "http://example.org/list2": {"@list": [null]},
+ "http://example.org/set1": {"@set": []},
+ "http://example.org/set2": {"@set": [null]},
+ "http://example.org/set3": [],
+ "http://example.org/set4": [null]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0004-out.jsonld b/test/jsonld/1.1/compact/0004-out.jsonld
new file mode 100644
index 00000000..dd8299b6
--- /dev/null
+++ b/test/jsonld/1.1/compact/0004-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "mylist1": {"@id": "http://example.com/mylist1", "@container": "@list"},
+ "myset2": {"@id": "http://example.com/myset2", "@container": "@set"},
+ "myset3": {"@id": "http://example.com/myset3", "@container": "@set"}
+ },
+ "@id": "http://example.org/id",
+ "mylist1": [],
+ "myset2": [],
+ "myset3": ["v1"],
+ "http://example.org/list1": {"@list": []},
+ "http://example.org/list2": {"@list": []},
+ "http://example.org/set1": [],
+ "http://example.org/set2": [],
+ "http://example.org/set3": [],
+ "http://example.org/set4": []
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0005-context.jsonld b/test/jsonld/1.1/compact/0005-context.jsonld
new file mode 100644
index 00000000..bf190ded
--- /dev/null
+++ b/test/jsonld/1.1/compact/0005-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "ex": "http://example.org/",
+ "term1": {"@id": "ex:term1", "@type": "ex:datatype"},
+ "term2": {"@id": "ex:term2", "@type": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0005-in.jsonld b/test/jsonld/1.1/compact/0005-in.jsonld
new file mode 100644
index 00000000..b74125f3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0005-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@id": "http://example.org/id1",
+ "@type": ["http://example.org/Type1", "http://example.org/Type2"],
+ "http://example.org/term1": {"@value": "v1", "@type": "http://example.org/datatype"},
+ "http://example.org/term2": {"@id": "http://example.org/id2"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0005-out.jsonld b/test/jsonld/1.1/compact/0005-out.jsonld
new file mode 100644
index 00000000..bfb7b236
--- /dev/null
+++ b/test/jsonld/1.1/compact/0005-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "ex": "http://example.org/",
+ "term1": {"@id": "ex:term1", "@type": "ex:datatype"},
+ "term2": {"@id": "ex:term2", "@type": "@id"}
+ },
+ "@id": "ex:id1",
+ "@type": ["ex:Type1", "ex:Type2"],
+ "term1": "v1",
+ "term2": "ex:id2"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0006-context.jsonld b/test/jsonld/1.1/compact/0006-context.jsonld
new file mode 100644
index 00000000..f9917d22
--- /dev/null
+++ b/test/jsonld/1.1/compact/0006-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "ex": "http://example.org/",
+ "term1": { "@id": "ex:term1", "@type": "ex:datatype" },
+ "term2": "ex:term2"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0006-in.jsonld b/test/jsonld/1.1/compact/0006-in.jsonld
new file mode 100644
index 00000000..1ed73085
--- /dev/null
+++ b/test/jsonld/1.1/compact/0006-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@id": "http://example.org/id1",
+ "@type": ["http://example.org/Type1", "http://example.org/Type2"],
+ "http://example.org/term1": {"@value": "v1", "@type": "http://example.org/different-datatype"},
+ "http://example.org/term2": {"@id": "http://example.org/id2"}
+}
diff --git a/test/jsonld/1.1/compact/0006-out.jsonld b/test/jsonld/1.1/compact/0006-out.jsonld
new file mode 100644
index 00000000..df187e92
--- /dev/null
+++ b/test/jsonld/1.1/compact/0006-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "ex": "http://example.org/",
+ "term1": {
+ "@id": "ex:term1",
+ "@type": "ex:datatype"
+ },
+ "term2": "ex:term2"
+ },
+ "@id": "ex:id1",
+ "@type": ["ex:Type1", "ex:Type2"],
+ "ex:term1": {"@value": "v1", "@type": "ex:different-datatype"},
+ "term2": {"@id": "ex:id2"}
+}
diff --git a/test/jsonld/1.1/compact/0007-context.jsonld b/test/jsonld/1.1/compact/0007-context.jsonld
new file mode 100644
index 00000000..5b427354
--- /dev/null
+++ b/test/jsonld/1.1/compact/0007-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "dc11": "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/"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0007-in.jsonld b/test/jsonld/1.1/compact/0007-in.jsonld
new file mode 100644
index 00000000..6eef84f8
--- /dev/null
+++ b/test/jsonld/1.1/compact/0007-in.jsonld
@@ -0,0 +1,27 @@
+{
+ "@graph": [
+ {
+ "@id": "http://example.org/test#chapter",
+ "http://purl.org/dc/elements/1.1/description": ["Fun"],
+ "http://purl.org/dc/elements/1.1/title": ["Chapter One"]
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "http://example.org/vocab#authored": [{"@id": "http://example.org/test#chapter"}],
+ "http://xmlns.com/foaf/0.1/name": ["Jane"]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": ["John"]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [{
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [ "this-is-not-an-IRI" ],
+ "http://purl.org/dc/elements/1.1/contributor": ["Writer"],
+ "http://purl.org/dc/elements/1.1/title": ["My Book"]
+ }]
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0007-out.jsonld b/test/jsonld/1.1/compact/0007-out.jsonld
new file mode 100644
index 00000000..785ba46b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0007-out.jsonld
@@ -0,0 +1,34 @@
+{
+ "@context": {
+ "dc11": "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/"
+ },
+ "@graph": [
+ {
+ "@id": "http://example.org/test#chapter",
+ "dc11:description": "Fun",
+ "dc11: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",
+ "dc11:contributor": "Writer",
+ "dc11:title": "My Book",
+ "http://example.org/vocab#contains": "this-is-not-an-IRI"
+ }
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0008-context.jsonld b/test/jsonld/1.1/compact/0008-context.jsonld
new file mode 100644
index 00000000..770e2ce1
--- /dev/null
+++ b/test/jsonld/1.1/compact/0008-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "http://example.org/test#property1": {"@type": "@id"},
+ "http://example.org/test#property2": {"@type": "@id"},
+ "http://example.org/test#property3": {"@type": "@id"},
+ "uri": "@id"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0008-in.jsonld b/test/jsonld/1.1/compact/0008-in.jsonld
new file mode 100644
index 00000000..50bbf4d7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0008-in.jsonld
@@ -0,0 +1,13 @@
+[{
+ "@id": "http://example.org/test#example1",
+ "http://example.org/test#property1": [{
+ "@id": "http://example.org/test#example2",
+ "http://example.org/test#property4": ["foo"]
+ }],
+ "http://example.org/test#property2": [{
+ "@id": "http://example.org/test#example3"
+ }],
+ "http://example.org/test#property3": [{
+ "@id": "http://example.org/test#example4"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0008-out.jsonld b/test/jsonld/1.1/compact/0008-out.jsonld
new file mode 100644
index 00000000..742987ca
--- /dev/null
+++ b/test/jsonld/1.1/compact/0008-out.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "http://example.org/test#property1": {"@type": "@id"},
+ "http://example.org/test#property2": {"@type": "@id"},
+ "http://example.org/test#property3": {"@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": "http://example.org/test#example4",
+ "uri": "http://example.org/test#example1"
+}
diff --git a/test/jsonld/1.1/compact/0009-context.jsonld b/test/jsonld/1.1/compact/0009-context.jsonld
new file mode 100644
index 00000000..b199a5e4
--- /dev/null
+++ b/test/jsonld/1.1/compact/0009-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "dc11": "http://purl.org/dc/elements/1.1/",
+ "ex": "http://example.org/vocab#",
+ "ex:contains": {"@type": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0009-in.jsonld b/test/jsonld/1.1/compact/0009-in.jsonld
new file mode 100644
index 00000000..9b70fbab
--- /dev/null
+++ b/test/jsonld/1.1/compact/0009-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": {
+ "@id": "http://example.org/test#chapter"
+ },
+ "http://purl.org/dc/elements/1.1/title": "Title"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0009-out.jsonld b/test/jsonld/1.1/compact/0009-out.jsonld
new file mode 100644
index 00000000..d721d32e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0009-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "dc11": "http://purl.org/dc/elements/1.1/",
+ "ex": "http://example.org/vocab#",
+ "ex:contains": {"@type": "@id"}
+ },
+ "@id": "http://example.org/test#book",
+ "dc11:title": "Title",
+ "ex:contains": "http://example.org/test#chapter"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0010-context.jsonld b/test/jsonld/1.1/compact/0010-context.jsonld
new file mode 100644
index 00000000..9f020bd7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0010-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "homepage": {"@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@id"},
+ "name": "http://xmlns.com/foaf/0.1/name"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0010-in.jsonld b/test/jsonld/1.1/compact/0010-in.jsonld
new file mode 100644
index 00000000..831f1ca9
--- /dev/null
+++ b/test/jsonld/1.1/compact/0010-in.jsonld
@@ -0,0 +1,13 @@
+[
+ {
+ "@id": "http://example.com/john",
+ "http://xmlns.com/foaf/0.1/homepage": {
+ "@id": "http://john.doe.org/"
+ },
+ "http://xmlns.com/foaf/0.1/name": "John Doe"
+ },
+ {
+ "@id": "http://example.com/jane",
+ "http://xmlns.com/foaf/0.1/name": "Jane Doe"
+ }
+]
diff --git a/test/jsonld/1.1/compact/0010-out.jsonld b/test/jsonld/1.1/compact/0010-out.jsonld
new file mode 100644
index 00000000..43b3d1d5
--- /dev/null
+++ b/test/jsonld/1.1/compact/0010-out.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "homepage": {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ },
+ "name": "http://xmlns.com/foaf/0.1/name"
+ },
+ "@graph": [
+ {
+ "@id": "http://example.com/john",
+ "homepage": "http://john.doe.org/",
+ "name": "John Doe"
+ },
+ {
+ "@id": "http://example.com/jane",
+ "name": "Jane Doe"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0011-context.jsonld b/test/jsonld/1.1/compact/0011-context.jsonld
new file mode 100644
index 00000000..9221cc66
--- /dev/null
+++ b/test/jsonld/1.1/compact/0011-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "ex": "http://example.org/vocab#",
+ "ex:date": {"@type": "xsd:dateTime"},
+ "ex:parent": {"@type": "@id"},
+ "xsd": "http://www.w3.org/2001/XMLSchema#"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0011-in.jsonld b/test/jsonld/1.1/compact/0011-in.jsonld
new file mode 100644
index 00000000..c67c7531
--- /dev/null
+++ b/test/jsonld/1.1/compact/0011-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@id": "http://example.org/test#example1",
+ "http://example.org/vocab#date": {
+ "@value": "2011-01-25T00:00:00Z",
+ "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
+ },
+ "http://example.org/vocab#embed": {
+ "@id": "http://example.org/test#example2",
+ "http://example.org/vocab#parent": {
+ "@id": "http://example.org/test#example1"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0011-out.jsonld b/test/jsonld/1.1/compact/0011-out.jsonld
new file mode 100644
index 00000000..6bba2326
--- /dev/null
+++ b/test/jsonld/1.1/compact/0011-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@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/test/jsonld/1.1/compact/0012-context.jsonld b/test/jsonld/1.1/compact/0012-context.jsonld
new file mode 100644
index 00000000..3f53478d
--- /dev/null
+++ b/test/jsonld/1.1/compact/0012-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "ex": "http://example.org/vocab#"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0012-in.jsonld b/test/jsonld/1.1/compact/0012-in.jsonld
new file mode 100644
index 00000000..69ddcf31
--- /dev/null
+++ b/test/jsonld/1.1/compact/0012-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@id": "http://example.org/test",
+ "http://example.org/vocab#bool": true,
+ "http://example.org/vocab#int": 123
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0012-out.jsonld b/test/jsonld/1.1/compact/0012-out.jsonld
new file mode 100644
index 00000000..059c99d3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0012-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "ex": "http://example.org/vocab#"
+ },
+ "@id": "http://example.org/test",
+ "ex:bool": true,
+ "ex:int": 123
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0013-context.jsonld b/test/jsonld/1.1/compact/0013-context.jsonld
new file mode 100644
index 00000000..3f53478d
--- /dev/null
+++ b/test/jsonld/1.1/compact/0013-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "ex": "http://example.org/vocab#"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0013-in.jsonld b/test/jsonld/1.1/compact/0013-in.jsonld
new file mode 100644
index 00000000..7b2016a5
--- /dev/null
+++ b/test/jsonld/1.1/compact/0013-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.org/test",
+ "http://example.org/vocab#test": {"@value": "test", "@language": "en"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0013-out.jsonld b/test/jsonld/1.1/compact/0013-out.jsonld
new file mode 100644
index 00000000..4ce4f592
--- /dev/null
+++ b/test/jsonld/1.1/compact/0013-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "ex": "http://example.org/vocab#"
+ },
+ "@id": "http://example.org/test",
+ "ex:test": {"@value": "test", "@language": "en"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0014-context.jsonld b/test/jsonld/1.1/compact/0014-context.jsonld
new file mode 100644
index 00000000..c2dc5092
--- /dev/null
+++ b/test/jsonld/1.1/compact/0014-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "homepage": {"@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@id"},
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "data": "@graph"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0014-in.jsonld b/test/jsonld/1.1/compact/0014-in.jsonld
new file mode 100644
index 00000000..831f1ca9
--- /dev/null
+++ b/test/jsonld/1.1/compact/0014-in.jsonld
@@ -0,0 +1,13 @@
+[
+ {
+ "@id": "http://example.com/john",
+ "http://xmlns.com/foaf/0.1/homepage": {
+ "@id": "http://john.doe.org/"
+ },
+ "http://xmlns.com/foaf/0.1/name": "John Doe"
+ },
+ {
+ "@id": "http://example.com/jane",
+ "http://xmlns.com/foaf/0.1/name": "Jane Doe"
+ }
+]
diff --git a/test/jsonld/1.1/compact/0014-out.jsonld b/test/jsonld/1.1/compact/0014-out.jsonld
new file mode 100644
index 00000000..2bce180a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0014-out.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": {
+ "homepage": {
+ "@id": "http://xmlns.com/foaf/0.1/homepage",
+ "@type": "@id"
+ },
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "data": "@graph"
+ },
+ "data": [
+ {
+ "@id": "http://example.com/john",
+ "homepage": "http://john.doe.org/",
+ "name": "John Doe"
+ },
+ {
+ "@id": "http://example.com/jane",
+ "name": "Jane Doe"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0015-context.jsonld b/test/jsonld/1.1/compact/0015-context.jsonld
new file mode 100644
index 00000000..95b5b8b8
--- /dev/null
+++ b/test/jsonld/1.1/compact/0015-context.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "t1": "http://example.com/t1",
+ "t2": "http://example.com/t2",
+ "term1": "http://example.com/term",
+ "term2": {"@id": "http://example.com/term", "@type": "t2"},
+ "term3": {"@id": "http://example.com/term", "@language": "en"},
+ "term4": {"@id": "http://example.com/term", "@container": "@list"},
+ "term5": {"@id": "http://example.com/term", "@language": null},
+ "@language": "de"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0015-in.jsonld b/test/jsonld/1.1/compact/0015-in.jsonld
new file mode 100644
index 00000000..b0b2b27d
--- /dev/null
+++ b/test/jsonld/1.1/compact/0015-in.jsonld
@@ -0,0 +1,12 @@
+[{
+ "@id": "http://example.com/id1",
+ "@type": ["http://example.com/t1"],
+ "http://example.com/term": [
+ {"@value": "v1", "@language": "de"},
+ {"@value": "v2", "@type": "http://example.com/t2"},
+ {"@value": "v3", "@language": "en"},
+ {"@list": [1, 2]},
+ "v5",
+ {"@value": "plain literal"}
+ ]
+}]
diff --git a/test/jsonld/1.1/compact/0015-out.jsonld b/test/jsonld/1.1/compact/0015-out.jsonld
new file mode 100644
index 00000000..808b8b67
--- /dev/null
+++ b/test/jsonld/1.1/compact/0015-out.jsonld
@@ -0,0 +1,19 @@
+{
+ "@context": {
+ "t1": "http://example.com/t1",
+ "t2": "http://example.com/t2",
+ "term1": "http://example.com/term",
+ "term2": {"@id": "http://example.com/term", "@type": "t2"},
+ "term3": {"@id": "http://example.com/term", "@language": "en"},
+ "term4": {"@id": "http://example.com/term", "@container": "@list"},
+ "term5": {"@id": "http://example.com/term", "@language": null},
+ "@language": "de"
+ },
+ "@id": "http://example.com/id1",
+ "@type": "t1",
+ "term1": "v1",
+ "term2": "v2",
+ "term3": "v3",
+ "term4": [ 1, 2 ],
+ "term5": [ "v5", "plain literal" ]
+}
diff --git a/test/jsonld/1.1/compact/0016-context.jsonld b/test/jsonld/1.1/compact/0016-context.jsonld
new file mode 100644
index 00000000..beb845de
--- /dev/null
+++ b/test/jsonld/1.1/compact/0016-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "wd": "http://data.wikipedia.org/vocab#",
+ "ws": "http://data.wikipedia.org/snaks/",
+ "wp": "http://en.wikipedia.org/wiki/"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0016-in.jsonld b/test/jsonld/1.1/compact/0016-in.jsonld
new file mode 100644
index 00000000..f7154b91
--- /dev/null
+++ b/test/jsonld/1.1/compact/0016-in.jsonld
@@ -0,0 +1,22 @@
+[
+ {
+ "@id": "http://data.wikipedia.org/snaks/Assertions",
+ "@type": "http://data.wikipedia.org/vocab#SnakSet",
+ "http://data.wikipedia.org/vocab#assertedBy": [
+ { "@value": "Gregg Kellogg" }
+ ],
+ "@graph": [
+ {
+ "@id": "http://data.wikipedia.org/snaks/BerlinFact",
+ "@type": [ "http://data.wikipedia.org/vocab#Snak" ],
+ "http://data.wikipedia.org/vocab#assertedBy": [ { "@value": "Statistik Berlin/Brandenburg" } ],
+ "@graph": [
+ {
+ "@id": "http://en.wikipedia.org/wiki/Berlin",
+ "http://data.wikipedia.org/vocab#population": [ 3499879 ]
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0016-out.jsonld b/test/jsonld/1.1/compact/0016-out.jsonld
new file mode 100644
index 00000000..d40aec5a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0016-out.jsonld
@@ -0,0 +1,23 @@
+{
+ "@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": "Statistik Berlin/Brandenburg"
+ }
+ ],
+ "wd:assertedBy": "Gregg Kellogg"
+}
diff --git a/test/jsonld/1.1/compact/0017-context.jsonld b/test/jsonld/1.1/compact/0017-context.jsonld
new file mode 100644
index 00000000..abfee308
--- /dev/null
+++ b/test/jsonld/1.1/compact/0017-context.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": [
+ {
+ "comment": { "@id": "http://www.w3.org/2000/01/rdf-schema#comment", "@language": "en" }
+ },
+ {
+ "comment": null,
+ "comment_en": { "@id": "http://www.w3.org/2000/01/rdf-schema#comment", "@language": "en" }
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0017-in.jsonld b/test/jsonld/1.1/compact/0017-in.jsonld
new file mode 100644
index 00000000..59902746
--- /dev/null
+++ b/test/jsonld/1.1/compact/0017-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "http://www.w3.org/2000/01/rdf-schema#comment": [
+ { "@value": "Kommentar auf Deutsch.", "@language": "de" },
+ { "@value": "Comment in English.", "@language": "en" }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0017-out.jsonld b/test/jsonld/1.1/compact/0017-out.jsonld
new file mode 100644
index 00000000..8126875c
--- /dev/null
+++ b/test/jsonld/1.1/compact/0017-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": [
+ {
+ "comment": { "@id": "http://www.w3.org/2000/01/rdf-schema#comment", "@language": "en" }
+ },
+ {
+ "comment": null,
+ "comment_en": { "@id": "http://www.w3.org/2000/01/rdf-schema#comment", "@language": "en" }
+ }
+ ],
+ "comment_en": "Comment in English.",
+ "http://www.w3.org/2000/01/rdf-schema#comment": { "@value": "Kommentar auf Deutsch.", "@language": "de" }
+}
diff --git a/test/jsonld/1.1/compact/0018-context.jsonld b/test/jsonld/1.1/compact/0018-context.jsonld
new file mode 100644
index 00000000..442fcd16
--- /dev/null
+++ b/test/jsonld/1.1/compact/0018-context.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "type1": "http://example.com/t1",
+ "type2": "http://example.com/t2",
+ "@language": "de",
+ "term": { "@id": "http://example.com/term" },
+ "term1": { "@id": "http://example.com/term", "@container": "@list" },
+ "term2": { "@id": "http://example.com/term", "@container": "@list", "@language": "en" },
+ "term3": { "@id": "http://example.com/term", "@container": "@list", "@language": null },
+ "term4": { "@id": "http://example.com/term", "@container": "@list", "@type": "type1" },
+ "term5": { "@id": "http://example.com/term", "@container": "@list", "@type": "type2" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0018-in.jsonld b/test/jsonld/1.1/compact/0018-in.jsonld
new file mode 100644
index 00000000..3aab7d0a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0018-in.jsonld
@@ -0,0 +1,69 @@
+{
+ "@context": {
+ "type1": "http://example.com/t1",
+ "type2": "http://example.com/t2"
+ },
+ "@id": "http://example.com/id1",
+ "http://example.com/term": [
+ {
+ "@set": [
+ { "@value": "v0.1", "@language": "de" },
+ { "@value": "v0.2", "@language": "en" },
+ "v0.3",
+ 4,
+ true,
+ false
+ ]
+ },
+ {
+ "@list": [
+ { "@value": "v1.1", "@language": "de" },
+ { "@value": "v1.2", "@language": "en" },
+ "v1.3",
+ 14,
+ true,
+ false
+ ]
+ },
+ {
+ "@list": [
+ { "@value": "v2.1", "@language": "en" },
+ { "@value": "v2.2", "@language": "en" },
+ { "@value": "v2.3", "@language": "en" },
+ { "@value": "v2.4", "@language": "en" },
+ { "@value": "v2.5", "@language": "en" },
+ { "@value": "v2.6", "@language": "en" }
+ ]
+ },
+ {
+ "@list": [
+ "v3.1",
+ "v3.2",
+ "v3.3",
+ "v3.4",
+ "v3.5",
+ "v3.6"
+ ]
+ },
+ {
+ "@list": [
+ { "@value": "v4.1", "@type": "type1" },
+ { "@value": "v4.2", "@type": "type1" },
+ { "@value": "v4.3", "@type": "type1" },
+ { "@value": "v4.4", "@type": "type1" },
+ { "@value": "v4.5", "@type": "type1" },
+ { "@value": "v4.6", "@type": "type1" }
+ ]
+ },
+ {
+ "@list": [
+ { "@value": "v5.1", "@type": "type2" },
+ { "@value": "v5.2", "@type": "type2" },
+ { "@value": "v5.3", "@type": "type2" },
+ { "@value": "v5.4", "@type": "type2" },
+ { "@value": "v5.5", "@type": "type2" },
+ { "@value": "v5.6", "@type": "type2" }
+ ]
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0018-out.jsonld b/test/jsonld/1.1/compact/0018-out.jsonld
new file mode 100644
index 00000000..0c6d6567
--- /dev/null
+++ b/test/jsonld/1.1/compact/0018-out.jsonld
@@ -0,0 +1,62 @@
+{
+ "@context": {
+ "type1": "http://example.com/t1",
+ "type2": "http://example.com/t2",
+ "@language": "de",
+ "term": { "@id": "http://example.com/term" },
+ "term1": { "@id": "http://example.com/term", "@container": "@list" },
+ "term2": { "@id": "http://example.com/term", "@container": "@list", "@language": "en" },
+ "term3": { "@id": "http://example.com/term", "@container": "@list", "@language": null },
+ "term4": { "@id": "http://example.com/term", "@container": "@list", "@type": "type1" },
+ "term5": { "@id": "http://example.com/term", "@container": "@list", "@type": "type2" }
+ },
+ "@id": "http://example.com/id1",
+ "term": [
+ "v0.1",
+ { "@value": "v0.2", "@language": "en" },
+ { "@value": "v0.3" },
+ 4,
+ true,
+ false
+ ],
+ "term1": [
+ "v1.1",
+ { "@value": "v1.2", "@language": "en" },
+ { "@value": "v1.3" },
+ 14,
+ true,
+ false
+ ],
+ "term2": [
+ "v2.1",
+ "v2.2",
+ "v2.3",
+ "v2.4",
+ "v2.5",
+ "v2.6"
+ ],
+ "term3": [
+ "v3.1",
+ "v3.2",
+ "v3.3",
+ "v3.4",
+ "v3.5",
+ "v3.6"
+ ],
+ "term4": [
+ "v4.1",
+ "v4.2",
+ "v4.3",
+ "v4.4",
+ "v4.5",
+ "v4.6"
+ ],
+ "term5": [
+ "v5.1",
+ "v5.2",
+ "v5.3",
+ "v5.4",
+ "v5.5",
+ "v5.6"
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0019-context.jsonld b/test/jsonld/1.1/compact/0019-context.jsonld
new file mode 100644
index 00000000..ac6fa08f
--- /dev/null
+++ b/test/jsonld/1.1/compact/0019-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "mylist": {"@id": "http://example.com/mylist", "@container": "@list"},
+ "myset": {"@id": "http://example.com/myset", "@container": "@set"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0019-in.jsonld b/test/jsonld/1.1/compact/0019-in.jsonld
new file mode 100644
index 00000000..15efa2e3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0019-in.jsonld
@@ -0,0 +1,17 @@
+[{
+ "@id": "http://example.org/id",
+ "http://example.com/mylist": [{
+ "@list": [
+ {"@value": 1},
+ {"@value": 2},
+ {"@value": 2},
+ {"@value": 3}
+ ]
+ }],
+ "http://example.com/myset": [
+ {"@value": 1},
+ {"@value": 2},
+ {"@value": 2},
+ {"@value": 3}
+ ]
+}]
diff --git a/test/jsonld/1.1/compact/0019-out.jsonld b/test/jsonld/1.1/compact/0019-out.jsonld
new file mode 100644
index 00000000..6c47cfb7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0019-out.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/test/jsonld/1.1/compact/0020-context.jsonld b/test/jsonld/1.1/compact/0020-context.jsonld
new file mode 100644
index 00000000..6a3482e2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0020-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "ex": "http://example.org/ns#",
+ "ex:property": {"@container": "@list"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0020-in.jsonld b/test/jsonld/1.1/compact/0020-in.jsonld
new file mode 100644
index 00000000..f89e0642
--- /dev/null
+++ b/test/jsonld/1.1/compact/0020-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "ex": "http://example.org/ns#"
+ },
+ "@id": "ex:property",
+ "ex:property": {
+ "@list": [1, 2]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0020-out.jsonld b/test/jsonld/1.1/compact/0020-out.jsonld
new file mode 100644
index 00000000..5836103e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0020-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "ex": "http://example.org/ns#",
+ "ex:property": {
+ "@container": "@list"
+ }
+ },
+ "@id": "ex:property",
+ "ex:property": [1, 2]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0021-context.jsonld b/test/jsonld/1.1/compact/0021-context.jsonld
new file mode 100644
index 00000000..c5d301c4
--- /dev/null
+++ b/test/jsonld/1.1/compact/0021-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/subdir/",
+ "vocab/date": { "@type": "vocab/types/dateTime" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0021-in.jsonld b/test/jsonld/1.1/compact/0021-in.jsonld
new file mode 100644
index 00000000..a7e716f8
--- /dev/null
+++ b/test/jsonld/1.1/compact/0021-in.jsonld
@@ -0,0 +1,23 @@
+[
+ {
+ "@id": "http://example.com/subdir/id/1",
+ "@type": [ "http://example.com/subdir/vocab/types/Test" ],
+ "http://example.com/subdir/vocab/date": [
+ {
+ "@value": "2011-01-25T00:00:00Z",
+ "@type": "http://example.com/subdir/vocab/types/dateTime"
+ }
+ ],
+ "http://example.com/subdir/vocab/embed": [
+ {
+ "@id": "http://example.com/subdir/id/2",
+ "http://example.com/subdir/vocab/expandedDate": [
+ {
+ "@value": "2012-08-01T00:00:00Z",
+ "@type": "http://example.com/subdir/vocab/types/dateTime"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0021-out.jsonld b/test/jsonld/1.1/compact/0021-out.jsonld
new file mode 100644
index 00000000..2705521b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0021-out.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/subdir/",
+ "vocab/date": { "@type": "vocab/types/dateTime" }
+ },
+ "@id": "http://example.com/subdir/id/1",
+ "@type": "vocab/types/Test",
+ "vocab/date": "2011-01-25T00:00:00Z",
+ "vocab/embed": {
+ "@id": "http://example.com/subdir/id/2",
+ "vocab/expandedDate": {
+ "@value": "2012-08-01T00:00:00Z",
+ "@type": "vocab/types/dateTime"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0022-context.jsonld b/test/jsonld/1.1/compact/0022-context.jsonld
new file mode 100644
index 00000000..5f77de7e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0022-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "owl": "http://www.w3.org/2002/07/owl#",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "ex": "https://example.org/ns#",
+ "id": "@id",
+ "type": "@type",
+ "ex:properties": { "@container": "@list" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0022-in.jsonld b/test/jsonld/1.1/compact/0022-in.jsonld
new file mode 100644
index 00000000..180db840
--- /dev/null
+++ b/test/jsonld/1.1/compact/0022-in.jsonld
@@ -0,0 +1,39 @@
+[
+ {
+ "@id": "https://example.org/ns#Game",
+ "@type": [
+ "http://www.w3.org/2002/07/owl#Class"
+ ],
+ "https://example.org/ns#properties": [
+ {
+ "@list": [
+ {
+ "@id": "https://example.org/ns#title"
+ },
+ {
+ "@id": "https://example.org/ns#slug"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "https://example.org/ns#properties",
+ "@type": [
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"
+ ]
+ },
+ {
+ "@id": "https://example.org/ns#slug",
+ "@type": [
+ "http://www.w3.org/2002/07/owl#DataProperty",
+ "http://www.w3.org/2002/07/owl#FunctionalProperty"
+ ]
+ },
+ {
+ "@id": "https://example.org/ns#title",
+ "@type": [
+ "http://www.w3.org/2002/07/owl#DataProperty"
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0022-out.jsonld b/test/jsonld/1.1/compact/0022-out.jsonld
new file mode 100644
index 00000000..0f256d33
--- /dev/null
+++ b/test/jsonld/1.1/compact/0022-out.jsonld
@@ -0,0 +1,34 @@
+{
+ "@context": {
+ "owl": "http://www.w3.org/2002/07/owl#",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "ex": "https://example.org/ns#",
+ "id": "@id",
+ "type": "@type",
+ "ex:properties": {
+ "@container": "@list"
+ }
+ },
+ "@graph": [
+ {
+ "id": "ex:Game",
+ "type": "owl:Class",
+ "ex:properties": [
+ { "id": "ex:title" },
+ { "id": "ex:slug" }
+ ]
+ },
+ {
+ "id": "ex:properties",
+ "type": "rdf:Property"
+ },
+ {
+ "id": "ex:slug",
+ "type": [ "owl:DataProperty", "owl:FunctionalProperty" ]
+ },
+ {
+ "id": "ex:title",
+ "type": "owl:DataProperty"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0023-context.jsonld b/test/jsonld/1.1/compact/0023-context.jsonld
new file mode 100644
index 00000000..ec987268
--- /dev/null
+++ b/test/jsonld/1.1/compact/0023-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "ex": "http://example.com/subdir/",
+ "ex:vocab/date": { "@type": "ex:vocab/types/dateTime" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0023-in.jsonld b/test/jsonld/1.1/compact/0023-in.jsonld
new file mode 100644
index 00000000..a7e716f8
--- /dev/null
+++ b/test/jsonld/1.1/compact/0023-in.jsonld
@@ -0,0 +1,23 @@
+[
+ {
+ "@id": "http://example.com/subdir/id/1",
+ "@type": [ "http://example.com/subdir/vocab/types/Test" ],
+ "http://example.com/subdir/vocab/date": [
+ {
+ "@value": "2011-01-25T00:00:00Z",
+ "@type": "http://example.com/subdir/vocab/types/dateTime"
+ }
+ ],
+ "http://example.com/subdir/vocab/embed": [
+ {
+ "@id": "http://example.com/subdir/id/2",
+ "http://example.com/subdir/vocab/expandedDate": [
+ {
+ "@value": "2012-08-01T00:00:00Z",
+ "@type": "http://example.com/subdir/vocab/types/dateTime"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0023-out.jsonld b/test/jsonld/1.1/compact/0023-out.jsonld
new file mode 100644
index 00000000..747ec943
--- /dev/null
+++ b/test/jsonld/1.1/compact/0023-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "ex": "http://example.com/subdir/",
+ "ex:vocab/date": { "@type": "ex:vocab/types/dateTime" }
+ },
+ "@id": "ex:id/1",
+ "@type": "subdir/vocab/types/Test",
+ "ex:vocab/date": "2011-01-25T00:00:00Z",
+ "subdir/vocab/embed": {
+ "@id": "ex:id/2",
+ "subdir/vocab/expandedDate": {
+ "@value": "2012-08-01T00:00:00Z",
+ "@type": "subdir/vocab/types/dateTime"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0024-context.jsonld b/test/jsonld/1.1/compact/0024-context.jsonld
new file mode 100644
index 00000000..26fc17a7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0024-context.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "type1": "http://example.com/t1",
+ "type2": "http://example.com/t2",
+ "@language": "de",
+ "termL": { "@id": "http://example.com/termLanguage" },
+ "termLL0": { "@id": "http://example.com/termLanguage", "@container": "@list" },
+ "termLL1": { "@id": "http://example.com/termLanguage", "@container": "@list", "@language": "en" },
+ "termLL2": { "@id": "http://example.com/termLanguage", "@container": "@list", "@language": null },
+ "termT": { "@id": "http://example.com/termType" },
+ "termTL0": { "@id": "http://example.com/termType", "@container": "@list" },
+ "termTL1": { "@id": "http://example.com/termType", "@container": "@list", "@type": "type1" },
+ "termTL2": { "@id": "http://example.com/termType", "@container": "@list", "@type": "type2" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0024-in.jsonld b/test/jsonld/1.1/compact/0024-in.jsonld
new file mode 100644
index 00000000..e25e21f4
--- /dev/null
+++ b/test/jsonld/1.1/compact/0024-in.jsonld
@@ -0,0 +1,48 @@
+{
+
+ "@context": {
+ "type1": "http://example.com/t1",
+ "type2": "http://example.com/t2"
+ },
+ "@id": "http://example.com/id1",
+ "http://example.com/termLanguage": [
+ {
+ "@list": [
+ { "@value": "termLL0.1", "@language": "de" },
+ { "@value": "termLL0.2", "@language": "de" }
+ ]
+ },
+ {
+ "@list": [
+ { "@value": "termLL1.1", "@language": "en" },
+ { "@value": "termLL1.2", "@language": "en" }
+ ]
+ },
+ {
+ "@list": [
+ "termLL2.1",
+ "termLL2.2"
+ ]
+ }
+ ],
+ "http://example.com/termType": [
+ {
+ "@list": [
+ { "@value": "termTL0.1", "@type": "type1" },
+ { "@value": "termTL0.2", "@type": "type2" }
+ ]
+ },
+ {
+ "@list": [
+ { "@value": "termTL1.1", "@type": "type1" },
+ { "@value": "termTL1.2", "@type": "type1" }
+ ]
+ },
+ {
+ "@list": [
+ { "@value": "termTL2.1", "@type": "type2" },
+ { "@value": "termTL2.2", "@type": "type2" }
+ ]
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0024-out.jsonld b/test/jsonld/1.1/compact/0024-out.jsonld
new file mode 100644
index 00000000..d9c276f0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0024-out.jsonld
@@ -0,0 +1,46 @@
+{
+ "@context": {
+ "type1": "http://example.com/t1",
+ "type2": "http://example.com/t2",
+ "@language": "de",
+ "termL": { "@id": "http://example.com/termLanguage" },
+ "termLL0": { "@id": "http://example.com/termLanguage", "@container": "@list" },
+ "termLL1": { "@id": "http://example.com/termLanguage", "@container": "@list", "@language": "en" },
+ "termLL2": { "@id": "http://example.com/termLanguage", "@container": "@list", "@language": null },
+ "termT": { "@id": "http://example.com/termType" },
+ "termTL0": { "@id": "http://example.com/termType", "@container": "@list" },
+ "termTL1": { "@id": "http://example.com/termType", "@container": "@list", "@type": "type1" },
+ "termTL2": { "@id": "http://example.com/termType", "@container": "@list", "@type": "type2" }
+ },
+ "@id": "http://example.com/id1",
+ "termLL0": [
+ "termLL0.1",
+ "termLL0.2"
+ ],
+ "termLL1": [
+ "termLL1.1",
+ "termLL1.2"
+ ],
+ "termLL2": [
+ "termLL2.1",
+ "termLL2.2"
+ ],
+ "termTL0": [
+ {
+ "@type": "type1",
+ "@value": "termTL0.1"
+ },
+ {
+ "@type": "type2",
+ "@value": "termTL0.2"
+ }
+ ],
+ "termTL1": [
+ "termTL1.1",
+ "termTL1.2"
+ ],
+ "termTL2": [
+ "termTL2.1",
+ "termTL2.2"
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0025-context.jsonld b/test/jsonld/1.1/compact/0025-context.jsonld
new file mode 100644
index 00000000..4e1cf64a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0025-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@container": "@language"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0025-in.jsonld b/test/jsonld/1.1/compact/0025-in.jsonld
new file mode 100644
index 00000000..8859b7af
--- /dev/null
+++ b/test/jsonld/1.1/compact/0025-in.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label":
+ [
+ {
+ "@value": "The Queen",
+ "@language": "en"
+ }, {
+ "@value": "Die Königin",
+ "@language": "de"
+ }, {
+ "@value": "Ihre Majestät",
+ "@language": "de"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0025-out.jsonld b/test/jsonld/1.1/compact/0025-out.jsonld
new file mode 100644
index 00000000..ca711673
--- /dev/null
+++ b/test/jsonld/1.1/compact/0025-out.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/test/jsonld/1.1/compact/0026-context.jsonld b/test/jsonld/1.1/compact/0026-context.jsonld
new file mode 100644
index 00000000..eb75e98e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0026-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/vocab/",
+ "@language": "it",
+ "s": { "@id": "label", "@language": "en" },
+ "label": {
+ "@container": "@language"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0026-in.jsonld b/test/jsonld/1.1/compact/0026-in.jsonld
new file mode 100644
index 00000000..bf691f95
--- /dev/null
+++ b/test/jsonld/1.1/compact/0026-in.jsonld
@@ -0,0 +1,21 @@
+[{
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {
+ "@value": "Il re",
+ "@language": "it"
+ }, {
+ "@value": "The king",
+ "@language": "en"
+ }, {
+ "@value": "The Queen",
+ "@language": "en"
+ }, {
+ "@value": "Die Königin",
+ "@language": "de"
+ }, {
+ "@value": "Ihre Majestät",
+ "@language": "de"
+ }
+ ]
+}]
diff --git a/test/jsonld/1.1/compact/0026-out.jsonld b/test/jsonld/1.1/compact/0026-out.jsonld
new file mode 100644
index 00000000..26e39fcf
--- /dev/null
+++ b/test/jsonld/1.1/compact/0026-out.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/vocab/",
+ "@language": "it",
+ "s": { "@id": "label", "@language": "en" },
+ "label": {
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "it": "Il re",
+ "en": [ "The king", "The Queen" ],
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+}
diff --git a/test/jsonld/1.1/compact/0027-context.jsonld b/test/jsonld/1.1/compact/0027-context.jsonld
new file mode 100644
index 00000000..6f9d41f3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0027-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "label": "http://example.com/vocab/label",
+ "container": { "@id": "label", "@container": "@set" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0027-in.jsonld b/test/jsonld/1.1/compact/0027-in.jsonld
new file mode 100644
index 00000000..bf691f95
--- /dev/null
+++ b/test/jsonld/1.1/compact/0027-in.jsonld
@@ -0,0 +1,21 @@
+[{
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {
+ "@value": "Il re",
+ "@language": "it"
+ }, {
+ "@value": "The king",
+ "@language": "en"
+ }, {
+ "@value": "The Queen",
+ "@language": "en"
+ }, {
+ "@value": "Die Königin",
+ "@language": "de"
+ }, {
+ "@value": "Ihre Majestät",
+ "@language": "de"
+ }
+ ]
+}]
diff --git a/test/jsonld/1.1/compact/0027-out.jsonld b/test/jsonld/1.1/compact/0027-out.jsonld
new file mode 100644
index 00000000..42c9bea9
--- /dev/null
+++ b/test/jsonld/1.1/compact/0027-out.jsonld
@@ -0,0 +1,25 @@
+{
+ "@context": {
+ "label": "http://example.com/vocab/label",
+ "container": { "@id": "label", "@container": "@set" }
+ },
+ "@id": "http://example.com/queen",
+ "container": [
+ {
+ "@value": "Il re",
+ "@language": "it"
+ }, {
+ "@value": "The king",
+ "@language": "en"
+ }, {
+ "@value": "The Queen",
+ "@language": "en"
+ }, {
+ "@value": "Die Königin",
+ "@language": "de"
+ }, {
+ "@value": "Ihre Majestät",
+ "@language": "de"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0028-context.jsonld b/test/jsonld/1.1/compact/0028-context.jsonld
new file mode 100644
index 00000000..0c1c4564
--- /dev/null
+++ b/test/jsonld/1.1/compact/0028-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://xmlns.com/foaf/0.1/",
+ "homepage": {
+ "@type": "@id"
+ },
+ "uri": "@id"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0028-in.jsonld b/test/jsonld/1.1/compact/0028-in.jsonld
new file mode 100644
index 00000000..36961fb0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0028-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@vocab": "http://xmlns.com/foaf/0.1/",
+ "homepage": {
+ "@type": "@id"
+ },
+ "uri": "@id"
+ },
+ "uri": "http://me.markus-lanthaler.com/",
+ "name": "Markus Lanthaler",
+ "homepage": "http://www.markus-lanthaler.com/"
+}
diff --git a/test/jsonld/1.1/compact/0028-out.jsonld b/test/jsonld/1.1/compact/0028-out.jsonld
new file mode 100644
index 00000000..36961fb0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0028-out.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@vocab": "http://xmlns.com/foaf/0.1/",
+ "homepage": {
+ "@type": "@id"
+ },
+ "uri": "@id"
+ },
+ "uri": "http://me.markus-lanthaler.com/",
+ "name": "Markus Lanthaler",
+ "homepage": "http://www.markus-lanthaler.com/"
+}
diff --git a/test/jsonld/1.1/compact/0029-context.jsonld b/test/jsonld/1.1/compact/0029-context.jsonld
new file mode 100644
index 00000000..fb52cf10
--- /dev/null
+++ b/test/jsonld/1.1/compact/0029-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "author": {"@id": "http://example.com/vocab/author", "@container": "@index" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0029-in.jsonld b/test/jsonld/1.1/compact/0029-in.jsonld
new file mode 100644
index 00000000..c63f933b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0029-in.jsonld
@@ -0,0 +1,10 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/vocab/author": [{
+ "@id": "http://example.org/person/1",
+ "@index": "regular"
+ }, {
+ "@id": "http://example.org/guest/cd24f329aa",
+ "@index": "guest"
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/0029-out.jsonld b/test/jsonld/1.1/compact/0029-out.jsonld
new file mode 100644
index 00000000..55400485
--- /dev/null
+++ b/test/jsonld/1.1/compact/0029-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "author": {
+ "@id": "http://example.com/vocab/author",
+ "@container": "@index"
+ }
+ },
+ "@id": "http://example.com/article",
+ "author": {
+ "regular": {
+ "@id": "http://example.org/person/1"
+ },
+ "guest": {
+ "@id": "http://example.org/guest/cd24f329aa"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0030-context.jsonld b/test/jsonld/1.1/compact/0030-context.jsonld
new file mode 100644
index 00000000..422e5cf7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0030-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "property": "http://example.com/property",
+ "indexContainer": { "@id": "http://example.com/container", "@container": "@index" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0030-in.jsonld b/test/jsonld/1.1/compact/0030-in.jsonld
new file mode 100644
index 00000000..4552a800
--- /dev/null
+++ b/test/jsonld/1.1/compact/0030-in.jsonld
@@ -0,0 +1,117 @@
+[
+ {
+ "@id": "http://example.org/indexTest",
+ "http://example.com/container": [
+ {
+ "@id": "http://example.org/nodeWithoutIndexA",
+ "@index": "A"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexA",
+ "@index": "this overrides the 'A' index from the container"
+ },
+ {
+ "@value": 1,
+ "@index": "A"
+ },
+ {
+ "@value": true,
+ "@index": "A"
+ },
+ {
+ "@value": false,
+ "@index": "A"
+ },
+ {
+ "@value": "simple string A",
+ "@index": "A"
+ },
+ {
+ "@value": "typed literal A",
+ "@type": "http://example.org/type",
+ "@index": "A"
+ },
+ {
+ "@value": "language-tagged string A",
+ "@language": "en",
+ "@index": "A"
+ },
+ {
+ "@value": "simple string B",
+ "@index": "B"
+ },
+ {
+ "@id": "http://example.org/nodeWithoutIndexC",
+ "@index": "C"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexC",
+ "@index": "this overrides the 'C' index from the container"
+ },
+ {
+ "@value": 3,
+ "@index": "C"
+ },
+ {
+ "@value": true,
+ "@index": "C"
+ },
+ {
+ "@value": false,
+ "@index": "C"
+ },
+ {
+ "@value": "simple string C",
+ "@index": "C"
+ },
+ {
+ "@value": "typed literal C",
+ "@type": "http://example.org/type",
+ "@index": "C"
+ },
+ {
+ "@value": "language-tagged string C",
+ "@language": "en",
+ "@index": "C"
+ }
+ ],
+ "http://example.com/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": "simple string no index"
+ },
+ {
+ "@value": "typed literal Prop",
+ "@type": "http://example.org/type",
+ "@index": "prop"
+ },
+ {
+ "@value": "language-tagged string Prop",
+ "@language": "en",
+ "@index": "prop"
+ },
+ {
+ "@value": "index using an array with just one element (automatic recovery)",
+ "@index": "prop"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0030-out.jsonld b/test/jsonld/1.1/compact/0030-out.jsonld
new file mode 100644
index 00000000..76b5f4d0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0030-out.jsonld
@@ -0,0 +1,86 @@
+{
+ "@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"
+ },
+ 1,
+ true,
+ false,
+ "simple string A",
+ {
+ "@value": "typed literal A",
+ "@type": "http://example.org/type"
+ },
+ {
+ "@value": "language-tagged string A",
+ "@language": "en"
+ }
+ ],
+ "this overrides the 'A' index from the container": {
+ "@id": "http://example.org/nodeWithIndexA"
+ },
+ "B": "simple string B",
+ "C": [
+ {
+ "@id": "http://example.org/nodeWithoutIndexC"
+ },
+ 3,
+ true,
+ false,
+ "simple string C",
+ {
+ "@value": "typed literal C",
+ "@type": "http://example.org/type"
+ },
+ {
+ "@value": "language-tagged string C",
+ "@language": "en"
+ }
+ ],
+ "this overrides the 'C' index from the container": {
+ "@id": "http://example.org/nodeWithIndexC"
+ }
+ },
+ "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"
+ },
+ "simple string no index",
+ {
+ "@value": "typed literal Prop",
+ "@type": "http://example.org/type",
+ "@index": "prop"
+ },
+ {
+ "@value": "language-tagged string Prop",
+ "@language": "en",
+ "@index": "prop"
+ },
+ {
+ "@value": "index using an array with just one element (automatic recovery)",
+ "@index": "prop"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0031-context.jsonld b/test/jsonld/1.1/compact/0031-context.jsonld
new file mode 100644
index 00000000..8e214847
--- /dev/null
+++ b/test/jsonld/1.1/compact/0031-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0031-in.jsonld b/test/jsonld/1.1/compact/0031-in.jsonld
new file mode 100644
index 00000000..c03623ef
--- /dev/null
+++ b/test/jsonld/1.1/compact/0031-in.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0031-out.jsonld b/test/jsonld/1.1/compact/0031-out.jsonld
new file mode 100644
index 00000000..7e65af4a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0031-out.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/test/jsonld/1.1/compact/0032-context.jsonld b/test/jsonld/1.1/compact/0032-context.jsonld
new file mode 100644
index 00000000..df67a7d4
--- /dev/null
+++ b/test/jsonld/1.1/compact/0032-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "knows": "http://xmlns.com/foaf/0.1/knows"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0032-in.jsonld b/test/jsonld/1.1/compact/0032-in.jsonld
new file mode 100644
index 00000000..c03623ef
--- /dev/null
+++ b/test/jsonld/1.1/compact/0032-in.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0032-out.jsonld b/test/jsonld/1.1/compact/0032-out.jsonld
new file mode 100644
index 00000000..7c3549ee
--- /dev/null
+++ b/test/jsonld/1.1/compact/0032-out.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/test/jsonld/1.1/compact/0033-context.jsonld b/test/jsonld/1.1/compact/0033-context.jsonld
new file mode 100644
index 00000000..5ae4350a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0033-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0033-in.jsonld b/test/jsonld/1.1/compact/0033-in.jsonld
new file mode 100644
index 00000000..c03623ef
--- /dev/null
+++ b/test/jsonld/1.1/compact/0033-in.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0033-out.jsonld b/test/jsonld/1.1/compact/0033-out.jsonld
new file mode 100644
index 00000000..60cf9ac2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0033-out.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/test/jsonld/1.1/compact/0034-context.jsonld b/test/jsonld/1.1/compact/0034-context.jsonld
new file mode 100644
index 00000000..5ae4350a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0034-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0034-in.jsonld b/test/jsonld/1.1/compact/0034-in.jsonld
new file mode 100644
index 00000000..d6d2ab38
--- /dev/null
+++ b/test/jsonld/1.1/compact/0034-in.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ },
+ {
+ "@id": "http://example.com/people/gregg",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Gregg Kellogg" } ]
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0034-out.jsonld b/test/jsonld/1.1/compact/0034-out.jsonld
new file mode 100644
index 00000000..8ef24370
--- /dev/null
+++ b/test/jsonld/1.1/compact/0034-out.jsonld
@@ -0,0 +1,18 @@
+{
+ "@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",
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "name": "Dave Longley"
+ },
+ {
+ "@id": "http://example.com/people/gregg",
+ "name": "Gregg Kellogg"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0035-context.jsonld b/test/jsonld/1.1/compact/0035-context.jsonld
new file mode 100644
index 00000000..b61dab00
--- /dev/null
+++ b/test/jsonld/1.1/compact/0035-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows", "@type": "@id" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0035-in.jsonld b/test/jsonld/1.1/compact/0035-in.jsonld
new file mode 100644
index 00000000..f63e141a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0035-in.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave"
+ },
+ {
+ "@id": "http://example.com/people/gregg"
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0035-out.jsonld b/test/jsonld/1.1/compact/0035-out.jsonld
new file mode 100644
index 00000000..3f10e016
--- /dev/null
+++ b/test/jsonld/1.1/compact/0035-out.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/test/jsonld/1.1/compact/0036-context.jsonld b/test/jsonld/1.1/compact/0036-context.jsonld
new file mode 100644
index 00000000..a4b35c51
--- /dev/null
+++ b/test/jsonld/1.1/compact/0036-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows", "@container": "@index" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0036-in.jsonld b/test/jsonld/1.1/compact/0036-in.jsonld
new file mode 100644
index 00000000..ffa49d96
--- /dev/null
+++ b/test/jsonld/1.1/compact/0036-in.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "@index": "Dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ },
+ {
+ "@id": "http://example.com/people/gregg",
+ "@index": "Gregg",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Gregg Kellogg" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0036-out.jsonld b/test/jsonld/1.1/compact/0036-out.jsonld
new file mode 100644
index 00000000..a9a83b0c
--- /dev/null
+++ b/test/jsonld/1.1/compact/0036-out.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/test/jsonld/1.1/compact/0037-context.jsonld b/test/jsonld/1.1/compact/0037-context.jsonld
new file mode 100644
index 00000000..42f8b2d7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0037-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "knows": "http://xmlns.com/foaf/0.1/knows",
+ "@vocab": "http://example.com/vocab/"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0037-in.jsonld b/test/jsonld/1.1/compact/0037-in.jsonld
new file mode 100644
index 00000000..992fb6aa
--- /dev/null
+++ b/test/jsonld/1.1/compact/0037-in.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ }
+ ],
+ "http://example.com/vocab/noTerm": [
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/compact/relative-node",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Compact keys using @vocab" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0037-out.jsonld b/test/jsonld/1.1/compact/0037-out.jsonld
new file mode 100644
index 00000000..b3a9bd80
--- /dev/null
+++ b/test/jsonld/1.1/compact/0037-out.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/test/jsonld/1.1/compact/0038-context.jsonld b/test/jsonld/1.1/compact/0038-context.jsonld
new file mode 100644
index 00000000..2db116e3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0038-context.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "site": "http://example.com/",
+ "site-cd": "site:site-schema/content-deployment/",
+ "title": {
+ "@id": "site-cd:node/article/title",
+ "@container": "@index"
+ },
+ "body": {
+ "@id": "site-cd:node/article/body",
+ "@container": "@index"
+ },
+ "field_tags": {
+ "@id": "site-cd:node/article/field_tags",
+ "@container": "@index"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0038-in.jsonld b/test/jsonld/1.1/compact/0038-in.jsonld
new file mode 100644
index 00000000..28b8f32b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0038-in.jsonld
@@ -0,0 +1,85 @@
+{
+ "@context": {
+ "site": "http://example.com/",
+ "site-cd": "site:site-schema/content-deployment/",
+ "title": {
+ "@id": "site-cd:node/article/title",
+ "@container": "@index"
+ },
+ "body": {
+ "@id": "site-cd:node/article/body",
+ "@container": "@index"
+ },
+ "field_tags": {
+ "@id": "site-cd:node/article/field_tags",
+ "@container": "@index"
+ }
+ },
+ "@id": "site:node/1",
+ "@type": "site-cd:node/article",
+ "title": {
+ "en": [
+ {
+ "@context": {
+ "value": "site-cd:node/article/title/value"
+ },
+ "@type": "site-cd:field-types/title_field",
+ "value": "This is the English title"
+ }
+ ],
+ "es": [
+ {
+ "@context": {
+ "value": "site-cd:node/article/title/value"
+ },
+ "@type": "site-cd:field-types/title_field",
+ "value": "Este es el t’tulo espa–ol"
+ }
+ ]
+ },
+ "body": {
+ "en": [
+ {
+ "@context": {
+ "value": "site-cd:node/article/body/value",
+ "summary": "site-cd:node/article/body/summary",
+ "format": "site-cd:node/article/body/format"
+ },
+ "@type": "site-cd:field-types/text_with_summary",
+ "value": "This is the English body. There is no Spanish body, so this will be displayed for both the English and Spanish versions.",
+ "summary": "This is the teaser for the body.",
+ "format": "full_html"
+ }
+ ]
+ },
+ "field_tags": {
+ "en": [
+ {
+ "@context": {
+ "uuid": "site-cd:taxonomy/term/uuid"
+ },
+ "@type": "site-cd:taxonomy/term",
+ "@id": "site:taxonomy/term/1",
+ "uuid": "e34b982c-98ac-4862-9b00-fa771a388010"
+ }
+ ],
+ "es": [
+ {
+ "@context": {
+ "uuid": "site-cd:taxonomy/term/uuid"
+ },
+ "@type": "site-cd:taxonomy/term",
+ "@id": "site:taxonomy/term/1",
+ "uuid": "e34b982c-98ac-4862-9b00-fa771a388010"
+ },
+ {
+ "@context": {
+ "uuid": "site-cd:taxonomy/term/uuid"
+ },
+ "@type": "site-cd:taxonomy/term",
+ "@id": "site:taxonomy/term/2",
+ "uuid": "a55b982c-58ac-4862-9b00-aa221a388010"
+ }
+ ]
+ }
+}
diff --git a/test/jsonld/1.1/compact/0038-out.jsonld b/test/jsonld/1.1/compact/0038-out.jsonld
new file mode 100644
index 00000000..78369d19
--- /dev/null
+++ b/test/jsonld/1.1/compact/0038-out.jsonld
@@ -0,0 +1,57 @@
+{
+ "@context": {
+ "site": "http://example.com/",
+ "site-cd": "site:site-schema/content-deployment/",
+ "title": {
+ "@id": "site-cd:node/article/title",
+ "@container": "@index"
+ },
+ "body": {
+ "@id": "site-cd:node/article/body",
+ "@container": "@index"
+ },
+ "field_tags": {
+ "@id": "site-cd:node/article/field_tags",
+ "@container": "@index"
+ }
+ },
+ "@id": "site:node/1",
+ "@type": "site-cd:node/article",
+ "title": {
+ "en": {
+ "@type": "site-cd:field-types/title_field",
+ "title:/value": "This is the English title"
+ },
+ "es": {
+ "@type": "site-cd:field-types/title_field",
+ "title:/value": "Este es el t’tulo espa–ol"
+ }
+ },
+ "body": {
+ "en": {
+ "@type": "site-cd:field-types/text_with_summary",
+ "body:/value": "This is the English body. There is no Spanish body, so this will be displayed for both the English and Spanish versions.",
+ "body:/summary": "This is the teaser for the body.",
+ "body:/format": "full_html"
+ }
+ },
+ "field_tags": {
+ "en": {
+ "@type": "site-cd:taxonomy/term",
+ "@id": "site:taxonomy/term/1",
+ "site-cd:taxonomy/term/uuid": "e34b982c-98ac-4862-9b00-fa771a388010"
+ },
+ "es": [
+ {
+ "@type": "site-cd:taxonomy/term",
+ "@id": "site:taxonomy/term/1",
+ "site-cd:taxonomy/term/uuid": "e34b982c-98ac-4862-9b00-fa771a388010"
+ },
+ {
+ "@type": "site-cd:taxonomy/term",
+ "@id": "site:taxonomy/term/2",
+ "site-cd:taxonomy/term/uuid": "a55b982c-58ac-4862-9b00-aa221a388010"
+ }
+ ]
+ }
+}
diff --git a/test/jsonld/1.1/compact/0038a-out.jsonld b/test/jsonld/1.1/compact/0038a-out.jsonld
new file mode 100644
index 00000000..a8f96589
--- /dev/null
+++ b/test/jsonld/1.1/compact/0038a-out.jsonld
@@ -0,0 +1,57 @@
+{
+ "@context": {
+ "site": "http://example.com/",
+ "site-cd": "site:site-schema/content-deployment/",
+ "title": {
+ "@id": "site-cd:node/article/title",
+ "@container": "@index"
+ },
+ "body": {
+ "@id": "site-cd:node/article/body",
+ "@container": "@index"
+ },
+ "field_tags": {
+ "@id": "site-cd:node/article/field_tags",
+ "@container": "@index"
+ }
+ },
+ "@id": "site:node/1",
+ "@type": "site-cd:node/article",
+ "title": {
+ "en": {
+ "@type": "site-cd:field-types/title_field",
+ "site-cd:node/article/title/value": "This is the English title"
+ },
+ "es": {
+ "@type": "site-cd:field-types/title_field",
+ "site-cd:node/article/title/value": "Este es el t’tulo espa–ol"
+ }
+ },
+ "body": {
+ "en": {
+ "@type": "site-cd:field-types/text_with_summary",
+ "site-cd:node/article/body/value": "This is the English body. There is no Spanish body, so this will be displayed for both the English and Spanish versions.",
+ "site-cd:node/article/body/summary": "This is the teaser for the body.",
+ "site-cd:node/article/body/format": "full_html"
+ }
+ },
+ "field_tags": {
+ "en": {
+ "@type": "site-cd:taxonomy/term",
+ "@id": "site:taxonomy/term/1",
+ "site-cd:taxonomy/term/uuid": "e34b982c-98ac-4862-9b00-fa771a388010"
+ },
+ "es": [
+ {
+ "@type": "site-cd:taxonomy/term",
+ "@id": "site:taxonomy/term/1",
+ "site-cd:taxonomy/term/uuid": "e34b982c-98ac-4862-9b00-fa771a388010"
+ },
+ {
+ "@type": "site-cd:taxonomy/term",
+ "@id": "site:taxonomy/term/2",
+ "site-cd:taxonomy/term/uuid": "a55b982c-58ac-4862-9b00-aa221a388010"
+ }
+ ]
+ }
+}
diff --git a/test/jsonld/1.1/compact/0039-context.jsonld b/test/jsonld/1.1/compact/0039-context.jsonld
new file mode 100644
index 00000000..998900ca
--- /dev/null
+++ b/test/jsonld/1.1/compact/0039-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {}
+}
diff --git a/test/jsonld/1.1/compact/0039-in.jsonld b/test/jsonld/1.1/compact/0039-in.jsonld
new file mode 100644
index 00000000..0e1bfa70
--- /dev/null
+++ b/test/jsonld/1.1/compact/0039-in.jsonld
@@ -0,0 +1,11 @@
+[
+ {
+ "@id": "http://example.com/graph/1",
+ "@graph": [
+ {
+ "@id": "http://example.com/node/1",
+ "http://example.com/property": [ { "@value": "property" } ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0039-out.jsonld b/test/jsonld/1.1/compact/0039-out.jsonld
new file mode 100644
index 00000000..cfd1e6f7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0039-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@id": "http://example.com/graph/1",
+ "@graph": [
+ {
+ "@id": "http://example.com/node/1",
+ "http://example.com/property": "property"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0040-context.jsonld b/test/jsonld/1.1/compact/0040-context.jsonld
new file mode 100644
index 00000000..998900ca
--- /dev/null
+++ b/test/jsonld/1.1/compact/0040-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {}
+}
diff --git a/test/jsonld/1.1/compact/0040-in.jsonld b/test/jsonld/1.1/compact/0040-in.jsonld
new file mode 100644
index 00000000..268fdca3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0040-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://me.markus-lanthaler.com/",
+ "http://example.com/list": {
+ "@list": [
+ "one item"
+ ]
+ }
+ }
+]
diff --git a/test/jsonld/1.1/compact/0040-out.jsonld b/test/jsonld/1.1/compact/0040-out.jsonld
new file mode 100644
index 00000000..efc0abf0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0040-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@id": "http://me.markus-lanthaler.com/",
+ "http://example.com/list": {
+ "@list": [
+ "one item"
+ ]
+ }
+}
diff --git a/test/jsonld/1.1/compact/0041-context.jsonld b/test/jsonld/1.1/compact/0041-context.jsonld
new file mode 100644
index 00000000..91515d6b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0041-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "name": { "@id": "http://example.com/property", "@container": "@list" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0041-in.jsonld b/test/jsonld/1.1/compact/0041-in.jsonld
new file mode 100644
index 00000000..7110b987
--- /dev/null
+++ b/test/jsonld/1.1/compact/0041-in.jsonld
@@ -0,0 +1,15 @@
+[
+ {
+ "@id": "http://example.com/node",
+ "http://example.com/property": [
+ {
+ "@index": "an index",
+ "@list": [
+ {
+ "@value": "one item"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0041-out.jsonld b/test/jsonld/1.1/compact/0041-out.jsonld
new file mode 100644
index 00000000..7881a11d
--- /dev/null
+++ b/test/jsonld/1.1/compact/0041-out.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "name": { "@id": "http://example.com/property", "@container": "@list" }
+ },
+ "@id": "http://example.com/node",
+ "http://example.com/property": {
+ "@list": [
+ "one item"
+ ],
+ "@index": "an index"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0042-context.jsonld b/test/jsonld/1.1/compact/0042-context.jsonld
new file mode 100644
index 00000000..68bb529e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0042-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "listAlias": "@list",
+ "indexAlias": "@index"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0042-in.jsonld b/test/jsonld/1.1/compact/0042-in.jsonld
new file mode 100644
index 00000000..9ac7b73b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0042-in.jsonld
@@ -0,0 +1,15 @@
+[
+ {
+ "@id": "http://example.com/node",
+ "http://example.com/property": [
+ {
+ "@list": [
+ {
+ "@value": "one item"
+ }
+ ],
+ "@index": "an index"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0042-out.jsonld b/test/jsonld/1.1/compact/0042-out.jsonld
new file mode 100644
index 00000000..b7af449b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0042-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "listAlias": "@list",
+ "indexAlias": "@index"
+ },
+ "@id": "http://example.com/node",
+ "http://example.com/property": {
+ "listAlias": [
+ "one item"
+ ],
+ "indexAlias": "an index"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0043-context.jsonld b/test/jsonld/1.1/compact/0043-context.jsonld
new file mode 100644
index 00000000..6ad117d6
--- /dev/null
+++ b/test/jsonld/1.1/compact/0043-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "name": "http://xmlns.com/foaf/0.1/name"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0043-in.jsonld b/test/jsonld/1.1/compact/0043-in.jsonld
new file mode 100644
index 00000000..2f1d8272
--- /dev/null
+++ b/test/jsonld/1.1/compact/0043-in.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "@id": "http://example.com/node",
+ "http://example.com/name": [
+ { "@value": "Markus Lanthaler" }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0043-out.jsonld b/test/jsonld/1.1/compact/0043-out.jsonld
new file mode 100644
index 00000000..bbba7479
--- /dev/null
+++ b/test/jsonld/1.1/compact/0043-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "name": "http://xmlns.com/foaf/0.1/name"
+ },
+ "@id": "http://example.com/node",
+ "http://example.com/name": "Markus Lanthaler"
+}
diff --git a/test/jsonld/1.1/compact/0044-context.jsonld b/test/jsonld/1.1/compact/0044-context.jsonld
new file mode 100644
index 00000000..27fbdfff
--- /dev/null
+++ b/test/jsonld/1.1/compact/0044-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "knows": { "@id": "http://xmlns.com/foaf/0.1/knows", "@type": "@id" },
+ "knowsVocab": { "@id": "http://xmlns.com/foaf/0.1/knows", "@type": "@vocab" },
+ "DefinedTerm": "http://example.com/people/DefinedTerm"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0044-in.jsonld b/test/jsonld/1.1/compact/0044-in.jsonld
new file mode 100644
index 00000000..d6e842c9
--- /dev/null
+++ b/test/jsonld/1.1/compact/0044-in.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave"
+ },
+ {
+ "@id": "http://example.com/people/DefinedTerm"
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0044-out.jsonld b/test/jsonld/1.1/compact/0044-out.jsonld
new file mode 100644
index 00000000..3a13df69
--- /dev/null
+++ b/test/jsonld/1.1/compact/0044-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "knows": { "@id": "http://xmlns.com/foaf/0.1/knows", "@type": "@id" },
+ "knowsVocab": { "@id": "http://xmlns.com/foaf/0.1/knows", "@type": "@vocab" },
+ "DefinedTerm": "http://example.com/people/DefinedTerm"
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "@reverse": {
+ "knows": "http://example.com/people/dave",
+ "knowsVocab": "DefinedTerm"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0045-context.jsonld b/test/jsonld/1.1/compact/0045-context.jsonld
new file mode 100644
index 00000000..5854b8a0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0045-context.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/test/jsonld/1.1/compact/0045-in.jsonld b/test/jsonld/1.1/compact/0045-in.jsonld
new file mode 100644
index 00000000..5f974bd4
--- /dev/null
+++ b/test/jsonld/1.1/compact/0045-in.jsonld
@@ -0,0 +1,19 @@
+[
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/compact/term",
+ "http://example.com/property": [
+ {
+ "@id": "http://example.com/compact-iris#are-considered",
+ "http://example.com/property": [
+ { "@value": "@id supports the following values: relative, absolute, and compact IRIs" }
+ ]
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/parent-node",
+ "http://example.com/property": [
+ { "@value": "relative IRIs get resolved against the document's base IRI" }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0045-out.jsonld b/test/jsonld/1.1/compact/0045-out.jsonld
new file mode 100644
index 00000000..5854b8a0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0045-out.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/test/jsonld/1.1/compact/0046-context.jsonld b/test/jsonld/1.1/compact/0046-context.jsonld
new file mode 100644
index 00000000..998900ca
--- /dev/null
+++ b/test/jsonld/1.1/compact/0046-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {}
+}
diff --git a/test/jsonld/1.1/compact/0046-in.jsonld b/test/jsonld/1.1/compact/0046-in.jsonld
new file mode 100644
index 00000000..7bd3ee0e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0046-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://me.markus-lanthaler.com/",
+ "http://xmlns.com/foaf/0.1/name": "Markus Lanthaler"
+ },
+ {
+ "@id": "http://greggkellogg.net/foaf#me",
+ "http://xmlns.com/foaf/0.1/name": "Gregg Kellogg"
+ }
+]
diff --git a/test/jsonld/1.1/compact/0046-out.jsonld b/test/jsonld/1.1/compact/0046-out.jsonld
new file mode 100644
index 00000000..32bffd4d
--- /dev/null
+++ b/test/jsonld/1.1/compact/0046-out.jsonld
@@ -0,0 +1,12 @@
+{
+ "@graph": [
+ {
+ "@id": "http://me.markus-lanthaler.com/",
+ "http://xmlns.com/foaf/0.1/name": "Markus Lanthaler"
+ },
+ {
+ "@id": "http://greggkellogg.net/foaf#me",
+ "http://xmlns.com/foaf/0.1/name": "Gregg Kellogg"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0047-context.jsonld b/test/jsonld/1.1/compact/0047-context.jsonld
new file mode 100644
index 00000000..850aa0dd
--- /dev/null
+++ b/test/jsonld/1.1/compact/0047-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@base": "http://example.com/",
+ "link": { "@id": "http://example.com/link", "@type": "@id" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0047-in.jsonld b/test/jsonld/1.1/compact/0047-in.jsonld
new file mode 100644
index 00000000..51eda26a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0047-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@base": "http://example.com/",
+ "link": { "@id": "http://example.com/link", "@type": "@id" }
+ },
+ "link": "relative-url"
+}
diff --git a/test/jsonld/1.1/compact/0047-out.jsonld b/test/jsonld/1.1/compact/0047-out.jsonld
new file mode 100644
index 00000000..51eda26a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0047-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@base": "http://example.com/",
+ "link": { "@id": "http://example.com/link", "@type": "@id" }
+ },
+ "link": "relative-url"
+}
diff --git a/test/jsonld/1.1/compact/0048-context.jsonld b/test/jsonld/1.1/compact/0048-context.jsonld
new file mode 100644
index 00000000..9dd70c2d
--- /dev/null
+++ b/test/jsonld/1.1/compact/0048-context.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@language": "de",
+ "propertyLanguageNull": {
+ "@id": "http://example.com/propertyA",
+ "@language": null
+ },
+ "propertyNoLang": "http://example.com/propertyA",
+ "propertyB": "http://example.com/propertyB"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0048-in.jsonld b/test/jsonld/1.1/compact/0048-in.jsonld
new file mode 100644
index 00000000..f25f71a3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0048-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "http://example.com/propertyA": 5,
+ "http://example.com/propertyB": 5
+}
diff --git a/test/jsonld/1.1/compact/0048-out.jsonld b/test/jsonld/1.1/compact/0048-out.jsonld
new file mode 100644
index 00000000..a14bac08
--- /dev/null
+++ b/test/jsonld/1.1/compact/0048-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@language": "de",
+ "propertyLanguageNull": {
+ "@id": "http://example.com/propertyA",
+ "@language": null
+ },
+ "propertyNoLang": "http://example.com/propertyA",
+ "propertyB": "http://example.com/propertyB"
+ },
+ "propertyLanguageNull": 5,
+ "propertyB": 5
+}
diff --git a/test/jsonld/1.1/compact/0049-context.jsonld b/test/jsonld/1.1/compact/0049-context.jsonld
new file mode 100644
index 00000000..559cb535
--- /dev/null
+++ b/test/jsonld/1.1/compact/0049-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "property": { "@id": "http://example.org", "@type": "@id" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0049-in.jsonld b/test/jsonld/1.1/compact/0049-in.jsonld
new file mode 100644
index 00000000..99258812
--- /dev/null
+++ b/test/jsonld/1.1/compact/0049-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "property": { "@id": "http://example.org", "@type": "@id" }
+ },
+ "property": { "@list": [ "http://example.com/node/a", "http://example.com/node/b", "http://example.com/node/c" ] }
+}
diff --git a/test/jsonld/1.1/compact/0049-out.jsonld b/test/jsonld/1.1/compact/0049-out.jsonld
new file mode 100644
index 00000000..99258812
--- /dev/null
+++ b/test/jsonld/1.1/compact/0049-out.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "property": { "@id": "http://example.org", "@type": "@id" }
+ },
+ "property": { "@list": [ "http://example.com/node/a", "http://example.com/node/b", "http://example.com/node/c" ] }
+}
diff --git a/test/jsonld/1.1/compact/0050-context.jsonld b/test/jsonld/1.1/compact/0050-context.jsonld
new file mode 100644
index 00000000..5ae4350a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0050-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0050-in.jsonld b/test/jsonld/1.1/compact/0050-in.jsonld
new file mode 100644
index 00000000..f63e141a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0050-in.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave"
+ },
+ {
+ "@id": "http://example.com/people/gregg"
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0050-out.jsonld b/test/jsonld/1.1/compact/0050-out.jsonld
new file mode 100644
index 00000000..438ecb5c
--- /dev/null
+++ b/test/jsonld/1.1/compact/0050-out.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" },
+ { "@id": "http://example.com/people/gregg" }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0051-context.jsonld b/test/jsonld/1.1/compact/0051-context.jsonld
new file mode 100644
index 00000000..998900ca
--- /dev/null
+++ b/test/jsonld/1.1/compact/0051-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {}
+}
diff --git a/test/jsonld/1.1/compact/0051-in.jsonld b/test/jsonld/1.1/compact/0051-in.jsonld
new file mode 100644
index 00000000..7d086fa7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0051-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "http://example.org/term": {
+ "@list": [1]
+ }
+}
diff --git a/test/jsonld/1.1/compact/0051-out.jsonld b/test/jsonld/1.1/compact/0051-out.jsonld
new file mode 100644
index 00000000..7d086fa7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0051-out.jsonld
@@ -0,0 +1,5 @@
+{
+ "http://example.org/term": {
+ "@list": [1]
+ }
+}
diff --git a/test/jsonld/1.1/compact/0052-context.jsonld b/test/jsonld/1.1/compact/0052-context.jsonld
new file mode 100644
index 00000000..22482804
--- /dev/null
+++ b/test/jsonld/1.1/compact/0052-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "graph": "@graph",
+ "term": "http://example.org/term"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0052-in.jsonld b/test/jsonld/1.1/compact/0052-in.jsonld
new file mode 100644
index 00000000..0780a0ea
--- /dev/null
+++ b/test/jsonld/1.1/compact/0052-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "graph": "@graph",
+ "term": "http://example.org/term"
+ },
+ "graph": [
+ {
+ "term": {
+ "@list": [1]
+ }
+ },
+ {
+ "term": {
+ "@list": [2]
+ }
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0052-out.jsonld b/test/jsonld/1.1/compact/0052-out.jsonld
new file mode 100644
index 00000000..0780a0ea
--- /dev/null
+++ b/test/jsonld/1.1/compact/0052-out.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "graph": "@graph",
+ "term": "http://example.org/term"
+ },
+ "graph": [
+ {
+ "term": {
+ "@list": [1]
+ }
+ },
+ {
+ "term": {
+ "@list": [2]
+ }
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0053-context.jsonld b/test/jsonld/1.1/compact/0053-context.jsonld
new file mode 100644
index 00000000..490c4cdf
--- /dev/null
+++ b/test/jsonld/1.1/compact/0053-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/0053-in.jsonld b/test/jsonld/1.1/compact/0053-in.jsonld
new file mode 100644
index 00000000..7be3023c
--- /dev/null
+++ b/test/jsonld/1.1/compact/0053-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/term": [{"@id": "http://example.org/enum"}]
+}]
diff --git a/test/jsonld/1.1/compact/0053-out.jsonld b/test/jsonld/1.1/compact/0053-out.jsonld
new file mode 100644
index 00000000..3ac3ea98
--- /dev/null
+++ b/test/jsonld/1.1/compact/0053-out.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"}
+ },
+ "term": "http://example.org/enum"
+}
diff --git a/test/jsonld/1.1/compact/0054-context.jsonld b/test/jsonld/1.1/compact/0054-context.jsonld
new file mode 100644
index 00000000..6bc8522a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0054-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"},
+ "enum": {"@id": "http://example.org/enum"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/0054-in.jsonld b/test/jsonld/1.1/compact/0054-in.jsonld
new file mode 100644
index 00000000..7be3023c
--- /dev/null
+++ b/test/jsonld/1.1/compact/0054-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/term": [{"@id": "http://example.org/enum"}]
+}]
diff --git a/test/jsonld/1.1/compact/0054-out.jsonld b/test/jsonld/1.1/compact/0054-out.jsonld
new file mode 100644
index 00000000..680afbf0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0054-out.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/test/jsonld/1.1/compact/0055-context.jsonld b/test/jsonld/1.1/compact/0055-context.jsonld
new file mode 100644
index 00000000..6bc8522a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0055-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"},
+ "enum": {"@id": "http://example.org/enum"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/0055-in.jsonld b/test/jsonld/1.1/compact/0055-in.jsonld
new file mode 100644
index 00000000..680afbf0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0055-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/test/jsonld/1.1/compact/0055-out.jsonld b/test/jsonld/1.1/compact/0055-out.jsonld
new file mode 100644
index 00000000..680afbf0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0055-out.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/test/jsonld/1.1/compact/0056-context.jsonld b/test/jsonld/1.1/compact/0056-context.jsonld
new file mode 100644
index 00000000..6b167d61
--- /dev/null
+++ b/test/jsonld/1.1/compact/0056-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"},
+ "doNotSelect": {"@id": "http://example.org/term"},
+ "enum": {"@id": "http://example.org/enum"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/0056-in.jsonld b/test/jsonld/1.1/compact/0056-in.jsonld
new file mode 100644
index 00000000..7be3023c
--- /dev/null
+++ b/test/jsonld/1.1/compact/0056-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/term": [{"@id": "http://example.org/enum"}]
+}]
diff --git a/test/jsonld/1.1/compact/0056-out.jsonld b/test/jsonld/1.1/compact/0056-out.jsonld
new file mode 100644
index 00000000..b9e3dc45
--- /dev/null
+++ b/test/jsonld/1.1/compact/0056-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"},
+ "doNotSelect": {"@id": "http://example.org/term"},
+ "enum": {"@id": "http://example.org/enum"}
+ },
+ "term": "enum"
+}
diff --git a/test/jsonld/1.1/compact/0057-context.jsonld b/test/jsonld/1.1/compact/0057-context.jsonld
new file mode 100644
index 00000000..dd554d96
--- /dev/null
+++ b/test/jsonld/1.1/compact/0057-context.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "homepageID": { "@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@id" },
+ "homepageV": { "@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@vocab" },
+ "linkID": { "@id": "http://example.com/link", "@type": "@id" },
+ "linkV": { "@id": "http://example.com/link", "@type": "@vocab" },
+ "MarkusHomepage": "http://www.markus-lanthaler.com/",
+ "relative-iri": "http://example.com/error-if-this-is-used-for-link"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0057-in.jsonld b/test/jsonld/1.1/compact/0057-in.jsonld
new file mode 100644
index 00000000..47a30751
--- /dev/null
+++ b/test/jsonld/1.1/compact/0057-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "homepageID": { "@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@id" },
+ "homepageV": { "@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@vocab" },
+ "linkID": { "@id": "http://example.com/link", "@type": "@id" },
+ "linkV": { "@id": "http://example.com/link", "@type": "@vocab" },
+ "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",
+ "homepageV": "MarkusHomepage",
+ "linkID": "relative-iri"
+}
diff --git a/test/jsonld/1.1/compact/0057-out.jsonld b/test/jsonld/1.1/compact/0057-out.jsonld
new file mode 100644
index 00000000..47a30751
--- /dev/null
+++ b/test/jsonld/1.1/compact/0057-out.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "homepageID": { "@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@id" },
+ "homepageV": { "@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@vocab" },
+ "linkID": { "@id": "http://example.com/link", "@type": "@id" },
+ "linkV": { "@id": "http://example.com/link", "@type": "@vocab" },
+ "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",
+ "homepageV": "MarkusHomepage",
+ "linkID": "relative-iri"
+}
diff --git a/test/jsonld/1.1/compact/0058-context.jsonld b/test/jsonld/1.1/compact/0058-context.jsonld
new file mode 100644
index 00000000..15958db6
--- /dev/null
+++ b/test/jsonld/1.1/compact/0058-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "notChosen": {"@id": "http://example.org/term", "@type": "@vocab"},
+ "chosen": {"@id": "http://example.org/term", "@type": "@id"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/0058-in.jsonld b/test/jsonld/1.1/compact/0058-in.jsonld
new file mode 100644
index 00000000..7be3023c
--- /dev/null
+++ b/test/jsonld/1.1/compact/0058-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/term": [{"@id": "http://example.org/enum"}]
+}]
diff --git a/test/jsonld/1.1/compact/0058-out.jsonld b/test/jsonld/1.1/compact/0058-out.jsonld
new file mode 100644
index 00000000..83ffd521
--- /dev/null
+++ b/test/jsonld/1.1/compact/0058-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "notChosen": {"@id": "http://example.org/term", "@type": "@vocab"},
+ "chosen": {"@id": "http://example.org/term", "@type": "@id"}
+ },
+ "chosen": "http://example.org/enum"
+}
diff --git a/test/jsonld/1.1/compact/0059-context.jsonld b/test/jsonld/1.1/compact/0059-context.jsonld
new file mode 100644
index 00000000..af661cf9
--- /dev/null
+++ b/test/jsonld/1.1/compact/0059-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "Bar": "http://example.com/vocab#Bar",
+ "foo": {
+ "@id": "http://example.com/vocab#foo",
+ "@type": "@vocab"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0059-in.jsonld b/test/jsonld/1.1/compact/0059-in.jsonld
new file mode 100644
index 00000000..1d38d4ac
--- /dev/null
+++ b/test/jsonld/1.1/compact/0059-in.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "http://example.com/vocab#foo": [
+ { "@id": "http://example.com/vocab#Bar" },
+ { "@id": "http://example.com/vocab#Baz" }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0059-out.jsonld b/test/jsonld/1.1/compact/0059-out.jsonld
new file mode 100644
index 00000000..75f71560
--- /dev/null
+++ b/test/jsonld/1.1/compact/0059-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "Bar": "http://example.com/vocab#Bar",
+ "foo": {
+ "@id": "http://example.com/vocab#foo",
+ "@type": "@vocab"
+ }
+ },
+ "foo": [
+ "Bar",
+ "http://example.com/vocab#Baz"
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0060-context.jsonld b/test/jsonld/1.1/compact/0060-context.jsonld
new file mode 100644
index 00000000..a308b57b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0060-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "Bar": "http://example.com/vocab#Bar",
+ "foo": {
+ "@id": "http://example.com/vocab#foo",
+ "@type": "@id"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0060-in.jsonld b/test/jsonld/1.1/compact/0060-in.jsonld
new file mode 100644
index 00000000..1d38d4ac
--- /dev/null
+++ b/test/jsonld/1.1/compact/0060-in.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "http://example.com/vocab#foo": [
+ { "@id": "http://example.com/vocab#Bar" },
+ { "@id": "http://example.com/vocab#Baz" }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0060-out.jsonld b/test/jsonld/1.1/compact/0060-out.jsonld
new file mode 100644
index 00000000..c183efb0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0060-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "Bar": "http://example.com/vocab#Bar",
+ "foo": {
+ "@id": "http://example.com/vocab#foo",
+ "@type": "@id"
+ }
+ },
+ "foo": [
+ "http://example.com/vocab#Bar",
+ "http://example.com/vocab#Baz"
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0061-context.jsonld b/test/jsonld/1.1/compact/0061-context.jsonld
new file mode 100644
index 00000000..a8fcd898
--- /dev/null
+++ b/test/jsonld/1.1/compact/0061-context.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "Bar": "http://example.com/vocab#Bar",
+ "fooI": {
+ "@id": "http://example.com/vocab#foo",
+ "@type": "@id"
+ },
+ "fooV": {
+ "@id": "http://example.com/vocab#foo",
+ "@type": "@vocab"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0061-in.jsonld b/test/jsonld/1.1/compact/0061-in.jsonld
new file mode 100644
index 00000000..1d38d4ac
--- /dev/null
+++ b/test/jsonld/1.1/compact/0061-in.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "http://example.com/vocab#foo": [
+ { "@id": "http://example.com/vocab#Bar" },
+ { "@id": "http://example.com/vocab#Baz" }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0061-out.jsonld b/test/jsonld/1.1/compact/0061-out.jsonld
new file mode 100644
index 00000000..beec5afb
--- /dev/null
+++ b/test/jsonld/1.1/compact/0061-out.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "Bar": "http://example.com/vocab#Bar",
+ "fooI": {
+ "@id": "http://example.com/vocab#foo",
+ "@type": "@id"
+ },
+ "fooV": {
+ "@id": "http://example.com/vocab#foo",
+ "@type": "@vocab"
+ }
+ },
+ "fooV": "Bar",
+ "fooI": "http://example.com/vocab#Baz"
+}
diff --git a/test/jsonld/1.1/compact/0062-context.jsonld b/test/jsonld/1.1/compact/0062-context.jsonld
new file mode 100644
index 00000000..82745ef2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0062-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": { "@id": "http://example.org/term", "@type": "@vocab" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0062-in.jsonld b/test/jsonld/1.1/compact/0062-in.jsonld
new file mode 100644
index 00000000..732cc923
--- /dev/null
+++ b/test/jsonld/1.1/compact/0062-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/test/jsonld/1.1/compact/0062-out.jsonld b/test/jsonld/1.1/compact/0062-out.jsonld
new file mode 100644
index 00000000..7c9bfbf3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0062-out.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": { "@id": "http://example.org/term", "@type": "@vocab" }
+ },
+ "term": "https://w3c.github.io/json-ld-api/tests/compact/not-a-term-thus-a-relative-IRI"
+}
diff --git a/test/jsonld/1.1/compact/0063-context.jsonld b/test/jsonld/1.1/compact/0063-context.jsonld
new file mode 100644
index 00000000..e06e6dcf
--- /dev/null
+++ b/test/jsonld/1.1/compact/0063-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": { "@id": "http://example.org/term", "@type": "@vocab" },
+ "prefix": "http://example.com/vocab#"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0063-in.jsonld b/test/jsonld/1.1/compact/0063-in.jsonld
new file mode 100644
index 00000000..68dc3249
--- /dev/null
+++ b/test/jsonld/1.1/compact/0063-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/test/jsonld/1.1/compact/0063-out.jsonld b/test/jsonld/1.1/compact/0063-out.jsonld
new file mode 100644
index 00000000..68dc3249
--- /dev/null
+++ b/test/jsonld/1.1/compact/0063-out.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/test/jsonld/1.1/compact/0064-context.jsonld b/test/jsonld/1.1/compact/0064-context.jsonld
new file mode 100644
index 00000000..99bef741
--- /dev/null
+++ b/test/jsonld/1.1/compact/0064-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "property": { "@id": "http://example.com/property", "@container": "@index" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0064-in.jsonld b/test/jsonld/1.1/compact/0064-in.jsonld
new file mode 100644
index 00000000..6a7f2267
--- /dev/null
+++ b/test/jsonld/1.1/compact/0064-in.jsonld
@@ -0,0 +1,17 @@
+[
+ {
+ "@id": "http://example.com.com/",
+ "http://example.com/property": [
+ {
+ "@value": "Deutsche Zeichenfolge in @index-map",
+ "@index": "first",
+ "@language": "de"
+ },
+ {
+ "@value": "English string in @index-map",
+ "@index": "second",
+ "@language": "en"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0064-out.jsonld b/test/jsonld/1.1/compact/0064-out.jsonld
new file mode 100644
index 00000000..5bc1ec0a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0064-out.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "property": { "@id": "http://example.com/property", "@container": "@index" }
+ },
+ "@id": "http://example.com.com/",
+ "property": {
+ "first": {
+ "@language": "de",
+ "@value": "Deutsche Zeichenfolge in @index-map"
+ },
+ "second": {
+ "@language": "en",
+ "@value": "English string in @index-map"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0065-context.jsonld b/test/jsonld/1.1/compact/0065-context.jsonld
new file mode 100644
index 00000000..17d7c1ae
--- /dev/null
+++ b/test/jsonld/1.1/compact/0065-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "property": { "@id": "http://example.com/property", "@container": "@language" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0065-in.jsonld b/test/jsonld/1.1/compact/0065-in.jsonld
new file mode 100644
index 00000000..6a7f2267
--- /dev/null
+++ b/test/jsonld/1.1/compact/0065-in.jsonld
@@ -0,0 +1,17 @@
+[
+ {
+ "@id": "http://example.com.com/",
+ "http://example.com/property": [
+ {
+ "@value": "Deutsche Zeichenfolge in @index-map",
+ "@index": "first",
+ "@language": "de"
+ },
+ {
+ "@value": "English string in @index-map",
+ "@index": "second",
+ "@language": "en"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0065-out.jsonld b/test/jsonld/1.1/compact/0065-out.jsonld
new file mode 100644
index 00000000..6a7a8f20
--- /dev/null
+++ b/test/jsonld/1.1/compact/0065-out.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "property": { "@id": "http://example.com/property", "@container": "@language" }
+ },
+ "@id": "http://example.com.com/",
+ "http://example.com/property": [
+ {
+ "@index": "first",
+ "@language": "de",
+ "@value": "Deutsche Zeichenfolge in @index-map"
+ },
+ {
+ "@index": "second",
+ "@language": "en",
+ "@value": "English string in @index-map"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0066-context.jsonld b/test/jsonld/1.1/compact/0066-context.jsonld
new file mode 100644
index 00000000..1f8f0b46
--- /dev/null
+++ b/test/jsonld/1.1/compact/0066-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "links": { "@id": "http://www.example.com/link", "@type": "@id", "@container": "@list" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0066-in.jsonld b/test/jsonld/1.1/compact/0066-in.jsonld
new file mode 100644
index 00000000..8528714a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0066-in.jsonld
@@ -0,0 +1,34 @@
+[
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/compact/relativeIris",
+ "@type": [
+ "https://w3c.github.io/json-ld-api/tests/compact/link",
+ "https://w3c.github.io/json-ld-api/tests/compact/0066-in.jsonld#fragment-works",
+ "https://w3c.github.io/json-ld-api/tests/compact/0066-in.jsonld?query=works",
+ "https://w3c.github.io/json-ld-api/tests/",
+ "https://w3c.github.io/json-ld-api/",
+ "https://w3c.github.io/json-ld-api/parent",
+ "https://w3c.github.io/parent-parent-eq-root",
+ "https://w3c.github.io/still-root",
+ "https://w3c.github.io/too-many-dots",
+ "https://w3c.github.io/absolute",
+ "http://example.org/scheme-relative"
+ ],
+ "http://www.example.com/link": [ {
+ "@list": [
+ { "@id": "https://w3c.github.io/json-ld-api/tests/compact/link" },
+ { "@id": "https://w3c.github.io/json-ld-api/tests/compact/0066-in.jsonld#fragment-works" },
+ { "@id": "https://w3c.github.io/json-ld-api/tests/compact/0066-in.jsonld?query=works" },
+ { "@id": "https://w3c.github.io/json-ld-api/tests/" },
+ { "@id": "https://w3c.github.io/json-ld-api/" },
+ { "@id": "https://w3c.github.io/json-ld-api/parent" },
+ { "@id": "https://w3c.github.io/json-ld-api/parent#fragment" },
+ { "@id": "https://w3c.github.io/parent-parent-eq-root" },
+ { "@id": "https://w3c.github.io/still-root" },
+ { "@id": "https://w3c.github.io/too-many-dots" },
+ { "@id": "https://w3c.github.io/absolute" },
+ { "@id": "http://example.org/scheme-relative" }
+ ]
+ } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0066-out.jsonld b/test/jsonld/1.1/compact/0066-out.jsonld
new file mode 100644
index 00000000..ae1310d9
--- /dev/null
+++ b/test/jsonld/1.1/compact/0066-out.jsonld
@@ -0,0 +1,33 @@
+{
+ "@context": {
+ "links": { "@id": "http://www.example.com/link", "@type": "@id", "@container": "@list" }
+ },
+ "@id": "relativeIris",
+ "@type": [
+ "https://w3c.github.io/json-ld-api/tests/compact/link",
+ "https://w3c.github.io/json-ld-api/tests/compact/0066-in.jsonld#fragment-works",
+ "https://w3c.github.io/json-ld-api/tests/compact/0066-in.jsonld?query=works",
+ "https://w3c.github.io/json-ld-api/tests/",
+ "https://w3c.github.io/json-ld-api/",
+ "https://w3c.github.io/json-ld-api/parent",
+ "https://w3c.github.io/parent-parent-eq-root",
+ "https://w3c.github.io/still-root",
+ "https://w3c.github.io/too-many-dots",
+ "https://w3c.github.io/absolute",
+ "http://example.org/scheme-relative"
+ ],
+ "links": [
+ "link",
+ "#fragment-works",
+ "?query=works",
+ "../",
+ "../../",
+ "../../parent",
+ "../../parent#fragment",
+ "../../../parent-parent-eq-root",
+ "../../../still-root",
+ "../../../too-many-dots",
+ "../../../absolute",
+ "http://example.org/scheme-relative"
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0067-context.jsonld b/test/jsonld/1.1/compact/0067-context.jsonld
new file mode 100644
index 00000000..5ae4350a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0067-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0067-in.jsonld b/test/jsonld/1.1/compact/0067-in.jsonld
new file mode 100644
index 00000000..273226d2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0067-in.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ },
+ {
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Gregg Kellogg" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0067-out.jsonld b/test/jsonld/1.1/compact/0067-out.jsonld
new file mode 100644
index 00000000..dc313893
--- /dev/null
+++ b/test/jsonld/1.1/compact/0067-out.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/test/jsonld/1.1/compact/0068-context.jsonld b/test/jsonld/1.1/compact/0068-context.jsonld
new file mode 100644
index 00000000..73fc1013
--- /dev/null
+++ b/test/jsonld/1.1/compact/0068-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows", "@container": "@set" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0068-in.jsonld b/test/jsonld/1.1/compact/0068-in.jsonld
new file mode 100644
index 00000000..6aaa37a9
--- /dev/null
+++ b/test/jsonld/1.1/compact/0068-in.jsonld
@@ -0,0 +1,13 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave"
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0068-out.jsonld b/test/jsonld/1.1/compact/0068-out.jsonld
new file mode 100644
index 00000000..7c179361
--- /dev/null
+++ b/test/jsonld/1.1/compact/0068-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows", "@container": "@set" }
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "isKnownBy": [
+ { "@id": "http://example.com/people/dave" }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0069-context.jsonld b/test/jsonld/1.1/compact/0069-context.jsonld
new file mode 100644
index 00000000..73fc1013
--- /dev/null
+++ b/test/jsonld/1.1/compact/0069-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows", "@container": "@set" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0069-in.jsonld b/test/jsonld/1.1/compact/0069-in.jsonld
new file mode 100644
index 00000000..6aaa37a9
--- /dev/null
+++ b/test/jsonld/1.1/compact/0069-in.jsonld
@@ -0,0 +1,13 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave"
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0069-out.jsonld b/test/jsonld/1.1/compact/0069-out.jsonld
new file mode 100644
index 00000000..7c179361
--- /dev/null
+++ b/test/jsonld/1.1/compact/0069-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name",
+ "isKnownBy": { "@reverse": "http://xmlns.com/foaf/0.1/knows", "@container": "@set" }
+ },
+ "@id": "http://example.com/people/markus",
+ "name": "Markus Lanthaler",
+ "isKnownBy": [
+ { "@id": "http://example.com/people/dave" }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0070-context.jsonld b/test/jsonld/1.1/compact/0070-context.jsonld
new file mode 100644
index 00000000..b1fde0c0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0070-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": "http://example/term"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0070-in.jsonld b/test/jsonld/1.1/compact/0070-in.jsonld
new file mode 100644
index 00000000..94e6d6a6
--- /dev/null
+++ b/test/jsonld/1.1/compact/0070-in.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example/foo",
+ "http://example/term": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/compact/0070-out.jsonld b/test/jsonld/1.1/compact/0070-out.jsonld
new file mode 100644
index 00000000..136cb3a7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0070-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "term": "http://example/term"
+ },
+ "@graph": [{
+ "@id": "http://example/foo",
+ "term": ["value"]
+ }]
+}
diff --git a/test/jsonld/1.1/compact/0071-context.jsonld b/test/jsonld/1.1/compact/0071-context.jsonld
new file mode 100644
index 00000000..cdb3a52b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0071-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": "http://example.com/foo"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0071-in.jsonld b/test/jsonld/1.1/compact/0071-in.jsonld
new file mode 100644
index 00000000..7122f823
--- /dev/null
+++ b/test/jsonld/1.1/compact/0071-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": [{
+ "foo": "http://example.com/foo"
+ }, {
+ "bar": "http://example.com/bar"
+ }],
+ "foo": "foo-value",
+ "bar": "bar-value"
+}
diff --git a/test/jsonld/1.1/compact/0071-out.jsonld b/test/jsonld/1.1/compact/0071-out.jsonld
new file mode 100644
index 00000000..e916361e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0071-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "foo": "http://example.com/foo"
+ },
+ "foo": "foo-value",
+ "http://example.com/bar": "bar-value"
+}
diff --git a/test/jsonld/1.1/compact/0072-context.jsonld b/test/jsonld/1.1/compact/0072-context.jsonld
new file mode 100644
index 00000000..0026dacf
--- /dev/null
+++ b/test/jsonld/1.1/compact/0072-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@language": "en"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0072-in.jsonld b/test/jsonld/1.1/compact/0072-in.jsonld
new file mode 100644
index 00000000..35f7cdd3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0072-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.com/foo": "foo-value"
+}
diff --git a/test/jsonld/1.1/compact/0072-out.jsonld b/test/jsonld/1.1/compact/0072-out.jsonld
new file mode 100644
index 00000000..298459cf
--- /dev/null
+++ b/test/jsonld/1.1/compact/0072-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "http://example.com/foo": {
+ "@value": "foo-value"
+ },
+ "@context": {
+ "@language": "en"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0073-context.jsonld b/test/jsonld/1.1/compact/0073-context.jsonld
new file mode 100644
index 00000000..6ec724ad
--- /dev/null
+++ b/test/jsonld/1.1/compact/0073-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "id": {"@type": "@id", "@id": "@id"},
+ "type": {"@type": "@id", "@id": "@type"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/0073-in.jsonld b/test/jsonld/1.1/compact/0073-in.jsonld
new file mode 100644
index 00000000..6891f660
--- /dev/null
+++ b/test/jsonld/1.1/compact/0073-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "id": {"@type": "@id", "@id": "@id"},
+ "type": {"@type": "@id", "@id": "@type"}
+ },
+ "id": "http://example.org/anno9",
+ "type": "http://example.org/Annotation"
+}
diff --git a/test/jsonld/1.1/compact/0073-out.jsonld b/test/jsonld/1.1/compact/0073-out.jsonld
new file mode 100644
index 00000000..55fd2404
--- /dev/null
+++ b/test/jsonld/1.1/compact/0073-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "id": {
+ "@type": "@id",
+ "@id": "@id"
+ },
+ "type": {
+ "@type": "@id",
+ "@id": "@type"
+ }
+ },
+ "id": "http://example.org/anno9",
+ "type": "http://example.org/Annotation"
+}
diff --git a/test/jsonld/1.1/compact/0074-context.jsonld b/test/jsonld/1.1/compact/0074-context.jsonld
new file mode 100644
index 00000000..9109cf99
--- /dev/null
+++ b/test/jsonld/1.1/compact/0074-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "name": {
+ "@type": "@id",
+ "@container": "@list",
+ "@id": "https://schema.org/name"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0074-in.jsonld b/test/jsonld/1.1/compact/0074-in.jsonld
new file mode 100644
index 00000000..a89d800b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0074-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "name": {
+ "@type": "@id",
+ "@container": "@list",
+ "@id": "https://schema.org/name"
+ }
+ },
+ "name": []
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0074-out.jsonld b/test/jsonld/1.1/compact/0074-out.jsonld
new file mode 100644
index 00000000..a89d800b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0074-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "name": {
+ "@type": "@id",
+ "@container": "@list",
+ "@id": "https://schema.org/name"
+ }
+ },
+ "name": []
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0075-context.jsonld b/test/jsonld/1.1/compact/0075-context.jsonld
new file mode 100644
index 00000000..fa920369
--- /dev/null
+++ b/test/jsonld/1.1/compact/0075-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "ns": "http://example.com/core#"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0075-in.jsonld b/test/jsonld/1.1/compact/0075-in.jsonld
new file mode 100644
index 00000000..593402c5
--- /dev/null
+++ b/test/jsonld/1.1/compact/0075-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.com/core#associated": { "@id": "#Light"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0075-out.jsonld b/test/jsonld/1.1/compact/0075-out.jsonld
new file mode 100644
index 00000000..2a0a7b89
--- /dev/null
+++ b/test/jsonld/1.1/compact/0075-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "ns": "http://example.com/core#"
+ },
+ "ns:associated": {
+ "@id": "#Light"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0076-context.jsonld b/test/jsonld/1.1/compact/0076-context.jsonld
new file mode 100644
index 00000000..8be5b7aa
--- /dev/null
+++ b/test/jsonld/1.1/compact/0076-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"@base": "http://example.com/api/things/1"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0076-in.jsonld b/test/jsonld/1.1/compact/0076-in.jsonld
new file mode 100644
index 00000000..38c60371
--- /dev/null
+++ b/test/jsonld/1.1/compact/0076-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.com/api/things/1",
+ "http://example.com": ""
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0076-out.jsonld b/test/jsonld/1.1/compact/0076-out.jsonld
new file mode 100644
index 00000000..039d4c48
--- /dev/null
+++ b/test/jsonld/1.1/compact/0076-out.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {"@base": "http://example.com/api/things/1"},
+ "@id": "1",
+ "http://example.com": ""
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0077-context.jsonld b/test/jsonld/1.1/compact/0077-context.jsonld
new file mode 100644
index 00000000..f4475591
--- /dev/null
+++ b/test/jsonld/1.1/compact/0077-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0077-in.jsonld b/test/jsonld/1.1/compact/0077-in.jsonld
new file mode 100644
index 00000000..8514ced2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0077-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": {
+ "value": "x"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0077-out.jsonld b/test/jsonld/1.1/compact/0077-out.jsonld
new file mode 100644
index 00000000..3f44ffbb
--- /dev/null
+++ b/test/jsonld/1.1/compact/0077-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {
+ "@id": "foo:input",
+ "@container": "@graph"
+ },
+ "value": "foo:value"
+ },
+ "input": {
+ "value": "x"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0078-context.jsonld b/test/jsonld/1.1/compact/0078-context.jsonld
new file mode 100644
index 00000000..6b66ae3e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0078-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0078-in.jsonld b/test/jsonld/1.1/compact/0078-in.jsonld
new file mode 100644
index 00000000..8514ced2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0078-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": {
+ "value": "x"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0078-out.jsonld b/test/jsonld/1.1/compact/0078-out.jsonld
new file mode 100644
index 00000000..b283b6fe
--- /dev/null
+++ b/test/jsonld/1.1/compact/0078-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {
+ "@id": "foo:input",
+ "@container": ["@graph", "@set"]
+ },
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }]
+}
diff --git a/test/jsonld/1.1/compact/0079-context.jsonld b/test/jsonld/1.1/compact/0079-context.jsonld
new file mode 100644
index 00000000..24bd0245
--- /dev/null
+++ b/test/jsonld/1.1/compact/0079-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/0079-in.jsonld b/test/jsonld/1.1/compact/0079-in.jsonld
new file mode 100644
index 00000000..e34a943b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0079-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }],
+ "@index": "ndx"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0079-out.jsonld b/test/jsonld/1.1/compact/0079-out.jsonld
new file mode 100644
index 00000000..f7c67f80
--- /dev/null
+++ b/test/jsonld/1.1/compact/0079-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": {
+ "value": "x"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0080-context.jsonld b/test/jsonld/1.1/compact/0080-context.jsonld
new file mode 100644
index 00000000..24bd0245
--- /dev/null
+++ b/test/jsonld/1.1/compact/0080-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/0080-in.jsonld b/test/jsonld/1.1/compact/0080-in.jsonld
new file mode 100644
index 00000000..369917c8
--- /dev/null
+++ b/test/jsonld/1.1/compact/0080-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.org/gid",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0080-out.jsonld b/test/jsonld/1.1/compact/0080-out.jsonld
new file mode 100644
index 00000000..53d524d3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0080-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": {
+ "@id": "http://example.org/gid",
+ "@graph": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0081-context.jsonld b/test/jsonld/1.1/compact/0081-context.jsonld
new file mode 100644
index 00000000..5db515f3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0081-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0081-in.jsonld b/test/jsonld/1.1/compact/0081-in.jsonld
new file mode 100644
index 00000000..dfc5b0aa
--- /dev/null
+++ b/test/jsonld/1.1/compact/0081-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0081-out.jsonld b/test/jsonld/1.1/compact/0081-out.jsonld
new file mode 100644
index 00000000..83d3182b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0081-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0082-context.jsonld b/test/jsonld/1.1/compact/0082-context.jsonld
new file mode 100644
index 00000000..f12919ce
--- /dev/null
+++ b/test/jsonld/1.1/compact/0082-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index", "@set"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0082-in.jsonld b/test/jsonld/1.1/compact/0082-in.jsonld
new file mode 100644
index 00000000..dfc5b0aa
--- /dev/null
+++ b/test/jsonld/1.1/compact/0082-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0082-out.jsonld b/test/jsonld/1.1/compact/0082-out.jsonld
new file mode 100644
index 00000000..02b54e3d
--- /dev/null
+++ b/test/jsonld/1.1/compact/0082-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index", "@set"]}
+ },
+ "input": {
+ "g1": [{"value": "x"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0083-context.jsonld b/test/jsonld/1.1/compact/0083-context.jsonld
new file mode 100644
index 00000000..5db515f3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0083-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0083-in.jsonld b/test/jsonld/1.1/compact/0083-in.jsonld
new file mode 100644
index 00000000..d362e26a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0083-in.jsonld
@@ -0,0 +1,9 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }],
+ "@index": "g1",
+ "@id": "http://example.org/id"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0083-out.jsonld b/test/jsonld/1.1/compact/0083-out.jsonld
new file mode 100644
index 00000000..d7d42dfb
--- /dev/null
+++ b/test/jsonld/1.1/compact/0083-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "@id": "http://example.org/id",
+ "@index": "g1",
+ "@graph": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0084-context.jsonld b/test/jsonld/1.1/compact/0084-context.jsonld
new file mode 100644
index 00000000..2de136b0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0084-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0084-in.jsonld b/test/jsonld/1.1/compact/0084-in.jsonld
new file mode 100644
index 00000000..e01c12ee
--- /dev/null
+++ b/test/jsonld/1.1/compact/0084-in.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0084-out.jsonld b/test/jsonld/1.1/compact/0084-out.jsonld
new file mode 100644
index 00000000..6594c8d6
--- /dev/null
+++ b/test/jsonld/1.1/compact/0084-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "@none": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0085-context.jsonld b/test/jsonld/1.1/compact/0085-context.jsonld
new file mode 100644
index 00000000..2de136b0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0085-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0085-in.jsonld b/test/jsonld/1.1/compact/0085-in.jsonld
new file mode 100644
index 00000000..67441b87
--- /dev/null
+++ b/test/jsonld/1.1/compact/0085-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }],
+ "@id": "http://example.org/id"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0085-out.jsonld b/test/jsonld/1.1/compact/0085-out.jsonld
new file mode 100644
index 00000000..274777bf
--- /dev/null
+++ b/test/jsonld/1.1/compact/0085-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.org/id" : {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0086-context.jsonld b/test/jsonld/1.1/compact/0086-context.jsonld
new file mode 100644
index 00000000..5b7f1503
--- /dev/null
+++ b/test/jsonld/1.1/compact/0086-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id", "@set"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0086-in.jsonld b/test/jsonld/1.1/compact/0086-in.jsonld
new file mode 100644
index 00000000..e01c12ee
--- /dev/null
+++ b/test/jsonld/1.1/compact/0086-in.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0086-out.jsonld b/test/jsonld/1.1/compact/0086-out.jsonld
new file mode 100644
index 00000000..870273bd
--- /dev/null
+++ b/test/jsonld/1.1/compact/0086-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id", "@set"]}
+ },
+ "input": {"@none": [{"value": "x"}]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0087-context.jsonld b/test/jsonld/1.1/compact/0087-context.jsonld
new file mode 100644
index 00000000..5b7f1503
--- /dev/null
+++ b/test/jsonld/1.1/compact/0087-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id", "@set"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0087-in.jsonld b/test/jsonld/1.1/compact/0087-in.jsonld
new file mode 100644
index 00000000..67441b87
--- /dev/null
+++ b/test/jsonld/1.1/compact/0087-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }],
+ "@id": "http://example.org/id"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0087-out.jsonld b/test/jsonld/1.1/compact/0087-out.jsonld
new file mode 100644
index 00000000..d8420e59
--- /dev/null
+++ b/test/jsonld/1.1/compact/0087-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id", "@set"]}
+ },
+ "input": {
+ "http://example.org/id" : [{"value": "x"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0088-context.jsonld b/test/jsonld/1.1/compact/0088-context.jsonld
new file mode 100644
index 00000000..2de136b0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0088-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0088-in.jsonld b/test/jsonld/1.1/compact/0088-in.jsonld
new file mode 100644
index 00000000..e34a943b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0088-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }],
+ "@index": "ndx"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0088-out.jsonld b/test/jsonld/1.1/compact/0088-out.jsonld
new file mode 100644
index 00000000..6594c8d6
--- /dev/null
+++ b/test/jsonld/1.1/compact/0088-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "@none": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0089-context.jsonld b/test/jsonld/1.1/compact/0089-context.jsonld
new file mode 100644
index 00000000..c496190b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0089-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/vocab/",
+ "@language": "it",
+ "s": { "@id": "label", "@language": null },
+ "label": {
+ "@container": "@language"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0089-in.jsonld b/test/jsonld/1.1/compact/0089-in.jsonld
new file mode 100644
index 00000000..3224cac4
--- /dev/null
+++ b/test/jsonld/1.1/compact/0089-in.jsonld
@@ -0,0 +1,23 @@
+[{
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {
+ "@value": "Il re",
+ "@language": "it"
+ }, {
+ "@value": "The king",
+ "@language": "en"
+ }, {
+ "@value": "The Queen",
+ "@language": "en"
+ }, {
+ "@value": "Die Königin",
+ "@language": "de"
+ }, {
+ "@value": "Ihre Majestät",
+ "@language": "de"
+ }, {
+ "@value": "No Language"
+ }
+ ]
+}]
diff --git a/test/jsonld/1.1/compact/0089-out.jsonld b/test/jsonld/1.1/compact/0089-out.jsonld
new file mode 100644
index 00000000..0e018880
--- /dev/null
+++ b/test/jsonld/1.1/compact/0089-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/vocab/",
+ "@language": "it",
+ "s": { "@id": "label", "@language": null },
+ "label": {
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "it": "Il re",
+ "en": [ "The king", "The Queen" ],
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ },
+ "s": "No Language"
+}
diff --git a/test/jsonld/1.1/compact/0090-context.jsonld b/test/jsonld/1.1/compact/0090-context.jsonld
new file mode 100644
index 00000000..09a8981a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0090-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": "foo:input",
+ "value": "foo:value"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0090-in.jsonld b/test/jsonld/1.1/compact/0090-in.jsonld
new file mode 100644
index 00000000..8514ced2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0090-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": {
+ "value": "x"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0090-out.jsonld b/test/jsonld/1.1/compact/0090-out.jsonld
new file mode 100644
index 00000000..42e31005
--- /dev/null
+++ b/test/jsonld/1.1/compact/0090-out.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": "foo:input",
+ "value": "foo:value"
+ },
+ "input": {
+ "@graph": {
+ "value": "x"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0091-context.jsonld b/test/jsonld/1.1/compact/0091-context.jsonld
new file mode 100644
index 00000000..d6538be3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0091-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": "foo:input",
+ "value": "foo:value"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0091-in.jsonld b/test/jsonld/1.1/compact/0091-in.jsonld
new file mode 100644
index 00000000..4d7ff511
--- /dev/null
+++ b/test/jsonld/1.1/compact/0091-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": {
+ "value": "x"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0091-out.jsonld b/test/jsonld/1.1/compact/0091-out.jsonld
new file mode 100644
index 00000000..21df3f71
--- /dev/null
+++ b/test/jsonld/1.1/compact/0091-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": "foo:input",
+ "value": "foo:value"
+ },
+ "@graph": [{
+ "input": [{
+ "@graph": [{
+ "value": ["x"]
+ }]
+ }]
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0092-context.jsonld b/test/jsonld/1.1/compact/0092-context.jsonld
new file mode 100644
index 00000000..09a8981a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0092-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": "foo:input",
+ "value": "foo:value"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0092-in.jsonld b/test/jsonld/1.1/compact/0092-in.jsonld
new file mode 100644
index 00000000..f439807e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0092-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+}
diff --git a/test/jsonld/1.1/compact/0092-out.jsonld b/test/jsonld/1.1/compact/0092-out.jsonld
new file mode 100644
index 00000000..21c06e9c
--- /dev/null
+++ b/test/jsonld/1.1/compact/0092-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": "foo:input",
+ "value": "foo:value"
+ },
+ "input": [
+ {"@graph": {"value": "x"}},
+ {"@graph": {"value": "y"}}
+ ]
+}
diff --git a/test/jsonld/1.1/compact/0093-context.jsonld b/test/jsonld/1.1/compact/0093-context.jsonld
new file mode 100644
index 00000000..09a8981a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0093-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": "foo:input",
+ "value": "foo:value"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0093-in.jsonld b/test/jsonld/1.1/compact/0093-in.jsonld
new file mode 100644
index 00000000..f439807e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0093-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+}
diff --git a/test/jsonld/1.1/compact/0093-out.jsonld b/test/jsonld/1.1/compact/0093-out.jsonld
new file mode 100644
index 00000000..82135170
--- /dev/null
+++ b/test/jsonld/1.1/compact/0093-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": "foo:input",
+ "value": "foo:value"
+ },
+ "@graph": [{
+ "input": [
+ {"@graph": [{"value": ["x"]}]},
+ {"@graph": [{"value": ["y"]}]}
+ ]
+ }]
+}
diff --git a/test/jsonld/1.1/compact/0094-context.jsonld b/test/jsonld/1.1/compact/0094-context.jsonld
new file mode 100644
index 00000000..09a8981a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0094-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": "foo:input",
+ "value": "foo:value"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0094-in.jsonld b/test/jsonld/1.1/compact/0094-in.jsonld
new file mode 100644
index 00000000..8514ced2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0094-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": {
+ "value": "x"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0094-out.jsonld b/test/jsonld/1.1/compact/0094-out.jsonld
new file mode 100644
index 00000000..42e31005
--- /dev/null
+++ b/test/jsonld/1.1/compact/0094-out.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": "foo:input",
+ "value": "foo:value"
+ },
+ "input": {
+ "@graph": {
+ "value": "x"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/0095-context.jsonld b/test/jsonld/1.1/compact/0095-context.jsonld
new file mode 100644
index 00000000..3eafcca0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0095-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/",
+ "@vocab": ""
+ }
+}
diff --git a/test/jsonld/1.1/compact/0095-in.jsonld b/test/jsonld/1.1/compact/0095-in.jsonld
new file mode 100644
index 00000000..7ebcdd70
--- /dev/null
+++ b/test/jsonld/1.1/compact/0095-in.jsonld
@@ -0,0 +1,13 @@
+[
+ {
+ "@id": "http://example.com/some/deep/directory/and/relativePropertyIris",
+ "http://example.com/absolute": [{"@value": "/absolute"}],
+ "http://example.com/some/deep/directory/": [{"@value": "deep/directory"}],
+ "http://example.com/some/deep/directory/and/": [{"@value": "deep/directory/and/"}],
+ "http://example.com/some/#fragment-works": [{"@value": "#fragment-works"}],
+ "http://example.com/some/?query=works": [{"@value": "?query=works"}],
+ "http://example.com/some/link": [{"@value": "link"}],
+ "http://example.com/some/../parent": [{"@value": "../parent"}],
+ "http://example.com/too-many-dots": [{"@value": "too-many-dots"}]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0095-out.jsonld b/test/jsonld/1.1/compact/0095-out.jsonld
new file mode 100644
index 00000000..1e72be2b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0095-out.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/",
+ "@vocab": ""
+ },
+ "#fragment-works": "#fragment-works",
+ "../parent": "../parent",
+ "?query=works": "?query=works",
+ "@id": "deep/directory/and/relativePropertyIris",
+ "deep/directory/": "deep/directory",
+ "deep/directory/and/": "deep/directory/and/",
+ "http://example.com/absolute": "/absolute",
+ "http://example.com/too-many-dots": "too-many-dots",
+ "link": "link"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0096-context.jsonld b/test/jsonld/1.1/compact/0096-context.jsonld
new file mode 100644
index 00000000..2af65c48
--- /dev/null
+++ b/test/jsonld/1.1/compact/0096-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0096-in.jsonld b/test/jsonld/1.1/compact/0096-in.jsonld
new file mode 100644
index 00000000..5e4e5bd9
--- /dev/null
+++ b/test/jsonld/1.1/compact/0096-in.jsonld
@@ -0,0 +1,15 @@
+[{
+ "foo:input": [{
+ "@graph": [{
+ "foo:value": [{
+ "@value": "x"
+ }]
+ }]
+ }, {
+ "@graph": [{
+ "foo:value": [{
+ "@value": "y"
+ }]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0096-out.jsonld b/test/jsonld/1.1/compact/0096-out.jsonld
new file mode 100644
index 00000000..5fdb9a7a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0096-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0097-context.jsonld b/test/jsonld/1.1/compact/0097-context.jsonld
new file mode 100644
index 00000000..c6cb8aa0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0097-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0097-in.jsonld b/test/jsonld/1.1/compact/0097-in.jsonld
new file mode 100644
index 00000000..5e4e5bd9
--- /dev/null
+++ b/test/jsonld/1.1/compact/0097-in.jsonld
@@ -0,0 +1,15 @@
+[{
+ "foo:input": [{
+ "@graph": [{
+ "foo:value": [{
+ "@value": "x"
+ }]
+ }]
+ }, {
+ "@graph": [{
+ "foo:value": [{
+ "@value": "y"
+ }]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0097-out.jsonld b/test/jsonld/1.1/compact/0097-out.jsonld
new file mode 100644
index 00000000..148d5722
--- /dev/null
+++ b/test/jsonld/1.1/compact/0097-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0098-context.jsonld b/test/jsonld/1.1/compact/0098-context.jsonld
new file mode 100644
index 00000000..5db515f3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0098-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0098-in.jsonld b/test/jsonld/1.1/compact/0098-in.jsonld
new file mode 100644
index 00000000..6788bb49
--- /dev/null
+++ b/test/jsonld/1.1/compact/0098-in.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0098-out.jsonld b/test/jsonld/1.1/compact/0098-out.jsonld
new file mode 100644
index 00000000..4c7c6f45
--- /dev/null
+++ b/test/jsonld/1.1/compact/0098-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": {"value": "x"},
+ "g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0099-context.jsonld b/test/jsonld/1.1/compact/0099-context.jsonld
new file mode 100644
index 00000000..dc5b9003
--- /dev/null
+++ b/test/jsonld/1.1/compact/0099-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index", "@set"]}
+ },
+ "input": {
+ "g1": {"value": "x"},
+ "g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0099-in.jsonld b/test/jsonld/1.1/compact/0099-in.jsonld
new file mode 100644
index 00000000..6788bb49
--- /dev/null
+++ b/test/jsonld/1.1/compact/0099-in.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0099-out.jsonld b/test/jsonld/1.1/compact/0099-out.jsonld
new file mode 100644
index 00000000..b7946f08
--- /dev/null
+++ b/test/jsonld/1.1/compact/0099-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index", "@set"]}
+ },
+ "input": {
+ "g1": [{"value": "x"}],
+ "g2": [{"value": "y"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0100-context.jsonld b/test/jsonld/1.1/compact/0100-context.jsonld
new file mode 100644
index 00000000..2de136b0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0100-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0100-in.jsonld b/test/jsonld/1.1/compact/0100-in.jsonld
new file mode 100644
index 00000000..45ce037e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0100-in.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@id": "http://example.com/g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0100-out.jsonld b/test/jsonld/1.1/compact/0100-out.jsonld
new file mode 100644
index 00000000..0010e0aa
--- /dev/null
+++ b/test/jsonld/1.1/compact/0100-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {"value": "x"},
+ "http://example.com/g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0101-context.jsonld b/test/jsonld/1.1/compact/0101-context.jsonld
new file mode 100644
index 00000000..5b7f1503
--- /dev/null
+++ b/test/jsonld/1.1/compact/0101-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id", "@set"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0101-in.jsonld b/test/jsonld/1.1/compact/0101-in.jsonld
new file mode 100644
index 00000000..45ce037e
--- /dev/null
+++ b/test/jsonld/1.1/compact/0101-in.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@id": "http://example.com/g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0101-out.jsonld b/test/jsonld/1.1/compact/0101-out.jsonld
new file mode 100644
index 00000000..c20697c3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0101-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id", "@set"]}
+ },
+ "input": {
+ "http://example.com/g1": [{"value": "x"}],
+ "http://example.com/g2": [{"value": "y"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0102-context.jsonld b/test/jsonld/1.1/compact/0102-context.jsonld
new file mode 100644
index 00000000..5db515f3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0102-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0102-in.jsonld b/test/jsonld/1.1/compact/0102-in.jsonld
new file mode 100644
index 00000000..27d2cd88
--- /dev/null
+++ b/test/jsonld/1.1/compact/0102-in.jsonld
@@ -0,0 +1,23 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "a"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "b"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0102-out.jsonld b/test/jsonld/1.1/compact/0102-out.jsonld
new file mode 100644
index 00000000..3e1c5afa
--- /dev/null
+++ b/test/jsonld/1.1/compact/0102-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": [{"value": "x"}, {"value": "y"}],
+ "g2": [{"value": "a"}, {"value": "b"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0103-context.jsonld b/test/jsonld/1.1/compact/0103-context.jsonld
new file mode 100644
index 00000000..2de136b0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0103-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0103-in.jsonld b/test/jsonld/1.1/compact/0103-in.jsonld
new file mode 100644
index 00000000..a11e1d72
--- /dev/null
+++ b/test/jsonld/1.1/compact/0103-in.jsonld
@@ -0,0 +1,23 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }, {
+ "@id": "http://example.com/g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "a"}]
+ }]
+ }, {
+ "@id": "http://example.com/g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "b"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0103-out.jsonld b/test/jsonld/1.1/compact/0103-out.jsonld
new file mode 100644
index 00000000..182c031d
--- /dev/null
+++ b/test/jsonld/1.1/compact/0103-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": [{"value": "x"}, {"value": "y"}],
+ "http://example.com/g2": [{"value": "a"}, {"value": "b"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0104-context.jsonld b/test/jsonld/1.1/compact/0104-context.jsonld
new file mode 100644
index 00000000..36d7203c
--- /dev/null
+++ b/test/jsonld/1.1/compact/0104-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@type": {"@container": "@set"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0104-in.jsonld b/test/jsonld/1.1/compact/0104-in.jsonld
new file mode 100644
index 00000000..9bcd4848
--- /dev/null
+++ b/test/jsonld/1.1/compact/0104-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@type": "http://example.org/type"
+}
diff --git a/test/jsonld/1.1/compact/0104-out.jsonld b/test/jsonld/1.1/compact/0104-out.jsonld
new file mode 100644
index 00000000..8699cfa7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0104-out.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@type": {"@container": "@set"}
+ },
+ "@type": ["http://example.org/type"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0105-context.jsonld b/test/jsonld/1.1/compact/0105-context.jsonld
new file mode 100644
index 00000000..5031f856
--- /dev/null
+++ b/test/jsonld/1.1/compact/0105-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "type": {"@id": "@type", "@container": "@set"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0105-in.jsonld b/test/jsonld/1.1/compact/0105-in.jsonld
new file mode 100644
index 00000000..9bcd4848
--- /dev/null
+++ b/test/jsonld/1.1/compact/0105-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@type": "http://example.org/type"
+}
diff --git a/test/jsonld/1.1/compact/0105-out.jsonld b/test/jsonld/1.1/compact/0105-out.jsonld
new file mode 100644
index 00000000..5595923a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0105-out.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "type": {"@id": "@type", "@container": "@set"}
+ },
+ "type": ["http://example.org/type"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0106-context.jsonld b/test/jsonld/1.1/compact/0106-context.jsonld
new file mode 100644
index 00000000..5031f856
--- /dev/null
+++ b/test/jsonld/1.1/compact/0106-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "type": {"@id": "@type", "@container": "@set"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0106-in.jsonld b/test/jsonld/1.1/compact/0106-in.jsonld
new file mode 100644
index 00000000..9bcd4848
--- /dev/null
+++ b/test/jsonld/1.1/compact/0106-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@type": "http://example.org/type"
+}
diff --git a/test/jsonld/1.1/compact/0106-out.jsonld b/test/jsonld/1.1/compact/0106-out.jsonld
new file mode 100644
index 00000000..84326c5c
--- /dev/null
+++ b/test/jsonld/1.1/compact/0106-out.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "type": {"@id": "@type", "@container": "@set"}
+ },
+ "type": "http://example.org/type"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0107-context.jsonld b/test/jsonld/1.1/compact/0107-context.jsonld
new file mode 100644
index 00000000..9a7115dd
--- /dev/null
+++ b/test/jsonld/1.1/compact/0107-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/",
+ "@vocab": "other/"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0107-in.jsonld b/test/jsonld/1.1/compact/0107-in.jsonld
new file mode 100644
index 00000000..13505e4b
--- /dev/null
+++ b/test/jsonld/1.1/compact/0107-in.jsonld
@@ -0,0 +1,13 @@
+[
+ {
+ "@id": "http://example.com/some/deep/directory/and/relativePropertyIris",
+ "http://example.com/absolute": [{"@value": "/absolute"}],
+ "http://example.com/some/other/deep/directory/": [{"@value": "deep/directory"}],
+ "http://example.com/some/other/deep/directory/and/": [{"@value": "deep/directory/and/"}],
+ "http://example.com/some/other/#fragment-works": [{"@value": "#fragment-works"}],
+ "http://example.com/some/other/?query=works": [{"@value": "?query=works"}],
+ "http://example.com/some/other/link": [{"@value": "link"}],
+ "http://example.com/some/other/../parent": [{"@value": "../parent"}],
+ "http://example.com/too-many-dots": [{"@value": "too-many-dots"}]
+ }
+]
diff --git a/test/jsonld/1.1/compact/0107-out.jsonld b/test/jsonld/1.1/compact/0107-out.jsonld
new file mode 100644
index 00000000..7b9f8838
--- /dev/null
+++ b/test/jsonld/1.1/compact/0107-out.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/",
+ "@vocab": "other/"
+ },
+ "#fragment-works": "#fragment-works",
+ "../parent": "../parent",
+ "?query=works": "?query=works",
+ "@id": "deep/directory/and/relativePropertyIris",
+ "deep/directory/": "deep/directory",
+ "deep/directory/and/": "deep/directory/and/",
+ "http://example.com/absolute": "/absolute",
+ "http://example.com/too-many-dots": "too-many-dots",
+ "link": "link"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0108-context.jsonld b/test/jsonld/1.1/compact/0108-context.jsonld
new file mode 100644
index 00000000..71bbb6eb
--- /dev/null
+++ b/test/jsonld/1.1/compact/0108-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "valueOf": "http://example.org/valueOf",
+ "toString": "http://example.org/toString"
+ }
+}
diff --git a/test/jsonld/1.1/compact/0108-in.jsonld b/test/jsonld/1.1/compact/0108-in.jsonld
new file mode 100644
index 00000000..0e26a9df
--- /dev/null
+++ b/test/jsonld/1.1/compact/0108-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "valueOf": "http://example.org/valueOf",
+ "toString": "http://example.org/toString"
+ },
+ "valueOf": "first",
+ "toString": "second"
+}
diff --git a/test/jsonld/1.1/compact/0108-out.jsonld b/test/jsonld/1.1/compact/0108-out.jsonld
new file mode 100644
index 00000000..0e26a9df
--- /dev/null
+++ b/test/jsonld/1.1/compact/0108-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "valueOf": "http://example.org/valueOf",
+ "toString": "http://example.org/toString"
+ },
+ "valueOf": "first",
+ "toString": "second"
+}
diff --git a/test/jsonld/1.1/compact/0109-context.jsonld b/test/jsonld/1.1/compact/0109-context.jsonld
new file mode 100644
index 00000000..2af65c48
--- /dev/null
+++ b/test/jsonld/1.1/compact/0109-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0109-in.jsonld b/test/jsonld/1.1/compact/0109-in.jsonld
new file mode 100644
index 00000000..61047099
--- /dev/null
+++ b/test/jsonld/1.1/compact/0109-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "foo:input": [{
+ "@graph": [
+ {"foo:value": "x"},
+ {"foo:value": "y"}
+ ]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0109-out.jsonld b/test/jsonld/1.1/compact/0109-out.jsonld
new file mode 100644
index 00000000..3a322f1a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0109-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": {
+ "@included": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0110-context.jsonld b/test/jsonld/1.1/compact/0110-context.jsonld
new file mode 100644
index 00000000..c6cb8aa0
--- /dev/null
+++ b/test/jsonld/1.1/compact/0110-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0110-in.jsonld b/test/jsonld/1.1/compact/0110-in.jsonld
new file mode 100644
index 00000000..61047099
--- /dev/null
+++ b/test/jsonld/1.1/compact/0110-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "foo:input": [{
+ "@graph": [
+ {"foo:value": "x"},
+ {"foo:value": "y"}
+ ]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0110-out.jsonld b/test/jsonld/1.1/compact/0110-out.jsonld
new file mode 100644
index 00000000..328f71b7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0110-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ },
+ "input": [{
+ "@included": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0111-context.jsonld b/test/jsonld/1.1/compact/0111-context.jsonld
new file mode 100644
index 00000000..a829201d
--- /dev/null
+++ b/test/jsonld/1.1/compact/0111-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "ex": "http://example.org/",
+ "@base": "http://localhost/"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0111-in.jsonld b/test/jsonld/1.1/compact/0111-in.jsonld
new file mode 100644
index 00000000..39ebe1ea
--- /dev/null
+++ b/test/jsonld/1.1/compact/0111-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "http://example.org/address": {
+ "@id": "http://localhost/@special"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0111-out.jsonld b/test/jsonld/1.1/compact/0111-out.jsonld
new file mode 100644
index 00000000..33e0207a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0111-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "ex": "http://example.org/",
+ "@base": "http://localhost/"
+ },
+ "ex:address": {
+ "@id": "./@special"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0112-context.jsonld b/test/jsonld/1.1/compact/0112-context.jsonld
new file mode 100644
index 00000000..5e7e3a3a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0112-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "ex": "http://example.org/ns/",
+ "prop": {
+ "@id": "ex:prop",
+ "@container": "@index",
+ "@index": "ex:name"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0112-in.jsonld b/test/jsonld/1.1/compact/0112-in.jsonld
new file mode 100644
index 00000000..6c7c0ed2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0112-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "http://example.org/ns/prop": [{
+ "@id": "http://example.org/ns/bar",
+ "http://example.org/ns/name": "bar"
+ }, {
+ "@id": "http://example.org/ns/foo",
+ "http://example.org/ns/name": "foo"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0112-out.jsonld b/test/jsonld/1.1/compact/0112-out.jsonld
new file mode 100644
index 00000000..f62d6ed7
--- /dev/null
+++ b/test/jsonld/1.1/compact/0112-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "ex": "http://example.org/ns/",
+ "prop": {
+ "@id": "ex:prop",
+ "@container": "@index",
+ "@index": "ex:name"
+ }
+ },
+ "prop": {
+ "foo": { "@id": "ex:foo"},
+ "bar": { "@id": "ex:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0113-context.jsonld b/test/jsonld/1.1/compact/0113-context.jsonld
new file mode 100644
index 00000000..555afce3
--- /dev/null
+++ b/test/jsonld/1.1/compact/0113-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "ex": "http://example.org/ns/",
+ "prop": {
+ "@id": "ex:prop",
+ "@container": "@index",
+ "@index": "http://example.org/ns/name"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0113-in.jsonld b/test/jsonld/1.1/compact/0113-in.jsonld
new file mode 100644
index 00000000..6c7c0ed2
--- /dev/null
+++ b/test/jsonld/1.1/compact/0113-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "http://example.org/ns/prop": [{
+ "@id": "http://example.org/ns/bar",
+ "http://example.org/ns/name": "bar"
+ }, {
+ "@id": "http://example.org/ns/foo",
+ "http://example.org/ns/name": "foo"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/0113-out.jsonld b/test/jsonld/1.1/compact/0113-out.jsonld
new file mode 100644
index 00000000..7ec4526a
--- /dev/null
+++ b/test/jsonld/1.1/compact/0113-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "ex": "http://example.org/ns/",
+ "prop": {
+ "@id": "ex:prop",
+ "@container": "@index",
+ "@index": "http://example.org/ns/name"
+ }
+ },
+ "prop": {
+ "foo": { "@id": "ex:foo"},
+ "bar": { "@id": "ex:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c001-context.jsonld b/test/jsonld/1.1/compact/c001-context.jsonld
new file mode 100644
index 00000000..d46e3f8a
--- /dev/null
+++ b/test/jsonld/1.1/compact/c001-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"bar": "http://example.org/bar"}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c001-in.jsonld b/test/jsonld/1.1/compact/c001-in.jsonld
new file mode 100644
index 00000000..bc1e92b5
--- /dev/null
+++ b/test/jsonld/1.1/compact/c001-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example/foo": [{"http://example.org/bar": [{"@value": "baz"}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c001-out.jsonld b/test/jsonld/1.1/compact/c001-out.jsonld
new file mode 100644
index 00000000..04c51209
--- /dev/null
+++ b/test/jsonld/1.1/compact/c001-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"bar": "http://example.org/bar"}}
+ },
+ "foo": {
+ "bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c002-context.jsonld b/test/jsonld/1.1/compact/c002-context.jsonld
new file mode 100644
index 00000000..bd95c249
--- /dev/null
+++ b/test/jsonld/1.1/compact/c002-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"bar": {"@type": "@id"}}},
+ "bar": {"@type": "http://www.w3.org/2001/XMLSchema#string"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c002-in.jsonld b/test/jsonld/1.1/compact/c002-in.jsonld
new file mode 100644
index 00000000..acd651e0
--- /dev/null
+++ b/test/jsonld/1.1/compact/c002-in.jsonld
@@ -0,0 +1,5 @@
+[
+ {
+ "http://example/foo": [{"http://example/bar": [{"@id": "http://example/baz"}]}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c002-out.jsonld b/test/jsonld/1.1/compact/c002-out.jsonld
new file mode 100644
index 00000000..8121cf37
--- /dev/null
+++ b/test/jsonld/1.1/compact/c002-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"bar": {"@type": "@id"}}},
+ "bar": {"@type": "http://www.w3.org/2001/XMLSchema#string"}
+ },
+ "foo": {
+ "bar": "http://example/baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c003-context.jsonld b/test/jsonld/1.1/compact/c003-context.jsonld
new file mode 100644
index 00000000..d8a30cf5
--- /dev/null
+++ b/test/jsonld/1.1/compact/c003-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"Bar": {"@id": "bar"}}}
+ }
+}
diff --git a/test/jsonld/1.1/compact/c003-in.jsonld b/test/jsonld/1.1/compact/c003-in.jsonld
new file mode 100644
index 00000000..020f7a7f
--- /dev/null
+++ b/test/jsonld/1.1/compact/c003-in.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "http://example/foo": [{
+ "http://example/bar": [
+ {"@value": "baz"}
+ ]}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c003-out.jsonld b/test/jsonld/1.1/compact/c003-out.jsonld
new file mode 100644
index 00000000..447ded33
--- /dev/null
+++ b/test/jsonld/1.1/compact/c003-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"Bar": {"@id": "bar"}}}
+ },
+ "foo": {
+ "Bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c004-context.jsonld b/test/jsonld/1.1/compact/c004-context.jsonld
new file mode 100644
index 00000000..fef92587
--- /dev/null
+++ b/test/jsonld/1.1/compact/c004-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"baz": {"@type": "@id"}}}
+ }
+}
diff --git a/test/jsonld/1.1/compact/c004-in.jsonld b/test/jsonld/1.1/compact/c004-in.jsonld
new file mode 100644
index 00000000..118a214f
--- /dev/null
+++ b/test/jsonld/1.1/compact/c004-in.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "http://example/foo": [{
+ "http://example/bar": [{
+ "http://example/baz": [{"@id": "buzz"}]
+ }]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c004-out.jsonld b/test/jsonld/1.1/compact/c004-out.jsonld
new file mode 100644
index 00000000..26dbeb55
--- /dev/null
+++ b/test/jsonld/1.1/compact/c004-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"baz": {"@type": "@id"}}}
+ },
+ "foo": {
+ "bar": {
+ "baz": "buzz"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c005-context.jsonld b/test/jsonld/1.1/compact/c005-context.jsonld
new file mode 100644
index 00000000..79c0921a
--- /dev/null
+++ b/test/jsonld/1.1/compact/c005-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "b": {"@context": {"c": "http://example.org/c"}}
+ }
+}
diff --git a/test/jsonld/1.1/compact/c005-in.jsonld b/test/jsonld/1.1/compact/c005-in.jsonld
new file mode 100644
index 00000000..b46a9280
--- /dev/null
+++ b/test/jsonld/1.1/compact/c005-in.jsonld
@@ -0,0 +1,10 @@
+[{
+ "http://example/a": [{
+ "http://example.com/c": [{"@value": "C in example.com"}],
+ "http://example/b": [{
+ "http://example.com/a": [{"@value": "A in example.com"}],
+ "http://example.org/c": [{"@value": "C in example.org"}]
+ }]
+ }],
+ "http://example/c": [{"@value": "C in example"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c005-out.jsonld b/test/jsonld/1.1/compact/c005-out.jsonld
new file mode 100644
index 00000000..d4f642c7
--- /dev/null
+++ b/test/jsonld/1.1/compact/c005-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "b": {"@context": {"c": "http://example.org/c"}}
+ },
+ "a": {
+ "b": {
+ "c": "C in example.org",
+ "http://example.com/a": "A in example.com"
+ },
+ "http://example.com/c": "C in example.com"
+ },
+ "c": "C in example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c006-context.jsonld b/test/jsonld/1.1/compact/c006-context.jsonld
new file mode 100644
index 00000000..6007891a
--- /dev/null
+++ b/test/jsonld/1.1/compact/c006-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"bar": "http://example.org/bar"}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c006-in.jsonld b/test/jsonld/1.1/compact/c006-in.jsonld
new file mode 100644
index 00000000..16baea77
--- /dev/null
+++ b/test/jsonld/1.1/compact/c006-in.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "http://example/a": [{
+ "@type": ["http://example/Foo"],
+ "http://example.org/bar": [{"@value": "baz"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c006-out.jsonld b/test/jsonld/1.1/compact/c006-out.jsonld
new file mode 100644
index 00000000..757aeaa1
--- /dev/null
+++ b/test/jsonld/1.1/compact/c006-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"bar": "http://example.org/bar"}}
+ },
+ "a": {"@type": "Foo", "bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c007-context.jsonld b/test/jsonld/1.1/compact/c007-context.jsonld
new file mode 100644
index 00000000..dcaf0666
--- /dev/null
+++ b/test/jsonld/1.1/compact/c007-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"bar": {"@type": "@id"}}},
+ "bar": {"@type": "http://www.w3.org/2001/XMLSchema#string"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c007-in.jsonld b/test/jsonld/1.1/compact/c007-in.jsonld
new file mode 100644
index 00000000..c173b894
--- /dev/null
+++ b/test/jsonld/1.1/compact/c007-in.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "http://example/a": [{
+ "@type": ["http://example/Foo"],
+ "http://example/bar": [{"@id": "http://example/baz"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c007-out.jsonld b/test/jsonld/1.1/compact/c007-out.jsonld
new file mode 100644
index 00000000..05c9f1d6
--- /dev/null
+++ b/test/jsonld/1.1/compact/c007-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"bar": {"@type": "@id"}}},
+ "bar": {"@type": "http://www.w3.org/2001/XMLSchema#string"}
+ },
+ "a": {"@type": "Foo", "bar": "http://example/baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c008-context.jsonld b/test/jsonld/1.1/compact/c008-context.jsonld
new file mode 100644
index 00000000..99becb5a
--- /dev/null
+++ b/test/jsonld/1.1/compact/c008-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "type": "@type",
+ "Foo": {"@context": {"bar": "http://example.org/bar"}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c008-in.jsonld b/test/jsonld/1.1/compact/c008-in.jsonld
new file mode 100644
index 00000000..16baea77
--- /dev/null
+++ b/test/jsonld/1.1/compact/c008-in.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "http://example/a": [{
+ "@type": ["http://example/Foo"],
+ "http://example.org/bar": [{"@value": "baz"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c008-out.jsonld b/test/jsonld/1.1/compact/c008-out.jsonld
new file mode 100644
index 00000000..e0b472b1
--- /dev/null
+++ b/test/jsonld/1.1/compact/c008-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "type": "@type",
+ "Foo": {"@context": {"bar": "http://example.org/bar"}}
+ },
+ "a": {"type": "Foo", "bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c009-context.jsonld b/test/jsonld/1.1/compact/c009-context.jsonld
new file mode 100644
index 00000000..cf932f7e
--- /dev/null
+++ b/test/jsonld/1.1/compact/c009-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"baz": {"@type": "@vocab"}}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c009-in.jsonld b/test/jsonld/1.1/compact/c009-in.jsonld
new file mode 100644
index 00000000..59a1fb53
--- /dev/null
+++ b/test/jsonld/1.1/compact/c009-in.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "@type": ["http://example/Foo"],
+ "http://example/bar": [{
+ "http://example/baz": [{"@id": "http://example/buzz"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c009-out.jsonld b/test/jsonld/1.1/compact/c009-out.jsonld
new file mode 100644
index 00000000..dbd90730
--- /dev/null
+++ b/test/jsonld/1.1/compact/c009-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"baz": {"@type": "@vocab"}}}
+ },
+ "@type": "Foo",
+ "bar": {"baz": {"@id": "http://example/buzz"}}
+}
diff --git a/test/jsonld/1.1/compact/c010-context.jsonld b/test/jsonld/1.1/compact/c010-context.jsonld
new file mode 100644
index 00000000..38c9c4e0
--- /dev/null
+++ b/test/jsonld/1.1/compact/c010-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "B": {"@context": {"c": "http://example.org/c"}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c010-in.jsonld b/test/jsonld/1.1/compact/c010-in.jsonld
new file mode 100644
index 00000000..1057b0ad
--- /dev/null
+++ b/test/jsonld/1.1/compact/c010-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example/a": [{
+ "@type": ["http://example/B"],
+ "http://example.com/a": [{"@value": "A in example.com"}],
+ "http://example.org/c": [{"@value": "C in example.org"}]
+ }],
+ "http://example/c": [{"@value": "C in example"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c010-out.jsonld b/test/jsonld/1.1/compact/c010-out.jsonld
new file mode 100644
index 00000000..b312d1a2
--- /dev/null
+++ b/test/jsonld/1.1/compact/c010-out.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "B": {"@context": {"c": "http://example.org/c"}}
+ },
+ "a": {
+ "@type": "B",
+ "c": "C in example.org",
+ "http://example.com/a": "A in example.com"
+ },
+ "c": "C in example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c011-context.jsonld b/test/jsonld/1.1/compact/c011-context.jsonld
new file mode 100644
index 00000000..ede2fd4f
--- /dev/null
+++ b/test/jsonld/1.1/compact/c011-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "id": "@id",
+ "type": "@type",
+ "Foo": {"@context": {"id": null, "type": null}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c011-in.jsonld b/test/jsonld/1.1/compact/c011-in.jsonld
new file mode 100644
index 00000000..3798fae9
--- /dev/null
+++ b/test/jsonld/1.1/compact/c011-in.jsonld
@@ -0,0 +1,11 @@
+[
+ {
+ "@id": "http://example.org/id",
+ "@type": ["http://example/type"],
+ "http://example/a": [{
+ "@id": "http://example.org/Foo",
+ "@type": ["http://example/Foo"],
+ "http://example/bar": [{"@id": "http://example.org/baz"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c011-out.jsonld b/test/jsonld/1.1/compact/c011-out.jsonld
new file mode 100644
index 00000000..7b1902aa
--- /dev/null
+++ b/test/jsonld/1.1/compact/c011-out.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "id": "@id",
+ "type": "@type",
+ "Foo": {"@context": {"id": null, "type": null}}
+ },
+ "id": "http://example.org/id",
+ "type": "http://example/type",
+ "a": {
+ "@id": "http://example.org/Foo",
+ "@type": "Foo",
+ "bar": {"@id": "http://example.org/baz"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c012-context.jsonld b/test/jsonld/1.1/compact/c012-context.jsonld
new file mode 100644
index 00000000..ba4308ce
--- /dev/null
+++ b/test/jsonld/1.1/compact/c012-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "t1": {"@context": {"foo": {"@id": "http://example.com/foo"}}},
+ "t2": {"@context": {"foo": {"@id": "http://example.org/foo", "@type": "@id"}}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c012-in.jsonld b/test/jsonld/1.1/compact/c012-in.jsonld
new file mode 100644
index 00000000..a702942a
--- /dev/null
+++ b/test/jsonld/1.1/compact/c012-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "@type": ["http://example/t2", "http://example/t1"],
+ "http://example.org/foo": [
+ {"@id": "urn:bar"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c012-out.jsonld b/test/jsonld/1.1/compact/c012-out.jsonld
new file mode 100644
index 00000000..c57c55eb
--- /dev/null
+++ b/test/jsonld/1.1/compact/c012-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "t1": {"@context": {"foo": {"@id": "http://example.com/foo"}}},
+ "t2": {"@context": {"foo": {"@id": "http://example.org/foo", "@type": "@id"}}}
+ },
+ "@type": ["t2", "t1"],
+ "foo": "urn:bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c013-context.jsonld b/test/jsonld/1.1/compact/c013-context.jsonld
new file mode 100644
index 00000000..4b62d50f
--- /dev/null
+++ b/test/jsonld/1.1/compact/c013-context.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {
+ "@context": {
+ "bar": {
+ "@context": {
+ "baz": {"@type": "@vocab"}
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c013-in.jsonld b/test/jsonld/1.1/compact/c013-in.jsonld
new file mode 100644
index 00000000..59a1fb53
--- /dev/null
+++ b/test/jsonld/1.1/compact/c013-in.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "@type": ["http://example/Foo"],
+ "http://example/bar": [{
+ "http://example/baz": [{"@id": "http://example/buzz"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c013-out.jsonld b/test/jsonld/1.1/compact/c013-out.jsonld
new file mode 100644
index 00000000..bba1c9bf
--- /dev/null
+++ b/test/jsonld/1.1/compact/c013-out.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {
+ "@context": {
+ "bar": {
+ "@context": {
+ "baz": {"@type": "@vocab"}
+ }
+ }
+ }
+ }
+ },
+ "@type": "Foo",
+ "bar": {"baz": "buzz"}
+}
diff --git a/test/jsonld/1.1/compact/c014-context.jsonld b/test/jsonld/1.1/compact/c014-context.jsonld
new file mode 100644
index 00000000..2d48593a
--- /dev/null
+++ b/test/jsonld/1.1/compact/c014-context.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": "http://example/foo",
+ "Type": {
+ "@context": [
+ null
+ ]
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c014-in.jsonld b/test/jsonld/1.1/compact/c014-in.jsonld
new file mode 100644
index 00000000..5a68fc26
--- /dev/null
+++ b/test/jsonld/1.1/compact/c014-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example/foo": [{
+ "@value": "will-exist"
+ }],
+ "http://example/p": [{
+ "@type": ["http://example/Type"]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/c014-out.jsonld b/test/jsonld/1.1/compact/c014-out.jsonld
new file mode 100644
index 00000000..79138aed
--- /dev/null
+++ b/test/jsonld/1.1/compact/c014-out.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": "http://example/foo",
+ "Type": {
+ "@context": [
+ null
+ ]
+ }
+ },
+ "foo": "will-exist",
+ "p": {
+ "@type": "Type"
+ }
+}
diff --git a/test/jsonld/1.1/compact/c015-context.jsonld b/test/jsonld/1.1/compact/c015-context.jsonld
new file mode 100644
index 00000000..aea86625
--- /dev/null
+++ b/test/jsonld/1.1/compact/c015-context.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@base": "http://example/base-base",
+ "@vocab": "http://example/",
+ "foo": "http://example/foo",
+ "Type": {
+ "@context": {
+ "@base": "http://example/typed-base"
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c015-in.jsonld b/test/jsonld/1.1/compact/c015-in.jsonld
new file mode 100644
index 00000000..2f3427a5
--- /dev/null
+++ b/test/jsonld/1.1/compact/c015-in.jsonld
@@ -0,0 +1,16 @@
+[{
+ "@id": "http://example/base-base#base-id",
+ "http://example/p": [{
+ "@id": "http://example/typed-base#typed-id",
+ "@type": ["http://example/Type"],
+ "http://example/subjectReference": [{
+ "@id": "http://example/typed-base#subject-reference-id"
+ }],
+ "http://example/nestedNode": [{
+ "@id": "http://example/base-base#nested-id",
+ "http://example/foo": [{
+ "@value": "bar"
+ }]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/c015-out.jsonld b/test/jsonld/1.1/compact/c015-out.jsonld
new file mode 100644
index 00000000..83bb63d5
--- /dev/null
+++ b/test/jsonld/1.1/compact/c015-out.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": {
+ "@base": "http://example/base-base",
+ "@vocab": "http://example/",
+ "foo": "http://example/foo",
+ "Type": {
+ "@context": {
+ "@base": "http://example/typed-base"
+ }
+ }
+ },
+ "@id": "#base-id",
+ "p": {
+ "@id": "#typed-id",
+ "@type": "Type",
+ "subjectReference": {
+ "@id": "#subject-reference-id"
+ },
+ "nestedNode": {
+ "@id": "#nested-id",
+ "foo": "bar"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c016-context.jsonld b/test/jsonld/1.1/compact/c016-context.jsonld
new file mode 100644
index 00000000..45296bef
--- /dev/null
+++ b/test/jsonld/1.1/compact/c016-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "Type": {
+ "@context": {
+ "@vocab": "http://example.com/"
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c016-in.jsonld b/test/jsonld/1.1/compact/c016-in.jsonld
new file mode 100644
index 00000000..37bc728a
--- /dev/null
+++ b/test/jsonld/1.1/compact/c016-in.jsonld
@@ -0,0 +1,16 @@
+[{
+ "http://example.org/foo": [{
+ "@value": "org"
+ }],
+ "http://example.org/p": [{
+ "@type": ["http://example.org/Type"],
+ "http://example.com/foo": [{
+ "@value": "com"
+ }],
+ "http://example.com/nested": [{
+ "http://example.org/nested-prop": [{
+ "@value": "org"
+ }]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/c016-out.jsonld b/test/jsonld/1.1/compact/c016-out.jsonld
new file mode 100644
index 00000000..2f1186ff
--- /dev/null
+++ b/test/jsonld/1.1/compact/c016-out.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "Type": {
+ "@context": {
+ "@vocab": "http://example.com/"
+ }
+ }
+ },
+ "foo": "org",
+ "p": {
+ "@type": "Type",
+ "foo": "com",
+ "nested": {
+ "nested-prop": "org"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c017-context.jsonld b/test/jsonld/1.1/compact/c017-context.jsonld
new file mode 100644
index 00000000..d1cca3ac
--- /dev/null
+++ b/test/jsonld/1.1/compact/c017-context.jsonld
@@ -0,0 +1,19 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Bar": {
+ "@context": [
+ {
+ "prop": "http://example/bar-prop"
+ }
+ ]
+ },
+ "Foo": {
+ "@context": [
+ {
+ "prop": "http://example/foo-prop"
+ }
+ ]
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c017-in.jsonld b/test/jsonld/1.1/compact/c017-in.jsonld
new file mode 100644
index 00000000..7e7e49d9
--- /dev/null
+++ b/test/jsonld/1.1/compact/c017-in.jsonld
@@ -0,0 +1,14 @@
+[{
+ "@type": [
+ "http://example/Foo",
+ "http://example/Bar"
+ ],
+ "http://example/foo-prop": [{
+ "@value": "foo"
+ }],
+ "http://example/nested": [{
+ "http://example/prop": [{
+ "@value": "vocab"
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/c017-out.jsonld b/test/jsonld/1.1/compact/c017-out.jsonld
new file mode 100644
index 00000000..be32133c
--- /dev/null
+++ b/test/jsonld/1.1/compact/c017-out.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Bar": {
+ "@context": [
+ {
+ "prop": "http://example/bar-prop"
+ }
+ ]
+ },
+ "Foo": {
+ "@context": [
+ {
+ "prop": "http://example/foo-prop"
+ }
+ ]
+ }
+ },
+ "@type": ["Foo", "Bar"],
+ "prop": "foo",
+ "nested": {
+ "prop": "vocab"
+ }
+}
diff --git a/test/jsonld/1.1/compact/c018-context.jsonld b/test/jsonld/1.1/compact/c018-context.jsonld
new file mode 100644
index 00000000..d0033bbe
--- /dev/null
+++ b/test/jsonld/1.1/compact/c018-context.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Bar": {
+ "@context": [
+ null,
+ {
+ "prop": "http://example/bar-prop"
+ }
+ ]
+ },
+ "Foo": {
+ "@context": [
+ null,
+ {
+ "prop": "http://example/foo-prop"
+ }
+ ]
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c018-in.jsonld b/test/jsonld/1.1/compact/c018-in.jsonld
new file mode 100644
index 00000000..ee0c79e1
--- /dev/null
+++ b/test/jsonld/1.1/compact/c018-in.jsonld
@@ -0,0 +1,11 @@
+[{
+ "@type": [
+ "http://example/Foo",
+ "http://example/Bar"
+ ],
+ "http://example/foo-prop": [
+ {
+ "@value": "foo"
+ }
+ ]
+}]
diff --git a/test/jsonld/1.1/compact/c018-out.jsonld b/test/jsonld/1.1/compact/c018-out.jsonld
new file mode 100644
index 00000000..f702f56d
--- /dev/null
+++ b/test/jsonld/1.1/compact/c018-out.jsonld
@@ -0,0 +1,24 @@
+
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Bar": {
+ "@context": [
+ null,
+ {
+ "prop": "http://example/bar-prop"
+ }
+ ]
+ },
+ "Foo": {
+ "@context": [
+ null,
+ {
+ "prop": "http://example/foo-prop"
+ }
+ ]
+ }
+ },
+ "@type": ["Foo", "Bar"],
+ "prop": "foo"
+}
diff --git a/test/jsonld/1.1/compact/c019-context.jsonld b/test/jsonld/1.1/compact/c019-context.jsonld
new file mode 100644
index 00000000..a7b6543f
--- /dev/null
+++ b/test/jsonld/1.1/compact/c019-context.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "prop": "http://example/base-prop",
+ "Type": {
+ "@context": {
+ "foo": {
+ "@context": {
+ "prop": "http://example/foo-prop"
+ }
+ },
+ "bar": {
+ "@context": {
+ "prop": "http://example/bar-prop"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c019-in.jsonld b/test/jsonld/1.1/compact/c019-in.jsonld
new file mode 100644
index 00000000..3d25ead3
--- /dev/null
+++ b/test/jsonld/1.1/compact/c019-in.jsonld
@@ -0,0 +1,26 @@
+[{
+ "@type": [
+ "http://example/Type"
+ ],
+ "http://example/foo": [{
+ "http://example/foo-prop": [
+ {
+ "@value": "foo"
+ }
+ ]
+ }],
+ "http://example/bar": [{
+ "http://example/bar-prop": [
+ {
+ "@value": "bar"
+ }
+ ]
+ }],
+ "http://example/baz": [{
+ "http://example/base-prop": [
+ {
+ "@value": "baz"
+ }
+ ]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/c019-out.jsonld b/test/jsonld/1.1/compact/c019-out.jsonld
new file mode 100644
index 00000000..418c9cbe
--- /dev/null
+++ b/test/jsonld/1.1/compact/c019-out.jsonld
@@ -0,0 +1,30 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "prop": "http://example/base-prop",
+ "Type": {
+ "@context": {
+ "foo": {
+ "@context": {
+ "prop": "http://example/foo-prop"
+ }
+ },
+ "bar": {
+ "@context": {
+ "prop": "http://example/bar-prop"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Type",
+ "foo": {
+ "prop": "foo"
+ },
+ "bar": {
+ "prop": "bar"
+ },
+ "baz": {
+ "prop": "baz"
+ }
+}
diff --git a/test/jsonld/1.1/compact/c020-context.jsonld b/test/jsonld/1.1/compact/c020-context.jsonld
new file mode 100644
index 00000000..216723fc
--- /dev/null
+++ b/test/jsonld/1.1/compact/c020-context.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "type": "@type",
+ "Type": {
+ "@context": {
+ "value": "@value"
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c020-in.jsonld b/test/jsonld/1.1/compact/c020-in.jsonld
new file mode 100644
index 00000000..483b9ef0
--- /dev/null
+++ b/test/jsonld/1.1/compact/c020-in.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@type": ["http://example/Type"],
+ "http://example/v": [{
+ "@type": "http://example/value-type",
+ "@value": "value"
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/c020-out.jsonld b/test/jsonld/1.1/compact/c020-out.jsonld
new file mode 100644
index 00000000..e504c397
--- /dev/null
+++ b/test/jsonld/1.1/compact/c020-out.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "type": "@type",
+ "Type": {
+ "@context": {
+ "value": "@value"
+ }
+ }
+ },
+ "type": "Type",
+ "v": {
+ "value": "value",
+ "type": "value-type"
+ }
+}
diff --git a/test/jsonld/1.1/compact/c021-context.jsonld b/test/jsonld/1.1/compact/c021-context.jsonld
new file mode 100644
index 00000000..2826733c
--- /dev/null
+++ b/test/jsonld/1.1/compact/c021-context.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "ex:",
+ "type": "@type",
+ "prop": "ex:untyped",
+ "Type": {
+ "@context": {
+ "prop": "ex:typed",
+ "value": "@value"
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c021-in.jsonld b/test/jsonld/1.1/compact/c021-in.jsonld
new file mode 100644
index 00000000..c3f097e8
--- /dev/null
+++ b/test/jsonld/1.1/compact/c021-in.jsonld
@@ -0,0 +1,19 @@
+[{
+ "ex:untyped": [{
+ "@type": ["ex:Type"],
+ "ex:typed": [{
+ "@value": "v1"
+ }, {
+ "@value": "v2"
+ }, {
+ "@value": "v3"
+ }, {
+ "ex:untyped": [{
+ "@value": "v4"
+ }, {
+ "@type": ["ex:Type"],
+ "ex:typed": [{"@value": "v5"}]
+ }]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/c021-out.jsonld b/test/jsonld/1.1/compact/c021-out.jsonld
new file mode 100644
index 00000000..738dbfa5
--- /dev/null
+++ b/test/jsonld/1.1/compact/c021-out.jsonld
@@ -0,0 +1,30 @@
+{
+ "@context": {
+ "@vocab": "ex:",
+ "type": "@type",
+ "prop": "ex:untyped",
+ "Type": {
+ "@context": {
+ "prop": "ex:typed",
+ "value": "@value"
+ }
+ }
+ },
+ "prop": {
+ "type": "Type",
+ "prop": [
+ "v1",
+ "v2",
+ "v3",
+ {
+ "prop": [
+ "v4",
+ {
+ "type": "Type",
+ "prop": "v5"
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/test/jsonld/1.1/compact/c022-context.jsonld b/test/jsonld/1.1/compact/c022-context.jsonld
new file mode 100644
index 00000000..1d1fb201
--- /dev/null
+++ b/test/jsonld/1.1/compact/c022-context.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@vocab": "ex:",
+ "Type": {
+ "@context": {
+ "foo": {
+ "@id": "ex:foo",
+ "@type": "@vocab",
+ "@context": {
+ "@version": 1.1,
+ "Foo": "ex:Foo",
+ "Bar": "ex:Bar"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c022-in.jsonld b/test/jsonld/1.1/compact/c022-in.jsonld
new file mode 100644
index 00000000..d77a5f5a
--- /dev/null
+++ b/test/jsonld/1.1/compact/c022-in.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@type": ["ex:Type"],
+ "ex:foo": [{"@id": "ex:Bar"}]
+}]
diff --git a/test/jsonld/1.1/compact/c022-out.jsonld b/test/jsonld/1.1/compact/c022-out.jsonld
new file mode 100644
index 00000000..c5ef4a2e
--- /dev/null
+++ b/test/jsonld/1.1/compact/c022-out.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "@vocab": "ex:",
+ "Type": {
+ "@context": {
+ "foo": {
+ "@id": "ex:foo",
+ "@type": "@vocab",
+ "@context": {
+ "@version": 1.1,
+ "Foo": "ex:Foo",
+ "Bar": "ex:Bar"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Type",
+ "foo": "Bar"
+}
diff --git a/test/jsonld/1.1/compact/c023-context.jsonld b/test/jsonld/1.1/compact/c023-context.jsonld
new file mode 100644
index 00000000..5d69acb7
--- /dev/null
+++ b/test/jsonld/1.1/compact/c023-context.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": "ex:nested"
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "@version": 1.1,
+ "foo": {
+ "@id": "ex:foo",
+ "@type": "@vocab",
+ "@context": {
+ "Foo": "ex:Foo"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c023-in.jsonld b/test/jsonld/1.1/compact/c023-in.jsonld
new file mode 100644
index 00000000..3e47445a
--- /dev/null
+++ b/test/jsonld/1.1/compact/c023-in.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@type": ["ex:Outer"],
+ "ex:nested": [{
+ "@type": ["ex:Inner"],
+ "ex:foo": [{"@id": "ex:Foo"}]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/c023-out.jsonld b/test/jsonld/1.1/compact/c023-out.jsonld
new file mode 100644
index 00000000..94272f95
--- /dev/null
+++ b/test/jsonld/1.1/compact/c023-out.jsonld
@@ -0,0 +1,29 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": "ex:nested"
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "@version": 1.1,
+ "foo": {
+ "@id": "ex:foo",
+ "@type": "@vocab",
+ "@context": {
+ "Foo": "ex:Foo"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Outer",
+ "nested": {
+ "@type": "Inner",
+ "foo": "Foo"
+ }
+}
diff --git a/test/jsonld/1.1/compact/c024-context.jsonld b/test/jsonld/1.1/compact/c024-context.jsonld
new file mode 100644
index 00000000..cc53f326
--- /dev/null
+++ b/test/jsonld/1.1/compact/c024-context.jsonld
@@ -0,0 +1,33 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": "ex:nested"
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "@version": 1.1,
+ "foo": {
+ "@id": "ex:foo",
+ "@container": "@set",
+ "@type": "ex:Number",
+ "@context": {
+ "value": "@value"
+ }
+ },
+ "bar": {
+ "@id": "ex:bar",
+ "@container": "@set",
+ "@type": "@id",
+ "@context": {
+ "@base": "http://example/"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c024-in.jsonld b/test/jsonld/1.1/compact/c024-in.jsonld
new file mode 100644
index 00000000..d2b0b669
--- /dev/null
+++ b/test/jsonld/1.1/compact/c024-in.jsonld
@@ -0,0 +1,11 @@
+[{
+ "@type": ["ex:Outer"],
+ "ex:nested": [{
+ "@type": ["ex:Inner"],
+ "ex:foo": {"@type": "ex:Number", "@value": "1"},
+ "ex:bar": [
+ {"@id": "http://example/a"},
+ {"@id": "http://example/b"}
+ ]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/c024-out.jsonld b/test/jsonld/1.1/compact/c024-out.jsonld
new file mode 100644
index 00000000..8c22c53e
--- /dev/null
+++ b/test/jsonld/1.1/compact/c024-out.jsonld
@@ -0,0 +1,39 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": "ex:nested"
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "@version": 1.1,
+ "foo": {
+ "@id": "ex:foo",
+ "@container": "@set",
+ "@type": "ex:Number",
+ "@context": {
+ "value": "@value"
+ }
+ },
+ "bar": {
+ "@id": "ex:bar",
+ "@container": "@set",
+ "@type": "@id",
+ "@context": {
+ "@base": "http://example/"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Outer",
+ "nested": {
+ "@type": "Inner",
+ "foo": ["1"],
+ "bar": ["a", "b"]
+ }
+}
diff --git a/test/jsonld/1.1/compact/c025-context.jsonld b/test/jsonld/1.1/compact/c025-context.jsonld
new file mode 100644
index 00000000..cd868d35
--- /dev/null
+++ b/test/jsonld/1.1/compact/c025-context.jsonld
@@ -0,0 +1,22 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "type": "@type",
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": {
+ "@id": "ex:nested",
+ "@type": "@id",
+ "@container": "@graph"
+ }
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "foo": "ex:foo"
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/compact/c025-in.jsonld b/test/jsonld/1.1/compact/c025-in.jsonld
new file mode 100644
index 00000000..d8246465
--- /dev/null
+++ b/test/jsonld/1.1/compact/c025-in.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@type": ["ex:Outer"],
+ "ex:nested": [{
+ "@graph": [{
+ "@type": ["ex:Inner"],
+ "ex:foo": [{"@value": "bar"}]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/c025-out.jsonld b/test/jsonld/1.1/compact/c025-out.jsonld
new file mode 100644
index 00000000..aa9b1fc7
--- /dev/null
+++ b/test/jsonld/1.1/compact/c025-out.jsonld
@@ -0,0 +1,27 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "type": "@type",
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": {
+ "@id": "ex:nested",
+ "@type": "@id",
+ "@container": "@graph"
+ }
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "foo": "ex:foo"
+ }
+ }
+ },
+ "type": "Outer",
+ "nested": {
+ "type": "Inner",
+ "foo": "bar"
+ }
+}
diff --git a/test/jsonld/1.1/compact/c026-context.jsonld b/test/jsonld/1.1/compact/c026-context.jsonld
new file mode 100644
index 00000000..9116af42
--- /dev/null
+++ b/test/jsonld/1.1/compact/c026-context.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "Foo": {
+ "@context": {
+ "@propagate": true,
+ "baz": {"@type": "@vocab"}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c026-in.jsonld b/test/jsonld/1.1/compact/c026-in.jsonld
new file mode 100644
index 00000000..8ff196e6
--- /dev/null
+++ b/test/jsonld/1.1/compact/c026-in.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "@type": ["http://example/Foo"],
+ "http://example/bar": [{
+ "http://example/baz": [{"@id": "http://example/buzz"}]
+ }]
+ }
+]
diff --git a/test/jsonld/1.1/compact/c026-out.jsonld b/test/jsonld/1.1/compact/c026-out.jsonld
new file mode 100644
index 00000000..09f08030
--- /dev/null
+++ b/test/jsonld/1.1/compact/c026-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "Foo": {
+ "@context": {
+ "@propagate": true,
+ "baz": {"@type": "@vocab"}
+ }
+ }
+ },
+ "@type": "Foo",
+ "bar": {"baz": "buzz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c027-context.jsonld b/test/jsonld/1.1/compact/c027-context.jsonld
new file mode 100644
index 00000000..9b1ac04c
--- /dev/null
+++ b/test/jsonld/1.1/compact/c027-context.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "bar": {
+ "@context": {
+ "@propagate": false,
+ "baz": {"@type": "@id"}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c027-in.jsonld b/test/jsonld/1.1/compact/c027-in.jsonld
new file mode 100644
index 00000000..28baae40
--- /dev/null
+++ b/test/jsonld/1.1/compact/c027-in.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example/bar": [{
+ "http://example/baz": [{
+ "http://example/baz": [{"@value": "buzz"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c027-out.jsonld b/test/jsonld/1.1/compact/c027-out.jsonld
new file mode 100644
index 00000000..7937a8ee
--- /dev/null
+++ b/test/jsonld/1.1/compact/c027-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "bar": {
+ "@context": {
+ "@propagate": false,
+ "baz": {"@type": "@id"}
+ }
+ }
+ },
+ "bar": {"baz": {"baz": "buzz"}}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c028-context.jsonld b/test/jsonld/1.1/compact/c028-context.jsonld
new file mode 100644
index 00000000..bba56d49
--- /dev/null
+++ b/test/jsonld/1.1/compact/c028-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "thing": {
+ "@id": "ex:thing",
+ "@context": {}
+ },
+ "title": "ex:title"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c028-in.jsonld b/test/jsonld/1.1/compact/c028-in.jsonld
new file mode 100644
index 00000000..1f8e95cc
--- /dev/null
+++ b/test/jsonld/1.1/compact/c028-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "ex:title": "top",
+ "ex:thing": {
+ "ex:title": "sub"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/c028-out.jsonld b/test/jsonld/1.1/compact/c028-out.jsonld
new file mode 100644
index 00000000..0248eef4
--- /dev/null
+++ b/test/jsonld/1.1/compact/c028-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "thing": {
+ "@id": "ex:thing",
+ "@context": {}
+ },
+ "title": "ex:title"
+ },
+ "title": "top",
+ "thing": {
+ "title": "sub"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di01-context.jsonld b/test/jsonld/1.1/compact/di01-context.jsonld
new file mode 100644
index 00000000..49916e71
--- /dev/null
+++ b/test/jsonld/1.1/compact/di01-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term5": {"@id": "http://example.com/term", "@direction": null},
+ "@direction": "ltr"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di01-in.jsonld b/test/jsonld/1.1/compact/di01-in.jsonld
new file mode 100644
index 00000000..8a546baf
--- /dev/null
+++ b/test/jsonld/1.1/compact/di01-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "http://example.com/term": [
+ "v5",
+ {"@value": "plain literal"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di01-out.jsonld b/test/jsonld/1.1/compact/di01-out.jsonld
new file mode 100644
index 00000000..f0dc26fd
--- /dev/null
+++ b/test/jsonld/1.1/compact/di01-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term5": {"@id": "http://example.com/term", "@direction": null},
+ "@direction": "ltr"
+ },
+ "term5": [ "v5", "plain literal" ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di02-context.jsonld b/test/jsonld/1.1/compact/di02-context.jsonld
new file mode 100644
index 00000000..7bfb3503
--- /dev/null
+++ b/test/jsonld/1.1/compact/di02-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"direction": "@direction"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di02-in.jsonld b/test/jsonld/1.1/compact/di02-in.jsonld
new file mode 100644
index 00000000..63b5d46e
--- /dev/null
+++ b/test/jsonld/1.1/compact/di02-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.org/foo": {"@value": "bar", "@direction": "ltr"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di02-out.jsonld b/test/jsonld/1.1/compact/di02-out.jsonld
new file mode 100644
index 00000000..d34c0015
--- /dev/null
+++ b/test/jsonld/1.1/compact/di02-out.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"direction": "@direction"},
+ "http://example.org/foo": {"@value": "bar", "direction": "ltr"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di03-context.jsonld b/test/jsonld/1.1/compact/di03-context.jsonld
new file mode 100644
index 00000000..ee90c316
--- /dev/null
+++ b/test/jsonld/1.1/compact/di03-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "foo_ltr": {"@id": "http://example.com/foo", "@container": "@list", "@direction": "ltr"},
+ "foo_rtl": {"@id": "http://example.com/foo", "@container": "@list", "@direction": "rtl"}
+ },
+ "foo_ltr": ["en"],
+ "foo_rtl": ["ar"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di03-in.jsonld b/test/jsonld/1.1/compact/di03-in.jsonld
new file mode 100644
index 00000000..429aa76f
--- /dev/null
+++ b/test/jsonld/1.1/compact/di03-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.com/foo": [
+ {"@list": [{"@value": "en", "@direction": "ltr"}]},
+ {"@list": [{"@value": "ar", "@direction": "rtl"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di03-out.jsonld b/test/jsonld/1.1/compact/di03-out.jsonld
new file mode 100644
index 00000000..ee90c316
--- /dev/null
+++ b/test/jsonld/1.1/compact/di03-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "foo_ltr": {"@id": "http://example.com/foo", "@container": "@list", "@direction": "ltr"},
+ "foo_rtl": {"@id": "http://example.com/foo", "@container": "@list", "@direction": "rtl"}
+ },
+ "foo_ltr": ["en"],
+ "foo_rtl": ["ar"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di04-context.jsonld b/test/jsonld/1.1/compact/di04-context.jsonld
new file mode 100644
index 00000000..b77d1034
--- /dev/null
+++ b/test/jsonld/1.1/compact/di04-context.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": "ltr",
+ "@container": "@language"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di04-in.jsonld b/test/jsonld/1.1/compact/di04-in.jsonld
new file mode 100644
index 00000000..a0b9512c
--- /dev/null
+++ b/test/jsonld/1.1/compact/di04-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "Die Königin", "@language": "de", "@direction": "ltr"},
+ {"@value": "Ihre Majestät", "@language": "de", "@direction": "ltr"},
+ {"@value": "The Queen", "@language": "en", "@direction": "ltr"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di04-out.jsonld b/test/jsonld/1.1/compact/di04-out.jsonld
new file mode 100644
index 00000000..a61d6a93
--- /dev/null
+++ b/test/jsonld/1.1/compact/di04-out.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": "ltr",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di05-context.jsonld b/test/jsonld/1.1/compact/di05-context.jsonld
new file mode 100644
index 00000000..b302024c
--- /dev/null
+++ b/test/jsonld/1.1/compact/di05-context.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@direction": "rtl",
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": "ltr",
+ "@container": "@language"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di05-in.jsonld b/test/jsonld/1.1/compact/di05-in.jsonld
new file mode 100644
index 00000000..a0b9512c
--- /dev/null
+++ b/test/jsonld/1.1/compact/di05-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "Die Königin", "@language": "de", "@direction": "ltr"},
+ {"@value": "Ihre Majestät", "@language": "de", "@direction": "ltr"},
+ {"@value": "The Queen", "@language": "en", "@direction": "ltr"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di05-out.jsonld b/test/jsonld/1.1/compact/di05-out.jsonld
new file mode 100644
index 00000000..33363f63
--- /dev/null
+++ b/test/jsonld/1.1/compact/di05-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@direction": "rtl",
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": "ltr",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di06-context.jsonld b/test/jsonld/1.1/compact/di06-context.jsonld
new file mode 100644
index 00000000..f618d0d1
--- /dev/null
+++ b/test/jsonld/1.1/compact/di06-context.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@direction": "rtl",
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": null,
+ "@container": "@language"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di06-in.jsonld b/test/jsonld/1.1/compact/di06-in.jsonld
new file mode 100644
index 00000000..2ba56561
--- /dev/null
+++ b/test/jsonld/1.1/compact/di06-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "Die Königin", "@language": "de"},
+ {"@value": "Ihre Majestät", "@language": "de"},
+ {"@value": "The Queen", "@language": "en"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di06-out.jsonld b/test/jsonld/1.1/compact/di06-out.jsonld
new file mode 100644
index 00000000..b9bb61e6
--- /dev/null
+++ b/test/jsonld/1.1/compact/di06-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@direction": "rtl",
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": null,
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di07-context.jsonld b/test/jsonld/1.1/compact/di07-context.jsonld
new file mode 100644
index 00000000..e0b7b922
--- /dev/null
+++ b/test/jsonld/1.1/compact/di07-context.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": "rtl",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di07-in.jsonld b/test/jsonld/1.1/compact/di07-in.jsonld
new file mode 100644
index 00000000..c7df546b
--- /dev/null
+++ b/test/jsonld/1.1/compact/di07-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "Die Königin", "@language": "de"},
+ {"@value": "Ihre Majestät", "@language": "de", "@direction": "ltr"},
+ {"@value": "The Queen", "@language": "en", "@direction": "rtl"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/di07-out.jsonld b/test/jsonld/1.1/compact/di07-out.jsonld
new file mode 100644
index 00000000..65c287f0
--- /dev/null
+++ b/test/jsonld/1.1/compact/di07-out.jsonld
@@ -0,0 +1,19 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": "rtl",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen"
+ },
+ "vocab:label": [
+ {"@value": "Die Königin", "@language": "de"},
+ {"@value": "Ihre Majestät", "@language": "de", "@direction": "ltr"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/e001-context.jsonld b/test/jsonld/1.1/compact/e001-context.jsonld
new file mode 100644
index 00000000..ee90c316
--- /dev/null
+++ b/test/jsonld/1.1/compact/e001-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "foo_ltr": {"@id": "http://example.com/foo", "@container": "@list", "@direction": "ltr"},
+ "foo_rtl": {"@id": "http://example.com/foo", "@container": "@list", "@direction": "rtl"}
+ },
+ "foo_ltr": ["en"],
+ "foo_rtl": ["ar"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/e001-in.jsonld b/test/jsonld/1.1/compact/e001-in.jsonld
new file mode 100644
index 00000000..344eadb2
--- /dev/null
+++ b/test/jsonld/1.1/compact/e001-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/list": {"@list": [{"@list": ["foo"]}, {"@list": ["bar"]}]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/e002-context.jsonld b/test/jsonld/1.1/compact/e002-context.jsonld
new file mode 100644
index 00000000..10ed9c17
--- /dev/null
+++ b/test/jsonld/1.1/compact/e002-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "tag": "http://example.org/ns/tag/"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/e002-in.jsonld b/test/jsonld/1.1/compact/e002-in.jsonld
new file mode 100644
index 00000000..6d4b8011
--- /dev/null
+++ b/test/jsonld/1.1/compact/e002-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "tag:champin.net,2019:prop": {"@value": "hello world"}
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/en01-context.jsonld b/test/jsonld/1.1/compact/en01-context.jsonld
new file mode 100644
index 00000000..d9cec5a1
--- /dev/null
+++ b/test/jsonld/1.1/compact/en01-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/foo", "@nest": "unknown"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/en01-in.jsonld b/test/jsonld/1.1/compact/en01-in.jsonld
new file mode 100644
index 00000000..ffc25a6b
--- /dev/null
+++ b/test/jsonld/1.1/compact/en01-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep05-context.jsonld b/test/jsonld/1.1/compact/ep05-context.jsonld
new file mode 100644
index 00000000..4caa4695
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep05-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@version": 1.1
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep05-in.jsonld b/test/jsonld/1.1/compact/ep05-in.jsonld
new file mode 100644
index 00000000..9e26dfee
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep05-in.jsonld
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep06-context.jsonld b/test/jsonld/1.1/compact/ep06-context.jsonld
new file mode 100644
index 00000000..63c70f63
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep06-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@version": 1.0
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep06-in.jsonld b/test/jsonld/1.1/compact/ep06-in.jsonld
new file mode 100644
index 00000000..9e26dfee
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep06-in.jsonld
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep07-context.jsonld b/test/jsonld/1.1/compact/ep07-context.jsonld
new file mode 100644
index 00000000..f2829c07
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep07-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example/foo", "@prefix": true}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep07-in.jsonld b/test/jsonld/1.1/compact/ep07-in.jsonld
new file mode 100644
index 00000000..ffc25a6b
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep07-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep08-context.jsonld b/test/jsonld/1.1/compact/ep08-context.jsonld
new file mode 100644
index 00000000..1fde76ae
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep08-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example/foo", "@prefix": "string"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep08-in.jsonld b/test/jsonld/1.1/compact/ep08-in.jsonld
new file mode 100644
index 00000000..ffc25a6b
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep08-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep09-context.jsonld b/test/jsonld/1.1/compact/ep09-context.jsonld
new file mode 100644
index 00000000..15b0baca
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep09-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "foo": "http://example/foo/",
+ "foo:bar": {"@id": "http://example/foo/bar", "@prefix": true}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep09-in.jsonld b/test/jsonld/1.1/compact/ep09-in.jsonld
new file mode 100644
index 00000000..6a50fcaa
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep09-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo/bar/": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep10-context.jsonld b/test/jsonld/1.1/compact/ep10-context.jsonld
new file mode 100644
index 00000000..c379d53d
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep10-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example/foo", "@nest": "@nest"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep10-in.jsonld b/test/jsonld/1.1/compact/ep10-in.jsonld
new file mode 100644
index 00000000..ffc25a6b
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep10-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep11-context.jsonld b/test/jsonld/1.1/compact/ep11-context.jsonld
new file mode 100644
index 00000000..c7498052
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep11-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example/foo", "@context": {}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep11-in.jsonld b/test/jsonld/1.1/compact/ep11-in.jsonld
new file mode 100644
index 00000000..ffc25a6b
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep11-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep12-context.jsonld b/test/jsonld/1.1/compact/ep12-context.jsonld
new file mode 100644
index 00000000..0acc2d81
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep12-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example/foo", "@container": ["@set"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep12-in.jsonld b/test/jsonld/1.1/compact/ep12-in.jsonld
new file mode 100644
index 00000000..ffc25a6b
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep12-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep13-context.jsonld b/test/jsonld/1.1/compact/ep13-context.jsonld
new file mode 100644
index 00000000..20cd3cd2
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep13-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example/foo", "@container": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep13-in.jsonld b/test/jsonld/1.1/compact/ep13-in.jsonld
new file mode 100644
index 00000000..d79e470b
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep13-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@id": "http://example/foo", "http://example/bar": "bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep14-context.jsonld b/test/jsonld/1.1/compact/ep14-context.jsonld
new file mode 100644
index 00000000..8b1f72cb
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep14-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example/foo", "@container": "@type"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep14-in.jsonld b/test/jsonld/1.1/compact/ep14-in.jsonld
new file mode 100644
index 00000000..286bc559
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep14-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@type": "http://example/foo", "http://example/bar": "bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep15-context.jsonld b/test/jsonld/1.1/compact/ep15-context.jsonld
new file mode 100644
index 00000000..d3f8c2a9
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep15-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example/foo", "@container": "@graph"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/ep15-in.jsonld b/test/jsonld/1.1/compact/ep15-in.jsonld
new file mode 100644
index 00000000..69e84921
--- /dev/null
+++ b/test/jsonld/1.1/compact/ep15-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@graph": {"http://example/bar": "bar"}}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in01-context.jsonld b/test/jsonld/1.1/compact/in01-context.jsonld
new file mode 100644
index 00000000..d52ab445
--- /dev/null
+++ b/test/jsonld/1.1/compact/in01-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "included": {"@id": "@included", "@container": "@set"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in01-in.jsonld b/test/jsonld/1.1/compact/in01-in.jsonld
new file mode 100644
index 00000000..2e218830
--- /dev/null
+++ b/test/jsonld/1.1/compact/in01-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/prop": [{"@value": "value"}],
+ "@included": [{
+ "http://example.org/prop": [{"@value": "value2"}]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in01-out.jsonld b/test/jsonld/1.1/compact/in01-out.jsonld
new file mode 100644
index 00000000..4b8a9be6
--- /dev/null
+++ b/test/jsonld/1.1/compact/in01-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "included": {"@id": "@included", "@container": "@set"}
+ },
+ "prop": "value",
+ "included": [{
+ "prop": "value2"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in02-context.jsonld b/test/jsonld/1.1/compact/in02-context.jsonld
new file mode 100644
index 00000000..c5dbc8e9
--- /dev/null
+++ b/test/jsonld/1.1/compact/in02-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in02-in.jsonld b/test/jsonld/1.1/compact/in02-in.jsonld
new file mode 100644
index 00000000..2e218830
--- /dev/null
+++ b/test/jsonld/1.1/compact/in02-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/prop": [{"@value": "value"}],
+ "@included": [{
+ "http://example.org/prop": [{"@value": "value2"}]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in02-out.jsonld b/test/jsonld/1.1/compact/in02-out.jsonld
new file mode 100644
index 00000000..a976cce7
--- /dev/null
+++ b/test/jsonld/1.1/compact/in02-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": {
+ "prop": "value2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in03-context.jsonld b/test/jsonld/1.1/compact/in03-context.jsonld
new file mode 100644
index 00000000..f5511088
--- /dev/null
+++ b/test/jsonld/1.1/compact/in03-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "included": "@included"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in03-in.jsonld b/test/jsonld/1.1/compact/in03-in.jsonld
new file mode 100644
index 00000000..349be02d
--- /dev/null
+++ b/test/jsonld/1.1/compact/in03-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "@included": [
+ {"http://example.org/prop": [{"@value": "value1"}]},
+ {"http://example.org/prop": [{"@value": "value2"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in03-out.jsonld b/test/jsonld/1.1/compact/in03-out.jsonld
new file mode 100644
index 00000000..3db34b64
--- /dev/null
+++ b/test/jsonld/1.1/compact/in03-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "included": "@included"
+ },
+ "included": [
+ {"prop": "value1"},
+ {"prop": "value2"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in04-context.jsonld b/test/jsonld/1.1/compact/in04-context.jsonld
new file mode 100644
index 00000000..c5dbc8e9
--- /dev/null
+++ b/test/jsonld/1.1/compact/in04-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in04-in.jsonld b/test/jsonld/1.1/compact/in04-in.jsonld
new file mode 100644
index 00000000..766ef215
--- /dev/null
+++ b/test/jsonld/1.1/compact/in04-in.jsonld
@@ -0,0 +1,9 @@
+[{
+ "http://example.org/prop": [{"@value": "value"}],
+ "@included": [{
+ "http://example.org/prop": [{"@value": "value2"}],
+ "@included": [{
+ "http://example.org/prop": [{"@value": "value3"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in04-out.jsonld b/test/jsonld/1.1/compact/in04-out.jsonld
new file mode 100644
index 00000000..2436a454
--- /dev/null
+++ b/test/jsonld/1.1/compact/in04-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": {
+ "prop": "value2",
+ "@included": {
+ "prop": "value3"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in05-context.jsonld b/test/jsonld/1.1/compact/in05-context.jsonld
new file mode 100644
index 00000000..c5dbc8e9
--- /dev/null
+++ b/test/jsonld/1.1/compact/in05-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in05-in.jsonld b/test/jsonld/1.1/compact/in05-in.jsonld
new file mode 100644
index 00000000..671224bd
--- /dev/null
+++ b/test/jsonld/1.1/compact/in05-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/prop": [{
+ "@type": ["http://example.org/Foo"],
+ "@included": [{
+ "@type": ["http://example.org/Bar"]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/in05-out.jsonld b/test/jsonld/1.1/compact/in05-out.jsonld
new file mode 100644
index 00000000..b94709b4
--- /dev/null
+++ b/test/jsonld/1.1/compact/in05-out.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": {
+ "@type": "Foo",
+ "@included": {
+ "@type": "Bar"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js01-context.jsonld b/test/jsonld/1.1/compact/js01-context.jsonld
new file mode 100644
index 00000000..946ab91a
--- /dev/null
+++ b/test/jsonld/1.1/compact/js01-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#bool", "@type": "@json"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js01-in.jsonld b/test/jsonld/1.1/compact/js01-in.jsonld
new file mode 100644
index 00000000..642709fd
--- /dev/null
+++ b/test/jsonld/1.1/compact/js01-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#bool": [{"@value": true, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js01-out.jsonld b/test/jsonld/1.1/compact/js01-out.jsonld
new file mode 100644
index 00000000..ace09383
--- /dev/null
+++ b/test/jsonld/1.1/compact/js01-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#bool", "@type": "@json"}
+ },
+ "e": true
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js02-context.jsonld b/test/jsonld/1.1/compact/js02-context.jsonld
new file mode 100644
index 00000000..946ab91a
--- /dev/null
+++ b/test/jsonld/1.1/compact/js02-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#bool", "@type": "@json"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js02-in.jsonld b/test/jsonld/1.1/compact/js02-in.jsonld
new file mode 100644
index 00000000..640d3d29
--- /dev/null
+++ b/test/jsonld/1.1/compact/js02-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#bool": [{"@value": false, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js02-out.jsonld b/test/jsonld/1.1/compact/js02-out.jsonld
new file mode 100644
index 00000000..65f32bf2
--- /dev/null
+++ b/test/jsonld/1.1/compact/js02-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#bool", "@type": "@json"}
+ },
+ "e": false
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js03-context.jsonld b/test/jsonld/1.1/compact/js03-context.jsonld
new file mode 100644
index 00000000..e933a8f1
--- /dev/null
+++ b/test/jsonld/1.1/compact/js03-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#double", "@type": "@json"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js03-in.jsonld b/test/jsonld/1.1/compact/js03-in.jsonld
new file mode 100644
index 00000000..060691ac
--- /dev/null
+++ b/test/jsonld/1.1/compact/js03-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#double": [{"@value": 1.23, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js03-out.jsonld b/test/jsonld/1.1/compact/js03-out.jsonld
new file mode 100644
index 00000000..3f98c4fc
--- /dev/null
+++ b/test/jsonld/1.1/compact/js03-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#double", "@type": "@json"}
+ },
+ "e": 1.23
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js04-context.jsonld b/test/jsonld/1.1/compact/js04-context.jsonld
new file mode 100644
index 00000000..e933a8f1
--- /dev/null
+++ b/test/jsonld/1.1/compact/js04-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#double", "@type": "@json"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js04-in.jsonld b/test/jsonld/1.1/compact/js04-in.jsonld
new file mode 100644
index 00000000..278b08f0
--- /dev/null
+++ b/test/jsonld/1.1/compact/js04-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#double": [{"@value": 0.0e0, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js04-out.jsonld b/test/jsonld/1.1/compact/js04-out.jsonld
new file mode 100644
index 00000000..dfd129c8
--- /dev/null
+++ b/test/jsonld/1.1/compact/js04-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#double", "@type": "@json"}
+ },
+ "e": 0.0e0
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js05-context.jsonld b/test/jsonld/1.1/compact/js05-context.jsonld
new file mode 100644
index 00000000..8185ea17
--- /dev/null
+++ b/test/jsonld/1.1/compact/js05-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#integer", "@type": "@json"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js05-in.jsonld b/test/jsonld/1.1/compact/js05-in.jsonld
new file mode 100644
index 00000000..364fc8ff
--- /dev/null
+++ b/test/jsonld/1.1/compact/js05-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#integer": [{"@value": 123, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js05-out.jsonld b/test/jsonld/1.1/compact/js05-out.jsonld
new file mode 100644
index 00000000..22702493
--- /dev/null
+++ b/test/jsonld/1.1/compact/js05-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#integer", "@type": "@json"}
+ },
+ "e": 123
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js06-context.jsonld b/test/jsonld/1.1/compact/js06-context.jsonld
new file mode 100644
index 00000000..98422103
--- /dev/null
+++ b/test/jsonld/1.1/compact/js06-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#object", "@type": "@json"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js06-in.jsonld b/test/jsonld/1.1/compact/js06-in.jsonld
new file mode 100644
index 00000000..c9df2866
--- /dev/null
+++ b/test/jsonld/1.1/compact/js06-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#object": [{"@value": {"foo": "bar"}, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js06-out.jsonld b/test/jsonld/1.1/compact/js06-out.jsonld
new file mode 100644
index 00000000..b0c57352
--- /dev/null
+++ b/test/jsonld/1.1/compact/js06-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#object", "@type": "@json"}
+ },
+ "e": {"foo": "bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js07-context.jsonld b/test/jsonld/1.1/compact/js07-context.jsonld
new file mode 100644
index 00000000..c037c68d
--- /dev/null
+++ b/test/jsonld/1.1/compact/js07-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#array", "@type": "@json", "@container": "@set"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js07-in.jsonld b/test/jsonld/1.1/compact/js07-in.jsonld
new file mode 100644
index 00000000..d0b1b28e
--- /dev/null
+++ b/test/jsonld/1.1/compact/js07-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#array": [{"@value": [{"foo": "bar"}], "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js07-out.jsonld b/test/jsonld/1.1/compact/js07-out.jsonld
new file mode 100644
index 00000000..d4e7c2cb
--- /dev/null
+++ b/test/jsonld/1.1/compact/js07-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#array", "@type": "@json", "@container": "@set"}
+ },
+ "e": [{"foo": "bar"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js08-context.jsonld b/test/jsonld/1.1/compact/js08-context.jsonld
new file mode 100644
index 00000000..91f0f103
--- /dev/null
+++ b/test/jsonld/1.1/compact/js08-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"@version": 1.1}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js08-in.jsonld b/test/jsonld/1.1/compact/js08-in.jsonld
new file mode 100644
index 00000000..c9df2866
--- /dev/null
+++ b/test/jsonld/1.1/compact/js08-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#object": [{"@value": {"foo": "bar"}, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js08-out.jsonld b/test/jsonld/1.1/compact/js08-out.jsonld
new file mode 100644
index 00000000..2b136f3f
--- /dev/null
+++ b/test/jsonld/1.1/compact/js08-out.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@version": 1.1},
+ "http://example.org/vocab#object": {"@value": {"foo": "bar"}, "@type": "@json"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js09-context.jsonld b/test/jsonld/1.1/compact/js09-context.jsonld
new file mode 100644
index 00000000..724029d9
--- /dev/null
+++ b/test/jsonld/1.1/compact/js09-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"@version": 1.1, "value": "@value", "type": "@type", "json": "@json"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js09-in.jsonld b/test/jsonld/1.1/compact/js09-in.jsonld
new file mode 100644
index 00000000..c9df2866
--- /dev/null
+++ b/test/jsonld/1.1/compact/js09-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#object": [{"@value": {"foo": "bar"}, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js09-out.jsonld b/test/jsonld/1.1/compact/js09-out.jsonld
new file mode 100644
index 00000000..71bb1b5f
--- /dev/null
+++ b/test/jsonld/1.1/compact/js09-out.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@version": 1.1, "value": "@value", "type": "@type", "json": "@json"},
+ "http://example.org/vocab#object": {"value": {"foo": "bar"}, "type": "json"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js10-context.jsonld b/test/jsonld/1.1/compact/js10-context.jsonld
new file mode 100644
index 00000000..d42e08ed
--- /dev/null
+++ b/test/jsonld/1.1/compact/js10-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#string", "@type": "@json"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js10-in.jsonld b/test/jsonld/1.1/compact/js10-in.jsonld
new file mode 100644
index 00000000..56ae74fc
--- /dev/null
+++ b/test/jsonld/1.1/compact/js10-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/vocab#string": [{
+ "@value": "string",
+ "@type": "@json"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js10-out.jsonld b/test/jsonld/1.1/compact/js10-out.jsonld
new file mode 100644
index 00000000..08fc84f7
--- /dev/null
+++ b/test/jsonld/1.1/compact/js10-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#string", "@type": "@json"}
+ },
+ "e": "string"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js11-context.jsonld b/test/jsonld/1.1/compact/js11-context.jsonld
new file mode 100644
index 00000000..1daac1c2
--- /dev/null
+++ b/test/jsonld/1.1/compact/js11-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#null", "@type": "@json"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js11-in.jsonld b/test/jsonld/1.1/compact/js11-in.jsonld
new file mode 100644
index 00000000..5efe8b14
--- /dev/null
+++ b/test/jsonld/1.1/compact/js11-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/vocab#null": [{
+ "@value": null,
+ "@type": "@json"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/js11-out.jsonld b/test/jsonld/1.1/compact/js11-out.jsonld
new file mode 100644
index 00000000..56411149
--- /dev/null
+++ b/test/jsonld/1.1/compact/js11-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#null", "@type": "@json"}
+ },
+ "e": null
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/la01-context.jsonld b/test/jsonld/1.1/compact/la01-context.jsonld
new file mode 100644
index 00000000..ee0dc44d
--- /dev/null
+++ b/test/jsonld/1.1/compact/la01-context.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "type1": "http://example.com/t1",
+ "type2": "http://example.com/t2",
+ "@language": "de",
+ "termL": { "@id": "http://example.com/termLanguage" },
+ "termLL0": { "@id": "http://example.com/termLanguage", "@container": "@list" },
+ "termLL1": { "@id": "http://example.com/termLanguage", "@container": "@list", "@language": "eN" },
+ "termLL2": { "@id": "http://example.com/termLanguage", "@container": "@list", "@language": null },
+ "termT": { "@id": "http://example.com/termType" },
+ "termTL0": { "@id": "http://example.com/termType", "@container": "@list" },
+ "termTL1": { "@id": "http://example.com/termType", "@container": "@list", "@type": "type1" },
+ "termTL2": { "@id": "http://example.com/termType", "@container": "@list", "@type": "type2" }
+ }
+}
diff --git a/test/jsonld/1.1/compact/la01-in.jsonld b/test/jsonld/1.1/compact/la01-in.jsonld
new file mode 100644
index 00000000..e25e21f4
--- /dev/null
+++ b/test/jsonld/1.1/compact/la01-in.jsonld
@@ -0,0 +1,48 @@
+{
+
+ "@context": {
+ "type1": "http://example.com/t1",
+ "type2": "http://example.com/t2"
+ },
+ "@id": "http://example.com/id1",
+ "http://example.com/termLanguage": [
+ {
+ "@list": [
+ { "@value": "termLL0.1", "@language": "de" },
+ { "@value": "termLL0.2", "@language": "de" }
+ ]
+ },
+ {
+ "@list": [
+ { "@value": "termLL1.1", "@language": "en" },
+ { "@value": "termLL1.2", "@language": "en" }
+ ]
+ },
+ {
+ "@list": [
+ "termLL2.1",
+ "termLL2.2"
+ ]
+ }
+ ],
+ "http://example.com/termType": [
+ {
+ "@list": [
+ { "@value": "termTL0.1", "@type": "type1" },
+ { "@value": "termTL0.2", "@type": "type2" }
+ ]
+ },
+ {
+ "@list": [
+ { "@value": "termTL1.1", "@type": "type1" },
+ { "@value": "termTL1.2", "@type": "type1" }
+ ]
+ },
+ {
+ "@list": [
+ { "@value": "termTL2.1", "@type": "type2" },
+ { "@value": "termTL2.2", "@type": "type2" }
+ ]
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/compact/la01-out.jsonld b/test/jsonld/1.1/compact/la01-out.jsonld
new file mode 100644
index 00000000..050002e2
--- /dev/null
+++ b/test/jsonld/1.1/compact/la01-out.jsonld
@@ -0,0 +1,46 @@
+{
+ "@context": {
+ "type1": "http://example.com/t1",
+ "type2": "http://example.com/t2",
+ "@language": "de",
+ "termL": { "@id": "http://example.com/termLanguage" },
+ "termLL0": { "@id": "http://example.com/termLanguage", "@container": "@list" },
+ "termLL1": { "@id": "http://example.com/termLanguage", "@container": "@list", "@language": "eN" },
+ "termLL2": { "@id": "http://example.com/termLanguage", "@container": "@list", "@language": null },
+ "termT": { "@id": "http://example.com/termType" },
+ "termTL0": { "@id": "http://example.com/termType", "@container": "@list" },
+ "termTL1": { "@id": "http://example.com/termType", "@container": "@list", "@type": "type1" },
+ "termTL2": { "@id": "http://example.com/termType", "@container": "@list", "@type": "type2" }
+ },
+ "@id": "http://example.com/id1",
+ "termLL0": [
+ "termLL0.1",
+ "termLL0.2"
+ ],
+ "termLL1": [
+ "termLL1.1",
+ "termLL1.2"
+ ],
+ "termLL2": [
+ "termLL2.1",
+ "termLL2.2"
+ ],
+ "termTL0": [
+ {
+ "@type": "type1",
+ "@value": "termTL0.1"
+ },
+ {
+ "@type": "type2",
+ "@value": "termTL0.2"
+ }
+ ],
+ "termTL1": [
+ "termTL1.1",
+ "termTL1.2"
+ ],
+ "termTL2": [
+ "termTL2.1",
+ "termTL2.2"
+ ]
+}
diff --git a/test/jsonld/1.1/compact/li01-context.jsonld b/test/jsonld/1.1/compact/li01-context.jsonld
new file mode 100644
index 00000000..d244b912
--- /dev/null
+++ b/test/jsonld/1.1/compact/li01-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li01-in.jsonld b/test/jsonld/1.1/compact/li01-in.jsonld
new file mode 100644
index 00000000..e7737504
--- /dev/null
+++ b/test/jsonld/1.1/compact/li01-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": []}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li01-out.jsonld b/test/jsonld/1.1/compact/li01-out.jsonld
new file mode 100644
index 00000000..81c8b23e
--- /dev/null
+++ b/test/jsonld/1.1/compact/li01-out.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [[]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li02-context.jsonld b/test/jsonld/1.1/compact/li02-context.jsonld
new file mode 100644
index 00000000..d244b912
--- /dev/null
+++ b/test/jsonld/1.1/compact/li02-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li02-in.jsonld b/test/jsonld/1.1/compact/li02-in.jsonld
new file mode 100644
index 00000000..998c20a6
--- /dev/null
+++ b/test/jsonld/1.1/compact/li02-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": [{"@value": "baz"}]}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li02-out.jsonld b/test/jsonld/1.1/compact/li02-out.jsonld
new file mode 100644
index 00000000..e38ec8ce
--- /dev/null
+++ b/test/jsonld/1.1/compact/li02-out.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [["baz"]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li03-context.jsonld b/test/jsonld/1.1/compact/li03-context.jsonld
new file mode 100644
index 00000000..d244b912
--- /dev/null
+++ b/test/jsonld/1.1/compact/li03-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li03-in.jsonld b/test/jsonld/1.1/compact/li03-in.jsonld
new file mode 100644
index 00000000..329a79c9
--- /dev/null
+++ b/test/jsonld/1.1/compact/li03-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": [{"@list": [{"@value": "baz"}]}]}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li03-out.jsonld b/test/jsonld/1.1/compact/li03-out.jsonld
new file mode 100644
index 00000000..e01353af
--- /dev/null
+++ b/test/jsonld/1.1/compact/li03-out.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [[["baz"]]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li04-context.jsonld b/test/jsonld/1.1/compact/li04-context.jsonld
new file mode 100644
index 00000000..d244b912
--- /dev/null
+++ b/test/jsonld/1.1/compact/li04-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li04-in.jsonld b/test/jsonld/1.1/compact/li04-in.jsonld
new file mode 100644
index 00000000..bb6227d1
--- /dev/null
+++ b/test/jsonld/1.1/compact/li04-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.com/foo": [{"@list": [
+ {"@list": [{"@value": "a"}]},
+ {"@list": [{"@value": "b"}]}
+ ]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li04-out.jsonld b/test/jsonld/1.1/compact/li04-out.jsonld
new file mode 100644
index 00000000..58aea4aa
--- /dev/null
+++ b/test/jsonld/1.1/compact/li04-out.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [["a"], ["b"]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li05-context.jsonld b/test/jsonld/1.1/compact/li05-context.jsonld
new file mode 100644
index 00000000..d244b912
--- /dev/null
+++ b/test/jsonld/1.1/compact/li05-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li05-in.jsonld b/test/jsonld/1.1/compact/li05-in.jsonld
new file mode 100644
index 00000000..3c0dd9bc
--- /dev/null
+++ b/test/jsonld/1.1/compact/li05-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "http://example.com/foo": [{"@list": [
+ {"@list": [{"@value": "a"}]},
+ {"@value": "b"}
+ ]}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/li05-out.jsonld b/test/jsonld/1.1/compact/li05-out.jsonld
new file mode 100644
index 00000000..b1db13b1
--- /dev/null
+++ b/test/jsonld/1.1/compact/li05-out.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [["a"], "b"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m001-context.jsonld b/test/jsonld/1.1/compact/m001-context.jsonld
new file mode 100644
index 00000000..e78b6899
--- /dev/null
+++ b/test/jsonld/1.1/compact/m001-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m001-in.jsonld b/test/jsonld/1.1/compact/m001-in.jsonld
new file mode 100644
index 00000000..c44d5e63
--- /dev/null
+++ b/test/jsonld/1.1/compact/m001-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/idmap": [
+ {"http://example/label": [{"@value": "Object with @id _:bar"}], "@id": "_:bar"},
+ {"http://example/label": [{"@value": "Object with @id <foo>"}], "@id": "http://example.org/foo"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m001-out.jsonld b/test/jsonld/1.1/compact/m001-out.jsonld
new file mode 100644
index 00000000..81a736c7
--- /dev/null
+++ b/test/jsonld/1.1/compact/m001-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"}
+ },
+ "idmap": {
+ "http://example.org/foo": {"label": "Object with @id <foo>"},
+ "_:bar": {"label": "Object with @id _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m002-context.jsonld b/test/jsonld/1.1/compact/m002-context.jsonld
new file mode 100644
index 00000000..e78b6899
--- /dev/null
+++ b/test/jsonld/1.1/compact/m002-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m002-in.jsonld b/test/jsonld/1.1/compact/m002-in.jsonld
new file mode 100644
index 00000000..274bb8c7
--- /dev/null
+++ b/test/jsonld/1.1/compact/m002-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/idmap": [
+ {"@id": "_:foo", "http://example/label": [{"@value": "Object with @id _:bar"}]},
+ {"@id": "http://example.org/bar", "http://example/label": [{"@value": "Object with @id <foo>"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m002-out.jsonld b/test/jsonld/1.1/compact/m002-out.jsonld
new file mode 100644
index 00000000..c11c0bdd
--- /dev/null
+++ b/test/jsonld/1.1/compact/m002-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"}
+ },
+ "idmap": {
+ "_:foo": {"label": "Object with @id _:bar"},
+ "http://example.org/bar": {"label": "Object with @id <foo>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m003-context.jsonld b/test/jsonld/1.1/compact/m003-context.jsonld
new file mode 100644
index 00000000..6540eb51
--- /dev/null
+++ b/test/jsonld/1.1/compact/m003-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m003-in.jsonld b/test/jsonld/1.1/compact/m003-in.jsonld
new file mode 100644
index 00000000..ecdfc449
--- /dev/null
+++ b/test/jsonld/1.1/compact/m003-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/typemap": [
+ {"http://example/label": [{"@value": "Object with @type _:bar"}], "@type": ["_:bar"]},
+ {"http://example/label": [{"@value": "Object with @type <foo>"}], "@type": ["http://example.org/foo"]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m003-out.jsonld b/test/jsonld/1.1/compact/m003-out.jsonld
new file mode 100644
index 00000000..f79d87a6
--- /dev/null
+++ b/test/jsonld/1.1/compact/m003-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ },
+ "typemap": {
+ "http://example.org/foo": {"label": "Object with @type <foo>"},
+ "_:bar": {"label": "Object with @type _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m004-context.jsonld b/test/jsonld/1.1/compact/m004-context.jsonld
new file mode 100644
index 00000000..6540eb51
--- /dev/null
+++ b/test/jsonld/1.1/compact/m004-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m004-in.jsonld b/test/jsonld/1.1/compact/m004-in.jsonld
new file mode 100644
index 00000000..f35a9a88
--- /dev/null
+++ b/test/jsonld/1.1/compact/m004-in.jsonld
@@ -0,0 +1,12 @@
+[{
+ "http://example/typemap": [
+ {
+ "@type": ["_:bar", "_:foo"],
+ "http://example/label": [{"@value": "Object with @type _:bar"}]
+ },
+ {
+ "@type": ["http://example.org/foo", "http://example.org/bar"],
+ "http://example/label": [{"@value": "Object with @type <foo>"}]
+ }
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m004-out.jsonld b/test/jsonld/1.1/compact/m004-out.jsonld
new file mode 100644
index 00000000..b75a0ff8
--- /dev/null
+++ b/test/jsonld/1.1/compact/m004-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ },
+ "typemap": {
+ "http://example.org/foo": {"@type": "http://example.org/bar", "label": "Object with @type <foo>"},
+ "_:bar": {"@type": "_:foo", "label": "Object with @type _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m005-context.jsonld b/test/jsonld/1.1/compact/m005-context.jsonld
new file mode 100644
index 00000000..5ebfbc69
--- /dev/null
+++ b/test/jsonld/1.1/compact/m005-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "ex": "http://example.org/",
+ "idmap": {"@container": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m005-in.jsonld b/test/jsonld/1.1/compact/m005-in.jsonld
new file mode 100644
index 00000000..fe15d637
--- /dev/null
+++ b/test/jsonld/1.1/compact/m005-in.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/idmap": [
+ {"http://example/label": [{"@value": "Object with @id <foo>"}], "@id": "http://example.org/foo"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m005-out.jsonld b/test/jsonld/1.1/compact/m005-out.jsonld
new file mode 100644
index 00000000..68c15c47
--- /dev/null
+++ b/test/jsonld/1.1/compact/m005-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "ex": "http://example.org/",
+ "idmap": {"@container": "@id"}
+ },
+ "idmap": {
+ "ex:foo": {"label": "Object with @id <foo>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m006-context.jsonld b/test/jsonld/1.1/compact/m006-context.jsonld
new file mode 100644
index 00000000..6540eb51
--- /dev/null
+++ b/test/jsonld/1.1/compact/m006-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m006-in.jsonld b/test/jsonld/1.1/compact/m006-in.jsonld
new file mode 100644
index 00000000..a6cfccfe
--- /dev/null
+++ b/test/jsonld/1.1/compact/m006-in.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/typemap": [
+ {"http://example/label": [{"@value": "Object with @type <foo>"}], "@type": ["http://example/Foo"]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m006-out.jsonld b/test/jsonld/1.1/compact/m006-out.jsonld
new file mode 100644
index 00000000..ce359b45
--- /dev/null
+++ b/test/jsonld/1.1/compact/m006-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ },
+ "typemap": {
+ "Foo": {"label": "Object with @type <foo>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m007-context.jsonld b/test/jsonld/1.1/compact/m007-context.jsonld
new file mode 100644
index 00000000..16ee43db
--- /dev/null
+++ b/test/jsonld/1.1/compact/m007-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"},
+ "Type": {"@context": {"a": "http://example.org/a"}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m007-in.jsonld b/test/jsonld/1.1/compact/m007-in.jsonld
new file mode 100644
index 00000000..e1da44ee
--- /dev/null
+++ b/test/jsonld/1.1/compact/m007-in.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/typemap": [
+ {"http://example.org/a": [{"@value": "Object with @type <Type>"}], "@type": ["http://example/Type"]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m007-out.jsonld b/test/jsonld/1.1/compact/m007-out.jsonld
new file mode 100644
index 00000000..3e48d6e6
--- /dev/null
+++ b/test/jsonld/1.1/compact/m007-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"},
+ "Type": {"@context": {"a": "http://example.org/a"}}
+ },
+ "typemap": {
+ "Type": {"a": "Object with @type <Type>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m008-context.jsonld b/test/jsonld/1.1/compact/m008-context.jsonld
new file mode 100644
index 00000000..722af08d
--- /dev/null
+++ b/test/jsonld/1.1/compact/m008-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "author": {
+ "@id": "http://example.com/vocab/author",
+ "@container": "@index"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m008-in.jsonld b/test/jsonld/1.1/compact/m008-in.jsonld
new file mode 100644
index 00000000..a2e1e396
--- /dev/null
+++ b/test/jsonld/1.1/compact/m008-in.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/vocab/author": [{
+ "@id": "http://example.org/person/1",
+ "@index": "regular"
+ }, {
+ "@id": "http://example.org/guest/cd24f329aa"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m008-out.jsonld b/test/jsonld/1.1/compact/m008-out.jsonld
new file mode 100644
index 00000000..9d752eee
--- /dev/null
+++ b/test/jsonld/1.1/compact/m008-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "author": {
+ "@id": "http://example.com/vocab/author",
+ "@container": "@index"
+ }
+ },
+ "@id": "http://example.com/article",
+ "author": {
+ "regular": {
+ "@id": "http://example.org/person/1"
+ },
+ "@none": {
+ "@id": "http://example.org/guest/cd24f329aa"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m009-context.jsonld b/test/jsonld/1.1/compact/m009-context.jsonld
new file mode 100644
index 00000000..722af08d
--- /dev/null
+++ b/test/jsonld/1.1/compact/m009-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "author": {
+ "@id": "http://example.com/vocab/author",
+ "@container": "@index"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m009-in.jsonld b/test/jsonld/1.1/compact/m009-in.jsonld
new file mode 100644
index 00000000..8ed51acb
--- /dev/null
+++ b/test/jsonld/1.1/compact/m009-in.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/vocab/author": [{
+ "@value": "Gregg",
+ "@index": "regular"
+ }, {
+ "@value": "Manu"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m009-out.jsonld b/test/jsonld/1.1/compact/m009-out.jsonld
new file mode 100644
index 00000000..42b29d4d
--- /dev/null
+++ b/test/jsonld/1.1/compact/m009-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "author": {
+ "@id": "http://example.com/vocab/author",
+ "@container": "@index"
+ }
+ },
+ "@id": "http://example.com/article",
+ "author": {
+ "regular": "Gregg",
+ "@none": "Manu"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m010-context.jsonld b/test/jsonld/1.1/compact/m010-context.jsonld
new file mode 100644
index 00000000..f39d1c79
--- /dev/null
+++ b/test/jsonld/1.1/compact/m010-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "author": {
+ "@id": "http://example.com/vocab/author",
+ "@container": "@index"
+ },
+ "none": "@none"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m010-in.jsonld b/test/jsonld/1.1/compact/m010-in.jsonld
new file mode 100644
index 00000000..8ed51acb
--- /dev/null
+++ b/test/jsonld/1.1/compact/m010-in.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/vocab/author": [{
+ "@value": "Gregg",
+ "@index": "regular"
+ }, {
+ "@value": "Manu"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m010-out.jsonld b/test/jsonld/1.1/compact/m010-out.jsonld
new file mode 100644
index 00000000..ebcf4c7b
--- /dev/null
+++ b/test/jsonld/1.1/compact/m010-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "author": {
+ "@id": "http://example.com/vocab/author",
+ "@container": "@index"
+ },
+ "none": "@none"
+ },
+ "@id": "http://example.com/article",
+ "author": {
+ "regular": "Gregg",
+ "none": "Manu"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m011-context.jsonld b/test/jsonld/1.1/compact/m011-context.jsonld
new file mode 100644
index 00000000..374aa5b2
--- /dev/null
+++ b/test/jsonld/1.1/compact/m011-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "vocab": "http://example.com/vocab/",
+ "label": {"@id": "vocab:label", "@container": "@language"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m011-in.jsonld b/test/jsonld/1.1/compact/m011-in.jsonld
new file mode 100644
index 00000000..f2f1c9ea
--- /dev/null
+++ b/test/jsonld/1.1/compact/m011-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "The Queen", "@language": "en"},
+ {"@value": "Die Königin", "@language": "de"},
+ {"@value": "Ihre Majestät"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m011-out.jsonld b/test/jsonld/1.1/compact/m011-out.jsonld
new file mode 100644
index 00000000..eabfa785
--- /dev/null
+++ b/test/jsonld/1.1/compact/m011-out.jsonld
@@ -0,0 +1,12 @@
+{
+ "@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",
+ "@none": "Ihre Majestät"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m012-context.jsonld b/test/jsonld/1.1/compact/m012-context.jsonld
new file mode 100644
index 00000000..93b531ea
--- /dev/null
+++ b/test/jsonld/1.1/compact/m012-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "vocab": "http://example.com/vocab/",
+ "label": {"@id": "vocab:label", "@container": "@language"},
+ "none": "@none"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m012-in.jsonld b/test/jsonld/1.1/compact/m012-in.jsonld
new file mode 100644
index 00000000..f2f1c9ea
--- /dev/null
+++ b/test/jsonld/1.1/compact/m012-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "The Queen", "@language": "en"},
+ {"@value": "Die Königin", "@language": "de"},
+ {"@value": "Ihre Majestät"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m012-out.jsonld b/test/jsonld/1.1/compact/m012-out.jsonld
new file mode 100644
index 00000000..14fc6ac9
--- /dev/null
+++ b/test/jsonld/1.1/compact/m012-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "vocab": "http://example.com/vocab/",
+ "label": {"@id": "vocab:label", "@container": "@language"},
+ "none": "@none"
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": "Die Königin",
+ "none": "Ihre Majestät"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m013-context.jsonld b/test/jsonld/1.1/compact/m013-context.jsonld
new file mode 100644
index 00000000..5ebfbc69
--- /dev/null
+++ b/test/jsonld/1.1/compact/m013-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "ex": "http://example.org/",
+ "idmap": {"@container": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m013-in.jsonld b/test/jsonld/1.1/compact/m013-in.jsonld
new file mode 100644
index 00000000..0beca7ed
--- /dev/null
+++ b/test/jsonld/1.1/compact/m013-in.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/idmap": [
+ {"http://example/label": [{"@value": "Object with no @id"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m013-out.jsonld b/test/jsonld/1.1/compact/m013-out.jsonld
new file mode 100644
index 00000000..baf3a656
--- /dev/null
+++ b/test/jsonld/1.1/compact/m013-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "ex": "http://example.org/",
+ "idmap": {"@container": "@id"}
+ },
+ "idmap": {
+ "@none": {"label": "Object with no @id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m014-context.jsonld b/test/jsonld/1.1/compact/m014-context.jsonld
new file mode 100644
index 00000000..92135644
--- /dev/null
+++ b/test/jsonld/1.1/compact/m014-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "ex": "http://example.org/",
+ "idmap": {"@container": "@id"},
+ "none": "@none"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m014-in.jsonld b/test/jsonld/1.1/compact/m014-in.jsonld
new file mode 100644
index 00000000..0beca7ed
--- /dev/null
+++ b/test/jsonld/1.1/compact/m014-in.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/idmap": [
+ {"http://example/label": [{"@value": "Object with no @id"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m014-out.jsonld b/test/jsonld/1.1/compact/m014-out.jsonld
new file mode 100644
index 00000000..55bab565
--- /dev/null
+++ b/test/jsonld/1.1/compact/m014-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "ex": "http://example.org/",
+ "idmap": {"@container": "@id"},
+ "none": "@none"
+ },
+ "idmap": {
+ "none": {"label": "Object with no @id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m015-context.jsonld b/test/jsonld/1.1/compact/m015-context.jsonld
new file mode 100644
index 00000000..5978667b
--- /dev/null
+++ b/test/jsonld/1.1/compact/m015-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "ex": "http://example.org/",
+ "typemap": {"@container": "@type"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m015-in.jsonld b/test/jsonld/1.1/compact/m015-in.jsonld
new file mode 100644
index 00000000..e14b54c8
--- /dev/null
+++ b/test/jsonld/1.1/compact/m015-in.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/typemap": [
+ {"http://example/label": [{"@value": "Object with no @type"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m015-out.jsonld b/test/jsonld/1.1/compact/m015-out.jsonld
new file mode 100644
index 00000000..270b9319
--- /dev/null
+++ b/test/jsonld/1.1/compact/m015-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "ex": "http://example.org/",
+ "typemap": {"@container": "@type"}
+ },
+ "typemap": {
+ "@none": {"label": "Object with no @type"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m016-context.jsonld b/test/jsonld/1.1/compact/m016-context.jsonld
new file mode 100644
index 00000000..b517bc35
--- /dev/null
+++ b/test/jsonld/1.1/compact/m016-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "ex": "http://example.org/",
+ "typemap": {"@container": "@type"},
+ "none": "@none"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m016-in.jsonld b/test/jsonld/1.1/compact/m016-in.jsonld
new file mode 100644
index 00000000..2a7defe9
--- /dev/null
+++ b/test/jsonld/1.1/compact/m016-in.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/typemap": [
+ {"http://example/label": [{"@value": "Object with no @id"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m016-out.jsonld b/test/jsonld/1.1/compact/m016-out.jsonld
new file mode 100644
index 00000000..5d115f19
--- /dev/null
+++ b/test/jsonld/1.1/compact/m016-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "ex": "http://example.org/",
+ "typemap": {"@container": "@type"},
+ "none": "@none"
+ },
+ "typemap": {
+ "none": {"label": "Object with no @id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m017-context.jsonld b/test/jsonld/1.1/compact/m017-context.jsonld
new file mode 100644
index 00000000..f12919ce
--- /dev/null
+++ b/test/jsonld/1.1/compact/m017-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index", "@set"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m017-in.jsonld b/test/jsonld/1.1/compact/m017-in.jsonld
new file mode 100644
index 00000000..e01c12ee
--- /dev/null
+++ b/test/jsonld/1.1/compact/m017-in.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m017-out.jsonld b/test/jsonld/1.1/compact/m017-out.jsonld
new file mode 100644
index 00000000..ce09bd9e
--- /dev/null
+++ b/test/jsonld/1.1/compact/m017-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index", "@set"]}
+ },
+ "input": {
+ "@none": [{"value": "x"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m018-context.jsonld b/test/jsonld/1.1/compact/m018-context.jsonld
new file mode 100644
index 00000000..2de136b0
--- /dev/null
+++ b/test/jsonld/1.1/compact/m018-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m018-in.jsonld b/test/jsonld/1.1/compact/m018-in.jsonld
new file mode 100644
index 00000000..e01c12ee
--- /dev/null
+++ b/test/jsonld/1.1/compact/m018-in.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m018-out.jsonld b/test/jsonld/1.1/compact/m018-out.jsonld
new file mode 100644
index 00000000..67ff9241
--- /dev/null
+++ b/test/jsonld/1.1/compact/m018-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "@none" : {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m019-context.jsonld b/test/jsonld/1.1/compact/m019-context.jsonld
new file mode 100644
index 00000000..5160a126
--- /dev/null
+++ b/test/jsonld/1.1/compact/m019-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]},
+ "none": "@none"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m019-in.jsonld b/test/jsonld/1.1/compact/m019-in.jsonld
new file mode 100644
index 00000000..e01c12ee
--- /dev/null
+++ b/test/jsonld/1.1/compact/m019-in.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m019-out.jsonld b/test/jsonld/1.1/compact/m019-out.jsonld
new file mode 100644
index 00000000..bba709a7
--- /dev/null
+++ b/test/jsonld/1.1/compact/m019-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]},
+ "none": "@none"
+ },
+ "input": {
+ "none" : {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m020-context.jsonld b/test/jsonld/1.1/compact/m020-context.jsonld
new file mode 100644
index 00000000..1dcdb588
--- /dev/null
+++ b/test/jsonld/1.1/compact/m020-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@container": "@type" }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m020-in.jsonld b/test/jsonld/1.1/compact/m020-in.jsonld
new file mode 100644
index 00000000..b1076fd6
--- /dev/null
+++ b/test/jsonld/1.1/compact/m020-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/ns/foo": [{
+ "@id": "http://example.org/base/baz",
+ "@type": [ "http://example.org/ns/bar" ]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m020-out.jsonld b/test/jsonld/1.1/compact/m020-out.jsonld
new file mode 100644
index 00000000..d571678d
--- /dev/null
+++ b/test/jsonld/1.1/compact/m020-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m021-context.jsonld b/test/jsonld/1.1/compact/m021-context.jsonld
new file mode 100644
index 00000000..2f234332
--- /dev/null
+++ b/test/jsonld/1.1/compact/m021-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@type": "@id", "@container": "@type" }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m021-in.jsonld b/test/jsonld/1.1/compact/m021-in.jsonld
new file mode 100644
index 00000000..b1076fd6
--- /dev/null
+++ b/test/jsonld/1.1/compact/m021-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/ns/foo": [{
+ "@id": "http://example.org/base/baz",
+ "@type": [ "http://example.org/ns/bar" ]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m021-out.jsonld b/test/jsonld/1.1/compact/m021-out.jsonld
new file mode 100644
index 00000000..7acaba29
--- /dev/null
+++ b/test/jsonld/1.1/compact/m021-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@type": "@id", "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m022-context.jsonld b/test/jsonld/1.1/compact/m022-context.jsonld
new file mode 100644
index 00000000..a596a5e3
--- /dev/null
+++ b/test/jsonld/1.1/compact/m022-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@type": "@vocab", "@container": "@type" }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m022-in.jsonld b/test/jsonld/1.1/compact/m022-in.jsonld
new file mode 100644
index 00000000..29e72e9f
--- /dev/null
+++ b/test/jsonld/1.1/compact/m022-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/ns/foo": [{
+ "@id": "http://example.org/ns/baz",
+ "@type": [ "http://example.org/ns/bar" ]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/m022-out.jsonld b/test/jsonld/1.1/compact/m022-out.jsonld
new file mode 100644
index 00000000..81386dfe
--- /dev/null
+++ b/test/jsonld/1.1/compact/m022-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@type": "@vocab", "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n001-context.jsonld b/test/jsonld/1.1/compact/n001-context.jsonld
new file mode 100644
index 00000000..18017f10
--- /dev/null
+++ b/test/jsonld/1.1/compact/n001-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "p2": {"@nest": "@nest"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n001-in.jsonld b/test/jsonld/1.1/compact/n001-in.jsonld
new file mode 100644
index 00000000..c0373456
--- /dev/null
+++ b/test/jsonld/1.1/compact/n001-in.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [{"@value": "v2"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n001-out.jsonld b/test/jsonld/1.1/compact/n001-out.jsonld
new file mode 100644
index 00000000..15819870
--- /dev/null
+++ b/test/jsonld/1.1/compact/n001-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "p2": {"@nest": "@nest"}
+ },
+ "p1": "v1",
+ "@nest": {
+ "p2": "v2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n002-context.jsonld b/test/jsonld/1.1/compact/n002-context.jsonld
new file mode 100644
index 00000000..557c93ac
--- /dev/null
+++ b/test/jsonld/1.1/compact/n002-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "p1": {"@nest": "@nest"},
+ "p2": {"@nest": "@nest"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n002-in.jsonld b/test/jsonld/1.1/compact/n002-in.jsonld
new file mode 100644
index 00000000..c0373456
--- /dev/null
+++ b/test/jsonld/1.1/compact/n002-in.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [{"@value": "v2"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n002-out.jsonld b/test/jsonld/1.1/compact/n002-out.jsonld
new file mode 100644
index 00000000..e9ff8d7c
--- /dev/null
+++ b/test/jsonld/1.1/compact/n002-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "p1": {"@nest": "@nest"},
+ "p2": {"@nest": "@nest"}
+ },
+ "@nest": {
+ "p1": "v1",
+ "p2": "v2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n003-context.jsonld b/test/jsonld/1.1/compact/n003-context.jsonld
new file mode 100644
index 00000000..421621b3
--- /dev/null
+++ b/test/jsonld/1.1/compact/n003-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest",
+ "p2": {"@nest": "nest"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n003-in.jsonld b/test/jsonld/1.1/compact/n003-in.jsonld
new file mode 100644
index 00000000..c0373456
--- /dev/null
+++ b/test/jsonld/1.1/compact/n003-in.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [{"@value": "v2"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n003-out.jsonld b/test/jsonld/1.1/compact/n003-out.jsonld
new file mode 100644
index 00000000..a2415a83
--- /dev/null
+++ b/test/jsonld/1.1/compact/n003-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest",
+ "p2": {"@nest": "nest"}
+ },
+ "p1": "v1",
+ "nest": {
+ "p2": "v2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n004-context.jsonld b/test/jsonld/1.1/compact/n004-context.jsonld
new file mode 100644
index 00000000..18017f10
--- /dev/null
+++ b/test/jsonld/1.1/compact/n004-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "p2": {"@nest": "@nest"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n004-in.jsonld b/test/jsonld/1.1/compact/n004-in.jsonld
new file mode 100644
index 00000000..5b70771a
--- /dev/null
+++ b/test/jsonld/1.1/compact/n004-in.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [{"@value": "v2"}, {"@value": "v3"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n004-out.jsonld b/test/jsonld/1.1/compact/n004-out.jsonld
new file mode 100644
index 00000000..66705e9b
--- /dev/null
+++ b/test/jsonld/1.1/compact/n004-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "p2": {"@nest": "@nest"}
+ },
+ "p1": "v1",
+ "@nest": {
+ "p2": ["v2", "v3"]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n005-context.jsonld b/test/jsonld/1.1/compact/n005-context.jsonld
new file mode 100644
index 00000000..5a712da1
--- /dev/null
+++ b/test/jsonld/1.1/compact/n005-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "list": {"@container": "@list", "@nest": "nestedlist"},
+ "nestedlist": "@nest"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n005-in.jsonld b/test/jsonld/1.1/compact/n005-in.jsonld
new file mode 100644
index 00000000..ad985e83
--- /dev/null
+++ b/test/jsonld/1.1/compact/n005-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/list": [{"@list": [
+ {"@value": "a"},
+ {"@value": "b"}
+ ]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n005-out.jsonld b/test/jsonld/1.1/compact/n005-out.jsonld
new file mode 100644
index 00000000..5e0035ab
--- /dev/null
+++ b/test/jsonld/1.1/compact/n005-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "list": {"@container": "@list", "@nest": "nestedlist"},
+ "nestedlist": "@nest"
+ },
+ "nestedlist": {
+ "list": ["a", "b"]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n006-context.jsonld b/test/jsonld/1.1/compact/n006-context.jsonld
new file mode 100644
index 00000000..281100fc
--- /dev/null
+++ b/test/jsonld/1.1/compact/n006-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "index": {"@container": "@index", "@nest": "nestedindex"},
+ "nestedindex": "@nest"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n006-in.jsonld b/test/jsonld/1.1/compact/n006-in.jsonld
new file mode 100644
index 00000000..2682faf3
--- /dev/null
+++ b/test/jsonld/1.1/compact/n006-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/index": [
+ {"@value": "a", "@index": "A"},
+ {"@value": "b", "@index": "B"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n006-out.jsonld b/test/jsonld/1.1/compact/n006-out.jsonld
new file mode 100644
index 00000000..49f2172d
--- /dev/null
+++ b/test/jsonld/1.1/compact/n006-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "index": {"@container": "@index", "@nest": "nestedindex"},
+ "nestedindex": "@nest"
+ },
+ "nestedindex": {
+ "index": {
+ "A": "a",
+ "B": "b"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n007-context.jsonld b/test/jsonld/1.1/compact/n007-context.jsonld
new file mode 100644
index 00000000..02492cee
--- /dev/null
+++ b/test/jsonld/1.1/compact/n007-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "container": {"@container": "@language", "@nest": "nestedlanguage"},
+ "nestedlanguage": "@nest"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n007-in.jsonld b/test/jsonld/1.1/compact/n007-in.jsonld
new file mode 100644
index 00000000..f32329ab
--- /dev/null
+++ b/test/jsonld/1.1/compact/n007-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/container": [
+ {"@value": "Die Königin", "@language": "de"},
+ {"@value": "The Queen", "@language": "en"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n007-out.jsonld b/test/jsonld/1.1/compact/n007-out.jsonld
new file mode 100644
index 00000000..659788d4
--- /dev/null
+++ b/test/jsonld/1.1/compact/n007-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "container": {"@container": "@language", "@nest": "nestedlanguage"},
+ "nestedlanguage": "@nest"
+ },
+ "nestedlanguage": {
+ "container": {
+ "en": "The Queen",
+ "de": "Die Königin"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n008-context.jsonld b/test/jsonld/1.1/compact/n008-context.jsonld
new file mode 100644
index 00000000..0eeff316
--- /dev/null
+++ b/test/jsonld/1.1/compact/n008-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type", "@nest": "nestedtypemap"},
+ "nestedtypemap": "@nest"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n008-in.jsonld b/test/jsonld/1.1/compact/n008-in.jsonld
new file mode 100644
index 00000000..ecdfc449
--- /dev/null
+++ b/test/jsonld/1.1/compact/n008-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/typemap": [
+ {"http://example/label": [{"@value": "Object with @type _:bar"}], "@type": ["_:bar"]},
+ {"http://example/label": [{"@value": "Object with @type <foo>"}], "@type": ["http://example.org/foo"]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n008-out.jsonld b/test/jsonld/1.1/compact/n008-out.jsonld
new file mode 100644
index 00000000..d1e44c63
--- /dev/null
+++ b/test/jsonld/1.1/compact/n008-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type", "@nest": "nestedtypemap"},
+ "nestedtypemap": "@nest"
+ },
+ "nestedtypemap": {
+ "typemap": {
+ "_:bar": {"label": "Object with @type _:bar"},
+ "http://example.org/foo": {"label": "Object with @type <foo>"}
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n009-context.jsonld b/test/jsonld/1.1/compact/n009-context.jsonld
new file mode 100644
index 00000000..2d491418
--- /dev/null
+++ b/test/jsonld/1.1/compact/n009-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id", "@nest": "nestedidmap"},
+ "nestedidmap": "@nest"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n009-in.jsonld b/test/jsonld/1.1/compact/n009-in.jsonld
new file mode 100644
index 00000000..c44d5e63
--- /dev/null
+++ b/test/jsonld/1.1/compact/n009-in.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/idmap": [
+ {"http://example/label": [{"@value": "Object with @id _:bar"}], "@id": "_:bar"},
+ {"http://example/label": [{"@value": "Object with @id <foo>"}], "@id": "http://example.org/foo"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n009-out.jsonld b/test/jsonld/1.1/compact/n009-out.jsonld
new file mode 100644
index 00000000..a251580c
--- /dev/null
+++ b/test/jsonld/1.1/compact/n009-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id", "@nest": "nestedidmap"},
+ "nestedidmap": "@nest"
+ },
+ "nestedidmap": {
+ "idmap": {
+ "http://example.org/foo": {"label": "Object with @id <foo>"},
+ "_:bar": {"label": "Object with @id _:bar"}
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n010-context.jsonld b/test/jsonld/1.1/compact/n010-context.jsonld
new file mode 100644
index 00000000..c3f0c9df
--- /dev/null
+++ b/test/jsonld/1.1/compact/n010-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "foonest": "@nest",
+ "barnest": "@nest",
+ "foo": {"@nest": "foonest"},
+ "bar": {"@nest": "barnest"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n010-in.jsonld b/test/jsonld/1.1/compact/n010-in.jsonld
new file mode 100644
index 00000000..5a47bb39
--- /dev/null
+++ b/test/jsonld/1.1/compact/n010-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "http://example.org/foo": "bar",
+ "http://example.org/bar": "foo"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n010-out.jsonld b/test/jsonld/1.1/compact/n010-out.jsonld
new file mode 100644
index 00000000..c53a3d76
--- /dev/null
+++ b/test/jsonld/1.1/compact/n010-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "foonest": "@nest",
+ "barnest": "@nest",
+ "foo": {"@nest": "foonest"},
+ "bar": {"@nest": "barnest"}
+ },
+ "barnest": {"bar": "foo"},
+ "foonest": {"foo": "bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n011-context.jsonld b/test/jsonld/1.1/compact/n011-context.jsonld
new file mode 100644
index 00000000..61aa7836
--- /dev/null
+++ b/test/jsonld/1.1/compact/n011-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": {"@id": "@nest"},
+ "p2": {"@nest": "nest"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n011-in.jsonld b/test/jsonld/1.1/compact/n011-in.jsonld
new file mode 100644
index 00000000..c0373456
--- /dev/null
+++ b/test/jsonld/1.1/compact/n011-in.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [{"@value": "v2"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/n011-out.jsonld b/test/jsonld/1.1/compact/n011-out.jsonld
new file mode 100644
index 00000000..001d2436
--- /dev/null
+++ b/test/jsonld/1.1/compact/n011-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": {"@id": "@nest"},
+ "p2": {"@nest": "nest"}
+ },
+ "p1": "v1",
+ "nest": {
+ "p2": "v2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/p001-context.jsonld b/test/jsonld/1.1/compact/p001-context.jsonld
new file mode 100644
index 00000000..2d72ed66
--- /dev/null
+++ b/test/jsonld/1.1/compact/p001-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "ex": {"@id": "http://example.org/"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/p001-in.jsonld b/test/jsonld/1.1/compact/p001-in.jsonld
new file mode 100644
index 00000000..19beb0f3
--- /dev/null
+++ b/test/jsonld/1.1/compact/p001-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@id": "http://example.org/id1",
+ "@type": ["http://example.org/Type1", "http://example.org/Type2"],
+ "http://example.org/term": {"@id": "http://example.org/id2"}
+}
diff --git a/test/jsonld/1.1/compact/p001-out.jsonld b/test/jsonld/1.1/compact/p001-out.jsonld
new file mode 100644
index 00000000..5dfd781a
--- /dev/null
+++ b/test/jsonld/1.1/compact/p001-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "ex": {"@id": "http://example.org/"}
+ },
+ "@id": "http://example.org/id1",
+ "@type": ["http://example.org/Type1", "http://example.org/Type2"],
+ "http://example.org/term": {"@id": "http://example.org/id2"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/p002-context.jsonld b/test/jsonld/1.1/compact/p002-context.jsonld
new file mode 100644
index 00000000..2d72ed66
--- /dev/null
+++ b/test/jsonld/1.1/compact/p002-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "ex": {"@id": "http://example.org/"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/p002-in.jsonld b/test/jsonld/1.1/compact/p002-in.jsonld
new file mode 100644
index 00000000..19beb0f3
--- /dev/null
+++ b/test/jsonld/1.1/compact/p002-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@id": "http://example.org/id1",
+ "@type": ["http://example.org/Type1", "http://example.org/Type2"],
+ "http://example.org/term": {"@id": "http://example.org/id2"}
+}
diff --git a/test/jsonld/1.1/compact/p002-out.jsonld b/test/jsonld/1.1/compact/p002-out.jsonld
new file mode 100644
index 00000000..5dfd781a
--- /dev/null
+++ b/test/jsonld/1.1/compact/p002-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "ex": {"@id": "http://example.org/"}
+ },
+ "@id": "http://example.org/id1",
+ "@type": ["http://example.org/Type1", "http://example.org/Type2"],
+ "http://example.org/term": {"@id": "http://example.org/id2"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/p003-context.jsonld b/test/jsonld/1.1/compact/p003-context.jsonld
new file mode 100644
index 00000000..58907444
--- /dev/null
+++ b/test/jsonld/1.1/compact/p003-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "compact-iris:": "http://example.com/compact-iris-",
+ "property": "http://example.com/property"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p003-in.jsonld b/test/jsonld/1.1/compact/p003-in.jsonld
new file mode 100644
index 00000000..948a5d52
--- /dev/null
+++ b/test/jsonld/1.1/compact/p003-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "http://example.com/property": {
+ "@id": "http://example.com/compact-iris-are-considered",
+ "http://example.com/property": "Prefix terms must end in a gen-delim"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p003-out.jsonld b/test/jsonld/1.1/compact/p003-out.jsonld
new file mode 100644
index 00000000..be552f3b
--- /dev/null
+++ b/test/jsonld/1.1/compact/p003-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "compact-iris:": "http://example.com/compact-iris-",
+ "property": "http://example.com/property"
+ },
+ "property": {
+ "@id": "http://example.com/compact-iris-are-considered",
+ "property": "Prefix terms must end in a gen-delim"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p004-context.jsonld b/test/jsonld/1.1/compact/p004-context.jsonld
new file mode 100644
index 00000000..f4348ae1
--- /dev/null
+++ b/test/jsonld/1.1/compact/p004-context.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "ex": "http://example.com/",
+ "colon": "http://example.org/:",
+ "question": "http://example.org/?",
+ "hash": "http://example.org/#",
+ "lbracket": "http://example.org/[",
+ "rbracket": "http://example.org/]",
+ "at": "http://example.org/@"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/p004-in.jsonld b/test/jsonld/1.1/compact/p004-in.jsonld
new file mode 100644
index 00000000..4f9847f9
--- /dev/null
+++ b/test/jsonld/1.1/compact/p004-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "http://example.com/foo": "Use term with IRI ending in '/'",
+ "http://example.org/:foo": "Use term with IRI ending in ':'",
+ "http://example.org/?foo": "Use term with IRI ending in '?'",
+ "http://example.org/#foo": "Use term with IRI ending in '#'",
+ "http://example.org/[foo": "Use term with IRI ending in '['",
+ "http://example.org/]foo": "Use term with IRI ending in ']'",
+ "http://example.org/@foo": "Use term with IRI ending in '@'"
+}
diff --git a/test/jsonld/1.1/compact/p004-out.jsonld b/test/jsonld/1.1/compact/p004-out.jsonld
new file mode 100644
index 00000000..20de3721
--- /dev/null
+++ b/test/jsonld/1.1/compact/p004-out.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "ex": "http://example.com/",
+ "colon": "http://example.org/:",
+ "question": "http://example.org/?",
+ "hash": "http://example.org/#",
+ "lbracket": "http://example.org/[",
+ "rbracket": "http://example.org/]",
+ "at": "http://example.org/@"
+ },
+ "ex:foo": "Use term with IRI ending in '/'",
+ "colon:foo": "Use term with IRI ending in ':'",
+ "question:foo": "Use term with IRI ending in '?'",
+ "hash:foo": "Use term with IRI ending in '#'",
+ "lbracket:foo": "Use term with IRI ending in '['",
+ "rbracket:foo": "Use term with IRI ending in ']'",
+ "at:foo": "Use term with IRI ending in '@'"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/p005-context.jsonld b/test/jsonld/1.1/compact/p005-context.jsonld
new file mode 100644
index 00000000..daa9107d
--- /dev/null
+++ b/test/jsonld/1.1/compact/p005-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "compact-iris": {"@id": "http://example.com/compact-iris-", "@prefix": true},
+ "property": "http://example.com/property"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p005-in.jsonld b/test/jsonld/1.1/compact/p005-in.jsonld
new file mode 100644
index 00000000..cef01fc8
--- /dev/null
+++ b/test/jsonld/1.1/compact/p005-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "http://example.com/property": {
+ "@id": "http://example.com/compact-iris-are-considered",
+ "http://example.com/property": "@prefix does not require a gen-delim"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p005-out.jsonld b/test/jsonld/1.1/compact/p005-out.jsonld
new file mode 100644
index 00000000..6920c193
--- /dev/null
+++ b/test/jsonld/1.1/compact/p005-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "compact-iris": {"@id": "http://example.com/compact-iris-", "@prefix": true},
+ "property": "http://example.com/property"
+ },
+ "property": {
+ "@id": "compact-iris:are-considered",
+ "property": "@prefix does not require a gen-delim"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p006-context.jsonld b/test/jsonld/1.1/compact/p006-context.jsonld
new file mode 100644
index 00000000..daa9107d
--- /dev/null
+++ b/test/jsonld/1.1/compact/p006-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "compact-iris": {"@id": "http://example.com/compact-iris-", "@prefix": true},
+ "property": "http://example.com/property"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p006-in.jsonld b/test/jsonld/1.1/compact/p006-in.jsonld
new file mode 100644
index 00000000..cef01fc8
--- /dev/null
+++ b/test/jsonld/1.1/compact/p006-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "http://example.com/property": {
+ "@id": "http://example.com/compact-iris-are-considered",
+ "http://example.com/property": "@prefix does not require a gen-delim"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p006-out.jsonld b/test/jsonld/1.1/compact/p006-out.jsonld
new file mode 100644
index 00000000..6920c193
--- /dev/null
+++ b/test/jsonld/1.1/compact/p006-out.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "compact-iris": {"@id": "http://example.com/compact-iris-", "@prefix": true},
+ "property": "http://example.com/property"
+ },
+ "property": {
+ "@id": "compact-iris:are-considered",
+ "property": "@prefix does not require a gen-delim"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p007-context.jsonld b/test/jsonld/1.1/compact/p007-context.jsonld
new file mode 100644
index 00000000..8d06da6b
--- /dev/null
+++ b/test/jsonld/1.1/compact/p007-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "foo": "http://example.org/",
+ "foo:bar": {"@type": "@id"}
+ }
+}
diff --git a/test/jsonld/1.1/compact/p007-in.jsonld b/test/jsonld/1.1/compact/p007-in.jsonld
new file mode 100644
index 00000000..47e98a8a
--- /dev/null
+++ b/test/jsonld/1.1/compact/p007-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.org/bar/a",
+ "http://example.org/bar/b": "c"
+}
diff --git a/test/jsonld/1.1/compact/p007-out.jsonld b/test/jsonld/1.1/compact/p007-out.jsonld
new file mode 100644
index 00000000..b82492a8
--- /dev/null
+++ b/test/jsonld/1.1/compact/p007-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "foo": "http://example.org/",
+ "foo:bar": {"@type": "@id"}
+ },
+ "@id": "foo:bar/a",
+ "foo:bar/b": "c"
+}
diff --git a/test/jsonld/1.1/compact/p008-context.jsonld b/test/jsonld/1.1/compact/p008-context.jsonld
new file mode 100644
index 00000000..9c7f2363
--- /dev/null
+++ b/test/jsonld/1.1/compact/p008-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "compact-iris": {"@id": "http://example.com/compact-iris#", "@prefix": false},
+ "property": "http://example.com/property"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p008-in.jsonld b/test/jsonld/1.1/compact/p008-in.jsonld
new file mode 100644
index 00000000..55a50021
--- /dev/null
+++ b/test/jsonld/1.1/compact/p008-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "http://example.com/property": {
+ "@id": "http://example.com/compact-iris#are-considered",
+ "http://example.com/property": "@prefix false not really necessary, but doubly prevents term from being used as a prefix"
+ }
+}
diff --git a/test/jsonld/1.1/compact/p008-out.jsonld b/test/jsonld/1.1/compact/p008-out.jsonld
new file mode 100644
index 00000000..3ad60694
--- /dev/null
+++ b/test/jsonld/1.1/compact/p008-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "compact-iris": {
+ "@id": "http://example.com/compact-iris#",
+ "@prefix": false
+ },
+ "property": "http://example.com/property"
+ },
+ "property": {
+ "@id": "http://example.com/compact-iris#are-considered",
+ "property": "@prefix false not really necessary, but doubly prevents term from being used as a prefix"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi01-context.jsonld b/test/jsonld/1.1/compact/pi01-context.jsonld
new file mode 100644
index 00000000..f2a62b3e
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi01-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi01-in.jsonld b/test/jsonld/1.1/compact/pi01-in.jsonld
new file mode 100644
index 00000000..391db54d
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi01-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/1", "http://example.com/prop": [{"@value": "regular"}]},
+ {"@id": "http://example.com/person/2", "http://example.com/prop": [{"@value": "guest"}]},
+ {"@id": "http://example.com/person/3", "http://example.com/prop": [{"@value": "guest"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi01-out.jsonld b/test/jsonld/1.1/compact/pi01-out.jsonld
new file mode 100644
index 00000000..7a92c136
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi01-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ },
+ "@id": "article",
+ "author": {
+ "regular": {"@id": "person/1"},
+ "guest": [{"@id": "person/2"}, {"@id": "person/3"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi02-context.jsonld b/test/jsonld/1.1/compact/pi02-context.jsonld
new file mode 100644
index 00000000..f2a62b3e
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi02-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi02-in.jsonld b/test/jsonld/1.1/compact/pi02-in.jsonld
new file mode 100644
index 00000000..6068c779
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi02-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/1", "http://example.com/prop": [{"@value": "regular"}, {"@value": "foo"}]},
+ {"@id": "http://example.com/person/2", "http://example.com/prop": [{"@value": "guest"}, {"@value": "foo"}]},
+ {"@id": "http://example.com/person/3", "http://example.com/prop": [{"@value": "guest"}, {"@value": "foo"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi02-out.jsonld b/test/jsonld/1.1/compact/pi02-out.jsonld
new file mode 100644
index 00000000..850558eb
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi02-out.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ },
+ "@id": "article",
+ "author": {
+ "regular": {"@id": "person/1", "prop": "foo"},
+ "guest": [
+ {"@id": "person/2", "prop": "foo"},
+ {"@id": "person/3", "prop": "foo"}
+ ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi03-context.jsonld b/test/jsonld/1.1/compact/pi03-context.jsonld
new file mode 100644
index 00000000..cb0fd5dd
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi03-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@vocab", "@container": "@index", "@index": "prop"},
+ "prop": {"@type": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi03-in.jsonld b/test/jsonld/1.1/compact/pi03-in.jsonld
new file mode 100644
index 00000000..165092dc
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi03-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/1", "http://example.com/prop": [{"@id": "http://example.com/regular"}]},
+ {"@id": "http://example.com/person/2", "http://example.com/prop": [{"@id": "http://example.com/guest"}]},
+ {"@id": "http://example.com/person/3", "http://example.com/prop": [{"@id": "http://example.com/guest"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi03-out.jsonld b/test/jsonld/1.1/compact/pi03-out.jsonld
new file mode 100644
index 00000000..2e9e5780
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi03-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@vocab", "@container": "@index", "@index": "prop"},
+ "prop": {"@type": "@id"}
+ },
+ "@id": "article",
+ "author": {
+ "regular": {"@id": "person/1"},
+ "guest": [
+ {"@id": "person/2"},
+ {"@id": "person/3"}
+ ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi04-context.jsonld b/test/jsonld/1.1/compact/pi04-context.jsonld
new file mode 100644
index 00000000..cb0fd5dd
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi04-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@vocab", "@container": "@index", "@index": "prop"},
+ "prop": {"@type": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi04-in.jsonld b/test/jsonld/1.1/compact/pi04-in.jsonld
new file mode 100644
index 00000000..3b4ffdeb
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi04-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/1", "http://example.com/prop": [{"@id": "http://example.com/regular"}, {"@id": "http://example.com/foo"}]},
+ {"@id": "http://example.com/person/2", "http://example.com/prop": [{"@id": "http://example.com/guest"}, {"@id": "http://example.com/foo"}]},
+ {"@id": "http://example.com/person/3", "http://example.com/prop": [{"@id": "http://example.com/guest"}, {"@id": "http://example.com/foo"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi04-out.jsonld b/test/jsonld/1.1/compact/pi04-out.jsonld
new file mode 100644
index 00000000..11dd58c2
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi04-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@vocab", "@container": "@index", "@index": "prop"},
+ "prop": {"@type": "@id"}
+ },
+ "@id": "article",
+ "author": {
+ "regular": {"@id": "person/1", "prop": "foo"},
+ "guest": [
+ {"@id": "person/2", "prop": "foo"},
+ {"@id": "person/3", "prop": "foo"}
+ ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi05-context.jsonld b/test/jsonld/1.1/compact/pi05-context.jsonld
new file mode 100644
index 00000000..f2a62b3e
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi05-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi05-in.jsonld b/test/jsonld/1.1/compact/pi05-in.jsonld
new file mode 100644
index 00000000..4f8d91d2
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi05-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/1"},
+ {"@id": "http://example.com/person/2"},
+ {"@id": "http://example.com/person/3"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi05-out.jsonld b/test/jsonld/1.1/compact/pi05-out.jsonld
new file mode 100644
index 00000000..c0d89078
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi05-out.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ },
+ "@id": "article",
+ "author": {
+ "@none": ["person/1", "person/2", "person/3"]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi06-context.jsonld b/test/jsonld/1.1/compact/pi06-context.jsonld
new file mode 100644
index 00000000..f2a62b3e
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi06-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi06-in.jsonld b/test/jsonld/1.1/compact/pi06-in.jsonld
new file mode 100644
index 00000000..165092dc
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi06-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/1", "http://example.com/prop": [{"@id": "http://example.com/regular"}]},
+ {"@id": "http://example.com/person/2", "http://example.com/prop": [{"@id": "http://example.com/guest"}]},
+ {"@id": "http://example.com/person/3", "http://example.com/prop": [{"@id": "http://example.com/guest"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pi06-out.jsonld b/test/jsonld/1.1/compact/pi06-out.jsonld
new file mode 100644
index 00000000..146f10fe
--- /dev/null
+++ b/test/jsonld/1.1/compact/pi06-out.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ },
+ "@id": "article",
+ "author": {
+ "@none": [
+ {"@id": "person/1", "prop": {"@id": "regular"}},
+ {"@id": "person/2", "prop": {"@id": "guest"}},
+ {"@id": "person/3", "prop": {"@id": "guest"}}
+ ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pr01-context.jsonld b/test/jsonld/1.1/compact/pr01-context.jsonld
new file mode 100644
index 00000000..a6875709
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr01-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": [{
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "protected": {"@protected": true}
+ }, null]
+}
diff --git a/test/jsonld/1.1/compact/pr01-in.jsonld b/test/jsonld/1.1/compact/pr01-in.jsonld
new file mode 100644
index 00000000..d6a85b74
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr01-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example/a": [{"@id": "http://example.org/foo"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pr02-context.jsonld b/test/jsonld/1.1/compact/pr02-context.jsonld
new file mode 100644
index 00000000..2c7433f9
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr02-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": [{
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "protected": {"@type": "@id", "@protected": true}
+ }, {
+ "protected": {"@type": "@vocab"}
+ }]
+}
diff --git a/test/jsonld/1.1/compact/pr02-in.jsonld b/test/jsonld/1.1/compact/pr02-in.jsonld
new file mode 100644
index 00000000..d6a85b74
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr02-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example/a": [{"@id": "http://example.org/foo"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pr03-context.jsonld b/test/jsonld/1.1/compact/pr03-context.jsonld
new file mode 100644
index 00000000..0863ce0d
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr03-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "protected": {"@protected": true},
+ "Type": {"@context": {"protected": {"@type": "@id"}}}
+ }
+}
diff --git a/test/jsonld/1.1/compact/pr03-in.jsonld b/test/jsonld/1.1/compact/pr03-in.jsonld
new file mode 100644
index 00000000..0b780438
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr03-in.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.com/protected": [{"@value": "p === http://example.com/protected"}],
+ "http://example.com/unprotected": [{
+ "@type": "http://example.com/Type",
+ "http://example.com/protected": [{"@value": "p === http://example.com/protected"}]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/pr04-context.jsonld b/test/jsonld/1.1/compact/pr04-context.jsonld
new file mode 100644
index 00000000..1d351903
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr04-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "protected": {"@protected": true},
+ "unprotected": {"@context": {"protected": {"@language": "en"}}}
+ }
+}
diff --git a/test/jsonld/1.1/compact/pr04-in.jsonld b/test/jsonld/1.1/compact/pr04-in.jsonld
new file mode 100644
index 00000000..e108683c
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr04-in.jsonld
@@ -0,0 +1,9 @@
+[{
+ "http://example.com/protected": [{"@value": "p === http://example.com/protected"}],
+ "http://example.com/unprotected": [{
+ "http://example.com/protected": [{
+ "@value": "p === http://example.com/protected",
+ "@language": "en"
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/compact/pr04-out.jsonld b/test/jsonld/1.1/compact/pr04-out.jsonld
new file mode 100644
index 00000000..41eaedee
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr04-out.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "protected": {"@protected": true},
+ "unprotected": {
+ "@context": {"protected": {"@language": "en"}}
+ }
+ },
+ "protected": "p === http://example.com/protected",
+ "unprotected": {
+ "protected": "p === http://example.com/protected"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/pr05-context.jsonld b/test/jsonld/1.1/compact/pr05-context.jsonld
new file mode 100644
index 00000000..a066af95
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr05-context.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "@vocab": "http://example.com/",
+ "Parent": {"@context": {"@protected": true, "foo": {"@type": "@id"}}}
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "Child": {"@context": {"@protected": true, "foo": {"@type": "@id"}}}
+ }]
+}
diff --git a/test/jsonld/1.1/compact/pr05-in.jsonld b/test/jsonld/1.1/compact/pr05-in.jsonld
new file mode 100644
index 00000000..4e97b905
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr05-in.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@type": [
+ "http://example.com/Parent"
+ ],
+ "http://example.com/foo": [
+ {
+ "@type": [
+ "http://example.com/Child"
+ ],
+ "http://example.com/foo": [
+ {
+ "@id": "http://example.com/test"
+ }
+ ]
+ }
+ ]
+ }
+]
+
diff --git a/test/jsonld/1.1/compact/pr05-out.jsonld b/test/jsonld/1.1/compact/pr05-out.jsonld
new file mode 100644
index 00000000..7cd17cb8
--- /dev/null
+++ b/test/jsonld/1.1/compact/pr05-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "@vocab": "http://example.com/",
+ "Parent": {"@context": {"@protected": true, "foo": {"@type": "@id"}}}
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "Child": {"@context": {"@protected": true, "foo": {"@type": "@id"}}}
+ }],
+ "@type": "Parent",
+ "foo": {
+ "@type": "Child",
+ "foo": "http://example.com/test"
+ }
+}
diff --git a/test/jsonld/1.1/compact/r001-context.jsonld b/test/jsonld/1.1/compact/r001-context.jsonld
new file mode 100644
index 00000000..304ef521
--- /dev/null
+++ b/test/jsonld/1.1/compact/r001-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"b": "http://example.com/b"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/r001-in.jsonld b/test/jsonld/1.1/compact/r001-in.jsonld
new file mode 100644
index 00000000..543c3609
--- /dev/null
+++ b/test/jsonld/1.1/compact/r001-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "a",
+ "http://example.com/b": {"@id": "c"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/r001-out.jsonld b/test/jsonld/1.1/compact/r001-out.jsonld
new file mode 100644
index 00000000..89a6b556
--- /dev/null
+++ b/test/jsonld/1.1/compact/r001-out.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {"b": "http://example.com/b"},
+ "@id": "a",
+ "b": {"@id": "c"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/r002-context.jsonld b/test/jsonld/1.1/compact/r002-context.jsonld
new file mode 100644
index 00000000..304ef521
--- /dev/null
+++ b/test/jsonld/1.1/compact/r002-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"b": "http://example.com/b"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/r002-in.jsonld b/test/jsonld/1.1/compact/r002-in.jsonld
new file mode 100644
index 00000000..765625c3
--- /dev/null
+++ b/test/jsonld/1.1/compact/r002-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.org/a",
+ "http://example.com/b": {"@id": "http://example.org/c"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/r002-out.jsonld b/test/jsonld/1.1/compact/r002-out.jsonld
new file mode 100644
index 00000000..b8786539
--- /dev/null
+++ b/test/jsonld/1.1/compact/r002-out.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {"b": "http://example.com/b"},
+ "@id": "http://example.org/a",
+ "b": {"@id": "http://example.org/c"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/s001-context.jsonld b/test/jsonld/1.1/compact/s001-context.jsonld
new file mode 100644
index 00000000..41a0cf97
--- /dev/null
+++ b/test/jsonld/1.1/compact/s001-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "mylist": {"@id": "http://example.com/mylist", "@container": ["@list"]},
+ "myset": {"@id": "http://example.com/myset", "@container": ["@set"]},
+ "myid": {"@id": "http://example.com/myid", "@container": ["@id"]},
+ "mytype": {"@id": "http://example.com/mytype", "@container": ["@type"]},
+ "mylanguage": {"@id": "http://example.com/mylanguage", "@container": ["@language"]},
+ "myindex": {"@id": "http://example.com/myindex", "@container": ["@index"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/s001-in.jsonld b/test/jsonld/1.1/compact/s001-in.jsonld
new file mode 100644
index 00000000..459a2978
--- /dev/null
+++ b/test/jsonld/1.1/compact/s001-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@id": "http://example.org/id",
+ "http://example.com/mylist": {"@list": ["foo"]},
+ "http://example.com/myset": "foo",
+ "http://example.com/myid": {"@id": "http://example/id", "@type": "http://example/type"},
+ "http://example.com/mytype": {"@id": "http://example/id", "@type": "http://example/type"},
+ "http://example.com/mylanguage": {"@value": "foo", "@language": "en"},
+ "http://example.com/myindex": {"@value": "foo", "@index": "bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/s001-out.jsonld b/test/jsonld/1.1/compact/s001-out.jsonld
new file mode 100644
index 00000000..f0b9bc2b
--- /dev/null
+++ b/test/jsonld/1.1/compact/s001-out.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "mylist": {"@id": "http://example.com/mylist", "@container": ["@list"]},
+ "myset": {"@id": "http://example.com/myset", "@container": ["@set"]},
+ "myid": {"@id": "http://example.com/myid", "@container": ["@id"]},
+ "mytype": {"@id": "http://example.com/mytype", "@container": ["@type"]},
+ "mylanguage": {"@id": "http://example.com/mylanguage", "@container": ["@language"]},
+ "myindex": {"@id": "http://example.com/myindex", "@container": ["@index"]}
+ },
+ "@id": "http://example.org/id",
+ "mylist": ["foo"],
+ "myset": ["foo"],
+ "myid": {"http://example/id": {"@type": "http://example/type"}},
+ "mytype": {"http://example/type": "http://example/id"},
+ "mylanguage": {"en": "foo"},
+ "myindex": {"bar": "foo"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/s002-context.jsonld b/test/jsonld/1.1/compact/s002-context.jsonld
new file mode 100644
index 00000000..b63af60d
--- /dev/null
+++ b/test/jsonld/1.1/compact/s002-context.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "myid": {"@id": "http://example.com/myid", "@container": ["@id", "@set"]},
+ "mytype": {"@id": "http://example.com/mytype", "@container": ["@type", "@set"]},
+ "mylanguage": {"@id": "http://example.com/mylanguage", "@container": ["@language", "@set"]},
+ "myindex": {"@id": "http://example.com/myindex", "@container": ["@index", "@set"]}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/s002-in.jsonld b/test/jsonld/1.1/compact/s002-in.jsonld
new file mode 100644
index 00000000..6b1e951e
--- /dev/null
+++ b/test/jsonld/1.1/compact/s002-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@id": "http://example.org/id",
+ "http://example.com/myid": {"@id": "http://example/id", "@type": "http://example/type"},
+ "http://example.com/mytype": {"@id": "http://example/id", "@type": "http://example/type"},
+ "http://example.com/mylanguage": {"@value": "foo", "@language": "en"},
+ "http://example.com/myindex": {"@value": "foo", "@index": "bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/s002-out.jsonld b/test/jsonld/1.1/compact/s002-out.jsonld
new file mode 100644
index 00000000..7a99c67e
--- /dev/null
+++ b/test/jsonld/1.1/compact/s002-out.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "myid": {"@id": "http://example.com/myid", "@container": ["@id", "@set"]},
+ "mytype": {"@id": "http://example.com/mytype", "@container": ["@type", "@set"]},
+ "mylanguage": {"@id": "http://example.com/mylanguage", "@container": ["@language", "@set"]},
+ "myindex": {"@id": "http://example.com/myindex", "@container": ["@index", "@set"]}
+ },
+ "@id": "http://example.org/id",
+ "myid": {"http://example/id": [{"@type": "http://example/type"}]},
+ "mytype": {"http://example/type": ["http://example/id"]},
+ "mylanguage": {"en": ["foo"]},
+ "myindex": {"bar": ["foo"]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/tn01-context.jsonld b/test/jsonld/1.1/compact/tn01-context.jsonld
new file mode 100644
index 00000000..4850765e
--- /dev/null
+++ b/test/jsonld/1.1/compact/tn01-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "notype": {"@id": "http://example.com/notype", "@type": "@none"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/tn01-in.jsonld b/test/jsonld/1.1/compact/tn01-in.jsonld
new file mode 100644
index 00000000..2398cf62
--- /dev/null
+++ b/test/jsonld/1.1/compact/tn01-in.jsonld
@@ -0,0 +1,14 @@
+[{
+ "http://example.com/notype": [
+ {"@value": "string"},
+ {"@value": true},
+ {"@value": false},
+ {"@value": 1},
+ {"@value": 10.0},
+ {"@value": "plain"},
+ {"@value": true, "@type": "http://www.w3.org/2001/XMLSchema#boolean"},
+ {"@value": "english", "@language": "en"},
+ {"@value": "2018-02-17", "@type": "http://www.w3.org/2001/XMLSchema#date"},
+ {"@id": "http://example.com/iri"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/tn01-out.jsonld b/test/jsonld/1.1/compact/tn01-out.jsonld
new file mode 100644
index 00000000..bf6b641f
--- /dev/null
+++ b/test/jsonld/1.1/compact/tn01-out.jsonld
@@ -0,0 +1,19 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "notype": {"@id": "http://example.com/notype", "@type": "@none"}
+ },
+ "notype": [
+ {"@value": "string"},
+ {"@value": true},
+ {"@value": false},
+ {"@value": 1},
+ {"@value": 10.0},
+ {"@value": "plain"},
+ {"@value": true, "@type": "xsd:boolean"},
+ {"@value": "english", "@language": "en"},
+ {"@value": "2018-02-17", "@type": "xsd:date"},
+ {"@id": "http://example.com/iri"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/tn02-context.jsonld b/test/jsonld/1.1/compact/tn02-context.jsonld
new file mode 100644
index 00000000..4850765e
--- /dev/null
+++ b/test/jsonld/1.1/compact/tn02-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "notype": {"@id": "http://example.com/notype", "@type": "@none"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/tn02-in.jsonld b/test/jsonld/1.1/compact/tn02-in.jsonld
new file mode 100644
index 00000000..4d2ca634
--- /dev/null
+++ b/test/jsonld/1.1/compact/tn02-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/notype": [{"@value": "string"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/tn02-out.jsonld b/test/jsonld/1.1/compact/tn02-out.jsonld
new file mode 100644
index 00000000..cada2038
--- /dev/null
+++ b/test/jsonld/1.1/compact/tn02-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "notype": {"@id": "http://example.com/notype", "@type": "@none"}
+ },
+ "notype": {"@value": "string"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/tn03-context.jsonld b/test/jsonld/1.1/compact/tn03-context.jsonld
new file mode 100644
index 00000000..39d1f8e9
--- /dev/null
+++ b/test/jsonld/1.1/compact/tn03-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "notype": {"@id": "http://example.com/notype", "@type": "@none", "@container": "@set"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/tn03-in.jsonld b/test/jsonld/1.1/compact/tn03-in.jsonld
new file mode 100644
index 00000000..4d2ca634
--- /dev/null
+++ b/test/jsonld/1.1/compact/tn03-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/notype": [{"@value": "string"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/compact/tn03-out.jsonld b/test/jsonld/1.1/compact/tn03-out.jsonld
new file mode 100644
index 00000000..bfbf9f7c
--- /dev/null
+++ b/test/jsonld/1.1/compact/tn03-out.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "notype": {"@id": "http://example.com/notype", "@type": "@none", "@container": "@set"}
+ },
+ "notype": [{"@value": "string"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/context.jsonld b/test/jsonld/1.1/context.jsonld
new file mode 100644
index 00000000..bc03e7be
--- /dev/null
+++ b/test/jsonld/1.1/context.jsonld
@@ -0,0 +1,37 @@
+{
+ "@context": {
+ "@vocab": "https://w3c.github.io/json-ld-api/tests/vocab#",
+ "dcterms": "http://purl.org/dc/terms/",
+ "jld": "https://w3c.github.io/json-ld-api/tests/vocab#",
+ "mf": "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+
+ "context": { "@type": "@id" },
+ "expect": { "@id": "mf:result", "@type": "@id" },
+ "expectErrorCode": { "@id": "mf:result" },
+ "frame": { "@type": "@id" },
+ "input": { "@id": "mf:action", "@type": "@id" },
+ "option": { "@type": "@id"},
+ "sequence": { "@id": "mf:entries", "@type": "@id", "@container": "@list" },
+ "redirectTo": { "@type": "@id"},
+
+ "name": "mf:name",
+ "purpose": "rdfs:comment",
+ "description": "rdfs:comment",
+ "base": { "@type": "@id" },
+ "compactArrays": { "@type": "xsd:boolean" },
+ "compactToRelative": { "@type": "xsd:boolean" },
+ "contentType": { "@type": "xsd:string" },
+ "expandContext": { "@type": "@id" },
+ "extractAllScripts": { "@type": "xsd:boolean" },
+ "httpLink": { "@type": "xsd:string", "@container": "@set" },
+ "httpStatus": { "@type": "xsd:integer" },
+ "normative": { "@type": "xsd:boolean" },
+ "processingMode": { "@type": "xsd:string" },
+ "processorFeature": { "@type": "xsd:string" },
+ "produceGeneralizedRdf":{ "@type": "xsd:boolean" },
+ "specVersion": { "@type": "xsd:string" },
+ "useNativeTypes": { "@type": "xsd:boolean" }
+ }
+}
diff --git a/test/jsonld/1.1/expand-manifest.jsonld b/test/jsonld/1.1/expand-manifest.jsonld
new file mode 100644
index 00000000..0482a73b
--- /dev/null
+++ b/test/jsonld/1.1/expand-manifest.jsonld
@@ -0,0 +1,2944 @@
+{
+ "@context": ["context.jsonld", {"@base": "expand-manifest"}],
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "Expansion",
+ "description": "These tests implement the requirements for the JSON-LD [Expansion Algorithm](https://www.w3.org/TR/json-ld11-api/#expansion-algorithm).",
+ "baseIri": "https://w3c.github.io/json-ld-api/tests/",
+ "sequence": [
+ {
+ "@id": "#t0001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "drop free-floating nodes",
+ "purpose": "Expand drops unreferenced nodes having only @id",
+ "input": "expand/0001-in.jsonld",
+ "expect": "expand/0001-out.jsonld"
+ }, {
+ "@id": "#t0002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "basic",
+ "purpose": "Expanding terms with different types of values",
+ "input": "expand/0002-in.jsonld",
+ "expect": "expand/0002-out.jsonld"
+ }, {
+ "@id": "#t0003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "drop null and unmapped properties",
+ "purpose": "Verifies that null values and unmapped properties are removed from expanded output",
+ "input": "expand/0003-in.jsonld",
+ "expect": "expand/0003-out.jsonld"
+ }, {
+ "@id": "#t0004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "optimize @set, keep empty arrays",
+ "purpose": "Uses of @set are removed in expansion; values of @set, or just plain values which are empty arrays are retained",
+ "input": "expand/0004-in.jsonld",
+ "expect": "expand/0004-out.jsonld"
+ }, {
+ "@id": "#t0005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "do not expand aliased @id/@type",
+ "purpose": "If a keyword is aliased, it is not used when expanding",
+ "input": "expand/0005-in.jsonld",
+ "expect": "expand/0005-out.jsonld"
+ }, {
+ "@id": "#t0006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "alias keywords",
+ "purpose": "Aliased keywords expand in resulting document",
+ "input": "expand/0006-in.jsonld",
+ "expect": "expand/0006-out.jsonld"
+ }, {
+ "@id": "#t0007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "date type-coercion",
+ "purpose": "Expand strings to expanded value with @type: xsd:dateTime",
+ "input": "expand/0007-in.jsonld",
+ "expect": "expand/0007-out.jsonld"
+ }, {
+ "@id": "#t0008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@value with @language",
+ "purpose": "Keep expanded values with @language, drop non-conforming value objects containing just @language",
+ "input": "expand/0008-in.jsonld",
+ "expect": "expand/0008-out.jsonld"
+ }, {
+ "@id": "#t0009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@graph with terms",
+ "purpose": "Use of @graph to contain multiple nodes within array",
+ "input": "expand/0009-in.jsonld",
+ "expect": "expand/0009-out.jsonld"
+ }, {
+ "@id": "#t0010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "native types",
+ "purpose": "Expanding native scalar retains native scalar within expanded value",
+ "input": "expand/0010-in.jsonld",
+ "expect": "expand/0010-out.jsonld"
+ }, {
+ "@id": "#t0011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "coerced @id",
+ "purpose": "A value of a property with @type: @id coercion expands to a node reference",
+ "input": "expand/0011-in.jsonld",
+ "expect": "expand/0011-out.jsonld"
+ }, {
+ "@id": "#t0012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@graph with embed",
+ "purpose": "Use of @graph to contain multiple nodes within array",
+ "input": "expand/0012-in.jsonld",
+ "expect": "expand/0012-out.jsonld"
+ }, {
+ "@id": "#t0013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand already expanded",
+ "purpose": "Expand does not mess up already expanded document",
+ "input": "expand/0013-in.jsonld",
+ "expect": "expand/0013-out.jsonld"
+ }, {
+ "@id": "#t0014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@set of @value objects with keyword aliases",
+ "purpose": "Expanding aliased @set and @value",
+ "input": "expand/0014-in.jsonld",
+ "expect": "expand/0014-out.jsonld"
+ }, {
+ "@id": "#t0015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "collapse set of sets, keep empty lists",
+ "purpose": "An array of multiple @set nodes are collapsed into a single array",
+ "input": "expand/0015-in.jsonld",
+ "expect": "expand/0015-out.jsonld"
+ }, {
+ "@id": "#t0016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "context reset",
+ "purpose": "Setting @context to null within an embedded object resets back to initial context state",
+ "input": "expand/0016-in.jsonld",
+ "expect": "expand/0016-out.jsonld"
+ }, {
+ "@id": "#t0017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@graph and @id aliased",
+ "purpose": "Expanding with @graph and @id aliases",
+ "input": "expand/0017-in.jsonld",
+ "expect": "expand/0017-out.jsonld"
+ }, {
+ "@id": "#t0018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "override default @language",
+ "purpose": "override default @language in terms; only language-tag strings",
+ "input": "expand/0018-in.jsonld",
+ "expect": "expand/0018-out.jsonld"
+ }, {
+ "@id": "#t0019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "remove @value = null",
+ "purpose": "Expanding a value of null removes the value",
+ "input": "expand/0019-in.jsonld",
+ "expect": "expand/0019-out.jsonld"
+ }, {
+ "@id": "#t0020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "do not remove @graph if not at top-level",
+ "purpose": "@graph used under a node is retained",
+ "input": "expand/0020-in.jsonld",
+ "expect": "expand/0020-out.jsonld"
+ }, {
+ "@id": "#t0021",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "do not remove @graph at top-level if not only property",
+ "purpose": "@graph used at the top level is retained if there are other properties",
+ "input": "expand/0021-in.jsonld",
+ "expect": "expand/0021-out.jsonld"
+ }, {
+ "@id": "#t0022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand value with default language",
+ "purpose": "Expanding with a default language applies that language to string values",
+ "input": "expand/0022-in.jsonld",
+ "expect": "expand/0022-out.jsonld"
+ }, {
+ "@id": "#t0023",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expanding list/set with coercion",
+ "purpose": "Expanding lists and sets with properties having coercion coerces list/set values",
+ "input": "expand/0023-in.jsonld",
+ "expect": "expand/0023-out.jsonld"
+ }, {
+ "@id": "#t0024",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Multiple contexts",
+ "purpose": "Tests that contexts in an array are merged",
+ "input": "expand/0024-in.jsonld",
+ "expect": "expand/0024-out.jsonld"
+ }, {
+ "@id": "#t0025",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Problematic IRI expansion tests",
+ "purpose": "Expanding different kinds of terms and Compact IRIs",
+ "input": "expand/0025-in.jsonld",
+ "expect": "expand/0025-out.jsonld"
+ }, {
+ "@id": "#t0026",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Term definition with @id: @type",
+ "purpose": "Expanding term mapping to @type uses @type syntax",
+ "input": "expand/0026-in.jsonld",
+ "expect": "expand/0026-out.jsonld",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#t0027",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Duplicate values in @list and @set",
+ "purpose": "Duplicate values in @list and @set are not merged",
+ "input": "expand/0027-in.jsonld",
+ "expect": "expand/0027-out.jsonld"
+ }, {
+ "@id": "#t0028",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Use @vocab in properties and @type but not in @id",
+ "purpose": "@vocab is used to compact properties and @type, but is not used for @id",
+ "input": "expand/0028-in.jsonld",
+ "expect": "expand/0028-out.jsonld"
+ }, {
+ "@id": "#t0029",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Relative IRIs",
+ "purpose": "@base is used to compact @id; test with different relative IRIs",
+ "input": "expand/0029-in.jsonld",
+ "expect": "expand/0029-out.jsonld"
+ }, {
+ "@id": "#t0030",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Language maps",
+ "purpose": "Language Maps expand values to include @language",
+ "input": "expand/0030-in.jsonld",
+ "expect": "expand/0030-out.jsonld"
+ }, {
+ "@id": "#t0031",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type-coercion of native types",
+ "purpose": "Expanding native types with type coercion adds the coerced type to an expanded value representation and retains the native value representation",
+ "input": "expand/0031-in.jsonld",
+ "expect": "expand/0031-out.jsonld"
+ }, {
+ "@id": "#t0032",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Null term and @vocab",
+ "purpose": "Mapping a term to null decouples it from @vocab",
+ "input": "expand/0032-in.jsonld",
+ "expect": "expand/0032-out.jsonld"
+ }, {
+ "@id": "#t0033",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Using @vocab with with type-coercion",
+ "purpose": "Verifies that terms can be defined using @vocab",
+ "input": "expand/0033-in.jsonld",
+ "expect": "expand/0033-out.jsonld"
+ }, {
+ "@id": "#t0034",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Multiple properties expanding to the same IRI",
+ "purpose": "Verifies multiple values from separate terms are deterministically made multiple values of the IRI associated with the terms",
+ "input": "expand/0034-in.jsonld",
+ "expect": "expand/0034-out.jsonld"
+ }, {
+ "@id": "#t0035",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Language maps with @vocab, default language, and colliding property",
+ "purpose": "Pathological tests of language maps",
+ "input": "expand/0035-in.jsonld",
+ "expect": "expand/0035-out.jsonld"
+ }, {
+ "@id": "#t0036",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expanding @index",
+ "purpose": "Expanding index maps for terms defined with @container: @index",
+ "input": "expand/0036-in.jsonld",
+ "expect": "expand/0036-out.jsonld"
+ }, {
+ "@id": "#t0037",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expanding @reverse",
+ "purpose": "Expanding @reverse keeps @reverse",
+ "input": "expand/0037-in.jsonld",
+ "expect": "expand/0037-out.jsonld"
+ }, {
+ "@id": "#t0038",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expanding blank node labels",
+ "purpose": "Blank nodes are not relabeled during expansion",
+ "option": {"specVersion": "json-ld-1.0"},
+ "input": "expand/0038-in.jsonld",
+ "expect": "expand/0038-out.jsonld"
+ }, {
+ "@id": "#t0039",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Using terms in a reverse-maps",
+ "purpose": "Terms within @reverse are expanded",
+ "input": "expand/0039-in.jsonld",
+ "expect": "expand/0039-out.jsonld"
+ }, {
+ "@id": "#t0040",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "language and index expansion on non-objects",
+ "purpose": "Only invoke language and index map expansion if the value is a JSON object",
+ "input": "expand/0040-in.jsonld",
+ "expect": "expand/0040-out.jsonld"
+ }, {
+ "@id": "#t0041",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@language: null resets the default language",
+ "input": "expand/0041-in.jsonld",
+ "expect": "expand/0041-out.jsonld"
+ }, {
+ "@id": "#t0042",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Reverse properties",
+ "purpose": "Expanding terms defined as reverse properties uses @reverse in expanded document",
+ "input": "expand/0042-in.jsonld",
+ "expect": "expand/0042-out.jsonld"
+ }, {
+ "@id": "#t0043",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Using reverse properties inside a @reverse-container",
+ "purpose": "Expanding a reverse property within a @reverse undoes both reversals",
+ "input": "expand/0043-in.jsonld",
+ "expect": "expand/0043-out.jsonld"
+ }, {
+ "@id": "#t0044",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Index maps with language mappings",
+ "purpose": "Ensure index maps use language mapping",
+ "input": "expand/0044-in.jsonld",
+ "expect": "expand/0044-out.jsonld"
+ }, {
+ "@id": "#t0045",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Top-level value objects",
+ "purpose": "Expanding top-level value objects causes them to be removed",
+ "input": "expand/0045-in.jsonld",
+ "expect": "expand/0045-out.jsonld"
+ }, {
+ "@id": "#t0046",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Free-floating nodes",
+ "purpose": "Expanding free-floating nodes causes them to be removed",
+ "input": "expand/0046-in.jsonld",
+ "expect": "expand/0046-out.jsonld"
+ }, {
+ "@id": "#t0047",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Free-floating values in sets and free-floating lists",
+ "purpose": "Free-floating values in sets are removed, free-floating lists are removed completely",
+ "input": "expand/0047-in.jsonld",
+ "expect": "expand/0047-out.jsonld"
+ }, {
+ "@id": "#t0048",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Terms are ignored in @id",
+ "purpose": "Values of @id are not expanded as terms",
+ "input": "expand/0048-in.jsonld",
+ "expect": "expand/0048-out.jsonld"
+ }, {
+ "@id": "#t0049",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "String values of reverse properties",
+ "purpose": "String values of a reverse property with @type: @id are treated as IRIs",
+ "input": "expand/0049-in.jsonld",
+ "expect": "expand/0049-out.jsonld"
+ }, {
+ "@id": "#t0050",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Term definitions with prefix separate from prefix definitions",
+ "purpose": "Term definitions using compact IRIs don't inherit the definitions of the prefix",
+ "input": "expand/0050-in.jsonld",
+ "expect": "expand/0050-out.jsonld"
+ }, {
+ "@id": "#t0051",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expansion of keyword aliases in term definitions",
+ "purpose": "Expanding terms which are keyword aliases",
+ "input": "expand/0051-in.jsonld",
+ "expect": "expand/0051-out.jsonld"
+ }, {
+ "@id": "#t0052",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@vocab-relative IRIs in term definitions",
+ "purpose": "If @vocab is defined, term definitions are expanded relative to @vocab",
+ "input": "expand/0052-in.jsonld",
+ "expect": "expand/0052-out.jsonld"
+ }, {
+ "@id": "#t0053",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand absolute IRI with @type: @vocab",
+ "purpose": "Expanding values of properties of @type: @vocab does not further expand absolute IRIs",
+ "input": "expand/0053-in.jsonld",
+ "expect": "expand/0053-out.jsonld"
+ }, {
+ "@id": "#t0054",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand term with @type: @vocab",
+ "purpose": "Expanding values of properties of @type: @vocab does not expand term values",
+ "input": "expand/0054-in.jsonld",
+ "expect": "expand/0054-out.jsonld"
+ }, {
+ "@id": "#t0055",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand @vocab-relative term with @type: @vocab",
+ "purpose": "Expanding values of properties of @type: @vocab expands relative IRIs using @vocab",
+ "input": "expand/0055-in.jsonld",
+ "expect": "expand/0055-out.jsonld"
+ }, {
+ "@id": "#t0056",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Use terms with @type: @vocab but not with @type: @id",
+ "purpose": "Checks that expansion uses appropriate base depending on term definition having @type @id or @vocab",
+ "input": "expand/0056-in.jsonld",
+ "expect": "expand/0056-out.jsonld"
+ }, {
+ "@id": "#t0057",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand relative IRI with @type: @vocab",
+ "purpose": "Relative values of terms with @type: @vocab expand relative to @vocab",
+ "input": "expand/0057-in.jsonld",
+ "expect": "expand/0057-out.jsonld"
+ }, {
+ "@id": "#t0058",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand compact IRI with @type: @vocab",
+ "purpose": "Compact IRIs are expanded normally even if term has @type: @vocab",
+ "input": "expand/0058-in.jsonld",
+ "expect": "expand/0058-out.jsonld"
+ }, {
+ "@id": "#t0059",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Reset @vocab by setting it to null",
+ "purpose": "Setting @vocab to null removes a previous definition",
+ "input": "expand/0059-in.jsonld",
+ "expect": "expand/0059-out.jsonld"
+ }, {
+ "@id": "#t0060",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Overwrite document base with @base and reset it again",
+ "purpose": "Setting @base to an IRI and then resetting it to nil",
+ "input": "expand/0060-in.jsonld",
+ "expect": "expand/0060-out.jsonld"
+ }, {
+ "@id": "#t0061",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Coercing native types to arbitrary datatypes",
+ "purpose": "Expanding native types when coercing to arbitrary datatypes",
+ "input": "expand/0061-in.jsonld",
+ "expect": "expand/0061-out.jsonld"
+ }, {
+ "@id": "#t0062",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Various relative IRIs with with @base",
+ "purpose": "Pathological relative IRIs",
+ "input": "expand/0062-in.jsonld",
+ "expect": "expand/0062-out.jsonld"
+ }, {
+ "@id": "#t0063",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Reverse property and index container",
+ "purpose": "Expaning reverse properties with an index-container",
+ "input": "expand/0063-in.jsonld",
+ "expect": "expand/0063-out.jsonld"
+ }, {
+ "@id": "#t0064",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "bnode values of reverse properties",
+ "purpose": "Expand reverse property whose values are unlabeled blank nodes",
+ "input": "expand/0064-in.jsonld",
+ "expect": "expand/0064-out.jsonld"
+ }, {
+ "@id": "#t0065",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Drop unmapped keys in reverse map",
+ "purpose": "Keys that are not mapped to an IRI in a reverse-map are dropped",
+ "input": "expand/0065-in.jsonld",
+ "expect": "expand/0065-out.jsonld"
+ }, {
+ "@id": "#t0066",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Reverse-map keys with @vocab",
+ "purpose": "Expand uses @vocab to expand keys in reverse-maps",
+ "input": "expand/0066-in.jsonld",
+ "expect": "expand/0066-out.jsonld"
+ }, {
+ "@id": "#t0067",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "prefix://suffix not a compact IRI",
+ "purpose": "prefix:suffix values are not interpreted as compact IRIs if suffix begins with two slashes",
+ "input": "expand/0067-in.jsonld",
+ "expect": "expand/0067-out.jsonld"
+ }, {
+ "@id": "#t0068",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "_:suffix values are not a compact IRI",
+ "purpose": "prefix:suffix values are not interpreted as compact IRIs if prefix is an underscore",
+ "input": "expand/0068-in.jsonld",
+ "expect": "expand/0068-out.jsonld"
+ }, {
+ "@id": "#t0069",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Compact IRI as term with type mapping",
+ "purpose": "Redefine compact IRI to define type mapping using the compact IRI itself as value of @id",
+ "input": "expand/0069-in.jsonld",
+ "expect": "expand/0069-out.jsonld"
+ }, {
+ "@id": "#t0070",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Compact IRI as term defined using equivalent compact IRI",
+ "purpose": "Redefine compact IRI to define type mapping using the compact IRI itself as string value",
+ "input": "expand/0070-in.jsonld",
+ "expect": "expand/0070-out.jsonld"
+ }, {
+ "@id": "#t0071",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Redefine terms looking like compact IRIs",
+ "purpose": "Term definitions may look like compact IRIs",
+ "input": "expand/0071-in.jsonld",
+ "expect": "expand/0071-out.jsonld",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#t0072",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Redefine term using @vocab, not itself",
+ "purpose": "Redefining a term as itself when @vocab is defined uses @vocab, not previous term definition",
+ "input": "expand/0072-in.jsonld",
+ "expect": "expand/0072-out.jsonld"
+ }, {
+ "@id": "#t0073",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@context not first property",
+ "purpose": "Objects are unordered, so serialized node definition containing @context may have @context at the end of the node definition",
+ "input": "expand/0073-in.jsonld",
+ "expect": "expand/0073-out.jsonld"
+ }, {
+ "@id": "#t0074",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@id not first property",
+ "purpose": "Objects are unordered, so serialized node definition containing @id may have @id at the end of the node definition",
+ "input": "expand/0074-in.jsonld",
+ "expect": "expand/0074-out.jsonld"
+ }, {
+ "@id": "#t0075",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@vocab as blank node identifier",
+ "purpose": "Use @vocab to map all properties to blank node identifiers",
+ "option": {"processingMode": "json-ld-1.0"},
+ "input": "expand/0075-in.jsonld",
+ "expect": "expand/0075-out.jsonld"
+ }, {
+ "@id": "#t0076",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "base option overrides document location",
+ "purpose": "Use of the base option overrides the document location",
+ "option": {
+ "base": "http://example/base/"
+ },
+ "input": "expand/0076-in.jsonld",
+ "expect": "expand/0076-out.jsonld"
+ }, {
+ "@id": "#t0077",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expandContext option",
+ "purpose": "Use of the expandContext option to expand the input document",
+ "option": {
+ "expandContext": "expand/0077-context.jsonld"
+ },
+ "input": "expand/0077-in.jsonld",
+ "expect": "expand/0077-out.jsonld"
+ }, {
+ "@id": "#t0078",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "multiple reverse properties",
+ "purpose": "Use of multiple reverse properties",
+ "input": "expand/0078-in.jsonld",
+ "expect": "expand/0078-out.jsonld"
+ }, {
+ "@id": "#t0079",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand @graph container",
+ "purpose": "Use of @graph containers",
+ "input": "expand/0079-in.jsonld",
+ "expect": "expand/0079-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0080",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @set] container",
+ "purpose": "Use of [@graph, @set] containers",
+ "input": "expand/0080-in.jsonld",
+ "expect": "expand/0080-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0081",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Creates an @graph container if value is a graph",
+ "purpose": "Don't double-expand an already expanded graph",
+ "input": "expand/0081-in.jsonld",
+ "expect": "expand/0081-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0082",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @index] container",
+ "purpose": "Use of @graph containers with @index",
+ "input": "expand/0082-in.jsonld",
+ "expect": "expand/0082-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0083",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @index, @set] container",
+ "purpose": "Use of @graph containers with @index and @set",
+ "input": "expand/0083-in.jsonld",
+ "expect": "expand/0083-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0084",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Do not expand [@graph, @index] container if value is a graph",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "expand/0084-in.jsonld",
+ "expect": "expand/0084-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0085",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @id] container",
+ "purpose": "Use of @graph containers with @id",
+ "input": "expand/0085-in.jsonld",
+ "expect": "expand/0085-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0086",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @id, @set] container",
+ "purpose": "Use of @graph containers with @id and @set",
+ "input": "expand/0086-in.jsonld",
+ "expect": "expand/0086-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0087",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Do not expand [@graph, @id] container if value is a graph",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "expand/0087-in.jsonld",
+ "expect": "expand/0087-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0088",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Do not expand native values to IRIs",
+ "purpose": "Value Expansion does not expand native values, such as booleans, to a node object",
+ "input": "expand/0088-in.jsonld",
+ "expect": "expand/0088-out.jsonld"
+ }, {
+ "@id": "#t0089",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "empty @base applied to the base option",
+ "purpose": "Use of an empty @base is applied to the base option",
+ "option": {
+ "base": "http://example/base/"
+ },
+ "input": "expand/0089-in.jsonld",
+ "expect": "expand/0089-out.jsonld"
+ }, {
+ "@id": "#t0090",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "relative @base overrides base option and document location",
+ "purpose": "Use of a relative @base overrides base option and document location",
+ "option": {
+ "base": "http://example/base/"
+ },
+ "input": "expand/0090-in.jsonld",
+ "expect": "expand/0090-out.jsonld"
+ }, {
+ "@id": "#t0091",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "relative and absolute @base overrides base option and document location",
+ "purpose": "Use of a relative and absolute @base overrides base option and document location",
+ "option": {
+ "base": "http://example/base/"
+ },
+ "input": "expand/0091-in.jsonld",
+ "expect": "expand/0091-out.jsonld"
+ }, {
+ "@id": "#t0092",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Various relative IRIs as properties with with @vocab: ''",
+ "purpose": "Pathological relative property IRIs",
+ "input": "expand/0092-in.jsonld",
+ "expect": "expand/0092-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0093",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand @graph container (multiple objects)",
+ "purpose": "Use of @graph containers",
+ "input": "expand/0093-in.jsonld",
+ "expect": "expand/0093-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0094",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @set] container (multiple objects)",
+ "purpose": "Use of [@graph, @set] containers",
+ "input": "expand/0094-in.jsonld",
+ "expect": "expand/0094-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0095",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Creates an @graph container if value is a graph (multiple objects)",
+ "purpose": "Double-expand an already expanded graph",
+ "input": "expand/0095-in.jsonld",
+ "expect": "expand/0095-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0096",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @index] container (multiple indexed objects)",
+ "purpose": "Use of @graph containers with @index",
+ "input": "expand/0096-in.jsonld",
+ "expect": "expand/0096-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0097",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @index, @set] container (multiple objects)",
+ "purpose": "Use of @graph containers with @index and @set",
+ "input": "expand/0097-in.jsonld",
+ "expect": "expand/0097-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0098",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Do not expand [@graph, @index] container if value is a graph (multiple objects)",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "expand/0098-in.jsonld",
+ "expect": "expand/0098-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0099",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @id] container (multiple objects)",
+ "purpose": "Use of @graph containers with @id",
+ "input": "expand/0099-in.jsonld",
+ "expect": "expand/0099-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0100",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @id, @set] container (multiple objects)",
+ "purpose": "Use of @graph containers with @id and @set",
+ "input": "expand/0100-in.jsonld",
+ "expect": "expand/0100-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0101",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Do not expand [@graph, @id] container if value is a graph (multiple objects)",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "expand/0101-in.jsonld",
+ "expect": "expand/0101-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0102",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand @graph container if value is a graph (multiple objects)",
+ "purpose": "Creates a new graph object if indexed value is already a graph object",
+ "input": "expand/0102-in.jsonld",
+ "expect": "expand/0102-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0103",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand @graph container if value is a graph (multiple graphs)",
+ "purpose": "Creates a new graph object if indexed value is already a graph object",
+ "input": "expand/0103-in.jsonld",
+ "expect": "expand/0103-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0104",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Creates an @graph container if value is a graph (mixed graph and object)",
+ "purpose": "Double-expand an already expanded graph",
+ "input": "expand/0104-in.jsonld",
+ "expect": "expand/0104-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0105",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Do not expand [@graph, @index] container if value is a graph (mixed graph and object)",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "expand/0105-in.jsonld",
+ "expect": "expand/0105-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0106",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Do not expand [@graph, @id] container if value is a graph (mixed graph and object)",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "expand/0106-in.jsonld",
+ "expect": "expand/0106-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0107",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @index] container (indexes with multiple objects)",
+ "purpose": "Use of @graph containers with @index",
+ "input": "expand/0107-in.jsonld",
+ "expect": "expand/0107-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0108",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "expand [@graph, @id] container (multiple ids and objects)",
+ "purpose": "Use of @graph containers with @id",
+ "input": "expand/0108-in.jsonld",
+ "expect": "expand/0108-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0109",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "IRI expansion of fragments including ':'",
+ "purpose": "Do not treat as absolute IRIs values that look like compact IRIs if they're not absolute",
+ "input": "expand/0109-in.jsonld",
+ "expect": "expand/0109-out.jsonld"
+ }, {
+ "@id": "#t0110",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Various relative IRIs as properties with with relative @vocab",
+ "purpose": "Pathological relative property IRIs",
+ "input": "expand/0110-in.jsonld",
+ "expect": "expand/0110-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0111",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Various relative IRIs as properties with with relative @vocab itself relative to an existing vocabulary base",
+ "purpose": "Pathological relative property IRIs",
+ "input": "expand/0111-in.jsonld",
+ "expect": "expand/0111-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0112",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Various relative IRIs as properties with with relative @vocab relative to another relative vocabulary base",
+ "purpose": "Pathological relative property IRIs",
+ "input": "expand/0112-in.jsonld",
+ "expect": "expand/0112-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0113",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "context with JavaScript Object property names",
+ "purpose": "Expand with context including JavaScript Object property names",
+ "input": "expand/0113-in.jsonld",
+ "expect": "expand/0113-out.jsonld"
+ }, {
+ "@id": "#t0114",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expansion allows multiple properties expanding to @type",
+ "purpose": "An exception for the colliding keywords error is made for @type",
+ "input": "expand/0114-in.jsonld",
+ "expect": "expand/0114-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0115",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Verifies that relative IRIs as properties with @vocab: '' in 1.0 generate an error",
+ "purpose": "Relative property IRIs with relative @vocab in 1.0",
+ "input": "expand/0115-in.jsonld",
+ "expectErrorCode": "invalid vocab mapping",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#t0116",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Verifies that relative IRIs as properties with relative @vocab in 1.0 generate an error",
+ "purpose": "Relative property IRIs with relative @vocab in 1.0",
+ "input": "expand/0116-in.jsonld",
+ "expectErrorCode": "invalid vocab mapping",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#t0117",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "A term starting with a colon can expand to a different IRI",
+ "purpose": "Terms may begin with a colon and not be treated as IRIs.",
+ "input": "expand/0117-in.jsonld",
+ "expect": "expand/0117-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0118",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expanding a value staring with a colon does not treat that value as an IRI",
+ "purpose": "Terms may begin with a colon and not be treated as IRIs.",
+ "input": "expand/0118-in.jsonld",
+ "expect": "expand/0118-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0119",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Ignore some terms with @, allow others.",
+ "purpose": "Processors SHOULD generate a warning and MUST ignore terms having the form of a keyword.",
+ "input": "expand/0119-in.jsonld",
+ "expect": "expand/0119-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0120",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Ignore some values of @id with @, allow others.",
+ "purpose": "Processors SHOULD generate a warning and MUST ignore values of @id having the form of a keyword.",
+ "input": "expand/0120-in.jsonld",
+ "expect": "expand/0120-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0121",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Ignore some values of @reverse with @, allow others.",
+ "purpose": "Processors SHOULD generate a warning and MUST ignore values of @reverse having the form of a keyword.",
+ "input": "expand/0121-in.jsonld",
+ "expect": "expand/0121-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0122",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Ignore some IRIs when that start with @ when expanding.",
+ "purpose": "Processors SHOULD generate a warning and MUST ignore IRIs having the form of a keyword. (Note: the resulting document will not be valid JSON-LD, due to the `null` value for `@id`)",
+ "input": "expand/0122-in.jsonld",
+ "expect": "expand/0122-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "normative": false}
+ }, {
+ "@id": "#t0123",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Value objects including invalid literal datatype IRIs are rejected",
+ "purpose": "Processors MUST validate datatype IRIs.",
+ "input": "expand/0123-in.jsonld",
+ "expectErrorCode": "invalid typed value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0124",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "compact IRI as @vocab",
+ "purpose": "Verifies that @vocab defined as a compact IRI expands properly",
+ "input": "expand/0124-in.jsonld",
+ "expect": "expand/0124-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0125",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "term as @vocab",
+ "purpose": "Verifies that @vocab defined as a term expands properly",
+ "input": "expand/0125-in.jsonld",
+ "expect": "expand/0125-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0126",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ExpandTest" ],
+ "name": "A scoped context may include itself recursively (direct)",
+ "purpose": "Verifies that no exception is raised on expansion when processing a scoped context referencing itself directly",
+ "input": "expand/0126-in.jsonld",
+ "expect": "expand/0126-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0127",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ExpandTest" ],
+ "name": "A scoped context may include itself recursively (indirect)",
+ "purpose": "Verifies that no exception is raised on expansion when processing a scoped context referencing itself indirectly",
+ "input": "expand/0127-in.jsonld",
+ "expect": "expand/0127-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0128",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ExpandTest" ],
+ "name": "Two scoped context may include a shared context",
+ "purpose": "Verifies that no exception is raised on expansion when processing two scoped contexts referencing a shared context",
+ "input": "expand/0128-in.jsonld",
+ "expect": "expand/0128-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#t0129",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Base without trailing slash, without path",
+ "purpose": "Verify URI resolution relative to base (without trailing slash, without path) according to RFC 3986",
+ "input": "expand/0129-in.jsonld",
+ "expect": "expand/0129-out.jsonld"
+ }, {
+ "@id": "#t0130",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Base without trailing slash, with path",
+ "purpose": "Verify URI resolution relative to base (without trailing slash, with path) according to RFC 3986",
+ "input": "expand/0130-in.jsonld",
+ "expect": "expand/0130-out.jsonld"
+ }, {
+ "@id": "#tc001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "adding new term",
+ "purpose": "Expansion using a scoped context uses term scope for selecting proper term",
+ "input": "expand/c001-in.jsonld",
+ "expect": "expand/c001-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "overriding a term",
+ "purpose": "Expansion using a scoped context uses term scope for selecting proper term",
+ "input": "expand/c002-in.jsonld",
+ "expect": "expand/c002-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "property and value with different terms mapping to the same expanded property",
+ "purpose": "Expansion using a scoped context uses term scope for selecting proper term",
+ "input": "expand/c003-in.jsonld",
+ "expect": "expand/c003-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "deep @context affects nested nodes",
+ "purpose": "Expansion using a scoped context uses term scope for selecting proper term",
+ "input": "expand/c004-in.jsonld",
+ "expect": "expand/c004-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "scoped context layers on intemediate contexts",
+ "purpose": "Expansion using a scoped context uses term scope for selecting proper term",
+ "input": "expand/c005-in.jsonld",
+ "expect": "expand/c005-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "adding new term",
+ "purpose": "scoped context on @type",
+ "input": "expand/c006-in.jsonld",
+ "expect": "expand/c006-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "overriding a term",
+ "purpose": "scoped context on @type",
+ "input": "expand/c007-in.jsonld",
+ "expect": "expand/c007-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "alias of @type",
+ "purpose": "scoped context on @type",
+ "input": "expand/c008-in.jsonld",
+ "expect": "expand/c008-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "deep @type-scoped @context does NOT affect nested nodes",
+ "purpose": "scoped context on @type",
+ "input": "expand/c009-in.jsonld",
+ "expect": "expand/c009-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "scoped context layers on intemediate contexts",
+ "purpose": "scoped context on @type",
+ "input": "expand/c010-in.jsonld",
+ "expect": "expand/c010-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "orders @type terms when applying scoped contexts",
+ "purpose": "scoped context on @type",
+ "input": "expand/c011-in.jsonld",
+ "expect": "expand/c011-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "deep property-term scoped @context in @type-scoped @context affects nested nodes",
+ "purpose": "scoped context on @type",
+ "input": "expand/c012-in.jsonld",
+ "expect": "expand/c012-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type maps use scoped context from type index and not scoped context from containing",
+ "purpose": "scoped context on @type",
+ "input": "expand/c013-in.jsonld",
+ "expect": "expand/c013-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type-scoped context nullification",
+ "purpose": "type-scoped context nullification",
+ "input": "expand/c014-in.jsonld",
+ "expect": "expand/c014-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type-scoped base",
+ "purpose": "type-scoped base",
+ "input": "expand/c015-in.jsonld",
+ "expect": "expand/c015-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type-scoped vocab",
+ "purpose": "type-scoped vocab",
+ "input": "expand/c016-in.jsonld",
+ "expect": "expand/c016-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "multiple type-scoped contexts are properly reverted",
+ "purpose": "multiple type-scoped contexts are property reverted",
+ "input": "expand/c017-in.jsonld",
+ "expect": "expand/c017-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "multiple type-scoped types resolved against previous context",
+ "purpose": "multiple type-scoped types resolved against previous context",
+ "input": "expand/c018-in.jsonld",
+ "expect": "expand/c018-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type-scoped context with multiple property scoped terms",
+ "purpose": "type-scoped context with multiple property scoped terms",
+ "input": "expand/c019-in.jsonld",
+ "expect": "expand/c019-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type-scoped value",
+ "purpose": "type-scoped value",
+ "input": "expand/c020-in.jsonld",
+ "expect": "expand/c020-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc021",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type-scoped value mix",
+ "purpose": "type-scoped value mix",
+ "input": "expand/c021-in.jsonld",
+ "expect": "expand/c021-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type-scoped property-scoped contexts including @type:@vocab",
+ "purpose": "type-scoped property-scoped contexts including @type:@vocab",
+ "input": "expand/c022-in.jsonld",
+ "expect": "expand/c022-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc023",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "composed type-scoped property-scoped contexts including @type:@vocab",
+ "purpose": "composed type-scoped property-scoped contexts including @type:@vocab",
+ "input": "expand/c023-in.jsonld",
+ "expect": "expand/c023-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc024",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type-scoped + property-scoped + values evaluates against previous context",
+ "purpose": "type-scoped + property-scoped + values evaluates against previous context",
+ "input": "expand/c024-in.jsonld",
+ "expect": "expand/c024-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc025",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type-scoped + graph container",
+ "purpose": "type-scoped + graph container",
+ "input": "expand/c025-in.jsonld",
+ "expect": "expand/c025-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc026",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@propagate: true on type-scoped context",
+ "purpose": "type-scoped context with @propagate: true survive node-objects",
+ "input": "expand/c026-in.jsonld",
+ "expect": "expand/c026-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc027",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@propagate: false on property-scoped context",
+ "purpose": "property-scoped context with @propagate: false do not survive node-objects",
+ "input": "expand/c027-in.jsonld",
+ "expect": "expand/c027-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc028",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@propagate: false on embedded context",
+ "purpose": "embedded context with @propagate: false do not survive node-objects",
+ "input": "expand/c028-in.jsonld",
+ "expect": "expand/c028-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc029",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "@propagate is invalid in 1.0",
+ "purpose": "@propagate is invalid in 1.0",
+ "input": "expand/c029-in.jsonld",
+ "expectErrorCode": "invalid context entry",
+ "option": {"specVersion": "json-ld-1.1", "processingMode": "json-ld-1.0"}
+ }, {
+ "@id": "#tc030",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "@propagate must be boolean valued",
+ "purpose": "@propagate must be boolean valued",
+ "input": "expand/c030-in.jsonld",
+ "expectErrorCode": "invalid @propagate value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc031",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@context resolutions respects relative URLs.",
+ "purpose": "URL resolution follows RFC3986",
+ "input": "expand/c031-in.jsonld",
+ "expect": "expand/c031-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc032",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Unused embedded context with error.",
+ "purpose": "An embedded context which is never used should still be checked.",
+ "input": "expand/c032-in.jsonld",
+ "expectErrorCode": "invalid scoped context",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc033",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Unused context with an embedded context error.",
+ "purpose": "An unused context with an embedded context should still be checked.",
+ "input": "expand/c033-in.jsonld",
+ "expectErrorCode": "invalid scoped context",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc034",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Remote scoped context.",
+ "purpose": "Scoped contexts may be externally loaded.",
+ "input": "expand/c034-in.jsonld",
+ "expect": "expand/c034-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc035",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Term scoping with embedded contexts.",
+ "purpose": "Terms should make use of @vocab relative to the scope in which the term was defined.",
+ "input": "expand/c035-in.jsonld",
+ "expect": "expand/c035-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc036",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expansion with empty property-scoped context.",
+ "purpose": "Adding a minimal/empty property-scoped context should not affect expansion of terms defined in the outer scope.",
+ "input": "expand/c036-in.jsonld",
+ "expect": "expand/c036-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc037",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "property-scoped contexts which are alias of @nest",
+ "purpose": "Nesting terms may have property-scoped contexts defined.",
+ "input": "expand/c037-in.jsonld",
+ "expect": "expand/c037-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc038",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Bibframe example (poor-mans inferrence)",
+ "purpose": "Nesting terms may have property-scoped contexts defined.",
+ "input": "expand/c038-in.jsonld",
+ "expect": "expand/c038-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tdi01",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ExpandTest" ],
+ "name": "Expand string using default and term directions",
+ "purpose": "Strings are coerced to have @direction based on default and term direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/di01-in.jsonld",
+ "expect": "expand/di01-out.jsonld"
+ }, {
+ "@id": "#tdi02",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ExpandTest" ],
+ "name": "Expand string using default and term directions and languages",
+ "purpose": "Strings are coerced to have @direction based on default and term direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/di02-in.jsonld",
+ "expect": "expand/di02-out.jsonld"
+ }, {
+ "@id": "#tdi03",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ExpandTest" ],
+ "name": "expand list values with @direction",
+ "purpose": "List values where the term has @direction are used in expansion.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/di03-in.jsonld",
+ "expect": "expand/di03-out.jsonld"
+ }, {
+ "@id": "#tdi04",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ExpandTest" ],
+ "name": "simple language map with term direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/di04-in.jsonld",
+ "expect": "expand/di04-out.jsonld"
+ }, {
+ "@id": "#tdi05",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ExpandTest" ],
+ "name": "simple language mapwith overriding term direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/di05-in.jsonld",
+ "expect": "expand/di05-out.jsonld"
+ }, {
+ "@id": "#tdi06",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ExpandTest" ],
+ "name": "simple language mapwith overriding null direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/di06-in.jsonld",
+ "expect": "expand/di06-out.jsonld"
+ }, {
+ "@id": "#tdi07",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ExpandTest" ],
+ "name": "simple language map with mismatching term direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/di07-in.jsonld",
+ "expect": "expand/di07-out.jsonld"
+ }, {
+ "@id": "#tdi08",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "@direction must be one of ltr or rtl",
+ "purpose": "Generate an error if @direction has illegal value.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/di08-in.jsonld",
+ "expectErrorCode": "invalid base direction"
+ }, {
+ "@id": "#tdi09",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "@direction is incompatible with @type",
+ "purpose": "Value objects can have either @type but not @language or @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/di09-in.jsonld",
+ "expectErrorCode": "invalid value object"
+ }, {
+ "@id": "#tec01",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid keyword in term definition",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid term definition is found",
+ "input": "expand/ec01-in.jsonld",
+ "expectErrorCode": "invalid term definition",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tec02",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Term definition on @type with empty map",
+ "purpose": "Verifies that an exception is raised if @type is defined as a term with an empty map",
+ "input": "expand/ec02-in.jsonld",
+ "expectErrorCode": "keyword redefinition",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tem01",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid container mapping",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid container mapping is found",
+ "input": "expand/em01-in.jsonld",
+ "expectErrorCode": "invalid container mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten01",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "@nest MUST NOT have a string value",
+ "purpose": "container: @nest",
+ "input": "expand/en01-in.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten02",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "@nest MUST NOT have a boolen value",
+ "purpose": "Transparent Nesting",
+ "input": "expand/en02-in.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten03",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "@nest MUST NOT have a numeric value",
+ "purpose": "Transparent Nesting",
+ "input": "expand/en03-in.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten04",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "@nest MUST NOT have a value object value",
+ "purpose": "Transparent Nesting",
+ "input": "expand/en04-in.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten05",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "does not allow a keyword other than @nest for the value of @nest",
+ "purpose": "Transparent Nesting",
+ "input": "expand/en05-in.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten06",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "does not allow @nest with @reverse",
+ "purpose": "Transparent Nesting",
+ "input": "expand/en06-in.jsonld",
+ "expectErrorCode": "invalid reverse property",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tep02",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "processingMode json-ld-1.0 conflicts with @version: 1.1",
+ "purpose": "If processingMode is explicitly json-ld-1.0, it will conflict with 1.1 features.",
+ "input": "expand/ep02-in.jsonld",
+ "expectErrorCode": "processing mode conflict",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tep03",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "@version must be 1.1",
+ "purpose": "If @version is specified, it must be 1.1",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/ep03-in.jsonld",
+ "expectErrorCode": "invalid @version value"
+ }, {
+ "@id": "#ter01",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Keywords cannot be aliased to other keywords",
+ "purpose": "Verifies that an exception is raised on expansion when processing an invalid context aliasing a keyword to another keyword",
+ "input": "expand/er01-in.jsonld",
+ "expectErrorCode": "keyword redefinition"
+ }, {
+ "@id": "#ter02",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "A context may not include itself recursively (direct)",
+ "purpose": "Verifies that an exception is raised on expansion when processing a context referencing itself",
+ "input": "expand/er02-in.jsonld",
+ "expectErrorCode": "recursive context inclusion",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#ter03",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "A context may not include itself recursively (indirect)",
+ "purpose": "Verifies that an exception is raised on expansion when processing a context referencing itself indirectly",
+ "input": "expand/er03-in.jsonld",
+ "expectErrorCode": "recursive context inclusion",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#ter04",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Error dereferencing a remote context",
+ "purpose": "Verifies that an exception is raised on expansion when a context dereference results in an error",
+ "input": "expand/er04-in.jsonld",
+ "expectErrorCode": "loading remote context failed"
+ }, {
+ "@id": "#ter05",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid remote context",
+ "purpose": "Verifies that an exception is raised on expansion when a remote context is not an object containing @context",
+ "input": "expand/er05-in.jsonld",
+ "expectErrorCode": "invalid remote context",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter06",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid local context",
+ "purpose": "Verifies that an exception is raised on expansion when a context is not a string or object",
+ "input": "expand/er06-in.jsonld",
+ "expectErrorCode": "invalid local context"
+ }, {
+ "@id": "#ter07",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid base IRI",
+ "purpose": "Verifies that an exception is raised on expansion when a context contains an invalid @base",
+ "input": "expand/er07-in.jsonld",
+ "expectErrorCode": "invalid base IRI"
+ }, {
+ "@id": "#ter08",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid vocab mapping",
+ "purpose": "Verifies that an exception is raised on expansion when a context contains an invalid @vocab mapping",
+ "input": "expand/er08-in.jsonld",
+ "expectErrorCode": "invalid vocab mapping"
+ }, {
+ "@id": "#ter09",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid default language",
+ "purpose": "Verifies that an exception is raised on expansion when a context contains an invalid @language",
+ "input": "expand/er09-in.jsonld",
+ "expectErrorCode": "invalid default language"
+ }, {
+ "@id": "#ter10",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Cyclic IRI mapping",
+ "purpose": "Verifies that an exception is raised on expansion when a cyclic IRI mapping is found",
+ "input": "expand/er10-in.jsonld",
+ "expectErrorCode": "cyclic IRI mapping"
+ }, {
+ "@id": "#ter11",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid term definition",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid term definition is found",
+ "input": "expand/er11-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#ter12",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid type mapping (not a string)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid type mapping is found",
+ "input": "expand/er12-in.jsonld",
+ "expectErrorCode": "invalid type mapping"
+ }, {
+ "@id": "#ter13",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid type mapping (not absolute IRI)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid type mapping is found",
+ "input": "expand/er13-in.jsonld",
+ "expectErrorCode": "invalid type mapping"
+ }, {
+ "@id": "#ter14",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid reverse property (contains @id)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid reverse property is found",
+ "input": "expand/er14-in.jsonld",
+ "expectErrorCode": "invalid reverse property"
+ }, {
+ "@id": "#ter15",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid IRI mapping (@reverse not a string)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid IRI mapping is found",
+ "input": "expand/er15-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping"
+ }, {
+ "@id": "#ter17",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid reverse property (invalid @container)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid reverse property is found",
+ "input": "expand/er17-in.jsonld",
+ "expectErrorCode": "invalid reverse property"
+ }, {
+ "@id": "#ter18",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid IRI mapping (@id not a string)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid IRI mapping is found",
+ "input": "expand/er18-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping"
+ }, {
+ "@id": "#ter19",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid keyword alias (@context)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid keyword alias is found",
+ "input": "expand/er19-in.jsonld",
+ "expectErrorCode": "invalid keyword alias"
+ }, {
+ "@id": "#ter20",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid IRI mapping (no vocab mapping)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid IRI mapping is found",
+ "input": "expand/er20-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping"
+ }, {
+ "@id": "#ter21",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid container mapping",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid container mapping is found",
+ "input": "expand/er21-in.jsonld",
+ "expectErrorCode": "invalid container mapping",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter22",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid language mapping",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid language mapping is found",
+ "input": "expand/er22-in.jsonld",
+ "expectErrorCode": "invalid language mapping"
+ }, {
+ "@id": "#ter23",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid IRI mapping (relative IRI in @type)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid type mapping is found",
+ "input": "expand/er23-in.jsonld",
+ "expectErrorCode": "invalid type mapping"
+ }, {
+ "@id": "#ter24",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "List of lists (from array)",
+ "purpose": "Verifies that an exception is raised in Expansion when a list of lists is found",
+ "input": "expand/er24-in.jsonld",
+ "expectErrorCode": "list of lists",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#ter25",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid reverse property map",
+ "purpose": "Verifies that an exception is raised in Expansion when a invalid reverse property map is found",
+ "input": "expand/er25-in.jsonld",
+ "expectErrorCode": "invalid reverse property map"
+ }, {
+ "@id": "#ter26",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Colliding keywords",
+ "purpose": "Verifies that an exception is raised in Expansion when colliding keywords are found",
+ "input": "expand/er26-in.jsonld",
+ "expectErrorCode": "colliding keywords"
+ }, {
+ "@id": "#ter27",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid @id value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid @id value is found",
+ "input": "expand/er27-in.jsonld",
+ "expectErrorCode": "invalid @id value"
+ }, {
+ "@id": "#ter28",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid type value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid type value is found",
+ "input": "expand/er28-in.jsonld",
+ "expectErrorCode": "invalid type value"
+ }, {
+ "@id": "#ter29",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid value object value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid value object value is found",
+ "input": "expand/er29-in.jsonld",
+ "expectErrorCode": "invalid value object value"
+ }, {
+ "@id": "#ter30",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid language-tagged string",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid language-tagged string value is found",
+ "input": "expand/er30-in.jsonld",
+ "expectErrorCode": "invalid language-tagged string"
+ }, {
+ "@id": "#ter31",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid @index value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid @index value value is found",
+ "input": "expand/er31-in.jsonld",
+ "expectErrorCode": "invalid @index value"
+ }, {
+ "@id": "#ter32",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "List of lists (from array)",
+ "purpose": "Verifies that an exception is raised in Expansion when a list of lists is found",
+ "input": "expand/er32-in.jsonld",
+ "expectErrorCode": "list of lists",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#ter33",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid @reverse value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid @reverse value is found",
+ "input": "expand/er33-in.jsonld",
+ "expectErrorCode": "invalid @reverse value"
+ }, {
+ "@id": "#ter34",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid reverse property value (in @reverse)",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid reverse property value is found",
+ "input": "expand/er34-in.jsonld",
+ "expectErrorCode": "invalid reverse property value"
+ }, {
+ "@id": "#ter35",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid language map value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid language map value is found",
+ "input": "expand/er35-in.jsonld",
+ "expectErrorCode": "invalid language map value"
+ }, {
+ "@id": "#ter36",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid reverse property value (through coercion)",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid reverse property value is found",
+ "input": "expand/er36-in.jsonld",
+ "expectErrorCode": "invalid reverse property value"
+ }, {
+ "@id": "#ter37",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid value object (unexpected keyword)",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid value object is found",
+ "input": "expand/er37-in.jsonld",
+ "expectErrorCode": "invalid value object"
+ }, {
+ "@id": "#ter38",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid value object (@type and @language)",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid value object is found",
+ "input": "expand/er38-in.jsonld",
+ "expectErrorCode": "invalid value object"
+ }, {
+ "@id": "#ter39",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid language-tagged value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid language-tagged value is found",
+ "input": "expand/er39-in.jsonld",
+ "expectErrorCode": "invalid language-tagged value"
+ }, {
+ "@id": "#ter40",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid typed value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid typed value is found",
+ "input": "expand/er40-in.jsonld",
+ "expectErrorCode": "invalid typed value"
+ }, {
+ "@id": "#ter41",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid set or list object",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid set or list object is found",
+ "input": "expand/er41-in.jsonld",
+ "expectErrorCode": "invalid set or list object"
+ }, {
+ "@id": "#ter42",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Keywords may not be redefined in 1.0",
+ "purpose": "Verifies that an exception is raised on expansion when processing an invalid context attempting to define @container on a keyword",
+ "option": {"specVersion": "json-ld-1.1", "processingMode": "json-ld-1.0"},
+ "input": "expand/er42-in.jsonld",
+ "expectErrorCode": "keyword redefinition"
+ }, {
+ "@id": "#ter43",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Term definition with @id: @type",
+ "purpose": "Expanding term mapping to @type uses @type syntax now illegal",
+ "input": "expand/er43-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter44",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Redefine terms looking like compact IRIs",
+ "purpose": "Term definitions may look like compact IRIs, but must be consistent.",
+ "input": "expand/er44-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter48",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Invalid term as relative IRI",
+ "purpose": "Verifies that a relative IRI cannot be used as a term.",
+ "input": "expand/er48-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter49",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "A relative IRI cannot be used as a prefix",
+ "purpose": "Verifies that a relative IRI cannot be used as a term.",
+ "input": "expand/er49-in.jsonld",
+ "expectErrorCode": "invalid term definition",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter50",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid reverse id",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid IRI is used for @reverse.",
+ "input": "expand/er50-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping"
+ }, {
+ "@id": "#ter51",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid value object value using a value alias",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid value object value is found using a value alias",
+ "input": "expand/er51-in.jsonld",
+ "expectErrorCode": "invalid value object value"
+ }, {
+ "@id": "#ter52",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Definition for the empty term",
+ "purpose": "Verifies that an exception is raised on expansion when a context contains a definition for the empty term",
+ "input": "expand/er52-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#ter53",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid prefix value",
+ "purpose": "Verifies that an exception is raised on expansion when a context contains an invalid @prefix value",
+ "input": "expand/er53-in.jsonld",
+ "expectErrorCode": "invalid @prefix value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter54",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid value object, multiple values for @type.",
+ "purpose": "The value of @type in a value object MUST be a string or null.",
+ "input": "expand/er54-in.jsonld",
+ "expectErrorCode": "invalid typed value"
+ }, {
+ "@id": "#ter55",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ExpandTest" ],
+ "name": "Invalid term definition, multiple values for @type.",
+ "purpose": "The value of @type in an expanded term definition object MUST be a string or null.",
+ "input": "expand/er55-in.jsonld",
+ "expectErrorCode": "invalid type mapping"
+ }, {
+ "@id": "#tes01",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Using an array value for @context is illegal in JSON-LD 1.0",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid container mapping is found",
+ "input": "expand/es01-in.jsonld",
+ "expectErrorCode": "invalid container mapping",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tes02",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Mapping @container: [@list, @set] is invalid",
+ "purpose": "Testing legal combinations of @set with other container values",
+ "input": "expand/es02-in.jsonld",
+ "expectErrorCode": "invalid container mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Basic Included array",
+ "purpose": "Tests included blocks.",
+ "input": "expand/in01-in.jsonld",
+ "expect": "expand/in01-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Basic Included object",
+ "purpose": "Tests included blocks.",
+ "input": "expand/in02-in.jsonld",
+ "expect": "expand/in02-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Multiple properties mapping to @included are folded together",
+ "purpose": "Tests included blocks.",
+ "input": "expand/in03-in.jsonld",
+ "expect": "expand/in03-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Included containing @included",
+ "purpose": "Tests included blocks.",
+ "input": "expand/in04-in.jsonld",
+ "expect": "expand/in04-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Property value with @included",
+ "purpose": "Tests included blocks.",
+ "input": "expand/in05-in.jsonld",
+ "expect": "expand/in05-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "json.api example",
+ "purpose": "Tests included blocks.",
+ "input": "expand/in06-in.jsonld",
+ "expect": "expand/in06-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin07",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Error if @included value is a string",
+ "purpose": "Tests included blocks.",
+ "input": "expand/in07-in.jsonld",
+ "expectErrorCode": "invalid @included value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin08",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Error if @included value is a value object",
+ "purpose": "Tests included blocks.",
+ "input": "expand/in08-in.jsonld",
+ "expectErrorCode": "invalid @included value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin09",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Error if @included value is a list object",
+ "purpose": "Tests included blocks.",
+ "input": "expand/in09-in.jsonld",
+ "expectErrorCode": "invalid @included value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (boolean true)",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (boolean true).",
+ "input": "expand/js01-in.jsonld",
+ "expect": "expand/js01-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (boolean false)",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (boolean false).",
+ "input": "expand/js02-in.jsonld",
+ "expect": "expand/js02-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (double)",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (double).",
+ "input": "expand/js03-in.jsonld",
+ "expect": "expand/js03-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (double-zero)",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (double-zero).",
+ "input": "expand/js04-in.jsonld",
+ "expect": "expand/js04-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (integer)",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (integer).",
+ "input": "expand/js05-in.jsonld",
+ "expect": "expand/js05-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (object)",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (object).",
+ "input": "expand/js06-in.jsonld",
+ "expect": "expand/js06-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs07",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (array)",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (array).",
+ "input": "expand/js07-in.jsonld",
+ "expect": "expand/js07-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs08",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal with array canonicalization",
+ "purpose": "Tests expanding JSON literal with array canonicalization.",
+ "input": "expand/js08-in.jsonld",
+ "expect": "expand/js08-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs09",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Transform JSON literal with string canonicalization",
+ "purpose": "Tests expanding JSON literal with string canonicalization.",
+ "input": "expand/js09-in.jsonld",
+ "expect": "expand/js09-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs10",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal with structural canonicalization",
+ "purpose": "Tests expanding JSON literal with structural canonicalization.",
+ "input": "expand/js10-in.jsonld",
+ "expect": "expand/js10-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs11",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal with unicode canonicalization",
+ "purpose": "Tests expanding JSON literal with unicode canonicalization.",
+ "input": "expand/js11-in.jsonld",
+ "expect": "expand/js11-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs12",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal with value canonicalization",
+ "purpose": "Tests expanding JSON literal with value canonicalization.",
+ "input": "expand/js12-in.jsonld",
+ "expect": "expand/js12-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs13",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal with wierd canonicalization",
+ "purpose": "Tests expanding JSON literal with wierd canonicalization.",
+ "input": "expand/js13-in.jsonld",
+ "expect": "expand/js13-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs14",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal without expanding contents",
+ "purpose": "Tests expanding JSON literal does not expand terms inside json.",
+ "input": "expand/js14-in.jsonld",
+ "expect": "expand/js14-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs15",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal aleady in expanded form",
+ "purpose": "Tests expanding JSON literal in expanded form.",
+ "input": "expand/js15-in.jsonld",
+ "expect": "expand/js15-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs16",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal aleady in expanded form with aliased keys",
+ "purpose": "Tests expanding JSON literal in expanded form with aliased keys in value object.",
+ "input": "expand/js16-in.jsonld",
+ "expect": "expand/js16-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs17",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (string)",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (string).",
+ "input": "expand/js17-in.jsonld",
+ "expect": "expand/js17-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs18",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (null)",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (null).",
+ "input": "expand/js18-in.jsonld",
+ "expect": "expand/js18-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs19",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal with aliased @type",
+ "purpose": "Tests expanding JSON literal with aliased @type.",
+ "input": "expand/js19-in.jsonld",
+ "expect": "expand/js19-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs20",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal with aliased @value",
+ "purpose": "Tests expanding JSON literal with aliased @value.",
+ "input": "expand/js20-in.jsonld",
+ "expect": "expand/js20-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs21",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal with @context",
+ "purpose": "Tests expanding JSON literal with a @context.",
+ "input": "expand/js21-in.jsonld",
+ "expect": "expand/js21-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs22",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (null) aleady in expanded form.",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (null).",
+ "input": "expand/js22-in.jsonld",
+ "expect": "expand/js22-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs23",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expand JSON literal (empty array).",
+ "purpose": "Tests expanding property with @type @json to a JSON literal (empty array).",
+ "input": "expand/js23-in.jsonld",
+ "expect": "expand/js23-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tl001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Language map with null value",
+ "purpose": "A language map may have a null value, which is ignored",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/l001-in.jsonld",
+ "expect": "expand/l001-out.jsonld"
+ }, {
+ "@id": "#tli01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@list containing @list",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/li01-in.jsonld",
+ "expect": "expand/li01-out.jsonld"
+ }, {
+ "@id": "#tli02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@list containing empty @list",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/li02-in.jsonld",
+ "expect": "expand/li02-out.jsonld"
+ }, {
+ "@id": "#tli03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@list containing @list (with coercion)",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/li03-in.jsonld",
+ "expect": "expand/li03-out.jsonld"
+ }, {
+ "@id": "#tli04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@list containing empty @list (with coercion)",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/li04-in.jsonld",
+ "expect": "expand/li04-out.jsonld"
+ }, {
+ "@id": "#tli05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "coerced @list containing an array",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/li05-in.jsonld",
+ "expect": "expand/li05-out.jsonld"
+ }, {
+ "@id": "#tli06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "coerced @list containing an empty array",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/li06-in.jsonld",
+ "expect": "expand/li06-out.jsonld"
+ }, {
+ "@id": "#tli07",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "coerced @list containing deep arrays",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/li07-in.jsonld",
+ "expect": "expand/li07-out.jsonld"
+ }, {
+ "@id": "#tli08",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "coerced @list containing deep empty arrays",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/li08-in.jsonld",
+ "expect": "expand/li08-out.jsonld"
+ }, {
+ "@id": "#tli09",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "coerced @list containing multiple lists",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/li09-in.jsonld",
+ "expect": "expand/li09-out.jsonld"
+ }, {
+ "@id": "#tli10",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "coerced @list containing mixed list values",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/li10-in.jsonld",
+ "expect": "expand/li10-out.jsonld"
+ }, {
+ "@id": "#tm001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Adds @id to object not having an @id",
+ "purpose": "Expansion using @container: @id",
+ "input": "expand/m001-in.jsonld",
+ "expect": "expand/m001-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Retains @id in object already having an @id",
+ "purpose": "Expansion using @container: @id",
+ "input": "expand/m002-in.jsonld",
+ "expect": "expand/m002-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Adds @type to object not having an @type",
+ "purpose": "Expansion using @container: @type",
+ "input": "expand/m003-in.jsonld",
+ "expect": "expand/m003-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Prepends @type in object already having an @type",
+ "purpose": "Expansion using @container: @type",
+ "input": "expand/m004-in.jsonld",
+ "expect": "expand/m004-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Adds expanded @id to object",
+ "purpose": "Expansion using @container: @id",
+ "input": "expand/m005-in.jsonld",
+ "expect": "expand/m005-out.jsonld",
+ "option": {"base": "http://example.org/", "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Adds vocabulary expanded @type to object",
+ "purpose": "Expansion using @container: @type",
+ "input": "expand/m006-in.jsonld",
+ "expect": "expand/m006-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Adds document expanded @type to object",
+ "purpose": "Expansion using @container: @type",
+ "input": "expand/m007-in.jsonld",
+ "expect": "expand/m007-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "When type is in a type map",
+ "purpose": "scoped context on @type",
+ "input": "expand/m008-in.jsonld",
+ "expect": "expand/m008-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "language map with @none",
+ "purpose": "index on @language",
+ "input": "expand/m009-in.jsonld",
+ "expect": "expand/m009-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "language map with alias of @none",
+ "purpose": "index on @language",
+ "input": "expand/m010-in.jsonld",
+ "expect": "expand/m010-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "id map with @none",
+ "purpose": "index on @id",
+ "input": "expand/m011-in.jsonld",
+ "expect": "expand/m011-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "type map with alias of @none",
+ "purpose": "index on @type",
+ "input": "expand/m012-in.jsonld",
+ "expect": "expand/m012-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "graph index map with @none",
+ "purpose": "index on @graph and @index",
+ "input": "expand/m013-in.jsonld",
+ "expect": "expand/m013-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "graph index map with alias @none",
+ "purpose": "index on @graph and @index",
+ "input": "expand/m014-in.jsonld",
+ "expect": "expand/m014-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "graph id index map with aliased @none",
+ "purpose": "index on @graph and @id with @none",
+ "input": "expand/m015-in.jsonld",
+ "expect": "expand/m015-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "graph id index map with aliased @none",
+ "purpose": "index on @graph and @id with @none",
+ "input": "expand/m016-in.jsonld",
+ "expect": "expand/m016-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "string value of type map expands to node reference",
+ "purpose": "index on @type",
+ "input": "expand/m017-in.jsonld",
+ "expect": "expand/m017-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "string value of type map expands to node reference with @type: @id",
+ "purpose": "index on @type",
+ "input": "expand/m018-in.jsonld",
+ "expect": "expand/m018-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "string value of type map expands to node reference with @type: @vocab",
+ "purpose": "index on @type",
+ "input": "expand/m019-in.jsonld",
+ "expect": "expand/m019-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm020",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "string value of type map must not be a literal",
+ "purpose": "index on @type",
+ "input": "expand/m020-in.jsonld",
+ "expectErrorCode": "invalid type mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expands input using @nest",
+ "purpose": "Expansion using @nest",
+ "input": "expand/n001-in.jsonld",
+ "expect": "expand/n001-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Expands input using aliased @nest",
+ "purpose": "Expansion using @nest",
+ "input": "expand/n002-in.jsonld",
+ "expect": "expand/n002-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Appends nested values when property at base and nested",
+ "purpose": "Expansion using @nest",
+ "input": "expand/n003-in.jsonld",
+ "expect": "expand/n003-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Appends nested values from all @nest aliases",
+ "purpose": "Expansion using @nest",
+ "input": "expand/n004-in.jsonld",
+ "expect": "expand/n004-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Nested nested containers",
+ "purpose": "Expansion using @nest",
+ "input": "expand/n005-in.jsonld",
+ "expect": "expand/n005-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Arrays of nested values",
+ "purpose": "Expansion using @nest",
+ "input": "expand/n006-in.jsonld",
+ "expect": "expand/n006-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "A nest of arrays",
+ "purpose": "Expansion using @nest",
+ "input": "expand/n007-in.jsonld",
+ "expect": "expand/n007-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Multiple keys may mapping to @type when nesting",
+ "purpose": "Expansion using @nest",
+ "input": "expand/n008-in.jsonld",
+ "expect": "expand/n008-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tp001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@version may be specified after first context",
+ "purpose": "If processing mode is not set through API, it is set by the first context containing @version.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/p001-in.jsonld",
+ "expect": "expand/p001-out.jsonld"
+ }, {
+ "@id": "#tp002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@version setting [1.0, 1.1, 1.0]",
+ "purpose": "If processing mode is not set through API, it is set by the first context containing @version.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/p002-in.jsonld",
+ "expect": "expand/p002-out.jsonld"
+ }, {
+ "@id": "#tp003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@version setting [1.1, 1.0]",
+ "purpose": "If processing mode is not set through API, it is set by the first context containing @version.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/p003-in.jsonld",
+ "expect": "expand/p003-out.jsonld"
+ }, {
+ "@id": "#tp004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@version setting [1.1, 1.0, 1.1]",
+ "purpose": "If processing mode is not set through API, it is set by the first context containing @version.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/p004-in.jsonld",
+ "expect": "expand/p004-out.jsonld"
+ }, {
+ "@id": "#tpi01",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "error if @version is json-ld-1.0 for property-valued index",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1", "processingMode": "json-ld-1.0"},
+ "input": "expand/pi01-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tpi02",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "error if @container does not include @index for property-valued index",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pi02-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tpi03",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "error if @index is a keyword for property-valued index",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pi03-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tpi04",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "error if @index is not a string for property-valued index",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pi04-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tpi05",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "error if attempting to add property to value object for property-valued index",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pi05-in.jsonld",
+ "expectErrorCode": "invalid value object"
+ }, {
+ "@id": "#tpi06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "property-valued index expands to property value, instead of @index (value)",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pi06-in.jsonld",
+ "expect": "expand/pi06-out.jsonld"
+ }, {
+ "@id": "#tpi07",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "property-valued index appends to property value, instead of @index (value)",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pi07-in.jsonld",
+ "expect": "expand/pi07-out.jsonld"
+ }, {
+ "@id": "#tpi08",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "property-valued index expands to property value, instead of @index (node)",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pi08-in.jsonld",
+ "expect": "expand/pi08-out.jsonld"
+ }, {
+ "@id": "#tpi09",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "property-valued index appends to property value, instead of @index (node)",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pi09-in.jsonld",
+ "expect": "expand/pi09-out.jsonld"
+ }, {
+ "@id": "#tpi10",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "property-valued index does not output property for @none",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pi10-in.jsonld",
+ "expect": "expand/pi10-out.jsonld"
+ }, {
+ "@id": "#tpi11",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "property-valued index adds property to graph object",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pi11-in.jsonld",
+ "expect": "expand/pi11-out.jsonld"
+ }, {
+ "@id": "#tpr01",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Protect a term",
+ "purpose": "Check error when overriding a protected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr01-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Set a term to not be protected",
+ "purpose": "A term with @protected: false is not protected.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr02-in.jsonld",
+ "expect": "expand/pr02-out.jsonld"
+ }, {
+ "@id": "#tpr03",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Protect all terms in context",
+ "purpose": "A protected context protects all term definitions.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr03-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr04",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Do not protect term with @protected: false",
+ "purpose": "A protected context does not protect terms with @protected: false.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr04-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr05",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Clear active context with protected terms from an embedded context",
+ "purpose": "The Active context be set to null from an embedded context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr05-in.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Clear active context of protected terms from a term.",
+ "purpose": "The Active context may be set to null from a scoped context of a term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr06-in.jsonld",
+ "expect": "expand/pr06-out.jsonld"
+ }, {
+ "@id": "#tpr08",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Term with protected scoped context.",
+ "purpose": "A scoped context can protect terms.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr08-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr09",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Attempt to redefine term in other protected context.",
+ "purpose": "A protected term cannot redefine another protected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr09-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr10",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Simple protected and unprotected terms.",
+ "purpose": "Simple protected and unprotected terms.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr10-in.jsonld",
+ "expect": "expand/pr10-out.jsonld"
+ }, {
+ "@id": "#tpr11",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Fail to override protected term.",
+ "purpose": "Fail to override protected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr11-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr12",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Scoped context fail to override protected term.",
+ "purpose": "Scoped context fail to override protected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr12-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr13",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Override unprotected term.",
+ "purpose": "Override unprotected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr13-in.jsonld",
+ "expect": "expand/pr13-out.jsonld"
+ }, {
+ "@id": "#tpr14",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Clear protection with null context.",
+ "purpose": "Clear protection with null context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr14-in.jsonld",
+ "expect": "expand/pr14-out.jsonld"
+ }, {
+ "@id": "#tpr15",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Clear protection with array with null context",
+ "purpose": "Clear protection with array with null context",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr15-in.jsonld",
+ "expect": "expand/pr15-out.jsonld"
+ }, {
+ "@id": "#tpr16",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Override protected terms after null.",
+ "purpose": "Override protected terms after null.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr16-in.jsonld",
+ "expect": "expand/pr16-out.jsonld"
+ }, {
+ "@id": "#tpr17",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Fail to override protected terms with type.",
+ "purpose": "Fail to override protected terms with type.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr17-in.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr18",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Fail to override protected terms with type+null+ctx.",
+ "purpose": "Fail to override protected terms with type+null+ctx.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr18-in.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr19",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Mix of protected and unprotected terms.",
+ "purpose": "Mix of protected and unprotected terms.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr19-in.jsonld",
+ "expect": "expand/pr19-out.jsonld"
+ }, {
+ "@id": "#tpr20",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Fail with mix of protected and unprotected terms with type+null+ctx.",
+ "purpose": "Fail with mix of protected and unprotected terms with type+null+ctx.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr20-in.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr21",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Fail with mix of protected and unprotected terms with type+null.",
+ "purpose": "Fail with mix of protected and unprotected terms with type+null.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr21-in.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr22",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Check legal overriding of type-scoped protected term from nested node.",
+ "purpose": "Check legal overriding of type-scoped protected term from nested node.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr22-in.jsonld",
+ "expect": "expand/pr22-out.jsonld"
+ }, {
+ "@id": "#tpr23",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Allows redefinition of protected alias term with same definition.",
+ "purpose": "Allows redefinition of protected alias term with same definition.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr23-in.jsonld",
+ "expect": "expand/pr23-out.jsonld"
+ }, {
+ "@id": "#tpr24",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Allows redefinition of protected prefix term with same definition.",
+ "purpose": "Allows redefinition of protected prefix term with same definition.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr24-in.jsonld",
+ "expect": "expand/pr24-out.jsonld"
+ }, {
+ "@id": "#tpr25",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Allows redefinition of terms with scoped contexts using same definitions.",
+ "purpose": "Allows redefinition of terms with scoped contexts using same definitions.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr25-in.jsonld",
+ "expect": "expand/pr25-out.jsonld"
+ }, {
+ "@id": "#tpr26",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Fails on redefinition of terms with scoped contexts using different definitions.",
+ "purpose": "Fails on redefinition of terms with scoped contexts using different definitions.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr26-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr27",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Allows redefinition of protected alias term with same definition modulo protected flag.",
+ "purpose": "Allows redefinition of protected alias term with same definition modulo protected flag.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr27-in.jsonld",
+ "expect": "expand/pr27-out.jsonld"
+ }, {
+ "@id": "#tpr28",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Fails if trying to redefine a protected null term.",
+ "purpose": "A protected term with a null IRI mapping cannot be redefined.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr28-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr29",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Does not expand a Compact IRI using a non-prefix term.",
+ "purpose": "Expansion of Compact IRIs considers if the term can be used as a prefix.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr29-in.jsonld",
+ "expect": "expand/pr29-out.jsonld"
+ }, {
+ "@id": "#tpr30",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Keywords may be protected.",
+ "purpose": "Keywords may not be redefined other than to protect them.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr30-in.jsonld",
+ "expect": "expand/pr30-out.jsonld"
+ }, {
+ "@id": "#tpr31",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Protected keyword aliases cannot be overridden.",
+ "purpose": "Keywords may not be redefined other than to protect them.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr31-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr32",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Protected @type cannot be overridden.",
+ "purpose": "Keywords may not be redefined other than to protect them.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr32-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr33",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Fails if trying to declare a keyword alias as prefix.",
+ "purpose": "Keyword aliases can not be used as prefixes.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr33-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tpr34",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Ignores a non-keyword term starting with '@'",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr34-in.jsonld",
+ "expect": "expand/pr34-out.jsonld"
+ }, {
+ "@id": "#tpr35",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Ignores a non-keyword term starting with '@' (with @vocab)",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr35-in.jsonld",
+ "expect": "expand/pr35-out.jsonld"
+ }, {
+ "@id": "#tpr36",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Ignores a term mapping to a value in the form of a keyword.",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr36-in.jsonld",
+ "expect": "expand/pr36-out.jsonld"
+ }, {
+ "@id": "#tpr37",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Ignores a term mapping to a value in the form of a keyword (with @vocab).",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr37-in.jsonld",
+ "expect": "expand/pr37-out.jsonld"
+ }, {
+ "@id": "#tpr38",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Ignores a term mapping to a value in the form of a keyword (@reverse).",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr38-in.jsonld",
+ "expect": "expand/pr38-out.jsonld"
+ }, {
+ "@id": "#tpr39",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Ignores a term mapping to a value in the form of a keyword (@reverse with @vocab).",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr39-in.jsonld",
+ "expect": "expand/pr39-out.jsonld"
+ }, {
+ "@id": "#tpr40",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Protected terms and property-scoped contexts",
+ "purpose": "Check overriding of protected term from property-scoped context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/pr40-in.jsonld",
+ "expect": "expand/pr40-out.jsonld"
+ }, {
+ "@id": "#tso01",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "@import is invalid in 1.0.",
+ "purpose": "@import is invalid in 1.0.",
+ "option": {"specVersion": "json-ld-1.1", "processingMode": "json-ld-1.0"},
+ "input": "expand/so01-in.jsonld",
+ "expectErrorCode": "invalid context entry"
+ }, {
+ "@id": "#tso02",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "@import must be a string",
+ "purpose": "@import must be a string.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/so02-in.jsonld",
+ "expectErrorCode": "invalid @import value"
+ }, {
+ "@id": "#tso03",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "@import overflow",
+ "purpose": "Processors must detect source contexts that include @import.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/so03-in.jsonld",
+ "expectErrorCode": "invalid context entry"
+ }, {
+ "@id": "#tso05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@propagate: true on type-scoped context with @import",
+ "purpose": "type-scoped context with @propagate: true survive node-objects (with @import)",
+ "input": "expand/so05-in.jsonld",
+ "expect": "expand/so05-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tso06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@propagate: false on property-scoped context with @import",
+ "purpose": "property-scoped context with @propagate: false do not survive node-objects (with @import)",
+ "input": "expand/so06-in.jsonld",
+ "expect": "expand/so06-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tso07",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Protect all terms in sourced context",
+ "purpose": "A protected context protects all term definitions.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/so07-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tso08",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Override term defined in sourced context",
+ "purpose": "The containing context is merged into the source context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/so08-in.jsonld",
+ "expect": "expand/so08-out.jsonld"
+ }, {
+ "@id": "#tso09",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Override @vocab defined in sourced context",
+ "purpose": "The containing context is merged into the source context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/so09-in.jsonld",
+ "expect": "expand/so09-out.jsonld"
+ }, {
+ "@id": "#tso10",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Protect terms in sourced context",
+ "purpose": "The containing context is merged into the source context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/so10-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tso11",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Override protected terms in sourced context",
+ "purpose": "The containing context is merged into the source context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/so11-in.jsonld",
+ "expect": "expand/so11-out.jsonld"
+ }, {
+ "@id": "#tso12",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "@import may not be used in an imported context.",
+ "purpose": "@import only valid within a term definition.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/so12-in.jsonld",
+ "expectErrorCode": "invalid context entry"
+ }, {
+ "@id": "#tso13",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "@import can only reference a single context",
+ "purpose": "@import can only reference a single context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/so13-in.jsonld",
+ "expectErrorCode": "invalid remote context"
+ }, {
+ "@id": "#ttn01",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "@type: @none is illegal in 1.0.",
+ "purpose": "@type: @none is illegal in json-ld-1.0.",
+ "option": {"specVersion": "json-ld-1.1", "processingMode": "json-ld-1.0"},
+ "input": "expand/tn01-in.jsonld",
+ "expectErrorCode": "invalid type mapping"
+ }, {
+ "@id": "#ttn02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "@type: @none expands strings as value objects",
+ "purpose": "@type: @none leaves inputs other than strings alone",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "expand/tn02-in.jsonld",
+ "expect": "expand/tn02-out.jsonld"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/expand/0001-in.jsonld b/test/jsonld/1.1/expand/0001-in.jsonld
new file mode 100644
index 00000000..0bfd26f0
--- /dev/null
+++ b/test/jsonld/1.1/expand/0001-in.jsonld
@@ -0,0 +1 @@
+{"@id": "http://example.org/test#example"} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0001-out.jsonld b/test/jsonld/1.1/expand/0001-out.jsonld
new file mode 100644
index 00000000..1e3ec721
--- /dev/null
+++ b/test/jsonld/1.1/expand/0001-out.jsonld
@@ -0,0 +1 @@
+[ ]
diff --git a/test/jsonld/1.1/expand/0002-in.jsonld b/test/jsonld/1.1/expand/0002-in.jsonld
new file mode 100644
index 00000000..e4598e55
--- /dev/null
+++ b/test/jsonld/1.1/expand/0002-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/test/jsonld/1.1/expand/0002-out.jsonld b/test/jsonld/1.1/expand/0002-out.jsonld
new file mode 100644
index 00000000..cc8e658e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0002-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@id": "http://example.com/id1",
+ "@type": ["http://example.com/t1"],
+ "http://example.com/term1": [{"@value": "v1"}],
+ "http://example.com/term2": [{"@value": "v2", "@type": "http://example.com/t2"}],
+ "http://example.com/term3": [{"@value": "v3", "@language": "en"}],
+ "http://example.com/term4": [{"@value": 4}],
+ "http://example.com/term5": [{"@value": 50}, {"@value": 51}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0003-in.jsonld b/test/jsonld/1.1/expand/0003-in.jsonld
new file mode 100644
index 00000000..2007f363
--- /dev/null
+++ b/test/jsonld/1.1/expand/0003-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/test/jsonld/1.1/expand/0003-out.jsonld b/test/jsonld/1.1/expand/0003-out.jsonld
new file mode 100644
index 00000000..1e3ec721
--- /dev/null
+++ b/test/jsonld/1.1/expand/0003-out.jsonld
@@ -0,0 +1 @@
+[ ]
diff --git a/test/jsonld/1.1/expand/0004-in.jsonld b/test/jsonld/1.1/expand/0004-in.jsonld
new file mode 100644
index 00000000..8499bfa0
--- /dev/null
+++ b/test/jsonld/1.1/expand/0004-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/test/jsonld/1.1/expand/0004-out.jsonld b/test/jsonld/1.1/expand/0004-out.jsonld
new file mode 100644
index 00000000..2911bd4a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0004-out.jsonld
@@ -0,0 +1,15 @@
+[{
+ "@id": "http://example.org/id",
+ "http://example.com/mylist1": [ { "@list": [ ] } ],
+ "http://example.com/mylist2": [ { "@list": [ {"@value": "one item"} ] } ],
+ "http://example.com/myset2": [ ],
+ "http://example.com/myset3": [ {"@value": "v1"} ],
+ "http://example.org/list1": [ { "@list": [ ] } ],
+ "http://example.org/list2": [ { "@list": [ ] } ],
+ "http://example.org/set1": [ ],
+ "http://example.org/set2": [ ],
+ "http://example.org/set3": [ ],
+ "http://example.org/set4": [ ],
+ "http://example.org/set5": [ {"@value": "one item"} ],
+ "http://example.org/property": [ { "@list": [ {"@value": "one item"} ] } ]
+}]
diff --git a/test/jsonld/1.1/expand/0005-in.jsonld b/test/jsonld/1.1/expand/0005-in.jsonld
new file mode 100644
index 00000000..33622d53
--- /dev/null
+++ b/test/jsonld/1.1/expand/0005-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/test/jsonld/1.1/expand/0005-out.jsonld b/test/jsonld/1.1/expand/0005-out.jsonld
new file mode 100644
index 00000000..a273f90f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0005-out.jsonld
@@ -0,0 +1,18 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/0005-in.jsonld#me",
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/bob#me",
+ "http://xmlns.com/foaf/0.1/name": [{"@value": "Bob"}],
+ "http://xmlns.com/foaf/0.1/homepage": [{
+ "@id": "http://example.com/bob"
+ }]
+ }, {
+ "@id": "http://example.com/alice#me",
+ "http://xmlns.com/foaf/0.1/name": [{"@value": "Alice"}],
+ "http://xmlns.com/foaf/0.1/homepage": [{
+ "@id": "http://example.com/alice"
+ }]
+ }
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0006-in.jsonld b/test/jsonld/1.1/expand/0006-in.jsonld
new file mode 100644
index 00000000..045e2a2a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0006-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/test/jsonld/1.1/expand/0006-out.jsonld b/test/jsonld/1.1/expand/0006-out.jsonld
new file mode 100644
index 00000000..84a109a0
--- /dev/null
+++ b/test/jsonld/1.1/expand/0006-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "@id": "http://example.org/test#example1",
+ "http://example.org/test#property1": [{
+ "@id": "http://example.org/test#example2",
+ "http://example.org/test#property4": [{"@value": "foo"}]
+ }],
+ "http://example.org/test#property2": [{
+ "@id": "http://example.org/test#example3"
+ }],
+ "http://example.org/test#property3": [{
+ "@id": "http://example.org/test#example4"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0007-in.jsonld b/test/jsonld/1.1/expand/0007-in.jsonld
new file mode 100644
index 00000000..b49fac4e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0007-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/test/jsonld/1.1/expand/0007-out.jsonld b/test/jsonld/1.1/expand/0007-out.jsonld
new file mode 100644
index 00000000..76279e1b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0007-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "@id": "http://example.org/test#example1",
+ "http://example.org/vocab#date": [{
+ "@value": "2011-01-25T00:00:00Z",
+ "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
+ }],
+ "http://example.org/vocab#embed": [{
+ "@id": "http://example.org/test#example2",
+ "http://example.org/vocab#parent": [{
+ "@id": "http://example.org/test#example1"
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0008-in.jsonld b/test/jsonld/1.1/expand/0008-in.jsonld
new file mode 100644
index 00000000..a17b9493
--- /dev/null
+++ b/test/jsonld/1.1/expand/0008-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/test/jsonld/1.1/expand/0008-out.jsonld b/test/jsonld/1.1/expand/0008-out.jsonld
new file mode 100644
index 00000000..91cb7a56
--- /dev/null
+++ b/test/jsonld/1.1/expand/0008-out.jsonld
@@ -0,0 +1,7 @@
+[
+ {
+ "@id": "http://example.org/test",
+ "http://example.org/vocab#test": [ { "@value": "test", "@language": "en" } ],
+ "http://example.org/vocab#keep-full-value": [ {"@value": "only value"} ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0009-in.jsonld b/test/jsonld/1.1/expand/0009-in.jsonld
new file mode 100644
index 00000000..6acef5c5
--- /dev/null
+++ b/test/jsonld/1.1/expand/0009-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/test/jsonld/1.1/expand/0009-out.jsonld b/test/jsonld/1.1/expand/0009-out.jsonld
new file mode 100644
index 00000000..376c11cd
--- /dev/null
+++ b/test/jsonld/1.1/expand/0009-out.jsonld
@@ -0,0 +1,29 @@
+[
+ {
+ "@id": "http://example.org/test#chapter",
+ "http://purl.org/dc/elements/1.1/description": [{"@value": "Fun"}],
+ "http://purl.org/dc/elements/1.1/title": [{"@value": "Chapter One"}]
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "http://example.org/vocab#authored": [{
+ "@id": "http://example.org/test#chapter"
+ }],
+ "http://xmlns.com/foaf/0.1/name": [{"@value": "Jane"}]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": [{"@value": "John"}]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [{
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [{
+ "@id": "http://example.org/test#chapter"
+ }],
+ "http://purl.org/dc/elements/1.1/contributor": [{"@value": "Writer"}],
+ "http://purl.org/dc/elements/1.1/title": [{"@value": "My Book"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0010-in.jsonld b/test/jsonld/1.1/expand/0010-in.jsonld
new file mode 100644
index 00000000..f2d0a384
--- /dev/null
+++ b/test/jsonld/1.1/expand/0010-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/test/jsonld/1.1/expand/0010-out.jsonld b/test/jsonld/1.1/expand/0010-out.jsonld
new file mode 100644
index 00000000..5c60b4a4
--- /dev/null
+++ b/test/jsonld/1.1/expand/0010-out.jsonld
@@ -0,0 +1,5 @@
+[{
+ "@id": "http://example.org/test",
+ "http://example.org/vocab#bool": [{"@value": true}],
+ "http://example.org/vocab#int": [{"@value": 123}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0011-in.jsonld b/test/jsonld/1.1/expand/0011-in.jsonld
new file mode 100644
index 00000000..fa90d97d
--- /dev/null
+++ b/test/jsonld/1.1/expand/0011-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "dc11": "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",
+ "dc11:title": "Title",
+ "ex:contains": "http://example.org/test#chapter"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0011-out.jsonld b/test/jsonld/1.1/expand/0011-out.jsonld
new file mode 100644
index 00000000..08a05db9
--- /dev/null
+++ b/test/jsonld/1.1/expand/0011-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [{
+ "@id": "http://example.org/test#chapter"
+ }],
+ "http://purl.org/dc/elements/1.1/title": [{"@value": "Title"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0012-in.jsonld b/test/jsonld/1.1/expand/0012-in.jsonld
new file mode 100644
index 00000000..ebda5732
--- /dev/null
+++ b/test/jsonld/1.1/expand/0012-in.jsonld
@@ -0,0 +1,39 @@
+{
+ "@context": {
+ "dc11": "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",
+ "dc11:description": "Fun",
+ "dc11: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",
+ "dc11:contributor": "Writer",
+ "dc11:title": "My Book",
+ "ex:contains": "http://example.org/test#chapter"
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0012-out.jsonld b/test/jsonld/1.1/expand/0012-out.jsonld
new file mode 100644
index 00000000..376c11cd
--- /dev/null
+++ b/test/jsonld/1.1/expand/0012-out.jsonld
@@ -0,0 +1,29 @@
+[
+ {
+ "@id": "http://example.org/test#chapter",
+ "http://purl.org/dc/elements/1.1/description": [{"@value": "Fun"}],
+ "http://purl.org/dc/elements/1.1/title": [{"@value": "Chapter One"}]
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "http://example.org/vocab#authored": [{
+ "@id": "http://example.org/test#chapter"
+ }],
+ "http://xmlns.com/foaf/0.1/name": [{"@value": "Jane"}]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": [{"@value": "John"}]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [{
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [{
+ "@id": "http://example.org/test#chapter"
+ }],
+ "http://purl.org/dc/elements/1.1/contributor": [{"@value": "Writer"}],
+ "http://purl.org/dc/elements/1.1/title": [{"@value": "My Book"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0013-in.jsonld b/test/jsonld/1.1/expand/0013-in.jsonld
new file mode 100644
index 00000000..7795576f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0013-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/test/jsonld/1.1/expand/0013-out.jsonld b/test/jsonld/1.1/expand/0013-out.jsonld
new file mode 100644
index 00000000..cc8e658e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0013-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@id": "http://example.com/id1",
+ "@type": ["http://example.com/t1"],
+ "http://example.com/term1": [{"@value": "v1"}],
+ "http://example.com/term2": [{"@value": "v2", "@type": "http://example.com/t2"}],
+ "http://example.com/term3": [{"@value": "v3", "@language": "en"}],
+ "http://example.com/term4": [{"@value": 4}],
+ "http://example.com/term5": [{"@value": 50}, {"@value": 51}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0014-in.jsonld b/test/jsonld/1.1/expand/0014-in.jsonld
new file mode 100644
index 00000000..f10b39a5
--- /dev/null
+++ b/test/jsonld/1.1/expand/0014-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": "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/test/jsonld/1.1/expand/0014-out.jsonld b/test/jsonld/1.1/expand/0014-out.jsonld
new file mode 100644
index 00000000..748e6d54
--- /dev/null
+++ b/test/jsonld/1.1/expand/0014-out.jsonld
@@ -0,0 +1,31 @@
+[
+ {
+ "http://example.org/test#property1": [
+ {
+ "@id": "http://example.org/test#example2",
+ "http://example.org/test#property4": [
+ {"@value": "foo"}
+ ]
+ }
+ ],
+ "http://example.org/test#property2": [
+ { "@id": "http://example.org/test#example3" }
+ ],
+ "http://example.org/test#property3": [
+ { "@id": "http://example.org/test#example4" }
+ ],
+ "http://example.org/test#property4": [
+ {
+ "@id": "http://example.org/test#example4",
+ "http://example.org/test#property5": [
+ {
+ "@value": "2012-03-31",
+ "@type": "http://www.w3.org/2001/XMLSchema#date"
+ }
+ ]
+ }
+ ],
+ "http://example.org/test#property6": [],
+ "@id": "http://example.org/test#example1"
+ }
+]
diff --git a/test/jsonld/1.1/expand/0015-in.jsonld b/test/jsonld/1.1/expand/0015-in.jsonld
new file mode 100644
index 00000000..ae60d731
--- /dev/null
+++ b/test/jsonld/1.1/expand/0015-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/test/jsonld/1.1/expand/0015-out.jsonld b/test/jsonld/1.1/expand/0015-out.jsonld
new file mode 100644
index 00000000..c627939f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0015-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.org/id",
+ "http://example.com/mylist1": [ { "@list": [] } ],
+ "http://example.com/myset1": [ ],
+ "http://example.com/myset2": [ ],
+ "http://example.com/myset3": [
+ {"@value": "hello"},
+ {"@value": "this"},
+ {"@value": "will"},
+ {"@value": "be"},
+ {"@value": "collapsed"} ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0016-in.jsonld b/test/jsonld/1.1/expand/0016-in.jsonld
new file mode 100644
index 00000000..c151040a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0016-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/test/jsonld/1.1/expand/0016-out.jsonld b/test/jsonld/1.1/expand/0016-out.jsonld
new file mode 100644
index 00000000..3403e10a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0016-out.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "@id": "http://example.org/id1",
+ "http://example.com/mylist1": [ { "@list": [] } ],
+ "http://example.com/mylist2": [
+ { "@list": [ {"@value": 2}, {"@value": "hi"} ] }
+ ],
+ "http://example.com/myset1": [ ],
+ "http://example.com/myset2": [ ],
+ "http://example.com/myproperty": [
+ {
+ "@id": "http://example.org/id2",
+ "http://example.org/myproperty2": [ {"@value": "ok"} ]
+ }
+ ],
+ "http://example.com/emptyobj": [ { } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0017-in.jsonld b/test/jsonld/1.1/expand/0017-in.jsonld
new file mode 100644
index 00000000..dea8bf80
--- /dev/null
+++ b/test/jsonld/1.1/expand/0017-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/test/jsonld/1.1/expand/0017-out.jsonld b/test/jsonld/1.1/expand/0017-out.jsonld
new file mode 100644
index 00000000..376c11cd
--- /dev/null
+++ b/test/jsonld/1.1/expand/0017-out.jsonld
@@ -0,0 +1,29 @@
+[
+ {
+ "@id": "http://example.org/test#chapter",
+ "http://purl.org/dc/elements/1.1/description": [{"@value": "Fun"}],
+ "http://purl.org/dc/elements/1.1/title": [{"@value": "Chapter One"}]
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "http://example.org/vocab#authored": [{
+ "@id": "http://example.org/test#chapter"
+ }],
+ "http://xmlns.com/foaf/0.1/name": [{"@value": "Jane"}]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": [{"@value": "John"}]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [{
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [{
+ "@id": "http://example.org/test#chapter"
+ }],
+ "http://purl.org/dc/elements/1.1/contributor": [{"@value": "Writer"}],
+ "http://purl.org/dc/elements/1.1/title": [{"@value": "My Book"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0018-in.jsonld b/test/jsonld/1.1/expand/0018-in.jsonld
new file mode 100644
index 00000000..21933fda
--- /dev/null
+++ b/test/jsonld/1.1/expand/0018-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/test/jsonld/1.1/expand/0018-out.jsonld b/test/jsonld/1.1/expand/0018-out.jsonld
new file mode 100644
index 00000000..12d54b26
--- /dev/null
+++ b/test/jsonld/1.1/expand/0018-out.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "@id": "http://example.org/test",
+ "http://example.org/vocab#test-default": [ { "@value": "hello", "@language": "en" }, { "@value": 1 }, { "@value": true } ],
+ "http://example.org/vocab#german": [ { "@value": "hallo", "@language": "de" }, { "@value": 2 }, { "@value": true } ],
+ "http://example.org/vocab#nolang": [ {"@value": "no language"}, { "@value": 3 }, { "@value": false } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0019-in.jsonld b/test/jsonld/1.1/expand/0019-in.jsonld
new file mode 100644
index 00000000..b91f8860
--- /dev/null
+++ b/test/jsonld/1.1/expand/0019-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "myproperty": "http://example.com/myproperty"
+ },
+ "myproperty": { "@value" : null }
+}
diff --git a/test/jsonld/1.1/expand/0019-out.jsonld b/test/jsonld/1.1/expand/0019-out.jsonld
new file mode 100644
index 00000000..1e3ec721
--- /dev/null
+++ b/test/jsonld/1.1/expand/0019-out.jsonld
@@ -0,0 +1 @@
+[ ]
diff --git a/test/jsonld/1.1/expand/0020-in.jsonld b/test/jsonld/1.1/expand/0020-in.jsonld
new file mode 100644
index 00000000..989e1192
--- /dev/null
+++ b/test/jsonld/1.1/expand/0020-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/test/jsonld/1.1/expand/0020-out.jsonld b/test/jsonld/1.1/expand/0020-out.jsonld
new file mode 100644
index 00000000..2e929d09
--- /dev/null
+++ b/test/jsonld/1.1/expand/0020-out.jsonld
@@ -0,0 +1,37 @@
+[
+ {
+ "@id": "http://example.org/test#jane",
+ "http://xmlns.com/foaf/0.1/name": [ {"@value": "Jane"} ],
+ "http://example.org/vocab#authored": [
+ {
+ "@graph": [
+ {
+ "@id": "http://example.org/test#chapter1",
+ "http://purl.org/dc/elements/1.1/description": [ {"@value": "Fun"} ],
+ "http://purl.org/dc/elements/1.1/title": [ {"@value": "Chapter One"} ]
+ },
+ {
+ "@id": "http://example.org/test#chapter2",
+ "http://purl.org/dc/elements/1.1/description": [ {"@value": "More fun"} ],
+ "http://purl.org/dc/elements/1.1/title": [ {"@value": "Chapter Two"} ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": [ {"@value": "John"} ]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [ { "@id": "http://example.org/test#chapter" } ],
+ "http://purl.org/dc/elements/1.1/contributor": [ {"@value": "Writer"} ],
+ "http://purl.org/dc/elements/1.1/title": [ {"@value": "My Book"} ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0021-in.jsonld b/test/jsonld/1.1/expand/0021-in.jsonld
new file mode 100644
index 00000000..e52fd1b8
--- /dev/null
+++ b/test/jsonld/1.1/expand/0021-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/test/jsonld/1.1/expand/0021-out.jsonld b/test/jsonld/1.1/expand/0021-out.jsonld
new file mode 100644
index 00000000..99a5aa54
--- /dev/null
+++ b/test/jsonld/1.1/expand/0021-out.jsonld
@@ -0,0 +1,46 @@
+[
+ {
+ "http://purl.org/dc/elements/1.1/title": [ {"@value": "My first graph"} ],
+ "@graph": [
+ {
+ "@id": "http://example.org/test#jane",
+ "http://xmlns.com/foaf/0.1/name": [ {"@value": "Jane"} ],
+ "http://example.org/vocab#authored": [
+ {
+ "@graph": [
+ {
+ "@id": "http://example.org/test#chapter1",
+ "http://purl.org/dc/elements/1.1/description": [ {"@value": "Fun"} ],
+ "http://purl.org/dc/elements/1.1/title": [ {"@value": "Chapter One"} ]
+ },
+ {
+ "@id": "http://example.org/test#chapter2",
+ "http://purl.org/dc/elements/1.1/description": [ {"@value": "More fun"} ],
+ "http://purl.org/dc/elements/1.1/title": [ {"@value": "Chapter Two"} ]
+ },
+ {
+ "@id": "http://example.org/test#chapter3",
+ "http://purl.org/dc/elements/1.1/title": [ {"@value": "Chapter Three"} ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": [ {"@value": "John"} ]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [ { "@id": "http://example.org/test#chapter" } ],
+ "http://purl.org/dc/elements/1.1/contributor": [ {"@value": "Writer"} ],
+ "http://purl.org/dc/elements/1.1/title": [ {"@value": "My Book"} ]
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0022-in.jsonld b/test/jsonld/1.1/expand/0022-in.jsonld
new file mode 100644
index 00000000..e7f938ae
--- /dev/null
+++ b/test/jsonld/1.1/expand/0022-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/test/jsonld/1.1/expand/0022-out.jsonld b/test/jsonld/1.1/expand/0022-out.jsonld
new file mode 100644
index 00000000..ebdf8d4a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0022-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/term": [{"@value": "v", "@language": "en"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0023-in.jsonld b/test/jsonld/1.1/expand/0023-in.jsonld
new file mode 100644
index 00000000..2a33783d
--- /dev/null
+++ b/test/jsonld/1.1/expand/0023-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/test/jsonld/1.1/expand/0023-out.jsonld b/test/jsonld/1.1/expand/0023-out.jsonld
new file mode 100644
index 00000000..66e0285c
--- /dev/null
+++ b/test/jsonld/1.1/expand/0023-out.jsonld
@@ -0,0 +1,12 @@
+[
+ {
+ "http://example.com/idlist": [{"@list": [{"@id": "http://example.org/id"}]}],
+ "http://example.com/datelist": [{"@list": [{"@value": "2012-04-12","@type": "http://www.w3.org/2001/XMLSchema#date"}]}],
+ "http://example.com/idprop": [{"@list": [{"@id": "http://example.org/id"}]}],
+ "http://example.com/dateprop": [{"@list": [{"@value": "2012-04-12","@type": "http://www.w3.org/2001/XMLSchema#date"}]}],
+ "http://example.com/idset": [{"@id": "http://example.org/id"}],
+ "http://example.com/dateset": [{"@value": "2012-04-12","@type": "http://www.w3.org/2001/XMLSchema#date"}],
+ "http://example.com/idprop2": [{"@id": "http://example.org/id"}],
+ "http://example.com/dateprop2": [{"@value": "2012-04-12","@type": "http://www.w3.org/2001/XMLSchema#date"}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0024-in.jsonld b/test/jsonld/1.1/expand/0024-in.jsonld
new file mode 100644
index 00000000..fcf010c4
--- /dev/null
+++ b/test/jsonld/1.1/expand/0024-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/test/jsonld/1.1/expand/0024-out.jsonld b/test/jsonld/1.1/expand/0024-out.jsonld
new file mode 100644
index 00000000..f2b21d8d
--- /dev/null
+++ b/test/jsonld/1.1/expand/0024-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "http://example.com/speakers#Alice",
+ "http://xmlns.com/foaf/0.1/name": [{"@value": "Alice"}],
+ "http://xmlns.com/foaf/0.1/homepage": [{"@id": "http://xkcd.com/177/"}],
+ "http://www.w3.org/2002/12/cal/ical#summary": [{"@value": "Alice Talk"}],
+ "http://www.w3.org/2002/12/cal/ical#location": [{"@value": "Lyon Convention Centre, Lyon, France"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0025-in.jsonld b/test/jsonld/1.1/expand/0025-in.jsonld
new file mode 100644
index 00000000..2cd0d48e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0025-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "foo": "http://example.com/foo/",
+ "foo:bar": "http://example.com/foo/bar",
+ "bar": {"@id": "foo:bar", "@type": "@id"},
+ "_": "http://example.com/underscore/"
+ },
+ "@type": [ "foo", "foo:bar", "_" ]
+}
diff --git a/test/jsonld/1.1/expand/0025-out.jsonld b/test/jsonld/1.1/expand/0025-out.jsonld
new file mode 100644
index 00000000..eea75af1
--- /dev/null
+++ b/test/jsonld/1.1/expand/0025-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@type": [
+ "http://example.com/foo/",
+ "http://example.com/foo/bar",
+ "http://example.com/underscore/"
+ ]
+}]
diff --git a/test/jsonld/1.1/expand/0026-in.jsonld b/test/jsonld/1.1/expand/0026-in.jsonld
new file mode 100644
index 00000000..36d8cac7
--- /dev/null
+++ b/test/jsonld/1.1/expand/0026-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/test/jsonld/1.1/expand/0026-out.jsonld b/test/jsonld/1.1/expand/0026-out.jsonld
new file mode 100644
index 00000000..75dc58d9
--- /dev/null
+++ b/test/jsonld/1.1/expand/0026-out.jsonld
@@ -0,0 +1,21 @@
+[
+ {
+ "@id": "http://example.com/a",
+ "@type": [
+ "http://example.com/b"
+ ]
+ },
+ {
+ "@id": "http://example.com/c",
+ "@type": [
+ "http://example.com/d",
+ "http://example.com/e"
+ ]
+ },
+ {
+ "@id": "http://example.com/f",
+ "@type": [
+ "http://example.com/g"
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0027-in.jsonld b/test/jsonld/1.1/expand/0027-in.jsonld
new file mode 100644
index 00000000..6c47cfb7
--- /dev/null
+++ b/test/jsonld/1.1/expand/0027-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/test/jsonld/1.1/expand/0027-out.jsonld b/test/jsonld/1.1/expand/0027-out.jsonld
new file mode 100644
index 00000000..15efa2e3
--- /dev/null
+++ b/test/jsonld/1.1/expand/0027-out.jsonld
@@ -0,0 +1,17 @@
+[{
+ "@id": "http://example.org/id",
+ "http://example.com/mylist": [{
+ "@list": [
+ {"@value": 1},
+ {"@value": 2},
+ {"@value": 2},
+ {"@value": 3}
+ ]
+ }],
+ "http://example.com/myset": [
+ {"@value": 1},
+ {"@value": 2},
+ {"@value": 2},
+ {"@value": 3}
+ ]
+}]
diff --git a/test/jsonld/1.1/expand/0028-in.jsonld b/test/jsonld/1.1/expand/0028-in.jsonld
new file mode 100644
index 00000000..4f05d0e4
--- /dev/null
+++ b/test/jsonld/1.1/expand/0028-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/test/jsonld/1.1/expand/0028-out.jsonld b/test/jsonld/1.1/expand/0028-out.jsonld
new file mode 100644
index 00000000..bd4e612f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0028-out.jsonld
@@ -0,0 +1,23 @@
+[
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/example1",
+ "@type": [ "http://example.org/vocab#test" ],
+ "http://example.org/vocab#date": [
+ {
+ "@value": "2011-01-25T00:00:00Z",
+ "@type": "http://example.org/vocab#dateTime"
+ }
+ ],
+ "http://example.org/vocab#embed": [
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/example2",
+ "http://example.org/vocab#expandedDate": [
+ {
+ "@value": "2012-08-01T00:00:00Z",
+ "@type": "http://example.org/vocab#dateTime"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0029-in.jsonld b/test/jsonld/1.1/expand/0029-in.jsonld
new file mode 100644
index 00000000..dd425bda
--- /dev/null
+++ b/test/jsonld/1.1/expand/0029-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/test/jsonld/1.1/expand/0029-out.jsonld b/test/jsonld/1.1/expand/0029-out.jsonld
new file mode 100644
index 00000000..641cc79f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0029-out.jsonld
@@ -0,0 +1,35 @@
+[
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/relativeIris",
+ "@type": [
+ "https://w3c.github.io/json-ld-api/tests/expand/link",
+ "https://w3c.github.io/json-ld-api/tests/expand/0029-in.jsonld#fragment-works",
+ "https://w3c.github.io/json-ld-api/tests/expand/0029-in.jsonld?query=works",
+ "https://w3c.github.io/json-ld-api/tests/expand/",
+ "https://w3c.github.io/json-ld-api/tests/",
+ "https://w3c.github.io/json-ld-api/tests/parent",
+ "https://w3c.github.io/parent-parent-eq-root",
+ "https://w3c.github.io/still-root",
+ "https://w3c.github.io/too-many-dots",
+ "https://w3c.github.io/absolute",
+ "https://example.org/scheme-relative"
+ ],
+ "http://www.example.com/link": [
+ {
+ "@list": [
+ {"@id": "https://w3c.github.io/json-ld-api/tests/expand/link"},
+ {"@id": "https://w3c.github.io/json-ld-api/tests/expand/0029-in.jsonld#fragment-works"},
+ {"@id": "https://w3c.github.io/json-ld-api/tests/expand/0029-in.jsonld?query=works"},
+ {"@id": "https://w3c.github.io/json-ld-api/tests/expand/"},
+ {"@id": "https://w3c.github.io/json-ld-api/tests/"},
+ {"@id": "https://w3c.github.io/json-ld-api/tests/parent"},
+ {"@id": "https://w3c.github.io/parent-parent-eq-root"},
+ {"@id": "https://w3c.github.io/still-root"},
+ {"@id": "https://w3c.github.io/too-many-dots"},
+ {"@id": "https://w3c.github.io/absolute"},
+ {"@id": "https://example.org/scheme-relative"}
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0030-in.jsonld b/test/jsonld/1.1/expand/0030-in.jsonld
new file mode 100644
index 00000000..ca711673
--- /dev/null
+++ b/test/jsonld/1.1/expand/0030-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/test/jsonld/1.1/expand/0030-out.jsonld b/test/jsonld/1.1/expand/0030-out.jsonld
new file mode 100644
index 00000000..b598483f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0030-out.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label":
+ [
+ {
+ "@value": "Die Königin",
+ "@language": "de"
+ }, {
+ "@value": "Ihre Majestät",
+ "@language": "de"
+ }, {
+ "@value": "The Queen",
+ "@language": "en"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0031-in.jsonld b/test/jsonld/1.1/expand/0031-in.jsonld
new file mode 100644
index 00000000..192ff27c
--- /dev/null
+++ b/test/jsonld/1.1/expand/0031-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/test/jsonld/1.1/expand/0031-out.jsonld b/test/jsonld/1.1/expand/0031-out.jsonld
new file mode 100644
index 00000000..8b87d714
--- /dev/null
+++ b/test/jsonld/1.1/expand/0031-out.jsonld
@@ -0,0 +1,17 @@
+[
+ {
+ "@id": "http://example.org/test#example1",
+ "http://example.org/vocab#integer": [ {
+ "@value": 1,
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ } ],
+ "http://example.org/vocab#double": [ {
+ "@value": 123.45,
+ "@type": "http://www.w3.org/2001/XMLSchema#double"
+ } ],
+ "http://example.org/vocab#boolean": [ {
+ "@value": true,
+ "@type": "http://www.w3.org/2001/XMLSchema#boolean"
+ } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0032-in.jsonld b/test/jsonld/1.1/expand/0032-in.jsonld
new file mode 100644
index 00000000..920554fc
--- /dev/null
+++ b/test/jsonld/1.1/expand/0032-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/test/jsonld/1.1/expand/0032-out.jsonld b/test/jsonld/1.1/expand/0032-out.jsonld
new file mode 100644
index 00000000..abdba13a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0032-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://me.markus-lanthaler.com/",
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "Markus Lanthaler"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0033-in.jsonld b/test/jsonld/1.1/expand/0033-in.jsonld
new file mode 100644
index 00000000..abf6feed
--- /dev/null
+++ b/test/jsonld/1.1/expand/0033-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/test/jsonld/1.1/expand/0033-out.jsonld b/test/jsonld/1.1/expand/0033-out.jsonld
new file mode 100644
index 00000000..5637ced3
--- /dev/null
+++ b/test/jsonld/1.1/expand/0033-out.jsonld
@@ -0,0 +1,12 @@
+[{
+ "http://example.com/vocab#name": [{
+ "@value": "Markus Lanthaler"
+ }],
+ "http://example.com/vocab#homepage": [{
+ "@id": "http://www.markus-lanthaler.com/"
+ }],
+ "http://example.com/vocab#created_at": [{
+ "@value": "2012-10-28",
+ "@type": "http://www.w3.org/2001/XMLSchema#date"
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/0034-in.jsonld b/test/jsonld/1.1/expand/0034-in.jsonld
new file mode 100644
index 00000000..22bb6039
--- /dev/null
+++ b/test/jsonld/1.1/expand/0034-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/test/jsonld/1.1/expand/0034-out.jsonld b/test/jsonld/1.1/expand/0034-out.jsonld
new file mode 100644
index 00000000..afa7687b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0034-out.jsonld
@@ -0,0 +1,17 @@
+[{
+ "@id": "http://example.com/IriCollissions",
+ "http://example.com/vocab/collidingTerm": [
+ {
+ "@value": "value 1"
+ }, {
+ "@value": 2
+ }, {
+ "@value": 3
+ }, {
+ "@value": "four"
+ },
+ {
+ "@value": 5
+ }
+ ]
+}]
diff --git a/test/jsonld/1.1/expand/0035-in.jsonld b/test/jsonld/1.1/expand/0035-in.jsonld
new file mode 100644
index 00000000..7bf59112
--- /dev/null
+++ b/test/jsonld/1.1/expand/0035-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/test/jsonld/1.1/expand/0035-out.jsonld b/test/jsonld/1.1/expand/0035-out.jsonld
new file mode 100644
index 00000000..74a5f42a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0035-out.jsonld
@@ -0,0 +1,21 @@
+[{
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {
+ "@value": "Il re",
+ "@language": "it"
+ }, {
+ "@value": "The king",
+ "@language": "en"
+ }, {
+ "@value": "Die Königin",
+ "@language": "de"
+ }, {
+ "@value": "Ihre Majestät",
+ "@language": "de"
+ }, {
+ "@value": "The Queen",
+ "@language": "en"
+ }
+ ]
+}]
diff --git a/test/jsonld/1.1/expand/0036-in.jsonld b/test/jsonld/1.1/expand/0036-in.jsonld
new file mode 100644
index 00000000..23c99b55
--- /dev/null
+++ b/test/jsonld/1.1/expand/0036-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/test/jsonld/1.1/expand/0036-out.jsonld b/test/jsonld/1.1/expand/0036-out.jsonld
new file mode 100644
index 00000000..850353e2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0036-out.jsonld
@@ -0,0 +1,113 @@
+[
+ {
+ "@id": "http://example.org/indexTest",
+ "http://example.com/container": [
+ {
+ "@id": "http://example.org/nodeWithoutIndexA",
+ "@index": "A"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexA",
+ "@index": "this overrides the 'A' index from the container"
+ },
+ {
+ "@value": 1,
+ "@index": "A"
+ },
+ {
+ "@value": true,
+ "@index": "A"
+ },
+ {
+ "@value": false,
+ "@index": "A"
+ },
+ {
+ "@value": "simple string A",
+ "@index": "A"
+ },
+ {
+ "@value": "typed literal A",
+ "@type": "http://example.org/type",
+ "@index": "A"
+ },
+ {
+ "@value": "language-tagged string A",
+ "@language": "en",
+ "@index": "A"
+ },
+ {
+ "@value": "simple string B",
+ "@index": "B"
+ },
+ {
+ "@id": "http://example.org/nodeWithoutIndexC",
+ "@index": "C"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexC",
+ "@index": "this overrides the 'C' index from the container"
+ },
+ {
+ "@value": 3,
+ "@index": "C"
+ },
+ {
+ "@value": true,
+ "@index": "C"
+ },
+ {
+ "@value": false,
+ "@index": "C"
+ },
+ {
+ "@value": "simple string C",
+ "@index": "C"
+ },
+ {
+ "@value": "typed literal C",
+ "@type": "http://example.org/type",
+ "@index": "C"
+ },
+ {
+ "@value": "language-tagged string C",
+ "@language": "en",
+ "@index": "C"
+ }
+ ],
+ "http://example.com/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": "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/test/jsonld/1.1/expand/0037-in.jsonld b/test/jsonld/1.1/expand/0037-in.jsonld
new file mode 100644
index 00000000..7e65af4a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0037-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/test/jsonld/1.1/expand/0037-out.jsonld b/test/jsonld/1.1/expand/0037-out.jsonld
new file mode 100644
index 00000000..c03623ef
--- /dev/null
+++ b/test/jsonld/1.1/expand/0037-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0038-in.jsonld b/test/jsonld/1.1/expand/0038-in.jsonld
new file mode 100644
index 00000000..17071294
--- /dev/null
+++ b/test/jsonld/1.1/expand/0038-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/test/jsonld/1.1/expand/0038-out.jsonld b/test/jsonld/1.1/expand/0038-out.jsonld
new file mode 100644
index 00000000..328591b9
--- /dev/null
+++ b/test/jsonld/1.1/expand/0038-out.jsonld
@@ -0,0 +1,56 @@
+[
+ {
+ "@id": "_:term",
+ "@type": [
+ "_:term"
+ ],
+ "_:term": [
+ {
+ "@id": "_:term",
+ "@type": [
+ "_:term"
+ ]
+ },
+ {
+ "@id": "_:Bx",
+ "_:term": [
+ {
+ "@value": "term"
+ }
+ ]
+ },
+ {
+ "@value": "plain value"
+ },
+ {
+ "@id": "_:term"
+ },
+ {
+ "@id": "_:term",
+ "@type": [
+ "_:term"
+ ]
+ },
+ {
+ "@id": "_:Cx",
+ "_:term": [
+ {
+ "@value": "termId"
+ }
+ ]
+ },
+ {
+ "@id": "_:termAppendedToBlankNode"
+ },
+ {
+ "@id": "_:termAppendedToBlankNode"
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/relativeIri"
+ },
+ {
+ "@id": "_:term"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0039-in.jsonld b/test/jsonld/1.1/expand/0039-in.jsonld
new file mode 100644
index 00000000..7c3549ee
--- /dev/null
+++ b/test/jsonld/1.1/expand/0039-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/test/jsonld/1.1/expand/0039-out.jsonld b/test/jsonld/1.1/expand/0039-out.jsonld
new file mode 100644
index 00000000..c03623ef
--- /dev/null
+++ b/test/jsonld/1.1/expand/0039-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0040-in.jsonld b/test/jsonld/1.1/expand/0040-in.jsonld
new file mode 100644
index 00000000..2d02e0ad
--- /dev/null
+++ b/test/jsonld/1.1/expand/0040-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/test/jsonld/1.1/expand/0040-out.jsonld b/test/jsonld/1.1/expand/0040-out.jsonld
new file mode 100644
index 00000000..ce40ea19
--- /dev/null
+++ b/test/jsonld/1.1/expand/0040-out.jsonld
@@ -0,0 +1,23 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label":
+ [
+ {
+ "@value": "The Queen"
+ }
+ ],
+ "http://example.com/vocab/index":
+ [
+ {
+ "@value": "No"
+ },
+ {
+ "@value": "indexes"
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/asTheValueIsntAnObject"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0041-in.jsonld b/test/jsonld/1.1/expand/0041-in.jsonld
new file mode 100644
index 00000000..7915153e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0041-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/test/jsonld/1.1/expand/0041-out.jsonld b/test/jsonld/1.1/expand/0041-out.jsonld
new file mode 100644
index 00000000..923a5200
--- /dev/null
+++ b/test/jsonld/1.1/expand/0041-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "http://example.com/property": [ { "@value": "this is English", "@language": "en" } ],
+ "http://example.com/nested": [
+ {
+ "http://example.com/property": [ { "@value": "and this is a plain string" } ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0042-in.jsonld b/test/jsonld/1.1/expand/0042-in.jsonld
new file mode 100644
index 00000000..60cf9ac2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0042-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/test/jsonld/1.1/expand/0042-out.jsonld b/test/jsonld/1.1/expand/0042-out.jsonld
new file mode 100644
index 00000000..c03623ef
--- /dev/null
+++ b/test/jsonld/1.1/expand/0042-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0043-in.jsonld b/test/jsonld/1.1/expand/0043-in.jsonld
new file mode 100644
index 00000000..8ef07587
--- /dev/null
+++ b/test/jsonld/1.1/expand/0043-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/test/jsonld/1.1/expand/0043-out.jsonld b/test/jsonld/1.1/expand/0043-out.jsonld
new file mode 100644
index 00000000..d6d2ab38
--- /dev/null
+++ b/test/jsonld/1.1/expand/0043-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ },
+ {
+ "@id": "http://example.com/people/gregg",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Gregg Kellogg" } ]
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0044-in.jsonld b/test/jsonld/1.1/expand/0044-in.jsonld
new file mode 100644
index 00000000..c12bd7b2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0044-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/test/jsonld/1.1/expand/0044-out.jsonld b/test/jsonld/1.1/expand/0044-out.jsonld
new file mode 100644
index 00000000..d5192b92
--- /dev/null
+++ b/test/jsonld/1.1/expand/0044-out.jsonld
@@ -0,0 +1,21 @@
+[
+ {
+ "@id": "http://example.com/node",
+ "http://example.com/vocab/property": [
+ {
+ "@id": "http://example.com/propertyValueNode",
+ "http://example.com/vocab/indexMap": [
+ {
+ "@value": "simple string",
+ "@language": "en",
+ "@index": "expands to english string"
+ }
+ ]
+ },
+ {
+ "@value": "einfacher String",
+ "@language": "de"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0045-in.jsonld b/test/jsonld/1.1/expand/0045-in.jsonld
new file mode 100644
index 00000000..09207e31
--- /dev/null
+++ b/test/jsonld/1.1/expand/0045-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@value": "free-floating value"
+}
diff --git a/test/jsonld/1.1/expand/0045-out.jsonld b/test/jsonld/1.1/expand/0045-out.jsonld
new file mode 100644
index 00000000..1e3ec721
--- /dev/null
+++ b/test/jsonld/1.1/expand/0045-out.jsonld
@@ -0,0 +1 @@
+[ ]
diff --git a/test/jsonld/1.1/expand/0046-in.jsonld b/test/jsonld/1.1/expand/0046-in.jsonld
new file mode 100644
index 00000000..081a8877
--- /dev/null
+++ b/test/jsonld/1.1/expand/0046-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/test/jsonld/1.1/expand/0046-out.jsonld b/test/jsonld/1.1/expand/0046-out.jsonld
new file mode 100644
index 00000000..1e3ec721
--- /dev/null
+++ b/test/jsonld/1.1/expand/0046-out.jsonld
@@ -0,0 +1 @@
+[ ]
diff --git a/test/jsonld/1.1/expand/0047-in.jsonld b/test/jsonld/1.1/expand/0047-in.jsonld
new file mode 100644
index 00000000..90d54114
--- /dev/null
+++ b/test/jsonld/1.1/expand/0047-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/test/jsonld/1.1/expand/0047-out.jsonld b/test/jsonld/1.1/expand/0047-out.jsonld
new file mode 100644
index 00000000..dba2d8ef
--- /dev/null
+++ b/test/jsonld/1.1/expand/0047-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/node",
+ "http://example.com/property": [
+ {
+ "@value": "nodes with properties are not removed"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0048-in.jsonld b/test/jsonld/1.1/expand/0048-in.jsonld
new file mode 100644
index 00000000..5854b8a0
--- /dev/null
+++ b/test/jsonld/1.1/expand/0048-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/test/jsonld/1.1/expand/0048-out.jsonld b/test/jsonld/1.1/expand/0048-out.jsonld
new file mode 100644
index 00000000..da0a5bac
--- /dev/null
+++ b/test/jsonld/1.1/expand/0048-out.jsonld
@@ -0,0 +1,19 @@
+[
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/term",
+ "http://example.com/property": [
+ {
+ "@id": "http://example.com/compact-iris#are-considered",
+ "http://example.com/property": [
+ { "@value": "@id supports the following values: relative, absolute, and compact IRIs" }
+ ]
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/parent-node",
+ "http://example.com/property": [
+ { "@value": "relative IRIs get resolved against the document's base IRI" }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0049-in.jsonld b/test/jsonld/1.1/expand/0049-in.jsonld
new file mode 100644
index 00000000..3f10e016
--- /dev/null
+++ b/test/jsonld/1.1/expand/0049-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/test/jsonld/1.1/expand/0049-out.jsonld b/test/jsonld/1.1/expand/0049-out.jsonld
new file mode 100644
index 00000000..f63e141a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0049-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave"
+ },
+ {
+ "@id": "http://example.com/people/gregg"
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0050-in.jsonld b/test/jsonld/1.1/expand/0050-in.jsonld
new file mode 100644
index 00000000..01b24726
--- /dev/null
+++ b/test/jsonld/1.1/expand/0050-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/test/jsonld/1.1/expand/0050-out.jsonld b/test/jsonld/1.1/expand/0050-out.jsonld
new file mode 100644
index 00000000..adc001e3
--- /dev/null
+++ b/test/jsonld/1.1/expand/0050-out.jsonld
@@ -0,0 +1,6 @@
+[
+ {
+ "http://example.com/issue/": [ { "@id": "https://w3c.github.io/issue/1" } ],
+ "http://example.com/issue/raisedBy": [ { "@value": "Markus" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0051-in.jsonld b/test/jsonld/1.1/expand/0051-in.jsonld
new file mode 100644
index 00000000..77b7fbd8
--- /dev/null
+++ b/test/jsonld/1.1/expand/0051-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": [
+ { "id": "@id" },
+ { "url": "id" }
+ ],
+ "url": "/issue/1",
+ "http://example.com/property": "ok"
+}
diff --git a/test/jsonld/1.1/expand/0051-out.jsonld b/test/jsonld/1.1/expand/0051-out.jsonld
new file mode 100644
index 00000000..c0a226fe
--- /dev/null
+++ b/test/jsonld/1.1/expand/0051-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.com/property": [{
+ "@value": "ok"
+ }],
+ "@id": "https://w3c.github.io/issue/1"
+}]
diff --git a/test/jsonld/1.1/expand/0052-in.jsonld b/test/jsonld/1.1/expand/0052-in.jsonld
new file mode 100644
index 00000000..ee3d9d2e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0052-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/test/jsonld/1.1/expand/0052-out.jsonld b/test/jsonld/1.1/expand/0052-out.jsonld
new file mode 100644
index 00000000..27501fbe
--- /dev/null
+++ b/test/jsonld/1.1/expand/0052-out.jsonld
@@ -0,0 +1,6 @@
+[
+ {
+ "http://example.org/property": [ { "@value": "ok" } ],
+ "http://example.org/vocabRelativeProperty": [ { "@value": "must expand to http://example.org/vocabRelativeProperty" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0053-in.jsonld b/test/jsonld/1.1/expand/0053-in.jsonld
new file mode 100644
index 00000000..3ac3ea98
--- /dev/null
+++ b/test/jsonld/1.1/expand/0053-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"}
+ },
+ "term": "http://example.org/enum"
+}
diff --git a/test/jsonld/1.1/expand/0053-out.jsonld b/test/jsonld/1.1/expand/0053-out.jsonld
new file mode 100644
index 00000000..7be3023c
--- /dev/null
+++ b/test/jsonld/1.1/expand/0053-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/term": [{"@id": "http://example.org/enum"}]
+}]
diff --git a/test/jsonld/1.1/expand/0054-in.jsonld b/test/jsonld/1.1/expand/0054-in.jsonld
new file mode 100644
index 00000000..680afbf0
--- /dev/null
+++ b/test/jsonld/1.1/expand/0054-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/test/jsonld/1.1/expand/0054-out.jsonld b/test/jsonld/1.1/expand/0054-out.jsonld
new file mode 100644
index 00000000..7be3023c
--- /dev/null
+++ b/test/jsonld/1.1/expand/0054-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/term": [{"@id": "http://example.org/enum"}]
+}]
diff --git a/test/jsonld/1.1/expand/0055-in.jsonld b/test/jsonld/1.1/expand/0055-in.jsonld
new file mode 100644
index 00000000..1c5ed3b0
--- /dev/null
+++ b/test/jsonld/1.1/expand/0055-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"}
+ },
+ "term": "enum"
+}
diff --git a/test/jsonld/1.1/expand/0055-out.jsonld b/test/jsonld/1.1/expand/0055-out.jsonld
new file mode 100644
index 00000000..7be3023c
--- /dev/null
+++ b/test/jsonld/1.1/expand/0055-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/term": [{"@id": "http://example.org/enum"}]
+}]
diff --git a/test/jsonld/1.1/expand/0056-in.jsonld b/test/jsonld/1.1/expand/0056-in.jsonld
new file mode 100644
index 00000000..6d5b0cb9
--- /dev/null
+++ b/test/jsonld/1.1/expand/0056-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/test/jsonld/1.1/expand/0056-out.jsonld b/test/jsonld/1.1/expand/0056-out.jsonld
new file mode 100644
index 00000000..d7e7a6d5
--- /dev/null
+++ b/test/jsonld/1.1/expand/0056-out.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "@id": "http://me.markus-lanthaler.com/",
+ "http://xmlns.com/foaf/0.1/homepage": [ { "@id": "http://www.markus-lanthaler.com/" } ],
+ "http://example.com/link": [ { "@id": "https://w3c.github.io/json-ld-api/tests/expand/relative-iri" } ],
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0057-in.jsonld b/test/jsonld/1.1/expand/0057-in.jsonld
new file mode 100644
index 00000000..732cc923
--- /dev/null
+++ b/test/jsonld/1.1/expand/0057-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/test/jsonld/1.1/expand/0057-out.jsonld b/test/jsonld/1.1/expand/0057-out.jsonld
new file mode 100644
index 00000000..71ab8336
--- /dev/null
+++ b/test/jsonld/1.1/expand/0057-out.jsonld
@@ -0,0 +1,5 @@
+[
+ {
+ "http://example.org/term": [ { "@id": "https://w3c.github.io/json-ld-api/tests/expand/not-a-term-thus-a-relative-IRI" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0058-in.jsonld b/test/jsonld/1.1/expand/0058-in.jsonld
new file mode 100644
index 00000000..68dc3249
--- /dev/null
+++ b/test/jsonld/1.1/expand/0058-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/test/jsonld/1.1/expand/0058-out.jsonld b/test/jsonld/1.1/expand/0058-out.jsonld
new file mode 100644
index 00000000..f127a40d
--- /dev/null
+++ b/test/jsonld/1.1/expand/0058-out.jsonld
@@ -0,0 +1,5 @@
+[
+ {
+ "http://example.org/term": [ { "@id": "http://example.com/vocab#suffix" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0059-in.jsonld b/test/jsonld/1.1/expand/0059-in.jsonld
new file mode 100644
index 00000000..05f582f0
--- /dev/null
+++ b/test/jsonld/1.1/expand/0059-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/test/jsonld/1.1/expand/0059-out.jsonld b/test/jsonld/1.1/expand/0059-out.jsonld
new file mode 100644
index 00000000..a0365cde
--- /dev/null
+++ b/test/jsonld/1.1/expand/0059-out.jsonld
@@ -0,0 +1,13 @@
+[
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/example-with-vocab",
+ "@type": [ "http://example.org/vocab#vocab-prefixed" ],
+ "http://example.org/vocab#embed": [
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/example-vocab-reset",
+ "@type": [ "https://w3c.github.io/json-ld-api/tests/expand/document-relative" ]
+ }
+ ],
+ "http://example.org/vocab#property": [ { "@value": "property expanded using @vocab" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0060-in.jsonld b/test/jsonld/1.1/expand/0060-in.jsonld
new file mode 100644
index 00000000..dbae017a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0060-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": "only @base is cleared"
+ }
+ ]
+ }
+}
diff --git a/test/jsonld/1.1/expand/0060-out.jsonld b/test/jsonld/1.1/expand/0060-out.jsonld
new file mode 100644
index 00000000..4b387d3e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0060-out.jsonld
@@ -0,0 +1,23 @@
+[
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/document-relative",
+ "@type": [ "https://w3c.github.io/json-ld-api/tests/expand/0060-in.jsonld#document-relative" ],
+ "http://example.com/vocab#property": [
+ {
+ "@id": "http://example.org/document-base-overwritten",
+ "@type": [ "http://example.org/test/#document-base-overwritten" ],
+ "http://example.com/vocab#property": [
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/document-relative",
+ "@type": [ "https://w3c.github.io/json-ld-api/tests/expand/0060-in.jsonld#document-relative" ]
+ },
+ {
+ "@id": "../document-relative",
+ "@type": [ "#document-relative" ],
+ "http://example.com/vocab#property": [ { "@value": "only @base is cleared" } ]
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0061-in.jsonld b/test/jsonld/1.1/expand/0061-in.jsonld
new file mode 100644
index 00000000..45c1d511
--- /dev/null
+++ b/test/jsonld/1.1/expand/0061-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/test/jsonld/1.1/expand/0061-out.jsonld b/test/jsonld/1.1/expand/0061-out.jsonld
new file mode 100644
index 00000000..bdde6474
--- /dev/null
+++ b/test/jsonld/1.1/expand/0061-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "http://example.com/property": [
+ { "@value": 1, "@type": "http://example.com/datatype" },
+ { "@value": true, "@type": "http://example.com/datatype" },
+ { "@value": false, "@type": "http://example.com/datatype" },
+ { "@value": 5.1, "@type": "http://example.com/datatype" }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0062-in.jsonld b/test/jsonld/1.1/expand/0062-in.jsonld
new file mode 100644
index 00000000..fb472514
--- /dev/null
+++ b/test/jsonld/1.1/expand/0062-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/test/jsonld/1.1/expand/0062-out.jsonld b/test/jsonld/1.1/expand/0062-out.jsonld
new file mode 100644
index 00000000..5a939f0e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0062-out.jsonld
@@ -0,0 +1,35 @@
+[
+ {
+ "@id": "http://example.com/some/deep/directory/and/relativeIris",
+ "@type": [
+ "http://example.com/some/deep/directory/and/link",
+ "http://example.com/some/deep/directory/and/file#fragment-works",
+ "http://example.com/some/deep/directory/and/file?query=works",
+ "http://example.com/some/deep/directory/and/",
+ "http://example.com/some/deep/directory/",
+ "http://example.com/some/deep/directory/parent",
+ "http://example.com/some/deep/parent-parent-eq-root",
+ "http://example.com/still-root",
+ "http://example.com/too-many-dots",
+ "http://example.com/absolute",
+ "http://example.org/scheme-relative"
+ ],
+ "http://www.example.com/link": [ {
+ "@list": [
+ { "@id": "http://example.com/some/deep/directory/and/link" },
+ { "@id": "http://example.com/some/deep/directory/and/file#fragment-works" },
+ { "@id": "http://example.com/some/deep/directory/and/file?query=works" },
+ { "@id": "http://example.com/some/deep/directory/and/" },
+ { "@id": "http://example.com/some/deep/directory/" },
+ { "@id": "http://example.com/some/deep/directory/parent" },
+ { "@id": "http://example.com/some/deep/parent-parent-eq-root" },
+ { "@id": "http://example.com/still-root" },
+ { "@id": "http://example.com/too-many-dots" },
+ { "@id": "http://example.com/absolute" },
+ { "@id": "http://example.org/scheme-relative" },
+ { "@id": "http://example.org/scheme-relative" },
+ { "@id": "http://example.org/scheme-relative" }
+ ]
+ } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0063-in.jsonld b/test/jsonld/1.1/expand/0063-in.jsonld
new file mode 100644
index 00000000..a9a83b0c
--- /dev/null
+++ b/test/jsonld/1.1/expand/0063-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/test/jsonld/1.1/expand/0063-out.jsonld b/test/jsonld/1.1/expand/0063-out.jsonld
new file mode 100644
index 00000000..ffa49d96
--- /dev/null
+++ b/test/jsonld/1.1/expand/0063-out.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "@index": "Dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ },
+ {
+ "@id": "http://example.com/people/gregg",
+ "@index": "Gregg",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Gregg Kellogg" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0064-in.jsonld b/test/jsonld/1.1/expand/0064-in.jsonld
new file mode 100644
index 00000000..dc313893
--- /dev/null
+++ b/test/jsonld/1.1/expand/0064-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/test/jsonld/1.1/expand/0064-out.jsonld b/test/jsonld/1.1/expand/0064-out.jsonld
new file mode 100644
index 00000000..273226d2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0064-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ },
+ {
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Gregg Kellogg" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0065-in.jsonld b/test/jsonld/1.1/expand/0065-in.jsonld
new file mode 100644
index 00000000..116e0504
--- /dev/null
+++ b/test/jsonld/1.1/expand/0065-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/test/jsonld/1.1/expand/0065-out.jsonld b/test/jsonld/1.1/expand/0065-out.jsonld
new file mode 100644
index 00000000..c03623ef
--- /dev/null
+++ b/test/jsonld/1.1/expand/0065-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0066-in.jsonld b/test/jsonld/1.1/expand/0066-in.jsonld
new file mode 100644
index 00000000..b3a9bd80
--- /dev/null
+++ b/test/jsonld/1.1/expand/0066-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/test/jsonld/1.1/expand/0066-out.jsonld b/test/jsonld/1.1/expand/0066-out.jsonld
new file mode 100644
index 00000000..4db1a0e8
--- /dev/null
+++ b/test/jsonld/1.1/expand/0066-out.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ]
+ }
+ ],
+ "http://example.com/vocab/noTerm": [
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/relative-node",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Compact keys using @vocab" } ]
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0067-in.jsonld b/test/jsonld/1.1/expand/0067-in.jsonld
new file mode 100644
index 00000000..a8e29a67
--- /dev/null
+++ b/test/jsonld/1.1/expand/0067-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/test/jsonld/1.1/expand/0067-out.jsonld b/test/jsonld/1.1/expand/0067-out.jsonld
new file mode 100644
index 00000000..403b92c2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0067-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "@id": "http://example.org/node1",
+ "@type": ["http://example.org/type"],
+ "http://example.org/property": [
+ { "@value": "all these IRIs remain unchanged because they are interpreted as absolute IRIs" }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0068-in.jsonld b/test/jsonld/1.1/expand/0068-in.jsonld
new file mode 100644
index 00000000..ab52e5e7
--- /dev/null
+++ b/test/jsonld/1.1/expand/0068-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/test/jsonld/1.1/expand/0068-out.jsonld b/test/jsonld/1.1/expand/0068-out.jsonld
new file mode 100644
index 00000000..aa98b316
--- /dev/null
+++ b/test/jsonld/1.1/expand/0068-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "@id": "_:node1",
+ "@type": [ "_:type" ],
+ "_:property": [
+ { "@value": "all these IRIs remain unchanged because they are interpreted as blank node identifiers" }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0069-in.jsonld b/test/jsonld/1.1/expand/0069-in.jsonld
new file mode 100644
index 00000000..8f4a9aa9
--- /dev/null
+++ b/test/jsonld/1.1/expand/0069-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/test/jsonld/1.1/expand/0069-out.jsonld b/test/jsonld/1.1/expand/0069-out.jsonld
new file mode 100644
index 00000000..4ca55346
--- /dev/null
+++ b/test/jsonld/1.1/expand/0069-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "@id": "http://example.com/vocab#class",
+ "@type": [ "http://www.w3.org/2000/01/rdf-schema#Class" ],
+ "http://www.w3.org/2000/01/rdf-schema#subClassOf": [
+ { "@id": "http://example.com/vocab#someOtherClass"}
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0070-in.jsonld b/test/jsonld/1.1/expand/0070-in.jsonld
new file mode 100644
index 00000000..59733fb5
--- /dev/null
+++ b/test/jsonld/1.1/expand/0070-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/test/jsonld/1.1/expand/0070-out.jsonld b/test/jsonld/1.1/expand/0070-out.jsonld
new file mode 100644
index 00000000..ff650442
--- /dev/null
+++ b/test/jsonld/1.1/expand/0070-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "@id": "http://example.com/vocab#id",
+ "@type": [ "http://www.example.org/vocab#Class" ],
+ "http://www.example.org/vocab#foo": [
+ { "@value": "bar"}
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0071-in.jsonld b/test/jsonld/1.1/expand/0071-in.jsonld
new file mode 100644
index 00000000..598c43fe
--- /dev/null
+++ b/test/jsonld/1.1/expand/0071-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/test/jsonld/1.1/expand/0071-out.jsonld b/test/jsonld/1.1/expand/0071-out.jsonld
new file mode 100644
index 00000000..b09249d5
--- /dev/null
+++ b/test/jsonld/1.1/expand/0071-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "http://example.com/vocab#term": [
+ { "@value": "value of v:term" }
+ ],
+ "http://example.com/vocab#termId": [
+ { "@value": "value of v:termId" }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0072-in.jsonld b/test/jsonld/1.1/expand/0072-in.jsonld
new file mode 100644
index 00000000..dcfa1b40
--- /dev/null
+++ b/test/jsonld/1.1/expand/0072-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/test/jsonld/1.1/expand/0072-out.jsonld b/test/jsonld/1.1/expand/0072-out.jsonld
new file mode 100644
index 00000000..7be24c32
--- /dev/null
+++ b/test/jsonld/1.1/expand/0072-out.jsonld
@@ -0,0 +1,7 @@
+[
+ {
+ "http://example.com/anotherVocab#term": [
+ { "@value": "value of term" }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0073-in.jsonld b/test/jsonld/1.1/expand/0073-in.jsonld
new file mode 100644
index 00000000..78873bd8
--- /dev/null
+++ b/test/jsonld/1.1/expand/0073-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/test/jsonld/1.1/expand/0073-out.jsonld b/test/jsonld/1.1/expand/0073-out.jsonld
new file mode 100644
index 00000000..7a8eefda
--- /dev/null
+++ b/test/jsonld/1.1/expand/0073-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.org/node1",
+ "http://www.w3.org/2002/07/owl#sameAs": [
+ {
+ "@id": "http://example.org/node2",
+ "http://example.org/link": [
+ { "@id": "http://example.org/node3" }
+ ],
+ "http://www.w3.org/2000/01/rdf-schema#label": [ { "@value": "Node 2" } ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0074-in.jsonld b/test/jsonld/1.1/expand/0074-in.jsonld
new file mode 100644
index 00000000..070a328f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0074-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/test/jsonld/1.1/expand/0074-out.jsonld b/test/jsonld/1.1/expand/0074-out.jsonld
new file mode 100644
index 00000000..7a8eefda
--- /dev/null
+++ b/test/jsonld/1.1/expand/0074-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.org/node1",
+ "http://www.w3.org/2002/07/owl#sameAs": [
+ {
+ "@id": "http://example.org/node2",
+ "http://example.org/link": [
+ { "@id": "http://example.org/node3" }
+ ],
+ "http://www.w3.org/2000/01/rdf-schema#label": [ { "@value": "Node 2" } ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0075-in.jsonld b/test/jsonld/1.1/expand/0075-in.jsonld
new file mode 100644
index 00000000..23dd106b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0075-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "_:"
+ },
+ "@id": "ex:node1",
+ "b1": "blank node property 1",
+ "b2": "blank node property 1"
+}
diff --git a/test/jsonld/1.1/expand/0075-out.jsonld b/test/jsonld/1.1/expand/0075-out.jsonld
new file mode 100644
index 00000000..eac1f920
--- /dev/null
+++ b/test/jsonld/1.1/expand/0075-out.jsonld
@@ -0,0 +1,7 @@
+[
+ {
+ "@id": "ex:node1",
+ "_:b1": [ { "@value": "blank node property 1" } ],
+ "_:b2": [ { "@value": "blank node property 1" } ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0076-in.jsonld b/test/jsonld/1.1/expand/0076-in.jsonld
new file mode 100644
index 00000000..8793b622
--- /dev/null
+++ b/test/jsonld/1.1/expand/0076-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/expand/0076-out.jsonld b/test/jsonld/1.1/expand/0076-out.jsonld
new file mode 100644
index 00000000..9e0896bc
--- /dev/null
+++ b/test/jsonld/1.1/expand/0076-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example/base/relative-iri",
+ "http://prop": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/expand/0077-context.jsonld b/test/jsonld/1.1/expand/0077-context.jsonld
new file mode 100644
index 00000000..79129cb2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0077-context.jsonld
@@ -0,0 +1,11 @@
+{
+ "@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"
+ }
+}
diff --git a/test/jsonld/1.1/expand/0077-in.jsonld b/test/jsonld/1.1/expand/0077-in.jsonld
new file mode 100644
index 00000000..5c5741fd
--- /dev/null
+++ b/test/jsonld/1.1/expand/0077-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@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/test/jsonld/1.1/expand/0077-out.jsonld b/test/jsonld/1.1/expand/0077-out.jsonld
new file mode 100644
index 00000000..cc8e658e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0077-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@id": "http://example.com/id1",
+ "@type": ["http://example.com/t1"],
+ "http://example.com/term1": [{"@value": "v1"}],
+ "http://example.com/term2": [{"@value": "v2", "@type": "http://example.com/t2"}],
+ "http://example.com/term3": [{"@value": "v3", "@language": "en"}],
+ "http://example.com/term4": [{"@value": 4}],
+ "http://example.com/term5": [{"@value": 50}, {"@value": 51}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0078-in.jsonld b/test/jsonld/1.1/expand/0078-in.jsonld
new file mode 100644
index 00000000..0a0cf729
--- /dev/null
+++ b/test/jsonld/1.1/expand/0078-in.jsonld
@@ -0,0 +1,29 @@
+{
+ "@context": {
+ "name": "http://example.com/vocab#name",
+ "children": { "@reverse": "http://example.com/vocab#parent" },
+ "pets": { "@reverse": "http://example.com/vocab#owner" }
+ },
+ "@id": "#homer",
+ "name": "Homer",
+ "children": [
+ {
+ "@id": "#bart",
+ "name": "Bart"
+ },
+ {
+ "@id": "#lisa",
+ "name": "Lisa"
+ }
+ ],
+ "pets": [
+ {
+ "@id": "#snowball-ii",
+ "name": "Snowball II"
+ },
+ {
+ "@id": "#santas-little-helper",
+ "name": "Santa's Little Helper"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/expand/0078-out.jsonld b/test/jsonld/1.1/expand/0078-out.jsonld
new file mode 100644
index 00000000..0c3a9e6b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0078-out.jsonld
@@ -0,0 +1,26 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/0078-in.jsonld#homer",
+ "@reverse": {
+ "http://example.com/vocab#parent": [
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/0078-in.jsonld#bart",
+ "http://example.com/vocab#name": [ { "@value": "Bart" } ]
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/0078-in.jsonld#lisa",
+ "http://example.com/vocab#name": [ { "@value": "Lisa" } ]
+ }
+ ],
+ "http://example.com/vocab#owner": [
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/0078-in.jsonld#snowball-ii",
+ "http://example.com/vocab#name": [ { "@value": "Snowball II" } ]
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/expand/0078-in.jsonld#santas-little-helper",
+ "http://example.com/vocab#name": [ { "@value": "Santa's Little Helper" } ]
+ }
+ ]
+ },
+ "http://example.com/vocab#name": [ { "@value": "Homer" } ]
+}]
diff --git a/test/jsonld/1.1/expand/0079-in.jsonld b/test/jsonld/1.1/expand/0079-in.jsonld
new file mode 100644
index 00000000..8514ced2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0079-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": {
+ "value": "x"
+ }
+}
diff --git a/test/jsonld/1.1/expand/0079-out.jsonld b/test/jsonld/1.1/expand/0079-out.jsonld
new file mode 100644
index 00000000..37166247
--- /dev/null
+++ b/test/jsonld/1.1/expand/0079-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "foo:input": [{
+ "@graph": [{
+ "foo:value": [{
+ "@value": "x"
+ }]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/0080-in.jsonld b/test/jsonld/1.1/expand/0080-in.jsonld
new file mode 100644
index 00000000..098f8684
--- /dev/null
+++ b/test/jsonld/1.1/expand/0080-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }]
+}
diff --git a/test/jsonld/1.1/expand/0080-out.jsonld b/test/jsonld/1.1/expand/0080-out.jsonld
new file mode 100644
index 00000000..37166247
--- /dev/null
+++ b/test/jsonld/1.1/expand/0080-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "foo:input": [{
+ "@graph": [{
+ "foo:value": [{
+ "@value": "x"
+ }]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/0081-in.jsonld b/test/jsonld/1.1/expand/0081-in.jsonld
new file mode 100644
index 00000000..d1742979
--- /dev/null
+++ b/test/jsonld/1.1/expand/0081-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": {
+ "@graph": {
+ "value": "x"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0081-out.jsonld b/test/jsonld/1.1/expand/0081-out.jsonld
new file mode 100644
index 00000000..abbd8271
--- /dev/null
+++ b/test/jsonld/1.1/expand/0081-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0082-in.jsonld b/test/jsonld/1.1/expand/0082-in.jsonld
new file mode 100644
index 00000000..83d3182b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0082-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0082-out.jsonld b/test/jsonld/1.1/expand/0082-out.jsonld
new file mode 100644
index 00000000..dfc5b0aa
--- /dev/null
+++ b/test/jsonld/1.1/expand/0082-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0083-in.jsonld b/test/jsonld/1.1/expand/0083-in.jsonld
new file mode 100644
index 00000000..71f8a50f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0083-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index", "@set"]}
+ },
+ "input": {
+ "g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0083-out.jsonld b/test/jsonld/1.1/expand/0083-out.jsonld
new file mode 100644
index 00000000..dfc5b0aa
--- /dev/null
+++ b/test/jsonld/1.1/expand/0083-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0084-in.jsonld b/test/jsonld/1.1/expand/0084-in.jsonld
new file mode 100644
index 00000000..0026a778
--- /dev/null
+++ b/test/jsonld/1.1/expand/0084-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": {
+ "@graph": {
+ "value": "x"
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0084-out.jsonld b/test/jsonld/1.1/expand/0084-out.jsonld
new file mode 100644
index 00000000..dfc5b0aa
--- /dev/null
+++ b/test/jsonld/1.1/expand/0084-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0085-in.jsonld b/test/jsonld/1.1/expand/0085-in.jsonld
new file mode 100644
index 00000000..3cd17bc2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0085-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0085-out.jsonld b/test/jsonld/1.1/expand/0085-out.jsonld
new file mode 100644
index 00000000..7cb99fca
--- /dev/null
+++ b/test/jsonld/1.1/expand/0085-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0086-in.jsonld b/test/jsonld/1.1/expand/0086-in.jsonld
new file mode 100644
index 00000000..27ea6de7
--- /dev/null
+++ b/test/jsonld/1.1/expand/0086-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id", "@set"]}
+ },
+ "input": {
+ "http://example.com/g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0086-out.jsonld b/test/jsonld/1.1/expand/0086-out.jsonld
new file mode 100644
index 00000000..7cb99fca
--- /dev/null
+++ b/test/jsonld/1.1/expand/0086-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0087-in.jsonld b/test/jsonld/1.1/expand/0087-in.jsonld
new file mode 100644
index 00000000..aa994f30
--- /dev/null
+++ b/test/jsonld/1.1/expand/0087-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {
+ "@graph": {
+ "value": "x"
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0087-out.jsonld b/test/jsonld/1.1/expand/0087-out.jsonld
new file mode 100644
index 00000000..7cb99fca
--- /dev/null
+++ b/test/jsonld/1.1/expand/0087-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0088-in.jsonld b/test/jsonld/1.1/expand/0088-in.jsonld
new file mode 100644
index 00000000..c0c20a1a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0088-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "@base": "http://example.com/",
+ "coerceId": {"@type": "@id"},
+ "coerceVocab": {"@type": "@vocab"}
+ },
+ "coerceDefault": ["string", true, false, 0, 1],
+ "coerceId": ["string", true, false, 0, 1],
+ "coerceVocab": ["string", true, false, 0, 1]
+}
diff --git a/test/jsonld/1.1/expand/0088-out.jsonld b/test/jsonld/1.1/expand/0088-out.jsonld
new file mode 100644
index 00000000..650d292d
--- /dev/null
+++ b/test/jsonld/1.1/expand/0088-out.jsonld
@@ -0,0 +1,25 @@
+[
+ {
+ "http://example.org/coerceDefault": [
+ {"@value": "string"},
+ {"@value": true},
+ {"@value": false},
+ {"@value": 0},
+ {"@value": 1}
+ ],
+ "http://example.org/coerceId": [
+ {"@id": "http://example.com/string"},
+ {"@value": true},
+ {"@value": false},
+ {"@value": 0},
+ {"@value": 1}
+ ],
+ "http://example.org/coerceVocab": [
+ {"@id": "http://example.org/string"},
+ {"@value": true},
+ {"@value": false},
+ {"@value": 0},
+ {"@value": 1}
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0089-in.jsonld b/test/jsonld/1.1/expand/0089-in.jsonld
new file mode 100644
index 00000000..7a6dcd8d
--- /dev/null
+++ b/test/jsonld/1.1/expand/0089-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@base": ""
+ },
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/expand/0089-out.jsonld b/test/jsonld/1.1/expand/0089-out.jsonld
new file mode 100644
index 00000000..9e0896bc
--- /dev/null
+++ b/test/jsonld/1.1/expand/0089-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example/base/relative-iri",
+ "http://prop": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/expand/0090-in.jsonld b/test/jsonld/1.1/expand/0090-in.jsonld
new file mode 100644
index 00000000..0853f89e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0090-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@base": ".."
+ },
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/expand/0090-out.jsonld b/test/jsonld/1.1/expand/0090-out.jsonld
new file mode 100644
index 00000000..29938598
--- /dev/null
+++ b/test/jsonld/1.1/expand/0090-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example/relative-iri",
+ "http://prop": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/expand/0091-in.jsonld b/test/jsonld/1.1/expand/0091-in.jsonld
new file mode 100644
index 00000000..bad0f06b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0091-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": [{
+ "@base": "http://foo.bar/./baz/"
+ }, {
+ "@base": "example/"
+ }],
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/expand/0091-out.jsonld b/test/jsonld/1.1/expand/0091-out.jsonld
new file mode 100644
index 00000000..638d6ee7
--- /dev/null
+++ b/test/jsonld/1.1/expand/0091-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://foo.bar/baz/example/relative-iri",
+ "http://prop": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/expand/0092-in.jsonld b/test/jsonld/1.1/expand/0092-in.jsonld
new file mode 100644
index 00000000..d7ed55e1
--- /dev/null
+++ b/test/jsonld/1.1/expand/0092-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": ""
+ },
+ "@id": "relativePropertyIris",
+ "link": "link",
+ "#fragment-works": "#fragment-works",
+ "?query=works": "?query=works",
+ "./": "./",
+ "../": "../",
+ "../parent": "../parent",
+ "../../parent-parent-eq-root": "../../parent-parent-eq-root",
+ "../../../../../still-root": "../../../../../still-root",
+ "../.././.././../../too-many-dots": "../.././.././../../too-many-dots",
+ "/absolute": "/absolute",
+ "//example.org/scheme-relative": "//example.org/scheme-relative"
+}
diff --git a/test/jsonld/1.1/expand/0092-out.jsonld b/test/jsonld/1.1/expand/0092-out.jsonld
new file mode 100644
index 00000000..a8540122
--- /dev/null
+++ b/test/jsonld/1.1/expand/0092-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/some/deep/directory/and/file/relativePropertyIris",
+ "http://example.com/some/deep/directory/and/file/#fragment-works": [{"@value": "#fragment-works"}],
+ "http://example.com/some/deep/directory/and/file/../": [{"@value": "../"}],
+ "http://example.com/some/deep/directory/and/file/../../../../../still-root": [{"@value": "../../../../../still-root"}],
+ "http://example.com/some/deep/directory/and/file/../.././.././../../too-many-dots": [{"@value": "../.././.././../../too-many-dots"}],
+ "http://example.com/some/deep/directory/and/file/../../parent-parent-eq-root": [{"@value": "../../parent-parent-eq-root"}],
+ "http://example.com/some/deep/directory/and/file/../parent": [{"@value": "../parent"}],
+ "http://example.com/some/deep/directory/and/file/./": [{"@value": "./"}],
+ "http://example.com/some/deep/directory/and/file///example.org/scheme-relative": [{"@value": "//example.org/scheme-relative"}],
+ "http://example.com/some/deep/directory/and/file//absolute": [{"@value": "/absolute"}],
+ "http://example.com/some/deep/directory/and/file/?query=works": [{"@value": "?query=works"}],
+ "http://example.com/some/deep/directory/and/file/link": [{"@value": "link"}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0093-in.jsonld b/test/jsonld/1.1/expand/0093-in.jsonld
new file mode 100644
index 00000000..b32c0949
--- /dev/null
+++ b/test/jsonld/1.1/expand/0093-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0093-out.jsonld b/test/jsonld/1.1/expand/0093-out.jsonld
new file mode 100644
index 00000000..5e4e5bd9
--- /dev/null
+++ b/test/jsonld/1.1/expand/0093-out.jsonld
@@ -0,0 +1,15 @@
+[{
+ "foo:input": [{
+ "@graph": [{
+ "foo:value": [{
+ "@value": "x"
+ }]
+ }]
+ }, {
+ "@graph": [{
+ "foo:value": [{
+ "@value": "y"
+ }]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0094-in.jsonld b/test/jsonld/1.1/expand/0094-in.jsonld
new file mode 100644
index 00000000..2e0dc624
--- /dev/null
+++ b/test/jsonld/1.1/expand/0094-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0094-out.jsonld b/test/jsonld/1.1/expand/0094-out.jsonld
new file mode 100644
index 00000000..5e4e5bd9
--- /dev/null
+++ b/test/jsonld/1.1/expand/0094-out.jsonld
@@ -0,0 +1,15 @@
+[{
+ "foo:input": [{
+ "@graph": [{
+ "foo:value": [{
+ "@value": "x"
+ }]
+ }]
+ }, {
+ "@graph": [{
+ "foo:value": [{
+ "@value": "y"
+ }]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0095-in.jsonld b/test/jsonld/1.1/expand/0095-in.jsonld
new file mode 100644
index 00000000..bf1c0824
--- /dev/null
+++ b/test/jsonld/1.1/expand/0095-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": [{
+ "@graph": {
+ "value": "x"
+ }
+ }, {
+ "@graph": {
+ "value": "y"
+ }
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0095-out.jsonld b/test/jsonld/1.1/expand/0095-out.jsonld
new file mode 100644
index 00000000..f49ef46f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0095-out.jsonld
@@ -0,0 +1,11 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "@graph": [{"http://example.org/value": [{"@value": "x"}]}]
+ }]
+ }, {
+ "@graph": [{
+ "@graph": [{"http://example.org/value": [{"@value": "y"}]}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0096-in.jsonld b/test/jsonld/1.1/expand/0096-in.jsonld
new file mode 100644
index 00000000..4c7c6f45
--- /dev/null
+++ b/test/jsonld/1.1/expand/0096-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": {"value": "x"},
+ "g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0096-out.jsonld b/test/jsonld/1.1/expand/0096-out.jsonld
new file mode 100644
index 00000000..6788bb49
--- /dev/null
+++ b/test/jsonld/1.1/expand/0096-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0097-in.jsonld b/test/jsonld/1.1/expand/0097-in.jsonld
new file mode 100644
index 00000000..dc5b9003
--- /dev/null
+++ b/test/jsonld/1.1/expand/0097-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index", "@set"]}
+ },
+ "input": {
+ "g1": {"value": "x"},
+ "g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0097-out.jsonld b/test/jsonld/1.1/expand/0097-out.jsonld
new file mode 100644
index 00000000..6788bb49
--- /dev/null
+++ b/test/jsonld/1.1/expand/0097-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0098-in.jsonld b/test/jsonld/1.1/expand/0098-in.jsonld
new file mode 100644
index 00000000..27ae04b7
--- /dev/null
+++ b/test/jsonld/1.1/expand/0098-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": {"@graph": {"value": "x"}},
+ "g2": {"@graph": {"value": "y"}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0098-out.jsonld b/test/jsonld/1.1/expand/0098-out.jsonld
new file mode 100644
index 00000000..6788bb49
--- /dev/null
+++ b/test/jsonld/1.1/expand/0098-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0099-in.jsonld b/test/jsonld/1.1/expand/0099-in.jsonld
new file mode 100644
index 00000000..0010e0aa
--- /dev/null
+++ b/test/jsonld/1.1/expand/0099-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {"value": "x"},
+ "http://example.com/g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0099-out.jsonld b/test/jsonld/1.1/expand/0099-out.jsonld
new file mode 100644
index 00000000..45ce037e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0099-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@id": "http://example.com/g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0100-in.jsonld b/test/jsonld/1.1/expand/0100-in.jsonld
new file mode 100644
index 00000000..43d3528f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0100-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id", "@set"]}
+ },
+ "input": {
+ "http://example.com/g1": {"value": "x"},
+ "http://example.com/g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0100-out.jsonld b/test/jsonld/1.1/expand/0100-out.jsonld
new file mode 100644
index 00000000..45ce037e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0100-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@id": "http://example.com/g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0101-in.jsonld b/test/jsonld/1.1/expand/0101-in.jsonld
new file mode 100644
index 00000000..cf605565
--- /dev/null
+++ b/test/jsonld/1.1/expand/0101-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {
+ "@graph": {
+ "value": "x"
+ }
+ },
+ "http://example.com/g2": {
+ "@graph": {
+ "value": "y"
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0101-out.jsonld b/test/jsonld/1.1/expand/0101-out.jsonld
new file mode 100644
index 00000000..45ce037e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0101-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@id": "http://example.com/g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0102-in.jsonld b/test/jsonld/1.1/expand/0102-in.jsonld
new file mode 100644
index 00000000..cac7b7f6
--- /dev/null
+++ b/test/jsonld/1.1/expand/0102-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": {
+ "@graph": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0102-out.jsonld b/test/jsonld/1.1/expand/0102-out.jsonld
new file mode 100644
index 00000000..25c0f50e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0102-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [
+ {
+ "@graph": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }, {
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+ }
+ ]
+}]
diff --git a/test/jsonld/1.1/expand/0103-in.jsonld b/test/jsonld/1.1/expand/0103-in.jsonld
new file mode 100644
index 00000000..bf1c0824
--- /dev/null
+++ b/test/jsonld/1.1/expand/0103-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": [{
+ "@graph": {
+ "value": "x"
+ }
+ }, {
+ "@graph": {
+ "value": "y"
+ }
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0103-out.jsonld b/test/jsonld/1.1/expand/0103-out.jsonld
new file mode 100644
index 00000000..5c29ced1
--- /dev/null
+++ b/test/jsonld/1.1/expand/0103-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [
+ {
+ "@graph": [{
+ "@graph": [{"http://example.org/value": [{"@value": "x"}]}]
+ }]
+ }, {
+ "@graph": [{
+ "@graph": [{"http://example.org/value": [{"@value": "y"}]}]
+ }]
+ }
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0104-in.jsonld b/test/jsonld/1.1/expand/0104-in.jsonld
new file mode 100644
index 00000000..7e8d19c3
--- /dev/null
+++ b/test/jsonld/1.1/expand/0104-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": [
+ {"@graph": {"value": "x"}},
+ {"value": "y"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0104-out.jsonld b/test/jsonld/1.1/expand/0104-out.jsonld
new file mode 100644
index 00000000..77761d9b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0104-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [
+ {
+ "@graph": [{
+ "@graph": [{"http://example.org/value": [{"@value": "x"}]}]
+ }]
+ }, {
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0105-in.jsonld b/test/jsonld/1.1/expand/0105-in.jsonld
new file mode 100644
index 00000000..bcad0c63
--- /dev/null
+++ b/test/jsonld/1.1/expand/0105-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": [{"@graph": {"value": "x"}}, {"value": "y"}],
+ "g2": [{"@graph": {"value": "a"}}, {"value": "b"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0105-out.jsonld b/test/jsonld/1.1/expand/0105-out.jsonld
new file mode 100644
index 00000000..27d2cd88
--- /dev/null
+++ b/test/jsonld/1.1/expand/0105-out.jsonld
@@ -0,0 +1,23 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "a"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "b"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0106-in.jsonld b/test/jsonld/1.1/expand/0106-in.jsonld
new file mode 100644
index 00000000..cf605565
--- /dev/null
+++ b/test/jsonld/1.1/expand/0106-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {
+ "@graph": {
+ "value": "x"
+ }
+ },
+ "http://example.com/g2": {
+ "@graph": {
+ "value": "y"
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0106-out.jsonld b/test/jsonld/1.1/expand/0106-out.jsonld
new file mode 100644
index 00000000..45ce037e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0106-out.jsonld
@@ -0,0 +1,13 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@id": "http://example.com/g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0107-in.jsonld b/test/jsonld/1.1/expand/0107-in.jsonld
new file mode 100644
index 00000000..3e1c5afa
--- /dev/null
+++ b/test/jsonld/1.1/expand/0107-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": [{"value": "x"}, {"value": "y"}],
+ "g2": [{"value": "a"}, {"value": "b"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0107-out.jsonld b/test/jsonld/1.1/expand/0107-out.jsonld
new file mode 100644
index 00000000..27d2cd88
--- /dev/null
+++ b/test/jsonld/1.1/expand/0107-out.jsonld
@@ -0,0 +1,23 @@
+[{
+ "http://example.org/input": [{
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@index": "g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "a"}]
+ }]
+ }, {
+ "@index": "g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "b"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0108-in.jsonld b/test/jsonld/1.1/expand/0108-in.jsonld
new file mode 100644
index 00000000..182c031d
--- /dev/null
+++ b/test/jsonld/1.1/expand/0108-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": [{"value": "x"}, {"value": "y"}],
+ "http://example.com/g2": [{"value": "a"}, {"value": "b"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0108-out.jsonld b/test/jsonld/1.1/expand/0108-out.jsonld
new file mode 100644
index 00000000..a11e1d72
--- /dev/null
+++ b/test/jsonld/1.1/expand/0108-out.jsonld
@@ -0,0 +1,23 @@
+[{
+ "http://example.org/input": [{
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }, {
+ "@id": "http://example.com/g1",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "y"}]
+ }]
+ }, {
+ "@id": "http://example.com/g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "a"}]
+ }]
+ }, {
+ "@id": "http://example.com/g2",
+ "@graph": [{
+ "http://example.org/value": [{"@value": "b"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0109-in.jsonld b/test/jsonld/1.1/expand/0109-in.jsonld
new file mode 100644
index 00000000..7fa22658
--- /dev/null
+++ b/test/jsonld/1.1/expand/0109-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@base": "https://ex.org/",
+ "u": {"@id": "urn:u:", "@type": "@id"}
+ },
+ "u": ["#Test", "#Test:2"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0109-out.jsonld b/test/jsonld/1.1/expand/0109-out.jsonld
new file mode 100644
index 00000000..3a632e05
--- /dev/null
+++ b/test/jsonld/1.1/expand/0109-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "urn:u:": [
+ {"@id": "https://ex.org/#Test"},
+ {"@id": "https://ex.org/#Test:2"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0110-in.jsonld b/test/jsonld/1.1/expand/0110-in.jsonld
new file mode 100644
index 00000000..a6f1e676
--- /dev/null
+++ b/test/jsonld/1.1/expand/0110-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": "/relative"
+ },
+ "@id": "relativePropertyIris",
+ "link": "link",
+ "#fragment-works": "#fragment-works",
+ "?query=works": "?query=works",
+ "./": "./",
+ "../": "../",
+ "../parent": "../parent",
+ "../../parent-parent-eq-root": "../../parent-parent-eq-root",
+ "../../../../../still-root": "../../../../../still-root",
+ "../.././.././../../too-many-dots": "../.././.././../../too-many-dots",
+ "/absolute": "/absolute",
+ "//example.org/scheme-relative": "//example.org/scheme-relative"
+}
diff --git a/test/jsonld/1.1/expand/0110-out.jsonld b/test/jsonld/1.1/expand/0110-out.jsonld
new file mode 100644
index 00000000..c93ab5ea
--- /dev/null
+++ b/test/jsonld/1.1/expand/0110-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/some/deep/directory/and/file/relativePropertyIris",
+ "http://example.com/relative#fragment-works": [{"@value": "#fragment-works"}],
+ "http://example.com/relative../": [{"@value": "../"}],
+ "http://example.com/relative../../../../../still-root": [{"@value": "../../../../../still-root"}],
+ "http://example.com/relative../.././.././../../too-many-dots": [{"@value": "../.././.././../../too-many-dots"}],
+ "http://example.com/relative../../parent-parent-eq-root": [{"@value": "../../parent-parent-eq-root"}],
+ "http://example.com/relative../parent": [{"@value": "../parent"}],
+ "http://example.com/relative./": [{"@value": "./"}],
+ "http://example.com/relative//example.org/scheme-relative": [{"@value": "//example.org/scheme-relative"}],
+ "http://example.com/relative/absolute": [{"@value": "/absolute"}],
+ "http://example.com/relative?query=works": [{"@value": "?query=works"}],
+ "http://example.com/relativelink": [{"@value": "link"}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0111-in.jsonld b/test/jsonld/1.1/expand/0111-in.jsonld
new file mode 100644
index 00000000..f5118d3f
--- /dev/null
+++ b/test/jsonld/1.1/expand/0111-in.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": "http://example.com/vocabulary/"
+ }, {
+ "@vocab": "./rel2#"
+ }],
+ "@id": "relativePropertyIris",
+ "link": "link",
+ "#fragment-works": "#fragment-works",
+ "?query=works": "?query=works",
+ "./": "./",
+ "../": "../",
+ "../parent": "../parent",
+ "../../parent-parent-eq-root": "../../parent-parent-eq-root",
+ "../../../../../still-root": "../../../../../still-root",
+ "../.././.././../../too-many-dots": "../.././.././../../too-many-dots",
+ "/absolute": "/absolute",
+ "//example.org/scheme-relative": "//example.org/scheme-relative"
+}
diff --git a/test/jsonld/1.1/expand/0111-out.jsonld b/test/jsonld/1.1/expand/0111-out.jsonld
new file mode 100644
index 00000000..8febce3b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0111-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/some/deep/directory/and/file/relativePropertyIris",
+ "http://example.com/vocabulary/./rel2##fragment-works": [{"@value": "#fragment-works"}],
+ "http://example.com/vocabulary/./rel2#../": [{"@value": "../"}],
+ "http://example.com/vocabulary/./rel2#../../../../../still-root": [{"@value": "../../../../../still-root"}],
+ "http://example.com/vocabulary/./rel2#../.././.././../../too-many-dots": [{"@value": "../.././.././../../too-many-dots"}],
+ "http://example.com/vocabulary/./rel2#../../parent-parent-eq-root": [{"@value": "../../parent-parent-eq-root"}],
+ "http://example.com/vocabulary/./rel2#../parent": [{"@value": "../parent"}],
+ "http://example.com/vocabulary/./rel2#./": [{"@value": "./"}],
+ "http://example.com/vocabulary/./rel2#//example.org/scheme-relative": [{"@value": "//example.org/scheme-relative"}],
+ "http://example.com/vocabulary/./rel2#/absolute": [{"@value": "/absolute"}],
+ "http://example.com/vocabulary/./rel2#?query=works": [{"@value": "?query=works"}],
+ "http://example.com/vocabulary/./rel2#link": [{"@value": "link"}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0112-in.jsonld b/test/jsonld/1.1/expand/0112-in.jsonld
new file mode 100644
index 00000000..660f5f1b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0112-in.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": "/rel1"
+ }, {
+ "@vocab": "./rel2#"
+ }],
+ "@id": "relativePropertyIris",
+ "link": "link",
+ "#fragment-works": "#fragment-works",
+ "?query=works": "?query=works",
+ "./": "./",
+ "../": "../",
+ "../parent": "../parent",
+ "../../parent-parent-eq-root": "../../parent-parent-eq-root",
+ "../../../../../still-root": "../../../../../still-root",
+ "../.././.././../../too-many-dots": "../.././.././../../too-many-dots",
+ "/absolute": "/absolute",
+ "//example.org/scheme-relative": "//example.org/scheme-relative"
+}
diff --git a/test/jsonld/1.1/expand/0112-out.jsonld b/test/jsonld/1.1/expand/0112-out.jsonld
new file mode 100644
index 00000000..07fe15c4
--- /dev/null
+++ b/test/jsonld/1.1/expand/0112-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/some/deep/directory/and/file/relativePropertyIris",
+ "http://example.com/rel1./rel2##fragment-works": [{"@value": "#fragment-works"}],
+ "http://example.com/rel1./rel2#../": [{"@value": "../"}],
+ "http://example.com/rel1./rel2#../../../../../still-root": [{"@value": "../../../../../still-root"}],
+ "http://example.com/rel1./rel2#../.././.././../../too-many-dots": [{"@value": "../.././.././../../too-many-dots"}],
+ "http://example.com/rel1./rel2#../../parent-parent-eq-root": [{"@value": "../../parent-parent-eq-root"}],
+ "http://example.com/rel1./rel2#../parent": [{"@value": "../parent"}],
+ "http://example.com/rel1./rel2#./": [{"@value": "./"}],
+ "http://example.com/rel1./rel2#//example.org/scheme-relative": [{"@value": "//example.org/scheme-relative"}],
+ "http://example.com/rel1./rel2#/absolute": [{"@value": "/absolute"}],
+ "http://example.com/rel1./rel2#?query=works": [{"@value": "?query=works"}],
+ "http://example.com/rel1./rel2#link": [{"@value": "link"}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0113-in.jsonld b/test/jsonld/1.1/expand/0113-in.jsonld
new file mode 100644
index 00000000..0e26a9df
--- /dev/null
+++ b/test/jsonld/1.1/expand/0113-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "valueOf": "http://example.org/valueOf",
+ "toString": "http://example.org/toString"
+ },
+ "valueOf": "first",
+ "toString": "second"
+}
diff --git a/test/jsonld/1.1/expand/0113-out.jsonld b/test/jsonld/1.1/expand/0113-out.jsonld
new file mode 100644
index 00000000..7f7af084
--- /dev/null
+++ b/test/jsonld/1.1/expand/0113-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "http://example.org/toString": [
+ {
+ "@value": "second"
+ }
+ ],
+ "http://example.org/valueOf": [
+ {
+ "@value": "first"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0114-in.jsonld b/test/jsonld/1.1/expand/0114-in.jsonld
new file mode 100644
index 00000000..82443b96
--- /dev/null
+++ b/test/jsonld/1.1/expand/0114-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "type1": "@type",
+ "type2": "@type"
+ },
+ "type1": "Type1",
+ "type2": "Type2"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0114-out.jsonld b/test/jsonld/1.1/expand/0114-out.jsonld
new file mode 100644
index 00000000..0f20a86b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0114-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "@type": ["http://example.org/Type1", "http://example.org/Type2"]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0115-in.jsonld b/test/jsonld/1.1/expand/0115-in.jsonld
new file mode 100644
index 00000000..b2feca59
--- /dev/null
+++ b/test/jsonld/1.1/expand/0115-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": ""
+ },
+ "@id": "relativePropertyIris",
+ "link": "link"
+}
diff --git a/test/jsonld/1.1/expand/0116-in.jsonld b/test/jsonld/1.1/expand/0116-in.jsonld
new file mode 100644
index 00000000..4f953753
--- /dev/null
+++ b/test/jsonld/1.1/expand/0116-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": "/relative"
+ },
+ "@id": "relativePropertyIris",
+ "link": "link"
+}
diff --git a/test/jsonld/1.1/expand/0117-in.jsonld b/test/jsonld/1.1/expand/0117-in.jsonld
new file mode 100644
index 00000000..c2f5ca35
--- /dev/null
+++ b/test/jsonld/1.1/expand/0117-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/vocab",
+ ":term": {"@type": "@id"}
+ },
+ ":term": "http://example.org/base"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0117-out.jsonld b/test/jsonld/1.1/expand/0117-out.jsonld
new file mode 100644
index 00000000..960fab4a
--- /dev/null
+++ b/test/jsonld/1.1/expand/0117-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab:term": [{"@id": "http://example.org/base"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0118-in.jsonld b/test/jsonld/1.1/expand/0118-in.jsonld
new file mode 100644
index 00000000..96a5d71d
--- /dev/null
+++ b/test/jsonld/1.1/expand/0118-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {"@vocab": "http://schema.org/"},
+ "@id": "foo:bar-id",
+ "@type": "foo:bar-type",
+ "foo:bar": "is an absolute iri property",
+ "term": "is schema.org/term",
+ ":fish": "is schema.org/:fish"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0118-out.jsonld b/test/jsonld/1.1/expand/0118-out.jsonld
new file mode 100644
index 00000000..388145ad
--- /dev/null
+++ b/test/jsonld/1.1/expand/0118-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "foo:bar-id",
+ "@type": ["foo:bar-type"],
+ "foo:bar": [{"@value": "is an absolute iri property"}],
+ "http://schema.org/term": [{"@value": "is schema.org/term"}],
+ "http://schema.org/:fish": [{"@value": "is schema.org/:fish"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0119-in.jsonld b/test/jsonld/1.1/expand/0119-in.jsonld
new file mode 100644
index 00000000..e1d2459e
--- /dev/null
+++ b/test/jsonld/1.1/expand/0119-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@": "http://example.org/vocab/at",
+ "@foo.bar": "http://example.org/vocab/foo.bar",
+ "@ignoreMe": "http://example.org/vocab/ignoreMe"
+ },
+ "@": "allowed",
+ "@foo.bar": "allowed",
+ "@ignoreMe": "ignored"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0119-out.jsonld b/test/jsonld/1.1/expand/0119-out.jsonld
new file mode 100644
index 00000000..ea7c93a9
--- /dev/null
+++ b/test/jsonld/1.1/expand/0119-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example.org/vocab/at": [{"@value": "allowed"}],
+ "http://example.org/vocab/foo.bar": [{"@value": "allowed"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0120-in.jsonld b/test/jsonld/1.1/expand/0120-in.jsonld
new file mode 100644
index 00000000..171f431c
--- /dev/null
+++ b/test/jsonld/1.1/expand/0120-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.orb/vocab/",
+ "at": {"@id": "@"},
+ "foo.bar": {"@id": "@foo.bar"},
+ "ignoreMe": {"@id": "@ignoreMe"}
+ },
+ "at": "allowed",
+ "foo.bar": "allowed",
+ "ignoreMe": "resolves to @vocab"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0120-out.jsonld b/test/jsonld/1.1/expand/0120-out.jsonld
new file mode 100644
index 00000000..b154e014
--- /dev/null
+++ b/test/jsonld/1.1/expand/0120-out.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example.orb/vocab/@": [{"@value": "allowed"}],
+ "http://example.orb/vocab/@foo.bar": [{"@value": "allowed"}],
+ "http://example.orb/vocab/ignoreMe": [{"@value": "resolves to @vocab"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0121-in.jsonld b/test/jsonld/1.1/expand/0121-in.jsonld
new file mode 100644
index 00000000..1b7f7fb2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0121-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@base": "http://example.org/",
+ "@vocab": "http://example.org/vocab/",
+ "at": {"@reverse": "@"},
+ "foo.bar": {"@reverse": "@foo.bar"}
+ },
+ "@id": "foo",
+ "at": {"@id": "allowed"},
+ "foo.bar": {"@id": "allowed"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0121-out.jsonld b/test/jsonld/1.1/expand/0121-out.jsonld
new file mode 100644
index 00000000..cccb9567
--- /dev/null
+++ b/test/jsonld/1.1/expand/0121-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "http://example.org/foo",
+ "@reverse": {
+ "http://example.org/vocab/@": [{"@id": "http://example.org/allowed"}],
+ "http://example.org/vocab/@foo.bar": [{"@id": "http://example.org/allowed"}]
+ }
+}]
diff --git a/test/jsonld/1.1/expand/0122-in.jsonld b/test/jsonld/1.1/expand/0122-in.jsonld
new file mode 100644
index 00000000..528bf335
--- /dev/null
+++ b/test/jsonld/1.1/expand/0122-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@base": "http://example.org/"
+ },
+ "http://example.org/vocab/at": {"@id": "@"},
+ "http://example.org/vocab/foo.bar": {"@id": "@foo.bar"},
+ "http://example.org/vocab/ignoreme": {"@id": "@ignoreMe"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0122-out.jsonld b/test/jsonld/1.1/expand/0122-out.jsonld
new file mode 100644
index 00000000..cf6aa365
--- /dev/null
+++ b/test/jsonld/1.1/expand/0122-out.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example.org/vocab/at": [{"@id": "http://example.org/@"}],
+ "http://example.org/vocab/foo.bar": [{"@id": "http://example.org/@foo.bar"}],
+ "http://example.org/vocab/ignoreme": [{"@id": null}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0123-in.jsonld b/test/jsonld/1.1/expand/0123-in.jsonld
new file mode 100644
index 00000000..41a7a8b2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0123-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.com/foo",
+ "http://example.com/bar": {"@value": "bar", "@type": "http://example.com/baz z"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/0124-in.jsonld b/test/jsonld/1.1/expand/0124-in.jsonld
new file mode 100644
index 00000000..ac16aaf2
--- /dev/null
+++ b/test/jsonld/1.1/expand/0124-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": [
+ {
+ "@version": 1.1,
+ "ex": {
+ "@id": "http://example.org/",
+ "@prefix": true
+ }
+ },
+ {
+ "@vocab": "ex:ns/"
+ }
+ ],
+ "foo": "bar"
+}
diff --git a/test/jsonld/1.1/expand/0124-out.jsonld b/test/jsonld/1.1/expand/0124-out.jsonld
new file mode 100644
index 00000000..84f89a4c
--- /dev/null
+++ b/test/jsonld/1.1/expand/0124-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "http://example.org/ns/foo": [
+ {
+ "@value": "bar"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0125-in.jsonld b/test/jsonld/1.1/expand/0125-in.jsonld
new file mode 100644
index 00000000..92b3ef61
--- /dev/null
+++ b/test/jsonld/1.1/expand/0125-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": [
+ {
+ "@version": 1.1,
+ "ex": {
+ "@id": "http://example.org/",
+ "@prefix": true
+ }
+ },
+ {
+ "@vocab": "ex"
+ }
+ ],
+ "foo": "bar"
+}
diff --git a/test/jsonld/1.1/expand/0125-out.jsonld b/test/jsonld/1.1/expand/0125-out.jsonld
new file mode 100644
index 00000000..23e2700c
--- /dev/null
+++ b/test/jsonld/1.1/expand/0125-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "http://example.org/foo": [
+ {
+ "@value": "bar"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0126-context.jsonld b/test/jsonld/1.1/expand/0126-context.jsonld
new file mode 100644
index 00000000..928397cb
--- /dev/null
+++ b/test/jsonld/1.1/expand/0126-context.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "prop": {
+ "@id": "ex:prop",
+ "@context": "0126-context.jsonld"
+ },
+ "value": {
+ "@id": "ex:value"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/0126-in.jsonld b/test/jsonld/1.1/expand/0126-in.jsonld
new file mode 100644
index 00000000..b36e1085
--- /dev/null
+++ b/test/jsonld/1.1/expand/0126-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": "0126-context.jsonld",
+ "@id": "ex:id",
+ "prop": {
+ "value": "v"
+ }
+}
diff --git a/test/jsonld/1.1/expand/0126-out.jsonld b/test/jsonld/1.1/expand/0126-out.jsonld
new file mode 100644
index 00000000..bdf762a6
--- /dev/null
+++ b/test/jsonld/1.1/expand/0126-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "ex:id",
+ "ex:prop": [
+ {
+ "ex:value": [
+ {
+ "@value": "v"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0127-context-1.jsonld b/test/jsonld/1.1/expand/0127-context-1.jsonld
new file mode 100644
index 00000000..80615617
--- /dev/null
+++ b/test/jsonld/1.1/expand/0127-context-1.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "prop": {
+ "@id": "ex:prop",
+ "@context": "0127-context-2.jsonld"
+ },
+ "value": {
+ "@id": "ex:value"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/0127-context-2.jsonld b/test/jsonld/1.1/expand/0127-context-2.jsonld
new file mode 100644
index 00000000..2d23df43
--- /dev/null
+++ b/test/jsonld/1.1/expand/0127-context-2.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "0127-context-1.jsonld"
+}
diff --git a/test/jsonld/1.1/expand/0127-in.jsonld b/test/jsonld/1.1/expand/0127-in.jsonld
new file mode 100644
index 00000000..3b5668fd
--- /dev/null
+++ b/test/jsonld/1.1/expand/0127-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": "0127-context-1.jsonld",
+ "@id": "ex:id",
+ "prop": {
+ "value": "v"
+ }
+}
diff --git a/test/jsonld/1.1/expand/0127-out.jsonld b/test/jsonld/1.1/expand/0127-out.jsonld
new file mode 100644
index 00000000..bdf762a6
--- /dev/null
+++ b/test/jsonld/1.1/expand/0127-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "ex:id",
+ "ex:prop": [
+ {
+ "ex:value": [
+ {
+ "@value": "v"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0128-context-1.jsonld b/test/jsonld/1.1/expand/0128-context-1.jsonld
new file mode 100644
index 00000000..9d520ad8
--- /dev/null
+++ b/test/jsonld/1.1/expand/0128-context-1.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "0128-context-3.jsonld"
+}
diff --git a/test/jsonld/1.1/expand/0128-context-2.jsonld b/test/jsonld/1.1/expand/0128-context-2.jsonld
new file mode 100644
index 00000000..9d520ad8
--- /dev/null
+++ b/test/jsonld/1.1/expand/0128-context-2.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "0128-context-3.jsonld"
+}
diff --git a/test/jsonld/1.1/expand/0128-context-3.jsonld b/test/jsonld/1.1/expand/0128-context-3.jsonld
new file mode 100644
index 00000000..31bcb7b8
--- /dev/null
+++ b/test/jsonld/1.1/expand/0128-context-3.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "prop": {
+ "@id": "ex:prop",
+ "@context": "0128-context-3.jsonld"
+ },
+ "value": {
+ "@id": "ex:value"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/0128-in.jsonld b/test/jsonld/1.1/expand/0128-in.jsonld
new file mode 100644
index 00000000..8ef7fafa
--- /dev/null
+++ b/test/jsonld/1.1/expand/0128-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": [
+ "0128-context-1.jsonld",
+ "0128-context-2.jsonld"
+ ],
+ "@id": "ex:id",
+ "prop": {
+ "value": "v"
+ }
+}
diff --git a/test/jsonld/1.1/expand/0128-out.jsonld b/test/jsonld/1.1/expand/0128-out.jsonld
new file mode 100644
index 00000000..bdf762a6
--- /dev/null
+++ b/test/jsonld/1.1/expand/0128-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "ex:id",
+ "ex:prop": [
+ {
+ "ex:value": [
+ {
+ "@value": "v"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/0129-in.jsonld b/test/jsonld/1.1/expand/0129-in.jsonld
new file mode 100644
index 00000000..f051010b
--- /dev/null
+++ b/test/jsonld/1.1/expand/0129-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context" : {"@base": "http://example"},
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/expand/0129-out.jsonld b/test/jsonld/1.1/expand/0129-out.jsonld
new file mode 100644
index 00000000..29938598
--- /dev/null
+++ b/test/jsonld/1.1/expand/0129-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example/relative-iri",
+ "http://prop": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/expand/0130-in.jsonld b/test/jsonld/1.1/expand/0130-in.jsonld
new file mode 100644
index 00000000..4c966040
--- /dev/null
+++ b/test/jsonld/1.1/expand/0130-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context" : {"@base": "http://example/base"},
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/expand/0130-out.jsonld b/test/jsonld/1.1/expand/0130-out.jsonld
new file mode 100644
index 00000000..29938598
--- /dev/null
+++ b/test/jsonld/1.1/expand/0130-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example/relative-iri",
+ "http://prop": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/expand/c001-in.jsonld b/test/jsonld/1.1/expand/c001-in.jsonld
new file mode 100644
index 00000000..04c51209
--- /dev/null
+++ b/test/jsonld/1.1/expand/c001-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"bar": "http://example.org/bar"}}
+ },
+ "foo": {
+ "bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c001-out.jsonld b/test/jsonld/1.1/expand/c001-out.jsonld
new file mode 100644
index 00000000..122c864a
--- /dev/null
+++ b/test/jsonld/1.1/expand/c001-out.jsonld
@@ -0,0 +1,5 @@
+[
+ {
+ "http://example/foo": [{"http://example.org/bar": [{"@value": "baz"}]}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c002-in.jsonld b/test/jsonld/1.1/expand/c002-in.jsonld
new file mode 100644
index 00000000..8121cf37
--- /dev/null
+++ b/test/jsonld/1.1/expand/c002-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"bar": {"@type": "@id"}}},
+ "bar": {"@type": "http://www.w3.org/2001/XMLSchema#string"}
+ },
+ "foo": {
+ "bar": "http://example/baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c002-out.jsonld b/test/jsonld/1.1/expand/c002-out.jsonld
new file mode 100644
index 00000000..acd651e0
--- /dev/null
+++ b/test/jsonld/1.1/expand/c002-out.jsonld
@@ -0,0 +1,5 @@
+[
+ {
+ "http://example/foo": [{"http://example/bar": [{"@id": "http://example/baz"}]}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c003-in.jsonld b/test/jsonld/1.1/expand/c003-in.jsonld
new file mode 100644
index 00000000..447ded33
--- /dev/null
+++ b/test/jsonld/1.1/expand/c003-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"Bar": {"@id": "bar"}}}
+ },
+ "foo": {
+ "Bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c003-out.jsonld b/test/jsonld/1.1/expand/c003-out.jsonld
new file mode 100644
index 00000000..020f7a7f
--- /dev/null
+++ b/test/jsonld/1.1/expand/c003-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "http://example/foo": [{
+ "http://example/bar": [
+ {"@value": "baz"}
+ ]}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c004-in.jsonld b/test/jsonld/1.1/expand/c004-in.jsonld
new file mode 100644
index 00000000..c9e450bf
--- /dev/null
+++ b/test/jsonld/1.1/expand/c004-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"baz": {"@type": "@vocab"}}}
+ },
+ "foo": {
+ "bar": {
+ "baz": "buzz"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c004-out.jsonld b/test/jsonld/1.1/expand/c004-out.jsonld
new file mode 100644
index 00000000..c5ae41df
--- /dev/null
+++ b/test/jsonld/1.1/expand/c004-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "http://example/foo": [{
+ "http://example/bar": [{
+ "http://example/baz": [{"@id": "http://example/buzz"}]
+ }]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c005-in.jsonld b/test/jsonld/1.1/expand/c005-in.jsonld
new file mode 100644
index 00000000..faab3202
--- /dev/null
+++ b/test/jsonld/1.1/expand/c005-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "b": {"@context": {"c": "http://example.org/c"}}
+ },
+ "a": {
+ "@context": {"@vocab": "http://example.com/"},
+ "b": {
+ "a": "A in example.com",
+ "c": "C in example.org"
+ },
+ "c": "C in example.com"
+ },
+ "c": "C in example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c005-out.jsonld b/test/jsonld/1.1/expand/c005-out.jsonld
new file mode 100644
index 00000000..b46a9280
--- /dev/null
+++ b/test/jsonld/1.1/expand/c005-out.jsonld
@@ -0,0 +1,10 @@
+[{
+ "http://example/a": [{
+ "http://example.com/c": [{"@value": "C in example.com"}],
+ "http://example/b": [{
+ "http://example.com/a": [{"@value": "A in example.com"}],
+ "http://example.org/c": [{"@value": "C in example.org"}]
+ }]
+ }],
+ "http://example/c": [{"@value": "C in example"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c006-in.jsonld b/test/jsonld/1.1/expand/c006-in.jsonld
new file mode 100644
index 00000000..757aeaa1
--- /dev/null
+++ b/test/jsonld/1.1/expand/c006-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"bar": "http://example.org/bar"}}
+ },
+ "a": {"@type": "Foo", "bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c006-out.jsonld b/test/jsonld/1.1/expand/c006-out.jsonld
new file mode 100644
index 00000000..16baea77
--- /dev/null
+++ b/test/jsonld/1.1/expand/c006-out.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "http://example/a": [{
+ "@type": ["http://example/Foo"],
+ "http://example.org/bar": [{"@value": "baz"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c007-in.jsonld b/test/jsonld/1.1/expand/c007-in.jsonld
new file mode 100644
index 00000000..05c9f1d6
--- /dev/null
+++ b/test/jsonld/1.1/expand/c007-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"bar": {"@type": "@id"}}},
+ "bar": {"@type": "http://www.w3.org/2001/XMLSchema#string"}
+ },
+ "a": {"@type": "Foo", "bar": "http://example/baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c007-out.jsonld b/test/jsonld/1.1/expand/c007-out.jsonld
new file mode 100644
index 00000000..c173b894
--- /dev/null
+++ b/test/jsonld/1.1/expand/c007-out.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "http://example/a": [{
+ "@type": ["http://example/Foo"],
+ "http://example/bar": [{"@id": "http://example/baz"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c008-in.jsonld b/test/jsonld/1.1/expand/c008-in.jsonld
new file mode 100644
index 00000000..e0b472b1
--- /dev/null
+++ b/test/jsonld/1.1/expand/c008-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "type": "@type",
+ "Foo": {"@context": {"bar": "http://example.org/bar"}}
+ },
+ "a": {"type": "Foo", "bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c008-out.jsonld b/test/jsonld/1.1/expand/c008-out.jsonld
new file mode 100644
index 00000000..16baea77
--- /dev/null
+++ b/test/jsonld/1.1/expand/c008-out.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "http://example/a": [{
+ "@type": ["http://example/Foo"],
+ "http://example.org/bar": [{"@value": "baz"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c009-in.jsonld b/test/jsonld/1.1/expand/c009-in.jsonld
new file mode 100644
index 00000000..c2b6d110
--- /dev/null
+++ b/test/jsonld/1.1/expand/c009-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"baz": {"@type": "@vocab"}}}
+ },
+ "@type": "Foo",
+ "bar": {"baz": "buzz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c009-out.jsonld b/test/jsonld/1.1/expand/c009-out.jsonld
new file mode 100644
index 00000000..457f891c
--- /dev/null
+++ b/test/jsonld/1.1/expand/c009-out.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "@type": ["http://example/Foo"],
+ "http://example/bar": [{
+ "http://example/baz": [{"@value": "buzz"}]
+ }]
+ }
+]
diff --git a/test/jsonld/1.1/expand/c010-in.jsonld b/test/jsonld/1.1/expand/c010-in.jsonld
new file mode 100644
index 00000000..809997b5
--- /dev/null
+++ b/test/jsonld/1.1/expand/c010-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "B": {"@context": {"c": "http://example.org/c"}}
+ },
+ "a": {
+ "@context": {"@vocab": "http://example.com/"},
+ "@type": "B",
+ "a": "A in example.com",
+ "c": "C in example.org"
+ },
+ "c": "C in example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c010-out.jsonld b/test/jsonld/1.1/expand/c010-out.jsonld
new file mode 100644
index 00000000..1057b0ad
--- /dev/null
+++ b/test/jsonld/1.1/expand/c010-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example/a": [{
+ "@type": ["http://example/B"],
+ "http://example.com/a": [{"@value": "A in example.com"}],
+ "http://example.org/c": [{"@value": "C in example.org"}]
+ }],
+ "http://example/c": [{"@value": "C in example"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c011-in.jsonld b/test/jsonld/1.1/expand/c011-in.jsonld
new file mode 100644
index 00000000..c57c55eb
--- /dev/null
+++ b/test/jsonld/1.1/expand/c011-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "t1": {"@context": {"foo": {"@id": "http://example.com/foo"}}},
+ "t2": {"@context": {"foo": {"@id": "http://example.org/foo", "@type": "@id"}}}
+ },
+ "@type": ["t2", "t1"],
+ "foo": "urn:bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c011-out.jsonld b/test/jsonld/1.1/expand/c011-out.jsonld
new file mode 100644
index 00000000..a702942a
--- /dev/null
+++ b/test/jsonld/1.1/expand/c011-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "@type": ["http://example/t2", "http://example/t1"],
+ "http://example.org/foo": [
+ {"@id": "urn:bar"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c012-in.jsonld b/test/jsonld/1.1/expand/c012-in.jsonld
new file mode 100644
index 00000000..bba1c9bf
--- /dev/null
+++ b/test/jsonld/1.1/expand/c012-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {
+ "@context": {
+ "bar": {
+ "@context": {
+ "baz": {"@type": "@vocab"}
+ }
+ }
+ }
+ }
+ },
+ "@type": "Foo",
+ "bar": {"baz": "buzz"}
+}
diff --git a/test/jsonld/1.1/expand/c012-out.jsonld b/test/jsonld/1.1/expand/c012-out.jsonld
new file mode 100644
index 00000000..8ff196e6
--- /dev/null
+++ b/test/jsonld/1.1/expand/c012-out.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "@type": ["http://example/Foo"],
+ "http://example/bar": [{
+ "http://example/baz": [{"@id": "http://example/buzz"}]
+ }]
+ }
+]
diff --git a/test/jsonld/1.1/expand/c013-in.jsonld b/test/jsonld/1.1/expand/c013-in.jsonld
new file mode 100644
index 00000000..63c4a0c5
--- /dev/null
+++ b/test/jsonld/1.1/expand/c013-in.jsonld
@@ -0,0 +1,28 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "prop": {"@container": "@index"},
+ "foo": "http://example/base-foo",
+ "Outer": {
+ "@context": {
+ "prop": {
+ "@id": "http://example/outer-prop",
+ "@container": "@type"
+ }
+ }
+ },
+ "Inner": {"@context": {"foo": "http://example/inner-foo"}}
+ },
+ "@type": "Outer",
+ "prop": {
+ "Inner": {
+ "prop": {
+ "index": {
+ "@id": "http://example/inner-with-index",
+ "foo": "inner-foo"
+ }
+ }
+ }
+ },
+ "foo": "base-foo"
+}
diff --git a/test/jsonld/1.1/expand/c013-out.jsonld b/test/jsonld/1.1/expand/c013-out.jsonld
new file mode 100644
index 00000000..a57f9394
--- /dev/null
+++ b/test/jsonld/1.1/expand/c013-out.jsonld
@@ -0,0 +1,12 @@
+[{
+ "@type": ["http://example/Outer"],
+ "http://example/base-foo": [{"@value": "base-foo"}],
+ "http://example/outer-prop": [{
+ "@type": ["http://example/Inner"],
+ "http://example/prop": [{
+ "@id": "http://example/inner-with-index",
+ "@index": "index",
+ "http://example/inner-foo": [{"@value": "inner-foo"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c014-in.jsonld b/test/jsonld/1.1/expand/c014-in.jsonld
new file mode 100644
index 00000000..d89e3012
--- /dev/null
+++ b/test/jsonld/1.1/expand/c014-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": "http://example/foo",
+ "Type": {
+ "@context": [
+ null
+ ]
+ }
+ },
+ "foo": "will-exist",
+ "p": {
+ "@type": "Type",
+ "foo": "will-not-exist"
+ }
+}
diff --git a/test/jsonld/1.1/expand/c014-out.jsonld b/test/jsonld/1.1/expand/c014-out.jsonld
new file mode 100644
index 00000000..5a68fc26
--- /dev/null
+++ b/test/jsonld/1.1/expand/c014-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example/foo": [{
+ "@value": "will-exist"
+ }],
+ "http://example/p": [{
+ "@type": ["http://example/Type"]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/c015-in.jsonld b/test/jsonld/1.1/expand/c015-in.jsonld
new file mode 100644
index 00000000..83bb63d5
--- /dev/null
+++ b/test/jsonld/1.1/expand/c015-in.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": {
+ "@base": "http://example/base-base",
+ "@vocab": "http://example/",
+ "foo": "http://example/foo",
+ "Type": {
+ "@context": {
+ "@base": "http://example/typed-base"
+ }
+ }
+ },
+ "@id": "#base-id",
+ "p": {
+ "@id": "#typed-id",
+ "@type": "Type",
+ "subjectReference": {
+ "@id": "#subject-reference-id"
+ },
+ "nestedNode": {
+ "@id": "#nested-id",
+ "foo": "bar"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/c015-out.jsonld b/test/jsonld/1.1/expand/c015-out.jsonld
new file mode 100644
index 00000000..2f3427a5
--- /dev/null
+++ b/test/jsonld/1.1/expand/c015-out.jsonld
@@ -0,0 +1,16 @@
+[{
+ "@id": "http://example/base-base#base-id",
+ "http://example/p": [{
+ "@id": "http://example/typed-base#typed-id",
+ "@type": ["http://example/Type"],
+ "http://example/subjectReference": [{
+ "@id": "http://example/typed-base#subject-reference-id"
+ }],
+ "http://example/nestedNode": [{
+ "@id": "http://example/base-base#nested-id",
+ "http://example/foo": [{
+ "@value": "bar"
+ }]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/c016-in.jsonld b/test/jsonld/1.1/expand/c016-in.jsonld
new file mode 100644
index 00000000..2f1186ff
--- /dev/null
+++ b/test/jsonld/1.1/expand/c016-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "Type": {
+ "@context": {
+ "@vocab": "http://example.com/"
+ }
+ }
+ },
+ "foo": "org",
+ "p": {
+ "@type": "Type",
+ "foo": "com",
+ "nested": {
+ "nested-prop": "org"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/c016-out.jsonld b/test/jsonld/1.1/expand/c016-out.jsonld
new file mode 100644
index 00000000..37bc728a
--- /dev/null
+++ b/test/jsonld/1.1/expand/c016-out.jsonld
@@ -0,0 +1,16 @@
+[{
+ "http://example.org/foo": [{
+ "@value": "org"
+ }],
+ "http://example.org/p": [{
+ "@type": ["http://example.org/Type"],
+ "http://example.com/foo": [{
+ "@value": "com"
+ }],
+ "http://example.com/nested": [{
+ "http://example.org/nested-prop": [{
+ "@value": "org"
+ }]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/c017-in.jsonld b/test/jsonld/1.1/expand/c017-in.jsonld
new file mode 100644
index 00000000..be32133c
--- /dev/null
+++ b/test/jsonld/1.1/expand/c017-in.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Bar": {
+ "@context": [
+ {
+ "prop": "http://example/bar-prop"
+ }
+ ]
+ },
+ "Foo": {
+ "@context": [
+ {
+ "prop": "http://example/foo-prop"
+ }
+ ]
+ }
+ },
+ "@type": ["Foo", "Bar"],
+ "prop": "foo",
+ "nested": {
+ "prop": "vocab"
+ }
+}
diff --git a/test/jsonld/1.1/expand/c017-out.jsonld b/test/jsonld/1.1/expand/c017-out.jsonld
new file mode 100644
index 00000000..7e7e49d9
--- /dev/null
+++ b/test/jsonld/1.1/expand/c017-out.jsonld
@@ -0,0 +1,14 @@
+[{
+ "@type": [
+ "http://example/Foo",
+ "http://example/Bar"
+ ],
+ "http://example/foo-prop": [{
+ "@value": "foo"
+ }],
+ "http://example/nested": [{
+ "http://example/prop": [{
+ "@value": "vocab"
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/c018-in.jsonld b/test/jsonld/1.1/expand/c018-in.jsonld
new file mode 100644
index 00000000..b8fbd43d
--- /dev/null
+++ b/test/jsonld/1.1/expand/c018-in.jsonld
@@ -0,0 +1,26 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Bar": {
+ "@context": [
+ null,
+ {
+ "prop": "http://example/bar-prop"
+ }
+ ]
+ },
+ "Foo": {
+ "@context": [
+ null,
+ {
+ "prop": "http://example/foo-prop"
+ }
+ ]
+ }
+ },
+ "@type": ["Foo", "Bar"],
+ "prop": "foo",
+ "nested": {
+ "prop": "will-not-exist"
+ }
+}
diff --git a/test/jsonld/1.1/expand/c018-out.jsonld b/test/jsonld/1.1/expand/c018-out.jsonld
new file mode 100644
index 00000000..ee0c79e1
--- /dev/null
+++ b/test/jsonld/1.1/expand/c018-out.jsonld
@@ -0,0 +1,11 @@
+[{
+ "@type": [
+ "http://example/Foo",
+ "http://example/Bar"
+ ],
+ "http://example/foo-prop": [
+ {
+ "@value": "foo"
+ }
+ ]
+}]
diff --git a/test/jsonld/1.1/expand/c019-in.jsonld b/test/jsonld/1.1/expand/c019-in.jsonld
new file mode 100644
index 00000000..418c9cbe
--- /dev/null
+++ b/test/jsonld/1.1/expand/c019-in.jsonld
@@ -0,0 +1,30 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "prop": "http://example/base-prop",
+ "Type": {
+ "@context": {
+ "foo": {
+ "@context": {
+ "prop": "http://example/foo-prop"
+ }
+ },
+ "bar": {
+ "@context": {
+ "prop": "http://example/bar-prop"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Type",
+ "foo": {
+ "prop": "foo"
+ },
+ "bar": {
+ "prop": "bar"
+ },
+ "baz": {
+ "prop": "baz"
+ }
+}
diff --git a/test/jsonld/1.1/expand/c019-out.jsonld b/test/jsonld/1.1/expand/c019-out.jsonld
new file mode 100644
index 00000000..3d25ead3
--- /dev/null
+++ b/test/jsonld/1.1/expand/c019-out.jsonld
@@ -0,0 +1,26 @@
+[{
+ "@type": [
+ "http://example/Type"
+ ],
+ "http://example/foo": [{
+ "http://example/foo-prop": [
+ {
+ "@value": "foo"
+ }
+ ]
+ }],
+ "http://example/bar": [{
+ "http://example/bar-prop": [
+ {
+ "@value": "bar"
+ }
+ ]
+ }],
+ "http://example/baz": [{
+ "http://example/base-prop": [
+ {
+ "@value": "baz"
+ }
+ ]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/c020-in.jsonld b/test/jsonld/1.1/expand/c020-in.jsonld
new file mode 100644
index 00000000..e504c397
--- /dev/null
+++ b/test/jsonld/1.1/expand/c020-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "type": "@type",
+ "Type": {
+ "@context": {
+ "value": "@value"
+ }
+ }
+ },
+ "type": "Type",
+ "v": {
+ "value": "value",
+ "type": "value-type"
+ }
+}
diff --git a/test/jsonld/1.1/expand/c020-out.jsonld b/test/jsonld/1.1/expand/c020-out.jsonld
new file mode 100644
index 00000000..483b9ef0
--- /dev/null
+++ b/test/jsonld/1.1/expand/c020-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@type": ["http://example/Type"],
+ "http://example/v": [{
+ "@type": "http://example/value-type",
+ "@value": "value"
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/c021-in.jsonld b/test/jsonld/1.1/expand/c021-in.jsonld
new file mode 100644
index 00000000..99d78bee
--- /dev/null
+++ b/test/jsonld/1.1/expand/c021-in.jsonld
@@ -0,0 +1,34 @@
+{
+ "@context": {
+ "@vocab": "ex:",
+ "type": "@type",
+ "prop": "ex:untyped",
+ "Type": {
+ "@context": {
+ "prop": "ex:typed",
+ "value": "@value"
+ }
+ }
+ },
+ "prop": {
+ "type": "Type",
+ "prop": [
+ "v1",
+ {
+ "value": "v2"
+ },
+ {
+ "@value": "v3"
+ },
+ {
+ "prop": [
+ "v4",
+ {
+ "type": "Type",
+ "prop": "v5"
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/test/jsonld/1.1/expand/c021-out.jsonld b/test/jsonld/1.1/expand/c021-out.jsonld
new file mode 100644
index 00000000..c3f097e8
--- /dev/null
+++ b/test/jsonld/1.1/expand/c021-out.jsonld
@@ -0,0 +1,19 @@
+[{
+ "ex:untyped": [{
+ "@type": ["ex:Type"],
+ "ex:typed": [{
+ "@value": "v1"
+ }, {
+ "@value": "v2"
+ }, {
+ "@value": "v3"
+ }, {
+ "ex:untyped": [{
+ "@value": "v4"
+ }, {
+ "@type": ["ex:Type"],
+ "ex:typed": [{"@value": "v5"}]
+ }]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/c022-in.jsonld b/test/jsonld/1.1/expand/c022-in.jsonld
new file mode 100644
index 00000000..c5ef4a2e
--- /dev/null
+++ b/test/jsonld/1.1/expand/c022-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "@vocab": "ex:",
+ "Type": {
+ "@context": {
+ "foo": {
+ "@id": "ex:foo",
+ "@type": "@vocab",
+ "@context": {
+ "@version": 1.1,
+ "Foo": "ex:Foo",
+ "Bar": "ex:Bar"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Type",
+ "foo": "Bar"
+}
diff --git a/test/jsonld/1.1/expand/c022-out.jsonld b/test/jsonld/1.1/expand/c022-out.jsonld
new file mode 100644
index 00000000..d77a5f5a
--- /dev/null
+++ b/test/jsonld/1.1/expand/c022-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@type": ["ex:Type"],
+ "ex:foo": [{"@id": "ex:Bar"}]
+}]
diff --git a/test/jsonld/1.1/expand/c023-in.jsonld b/test/jsonld/1.1/expand/c023-in.jsonld
new file mode 100644
index 00000000..94272f95
--- /dev/null
+++ b/test/jsonld/1.1/expand/c023-in.jsonld
@@ -0,0 +1,29 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": "ex:nested"
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "@version": 1.1,
+ "foo": {
+ "@id": "ex:foo",
+ "@type": "@vocab",
+ "@context": {
+ "Foo": "ex:Foo"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Outer",
+ "nested": {
+ "@type": "Inner",
+ "foo": "Foo"
+ }
+}
diff --git a/test/jsonld/1.1/expand/c023-out.jsonld b/test/jsonld/1.1/expand/c023-out.jsonld
new file mode 100644
index 00000000..3e47445a
--- /dev/null
+++ b/test/jsonld/1.1/expand/c023-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@type": ["ex:Outer"],
+ "ex:nested": [{
+ "@type": ["ex:Inner"],
+ "ex:foo": [{"@id": "ex:Foo"}]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/c024-in.jsonld b/test/jsonld/1.1/expand/c024-in.jsonld
new file mode 100644
index 00000000..d647c554
--- /dev/null
+++ b/test/jsonld/1.1/expand/c024-in.jsonld
@@ -0,0 +1,39 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": "ex:nested"
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "@version": 1.1,
+ "foo": {
+ "@id": "ex:foo",
+ "@container": "@set",
+ "@type": "ex:Number",
+ "@context": {
+ "value": "@value"
+ }
+ },
+ "bar": {
+ "@id": "ex:bar",
+ "@container": "@set",
+ "@type": "@id",
+ "@context": {
+ "@base": "http://example/"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Outer",
+ "nested": {
+ "@type": "Inner",
+ "foo": [{"value": "1"}, "2"],
+ "bar": [{"@id": "a"}, "b"]
+ }
+}
diff --git a/test/jsonld/1.1/expand/c024-out.jsonld b/test/jsonld/1.1/expand/c024-out.jsonld
new file mode 100644
index 00000000..ef901dbd
--- /dev/null
+++ b/test/jsonld/1.1/expand/c024-out.jsonld
@@ -0,0 +1,14 @@
+[{
+ "@type": ["ex:Outer"],
+ "ex:nested": [{
+ "@type": ["ex:Inner"],
+ "ex:foo": [
+ {"@value": "1"},
+ {"@type": "ex:Number", "@value": "2"}
+ ],
+ "ex:bar": [
+ {"@id": "http://example/a"},
+ {"@id": "http://example/b"}
+ ]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/c025-in.jsonld b/test/jsonld/1.1/expand/c025-in.jsonld
new file mode 100644
index 00000000..aa9b1fc7
--- /dev/null
+++ b/test/jsonld/1.1/expand/c025-in.jsonld
@@ -0,0 +1,27 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "type": "@type",
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": {
+ "@id": "ex:nested",
+ "@type": "@id",
+ "@container": "@graph"
+ }
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "foo": "ex:foo"
+ }
+ }
+ },
+ "type": "Outer",
+ "nested": {
+ "type": "Inner",
+ "foo": "bar"
+ }
+}
diff --git a/test/jsonld/1.1/expand/c025-out.jsonld b/test/jsonld/1.1/expand/c025-out.jsonld
new file mode 100644
index 00000000..d8246465
--- /dev/null
+++ b/test/jsonld/1.1/expand/c025-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@type": ["ex:Outer"],
+ "ex:nested": [{
+ "@graph": [{
+ "@type": ["ex:Inner"],
+ "ex:foo": [{"@value": "bar"}]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/c026-in.jsonld b/test/jsonld/1.1/expand/c026-in.jsonld
new file mode 100644
index 00000000..09f08030
--- /dev/null
+++ b/test/jsonld/1.1/expand/c026-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "Foo": {
+ "@context": {
+ "@propagate": true,
+ "baz": {"@type": "@vocab"}
+ }
+ }
+ },
+ "@type": "Foo",
+ "bar": {"baz": "buzz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c026-out.jsonld b/test/jsonld/1.1/expand/c026-out.jsonld
new file mode 100644
index 00000000..8ff196e6
--- /dev/null
+++ b/test/jsonld/1.1/expand/c026-out.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "@type": ["http://example/Foo"],
+ "http://example/bar": [{
+ "http://example/baz": [{"@id": "http://example/buzz"}]
+ }]
+ }
+]
diff --git a/test/jsonld/1.1/expand/c027-in.jsonld b/test/jsonld/1.1/expand/c027-in.jsonld
new file mode 100644
index 00000000..7937a8ee
--- /dev/null
+++ b/test/jsonld/1.1/expand/c027-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "bar": {
+ "@context": {
+ "@propagate": false,
+ "baz": {"@type": "@id"}
+ }
+ }
+ },
+ "bar": {"baz": {"baz": "buzz"}}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c027-out.jsonld b/test/jsonld/1.1/expand/c027-out.jsonld
new file mode 100644
index 00000000..28baae40
--- /dev/null
+++ b/test/jsonld/1.1/expand/c027-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example/bar": [{
+ "http://example/baz": [{
+ "http://example/baz": [{"@value": "buzz"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c028-in.jsonld b/test/jsonld/1.1/expand/c028-in.jsonld
new file mode 100644
index 00000000..87792cd0
--- /dev/null
+++ b/test/jsonld/1.1/expand/c028-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/"
+ },
+ "bar": {
+ "@context": {
+ "@propagate": false,
+ "baz": {"@type": "@vocab"}
+ },
+ "baz": {
+ "baz": "buzz"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c028-out.jsonld b/test/jsonld/1.1/expand/c028-out.jsonld
new file mode 100644
index 00000000..28baae40
--- /dev/null
+++ b/test/jsonld/1.1/expand/c028-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example/bar": [{
+ "http://example/baz": [{
+ "http://example/baz": [{"@value": "buzz"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c029-in.jsonld b/test/jsonld/1.1/expand/c029-in.jsonld
new file mode 100644
index 00000000..cb000cf4
--- /dev/null
+++ b/test/jsonld/1.1/expand/c029-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@propagate": true
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c030-in.jsonld b/test/jsonld/1.1/expand/c030-in.jsonld
new file mode 100644
index 00000000..39d91a17
--- /dev/null
+++ b/test/jsonld/1.1/expand/c030-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@propagate": "not boolean"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c031-context.jsonld b/test/jsonld/1.1/expand/c031-context.jsonld
new file mode 100644
index 00000000..edd71cce
--- /dev/null
+++ b/test/jsonld/1.1/expand/c031-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.org/c/",
+ "inner": {
+ "@id": "http://a.example/in"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/c031-in.jsonld b/test/jsonld/1.1/expand/c031-in.jsonld
new file mode 100644
index 00000000..82d462c8
--- /dev/null
+++ b/test/jsonld/1.1/expand/c031-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": [
+ {"@base": "http://example.org/a/"},
+ "c031/c031-context.jsonld"
+ ],
+ "outer": {
+ "inner": "ab"
+ }
+}
diff --git a/test/jsonld/1.1/expand/c031-out.jsonld b/test/jsonld/1.1/expand/c031-out.jsonld
new file mode 100644
index 00000000..24c88a6d
--- /dev/null
+++ b/test/jsonld/1.1/expand/c031-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "http://a.example/out": [{
+ "http://a.example/in": [{
+ "@value":"ab"
+ }]
+ }]
+ }
+]
diff --git a/test/jsonld/1.1/expand/c031/c031-context.jsonld b/test/jsonld/1.1/expand/c031/c031-context.jsonld
new file mode 100644
index 00000000..f1bf22b1
--- /dev/null
+++ b/test/jsonld/1.1/expand/c031/c031-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.org/b/",
+ "outer": {
+ "@id": "http://a.example/out",
+ "@context": "../c031-context.jsonld"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/c032-in.jsonld b/test/jsonld/1.1/expand/c032-in.jsonld
new file mode 100644
index 00000000..48b812f9
--- /dev/null
+++ b/test/jsonld/1.1/expand/c032-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "t1": {
+ "@id": "ex:t1",
+ "@context": {
+ "t2": {
+ "@context": {"type": null}
+ }
+ }
+ }
+ },
+ "t1": "something"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c033-in.jsonld b/test/jsonld/1.1/expand/c033-in.jsonld
new file mode 100644
index 00000000..3628ff4e
--- /dev/null
+++ b/test/jsonld/1.1/expand/c033-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "t1": {
+ "@id": "ex:t1",
+ "@context": {
+ "t2": {
+ "@context": {"type": null}
+ }
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/c034-context.jsonld b/test/jsonld/1.1/expand/c034-context.jsonld
new file mode 100644
index 00000000..7dd9f871
--- /dev/null
+++ b/test/jsonld/1.1/expand/c034-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "bar": "http://example.org/bar"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c034-in.jsonld b/test/jsonld/1.1/expand/c034-in.jsonld
new file mode 100644
index 00000000..6655d520
--- /dev/null
+++ b/test/jsonld/1.1/expand/c034-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": "c034-context.jsonld"}
+ },
+ "foo": {
+ "bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c034-out.jsonld b/test/jsonld/1.1/expand/c034-out.jsonld
new file mode 100644
index 00000000..122c864a
--- /dev/null
+++ b/test/jsonld/1.1/expand/c034-out.jsonld
@@ -0,0 +1,5 @@
+[
+ {
+ "http://example/foo": [{"http://example.org/bar": [{"@value": "baz"}]}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c035-in.jsonld b/test/jsonld/1.1/expand/c035-in.jsonld
new file mode 100644
index 00000000..f436b93e
--- /dev/null
+++ b/test/jsonld/1.1/expand/c035-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://vocab.org/",
+ "prop1": {}
+ },
+ "@id": "ex:outer",
+ "foo": {
+ "@context": {
+ "@vocab": "http://vocab.override.org/"
+ },
+ "@id": "ex:inner",
+ "prop1": "baz1",
+ "prop2": "baz2"
+ }
+}
diff --git a/test/jsonld/1.1/expand/c035-out.jsonld b/test/jsonld/1.1/expand/c035-out.jsonld
new file mode 100644
index 00000000..deee2a02
--- /dev/null
+++ b/test/jsonld/1.1/expand/c035-out.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "ex:outer",
+ "http://vocab.org/foo": [
+ {
+ "@id": "ex:inner",
+ "http://vocab.org/prop1": [
+ {
+ "@value": "baz1"
+ }
+ ],
+ "http://vocab.override.org/prop2": [
+ {
+ "@value": "baz2"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/c036-in.jsonld b/test/jsonld/1.1/expand/c036-in.jsonld
new file mode 100644
index 00000000..0248eef4
--- /dev/null
+++ b/test/jsonld/1.1/expand/c036-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "thing": {
+ "@id": "ex:thing",
+ "@context": {}
+ },
+ "title": "ex:title"
+ },
+ "title": "top",
+ "thing": {
+ "title": "sub"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c036-out.jsonld b/test/jsonld/1.1/expand/c036-out.jsonld
new file mode 100644
index 00000000..c75a9837
--- /dev/null
+++ b/test/jsonld/1.1/expand/c036-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "ex:title": [{"@value": "top"}
+ ],
+ "ex:thing": [{
+ "ex:title": [{"@value": "sub"}]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c037-in.jsonld b/test/jsonld/1.1/expand/c037-in.jsonld
new file mode 100644
index 00000000..462376b2
--- /dev/null
+++ b/test/jsonld/1.1/expand/c037-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "nest": {
+ "@id": "@nest",
+ "@context": {
+ "@vocab": "http://example.org/nest/"
+ }
+ }
+ },
+ "nest": {
+ "property": "should be in /nest"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c037-out.jsonld b/test/jsonld/1.1/expand/c037-out.jsonld
new file mode 100644
index 00000000..f100f973
--- /dev/null
+++ b/test/jsonld/1.1/expand/c037-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/nest/property": [{"@value": "should be in /nest"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c038-in.jsonld b/test/jsonld/1.1/expand/c038-in.jsonld
new file mode 100644
index 00000000..efc96236
--- /dev/null
+++ b/test/jsonld/1.1/expand/c038-in.jsonld
@@ -0,0 +1,54 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.org/base/",
+ "@vocab": "http://purl.org/dc/terms/",
+ "bibo": "http://purl.org/ontology/bibo/",
+ "Print": "bibo:Book",
+ "name": "http://www.w3.org/2000/01/rdf-schema#label",
+ "instanceOf": "@nest",
+ "contributionByRole": {
+ "@id": "@nest",
+ "@context": {
+ "agent": "@nest",
+ "aut": "creator"
+ }
+ },
+ "provisionActivityByType": {
+ "@id": "@nest",
+ "@context": {
+ "Publication": {
+ "@id": "@nest",
+ "@context": {"date": "published", "agent": "publisher"}
+ }
+ }
+ },
+ "identifiedByType": {
+ "@id": "@nest",
+ "@context": {
+ "Isbn": {"@id": "@nest"},
+ "value": "bibo:isbn"
+ }
+ }
+ },
+ "@id": "book/one",
+ "@type": "Print",
+ "instanceOf": {
+ "contributionByRole": {
+ "aut": {
+ "agent": {"name": "Some Body"}
+ }
+ }
+ },
+ "identifiedByType": {
+ "Isbn": {
+ "value": "1234567890"
+ }
+ },
+ "provisionActivityByType": {
+ "Publication": {
+ "date": "1999",
+ "agent": {"name": "PubCorp"}
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/c038-out.jsonld b/test/jsonld/1.1/expand/c038-out.jsonld
new file mode 100644
index 00000000..de2c1bb0
--- /dev/null
+++ b/test/jsonld/1.1/expand/c038-out.jsonld
@@ -0,0 +1,12 @@
+[{
+ "@id": "http://example.org/base/book/one",
+ "@type": ["http://purl.org/ontology/bibo/Book"],
+ "http://purl.org/dc/terms/creator": [{
+ "http://www.w3.org/2000/01/rdf-schema#label": [{"@value": "Some Body"}]
+ }],
+ "http://purl.org/ontology/bibo/isbn": [{"@value": "1234567890"}],
+ "http://purl.org/dc/terms/published": [{"@value": "1999"}],
+ "http://purl.org/dc/terms/publisher": [{
+ "http://www.w3.org/2000/01/rdf-schema#label": [{"@value": "PubCorp"}]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di01-in.jsonld b/test/jsonld/1.1/expand/di01-in.jsonld
new file mode 100644
index 00000000..ae8217d3
--- /dev/null
+++ b/test/jsonld/1.1/expand/di01-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@direction": "rtl",
+ "ex": "http://example.org/vocab#",
+ "ex:ltr": { "@direction": "ltr" },
+ "ex:none": { "@direction": null }
+ },
+ "ex:rtl": "rtl",
+ "ex:ltr": "ltr",
+ "ex:none": "no direction"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di01-out.jsonld b/test/jsonld/1.1/expand/di01-out.jsonld
new file mode 100644
index 00000000..17709834
--- /dev/null
+++ b/test/jsonld/1.1/expand/di01-out.jsonld
@@ -0,0 +1,7 @@
+[
+ {
+ "http://example.org/vocab#rtl": [{"@value": "rtl", "@direction": "rtl"}],
+ "http://example.org/vocab#ltr": [{"@value": "ltr", "@direction": "ltr"}],
+ "http://example.org/vocab#none": [{"@value": "no direction"}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di02-in.jsonld b/test/jsonld/1.1/expand/di02-in.jsonld
new file mode 100644
index 00000000..379362f5
--- /dev/null
+++ b/test/jsonld/1.1/expand/di02-in.jsonld
@@ -0,0 +1,25 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@language": "en",
+ "@direction": "rtl",
+ "ex": "http://example.org/vocab#",
+ "ex:ltr": { "@direction": "ltr" },
+ "ex:none": { "@direction": null },
+ "ex:german": { "@language": "de" },
+ "ex:nolang": { "@language": null },
+ "ex:german_ltr": { "@language": "de", "@direction": "ltr" },
+ "ex:nolang_ltr": { "@language": null, "@direction": "ltr" },
+ "ex:none_none": { "@language": null, "@direction": null },
+ "ex:german_none": { "@language": "de", "@direction": null }
+ },
+ "ex:rtl": "rtl en",
+ "ex:ltr": "ltr en",
+ "ex:none": "no direction en",
+ "ex:german": "german rtl",
+ "ex:nolang": "no language rtl",
+ "ex:german_ltr": "german ltr",
+ "ex:nolang_ltr": "no language ltr",
+ "ex:none_none": "no language or direction",
+ "ex:german_none": "german no direction"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di02-out.jsonld b/test/jsonld/1.1/expand/di02-out.jsonld
new file mode 100644
index 00000000..77d62249b
--- /dev/null
+++ b/test/jsonld/1.1/expand/di02-out.jsonld
@@ -0,0 +1,13 @@
+[
+ {
+ "http://example.org/vocab#rtl": [{"@value": "rtl en", "@language": "en", "@direction": "rtl"}],
+ "http://example.org/vocab#ltr": [{"@value": "ltr en", "@language": "en", "@direction": "ltr"}],
+ "http://example.org/vocab#none": [{"@value": "no direction en", "@language": "en"}],
+ "http://example.org/vocab#german": [{"@value": "german rtl", "@language": "de", "@direction": "rtl"}],
+ "http://example.org/vocab#nolang": [{"@value": "no language rtl", "@direction": "rtl"}],
+ "http://example.org/vocab#german_ltr": [{"@value": "german ltr", "@language": "de", "@direction": "ltr"}],
+ "http://example.org/vocab#nolang_ltr": [{"@value": "no language ltr", "@direction": "ltr"}],
+ "http://example.org/vocab#none_none": [{"@value": "no language or direction"}],
+ "http://example.org/vocab#german_none": [{"@value": "german no direction", "@language": "de"}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di03-in.jsonld b/test/jsonld/1.1/expand/di03-in.jsonld
new file mode 100644
index 00000000..22ca2005
--- /dev/null
+++ b/test/jsonld/1.1/expand/di03-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "foo_ltr": {"@id": "http://example.com/foo", "@container": "@list", "@direction": "ltr"},
+ "foo_rtl": {"@id": "http://example.com/foo", "@container": "@list", "@direction": "rtl"}
+ },
+ "foo_ltr": ["en"],
+ "foo_rtl": ["ar"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di03-out.jsonld b/test/jsonld/1.1/expand/di03-out.jsonld
new file mode 100644
index 00000000..429aa76f
--- /dev/null
+++ b/test/jsonld/1.1/expand/di03-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.com/foo": [
+ {"@list": [{"@value": "en", "@direction": "ltr"}]},
+ {"@list": [{"@value": "ar", "@direction": "rtl"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di04-in.jsonld b/test/jsonld/1.1/expand/di04-in.jsonld
new file mode 100644
index 00000000..b1cf3f4a
--- /dev/null
+++ b/test/jsonld/1.1/expand/di04-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@direction": "ltr",
+ "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" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di04-out.jsonld b/test/jsonld/1.1/expand/di04-out.jsonld
new file mode 100644
index 00000000..a0b9512c
--- /dev/null
+++ b/test/jsonld/1.1/expand/di04-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "Die Königin", "@language": "de", "@direction": "ltr"},
+ {"@value": "Ihre Majestät", "@language": "de", "@direction": "ltr"},
+ {"@value": "The Queen", "@language": "en", "@direction": "ltr"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di05-in.jsonld b/test/jsonld/1.1/expand/di05-in.jsonld
new file mode 100644
index 00000000..a61d6a93
--- /dev/null
+++ b/test/jsonld/1.1/expand/di05-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": "ltr",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di05-out.jsonld b/test/jsonld/1.1/expand/di05-out.jsonld
new file mode 100644
index 00000000..a0b9512c
--- /dev/null
+++ b/test/jsonld/1.1/expand/di05-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "Die Königin", "@language": "de", "@direction": "ltr"},
+ {"@value": "Ihre Majestät", "@language": "de", "@direction": "ltr"},
+ {"@value": "The Queen", "@language": "en", "@direction": "ltr"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di06-in.jsonld b/test/jsonld/1.1/expand/di06-in.jsonld
new file mode 100644
index 00000000..f8a69db9
--- /dev/null
+++ b/test/jsonld/1.1/expand/di06-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "vocab": "http://example.com/vocab/",
+ "@direction": "rtl",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": "ltr",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di06-out.jsonld b/test/jsonld/1.1/expand/di06-out.jsonld
new file mode 100644
index 00000000..a0b9512c
--- /dev/null
+++ b/test/jsonld/1.1/expand/di06-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "Die Königin", "@language": "de", "@direction": "ltr"},
+ {"@value": "Ihre Majestät", "@language": "de", "@direction": "ltr"},
+ {"@value": "The Queen", "@language": "en", "@direction": "ltr"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di07-in.jsonld b/test/jsonld/1.1/expand/di07-in.jsonld
new file mode 100644
index 00000000..23e90ddd
--- /dev/null
+++ b/test/jsonld/1.1/expand/di07-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "vocab": "http://example.com/vocab/",
+ "@direction": "rtl",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": null,
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di07-out.jsonld b/test/jsonld/1.1/expand/di07-out.jsonld
new file mode 100644
index 00000000..2ba56561
--- /dev/null
+++ b/test/jsonld/1.1/expand/di07-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "Die Königin", "@language": "de"},
+ {"@value": "Ihre Majestät", "@language": "de"},
+ {"@value": "The Queen", "@language": "en"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di08-in.jsonld b/test/jsonld/1.1/expand/di08-in.jsonld
new file mode 100644
index 00000000..de8e61c7
--- /dev/null
+++ b/test/jsonld/1.1/expand/di08-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@direction": "foo"
+ },
+ "vocab:term": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/di09-in.jsonld b/test/jsonld/1.1/expand/di09-in.jsonld
new file mode 100644
index 00000000..31f21d0d
--- /dev/null
+++ b/test/jsonld/1.1/expand/di09-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "ex:p": {
+ "@value": "v",
+ "@type": "ex:t",
+ "@direction": "rtl"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/e003-context.jsonld b/test/jsonld/1.1/expand/e003-context.jsonld
new file mode 100644
index 00000000..8629f916
--- /dev/null
+++ b/test/jsonld/1.1/expand/e003-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "e003-in.jsonld"
+}
diff --git a/test/jsonld/1.1/expand/e052-in.jsonld b/test/jsonld/1.1/expand/e052-in.jsonld
new file mode 100644
index 00000000..7e3013c5
--- /dev/null
+++ b/test/jsonld/1.1/expand/e052-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": "e052-in.jsonld",
+ "@id": "http://example/test#example"
+}
diff --git a/test/jsonld/1.1/expand/e053-context.jsonld b/test/jsonld/1.1/expand/e053-context.jsonld
new file mode 100644
index 00000000..2da63c09
--- /dev/null
+++ b/test/jsonld/1.1/expand/e053-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "e053-in.jsonld"
+}
diff --git a/test/jsonld/1.1/expand/e053-in.jsonld b/test/jsonld/1.1/expand/e053-in.jsonld
new file mode 100644
index 00000000..5f672792
--- /dev/null
+++ b/test/jsonld/1.1/expand/e053-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": "e053-context.jsonld",
+ "@id": "http://example/test#example"
+}
diff --git a/test/jsonld/1.1/expand/e054-context-1.jsonld b/test/jsonld/1.1/expand/e054-context-1.jsonld
new file mode 100644
index 00000000..5f536da4
--- /dev/null
+++ b/test/jsonld/1.1/expand/e054-context-1.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "e054-context-2.jsonld"
+}
diff --git a/test/jsonld/1.1/expand/e054-context-2.jsonld b/test/jsonld/1.1/expand/e054-context-2.jsonld
new file mode 100644
index 00000000..16c05b52
--- /dev/null
+++ b/test/jsonld/1.1/expand/e054-context-2.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "e054-context-1.jsonld"
+}
diff --git a/test/jsonld/1.1/expand/e054-in.jsonld b/test/jsonld/1.1/expand/e054-in.jsonld
new file mode 100644
index 00000000..e3ac866e
--- /dev/null
+++ b/test/jsonld/1.1/expand/e054-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": [
+ "e054-context-1.jsonld",
+ "e054-context-2.jsonld"
+ ],
+ "@id": "ex:id"
+}
diff --git a/test/jsonld/1.1/expand/ec01-in.jsonld b/test/jsonld/1.1/expand/ec01-in.jsonld
new file mode 100644
index 00000000..6ea8d9a1
--- /dev/null
+++ b/test/jsonld/1.1/expand/ec01-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/", "@index": true}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/ec02-in.jsonld b/test/jsonld/1.1/expand/ec02-in.jsonld
new file mode 100644
index 00000000..ce20b960
--- /dev/null
+++ b/test/jsonld/1.1/expand/ec02-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@type": {}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/em01-in.jsonld b/test/jsonld/1.1/expand/em01-in.jsonld
new file mode 100644
index 00000000..ea465394
--- /dev/null
+++ b/test/jsonld/1.1/expand/em01-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@container": "@context"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/en01-in.jsonld b/test/jsonld/1.1/expand/en01-in.jsonld
new file mode 100644
index 00000000..81408e66
--- /dev/null
+++ b/test/jsonld/1.1/expand/en01-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@vocab": "http://example.org/"},
+ "@nest": "This should generate an error"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/en02-in.jsonld b/test/jsonld/1.1/expand/en02-in.jsonld
new file mode 100644
index 00000000..7af5e3b4
--- /dev/null
+++ b/test/jsonld/1.1/expand/en02-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@vocab": "http://example.org/"},
+ "@nest": true
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/en03-in.jsonld b/test/jsonld/1.1/expand/en03-in.jsonld
new file mode 100644
index 00000000..91d33886
--- /dev/null
+++ b/test/jsonld/1.1/expand/en03-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@vocab": "http://example.org/"},
+ "@nest": 1
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/en04-in.jsonld b/test/jsonld/1.1/expand/en04-in.jsonld
new file mode 100644
index 00000000..11e246a3
--- /dev/null
+++ b/test/jsonld/1.1/expand/en04-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@vocab": "http://example.org/"},
+ "@nest": {"@value": "This should generate an error"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/en05-in.jsonld b/test/jsonld/1.1/expand/en05-in.jsonld
new file mode 100644
index 00000000..a33791ca
--- /dev/null
+++ b/test/jsonld/1.1/expand/en05-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@nest": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/en06-in.jsonld b/test/jsonld/1.1/expand/en06-in.jsonld
new file mode 100644
index 00000000..3015c7af
--- /dev/null
+++ b/test/jsonld/1.1/expand/en06-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": {"@reverse": "http://example/term", "@nest": "@nest"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/ep02-in.jsonld b/test/jsonld/1.1/expand/ep02-in.jsonld
new file mode 100644
index 00000000..4caa4695
--- /dev/null
+++ b/test/jsonld/1.1/expand/ep02-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@version": 1.1
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/ep03-in.jsonld b/test/jsonld/1.1/expand/ep03-in.jsonld
new file mode 100644
index 00000000..63c70f63
--- /dev/null
+++ b/test/jsonld/1.1/expand/ep03-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@version": 1.0
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er01-in.jsonld b/test/jsonld/1.1/expand/er01-in.jsonld
new file mode 100644
index 00000000..4d295897
--- /dev/null
+++ b/test/jsonld/1.1/expand/er01-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@type": "@id"
+ },
+ "@type": "http://example.org/type"
+}
diff --git a/test/jsonld/1.1/expand/er02-in.jsonld b/test/jsonld/1.1/expand/er02-in.jsonld
new file mode 100644
index 00000000..64ea5895
--- /dev/null
+++ b/test/jsonld/1.1/expand/er02-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": "er02-in.jsonld",
+ "@id": "http://example/test#example"
+}
diff --git a/test/jsonld/1.1/expand/er03-in.jsonld b/test/jsonld/1.1/expand/er03-in.jsonld
new file mode 100644
index 00000000..524fd18b
--- /dev/null
+++ b/test/jsonld/1.1/expand/er03-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": "er03-in.jsonld",
+ "@id": "http://example/test#example"
+}
diff --git a/test/jsonld/1.1/expand/er04-in.jsonld b/test/jsonld/1.1/expand/er04-in.jsonld
new file mode 100644
index 00000000..77391915
--- /dev/null
+++ b/test/jsonld/1.1/expand/er04-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": "tag:non-dereferencable-iri",
+ "@id": "http://example/test#example"
+}
diff --git a/test/jsonld/1.1/expand/er05-in.jsonld b/test/jsonld/1.1/expand/er05-in.jsonld
new file mode 100644
index 00000000..c1a1be6c
--- /dev/null
+++ b/test/jsonld/1.1/expand/er05-in.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@context": "er05-in.jsonld",
+ "@id": "http://example/test#example"
+}]
diff --git a/test/jsonld/1.1/expand/er06-in.jsonld b/test/jsonld/1.1/expand/er06-in.jsonld
new file mode 100644
index 00000000..f30126f0
--- /dev/null
+++ b/test/jsonld/1.1/expand/er06-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": true,
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er07-in.jsonld b/test/jsonld/1.1/expand/er07-in.jsonld
new file mode 100644
index 00000000..17033fc0
--- /dev/null
+++ b/test/jsonld/1.1/expand/er07-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@base": true},
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er08-in.jsonld b/test/jsonld/1.1/expand/er08-in.jsonld
new file mode 100644
index 00000000..af74aecb
--- /dev/null
+++ b/test/jsonld/1.1/expand/er08-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@vocab": true},
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er09-in.jsonld b/test/jsonld/1.1/expand/er09-in.jsonld
new file mode 100644
index 00000000..d35c6348
--- /dev/null
+++ b/test/jsonld/1.1/expand/er09-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@language": true},
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er10-in.jsonld b/test/jsonld/1.1/expand/er10-in.jsonld
new file mode 100644
index 00000000..f686eac9
--- /dev/null
+++ b/test/jsonld/1.1/expand/er10-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "term:term"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er11-in.jsonld b/test/jsonld/1.1/expand/er11-in.jsonld
new file mode 100644
index 00000000..f42f32d7
--- /dev/null
+++ b/test/jsonld/1.1/expand/er11-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": true
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er12-in.jsonld b/test/jsonld/1.1/expand/er12-in.jsonld
new file mode 100644
index 00000000..5d4295ad
--- /dev/null
+++ b/test/jsonld/1.1/expand/er12-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@type": true}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er13-in.jsonld b/test/jsonld/1.1/expand/er13-in.jsonld
new file mode 100644
index 00000000..9a968432
--- /dev/null
+++ b/test/jsonld/1.1/expand/er13-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@type": "_:not-an-iri"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er14-in.jsonld b/test/jsonld/1.1/expand/er14-in.jsonld
new file mode 100644
index 00000000..c6b1007e
--- /dev/null
+++ b/test/jsonld/1.1/expand/er14-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@reverse": "http://example/reverse"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er15-in.jsonld b/test/jsonld/1.1/expand/er15-in.jsonld
new file mode 100644
index 00000000..2a805bc8
--- /dev/null
+++ b/test/jsonld/1.1/expand/er15-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@reverse": true}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er17-in.jsonld b/test/jsonld/1.1/expand/er17-in.jsonld
new file mode 100644
index 00000000..403acef9
--- /dev/null
+++ b/test/jsonld/1.1/expand/er17-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@reverse": "http://example/reverse", "@container": "@list"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er18-in.jsonld b/test/jsonld/1.1/expand/er18-in.jsonld
new file mode 100644
index 00000000..9a9e2afa
--- /dev/null
+++ b/test/jsonld/1.1/expand/er18-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": true}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er19-in.jsonld b/test/jsonld/1.1/expand/er19-in.jsonld
new file mode 100644
index 00000000..04f67abe
--- /dev/null
+++ b/test/jsonld/1.1/expand/er19-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "@context"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er20-in.jsonld b/test/jsonld/1.1/expand/er20-in.jsonld
new file mode 100644
index 00000000..dff3ba52
--- /dev/null
+++ b/test/jsonld/1.1/expand/er20-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@container": "@set"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er21-in.jsonld b/test/jsonld/1.1/expand/er21-in.jsonld
new file mode 100644
index 00000000..8fdc3753
--- /dev/null
+++ b/test/jsonld/1.1/expand/er21-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@container": "@id"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er22-in.jsonld b/test/jsonld/1.1/expand/er22-in.jsonld
new file mode 100644
index 00000000..37f0e71c
--- /dev/null
+++ b/test/jsonld/1.1/expand/er22-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@language": true}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er23-in.jsonld b/test/jsonld/1.1/expand/er23-in.jsonld
new file mode 100644
index 00000000..3162bb46
--- /dev/null
+++ b/test/jsonld/1.1/expand/er23-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@type": "relative/iri"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er24-in.jsonld b/test/jsonld/1.1/expand/er24-in.jsonld
new file mode 100644
index 00000000..f5e78e4d
--- /dev/null
+++ b/test/jsonld/1.1/expand/er24-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [{"@list": ["baz"]}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er25-in.jsonld b/test/jsonld/1.1/expand/er25-in.jsonld
new file mode 100644
index 00000000..0b66e9af
--- /dev/null
+++ b/test/jsonld/1.1/expand/er25-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@id": "http://example/foo",
+ "@reverse": {
+ "@id": "http://example/bar"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er26-in.jsonld b/test/jsonld/1.1/expand/er26-in.jsonld
new file mode 100644
index 00000000..36a12b8b
--- /dev/null
+++ b/test/jsonld/1.1/expand/er26-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "id": "@id",
+ "ID": "@id"
+ },
+ "id": "http://example/foo",
+ "ID": "http://example/bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er27-in.jsonld b/test/jsonld/1.1/expand/er27-in.jsonld
new file mode 100644
index 00000000..76d36d5a
--- /dev/null
+++ b/test/jsonld/1.1/expand/er27-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@id": true
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er28-in.jsonld b/test/jsonld/1.1/expand/er28-in.jsonld
new file mode 100644
index 00000000..6c8f7762
--- /dev/null
+++ b/test/jsonld/1.1/expand/er28-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@type": true
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er29-in.jsonld b/test/jsonld/1.1/expand/er29-in.jsonld
new file mode 100644
index 00000000..c669c9e5
--- /dev/null
+++ b/test/jsonld/1.1/expand/er29-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/prop": {"@value": ["foo"]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er30-in.jsonld b/test/jsonld/1.1/expand/er30-in.jsonld
new file mode 100644
index 00000000..abba6cee
--- /dev/null
+++ b/test/jsonld/1.1/expand/er30-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/prop": {"@value": "foo", "@language": true}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er31-in.jsonld b/test/jsonld/1.1/expand/er31-in.jsonld
new file mode 100644
index 00000000..f0c5c462
--- /dev/null
+++ b/test/jsonld/1.1/expand/er31-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "http://example.com/vocab/indexMap": {
+ "@value": "simple string",
+ "@language": "en",
+ "@index": true
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er32-in.jsonld b/test/jsonld/1.1/expand/er32-in.jsonld
new file mode 100644
index 00000000..75ec1a87
--- /dev/null
+++ b/test/jsonld/1.1/expand/er32-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.com/foo": {"@list": [{"@list": ["baz"]}]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er33-in.jsonld b/test/jsonld/1.1/expand/er33-in.jsonld
new file mode 100644
index 00000000..a57607fa
--- /dev/null
+++ b/test/jsonld/1.1/expand/er33-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "http://example/prop": {
+ "@reverse": true
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er34-in.jsonld b/test/jsonld/1.1/expand/er34-in.jsonld
new file mode 100644
index 00000000..d48c68b8
--- /dev/null
+++ b/test/jsonld/1.1/expand/er34-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@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": "Dave Longley"
+ }
+}
diff --git a/test/jsonld/1.1/expand/er35-in.jsonld b/test/jsonld/1.1/expand/er35-in.jsonld
new file mode 100644
index 00000000..c523c942
--- /dev/null
+++ b/test/jsonld/1.1/expand/er35-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": true
+ }
+}
diff --git a/test/jsonld/1.1/expand/er36-in.jsonld b/test/jsonld/1.1/expand/er36-in.jsonld
new file mode 100644
index 00000000..8e9ff8b5
--- /dev/null
+++ b/test/jsonld/1.1/expand/er36-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term": {"@reverse": "http://example/reverse"}
+ },
+ "@id": "http://example/foo",
+ "term": {"@list": ["http://example/bar"]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er37-in.jsonld b/test/jsonld/1.1/expand/er37-in.jsonld
new file mode 100644
index 00000000..0a2d1750
--- /dev/null
+++ b/test/jsonld/1.1/expand/er37-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@value": "bar", "@id": "http://example/baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er38-in.jsonld b/test/jsonld/1.1/expand/er38-in.jsonld
new file mode 100644
index 00000000..20d4a7b7
--- /dev/null
+++ b/test/jsonld/1.1/expand/er38-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@value": "bar", "@language": "en", "@type": "http://example/type"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er39-in.jsonld b/test/jsonld/1.1/expand/er39-in.jsonld
new file mode 100644
index 00000000..0d03781b
--- /dev/null
+++ b/test/jsonld/1.1/expand/er39-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@value": true, "@language": "en"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er40-in.jsonld b/test/jsonld/1.1/expand/er40-in.jsonld
new file mode 100644
index 00000000..ea9b6303
--- /dev/null
+++ b/test/jsonld/1.1/expand/er40-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@value": "bar", "@type": "_:dt"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er41-in.jsonld b/test/jsonld/1.1/expand/er41-in.jsonld
new file mode 100644
index 00000000..c7ad513c
--- /dev/null
+++ b/test/jsonld/1.1/expand/er41-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/prop": {"@list": ["foo"], "@id": "http://example/bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er42-in.jsonld b/test/jsonld/1.1/expand/er42-in.jsonld
new file mode 100644
index 00000000..41360255
--- /dev/null
+++ b/test/jsonld/1.1/expand/er42-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@type": {"@container": "@set"}
+ },
+ "@type": "http://example.org/type"
+}
diff --git a/test/jsonld/1.1/expand/er43-in.jsonld b/test/jsonld/1.1/expand/er43-in.jsonld
new file mode 100644
index 00000000..36d8cac7
--- /dev/null
+++ b/test/jsonld/1.1/expand/er43-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/test/jsonld/1.1/expand/er44-in.jsonld b/test/jsonld/1.1/expand/er44-in.jsonld
new file mode 100644
index 00000000..257bd312
--- /dev/null
+++ b/test/jsonld/1.1/expand/er44-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": [
+ {
+ "v": "http://example.com/vocab#",
+ "v:term": "v:somethingElse",
+ "v:termId": { "@id": "v:somethingElseId" }
+ }
+ ],
+ "v:term": "value of v:term",
+ "v:termId": "value of v:termId"
+}
diff --git a/test/jsonld/1.1/expand/er45-in.jsonld b/test/jsonld/1.1/expand/er45-in.jsonld
new file mode 100644
index 00000000..598c43fe
--- /dev/null
+++ b/test/jsonld/1.1/expand/er45-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/test/jsonld/1.1/expand/er48-in.jsonld b/test/jsonld/1.1/expand/er48-in.jsonld
new file mode 100644
index 00000000..c3ad292a
--- /dev/null
+++ b/test/jsonld/1.1/expand/er48-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "./something": "http://example.com/vocab#somethingElse"
+ },
+ "./something": "something"
+}
diff --git a/test/jsonld/1.1/expand/er49-in.jsonld b/test/jsonld/1.1/expand/er49-in.jsonld
new file mode 100644
index 00000000..72c0a72d
--- /dev/null
+++ b/test/jsonld/1.1/expand/er49-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http:/example.org",
+ "./something": {"@type": "@id", "@prefix": true}
+ },
+ "./something": "something"
+}
diff --git a/test/jsonld/1.1/expand/er50-in.jsonld b/test/jsonld/1.1/expand/er50-in.jsonld
new file mode 100644
index 00000000..a54cc667
--- /dev/null
+++ b/test/jsonld/1.1/expand/er50-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "rev": {"@reverse": "not an IRI"}
+ },
+ "@id": "http://example.org/foo",
+ "rev": {"@id": "http://example.org/bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er51-in.jsonld b/test/jsonld/1.1/expand/er51-in.jsonld
new file mode 100644
index 00000000..dc9ace8e
--- /dev/null
+++ b/test/jsonld/1.1/expand/er51-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"value": "@value"},
+ "http://example/prop": {"value": ["foo"]}
+}
diff --git a/test/jsonld/1.1/expand/er52-in.jsonld b/test/jsonld/1.1/expand/er52-in.jsonld
new file mode 100644
index 00000000..3bd32cf3
--- /dev/null
+++ b/test/jsonld/1.1/expand/er52-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term"},
+ "": {"@id": "http://example.org/empty"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er53-in.jsonld b/test/jsonld/1.1/expand/er53-in.jsonld
new file mode 100644
index 00000000..e8ad3ff5
--- /dev/null
+++ b/test/jsonld/1.1/expand/er53-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@prefix": 10}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er54-in.jsonld b/test/jsonld/1.1/expand/er54-in.jsonld
new file mode 100644
index 00000000..6b440ff2
--- /dev/null
+++ b/test/jsonld/1.1/expand/er54-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "ex:prop": {
+ "@value": "value",
+ "@type": ["ex:a", "ex:b"]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/er55-in.jsonld b/test/jsonld/1.1/expand/er55-in.jsonld
new file mode 100644
index 00000000..eb45eeae
--- /dev/null
+++ b/test/jsonld/1.1/expand/er55-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "prop": {
+ "@id": "ex:prop",
+ "@type": ["ex:a", "ex:b"]
+ }
+ },
+ "prop": "value"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/es01-in.jsonld b/test/jsonld/1.1/expand/es01-in.jsonld
new file mode 100644
index 00000000..d014b483
--- /dev/null
+++ b/test/jsonld/1.1/expand/es01-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@container": ["@set"]}
+ },
+ "@id": "http://example/test#example",
+ "term": "foo"
+}
diff --git a/test/jsonld/1.1/expand/es02-in.jsonld b/test/jsonld/1.1/expand/es02-in.jsonld
new file mode 100644
index 00000000..d71e3eb6
--- /dev/null
+++ b/test/jsonld/1.1/expand/es02-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@container": ["@list", "@set"]}
+ },
+ "@id": "http://example/test#example",
+ "term": "foo"
+}
diff --git a/test/jsonld/1.1/expand/in01-in.jsonld b/test/jsonld/1.1/expand/in01-in.jsonld
new file mode 100644
index 00000000..145c36e7
--- /dev/null
+++ b/test/jsonld/1.1/expand/in01-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": [{
+ "prop": "value2"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in01-out.jsonld b/test/jsonld/1.1/expand/in01-out.jsonld
new file mode 100644
index 00000000..2e218830
--- /dev/null
+++ b/test/jsonld/1.1/expand/in01-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/prop": [{"@value": "value"}],
+ "@included": [{
+ "http://example.org/prop": [{"@value": "value2"}]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in02-in.jsonld b/test/jsonld/1.1/expand/in02-in.jsonld
new file mode 100644
index 00000000..a976cce7
--- /dev/null
+++ b/test/jsonld/1.1/expand/in02-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": {
+ "prop": "value2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in02-out.jsonld b/test/jsonld/1.1/expand/in02-out.jsonld
new file mode 100644
index 00000000..2e218830
--- /dev/null
+++ b/test/jsonld/1.1/expand/in02-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/prop": [{"@value": "value"}],
+ "@included": [{
+ "http://example.org/prop": [{"@value": "value2"}]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in03-in.jsonld b/test/jsonld/1.1/expand/in03-in.jsonld
new file mode 100644
index 00000000..ed476d43
--- /dev/null
+++ b/test/jsonld/1.1/expand/in03-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "included1": "@included",
+ "included2": "@included"
+ },
+ "included1": {"prop": "value1"},
+ "included2": {"prop": "value2"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in03-out.jsonld b/test/jsonld/1.1/expand/in03-out.jsonld
new file mode 100644
index 00000000..349be02d
--- /dev/null
+++ b/test/jsonld/1.1/expand/in03-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "@included": [
+ {"http://example.org/prop": [{"@value": "value1"}]},
+ {"http://example.org/prop": [{"@value": "value2"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in04-in.jsonld b/test/jsonld/1.1/expand/in04-in.jsonld
new file mode 100644
index 00000000..2436a454
--- /dev/null
+++ b/test/jsonld/1.1/expand/in04-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": {
+ "prop": "value2",
+ "@included": {
+ "prop": "value3"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in04-out.jsonld b/test/jsonld/1.1/expand/in04-out.jsonld
new file mode 100644
index 00000000..766ef215
--- /dev/null
+++ b/test/jsonld/1.1/expand/in04-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "http://example.org/prop": [{"@value": "value"}],
+ "@included": [{
+ "http://example.org/prop": [{"@value": "value2"}],
+ "@included": [{
+ "http://example.org/prop": [{"@value": "value3"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in05-in.jsonld b/test/jsonld/1.1/expand/in05-in.jsonld
new file mode 100644
index 00000000..b94709b4
--- /dev/null
+++ b/test/jsonld/1.1/expand/in05-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": {
+ "@type": "Foo",
+ "@included": {
+ "@type": "Bar"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in05-out.jsonld b/test/jsonld/1.1/expand/in05-out.jsonld
new file mode 100644
index 00000000..671224bd
--- /dev/null
+++ b/test/jsonld/1.1/expand/in05-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/prop": [{
+ "@type": ["http://example.org/Foo"],
+ "@included": [{
+ "@type": ["http://example.org/Bar"]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in06-in.jsonld b/test/jsonld/1.1/expand/in06-in.jsonld
new file mode 100644
index 00000000..2e5339f5
--- /dev/null
+++ b/test/jsonld/1.1/expand/in06-in.jsonld
@@ -0,0 +1,90 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/vocab#",
+ "@base": "http://example.org/base/",
+ "id": "@id",
+ "type": "@type",
+ "data": "@nest",
+ "attributes": "@nest",
+ "links": "@nest",
+ "relationships": "@nest",
+ "included": "@included",
+ "self": {"@type": "@id"},
+ "related": {"@type": "@id"},
+ "comments": {
+ "@context": {
+ "data": null
+ }
+ }
+ },
+ "data": [{
+ "type": "articles",
+ "id": "1",
+ "attributes": {
+ "title": "JSON:API paints my bikeshed!"
+ },
+ "links": {
+ "self": "http://example.com/articles/1"
+ },
+ "relationships": {
+ "author": {
+ "links": {
+ "self": "http://example.com/articles/1/relationships/author",
+ "related": "http://example.com/articles/1/author"
+ },
+ "data": { "type": "people", "id": "9" }
+ },
+ "comments": {
+ "links": {
+ "self": "http://example.com/articles/1/relationships/comments",
+ "related": "http://example.com/articles/1/comments"
+ },
+ "data": [
+ { "type": "comments", "id": "5" },
+ { "type": "comments", "id": "12" }
+ ]
+ }
+ }
+ }],
+ "included": [{
+ "type": "people",
+ "id": "9",
+ "attributes": {
+ "first-name": "Dan",
+ "last-name": "Gebhardt",
+ "twitter": "dgeb"
+ },
+ "links": {
+ "self": "http://example.com/people/9"
+ }
+ }, {
+ "type": "comments",
+ "id": "5",
+ "attributes": {
+ "body": "First!"
+ },
+ "relationships": {
+ "author": {
+ "data": { "type": "people", "id": "2" }
+ }
+ },
+ "links": {
+ "self": "http://example.com/comments/5"
+ }
+ }, {
+ "type": "comments",
+ "id": "12",
+ "attributes": {
+ "body": "I like XML better"
+ },
+ "relationships": {
+ "author": {
+ "data": { "type": "people", "id": "9" }
+ }
+ },
+ "links": {
+ "self": "http://example.com/comments/12"
+ }
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in06-out.jsonld b/test/jsonld/1.1/expand/in06-out.jsonld
new file mode 100644
index 00000000..73ae7b88
--- /dev/null
+++ b/test/jsonld/1.1/expand/in06-out.jsonld
@@ -0,0 +1,42 @@
+[{
+ "@id": "http://example.org/base/1",
+ "@type": ["http://example.org/vocab#articles"],
+ "http://example.org/vocab#title": [{"@value": "JSON:API paints my bikeshed!"}],
+ "http://example.org/vocab#self": [{"@id": "http://example.com/articles/1"}],
+ "http://example.org/vocab#author": [{
+ "@id": "http://example.org/base/9",
+ "@type": ["http://example.org/vocab#people"],
+ "http://example.org/vocab#self": [{"@id": "http://example.com/articles/1/relationships/author"}],
+ "http://example.org/vocab#related": [{"@id": "http://example.com/articles/1/author"}]
+ }],
+ "http://example.org/vocab#comments": [{
+ "http://example.org/vocab#self": [{"@id": "http://example.com/articles/1/relationships/comments"}],
+ "http://example.org/vocab#related": [{"@id": "http://example.com/articles/1/comments"}]
+ }],
+ "@included": [{
+ "@id": "http://example.org/base/9",
+ "@type": ["http://example.org/vocab#people"],
+ "http://example.org/vocab#first-name": [{"@value": "Dan"}],
+ "http://example.org/vocab#last-name": [{"@value": "Gebhardt"}],
+ "http://example.org/vocab#twitter": [{"@value": "dgeb"}],
+ "http://example.org/vocab#self": [{"@id": "http://example.com/people/9"}]
+ }, {
+ "@id": "http://example.org/base/5",
+ "@type": ["http://example.org/vocab#comments"],
+ "http://example.org/vocab#body": [{"@value": "First!"}],
+ "http://example.org/vocab#author": [{
+ "@id": "http://example.org/base/2",
+ "@type": ["http://example.org/vocab#people"]
+ }],
+ "http://example.org/vocab#self": [{"@id": "http://example.com/comments/5"}]
+ }, {
+ "@id": "http://example.org/base/12",
+ "@type": ["http://example.org/vocab#comments"],
+ "http://example.org/vocab#body": [{"@value": "I like XML better"}],
+ "http://example.org/vocab#author": [{
+ "@id": "http://example.org/base/9",
+ "@type": ["http://example.org/vocab#people"]
+ }],
+ "http://example.org/vocab#self": [{"@id": "http://example.com/comments/12"}]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in07-in.jsonld b/test/jsonld/1.1/expand/in07-in.jsonld
new file mode 100644
index 00000000..b7958e50
--- /dev/null
+++ b/test/jsonld/1.1/expand/in07-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "@included": "string"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in08-in.jsonld b/test/jsonld/1.1/expand/in08-in.jsonld
new file mode 100644
index 00000000..01a245c3
--- /dev/null
+++ b/test/jsonld/1.1/expand/in08-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "@included": {"@value": "value"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/in09-in.jsonld b/test/jsonld/1.1/expand/in09-in.jsonld
new file mode 100644
index 00000000..7ef08559
--- /dev/null
+++ b/test/jsonld/1.1/expand/in09-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "@included": {"@list": ["value"]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js01-in.jsonld b/test/jsonld/1.1/expand/js01-in.jsonld
new file mode 100644
index 00000000..ace09383
--- /dev/null
+++ b/test/jsonld/1.1/expand/js01-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#bool", "@type": "@json"}
+ },
+ "e": true
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js01-out.jsonld b/test/jsonld/1.1/expand/js01-out.jsonld
new file mode 100644
index 00000000..642709fd
--- /dev/null
+++ b/test/jsonld/1.1/expand/js01-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#bool": [{"@value": true, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js02-in.jsonld b/test/jsonld/1.1/expand/js02-in.jsonld
new file mode 100644
index 00000000..65f32bf2
--- /dev/null
+++ b/test/jsonld/1.1/expand/js02-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#bool", "@type": "@json"}
+ },
+ "e": false
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js02-out.jsonld b/test/jsonld/1.1/expand/js02-out.jsonld
new file mode 100644
index 00000000..640d3d29
--- /dev/null
+++ b/test/jsonld/1.1/expand/js02-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#bool": [{"@value": false, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js03-in.jsonld b/test/jsonld/1.1/expand/js03-in.jsonld
new file mode 100644
index 00000000..3f98c4fc
--- /dev/null
+++ b/test/jsonld/1.1/expand/js03-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#double", "@type": "@json"}
+ },
+ "e": 1.23
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js03-out.jsonld b/test/jsonld/1.1/expand/js03-out.jsonld
new file mode 100644
index 00000000..060691ac
--- /dev/null
+++ b/test/jsonld/1.1/expand/js03-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#double": [{"@value": 1.23, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js04-in.jsonld b/test/jsonld/1.1/expand/js04-in.jsonld
new file mode 100644
index 00000000..dfd129c8
--- /dev/null
+++ b/test/jsonld/1.1/expand/js04-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#double", "@type": "@json"}
+ },
+ "e": 0.0e0
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js04-out.jsonld b/test/jsonld/1.1/expand/js04-out.jsonld
new file mode 100644
index 00000000..278b08f0
--- /dev/null
+++ b/test/jsonld/1.1/expand/js04-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#double": [{"@value": 0.0e0, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js05-in.jsonld b/test/jsonld/1.1/expand/js05-in.jsonld
new file mode 100644
index 00000000..22702493
--- /dev/null
+++ b/test/jsonld/1.1/expand/js05-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#integer", "@type": "@json"}
+ },
+ "e": 123
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js05-out.jsonld b/test/jsonld/1.1/expand/js05-out.jsonld
new file mode 100644
index 00000000..364fc8ff
--- /dev/null
+++ b/test/jsonld/1.1/expand/js05-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#integer": [{"@value": 123, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js06-in.jsonld b/test/jsonld/1.1/expand/js06-in.jsonld
new file mode 100644
index 00000000..b0c57352
--- /dev/null
+++ b/test/jsonld/1.1/expand/js06-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#object", "@type": "@json"}
+ },
+ "e": {"foo": "bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js06-out.jsonld b/test/jsonld/1.1/expand/js06-out.jsonld
new file mode 100644
index 00000000..c9df2866
--- /dev/null
+++ b/test/jsonld/1.1/expand/js06-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#object": [{"@value": {"foo": "bar"}, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js07-in.jsonld b/test/jsonld/1.1/expand/js07-in.jsonld
new file mode 100644
index 00000000..8caa6c9f
--- /dev/null
+++ b/test/jsonld/1.1/expand/js07-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#array", "@type": "@json"}
+ },
+ "e": [{"foo": "bar"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js07-out.jsonld b/test/jsonld/1.1/expand/js07-out.jsonld
new file mode 100644
index 00000000..d0b1b28e
--- /dev/null
+++ b/test/jsonld/1.1/expand/js07-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#array": [{"@value": [{"foo": "bar"}], "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js08-in.jsonld b/test/jsonld/1.1/expand/js08-in.jsonld
new file mode 100644
index 00000000..16ae134f
--- /dev/null
+++ b/test/jsonld/1.1/expand/js08-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": [
+ 56,
+ {
+ "d": true,
+ "10": null,
+ "1": [ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js08-out.jsonld b/test/jsonld/1.1/expand/js08-out.jsonld
new file mode 100644
index 00000000..98ecfbd4
--- /dev/null
+++ b/test/jsonld/1.1/expand/js08-out.jsonld
@@ -0,0 +1,17 @@
+[
+ {
+ "http://example.org/vocab#c14n": [
+ {
+ "@type": "@json",
+ "@value": [
+ 56,
+ {
+ "d": true,
+ "10": null,
+ "1": []
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/js09-in.jsonld b/test/jsonld/1.1/expand/js09-in.jsonld
new file mode 100644
index 00000000..3ade2918
--- /dev/null
+++ b/test/jsonld/1.1/expand/js09-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": {
+ "peach": "This sorting order",
+ "péché": "is wrong according to French",
+ "pêche": "but canonicalization MUST",
+ "sin": "ignore locale"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js09-out.jsonld b/test/jsonld/1.1/expand/js09-out.jsonld
new file mode 100644
index 00000000..374c3d39
--- /dev/null
+++ b/test/jsonld/1.1/expand/js09-out.jsonld
@@ -0,0 +1,15 @@
+[
+ {
+ "http://example.org/vocab#c14n": [
+ {
+ "@type": "@json",
+ "@value": {
+ "peach": "This sorting order",
+ "péché": "is wrong according to French",
+ "pêche": "but canonicalization MUST",
+ "sin": "ignore locale"
+ }
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/js10-in.jsonld b/test/jsonld/1.1/expand/js10-in.jsonld
new file mode 100644
index 00000000..5a34da26
--- /dev/null
+++ b/test/jsonld/1.1/expand/js10-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": {
+ "1": {"f": {"f": "hi","F": 5} ," ": 56.0},
+ "10": { },
+ "": "empty",
+ "a": { },
+ "111": [ {"e": "yes","E": "no" } ],
+ "A": { }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js10-out.jsonld b/test/jsonld/1.1/expand/js10-out.jsonld
new file mode 100644
index 00000000..0e0b9554
--- /dev/null
+++ b/test/jsonld/1.1/expand/js10-out.jsonld
@@ -0,0 +1,17 @@
+[
+ {
+ "http://example.org/vocab#c14n": [
+ {
+ "@type": "@json",
+ "@value": {
+ "1": {"f": {"f": "hi","F": 5} ," ": 56.0},
+ "10": { },
+ "": "empty",
+ "a": { },
+ "111": [ {"e": "yes","E": "no" } ],
+ "A": { }
+ }
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/js11-in.jsonld b/test/jsonld/1.1/expand/js11-in.jsonld
new file mode 100644
index 00000000..8f6f20b4
--- /dev/null
+++ b/test/jsonld/1.1/expand/js11-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": {
+ "Unnormalized Unicode":"A\u030a"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js11-out.jsonld b/test/jsonld/1.1/expand/js11-out.jsonld
new file mode 100644
index 00000000..00207665
--- /dev/null
+++ b/test/jsonld/1.1/expand/js11-out.jsonld
@@ -0,0 +1,12 @@
+[
+ {
+ "http://example.org/vocab#c14n": [
+ {
+ "@type": "@json",
+ "@value": {
+ "Unnormalized Unicode":"A\u030a"
+ }
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/js12-in.jsonld b/test/jsonld/1.1/expand/js12-in.jsonld
new file mode 100644
index 00000000..325b874a
--- /dev/null
+++ b/test/jsonld/1.1/expand/js12-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": {
+ "numbers": [333333333.33333329, 1E30, 4.50, 2e-3, 0.000000000000000000000000001],
+ "string": "\u20ac$\u000F\u000aA'\u0042\u0022\u005c\\\"\/",
+ "literals": [null, true, false]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js12-out.jsonld b/test/jsonld/1.1/expand/js12-out.jsonld
new file mode 100644
index 00000000..a0170d5b
--- /dev/null
+++ b/test/jsonld/1.1/expand/js12-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "http://example.org/vocab#c14n": [
+ {
+ "@type": "@json",
+ "@value": {
+ "numbers": [333333333.33333329, 1E30, 4.50, 2e-3, 0.000000000000000000000000001],
+ "string": "\u20ac$\u000F\u000aA'\u0042\u0022\u005c\\\"\/",
+ "literals": [null, true, false]
+ }
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/js13-in.jsonld b/test/jsonld/1.1/expand/js13-in.jsonld
new file mode 100644
index 00000000..dc476ae9
--- /dev/null
+++ b/test/jsonld/1.1/expand/js13-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": {
+ "\u20ac": "Euro Sign",
+ "\r": "Carriage Return",
+ "\u000a": "Newline",
+ "1": "One",
+ "\u0080": "Control\u007f",
+ "\ud83d\ude02": "Smiley",
+ "\u00f6": "Latin Small Letter O With Diaeresis",
+ "</script>": "Browser Challenge"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js13-out.jsonld b/test/jsonld/1.1/expand/js13-out.jsonld
new file mode 100644
index 00000000..39c27375
--- /dev/null
+++ b/test/jsonld/1.1/expand/js13-out.jsonld
@@ -0,0 +1,19 @@
+[
+ {
+ "http://example.org/vocab#c14n": [
+ {
+ "@type": "@json",
+ "@value": {
+ "\u20ac": "Euro Sign",
+ "\r": "Carriage Return",
+ "\u000a": "Newline",
+ "1": "One",
+ "\u0080": "Control\u007f",
+ "\ud83d\ude02": "Smiley",
+ "\u00f6": "Latin Small Letter O With Diaeresis",
+ "</script>": "Browser Challenge"
+ }
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/js14-in.jsonld b/test/jsonld/1.1/expand/js14-in.jsonld
new file mode 100644
index 00000000..837a69a4
--- /dev/null
+++ b/test/jsonld/1.1/expand/js14-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#array", "@type": "@json"}
+ },
+ "e": [{"e": "bar"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js14-out.jsonld b/test/jsonld/1.1/expand/js14-out.jsonld
new file mode 100644
index 00000000..a20f5d8e
--- /dev/null
+++ b/test/jsonld/1.1/expand/js14-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#array": [{"@value": [{"e": "bar"}], "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js15-in.jsonld b/test/jsonld/1.1/expand/js15-in.jsonld
new file mode 100644
index 00000000..cc9820a5
--- /dev/null
+++ b/test/jsonld/1.1/expand/js15-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.org/vocab#object": [{"@value": {"foo": "bar"}, "@type": "@json"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js15-out.jsonld b/test/jsonld/1.1/expand/js15-out.jsonld
new file mode 100644
index 00000000..c9df2866
--- /dev/null
+++ b/test/jsonld/1.1/expand/js15-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#object": [{"@value": {"foo": "bar"}, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js16-in.jsonld b/test/jsonld/1.1/expand/js16-in.jsonld
new file mode 100644
index 00000000..e40669f3
--- /dev/null
+++ b/test/jsonld/1.1/expand/js16-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@version": 1.1, "value": "@value", "type": "@type", "json": "@json"},
+ "http://example.org/vocab#object": [{"value": {"foo": "bar"}, "type": "json"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js16-out.jsonld b/test/jsonld/1.1/expand/js16-out.jsonld
new file mode 100644
index 00000000..c9df2866
--- /dev/null
+++ b/test/jsonld/1.1/expand/js16-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/vocab#object": [{"@value": {"foo": "bar"}, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js17-in.jsonld b/test/jsonld/1.1/expand/js17-in.jsonld
new file mode 100644
index 00000000..08fc84f7
--- /dev/null
+++ b/test/jsonld/1.1/expand/js17-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#string", "@type": "@json"}
+ },
+ "e": "string"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js17-out.jsonld b/test/jsonld/1.1/expand/js17-out.jsonld
new file mode 100644
index 00000000..56ae74fc
--- /dev/null
+++ b/test/jsonld/1.1/expand/js17-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/vocab#string": [{
+ "@value": "string",
+ "@type": "@json"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js18-in.jsonld b/test/jsonld/1.1/expand/js18-in.jsonld
new file mode 100644
index 00000000..56411149
--- /dev/null
+++ b/test/jsonld/1.1/expand/js18-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#null", "@type": "@json"}
+ },
+ "e": null
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js18-out.jsonld b/test/jsonld/1.1/expand/js18-out.jsonld
new file mode 100644
index 00000000..5efe8b14
--- /dev/null
+++ b/test/jsonld/1.1/expand/js18-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/vocab#null": [{
+ "@value": null,
+ "@type": "@json"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js19-in.jsonld b/test/jsonld/1.1/expand/js19-in.jsonld
new file mode 100644
index 00000000..7da97503
--- /dev/null
+++ b/test/jsonld/1.1/expand/js19-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "type": "@type"
+ },
+ "ex:foo": {
+ "type": "@json",
+ "@value": {
+ "test": 1
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/js19-out.jsonld b/test/jsonld/1.1/expand/js19-out.jsonld
new file mode 100644
index 00000000..da4939cc
--- /dev/null
+++ b/test/jsonld/1.1/expand/js19-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "ex:foo": [{
+ "@type": "@json",
+ "@value": {
+ "test": 1
+ }
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/js20-in.jsonld b/test/jsonld/1.1/expand/js20-in.jsonld
new file mode 100644
index 00000000..f1799a35
--- /dev/null
+++ b/test/jsonld/1.1/expand/js20-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "value": "@value"
+ },
+ "ex:foo": {
+ "@type": "@json",
+ "value": {
+ "test": 1
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/js20-out.jsonld b/test/jsonld/1.1/expand/js20-out.jsonld
new file mode 100644
index 00000000..da4939cc
--- /dev/null
+++ b/test/jsonld/1.1/expand/js20-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "ex:foo": [{
+ "@type": "@json",
+ "@value": {
+ "test": 1
+ }
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/js21-in.jsonld b/test/jsonld/1.1/expand/js21-in.jsonld
new file mode 100644
index 00000000..85ccb0cd
--- /dev/null
+++ b/test/jsonld/1.1/expand/js21-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "ex:foo": {
+ "@type": "@json"
+ }
+ },
+ "ex:foo": {
+ "@context": "ex:not:a:context",
+ "test": 1
+ }
+}
diff --git a/test/jsonld/1.1/expand/js21-out.jsonld b/test/jsonld/1.1/expand/js21-out.jsonld
new file mode 100644
index 00000000..8509c9cf
--- /dev/null
+++ b/test/jsonld/1.1/expand/js21-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "ex:foo": [{
+ "@type": "@json",
+ "@value": {
+ "@context": "ex:not:a:context",
+ "test": 1
+ }
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/js22-in.jsonld b/test/jsonld/1.1/expand/js22-in.jsonld
new file mode 100644
index 00000000..7d2d4320
--- /dev/null
+++ b/test/jsonld/1.1/expand/js22-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.org/vocab#null": {"@value": null, "@type": "@json"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js22-out.jsonld b/test/jsonld/1.1/expand/js22-out.jsonld
new file mode 100644
index 00000000..5efe8b14
--- /dev/null
+++ b/test/jsonld/1.1/expand/js22-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/vocab#null": [{
+ "@value": null,
+ "@type": "@json"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js23-in.jsonld b/test/jsonld/1.1/expand/js23-in.jsonld
new file mode 100644
index 00000000..d45cd202
--- /dev/null
+++ b/test/jsonld/1.1/expand/js23-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.org/vocab#null": {"@value": [], "@type": "@json"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/js23-out.jsonld b/test/jsonld/1.1/expand/js23-out.jsonld
new file mode 100644
index 00000000..d08dd980
--- /dev/null
+++ b/test/jsonld/1.1/expand/js23-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/vocab#null": [{
+ "@value": [],
+ "@type": "@json"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/l001-in.jsonld b/test/jsonld/1.1/expand/l001-in.jsonld
new file mode 100644
index 00000000..6f4bd00b
--- /dev/null
+++ b/test/jsonld/1.1/expand/l001-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": null,
+ "de": [ "Die Königin", null ]
+ }
+}
diff --git a/test/jsonld/1.1/expand/l001-out.jsonld b/test/jsonld/1.1/expand/l001-out.jsonld
new file mode 100644
index 00000000..09860adc
--- /dev/null
+++ b/test/jsonld/1.1/expand/l001-out.jsonld
@@ -0,0 +1,12 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label":
+ [
+ {
+ "@value": "Die Königin",
+ "@language": "de"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/li01-in.jsonld b/test/jsonld/1.1/expand/li01-in.jsonld
new file mode 100644
index 00000000..75ec1a87
--- /dev/null
+++ b/test/jsonld/1.1/expand/li01-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.com/foo": {"@list": [{"@list": ["baz"]}]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li01-out.jsonld b/test/jsonld/1.1/expand/li01-out.jsonld
new file mode 100644
index 00000000..998c20a6
--- /dev/null
+++ b/test/jsonld/1.1/expand/li01-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": [{"@value": "baz"}]}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li02-in.jsonld b/test/jsonld/1.1/expand/li02-in.jsonld
new file mode 100644
index 00000000..4be9f2e8
--- /dev/null
+++ b/test/jsonld/1.1/expand/li02-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.com/foo": {"@list": [{"@list": []}]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li02-out.jsonld b/test/jsonld/1.1/expand/li02-out.jsonld
new file mode 100644
index 00000000..e7737504
--- /dev/null
+++ b/test/jsonld/1.1/expand/li02-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": []}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li03-in.jsonld b/test/jsonld/1.1/expand/li03-in.jsonld
new file mode 100644
index 00000000..f5e78e4d
--- /dev/null
+++ b/test/jsonld/1.1/expand/li03-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [{"@list": ["baz"]}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li03-out.jsonld b/test/jsonld/1.1/expand/li03-out.jsonld
new file mode 100644
index 00000000..998c20a6
--- /dev/null
+++ b/test/jsonld/1.1/expand/li03-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": [{"@value": "baz"}]}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li04-in.jsonld b/test/jsonld/1.1/expand/li04-in.jsonld
new file mode 100644
index 00000000..437398a9
--- /dev/null
+++ b/test/jsonld/1.1/expand/li04-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [{"@list": []}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li04-out.jsonld b/test/jsonld/1.1/expand/li04-out.jsonld
new file mode 100644
index 00000000..e7737504
--- /dev/null
+++ b/test/jsonld/1.1/expand/li04-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": []}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li05-in.jsonld b/test/jsonld/1.1/expand/li05-in.jsonld
new file mode 100644
index 00000000..e38ec8ce
--- /dev/null
+++ b/test/jsonld/1.1/expand/li05-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [["baz"]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li05-out.jsonld b/test/jsonld/1.1/expand/li05-out.jsonld
new file mode 100644
index 00000000..998c20a6
--- /dev/null
+++ b/test/jsonld/1.1/expand/li05-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": [{"@value": "baz"}]}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li06-in.jsonld b/test/jsonld/1.1/expand/li06-in.jsonld
new file mode 100644
index 00000000..81c8b23e
--- /dev/null
+++ b/test/jsonld/1.1/expand/li06-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [[]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li06-out.jsonld b/test/jsonld/1.1/expand/li06-out.jsonld
new file mode 100644
index 00000000..e7737504
--- /dev/null
+++ b/test/jsonld/1.1/expand/li06-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": []}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li07-in.jsonld b/test/jsonld/1.1/expand/li07-in.jsonld
new file mode 100644
index 00000000..e01353af
--- /dev/null
+++ b/test/jsonld/1.1/expand/li07-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [[["baz"]]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li07-out.jsonld b/test/jsonld/1.1/expand/li07-out.jsonld
new file mode 100644
index 00000000..329a79c9
--- /dev/null
+++ b/test/jsonld/1.1/expand/li07-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": [{"@list": [{"@value": "baz"}]}]}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li08-in.jsonld b/test/jsonld/1.1/expand/li08-in.jsonld
new file mode 100644
index 00000000..b14f5623
--- /dev/null
+++ b/test/jsonld/1.1/expand/li08-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [[[]]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li08-out.jsonld b/test/jsonld/1.1/expand/li08-out.jsonld
new file mode 100644
index 00000000..0b125baf
--- /dev/null
+++ b/test/jsonld/1.1/expand/li08-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": [{"@list": []}]}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li09-in.jsonld b/test/jsonld/1.1/expand/li09-in.jsonld
new file mode 100644
index 00000000..58aea4aa
--- /dev/null
+++ b/test/jsonld/1.1/expand/li09-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [["a"], ["b"]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li09-out.jsonld b/test/jsonld/1.1/expand/li09-out.jsonld
new file mode 100644
index 00000000..bb6227d1
--- /dev/null
+++ b/test/jsonld/1.1/expand/li09-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.com/foo": [{"@list": [
+ {"@list": [{"@value": "a"}]},
+ {"@list": [{"@value": "b"}]}
+ ]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li10-in.jsonld b/test/jsonld/1.1/expand/li10-in.jsonld
new file mode 100644
index 00000000..b1db13b1
--- /dev/null
+++ b/test/jsonld/1.1/expand/li10-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [["a"], "b"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/li10-out.jsonld b/test/jsonld/1.1/expand/li10-out.jsonld
new file mode 100644
index 00000000..1d5c3bed
--- /dev/null
+++ b/test/jsonld/1.1/expand/li10-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.com/foo": [{"@list": [
+ {"@list": [{"@value": "a"}]},
+ {"@value": "b"}
+ ]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m001-in.jsonld b/test/jsonld/1.1/expand/m001-in.jsonld
new file mode 100644
index 00000000..81a736c7
--- /dev/null
+++ b/test/jsonld/1.1/expand/m001-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"}
+ },
+ "idmap": {
+ "http://example.org/foo": {"label": "Object with @id <foo>"},
+ "_:bar": {"label": "Object with @id _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m001-out.jsonld b/test/jsonld/1.1/expand/m001-out.jsonld
new file mode 100644
index 00000000..c44d5e63
--- /dev/null
+++ b/test/jsonld/1.1/expand/m001-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/idmap": [
+ {"http://example/label": [{"@value": "Object with @id _:bar"}], "@id": "_:bar"},
+ {"http://example/label": [{"@value": "Object with @id <foo>"}], "@id": "http://example.org/foo"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m002-in.jsonld b/test/jsonld/1.1/expand/m002-in.jsonld
new file mode 100644
index 00000000..1134f16b
--- /dev/null
+++ b/test/jsonld/1.1/expand/m002-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"}
+ },
+ "idmap": {
+ "http://example.org/foo": {"@id": "http://example.org/bar", "label": "Object with @id <foo>"},
+ "_:bar": {"@id": "_:foo", "label": "Object with @id _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m002-out.jsonld b/test/jsonld/1.1/expand/m002-out.jsonld
new file mode 100644
index 00000000..274bb8c7
--- /dev/null
+++ b/test/jsonld/1.1/expand/m002-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/idmap": [
+ {"@id": "_:foo", "http://example/label": [{"@value": "Object with @id _:bar"}]},
+ {"@id": "http://example.org/bar", "http://example/label": [{"@value": "Object with @id <foo>"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m003-in.jsonld b/test/jsonld/1.1/expand/m003-in.jsonld
new file mode 100644
index 00000000..f79d87a6
--- /dev/null
+++ b/test/jsonld/1.1/expand/m003-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ },
+ "typemap": {
+ "http://example.org/foo": {"label": "Object with @type <foo>"},
+ "_:bar": {"label": "Object with @type _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m003-out.jsonld b/test/jsonld/1.1/expand/m003-out.jsonld
new file mode 100644
index 00000000..ecdfc449
--- /dev/null
+++ b/test/jsonld/1.1/expand/m003-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/typemap": [
+ {"http://example/label": [{"@value": "Object with @type _:bar"}], "@type": ["_:bar"]},
+ {"http://example/label": [{"@value": "Object with @type <foo>"}], "@type": ["http://example.org/foo"]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m004-in.jsonld b/test/jsonld/1.1/expand/m004-in.jsonld
new file mode 100644
index 00000000..b75a0ff8
--- /dev/null
+++ b/test/jsonld/1.1/expand/m004-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ },
+ "typemap": {
+ "http://example.org/foo": {"@type": "http://example.org/bar", "label": "Object with @type <foo>"},
+ "_:bar": {"@type": "_:foo", "label": "Object with @type _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m004-out.jsonld b/test/jsonld/1.1/expand/m004-out.jsonld
new file mode 100644
index 00000000..f35a9a88
--- /dev/null
+++ b/test/jsonld/1.1/expand/m004-out.jsonld
@@ -0,0 +1,12 @@
+[{
+ "http://example/typemap": [
+ {
+ "@type": ["_:bar", "_:foo"],
+ "http://example/label": [{"@value": "Object with @type _:bar"}]
+ },
+ {
+ "@type": ["http://example.org/foo", "http://example.org/bar"],
+ "http://example/label": [{"@value": "Object with @type <foo>"}]
+ }
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m005-in.jsonld b/test/jsonld/1.1/expand/m005-in.jsonld
new file mode 100644
index 00000000..e7de76b9
--- /dev/null
+++ b/test/jsonld/1.1/expand/m005-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"}
+ },
+ "idmap": {
+ "foo": {"label": "Object with @id <foo>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m005-out.jsonld b/test/jsonld/1.1/expand/m005-out.jsonld
new file mode 100644
index 00000000..fe15d637
--- /dev/null
+++ b/test/jsonld/1.1/expand/m005-out.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/idmap": [
+ {"http://example/label": [{"@value": "Object with @id <foo>"}], "@id": "http://example.org/foo"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m006-in.jsonld b/test/jsonld/1.1/expand/m006-in.jsonld
new file mode 100644
index 00000000..ce359b45
--- /dev/null
+++ b/test/jsonld/1.1/expand/m006-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ },
+ "typemap": {
+ "Foo": {"label": "Object with @type <foo>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m006-out.jsonld b/test/jsonld/1.1/expand/m006-out.jsonld
new file mode 100644
index 00000000..a6cfccfe
--- /dev/null
+++ b/test/jsonld/1.1/expand/m006-out.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/typemap": [
+ {"http://example/label": [{"@value": "Object with @type <foo>"}], "@type": ["http://example/Foo"]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m007-in.jsonld b/test/jsonld/1.1/expand/m007-in.jsonld
new file mode 100644
index 00000000..a660b729
--- /dev/null
+++ b/test/jsonld/1.1/expand/m007-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"},
+ "label": "http://example/label"
+ },
+ "typemap": {
+ "Foo": {"label": "Object with @type <foo>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m007-out.jsonld b/test/jsonld/1.1/expand/m007-out.jsonld
new file mode 100644
index 00000000..a6cfccfe
--- /dev/null
+++ b/test/jsonld/1.1/expand/m007-out.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/typemap": [
+ {"http://example/label": [{"@value": "Object with @type <foo>"}], "@type": ["http://example/Foo"]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m008-in.jsonld b/test/jsonld/1.1/expand/m008-in.jsonld
new file mode 100644
index 00000000..3e48d6e6
--- /dev/null
+++ b/test/jsonld/1.1/expand/m008-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"},
+ "Type": {"@context": {"a": "http://example.org/a"}}
+ },
+ "typemap": {
+ "Type": {"a": "Object with @type <Type>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m008-out.jsonld b/test/jsonld/1.1/expand/m008-out.jsonld
new file mode 100644
index 00000000..e1da44ee
--- /dev/null
+++ b/test/jsonld/1.1/expand/m008-out.jsonld
@@ -0,0 +1,5 @@
+[{
+ "http://example/typemap": [
+ {"http://example.org/a": [{"@value": "Object with @type <Type>"}], "@type": ["http://example/Type"]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m009-in.jsonld b/test/jsonld/1.1/expand/m009-in.jsonld
new file mode 100644
index 00000000..510a5700
--- /dev/null
+++ b/test/jsonld/1.1/expand/m009-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@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" ],
+ "@none": "The Queen"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m009-out.jsonld b/test/jsonld/1.1/expand/m009-out.jsonld
new file mode 100644
index 00000000..94293f57
--- /dev/null
+++ b/test/jsonld/1.1/expand/m009-out.jsonld
@@ -0,0 +1,11 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "The Queen"},
+ {"@value": "Die Königin", "@language": "de"},
+ {"@value": "Ihre Majestät", "@language": "de"},
+ {"@value": "The Queen", "@language": "en"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m010-in.jsonld b/test/jsonld/1.1/expand/m010-in.jsonld
new file mode 100644
index 00000000..adc8cac3
--- /dev/null
+++ b/test/jsonld/1.1/expand/m010-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@container": "@language"
+ },
+ "none": "@none"
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ],
+ "none": "The Queen"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m010-out.jsonld b/test/jsonld/1.1/expand/m010-out.jsonld
new file mode 100644
index 00000000..9295bdb4
--- /dev/null
+++ b/test/jsonld/1.1/expand/m010-out.jsonld
@@ -0,0 +1,11 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {"@value": "Die Königin", "@language": "de"},
+ {"@value": "Ihre Majestät", "@language": "de"},
+ {"@value": "The Queen", "@language": "en"},
+ {"@value": "The Queen"}
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m011-in.jsonld b/test/jsonld/1.1/expand/m011-in.jsonld
new file mode 100644
index 00000000..a8ba3723
--- /dev/null
+++ b/test/jsonld/1.1/expand/m011-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"},
+ "none": "@none"
+ },
+ "idmap": {
+ "@none": {"label": "Object with no @id"},
+ "none": {"label": "Another object with no @id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m011-out.jsonld b/test/jsonld/1.1/expand/m011-out.jsonld
new file mode 100644
index 00000000..1e0160ea
--- /dev/null
+++ b/test/jsonld/1.1/expand/m011-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/idmap": [
+ {"http://example/label": [{"@value": "Object with no @id"}]},
+ {"http://example/label": [{"@value": "Another object with no @id"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m012-in.jsonld b/test/jsonld/1.1/expand/m012-in.jsonld
new file mode 100644
index 00000000..c8bbe0f7
--- /dev/null
+++ b/test/jsonld/1.1/expand/m012-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"},
+ "none": "@none"
+ },
+ "typemap": {
+ "@none": {"label": "Object with no @type"},
+ "none": {"label": "Another object with no @type"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m012-out.jsonld b/test/jsonld/1.1/expand/m012-out.jsonld
new file mode 100644
index 00000000..2c62979f
--- /dev/null
+++ b/test/jsonld/1.1/expand/m012-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/typemap": [
+ {"http://example/label": [{"@value": "Object with no @type"}]},
+ {"http://example/label": [{"@value": "Another object with no @type"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m013-in.jsonld b/test/jsonld/1.1/expand/m013-in.jsonld
new file mode 100644
index 00000000..545c8c30
--- /dev/null
+++ b/test/jsonld/1.1/expand/m013-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "@none": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m013-out.jsonld b/test/jsonld/1.1/expand/m013-out.jsonld
new file mode 100644
index 00000000..e01c12ee
--- /dev/null
+++ b/test/jsonld/1.1/expand/m013-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m014-in.jsonld b/test/jsonld/1.1/expand/m014-in.jsonld
new file mode 100644
index 00000000..a1e454b2
--- /dev/null
+++ b/test/jsonld/1.1/expand/m014-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]},
+ "none": "@none"
+ },
+ "input": {
+ "none": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m014-out.jsonld b/test/jsonld/1.1/expand/m014-out.jsonld
new file mode 100644
index 00000000..e01c12ee
--- /dev/null
+++ b/test/jsonld/1.1/expand/m014-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m015-in.jsonld b/test/jsonld/1.1/expand/m015-in.jsonld
new file mode 100644
index 00000000..6594c8d6
--- /dev/null
+++ b/test/jsonld/1.1/expand/m015-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "@none": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m015-out.jsonld b/test/jsonld/1.1/expand/m015-out.jsonld
new file mode 100644
index 00000000..e01c12ee
--- /dev/null
+++ b/test/jsonld/1.1/expand/m015-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m016-in.jsonld b/test/jsonld/1.1/expand/m016-in.jsonld
new file mode 100644
index 00000000..13234db1
--- /dev/null
+++ b/test/jsonld/1.1/expand/m016-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]},
+ "none": "@none"
+ },
+ "input": {
+ "none": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m016-out.jsonld b/test/jsonld/1.1/expand/m016-out.jsonld
new file mode 100644
index 00000000..e01c12ee
--- /dev/null
+++ b/test/jsonld/1.1/expand/m016-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.org/input": [{
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m017-in.jsonld b/test/jsonld/1.1/expand/m017-in.jsonld
new file mode 100644
index 00000000..d571678d
--- /dev/null
+++ b/test/jsonld/1.1/expand/m017-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m017-out.jsonld b/test/jsonld/1.1/expand/m017-out.jsonld
new file mode 100644
index 00000000..b1076fd6
--- /dev/null
+++ b/test/jsonld/1.1/expand/m017-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/ns/foo": [{
+ "@id": "http://example.org/base/baz",
+ "@type": [ "http://example.org/ns/bar" ]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m018-in.jsonld b/test/jsonld/1.1/expand/m018-in.jsonld
new file mode 100644
index 00000000..7acaba29
--- /dev/null
+++ b/test/jsonld/1.1/expand/m018-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@type": "@id", "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m018-out.jsonld b/test/jsonld/1.1/expand/m018-out.jsonld
new file mode 100644
index 00000000..b1076fd6
--- /dev/null
+++ b/test/jsonld/1.1/expand/m018-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/ns/foo": [{
+ "@id": "http://example.org/base/baz",
+ "@type": [ "http://example.org/ns/bar" ]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m019-in.jsonld b/test/jsonld/1.1/expand/m019-in.jsonld
new file mode 100644
index 00000000..81386dfe
--- /dev/null
+++ b/test/jsonld/1.1/expand/m019-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@type": "@vocab", "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m019-out.jsonld b/test/jsonld/1.1/expand/m019-out.jsonld
new file mode 100644
index 00000000..29e72e9f
--- /dev/null
+++ b/test/jsonld/1.1/expand/m019-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example.org/ns/foo": [{
+ "@id": "http://example.org/ns/baz",
+ "@type": [ "http://example.org/ns/bar" ]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/m020-in.jsonld b/test/jsonld/1.1/expand/m020-in.jsonld
new file mode 100644
index 00000000..4b1a8319
--- /dev/null
+++ b/test/jsonld/1.1/expand/m020-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@type": "literal", "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n001-in.jsonld b/test/jsonld/1.1/expand/n001-in.jsonld
new file mode 100644
index 00000000..f0743058
--- /dev/null
+++ b/test/jsonld/1.1/expand/n001-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {"@vocab": "http://example.org/"},
+ "p1": "v1",
+ "@nest": {
+ "p2": "v2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n001-out.jsonld b/test/jsonld/1.1/expand/n001-out.jsonld
new file mode 100644
index 00000000..c0373456
--- /dev/null
+++ b/test/jsonld/1.1/expand/n001-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [{"@value": "v2"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n002-in.jsonld b/test/jsonld/1.1/expand/n002-in.jsonld
new file mode 100644
index 00000000..36e57b95
--- /dev/null
+++ b/test/jsonld/1.1/expand/n002-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest"
+ },
+ "p1": "v1",
+ "nest": {
+ "p2": "v2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n002-out.jsonld b/test/jsonld/1.1/expand/n002-out.jsonld
new file mode 100644
index 00000000..c0373456
--- /dev/null
+++ b/test/jsonld/1.1/expand/n002-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [{"@value": "v2"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n003-in.jsonld b/test/jsonld/1.1/expand/n003-in.jsonld
new file mode 100644
index 00000000..c1ec9022
--- /dev/null
+++ b/test/jsonld/1.1/expand/n003-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest"
+ },
+ "p1": "v1",
+ "nest": {
+ "p2": "v3"
+ },
+ "p2": "v2"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n003-out.jsonld b/test/jsonld/1.1/expand/n003-out.jsonld
new file mode 100644
index 00000000..c8fc8de2
--- /dev/null
+++ b/test/jsonld/1.1/expand/n003-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [
+ {"@value": "v2"},
+ {"@value": "v3"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n004-in.jsonld b/test/jsonld/1.1/expand/n004-in.jsonld
new file mode 100644
index 00000000..eeffff0a
--- /dev/null
+++ b/test/jsonld/1.1/expand/n004-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest1": "@nest",
+ "nest2": "@nest"
+ },
+ "p1": "v1",
+ "nest2": {
+ "p2": "v4"
+ },
+ "p2": "v2",
+ "nest1": {
+ "p2": "v3"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n004-out.jsonld b/test/jsonld/1.1/expand/n004-out.jsonld
new file mode 100644
index 00000000..90e1950b
--- /dev/null
+++ b/test/jsonld/1.1/expand/n004-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [
+ {"@value": "v2"},
+ {"@value": "v3"},
+ {"@value": "v4"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n005-in.jsonld b/test/jsonld/1.1/expand/n005-in.jsonld
new file mode 100644
index 00000000..a9f39497
--- /dev/null
+++ b/test/jsonld/1.1/expand/n005-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "p1": "v1",
+ "@nest": {
+ "p2": "v3",
+ "@nest": {
+ "p2": "v4"
+ }
+ },
+ "p2": "v2"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n005-out.jsonld b/test/jsonld/1.1/expand/n005-out.jsonld
new file mode 100644
index 00000000..90e1950b
--- /dev/null
+++ b/test/jsonld/1.1/expand/n005-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [
+ {"@value": "v2"},
+ {"@value": "v3"},
+ {"@value": "v4"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n006-in.jsonld b/test/jsonld/1.1/expand/n006-in.jsonld
new file mode 100644
index 00000000..9b02d605
--- /dev/null
+++ b/test/jsonld/1.1/expand/n006-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest"
+ },
+ "p1": "v1",
+ "nest": {
+ "p2": ["v4", "v5"]
+ },
+ "p2": ["v2", "v3"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n006-out.jsonld b/test/jsonld/1.1/expand/n006-out.jsonld
new file mode 100644
index 00000000..d5c10407
--- /dev/null
+++ b/test/jsonld/1.1/expand/n006-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [
+ {"@value": "v2"},
+ {"@value": "v3"},
+ {"@value": "v4"},
+ {"@value": "v5"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n007-in.jsonld b/test/jsonld/1.1/expand/n007-in.jsonld
new file mode 100644
index 00000000..aa9e8468
--- /dev/null
+++ b/test/jsonld/1.1/expand/n007-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest"
+ },
+ "p1": "v1",
+ "nest": [{
+ "p2": "v4"
+ }, {
+ "p2": "v5"
+ }],
+ "p2": ["v2", "v3"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n007-out.jsonld b/test/jsonld/1.1/expand/n007-out.jsonld
new file mode 100644
index 00000000..d5c10407
--- /dev/null
+++ b/test/jsonld/1.1/expand/n007-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "http://example.org/p1": [{"@value": "v1"}],
+ "http://example.org/p2": [
+ {"@value": "v2"},
+ {"@value": "v3"},
+ {"@value": "v4"},
+ {"@value": "v5"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n008-in.jsonld b/test/jsonld/1.1/expand/n008-in.jsonld
new file mode 100644
index 00000000..c598df0f
--- /dev/null
+++ b/test/jsonld/1.1/expand/n008-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest"
+ },
+ "p1": "v1",
+ "nest": [
+ {"@type": "T1"},
+ {"@type": "T2"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/n008-out.jsonld b/test/jsonld/1.1/expand/n008-out.jsonld
new file mode 100644
index 00000000..c1bb1e0a
--- /dev/null
+++ b/test/jsonld/1.1/expand/n008-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@type": ["http://example.org/T1", "http://example.org/T2"],
+ "http://example.org/p1": [{"@value": "v1"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/p001-in.jsonld b/test/jsonld/1.1/expand/p001-in.jsonld
new file mode 100644
index 00000000..5820b1c8
--- /dev/null
+++ b/test/jsonld/1.1/expand/p001-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": [
+ {"@vocab": "http://example/"},
+ {"@version": 1.1, "a": {"@type": "@id"}}
+ ],
+ "a": "http://example.org/foo"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/p001-out.jsonld b/test/jsonld/1.1/expand/p001-out.jsonld
new file mode 100644
index 00000000..d6a85b74
--- /dev/null
+++ b/test/jsonld/1.1/expand/p001-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example/a": [{"@id": "http://example.org/foo"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/p002-in.jsonld b/test/jsonld/1.1/expand/p002-in.jsonld
new file mode 100644
index 00000000..c221cf91
--- /dev/null
+++ b/test/jsonld/1.1/expand/p002-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": [
+ {"@vocab": "http://example/"},
+ {"@version": 1.1, "a": {"@type": "@id"}},
+ {"b": {"@type": "@id"}}
+ ],
+ "a": "http://example.org/foo",
+ "b": "http://example.org/bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/p002-out.jsonld b/test/jsonld/1.1/expand/p002-out.jsonld
new file mode 100644
index 00000000..e38a93bb
--- /dev/null
+++ b/test/jsonld/1.1/expand/p002-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example/a": [{"@id": "http://example.org/foo"}],
+ "http://example/b": [{"@id": "http://example.org/bar"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/p003-in.jsonld b/test/jsonld/1.1/expand/p003-in.jsonld
new file mode 100644
index 00000000..e50ad3c4
--- /dev/null
+++ b/test/jsonld/1.1/expand/p003-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": [
+ {"@version": 1.1, "a": {"@id": "http://example/a", "@type": "@id"}},
+ {"@vocab": "http://example/", "b": {"@type": "@id"}}
+ ],
+ "a": "http://example.org/foo",
+ "b": "http://example.org/bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/p003-out.jsonld b/test/jsonld/1.1/expand/p003-out.jsonld
new file mode 100644
index 00000000..e38a93bb
--- /dev/null
+++ b/test/jsonld/1.1/expand/p003-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example/a": [{"@id": "http://example.org/foo"}],
+ "http://example/b": [{"@id": "http://example.org/bar"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/p004-in.jsonld b/test/jsonld/1.1/expand/p004-in.jsonld
new file mode 100644
index 00000000..f458decf
--- /dev/null
+++ b/test/jsonld/1.1/expand/p004-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": [
+ {"@version": 1.1, "a": {"@id": "http://example/a", "@type": "@id"}},
+ {"@vocab": "http://example/"},
+ {"@version": 1.1, "b": {"@type": "@id"}}
+ ],
+ "a": "http://example.org/foo",
+ "b": "http://example.org/bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/p004-out.jsonld b/test/jsonld/1.1/expand/p004-out.jsonld
new file mode 100644
index 00000000..e38a93bb
--- /dev/null
+++ b/test/jsonld/1.1/expand/p004-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "http://example/a": [{"@id": "http://example.org/foo"}],
+ "http://example/b": [{"@id": "http://example.org/bar"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi01-in.jsonld b/test/jsonld/1.1/expand/pi01-in.jsonld
new file mode 100644
index 00000000..50e86117
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi01-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "container": {"@container": "@index", "@index": "prop"}
+ },
+ "@id": "http://example.com/annotationsTest",
+ "container": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi02-in.jsonld b/test/jsonld/1.1/expand/pi02-in.jsonld
new file mode 100644
index 00000000..45f7b965
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi02-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "container": {"@index": "prop"}
+ },
+ "@id": "http://example.com/annotationsTest",
+ "container": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi03-in.jsonld b/test/jsonld/1.1/expand/pi03-in.jsonld
new file mode 100644
index 00000000..d0803e11
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi03-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "container": {
+ "@id": "http://example.com/container",
+ "@container": "@index",
+ "@index": "@index"
+ }
+ },
+ "@id": "http://example.com/annotationsTest",
+ "container": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi04-in.jsonld b/test/jsonld/1.1/expand/pi04-in.jsonld
new file mode 100644
index 00000000..e30adb37
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi04-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "container": {
+ "@id": "http://example.com/container",
+ "@container": "@index",
+ "@index": true
+ }
+ },
+ "@id": "http://example.com/annotationsTest",
+ "container": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi05-in.jsonld b/test/jsonld/1.1/expand/pi05-in.jsonld
new file mode 100644
index 00000000..e9325a44
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi05-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "container": {
+ "@id": "http://example.com/container",
+ "@container": "@index",
+ "@index": "prop"
+ }
+ },
+ "@id": "http://example.com/annotationsTest",
+ "container": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi06-in.jsonld b/test/jsonld/1.1/expand/pi06-in.jsonld
new file mode 100644
index 00000000..c57f9382
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi06-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ },
+ "@id": "article",
+ "author": {
+ "regular": "person/1",
+ "guest": ["person/2", "person/3"]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi06-out.jsonld b/test/jsonld/1.1/expand/pi06-out.jsonld
new file mode 100644
index 00000000..7bd1df81
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi06-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/2", "http://example.com/prop": [{"@value": "guest"}]},
+ {"@id": "http://example.com/person/3", "http://example.com/prop": [{"@value": "guest"}]},
+ {"@id": "http://example.com/person/1", "http://example.com/prop": [{"@value": "regular"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi07-in.jsonld b/test/jsonld/1.1/expand/pi07-in.jsonld
new file mode 100644
index 00000000..e05de77c
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi07-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ },
+ "@id": "article",
+ "author": {
+ "regular": {"@id": "person/1", "http://example.com/prop": "foo"},
+ "guest": [
+ {"@id": "person/2", "prop": "foo"},
+ {"@id": "person/3", "prop": "foo"}
+ ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi07-out.jsonld b/test/jsonld/1.1/expand/pi07-out.jsonld
new file mode 100644
index 00000000..b8fb6b17
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi07-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/2", "http://example.com/prop": [{"@value": "guest"}, {"@value": "foo"}]},
+ {"@id": "http://example.com/person/3", "http://example.com/prop": [{"@value": "guest"}, {"@value": "foo"}]},
+ {"@id": "http://example.com/person/1", "http://example.com/prop": [{"@value": "regular"}, {"@value": "foo"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi08-in.jsonld b/test/jsonld/1.1/expand/pi08-in.jsonld
new file mode 100644
index 00000000..17b42ddd
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi08-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"},
+ "prop": {"@type": "@vocab"}
+ },
+ "@id": "http://example.com/article",
+ "author": {
+ "regular": "person/1",
+ "guest": ["person/2", "person/3"]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi08-out.jsonld b/test/jsonld/1.1/expand/pi08-out.jsonld
new file mode 100644
index 00000000..ed4bb030
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi08-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/2", "http://example.com/prop": [{"@id": "http://example.com/guest"}]},
+ {"@id": "http://example.com/person/3", "http://example.com/prop": [{"@id": "http://example.com/guest"}]},
+ {"@id": "http://example.com/person/1", "http://example.com/prop": [{"@id": "http://example.com/regular"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi09-in.jsonld b/test/jsonld/1.1/expand/pi09-in.jsonld
new file mode 100644
index 00000000..5811c345
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi09-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"},
+ "prop": {"@type": "@vocab"}
+ },
+ "@id": "http://example.com/article",
+ "author": {
+ "regular": {"@id": "person/1", "prop": "foo"},
+ "guest": [
+ {"@id": "person/2", "prop": "foo"},
+ {"@id": "person/3", "prop": "foo"}
+ ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi09-out.jsonld b/test/jsonld/1.1/expand/pi09-out.jsonld
new file mode 100644
index 00000000..a4556ede
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi09-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/2", "http://example.com/prop": [{"@id": "http://example.com/guest"}, {"@id": "http://example.com/foo"}]},
+ {"@id": "http://example.com/person/3", "http://example.com/prop": [{"@id": "http://example.com/guest"}, {"@id": "http://example.com/foo"}]},
+ {"@id": "http://example.com/person/1", "http://example.com/prop": [{"@id": "http://example.com/regular"}, {"@id": "http://example.com/foo"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi10-in.jsonld b/test/jsonld/1.1/expand/pi10-in.jsonld
new file mode 100644
index 00000000..a62aba22
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi10-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"},
+ "prop": {"@type": "@vocab"}
+ },
+ "@id": "http://example.com/article",
+ "author": {
+ "@none": {"@id": "person/1"},
+ "guest": [
+ {"@id": "person/2"},
+ {"@id": "person/3"}
+ ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi10-out.jsonld b/test/jsonld/1.1/expand/pi10-out.jsonld
new file mode 100644
index 00000000..22faa368
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi10-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "http://example.com/article",
+ "http://example.com/author": [
+ {"@id": "http://example.com/person/1"},
+ {"@id": "http://example.com/person/2", "http://example.com/prop": [{"@id": "http://example.com/guest"}]},
+ {"@id": "http://example.com/person/3", "http://example.com/prop": [{"@id": "http://example.com/guest"}]}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi11-in.jsonld b/test/jsonld/1.1/expand/pi11-in.jsonld
new file mode 100644
index 00000000..e3dd902a
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi11-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"], "@index": "prop"}
+ },
+ "input": {
+ "g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pi11-out.jsonld b/test/jsonld/1.1/expand/pi11-out.jsonld
new file mode 100644
index 00000000..c67c64bd
--- /dev/null
+++ b/test/jsonld/1.1/expand/pi11-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.org/input": [{
+ "http://example.org/prop": [{"@value": "g1"}],
+ "@graph": [{
+ "http://example.org/value": [{"@value": "x"}]
+ }]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr01-in.jsonld b/test/jsonld/1.1/expand/pr01-in.jsonld
new file mode 100644
index 00000000..049d4cf6
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr01-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "protected": {
+ "@protected": true
+ }
+ },
+ "protected": {
+ "@context": {
+ "protected": "http://example.com/something-else"
+ },
+ "protected": "error / property http://example.com/protected"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr02-in.jsonld b/test/jsonld/1.1/expand/pr02-in.jsonld
new file mode 100644
index 00000000..22fe4a86
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr02-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "protected": {
+ "@protected": true
+ },
+ "unprotected": {
+ "@protected": false
+ }
+ },
+ "protected": true,
+ "unprotected": true,
+ "scope": {
+ "@context": {
+ "unprotected": "http://example.com/something-else"
+ },
+ "unprotected": "property http://example.com/something-else"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr02-out.jsonld b/test/jsonld/1.1/expand/pr02-out.jsonld
new file mode 100644
index 00000000..bb498495
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr02-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "http://example.com/protected": [{"@value": true}],
+ "http://example.com/unprotected": [{"@value": true}],
+ "http://example.com/scope": [{
+ "http://example.com/something-else": [{"@value": "property http://example.com/something-else"}]
+ }]
+ }
+]
diff --git a/test/jsonld/1.1/expand/pr03-in.jsonld b/test/jsonld/1.1/expand/pr03-in.jsonld
new file mode 100644
index 00000000..c0a8aa2a
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr03-in.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": {
+ "@id": "http://example.com/protected1"
+ },
+ "protected2": {
+ "@id": "http://example.com/protected2"
+ }
+ },
+ "protected1": {
+ "@context": {
+ "protected1": "http://example.com/something-else",
+ "protected2": "http://example.com/something-else"
+ },
+ "protected1": "error / property http://example.com/protected1",
+ "protected2": "error / property http://example.com/protected2"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr04-in.jsonld b/test/jsonld/1.1/expand/pr04-in.jsonld
new file mode 100644
index 00000000..5adc5228
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr04-in.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "@protected": true,
+ "protected": {
+ "@id": "http://example.com/protected"
+ },
+ "unprotected": {
+ "@id": "http://example.com/unprotected", "@protected": false
+ }
+ },
+ "protected": {
+ "@context": {
+ "protected": "http://example.com/something-else1",
+ "unprotected": "http://example.com/something-else2"
+ },
+ "protected": "error / property http://example.com/protected",
+ "unprotected": "property http://example.com/something-else2"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr05-in.jsonld b/test/jsonld/1.1/expand/pr05-in.jsonld
new file mode 100644
index 00000000..a7ccf05d
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr05-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "@protected": true,
+ "protected": {"@language": null}
+ },
+ "protected": {
+ "@context": [
+ null,
+ {
+ "@vocab": "http://something-else/"
+ }
+ ],
+ "protected": "error / property http://example.com/protected"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr06-in.jsonld b/test/jsonld/1.1/expand/pr06-in.jsonld
new file mode 100644
index 00000000..df894594
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr06-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "@protected": true,
+ "protected": {
+ "@type": "@id"
+ },
+ "unprotected": {
+ "@protected": false,
+ "@context": null
+ }
+ },
+ "unprotected": {
+ "protected": "not expanded, as protected is not a defined term"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr06-out.jsonld b/test/jsonld/1.1/expand/pr06-out.jsonld
new file mode 100644
index 00000000..121aee43
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr06-out.jsonld
@@ -0,0 +1,5 @@
+[
+ {
+ "http://example.com/unprotected": [{}]
+ }
+]
diff --git a/test/jsonld/1.1/expand/pr08-in.jsonld b/test/jsonld/1.1/expand/pr08-in.jsonld
new file mode 100644
index 00000000..357c5cee
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr08-in.jsonld
@@ -0,0 +1,38 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "protected": {
+ "@protected": false
+ },
+ "scope1": {
+ "@protected": false,
+ "@context": {
+ "protected": {
+ "@id": "http://example.com/something-else"
+ }
+ }
+ },
+ "scope2": {
+ "@protected": true,
+ "@context": {
+ "protected": {
+ "@protected": true
+ }
+ }
+ }
+ },
+ "protected": false,
+ "scope1": {
+ "@context": {
+ "protected": "http://example.com/another-thing"
+ },
+ "protected": "property http://example.com/another-thing"
+ },
+ "scope2": {
+ "@context": {
+ "protected": "http://example.com/another-thing"
+ },
+ "protected": "error / property http://example.com/protected"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr09-in.jsonld b/test/jsonld/1.1/expand/pr09-in.jsonld
new file mode 100644
index 00000000..29895ff3
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr09-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "http://example.org/protected1",
+ "protected2": "http://example.org/protected2"
+ },
+ "protected2": {
+ "@context": {
+ "protected1": "http://example.org/something-else"
+ },
+ "protected1": "error / property http://example.org/protected1"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr10-in.jsonld b/test/jsonld/1.1/expand/pr10-in.jsonld
new file mode 100644
index 00000000..a8933fe3
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr10-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "protected": {
+ "@id": "ex:protected",
+ "@protected": true
+ },
+ "unprotected": "ex:unprotected"
+ },
+ "protected": "p === ex:protected",
+ "unprotected": {
+ "protected": "p === ex:protected"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr10-out.jsonld b/test/jsonld/1.1/expand/pr10-out.jsonld
new file mode 100644
index 00000000..3f10151e
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr10-out.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "ex:protected": [
+ {
+ "@value": "p === ex:protected"
+ }
+ ],
+ "ex:unprotected": [
+ {
+ "ex:protected": [
+ {
+ "@value": "p === ex:protected"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/pr11-in.jsonld b/test/jsonld/1.1/expand/pr11-in.jsonld
new file mode 100644
index 00000000..de185630
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr11-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "protected": {
+ "@id": "ex:protected",
+ "@protected": true
+ },
+ "unprotected": "ex:unprotected"
+ },
+ "protected": "p === ex:protected",
+ "unprotected": {
+ "@context": {
+ "protected": "ex:protected2"
+ },
+ "protected": "p === ex:protected"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr12-in.jsonld b/test/jsonld/1.1/expand/pr12-in.jsonld
new file mode 100644
index 00000000..2dc30da6
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr12-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": "ex:protected2"
+ },
+ "protected1": "p === ex:protected1",
+ "protected2": {
+ "@context": {
+ "protected1": "ex:protected1:error"
+ },
+ "protected1": "error / p === ex:protected1"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr13-in.jsonld b/test/jsonld/1.1/expand/pr13-in.jsonld
new file mode 100644
index 00000000..6f8ff006
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr13-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected": "ex:protected",
+ "unprotected": {
+ "@id": "ex:unprotected1",
+ "@protected": false
+ }
+ },
+ "protected": {
+ "@context": {
+ "unprotected": "ex:unprotected2"
+ },
+ "unprotected": "p === ex:unprotected2"
+ },
+ "unprotected": "p === ex:unprotected1"
+}
diff --git a/test/jsonld/1.1/expand/pr13-out.jsonld b/test/jsonld/1.1/expand/pr13-out.jsonld
new file mode 100644
index 00000000..256cc41a
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr13-out.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "ex:protected": [
+ {
+ "ex:unprotected2": [
+ {
+ "@value": "p === ex:unprotected2"
+ }
+ ]
+ }
+ ],
+ "ex:unprotected1": [
+ {
+ "@value": "p === ex:unprotected1"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/pr14-in.jsonld b/test/jsonld/1.1/expand/pr14-in.jsonld
new file mode 100644
index 00000000..e88b9ef2
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr14-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": {
+ "@id": "ex:protected2",
+ "@context": null
+ }
+ },
+ "protected1": "p === ex:protected1",
+ "protected2": {
+ "@context": {
+ "protected1": "ex:protected3"
+ },
+ "protected1": "p === ex:protected3"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr14-out.jsonld b/test/jsonld/1.1/expand/pr14-out.jsonld
new file mode 100644
index 00000000..52c399e9
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr14-out.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "ex:protected1": [
+ {
+ "@value": "p === ex:protected1"
+ }
+ ],
+ "ex:protected2": [
+ {
+ "ex:protected3": [
+ {
+ "@value": "p === ex:protected3"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/pr15-in.jsonld b/test/jsonld/1.1/expand/pr15-in.jsonld
new file mode 100644
index 00000000..d0cf99b1
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr15-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": {
+ "@id": "ex:protected2",
+ "@context": [
+ null
+ ]
+ }
+ },
+ "protected1": "p === ex:protected1",
+ "protected2": {
+ "@context": {
+ "protected1": "ex:protected3"
+ },
+ "protected1": "p === ex:protected3"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr15-out.jsonld b/test/jsonld/1.1/expand/pr15-out.jsonld
new file mode 100644
index 00000000..52c399e9
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr15-out.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "ex:protected1": [
+ {
+ "@value": "p === ex:protected1"
+ }
+ ],
+ "ex:protected2": [
+ {
+ "ex:protected3": [
+ {
+ "@value": "p === ex:protected3"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/pr16-in.jsonld b/test/jsonld/1.1/expand/pr16-in.jsonld
new file mode 100644
index 00000000..61946e01
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr16-in.jsonld
@@ -0,0 +1,30 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": {
+ "@id": "ex:protected2",
+ "@context": [
+ null,
+ {
+ "protected1": "ex:protected3",
+ "unprotected": "ex:unprotected2"
+ }
+ ]
+ },
+ "unprotected": {
+ "@protected": false,
+ "@id": "ex:unprotected1"
+ }
+ },
+ "protected1": "p === ex:protected1",
+ "protected2": {
+ "@context": {
+ "protected1": "ex:protected3"
+ },
+ "protected1": "p === ex:protected3",
+ "unprotected": "p === ex:unprotected2"
+ },
+ "unprotected": "p === ex:unprotected1"
+}
diff --git a/test/jsonld/1.1/expand/pr16-out.jsonld b/test/jsonld/1.1/expand/pr16-out.jsonld
new file mode 100644
index 00000000..264b8360
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr16-out.jsonld
@@ -0,0 +1,28 @@
+[
+ {
+ "ex:protected1": [
+ {
+ "@value": "p === ex:protected1"
+ }
+ ],
+ "ex:protected2": [
+ {
+ "ex:protected3": [
+ {
+ "@value": "p === ex:protected3"
+ }
+ ],
+ "ex:unprotected2": [
+ {
+ "@value": "p === ex:unprotected2"
+ }
+ ]
+ }
+ ],
+ "ex:unprotected1": [
+ {
+ "@value": "p === ex:unprotected1"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/pr17-in.jsonld b/test/jsonld/1.1/expand/pr17-in.jsonld
new file mode 100644
index 00000000..e2300354
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr17-in.jsonld
@@ -0,0 +1,22 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": "ex:protected2",
+ "Protected": {
+ "@id": "ex:Protected",
+ "@context": [
+ null
+ ]
+ }
+ },
+ "protected1": "p === protected1",
+ "protected2": {
+ "@context": {
+ "unprotected": "ex:unprotected"
+ },
+ "@type": "Protected",
+ "unprotected": "error / omitted"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr18-in.jsonld b/test/jsonld/1.1/expand/pr18-in.jsonld
new file mode 100644
index 00000000..a6648cd6
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr18-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected": "ex:protected1",
+ "Protected": {
+ "@id": "ex:Protected",
+ "@context": [
+ null,
+ {
+ "protected": "ex:protected2"
+ }
+ ]
+ }
+ },
+ "@type": "Protected",
+ "protected": "error / p === ex:protected1"
+}
diff --git a/test/jsonld/1.1/expand/pr19-in.jsonld b/test/jsonld/1.1/expand/pr19-in.jsonld
new file mode 100644
index 00000000..e418cb12
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr19-in.jsonld
@@ -0,0 +1,29 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": {
+ "@id": "ex:protected2",
+ "@context": [
+ null,
+ {
+ "protected1": "ex:protected3"
+ }
+ ]
+ },
+ "unprotected": {
+ "@protected": false,
+ "@id": "ex:unprotected1"
+ }
+ },
+ "protected1": "p === ex:protected1",
+ "protected2": {
+ "@context": {
+ "protected1": "ex:protected3"
+ },
+ "protected1": "p === ex:protected3",
+ "unprotected": "p === ex:unprotected2"
+ },
+ "unprotected": "p === ex:unprotected1"
+}
diff --git a/test/jsonld/1.1/expand/pr19-out.jsonld b/test/jsonld/1.1/expand/pr19-out.jsonld
new file mode 100644
index 00000000..0bca9e1b
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr19-out.jsonld
@@ -0,0 +1,23 @@
+[
+ {
+ "ex:protected1": [
+ {
+ "@value": "p === ex:protected1"
+ }
+ ],
+ "ex:protected2": [
+ {
+ "ex:protected3": [
+ {
+ "@value": "p === ex:protected3"
+ }
+ ]
+ }
+ ],
+ "ex:unprotected1": [
+ {
+ "@value": "p === ex:unprotected1"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/pr20-in.jsonld b/test/jsonld/1.1/expand/pr20-in.jsonld
new file mode 100644
index 00000000..69edf670
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr20-in.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "Protected": {
+ "@id": "ex:Protected",
+ "@context": [
+ null,
+ {
+ "protected1": "ex:protected2",
+ "unprotected": "ex:unprotected2"
+ }
+ ]
+ },
+ "unprotected": {
+ "@protected": false,
+ "@id": "ex:unprotected1"
+ }
+ },
+ "@type": "Protected",
+ "protected1": "error / p === ex:protected1",
+ "unprotected": "p === ex:unprotected2"
+}
diff --git a/test/jsonld/1.1/expand/pr21-in.jsonld b/test/jsonld/1.1/expand/pr21-in.jsonld
new file mode 100644
index 00000000..3be7f54f
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr21-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected": "ex:protected",
+ "Protected": {
+ "@id": "ex:Protected",
+ "@context": [
+ null
+ ]
+ },
+ "unprotected": {
+ "@protected": false,
+ "@id": "ex:unprotected"
+ }
+ },
+ "@type": "Protected",
+ "protected": "error / p === ex:protected",
+ "unprotected": "missing"
+}
diff --git a/test/jsonld/1.1/expand/pr22-in.jsonld b/test/jsonld/1.1/expand/pr22-in.jsonld
new file mode 100644
index 00000000..7cd17cb8
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr22-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "@vocab": "http://example.com/",
+ "Parent": {"@context": {"@protected": true, "foo": {"@type": "@id"}}}
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "Child": {"@context": {"@protected": true, "foo": {"@type": "@id"}}}
+ }],
+ "@type": "Parent",
+ "foo": {
+ "@type": "Child",
+ "foo": "http://example.com/test"
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr22-out.jsonld b/test/jsonld/1.1/expand/pr22-out.jsonld
new file mode 100644
index 00000000..4e97b905
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr22-out.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@type": [
+ "http://example.com/Parent"
+ ],
+ "http://example.com/foo": [
+ {
+ "@type": [
+ "http://example.com/Child"
+ ],
+ "http://example.com/foo": [
+ {
+ "@id": "http://example.com/test"
+ }
+ ]
+ }
+ ]
+ }
+]
+
diff --git a/test/jsonld/1.1/expand/pr23-in.jsonld b/test/jsonld/1.1/expand/pr23-in.jsonld
new file mode 100644
index 00000000..23f525f3
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr23-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type"
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type"
+ }],
+ "id": "http://example/id",
+ "type": "http://example/type"
+}
diff --git a/test/jsonld/1.1/expand/pr23-out.jsonld b/test/jsonld/1.1/expand/pr23-out.jsonld
new file mode 100644
index 00000000..b8fdbb80
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr23-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "@id": "http://example/id",
+ "@type": [
+ "http://example/type"
+ ]
+ }
+]
+
diff --git a/test/jsonld/1.1/expand/pr24-in.jsonld b/test/jsonld/1.1/expand/pr24-in.jsonld
new file mode 100644
index 00000000..ed5af3b3
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr24-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "foo": "http://example/foo#"
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "foo": "http://example/foo#"
+ }],
+ "foo:bar": "foobar"
+}
diff --git a/test/jsonld/1.1/expand/pr24-out.jsonld b/test/jsonld/1.1/expand/pr24-out.jsonld
new file mode 100644
index 00000000..0698413c
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr24-out.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "http://example/foo#bar": [{
+ "@value": "foobar"
+ }]
+ }
+]
+
diff --git a/test/jsonld/1.1/expand/pr25-in.jsonld b/test/jsonld/1.1/expand/pr25-in.jsonld
new file mode 100644
index 00000000..02fffd68
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr25-in.jsonld
@@ -0,0 +1,141 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type",
+ "foo": {
+ "@id": "http://example/foo",
+ "@container": ["@graph", "@set"]
+ },
+ "bar": {
+ "@id": "http://example/bar",
+ "@type": "@id",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Bar": {
+ "@id": "http://example/Bar",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type",
+ "foo": {
+ "@id": "http://example/foo",
+ "@container": ["@graph", "@set"]
+ },
+ "bar": {
+ "@id": "http://example/bar",
+ "@type": "@id",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Bar": {
+ "@id": "http://example/Bar",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }],
+ "type": "Bar",
+ "foo": [{
+ "bar": "http://example/"
+ }],
+ "bar-1": {
+ "bar-2": {
+ "type": "Foo",
+ "bar-2": "bar-2"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr25-out.jsonld b/test/jsonld/1.1/expand/pr25-out.jsonld
new file mode 100644
index 00000000..0eff6fac
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr25-out.jsonld
@@ -0,0 +1,23 @@
+[
+ {
+ "@type": [
+ "http://example/Bar"
+ ],
+ "http://example/foo": [{
+ "@graph": [{
+ "http://example/bar": [{
+ "@id": "http://example/"
+ }]
+ }]
+ }],
+ "http://example/bar-1": [{
+ "http://example/bar-2": [{
+ "@type": ["http://example/Foo"],
+ "http://example/bar-2": [{
+ "@value": "bar-2"
+ }]
+ }]
+ }]
+ }
+]
+
diff --git a/test/jsonld/1.1/expand/pr26-in.jsonld b/test/jsonld/1.1/expand/pr26-in.jsonld
new file mode 100644
index 00000000..28f02147
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr26-in.jsonld
@@ -0,0 +1,136 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type",
+ "foo": {
+ "@id": "http://example/foo",
+ "@container": ["@graph", "@set"]
+ },
+ "bar": {
+ "@id": "http://example/bar",
+ "@type": "@id",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Bar": {
+ "@id": "http://example/Bar",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type",
+ "foo": {
+ "@id": "http://example/foo",
+ "@container": ["@graph", "@set"]
+ },
+ "bar": {
+ "@id": "http://example/bar",
+ "@type": "@id",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Bar": {
+ "@id": "http://example/Bar",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Foo": {
+ "@id": "http://example/Foo"
+ }
+ }],
+ "type": "Bar",
+ "foo": [{
+ "bar": "http://example/"
+ }],
+ "bar-1": {
+ "bar-2": {
+ "type": "Foo",
+ "bar-2": "bar-2"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/expand/pr27-in.jsonld b/test/jsonld/1.1/expand/pr27-in.jsonld
new file mode 100644
index 00000000..27d54470
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr27-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type"
+ }, {
+ "@version": 1.1,
+ "id": "@id",
+ "type": "@type"
+ }],
+ "id": "http://example/id",
+ "type": "http://example/type"
+}
diff --git a/test/jsonld/1.1/expand/pr27-out.jsonld b/test/jsonld/1.1/expand/pr27-out.jsonld
new file mode 100644
index 00000000..b8fdbb80
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr27-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "@id": "http://example/id",
+ "@type": [
+ "http://example/type"
+ ]
+ }
+]
+
diff --git a/test/jsonld/1.1/expand/pr28-in.jsonld b/test/jsonld/1.1/expand/pr28-in.jsonld
new file mode 100644
index 00000000..f883af3b
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr28-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "term": null
+ }, {
+ "@version": 1.1,
+ "term": {"@id": "http://example.com/term"}
+ }],
+ "term": "undefined"
+}
diff --git a/test/jsonld/1.1/expand/pr29-in.jsonld b/test/jsonld/1.1/expand/pr29-in.jsonld
new file mode 100644
index 00000000..e49e6c69
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr29-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "tag": {"@id": "http://example.org/ns/tag/", "@prefix": false}
+ },
+ "tag:champin.net,2019:prop": "This is not treated as a Compact IRI",
+ "tag": "tricky"
+}
diff --git a/test/jsonld/1.1/expand/pr29-out.jsonld b/test/jsonld/1.1/expand/pr29-out.jsonld
new file mode 100644
index 00000000..edc7f431
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr29-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "http://example.org/ns/tag/": [
+ {
+ "@value": "tricky"
+ }
+ ],
+ "tag:champin.net,2019:prop": [
+ {
+ "@value": "This is not treated as a Compact IRI"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/expand/pr30-in.jsonld b/test/jsonld/1.1/expand/pr30-in.jsonld
new file mode 100644
index 00000000..5744284d
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr30-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "id": {"@id": "@id", "@protected": true},
+ "type": {"@id" : "@type", "@container": "@set", "@protected" : true},
+ "@type": {"@container": "@set", "@protected": true}
+ },
+ "id": "http://example.com/1",
+ "type": "http://example.org/ns/Foo",
+ "@type": "http://example.org/ns/Bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr30-out.jsonld b/test/jsonld/1.1/expand/pr30-out.jsonld
new file mode 100644
index 00000000..caa90d7e
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr30-out.jsonld
@@ -0,0 +1,9 @@
+[
+ {
+ "@id": "http://example.com/1",
+ "@type": [
+ "http://example.org/ns/Bar",
+ "http://example.org/ns/Foo"
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr31-in.jsonld b/test/jsonld/1.1/expand/pr31-in.jsonld
new file mode 100644
index 00000000..459d335a
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr31-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "id": {"@id": "@id", "@protected": true},
+ "type": {"@id" : "@type", "@container": "@set", "@protected" : true},
+ "@type": {"@container": "@set", "@protected": true}
+ }, {
+ "@version": 1.1,
+ "id": "http://example.com/id"
+ }],
+ "id": "http://example.com/1",
+ "type": ["http://example.org/ns/Foo"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr32-in.jsonld b/test/jsonld/1.1/expand/pr32-in.jsonld
new file mode 100644
index 00000000..3f287c01
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr32-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "id": {"@id": "@id", "@protected": true},
+ "type": {"@id" : "@type", "@container": "@set", "@protected" : true},
+ "@type": {"@container": "@set", "@protected": true}
+ }, {
+ "@version": 1.1,
+ "@type": {"@protected": true}
+ }],
+ "id": "http://example.com/1",
+ "type": ["http://example.org/ns/Foo"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr33-in.jsonld b/test/jsonld/1.1/expand/pr33-in.jsonld
new file mode 100644
index 00000000..ac9b9e5a
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr33-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "foo": {
+ "@id": "@type",
+ "@prefix": true
+ }
+ },
+ "foo:bar": "http://example.org/baz"
+}
diff --git a/test/jsonld/1.1/expand/pr34-in.jsonld b/test/jsonld/1.1/expand/pr34-in.jsonld
new file mode 100644
index 00000000..18bbf1c7
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr34-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@ignoreMe": "http://example.org/should-ignore"
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "@ignoreMe": "should not be here"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr34-out.jsonld b/test/jsonld/1.1/expand/pr34-out.jsonld
new file mode 100644
index 00000000..38735bb6
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr34-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "@type": ["http://example.com/IgnoreTest"]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr35-in.jsonld b/test/jsonld/1.1/expand/pr35-in.jsonld
new file mode 100644
index 00000000..0145697e
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr35-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "@ignoreMe": "http://example.org/should-ignore"
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "@ignoreMe": "should not be here"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr35-out.jsonld b/test/jsonld/1.1/expand/pr35-out.jsonld
new file mode 100644
index 00000000..38735bb6
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr35-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "@type": ["http://example.com/IgnoreTest"]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr36-in.jsonld b/test/jsonld/1.1/expand/pr36-in.jsonld
new file mode 100644
index 00000000..bf8fe6cc
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr36-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "ignoreMe": "@ignoreMe"
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "ignoreMe": "should not be here"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr36-out.jsonld b/test/jsonld/1.1/expand/pr36-out.jsonld
new file mode 100644
index 00000000..38735bb6
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr36-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "@type": ["http://example.com/IgnoreTest"]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr37-in.jsonld b/test/jsonld/1.1/expand/pr37-in.jsonld
new file mode 100644
index 00000000..b1820a1a
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr37-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "ignoreMe": "@ignoreMe"
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "ignoreMe": "vocabulary relative"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr37-out.jsonld b/test/jsonld/1.1/expand/pr37-out.jsonld
new file mode 100644
index 00000000..f6dfa550
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr37-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@type": ["http://example.com/IgnoreTest"],
+ "http://example.org/ignoreMe": [{"@value": "vocabulary relative"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr38-in.jsonld b/test/jsonld/1.1/expand/pr38-in.jsonld
new file mode 100644
index 00000000..9f4ac1af
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr38-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "ignoreMe": {"@reverse": "@ignoreMe"}
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "ignoreMe": {"http://example.org/text": "should not be here"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr38-out.jsonld b/test/jsonld/1.1/expand/pr38-out.jsonld
new file mode 100644
index 00000000..38735bb6
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr38-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "@type": ["http://example.com/IgnoreTest"]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr39-in.jsonld b/test/jsonld/1.1/expand/pr39-in.jsonld
new file mode 100644
index 00000000..1ea54f7d
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr39-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "ignoreMe": {"@reverse": "@ignoreMe"}
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "ignoreMe": {"text": "not reversed"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr39-out.jsonld b/test/jsonld/1.1/expand/pr39-out.jsonld
new file mode 100644
index 00000000..aa51f662
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr39-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "@type": ["http://example.com/IgnoreTest"],
+ "http://example.org/ignoreMe": [{
+ "http://example.org/text": [{"@value": "not reversed"}]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/pr40-in.jsonld b/test/jsonld/1.1/expand/pr40-in.jsonld
new file mode 100644
index 00000000..52c7b642
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr40-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@vocab": "http://vocab.org/",
+ "@protected": true,
+ "bar": "http://ignored.org/bar",
+ "foo": {
+ "@context": {
+ "bar": "http://example.org/other"
+ }
+ }
+ },
+ "@id": "ex:outer",
+ "foo": {
+ "@id": "ex:inner",
+ "bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/pr40-out.jsonld b/test/jsonld/1.1/expand/pr40-out.jsonld
new file mode 100644
index 00000000..bba43a5f
--- /dev/null
+++ b/test/jsonld/1.1/expand/pr40-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "ex:outer",
+ "http://vocab.org/foo": [{
+ "@id": "ex:inner",
+ "http://example.org/other": [{"@value": "baz"}]
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so01-in.jsonld b/test/jsonld/1.1/expand/so01-in.jsonld
new file mode 100644
index 00000000..7423c425
--- /dev/null
+++ b/test/jsonld/1.1/expand/so01-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@import": "so01-in.jsonld"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so02-in.jsonld b/test/jsonld/1.1/expand/so02-in.jsonld
new file mode 100644
index 00000000..a46da56f
--- /dev/null
+++ b/test/jsonld/1.1/expand/so02-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@import": {}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so03-in.jsonld b/test/jsonld/1.1/expand/so03-in.jsonld
new file mode 100644
index 00000000..9b615289
--- /dev/null
+++ b/test/jsonld/1.1/expand/so03-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@import": "so03-in.jsonld"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so05-context.jsonld b/test/jsonld/1.1/expand/so05-context.jsonld
new file mode 100644
index 00000000..902a3870
--- /dev/null
+++ b/test/jsonld/1.1/expand/so05-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "baz": {"@id": "http://example.org/baz", "@type": "@vocab"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so05-in.jsonld b/test/jsonld/1.1/expand/so05-in.jsonld
new file mode 100644
index 00000000..664c82db
--- /dev/null
+++ b/test/jsonld/1.1/expand/so05-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "Foo": {
+ "@context": {
+ "@import": "so05-context.jsonld",
+ "@propagate": true
+ }
+ }
+ },
+ "@type": "Foo",
+ "bar": {"baz": "buzz"}
+}
diff --git a/test/jsonld/1.1/expand/so05-out.jsonld b/test/jsonld/1.1/expand/so05-out.jsonld
new file mode 100644
index 00000000..d4e93f65
--- /dev/null
+++ b/test/jsonld/1.1/expand/so05-out.jsonld
@@ -0,0 +1,8 @@
+[
+ {
+ "@type": ["http://example/Foo"],
+ "http://example/bar": [{
+ "http://example.org/baz": [{"@id": "http://example/buzz"}]
+ }]
+ }
+]
diff --git a/test/jsonld/1.1/expand/so06-context.jsonld b/test/jsonld/1.1/expand/so06-context.jsonld
new file mode 100644
index 00000000..5da1e53f
--- /dev/null
+++ b/test/jsonld/1.1/expand/so06-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "baz": {"@id": "http://example.com/baz", "@type": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so06-in.jsonld b/test/jsonld/1.1/expand/so06-in.jsonld
new file mode 100644
index 00000000..3b664b9b
--- /dev/null
+++ b/test/jsonld/1.1/expand/so06-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "bar": {
+ "@context": {
+ "@import": "so06-context.jsonld",
+ "@propagate": false
+ }
+ }
+ },
+ "bar": {"baz": {"baz": "buzz"}}
+}
diff --git a/test/jsonld/1.1/expand/so06-out.jsonld b/test/jsonld/1.1/expand/so06-out.jsonld
new file mode 100644
index 00000000..7ee0ec71
--- /dev/null
+++ b/test/jsonld/1.1/expand/so06-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "http://example/bar": [{
+ "http://example.com/baz": [{
+ "http://example/baz": [{"@value": "buzz"}]
+ }]
+ }]
+}]
diff --git a/test/jsonld/1.1/expand/so07-context.jsonld b/test/jsonld/1.1/expand/so07-context.jsonld
new file mode 100644
index 00000000..7ddb66da
--- /dev/null
+++ b/test/jsonld/1.1/expand/so07-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "protected1": {
+ "@id": "http://example.com/protected1"
+ },
+ "protected2": {
+ "@id": "http://example.com/protected2"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so07-in.jsonld b/test/jsonld/1.1/expand/so07-in.jsonld
new file mode 100644
index 00000000..1d8d5aaa
--- /dev/null
+++ b/test/jsonld/1.1/expand/so07-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "@protected": true,
+ "@import": "so07-context.jsonld"
+ },
+ "protected1": {
+ "@context": {
+ "protected1": "http://example.com/something-else",
+ "protected2": "http://example.com/something-else"
+ },
+ "protected1": "error / property http://example.com/protected1",
+ "protected2": "error / property http://example.com/protected2"
+ }
+}
diff --git a/test/jsonld/1.1/expand/so08-context.jsonld b/test/jsonld/1.1/expand/so08-context.jsonld
new file mode 100644
index 00000000..3e6660a8
--- /dev/null
+++ b/test/jsonld/1.1/expand/so08-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": "http://example.org/sourced"
+ }
+}
diff --git a/test/jsonld/1.1/expand/so08-in.jsonld b/test/jsonld/1.1/expand/so08-in.jsonld
new file mode 100644
index 00000000..bfb50b89
--- /dev/null
+++ b/test/jsonld/1.1/expand/so08-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@import": "so08-context.jsonld",
+ "term": "http://example.org/redefined"
+ },
+ "term": "value"
+}
diff --git a/test/jsonld/1.1/expand/so08-out.jsonld b/test/jsonld/1.1/expand/so08-out.jsonld
new file mode 100644
index 00000000..bb1a9f84
--- /dev/null
+++ b/test/jsonld/1.1/expand/so08-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/redefined": [{"@value": "value"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so09-context.jsonld b/test/jsonld/1.1/expand/so09-context.jsonld
new file mode 100644
index 00000000..45334dcb
--- /dev/null
+++ b/test/jsonld/1.1/expand/so09-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/source/",
+ "term": {"@id": "term"}
+ }
+}
diff --git a/test/jsonld/1.1/expand/so09-in.jsonld b/test/jsonld/1.1/expand/so09-in.jsonld
new file mode 100644
index 00000000..f6b52160
--- /dev/null
+++ b/test/jsonld/1.1/expand/so09-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@import": "so09-context.jsonld",
+ "@vocab": "http://example.org/redefined/"
+ },
+ "term": "value"
+}
diff --git a/test/jsonld/1.1/expand/so09-out.jsonld b/test/jsonld/1.1/expand/so09-out.jsonld
new file mode 100644
index 00000000..6a83f156
--- /dev/null
+++ b/test/jsonld/1.1/expand/so09-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/redefined/term": [{"@value": "value"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so10-context.jsonld b/test/jsonld/1.1/expand/so10-context.jsonld
new file mode 100644
index 00000000..d36bc5c6
--- /dev/null
+++ b/test/jsonld/1.1/expand/so10-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": "http://example.org/protected"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so10-in.jsonld b/test/jsonld/1.1/expand/so10-in.jsonld
new file mode 100644
index 00000000..ec45ada1
--- /dev/null
+++ b/test/jsonld/1.1/expand/so10-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "@import": "so10-context.jsonld"
+ }, {
+ "term": "http://example.org/unprotected"
+ }],
+ "term": "value"
+}
+ \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so11-context.jsonld b/test/jsonld/1.1/expand/so11-context.jsonld
new file mode 100644
index 00000000..3e6660a8
--- /dev/null
+++ b/test/jsonld/1.1/expand/so11-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": "http://example.org/sourced"
+ }
+}
diff --git a/test/jsonld/1.1/expand/so11-in.jsonld b/test/jsonld/1.1/expand/so11-in.jsonld
new file mode 100644
index 00000000..a63f1590
--- /dev/null
+++ b/test/jsonld/1.1/expand/so11-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "@import": "so08-context.jsonld",
+ "term": "http://example.org/redefined"
+ },
+ "term": "value"
+}
diff --git a/test/jsonld/1.1/expand/so11-out.jsonld b/test/jsonld/1.1/expand/so11-out.jsonld
new file mode 100644
index 00000000..bb1a9f84
--- /dev/null
+++ b/test/jsonld/1.1/expand/so11-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/redefined": [{"@value": "value"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/so12-in.jsonld b/test/jsonld/1.1/expand/so12-in.jsonld
new file mode 100644
index 00000000..00432d2f
--- /dev/null
+++ b/test/jsonld/1.1/expand/so12-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@import": "so12-in.jsonld"
+ }
+}
diff --git a/test/jsonld/1.1/expand/so13-context.jsonld b/test/jsonld/1.1/expand/so13-context.jsonld
new file mode 100644
index 00000000..7c984d7c
--- /dev/null
+++ b/test/jsonld/1.1/expand/so13-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": [{
+ "term": "http://example.org/term"
+ }, {
+ "term2": "http://example.org/term2"
+ }]
+}
diff --git a/test/jsonld/1.1/expand/so13-in.jsonld b/test/jsonld/1.1/expand/so13-in.jsonld
new file mode 100644
index 00000000..ce04701e
--- /dev/null
+++ b/test/jsonld/1.1/expand/so13-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@import": "so13-context.jsonld"
+ },
+ "term": "value"
+}
diff --git a/test/jsonld/1.1/expand/tn01-in.jsonld b/test/jsonld/1.1/expand/tn01-in.jsonld
new file mode 100644
index 00000000..5e83158e
--- /dev/null
+++ b/test/jsonld/1.1/expand/tn01-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "notype": {"@id": "http://example.com/notype", "@type": "@none"}
+ },
+ "notype": [
+ "string",
+ true,
+ false,
+ 1,
+ 10.0,
+ {"@value": "plain"},
+ {"@value": true, "@type": "xsd:boolean"},
+ {"@value": "english", "@language": "en"},
+ {"@value": "2018-02-17", "@type": "xsd:date"},
+ {"@id": "http://example.com/iri"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/tn02-in.jsonld b/test/jsonld/1.1/expand/tn02-in.jsonld
new file mode 100644
index 00000000..79c40761
--- /dev/null
+++ b/test/jsonld/1.1/expand/tn02-in.jsonld
@@ -0,0 +1,19 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "notype": {"@id": "http://example.com/notype", "@type": "@none"}
+ },
+ "notype": [
+ "string",
+ true,
+ false,
+ 1,
+ 10.0,
+ {"@value": "plain"},
+ {"@value": true, "@type": "xsd:boolean"},
+ {"@value": "english", "@language": "en"},
+ {"@value": "2018-02-17", "@type": "xsd:date"},
+ {"@id": "http://example.com/iri"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/expand/tn02-out.jsonld b/test/jsonld/1.1/expand/tn02-out.jsonld
new file mode 100644
index 00000000..2398cf62
--- /dev/null
+++ b/test/jsonld/1.1/expand/tn02-out.jsonld
@@ -0,0 +1,14 @@
+[{
+ "http://example.com/notype": [
+ {"@value": "string"},
+ {"@value": true},
+ {"@value": false},
+ {"@value": 1},
+ {"@value": 10.0},
+ {"@value": "plain"},
+ {"@value": true, "@type": "http://www.w3.org/2001/XMLSchema#boolean"},
+ {"@value": "english", "@language": "en"},
+ {"@value": "2018-02-17", "@type": "http://www.w3.org/2001/XMLSchema#date"},
+ {"@id": "http://example.com/iri"}
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten-manifest.jsonld b/test/jsonld/1.1/flatten-manifest.jsonld
new file mode 100644
index 00000000..f627d8ed
--- /dev/null
+++ b/test/jsonld/1.1/flatten-manifest.jsonld
@@ -0,0 +1,435 @@
+{
+ "@context": ["context.jsonld", {"@base": "flatten-manifest"}],
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "Flattening",
+ "description": "These tests implement the requirements for the JSON-LD [Flattening Algorithm](https://www.w3.org/TR/json-ld11-api/#flattening-algorithm).",
+ "baseIri": "https://w3c.github.io/json-ld-api/tests/",
+ "sequence": [
+ {
+ "@id": "#t0001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "drop free-floating nodes",
+ "purpose": "Flattening drops unreferenced nodes having only @id",
+ "input": "flatten/0001-in.jsonld",
+ "expect": "flatten/0001-out.jsonld"
+ }, {
+ "@id": "#t0002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "basic",
+ "purpose": "Flattening terms with different types of values",
+ "input": "flatten/0002-in.jsonld",
+ "expect": "flatten/0002-out.jsonld"
+ }, {
+ "@id": "#t0003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "drop null and unmapped properties",
+ "purpose": "Verifies that null values and unmapped properties are removed from expanded output",
+ "input": "flatten/0003-in.jsonld",
+ "expect": "flatten/0003-out.jsonld"
+ }, {
+ "@id": "#t0004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "optimize @set, keep empty arrays",
+ "purpose": "Uses of @set are removed in expansion; values of @set, or just plain values which are empty arrays are retained",
+ "input": "flatten/0004-in.jsonld",
+ "expect": "flatten/0004-out.jsonld"
+ }, {
+ "@id": "#t0005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "do not expand aliased @id/@type",
+ "purpose": "If a keyword is aliased, it is not used when flattening",
+ "input": "flatten/0005-in.jsonld",
+ "expect": "flatten/0005-out.jsonld"
+ }, {
+ "@id": "#t0006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "alias keywords",
+ "purpose": "Aliased keywords expand in resulting document",
+ "input": "flatten/0006-in.jsonld",
+ "expect": "flatten/0006-out.jsonld"
+ }, {
+ "@id": "#t0007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "date type-coercion",
+ "purpose": "Expand strings to expanded value with @type: xsd:dateTime",
+ "input": "flatten/0007-in.jsonld",
+ "expect": "flatten/0007-out.jsonld"
+ }, {
+ "@id": "#t0008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "@value with @language",
+ "purpose": "Keep expanded values with @language, drop non-conforming value objects containing just @language",
+ "input": "flatten/0008-in.jsonld",
+ "expect": "flatten/0008-out.jsonld"
+ }, {
+ "@id": "#t0009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "@graph with terms",
+ "purpose": "Use of @graph to contain multiple nodes within array",
+ "input": "flatten/0009-in.jsonld",
+ "expect": "flatten/0009-out.jsonld"
+ }, {
+ "@id": "#t0010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "native types",
+ "purpose": "Flattening native scalar retains native scalar within expanded value",
+ "input": "flatten/0010-in.jsonld",
+ "expect": "flatten/0010-out.jsonld"
+ }, {
+ "@id": "#t0011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "coerced @id",
+ "purpose": "A value of a property with @type: @id coercion expands to a node reference",
+ "input": "flatten/0011-in.jsonld",
+ "expect": "flatten/0011-out.jsonld"
+ }, {
+ "@id": "#t0012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "@graph with embed",
+ "purpose": "Flattening objects containing chained objects flattens all objects",
+ "input": "flatten/0012-in.jsonld",
+ "expect": "flatten/0012-out.jsonld"
+ }, {
+ "@id": "#t0013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "flatten already expanded",
+ "purpose": "Flattening an expanded/flattened document maintains input document",
+ "input": "flatten/0013-in.jsonld",
+ "expect": "flatten/0013-out.jsonld"
+ }, {
+ "@id": "#t0014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "@set of @value objects with keyword aliases",
+ "purpose": "Flattening aliased @set and @value",
+ "input": "flatten/0014-in.jsonld",
+ "expect": "flatten/0014-out.jsonld",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#t0015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "collapse set of sets, keep empty lists",
+ "purpose": "An array of multiple @set nodes are collapsed into a single array",
+ "input": "flatten/0015-in.jsonld",
+ "expect": "flatten/0015-out.jsonld"
+ }, {
+ "@id": "#t0016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "context reset",
+ "purpose": "Setting @context to null within an embedded object resets back to initial context state",
+ "input": "flatten/0016-in.jsonld",
+ "expect": "flatten/0016-out.jsonld"
+ }, {
+ "@id": "#t0017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "@graph and @id aliased",
+ "purpose": "Flattening with @graph and @id aliases",
+ "input": "flatten/0017-in.jsonld",
+ "expect": "flatten/0017-out.jsonld"
+ }, {
+ "@id": "#t0018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "override default @language",
+ "purpose": "override default @language in terms; only language-tag strings",
+ "input": "flatten/0018-in.jsonld",
+ "expect": "flatten/0018-out.jsonld"
+ }, {
+ "@id": "#t0019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "remove @value = null",
+ "purpose": "Flattening a value of null removes the value",
+ "input": "flatten/0019-in.jsonld",
+ "expect": "flatten/0019-out.jsonld"
+ }, {
+ "@id": "#t0020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "do not remove @graph if not at top-level",
+ "purpose": "@graph used under a node is retained",
+ "input": "flatten/0020-in.jsonld",
+ "expect": "flatten/0020-out.jsonld"
+ }, {
+ "@id": "#t0021",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "do not remove @graph at top-level if not only property",
+ "purpose": "@graph used at the top level is retained if there are other properties",
+ "input": "flatten/0021-in.jsonld",
+ "expect": "flatten/0021-out.jsonld"
+ }, {
+ "@id": "#t0022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "flatten value with default language",
+ "purpose": "Flattening with a default language applies that language to string values",
+ "input": "flatten/0022-in.jsonld",
+ "expect": "flatten/0022-out.jsonld"
+ }, {
+ "@id": "#t0023",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Flattening list/set with coercion",
+ "purpose": "Flattening lists and sets with properties having coercion coerces list/set values",
+ "input": "flatten/0023-in.jsonld",
+ "expect": "flatten/0023-out.jsonld"
+ }, {
+ "@id": "#t0024",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Multiple contexts",
+ "purpose": "Tests that contexts in an array are merged",
+ "input": "flatten/0024-in.jsonld",
+ "expect": "flatten/0024-out.jsonld"
+ }, {
+ "@id": "#t0025",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Problematic IRI flattening tests",
+ "purpose": "Flattening different kinds of terms and Compact IRIs",
+ "input": "flatten/0025-in.jsonld",
+ "expect": "flatten/0025-out.jsonld"
+ }, {
+ "@id": "#t0026",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Term definition with @id: @type",
+ "purpose": "Flattening term mapping to @type uses @type syntax",
+ "input": "flatten/0026-in.jsonld",
+ "expect": "flatten/0026-out.jsonld",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#t0027",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Duplicate values in @list and @set",
+ "purpose": "Duplicate values in @list and @set are not merged",
+ "input": "flatten/0027-in.jsonld",
+ "expect": "flatten/0027-out.jsonld"
+ }, {
+ "@id": "#t0028",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Use @vocab in properties and @type but not in @id",
+ "purpose": "@vocab is used to compact properties and @type, but is not used for @id",
+ "input": "flatten/0028-in.jsonld",
+ "expect": "flatten/0028-out.jsonld"
+ }, {
+ "@id": "#t0030",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Language maps",
+ "purpose": "Language Maps expand values to include @language",
+ "input": "flatten/0030-in.jsonld",
+ "expect": "flatten/0030-out.jsonld"
+ }, {
+ "@id": "#t0031",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "type-coercion of native types",
+ "purpose": "Flattening native types with type coercion adds the coerced type to an expanded value representation and retains the native value representation",
+ "input": "flatten/0031-in.jsonld",
+ "expect": "flatten/0031-out.jsonld"
+ }, {
+ "@id": "#t0032",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Null term and @vocab",
+ "purpose": "Mapping a term to null decouples it from @vocab",
+ "input": "flatten/0032-in.jsonld",
+ "expect": "flatten/0032-out.jsonld"
+ }, {
+ "@id": "#t0033",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Using @vocab with with type-coercion",
+ "purpose": "Verifies that terms can be defined using @vocab",
+ "input": "flatten/0033-in.jsonld",
+ "expect": "flatten/0033-out.jsonld"
+ }, {
+ "@id": "#t0034",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Multiple properties expanding to the same IRI",
+ "purpose": "Verifies multiple values from separate terms are deterministically made multiple values of the IRI associated with the terms",
+ "input": "flatten/0034-in.jsonld",
+ "expect": "flatten/0034-out.jsonld"
+ }, {
+ "@id": "#t0035",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Language maps with @vocab, default language, and colliding property",
+ "purpose": "Pathological tests of language maps",
+ "input": "flatten/0035-in.jsonld",
+ "expect": "flatten/0035-out.jsonld"
+ }, {
+ "@id": "#t0036",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Flattening @index",
+ "purpose": "Flattening index maps for terms defined with @container: @index",
+ "input": "flatten/0036-in.jsonld",
+ "expect": "flatten/0036-out.jsonld"
+ }, {
+ "@id": "#t0037",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Flattening reverse properties",
+ "purpose": "Flattening @reverse keeps @reverse",
+ "input": "flatten/0037-in.jsonld",
+ "expect": "flatten/0037-out.jsonld"
+ }, {
+ "@id": "#t0038",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Flattening blank node labels",
+ "purpose": "Blank nodes are not relabeled during expansion",
+ "option": {"specVersion": "json-ld-1.0"},
+ "input": "flatten/0038-in.jsonld",
+ "expect": "flatten/0038-out.jsonld"
+ }, {
+ "@id": "#t0039",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Using terms in a reverse-maps",
+ "purpose": "Terms within @reverse are expanded",
+ "input": "flatten/0039-in.jsonld",
+ "expect": "flatten/0039-out.jsonld"
+ }, {
+ "@id": "#t0040",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "language and index expansion on non-objects",
+ "purpose": "Only invoke language and index map expansion if the value is a JSON object",
+ "input": "flatten/0040-in.jsonld",
+ "expect": "flatten/0040-out.jsonld"
+ }, {
+ "@id": "#t0041",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Free-floating sets and lists",
+ "purpose": "Free-floating values in sets are removed, free-floating lists are removed completely",
+ "input": "flatten/0041-in.jsonld",
+ "expect": "flatten/0041-out.jsonld"
+ }, {
+ "@id": "#t0042",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "List objects not equivalent",
+ "purpose": "Lists objects are implicit unlabeled blank nodes and thus never equivalent",
+ "input": "flatten/0042-in.jsonld",
+ "expect": "flatten/0042-out.jsonld"
+ }, {
+ "@id": "#t0043",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Sample test manifest extract",
+ "purpose": "Flatten a test manifest",
+ "input": "flatten/0043-in.jsonld",
+ "expect": "flatten/0043-out.jsonld"
+ }, {
+ "@id": "#t0044",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "compactArrays option",
+ "purpose": "Setting compactArrays to false causes single element arrays to be retained",
+ "option": {
+ "compactArrays": false
+ },
+ "input": "flatten/0044-in.jsonld",
+ "context": "flatten/0044-context.jsonld",
+ "expect": "flatten/0044-out.jsonld"
+ }, {
+ "@id": "#t0045",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Blank nodes with reverse properties",
+ "purpose": "Proper (re-)labeling of blank nodes if used with reverse properties.",
+ "input": "flatten/0045-in.jsonld",
+ "expect": "flatten/0045-out.jsonld"
+ }, {
+ "@id": "#t0046",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Empty string as identifier",
+ "purpose": "Usage of empty strings in identifiers needs special care when constructing the node map.",
+ "input": "flatten/0046-in.jsonld",
+ "expect": "flatten/0046-out.jsonld"
+ }, {
+ "@id": "#t0047",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Flatten using relative fragment identifier properly joins to base",
+ "purpose": "Compacting a relative round-trips",
+ "option": {"base": "http://example.org/"},
+ "input": "flatten/0047-in.jsonld",
+ "expect": "flatten/0047-out.jsonld"
+ }, {
+ "@id": "#t0048",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "@list with embedded object",
+ "purpose": "Node definitions contained within lists are flattend to top level.",
+ "input": "flatten/0048-in.jsonld",
+ "expect": "flatten/0048-out.jsonld"
+ }, {
+ "@id": "#t0049",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "context with JavaScript Object property names",
+ "purpose": "Flatten with context including JavaScript Object property names",
+ "input": "flatten/0049-in.jsonld",
+ "expect": "flatten/0049-out.jsonld"
+ }, {
+ "@id": "#te001",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:FlattenTest" ],
+ "name": "Conflicting indexes",
+ "purpose": "Verifies that an exception is raised in Flattening when conflicting indexes are found",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "flatten/e001-in.jsonld",
+ "expectErrorCode": "conflicting indexes"
+ }, {
+ "@id": "#tin01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Basic Included array",
+ "purpose": "Tests included blocks.",
+ "input": "flatten/in01-in.jsonld",
+ "expect": "flatten/in01-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Basic Included object",
+ "purpose": "Tests included blocks.",
+ "input": "flatten/in02-in.jsonld",
+ "expect": "flatten/in02-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Multiple properties mapping to @included are folded together",
+ "purpose": "Tests included blocks.",
+ "input": "flatten/in03-in.jsonld",
+ "expect": "flatten/in03-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Included containing @included",
+ "purpose": "Tests included blocks.",
+ "input": "flatten/in04-in.jsonld",
+ "expect": "flatten/in04-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "Property value with @included",
+ "purpose": "Tests included blocks.",
+ "input": "flatten/in05-in.jsonld",
+ "expect": "flatten/in05-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest"],
+ "name": "json.api example",
+ "purpose": "Tests included blocks.",
+ "input": "flatten/in06-in.jsonld",
+ "expect": "flatten/in06-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tli01",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FlattenTest" ],
+ "name": "@list containing an deep list",
+ "purpose": "Lists of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "flatten/li01-in.jsonld",
+ "expect": "flatten/li01-out.jsonld"
+ }, {
+ "@id": "#tli02",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FlattenTest" ],
+ "name": "@list containing empty @list",
+ "purpose": "Lists of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "flatten/li02-in.jsonld",
+ "expect": "flatten/li02-out.jsonld"
+ }, {
+ "@id": "#tli03",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FlattenTest" ],
+ "name": "@list containing mixed list values",
+ "purpose": "Lists of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "flatten/li03-in.jsonld",
+ "expect": "flatten/li03-out.jsonld"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/flatten/0001-in.jsonld b/test/jsonld/1.1/flatten/0001-in.jsonld
new file mode 100644
index 00000000..0bfd26f0
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0001-in.jsonld
@@ -0,0 +1 @@
+{"@id": "http://example.org/test#example"} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0001-out.jsonld b/test/jsonld/1.1/flatten/0001-out.jsonld
new file mode 100644
index 00000000..1e3ec721
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0001-out.jsonld
@@ -0,0 +1 @@
+[ ]
diff --git a/test/jsonld/1.1/flatten/0002-in.jsonld b/test/jsonld/1.1/flatten/0002-in.jsonld
new file mode 100644
index 00000000..e4598e55
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0002-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/test/jsonld/1.1/flatten/0002-out.jsonld b/test/jsonld/1.1/flatten/0002-out.jsonld
new file mode 100644
index 00000000..6c72e2d5
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0002-out.jsonld
@@ -0,0 +1,38 @@
+[
+ {
+ "@id": "http://example.com/id1",
+ "@type": [
+ "http://example.com/t1"
+ ],
+ "http://example.com/term1": [
+ {
+ "@value": "v1"
+ }
+ ],
+ "http://example.com/term2": [
+ {
+ "@type": "http://example.com/t2",
+ "@value": "v2"
+ }
+ ],
+ "http://example.com/term3": [
+ {
+ "@language": "en",
+ "@value": "v3"
+ }
+ ],
+ "http://example.com/term4": [
+ {
+ "@value": 4
+ }
+ ],
+ "http://example.com/term5": [
+ {
+ "@value": 50
+ },
+ {
+ "@value": 51
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0003-in.jsonld b/test/jsonld/1.1/flatten/0003-in.jsonld
new file mode 100644
index 00000000..2007f363
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0003-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/test/jsonld/1.1/flatten/0003-out.jsonld b/test/jsonld/1.1/flatten/0003-out.jsonld
new file mode 100644
index 00000000..1e3ec721
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0003-out.jsonld
@@ -0,0 +1 @@
+[ ]
diff --git a/test/jsonld/1.1/flatten/0004-in.jsonld b/test/jsonld/1.1/flatten/0004-in.jsonld
new file mode 100644
index 00000000..8499bfa0
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0004-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/test/jsonld/1.1/flatten/0004-out.jsonld b/test/jsonld/1.1/flatten/0004-out.jsonld
new file mode 100644
index 00000000..3e7c9947
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0004-out.jsonld
@@ -0,0 +1,25 @@
+[
+ {
+ "@id": "http://example.org/id",
+ "http://example.com/mylist1": [{"@list": []}],
+ "http://example.com/mylist2": [
+ {
+ "@list": [{"@value": "one item"}]
+ }
+ ],
+ "http://example.com/myset2": [],
+ "http://example.com/myset3": [{"@value": "v1"}],
+ "http://example.org/list1": [{"@list": []}],
+ "http://example.org/list2": [{"@list": []}],
+ "http://example.org/property": [
+ {
+ "@list": [{"@value": "one item"}]
+ }
+ ],
+ "http://example.org/set1": [],
+ "http://example.org/set2": [],
+ "http://example.org/set3": [],
+ "http://example.org/set4": [],
+ "http://example.org/set5": [{"@value": "one item"}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0005-in.jsonld b/test/jsonld/1.1/flatten/0005-in.jsonld
new file mode 100644
index 00000000..33622d53
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0005-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/test/jsonld/1.1/flatten/0005-out.jsonld b/test/jsonld/1.1/flatten/0005-out.jsonld
new file mode 100644
index 00000000..07b0bd48
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0005-out.jsonld
@@ -0,0 +1,39 @@
+[
+ {
+ "@id": "http://example.com/alice#me",
+ "http://xmlns.com/foaf/0.1/homepage": [
+ {
+ "@id": "http://example.com/alice"
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "Alice"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.com/bob#me",
+ "http://xmlns.com/foaf/0.1/homepage": [
+ {
+ "@id": "http://example.com/bob"
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "Bob"
+ }
+ ]
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/flatten/0005-in.jsonld#me",
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/bob#me"
+ },
+ {
+ "@id": "http://example.com/alice#me"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0006-in.jsonld b/test/jsonld/1.1/flatten/0006-in.jsonld
new file mode 100644
index 00000000..045e2a2a
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0006-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/test/jsonld/1.1/flatten/0006-out.jsonld b/test/jsonld/1.1/flatten/0006-out.jsonld
new file mode 100644
index 00000000..ed4c0b0c
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0006-out.jsonld
@@ -0,0 +1,28 @@
+[
+ {
+ "@id": "http://example.org/test#example1",
+ "http://example.org/test#property1": [
+ {
+ "@id": "http://example.org/test#example2"
+ }
+ ],
+ "http://example.org/test#property2": [
+ {
+ "@id": "http://example.org/test#example3"
+ }
+ ],
+ "http://example.org/test#property3": [
+ {
+ "@id": "http://example.org/test#example4"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#example2",
+ "http://example.org/test#property4": [
+ {
+ "@value": "foo"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0007-in.jsonld b/test/jsonld/1.1/flatten/0007-in.jsonld
new file mode 100644
index 00000000..b49fac4e
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0007-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/test/jsonld/1.1/flatten/0007-out.jsonld b/test/jsonld/1.1/flatten/0007-out.jsonld
new file mode 100644
index 00000000..34ab5847
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0007-out.jsonld
@@ -0,0 +1,24 @@
+[
+ {
+ "@id": "http://example.org/test#example1",
+ "http://example.org/vocab#date": [
+ {
+ "@value": "2011-01-25T00:00:00Z",
+ "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
+ }
+ ],
+ "http://example.org/vocab#embed": [
+ {
+ "@id": "http://example.org/test#example2"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#example2",
+ "http://example.org/vocab#parent": [
+ {
+ "@id": "http://example.org/test#example1"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0008-in.jsonld b/test/jsonld/1.1/flatten/0008-in.jsonld
new file mode 100644
index 00000000..a17b9493
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0008-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/test/jsonld/1.1/flatten/0008-out.jsonld b/test/jsonld/1.1/flatten/0008-out.jsonld
new file mode 100644
index 00000000..9d155e37
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0008-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.org/test",
+ "http://example.org/vocab#keep-full-value": [
+ {
+ "@value": "only value"
+ }
+ ],
+ "http://example.org/vocab#test": [
+ {
+ "@language": "en",
+ "@value": "test"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0009-in.jsonld b/test/jsonld/1.1/flatten/0009-in.jsonld
new file mode 100644
index 00000000..6acef5c5
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0009-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/test/jsonld/1.1/flatten/0009-out.jsonld b/test/jsonld/1.1/flatten/0009-out.jsonld
new file mode 100644
index 00000000..0d773a1c
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0009-out.jsonld
@@ -0,0 +1,62 @@
+[
+ {
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#chapter"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/contributor": [
+ {
+ "@value": "Writer"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "My Book"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#chapter",
+ "http://purl.org/dc/elements/1.1/description": [
+ {
+ "@value": "Fun"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "Chapter One"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "http://example.org/vocab#authored": [
+ {
+ "@id": "http://example.org/test#chapter"
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "Jane"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "John"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#book"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0010-in.jsonld b/test/jsonld/1.1/flatten/0010-in.jsonld
new file mode 100644
index 00000000..f2d0a384
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0010-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/test/jsonld/1.1/flatten/0010-out.jsonld b/test/jsonld/1.1/flatten/0010-out.jsonld
new file mode 100644
index 00000000..c42d4701
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0010-out.jsonld
@@ -0,0 +1,15 @@
+[
+ {
+ "@id": "http://example.org/test",
+ "http://example.org/vocab#bool": [
+ {
+ "@value": true
+ }
+ ],
+ "http://example.org/vocab#int": [
+ {
+ "@value": 123
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0011-in.jsonld b/test/jsonld/1.1/flatten/0011-in.jsonld
new file mode 100644
index 00000000..fa90d97d
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0011-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "dc11": "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",
+ "dc11:title": "Title",
+ "ex:contains": "http://example.org/test#chapter"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0011-out.jsonld b/test/jsonld/1.1/flatten/0011-out.jsonld
new file mode 100644
index 00000000..641638f7
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0011-out.jsonld
@@ -0,0 +1,15 @@
+[
+ {
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#chapter"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "Title"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0012-in.jsonld b/test/jsonld/1.1/flatten/0012-in.jsonld
new file mode 100644
index 00000000..ebda5732
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0012-in.jsonld
@@ -0,0 +1,39 @@
+{
+ "@context": {
+ "dc11": "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",
+ "dc11:description": "Fun",
+ "dc11: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",
+ "dc11:contributor": "Writer",
+ "dc11:title": "My Book",
+ "ex:contains": "http://example.org/test#chapter"
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0012-out.jsonld b/test/jsonld/1.1/flatten/0012-out.jsonld
new file mode 100644
index 00000000..0d773a1c
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0012-out.jsonld
@@ -0,0 +1,62 @@
+[
+ {
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#chapter"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/contributor": [
+ {
+ "@value": "Writer"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "My Book"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#chapter",
+ "http://purl.org/dc/elements/1.1/description": [
+ {
+ "@value": "Fun"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "Chapter One"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "http://example.org/vocab#authored": [
+ {
+ "@id": "http://example.org/test#chapter"
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "Jane"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "John"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#book"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0013-in.jsonld b/test/jsonld/1.1/flatten/0013-in.jsonld
new file mode 100644
index 00000000..7795576f
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0013-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/test/jsonld/1.1/flatten/0013-out.jsonld b/test/jsonld/1.1/flatten/0013-out.jsonld
new file mode 100644
index 00000000..6c72e2d5
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0013-out.jsonld
@@ -0,0 +1,38 @@
+[
+ {
+ "@id": "http://example.com/id1",
+ "@type": [
+ "http://example.com/t1"
+ ],
+ "http://example.com/term1": [
+ {
+ "@value": "v1"
+ }
+ ],
+ "http://example.com/term2": [
+ {
+ "@type": "http://example.com/t2",
+ "@value": "v2"
+ }
+ ],
+ "http://example.com/term3": [
+ {
+ "@language": "en",
+ "@value": "v3"
+ }
+ ],
+ "http://example.com/term4": [
+ {
+ "@value": 4
+ }
+ ],
+ "http://example.com/term5": [
+ {
+ "@value": 50
+ },
+ {
+ "@value": 51
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0014-in.jsonld b/test/jsonld/1.1/flatten/0014-in.jsonld
new file mode 100644
index 00000000..ba913ff2
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0014-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/test/jsonld/1.1/flatten/0014-out.jsonld b/test/jsonld/1.1/flatten/0014-out.jsonld
new file mode 100644
index 00000000..0ffd6710
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0014-out.jsonld
@@ -0,0 +1,45 @@
+[
+ {
+ "@id": "http://example.org/test#example1",
+ "http://example.org/test#property1": [
+ {
+ "@id": "http://example.org/test#example2"
+ }
+ ],
+ "http://example.org/test#property2": [
+ {
+ "@id": "http://example.org/test#example3"
+ }
+ ],
+ "http://example.org/test#property3": [
+ {
+ "@id": "http://example.org/test#example4"
+ }
+ ],
+ "http://example.org/test#property4": [
+ {
+ "@id": "http://example.org/test#example4"
+ }
+ ],
+ "http://example.org/test#property6": [
+
+ ]
+ },
+ {
+ "@id": "http://example.org/test#example2",
+ "http://example.org/test#property4": [
+ {
+ "@value": "foo"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#example4",
+ "http://example.org/test#property5": [
+ {
+ "@type": "http://www.w3.org/2001/XMLSchema#date",
+ "@value": "2012-03-31"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0015-in.jsonld b/test/jsonld/1.1/flatten/0015-in.jsonld
new file mode 100644
index 00000000..ae60d731
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0015-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/test/jsonld/1.1/flatten/0015-out.jsonld b/test/jsonld/1.1/flatten/0015-out.jsonld
new file mode 100644
index 00000000..a69271bf
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0015-out.jsonld
@@ -0,0 +1,35 @@
+[
+ {
+ "@id": "http://example.org/id",
+ "http://example.com/mylist1": [
+ {
+ "@list": [
+
+ ]
+ }
+ ],
+ "http://example.com/myset1": [
+
+ ],
+ "http://example.com/myset2": [
+
+ ],
+ "http://example.com/myset3": [
+ {
+ "@value": "hello"
+ },
+ {
+ "@value": "this"
+ },
+ {
+ "@value": "will"
+ },
+ {
+ "@value": "be"
+ },
+ {
+ "@value": "collapsed"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0016-in.jsonld b/test/jsonld/1.1/flatten/0016-in.jsonld
new file mode 100644
index 00000000..c151040a
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0016-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/test/jsonld/1.1/flatten/0016-out.jsonld b/test/jsonld/1.1/flatten/0016-out.jsonld
new file mode 100644
index 00000000..ffb3983a
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0016-out.jsonld
@@ -0,0 +1,48 @@
+[
+ {
+ "@id": "http://example.org/id1",
+ "http://example.com/emptyobj": [
+ {
+ "@id": "_:b0"
+ }
+ ],
+ "http://example.com/mylist1": [
+ {
+ "@list": [
+
+ ]
+ }
+ ],
+ "http://example.com/mylist2": [
+ {
+ "@list": [
+ {
+ "@value": 2
+ },
+ {
+ "@value": "hi"
+ }
+ ]
+ }
+ ],
+ "http://example.com/myproperty": [
+ {
+ "@id": "http://example.org/id2"
+ }
+ ],
+ "http://example.com/myset1": [
+
+ ],
+ "http://example.com/myset2": [
+
+ ]
+ },
+ {
+ "@id": "http://example.org/id2",
+ "http://example.org/myproperty2": [
+ {
+ "@value": "ok"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0017-in.jsonld b/test/jsonld/1.1/flatten/0017-in.jsonld
new file mode 100644
index 00000000..dea8bf80
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0017-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/test/jsonld/1.1/flatten/0017-out.jsonld b/test/jsonld/1.1/flatten/0017-out.jsonld
new file mode 100644
index 00000000..0d773a1c
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0017-out.jsonld
@@ -0,0 +1,62 @@
+[
+ {
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#chapter"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/contributor": [
+ {
+ "@value": "Writer"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "My Book"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#chapter",
+ "http://purl.org/dc/elements/1.1/description": [
+ {
+ "@value": "Fun"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "Chapter One"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "http://example.org/vocab#authored": [
+ {
+ "@id": "http://example.org/test#chapter"
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "Jane"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "John"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#book"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0018-in.jsonld b/test/jsonld/1.1/flatten/0018-in.jsonld
new file mode 100644
index 00000000..21933fda
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0018-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/test/jsonld/1.1/flatten/0018-out.jsonld b/test/jsonld/1.1/flatten/0018-out.jsonld
new file mode 100644
index 00000000..2297bc26
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0018-out.jsonld
@@ -0,0 +1,40 @@
+[
+ {
+ "@id": "http://example.org/test",
+ "http://example.org/vocab#german": [
+ {
+ "@value": "hallo",
+ "@language": "de"
+ },
+ {
+ "@value": 2
+ },
+ {
+ "@value": true
+ }
+ ],
+ "http://example.org/vocab#nolang": [
+ {
+ "@value": "no language"
+ },
+ {
+ "@value": 3
+ },
+ {
+ "@value": false
+ }
+ ],
+ "http://example.org/vocab#test-default": [
+ {
+ "@value": "hello",
+ "@language": "en"
+ },
+ {
+ "@value": 1
+ },
+ {
+ "@value": true
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0019-in.jsonld b/test/jsonld/1.1/flatten/0019-in.jsonld
new file mode 100644
index 00000000..b91f8860
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0019-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "myproperty": "http://example.com/myproperty"
+ },
+ "myproperty": { "@value" : null }
+}
diff --git a/test/jsonld/1.1/flatten/0019-out.jsonld b/test/jsonld/1.1/flatten/0019-out.jsonld
new file mode 100644
index 00000000..1e3ec721
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0019-out.jsonld
@@ -0,0 +1 @@
+[ ]
diff --git a/test/jsonld/1.1/flatten/0020-in.jsonld b/test/jsonld/1.1/flatten/0020-in.jsonld
new file mode 100644
index 00000000..989e1192
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0020-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/test/jsonld/1.1/flatten/0020-out.jsonld b/test/jsonld/1.1/flatten/0020-out.jsonld
new file mode 100644
index 00000000..9ce7303b
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0020-out.jsonld
@@ -0,0 +1,80 @@
+[
+ {
+ "@id": "_:b0",
+ "@graph": [
+ {
+ "@id": "http://example.org/test#chapter1",
+ "http://purl.org/dc/elements/1.1/description": [
+ {
+ "@value": "Fun"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "Chapter One"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#chapter2",
+ "http://purl.org/dc/elements/1.1/description": [
+ {
+ "@value": "More fun"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "Chapter Two"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#chapter"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/contributor": [
+ {
+ "@value": "Writer"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "My Book"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "http://example.org/vocab#authored": [
+ {
+ "@id": "_:b0"
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "Jane"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "John"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#book"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0021-in.jsonld b/test/jsonld/1.1/flatten/0021-in.jsonld
new file mode 100644
index 00000000..e52fd1b8
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0021-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/test/jsonld/1.1/flatten/0021-out.jsonld b/test/jsonld/1.1/flatten/0021-out.jsonld
new file mode 100644
index 00000000..1b9868be
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0021-out.jsonld
@@ -0,0 +1,98 @@
+[
+ {
+ "@id": "_:b0",
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "My first graph"
+ }
+ ],
+ "@graph": [
+ {
+ "@id": "http://example.org/test#book",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#chapter"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/contributor": [
+ {
+ "@value": "Writer"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "My Book"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#jane",
+ "http://example.org/vocab#authored": [
+ {
+ "@id": "_:b1"
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "Jane"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#john",
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "John"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#library",
+ "http://example.org/vocab#contains": [
+ {
+ "@id": "http://example.org/test#book"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "_:b1",
+ "@graph": [
+ {
+ "@id": "http://example.org/test#chapter1",
+ "http://purl.org/dc/elements/1.1/description": [
+ {
+ "@value": "Fun"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "Chapter One"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#chapter2",
+ "http://purl.org/dc/elements/1.1/description": [
+ {
+ "@value": "More fun"
+ }
+ ],
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "Chapter Two"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/test#chapter3",
+ "http://purl.org/dc/elements/1.1/title": [
+ {
+ "@value": "Chapter Three"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0022-in.jsonld b/test/jsonld/1.1/flatten/0022-in.jsonld
new file mode 100644
index 00000000..e7f938ae
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0022-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/test/jsonld/1.1/flatten/0022-out.jsonld b/test/jsonld/1.1/flatten/0022-out.jsonld
new file mode 100644
index 00000000..1de1e9b6
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0022-out.jsonld
@@ -0,0 +1,11 @@
+[
+ {
+ "@id": "_:b0",
+ "http://example.com/term": [
+ {
+ "@value": "v",
+ "@language": "en"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0023-in.jsonld b/test/jsonld/1.1/flatten/0023-in.jsonld
new file mode 100644
index 00000000..2a33783d
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0023-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/test/jsonld/1.1/flatten/0023-out.jsonld b/test/jsonld/1.1/flatten/0023-out.jsonld
new file mode 100644
index 00000000..b9318340
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0023-out.jsonld
@@ -0,0 +1,65 @@
+[
+ {
+ "@id": "_:b0",
+ "http://example.com/datelist": [
+ {
+ "@list": [
+ {
+ "@value": "2012-04-12",
+ "@type": "http://www.w3.org/2001/XMLSchema#date"
+ }
+ ]
+ }
+ ],
+ "http://example.com/dateprop": [
+ {
+ "@list": [
+ {
+ "@value": "2012-04-12",
+ "@type": "http://www.w3.org/2001/XMLSchema#date"
+ }
+ ]
+ }
+ ],
+ "http://example.com/dateprop2": [
+ {
+ "@value": "2012-04-12",
+ "@type": "http://www.w3.org/2001/XMLSchema#date"
+ }
+ ],
+ "http://example.com/dateset": [
+ {
+ "@value": "2012-04-12",
+ "@type": "http://www.w3.org/2001/XMLSchema#date"
+ }
+ ],
+ "http://example.com/idlist": [
+ {
+ "@list": [
+ {
+ "@id": "http://example.org/id"
+ }
+ ]
+ }
+ ],
+ "http://example.com/idprop": [
+ {
+ "@list": [
+ {
+ "@id": "http://example.org/id"
+ }
+ ]
+ }
+ ],
+ "http://example.com/idprop2": [
+ {
+ "@id": "http://example.org/id"
+ }
+ ],
+ "http://example.com/idset": [
+ {
+ "@id": "http://example.org/id"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0024-in.jsonld b/test/jsonld/1.1/flatten/0024-in.jsonld
new file mode 100644
index 00000000..fcf010c4
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0024-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/test/jsonld/1.1/flatten/0024-out.jsonld b/test/jsonld/1.1/flatten/0024-out.jsonld
new file mode 100644
index 00000000..8c0a7c6d
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0024-out.jsonld
@@ -0,0 +1,25 @@
+[
+ {
+ "@id": "http://example.com/speakers#Alice",
+ "http://www.w3.org/2002/12/cal/ical#location": [
+ {
+ "@value": "Lyon Convention Centre, Lyon, France"
+ }
+ ],
+ "http://www.w3.org/2002/12/cal/ical#summary": [
+ {
+ "@value": "Alice Talk"
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/homepage": [
+ {
+ "@id": "http://xkcd.com/177/"
+ }
+ ],
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "Alice"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0025-in.jsonld b/test/jsonld/1.1/flatten/0025-in.jsonld
new file mode 100644
index 00000000..276851f6
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0025-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "foo": "http://example.com/foo/",
+ "foo:bar": "http://example.com/foo/bar",
+ "bar": {"@id": "foo:bar", "@type": "@id"},
+ "_": "http://example.com/underscore/"
+ },
+ "@type": ["foo", "foo:bar", "_"]
+}
diff --git a/test/jsonld/1.1/flatten/0025-out.jsonld b/test/jsonld/1.1/flatten/0025-out.jsonld
new file mode 100644
index 00000000..cc9881d9
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0025-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "_:b0",
+ "@type": [
+ "http://example.com/foo/",
+ "http://example.com/foo/bar",
+ "http://example.com/underscore/"
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0026-in.jsonld b/test/jsonld/1.1/flatten/0026-in.jsonld
new file mode 100644
index 00000000..36d8cac7
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0026-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/test/jsonld/1.1/flatten/0026-out.jsonld b/test/jsonld/1.1/flatten/0026-out.jsonld
new file mode 100644
index 00000000..9104544c
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0026-out.jsonld
@@ -0,0 +1,21 @@
+[
+ {
+ "@id": "http://example.com/a",
+ "@type": [
+ "http://example.com/b"
+ ]
+ },
+ {
+ "@id": "http://example.com/c",
+ "@type": [
+ "http://example.com/d",
+ "http://example.com/e"
+ ]
+ },
+ {
+ "@id": "http://example.com/f",
+ "@type": [
+ "http://example.com/g"
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0027-in.jsonld b/test/jsonld/1.1/flatten/0027-in.jsonld
new file mode 100644
index 00000000..6c47cfb7
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0027-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/test/jsonld/1.1/flatten/0027-out.jsonld b/test/jsonld/1.1/flatten/0027-out.jsonld
new file mode 100644
index 00000000..ba237d63
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0027-out.jsonld
@@ -0,0 +1,34 @@
+[
+ {
+ "@id": "http://example.org/id",
+ "http://example.com/mylist": [
+ {
+ "@list": [
+ {
+ "@value": 1
+ },
+ {
+ "@value": 2
+ },
+ {
+ "@value": 2
+ },
+ {
+ "@value": 3
+ }
+ ]
+ }
+ ],
+ "http://example.com/myset": [
+ {
+ "@value": 1
+ },
+ {
+ "@value": 2
+ },
+ {
+ "@value": 3
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0028-in.jsonld b/test/jsonld/1.1/flatten/0028-in.jsonld
new file mode 100644
index 00000000..4f05d0e4
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0028-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/test/jsonld/1.1/flatten/0028-out.jsonld b/test/jsonld/1.1/flatten/0028-out.jsonld
new file mode 100644
index 00000000..8e4cab76
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0028-out.jsonld
@@ -0,0 +1,28 @@
+[
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/flatten/example1",
+ "@type": [
+ "http://example.org/vocab#test"
+ ],
+ "http://example.org/vocab#date": [
+ {
+ "@value": "2011-01-25T00:00:00Z",
+ "@type": "http://example.org/vocab#dateTime"
+ }
+ ],
+ "http://example.org/vocab#embed": [
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/flatten/example2"
+ }
+ ]
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/flatten/example2",
+ "http://example.org/vocab#expandedDate": [
+ {
+ "@type": "http://example.org/vocab#dateTime",
+ "@value": "2012-08-01T00:00:00Z"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0030-in.jsonld b/test/jsonld/1.1/flatten/0030-in.jsonld
new file mode 100644
index 00000000..ca711673
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0030-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/test/jsonld/1.1/flatten/0030-out.jsonld b/test/jsonld/1.1/flatten/0030-out.jsonld
new file mode 100644
index 00000000..0907ec14
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0030-out.jsonld
@@ -0,0 +1,19 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {
+ "@value": "Die Königin",
+ "@language": "de"
+ },
+ {
+ "@value": "Ihre Majestät",
+ "@language": "de"
+ },
+ {
+ "@value": "The Queen",
+ "@language": "en"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0031-in.jsonld b/test/jsonld/1.1/flatten/0031-in.jsonld
new file mode 100644
index 00000000..192ff27c
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0031-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/test/jsonld/1.1/flatten/0031-out.jsonld b/test/jsonld/1.1/flatten/0031-out.jsonld
new file mode 100644
index 00000000..57906bfa
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0031-out.jsonld
@@ -0,0 +1,23 @@
+[
+ {
+ "@id": "http://example.org/test#example1",
+ "http://example.org/vocab#boolean": [
+ {
+ "@value": true,
+ "@type": "http://www.w3.org/2001/XMLSchema#boolean"
+ }
+ ],
+ "http://example.org/vocab#double": [
+ {
+ "@value": 123.45,
+ "@type": "http://www.w3.org/2001/XMLSchema#double"
+ }
+ ],
+ "http://example.org/vocab#integer": [
+ {
+ "@value": 1,
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0032-in.jsonld b/test/jsonld/1.1/flatten/0032-in.jsonld
new file mode 100644
index 00000000..920554fc
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0032-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/test/jsonld/1.1/flatten/0032-out.jsonld b/test/jsonld/1.1/flatten/0032-out.jsonld
new file mode 100644
index 00000000..fbe9a156
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0032-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://me.markus-lanthaler.com/",
+ "http://xmlns.com/foaf/0.1/name": [
+ {
+ "@value": "Markus Lanthaler"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0033-in.jsonld b/test/jsonld/1.1/flatten/0033-in.jsonld
new file mode 100644
index 00000000..abf6feed
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0033-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/test/jsonld/1.1/flatten/0033-out.jsonld b/test/jsonld/1.1/flatten/0033-out.jsonld
new file mode 100644
index 00000000..ad4046a7
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0033-out.jsonld
@@ -0,0 +1,21 @@
+[
+ {
+ "@id": "_:b0",
+ "http://example.com/vocab#created_at": [
+ {
+ "@value": "2012-10-28",
+ "@type": "http://www.w3.org/2001/XMLSchema#date"
+ }
+ ],
+ "http://example.com/vocab#homepage": [
+ {
+ "@id": "http://www.markus-lanthaler.com/"
+ }
+ ],
+ "http://example.com/vocab#name": [
+ {
+ "@value": "Markus Lanthaler"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0034-in.jsonld b/test/jsonld/1.1/flatten/0034-in.jsonld
new file mode 100644
index 00000000..22bb6039
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0034-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/test/jsonld/1.1/flatten/0034-out.jsonld b/test/jsonld/1.1/flatten/0034-out.jsonld
new file mode 100644
index 00000000..cdc4df49
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0034-out.jsonld
@@ -0,0 +1,22 @@
+[
+ {
+ "@id": "http://example.com/IriCollissions",
+ "http://example.com/vocab/collidingTerm": [
+ {
+ "@value": "value 1"
+ },
+ {
+ "@value": 2
+ },
+ {
+ "@value": 3
+ },
+ {
+ "@value": "four"
+ },
+ {
+ "@value": 5
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0035-in.jsonld b/test/jsonld/1.1/flatten/0035-in.jsonld
new file mode 100644
index 00000000..7bf59112
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0035-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/test/jsonld/1.1/flatten/0035-out.jsonld b/test/jsonld/1.1/flatten/0035-out.jsonld
new file mode 100644
index 00000000..c3509762
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0035-out.jsonld
@@ -0,0 +1,27 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/label": [
+ {
+ "@value": "Il re",
+ "@language": "it"
+ },
+ {
+ "@language": "en",
+ "@value": "The king"
+ },
+ {
+ "@value": "Die Königin",
+ "@language": "de"
+ },
+ {
+ "@value": "Ihre Majestät",
+ "@language": "de"
+ },
+ {
+ "@value": "The Queen",
+ "@language": "en"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0036-in.jsonld b/test/jsonld/1.1/flatten/0036-in.jsonld
new file mode 100644
index 00000000..23c99b55
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0036-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/test/jsonld/1.1/flatten/0036-out.jsonld b/test/jsonld/1.1/flatten/0036-out.jsonld
new file mode 100644
index 00000000..c4392f9a
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0036-out.jsonld
@@ -0,0 +1,128 @@
+[
+ {
+ "@id": "http://example.org/indexTest",
+ "http://example.com/container": [
+ {
+ "@id": "http://example.org/nodeWithoutIndexA"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexA"
+ },
+ {
+ "@value": 1,
+ "@index": "A"
+ },
+ {
+ "@value": true,
+ "@index": "A"
+ },
+ {
+ "@value": false,
+ "@index": "A"
+ },
+ {
+ "@value": "simple string A",
+ "@index": "A"
+ },
+ {
+ "@type": "http://example.org/type",
+ "@value": "typed literal A",
+ "@index": "A"
+ },
+ {
+ "@language": "en",
+ "@value": "language-tagged string A",
+ "@index": "A"
+ },
+ {
+ "@value": "simple string B",
+ "@index": "B"
+ },
+ {
+ "@id": "http://example.org/nodeWithoutIndexC"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexC"
+ },
+ {
+ "@value": 3,
+ "@index": "C"
+ },
+ {
+ "@value": true,
+ "@index": "C"
+ },
+ {
+ "@value": false,
+ "@index": "C"
+ },
+ {
+ "@value": "simple string C",
+ "@index": "C"
+ },
+ {
+ "@type": "http://example.org/type",
+ "@value": "typed literal C",
+ "@index": "C"
+ },
+ {
+ "@language": "en",
+ "@value": "language-tagged string C",
+ "@index": "C"
+ }
+ ],
+ "http://example.com/property": [
+ {
+ "@id": "http://example.org/nodeWithoutIndexProp"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexProp"
+ },
+ {
+ "@index": "prop",
+ "@value": 3
+ },
+ {
+ "@index": "prop",
+ "@value": true
+ },
+ {
+ "@index": "prop",
+ "@value": false
+ },
+ {
+ "@value": "simple string no index"
+ },
+ {
+ "@index": "prop",
+ "@type": "http://example.org/type",
+ "@value": "typed literal Prop"
+ },
+ {
+ "@index": "prop",
+ "@language": "en",
+ "@value": "language-tagged string Prop"
+ }
+ ]
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexA",
+ "@index": "this overrides the 'A' index from the container"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexC",
+ "@index": "this overrides the 'C' index from the container"
+ },
+ {
+ "@id": "http://example.org/nodeWithIndexProp",
+ "@index": "prop"
+ },
+ {
+ "@id": "http://example.org/nodeWithoutIndexA",
+ "@index": "A"
+ },
+ {
+ "@id": "http://example.org/nodeWithoutIndexC",
+ "@index": "C"
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0037-in.jsonld b/test/jsonld/1.1/flatten/0037-in.jsonld
new file mode 100644
index 00000000..f63e141a
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0037-in.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "@id": "http://example.com/people/dave"
+ },
+ {
+ "@id": "http://example.com/people/gregg"
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0037-out.jsonld b/test/jsonld/1.1/flatten/0037-out.jsonld
new file mode 100644
index 00000000..486a1c47
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0037-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/people/dave",
+ "http://xmlns.com/foaf/0.1/knows": [ { "@id": "http://example.com/people/markus" } ]
+ },
+ {
+ "@id": "http://example.com/people/gregg",
+ "http://xmlns.com/foaf/0.1/knows": [ { "@id": "http://example.com/people/markus" } ]
+ },
+ {
+ "@id": "http://example.com/people/markus",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0038-in.jsonld b/test/jsonld/1.1/flatten/0038-in.jsonld
new file mode 100644
index 00000000..17071294
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0038-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/test/jsonld/1.1/flatten/0038-out.jsonld b/test/jsonld/1.1/flatten/0038-out.jsonld
new file mode 100644
index 00000000..c473598e
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0038-out.jsonld
@@ -0,0 +1,44 @@
+[
+ {
+ "@id": "_:b0",
+ "@type": [
+ "_:b0"
+ ],
+ "_:b0": [
+ {
+ "@id": "_:b0"
+ },
+ {
+ "@id": "_:b1"
+ },
+ {
+ "@value": "plain value"
+ },
+ {
+ "@id": "_:b2"
+ },
+ {
+ "@id": "_:b3"
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/flatten/relativeIri"
+ }
+ ]
+ },
+ {
+ "@id": "_:b1",
+ "_:b0": [
+ {
+ "@value": "term"
+ }
+ ]
+ },
+ {
+ "@id": "_:b2",
+ "_:b0": [
+ {
+ "@value": "termId"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0039-in.jsonld b/test/jsonld/1.1/flatten/0039-in.jsonld
new file mode 100644
index 00000000..9fa97625
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0039-in.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "http://example.com/people/markus",
+ "@reverse": {
+ "http://xmlns.com/foaf/0.1/knows": [
+ {
+ "http://xmlns.com/foaf/0.1/name": "Dave Longley"
+ },
+ {
+ "http://xmlns.com/foaf/0.1/name": "Gregg Kellogg"
+ }
+ ]
+ },
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0039-out.jsonld b/test/jsonld/1.1/flatten/0039-out.jsonld
new file mode 100644
index 00000000..a5fa10be
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0039-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "_:b0",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Dave Longley" } ],
+ "http://xmlns.com/foaf/0.1/knows": [ { "@id": "http://example.com/people/markus" } ]
+ },
+ {
+ "@id": "_:b1",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Gregg Kellogg" } ],
+ "http://xmlns.com/foaf/0.1/knows": [ { "@id": "http://example.com/people/markus" } ]
+ },
+ {
+ "@id": "http://example.com/people/markus",
+ "http://xmlns.com/foaf/0.1/name": [ { "@value": "Markus Lanthaler" } ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0040-in.jsonld b/test/jsonld/1.1/flatten/0040-in.jsonld
new file mode 100644
index 00000000..2d02e0ad
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0040-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/test/jsonld/1.1/flatten/0040-out.jsonld b/test/jsonld/1.1/flatten/0040-out.jsonld
new file mode 100644
index 00000000..bea4691d
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0040-out.jsonld
@@ -0,0 +1,21 @@
+[
+ {
+ "@id": "http://example.com/queen",
+ "http://example.com/vocab/index": [
+ {
+ "@value": "No"
+ },
+ {
+ "@value": "indexes"
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/flatten/asTheValueIsntAnObject"
+ }
+ ],
+ "http://example.com/vocab/label": [
+ {
+ "@value": "The Queen"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0041-in.jsonld b/test/jsonld/1.1/flatten/0041-in.jsonld
new file mode 100644
index 00000000..9eece68d
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0041-in.jsonld
@@ -0,0 +1,24 @@
+{
+ "@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"
+ ]
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/flatten/0041-out.jsonld b/test/jsonld/1.1/flatten/0041-out.jsonld
new file mode 100644
index 00000000..dba2d8ef
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0041-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.com/node",
+ "http://example.com/property": [
+ {
+ "@value": "nodes with properties are not removed"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0042-in.jsonld b/test/jsonld/1.1/flatten/0042-in.jsonld
new file mode 100644
index 00000000..2ac94d4f
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0042-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "test": "http://example.com/list"
+ },
+ "@id": "list-equivalence-test",
+ "test": [
+ { "@list": [ "1", "2" ] },
+ { "@list": [ "1", "2" ] }
+ ]
+}
diff --git a/test/jsonld/1.1/flatten/0042-out.jsonld b/test/jsonld/1.1/flatten/0042-out.jsonld
new file mode 100644
index 00000000..6d0c41f6
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0042-out.jsonld
@@ -0,0 +1,13 @@
+[
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/flatten/list-equivalence-test",
+ "http://example.com/list": [
+ {
+ "@list": [ { "@value": "1" }, { "@value": "2" } ]
+ },
+ {
+ "@list": [ { "@value": "1" }, { "@value": "2" } ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0043-in.jsonld b/test/jsonld/1.1/flatten/0043-in.jsonld
new file mode 100644
index 00000000..bdcb3ebd
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0043-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@id": "",
+ "http://example/sequence": {"@list": [
+ {
+ "@id": "#t0001",
+ "http://example/name": "Keywords cannot be aliased to other keywords",
+ "http://example/input": {"@id": "0001-in.jsonld"}
+ }
+ ]}
+}
diff --git a/test/jsonld/1.1/flatten/0043-out.jsonld b/test/jsonld/1.1/flatten/0043-out.jsonld
new file mode 100644
index 00000000..bcaacf8a
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0043-out.jsonld
@@ -0,0 +1,17 @@
+[
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/flatten/0043-in.jsonld",
+ "http://example/sequence": [
+ {"@list": [{"@id": "https://w3c.github.io/json-ld-api/tests/flatten/0043-in.jsonld#t0001"}]}
+ ]
+ },
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/flatten/0043-in.jsonld#t0001",
+ "http://example/input": [
+ {"@id": "https://w3c.github.io/json-ld-api/tests/flatten/0001-in.jsonld"}
+ ],
+ "http://example/name": [
+ {"@value": "Keywords cannot be aliased to other keywords"}
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0044-context.jsonld b/test/jsonld/1.1/flatten/0044-context.jsonld
new file mode 100644
index 00000000..b1fde0c0
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0044-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": "http://example/term"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0044-in.jsonld b/test/jsonld/1.1/flatten/0044-in.jsonld
new file mode 100644
index 00000000..94e6d6a6
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0044-in.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example/foo",
+ "http://example/term": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/flatten/0044-out.jsonld b/test/jsonld/1.1/flatten/0044-out.jsonld
new file mode 100644
index 00000000..136cb3a7
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0044-out.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "term": "http://example/term"
+ },
+ "@graph": [{
+ "@id": "http://example/foo",
+ "term": ["value"]
+ }]
+}
diff --git a/test/jsonld/1.1/flatten/0045-in.jsonld b/test/jsonld/1.1/flatten/0045-in.jsonld
new file mode 100644
index 00000000..088bb2ff
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0045-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/test/jsonld/1.1/flatten/0045-out.jsonld b/test/jsonld/1.1/flatten/0045-out.jsonld
new file mode 100644
index 00000000..abd9a00f
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0045-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "_:b0",
+ "http://example.org/foo": [ { "@value": "Foo" } ]
+ },
+ {
+ "@id": "_:b1",
+ "http://example.org/bar": [ { "@id": "_:b0" } ]
+ },
+ {
+ "@id": "http://example.org/origin",
+ "http://example.org/bar": [ { "@id": "_:b0" } ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0046-in.jsonld b/test/jsonld/1.1/flatten/0046-in.jsonld
new file mode 100644
index 00000000..87b32f49
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0046-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@base": null
+ },
+ "@id": "",
+ "http://example.com/foo": "bar",
+ "@graph": [
+ {
+ "@id": "",
+ "http://example.com/baz": "bam"
+ },
+ {
+ "@id": "0",
+ "http://example.com/baaaaaz": "baaaam"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/flatten/0046-out.jsonld b/test/jsonld/1.1/flatten/0046-out.jsonld
new file mode 100644
index 00000000..6268e047
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0046-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "",
+ "http://example.com/foo": [ { "@value": "bar" } ],
+ "@graph": [
+ {
+ "@id": "",
+ "http://example.com/baz": [ { "@value": "bam" } ]
+ },
+ {
+ "@id": "0",
+ "http://example.com/baaaaaz": [ { "@value": "baaaam" } ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/0047-in.jsonld b/test/jsonld/1.1/flatten/0047-in.jsonld
new file mode 100644
index 00000000..c81b9842
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0047-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@base": "http://example.com/",
+ "iot": "http://example.com/core/#"
+ },
+ "iot:associated": { "@id": "#Light" }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0047-out.jsonld b/test/jsonld/1.1/flatten/0047-out.jsonld
new file mode 100644
index 00000000..461d7fe3
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0047-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "_:b0",
+ "http://example.com/core/#associated": [
+ {
+ "@id": "http://example.com/#Light"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0048-in.jsonld b/test/jsonld/1.1/flatten/0048-in.jsonld
new file mode 100644
index 00000000..26b14249
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0048-in.jsonld
@@ -0,0 +1,8 @@
+[{
+ "http://example.com/foo": [{
+ "@list": [{
+ "@id": "http://example.com/baz",
+ "http://example.com/bar": "buz"}
+ ]}
+ ]}
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0048-out.jsonld b/test/jsonld/1.1/flatten/0048-out.jsonld
new file mode 100644
index 00000000..f3ede2ef
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0048-out.jsonld
@@ -0,0 +1,16 @@
+[
+ {
+ "@id": "_:b0",
+ "http://example.com/foo": [{
+ "@list": [
+ {
+ "@id": "http://example.com/baz"
+ }
+ ]
+ }]
+ },
+ {
+ "@id": "http://example.com/baz",
+ "http://example.com/bar": [{"@value": "buz"}]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/0049-in.jsonld b/test/jsonld/1.1/flatten/0049-in.jsonld
new file mode 100644
index 00000000..4f679fd3
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0049-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "valueOf": "http://example.org/valueOf",
+ "toString": "http://example.org/toString"
+ },
+ "@id": "ex:test",
+ "valueOf": "first",
+ "toString": "second"
+}
diff --git a/test/jsonld/1.1/flatten/0049-out.jsonld b/test/jsonld/1.1/flatten/0049-out.jsonld
new file mode 100644
index 00000000..af6d36de
--- /dev/null
+++ b/test/jsonld/1.1/flatten/0049-out.jsonld
@@ -0,0 +1,15 @@
+[
+ {
+ "@id": "ex:test",
+ "http://example.org/valueOf": [
+ {
+ "@value": "first"
+ }
+ ],
+ "http://example.org/toString": [
+ {
+ "@value": "second"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/flatten/e001-in.jsonld b/test/jsonld/1.1/flatten/e001-in.jsonld
new file mode 100644
index 00000000..d2e4b8bc
--- /dev/null
+++ b/test/jsonld/1.1/flatten/e001-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example/foo",
+ "@index": "bar"
+ },
+ {
+ "@id": "http://example/foo",
+ "@index": "baz"
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in01-in.jsonld b/test/jsonld/1.1/flatten/in01-in.jsonld
new file mode 100644
index 00000000..145c36e7
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in01-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": [{
+ "prop": "value2"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in01-out.jsonld b/test/jsonld/1.1/flatten/in01-out.jsonld
new file mode 100644
index 00000000..8bb51573
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in01-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "_:b0",
+ "http://example.org/prop": [{"@value": "value"}]
+}, {
+ "@id": "_:b1",
+ "http://example.org/prop": [{"@value": "value2"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in02-in.jsonld b/test/jsonld/1.1/flatten/in02-in.jsonld
new file mode 100644
index 00000000..a976cce7
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in02-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": {
+ "prop": "value2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in02-out.jsonld b/test/jsonld/1.1/flatten/in02-out.jsonld
new file mode 100644
index 00000000..8bb51573
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in02-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "_:b0",
+ "http://example.org/prop": [{"@value": "value"}]
+}, {
+ "@id": "_:b1",
+ "http://example.org/prop": [{"@value": "value2"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in03-in.jsonld b/test/jsonld/1.1/flatten/in03-in.jsonld
new file mode 100644
index 00000000..ed476d43
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in03-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "included1": "@included",
+ "included2": "@included"
+ },
+ "included1": {"prop": "value1"},
+ "included2": {"prop": "value2"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in03-out.jsonld b/test/jsonld/1.1/flatten/in03-out.jsonld
new file mode 100644
index 00000000..6b9e8e66
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in03-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "_:b1",
+ "http://example.org/prop": [{"@value": "value1"}]
+}, {
+ "@id": "_:b2",
+ "http://example.org/prop": [{"@value": "value2"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in04-in.jsonld b/test/jsonld/1.1/flatten/in04-in.jsonld
new file mode 100644
index 00000000..2436a454
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in04-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": {
+ "prop": "value2",
+ "@included": {
+ "prop": "value3"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in04-out.jsonld b/test/jsonld/1.1/flatten/in04-out.jsonld
new file mode 100644
index 00000000..efb9a424
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in04-out.jsonld
@@ -0,0 +1,10 @@
+[{
+ "@id": "_:b0",
+ "http://example.org/prop": [{"@value": "value"}]
+}, {
+ "@id": "_:b1",
+ "http://example.org/prop": [{"@value": "value2"}]
+}, {
+ "@id": "_:b2",
+ "http://example.org/prop": [{"@value": "value3"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in05-in.jsonld b/test/jsonld/1.1/flatten/in05-in.jsonld
new file mode 100644
index 00000000..b94709b4
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in05-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": {
+ "@type": "Foo",
+ "@included": {
+ "@type": "Bar"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in05-out.jsonld b/test/jsonld/1.1/flatten/in05-out.jsonld
new file mode 100644
index 00000000..9e6fb442
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in05-out.jsonld
@@ -0,0 +1,10 @@
+[{
+ "@id": "_:b0",
+ "http://example.org/prop": [{"@id": "_:b1"}]
+}, {
+ "@id": "_:b1",
+ "@type": ["http://example.org/Foo"]
+}, {
+ "@id": "_:b2",
+ "@type": ["http://example.org/Bar"]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in06-in.jsonld b/test/jsonld/1.1/flatten/in06-in.jsonld
new file mode 100644
index 00000000..2e5339f5
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in06-in.jsonld
@@ -0,0 +1,90 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/vocab#",
+ "@base": "http://example.org/base/",
+ "id": "@id",
+ "type": "@type",
+ "data": "@nest",
+ "attributes": "@nest",
+ "links": "@nest",
+ "relationships": "@nest",
+ "included": "@included",
+ "self": {"@type": "@id"},
+ "related": {"@type": "@id"},
+ "comments": {
+ "@context": {
+ "data": null
+ }
+ }
+ },
+ "data": [{
+ "type": "articles",
+ "id": "1",
+ "attributes": {
+ "title": "JSON:API paints my bikeshed!"
+ },
+ "links": {
+ "self": "http://example.com/articles/1"
+ },
+ "relationships": {
+ "author": {
+ "links": {
+ "self": "http://example.com/articles/1/relationships/author",
+ "related": "http://example.com/articles/1/author"
+ },
+ "data": { "type": "people", "id": "9" }
+ },
+ "comments": {
+ "links": {
+ "self": "http://example.com/articles/1/relationships/comments",
+ "related": "http://example.com/articles/1/comments"
+ },
+ "data": [
+ { "type": "comments", "id": "5" },
+ { "type": "comments", "id": "12" }
+ ]
+ }
+ }
+ }],
+ "included": [{
+ "type": "people",
+ "id": "9",
+ "attributes": {
+ "first-name": "Dan",
+ "last-name": "Gebhardt",
+ "twitter": "dgeb"
+ },
+ "links": {
+ "self": "http://example.com/people/9"
+ }
+ }, {
+ "type": "comments",
+ "id": "5",
+ "attributes": {
+ "body": "First!"
+ },
+ "relationships": {
+ "author": {
+ "data": { "type": "people", "id": "2" }
+ }
+ },
+ "links": {
+ "self": "http://example.com/comments/5"
+ }
+ }, {
+ "type": "comments",
+ "id": "12",
+ "attributes": {
+ "body": "I like XML better"
+ },
+ "relationships": {
+ "author": {
+ "data": { "type": "people", "id": "9" }
+ }
+ },
+ "links": {
+ "self": "http://example.com/comments/12"
+ }
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/in06-out.jsonld b/test/jsonld/1.1/flatten/in06-out.jsonld
new file mode 100644
index 00000000..d846c2bf
--- /dev/null
+++ b/test/jsonld/1.1/flatten/in06-out.jsonld
@@ -0,0 +1,40 @@
+[{
+ "@id": "_:b0",
+ "http://example.org/vocab#self": [{"@id": "http://example.com/articles/1/relationships/comments"}
+ ],
+ "http://example.org/vocab#related": [{"@id": "http://example.com/articles/1/comments"}]
+ }, {
+ "@id": "http://example.org/base/1",
+ "@type": ["http://example.org/vocab#articles"],
+ "http://example.org/vocab#title": [{"@value": "JSON:API paints my bikeshed!"}],
+ "http://example.org/vocab#self": [{"@id": "http://example.com/articles/1"}],
+ "http://example.org/vocab#author": [{"@id": "http://example.org/base/9"}],
+ "http://example.org/vocab#comments": [{"@id": "_:b0"}]
+}, {
+ "@id": "http://example.org/base/12",
+ "@type": ["http://example.org/vocab#comments"],
+ "http://example.org/vocab#body": [{"@value": "I like XML better"}],
+ "http://example.org/vocab#author": [{"@id": "http://example.org/base/9"}],
+ "http://example.org/vocab#self": [{"@id": "http://example.com/comments/12"}]
+}, {
+ "@id": "http://example.org/base/2",
+ "@type": ["http://example.org/vocab#people"]
+}, {
+ "@id": "http://example.org/base/5",
+ "@type": ["http://example.org/vocab#comments"],
+ "http://example.org/vocab#body": [{"@value": "First!"}
+ ],
+ "http://example.org/vocab#author": [{"@id": "http://example.org/base/2"}],
+ "http://example.org/vocab#self": [{"@id": "http://example.com/comments/5"}]
+}, {
+ "@id": "http://example.org/base/9",
+ "@type": ["http://example.org/vocab#people"],
+ "http://example.org/vocab#first-name": [{"@value": "Dan"}],
+ "http://example.org/vocab#last-name": [{"@value": "Gebhardt"}],
+ "http://example.org/vocab#twitter": [{"@value": "dgeb"}],
+ "http://example.org/vocab#self": [
+ {"@id": "http://example.com/people/9"},
+ {"@id": "http://example.com/articles/1/relationships/author"}
+ ],
+ "http://example.org/vocab#related": [{"@id": "http://example.com/articles/1/author"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/li01-in.jsonld b/test/jsonld/1.1/flatten/li01-in.jsonld
new file mode 100644
index 00000000..329a79c9
--- /dev/null
+++ b/test/jsonld/1.1/flatten/li01-in.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@list": [{"@list": [{"@value": "baz"}]}]}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/li01-out.jsonld b/test/jsonld/1.1/flatten/li01-out.jsonld
new file mode 100644
index 00000000..131f9b3a
--- /dev/null
+++ b/test/jsonld/1.1/flatten/li01-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "_:b0",
+ "http://example.com/foo": [{"@list": [{"@list": [{"@list": [{"@value": "baz"}]}]}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/li02-in.jsonld b/test/jsonld/1.1/flatten/li02-in.jsonld
new file mode 100644
index 00000000..4be9f2e8
--- /dev/null
+++ b/test/jsonld/1.1/flatten/li02-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.com/foo": {"@list": [{"@list": []}]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/li02-out.jsonld b/test/jsonld/1.1/flatten/li02-out.jsonld
new file mode 100644
index 00000000..80abdac0
--- /dev/null
+++ b/test/jsonld/1.1/flatten/li02-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "_:b0",
+ "http://example.com/foo": [{"@list": [{"@list": []}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/li03-in.jsonld b/test/jsonld/1.1/flatten/li03-in.jsonld
new file mode 100644
index 00000000..96afcbaa
--- /dev/null
+++ b/test/jsonld/1.1/flatten/li03-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [
+ [{"@id": "http://example/a", "@type": "http://example/Bar"}],
+ {"@id": "http://example/b", "@type": "http://example/Baz"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/flatten/li03-out.jsonld b/test/jsonld/1.1/flatten/li03-out.jsonld
new file mode 100644
index 00000000..155ccd8c
--- /dev/null
+++ b/test/jsonld/1.1/flatten/li03-out.jsonld
@@ -0,0 +1,19 @@
+[{
+ "@id": "_:b0",
+ "http://example.com/foo": [{"@list": [
+ {"@list": [{"@id": "http://example/a"}]},
+ {"@id": "http://example/b"}
+ ]}]
+},
+{
+ "@id": "http://example/a",
+ "@type": [
+ "http://example/Bar"
+ ]
+},
+{
+ "@id": "http://example/b",
+ "@type": [
+ "http://example/Baz"
+ ]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf-manifest.jsonld b/test/jsonld/1.1/fromRdf-manifest.jsonld
new file mode 100644
index 00000000..1764a682
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf-manifest.jsonld
@@ -0,0 +1,408 @@
+{
+ "@context": ["context.jsonld", {"@base": "fromRdf-manifest"}],
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "Transform RDF to JSON-LD",
+ "description": "These tests implement the requirements for the JSON-LD [Serialize RDF as JSON-LD Algorithm](https://www.w3.org/TR/json-ld11-api/#serialize-rdf-as-json-ld-algorithm).",
+ "baseIri": "https://w3c.github.io/json-ld-api/tests/",
+ "sequence": [
+ {
+ "@id": "#t0001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Object Lists",
+ "purpose": "Tests generation using different types of objects.",
+ "input": "fromRdf/0001-in.nq",
+ "expect": "fromRdf/0001-out.jsonld"
+ }, {
+ "@id": "#t0002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Native Types",
+ "purpose": "Do not use native datatypes for xsd:boolean, xsd:integer, and xsd:double by default.",
+ "input": "fromRdf/0002-in.nq",
+ "expect": "fromRdf/0002-out.jsonld"
+ }, {
+ "@id": "#t0003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "BNodes and references",
+ "purpose": "BNode name generation and references between resources.",
+ "input": "fromRdf/0003-in.nq",
+ "expect": "fromRdf/0003-out.jsonld"
+ }, {
+ "@id": "#t0004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Lists",
+ "purpose": "Multiple lists with different types of element.",
+ "input": "fromRdf/0004-in.nq",
+ "expect": "fromRdf/0004-out.jsonld"
+ }, {
+ "@id": "#t0005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Document with list",
+ "purpose": "Uses a named graph containing a list.",
+ "input": "fromRdf/0005-in.nq",
+ "expect": "fromRdf/0005-out.jsonld"
+ }, {
+ "@id": "#t0006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Two graphs having same subject but different values",
+ "purpose": "Ensure that properties and list elements aren't confused between graphs.",
+ "input": "fromRdf/0006-in.nq",
+ "expect": "fromRdf/0006-out.jsonld"
+ }, {
+ "@id": "#t0007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Graph with multiple named graphs",
+ "purpose": "Testing @graph recursion.",
+ "input": "fromRdf/0007-in.nq",
+ "expect": "fromRdf/0007-out.jsonld"
+ }, {
+ "@id": "#t0008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List conversion",
+ "purpose": "Conversion of lists of lists (the triples in the input are only partially ordered on purpose (1.0 semantics)",
+ "input": "fromRdf/0008-in.nq",
+ "expect": "fromRdf/0008-out.jsonld",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#t0009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List conversion with IRI nodes",
+ "purpose": "Preserve IRI list nodes (i.e., not blank nodes) when converting to @list",
+ "input": "fromRdf/0009-in.nq",
+ "expect": "fromRdf/0009-out.jsonld"
+ }, {
+ "@id": "#t0010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern without rdf:nil",
+ "purpose": "Do not convert lists that are not terminated by rdf:nil to @list.",
+ "input": "fromRdf/0010-in.nq",
+ "expect": "fromRdf/0010-out.jsonld"
+ }, {
+ "@id": "#t0011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with extra properties",
+ "purpose": "If additional properties are associated to a list node, the list is only partially converted to @list.",
+ "input": "fromRdf/0011-in.nq",
+ "expect": "fromRdf/0011-out.jsonld"
+ }, {
+ "@id": "#t0012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with cycles",
+ "purpose": "Detect lists containing cycles and do not convert them to @list.",
+ "input": "fromRdf/0012-in.nq",
+ "expect": "fromRdf/0012-out.jsonld"
+ }, {
+ "@id": "#t0013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with multiple values of rdf:first",
+ "purpose": "Do not convert list nodes to @list if nodes contain more than one value for rdf:first.",
+ "input": "fromRdf/0013-in.nq",
+ "expect": "fromRdf/0013-out.jsonld"
+ }, {
+ "@id": "#t0014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with multiple values of rdf:rest",
+ "purpose": "Do not convert list nodes to @list if nodes contain more than one value for rdf:rest.",
+ "input": "fromRdf/0014-in.nq",
+ "expect": "fromRdf/0014-out.jsonld"
+ }, {
+ "@id": "#t0015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with IRI rdf:rest",
+ "purpose": "Do not convert lists to @list if a list node's rdf:rest is an IRI.",
+ "input": "fromRdf/0015-in.nq",
+ "expect": "fromRdf/0015-out.jsonld"
+ }, {
+ "@id": "#t0016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with type rdf:List",
+ "purpose": "List nodes may have a rdf:type rdf:List.",
+ "input": "fromRdf/0016-in.nq",
+ "expect": "fromRdf/0016-out.jsonld"
+ }, {
+ "@id": "#t0017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Remove duplicate triples",
+ "purpose": "Equivalent triples are used only once",
+ "input": "fromRdf/0017-in.nq",
+ "expect": "fromRdf/0017-out.jsonld"
+ }, {
+ "@id": "#t0018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "use native types flag set to true",
+ "purpose": "Literals with datatype xsd:boolean, xsd:integer, and xsd:double are serialized using native scalar values",
+ "option": {
+ "useNativeTypes": true
+ },
+ "input": "fromRdf/0018-in.nq",
+ "expect": "fromRdf/0018-out.jsonld"
+ }, {
+ "@id": "#t0019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "use rdf:type flag set to false",
+ "purpose": "Setting useRdfType to true causes an rdf:type predicate to be treated like a normal property, not @type",
+ "option": {
+ "useRdfType": true
+ },
+ "input": "fromRdf/0019-in.nq",
+ "expect": "fromRdf/0019-out.jsonld"
+ }, {
+ "@id": "#t0020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "list with node shared across graphs",
+ "purpose": "An otherwise conformant list with a node shared across different lists does not serialize using @list",
+ "input": "fromRdf/0020-in.nq",
+ "expect": "fromRdf/0020-out.jsonld"
+ }, {
+ "@id": "#t0021",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "list with node shared across graphs (same triple in different graphs)",
+ "purpose": "If a list node is used in different graphs, it isn't removed and converted to @list",
+ "input": "fromRdf/0021-in.nq",
+ "expect": "fromRdf/0021-out.jsonld"
+ }, {
+ "@id": "#t0022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "list from duplicate triples",
+ "purpose": "Duplicate triples for a list node will not prevent @list from being properly generated",
+ "input": "fromRdf/0022-in.nq",
+ "expect": "fromRdf/0022-out.jsonld"
+ }, {
+ "@id": "#t0023",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "triple with RDF nil subject",
+ "purpose": "Test triple with RDF nil subject",
+ "input": "fromRdf/0023-in.nq",
+ "expect": "fromRdf/0023-out.jsonld"
+ }, {
+ "@id": "#t0024",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "multiple languages for same subject+property+value",
+ "purpose": "Uniqness of triples should include the value language",
+ "input": "fromRdf/0024-in.nq",
+ "expect": "fromRdf/0024-out.jsonld"
+ }, {
+ "@id": "#t0025",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "multiple types for same subject+property+value",
+ "purpose": "Uniqness of triples should include the value type",
+ "input": "fromRdf/0025-in.nq",
+ "expect": "fromRdf/0025-out.jsonld"
+ }, {
+ "@id": "#t0026",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "triple with rdf:first property and rdf:nil value",
+ "purpose": "Check list generation with rdf:first property and rdf:nil value.",
+ "input": "fromRdf/0026-in.nq",
+ "expect": "fromRdf/0026-out.jsonld"
+ }, {
+ "@id": "#tdi01",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: null with i18n literal with direction and no language",
+ "purpose": "Does not parse i18n datatype without proper option.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "fromRdf/di01-in.nq",
+ "expect": "fromRdf/di01-out.jsonld"
+ }, {
+ "@id": "#tdi02",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: null with i18n literal with direction and language",
+ "purpose": "Does not parse i18n datatype without proper option.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "fromRdf/di02-in.nq",
+ "expect": "fromRdf/di02-out.jsonld"
+ }, {
+ "@id": "#tdi03",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: null with compound literal with direction and no language",
+ "purpose": "Does not parse compound literal without proper option.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "fromRdf/di03-in.nq",
+ "expect": "fromRdf/di03-out.jsonld"
+ }, {
+ "@id": "#tdi04",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: null with compound literal with direction and language",
+ "purpose": "Does not parse compound literal without proper option.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "fromRdf/di04-in.nq",
+ "expect": "fromRdf/di04-out.jsonld"
+ }, {
+ "@id": "#tdi05",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: i18n-datatype with i18n literal with direction and no language",
+ "purpose": "Parses i18n datatype with proper option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "i18n-datatype", "normative": false},
+ "input": "fromRdf/di05-in.nq",
+ "expect": "fromRdf/di05-out.jsonld"
+ }, {
+ "@id": "#tdi06",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: i18n-datatype with i18n literal with direction and language",
+ "purpose": "Parses i18n datatype with proper option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "i18n-datatype", "normative": false},
+ "input": "fromRdf/di06-in.nq",
+ "expect": "fromRdf/di06-out.jsonld"
+ }, {
+ "@id": "#tdi07",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: i18n-datatype with compound literal with direction and no language",
+ "purpose": "Does not parse compound literal without proper option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "i18n-datatype", "normative": false},
+ "input": "fromRdf/di07-in.nq",
+ "expect": "fromRdf/di07-out.jsonld"
+ }, {
+ "@id": "#tdi08",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: i18n-datatype with compound literal with direction and language",
+ "purpose": "Does not parse compound literal without proper option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "i18n-datatype", "normative": false},
+ "input": "fromRdf/di08-in.nq",
+ "expect": "fromRdf/di08-out.jsonld"
+ }, {
+ "@id": "#tdi09",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: compound-literal with i18n literal with direction and no language",
+ "purpose": "Does not parse i18n datatype without proper option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "compound-literal", "normative": false},
+ "input": "fromRdf/di09-in.nq",
+ "expect": "fromRdf/di09-out.jsonld"
+ }, {
+ "@id": "#tdi10",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: compound-literal with i18n literal with direction and language",
+ "purpose": "Does not parse i18n datatype without proper option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "compound-literal", "normative": false},
+ "input": "fromRdf/di10-in.nq",
+ "expect": "fromRdf/di10-out.jsonld"
+ }, {
+ "@id": "#tdi11",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: compound-literal with compound literal with direction and no language",
+ "purpose": "Parses compound literal with proper option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "compound-literal", "normative": false},
+ "input": "fromRdf/di11-in.nq",
+ "expect": "fromRdf/di11-out.jsonld"
+ }, {
+ "@id": "#tdi12",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:FromRDFTest" ],
+ "name": "rdfDirection: compound-literal with compound literal with direction and language",
+ "purpose": "Parses compound literal with proper option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "compound-literal", "normative": false},
+ "input": "fromRdf/di12-in.nq",
+ "expect": "fromRdf/di12-out.jsonld"
+ }, {
+ "@id": "#tjs01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "JSON literal (boolean true)",
+ "purpose": "Tests creating property with rdf:type rdf:JSON to a JSON literal (boolean true).",
+ "input": "fromRdf/js01-in.nq",
+ "expect": "fromRdf/js01-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "JSON literal (boolean false)",
+ "purpose": "Tests creating property with rdf:type rdf:JSON to a JSON literal (boolean false).",
+ "input": "fromRdf/js02-in.nq",
+ "expect": "fromRdf/js02-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "JSON literal (double)",
+ "purpose": "Tests creating property with rdf:type rdf:JSON to a JSON literal (double).",
+ "input": "fromRdf/js03-in.nq",
+ "expect": "fromRdf/js03-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "JSON literal (double-zero)",
+ "purpose": "Tests creating property with rdf:type rdf:JSON to a JSON literal (double-zero).",
+ "input": "fromRdf/js04-in.nq",
+ "expect": "fromRdf/js04-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "JSON literal (integer)",
+ "purpose": "Tests creating property with rdf:type rdf:JSON to a JSON literal (integer).",
+ "input": "fromRdf/js05-in.nq",
+ "expect": "fromRdf/js05-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "JSON literal (object)",
+ "purpose": "Tests creating property with rdf:type rdf:JSON to a JSON literal (object).",
+ "input": "fromRdf/js06-in.nq",
+ "expect": "fromRdf/js06-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs07",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "JSON literal (array)",
+ "purpose": "Tests creating property with rdf:type rdf:JSON to a JSON literal (array).",
+ "input": "fromRdf/js07-in.nq",
+ "expect": "fromRdf/js07-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs08",
+ "@type": ["jld:NegativeEvaluationTest", "jld:FromRDFTest"],
+ "name": "Invalid JSON literal (bare-word)",
+ "purpose": "Processors must generate an error when deserializing an invalid JSON literal.",
+ "input": "fromRdf/js08-in.nq",
+ "expectErrorCode": "invalid JSON literal",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs09",
+ "@type": ["jld:NegativeEvaluationTest", "jld:FromRDFTest"],
+ "name": "Invalid JSON literal (invalid structure)",
+ "purpose": "Processors must generate an error when deserializing an invalid JSON literal.",
+ "input": "fromRdf/js09-in.nq",
+ "expectErrorCode": "invalid JSON literal",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs10",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "JSON literal (string)",
+ "purpose": "Tests creating property with rdf:type rdf:JSON to a JSON literal (string).",
+ "input": "fromRdf/js10-in.nq",
+ "expect": "fromRdf/js10-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs11",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "JSON literal (null)",
+ "purpose": "Tests creating property with rdf:type rdf:JSON to a JSON literal (null).",
+ "input": "fromRdf/js11-in.nq",
+ "expect": "fromRdf/js11-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tli01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "@list containing empty @list",
+ "purpose": "List of lists",
+ "input": "fromRdf/li01-in.nq",
+ "expect": "fromRdf/li01-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tli02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "@list containing multiple lists",
+ "purpose": "List of lists",
+ "input": "fromRdf/li02-in.nq",
+ "expect": "fromRdf/li02-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tli03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "t0008 as interpreted for 1.1. ",
+ "purpose": "List of lists",
+ "input": "fromRdf/li02-in.nq",
+ "expect": "fromRdf/li02-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1"}
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/fromRdf/0001-in.nq b/test/jsonld/1.1/fromRdf/0001-in.nq
new file mode 100644
index 00000000..d2a4a3a6
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0001-in.nq
@@ -0,0 +1,5 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> .
+<http://example.com/Subj1> <http://example.com/prop1> <http://example.com/Obj1> .
+<http://example.com/Subj1> <http://example.com/prop2> "Plain" .
+<http://example.com/Subj1> <http://example.com/prop2> "2012-05-12"^^<http://www.w3.org/2001/XMLSchema#date> .
+<http://example.com/Subj1> <http://example.com/prop2> "English"@en .
diff --git a/test/jsonld/1.1/fromRdf/0001-out.jsonld b/test/jsonld/1.1/fromRdf/0001-out.jsonld
new file mode 100644
index 00000000..c498d2b1
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0001-out.jsonld
@@ -0,0 +1,12 @@
+[
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/prop1": [{"@id": "http://example.com/Obj1"}],
+ "http://example.com/prop2": [
+ {"@value": "Plain"},
+ {"@value": "2012-05-12", "@type": "http://www.w3.org/2001/XMLSchema#date"},
+ {"@value": "English", "@language": "en"}
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0002-in.nq b/test/jsonld/1.1/fromRdf/0002-in.nq
new file mode 100644
index 00000000..9ec666d2
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0002-in.nq
@@ -0,0 +1,5 @@
+<http://example.com/Subj1> <http://example.com/prop> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.com/Subj1> <http://example.com/prop> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.com/Subj1> <http://example.com/prop> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/Subj1> <http://example.com/prop> "1.1"^^<http://www.w3.org/2001/XMLSchema#decimal> .
+<http://example.com/Subj1> <http://example.com/prop> "1.1E-1"^^<http://www.w3.org/2001/XMLSchema#double> .
diff --git a/test/jsonld/1.1/fromRdf/0002-out.jsonld b/test/jsonld/1.1/fromRdf/0002-out.jsonld
new file mode 100644
index 00000000..5fc21685
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0002-out.jsonld
@@ -0,0 +1,27 @@
+[
+ {
+ "@id": "http://example.com/Subj1",
+ "http://example.com/prop": [
+ {
+ "@value": "true",
+ "@type": "http://www.w3.org/2001/XMLSchema#boolean"
+ },
+ {
+ "@value": "false",
+ "@type": "http://www.w3.org/2001/XMLSchema#boolean"
+ },
+ {
+ "@value": "1",
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ },
+ {
+ "@value": "1.1",
+ "@type": "http://www.w3.org/2001/XMLSchema#decimal"
+ },
+ {
+ "@value": "1.1E-1",
+ "@type": "http://www.w3.org/2001/XMLSchema#double"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0003-in.nq b/test/jsonld/1.1/fromRdf/0003-in.nq
new file mode 100644
index 00000000..90054b2c
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0003-in.nq
@@ -0,0 +1,6 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/SubType> .
+<http://example.com/Subj1> <http://example.com/ref> _:a .
+<http://example.com/Subj1> <http://example.com/ref> <http://example.com/Subj2> .
+<http://example.com/Subj2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> .
+<http://example.com/Subj2> <http://example.com/ref> <http://example.com/Subj1> .
diff --git a/test/jsonld/1.1/fromRdf/0003-out.jsonld b/test/jsonld/1.1/fromRdf/0003-out.jsonld
new file mode 100644
index 00000000..ce60daef
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0003-out.jsonld
@@ -0,0 +1,19 @@
+[
+ {
+ "@id": "_:a",
+ "@type": ["http://example.com/SubType"]
+ },
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/ref": [
+ {"@id": "_:a"},
+ {"@id": "http://example.com/Subj2"}
+ ]
+ },
+ {
+ "@id": "http://example.com/Subj2",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/ref": [{"@id": "http://example.com/Subj1"}]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0004-in.nq b/test/jsonld/1.1/fromRdf/0004-in.nq
new file mode 100644
index 00000000..6e88e659
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0004-in.nq
@@ -0,0 +1,10 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "apple" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "bananna" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://example.com/Subj1> <http://example.com/literalList> _:a .
+<http://example.com/Subj1> <http://example.com/emptyList> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/iri> .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://example.com/Subj1> <http://example.com/iriList> _:c .
diff --git a/test/jsonld/1.1/fromRdf/0004-out.jsonld b/test/jsonld/1.1/fromRdf/0004-out.jsonld
new file mode 100644
index 00000000..2dd24731
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0004-out.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/literalList": [{
+ "@list": [
+ {"@value": "apple"},
+ {"@value": "bananna"}
+ ]
+ }],
+ "http://example.com/emptyList": [{
+ "@list": []
+ }],
+ "http://example.com/iriList": [{
+ "@list": [{"@id": "http://example.com/iri"}]
+ }]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0005-in.nq b/test/jsonld/1.1/fromRdf/0005-in.nq
new file mode 100644
index 00000000..d99820ec
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0005-in.nq
@@ -0,0 +1,9 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> <http://example.com/U> .
+<http://example.com/Subj1> <http://example.com/ref> <http://example.com/U> <http://example.com/U> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" <http://example.com/U> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b <http://example.com/U> .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" <http://example.com/U> .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example.com/U> .
+<http://example.com/Subj1> <http://example.com/list> _:a <http://example.com/U> .
+<http://example.com/U> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Graph> .
+<http://example.com/U> <http://example.com/name> "Graph" .
diff --git a/test/jsonld/1.1/fromRdf/0005-out.jsonld b/test/jsonld/1.1/fromRdf/0005-out.jsonld
new file mode 100644
index 00000000..a87ac2ea
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0005-out.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "http://example.com/U",
+ "@graph": [
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/ref": [{"@id": "http://example.com/U"}],
+ "http://example.com/list": [{
+ "@list": [
+ {"@value": "a"},
+ {"@value": "b"}
+ ]
+ }]
+ }
+ ],
+ "@type": ["http://example.com/Graph"],
+ "http://example.com/name": [{"@value": "Graph"}]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0006-in.nq b/test/jsonld/1.1/fromRdf/0006-in.nq
new file mode 100644
index 00000000..0f3f0281
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0006-in.nq
@@ -0,0 +1,14 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> <http://example.com/U> .
+<http://example.com/Subj1> <http://example.com/ref> <http://example.com/U> <http://example.com/U> .
+<http://example.com/Subj1> <http://example.com/list> _:a <http://example.com/U> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" <http://example.com/U> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b <http://example.com/U> .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" <http://example.com/U> .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example.com/U> .
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type2> <http://example.com/V> .
+<http://example.com/Subj1> <http://example.com/ref> <http://example.com/V> <http://example.com/V> .
+<http://example.com/Subj1> <http://example.com/list> _:c <http://example.com/V> .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" <http://example.com/V> .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:d <http://example.com/V> .
+_:d <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "d" <http://example.com/V> .
+_:d <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example.com/V> .
diff --git a/test/jsonld/1.1/fromRdf/0006-out.jsonld b/test/jsonld/1.1/fromRdf/0006-out.jsonld
new file mode 100644
index 00000000..9bbdbaa6
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0006-out.jsonld
@@ -0,0 +1,34 @@
+[
+ {
+ "@id": "http://example.com/U",
+ "@graph": [
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/ref": [{"@id": "http://example.com/U"}],
+ "http://example.com/list": [{
+ "@list": [
+ {"@value": "a"},
+ {"@value": "b"}
+ ]
+ }]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.com/V",
+ "@graph": [
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type2"],
+ "http://example.com/ref": [{"@id": "http://example.com/V"}],
+ "http://example.com/list": [{
+ "@list": [
+ {"@value": "c"},
+ {"@value": "d"}
+ ]
+ }]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0007-in.nq b/test/jsonld/1.1/fromRdf/0007-in.nq
new file mode 100644
index 00000000..ad8557af
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0007-in.nq
@@ -0,0 +1,5 @@
+<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/Assertions> <http://data.wikipedia.org/vocab#assertedBy> "http://gregkellogg.net/foaf#me" .
+<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://data.wikipedia.org/snaks/BerlinFact> <http://data.wikipedia.org/vocab#assertedBy> "http://www.statistik-berlin-brandenburg.de/" <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/test/jsonld/1.1/fromRdf/0007-out.jsonld b/test/jsonld/1.1/fromRdf/0007-out.jsonld
new file mode 100644
index 00000000..e837c6d4
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0007-out.jsonld
@@ -0,0 +1,27 @@
+[
+ {
+ "@id": "http://data.wikipedia.org/snaks/Assertions",
+ "@type": ["http://data.wikipedia.org/vocab#SnakSet"],
+ "http://data.wikipedia.org/vocab#assertedBy": [{"@value": "http://gregkellogg.net/foaf#me"}
+ ],
+ "@graph": [
+ {
+ "@id": "http://data.wikipedia.org/snaks/BerlinFact",
+ "@type": ["http://data.wikipedia.org/vocab#Snak"],
+ "http://data.wikipedia.org/vocab#assertedBy": [{"@value": "http://www.statistik-berlin-brandenburg.de/"}]
+ }
+ ]
+ },
+ {
+ "@id": "http://data.wikipedia.org/snaks/BerlinFact",
+ "@graph": [
+ {
+ "@id": "http://en.wikipedia.org/wiki/Berlin",
+ "http://data.wikipedia.org/vocab#population": [{
+ "@value": "3499879",
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ }]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0008-in.nq b/test/jsonld/1.1/fromRdf/0008-in.nq
new file mode 100644
index 00000000..878e33ed
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0008-in.nq
@@ -0,0 +1,28 @@
+<http://example.com> <http://example.com/property> _:outerlist .
+_:outerlist <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:lista .
+_:outerlist <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b0 .
+
+_:lista <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a1" .
+_:lista <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:a2 .
+_:a2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a2" .
+_:a2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:a3 .
+_:a3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a3" .
+_:a3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+
+_:c0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:c1 .
+_:c0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:c1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c1" .
+_:c1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c2 .
+_:c2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c2" .
+_:c2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c3 .
+_:c3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c3" .
+_:c3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c0 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b1" .
+_: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> "b2" .
+_: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> "b3" .
+_: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/test/jsonld/1.1/fromRdf/0008-out.jsonld b/test/jsonld/1.1/fromRdf/0008-out.jsonld
new file mode 100644
index 00000000..ce6e1822
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0008-out.jsonld
@@ -0,0 +1,50 @@
+[
+ {
+ "@id": "_:b1",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "b1" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "b2" },
+ { "@value": "b3" }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "_:c1",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "c1" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "c2" },
+ { "@value": "c3" }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "_:lista",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a1" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "a2" },
+ { "@value": "a3" }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [
+ {
+ "@list": [
+ { "@id": "_:lista" },
+ { "@id": "_:b1" },
+ { "@id": "_:c1" }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0009-in.nq b/test/jsonld/1.1/fromRdf/0009-in.nq
new file mode 100644
index 00000000..91fff6bd
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0009-in.nq
@@ -0,0 +1,7 @@
+<http://example.com> <http://example.com/property> <http://example.com/list> .
+<http://example.com/list> <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+<http://example.com/list> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
+_:c <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/test/jsonld/1.1/fromRdf/0009-out.jsonld b/test/jsonld/1.1/fromRdf/0009-out.jsonld
new file mode 100644
index 00000000..e58e7563
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0009-out.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "http://example.com/list" } ]
+ },
+ {
+ "@id": "http://example.com/list",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "b" },
+ { "@value": "c" }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0010-in.nq b/test/jsonld/1.1/fromRdf/0010-in.nq
new file mode 100644
index 00000000..be9e012d
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0010-in.nq
@@ -0,0 +1,6 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
diff --git a/test/jsonld/1.1/fromRdf/0010-out.jsonld b/test/jsonld/1.1/fromRdf/0010-out.jsonld
new file mode 100644
index 00000000..54036dd6
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0010-out.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "_:b",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "b" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:c" } ]
+ },
+ {
+ "@id": "_:c",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "c" } ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0011-in.nq b/test/jsonld/1.1/fromRdf/0011-in.nq
new file mode 100644
index 00000000..ef525710
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0011-in.nq
@@ -0,0 +1,8 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://example.com/other-property> "This list node has also properties other than rdf:first and rdf:rest" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
+_:c <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/test/jsonld/1.1/fromRdf/0011-out.jsonld b/test/jsonld/1.1/fromRdf/0011-out.jsonld
new file mode 100644
index 00000000..811e31c2
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0011-out.jsonld
@@ -0,0 +1,25 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "_:b",
+ "http://example.com/other-property": [
+ { "@value": "This list node has also properties other than rdf:first and rdf:rest" }
+ ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "b" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "c" }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0012-in.nq b/test/jsonld/1.1/fromRdf/0012-in.nq
new file mode 100644
index 00000000..d8edbdc1
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0012-in.nq
@@ -0,0 +1,7 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
diff --git a/test/jsonld/1.1/fromRdf/0012-out.jsonld b/test/jsonld/1.1/fromRdf/0012-out.jsonld
new file mode 100644
index 00000000..b33cc8ef
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0012-out.jsonld
@@ -0,0 +1,21 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "_:b",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "b" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:c" } ]
+ },
+ {
+ "@id": "_:c",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "c" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0013-in.nq b/test/jsonld/1.1/fromRdf/0013-in.nq
new file mode 100644
index 00000000..45ac1cab
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0013-in.nq
@@ -0,0 +1,8 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b1" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b2" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
+_:c <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/test/jsonld/1.1/fromRdf/0013-out.jsonld b/test/jsonld/1.1/fromRdf/0013-out.jsonld
new file mode 100644
index 00000000..dc4874f8
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0013-out.jsonld
@@ -0,0 +1,27 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "_:b",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [
+ { "@value": "b1" },
+ { "@value": "b2" }
+ ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ {
+ "@value": "c"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0014-in.nq b/test/jsonld/1.1/fromRdf/0014-in.nq
new file mode 100644
index 00000000..68dfb57b
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0014-in.nq
@@ -0,0 +1,10 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:d .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:d <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "d" .
+_:d <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/test/jsonld/1.1/fromRdf/0014-out.jsonld b/test/jsonld/1.1/fromRdf/0014-out.jsonld
new file mode 100644
index 00000000..2eb7a477
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0014-out.jsonld
@@ -0,0 +1,19 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "_:b",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "b" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ { "@list": [ { "@value": "c" } ] },
+ { "@list": [ { "@value": "d" } ] }
+ ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0015-in.nq b/test/jsonld/1.1/fromRdf/0015-in.nq
new file mode 100644
index 00000000..f30175ea
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0015-in.nq
@@ -0,0 +1,3 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> "b" .
diff --git a/test/jsonld/1.1/fromRdf/0015-out.jsonld b/test/jsonld/1.1/fromRdf/0015-out.jsonld
new file mode 100644
index 00000000..feb930b8
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0015-out.jsonld
@@ -0,0 +1,11 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@value": "b" } ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0016-in.nq b/test/jsonld/1.1/fromRdf/0016-in.nq
new file mode 100644
index 00000000..fcccffe6
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0016-in.nq
@@ -0,0 +1,11 @@
+<http://example.com/> <http://example.com/list> _:b0 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "A" .
+_: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> "B" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "C" .
+_: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/test/jsonld/1.1/fromRdf/0016-out.jsonld b/test/jsonld/1.1/fromRdf/0016-out.jsonld
new file mode 100644
index 00000000..1ecddd1d
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0016-out.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "http://example.com/",
+ "http://example.com/list": [
+ {
+ "@list": [
+ {
+ "@value": "A"
+ },
+ {
+ "@value": "B"
+ },
+ {
+ "@value": "C"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0017-in.nq b/test/jsonld/1.1/fromRdf/0017-in.nq
new file mode 100644
index 00000000..8796c62e
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0017-in.nq
@@ -0,0 +1,9 @@
+<http://example.com/nodeA> <http://example.com/property> "1" .
+<http://example.com/nodeA> <http://example.com/property> "1" .
+<http://example.com/nodeA> <http://example.com/property> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/nodeA> <http://example.com/property> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/nodeA> <http://example.com/property> <http://example.com/nodeB> .
+<http://example.com/nodeA> <http://example.com/property> <http://example.com/nodeB> .
+<http://example.com/nodeA> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/TypeA> .
+<http://example.com/nodeA> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/TypeA> .
+<http://example.com/nodeA> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/TypeA> .
diff --git a/test/jsonld/1.1/fromRdf/0017-out.jsonld b/test/jsonld/1.1/fromRdf/0017-out.jsonld
new file mode 100644
index 00000000..5a47d269
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0017-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/nodeA",
+ "http://example.com/property": [
+ { "@value": "1" },
+ {
+ "@value": "2",
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ },
+ { "@id": "http://example.com/nodeB" }
+ ],
+ "@type": [ "http://example.com/TypeA" ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0018-in.nq b/test/jsonld/1.1/fromRdf/0018-in.nq
new file mode 100644
index 00000000..9ec666d2
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0018-in.nq
@@ -0,0 +1,5 @@
+<http://example.com/Subj1> <http://example.com/prop> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.com/Subj1> <http://example.com/prop> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.com/Subj1> <http://example.com/prop> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/Subj1> <http://example.com/prop> "1.1"^^<http://www.w3.org/2001/XMLSchema#decimal> .
+<http://example.com/Subj1> <http://example.com/prop> "1.1E-1"^^<http://www.w3.org/2001/XMLSchema#double> .
diff --git a/test/jsonld/1.1/fromRdf/0018-out.jsonld b/test/jsonld/1.1/fromRdf/0018-out.jsonld
new file mode 100644
index 00000000..3412f7a6
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0018-out.jsonld
@@ -0,0 +1,12 @@
+[
+ {
+ "@id": "http://example.com/Subj1",
+ "http://example.com/prop": [
+ { "@value": true },
+ { "@value": false },
+ { "@value": 1 },
+ { "@value": "1.1", "@type": "http://www.w3.org/2001/XMLSchema#decimal"},
+ { "@value": 0.11 }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0019-in.nq b/test/jsonld/1.1/fromRdf/0019-in.nq
new file mode 100644
index 00000000..d2a4a3a6
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0019-in.nq
@@ -0,0 +1,5 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> .
+<http://example.com/Subj1> <http://example.com/prop1> <http://example.com/Obj1> .
+<http://example.com/Subj1> <http://example.com/prop2> "Plain" .
+<http://example.com/Subj1> <http://example.com/prop2> "2012-05-12"^^<http://www.w3.org/2001/XMLSchema#date> .
+<http://example.com/Subj1> <http://example.com/prop2> "English"@en .
diff --git a/test/jsonld/1.1/fromRdf/0019-out.jsonld b/test/jsonld/1.1/fromRdf/0019-out.jsonld
new file mode 100644
index 00000000..77ce6121
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0019-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/Subj1",
+ "http://example.com/prop1": [{"@id": "http://example.com/Obj1"}],
+ "http://example.com/prop2": [
+ {"@value": "Plain"},
+ {"@value": "2012-05-12", "@type": "http://www.w3.org/2001/XMLSchema#date"},
+ {"@value": "English", "@language": "en"}
+ ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": [
+ {"@id": "http://example.com/Type"}
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0020-in.nq b/test/jsonld/1.1/fromRdf/0020-in.nq
new file mode 100644
index 00000000..dd715f3d
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0020-in.nq
@@ -0,0 +1,6 @@
+<http://www.example.com/z> <http://www.example.com/q> _:z0 <http://www.example.com/G> .
+_:z0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "cell-A" <http://www.example.com/G> .
+_:z0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:z1 <http://www.example.com/G> .
+_:z1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "cell-B" <http://www.example.com/G> .
+_:z1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://www.example.com/G> .
+<http://www.example.com/x> <http://www.example.com/p> _:z1 <http://www.example.com/G1> .
diff --git a/test/jsonld/1.1/fromRdf/0020-out.jsonld b/test/jsonld/1.1/fromRdf/0020-out.jsonld
new file mode 100644
index 00000000..2c5e5ee1
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0020-out.jsonld
@@ -0,0 +1,30 @@
+[
+ {
+ "@id": "http://www.example.com/G",
+ "@graph": [
+ {
+ "@id": "_:z0",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "cell-A" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:z1" } ]
+ },
+ {
+ "@id": "_:z1",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "cell-B" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@list": [] } ]
+ },
+ {
+ "@id": "http://www.example.com/z",
+ "http://www.example.com/q": [ { "@id": "_:z0" } ]
+ }
+ ]
+ },
+ {
+ "@id": "http://www.example.com/G1",
+ "@graph": [
+ {
+ "@id": "http://www.example.com/x",
+ "http://www.example.com/p": [ { "@id": "_:z1" } ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0021-in.nq b/test/jsonld/1.1/fromRdf/0021-in.nq
new file mode 100644
index 00000000..ce770b64
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0021-in.nq
@@ -0,0 +1,6 @@
+<http://www.example.com/z> <http://www.example.com/q> _:z0 <http://www.example.com/G> .
+_:z0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "cell-A" <http://www.example.com/G> .
+_:z0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:z1 <http://www.example.com/G> .
+_:z1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "cell-B" <http://www.example.com/G> .
+_:z1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://www.example.com/G> .
+<http://www.example.com/z> <http://www.example.com/q> _:z0 <http://www.example.com/G1> .
diff --git a/test/jsonld/1.1/fromRdf/0021-out.jsonld b/test/jsonld/1.1/fromRdf/0021-out.jsonld
new file mode 100644
index 00000000..2bfc7d35
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0021-out.jsonld
@@ -0,0 +1,31 @@
+[
+ {
+ "@id": "http://www.example.com/G",
+ "@graph": [
+ {
+ "@id": "_:z0",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "cell-A" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "cell-B" }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "http://www.example.com/z",
+ "http://www.example.com/q": [ { "@id": "_:z0" } ]
+ }
+ ]
+ },
+ {
+ "@id": "http://www.example.com/G1",
+ "@graph": [
+ {
+ "@id": "http://www.example.com/z",
+ "http://www.example.com/q": [ { "@id": "_:z0" } ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0022-in.nq b/test/jsonld/1.1/fromRdf/0022-in.nq
new file mode 100644
index 00000000..bb7c722b
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0022-in.nq
@@ -0,0 +1,6 @@
+<http://www.example.com/z> <http://www.example.com/q> _:z0 <http://www.example.com/G> .
+_:z0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "cell-A" <http://www.example.com/G> .
+_:z0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:z1 <http://www.example.com/G> .
+_:z1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "cell-B" <http://www.example.com/G> .
+_:z1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://www.example.com/G> .
+<http://www.example.com/z> <http://www.example.com/q> _:z0 <http://www.example.com/G> .
diff --git a/test/jsonld/1.1/fromRdf/0022-out.jsonld b/test/jsonld/1.1/fromRdf/0022-out.jsonld
new file mode 100644
index 00000000..503f2482
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0022-out.jsonld
@@ -0,0 +1,22 @@
+[
+ {
+ "@id": "http://www.example.com/G",
+ "@graph": [
+ {
+ "@id": "http://www.example.com/z",
+ "http://www.example.com/q": [
+ {
+ "@list": [
+ {
+ "@value": "cell-A"
+ },
+ {
+ "@value": "cell-B"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0023-in.nq b/test/jsonld/1.1/fromRdf/0023-in.nq
new file mode 100644
index 00000000..aa54881b
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0023-in.nq
@@ -0,0 +1 @@
+<http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example.com/foo> <http://example.com/bar> .
diff --git a/test/jsonld/1.1/fromRdf/0023-out.jsonld b/test/jsonld/1.1/fromRdf/0023-out.jsonld
new file mode 100644
index 00000000..3ecb939c
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0023-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil",
+ "http://example.com/foo": [
+ {
+ "@id": "http://example.com/bar"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0024-in.nq b/test/jsonld/1.1/fromRdf/0024-in.nq
new file mode 100644
index 00000000..6ac8fd5c
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0024-in.nq
@@ -0,0 +1,2 @@
+<http://example.com> <http://example.com/label> "test"@en .
+<http://example.com> <http://example.com/label> "test"@fr .
diff --git a/test/jsonld/1.1/fromRdf/0024-out.jsonld b/test/jsonld/1.1/fromRdf/0024-out.jsonld
new file mode 100644
index 00000000..4ff839cc
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0024-out.jsonld
@@ -0,0 +1,15 @@
+[
+ {
+ "@id": "http://example.com",
+ "http://example.com/label": [
+ {
+ "@value": "test",
+ "@language": "en"
+ },
+ {
+ "@value": "test",
+ "@language": "fr"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0025-in.nq b/test/jsonld/1.1/fromRdf/0025-in.nq
new file mode 100644
index 00000000..5988604a
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0025-in.nq
@@ -0,0 +1,2 @@
+<http://example.com> <http://example.com/label> "test"^^<http://example.com/t1> .
+<http://example.com> <http://example.com/label> "test"^^<http://example.com/t2> .
diff --git a/test/jsonld/1.1/fromRdf/0025-out.jsonld b/test/jsonld/1.1/fromRdf/0025-out.jsonld
new file mode 100644
index 00000000..82be02f6
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0025-out.jsonld
@@ -0,0 +1,15 @@
+[
+ {
+ "@id": "http://example.com",
+ "http://example.com/label": [
+ {
+ "@value": "test",
+ "@type": "http://example.com/t1"
+ },
+ {
+ "@value": "test",
+ "@type": "http://example.com/t2"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/fromRdf/0026-in.nq b/test/jsonld/1.1/fromRdf/0026-in.nq
new file mode 100644
index 00000000..f54e3608
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0026-in.nq
@@ -0,0 +1 @@
+<ex:s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/test/jsonld/1.1/fromRdf/0026-out.jsonld b/test/jsonld/1.1/fromRdf/0026-out.jsonld
new file mode 100644
index 00000000..dc8b9476
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/0026-out.jsonld
@@ -0,0 +1,11 @@
+[
+ {
+ "@id": "ex:s",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [
+ {
+ "@list": []
+ }
+ ]
+ }
+]
+
diff --git a/test/jsonld/1.1/fromRdf/di01-in.nq b/test/jsonld/1.1/fromRdf/di01-in.nq
new file mode 100644
index 00000000..1731a4da
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di01-in.nq
@@ -0,0 +1 @@
+<http://example.com/a> <http://example.org/label> "no language"^^<https://www.w3.org/ns/i18n#_rtl> .
diff --git a/test/jsonld/1.1/fromRdf/di01-out.jsonld b/test/jsonld/1.1/fromRdf/di01-out.jsonld
new file mode 100644
index 00000000..4337c461
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di01-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@value": "no language", "@type": "https://www.w3.org/ns/i18n#_rtl"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di02-in.nq b/test/jsonld/1.1/fromRdf/di02-in.nq
new file mode 100644
index 00000000..2199d8b0
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di02-in.nq
@@ -0,0 +1 @@
+<http://example.com/a> <http://example.org/label> "en-US"^^<https://www.w3.org/ns/i18n#en-us_rtl> .
diff --git a/test/jsonld/1.1/fromRdf/di02-out.jsonld b/test/jsonld/1.1/fromRdf/di02-out.jsonld
new file mode 100644
index 00000000..10fe0a76
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di02-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@value": "en-US", "@type": "https://www.w3.org/ns/i18n#en-us_rtl"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di03-in.nq b/test/jsonld/1.1/fromRdf/di03-in.nq
new file mode 100644
index 00000000..7bfd7638
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di03-in.nq
@@ -0,0 +1,3 @@
+<http://example.com/a> <http://example.org/label> _:cl1 .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "no language" .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#direction> "rtl" .
diff --git a/test/jsonld/1.1/fromRdf/di03-out.jsonld b/test/jsonld/1.1/fromRdf/di03-out.jsonld
new file mode 100644
index 00000000..c783ad49
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di03-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "_:cl1",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#value": [{"@value": "no language"}],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#direction": [{"@value": "rtl"}]
+}, {
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@id": "_:cl1"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di04-in.nq b/test/jsonld/1.1/fromRdf/di04-in.nq
new file mode 100644
index 00000000..a5b3041d
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di04-in.nq
@@ -0,0 +1,4 @@
+<http://example.com/a> <http://example.org/label> _:cl1 .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "en-US" .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#language> "en-us" .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#direction> "rtl" .
diff --git a/test/jsonld/1.1/fromRdf/di04-out.jsonld b/test/jsonld/1.1/fromRdf/di04-out.jsonld
new file mode 100644
index 00000000..04d38f5c
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di04-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@id": "_:cl1",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#value": [{"@value": "en-US"}],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#language": [{"@value": "en-us"}],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#direction": [{"@value": "rtl"}]
+}, {
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@id": "_:cl1"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di05-in.nq b/test/jsonld/1.1/fromRdf/di05-in.nq
new file mode 100644
index 00000000..1731a4da
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di05-in.nq
@@ -0,0 +1 @@
+<http://example.com/a> <http://example.org/label> "no language"^^<https://www.w3.org/ns/i18n#_rtl> .
diff --git a/test/jsonld/1.1/fromRdf/di05-out.jsonld b/test/jsonld/1.1/fromRdf/di05-out.jsonld
new file mode 100644
index 00000000..3afb8934
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di05-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@value": "no language", "@direction": "rtl"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di06-in.nq b/test/jsonld/1.1/fromRdf/di06-in.nq
new file mode 100644
index 00000000..2199d8b0
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di06-in.nq
@@ -0,0 +1 @@
+<http://example.com/a> <http://example.org/label> "en-US"^^<https://www.w3.org/ns/i18n#en-us_rtl> .
diff --git a/test/jsonld/1.1/fromRdf/di06-out.jsonld b/test/jsonld/1.1/fromRdf/di06-out.jsonld
new file mode 100644
index 00000000..fa4c3d64
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di06-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@value": "en-US", "@language": "en-us", "@direction": "rtl"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di07-in.nq b/test/jsonld/1.1/fromRdf/di07-in.nq
new file mode 100644
index 00000000..7bfd7638
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di07-in.nq
@@ -0,0 +1,3 @@
+<http://example.com/a> <http://example.org/label> _:cl1 .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "no language" .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#direction> "rtl" .
diff --git a/test/jsonld/1.1/fromRdf/di07-out.jsonld b/test/jsonld/1.1/fromRdf/di07-out.jsonld
new file mode 100644
index 00000000..c783ad49
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di07-out.jsonld
@@ -0,0 +1,8 @@
+[{
+ "@id": "_:cl1",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#value": [{"@value": "no language"}],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#direction": [{"@value": "rtl"}]
+}, {
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@id": "_:cl1"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di08-in.nq b/test/jsonld/1.1/fromRdf/di08-in.nq
new file mode 100644
index 00000000..a5b3041d
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di08-in.nq
@@ -0,0 +1,4 @@
+<http://example.com/a> <http://example.org/label> _:cl1 .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "en-US" .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#language> "en-us" .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#direction> "rtl" .
diff --git a/test/jsonld/1.1/fromRdf/di08-out.jsonld b/test/jsonld/1.1/fromRdf/di08-out.jsonld
new file mode 100644
index 00000000..04d38f5c
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di08-out.jsonld
@@ -0,0 +1,9 @@
+[{
+ "@id": "_:cl1",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#value": [{"@value": "en-US"}],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#language": [{"@value": "en-us"}],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#direction": [{"@value": "rtl"}]
+}, {
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@id": "_:cl1"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di09-in.nq b/test/jsonld/1.1/fromRdf/di09-in.nq
new file mode 100644
index 00000000..1731a4da
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di09-in.nq
@@ -0,0 +1 @@
+<http://example.com/a> <http://example.org/label> "no language"^^<https://www.w3.org/ns/i18n#_rtl> .
diff --git a/test/jsonld/1.1/fromRdf/di09-out.jsonld b/test/jsonld/1.1/fromRdf/di09-out.jsonld
new file mode 100644
index 00000000..4337c461
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di09-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@value": "no language", "@type": "https://www.w3.org/ns/i18n#_rtl"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di10-in.nq b/test/jsonld/1.1/fromRdf/di10-in.nq
new file mode 100644
index 00000000..2199d8b0
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di10-in.nq
@@ -0,0 +1 @@
+<http://example.com/a> <http://example.org/label> "en-US"^^<https://www.w3.org/ns/i18n#en-us_rtl> .
diff --git a/test/jsonld/1.1/fromRdf/di10-out.jsonld b/test/jsonld/1.1/fromRdf/di10-out.jsonld
new file mode 100644
index 00000000..10fe0a76
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di10-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@value": "en-US", "@type": "https://www.w3.org/ns/i18n#en-us_rtl"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di11-in.nq b/test/jsonld/1.1/fromRdf/di11-in.nq
new file mode 100644
index 00000000..7bfd7638
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di11-in.nq
@@ -0,0 +1,3 @@
+<http://example.com/a> <http://example.org/label> _:cl1 .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "no language" .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#direction> "rtl" .
diff --git a/test/jsonld/1.1/fromRdf/di11-out.jsonld b/test/jsonld/1.1/fromRdf/di11-out.jsonld
new file mode 100644
index 00000000..3afb8934
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di11-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@value": "no language", "@direction": "rtl"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/di12-in.nq b/test/jsonld/1.1/fromRdf/di12-in.nq
new file mode 100644
index 00000000..a5b3041d
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di12-in.nq
@@ -0,0 +1,4 @@
+<http://example.com/a> <http://example.org/label> _:cl1 .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "en-US" .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#language> "en-us" .
+_:cl1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#direction> "rtl" .
diff --git a/test/jsonld/1.1/fromRdf/di12-out.jsonld b/test/jsonld/1.1/fromRdf/di12-out.jsonld
new file mode 100644
index 00000000..fa4c3d64
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/di12-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.com/a",
+ "http://example.org/label": [{"@value": "en-US", "@language": "en-us", "@direction": "rtl"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js01-in.nq b/test/jsonld/1.1/fromRdf/js01-in.nq
new file mode 100644
index 00000000..49b72920
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js01-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#bool> "true"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js01-out.jsonld b/test/jsonld/1.1/fromRdf/js01-out.jsonld
new file mode 100644
index 00000000..e5d59442
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js01-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.org/vocab#id",
+ "http://example.org/vocab#bool": [{"@value": true, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js02-in.nq b/test/jsonld/1.1/fromRdf/js02-in.nq
new file mode 100644
index 00000000..f88e0fa6
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js02-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#bool> "false"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js02-out.jsonld b/test/jsonld/1.1/fromRdf/js02-out.jsonld
new file mode 100644
index 00000000..5e831a6c
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js02-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.org/vocab#id",
+ "http://example.org/vocab#bool": [{"@value": false, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js03-in.nq b/test/jsonld/1.1/fromRdf/js03-in.nq
new file mode 100644
index 00000000..83f070a5
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js03-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#double> "1.23"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js03-out.jsonld b/test/jsonld/1.1/fromRdf/js03-out.jsonld
new file mode 100644
index 00000000..19e3e095
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js03-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.org/vocab#id",
+ "http://example.org/vocab#double": [{"@value": 1.23E0, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js04-in.nq b/test/jsonld/1.1/fromRdf/js04-in.nq
new file mode 100644
index 00000000..cd8145ef
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js04-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#double> "0"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js04-out.jsonld b/test/jsonld/1.1/fromRdf/js04-out.jsonld
new file mode 100644
index 00000000..d0171d50
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js04-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.org/vocab#id",
+ "http://example.org/vocab#double": [{"@value": 0, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js05-in.nq b/test/jsonld/1.1/fromRdf/js05-in.nq
new file mode 100644
index 00000000..063dda24
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js05-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#integer> "123"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js05-out.jsonld b/test/jsonld/1.1/fromRdf/js05-out.jsonld
new file mode 100644
index 00000000..438a44e1
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js05-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.org/vocab#id",
+ "http://example.org/vocab#integer": [{"@value": 123, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js06-in.nq b/test/jsonld/1.1/fromRdf/js06-in.nq
new file mode 100644
index 00000000..498c22b0
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js06-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#object> "{\"foo\":\"bar\"}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js06-out.jsonld b/test/jsonld/1.1/fromRdf/js06-out.jsonld
new file mode 100644
index 00000000..89844df5
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js06-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.org/vocab#id",
+ "http://example.org/vocab#object": [{"@value": {"foo": "bar"}, "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js07-in.nq b/test/jsonld/1.1/fromRdf/js07-in.nq
new file mode 100644
index 00000000..257f4b0a
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js07-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#array> "[{\"foo\":\"bar\"}]"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js07-out.jsonld b/test/jsonld/1.1/fromRdf/js07-out.jsonld
new file mode 100644
index 00000000..3233b0b9
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js07-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.org/vocab#id",
+ "http://example.org/vocab#array": [{"@value": [{"foo": "bar"}], "@type": "@json"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js08-in.nq b/test/jsonld/1.1/fromRdf/js08-in.nq
new file mode 100644
index 00000000..81a90a65
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js08-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#invalid> "bareword"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js09-in.nq b/test/jsonld/1.1/fromRdf/js09-in.nq
new file mode 100644
index 00000000..55d4020f
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js09-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#invalid> "[{]"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js10-in.nq b/test/jsonld/1.1/fromRdf/js10-in.nq
new file mode 100644
index 00000000..836a0d04
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js10-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#string> "\"string\""^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/fromRdf/js10-out.jsonld b/test/jsonld/1.1/fromRdf/js10-out.jsonld
new file mode 100644
index 00000000..62c5e0ae
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js10-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "http://example.org/vocab#id",
+ "http://example.org/vocab#string": [{
+ "@value": "string",
+ "@type": "@json"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/js11-in.nq b/test/jsonld/1.1/fromRdf/js11-in.nq
new file mode 100644
index 00000000..6ae11cce
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js11-in.nq
@@ -0,0 +1 @@
+<http://example.org/vocab#id> <http://example.org/vocab#null> "null"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/fromRdf/js11-out.jsonld b/test/jsonld/1.1/fromRdf/js11-out.jsonld
new file mode 100644
index 00000000..b450bece
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/js11-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "http://example.org/vocab#id",
+ "http://example.org/vocab#null": [{
+ "@value": null,
+ "@type": "@json"
+ }]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/li01-in.nq b/test/jsonld/1.1/fromRdf/li01-in.nq
new file mode 100644
index 00000000..b7018119
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/li01-in.nq
@@ -0,0 +1,3 @@
+<http://example.com/a> <http://example.com/property> _:l1 .
+_:l1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:l1 <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/test/jsonld/1.1/fromRdf/li01-out.jsonld b/test/jsonld/1.1/fromRdf/li01-out.jsonld
new file mode 100644
index 00000000..df528914
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/li01-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://example.com/a",
+ "http://example.com/property": [{"@list": [{"@list": []}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/fromRdf/li02-in.nq b/test/jsonld/1.1/fromRdf/li02-in.nq
new file mode 100644
index 00000000..37244ae7
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/li02-in.nq
@@ -0,0 +1,9 @@
+<http://example.com/a> <http://example.com/property> _:l1 .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:l1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:a .
+_:l1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:l2 .
+_:l2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b .
+_:l2 <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/test/jsonld/1.1/fromRdf/li02-out.jsonld b/test/jsonld/1.1/fromRdf/li02-out.jsonld
new file mode 100644
index 00000000..3f9e348c
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/li02-out.jsonld
@@ -0,0 +1,7 @@
+[{
+ "@id": "http://example.com/a",
+ "http://example.com/property": [{"@list": [
+ {"@list": [{"@value": "a"}]},
+ {"@list": [{"@value": "b"}]}
+ ]}]
+}]
diff --git a/test/jsonld/1.1/fromRdf/li03-in.nq b/test/jsonld/1.1/fromRdf/li03-in.nq
new file mode 100644
index 00000000..878e33ed
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/li03-in.nq
@@ -0,0 +1,28 @@
+<http://example.com> <http://example.com/property> _:outerlist .
+_:outerlist <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:lista .
+_:outerlist <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b0 .
+
+_:lista <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a1" .
+_:lista <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:a2 .
+_:a2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a2" .
+_:a2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:a3 .
+_:a3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a3" .
+_:a3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+
+_:c0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:c1 .
+_:c0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:c1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c1" .
+_:c1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c2 .
+_:c2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c2" .
+_:c2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c3 .
+_:c3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c3" .
+_:c3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c0 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b1" .
+_: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> "b2" .
+_: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> "b3" .
+_: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/test/jsonld/1.1/fromRdf/li03-out.jsonld b/test/jsonld/1.1/fromRdf/li03-out.jsonld
new file mode 100644
index 00000000..3dff7bcf
--- /dev/null
+++ b/test/jsonld/1.1/fromRdf/li03-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [
+ {
+ "@list": [
+ {"@list": [{"@value": "a1"}, {"@value": "a2"}, {"@value": "a3"}]},
+ {"@list": [{"@value": "b1"}, {"@value": "b2"}, {"@value": "b3"}]},
+ {"@list": [{"@value": "c1"}, {"@value": "c2"}, {"@value": "c3"}]}
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/1.1/html-manifest.jsonld b/test/jsonld/1.1/html-manifest.jsonld
new file mode 100644
index 00000000..92cffd69
--- /dev/null
+++ b/test/jsonld/1.1/html-manifest.jsonld
@@ -0,0 +1,473 @@
+{
+ "@context": ["context.jsonld", {"@base": "html-manifest"}],
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "HTML",
+ "description": "These tests implement the requirements for the JSON-LD [HTML Content Algorithms](https://www.w3.org/TR/json-ld11-api/#html-content-algorithms).",
+ "baseIri": "https://w3c.github.io/json-ld-api/tests/",
+ "sequence": [{
+ "@id": "#te001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/e001-in.html",
+ "expect": "html/e001-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tex01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element (xhtml)",
+ "purpose": "Tests embedded JSON-LD in XHTML",
+ "input": "html/e001-in.html",
+ "expect": "html/e001-out.jsonld",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "contentType": "application/xhtml+xml",
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#te002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands first embedded JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/e002-in.html",
+ "expect": "html/e002-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands targeted JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML with fragment identifier",
+ "input": "html/e003-in.html#second",
+ "expect": "html/e003-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands all embedded JSON-LD script elements with extractAllScripts option",
+ "purpose": "Tests embedded JSON-LD in HTML extracting all elements",
+ "input": "html/e004-in.html",
+ "expect": "html/e004-out.jsonld",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "extractAllScripts": true,
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#te005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands multiple embedded JSON-LD script elements where one is an array",
+ "purpose": "Tests embedded JSON-LD in HTML extracting all elements with array",
+ "input": "html/e005-in.html",
+ "expect": "html/e005-out.jsonld",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "extractAllScripts": true,
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#te006",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands as empty with no embedded JSON-LD script elements",
+ "purpose": "Tests embedded JSON-LD in HTML when none exist",
+ "input": "html/e006-in.html",
+ "expectErrorCode": "loading document failed",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands as empty with no embedded JSON-LD script elements and extractAllScripts",
+ "purpose": "Tests embedded JSON-LD in HTML when none exist extracting all elements",
+ "input": "html/e007-in.html",
+ "expect": "html/e007-out.jsonld",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "extractAllScripts": true,
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#te010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element with HTML character references",
+ "purpose": "Tests embedded JSON-LD in HTML with character references",
+ "input": "html/e010-in.html",
+ "expect": "html/e010-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te011",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Errors if no element found at target",
+ "purpose": "Tests embedded JSON-LD in HTML with fragment identifier that doesn't exist",
+ "input": "html/e011-in.html#third",
+ "expectErrorCode": "loading document failed",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te012",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Errors if targeted element is not a script element",
+ "purpose": "Tests embedded JSON-LD in HTML which isn't a script element",
+ "input": "html/e012-in.html#first",
+ "expectErrorCode": "loading document failed",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te013",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Errors if targeted element does not have type application/ld+json",
+ "purpose": "Tests embedded JSON-LD in HTML with wrong type",
+ "input": "html/e013-in.html#first",
+ "expectErrorCode": "loading document failed",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te014",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Errors if uncommented script text contains comment",
+ "purpose": "Tests embedded JSON-LD in HTML with comments leftover",
+ "input": "html/e014-in.html",
+ "expectErrorCode": "invalid script element",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te015",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Errors if end comment missing",
+ "purpose": "Tests embedded JSON-LD in HTML with unballanced comments",
+ "input": "html/e015-in.html",
+ "expectErrorCode": "invalid script element",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te016",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Errors if start comment missing",
+ "purpose": "Tests embedded JSON-LD in HTML with unballanced comments",
+ "input": "html/e016-in.html",
+ "expectErrorCode": "invalid script element",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te017",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Errors if uncommented script is not valid JSON",
+ "purpose": "Tests embedded JSON-LD in HTML which is invalid JSON",
+ "input": "html/e017-in.html",
+ "expectErrorCode": "invalid script element",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element relative to document base",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/e018-in.html",
+ "expect": "html/e018-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#te019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element relative to base option",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/e019-in.html",
+ "expect": "html/e019-out.jsonld",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "base": "http://a.example.com/doc",
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#te020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element relative to HTML base",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/e020-in.html",
+ "expect": "html/e020-out.jsonld",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "base": "http://a.example.com/doc",
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#te021",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element relative to relative HTML base",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/e021-in.html",
+ "expect": "html/e021-out.jsonld",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "base": "http://a.example.com/doc",
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#te022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest", "jld:HtmlTest"],
+ "name": "Expands targeted JSON-LD script element with fragment and HTML base",
+ "purpose": "Tests embedded JSON-LD in HTML with fragment identifier",
+ "input": "html/e022-in.html#second",
+ "expect": "html/e022-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tc001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest", "jld:HtmlTest"],
+ "name": "Compacts embedded JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/c001-in.html",
+ "context": "html/c001-context.jsonld",
+ "expect": "html/c001-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tc002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest", "jld:HtmlTest"],
+ "name": "Compacts first embedded JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/c002-in.html",
+ "context": "html/c002-context.jsonld",
+ "expect": "html/c002-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tc003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest", "jld:HtmlTest"],
+ "name": "Compacts targeted JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML with fragment identifier",
+ "input": "html/c003-in.html#second",
+ "context": "html/c003-context.jsonld",
+ "expect": "html/c003-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tc004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:CompactTest", "jld:HtmlTest"],
+ "name": "Compacts all embedded JSON-LD script elements with extractAllScripts option",
+ "purpose": "Tests embedded JSON-LD in HTML extracting all elements",
+ "input": "html/c004-in.html",
+ "context": "html/c004-context.jsonld",
+ "expect": "html/c004-out.jsonld",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "extractAllScripts": true,
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#tf001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest", "jld:HtmlTest"],
+ "name": "Flattens embedded JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/f001-in.html",
+ "context": "html/f001-context.jsonld",
+ "expect": "html/f001-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tf002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest", "jld:HtmlTest"],
+ "name": "Flattens first embedded JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/f002-in.html",
+ "context": "html/f002-context.jsonld",
+ "expect": "html/f002-out.jsonld",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "extractAllScripts": false,
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#tf003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest", "jld:HtmlTest"],
+ "name": "Flattens targeted JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML with fragment identifier",
+ "input": "html/f003-in.html#second",
+ "context": "html/f003-context.jsonld",
+ "expect": "html/f003-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tf004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FlattenTest", "jld:HtmlTest"],
+ "name": "Flattens all script elements by default",
+ "purpose": "Tests embedded JSON-LD in HTML multiple script elements",
+ "input": "html/f004-in.html",
+ "context": "html/f004-context.jsonld",
+ "expect": "html/f004-out.jsonld",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Transforms embedded JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/r001-in.html",
+ "expect": "html/r001-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Transforms first embedded JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/r002-in.html",
+ "expect": "html/r002-out.nq",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "extractAllScripts": false,
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#tr003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Transforms targeted JSON-LD script element",
+ "purpose": "Tests embedded JSON-LD in HTML with fragment identifier",
+ "input": "html/r003-in.html#second",
+ "expect": "html/r003-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Expands all embedded JSON-LD script elements with extractAllScripts option",
+ "purpose": "Tests embedded JSON-LD in HTML extracting all elements",
+ "input": "html/r004-in.html",
+ "expect": "html/r004-out.nq",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "extractAllScripts": true,
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#tr005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Expands multiple embedded JSON-LD script elements where one is an array",
+ "purpose": "Tests embedded JSON-LD in HTML extracting all elements with array",
+ "input": "html/r005-in.html",
+ "expect": "html/r005-out.nq",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "extractAllScripts": true,
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#tr006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Expands as empty with no embedded JSON-LD script elements",
+ "purpose": "Tests embedded JSON-LD in HTML when none exist",
+ "input": "html/r006-in.html",
+ "expect": "html/r006-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Expands as empty with no embedded JSON-LD script elements and extractAllScripts",
+ "purpose": "Tests embedded JSON-LD in HTML when none exist extracting all elements",
+ "input": "html/r007-in.html",
+ "expect": "html/r007-out.nq",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "extractAllScripts": true,
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#tr010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element with HTML character references",
+ "purpose": "Tests embedded JSON-LD in HTML with character references",
+ "input": "html/r010-in.html",
+ "expect": "html/r010-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr011",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Errors if no element found at target",
+ "purpose": "Tests embedded JSON-LD in HTML with fragment identifier that doesn't exist",
+ "input": "html/r011-in.html#third",
+ "expectErrorCode": "loading document failed",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr012",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Errors if targeted element is not a script element",
+ "purpose": "Tests embedded JSON-LD in HTML which isn't a script element",
+ "input": "html/r012-in.html#first",
+ "expectErrorCode": "loading document failed",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr013",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Errors if targeted element does not have type application/ld+json",
+ "purpose": "Tests embedded JSON-LD in HTML with wrong type",
+ "input": "html/r013-in.html#first",
+ "expectErrorCode": "loading document failed",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr014",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Errors if uncommented script text contains comment",
+ "purpose": "Tests embedded JSON-LD in HTML with comments leftover",
+ "input": "html/r014-in.html",
+ "expectErrorCode": "invalid script element",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr015",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Errors if end comment missing",
+ "purpose": "Tests embedded JSON-LD in HTML with unballanced comments",
+ "input": "html/r015-in.html",
+ "expectErrorCode": "invalid script element",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr016",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Errors if start comment missing",
+ "purpose": "Tests embedded JSON-LD in HTML with unballanced comments",
+ "input": "html/r016-in.html",
+ "expectErrorCode": "invalid script element",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr017",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Errors if uncommented script is not valid JSON",
+ "purpose": "Tests embedded JSON-LD in HTML which is invalid JSON",
+ "input": "html/r017-in.html",
+ "expectErrorCode": "invalid script element",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element relative to document base",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/r018-in.html",
+ "expect": "html/r018-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }, {
+ "@id": "#tr019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element relative to base option",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/r019-in.html",
+ "expect": "html/r019-out.nq",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "base": "http://a.example.com/doc",
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#tr020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element relative to HTML base",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/r020-in.html",
+ "expect": "html/r020-out.nq",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "base": "http://a.example.com/doc",
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#tr021",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Expands embedded JSON-LD script element relative to relative HTML base",
+ "purpose": "Tests embedded JSON-LD in HTML",
+ "input": "html/r021-in.html",
+ "expect": "html/r021-out.nq",
+ "option": {
+ "specVersion": "json-ld-1.1",
+ "base": "http://a.example.com/doc",
+ "processorFeature": "HTML Script Extraction"
+ }
+ }, {
+ "@id": "#tr022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest", "jld:HtmlTest"],
+ "name": "Expands targeted JSON-LD script element with fragment and HTML base",
+ "purpose": "Tests embedded JSON-LD in HTML with fragment identifier",
+ "input": "html/r022-in.html#second",
+ "expect": "html/r022-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "processorFeature": "HTML Script Extraction"}
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c001-context.jsonld b/test/jsonld/1.1/html/c001-context.jsonld
new file mode 100644
index 00000000..c9ee5d89
--- /dev/null
+++ b/test/jsonld/1.1/html/c001-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c001-in.html b/test/jsonld/1.1/html/c001-in.html
new file mode 100644
index 00000000..57328e38
--- /dev/null
+++ b/test/jsonld/1.1/html/c001-in.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c001-out.jsonld b/test/jsonld/1.1/html/c001-out.jsonld
new file mode 100644
index 00000000..fa6a4cf0
--- /dev/null
+++ b/test/jsonld/1.1/html/c001-out.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": ["bar"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c002-context.jsonld b/test/jsonld/1.1/html/c002-context.jsonld
new file mode 100644
index 00000000..c9ee5d89
--- /dev/null
+++ b/test/jsonld/1.1/html/c002-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c002-in.html b/test/jsonld/1.1/html/c002-in.html
new file mode 100644
index 00000000..b287ab50
--- /dev/null
+++ b/test/jsonld/1.1/html/c002-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c002-out.jsonld b/test/jsonld/1.1/html/c002-out.jsonld
new file mode 100644
index 00000000..fa6a4cf0
--- /dev/null
+++ b/test/jsonld/1.1/html/c002-out.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": ["bar"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c003-context.jsonld b/test/jsonld/1.1/html/c003-context.jsonld
new file mode 100644
index 00000000..bd58ee54
--- /dev/null
+++ b/test/jsonld/1.1/html/c003-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"ex": "http://example.com/"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c003-in.html b/test/jsonld/1.1/html/c003-in.html
new file mode 100644
index 00000000..f18c1dae
--- /dev/null
+++ b/test/jsonld/1.1/html/c003-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script id="first" type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script id="second" type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c003-out.jsonld b/test/jsonld/1.1/html/c003-out.jsonld
new file mode 100644
index 00000000..f68d33ae
--- /dev/null
+++ b/test/jsonld/1.1/html/c003-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": "foo"},
+ {"ex:bar": "bar"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c004-context.jsonld b/test/jsonld/1.1/html/c004-context.jsonld
new file mode 100644
index 00000000..c68c329c
--- /dev/null
+++ b/test/jsonld/1.1/html/c004-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "ex": "http://example.com/",
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c004-in.html b/test/jsonld/1.1/html/c004-in.html
new file mode 100644
index 00000000..b287ab50
--- /dev/null
+++ b/test/jsonld/1.1/html/c004-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/c004-out.jsonld b/test/jsonld/1.1/html/c004-out.jsonld
new file mode 100644
index 00000000..deede214
--- /dev/null
+++ b/test/jsonld/1.1/html/c004-out.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "ex": "http://example.com/",
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "@graph": [
+ {"foo": ["bar"]},
+ {
+ "@graph": [
+ {"ex:foo": "foo"},
+ {"ex:bar": "bar"}
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e001-in.html b/test/jsonld/1.1/html/e001-in.html
new file mode 100644
index 00000000..57328e38
--- /dev/null
+++ b/test/jsonld/1.1/html/e001-in.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e001-out.jsonld b/test/jsonld/1.1/html/e001-out.jsonld
new file mode 100644
index 00000000..e793da70
--- /dev/null
+++ b/test/jsonld/1.1/html/e001-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@value": "bar"}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e002-in.html b/test/jsonld/1.1/html/e002-in.html
new file mode 100644
index 00000000..b287ab50
--- /dev/null
+++ b/test/jsonld/1.1/html/e002-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e002-out.jsonld b/test/jsonld/1.1/html/e002-out.jsonld
new file mode 100644
index 00000000..e793da70
--- /dev/null
+++ b/test/jsonld/1.1/html/e002-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@value": "bar"}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e003-in.html b/test/jsonld/1.1/html/e003-in.html
new file mode 100644
index 00000000..f18c1dae
--- /dev/null
+++ b/test/jsonld/1.1/html/e003-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script id="first" type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script id="second" type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e003-out.jsonld b/test/jsonld/1.1/html/e003-out.jsonld
new file mode 100644
index 00000000..83d36929
--- /dev/null
+++ b/test/jsonld/1.1/html/e003-out.jsonld
@@ -0,0 +1,4 @@
+[
+ {"http://example.com/foo": [{"@value": "foo"}]},
+ {"http://example.com/bar": [{"@value": "bar"}]}
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e004-in.html b/test/jsonld/1.1/html/e004-in.html
new file mode 100644
index 00000000..b287ab50
--- /dev/null
+++ b/test/jsonld/1.1/html/e004-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e004-out.jsonld b/test/jsonld/1.1/html/e004-out.jsonld
new file mode 100644
index 00000000..58be8a87
--- /dev/null
+++ b/test/jsonld/1.1/html/e004-out.jsonld
@@ -0,0 +1,10 @@
+[
+ {"http://example.com/foo": [{"@list": [{"@value": "bar"}]}]},
+ {
+ "@graph": [{
+ "http://example.com/foo": [{"@value": "foo"}]
+ }, {
+ "http://example.com/bar": [{"@value": "bar"}]
+ }]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e005-in.html b/test/jsonld/1.1/html/e005-in.html
new file mode 100644
index 00000000..1c07a03f
--- /dev/null
+++ b/test/jsonld/1.1/html/e005-in.html
@@ -0,0 +1,18 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script type="application/ld+json">
+ [
+ {"@context": {"ex": "http://example.com/"}, "ex:foo": {"@value": "foo"}},
+ {"@context": {"ex": "http://example.com/"}, "ex:bar": {"@value": "bar"}}
+ ]
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e005-out.jsonld b/test/jsonld/1.1/html/e005-out.jsonld
new file mode 100644
index 00000000..602ce014
--- /dev/null
+++ b/test/jsonld/1.1/html/e005-out.jsonld
@@ -0,0 +1,5 @@
+[
+ {"http://example.com/foo": [{"@list": [{"@value": "bar"}]}]},
+ {"http://example.com/foo": [{"@value": "foo"}]},
+ {"http://example.com/bar": [{"@value": "bar"}]}
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e006-in.html b/test/jsonld/1.1/html/e006-in.html
new file mode 100644
index 00000000..4301ea4d
--- /dev/null
+++ b/test/jsonld/1.1/html/e006-in.html
@@ -0,0 +1 @@
+<html><head></head></html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e007-in.html b/test/jsonld/1.1/html/e007-in.html
new file mode 100644
index 00000000..4301ea4d
--- /dev/null
+++ b/test/jsonld/1.1/html/e007-in.html
@@ -0,0 +1 @@
+<html><head></head></html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e007-out.jsonld b/test/jsonld/1.1/html/e007-out.jsonld
new file mode 100644
index 00000000..0637a088
--- /dev/null
+++ b/test/jsonld/1.1/html/e007-out.jsonld
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e008-in.html b/test/jsonld/1.1/html/e008-in.html
new file mode 100644
index 00000000..178034ab
--- /dev/null
+++ b/test/jsonld/1.1/html/e008-in.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ <!--
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ -->
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e008-out.jsonld b/test/jsonld/1.1/html/e008-out.jsonld
new file mode 100644
index 00000000..e793da70
--- /dev/null
+++ b/test/jsonld/1.1/html/e008-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.com/foo": [{"@list": [{"@value": "bar"}]}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e009-in.html b/test/jsonld/1.1/html/e009-in.html
new file mode 100644
index 00000000..1a85b642
--- /dev/null
+++ b/test/jsonld/1.1/html/e009-in.html
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {"@vocab": "http://example/"},
+ "comment-start": "<\!--",
+ "comment-end": "--\>",
+ "script-start": "<\ScRiPt>",
+ "script-end": "<\/sCrIpT>"
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e009-out.jsonld b/test/jsonld/1.1/html/e009-out.jsonld
new file mode 100644
index 00000000..44cc49c8
--- /dev/null
+++ b/test/jsonld/1.1/html/e009-out.jsonld
@@ -0,0 +1,6 @@
+[{
+ "http://example/comment-start": [{"@value": "<!--"}],
+ "http://example/comment-end": [{"@value": "-->"}],
+ "http://example/script-start": [{"@value": "<ScRiPt>"}],
+ "http://example/script-end": [{"@value": "</sCrIpT>"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e010-in.html b/test/jsonld/1.1/html/e010-in.html
new file mode 100644
index 00000000..384ea36e
--- /dev/null
+++ b/test/jsonld/1.1/html/e010-in.html
@@ -0,0 +1,10 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {"@vocab": "http://example/"},
+ "foo": "&lt;&amp;&gt;"
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e010-out.jsonld b/test/jsonld/1.1/html/e010-out.jsonld
new file mode 100644
index 00000000..f7b5a0ee
--- /dev/null
+++ b/test/jsonld/1.1/html/e010-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example/foo": [{"@value": "&lt;&amp;&gt;"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e011-in.html b/test/jsonld/1.1/html/e011-in.html
new file mode 100644
index 00000000..f18c1dae
--- /dev/null
+++ b/test/jsonld/1.1/html/e011-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script id="first" type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script id="second" type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e012-in.html b/test/jsonld/1.1/html/e012-in.html
new file mode 100644
index 00000000..7700c932
--- /dev/null
+++ b/test/jsonld/1.1/html/e012-in.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <pre id="first" type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </pre>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e013-in.html b/test/jsonld/1.1/html/e013-in.html
new file mode 100644
index 00000000..4e0d64a4
--- /dev/null
+++ b/test/jsonld/1.1/html/e013-in.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <script id="first" type="application/json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e014-in.html b/test/jsonld/1.1/html/e014-in.html
new file mode 100644
index 00000000..ceeeff8b
--- /dev/null
+++ b/test/jsonld/1.1/html/e014-in.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ <!--
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "<!-- -->"}]
+ }
+ -->
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e015-in.html b/test/jsonld/1.1/html/e015-in.html
new file mode 100644
index 00000000..eb0e188a
--- /dev/null
+++ b/test/jsonld/1.1/html/e015-in.html
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ <!--
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e016-in.html b/test/jsonld/1.1/html/e016-in.html
new file mode 100644
index 00000000..1bc35a18
--- /dev/null
+++ b/test/jsonld/1.1/html/e016-in.html
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ -->
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e017-in.html b/test/jsonld/1.1/html/e017-in.html
new file mode 100644
index 00000000..90a0e2f6
--- /dev/null
+++ b/test/jsonld/1.1/html/e017-in.html
@@ -0,0 +1,7 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ <!-- foo -->
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e018-in.html b/test/jsonld/1.1/html/e018-in.html
new file mode 100644
index 00000000..8a644238
--- /dev/null
+++ b/test/jsonld/1.1/html/e018-in.html
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo"}
+ },
+ "@id": "",
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e018-out.jsonld b/test/jsonld/1.1/html/e018-out.jsonld
new file mode 100644
index 00000000..1006dad1
--- /dev/null
+++ b/test/jsonld/1.1/html/e018-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/html/e018-in.html",
+ "http://example.com/foo": [{"@value": "bar"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e019-in.html b/test/jsonld/1.1/html/e019-in.html
new file mode 100644
index 00000000..8a644238
--- /dev/null
+++ b/test/jsonld/1.1/html/e019-in.html
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo"}
+ },
+ "@id": "",
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e019-out.jsonld b/test/jsonld/1.1/html/e019-out.jsonld
new file mode 100644
index 00000000..1617d64f
--- /dev/null
+++ b/test/jsonld/1.1/html/e019-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://a.example.com/doc",
+ "http://example.com/foo": [{"@value": "bar"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e020-in.html b/test/jsonld/1.1/html/e020-in.html
new file mode 100644
index 00000000..c7fdfb1b
--- /dev/null
+++ b/test/jsonld/1.1/html/e020-in.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ <base href="http://a.example.com/base" />
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo"}
+ },
+ "@id": "",
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e020-out.jsonld b/test/jsonld/1.1/html/e020-out.jsonld
new file mode 100644
index 00000000..f309cd84
--- /dev/null
+++ b/test/jsonld/1.1/html/e020-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://a.example.com/base",
+ "http://example.com/foo": [{"@value": "bar"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e021-in.html b/test/jsonld/1.1/html/e021-in.html
new file mode 100644
index 00000000..25b5e3cf
--- /dev/null
+++ b/test/jsonld/1.1/html/e021-in.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ <base href="base" />
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo"}
+ },
+ "@id": "",
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e021-out.jsonld b/test/jsonld/1.1/html/e021-out.jsonld
new file mode 100644
index 00000000..f309cd84
--- /dev/null
+++ b/test/jsonld/1.1/html/e021-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://a.example.com/base",
+ "http://example.com/foo": [{"@value": "bar"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e022-in.html b/test/jsonld/1.1/html/e022-in.html
new file mode 100644
index 00000000..0d18ab9d
--- /dev/null
+++ b/test/jsonld/1.1/html/e022-in.html
@@ -0,0 +1,20 @@
+<html>
+ <head>
+ <base href="http://a.example.com/base" />
+ <script id="first" type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script id="second" type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@id": "",
+ "ex:bar": "foo"
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/e022-out.jsonld b/test/jsonld/1.1/html/e022-out.jsonld
new file mode 100644
index 00000000..bbfd82eb
--- /dev/null
+++ b/test/jsonld/1.1/html/e022-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "http://a.example.com/base",
+ "http://example.com/bar": [{"@value": "foo"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f001-context.jsonld b/test/jsonld/1.1/html/f001-context.jsonld
new file mode 100644
index 00000000..c9ee5d89
--- /dev/null
+++ b/test/jsonld/1.1/html/f001-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f001-in.html b/test/jsonld/1.1/html/f001-in.html
new file mode 100644
index 00000000..57328e38
--- /dev/null
+++ b/test/jsonld/1.1/html/f001-in.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f001-out.jsonld b/test/jsonld/1.1/html/f001-out.jsonld
new file mode 100644
index 00000000..b62c9ff4
--- /dev/null
+++ b/test/jsonld/1.1/html/f001-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "@graph": [{"@id": "_:b0","foo": ["bar"]}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f002-context.jsonld b/test/jsonld/1.1/html/f002-context.jsonld
new file mode 100644
index 00000000..c9ee5d89
--- /dev/null
+++ b/test/jsonld/1.1/html/f002-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f002-in.html b/test/jsonld/1.1/html/f002-in.html
new file mode 100644
index 00000000..b287ab50
--- /dev/null
+++ b/test/jsonld/1.1/html/f002-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f002-out.jsonld b/test/jsonld/1.1/html/f002-out.jsonld
new file mode 100644
index 00000000..b62c9ff4
--- /dev/null
+++ b/test/jsonld/1.1/html/f002-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "@graph": [{"@id": "_:b0","foo": ["bar"]}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f003-context.jsonld b/test/jsonld/1.1/html/f003-context.jsonld
new file mode 100644
index 00000000..bd58ee54
--- /dev/null
+++ b/test/jsonld/1.1/html/f003-context.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": {"ex": "http://example.com/"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f003-in.html b/test/jsonld/1.1/html/f003-in.html
new file mode 100644
index 00000000..f18c1dae
--- /dev/null
+++ b/test/jsonld/1.1/html/f003-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script id="first" type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script id="second" type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f003-out.jsonld b/test/jsonld/1.1/html/f003-out.jsonld
new file mode 100644
index 00000000..cd0c43e1
--- /dev/null
+++ b/test/jsonld/1.1/html/f003-out.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"@id": "_:b0", "ex:foo": "foo"},
+ {"@id": "_:b1", "ex:bar": "bar"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f004-context.jsonld b/test/jsonld/1.1/html/f004-context.jsonld
new file mode 100644
index 00000000..c68c329c
--- /dev/null
+++ b/test/jsonld/1.1/html/f004-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "ex": "http://example.com/",
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f004-in.html b/test/jsonld/1.1/html/f004-in.html
new file mode 100644
index 00000000..cfac7160
--- /dev/null
+++ b/test/jsonld/1.1/html/f004-in.html
@@ -0,0 +1,18 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script type="application/ld+json">
+ [
+ {"http://example.com/foo": {"@value": "foo"}},
+ {"http://example.com/bar": {"@value": "bar"}}
+ ]
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/f004-out.jsonld b/test/jsonld/1.1/html/f004-out.jsonld
new file mode 100644
index 00000000..e0315dd2
--- /dev/null
+++ b/test/jsonld/1.1/html/f004-out.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "ex": "http://example.com/",
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "@graph": [
+ {"@id": "_:b0", "foo": ["bar"]},
+ {"@id": "_:b1", "ex:foo": "foo"},
+ {"@id": "_:b2", "ex:bar": "bar"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r001-in.html b/test/jsonld/1.1/html/r001-in.html
new file mode 100644
index 00000000..57328e38
--- /dev/null
+++ b/test/jsonld/1.1/html/r001-in.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r001-out.nq b/test/jsonld/1.1/html/r001-out.nq
new file mode 100644
index 00000000..91e9e279
--- /dev/null
+++ b/test/jsonld/1.1/html/r001-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "bar" .
+_: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/test/jsonld/1.1/html/r002-in.html b/test/jsonld/1.1/html/r002-in.html
new file mode 100644
index 00000000..b287ab50
--- /dev/null
+++ b/test/jsonld/1.1/html/r002-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r002-out.nq b/test/jsonld/1.1/html/r002-out.nq
new file mode 100644
index 00000000..91e9e279
--- /dev/null
+++ b/test/jsonld/1.1/html/r002-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "bar" .
+_: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/test/jsonld/1.1/html/r003-in.html b/test/jsonld/1.1/html/r003-in.html
new file mode 100644
index 00000000..f18c1dae
--- /dev/null
+++ b/test/jsonld/1.1/html/r003-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script id="first" type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script id="second" type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r003-out.nq b/test/jsonld/1.1/html/r003-out.nq
new file mode 100644
index 00000000..44f69e9a
--- /dev/null
+++ b/test/jsonld/1.1/html/r003-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.com/foo> "foo" .
+_:b1 <http://example.com/bar> "bar" .
diff --git a/test/jsonld/1.1/html/r004-in.html b/test/jsonld/1.1/html/r004-in.html
new file mode 100644
index 00000000..b287ab50
--- /dev/null
+++ b/test/jsonld/1.1/html/r004-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r004-out.nq b/test/jsonld/1.1/html/r004-out.nq
new file mode 100644
index 00000000..79e62936
--- /dev/null
+++ b/test/jsonld/1.1/html/r004-out.nq
@@ -0,0 +1,5 @@
+_:b3 <http://example.com/foo> "foo" _:b2 .
+_:b4 <http://example.com/bar> "bar" _:b2 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "bar" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b0 <http://example.com/foo> _:b1 .
diff --git a/test/jsonld/1.1/html/r005-in.html b/test/jsonld/1.1/html/r005-in.html
new file mode 100644
index 00000000..1c07a03f
--- /dev/null
+++ b/test/jsonld/1.1/html/r005-in.html
@@ -0,0 +1,18 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script type="application/ld+json">
+ [
+ {"@context": {"ex": "http://example.com/"}, "ex:foo": {"@value": "foo"}},
+ {"@context": {"ex": "http://example.com/"}, "ex:bar": {"@value": "bar"}}
+ ]
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r005-out.nq b/test/jsonld/1.1/html/r005-out.nq
new file mode 100644
index 00000000..7f8960ea
--- /dev/null
+++ b/test/jsonld/1.1/html/r005-out.nq
@@ -0,0 +1,5 @@
+_:b2 <http://example.com/foo> "foo" .
+_:b3 <http://example.com/bar> "bar" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "bar" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b0 <http://example.com/foo> _:b1 .
diff --git a/test/jsonld/1.1/html/r006-in.html b/test/jsonld/1.1/html/r006-in.html
new file mode 100644
index 00000000..4301ea4d
--- /dev/null
+++ b/test/jsonld/1.1/html/r006-in.html
@@ -0,0 +1 @@
+<html><head></head></html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r006-out.nq b/test/jsonld/1.1/html/r006-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/html/r006-out.nq
diff --git a/test/jsonld/1.1/html/r007-in.html b/test/jsonld/1.1/html/r007-in.html
new file mode 100644
index 00000000..4301ea4d
--- /dev/null
+++ b/test/jsonld/1.1/html/r007-in.html
@@ -0,0 +1 @@
+<html><head></head></html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r007-out.nq b/test/jsonld/1.1/html/r007-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/html/r007-out.nq
diff --git a/test/jsonld/1.1/html/r010-in.html b/test/jsonld/1.1/html/r010-in.html
new file mode 100644
index 00000000..384ea36e
--- /dev/null
+++ b/test/jsonld/1.1/html/r010-in.html
@@ -0,0 +1,10 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {"@vocab": "http://example/"},
+ "foo": "&lt;&amp;&gt;"
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r010-out.nq b/test/jsonld/1.1/html/r010-out.nq
new file mode 100644
index 00000000..5bf520dc
--- /dev/null
+++ b/test/jsonld/1.1/html/r010-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/foo> "&lt;&amp;&gt;" .
diff --git a/test/jsonld/1.1/html/r011-in.html b/test/jsonld/1.1/html/r011-in.html
new file mode 100644
index 00000000..f18c1dae
--- /dev/null
+++ b/test/jsonld/1.1/html/r011-in.html
@@ -0,0 +1,21 @@
+<html>
+ <head>
+ <script id="first" type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script id="second" type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@graph": [
+ {"ex:foo": {"@value": "foo"}},
+ {"ex:bar": {"@value": "bar"}}
+ ]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r012-in.html b/test/jsonld/1.1/html/r012-in.html
new file mode 100644
index 00000000..7700c932
--- /dev/null
+++ b/test/jsonld/1.1/html/r012-in.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <pre id="first" type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </pre>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r013-in.html b/test/jsonld/1.1/html/r013-in.html
new file mode 100644
index 00000000..4e0d64a4
--- /dev/null
+++ b/test/jsonld/1.1/html/r013-in.html
@@ -0,0 +1,12 @@
+<html>
+ <head>
+ <script id="first" type="application/json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r014-in.html b/test/jsonld/1.1/html/r014-in.html
new file mode 100644
index 00000000..ceeeff8b
--- /dev/null
+++ b/test/jsonld/1.1/html/r014-in.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ <!--
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "<!-- -->"}]
+ }
+ -->
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r015-in.html b/test/jsonld/1.1/html/r015-in.html
new file mode 100644
index 00000000..eb0e188a
--- /dev/null
+++ b/test/jsonld/1.1/html/r015-in.html
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ <!--
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r016-in.html b/test/jsonld/1.1/html/r016-in.html
new file mode 100644
index 00000000..1bc35a18
--- /dev/null
+++ b/test/jsonld/1.1/html/r016-in.html
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo", "@container": "@list"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ -->
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r017-in.html b/test/jsonld/1.1/html/r017-in.html
new file mode 100644
index 00000000..90a0e2f6
--- /dev/null
+++ b/test/jsonld/1.1/html/r017-in.html
@@ -0,0 +1,7 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ <!-- foo -->
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r018-in.html b/test/jsonld/1.1/html/r018-in.html
new file mode 100644
index 00000000..8a644238
--- /dev/null
+++ b/test/jsonld/1.1/html/r018-in.html
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo"}
+ },
+ "@id": "",
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r018-out.nq b/test/jsonld/1.1/html/r018-out.nq
new file mode 100644
index 00000000..d9ad2af0
--- /dev/null
+++ b/test/jsonld/1.1/html/r018-out.nq
@@ -0,0 +1 @@
+<https://w3c.github.io/json-ld-api/tests/html/r018-in.html> <http://example.com/foo> "bar" .
diff --git a/test/jsonld/1.1/html/r019-in.html b/test/jsonld/1.1/html/r019-in.html
new file mode 100644
index 00000000..8a644238
--- /dev/null
+++ b/test/jsonld/1.1/html/r019-in.html
@@ -0,0 +1,13 @@
+<html>
+ <head>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo"}
+ },
+ "@id": "",
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r019-out.nq b/test/jsonld/1.1/html/r019-out.nq
new file mode 100644
index 00000000..478fe402
--- /dev/null
+++ b/test/jsonld/1.1/html/r019-out.nq
@@ -0,0 +1 @@
+<http://a.example.com/doc> <http://example.com/foo> "bar" .
diff --git a/test/jsonld/1.1/html/r020-in.html b/test/jsonld/1.1/html/r020-in.html
new file mode 100644
index 00000000..c7fdfb1b
--- /dev/null
+++ b/test/jsonld/1.1/html/r020-in.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ <base href="http://a.example.com/base" />
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo"}
+ },
+ "@id": "",
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r020-out.nq b/test/jsonld/1.1/html/r020-out.nq
new file mode 100644
index 00000000..70ac5819
--- /dev/null
+++ b/test/jsonld/1.1/html/r020-out.nq
@@ -0,0 +1 @@
+<http://a.example.com/base> <http://example.com/foo> "bar" .
diff --git a/test/jsonld/1.1/html/r021-in.html b/test/jsonld/1.1/html/r021-in.html
new file mode 100644
index 00000000..25b5e3cf
--- /dev/null
+++ b/test/jsonld/1.1/html/r021-in.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ <base href="base" />
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo"}
+ },
+ "@id": "",
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r021-out.nq b/test/jsonld/1.1/html/r021-out.nq
new file mode 100644
index 00000000..70ac5819
--- /dev/null
+++ b/test/jsonld/1.1/html/r021-out.nq
@@ -0,0 +1 @@
+<http://a.example.com/base> <http://example.com/foo> "bar" .
diff --git a/test/jsonld/1.1/html/r022-in.html b/test/jsonld/1.1/html/r022-in.html
new file mode 100644
index 00000000..0d18ab9d
--- /dev/null
+++ b/test/jsonld/1.1/html/r022-in.html
@@ -0,0 +1,20 @@
+<html>
+ <head>
+ <base href="http://a.example.com/base" />
+ <script id="first" type="application/ld+json">
+ {
+ "@context": {
+ "foo": {"@id": "http://example.com/foo"}
+ },
+ "foo": [{"@value": "bar"}]
+ }
+ </script>
+ <script id="second" type="application/ld+json">
+ {
+ "@context": {"ex": "http://example.com/"},
+ "@id": "",
+ "ex:bar": "foo"
+ }
+ </script>
+ </head>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/html/r022-out.nq b/test/jsonld/1.1/html/r022-out.nq
new file mode 100644
index 00000000..92a31b30
--- /dev/null
+++ b/test/jsonld/1.1/html/r022-out.nq
@@ -0,0 +1 @@
+<http://a.example.com/base> <http://example.com/bar> "foo" .
diff --git a/test/jsonld/1.1/manifest.jsonld b/test/jsonld/1.1/manifest.jsonld
new file mode 100644
index 00000000..077d004b
--- /dev/null
+++ b/test/jsonld/1.1/manifest.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": ["context.jsonld", {"@base": "manifest"}],
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "JSON-LD Test Suite",
+ "description": "This manifest loads additional manifests for specific behavior tests for [JSON-LD 1.1 API](https://www.w3.org/TR/json-ld11-api/)",
+ "sequence": [
+ "compact-manifest.jsonld",
+ "expand-manifest.jsonld",
+ "flatten-manifest.jsonld",
+ "fromRdf-manifest.jsonld",
+ "remote-doc-manifest.jsonld",
+ "toRdf-manifest.jsonld",
+ "html-manifest.jsonld"
+ ]
+}
diff --git a/test/jsonld/1.1/remote-doc-manifest.jsonld b/test/jsonld/1.1/remote-doc-manifest.jsonld
new file mode 100644
index 00000000..47bc3182
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc-manifest.jsonld
@@ -0,0 +1,191 @@
+{
+ "@context": ["context.jsonld", {"@base": "remote-doc-manifest"}],
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "Remote document",
+ "description": "These tests implement the requirements for JSON-LD [Remote Document and Context Retrieval](https://www.w3.org/TR/json-ld11-api/#remote-document-and-context-retrieval).",
+ "baseIri": "https://w3c.github.io/json-ld-api/tests/",
+ "sequence": [
+ {
+ "@id": "#t0001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "load JSON-LD document",
+ "purpose": "Document loader loads a JSON-LD document.",
+ "input": "remote-doc/0001-in.jsonld",
+ "expect": "remote-doc/0001-out.jsonld"
+ }, {
+ "@id": "#t0002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "load JSON document",
+ "purpose": "Document loader loads a JSON document.",
+ "input": "remote-doc/0002-in.json",
+ "expect": "remote-doc/0002-out.jsonld"
+ }, {
+ "@id": "#t0003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "load JSON document with extension-type",
+ "purpose": "Document loader loads a JSON document having an extension mime-subtype.",
+ "option": {
+ "contentType": "application/jldTest+json"
+ },
+ "input": "remote-doc/0003-in.jldt",
+ "expect": "remote-doc/0003-out.jsonld"
+ }, {
+ "@id": "#t0004",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "loading an unknown type raises loading document failed",
+ "purpose": "Loading a document with a non-JSON mime type raises loading document failed",
+ "option": {
+ "contentType": "application/jldTest"
+ },
+ "input": "remote-doc/0004-in.jldte",
+ "expectErrorCode": "loading document failed"
+ }, {
+ "@id": "#t0005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Load JSON-LD through 301 redirect",
+ "purpose": "Loading a document with a redirect should use the redirected URL as document base",
+ "option": {
+ "redirectTo": "remote-doc/0001-in.jsonld",
+ "httpStatus": 301
+ },
+ "input": "remote-doc/0005-in.jsonld",
+ "expect": "remote-doc/0001-out.jsonld"
+ }, {
+ "@id": "#t0006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Load JSON-LD through 303 redirect",
+ "purpose": "Loading a document with a redirect should use the redirected URL as document base",
+ "option": {
+ "redirectTo": "remote-doc/0001-in.jsonld",
+ "httpStatus": 303
+ },
+ "input": "remote-doc/0006-in.jsonld",
+ "expect": "remote-doc/0001-out.jsonld"
+ }, {
+ "@id": "#t0007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Load JSON-LD through 307 redirect",
+ "purpose": "Loading a document with a redirect should use the redirected URL as document base",
+ "option": {
+ "redirectTo": "remote-doc/0001-in.jsonld",
+ "httpStatus": 307
+ },
+ "input": "remote-doc/0007-in.jsonld",
+ "expect": "remote-doc/0001-out.jsonld"
+ }, {
+ "@id": "#t0008",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Non-existant file (404)",
+ "purpose": "Loading a non-existant file raises loading document failed error",
+ "input": "remote-doc/missing-in.jsonld",
+ "expectErrorCode": "loading document failed"
+ }, {
+ "@id": "#t0009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "load JSON-LD document with link",
+ "purpose": "If a context is specified in a link header, it is not used for JSON-LD.",
+ "option": {
+ "httpLink": "<0009-context.jsonld>; rel=\"http://www.w3.org/ns/json-ld#context\""
+ },
+ "input": "remote-doc/0009-in.jsonld",
+ "expect": "remote-doc/0009-out.jsonld"
+ }, {
+ "@id": "#t0010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "load JSON document with link",
+ "purpose": "If a context is specified in a link header, it is used for JSON.",
+ "option": {
+ "httpLink": "<0010-context.jsonld>; rel=\"http://www.w3.org/ns/json-ld#context\""
+ },
+ "input": "remote-doc/0010-in.json",
+ "expect": "remote-doc/0010-out.jsonld"
+ }, {
+ "@id": "#t0011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "load JSON document with extension-type with link",
+ "purpose": "If a context is specified in a link header, it is used for a JSON extension type.",
+ "input": "remote-doc/0011-in.jldt",
+ "option": {
+ "contentType": "application/jldTest+json",
+ "httpLink": "<0011-context.jsonld>; rel=\"http://www.w3.org/ns/json-ld#context\""
+ },
+ "expect": "remote-doc/0011-out.jsonld"
+ }, {
+ "@id": "#t0012",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ExpandTest"],
+ "name": "Multiple context link headers",
+ "purpose": "Loading a file when multiple link headers are returned is an error",
+ "option": {
+ "httpLink": [
+ "<0012-context1.jsonld>; rel=\"http://www.w3.org/ns/json-ld#context\"",
+ "<0012-context2.jsonld>; rel=\"http://www.w3.org/ns/json-ld#context\""
+ ]
+ },
+ "input": "remote-doc/0012-in.json",
+ "expectErrorCode": "multiple context link headers"
+ }, {
+ "@id": "#t0013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "load JSON document with link to HTML document",
+ "purpose": "If a context is specified in a link header, it is used for JSON, extracting from HTML.",
+ "option": {
+ "httpLink": "<0013-context.html>; rel=\"http://www.w3.org/ns/json-ld#context\""
+ },
+ "input": "remote-doc/0013-in.json",
+ "expect": "remote-doc/0013-out.jsonld"
+ }, {
+ "@id": "#tla01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Redirects if type is text/html",
+ "purpose": "Load an alternate link if type is not ld+json and rel=alternate.",
+ "option": {
+ "httpLink": "<la01-alternate.jsonld>; rel=\"alternate\"; type=\"application/ld+json\""
+ },
+ "input": "remote-doc/la01-in.html",
+ "expect": "remote-doc/la01-out.jsonld"
+ }, {
+ "@id": "#tla02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Does not redirect if type is application/ld+json",
+ "purpose": "Load an alternate link if type is not ld+json and rel=alternate.",
+ "option": {
+ "httpLink": "<la02-alternate.jsonld>; rel=\"alternate\"; type=\"application/ld+json\"",
+ "processorFeature": "HTML Script Extraction"
+ },
+ "input": "remote-doc/la02-in.jsonld",
+ "expect": "remote-doc/la02-out.jsonld"
+ }, {
+ "@id": "#tla03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Does not redirect if link type is not application/ld+json",
+ "purpose": "Load an alternate link if type is not ld+json and rel=alternate.",
+ "option": {
+ "httpLink": "<la03-alternate.json>; rel=\"alternate\"; type=\"application/json\""
+ },
+ "input": "remote-doc/la03-in.json",
+ "expect": "remote-doc/la03-out.jsonld"
+ }, {
+ "@id": "#tla04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Does not redirect if type is application/json",
+ "purpose": "Load an alternate link if type is not ld+json and rel=alternate.",
+ "option": {
+ "httpLink": "<la04-alternate.jsonld>; rel=\"alternate\"; type=\"application/ld+json\""
+ },
+ "input": "remote-doc/la04-in.json",
+ "expect": "remote-doc/la04-out.jsonld"
+ }, {
+ "@id": "#tla05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ExpandTest"],
+ "name": "Base is that of the alternate URL",
+ "purpose": "Load an alternate link if type is not ld+json and rel=alternate.",
+ "option": {
+ "httpLink": "<la05-alternate.jsonld>; rel=\"alternate\"; type=\"application/ld+json\"",
+ "processorFeature": "HTML Script Extraction"
+ },
+ "input": "remote-doc/la05-in.html",
+ "expect": "remote-doc/la05-out.jsonld"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/remote-doc/.htaccess b/test/jsonld/1.1/remote-doc/.htaccess
new file mode 100644
index 00000000..b40307dd
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/.htaccess
@@ -0,0 +1,35 @@
+# Special rules for document loader tests
+# Rewrite engine setup
+RewriteEngine On
+RewriteBase /tests
+
+# Add directive for test types
+AddType application/jldTest+json .jldt
+AddType application/jldTest .jldte
+
+# Tests 0005-0007, status redirect to 0001
+RewriteRule ^0005-in.jsonld$ 0001-in.jsonld [R=301]
+RewriteRule ^0006-in.jsonld$ 0001-in.jsonld [R=303]
+RewriteRule ^0007-in.jsonld$ 0001-in.jsonld [R=307]
+
+# Tests 0009-0011 Add link header
+<FilesMatch "0009-in.jsonld">
+ Header set Link '<0009-context.jsonld>; rel="http://www.w3.org/ns/json-ld#context"'
+</FilesMatch>
+<FilesMatch "0010-in.json">
+ Header set Link '<0010-context.jsonld>; rel="http://www.w3.org/ns/json-ld#context"'
+</FilesMatch>
+<FilesMatch "0011-in.jldt">
+ Header set Link '<0011-context.jsonld>; rel="http://www.w3.org/ns/json-ld#context"'
+</FilesMatch>
+
+# Test 0012 adds multiple link headers
+<FilesMatch "0012-in.json">
+ Header set Link '<0012-context1.jsonld>; rel="http://www.w3.org/ns/json-ld#context"'
+ Header append Link '<0012-context2.jsonld>; rel="http://www.w3.org/ns/json-ld#context"'
+</FilesMatch>
+
+# Test 0013 link header to HTML document
+<FilesMatch "0013-in.json">
+ Header set Link '<0013-context.html>; rel="http://www.w3.org/ns/json-ld#context"'
+</FilesMatch>
diff --git a/test/jsonld/1.1/remote-doc/0001-in.jsonld b/test/jsonld/1.1/remote-doc/0001-in.jsonld
new file mode 100644
index 00000000..681f6787
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0001-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/vocab#"
+ },
+ "@id": "",
+ "term": "object"
+}
diff --git a/test/jsonld/1.1/remote-doc/0001-out.jsonld b/test/jsonld/1.1/remote-doc/0001-out.jsonld
new file mode 100644
index 00000000..52a3ce1e
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0001-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/remote-doc/0001-in.jsonld",
+ "http://example/vocab#term": [{"@value": "object"}]
+}]
diff --git a/test/jsonld/1.1/remote-doc/0002-in.json b/test/jsonld/1.1/remote-doc/0002-in.json
new file mode 100644
index 00000000..681f6787
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0002-in.json
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/vocab#"
+ },
+ "@id": "",
+ "term": "object"
+}
diff --git a/test/jsonld/1.1/remote-doc/0002-out.jsonld b/test/jsonld/1.1/remote-doc/0002-out.jsonld
new file mode 100644
index 00000000..9f5d89dc
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0002-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/remote-doc/0002-in.json",
+ "http://example/vocab#term": [{"@value": "object"}]
+}]
diff --git a/test/jsonld/1.1/remote-doc/0003-in.jldt b/test/jsonld/1.1/remote-doc/0003-in.jldt
new file mode 100644
index 00000000..681f6787
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0003-in.jldt
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/vocab#"
+ },
+ "@id": "",
+ "term": "object"
+}
diff --git a/test/jsonld/1.1/remote-doc/0003-out.jsonld b/test/jsonld/1.1/remote-doc/0003-out.jsonld
new file mode 100644
index 00000000..050a79c5
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0003-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/remote-doc/0003-in.jldt",
+ "http://example/vocab#term": [{"@value": "object"}]
+}]
diff --git a/test/jsonld/1.1/remote-doc/0004-in.jldte b/test/jsonld/1.1/remote-doc/0004-in.jldte
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0004-in.jldte
diff --git a/test/jsonld/1.1/remote-doc/0009-context.jsonld b/test/jsonld/1.1/remote-doc/0009-context.jsonld
new file mode 100644
index 00000000..c76725ed
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0009-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@vocab": "http://example/vocab#"
+ }
+}
diff --git a/test/jsonld/1.1/remote-doc/0009-in.jsonld b/test/jsonld/1.1/remote-doc/0009-in.jsonld
new file mode 100644
index 00000000..71663163
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0009-in.jsonld
@@ -0,0 +1,5 @@
+[{
+ "@id": "",
+ "http://example/0009/term": "value1",
+ "term": "value2"
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/0009-out.jsonld b/test/jsonld/1.1/remote-doc/0009-out.jsonld
new file mode 100644
index 00000000..7987a952
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0009-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/remote-doc/0009-in.jsonld",
+ "http://example/0009/term": [{"@value": "value1"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/0010-context.jsonld b/test/jsonld/1.1/remote-doc/0010-context.jsonld
new file mode 100644
index 00000000..c76725ed
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0010-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@vocab": "http://example/vocab#"
+ }
+}
diff --git a/test/jsonld/1.1/remote-doc/0010-in.json b/test/jsonld/1.1/remote-doc/0010-in.json
new file mode 100644
index 00000000..d76b9971
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0010-in.json
@@ -0,0 +1,4 @@
+[{
+ "@id": "",
+ "term": "value"
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/0010-out.jsonld b/test/jsonld/1.1/remote-doc/0010-out.jsonld
new file mode 100644
index 00000000..235a0b1e
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0010-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/remote-doc/0010-in.json",
+ "http://example/vocab#term": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/remote-doc/0011-context.jsonld b/test/jsonld/1.1/remote-doc/0011-context.jsonld
new file mode 100644
index 00000000..c76725ed
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0011-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@vocab": "http://example/vocab#"
+ }
+}
diff --git a/test/jsonld/1.1/remote-doc/0011-in.jldt b/test/jsonld/1.1/remote-doc/0011-in.jldt
new file mode 100644
index 00000000..d76b9971
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0011-in.jldt
@@ -0,0 +1,4 @@
+[{
+ "@id": "",
+ "term": "value"
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/0011-out.jsonld b/test/jsonld/1.1/remote-doc/0011-out.jsonld
new file mode 100644
index 00000000..53e1e18c
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0011-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/remote-doc/0011-in.jldt",
+ "http://example/vocab#term": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/remote-doc/0012-context1.jsonld b/test/jsonld/1.1/remote-doc/0012-context1.jsonld
new file mode 100644
index 00000000..c76725ed
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0012-context1.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@vocab": "http://example/vocab#"
+ }
+}
diff --git a/test/jsonld/1.1/remote-doc/0012-context2.jsonld b/test/jsonld/1.1/remote-doc/0012-context2.jsonld
new file mode 100644
index 00000000..c76725ed
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0012-context2.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@vocab": "http://example/vocab#"
+ }
+}
diff --git a/test/jsonld/1.1/remote-doc/0012-in.json b/test/jsonld/1.1/remote-doc/0012-in.json
new file mode 100644
index 00000000..d76b9971
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0012-in.json
@@ -0,0 +1,4 @@
+[{
+ "@id": "",
+ "term": "value"
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/0013-context.html b/test/jsonld/1.1/remote-doc/0013-context.html
new file mode 100644
index 00000000..3cedcd7e
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0013-context.html
@@ -0,0 +1,11 @@
+<html>
+ <head>
+ <script type="application/ld+json;profile=http://www.w3.org/ns/json-ld#context">
+ {
+ "@context": {
+ "@vocab": "http://example/vocab#"
+ }
+ }
+ </script>
+ </head>
+</html>
diff --git a/test/jsonld/1.1/remote-doc/0013-in.json b/test/jsonld/1.1/remote-doc/0013-in.json
new file mode 100644
index 00000000..d76b9971
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0013-in.json
@@ -0,0 +1,4 @@
+[{
+ "@id": "",
+ "term": "value"
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/0013-out.jsonld b/test/jsonld/1.1/remote-doc/0013-out.jsonld
new file mode 100644
index 00000000..853d335e
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/0013-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/remote-doc/0013-in.json",
+ "http://example/vocab#term": [{"@value": "value"}]
+}]
diff --git a/test/jsonld/1.1/remote-doc/la01-alternate.jsonld b/test/jsonld/1.1/remote-doc/la01-alternate.jsonld
new file mode 100644
index 00000000..672295e9
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la01-alternate.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "content": "alternate"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la01-in.html b/test/jsonld/1.1/remote-doc/la01-in.html
new file mode 100644
index 00000000..228b26c1
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la01-in.html
@@ -0,0 +1,16 @@
+<html>
+ <head>
+ <title>Content to be skipped</title>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "content": "skipped"
+ }
+ </script>
+ </head>
+ <body>
+ <p>This content should be skipped</p>
+ </body>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la01-out.jsonld b/test/jsonld/1.1/remote-doc/la01-out.jsonld
new file mode 100644
index 00000000..a5d1e558
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la01-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/content": [{"@value": "alternate"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la02-alternate.jsonld b/test/jsonld/1.1/remote-doc/la02-alternate.jsonld
new file mode 100644
index 00000000..672295e9
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la02-alternate.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "content": "alternate"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la02-in.jsonld b/test/jsonld/1.1/remote-doc/la02-in.jsonld
new file mode 100644
index 00000000..05fcb19a
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la02-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "content": "not skipped"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la02-out.jsonld b/test/jsonld/1.1/remote-doc/la02-out.jsonld
new file mode 100644
index 00000000..e2c788c0
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la02-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/content": [{"@value": "not skipped"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la03-alternate.json b/test/jsonld/1.1/remote-doc/la03-alternate.json
new file mode 100644
index 00000000..672295e9
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la03-alternate.json
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "content": "alternate"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la03-in.json b/test/jsonld/1.1/remote-doc/la03-in.json
new file mode 100644
index 00000000..05fcb19a
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la03-in.json
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "content": "not skipped"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la03-out.jsonld b/test/jsonld/1.1/remote-doc/la03-out.jsonld
new file mode 100644
index 00000000..e2c788c0
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la03-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/content": [{"@value": "not skipped"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la04-alternate.jsonld b/test/jsonld/1.1/remote-doc/la04-alternate.jsonld
new file mode 100644
index 00000000..672295e9
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la04-alternate.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "content": "alternate"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la04-in.json b/test/jsonld/1.1/remote-doc/la04-in.json
new file mode 100644
index 00000000..05fcb19a
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la04-in.json
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "content": "not skipped"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la04-out.jsonld b/test/jsonld/1.1/remote-doc/la04-out.jsonld
new file mode 100644
index 00000000..e2c788c0
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la04-out.jsonld
@@ -0,0 +1,3 @@
+[{
+ "http://example.org/content": [{"@value": "not skipped"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la05-alternate.jsonld b/test/jsonld/1.1/remote-doc/la05-alternate.jsonld
new file mode 100644
index 00000000..8039161a
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la05-alternate.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "@id": "",
+ "content": "alternate"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la05-in.html b/test/jsonld/1.1/remote-doc/la05-in.html
new file mode 100644
index 00000000..4fb2995e
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la05-in.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ <title>Content to be skipped</title>
+ <script type="application/ld+json">
+ {
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "@id": "",
+ "content": "skipped"
+ }
+ </script>
+ </head>
+ <body>
+ <p>This content should be skipped</p>
+ </body>
+</html> \ No newline at end of file
diff --git a/test/jsonld/1.1/remote-doc/la05-out.jsonld b/test/jsonld/1.1/remote-doc/la05-out.jsonld
new file mode 100644
index 00000000..15871d59
--- /dev/null
+++ b/test/jsonld/1.1/remote-doc/la05-out.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@id": "https://w3c.github.io/json-ld-api/tests/remote-doc/la05-alternate.jsonld",
+ "http://example.org/content": [{"@value": "alternate"}]
+}] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf-manifest.jsonld b/test/jsonld/1.1/toRdf-manifest.jsonld
new file mode 100644
index 00000000..e13eab49
--- /dev/null
+++ b/test/jsonld/1.1/toRdf-manifest.jsonld
@@ -0,0 +1,3530 @@
+{
+ "@context": ["context.jsonld", {"@base": "toRdf-manifest"}],
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "Transform JSON-LD to RDF",
+ "description": "These tests implement the requirements for the JSON-LD [Deserialize JSON-LD to RDF Algorithm](https://www.w3.org/TR/json-ld11-api/#deserialize-json-ld-to-rdf-algorithm).",
+ "baseIri": "https://w3c.github.io/json-ld-api/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": "#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": {
+ "specVersion": "json-ld-1.0",
+ "produceGeneralizedRdf": true
+ },
+ "requires": "GeneralizedRdf",
+ "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"
+ }, {
+ "@id": "#t0130",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (10)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf/0130-in.jsonld",
+ "expect": "toRdf/0130-out.nq"
+ }, {
+ "@id": "#t0131",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (11)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf/0131-in.jsonld",
+ "expect": "toRdf/0131-out.nq"
+ }, {
+ "@id": "#t0132",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI Resolution (12)",
+ "purpose": "IRI resolution according to RFC3986.",
+ "input": "toRdf/0132-in.jsonld",
+ "expect": "toRdf/0132-out.nq"
+ }, {
+ "@id": "#tc001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "adding new term",
+ "purpose": "Expansion using a scoped context uses term scope for selecting proper term",
+ "input": "toRdf/c001-in.jsonld",
+ "expect": "toRdf/c001-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "overriding a term",
+ "purpose": "Expansion using a scoped context uses term scope for selecting proper term",
+ "input": "toRdf/c002-in.jsonld",
+ "expect": "toRdf/c002-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "property and value with different terms mapping to the same expanded property",
+ "purpose": "Expansion using a scoped context uses term scope for selecting proper term",
+ "input": "toRdf/c003-in.jsonld",
+ "expect": "toRdf/c003-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "deep @context affects nested nodes",
+ "purpose": "Expansion using a scoped context uses term scope for selecting proper term",
+ "input": "toRdf/c004-in.jsonld",
+ "expect": "toRdf/c004-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "scoped context layers on intemediate contexts",
+ "purpose": "Expansion using a scoped context uses term scope for selecting proper term",
+ "input": "toRdf/c005-in.jsonld",
+ "expect": "toRdf/c005-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "adding new term",
+ "purpose": "scoped context on @type",
+ "input": "toRdf/c006-in.jsonld",
+ "expect": "toRdf/c006-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "overriding a term",
+ "purpose": "scoped context on @type",
+ "input": "toRdf/c007-in.jsonld",
+ "expect": "toRdf/c007-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "alias of @type",
+ "purpose": "scoped context on @type",
+ "input": "toRdf/c008-in.jsonld",
+ "expect": "toRdf/c008-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "deep @type-scoped @context does NOT affect nested nodes",
+ "purpose": "scoped context on @type",
+ "input": "toRdf/c009-in.jsonld",
+ "expect": "toRdf/c009-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "scoped context layers on intemediate contexts",
+ "purpose": "scoped context on @type",
+ "input": "toRdf/c010-in.jsonld",
+ "expect": "toRdf/c010-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "orders @type terms when applying scoped contexts",
+ "purpose": "scoped context on @type",
+ "input": "toRdf/c011-in.jsonld",
+ "expect": "toRdf/c011-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "deep property-term scoped @context in @type-scoped @context affects nested nodes",
+ "purpose": "scoped context on @type",
+ "input": "toRdf/c012-in.jsonld",
+ "expect": "toRdf/c012-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type maps use scoped context from type index and not scoped context from containing",
+ "purpose": "scoped context on @type",
+ "input": "toRdf/c013-in.jsonld",
+ "expect": "toRdf/c013-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-scoped context nullification",
+ "purpose": "type-scoped context nullification",
+ "input": "toRdf/c014-in.jsonld",
+ "expect": "toRdf/c014-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-scoped base",
+ "purpose": "type-scoped base",
+ "input": "toRdf/c015-in.jsonld",
+ "expect": "toRdf/c015-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-scoped vocab",
+ "purpose": "type-scoped vocab",
+ "input": "toRdf/c016-in.jsonld",
+ "expect": "toRdf/c016-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "multiple type-scoped contexts are properly reverted",
+ "purpose": "multiple type-scoped contexts are property reverted",
+ "input": "toRdf/c017-in.jsonld",
+ "expect": "toRdf/c017-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "multiple type-scoped types resolved against previous context",
+ "purpose": "multiple type-scoped types resolved against previous context",
+ "input": "toRdf/c018-in.jsonld",
+ "expect": "toRdf/c018-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-scoped context with multiple property scoped terms",
+ "purpose": "type-scoped context with multiple property scoped terms",
+ "input": "toRdf/c019-in.jsonld",
+ "expect": "toRdf/c019-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc020",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-scoped value",
+ "purpose": "type-scoped value",
+ "input": "toRdf/c020-in.jsonld",
+ "expect": "toRdf/c020-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc021",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-scoped value mix",
+ "purpose": "type-scoped value mix",
+ "input": "toRdf/c021-in.jsonld",
+ "expect": "toRdf/c021-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-scoped property-scoped contexts including @type:@vocab",
+ "purpose": "type-scoped property-scoped contexts including @type:@vocab",
+ "input": "toRdf/c022-in.jsonld",
+ "expect": "toRdf/c022-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc023",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "composed type-scoped property-scoped contexts including @type:@vocab",
+ "purpose": "composed type-scoped property-scoped contexts including @type:@vocab",
+ "input": "toRdf/c023-in.jsonld",
+ "expect": "toRdf/c023-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc024",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-scoped + property-scoped + values evaluates against previous context",
+ "purpose": "type-scoped + property-scoped + values evaluates against previous context",
+ "input": "toRdf/c024-in.jsonld",
+ "expect": "toRdf/c024-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc025",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-scoped + graph container",
+ "purpose": "type-scoped + graph container",
+ "input": "toRdf/c025-in.jsonld",
+ "expect": "toRdf/c025-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc026",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@propagate: true on type-scoped context",
+ "purpose": "type-scoped context with @propagate: true survive node-objects",
+ "input": "toRdf/c026-in.jsonld",
+ "expect": "toRdf/c026-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc027",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@propagate: false on property-scoped context",
+ "purpose": "property-scoped context with @propagate: false do not survive node-objects",
+ "input": "toRdf/c027-in.jsonld",
+ "expect": "toRdf/c027-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc028",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@propagate: false on embedded context",
+ "purpose": "embedded context with @propagate: false do not survive node-objects",
+ "input": "toRdf/c028-in.jsonld",
+ "expect": "toRdf/c028-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc029",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "@propagate is invalid in 1.0",
+ "purpose": "@propagate is invalid in 1.0",
+ "input": "toRdf/c029-in.jsonld",
+ "expectErrorCode": "invalid context entry",
+ "option": {"specVersion": "json-ld-1.1", "processingMode": "json-ld-1.0"}
+ }, {
+ "@id": "#tc030",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "@propagate must be boolean valued",
+ "purpose": "@propagate must be boolean valued",
+ "input": "toRdf/c030-in.jsonld",
+ "expectErrorCode": "invalid @propagate value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc031",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@context resolutions respects relative URLs.",
+ "purpose": "URL resolution follows RFC3986",
+ "input": "toRdf/c031-in.jsonld",
+ "expect": "toRdf/c031-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc032",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Unused embedded context with error.",
+ "purpose": "An embedded context which is never used should still be checked.",
+ "input": "toRdf/c032-in.jsonld",
+ "expectErrorCode": "invalid scoped context",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc033",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Unused context with an embedded context error.",
+ "purpose": "An unused context with an embedded context should still be checked.",
+ "input": "toRdf/c033-in.jsonld",
+ "expectErrorCode": "invalid scoped context",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc034",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Remote scoped context.",
+ "purpose": "Scoped contexts may be externally loaded.",
+ "input": "toRdf/c034-in.jsonld",
+ "expect": "toRdf/c034-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc035",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Term scoping with embedded contexts.",
+ "purpose": "Terms should make use of @vocab relative to the scope in which the term was defined.",
+ "input": "toRdf/c035-in.jsonld",
+ "expect": "toRdf/c035-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc036",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expansion with empty property-scoped context.",
+ "purpose": "Adding a minimal/empty property-scoped context should not affect expansion of terms defined in the outer scope.",
+ "input": "toRdf/c036-in.jsonld",
+ "expect": "toRdf/c036-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc037",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "property-scoped contexts which are alias of @nest",
+ "purpose": "Nesting terms may have property-scoped contexts defined.",
+ "input": "toRdf/c037-in.jsonld",
+ "expect": "toRdf/c037-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tc038",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Bibframe example (poor-mans inferrence)",
+ "purpose": "Nesting terms may have property-scoped contexts defined.",
+ "input": "toRdf/c038-in.jsonld",
+ "expect": "toRdf/c038-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tdi01",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Expand string using default and term directions",
+ "purpose": "Strings are coerced to have @direction based on default and term direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/di01-in.jsonld",
+ "expect": "toRdf/di01-out.nq"
+ }, {
+ "@id": "#tdi02",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Expand string using default and term directions and languages",
+ "purpose": "Strings are coerced to have @direction based on default and term direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/di02-in.jsonld",
+ "expect": "toRdf/di02-out.nq"
+ }, {
+ "@id": "#tdi03",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "expand list values with @direction",
+ "purpose": "List values where the term has @direction are used in expansion.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/di03-in.jsonld",
+ "expect": "toRdf/di03-out.nq"
+ }, {
+ "@id": "#tdi04",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "simple language map with term direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/di04-in.jsonld",
+ "expect": "toRdf/di04-out.nq"
+ }, {
+ "@id": "#tdi05",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "simple language mapwith overriding term direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/di05-in.jsonld",
+ "expect": "toRdf/di05-out.nq"
+ }, {
+ "@id": "#tdi06",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "simple language mapwith overriding null direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/di06-in.jsonld",
+ "expect": "toRdf/di06-out.nq"
+ }, {
+ "@id": "#tdi07",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "simple language map with mismatching term direction",
+ "purpose": "Term selection with language maps and @direction.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/di07-in.jsonld",
+ "expect": "toRdf/di07-out.nq"
+ }, {
+ "@id": "#tdi08",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "@direction must be one of ltr or rtl",
+ "purpose": "Generate an error if @direction has illegal value.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/di08-in.jsonld",
+ "expectErrorCode": "invalid base direction"
+ }, {
+ "@id": "#tdi09",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "rdfDirection: i18n-datatype with direction and no language",
+ "purpose": "Generates i18n datatype from literal with direction with option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "i18n-datatype", "normative": false},
+ "requires": "I18nDatatype",
+ "input": "toRdf/di09-in.jsonld",
+ "expect": "toRdf/di09-out.nq"
+ }, {
+ "@id": "#tdi10",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "rdfDirection: i18n-datatype with direction and language",
+ "purpose": "Generates i18n datatype from literal with direction with option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "i18n-datatype", "normative": false},
+ "requires": "I18nDatatype",
+ "input": "toRdf/di10-in.jsonld",
+ "expect": "toRdf/di10-out.nq"
+ }, {
+ "@id": "#tdi11",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "rdfDirection: compound-literal with direction and no language",
+ "purpose": "Generates i18n datatype from literal with direction with option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "compound-literal", "normative": false},
+ "requires": "CompoundLiteral",
+ "input": "toRdf/di11-in.jsonld",
+ "expect": "toRdf/di11-out.nq"
+ }, {
+ "@id": "#tdi12",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "rdfDirection: compound-literal with direction and language",
+ "purpose": "Generates compound literal from literal with direction with option.",
+ "option": {"specVersion": "json-ld-1.1", "rdfDirection": "compound-literal", "normative": false},
+ "requires": "CompoundLiteral",
+ "input": "toRdf/di12-in.jsonld",
+ "expect": "toRdf/di12-out.nq"
+ }, {
+ "@id": "#te001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "drop free-floating nodes",
+ "purpose": "Free-floating nodes do not generate RDF triples (from expand-0001)",
+ "input": "toRdf/e001-in.jsonld",
+ "expect": "toRdf/e001-out.nq"
+ }, {
+ "@id": "#te002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "basic",
+ "purpose": "Basic RDF conversion (from expand-0002)",
+ "input": "toRdf/e002-in.jsonld",
+ "expect": "toRdf/e002-out.nq"
+ }, {
+ "@id": "#te003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "drop null and unmapped properties",
+ "purpose": "Properties mapped to null or which are never mapped are dropped (from expand-0003)",
+ "input": "toRdf/e003-in.jsonld",
+ "expect": "toRdf/e003-out.nq"
+ }, {
+ "@id": "#te004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "optimize @set, keep empty arrays",
+ "purpose": "RDF version of expand-0004",
+ "input": "toRdf/e004-in.jsonld",
+ "expect": "toRdf/e004-out.nq"
+ }, {
+ "@id": "#te005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "do not expand aliased @id/@type",
+ "purpose": "RDF version of expand-0005",
+ "input": "toRdf/e005-in.jsonld",
+ "expect": "toRdf/e005-out.nq"
+ }, {
+ "@id": "#te006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "alias keywords",
+ "purpose": "RDF version of expand-0006",
+ "input": "toRdf/e006-in.jsonld",
+ "expect": "toRdf/e006-out.nq"
+ }, {
+ "@id": "#te007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "date type-coercion",
+ "purpose": "Type-coerced dates generate typed literals (from expand-0007)",
+ "input": "toRdf/e007-in.jsonld",
+ "expect": "toRdf/e007-out.nq"
+ }, {
+ "@id": "#te008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@value with @language",
+ "purpose": "RDF version of expand-0008",
+ "input": "toRdf/e008-in.jsonld",
+ "expect": "toRdf/e008-out.nq"
+ }, {
+ "@id": "#te009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@graph with terms",
+ "purpose": "RDF version of expand-0009",
+ "input": "toRdf/e009-in.jsonld",
+ "expect": "toRdf/e009-out.nq"
+ }, {
+ "@id": "#te010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "native types",
+ "purpose": "Native types generate typed literals (from expand-0010)",
+ "input": "toRdf/e010-in.jsonld",
+ "expect": "toRdf/e010-out.nq"
+ }, {
+ "@id": "#te011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "coerced @id",
+ "purpose": "RDF version of expand-0011",
+ "input": "toRdf/e011-in.jsonld",
+ "expect": "toRdf/e011-out.nq"
+ }, {
+ "@id": "#te012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@graph with embed",
+ "purpose": "RDF version of expand-0012",
+ "input": "toRdf/e012-in.jsonld",
+ "expect": "toRdf/e012-out.nq"
+ }, {
+ "@id": "#te013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand already expanded",
+ "purpose": "RDF version of expand-0013",
+ "input": "toRdf/e013-in.jsonld",
+ "expect": "toRdf/e013-out.nq"
+ }, {
+ "@id": "#te014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@set of @value objects with keyword aliases",
+ "purpose": "RDF version of expand-0014",
+ "input": "toRdf/e014-in.jsonld",
+ "expect": "toRdf/e014-out.nq",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#te015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "collapse set of sets, keep empty lists",
+ "purpose": "RDF version of expand-0015",
+ "input": "toRdf/e015-in.jsonld",
+ "expect": "toRdf/e015-out.nq"
+ }, {
+ "@id": "#te016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "context reset",
+ "purpose": "RDF version of expand-0016",
+ "input": "toRdf/e016-in.jsonld",
+ "expect": "toRdf/e016-out.nq"
+ }, {
+ "@id": "#te017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@graph and @id aliased",
+ "purpose": "RDF version of expand-0017",
+ "input": "toRdf/e017-in.jsonld",
+ "expect": "toRdf/e017-out.nq"
+ }, {
+ "@id": "#te018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "override default @language",
+ "purpose": "RDF version of expand-0018",
+ "input": "toRdf/e018-in.jsonld",
+ "expect": "toRdf/e018-out.nq"
+ }, {
+ "@id": "#te019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "remove @value = null",
+ "purpose": "RDF version of expand-0019",
+ "input": "toRdf/e019-in.jsonld",
+ "expect": "toRdf/e019-out.nq"
+ }, {
+ "@id": "#te020",
+ "@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 (from expand-0020)",
+ "input": "toRdf/e020-in.jsonld",
+ "expect": "toRdf/e020-out.nq"
+ }, {
+ "@id": "#te021",
+ "@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/e021-in.jsonld",
+ "expect": "toRdf/e021-out.nq"
+ }, {
+ "@id": "#te022",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand value with default language",
+ "purpose": "RDF version of expand-0022",
+ "input": "toRdf/e022-in.jsonld",
+ "expect": "toRdf/e022-out.nq"
+ }, {
+ "@id": "#te023",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Lists and sets of properties with list/set coercion",
+ "purpose": "RDF version of expand-0023",
+ "input": "toRdf/e023-in.jsonld",
+ "expect": "toRdf/e023-out.nq"
+ }, {
+ "@id": "#te024",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Multiple contexts",
+ "purpose": "RDF version of expand-0024",
+ "input": "toRdf/e024-in.jsonld",
+ "expect": "toRdf/e024-out.nq"
+ }, {
+ "@id": "#te025",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Problematic IRI expansion tests",
+ "purpose": "RDF version of expand-0025",
+ "input": "toRdf/e025-in.jsonld",
+ "expect": "toRdf/e025-out.nq"
+ }, {
+ "@id": "#te026",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expanding term mapping to @type uses @type syntax",
+ "purpose": "RDF version of expand-0026",
+ "input": "toRdf/e026-in.jsonld",
+ "expect": "toRdf/e026-out.nq",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#te027",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Keep duplicate values in @list and @set",
+ "purpose": "RDF version of expand-0027",
+ "input": "toRdf/e027-in.jsonld",
+ "expect": "toRdf/e027-out.nq"
+ }, {
+ "@id": "#te028",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Use @vocab in properties and @type but not in @id",
+ "purpose": "RDF version of expand-0028",
+ "input": "toRdf/e028-in.jsonld",
+ "expect": "toRdf/e028-out.nq"
+ }, {
+ "@id": "#te029",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Relative IRIs",
+ "purpose": "RDF version of expand-0029",
+ "input": "toRdf/e029-in.jsonld",
+ "expect": "toRdf/e029-out.nq"
+ }, {
+ "@id": "#te030",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Language maps",
+ "purpose": "RDF version of expand-0030",
+ "input": "toRdf/e030-in.jsonld",
+ "expect": "toRdf/e030-out.nq"
+ }, {
+ "@id": "#te031",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type-coercion of native types",
+ "purpose": "RDF version of expand-0031",
+ "input": "toRdf/e031-in.jsonld",
+ "expect": "toRdf/e031-out.nq"
+ }, {
+ "@id": "#te032",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Mapping a term to null decouples it from @vocab",
+ "purpose": "RDF version of expand-0032",
+ "input": "toRdf/e032-in.jsonld",
+ "expect": "toRdf/e032-out.nq"
+ }, {
+ "@id": "#te033",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Using @vocab with with type-coercion",
+ "purpose": "RDF version of expand-0033",
+ "input": "toRdf/e033-in.jsonld",
+ "expect": "toRdf/e033-out.nq"
+ }, {
+ "@id": "#te034",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Multiple properties expanding to the same IRI",
+ "purpose": "RDF version of expand-0034",
+ "input": "toRdf/e034-in.jsonld",
+ "expect": "toRdf/e034-out.nq"
+ }, {
+ "@id": "#te035",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Language maps with @vocab, default language, and colliding property",
+ "purpose": "RDF version of expand-0035",
+ "input": "toRdf/e035-in.jsonld",
+ "expect": "toRdf/e035-out.nq"
+ }, {
+ "@id": "#te036",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expanding @index",
+ "purpose": "RDF version of expand-0036",
+ "input": "toRdf/e036-in.jsonld",
+ "expect": "toRdf/e036-out.nq"
+ }, {
+ "@id": "#te037",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expanding @reverse",
+ "purpose": "RDF version of expand-0037",
+ "input": "toRdf/e037-in.jsonld",
+ "expect": "toRdf/e037-out.nq"
+ }, {
+ "@id": "#te038",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Drop blank node predicates by default",
+ "purpose": "Triples with blank node predicates are dropped by default (from expand-0038).",
+ "option": {"specVersion": "json-ld-1.0"},
+ "input": "toRdf/e038-in.jsonld",
+ "expect": "toRdf/e038-out.nq"
+ }, {
+ "@id": "#te039",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Using terms in a reverse-maps",
+ "purpose": "RDF version of expand-0039",
+ "input": "toRdf/e039-in.jsonld",
+ "expect": "toRdf/e039-out.nq"
+ }, {
+ "@id": "#te040",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "language and index expansion on non-objects",
+ "purpose": "RDF version of expand-0040",
+ "input": "toRdf/e040-in.jsonld",
+ "expect": "toRdf/e040-out.nq"
+ }, {
+ "@id": "#te041",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Reset the default language",
+ "purpose": "RDF version of expand-0041",
+ "input": "toRdf/e041-in.jsonld",
+ "expect": "toRdf/e041-out.nq"
+ }, {
+ "@id": "#te042",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expanding reverse properties",
+ "purpose": "RDF version of expand-0042",
+ "input": "toRdf/e042-in.jsonld",
+ "expect": "toRdf/e042-out.nq"
+ }, {
+ "@id": "#te043",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Using reverse properties inside a @reverse-container",
+ "purpose": "RDF version of expand-0043",
+ "input": "toRdf/e043-in.jsonld",
+ "expect": "toRdf/e043-out.nq"
+ }, {
+ "@id": "#te044",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ensure index maps use language mapping",
+ "purpose": "RDF version of expand-0044",
+ "input": "toRdf/e044-in.jsonld",
+ "expect": "toRdf/e044-out.nq"
+ }, {
+ "@id": "#te045",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Top-level value objects are removed",
+ "purpose": "RDF version of expand-0045",
+ "input": "toRdf/e045-in.jsonld",
+ "expect": "toRdf/e045-out.nq"
+ }, {
+ "@id": "#te046",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Free-floating nodes are removed",
+ "purpose": "RDF version of expand-0046",
+ "input": "toRdf/e046-in.jsonld",
+ "expect": "toRdf/e046-out.nq"
+ }, {
+ "@id": "#te047",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Remove free-floating set values and lists",
+ "purpose": "RDF version of expand-0047",
+ "input": "toRdf/e047-in.jsonld",
+ "expect": "toRdf/e047-out.nq"
+ }, {
+ "@id": "#te048",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Terms are ignored in @id",
+ "purpose": "RDF version of expand-0048",
+ "input": "toRdf/e048-in.jsonld",
+ "expect": "toRdf/e048-out.nq"
+ }, {
+ "@id": "#te049",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Using strings as value of a reverse property",
+ "purpose": "RDF version of expand-0049",
+ "input": "toRdf/e049-in.jsonld",
+ "expect": "toRdf/e049-out.nq"
+ }, {
+ "@id": "#te050",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Term definitions with prefix separate from prefix definitions",
+ "purpose": "RDF version of expand-0050",
+ "input": "toRdf/e050-in.jsonld",
+ "expect": "toRdf/e050-out.nq"
+ }, {
+ "@id": "#te051",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expansion of keyword aliases in term definitions",
+ "purpose": "RDF version of expand-0051",
+ "input": "toRdf/e051-in.jsonld",
+ "expect": "toRdf/e051-out.nq"
+ }, {
+ "@id": "#te052",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@vocab-relative IRIs in term definitions",
+ "purpose": "RDF version of expand-0052",
+ "input": "toRdf/e052-in.jsonld",
+ "expect": "toRdf/e052-out.nq"
+ }, {
+ "@id": "#te053",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand absolute IRI with @type: @vocab",
+ "purpose": "RDF version of expand-0053",
+ "input": "toRdf/e053-in.jsonld",
+ "expect": "toRdf/e053-out.nq"
+ }, {
+ "@id": "#te054",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand term with @type: @vocab",
+ "purpose": "RDF version of expand-0054",
+ "input": "toRdf/e054-in.jsonld",
+ "expect": "toRdf/e054-out.nq"
+ }, {
+ "@id": "#te055",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand @vocab-relative term with @type: @vocab",
+ "purpose": "RDF version of expand-0055",
+ "input": "toRdf/e055-in.jsonld",
+ "expect": "toRdf/e055-out.nq"
+ }, {
+ "@id": "#te056",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Use terms with @type: @vocab but not with @type: @id",
+ "purpose": "RDF version of expand-0056",
+ "input": "toRdf/e056-in.jsonld",
+ "expect": "toRdf/e056-out.nq"
+ }, {
+ "@id": "#te057",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand relative IRI with @type: @vocab",
+ "purpose": "RDF version of expand-0057",
+ "input": "toRdf/e057-in.jsonld",
+ "expect": "toRdf/e057-out.nq"
+ }, {
+ "@id": "#te058",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand compact IRI with @type: @vocab",
+ "purpose": "RDF version of expand-0058",
+ "input": "toRdf/e058-in.jsonld",
+ "expect": "toRdf/e058-out.nq"
+ }, {
+ "@id": "#te059",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Reset @vocab by setting it to null",
+ "purpose": "RDF version of expand-0059",
+ "input": "toRdf/e059-in.jsonld",
+ "expect": "toRdf/e059-out.nq"
+ }, {
+ "@id": "#te060",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Overwrite document base with @base and reset it again",
+ "purpose": "RDF version of expand-0060",
+ "input": "toRdf/e060-in.jsonld",
+ "expect": "toRdf/e060-out.nq"
+ }, {
+ "@id": "#te061",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Coercing native types to arbitrary datatypes",
+ "purpose": "RDF version of expand-0061",
+ "input": "toRdf/e061-in.jsonld",
+ "expect": "toRdf/e061-out.nq"
+ }, {
+ "@id": "#te062",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Various relative IRIs with with @base",
+ "purpose": "RDF version of expand-0062",
+ "input": "toRdf/e062-in.jsonld",
+ "expect": "toRdf/e062-out.nq"
+ }, {
+ "@id": "#te063",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand a reverse property with an index-container",
+ "purpose": "RDF version of expand-0063",
+ "input": "toRdf/e063-in.jsonld",
+ "expect": "toRdf/e063-out.nq"
+ }, {
+ "@id": "#te064",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand reverse property whose values are unlabeled blank nodes",
+ "purpose": "RDF version of expand-0064",
+ "input": "toRdf/e064-in.jsonld",
+ "expect": "toRdf/e064-out.nq"
+ }, {
+ "@id": "#te065",
+ "@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/e065-in.jsonld",
+ "expect": "toRdf/e065-out.nq"
+ }, {
+ "@id": "#te066",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Use @vocab to expand keys in reverse-maps",
+ "purpose": "RDF version of expand-0066",
+ "input": "toRdf/e066-in.jsonld",
+ "expect": "toRdf/e066-out.nq"
+ }, {
+ "@id": "#te067",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "prefix:://sufffix not a compact IRI",
+ "purpose": "RDF version of expand-0067",
+ "input": "toRdf/e067-in.jsonld",
+ "expect": "toRdf/e067-out.nq"
+ }, {
+ "@id": "#te068",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "_::sufffix not a compact IRI",
+ "purpose": "RDF version of expand-0068",
+ "input": "toRdf/e068-in.jsonld",
+ "expect": "toRdf/e068-out.nq"
+ }, {
+ "@id": "#te069",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Compact IRI as term with type mapping",
+ "purpose": "RDF version of expand-0069",
+ "input": "toRdf/e069-in.jsonld",
+ "expect": "toRdf/e069-out.nq"
+ }, {
+ "@id": "#te070",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Redefine compact IRI with itself",
+ "purpose": "RDF version of expand-0070",
+ "input": "toRdf/e070-in.jsonld",
+ "expect": "toRdf/e070-out.nq"
+ }, {
+ "@id": "#te071",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Redefine terms looking like compact IRIs",
+ "purpose": "RDF version of expand-0071",
+ "input": "toRdf/e071-in.jsonld",
+ "expect": "toRdf/e071-out.nq",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#te072",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Redefine term using @vocab, not itself",
+ "purpose": "RDF version of expand-0072",
+ "input": "toRdf/e072-in.jsonld",
+ "expect": "toRdf/e072-out.nq"
+ }, {
+ "@id": "#te073",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@context not first property",
+ "purpose": "Objects are unordered, so serialized node definition containing @context may have @context at the end of the node definition",
+ "input": "toRdf/e073-in.jsonld",
+ "expect": "toRdf/e073-out.nq"
+ }, {
+ "@id": "#te074",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@id not first property",
+ "purpose": "Objects are unordered, so serialized node definition containing @id may have @id at the end of the node definition",
+ "input": "toRdf/e074-in.jsonld",
+ "expect": "toRdf/e074-out.nq"
+ }, {
+ "@id": "#te075",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@vocab as blank node identifier",
+ "purpose": "Use @vocab to map all properties to blank node identifiers",
+ "option": {
+ "processingMode": "json-ld-1.0",
+ "produceGeneralizedRdf": true
+ },
+ "requires": "GeneralizedRdf",
+ "input": "toRdf/e075-in.jsonld",
+ "expect": "toRdf/e075-out.nq"
+ }, {
+ "@id": "#te076",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "base option overrides document location",
+ "purpose": "Use of the base option overrides the document location",
+ "option": {
+ "base": "http://example/base/"
+ },
+ "input": "toRdf/e076-in.jsonld",
+ "expect": "toRdf/e076-out.nq"
+ }, {
+ "@id": "#te077",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expandContext option",
+ "purpose": "Use of the expandContext option to expand the input document",
+ "option": {
+ "expandContext": "toRdf/e077-context.jsonld"
+ },
+ "input": "toRdf/e077-in.jsonld",
+ "expect": "toRdf/e077-out.nq"
+ }, {
+ "@id": "#te078",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "multiple reverse properties",
+ "purpose": "Use of multiple reverse properties",
+ "input": "toRdf/e078-in.jsonld",
+ "expect": "toRdf/e078-out.nq"
+ }, {
+ "@id": "#te079",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand @graph container",
+ "purpose": "Use of @graph containers",
+ "input": "toRdf/e079-in.jsonld",
+ "expect": "toRdf/e079-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te080",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @set] container",
+ "purpose": "Use of [@graph, @set] containers",
+ "input": "toRdf/e080-in.jsonld",
+ "expect": "toRdf/e080-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te081",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Creates an @graph container if value is a graph",
+ "purpose": "Don't double-expand an already expanded graph",
+ "input": "toRdf/e081-in.jsonld",
+ "expect": "toRdf/e081-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te082",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @index] container",
+ "purpose": "Use of @graph containers with @index",
+ "input": "toRdf/e082-in.jsonld",
+ "expect": "toRdf/e082-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te083",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @index, @set] container",
+ "purpose": "Use of @graph containers with @index and @set",
+ "input": "toRdf/e083-in.jsonld",
+ "expect": "toRdf/e083-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te084",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Do not expand [@graph, @index] container if value is a graph",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "toRdf/e084-in.jsonld",
+ "expect": "toRdf/e084-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te085",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @id] container",
+ "purpose": "Use of @graph containers with @id",
+ "input": "toRdf/e085-in.jsonld",
+ "expect": "toRdf/e085-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te086",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @id, @set] container",
+ "purpose": "Use of @graph containers with @id and @set",
+ "input": "toRdf/e086-in.jsonld",
+ "expect": "toRdf/e086-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te087",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Do not expand [@graph, @id] container if value is a graph",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "toRdf/e087-in.jsonld",
+ "expect": "toRdf/e087-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te088",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Do not expand native values to IRIs",
+ "purpose": "Value Expansion does not expand native values, such as booleans, to a node object",
+ "input": "toRdf/e088-in.jsonld",
+ "expect": "toRdf/e088-out.nq"
+ }, {
+ "@id": "#te089",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "empty @base applied to the base option",
+ "purpose": "Use of an empty @base is applied to the base option",
+ "option": {
+ "base": "http://example/base/"
+ },
+ "input": "toRdf/e089-in.jsonld",
+ "expect": "toRdf/e089-out.nq"
+ }, {
+ "@id": "#te090",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "relative @base overrides base option and document location",
+ "purpose": "Use of a relative @base overrides base option and document location",
+ "option": {
+ "base": "http://example/base/"
+ },
+ "input": "toRdf/e090-in.jsonld",
+ "expect": "toRdf/e090-out.nq"
+ }, {
+ "@id": "#te091",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "relative and absolute @base overrides base option and document location",
+ "purpose": "Use of a relative and absolute @base overrides base option and document location",
+ "option": {
+ "base": "http://example/base/"
+ },
+ "input": "toRdf/e091-in.jsonld",
+ "expect": "toRdf/e091-out.nq"
+ }, {
+ "@id": "#te092",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Various relative IRIs as properties with with @vocab: ''",
+ "purpose": "Pathological relative property IRIs",
+ "input": "toRdf/e092-in.jsonld",
+ "expect": "toRdf/e092-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te093",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand @graph container (multiple objects)",
+ "purpose": "Use of @graph containers",
+ "input": "toRdf/e093-in.jsonld",
+ "expect": "toRdf/e093-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te094",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @set] container (multiple objects)",
+ "purpose": "Use of [@graph, @set] containers",
+ "input": "toRdf/e094-in.jsonld",
+ "expect": "toRdf/e094-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te095",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Creates an @graph container if value is a graph (multiple objects)",
+ "purpose": "Don't double-expand an already expanded graph",
+ "input": "toRdf/e095-in.jsonld",
+ "expect": "toRdf/e095-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te096",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @index] container (multiple indexed objects)",
+ "purpose": "Use of @graph containers with @index",
+ "input": "toRdf/e096-in.jsonld",
+ "expect": "toRdf/e096-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te097",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @index, @set] container (multiple objects)",
+ "purpose": "Use of @graph containers with @index and @set",
+ "input": "toRdf/e097-in.jsonld",
+ "expect": "toRdf/e097-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te098",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Do not expand [@graph, @index] container if value is a graph (multiple objects)",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "toRdf/e098-in.jsonld",
+ "expect": "toRdf/e098-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te099",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @id] container (multiple objects)",
+ "purpose": "Use of @graph containers with @id",
+ "input": "toRdf/e099-in.jsonld",
+ "expect": "toRdf/e099-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te100",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @id, @set] container (multiple objects)",
+ "purpose": "Use of @graph containers with @id and @set",
+ "input": "toRdf/e100-in.jsonld",
+ "expect": "toRdf/e100-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te101",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Do not expand [@graph, @id] container if value is a graph (multiple objects)",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "toRdf/e101-in.jsonld",
+ "expect": "toRdf/e101-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te102",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand @graph container if value is a graph (multiple objects)",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "toRdf/e102-in.jsonld",
+ "expect": "toRdf/e102-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te103",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expand @graph container if value is a graph (multiple graphs)",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "toRdf/e103-in.jsonld",
+ "expect": "toRdf/e103-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te104",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Creates an @graph container if value is a graph (mixed graph and object)",
+ "purpose": "Don't double-expand an already expanded graph",
+ "input": "toRdf/e104-in.jsonld",
+ "expect": "toRdf/e104-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te105",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Do not expand [@graph, @index] container if value is a graph (mixed graph and object)",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "toRdf/e105-in.jsonld",
+ "expect": "toRdf/e105-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te106",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Do not expand [@graph, @id] container if value is a graph (mixed graph and object)",
+ "purpose": "Does not create a new graph object if indexed value is already a graph object",
+ "input": "toRdf/e106-in.jsonld",
+ "expect": "toRdf/e106-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te107",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @index] container (indexes with multiple objects)",
+ "purpose": "Use of @graph containers with @index",
+ "input": "toRdf/e107-in.jsonld",
+ "expect": "toRdf/e107-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te108",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "expand [@graph, @id] container (multiple ids and objects)",
+ "purpose": "Use of @graph containers with @id",
+ "input": "toRdf/e108-in.jsonld",
+ "expect": "toRdf/e108-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te109",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "IRI expansion of fragments including ':'",
+ "purpose": "Do not treat as absolute IRIs values that look like compact IRIs if they're not absolute",
+ "input": "toRdf/e109-in.jsonld",
+ "expect": "toRdf/e109-out.nq"
+ }, {
+ "@id": "#te110",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Various relative IRIs as properties with with relative @vocab",
+ "purpose": "Pathological relative property IRIs",
+ "input": "toRdf/e110-in.jsonld",
+ "expect": "toRdf/e110-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te111",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Various relative IRIs as properties with with relative @vocab itself relative to an existing vocabulary base",
+ "purpose": "Pathological relative property IRIs",
+ "input": "toRdf/e111-in.jsonld",
+ "expect": "toRdf/e111-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te112",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Various relative IRIs as properties with with relative @vocab relative to another relative vocabulary base",
+ "purpose": "Pathological relative property IRIs",
+ "input": "toRdf/e112-in.jsonld",
+ "expect": "toRdf/e112-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te113",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "context with JavaScript Object property names",
+ "purpose": "Expand with context including JavaScript Object property names",
+ "input": "toRdf/e113-in.jsonld",
+ "expect": "toRdf/e113-out.nq"
+ }, {
+ "@id": "#te114",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expansion allows multiple properties expanding to @type",
+ "purpose": "An exception for the colliding keywords error is made for @type",
+ "input": "toRdf/e114-in.jsonld",
+ "expect": "toRdf/e114-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te115",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Verifies that relative IRIs as properties with @vocab: '' in 1.0 generate an error",
+ "purpose": "Pathological relative property IRIs in 1.0",
+ "input": "toRdf/e115-in.jsonld",
+ "expectErrorCode": "invalid vocab mapping",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#te116",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Verifies that relative IRIs as properties with relative @vocab in 1.0 generate an error",
+ "purpose": "Pathological relative property IRIs in 1.0",
+ "input": "toRdf/e116-in.jsonld",
+ "expectErrorCode": "invalid vocab mapping",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#te117",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "A term starting with a colon can expand to a different IRI",
+ "purpose": "Terms may begin with a colon and not be treated as IRIs.",
+ "input": "toRdf/e117-in.jsonld",
+ "expect": "toRdf/e117-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te118",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expanding a value staring with a colon does not treat that value as an IRI",
+ "purpose": "Terms may begin with a colon and not be treated as IRIs.",
+ "input": "toRdf/e118-in.jsonld",
+ "expect": "toRdf/e118-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te119",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ignore some terms with @, allow others.",
+ "purpose": "Processors SHOULD generate a warning and MUST ignore terms having the form of a keyword.",
+ "input": "toRdf/e119-in.jsonld",
+ "expect": "toRdf/e119-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te120",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ignore some values of @id with @, allow others.",
+ "purpose": "Processors SHOULD generate a warning and MUST ignore values of @id having the form of a keyword.",
+ "input": "toRdf/e120-in.jsonld",
+ "expect": "toRdf/e120-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te121",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ignore some values of @reverse with @, allow others.",
+ "purpose": "Processors SHOULD generate a warning and MUST ignore values of @reverse having the form of a keyword.",
+ "input": "toRdf/e121-in.jsonld",
+ "expect": "toRdf/e121-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te122",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ignore some IRIs when that start with @ when expanding.",
+ "purpose": "Processors SHOULD generate a warning and MUST ignore IRIs having the form of a keyword.",
+ "input": "toRdf/e122-in.jsonld",
+ "expect": "toRdf/e122-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te123",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Value objects including invalid literal datatype IRIs are rejected",
+ "purpose": "Processors MUST validate datatype IRIs.",
+ "input": "toRdf/e123-in.jsonld",
+ "expectErrorCode": "invalid typed value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te124",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "compact IRI as @vocab",
+ "purpose": "Verifies that @vocab defined as a compact IRI expands properly",
+ "input": "toRdf/e124-in.jsonld",
+ "expect": "toRdf/e124-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te125",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "term as @vocab",
+ "purpose": "Verifies that @vocab defined as a term expands properly",
+ "input": "toRdf/e125-in.jsonld",
+ "expect": "toRdf/e125-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te126",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "A scoped context may include itself recursively (direct)",
+ "purpose": "Verifies that no exception is raised on expansion when processing a scoped context referencing itself directly",
+ "input": "toRdf/e126-in.jsonld",
+ "expect": "toRdf/e126-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te127",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "A scoped context may include itself recursively (indirect)",
+ "purpose": "Verifies that no exception is raised on expansion when processing a scoped context referencing itself indirectly",
+ "input": "toRdf/e127-in.jsonld",
+ "expect": "toRdf/e127-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te128",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Two scoped context may include a shared context",
+ "purpose": "Verifies that no exception is raised on expansion when processing two scoped contexts referencing a shared context",
+ "input": "toRdf/e128-in.jsonld",
+ "expect": "toRdf/e128-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te129",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Base without trailing slash, without path",
+ "purpose": "Verify URI resolution relative to base (without trailing slash, without path) according to RFC 3986",
+ "input": "toRdf/e129-in.jsonld",
+ "expect": "toRdf/e129-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#te130",
+ "@type": [ "jld:PositiveEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Base without trailing slash, with path",
+ "purpose": "Verify URI resolution relative to base (without trailing slash, with path) according to RFC 3986",
+ "input": "toRdf/e130-in.jsonld",
+ "expect": "toRdf/e130-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tec01",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid keyword in term definition",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid term definition is found",
+ "input": "toRdf/ec01-in.jsonld",
+ "expectErrorCode": "invalid term definition",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tec02",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Term definition on @type with empty map",
+ "purpose": "Verifies that an exception is raised if @type is defined as a term with an empty map",
+ "input": "toRdf/ec02-in.jsonld",
+ "expectErrorCode": "keyword redefinition",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tem01",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid container mapping",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid container mapping is found",
+ "input": "toRdf/em01-in.jsonld",
+ "expectErrorCode": "invalid container mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten01",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "@nest MUST NOT have a string value",
+ "purpose": "container: @nest",
+ "input": "toRdf/en01-in.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten02",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "@nest MUST NOT have a boolen value",
+ "purpose": "Transparent Nesting",
+ "input": "toRdf/en02-in.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten03",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "@nest MUST NOT have a numeric value",
+ "purpose": "Transparent Nesting",
+ "input": "toRdf/en03-in.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten04",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "@nest MUST NOT have a value object value",
+ "purpose": "Transparent Nesting",
+ "input": "toRdf/en04-in.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten05",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "does not allow a keyword other than @nest for the value of @nest",
+ "purpose": "Transparent Nesting",
+ "input": "toRdf/en05-in.jsonld",
+ "expectErrorCode": "invalid @nest value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ten06",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "does not allow @nest with @reverse",
+ "purpose": "Transparent Nesting",
+ "input": "toRdf/en06-in.jsonld",
+ "expectErrorCode": "invalid reverse property",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tep02",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "processingMode json-ld-1.0 conflicts with @version: 1.1",
+ "purpose": "If processingMode is explicitly json-ld-1.0, it will conflict with 1.1 features.",
+ "input": "toRdf/ep02-in.jsonld",
+ "expectErrorCode": "processing mode conflict",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tep03",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "@version must be 1.1",
+ "purpose": "If @version is specified, it must be 1.1",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/ep03-in.jsonld",
+ "expectErrorCode": "invalid @version value"
+ }, {
+ "@id": "#ter01",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Keywords cannot be aliased to other keywords",
+ "purpose": "Verifies that an exception is raised on expansion when processing an invalid context aliasing a keyword to another keyword",
+ "input": "toRdf/er01-in.jsonld",
+ "expectErrorCode": "keyword redefinition"
+ }, {
+ "@id": "#ter02",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "A context may not include itself recursively (direct)",
+ "purpose": "Verifies that an exception is raised on expansion when processing a context referencing itself",
+ "input": "toRdf/er02-in.jsonld",
+ "expectErrorCode": "recursive context inclusion",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#ter03",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "A context may not include itself recursively (indirect)",
+ "purpose": "Verifies that an exception is raised on expansion when processing a context referencing itself indirectly",
+ "input": "toRdf/er03-in.jsonld",
+ "expectErrorCode": "recursive context inclusion",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#ter04",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Error dereferencing a remote context",
+ "purpose": "Verifies that an exception is raised on expansion when a context dereference results in an error",
+ "input": "toRdf/er04-in.jsonld",
+ "expectErrorCode": "loading remote context failed"
+ }, {
+ "@id": "#ter05",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid remote context",
+ "purpose": "Verifies that an exception is raised on expansion when a remote context is not an object containing @context",
+ "input": "toRdf/er05-in.jsonld",
+ "expectErrorCode": "invalid remote context",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter06",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid local context",
+ "purpose": "Verifies that an exception is raised on expansion when a context is not a string or object",
+ "input": "toRdf/er06-in.jsonld",
+ "expectErrorCode": "invalid local context"
+ }, {
+ "@id": "#ter07",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid base IRI",
+ "purpose": "Verifies that an exception is raised on expansion when a context contains an invalid @base",
+ "input": "toRdf/er07-in.jsonld",
+ "expectErrorCode": "invalid base IRI"
+ }, {
+ "@id": "#ter08",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid vocab mapping",
+ "purpose": "Verifies that an exception is raised on expansion when a context contains an invalid @vocab mapping",
+ "input": "toRdf/er08-in.jsonld",
+ "expectErrorCode": "invalid vocab mapping"
+ }, {
+ "@id": "#ter09",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid default language",
+ "purpose": "Verifies that an exception is raised on expansion when a context contains an invalid @language",
+ "input": "toRdf/er09-in.jsonld",
+ "expectErrorCode": "invalid default language"
+ }, {
+ "@id": "#ter10",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Cyclic IRI mapping",
+ "purpose": "Verifies that an exception is raised on expansion when a cyclic IRI mapping is found",
+ "input": "toRdf/er10-in.jsonld",
+ "expectErrorCode": "cyclic IRI mapping"
+ }, {
+ "@id": "#ter11",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid term definition",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid term definition is found",
+ "input": "toRdf/er11-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#ter12",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid type mapping (not a string)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid type mapping is found",
+ "input": "toRdf/er12-in.jsonld",
+ "expectErrorCode": "invalid type mapping"
+ }, {
+ "@id": "#ter13",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid type mapping (not absolute IRI)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid type mapping is found",
+ "input": "toRdf/er13-in.jsonld",
+ "expectErrorCode": "invalid type mapping"
+ }, {
+ "@id": "#ter14",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid reverse property (contains @id)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid reverse property is found",
+ "input": "toRdf/er14-in.jsonld",
+ "expectErrorCode": "invalid reverse property"
+ }, {
+ "@id": "#ter15",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid IRI mapping (@reverse not a string)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid IRI mapping is found",
+ "input": "toRdf/er15-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping"
+ }, {
+ "@id": "#ter17",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid reverse property (invalid @container)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid reverse property is found",
+ "input": "toRdf/er17-in.jsonld",
+ "expectErrorCode": "invalid reverse property"
+ }, {
+ "@id": "#ter18",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid IRI mapping (@id not a string)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid IRI mapping is found",
+ "input": "toRdf/er18-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping"
+ }, {
+ "@id": "#ter19",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid keyword alias (@context)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid keyword alias is found",
+ "input": "toRdf/er19-in.jsonld",
+ "expectErrorCode": "invalid keyword alias"
+ }, {
+ "@id": "#ter20",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid IRI mapping (no vocab mapping)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid IRI mapping is found",
+ "input": "toRdf/er20-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping"
+ }, {
+ "@id": "#ter21",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid container mapping",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid container mapping is found",
+ "input": "toRdf/er21-in.jsonld",
+ "expectErrorCode": "invalid container mapping",
+ "option": {"processingMode": "json-ld-1.0", "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter22",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid language mapping",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid language mapping is found",
+ "input": "toRdf/er22-in.jsonld",
+ "expectErrorCode": "invalid language mapping"
+ }, {
+ "@id": "#ter23",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid IRI mapping (relative IRI in @type)",
+ "purpose": "Verifies that an exception is raised on expansion when a invalid type mapping is found",
+ "input": "toRdf/er23-in.jsonld",
+ "expectErrorCode": "invalid type mapping"
+ }, {
+ "@id": "#ter24",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "List of lists (from array)",
+ "purpose": "Verifies that an exception is raised in Expansion when a list of lists is found",
+ "input": "toRdf/er24-in.jsonld",
+ "expectErrorCode": "list of lists",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#ter25",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid reverse property map",
+ "purpose": "Verifies that an exception is raised in Expansion when a invalid reverse property map is found",
+ "input": "toRdf/er25-in.jsonld",
+ "expectErrorCode": "invalid reverse property map"
+ }, {
+ "@id": "#ter26",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Colliding keywords",
+ "purpose": "Verifies that an exception is raised in Expansion when colliding keywords are found",
+ "input": "toRdf/er26-in.jsonld",
+ "expectErrorCode": "colliding keywords"
+ }, {
+ "@id": "#ter27",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid @id value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid @id value is found",
+ "input": "toRdf/er27-in.jsonld",
+ "expectErrorCode": "invalid @id value"
+ }, {
+ "@id": "#ter28",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid type value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid type value is found",
+ "input": "toRdf/er28-in.jsonld",
+ "expectErrorCode": "invalid type value"
+ }, {
+ "@id": "#ter29",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid value object value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid value object value is found",
+ "input": "toRdf/er29-in.jsonld",
+ "expectErrorCode": "invalid value object value"
+ }, {
+ "@id": "#ter30",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid language-tagged string",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid language-tagged string value is found",
+ "input": "toRdf/er30-in.jsonld",
+ "expectErrorCode": "invalid language-tagged string"
+ }, {
+ "@id": "#ter31",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid @index value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid @index value value is found",
+ "input": "toRdf/er31-in.jsonld",
+ "expectErrorCode": "invalid @index value"
+ }, {
+ "@id": "#ter32",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "List of lists (from array)",
+ "purpose": "Verifies that an exception is raised in Expansion when a list of lists is found",
+ "input": "toRdf/er32-in.jsonld",
+ "expectErrorCode": "list of lists",
+ "option": {"specVersion": "json-ld-1.0"}
+ }, {
+ "@id": "#ter33",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid @reverse value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid @reverse value is found",
+ "input": "toRdf/er33-in.jsonld",
+ "expectErrorCode": "invalid @reverse value"
+ }, {
+ "@id": "#ter34",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid reverse property value (in @reverse)",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid reverse property value is found",
+ "input": "toRdf/er34-in.jsonld",
+ "expectErrorCode": "invalid reverse property value"
+ }, {
+ "@id": "#ter35",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid language map value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid language map value is found",
+ "input": "toRdf/er35-in.jsonld",
+ "expectErrorCode": "invalid language map value"
+ }, {
+ "@id": "#ter36",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid reverse property value (through coercion)",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid reverse property value is found",
+ "input": "toRdf/er36-in.jsonld",
+ "expectErrorCode": "invalid reverse property value"
+ }, {
+ "@id": "#ter37",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid value object (unexpected keyword)",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid value object is found",
+ "input": "toRdf/er37-in.jsonld",
+ "expectErrorCode": "invalid value object"
+ }, {
+ "@id": "#ter38",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid value object (@type and @language)",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid value object is found",
+ "input": "toRdf/er38-in.jsonld",
+ "expectErrorCode": "invalid value object"
+ }, {
+ "@id": "#ter39",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid language-tagged value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid language-tagged value is found",
+ "input": "toRdf/er39-in.jsonld",
+ "expectErrorCode": "invalid language-tagged value"
+ }, {
+ "@id": "#ter40",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid typed value",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid typed value is found",
+ "input": "toRdf/er40-in.jsonld",
+ "expectErrorCode": "invalid typed value"
+ }, {
+ "@id": "#ter41",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid set or list object",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid set or list object is found",
+ "input": "toRdf/er41-in.jsonld",
+ "expectErrorCode": "invalid set or list object"
+ }, {
+ "@id": "#ter42",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Keywords may not be redefined in 1.0",
+ "purpose": "Verifies that an exception is raised on expansion when processing an invalid context attempting to define @container on a keyword",
+ "option": {"specVersion": "json-ld-1.1", "processingMode": "json-ld-1.0"},
+ "input": "toRdf/er42-in.jsonld",
+ "expectErrorCode": "keyword redefinition"
+ }, {
+ "@id": "#ter43",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Term definition with @id: @type",
+ "purpose": "Expanding term mapping to @type uses @type syntax now illegal",
+ "input": "toRdf/er43-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter44",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Redefine terms looking like compact IRIs",
+ "purpose": "Term definitions may look like compact IRIs, but must be consistent.",
+ "input": "toRdf/er44-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter48",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Invalid term as relative IRI",
+ "purpose": "Verifies that a relative IRI cannot be used as a term.",
+ "input": "toRdf/er48-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter49",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "A relative IRI cannot be used as a prefix",
+ "purpose": "Verifies that a relative IRI cannot be used as a term.",
+ "input": "toRdf/er49-in.jsonld",
+ "expectErrorCode": "invalid term definition",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter50",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid reverse id",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid IRI is used for @reverse.",
+ "input": "toRdf/er50-in.jsonld",
+ "expectErrorCode": "invalid IRI mapping"
+ }, {
+ "@id": "#ter51",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid value object value using a value alias",
+ "purpose": "Verifies that an exception is raised in Expansion when an invalid value object value is found using a value alias",
+ "input": "toRdf/er51-in.jsonld",
+ "expectErrorCode": "invalid value object value"
+ }, {
+ "@id": "#ter52",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Definition for the empty term",
+ "purpose": "Verifies that an exception is raised on expansion when a context contains a definition for the empty term",
+ "input": "toRdf/er52-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#ter53",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid prefix value",
+ "purpose": "Verifies that an exception is raised on expansion when a context contains an invalid @prefix value",
+ "input": "toRdf/er53-in.jsonld",
+ "expectErrorCode": "invalid @prefix value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#ter54",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid value object, multiple values for @type.",
+ "purpose": "The value of @type in a value object MUST be a string or null.",
+ "input": "toRdf/er54-in.jsonld",
+ "expectErrorCode": "invalid typed value"
+ }, {
+ "@id": "#ter55",
+ "@type": [ "jld:NegativeEvaluationTest", "jld:ToRDFTest" ],
+ "name": "Invalid term definition, multiple values for @type.",
+ "purpose": "The value of @type in an expanded term definition object MUST be a string or null.",
+ "input": "toRdf/er55-in.jsonld",
+ "expectErrorCode": "invalid type mapping"
+ }, {
+ "@id": "#tin01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Basic Included array",
+ "purpose": "Tests included blocks.",
+ "input": "toRdf/in01-in.jsonld",
+ "expect": "toRdf/in01-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Basic Included object",
+ "purpose": "Tests included blocks.",
+ "input": "toRdf/in02-in.jsonld",
+ "expect": "toRdf/in02-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Multiple properties mapping to @included are folded together",
+ "purpose": "Tests included blocks.",
+ "input": "toRdf/in03-in.jsonld",
+ "expect": "toRdf/in03-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Included containing @included",
+ "purpose": "Tests included blocks.",
+ "input": "toRdf/in04-in.jsonld",
+ "expect": "toRdf/in04-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Property value with @included",
+ "purpose": "Tests included blocks.",
+ "input": "toRdf/in05-in.jsonld",
+ "expect": "toRdf/in05-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "json.api example",
+ "purpose": "Tests included blocks.",
+ "input": "toRdf/in06-in.jsonld",
+ "expect": "toRdf/in06-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin07",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Error if @included value is a string",
+ "purpose": "Tests included blocks.",
+ "input": "toRdf/in07-in.jsonld",
+ "expectErrorCode": "invalid @included value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin08",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Error if @included value is a value object",
+ "purpose": "Tests included blocks.",
+ "input": "toRdf/in08-in.jsonld",
+ "expectErrorCode": "invalid @included value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tin09",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Error if @included value is a list object",
+ "purpose": "Tests included blocks.",
+ "input": "toRdf/in09-in.jsonld",
+ "expectErrorCode": "invalid @included value",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tjs01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (boolean true)",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (boolean true).",
+ "input": "toRdf/js01-in.jsonld",
+ "expect": "toRdf/js01-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (boolean false)",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (boolean false).",
+ "input": "toRdf/js02-in.jsonld",
+ "expect": "toRdf/js02-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (double)",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (double).",
+ "input": "toRdf/js03-in.jsonld",
+ "expect": "toRdf/js03-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (double-zero)",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (double-zero).",
+ "input": "toRdf/js04-in.jsonld",
+ "expect": "toRdf/js04-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (integer)",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (integer).",
+ "input": "toRdf/js05-in.jsonld",
+ "expect": "toRdf/js05-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (object)",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (object).",
+ "input": "toRdf/js06-in.jsonld",
+ "expect": "toRdf/js06-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs07",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (array)",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (array).",
+ "input": "toRdf/js07-in.jsonld",
+ "expect": "toRdf/js07-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs08",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal with array canonicalization",
+ "purpose": "Tests transforming JSON literal with array canonicalization.",
+ "input": "toRdf/js08-in.jsonld",
+ "expect": "toRdf/js08-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs09",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal with string canonicalization",
+ "purpose": "Tests transforming JSON literal with string canonicalization.",
+ "input": "toRdf/js09-in.jsonld",
+ "expect": "toRdf/js09-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs10",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal with structural canonicalization",
+ "purpose": "Tests transforming JSON literal with structural canonicalization.",
+ "input": "toRdf/js10-in.jsonld",
+ "expect": "toRdf/js10-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs11",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal with unicode canonicalization",
+ "purpose": "Tests transforming JSON literal with unicode canonicalization.",
+ "input": "toRdf/js11-in.jsonld",
+ "expect": "toRdf/js11-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs12",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal with value canonicalization",
+ "purpose": "Tests transforming JSON literal with value canonicalization.",
+ "input": "toRdf/js12-in.jsonld",
+ "expect": "toRdf/js12-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs13",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal with wierd canonicalization",
+ "purpose": "Tests transforming JSON literal with wierd canonicalization.",
+ "input": "toRdf/js13-in.jsonld",
+ "expect": "toRdf/js13-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs14",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal without expanding contents",
+ "purpose": "Tests transforming JSON literal does not expand terms inside json.",
+ "input": "toRdf/js14-in.jsonld",
+ "expect": "toRdf/js14-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs15",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal aleady in expanded form",
+ "purpose": "Tests transforming JSON literal in expanded form.",
+ "input": "toRdf/js15-in.jsonld",
+ "expect": "toRdf/js15-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs16",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal aleady in expanded form with aliased keys",
+ "purpose": "Tests transforming JSON literal in expanded form with aliased keys in value object.",
+ "input": "toRdf/js16-in.jsonld",
+ "expect": "toRdf/js16-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs17",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (string)",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (string).",
+ "input": "toRdf/js17-in.jsonld",
+ "expect": "toRdf/js17-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs18",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (null)",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (null).",
+ "input": "toRdf/js18-in.jsonld",
+ "expect": "toRdf/js18-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs19",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal with aliased @type",
+ "purpose": "Tests transforming JSON literal with aliased @type.",
+ "input": "toRdf/js19-in.jsonld",
+ "expect": "toRdf/js19-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs20",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal with aliased @value",
+ "purpose": "Tests transforming JSON literal with aliased @value.",
+ "input": "toRdf/js20-in.jsonld",
+ "expect": "toRdf/js20-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs21",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal with @context",
+ "purpose": "Tests transforming JSON literal with a @context.",
+ "input": "toRdf/js21-in.jsonld",
+ "expect": "toRdf/js21-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs22",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (null) aleady in expanded form.",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (null).",
+ "input": "toRdf/js22-in.jsonld",
+ "expect": "toRdf/js22-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tjs23",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Transform JSON literal (empty array).",
+ "purpose": "Tests transforming property with @type @json to a JSON literal (empty array).",
+ "input": "toRdf/js23-in.jsonld",
+ "expect": "toRdf/js23-out.nq",
+ "option": {"specVersion": "json-ld-1.1", "useJCS": true}
+ }, {
+ "@id": "#tli01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@list containing @list",
+ "purpose": "List of lists.",
+ "input": "toRdf/li01-in.jsonld",
+ "expect": "toRdf/li01-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tli02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@list containing empty @list",
+ "purpose": "List of lists.",
+ "input": "toRdf/li02-in.jsonld",
+ "expect": "toRdf/li02-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tli03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@list containing @list (with coercion)",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/li03-in.jsonld",
+ "expect": "toRdf/li03-out.nq"
+ }, {
+ "@id": "#tli04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@list containing empty @list (with coercion)",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/li04-in.jsonld",
+ "expect": "toRdf/li04-out.nq"
+ }, {
+ "@id": "#tli05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "coerced @list containing an array",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/li05-in.jsonld",
+ "expect": "toRdf/li05-out.nq"
+ }, {
+ "@id": "#tli06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "coerced @list containing an empty array",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/li06-in.jsonld",
+ "expect": "toRdf/li06-out.nq"
+ }, {
+ "@id": "#tli07",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "coerced @list containing deep arrays",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/li07-in.jsonld",
+ "expect": "toRdf/li07-out.nq"
+ }, {
+ "@id": "#tli08",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "coerced @list containing deep empty arrays",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/li08-in.jsonld",
+ "expect": "toRdf/li08-out.nq"
+ }, {
+ "@id": "#tli09",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "coerced @list containing multiple lists",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/li09-in.jsonld",
+ "expect": "toRdf/li09-out.nq"
+ }, {
+ "@id": "#tli10",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "coerced @list containing mixed list values",
+ "purpose": "List of lists",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/li10-in.jsonld",
+ "expect": "toRdf/li10-out.nq"
+ }, {
+ "@id": "#tli11",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "List with good @base.",
+ "purpose": "Tests list elements expanded to IRIs with a good @base.",
+ "option": {"specVersion": "json-ld-1.1", "base": "http://example.com/"},
+ "input": "toRdf/li11-in.jsonld",
+ "expect": "toRdf/li11-out.nq"
+ }, {
+ "@id": "#tli12",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "List with bad @base.",
+ "purpose": "Tests list elements expanded to IRIs with a bad @base.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/li12-in.jsonld",
+ "expect": "toRdf/li12-out.nq"
+ }, {
+ "@id": "#tli13",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "List with empty @base.",
+ "purpose": "Tests list elements expanded to IRIs with an empty @base.",
+ "option": {"specVersion": "json-ld-1.1", "base": "http://example.com/"},
+ "input": "toRdf/li13-in.jsonld",
+ "expect": "toRdf/li13-out.nq"
+ }, {
+ "@id": "#tli14",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "List with null @base.",
+ "purpose": "Tests list elements expanded to IRIs with a null @base.",
+ "option": {"specVersion": "json-ld-1.1", "base": "http://example.com/"},
+ "input": "toRdf/li14-in.jsonld",
+ "expect": "toRdf/li14-out.nq"
+ }, {
+ "@id": "#tm001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Adds @id to object not having an @id",
+ "purpose": "Expansion using @container: @id",
+ "input": "toRdf/m001-in.jsonld",
+ "expect": "toRdf/m001-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Retains @id in object already having an @id",
+ "purpose": "Expansion using @container: @id",
+ "input": "toRdf/m002-in.jsonld",
+ "expect": "toRdf/m002-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Adds @type to object not having an @type",
+ "purpose": "Expansion using @container: @type",
+ "input": "toRdf/m003-in.jsonld",
+ "expect": "toRdf/m003-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Prepends @type in object already having an @type",
+ "purpose": "Expansion using @container: @type",
+ "input": "toRdf/m004-in.jsonld",
+ "expect": "toRdf/m004-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Adds expanded @id to object",
+ "purpose": "Expansion using @container: @id",
+ "input": "toRdf/m005-in.jsonld",
+ "expect": "toRdf/m005-out.nq",
+ "option": {"base": "http://example.org/", "specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Adds vocabulary expanded @type to object",
+ "purpose": "Expansion using @container: @type",
+ "input": "toRdf/m006-in.jsonld",
+ "expect": "toRdf/m006-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Adds document expanded @type to object",
+ "purpose": "Expansion using @container: @type",
+ "input": "toRdf/m007-in.jsonld",
+ "expect": "toRdf/m007-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "When type is in a type map",
+ "purpose": "scoped context on @type",
+ "input": "toRdf/m008-in.jsonld",
+ "expect": "toRdf/m008-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "language map with @none",
+ "purpose": "index on @language",
+ "input": "toRdf/m009-in.jsonld",
+ "expect": "toRdf/m009-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "language map with alias of @none",
+ "purpose": "index on @language",
+ "input": "toRdf/m010-in.jsonld",
+ "expect": "toRdf/m010-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "id map with @none",
+ "purpose": "index on @id",
+ "input": "toRdf/m011-in.jsonld",
+ "expect": "toRdf/m011-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "type map with alias of @none",
+ "purpose": "index on @type",
+ "input": "toRdf/m012-in.jsonld",
+ "expect": "toRdf/m012-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "graph index map with @none",
+ "purpose": "index on @graph and @index",
+ "input": "toRdf/m013-in.jsonld",
+ "expect": "toRdf/m013-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "graph index map with alias @none",
+ "purpose": "index on @graph and @index",
+ "input": "toRdf/m014-in.jsonld",
+ "expect": "toRdf/m014-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "graph id index map with aliased @none",
+ "purpose": "index on @graph and @id with @none",
+ "input": "toRdf/m015-in.jsonld",
+ "expect": "toRdf/m015-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "graph id index map with aliased @none",
+ "purpose": "index on @graph and @id with @none",
+ "input": "toRdf/m016-in.jsonld",
+ "expect": "toRdf/m016-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "string value of type map expands to node reference",
+ "purpose": "index on @type",
+ "input": "toRdf/m017-in.jsonld",
+ "expect": "toRdf/m017-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "string value of type map expands to node reference with @type: @id",
+ "purpose": "index on @type",
+ "input": "toRdf/m018-in.jsonld",
+ "expect": "toRdf/m018-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "string value of type map expands to node reference with @type: @vocab",
+ "purpose": "index on @type",
+ "input": "toRdf/m019-in.jsonld",
+ "expect": "toRdf/m019-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tm020",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "string value of type map must not be a literal",
+ "purpose": "index on @type",
+ "input": "toRdf/m020-in.jsonld",
+ "expectErrorCode": "invalid type mapping",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expands input using @nest",
+ "purpose": "Expansion using @nest",
+ "input": "toRdf/n001-in.jsonld",
+ "expect": "toRdf/n001-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Expands input using aliased @nest",
+ "purpose": "Expansion using @nest",
+ "input": "toRdf/n002-in.jsonld",
+ "expect": "toRdf/n002-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Appends nested values when property at base and nested",
+ "purpose": "Expansion using @nest",
+ "input": "toRdf/n003-in.jsonld",
+ "expect": "toRdf/n003-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Appends nested values from all @nest aliases in term order",
+ "purpose": "Expansion using @nest",
+ "input": "toRdf/n004-in.jsonld",
+ "expect": "toRdf/n004-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Nested nested containers",
+ "purpose": "Expansion using @nest",
+ "input": "toRdf/n005-in.jsonld",
+ "expect": "toRdf/n005-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Arrays of nested values",
+ "purpose": "Expansion using @nest",
+ "input": "toRdf/n006-in.jsonld",
+ "expect": "toRdf/n006-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "A nest of arrays",
+ "purpose": "Expansion using @nest",
+ "input": "toRdf/n007-in.jsonld",
+ "expect": "toRdf/n007-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tn008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Multiple keys may mapping to @type when nesting",
+ "purpose": "Expansion using @nest",
+ "input": "toRdf/n008-in.jsonld",
+ "expect": "toRdf/n008-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tnt01",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_ascii_boundaries",
+ "purpose": "literal_ascii_boundaries '\\x00\\x26\\x28...' from N-Triples",
+ "input": "toRdf/nt01-in.jsonld"
+ }, {
+ "@id": "#tnt02",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_UTF8_boundaries",
+ "purpose": "literal_with_UTF8_boundaries '\\x80\\x7ff\\x800\\xfff...' from N-Triples",
+ "input": "toRdf/nt02-in.jsonld"
+ }, {
+ "@id": "#tnt03",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_all_controls",
+ "purpose": "literal_all_controls '\\x00\\x01\\x02\\x03\\x04...' from N-Triples",
+ "input": "toRdf/nt03-in.jsonld"
+ }, {
+ "@id": "#tnt04",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_all_punctuation",
+ "purpose": "literal_all_punctuation '!\"#$%&()...' from N-Triples",
+ "input": "toRdf/nt04-in.jsonld"
+ }, {
+ "@id": "#tnt05",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_squote",
+ "purpose": "literal with squote \"x'y\" from N-Triples",
+ "input": "toRdf/nt05-in.jsonld"
+ }, {
+ "@id": "#tnt06",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_2_squotes",
+ "purpose": "literal with 2 squotes \"x''y\" from N-Triples",
+ "input": "toRdf/nt06-in.jsonld"
+ }, {
+ "@id": "#tnt07",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_dquote",
+ "purpose": "literal with dquote \"x\"y\" from N-Triples",
+ "input": "toRdf/nt07-in.jsonld"
+ }, {
+ "@id": "#tnt08",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_2_dquotes",
+ "purpose": "literal with 2 dquotes \"\"\"a\"\"b\"\"\" from N-Triples",
+ "input": "toRdf/nt08-in.jsonld"
+ }, {
+ "@id": "#tnt09",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_REVERSE_SOLIDUS2",
+ "purpose": "REVERSE SOLIDUS at end of literal from N-Triples",
+ "input": "toRdf/nt09-in.jsonld"
+ }, {
+ "@id": "#tnt10",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_CHARACTER_TABULATION",
+ "purpose": "literal with CHARACTER TABULATION from N-Triples",
+ "input": "toRdf/nt10-in.jsonld"
+ }, {
+ "@id": "#tnt11",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_BACKSPACE",
+ "purpose": "literal with BACKSPACE from N-Triples",
+ "input": "toRdf/nt11-in.jsonld"
+ }, {
+ "@id": "#tnt12",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_LINE_FEED",
+ "purpose": "literal with LINE FEED from N-Triples",
+ "input": "toRdf/nt12-in.jsonld"
+ }, {
+ "@id": "#tnt13",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_CARRIAGE_RETURN",
+ "purpose": "literal with CARRIAGE RETURN from N-Triples",
+ "input": "toRdf/nt13-in.jsonld"
+ }, {
+ "@id": "#tnt14",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_FORM_FEED",
+ "purpose": "literal with FORM FEED from N-Triples",
+ "input": "toRdf/nt14-in.jsonld"
+ }, {
+ "@id": "#tnt15",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_REVERSE_SOLIDUS",
+ "purpose": "literal with REVERSE SOLIDUS from N-Triples",
+ "input": "toRdf/nt15-in.jsonld"
+ }, {
+ "@id": "#tnt16",
+ "@type": ["jld:PositiveSyntaxTest", "jld:ToRDFTest"],
+ "name": "literal_with_numeric_escape4",
+ "purpose": "literal with numeric escape4 \\u from N-Triples",
+ "input": "toRdf/nt16-in.jsonld"
+ }, {
+ "@id": "#tp001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@version may be specified after first context",
+ "purpose": "If processing mode is not set through API, it is set by the first context containing @version.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/p001-in.jsonld",
+ "expect": "toRdf/p001-out.nq"
+ }, {
+ "@id": "#tp002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@version setting [1.0, 1.1, 1.0]",
+ "purpose": "If processing mode is not set through API, it is set by the first context containing @version.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/p002-in.jsonld",
+ "expect": "toRdf/p002-out.nq"
+ }, {
+ "@id": "#tp003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@version setting [1.1, 1.0]",
+ "purpose": "If processing mode is not set through API, it is set by the first context containing @version.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/p003-in.jsonld",
+ "expect": "toRdf/p003-out.nq"
+ }, {
+ "@id": "#tp004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@version setting [1.1, 1.0, 1.1]",
+ "purpose": "If processing mode is not set through API, it is set by the first context containing @version.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/p004-in.jsonld",
+ "expect": "toRdf/p004-out.nq"
+ }, {
+ "@id": "#tpi01",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "error if @version is json-ld-1.0 for property-valued index",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1", "processingMode": "json-ld-1.0"},
+ "input": "toRdf/pi01-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tpi02",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "error if @container does not include @index for property-valued index",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pi02-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tpi03",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "error if @index is a keyword for property-valued index",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pi03-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tpi04",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "error if @index is not a string for property-valued index",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pi04-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tpi05",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "error if attempting to add property to value object for property-valued index",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pi05-in.jsonld",
+ "expectErrorCode": "invalid value object"
+ }, {
+ "@id": "#tpi06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "property-valued index expands to property value, instead of @index (value)",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pi06-in.jsonld",
+ "expect": "toRdf/pi06-out.nq"
+ }, {
+ "@id": "#tpi07",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "property-valued index appends to property value, instead of @index (value)",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pi07-in.jsonld",
+ "expect": "toRdf/pi07-out.nq"
+ }, {
+ "@id": "#tpi08",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "property-valued index expands to property value, instead of @index (node)",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pi08-in.jsonld",
+ "expect": "toRdf/pi08-out.nq"
+ }, {
+ "@id": "#tpi09",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "property-valued index appends to property value, instead of @index (node)",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pi09-in.jsonld",
+ "expect": "toRdf/pi09-out.nq"
+ }, {
+ "@id": "#tpi10",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "property-valued index does not output property for @none",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pi10-in.jsonld",
+ "expect": "toRdf/pi10-out.nq"
+ }, {
+ "@id": "#tpi11",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "property-valued index adds property to graph object",
+ "purpose": "Expanding index maps where index is a property.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pi11-in.jsonld",
+ "expect": "toRdf/pi11-out.nq"
+ }, {
+ "@id": "#tpr01",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Protect a term",
+ "purpose": "Check error when overriding a protected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr01-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Set a term to not be protected",
+ "purpose": "A term with @protected: false is not protected.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr02-in.jsonld",
+ "expect": "toRdf/pr02-out.nq"
+ }, {
+ "@id": "#tpr03",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Protect all terms in context",
+ "purpose": "A protected context protects all term definitions.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr03-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr04",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Do not protect term with @protected: false",
+ "purpose": "A protected context does not protect terms with @protected: false.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr04-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr05",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Clear active context with protected terms from an embedded context",
+ "purpose": "The Active context be set to null from an embedded context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr05-in.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Clear active context of protected terms from a term.",
+ "purpose": "The Active context may be set to null from a scoped context of a term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr06-in.jsonld",
+ "expect": "toRdf/pr06-out.nq"
+ }, {
+ "@id": "#tpr08",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Term with protected scoped context.",
+ "purpose": "A scoped context can protect terms.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr08-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr09",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Attempt to redefine term in other protected context.",
+ "purpose": "A protected term cannot redefine another protected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr09-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr10",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Simple protected and unprotected terms.",
+ "purpose": "Simple protected and unprotected terms.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr10-in.jsonld",
+ "expect": "toRdf/pr10-out.nq"
+ }, {
+ "@id": "#tpr11",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Fail to override protected term.",
+ "purpose": "Fail to override protected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr11-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr12",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Scoped context fail to override protected term.",
+ "purpose": "Scoped context fail to override protected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr12-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr13",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Override unprotected term.",
+ "purpose": "Override unprotected term.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr13-in.jsonld",
+ "expect": "toRdf/pr13-out.nq"
+ }, {
+ "@id": "#tpr14",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Clear protection with null context.",
+ "purpose": "Clear protection with null context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr14-in.jsonld",
+ "expect": "toRdf/pr14-out.nq"
+ }, {
+ "@id": "#tpr15",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Clear protection with array with null context",
+ "purpose": "Clear protection with array with null context",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr15-in.jsonld",
+ "expect": "toRdf/pr15-out.nq"
+ }, {
+ "@id": "#tpr16",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Override protected terms after null.",
+ "purpose": "Override protected terms after null.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr16-in.jsonld",
+ "expect": "toRdf/pr16-out.nq"
+ }, {
+ "@id": "#tpr17",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Fail to override protected terms with type.",
+ "purpose": "Fail to override protected terms with type.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr17-in.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr18",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Fail to override protected terms with type+null+ctx.",
+ "purpose": "Fail to override protected terms with type+null+ctx.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr18-in.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr19",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Mix of protected and unprotected terms.",
+ "purpose": "Mix of protected and unprotected terms.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr19-in.jsonld",
+ "expect": "toRdf/pr19-out.nq"
+ }, {
+ "@id": "#tpr20",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Fail with mix of protected and unprotected terms with type+null+ctx.",
+ "purpose": "Fail with mix of protected and unprotected terms with type+null+ctx.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr20-in.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr21",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Fail with mix of protected and unprotected terms with type+null.",
+ "purpose": "Fail with mix of protected and unprotected terms with type+null.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr21-in.jsonld",
+ "expectErrorCode": "invalid context nullification"
+ }, {
+ "@id": "#tpr22",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Check legal overriding of type-scoped protected term from nested node.",
+ "purpose": "Check legal overriding of type-scoped protected term from nested node.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr22-in.jsonld",
+ "expect": "toRdf/pr22-out.nq"
+ }, {
+ "@id": "#tpr23",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Allows redefinition of protected alias term with same definition.",
+ "purpose": "Allows redefinition of protected alias term with same definition.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr23-in.jsonld",
+ "expect": "toRdf/pr23-out.nq"
+ }, {
+ "@id": "#tpr24",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Allows redefinition of protected prefix term with same definition.",
+ "purpose": "Allows redefinition of protected prefix term with same definition.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr24-in.jsonld",
+ "expect": "toRdf/pr24-out.nq"
+ }, {
+ "@id": "#tpr25",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Allows redefinition of terms with scoped contexts using same definitions.",
+ "purpose": "Allows redefinition of terms with scoped contexts using same definitions.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr25-in.jsonld",
+ "expect": "toRdf/pr25-out.nq"
+ }, {
+ "@id": "#tpr26",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Fails on redefinition of terms with scoped contexts using different definitions.",
+ "purpose": "Fails on redefinition of terms with scoped contexts using different definitions.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr26-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr27",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Allows redefinition of protected alias term with same definition modulo protected flag.",
+ "purpose": "Allows redefinition of protected alias term with same definition modulo protected flag.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr27-in.jsonld",
+ "expect": "toRdf/pr27-out.nq"
+ }, {
+ "@id": "#tpr28",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Fails if trying to redefine a protected null term.",
+ "purpose": "A protected term with a null IRI mapping cannot be redefined.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr28-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr29",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Does not expand a Compact IRI using a non-prefix term.",
+ "purpose": "Expansion of Compact IRIs considers if the term can be used as a prefix.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr29-in.jsonld",
+ "expect": "toRdf/pr29-out.nq"
+ }, {
+ "@id": "#tpr30",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Keywords may be protected.",
+ "purpose": "Keywords may not be redefined other than to protect them.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr30-in.jsonld",
+ "expect": "toRdf/pr30-out.nq"
+ }, {
+ "@id": "#tpr31",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Protected keyword aliases cannot be overridden.",
+ "purpose": "Keywords may not be redefined other than to protect them.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr31-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr32",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Protected @type cannot be overridden.",
+ "purpose": "Keywords may not be redefined other than to protect them.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr32-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tpr33",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Fails if trying to declare a keyword alias as prefix.",
+ "purpose": "Keyword aliases can not be used as prefixes.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr33-in.jsonld",
+ "expectErrorCode": "invalid term definition"
+ }, {
+ "@id": "#tpr34",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ignores a non-keyword term starting with '@'",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr34-in.jsonld",
+ "expect": "toRdf/pr34-out.nq"
+ }, {
+ "@id": "#tpr35",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ignores a non-keyword term starting with '@' (with @vocab)",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr35-in.jsonld",
+ "expect": "toRdf/pr35-out.nq"
+ }, {
+ "@id": "#tpr36",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ignores a term mapping to a value in the form of a keyword.",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr36-in.jsonld",
+ "expect": "toRdf/pr36-out.nq"
+ }, {
+ "@id": "#tpr37",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ignores a term mapping to a value in the form of a keyword (with @vocab).",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr37-in.jsonld",
+ "expect": "toRdf/pr37-out.nq"
+ }, {
+ "@id": "#tpr38",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ignores a term mapping to a value in the form of a keyword (@reverse).",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr38-in.jsonld",
+ "expect": "toRdf/pr38-out.nq"
+ }, {
+ "@id": "#tpr39",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Ignores a term mapping to a value in the form of a keyword (@reverse with @vocab).",
+ "purpose": "Terms in the form of a keyword, which are not keywords, are ignored.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr39-in.jsonld",
+ "expect": "toRdf/pr39-out.nq"
+ }, {
+ "@id": "#tpr40",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Protected terms and property-scoped contexts",
+ "purpose": "Check overriding of protected term from property-scoped context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/pr40-in.jsonld",
+ "expect": "toRdf/pr40-out.nq"
+ }, {
+ "@id": "#trt01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Representing numbers >= 1e21",
+ "purpose": "numbers with no fractions but that are >= 1e21 are represented as xsd:double",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/rt01-in.jsonld",
+ "expect": "toRdf/rt01-out.nq"
+ }, {
+ "@id": "#tso01",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "@import is invalid in 1.0.",
+ "purpose": "@import is invalid in 1.0.",
+ "option": {"specVersion": "json-ld-1.1", "processingMode": "json-ld-1.0"},
+ "input": "toRdf/so01-in.jsonld",
+ "expectErrorCode": "invalid context entry"
+ }, {
+ "@id": "#tso02",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "@import must be a string",
+ "purpose": "@import must be a string.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/so02-in.jsonld",
+ "expectErrorCode": "invalid @import value"
+ }, {
+ "@id": "#tso03",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "@import overflow",
+ "purpose": "Processors must detect source contexts that include @import.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/so03-in.jsonld",
+ "expectErrorCode": "invalid context entry"
+ }, {
+ "@id": "#tso05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@propagate: true on type-scoped context with @import",
+ "purpose": "type-scoped context with @propagate: true survive node-objects (with @import)",
+ "input": "toRdf/so05-in.jsonld",
+ "expect": "toRdf/so05-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tso06",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@propagate: false on property-scoped context with @import",
+ "purpose": "property-scoped context with @propagate: false do not survive node-objects (with @import)",
+ "input": "toRdf/so06-in.jsonld",
+ "expect": "toRdf/so06-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#tso07",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Protect all terms in sourced context",
+ "purpose": "A protected context protects all term definitions.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/so07-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tso08",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Override term defined in sourced context",
+ "purpose": "The containing context is merged into the source context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/so08-in.jsonld",
+ "expect": "toRdf/so08-out.nq"
+ }, {
+ "@id": "#tso09",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Override @vocab defined in sourced context",
+ "purpose": "The containing context is merged into the source context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/so09-in.jsonld",
+ "expect": "toRdf/so09-out.nq"
+ }, {
+ "@id": "#tso10",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "Protect terms in sourced context",
+ "purpose": "The containing context is merged into the source context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/so10-in.jsonld",
+ "expectErrorCode": "protected term redefinition"
+ }, {
+ "@id": "#tso11",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Override protected terms in sourced context",
+ "purpose": "The containing context is merged into the source context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/so11-in.jsonld",
+ "expect": "toRdf/so11-out.nq"
+ }, {
+ "@id": "#tso12",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "@import may not be used in an imported context.",
+ "purpose": "@import only valid within a term definition.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/so12-in.jsonld",
+ "expectErrorCode": "invalid context entry"
+ }, {
+ "@id": "#tso13",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "@import can only reference a single context",
+ "purpose": "@import can only reference a single context.",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/so13-in.jsonld",
+ "expectErrorCode": "invalid remote context"
+ }, {
+ "@id": "#ttn01",
+ "@type": ["jld:NegativeEvaluationTest", "jld:ToRDFTest"],
+ "name": "@type: @none is illegal in 1.0.",
+ "purpose": "@type: @none is illegal in json-ld-1.0.",
+ "option": {"specVersion": "json-ld-1.1", "processingMode": "json-ld-1.0"},
+ "input": "toRdf/tn01-in.jsonld",
+ "expectErrorCode": "invalid type mapping"
+ }, {
+ "@id": "#ttn02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "@type: @none expands strings as value objects",
+ "purpose": "@type: @none leaves inputs other than strings alone",
+ "option": {"specVersion": "json-ld-1.1"},
+ "input": "toRdf/tn02-in.jsonld",
+ "expect": "toRdf/tn02-out.nq"
+ }, {
+ "@id": "#twf01",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Triples including invalid subject IRIs are rejected",
+ "purpose": "ToRdf emits only well-formed statements.",
+ "input": "toRdf/wf01-in.jsonld",
+ "expect": "toRdf/wf01-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#twf02",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Triples including invalid predicate IRIs are rejected",
+ "purpose": "ToRdf emits only well-formed statements.",
+ "input": "toRdf/wf02-in.jsonld",
+ "expect": "toRdf/wf02-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#twf03",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Triples including invalid object IRIs are rejected",
+ "purpose": "ToRdf emits only well-formed statements.",
+ "input": "toRdf/wf03-in.jsonld",
+ "expect": "toRdf/wf03-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#twf04",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Triples including invalid type IRIs are rejected",
+ "purpose": "ToRdf emits only well-formed statements.",
+ "input": "toRdf/wf04-in.jsonld",
+ "expect": "toRdf/wf04-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#twf05",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Triples including invalid language tags are rejected",
+ "purpose": "ToRdf emits only well-formed statements.",
+ "input": "toRdf/wf05-in.jsonld",
+ "expect": "toRdf/wf05-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }, {
+ "@id": "#twf07",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Triples including invalid graph name IRIs are rejected",
+ "purpose": "ToRdf emits only well-formed statements.",
+ "input": "toRdf/wf07-in.jsonld",
+ "expect": "toRdf/wf07-out.nq",
+ "option": {"specVersion": "json-ld-1.1"}
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/toRdf/0001-in.jsonld b/test/jsonld/1.1/toRdf/0001-in.jsonld
new file mode 100644
index 00000000..fc4e3810
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0001-out.nq b/test/jsonld/1.1/toRdf/0001-out.nq
new file mode 100644
index 00000000..f7238bfc
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0001-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
diff --git a/test/jsonld/1.1/toRdf/0002-in.jsonld b/test/jsonld/1.1/toRdf/0002-in.jsonld
new file mode 100644
index 00000000..bd662d13
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0002-out.nq b/test/jsonld/1.1/toRdf/0002-out.nq
new file mode 100644
index 00000000..f7238bfc
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0002-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
diff --git a/test/jsonld/1.1/toRdf/0003-in.jsonld b/test/jsonld/1.1/toRdf/0003-in.jsonld
new file mode 100644
index 00000000..7955fff4
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0003-out.nq b/test/jsonld/1.1/toRdf/0003-out.nq
new file mode 100644
index 00000000..abb5581a
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0004-in.jsonld b/test/jsonld/1.1/toRdf/0004-in.jsonld
new file mode 100644
index 00000000..31d68b86
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0004-out.nq b/test/jsonld/1.1/toRdf/0004-out.nq
new file mode 100644
index 00000000..27d42d9d
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0005-in.jsonld b/test/jsonld/1.1/toRdf/0005-in.jsonld
new file mode 100644
index 00000000..1b04c4e7
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0005-out.nq b/test/jsonld/1.1/toRdf/0005-out.nq
new file mode 100644
index 00000000..69274a94
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0006-in.jsonld b/test/jsonld/1.1/toRdf/0006-in.jsonld
new file mode 100644
index 00000000..f83b97c5
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0006-out.nq b/test/jsonld/1.1/toRdf/0006-out.nq
new file mode 100644
index 00000000..232d9928
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0007-in.jsonld b/test/jsonld/1.1/toRdf/0007-in.jsonld
new file mode 100644
index 00000000..5d2c77d9
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0007-out.nq b/test/jsonld/1.1/toRdf/0007-out.nq
new file mode 100644
index 00000000..7f647003
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0008-in.jsonld b/test/jsonld/1.1/toRdf/0008-in.jsonld
new file mode 100644
index 00000000..f767f653
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0008-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"d": "http://example.com/default#"},
+ "d:foo": "bar"
+}
diff --git a/test/jsonld/1.1/toRdf/0008-out.nq b/test/jsonld/1.1/toRdf/0008-out.nq
new file mode 100644
index 00000000..b9aed32f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0008-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/default#foo> "bar" .
diff --git a/test/jsonld/1.1/toRdf/0009-in.jsonld b/test/jsonld/1.1/toRdf/0009-in.jsonld
new file mode 100644
index 00000000..5efb8076
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0009-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": "http://example.com/default#"},
+ "foo:": "bar"
+}
diff --git a/test/jsonld/1.1/toRdf/0009-out.nq b/test/jsonld/1.1/toRdf/0009-out.nq
new file mode 100644
index 00000000..20fe7691
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0009-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/default#> "bar" .
diff --git a/test/jsonld/1.1/toRdf/0010-in.jsonld b/test/jsonld/1.1/toRdf/0010-in.jsonld
new file mode 100644
index 00000000..1ecc30b6
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0010-out.nq b/test/jsonld/1.1/toRdf/0010-out.nq
new file mode 100644
index 00000000..35c39991
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0011-in.jsonld b/test/jsonld/1.1/toRdf/0011-in.jsonld
new file mode 100644
index 00000000..853938fa
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0011-out.nq b/test/jsonld/1.1/toRdf/0011-out.nq
new file mode 100644
index 00000000..019740b5
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0012-in.jsonld b/test/jsonld/1.1/toRdf/0012-in.jsonld
new file mode 100644
index 00000000..2b326172
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0012-out.nq b/test/jsonld/1.1/toRdf/0012-out.nq
new file mode 100644
index 00000000..203fc141
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0013-in.jsonld b/test/jsonld/1.1/toRdf/0013-in.jsonld
new file mode 100644
index 00000000..d5b025d1
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0013-out.nq b/test/jsonld/1.1/toRdf/0013-out.nq
new file mode 100644
index 00000000..f334b9bd
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0014-in.jsonld b/test/jsonld/1.1/toRdf/0014-in.jsonld
new file mode 100644
index 00000000..327284f5
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0014-out.nq b/test/jsonld/1.1/toRdf/0014-out.nq
new file mode 100644
index 00000000..9a2730cc
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0015-in.jsonld b/test/jsonld/1.1/toRdf/0015-in.jsonld
new file mode 100644
index 00000000..b340db46
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0015-out.nq b/test/jsonld/1.1/toRdf/0015-out.nq
new file mode 100644
index 00000000..7bab72ef
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0016-in.jsonld b/test/jsonld/1.1/toRdf/0016-in.jsonld
new file mode 100644
index 00000000..bdd01c9b
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0016-out.nq b/test/jsonld/1.1/toRdf/0016-out.nq
new file mode 100644
index 00000000..fc3ee12a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0016-out.nq
@@ -0,0 +1 @@
+<https://w3c.github.io/json-ld-api/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/test/jsonld/1.1/toRdf/0017-in.jsonld b/test/jsonld/1.1/toRdf/0017-in.jsonld
new file mode 100644
index 00000000..7e39ca80
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0017-out.nq b/test/jsonld/1.1/toRdf/0017-out.nq
new file mode 100644
index 00000000..3c54df34
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0017-out.nq
@@ -0,0 +1 @@
+<https://w3c.github.io/json-ld-api/tests/toRdf/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/test/jsonld/1.1/toRdf/0018-in.jsonld b/test/jsonld/1.1/toRdf/0018-in.jsonld
new file mode 100644
index 00000000..64ee0c96
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0018-out.nq b/test/jsonld/1.1/toRdf/0018-out.nq
new file mode 100644
index 00000000..2a6e3ded
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0018-out.nq
@@ -0,0 +1 @@
+<https://w3c.github.io/json-ld-api/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/test/jsonld/1.1/toRdf/0019-in.jsonld b/test/jsonld/1.1/toRdf/0019-in.jsonld
new file mode 100644
index 00000000..0e0e3e3f
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0019-out.nq b/test/jsonld/1.1/toRdf/0019-out.nq
new file mode 100644
index 00000000..bbc020fc
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0020-in.jsonld b/test/jsonld/1.1/toRdf/0020-in.jsonld
new file mode 100644
index 00000000..804b2fcd
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0020-out.nq b/test/jsonld/1.1/toRdf/0020-out.nq
new file mode 100644
index 00000000..232d9928
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0022-in.jsonld b/test/jsonld/1.1/toRdf/0022-in.jsonld
new file mode 100644
index 00000000..31b76ad2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0022-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": { "measure": "http://example/measure#"},
+ "measure:cups": 5.3
+}
diff --git a/test/jsonld/1.1/toRdf/0022-out.nq b/test/jsonld/1.1/toRdf/0022-out.nq
new file mode 100644
index 00000000..31092dd7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0022-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/measure#cups> "5.3E0"^^<http://www.w3.org/2001/XMLSchema#double> .
diff --git a/test/jsonld/1.1/toRdf/0023-in.jsonld b/test/jsonld/1.1/toRdf/0023-in.jsonld
new file mode 100644
index 00000000..be260796
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0023-out.nq b/test/jsonld/1.1/toRdf/0023-out.nq
new file mode 100644
index 00000000..d5a91bd1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0023-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/chem#protons> "12"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/test/jsonld/1.1/toRdf/0024-in.jsonld b/test/jsonld/1.1/toRdf/0024-in.jsonld
new file mode 100644
index 00000000..777318ae
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0024-out.nq b/test/jsonld/1.1/toRdf/0024-out.nq
new file mode 100644
index 00000000..f0582851
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0024-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/sensor#active> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
diff --git a/test/jsonld/1.1/toRdf/0025-in.jsonld b/test/jsonld/1.1/toRdf/0025-in.jsonld
new file mode 100644
index 00000000..a00107b6
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0025-out.nq b/test/jsonld/1.1/toRdf/0025-out.nq
new file mode 100644
index 00000000..9a2730cc
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0026-in.jsonld b/test/jsonld/1.1/toRdf/0026-in.jsonld
new file mode 100644
index 00000000..bb3ba6a8
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0026-out.nq b/test/jsonld/1.1/toRdf/0026-out.nq
new file mode 100644
index 00000000..9030c08b
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0027-in.jsonld b/test/jsonld/1.1/toRdf/0027-in.jsonld
new file mode 100644
index 00000000..920dcb82
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0027-out.nq b/test/jsonld/1.1/toRdf/0027-out.nq
new file mode 100644
index 00000000..e77f2baa
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0028-in.jsonld b/test/jsonld/1.1/toRdf/0028-in.jsonld
new file mode 100644
index 00000000..3932feb8
--- /dev/null
+++ b/test/jsonld/1.1/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#",
+ "dcterms": "http://purl.org/dc/terms/",
+ "sec:signer": {"@type": "@id"},
+ "dcterms:created": {"@type": "xsd:dateTime"}
+ },
+ "@id": "http://example.org/sig1",
+ "@type": ["rdf:Graph", "sec:SignedGraph"],
+ "dcterms: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",
+ "dcterms:title": "Hello World!"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/0028-out.nq b/test/jsonld/1.1/toRdf/0028-out.nq
new file mode 100644
index 00000000..68b12ab9
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0029-in.jsonld b/test/jsonld/1.1/toRdf/0029-in.jsonld
new file mode 100644
index 00000000..4a7a16cc
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0029-out.nq b/test/jsonld/1.1/toRdf/0029-out.nq
new file mode 100644
index 00000000..b3d81238
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0030-in.jsonld b/test/jsonld/1.1/toRdf/0030-in.jsonld
new file mode 100644
index 00000000..dc9cff6b
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0030-out.nq b/test/jsonld/1.1/toRdf/0030-out.nq
new file mode 100644
index 00000000..709e7fb7
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0031-in.jsonld b/test/jsonld/1.1/toRdf/0031-in.jsonld
new file mode 100644
index 00000000..c3172323
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0031-out.nq b/test/jsonld/1.1/toRdf/0031-out.nq
new file mode 100644
index 00000000..70485565
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0032-in.jsonld b/test/jsonld/1.1/toRdf/0032-in.jsonld
new file mode 100644
index 00000000..78873bd8
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0032-out.nq b/test/jsonld/1.1/toRdf/0032-out.nq
new file mode 100644
index 00000000..119504f6
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0033-in.jsonld b/test/jsonld/1.1/toRdf/0033-in.jsonld
new file mode 100644
index 00000000..070a328f
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0033-out.nq b/test/jsonld/1.1/toRdf/0033-out.nq
new file mode 100644
index 00000000..119504f6
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0034-in.jsonld b/test/jsonld/1.1/toRdf/0034-in.jsonld
new file mode 100644
index 00000000..e6113232
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0034-out.nq b/test/jsonld/1.1/toRdf/0034-out.nq
new file mode 100644
index 00000000..119504f6
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0035-in.jsonld b/test/jsonld/1.1/toRdf/0035-in.jsonld
new file mode 100644
index 00000000..bf6a9502
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0035-out.nq b/test/jsonld/1.1/toRdf/0035-out.nq
new file mode 100644
index 00000000..cbbaaedb
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0036-in.jsonld b/test/jsonld/1.1/toRdf/0036-in.jsonld
new file mode 100644
index 00000000..0197274c
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0036-out.nq b/test/jsonld/1.1/toRdf/0036-out.nq
new file mode 100644
index 00000000..79f81425
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0113-in.jsonld b/test/jsonld/1.1/toRdf/0113-in.jsonld
new file mode 100644
index 00000000..3c337f02
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0113-out.nq b/test/jsonld/1.1/toRdf/0113-out.nq
new file mode 100644
index 00000000..a52ec902
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0113-out.nq
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o> <http://example/g> .
diff --git a/test/jsonld/1.1/toRdf/0114-in.jsonld b/test/jsonld/1.1/toRdf/0114-in.jsonld
new file mode 100644
index 00000000..9f170b51
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0114-out.nq b/test/jsonld/1.1/toRdf/0114-out.nq
new file mode 100644
index 00000000..58a2adc7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0114-out.nq
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o> _:b0 .
diff --git a/test/jsonld/1.1/toRdf/0115-in.jsonld b/test/jsonld/1.1/toRdf/0115-in.jsonld
new file mode 100644
index 00000000..c7191848
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0115-out.nq b/test/jsonld/1.1/toRdf/0115-out.nq
new file mode 100644
index 00000000..975388bf
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0116-in.jsonld b/test/jsonld/1.1/toRdf/0116-in.jsonld
new file mode 100644
index 00000000..d5749891
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0116-out.nq b/test/jsonld/1.1/toRdf/0116-out.nq
new file mode 100644
index 00000000..a7887a9f
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0117-in.jsonld b/test/jsonld/1.1/toRdf/0117-in.jsonld
new file mode 100644
index 00000000..cdd79a85
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0117-out.nq b/test/jsonld/1.1/toRdf/0117-out.nq
new file mode 100644
index 00000000..1fdb0e0e
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0118-in.jsonld b/test/jsonld/1.1/toRdf/0118-in.jsonld
new file mode 100644
index 00000000..17071294
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0118-out.nq b/test/jsonld/1.1/toRdf/0118-out.nq
new file mode 100644
index 00000000..fb03a3dd
--- /dev/null
+++ b/test/jsonld/1.1/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 <https://w3c.github.io/json-ld-api/tests/toRdf/relativeIri> .
+_:b0 _:b0 _:b0 .
+_:b0 _:b0 _:b1 .
+_:b0 _:b0 _:b2 .
+_:b0 _:b0 _:b3 .
+_:b1 _:b0 "term" .
+_:b2 _:b0 "termId" .
diff --git a/test/jsonld/1.1/toRdf/0119-in.jsonld b/test/jsonld/1.1/toRdf/0119-in.jsonld
new file mode 100644
index 00000000..088bb2ff
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0119-out.nq b/test/jsonld/1.1/toRdf/0119-out.nq
new file mode 100644
index 00000000..6fbbe3de
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0120-in.jsonld b/test/jsonld/1.1/toRdf/0120-in.jsonld
new file mode 100644
index 00000000..ad2884b9
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0120-out.nq b/test/jsonld/1.1/toRdf/0120-out.nq
new file mode 100644
index 00000000..8503e524
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0121-in.jsonld b/test/jsonld/1.1/toRdf/0121-in.jsonld
new file mode 100644
index 00000000..86a197dc
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0121-out.nq b/test/jsonld/1.1/toRdf/0121-out.nq
new file mode 100644
index 00000000..b0a0231a
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0122-in.jsonld b/test/jsonld/1.1/toRdf/0122-in.jsonld
new file mode 100644
index 00000000..f6c240c0
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0122-out.nq b/test/jsonld/1.1/toRdf/0122-out.nq
new file mode 100644
index 00000000..fd518304
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0123-in.jsonld b/test/jsonld/1.1/toRdf/0123-in.jsonld
new file mode 100644
index 00000000..006fa689
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0123-out.nq b/test/jsonld/1.1/toRdf/0123-out.nq
new file mode 100644
index 00000000..59af1ece
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0124-in.jsonld b/test/jsonld/1.1/toRdf/0124-in.jsonld
new file mode 100644
index 00000000..d75b3d8c
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0124-out.nq b/test/jsonld/1.1/toRdf/0124-out.nq
new file mode 100644
index 00000000..7a57e0e6
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0125-in.jsonld b/test/jsonld/1.1/toRdf/0125-in.jsonld
new file mode 100644
index 00000000..2e1adc8b
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0125-out.nq b/test/jsonld/1.1/toRdf/0125-out.nq
new file mode 100644
index 00000000..89a3f659
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0126-in.jsonld b/test/jsonld/1.1/toRdf/0126-in.jsonld
new file mode 100644
index 00000000..81a64571
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0126-out.nq b/test/jsonld/1.1/toRdf/0126-out.nq
new file mode 100644
index 00000000..e1fc4f36
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0127-in.jsonld b/test/jsonld/1.1/toRdf/0127-in.jsonld
new file mode 100644
index 00000000..eec91f99
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0127-out.nq b/test/jsonld/1.1/toRdf/0127-out.nq
new file mode 100644
index 00000000..65e26022
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0128-in.jsonld b/test/jsonld/1.1/toRdf/0128-in.jsonld
new file mode 100644
index 00000000..3863011f
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0128-out.nq b/test/jsonld/1.1/toRdf/0128-out.nq
new file mode 100644
index 00000000..8fc2148f
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0129-in.jsonld b/test/jsonld/1.1/toRdf/0129-in.jsonld
new file mode 100644
index 00000000..a199895e
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0129-out.nq b/test/jsonld/1.1/toRdf/0129-out.nq
new file mode 100644
index 00000000..31bce616
--- /dev/null
+++ b/test/jsonld/1.1/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/test/jsonld/1.1/toRdf/0130-in.jsonld b/test/jsonld/1.1/toRdf/0130-in.jsonld
new file mode 100644
index 00000000..bb11d1fe
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0130-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {"@base": "tag:example", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s307", "urn:ex:p": "a"}
+ ]
+}
diff --git a/test/jsonld/1.1/toRdf/0130-out.nq b/test/jsonld/1.1/toRdf/0130-out.nq
new file mode 100644
index 00000000..48c95173
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0130-out.nq
@@ -0,0 +1 @@
+<urn:ex:s307> <urn:ex:p> <tag:a> .
diff --git a/test/jsonld/1.1/toRdf/0131-in.jsonld b/test/jsonld/1.1/toRdf/0131-in.jsonld
new file mode 100644
index 00000000..86954242
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0131-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {"@base": "tag:example/foo", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s308", "urn:ex:p": "a"}
+ ]
+}
diff --git a/test/jsonld/1.1/toRdf/0131-out.nq b/test/jsonld/1.1/toRdf/0131-out.nq
new file mode 100644
index 00000000..4c420b35
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0131-out.nq
@@ -0,0 +1 @@
+<urn:ex:s308> <urn:ex:p> <tag:example/a> .
diff --git a/test/jsonld/1.1/toRdf/0132-in.jsonld b/test/jsonld/1.1/toRdf/0132-in.jsonld
new file mode 100644
index 00000000..d26b45b6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0132-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {"@base": "tag:example/foo/", "urn:ex:p": {"@type": "@id"}},
+ "@graph": [
+ {"@id": "urn:ex:s309", "urn:ex:p": "a"}
+ ]
+}
diff --git a/test/jsonld/1.1/toRdf/0132-out.nq b/test/jsonld/1.1/toRdf/0132-out.nq
new file mode 100644
index 00000000..7215f758
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/0132-out.nq
@@ -0,0 +1 @@
+<urn:ex:s309> <urn:ex:p> <tag:example/foo/a> .
diff --git a/test/jsonld/1.1/toRdf/c001-in.jsonld b/test/jsonld/1.1/toRdf/c001-in.jsonld
new file mode 100644
index 00000000..04c51209
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c001-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"bar": "http://example.org/bar"}}
+ },
+ "foo": {
+ "bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c001-out.nq b/test/jsonld/1.1/toRdf/c001-out.nq
new file mode 100644
index 00000000..52cebd55
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c001-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example/foo> _:b1 .
+_:b1 <http://example.org/bar> "baz" .
diff --git a/test/jsonld/1.1/toRdf/c002-in.jsonld b/test/jsonld/1.1/toRdf/c002-in.jsonld
new file mode 100644
index 00000000..8121cf37
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c002-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"bar": {"@type": "@id"}}},
+ "bar": {"@type": "http://www.w3.org/2001/XMLSchema#string"}
+ },
+ "foo": {
+ "bar": "http://example/baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c002-out.nq b/test/jsonld/1.1/toRdf/c002-out.nq
new file mode 100644
index 00000000..9a4e88f2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c002-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example/foo> _:b1 .
+_:b1 <http://example/bar> <http://example/baz> .
diff --git a/test/jsonld/1.1/toRdf/c003-in.jsonld b/test/jsonld/1.1/toRdf/c003-in.jsonld
new file mode 100644
index 00000000..447ded33
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c003-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"Bar": {"@id": "bar"}}}
+ },
+ "foo": {
+ "Bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c003-out.nq b/test/jsonld/1.1/toRdf/c003-out.nq
new file mode 100644
index 00000000..b68ce203
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c003-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example/foo> _:b1 .
+_:b1 <http://example/bar> "baz" .
diff --git a/test/jsonld/1.1/toRdf/c004-in.jsonld b/test/jsonld/1.1/toRdf/c004-in.jsonld
new file mode 100644
index 00000000..c9e450bf
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c004-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": {"baz": {"@type": "@vocab"}}}
+ },
+ "foo": {
+ "bar": {
+ "baz": "buzz"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c004-out.nq b/test/jsonld/1.1/toRdf/c004-out.nq
new file mode 100644
index 00000000..f7484be8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c004-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/foo> _:b1 .
+_:b1 <http://example/bar> _:b2 .
+_:b2 <http://example/baz> <http://example/buzz> .
diff --git a/test/jsonld/1.1/toRdf/c005-in.jsonld b/test/jsonld/1.1/toRdf/c005-in.jsonld
new file mode 100644
index 00000000..faab3202
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c005-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "b": {"@context": {"c": "http://example.org/c"}}
+ },
+ "a": {
+ "@context": {"@vocab": "http://example.com/"},
+ "b": {
+ "a": "A in example.com",
+ "c": "C in example.org"
+ },
+ "c": "C in example.com"
+ },
+ "c": "C in example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c005-out.nq b/test/jsonld/1.1/toRdf/c005-out.nq
new file mode 100644
index 00000000..63a80715
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c005-out.nq
@@ -0,0 +1,6 @@
+_:b0 <http://example/a> _:b1 .
+_:b0 <http://example/c> "C in example" .
+_:b1 <http://example.com/c> "C in example.com" .
+_:b1 <http://example/b> _:b2 .
+_:b2 <http://example.com/a> "A in example.com" .
+_:b2 <http://example.org/c> "C in example.org" .
diff --git a/test/jsonld/1.1/toRdf/c006-in.jsonld b/test/jsonld/1.1/toRdf/c006-in.jsonld
new file mode 100644
index 00000000..757aeaa1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c006-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"bar": "http://example.org/bar"}}
+ },
+ "a": {"@type": "Foo", "bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c006-out.nq b/test/jsonld/1.1/toRdf/c006-out.nq
new file mode 100644
index 00000000..a1c4cc96
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c006-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/a> _:b1 .
+_:b1 <http://example.org/bar> "baz" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
diff --git a/test/jsonld/1.1/toRdf/c007-in.jsonld b/test/jsonld/1.1/toRdf/c007-in.jsonld
new file mode 100644
index 00000000..05c9f1d6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c007-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"bar": {"@type": "@id"}}},
+ "bar": {"@type": "http://www.w3.org/2001/XMLSchema#string"}
+ },
+ "a": {"@type": "Foo", "bar": "http://example/baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c007-out.nq b/test/jsonld/1.1/toRdf/c007-out.nq
new file mode 100644
index 00000000..7ac268cb
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c007-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/a> _:b1 .
+_:b1 <http://example/bar> <http://example/baz> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
diff --git a/test/jsonld/1.1/toRdf/c008-in.jsonld b/test/jsonld/1.1/toRdf/c008-in.jsonld
new file mode 100644
index 00000000..e0b472b1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c008-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "type": "@type",
+ "Foo": {"@context": {"bar": "http://example.org/bar"}}
+ },
+ "a": {"type": "Foo", "bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c008-out.nq b/test/jsonld/1.1/toRdf/c008-out.nq
new file mode 100644
index 00000000..a1c4cc96
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c008-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/a> _:b1 .
+_:b1 <http://example.org/bar> "baz" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
diff --git a/test/jsonld/1.1/toRdf/c009-in.jsonld b/test/jsonld/1.1/toRdf/c009-in.jsonld
new file mode 100644
index 00000000..c2b6d110
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c009-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {"@context": {"baz": {"@type": "@vocab"}}}
+ },
+ "@type": "Foo",
+ "bar": {"baz": "buzz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c009-out.nq b/test/jsonld/1.1/toRdf/c009-out.nq
new file mode 100644
index 00000000..e2237f34
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c009-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/bar> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
+_:b1 <http://example/baz> "buzz" .
diff --git a/test/jsonld/1.1/toRdf/c010-in.jsonld b/test/jsonld/1.1/toRdf/c010-in.jsonld
new file mode 100644
index 00000000..809997b5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c010-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "B": {"@context": {"c": "http://example.org/c"}}
+ },
+ "a": {
+ "@context": {"@vocab": "http://example.com/"},
+ "@type": "B",
+ "a": "A in example.com",
+ "c": "C in example.org"
+ },
+ "c": "C in example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c010-out.nq b/test/jsonld/1.1/toRdf/c010-out.nq
new file mode 100644
index 00000000..8ef7c1be
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c010-out.nq
@@ -0,0 +1,5 @@
+_:b0 <http://example/a> _:b1 .
+_:b0 <http://example/c> "C in example" .
+_:b1 <http://example.org/c> "C in example.org" .
+_:b1 <http://example.com/a> "A in example.com" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/B> .
diff --git a/test/jsonld/1.1/toRdf/c011-in.jsonld b/test/jsonld/1.1/toRdf/c011-in.jsonld
new file mode 100644
index 00000000..c57c55eb
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c011-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "t1": {"@context": {"foo": {"@id": "http://example.com/foo"}}},
+ "t2": {"@context": {"foo": {"@id": "http://example.org/foo", "@type": "@id"}}}
+ },
+ "@type": ["t2", "t1"],
+ "foo": "urn:bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c011-out.nq b/test/jsonld/1.1/toRdf/c011-out.nq
new file mode 100644
index 00000000..93a9513f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c011-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/t2> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/t1> .
+_:b0 <http://example.org/foo> <urn:bar> .
diff --git a/test/jsonld/1.1/toRdf/c012-in.jsonld b/test/jsonld/1.1/toRdf/c012-in.jsonld
new file mode 100644
index 00000000..bba1c9bf
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c012-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Foo": {
+ "@context": {
+ "bar": {
+ "@context": {
+ "baz": {"@type": "@vocab"}
+ }
+ }
+ }
+ }
+ },
+ "@type": "Foo",
+ "bar": {"baz": "buzz"}
+}
diff --git a/test/jsonld/1.1/toRdf/c012-out.nq b/test/jsonld/1.1/toRdf/c012-out.nq
new file mode 100644
index 00000000..ec730377
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c012-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/bar> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
+_:b1 <http://example/baz> <http://example/buzz> .
diff --git a/test/jsonld/1.1/toRdf/c013-in.jsonld b/test/jsonld/1.1/toRdf/c013-in.jsonld
new file mode 100644
index 00000000..63c4a0c5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c013-in.jsonld
@@ -0,0 +1,28 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "prop": {"@container": "@index"},
+ "foo": "http://example/base-foo",
+ "Outer": {
+ "@context": {
+ "prop": {
+ "@id": "http://example/outer-prop",
+ "@container": "@type"
+ }
+ }
+ },
+ "Inner": {"@context": {"foo": "http://example/inner-foo"}}
+ },
+ "@type": "Outer",
+ "prop": {
+ "Inner": {
+ "prop": {
+ "index": {
+ "@id": "http://example/inner-with-index",
+ "foo": "inner-foo"
+ }
+ }
+ }
+ },
+ "foo": "base-foo"
+}
diff --git a/test/jsonld/1.1/toRdf/c013-out.nq b/test/jsonld/1.1/toRdf/c013-out.nq
new file mode 100644
index 00000000..0a86292e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c013-out.nq
@@ -0,0 +1,6 @@
+_:b0 <http://example/base-foo> "base-foo" .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Outer> .
+_:b0 <http://example/outer-prop> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Inner> .
+_:b1 <http://example/prop> <http://example/inner-with-index> .
+<http://example/inner-with-index> <http://example/inner-foo> "inner-foo" .
diff --git a/test/jsonld/1.1/toRdf/c014-in.jsonld b/test/jsonld/1.1/toRdf/c014-in.jsonld
new file mode 100644
index 00000000..d89e3012
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c014-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": "http://example/foo",
+ "Type": {
+ "@context": [
+ null
+ ]
+ }
+ },
+ "foo": "will-exist",
+ "p": {
+ "@type": "Type",
+ "foo": "will-not-exist"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c014-out.nq b/test/jsonld/1.1/toRdf/c014-out.nq
new file mode 100644
index 00000000..f1775eca
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c014-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/foo> "will-exist" .
+_:b0 <http://example/p> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Type> .
diff --git a/test/jsonld/1.1/toRdf/c015-in.jsonld b/test/jsonld/1.1/toRdf/c015-in.jsonld
new file mode 100644
index 00000000..83bb63d5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c015-in.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": {
+ "@base": "http://example/base-base",
+ "@vocab": "http://example/",
+ "foo": "http://example/foo",
+ "Type": {
+ "@context": {
+ "@base": "http://example/typed-base"
+ }
+ }
+ },
+ "@id": "#base-id",
+ "p": {
+ "@id": "#typed-id",
+ "@type": "Type",
+ "subjectReference": {
+ "@id": "#subject-reference-id"
+ },
+ "nestedNode": {
+ "@id": "#nested-id",
+ "foo": "bar"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c015-out.nq b/test/jsonld/1.1/toRdf/c015-out.nq
new file mode 100644
index 00000000..b631564e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c015-out.nq
@@ -0,0 +1,5 @@
+<http://example/base-base#base-id> <http://example/p> <http://example/typed-base#typed-id> .
+<http://example/base-base#nested-id> <http://example/foo> "bar" .
+<http://example/typed-base#typed-id> <http://example/subjectReference> <http://example/typed-base#subject-reference-id> .
+<http://example/typed-base#typed-id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Type> .
+<http://example/typed-base#typed-id> <http://example/nestedNode> <http://example/base-base#nested-id> .
diff --git a/test/jsonld/1.1/toRdf/c016-in.jsonld b/test/jsonld/1.1/toRdf/c016-in.jsonld
new file mode 100644
index 00000000..2f1186ff
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c016-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "Type": {
+ "@context": {
+ "@vocab": "http://example.com/"
+ }
+ }
+ },
+ "foo": "org",
+ "p": {
+ "@type": "Type",
+ "foo": "com",
+ "nested": {
+ "nested-prop": "org"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c016-out.nq b/test/jsonld/1.1/toRdf/c016-out.nq
new file mode 100644
index 00000000..5304e7f0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c016-out.nq
@@ -0,0 +1,6 @@
+_:b0 <http://example.org/p> _:b1 .
+_:b0 <http://example.org/foo> "org" .
+_:b1 <http://example.com/foo> "com" .
+_:b1 <http://example.com/nested> _:b2 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/Type> .
+_:b2 <http://example.org/nested-prop> "org" .
diff --git a/test/jsonld/1.1/toRdf/c017-in.jsonld b/test/jsonld/1.1/toRdf/c017-in.jsonld
new file mode 100644
index 00000000..be32133c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c017-in.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Bar": {
+ "@context": [
+ {
+ "prop": "http://example/bar-prop"
+ }
+ ]
+ },
+ "Foo": {
+ "@context": [
+ {
+ "prop": "http://example/foo-prop"
+ }
+ ]
+ }
+ },
+ "@type": ["Foo", "Bar"],
+ "prop": "foo",
+ "nested": {
+ "prop": "vocab"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c017-out.nq b/test/jsonld/1.1/toRdf/c017-out.nq
new file mode 100644
index 00000000..24bcd3ec
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c017-out.nq
@@ -0,0 +1,5 @@
+_:b0 <http://example/foo-prop> "foo" .
+_:b0 <http://example/nested> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Bar> .
+_:b1 <http://example/prop> "vocab" .
diff --git a/test/jsonld/1.1/toRdf/c018-in.jsonld b/test/jsonld/1.1/toRdf/c018-in.jsonld
new file mode 100644
index 00000000..b8fbd43d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c018-in.jsonld
@@ -0,0 +1,26 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "Bar": {
+ "@context": [
+ null,
+ {
+ "prop": "http://example/bar-prop"
+ }
+ ]
+ },
+ "Foo": {
+ "@context": [
+ null,
+ {
+ "prop": "http://example/foo-prop"
+ }
+ ]
+ }
+ },
+ "@type": ["Foo", "Bar"],
+ "prop": "foo",
+ "nested": {
+ "prop": "will-not-exist"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c018-out.nq b/test/jsonld/1.1/toRdf/c018-out.nq
new file mode 100644
index 00000000..910fe997
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c018-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/foo-prop> "foo" .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Bar> .
diff --git a/test/jsonld/1.1/toRdf/c019-in.jsonld b/test/jsonld/1.1/toRdf/c019-in.jsonld
new file mode 100644
index 00000000..418c9cbe
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c019-in.jsonld
@@ -0,0 +1,30 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "prop": "http://example/base-prop",
+ "Type": {
+ "@context": {
+ "foo": {
+ "@context": {
+ "prop": "http://example/foo-prop"
+ }
+ },
+ "bar": {
+ "@context": {
+ "prop": "http://example/bar-prop"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Type",
+ "foo": {
+ "prop": "foo"
+ },
+ "bar": {
+ "prop": "bar"
+ },
+ "baz": {
+ "prop": "baz"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c019-out.nq b/test/jsonld/1.1/toRdf/c019-out.nq
new file mode 100644
index 00000000..74a45579
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c019-out.nq
@@ -0,0 +1,7 @@
+_:b0 <http://example/bar> _:b2 .
+_:b0 <http://example/baz> _:b3 .
+_:b0 <http://example/foo> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Type> .
+_:b1 <http://example/foo-prop> "foo" .
+_:b2 <http://example/bar-prop> "bar" .
+_:b3 <http://example/base-prop> "baz" .
diff --git a/test/jsonld/1.1/toRdf/c020-in.jsonld b/test/jsonld/1.1/toRdf/c020-in.jsonld
new file mode 100644
index 00000000..e504c397
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c020-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "type": "@type",
+ "Type": {
+ "@context": {
+ "value": "@value"
+ }
+ }
+ },
+ "type": "Type",
+ "v": {
+ "value": "value",
+ "type": "value-type"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c020-out.nq b/test/jsonld/1.1/toRdf/c020-out.nq
new file mode 100644
index 00000000..097fbe8f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c020-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Type> .
+_:b0 <http://example/v> "value"^^<http://example/value-type> .
diff --git a/test/jsonld/1.1/toRdf/c021-in.jsonld b/test/jsonld/1.1/toRdf/c021-in.jsonld
new file mode 100644
index 00000000..99d78bee
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c021-in.jsonld
@@ -0,0 +1,34 @@
+{
+ "@context": {
+ "@vocab": "ex:",
+ "type": "@type",
+ "prop": "ex:untyped",
+ "Type": {
+ "@context": {
+ "prop": "ex:typed",
+ "value": "@value"
+ }
+ }
+ },
+ "prop": {
+ "type": "Type",
+ "prop": [
+ "v1",
+ {
+ "value": "v2"
+ },
+ {
+ "@value": "v3"
+ },
+ {
+ "prop": [
+ "v4",
+ {
+ "type": "Type",
+ "prop": "v5"
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c021-out.nq b/test/jsonld/1.1/toRdf/c021-out.nq
new file mode 100644
index 00000000..3107d548
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c021-out.nq
@@ -0,0 +1,10 @@
+_:b0 <ex:untyped> _:b1 .
+_:b2 <ex:untyped> "v4" .
+_:b2 <ex:untyped> _:b3 .
+_:b1 <ex:typed> _:b2 .
+_:b1 <ex:typed> "v1" .
+_:b1 <ex:typed> "v2" .
+_:b1 <ex:typed> "v3" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <ex:Type> .
+_:b3 <ex:typed> "v5" .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <ex:Type> .
diff --git a/test/jsonld/1.1/toRdf/c022-in.jsonld b/test/jsonld/1.1/toRdf/c022-in.jsonld
new file mode 100644
index 00000000..c5ef4a2e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c022-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "@vocab": "ex:",
+ "Type": {
+ "@context": {
+ "foo": {
+ "@id": "ex:foo",
+ "@type": "@vocab",
+ "@context": {
+ "@version": 1.1,
+ "Foo": "ex:Foo",
+ "Bar": "ex:Bar"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Type",
+ "foo": "Bar"
+}
diff --git a/test/jsonld/1.1/toRdf/c022-out.nq b/test/jsonld/1.1/toRdf/c022-out.nq
new file mode 100644
index 00000000..3400d2f1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c022-out.nq
@@ -0,0 +1,2 @@
+_:b0 <ex:foo> <ex:Bar> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <ex:Type> .
diff --git a/test/jsonld/1.1/toRdf/c023-in.jsonld b/test/jsonld/1.1/toRdf/c023-in.jsonld
new file mode 100644
index 00000000..94272f95
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c023-in.jsonld
@@ -0,0 +1,29 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": "ex:nested"
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "@version": 1.1,
+ "foo": {
+ "@id": "ex:foo",
+ "@type": "@vocab",
+ "@context": {
+ "Foo": "ex:Foo"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Outer",
+ "nested": {
+ "@type": "Inner",
+ "foo": "Foo"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c023-out.nq b/test/jsonld/1.1/toRdf/c023-out.nq
new file mode 100644
index 00000000..02d58abd
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c023-out.nq
@@ -0,0 +1,4 @@
+_:b0 <ex:nested> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <ex:Outer> .
+_:b1 <ex:foo> <ex:Foo> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <ex:Inner> .
diff --git a/test/jsonld/1.1/toRdf/c024-in.jsonld b/test/jsonld/1.1/toRdf/c024-in.jsonld
new file mode 100644
index 00000000..d647c554
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c024-in.jsonld
@@ -0,0 +1,39 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": "ex:nested"
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "@version": 1.1,
+ "foo": {
+ "@id": "ex:foo",
+ "@container": "@set",
+ "@type": "ex:Number",
+ "@context": {
+ "value": "@value"
+ }
+ },
+ "bar": {
+ "@id": "ex:bar",
+ "@container": "@set",
+ "@type": "@id",
+ "@context": {
+ "@base": "http://example/"
+ }
+ }
+ }
+ }
+ },
+ "@type": "Outer",
+ "nested": {
+ "@type": "Inner",
+ "foo": [{"value": "1"}, "2"],
+ "bar": [{"@id": "a"}, "b"]
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c024-out.nq b/test/jsonld/1.1/toRdf/c024-out.nq
new file mode 100644
index 00000000..6082ca4c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c024-out.nq
@@ -0,0 +1,7 @@
+_:b0 <ex:nested> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <ex:Outer> .
+_:b1 <ex:foo> "2"^^<ex:Number> .
+_:b1 <ex:foo> "1" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <ex:Inner> .
+_:b1 <ex:bar> <http://example/b> .
+_:b1 <ex:bar> <http://example/a> .
diff --git a/test/jsonld/1.1/toRdf/c025-in.jsonld b/test/jsonld/1.1/toRdf/c025-in.jsonld
new file mode 100644
index 00000000..aa9b1fc7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c025-in.jsonld
@@ -0,0 +1,27 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "type": "@type",
+ "Outer": {
+ "@id": "ex:Outer",
+ "@context": {
+ "nested": {
+ "@id": "ex:nested",
+ "@type": "@id",
+ "@container": "@graph"
+ }
+ }
+ },
+ "Inner": {
+ "@id": "ex:Inner",
+ "@context": {
+ "foo": "ex:foo"
+ }
+ }
+ },
+ "type": "Outer",
+ "nested": {
+ "type": "Inner",
+ "foo": "bar"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c025-out.nq b/test/jsonld/1.1/toRdf/c025-out.nq
new file mode 100644
index 00000000..66c5eea1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c025-out.nq
@@ -0,0 +1,4 @@
+_:b0 <ex:nested> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <ex:Outer> .
+_:b2 <ex:foo> "bar" _:b1 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <ex:Inner> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/c026-in.jsonld b/test/jsonld/1.1/toRdf/c026-in.jsonld
new file mode 100644
index 00000000..09f08030
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c026-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "Foo": {
+ "@context": {
+ "@propagate": true,
+ "baz": {"@type": "@vocab"}
+ }
+ }
+ },
+ "@type": "Foo",
+ "bar": {"baz": "buzz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c026-out.nq b/test/jsonld/1.1/toRdf/c026-out.nq
new file mode 100644
index 00000000..ec730377
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c026-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/bar> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
+_:b1 <http://example/baz> <http://example/buzz> .
diff --git a/test/jsonld/1.1/toRdf/c027-in.jsonld b/test/jsonld/1.1/toRdf/c027-in.jsonld
new file mode 100644
index 00000000..7937a8ee
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c027-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "bar": {
+ "@context": {
+ "@propagate": false,
+ "baz": {"@type": "@id"}
+ }
+ }
+ },
+ "bar": {"baz": {"baz": "buzz"}}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c027-out.nq b/test/jsonld/1.1/toRdf/c027-out.nq
new file mode 100644
index 00000000..8f63b2f7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c027-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/bar> _:b1 .
+_:b1 <http://example/baz> _:b2 .
+_:b2 <http://example/baz> "buzz" .
diff --git a/test/jsonld/1.1/toRdf/c028-in.jsonld b/test/jsonld/1.1/toRdf/c028-in.jsonld
new file mode 100644
index 00000000..87792cd0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c028-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/"
+ },
+ "bar": {
+ "@context": {
+ "@propagate": false,
+ "baz": {"@type": "@vocab"}
+ },
+ "baz": {
+ "baz": "buzz"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c028-out.nq b/test/jsonld/1.1/toRdf/c028-out.nq
new file mode 100644
index 00000000..8f63b2f7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c028-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example/bar> _:b1 .
+_:b1 <http://example/baz> _:b2 .
+_:b2 <http://example/baz> "buzz" .
diff --git a/test/jsonld/1.1/toRdf/c029-in.jsonld b/test/jsonld/1.1/toRdf/c029-in.jsonld
new file mode 100644
index 00000000..cb000cf4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c029-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@propagate": true
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c030-in.jsonld b/test/jsonld/1.1/toRdf/c030-in.jsonld
new file mode 100644
index 00000000..39d91a17
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c030-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@propagate": "not boolean"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c031-context.jsonld b/test/jsonld/1.1/toRdf/c031-context.jsonld
new file mode 100644
index 00000000..edd71cce
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c031-context.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.org/c/",
+ "inner": {
+ "@id": "http://a.example/in"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c031-in.jsonld b/test/jsonld/1.1/toRdf/c031-in.jsonld
new file mode 100644
index 00000000..82d462c8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c031-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": [
+ {"@base": "http://example.org/a/"},
+ "c031/c031-context.jsonld"
+ ],
+ "outer": {
+ "inner": "ab"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c031-out.nq b/test/jsonld/1.1/toRdf/c031-out.nq
new file mode 100644
index 00000000..3467018f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c031-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://a.example/out> _:b1 .
+_:b1 <http://a.example/in> "ab" .
diff --git a/test/jsonld/1.1/toRdf/c031/c031-context.jsonld b/test/jsonld/1.1/toRdf/c031/c031-context.jsonld
new file mode 100644
index 00000000..f1bf22b1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c031/c031-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.org/b/",
+ "outer": {
+ "@id": "http://a.example/out",
+ "@context": "../c031-context.jsonld"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c032-in.jsonld b/test/jsonld/1.1/toRdf/c032-in.jsonld
new file mode 100644
index 00000000..48b812f9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c032-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "t1": {
+ "@id": "ex:t1",
+ "@context": {
+ "t2": {
+ "@context": {"type": null}
+ }
+ }
+ }
+ },
+ "t1": "something"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c033-in.jsonld b/test/jsonld/1.1/toRdf/c033-in.jsonld
new file mode 100644
index 00000000..3628ff4e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c033-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "t1": {
+ "@id": "ex:t1",
+ "@context": {
+ "t2": {
+ "@context": {"type": null}
+ }
+ }
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c034-context.jsonld b/test/jsonld/1.1/toRdf/c034-context.jsonld
new file mode 100644
index 00000000..7dd9f871
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c034-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "bar": "http://example.org/bar"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c034-in.jsonld b/test/jsonld/1.1/toRdf/c034-in.jsonld
new file mode 100644
index 00000000..6655d520
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c034-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "foo": {"@context": "c034-context.jsonld"}
+ },
+ "foo": {
+ "bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c034-out.nq b/test/jsonld/1.1/toRdf/c034-out.nq
new file mode 100644
index 00000000..52cebd55
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c034-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example/foo> _:b1 .
+_:b1 <http://example.org/bar> "baz" .
diff --git a/test/jsonld/1.1/toRdf/c035-in.jsonld b/test/jsonld/1.1/toRdf/c035-in.jsonld
new file mode 100644
index 00000000..f436b93e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c035-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://vocab.org/",
+ "prop1": {}
+ },
+ "@id": "ex:outer",
+ "foo": {
+ "@context": {
+ "@vocab": "http://vocab.override.org/"
+ },
+ "@id": "ex:inner",
+ "prop1": "baz1",
+ "prop2": "baz2"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/c035-out.nq b/test/jsonld/1.1/toRdf/c035-out.nq
new file mode 100644
index 00000000..f9d205ce
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c035-out.nq
@@ -0,0 +1,3 @@
+<ex:inner> <http://vocab.org/prop1> "baz1" .
+<ex:inner> <http://vocab.override.org/prop2> "baz2" .
+<ex:outer> <http://vocab.org/foo> <ex:inner> .
diff --git a/test/jsonld/1.1/toRdf/c036-in.jsonld b/test/jsonld/1.1/toRdf/c036-in.jsonld
new file mode 100644
index 00000000..0248eef4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c036-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "thing": {
+ "@id": "ex:thing",
+ "@context": {}
+ },
+ "title": "ex:title"
+ },
+ "title": "top",
+ "thing": {
+ "title": "sub"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c036-out.nq b/test/jsonld/1.1/toRdf/c036-out.nq
new file mode 100644
index 00000000..6868c49c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c036-out.nq
@@ -0,0 +1,3 @@
+_:b0 <ex:thing> _:b1 .
+_:b0 <ex:title> "top" .
+_:b1 <ex:title> "sub" .
diff --git a/test/jsonld/1.1/toRdf/c037-in.jsonld b/test/jsonld/1.1/toRdf/c037-in.jsonld
new file mode 100644
index 00000000..462376b2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c037-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "nest": {
+ "@id": "@nest",
+ "@context": {
+ "@vocab": "http://example.org/nest/"
+ }
+ }
+ },
+ "nest": {
+ "property": "should be in /nest"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c037-out.nq b/test/jsonld/1.1/toRdf/c037-out.nq
new file mode 100644
index 00000000..65154d5c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c037-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/nest/property> "should be in /nest" .
diff --git a/test/jsonld/1.1/toRdf/c038-in.jsonld b/test/jsonld/1.1/toRdf/c038-in.jsonld
new file mode 100644
index 00000000..efc96236
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c038-in.jsonld
@@ -0,0 +1,54 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.org/base/",
+ "@vocab": "http://purl.org/dc/terms/",
+ "bibo": "http://purl.org/ontology/bibo/",
+ "Print": "bibo:Book",
+ "name": "http://www.w3.org/2000/01/rdf-schema#label",
+ "instanceOf": "@nest",
+ "contributionByRole": {
+ "@id": "@nest",
+ "@context": {
+ "agent": "@nest",
+ "aut": "creator"
+ }
+ },
+ "provisionActivityByType": {
+ "@id": "@nest",
+ "@context": {
+ "Publication": {
+ "@id": "@nest",
+ "@context": {"date": "published", "agent": "publisher"}
+ }
+ }
+ },
+ "identifiedByType": {
+ "@id": "@nest",
+ "@context": {
+ "Isbn": {"@id": "@nest"},
+ "value": "bibo:isbn"
+ }
+ }
+ },
+ "@id": "book/one",
+ "@type": "Print",
+ "instanceOf": {
+ "contributionByRole": {
+ "aut": {
+ "agent": {"name": "Some Body"}
+ }
+ }
+ },
+ "identifiedByType": {
+ "Isbn": {
+ "value": "1234567890"
+ }
+ },
+ "provisionActivityByType": {
+ "Publication": {
+ "date": "1999",
+ "agent": {"name": "PubCorp"}
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/c038-out.nq b/test/jsonld/1.1/toRdf/c038-out.nq
new file mode 100644
index 00000000..7b2c1d5d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/c038-out.nq
@@ -0,0 +1,7 @@
+<http://example.org/base/book/one> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/ontology/bibo/Book> .
+<http://example.org/base/book/one> <http://purl.org/dc/terms/published> "1999" .
+<http://example.org/base/book/one> <http://purl.org/ontology/bibo/isbn> "1234567890" .
+<http://example.org/base/book/one> <http://purl.org/dc/terms/creator> _:b0 .
+<http://example.org/base/book/one> <http://purl.org/dc/terms/publisher> _:b1 .
+_:b0 <http://www.w3.org/2000/01/rdf-schema#label> "Some Body" .
+_:b1 <http://www.w3.org/2000/01/rdf-schema#label> "PubCorp" .
diff --git a/test/jsonld/1.1/toRdf/di01-in.jsonld b/test/jsonld/1.1/toRdf/di01-in.jsonld
new file mode 100644
index 00000000..ae8217d3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di01-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@direction": "rtl",
+ "ex": "http://example.org/vocab#",
+ "ex:ltr": { "@direction": "ltr" },
+ "ex:none": { "@direction": null }
+ },
+ "ex:rtl": "rtl",
+ "ex:ltr": "ltr",
+ "ex:none": "no direction"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di01-out.nq b/test/jsonld/1.1/toRdf/di01-out.nq
new file mode 100644
index 00000000..3e213740
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di01-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.org/vocab#ltr> "ltr" .
+_:b0 <http://example.org/vocab#rtl> "rtl" .
+_:b0 <http://example.org/vocab#none> "no direction" .
diff --git a/test/jsonld/1.1/toRdf/di02-in.jsonld b/test/jsonld/1.1/toRdf/di02-in.jsonld
new file mode 100644
index 00000000..379362f5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di02-in.jsonld
@@ -0,0 +1,25 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@language": "en",
+ "@direction": "rtl",
+ "ex": "http://example.org/vocab#",
+ "ex:ltr": { "@direction": "ltr" },
+ "ex:none": { "@direction": null },
+ "ex:german": { "@language": "de" },
+ "ex:nolang": { "@language": null },
+ "ex:german_ltr": { "@language": "de", "@direction": "ltr" },
+ "ex:nolang_ltr": { "@language": null, "@direction": "ltr" },
+ "ex:none_none": { "@language": null, "@direction": null },
+ "ex:german_none": { "@language": "de", "@direction": null }
+ },
+ "ex:rtl": "rtl en",
+ "ex:ltr": "ltr en",
+ "ex:none": "no direction en",
+ "ex:german": "german rtl",
+ "ex:nolang": "no language rtl",
+ "ex:german_ltr": "german ltr",
+ "ex:nolang_ltr": "no language ltr",
+ "ex:none_none": "no language or direction",
+ "ex:german_none": "german no direction"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di02-out.nq b/test/jsonld/1.1/toRdf/di02-out.nq
new file mode 100644
index 00000000..1d647d91
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di02-out.nq
@@ -0,0 +1,9 @@
+_:b0 <http://example.org/vocab#german_ltr> "german ltr"@de .
+_:b0 <http://example.org/vocab#ltr> "ltr en"@en .
+_:b0 <http://example.org/vocab#german_none> "german no direction"@de .
+_:b0 <http://example.org/vocab#nolang> "no language rtl" .
+_:b0 <http://example.org/vocab#nolang_ltr> "no language ltr" .
+_:b0 <http://example.org/vocab#rtl> "rtl en"@en .
+_:b0 <http://example.org/vocab#none_none> "no language or direction" .
+_:b0 <http://example.org/vocab#german> "german rtl"@de .
+_:b0 <http://example.org/vocab#none> "no direction en"@en .
diff --git a/test/jsonld/1.1/toRdf/di03-in.jsonld b/test/jsonld/1.1/toRdf/di03-in.jsonld
new file mode 100644
index 00000000..22ca2005
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di03-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "foo_ltr": {"@id": "http://example.com/foo", "@container": "@list", "@direction": "ltr"},
+ "foo_rtl": {"@id": "http://example.com/foo", "@container": "@list", "@direction": "rtl"}
+ },
+ "foo_ltr": ["en"],
+ "foo_rtl": ["ar"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di03-out.nq b/test/jsonld/1.1/toRdf/di03-out.nq
new file mode 100644
index 00000000..29f295f0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di03-out.nq
@@ -0,0 +1,6 @@
+_:b2 <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> "ar" .
+_:b0 <http://example.com/foo> _:b2 .
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <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> "en" .
diff --git a/test/jsonld/1.1/toRdf/di04-in.jsonld b/test/jsonld/1.1/toRdf/di04-in.jsonld
new file mode 100644
index 00000000..b1cf3f4a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di04-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@direction": "ltr",
+ "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" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di04-out.nq b/test/jsonld/1.1/toRdf/di04-out.nq
new file mode 100644
index 00000000..b2e176c4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di04-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen"@en .
+<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 .
diff --git a/test/jsonld/1.1/toRdf/di05-in.jsonld b/test/jsonld/1.1/toRdf/di05-in.jsonld
new file mode 100644
index 00000000..a61d6a93
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di05-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": "ltr",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di05-out.nq b/test/jsonld/1.1/toRdf/di05-out.nq
new file mode 100644
index 00000000..b2e176c4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di05-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen"@en .
+<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 .
diff --git a/test/jsonld/1.1/toRdf/di06-in.jsonld b/test/jsonld/1.1/toRdf/di06-in.jsonld
new file mode 100644
index 00000000..f8a69db9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di06-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "vocab": "http://example.com/vocab/",
+ "@direction": "rtl",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": "ltr",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di06-out.nq b/test/jsonld/1.1/toRdf/di06-out.nq
new file mode 100644
index 00000000..b2e176c4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di06-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen"@en .
+<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 .
diff --git a/test/jsonld/1.1/toRdf/di07-in.jsonld b/test/jsonld/1.1/toRdf/di07-in.jsonld
new file mode 100644
index 00000000..23e90ddd
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di07-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "vocab": "http://example.com/vocab/",
+ "@direction": "rtl",
+ "label": {
+ "@id": "vocab:label",
+ "@direction": null,
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di07-out.nq b/test/jsonld/1.1/toRdf/di07-out.nq
new file mode 100644
index 00000000..b2e176c4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di07-out.nq
@@ -0,0 +1,3 @@
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen"@en .
+<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 .
diff --git a/test/jsonld/1.1/toRdf/di08-in.jsonld b/test/jsonld/1.1/toRdf/di08-in.jsonld
new file mode 100644
index 00000000..de8e61c7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di08-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@direction": "foo"
+ },
+ "vocab:term": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di09-in.jsonld b/test/jsonld/1.1/toRdf/di09-in.jsonld
new file mode 100644
index 00000000..c00231e6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di09-in.jsonld
@@ -0,0 +1 @@
+{"http://example.org/label": {"@value": "no language", "@direction": "rtl"}} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di09-out.nq b/test/jsonld/1.1/toRdf/di09-out.nq
new file mode 100644
index 00000000..0a7014bd
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di09-out.nq
@@ -0,0 +1 @@
+_:a <http://example.org/label> "no language"^^<https://www.w3.org/ns/i18n#_rtl> .
diff --git a/test/jsonld/1.1/toRdf/di10-in.jsonld b/test/jsonld/1.1/toRdf/di10-in.jsonld
new file mode 100644
index 00000000..9b887109
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di10-in.jsonld
@@ -0,0 +1 @@
+{"http://example.org/label": {"@value": "en-US", "@language": "en-US", "@direction": "rtl"}} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di10-out.nq b/test/jsonld/1.1/toRdf/di10-out.nq
new file mode 100644
index 00000000..4fbce018
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di10-out.nq
@@ -0,0 +1 @@
+_:a <http://example.org/label> "en-US"^^<https://www.w3.org/ns/i18n#en-us_rtl> .
diff --git a/test/jsonld/1.1/toRdf/di11-in.jsonld b/test/jsonld/1.1/toRdf/di11-in.jsonld
new file mode 100644
index 00000000..c00231e6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di11-in.jsonld
@@ -0,0 +1 @@
+{"http://example.org/label": {"@value": "no language", "@direction": "rtl"}} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di11-out.nq b/test/jsonld/1.1/toRdf/di11-out.nq
new file mode 100644
index 00000000..4a82ddb6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di11-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.org/label> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#direction> "rtl" .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "no language" .
diff --git a/test/jsonld/1.1/toRdf/di12-in.jsonld b/test/jsonld/1.1/toRdf/di12-in.jsonld
new file mode 100644
index 00000000..9b887109
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di12-in.jsonld
@@ -0,0 +1 @@
+{"http://example.org/label": {"@value": "en-US", "@language": "en-US", "@direction": "rtl"}} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/di12-out.nq b/test/jsonld/1.1/toRdf/di12-out.nq
new file mode 100644
index 00000000..24293392
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/di12-out.nq
@@ -0,0 +1,4 @@
+_:b0 <http://example.org/label> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#direction> "rtl" .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#language> "en-us" .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "en-US" .
diff --git a/test/jsonld/1.1/toRdf/e001-in.jsonld b/test/jsonld/1.1/toRdf/e001-in.jsonld
new file mode 100644
index 00000000..0bfd26f0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e001-in.jsonld
@@ -0,0 +1 @@
+{"@id": "http://example.org/test#example"} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e001-out.nq b/test/jsonld/1.1/toRdf/e001-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e001-out.nq
diff --git a/test/jsonld/1.1/toRdf/e002-in.jsonld b/test/jsonld/1.1/toRdf/e002-in.jsonld
new file mode 100644
index 00000000..e4598e55
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e002-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/test/jsonld/1.1/toRdf/e002-out.nq b/test/jsonld/1.1/toRdf/e002-out.nq
new file mode 100644
index 00000000..54f0bc03
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e002-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/test/jsonld/1.1/toRdf/e003-in.jsonld b/test/jsonld/1.1/toRdf/e003-in.jsonld
new file mode 100644
index 00000000..2007f363
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e003-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/test/jsonld/1.1/toRdf/e003-out.nq b/test/jsonld/1.1/toRdf/e003-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e003-out.nq
diff --git a/test/jsonld/1.1/toRdf/e004-in.jsonld b/test/jsonld/1.1/toRdf/e004-in.jsonld
new file mode 100644
index 00000000..8499bfa0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e004-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/test/jsonld/1.1/toRdf/e004-out.nq b/test/jsonld/1.1/toRdf/e004-out.nq
new file mode 100644
index 00000000..fdb2e633
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e004-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/test/jsonld/1.1/toRdf/e005-in.jsonld b/test/jsonld/1.1/toRdf/e005-in.jsonld
new file mode 100644
index 00000000..33622d53
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e005-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/test/jsonld/1.1/toRdf/e005-out.nq b/test/jsonld/1.1/toRdf/e005-out.nq
new file mode 100644
index 00000000..574567a5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e005-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" .
+<https://w3c.github.io/json-ld-api/tests/toRdf/e005-in.jsonld#me> <http://xmlns.com/foaf/0.1/knows> <http://example.com/alice#me> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/e005-in.jsonld#me> <http://xmlns.com/foaf/0.1/knows> <http://example.com/bob#me> .
diff --git a/test/jsonld/1.1/toRdf/e006-in.jsonld b/test/jsonld/1.1/toRdf/e006-in.jsonld
new file mode 100644
index 00000000..045e2a2a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e006-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/test/jsonld/1.1/toRdf/e006-out.nq b/test/jsonld/1.1/toRdf/e006-out.nq
new file mode 100644
index 00000000..a9213cf3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e006-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/test/jsonld/1.1/toRdf/e007-in.jsonld b/test/jsonld/1.1/toRdf/e007-in.jsonld
new file mode 100644
index 00000000..b49fac4e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e007-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/test/jsonld/1.1/toRdf/e007-out.nq b/test/jsonld/1.1/toRdf/e007-out.nq
new file mode 100644
index 00000000..5f833b1d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e007-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/test/jsonld/1.1/toRdf/e008-in.jsonld b/test/jsonld/1.1/toRdf/e008-in.jsonld
new file mode 100644
index 00000000..a17b9493
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e008-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/test/jsonld/1.1/toRdf/e008-out.nq b/test/jsonld/1.1/toRdf/e008-out.nq
new file mode 100644
index 00000000..d0af636b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e008-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/test/jsonld/1.1/toRdf/e009-in.jsonld b/test/jsonld/1.1/toRdf/e009-in.jsonld
new file mode 100644
index 00000000..6acef5c5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e009-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/test/jsonld/1.1/toRdf/e009-out.nq b/test/jsonld/1.1/toRdf/e009-out.nq
new file mode 100644
index 00000000..1c8d94af
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e009-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/test/jsonld/1.1/toRdf/e010-in.jsonld b/test/jsonld/1.1/toRdf/e010-in.jsonld
new file mode 100644
index 00000000..f2d0a384
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e010-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/test/jsonld/1.1/toRdf/e010-out.nq b/test/jsonld/1.1/toRdf/e010-out.nq
new file mode 100644
index 00000000..5fe1cc05
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e010-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/test/jsonld/1.1/toRdf/e011-in.jsonld b/test/jsonld/1.1/toRdf/e011-in.jsonld
new file mode 100644
index 00000000..fa90d97d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e011-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "dc11": "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",
+ "dc11:title": "Title",
+ "ex:contains": "http://example.org/test#chapter"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e011-out.nq b/test/jsonld/1.1/toRdf/e011-out.nq
new file mode 100644
index 00000000..c581db6a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e011-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/test/jsonld/1.1/toRdf/e012-in.jsonld b/test/jsonld/1.1/toRdf/e012-in.jsonld
new file mode 100644
index 00000000..ebda5732
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e012-in.jsonld
@@ -0,0 +1,39 @@
+{
+ "@context": {
+ "dc11": "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",
+ "dc11:description": "Fun",
+ "dc11: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",
+ "dc11:contributor": "Writer",
+ "dc11:title": "My Book",
+ "ex:contains": "http://example.org/test#chapter"
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e012-out.nq b/test/jsonld/1.1/toRdf/e012-out.nq
new file mode 100644
index 00000000..1c8d94af
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e012-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/test/jsonld/1.1/toRdf/e013-in.jsonld b/test/jsonld/1.1/toRdf/e013-in.jsonld
new file mode 100644
index 00000000..7795576f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e013-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/test/jsonld/1.1/toRdf/e013-out.nq b/test/jsonld/1.1/toRdf/e013-out.nq
new file mode 100644
index 00000000..54f0bc03
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e013-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/test/jsonld/1.1/toRdf/e014-in.jsonld b/test/jsonld/1.1/toRdf/e014-in.jsonld
new file mode 100644
index 00000000..ba913ff2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e014-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/test/jsonld/1.1/toRdf/e014-out.nq b/test/jsonld/1.1/toRdf/e014-out.nq
new file mode 100644
index 00000000..a84697e1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e014-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/test/jsonld/1.1/toRdf/e015-in.jsonld b/test/jsonld/1.1/toRdf/e015-in.jsonld
new file mode 100644
index 00000000..ae60d731
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e015-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/test/jsonld/1.1/toRdf/e015-out.nq b/test/jsonld/1.1/toRdf/e015-out.nq
new file mode 100644
index 00000000..ecd95e6a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e015-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/test/jsonld/1.1/toRdf/e016-in.jsonld b/test/jsonld/1.1/toRdf/e016-in.jsonld
new file mode 100644
index 00000000..c151040a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e016-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/test/jsonld/1.1/toRdf/e016-out.nq b/test/jsonld/1.1/toRdf/e016-out.nq
new file mode 100644
index 00000000..c5363743
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e016-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/test/jsonld/1.1/toRdf/e017-in.jsonld b/test/jsonld/1.1/toRdf/e017-in.jsonld
new file mode 100644
index 00000000..dea8bf80
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e017-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/test/jsonld/1.1/toRdf/e017-out.nq b/test/jsonld/1.1/toRdf/e017-out.nq
new file mode 100644
index 00000000..1c8d94af
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e017-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/test/jsonld/1.1/toRdf/e018-in.jsonld b/test/jsonld/1.1/toRdf/e018-in.jsonld
new file mode 100644
index 00000000..21933fda
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e018-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/test/jsonld/1.1/toRdf/e018-out.nq b/test/jsonld/1.1/toRdf/e018-out.nq
new file mode 100644
index 00000000..aaa1eccc
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e018-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/test/jsonld/1.1/toRdf/e019-in.jsonld b/test/jsonld/1.1/toRdf/e019-in.jsonld
new file mode 100644
index 00000000..b91f8860
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e019-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "myproperty": "http://example.com/myproperty"
+ },
+ "myproperty": { "@value" : null }
+}
diff --git a/test/jsonld/1.1/toRdf/e019-out.nq b/test/jsonld/1.1/toRdf/e019-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e019-out.nq
diff --git a/test/jsonld/1.1/toRdf/e020-in.jsonld b/test/jsonld/1.1/toRdf/e020-in.jsonld
new file mode 100644
index 00000000..989e1192
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e020-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/test/jsonld/1.1/toRdf/e020-out.nq b/test/jsonld/1.1/toRdf/e020-out.nq
new file mode 100644
index 00000000..440b2f7b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e020-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/test/jsonld/1.1/toRdf/e021-in.jsonld b/test/jsonld/1.1/toRdf/e021-in.jsonld
new file mode 100644
index 00000000..e52fd1b8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e021-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/test/jsonld/1.1/toRdf/e021-out.nq b/test/jsonld/1.1/toRdf/e021-out.nq
new file mode 100644
index 00000000..841a3d49
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e021-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/test/jsonld/1.1/toRdf/e022-in.jsonld b/test/jsonld/1.1/toRdf/e022-in.jsonld
new file mode 100644
index 00000000..e7f938ae
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e022-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/test/jsonld/1.1/toRdf/e022-out.nq b/test/jsonld/1.1/toRdf/e022-out.nq
new file mode 100644
index 00000000..80c93983
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e022-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/term> "v"@en .
diff --git a/test/jsonld/1.1/toRdf/e023-in.jsonld b/test/jsonld/1.1/toRdf/e023-in.jsonld
new file mode 100644
index 00000000..2a33783d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e023-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/test/jsonld/1.1/toRdf/e023-out.nq b/test/jsonld/1.1/toRdf/e023-out.nq
new file mode 100644
index 00000000..2b1ed62f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e023-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/test/jsonld/1.1/toRdf/e024-in.jsonld b/test/jsonld/1.1/toRdf/e024-in.jsonld
new file mode 100644
index 00000000..fcf010c4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e024-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/test/jsonld/1.1/toRdf/e024-out.nq b/test/jsonld/1.1/toRdf/e024-out.nq
new file mode 100644
index 00000000..1ed3b1ca
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e024-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/test/jsonld/1.1/toRdf/e025-in.jsonld b/test/jsonld/1.1/toRdf/e025-in.jsonld
new file mode 100644
index 00000000..2cd0d48e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e025-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "foo": "http://example.com/foo/",
+ "foo:bar": "http://example.com/foo/bar",
+ "bar": {"@id": "foo:bar", "@type": "@id"},
+ "_": "http://example.com/underscore/"
+ },
+ "@type": [ "foo", "foo:bar", "_" ]
+}
diff --git a/test/jsonld/1.1/toRdf/e025-out.nq b/test/jsonld/1.1/toRdf/e025-out.nq
new file mode 100644
index 00000000..4256e246
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e025-out.nq
@@ -0,0 +1,3 @@
+_: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/foo/bar> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/underscore/> .
diff --git a/test/jsonld/1.1/toRdf/e026-in.jsonld b/test/jsonld/1.1/toRdf/e026-in.jsonld
new file mode 100644
index 00000000..36d8cac7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e026-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/test/jsonld/1.1/toRdf/e026-out.nq b/test/jsonld/1.1/toRdf/e026-out.nq
new file mode 100644
index 00000000..093e6294
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e026-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/test/jsonld/1.1/toRdf/e027-in.jsonld b/test/jsonld/1.1/toRdf/e027-in.jsonld
new file mode 100644
index 00000000..6c47cfb7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e027-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/test/jsonld/1.1/toRdf/e027-out.nq b/test/jsonld/1.1/toRdf/e027-out.nq
new file mode 100644
index 00000000..d089ef53
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e027-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/test/jsonld/1.1/toRdf/e028-in.jsonld b/test/jsonld/1.1/toRdf/e028-in.jsonld
new file mode 100644
index 00000000..4f05d0e4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e028-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/test/jsonld/1.1/toRdf/e028-out.nq b/test/jsonld/1.1/toRdf/e028-out.nq
new file mode 100644
index 00000000..edd1dd2a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e028-out.nq
@@ -0,0 +1,4 @@
+<https://w3c.github.io/json-ld-api/tests/toRdf/example1> <http://example.org/vocab#date> "2011-01-25T00:00:00Z"^^<http://example.org/vocab#dateTime> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/example1> <http://example.org/vocab#embed> <https://w3c.github.io/json-ld-api/tests/toRdf/example2> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/example1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#test> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/example2> <http://example.org/vocab#expandedDate> "2012-08-01T00:00:00Z"^^<http://example.org/vocab#dateTime> .
diff --git a/test/jsonld/1.1/toRdf/e029-in.jsonld b/test/jsonld/1.1/toRdf/e029-in.jsonld
new file mode 100644
index 00000000..dd425bda
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e029-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/test/jsonld/1.1/toRdf/e029-out.nq b/test/jsonld/1.1/toRdf/e029-out.nq
new file mode 100644
index 00000000..6018fb1f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e029-out.nq
@@ -0,0 +1,34 @@
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.example.com/link> _:b0 .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://example.org/scheme-relative> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/absolute> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/json-ld-api/tests/> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/json-ld-api/tests/parent> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/json-ld-api/tests/toRdf/e029-in.jsonld#fragment-works> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/json-ld-api/tests/toRdf/e029-in.jsonld?query=works> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/json-ld-api/tests/toRdf/> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/json-ld-api/tests/toRdf/link> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/parent-parent-eq-root> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/still-root> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relativeIris> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/too-many-dots> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <https://w3c.github.io/json-ld-api/tests/toRdf/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> <https://w3c.github.io/json-ld-api/tests/toRdf/e029-in.jsonld#fragment-works> .
+_: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> <https://w3c.github.io/json-ld-api/tests/toRdf/e029-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> <https://w3c.github.io/json-ld-api/tests/toRdf/> .
+_: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> <https://w3c.github.io/json-ld-api/tests/> .
+_: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> <https://w3c.github.io/json-ld-api/tests/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> <https://w3c.github.io/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> <https://w3c.github.io/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> <https://w3c.github.io/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> <https://w3c.github.io/absolute> .
+_:b9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b10 .
+_:b10 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <https://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> .
diff --git a/test/jsonld/1.1/toRdf/e030-in.jsonld b/test/jsonld/1.1/toRdf/e030-in.jsonld
new file mode 100644
index 00000000..ca711673
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e030-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/test/jsonld/1.1/toRdf/e030-out.nq b/test/jsonld/1.1/toRdf/e030-out.nq
new file mode 100644
index 00000000..c171a406
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e030-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/test/jsonld/1.1/toRdf/e031-in.jsonld b/test/jsonld/1.1/toRdf/e031-in.jsonld
new file mode 100644
index 00000000..192ff27c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e031-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/test/jsonld/1.1/toRdf/e031-out.nq b/test/jsonld/1.1/toRdf/e031-out.nq
new file mode 100644
index 00000000..3812698c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e031-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/test/jsonld/1.1/toRdf/e032-in.jsonld b/test/jsonld/1.1/toRdf/e032-in.jsonld
new file mode 100644
index 00000000..920554fc
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e032-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/test/jsonld/1.1/toRdf/e032-out.nq b/test/jsonld/1.1/toRdf/e032-out.nq
new file mode 100644
index 00000000..fe7cd665
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e032-out.nq
@@ -0,0 +1 @@
+<http://me.markus-lanthaler.com/> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/test/jsonld/1.1/toRdf/e033-in.jsonld b/test/jsonld/1.1/toRdf/e033-in.jsonld
new file mode 100644
index 00000000..abf6feed
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e033-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/test/jsonld/1.1/toRdf/e033-out.nq b/test/jsonld/1.1/toRdf/e033-out.nq
new file mode 100644
index 00000000..58e36e13
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e033-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/test/jsonld/1.1/toRdf/e034-in.jsonld b/test/jsonld/1.1/toRdf/e034-in.jsonld
new file mode 100644
index 00000000..22bb6039
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e034-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/test/jsonld/1.1/toRdf/e034-out.nq b/test/jsonld/1.1/toRdf/e034-out.nq
new file mode 100644
index 00000000..a1c2f661
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e034-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/test/jsonld/1.1/toRdf/e035-in.jsonld b/test/jsonld/1.1/toRdf/e035-in.jsonld
new file mode 100644
index 00000000..7bf59112
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e035-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/test/jsonld/1.1/toRdf/e035-out.nq b/test/jsonld/1.1/toRdf/e035-out.nq
new file mode 100644
index 00000000..a7b58eed
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e035-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/test/jsonld/1.1/toRdf/e036-in.jsonld b/test/jsonld/1.1/toRdf/e036-in.jsonld
new file mode 100644
index 00000000..23c99b55
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e036-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/test/jsonld/1.1/toRdf/e036-out.nq b/test/jsonld/1.1/toRdf/e036-out.nq
new file mode 100644
index 00000000..5fc76bd7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e036-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/test/jsonld/1.1/toRdf/e037-in.jsonld b/test/jsonld/1.1/toRdf/e037-in.jsonld
new file mode 100644
index 00000000..7e65af4a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e037-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/test/jsonld/1.1/toRdf/e037-out.nq b/test/jsonld/1.1/toRdf/e037-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e037-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/test/jsonld/1.1/toRdf/e038-in.jsonld b/test/jsonld/1.1/toRdf/e038-in.jsonld
new file mode 100644
index 00000000..17071294
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e038-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/test/jsonld/1.1/toRdf/e038-out.nq b/test/jsonld/1.1/toRdf/e038-out.nq
new file mode 100644
index 00000000..bca23603
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e038-out.nq
@@ -0,0 +1 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:b0 .
diff --git a/test/jsonld/1.1/toRdf/e039-in.jsonld b/test/jsonld/1.1/toRdf/e039-in.jsonld
new file mode 100644
index 00000000..7c3549ee
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e039-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/test/jsonld/1.1/toRdf/e039-out.nq b/test/jsonld/1.1/toRdf/e039-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e039-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/test/jsonld/1.1/toRdf/e040-in.jsonld b/test/jsonld/1.1/toRdf/e040-in.jsonld
new file mode 100644
index 00000000..2d02e0ad
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e040-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/test/jsonld/1.1/toRdf/e040-out.nq b/test/jsonld/1.1/toRdf/e040-out.nq
new file mode 100644
index 00000000..31beb5f6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e040-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> <https://w3c.github.io/json-ld-api/tests/toRdf/asTheValueIsntAnObject> .
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen" .
diff --git a/test/jsonld/1.1/toRdf/e041-in.jsonld b/test/jsonld/1.1/toRdf/e041-in.jsonld
new file mode 100644
index 00000000..7915153e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e041-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/test/jsonld/1.1/toRdf/e041-out.nq b/test/jsonld/1.1/toRdf/e041-out.nq
new file mode 100644
index 00000000..d938ed71
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e041-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/test/jsonld/1.1/toRdf/e042-in.jsonld b/test/jsonld/1.1/toRdf/e042-in.jsonld
new file mode 100644
index 00000000..60cf9ac2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e042-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/test/jsonld/1.1/toRdf/e042-out.nq b/test/jsonld/1.1/toRdf/e042-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e042-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/test/jsonld/1.1/toRdf/e043-in.jsonld b/test/jsonld/1.1/toRdf/e043-in.jsonld
new file mode 100644
index 00000000..8ef07587
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e043-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/test/jsonld/1.1/toRdf/e043-out.nq b/test/jsonld/1.1/toRdf/e043-out.nq
new file mode 100644
index 00000000..82f12f7f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e043-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/test/jsonld/1.1/toRdf/e044-in.jsonld b/test/jsonld/1.1/toRdf/e044-in.jsonld
new file mode 100644
index 00000000..c12bd7b2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e044-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/test/jsonld/1.1/toRdf/e044-out.nq b/test/jsonld/1.1/toRdf/e044-out.nq
new file mode 100644
index 00000000..21981f04
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e044-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/test/jsonld/1.1/toRdf/e045-in.jsonld b/test/jsonld/1.1/toRdf/e045-in.jsonld
new file mode 100644
index 00000000..09207e31
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e045-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@value": "free-floating value"
+}
diff --git a/test/jsonld/1.1/toRdf/e045-out.nq b/test/jsonld/1.1/toRdf/e045-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e045-out.nq
diff --git a/test/jsonld/1.1/toRdf/e046-in.jsonld b/test/jsonld/1.1/toRdf/e046-in.jsonld
new file mode 100644
index 00000000..081a8877
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e046-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/test/jsonld/1.1/toRdf/e046-out.nq b/test/jsonld/1.1/toRdf/e046-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e046-out.nq
diff --git a/test/jsonld/1.1/toRdf/e047-in.jsonld b/test/jsonld/1.1/toRdf/e047-in.jsonld
new file mode 100644
index 00000000..90d54114
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e047-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/test/jsonld/1.1/toRdf/e047-out.nq b/test/jsonld/1.1/toRdf/e047-out.nq
new file mode 100644
index 00000000..f9b7ee6f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e047-out.nq
@@ -0,0 +1 @@
+<http://example.com/node> <http://example.com/property> "nodes with properties are not removed" .
diff --git a/test/jsonld/1.1/toRdf/e048-in.jsonld b/test/jsonld/1.1/toRdf/e048-in.jsonld
new file mode 100644
index 00000000..5854b8a0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e048-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/test/jsonld/1.1/toRdf/e048-out.nq b/test/jsonld/1.1/toRdf/e048-out.nq
new file mode 100644
index 00000000..94324d9d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e048-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" .
+<https://w3c.github.io/json-ld-api/tests/parent-node> <http://example.com/property> "relative IRIs get resolved against the document's base IRI" .
+<https://w3c.github.io/json-ld-api/tests/toRdf/term> <http://example.com/property> <http://example.com/compact-iris#are-considered> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/term> <http://example.com/property> <https://w3c.github.io/json-ld-api/tests/parent-node> .
diff --git a/test/jsonld/1.1/toRdf/e049-in.jsonld b/test/jsonld/1.1/toRdf/e049-in.jsonld
new file mode 100644
index 00000000..3f10e016
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e049-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/test/jsonld/1.1/toRdf/e049-out.nq b/test/jsonld/1.1/toRdf/e049-out.nq
new file mode 100644
index 00000000..fe5c7f32
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e049-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/test/jsonld/1.1/toRdf/e050-in.jsonld b/test/jsonld/1.1/toRdf/e050-in.jsonld
new file mode 100644
index 00000000..01b24726
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e050-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/test/jsonld/1.1/toRdf/e050-out.nq b/test/jsonld/1.1/toRdf/e050-out.nq
new file mode 100644
index 00000000..21792147
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e050-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.com/issue/> <https://w3c.github.io/issue/1> .
+_:b0 <http://example.com/issue/raisedBy> "Markus" .
diff --git a/test/jsonld/1.1/toRdf/e051-in.jsonld b/test/jsonld/1.1/toRdf/e051-in.jsonld
new file mode 100644
index 00000000..77b7fbd8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e051-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": [
+ { "id": "@id" },
+ { "url": "id" }
+ ],
+ "url": "/issue/1",
+ "http://example.com/property": "ok"
+}
diff --git a/test/jsonld/1.1/toRdf/e051-out.nq b/test/jsonld/1.1/toRdf/e051-out.nq
new file mode 100644
index 00000000..2fe83826
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e051-out.nq
@@ -0,0 +1 @@
+<https://w3c.github.io/issue/1> <http://example.com/property> "ok" .
diff --git a/test/jsonld/1.1/toRdf/e052-in.jsonld b/test/jsonld/1.1/toRdf/e052-in.jsonld
new file mode 100644
index 00000000..ee3d9d2e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e052-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/test/jsonld/1.1/toRdf/e052-out.nq b/test/jsonld/1.1/toRdf/e052-out.nq
new file mode 100644
index 00000000..7e88362c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e052-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/test/jsonld/1.1/toRdf/e053-in.jsonld b/test/jsonld/1.1/toRdf/e053-in.jsonld
new file mode 100644
index 00000000..3ac3ea98
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e053-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"}
+ },
+ "term": "http://example.org/enum"
+}
diff --git a/test/jsonld/1.1/toRdf/e053-out.nq b/test/jsonld/1.1/toRdf/e053-out.nq
new file mode 100644
index 00000000..fe48284d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e053-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.org/enum> .
diff --git a/test/jsonld/1.1/toRdf/e054-in.jsonld b/test/jsonld/1.1/toRdf/e054-in.jsonld
new file mode 100644
index 00000000..680afbf0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e054-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/test/jsonld/1.1/toRdf/e054-out.nq b/test/jsonld/1.1/toRdf/e054-out.nq
new file mode 100644
index 00000000..fe48284d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e054-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.org/enum> .
diff --git a/test/jsonld/1.1/toRdf/e055-in.jsonld b/test/jsonld/1.1/toRdf/e055-in.jsonld
new file mode 100644
index 00000000..1c5ed3b0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e055-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "term": {"@id": "http://example.org/term", "@type": "@vocab"}
+ },
+ "term": "enum"
+}
diff --git a/test/jsonld/1.1/toRdf/e055-out.nq b/test/jsonld/1.1/toRdf/e055-out.nq
new file mode 100644
index 00000000..fe48284d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e055-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.org/enum> .
diff --git a/test/jsonld/1.1/toRdf/e056-in.jsonld b/test/jsonld/1.1/toRdf/e056-in.jsonld
new file mode 100644
index 00000000..6d5b0cb9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e056-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/test/jsonld/1.1/toRdf/e056-out.nq b/test/jsonld/1.1/toRdf/e056-out.nq
new file mode 100644
index 00000000..638e55e4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e056-out.nq
@@ -0,0 +1,3 @@
+<http://me.markus-lanthaler.com/> <http://example.com/link> <https://w3c.github.io/json-ld-api/tests/toRdf/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/test/jsonld/1.1/toRdf/e057-in.jsonld b/test/jsonld/1.1/toRdf/e057-in.jsonld
new file mode 100644
index 00000000..732cc923
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e057-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/test/jsonld/1.1/toRdf/e057-out.nq b/test/jsonld/1.1/toRdf/e057-out.nq
new file mode 100644
index 00000000..8fc39181
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e057-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <https://w3c.github.io/json-ld-api/tests/toRdf/not-a-term-thus-a-relative-IRI> .
diff --git a/test/jsonld/1.1/toRdf/e058-in.jsonld b/test/jsonld/1.1/toRdf/e058-in.jsonld
new file mode 100644
index 00000000..68dc3249
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e058-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/test/jsonld/1.1/toRdf/e058-out.nq b/test/jsonld/1.1/toRdf/e058-out.nq
new file mode 100644
index 00000000..49cae840
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e058-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.com/vocab#suffix> .
diff --git a/test/jsonld/1.1/toRdf/e059-in.jsonld b/test/jsonld/1.1/toRdf/e059-in.jsonld
new file mode 100644
index 00000000..05f582f0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e059-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/test/jsonld/1.1/toRdf/e059-out.nq b/test/jsonld/1.1/toRdf/e059-out.nq
new file mode 100644
index 00000000..3f1f6d57
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e059-out.nq
@@ -0,0 +1,4 @@
+<https://w3c.github.io/json-ld-api/tests/toRdf/example-vocab-reset> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/json-ld-api/tests/toRdf/document-relative> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/example-with-vocab> <http://example.org/vocab#embed> <https://w3c.github.io/json-ld-api/tests/toRdf/example-vocab-reset> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/example-with-vocab> <http://example.org/vocab#property> "property expanded using @vocab" .
+<https://w3c.github.io/json-ld-api/tests/toRdf/example-with-vocab> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#vocab-prefixed> .
diff --git a/test/jsonld/1.1/toRdf/e060-in.jsonld b/test/jsonld/1.1/toRdf/e060-in.jsonld
new file mode 100644
index 00000000..2a2d1905
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e060-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/test/jsonld/1.1/toRdf/e060-out.nq b/test/jsonld/1.1/toRdf/e060-out.nq
new file mode 100644
index 00000000..5ba18e46
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e060-out.nq
@@ -0,0 +1,4 @@
+<https://w3c.github.io/json-ld-api/tests/document-relative> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://w3c.github.io/json-ld-api/tests/toRdf/e060-in.jsonld#document-relative> .
+<https://w3c.github.io/json-ld-api/tests/document-relative> <http://example.com/vocab#property> <http://example.org/document-base-overwritten> .
+<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://example.org/document-base-overwritten> <http://example.com/vocab#property> <https://w3c.github.io/json-ld-api/tests/document-relative> .
diff --git a/test/jsonld/1.1/toRdf/e061-in.jsonld b/test/jsonld/1.1/toRdf/e061-in.jsonld
new file mode 100644
index 00000000..45c1d511
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e061-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/test/jsonld/1.1/toRdf/e061-out.nq b/test/jsonld/1.1/toRdf/e061-out.nq
new file mode 100644
index 00000000..00a8ffe3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e061-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/test/jsonld/1.1/toRdf/e062-in.jsonld b/test/jsonld/1.1/toRdf/e062-in.jsonld
new file mode 100644
index 00000000..fb472514
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e062-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/test/jsonld/1.1/toRdf/e062-out.nq b/test/jsonld/1.1/toRdf/e062-out.nq
new file mode 100644
index 00000000..d5f5db3e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e062-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/test/jsonld/1.1/toRdf/e063-in.jsonld b/test/jsonld/1.1/toRdf/e063-in.jsonld
new file mode 100644
index 00000000..a9a83b0c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e063-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/test/jsonld/1.1/toRdf/e063-out.nq b/test/jsonld/1.1/toRdf/e063-out.nq
new file mode 100644
index 00000000..d907850e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e063-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/test/jsonld/1.1/toRdf/e064-in.jsonld b/test/jsonld/1.1/toRdf/e064-in.jsonld
new file mode 100644
index 00000000..dc313893
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e064-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/test/jsonld/1.1/toRdf/e064-out.nq b/test/jsonld/1.1/toRdf/e064-out.nq
new file mode 100644
index 00000000..15b58420
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e064-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/test/jsonld/1.1/toRdf/e065-in.jsonld b/test/jsonld/1.1/toRdf/e065-in.jsonld
new file mode 100644
index 00000000..116e0504
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e065-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/test/jsonld/1.1/toRdf/e065-out.nq b/test/jsonld/1.1/toRdf/e065-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e065-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/test/jsonld/1.1/toRdf/e066-in.jsonld b/test/jsonld/1.1/toRdf/e066-in.jsonld
new file mode 100644
index 00000000..b3a9bd80
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e066-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/test/jsonld/1.1/toRdf/e066-out.nq b/test/jsonld/1.1/toRdf/e066-out.nq
new file mode 100644
index 00000000..91b33114
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e066-out.nq
@@ -0,0 +1,5 @@
+<http://example.com/people/markus> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/name> "Dave Longley" .
+<http://example.com/people/dave> <http://xmlns.com/foaf/0.1/knows> <http://example.com/people/markus> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relative-node> <http://xmlns.com/foaf/0.1/name> "Compact keys using @vocab" .
+<https://w3c.github.io/json-ld-api/tests/toRdf/relative-node> <http://example.com/vocab/noTerm> <http://example.com/people/markus> .
diff --git a/test/jsonld/1.1/toRdf/e067-in.jsonld b/test/jsonld/1.1/toRdf/e067-in.jsonld
new file mode 100644
index 00000000..a8e29a67
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e067-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/test/jsonld/1.1/toRdf/e067-out.nq b/test/jsonld/1.1/toRdf/e067-out.nq
new file mode 100644
index 00000000..c33dd89a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e067-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/test/jsonld/1.1/toRdf/e068-in.jsonld b/test/jsonld/1.1/toRdf/e068-in.jsonld
new file mode 100644
index 00000000..ab52e5e7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e068-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/test/jsonld/1.1/toRdf/e068-out.nq b/test/jsonld/1.1/toRdf/e068-out.nq
new file mode 100644
index 00000000..6a736bb1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e068-out.nq
@@ -0,0 +1 @@
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:b0 .
diff --git a/test/jsonld/1.1/toRdf/e069-in.jsonld b/test/jsonld/1.1/toRdf/e069-in.jsonld
new file mode 100644
index 00000000..8f4a9aa9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e069-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/test/jsonld/1.1/toRdf/e069-out.nq b/test/jsonld/1.1/toRdf/e069-out.nq
new file mode 100644
index 00000000..eb20efc7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e069-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/test/jsonld/1.1/toRdf/e070-in.jsonld b/test/jsonld/1.1/toRdf/e070-in.jsonld
new file mode 100644
index 00000000..59733fb5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e070-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/test/jsonld/1.1/toRdf/e070-out.nq b/test/jsonld/1.1/toRdf/e070-out.nq
new file mode 100644
index 00000000..532caa7a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e070-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/test/jsonld/1.1/toRdf/e071-in.jsonld b/test/jsonld/1.1/toRdf/e071-in.jsonld
new file mode 100644
index 00000000..598c43fe
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e071-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/test/jsonld/1.1/toRdf/e071-out.nq b/test/jsonld/1.1/toRdf/e071-out.nq
new file mode 100644
index 00000000..3f78e2ce
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e071-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/test/jsonld/1.1/toRdf/e072-in.jsonld b/test/jsonld/1.1/toRdf/e072-in.jsonld
new file mode 100644
index 00000000..dcfa1b40
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e072-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/test/jsonld/1.1/toRdf/e072-out.nq b/test/jsonld/1.1/toRdf/e072-out.nq
new file mode 100644
index 00000000..8799e69b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e072-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/anotherVocab#term> "value of term" .
diff --git a/test/jsonld/1.1/toRdf/e073-in.jsonld b/test/jsonld/1.1/toRdf/e073-in.jsonld
new file mode 100644
index 00000000..78873bd8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e073-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/test/jsonld/1.1/toRdf/e073-out.nq b/test/jsonld/1.1/toRdf/e073-out.nq
new file mode 100644
index 00000000..1d755774
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e073-out.nq
@@ -0,0 +1,3 @@
+<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" .
+<http://example.org/node1> <http://www.w3.org/2002/07/owl#sameAs> <http://example.org/node2> .
diff --git a/test/jsonld/1.1/toRdf/e074-in.jsonld b/test/jsonld/1.1/toRdf/e074-in.jsonld
new file mode 100644
index 00000000..070a328f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e074-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/test/jsonld/1.1/toRdf/e074-out.nq b/test/jsonld/1.1/toRdf/e074-out.nq
new file mode 100644
index 00000000..119504f6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e074-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/test/jsonld/1.1/toRdf/e075-in.jsonld b/test/jsonld/1.1/toRdf/e075-in.jsonld
new file mode 100644
index 00000000..23dd106b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e075-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "_:"
+ },
+ "@id": "ex:node1",
+ "b1": "blank node property 1",
+ "b2": "blank node property 1"
+}
diff --git a/test/jsonld/1.1/toRdf/e075-out.nq b/test/jsonld/1.1/toRdf/e075-out.nq
new file mode 100644
index 00000000..820d9550
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e075-out.nq
@@ -0,0 +1,2 @@
+<ex:node1> _:b1 "blank node property 1" .
+<ex:node1> _:b2 "blank node property 1" .
diff --git a/test/jsonld/1.1/toRdf/e076-in.jsonld b/test/jsonld/1.1/toRdf/e076-in.jsonld
new file mode 100644
index 00000000..8793b622
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e076-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/toRdf/e076-out.nq b/test/jsonld/1.1/toRdf/e076-out.nq
new file mode 100644
index 00000000..c5502d89
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e076-out.nq
@@ -0,0 +1 @@
+<http://example/base/relative-iri> <http://prop> "value" .
diff --git a/test/jsonld/1.1/toRdf/e077-context.jsonld b/test/jsonld/1.1/toRdf/e077-context.jsonld
new file mode 100644
index 00000000..79129cb2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e077-context.jsonld
@@ -0,0 +1,11 @@
+{
+ "@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"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e077-in.jsonld b/test/jsonld/1.1/toRdf/e077-in.jsonld
new file mode 100644
index 00000000..5c5741fd
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e077-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@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/test/jsonld/1.1/toRdf/e077-out.nq b/test/jsonld/1.1/toRdf/e077-out.nq
new file mode 100644
index 00000000..e758cb02
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e077-out.nq
@@ -0,0 +1,7 @@
+<http://example.com/id1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/t1> .
+<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> .
diff --git a/test/jsonld/1.1/toRdf/e078-in.jsonld b/test/jsonld/1.1/toRdf/e078-in.jsonld
new file mode 100644
index 00000000..0a0cf729
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e078-in.jsonld
@@ -0,0 +1,29 @@
+{
+ "@context": {
+ "name": "http://example.com/vocab#name",
+ "children": { "@reverse": "http://example.com/vocab#parent" },
+ "pets": { "@reverse": "http://example.com/vocab#owner" }
+ },
+ "@id": "#homer",
+ "name": "Homer",
+ "children": [
+ {
+ "@id": "#bart",
+ "name": "Bart"
+ },
+ {
+ "@id": "#lisa",
+ "name": "Lisa"
+ }
+ ],
+ "pets": [
+ {
+ "@id": "#snowball-ii",
+ "name": "Snowball II"
+ },
+ {
+ "@id": "#santas-little-helper",
+ "name": "Santa's Little Helper"
+ }
+ ]
+}
diff --git a/test/jsonld/1.1/toRdf/e078-out.nq b/test/jsonld/1.1/toRdf/e078-out.nq
new file mode 100644
index 00000000..65909bbb
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e078-out.nq
@@ -0,0 +1,9 @@
+<https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#bart> <http://example.com/vocab#name> "Bart" .
+<https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#bart> <http://example.com/vocab#parent> <https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#homer> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#lisa> <http://example.com/vocab#name> "Lisa" .
+<https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#lisa> <http://example.com/vocab#parent> <https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#homer> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#santas-little-helper> <http://example.com/vocab#name> "Santa's Little Helper" .
+<https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#santas-little-helper> <http://example.com/vocab#owner> <https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#homer> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#snowball-ii> <http://example.com/vocab#name> "Snowball II" .
+<https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#snowball-ii> <http://example.com/vocab#owner> <https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#homer> .
+<https://w3c.github.io/json-ld-api/tests/toRdf/e078-in.jsonld#homer> <http://example.com/vocab#name> "Homer" .
diff --git a/test/jsonld/1.1/toRdf/e079-in.jsonld b/test/jsonld/1.1/toRdf/e079-in.jsonld
new file mode 100644
index 00000000..8514ced2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e079-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": {
+ "value": "x"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e079-out.nq b/test/jsonld/1.1/toRdf/e079-out.nq
new file mode 100644
index 00000000..d8ab99c3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e079-out.nq
@@ -0,0 +1,2 @@
+_:b2 <foo:value> "x" _:b1 .
+_:b0 <foo:input> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e080-in.jsonld b/test/jsonld/1.1/toRdf/e080-in.jsonld
new file mode 100644
index 00000000..098f8684
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e080-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }]
+}
diff --git a/test/jsonld/1.1/toRdf/e080-out.nq b/test/jsonld/1.1/toRdf/e080-out.nq
new file mode 100644
index 00000000..702a2f18
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e080-out.nq
@@ -0,0 +1,2 @@
+_:b0 <foo:input> _:b1 .
+_:b2 <foo:value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e081-in.jsonld b/test/jsonld/1.1/toRdf/e081-in.jsonld
new file mode 100644
index 00000000..d1742979
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e081-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": {
+ "@graph": {
+ "value": "x"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e081-out.nq b/test/jsonld/1.1/toRdf/e081-out.nq
new file mode 100644
index 00000000..a02a6aa4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e081-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b3 <http://example.org/value> "x" _:b2 .
diff --git a/test/jsonld/1.1/toRdf/e082-in.jsonld b/test/jsonld/1.1/toRdf/e082-in.jsonld
new file mode 100644
index 00000000..83d3182b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e082-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e082-out.nq b/test/jsonld/1.1/toRdf/e082-out.nq
new file mode 100644
index 00000000..592093b4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e082-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e083-in.jsonld b/test/jsonld/1.1/toRdf/e083-in.jsonld
new file mode 100644
index 00000000..71f8a50f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e083-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index", "@set"]}
+ },
+ "input": {
+ "g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e083-out.nq b/test/jsonld/1.1/toRdf/e083-out.nq
new file mode 100644
index 00000000..592093b4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e083-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e084-in.jsonld b/test/jsonld/1.1/toRdf/e084-in.jsonld
new file mode 100644
index 00000000..0026a778
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e084-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": {
+ "@graph": {
+ "value": "x"
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e084-out.nq b/test/jsonld/1.1/toRdf/e084-out.nq
new file mode 100644
index 00000000..592093b4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e084-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e085-in.jsonld b/test/jsonld/1.1/toRdf/e085-in.jsonld
new file mode 100644
index 00000000..3cd17bc2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e085-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e085-out.nq b/test/jsonld/1.1/toRdf/e085-out.nq
new file mode 100644
index 00000000..26acc430
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e085-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/value> "x" <http://example.com/g1> .
+_:b1 <http://example.org/input> <http://example.com/g1> .
diff --git a/test/jsonld/1.1/toRdf/e086-in.jsonld b/test/jsonld/1.1/toRdf/e086-in.jsonld
new file mode 100644
index 00000000..27ea6de7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e086-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id", "@set"]}
+ },
+ "input": {
+ "http://example.com/g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e086-out.nq b/test/jsonld/1.1/toRdf/e086-out.nq
new file mode 100644
index 00000000..26acc430
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e086-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/value> "x" <http://example.com/g1> .
+_:b1 <http://example.org/input> <http://example.com/g1> .
diff --git a/test/jsonld/1.1/toRdf/e087-in.jsonld b/test/jsonld/1.1/toRdf/e087-in.jsonld
new file mode 100644
index 00000000..aa994f30
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e087-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {
+ "@graph": {
+ "value": "x"
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e087-out.nq b/test/jsonld/1.1/toRdf/e087-out.nq
new file mode 100644
index 00000000..26acc430
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e087-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/value> "x" <http://example.com/g1> .
+_:b1 <http://example.org/input> <http://example.com/g1> .
diff --git a/test/jsonld/1.1/toRdf/e088-in.jsonld b/test/jsonld/1.1/toRdf/e088-in.jsonld
new file mode 100644
index 00000000..c0c20a1a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e088-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "@base": "http://example.com/",
+ "coerceId": {"@type": "@id"},
+ "coerceVocab": {"@type": "@vocab"}
+ },
+ "coerceDefault": ["string", true, false, 0, 1],
+ "coerceId": ["string", true, false, 0, 1],
+ "coerceVocab": ["string", true, false, 0, 1]
+}
diff --git a/test/jsonld/1.1/toRdf/e088-out.nq b/test/jsonld/1.1/toRdf/e088-out.nq
new file mode 100644
index 00000000..c3fc3080
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e088-out.nq
@@ -0,0 +1,15 @@
+_:b0 <http://example.org/coerceVocab> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+_:b0 <http://example.org/coerceVocab> <http://example.org/string> .
+_:b0 <http://example.org/coerceVocab> "0"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.org/coerceVocab> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+_:b0 <http://example.org/coerceVocab> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.org/coerceDefault> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+_:b0 <http://example.org/coerceDefault> "string" .
+_:b0 <http://example.org/coerceDefault> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.org/coerceDefault> "0"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.org/coerceDefault> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+_:b0 <http://example.org/coerceId> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+_:b0 <http://example.org/coerceId> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.org/coerceId> <http://example.com/string> .
+_:b0 <http://example.org/coerceId> "0"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.org/coerceId> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
diff --git a/test/jsonld/1.1/toRdf/e089-in.jsonld b/test/jsonld/1.1/toRdf/e089-in.jsonld
new file mode 100644
index 00000000..7a6dcd8d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e089-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@base": ""
+ },
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/toRdf/e089-out.nq b/test/jsonld/1.1/toRdf/e089-out.nq
new file mode 100644
index 00000000..c5502d89
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e089-out.nq
@@ -0,0 +1 @@
+<http://example/base/relative-iri> <http://prop> "value" .
diff --git a/test/jsonld/1.1/toRdf/e090-in.jsonld b/test/jsonld/1.1/toRdf/e090-in.jsonld
new file mode 100644
index 00000000..0853f89e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e090-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@base": ".."
+ },
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/toRdf/e090-out.nq b/test/jsonld/1.1/toRdf/e090-out.nq
new file mode 100644
index 00000000..673e9067
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e090-out.nq
@@ -0,0 +1 @@
+<http://example/relative-iri> <http://prop> "value" .
diff --git a/test/jsonld/1.1/toRdf/e091-in.jsonld b/test/jsonld/1.1/toRdf/e091-in.jsonld
new file mode 100644
index 00000000..bad0f06b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e091-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": [{
+ "@base": "http://foo.bar/./baz/"
+ }, {
+ "@base": "example/"
+ }],
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/toRdf/e091-out.nq b/test/jsonld/1.1/toRdf/e091-out.nq
new file mode 100644
index 00000000..2f582a5e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e091-out.nq
@@ -0,0 +1 @@
+<http://foo.bar/baz/example/relative-iri> <http://prop> "value" .
diff --git a/test/jsonld/1.1/toRdf/e092-in.jsonld b/test/jsonld/1.1/toRdf/e092-in.jsonld
new file mode 100644
index 00000000..d7ed55e1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e092-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": ""
+ },
+ "@id": "relativePropertyIris",
+ "link": "link",
+ "#fragment-works": "#fragment-works",
+ "?query=works": "?query=works",
+ "./": "./",
+ "../": "../",
+ "../parent": "../parent",
+ "../../parent-parent-eq-root": "../../parent-parent-eq-root",
+ "../../../../../still-root": "../../../../../still-root",
+ "../.././.././../../too-many-dots": "../.././.././../../too-many-dots",
+ "/absolute": "/absolute",
+ "//example.org/scheme-relative": "//example.org/scheme-relative"
+}
diff --git a/test/jsonld/1.1/toRdf/e092-out.nq b/test/jsonld/1.1/toRdf/e092-out.nq
new file mode 100644
index 00000000..3d0ddfaa
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e092-out.nq
@@ -0,0 +1,11 @@
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file/./> "./" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file/#fragment-works> "#fragment-works" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file//absolute> "/absolute" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file/../parent> "../parent" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file/../> "../" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file/../../../../../still-root> "../../../../../still-root" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file///example.org/scheme-relative> "//example.org/scheme-relative" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file/../.././.././../../too-many-dots> "../.././.././../../too-many-dots" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file/link> "link" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file/?query=works> "?query=works" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/some/deep/directory/and/file/../../parent-parent-eq-root> "../../parent-parent-eq-root" .
diff --git a/test/jsonld/1.1/toRdf/e093-in.jsonld b/test/jsonld/1.1/toRdf/e093-in.jsonld
new file mode 100644
index 00000000..b32c0949
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e093-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": "@graph"},
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e093-out.nq b/test/jsonld/1.1/toRdf/e093-out.nq
new file mode 100644
index 00000000..1cf3b770
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e093-out.nq
@@ -0,0 +1,4 @@
+_:b4 <foo:value> "y" _:b3 .
+_:b0 <foo:input> _:b3 .
+_:b0 <foo:input> _:b1 .
+_:b2 <foo:value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e094-in.jsonld b/test/jsonld/1.1/toRdf/e094-in.jsonld
new file mode 100644
index 00000000..2e0dc624
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e094-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "input": {"@id": "foo:input", "@container": ["@graph", "@set"]},
+ "value": "foo:value"
+ },
+ "input": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e094-out.nq b/test/jsonld/1.1/toRdf/e094-out.nq
new file mode 100644
index 00000000..1cf3b770
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e094-out.nq
@@ -0,0 +1,4 @@
+_:b4 <foo:value> "y" _:b3 .
+_:b0 <foo:input> _:b3 .
+_:b0 <foo:input> _:b1 .
+_:b2 <foo:value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e095-in.jsonld b/test/jsonld/1.1/toRdf/e095-in.jsonld
new file mode 100644
index 00000000..bf1c0824
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e095-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": [{
+ "@graph": {
+ "value": "x"
+ }
+ }, {
+ "@graph": {
+ "value": "y"
+ }
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e095-out.nq b/test/jsonld/1.1/toRdf/e095-out.nq
new file mode 100644
index 00000000..dde94a1a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e095-out.nq
@@ -0,0 +1,4 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b0 <http://example.org/input> _:b4 .
+_:b3 <http://example.org/value> "x" _:b2 .
+_:b6 <http://example.org/value> "y" _:b5 .
diff --git a/test/jsonld/1.1/toRdf/e096-in.jsonld b/test/jsonld/1.1/toRdf/e096-in.jsonld
new file mode 100644
index 00000000..4c7c6f45
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e096-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": {"value": "x"},
+ "g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e096-out.nq b/test/jsonld/1.1/toRdf/e096-out.nq
new file mode 100644
index 00000000..94d78231
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e096-out.nq
@@ -0,0 +1,4 @@
+_:b4 <http://example.org/value> "y" _:b3 .
+_:b0 <http://example.org/input> _:b3 .
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e097-in.jsonld b/test/jsonld/1.1/toRdf/e097-in.jsonld
new file mode 100644
index 00000000..dc5b9003
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e097-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index", "@set"]}
+ },
+ "input": {
+ "g1": {"value": "x"},
+ "g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e097-out.nq b/test/jsonld/1.1/toRdf/e097-out.nq
new file mode 100644
index 00000000..94d78231
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e097-out.nq
@@ -0,0 +1,4 @@
+_:b4 <http://example.org/value> "y" _:b3 .
+_:b0 <http://example.org/input> _:b3 .
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e098-in.jsonld b/test/jsonld/1.1/toRdf/e098-in.jsonld
new file mode 100644
index 00000000..27ae04b7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e098-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": {"@graph": {"value": "x"}},
+ "g2": {"@graph": {"value": "y"}}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e098-out.nq b/test/jsonld/1.1/toRdf/e098-out.nq
new file mode 100644
index 00000000..94d78231
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e098-out.nq
@@ -0,0 +1,4 @@
+_:b4 <http://example.org/value> "y" _:b3 .
+_:b0 <http://example.org/input> _:b3 .
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e099-in.jsonld b/test/jsonld/1.1/toRdf/e099-in.jsonld
new file mode 100644
index 00000000..0010e0aa
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e099-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {"value": "x"},
+ "http://example.com/g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e099-out.nq b/test/jsonld/1.1/toRdf/e099-out.nq
new file mode 100644
index 00000000..60ecaa39
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e099-out.nq
@@ -0,0 +1,4 @@
+_:b1 <http://example.org/value> "x" <http://example.com/g1> .
+_:b2 <http://example.org/value> "y" <http://example.com/g2> .
+_:b0 <http://example.org/input> <http://example.com/g1> .
+_:b0 <http://example.org/input> <http://example.com/g2> .
diff --git a/test/jsonld/1.1/toRdf/e100-in.jsonld b/test/jsonld/1.1/toRdf/e100-in.jsonld
new file mode 100644
index 00000000..43d3528f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e100-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id", "@set"]}
+ },
+ "input": {
+ "http://example.com/g1": {"value": "x"},
+ "http://example.com/g2": {"value": "y"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e100-out.nq b/test/jsonld/1.1/toRdf/e100-out.nq
new file mode 100644
index 00000000..60ecaa39
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e100-out.nq
@@ -0,0 +1,4 @@
+_:b1 <http://example.org/value> "x" <http://example.com/g1> .
+_:b2 <http://example.org/value> "y" <http://example.com/g2> .
+_:b0 <http://example.org/input> <http://example.com/g1> .
+_:b0 <http://example.org/input> <http://example.com/g2> .
diff --git a/test/jsonld/1.1/toRdf/e101-in.jsonld b/test/jsonld/1.1/toRdf/e101-in.jsonld
new file mode 100644
index 00000000..cf605565
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e101-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {
+ "@graph": {
+ "value": "x"
+ }
+ },
+ "http://example.com/g2": {
+ "@graph": {
+ "value": "y"
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e101-out.nq b/test/jsonld/1.1/toRdf/e101-out.nq
new file mode 100644
index 00000000..60ecaa39
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e101-out.nq
@@ -0,0 +1,4 @@
+_:b1 <http://example.org/value> "x" <http://example.com/g1> .
+_:b2 <http://example.org/value> "y" <http://example.com/g2> .
+_:b0 <http://example.org/input> <http://example.com/g1> .
+_:b0 <http://example.org/input> <http://example.com/g2> .
diff --git a/test/jsonld/1.1/toRdf/e102-in.jsonld b/test/jsonld/1.1/toRdf/e102-in.jsonld
new file mode 100644
index 00000000..cac7b7f6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e102-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": {
+ "@graph": [{
+ "value": "x"
+ }, {
+ "value": "y"
+ }]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e102-out.nq b/test/jsonld/1.1/toRdf/e102-out.nq
new file mode 100644
index 00000000..51bc427a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e102-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b3 <http://example.org/value> "x" _:b2 .
+_:b4 <http://example.org/value> "y" _:b2 .
diff --git a/test/jsonld/1.1/toRdf/e103-in.jsonld b/test/jsonld/1.1/toRdf/e103-in.jsonld
new file mode 100644
index 00000000..bf1c0824
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e103-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": [{
+ "@graph": {
+ "value": "x"
+ }
+ }, {
+ "@graph": {
+ "value": "y"
+ }
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e103-out.nq b/test/jsonld/1.1/toRdf/e103-out.nq
new file mode 100644
index 00000000..dde94a1a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e103-out.nq
@@ -0,0 +1,4 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b0 <http://example.org/input> _:b4 .
+_:b3 <http://example.org/value> "x" _:b2 .
+_:b6 <http://example.org/value> "y" _:b5 .
diff --git a/test/jsonld/1.1/toRdf/e104-in.jsonld b/test/jsonld/1.1/toRdf/e104-in.jsonld
new file mode 100644
index 00000000..7e8d19c3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e104-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": "@graph"}
+ },
+ "input": [
+ {"@graph": {"value": "x"}},
+ {"value": "y"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e104-out.nq b/test/jsonld/1.1/toRdf/e104-out.nq
new file mode 100644
index 00000000..08bafa71
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e104-out.nq
@@ -0,0 +1,4 @@
+_:b3 <http://example.org/value> "x" _:b2 .
+_:b5 <http://example.org/value> "y" _:b4 .
+_:b0 <http://example.org/input> _:b4 .
+_:b0 <http://example.org/input> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e105-in.jsonld b/test/jsonld/1.1/toRdf/e105-in.jsonld
new file mode 100644
index 00000000..bcad0c63
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e105-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": [{"@graph": {"value": "x"}}, {"value": "y"}],
+ "g2": [{"@graph": {"value": "a"}}, {"value": "b"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e105-out.nq b/test/jsonld/1.1/toRdf/e105-out.nq
new file mode 100644
index 00000000..529cb4c1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e105-out.nq
@@ -0,0 +1,8 @@
+_:b6 <http://example.org/value> "a" _:b5 .
+_:b8 <http://example.org/value> "b" _:b7 .
+_:b4 <http://example.org/value> "y" _:b3 .
+_:b0 <http://example.org/input> _:b5 .
+_:b0 <http://example.org/input> _:b7 .
+_:b0 <http://example.org/input> _:b3 .
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e106-in.jsonld b/test/jsonld/1.1/toRdf/e106-in.jsonld
new file mode 100644
index 00000000..cf605565
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e106-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": {
+ "@graph": {
+ "value": "x"
+ }
+ },
+ "http://example.com/g2": {
+ "@graph": {
+ "value": "y"
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e106-out.nq b/test/jsonld/1.1/toRdf/e106-out.nq
new file mode 100644
index 00000000..60ecaa39
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e106-out.nq
@@ -0,0 +1,4 @@
+_:b1 <http://example.org/value> "x" <http://example.com/g1> .
+_:b2 <http://example.org/value> "y" <http://example.com/g2> .
+_:b0 <http://example.org/input> <http://example.com/g1> .
+_:b0 <http://example.org/input> <http://example.com/g2> .
diff --git a/test/jsonld/1.1/toRdf/e107-in.jsonld b/test/jsonld/1.1/toRdf/e107-in.jsonld
new file mode 100644
index 00000000..3e1c5afa
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e107-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "g1": [{"value": "x"}, {"value": "y"}],
+ "g2": [{"value": "a"}, {"value": "b"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e107-out.nq b/test/jsonld/1.1/toRdf/e107-out.nq
new file mode 100644
index 00000000..529cb4c1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e107-out.nq
@@ -0,0 +1,8 @@
+_:b6 <http://example.org/value> "a" _:b5 .
+_:b8 <http://example.org/value> "b" _:b7 .
+_:b4 <http://example.org/value> "y" _:b3 .
+_:b0 <http://example.org/input> _:b5 .
+_:b0 <http://example.org/input> _:b7 .
+_:b0 <http://example.org/input> _:b3 .
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/e108-in.jsonld b/test/jsonld/1.1/toRdf/e108-in.jsonld
new file mode 100644
index 00000000..182c031d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e108-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "http://example.com/g1": [{"value": "x"}, {"value": "y"}],
+ "http://example.com/g2": [{"value": "a"}, {"value": "b"}]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e108-out.nq b/test/jsonld/1.1/toRdf/e108-out.nq
new file mode 100644
index 00000000..d2aa10ab
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e108-out.nq
@@ -0,0 +1,6 @@
+_:b1 <http://example.org/value> "x" <http://example.com/g1> .
+_:b2 <http://example.org/value> "y" <http://example.com/g1> .
+_:b4 <http://example.org/value> "b" <http://example.com/g2> .
+_:b3 <http://example.org/value> "a" <http://example.com/g2> .
+_:b0 <http://example.org/input> <http://example.com/g1> .
+_:b0 <http://example.org/input> <http://example.com/g2> .
diff --git a/test/jsonld/1.1/toRdf/e109-in.jsonld b/test/jsonld/1.1/toRdf/e109-in.jsonld
new file mode 100644
index 00000000..7fa22658
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e109-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@base": "https://ex.org/",
+ "u": {"@id": "urn:u:", "@type": "@id"}
+ },
+ "u": ["#Test", "#Test:2"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e109-out.nq b/test/jsonld/1.1/toRdf/e109-out.nq
new file mode 100644
index 00000000..8c6aeb8a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e109-out.nq
@@ -0,0 +1,2 @@
+_:b0 <urn:u:> <https://ex.org/#Test> .
+_:b0 <urn:u:> <https://ex.org/#Test:2> .
diff --git a/test/jsonld/1.1/toRdf/e110-in.jsonld b/test/jsonld/1.1/toRdf/e110-in.jsonld
new file mode 100644
index 00000000..a6f1e676
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e110-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": "/relative"
+ },
+ "@id": "relativePropertyIris",
+ "link": "link",
+ "#fragment-works": "#fragment-works",
+ "?query=works": "?query=works",
+ "./": "./",
+ "../": "../",
+ "../parent": "../parent",
+ "../../parent-parent-eq-root": "../../parent-parent-eq-root",
+ "../../../../../still-root": "../../../../../still-root",
+ "../.././.././../../too-many-dots": "../.././.././../../too-many-dots",
+ "/absolute": "/absolute",
+ "//example.org/scheme-relative": "//example.org/scheme-relative"
+}
diff --git a/test/jsonld/1.1/toRdf/e110-out.nq b/test/jsonld/1.1/toRdf/e110-out.nq
new file mode 100644
index 00000000..eaeec614
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e110-out.nq
@@ -0,0 +1,11 @@
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relative//example.org/scheme-relative> "//example.org/scheme-relative" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relative?query=works> "?query=works" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relative../parent> "../parent" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relativelink> "link" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relative./> "./" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relative../.././.././../../too-many-dots> "../.././.././../../too-many-dots" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relative#fragment-works> "#fragment-works" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relative../../parent-parent-eq-root> "../../parent-parent-eq-root" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relative../> "../" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relative/absolute> "/absolute" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/relative../../../../../still-root> "../../../../../still-root" .
diff --git a/test/jsonld/1.1/toRdf/e111-in.jsonld b/test/jsonld/1.1/toRdf/e111-in.jsonld
new file mode 100644
index 00000000..f5118d3f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e111-in.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": "http://example.com/vocabulary/"
+ }, {
+ "@vocab": "./rel2#"
+ }],
+ "@id": "relativePropertyIris",
+ "link": "link",
+ "#fragment-works": "#fragment-works",
+ "?query=works": "?query=works",
+ "./": "./",
+ "../": "../",
+ "../parent": "../parent",
+ "../../parent-parent-eq-root": "../../parent-parent-eq-root",
+ "../../../../../still-root": "../../../../../still-root",
+ "../.././.././../../too-many-dots": "../.././.././../../too-many-dots",
+ "/absolute": "/absolute",
+ "//example.org/scheme-relative": "//example.org/scheme-relative"
+}
diff --git a/test/jsonld/1.1/toRdf/e111-out.nq b/test/jsonld/1.1/toRdf/e111-out.nq
new file mode 100644
index 00000000..f11cf0b0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e111-out.nq
@@ -0,0 +1,10 @@
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/vocabulary/./rel2#../parent> "../parent" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/vocabulary/./rel2#?query=works> "?query=works" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/vocabulary/./rel2#../> "../" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/vocabulary/./rel2#//example.org/scheme-relative> "//example.org/scheme-relative" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/vocabulary/./rel2#../.././.././../../too-many-dots> "../.././.././../../too-many-dots" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/vocabulary/./rel2#../../../../../still-root> "../../../../../still-root" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/vocabulary/./rel2#link> "link" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/vocabulary/./rel2#./> "./" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/vocabulary/./rel2#../../parent-parent-eq-root> "../../parent-parent-eq-root" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/vocabulary/./rel2#/absolute> "/absolute" .
diff --git a/test/jsonld/1.1/toRdf/e112-in.jsonld b/test/jsonld/1.1/toRdf/e112-in.jsonld
new file mode 100644
index 00000000..660f5f1b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e112-in.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": "/rel1"
+ }, {
+ "@vocab": "./rel2#"
+ }],
+ "@id": "relativePropertyIris",
+ "link": "link",
+ "#fragment-works": "#fragment-works",
+ "?query=works": "?query=works",
+ "./": "./",
+ "../": "../",
+ "../parent": "../parent",
+ "../../parent-parent-eq-root": "../../parent-parent-eq-root",
+ "../../../../../still-root": "../../../../../still-root",
+ "../.././.././../../too-many-dots": "../.././.././../../too-many-dots",
+ "/absolute": "/absolute",
+ "//example.org/scheme-relative": "//example.org/scheme-relative"
+}
diff --git a/test/jsonld/1.1/toRdf/e112-out.nq b/test/jsonld/1.1/toRdf/e112-out.nq
new file mode 100644
index 00000000..02838d8d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e112-out.nq
@@ -0,0 +1,10 @@
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/rel1./rel2#../../parent-parent-eq-root> "../../parent-parent-eq-root" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/rel1./rel2#?query=works> "?query=works" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/rel1./rel2#../../../../../still-root> "../../../../../still-root" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/rel1./rel2#../> "../" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/rel1./rel2#//example.org/scheme-relative> "//example.org/scheme-relative" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/rel1./rel2#link> "link" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/rel1./rel2#../parent> "../parent" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/rel1./rel2#./> "./" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/rel1./rel2#../.././.././../../too-many-dots> "../.././.././../../too-many-dots" .
+<http://example.com/some/deep/directory/and/file/relativePropertyIris> <http://example.com/rel1./rel2#/absolute> "/absolute" .
diff --git a/test/jsonld/1.1/toRdf/e113-in.jsonld b/test/jsonld/1.1/toRdf/e113-in.jsonld
new file mode 100644
index 00000000..0e26a9df
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e113-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "valueOf": "http://example.org/valueOf",
+ "toString": "http://example.org/toString"
+ },
+ "valueOf": "first",
+ "toString": "second"
+}
diff --git a/test/jsonld/1.1/toRdf/e113-out.nq b/test/jsonld/1.1/toRdf/e113-out.nq
new file mode 100644
index 00000000..0b5c9d82
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e113-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/toString> "second" .
+_:b0 <http://example.org/valueOf> "first" .
diff --git a/test/jsonld/1.1/toRdf/e114-in.jsonld b/test/jsonld/1.1/toRdf/e114-in.jsonld
new file mode 100644
index 00000000..82443b96
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e114-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "type1": "@type",
+ "type2": "@type"
+ },
+ "type1": "Type1",
+ "type2": "Type2"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e114-out.nq b/test/jsonld/1.1/toRdf/e114-out.nq
new file mode 100644
index 00000000..474ee66e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e114-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/Type1> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/Type2> .
diff --git a/test/jsonld/1.1/toRdf/e115-in.jsonld b/test/jsonld/1.1/toRdf/e115-in.jsonld
new file mode 100644
index 00000000..b2feca59
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e115-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": ""
+ },
+ "@id": "relativePropertyIris",
+ "link": "link"
+}
diff --git a/test/jsonld/1.1/toRdf/e116-in.jsonld b/test/jsonld/1.1/toRdf/e116-in.jsonld
new file mode 100644
index 00000000..4f953753
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e116-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@base": "http://example.com/some/deep/directory/and/file/",
+ "@vocab": "/relative"
+ },
+ "@id": "relativePropertyIris",
+ "link": "link"
+}
diff --git a/test/jsonld/1.1/toRdf/e117-in.jsonld b/test/jsonld/1.1/toRdf/e117-in.jsonld
new file mode 100644
index 00000000..c2f5ca35
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e117-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/vocab",
+ ":term": {"@type": "@id"}
+ },
+ ":term": "http://example.org/base"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e117-out.nq b/test/jsonld/1.1/toRdf/e117-out.nq
new file mode 100644
index 00000000..3fdac79f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e117-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab:term> <http://example.org/base> .
diff --git a/test/jsonld/1.1/toRdf/e118-in.jsonld b/test/jsonld/1.1/toRdf/e118-in.jsonld
new file mode 100644
index 00000000..96a5d71d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e118-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {"@vocab": "http://schema.org/"},
+ "@id": "foo:bar-id",
+ "@type": "foo:bar-type",
+ "foo:bar": "is an absolute iri property",
+ "term": "is schema.org/term",
+ ":fish": "is schema.org/:fish"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e118-out.nq b/test/jsonld/1.1/toRdf/e118-out.nq
new file mode 100644
index 00000000..e9a76416
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e118-out.nq
@@ -0,0 +1,4 @@
+<foo:bar-id> <http://schema.org/term> "is schema.org/term" .
+<foo:bar-id> <foo:bar> "is an absolute iri property" .
+<foo:bar-id> <http://schema.org/:fish> "is schema.org/:fish" .
+<foo:bar-id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <foo:bar-type> .
diff --git a/test/jsonld/1.1/toRdf/e119-in.jsonld b/test/jsonld/1.1/toRdf/e119-in.jsonld
new file mode 100644
index 00000000..e1d2459e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e119-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@": "http://example.org/vocab/at",
+ "@foo.bar": "http://example.org/vocab/foo.bar",
+ "@ignoreMe": "http://example.org/vocab/ignoreMe"
+ },
+ "@": "allowed",
+ "@foo.bar": "allowed",
+ "@ignoreMe": "ignored"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e119-out.nq b/test/jsonld/1.1/toRdf/e119-out.nq
new file mode 100644
index 00000000..7c1ebf34
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e119-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/vocab/at> "allowed" .
+_:b0 <http://example.org/vocab/foo.bar> "allowed" .
diff --git a/test/jsonld/1.1/toRdf/e120-in.jsonld b/test/jsonld/1.1/toRdf/e120-in.jsonld
new file mode 100644
index 00000000..171f431c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e120-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.orb/vocab/",
+ "at": {"@id": "@"},
+ "foo.bar": {"@id": "@foo.bar"},
+ "ignoreMe": {"@id": "@ignoreMe"}
+ },
+ "at": "allowed",
+ "foo.bar": "allowed",
+ "ignoreMe": "resolves to @vocab"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e120-out.nq b/test/jsonld/1.1/toRdf/e120-out.nq
new file mode 100644
index 00000000..f1a253b9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e120-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.orb/vocab/@> "allowed" .
+_:b0 <http://example.orb/vocab/@foo.bar> "allowed" .
+_:b0 <http://example.orb/vocab/ignoreMe> "resolves to @vocab" .
diff --git a/test/jsonld/1.1/toRdf/e121-in.jsonld b/test/jsonld/1.1/toRdf/e121-in.jsonld
new file mode 100644
index 00000000..1b7f7fb2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e121-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@base": "http://example.org/",
+ "@vocab": "http://example.org/vocab/",
+ "at": {"@reverse": "@"},
+ "foo.bar": {"@reverse": "@foo.bar"}
+ },
+ "@id": "foo",
+ "at": {"@id": "allowed"},
+ "foo.bar": {"@id": "allowed"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e121-out.nq b/test/jsonld/1.1/toRdf/e121-out.nq
new file mode 100644
index 00000000..77b7eab7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e121-out.nq
@@ -0,0 +1,2 @@
+<http://example.org/allowed> <http://example.org/vocab/@foo.bar> <http://example.org/foo> .
+<http://example.org/allowed> <http://example.org/vocab/@> <http://example.org/foo> .
diff --git a/test/jsonld/1.1/toRdf/e122-in.jsonld b/test/jsonld/1.1/toRdf/e122-in.jsonld
new file mode 100644
index 00000000..528bf335
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e122-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@base": "http://example.org/"
+ },
+ "http://example.org/vocab/at": {"@id": "@"},
+ "http://example.org/vocab/foo.bar": {"@id": "@foo.bar"},
+ "http://example.org/vocab/ignoreme": {"@id": "@ignoreMe"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e122-out.nq b/test/jsonld/1.1/toRdf/e122-out.nq
new file mode 100644
index 00000000..83c698ab
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e122-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/vocab/at> <http://example.org/@> .
+_:b0 <http://example.org/vocab/foo.bar> <http://example.org/@foo.bar> .
diff --git a/test/jsonld/1.1/toRdf/e123-in.jsonld b/test/jsonld/1.1/toRdf/e123-in.jsonld
new file mode 100644
index 00000000..41a7a8b2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e123-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.com/foo",
+ "http://example.com/bar": {"@value": "bar", "@type": "http://example.com/baz z"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/e124-context.jsonld b/test/jsonld/1.1/toRdf/e124-context.jsonld
new file mode 100644
index 00000000..bd77d9a1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e124-context.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "prop": {
+ "@id": "ex:prop",
+ "@context": "e124-context.jsonld"
+ },
+ "value": {
+ "@id": "ex:value"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e124-in.jsonld b/test/jsonld/1.1/toRdf/e124-in.jsonld
new file mode 100644
index 00000000..ac16aaf2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e124-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": [
+ {
+ "@version": 1.1,
+ "ex": {
+ "@id": "http://example.org/",
+ "@prefix": true
+ }
+ },
+ {
+ "@vocab": "ex:ns/"
+ }
+ ],
+ "foo": "bar"
+}
diff --git a/test/jsonld/1.1/toRdf/e124-out.nq b/test/jsonld/1.1/toRdf/e124-out.nq
new file mode 100644
index 00000000..290c77cc
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e124-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/ns/foo> "bar" .
diff --git a/test/jsonld/1.1/toRdf/e125-context-1.jsonld b/test/jsonld/1.1/toRdf/e125-context-1.jsonld
new file mode 100644
index 00000000..514b9f12
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e125-context-1.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "prop": {
+ "@id": "ex:prop",
+ "@context": "e125-context-2.jsonld"
+ },
+ "value": {
+ "@id": "ex:value"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e125-context-2.jsonld b/test/jsonld/1.1/toRdf/e125-context-2.jsonld
new file mode 100644
index 00000000..539fc478
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e125-context-2.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "e125-context-1.jsonld"
+}
diff --git a/test/jsonld/1.1/toRdf/e125-in.jsonld b/test/jsonld/1.1/toRdf/e125-in.jsonld
new file mode 100644
index 00000000..92b3ef61
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e125-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": [
+ {
+ "@version": 1.1,
+ "ex": {
+ "@id": "http://example.org/",
+ "@prefix": true
+ }
+ },
+ {
+ "@vocab": "ex"
+ }
+ ],
+ "foo": "bar"
+}
diff --git a/test/jsonld/1.1/toRdf/e125-out.nq b/test/jsonld/1.1/toRdf/e125-out.nq
new file mode 100644
index 00000000..c6e92021
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e125-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/foo> "bar" .
diff --git a/test/jsonld/1.1/toRdf/e126-context-1.jsonld b/test/jsonld/1.1/toRdf/e126-context-1.jsonld
new file mode 100644
index 00000000..7c22a4f5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e126-context-1.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "e126-context-3.jsonld"
+}
diff --git a/test/jsonld/1.1/toRdf/e126-context-2.jsonld b/test/jsonld/1.1/toRdf/e126-context-2.jsonld
new file mode 100644
index 00000000..7c22a4f5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e126-context-2.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "e126-context-3.jsonld"
+}
diff --git a/test/jsonld/1.1/toRdf/e126-context-3.jsonld b/test/jsonld/1.1/toRdf/e126-context-3.jsonld
new file mode 100644
index 00000000..6b150166
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e126-context-3.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "prop": {
+ "@id": "ex:prop",
+ "@context": "e126-context-3.jsonld"
+ },
+ "value": {
+ "@id": "ex:value"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e126-context.jsonld b/test/jsonld/1.1/toRdf/e126-context.jsonld
new file mode 100644
index 00000000..548ae93f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e126-context.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "prop": {
+ "@id": "ex:prop",
+ "@context": "e126-context.jsonld"
+ },
+ "value": {
+ "@id": "ex:value"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e126-in.jsonld b/test/jsonld/1.1/toRdf/e126-in.jsonld
new file mode 100644
index 00000000..32f41007
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e126-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": "e126-context.jsonld",
+ "@id": "ex:id",
+ "prop": {
+ "value": "v"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e126-out.nq b/test/jsonld/1.1/toRdf/e126-out.nq
new file mode 100644
index 00000000..77fbff8f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e126-out.nq
@@ -0,0 +1,2 @@
+<ex:id> <ex:prop> _:b0 .
+_:b0 <ex:value> "v" .
diff --git a/test/jsonld/1.1/toRdf/e127-context-1.jsonld b/test/jsonld/1.1/toRdf/e127-context-1.jsonld
new file mode 100644
index 00000000..bd82f33d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e127-context-1.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "prop": {
+ "@id": "ex:prop",
+ "@context": "e127-context-2.jsonld"
+ },
+ "value": {
+ "@id": "ex:value"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e127-context-2.jsonld b/test/jsonld/1.1/toRdf/e127-context-2.jsonld
new file mode 100644
index 00000000..d7c1f2c9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e127-context-2.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "e127-context-1.jsonld"
+}
diff --git a/test/jsonld/1.1/toRdf/e127-in.jsonld b/test/jsonld/1.1/toRdf/e127-in.jsonld
new file mode 100644
index 00000000..dcde2823
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e127-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": "e127-context-1.jsonld",
+ "@id": "ex:id",
+ "prop": {
+ "value": "v"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e127-out.nq b/test/jsonld/1.1/toRdf/e127-out.nq
new file mode 100644
index 00000000..77fbff8f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e127-out.nq
@@ -0,0 +1,2 @@
+<ex:id> <ex:prop> _:b0 .
+_:b0 <ex:value> "v" .
diff --git a/test/jsonld/1.1/toRdf/e128-context-1.jsonld b/test/jsonld/1.1/toRdf/e128-context-1.jsonld
new file mode 100644
index 00000000..6586e453
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e128-context-1.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "e128-context-3.jsonld"
+}
diff --git a/test/jsonld/1.1/toRdf/e128-context-2.jsonld b/test/jsonld/1.1/toRdf/e128-context-2.jsonld
new file mode 100644
index 00000000..6586e453
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e128-context-2.jsonld
@@ -0,0 +1,3 @@
+{
+ "@context": "e128-context-3.jsonld"
+}
diff --git a/test/jsonld/1.1/toRdf/e128-context-3.jsonld b/test/jsonld/1.1/toRdf/e128-context-3.jsonld
new file mode 100644
index 00000000..5f71478b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e128-context-3.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "prop": {
+ "@id": "ex:prop",
+ "@context": "e128-context-3.jsonld"
+ },
+ "value": {
+ "@id": "ex:value"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e128-in.jsonld b/test/jsonld/1.1/toRdf/e128-in.jsonld
new file mode 100644
index 00000000..4da4e6c8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e128-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": [
+ "e128-context-1.jsonld",
+ "e128-context-2.jsonld"
+ ],
+ "@id": "ex:id",
+ "prop": {
+ "value": "v"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/e128-out.nq b/test/jsonld/1.1/toRdf/e128-out.nq
new file mode 100644
index 00000000..77fbff8f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e128-out.nq
@@ -0,0 +1,2 @@
+<ex:id> <ex:prop> _:b0 .
+_:b0 <ex:value> "v" .
diff --git a/test/jsonld/1.1/toRdf/e129-in.jsonld b/test/jsonld/1.1/toRdf/e129-in.jsonld
new file mode 100644
index 00000000..7724ee9d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e129-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": { "@base": "http://example" },
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/toRdf/e129-out.nq b/test/jsonld/1.1/toRdf/e129-out.nq
new file mode 100644
index 00000000..673e9067
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e129-out.nq
@@ -0,0 +1 @@
+<http://example/relative-iri> <http://prop> "value" .
diff --git a/test/jsonld/1.1/toRdf/e130-in.jsonld b/test/jsonld/1.1/toRdf/e130-in.jsonld
new file mode 100644
index 00000000..ea3f1778
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e130-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": { "@base": "http://example/base" },
+ "@id": "relative-iri",
+ "http://prop": "value"
+}
diff --git a/test/jsonld/1.1/toRdf/e130-out.nq b/test/jsonld/1.1/toRdf/e130-out.nq
new file mode 100644
index 00000000..673e9067
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/e130-out.nq
@@ -0,0 +1 @@
+<http://example/relative-iri> <http://prop> "value" .
diff --git a/test/jsonld/1.1/toRdf/ec01-in.jsonld b/test/jsonld/1.1/toRdf/ec01-in.jsonld
new file mode 100644
index 00000000..6ea8d9a1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/ec01-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/", "@index": true}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/ec02-in.jsonld b/test/jsonld/1.1/toRdf/ec02-in.jsonld
new file mode 100644
index 00000000..ce20b960
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/ec02-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@type": {}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/em01-in.jsonld b/test/jsonld/1.1/toRdf/em01-in.jsonld
new file mode 100644
index 00000000..ea465394
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/em01-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@container": "@context"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/en01-in.jsonld b/test/jsonld/1.1/toRdf/en01-in.jsonld
new file mode 100644
index 00000000..81408e66
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/en01-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@vocab": "http://example.org/"},
+ "@nest": "This should generate an error"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/en02-in.jsonld b/test/jsonld/1.1/toRdf/en02-in.jsonld
new file mode 100644
index 00000000..7af5e3b4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/en02-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@vocab": "http://example.org/"},
+ "@nest": true
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/en03-in.jsonld b/test/jsonld/1.1/toRdf/en03-in.jsonld
new file mode 100644
index 00000000..91d33886
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/en03-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@vocab": "http://example.org/"},
+ "@nest": 1
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/en04-in.jsonld b/test/jsonld/1.1/toRdf/en04-in.jsonld
new file mode 100644
index 00000000..11e246a3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/en04-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@vocab": "http://example.org/"},
+ "@nest": {"@value": "This should generate an error"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/en05-in.jsonld b/test/jsonld/1.1/toRdf/en05-in.jsonld
new file mode 100644
index 00000000..a33791ca
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/en05-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@nest": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/en06-in.jsonld b/test/jsonld/1.1/toRdf/en06-in.jsonld
new file mode 100644
index 00000000..3015c7af
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/en06-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": {"@reverse": "http://example/term", "@nest": "@nest"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/ep02-in.jsonld b/test/jsonld/1.1/toRdf/ep02-in.jsonld
new file mode 100644
index 00000000..4caa4695
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/ep02-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@version": 1.1
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/ep03-in.jsonld b/test/jsonld/1.1/toRdf/ep03-in.jsonld
new file mode 100644
index 00000000..63c70f63
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/ep03-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@version": 1.0
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er01-in.jsonld b/test/jsonld/1.1/toRdf/er01-in.jsonld
new file mode 100644
index 00000000..4d295897
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er01-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@type": "@id"
+ },
+ "@type": "http://example.org/type"
+}
diff --git a/test/jsonld/1.1/toRdf/er02-in.jsonld b/test/jsonld/1.1/toRdf/er02-in.jsonld
new file mode 100644
index 00000000..64ea5895
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er02-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": "er02-in.jsonld",
+ "@id": "http://example/test#example"
+}
diff --git a/test/jsonld/1.1/toRdf/er03-in.jsonld b/test/jsonld/1.1/toRdf/er03-in.jsonld
new file mode 100644
index 00000000..524fd18b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er03-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": "er03-in.jsonld",
+ "@id": "http://example/test#example"
+}
diff --git a/test/jsonld/1.1/toRdf/er04-in.jsonld b/test/jsonld/1.1/toRdf/er04-in.jsonld
new file mode 100644
index 00000000..77391915
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er04-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": "tag:non-dereferencable-iri",
+ "@id": "http://example/test#example"
+}
diff --git a/test/jsonld/1.1/toRdf/er05-in.jsonld b/test/jsonld/1.1/toRdf/er05-in.jsonld
new file mode 100644
index 00000000..c1a1be6c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er05-in.jsonld
@@ -0,0 +1,4 @@
+[{
+ "@context": "er05-in.jsonld",
+ "@id": "http://example/test#example"
+}]
diff --git a/test/jsonld/1.1/toRdf/er06-in.jsonld b/test/jsonld/1.1/toRdf/er06-in.jsonld
new file mode 100644
index 00000000..f30126f0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er06-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": true,
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er07-in.jsonld b/test/jsonld/1.1/toRdf/er07-in.jsonld
new file mode 100644
index 00000000..17033fc0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er07-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@base": true},
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er08-in.jsonld b/test/jsonld/1.1/toRdf/er08-in.jsonld
new file mode 100644
index 00000000..af74aecb
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er08-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@vocab": true},
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er09-in.jsonld b/test/jsonld/1.1/toRdf/er09-in.jsonld
new file mode 100644
index 00000000..d35c6348
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er09-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@language": true},
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er10-in.jsonld b/test/jsonld/1.1/toRdf/er10-in.jsonld
new file mode 100644
index 00000000..f686eac9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er10-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "term:term"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er11-in.jsonld b/test/jsonld/1.1/toRdf/er11-in.jsonld
new file mode 100644
index 00000000..f42f32d7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er11-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": true
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er12-in.jsonld b/test/jsonld/1.1/toRdf/er12-in.jsonld
new file mode 100644
index 00000000..5d4295ad
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er12-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@type": true}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er13-in.jsonld b/test/jsonld/1.1/toRdf/er13-in.jsonld
new file mode 100644
index 00000000..9a968432
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er13-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@type": "_:not-an-iri"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er14-in.jsonld b/test/jsonld/1.1/toRdf/er14-in.jsonld
new file mode 100644
index 00000000..c6b1007e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er14-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@reverse": "http://example/reverse"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er15-in.jsonld b/test/jsonld/1.1/toRdf/er15-in.jsonld
new file mode 100644
index 00000000..2a805bc8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er15-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@reverse": true}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er17-in.jsonld b/test/jsonld/1.1/toRdf/er17-in.jsonld
new file mode 100644
index 00000000..403acef9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er17-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@reverse": "http://example/reverse", "@container": "@list"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er18-in.jsonld b/test/jsonld/1.1/toRdf/er18-in.jsonld
new file mode 100644
index 00000000..9a9e2afa
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er18-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": true}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er19-in.jsonld b/test/jsonld/1.1/toRdf/er19-in.jsonld
new file mode 100644
index 00000000..04f67abe
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er19-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "@context"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er20-in.jsonld b/test/jsonld/1.1/toRdf/er20-in.jsonld
new file mode 100644
index 00000000..dff3ba52
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er20-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@container": "@set"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er21-in.jsonld b/test/jsonld/1.1/toRdf/er21-in.jsonld
new file mode 100644
index 00000000..8fdc3753
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er21-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@container": "@id"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er22-in.jsonld b/test/jsonld/1.1/toRdf/er22-in.jsonld
new file mode 100644
index 00000000..37f0e71c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er22-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@language": true}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er23-in.jsonld b/test/jsonld/1.1/toRdf/er23-in.jsonld
new file mode 100644
index 00000000..3162bb46
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er23-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example/term", "@type": "relative/iri"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er24-in.jsonld b/test/jsonld/1.1/toRdf/er24-in.jsonld
new file mode 100644
index 00000000..f5e78e4d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er24-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [{"@list": ["baz"]}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er25-in.jsonld b/test/jsonld/1.1/toRdf/er25-in.jsonld
new file mode 100644
index 00000000..0b66e9af
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er25-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@id": "http://example/foo",
+ "@reverse": {
+ "@id": "http://example/bar"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er26-in.jsonld b/test/jsonld/1.1/toRdf/er26-in.jsonld
new file mode 100644
index 00000000..36a12b8b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er26-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "id": "@id",
+ "ID": "@id"
+ },
+ "id": "http://example/foo",
+ "ID": "http://example/bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er27-in.jsonld b/test/jsonld/1.1/toRdf/er27-in.jsonld
new file mode 100644
index 00000000..76d36d5a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er27-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@id": true
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er28-in.jsonld b/test/jsonld/1.1/toRdf/er28-in.jsonld
new file mode 100644
index 00000000..6c8f7762
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er28-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@type": true
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er29-in.jsonld b/test/jsonld/1.1/toRdf/er29-in.jsonld
new file mode 100644
index 00000000..c669c9e5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er29-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/prop": {"@value": ["foo"]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er30-in.jsonld b/test/jsonld/1.1/toRdf/er30-in.jsonld
new file mode 100644
index 00000000..abba6cee
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er30-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/prop": {"@value": "foo", "@language": true}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er31-in.jsonld b/test/jsonld/1.1/toRdf/er31-in.jsonld
new file mode 100644
index 00000000..f0c5c462
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er31-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "http://example.com/vocab/indexMap": {
+ "@value": "simple string",
+ "@language": "en",
+ "@index": true
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er32-in.jsonld b/test/jsonld/1.1/toRdf/er32-in.jsonld
new file mode 100644
index 00000000..75ec1a87
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er32-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.com/foo": {"@list": [{"@list": ["baz"]}]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er33-in.jsonld b/test/jsonld/1.1/toRdf/er33-in.jsonld
new file mode 100644
index 00000000..a57607fa
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er33-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "http://example/prop": {
+ "@reverse": true
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er34-in.jsonld b/test/jsonld/1.1/toRdf/er34-in.jsonld
new file mode 100644
index 00000000..d48c68b8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er34-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@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": "Dave Longley"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/er35-in.jsonld b/test/jsonld/1.1/toRdf/er35-in.jsonld
new file mode 100644
index 00000000..c523c942
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er35-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@container": "@language"
+ }
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": true
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/er36-in.jsonld b/test/jsonld/1.1/toRdf/er36-in.jsonld
new file mode 100644
index 00000000..8e9ff8b5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er36-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term": {"@reverse": "http://example/reverse"}
+ },
+ "@id": "http://example/foo",
+ "term": {"@list": ["http://example/bar"]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er37-in.jsonld b/test/jsonld/1.1/toRdf/er37-in.jsonld
new file mode 100644
index 00000000..0a2d1750
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er37-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@value": "bar", "@id": "http://example/baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er38-in.jsonld b/test/jsonld/1.1/toRdf/er38-in.jsonld
new file mode 100644
index 00000000..20d4a7b7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er38-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@value": "bar", "@language": "en", "@type": "http://example/type"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er39-in.jsonld b/test/jsonld/1.1/toRdf/er39-in.jsonld
new file mode 100644
index 00000000..0d03781b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er39-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@value": true, "@language": "en"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er40-in.jsonld b/test/jsonld/1.1/toRdf/er40-in.jsonld
new file mode 100644
index 00000000..ea9b6303
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er40-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/foo": {"@value": "bar", "@type": "_:dt"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er41-in.jsonld b/test/jsonld/1.1/toRdf/er41-in.jsonld
new file mode 100644
index 00000000..c7ad513c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er41-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example/prop": {"@list": ["foo"], "@id": "http://example/bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er42-in.jsonld b/test/jsonld/1.1/toRdf/er42-in.jsonld
new file mode 100644
index 00000000..41360255
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er42-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@type": {"@container": "@set"}
+ },
+ "@type": "http://example.org/type"
+}
diff --git a/test/jsonld/1.1/toRdf/er43-in.jsonld b/test/jsonld/1.1/toRdf/er43-in.jsonld
new file mode 100644
index 00000000..36d8cac7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er43-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/test/jsonld/1.1/toRdf/er44-in.jsonld b/test/jsonld/1.1/toRdf/er44-in.jsonld
new file mode 100644
index 00000000..257bd312
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er44-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": [
+ {
+ "v": "http://example.com/vocab#",
+ "v:term": "v:somethingElse",
+ "v:termId": { "@id": "v:somethingElseId" }
+ }
+ ],
+ "v:term": "value of v:term",
+ "v:termId": "value of v:termId"
+}
diff --git a/test/jsonld/1.1/toRdf/er45-in.jsonld b/test/jsonld/1.1/toRdf/er45-in.jsonld
new file mode 100644
index 00000000..598c43fe
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er45-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/test/jsonld/1.1/toRdf/er48-in.jsonld b/test/jsonld/1.1/toRdf/er48-in.jsonld
new file mode 100644
index 00000000..c3ad292a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er48-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "./something": "http://example.com/vocab#somethingElse"
+ },
+ "./something": "something"
+}
diff --git a/test/jsonld/1.1/toRdf/er49-in.jsonld b/test/jsonld/1.1/toRdf/er49-in.jsonld
new file mode 100644
index 00000000..72c0a72d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er49-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@vocab": "http:/example.org",
+ "./something": {"@type": "@id", "@prefix": true}
+ },
+ "./something": "something"
+}
diff --git a/test/jsonld/1.1/toRdf/er50-in.jsonld b/test/jsonld/1.1/toRdf/er50-in.jsonld
new file mode 100644
index 00000000..a54cc667
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er50-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "rev": {"@reverse": "not an IRI"}
+ },
+ "@id": "http://example.org/foo",
+ "rev": {"@id": "http://example.org/bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er51-in.jsonld b/test/jsonld/1.1/toRdf/er51-in.jsonld
new file mode 100644
index 00000000..dc9ace8e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er51-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"value": "@value"},
+ "http://example/prop": {"value": ["foo"]}
+}
diff --git a/test/jsonld/1.1/toRdf/er52-in.jsonld b/test/jsonld/1.1/toRdf/er52-in.jsonld
new file mode 100644
index 00000000..3bd32cf3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er52-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term"},
+ "": {"@id": "http://example.org/empty"}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er53-in.jsonld b/test/jsonld/1.1/toRdf/er53-in.jsonld
new file mode 100644
index 00000000..e8ad3ff5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er53-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "term": {"@id": "http://example.org/term", "@prefix": 10}
+ },
+ "@id": "http://example/test#example"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er54-in.jsonld b/test/jsonld/1.1/toRdf/er54-in.jsonld
new file mode 100644
index 00000000..6b440ff2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er54-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "ex:prop": {
+ "@value": "value",
+ "@type": ["ex:a", "ex:b"]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/er55-in.jsonld b/test/jsonld/1.1/toRdf/er55-in.jsonld
new file mode 100644
index 00000000..eb45eeae
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/er55-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "prop": {
+ "@id": "ex:prop",
+ "@type": ["ex:a", "ex:b"]
+ }
+ },
+ "prop": "value"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/in01-in.jsonld b/test/jsonld/1.1/toRdf/in01-in.jsonld
new file mode 100644
index 00000000..145c36e7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in01-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": [{
+ "prop": "value2"
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/in01-out.nq b/test/jsonld/1.1/toRdf/in01-out.nq
new file mode 100644
index 00000000..908b643e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in01-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/prop> "value" .
+_:b1 <http://example.org/prop> "value2" .
diff --git a/test/jsonld/1.1/toRdf/in02-in.jsonld b/test/jsonld/1.1/toRdf/in02-in.jsonld
new file mode 100644
index 00000000..a976cce7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in02-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": {
+ "prop": "value2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/in02-out.nq b/test/jsonld/1.1/toRdf/in02-out.nq
new file mode 100644
index 00000000..908b643e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in02-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/prop> "value" .
+_:b1 <http://example.org/prop> "value2" .
diff --git a/test/jsonld/1.1/toRdf/in03-in.jsonld b/test/jsonld/1.1/toRdf/in03-in.jsonld
new file mode 100644
index 00000000..ed476d43
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in03-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "included1": "@included",
+ "included2": "@included"
+ },
+ "included1": {"prop": "value1"},
+ "included2": {"prop": "value2"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/in03-out.nq b/test/jsonld/1.1/toRdf/in03-out.nq
new file mode 100644
index 00000000..4ccc9288
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in03-out.nq
@@ -0,0 +1,2 @@
+_:b1 <http://example.org/prop> "value1" .
+_:b2 <http://example.org/prop> "value2" .
diff --git a/test/jsonld/1.1/toRdf/in04-in.jsonld b/test/jsonld/1.1/toRdf/in04-in.jsonld
new file mode 100644
index 00000000..2436a454
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in04-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": "value",
+ "@included": {
+ "prop": "value2",
+ "@included": {
+ "prop": "value3"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/in04-out.nq b/test/jsonld/1.1/toRdf/in04-out.nq
new file mode 100644
index 00000000..04ef8b35
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in04-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.org/prop> "value" .
+_:b1 <http://example.org/prop> "value2" .
+_:b2 <http://example.org/prop> "value3" .
diff --git a/test/jsonld/1.1/toRdf/in05-in.jsonld b/test/jsonld/1.1/toRdf/in05-in.jsonld
new file mode 100644
index 00000000..b94709b4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in05-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "prop": {
+ "@type": "Foo",
+ "@included": {
+ "@type": "Bar"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/in05-out.nq b/test/jsonld/1.1/toRdf/in05-out.nq
new file mode 100644
index 00000000..939df601
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in05-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.org/prop> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/Foo> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/Bar> .
diff --git a/test/jsonld/1.1/toRdf/in06-in.jsonld b/test/jsonld/1.1/toRdf/in06-in.jsonld
new file mode 100644
index 00000000..2e5339f5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in06-in.jsonld
@@ -0,0 +1,90 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/vocab#",
+ "@base": "http://example.org/base/",
+ "id": "@id",
+ "type": "@type",
+ "data": "@nest",
+ "attributes": "@nest",
+ "links": "@nest",
+ "relationships": "@nest",
+ "included": "@included",
+ "self": {"@type": "@id"},
+ "related": {"@type": "@id"},
+ "comments": {
+ "@context": {
+ "data": null
+ }
+ }
+ },
+ "data": [{
+ "type": "articles",
+ "id": "1",
+ "attributes": {
+ "title": "JSON:API paints my bikeshed!"
+ },
+ "links": {
+ "self": "http://example.com/articles/1"
+ },
+ "relationships": {
+ "author": {
+ "links": {
+ "self": "http://example.com/articles/1/relationships/author",
+ "related": "http://example.com/articles/1/author"
+ },
+ "data": { "type": "people", "id": "9" }
+ },
+ "comments": {
+ "links": {
+ "self": "http://example.com/articles/1/relationships/comments",
+ "related": "http://example.com/articles/1/comments"
+ },
+ "data": [
+ { "type": "comments", "id": "5" },
+ { "type": "comments", "id": "12" }
+ ]
+ }
+ }
+ }],
+ "included": [{
+ "type": "people",
+ "id": "9",
+ "attributes": {
+ "first-name": "Dan",
+ "last-name": "Gebhardt",
+ "twitter": "dgeb"
+ },
+ "links": {
+ "self": "http://example.com/people/9"
+ }
+ }, {
+ "type": "comments",
+ "id": "5",
+ "attributes": {
+ "body": "First!"
+ },
+ "relationships": {
+ "author": {
+ "data": { "type": "people", "id": "2" }
+ }
+ },
+ "links": {
+ "self": "http://example.com/comments/5"
+ }
+ }, {
+ "type": "comments",
+ "id": "12",
+ "attributes": {
+ "body": "I like XML better"
+ },
+ "relationships": {
+ "author": {
+ "data": { "type": "people", "id": "9" }
+ }
+ },
+ "links": {
+ "self": "http://example.com/comments/12"
+ }
+ }]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/in06-out.nq b/test/jsonld/1.1/toRdf/in06-out.nq
new file mode 100644
index 00000000..23bae5da
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in06-out.nq
@@ -0,0 +1,23 @@
+<http://example.org/base/1> <http://example.org/vocab#author> <http://example.org/base/9> .
+<http://example.org/base/1> <http://example.org/vocab#comments> _:b0 .
+<http://example.org/base/1> <http://example.org/vocab#self> <http://example.com/articles/1> .
+<http://example.org/base/1> <http://example.org/vocab#title> "JSON:API paints my bikeshed!" .
+<http://example.org/base/1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#articles> .
+<http://example.org/base/2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#people> .
+<http://example.org/base/5> <http://example.org/vocab#author> <http://example.org/base/2> .
+<http://example.org/base/5> <http://example.org/vocab#body> "First!" .
+<http://example.org/base/5> <http://example.org/vocab#self> <http://example.com/comments/5> .
+<http://example.org/base/5> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#comments> .
+<http://example.org/base/9> <http://example.org/vocab#first-name> "Dan" .
+<http://example.org/base/9> <http://example.org/vocab#last-name> "Gebhardt" .
+<http://example.org/base/9> <http://example.org/vocab#related> <http://example.com/articles/1/author> .
+<http://example.org/base/9> <http://example.org/vocab#self> <http://example.com/articles/1/relationships/author> .
+<http://example.org/base/9> <http://example.org/vocab#self> <http://example.com/people/9> .
+<http://example.org/base/9> <http://example.org/vocab#twitter> "dgeb" .
+<http://example.org/base/9> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#people> .
+<http://example.org/base/12> <http://example.org/vocab#author> <http://example.org/base/9> .
+<http://example.org/base/12> <http://example.org/vocab#body> "I like XML better" .
+<http://example.org/base/12> <http://example.org/vocab#self> <http://example.com/comments/12> .
+<http://example.org/base/12> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/vocab#comments> .
+_:b0 <http://example.org/vocab#related> <http://example.com/articles/1/comments> .
+_:b0 <http://example.org/vocab#self> <http://example.com/articles/1/relationships/comments> .
diff --git a/test/jsonld/1.1/toRdf/in07-in.jsonld b/test/jsonld/1.1/toRdf/in07-in.jsonld
new file mode 100644
index 00000000..b7958e50
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in07-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "@included": "string"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/in08-in.jsonld b/test/jsonld/1.1/toRdf/in08-in.jsonld
new file mode 100644
index 00000000..01a245c3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in08-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "@included": {"@value": "value"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/in09-in.jsonld b/test/jsonld/1.1/toRdf/in09-in.jsonld
new file mode 100644
index 00000000..7ef08559
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/in09-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/"
+ },
+ "@included": {"@list": ["value"]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js01-in.jsonld b/test/jsonld/1.1/toRdf/js01-in.jsonld
new file mode 100644
index 00000000..ace09383
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js01-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#bool", "@type": "@json"}
+ },
+ "e": true
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js01-out.nq b/test/jsonld/1.1/toRdf/js01-out.nq
new file mode 100644
index 00000000..bac18733
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js01-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#bool> "true"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js02-in.jsonld b/test/jsonld/1.1/toRdf/js02-in.jsonld
new file mode 100644
index 00000000..65f32bf2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js02-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#bool", "@type": "@json"}
+ },
+ "e": false
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js02-out.nq b/test/jsonld/1.1/toRdf/js02-out.nq
new file mode 100644
index 00000000..7bb8fd1f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js02-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#bool> "false"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js03-in.jsonld b/test/jsonld/1.1/toRdf/js03-in.jsonld
new file mode 100644
index 00000000..3f98c4fc
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js03-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#double", "@type": "@json"}
+ },
+ "e": 1.23
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js03-out.nq b/test/jsonld/1.1/toRdf/js03-out.nq
new file mode 100644
index 00000000..1fbd15a4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js03-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#double> "1.23"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js04-in.jsonld b/test/jsonld/1.1/toRdf/js04-in.jsonld
new file mode 100644
index 00000000..dfd129c8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js04-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#double", "@type": "@json"}
+ },
+ "e": 0.0e0
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js04-out.nq b/test/jsonld/1.1/toRdf/js04-out.nq
new file mode 100644
index 00000000..1172726d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js04-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#double> "0"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js05-in.jsonld b/test/jsonld/1.1/toRdf/js05-in.jsonld
new file mode 100644
index 00000000..22702493
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js05-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#integer", "@type": "@json"}
+ },
+ "e": 123
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js05-out.nq b/test/jsonld/1.1/toRdf/js05-out.nq
new file mode 100644
index 00000000..d8c47b46
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js05-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#integer> "123"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js06-in.jsonld b/test/jsonld/1.1/toRdf/js06-in.jsonld
new file mode 100644
index 00000000..b0c57352
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js06-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#object", "@type": "@json"}
+ },
+ "e": {"foo": "bar"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js06-out.nq b/test/jsonld/1.1/toRdf/js06-out.nq
new file mode 100644
index 00000000..4909a3d6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js06-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#object> "{\"foo\":\"bar\"}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js07-in.jsonld b/test/jsonld/1.1/toRdf/js07-in.jsonld
new file mode 100644
index 00000000..8caa6c9f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js07-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#array", "@type": "@json"}
+ },
+ "e": [{"foo": "bar"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js07-out.nq b/test/jsonld/1.1/toRdf/js07-out.nq
new file mode 100644
index 00000000..f2ef8961
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js07-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#array> "[{\"foo\":\"bar\"}]"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js08-in.jsonld b/test/jsonld/1.1/toRdf/js08-in.jsonld
new file mode 100644
index 00000000..16ae134f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js08-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": [
+ 56,
+ {
+ "d": true,
+ "10": null,
+ "1": [ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js08-out.nq b/test/jsonld/1.1/toRdf/js08-out.nq
new file mode 100644
index 00000000..b27b6b7d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js08-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#c14n> "[56,{\"1\":[],\"10\":null,\"d\":true}]"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js09-in.jsonld b/test/jsonld/1.1/toRdf/js09-in.jsonld
new file mode 100644
index 00000000..3ade2918
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js09-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": {
+ "peach": "This sorting order",
+ "péché": "is wrong according to French",
+ "pêche": "but canonicalization MUST",
+ "sin": "ignore locale"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js09-out.nq b/test/jsonld/1.1/toRdf/js09-out.nq
new file mode 100644
index 00000000..aedbd732
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js09-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#c14n> "{\"peach\":\"This sorting order\",\"péché\":\"is wrong according to French\",\"pêche\":\"but canonicalization MUST\",\"sin\":\"ignore locale\"}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js10-in.jsonld b/test/jsonld/1.1/toRdf/js10-in.jsonld
new file mode 100644
index 00000000..5a34da26
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js10-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": {
+ "1": {"f": {"f": "hi","F": 5} ," ": 56.0},
+ "10": { },
+ "": "empty",
+ "a": { },
+ "111": [ {"e": "yes","E": "no" } ],
+ "A": { }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js10-out.nq b/test/jsonld/1.1/toRdf/js10-out.nq
new file mode 100644
index 00000000..055426c8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js10-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#c14n> "{\"\":\"empty\",\"1\":{\" \":56,\"f\":{\"F\":5,\"f\":\"hi\"}},\"10\":{},\"111\":[{\"E\":\"no\",\"e\":\"yes\"}],\"A\":{},\"a\":{}}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js11-in.jsonld b/test/jsonld/1.1/toRdf/js11-in.jsonld
new file mode 100644
index 00000000..8f6f20b4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js11-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": {
+ "Unnormalized Unicode":"A\u030a"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js11-out.nq b/test/jsonld/1.1/toRdf/js11-out.nq
new file mode 100644
index 00000000..0d41a89d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js11-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#c14n> "{\"Unnormalized Unicode\":\"Å\"}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js12-in.jsonld b/test/jsonld/1.1/toRdf/js12-in.jsonld
new file mode 100644
index 00000000..325b874a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js12-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": {
+ "numbers": [333333333.33333329, 1E30, 4.50, 2e-3, 0.000000000000000000000000001],
+ "string": "\u20ac$\u000F\u000aA'\u0042\u0022\u005c\\\"\/",
+ "literals": [null, true, false]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js12-out.nq b/test/jsonld/1.1/toRdf/js12-out.nq
new file mode 100644
index 00000000..1c5d73f9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js12-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#c14n> "{\"literals\":[null,true,false],\"numbers\":[333333333.3333333,1e+30,4.5,0.002,1e-27],\"string\":\"€$\\u000f\\nA'B\\\"\\\\\\\\\\\"/\"}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js13-in.jsonld b/test/jsonld/1.1/toRdf/js13-in.jsonld
new file mode 100644
index 00000000..dc476ae9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js13-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#c14n", "@type": "@json"}
+ },
+ "e": {
+ "\u20ac": "Euro Sign",
+ "\r": "Carriage Return",
+ "\u000a": "Newline",
+ "1": "One",
+ "\u0080": "Control\u007f",
+ "\ud83d\ude02": "Smiley",
+ "\u00f6": "Latin Small Letter O With Diaeresis",
+ "</script>": "Browser Challenge"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js13-out.nq b/test/jsonld/1.1/toRdf/js13-out.nq
new file mode 100644
index 00000000..f0fc6770
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js13-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#c14n> "{\"\\n\":\"Newline\",\"\\r\":\"Carriage Return\",\"1\":\"One\",\"</script>\":\"Browser Challenge\",\"€\":\"Control\",\"ö\":\"Latin Small Letter O With Diaeresis\",\"€\":\"Euro Sign\",\"😂\":\"Smiley\"}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> . \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js14-in.jsonld b/test/jsonld/1.1/toRdf/js14-in.jsonld
new file mode 100644
index 00000000..837a69a4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js14-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#array", "@type": "@json"}
+ },
+ "e": [{"e": "bar"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js14-out.nq b/test/jsonld/1.1/toRdf/js14-out.nq
new file mode 100644
index 00000000..c90e5b20
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js14-out.nq
@@ -0,0 +1 @@
+_:c14n0 <http://example.org/vocab#array> "[{\"e\":\"bar\"}]"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/toRdf/js15-in.jsonld b/test/jsonld/1.1/toRdf/js15-in.jsonld
new file mode 100644
index 00000000..cc9820a5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js15-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.org/vocab#object": [{"@value": {"foo": "bar"}, "@type": "@json"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js15-out.nq b/test/jsonld/1.1/toRdf/js15-out.nq
new file mode 100644
index 00000000..29433120
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js15-out.nq
@@ -0,0 +1 @@
+_:c14n0 <http://example.org/vocab#object> "{\"foo\":\"bar\"}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/toRdf/js16-in.jsonld b/test/jsonld/1.1/toRdf/js16-in.jsonld
new file mode 100644
index 00000000..e40669f3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js16-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"@version": 1.1, "value": "@value", "type": "@type", "json": "@json"},
+ "http://example.org/vocab#object": [{"value": {"foo": "bar"}, "type": "json"}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js16-out.nq b/test/jsonld/1.1/toRdf/js16-out.nq
new file mode 100644
index 00000000..29433120
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js16-out.nq
@@ -0,0 +1 @@
+_:c14n0 <http://example.org/vocab#object> "{\"foo\":\"bar\"}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/toRdf/js17-in.jsonld b/test/jsonld/1.1/toRdf/js17-in.jsonld
new file mode 100644
index 00000000..08fc84f7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js17-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#string", "@type": "@json"}
+ },
+ "e": "string"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js17-out.nq b/test/jsonld/1.1/toRdf/js17-out.nq
new file mode 100644
index 00000000..93143d26
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js17-out.nq
@@ -0,0 +1 @@
+_:c14n0 <http://example.org/vocab#string> "\"string\""^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/toRdf/js18-in.jsonld b/test/jsonld/1.1/toRdf/js18-in.jsonld
new file mode 100644
index 00000000..56411149
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js18-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "e": {"@id": "http://example.org/vocab#null", "@type": "@json"}
+ },
+ "e": null
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js18-out.nq b/test/jsonld/1.1/toRdf/js18-out.nq
new file mode 100644
index 00000000..de3cac89
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js18-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#null> "null"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/toRdf/js19-in.jsonld b/test/jsonld/1.1/toRdf/js19-in.jsonld
new file mode 100644
index 00000000..7da97503
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js19-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "type": "@type"
+ },
+ "ex:foo": {
+ "type": "@json",
+ "@value": {
+ "test": 1
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/js19-out.nq b/test/jsonld/1.1/toRdf/js19-out.nq
new file mode 100644
index 00000000..e1018ffa
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js19-out.nq
@@ -0,0 +1 @@
+_:b0 <ex:foo> "{\"test\":1}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/toRdf/js20-in.jsonld b/test/jsonld/1.1/toRdf/js20-in.jsonld
new file mode 100644
index 00000000..f1799a35
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js20-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "value": "@value"
+ },
+ "ex:foo": {
+ "@type": "@json",
+ "value": {
+ "test": 1
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/js20-out.nq b/test/jsonld/1.1/toRdf/js20-out.nq
new file mode 100644
index 00000000..e1018ffa
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js20-out.nq
@@ -0,0 +1 @@
+_:b0 <ex:foo> "{\"test\":1}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/toRdf/js21-in.jsonld b/test/jsonld/1.1/toRdf/js21-in.jsonld
new file mode 100644
index 00000000..85ccb0cd
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js21-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "ex:foo": {
+ "@type": "@json"
+ }
+ },
+ "ex:foo": {
+ "@context": "ex:not:a:context",
+ "test": 1
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/js21-out.nq b/test/jsonld/1.1/toRdf/js21-out.nq
new file mode 100644
index 00000000..eafb23e6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js21-out.nq
@@ -0,0 +1 @@
+_:c14n0 <ex:foo> "{\"@context\":\"ex:not:a:context\",\"test\":1}"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/toRdf/js22-in.jsonld b/test/jsonld/1.1/toRdf/js22-in.jsonld
new file mode 100644
index 00000000..7d2d4320
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js22-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.org/vocab#null": {"@value": null, "@type": "@json"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js22-out.nq b/test/jsonld/1.1/toRdf/js22-out.nq
new file mode 100644
index 00000000..de3cac89
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js22-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#null> "null"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/toRdf/js23-in.jsonld b/test/jsonld/1.1/toRdf/js23-in.jsonld
new file mode 100644
index 00000000..d45cd202
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js23-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "http://example.org/vocab#null": {"@value": [], "@type": "@json"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/js23-out.nq b/test/jsonld/1.1/toRdf/js23-out.nq
new file mode 100644
index 00000000..e30de539
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/js23-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/vocab#null> "[]"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#JSON> .
diff --git a/test/jsonld/1.1/toRdf/li01-in.jsonld b/test/jsonld/1.1/toRdf/li01-in.jsonld
new file mode 100644
index 00000000..6cc2c82b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li01-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example/A",
+ "http://example.com/foo": {"@list": [{"@list": ["baz"]}]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li01-out.nq b/test/jsonld/1.1/toRdf/li01-out.nq
new file mode 100644
index 00000000..30142060
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li01-out.nq
@@ -0,0 +1,5 @@
+<http://example/A> <http://example.com/foo> _:l1 .
+_:l1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:l2 .
+_:l1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:l2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "baz" .
+_:l2 <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/test/jsonld/1.1/toRdf/li02-in.jsonld b/test/jsonld/1.1/toRdf/li02-in.jsonld
new file mode 100644
index 00000000..7d50dc38
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li02-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example/A",
+ "http://example.com/foo": {"@list": [{"@list": []}]}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li02-out.nq b/test/jsonld/1.1/toRdf/li02-out.nq
new file mode 100644
index 00000000..7239ef09
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li02-out.nq
@@ -0,0 +1,3 @@
+<http://example/A> <http://example.com/foo> _:l1 .
+_:l1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:l1 <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/test/jsonld/1.1/toRdf/li03-in.jsonld b/test/jsonld/1.1/toRdf/li03-in.jsonld
new file mode 100644
index 00000000..f5e78e4d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li03-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [{"@list": ["baz"]}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li03-out.nq b/test/jsonld/1.1/toRdf/li03-out.nq
new file mode 100644
index 00000000..cc8e9567
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li03-out.nq
@@ -0,0 +1,5 @@
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b2 .
+_: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> "baz" .
+_: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/test/jsonld/1.1/toRdf/li04-in.jsonld b/test/jsonld/1.1/toRdf/li04-in.jsonld
new file mode 100644
index 00000000..437398a9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li04-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [{"@list": []}]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li04-out.nq b/test/jsonld/1.1/toRdf/li04-out.nq
new file mode 100644
index 00000000..05526458
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li04-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_: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/test/jsonld/1.1/toRdf/li05-in.jsonld b/test/jsonld/1.1/toRdf/li05-in.jsonld
new file mode 100644
index 00000000..e38ec8ce
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li05-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [["baz"]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li05-out.nq b/test/jsonld/1.1/toRdf/li05-out.nq
new file mode 100644
index 00000000..cc8e9567
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li05-out.nq
@@ -0,0 +1,5 @@
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b2 .
+_: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> "baz" .
+_: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/test/jsonld/1.1/toRdf/li06-in.jsonld b/test/jsonld/1.1/toRdf/li06-in.jsonld
new file mode 100644
index 00000000..81c8b23e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li06-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [[]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li06-out.nq b/test/jsonld/1.1/toRdf/li06-out.nq
new file mode 100644
index 00000000..05526458
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li06-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_: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/test/jsonld/1.1/toRdf/li07-in.jsonld b/test/jsonld/1.1/toRdf/li07-in.jsonld
new file mode 100644
index 00000000..e01353af
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li07-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [[["baz"]]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li07-out.nq b/test/jsonld/1.1/toRdf/li07-out.nq
new file mode 100644
index 00000000..37afaabb
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li07-out.nq
@@ -0,0 +1,7 @@
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b2 .
+_: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> _:b3 .
+_: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> "baz" .
+_: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/test/jsonld/1.1/toRdf/li08-in.jsonld b/test/jsonld/1.1/toRdf/li08-in.jsonld
new file mode 100644
index 00000000..b14f5623
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li08-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [[[]]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li08-out.nq b/test/jsonld/1.1/toRdf/li08-out.nq
new file mode 100644
index 00000000..cdf4162d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li08-out.nq
@@ -0,0 +1,5 @@
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b2 .
+_: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> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_: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/test/jsonld/1.1/toRdf/li09-in.jsonld b/test/jsonld/1.1/toRdf/li09-in.jsonld
new file mode 100644
index 00000000..58aea4aa
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li09-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [["a"], ["b"]]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li09-out.nq b/test/jsonld/1.1/toRdf/li09-out.nq
new file mode 100644
index 00000000..cee9190a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li09-out.nq
@@ -0,0 +1,9 @@
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b2 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b3 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_: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> _:b4 .
+_: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> "b" .
+_: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/test/jsonld/1.1/toRdf/li10-in.jsonld b/test/jsonld/1.1/toRdf/li10-in.jsonld
new file mode 100644
index 00000000..b1db13b1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li10-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": {"@id": "http://example.com/foo", "@container": "@list"}},
+ "foo": [["a"], "b"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li10-out.nq b/test/jsonld/1.1/toRdf/li10-out.nq
new file mode 100644
index 00000000..bcfd2df2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li10-out.nq
@@ -0,0 +1,7 @@
+_:b0 <http://example.com/foo> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b2 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b3 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_: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> "b" .
+_: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/test/jsonld/1.1/toRdf/li11-in.jsonld b/test/jsonld/1.1/toRdf/li11-in.jsonld
new file mode 100644
index 00000000..d1a6bb10
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li11-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@base": "ex:",
+ "list": {
+ "@id": "foo:bar",
+ "@container": "@list",
+ "@type": "@id"
+ }
+ },
+ "list": ["test"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li11-out.nq b/test/jsonld/1.1/toRdf/li11-out.nq
new file mode 100644
index 00000000..7198ae30
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li11-out.nq
@@ -0,0 +1,3 @@
+_:b0 <foo:bar> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <ex:test> .
+_: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/test/jsonld/1.1/toRdf/li12-in.jsonld b/test/jsonld/1.1/toRdf/li12-in.jsonld
new file mode 100644
index 00000000..66c2f033
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li12-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@base": "http://invalid/<>/",
+ "list": {
+ "@id": "foo:bar",
+ "@container": "@list",
+ "@type": "@id"
+ }
+ },
+ "list": ["test"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li12-out.nq b/test/jsonld/1.1/toRdf/li12-out.nq
new file mode 100644
index 00000000..5f1ff132
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li12-out.nq
@@ -0,0 +1,2 @@
+_:b0 <foo:bar> _:b1 .
+_: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/test/jsonld/1.1/toRdf/li13-in.jsonld b/test/jsonld/1.1/toRdf/li13-in.jsonld
new file mode 100644
index 00000000..ef534820
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li13-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@base": "",
+ "list": {
+ "@id": "foo:bar",
+ "@container": "@list",
+ "@type": "@id"
+ }
+ },
+ "list": ["test"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li13-out.nq b/test/jsonld/1.1/toRdf/li13-out.nq
new file mode 100644
index 00000000..8e9ab024
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li13-out.nq
@@ -0,0 +1,3 @@
+_:b0 <foo:bar> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/test> .
+_: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/test/jsonld/1.1/toRdf/li14-in.jsonld b/test/jsonld/1.1/toRdf/li14-in.jsonld
new file mode 100644
index 00000000..1da0adc3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li14-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@base": null,
+ "list": {
+ "@id": "foo:bar",
+ "@container": "@list",
+ "@type": "@id"
+ }
+ },
+ "list": ["test"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/li14-out.nq b/test/jsonld/1.1/toRdf/li14-out.nq
new file mode 100644
index 00000000..5f1ff132
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/li14-out.nq
@@ -0,0 +1,2 @@
+_:b0 <foo:bar> _:b1 .
+_: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/test/jsonld/1.1/toRdf/m001-in.jsonld b/test/jsonld/1.1/toRdf/m001-in.jsonld
new file mode 100644
index 00000000..81a736c7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m001-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"}
+ },
+ "idmap": {
+ "http://example.org/foo": {"label": "Object with @id <foo>"},
+ "_:bar": {"label": "Object with @id _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m001-out.nq b/test/jsonld/1.1/toRdf/m001-out.nq
new file mode 100644
index 00000000..0a1a5bf9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m001-out.nq
@@ -0,0 +1,4 @@
+<http://example.org/foo> <http://example/label> "Object with @id <foo>" .
+_:b1 <http://example/label> "Object with @id _:bar" .
+_:b0 <http://example/idmap> <http://example.org/foo> .
+_:b0 <http://example/idmap> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/m002-in.jsonld b/test/jsonld/1.1/toRdf/m002-in.jsonld
new file mode 100644
index 00000000..1134f16b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m002-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"}
+ },
+ "idmap": {
+ "http://example.org/foo": {"@id": "http://example.org/bar", "label": "Object with @id <foo>"},
+ "_:bar": {"@id": "_:foo", "label": "Object with @id _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m002-out.nq b/test/jsonld/1.1/toRdf/m002-out.nq
new file mode 100644
index 00000000..56e02d91
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m002-out.nq
@@ -0,0 +1,4 @@
+_:b1 <http://example/label> "Object with @id _:bar" .
+<http://example.org/bar> <http://example/label> "Object with @id <foo>" .
+_:b0 <http://example/idmap> _:b1 .
+_:b0 <http://example/idmap> <http://example.org/bar> .
diff --git a/test/jsonld/1.1/toRdf/m003-in.jsonld b/test/jsonld/1.1/toRdf/m003-in.jsonld
new file mode 100644
index 00000000..f79d87a6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m003-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ },
+ "typemap": {
+ "http://example.org/foo": {"label": "Object with @type <foo>"},
+ "_:bar": {"label": "Object with @type _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m003-out.nq b/test/jsonld/1.1/toRdf/m003-out.nq
new file mode 100644
index 00000000..de3e0e51
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m003-out.nq
@@ -0,0 +1,6 @@
+_:b1 <http://example/label> "Object with @type <foo>" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/foo> .
+_:b2 <http://example/label> "Object with @type _:bar" .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:b3 .
+_:b0 <http://example/typemap> _:b1 .
+_:b0 <http://example/typemap> _:b2 .
diff --git a/test/jsonld/1.1/toRdf/m004-in.jsonld b/test/jsonld/1.1/toRdf/m004-in.jsonld
new file mode 100644
index 00000000..b75a0ff8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m004-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ },
+ "typemap": {
+ "http://example.org/foo": {"@type": "http://example.org/bar", "label": "Object with @type <foo>"},
+ "_:bar": {"@type": "_:foo", "label": "Object with @type _:bar"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m004-out.nq b/test/jsonld/1.1/toRdf/m004-out.nq
new file mode 100644
index 00000000..41c8b9f4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m004-out.nq
@@ -0,0 +1,8 @@
+_:b1 <http://example/label> "Object with @type <foo>" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/foo> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/bar> .
+_:b2 <http://example/label> "Object with @type _:bar" .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:b4 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:b3 .
+_:b0 <http://example/typemap> _:b1 .
+_:b0 <http://example/typemap> _:b2 .
diff --git a/test/jsonld/1.1/toRdf/m005-in.jsonld b/test/jsonld/1.1/toRdf/m005-in.jsonld
new file mode 100644
index 00000000..e7de76b9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m005-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"}
+ },
+ "idmap": {
+ "foo": {"label": "Object with @id <foo>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m005-out.nq b/test/jsonld/1.1/toRdf/m005-out.nq
new file mode 100644
index 00000000..0e387319
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m005-out.nq
@@ -0,0 +1,2 @@
+<http://example.org/foo> <http://example/label> "Object with @id <foo>" .
+_:b0 <http://example/idmap> <http://example.org/foo> .
diff --git a/test/jsonld/1.1/toRdf/m006-in.jsonld b/test/jsonld/1.1/toRdf/m006-in.jsonld
new file mode 100644
index 00000000..ce359b45
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m006-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"}
+ },
+ "typemap": {
+ "Foo": {"label": "Object with @type <foo>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m006-out.nq b/test/jsonld/1.1/toRdf/m006-out.nq
new file mode 100644
index 00000000..8346c878
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m006-out.nq
@@ -0,0 +1,3 @@
+_:b1 <http://example/label> "Object with @type <foo>" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
+_:b0 <http://example/typemap> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/m007-in.jsonld b/test/jsonld/1.1/toRdf/m007-in.jsonld
new file mode 100644
index 00000000..a660b729
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m007-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"},
+ "label": "http://example/label"
+ },
+ "typemap": {
+ "Foo": {"label": "Object with @type <foo>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m007-out.nq b/test/jsonld/1.1/toRdf/m007-out.nq
new file mode 100644
index 00000000..8346c878
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m007-out.nq
@@ -0,0 +1,3 @@
+_:b1 <http://example/label> "Object with @type <foo>" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
+_:b0 <http://example/typemap> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/m008-in.jsonld b/test/jsonld/1.1/toRdf/m008-in.jsonld
new file mode 100644
index 00000000..3e48d6e6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m008-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"},
+ "Type": {"@context": {"a": "http://example.org/a"}}
+ },
+ "typemap": {
+ "Type": {"a": "Object with @type <Type>"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m008-out.nq b/test/jsonld/1.1/toRdf/m008-out.nq
new file mode 100644
index 00000000..d4ad7374
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m008-out.nq
@@ -0,0 +1,3 @@
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Type> .
+_:b1 <http://example.org/a> "Object with @type <Type>" .
+_:b0 <http://example/typemap> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/m009-in.jsonld b/test/jsonld/1.1/toRdf/m009-in.jsonld
new file mode 100644
index 00000000..510a5700
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m009-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@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" ],
+ "@none": "The Queen"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m009-out.nq b/test/jsonld/1.1/toRdf/m009-out.nq
new file mode 100644
index 00000000..067bd56a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m009-out.nq
@@ -0,0 +1,4 @@
+<http://example.com/queen> <http://example.com/vocab/label> "Ihre Majestät"@de .
+<http://example.com/queen> <http://example.com/vocab/label> "Die Königin"@de .
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen"@en .
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen" .
diff --git a/test/jsonld/1.1/toRdf/m010-in.jsonld b/test/jsonld/1.1/toRdf/m010-in.jsonld
new file mode 100644
index 00000000..adc8cac3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m010-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "vocab": "http://example.com/vocab/",
+ "label": {
+ "@id": "vocab:label",
+ "@container": "@language"
+ },
+ "none": "@none"
+ },
+ "@id": "http://example.com/queen",
+ "label": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ],
+ "none": "The Queen"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m010-out.nq b/test/jsonld/1.1/toRdf/m010-out.nq
new file mode 100644
index 00000000..067bd56a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m010-out.nq
@@ -0,0 +1,4 @@
+<http://example.com/queen> <http://example.com/vocab/label> "Ihre Majestät"@de .
+<http://example.com/queen> <http://example.com/vocab/label> "Die Königin"@de .
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen"@en .
+<http://example.com/queen> <http://example.com/vocab/label> "The Queen" .
diff --git a/test/jsonld/1.1/toRdf/m011-in.jsonld b/test/jsonld/1.1/toRdf/m011-in.jsonld
new file mode 100644
index 00000000..a8ba3723
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m011-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "idmap": {"@container": "@id"},
+ "none": "@none"
+ },
+ "idmap": {
+ "@none": {"label": "Object with no @id"},
+ "none": {"label": "Another object with no @id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m011-out.nq b/test/jsonld/1.1/toRdf/m011-out.nq
new file mode 100644
index 00000000..7014fb1c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m011-out.nq
@@ -0,0 +1,4 @@
+_:b1 <http://example/label> "Object with no @id" .
+_:b2 <http://example/label> "Another object with no @id" .
+_:b0 <http://example/idmap> _:b1 .
+_:b0 <http://example/idmap> _:b2 .
diff --git a/test/jsonld/1.1/toRdf/m012-in.jsonld b/test/jsonld/1.1/toRdf/m012-in.jsonld
new file mode 100644
index 00000000..c8bbe0f7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m012-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example/",
+ "typemap": {"@container": "@type"},
+ "none": "@none"
+ },
+ "typemap": {
+ "@none": {"label": "Object with no @type"},
+ "none": {"label": "Another object with no @type"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m012-out.nq b/test/jsonld/1.1/toRdf/m012-out.nq
new file mode 100644
index 00000000..a9119472
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m012-out.nq
@@ -0,0 +1,4 @@
+_:b1 <http://example/label> "Object with no @type" .
+_:b2 <http://example/label> "Another object with no @type" .
+_:b0 <http://example/typemap> _:b1 .
+_:b0 <http://example/typemap> _:b2 .
diff --git a/test/jsonld/1.1/toRdf/m013-in.jsonld b/test/jsonld/1.1/toRdf/m013-in.jsonld
new file mode 100644
index 00000000..545c8c30
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m013-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]}
+ },
+ "input": {
+ "@none": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m013-out.nq b/test/jsonld/1.1/toRdf/m013-out.nq
new file mode 100644
index 00000000..592093b4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m013-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/m014-in.jsonld b/test/jsonld/1.1/toRdf/m014-in.jsonld
new file mode 100644
index 00000000..a1e454b2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m014-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"]},
+ "none": "@none"
+ },
+ "input": {
+ "none": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m014-out.nq b/test/jsonld/1.1/toRdf/m014-out.nq
new file mode 100644
index 00000000..592093b4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m014-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/m015-in.jsonld b/test/jsonld/1.1/toRdf/m015-in.jsonld
new file mode 100644
index 00000000..6594c8d6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m015-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]}
+ },
+ "input": {
+ "@none": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m015-out.nq b/test/jsonld/1.1/toRdf/m015-out.nq
new file mode 100644
index 00000000..592093b4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m015-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/m016-in.jsonld b/test/jsonld/1.1/toRdf/m016-in.jsonld
new file mode 100644
index 00000000..13234db1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m016-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@id"]},
+ "none": "@none"
+ },
+ "input": {
+ "none": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m016-out.nq b/test/jsonld/1.1/toRdf/m016-out.nq
new file mode 100644
index 00000000..592093b4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m016-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/m017-in.jsonld b/test/jsonld/1.1/toRdf/m017-in.jsonld
new file mode 100644
index 00000000..d571678d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m017-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m017-out.nq b/test/jsonld/1.1/toRdf/m017-out.nq
new file mode 100644
index 00000000..932449c8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m017-out.nq
@@ -0,0 +1,2 @@
+<http://example.org/base/baz> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/ns/bar> .
+_:b0 <http://example.org/ns/foo> <http://example.org/base/baz> .
diff --git a/test/jsonld/1.1/toRdf/m018-in.jsonld b/test/jsonld/1.1/toRdf/m018-in.jsonld
new file mode 100644
index 00000000..7acaba29
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m018-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@type": "@id", "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m018-out.nq b/test/jsonld/1.1/toRdf/m018-out.nq
new file mode 100644
index 00000000..932449c8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m018-out.nq
@@ -0,0 +1,2 @@
+<http://example.org/base/baz> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/ns/bar> .
+_:b0 <http://example.org/ns/foo> <http://example.org/base/baz> .
diff --git a/test/jsonld/1.1/toRdf/m019-in.jsonld b/test/jsonld/1.1/toRdf/m019-in.jsonld
new file mode 100644
index 00000000..81386dfe
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m019-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@type": "@vocab", "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/m019-out.nq b/test/jsonld/1.1/toRdf/m019-out.nq
new file mode 100644
index 00000000..c1be1829
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m019-out.nq
@@ -0,0 +1,2 @@
+<http://example.org/ns/baz> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/ns/bar> .
+_:b0 <http://example.org/ns/foo> <http://example.org/ns/baz> .
diff --git a/test/jsonld/1.1/toRdf/m020-in.jsonld b/test/jsonld/1.1/toRdf/m020-in.jsonld
new file mode 100644
index 00000000..4b1a8319
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/m020-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/ns/",
+ "@base": "http://example.org/base/",
+ "foo": { "@type": "literal", "@container": "@type" }
+ },
+ "foo": {"bar": "baz"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/n001-in.jsonld b/test/jsonld/1.1/toRdf/n001-in.jsonld
new file mode 100644
index 00000000..f0743058
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n001-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {"@vocab": "http://example.org/"},
+ "p1": "v1",
+ "@nest": {
+ "p2": "v2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/n001-out.nq b/test/jsonld/1.1/toRdf/n001-out.nq
new file mode 100644
index 00000000..3d0c1ac4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n001-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/p2> "v2" .
+_:b0 <http://example.org/p1> "v1" .
diff --git a/test/jsonld/1.1/toRdf/n002-in.jsonld b/test/jsonld/1.1/toRdf/n002-in.jsonld
new file mode 100644
index 00000000..36e57b95
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n002-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest"
+ },
+ "p1": "v1",
+ "nest": {
+ "p2": "v2"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/n002-out.nq b/test/jsonld/1.1/toRdf/n002-out.nq
new file mode 100644
index 00000000..3d0c1ac4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n002-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/p2> "v2" .
+_:b0 <http://example.org/p1> "v1" .
diff --git a/test/jsonld/1.1/toRdf/n003-in.jsonld b/test/jsonld/1.1/toRdf/n003-in.jsonld
new file mode 100644
index 00000000..c1ec9022
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n003-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest"
+ },
+ "p1": "v1",
+ "nest": {
+ "p2": "v3"
+ },
+ "p2": "v2"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/n003-out.nq b/test/jsonld/1.1/toRdf/n003-out.nq
new file mode 100644
index 00000000..fb46bfbc
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n003-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.org/p2> "v3" .
+_:b0 <http://example.org/p2> "v2" .
+_:b0 <http://example.org/p1> "v1" .
diff --git a/test/jsonld/1.1/toRdf/n004-in.jsonld b/test/jsonld/1.1/toRdf/n004-in.jsonld
new file mode 100644
index 00000000..eeffff0a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n004-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest1": "@nest",
+ "nest2": "@nest"
+ },
+ "p1": "v1",
+ "nest2": {
+ "p2": "v4"
+ },
+ "p2": "v2",
+ "nest1": {
+ "p2": "v3"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/n004-out.nq b/test/jsonld/1.1/toRdf/n004-out.nq
new file mode 100644
index 00000000..aea95a21
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n004-out.nq
@@ -0,0 +1,4 @@
+_:b0 <http://example.org/p2> "v3" .
+_:b0 <http://example.org/p2> "v2" .
+_:b0 <http://example.org/p2> "v4" .
+_:b0 <http://example.org/p1> "v1" .
diff --git a/test/jsonld/1.1/toRdf/n005-in.jsonld b/test/jsonld/1.1/toRdf/n005-in.jsonld
new file mode 100644
index 00000000..a9f39497
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n005-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/"
+ },
+ "p1": "v1",
+ "@nest": {
+ "p2": "v3",
+ "@nest": {
+ "p2": "v4"
+ }
+ },
+ "p2": "v2"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/n005-out.nq b/test/jsonld/1.1/toRdf/n005-out.nq
new file mode 100644
index 00000000..aea95a21
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n005-out.nq
@@ -0,0 +1,4 @@
+_:b0 <http://example.org/p2> "v3" .
+_:b0 <http://example.org/p2> "v2" .
+_:b0 <http://example.org/p2> "v4" .
+_:b0 <http://example.org/p1> "v1" .
diff --git a/test/jsonld/1.1/toRdf/n006-in.jsonld b/test/jsonld/1.1/toRdf/n006-in.jsonld
new file mode 100644
index 00000000..9b02d605
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n006-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest"
+ },
+ "p1": "v1",
+ "nest": {
+ "p2": ["v4", "v5"]
+ },
+ "p2": ["v2", "v3"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/n006-out.nq b/test/jsonld/1.1/toRdf/n006-out.nq
new file mode 100644
index 00000000..fc944997
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n006-out.nq
@@ -0,0 +1,5 @@
+_:b0 <http://example.org/p2> "v3" .
+_:b0 <http://example.org/p2> "v5" .
+_:b0 <http://example.org/p2> "v2" .
+_:b0 <http://example.org/p2> "v4" .
+_:b0 <http://example.org/p1> "v1" .
diff --git a/test/jsonld/1.1/toRdf/n007-in.jsonld b/test/jsonld/1.1/toRdf/n007-in.jsonld
new file mode 100644
index 00000000..aa9e8468
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n007-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest"
+ },
+ "p1": "v1",
+ "nest": [{
+ "p2": "v4"
+ }, {
+ "p2": "v5"
+ }],
+ "p2": ["v2", "v3"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/n007-out.nq b/test/jsonld/1.1/toRdf/n007-out.nq
new file mode 100644
index 00000000..fc944997
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n007-out.nq
@@ -0,0 +1,5 @@
+_:b0 <http://example.org/p2> "v3" .
+_:b0 <http://example.org/p2> "v5" .
+_:b0 <http://example.org/p2> "v2" .
+_:b0 <http://example.org/p2> "v4" .
+_:b0 <http://example.org/p1> "v1" .
diff --git a/test/jsonld/1.1/toRdf/n008-in.jsonld b/test/jsonld/1.1/toRdf/n008-in.jsonld
new file mode 100644
index 00000000..c598df0f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n008-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "nest": "@nest"
+ },
+ "p1": "v1",
+ "nest": [
+ {"@type": "T1"},
+ {"@type": "T2"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/n008-out.nq b/test/jsonld/1.1/toRdf/n008-out.nq
new file mode 100644
index 00000000..37bd46e5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/n008-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://example.org/p1> "v1" .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/T1> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/T2> .
diff --git a/test/jsonld/1.1/toRdf/nt01-in.jsonld b/test/jsonld/1.1/toRdf/nt01-in.jsonld
new file mode 100644
index 00000000..d9abc2cb
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt01-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "\u0000\t\u000B\f\u000e&([]\u007F"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt02-in.jsonld b/test/jsonld/1.1/toRdf/nt02-in.jsonld
new file mode 100644
index 00000000..f084bfd1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt02-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "€߿ࠀ࿿က쿿퀀퟿�𐀀𿿽񀀀󿿽􀀀􏿽"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt03-in.jsonld b/test/jsonld/1.1/toRdf/nt03-in.jsonld
new file mode 100644
index 00000000..77fc0b34
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt03-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\u000b\f\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt04-in.jsonld b/test/jsonld/1.1/toRdf/nt04-in.jsonld
new file mode 100644
index 00000000..4baebf0b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt04-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": " !\"#$%&():;<=>?@[]^_`{|}~"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt05-in.jsonld b/test/jsonld/1.1/toRdf/nt05-in.jsonld
new file mode 100644
index 00000000..e3feea5f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt05-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "x'y"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt06-in.jsonld b/test/jsonld/1.1/toRdf/nt06-in.jsonld
new file mode 100644
index 00000000..a9e58909
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt06-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "x''y"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt07-in.jsonld b/test/jsonld/1.1/toRdf/nt07-in.jsonld
new file mode 100644
index 00000000..de2c2eb2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt07-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "x\"y"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt08-in.jsonld b/test/jsonld/1.1/toRdf/nt08-in.jsonld
new file mode 100644
index 00000000..cc90b100
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt08-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "x\"\"y"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt09-in.jsonld b/test/jsonld/1.1/toRdf/nt09-in.jsonld
new file mode 100644
index 00000000..7c251114
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt09-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://example.org/ns#s",
+ "http://example.org/ns#p1": [
+ {
+ "@value": "test-\\"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt10-in.jsonld b/test/jsonld/1.1/toRdf/nt10-in.jsonld
new file mode 100644
index 00000000..eab1c520
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt10-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "\t"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt11-in.jsonld b/test/jsonld/1.1/toRdf/nt11-in.jsonld
new file mode 100644
index 00000000..dde526be
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt11-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "\b"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt12-in.jsonld b/test/jsonld/1.1/toRdf/nt12-in.jsonld
new file mode 100644
index 00000000..c7df2308
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt12-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "\n"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt13-in.jsonld b/test/jsonld/1.1/toRdf/nt13-in.jsonld
new file mode 100644
index 00000000..72f8aca0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt13-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "\r"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt14-in.jsonld b/test/jsonld/1.1/toRdf/nt14-in.jsonld
new file mode 100644
index 00000000..76840fd2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt14-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "\f"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt15-in.jsonld b/test/jsonld/1.1/toRdf/nt15-in.jsonld
new file mode 100644
index 00000000..c25a97e0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt15-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "\\"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/nt16-in.jsonld b/test/jsonld/1.1/toRdf/nt16-in.jsonld
new file mode 100644
index 00000000..f9c43cd7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/nt16-in.jsonld
@@ -0,0 +1,10 @@
+[
+ {
+ "@id": "http://a.example/s",
+ "http://a.example/p": [
+ {
+ "@value": "\u000F"
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/p001-in.jsonld b/test/jsonld/1.1/toRdf/p001-in.jsonld
new file mode 100644
index 00000000..5820b1c8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/p001-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": [
+ {"@vocab": "http://example/"},
+ {"@version": 1.1, "a": {"@type": "@id"}}
+ ],
+ "a": "http://example.org/foo"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/p001-out.nq b/test/jsonld/1.1/toRdf/p001-out.nq
new file mode 100644
index 00000000..0e81d542
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/p001-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/a> <http://example.org/foo> .
diff --git a/test/jsonld/1.1/toRdf/p002-in.jsonld b/test/jsonld/1.1/toRdf/p002-in.jsonld
new file mode 100644
index 00000000..c221cf91
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/p002-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": [
+ {"@vocab": "http://example/"},
+ {"@version": 1.1, "a": {"@type": "@id"}},
+ {"b": {"@type": "@id"}}
+ ],
+ "a": "http://example.org/foo",
+ "b": "http://example.org/bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/p002-out.nq b/test/jsonld/1.1/toRdf/p002-out.nq
new file mode 100644
index 00000000..d829ee53
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/p002-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example/b> <http://example.org/bar> .
+_:b0 <http://example/a> <http://example.org/foo> .
diff --git a/test/jsonld/1.1/toRdf/p003-in.jsonld b/test/jsonld/1.1/toRdf/p003-in.jsonld
new file mode 100644
index 00000000..e50ad3c4
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/p003-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": [
+ {"@version": 1.1, "a": {"@id": "http://example/a", "@type": "@id"}},
+ {"@vocab": "http://example/", "b": {"@type": "@id"}}
+ ],
+ "a": "http://example.org/foo",
+ "b": "http://example.org/bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/p003-out.nq b/test/jsonld/1.1/toRdf/p003-out.nq
new file mode 100644
index 00000000..d829ee53
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/p003-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example/b> <http://example.org/bar> .
+_:b0 <http://example/a> <http://example.org/foo> .
diff --git a/test/jsonld/1.1/toRdf/p004-in.jsonld b/test/jsonld/1.1/toRdf/p004-in.jsonld
new file mode 100644
index 00000000..f458decf
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/p004-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": [
+ {"@version": 1.1, "a": {"@id": "http://example/a", "@type": "@id"}},
+ {"@vocab": "http://example/"},
+ {"@version": 1.1, "b": {"@type": "@id"}}
+ ],
+ "a": "http://example.org/foo",
+ "b": "http://example.org/bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/p004-out.nq b/test/jsonld/1.1/toRdf/p004-out.nq
new file mode 100644
index 00000000..d829ee53
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/p004-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example/b> <http://example.org/bar> .
+_:b0 <http://example/a> <http://example.org/foo> .
diff --git a/test/jsonld/1.1/toRdf/pi01-in.jsonld b/test/jsonld/1.1/toRdf/pi01-in.jsonld
new file mode 100644
index 00000000..50e86117
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi01-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "container": {"@container": "@index", "@index": "prop"}
+ },
+ "@id": "http://example.com/annotationsTest",
+ "container": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi02-in.jsonld b/test/jsonld/1.1/toRdf/pi02-in.jsonld
new file mode 100644
index 00000000..45f7b965
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi02-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "container": {"@index": "prop"}
+ },
+ "@id": "http://example.com/annotationsTest",
+ "container": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi03-in.jsonld b/test/jsonld/1.1/toRdf/pi03-in.jsonld
new file mode 100644
index 00000000..d0803e11
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi03-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "container": {
+ "@id": "http://example.com/container",
+ "@container": "@index",
+ "@index": "@index"
+ }
+ },
+ "@id": "http://example.com/annotationsTest",
+ "container": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi04-in.jsonld b/test/jsonld/1.1/toRdf/pi04-in.jsonld
new file mode 100644
index 00000000..e30adb37
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi04-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "container": {
+ "@id": "http://example.com/container",
+ "@container": "@index",
+ "@index": true
+ }
+ },
+ "@id": "http://example.com/annotationsTest",
+ "container": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi05-in.jsonld b/test/jsonld/1.1/toRdf/pi05-in.jsonld
new file mode 100644
index 00000000..e9325a44
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi05-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.com/",
+ "container": {
+ "@id": "http://example.com/container",
+ "@container": "@index",
+ "@index": "prop"
+ }
+ },
+ "@id": "http://example.com/annotationsTest",
+ "container": {
+ "en": "The Queen",
+ "de": [ "Die Königin", "Ihre Majestät" ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi06-in.jsonld b/test/jsonld/1.1/toRdf/pi06-in.jsonld
new file mode 100644
index 00000000..c57f9382
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi06-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ },
+ "@id": "article",
+ "author": {
+ "regular": "person/1",
+ "guest": ["person/2", "person/3"]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi06-out.nq b/test/jsonld/1.1/toRdf/pi06-out.nq
new file mode 100644
index 00000000..72e94c3a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi06-out.nq
@@ -0,0 +1,6 @@
+<http://example.com/person/1> <http://example.com/prop> "regular" .
+<http://example.com/person/3> <http://example.com/prop> "guest" .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/1> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/3> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/2> .
+<http://example.com/person/2> <http://example.com/prop> "guest" .
diff --git a/test/jsonld/1.1/toRdf/pi07-in.jsonld b/test/jsonld/1.1/toRdf/pi07-in.jsonld
new file mode 100644
index 00000000..e05de77c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi07-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"}
+ },
+ "@id": "article",
+ "author": {
+ "regular": {"@id": "person/1", "http://example.com/prop": "foo"},
+ "guest": [
+ {"@id": "person/2", "prop": "foo"},
+ {"@id": "person/3", "prop": "foo"}
+ ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi07-out.nq b/test/jsonld/1.1/toRdf/pi07-out.nq
new file mode 100644
index 00000000..f6100dac
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi07-out.nq
@@ -0,0 +1,9 @@
+<http://example.com/person/1> <http://example.com/prop> "regular" .
+<http://example.com/person/1> <http://example.com/prop> "foo" .
+<http://example.com/person/3> <http://example.com/prop> "guest" .
+<http://example.com/person/3> <http://example.com/prop> "foo" .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/1> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/3> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/2> .
+<http://example.com/person/2> <http://example.com/prop> "guest" .
+<http://example.com/person/2> <http://example.com/prop> "foo" .
diff --git a/test/jsonld/1.1/toRdf/pi08-in.jsonld b/test/jsonld/1.1/toRdf/pi08-in.jsonld
new file mode 100644
index 00000000..17b42ddd
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi08-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"},
+ "prop": {"@type": "@vocab"}
+ },
+ "@id": "http://example.com/article",
+ "author": {
+ "regular": "person/1",
+ "guest": ["person/2", "person/3"]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi08-out.nq b/test/jsonld/1.1/toRdf/pi08-out.nq
new file mode 100644
index 00000000..038e1082
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi08-out.nq
@@ -0,0 +1,6 @@
+<http://example.com/person/1> <http://example.com/prop> <http://example.com/regular> .
+<http://example.com/person/3> <http://example.com/prop> <http://example.com/guest> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/1> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/3> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/2> .
+<http://example.com/person/2> <http://example.com/prop> <http://example.com/guest> .
diff --git a/test/jsonld/1.1/toRdf/pi09-in.jsonld b/test/jsonld/1.1/toRdf/pi09-in.jsonld
new file mode 100644
index 00000000..5811c345
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi09-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"},
+ "prop": {"@type": "@vocab"}
+ },
+ "@id": "http://example.com/article",
+ "author": {
+ "regular": {"@id": "person/1", "prop": "foo"},
+ "guest": [
+ {"@id": "person/2", "prop": "foo"},
+ {"@id": "person/3", "prop": "foo"}
+ ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi09-out.nq b/test/jsonld/1.1/toRdf/pi09-out.nq
new file mode 100644
index 00000000..755f2c93
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi09-out.nq
@@ -0,0 +1,9 @@
+<http://example.com/person/1> <http://example.com/prop> <http://example.com/regular> .
+<http://example.com/person/1> <http://example.com/prop> <http://example.com/foo> .
+<http://example.com/person/3> <http://example.com/prop> <http://example.com/foo> .
+<http://example.com/person/3> <http://example.com/prop> <http://example.com/guest> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/1> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/3> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/2> .
+<http://example.com/person/2> <http://example.com/prop> <http://example.com/foo> .
+<http://example.com/person/2> <http://example.com/prop> <http://example.com/guest> .
diff --git a/test/jsonld/1.1/toRdf/pi10-in.jsonld b/test/jsonld/1.1/toRdf/pi10-in.jsonld
new file mode 100644
index 00000000..a62aba22
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi10-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@base": "http://example.com/",
+ "@vocab": "http://example.com/",
+ "author": {"@type": "@id", "@container": "@index", "@index": "prop"},
+ "prop": {"@type": "@vocab"}
+ },
+ "@id": "http://example.com/article",
+ "author": {
+ "@none": {"@id": "person/1"},
+ "guest": [
+ {"@id": "person/2"},
+ {"@id": "person/3"}
+ ]
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi10-out.nq b/test/jsonld/1.1/toRdf/pi10-out.nq
new file mode 100644
index 00000000..5cff67e9
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi10-out.nq
@@ -0,0 +1,5 @@
+<http://example.com/person/3> <http://example.com/prop> <http://example.com/guest> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/1> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/3> .
+<http://example.com/article> <http://example.com/author> <http://example.com/person/2> .
+<http://example.com/person/2> <http://example.com/prop> <http://example.com/guest> .
diff --git a/test/jsonld/1.1/toRdf/pi11-in.jsonld b/test/jsonld/1.1/toRdf/pi11-in.jsonld
new file mode 100644
index 00000000..e3dd902a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi11-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example.org/",
+ "input": {"@container": ["@graph", "@index"], "@index": "prop"}
+ },
+ "input": {
+ "g1": {"value": "x"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pi11-out.nq b/test/jsonld/1.1/toRdf/pi11-out.nq
new file mode 100644
index 00000000..65335699
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pi11-out.nq
@@ -0,0 +1,3 @@
+_:b1 <http://example.org/prop> "g1" .
+_:b0 <http://example.org/input> _:b1 .
+_:b2 <http://example.org/value> "x" _:b1 .
diff --git a/test/jsonld/1.1/toRdf/pr01-in.jsonld b/test/jsonld/1.1/toRdf/pr01-in.jsonld
new file mode 100644
index 00000000..049d4cf6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr01-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "protected": {
+ "@protected": true
+ }
+ },
+ "protected": {
+ "@context": {
+ "protected": "http://example.com/something-else"
+ },
+ "protected": "error / property http://example.com/protected"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr02-in.jsonld b/test/jsonld/1.1/toRdf/pr02-in.jsonld
new file mode 100644
index 00000000..22fe4a86
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr02-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "protected": {
+ "@protected": true
+ },
+ "unprotected": {
+ "@protected": false
+ }
+ },
+ "protected": true,
+ "unprotected": true,
+ "scope": {
+ "@context": {
+ "unprotected": "http://example.com/something-else"
+ },
+ "unprotected": "property http://example.com/something-else"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr02-out.nq b/test/jsonld/1.1/toRdf/pr02-out.nq
new file mode 100644
index 00000000..e345bccb
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr02-out.nq
@@ -0,0 +1,4 @@
+_:b1 <http://example.com/something-else> "property http://example.com/something-else" .
+_:b0 <http://example.com/scope> _:b1 .
+_:b0 <http://example.com/unprotected> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+_:b0 <http://example.com/protected> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
diff --git a/test/jsonld/1.1/toRdf/pr03-in.jsonld b/test/jsonld/1.1/toRdf/pr03-in.jsonld
new file mode 100644
index 00000000..c0a8aa2a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr03-in.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": {
+ "@id": "http://example.com/protected1"
+ },
+ "protected2": {
+ "@id": "http://example.com/protected2"
+ }
+ },
+ "protected1": {
+ "@context": {
+ "protected1": "http://example.com/something-else",
+ "protected2": "http://example.com/something-else"
+ },
+ "protected1": "error / property http://example.com/protected1",
+ "protected2": "error / property http://example.com/protected2"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr04-in.jsonld b/test/jsonld/1.1/toRdf/pr04-in.jsonld
new file mode 100644
index 00000000..5adc5228
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr04-in.jsonld
@@ -0,0 +1,21 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "@protected": true,
+ "protected": {
+ "@id": "http://example.com/protected"
+ },
+ "unprotected": {
+ "@id": "http://example.com/unprotected", "@protected": false
+ }
+ },
+ "protected": {
+ "@context": {
+ "protected": "http://example.com/something-else1",
+ "unprotected": "http://example.com/something-else2"
+ },
+ "protected": "error / property http://example.com/protected",
+ "unprotected": "property http://example.com/something-else2"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr05-in.jsonld b/test/jsonld/1.1/toRdf/pr05-in.jsonld
new file mode 100644
index 00000000..a7ccf05d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr05-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "@protected": true,
+ "protected": {"@language": null}
+ },
+ "protected": {
+ "@context": [
+ null,
+ {
+ "@vocab": "http://something-else/"
+ }
+ ],
+ "protected": "error / property http://example.com/protected"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr06-in.jsonld b/test/jsonld/1.1/toRdf/pr06-in.jsonld
new file mode 100644
index 00000000..df894594
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr06-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "@protected": true,
+ "protected": {
+ "@type": "@id"
+ },
+ "unprotected": {
+ "@protected": false,
+ "@context": null
+ }
+ },
+ "unprotected": {
+ "protected": "not expanded, as protected is not a defined term"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr06-out.nq b/test/jsonld/1.1/toRdf/pr06-out.nq
new file mode 100644
index 00000000..1f7b76aa
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr06-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/unprotected> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/pr08-in.jsonld b/test/jsonld/1.1/toRdf/pr08-in.jsonld
new file mode 100644
index 00000000..357c5cee
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr08-in.jsonld
@@ -0,0 +1,38 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "protected": {
+ "@protected": false
+ },
+ "scope1": {
+ "@protected": false,
+ "@context": {
+ "protected": {
+ "@id": "http://example.com/something-else"
+ }
+ }
+ },
+ "scope2": {
+ "@protected": true,
+ "@context": {
+ "protected": {
+ "@protected": true
+ }
+ }
+ }
+ },
+ "protected": false,
+ "scope1": {
+ "@context": {
+ "protected": "http://example.com/another-thing"
+ },
+ "protected": "property http://example.com/another-thing"
+ },
+ "scope2": {
+ "@context": {
+ "protected": "http://example.com/another-thing"
+ },
+ "protected": "error / property http://example.com/protected"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr09-in.jsonld b/test/jsonld/1.1/toRdf/pr09-in.jsonld
new file mode 100644
index 00000000..29895ff3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr09-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "http://example.org/protected1",
+ "protected2": "http://example.org/protected2"
+ },
+ "protected2": {
+ "@context": {
+ "protected1": "http://example.org/something-else"
+ },
+ "protected1": "error / property http://example.org/protected1"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr10-in.jsonld b/test/jsonld/1.1/toRdf/pr10-in.jsonld
new file mode 100644
index 00000000..a8933fe3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr10-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "protected": {
+ "@id": "ex:protected",
+ "@protected": true
+ },
+ "unprotected": "ex:unprotected"
+ },
+ "protected": "p === ex:protected",
+ "unprotected": {
+ "protected": "p === ex:protected"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr10-out.nq b/test/jsonld/1.1/toRdf/pr10-out.nq
new file mode 100644
index 00000000..3afbc0a3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr10-out.nq
@@ -0,0 +1,3 @@
+_:b1 <ex:protected> "p === ex:protected" .
+_:b0 <ex:protected> "p === ex:protected" .
+_:b0 <ex:unprotected> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/pr11-in.jsonld b/test/jsonld/1.1/toRdf/pr11-in.jsonld
new file mode 100644
index 00000000..de185630
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr11-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "protected": {
+ "@id": "ex:protected",
+ "@protected": true
+ },
+ "unprotected": "ex:unprotected"
+ },
+ "protected": "p === ex:protected",
+ "unprotected": {
+ "@context": {
+ "protected": "ex:protected2"
+ },
+ "protected": "p === ex:protected"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr12-in.jsonld b/test/jsonld/1.1/toRdf/pr12-in.jsonld
new file mode 100644
index 00000000..2dc30da6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr12-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": "ex:protected2"
+ },
+ "protected1": "p === ex:protected1",
+ "protected2": {
+ "@context": {
+ "protected1": "ex:protected1:error"
+ },
+ "protected1": "error / p === ex:protected1"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr13-in.jsonld b/test/jsonld/1.1/toRdf/pr13-in.jsonld
new file mode 100644
index 00000000..6f8ff006
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr13-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected": "ex:protected",
+ "unprotected": {
+ "@id": "ex:unprotected1",
+ "@protected": false
+ }
+ },
+ "protected": {
+ "@context": {
+ "unprotected": "ex:unprotected2"
+ },
+ "unprotected": "p === ex:unprotected2"
+ },
+ "unprotected": "p === ex:unprotected1"
+}
diff --git a/test/jsonld/1.1/toRdf/pr13-out.nq b/test/jsonld/1.1/toRdf/pr13-out.nq
new file mode 100644
index 00000000..67169b88
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr13-out.nq
@@ -0,0 +1,3 @@
+_:b1 <ex:unprotected2> "p === ex:unprotected2" .
+_:b0 <ex:protected> _:b1 .
+_:b0 <ex:unprotected1> "p === ex:unprotected1" .
diff --git a/test/jsonld/1.1/toRdf/pr14-in.jsonld b/test/jsonld/1.1/toRdf/pr14-in.jsonld
new file mode 100644
index 00000000..e88b9ef2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr14-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": {
+ "@id": "ex:protected2",
+ "@context": null
+ }
+ },
+ "protected1": "p === ex:protected1",
+ "protected2": {
+ "@context": {
+ "protected1": "ex:protected3"
+ },
+ "protected1": "p === ex:protected3"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr14-out.nq b/test/jsonld/1.1/toRdf/pr14-out.nq
new file mode 100644
index 00000000..12700d12
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr14-out.nq
@@ -0,0 +1,3 @@
+_:b1 <ex:protected3> "p === ex:protected3" .
+_:b0 <ex:protected2> _:b1 .
+_:b0 <ex:protected1> "p === ex:protected1" .
diff --git a/test/jsonld/1.1/toRdf/pr15-in.jsonld b/test/jsonld/1.1/toRdf/pr15-in.jsonld
new file mode 100644
index 00000000..d0cf99b1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr15-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": {
+ "@id": "ex:protected2",
+ "@context": [
+ null
+ ]
+ }
+ },
+ "protected1": "p === ex:protected1",
+ "protected2": {
+ "@context": {
+ "protected1": "ex:protected3"
+ },
+ "protected1": "p === ex:protected3"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr15-out.nq b/test/jsonld/1.1/toRdf/pr15-out.nq
new file mode 100644
index 00000000..12700d12
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr15-out.nq
@@ -0,0 +1,3 @@
+_:b1 <ex:protected3> "p === ex:protected3" .
+_:b0 <ex:protected2> _:b1 .
+_:b0 <ex:protected1> "p === ex:protected1" .
diff --git a/test/jsonld/1.1/toRdf/pr16-in.jsonld b/test/jsonld/1.1/toRdf/pr16-in.jsonld
new file mode 100644
index 00000000..61946e01
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr16-in.jsonld
@@ -0,0 +1,30 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": {
+ "@id": "ex:protected2",
+ "@context": [
+ null,
+ {
+ "protected1": "ex:protected3",
+ "unprotected": "ex:unprotected2"
+ }
+ ]
+ },
+ "unprotected": {
+ "@protected": false,
+ "@id": "ex:unprotected1"
+ }
+ },
+ "protected1": "p === ex:protected1",
+ "protected2": {
+ "@context": {
+ "protected1": "ex:protected3"
+ },
+ "protected1": "p === ex:protected3",
+ "unprotected": "p === ex:unprotected2"
+ },
+ "unprotected": "p === ex:unprotected1"
+}
diff --git a/test/jsonld/1.1/toRdf/pr16-out.nq b/test/jsonld/1.1/toRdf/pr16-out.nq
new file mode 100644
index 00000000..ee059ff8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr16-out.nq
@@ -0,0 +1,5 @@
+_:b1 <ex:unprotected2> "p === ex:unprotected2" .
+_:b1 <ex:protected3> "p === ex:protected3" .
+_:b0 <ex:protected2> _:b1 .
+_:b0 <ex:protected1> "p === ex:protected1" .
+_:b0 <ex:unprotected1> "p === ex:unprotected1" .
diff --git a/test/jsonld/1.1/toRdf/pr17-in.jsonld b/test/jsonld/1.1/toRdf/pr17-in.jsonld
new file mode 100644
index 00000000..e2300354
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr17-in.jsonld
@@ -0,0 +1,22 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": "ex:protected2",
+ "Protected": {
+ "@id": "ex:Protected",
+ "@context": [
+ null
+ ]
+ }
+ },
+ "protected1": "p === protected1",
+ "protected2": {
+ "@context": {
+ "unprotected": "ex:unprotected"
+ },
+ "@type": "Protected",
+ "unprotected": "error / omitted"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr18-in.jsonld b/test/jsonld/1.1/toRdf/pr18-in.jsonld
new file mode 100644
index 00000000..a6648cd6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr18-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected": "ex:protected1",
+ "Protected": {
+ "@id": "ex:Protected",
+ "@context": [
+ null,
+ {
+ "protected": "ex:protected2"
+ }
+ ]
+ }
+ },
+ "@type": "Protected",
+ "protected": "error / p === ex:protected1"
+}
diff --git a/test/jsonld/1.1/toRdf/pr19-in.jsonld b/test/jsonld/1.1/toRdf/pr19-in.jsonld
new file mode 100644
index 00000000..e418cb12
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr19-in.jsonld
@@ -0,0 +1,29 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "protected2": {
+ "@id": "ex:protected2",
+ "@context": [
+ null,
+ {
+ "protected1": "ex:protected3"
+ }
+ ]
+ },
+ "unprotected": {
+ "@protected": false,
+ "@id": "ex:unprotected1"
+ }
+ },
+ "protected1": "p === ex:protected1",
+ "protected2": {
+ "@context": {
+ "protected1": "ex:protected3"
+ },
+ "protected1": "p === ex:protected3",
+ "unprotected": "p === ex:unprotected2"
+ },
+ "unprotected": "p === ex:unprotected1"
+}
diff --git a/test/jsonld/1.1/toRdf/pr19-out.nq b/test/jsonld/1.1/toRdf/pr19-out.nq
new file mode 100644
index 00000000..d4856454
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr19-out.nq
@@ -0,0 +1,4 @@
+_:b1 <ex:protected3> "p === ex:protected3" .
+_:b0 <ex:protected2> _:b1 .
+_:b0 <ex:protected1> "p === ex:protected1" .
+_:b0 <ex:unprotected1> "p === ex:unprotected1" .
diff --git a/test/jsonld/1.1/toRdf/pr20-in.jsonld b/test/jsonld/1.1/toRdf/pr20-in.jsonld
new file mode 100644
index 00000000..69edf670
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr20-in.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected1": "ex:protected1",
+ "Protected": {
+ "@id": "ex:Protected",
+ "@context": [
+ null,
+ {
+ "protected1": "ex:protected2",
+ "unprotected": "ex:unprotected2"
+ }
+ ]
+ },
+ "unprotected": {
+ "@protected": false,
+ "@id": "ex:unprotected1"
+ }
+ },
+ "@type": "Protected",
+ "protected1": "error / p === ex:protected1",
+ "unprotected": "p === ex:unprotected2"
+}
diff --git a/test/jsonld/1.1/toRdf/pr21-in.jsonld b/test/jsonld/1.1/toRdf/pr21-in.jsonld
new file mode 100644
index 00000000..3be7f54f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr21-in.jsonld
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "protected": "ex:protected",
+ "Protected": {
+ "@id": "ex:Protected",
+ "@context": [
+ null
+ ]
+ },
+ "unprotected": {
+ "@protected": false,
+ "@id": "ex:unprotected"
+ }
+ },
+ "@type": "Protected",
+ "protected": "error / p === ex:protected",
+ "unprotected": "missing"
+}
diff --git a/test/jsonld/1.1/toRdf/pr22-in.jsonld b/test/jsonld/1.1/toRdf/pr22-in.jsonld
new file mode 100644
index 00000000..7cd17cb8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr22-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "@vocab": "http://example.com/",
+ "Parent": {"@context": {"@protected": true, "foo": {"@type": "@id"}}}
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "Child": {"@context": {"@protected": true, "foo": {"@type": "@id"}}}
+ }],
+ "@type": "Parent",
+ "foo": {
+ "@type": "Child",
+ "foo": "http://example.com/test"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr22-out.nq b/test/jsonld/1.1/toRdf/pr22-out.nq
new file mode 100644
index 00000000..67303238
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr22-out.nq
@@ -0,0 +1,4 @@
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Child> .
+_:b1 <http://example.com/foo> <http://example.com/test> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Parent> .
+_:b0 <http://example.com/foo> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/pr23-in.jsonld b/test/jsonld/1.1/toRdf/pr23-in.jsonld
new file mode 100644
index 00000000..23f525f3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr23-in.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type"
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type"
+ }],
+ "id": "http://example/id",
+ "type": "http://example/type"
+}
diff --git a/test/jsonld/1.1/toRdf/pr23-out.nq b/test/jsonld/1.1/toRdf/pr23-out.nq
new file mode 100644
index 00000000..760a31d0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr23-out.nq
@@ -0,0 +1 @@
+<http://example/id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/type> .
diff --git a/test/jsonld/1.1/toRdf/pr24-in.jsonld b/test/jsonld/1.1/toRdf/pr24-in.jsonld
new file mode 100644
index 00000000..ed5af3b3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr24-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "foo": "http://example/foo#"
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "foo": "http://example/foo#"
+ }],
+ "foo:bar": "foobar"
+}
diff --git a/test/jsonld/1.1/toRdf/pr24-out.nq b/test/jsonld/1.1/toRdf/pr24-out.nq
new file mode 100644
index 00000000..68d4841e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr24-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/foo#bar> "foobar" .
diff --git a/test/jsonld/1.1/toRdf/pr25-in.jsonld b/test/jsonld/1.1/toRdf/pr25-in.jsonld
new file mode 100644
index 00000000..02fffd68
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr25-in.jsonld
@@ -0,0 +1,141 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type",
+ "foo": {
+ "@id": "http://example/foo",
+ "@container": ["@graph", "@set"]
+ },
+ "bar": {
+ "@id": "http://example/bar",
+ "@type": "@id",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Bar": {
+ "@id": "http://example/Bar",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type",
+ "foo": {
+ "@id": "http://example/foo",
+ "@container": ["@graph", "@set"]
+ },
+ "bar": {
+ "@id": "http://example/bar",
+ "@type": "@id",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Bar": {
+ "@id": "http://example/Bar",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }],
+ "type": "Bar",
+ "foo": [{
+ "bar": "http://example/"
+ }],
+ "bar-1": {
+ "bar-2": {
+ "type": "Foo",
+ "bar-2": "bar-2"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr25-out.nq b/test/jsonld/1.1/toRdf/pr25-out.nq
new file mode 100644
index 00000000..dc65b1d1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr25-out.nq
@@ -0,0 +1,7 @@
+_:b4 <http://example/bar-2> "bar-2" .
+_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
+_:b3 <http://example/bar-2> _:b4 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Bar> .
+_:b0 <http://example/foo> _:b1 .
+_:b0 <http://example/bar-1> _:b3 .
+_:b2 <http://example/bar> <http://example/> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/pr26-in.jsonld b/test/jsonld/1.1/toRdf/pr26-in.jsonld
new file mode 100644
index 00000000..28f02147
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr26-in.jsonld
@@ -0,0 +1,136 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type",
+ "foo": {
+ "@id": "http://example/foo",
+ "@container": ["@graph", "@set"]
+ },
+ "bar": {
+ "@id": "http://example/bar",
+ "@type": "@id",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Bar": {
+ "@id": "http://example/Bar",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }, {
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type",
+ "foo": {
+ "@id": "http://example/foo",
+ "@container": ["@graph", "@set"]
+ },
+ "bar": {
+ "@id": "http://example/bar",
+ "@type": "@id",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Bar": {
+ "@id": "http://example/Bar",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-1": {
+ "@id": "http://example/bar-1",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2",
+ "Foo": {
+ "@id": "http://example/Foo",
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "bar-2": "http://example/bar-2"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Foo": {
+ "@id": "http://example/Foo"
+ }
+ }],
+ "type": "Bar",
+ "foo": [{
+ "bar": "http://example/"
+ }],
+ "bar-1": {
+ "bar-2": {
+ "type": "Foo",
+ "bar-2": "bar-2"
+ }
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/pr27-in.jsonld b/test/jsonld/1.1/toRdf/pr27-in.jsonld
new file mode 100644
index 00000000..27d54470
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr27-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "id": "@id",
+ "type": "@type"
+ }, {
+ "@version": 1.1,
+ "id": "@id",
+ "type": "@type"
+ }],
+ "id": "http://example/id",
+ "type": "http://example/type"
+}
diff --git a/test/jsonld/1.1/toRdf/pr27-out.nq b/test/jsonld/1.1/toRdf/pr27-out.nq
new file mode 100644
index 00000000..760a31d0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr27-out.nq
@@ -0,0 +1 @@
+<http://example/id> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/type> .
diff --git a/test/jsonld/1.1/toRdf/pr28-in.jsonld b/test/jsonld/1.1/toRdf/pr28-in.jsonld
new file mode 100644
index 00000000..f883af3b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr28-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "term": null
+ }, {
+ "@version": 1.1,
+ "term": {"@id": "http://example.com/term"}
+ }],
+ "term": "undefined"
+}
diff --git a/test/jsonld/1.1/toRdf/pr29-in.jsonld b/test/jsonld/1.1/toRdf/pr29-in.jsonld
new file mode 100644
index 00000000..e49e6c69
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr29-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "tag": {"@id": "http://example.org/ns/tag/", "@prefix": false}
+ },
+ "tag:champin.net,2019:prop": "This is not treated as a Compact IRI",
+ "tag": "tricky"
+}
diff --git a/test/jsonld/1.1/toRdf/pr29-out.nq b/test/jsonld/1.1/toRdf/pr29-out.nq
new file mode 100644
index 00000000..bd4afcd2
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr29-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/ns/tag/> "tricky" .
+_:b0 <tag:champin.net,2019:prop> "This is not treated as a Compact IRI" .
diff --git a/test/jsonld/1.1/toRdf/pr30-in.jsonld b/test/jsonld/1.1/toRdf/pr30-in.jsonld
new file mode 100644
index 00000000..5744284d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr30-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "id": {"@id": "@id", "@protected": true},
+ "type": {"@id" : "@type", "@container": "@set", "@protected" : true},
+ "@type": {"@container": "@set", "@protected": true}
+ },
+ "id": "http://example.com/1",
+ "type": "http://example.org/ns/Foo",
+ "@type": "http://example.org/ns/Bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pr30-out.nq b/test/jsonld/1.1/toRdf/pr30-out.nq
new file mode 100644
index 00000000..52703634
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr30-out.nq
@@ -0,0 +1,2 @@
+<http://example.com/1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/ns/Bar> .
+<http://example.com/1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/ns/Foo> .
diff --git a/test/jsonld/1.1/toRdf/pr31-in.jsonld b/test/jsonld/1.1/toRdf/pr31-in.jsonld
new file mode 100644
index 00000000..459d335a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr31-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "id": {"@id": "@id", "@protected": true},
+ "type": {"@id" : "@type", "@container": "@set", "@protected" : true},
+ "@type": {"@container": "@set", "@protected": true}
+ }, {
+ "@version": 1.1,
+ "id": "http://example.com/id"
+ }],
+ "id": "http://example.com/1",
+ "type": ["http://example.org/ns/Foo"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pr32-in.jsonld b/test/jsonld/1.1/toRdf/pr32-in.jsonld
new file mode 100644
index 00000000..3f287c01
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr32-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "id": {"@id": "@id", "@protected": true},
+ "type": {"@id" : "@type", "@container": "@set", "@protected" : true},
+ "@type": {"@container": "@set", "@protected": true}
+ }, {
+ "@version": 1.1,
+ "@type": {"@protected": true}
+ }],
+ "id": "http://example.com/1",
+ "type": ["http://example.org/ns/Foo"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pr33-in.jsonld b/test/jsonld/1.1/toRdf/pr33-in.jsonld
new file mode 100644
index 00000000..ac9b9e5a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr33-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "foo": {
+ "@id": "@type",
+ "@prefix": true
+ }
+ },
+ "foo:bar": "http://example.org/baz"
+}
diff --git a/test/jsonld/1.1/toRdf/pr34-in.jsonld b/test/jsonld/1.1/toRdf/pr34-in.jsonld
new file mode 100644
index 00000000..18bbf1c7
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr34-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@ignoreMe": "http://example.org/should-ignore"
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "@ignoreMe": "should not be here"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pr34-out.nq b/test/jsonld/1.1/toRdf/pr34-out.nq
new file mode 100644
index 00000000..13166737
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr34-out.nq
@@ -0,0 +1 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/IgnoreTest> .
diff --git a/test/jsonld/1.1/toRdf/pr35-in.jsonld b/test/jsonld/1.1/toRdf/pr35-in.jsonld
new file mode 100644
index 00000000..0145697e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr35-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "@ignoreMe": "http://example.org/should-ignore"
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "@ignoreMe": "should not be here"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pr35-out.nq b/test/jsonld/1.1/toRdf/pr35-out.nq
new file mode 100644
index 00000000..13166737
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr35-out.nq
@@ -0,0 +1 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/IgnoreTest> .
diff --git a/test/jsonld/1.1/toRdf/pr36-in.jsonld b/test/jsonld/1.1/toRdf/pr36-in.jsonld
new file mode 100644
index 00000000..bf8fe6cc
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr36-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "ignoreMe": "@ignoreMe"
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "ignoreMe": "should not be here"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pr36-out.nq b/test/jsonld/1.1/toRdf/pr36-out.nq
new file mode 100644
index 00000000..13166737
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr36-out.nq
@@ -0,0 +1 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/IgnoreTest> .
diff --git a/test/jsonld/1.1/toRdf/pr37-in.jsonld b/test/jsonld/1.1/toRdf/pr37-in.jsonld
new file mode 100644
index 00000000..b1820a1a
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr37-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "ignoreMe": "@ignoreMe"
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "ignoreMe": "vocabulary relative"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pr37-out.nq b/test/jsonld/1.1/toRdf/pr37-out.nq
new file mode 100644
index 00000000..6d4162c0
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr37-out.nq
@@ -0,0 +1,2 @@
+_:b0 <http://example.org/ignoreMe> "vocabulary relative" .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/IgnoreTest> .
diff --git a/test/jsonld/1.1/toRdf/pr38-in.jsonld b/test/jsonld/1.1/toRdf/pr38-in.jsonld
new file mode 100644
index 00000000..9f4ac1af
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr38-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "ignoreMe": {"@reverse": "@ignoreMe"}
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "ignoreMe": {"http://example.org/text": "should not be here"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pr38-out.nq b/test/jsonld/1.1/toRdf/pr38-out.nq
new file mode 100644
index 00000000..13166737
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr38-out.nq
@@ -0,0 +1 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/IgnoreTest> .
diff --git a/test/jsonld/1.1/toRdf/pr39-in.jsonld b/test/jsonld/1.1/toRdf/pr39-in.jsonld
new file mode 100644
index 00000000..1ea54f7d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr39-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/",
+ "ignoreMe": {"@reverse": "@ignoreMe"}
+ },
+ "@type": "http://example.com/IgnoreTest",
+ "ignoreMe": {"text": "not reversed"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pr39-out.nq b/test/jsonld/1.1/toRdf/pr39-out.nq
new file mode 100644
index 00000000..afdfcf87
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr39-out.nq
@@ -0,0 +1,3 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/IgnoreTest> .
+_:b0 <http://example.org/ignoreMe> _:b1 .
+_:b1 <http://example.org/text> "not reversed" .
diff --git a/test/jsonld/1.1/toRdf/pr40-in.jsonld b/test/jsonld/1.1/toRdf/pr40-in.jsonld
new file mode 100644
index 00000000..52c7b642
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr40-in.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context": {
+ "@vocab": "http://vocab.org/",
+ "@protected": true,
+ "bar": "http://ignored.org/bar",
+ "foo": {
+ "@context": {
+ "bar": "http://example.org/other"
+ }
+ }
+ },
+ "@id": "ex:outer",
+ "foo": {
+ "@id": "ex:inner",
+ "bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/pr40-out.nq b/test/jsonld/1.1/toRdf/pr40-out.nq
new file mode 100644
index 00000000..272be077
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/pr40-out.nq
@@ -0,0 +1,2 @@
+<ex:inner> <http://example.org/other> "baz" .
+<ex:outer> <http://vocab.org/foo> <ex:inner> .
diff --git a/test/jsonld/1.1/toRdf/rt01-in.jsonld b/test/jsonld/1.1/toRdf/rt01-in.jsonld
new file mode 100644
index 00000000..9aaa87be
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/rt01-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "number": {"@id": "http://example.com/number"}
+ },
+ "number": [-0e0, 8, 9.9, 1e21 ]
+}
diff --git a/test/jsonld/1.1/toRdf/rt01-out.nq b/test/jsonld/1.1/toRdf/rt01-out.nq
new file mode 100644
index 00000000..65c50746
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/rt01-out.nq
@@ -0,0 +1,4 @@
+_:b0 <http://example.com/number> "0"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.com/number> "8"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.com/number> "9.9E0"^^<http://www.w3.org/2001/XMLSchema#double> .
+_:b0 <http://example.com/number> "1.0E21"^^<http://www.w3.org/2001/XMLSchema#double> .
diff --git a/test/jsonld/1.1/toRdf/so01-in.jsonld b/test/jsonld/1.1/toRdf/so01-in.jsonld
new file mode 100644
index 00000000..7423c425
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so01-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@import": "so01-in.jsonld"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/so02-in.jsonld b/test/jsonld/1.1/toRdf/so02-in.jsonld
new file mode 100644
index 00000000..a46da56f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so02-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@import": {}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/so03-in.jsonld b/test/jsonld/1.1/toRdf/so03-in.jsonld
new file mode 100644
index 00000000..9b615289
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so03-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@import": "so03-in.jsonld"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/so05-context.jsonld b/test/jsonld/1.1/toRdf/so05-context.jsonld
new file mode 100644
index 00000000..902a3870
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so05-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "baz": {"@id": "http://example.org/baz", "@type": "@vocab"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/so05-in.jsonld b/test/jsonld/1.1/toRdf/so05-in.jsonld
new file mode 100644
index 00000000..664c82db
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so05-in.jsonld
@@ -0,0 +1,14 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "Foo": {
+ "@context": {
+ "@import": "so05-context.jsonld",
+ "@propagate": true
+ }
+ }
+ },
+ "@type": "Foo",
+ "bar": {"baz": "buzz"}
+}
diff --git a/test/jsonld/1.1/toRdf/so05-out.nq b/test/jsonld/1.1/toRdf/so05-out.nq
new file mode 100644
index 00000000..c72a82cc
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so05-out.nq
@@ -0,0 +1,3 @@
+_:b1 <http://example.org/baz> <http://example/buzz> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Foo> .
+_:b0 <http://example/bar> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/so06-context.jsonld b/test/jsonld/1.1/toRdf/so06-context.jsonld
new file mode 100644
index 00000000..5da1e53f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so06-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "baz": {"@id": "http://example.com/baz", "@type": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/so06-in.jsonld b/test/jsonld/1.1/toRdf/so06-in.jsonld
new file mode 100644
index 00000000..3b664b9b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so06-in.jsonld
@@ -0,0 +1,13 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@vocab": "http://example/",
+ "bar": {
+ "@context": {
+ "@import": "so06-context.jsonld",
+ "@propagate": false
+ }
+ }
+ },
+ "bar": {"baz": {"baz": "buzz"}}
+}
diff --git a/test/jsonld/1.1/toRdf/so06-out.nq b/test/jsonld/1.1/toRdf/so06-out.nq
new file mode 100644
index 00000000..69983ed5
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so06-out.nq
@@ -0,0 +1,3 @@
+_:b2 <http://example/baz> "buzz" .
+_:b1 <http://example.com/baz> _:b2 .
+_:b0 <http://example/bar> _:b1 .
diff --git a/test/jsonld/1.1/toRdf/so07-context.jsonld b/test/jsonld/1.1/toRdf/so07-context.jsonld
new file mode 100644
index 00000000..7ddb66da
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so07-context.jsonld
@@ -0,0 +1,10 @@
+{
+ "@context": {
+ "protected1": {
+ "@id": "http://example.com/protected1"
+ },
+ "protected2": {
+ "@id": "http://example.com/protected2"
+ }
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/so07-in.jsonld b/test/jsonld/1.1/toRdf/so07-in.jsonld
new file mode 100644
index 00000000..1d8d5aaa
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so07-in.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "@vocab": "http://example.com/",
+ "@version": 1.1,
+ "@protected": true,
+ "@import": "so07-context.jsonld"
+ },
+ "protected1": {
+ "@context": {
+ "protected1": "http://example.com/something-else",
+ "protected2": "http://example.com/something-else"
+ },
+ "protected1": "error / property http://example.com/protected1",
+ "protected2": "error / property http://example.com/protected2"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/so08-context.jsonld b/test/jsonld/1.1/toRdf/so08-context.jsonld
new file mode 100644
index 00000000..3e6660a8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so08-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": "http://example.org/sourced"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/so08-in.jsonld b/test/jsonld/1.1/toRdf/so08-in.jsonld
new file mode 100644
index 00000000..bfb50b89
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so08-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@import": "so08-context.jsonld",
+ "term": "http://example.org/redefined"
+ },
+ "term": "value"
+}
diff --git a/test/jsonld/1.1/toRdf/so08-out.nq b/test/jsonld/1.1/toRdf/so08-out.nq
new file mode 100644
index 00000000..7f0e1d3f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so08-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/redefined> "value" .
diff --git a/test/jsonld/1.1/toRdf/so09-context.jsonld b/test/jsonld/1.1/toRdf/so09-context.jsonld
new file mode 100644
index 00000000..45334dcb
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so09-context.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "@vocab": "http://example.org/source/",
+ "term": {"@id": "term"}
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/so09-in.jsonld b/test/jsonld/1.1/toRdf/so09-in.jsonld
new file mode 100644
index 00000000..f6b52160
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so09-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@import": "so09-context.jsonld",
+ "@vocab": "http://example.org/redefined/"
+ },
+ "term": "value"
+}
diff --git a/test/jsonld/1.1/toRdf/so09-out.nq b/test/jsonld/1.1/toRdf/so09-out.nq
new file mode 100644
index 00000000..73c43c00
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so09-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/redefined/term> "value" .
diff --git a/test/jsonld/1.1/toRdf/so10-context.jsonld b/test/jsonld/1.1/toRdf/so10-context.jsonld
new file mode 100644
index 00000000..d36bc5c6
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so10-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": "http://example.org/protected"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/so10-in.jsonld b/test/jsonld/1.1/toRdf/so10-in.jsonld
new file mode 100644
index 00000000..ec45ada1
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so10-in.jsonld
@@ -0,0 +1,11 @@
+{
+ "@context": [{
+ "@version": 1.1,
+ "@protected": true,
+ "@import": "so10-context.jsonld"
+ }, {
+ "term": "http://example.org/unprotected"
+ }],
+ "term": "value"
+}
+ \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/so11-context.jsonld b/test/jsonld/1.1/toRdf/so11-context.jsonld
new file mode 100644
index 00000000..3e6660a8
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so11-context.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "term": "http://example.org/sourced"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/so11-in.jsonld b/test/jsonld/1.1/toRdf/so11-in.jsonld
new file mode 100644
index 00000000..a63f1590
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so11-in.jsonld
@@ -0,0 +1,9 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@protected": true,
+ "@import": "so08-context.jsonld",
+ "term": "http://example.org/redefined"
+ },
+ "term": "value"
+}
diff --git a/test/jsonld/1.1/toRdf/so11-out.nq b/test/jsonld/1.1/toRdf/so11-out.nq
new file mode 100644
index 00000000..7f0e1d3f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so11-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/redefined> "value" .
diff --git a/test/jsonld/1.1/toRdf/so12-in.jsonld b/test/jsonld/1.1/toRdf/so12-in.jsonld
new file mode 100644
index 00000000..00432d2f
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so12-in.jsonld
@@ -0,0 +1,5 @@
+{
+ "@context": {
+ "@import": "so12-in.jsonld"
+ }
+}
diff --git a/test/jsonld/1.1/toRdf/so13-context.jsonld b/test/jsonld/1.1/toRdf/so13-context.jsonld
new file mode 100644
index 00000000..7c984d7c
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so13-context.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": [{
+ "term": "http://example.org/term"
+ }, {
+ "term2": "http://example.org/term2"
+ }]
+}
diff --git a/test/jsonld/1.1/toRdf/so13-in.jsonld b/test/jsonld/1.1/toRdf/so13-in.jsonld
new file mode 100644
index 00000000..ce04701e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/so13-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "@import": "so13-context.jsonld"
+ },
+ "term": "value"
+}
diff --git a/test/jsonld/1.1/toRdf/tn01-in.jsonld b/test/jsonld/1.1/toRdf/tn01-in.jsonld
new file mode 100644
index 00000000..5e83158e
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/tn01-in.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": {
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "notype": {"@id": "http://example.com/notype", "@type": "@none"}
+ },
+ "notype": [
+ "string",
+ true,
+ false,
+ 1,
+ 10.0,
+ {"@value": "plain"},
+ {"@value": true, "@type": "xsd:boolean"},
+ {"@value": "english", "@language": "en"},
+ {"@value": "2018-02-17", "@type": "xsd:date"},
+ {"@id": "http://example.com/iri"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/tn02-in.jsonld b/test/jsonld/1.1/toRdf/tn02-in.jsonld
new file mode 100644
index 00000000..79c40761
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/tn02-in.jsonld
@@ -0,0 +1,19 @@
+{
+ "@context": {
+ "@version": 1.1,
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "notype": {"@id": "http://example.com/notype", "@type": "@none"}
+ },
+ "notype": [
+ "string",
+ true,
+ false,
+ 1,
+ 10.0,
+ {"@value": "plain"},
+ {"@value": true, "@type": "xsd:boolean"},
+ {"@value": "english", "@language": "en"},
+ {"@value": "2018-02-17", "@type": "xsd:date"},
+ {"@id": "http://example.com/iri"}
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/tn02-out.nq b/test/jsonld/1.1/toRdf/tn02-out.nq
new file mode 100644
index 00000000..72bc2325
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/tn02-out.nq
@@ -0,0 +1,9 @@
+_:b0 <http://example.com/notype> "string" .
+_:b0 <http://example.com/notype> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+_:b0 <http://example.com/notype> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+_:b0 <http://example.com/notype> "10"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.com/notype> "plain" .
+_:b0 <http://example.com/notype> <http://example.com/iri> .
+_:b0 <http://example.com/notype> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b0 <http://example.com/notype> "english"@en .
+_:b0 <http://example.com/notype> "2018-02-17"^^<http://www.w3.org/2001/XMLSchema#date> .
diff --git a/test/jsonld/1.1/toRdf/wf01-in.jsonld b/test/jsonld/1.1/toRdf/wf01-in.jsonld
new file mode 100644
index 00000000..54fa7e8d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf01-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.com/a b",
+ "http://example.com/foo": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/wf01-out.nq b/test/jsonld/1.1/toRdf/wf01-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf01-out.nq
diff --git a/test/jsonld/1.1/toRdf/wf02-in.jsonld b/test/jsonld/1.1/toRdf/wf02-in.jsonld
new file mode 100644
index 00000000..fe5f18e3
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf02-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.com/foo",
+ "http://example.com/a b": "bar"
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/wf02-out.nq b/test/jsonld/1.1/toRdf/wf02-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf02-out.nq
diff --git a/test/jsonld/1.1/toRdf/wf03-in.jsonld b/test/jsonld/1.1/toRdf/wf03-in.jsonld
new file mode 100644
index 00000000..d6e20ade
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf03-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.com/foo",
+ "http://example.com/bar": {"@id": "http://example.com/baz z"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/wf03-out.nq b/test/jsonld/1.1/toRdf/wf03-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf03-out.nq
diff --git a/test/jsonld/1.1/toRdf/wf04-in.jsonld b/test/jsonld/1.1/toRdf/wf04-in.jsonld
new file mode 100644
index 00000000..9321636d
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf04-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.com/foo",
+ "@type": ["http://example.com/bar", "http://in valid"]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/wf04-out.nq b/test/jsonld/1.1/toRdf/wf04-out.nq
new file mode 100644
index 00000000..b241d18b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf04-out.nq
@@ -0,0 +1 @@
+<http://example.com/foo> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/bar> .
diff --git a/test/jsonld/1.1/toRdf/wf05-in.jsonld b/test/jsonld/1.1/toRdf/wf05-in.jsonld
new file mode 100644
index 00000000..79352683
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf05-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@id": "http://example.com/foo",
+ "http://example.com/bar": {"@value": "bar", "@language": "a b"}
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/wf05-out.nq b/test/jsonld/1.1/toRdf/wf05-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf05-out.nq
diff --git a/test/jsonld/1.1/toRdf/wf07-in.jsonld b/test/jsonld/1.1/toRdf/wf07-in.jsonld
new file mode 100644
index 00000000..5119e589
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf07-in.jsonld
@@ -0,0 +1,7 @@
+{
+ "@id": "http://example.com/invalid gn",
+ "@graph": {
+ "@id": "http://example.com/foo",
+ "http://example.com/bar": "baz"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/toRdf/wf07-out.nq b/test/jsonld/1.1/toRdf/wf07-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/1.1/toRdf/wf07-out.nq
diff --git a/test/jsonld/1.1/vocab.jsonld b/test/jsonld/1.1/vocab.jsonld
new file mode 100644
index 00000000..f6538dc7
--- /dev/null
+++ b/test/jsonld/1.1/vocab.jsonld
@@ -0,0 +1,332 @@
+{
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "dc11": "http://purl.org/dc/elements/1.1/",
+ "mf": "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "jld": "https://w3c.github.io/json-ld-api/tests/vocab#",
+ "jld:Test": {
+ "@type": "@id"
+ },
+ "dc11:identifier": {
+ "@type": "@id"
+ },
+ "requires": {
+ "@id": "mf:requires",
+ "@type": "@vocab",
+ "@container": "@set"
+ },
+ "rdfs:subClassOf": {
+ "@type": "@id"
+ },
+ "rdfs:domain": {
+ "@type": "@id"
+ },
+ "rdfs:range": {
+ "@type": "@id"
+ }
+ },
+ "@graph": [
+ {
+ "@id": "https://w3c.github.io/json-ld-api/tests/vocab#",
+ "dc11:identifier": "https://w3c.github.io/json-ld-api/tests/vocab#",
+ "dc11:creator": "Gregg Kellogg",
+ "rdfs:comment": "Manifest vocabulary for JSON-LD test cases",
+ "dc11:publisher": "W3C Linked JSON Community Group",
+ "dc11:date": "2013-09-23",
+ "dc11:description": "Test case manifest vocabulary extensions",
+ "dc11:title": "Test case manifest vocabulary extensions"
+ },
+ {
+ "@id": "jld:FlattenTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "Flatten Evaluation Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "A `FlattenTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`."
+ },
+ {
+ "@id": "jld:Test",
+ "@type": "rdfs:Class",
+ "rdfs:label": "Superclass of all JSON-LD tests",
+ "rdfs:comment": "All JSON-LD tests have an input file referenced using `mf:action` (aliased as \"input\" in test manifest). Positive and Negative Evaluation Tests also have a result file referenced using `mf:result` (aliased as \"expect\" and \"expectErrorCode\" for respectively Positive and Negative Evaluation Tests in test manifest). Other tests may take different inputs and options as defined for each test class. Tests should be run with the processingMode option set to \"json-ld-1.1\", unless specified explicitly as a test option."
+ },
+ {
+ "@id": "jld:FrameTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "Frame Evaluation Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "A `FrameTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`."
+ },
+ {
+ "@id": "jld:HtmlTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "HTML Evaluation Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "An `HtmlTest` modifies either a `PositiveEvaluationTest` or `NegativeEvaluationTest` indicating that the source is of type text/html, which requires optional _HTML script extraction_ support."
+ },
+ {
+ "@id": "jld:httpStatus",
+ "@type": "rdf:Property",
+ "rdfs:label": "HTTP status",
+ "rdfs:range": "xsd:integer",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "The HTTP status code that must be returned when the input file is requested. This is typically used along with the `redirectTo` property."
+ },
+ {
+ "@id": "jld:Option",
+ "@type": "rdfs:Class",
+ "rdfs:label": "Processor Options",
+ "rdfs:comment": "Options passed to the test runner to affect invocation of the appropriate API method."
+ },
+ {
+ "@id": "jld:GeneralizedRdf",
+ "@type": "mf:Requirement",
+ "rdfs:label": "GeneralizedRdf",
+ "rdfs:comment": "Test generates Generalized RDF"
+ },
+ {
+ "@id": "jld:PositiveSyntaxTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "Positive Syntax Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "A type of test specifically for syntax testing. Syntax tests are not required to have an associated result, only an action."
+ },
+ {
+ "@id": "jld:useJCS",
+ "@type": "rdf:Property",
+ "rdfs:label": "use JCS",
+ "rdfs:range": "xsd:boolean",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "Requires the use of JSON Canonicalization Scheme when generating RDF literals from JSON literal values."
+ },
+ {
+ "@id": "jld:PositiveEvaluationTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "Positive Evaluation Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "A Positive Evaluation test is successful when the result of processing the input file specified as `mf:action` (aliased as \"input\" in test manifest) exactly matches the output file specified as `mf:result` (aliased as \"expect\" in test manifest) using the comparison defined in another class. The specifics of invoking test, including the interpretation of options (`:option`) and other input files are specified through another class."
+ },
+ {
+ "@id": "jld:NegativeEvaluationTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "Negative Evaluation Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "A Negative Evaluation test is successful when the result of processing the input file specified as `mf:action` (aliased as \"input\" in test manifest) results in the error identified by the literal value of `mf:result` (aliased as \"expectErrorCode\" in test manifest). The specifics of invoking test, including the interpretation of options (`:option`) and other input files are specified through another class. See the [README](https://w3c.github.io/json-ld-api/tests/) for more details on running tests."
+ },
+ {
+ "@id": "jld:ExpandTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "Expand Evaluation Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "A `ExpandTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`."
+ },
+ {
+ "@id": "jld:FromRDFTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "From RDF Evaluation Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "A `FromRDFTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`."
+ },
+ {
+ "@id": "jld:HttpTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "HTTP Evaluation Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "An `HttpTest` modifies either a `PositiveEvaluationTest` or `NegativeEvaluationTest`."
+ },
+ {
+ "@id": "jld:I18nDatatype",
+ "@type": "mf:Requirement",
+ "rdfs:label": "I18nDatatype",
+ "rdfs:comment": "Optional test to serialize text direction using `i18n-datatype`"
+ },
+ {
+ "@id": "jld:CompactTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "Compact Evaluation Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "A `CompactTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`."
+ },
+ {
+ "@id": "jld:httpLink",
+ "@type": "rdf:Property",
+ "rdfs:label": "HTTP link",
+ "rdfs:range": "xsd:string",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "An HTTP Link header to be added to the result of requesting the input file."
+ },
+ {
+ "@id": "jld:input",
+ "@type": "rdf:Property",
+ "rdfs:label": "input",
+ "rdfs:range": "rdfs:Resource",
+ "rdfs:domain": "jld:Test",
+ "rdfs:comment": "Secondary input file"
+ },
+ {
+ "@id": "jld:redirectTo",
+ "@type": "rdf:Property",
+ "rdfs:label": "redirect to",
+ "rdfs:range": "xsd:string",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "The location of a URL for redirection. A request made of the input file must be redirected to the designated URL."
+ },
+ {
+ "@id": "jld:ToRDFTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "To RDF Evaluation Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "A `ToRDFTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`."
+ },
+ {
+ "@id": "jld:context",
+ "@type": "rdf:Property",
+ "rdfs:label": "context",
+ "rdfs:range": "rdfs:Resource",
+ "rdfs:domain": "jld:Test",
+ "rdfs:comment": "A context that is used for transforming the input document."
+ },
+ {
+ "@id": "jld:specVersion",
+ "@type": "rdf:Property",
+ "rdfs:label": "spec version",
+ "rdfs:range": "xsd:string",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "Indicates the JSON-LD version to which the test applies, rather than the specific processing mode. Values are \"json-ld-1.0\", and \"json-ld-1.1\". If not set, the test is presumed to be valid for all versions of JSON-LD. In cases where results differ between spec versions for the same test, the test will have both a \"1.0\" and \"1.1\" version, for example."
+ },
+ {
+ "@id": "jld:contentType",
+ "@type": "rdf:Property",
+ "rdfs:label": "content type",
+ "rdfs:range": "xsd:string",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "The HTTP Content-Type used for the input file, in case it is a non-registered type."
+ },
+ {
+ "@id": "jld:NegativeSyntaxTest",
+ "@type": "rdfs:Class",
+ "rdfs:label": "Negative Syntax Test",
+ "rdfs:subClassOf": "jld:Test",
+ "rdfs:comment": "A type of test specifically for syntax testing. Syntax tests are not required to have an associated result, only an action. Negative syntax tests are tests of which the result should be a parser error."
+ },
+ {
+ "@id": "jld:useRdfType",
+ "@type": "rdf:Property",
+ "rdfs:label": "use RDF types",
+ "rdfs:range": "xsd:boolean",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "If the _use rdf type_ flag is set to `true`, statements with an `rdf:type` predicate will not use `@type`, but will be transformed as a normal property."
+ },
+ {
+ "@id": "jld:compactArrays",
+ "@type": "rdf:Property",
+ "rdfs:label": "compact arrays",
+ "rdfs:range": "xsd:boolean",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "If set to `true`, the JSON-LD processor replaces arrays with just one element with that element during compaction. If set to false, all arrays will remain arrays even if they have just one element."
+ },
+ {
+ "@id": "jld:normative",
+ "@type": "rdf:Property",
+ "rdfs:label": "normative",
+ "rdfs:range": "xsd:boolean",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "Indicates that this is or is not a test of a normative requirement. Tests without this option are treated as being normative."
+ },
+ {
+ "@id": "jld:httpAccept",
+ "@type": "rdf:Property",
+ "rdfs:label": "HTTP Accept",
+ "rdfs:range": "xsd:string",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "An HTTP Accept header."
+ },
+ {
+ "@id": "jld:useNativeTypes",
+ "@type": "rdf:Property",
+ "rdfs:label": "use native types",
+ "rdfs:range": "xsd:boolean",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "If the _use native types_ flag is set to `true`, RDF literals with a datatype IRI that equal `xsd:integer` or `xsd:double` are converted to a JSON numbers and RDF literals with a datatype IRI that equals `xsd:boolean` are converted to `true` or `false` based on their lexical form."
+ },
+ {
+ "@id": "jld:compactToRelative",
+ "@type": "rdf:Property",
+ "rdfs:label": "compact to relative",
+ "rdfs:range": "xsd:boolean",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "If set to `false`, the JSON-LD processor will not attempt to compact using document-relative IRIs."
+ },
+ {
+ "@id": "jld:option",
+ "@type": "rdf:Property",
+ "rdfs:label": "option",
+ "rdfs:range": "jld:Option",
+ "rdfs:domain": "jld:Test",
+ "rdfs:comment": "Options affecting processing"
+ },
+ {
+ "@id": "jld:produceGeneralizedRdf",
+ "@type": "rdf:Property",
+ "rdfs:label": "produce generalized RDF",
+ "rdfs:range": "xsd:boolean",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "Unless the produce generalized RDF flag is set to true, RDF triples containing a blank node predicate are excluded from output."
+ },
+ {
+ "@id": "jld:processingMode",
+ "@type": "rdf:Property",
+ "rdfs:label": "processing mode",
+ "rdfs:range": "xsd:string",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "If set to \"json-ld-1.1\", the JSON-LD processor must produce exactly the same results as the algorithms defined in this specification. If set to another value, the JSON-LD processor is allowed to extend or modify the algorithms defined in this specification to enable application-specific optimizations. The definition of such optimizations is beyond the scope of this specification and thus not defined. Consequently, different implementations may implement different optimizations. Developers must not define modes beginning with json-ld as they are reserved for future versions of this specification."
+ },
+ {
+ "@id": "jld:base",
+ "@type": "rdf:Property",
+ "rdfs:label": "base",
+ "rdfs:range": "rdfs:Resource",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "The base IRI to use when expanding or compacting the document. If set, this overrides the input document's IRI."
+ },
+ {
+ "@id": "jld:CompoundLiteral",
+ "@type": "mf:Requirement",
+ "rdfs:label": "CompoundLiteral",
+ "rdfs:comment": "Optional test to serialize text direction using `compound-literal`"
+ },
+ {
+ "@id": "jld:processorFeature",
+ "@type": "rdf:Property",
+ "rdfs:label": "processor feature",
+ "rdfs:range": "xsd:string",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "A particular processor feature that may be supported by some implementations."
+ },
+ {
+ "@id": "jld:extractAllScripts",
+ "@type": "rdf:Property",
+ "rdfs:label": "extract all scripts",
+ "rdfs:range": "xsd:boolean",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "Whether to extract all script elements from HTML, or just the first encountered."
+ },
+ {
+ "@id": "jld:expandContext",
+ "@type": "rdf:Property",
+ "rdfs:label": "expand context",
+ "rdfs:range": "rdfs:Resource",
+ "rdfs:domain": "jld:Option",
+ "rdfs:comment": "A context that is used to initialize the active context when expanding a document."
+ },
+ {
+ "@id": "jld:frame",
+ "@type": "rdf:Property",
+ "rdfs:label": "input",
+ "rdfs:range": "rdfs:Resource",
+ "rdfs:domain": "jld:Test",
+ "rdfs:comment": "A frame that is used for transforming the input document."
+ }
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/1.1/vocab.ttl b/test/jsonld/1.1/vocab.ttl
new file mode 100644
index 00000000..e4e590ac
--- /dev/null
+++ b/test/jsonld/1.1/vocab.ttl
@@ -0,0 +1,343 @@
+# Test vocabulary for the JSON-LD test suite.
+# This vocabulary defines classes an properties which extend
+# the test-manifest vocabulary at <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest>.
+
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix dc11: <http://purl.org/dc/elements/1.1/> .
+@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix : <https://w3c.github.io/json-ld-api/tests/vocab#> .
+
+: rdfs:comment "Manifest vocabulary for JSON-LD test cases" ;
+ dc11:creator "Gregg Kellogg" ;
+ dc11:publisher "W3C Linked JSON Community Group" ;
+ dc11:title "Test case manifest vocabulary extensions" ;
+ dc11:description "Test case manifest vocabulary extensions" ;
+ dc11:date "2013-09-23" ;
+ dc11:identifier : .
+
+## ---- Test Case Classes ---
+
+:Test a rdfs:Class ;
+ rdfs:label "Superclass of all JSON-LD tests" ;
+ rdfs:comment """
+ All JSON-LD tests have an input file referenced using
+ `mf:action` (aliased as "input" in test manifest).
+ Positive and Negative Evaluation Tests also have a result file
+ referenced using `mf:result` (aliased as "expect" and "expectErrorCode" for
+ respectively Positive and Negative Evaluation Tests in test manifest).
+ Other tests may take different inputs and options as defined for each test class.
+ Tests should be run with the processingMode option set to "json-ld-1.1",
+ unless specified explicitly as a test option.
+ """ .
+
+:PositiveEvaluationTest a rdfs:Class ;
+ rdfs:label "Positive Evaluation Test" ;
+ rdfs:subClassOf :Test ;
+ rdfs:comment """
+ A Positive Evaluation test is successful when the result of processing
+ the input file specified as `mf:action` (aliased as "input" in test manifest)
+ exactly matches the output file specified as
+ `mf:result` (aliased as "expect" in test manifest) using the comparison defined in
+ another class. The specifics of invoking test, including the interpretation of options
+ (`:option`) and other input files are specified through another class.
+ """ .
+
+:NegativeEvaluationTest a rdfs:Class ;
+ rdfs:label "Negative Evaluation Test" ;
+ rdfs:subClassOf :Test ;
+ rdfs:comment """
+ A Negative Evaluation test is successful when the result of processing
+ the input file specified as `mf:action` (aliased as "input" in test manifest)
+ results in the error identified by the literal value of
+ `mf:result` (aliased as "expectErrorCode" in test manifest).
+ The specifics of invoking test, including
+ the interpretation of options (`:option`) and other input files are
+ specified through another class.
+ See the [README](https://w3c.github.io/json-ld-api/tests/) for more details on running tests.
+ """ .
+
+:PositiveSyntaxTest a rdfs:Class ;
+ rdfs:subClassOf :Test ;
+ rdfs:label "Positive Syntax Test" ;
+ rdfs:comment """
+ A type of test specifically for syntax testing.
+ Syntax tests are not required to have an associated result, only an action.
+ """ .
+
+:NegativeSyntaxTest a rdfs:Class ;
+ rdfs:subClassOf :Test ;
+ rdfs:label "Negative Syntax Test" ;
+ rdfs:comment """
+ A type of test specifically for syntax testing.
+ Syntax tests are not required to have an associated result, only an action.
+ Negative syntax tests are tests of which the result should be a parser error.
+ """ .
+
+:CompactTest a rdfs:Class ;
+ rdfs:subClassOf :Test ;
+ rdfs:label "Compact Evaluation Test" ;
+ rdfs:comment """
+ A `CompactTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`,
+ `PositiveSyntaxTest` or `NegativeSyntaxTest`.
+ """ .
+
+:ExpandTest a rdfs:Class ;
+ rdfs:subClassOf :Test ;
+ rdfs:label "Expand Evaluation Test" ;
+ rdfs:comment """
+ A `ExpandTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`,
+ `PositiveSyntaxTest` or `NegativeSyntaxTest`.
+ """ .
+
+:FlattenTest a rdfs:Class ;
+ rdfs:subClassOf :Test ;
+ rdfs:label "Flatten Evaluation Test" ;
+ rdfs:comment """
+ A `FlattenTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`,
+ `PositiveSyntaxTest` or `NegativeSyntaxTest`.
+ """ .
+
+:FrameTest a rdfs:Class ;
+ rdfs:subClassOf :Test ;
+ rdfs:label "Frame Evaluation Test" ;
+ rdfs:comment """
+ A `FrameTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`,
+ `PositiveSyntaxTest` or `NegativeSyntaxTest`.
+ """ .
+
+:FromRDFTest a rdfs:Class ;
+ rdfs:subClassOf :Test ;
+ rdfs:label "From RDF Evaluation Test" ;
+ rdfs:comment """
+ A `FromRDFTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`,
+ `PositiveSyntaxTest` or `NegativeSyntaxTest`.
+ """ .
+
+:HtmlTest a rdfs:Class ;
+ rdfs:subClassOf :Test ;
+ rdfs:label "HTML Evaluation Test" ;
+ rdfs:comment """
+ An `HtmlTest` modifies either a `PositiveEvaluationTest` or `NegativeEvaluationTest`
+ indicating that the source is of type text/html, which requires optional
+ _HTML script extraction_ support.
+ """ .
+
+:HttpTest a rdfs:Class ;
+ rdfs:subClassOf :Test ;
+ rdfs:label "HTTP Evaluation Test" ;
+ rdfs:comment """
+ An `HttpTest` modifies either a `PositiveEvaluationTest` or `NegativeEvaluationTest`.
+ """ .
+
+:ToRDFTest a rdfs:Class ;
+ rdfs:subClassOf :Test ;
+ rdfs:label "To RDF Evaluation Test" ;
+ rdfs:comment """
+ A `ToRDFTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`,
+ `PositiveSyntaxTest` or `NegativeSyntaxTest`.
+ """ .
+
+:Option a rdfs:Class ;
+ rdfs:label "Processor Options" ;
+ rdfs:comment "Options passed to the test runner to affect invocation of the appropriate API method." .
+
+## ---- Property declarations for each test ----
+
+:input a rdf:Property ;
+ rdfs:label "input";
+ rdfs:comment "Secondary input file" ;
+ rdfs:domain :Test ;
+ rdfs:range rdfs:Resource .
+
+:context a rdf:Property ;
+ rdfs:label "context";
+ rdfs:comment "A context that is used for transforming the input document." ;
+ rdfs:domain :Test ;
+ rdfs:range rdfs:Resource .
+
+:frame a rdf:Property ;
+ rdfs:label "input";
+ rdfs:comment "A frame that is used for transforming the input document." ;
+ rdfs:domain :Test ;
+ rdfs:range rdfs:Resource .
+
+:option a rdf:Property ;
+ rdfs:label "option";
+ rdfs:comment "Options affecting processing" ;
+ rdfs:domain :Test ;
+ rdfs:range :Option .
+
+:base a rdf:Property ;
+ rdfs:label "base";
+ rdfs:comment """
+ The base IRI to use when expanding or compacting the document.
+ If set, this overrides the input document's IRI.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range rdfs:Resource .
+
+:compactArrays a rdf:Property ;
+ rdfs:label "compact arrays";
+ rdfs:comment """
+ If set to `true`, the JSON-LD processor replaces arrays with just one element
+ with that element during compaction.
+ If set to false, all arrays will remain arrays even if they have just one element.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:boolean .
+
+:compactToRelative a rdf:Property ;
+ rdfs:label "compact to relative";
+ rdfs:comment """
+ If set to `false`, the JSON-LD processor will not attempt to compact using document-relative IRIs.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:boolean .
+
+:expandContext a rdf:Property ;
+ rdfs:label "expand context";
+ rdfs:comment "A context that is used to initialize the active context when expanding a document." ;
+ rdfs:domain :Option ;
+ rdfs:range rdfs:Resource .
+
+:processingMode a rdf:Property ;
+ rdfs:label "processing mode";
+ rdfs:comment """
+ If set to "json-ld-1.1", the JSON-LD processor must produce exactly the same results as
+ the algorithms defined in this specification.
+ If set to another value, the JSON-LD processor is allowed to extend or modify
+ the algorithms defined in this specification to enable application-specific optimizations.
+ The definition of such optimizations is beyond the scope of this specification and thus not defined.
+ Consequently, different implementations may implement different optimizations.
+ Developers must not define modes beginning with json-ld as they are reserved for future versions of this specification.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:string .
+
+:produceGeneralizedRdf a rdf:Property ;
+ rdfs:label "produce generalized RDF";
+ rdfs:comment "Unless the produce generalized RDF flag is set to true, RDF triples containing a blank node predicate are excluded from output." ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:boolean .
+
+:useNativeTypes a rdf:Property ;
+ rdfs:label "use native types";
+ rdfs:comment """
+ If the _use native types_ flag is set to `true`, RDF literals with a datatype IRI that
+ equal `xsd:integer` or `xsd:double` are converted to a JSON numbers and RDF literals
+ with a datatype IRI that equals `xsd:boolean` are converted to `true` or `false` based
+ on their lexical form.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:boolean .
+
+:useJCS a rdf:Property ;
+ rdfs:label "use JCS";
+ rdfs:comment """
+ Requires the use of JSON Canonicalization Scheme when generating RDF literals from JSON literal values.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:boolean .
+
+:useRdfType a rdf:Property ;
+ rdfs:label "use RDF types";
+ rdfs:comment """
+ If the _use rdf type_ flag is set to `true`, statements with an `rdf:type` predicate
+ will not use `@type`, but will be transformed as a normal property.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:boolean .
+
+:contentType a rdf:Property ;
+ rdfs:label "content type";
+ rdfs:comment """
+ The HTTP Content-Type used for the input file, in case it is a non-registered type.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:string .
+
+:extractAllScripts a rdf:Property ;
+ rdfs:label "extract all scripts";
+ rdfs:comment """
+ Whether to extract all script elements from HTML, or just the first encountered.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:boolean .
+
+:redirectTo a rdf:Property ;
+ rdfs:label "redirect to";
+ rdfs:comment """
+ The location of a URL for redirection. A request made of the input file must be redirected
+ to the designated URL.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:string .
+
+:httpAccept a rdf:Property ;
+ rdfs:label "HTTP Accept";
+ rdfs:comment """
+ An HTTP Accept header.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:string .
+
+:httpLink a rdf:Property ;
+ rdfs:label "HTTP link";
+ rdfs:comment """
+ An HTTP Link header to be added to the result of requesting the input file.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:string .
+
+:httpStatus a rdf:Property ;
+ rdfs:label "HTTP status";
+ rdfs:comment """
+ The HTTP status code that must be returned when the input file is requested. This
+ is typically used along with the `redirectTo` property.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:integer .
+
+:normative a rdf:Property ;
+ rdfs:label "normative";
+ rdfs:comment """
+ Indicates that this is or is not a test of a normative requirement.
+ Tests without this option are treated as being normative.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:boolean .
+
+:processorFeature a rdf:Property ;
+ rdfs:label "processor feature";
+ rdfs:comment """
+ A particular processor feature that may be supported by some implementations.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:string .
+
+:specVersion a rdf:Property ;
+ rdfs:label "spec version";
+ rdfs:comment """
+ Indicates the JSON-LD version to which the test applies, rather than the
+ specific processing mode. Values are "json-ld-1.0", and "json-ld-1.1". If not set, the
+ test is presumed to be valid for all versions of JSON-LD. In cases where
+ results differ between spec versions for the same test, the test will have
+ both a "1.0" and "1.1" version, for example.
+ """ ;
+ rdfs:domain :Option ;
+ rdfs:range xsd:string .
+
+# Test requirements (mf:requires)
+:I18nDatatype a mf:Requirement ;
+ rdfs:label "I18nDatatype" ;
+ rdfs:comment "Optional test to serialize text direction using `i18n-datatype`" .
+
+:CompoundLiteral a mf:Requirement ;
+ rdfs:label "CompoundLiteral" ;
+ rdfs:comment "Optional test to serialize text direction using `compound-literal`" .
+
+:GeneralizedRdf a mf:Requirement ;
+ rdfs:label "GeneralizedRdf" ;
+ rdfs:comment "Test generates Generalized RDF" .
diff --git a/test/jsonld/1.1/vocab_context.jsonld b/test/jsonld/1.1/vocab_context.jsonld
new file mode 100644
index 00000000..9d2aec17
--- /dev/null
+++ b/test/jsonld/1.1/vocab_context.jsonld
@@ -0,0 +1,16 @@
+{
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "dc11": "http://purl.org/dc/elements/1.1/",
+ "mf": "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "jld": "https://w3c.github.io/json-ld-api/tests/vocab#",
+ "jld:Test": {"@type": "@id"},
+ "dc11:identifier": {"@type": "@id"},
+ "requires": {"@id": "mf:requires", "@type": "@vocab", "@container": "@set"},
+ "rdfs:subClassOf": {"@type": "@id"},
+ "rdfs:domain": {"@type": "@id"},
+ "rdfs:range": {"@type": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/README.md b/test/jsonld/README.md
new file mode 100644
index 00000000..69dc9e27
--- /dev/null
+++ b/test/jsonld/README.md
@@ -0,0 +1,9 @@
+The `test-suite` directory is a partial *copy* of the official test suite available at <http://www.w3.org/2013/json-ld-tests/>. Do *not* add tests directly there, but follow the instructions provided at the preceding location.
+
+To update this copy, first obtain a local copy of the json-ld-tests test-suite. Then copy the relevants parts of that directory into this test directory.
+
+You can do so by first defining a `$JSONLD_TESTSUITE` environment variable set to the local copy of the test-suite directory. Then run:
+
+ $ cp $JSONLD_TESTSUITE/*.jsonld test/test-suite/
+ $ cp $JSONLD_TESTSUITE/tests/{toRdf,fromRdf}-*.* test/test-suite/tests/
+
diff --git a/test/jsonld/__init__.py b/test/jsonld/__init__.py
new file mode 100644
index 00000000..bbfe4642
--- /dev/null
+++ b/test/jsonld/__init__.py
@@ -0,0 +1,8 @@
+from rdflib import plugin
+from rdflib import serializer
+from rdflib import parser
+
+assert plugin
+assert serializer
+assert parser
+import json
diff --git a/test/jsonld/local-suite/manifest.jsonld b/test/jsonld/local-suite/manifest.jsonld
new file mode 100644
index 00000000..6db5922a
--- /dev/null
+++ b/test/jsonld/local-suite/manifest.jsonld
@@ -0,0 +1,24 @@
+{
+ "@context": "http://json-ld.org/test-suite/context.jsonld",
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "RDFLib-jsonld local test suite",
+ "sequence": [
+ {
+ "@id": "#toRdf-twoidnodes",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "Two identifier nodes",
+ "purpose": "Multiple @id aliases. Issue #58",
+ "input": "toRdf-twoidnodes-in.jsonld",
+ "expect": "toRdf-twoidnodes-out.nq"
+ },
+ {
+ "@id": "#toRdf-urn-in-vocab-and-prefix-values",
+ "@type": ["jld:PositiveEvaluationTest", "jld:ToRDFTest"],
+ "name": "URN in vocab and prefix values",
+ "purpose": "Expanding urn IRIs recursively. Issue #75",
+ "input": "sample-urn-in.jsonld",
+ "expect": "sample-urn-out.nq"
+ }
+ ]
+}
diff --git a/test/jsonld/local-suite/sample-urn-in.jsonld b/test/jsonld/local-suite/sample-urn-in.jsonld
new file mode 100644
index 00000000..3fe34c5c
--- /dev/null
+++ b/test/jsonld/local-suite/sample-urn-in.jsonld
@@ -0,0 +1,12 @@
+{
+ "@context": {
+ "@vocab": "urn:example:1:",
+ "": "urn:example:2:",
+ "x": "urn:example:",
+ "y": "x:3:"
+ },
+ "@id": ":nsvocab",
+ "@type": "nsthing",
+ "foo": ":bar",
+ "y:baz": ":qwerty"
+}
diff --git a/test/jsonld/local-suite/sample-urn-out.nq b/test/jsonld/local-suite/sample-urn-out.nq
new file mode 100644
index 00000000..01156fc0
--- /dev/null
+++ b/test/jsonld/local-suite/sample-urn-out.nq
@@ -0,0 +1,3 @@
+<urn:example:2:nsvocab> <urn:example:1:foo> ":bar" .
+<urn:example:2:nsvocab> <urn:example:3:baz> ":qwerty" .
+<urn:example:2:nsvocab> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <urn:example:1:nsthing> .
diff --git a/test/jsonld/local-suite/toRdf-twoidnodes-in.jsonld b/test/jsonld/local-suite/toRdf-twoidnodes-in.jsonld
new file mode 100644
index 00000000..082fb434
--- /dev/null
+++ b/test/jsonld/local-suite/toRdf-twoidnodes-in.jsonld
@@ -0,0 +1,10 @@
+{
+ "id": "https://monarchinitiative.org/genelist/",
+ "kg_source": "Test",
+ "type": "biolink:KnowledgeGraph",
+ "@context": {
+ "id": "@id",
+ "type": "@type",
+ "z": "@id"
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/local-suite/toRdf-twoidnodes-out.nq b/test/jsonld/local-suite/toRdf-twoidnodes-out.nq
new file mode 100644
index 00000000..7e598004
--- /dev/null
+++ b/test/jsonld/local-suite/toRdf-twoidnodes-out.nq
@@ -0,0 +1 @@
+<https://monarchinitiative.org/genelist/> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <biolink:KnowledgeGraph> . \ No newline at end of file
diff --git a/test/jsonld/runner.py b/test/jsonld/runner.py
new file mode 100644
index 00000000..2792ef6b
--- /dev/null
+++ b/test/jsonld/runner.py
@@ -0,0 +1,144 @@
+# -*- coding: UTF-8 -*-
+import json
+from rdflib import ConjunctiveGraph
+from rdflib.compare import isomorphic
+from rdflib.plugins.parsers.jsonld import to_rdf
+from rdflib.plugins.serializers.jsonld import from_rdf
+from rdflib.plugins.shared.jsonld.keys import CONTEXT, GRAPH
+
+# monkey-patch N-Quads parser via it's underlying W3CNTriplesParser to keep source bnode id:s ..
+from rdflib.plugins.parsers.ntriples import W3CNTriplesParser, r_nodeid, bNode
+
+
+def _preserving_nodeid(self, bnode_context=None):
+ if not self.peek("_"):
+ return False
+ return bNode(self.eat(r_nodeid).group(1))
+
+
+DEFAULT_PARSER_VERSION = 1.0
+
+W3CNTriplesParser.nodeid = _preserving_nodeid
+# .. and accept bnodes everywhere
+
+
+def do_test_json(suite_base, cat, num, inputpath, expectedpath, context, options):
+ input_uri = suite_base + inputpath
+ input_obj = _load_json(inputpath)
+ input_graph = ConjunctiveGraph()
+ to_rdf(
+ input_obj,
+ input_graph,
+ base=input_uri,
+ context_data=context,
+ generalized_rdf=True,
+ )
+ expected_json = _load_json(expectedpath)
+ use_native_types = True # CONTEXT in input_obj
+ result_json = from_rdf(
+ input_graph,
+ context,
+ base=input_uri,
+ use_native_types=options.get("useNativeTypes", use_native_types),
+ use_rdf_type=options.get("useRdfType", False),
+ )
+
+ def _prune_json(data):
+ if CONTEXT in data:
+ data.pop(CONTEXT)
+ if GRAPH in data:
+ data = data[GRAPH]
+ # def _remove_empty_sets(obj):
+ return data
+
+ expected_json = _prune_json(expected_json)
+ result_json = _prune_json(result_json)
+
+ _compare_json(expected_json, result_json)
+
+
+def do_test_parser(suite_base, cat, num, inputpath, expectedpath, context, options):
+ input_uri = suite_base + inputpath
+ input_obj = _load_json(inputpath)
+ expected_graph = _load_nquads(expectedpath)
+ result_graph = ConjunctiveGraph()
+ requested_version = options.get("specVersion")
+ version = DEFAULT_PARSER_VERSION
+ if requested_version:
+ if requested_version == "json-ld-1.1":
+ version = 1.1
+ elif requested_version == "json-ld-1.0":
+ version = 1.0
+ to_rdf(
+ input_obj,
+ result_graph,
+ context_data=context,
+ base=options.get("base", input_uri),
+ version=version,
+ generalized_rdf=options.get("produceGeneralizedRdf", False),
+ )
+ assert isomorphic(result_graph, expected_graph), "Expected:\n%s\nGot:\n%s" % (
+ expected_graph.serialize(),
+ result_graph.serialize(),
+ )
+
+
+def do_test_serializer(suite_base, cat, num, inputpath, expectedpath, context, options):
+ input_uri = suite_base + inputpath
+ input_graph = _load_nquads(inputpath)
+ expected_json = _load_json(expectedpath)
+ result_json = from_rdf(
+ input_graph,
+ context,
+ base=input_uri,
+ use_native_types=options.get("useNativeTypes", False),
+ use_rdf_type=options.get("useRdfType", False),
+ )
+ _compare_json(expected_json, result_json)
+
+
+def _load_nquads(source):
+ graph = ConjunctiveGraph()
+ with open(source) as f:
+ data = f.read()
+ graph.parse(data=data, format="nquads")
+ return graph
+
+
+def _load_json(source):
+ with open(source) as f:
+ return json.load(f)
+
+
+def _to_ordered(obj):
+ if isinstance(obj, list):
+ # NOTE: use type in key to handle mixed
+ # lists of e.g. bool, int, float.
+ return sorted(
+ (_to_ordered(lv) for lv in obj),
+ key=lambda x: (_ord_key(x), type(x).__name__),
+ )
+ if not isinstance(obj, dict):
+ return obj
+ return sorted((k, _to_ordered(v)) for k, v in obj.items())
+
+
+def _ord_key(x):
+ if isinstance(x, dict) and "@id" in x:
+ return x["@id"]
+ else:
+ return x
+
+
+def _dump_json(obj):
+ return json.dumps(
+ obj, indent=4, separators=(",", ": "), sort_keys=True, check_circular=True
+ )
+
+
+def _compare_json(expected, result):
+ expected = json.loads(_dump_json(expected))
+ result = json.loads(_dump_json(result))
+ assert _to_ordered(expected) == _to_ordered(
+ result
+ ), "Expected JSON:\n%s\nGot:\n%s" % (_dump_json(expected), _dump_json(result))
diff --git a/test/jsonld/test-suite/README b/test/jsonld/test-suite/README
new file mode 100644
index 00000000..34d2f981
--- /dev/null
+++ b/test/jsonld/test-suite/README
@@ -0,0 +1,62 @@
+Introduction
+------------
+
+The JSON-LD Test Suite is a set of tests that can
+be used to verify JSON-LD Processor conformance to the set of specifications
+that constitute JSON-LD. The goal of the suite is to provide an easy and
+comprehensive JSON-LD testing solution for developers creating JSON-LD Processors.
+
+Design
+------
+
+Tests are defined into _compact_, _expand_, _frame_, _normalize_, and _rdf_ sections:
+* _compact_ tests have _input_, _expected_ and _context_ documents. The _expected_ results
+ can be compared using JSON object comparison with the processor output.
+* _expand_ tests have _input_ and _expected_ documents. The _expected_ results
+ can be compared using JSON object comparison with the processor output.
+* _frame_ tests have _input_, _frame_ and _expected_ documents. The _expected_ results
+ can be compared using JSON object comparison with the processor output.
+* _normalize_ tests have _input_ and _expected_ documents. The _expected_ results
+ can be compared using string comparison with the processor output.
+* _rdf_ tests have _input_ and _sparql_ documents. The results are tested
+ by performing the RDF conversion and using this as the default document for an `ASK` query
+ contained within the _sparql_ document using a SPARQL endpoint. The end result is a
+ yes/no on whether the expected triples were extracted by the JSON-LD processor.
+
+
+Contributing
+------------
+
+If you would like to contribute a new test or a fix to an existing test,
+please follow these steps:
+
+1. Notify the JSON-LD mailing list, public-linked-json@w3.org,
+ that you will be creating a new test or fix and the purpose of the
+ change.
+2. Clone the git repository: git://github.com/json-ld/json-ld.org.git
+3. Make your changes and submit them via github, or via a 'git format-patch'
+ to the [JSON-LD mailing list](mailto:public-linked-json@w3.org).
+
+Optionally, you can ask for direct access to the repository and may make
+changes directly to the JSON-LD Test Suite source code. All updates to the test
+suite go live on Digital Bazaar's JSON-LD Test Suite site within seconds of
+committing changes to github via a WebHook call.
+
+How to Add a Unit Test
+----------------------
+
+In order to add a unit test, you must follow these steps:
+
+1. Pick a new unit test number. For example - 250. To be consistent, please use
+ the next available unit test number.
+2. Create a markup file in the tests/ directory with a .jsonld extension.
+ For example: tests/rdf-250.jsonld
+3. Create a SPARQL query file in the tests/ directory with a .jsonld or .sparql extension.
+ For example: tests/rdf-250.sparql
+4. Add your test to manifest.jsonld.
+
+The test suite is designed to empower JSON-LD processor maintainers to create
+and add tests as they see fit. This may mean that the test suite may become
+unstable from time to time, but this approach has been taken so that the
+long-term goal of having a comprehensive test suite for JSON-LD can be achieved
+by the JSON-LD community.
diff --git a/test/jsonld/test-suite/context.jsonld b/test/jsonld/test-suite/context.jsonld
new file mode 100644
index 00000000..af2f05ca
--- /dev/null
+++ b/test/jsonld/test-suite/context.jsonld
@@ -0,0 +1,32 @@
+{
+ "@context": {
+ "@vocab": "http://json-ld.org/test-suite/vocab#",
+ "dcterms": "http://purl.org/dc/terms/",
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "jld": "http://json-ld.org/test-suite/vocab#",
+ "mf": "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+
+ "context": { "@id": "input", "@type": "@id" },
+ "expect": { "@id": "mf:result", "@type": "@id" },
+ "frame": { "@id": "input", "@type": "@id" },
+ "input": { "@id": "mf:action", "@type": "@id" },
+ "option": { "@type": "@id"},
+ "sequence": { "@id": "mf:entries", "@type": "@id", "@container": "@list" },
+ "redirectTo": { "@type": "@id"},
+
+ "name": "mf:name",
+ "purpose": "rdfs:comment",
+ "description": "rdfs:comment",
+ "base": { "@type": "@id" },
+ "compactArrays": { "@type": "xsd:boolean" },
+ "documentLoader": { "@type": "xsd:string" },
+ "expandContext": { "@type": "xsd:string" },
+ "processingMode": { "@type": "xsd:string" },
+ "produceGeneralizedRdf":{ "@type": "xsd:boolean" },
+ "useNativeTypes": { "@type": "xsd:boolean" },
+ "httpStatus": { "@type": "xsd:integer"},
+ "httpLink": { "@container": "@set"}
+ }
+}
diff --git a/test/jsonld/test-suite/manifest.jsonld b/test/jsonld/test-suite/manifest.jsonld
new file mode 100644
index 00000000..337e45c4
--- /dev/null
+++ b/test/jsonld/test-suite/manifest.jsonld
@@ -0,0 +1,18 @@
+{
+ "@context": "http://json-ld.org/test-suite/context.jsonld",
+ "@id": "",
+ "@type": "mf:Manifest",
+ "description": "This manifest loads additional manifests for specific behavior tests",
+ "name": "JSON-LD Test Suite",
+ "sequence": [
+ "tests/compact-manifest.jsonld",
+ "tests/error-manifest.jsonld",
+ "tests/expand-manifest.jsonld",
+ "tests/flatten-manifest.jsonld",
+ "tests/frame-manifest.jsonld",
+ "tests/fromRdf-manifest.jsonld",
+ "tests/normalize-manifest.jsonld",
+ "tests/remote-doc-manifest.jsonld",
+ "tests/toRdf-manifest.jsonld"
+ ]
+}
diff --git a/test/jsonld/test-suite/tests/fromRdf-0001-in.nq b/test/jsonld/test-suite/tests/fromRdf-0001-in.nq
new file mode 100644
index 00000000..d2a4a3a6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0001-in.nq
@@ -0,0 +1,5 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> .
+<http://example.com/Subj1> <http://example.com/prop1> <http://example.com/Obj1> .
+<http://example.com/Subj1> <http://example.com/prop2> "Plain" .
+<http://example.com/Subj1> <http://example.com/prop2> "2012-05-12"^^<http://www.w3.org/2001/XMLSchema#date> .
+<http://example.com/Subj1> <http://example.com/prop2> "English"@en .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0001-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0001-out.jsonld
new file mode 100644
index 00000000..c498d2b1
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0001-out.jsonld
@@ -0,0 +1,12 @@
+[
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/prop1": [{"@id": "http://example.com/Obj1"}],
+ "http://example.com/prop2": [
+ {"@value": "Plain"},
+ {"@value": "2012-05-12", "@type": "http://www.w3.org/2001/XMLSchema#date"},
+ {"@value": "English", "@language": "en"}
+ ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0002-in.nq b/test/jsonld/test-suite/tests/fromRdf-0002-in.nq
new file mode 100644
index 00000000..9ec666d2
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0002-in.nq
@@ -0,0 +1,5 @@
+<http://example.com/Subj1> <http://example.com/prop> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.com/Subj1> <http://example.com/prop> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.com/Subj1> <http://example.com/prop> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/Subj1> <http://example.com/prop> "1.1"^^<http://www.w3.org/2001/XMLSchema#decimal> .
+<http://example.com/Subj1> <http://example.com/prop> "1.1E-1"^^<http://www.w3.org/2001/XMLSchema#double> .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0002-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0002-out.jsonld
new file mode 100644
index 00000000..5fc21685
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0002-out.jsonld
@@ -0,0 +1,27 @@
+[
+ {
+ "@id": "http://example.com/Subj1",
+ "http://example.com/prop": [
+ {
+ "@value": "true",
+ "@type": "http://www.w3.org/2001/XMLSchema#boolean"
+ },
+ {
+ "@value": "false",
+ "@type": "http://www.w3.org/2001/XMLSchema#boolean"
+ },
+ {
+ "@value": "1",
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ },
+ {
+ "@value": "1.1",
+ "@type": "http://www.w3.org/2001/XMLSchema#decimal"
+ },
+ {
+ "@value": "1.1E-1",
+ "@type": "http://www.w3.org/2001/XMLSchema#double"
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0003-in.nq b/test/jsonld/test-suite/tests/fromRdf-0003-in.nq
new file mode 100644
index 00000000..90054b2c
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0003-in.nq
@@ -0,0 +1,6 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/SubType> .
+<http://example.com/Subj1> <http://example.com/ref> _:a .
+<http://example.com/Subj1> <http://example.com/ref> <http://example.com/Subj2> .
+<http://example.com/Subj2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> .
+<http://example.com/Subj2> <http://example.com/ref> <http://example.com/Subj1> .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0003-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0003-out.jsonld
new file mode 100644
index 00000000..ce60daef
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0003-out.jsonld
@@ -0,0 +1,19 @@
+[
+ {
+ "@id": "_:a",
+ "@type": ["http://example.com/SubType"]
+ },
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/ref": [
+ {"@id": "_:a"},
+ {"@id": "http://example.com/Subj2"}
+ ]
+ },
+ {
+ "@id": "http://example.com/Subj2",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/ref": [{"@id": "http://example.com/Subj1"}]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0004-in.nq b/test/jsonld/test-suite/tests/fromRdf-0004-in.nq
new file mode 100644
index 00000000..6e88e659
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0004-in.nq
@@ -0,0 +1,10 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "apple" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "bananna" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://example.com/Subj1> <http://example.com/literalList> _:a .
+<http://example.com/Subj1> <http://example.com/emptyList> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://example.com/iri> .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+<http://example.com/Subj1> <http://example.com/iriList> _:c .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0004-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0004-out.jsonld
new file mode 100644
index 00000000..2dd24731
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0004-out.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/literalList": [{
+ "@list": [
+ {"@value": "apple"},
+ {"@value": "bananna"}
+ ]
+ }],
+ "http://example.com/emptyList": [{
+ "@list": []
+ }],
+ "http://example.com/iriList": [{
+ "@list": [{"@id": "http://example.com/iri"}]
+ }]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0005-in.nq b/test/jsonld/test-suite/tests/fromRdf-0005-in.nq
new file mode 100644
index 00000000..d99820ec
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0005-in.nq
@@ -0,0 +1,9 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> <http://example.com/U> .
+<http://example.com/Subj1> <http://example.com/ref> <http://example.com/U> <http://example.com/U> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" <http://example.com/U> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b <http://example.com/U> .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" <http://example.com/U> .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example.com/U> .
+<http://example.com/Subj1> <http://example.com/list> _:a <http://example.com/U> .
+<http://example.com/U> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Graph> .
+<http://example.com/U> <http://example.com/name> "Graph" .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0005-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0005-out.jsonld
new file mode 100644
index 00000000..a87ac2ea
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0005-out.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "http://example.com/U",
+ "@graph": [
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/ref": [{"@id": "http://example.com/U"}],
+ "http://example.com/list": [{
+ "@list": [
+ {"@value": "a"},
+ {"@value": "b"}
+ ]
+ }]
+ }
+ ],
+ "@type": ["http://example.com/Graph"],
+ "http://example.com/name": [{"@value": "Graph"}]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0006-in.nq b/test/jsonld/test-suite/tests/fromRdf-0006-in.nq
new file mode 100644
index 00000000..0f3f0281
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0006-in.nq
@@ -0,0 +1,14 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> <http://example.com/U> .
+<http://example.com/Subj1> <http://example.com/ref> <http://example.com/U> <http://example.com/U> .
+<http://example.com/Subj1> <http://example.com/list> _:a <http://example.com/U> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" <http://example.com/U> .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b <http://example.com/U> .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" <http://example.com/U> .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example.com/U> .
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type2> <http://example.com/V> .
+<http://example.com/Subj1> <http://example.com/ref> <http://example.com/V> <http://example.com/V> .
+<http://example.com/Subj1> <http://example.com/list> _:c <http://example.com/V> .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" <http://example.com/V> .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:d <http://example.com/V> .
+_:d <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "d" <http://example.com/V> .
+_:d <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> <http://example.com/V> .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0006-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0006-out.jsonld
new file mode 100644
index 00000000..9bbdbaa6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0006-out.jsonld
@@ -0,0 +1,34 @@
+[
+ {
+ "@id": "http://example.com/U",
+ "@graph": [
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type"],
+ "http://example.com/ref": [{"@id": "http://example.com/U"}],
+ "http://example.com/list": [{
+ "@list": [
+ {"@value": "a"},
+ {"@value": "b"}
+ ]
+ }]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.com/V",
+ "@graph": [
+ {
+ "@id": "http://example.com/Subj1",
+ "@type": ["http://example.com/Type2"],
+ "http://example.com/ref": [{"@id": "http://example.com/V"}],
+ "http://example.com/list": [{
+ "@list": [
+ {"@value": "c"},
+ {"@value": "d"}
+ ]
+ }]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0007-in.nq b/test/jsonld/test-suite/tests/fromRdf-0007-in.nq
new file mode 100644
index 00000000..ad8557af
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0007-in.nq
@@ -0,0 +1,5 @@
+<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/Assertions> <http://data.wikipedia.org/vocab#assertedBy> "http://gregkellogg.net/foaf#me" .
+<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://data.wikipedia.org/snaks/BerlinFact> <http://data.wikipedia.org/vocab#assertedBy> "http://www.statistik-berlin-brandenburg.de/" <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/test/jsonld/test-suite/tests/fromRdf-0007-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0007-out.jsonld
new file mode 100644
index 00000000..e837c6d4
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0007-out.jsonld
@@ -0,0 +1,27 @@
+[
+ {
+ "@id": "http://data.wikipedia.org/snaks/Assertions",
+ "@type": ["http://data.wikipedia.org/vocab#SnakSet"],
+ "http://data.wikipedia.org/vocab#assertedBy": [{"@value": "http://gregkellogg.net/foaf#me"}
+ ],
+ "@graph": [
+ {
+ "@id": "http://data.wikipedia.org/snaks/BerlinFact",
+ "@type": ["http://data.wikipedia.org/vocab#Snak"],
+ "http://data.wikipedia.org/vocab#assertedBy": [{"@value": "http://www.statistik-berlin-brandenburg.de/"}]
+ }
+ ]
+ },
+ {
+ "@id": "http://data.wikipedia.org/snaks/BerlinFact",
+ "@graph": [
+ {
+ "@id": "http://en.wikipedia.org/wiki/Berlin",
+ "http://data.wikipedia.org/vocab#population": [{
+ "@value": "3499879",
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ }]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0008-in.nq b/test/jsonld/test-suite/tests/fromRdf-0008-in.nq
new file mode 100644
index 00000000..878e33ed
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0008-in.nq
@@ -0,0 +1,28 @@
+<http://example.com> <http://example.com/property> _:outerlist .
+_:outerlist <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:lista .
+_:outerlist <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b0 .
+
+_:lista <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a1" .
+_:lista <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:a2 .
+_:a2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a2" .
+_:a2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:a3 .
+_:a3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a3" .
+_:a3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+
+_:c0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:c1 .
+_:c0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:c1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c1" .
+_:c1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c2 .
+_:c2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c2" .
+_:c2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c3 .
+_:c3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c3" .
+_:c3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b1 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c0 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b1" .
+_: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> "b2" .
+_: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> "b3" .
+_: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/test/jsonld/test-suite/tests/fromRdf-0008-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0008-out.jsonld
new file mode 100644
index 00000000..ce6e1822
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0008-out.jsonld
@@ -0,0 +1,50 @@
+[
+ {
+ "@id": "_:b1",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "b1" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "b2" },
+ { "@value": "b3" }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "_:c1",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "c1" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "c2" },
+ { "@value": "c3" }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "_:lista",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a1" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "a2" },
+ { "@value": "a3" }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [
+ {
+ "@list": [
+ { "@id": "_:lista" },
+ { "@id": "_:b1" },
+ { "@id": "_:c1" }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0009-in.nq b/test/jsonld/test-suite/tests/fromRdf-0009-in.nq
new file mode 100644
index 00000000..91fff6bd
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0009-in.nq
@@ -0,0 +1,7 @@
+<http://example.com> <http://example.com/property> <http://example.com/list> .
+<http://example.com/list> <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+<http://example.com/list> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
+_:c <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/test/jsonld/test-suite/tests/fromRdf-0009-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0009-out.jsonld
new file mode 100644
index 00000000..e58e7563
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0009-out.jsonld
@@ -0,0 +1,18 @@
+[
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "http://example.com/list" } ]
+ },
+ {
+ "@id": "http://example.com/list",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "b" },
+ { "@value": "c" }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0010-in.nq b/test/jsonld/test-suite/tests/fromRdf-0010-in.nq
new file mode 100644
index 00000000..be9e012d
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0010-in.nq
@@ -0,0 +1,6 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0010-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0010-out.jsonld
new file mode 100644
index 00000000..54036dd6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0010-out.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "_:b",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "b" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:c" } ]
+ },
+ {
+ "@id": "_:c",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "c" } ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0011-in.nq b/test/jsonld/test-suite/tests/fromRdf-0011-in.nq
new file mode 100644
index 00000000..ef525710
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0011-in.nq
@@ -0,0 +1,8 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://example.com/other-property> "This list node has also properties other than rdf:first and rdf:rest" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
+_:c <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/test/jsonld/test-suite/tests/fromRdf-0011-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0011-out.jsonld
new file mode 100644
index 00000000..811e31c2
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0011-out.jsonld
@@ -0,0 +1,25 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "_:b",
+ "http://example.com/other-property": [
+ { "@value": "This list node has also properties other than rdf:first and rdf:rest" }
+ ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "b" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ { "@value": "c" }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0012-in.nq b/test/jsonld/test-suite/tests/fromRdf-0012-in.nq
new file mode 100644
index 00000000..d8edbdc1
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0012-in.nq
@@ -0,0 +1,7 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0012-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0012-out.jsonld
new file mode 100644
index 00000000..b33cc8ef
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0012-out.jsonld
@@ -0,0 +1,21 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "_:b",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "b" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:c" } ]
+ },
+ {
+ "@id": "_:c",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "c" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0013-in.nq b/test/jsonld/test-suite/tests/fromRdf-0013-in.nq
new file mode 100644
index 00000000..45ac1cab
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0013-in.nq
@@ -0,0 +1,8 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b1" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b2" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
+_:c <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/test/jsonld/test-suite/tests/fromRdf-0013-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0013-out.jsonld
new file mode 100644
index 00000000..dc4874f8
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0013-out.jsonld
@@ -0,0 +1,27 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "_:b",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [
+ { "@value": "b1" },
+ { "@value": "b2" }
+ ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ {
+ "@list": [
+ {
+ "@value": "c"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0014-in.nq b/test/jsonld/test-suite/tests/fromRdf-0014-in.nq
new file mode 100644
index 00000000..68dfb57b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0014-in.nq
@@ -0,0 +1,10 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:c .
+_:b <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:d .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "c" .
+_:c <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:d <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "d" .
+_:d <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/test/jsonld/test-suite/tests/fromRdf-0014-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0014-out.jsonld
new file mode 100644
index 00000000..2eb7a477
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0014-out.jsonld
@@ -0,0 +1,19 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@id": "_:b" } ]
+ },
+ {
+ "@id": "_:b",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "b" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [
+ { "@list": [ { "@value": "c" } ] },
+ { "@list": [ { "@value": "d" } ] }
+ ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0015-in.nq b/test/jsonld/test-suite/tests/fromRdf-0015-in.nq
new file mode 100644
index 00000000..f30175ea
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0015-in.nq
@@ -0,0 +1,3 @@
+<http://example.com> <http://example.com/property> _:a .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:a <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> "b" .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0015-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0015-out.jsonld
new file mode 100644
index 00000000..feb930b8
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0015-out.jsonld
@@ -0,0 +1,11 @@
+[
+ {
+ "@id": "_:a",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": [ { "@value": "a" } ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": [ { "@value": "b" } ]
+ },
+ {
+ "@id": "http://example.com",
+ "http://example.com/property": [ { "@id": "_:a" } ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0016-in.nq b/test/jsonld/test-suite/tests/fromRdf-0016-in.nq
new file mode 100644
index 00000000..fcccffe6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0016-in.nq
@@ -0,0 +1,11 @@
+<http://example.com/> <http://example.com/list> _:b0 .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "A" .
+_: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> "B" .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "C" .
+_: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/test/jsonld/test-suite/tests/fromRdf-0016-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0016-out.jsonld
new file mode 100644
index 00000000..1ecddd1d
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0016-out.jsonld
@@ -0,0 +1,20 @@
+[
+ {
+ "@id": "http://example.com/",
+ "http://example.com/list": [
+ {
+ "@list": [
+ {
+ "@value": "A"
+ },
+ {
+ "@value": "B"
+ },
+ {
+ "@value": "C"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0017-in.nq b/test/jsonld/test-suite/tests/fromRdf-0017-in.nq
new file mode 100644
index 00000000..8796c62e
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0017-in.nq
@@ -0,0 +1,9 @@
+<http://example.com/nodeA> <http://example.com/property> "1" .
+<http://example.com/nodeA> <http://example.com/property> "1" .
+<http://example.com/nodeA> <http://example.com/property> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/nodeA> <http://example.com/property> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/nodeA> <http://example.com/property> <http://example.com/nodeB> .
+<http://example.com/nodeA> <http://example.com/property> <http://example.com/nodeB> .
+<http://example.com/nodeA> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/TypeA> .
+<http://example.com/nodeA> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/TypeA> .
+<http://example.com/nodeA> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/TypeA> .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0017-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0017-out.jsonld
new file mode 100644
index 00000000..5a47d269
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0017-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/nodeA",
+ "http://example.com/property": [
+ { "@value": "1" },
+ {
+ "@value": "2",
+ "@type": "http://www.w3.org/2001/XMLSchema#integer"
+ },
+ { "@id": "http://example.com/nodeB" }
+ ],
+ "@type": [ "http://example.com/TypeA" ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0018-in.nq b/test/jsonld/test-suite/tests/fromRdf-0018-in.nq
new file mode 100644
index 00000000..9ec666d2
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0018-in.nq
@@ -0,0 +1,5 @@
+<http://example.com/Subj1> <http://example.com/prop> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.com/Subj1> <http://example.com/prop> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
+<http://example.com/Subj1> <http://example.com/prop> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+<http://example.com/Subj1> <http://example.com/prop> "1.1"^^<http://www.w3.org/2001/XMLSchema#decimal> .
+<http://example.com/Subj1> <http://example.com/prop> "1.1E-1"^^<http://www.w3.org/2001/XMLSchema#double> .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0018-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0018-out.jsonld
new file mode 100644
index 00000000..3412f7a6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0018-out.jsonld
@@ -0,0 +1,12 @@
+[
+ {
+ "@id": "http://example.com/Subj1",
+ "http://example.com/prop": [
+ { "@value": true },
+ { "@value": false },
+ { "@value": 1 },
+ { "@value": "1.1", "@type": "http://www.w3.org/2001/XMLSchema#decimal"},
+ { "@value": 0.11 }
+ ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-0019-in.nq b/test/jsonld/test-suite/tests/fromRdf-0019-in.nq
new file mode 100644
index 00000000..d2a4a3a6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0019-in.nq
@@ -0,0 +1,5 @@
+<http://example.com/Subj1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Type> .
+<http://example.com/Subj1> <http://example.com/prop1> <http://example.com/Obj1> .
+<http://example.com/Subj1> <http://example.com/prop2> "Plain" .
+<http://example.com/Subj1> <http://example.com/prop2> "2012-05-12"^^<http://www.w3.org/2001/XMLSchema#date> .
+<http://example.com/Subj1> <http://example.com/prop2> "English"@en .
diff --git a/test/jsonld/test-suite/tests/fromRdf-0019-out.jsonld b/test/jsonld/test-suite/tests/fromRdf-0019-out.jsonld
new file mode 100644
index 00000000..77ce6121
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-0019-out.jsonld
@@ -0,0 +1,14 @@
+[
+ {
+ "@id": "http://example.com/Subj1",
+ "http://example.com/prop1": [{"@id": "http://example.com/Obj1"}],
+ "http://example.com/prop2": [
+ {"@value": "Plain"},
+ {"@value": "2012-05-12", "@type": "http://www.w3.org/2001/XMLSchema#date"},
+ {"@value": "English", "@language": "en"}
+ ],
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": [
+ {"@id": "http://example.com/Type"}
+ ]
+ }
+]
diff --git a/test/jsonld/test-suite/tests/fromRdf-manifest.jsonld b/test/jsonld/test-suite/tests/fromRdf-manifest.jsonld
new file mode 100644
index 00000000..451791ab
--- /dev/null
+++ b/test/jsonld/test-suite/tests/fromRdf-manifest.jsonld
@@ -0,0 +1,150 @@
+{
+ "@context": "http://json-ld.org/test-suite/context.jsonld",
+ "@id": "",
+ "@type": "mf:Manifest",
+ "name": "Transform RDF to JSON-LD",
+ "description": "Transform RDF to JSON-LD tests take N-Quads input and use object comparison.",
+ "baseIri": "http://json-ld.org/test-suite/tests/",
+ "sequence": [
+ {
+ "@id": "#t0001",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Object Lists",
+ "purpose": "Tests generation using different types of objects.",
+ "input": "fromRdf-0001-in.nq",
+ "expect": "fromRdf-0001-out.jsonld"
+ }, {
+ "@id": "#t0002",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Native Types",
+ "purpose": "Do not use native datatypes for xsd:boolean, xsd:integer, and xsd:double by default.",
+ "input": "fromRdf-0002-in.nq",
+ "expect": "fromRdf-0002-out.jsonld"
+ }, {
+ "@id": "#t0003",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "BNodes and references",
+ "purpose": "BNode name generation and references between resources.",
+ "input": "fromRdf-0003-in.nq",
+ "expect": "fromRdf-0003-out.jsonld"
+ }, {
+ "@id": "#t0004",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Lists",
+ "purpose": "Multiple lists with different types of element.",
+ "input": "fromRdf-0004-in.nq",
+ "expect": "fromRdf-0004-out.jsonld"
+ }, {
+ "@id": "#t0005",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Document with list",
+ "purpose": "Uses a named graph containing a list.",
+ "input": "fromRdf-0005-in.nq",
+ "expect": "fromRdf-0005-out.jsonld"
+ }, {
+ "@id": "#t0006",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Two graphs having same subject but different values",
+ "purpose": "Ensure that properties and list elements aren't confused between graphs.",
+ "input": "fromRdf-0006-in.nq",
+ "expect": "fromRdf-0006-out.jsonld"
+ }, {
+ "@id": "#t0007",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Graph with multiple named graphs",
+ "purpose": "Testing @graph recursion.",
+ "input": "fromRdf-0007-in.nq",
+ "expect": "fromRdf-0007-out.jsonld"
+ }, {
+ "@id": "#t0008",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List conversion",
+ "purpose": "Conversion of lists of lists (the triples in the input are only partially ordered on purpose",
+ "input": "fromRdf-0008-in.nq",
+ "expect": "fromRdf-0008-out.jsonld"
+ }, {
+ "@id": "#t0009",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List conversion with IRI nodes",
+ "purpose": "Preserve IRI list nodes (i.e., not blank nodes) when converting to @list",
+ "input": "fromRdf-0009-in.nq",
+ "expect": "fromRdf-0009-out.jsonld"
+ }, {
+ "@id": "#t0010",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern without rdf:nil",
+ "purpose": "Do not convert lists that are not terminated by rdf:nil to @list.",
+ "input": "fromRdf-0010-in.nq",
+ "expect": "fromRdf-0010-out.jsonld"
+ }, {
+ "@id": "#t0011",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with extra properties",
+ "purpose": "If additional properties are associated to a list node, the list is only partially converted to @list.",
+ "input": "fromRdf-0011-in.nq",
+ "expect": "fromRdf-0011-out.jsonld"
+ }, {
+ "@id": "#t0012",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with cycles",
+ "purpose": "Detect lists containing cycles and do not convert them to @list.",
+ "input": "fromRdf-0012-in.nq",
+ "expect": "fromRdf-0012-out.jsonld"
+ }, {
+ "@id": "#t0013",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with multiple values of rdf:first",
+ "purpose": "Do not convert list nodes to @list if nodes contain more than one value for rdf:first.",
+ "input": "fromRdf-0013-in.nq",
+ "expect": "fromRdf-0013-out.jsonld"
+ }, {
+ "@id": "#t0014",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with multiple values of rdf:rest",
+ "purpose": "Do not convert list nodes to @list if nodes contain more than one value for rdf:rest.",
+ "input": "fromRdf-0014-in.nq",
+ "expect": "fromRdf-0014-out.jsonld"
+ }, {
+ "@id": "#t0015",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with IRI rdf:rest",
+ "purpose": "Do not convert lists to @list if a list node's rdf:rest is an IRI.",
+ "input": "fromRdf-0015-in.nq",
+ "expect": "fromRdf-0015-out.jsonld"
+ }, {
+ "@id": "#t0016",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "List pattern with type rdf:List",
+ "purpose": "List nodes may have a rdf:type rdf:List.",
+ "input": "fromRdf-0016-in.nq",
+ "expect": "fromRdf-0016-out.jsonld"
+ }, {
+ "@id": "#t0017",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "Remove duplicate triples",
+ "purpose": "Equivalent triples are used only once",
+ "input": "fromRdf-0017-in.nq",
+ "expect": "fromRdf-0017-out.jsonld"
+ }, {
+ "@id": "#t0018",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "use native types flag set to true",
+ "purpose": "Literals with datatype xsd:boolean, xsd:integer, and xsd:double are serialized using native scalar values",
+ "option": {
+ "useNativeTypes": true
+ },
+ "input": "fromRdf-0018-in.nq",
+ "expect": "fromRdf-0018-out.jsonld"
+ }, {
+ "@id": "#t0019",
+ "@type": ["jld:PositiveEvaluationTest", "jld:FromRDFTest"],
+ "name": "use rdf:type flag set to false",
+ "purpose": "Setting useRdfType to true causes an rdf:type predicate to be treated like a normal property, not @type",
+ "option": {
+ "useRdfType": true
+ },
+ "input": "fromRdf-0019-in.nq",
+ "expect": "fromRdf-0019-out.jsonld"
+ }
+ ]
+}
diff --git a/test/jsonld/test-suite/tests/toRdf-0001-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0001-in.jsonld
new file mode 100644
index 00000000..fc4e3810
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0001-out.nq b/test/jsonld/test-suite/tests/toRdf-0001-out.nq
new file mode 100644
index 00000000..f7238bfc
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0001-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
diff --git a/test/jsonld/test-suite/tests/toRdf-0002-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0002-in.jsonld
new file mode 100644
index 00000000..bd662d13
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0002-out.nq b/test/jsonld/test-suite/tests/toRdf-0002-out.nq
new file mode 100644
index 00000000..f7238bfc
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0002-out.nq
@@ -0,0 +1 @@
+<http://greggkellogg.net/foaf#me> <http://xmlns.com/foaf/0.1/name> "Gregg Kellogg" .
diff --git a/test/jsonld/test-suite/tests/toRdf-0003-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0003-in.jsonld
new file mode 100644
index 00000000..7955fff4
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0003-out.nq b/test/jsonld/test-suite/tests/toRdf-0003-out.nq
new file mode 100644
index 00000000..abb5581a
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0004-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0004-in.jsonld
new file mode 100644
index 00000000..31d68b86
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0004-out.nq b/test/jsonld/test-suite/tests/toRdf-0004-out.nq
new file mode 100644
index 00000000..27d42d9d
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0005-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0005-in.jsonld
new file mode 100644
index 00000000..1b04c4e7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0005-out.nq b/test/jsonld/test-suite/tests/toRdf-0005-out.nq
new file mode 100644
index 00000000..69274a94
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0006-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0006-in.jsonld
new file mode 100644
index 00000000..f83b97c5
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0006-out.nq b/test/jsonld/test-suite/tests/toRdf-0006-out.nq
new file mode 100644
index 00000000..232d9928
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0007-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0007-in.jsonld
new file mode 100644
index 00000000..5d2c77d9
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0007-out.nq b/test/jsonld/test-suite/tests/toRdf-0007-out.nq
new file mode 100644
index 00000000..7f647003
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0008-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0008-in.jsonld
new file mode 100644
index 00000000..f767f653
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0008-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"d": "http://example.com/default#"},
+ "d:foo": "bar"
+}
diff --git a/test/jsonld/test-suite/tests/toRdf-0008-out.nq b/test/jsonld/test-suite/tests/toRdf-0008-out.nq
new file mode 100644
index 00000000..b9aed32f
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0008-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/default#foo> "bar" .
diff --git a/test/jsonld/test-suite/tests/toRdf-0009-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0009-in.jsonld
new file mode 100644
index 00000000..5efb8076
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0009-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": {"foo": "http://example.com/default#"},
+ "foo:": "bar"
+}
diff --git a/test/jsonld/test-suite/tests/toRdf-0009-out.nq b/test/jsonld/test-suite/tests/toRdf-0009-out.nq
new file mode 100644
index 00000000..20fe7691
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0009-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/default#> "bar" .
diff --git a/test/jsonld/test-suite/tests/toRdf-0010-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0010-in.jsonld
new file mode 100644
index 00000000..1ecc30b6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0010-out.nq b/test/jsonld/test-suite/tests/toRdf-0010-out.nq
new file mode 100644
index 00000000..35c39991
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0011-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0011-in.jsonld
new file mode 100644
index 00000000..853938fa
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0011-out.nq b/test/jsonld/test-suite/tests/toRdf-0011-out.nq
new file mode 100644
index 00000000..019740b5
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0012-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0012-in.jsonld
new file mode 100644
index 00000000..2b326172
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0012-out.nq b/test/jsonld/test-suite/tests/toRdf-0012-out.nq
new file mode 100644
index 00000000..203fc141
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0013-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0013-in.jsonld
new file mode 100644
index 00000000..d5b025d1
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0013-out.nq b/test/jsonld/test-suite/tests/toRdf-0013-out.nq
new file mode 100644
index 00000000..f334b9bd
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0014-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0014-in.jsonld
new file mode 100644
index 00000000..327284f5
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0014-out.nq b/test/jsonld/test-suite/tests/toRdf-0014-out.nq
new file mode 100644
index 00000000..9a2730cc
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0015-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0015-in.jsonld
new file mode 100644
index 00000000..b340db46
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0015-out.nq b/test/jsonld/test-suite/tests/toRdf-0015-out.nq
new file mode 100644
index 00000000..7bab72ef
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0016-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0016-in.jsonld
new file mode 100644
index 00000000..bdd01c9b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0016-out.nq b/test/jsonld/test-suite/tests/toRdf-0016-out.nq
new file mode 100644
index 00000000..0ed95c6e
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0017-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0017-in.jsonld
new file mode 100644
index 00000000..7e39ca80
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0017-out.nq b/test/jsonld/test-suite/tests/toRdf-0017-out.nq
new file mode 100644
index 00000000..56e22246
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0018-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0018-in.jsonld
new file mode 100644
index 00000000..64ee0c96
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0018-out.nq b/test/jsonld/test-suite/tests/toRdf-0018-out.nq
new file mode 100644
index 00000000..3d10901d
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0019-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0019-in.jsonld
new file mode 100644
index 00000000..0e0e3e3f
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0019-out.nq b/test/jsonld/test-suite/tests/toRdf-0019-out.nq
new file mode 100644
index 00000000..bbc020fc
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0020-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0020-in.jsonld
new file mode 100644
index 00000000..804b2fcd
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0020-out.nq b/test/jsonld/test-suite/tests/toRdf-0020-out.nq
new file mode 100644
index 00000000..232d9928
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0022-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0022-in.jsonld
new file mode 100644
index 00000000..31b76ad2
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0022-in.jsonld
@@ -0,0 +1,4 @@
+{
+ "@context": { "measure": "http://example/measure#"},
+ "measure:cups": 5.3
+}
diff --git a/test/jsonld/test-suite/tests/toRdf-0022-out.nq b/test/jsonld/test-suite/tests/toRdf-0022-out.nq
new file mode 100644
index 00000000..31092dd7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0022-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/measure#cups> "5.3E0"^^<http://www.w3.org/2001/XMLSchema#double> .
diff --git a/test/jsonld/test-suite/tests/toRdf-0023-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0023-in.jsonld
new file mode 100644
index 00000000..be260796
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0023-out.nq b/test/jsonld/test-suite/tests/toRdf-0023-out.nq
new file mode 100644
index 00000000..d5a91bd1
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0023-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/chem#protons> "12"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/test/jsonld/test-suite/tests/toRdf-0024-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0024-in.jsonld
new file mode 100644
index 00000000..777318ae
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0024-out.nq b/test/jsonld/test-suite/tests/toRdf-0024-out.nq
new file mode 100644
index 00000000..f0582851
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0024-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example/sensor#active> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
diff --git a/test/jsonld/test-suite/tests/toRdf-0025-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0025-in.jsonld
new file mode 100644
index 00000000..a00107b6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0025-out.nq b/test/jsonld/test-suite/tests/toRdf-0025-out.nq
new file mode 100644
index 00000000..9a2730cc
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0026-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0026-in.jsonld
new file mode 100644
index 00000000..bb3ba6a8
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0026-out.nq b/test/jsonld/test-suite/tests/toRdf-0026-out.nq
new file mode 100644
index 00000000..9030c08b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0027-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0027-in.jsonld
new file mode 100644
index 00000000..920dcb82
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0027-out.nq b/test/jsonld/test-suite/tests/toRdf-0027-out.nq
new file mode 100644
index 00000000..e77f2baa
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0028-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0028-in.jsonld
new file mode 100644
index 00000000..e65fc290
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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#",
+ "dcterms": "http://purl.org/dc/terms/",
+ "sec:signer": {"@type": "@id"},
+ "dcterms:created": {"@type": "xsd:dateTime"}
+ },
+ "@id": "http://example.org/sig1",
+ "@type": ["rdf:Graph", "sec:SignedGraph"],
+ "dcterms: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",
+ "dcterms:title": "Hello World!"
+ }
+}
diff --git a/test/jsonld/test-suite/tests/toRdf-0028-out.nq b/test/jsonld/test-suite/tests/toRdf-0028-out.nq
new file mode 100644
index 00000000..68b12ab9
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0029-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0029-in.jsonld
new file mode 100644
index 00000000..4a7a16cc
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0029-out.nq b/test/jsonld/test-suite/tests/toRdf-0029-out.nq
new file mode 100644
index 00000000..b3d81238
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0030-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0030-in.jsonld
new file mode 100644
index 00000000..dc9cff6b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0030-out.nq b/test/jsonld/test-suite/tests/toRdf-0030-out.nq
new file mode 100644
index 00000000..709e7fb7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0031-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0031-in.jsonld
new file mode 100644
index 00000000..c3172323
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0031-out.nq b/test/jsonld/test-suite/tests/toRdf-0031-out.nq
new file mode 100644
index 00000000..70485565
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0032-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0032-in.jsonld
new file mode 100644
index 00000000..78873bd8
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0032-out.nq b/test/jsonld/test-suite/tests/toRdf-0032-out.nq
new file mode 100644
index 00000000..119504f6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0033-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0033-in.jsonld
new file mode 100644
index 00000000..070a328f
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0033-out.nq b/test/jsonld/test-suite/tests/toRdf-0033-out.nq
new file mode 100644
index 00000000..119504f6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0034-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0034-in.jsonld
new file mode 100644
index 00000000..e6113232
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0034-out.nq b/test/jsonld/test-suite/tests/toRdf-0034-out.nq
new file mode 100644
index 00000000..119504f6
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0035-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0035-in.jsonld
new file mode 100644
index 00000000..bf6a9502
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0035-out.nq b/test/jsonld/test-suite/tests/toRdf-0035-out.nq
new file mode 100644
index 00000000..cbbaaedb
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0036-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0036-in.jsonld
new file mode 100644
index 00000000..0197274c
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0036-out.nq b/test/jsonld/test-suite/tests/toRdf-0036-out.nq
new file mode 100644
index 00000000..79f81425
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0041-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0041-in.jsonld
new file mode 100644
index 00000000..0bfd26f0
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0041-in.jsonld
@@ -0,0 +1 @@
+{"@id": "http://example.org/test#example"} \ No newline at end of file
diff --git a/test/jsonld/test-suite/tests/toRdf-0041-out.nq b/test/jsonld/test-suite/tests/toRdf-0041-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0041-out.nq
diff --git a/test/jsonld/test-suite/tests/toRdf-0042-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0042-in.jsonld
new file mode 100644
index 00000000..e4598e55
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0042-out.nq b/test/jsonld/test-suite/tests/toRdf-0042-out.nq
new file mode 100644
index 00000000..54f0bc03
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0043-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0043-in.jsonld
new file mode 100644
index 00000000..2007f363
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0043-out.nq b/test/jsonld/test-suite/tests/toRdf-0043-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0043-out.nq
diff --git a/test/jsonld/test-suite/tests/toRdf-0044-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0044-in.jsonld
new file mode 100644
index 00000000..5768520b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/set1": { "@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/test/jsonld/test-suite/tests/toRdf-0044-out.nq b/test/jsonld/test-suite/tests/toRdf-0044-out.nq
new file mode 100644
index 00000000..fdb2e633
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0045-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0045-in.jsonld
new file mode 100644
index 00000000..33622d53
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0045-out.nq b/test/jsonld/test-suite/tests/toRdf-0045-out.nq
new file mode 100644
index 00000000..fa46f903
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0046-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0046-in.jsonld
new file mode 100644
index 00000000..045e2a2a
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0046-out.nq b/test/jsonld/test-suite/tests/toRdf-0046-out.nq
new file mode 100644
index 00000000..a9213cf3
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0047-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0047-in.jsonld
new file mode 100644
index 00000000..b49fac4e
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0047-out.nq b/test/jsonld/test-suite/tests/toRdf-0047-out.nq
new file mode 100644
index 00000000..5f833b1d
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0048-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0048-in.jsonld
new file mode 100644
index 00000000..a17b9493
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0048-out.nq b/test/jsonld/test-suite/tests/toRdf-0048-out.nq
new file mode 100644
index 00000000..d0af636b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0049-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0049-in.jsonld
new file mode 100644
index 00000000..6acef5c5
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0049-out.nq b/test/jsonld/test-suite/tests/toRdf-0049-out.nq
new file mode 100644
index 00000000..1c8d94af
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0050-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0050-in.jsonld
new file mode 100644
index 00000000..f2d0a384
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0050-out.nq b/test/jsonld/test-suite/tests/toRdf-0050-out.nq
new file mode 100644
index 00000000..5fe1cc05
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0051-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0051-in.jsonld
new file mode 100644
index 00000000..15815597
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0051-out.nq b/test/jsonld/test-suite/tests/toRdf-0051-out.nq
new file mode 100644
index 00000000..c581db6a
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0052-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0052-in.jsonld
new file mode 100644
index 00000000..d081e7fb
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0052-out.nq b/test/jsonld/test-suite/tests/toRdf-0052-out.nq
new file mode 100644
index 00000000..1c8d94af
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0053-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0053-in.jsonld
new file mode 100644
index 00000000..7795576f
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0053-out.nq b/test/jsonld/test-suite/tests/toRdf-0053-out.nq
new file mode 100644
index 00000000..54f0bc03
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0054-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0054-in.jsonld
new file mode 100644
index 00000000..ba913ff2
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0054-out.nq b/test/jsonld/test-suite/tests/toRdf-0054-out.nq
new file mode 100644
index 00000000..a84697e1
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0055-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0055-in.jsonld
new file mode 100644
index 00000000..ae60d731
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0055-out.nq b/test/jsonld/test-suite/tests/toRdf-0055-out.nq
new file mode 100644
index 00000000..ecd95e6a
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0056-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0056-in.jsonld
new file mode 100644
index 00000000..c151040a
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0056-out.nq b/test/jsonld/test-suite/tests/toRdf-0056-out.nq
new file mode 100644
index 00000000..c5363743
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0057-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0057-in.jsonld
new file mode 100644
index 00000000..dea8bf80
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0057-out.nq b/test/jsonld/test-suite/tests/toRdf-0057-out.nq
new file mode 100644
index 00000000..1c8d94af
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0058-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0058-in.jsonld
new file mode 100644
index 00000000..21933fda
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0058-out.nq b/test/jsonld/test-suite/tests/toRdf-0058-out.nq
new file mode 100644
index 00000000..aaa1eccc
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0059-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0059-in.jsonld
new file mode 100644
index 00000000..b91f8860
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0059-in.jsonld
@@ -0,0 +1,6 @@
+{
+ "@context": {
+ "myproperty": "http://example.com/myproperty"
+ },
+ "myproperty": { "@value" : null }
+}
diff --git a/test/jsonld/test-suite/tests/toRdf-0059-out.nq b/test/jsonld/test-suite/tests/toRdf-0059-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0059-out.nq
diff --git a/test/jsonld/test-suite/tests/toRdf-0060-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0060-in.jsonld
new file mode 100644
index 00000000..989e1192
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0060-out.nq b/test/jsonld/test-suite/tests/toRdf-0060-out.nq
new file mode 100644
index 00000000..440b2f7b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0061-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0061-in.jsonld
new file mode 100644
index 00000000..e52fd1b8
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0061-out.nq b/test/jsonld/test-suite/tests/toRdf-0061-out.nq
new file mode 100644
index 00000000..841a3d49
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0062-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0062-in.jsonld
new file mode 100644
index 00000000..e7f938ae
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0062-out.nq b/test/jsonld/test-suite/tests/toRdf-0062-out.nq
new file mode 100644
index 00000000..80c93983
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0062-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/term> "v"@en .
diff --git a/test/jsonld/test-suite/tests/toRdf-0063-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0063-in.jsonld
new file mode 100644
index 00000000..2a33783d
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0063-out.nq b/test/jsonld/test-suite/tests/toRdf-0063-out.nq
new file mode 100644
index 00000000..2b1ed62f
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0064-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0064-in.jsonld
new file mode 100644
index 00000000..fcf010c4
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0064-out.nq b/test/jsonld/test-suite/tests/toRdf-0064-out.nq
new file mode 100644
index 00000000..1ed3b1ca
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0065-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0065-in.jsonld
new file mode 100644
index 00000000..426de362
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0065-out.nq b/test/jsonld/test-suite/tests/toRdf-0065-out.nq
new file mode 100644
index 00000000..57adb84c
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0066-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0066-in.jsonld
new file mode 100644
index 00000000..36d8cac7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0066-out.nq b/test/jsonld/test-suite/tests/toRdf-0066-out.nq
new file mode 100644
index 00000000..093e6294
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0067-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0067-in.jsonld
new file mode 100644
index 00000000..6c47cfb7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0067-out.nq b/test/jsonld/test-suite/tests/toRdf-0067-out.nq
new file mode 100644
index 00000000..d089ef53
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0068-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0068-in.jsonld
new file mode 100644
index 00000000..4f05d0e4
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0068-out.nq b/test/jsonld/test-suite/tests/toRdf-0068-out.nq
new file mode 100644
index 00000000..e8b4f18e
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0069-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0069-in.jsonld
new file mode 100644
index 00000000..08cdde33
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0069-out.nq b/test/jsonld/test-suite/tests/toRdf-0069-out.nq
new file mode 100644
index 00000000..89910136
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0070-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0070-in.jsonld
new file mode 100644
index 00000000..ca711673
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0070-out.nq b/test/jsonld/test-suite/tests/toRdf-0070-out.nq
new file mode 100644
index 00000000..c171a406
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0071-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0071-in.jsonld
new file mode 100644
index 00000000..192ff27c
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0071-out.nq b/test/jsonld/test-suite/tests/toRdf-0071-out.nq
new file mode 100644
index 00000000..3812698c
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0072-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0072-in.jsonld
new file mode 100644
index 00000000..920554fc
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0072-out.nq b/test/jsonld/test-suite/tests/toRdf-0072-out.nq
new file mode 100644
index 00000000..fe7cd665
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0072-out.nq
@@ -0,0 +1 @@
+<http://me.markus-lanthaler.com/> <http://xmlns.com/foaf/0.1/name> "Markus Lanthaler" .
diff --git a/test/jsonld/test-suite/tests/toRdf-0073-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0073-in.jsonld
new file mode 100644
index 00000000..abf6feed
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0073-out.nq b/test/jsonld/test-suite/tests/toRdf-0073-out.nq
new file mode 100644
index 00000000..58e36e13
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0074-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0074-in.jsonld
new file mode 100644
index 00000000..22bb6039
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0074-out.nq b/test/jsonld/test-suite/tests/toRdf-0074-out.nq
new file mode 100644
index 00000000..a1c2f661
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0075-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0075-in.jsonld
new file mode 100644
index 00000000..7bf59112
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0075-out.nq b/test/jsonld/test-suite/tests/toRdf-0075-out.nq
new file mode 100644
index 00000000..a7b58eed
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0076-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0076-in.jsonld
new file mode 100644
index 00000000..23c99b55
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0076-out.nq b/test/jsonld/test-suite/tests/toRdf-0076-out.nq
new file mode 100644
index 00000000..5fc76bd7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0077-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0077-in.jsonld
new file mode 100644
index 00000000..7e65af4a
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0077-out.nq b/test/jsonld/test-suite/tests/toRdf-0077-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0078-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0078-in.jsonld
new file mode 100644
index 00000000..17071294
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0078-out.nq b/test/jsonld/test-suite/tests/toRdf-0078-out.nq
new file mode 100644
index 00000000..bca23603
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0078-out.nq
@@ -0,0 +1 @@
+_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:b0 .
diff --git a/test/jsonld/test-suite/tests/toRdf-0079-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0079-in.jsonld
new file mode 100644
index 00000000..7c3549ee
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0079-out.nq b/test/jsonld/test-suite/tests/toRdf-0079-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0080-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0080-in.jsonld
new file mode 100644
index 00000000..2d02e0ad
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0080-out.nq b/test/jsonld/test-suite/tests/toRdf-0080-out.nq
new file mode 100644
index 00000000..4059ef58
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0081-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0081-in.jsonld
new file mode 100644
index 00000000..7915153e
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0081-out.nq b/test/jsonld/test-suite/tests/toRdf-0081-out.nq
new file mode 100644
index 00000000..d938ed71
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0082-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0082-in.jsonld
new file mode 100644
index 00000000..60cf9ac2
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0082-out.nq b/test/jsonld/test-suite/tests/toRdf-0082-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0083-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0083-in.jsonld
new file mode 100644
index 00000000..8ef07587
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0083-out.nq b/test/jsonld/test-suite/tests/toRdf-0083-out.nq
new file mode 100644
index 00000000..82f12f7f
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0084-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0084-in.jsonld
new file mode 100644
index 00000000..c12bd7b2
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0084-out.nq b/test/jsonld/test-suite/tests/toRdf-0084-out.nq
new file mode 100644
index 00000000..21981f04
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0085-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0085-in.jsonld
new file mode 100644
index 00000000..09207e31
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0085-in.jsonld
@@ -0,0 +1,3 @@
+{
+ "@value": "free-floating value"
+}
diff --git a/test/jsonld/test-suite/tests/toRdf-0085-out.nq b/test/jsonld/test-suite/tests/toRdf-0085-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0085-out.nq
diff --git a/test/jsonld/test-suite/tests/toRdf-0086-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0086-in.jsonld
new file mode 100644
index 00000000..081a8877
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0086-out.nq b/test/jsonld/test-suite/tests/toRdf-0086-out.nq
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0086-out.nq
diff --git a/test/jsonld/test-suite/tests/toRdf-0087-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0087-in.jsonld
new file mode 100644
index 00000000..90d54114
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0087-out.nq b/test/jsonld/test-suite/tests/toRdf-0087-out.nq
new file mode 100644
index 00000000..f9b7ee6f
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0087-out.nq
@@ -0,0 +1 @@
+<http://example.com/node> <http://example.com/property> "nodes with properties are not removed" .
diff --git a/test/jsonld/test-suite/tests/toRdf-0088-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0088-in.jsonld
new file mode 100644
index 00000000..005f5e16
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0088-out.nq b/test/jsonld/test-suite/tests/toRdf-0088-out.nq
new file mode 100644
index 00000000..55b4f9ff
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0089-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0089-in.jsonld
new file mode 100644
index 00000000..3f10e016
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0089-out.nq b/test/jsonld/test-suite/tests/toRdf-0089-out.nq
new file mode 100644
index 00000000..fe5c7f32
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0090-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0090-in.jsonld
new file mode 100644
index 00000000..01b24726
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0090-out.nq b/test/jsonld/test-suite/tests/toRdf-0090-out.nq
new file mode 100644
index 00000000..537edf6e
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0091-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0091-in.jsonld
new file mode 100644
index 00000000..77b7fbd8
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0091-in.jsonld
@@ -0,0 +1,8 @@
+{
+ "@context": [
+ { "id": "@id" },
+ { "url": "id" }
+ ],
+ "url": "/issue/1",
+ "http://example.com/property": "ok"
+}
diff --git a/test/jsonld/test-suite/tests/toRdf-0091-out.nq b/test/jsonld/test-suite/tests/toRdf-0091-out.nq
new file mode 100644
index 00000000..34819079
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0091-out.nq
@@ -0,0 +1 @@
+<http://json-ld.org/issue/1> <http://example.com/property> "ok" .
diff --git a/test/jsonld/test-suite/tests/toRdf-0092-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0092-in.jsonld
new file mode 100644
index 00000000..ee3d9d2e
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0092-out.nq b/test/jsonld/test-suite/tests/toRdf-0092-out.nq
new file mode 100644
index 00000000..7e88362c
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0093-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0093-in.jsonld
new file mode 100644
index 00000000..3ac3ea98
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0093-out.nq b/test/jsonld/test-suite/tests/toRdf-0093-out.nq
new file mode 100644
index 00000000..fe48284d
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0093-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.org/enum> .
diff --git a/test/jsonld/test-suite/tests/toRdf-0094-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0094-in.jsonld
new file mode 100644
index 00000000..680afbf0
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0094-out.nq b/test/jsonld/test-suite/tests/toRdf-0094-out.nq
new file mode 100644
index 00000000..fe48284d
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0094-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.org/enum> .
diff --git a/test/jsonld/test-suite/tests/toRdf-0095-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0095-in.jsonld
new file mode 100644
index 00000000..1c5ed3b0
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0095-out.nq b/test/jsonld/test-suite/tests/toRdf-0095-out.nq
new file mode 100644
index 00000000..fe48284d
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0095-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.org/enum> .
diff --git a/test/jsonld/test-suite/tests/toRdf-0096-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0096-in.jsonld
new file mode 100644
index 00000000..6d5b0cb9
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0096-out.nq b/test/jsonld/test-suite/tests/toRdf-0096-out.nq
new file mode 100644
index 00000000..bca879ff
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0097-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0097-in.jsonld
new file mode 100644
index 00000000..732cc923
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0097-out.nq b/test/jsonld/test-suite/tests/toRdf-0097-out.nq
new file mode 100644
index 00000000..384f1d91
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0098-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0098-in.jsonld
new file mode 100644
index 00000000..68dc3249
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0098-out.nq b/test/jsonld/test-suite/tests/toRdf-0098-out.nq
new file mode 100644
index 00000000..49cae840
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0098-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.org/term> <http://example.com/vocab#suffix> .
diff --git a/test/jsonld/test-suite/tests/toRdf-0099-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0099-in.jsonld
new file mode 100644
index 00000000..05f582f0
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0099-out.nq b/test/jsonld/test-suite/tests/toRdf-0099-out.nq
new file mode 100644
index 00000000..85da3ac8
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0100-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0100-in.jsonld
new file mode 100644
index 00000000..2a2d1905
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0100-out.nq b/test/jsonld/test-suite/tests/toRdf-0100-out.nq
new file mode 100644
index 00000000..8f20fb1b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0101-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0101-in.jsonld
new file mode 100644
index 00000000..45c1d511
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0101-out.nq b/test/jsonld/test-suite/tests/toRdf-0101-out.nq
new file mode 100644
index 00000000..00a8ffe3
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0102-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0102-in.jsonld
new file mode 100644
index 00000000..fb472514
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0102-out.nq b/test/jsonld/test-suite/tests/toRdf-0102-out.nq
new file mode 100644
index 00000000..d5f5db3e
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0103-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0103-in.jsonld
new file mode 100644
index 00000000..a9a83b0c
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0103-out.nq b/test/jsonld/test-suite/tests/toRdf-0103-out.nq
new file mode 100644
index 00000000..d907850e
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0104-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0104-in.jsonld
new file mode 100644
index 00000000..dc313893
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0104-out.nq b/test/jsonld/test-suite/tests/toRdf-0104-out.nq
new file mode 100644
index 00000000..15b58420
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0105-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0105-in.jsonld
new file mode 100644
index 00000000..116e0504
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0105-out.nq b/test/jsonld/test-suite/tests/toRdf-0105-out.nq
new file mode 100644
index 00000000..787901b7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0106-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0106-in.jsonld
new file mode 100644
index 00000000..b3a9bd80
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0106-out.nq b/test/jsonld/test-suite/tests/toRdf-0106-out.nq
new file mode 100644
index 00000000..1dcbdf7d
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0107-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0107-in.jsonld
new file mode 100644
index 00000000..a8e29a67
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0107-out.nq b/test/jsonld/test-suite/tests/toRdf-0107-out.nq
new file mode 100644
index 00000000..c33dd89a
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0108-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0108-in.jsonld
new file mode 100644
index 00000000..ab52e5e7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0108-out.nq b/test/jsonld/test-suite/tests/toRdf-0108-out.nq
new file mode 100644
index 00000000..6a736bb1
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0108-out.nq
@@ -0,0 +1 @@
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:b0 .
diff --git a/test/jsonld/test-suite/tests/toRdf-0109-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0109-in.jsonld
new file mode 100644
index 00000000..8f4a9aa9
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0109-out.nq b/test/jsonld/test-suite/tests/toRdf-0109-out.nq
new file mode 100644
index 00000000..eb20efc7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0110-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0110-in.jsonld
new file mode 100644
index 00000000..59733fb5
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0110-out.nq b/test/jsonld/test-suite/tests/toRdf-0110-out.nq
new file mode 100644
index 00000000..532caa7a
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0111-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0111-in.jsonld
new file mode 100644
index 00000000..598c43fe
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0111-out.nq b/test/jsonld/test-suite/tests/toRdf-0111-out.nq
new file mode 100644
index 00000000..3f78e2ce
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0112-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0112-in.jsonld
new file mode 100644
index 00000000..dcfa1b40
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0112-out.nq b/test/jsonld/test-suite/tests/toRdf-0112-out.nq
new file mode 100644
index 00000000..8799e69b
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0112-out.nq
@@ -0,0 +1 @@
+_:b0 <http://example.com/anotherVocab#term> "value of term" .
diff --git a/test/jsonld/test-suite/tests/toRdf-0113-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0113-in.jsonld
new file mode 100644
index 00000000..3c337f02
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0113-out.nq b/test/jsonld/test-suite/tests/toRdf-0113-out.nq
new file mode 100644
index 00000000..a52ec902
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0113-out.nq
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o> <http://example/g> .
diff --git a/test/jsonld/test-suite/tests/toRdf-0114-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0114-in.jsonld
new file mode 100644
index 00000000..9f170b51
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0114-out.nq b/test/jsonld/test-suite/tests/toRdf-0114-out.nq
new file mode 100644
index 00000000..58a2adc7
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0114-out.nq
@@ -0,0 +1 @@
+<http://example/s> <http://example/p> <http://example/o> _:b0 .
diff --git a/test/jsonld/test-suite/tests/toRdf-0115-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0115-in.jsonld
new file mode 100644
index 00000000..c7191848
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0115-out.nq b/test/jsonld/test-suite/tests/toRdf-0115-out.nq
new file mode 100644
index 00000000..975388bf
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0116-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0116-in.jsonld
new file mode 100644
index 00000000..d5749891
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0116-out.nq b/test/jsonld/test-suite/tests/toRdf-0116-out.nq
new file mode 100644
index 00000000..a7887a9f
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0117-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0117-in.jsonld
new file mode 100644
index 00000000..cdd79a85
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0117-out.nq b/test/jsonld/test-suite/tests/toRdf-0117-out.nq
new file mode 100644
index 00000000..1fdb0e0e
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0118-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0118-in.jsonld
new file mode 100644
index 00000000..17071294
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0118-out.nq b/test/jsonld/test-suite/tests/toRdf-0118-out.nq
new file mode 100644
index 00000000..4e0570dd
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-0118-out.nq
@@ -0,0 +1,9 @@
+_:term <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:term .
+_:term _:term "plain value" .
+_:term _:term <http://json-ld.org/test-suite/tests/relativeIri> .
+_:term _:term _:term .
+_:term _:term _:Bx .
+_:term _:term _:Cx .
+_:term _:term _:b3 .
+_:Bx _:term "term" .
+_:Cx _:term "termId" .
diff --git a/test/jsonld/test-suite/tests/toRdf-0119-in.jsonld b/test/jsonld/test-suite/tests/toRdf-0119-in.jsonld
new file mode 100644
index 00000000..088bb2ff
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-0119-out.nq b/test/jsonld/test-suite/tests/toRdf-0119-out.nq
new file mode 100644
index 00000000..6fbbe3de
--- /dev/null
+++ b/test/jsonld/test-suite/tests/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/test/jsonld/test-suite/tests/toRdf-manifest.jsonld b/test/jsonld/test-suite/tests/toRdf-manifest.jsonld
new file mode 100644
index 00000000..8abb3e57
--- /dev/null
+++ b/test/jsonld/test-suite/tests/toRdf-manifest.jsonld
@@ -0,0 +1,812 @@
+{
+ "@context": "http://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"
+ }
+ ]
+}
diff --git a/test/jsonld/test-suite/vocab.jsonld b/test/jsonld/test-suite/vocab.jsonld
new file mode 100644
index 00000000..4cf6e15f
--- /dev/null
+++ b/test/jsonld/test-suite/vocab.jsonld
@@ -0,0 +1,231 @@
+{
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "mf": "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "jld": "http://json-ld.org/test-suite/vocab#",
+ "jld:Test": {
+ "@type": "@id"
+ },
+ "dc:identifier": {
+ "@type": "@id"
+ },
+ "rdfs:subClassOf": {
+ "@type": "@id"
+ },
+ "rdfs:domain": {
+ "@type": "@id"
+ },
+ "rdfs:range": {
+ "@type": "@id"
+ }
+ },
+ "@graph": [
+ {
+ "@id": "http://json-ld.org/test-suite/vocab#",
+ "dc:creator": "Gregg Kellogg",
+ "dc:date": "2013-09-23",
+ "dc:description": "Test case manifest vocabulary extensions",
+ "dc:identifier": "http://json-ld.org/test-suite/vocab#",
+ "dc:publisher": "W3C Linked JSON Community Group",
+ "dc:title": "Test case manifest vocabulary extensions",
+ "rdfs:comment": "Manifest vocabulary for JSON-LD test cases"
+ },
+ {
+ "@id": "jld:CompactTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A `CompactTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`. Tests are run using the [compact](http://json-ld.org/spec/latest/json-ld-api/index.html#widl-JsonLdProcessor-compact-Promise-any-input-JsonLdContext-context-JsonLdOptions-options) method with the input argument from `mf:action` (aliased as \"input\" in test manifest) referencing a JSON-LD file in expanded form, context from `:input` (aliased as \"context\" in the test manifest) and optional options from `:option`. The expected results for a `PositiveEvaluationTest` MUST be compared using JSON object comparison with the processor output.",
+ "rdfs:label": "Compact Evaluation Test"
+ },
+ {
+ "@id": "jld:ExpandTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A `ExpandTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`. Tests are run using the [expand](http://json-ld.org/spec/latest/json-ld-api/index.html#widl-JsonLdProcessor-expand-Promise-any-input-JsonLdOptions-options) method with the input argument from `mf:action` (aliased as \"input\" in test manifest) referencing a JSON-LD file, and optional options from `:option`. The expected results for a `PositiveEvaluationTest` MUST be compared using JSON object comparison with the processor output.",
+ "rdfs:label": "Expand Evaluation Test"
+ },
+ {
+ "@id": "jld:FlattenTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A `FlattenTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`. Tests are run using the [flatten](http://json-ld.org/spec/latest/json-ld-api/index.html#widl-JsonLdProcessor-flatten-Promise-any-input-JsonLdContext-context-JsonLdOptions-options) method with the input argument from `mf:action` (aliased as \"input\" in test manifest) referencing a JSON-LD file, optional context from `:input` (aliased as \"context\" in the test manifest) and optional options from `:option`. The expected results for a `PositiveEvaluationTest` MUST be compared using JSON object comparison with the processor output.",
+ "rdfs:label": "Flatten Evaluation Test"
+ },
+ {
+ "@id": "jld:FrameTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A `FrameTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`. Tests are run using the [frame](http://json-ld.org/spec/latest/json-ld-framing/#widl-JsonLdProcessor-frame-void-object-or-object---or-IRI-input-object-or-IRI-frame-JsonLdCallback-callback-JsonLdOptions-options) method with the input argument from `mf:action` (aliased as \"input\" in test manifest) referencing a JSON-LD file, frame from `:input` (aliased as \"frame\" in the test manifest) and optional options from `:option`. The expected results for a `PositiveEvaluationTest` MUST be compared using JSON object comparison with the processor output.",
+ "rdfs:label": "Frame Evaluation Test"
+ },
+ {
+ "@id": "jld:FromRDFTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A `FromRDFTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`. Tests are run using the [RDF to Object Conversion](http://json-ld.org/spec/latest/json-ld-api/index.html#rdf-to-object-conversion) algorithm with the input argument from `mf:action` (aliased as \"input\" in test manifest) referencing an N-Quads file and optional options from `:option`. The expected results for a `PositiveEvaluationTest` MUST be compared using JSON object comparison with the processor output.",
+ "rdfs:label": "From RDF Evaluation Test"
+ },
+ {
+ "@id": "jld:NegativeEvaluationTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A Negative Evaluation test is successful when the result of processing the input file specified as `mf:action` (aliased as \"input\" in test manifest) results in the error identified by the literal value of `mf:result` (aliased as \"expect\" in test manifest). The specifics of invoking test, including the interpretation of options (`:option`) and other input files are specified through another class.",
+ "rdfs:label": "Positive Evaluation Test",
+ "rdfs:subClassOf": "jld:Test"
+ },
+ {
+ "@id": "jld:NegativeSyntaxTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A type of test specifically for syntax testing. Syntax tests are not required to have an associated result, only an action. Negative syntax tests are tests of which the result should be a parser error.",
+ "rdfs:label": "Negative Syntax Test",
+ "rdfs:subClassOf": "jld:Test"
+ },
+ {
+ "@id": "jld:NormalizeTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A `NormalizeTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`. Tests are run using the [Normalization](http://json-ld.org/spec/latest/rdf-graph-normalization/#normalization-algorithm) algorithmwith the input argument from `mf:action` (aliased as \"input\" in test manifest) referencing an JSON-LD file and optional options from `:option`. The expected results for a PositiveEvaluationTest are N-Quads serialized in lexographical order and MUST be compared using string comparison.",
+ "rdfs:label": "Normalization Evaluation Test"
+ },
+ {
+ "@id": "jld:Option",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "Options passed to the test runner to affect invocation of the appropriate API method.",
+ "rdfs:label": "Processor Options"
+ },
+ {
+ "@id": "jld:PositiveEvaluationTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A Positive Evaluation test is successful when the result of processing the input file specified as `mf:action` (aliased as \"input\" in test manifest) exactly matches the output file specified as `mf:result` (aliased as \"expect\" in test manifest) using the comparison defined in another class. The specifics of invoking test, including the interpretation of options (`:option`) and other input files are specified through another class.",
+ "rdfs:label": "Positive Evaluation Test",
+ "rdfs:subClassOf": "jld:Test"
+ },
+ {
+ "@id": "jld:PositiveSyntaxTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A type of test specifically for syntax testing. Syntax tests are not required to have an associated result, only an action.",
+ "rdfs:label": "Positive Syntax Test",
+ "rdfs:subClassOf": "jld:Test"
+ },
+ {
+ "@id": "jld:Test",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "All JSON-LD tests have an input file referenced using `mf:action` (aliased as \"input\" in test manifest). Positive and Negative Evaluation Tests also have a result file referenced using `mf:result` (aliased as \"expect\" in test manifest). Other tests may take different inputs and options as defined for each test class. Tests should be run with the processingMode option set to \"json-ld-1.0\", unless specified explicitly as a test option.",
+ "rdfs:label": "Superclass of all JSON-LD tests"
+ },
+ {
+ "@id": "jld:ToRDFTest",
+ "@type": "rdfs:Class",
+ "rdfs:comment": "A `ToRDFTest` modifies either a `PositiveEvaluationTest`, `NegativeEvaluationTest`, `PositiveSyntaxTest` or `NegativeSyntaxTest`. Tests are run using the [Deserialize JSON-LD to RDF algorithm](http://json-ld.org/spec/latest/json-ld-api/index.html#deserialize-json-ld-to-rdf-algorithm) with the input argument from `mf:action` (aliased as \"input\" in test manifest) referencing an JSON-LD file and optional options from `:option`. The expected results for a `PositiveEvaluationTest` are N-Quads serialized in lexographical order and MUST be compared either string comparison or Dataset as defined in [RDF11-CONCEPTS](http://www.w3.org/TR/rdf11-concepts/#section-dataset-isomorphism).",
+ "rdfs:label": "To RDF Evaluation Test"
+ },
+ {
+ "@id": "jld:base",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "The base IRI to use when expanding or compacting the document. If set, this overrides the input document's IRI.",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "base",
+ "rdfs:range": "rdfs:Resource"
+ },
+ {
+ "@id": "jld:compactArrays",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "If set to `true`, the JSON-LD processor replaces arrays with just one element with that element during compaction. If set to false, all arrays will remain arrays even if they have just one element.",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "compact arrays",
+ "rdfs:range": "xsd:boolean"
+ },
+ {
+ "@id": "jld:contentType",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "The HTTP Content-Type used for the input file, in case it is a non-registered type.",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "content type",
+ "rdfs:range": "xsd:boolean"
+ },
+ {
+ "@id": "jld:expandContext",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "A context that is used to initialize the active context when expanding a document.",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "expand context",
+ "rdfs:range": "rdfs:Resource"
+ },
+ {
+ "@id": "jld:httpLink",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "An HTTP Link header to be added to the result of requesting the input file.",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "HTTP link",
+ "rdfs:range": "xsd:boolean"
+ },
+ {
+ "@id": "jld:httpStatus",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "The HTTP status code that must be returned when the input file is requested. This is typically used along with the `redirectTo` property.",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "HTTP status",
+ "rdfs:range": "xsd:boolean"
+ },
+ {
+ "@id": "jld:input",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "Secondary input file",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "input",
+ "rdfs:range": "rdfs:Resource"
+ },
+ {
+ "@id": "jld:option",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "Options affecting processing",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "option",
+ "rdfs:range": "jld:Option"
+ },
+ {
+ "@id": "jld:processingMode",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "If set to \"json-ld-1.0\", the JSON-LD processor must produce exactly the same results as the algorithms defined in this specification. If set to another value, the JSON-LD processor is allowed to extend or modify the algorithms defined in this specification to enable application-specific optimizations. The definition of such optimizations is beyond the scope of this specification and thus not defined. Consequently, different implementations may implement different optimizations. Developers must not define modes beginning with json-ld as they are reserved for future versions of this specification.",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "processing mode",
+ "rdfs:range": "xsd:string"
+ },
+ {
+ "@id": "jld:produceGeneralizedRdf",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "Unless the produce generalized RDF flag is set to true, RDF triples containing a blank node predicate are excluded from output.",
+ "rdfs:domain": "jld:ToRDFTest",
+ "rdfs:label": "produce generalized RDF",
+ "rdfs:range": "xsd:boolean"
+ },
+ {
+ "@id": "jld:redirectTo",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "The location of a URL for redirection. A request made of the input file must be redirected to the designated URL.",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "redirect to",
+ "rdfs:range": "xsd:boolean"
+ },
+ {
+ "@id": "jld:useDocumentLoader",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "Test runners must implement a callback method with a method signature as defined in [LoadDocumentCallback](http://json-ld.org/spec/latest/json-ld-api/index.html#idl-def-LoadDocumentCallback). Specifying this option requires the test runner to provide this callback to the appropriate API method using the `documentLoader` option.",
+ "rdfs:domain": "jld:Test",
+ "rdfs:label": "use document loader",
+ "rdfs:range": "xsd:boolean"
+ },
+ {
+ "@id": "jld:useNativeTypes",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "If the _use native types_ flag is set to `true`, RDF literals with a datatype IRI that equal `xsd:integer` or `xsd:double` are converted to a JSON numbers and RDF literals with a datatype IRI that equals `xsd:boolean` are converted to `true` or `false` based on their lexical form.",
+ "rdfs:domain": "jld:FromRDFTest",
+ "rdfs:label": "use native types",
+ "rdfs:range": "xsd:boolean"
+ },
+ {
+ "@id": "jld:useRdfType",
+ "@type": "rdfs:Property",
+ "rdfs:comment": "If the _use rdf type_ flag is set to `true`, statements with an `rdf:type` predicate will not use `@type`, but will be transformed as a normal property.",
+ "rdfs:domain": "jld:FromRDFTest",
+ "rdfs:label": "use RDF types",
+ "rdfs:range": "xsd:boolean"
+ }
+ ]
+} \ No newline at end of file
diff --git a/test/jsonld/test-suite/vocab_context.jsonld b/test/jsonld/test-suite/vocab_context.jsonld
new file mode 100644
index 00000000..af0c5b32
--- /dev/null
+++ b/test/jsonld/test-suite/vocab_context.jsonld
@@ -0,0 +1,15 @@
+{
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "mf": "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "jld": "http://json-ld.org/test-suite/vocab#",
+ "jld:Test": {"@type": "@id"},
+ "dc:identifier": {"@type": "@id"},
+ "rdfs:subClassOf": {"@type": "@id"},
+ "rdfs:domain": {"@type": "@id"},
+ "rdfs:range": {"@type": "@id"}
+ }
+} \ No newline at end of file
diff --git a/test/jsonld/test_api.py b/test/jsonld/test_api.py
new file mode 100644
index 00000000..c153fec5
--- /dev/null
+++ b/test/jsonld/test_api.py
@@ -0,0 +1,32 @@
+# -*- coding: UTF-8 -*-
+from rdflib.plugin import register, Parser, Serializer
+
+register("json-ld", Parser, "rdflib.plugins.parsers.jsonld", "JsonLDParser")
+register("json-ld", Serializer, "rdflib.plugins.serializers.jsonld", "JsonLDSerializer")
+
+from rdflib import Graph, Literal, URIRef
+
+
+def test_parse():
+ test_json = """
+ {
+ "@context": {
+ "dc": "http://purl.org/dc/terms/",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#"
+ },
+ "@id": "http://example.org/about",
+ "dc:title": {
+ "@language": "en",
+ "@value": "Someone's Homepage"
+ }
+ }
+ """
+ g = Graph().parse(data=test_json, format="json-ld")
+ assert list(g) == [
+ (
+ URIRef("http://example.org/about"),
+ URIRef("http://purl.org/dc/terms/title"),
+ Literal("Someone's Homepage", lang="en"),
+ )
+ ]
diff --git a/test/jsonld/test_compaction.py b/test/jsonld/test_compaction.py
new file mode 100644
index 00000000..7ea409a9
--- /dev/null
+++ b/test/jsonld/test_compaction.py
@@ -0,0 +1,257 @@
+# -*- coding: UTF-8 -*-
+
+import re
+import json
+import itertools
+from rdflib import Graph
+from rdflib.plugin import register, Serializer
+
+register("json-ld", Serializer, "rdflib.plugins.serializers.jsonld", "JsonLDSerializer")
+
+
+cases = []
+
+
+def case(*args):
+ cases.append(args)
+
+
+case(
+ """
+@prefix dc: <http://purl.org/dc/terms/> .
+<http://example.org/>
+ dc:title "Homepage"@en .
+""",
+ {
+ "@context": {"@vocab": "http://purl.org/dc/terms/", "@language": "en"},
+ "@id": "http://example.org/",
+ "title": "Homepage",
+ },
+)
+
+
+case(
+ """
+@prefix dc: <http://purl.org/dc/terms/> .
+<http://example.org/>
+ dc:title "Homepage"@en, "Hemsida"@sv .
+""",
+ {
+ "@context": {
+ "@vocab": "http://purl.org/dc/terms/",
+ "title": {"@container": "@language"},
+ },
+ "@id": "http://example.org/",
+ "title": {"en": "Homepage", "sv": "Hemsida"},
+ },
+)
+
+
+case(
+ """
+@prefix dc: <http://purl.org/dc/terms/> .
+<http://example.org/>
+ dc:title "Homepage"@en, "Hemsida"@sv .
+""",
+ {
+ "@context": {
+ "@vocab": "http://purl.org/dc/terms/",
+ "@language": "sv",
+ "title_en": {"@id": "title", "@language": "en"},
+ },
+ "@id": "http://example.org/",
+ "title_en": "Homepage",
+ "title": "Hemsida",
+ },
+)
+
+
+# .. Requires set values to be sorted to be predictable
+# case("""
+# @prefix dc: <http://purl.org/dc/terms/> .
+# <http://example.org/>
+# dc:title "Homepage"@en, "Home Page"@en, "Home Page"@en-GB, "Hemsida"@sv .
+# """,
+# {
+# "@context": "-||-",
+# "@id": "http://example.org/",
+# "title_en": ["Homepage", "Home Page"],
+# "title": [{"@language": "en-GB", "@value": "Home Page"}, "Hemsida"]
+# }
+# )
+
+
+case(
+ """
+@prefix dc: <http://purl.org/dc/terms/> .
+<http://example.org/easter_island>
+ dc:title "Påskön"@sv .
+""",
+ {
+ "@context": {"@vocab": "http://purl.org/dc/terms/", "@language": "sv"},
+ "@id": "http://example.org/easter_island",
+ "title": "Påskön",
+ },
+)
+
+
+case(
+ """
+@prefix : <http://example.org/ns#> .
+<http://example.org/> :has _:blank-1 .
+""",
+ {
+ "@context": {"has": {"@type": "@id", "@id": "http://example.org/ns#has"}},
+ "@id": "http://example.org/",
+ "has": "_:blank-1",
+ },
+)
+
+
+case(
+ """
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix : <http://example.org/ns#> .
+:Something rdfs:subClassOf :Thing .
+""",
+ {
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "v": "http://example.org/ns#",
+ "rdfs:subClassOf": {"@container": "@set"},
+ },
+ "@id": "v:Something",
+ "rdfs:subClassOf": [{"@id": "v:Thing"}],
+ },
+)
+
+
+case(
+ """
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix : <http://example.org/ns#> .
+:Something rdfs:subClassOf :Thing .
+""",
+ {
+ "@context": {
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "v": "http://example.org/ns#",
+ "subClassOf": {
+ "@id": "rdfs:subClassOf",
+ "@type": "@id",
+ "@container": "@set",
+ },
+ },
+ "@id": "v:Something",
+ "subClassOf": ["v:Thing"],
+ },
+)
+
+
+case(
+ """
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix : <http://example.org/ns#> .
+:World owl:unionOf (:Everyhing :Nothing) .
+""",
+ {
+ "@context": {
+ "owl": "http://www.w3.org/2002/07/owl#",
+ "v": "http://example.org/ns#",
+ },
+ "@id": "v:World",
+ "owl:unionOf": {"@list": [{"@id": "v:Everyhing"}, {"@id": "v:Nothing"}]},
+ },
+)
+
+
+case(
+ """
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix : <http://example.org/ns#> .
+:World owl:unionOf (:Everyhing :Nothing) .
+""",
+ {
+ "@context": {
+ "owl": "http://www.w3.org/2002/07/owl#",
+ "v": "http://example.org/ns#",
+ "unionOf": {"@id": "owl:unionOf", "@container": "@list"},
+ },
+ "@id": "v:World",
+ "unionOf": [{"@id": "v:Everyhing"}, {"@id": "v:Nothing"}],
+ },
+)
+
+
+case(
+ """
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix : <http://example.org/ns#> .
+:World owl:unionOf (:Everyhing :Nothing) .
+""",
+ {
+ "@context": {
+ "owl": "http://www.w3.org/2002/07/owl#",
+ "v": "http://example.org/ns#",
+ "unionOf": {"@id": "owl:unionOf", "@type": "@id", "@container": "@list"},
+ },
+ "@id": "v:World",
+ "unionOf": ["v:Everyhing", "v:Nothing"],
+ },
+)
+
+
+# Shorten result IRIs by using @base
+case(
+ """
+BASE <http://example.org/>
+PREFIX : <http://example.org/vocab/>
+<Thing> a :Class .
+<Work> a :Class; :subClassOf <Thing> .
+</some/path/> a :Thing .
+</some/path/#this> a :Thing .
+</some/path/#other> a :Thing .
+""",
+ {
+ "@context": {
+ "@base": "http://example.org/some/path/#other",
+ "@vocab": "http://example.org/vocab/",
+ },
+ "@graph": [
+ {"@id": "/Thing", "@type": "Class"},
+ {"@id": "/Work", "@type": "Class", "subClassOf": {"@id": "/Thing"}},
+ {"@id": "", "@type": "Thing"},
+ {"@id": "/some/path/#this", "@type": "Thing"},
+ {"@id": "/some/path/#other", "@type": "Thing"},
+ ],
+ },
+)
+
+
+json_kwargs = dict(indent=2, separators=(",", ": "), sort_keys=True, ensure_ascii=False)
+
+
+def run(data, expected):
+ g = Graph().parse(data=data, format="turtle")
+ result = g.serialize(format="json-ld", context=expected["@context"])
+ result = json.loads(result)
+
+ sort_graph(result)
+ result = json.dumps(result, **json_kwargs)
+ incr = itertools.count(1)
+ result = re.sub(r'"_:[^"]+"', lambda m: '"_:blank-%s"' % next(incr), result)
+
+ sort_graph(expected)
+ expected = json.dumps(expected, **json_kwargs)
+
+ assert result == expected, "Expected not equal to result: %s" % result
+
+
+def sort_graph(data):
+ if "@graph" in data:
+ data["@graph"].sort(key=lambda node: node.get("@id"))
+
+
+def test_cases():
+ for data, expected in cases:
+ yield run, data, expected
diff --git a/test/jsonld/test_context.py b/test/jsonld/test_context.py
new file mode 100644
index 00000000..a4d3d772
--- /dev/null
+++ b/test/jsonld/test_context.py
@@ -0,0 +1,212 @@
+"""
+JSON-LD Context Spec
+"""
+
+from functools import wraps
+from rdflib.plugins.shared.jsonld.context import Context, Term
+from rdflib.plugins.shared.jsonld import context
+from rdflib.plugins.shared.jsonld import errors
+
+
+# exception utility (see also nose.tools.raises)
+def _expect_exception(expected_error):
+ def _try_wrapper(f):
+ @wraps(f)
+ def _try():
+ try:
+ f()
+ assert e == expected_error
+ except Exception as e:
+ success = e == expected_error
+ else:
+ success = False
+ assert success, "Expected %r" % expected_error
+
+ return _try
+
+ return _try_wrapper
+
+
+def test_create_context():
+ ctx = Context()
+ ctx.add_term("label", "http://example.org/ns/label")
+ term = ctx.terms.get("label")
+
+ assert term.name == "label"
+ assert ctx.find_term("http://example.org/ns/label") is term
+
+
+def test_select_term_based_on_value_characteristics():
+ ctx = Context()
+
+ ctx.add_term("updated", "http://example.org/ns/updated")
+ ctx.add_term(
+ "updatedDate",
+ "http://example.org/ns/updated",
+ coercion="http://www.w3.org/2001/XMLSchema#date",
+ )
+
+ assert ctx.find_term("http://example.org/ns/updated").name == "updated"
+ assert (
+ ctx.find_term(
+ "http://example.org/ns/updated",
+ coercion="http://www.w3.org/2001/XMLSchema#date",
+ ).name
+ == "updatedDate"
+ )
+
+ # ctx.find_term('http://example.org/ns/title_sv', language='sv')
+
+ # ctx.find_term('http://example.org/ns/authorList', container='@set')
+
+ # ctx.find_term('http://example.org/ns/creator', reverse=True)
+
+
+def test_getting_keyword_values_from_nodes():
+ ctx = Context()
+ assert ctx.get_id({"@id": "urn:x:1"}) == "urn:x:1"
+ assert ctx.get_language({"@language": "en"}) == "en"
+
+
+def test_parsing_a_context_expands_prefixes():
+ ctx = Context(
+ {
+ "@vocab": "http://example.org/ns/",
+ "x": "http://example.org/ns/",
+ "label": "x:label",
+ "x:updated": {"@type": "x:date"},
+ }
+ )
+
+ term = ctx.terms.get("label")
+
+ assert term.id == "http://example.org/ns/label"
+
+ term = ctx.terms.get("x:updated")
+ assert term.id == "http://example.org/ns/updated"
+ assert term.type == "http://example.org/ns/date"
+
+ # test_expanding_terms():
+ assert ctx.expand("term") == "http://example.org/ns/term"
+ assert ctx.expand("x:term") == "http://example.org/ns/term"
+
+ # test_shrinking_iris():
+ assert ctx.shrink_iri("http://example.org/ns/term") == "x:term"
+ assert ctx.to_symbol("http://example.org/ns/term") == "term"
+
+
+def test_resolving_iris():
+ ctx = Context({"@base": "http://example.org/path/leaf"})
+ assert ctx.resolve("/") == "http://example.org/"
+ assert ctx.resolve("/trail") == "http://example.org/trail"
+ assert ctx.resolve("../") == "http://example.org/"
+ assert ctx.resolve("../../") == "http://example.org/"
+
+
+def test_accessing_keyword_values_by_alias():
+ ctx = Context({"iri": "@id", "lang": "@language"})
+ assert ctx.get_id({"iri": "urn:x:1"}) == "urn:x:1"
+ assert ctx.get_language({"lang": "en"}) == "en"
+
+ # test_standard_keywords_still_work():
+ assert ctx.get_id({"@id": "urn:x:1"}) == "urn:x:1"
+
+ # test_representing_keywords_by_alias():
+ assert ctx.id_key == "iri"
+ assert ctx.lang_key == "lang"
+
+
+def test_creating_a_subcontext():
+ ctx = Context()
+ ctx4 = ctx.subcontext({"lang": "@language"})
+ assert ctx4.get_language({"lang": "en"}) == "en"
+
+
+def test_prefix_like_vocab():
+ ctx = Context({"@vocab": "ex:", "term": "ex:term"})
+ term = ctx.terms.get("term")
+ assert term.id == "ex:term"
+
+
+# Mock external sources loading
+SOURCES = {}
+_source_to_json = context.source_to_json
+
+
+def _mock_source_loader(f):
+ @wraps(f)
+ def _wrapper():
+ context.source_to_json = SOURCES.get
+ f()
+ context.source_to_json = _source_to_json
+
+ return _wrapper
+
+
+@_mock_source_loader
+def test_loading_contexts():
+ # Given context data:
+ source1 = "http://example.org/base.jsonld"
+ source2 = "http://example.org/context.jsonld"
+ SOURCES[source1] = {"@context": {"@vocab": "http://example.org/vocab/"}}
+ SOURCES[source2] = {"@context": [source1, {"n": "name"}]}
+
+ # Create a context:
+ ctx = Context(source2)
+ assert ctx.expand("n") == "http://example.org/vocab/name"
+
+ # Context can be a list:
+ ctx = Context([source2])
+ assert ctx.expand("n") == "http://example.org/vocab/name"
+
+
+@_mock_source_loader
+def test_use_base_in_local_context():
+ ctx = Context({"@base": "/local"})
+ assert ctx.base == "/local"
+
+
+@_mock_source_loader
+def test_override_base():
+ ctx = Context(
+ base="http://example.org/app/data/item", source={"@base": "http://example.org/"}
+ )
+ assert ctx.base == "http://example.org/"
+
+
+@_mock_source_loader
+def test_resolve_relative_base():
+ ctx = Context(base="http://example.org/app/data/item", source={"@base": "../"})
+ assert ctx.base == "http://example.org/app/"
+ assert ctx.resolve_iri("../other") == "http://example.org/other"
+
+
+@_mock_source_loader
+def test_set_null_base():
+ ctx = Context(base="http://example.org/app/data/item", source={"@base": None})
+ assert ctx.base is None
+ assert ctx.resolve_iri("../other") == "../other"
+
+
+@_mock_source_loader
+def test_ignore_base_remote_context():
+ ctx_url = "http://example.org/remote-base.jsonld"
+ SOURCES[ctx_url] = {"@context": {"@base": "/remote"}}
+ ctx = Context(ctx_url)
+ assert ctx.base == None
+
+
+@_expect_exception(errors.RECURSIVE_CONTEXT_INCLUSION)
+@_mock_source_loader
+def test_recursive_context_inclusion_error():
+ ctx_url = "http://example.org/recursive.jsonld"
+ SOURCES[ctx_url] = {"@context": ctx_url}
+ ctx = Context(ctx_url)
+
+
+@_expect_exception(errors.INVALID_REMOTE_CONTEXT)
+@_mock_source_loader
+def test_invalid_remote_context():
+ ctx_url = "http://example.org/recursive.jsonld"
+ SOURCES[ctx_url] = {"key": "value"}
+ ctx = Context(ctx_url)
diff --git a/test/jsonld/test_localsuite.py b/test/jsonld/test_localsuite.py
new file mode 100644
index 00000000..1f9acd82
--- /dev/null
+++ b/test/jsonld/test_localsuite.py
@@ -0,0 +1,36 @@
+from os import environ, chdir, path as p
+import json
+from . import runner
+
+
+TC_BASE = "http://rdflib.net/rdflib-jsonld/local-testsuite/"
+
+
+testsuite_dir = p.join(p.abspath(p.dirname(__file__)), "local-suite")
+
+
+def read_manifest():
+ f = open(p.join(testsuite_dir, "manifest.jsonld"), "r")
+ manifestdata = json.load(f)
+ f.close()
+ for test in manifestdata.get("sequence"):
+ parts = test.get("input", "").split(".")[0].split("-")
+ category, name, direction = parts
+ inputpath = test.get("input")
+ expectedpath = test.get("expect")
+ context = test.get("context", False)
+ options = test.get("option") or {}
+ yield category, name, inputpath, expectedpath, context, options
+
+
+def test_suite():
+ chdir(testsuite_dir)
+ for cat, num, inputpath, expectedpath, context, options in read_manifest():
+ if inputpath.endswith(".jsonld"): # toRdf
+ if expectedpath.endswith(".jsonld"): # compact/expand/flatten
+ func = runner.do_test_json
+ else: # toRdf
+ func = runner.do_test_parser
+ else: # fromRdf
+ func = runner.do_test_serializer
+ yield func, TC_BASE, cat, num, inputpath, expectedpath, context, options
diff --git a/test/jsonld/test_named_graphs.py b/test/jsonld/test_named_graphs.py
new file mode 100644
index 00000000..4f8bbeab
--- /dev/null
+++ b/test/jsonld/test_named_graphs.py
@@ -0,0 +1,66 @@
+# -*- coding: UTF-8 -*-
+from rdflib import *
+from rdflib.plugin import register, Parser
+
+register("json-ld", Parser, "rdflib.plugins.parsers.jsonld", "JsonLDParser")
+register("application/ld+json", Parser, "rdflib.plugins.parsers.jsonld", "JsonLDParser")
+
+data = """
+{
+ "@context": {"@vocab": "http://schema.org/"},
+ "@graph": [
+ { "@id": "http://example.org/data#jdoe",
+ "name": "John"
+ },
+ { "@id": "http://example.org/data#janedoe",
+ "name": "Jane"
+ },
+ { "@id": "http://example.org/data#metadata",
+ "@graph": [
+ { "@id": "http://example.org/data",
+ "creator": "http://example.org/data#janedoe"
+ }
+ ]
+ }
+ ]
+}
+"""
+
+meta_ctx = URIRef("http://example.org/data#metadata")
+
+
+def test_graph():
+ g = Graph()
+ g.parse(data=data, format="application/ld+json")
+ assert len(g) == 2
+
+
+def test_conjunctive_graph():
+ cg = ConjunctiveGraph()
+ cg.default_context.parse(data=data, format="application/ld+json")
+ assert len(cg) == 3
+
+ print(
+ "default graph (%s) contains %s triples (expected 2)"
+ % (cg.identifier, len(cg.default_context))
+ )
+ for ctx in cg.contexts():
+ print("named graph (%s) contains %s triples" % (ctx.identifier, len(ctx)))
+ assert len(cg.default_context) == 2
+ assert len(list(cg.contexts())) == 2
+
+
+def test_dataset():
+ ds = Dataset()
+ ds.default_context.parse(data=data, format="application/ld+json")
+ assert len(ds) == 3
+
+ assert len(ds.default_context) == 2
+ print(
+ "default graph (%s) contains %s triples (expected 2)"
+ % (ds.identifier, len(ds.default_context))
+ )
+ contexts = dict((ctx.identifier, ctx) for ctx in ds.contexts())
+ assert len(contexts) == 2
+ assert len(contexts.pop(meta_ctx)) == 1
+ assert len(list(contexts.values())[0]) == 2
diff --git a/test/jsonld/test_onedotone.py b/test/jsonld/test_onedotone.py
new file mode 100644
index 00000000..d281c176
--- /dev/null
+++ b/test/jsonld/test_onedotone.py
@@ -0,0 +1,169 @@
+from os import environ, chdir, path as p
+import json
+from . import runner
+
+
+TC_BASE = "https://w3c.github.io/json-ld-api/tests/toRdf/"
+
+
+testsuite_dir = p.join(p.abspath(p.dirname(__file__)), "1.1")
+
+
+unsupported_tests = ("frame", "normalize")
+unsupported_tests += (
+ "error",
+ "remote",
+)
+unsupported_tests += ("flatten", "compact", "expand")
+unsupported_tests += ("html",)
+unsupported_tests += ("fromRdf",) # The JSON-LD 1.1 enhancement applies to parsing only
+
+known_bugs = (
+ # invalid nquads (bnode as predicate)
+ # "toRdf-0078-in", "toRdf-0108-in",
+ # TODO: Literal doesn't preserve representations
+ "fromRdf/0002-in",
+ # RDflib does not print Integer with scientific notation
+ "toRdf/0035-in",
+ # tordf-0118-in
+ # TODO: "http:g" should serialize to "http:g", not "//g"
+ "toRdf/0120-in",
+ "toRdf/0121-in",
+ "toRdf/0122-in",
+ "toRdf/0123-in",
+ "toRdf/0124-in",
+ "toRdf/0125-in",
+ "toRdf/0126-in",
+ # TODO: RDFLib collapses http://ab//de to http://ab/de
+ "toRdf/0128-in",
+ # TODO: RDFLib does not allow arbitrary "urn:ex:s307" as a URI in predicate place
+ "toRdf/0130-in", "toRdf/0131-in", "toRdf/0132-in",
+ # TODO: Odd context lookup bug with scoped context (v1.1 bug)
+ "toRdf/c013-in",
+ # Type with @context of null should fall back to @vocab (I think), not baseuri
+ "toRdf/c014-in",
+ # <http://example/typed-base#subject-reference-id> != <http://example/base-base#subject-reference-id>
+ "toRdf/c015-in",
+ # context null clears vocab from parent context?
+ "toRdf/c018-in",
+ # TODO: Bug with resolving relative context url from top-level context which is not doc_root
+ "toRdf/c031-in",
+ # TODO: Nested Contexts don't quite work properly yet
+ "toRdf/c037-in", "toRdf/c038-in",
+ # TODO: @direction doesn't quite work properly in this implementation
+ "toRdf/di09-in", "toRdf/di10-in", "toRdf/di11-in", "toRdf/di12-in",
+ # TODO: empty list inside a list is represented wrong?
+ "toRdf/e004-in",
+ # Same problem as 0002-in
+ "toRdf/e061-in",
+ # Trying to use BNode as predicate, RDFLIB doesn't support
+ "toRdf/e075-in",
+ # @id and @vocab in literal datatype expansion doesn't work
+ "toRdf/e088-in",
+ # TODO: relative-iri keeps . on end of IRI?
+ "toRdf/e076-in", "toRdf/e089-in", "toRdf/e090-in","toRdf/e091-in", "toRdf/e110-in", "toRdf/e129-in", "toRdf/e130-in",
+ # TODO: Just broken expansion...
+ "toRdf/e080-in", "toRdf/e092-in", "toRdf/e093-in", "toRdf/e094-in", "toRdf/e104-in", "toRdf/e108-in",
+ # TODO: Odd result in list expansion
+ "toRdf/e105-in", "toRdf/e107-in",
+ # no expantContent option?
+ "toRdf/e077-in",
+ # TODO: Investigate:
+ "toRdf/e111-in", "toRdf/e112-in", "toRdf/e119-in", "toRdf/e120-in", "toRdf/e122-in",
+ # RDFLib cannot keep a colon on the end of a prefix uri
+ "toRdf/e117-in", "toRdf/e118-in",
+ # <ex:ns/> doesn't expand to <http://example.org/ns/>
+ "toRdf/e124-in",
+ # Similar to above?
+ "toRdf/e125-in",
+ # Recursive Inclusion triggered!
+ "toRdf/e128-in",
+ # JSON double representation
+ "toRdf/js04-in", "toRdf/js10-in",
+ # JSON character escaping
+ "toRdf/js12-in", "toRdf/js13-in",
+ # Broken list comprehension
+ "toRdf/li05-in","toRdf/li06-in","toRdf/li07-in","toRdf/li08-in","toRdf/li09-in","toRdf/li10-in","toRdf/li11-in","toRdf/li14-in",
+ # Bad URI?
+ "toRdf/li12-in",
+ # cannot use property-index to add property to graph object?
+ "toRdf/pi11-in", "toRdf/pr25-in",
+ # Investigate property issues:
+ "toRdf/pr38-in", "toRdf/pr39-in", "toRdf/pr40-in",
+ # Negative zero representation?
+ "toRdf/rt01-in",
+ # Property scope with @propagate not working
+ "toRdf/so06-in",
+ # Expand string as value gives wrong number representation
+ "toRdf/tn02-in",
+ # TODO: Rdflib should silently reject bad predicate URIs
+ "toRdf/wf02-in",
+)
+
+TC_BASE = "https://w3c.github.io/json-ld-api/tests/"
+allow_lists_of_lists = True
+
+SKIP_KNOWN_BUGS = True
+SKIP_1_0_TESTS = True
+
+testsuite_dir = environ.get("JSONLD_TESTSUITE") or p.join(
+ p.abspath(p.dirname(__file__)), "1.1"
+)
+test_dir = p.join(testsuite_dir, "tests")
+if not p.isdir(test_dir): # layout of 1.1 testsuite
+ test_dir = testsuite_dir
+else:
+ TC_BASE = "http://json-ld.org/test-suite/tests/"
+ allow_lists_of_lists = False
+
+
+def read_manifest(skiptests):
+ f = open(p.join(testsuite_dir, "manifest.jsonld"), "r")
+ manifestdata = json.load(f)
+ f.close()
+ # context = manifestdata.get('context')
+ for m in manifestdata.get("sequence"):
+ if any(token in m for token in skiptests):
+ continue
+ f = open(p.join(testsuite_dir, m), "r")
+ md = json.load(f)
+ f.close()
+ for test in md.get("sequence"):
+ parts = test.get("input", "").split(".")[0]
+ cat_num, direction = parts.rsplit("-", 1)
+ category, testnum = (
+ cat_num.split("/") if "/" in cat_num else cat_num.split("-")
+ )
+ if (
+ test.get("input", "").split(".")[0] in skiptests
+ or category in skiptests
+ ):
+ pass
+ else:
+ inputpath = test.get("input")
+ expectedpath = test.get("expect")
+ expected_error = test.get("expect") # TODO: verify error
+ context = test.get("context", False)
+ options = test.get("option") or {}
+ if expectedpath:
+ yield category, testnum, inputpath, expectedpath, context, options
+
+def test_suite():
+ skiptests = unsupported_tests
+ if SKIP_KNOWN_BUGS:
+ skiptests += known_bugs
+ chdir(test_dir)
+ for cat, num, inputpath, expectedpath, context, options in read_manifest(skiptests):
+ if options:
+ if SKIP_1_0_TESTS and "specVersion" in options and str(options["specVersion"]).lower() == "json-ld-1.0":
+ # Skip the JSON v1.0 tests
+ continue
+ if inputpath.endswith(".jsonld"): # toRdf
+ if expectedpath.endswith(".jsonld"): # compact/expand/flatten
+ func = runner.do_test_json
+ else: # toRdf
+ func = runner.do_test_parser
+ else: # fromRdf
+ func = runner.do_test_serializer
+ yield func, TC_BASE, cat, num, inputpath, expectedpath, context, options
+
diff --git a/test/jsonld/test_testsuite.py b/test/jsonld/test_testsuite.py
new file mode 100644
index 00000000..4e20e1f8
--- /dev/null
+++ b/test/jsonld/test_testsuite.py
@@ -0,0 +1,168 @@
+from os import environ, chdir, path as p
+import json
+import rdflib
+import rdflib.plugins.parsers.jsonld as parser
+from . import runner
+
+
+unsupported_tests = ("frame", "normalize")
+unsupported_tests += (
+ "error",
+ "remote",
+)
+unsupported_tests += ("flatten", "compact", "expand")
+unsupported_tests += ("html",)
+
+known_bugs = (
+ # invalid nquads (bnode as predicate)
+ # "toRdf-0078-in", "toRdf-0108-in",
+ # TODO: Literal doesn't preserve representations
+ "fromRdf-0002-in",
+ "toRdf-0035-in",
+ "toRdf-0101-in",
+ "fromRdf-0008-in", # TODO: needs to disallow outer lists-of-lists
+ # "toRdf-0091-in", # TODO: multiple aliases version?
+ # TODO: check that these are corrected in 1.1 testsuite (1.0-deprecated prefix forms)
+ "toRdf-0088-in",
+ "toRdf-0118-in",
+)
+
+TC_BASE = "https://w3c.github.io/json-ld-api/tests/"
+allow_lists_of_lists = True
+
+
+testsuite_dir = environ.get("JSONLD_TESTSUITE") or p.join(
+ p.abspath(p.dirname(__file__)), "test-suite"
+)
+test_dir = p.join(testsuite_dir, "tests")
+if not p.isdir(test_dir): # layout of 1.1 testsuite
+ test_dir = testsuite_dir
+else:
+ TC_BASE = "http://json-ld.org/test-suite/tests/"
+ allow_lists_of_lists = False
+
+
+def read_manifest(skiptests):
+ f = open(p.join(testsuite_dir, "manifest.jsonld"), "r")
+ manifestdata = json.load(f)
+ f.close()
+ # context = manifestdata.get('context')
+ for m in manifestdata.get("sequence"):
+ if any(token in m for token in skiptests):
+ continue
+ f = open(p.join(testsuite_dir, m), "r")
+ md = json.load(f)
+ f.close()
+ for test in md.get("sequence"):
+ parts = test.get("input", "").split(".")[0]
+ cat_num, direction = parts.rsplit("-", 1)
+ category, testnum = (
+ cat_num.split("/") if "/" in cat_num else cat_num.split("-")
+ )
+ if (
+ test.get("input", "").split(".")[0] in skiptests
+ or category in skiptests
+ ):
+ pass
+ else:
+ inputpath = test.get("input")
+ expectedpath = test.get("expect")
+ expected_error = test.get("expect") # TODO: verify error
+ context = test.get("context", False)
+ options = test.get("option") or {}
+ if expectedpath:
+ yield category, testnum, inputpath, expectedpath, context, options
+
+
+def test_suite(skip_known_bugs=True):
+ default_allow = rdflib.plugins.parsers.jsonld.ALLOW_LISTS_OF_LISTS
+ rdflib.plugins.parsers.jsonld.ALLOW_LISTS_OF_LISTS = allow_lists_of_lists
+
+ skiptests = unsupported_tests
+ if skip_known_bugs:
+ skiptests += known_bugs
+ chdir(test_dir)
+ runner.DEFAULT_PARSER_VERSION = 1.0
+ for cat, num, inputpath, expectedpath, context, options in read_manifest(skiptests):
+ if inputpath.endswith(".jsonld"): # toRdf
+ if expectedpath.endswith(".jsonld"): # compact/expand/flatten
+ func = runner.do_test_json
+ else: # toRdf
+ func = runner.do_test_parser
+ else: # fromRdf
+ func = runner.do_test_serializer
+ # func.description = "%s-%s-%s" % (group, case)
+ yield func, TC_BASE, cat, num, inputpath, expectedpath, context, options
+
+ rdflib.plugins.parsers.jsonld.ALLOW_LISTS_OF_LISTS = default_allow
+
+
+if __name__ == "__main__":
+ import sys
+ from rdflib import *
+ from datetime import datetime
+
+ EARL = Namespace("http://www.w3.org/ns/earl#")
+ DC = Namespace("http://purl.org/dc/terms/")
+ FOAF = Namespace("http://xmlns.com/foaf/0.1/")
+ DOAP = Namespace("http://usefulinc.com/ns/doap#")
+
+ rdflib_jsonld_page = "https://github.com/RDFLib/rdflib-jsonld"
+ rdflib_jsonld = URIRef(rdflib_jsonld_page + "#it")
+
+ args = sys.argv[1:]
+ asserter = URIRef(args.pop(0)) if args else None
+ asserter_name = Literal(args.pop(0)) if args else None
+
+ graph = Graph()
+
+ graph.parse(
+ data="""
+ @prefix earl: <{EARL}> .
+ @prefix dc: <{DC}> .
+ @prefix foaf: <{FOAF}> .
+ @prefix doap: <{DOAP}> .
+
+ <{rdflib_jsonld}> a doap:Project, earl:TestSubject, earl:Software ;
+ doap:homepage <{rdflib_jsonld_page}> ;
+ doap:name "RDFLib-JSONLD" ;
+ doap:programming-language "Python" ;
+ doap:title "RDFLib plugin for JSON-LD " .
+ """.format(
+ **vars()
+ ),
+ format="turtle",
+ )
+
+ if asserter_name:
+ graph.add((asserter, RDF.type, FOAF.Person))
+ graph.add((asserter, FOAF.name, asserter_name))
+ graph.add((rdflib_jsonld, DOAP.developer, asserter))
+
+ for args in test_suite(skip_known_bugs=False):
+ try:
+ args[0](*args[1:])
+ success = True
+ except AssertionError:
+ success = False
+ assertion = graph.resource(BNode())
+ assertion.add(RDF.type, EARL.Assertion)
+ assertion.add(EARL.mode, EARL.automatic)
+ if asserter:
+ assertion.add(EARL.assertedBy, asserter)
+ assertion.add(EARL.subject, rdflib_jsonld)
+ assertion.add(
+ EARL.test,
+ URIRef(
+ "http://json-ld.org/test-suite/tests/{1}-manifest.jsonld#t{2}".format(
+ *args
+ )
+ ),
+ )
+ result = graph.resource(BNode())
+ assertion.add(EARL.result, result)
+ result.add(RDF.type, EARL.TestResult)
+ result.add(DC.date, Literal(datetime.utcnow()))
+ result.add(EARL.outcome, EARL.passed if success else EARL.failed)
+
+ graph.serialize(destination=sys.stdout)