ACTION-120 (Part 1) Added concepts of containers (basic, direct and indirect)
authorsspeiche
Mon, 03 Feb 2014 09:21:36 -0500
changeset 449 623bbfdea989
parent 448 72e366f1195f
child 450 e8d84dbc86dc
ACTION-120 (Part 1) Added concepts of containers (basic, direct and indirect)
images/ldpc-basic.png
ldp.html
ldp.ttl
Binary file images/ldpc-basic.png has changed
--- a/ldp.html	Thu Jan 30 13:01:49 2014 -0500
+++ b/ldp.html	Mon Feb 03 09:21:36 2014 -0500
@@ -2,7 +2,6 @@
 <!-- 
  Editor TODO:
    - Search "TODO" within this document.
-   - Convert cases like 5.4.3 to a sectionRef ... search on sectionRef in case numbers change
    - Once companion documents (best practices, primer) have URLs, link to them.  Search on "companion".
    - Once the membership* names stabilize, take a pass through for "membership consistent value", membership-constant-URI
      and see if there is a friendlier way to phrase it.
@@ -271,6 +270,21 @@
 	<dt>Linked Data</dt>
 	<dd>As defined by Tim Berners-Lee [[LINKED-DATA]].<p></p></dd>
 	
+	<dt>Client</dt>
+	<dd>A program that establishes connections for the purpose of sending requests [[HTTP11]].<p></p></dd>
+	
+	<dt>Server</dt>
+	<dd>An application
+		program that accepts connections in order to service requests by
+		sending back responses. 
+		<p>Any given program may be capable of being
+		both a client and a server; our use of these terms refers only to
+		the role being performed by the program for a particular
+		connection, rather than to the program's capabilities in general.
+		Likewise, any server may act as an origin server, proxy, gateway,
+		or tunnel, switching behavior based on the nature of each request
+		[[HTTP11]]. </p></dd>
+	
 	<dt><dfn>Linked Data Platform Resource</dfn> (<abbr title="Linked Data Platform Resource">LDPR</abbr>)</dt>
 	<dd>HTTP resource whose state is represented in any representation that conforms to the simple lifecycle
 		patterns and conventions in <a href="#ldpr" class="sectionRef"></a>.<p></p></dd>
@@ -286,23 +300,32 @@
 		
 	<dt><dfn>Linked Data Platform Container</dfn> (<abbr title="Linked Data Platform Container">LDPC</abbr>)</dt>
 	<dd>An LDPR representing a collection of <a title="Membership triples">membership triples</a> which is uniquely identified by a URI
-	that responds to client requests for creation, modification, and enumeration of its members.
+	that responds to client requests for creation, modification, and enumeration of its members that conforms to the simple lifecycle
+	patterns and conventions in <a href="#ldpc" class="sectionRef"></a>
 	<p></p></dd>
-		
-	<dt>Client</dt>
-	<dd>A program that establishes connections for the purpose of sending requests [[HTTP11]].<p></p></dd>
 	
-	<dt>Server</dt>
-	<dd>An application
-		program that accepts connections in order to service requests by
-		sending back responses. 
-		<p>Any given program may be capable of being
-		both a client and a server; our use of these terms refers only to
-		the role being performed by the program for a particular
-		connection, rather than to the program's capabilities in general.
-		Likewise, any server may act as an origin server, proxy, gateway,
-		or tunnel, switching behavior based on the nature of each request
-		[[HTTP11]]. </p></dd>
+	<dt><dfn>Linked Data Platform Basic Container</dfn> (<abbr title="Linked Data Platform Basic Container">LDP-BC</abbr>)</dt>
+	<dd>An <a title="Linked Data Platform Container">LDPC</a> that uses a predefined predicate to simply link to 
+	its contained (ldp:contains) resources.
+	<p></p></dd>
+	
+	<dt><dfn>Linked Data Platform Direct Container</dfn> (<abbr title="Linked Data Platform Direct Container">LDP-DC</abbr>)</dt>
+	<dd>An <a title="Linked Data Platform Container">LDPC</a> that has the flexibility of choosing what form the 
+	<a title="Membership triples">membership triples</a> take.
+	<p></p></dd>
+	
+	<dt><dfn>Linked Data Platform Indirect Container</dfn> (<abbr title="Linked Data Platform Indirect Container">LDP-IC</abbr>)</dt>
+	<dd>An <a title="Linked Data Platform Container">LDPC</a> that similar to a <a title="Linked Data Platform Direct Container">LDP-DC</a> 
+	but it allows an indirection with the ability to list as member a resource that is different from the one that is created.
+	<p></p></dd>	
+		
+	<dt><dfn>Membership</dfn></dt>
+	<dd>The relationship binding an LDP-RR (LDPCs are also LDP-RRs) and its members LDPRs.  There often is a LDPCs that assists with 
+	managing the member LDPRs.<p></p></dd>
+
+	<dt><dfn>Containment</dfn></dt>
+	<dd>The relationship binding an LDPC to its contained LDPRs.  This link is direction between the LDPC and its contained LDPRs.  The
+	lifecycle of the contained LDPR, depends on the containing LDPC.<p></p></dd>
 
 	<dt><dfn>Membership triples</dfn></dt>
 	<dd>A set of triples in an LDPC's state that lists its members.
@@ -1003,6 +1026,11 @@
 <section id="ldpc">
 <h1>Linked Data Platform Containers</h1>
 
+<div class="ldp-issue-pending">
+This section is current "under construction" while editors are trying to thoroughly complete edits for 
+<a href="https://www.w3.org/2012/ldp/track/actions/120">ACTION-120</a>.
+</div>
+
 <section class="informative" id="ldpc-informative">		
 <h2>Informative</h2>
 	<p>Many HTTP applications and sites have organizing
