Fix IRI Expansion algorithm
authorMarkus Lanthaler <mark_lanthaler@gmx.net>
Mon, 18 Feb 2013 14:00:52 +0100
changeset 1297 77d333e6218b
parent 1296 beb9e18fe66e
child 1298 c7483c370274
Fix IRI Expansion algorithm

I broke it in fcedc880ebaca919ee409a6edced8ac9ea943330 :-(
spec/latest/json-ld-api/index.html
--- a/spec/latest/json-ld-api/index.html	Sun Feb 17 13:37:38 2013 -0500
+++ b/spec/latest/json-ld-api/index.html	Mon Feb 18 14:00:52 2013 +0100
@@ -1791,8 +1791,9 @@
       the <tref>local context</tref>, and then we expand <em>value</em> using the
       associated <tref>IRI mapping</tref> and concatenating <em>suffix</em>.</p>
 
-    <p>At this point, if our expanded <em>value</em> is a
-      <tref>blank node identifier</tref> we relabel it by setting it to the result of the
+    <p>At this point, if our expanded <em>value</em> is a <tref>keyword</tref>,
+      we return it. If it is a <tref>blank node identifier</tref> we relabel it by
+      setting it to the result of the
       <a href="#generate-blank-node-identifier">Generate Blank Node Identifier</a>
       algorithm. Otherwise, if it is not an <tref>absolute IRI</tref>, we resolve
       it against either the <tref title="active context">active context's</tref>
@@ -1820,9 +1821,8 @@
       <em>defined</em> are initialized to <tref>null</tref>.</p>
 
     <ol class="algorithm">
-      <li>If <em>value</em> equals <tref>null</tref>, then return <tref>null</tref>.</li>
-      <li>If <tref>active context</tref> indicates that <em>value</em> is a
-        <tref>keyword</tref> alias then return the associated <tref>keyword</tref>.</li>
+      <li>If <em>value</em> is a <tref>keyword</tref> or equals <tref>null</tref>,
+        return <em>value</em> as is.</li>
       <li>If <tref>local context</tref> is not <tref>null</tref>, it contains
         a key that equals <em>value</em>, and the value associated with the key
         that equals <em>value</em> in <em>defined</em> is not <tref>true</tref>,
@@ -1877,6 +1877,8 @@
         </ol>
       </li>
       <li>If <em>result</em> is <tref>null</tref>, set it to <em>value</em>.</li>
+      <li>If <tref>active context</tref> indicates that <em>value</em> is a
+        <tref>keyword</tref> alias then return the associated <tref>keyword</tref>.</li>
       <li>If <tref>local context</tref> equals <tref>null</tref> and <em>result</em>
         begins with an underscore and colon (<code>_:</code>) then <em>result</em> is a
         <tref>blank node identifier</tref>. Set <em>result</em> to the