Rename @annotation to @index
authorMarkus Lanthaler <mark_lanthaler@gmx.net>
Wed, 30 Jan 2013 20:28:21 +0100
changeset 1169 6a3d1cfc3be4
parent 1168 4864c4052c79
child 1170 92c975749461
Rename @annotation to @index

The API spec and the test suite has been fully updated. In the syntax spec, everything except the prose of the "Data Annotations" section has been updated. I added an issue marker. @msporny, could you please update the prose and the title of that section.

I used "indexes" as the plural of "index" as that seemed to be more commonly used than "indices" according Google :-)

This addresses #216.
spec/latest/json-ld-api/index.html
spec/latest/json-ld-syntax/index.html
test-suite/tests/compact-0029-context.jsonld
test-suite/tests/compact-0029-in.jsonld
test-suite/tests/compact-0029-out.jsonld
test-suite/tests/compact-0030-context.jsonld
test-suite/tests/compact-0030-in.jsonld
test-suite/tests/compact-0030-out.jsonld
test-suite/tests/compact-0038-context.jsonld
test-suite/tests/compact-0038-in.jsonld
test-suite/tests/compact-0038-out.jsonld
test-suite/tests/compact-0041-in.jsonld
test-suite/tests/compact-0041-out.jsonld
test-suite/tests/compact-0042-context.jsonld
test-suite/tests/compact-0042-in.jsonld
test-suite/tests/compact-0042-out.jsonld
test-suite/tests/compact-manifest.jsonld
test-suite/tests/expand-0036-in.jsonld
test-suite/tests/expand-0036-out.jsonld
test-suite/tests/expand-0040-in.jsonld
test-suite/tests/expand-0040-out.jsonld
test-suite/tests/expand-0044-in.jsonld
test-suite/tests/expand-0044-out.jsonld
test-suite/tests/expand-manifest.jsonld
test-suite/tests/flatten-0036-in.jsonld
test-suite/tests/flatten-0036-out.jsonld
test-suite/tests/flatten-0040-in.jsonld
test-suite/tests/flatten-0040-out.jsonld
test-suite/tests/flatten-manifest.jsonld
--- a/spec/latest/json-ld-api/index.html	Tue Jan 29 18:07:19 2013 +0100
+++ b/spec/latest/json-ld-api/index.html	Wed Jan 30 20:28:21 2013 +0100
@@ -837,9 +837,9 @@
                 <li>If <em>expanded property</em> equals <code>@language</code>, set the <code>@language</code>
                   member of <em>result</em> to the lowercased <em>value</em>. If <em>value</em> is not
                   a <tref>string</tref>, trigger an <code class="error">invalid language value</code> error.</li>
-                <li>If <em>expanded property</em> equals <code>@annotation</code>, set the <code>@annotation</code>
+                <li>If <em>expanded property</em> equals <code>@index</code>, set the <code>@index</code>
                   member of <em>result</em> to <em>value</em>. If <em>value</em> is not a <tref>string</tref>
-                  trigger an <code class="error">invalid @annotation value</code> error.</li>
+                  trigger an <code class="error">invalid @index value</code> error.</li>
                 <li>If <em>expanded property</em> equals <code>@set</code> set the <em>expanded property</em>
                   member of <em>result</em> to the result of expanding <em>value</em> by
                   recursively using this algorithm, passing copies of the <tref>active context</tref> and
@@ -879,9 +879,9 @@
               </ol>
             </li>
             <li>Otherwise, if <em>property's</em> <tref>container mapping</tref> is set to
-              <code>@annotation</code>
+              <code>@index</code>
               <ol class="algorithm">
-                <li>Initialize a new empty <tref>array</tref> <em>annotation map values</em>.</li>
+                <li>Initialize a new empty <tref>array</tref> <em>index map values</em>.</li>
                 <li>Process each <em>key</em>-<em>val</em> pair of <em>value</em> ordered by
                   <em>key</em> as follows:
                   <ol class="algorithm">
@@ -889,12 +889,12 @@
                     <li>Expand <em>val</em> by recursively using this algorithm, passing copies of
                       the <tref>active context</tref> and <em>property</em> as
                       <tref>active property</tref>.</li>
-                    <li>Add to each item of <em>val</em> a member <code>@annotation</code> set to
+                    <li>Add to each item of <em>val</em> a member <code>@index</code> set to
                       <em>key</em> if no such member exists yet and append the resulting
-                      <tref>JSON object</tref> to <em>annotation map values</em>.</li>
+                      <tref>JSON object</tref> to <em>index map values</em>.</li>
                   </ol>
                 </li>
-                <li>Set <em>value</em> to <em>annotation map values</em>.</li>
+                <li>Set <em>value</em> to <em>index map values</em>.</li>
               </ol>
             </li>
             <li>Otherwise, expand <em>value</em> by recursively using this algorithm, passing
@@ -923,7 +923,7 @@
         </li>
         <li>Set <em>element</em> to <em>result</em> and <em>numProperties</em> to the number of members
           of <em>result</em>.</li>
-        <li>If <em>element</em> has an <code>@annotation</code> member, decrease <em>numProperties</em>
+        <li>If <em>element</em> has an <code>@index</code> member, decrease <em>numProperties</em>
           by 1.</li>
         <li>If the <tref>active property</tref> equals <tref>null</tref> or <code>@graph</code> and
           <em>element</em> has an <code>@value</code> member, <em>numProperties</em> equals <code>0</code>,
@@ -1091,7 +1091,7 @@
                   <tref>string</tref> nor <tref>null</tref>, raise an
                   <code class="error">invalid language mapping</code> error.</li>
                 <li>If <em>value</em> has an <code>@container</code> member with a value <em>val</em> that
-                  equals <code>@list</code>, <code>@set</code>, or <code>@annotation</code>, set the
+                  equals <code>@list</code>, <code>@set</code>, or <code>@index</code>, set the
                   <tref>container mapping</tref> of <em>definition</em> to <em>val</em>.
                   If <em>val</em> is not one of those values, raise an
                   <code class="error">invalid container mapping</code> error.</li>
@@ -1358,12 +1358,12 @@
           <tref>active context</tref>, and <tref>active property</tref>.</li>
         </li>
         <li>If the <tref title="active property">active property's</tref> <tref>container mapping</tref>
-          is set to <code>@language</code> or <code>@annotation</code>
+          is set to <code>@language</code> or <code>@index</code>
           <ol class="algorithm">
             <li>Unless <em>result</em> has already an <tref>active property</tref> member, create one and
               initialize its value to an empty <tref>JSON object</tref>. This object is called <em>mapObject</em>.</li>
             <li>Set <em>index</em> to the value of the <code>@language</code> or
