Remove normative statements from API spec that are already in syntax spec
authorMarkus Lanthaler <mark_lanthaler@gmx.net>
Tue, 12 Mar 2013 19:49:39 +0100
changeset 1429 a92630f69a94
parent 1428 2aff1ca02a09
child 1430 4e19f970f878
Remove normative statements from API spec that are already in syntax spec

This addresses #218.
spec/latest/json-ld-api/index.html
--- a/spec/latest/json-ld-api/index.html	Tue Mar 12 19:26:04 2013 +0100
+++ b/spec/latest/json-ld-api/index.html	Tue Mar 12 19:49:39 2013 +0100
@@ -671,7 +671,7 @@
     <dd>Every <tref>edge</tref> has a direction associated with it and is labeled with
       an <tref>IRI</tref> or a <tref>blank node identifier</tref>. Within the JSON-LD syntax
       these edge labels are called <tdef title="property">properties</tdef>. Whenever possible, an
-      <tref>edge</tref> SHOULD be labeled with an <tref>IRI</tref>.</dd>
+      <tref>edge</tref> should be labeled with an <tref>IRI</tref>.</dd>
     <dt><tdef>node</tdef></dt>
     <dd>Every <tref>node</tref> is an <tref>IRI</tref>, a <tref>blank node</tref>,
       a <tref>JSON-LD value</tref>, or a <tref>list</tref>.</dd>
@@ -702,8 +702,8 @@
     <dt><tdef>language-tagged string</tdef></dt>
     <dd>A <tref>language-tagged string</tref> consists of a string and a non-empty language
       tag as defined by [[BCP47]]. The language tag must be well-formed according to section
-      <a href="http://tools.ietf.org/html/bcp47#section-2.2.9">2.2.9</a> of [[BCP47]], and MUST
-      be normalized to lowercase.</dd>
+      <a href="http://tools.ietf.org/html/bcp47#section-2.2.9">2.2.9</a> of [[BCP47]], and is
+      normalized to lowercase.</dd>
     <dt><tdef>list</tdef></dt>
     <dd>A <tref>list</tref> is an ordered sequence of <tref title="IRI">IRIs</tref>,
       <tref title="blank node">blank nodes</tref>, and
@@ -740,7 +740,7 @@
     <dt><tdef>JSON-LD output</tdef></dt>
     <dd>The JSON-LD data structure that is produced as output by the algorithm.</dd>
     <dt><tdef>term</tdef></dt>
-    <dd>A <tref>term</tref> is a short word defined in a context that MAY be expanded to
+    <dd>A <tref>term</tref> is a short word defined in a context that may be expanded to
       an <tref>IRI</tref></dd>
     <dt><tdef>compact IRI</tdef></dt>
     <dd>A compact IRI is has the form of <tdef>prefix</tdef>:<em>suffix</em> and is used as a way
@@ -944,7 +944,7 @@
                   <code>@language</code> key.</li>
                 <li>If <em>value</em> is <tref>null</tref>, then remove
                   any <tref>default language</tref> from <em>result</em>.</li>
-                <li>Otherwise, <em>value</em> MUST be a <tref>string</tref>, if not, an
+                <li>Otherwise, <em>value</em> must be a <tref>string</tref>, if not, an
                   <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-default-language">invalid default language</a></code>
                   error has been detected. Set <em>result</em>'s
                   <tref>default language</tref> to lowercased <em>value</em>.</li>
@@ -1017,7 +1017,7 @@
 
       <ol class="algorithm">
         <li>If <em>defined</em> contains the key <em>term</em>, then the associated
-          value MUST be <tref>true</tref>, indicating that the
+          value must be <tref>true</tref>, indicating that the
           <tref>term definition</tref> has already been created, so return. Otherwise, a
           <code class="error"><a href="#idl-def-JsonLdErrorCode.cyclic-IRI-mapping">cyclic IRI mapping</a></code>
           error has been detected.</li>
@@ -1025,7 +1025,7 @@
           <tref>false</tref>. This indicates that the <tref>term definition</tref>
           is now being created but is not yet complete.</li>
         <li>Since <tref title="keyword">keywords</tref> cannot be overridden,
