--- a/spec/latest/json-ld-syntax/index.html Mon Jul 30 10:37:26 2012 +0200
+++ b/spec/latest/json-ld-syntax/index.html Tue Jul 31 15:49:22 2012 +0200
@@ -260,9 +260,9 @@
<section id='sotd'>
<p>This document has been under development for over 18 months in the
JSON for Linking Data Community Group. The document has recently been
-transferred to the RDF Working Group for review, improvement, and publication
+transferred to the RDF Working Group for review, improvement, and publication
along the Recommendation track. While this is a First Public Working Draft
-publication, the specification has undergone significant development, review,
+publication, the specification has undergone significant development, review,
and changes during the course of the last 18 months and is more mature than
the First Public Working Draft status implies.
</p>
@@ -382,17 +382,17 @@
JSON [[RFC4627]] defines several terms which are used throughout this document:
<dl>
<dt><tdef>JSON object</tdef></dt><dd>
- An object structure is represented as a pair of curly brackets
- surrounding zero or more name-value pairs. A name is a
- <tref>string</tref>. A single colon comes after each name, separating the
- name from the value. A single comma separates a value from a following
+ An object structure is represented as a pair of curly brackets
+ surrounding zero or more name-value pairs. A name is a
+ <tref>string</tref>. A single colon comes after each name, separating the
+ name from the value. A single comma separates a value from a following
name. The names within an object SHOULD be unique.
</dd>
<dt><tdef>array</tdef></dt>
<dd>
In JSON, an array is an <em>ordered</em> sequence of zero or more values.
An array is represented as square brackets surrounding
- zero or more values that are separated by commas.
+ zero or more values that are separated by commas.
While JSON-LD uses the same array representation as JSON,
the collection is <em>unordered</em> by default. While order is
preserved in regular JSON arrays, it is not in regular JSON-LD arrays
@@ -404,8 +404,8 @@
character is represented as a single character string.</dd>
<dt><tdef>number</tdef></dt>
<dd>
- A number is similar to that used in most programming languages, except
- that the octal and hexadecimal formats are not used and that leading
+ A number is similar to that used in most programming languages, except
+ that the octal and hexadecimal formats are not used and that leading
zeros are not allowed.</dd>
<dt><tdef>true</tdef> and <tdef>false</tdef></dt><dd>
Values that are used to express one of two possible boolean states.</dd>
@@ -413,16 +413,16 @@
The null value is used to make the JSON-LD processor "forget" any
previously defined JSON key that is associated with the null value.
If a previous definition doesn't exist, the entire key-value is ignored.
- If a previous definition of the key does exist, the previous
+ If a previous definition of the key does exist, the previous
definition is undefined.</dd>
<dt><tdef>subject definition</tdef></dt><dd>
- A <tref>JSON object</tref> used to represent a <tref>subject</tref> and
- one or more properties of that subject. A <tref>JSON object</tref> is a
- subject definition if it does not contain they keys <code>@value</code>,
- <code>@list</code> or <code>@set</code> and it has one or more keys other
+ A <tref>JSON object</tref> used to represent a <tref>subject</tref> and
+ one or more properties of that subject. A <tref>JSON object</tref> is a
+ subject definition if it does not contain they keys <code>@value</code>,
+ <code>@list</code> or <code>@set</code> and it has one or more keys other
than <code>@id</code>.</dd>
<dt><tdef>subject reference</tdef></dt><dd>
- A <tref>JSON object</tref> used to reference a subject having only the
+ A <tref>JSON object</tref> used to reference a subject having only the
<code>@id</code> key.</dd>
</dl>
</p>
@@ -574,7 +574,7 @@
<a href="#identifying-the-subject"></a>.</dd>
<dt><code>@value</code></dt>
<dd>Used to specify the data that is associated with a particular
- <tref>property</tref> in the graph. This keyword is described in
+ <tref>property</tref> in the graph. This keyword is described in
<a href="#string-internationalization"></a> and
<a href="#typed-values"></a>.</dd>
<dt><code>@language</code></dt>
@@ -729,7 +729,7 @@
The set of contexts defined within a specific <tref>subject definition</tref> are
referred to as <tdef>local context</tdef>s. Setting the context to <code>null</code>
effectively sets the <tref>local context</tref> to the initial context
- (further explained in the JSON-LD API, Appendix A, Initial Context
+ (further explained in the JSON-LD API, Appendix A, Initial Context
[[JSON-LD-API]] ). The
<tdef>active context</tdef> refers to the accumulation of
<tref>local context</tref>s that are in scope at a specific point within
@@ -760,14 +760,14 @@
low-memory footprint JSON-LD processors.</p>
<p class="note">The <code>null</code> value is processed in a special way
-in JSON-LD. Unless otherwise specified, a JSON-LD processor MUST act as if a
-key-value pair in the body of a JSON-LD document was never declared when
+in JSON-LD. Unless otherwise specified, a JSON-LD processor MUST act as if a
+key-value pair in the body of a JSON-LD document was never declared when
the value equals <em>null</em>.
-If <code>@value</code>, <code>@list</code>, or <code>@set</code> is set
-to <em>null</em> in expanded form, then the entire JSON object is
-ignored. If <code>@context</code> is set to <em>null</em>, the
-<tref>active context</tref> is reset and when used within a
-<tref>context</tref>, it removes any definition associated with the key,
+If <code>@value</code>, <code>@list</code>, or <code>@set</code> is set
+to <em>null</em> in expanded form, then the entire JSON object is
+ignored. If <code>@context</code> is set to <em>null</em>, the
+<tref>active context</tref> is reset and when used within a
+<tref>context</tref>, it removes any definition associated with the key,
unless otherwise specified.
</p>
@@ -805,8 +805,8 @@
<p>A <tref>JSON object</tref> used to define property values is called a
<tref>subject definition</tref>. <tref title="subject definition">Subject definitions</tref>
- do not require an <code>@id</code>.
- <tref title="subject definition">Subject definitions</tref> that do not
+ do not require an <code>@id</code>.
+ <tref title="subject definition">Subject definitions</tref> that do not
contain an <code>@id</code> are known as an <tref title="unlabeled node">unlabeled nodes</tref>.</p>
</section>
@@ -853,7 +853,7 @@
<p>In the example above, the key <code>http://xmlns.com/foaf/0.1/name</code> is interpreted
as an <tref>IRI</tref> because it contains a colon
- (<code>:</code>) and the 'http' <tref>prefix</tref> does not exist in
+ (<code>:</code>) and the 'http' <tref>prefix</tref> does not exist in
the context.</p>
<p>Term expansion occurs for IRIs if the value matches a <tref>term</tref> defined within the
@@ -1015,14 +1015,14 @@
<tref>unlabeled node</tref>.</p>
<p class="note">To ensure the best possible performance, when possible, it is a best practice
- to put JSON-LD <tref>keyword</tref>s, such as <code>@id</code> and
- <code>@context</code> before other key-value pairs in a <tref>JSON
- object</tref>. However, keys in a <tref>JSON object</tref> are not ordered,
- so processors MUST NOT depend on key ordering. If keywords are not listed
- first, processors have to save each key-value pair until at least the
- <code>@context</code> and the <code>@id</code> are processed. Not
- specifying those keywords first creates a memory and complexity burden for
- low-memory footprint processors, forcing them to use more memory and
+ to put JSON-LD <tref>keyword</tref>s, such as <code>@id</code> and
+ <code>@context</code> before other key-value pairs in a <tref>JSON
+ object</tref>. However, keys in a <tref>JSON object</tref> are not ordered,
+ so processors MUST NOT depend on key ordering. If keywords are not listed
+ first, processors have to save each key-value pair until at least the
+ <code>@context</code> and the <code>@id</code> are processed. Not
+ specifying those keywords first creates a memory and complexity burden for
+ low-memory footprint processors, forcing them to use more memory and
computing cycles than necessary.</p>
@@ -1158,16 +1158,16 @@
<section>
<h2>JSON-LD Syntax</h2>
-
+
<p>A JSON-LD document is first, and foremost, a JSON document
- (as defined in [[!RFC5988]]), and any syntactically correct JSON document
- MUST be processed by a conforming JSON-LD processor. However, JSON-LD
- describes a specific syntax to use for expressing Linked Data. This
- includes the use of specific keywords, as identified in <a
- href="#syntax-tokens-and-keywords"></a> for
- expressing <a title="subject definition">subject definitions</a>, values,
- and the <a>context</a>. See <a
- href="#json-ld-grammar"></a> for authoring
+ (as defined in [[!RFC5988]]), and any syntactically correct JSON document
+ MUST be processed by a conforming JSON-LD processor. However, JSON-LD
+ describes a specific syntax to use for expressing Linked Data. This
+ includes the use of specific keywords, as identified in <a
+ href="#syntax-tokens-and-keywords"></a> for
+ expressing <a title="subject definition">subject definitions</a>, values,
+ and the <a>context</a>. See <a
+ href="#json-ld-grammar"></a> for authoring
guidelines and a BNF description of JSON-LD.</p>
</section>
@@ -1410,7 +1410,7 @@
</pre>
<p>The <em>modified</em> key's value above is automatically
- language coerced to a English value because of the information specified in
+ language coerced to a English value because of the information specified in
the <code>@context</code>.</p>
<p>The second example uses the expanded form of setting the language information
@@ -2097,9 +2097,9 @@
<section>
<h2>Embedding</h2>
<p>
- Object <tdef>embedding</tdef> is a JSON-LD feature that allows an author to
- use <tref title="subject definition">subject definitions</tref> as
- <tref>property</tref> values. This is a commonly used mechanism for
+ Object <tdef>embedding</tdef> is a JSON-LD feature that allows an author to
+ use <tref title="subject definition">subject definitions</tref> as
+ <tref>property</tref> values. This is a commonly used mechanism for
creating a parent-child relationship between two <tref>subject</tref>s.</p>
<p>The example shows two subjects related by a property from the first subject:</p>
@@ -2119,7 +2119,7 @@
</pre>
<p>
- A <tref>subject definition</tref>, like the one used above, MAY be used in
+ A <tref>subject definition</tref>, like the one used above, MAY be used in
any value position in the body of a JSON-LD document.</p>
</section>
@@ -2154,13 +2154,13 @@
</pre>
<p>In this case, embedding doesn't work as each
- <tref>subject definition</tref> references the other. Using the
- <code>@graph</code> <tref>keyword</tref> allows multiple resources to be
- defined within an <tref>array</tref>, and allows the use of a shared
+ <tref>subject definition</tref> references the other. Using the
+ <code>@graph</code> <tref>keyword</tref> allows multiple resources to be
+ defined within an <tref>array</tref>, and allows the use of a shared
<tref>context</tref>. When used in a <tref>JSON object</tref> that is not otherwise
a <tref>subject definition</tref>, this describes resources in the <em>default graph</em>.
- This is equivalent to using multiple <tref
- title="subject definition">subject definitions</tref> in array and defining
+ This is equivalent to using multiple <tref
+ title="subject definition">subject definitions</tref> in array and defining
the <code>@context</code> within each <tref>subject definition</tref>:</p>
<pre class="example" data-transform="updateExample">
@@ -2449,8 +2449,8 @@
to be conforming, it MUST be a valid JSON document as described in
[[!RFC4627]].</p>
<p>JSON-LD introduces a number of keywords of the form '<code>@</code>'
- followed by an a set of 1 or more lower case alphabetic characters
- (<code>@[a-z]+</code>). JSON-LD documents SHOULD NOT define terms beginning
+ followed by a set of one or more lower case alphabetic characters
+ (<code>@[a-z]+</code>). JSON-LD documents SHOULD NOT define terms beginning
with '<code>@</code>'.
(See <a href="#syntax-tokens-and-keywords"></a> for a complete definition of JSON-LD keywords).</p>
@@ -2547,8 +2547,8 @@
or an <tref>array</tref> of any of these.</p>
<p class="note">A JSON-LD processor SHOULD process non-conforming documents
- having <code>@type</code> values including <tref title="subject definition">subject definitions</tref> or
- <tref title="subject reference">subject references</tref> entries but MUST
+ having <code>@type</code> values including <tref title="subject definition">subject definitions</tref> or
+ <tref title="subject reference">subject references</tref> entries but MUST
discard everything but the value of the <code>@id</code> key.</p>
<pre class="example" data-transform="updateExample"
@@ -2568,19 +2568,19 @@
<code>@type</code> values.</p>
<p>If the <tref>subject definition</tref> contains the <code>@graph</code>
- key, it's value MUST
- be a <tref>subject definition</tref> or an <tref>array</tref> of zero or more
- <tref title="subject definition">subject definitions</tref>. If the
+ key, it's value MUST
+ be a <tref>subject definition</tref> or an <tref>array</tref> of zero or more
+ <tref title="subject definition">subject definitions</tref>. If the
<tref>subject definition</tref> contains an <code>@id</code> keyword,
its value is used as the label of a named graph.</p>
<p class="note">As a special case, if the <tref>JSON object</tref> contains no
- keys other than <code>@graph</code> and <code>@context</code>, and the
- <tref>JSON object</tref> is the root of the JSON-LD document, the
- <tref>JSON object</tref> is not treated as a <tref>subject definition</tref>; this
- is used as a way of defining <tref title="subject definition">subject
- definitions</tref> that may not form a connected graph. This allows a
- <tref>context</tref> to be defined which is shared by all of the constituent
+ keys other than <code>@graph</code> and <code>@context</code>, and the
+ <tref>JSON object</tref> is the root of the JSON-LD document, the
+ <tref>JSON object</tref> is not treated as a <tref>subject definition</tref>; this
+ is used as a way of defining <tref title="subject definition">subject
+ definitions</tref> that may not form a connected graph. This allows a
+ <tref>context</tref> to be defined which is shared by all of the constituent
<tref title="subject definition">subject definitions</tref>.</p>
@@ -2677,9 +2677,9 @@
contain any other key except <code>@value</code>. The value of the <code>@language</code>
key MUST have the lexical form described in [[!BCP47]] or <tref>null</tref>.</p>
<p>If an <tref>Expanded Value</tref> contains a <code>@type</code> key, it MUST NOT
- contain any other key except <code>@value</code>. The value of
- <code>@type</code> MUST be <code>null</code>, a <tref>compact IRI</tref>, an
- <tref>absolute IRI</tref> or a <tref>term</tref> expanding to an
+ contain any other key except <code>@value</code>. The value of
+ <code>@type</code> MUST be <code>null</code>, a <tref>compact IRI</tref>, an
+ <tref>absolute IRI</tref> or a <tref>term</tref> expanding to an
<tref>absolute IRI</tref>.</p>
<p>See <a href="#typed-values"></a> and <a href="#language-values"></a>
for a further discussion of <tref title="expanded value">Expanded Values</tref>.</p>
@@ -2707,8 +2707,8 @@
<p>If the <tref>context definition</tref> has a <code>@language</code> key,
the value MUST have the lexical form described in [[!BCP47]] or <tref>null</tref>.</p>
<p>Other keys are <tref>term</tref> definitions. Their values MUST be either a
- <tref>string</tref>, or a <tref>JSON object</tref>. If the value is a
- <tref>JSON object</tref>, the <tref>term</tref> has an <tdef>expanded term
+ <tref>string</tref>, or a <tref>JSON object</tref>. If the value is a
+ <tref>JSON object</tref>, the <tref>term</tref> has an <tdef>expanded term
definition</tdef> (see <a href="#expanded-term-definition"></a>).</p>
<p>An <tref>expanded term definition</tref> is composed of zero or more keys from <code>@id</code>,
<code>@type</code>, <code>@language</code> or <code>@container</code>. An
@@ -2716,14 +2716,14 @@
<p>If the <tref>term</tref> does not have the form of <tref>Compact IRI</tref> or <tref>absolute IRI</tref>,
the <tref>JSON object</tref> MUST include the <code>@id</code> <tref>keyword</tref>.</p>
<p>If the <tref>expanded term definition</tref> contains the <code>@id</code> <tref>keyword</tref>.
- it MUST be a <tref>string</tref> having the lexical form of <tref>IRI</tref>,
- <tref>Compact IRI</tref>, or a term defined in the defining <tref>context
- definition</tref> or the <tref>active context</tref> expanding into an
+ it MUST be a <tref>string</tref> having the lexical form of <tref>IRI</tref>,
+ <tref>Compact IRI</tref>, or a term defined in the defining <tref>context
+ definition</tref> or the <tref>active context</tref> expanding into an
<tref>IRI</tref>.</p>
<p>If the <tref>expanded term definition</tref> contains the <code>@type</code> <tref>keyword</tref>.
- it MUST be a <tref>string</tref> having the lexical form of <tref>absolute IRI</tref>,
- <tref>Compact IRI</tref>, or a term defined in the defining <tref>context
- definition</tref> or the <tref>active context</tref> expanding into an
+ it MUST be a <tref>string</tref> having the lexical form of <tref>absolute IRI</tref>,
+ <tref>Compact IRI</tref>, or a term defined in the defining <tref>context
+ definition</tref> or the <tref>active context</tref> expanding into an
<tref>absolute IRI</tref>.</p>
<p>If the <tref>expanded term definition</tref> contains the <code>@language</code> <tref>keyword</tref>.
the value MUST have the lexical form described in [[!BCP47]] or <tref>null</tref>.</p>
@@ -3162,15 +3162,15 @@
<section class="appendix informative">
<h1>Acknowledgements</h1>
-<p>A large amount of thanks goes out to the JSON-LD Community Group
+<p>A large amount of thanks goes out to the JSON-LD Community Group
participants who worked through many of the technical issues on the mailing
-list and the weekly telecons - of special mention are Niklas Lindström,
+list and the weekly telecons - of special mention are Niklas Lindström,
François Daoust, and Zdenko 'Denny' Vrandečić.
The editors would like to thank Mark Birbeck, who provided a great deal of
the initial push behind the JSON-LD work via his work on RDFj.
The work of Dave Lehn and Mike Johnson are appreciated for reviewing,
and performing several implementations of the specification. Ian Davis is
-thanked for this work on RDF/JSON. Thanks also to Nathan Rixham,
+thanked for this work on RDF/JSON. Thanks also to Nathan Rixham,
Bradley P. Allen,
Kingsley Idehen, Glenn McDonald, Alexandre Passant, Danny Ayers, Ted
Thibodeau Jr., Olivier Grisel, Josh Mandel, Eric Prud'hommeaux,