Updates to test suite structure and RDF tests.
authorGregg Kellogg <gregg@kellogg-assoc.com>
Wed, 04 Jan 2012 18:41:22 -0800
changeset 312 a5905a24b297
parent 311 6fc868a50cea
child 313 80382516e914
Updates to test suite structure and RDF tests.
spec/latest/json-ld-api/index.html
test-suite/README
test-suite/context.jsonld
test-suite/index.html
test-suite/manifest.jsonld
test-suite/tests/rdf-0001.jsonld
test-suite/tests/rdf-0002.jsonld
test-suite/tests/rdf-0003.jsonld
test-suite/tests/rdf-0005.jsonld
test-suite/tests/rdf-0005.sparql
test-suite/tests/rdf-0006.jsonld
test-suite/tests/rdf-0007.jsonld
test-suite/tests/rdf-0008.jsonld
test-suite/tests/rdf-0009.jsonld
test-suite/tests/rdf-0010.jsonld
test-suite/tests/rdf-0010.sparql
test-suite/tests/rdf-0011.jsonld
test-suite/tests/rdf-0011.sparql
test-suite/tests/rdf-0012.jsonld
test-suite/tests/rdf-0013.jsonld
test-suite/tests/rdf-0014.jsonld
test-suite/tests/rdf-0015.jsonld
test-suite/tests/rdf-0016.jsonld
test-suite/tests/rdf-0017.jsonld
test-suite/tests/rdf-0017.sparql
test-suite/tests/rdf-0018.jsonld
test-suite/tests/rdf-0019.jsonld
test-suite/tests/rdf-0019.sparql
test-suite/tests/rdf-0020.jsonld
test-suite/tests/rdf-0025.jsonld
test-suite/tests/rdf-manifest.jsonld
--- a/spec/latest/json-ld-api/index.html	Wed Jan 04 16:09:22 2012 -0800
+++ b/spec/latest/json-ld-api/index.html	Wed Jan 04 18:41:22 2012 -0800
@@ -492,7 +492,7 @@
          <dt>INVALID_SYNTAX</dt>
          <dd>A general syntax error was detected in the <code>@context</code>.
          For example, if a <code>@type</code> key maps to anything other than
-         a string or an array of strings, this exception would be raised.</dd>
+         <code>@id</code> or an absolute IRI, this exception would be raised.</dd>
          <dt>LOAD_ERROR</dt>
          <dd>There was a problem encountered loading a remote context.</dd>
         </dl>
@@ -517,7 +517,7 @@
           <dt>INVALID_SYNTAX</dt>
           <dd>A general syntax error was detected in the <code>@context</code>.
             For example, if a <code>@type</code> key maps to anything other than
-            a string or an array of strings, this exception would be raised.</dd>
+            <code>@id</code> or an absolute IRI, this exception would be raised.</dd>
           <dt>LOAD_ERROR</dt>
           <dd>There was a problem encountered loading a remote context.</dd>
         </dl>
@@ -580,7 +580,7 @@
           <dt>INVALID_SYNTAX</dt>
           <dd>A general syntax error was detected in the <code>@context</code>.
             For example, if a <code>@type</code> key maps to anything other than
-            a string or an array of strings, this exception would be raised.</dd>
+            <code>@id</code> or an absolute IRI, this exception would be raised.</dd>
           <dt>LOAD_ERROR</dt>
           <dd>There was a problem encountered loading a remote context.</dd>
         </dl>
--- a/test-suite/README	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/README	Wed Jan 04 18:41:22 2012 -0800
@@ -1,7 +1,7 @@
 Introduction
 ------------
 
-The JSON-LD Test Suite is a set of Web Services, markup and tests that can 
+The JSON-LD Test Suite is a set of tests that can 
 be used to verify JSON-LD Processor conformance to the set of specifications
 that constitute JSON-LD. The goal of the suite is to provide an easy and 
 comprehensive JSON-LD testing solution for developers creating JSON-LD Processors.
@@ -9,25 +9,22 @@
 Design
 ------
 
-The JSON-LD Test suite allows developers to mix and match JSON-LD test manifests, 
-JSON-LD processor endpoints and SPARQL endpoints. Processing happens in the
-following order:
-
-JSON-LD Test Manifest -> JSON-LD Test Suite -> JSON-LD processor -> SPARQL endpoint
+Tests are defined into _compact_, _expand_, _frame_, _normalize_, and _rdf_ sections:
+* _compact_ tests have _input_, _expected_ and _context_ documents. The _expected_ results
+  can be compared using JSON object comparison with the processor output.
+* _expand_ tests have _input_ and _expected_ documents. The _expected_ results
+  can be compared using JSON object comparison with the processor output.
+* _expand_ tests have _input_ and _expected_ documents. The _expected_ results
+  can be compared using JSON object comparison with the processor output.
+* _frame_ tests have _input_, _frame_ and _expected_ documents. The _expected_ results
+  can be compared using JSON object comparison with the processor output.
+* _normalize_ tests have _input_ and _expected_ documents. The _expected_ results
+  can be compared using string comparison with the processor output.
+* _rdf_ tests have _input_ and _sparql_ documents. The results are tested
+  by performing the RDF conversion and using this as the default document for an `ASK` query
+  contained within the _sparql_ document using a SPARQL endpoint. The end result is a
+  yes/no on whether the expected triples were extracted by the JSON-LD processor.
 