-              <code>@annotation</code> member of <em>item</em> (depending on the value of the
+              <code>@index</code> member of <em>item</em> (depending on the value of the
               <tref title="active property">active property's</tref> <tref>container mapping</tref>).</li>
             <li>First compact <em>item</em> using the <a href="#value-compaction">Value Compaction algorithm</a>
               passing <em>index</em> as <em>containerValue</em>, then compact it by recursively invoking this
@@ -1443,8 +1443,8 @@
               to <tref>null</tref>.</li>
             <li>If <em>value</em> is a <tref>JSON object</tref>
               <ol class="algorithm">
-                <li>and it has an <code>@annotation</code> member, set <em>container</em> to
-                  <code>@annotation</code>.</li>
+                <li>and it has an <code>@index</code> member, set <em>container</em> to
+                  <code>@index</code>.</li>
                 <li>If <em>value</em> has an <code>@id</code> member, set
                   <em>typeOrLanguage</em> to <code>@type</code> and <em>typeLanguageValue</em>
                   to <code>@id</code>.</li>
@@ -1456,7 +1456,7 @@
                     <li>Otherwise, if it has an <code>@language</code> member, set
                       <em>typeOrLanguage</em> to <code>@language</code> and
                       <em>typeLanguageValue</em> to the value of the <code>@language</code>
-                      member of <em>value</em>. If <em>value</em> has no <code>@annotation</code>
+                      member of <em>value</em>. If <em>value</em> has no <code>@index</code>
                       member, set <em>container</em> to <code>@language</code></li>
                     <li>Otherwise, if the value of <em>value's</em> <code>@value</code>
                       member is is a <tref>string</tref>, set <em>typeOrLanguage</em> to
@@ -1473,7 +1473,7 @@
                       2.1.3.4 (which will never be true since list of lists are not
                       allowed) of this algorithm passing the first item of <em>value's</em>
                       <code>@list</code> member as new <em>value</em>.</li>
-                    <li>If <em>value</em> has no <code>@annotation</code> member, set
+                    <li>If <em>value</em> has no <code>@index</code> member, set
                       <em>container</em> to <code>@list</code>.</li>
                     <li>Starting from the second item of <em>value's</em> <code>@list</code>
                       member, recursively run the steps
@@ -1775,8 +1775,8 @@
 
   <ol class="algorithm">
     <li>If a <em>containerValue</em> has been passed, the <tref>active property</tref> has a
-      <tref>container mapping</tref> set to <code>@annotation</code> and <em>value</em>
-      has an <code>@annotation</code> member which equals <em>containerValue</em>, remove that member.</li>
+      <tref>container mapping</tref> set to <code>@index</code> and <em>value</em>
+      has an <code>@index</code> member which equals <em>containerValue</em>, remove that member.</li>
     <li>If <em>value</em> is a <tref>JSON object</tref> having a single member <code>@id</code>,
       return the result of performing <a href="#iri-compaction-algorithm">IRI Compaction</a> on that
       member's value.</li>
@@ -1962,11 +1962,11 @@
         <li>If <em>element</em> has an <code>@type</code> member, merge each value into the <code>@type</code>
           of <tref>active subject</tref> in <em>activeGraph</em>. Then remove the <code>@type</code> member
           from <em>element</em>.</li>
-        <li>If <em>element</em> has an <code>@annotation</code> member, set the <code>@annotation</code>
+        <li>If <em>element</em> has an <code>@index</code> member, set the <code>@index</code>
           of <tref>active subject</tref> in <em>activeGraph</em> to its value. If such a member already
           exists in <tref>active subject</tref> and has a different value, raise a
-          <code class="error">CONFLICTING_ANNOTATION</code> error. Otherwise continue and remove the
-          <code>@annotation</code> from <em>element</em>.</li>
+          <code class="error">conflicting indexes</code> error. Otherwise continue and remove the
+          <code>@index</code> from <em>element</em>.</li>
         <li>If <em>element</em> has an <code>@graph</code> member, recursively invoke this algorithm passing
           the value of the <code>@graph</code> member as new <em>element</em> and <em>id</em> as new
           <tref>active subject</tref>. Then remove the <code>@graph</code> member from <em>element</em>.</li>
@@ -2562,9 +2562,11 @@
         <dd>A list of lists was detected. List of lists are not supported in
           this version of JSON-LD due to the algorithmic complexity associated
           with conversion to RDF.</dd>
-        <dt>invalid @annotation value</dt>
-        <dd>An <code>@annotation</code> member was encountered whose value was
+        <dt>invalid @index value</dt>
+        <dd>An <code>@index</code> member was encountered whose value was
           not a <tref>string</tref>.</dd>
+        <dt>conflicting indexes</dt>
+        <dd>Multiple conflicting indexes have been found for the same node.</dd>
         <dt>invalid @id value</dt>
         <dd>An <code>@id</code> member was encountered whose value was not a
           <tref>string</tref>.</dd>
@@ -2603,7 +2605,7 @@
         <dt>invalid container mapping</dt>
         <dd>An <code>@container</code> member was encountered whose value was
           not one of the following <tref title="string">strings</tref>:
-          <code>@list</code>, <code>@set</code>, or <code>@annotation</code>.</dd>
+          <code>@list</code>, <code>@set</code>, or <code>@index</code>.</dd>
         <dt>invalid property generator</dt>
         <dd>A non-<tref>string</tref> value has been detected in a
           <tref title="property generator">property generator's</tref>
--- a/spec/latest/json-ld-syntax/index.html	Tue Jan 29 18:07:19 2013 +0100
+++ b/spec/latest/json-ld-syntax/index.html	Wed Jan 30 20:28:21 2013 +0100
@@ -350,7 +350,7 @@
     <dd>Used to express an unordered set of data and to ensure that values are always
        represented as arrays. This keyword is described in the section titled
       <a href="#sets-and-lists"></a>.</dd>
-    <dt><code>@annotation</code></dt>
+    <dt><code>@index</code></dt>
     <dd>Used to specify that a container is used to index information and
       that processing should continue deeper into a JSON data structure.
       This keyword is described in the section titled
@@ -488,7 +488,7 @@
       term.
       The example above specifies that the values of <code>image</code> and
       <code>homepage</code> terms are <tref title="IRI">IRIs</tref>.
-      They also allow terms to be used for <a href="#data-annotations">annotation maps</a>
+      They also allow terms to be used for <a href="#data-annotations">index maps</a>
       and to specify whether <tref title="array">array</tref> values are to be
       interpreted as <a href="#sets-and-lists">sets or lists</a>.
       <tref title="expanded term definition">Expanded term definitions</tref> may
@@ -2277,40 +2277,19 @@
 <section>
   <h2>Data Annotations</h2>
 
-  <p>Sometimes it is desirable to include comments or annotations in the data
-    that is not meant to express Linked Data but should nevertheless survive
-    JSON-LD processing and transformation. In JSON-LD such data can be included
-    by using the <code>@annotation</code> <tref>keyword</tref> as shown in the
-    following example:</p>
+  <p class="issue" data-number="216">The prose of this section needs to be
+    updated.</p>
+
+  <p>Indexes can be used to structure data into a form that is more efficient
+    to access, but fundamentally does not convey any additional semantic meaning.
+    The index feature allows an author to structure data using a simple
+    key-value map where the keys do not map to <tref title="IRI">IRIs</tref>.
+    This enables direct access to data instead of having to scan an array in
+    search of a specific item. The following example illustrates this use
+    case:</p>
 
   <pre class="example" data-transform="updateExample"
-       title="Data annotations">
-  <!--
-  {
-    "@context":
-    {
-       "schema": "http://schema.org/",
-       "articleBody": "schema:articleBody",
-       "wordCount": "schema:wordCount"
-    },
-    "@id": "http://example.com/posts/1/en",
-    "articleBody": "World commodities were up today with heavy trading of crude oil...",
-    "wordCount": 1539,
-    ****"@annotation": "Generated in 0.00128 sec"****
-  }
-  -->
-  </pre>
-
-  <p>Annotations can also be used to structure data into a form that is
-    more efficient to access, but fundamentally does not convey any additional
-    semantic meaning. The annotation feature allows an author to
-    structure data using a simpley key-value map where the keys do not map
-    to <tref title="IRI">IRIs</tref>. This enables direct access to data
-    instead of having to scan an array in search of a specific item. The
-    following example illustrates this use case:</p>
-
-  <pre class="example" data-transform="updateExample"
-       title="Annotation maps">
+       title="Index maps">
   <!--
   {
     "@context":
@@ -2321,7 +2300,7 @@
        "words": "schema:wordCount",
        "post": {
          "@id": "schema:blogPost",
-         ****"@container": "@annotation"****
+         ****"@container": "@index"****
        }
     },
     "@id": "http://example.com/",
@@ -2344,7 +2323,7 @@
   </pre>
 
   <p>In the example above, the <strong>blogPost</strong> <tref>term</tref> has
-    been marked as an <tref>annotation map</tref>. The <strong>en</strong>,
+    been marked as an <tref>index map</tref>. The <strong>en</strong>,
     <strong>de</strong>, and <strong>ja</strong> keys will be ignored
     semantically, but preserved syntactically, by the JSON-LD Processor.
     This allows a developer to access the German version
@@ -2352,7 +2331,7 @@
     <code>obj.blogPost.de</code>.</p>
 
   <p>The interpretation of the data above is expressed in
-    the table below. Note how the annotations do not appear in the Linked Data
+    the table below. Note how the indexes do not appear in the Linked Data
     below, but would continue to exist if the document were compacted or
     expanded (see <a href="#compact-document-form"></a> and
     <a href="#expanded-document-form"></a>) using a JSON-LD processor:</p>
@@ -2669,7 +2648,7 @@
   <li><code>@graph</code>,</li>
   <li><code>@id</code>,</li>
   <li><code>@type</code>, or</li>
-  <li><code>@annotation</code></li>
+  <li><code>@index</code></li>
 </ul>
 
 <p>If the <tref>node object</tref> contains the <code>@context</code>
@@ -2714,9 +2693,9 @@
   <tref>context</tref> to be defined which is shared by all of the constituent
   <tref title="node object">node objects</tref>.</p>
 
-<p>If the <tref>node object</tref> contains the <code>@annotation</code> key,
+<p>If the <tref>node object</tref> contains the <code>@index</code> key,
   its value MUST be a <tref>string</tref>. See section
-  <a href="#data-annotations"></a> for further discussion on <code>@annotation</code>
+  <a href="#data-annotations"></a> for further discussion on <code>@index</code>
   values.</p>
 
 
@@ -2736,7 +2715,7 @@
   <li><tref>list</tref> or <tref>set</tref>,</li>
   <li>an <tref>array</tref> of zero or more of the possibilities above,</li>
   <li>a <tref>language map</tref>, or </li>
-  <li>an <tref>annotation map</tref></li>
+  <li>an <tref>index map</tref></li>
 </ul>
 
 </section>
@@ -2775,14 +2754,14 @@
 <p>See <a href="#language-tagged-strings"></a> for further discussion on language maps.</p>
 </section>
 
-<section id="grammar-annotation-map">
-<h2>Annotation Map</h2>
-<p>An <tdef>annotation map</tdef> allows keys that have no semantic meaning,
+<section id="grammar-index-map">
+<h2>Index Map</h2>
+<p>An <tdef>index map</tdef> allows keys that have no semantic meaning,
   but should be preserved regardless, to be used in JSON-LD documents.
-  An <tref>annotation map</tref> may
+  An <tref>index map</tref> may
   be used as a <tref>term</tref> value within a <tref>node object</tref> if the
-  term is defined with <code>@container</code> set to <code>@annotation</code>.
-  The values of the members of an <tref>annotation map</tref> MUST be any
+  term is defined with <code>@container</code> set to <code>@index</code>.
+  The values of the members of an <tref>index map</tref> MUST be any
   of the following types:</p>
 <ul>
   <li><tref>string</tref>,</li>
@@ -2807,11 +2786,11 @@
 
 <p>An <tref>expanded value</tref> MUST be a <tref>JSON object</tref> containing the
   <code>@value</code> key. It MAY also contain a <code>@type</code>,
-  a <code>@language</code>, or an <code>@annotation</code> key but MUST NOT contain
+  a <code>@language</code>, or an <code>@index</code> key but MUST NOT contain
   both a <code>@type</code> and a <code>@language</code> key at the same time.
   An <tref>expanded value</tref> MUST NOT contain keys other than
   <code>@value</code>, <code>@type</code>, <code>@language</code>, and
-  <code>@annotation</code>. An <tref>expanded value</tref> that contains a
+  <code>@index</code>. An <tref>expanded value</tref> that contains a
   <code>@type</code> key is called an <tdef>expanded typed value</tdef>.
   An <tref>expanded value</tref> that contains a <code>@language</code> key
   is called an <tdef>expanded language-tagged string</tdef>.</p>
@@ -2827,7 +2806,7 @@
 <p>The value associated with the <code>@language</code> key MUST have the
   lexical form described in [[!BCP47]], or be <tref>null</tref>.</p>
 
-<p>The value associated with the <code>@annotation</code> key MUST be a
+<p>The value associated with the <code>@index</code> key MUST be a
   <tref>string</tref>.</p>
 
 <p>See <a href="#typed-values"></a> and <a href="#language-tagged-strings"></a>
@@ -2851,11 +2830,11 @@
   This simplifies post-processing of the data as the data is always in array form.</p>
 
 <p>A <tref>list</tref> MUST be a <tref>JSON object</tref> that contains no other
-  keys than <code>@list</code>, <code>@context</code>, and <code>@annotation</code>.</p>
+  keys than <code>@list</code>, <code>@context</code>, and <code>@index</code>.</p>
 
 <p>A <tref>set</tref> MUST be a <tref>JSON object</tref> that that contains no other
-  keys than <code>@set</code>, <code>@context</code>, and <code>@annotation</code>.
-  Please note that the <code>@annotation</code> key will be ignored, and thus be dropped,
+  keys than <code>@set</code>, <code>@context</code>, and <code>@index</code>.
+  Please note that the <code>@index</code> key will be ignored, and thus be dropped,
   when being processed.</p>
 
 <p>In both cases, the value associated with the keys <code>@list</code> and <code>@set</code>
@@ -2913,12 +2892,12 @@
 <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>,
-  its value MUST be either <code>@list</code>, <code>@set</code>, <code>@language</code>, <code>@annotation</code>, or be <tref>null</tref>.
+  its value MUST be either <code>@list</code>, <code>@set</code>, <code>@language</code>, <code>@index</code>, or be <tref>null</tref>.
   If the value is <code>@language</code>, when the <tref>term</tref> is used outside of the <code>@context</code>, the
   associated value MUST be a <tref>language map</tref>. If the value is
-  <code>@annotation</code>, when the <tref>term</tref> is used outside of
+  <code>@index</code>, when the <tref>term</tref> is used outside of
   the <code>@context</code>, the associated value MUST be an
-  <tref>annotation map</tref>.</p>
+  <tref>index map</tref>.</p>
 
 <p><tref title="term">Terms</tref> MUST NOT be used in a circular manner. That is, the definition of a term cannot depend on the definition of another term if that other term also depends on the first term.</p>
 
--- a/test-suite/tests/compact-0029-context.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0029-context.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,5 +1,5 @@
 {
   "@context": {
-    "author": {"@id": "http://example.com/vocab/author", "@container": "@annotation" }
+    "author": {"@id": "http://example.com/vocab/author", "@container": "@index" }
   }
 }
--- a/test-suite/tests/compact-0029-in.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0029-in.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -2,9 +2,9 @@
    "@id": "http://example.com/article",
    "http://example.com/vocab/author": [{
       "@id": "http://example.org/person/1",
-      "@annotation": "regular"
+      "@index": "regular"
    }, {
       "@id": "http://example.org/guest/cd24f329aa",
-      "@annotation": "guest"
+      "@index": "guest"
    }]
 }]
