Remove stmt "A JSON-LD document MUST NOT contain any keyword that expands to another keyword"
authorMarkus Lanthaler <mark_lanthaler@gmx.net>
Thu, 27 Dec 2012 14:11:52 +0100
changeset 1092 3cfcf3726de3
parent 1091 1e9231dbd505
child 1093 59203baa6d39
Remove stmt "A JSON-LD document MUST NOT contain any keyword that expands to another keyword"

as it is impossible and therefore just confusing.
spec/latest/json-ld-syntax/index.html
--- a/spec/latest/json-ld-syntax/index.html	Sun Dec 23 13:54:40 2012 -0500
+++ b/spec/latest/json-ld-syntax/index.html	Thu Dec 27 14:11:52 2012 +0100
@@ -2366,15 +2366,15 @@
 <h2>Data Annotations</h2>
 
 <p>It is common for developers using JSON to organize their data in ways
-that makes working with the data more efficient. It is often that these methods 
+that makes working with the data more efficient. It is often that these methods
 of organizing data are not meant to express Linked Data, but should survive
-transformation by JSON-LD. For example, if a developer 
-organizes employees in a JSON-LD document by a company-issued ID number, 
-JSON-LD should not destroy that 'database index' when transforming the data. 
-Data annotations allow content that would otherwise be removed from 
+transformation by JSON-LD. For example, if a developer
+organizes employees in a JSON-LD document by a company-issued ID number,
+JSON-LD should not destroy that 'database index' when transforming the data.
+Data annotations allow content that would otherwise be removed from
 a JSON-LD graph to be
-preserved by instructing the JSON-LD processor to syntactically preserve 
-the annotation information and continue processing deeper into the JSON 
+preserved by instructing the JSON-LD processor to syntactically preserve
+the annotation information and continue processing deeper into the JSON
 data structure.</p>
 
 <pre class="example" data-transform="updateExample"
@@ -2417,10 +2417,10 @@
 <p>In the example above, the <strong>blogPost</strong> <tref>term</tref> has
 been marked as a <em>data annotation container</em>. The <strong>en</strong>,
 <strong>de</strong>, and <strong>ja</strong> keys will effectively be ignored
-semantically, but preserved syntactically, by the JSON-LD Processor as 
-<em>annotations</em>. The interpretation of the data above is expressed in 
+semantically, but preserved syntactically, by the JSON-LD Processor as
+<em>annotations</em>. The interpretation of the data above is expressed in
 the table below. Note how the annotations do not appear in the Linked Data
-below, but would continue to exist if the document were compacted or expanded 
+below, but would continue to exist if the document were compacted or expanded
 using a JSON-LD processor:
 </p>
 
@@ -2502,7 +2502,7 @@
 
 <p>At times, it becomes necessary to explicitly ignore data expressed in JSON
 documents because it has no semantic meaning. For example, when the
-<code>@vocab</code> keyword is used, every key in a JSON-LD object is 
+<code>@vocab</code> keyword is used, every key in a JSON-LD object is
 appended to the vocabulary <tref>IRI</tref>. The author may not want that
 behavior to apply to every key, and it may be easier to specify just the keys
 that they want the JSON-LD processor to ignore. For this purpose, an author
@@ -2801,7 +2801,7 @@
   <li>an <tref>array</tref> composed of any number of the previous two expressions.</li>
 </ul>
 
-<p>If the <tref>node object</tref> contains the <code>@id</code> key, 
+<p>If the <tref>node object</tref> contains the <code>@id</code> key,
   its value MUST be
   an <tref>IRI</tref>,
   a <tref>compact IRI</tref> (including <tref title="blank node identifier">blank node identifiers</tref>), or
@@ -2838,16 +2838,6 @@
   <tref>context</tref> to be defined which is shared by all of the constituent
   <tref title="node object">node objects</tref>.</p>
 
-<p>A <tref>JSON-LD document</tref> MUST NOT contain any <tref>keyword</tref> 
-  that expands to another keyword.</p>
-<!-- 
-  tidoust: clarify?  
-  msporny: This restriction prevents confusing JSON-LD Contexts where, 
-  for example, @id is an alias for @type, thus preventing the use of 
-  @id altogether. The previous text said "or alias", which I believe was an
-  error, so I removed it.
--->
-
 <p>Keys in a <tref>node object</tref> that are not
   <tref title="keyword">keywords</tref> MUST expand to an <tref>absolute IRI</tref>
   using the <tref>active context</tref>. The values associated with these keys
