Merge branch 'master' of github.com:json-ld/json-ld.org
authorMarkus Lanthaler <mark_lanthaler@gmx.net>
Wed, 25 Jan 2012 11:45:36 +0800
changeset 364 64eb4c00f493
parent 360 0e23aa41bb4e (current diff)
parent 363 092a07213bdf (diff)
child 365 9b63f22d7150
Merge branch 'master' of github.com:json-ld/json-ld.org
spec/latest/json-ld-syntax/index.html
--- a/README.rst	Wed Jan 25 11:44:42 2012 +0800
+++ b/README.rst	Wed Jan 25 11:45:36 2012 +0800
@@ -19,7 +19,7 @@
 ::
  {
    "@context": "http://purl.org/jsonld/Person",
-   "@subject": "http://dbpedia.org/resource/John_Lennon",
+   "@id": "http://dbpedia.org/resource/John_Lennon",
    "name": "John Lennon",
    "birthday": "10-09",
    "member": "http://dbpedia.org/resource/The_Beatles"
--- a/contexts/place	Wed Jan 25 11:44:42 2012 +0800
+++ b/contexts/place	Wed Jan 25 11:45:36 2012 +0800
@@ -5,9 +5,21 @@
       "name": "http://purl.org/dc/terms/title",
       "description": "http://purl.org/dc/terms/description",
       "geo": "http://schema.org/geo",
-      "image": "http://schema.org/image",
-      "latitude": "http://www.w3.org/2003/01/geo/wgs84_pos#latitude",
-      "longitude": "http://www.w3.org/2003/01/geo/wgs84_pos#longitude",
+      "image":
+      {
+        "@id": "http://schema.org/image",
+        "@type": "@id"
+      },
+      "latitude":
+      {
+        "@id": "http://www.w3.org/2003/01/geo/wgs84_pos#latitude",
+        "@type": "xsd:decimal"
+      },
+      "longitude":
+      {
+        "@id": "http://www.w3.org/2003/01/geo/wgs84_pos#longitude",
+        "@type": "xsd:decimal"
+      },
       "elevation": "http://www.w3.org/2003/01/geo/wgs84_pos#altitude",
       "telephone": "http://schema.org/telephone",
       
@@ -24,14 +36,7 @@
       "feet": "http://purl.org/measurement#feet",
       "miles": "http://purl.org/measurement#miles",
       
-      "xsd": "http://www.w3.org/2001/XMLSchema#",
-      
-      "@coerce":
-      {
-         "image": "@iri",
-         "latitude": "xsd:decimal",
-         "longitude": "xsd:decimal"
-      }
+      "xsd": "http://www.w3.org/2001/XMLSchema#"
    }
 }
 