--- a/test-suite/tests/compact-0029-out.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0029-out.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -2,7 +2,7 @@
    "@context": {
       "author": {
          "@id": "http://example.com/vocab/author",
-         "@container": "@annotation"
+         "@container": "@index"
       }
    },
    "@id": "http://example.com/article",
--- a/test-suite/tests/compact-0030-context.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0030-context.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,6 +1,6 @@
 {
   "@context": {
     "property": "http://example.com/property",
-    "annotContainer": { "@id": "http://example.com/container", "@container": "@annotation" }
+    "indexContainer": { "@id": "http://example.com/container", "@container": "@index" }
   }
 }
--- a/test-suite/tests/compact-0030-in.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0030-in.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,116 +1,116 @@
 [
    {
-      "@id": "http://example.org/annotationsTest",
+      "@id": "http://example.org/indexTest",
       "http://example.com/container": [
          {
-            "@id": "http://example.org/nodeWithoutAnnotationA",
-            "@annotation": "A"
+            "@id": "http://example.org/nodeWithoutIndexA",
+            "@index": "A"
          },
          {
-            "@id": "http://example.org/nodeWithAnnotationA",
-            "@annotation": "this overrides the 'A' annotation from the container"
+            "@id": "http://example.org/nodeWithIndexA",
+            "@index": "this overrides the 'A' index from the container"
          },
          {
             "@value": 1,
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": true,
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": false,
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": "simple string A",
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": "typed literal A",
             "@type": "http://example.org/type",
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": "language-tagged string A",
             "@language": "en",
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": "simple string B",
-            "@annotation": "B"
+            "@index": "B"
          },
          {
-            "@id": "http://example.org/nodeWithoutAnnotationC",
-            "@annotation": "C"
+            "@id": "http://example.org/nodeWithoutIndexC",
+            "@index": "C"
          },
          {
-            "@id": "http://example.org/nodeWithAnnotationC",
-            "@annotation": "this overrides the 'C' annotation from the container"
+            "@id": "http://example.org/nodeWithIndexC",
+            "@index": "this overrides the 'C' index from the container"
          },
          {
             "@value": 3,
-            "@annotation": "C"
+            "@index": "C"
          },
          {
             "@value": true,
-            "@annotation": "C"
+            "@index": "C"
          },
          {
             "@value": false,
-            "@annotation": "C"
+            "@index": "C"
          },
          {
             "@value": "simple string C",
-            "@annotation": "C"
+            "@index": "C"
          },
          {
             "@value": "typed literal C",
             "@type": "http://example.org/type",
-            "@annotation": "C"
+            "@index": "C"
          },
          {
             "@value": "language-tagged string C",
             "@language": "en",
-            "@annotation": "C"
+            "@index": "C"
          }
       ],
       "http://example.com/property": [
          {
-            "@id": "http://example.org/nodeWithoutAnnotationProp"
+            "@id": "http://example.org/nodeWithoutIndexProp"
          },
          {
-            "@id": "http://example.org/nodeWithAnnotationProp",
-            "@annotation": "prop"
+            "@id": "http://example.org/nodeWithIndexProp",
+            "@index": "prop"
          },
          {
             "@value": 3,
-            "@annotation": "prop"
+            "@index": "prop"
          },
          {
             "@value": true,
-            "@annotation": "prop"
+            "@index": "prop"
          },
          {
             "@value": false,
-            "@annotation": "prop"
+            "@index": "prop"
          },
          {
-            "@value": "simple string no annotation"
+            "@value": "simple string no index"
          },
          {
             "@value": "typed literal Prop",
             "@type": "http://example.org/type",
-            "@annotation": "prop"
+            "@index": "prop"
          },
          {
             "@value": "language-tagged string Prop",
             "@language": "en",
-            "@annotation": "prop"
+            "@index": "prop"
          },
          {
-             "@value": "annotation using an array with just one element (automatic recovery)",
-             "@annotation": "prop"
+            "@value": "index using an array with just one element (automatic recovery)",
+            "@index": "prop"
          }
       ]
    }
--- a/test-suite/tests/compact-0030-out.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0030-out.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,13 +1,13 @@
 {
   "@context": {
     "property": "http://example.com/property",
-    "annotContainer": { "@id": "http://example.com/container", "@container": "@annotation" }
+    "indexContainer": { "@id": "http://example.com/container", "@container": "@index" }
   },
-  "@id": "http://example.org/annotationsTest",
-  "annotContainer": {
+  "@id": "http://example.org/indexTest",
+  "indexContainer": {
     "A": [
       {
-        "@id": "http://example.org/nodeWithoutAnnotationA"
+        "@id": "http://example.org/nodeWithoutIndexA"
       },
       1,
       true,
@@ -22,13 +22,13 @@
         "@language": "en"
       }
     ],
-    "this overrides the 'A' annotation from the container": {
-      "@id": "http://example.org/nodeWithAnnotationA"
+    "this overrides the 'A' index from the container": {
+      "@id": "http://example.org/nodeWithIndexA"
     },
     "B": "simple string B",
     "C": [
       {
-        "@id": "http://example.org/nodeWithoutAnnotationC"
+        "@id": "http://example.org/nodeWithoutIndexC"
       },
       3,
       true,
@@ -43,44 +43,44 @@
         "@language": "en"
       }
     ],
-    "this overrides the 'C' annotation from the container": {
-      "@id": "http://example.org/nodeWithAnnotationC"
+    "this overrides the 'C' index from the container": {
+      "@id": "http://example.org/nodeWithIndexC"
     }
   },
   "property": [
     {
-      "@id": "http://example.org/nodeWithoutAnnotationProp"
+      "@id": "http://example.org/nodeWithoutIndexProp"
     },
     {
-      "@id": "http://example.org/nodeWithAnnotationProp",
-      "@annotation": "prop"
+      "@id": "http://example.org/nodeWithIndexProp",
+      "@index": "prop"
     },
     {
       "@value": 3,
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": true,
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": false,
-      "@annotation": "prop"
+      "@index": "prop"
     },
-    "simple string no annotation",
+    "simple string no index",
     {
       "@value": "typed literal Prop",
       "@type": "http://example.org/type",
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": "language-tagged string Prop",
       "@language": "en",
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
-      "@value": "annotation using an array with just one element (automatic recovery)",
-      "@annotation": "prop"
+      "@value": "index using an array with just one element (automatic recovery)",
+      "@index": "prop"
     }
   ]
 }
--- a/test-suite/tests/compact-0038-context.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0038-context.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -4,15 +4,15 @@
     "site-cd": "site:site-schema/content-deployment/",
     "title": {
       "@id": "site-cd:node/article/title",
-      "@container": "@annotation"
+      "@container": "@index"
     },
     "body": {
       "@id": "site-cd:node/article/body",
-      "@container": "@annotation"
+      "@container": "@index"
     },
     "field_tags": {
       "@id": "site-cd:node/article/field_tags",
-      "@container": "@annotation"
+      "@container": "@index"
     }
   }
 }
