Instead of setting '@vocab' and '@language' as defined, skip them.
--- a/spec/latest/json-ld-api/index.html Tue Feb 26 00:24:27 2013 -0500
+++ b/spec/latest/json-ld-api/index.html Tue Feb 26 00:38:03 2013 -0500
@@ -963,11 +963,6 @@
detected.
</li>
<li>
- Create a <tref>JSON object</tref> <em>defined</em> to use to keep
- track of whether or not a <tref>term</tref> has already been defined
- or currently being defined during recursion.
- </li>
- <li>
If <em>context</em> has an <code>@vocab</code> key:
<ol class="algorithm">
<li>
@@ -984,10 +979,6 @@
error has been detected. Set <em>result</em>'s
<tref>vocabulary mapping</tref> to <em>value</em>.
</li>
- <li>
- Set <em>defined</em>'s <code>@vocab</code> key to
- <tref>true</tref>.
- </li>
</ol>
</li>
<li>
@@ -1007,15 +998,17 @@
has been detected. Set <em>result</em>'s
<tref>default language</tref> to lowercased <em>value</em>.
</li>
- <li>
- Set <em>defined</em>'s <code>@language</code> key to
- <tref>true</tref>.
- </li>
</ol>
</li>
<li>
- For each <em>key</em>-<em>value</em> pair in <em>context</em> invoke
- the <a href="#create-term-definition-subalgorithm">Create Term Definition</a>
+ Create a <tref>JSON object</tref> <em>defined</em> to use to keep
+ track of whether or not a <tref>term</tref> has already been defined
+ or currently being defined during recursion.
+ </li>
+ <li>
+ For each <em>key</em>-<em>value</em> pair in <em>context</em> where
+ <em>key</em> is not <code>@vocab</code> or <code>@language</code>,
+ invoke the <a href="#create-term-definition-subalgorithm">Create Term Definition</a>
subalgorithm, passing <em>result</em> for <tref>active context</tref>,
<em>context</em> for <tref>local context</tref>, <em>key</em>,
and <em>defined</em>.