-The JSON-LD Test Suite drives the entire process. The first step is to
-retrieve the list of tests that should be run for a particular manifest.
-Then the JSON-LD test suite uses the processor that was selected to
-extract the triples and send those triples, along with what triples are
-expected (via a SPARQL query) to the SPARQL endpoint. The end result is a
-yes/no on whether the expected triples were extracted by the JSON-LD processor.
-
-Running the Test Suite
-----------------------
-
-You can view and run this test suite at the following URL:
-
-http://json-ld.org/test-suite/
 
 Contributing
 ------------
@@ -38,11 +35,11 @@
 1. Notify the JSON-LD mailing list, public-linked-json@w3.org, 
    that you will be creating a new test or fix and the purpose of the
    change.
-2. Clone the git repository: git@github.com:msporny/json-ld-test-suite.git
+2. Clone the git repository: git://github.com/json-ld/json-ld.org.git
 3. Make your changes and submit them via github, or via a 'git format-patch'
-   to Manu Sporny <msporny@digitalbazaar.com> or to the JSON-LD mailing list.
+   to the [JSON-LD mailing list](mailto:public-linked-json@w3.org).
 
-Optionally, you can ask Manu for direct access to the repository and may make
+Optionally, you can ask for direct access to the repository and may make
 changes directly to the JSON-LD Test Suite source code. All updates to the test 
 suite go live on Digital Bazaar's JSON-LD Test Suite site within seconds of 
 committing changes to github via a WebHook call.
@@ -54,20 +51,11 @@
    
 1. Pick a new unit test number. For example - 250. To be consistent, please use
    the next available unit test number.
-2. Create a markup file in the tests/ directory with a .json extension. 
-   For example: tests/250.json
-3. Create a SPARQL query file in the tests/ directory with a .sparql extension.
-   For example: tests/250.sparql
-4. Add your test to manifest.ttl.
-
-There are three classifications for Unit Tests:
-
-required - These are tests that are required for proper operation per the
-           JSON-LD specification.
-optional - These are tests for optional features supported by some JSON-LD 
-           Processors.
-buggy    - These are tests that are buggy or are not considered valid test
-           cases by all JSON-LD processor maintainers.
+2. Create a markup file in the tests/ directory with a .jsonld extension. 
+   For example: tests/rdf-250.jsonld
+3. Create a SPARQL query file in the tests/ directory with a .jsonld or .sparql extension.
+   For example: tests/rdf-250.sparql
+4. Add your test to manifest.jsonld.
 
 The test suite is designed to empower JSON-LD processor maintainers to create
 and add tests as they see fit. This may mean that the test suite may become
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/context.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -0,0 +1,18 @@
+{
+  "@context": {
+    "dc":       "http://purl.org/dc/elements/1.1/",
+    "jld":      "http://json-ld.org/test-suite/vocab#",
+    "test":     "http://www.w3.org/2006/03/test-description#",
+    "rdfs":     "http://www.w3.org/2000/01/rdf-schema#",
+                
+    "context":  {"@id": "test:input", "@type": "@id"},
+    "expect":   {"@id": "test:informationResourceResults", "@type": "@id"},
+    "frame":    {"@id": "test:input", "@type": "@id"},
+    "group":    "jld:group",
+    "input":    {"@id": "test:informationResourceInput", "@type": "@id"},
+    "name":     "dc:title",
+    "purpose":  "test:purpose",
+    "sequence": {"@id": "jld:sequence", "@type": "@id", "@list": true},
+    "sparql":   {"@id": "test:expectedResults", "@type": "@id"}
+  }
+}
\ No newline at end of file
--- a/test-suite/index.html	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/index.html	Wed Jan 04 18:41:22 2012 -0800
@@ -1,144 +1,87 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<!DOCTYPE html>
+<html>
 <head>
-  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-  <title>The JSON-LD Test Harness (Crazy Ivan)</title>
-  <link rel="stylesheet" type="text/css" href="css/screen.css" />
-  <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
-  <script type="text/javascript" src="crazyivan.js"></script>
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
+  <title>JSON-LD - Test Suite</title>
+  <link href="../site.css" rel="stylesheet" type="text/css" /> 
+  <link rel="shortcut icon" href="../favicon.ico" /> 
 </head>
-
-<body onload="javascript:updateConfigurationDisplay();retrieveUnitTests()">
-
-<h1 style="text-align: center;">JSON-LD Test Suite</h1>
-
-<h2>Overview</h2>
-<noscript>
-<p>WARNING: You need Javascript enabled to use this web page!</p>
-</noscript>
-<p>
-The JSON-LD Test Suite provides an interactive mechanism to check the 
-conformance of an JSON-LD processor and SPARQL query engine. 
-This service is intended for anybody that wants to see how JSON-LD works as 
-well as developers that want to do conformance testing on their own 
-JSON-LD/SPARQL implementations.
-</p>
-<p>
-There are several things that you can do on this web page:
-</p>
-
-<ul>
- <li>To run a unit test, click on the [TEST] link.</li>
- <li>To see the details of a unit test, click on the [show details] link.</li>
- <li>You can execute every unit test by clicking on the 
-   [Run All Unit Tests] button.</li>
- <li>You can modify the Test Suite, Approval Status, JSON-LD Extractor Service 
-   and SPARQL Engine URLs.</li>
-</ul>
-
-<h2>Status</h2>
-<ul>
-<li>These tests are in active development by the 
-<a href="http:fixme">JSON-LD Working Group</a> at
-  the <a href="http://www.w3c.org">World Wide Web Consortium</a>.</li>
-<li>These tests may be used to check conformance for an JSON-LD processor.</li>
-<li>The tests are subject to change at any point between now and June 2011.</li>
-<li>All bugs, suggestions and thoughts about The JSON-LD Test Suite
-  should be sent to the 
-  <a href="http://lists.w3.org/Archives/Public/public-linked-json/">
-  JSON-LD Working Group mailing list</a>.</li>
-</ul>
-
-<h2>Configuration</h2>
+<body>
+  <div id="container"> 
+     <div id="header"> 
+        <span class="col"> 
+           <img class="banner" src="../images/json-ld-logo-1.png" />
+           <img class="banner" src="../images/json-ld-logo-2.png" />
+           <img class="banner" src="../images/json-ld-logo-3.png" />
+           <h1>Test Suite</h1>
+        </span> 
+     </div> 
 
