Use the term "compact IRI" instead of more awkward "prefix:suffix form".
--- a/spec/latest/json-ld-api/index.html Tue Jan 24 12:55:50 2012 -0800
+++ b/spec/latest/json-ld-api/index.html Tue Jan 24 13:19:09 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 Tue Jan 24 12:55:50 2012 -0800
+++ b/spec/latest/json-ld-syntax/index.html Tue Jan 24 13:19:09 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
"CURIE Syntax Definition"</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