@@ -2906,12 +2896,12 @@
 
 <section id="grammar-annotation-map">
 <h2>Annotation Map</h2>
-<p>An <tdef>annotation map</tdef> allows keys that have no semantic meaning, 
-  but should be preserved regardless, to be used in JSON-LD documents. 
-  An <tref>annotation map</tref> may 
-  be used as a <tref>term</tref> value within a <tref>node object</tref> if the 
-  term is defined with <code>@container</code> set to <code>@annotation</code>. 
-  The keys of a <tref>annotation map</tref> MUST be 
+<p>An <tdef>annotation map</tdef> allows keys that have no semantic meaning,
+  but should be preserved regardless, to be used in JSON-LD documents.
+  An <tref>annotation map</tref> may
+  be used as a <tref>term</tref> value within a <tref>node object</tref> if the
+  term is defined with <code>@container</code> set to <code>@annotation</code>.
+  The keys of a <tref>annotation map</tref> MUST be
   <tref title="string">strings</tref> with an associated value that is any
   of the following types:</p>
 <ul>
@@ -2924,7 +2914,7 @@
   <li><tref>expanded value</tref>,</li>
   <li>an <tref>array</tref> of zero or more of the above possibilities</li>
 </ul>
-<p>See <a href="#data-annotations"></a> for further information on this 
+<p>See <a href="#data-annotations"></a> for further information on this
 topic.</p>
 </section>
 
@@ -2946,16 +2936,16 @@
   is called an <tdef>expanded language-tagged string</tdef>.</p>
 
 <p>The value associated with the <code>@value</code> key MUST be either a
-  <tref>string</tref>, <tref>number</tref>, <tref>true</tref>, 
+  <tref>string</tref>, <tref>number</tref>, <tref>true</tref>,
   <tref>false</tref> or <tref>null</tref>.</p>
 
-<p>The value associated with the <code>@language</code> key MUST have the 
+<p>The value associated with the <code>@language</code> key MUST have the
   lexical form described in [[!BCP47]], or be <tref>null</tref>.</p>
 
-<p>The value associated with the <code>@annotation</code> key MUST be a 
+<p>The value associated with the <code>@annotation</code> key MUST be a
   <tref>string</tref>.</p>
 
-<p>The value associated with the <code>@type</code> key MUST be a 
+<p>The value associated with the <code>@type</code> key MUST be a
   <tref>term</tref>, a <tref>compact IRI</tref>,
   an <tref>absolute IRI</tref>, or <code>null</code>.</p>
 
@@ -3023,7 +3013,7 @@
 <p>An <tref>expanded term definition</tref> SHOULD be a <tref>JSON object</tref>
   composed of zero or more keys from <code>@id</code>,
   <code>@type</code>, <code>@language</code> or <code>@container</code>. An
-  <tref>expanded term definition</tref> SHOULD NOT contain any other keys. 
+  <tref>expanded term definition</tref> SHOULD NOT contain any other keys.
 <p>If the <tref>term</tref> definition is not <code>null</code>, a <tref>compact IRI</tref>, or an <tref>absolute IRI</tref>,
   the <tref>expanded term
   definition</tref> MUST include the <code>@id</code> key.</p>
@@ -3037,9 +3027,9 @@
 <p>If the <tref>expanded term definition</tref> contains the <code>@container</code> <tref>keyword</tref>,
   its value MUST be either <code>@list</code>, <code>@set</code>, <code>@language</code>, <code>@annotation</code>, or be <tref>null</tref>.
   If the value is <code>@language</code>, when the <tref>term</tref> is used outside of the <code>@context</code>, the
-  associated value MUST be a <tref>language map</tref>. If the value is 
-  <code>@annotation</code>, when the <tref>term</tref> is used outside of 
-  the <code>@context</code>, the associated value MUST be an 
+  associated value MUST be a <tref>language map</tref>. If the value is
+  <code>@annotation</code>, when the <tref>term</tref> is used outside of
+  the <code>@context</code>, the associated value MUST be an
   <tref>annotation map</tref>.</p>
 
 <p><tref title="term">Terms</tref> MUST NOT be used in a circular manner. That is, the definition of a term cannot depend on the definition of another term if that other term also depends on the first term.</p>