Add conformance section to JSON-LD API spec
authorMarkus Lanthaler <mark_lanthaler@gmx.net>
Mon, 03 Dec 2012 20:27:26 +0100
changeset 979 4ab11d20197d
parent 978 a098d9cd2b0c
child 980 07d2f008677c
Add conformance section to JSON-LD API spec

I also added statements to all algorithms saying that they expect well-formed JSON-LD documents.

This addresses #184 and #188.
spec/latest/json-ld-api/index.html
spec/latest/respec-w3c-extensions.js
--- a/spec/latest/json-ld-api/index.html	Mon Dec 03 19:35:20 2012 +0100
+++ b/spec/latest/json-ld-api/index.html	Mon Dec 03 20:27:26 2012 +0100
@@ -440,6 +440,33 @@
 </section>
 
 <section>
+  <h2>Conformance</h2>
+
+  <p>All examples and notes as well as sections marked as non-normative in this
+    specification are non-normative. Everything else in this specification is
+    normative.</p>
+
+  <p>The keywords MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, RECOMMENDED,
+    MAY, and OPTIONAL in this specification are to be interpreted as described
+    in [[!RFC2119]].</p>
+
+  <p>There is only one class of product that can claim conformance to this
+    specification: a <tref>JSON-LD processor</tref>.
+
+  <p>A conforming <tdef>JSON-LD processor</tdef> is a system capable of transforming
+    JSON-LD documents according the algorithms defined in this specification.
+    This specification does not define how JSON-LD processors handle non-conforming
+    input documents.</p>
+
+  <p class="note">Implementers can partially check their level of conformance to
+    this specification by successfully passing the test cases of the JSON-LD test
+    suite [[JSON-LD-TESTS]]. Note, however, that passing all the tests in the test
+    suite does not imply complete conformance to this specification. It only implies
+    that the implementation conforms to aspects tested by the test suite.</p>
+</section>
+
+
+<section>
   <h2>The Application Programming Interface</h2>
 
   <p>This API provides a clean mechanism that enables developers to convert
@@ -1502,7 +1529,8 @@
   <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>,
   or empty if <code class="idlMemberName"><a href="#widl-JsonLdOptions-expandContext">expandContext</a></code>
   is <tref>null</tref>, <tref>active property</tref> is set to <tref>null</tref>, and
-  <em>element</em> is set to the <tref>JSON-LD input</tref>.</p>
+  <em>element</em> is set to the <tref>JSON-LD input</tref>. This algorithm expects the
+  <tref>JSON-LD input</tref> to be a well-formed JSON-LD document as defined in [[!JSON-LD]].</p>
 <ol class="algorithm">
   <li>If <em>element</em> is an <tref>array</tref>, process each entry in <em>element</em> recursively
     using this algorithm, passing copies of the <tref>active context</tref> and <tref>active property</tref>.
@@ -1678,7 +1706,8 @@
   and an <em>element</em> to be compacted. To begin, the <tref>active context</tref> is
   set to the result of performing <a href="#context-processing">Context Processing</a> on the passed <em>context</em>,
   <tref>active property</tref> is set to <tref>null</tref>, and <em>element</em> is set to the result of performing the
-  <a href="#expansion-algorithm">Expansion Algorithm</a> on the <tref>JSON-LD input</tref>. This removes any existing
+  <a href="#expansion-algorithm">Expansion Algorithm</a> on the <tref>JSON-LD input</tref> which is expected to be a
+  a well-formed JSON-LD document as defined in [[!JSON-LD]]. This removes any existing
   context to allow the given <tref>active context</tref> to be cleanly applied.</p>
 
 <ol class="algorithm">
@@ -1828,7 +1857,8 @@
 <p>The algorithm takes two input variables, an <em>element</em> to flatten and the
   <em>graph</em> for which the <tref>node</tref> definitions should be returned. If <em>graph</em>
   is not set, it will default to <code>@merged</code> which represents the result of
