Add grammar for @vocab, and allow @vocab to be set to null, erasing it from a previous context.
authorGregg Kellogg <gregg@kellogg-assoc.com>
Sat, 04 Aug 2012 15:26:17 -0700
changeset 797 4e9cd38a840a
parent 796 c1d564d11689
child 798 66e1d2e87e4e
Add grammar for @vocab, and allow @vocab to be set to null, erasing it from a previous context.
spec/latest/json-ld-api/index.html
spec/latest/json-ld-syntax/index.html
--- a/spec/latest/json-ld-api/index.html	Wed Aug 01 10:28:27 2012 -0700
+++ b/spec/latest/json-ld-api/index.html	Sat Aug 04 15:26:17 2012 -0700
@@ -1202,9 +1202,9 @@
         <li>If <em>context</em> is a <tref>JSON object</tref>, perform the following steps:
           <ol class="algorithm">
             <li>If <em>context</em> has a <code>@language</code> property, it MUST have a value of a
-              simple <tref>string</tref> or <tref>null</tref>. Add the language to the <tref>local context</tref>.</li>
+              simple <tref>string</tref> with the lexical form described in [[!BCP47]], or <tref>null</tref>. Add the language to the <tref>local context</tref>.</li>
             <li>If <em>value</em> has a <code>@vocab</code> key, it MUST have a value of a simple <tref>string</tref>
-              with the lexical form of an absolute IRI. Add the vocabulary mapping to the <tref>local context</tref>.</li>
+              with the lexical form of an <tref>absolute IRI</tref>, or <tref>null</tref>. Add the vocabulary mapping to the <tref>local context</tref>.</li>
             <li id="object-context">Otherwise, for each property in <em>context</em> perform the following steps:
               <ol class="algorithm">
                 <li>If the property's value is a simple <tref>string</tref>, determine the IRI mapping value by
@@ -1274,7 +1274,7 @@
   <h2>IRI Expansion</h2>
   <p>Keys and some values are evaluated to produce an <tref>IRI</tref>. This section defines an algorithm for
     transforming a value representing an IRI into an actual IRI.</p>
-  <p><tref>IRI</tref>s may be represented as an <tref>absolute IRI</tref>, a <tref>term</tref>,
+  <p><tref title="IRI">IRIs</tref> may be represented as an <tref>absolute IRI</tref>, a <tref>term</tref>,
     a <tref>compact IRI</tref>, or as a value relative to <code>@vocab</code>.</p>
   <p>An <tdef>absolute IRI</tdef> is defined in [[!RFC3987]] containing a <em>scheme</em> along with
     <em>path</em> and optional <em>query</em> and fragment segments. A <tdef>relative IRI</tdef> is an IRI
--- a/spec/latest/json-ld-syntax/index.html	Wed Aug 01 10:28:27 2012 -0700
+++ b/spec/latest/json-ld-syntax/index.html	Sat Aug 04 15:26:17 2012 -0700
@@ -2727,12 +2727,15 @@
 <section id="grammar-context">
 <h2>Context Definition</h2>
 <p>A <tdef>context definition</tdef> is a <tref>JSON object</tref>
-  containing one or more key/value pairs. Keys are <tref title="string">strings</tref>
-  or the <code>@language</code> <tref>keyword</tref>. A <tref>context definition</tref>
+  containing one or more key/value pairs. Keys are non-keyword <tref title="string">strings</tref>
+  or the <code>@language</code> or <code>@vocab</code> <tref title="keyword">keywords</tref>.
+  A <tref>context definition</tref>
   SHOULD NOT contain any keys having the lexical form of <tref>keyword</tref> other than
-  <code>@language</code>.</p>
+  <code>@language</code> or <code>@vocab</code>.</p>
 <p>If the <tref>context definition</tref> has a <code>@language</code> key,
   the value MUST have the lexical form described in [[!BCP47]] or <tref>null</tref>.</p>
+<p>If the <tref>context definition</tref> has a <code>@vocab</code> key,
+  the value MUST have the lexical form of <tref>absolute IRI</tref> or <tref>null</tref>.</p>
 <p>Other keys are <tref>term</tref> definitions. Their values MUST be either a
   <tref>string</tref>, or a <tref>JSON object</tref>. If the value is a
   <tref>JSON object</tref>, the <tref>term</tref> has an <tdef>expanded term