--- a/primer/latest/index.html	Wed Jan 25 11:44:42 2012 +0800
+++ b/primer/latest/index.html	Wed Jan 25 11:45:36 2012 +0800
@@ -382,7 +382,7 @@
 
 <pre id="p1" class="example prettyprint lang-jsonld" data-transform="updateLiveExample(div)">
 {
-    "@subject": "http://store.example.com/",
+    "@id": "http://store.example.com/",
     "@type": "Store",
     "name": "Links Bike Shop",
     "description": "The most \"linked\" bike store on earth!"
@@ -394,7 +394,7 @@
 
 <pre class="example prettyprint lang-jsonld" data-transform="updateLiveExample(div)">
 {
-    "@subject": "http://store.example.com/products/links-swift-chain",
+    "@id": "http://store.example.com/products/links-swift-chain",
     "@type": "Product",
     "name": "Links Swift Chain",
     "description": "A fine chain with many links.",
@@ -409,7 +409,7 @@
 
 <pre class="example prettyprint lang-jsonld" data-transform="updateLiveExample(div)">
 {
-    "@subject": "http://store.example.com/products/links-speedy-lube",
+    "@id": "http://store.example.com/products/links-speedy-lube",
     "@type": "Product",
     "name": "Links Speedy Lube",
     "description": "Lubricant for your chain links.",
@@ -427,13 +427,13 @@
 
 <pre class="example prettyprint lang-jsonld" data-transform="updateLiveExample(div)">
 {
-    "@subject": "http://store.example.com/",
+    "@id": "http://store.example.com/",
     "@type": "Store",
     "name": "Links Bike Shop",
     "description": "The most \"linked\" bike store on earth!",
     "product": [
         {
-            "@subject": "p:links-swift-chain",
+            "@id": "p:links-swift-chain",
             "@type": "Product",
             "name": "Links Swift Chain",
             "description": "A fine chain with many links.",
@@ -442,7 +442,7 @@
             "stock": 10
         },
         {
-            "@subject": "p:links-speedy-lube",
+            "@id": "p:links-speedy-lube",
             "@type": "Product",
             "name": "Links Speedy Lube",
             "description": "Lubricant for your chain links.",
@@ -455,16 +455,17 @@
         "Store": "http://ns.example.com/store#Store",
         "Product": "http://ns.example.com/store#Product",
         "product": "http://ns.example.com/store#product",
-        "category": "http://ns.example.com/store#category",
+        "category":
+        {
+          "@id": "http://ns.example.com/store#category",
+          "@type": "@id"
+        },
         "price": "http://ns.example.com/store#price",
         "stock": "http://ns.example.com/store#stock",
         "name": "http://purl.org/dc/terms/title",
         "description": "http://purl.org/dc/terms/description",
         "p": "http://store.example.com/products/",
-        "cat": "http://store.example.com/category/",
-        "@coerce": {
-            "@iri": "category"
-        }
+        "cat": "http://store.example.com/category/"
     }
 }
 </pre>
--- a/primer/latest/lang-jsonld.js	Wed Jan 25 11:44:42 2012 +0800
+++ b/primer/latest/lang-jsonld.js	Wed Jan 25 11:45:36 2012 +0800
@@ -55,7 +55,7 @@
     ],
     [
       // common "keywords"
-      ["lang-jsonld-keyword", /^"(@iri|@coerce|@context|@subject|@type|@vocab|@base|@literal|@language|@datatype)"\s*:/],
+      ["lang-jsonld-keyword", /^"(@id|@coerce|@context|@type|@value|@language)"\s*:/],
       // empty string
       //[PR.PR_LITERAL, /^""/],
       ["lang-jsonld-string", /^""/],
--- a/spec/latest/json-ld-api/index.html	Wed Jan 25 11:44:42 2012 +0800
+++ b/spec/latest/json-ld-api/index.html	Wed Jan 25 11:45:36 2012 +0800
@@ -493,7 +493,7 @@
          <dt>INVALID_SYNTAX</dt>
          <dd>A general syntax error was detected in the <code>@context</code>.
          For example, if a <code>@type</code> key maps to anything other than
-         <code>@id</code> or an absolute IRI, this exception would be raised.</dd>
+         <code>@id</code> or an absolute <tref>IRI</tref>, this exception would be raised.</dd>
          <dt>LOAD_ERROR</dt>
          <dd>There was a problem encountered loading a remote context.</dd>
         </dl>
@@ -518,7 +518,7 @@
           <dt>INVALID_SYNTAX</dt>
           <dd>A general syntax error was detected in the <code>@context</code>.
             For example, if a <code>@type</code> key maps to anything other than
-            <code>@id</code> or an absolute IRI, this exception would be raised.</dd>
+            <code>@id</code> or an absolute <tref>IRI</tref>, this exception would be raised.</dd>
           <dt>LOAD_ERROR</dt>
           <dd>There was a problem encountered loading a remote context.</dd>
         </dl>
@@ -586,7 +586,7 @@
           <dt>INVALID_SYNTAX</dt>
           <dd>A general syntax error was detected in the <code>@context</code>.
             For example, if a <code>@type</code> key maps to anything other than
-            <code>@id</code> or an absolute IRI, this exception would be raised.</dd>
+            <code>@id</code> or an absolute <tref>IRI</tref>, this exception would be raised.</dd>
           <dt>LOAD_ERROR</dt>
           <dd>There was a problem encountered loading a remote context.</dd>
         </dl>
@@ -614,7 +614,7 @@
           <dt>INVALID_SYNTAX</dt>
           <dd>A general syntax error was detected in the <code>@context</code>.
             For example, if a <code>@type</code> key maps to anything other than
-            <code>@id</code> or an absolute IRI, this exception would be raised.</dd>
+            <code>@id</code> or an absolute <tref>IRI</tref>, this exception would be raised.</dd>
           <dt>LOAD_ERROR</dt>
           <dd>There was a problem encountered loading a remote context.</dd>
         </dl>
@@ -637,9 +637,9 @@
       <dd>This callback is invoked whenever a triple is generated by the processor.
       <dl class="parameters">
          <dt>DOMString subject</dt>
-         <dd>The subject IRI that is associated with the triple.</dd>
+         <dd>The subject <tref>IRI</tref> that is associated with the triple.</dd>
          <dt>DOMString property</dt>
-         <dd>The property IRI that is associated with the triple.</dd>
+         <dd>The property <tref>IRI</tref> that is associated with the triple.</dd>
          <dt>DOMString objectType</dt>
          <dd>The type of object that is associated with the triple. Valid values
            are <code>IRI</code> and <code>literal</code>.</dd>
@@ -676,7 +676,7 @@
   <dt><code>@language</code></dt><dd>Used to specify the language for a literal.</dd>
   <dt><code>@type</code></dt><dd>Used to set the type of the active subject or the datatype of a literal.</dd>
   <dt><code>@value</code></dt><dd>Used to specify the value of a literal.</dd>
-  <dt><code>:</code></dt><dd>The separator for JSON keys and values that use the <tref>prefix</tref> mechanism.</dd>
+  <dt><code>:</code></dt><dd>The separator for JSON keys and values that use <tref title="compact_iri">compact IRIs</tref>.</dd>
   </dl>
 
   <p>All JSON-LD tokens and keywords are case-sensitive.</p>
@@ -717,6 +717,12 @@
       Blank nodes may be named or unnamed and often take on the role of a variable that may represent
       either an <tref>IRI</tref> or a <tref>literal</tref>.
     </dd>
+    <dt><tdef>compact IRI</tdef></dt>
+    <dd>
+      a compact IRI is has the form of <tref>prefix</tref> and <em>suffix</em> and is used as a way
+      of expressing an IRI without needing to define separate <tref>term</tref> definitions for
+      each IRI contained within a common vocabulary identified by <tref>prefix</tref>.
+    </dd>
     <dt><tdef>local context</tdef></dt>
     <dd>
       a context that is specified within a <tref>JSON object</tref>,
@@ -745,7 +751,8 @@
     </dd>
     <dt><tdef>prefix</tdef></dt><dd>
       A <tref>prefix</tref> is a <tref>term</tref> that expands to a vocabulary base IRI. It
-      is typically used along with a <em>suffix</em> to create an IRI within a vocabulary.
+      is typically used along with a <em>suffix</em> to form a <tref>compact IRI</tref> to create an IRI
+      within a vocabulary.
     </dd>
     <dt><tdef>plain literal</tdef></dt><dd>
       A <tref>plain literal</tref> is a <tref>literal</tref> without a datatype, possibly including
@@ -769,7 +776,7 @@
   <p>The <tref>active context</tref> is used for expanding keys and values of a <tref>JSON object</tref> (or elements
     of a list (see <span a="#list-processing">List Processing</span>)) using a <tdef>term mapping</tdef>.
     It is also used to maintain
-    <tdef>coercion mapping</tdef>s from IRIs associated with terms to datatypes, and
+    <tdef>coercion mapping</tdef>s from <tref>IRI</tref>s associated with terms to datatypes, and
     <tdef>list mapping</tdef>s for IRIs associated with terms.</p>
   <p>A <tref>local context</tref> is identified within a <tref>JSON object</tref> having a key of
     <code>@context</code> with <tref>string</tref>, <tref>array</tref> or a <tref>JSON object</tref> value.
@@ -780,7 +787,7 @@
       <ol id="process-context" class="algorithm">
         <li>If <em>value</em> is an <tref>array</tref>, process
           each element as <em>value</em>, in order using <a href="#process-context">Step 2</a>.</li>
-        <li>If <em>value</em> is a simple <tref>string</tref>, it MUST have a lexical form of absolute IRI.
+        <li>If <em>value</em> is a simple <tref>string</tref>, it MUST have a lexical form of absolute <tref>IRI</tref>.
           <ol class="algorithm">
             <li>Dereference <em>value</em>.</li>
             <li>If the resulting document is a JSON document, extract the top-level <code>@context</code>
@@ -798,21 +805,21 @@
               or being an empty string, perform the following steps:
               <ol class="algorithm">
                 <li>If the key's value is a simple <tref>string</tref>, the value MUST have the form of
-                  <tref>term</tref>, <tref>prefix</tref>:suffix, absolute IRI. Determine the IRI mapping value by
+                  <tref>term</tref>, <tref>compact IRI</tref>, absolute <tref>IRI</tref>. Determine the IRI mapping value by
                   performing <a href="#iri-expansion">IRI Expansion</a> on the associated value. If the result of the IRI
                   mapping is an absolute IRI, merge the key-value pair into the <tref>local context</tref>
                   <tref>term mapping</tref>.</li>
                 <li>Otherwise, the key's value MUST be a <tref>JSON object</tref>.
                   <ol class="algorithm">
                     <li>The value MUST have a <code>@id</code> key with a string value, the value MUST have the
-                      form of <tref>term</tref>, <tref>prefix</tref>:suffix, absolute IRI. Determine the IRI mapping value
+                      form of <tref>term</tref>, <tref>compact IRI</tref>, absolute <tref>IRI</tref>. Determine the IRI mapping value
                       by performing <a href="#iri-expansion">IRI Expansion</a> on the associated value. If the result of
-                      the IRI mapping is an absolute IRI, merge the key-value pair into the <tref>local context</tref>
+                      the IRI mapping is an absolute <tref>IRI</tref>, merge the key-value pair into the <tref>local context</tref>
                       <tref>term mapping</tref>.</li>
                     <li>If the value has a <code>@type</code> key, the value MUST have the form of <tref>term</tref>,
-                      <tref>prefix</tref>:suffix, absolute IRI or the <tref>keyword</tref> <code>@id</code>. Determine the IRI by
+                      <tref>compact IRI</tref>, absolute <tref>IRI</tref> or the <tref>keyword</tref> <code>@id</code>. Determine the IRI by
                       performing <a href="#iri-expansion">IRI Expansion</a> on the associated value. If the result of the
-                      IRI mapping is an absolute IRI or <code>@id</code>, merge into the <tref>local context</tref>
+                      IRI mapping is an absolute <tref>IRI</tref> or <code>@id</code>, merge into the <tref>local context</tref>
                       <tref>coercion mapping</tref>.</li>
                     <li>If the value has a <code>@list</code> key, the value MUST be
                       <code>true</code> or <code>false</code>. Merge into the <tref>local context</tref> <tref>list
@@ -830,11 +837,11 @@
     </li>
   </ol>
 
-  <p class="note">It can be difficult to distinguish between a <code>prefix:suffix</code> and an absolute IRI,
-    as a <tref>prefix</tref> may seem to be a valid IRI <em>scheme</em>. When performing repeated IRI expansion,
+  <p class="note">It can be difficult to distinguish between a <tref>compact IRI</tref> and an absolute <tref>IRI</tref>,
+    as a <tref>compact IRI</tref> may seem to be a valid IRI <em>scheme</em>. When performing repeated IRI expansion,
     a term used as a prefix may not have a valid mapping due to dependencies in resolving term definitions. By
     continuing <a href="#object-context">Step 2.3.2</a> until no changes are made, mappings to IRIs created
-    using an undefined term prefix will eventually resolve to absolute IRIs.</p>
+    using an undefined term prefix will eventually resolve to absolute <tref>IRI</tref>s.</p>
 
   <p class="issue"><a href="https://github.com/json-ld/json-ld.org/issues/43">Issue 43</a>
     concerns performing IRI expansion in the key position of a context definition.</p>
@@ -842,15 +849,15 @@
 
 <section>
   <h2>IRI Expansion</h2>
-  <p>Keys and some values are evaluated to produce an IRI. This section defines an algorithm for
+  <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>IRIs may be represented as an absolute IRI, a <tref>term</tref> or a <tref>prefix</tref>:suffix construct.</p>
+  <p><tref>IRI</tref>s may be represented as an absolute IRI, a <tref>term</tref> or a <tref>compact IRI</tref>.</p>
   <p>The algorithm for generating an IRI is:
     <ol class="algorithm">
       <li>Split the value into a <em>prefix</em> and <em>suffix</em> from the first occurrence of ':'.</li>
       <li>If the prefix is a '_' (underscore), the value represents a named <tref>blank node</tref>.</li>
       <li>If the <tref>active context</tref> contains a <tref>term</tref> mapping for <em>prefix</em> using
-        a case-sensitive comparison, generate an IRI
+        a case-sensitive comparison, generate an <tref>IRI</tref>
         by prepending the mapped prefix to the (possibly empty) suffix using textual concatenation. Note that an empty
         suffix and no suffix (meaning the value contains no ':' string at all) are treated equivalently.</li>
       <li>Otherwise, use the value directly as an IRI.</li>
@@ -865,11 +872,11 @@
 
 <section>
   <h2>IRI Compaction</h2>
-  <p>Some keys and values are expressed using IRIs. This section defines an
+  <p>Some keys and values are expressed using <tref>IRI</tref>s. This section defines an
     algorithm for transforming an IRI to a compact IRI using the
     <tref>term</tref>s specified in the <tref>local context</tref>.</p>
 
-  <p>The algorithm for generating a compacted IRI is:
+  <p>The algorithm for generating a <tref>compact IRI</tref> is:
     <ol class="algorithm">
       <li>Search every key-value pair in the <tref>active context</tref> for
         a <tref>term</tref> that is a complete match
@@ -878,11 +885,11 @@
         <tref>active context</tref>.</li>
       <li>If a complete match is not found, search for a partial match from
         the beginning of the IRI. For all matches that are found, the resulting
-        compacted IRI is the <tref>term</tref> associated with the partially matched
+        <tref>compact IRI</tref> is the <tref>term</tref> associated with the partially matched
         IRI in the <tref>active context</tref> concatenated with a colon (:) character
-        and the unmatched part of the string. If there is more than one compacted IRI
+        and the unmatched part of the string. If there is more than one <tref>compact IRI</tref>
         produced, the final value is the shortest and lexicographically least value of
-        the entire set of compacted IRIs.</li>
+        the entire set of <tref>compact IRI</tref>s.</li>
     </ol>
   </p>
 </section>
--- a/spec/latest/json-ld-syntax/index.html	Wed Jan 25 11:44:42 2012 +0800
+++ b/spec/latest/json-ld-syntax/index.html	Wed Jan 25 11:45:36 2012 +0800
@@ -427,8 +427,8 @@
   This keyword is described in the section titled
   <a href="#lists">Lists</a>.</dd>
   <dt><code>:</code></dt>
-  <dd>The separator for JSON keys and values that use the
-  <tref>prefix</tref> mechanism.</dd>
+  <dd>The separator for JSON keys and values that use
+  <tref title="compact_iri">compact IRIs</tref>.</dd>
   </dl>
 
   <p>For the avoidance of doubt, all keys, keywords and values in JSON-LD are
@@ -557,9 +557,10 @@
 <p>In JSON-LD, a <tdef>context</tdef> is used to map <tref>term</tref>s, i.e., keys with associated values
   in an JSON document, to <tref>IRI</tref>s. A <tdef>term</tdef> is a short word that MAY be expanded to an
   <tref>IRI</tref>. A <tref>term</tref> MUST have the lexical form of <cite><a
-  href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NCName</a></cite> (see [[XML-NAMES]]), or
+  href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NCName</a></cite> (see [[XML-NAMES]]),
+  <tref>compact IRI</tref>, absolute <tref>IRI</tref>, or
   be an empty string.</p>
-<p>The Web uses IRIs for unambiguous identification. The
+<p>The Web uses <tref title="IRI">IRIs</tref> for unambiguous identification. The
   idea is that these <tref>term</tref>s mean something that may be of use to other developers and that it is useful to
   give them an unambiguous identifier. That is, it is useful for <tref>term</tref>s to expand to IRIs so that
   developers don't accidentally step on each other's <tref>vocabulary</tref> terms. For example, the term <code>name</code> may
@@ -613,7 +614,7 @@
 <p>The additions above transform the previous JSON document into a JSON document
 with added semantics because the <code>@context</code> specifies how the
 <strong>name</strong>, <strong>homepage</strong>, and <strong>depiction</strong>
-terms map to IRIs.
+terms map to <tref title="IRI">IRIs</tref>.
 Mapping those keys to IRIs gives the data global context. If two
 developers use the same IRI to describe a property, they are more than likely
 expressing the same concept. This allows both developers to re-use each others
@@ -694,7 +695,7 @@
   If a developer wants to use 3-4 different <tref title="vocabulary">vocabularies</tref>, the number of terms
   that would have to be declared in a single <tref>context</tref> could become
   quite large. To reduce the number of different terms that must be defined,
-  JSON-LD also allows prefixes to be used to compact IRIs.
+  JSON-LD also allows prefixes to be used to <tref title="compact_iri">compact IRIs</tref>.
 </p>
 
 <p>For example, the <tref>IRI</tref> <code>http://xmlns.com/foaf/0.1/</code>
@@ -702,7 +703,7 @@
 <code>foaf</code> <tref>prefix</tref>. The <code>foaf</code> vocabulary
 contains a term called <strong>name</strong>. If you join the
 <code>foaf</code> <tref>prefix</tref> with the <strong>name</strong> suffix,
-you can build a compact IRI that will expand out into an absolute IRI for the
+you can build a <tref>compact IRI</tref> that will expand out into an absolute IRI for the
 <code>http://xmlns.com/foaf/0.1/name</code> <tref>vocabulary</tref> term.
 That is, the compact IRI (or short-form), is <code>foaf:name</code> and the
 expanded-form is <code>http://xmlns.com/foaf/0.1/name</code>. This vocabulary
@@ -714,13 +715,12 @@
 and get a definition of what the term means. Much like we can use
 <a href="http://wordnet.princeton.edu/">WordNet</a> today to see the definition
 of words in the English language. Developers and machines need the same sort of
-definition of terms. IRIs provide a way to ensure that these terms
+definition of terms. <tref title="IRI">IRIs</tref> provide a way to ensure that these terms
 are unambiguous.
 </p>
 
-<p>The <tref>context</tref> provides a collection of <tref>vocabulary</tref> <tref>term</tref>s and
-<tref>prefix</tref>es that can be used to expand JSON keys and values into
-<tref>IRI</tref>s.</p>
+<p>The <tref>context</tref> provides a collection of <tref>vocabulary</tref> <tref>term</tref>s
+  that can be used to expand JSON keys and values into <tref title="IRI">IRIs</tref>.</p>
 
 <p class="note">To ensure the best possible performance, it is a best practice to
 put the <tref>context</tref> definition at the top of the JSON-LD document. If it isn't listed
@@ -792,8 +792,7 @@
 </ol>
 
 <p>IRIs may be represented as an absolute IRI, an IRI that is relative to the
-base location of the document, a <tref>term</tref>, or a
-<tref>prefix</tref>:suffix construct.</p>
+base location of the document, a <tref>term</tref>, or a <tref>compact IRI</tref>.</p>
 
 <p>IRIs can be expressed directly in the key position like so:</p>
 
@@ -825,7 +824,8 @@
 -->
 </pre>
 
-<p><tref>Prefix</tref>es are expanded when the form of the value is <code>prefix:suffix</code>, and the
+<p><tref>Prefix</tref>es are expanded when the form of the value <tref>compact IRI</tref>
+  represented as is <code>prefix:suffix</code>, and the
   prefix matches a <tref>term</tref> defined within the <tref>active context</tref>:</p>
 
 <pre class="example" data-transform="updateExample">
@@ -842,7 +842,7 @@
 <p><tref>Term</tref>s are case sensitive, and MUST be matched using a case-sensitive comparison.</p>
 
 <p><code>foaf:name</code> above will automatically expand out to the IRI
-<code>http://xmlns.com/foaf/0.1/name</code>. See <a href="#prefixes">Prefixes</a> for more details.</p>
+<code>http://xmlns.com/foaf/0.1/name</code>. See <a href="#compact-iris">Compact IRIs</a> for more details.</p>
 
 <p>An <tref>IRI</tref> is generated when a value is associated with a key using
 the <code>@id</code> keyword:</p>
@@ -1259,7 +1259,7 @@
 </p>
 
 <section>
-  <h2>Prefixes</h2>
+  <h2>Compact IRIs</h2>
   <p>
     <tref>Term</tref>s in <tref>Linked Data</tref> documents may draw from
     a number of different <tref title="vocabulary">vocabularies</tref>.
@@ -1272,13 +1272,13 @@
     <tref>context</tref> if it is specified inline, the third is
     future-proofing embedded application <tref>context</tref>s that may not
     be easy to change after they are deployed. In order to address these issues,
-    the concept of a <tref>prefix</tref> mechanism is introduced.</p>
+    the concept of a <tref>compact IRI</tref> is introduced.</p>
   <p>
-    A <tdef>prefix</tdef> is a compact way of expressing a base
-    <tref>IRI</tref> for a <tref>vocabulary</tref>.
+    A <tdef>compact IRI</tdef> is a way of expressing an <tref>IRI</tref>
+    using a <em>prefix</em> and <em>suffix</em>.
     Generally, these prefixes are used by concatenating the <em>prefix</em> and
     a <em>suffix</em>, which is separated by a colon (<code>:</code>).
-    The <tref>prefix</tref> is a <tref>term</tref> taken from the
+    The <tdef>prefix</tdef> is a <tref>term</tref> taken from the
     <tref>active context</tref> and is a short string identifying a
     particular <tref>IRI</tref> in a JSON-LD document.
     For example, the prefix <code>foaf</code> may be used as a short
@@ -1291,8 +1291,8 @@
     Instead of having to remember and type out the entire IRI, the developer
     can instead use the prefix in their JSON-LD markup.
   </p>
-  <p>To generate an <tref>IRI</tref> out of a <code>prefix:suffix</code>
-    construct, the value is first split into a <em>prefix</em> and
+  <p>To generate an <tref>IRI</tref> out of a <tref>compact IRI</tref>,
+    the value is first split into a <em>prefix</em> and
     <em>suffix</em> at the first occurrence of a colon (<code>:</code>).
     If the <tref>active context</tref> contains a term mapping for
     <em>prefix</em>, an IRI is generated by prepending the mapped
@@ -1302,12 +1302,12 @@
     (<code>_</code>), the IRI remains unchanged.
   </p>
   <p>
-    The ability to use <tref>prefix</tref>es reduces the need for developers
+    The ability to use <tref title="compact_iri">compact IRIs</tref> reduces the need for developers
     to declare every <tref>vocabulary</tref> term that they intend to use in
     the JSON-LD <tref>context</tref>. This reduces stand-alone JSON-LD
     document serialization size because every <tref>vocabulary</tref> term
     need not be declared in the embedded context.
-    <tref>Prefix</tref> also
+    <tref title="compact_iri">Compact IRIs</tref> also
     reduces the cognitive load on the developer. It is far easier to
     remember <code>foaf:name</code> than it is to remember
     <code>http://xmlns.com/foaf/0.1/name</code>. The use of prefixes also
@@ -1350,10 +1350,10 @@
   <p>
     In this example, two different <tref title="vocabulary">vocabularies</tref>
     are referred to using prefixes. Those prefixes are then used as type and
-    property values using the <code>prefix:suffix</code> notation.
+    property values using the compact IRI <code>prefix:suffix</code> notation.
   </p>
   <p>
-    Prefixes, also known as CURIEs, are defined more formally in RDFa Core 1.1,
+    <tref title="compact_iri">Compact IRIs</tref>, also known as CURIEs, are defined more formally in RDFa Core 1.1,
     <cite><a href="http://www.w3.org/TR/rdfa-core/#s_curies">Section 6
     &quot;CURIE Syntax Definition&quot;</a></cite> [[RDFA-CORE]].
     JSON-LD does not support the square-bracketed CURIE syntax as the
@@ -1452,7 +1452,7 @@
 
 <p>External JSON-LD context documents MAY contain extra information located
 outside of the <code>@context</code> key, such as
-documentation about the <tref>prefix</tref>es declared in the document.
+documentation about the <tref title="prefix">prefixes</tref> declared in the document.
 When importing a <code>@context</code> value from an external JSON-LD context
 document, any extra information contained outside of the
 <code>@context</code> value MUST be discarded. It is
@@ -1651,11 +1651,11 @@
 
 <p>Type coercion is specified within an <a href="#expanded-term-definition">expanded term definition</a>
   using the <code>@type</code> key. The values of this key represent type IRIs and MUST take the form of
-  <tref>term</tref>, <tref>prefix</tref>:suffix, absolute IRI or the keyword <code>@id</code>. Specifying
+  <tref>term</tref>, <tref>compact IRI</tref>, absolute <tref>IRI</tref> or the keyword <code>@id</code>. Specifying
   <code>@id</code> indicates that within the body of a JSON-LD document, string values of keys coerced as
   <code>@id</code> are to be interpreted as <tref>IRI</tref>s.</p>
 
-<p><tref title="term">Terms</tref> or <tref title="prefix">prefixes</tref> used as the value of a
+<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.</p>
 
 <p>The example below demonstrates how a JSON-LD author can coerce values to
@@ -1758,7 +1758,7 @@
 </pre>
 
 <p>
-Note that in this example, the prefixed form is used in two different ways.
+Note that in this example, the <tref>compact IRI</tref> form is used in two different ways.
 The first way, as shown with <code>foaf:age</code> declares both the
 <tref>IRI</tref> for the term (using short-form) as well as the
 <code>@type</code> associated with the <tref>term</tref>. The second way, only
--- a/spec/latest/rdf-graph-normalization/index.html	Wed Jan 25 11:44:42 2012 +0800
+++ b/spec/latest/rdf-graph-normalization/index.html	Wed Jan 25 11:45:36 2012 +0800
@@ -565,7 +565,7 @@
   <ol class="algorithm">
     <li>If the <tref>expanded node</tref> is an unlabeled node, add a
       new key-value pair to the <tref>expanded node</tref>
-      where the key is <code>@subject</code> and the value is the
+      where the key is <code>@id</code> and the value is the
       concatenation of the <tref>labeling prefix</tref>
       and the string value of the <tref>labeling counter</tref>.
       Increment the <tref>labeling counter</tref>.</li>
@@ -587,8 +587,8 @@
         </li></ol></li>
     <li>After exiting the recursive step, replace the reference to the
       <tref>expanded node</tref> with an object containing a single
-       key-value pair where the key is <code>@iri</code> and the value is
-       the value of the <code>@subject</code> key in the node.</li>
+       key-value pair where the key is <code>@id</code> and the value is
+       the value of the <code>@id</code> key in the node.</li>
   </ol></li>
 <li>For every entry in the <tref>map of flattened nodes</tref>, insert a
   key-value pair into the <tref>node state map</tref> where the key is the
@@ -602,7 +602,7 @@
 <li>For every entry in the <tref>node state map</tref> that has a
 <tref>label</tref> that begins with <code>_:c14n</code>, relabel the node
 using the <a href="#node-relabeling-algorithm">Node Relabeling Algorithm</a>.
-<li>Label all of the nodes that contain a <code>@subject</code> key associated
+<li>Label all of the nodes that contain a <code>@id</code> key associated
 with a value starting with <code>_:</code> according to the steps in the
 <a href="#deterministic-labeling-algorithm">Deterministic Labeling Algorithm</a>.
 </li>
@@ -822,7 +822,7 @@
     </ol>
   </li>
   <li>If both values are expanded IRIs, the
-    lexicographically lesser string associated with <code>@iri</code>
+    lexicographically lesser string associated with <code>@id</code>
     is first.</li>
   <li>Otherwise, the two values are equivalent.</li>
 </ol>
@@ -1258,7 +1258,7 @@
   <li>Append all properties to the <tref>label serialization</tref> by
     processing each key-value pair in the <tref>node reference</tref>,
     excluding the
-    <code>@subject</code> property. The keys should be processed in
+    <code>@id</code> property. The keys should be processed in
     lexicographical order and their associated values should be processed
     in the order produced by the
     <a href="#object-comparison-algorithm">Object Comparison Algorithm</a>:
@@ -1270,7 +1270,7 @@
         Process all of the objects that are associated with the key, building
         an <tdef>object string</tdef> for each item:
         <ol class="algorithm">
-          <li>If the object contains an <code>@iri</code> key with a
+          <li>If the object contains an <code>@id</code> key with a
             value that starts
             with <code>_:</code>, set the <tref>object string</tref> to
             the value <code>_:</code>. If the value does not
@@ -1278,7 +1278,7 @@
             using the pattern
             <code>&lt;</code><strong>IRI</strong><code>&gt;</code>
             where <strong>IRI</strong> is the value associated with the
-            <code>@iri</code> key.</li>
+            <code>@id</code> key.</li>
           <li>If the object contains a <code>@literal</code> key and a
             <code>@datatype</code> key, build the <tref>object string</tref>
             using the pattern