--- a/test-suite/tests/compact-0038-in.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0038-in.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -4,15 +4,15 @@
     "site-cd": "site:site-schema/content-deployment/",
     "title": {
       "@id": "site-cd:node/article/title",
-      "@container": "@annotation"
+      "@container": "@index"
     },
     "body": {
       "@id": "site-cd:node/article/body",
-      "@container": "@annotation"
+      "@container": "@index"
     },
     "field_tags": {
       "@id": "site-cd:node/article/field_tags",
-      "@container": "@annotation"
+      "@container": "@index"
     }
   },
   "@id": "site:node/1",
--- a/test-suite/tests/compact-0038-out.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0038-out.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -4,15 +4,15 @@
     "site-cd": "site:site-schema/content-deployment/",
     "title": {
       "@id": "site-cd:node/article/title",
-      "@container": "@annotation"
+      "@container": "@index"
     },
     "body": {
       "@id": "site-cd:node/article/body",
-      "@container": "@annotation"
+      "@container": "@index"
     },
     "field_tags": {
       "@id": "site-cd:node/article/field_tags",
-      "@container": "@annotation"
+      "@container": "@index"
     }
   },
   "@id": "site:node/1",
--- a/test-suite/tests/compact-0041-in.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0041-in.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -3,7 +3,7 @@
       "@id": "http://example.com/node",
       "http://example.com/property": [
           {
-            "@annotation": "an annotation",
+            "@index": "an index",
             "@list": [
                 {
                   "@value": "one item"
--- a/test-suite/tests/compact-0041-out.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0041-out.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -7,6 +7,6 @@
       "@list": [
         "one item"
       ],
-      "@annotation": "an annotation"
+      "@index": "an index"
    }
 }
--- a/test-suite/tests/compact-0042-context.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0042-context.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,6 +1,6 @@
 {
    "@context": {
       "listAlias": "@list",
-      "annotationAlias": "@annotation"
+      "indexAlias": "@index"
    }
 }
--- a/test-suite/tests/compact-0042-in.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0042-in.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -8,7 +8,7 @@
             "@value": "one item"
            }
         ],