-<form action="crazyivan.py" method="get">
-<div class="form-input">
-<p>
-Test Suite: 
-<select id="test-suite-selection"
-        onchange="javascript:updateConfigurationDisplay();retrieveUnitTests()">
-  <option value="json-ld">JSON-LD</option>
-</select>
-<span id="test-suite-selection-value"></span>
-</p>
-<p>
-RDFa extractor URL: 
-<select id="jsonld-extractor-selection"
-        onchange="javascript:updateConfigurationDisplay()">
-  <option value="RDF.rb">RDF.rb (rdf.kellogg-assoc.com) - Ruby</option>
-  <option value="other">Other JSON-LD Extractor:</option>
-</select>
-<input type="text" id="jsonld-extractor-selection-value" size="32" />
-</p>
-<p>
-SPARQL engine URL: 
-<select id="sparql-engine-selection"
-        onchange="javascript:updateConfigurationDisplay()">
-  <option value="sparqler">SPARQLer (sparql.org)</option>
-  <option value="virtuoso">Virtuoso (openlinksw.com)</option>
-  <option value="graphene">Graphene (rdfa.digitalbazaar.com)</option>
-  <option value="other">Other SPARQL Processor:</option>
-</select>
-<input type="text" id="sparql-engine-selection-value" size="32" />
-</p>
-
-<p>
-<input type="button" onclick="javascript:performAllUnitTests()" value="Run All Unit Tests" />
-</p>
-</div>
-</form>
-
-<h2>Test Cases</h2>
-<div id="unit-tests">
-</div>
-
-<!--h1>EARL Report</h1>
+     <div id="content"> 
+        <div class="breadcrumbs"><a href="../">JSON-LD</a> &gt; Test Suite</div>
+        <h2 id="introduction">Introduction</h2>
 
-<p>
-You can generate an EARL report of the currently selected JSON-LD parser by clicking the "Generate EARL Report" button. Make sure that you have run all of the unit tests above by clicking the "Run All Unit Tests" button.
-</p>
-<p>
-<input type="button" onclick="javascript:generateEarlReport()" value="Generate EARL Report" />
-</p>
-<pre id="earl-report">
-</pre-->
-
-<h1>Useful JSON-LD Resources</h1>
-<ul>
-  <li>The <a href="http://json-ld.org/">JSON-LD Interest Group</a></li>
- <li>The <a href="http://lists.w3.org/Archives/Public/public-linked-json/">JSON-LD Mailing List</a></li>
- <li>The <a href="http://json-ld.org/spec/latest/">JSON-LD Specification</a></li>
-</ul>
-
-<hr />
-<address>
- Last modified: 2011-05-21, Gregg Kellogg
-</address>
+        <p>The JSON-LD Test Suite is a set of tests that can 
+        be used to verify JSON-LD Processor conformance to the set of specifications
+        that constitute JSON-LD. The goal of the suite is to provide an easy and 
+        comprehensive JSON-LD testing solution for developers creating JSON-LD Processors.</p>
 
