Updates to complete issue #43.
authorGregg Kellogg <gregg@kellogg-assoc.com>
Sat, 24 Mar 2012 23:39:00 -0700
changeset 408 3a4887c9e7be
parent 407 925e99da669e
child 409 ff80888a52f9
Updates to complete issue #43.
spec/latest/json-ld-api/index.html
spec/latest/json-ld-syntax/index.html
--- a/spec/latest/json-ld-api/index.html	Sat Mar 24 18:16:26 2012 -0700
+++ b/spec/latest/json-ld-api/index.html	Sat Mar 24 23:39:00 2012 -0700
@@ -848,7 +848,8 @@
     <dt><tdef>active property</tdef></dt>
     <dd>
       the currently active property that the processor should use when
-      processing.
+      processing. The active property is represented in the original lexical form, which
+      is used for finding coercion mappings in the <tref>active context</tref>.
     </dd>
     <dt><tdef>active object</tdef></dt>
     <dd>
@@ -927,7 +928,9 @@
     of a list (see <span a="#list-processing">List Processing</span>)) using a <tdef>term mapping</tdef>.
     It is also used to maintain
     <tdef>coercion mapping</tdef>s from terms to datatypes, <tdef>language mapping</tdef>s from terms to language codes,
-    and <tdef>list mapping</tdef>s and <tdef>set mapping</tdef>s for terms.</p>
+    and <tdef>list mapping</tdef>s and <tdef>set mapping</tdef>s for terms. Processors MUST use the
+    lexical form of the key when creating a mapping, as lookup is performed on lexical key representations, not
+    expanded IRI representations.</p>
   <p>A <tref>local context</tref> is identified within a <tref>JSON object</tref> having a key of
     <code>@context</code> with <tref>string</tref>, <tref>array</tref> or a <tref>JSON object</tref> value.
     When processing a <tref>local context</tref>, special processing rules apply:</p>
@@ -981,13 +984,13 @@
                       <tref>compact IRI</tref>, <tref>absolute IRI</tref> or the <tref>keyword</tref> <code>@id</code>. Determine the IRI by
                       performing <a href="#iri-expansion">IRI Expansion</a> on the associated value. If the result of the
                       IRI mapping is an <tref>absolute IRI</tref> or <code>@id</code>, merge into the <tref>local context</tref>
-                      <tref>coercion mapping</tref>.</li>
+                      <tref>coercion mapping</tref> using the lexical value of the key..</li>
                     <li>If the value has a <code>@container</code> key, the value MUST be
                       <code>@list</code> or <code>@set</code>. Merge the <tref>list mapping</tref> or
-                      <tref>set mapping</tref> into the <tref>local context</tref>.</li>
+                      <tref>set mapping</tref> into the <tref>local context</tref> using the lexical value of the key..</li>
                     <li>If the value has a <code>@language</code> key but no <code>@type</code> key, the value of the
                       <code>@language</code> key MUST be a <tref>string</tref> or <tref>null</tref>.
-                      Merge the <tref>language mapping</tref> into the <tref>local context</tref>.</li>
+                      Merge the <tref>language mapping</tref> into the <tref>local context</tref> using the lexical value of the key..</li>
                   </ol>
                 </li>
                 <li>Merge the <tref>local context</tref> into the <tref>active context</tref>.</li>
--- a/spec/latest/json-ld-syntax/index.html	Sat Mar 24 18:16:26 2012 -0700
+++ b/spec/latest/json-ld-syntax/index.html	Sat Mar 24 23:39:00 2012 -0700
@@ -1629,6 +1629,12 @@
   associated with any language code since it was reset in the expanded term
   definition.</p>
 
+<p>Expanded terms MAY also be defined using <tref title="compact_iri">Compact IRIs</tref> or
+  <tref title="IRI">IRIs</tref> as keys. If the definition does not include an <code>@id</code> key,
+  the expanded IRI is determined by performing expansion of the key within the current active context.</p>
+
+<p class="note">Although it is possible to define a CURIE or IRI to expand to some other IRI, such
+  usage is strongly discouraged.</p>
 </section>
 
 <section>
@@ -1721,12 +1727,14 @@
 <p>In this case, the <code>@id</code> definition is optional, but if it does exist, the <tref>compact IRI</tref>
   or <tref>IRI</tref> is treated as a term so that the actual definition of a <tref>prefix</tref> becomes unnecessary.</p>
 
-<!-- FIXME: pending final resolution of coercion
 <p class="note">Keys in the context are treated as <tref title="term">terms</tref> for the purpose of
   expansion and value coercion. This allows multiple representations for the same expanded IRI, which may be
   useful for establishing different type coercion rules. It also allows a <tref>compact IRI</tref> (or even an
   absolute <tref>IRI</tref>) to be defined as something else entirely, but this usage is discouraged.</p>
--->
+
+<p>Type coercion is performed using the unexpanded value of the key, which MUST exactly match a coercion
+  rule in the <tref>active context</tref>.
+
 </section>
 
 <section>