Removed obsolete text from the introduction, removed the section on datasets borrowed from RDF Concepts, and added many entries to Terminology and Concepts.
authorSandro Hawke <sandro@hawke.org>
Wed, 02 May 2012 09:23:47 -0400
changeset 300 d7d59ce13246
parent 299 a52278f0801e
child 301 f9c4ac278c29
Removed obsolete text from the introduction, removed the section on datasets borrowed from RDF Concepts, and added many entries to Terminology and Concepts.
rdf-layers/index.html
--- a/rdf-layers/index.html	Tue May 01 23:38:50 2012 -0400
+++ b/rdf-layers/index.html	Wed May 02 09:23:47 2012 -0400
@@ -101,41 +101,23 @@
 
 <section id="abstract">
   <p>This specification introduces the notion of RDF <i>data
-  layers</i>&mdash;places to store RDF triples&mdash;and defines a
-  set of languages for expressing information about them.  Examples of
+  layers</i>&mdash;places to store RDF triples&mdash;and defines a set
+  of languages for expressing information about them.  Examples of
   data layers include: an HTML page with embedded RDFa or microdata, a
   file containing RDF/XML or Turtle data, and a SQL database viewable
   as RDF using R2RML.  The term "layer" is a metaphor: we imagine a
   layer as transparent surfaces on which RDF graphs can be drawn and
   then easily combined, still retaining their own identity and
   properties.  RDF data layers are a generalization of SPARQL's named
-  graphs, bringing standard semantics to systems which manage multiple
-  collections of RDF data. </p>
+  graphs, providing a standard model with formal semantics for systems
+  which manage multiple collections of RDF data. </p>
 </section>
 
 
 <section class="informative">
     <h2>Introduction</h2>
 
-
-    <p>An RDF data layer is a collection of RDF Triples, or a place to
-    store triples.  This trivial concept is an important building
-    block for the Semantic Web. RDF Layers are what some people have
-    called Named Graphs, but they are different from both RDF Graphs
-    and Named Graphs as those terms are defined in existing W3C
-    specifications.</p>
-
-    <p>The difference between RDF Layers and RDF Graphs is that while
-    they are both sets of triples, RDF Layers can conceptually change
-    over time and have an identity separate from their contents. RDF
-    Graphs, in contrast, are pure mathematical sets, so it makes no
-    sense to talk about them "changing", and two graphs which contain
-    the same triples are by definition the same graph. RDF layers are
-    different; they keep their own identify even when the happen to
-    contain exactly the same triples. This distinction is important
-    when there is data (or metadata) about the set of triples; if the
-    metadata is about a set with its own identity, an RDF Layer should
-    be used instead of a Graph.</p>
+    <p>@@@ background, context, and general motivation ... </p>
 
     <p>The name "layer" is chosen to evoke the image of a transparent
     surface on which an RDF Graph can be temporarily drawn and then
@@ -156,60 +138,221 @@
 </section>
 
 <section>
-  <h2>Terminology</h2>
-
-  <p>TBD</p>
+  <h2>Terminology and Concepts</h2>
 
-  <p>A "Layer Switch" is a resource which acts as a different layer
-  based on some client context, such as the user identity.  Systems
-  which use layer switches SHOULD also define working URLs for each of
-  the layers the switch can act as, and SHOULD provide the URL of the
-  layer used during any http transaction using the Content-Location
-  header.  For example <tt>http://example.org/my-account-balance</tt>
-  might return the account balance of the logged-in user.  If the user
-  is logged in as "alice", the system might return a Content-Location
-  of <tt>http://example.org/my-account-balance?user=alice</tt>.  For
-  alice, that later URL would work as well; for other users it would
-  give <tt>403 Forbidden</tt>.
+  <section>
+    <h2>Layer</h2>
 
