Rename "Expansion" to "Expanded Document Form" and "Compaction" to "Compacted Document Form"
authorMarkus Lanthaler <mark_lanthaler@gmx.net>
Wed, 16 May 2012 20:20:24 +0800
changeset 650 ad4341b07cc0
parent 649 545ef06895a7
child 651 1ab718fe7a3b
Rename "Expansion" to "Expanded Document Form" and "Compaction" to "Compacted Document Form"

As this is the syntax specification, expansion and compaction should be explained by the document form instead of the API. Therefore I also removed framing which is purely API related.
spec/latest/json-ld-syntax/index.html
--- a/spec/latest/json-ld-syntax/index.html	Wed May 16 20:03:15 2012 +0800
+++ b/spec/latest/json-ld-syntax/index.html	Wed May 16 20:20:24 2012 +0800
@@ -1154,9 +1154,7 @@
 </pre>
 
 <p>This describes the use of this <tref>array</tref> as being ordered,
-  and order is maintained through operations such as
-  <a href="#expansion">Expansion</a>, <a href="#compaction">Compaction</a>,
-  and <a href="#framing">Framing</a>. If every use of a given multi-valued
+  and order is maintained when processing a document. If every use of a given multi-valued
   property is a list, this may be abbreviated by setting <code>@container</code>
   to <code>@list</code> in the <tref>context</tref>:</p>
 <pre class="example" data-transform="updateExample">
@@ -1185,13 +1183,12 @@
 <p>Similarly to <code>@list</code>, there exists the <tref>keyword</tref> <code>@set</code> to
   describe unordered sets. While its use in the body of a JSON-LD document
   represents just syntactic sugar that MUST be optimized away when processing
-  the document, it is very helpful for <a href="#compaction">Compaction</a>
-  and <a href="#framing">Framing</a>. The value of terms associated with a
-  <code>@set</code>- or <code>@list</code>-<code>@container</code> are always
-  represented in the form of an <tref>array</tref> - even if there is just a
-  single value. This makes post-processing of the data easier as the data is
-  in a deterministic form. If no such <code>@container</code> is specified,
-  single values are optimized to a non-array form.</p>
+  the document, it is very helpful when used within the context of a document.
+  Values of terms associated with a <code>@set</code>- or <code>@list</code>-<code>@container</code>
+  are always represented in the form of an <tref>array</tref> - even if there is just a
+  single value that would otherwise be optimized to a non-array form in a
+  <a href="#compact-document-form">compacted document</a>. This makes post-processing of
+  the data easier as the data is in a deterministic form.</p>
 
 <p class="note">The use of <code>@container</code> in the body of a JSON-LD
   document, i.e., outside <code>@context</code> is ignored by JSON-LD processors.</p>
@@ -2103,12 +2100,11 @@
 </section>
 
 <section>
-<h3>Expansion</h3>
+<h3>Expanded Document Form</h3>
 <p>The JSON-LD API [[JSON-LD-API]] defines an method for <em>expanding</em> a JSON-LD document.
   Expansion is the process of taking a JSON-LD document and applying a
   context such that all IRIs, datatypes, and literal values are expanded so
-  that the context is no longer necessary. JSON-LD document expansion
-  is typically used as a part of <a href="#framing">Framing</a>.</p>
+  that the context is no longer necessary.</p>
 
 <p>For example, assume the following JSON-LD input document:</p>
 
@@ -2149,7 +2145,7 @@
 </section>
 
 <section>
-<h3>Compaction</h3>
+<h3>Compact Document Form</h3>
 <p>The JSON-LD API [[JSON-LD-API]] defines a method for <em>compacting</em> a JSON-LD document.
   Compaction is the process of taking a JSON-LD document and applying a
   context such that the most compact form of the document is generated. JSON
@@ -2211,164 +2207,13 @@
 -->
 </pre>
 
-<p>The compaction algorithm also enables the developer to map any expanded
-  format into an application-specific compacted format. While the context
-  provided above mapped <code>http://xmlns.com/foaf/0.1/name</code> to
-  <strong>name</strong>, it could have also mapped it to any arbitrary string
+<p>The compaction algorithm enables a developer to map any document into an
+  application-specific compacted form by first <a href="#expanded-document-form">expanding the document</a>.
+  While the context provided above mapped <code>http://xmlns.com/foaf/0.1/name</code>
+  to <strong>name</strong>, it could have also mapped it to any arbitrary string
   provided by the developer.</p>
 </section>
 