@@ -1049,20 +1077,25 @@
 		container (the fact that it is a container and a brief title):</p>
 
 <pre class="example" id="ldpc-ex-simple"># The following is the representation of
-#    http://example.org/container1/
+#    http://example.org/c1/
 <!-- @base is here only so it's easier to paste into validators for checking -->
-# @base &lt;http://example.org/container1/&gt;
+# @base &lt;http://example.org/c1/&gt;
 @prefix dcterms: &lt;http://purl.org/dc/terms/&gt;.
 @prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;.
 @prefix ldp: &lt;http://www.w3.org/ns/ldp#&gt;.
 
 &lt;&gt;
-   a ldp:Container;
+   a ldp:Container, ldp:BasicContainer;
    ldp:containerResource &lt;&gt; ;
    ldp:containsRelation rdfs:member;
    ldp:insertedContentRelation ldp:MemberSubject;
    dcterms:title "A very simple container";
-   rdfs:member &lt;member1&gt;, &lt;member2&gt;, &lt;member3&gt;.</pre>
+   rdfs:member &lt;r1&gt;, &lt;r2&gt;, &lt;r3&gt;.</pre>
+ 
+   	<figure id="fig-ldpc-basic">
+        <img src="images/ldpc-basic.png" alt="Sample Linked Data Platform Basic Container" />
+        <figcaption>Sample of Linked Data Platform Basic Container</figcaption>
+    </figure>
 
 	<p>This example is very straightforward - the
 			membership predicate is <code>rdfs:member</code> and the other
@@ -1172,7 +1205,31 @@
 			at the membership triples, so the example includes this information in
 			triples whose subject is the LDPC resource itself.
 	</p>
+
+
+<div class="ldp-issue-pending">
+<p>Still editing for ACTION-120 -- table work in progress, fate unknown
 	
+	<p>
+	The following table illustrates some key differences between <a title="membership">membership</a> and 
+	<a title="containment">containment</a> triples.
+	</p>
+	<table border="1" id="ldpc-mbrcntdiff">
+		<thead><tr><th>Request</th><th>Membership</th><th>Containment</th></tr></thead>
+		<tr><td>LDPR created in LDPC</td><td>New triple based on type of container</td><td>New triple: 
+			(LDPC, ldp:contains, LDPR)</td></tr>
+		<tr><td>LDPR created in LDP-BC</td><td>New triple: (LDPC, ldp:contains, LDPR)</td><td>Same</td></tr>
+		<tr><td>LDPR created in LDP-DC</td><td>New triple links LDP-RR to created LDPR. LDP-RR URI may be same as LDP-DC.</td>
+			<td>New triple: (LDPC, ldp:contains, LDPR).</td></tr>
+		<tr><td>LDPR created in LDP-IC</td><td>New triple links LDP-RR to content indicated URI.</td>
+			<td>New triple: (LDPC, ldp:contains, LDPR).</td></tr>
+		<tr><td>LDPR is deleted</td><td>Triples may be removed.</td><td>Triples are removed.
+			</td></tr>
+		<tr><td>LDPC is deleted</td><td>Triples and member resources may be removed.</td><td>Triples of form 
+			(LDPC, ldp:contains, LDPR) and LDPRs are removed.</td></tr>
+
+	</table>
+</div>	
 	<section id="ldpc-get_non-member_props"><h2 class="normal">Retrieving Only Non-member Properties
 	</h2><!-- Was 5.1.1 / #ldpc-get_non-member_props -->
 	<p>The representation of a container
@@ -2049,7 +2106,6 @@
 
 </section>
 </section> <!-- status code defns -->
-    
 
 
 <section class='informative' id='security'>
@@ -2090,6 +2146,7 @@
 <!-- <blockquote><em><a href="http://www.w3.org/TR/2013/WD-ldp-20130930/">Candidate Recommendation Draft</a></em></blockquote> wah -->
 <!-- <blockquote><em><a href="http://www.w3.org/TR/2013/WD-ldp-20130730/">Last Call Draft</a></em></blockquote> -->
 <ul>
+	<li>2014-01-30 - ACTION-120 (Part 1) Added concepts of containers (basic, direct and indirect) (SS)</li>
 	<li>2014-01-30 - ACTION-123 Added concepts of LDP-RDF-Resource and LDP-Binary-Resource (SS)</li>
 	<li>2014-01-29 - Fix up conformance section to use new LDP client section (SS)</li>
 	<li>2014-01-21 - Updated reference to LDP BP&amp;G editor's draft and added ref to LDP-UCR (SS)</li>
--- a/ldp.ttl	Thu Jan 30 13:01:49 2014 -0500
+++ b/ldp.ttl	Mon Feb 03 09:21:36 2014 -0500
@@ -54,6 +54,30 @@
 	vs:term_status "unstable";
 	rdfs:isDefinedBy :;
 	rdfs:label "Container".
+
+:BasicContainer
+    a rdfs:Class;
+	rdfs:subClassOf :Container;
+	rdfs:comment "";
+	vs:term_status "unstable";
+	rdfs:isDefinedBy :;
+	rdfs:label "BasicContainer".
+
+:DirectContainer
+    a rdfs:Class;
+	rdfs:subClassOf :Container;
+	rdfs:comment "";
+	vs:term_status "unstable";
+	rdfs:isDefinedBy :;
+	rdfs:label "DirectContainer".
+
+:IndirectContainer
+    a rdfs:Class;
+	rdfs:subClassOf :Container;
+	rdfs:comment "";
+	vs:term_status "unstable";
+	rdfs:isDefinedBy :;
+	rdfs:label "IndirectContainer".
 	
 :containerSortCriteria
  	a rdf:Property;