+    <p class="issue">The term "Layer" is a placeholder.  The final
+    term has not yet been selected by the Working Group.  Other
+    candidates include "G-Box", "(Data) Surface", "(Data) Space".  The
+    Editors do not consider <a
+    href="http://www.w3.org/2011/rdf-wg/meeting/2011-10-12#resolution_1">F2F2
+    Resolultion 1</a> still binding, given the degree to which the concept
+    and its role has shifted since that meeting.</p>
+
+    <p>An RDF <dfn>data layer</dfn> or just <dfn>layer</dfn> is a
+    conceptual place where RDF triples can stored.  Examples include:
+    </p>
+    
+    <ul>
+
+      <li>a human-readable Web page, such as an HTML page containing
+      RDFa markup, microdata markup, or embedded turtle.</li>
+
+      <li>a file, in a computer's filesystem, containing RDF data
+      expressed in RDF/XML, N-Triples, Turtle, etc.</li>
+
+      <li>a machine-readable Web page containing RDF data expressed in
+      RDF/XML, N-Triples, Turtle, etc.</li>
+
+      <li>a SQL database which provides an RDF view of its data,
+      perhaps using R2RML</li>
+
+      <li>the default graph or any of the named graphs available via a
+      SPARQL endpoint</li>
+    </ul>
+
+    <p>Formally, a layer is a function from points in time to RDF
+    Graphs.  This matches the notion of a container or a place or a
+    writing surface: at any given point in time (for which the
+    function is defined), there is a set of RDF triples in that spot.
+    Since an RDF Graph is defined as a set of RDF triples, the triples
+    there at time t form the graph which is the output of the function
+    for input t.</p>
+
+    <p>Web resources which do not behave as a function of time &mdash;
+    such as pages which provide different data to different users at
+    the exact same time &mdash; are not layers.  See also <a>static
+    layer</a> and <a>layer switch</a>.</p>
+
+  </section>
+
+  <section>
+    <h2>Dataset</h2>
+
+    <p>A <dfn>dataset</dfn> is defined by <a
+    href="http://www.w3.org/TR/sparql11-query/#rdfDataset">SPARQL
+    1.1</a> as a structure consisting of:</p>
+    
+    <ol>
+      
+      <li>A distinguished RDF Graph called the <dfn>default graph</dfn></li>
+      
+      <li>A set of (<i>name</i>, <i>graph</i>) pairs, where
+      <i>name</i> is an IRI and the <i>graph</i> is an RDF Graph.  No
+      two pairs in a dataset may have the same <i>name</i>.</li>
+      
+    </ol>
+    
+    <p>This definition forms the basis of the SPARQL Query semantics;
+    each query is performed against the information in a specific
+    dataset.</p>
+    
+    <p>A dataset is a pure mathematical structure, like an RDF Graph
+    or a set of integers, with no identity apart from its contents.
+    Two datasets with the same contents are in fact the same dataset,
+    and one dataset cannot change over time.  Logically, a dataset
+    cannot have different contents tomorrow; if it is changed, it is a
+    different dataset.  By analogy, one cannot change the set of prime
+    numbers or the set {1,3,5}; datasets, like these sets of integers,
+    are immutable, eternal concepts.</p>
+
+    <p>The word <strong>"default"</strong> in the term "default graph"
+    refers to the fact that in SPARQL, this is the graph a server uses
+    to perform a query when the client does not specify the name of a
+    graph to use.  The term is not related to the idea of a graph
+    containing default (overridable) information.  Logically, the role
+    of the default graph is such that it could reasonably be thought
+    of as containing the dataset's metadata.</p>
+
+  </section>
+
+  <section>
+    <h2>Graph Store</h2>
+    
+    <p>SPARQL 1.1 Update defines a mutable (time-dependent) structure
+    corresponding to a <a>dataset</a>, called <dfn>graph store</dfn>.
+    It is defined as:</p>
+
+    <ol>
+
+      <li>A distinguished slot for an RDF Graph</li>
+      
+      <li>A set of (<i>name</i>, <i>slot</i>) pairs, where the slot holds an RDF Graph
+      and the name is an IRI.  No two pairs in a graph store may have the same <i>name</i>.</li>
+      
+    </ol>
+    
+    <p>The term "slot" is synonymous with "layer".</p>
+
+    <p>Formally, a graph store can be seen as a function from points
+    in time to <a>dataset</a>s.</p>
+
+  </section>
+
+  <section>
+    <h2>Named Graph</h2>
+
+    <p>SPARQL formally defines the term <dfn>named graph</dfn>,
+    following [Carroll], as one of the (name, graph) pairs in a
+    <a>dataset</a>.</p>
+
+    <p>In practice, the term is used more loosely to refer to the
+    graph part of those pairs or to the slot part of the pairs
+    in a graph store.  <a
+    href="http://www.w3.org/TR/2012/WD-sparql11-update-20120105/">SPARQL
+    1.1 Update</a> does this, for example, with phrases like, "This
+    example copies triples from one named graph to another named
+    graph".</p>
+
+    <p>We continue that practice, using "named graph" to refer
+    to either the graph part of the (name, graph) pairs of a dataset,
+    or the corresponding slot part of graph store.  Note that even in
+    this loose usage, the default graph of a dataset and its
+    corresponding slot in a graph store are never called named
+    graphs.</p>
+
+  </section>
+
+  <section>
+    <h2>Quad</h2>
+
+    <p>We define an RDF <dfn>quad</dfn> as the 4-tuple
+    (<i>subject</i>, <i>predicate</i>, <i>object</i>,
+    <i>layer</i>).</p>
+
+    <p>Informally, a quad should be understand as a statement that the
+    RDF triple (<i>subject</i>, <i>predicate</i>, <i>object</i>) is in
+    the <a>layer</a> <i>layer</i>.</p>
+
+  </section>
+
+  <section>
+    <h2>Quadset</h2>
+
+    <p>We define an RDF <dfn>quadset</dfn> as a set containing (zero or more) RDF Quads and (zero or more) RDF Triples.</p>
+
+    <p>Quadsets and <a>dataset</a>s are isomorphic and semantically
+    equivalent:</p>
+
+    <ul>
+
+      <li>the triples in the quadset correspond to the triples in default
+     graph of the dataset;</li>
+
+     <li>each quad corresponds to a triple in a named graph: the quad (S P
+     O L) corresponds to the triple (S P O) in the graph with the name
+     L.</li>
+
+    </ul>
+
+    <p>Datasets and quadsets can thus be used interchangeably, with
+    the more appropriate one being use in any particular context.</p>
+
+  </section>
+
+  <section>
+    <h2>Static Layer</h2>
+
+    <p>A <dfn>static layer</dfn> is a <a>layer</a> which, by definition,
+    contains the same triples at all points in time.</p>
+    
+  </section>
+
+
+  <section>
+    <h2>Layer Switch</h2>
+
+    <p>A <dfn>layer switch</dfn> is a Web Resource which acts as a
+    different <a>layer</a> when responding to different client
+    information, such as the value of a cookie or the client IP
+    address.</p>
+
+    <p>Systems which use layer switches SHOULD also define working
+    URLs for each of the layers the switch can act as, and they SHOULD
+    provide that URL to the client via the Content-Location
+    header.</p>
+
+    <p>For example, the URL
+    <tt>http://example.org/my-account-balance</tt> might return the
+    account balance of the logged-in user.  If the user is logged in
+    as "alice", the system might return a Content-Location of
+    <tt>http://example.org/my-account-balance?user=alice</tt>.  The
+    system could reasonably be designed to allow Alice to use that URL as
+    well; for other users it would give <tt>403 Forbidden</tt>.</p>
+
+  </section>
 </section>
 
 <section>
   <h2>Use Cases</h2>
 