-<section>
-<h3>Framing</h3>
-<p>The JSON-LD API [[JSON-LD-API]] defines an method for <em>framing</em> a JSON-LD document.
-  This allows developers to query by example and force a specific tree layout to a JSON-LD document.</p>
-
-<p>A JSON-LD document is a representation of a directed graph. A single
-  directed graph can have many different serializations, each expressing
-  exactly the same information. Developers typically work with trees, represented as
-  <tref>JSON object</tref>s. While mapping a graph to
-  a tree can be done, the layout of the end result must be specified in advance.
-  A <tdef>Frame</tdef> can be used by a developer on a JSON-LD document to
-  specify a deterministic layout for a graph.</p>
-
-<p>Framing is the process of taking a JSON-LD document, which expresses a
-  graph of information, and applying a specific graph layout
-  (called a <tref>Frame</tref>).</p>
-
-<p>The JSON-LD document below expresses a library, a book and a chapter:</p>
-
-<pre class="example" data-transform="updateExample">
-<!--
-{
-  "@context": {
-    "Book":         "http://example.org/vocab#Book",
-    "Chapter":      "http://example.org/vocab#Chapter",
-    "contains":     {
-      "@id": "http://example.org/vocab#contains",
-      "@type": "@id"
-    },
-    "creator":      "http://purl.org/dc/terms/creator",
-    "description":  "http://purl.org/dc/terms/description",
-    "Library":      "http://example.org/vocab#Library",
-    "title":        "http://purl.org/dc/terms/title"
-  },
-  "@graph":
-  [{
-    "@id": "http://example.com/library",
-    "@type": "Library",
-    "contains": "http://example.org/library/the-republic"
-  },
-  {
-    "@id": "http://example.org/library/the-republic",
-    "@type": "Book",
-    "creator": "Plato",
-    "title": "The Republic",
-    "contains": "http://example.org/library/the-republic#introduction"
-  },
-  {
-    "@id": "http://example.org/library/the-republic#introduction",
-    "@type": "Chapter",
-    "description": "An introductory chapter on The Republic.",
-    "title": "The Introduction"
-  }]
-}-->
-</pre>
-
-<p>Developers typically like to operate on items in a hierarchical, tree-based
-  fashion. Ideally, a developer would want the data above sorted into top-level
-  libraries, then the books that are contained in each library, and then the
-  chapters contained in each book. To achieve that layout, the developer can
-  define the following <tref>frame</tref>:</p>
-
-<pre class="example" data-transform="updateExample">
-<!--
-{
-  "@context": {
-    "Book":         "http://example.org/vocab#Book",
-    "Chapter":      "http://example.org/vocab#Chapter",
-    "contains":     "http://example.org/vocab#contains",
-    "creator":      "http://purl.org/dc/terms/creator",
-    "description":  "http://purl.org/dc/terms/description",
-    "Library":      "http://example.org/vocab#Library",
-    "title":        "http://purl.org/dc/terms/title"
-  },
-  "@type": "Library",
-  "contains": {
-    "@type": "Book",
-    "contains": {
-      "@type": "Chapter"
-    }
-  }
-}
--->
-</pre>
-
-<p>When the framing algorithm is run against the previously defined
-  JSON-LD document, paired with the <tref>frame</tref> above, the following
-  JSON-LD document is the end result:</p>
-
-<pre class="example" data-transform="updateExample">
-<!--
-{
-  "@context": {
-    "Book":         "http://example.org/vocab#Book",
-    "Chapter":      "http://example.org/vocab#Chapter",
-    "contains":     "http://example.org/vocab#contains",
-    "creator":      "http://purl.org/dc/terms/creator"
-    "description":  "http://purl.org/dc/terms/description"
-    "Library":      "http://example.org/vocab#Library",
-    "title":        "http://purl.org/dc/terms/title"
-  },
-  "@id": "http://example.org/library",
-  "@type": "Library",
-  "contains": {
-    ****"@id": "http://example.org/library/the-republic",****
-    "@type": "Book",
-    ****"creator": "Plato",****
-    ****"title": "The Republic",****
-    "contains": {
-      ****"@id": "http://example.org/library/the-republic#introduction",****
-      "@type": "Chapter",
-      ****"description": "An introductory chapter on The Republic.",****
-      ****"title": "The Introduction"****
-    },
-  },
-}
--->
-</pre>
-
-<section>
-<h3>Framing Operators</h3>
-<p>A <tref>frame</tref> is a JSON-LD document with some extra syntactic elements used to match against
-  parts of an input document. These operators work by matching on elements of
-  <tref title="subject definition">subject definitions</tref> comprising the document.</p>
-<dl>
-  <dt>Type Matching</dt><dd>
-    A <tref>frame</tref> including a <code>@type</code> with one or more values
-    matches any <tref>subject definition</tref> having a <code>@type</code> property that includes
-    the specified type.</dd>
-  <dt>Type Wildcard</dt><dd>
-    A <tref>frame</tref> including a <code>@type</code> having only an empty <tref>JSON object</tref>
-    matches any <tref>subject definition</tref> having a <code>@type</code> property with
-    any value.</dd>
-  <dt>Duck Typing</dt><dd>
-    A <tref>frame</tref> without a <code>@type</code> definition but with other non-<tref>keyword</tref>
-    property definitions matches any <tref>subject definition</tref> having at least the
-    same set of properties.</dt>
-  <dt>Embedding</dt><dd>
-    A <tref>frame</tref> including a property which references another <tref>frame</tref> causes
-    <tref title="subject definition">subject definitions</tref> containing that property
-    and referencing either other <tref title="subject definition">subject definitions</tref>
-    or <tref title="subject reference">subject references</tref> to embed
-    <tref title="subject definition">subject definitions</tref> matching the embed <tref>frame</tref>
-    to be defined within that property. <tref title="subject reference">Subject references</tref>
-    that don't match the embed <tref>frame</tref> are dropped.</dd>
-</dl>
-<p>The [[!JSON-LD-API]] describes other flags and <tref title="keyword">keywords</tref>
-  that are used to gain even more control over the framed output.</p>
-</section>
-</section>
-
 </section>
 
 <section class="appendix informative">