-        "@annotation": "an annotation"
+        "@index": "an index"
        }
     ]
    }
--- a/test-suite/tests/compact-0042-out.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-0042-out.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,13 +1,13 @@
 {
     "@context": {
        "listAlias": "@list",
-       "annotationAlias": "@annotation"
+       "indexAlias": "@index"
     },
     "@id": "http://example.com/node",
     "http://example.com/property": {
         "listAlias": [
             "one item"
         ],
-        "annotationAlias": "an annotation"
+        "indexAlias": "an index"
     }
 }
--- a/test-suite/tests/compact-manifest.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/compact-manifest.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -41,8 +41,7 @@
       "name": "keep expanded object format if @type doesn't match",
       "input": "compact-0006-in.jsonld",
       "context": "compact-0006-context.jsonld",
-      "expect": "compact-0006-out.jsonld",
-      "optimize": true
+      "expect": "compact-0006-out.jsonld"
     }, {
       "@type": ["test:TestCase", "jld:CompactTest"],
       "name": "add context",
@@ -177,13 +176,13 @@
       "expect": "compact-0028-out.jsonld"
     }, {
       "@type": ["test:TestCase", "jld:CompactTest"],
-      "name": "Simple @annotation map",
+      "name": "Simple @index map",
       "input": "compact-0029-in.jsonld",
       "context": "compact-0029-context.jsonld",
       "expect": "compact-0029-out.jsonld"
     }, {
       "@type": ["test:TestCase", "jld:CompactTest"],
-      "name": "Preserve @annotation tags if not compacted to an annotation map",
+      "name": "Preserve @index tags if not compacted to an index map",
       "input": "compact-0030-in.jsonld",
       "context": "compact-0030-context.jsonld",
       "expect": "compact-0030-out.jsonld"
@@ -231,7 +230,7 @@
       "expect": "compact-0037-out.jsonld"
     }, {
       "@type": ["test:TestCase", "jld:CompactTest"],
-      "name": "Annotation map round-tripping (Drupal content deployment)",
+      "name": "Index map round-tripping (Drupal content deployment)",
       "input": "compact-0038-in.jsonld",
       "context": "compact-0038-context.jsonld",
       "expect": "compact-0038-out.jsonld"
@@ -249,7 +248,7 @@
       "expect": "compact-0040-out.jsonld"
     }, {
       "@type": ["test:TestCase", "jld:CompactTest"],
-      "name": "If an annotation is present, a term having an @list container is not selected",
+      "name": "If an index is present, a term having an @list container is not selected",
       "input": "compact-0041-in.jsonld",
       "context": "compact-0041-context.jsonld",
       "expect": "compact-0041-out.jsonld"
--- a/test-suite/tests/expand-0036-in.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/expand-0036-in.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,17 +1,17 @@
 {
   "@context": {
     "property": "http://example.com/property",
-    "annotContainer": { "@id": "http://example.com/container", "@container": "@annotation" }
+    "indexContainer": { "@id": "http://example.com/container", "@container": "@index" }
   },
-  "@id": "http://example.org/annotationsTest",
-  "annotContainer": {
+  "@id": "http://example.org/indexTest",
+  "indexContainer": {
     "A": [
       {
-        "@id": "http://example.org/nodeWithoutAnnotationA"
+        "@id": "http://example.org/nodeWithoutIndexA"
       },
       {
-        "@id": "http://example.org/nodeWithAnnotationA",
-        "@annotation": "this overrides the 'A' annotation from the container"
+        "@id": "http://example.org/nodeWithIndexA",
+        "@index": "this overrides the 'A' index from the container"
       },
       1,
       true,
@@ -30,11 +30,11 @@
     "B": "simple string B",
     "C": [
       {
-        "@id": "http://example.org/nodeWithoutAnnotationC"
+        "@id": "http://example.org/nodeWithoutIndexC"
       },
       {
-        "@id": "http://example.org/nodeWithAnnotationC",
-        "@annotation": "this overrides the 'C' annotation from the container"
+        "@id": "http://example.org/nodeWithIndexC",
+        "@index": "this overrides the 'C' index from the container"
       },
       3,
       true,
@@ -53,38 +53,38 @@
   },
   "property": [
     {
-      "@id": "http://example.org/nodeWithoutAnnotationProp"
+      "@id": "http://example.org/nodeWithoutIndexProp"
     },
     {
-      "@id": "http://example.org/nodeWithAnnotationProp",
-      "@annotation": "prop"
+      "@id": "http://example.org/nodeWithIndexProp",
+      "@index": "prop"
     },
     {
       "@value": 3,
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": true,
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": false,
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": null,
-      "@annotation": "prop"
+      "@index": "prop"
     },
-    "simple string no annotation",
+    "simple string no index",
     {
       "@value": "typed literal Prop",
       "@type": "http://example.org/type",
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": "language-tagged string Prop",
       "@language": "en",
-      "@annotation": "prop"
+      "@index": "prop"
     }
   ]
 }
--- a/test-suite/tests/expand-0036-out.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/expand-0036-out.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,112 +1,112 @@
 [
    {
-      "@id": "http://example.org/annotationsTest",
+      "@id": "http://example.org/indexTest",
       "http://example.com/container": [
          {
-            "@id": "http://example.org/nodeWithoutAnnotationA",
-            "@annotation": "A"
+            "@id": "http://example.org/nodeWithoutIndexA",
+            "@index": "A"
          },
          {
-            "@id": "http://example.org/nodeWithAnnotationA",
-            "@annotation": "this overrides the 'A' annotation from the container"
+            "@id": "http://example.org/nodeWithIndexA",
+            "@index": "this overrides the 'A' index from the container"
          },
          {
             "@value": 1,
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": true,
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": false,
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": "simple string A",
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": "typed literal A",
             "@type": "http://example.org/type",
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": "language-tagged string A",
             "@language": "en",
-            "@annotation": "A"
+            "@index": "A"
          },
          {
             "@value": "simple string B",
-            "@annotation": "B"
+            "@index": "B"
          },
          {
-            "@id": "http://example.org/nodeWithoutAnnotationC",
-            "@annotation": "C"
+            "@id": "http://example.org/nodeWithoutIndexC",
+            "@index": "C"
          },
          {
-            "@id": "http://example.org/nodeWithAnnotationC",
-            "@annotation": "this overrides the 'C' annotation from the container"
+            "@id": "http://example.org/nodeWithIndexC",
+            "@index": "this overrides the 'C' index from the container"
          },
          {
             "@value": 3,
-            "@annotation": "C"
+            "@index": "C"
          },
          {
             "@value": true,
-            "@annotation": "C"
+            "@index": "C"
          },
          {
             "@value": false,
-            "@annotation": "C"
+            "@index": "C"
          },
          {
             "@value": "simple string C",
-            "@annotation": "C"
+            "@index": "C"
          },
          {
             "@value": "typed literal C",
             "@type": "http://example.org/type",
-            "@annotation": "C"
+            "@index": "C"
          },
          {
             "@value": "language-tagged string C",
             "@language": "en",
-            "@annotation": "C"
+            "@index": "C"
          }
       ],
       "http://example.com/property": [
          {
-            "@id": "http://example.org/nodeWithoutAnnotationProp"
+            "@id": "http://example.org/nodeWithoutIndexProp"
          },
          {
-            "@id": "http://example.org/nodeWithAnnotationProp",
-            "@annotation": "prop"
+            "@id": "http://example.org/nodeWithIndexProp",
+            "@index": "prop"
          },
          {
             "@value": 3,
-            "@annotation": "prop"
+            "@index": "prop"
          },
          {
             "@value": true,
-            "@annotation": "prop"
+            "@index": "prop"
          },
          {
             "@value": false,
-            "@annotation": "prop"
+            "@index": "prop"
          },
          {
-            "@value": "simple string no annotation"
+            "@value": "simple string no index"
          },
          {
             "@value": "typed literal Prop",
             "@type": "http://example.org/type",
-            "@annotation": "prop"
+            "@index": "prop"
          },
          {
             "@value": "language-tagged string Prop",
             "@language": "en",
-            "@annotation": "prop"
+            "@index": "prop"
          }
       ]
    }
--- a/test-suite/tests/expand-0040-in.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/expand-0040-in.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -5,19 +5,19 @@
       "@id": "vocab:label",
       "@container": "@language"
     },
-    "annotations": {
-      "@id": "vocab:annotation",
-      "@container": "@annotation"
+    "indexes": {
+      "@id": "vocab:index",
+      "@container": "@index"
     }
   },
   "@id": "http://example.com/queen",
   "label": [
     "The Queen"
   ],
-  "annotations":
+  "indexes":
   [
     "No",
-    "annotations",
+    "indexes",
     { "@id": "asTheValueIsntAnObject" }
   ]
 }
--- a/test-suite/tests/expand-0040-out.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/expand-0040-out.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -7,13 +7,13 @@
         "@value": "The Queen"
       }
     ],
-    "http://example.com/vocab/annotation":
+    "http://example.com/vocab/index":
     [
       {
         "@value": "No"
       },
       {
-        "@value": "annotations"
+        "@value": "indexes"
       },
       {
         "@id": "http://json-ld.org/test-suite/tests/asTheValueIsntAnObject"
--- a/test-suite/tests/expand-0044-in.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/expand-0044-in.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,13 +1,13 @@
 {
   "@context": {
     "property": { "@id": "http://example.com/vocab/property", "@language": "de" },
-    "annotationMap": { "@id": "http://example.com/vocab/annotationMap", "@language": "en", "@container": "@annotation" }
+    "indexMap": { "@id": "http://example.com/vocab/indexMap", "@language": "en", "@container": "@index" }
   },
   "@id": "http://example.com/node",
   "property": [
     {
       "@id": "http://example.com/propertyValueNode",
-      "annotationMap": {
+      "indexMap": {
         "expands to english string": "simple string"
       }
     },
--- a/test-suite/tests/expand-0044-out.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/expand-0044-out.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -4,11 +4,11 @@
     "http://example.com/vocab/property": [
       {
         "@id": "http://example.com/propertyValueNode",
-        "http://example.com/vocab/annotationMap": [
+        "http://example.com/vocab/indexMap": [
           {
             "@value": "simple string",
             "@language": "en",
-            "@annotation": "expands to english string"
+            "@index": "expands to english string"
           }
         ]
       },
--- a/test-suite/tests/expand-manifest.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/expand-manifest.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -183,7 +183,7 @@
       "expect": "expand-0035-out.jsonld"
     }, {
       "@type": ["test:TestCase", "jld:ExpandTest"],
-      "name": "Expanding @annotation",
+      "name": "Expanding @index",
       "input": "expand-0036-in.jsonld",
       "expect": "expand-0036-out.jsonld"
     }, {
@@ -203,7 +203,7 @@
       "expect": "expand-0039-out.jsonld"
     }, {
       "@type": ["test:TestCase", "jld:ExpandTest"],
-      "name": "Only invoke language and annotation map expansion if the value is a JSON object",
+      "name": "Only invoke language and index map expansion if the value is a JSON object",
       "input": "expand-0040-in.jsonld",
       "expect": "expand-0040-out.jsonld"
     }, {
@@ -223,7 +223,7 @@
       "expect": "expand-0043-out.jsonld"
     }, {
       "@type": ["test:TestCase", "jld:ExpandTest"],
-      "name": "Ensure annotation maps use language mapping",
+      "name": "Ensure index maps use language mapping",
       "input": "expand-0044-in.jsonld",
       "expect": "expand-0044-out.jsonld"
     }, {
--- a/test-suite/tests/flatten-0036-in.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/flatten-0036-in.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,17 +1,17 @@
 {
   "@context": {
     "property": "http://example.com/property",
-    "annotContainer": { "@id": "http://example.com/container", "@container": "@annotation" }
+    "indexContainer": { "@id": "http://example.com/container", "@container": "@index" }
   },
-  "@id": "http://example.org/annotationsTest",
-  "annotContainer": {
+  "@id": "http://example.org/indexTest",
+  "indexContainer": {
     "A": [
       {
-        "@id": "http://example.org/nodeWithoutAnnotationA"
+        "@id": "http://example.org/nodeWithoutIndexA"
       },
       {
-        "@id": "http://example.org/nodeWithAnnotationA",
-        "@annotation": "this overrides the 'A' annotation from the container"
+        "@id": "http://example.org/nodeWithIndexA",
+        "@index": "this overrides the 'A' index from the container"
       },
       1,
       true,
@@ -30,11 +30,11 @@
     "B": "simple string B",
     "C": [
       {
-        "@id": "http://example.org/nodeWithoutAnnotationC"
+        "@id": "http://example.org/nodeWithoutIndexC"
       },
       {
-        "@id": "http://example.org/nodeWithAnnotationC",
-        "@annotation": "this overrides the 'C' annotation from the container"
+        "@id": "http://example.org/nodeWithIndexC",
+        "@index": "this overrides the 'C' index from the container"
       },
       3,
       true,
@@ -53,38 +53,38 @@
   },
   "property": [
     {
-      "@id": "http://example.org/nodeWithoutAnnotationProp"
+      "@id": "http://example.org/nodeWithoutIndexProp"
     },
     {
-      "@id": "http://example.org/nodeWithAnnotationProp",
-      "@annotation": "prop"
+      "@id": "http://example.org/nodeWithIndexProp",
+      "@index": "prop"
     },
     {
       "@value": 3,
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": true,
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": false,
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": null,
-      "@annotation": "prop"
+      "@index": "prop"
     },
-    "simple string no annotation",
+    "simple string no index",
     {
       "@value": "typed literal Prop",
       "@type": "http://example.org/type",
-      "@annotation": "prop"
+      "@index": "prop"
     },
     {
       "@value": "language-tagged string Prop",
       "@language": "en",
-      "@annotation": "prop"
+      "@index": "prop"
     }
   ]
 }
--- a/test-suite/tests/flatten-0036-out.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/flatten-0036-out.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,132 +1,132 @@
 [
     {
-        "@id": "http://example.org/annotationsTest",
+        "@id": "http://example.org/indexTest",
         "http://example.com/container": [
             {
-                "@id": "http://example.org/nodeWithoutAnnotationA"
+                "@id": "http://example.org/nodeWithoutIndexA"
             },
             {
-                "@id": "http://example.org/nodeWithAnnotationA"
+                "@id": "http://example.org/nodeWithIndexA"
             },
             {
                 "@value": 1,
-                "@annotation": "A"
+                "@index": "A"
             },
             {
                 "@value": true,
-                "@annotation": "A"
+                "@index": "A"
             },
             {
                 "@value": false,
-                "@annotation": "A"
+                "@index": "A"
             },
             {
                 "@value": "simple string A",
-                "@annotation": "A"
+                "@index": "A"
             },
             {
                 "@type": "http://example.org/type",
                 "@value": "typed literal A",
-                "@annotation": "A"
+                "@index": "A"
             },
             {
                 "@language": "en",
                 "@value": "language-tagged string A",
-                "@annotation": "A"
+                "@index": "A"
             },
             {
                 "@value": "simple string B",
-                "@annotation": "B"
+                "@index": "B"
             },
             {
-                "@id": "http://example.org/nodeWithoutAnnotationC"
+                "@id": "http://example.org/nodeWithoutIndexC"
             },
             {
-                "@id": "http://example.org/nodeWithAnnotationC"
+                "@id": "http://example.org/nodeWithIndexC"
             },
             {
                 "@value": 3,
-                "@annotation": "C"
+                "@index": "C"
             },
             {
                 "@value": true,
-                "@annotation": "C"
+                "@index": "C"
             },
             {
                 "@value": false,
-                "@annotation": "C"
+                "@index": "C"
             },
             {
                 "@value": "simple string C",
-                "@annotation": "C"
+                "@index": "C"
             },
             {
                 "@type": "http://example.org/type",
                 "@value": "typed literal C",
-                "@annotation": "C"
+                "@index": "C"
             },
             {
                 "@language": "en",
                 "@value": "language-tagged string C",
-                "@annotation": "C"
+                "@index": "C"
             }
         ],
         "http://example.com/property": [
             {
-                "@id": "http://example.org/nodeWithoutAnnotationProp"
+                "@id": "http://example.org/nodeWithoutIndexProp"
             },
             {
-                "@id": "http://example.org/nodeWithAnnotationProp"
+                "@id": "http://example.org/nodeWithIndexProp"
             },
             {
-                "@annotation": "prop",
+                "@index": "prop",
                 "@value": 3
             },
             {
-                "@annotation": "prop",
+                "@index": "prop",
                 "@value": true
             },
             {
-                "@annotation": "prop",
+                "@index": "prop",
                 "@value": false
             },
             {
-                "@value": "simple string no annotation"
+                "@value": "simple string no index"
             },
             {
-                "@annotation": "prop",
+                "@index": "prop",
                 "@type": "http://example.org/type",
                 "@value": "typed literal Prop"
             },
             {
-                "@annotation": "prop",
+                "@index": "prop",
                 "@language": "en",
                 "@value": "language-tagged string Prop"
             }
         ]
     },
     {
-        "@id": "http://example.org/nodeWithAnnotationA",
-        "@annotation": "this overrides the 'A' annotation from the container"
-    },
-    {
-        "@id": "http://example.org/nodeWithAnnotationC",
-        "@annotation": "this overrides the 'C' annotation from the container"
+        "@id": "http://example.org/nodeWithIndexA",
+        "@index": "this overrides the 'A' index from the container"
     },
     {
-        "@id": "http://example.org/nodeWithAnnotationProp",
-        "@annotation": "prop"
+        "@id": "http://example.org/nodeWithIndexC",
+        "@index": "this overrides the 'C' index from the container"
     },
     {
-        "@id": "http://example.org/nodeWithoutAnnotationA",
-        "@annotation": "A"
+        "@id": "http://example.org/nodeWithIndexProp",
+        "@index": "prop"
     },
     {
-        "@id": "http://example.org/nodeWithoutAnnotationC",
-        "@annotation": "C"
+        "@id": "http://example.org/nodeWithoutIndexA",
+        "@index": "A"
     },
     {
-        "@id": "http://example.org/nodeWithoutAnnotationProp"
+        "@id": "http://example.org/nodeWithoutIndexC",
+        "@index": "C"
+    },
+    {
+        "@id": "http://example.org/nodeWithoutIndexProp"
     },
     {
         "@id": "http://example.org/type"
--- a/test-suite/tests/flatten-0040-in.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/flatten-0040-in.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -5,19 +5,19 @@
       "@id": "vocab:label",
       "@container": "@language"
     },
-    "annotations": {
-      "@id": "vocab:annotation",
-      "@container": "@annotation"
+    "indexes": {
+      "@id": "vocab:index",
+      "@container": "@index"
     }
   },
   "@id": "http://example.com/queen",
   "label": [
     "The Queen"
   ],
-  "annotations":
+  "indexes":
   [
     "No",
-    "annotations",
+    "indexes",
     { "@id": "asTheValueIsntAnObject" }
   ]
 }
--- a/test-suite/tests/flatten-0040-out.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/flatten-0040-out.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -1,12 +1,12 @@
 [
     {
         "@id": "http://example.com/queen",
-        "http://example.com/vocab/annotation": [
+        "http://example.com/vocab/index": [
             {
                 "@value": "No"
             },
             {
-                "@value": "annotations"
+                "@value": "indexes"
             },
             {
                 "@id": "http://json-ld.org/test-suite/tests/asTheValueIsntAnObject"
@@ -21,4 +21,4 @@
     {
         "@id": "http://json-ld.org/test-suite/tests/asTheValueIsntAnObject"
     }
-]
\ No newline at end of file
+]
--- a/test-suite/tests/flatten-manifest.jsonld	Tue Jan 29 18:07:19 2013 +0100
+++ b/test-suite/tests/flatten-manifest.jsonld	Wed Jan 30 20:28:21 2013 +0100
@@ -183,7 +183,7 @@
       "expect": "flatten-0035-out.jsonld"
     }, {
       "@type": ["test:TestCase", "jld:FlattenTest"],
-      "name": "Flattening @annotation",
+      "name": "Flattening @index",
       "input": "flatten-0036-in.jsonld",
       "expect": "flatten-0036-out.jsonld"
     }, {
@@ -203,7 +203,7 @@
       "expect": "flatten-0039-out.jsonld"
     }, {
       "@type": ["test:TestCase", "jld:FlattenTest"],
-      "name": "Only invoke language and annotation map expansion if the value is a JSON object",
+      "name": "Only invoke language and index map expansion if the value is a JSON object",
       "input": "flatten-0040-in.jsonld",
       "expect": "flatten-0040-out.jsonld"
     }, {