-  <p>TBD.  See <a href="#detailed-example">Detailed Example</a> for now.</p>
+  <p>TBD.  See <a href="#detailed-example" class="sectionRef"></a> for now.</p>
 
 </section>
 
 
-<section>
-  <h2>Datasets</h2>
-
-  <section id="section-multigraph">
-    <h3>Formal Definition</h3>    
-
-    <p class="note">Should this quote or replace this text from RDF
-    Concepts?</p>
-
-    <p>An <dfn>RDF Dataset</dfn> is a collection of
-    <a>RDF graphs</a> and comprises:</p>
-
-    <ul>
-    <li>Exactly one <dfn>default graph</dfn>, being an <a>RDF graph</a>.
-    The default graph does not have a name and MAY be empty.</li>
-    <li>Zero or more <dfn>named graphs</dfn>.
-    Each named graph is a pair consisting of an <a>IRI</a>
-    (the <dfn>graph name</dfn>), and an <a>RDF graph</a>.
-    Graph names are unique within an RDF dataset.</li>
-    </ul>
-
-    <div class="issue">
-    <p>The design presented here should be considered a straw man proposal at this point. It is based on RDF Datasets as <a href="http://www.w3.org/TR/sparql11-query/#rdfDataset">defined in SPARQL 1.1</a>.</p>
-    </div>
-
-</section>
-</section>
-
 <section id="syntax">
   <h2>Dataset Languages</h2>
 