-          <em>term</em> MUST NOT be a <tref>keyword</tref>. Otherwise, a
+          <em>term</em> must not be a <tref>keyword</tref>. Otherwise, a
           <code class="error"><a href="#idl-def-JsonLdErrorCode.keyword-redefinition">keyword redefinition</a></code>
           error has been detected.</li>
         <li>Remove any existing <tref>term definition</tref> for <em>term</em> in
@@ -1047,7 +1047,7 @@
               <tref>true</tref> for <em>documentRelative</em>,
               <tref>local context</tref>, and <em>defined</em>.</li>
             <li>If <em>value</em> is a <tref>keyword</tref>, then <em>value</em>
-              MUST NOT be <code>@context</code>, if it is, an
+              must not be <code>@context</code>, if it is, an
               <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-keyword-alias">invalid keyword alias</a></code>
               error has been
               detected. Add <em>term</em> to <tref>active context</tref> as a
@@ -1061,7 +1061,7 @@
               <tref>true</tref>, and return.</li>
           </ol>
         </li>
-        <li>Otherwise, <em>value</em> MUST be a <tref>JSON object</tref>, if not, an
+        <li>Otherwise, <em>value</em> must be a <tref>JSON object</tref>, if not, an
           <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-term-definition">invalid term definition</a></code>
           error has been detected.</li>
         <li>Create a new <tref>term definition</tref>, <em>definition</em>.</li>
@@ -1133,7 +1133,7 @@
               <tref>IRI mapping</tref> for <em>definition</em> to <em>term</em>.</li>
           </ol>
         </li>
-        <li>Otherwise, <tref>active context</tref> MUST have a
+        <li>Otherwise, <tref>active context</tref> must have a
           <tref>vocabulary mapping</tref>, if not, an
           <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid IRI mapping</a></code>
           error been detected. Set the <tref>IRI mapping</tref>
@@ -1142,7 +1142,7 @@
         <li>If <em>value</em> contains the key <code>@type</code>:
           <ol class="algorithm">
             <li>Initialize <em>type</em> to the value associated with the
-              <code>@type</code> key, which MUST be a <tref>string</tref>. Otherwise, an
+              <code>@type</code> key, which must be a <tref>string</tref>. Otherwise, an
               <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-mapping">invalid type mapping</a></code>
               error has been detected.</li>
             <li>If <em>type</em> is not <code>@id</code> then set it to
@@ -1158,7 +1158,7 @@
         <li>If <em>value</em> contains the key <code>@container</code>:
           <ol class="algorithm">
             <li>Initialize <em>container</em> to the value associated with the
-              <code>@container</code> key, which MUST be either:
+              <code>@container</code> key, which must be either:
               <code>@list</code>, <code>@set</code>, <code>@index</code>,
               or <code>@language</code>. Otherwise, an
               <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-container-mapping">invalid container mapping</a></code> error
@@ -1171,7 +1171,7 @@
           does not contain the key <code>@type</code>:
           <ol class="algorithm">
             <li>Initialize <em>language</em> to the value associated with the
-              <code>@language</code> key, which MUST be either <tref>null</tref>
+              <code>@language</code> key, which must be either <tref>null</tref>
               or a <tref>string</tref>. Otherwise, an
               <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-mapping">invalid language mapping</a></code>
               error has been detected.</li>
@@ -1337,7 +1337,7 @@
           IRI references are treated in the same way that unreserved characters
           are treated in URI references, per section 6.5 of [[!RFC3987]].</li>
         <li>If <tref>local context</tref> is not <tref>null</tref> then
-          <em>result</em> MUST be an <tref>absolute IRI</tref>, if not,
+          <em>result</em> must be an <tref>absolute IRI</tref>, if not,
           an <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-IRI-mapping">invalid IRI mapping</a></code>
           error has been detected.</li>
         <li>Return <em>result</em>.</li>
@@ -1468,7 +1468,7 @@
                   <tref>active property</tref>, <em>item</em> as <em>element</em>,
                   and <em>insideList</em>.</li>
                 <li>If <em>insideList</em> is <tref>true</tref> then
-                  <em>expanded item</em> MUST NOT be an <tref>array</tref> or a
+                  <em>expanded item</em> must not be an <tref>array</tref> or a
                   <tref>list object</tref>, otherwise a
                   <code class="error"><a href="#idl-def-JsonLdErrorCode.list-of-lists">list of lists</a></code> error has been detected.</li>
                 <li>If <em>expanded item</em> is an <tref>array</tref>, append each