-<p><a rel="Copyright"
-href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
-&copy; 1994-2007 <a href="http://www.w3.org/"><acronym
-title="World Wide Web Consortium">W3C</acronym></a><sup>&reg;</sup> (<a
-href="http://www.csail.mit.edu/"><acronym
-title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
-href="http://www.ercim.org/"><acronym
-title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
-<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a
-href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
-<a
-href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
-<a rel="Copyright"
-href="http://www.w3.org/Consortium/Legal/copyright-documents">document
-use</a> and <a rel="Copyright"
-href="http://www.w3.org/Consortium/Legal/copyright-software">software
-licensing</a> rules apply. Your interactions with this site are in accordance
-with our <a
-href="http://www.w3.org/Consortium/Legal/privacy-statement#Public">public</a>
-and <a
-href="http://www.w3.org/Consortium/Legal/privacy-statement#Members">Member</a>
-privacy statements.</p>
+        <h2 id="design">Design</h2>
 
+        <p>Tests are defined into <em>compact</em>, <em>expand</em>, <em>frame</em>, <em>normalize</em>, and <em>rdf</em> sections:
+        * <em>compact</em> tests have <em>input</em>, <em>expected</em> and <em>context</em> documents. The <em>expected</em> results
+          can be compared using JSON object comparison with the processor output.
+        * <em>expand</em> tests have <em>input</em> and <em>expected</em> documents. The <em>expected</em> results
+          can be compared using JSON object comparison with the processor output.
+        * <em>expand</em> tests have <em>input</em> and <em>expected</em> documents. The <em>expected</em> results
+          can be compared using JSON object comparison with the processor output.
+        * <em>frame</em> tests have <em>input</em>, <em>frame</em> and <em>expected</em> documents. The <em>expected</em> results
+          can be compared using JSON object comparison with the processor output.
+        * <em>normalize</em> tests have <em>input</em> and <em>expected</em> documents. The <em>expected</em> results
+          can be compared using string comparison with the processor output.
+        * <em>rdf</em> tests have <em>input</em> and <em>sparql</em> documents. The results are tested
+          by performing the RDF conversion and using this as the default document for an <code>ASK</code> query
+          contained within the <em>sparql</em> document using a SPARQL endpoint. The end result is a
+          yes/no on whether the expected triples were extracted by the JSON-LD processor.</p>
+
+        <h2 id="contributing">Contributing</h2>
+
+        <p>If you would like to contribute a new test or a fix to an existing test,
+        please follow these steps:</p>
+
+        <ol>
+        <li>Notify the JSON-LD mailing list, public-linked-json@w3.org, 
+        that you will be creating a new test or fix and the purpose of the
+        change.</li>
+        <li>Clone the git repository: git://github.com/json-ld/json-ld.org.git</li>
+        <li>Make your changes and submit them via github, or via a &#8216;git format-patch&#8217;
+        to the <a href="mailto:public-linked-json@w3.org">JSON-LD mailing list</a>.</li>
+        </ol>
+
+        <p>Optionally, you can ask for direct access to the repository and may make
+        changes directly to the JSON-LD Test Suite source code. All updates to the test 
+        suite go live on Digital Bazaar&#8217;s JSON-LD Test Suite site within seconds of 
+        committing changes to github via a WebHook call.</p>
+
+        <h2 id="how_to_add_a_unit_test">How to Add a Unit Test</h2>
+
+        <p>In order to add a unit test, you must follow these steps:</p>
+
+        <ol>
+        <li>Pick a new unit test number. For example - 250. To be consistent, please use
+        the next available unit test number.</li>
+        <li>Create a markup file in the tests/ directory with a .jsonld extension. 
+        For example: tests/rdf-250.jsonld</li>
+        <li>Create a SPARQL query file in the tests/ directory with a .jsonld or .sparql extension.
+        For example: tests/rdf-250.sparql</li>
+        <li>Add your test to manifest.jsonld.</li>
+        </ol>
+
+        <p>The test suite is designed to empower JSON-LD processor maintainers to create
+        and add tests as they see fit. This may mean that the test suite may become
+        unstable from time to time, but this approach has been taken so that the 
+        long-term goal of having a comprehensive test suite for JSON-LD can be achieved
+        by the JSON-LD community.</p>
+</div></div></div>
 </body>
-</html>
+</html>
\ No newline at end of file
--- a/test-suite/manifest.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/manifest.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,415 +1,6 @@
 {
-  "@context": {
-    "": "http://www.w3.org/2006/03/test-description#",
-    "dc": "http://purl.org/dc/elements/1.1/",
-    "jld": "http://json-ld.org/test-suite/vocab#",
-    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
-    "@coerce": {
-      "@iri": [
-        ":classification",
-        ":informationResourceInput",
-        ":informationResourceResults"
-      ]
-    }
-  },
-  "@subject": [
-    {
-      "@subject": "test-cases/rdf-0001",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0001.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0001.sparql",
-      ":purpose": "Tests generation of a triple using full URIs and a plain literal.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#plain-literals"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Plain literal with URIs"
-    },
-    {
-      "@subject": "test-cases/rdf-0002",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0002.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0002.sparql",
-      ":purpose": "Tests generation of a triple using a CURIE defined in the default context.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#iris"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Plain literal with CURIE from default context"
-    },
-    {
-      "@subject": "test-cases/rdf-0003",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0003.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0003.sparql",
-      ":purpose": "Tests that a BNode is created if no explicit subject is set.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#the-json-ld-processing-algorithm"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Default subject is BNode"
-    },
-    {
-      "@subject": "test-cases/rdf-0004",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0004.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0004.sparql",
-      ":purpose": "Tests that a plain literal is created with a language tag.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#language-specification-in-plain-literals"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Literal with language tag"
-    },
-    {
-      "@subject": "test-cases/rdf-0005",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0005.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0005.sparql",
-      ":purpose": "Tests that a literal may be created using extended characters.",
-      ":specificationReference": "",
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Extended character set literal"
-    },
-    {
-      "@subject": "test-cases/rdf-0006",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0006.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0006.sparql",
-      ":purpose": "Tests creation of a literal with a datatype.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#typed-literals"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Typed literal"
-    },
-    {
-      "@subject": "test-cases/rdf-0007",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0007.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0007.sparql",
-      ":purpose": "Verify that 'a' is an alias for rdf:type, and the object is created as an IRI.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#the-json-ld-processing-algorithm"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Tests 'a' generates rdf:type and object is implicit IRI"
-    },
-    {
-      "@subject": "test-cases/rdf-0008",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0008.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0008.sparql",
-      ":purpose": "Generate an IRI using a prefix defined within an @context.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#the-json-ld-processing-algorithm"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test prefix defined in @context"
-    },
-    {
-      "@subject": "test-cases/rdf-0009",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0009.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0009.sparql",
-      ":purpose": "The empty string may be used to define the default prefix.",
-      ":specificationReference": "",
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test using default prefix"
-    },
-    {
-      "@subject": "test-cases/rdf-0010",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0010.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0010.sparql",
-      ":purpose": "A property referencing an associative array gets object from subject of array.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#the-json-ld-processing-algorithm"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test object processing defines object"
-    },
-    {
-      "@subject": "test-cases/rdf-0011",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0011.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0011.sparql",
-      ":purpose": "If no @ is specified, a BNode is created, and will be used as the object of an enclosing property.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#the-json-ld-processing-algorithm"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test object processing defines object with implicit BNode"
-    },
-    {
-      "@subject": "test-cases/rdf-0012",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0012.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0012.sparql",
-      ":purpose": "Tests that Multiple Objects are for a Single Property using array syntax.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#multiple-objects-for-a-single-property"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Multiple Objects for a Single Property"
-    },
-    {
-      "@subject": "test-cases/rdf-0013",
-      ":classification": ":optional",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0013.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0013.sparql",
-      ":purpose": "Tests that [[]] generates an empty list.",
-      ":specificationReference": "If the value is a regular array, should we support RDF List/Sequence generation of triples?",
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Creation of an empty list"
-    },
-    {
-      "@subject": "test-cases/rdf-0014",
-      ":classification": ":optional",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0014.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0014.sparql",
-      ":purpose": "Tests that [[a]] generates list.",
-      ":specificationReference": "If the value is a regular array, should we support RDF List/Sequence generation of triples?",
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Creation of a list with single element"
-    },
-    {
-      "@subject": "test-cases/rdf-0015",
-      ":classification": ":optional",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0015.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0015.sparql",
-      ":purpose": "Tests that list with multiple elements.",
-      ":specificationReference": "If the value is a regular array, should we support RDF List/Sequence generation of triples?",
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Creation of a list with multiple elements"
-    },
-    {
-      "@subject": "test-cases/rdf-0016",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0016.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0016.sparql",
-      ":purpose": "Tests using @base in @context for IRI processing.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#the-json-ld-processing-algorithm"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test @base"
-    },
-    {
-      "@subject": "test-cases/rdf-0017",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0017.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0017.sparql",
-      ":purpose": "Tests using @vocab in @context for IRI processing.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#the-json-ld-processing-algorithm"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test @vocab"
-    },
-    {
-      "@subject": "test-cases/rdf-0018",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0018.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0018.sparql",
-      ":purpose": "Tests using @base and @vocab in @context for IRI processing.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#the-json-ld-processing-algorithm"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test @base and @vocab together"
-    },
-    {
-      "@subject": "test-cases/rdf-0019",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0019.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0019.sparql",
-      ":purpose": "Tests coercion of object to anyURI when specified.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#type-coercion"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test type coercion to anyURI"
-    },
-    {
-      "@subject": "test-cases/rdf-0020",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0020.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0020.sparql",
-      ":purpose": "Tests coercion of object to a typed literal when specified.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#type-coercion"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test type coercion to typed literal"
-    },
-    {
-      "@subject": "test-cases/rdf-0021",
-      ":classification": ":buggy",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0021.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0021.sparql",
-      ":purpose": "Tests that a decimal value generates a xsd:decimal typed literal (buggy test).",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#automatic-typing"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test coercion of decimal value"
-    },
-    {
-      "@subject": "test-cases/rdf-0022",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0022.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0022.sparql",
-      ":purpose": "Tests that a decimal value generates a xsd:double typed literal;.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#automatic-typing"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test coercion of double value"
-    },
-    {
-      "@subject": "test-cases/rdf-0023",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0023.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0023.sparql",
-      ":purpose": "Tests that a decimal value generates a xsd:integer typed literal.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#automatic-typing"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test coercion of integer value"
-    },
-    {
-      "@subject": "test-cases/rdf-0024",
-      ":classification": ":required",
-      ":expectedResults": true,
-      ":informationResourceInput": "test-cases/rdf-0024.jsonld",
-      ":informationResourceResults": "test-cases/rdf-0024.sparql",
-      ":purpose": "Tests that a decimal value generates a xsd:boolean typed literal.",
-      ":specificationReference": {
-        "@iri": "http://json-ld.org/spec/latest/#automatic-typing"
-      },
-      "@type": [
-        "jld:SPARQLTest",
-        ":TestCase"
-      ],
-      "dc:contributor": "Gregg Kellogg",
-      "dc:title": "Test coercion of boolean value"
-    }
-  ]
+  "@context": "http://json-ld.org/test-suite/context.jsonld",
+  "@type": "jld:Manifest",
+  "rdfs:comment": "This manifest loads additional manifests for specific behavior tests",
+  "sequence": ["tests/rdf-manifest.jsonld"]
 }
--- a/test-suite/tests/rdf-0001.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0001.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,4 +1,4 @@
 {
-  "@subject": "http://greggkellogg.net/foaf#me",
+  "@id": "http://greggkellogg.net/foaf#me",
   "http://xmlns.com/foaf/0.1/name": "Gregg Kellogg"
 }
\ No newline at end of file
--- a/test-suite/tests/rdf-0002.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0002.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,4 +1,5 @@
 {
-  "@subject": "http://greggkellogg.net/foaf#me",
+  "@context": {"foaf": "http://xmlns.com/foaf/0.1/"},
+  "@id": "http://greggkellogg.net/foaf#me",
   "foaf:name": "Gregg Kellogg"
 }
\ No newline at end of file
--- a/test-suite/tests/rdf-0003.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0003.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,1 +1,4 @@
-{ "@type": "foaf:Person" }
\ No newline at end of file
+{
+  "@context": {"foaf": "http://xmlns.com/foaf/0.1/"},
+  "@type": "foaf:Person"
+}
\ No newline at end of file
--- a/test-suite/tests/rdf-0005.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0005.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,9 +1,8 @@
 [
   {
     "@": "http://greggkellogg.net/foaf#me",
-    "http://xmlns.com/foaf/0.1/knows": {"@iri": "http://www.ivan-herman.net/foaf#me"}
+    "http://xmlns.com/foaf/0.1/knows": {"@id": "http://manu.sporny.org/#me"}
   },{
-    "@": "http://www.ivan-herman.net/foaf#me",
     "http://xmlns.com/foaf/0.1/name": {"@literal": "Herman Iván", "@language": "hu"}
   }
 ]
\ No newline at end of file
--- a/test-suite/tests/rdf-0005.sparql	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0005.sparql	Wed Jan 04 18:41:22 2012 -0800
@@ -1,6 +1,5 @@
 PREFIX foaf: <http://xmlns.com/foaf/0.1/>
 
 ASK WHERE {
-  <http://greggkellogg.net/foaf#me> foaf:knows <http://www.ivan-herman.net/foaf#me> .
-  <http://www.ivan-herman.net/foaf#me> foaf:name "Herman Iv\u00E1n"@hu .
+  <http://greggkellogg.net/foaf#me> foaf:knows [ foaf:name "Herman Iv\u00E1n"@hu ].
 }
\ No newline at end of file
--- a/test-suite/tests/rdf-0006.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0006.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,7 +1,7 @@
 {
-  "@subject":  "http://greggkellogg.net/foaf#me",
+  "@id":  "http://greggkellogg.net/foaf#me",
   "http://purl.org/dc/terms/created":  {
     "@literal": "1957-02-27",
-    "@datatype": "http://www.w3.org/2001/XMLSchema#date"
+    "@type": "http://www.w3.org/2001/XMLSchema#date"
   }
 }
--- a/test-suite/tests/rdf-0007.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0007.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,4 +1,4 @@
 {
-  "@subject": "http://greggkellogg.net/foaf#me",
+  "@id": "http://greggkellogg.net/foaf#me",
   "@type": "http://xmlns.com/foaf/0.1/Person"
 }
\ No newline at end of file
--- a/test-suite/tests/rdf-0008.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0008.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,6 +1,4 @@
 {
-  "@context": {
-    "d": "http://example.com/default#"
-  },
+  "@context": {"d": "http://example.com/default#"},
   "d:foo": "bar"
 }
--- a/test-suite/tests/rdf-0009.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0009.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,6 +1,4 @@
 {
-  "@context": {
-    "": "http://example.com/default#"
-  },
+  "@context": {"": "http://example.com/default#"},
   ":foo": "bar"
 }
--- a/test-suite/tests/rdf-0010.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0010.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,10 +1,8 @@
 {
-  "@context": {
-    "foaf": "http://xmlns.com/foaf/0.1/"
-  },
-  "@subject": "http://greggkellogg.net/foaf#me",
+  "@context": {"foaf": "http://xmlns.com/foaf/0.1/"},
+  "@id": "http://greggkellogg.net/foaf#me",
   "foaf:knows": {
-    "@subject": "http://www.ivan-herman.net/foaf#me",
-    "foaf:name": "Ivan Herman"
+    "@id": "http://manu.sporny.org/#me",
+    "foaf:name": "Manu Sporny"
   }
 }
--- a/test-suite/tests/rdf-0010.sparql	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0010.sparql	Wed Jan 04 18:41:22 2012 -0800
@@ -1,6 +1,6 @@
 PREFIX foaf: <http://xmlns.com/foaf/0.1/>
 
 ASK WHERE {
-  <http://greggkellogg.net/foaf#me> foaf:knows <http://www.ivan-herman.net/foaf#me> .
-  <http://www.ivan-herman.net/foaf#me> foaf:name "Ivan Herman" .
+  <http://greggkellogg.net/foaf#me> foaf:knows <http://manu.sporny.org/#me> .
+  <http://manu.sporny.org/#me> foaf:name "Manu Sporny" .
 }
--- a/test-suite/tests/rdf-0011.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0011.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -2,8 +2,8 @@
   "@context": {
     "foaf": "http://xmlns.com/foaf/0.1/"
   },
-  "@subject": "http://greggkellogg.net/foaf#me",
+  "@id": "http://greggkellogg.net/foaf#me",
   "foaf:knows": {
-    "foaf:name": "Manu Sporny"
+    "foaf:name": "Dave Longley"
   }
 }
