Added compaction, expansion, framing and normalization tests. This included changing the context documents for compaction to be JSON-LD docs, not just the content of the @context key.
authorGregg Kellogg <gregg@kellogg-assoc.com>
Fri, 06 Jan 2012 17:27:50 -0800
changeset 316 beb95491702f
parent 315 2de002e99368
child 317 207f5f5f152f
Added compaction, expansion, framing and normalization tests. This included changing the context documents for compaction to be JSON-LD docs, not just the content of the @context key.
test-suite/tests/compact-0001-context.jsonld
test-suite/tests/compact-0001-in.jsonld
test-suite/tests/compact-0001-out.jsonld
test-suite/tests/compact-0002-context.jsonld
test-suite/tests/compact-0002-in.jsonld
test-suite/tests/compact-0002-out.jsonld
test-suite/tests/compact-0003-context.jsonld
test-suite/tests/compact-0003-in.jsonld
test-suite/tests/compact-0003-out.jsonld
test-suite/tests/compact-0004-context.jsonld
test-suite/tests/compact-0004-in.jsonld
test-suite/tests/compact-0004-out.jsonld
test-suite/tests/compact-0005-context.jsonld
test-suite/tests/compact-0005-in.jsonld
test-suite/tests/compact-0005-out.jsonld
test-suite/tests/compact-0006-context.jsonld
test-suite/tests/compact-0006-in.jsonld
test-suite/tests/compact-0006-out.jsonld
test-suite/tests/compact-0007-context.jsonld
test-suite/tests/compact-0007-in.jsonld
test-suite/tests/compact-0007-out.jsonld
test-suite/tests/compact-0008-context.jsonld
test-suite/tests/compact-0008-in.jsonld
test-suite/tests/compact-0008-out.jsonld
test-suite/tests/compact-0009-context.jsonld
test-suite/tests/compact-0009-in.jsonld
test-suite/tests/compact-0009-out.jsonld
test-suite/tests/compact-0010-context.jsonld
test-suite/tests/compact-0010-in.jsonld
test-suite/tests/compact-0010-out.jsonld
test-suite/tests/compact-manifest.jsonld
test-suite/tests/expand-0001-in.jsonld
test-suite/tests/expand-0001-out.jsonld
test-suite/tests/expand-0002-in.jsonld
test-suite/tests/expand-0002-out.jsonld
test-suite/tests/expand-0003-in.jsonld
test-suite/tests/expand-0003-out.jsonld
test-suite/tests/expand-0004-in.jsonld
test-suite/tests/expand-0004-out.jsonld
test-suite/tests/expand-0005-in.jsonld
test-suite/tests/expand-0005-out.jsonld
test-suite/tests/expand-0006-in.jsonld
test-suite/tests/expand-0006-out.jsonld
test-suite/tests/expand-0007-in.jsonld
test-suite/tests/expand-0007-out.jsonld
test-suite/tests/expand-0008-in.jsonld
test-suite/tests/expand-0008-out.jsonld
test-suite/tests/expand-0009-in.jsonld
test-suite/tests/expand-0009-out.jsonld
test-suite/tests/expand-manifest.jsonld
test-suite/tests/frame-0001-frame.jsonld
test-suite/tests/frame-0001-in.jsonld
test-suite/tests/frame-0001-out.jsonld
test-suite/tests/frame-0002-frame.jsonld
test-suite/tests/frame-0002-in.jsonld
test-suite/tests/frame-0002-out.jsonld
test-suite/tests/frame-0003-frame.jsonld
test-suite/tests/frame-0003-in.jsonld
test-suite/tests/frame-0003-out.jsonld
test-suite/tests/frame-0004-frame.jsonld
test-suite/tests/frame-0004-in.jsonld
test-suite/tests/frame-0004-out.jsonld
test-suite/tests/frame-0005-frame.jsonld
test-suite/tests/frame-0005-in.jsonld
test-suite/tests/frame-0005-out.jsonld
test-suite/tests/frame-0006-frame.jsonld
test-suite/tests/frame-0006-in.jsonld
test-suite/tests/frame-0006-out.jsonld
test-suite/tests/frame-0007-frame.jsonld
test-suite/tests/frame-0007-in.jsonld
test-suite/tests/frame-0007-out.jsonld
test-suite/tests/frame-0008-frame.jsonld
test-suite/tests/frame-0008-in.jsonld
test-suite/tests/frame-0008-out.jsonld
test-suite/tests/frame-0009-frame.jsonld
test-suite/tests/frame-0009-in.jsonld
test-suite/tests/frame-0009-out.jsonld
test-suite/tests/frame-0010-frame.jsonld
test-suite/tests/frame-0010-in.jsonld
test-suite/tests/frame-0010-out.jsonld
test-suite/tests/frame-0011-frame.jsonld
test-suite/tests/frame-0011-in.jsonld
test-suite/tests/frame-0011-out.jsonld
test-suite/tests/frame-0012-frame.jsonld
test-suite/tests/frame-0012-in.jsonld
test-suite/tests/frame-0012-out.jsonld
test-suite/tests/frame-0013-frame.jsonld
test-suite/tests/frame-0013-in.jsonld
test-suite/tests/frame-0013-out.jsonld
test-suite/tests/frame-0014-frame.jsonld
test-suite/tests/frame-0014-in.jsonld
test-suite/tests/frame-0014-out.jsonld
test-suite/tests/frame-0015-frame.jsonld
test-suite/tests/frame-0015-in.jsonld
test-suite/tests/frame-0015-out.jsonld
test-suite/tests/frame-manifest.jsonld
test-suite/tests/normalize-0001-in.jsonld
test-suite/tests/normalize-0001-out.jsonld
test-suite/tests/normalize-0002-in.jsonld
test-suite/tests/normalize-0002-out.jsonld
test-suite/tests/normalize-0003-in.jsonld
test-suite/tests/normalize-0003-out.jsonld
test-suite/tests/normalize-0004-in.jsonld
test-suite/tests/normalize-0004-out.jsonld
test-suite/tests/normalize-0005-in.jsonld
test-suite/tests/normalize-0005-out.jsonld
test-suite/tests/normalize-0006-in.jsonld
test-suite/tests/normalize-0006-out.jsonld
test-suite/tests/normalize-0007-in.jsonld
test-suite/tests/normalize-0007-out.jsonld
test-suite/tests/normalize-0008-in.jsonld
test-suite/tests/normalize-0008-out.jsonld
test-suite/tests/normalize-0009-in.jsonld
test-suite/tests/normalize-0009-out.jsonld
test-suite/tests/normalize-0010-in.jsonld
test-suite/tests/normalize-0010-out.jsonld
test-suite/tests/normalize-0011-in.jsonld
test-suite/tests/normalize-0011-out.jsonld
test-suite/tests/normalize-0012-in.jsonld
test-suite/tests/normalize-0012-out.jsonld
test-suite/tests/normalize-0013-in.jsonld
test-suite/tests/normalize-0013-out.jsonld
test-suite/tests/normalize-0014-in.jsonld
test-suite/tests/normalize-0014-out.jsonld
test-suite/tests/normalize-0015-in.jsonld
test-suite/tests/normalize-0015-out.jsonld
test-suite/tests/normalize-0016-in.jsonld
test-suite/tests/normalize-0016-out.jsonld
test-suite/tests/normalize-0017-in.jsonld
test-suite/tests/normalize-0017-out.jsonld
test-suite/tests/normalize-0018-in.jsonld
test-suite/tests/normalize-0018-out.jsonld
test-suite/tests/normalize-0019-in.jsonld
test-suite/tests/normalize-0019-out.jsonld
test-suite/tests/normalize-0020-in.jsonld
test-suite/tests/normalize-0020-out.jsonld
test-suite/tests/normalize-0021-in.jsonld
test-suite/tests/normalize-0021-out.jsonld
test-suite/tests/normalize-0022-in.jsonld
test-suite/tests/normalize-0022-out.jsonld
test-suite/tests/normalize-0023-in.jsonld
test-suite/tests/normalize-0023-out.jsonld
test-suite/tests/normalize-0024-in.jsonld
test-suite/tests/normalize-0024-out.jsonld
test-suite/tests/normalize-0025-in.jsonld
test-suite/tests/normalize-0025-out.jsonld
test-suite/tests/normalize-0026-in.jsonld
test-suite/tests/normalize-0026-out.jsonld
test-suite/tests/normalize-0027-in.jsonld
test-suite/tests/normalize-0027-out.jsonld
test-suite/tests/normalize-0028-in.jsonld
test-suite/tests/normalize-0028-out.jsonld
test-suite/tests/normalize-0029-in.jsonld
test-suite/tests/normalize-0029-out.jsonld
test-suite/tests/normalize-0030-in.jsonld
test-suite/tests/normalize-0030-out.jsonld
test-suite/tests/normalize-0031-in.jsonld
test-suite/tests/normalize-0031-out.jsonld
test-suite/tests/normalize-0032-in.jsonld
test-suite/tests/normalize-0032-out.jsonld
test-suite/tests/normalize-0033-in.jsonld
test-suite/tests/normalize-0033-out.jsonld
test-suite/tests/normalize-0034-in.jsonld
test-suite/tests/normalize-0034-out.jsonld
test-suite/tests/normalize-0035-in.jsonld
test-suite/tests/normalize-0035-out.jsonld
test-suite/tests/normalize-0036-in.jsonld
test-suite/tests/normalize-0036-out.jsonld
test-suite/tests/normalize-0037-in.jsonld
test-suite/tests/normalize-0037-out.jsonld
test-suite/tests/normalize-0038-in.jsonld
test-suite/tests/normalize-0038-out.jsonld
test-suite/tests/normalize-0039-in.jsonld
test-suite/tests/normalize-0039-out.jsonld
test-suite/tests/normalize-0040-in.jsonld
test-suite/tests/normalize-0040-out.jsonld
test-suite/tests/normalize-0041-in.jsonld
test-suite/tests/normalize-0041-out.jsonld
test-suite/tests/normalize-0042-in.jsonld
test-suite/tests/normalize-0042-out.jsonld
test-suite/tests/normalize-0043-in.jsonld
test-suite/tests/normalize-0043-out.jsonld
test-suite/tests/normalize-0044-in.jsonld
test-suite/tests/normalize-0044-out.jsonld
test-suite/tests/normalize-0045-in.jsonld
test-suite/tests/normalize-0045-out.jsonld
test-suite/tests/normalize-0046-in.jsonld
test-suite/tests/normalize-0046-out.jsonld
test-suite/tests/normalize-0047-in.jsonld
test-suite/tests/normalize-0047-out.jsonld
test-suite/tests/normalize-0048-in.jsonld
test-suite/tests/normalize-0048-out.jsonld
test-suite/tests/normalize-0049-in.jsonld
test-suite/tests/normalize-0049-out.jsonld
test-suite/tests/normalize-0050-in.jsonld
test-suite/tests/normalize-0050-out.jsonld
test-suite/tests/normalize-0051-in.jsonld
test-suite/tests/normalize-0051-out.jsonld
test-suite/tests/normalize-0052-in.jsonld
test-suite/tests/normalize-0052-out.jsonld
test-suite/tests/normalize-manifest.jsonld
test-suite/tests/rdf-0026.jsonld
test-suite/tests/rdf-0026.sparql
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0001-context.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,13 @@
+{
+  "@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/"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0001-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,27 @@
+{
+  "@id": [
+    {
+      "@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": "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": "http://example.org/test#chapter",
+        "http://purl.org/dc/elements/1.1/contributor": "Writer",
+        "http://purl.org/dc/elements/1.1/title": "My Book"
+      }
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0001-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,38 @@
+{
+  "@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/"
+  },
+  "@id": [
+    {
+      "@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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0002-context.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,6 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/terms/",
+    "ex": "http://example.org/test#"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0002-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,4 @@
+{
+  "@id": "http://example.org/test#thing",
+  "http://purl.org/dc/terms/title": "Title"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0002-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,8 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/terms/",
+    "ex": "http://example.org/test#"
+  },
+  "@id": "ex:thing",
+  "dc:title": "Title"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0003-context.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,9 @@
+{
+  "@context": {
+      "dc": "http://purl.org/dc/elements/1.1/",
+      "ex": "http://example.org/vocab#",
+      "ex:contains": {
+        "@type": "@id"
+      }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0003-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0003-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,12 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#",
+    "ex:contains": {
+      "@type": "@id"
+    }
+  },
+  "@id": "http://example.org/test#book",
+  "dc:title": "Title",
+  "ex:contains": "http://example.org/test#chapter"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0004-context.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,9 @@
+{
+  "@context": {
+    "ex": "http://example.org/test#",
+    "ex:int": {
+      "@type": "xsd:integer"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0004-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,7 @@
+{
+  "@id": "http://example.org/test",
+  "http://example.org/test#int": {
+    "@literal": "123",
+    "@type": "http://www.w3.org/2001/XMLSchema#integer"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0004-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,11 @@
+{
+  "@context": {
+    "ex": "http://example.org/test#",
+    "ex:int": {
+      "@type": "xsd:integer"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "http://example.org/test",
+  "ex:int": 123
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0005-context.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,12 @@
+{
+  "@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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0005-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,13 @@
+{
+  "@id": "http://example.org/test#example1",
+  "http://example.org/vocab#date": {
+    "@literal": "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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0005-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0006-context.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,5 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0006-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+{
+  "@id": "http://example.org/test",
+  "http://example.org/vocab#bool": {
+    "@literal": "true",
+    "@type": "http://www.w3.org/2001/XMLSchema#boolean"
+  },
+  "http://example.org/vocab#double": {
+    "@literal": "1.230000e+00",
+    "@type": "http://www.w3.org/2001/XMLSchema#double"
+  },
+  "http://example.org/vocab#double-zero": {
+    "@literal": "0.000000e+00",
+    "@type": "http://www.w3.org/2001/XMLSchema#double"
+  },
+  "http://example.org/vocab#int": {
+    "@literal": "123",
+    "@type": "http://www.w3.org/2001/XMLSchema#integer"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0006-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,10 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test",
+  "ex:bool": true,
+  "ex:double": 1.23,
+  "ex:double-zero": 0,
+  "ex:int": 123
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0007-context.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,15 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:bool": {
+      "@type": "xsd:boolean"
+    },
+    "ex:double": {
+      "@type": "xsd:double"
+    },
+    "ex:int": {
+      "@type": "xsd:integer"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0007-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+{
+  "@id": "http://example.org/test",
+  "http://example.org/vocab#bool": {
+    "@literal": "true",
+    "@type": "http://www.w3.org/2001/XMLSchema#boolean"
+  },
+  "http://example.org/vocab#double": {
+    "@literal": "1.230000e+00",
+    "@type": "http://www.w3.org/2001/XMLSchema#double"
+  },
+  "http://example.org/vocab#double-zero": {
+    "@literal": "0.000000e+00",
+    "@type": "http://www.w3.org/2001/XMLSchema#double"
+  },
+  "http://example.org/vocab#int": {
+    "@literal": "123",
+    "@type": "http://www.w3.org/2001/XMLSchema#integer"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0007-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,20 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:bool": {
+      "@type": "xsd:boolean"
+    },
+    "ex:double": {
+      "@type": "xsd:double"
+    },
+    "ex:int": {
+      "@type": "xsd:integer"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "http://example.org/test",
+  "ex:bool": true,
+  "ex:double": 1.23,
+  "ex:double-zero": 0,
+  "ex:int": 123
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0008-context.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,5 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0008-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,7 @@
+{
+  "@id": "http://example.org/test",
+  "http://example.org/vocab#test": {
+    "@language": "en",
+    "@literal": "test"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0008-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,10 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test",
+  "ex:test": {
+    "@language": "en",
+    "@literal": "test"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0009-context.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,9 @@
+{
+  "@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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0009-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,9 @@
+[
+  {
+    "http://xmlns.com/foaf/0.1/homepage": {
+      "@id": "http://john.doe.org/"
+    },
+    "http://xmlns.com/foaf/0.1/name": "John Doe"
+  },
+  {}
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0009-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,17 @@
+{
+  "@context": {
+    "homepage": {
+      "@id": "http://xmlns.com/foaf/0.1/homepage",
+      "@type": "@id"
+    },
+    "name": "http://xmlns.com/foaf/0.1/name"
+  },
+  "@id": [
+    {
+      "homepage": "http://john.doe.org/",
+      "name": "John Doe"
+    },
+    {
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0010-context.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,14 @@
+{
+  "@context": {
+    "http://example.org/test#property1": {
+      "@type": "uri"
+    },
+    "http://example.org/test#property2": {
+      "@type": "uri"
+    },
+    "http://example.org/test#property3": {
+      "@type": "uri"
+    },
+    "uri": "@id"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0010-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-0010-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,18 @@
+{
+  "@context": {
+    "http://example.org/test#property2": {
+      "@type": "uri"
+    },
+    "http://example.org/test#property3": {
+      "@type": "uri"
+    },
+    "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"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/compact-manifest.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,68 @@
+{
+   "@context": "http://json-ld.org/test-suite/context.jsonld",
+   "@id": "",
+   "@type": "jld:Manifest",
+   "rdfs:comment": "JSON-LD to Compaction tests use object compare",
+   "name": "compact",
+   "sequence": [{
+      "@type": ["test:TestCase", "jld:CompactTest"],
+      "name": "add context",
+      "input": "compact-0001-in.jsonld",
+      "context": "compact-0001-context.jsonld",
+      "expect": "compact-0001-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:CompactTest"],
+      "name": "reduced context",
+      "input": "compact-0002-in.jsonld",
+      "context": "compact-0002-context.jsonld",
+      "expect": "compact-0002-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:CompactTest"],
+      "name": "coerced ex:contains",
+      "input": "compact-0003-in.jsonld",
+      "context": "compact-0003-context.jsonld",
+      "expect": "compact-0003-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:CompactTest"],
+      "name": "with coerce",
+      "input": "compact-0004-in.jsonld",
+      "context": "compact-0004-context.jsonld",
+      "expect": "compact-0004-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:CompactTest"],
+      "name": "with date coerce",
+      "input": "compact-0005-in.jsonld",
+      "context": "compact-0005-context.jsonld",
+      "expect": "compact-0005-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:CompactTest"],
+      "name": "native types",
+      "input": "compact-0006-in.jsonld",
+      "context": "compact-0006-context.jsonld",
+      "expect": "compact-0006-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:CompactTest"],
+      "name": "native types with coerce",
+      "input": "compact-0007-in.jsonld",
+      "context": "compact-0007-context.jsonld",
+      "expect": "compact-0007-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:CompactTest"],
+      "name": "literal with language",
+      "input": "compact-0008-in.jsonld",
+      "context": "compact-0008-context.jsonld",
+      "expect": "compact-0008-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:CompactTest"],
+      "name": "disjoint graph as array",
+      "input": "compact-0009-in.jsonld",
+      "context": "compact-0009-context.jsonld",
+      "expect": "compact-0009-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:CompactTest"],
+      "name": "alias keywords",
+      "input": "compact-0010-in.jsonld",
+      "context": "compact-0010-context.jsonld",
+      "expect": "compact-0010-out.jsonld"
+   }]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0001-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,3 @@
+{
+  "@id": "http://example.org/test#example"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0001-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,3 @@
+{
+  "@id": "http://example.org/test#example"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0002-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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#"
+  },
+  "@id": [
+    {
+      "@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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0002-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,31 @@
+{
+  "@id": [
+    {
+      "@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": {
+          "@id": "http://example.org/test#chapter"
+        },
+        "http://purl.org/dc/elements/1.1/contributor": "Writer",
+        "http://purl.org/dc/elements/1.1/title": "My Book"
+      }
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0003-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0003-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0004-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0004-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,13 @@
+{
+  "@id": "http://example.org/test#example1",
+  "http://example.org/vocab#date": {
+    "@literal": "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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0005-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,16 @@
+{
+  "@context": {
+    "d": "http://purl.org/dc/elements/1.1/",
+    "e": "http://example.org/vocab#",
+    "e:double-zero": {
+      "@type": "xsd:double"
+    },
+    "f": "http://xmlns.com/foaf/0.1/",
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "http://example.org/test",
+  "e:bool": true,
+  "e:double": 1.23,
+  "e:double-zero": 0.0e0,
+  "e:int": 123
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0005-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+{
+  "@id": "http://example.org/test",
+  "http://example.org/vocab#bool": {
+    "@literal": "true",
+    "@type": "http://www.w3.org/2001/XMLSchema#boolean"
+  },
+  "http://example.org/vocab#double": {
+    "@literal": "1.23",
+    "@type": "http://www.w3.org/2001/XMLSchema#double"
+  },
+  "http://example.org/vocab#double-zero": {
+    "@literal": "0.0",
+    "@type": "http://www.w3.org/2001/XMLSchema#double"
+  },
+  "http://example.org/vocab#int": {
+    "@literal": "123",
+    "@type": "http://www.w3.org/2001/XMLSchema#integer"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0006-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,7 @@
+{
+  "@id": "http://example.org/test",
+  "http://example.org/test#int": {
+    "@literal": "123",
+    "@type": "http://www.w3.org/2001/XMLSchema#integer"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0006-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,7 @@
+{
+  "@id": "http://example.org/test",
+  "http://example.org/test#int": {
+    "@literal": "123",
+    "@type": "http://www.w3.org/2001/XMLSchema#integer"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0007-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,10 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test",
+  "ex:test": {
+    "@language": "en",
+    "@literal": "test"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0007-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,7 @@
+{
+  "@id": "http://example.org/test",
+  "http://example.org/vocab#test": {
+    "@language": "en",
+    "@literal": "test"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0008-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,20 @@
+{
+  "@context": {
+    "http://example.org/test#property1": {
+      "@type": "uri"
+    },
+    "http://example.org/test#property2": {
+      "@type": "uri"
+    },
+    "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"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0008-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0009-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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"
+    }
+  },
+  "@id": [
+    {
+      "@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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0009-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,31 @@
+{
+  "@id": [
+    {
+      "@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": {
+          "@id": "http://example.org/test#chapter"
+        },
+        "http://purl.org/dc/elements/1.1/contributor": "Writer",
+        "http://purl.org/dc/elements/1.1/title": "My Book"
+      }
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-manifest.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,53 @@
+{
+   "@context": "http://json-ld.org/test-suite/context.jsonld",
+   "@id": "",
+   "@type": "jld:Manifest",
+   "rdfs:comment": "JSON-LD to Expansion tests use object compare",
+   "name": "expand",
+   "sequence": [{
+      "@type": ["test:TestCase", "jld:ExpandTest"],
+      "name": "id",
+      "input": "expand-0001-in.jsonld",
+      "expect": "expand-0001-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:ExpandTest"],
+      "name": "complex",
+      "input": "expand-0002-in.jsonld",
+      "expect": "expand-0002-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:ExpandTest"],
+      "name": "coerced ex:contains",
+      "input": "expand-0003-in.jsonld",
+      "expect": "expand-0003-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:ExpandTest"],
+      "name": "remove type-coercion context",
+      "input": "expand-0004-in.jsonld",
+      "expect": "expand-0004-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:ExpandTest"],
+      "name": "native types",
+      "input": "expand-0005-in.jsonld",
+      "expect": "expand-0005-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:ExpandTest"],
+      "name": "native expanded type",
+      "input": "expand-0006-in.jsonld",
+      "expect": "expand-0006-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:ExpandTest"],
+      "name": "literal with language",
+      "input": "expand-0007-in.jsonld",
+      "expect": "expand-0007-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:ExpandTest"],
+      "name": "alias keywords",
+      "input": "expand-0008-in.jsonld",
+      "expect": "expand-0008-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:ExpandTest"],
+      "name": "terms",
+      "input": "expand-0009-in.jsonld",
+      "expect": "expand-0009-out.jsonld"
+   }]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0001-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,13 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@type": "ex:Library",
+  "ex:contains": {
+    "@type": "ex:Book",
+    "ex:contains": {
+      "@type": "ex:Chapter"
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0001-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,30 @@
+{
+  "@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": [
+    {
+      "@id": "http://example.org/test/#library",
+      "@type": "ex:Library",
+      "ex:contains": "http://example.org/test#book"
+    },
+    {
+      "@id": "http://example.org/test#book",
+      "@type": "ex:Book",
+      "dc:contributor": "Writer",
+      "dc:title": "My Book",
+      "ex:contains": "http://example.org/test#chapter"
+    },
+    {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0001-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,20 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test/#library",
+  "@type": "ex:Library",
+  "ex:contains": {
+    "@id": "http://example.org/test#book",
+    "@type": "ex:Book",
+    "dc:contributor": "Writer",
+    "dc:title": "My Book",
+    "ex:contains": {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0002-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,13 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@type": "ex:Library",
+  "ex:contains": {
+    "@type": "ex:Book",
+    "ex:contains": {
+      "@type": "ex:Chapter"
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0002-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,31 @@
+{
+  "@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": [
+    {
+      "@id": "http://example.org/test/#library",
+      "@type": "ex:Library",
+      "ex:contains": "http://example.org/test#book"
+    },
+    {
+      "@id": "http://example.org/test#book",
+      "@type": "ex:Book",
+      "dc:contributor": "Writer",
+      "dc:title": "My Book",
+      "ex:contains": "http://example.org/test#chapter"
+    },
+    {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One",
+      "ex:act": "ex:ActOne"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0002-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,21 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test/#library",
+  "@type": "ex:Library",
+  "ex:contains": {
+    "@id": "http://example.org/test#book",
+    "@type": "ex:Book",
+    "dc:contributor": "Writer",
+    "dc:title": "My Book",
+    "ex:contains": {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One",
+      "ex:act": "ex:ActOne"
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0003-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,7 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@type": "ex:DoesNotExist"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0003-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,30 @@
+{
+  "@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": [
+    {
+      "@id": "http://example.org/test/#library",
+      "@type": "ex:Library",
+      "ex:contains": "http://example.org/test#book"
+    },
+    {
+      "@id": "http://example.org/test#book",
+      "@type": "ex:Book",
+      "dc:contributor": "Writer",
+      "dc:title": "My Book",
+      "ex:contains": "http://example.org/test#chapter"
+    },
+    {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0003-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+null
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0004-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,10 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#",
+    "ex:contains": {
+      "@type": "@id"
+    }
+  },
+  "@type": "ex:Library"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0004-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,29 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#",
+    "ex:contains": {
+      "@type": "@id"
+    }
+  },
+  "@id": [
+    {
+      "@id": "http://example.org/test/#library",
+      "@type": "ex:Library",
+      "ex:contains": "http://example.org/test#book"
+    },
+    {
+      "@id": "http://example.org/test#book",
+      "@type": "ex:Book",
+      "dc:contributor": "Writer",
+      "dc:title": "My Book",
+      "ex:contains": "http://example.org/test#chapter"
+    },
+    {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0004-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,20 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test/#library",
+  "@type": "ex:Library",
+  "ex:contains": {
+    "@id": "http://example.org/test#book",
+    "@type": "ex:Book",
+    "dc:contributor": "Writer",
+    "dc:title": "My Book",
+    "ex:contains": {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0005-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@explicit": true,
+  "@type": "ex:Library",
+  "ex:contains": {
+    "@explicit": true,
+    "@type": "ex:Book",
+    "dc:title": {},
+    "ex:contains": {
+      "@explicit": true,
+      "@type": "ex:Chapter",
+      "dc:title": {},
+      "ex:null": {}
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0005-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,30 @@
+{
+  "@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": [
+    {
+      "@id": "http://example.org/test/#library",
+      "@type": "ex:Library",
+      "ex:contains": "http://example.org/test#book"
+    },
+    {
+      "@id": "http://example.org/test#book",
+      "@type": "ex:Book",
+      "dc:contributor": "Writer",
+      "dc:title": "My Book",
+      "ex:contains": "http://example.org/test#chapter"
+    },
+    {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0005-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test/#library",
+  "@type": "ex:Library",
+  "ex:contains": {
+    "@id": "http://example.org/test#book",
+    "@type": "ex:Book",
+    "dc:title": "My Book",
+    "ex:contains": {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:title": "Chapter One",
+      "ex:null": null
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0006-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,13 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@type": "ex:Library",
+  "ex:contains": {
+    "@type": "ex:Book",
+    "ex:contains": {
+      "@type": "ex:Chapter"
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0006-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,30 @@
+{
+  "@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": [
+    {
+      "@id": "http://example.org/test/#library",
+      "@type": "ex:Library",
+      "ex:contains": "http://example.org/test#book"
+    },
+    {
+      "@id": "http://example.org/test#book",
+      "@type": "ex:Book",
+      "dc:contributor": "Writer",
+      "dc:title": "My Book",
+      "ex:contains": "http://example.org/test#chapter"
+    },
+    {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0006-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,20 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test/#library",
+  "@type": "ex:Library",
+  "ex:contains": {
+    "@id": "http://example.org/test#book",
+    "@type": "ex:Book",
+    "dc:contributor": "Writer",
+    "dc:title": "My Book",
+    "ex:contains": {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0007-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,13 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@type": "ex:Library",
+  "ex:contains": {
+    "@type": "ex:Book",
+    "ex:contains": {
+      "@type": "ex:Chapter"
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0007-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,33 @@
+{
+  "@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": [
+    {
+      "@id": "http://example.org/test/#library",
+      "@type": [
+        "ex:Library",
+        "ex:Building"
+      ],
+      "ex:contains": "http://example.org/test#book"
+    },
+    {
+      "@id": "http://example.org/test#book",
+      "@type": "ex:Book",
+      "dc:contributor": "Writer",
+      "dc:title": "My Book",
+      "ex:contains": "http://example.org/test#chapter"
+    },
+    {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0007-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,23 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test/#library",
+  "@type": [
+    "ex:Library",
+    "ex:Building"
+  ],
+  "ex:contains": {
+    "@id": "http://example.org/test#book",
+    "@type": "ex:Book",
+    "dc:contributor": "Writer",
+    "dc:title": "My Book",
+    "ex:contains": {
+      "@id": "http://example.org/test#chapter",
+      "@type": "ex:Chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0008-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,14 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@type": "ex:Example",
+  "ex:embedded": [],
+  "ex:literal": [],
+  "ex:mixed": [
+    {
+      "@embed": false
+    }
+  ],
+  "ex:single": []
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0008-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,38 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": [
+    {
+      "@id": "http://example.org/test/#example",
+      "@type": "ex:Example",
+      "ex:embedded": {
+        "@id": "http://example.org/test#subject1"
+      },
+      "ex:literal": [
+        "str1",
+        "str2",
+        "str3"
+      ],
+      "ex:mixed": [
+        {
+          "@id": "http://example.org/test#iri1"
+        },
+        "literal1",
+        {
+          "@id": "http://example.org/test#iri2"
+        },
+        "literal2",
+        {
+          "@id": "http://example.org/test#subject2",
+          "ex:prop": "property"
+        }
+      ],
+      "ex:single": "single"
+    },
+    {
+      "@id": "http://example.org/test#subject1",
+      "ex:prop": "property"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0008-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,34 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test/#example",
+  "@type": "ex:Example",
+  "ex:embedded": [
+    {
+      "@id": "http://example.org/test#subject1",
+      "ex:prop": "property"
+    }
+  ],
+  "ex:literal": [
+    "str1",
+    "str2",
+    "str3"
+  ],
+  "ex:mixed": [
+    {
+      "@id": "http://example.org/test#iri1"
+    },
+    "literal1",
+    {
+      "@id": "http://example.org/test#iri2"
+    },
+    "literal2",
+    {
+      "@id": "http://example.org/test#subject2"
+    }
+  ],
+  "ex:single": [
+    "single"
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0009-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,27 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@type": "ex:Example1",
+  "ex:p2": {
+    "@default": "custom-default"
+  },
+  "ex:p3": {
+    "@default": 3
+  },
+  "ex:p4": {
+    "@omitDefault": true
+  },
+  "ex:p5": {},
+  "ex:p6": {
+    "@type": "ex:Example2",
+    "ex:p3": {
+      "@default": 4
+    }
+  },
+  "ex:p7": [
+    {
+      "@type": "ex:Example3"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0009-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": [
+    {
+      "@id": "http://example.org/test/#example1",
+      "@type": "ex:Example1",
+      "ex:p1": "non-default",
+      "ex:p6": {
+        "@id": "http://example.org/test/#example2"
+      }
+    },
+    {
+      "@id": "http://example.org/test/#example2",
+      "@type": "ex:Example2"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0009-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,17 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test/#example1",
+  "@type": "ex:Example1",
+  "ex:p1": "non-default",
+  "ex:p2": "custom-default",
+  "ex:p3": 3,
+  "ex:p5": null,
+  "ex:p6": {
+    "@id": "http://example.org/test/#example2",
+    "@type": "ex:Example2",
+    "ex:p3": 4
+  },
+  "ex:p7": []
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0010-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,13 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/terms/",
+    "dc:creator": {
+      "@type": "@id"
+    },
+    "foaf": "http://xmlns.com/foaf/0.1/",
+    "ps": "http://purl.org/payswarm#"
+  },
+  "@id": "http://example.com/asset",
+  "@type": "ps:Asset",
+  "dc:creator": {}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0010-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,15 @@
+{
+  "@context": {
+    "dc0": "http://purl.org/dc/terms/",
+    "dc:creator": {
+      "@type": "@id"
+    },
+    "foaf": "http://xmlns.com/foaf/0.1/",
+    "ps": "http://purl.org/payswarm#"
+  },
+  "@id": "http://example.com/asset",
+  "@type": "ps:Asset",
+  "dc:creator": {
+    "foaf:name": "John Doe"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0010-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,13 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/terms/",
+    "dc:creator": {
+      "@type": "@id"
+    },
+    "foaf": "http://xmlns.com/foaf/0.1/",
+    "ps": "http://purl.org/payswarm#"
+  },
+  "@id": "http://example.com/asset",
+  "@type": "ps:Asset",
+  "dc:creator": null
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0011-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,12 @@
+{
+  "@context": {
+    "ex": "http://www.example.com/#"
+  },
+  "@type": "ex:Thing",
+  "ex:embed": {
+    "@embed": true
+  },
+  "ex:noembed": {
+    "@embed": false
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0011-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,15 @@
+{
+  "@context": {
+    "ex": "http://www.example.com/#"
+  },
+  "@id": "ex:subject",
+  "@type": "ex:Thing",
+  "ex:embed": {
+    "@id": "ex:embedded",
+    "ex:title": "Embedded"
+  },
+  "ex:noembed": {
+    "@id": "ex:notembedded",
+    "ex:title": "Not Embedded"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0011-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,14 @@
+{
+  "@context": {
+    "ex": "http://www.example.com/#"
+  },
+  "@id": "ex:subject",
+  "@type": "ex:Thing",
+  "ex:embed": {
+    "@id": "ex:embedded",
+    "ex:title": "Embedded"
+  },
+  "ex:noembed": {
+    "@id": "ex:notembedded"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0012-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,11 @@
+[
+  {
+    "@context": {
+      "sp": "http://smartplatforms.org/terms#"
+    },
+    "@type": "http://smartplatforms.org/terms#Medication"
+  },
+  {
+    "@type": "http://smartplatforms.org/terms#Fulfillment"
+  }
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0012-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,20 @@
+{
+  "@id": [
+    {
+      "@id": "http://example.org/med-1",
+      "@type": "http://smartplatforms.org/terms#Medication",
+      "http://smartplatforms.org/terms#hasFulfillment": {
+        "@id": "http://example.org/fill-1"
+      },
+      "http://smartplatforms.org/terms#label": "Lisinopril"
+    },
+    {
+      "@id": "http://example.org/fill-1",
+      "@type": "http://smartplatforms.org/terms#Fulfillment",
+      "http://smartplatforms.org/terms#hasMedication": {
+        "@id": "http://example.org/med-1"
+      },
+      "http://smartplatforms.org/terms#label": "30 pills on 2/2/2011"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0012-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,24 @@
+[
+  {
+    "@context": {
+      "sp": "http://smartplatforms.org/terms#"
+    },
+    "@id": "http://example.org/med-1",
+    "@type": "sp:Medication",
+    "sp:hasFulfillment": {
+      "@id": "http://example.org/fill-1"
+    },
+    "sp:label": "Lisinopril"
+  },
+  {
+    "@context": {
+      "sp": "http://smartplatforms.org/terms#"
+    },
+    "@id": "http://example.org/fill-1",
+    "@type": "sp:Fulfillment",
+    "sp:hasMedication": {
+      "@id": "http://example.org/med-1"
+    },
+    "sp:label": "30 pills on 2/2/2011"
+  }
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0013-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0013-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,18 @@
+{
+  "@id": [
+    {
+      "@id": "looker",
+      "canSee": [
+        {
+          "@id": "forgotten"
+        },
+        {
+          "@id": "spotted"
+        }
+      ]
+    },
+    {
+      "@id": "spotted"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0013-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+[
+  {
+    "@id": "forgotten"
+  },
+  {
+    "@id": "looker",
+    "canSee": [
+      {
+        "@id": "forgotten"
+      },
+      {
+        "@id": "spotted"
+      }
+    ]
+  },
+  {
+    "@id": "spotted"
+  }
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0014-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,7 @@
+[
+  {
+    "@type": [
+      "Node"
+    ]
+  }
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0014-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,11 @@
+{
+  "@id": "a",
+  "@type": "Node",
+  "sees": {
+    "@id": "b",
+    "@type": "Node",
+    "sees": {
+      "remember_me": "This value should not disappear."
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0014-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,17 @@
+[
+  {
+    "@id": "a",
+    "@type": "Node",
+    "sees": {
+      "@id": "b"
+    }
+  },
+  {
+    "@id": "b",
+    "@type": "Node",
+    "sees": {
+      "@id": "_:c14n0",
+      "remember_me": "This value should not disappear."
+    }
+  }
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0015-frame.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,227 @@
+[
+  {
+    "@context": {
+      "api": "http://smartplatforms.org/terms/api#",
+      "dcterms": "http://purl.org/dc/terms/",
+      "foaf": "http://xmlns.com/foaf/0.1/",
+      "owl": "http://www.w3.org/2002/07/owl#",
+      "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+      "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+      "sp": "http://smartplatforms.org/terms#",
+      "sp:abnormalInterpretation": {
+        "@type": "@id"
+      },
+      "sp:address": {
+        "@type": "@id"
+      },
+      "sp:alertLevel": {
+        "@type": "@id"
+      },
+      "sp:allergicReaction": {
+        "@type": "@id"
+      },
+      "sp:allergyExclusionName": {
+        "@type": "@id"
+      },
+      "sp:belongsTo": {
+        "@type": "@id"
+      },
+      "sp:bloodPressure": {
+        "@type": "@id"
+      },
+      "sp:bodyMassIndex": {
+        "@type": "@id"
+      },
+      "sp:bodyPosition": {
+        "@type": "@id"
+      },
+      "sp:bodySite": {
+        "@type": "@id"
+      },
+      "sp:category": {
+        "@type": "@id"
+      },
+      "sp:code": {
+        "@type": "@id"
+      },
+      "sp:created": {
+        "@type": "@id"
+      },
+      "sp:denominator": {
+        "@type": "@id"
+      },
+      "sp:diastolic": {
+        "@type": "@id"
+      },
+      "sp:drugAllergen": {
+        "@type": "@id"
+      },
+      "sp:drugClass": {
+        "@type": "@id"
+      },
+      "sp:drugClassAllergen": {
+        "@type": "@id"
+      },
+      "sp:drugName": {
+        "@type": "@id"
+      },
+      "sp:encounter": {
+        "@type": "@id"
+      },
+      "sp:encounterType": {
+        "@type": "@id"
+      },
+      "sp:facility": {
+        "@type": "@id"
+      },
+      "sp:foodAllergen": {
+        "@type": "@id"
+      },
+      "sp:frequency": {
+        "@type": "@id"
+      },
+      "sp:fulfillment": {
+        "@type": "@id"
+      },
+      "sp:hasStatement": {
+        "@type": "@id"
+      },
+      "sp:heartRate": {
+        "@type": "@id"
+      },
+      "sp:height": {
+        "@type": "@id"
+      },
+      "sp:labName": {
+        "@type": "@id"
+      },
+      "sp:labResult": {
+        "@type": "@id"
+      },
+      "sp:labSpecimenCollected": {
+        "@type": "@id"
+      },
+      "sp:labStatus": {
+        "@type": "@id"
+      },
+      "sp:maximum": {
+        "@type": "@id"
+      },
+      "sp:medicalRecordNumber": {
+        "@type": "@id"
+      },
+      "sp:medication": {
+        "@type": "@id"
+      },
+      "sp:method": {
+        "@type": "@id"
+      },
+      "sp:minimum": {
+        "@type": "@id"
+      },
+      "sp:narrativeResult": {
+        "@type": "@id"
+      },
+      "sp:nominalResult": {
+        "@type": "@id"
+      },
+      "sp:nonCriticalRange": {
+        "@type": "@id"
+      },
+      "sp:normalRange": {
+        "@type": "@id"
+      },
+      "sp:numerator": {
+        "@type": "@id"
+      },
+      "sp:ordinalResult": {
+        "@type": "@id"
+      },
+      "sp:organization": {
+        "@type": "@id"
+      },
+      "sp:oxygenSaturation": {
+        "@type": "@id"
+      },
+      "sp:participant": {
+        "@type": "@id"
+      },
+      "sp:person": {
+        "@type": "@id"
+      },
+      "sp:pharmacy": {
+        "@type": "@id"
+      },
+      "sp:problemName": {
+        "@type": "@id"
+      },
+      "sp:provenance": {
+        "@type": "@id"
+      },
+      "sp:provider": {
+        "@type": "@id"
+      },
+      "sp:quantitativeResult": {
+        "@type": "@id"
+      },
+      "sp:quantity": {
+        "@type": "@id"
+      },
+      "sp:quantityDispensed": {
+        "@type": "@id"
+      },
+      "sp:respiratoryRate": {
+        "@type": "@id"
+      },
+      "sp:severity": {
+        "@type": "@id"
+      },
+      "sp:specimenCollected": {
+        "@type": "@id"
+      },
+      "sp:systolic": {
+        "@type": "@id"
+      },
+      "sp:temperature": {
+        "@type": "@id"
+      },
+      "sp:translationFidelity": {
+        "@type": "@id"
+      },
+      "sp:valueAndUnit": {
+        "@type": "@id"
+      },
+      "sp:vitalName": {
+        "@type": "@id"
+      },
+      "sp:weight": {
+        "@type": "@id"
+      },
+      "spcode": "http://smartplatforms.org/terms/codes/",
+      "vcard": "http://www.w3.org/2006/vcard/ns#",
+      "vcard:adr": {
+        "@type": "@id"
+      },
+      "vcard:n": {
+        "@type": "@id"
+      },
+      "vcard:tel": {
+        "@type": "@id"
+      }
+    },
+    "@type": [
+      "http://smartplatforms.org/terms#Statement",
+      "http://smartplatforms.org/terms#Fulfillment",
+      "http://smartplatforms.org/terms#Alert",
+      "http://smartplatforms.org/terms#AllergyExclusion",
+      "http://smartplatforms.org/terms#Demographics",
+      "http://smartplatforms.org/terms#Problem",
+      "http://smartplatforms.org/terms#Medication",
+      "http://smartplatforms.org/terms#VitalSigns",
+      "http://smartplatforms.org/terms#MedicalRecord",
+      "http://smartplatforms.org/terms#LabResult",
+      "http://smartplatforms.org/terms#Allergy",
+      "http://smartplatforms.org/terms#Encounter"
+    ]
+  }
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0015-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,70 @@
+[
+  {
+    "@id": "http://localhost:7000/records/999888",
+    "@type": "http://smartplatforms.org/terms#MedicalRecord"
+  },
+  {
+    "@id": "http://localhost:7000/records/999888",
+    "http://smartplatforms.org/terms#hasStatement": {
+      "@id": "http://localhost:7000/records/999888/vital_signs/c9ddca3e-3df8-4f13-9a16-eecd80aa8ff6"
+    }
+  },
+  {
+    "@id": "_:uDkkVEva509",
+    "@type": "http://smartplatforms.org/terms#VitalSign"
+  },
+  {
+    "@id": "_:uDkkVEva509",
+    "http://smartplatforms.org/terms#vitalName": {
+      "@id": "_:uDkkVEva510"
+    }
+  },
+  {
+    "@id": "_:uDkkVEva509",
+    "http://smartplatforms.org/terms#value": "111.226458141"
+  },
+  {
+    "@id": "_:uDkkVEva509",
+    "http://smartplatforms.org/terms#unit": "mm[Hg]"
+  },
+  {
+    "@id": "_:uDkkVEva508",
+    "@type": "http://smartplatforms.org/terms#BloodPressure"
+  },
+  {
+    "@id": "_:uDkkVEva508",
+    "http://smartplatforms.org/terms#systolic": {
+      "@id": "_:uDkkVEva509"
+    }
+  },
+  {
+    "@id": "http://localhost:7000/records/999888/vital_signs/c9ddca3e-3df8-4f13-9a16-eecd80aa8ff6",
+    "http://smartplatforms.org/terms#bloodPressure": {
+      "@id": "_:uDkkVEva508"
+    }
+  },
+  {
+    "@id": "http://localhost:7000/records/999888/vital_signs/c9ddca3e-3df8-4f13-9a16-eecd80aa8ff6",
+    "@type": "http://smartplatforms.org/terms#VitalSigns"
+  },
+  {
+    "@id": "http://localhost:7000/records/999888/vital_signs/c9ddca3e-3df8-4f13-9a16-eecd80aa8ff6",
+    "http://smartplatforms.org/terms#belongsTo": {
+      "@id": "http://localhost:7000/records/999888"
+    }
+  },
+  {
+    "@id": "_:uDkkVEva510",
+    "http://purl.org/dc/terms/title": "Systolic blood pressure"
+  },
+  {
+    "@id": "_:uDkkVEva510",
+    "@type": "http://smartplatforms.org/terms#CodedValue"
+  },
+  {
+    "@id": "_:uDkkVEva510",
+    "http://smartplatforms.org/terms#code": {
+      "@id": "http://loinc.org/codes/8480-6"
+    }
+  }
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-0015-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,44 @@
+[
+  {
+    "@context": {
+      "sp": "http://smartplatforms.org/terms#",
+      "sp:hasStatement": {
+        "@type": "@id"
+      }
+    },
+    "@id": "http://localhost:7000/records/999888",
+    "@type": "sp:MedicalRecord",
+    "sp:hasStatement": "http://localhost:7000/records/999888/vital_signs/c9ddca3e-3df8-4f13-9a16-eecd80aa8ff6"
+  },
+  {
+    "@context": {
+      "dcterms": "http://purl.org/dc/terms/",
+      "sp": "http://smartplatforms.org/terms#",
+      "sp:belongsTo": {
+        "@type": "@id"
+      },
+      "sp:code": {
+        "@type": "@id"
+      }
+    },
+    "@id": "http://localhost:7000/records/999888/vital_signs/c9ddca3e-3df8-4f13-9a16-eecd80aa8ff6",
+    "@type": "sp:VitalSigns",
+    "sp:belongsTo": "http://localhost:7000/records/999888",
+    "sp:bloodPressure": {
+      "@id": "_:c14n0",
+      "@type": "sp:BloodPressure",
+      "sp:systolic": {
+        "@id": "_:c14n2",
+        "@type": "sp:VitalSign",
+        "sp:unit": "mm[Hg]",
+        "sp:value": "111.226458141",
+        "sp:vitalName": {
+          "@id": "_:c14n1",
+          "@type": "sp:CodedValue",
+          "dcterms:title": "Systolic blood pressure",
+          "sp:code": "http://loinc.org/codes/8480-6"
+        }
+      }
+    }
+  }
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/frame-manifest.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,98 @@
+{
+   "@context": "http://json-ld.org/test-suite/context.jsonld",
+   "@id": "",
+   "@type": "jld:Manifest",
+   "rdfs:comment": "JSON-LD to Framing tests use object compare",
+   "name": "frame",
+   "sequence": [{
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "simple",
+      "input": "frame-0001-in.jsonld",
+      "frame": "frame-0001-frame.jsonld",
+      "expect": "frame-0001-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "reframe w/extra CURIE value",
+      "input": "frame-0002-in.jsonld",
+      "frame": "frame-0002-frame.jsonld",
+      "expect": "frame-0002-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "reframe (null)",
+      "input": "frame-0003-in.jsonld",
+      "frame": "frame-0003-frame.jsonld",
+      "expect": "frame-0003-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "reframe (type)",
+      "input": "frame-0004-in.jsonld",
+      "frame": "frame-0004-frame.jsonld",
+      "expect": "frame-0004-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "reframe (explicit)",
+      "input": "frame-0005-in.jsonld",
+      "frame": "frame-0005-frame.jsonld",
+      "expect": "frame-0005-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "reframe (non-explicit)",
+      "input": "frame-0006-in.jsonld",
+      "frame": "frame-0006-frame.jsonld",
+      "expect": "frame-0006-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "input has multiple types",
+      "input": "frame-0007-in.jsonld",
+      "frame": "frame-0007-frame.jsonld",
+      "expect": "frame-0007-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "array framing cases",
+      "input": "frame-0008-in.jsonld",
+      "frame": "frame-0008-frame.jsonld",
+      "expect": "frame-0008-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "default value",
+      "input": "frame-0009-in.jsonld",
+      "frame": "frame-0009-frame.jsonld",
+      "expect": "frame-0009-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "property CURIE conflict",
+      "input": "frame-0010-in.jsonld",
+      "frame": "frame-0010-frame.jsonld",
+      "expect": "frame-0010-out.jsonld"
+   }, {  
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "@embed",
+      "input": "frame-0011-in.jsonld",
+      "frame": "frame-0011-frame.jsonld",
+      "expect": "frame-0011-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "Array frame",
+      "input": "frame-0012-in.jsonld",
+      "frame": "frame-0012-frame.jsonld",
+      "expect": "frame-0012-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "Replace existing embed",
+      "input": "frame-0013-in.jsonld",
+      "frame": "frame-0013-frame.jsonld",
+      "expect": "frame-0013-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "Replace existing embed on 2nd pass",
+      "input": "frame-0014-in.jsonld",
+      "frame": "frame-0014-frame.jsonld",
+      "expect": "frame-0014-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:FrameTest"],
+      "name": "Replace deeply-nested embed",
+      "input": "frame-0015-in.jsonld",
+      "frame": "frame-0015-frame.jsonld",
+      "expect": "frame-0015-out.jsonld"
+   }]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0001-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,3 @@
+{
+  "@id": "http://example.org/test#example"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0001-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test#example"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0002-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,14 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test#example1",
+  "ex:p": [
+    {
+      "@id": "http://example.org/test#example2"
+    },
+    {
+      "@id": "http://example.org/test#example2"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0002-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test#example1","http://example.org/vocab#p":{"@id":"http://example.org/test#example2"}},{"@id":"http://example.org/test#example2"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0003-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,6 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@type": "ex:Foo"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0003-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","@type":"http://example.org/vocab#Foo"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0004-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,9 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@type": "ex:Foo",
+  "ex:embed": {
+    "@id": "http://example.org/test#example"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0004-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","@type":"http://example.org/vocab#Foo","http://example.org/vocab#embed":{"@id":"http://example.org/test#example"}},{"@id":"http://example.org/test#example"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0005-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,10 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test#example",
+  "@type": "ex:Foo",
+  "ex:embed": {
+    "@type": "ex:Bar"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0005-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","@type":"http://example.org/vocab#Bar"},{"@id":"http://example.org/test#example","@type":"http://example.org/vocab#Foo","http://example.org/vocab#embed":{"@id":"_:c14n0"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0006-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,10 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test#example",
+  "@type": [
+    "ex:Foo",
+    "ex:Bar"
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0006-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test#example","@type":["http://example.org/vocab#Foo","http://example.org/vocab#Bar"]}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0007-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,12 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:foo": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "http://example.org/test#example",
+  "@type": "ex:Foo",
+  "ex:foo": "ex:Bar"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0007-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test#example","@type":"http://example.org/vocab#Foo","http://example.org/vocab#foo":{"@id":"http://example.org/vocab#Bar"}},{"@id":"http://example.org/vocab#Bar"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0008-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,20 @@
+{
+  "@context": {
+    "dc": "http://purl.org/dc/elements/1.1/",
+    "ex": "http://example.org/vocab#",
+    "ex:contains": {
+      "@type": "@id"
+    }
+  },
+  "@id": "http://example.org/test#library",
+  "ex:contains": {
+    "@id": "http://example.org/test#book",
+    "dc:contributor": "Writer",
+    "dc:title": "My Book",
+    "ex:contains": {
+      "@id": "http://example.org/test#chapter",
+      "dc:description": "Fun",
+      "dc:title": "Chapter One"
+    }
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0008-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@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":"Writer","http://purl.org/dc/elements/1.1/title":"My Book"},{"@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#library","http://example.org/vocab#contains":{"@id":"http://example.org/test#book"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0009-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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#"
+  },
+  "@id": [
+    {
+      "@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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0009-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@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":"Writer","http://purl.org/dc/elements/1.1/title":"My Book"},{"@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"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0010-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,11 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:validFrom": {
+      "@type": "xsd:dateTime"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "http://example.org/test#example",
+  "ex:validFrom": "2011-01-25T00:00:00+0000"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0010-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test#example","http://example.org/vocab#validFrom":{"@literal":"2011-01-25T00:00:00+0000","@type":"http://www.w3.org/2001/XMLSchema#dateTime"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0011-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,11 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:validFrom": {
+      "@type": "xsd:dateTime"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "http://example.org/test#example",
+  "ex:validFrom": "2011-01-25T00:00:00Z"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0011-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test#example","http://example.org/vocab#validFrom":{"@literal":"2011-01-25T00:00:00Z","@type":"http://www.w3.org/2001/XMLSchema#dateTime"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0012-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,14 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:date": {
+      "@type": "xsd:dateTime"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "http://example.org/test#example",
+  "ex:date": [
+    "2011-01-25T00:00:00Z",
+    "2011-01-25T00:00:00Z"
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0012-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test#example","http://example.org/vocab#date":[{"@literal":"2011-01-25T00:00:00Z","@type":"http://www.w3.org/2001/XMLSchema#dateTime"},{"@literal":"2011-01-25T00:00:00Z","@type":"http://www.w3.org/2001/XMLSchema#dateTime"}]}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0013-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0013-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test#example1","http://example.org/vocab#date":{"@literal":"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"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0014-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,16 @@
+{
+  "@context": {
+    "d": "http://purl.org/dc/elements/1.1/",
+    "e": "http://example.org/vocab#",
+    "e:double-zero": {
+      "@type": "xsd:double"
+    },
+    "f": "http://xmlns.com/foaf/0.1/",
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "http://example.org/test",
+  "e:bool": true,
+  "e:double": 1.23,
+  "e:double-zero": 0,
+  "e:int": 123
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0014-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test","http://example.org/vocab#bool":{"@literal":"true","@type":"http://www.w3.org/2001/XMLSchema#boolean"},"http://example.org/vocab#double":{"@literal":"1.230000e+00","@type":"http://www.w3.org/2001/XMLSchema#double"},"http://example.org/vocab#double-zero":{"@literal":"0.000000e+00","@type":"http://www.w3.org/2001/XMLSchema#double"},"http://example.org/vocab#int":{"@literal":"123","@type":"http://www.w3.org/2001/XMLSchema#integer"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0015-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,13 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#"
+  },
+  "@id": [
+    {
+      "@id": "e:A"
+    },
+    {
+      "@id": "e:B"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0015-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/vocab#A"},{"@id":"http://example.org/vocab#B"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0016-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,18 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:B": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "http://example.org/test",
+  "e:A": {
+    "@id": "_:b1"
+  },
+  "e:B": "_:b1",
+  "e:embed": {
+    "@id": "_:b1",
+    "name": "foo"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0016-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","name":"foo"},{"@id":"http://example.org/test","http://example.org/vocab#A":{"@id":"_:c14n0"},"http://example.org/vocab#B":{"@id":"_:c14n0"},"http://example.org/vocab#embed":{"@id":"_:c14n0"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0017-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,20 @@
+[
+  {
+    "@context": {
+      "e": "http://example.org/vocab#",
+      "e:B": {
+        "@type": "@id"
+      },
+      "xsd": "http://www.w3.org/2001/XMLSchema#"
+    },
+    "@id": "http://example.org/test",
+    "e:A": {
+      "@id": "_:b1"
+    },
+    "e:B": "_:b1"
+  },
+  {
+    "@id": "_:b1",
+    "name": "foo"
+  }
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0017-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","name":"foo"},{"@id":"http://example.org/test","http://example.org/vocab#A":{"@id":"_:c14n0"},"http://example.org/vocab#B":{"@id":"_:c14n0"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0018-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,11 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:self": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "_:b0",
+  "e:self": "_:b0"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0018-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#self":{"@id":"_:c14n0"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0019-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:self": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b0",
+      "e:self": "_:b0"
+    },
+    {
+      "@id": "_:b1",
+      "e:self": "_:b1"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0019-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#self":{"@id":"_:c14n0"}},{"@id":"_:c14n1","http://example.org/vocab#self":{"@id":"_:c14n1"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0020-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,33 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:A": {
+      "@type": "@id"
+    },
+    "e:B": {
+      "@type": "@id"
+    },
+    "e:next": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "e:test",
+      "e:A": "_:b1",
+      "e:B": "_:b2"
+    },
+    {
+      "@id": "_:b1",
+      "e:next": "_:b3"
+    },
+    {
+      "@id": "_:b2",
+      "e:next": "_:b3"
+    },
+    {
+      "@id": "_:b3"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0020-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0"},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#next":{"@id":"_:c14n0"}},{"@id":"http://example.org/vocab#test","http://example.org/vocab#A":{"@id":"_:c14n1"},"http://example.org/vocab#B":{"@id":"_:c14n2"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0021-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:next": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "e:next": "_:b2"
+    },
+    {
+      "@id": "_:b2",
+      "e:next": "_:b1"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0021-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#next":{"@id":"_:c14n1"}},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n0"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0022-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,24 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:next": {
+      "@type": "@id"
+    },
+    "e:prev": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "e:next": "_:b2",
+      "e:prev": "_:b2"
+    },
+    {
+      "@id": "_:b2",
+      "e:next": "_:b1",
+      "e:prev": "_:b1"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0022-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#next":{"@id":"_:c14n1"},"http://example.org/vocab#prev":{"@id":"_:c14n1"}},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n0"},"http://example.org/vocab#prev":{"@id":"_:c14n0"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0023-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,23 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:next": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "e:next": "_:b2"
+    },
+    {
+      "@id": "_:b2",
+      "e:next": "_:b3"
+    },
+    {
+      "@id": "_:b3",
+      "e:next": "_:b1"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0023-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#next":{"@id":"_:c14n1"}},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n2"}},{"@id":"_:c14n2","http://example.org/vocab#next":{"@id":"_:c14n0"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0024-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,29 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:next": {
+      "@type": "@id"
+    },
+    "e:prev": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "e:next": "_:b2",
+      "e:prev": "_:b3"
+    },
+    {
+      "@id": "_:b2",
+      "e:next": "_:b3",
+      "e:prev": "_:b1"
+    },
+    {
+      "@id": "_:b3",
+      "e:next": "_:b1",
+      "e:prev": "_:b2"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0024-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#next":{"@id":"_:c14n1"},"http://example.org/vocab#prev":{"@id":"_:c14n2"}},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n2"},"http://example.org/vocab#prev":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#next":{"@id":"_:c14n0"},"http://example.org/vocab#prev":{"@id":"_:c14n1"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0025-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,29 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:next": {
+      "@type": "@id"
+    },
+    "e:prev": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "e:next": "_:b2",
+      "e:prev": "_:b3"
+    },
+    {
+      "@id": "_:b3",
+      "e:next": "_:b1",
+      "e:prev": "_:b2"
+    },
+    {
+      "@id": "_:b2",
+      "e:next": "_:b3",
+      "e:prev": "_:b1"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0025-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#next":{"@id":"_:c14n1"},"http://example.org/vocab#prev":{"@id":"_:c14n2"}},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n2"},"http://example.org/vocab#prev":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#next":{"@id":"_:c14n0"},"http://example.org/vocab#prev":{"@id":"_:c14n1"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0026-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,29 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:next": {
+      "@type": "@id"
+    },
+    "e:prev": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b2",
+      "e:next": "_:b3",
+      "e:prev": "_:b1"
+    },
+    {
+      "@id": "_:b1",
+      "e:next": "_:b2",
+      "e:prev": "_:b3"
+    },
+    {
+      "@id": "_:b3",
+      "e:next": "_:b1",
+      "e:prev": "_:b2"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0026-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#next":{"@id":"_:c14n1"},"http://example.org/vocab#prev":{"@id":"_:c14n2"}},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n2"},"http://example.org/vocab#prev":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#next":{"@id":"_:c14n0"},"http://example.org/vocab#prev":{"@id":"_:c14n1"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0027-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,29 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:next": {
+      "@type": "@id"
+    },
+    "e:prev": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b2",
+      "e:next": "_:b3",
+      "e:prev": "_:b1"
+    },
+    {
+      "@id": "_:b3",
+      "e:next": "_:b1",
+      "e:prev": "_:b2"
+    },
+    {
+      "@id": "_:b1",
+      "e:next": "_:b2",
+      "e:prev": "_:b3"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0027-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#next":{"@id":"_:c14n1"},"http://example.org/vocab#prev":{"@id":"_:c14n2"}},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n2"},"http://example.org/vocab#prev":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#next":{"@id":"_:c14n0"},"http://example.org/vocab#prev":{"@id":"_:c14n1"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0028-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,29 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:next": {
+      "@type": "@id"
+    },
+    "e:prev": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b3",
+      "e:next": "_:b1",
+      "e:prev": "_:b2"
+    },
+    {
+      "@id": "_:b2",
+      "e:next": "_:b3",
+      "e:prev": "_:b1"
+    },
+    {
+      "@id": "_:b1",
+      "e:next": "_:b2",
+      "e:prev": "_:b3"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0028-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#next":{"@id":"_:c14n1"},"http://example.org/vocab#prev":{"@id":"_:c14n2"}},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n2"},"http://example.org/vocab#prev":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#next":{"@id":"_:c14n0"},"http://example.org/vocab#prev":{"@id":"_:c14n1"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0029-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,29 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:next": {
+      "@type": "@id"
+    },
+    "e:prev": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b3",
+      "e:next": "_:b1",
+      "e:prev": "_:b2"
+    },
+    {
+      "@id": "_:b1",
+      "e:next": "_:b2",
+      "e:prev": "_:b3"
+    },
+    {
+      "@id": "_:b2",
+      "e:next": "_:b3",
+      "e:prev": "_:b1"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0029-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#next":{"@id":"_:c14n1"},"http://example.org/vocab#prev":{"@id":"_:c14n2"}},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n2"},"http://example.org/vocab#prev":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#next":{"@id":"_:c14n0"},"http://example.org/vocab#prev":{"@id":"_:c14n1"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0030-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,38 @@
+{
+  "@context": {
+    "e": "http://example.org/vocab#",
+    "e:A": {
+      "@type": "@id"
+    },
+    "e:B": {
+      "@type": "@id"
+    },
+    "e:C": {
+      "@type": "@id"
+    },
+    "e:next": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "e:test",
+      "e:A": "_:b1",
+      "e:B": "_:b2",
+      "e:C": "_:b3"
+    },
+    {
+      "@id": "_:b1",
+      "e:next": "_:b2"
+    },
+    {
+      "@id": "_:b2",
+      "e:next": "_:b3"
+    },
+    {
+      "@id": "_:b3",
+      "e:next": "_:b1"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0030-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#next":{"@id":"_:c14n1"}},{"@id":"_:c14n1","http://example.org/vocab#next":{"@id":"_:c14n2"}},{"@id":"_:c14n2","http://example.org/vocab#next":{"@id":"_:c14n0"}},{"@id":"http://example.org/vocab#test","http://example.org/vocab#A":{"@id":"_:c14n0"},"http://example.org/vocab#B":{"@id":"_:c14n1"},"http://example.org/vocab#C":{"@id":"_:c14n2"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0031-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,7 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "_:a",
+  "@type": "ex:Foo"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0031-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","@type":"http://example.org/vocab#Foo"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0032-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,7 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "_:b",
+  "@type": "ex:Foo"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0032-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","@type":"http://example.org/vocab#Foo"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0033-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": [
+    {
+      "@id": "_:a0",
+      "ex:prop": {
+        "@id": "_:a1"
+      }
+    },
+    {
+      "@id": "_:b0",
+      "ex:prop": {
+        "@id": "_:b1"
+      }
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0033-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0"},{"@id":"_:c14n1","http://example.org/vocab#prop":{"@id":"_:c14n0"}},{"@id":"_:c14n2"},{"@id":"_:c14n3","http://example.org/vocab#prop":{"@id":"_:c14n2"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0034-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,19 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": [
+    {
+      "@id": "_:b0",
+      "ex:prop": {
+        "@id": "_:b1"
+      }
+    },
+    {
+      "@id": "_:a0",
+      "ex:prop": {
+        "@id": "_:a1"
+      }
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0034-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0"},{"@id":"_:c14n1","http://example.org/vocab#prop":{"@id":"_:c14n0"}},{"@id":"_:c14n2"},{"@id":"_:c14n3","http://example.org/vocab#prop":{"@id":"_:c14n2"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0035-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,27 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:p1": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:a1",
+      "ex:p1": "_:a3"
+    },
+    {
+      "@id": "_:a2",
+      "ex:p1": "_:a4"
+    },
+    {
+      "@id": "_:a3",
+      "ex:p2": "Foo"
+    },
+    {
+      "@id": "_:a4",
+      "ex:p2": "Foo"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0035-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#p1":{"@id":"_:c14n1"}},{"@id":"_:c14n1","http://example.org/vocab#p2":"Foo"},{"@id":"_:c14n2","http://example.org/vocab#p1":{"@id":"_:c14n3"}},{"@id":"_:c14n3","http://example.org/vocab#p2":"Foo"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0036-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,27 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:p1": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:a1",
+      "ex:p1": "_:a4"
+    },
+    {
+      "@id": "_:a2",
+      "ex:p1": "_:a3"
+    },
+    {
+      "@id": "_:a3",
+      "ex:p2": "Foo"
+    },
+    {
+      "@id": "_:a4",
+      "ex:p2": "Foo"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0036-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#p1":{"@id":"_:c14n1"}},{"@id":"_:c14n1","http://example.org/vocab#p2":"Foo"},{"@id":"_:c14n2","http://example.org/vocab#p1":{"@id":"_:c14n3"}},{"@id":"_:c14n3","http://example.org/vocab#p2":"Foo"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0037-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,27 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:p1": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "ex:p1": "_:b4"
+    },
+    {
+      "@id": "_:b2",
+      "ex:p1": "_:b3"
+    },
+    {
+      "@id": "_:b3",
+      "ex:p2": "Foo"
+    },
+    {
+      "@id": "_:b4",
+      "ex:p2": "Foo"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0037-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#p1":{"@id":"_:c14n1"}},{"@id":"_:c14n1","http://example.org/vocab#p2":"Foo"},{"@id":"_:c14n2","http://example.org/vocab#p1":{"@id":"_:c14n3"}},{"@id":"_:c14n3","http://example.org/vocab#p2":"Foo"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0038-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,28 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:p1": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:a0",
+      "ex:p1": [
+        "_:a1",
+        "_:a2"
+      ]
+    },
+    {
+      "@id": "_:a1",
+      "ex:p1": "_:a3"
+    },
+    {
+      "@id": "_:a2"
+    },
+    {
+      "@id": "_:a3"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0038-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0"},{"@id":"_:c14n1","http://example.org/vocab#p1":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#p1":[{"@id":"_:c14n1"},{"@id":"_:c14n3"}]},{"@id":"_:c14n3"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0039-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,22 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:p1": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b0",
+      "ex:p1": [
+        {},
+        "_:b2"
+      ]
+    },
+    {
+      "@id": "_:b2",
+      "ex:p1": {}
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0039-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0"},{"@id":"_:c14n1","http://example.org/vocab#p1":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#p1":[{"@id":"_:c14n1"},{"@id":"_:c14n3"}]},{"@id":"_:c14n3"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0040-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,33 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:p1": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "ex:p1": "_:b2"
+    },
+    {
+      "@id": "_:b2",
+      "ex:p1": "_:b3"
+    },
+    {
+      "@id": "_:b3"
+    },
+    {
+      "@id": "_:c1",
+      "ex:p1": "_:c2"
+    },
+    {
+      "@id": "_:c2",
+      "ex:p1": "_:c3"
+    },
+    {
+      "@id": "_:c3"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0040-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0"},{"@id":"_:c14n1","http://example.org/vocab#p1":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#p1":{"@id":"_:c14n1"}},{"@id":"_:c14n3"},{"@id":"_:c14n4","http://example.org/vocab#p1":{"@id":"_:c14n3"}},{"@id":"_:c14n5","http://example.org/vocab#p1":{"@id":"_:c14n4"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0041-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,33 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:p1": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "ex:p1": "_:b2"
+    },
+    {
+      "@id": "_:b2",
+      "ex:p1": "_:b3"
+    },
+    {
+      "@id": "_:b3"
+    },
+    {
+      "@id": "_:b4",
+      "ex:p1": "_:b5"
+    },
+    {
+      "@id": "_:b5",
+      "ex:p1": "_:b6"
+    },
+    {
+      "@id": "_:b6"
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0041-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0"},{"@id":"_:c14n1","http://example.org/vocab#p1":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#p1":{"@id":"_:c14n1"}},{"@id":"_:c14n3"},{"@id":"_:c14n4","http://example.org/vocab#p1":{"@id":"_:c14n3"}},{"@id":"_:c14n5","http://example.org/vocab#p1":{"@id":"_:c14n4"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0042-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,27 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#",
+    "ex:p1": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "ex:p1": "_:b3"
+    },
+    {
+      "@id": "_:b3",
+      "ex:p1": {}
+    },
+    {
+      "@id": "_:b5",
+      "ex:p1": "_:b6"
+    },
+    {
+      "@id": "_:b6",
+      "ex:p1": {}
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0042-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0"},{"@id":"_:c14n1","http://example.org/vocab#p1":{"@id":"_:c14n0"}},{"@id":"_:c14n2","http://example.org/vocab#p1":{"@id":"_:c14n1"}},{"@id":"_:c14n3"},{"@id":"_:c14n4","http://example.org/vocab#p1":{"@id":"_:c14n3"}},{"@id":"_:c14n5","http://example.org/vocab#p1":{"@id":"_:c14n4"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0043-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,10 @@
+{
+  "@context": {
+    "ex": "http://example.org/vocab#"
+  },
+  "@id": "http://example.org/test",
+  "ex:test": {
+    "@language": "en",
+    "@literal": "test"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0043-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test","http://example.org/vocab#test":{"@language":"en","@literal":"test"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0044-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,107 @@
+{
+  "@context": {
+    "eg": "http://example.org/vocab#",
+    "eg:p": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "eg:p": [
+        "_:b2",
+        "_:b4",
+        "_:b3"
+      ]
+    },
+    {
+      "@id": "_:b2",
+      "eg:p": [
+        "_:b1",
+        "_:b3",
+        "_:b5"
+      ]
+    },
+    {
+      "@id": "_:b3",
+      "eg:p": [
+        "_:b1",
+        "_:b2",
+        "_:b6"
+      ]
+    },
+    {
+      "@id": "_:b4",
+      "eg:p": [
+        "_:b1",
+        "_:b5",
+        "_:b6"
+      ]
+    },
+    {
+      "@id": "_:b5",
+      "eg:p": [
+        "_:b2",
+        "_:b4",
+        "_:b6"
+      ]
+    },
+    {
+      "@id": "_:b6",
+      "eg:p": [
+        "_:b3",
+        "_:b4",
+        "_:b5"
+      ]
+    },
+    {
+      "@id": "_:c1",
+      "eg:p": [
+        "_:c4",
+        "_:c5",
+        "_:c6"
+      ]
+    },
+    {
+      "@id": "_:c2",
+      "eg:p": [
+        "_:c4",
+        "_:c5",
+        "_:c6"
+      ]
+    },
+    {
+      "@id": "_:c3",
+      "eg:p": [
+        "_:c4",
+        "_:c5",
+        "_:c6"
+      ]
+    },
+    {
+      "@id": "_:c4",
+      "eg:p": [
+        "_:c1",
+        "_:c2",
+        "_:c3"
+      ]
+    },
+    {
+      "@id": "_:c5",
+      "eg:p": [
+        "_:c1",
+        "_:c2",
+        "_:c3"
+      ]
+    },
+    {
+      "@id": "_:c6",
+      "eg:p": [
+        "_:c1",
+        "_:c2",
+        "_:c3"
+      ]
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0044-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#p":[{"@id":"_:c14n1"},{"@id":"_:c14n2"},{"@id":"_:c14n3"}]},{"@id":"_:c14n1","http://example.org/vocab#p":[{"@id":"_:c14n0"},{"@id":"_:c14n2"},{"@id":"_:c14n4"}]},{"@id":"_:c14n10","http://example.org/vocab#p":[{"@id":"_:c14n7"},{"@id":"_:c14n8"},{"@id":"_:c14n9"}]},{"@id":"_:c14n11","http://example.org/vocab#p":[{"@id":"_:c14n7"},{"@id":"_:c14n8"},{"@id":"_:c14n9"}]},{"@id":"_:c14n2","http://example.org/vocab#p":[{"@id":"_:c14n0"},{"@id":"_:c14n1"},{"@id":"_:c14n5"}]},{"@id":"_:c14n3","http://example.org/vocab#p":[{"@id":"_:c14n0"},{"@id":"_:c14n4"},{"@id":"_:c14n5"}]},{"@id":"_:c14n4","http://example.org/vocab#p":[{"@id":"_:c14n1"},{"@id":"_:c14n3"},{"@id":"_:c14n5"}]},{"@id":"_:c14n5","http://example.org/vocab#p":[{"@id":"_:c14n2"},{"@id":"_:c14n3"},{"@id":"_:c14n4"}]},{"@id":"_:c14n6","http://example.org/vocab#p":[{"@id":"_:c14n7"},{"@id":"_:c14n8"},{"@id":"_:c14n9"}]},{"@id":"_:c14n7","http://example.org/vocab#p":[{"@id":"_:c14n10"},{"@id":"_:c14n11"},{"@id":"_:c14n6"}]},{"@id":"_:c14n8","http://example.org/vocab#p":[{"@id":"_:c14n10"},{"@id":"_:c14n11"},{"@id":"_:c14n6"}]},{"@id":"_:c14n9","http://example.org/vocab#p":[{"@id":"_:c14n10"},{"@id":"_:c14n11"},{"@id":"_:c14n6"}]}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0045-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,107 @@
+{
+  "@context": {
+    "eg": "http://example.org/vocab#",
+    "eg:p": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:c1",
+      "eg:p": [
+        "_:c4",
+        "_:c5",
+        "_:c6"
+      ]
+    },
+    {
+      "@id": "_:c2",
+      "eg:p": [
+        "_:c4",
+        "_:c5",
+        "_:c6"
+      ]
+    },
+    {
+      "@id": "_:c3",
+      "eg:p": [
+        "_:c4",
+        "_:c5",
+        "_:c6"
+      ]
+    },
+    {
+      "@id": "_:c4",
+      "eg:p": [
+        "_:c1",
+        "_:c2",
+        "_:c3"
+      ]
+    },
+    {
+      "@id": "_:c5",
+      "eg:p": [
+        "_:c1",
+        "_:c2",
+        "_:c3"
+      ]
+    },
+    {
+      "@id": "_:c6",
+      "eg:p": [
+        "_:c1",
+        "_:c2",
+        "_:c3"
+      ]
+    },
+    {
+      "@id": "_:b1",
+      "eg:p": [
+        "_:b2",
+        "_:b4",
+        "_:b3"
+      ]
+    },
+    {
+      "@id": "_:b2",
+      "eg:p": [
+        "_:b1",
+        "_:b3",
+        "_:b5"
+      ]
+    },
+    {
+      "@id": "_:b3",
+      "eg:p": [
+        "_:b1",
+        "_:b2",
+        "_:b6"
+      ]
+    },
+    {
+      "@id": "_:b4",
+      "eg:p": [
+        "_:b1",
+        "_:b5",
+        "_:b6"
+      ]
+    },
+    {
+      "@id": "_:b5",
+      "eg:p": [
+        "_:b2",
+        "_:b4",
+        "_:b6"
+      ]
+    },
+    {
+      "@id": "_:b6",
+      "eg:p": [
+        "_:b3",
+        "_:b4",
+        "_:b5"
+      ]
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0045-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#p":[{"@id":"_:c14n1"},{"@id":"_:c14n2"},{"@id":"_:c14n3"}]},{"@id":"_:c14n1","http://example.org/vocab#p":[{"@id":"_:c14n0"},{"@id":"_:c14n2"},{"@id":"_:c14n4"}]},{"@id":"_:c14n10","http://example.org/vocab#p":[{"@id":"_:c14n7"},{"@id":"_:c14n8"},{"@id":"_:c14n9"}]},{"@id":"_:c14n11","http://example.org/vocab#p":[{"@id":"_:c14n7"},{"@id":"_:c14n8"},{"@id":"_:c14n9"}]},{"@id":"_:c14n2","http://example.org/vocab#p":[{"@id":"_:c14n0"},{"@id":"_:c14n1"},{"@id":"_:c14n5"}]},{"@id":"_:c14n3","http://example.org/vocab#p":[{"@id":"_:c14n0"},{"@id":"_:c14n4"},{"@id":"_:c14n5"}]},{"@id":"_:c14n4","http://example.org/vocab#p":[{"@id":"_:c14n1"},{"@id":"_:c14n3"},{"@id":"_:c14n5"}]},{"@id":"_:c14n5","http://example.org/vocab#p":[{"@id":"_:c14n2"},{"@id":"_:c14n3"},{"@id":"_:c14n4"}]},{"@id":"_:c14n6","http://example.org/vocab#p":[{"@id":"_:c14n7"},{"@id":"_:c14n8"},{"@id":"_:c14n9"}]},{"@id":"_:c14n7","http://example.org/vocab#p":[{"@id":"_:c14n10"},{"@id":"_:c14n11"},{"@id":"_:c14n6"}]},{"@id":"_:c14n8","http://example.org/vocab#p":[{"@id":"_:c14n10"},{"@id":"_:c14n11"},{"@id":"_:c14n6"}]},{"@id":"_:c14n9","http://example.org/vocab#p":[{"@id":"_:c14n10"},{"@id":"_:c14n11"},{"@id":"_:c14n6"}]}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0046-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,107 @@
+{
+  "@context": {
+    "eg": "http://example.org/vocab#",
+    "eg:p": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b6",
+      "eg:p": [
+        "_:b3",
+        "_:b4",
+        "_:b5"
+      ]
+    },
+    {
+      "@id": "_:c1",
+      "eg:p": [
+        "_:c6",
+        "_:c5",
+        "_:c4"
+      ]
+    },
+    {
+      "@id": "_:b1",
+      "eg:p": [
+        "_:b3",
+        "_:b4",
+        "_:b2"
+      ]
+    },
+    {
+      "@id": "_:c4",
+      "eg:p": [
+        "_:c3",
+        "_:c2",
+        "_:c1"
+      ]
+    },
+    {
+      "@id": "_:c5",
+      "eg:p": [
+        "_:c1",
+        "_:c2",
+        "_:c3"
+      ]
+    },
+    {
+      "@id": "_:c6",
+      "eg:p": [
+        "_:c3",
+        "_:c1",
+        "_:c2"
+      ]
+    },
+    {
+      "@id": "_:b2",
+      "eg:p": [
+        "_:b1",
+        "_:b5",
+        "_:b3"
+      ]
+    },
+    {
+      "@id": "_:c2",
+      "eg:p": [
+        "_:c6",
+        "_:c5",
+        "_:c4"
+      ]
+    },
+    {
+      "@id": "_:b5",
+      "eg:p": [
+        "_:b6",
+        "_:b4",
+        "_:b2"
+      ]
+    },
+    {
+      "@id": "_:b3",
+      "eg:p": [
+        "_:b6",
+        "_:b2",
+        "_:b1"
+      ]
+    },
+    {
+      "@id": "_:b4",
+      "eg:p": [
+        "_:b5",
+        "_:b1",
+        "_:b6"
+      ]
+    },
+    {
+      "@id": "_:c3",
+      "eg:p": [
+        "_:c5",
+        "_:c4",
+        "_:c6"
+      ]
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0046-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#p":[{"@id":"_:c14n1"},{"@id":"_:c14n2"},{"@id":"_:c14n3"}]},{"@id":"_:c14n1","http://example.org/vocab#p":[{"@id":"_:c14n0"},{"@id":"_:c14n2"},{"@id":"_:c14n4"}]},{"@id":"_:c14n10","http://example.org/vocab#p":[{"@id":"_:c14n7"},{"@id":"_:c14n8"},{"@id":"_:c14n9"}]},{"@id":"_:c14n11","http://example.org/vocab#p":[{"@id":"_:c14n7"},{"@id":"_:c14n8"},{"@id":"_:c14n9"}]},{"@id":"_:c14n2","http://example.org/vocab#p":[{"@id":"_:c14n0"},{"@id":"_:c14n1"},{"@id":"_:c14n5"}]},{"@id":"_:c14n3","http://example.org/vocab#p":[{"@id":"_:c14n0"},{"@id":"_:c14n4"},{"@id":"_:c14n5"}]},{"@id":"_:c14n4","http://example.org/vocab#p":[{"@id":"_:c14n1"},{"@id":"_:c14n3"},{"@id":"_:c14n5"}]},{"@id":"_:c14n5","http://example.org/vocab#p":[{"@id":"_:c14n2"},{"@id":"_:c14n3"},{"@id":"_:c14n4"}]},{"@id":"_:c14n6","http://example.org/vocab#p":[{"@id":"_:c14n7"},{"@id":"_:c14n8"},{"@id":"_:c14n9"}]},{"@id":"_:c14n7","http://example.org/vocab#p":[{"@id":"_:c14n10"},{"@id":"_:c14n11"},{"@id":"_:c14n6"}]},{"@id":"_:c14n8","http://example.org/vocab#p":[{"@id":"_:c14n10"},{"@id":"_:c14n11"},{"@id":"_:c14n6"}]},{"@id":"_:c14n9","http://example.org/vocab#p":[{"@id":"_:c14n10"},{"@id":"_:c14n11"},{"@id":"_:c14n6"}]}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0047-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,49 @@
+{
+  "@context": {
+    "eg": "http://example.org/vocab#",
+    "eg:p": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:b1",
+      "eg:p": [
+        "_:b2"
+      ]
+    },
+    {
+      "@id": "_:b2",
+      "eg:p": [
+        "_:b3"
+      ]
+    },
+    {
+      "@id": "_:b3",
+      "eg:z": [
+        "foo1",
+        "foo2"
+      ]
+    },
+    {
+      "@id": "_:c1",
+      "eg:p": [
+        "_:c2"
+      ]
+    },
+    {
+      "@id": "_:c2",
+      "eg:p": [
+        "_:c3"
+      ]
+    },
+    {
+      "@id": "_:c3",
+      "eg:z": [
+        "bar1",
+        "bar2"
+      ]
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0047-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#p":{"@id":"_:c14n1"}},{"@id":"_:c14n1","http://example.org/vocab#p":{"@id":"_:c14n2"}},{"@id":"_:c14n2","http://example.org/vocab#z":["bar1","bar2"]},{"@id":"_:c14n3","http://example.org/vocab#p":{"@id":"_:c14n4"}},{"@id":"_:c14n4","http://example.org/vocab#p":{"@id":"_:c14n5"}},{"@id":"_:c14n5","http://example.org/vocab#z":["foo1","foo2"]}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0048-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,49 @@
+{
+  "@context": {
+    "eg": "http://example.org/vocab#",
+    "eg:p": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": [
+    {
+      "@id": "_:c1",
+      "eg:p": [
+        "_:c2"
+      ]
+    },
+    {
+      "@id": "_:c2",
+      "eg:p": [
+        "_:c3"
+      ]
+    },
+    {
+      "@id": "_:c3",
+      "eg:z": [
+        "bar1",
+        "bar2"
+      ]
+    },
+    {
+      "@id": "_:b1",
+      "eg:p": [
+        "_:b2"
+      ]
+    },
+    {
+      "@id": "_:b2",
+      "eg:p": [
+        "_:b3"
+      ]
+    },
+    {
+      "@id": "_:b3",
+      "eg:z": [
+        "foo1",
+        "foo2"
+      ]
+    }
+  ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0048-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","http://example.org/vocab#p":{"@id":"_:c14n1"}},{"@id":"_:c14n1","http://example.org/vocab#p":{"@id":"_:c14n2"}},{"@id":"_:c14n2","http://example.org/vocab#z":["bar1","bar2"]},{"@id":"_:c14n3","http://example.org/vocab#p":{"@id":"_:c14n4"}},{"@id":"_:c14n4","http://example.org/vocab#p":{"@id":"_:c14n5"}},{"@id":"_:c14n5","http://example.org/vocab#z":["foo1","foo2"]}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0049-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,11 @@
+{
+  "@context": {
+    "eg": "http://example.org/vocab#",
+    "eg:p": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "http://example.org/test#example",
+  "eg:p": null
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0049-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test#example"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0050-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,20 @@
+{
+  "@context": {
+    "eg": "http://example.org/vocab#",
+    "eg:p": {
+      "@type": "@id"
+    },
+    "xsd": "http://www.w3.org/2001/XMLSchema#"
+  },
+  "@id": "_:c1",
+  "eg:array": [
+    "value",
+    null
+  ],
+  "eg:doc": "Test 'null' in various locations",
+  "eg:null": null,
+  "eg:object": {
+    "prop1": "value1",
+    "prop2": null
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0050-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"_:c14n0","prop1":"value1"},{"@id":"_:c14n1","http://example.org/vocab#array":"value","http://example.org/vocab#doc":"Test 'null' in various locations","http://example.org/vocab#object":{"@id":"_:c14n0"}}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0051-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,14 @@
+[
+  {
+    "@id": "http://example.org/test#example",
+    "http://example.org/test#property": "object1"
+  },
+  {
+    "@id": "http://example.org/test#example",
+    "http://example.org/test#property": "object2"
+  },
+  {
+    "@id": "http://example.org/test#example",
+    "http://example.org/test#property": "object3"
+  }
+]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0051-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@id":"http://example.org/test#example","http://example.org/test#property":["object1","object2","object3"]}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0052-in.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,20 @@
+{
+  "@context": {
+    "http://example.org/test#property1": {
+      "@type": "uri"
+    },
+    "http://example.org/test#property2": {
+      "@type": "uri"
+    },
+    "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"
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-0052-out.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,1 @@
+[{"@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":"foo"},{"@id":"http://example.org/test#example3"},{"@id":"http://example.org/test#example4"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/normalize-manifest.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,268 @@
+{
+   "@context": "http://json-ld.org/test-suite/context.jsonld",
+   "@id": "",
+   "@type": "jld:Manifest",
+   "rdfs:comment": "JSON-LD to Expansion tests use object compare",
+   "name": "normalize",
+   "sequence": [{
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "simple id",
+      "input": "normalize-0001-in.jsonld",
+      "expect": "normalize-0001-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "duplicate property iri values",
+      "input": "normalize-0002-in.jsonld",
+      "expect": "normalize-0002-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "bnode",
+      "input": "normalize-0003-in.jsonld",
+      "expect": "normalize-0003-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "bnode plus embed w/subject",
+      "input": "normalize-0004-in.jsonld",
+      "expect": "normalize-0004-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "bnode embed",
+      "input": "normalize-0005-in.jsonld",
+      "expect": "normalize-0005-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "multiple rdf types",
+      "input": "normalize-0006-in.jsonld",
+      "expect": "normalize-0006-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "coerce CURIE value",
+      "input": "normalize-0007-in.jsonld",
+      "expect": "normalize-0007-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "single subject complex",
+      "input": "normalize-0008-in.jsonld",
+      "expect": "normalize-0008-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "multiple subjects - complex",
+      "input": "normalize-0009-in.jsonld",
+      "expect": "normalize-0009-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "type",
+      "input": "normalize-0010-in.jsonld",
+      "expect": "normalize-0010-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "type-coerced type",
+      "input": "normalize-0011-in.jsonld",
+      "expect": "normalize-0011-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "type-coerced type, double reference",
+      "input": "normalize-0012-in.jsonld",
+      "expect": "normalize-0012-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "type-coerced type, cycle",
+      "input": "normalize-0013-in.jsonld",
+      "expect": "normalize-0013-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "check types",
+      "input": "normalize-0014-in.jsonld",
+      "expect": "normalize-0014-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "top level context",
+      "input": "normalize-0015-in.jsonld",
+      "expect": "normalize-0015-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - dual link - embed",
+      "input": "normalize-0016-in.jsonld",
+      "expect": "normalize-0016-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - dual link - non-embed",
+      "input": "normalize-0017-in.jsonld",
+      "expect": "normalize-0017-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - self link",
+      "input": "normalize-0018-in.jsonld",
+      "expect": "normalize-0018-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - disjoint self links",
+      "input": "normalize-0019-in.jsonld",
+      "expect": "normalize-0019-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - diamond",
+      "input": "normalize-0020-in.jsonld",
+      "expect": "normalize-0020-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - circle of 2",
+      "input": "normalize-0021-in.jsonld",
+      "expect": "normalize-0021-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - double circle of 2",
+      "input": "normalize-0022-in.jsonld",
+      "expect": "normalize-0022-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - circle of 3",
+      "input": "normalize-0023-in.jsonld",
+      "expect": "normalize-0023-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - double circle of 3 (1-2-3)",
+      "input": "normalize-0024-in.jsonld",
+      "expect": "normalize-0024-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - double circle of 3 (1-3-2)",
+      "input": "normalize-0025-in.jsonld",
+      "expect": "normalize-0025-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - double circle of 3 (2-1-3)",
+      "input": "normalize-0026-in.jsonld",
+      "expect": "normalize-0026-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - double circle of 3 (2-3-1)",
+      "input": "normalize-0027-in.jsonld",
+      "expect": "normalize-0027-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - double circle of 3 (3-2-1)",
+      "input": "normalize-0028-in.jsonld",
+      "expect": "normalize-0028-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - double circle of 3 (3-1-2)",
+      "input": "normalize-0029-in.jsonld",
+      "expect": "normalize-0029-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "blank node - point at circle of 3",
+      "input": "normalize-0030-in.jsonld",
+      "expect": "normalize-0030-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "bnode (1)",
+      "input": "normalize-0031-in.jsonld",
+      "expect": "normalize-0031-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "bnode (2)",
+      "input": "normalize-0032-in.jsonld",
+      "expect": "normalize-0032-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "disjoint identical subgraphs (1)",
+      "input": "normalize-0033-in.jsonld",
+      "expect": "normalize-0033-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "disjoint identical subgraphs (2)",
+      "input": "normalize-0034-in.jsonld",
+      "expect": "normalize-0034-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "reordered w/strings (1)",
+      "input": "normalize-0035-in.jsonld",
+      "expect": "normalize-0035-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "reordered w/strings (2)",
+      "input": "normalize-0036-in.jsonld",
+      "expect": "normalize-0036-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "reordered w/strings (3)",
+      "input": "normalize-0037-in.jsonld",
+      "expect": "normalize-0037-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "reordered 4 bnodes, reordered 2 properties (1)",
+      "input": "normalize-0038-in.jsonld",
+      "expect": "normalize-0038-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "reordered 4 bnodes, reordered 2 properties (2)",
+      "input": "normalize-0039-in.jsonld",
+      "expect": "normalize-0039-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "reordered 6 bnodes (1)",
+      "input": "normalize-0040-in.jsonld",
+      "expect": "normalize-0040-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "reordered 6 bnodes (2)",
+      "input": "normalize-0041-in.jsonld",
+      "expect": "normalize-0041-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "reordered 6 bnodes (3)",
+      "input": "normalize-0042-in.jsonld",
+      "expect": "normalize-0042-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "literal with language",
+      "input": "normalize-0043-in.jsonld",
+      "expect": "normalize-0043-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "evil (1)",
+      "input": "normalize-0044-in.jsonld",
+      "expect": "normalize-0044-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "evil (2)",
+      "input": "normalize-0045-in.jsonld",
+      "expect": "normalize-0045-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "evil (3)",
+      "input": "normalize-0046-in.jsonld",
+      "expect": "normalize-0046-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "deep diff (1)",
+      "input": "normalize-0047-in.jsonld",
+      "expect": "normalize-0047-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "deep diff (2)",
+      "input": "normalize-0048-in.jsonld",
+      "expect": "normalize-0048-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "remove null",
+      "input": "normalize-0049-in.jsonld",
+      "expect": "normalize-0049-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "nulls",
+      "input": "normalize-0050-in.jsonld",
+      "expect": "normalize-0050-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "merging subjects",
+      "input": "normalize-0051-in.jsonld",
+      "expect": "normalize-0051-out.jsonld"
+   }, {
+      "@type": ["test:TestCase", "jld:NormalizeTest"],
+      "name": "alias keywords",
+      "input": "normalize-0052-in.jsonld",
+      "expect": "normalize-0052-out.jsonld"
+   }]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/rdf-0026.jsonld	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,4 @@
+{
+  "@context": {"rdfs": "http://www.w3.org/2000/01/rdf-schema#"},
+  "@type": ["rdfs:Resource", "rdfs:Class"]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/rdf-0026.sparql	Fri Jan 06 17:27:50 2012 -0800
@@ -0,0 +1,5 @@
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+
+ASK WHERE {
+  [a rdfs:Resource, rdfs:Class]
+}