--- a/spec/latest/json-ld-syntax/index.html Thu Feb 14 19:03:51 2013 +0100
+++ b/spec/latest/json-ld-syntax/index.html Thu Feb 14 19:31:59 2013 +0100
@@ -694,7 +694,7 @@
<code>@id</code> or <code>@type</code>.</li>
<li>An <tref>IRI</tref> is generated for the <tref>string</tref> value of any key for which there
are <tref>coercion</tref> rules that contain a <code>@type</code> key that is
- set to a value of <code>@id</code>.</li>
+ set to a value of <code>@id</code> or <code>@vocab</code>.</li>
</ol>
</section>
@@ -1097,9 +1097,18 @@
<p>Type coercion is specified within an <tref>expanded term definition</tref>
using the <code>@type</code> key. The value of this key expands to an <tref>IRI</tref>.
- Alternatively, the <tref>keyword</tref> <code>@id</code> may be used as value to indicate
- that within the body of a JSON-LD document, a string value of a <tref>term</tref> coerced to
- <code>@id</code> is to be interpreted as an <tref>IRI</tref>.</p>
+ Alternatively, the <tref title="keyword">keywords</tref> <code>@id</code> or <code>@vocab</code> may be used
+ as value to indicate that within the body of a JSON-LD document, a <tref>string</tref> value of a
+ <tref>term</tref> coerced to <code>@id</code> or <code>@vocab</code> is to be interpreted as an
+ <tref>IRI</tref>. The difference between <code>@id</code> and <code>@vocab</code> is how values are expanded
+ to <tref title="absolute IRI">absolute IRIs</tref>. <code>@vocab</code> first tries to expand the value
+ by interpreting it as <tref>term</tref>. If no matching <tref>term</tref> is found in the
+ <tref>active context</tref>, it tries to expand it as <tref>compact IRI</tref> or <tref>absolute IRI</tref>
+ if there's a colon in the value; otherwise, it will expand the value using the
+ <tref title="active context">active context's</tref> vocabulary mapping, if present, or by interpreting it
+ as <tref>relative IRI</tref>. Values coerced to <code>@id</code> in contrast are expanded as
+ <tref>compact IRI</tref> or <tref>absolute IRI</tref> if a colon is present; otherwise, they are interpreted
+ as <tref>relative IRI</tref>.
<p><tref title="term">Terms</tref> or <tref title="compact_iri">compact IRIs</tref> used as the value of a
<code>@type</code> key may be defined within the same context. This means that one may specify a
@@ -2889,7 +2898,9 @@
or the <tref>active context</tref>, or an <tref>array</tref> composed of any of the previous allowed values except
<tref>null</tref>.</p>
<p>If the <tref>expanded term definition</tref> contains the <code>@type</code> <tref>keyword</tref>,
- its value MUST be an <tref>absolute IRI</tref>, a <tref>compact IRI</tref>, a <tref>term</tref> defined in the defining <tref>context definition</tref> or the <tref>active context</tref>, or the <code>@id</code> <tref>keyword</tref>.</p>
+ its value MUST be an <tref>absolute IRI</tref>, a <tref>compact IRI</tref>, a <tref>term</tref> defined in the
+ defining <tref>context definition</tref> or the <tref>active context</tref>, <tref>null</tref>, or the one of the
+ <tref title="keyword">keywords</tref> <code>@id</code> or <code>@vocab</code>.</p>
<p>If the <tref>expanded term definition</tref> contains the <code>@language</code> <tref>keyword</tref>,
its value MUST have the lexical form described in [[!BCP47]] or be <tref>null</tref>.</p>
<p>If the <tref>expanded term definition</tref> contains the <code>@container</code> <tref>keyword</tref>,