--- a/test-suite/tests/rdf-0011.sparql	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0011.sparql	Wed Jan 04 18:41:22 2012 -0800
@@ -2,5 +2,5 @@
 
 ASK WHERE {
   <http://greggkellogg.net/foaf#me> foaf:knows ?o .
-  ?o foaf:name "Manu Sporny" .
+  ?o foaf:name "Dave Longley" .
 }
--- a/test-suite/tests/rdf-0012.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0012.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -2,6 +2,6 @@
   "@context": {
     "foaf": "http://xmlns.com/foaf/0.1/"
   },
-  "@subject": "http://greggkellogg.net/foaf#me",
+  "@id": "http://greggkellogg.net/foaf#me",
   "foaf:knows": ["Manu Sporny", "Dave Longley"]
 }
\ No newline at end of file
--- a/test-suite/tests/rdf-0013.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0013.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -2,6 +2,6 @@
   "@context": {
     "foaf": "http://xmlns.com/foaf/0.1/"
   },
-  "@subject": "http://greggkellogg.net/foaf#me",
+  "@id": "http://greggkellogg.net/foaf#me",
   "foaf:knows": {"@list": []}
 }
--- a/test-suite/tests/rdf-0014.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0014.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -2,6 +2,6 @@
   "@context": {
     "foaf": "http://xmlns.com/foaf/0.1/"
   },