-  merging all graphs including the default graph (<code>@default</code>).</p>
+  merging all graphs including the default graph (<code>@default</code>). This algorithm expects
+  <em>element</em> to be a well-formed JSON-LD document as defined in [[!JSON-LD]].</p>
 
 <ol class="algorithm">
   <li>Expand <em>element</em> according the <a href="#expansion-algorithm">Expansion Algorithm</a>.</li>
@@ -2101,8 +2131,8 @@
     To begin, the <tref>active subject</tref>, <tref>active property</tref> and <tref>graph name</tref>
     are set to <tref>null</tref>, and <em>element</em> is
     set to the result of performing the <a href="#expansion-algorithm">Expansion Algorithm</a> on
-    the <tref>JSON-LD input</tref>. This removes any existing context to allow the given context to be cleanly
-    applied.</p>
+    the <tref>JSON-LD input</tref> which is expected to be a a well-formed JSON-LD document as defined in [[!JSON-LD]].
+    This removes any existing context to allow the given context to be cleanly applied.</p>
 
   <ol class="algorithm">
     <li id="processing-step-associative">
--- a/spec/latest/respec-w3c-extensions.js	Mon Dec 03 19:35:20 2012 +0100
+++ b/spec/latest/respec-w3c-extensions.js	Mon Dec 03 20:27:26 2012 +0100
@@ -9,7 +9,8 @@
     "MICRODATA": "<cite><a href=\"http://www.w3.org/TR/2012/WD-microdata-20120329/\">HTML Microdata</a></cite> Ian Hickson Editor. World Wide Web Consortium (work in progress). 29 March 2012. This edition of the HTML Microdata specification is http://www.w3.org/TR/2012/WD-microdata-20120329/. The <a href=\"http://www.w3.org/TR/microdata/\">latest edition of HTML Microdata</a> is available at http://www.w3.org/TR/microdata/",
     "WEBIDL": "<cite><a href=\"http://www.w3.org/TR/2012/CR-WebIDL-20120419/\">Web IDL</a></cite> Cameron McCormack, Editor. World Wide Web Consortium. 19 April 2012. Candidate Recommendataion. This edition of Web IDL is http://www.w3.org/TR/2012/CR-WebIDL-20120419/. The <a href=\"http://dev.w3.org/2006/webapi/WebIDL/\">latest edition of Web IDL</a> is available at http://dev.w3.org/2006/webapi/WebIDL/",
     "JSON-POINTER": "<cite><a href=\"http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-02\">JSON Pointer</a></cite> P. Bryan, Ed. IETF Draft. URL: <a href=\"http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-02\">http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-02</a>",
-    "RDF-NORMALIZATION": "<cite><a href=\"http://json-ld.org/spec/ED/rdf-graph-normalization/20111016/\">RDF Graph Normalization</a></cite> Manu Sporny, Dave Longley Editors. World Wide Web Consortium (work in progress). 16 October 2011. Editor's Draft. This edition of the RDF Graph Normalization specification is http://json-ld.org/spec/ED/rdf-graph-normalization/20111016/. The <a href=\"http://json-ld.org/spec/latest/rdf-graph-normalization/\">latest edition of RDF Graph Normalization</a> is available at http://json-ld.org/spec/latest/rdf-graph-normalization/"
+    "RDF-NORMALIZATION": "<cite><a href=\"http://json-ld.org/spec/ED/rdf-graph-normalization/20111016/\">RDF Graph Normalization</a></cite> Manu Sporny, Dave Longley Editors. World Wide Web Consortium (work in progress). 16 October 2011. Editor's Draft. This edition of the RDF Graph Normalization specification is http://json-ld.org/spec/ED/rdf-graph-normalization/20111016/. The <a href=\"http://json-ld.org/spec/latest/rdf-graph-normalization/\">latest edition of RDF Graph Normalization</a> is available at http://json-ld.org/spec/latest/rdf-graph-normalization/",
+    "JSON-LD-TESTS": "<cite><a href=\"http://dvcs.w3.org/hg/json-ld/raw-file/default/test-suite/\">JSON-LD Test Suite</a></cite> (work in progress)."
 };
 
 var preProc = {