Tighten up list language and make it clear that a term is an NCName.
authorGregg Kellogg <gregg@kellogg-assoc.com>
Sun, 06 Nov 2011 23:17:59 -0800
changeset 260 bb41d2510ee5
parent 259 4c9996850f3c
child 266 d9180d550363
Tighten up list language and make it clear that a term is an NCName.
spec/latest/json-ld-api/index.html
spec/latest/json-ld-syntax/index.html
--- a/spec/latest/json-ld-api/index.html	Sun Nov 06 19:48:26 2011 -0800
+++ b/spec/latest/json-ld-api/index.html	Sun Nov 06 23:17:59 2011 -0800
@@ -826,9 +826,9 @@
         </li>
         <li>
           Otherwise, for each key in <em>value</em> having the lexical form of <cite><a
-          href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NCName</a></cite> (see [[XML-NAMES]]), it's value
-          MUST have be a simple <tref>string</tref> with the lexical form of IRI. Merge the key-value
-          pair into the <tref>local context</tref>.
+          href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NCName</a></cite> (see [[XML-NAMES]]),
+          it's value MUST have be a simple <tref>string</tref> with the lexical form of absolute IRI. Merge the
+          key-value pair into the <tref>local context</tref>.
         </li>
       </ol>
     </li>
@@ -859,6 +859,13 @@
       <tref>active context</tref>. If the result is an <tref>array</tref>
       with a single value, the processor MAY represent this as a string value.
     </p>
+    <p class="issue">
+      There is active discussion on merging the @coerce mappings into <tref>term</tref>
+      definitions, in which case <tref>term</tref> or <tref>prefix</tref> expansion cannot
+      take place unless they are in the active context when processing a context
+      definition (i.e., they were previously defined in a context definition prior to
+      parsing a new context definition).
+    </p>
   </section>
 
   <section>
@@ -2771,7 +2778,7 @@
       If a regular <tref>array</tref> is detected
       <ol class="algorithm">
         <li id="processing-step-list">If the <tref>active property</tref> is the target of an
-          <code>@list</code> coercion Generate an RDF List by linking each element of the list using
+          <code>@list</code> coercion Generate an <cite><a href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab">RDF Collection</a></cite> (see [[!RDF-SCHEMA]]) by linking each element of the list using
           <code>rdf:first</code> and <code>rdf:next</code>, terminating the list with <code>rdf:nil</code> using the
           following sequence:
           <ol class="algorithm">
--- a/spec/latest/json-ld-syntax/index.html	Sun Nov 06 19:48:26 2011 -0800
+++ b/spec/latest/json-ld-syntax/index.html	Sun Nov 06 23:17:59 2011 -0800
@@ -383,7 +383,7 @@
     <dt><tdef>array</tdef></dt>
     <dd>
       An array is an ordered collection of values. An array structure is represented as square brackets surrounding zero or more values (or elements). Elements are separated by commas.  Within JSON-LD, array order is not preserved by default, unless
-      specific markup is provided (see <a href="#lists">Lists</a>). This is because the basic data model of JSON-LD
+      specific markup is provided (see <a href="#rdf-collection">Lists</a>). This is because the basic data model of JSON-LD
       is a <tref>linked data graph</tref>, which is inherently unordered.
     </dd>
     <dt><tdef>string</tdef></dt><dd>
@@ -1171,7 +1171,7 @@
 
 <p class="note">In JSON-LD, multiple objects on a property are not ordered. This is because typically graphs
 are not inherently ordered data structures. To see more on creating ordered collections
-in JSON-LD, see <a href="#lists">Lists</a>.
+in JSON-LD, see <a href="#rdf-collection">Lists</a>.
 </p>
 
 <pre class="example" data-transform="updateExample">
@@ -1245,7 +1245,7 @@
 
 </section>
 
-<section>
+<section id="rdf-collection">
   <h2>Lists</h2>
   <p>
     Because graphs do not describe ordering for links between nodes, in contrast to plain JSON, multi-valued properties
@@ -1305,6 +1305,10 @@
     The @list keyword can be used within the <code>@coerce</code> section of a <code>@context</code> to
     cause value arrays to be coerced into an ordered list.
   </p>
+  <p>
+    In RDF, a list is described as an <cite><a href="http://www.w3.org/TR/rdf-schema/#ch_collectionvocab">RDF
+    Collection</a></cite> as defined in [[!RDF-SCHEMA]].
+  </p>
 </section>
 
 </section>
@@ -1555,6 +1559,17 @@
 property types. Using type coercion, one may convert simple JSON data to
 properly typed RDF data.</p>
 
+<p>Keys within a <code>@coerce</code> definition represent datatype IRIs and MUST take the form
+  of <tref>term</tref>, <tref>prefix</tref>:suffix, absolute IRI or the keywords <code>@iri</code> or <code>@list</code>.
+  Specifying <code>@iri</code> indicates that within the body of a JSON-LD document, string values of keys coerced as
+  <code>@iri</code> are to be interpreted as <tref>IRI</tref>s, and are subject to IRI expansion. Specifying
+  <code>@list</code> indicates that array values of keys coerced as <code>@list</code> are to be serialized
+  as a <a href="#rdf-collection">List</a>.</p>
+  
+<p>Values within a <code>@coerce</code> definition represent property IRIs and MUST take the form
+  of <tref>term</tref>, <tref>prefix</tref>:suffix or <tref>array</tref>. Multiple values may be represented using
+  array form, where each element of the <tref>array</tref> must be a <tref>string</tref> interpreted as <tref>term</tref> or <tref>prefix</tref>:suffix.</p>
+  
 <p>The example below demonstrates how a JSON-LD author can coerce values to
 <tref>plain literal</tref>s, <tref>typed literal</tref>s and IRIs.</p>