-  "@subject": "http://greggkellogg.net/foaf#me",
+  "@id": "http://greggkellogg.net/foaf#me",
   "foaf:knows": {"@list": ["Manu Sporny"]}
 }
--- a/test-suite/tests/rdf-0015.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0015.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -2,6 +2,6 @@
   "@context": {
     "foaf": "http://xmlns.com/foaf/0.1/"
   },
-  "@subject": "http://greggkellogg.net/foaf#me",
+  "@id": "http://greggkellogg.net/foaf#me",
   "foaf:knows": {"@list": ["Manu Sporny", "Dave Longley"]}
 }
--- a/test-suite/tests/rdf-0016.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0016.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,8 +1,3 @@
 {
-  "@context": {
-    "@base":  "http://greggkellogg.net/foaf",
-    "foaf": "http://xmlns.com/foaf/0.1/"
-  },
-  "@subject":  "#me",
-  "foaf:homepage":  {"@iri": "http://github.com/gkellogg/"}
+  FIXME
 }
\ No newline at end of file
--- a/test-suite/tests/rdf-0017.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0017.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,7 +1,4 @@
 {
-  "@context": {
-    "@vocab": "http://usefulinc.com/ns/doap#"
-  },
-  "@subject":  "http://greggkellogg.net/foaf#me",
-  "homepage":  {"@iri": "http://github.com/gkellogg/"}
+  "name": "FIXME",
+  "purpose": "FIXME."
 }