@@ -1510,35 +1510,35 @@
                   an <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-reverse-property-map">invalid reverse property map</a></code>
                   error has been detected.</li>
                 <li>If <em>expanded property</em> is <code>@id</code> then
-                  <em>value</em> MUST be a <tref>string</tref>, otherwise an
+                  <em>value</em> must be a <tref>string</tref>, otherwise an
                   <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--id-value">invalid @id value</a></code>
                   error has been detected.</li>
                 <li>If <em>expanded property</em> is <code>@type</code> then
-                  <em>value</em> MUST be a <tref>string</tref> or an <tref>array</tref>
+                  <em>value</em> must be a <tref>string</tref> or an <tref>array</tref>
                   of strings, otherwise an
                   <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-type-value">invalid type value</a></code>
                   error has been detected.</li>
                 <li>If <em>expanded property</em> is <code>@graph</code> then
-                  <em>value</em> MUST be a <tref>JSON object</tref> or an
+                  <em>value</em> must be a <tref>JSON object</tref> or an
                   <tref>array</tref>, otherwise an
                   <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--graph-value">invalid @graph value</a></code>
                   error has been detected.</li>
                 <li>If <em>expanded property</em> is <code>@value</code> then
-                  <em>value</em> MUST NOT be a <tref>JSON object</tref> or
+                  <em>value</em> must not be a <tref>JSON object</tref> or
                   an <tref>array</tref>, otherwise an
                   <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-value-object-value">invalid value object value</a></code>
                   error has been detected.</li>
                 <li>If <em>expanded property</em> is <code>@language</code> then
-                  <em>value</em> MUST be a <tref>string</tref>, otherwise an
+                  <em>value</em> must be a <tref>string</tref>, otherwise an
                   <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-tagged-string">invalid language tagged string</a></code>
                   error has been detected. Set <em>expanded value</em> to lowercased
                   <em>value</em>.</li>
                 <li>If <em>expanded property</em> is <code>@index</code>
-                  then <em>value</em> MUST be a <tref>string</tref>, otherwise an
+                  then <em>value</em> must be a <tref>string</tref>, otherwise an
                   <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--index-value">invalid @index value</a></code>
                   error has been detected.</li>
                 <li>If <em>expanded property</em> is <code>@reverse</code> then
-                  <em>value</em> MUST be a <tref>JSON object</tref>, otherwise an
+                  <em>value</em> must be a <tref>JSON object</tref>, otherwise an
                   <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid--reverse-value">invalid @reverse value</a></code>
                   error has been detected.</li>
               </ol>
@@ -1603,7 +1603,7 @@
                       <em>language value</em>.</li>
                     <li>For each <em>item</em> in <em>language value</em>:
                       <ol class="algorithm">
-                        <li><em>item</em> MUST be a <tref>string</tref>,
+                        <li><em>item</em> must be a <tref>string</tref>,
                           otherwise an
                           <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-language-map-value">invalid language map value</a></code>
                           error has been detected.</li>
@@ -1663,7 +1663,7 @@
                   for <em>insideList</em> if <em>expanded property</em> is
                   <code>@list</code> otherwise <tref>false</tref>.</li>
                 <li>If <em>expanded property</em> is <code>@list</code>
-                  then <em>expanded value</em> MUST NOT be a
+                  then <em>expanded value</em> must not be a
                   <tref>list object</tref>, otherwise a
                   <code class="error"><a href="#idl-def-JsonLdErrorCode.list-of-lists">list of lists</a></code>
                   error has been detected.</li>
@@ -1724,9 +1724,9 @@
         </li>
         <li>If <em>result</em> contains the key <code>@value</code>:
           <ol class="algorithm">
-            <li>The <em>result</em> MUST NOT contain any keys other than
+            <li>The <em>result</em> must not contain any keys other than
               <code>@value</code>, <code>@language</code>, <code>@type</code>,
-              and <code>@index</code>. It MUST NOT contain both the
+              and <code>@index</code>. It must not contain both the
               <code>@language</code> key and the <code>@type</code> key.
               Otherwise, an
               <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-value-object">invalid value object</a></code>
@@ -1745,8 +1745,8 @@
         <li>Otherwise, if <em>result</em> contains the key <code>@set</code>
           or <code>@list</code>:
           <ol class="algorithm">
