Remove term definition inheritance.
authorDave Longley <dlongley@digitalbazaar.com>
Tue, 12 Feb 2013 15:08:13 -0500
changeset 1232 ab7a2ccf297a
parent 1231 2ba2c2f8f093
child 1233 7e945869df1f
Remove term definition inheritance.
spec/latest/json-ld-api/index.html
--- a/spec/latest/json-ld-api/index.html	Tue Feb 12 19:52:52 2013 +0100
+++ b/spec/latest/json-ld-api/index.html	Tue Feb 12 15:08:13 2013 -0500
@@ -1095,13 +1095,6 @@
     is now being created but is not yet complete.
   </li>
   <li>
-    If <em>term</em> is a <tref>compact IRI</tref> with a <tref>prefix</tref>
-    that is a key in <tref>local context</tref> then a dependency has been
-    found. Use this algorithm recursively passing <tref>active context</tref>,
-    <tref>local context</tref>, the <tref>prefix</tref> as <em>term</em>,
-    and <em>defined</em>.
-  </li>
-  <li>
     Since <tref title="keyword">keywords</tref> cannot be overridden,
     <em>term</em> MUST NOT be a <tref>keyword</tref>. Otherwise, an
     invalid value has been detected, which is an error.
@@ -1127,13 +1120,12 @@
     <ol class="algorithm">
       <li>
         If <em>value</em> is a <tref>keyword</tref>, then <em>value</em>
-        MUST NOT be equal to <code>@context</code> or <code>@preserve</code>.
-        Otherwise an invalid keyword alias has been detected, which is an
-        error. Add <em>term</em> to <tref>active context</tref> as a
-        <tref>keyword</tref> alias for <em>value</em>. If there is more
-        than one <tref>keyword</tref> alias for <em>value</em>, then
-        store its aliases as an <tref>array</tref>, sorted by length,
-        breaking ties lexicographically.
+        MUST NOT be equal to <code>@context</code>. Otherwise an invalid
+        keyword alias has been detected, which is an error. Add <em>term</em>
+        to <tref>active context</tref> as a <tref>keyword</tref> alias for
+        <em>value</em>. If there is more than one <tref>keyword</tref> alias
+        for <em>value</em>, then store its aliases as an <tref>array</tref>,
+        sorted by length, breaking ties lexicographically.
       </li>
       <li>
         Otherwise, expand <em>value</em> by setting it to the result of
@@ -1158,11 +1150,6 @@
     Create a new <tref>JSON object</tref>, <em>definition</em>.
   </li>
   <li>
-   If <em>term</em> is a <tref>compact IRI</tref> and its
-   <tref>prefix</tref> has a <tref>term definition</tref> in
-   <tref>active context</tref>, set <em>definition</em> to a copy of it.
-  </li>
-  <li>
     If <em>value</em> contains the key <code>@id</code>:
     <ol class="algorithm">
       <li>
@@ -1215,25 +1202,36 @@
     </ol>
   </li>
   <li>
-    Otherwise, if <em>term</em> is not a <tref>compact IRI</tref>,
-    then <tref>active context</tref> MUST have a
+    Otherwise if the <em>term</em> contains a colon (<code>:</code>):
+    <ol class="algorithm">
+      <li>
+        If <em>term</em> is a <tref>compact IRI</tref> with a
+        <tref>prefix</tref> that is a key in <tref>local context</tref> then
+        a dependency has been found. Use this algorithm recursively passing
+        <tref>active context</tref>, <tref>local context</tref>, the
+        <tref>prefix</tref> as <em>term</em>, and <em>defined</em>.
+      </li>
+      <li>
+        If <em>term</em>'s <tref>prefix</tref> has a
+        <tref>term definition</tref> in <tref>active context</tref>, set
+        the <tref>IRI mapping</tref> for <em>definition</em> to the result of
+        concatenating the value associated with the <tref>prefix</tref>'s
+        <tref>IRI mapping</tref> and the <em>term</em>'s <em>suffix</em>.
+      </li>
+      <li>
+        Otherwise, <em>term</em> is an <tref>absolute IRI</tref>. Set the
+        <tref>IRI mapping</tref> for <em>definition</em> to <em>term</em>.
+      </li>
+    </ol>
+  </li>
+  <li>
+    Otherwise, <tref>active context</tref> MUST have a
     <tref>vocabulary mapping</tref>, otherwise an invalid value has
     been detected, which is an error. Set the <tref>IRI mapping</tref>
     for <em>definition</em> to the result of concatenating the value
     associated with the <tref>vocabulary mapping</tref> and <em>term</em>.
   </li>
   <li>
-    Otherwise, if <em>term</em>'s <tref>prefix</tref> has a
-    <tref>term definition</tref> in <tref>active context</tref>, set
-    the <tref>IRI mapping</tref> for <em>definition</em> to the result of
-    concatenating the value associated with the <tref>prefix</tref>'s
-    <tref>IRI mapping</tref> and the <em>term</em>'s <em>suffix</em>.
-  </li>
-  <li>
-    Otherwise, <em>term</em> is an <tref>absolute IRI</tref>. Set the
-    <tref>IRI mapping</tref> for <em>definition</em> to <em>term</em>.
-  </li>
-  <li>
     If <em>value</em> contains the key <code>@type</code>:
     <ol class="algorithm">
       <li>