--- a/test-suite/tests/rdf-0017.sparql	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0017.sparql	Wed Jan 04 18:41:22 2012 -0800
@@ -2,5 +2,5 @@
 PREFIX doap: <http://usefulinc.com/ns/doap#>
 
 ASK WHERE {
-  <http://greggkellogg.net/foaf#me> doap:homepage <http://github.com/gkellogg/>
+  <http://greggkellogg.net/foaf#me> doap:homepage <http://greggkellogg.net/>
 }
\ No newline at end of file
--- a/test-suite/tests/rdf-0018.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0018.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,8 +1,4 @@
 {
-  "@context": {
-    "@base":  "http://greggkellogg.net/foaf",
-    "@vocab": "http://usefulinc.com/ns/doap#"
-  },
-  "@subject":  "#me",
-  "homepage":  {"@iri": "http://github.com/gkellogg/"}
+  "name": "FIXME",
+  "purpose": "FIXME."
 }
--- a/test-suite/tests/rdf-0019.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0019.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,8 +1,8 @@
 {
   "@context": {
     "foaf": "http://xmlns.com/foaf/0.1/",
-    "@coerce":  { "@iri": "foaf:knows"}
+    "knows": {"@id": "http://xmlns.com/foaf/0.1/knows", "@type": "@id"}
   },
-  "@subject":  "http://greggkellogg.net/foaf#me",
-  "foaf:knows":  "http://www.ivan-herman.net/foaf#me"
+  "@id":    "http://greggkellogg.net/foaf#me",
+  "knows":  "http://manu.sporny.org/#me"
 }
--- a/test-suite/tests/rdf-0019.sparql	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0019.sparql	Wed Jan 04 18:41:22 2012 -0800
@@ -1,5 +1,5 @@
 PREFIX foaf: <http://xmlns.com/foaf/0.1/>
 
 ASK WHERE {
-  <http://greggkellogg.net/foaf#me> foaf:knows <http://www.ivan-herman.net/foaf#me> .
+  <http://greggkellogg.net/foaf#me> foaf:knows <http://manu.sporny.org/#me> .
 }
\ No newline at end of file
--- a/test-suite/tests/rdf-0020.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0020.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,8 +1,8 @@
 {
   "@context": {
-    "dc": "http://purl.org/dc/terms/",
-    "@coerce":  { "xsd:date": "dc:created"}
+    "xsd": "http://www.w3.org/2001/XMLSchema#",
+    "created": {"@id": "http://purl.org/dc/terms/created", "@type": "xsd:date"}
   },
-  "@subject":  "http://greggkellogg.net/foaf#me",
-  "dc:created":  "1957-02-27"
+  "@id":  "http://greggkellogg.net/foaf#me",
+  "created":  "1957-02-27"
 }