-            <li>The <em>result</em> MUST contain at most one other key and that
-              key MUST be <code>@index</code>. Otherwise, an
+            <li>The <em>result</em> must contain at most one other key and that
+              key must be <code>@index</code>. Otherwise, an
               <code class="error"><a href="#idl-def-JsonLdErrorCode.invalid-set-or-list-object">invalid set or list object</a></code>
               error has been detected.</li>
             <li>If <em>result</em> contains the key <code>@set</code>, then
@@ -2191,7 +2191,7 @@
                           <code>@index</code> key in <em>expanded item</em> as <em>value</em>.</li>
                       </ol>
                     </li>
-                    <li>Otherwise, <em>item active property</em> MUST NOT be a key
+                    <li>Otherwise, <em>item active property</em> must not be a key
                       in <em>result</em> because there cannot be two
                       <tref title="list object">list objects</tref> associated
                       with an <tref>active property</tref> that has a
@@ -3062,7 +3062,7 @@
             of <tref>active subject</tref> in <em>activeGraph</em>. Then remove the <code>@type</code> member
             from <em>element</em>.</li>
           <li>If <em>element</em> has an <code>@index</code> member, set the <code>@index</code>
-            of <tref>active subject</tref> in <em>activeGraph</em> to its value. There MUST be no
+            of <tref>active subject</tref> in <em>activeGraph</em> to its value. There must be no
             existing member already in <tref>active subject</tref> with a different value, if there
             is, then a
             <code class="error"><a href="#idl-def-JsonLdErrorCode.conflicting-indexes">conflicting indexes</a></code>
@@ -3145,12 +3145,6 @@
       <tref>RDF dataset</tref>. The algorithm below is designed for in-memory
       implementations with random access to <tref>JSON object</tref> elements.</p>
 
-    <p>A conforming JSON-LD processor implementing RDF conversion MUST implement a
-      processing algorithm that results in the same <tref>RDF dataset</tref> that the
-      following algorithm generates. Conformant implementations are only required to
-      produce the same <tref>RDF dataset</tref> but are not required to implement the
-      algorithm exactly as described.</p>
-
     <section class="informative">
       <h3>Purpose</h3>
       <p>A JSON-LD document needs to be converted to an <tref>RDF dataset</tref>.</p>
@@ -3300,8 +3294,10 @@
 
     <section>
       <h3>Algorithm</h3>
-      <p>The algorithm takes as its sole argument <em>item</em> which MUST be
+
+      <p>The algorithm takes as its sole argument <em>item</em> which must be
         either a <tref>value object</tref> or <tref>node object</tref>.</p>
+
       <ol class="algorithm">
         <li>If <em>item</em> is a <tref>value object</tref>:
           <ol class="algorithm">
@@ -3334,7 +3330,7 @@
             <li>Return <em>literal</em>.</li>
           </ol>
         </li>
-        <li>Otherwise, <em>item</em> MUST be a <tref>node object</tref> containing
+        <li>Otherwise, <em>item</em> must be a <tref>node object</tref> containing
           only <code>@id</code> having an <tref>IRI</tref> or
           <tref>blank node identifier</tref> value. Return that value.</li>
       </ol>
@@ -3404,12 +3400,6 @@
     <p>This section describes algorithms to transform an <tref>RDF dataset</tref>
       into a JSON-LD document.</p>
 
-    <p>A conforming JSON-LD processor implementing RDF conversion MUST implement a
-      processing algorithm that results in the same JSON-LD document that the following
-      algorithm generates. Conformant implementations are only required to produce
-      the same JSON-LD document but are not required to implement the algorithm exactly
-      as described.</p>
-
     <section class="informative">
       <h3>Purpose</h3>
 
@@ -3422,8 +3412,8 @@
         designed to simply translate an array of <tref title="triple">triples</tref>
         into a JSON-LD document.</p>
       <p>When expanding <tref title="typed value">typed values</tref> having a datatype
-        of <code>xsd:string</code>, the <code>@type</code> MUST NOT be set to
-        <code>xsd:string</code> and the resulting value MUST have only an
+        of <code>xsd:string</code>, the <code>@type</code> must not be set to
+        <code>xsd:string</code> and the resulting value must have only an
         <code>@value</code> property.</p>
     </section>