@@ -252,23 +395,18 @@
 <section>
   <h2>Semantics</h2>
 
-  <p>Formally, a layer is a function from points in time to RDF
-  Graphs.  At any given point in time, there is one RDF Graph "in"
-  that layer, or the layer is undefined at that point in time.</p>
+  <p>formalize what's been said above.</p>
 
-  <p>SPARQL defines a <a
-  href="http://www.w3.org/TR/sparql11-query/#rdfDataset">Dataset</a>
-  as a structure consisting of a "default" graph and a set of (name,
-  graph) pairs.  We now give this structure declarative semantics,
-  allowing dataset to be used as logical statements, like RDF Graphs.
-  We define a dataset as being true if and only if (1) its default
-  graph is true, and (2) for every (<i>name</i>, <i>graph</i>) pair in
-  the dataset, the layer denoted by <i>name</i> contains every triple
-  in <i>graph</i>.</p>
+  <p>We now give <a>dataset</a>s declarative semantics, allowing
+  dataset to be used as logical statements (like RDF Graphs).  We
+  define a dataset as being true if and only if (1) its default graph
+  is true, and (2) for every (<i>name</i>, <i>graph</i>) pair in the
+  dataset, the layer denoted by <i>name</i> contains every triple in
+  <i>graph</i>.</p>
 
 </section>
 
-<section>
+<section>   <!-- I don't like what respec does with id=conformance -->
   <h2>Conformance</h2>
 
   <p>Something like: If a layer has a URL, and you get a 200 response
@@ -283,11 +421,12 @@
 <section class="informative">
   <h2>Detailed Example</h2>
 
-  <p>This section shows, with some detail, several ways layers can be
-  used to help build a federated information system.</p>
+  <p>This section presents a design for using layers in constructing a
+  federated information system.  It is intended to help explain and
+  motivate RDF <a>data layer</a>s.</p>
 
   <section>
-    <h3>A Federated Phonebook, in Layers</h3>
+    <h3>A Federated Phonebook</h3>
 
     <p>As a first example of how to use layers, consider an
     organization which has 25 different divisions around the world,
@@ -635,6 +774,7 @@
 <section class="appendix informative" id="changes">
   <h2>Changes</h2>
   <ul>
+    <li>2012-05-02: Removed obsolete text from the introduction, removed the section on datasets borrowed from RDF Concepts, and added many entries to Terminology and Concepts.</li>
     <li>2012-05-01: Starting with a little text from RDF Concepts, a few ideas, and the text from <a href="http://www.w3.org/2011/rdf-wg/wiki/Layers">Layers</a></li>
   </ul>
 </section>