--- a/test-suite/tests/rdf-0025.jsonld	Wed Jan 04 16:09:22 2012 -0800
+++ b/test-suite/tests/rdf-0025.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -1,10 +1,7 @@
 {
   "@context": {
-    "foaf": "http://xmlns.com/foaf/0.1/",
-    "@coerce": {
-      "@list": "foaf:knows"
-    }
+    "knows": {"@id": "http://xmlns.com/foaf/0.1/", "@list": true}
   },
-  "@subject": "http://greggkellogg.net/foaf#me",
-  "foaf:knows": ["Manu Sporny"]
+  "@id": "http://greggkellogg.net/foaf#me",
+  "knows": ["Manu Sporny"]
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/rdf-manifest.jsonld	Wed Jan 04 18:41:22 2012 -0800
@@ -0,0 +1,153 @@
+{
+  "@context": "http://json-ld.org/test-suite/context.jsonld",
+  "@type": "jld:Manifest",
+  "rdfs:comment": "JSON-LD to RDF tests use SPARQL queries to determine results",
+  "group": "rdf",
+  "sequence": [
+    {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0001.jsonld",
+      "name": "Plain literal with URIs",
+      "purpose": "Tests generation of a triple using full URIs and a plain literal.",
+      "sparql": "rdf-0001.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0002.jsonld",
+      "name": "Plain literal with CURIE from default context",
+      "purpose": "Tests generation of a triple using a CURIE defined in the default context.",
+      "sparql": "rdf-0002.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0003.jsonld",
+      "name": "Default subject is BNode",
+      "purpose": "Tests that a BNode is created if no explicit subject is set.",
+      "sparql": "rdf-0003.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0004.jsonld",
+      "name": "Literal with language tag",
+      "purpose": "Tests that a plain literal is created with a language tag.",
+      "sparql": "rdf-0004.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0005.jsonld",
+      "name": "Extended character set literal",
+      "purpose": "Tests that a literal may be created using extended characters.",
+      "sparql": "rdf-0005.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0006.jsonld",
+      "name": "Typed literal",
+      "purpose": "Tests creation of a literal with a datatype.",
+      "sparql": "rdf-0006.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0007.jsonld",
+      "name": "Tests 'a' generates rdf:type and object is implicit IRI",
+      "purpose": "Verify that 'a' is an alias for rdf:type, and the object is created as an IRI.",
+      "sparql": "rdf-0007.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0008.jsonld",
+      "name": "Test prefix defined in @context",
+      "purpose": "Generate an IRI using a prefix defined within an @context.",
+      "sparql": "rdf-0008.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0009.jsonld",
+      "name": "Test using default prefix",
+      "purpose": "The empty string may be used to define the default prefix.",
+      "sparql": "rdf-0009.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0010.jsonld",
+      "name": "Test object processing defines object",
+      "purpose": "A property referencing an associative array gets object from subject of array.",
+      "sparql": "rdf-0010.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0011.jsonld",
+      "name": "Test object processing defines object with implicit BNode",
+      "purpose": "If no @ is specified, a BNode is created, and will be used as the object of an enclosing property.",
+      "sparql": "rdf-0011.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0012.jsonld",
+      "name": "Multiple Objects for a Single Property",
+      "purpose": "Tests that Multiple Objects are for a Single Property using array syntax.",
+      "sparql": "rdf-0012.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0013.jsonld",
+      "name": "Creation of an empty list",
+      "purpose": "Tests that [[]] generates an empty list.",
+      "sparql": "rdf-0013.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0014.jsonld",
+      "name": "Creation of a list with single element",
+      "purpose": "Tests that [[a]] generates list.",
+      "sparql": "rdf-0014.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0015.jsonld",
+      "name": "Creation of a list with multiple elements",
+      "purpose": "Tests that list with multiple elements.",
+      "sparql": "rdf-0015.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0016.jsonld",
+      "name": "FIXME",
+      "purpose": "FIXME.",
+      "sparql": "rdf-0016.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "name": "FIXME",
+      "purpose": "FIXME.",
+      "purpose": "Tests using @vocab in @context for IRI processing.",
+      "sparql": "rdf-0017.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "name": "FIXME",
+      "purpose": "FIXME.",
+      "purpose": "Tests using @base and @vocab in @context for IRI processing.",
+      "sparql": "rdf-0018.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0019.jsonld",
+      "name": "Test type coercion to anyURI",
+      "purpose": "Tests coercion of object to anyURI when specified.",
+      "sparql": "rdf-0019.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0020.jsonld",
+      "name": "Test type coercion to typed literal",
+      "purpose": "Tests coercion of object to a typed literal when specified.",
+      "sparql": "rdf-0020.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0021.jsonld",
+      "name": "Test coercion of decimal value",
+      "purpose": "Tests that a decimal value generates a xsd:decimal typed literal (buggy test).",
+      "sparql": "rdf-0021.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0022.jsonld",
+      "name": "Test coercion of double value",
+      "purpose": "Tests that a decimal value generates a xsd:double typed literal;.",
+      "sparql": "rdf-0022.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0023.jsonld",
+      "name": "Test coercion of integer value",
+      "purpose": "Tests that a decimal value generates a xsd:integer typed literal.",
+      "sparql": "rdf-0023.sparql"
+    }, {
+      "@type": ["test:TestCase", "jld:RDFTest"],
+      "input": "rdf-0024.jsonld",
+      "name": "Test coercion of boolean value",
+      "purpose": "Tests that a decimal value generates a xsd:boolean typed literal.",
+      "sparql": "rdf-0024.sparql"
+    }
+  ]
+}