Split out different kinds of LDPCs into their own subsection
authorsspeiche
Fri, 28 Feb 2014 16:53:05 -0500
changeset 506 c828dbebaebb
parent 505 7c9fc6642481
child 507 4c551514a4d0
Split out different kinds of LDPCs into their own subsection
ldp.html
--- a/ldp.html	Thu Feb 27 16:00:38 2014 -0500
+++ b/ldp.html	Fri Feb 28 16:53:05 2014 -0500
@@ -304,31 +304,29 @@
 	<p></p></dd>
 		
 	<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">member</a> resources and/or <a title="Containment">contained</a>
+	<dd>An LDP-RS representing a collection of linked
 	documents (<a href="http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-document">RDF Document</a> [[!rdf11-concepts]] or information resources [[!WEBARCH]])
-	that responds to client requests for creation, modification, and/or enumeration of its members and documents, 
+	that responds to client requests for creation, modification, and/or enumeration of its linked members and documents, 
 	and that conforms to the simple lifecycle
 	patterns and conventions in <a href="#ldpc" class="sectionRef"></a>.
 	<p></p></dd>
 	
 	<dt><dfn>Linked Data Platform Basic Container</dfn> (<abbr title="Linked Data Platform Basic Container">LDP-BC</abbr>)</dt>
-	<dd>A <a title="Linked Data Platform Container">LDPC</a> that uses a single pre-defined predicate to link to both
-	its <a title="Containment">contained</a> and <a title="Membership">member</a> documents (information resources) [[!WEBARCH]].
+	<dd>A <a title="Linked Data Platform Container">LDPC</a> that defines a simple link to both
+	its <a title="Containment">contained</a> documents (information resources) [[!WEBARCH]].
 	<p></p></dd>
 	
 	<dt><dfn>Linked Data Platform Direct Container</dfn> (<abbr title="Linked Data Platform Direct Container">LDP-DC</abbr>)</dt>
-	<dd>A <a title="Linked Data Platform Container">LDPC</a> that has the flexibility of choosing what form its 
+	<dd>A <a title="Linked Data Platform Container">LDPC</a> adds the concept <a title="Membership">membership</a>, allows the flexibility of choosing what form its 
 	<a title="Membership triples">membership triples</a> take, and allows <a title="Membership">members</a> to be 
 	any resources [[!WEBARCH]], not only documents.
 	<p></p></dd>
 	
-	<!-- TODO: Remove LDP-IC definitions
 	<dt><dfn>Linked Data Platform Indirect Container</dfn> (<abbr title="Linked Data Platform Indirect Container">LDP-IC</abbr>)</dt>
 	<dd>A <a title="Linked Data Platform Container">LDPC</a> that is similar to a <a title="Linked Data Platform Direct Container">LDP-DC</a>
 	and is capable of having <a title="Membership">members</a> whose URIs are based
 	on the content of its <a title="Containment">contained</a> documents rather than the URIs assigned to those documents.
 	<p></p></dd>
-	-->
 		 
 	<dt><dfn>Membership</dfn></dt>
 	<dd>The relationship linking a LDP-RS (LDPCs are also LDP-RSs) and its member LDPRs.  
@@ -408,6 +406,7 @@
   <li>1. Introduction: <b>non-normative</b></li>
   <li>2. Terminology: <b>normative</b></li>
   <li>3. Conformance: <b>normative</b></li>
+  <!-- TODO: section numbering is OFF - LDP clients -->
   <li>4. Linked Data Platform Resources: <b>normative</b></li>
   <li>5. Linked Data Platform Containers: <b>normative</b></li>
   <li>6. HTTP Header Definitions: <b>normative</b></li>
@@ -469,11 +468,9 @@
 		<a title="LDP client">LDP clients</a> MUST 
 		be capable of processing responses formed by an LDP server that ignores hints,
 		including LDP-defined hints.
-	</h2></section> 
-
+	</h2></section>
 	
 	<section id="ldpr-cli-paging"><h2 class="normal">
-		
 	<div class="atrisk" id="atrisk-paging"><p class="atrisktext">Feature At Risk</p>
 	<p>The LDP Working Group proposes incorporation of the following clause to make LDP clients paging aware:</p>
 		<a title="LDP client">LDP clients</a> SHOULD 
@@ -833,8 +830,13 @@
 	</ol>
 	<p>
 		This document defines the representation and behavior of containers
-		that address these issues. The set of members of a container is
+		that address these issues. There are multiple types of containers defined
+		to supported a variety of use cases, all that support a base set of capabilities.
+		The contents of a container is
 		defined by a set of triples in its representation (and state) called
+		the <a title="Containment triples">containment triples</a> that follow a fixed pattern.
+		Additional types of containers allow for the set of members of a container to be
+		defined by a set of triples in its representation called
 		the <a title="Membership triples">membership triples</a> that follow a consistent pattern
 		(see the linked-to definition for the possible patterns). 
 		The membership triples of a container all
@@ -849,7 +851,7 @@
 	</p>
 	<p>This document includes a set of guidelines for
 		creating new resources and adding them to the list of
-		members of a container. It goes on to explain how to learn about a set of related
+		resources linked to a container. It goes on to explain how to learn about a set of related
 		resources, regardless of how they were created or added to the container's membership.
 		It also defines behavior when resources created using a container are later deleted;
 		deleting containers removes membership information and
@@ -867,7 +869,7 @@
 @prefix ldp: &lt;http://www.w3.org/ns/ldp#&gt;.
 
 &lt;&gt;
-   a ldp:Container, ldp:BasicContainer;
+   a ldp:BasicContainer;
    dcterms:title "A very simple container";
    ldp:contains &lt;r1&gt;, &lt;r2&gt;, &lt;r3&gt;.</pre>
  
@@ -876,14 +878,13 @@
         <figcaption>Sample of Linked Data Platform Basic Container</figcaption>
     </figure>
 
-	<p>This example is very straightforward - the
-	membership and containment predicate are both <code>ldp:contains</code> and the other
-	consistent membership value is the container's
-	URI, occurring in the subject position of the triples. 
+	<p>This example is very straightforward - there is the containment triple
+	with subject of the container, predicate of  
+	<code>ldp:contains</code> and objects indicating the URIs of the contained resources. 
 	A POST to this container will create a new resource
-	and add it to the list of members by adding a new membership triple
+	and add it to the list of contained resources by adding a new containment triple
 	to the container.  This type of container is also refered to as
-	<a title="Linked Data Platform Basic Container">LDP Basic Container</a>.</p>
+	<a title="">Linked Data Platform Basic Container</a>.</p>
 
 	<p>Sometimes it is useful to use a subject
 	other than the container itself as the consistent membership value, and/or to use
@@ -942,7 +943,7 @@
 @prefix dcterms: &lt;http://purl.org/dc/terms/&gt;.
 @prefix o: &lt;http://example.org/ontology/&gt;.
 &lt;&gt;
-   a ldp:Container, ldp:DirectContainer;
+   a ldp:DirectContainer;
    dcterms:title "The assets of JohnZSmith";
    ldp:membershipResource &lt;http://example.org/netWorth/nw1/&gt;;
    ldp:hasMemberRelation o:asset;
@@ -957,7 +958,7 @@
 @prefix dcterms: &lt;http://purl.org/dc/terms/&gt;.
 @prefix o: &lt;http://example.org/ontology/&gt;.
 &lt;&gt;
-   a ldp:Container, ldp:DirectContainer;
+   a ldp:DirectContainer;
    dcterms:title "The liabilities of JohnZSmith";
    ldp:membershipResource &lt;http://example.org/netWorth/nw1/&gt;;
    ldp:hasMemberRelation o:liability;
@@ -980,10 +981,9 @@
 	and <code>http://example.org/netWorth/nw1/liabilityContainer/</code> container
 	resources allows both assets and liabilities to be created.
 	</p>
-	<p>This type of container is refered to as an <a title="Linked Data Platform Direct Container">LDP Direct Container</a>.  An
-	 <a title="Linked Data Platform Basic Container">LDP Basic Container</a> is a constrained form of 
-	 <a title="Linked Data Platform Direct Container">LDP Direct Container</a> where the 
-	 membership predicate is <code>ldp:contains</code> and the container resource is the container itself.
+	<p>This type of container is refered to as an <a title="Linked Data Platform Direct Container">LDP Direct Container</a>.  
+	<a title="Linked Data Platform Direct Container">LDP Direct Container</a> adds the concept of <a title="Membership">membership</a>
+	and flexibilty on how to specify the <a title="Membership triples">membership triples</a>.
 	</p>
 
 	<p>As seen in the <a href="#ldpc-ex-membership-subj"><code>assetContainer/</code> example</a>, 
@@ -1022,7 +1022,7 @@
    	 &lt;advisorContainer/marsha#me&gt;.
    	 
 &lt;advisorContainer/&gt;
-   a ldp:Container;
+   a ldp:IndirectContainer;
    dcterms:title "The asset advisors of JohnZSmith";
    ldp:membershipResource &lt;&gt;;
    ldp:hasMemberRelation o:advisor;
@@ -1037,7 +1037,7 @@
 	form <code>(&lt;&gt;, foaf:primaryTopic, topic-URI)</code> to inform the server which URI to use 
 	(<code>topic-URI</code>) in the new membership triple.</p>
 	
-	<p>This type of container is also referred to as a <a title="Linked Data Platform Container">LDP Container</a>. 
+	<p>This type of container is also referred to as a <a title="Linked Data Platform Indirect Container">LDP Indirect Container</a>. 
 	It is similar to a an <a title="Linked Data Platform Direct Container">LDP Direct Container</a> 
 	but it provides an indirection to add (via a create request) as member any resource, 
 	such as a URI representing a real-world object,
@@ -1047,13 +1047,10 @@
 	with their class relationship to types of LDPRs.</p>
 	
 	 <figure id="fig-ldpc-types">
-        <img src="images/ldpc1.png" alt="Types of Linked Data Platform Containers" />
+        <img src="images/ldpc-hierarchy.png" alt="Types of Linked Data Platform Containers" />
         <figcaption>Class relationship of types of Linked Data Platform Containers</figcaption>
     </figure>
 
-<div class="ldp-issue-pending">
-<p>PENDING -- table work in progress, if found valuable...we'll keep.</p>
-	
 	<p>The following table illustrates some differences between <a title="membership">membership</a> and 
 	<a title="containment">containment</a> triples.  For details on the normative behavior, see appropriate sections
 	below.
@@ -1064,15 +1061,15 @@
 		<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-RS to created LDPR. LDP-RS URI may be same as LDP-DC</td>
 			<td>New triple: (LDPC, ldp:contains, LDPR)</td></tr>
-		<tr><td>LDPR created in LDPC</td><td>New triple links LDP-RS to content indicated URI</td>
+		<tr><td>LDPR created in LDP-IC</td><td>New triple links LDP-RS 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
+		<tr><td>LDPR is deleted</td><td>Membership triple may be removed</td><td>(LDPC, ldp:contains, LDPR) triple is 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 contained LDPRs may be removed</td></tr>
 	</table>
-</div>	
-	<section id="ldpc-get_empty-container_props"><h2 class="normal">Retrieving Only Empty-Container Triples
+
+<section id="ldpc-get_empty-container_props"><h2 class="normal">Retrieving Only Empty-Container Triples
 	</h2><!-- Was 5.1.1 / #ldpc-get_empty-container_props -->
 	<p>The representation of a container
 		that has many members will be large. There are several important
@@ -1117,7 +1114,7 @@
 @prefix ldp: &lt;http://www.w3.org/ns/ldp#&gt;.
 
 &lt;http://example.org/container1/&gt;
-   a ldp:Container, ldp:DirectContainer;
+   a ldp:DirectContainer;
    dcterms:title "A Linked Data Platform Container of Acme Resources";
    ldp:membershipResource &lt;http://example.org/container1/&gt;;
    ldp:hasMemberRelation ldp:member;
@@ -1132,22 +1129,25 @@
 
 </section>
 
+<section id="ldpc-container">
+<h2>Container</h2>
+<p>The following section contains normative clauses for <a title="">Linked Data Platform Container</a>.</p>
+
 <section id="ldpc-general">
 <h2>General</h2>
 	<p>The Linked Data Platform does not define how clients
 		discover <dfn><abbr title="Linked Data Platform Containers">LDPCs</abbr></dfn>.</p>
 
-	<section id="ldpc-isldpr"><h2 class="normal">Each Linked Data Platform Container MUST also be 
-		a conforming <a title="">Linked Data Platform RDF Source</a>.
+	<section id="ldpc-isldpr"><h2 class="normal">Each <a title="">Linked Data Platform Container</a> MUST also be 
+		a conforming <a title="">Linked Data Platform RDF Source</a>. <a title="">LDP client</a>s MAY infer the following triple:
+	whose subject is <code>ldp:Container</code>, 
+	whose predicate is <code>rdfs:subClassOf</code>, 
+	and whose object is <code>ldp:RDFSource</code>, 
+	but there is no requirement to materialize this triple in the LDPC representation.
 	</h2></section><!-- Was 5.2.1 / #ldpc-5_2_1 -->
 		
-	<section id="ldpc-typecontainer"><h2 class="normal">The representation of a LDPC MUST have an <code>rdf:type</code>
-		of only one of:
-		<ul>
-		<li><code>ldp:Container</code> for <a title="">Linked Data Platform Container</a></li>
-		<li><code>ldp:DirectContainer</code> for <a title="">Linked Data Platform Direct Container</a></li>
-		<li><code>ldp:BasicContainer</code> for <a title="">Linked Data Platform Basic Container</a></li>
-		</ul>
+	<section id="ldpc-typecontainer"><h2 class="normal">The representation of a LDPC MAY have an <code>rdf:type</code>
+		of only one of <code>ldp:Container</code> for <a title="">Linked Data Platform Container</a>.
 		Non-normative note: <a href="#ldp-rdfconcepts-extra-triples-types">LDPCs
 		might have additional types</a>, like any <a title="Linked Data Platform RDF Source">LDP-RS</a>.
 	</h2></section><!-- Was 5.2.7 / #ldpc-5_2_7 -->
@@ -1156,113 +1156,6 @@
 		<code>rdf:Seq</code> or <code>rdf:List</code>.
 	</h2></section><!-- Was 5.2.8 / #ldpc-5_2_8 -->
 	
-	<section id="ldpc-mbrpred"><h2 class="normal">
-		<a title="Linked Data Platform Direct Container">LDP Direct Containers</a>
-		and <a title="Linked Data Platform Container">LDP Containers</a>
-		SHOULD use the <code>ldp:member</code> predicate as an LDPC's <a title="Membership predicate">membership predicate</a>
-		if there is no obvious predicate from an application vocabulary to use 
-		(<a title="Linked Data Platform Basic Container">LDP-BCs</a> <a href="#ldpc-containtriple-basic">always use <code>ldp:contains</code></a>).
-		The state of an LDPC includes information about which
-		resources are its members, in the form of <a title="Membership triples">membership triples</a> that
-		follow a consistent pattern.  The LDPC's state contains enough information for clients to discern
-		the <a title="Membership predicate">membership predicate</a>, the other consistent membership
-		value used in the container's membership triples (<var>membership-constant-URI</var>), 
-		and the position (subject or object) where those URIs
-		occurs in the <a title="Membership triples">membership triples</a>.
-		Member resources can be
-		any kind of resource identified by a URI, LDPR or otherwise.
-	</h2></section><!-- Was 5.2.3 / #ldpc-5_2_3 -->
-	
-	<section id="ldpc-containres"><h2 class="normal">Each <a title="Linked Data Platform Direct Container">LDP Direct Container</a>
-		and <a title="Linked Data Platform Container">LDP Container</a> representation MUST contain exactly one triple 
-		whose subject is the LDPC URI, 
-		whose predicate is the <code>ldp:membershipResource</code>, 
-		and whose object is the LDPC's <var>membership-constant-URI</var>.
-		Commonly the LDPC's URI is the <var>membership-constant-URI</var>, but LDP does not require this.
-	</h2>
-		<section id="ldpc-containres-basic"><h2 class="normal"><a title="Linked Data Platform Basic Container">LDP-BCs</a> MUST
-			behave as if their state contains the triple 
-			whose subject is the LDPC URI, 
-			whose predicate is <code>ldp:membershipResource</code>, 
-			and whose object is the LDPC URI (subject and object are the same URI), 
-			but there is no requirement to materialize this triple in LDP-BC representations.
-		</h2></section>
-	</section><!-- Was 5.2.4 / #ldpc-5_2_4 -->
-	
-	<section id="ldpc-containtriples"><h2 class="normal">Each <a title="Linked Data Platform Direct Container">LDP Direct Container</a>
-		and <a title="Linked Data Platform Container">LDP Container</a> representation MUST contain exactly one triple 
-		whose subject is the LDPC URI, 
-		and whose predicate is either <code>ldp:hasMemberRelation</code> or <code>ldp:isMemberOfRelation</code>. 
-		The object of the triple is constrained by other sections, such as
-		<a href="#ldpc-containtriple-relation" class="sectionRef">ldp:hasMemberRelation</a> or 
-		<a href="#ldpc-containtriple-byrelation" class="sectionRef">ldp:isMemberOfRelation</a>, based on the 
-		<a title="Membership triples">membership triple</a> 
-		pattern used by the container.
-	</h2><!-- Was 5.2.5 / #ldpc-5_2_5 -->
-	
-	<section id="ldpc-containtriple-relation"><h2 class="normal">LDPCs (<a title="Linked Data Platform Direct Container">LDP Direct Containers</a>
-		and <a title="Linked Data Platform Container">LDP Containers</a> only) 
-		whose <a title="Membership triples">membership triple</a> 
-		pattern is <var>( membership-constant-URI , membership-predicate , member-derived-URI )</var> MUST
-		contain exactly one triple
-		whose subject is the LDPC URI, 
-		whose predicate is <code>ldp:hasMemberRelation</code>, 
-		and whose object is the URI of <var>membership-predicate</var>.
-	</h2>
-		<section id="ldpc-containtriple-basic"><h2 class="normal"><a title="Linked Data Platform Basic Container">LDP-BCs</a> MUST
-			behave as if their state contains the triple 
-			whose subject is the LDPC URI, 
-			whose predicate is <code>ldp:hasMemberRelation</code>, 
-			and whose object is <code>ldp:contains</code>,
-			but there is no requirement to materialize this triple in LDP-BC representations.
-		</h2></section>
-	</section><!-- Was 5.2.5.1 / #ldpc-5_2_5_1 -->
-	
-	<section id="ldpc-containtriple-byrelation"><h2 class="normal">LDPCs (<a title="Linked Data Platform Direct Container">LDP Direct Containers</a>
-		and <a title="Linked Data Platform Container">LDP Containers</a> only) 
-		whose <a title="Membership triples">membership triple</a> 
-		pattern is <var>( member-derived-URI , membership-predicate , membership-constant-URI )</var> MUST
-		contain exactly one triple
-		whose subject is the LDPC URI, 
-		whose predicate is either <code>ldp:isMemberOfRelation</code>, 
-		and whose object is the URI of <var>membership-predicate</var>.
-	</h2></section><!-- Was 5.2.5.2 / #ldpc-5_2_5_2 -->
-	</section>
-
-	<section id="ldpc-indirectmbr"><h2 class="normal">
-		<a title="Linked Data Platform Container">LDP Containers</a>
-		MUST contain exactly one triple whose
-	    subject is the LDPC URI, 
-		whose predicate is <code>ldp:insertedContentRelation</code>, and 
-		whose object <var>ICR</var> describes how the <var>member-derived-URI</var> in 
-		the container's <a title="Membership triples">membership triples</a> is chosen.
-		The <var>member-derived-URI</var> is taken from some triple 
-		<var>( S, P, O )</var> in the document supplied by the client as input to the create request;
-		if <var>ICR</var>'s value is <var>P</var>, then the <var>member-derived-URI</var> is
-		<var>O</var>.  LDP does not define the behavior when more than one triple containing 
-		the predicate <var>P</var> is present in the client's input.
-		For example, if the client POSTs RDF content to a container
-		that causes the container to create a new LDPR, and that content contains the triple 
-		<var>( &lt;&gt; , foaf:primaryTopic , bob#me )</var>
-		<code>foaf:primaryTopic</code> says
-		that the <var>member-derived-URI</var> is <var>bob#me</var>.  
-		</h2>
-
-		<section id="ldpc-indirectmbr-basic"><h2 class="normal">
-			LDP 
-			<a title="Linked Data Platform Basic Container">Basic</a> and 
-			<a title="Linked Data Platform Direct Container">Direct</a> Containers 
-			MUST behave as if they
-			have a <var>( LDPC URI, <code>ldp:insertedContentRelation</code> , <code>ldp:MemberSubject</code> )</var>
-			triple, but LDP imposes no requirement to materialize such a triple in representations.
-			The value <code>ldp:MemberSubject</code> means that the 
-			<var>member-derived-URI</var> is the URI assigned by the server to a 
-			document it creates; for example, if the client POSTs content to a container
-			that causes the container to create a new LDPR, <code>ldp:MemberSubject</code> says
-			that the <var>member-derived-URI</var> is the URI assigned to the newly created LDPR.
-		</h2></section>
-	</section><!-- Was 5.2.10 / #ldpc-5_2_10 -->
-	
 	<section id="ldpc-linktypehdr"><h2 class="normal"><a title="LDP server">LDP servers</a>
 		exposing LDPCs
 		MUST advertise their LDP support by exposing a HTTP <code>Link</code> header
@@ -1324,14 +1217,6 @@
 		removed by other methods. 
 	</h2></section>
 	
-	<section id="ldpc-post-createdmbr-member"><h2 class="normal">
-		When a successful HTTP <code>POST</code> request to a LDPC results in the creation of an LDPR, 
-		the LDPC MUST update its membership triples to reflect that addition, and the resulting 
-		membership triple MUST be consistent with any LDP-defined predicates it exposes.
-		A <a title="Linked Data Platform Direct Container">LDP Direct Container</a> or <a title="Linked Data Platform Container">LDP Container</a>'s membership triples MAY also be modified via 
-		through other means. 
-	</h2></section><!-- Was 5.4.2 / #ldpc-5_4_2 -->
-	
 	<section id="ldpc-post-createbins"><h2 class="normal"><a title="LDP server">LDP servers</a> MAY accept an HTTP <code>POST</code> of non-RDF representations 
 	<a title="Linked Data Platform Non-RDF Source">(LDP-NRs)</a> for
 		creation of any kind of resource, for example binary resources.  See <a href="#ldpc-post-acceptposthdr">the Accept-Post section</a> for 
@@ -1421,19 +1306,6 @@
 		whose object is the newly created member resource's URI; 
 		it MAY add other triples as well.
 	</h2></section><!-- Was 5.4.14 / #ldpc-5_4_14 -->
-
-	<section id="ldpc-post-indirectmbrrel"><h2 class="normal">LDPCs 
-		whose <code>ldp:insertedContentRelation</code> triple has an object
-		<strong>other than</strong> <code>ldp:MemberSubject</code> 
-		and that create new resources 
-		MUST add a triple to the container
-		whose subject is the container's URI, 
-		whose predicate is <code>ldp:contains</code>, and
-		whose object is the newly created resource's URI (which will be different from
-		the <var><a href="#ldpc-indirectmbr">member-derived URI</a></var> in this case).
-		This <code>ldp:contains</code> triple can be the only link from the container to the newly created
-		resource in certain cases.
-	</h2></section><!-- Was 5.4.15 / #ldpc-5_4_15 -->
 	
 </section>
 
@@ -1456,7 +1328,7 @@
 		(Conflict) status code.
 	</h2></section><!-- Was 5.5.1 / #ldpc-5_5_1 -->
 	
-	<section id="ldpc-put-create"><h2 class="normal"><a title="LDP server">LDP servers</a> that allow member creation via <code>PUT</code> 
+	<section id="ldpc-put-create"><h2 class="normal"><a title="LDP server">LDP servers</a> that allow LDPR creation via <code>PUT</code> 
 		SHOULD NOT re-use URIs.  For RDF representations (LDP-RSs),the created resource
 		can be thought of as a RDF <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-named-graph">named graph</a> [[!rdf11-concepts]].
 	</h2></section><!-- Was 5.5.4 / #ldpc-5_5_4 -->
@@ -1472,9 +1344,9 @@
 		this specification imposes the following new requirements for LDPCs.
 	</p>
 		
-	<section id="ldpc-del-contremovesmbrtriple"><h2 class="normal">
+	<section id="ldpc-del-contremovesconttriple"><h2 class="normal">
 		When a LDPR identified by the object of a <a title="containment triples">containment triple</a> is deleted, the LDPC server MUST also remove 
-		the LDPR from the containing LDPC by removing the corresponding containment and membership triples.
+		the LDPR from the containing LDPC by removing the corresponding containment triple.
 	</h2>
 	<blockquote>
 		Non-normative note: The <a>LDP server</a> might perform additional actions, 
@@ -1484,7 +1356,7 @@
 	</blockquote>
 	</section><!-- Was 5.6.1 / #ldpc-5_6_1 -->
 	
-	<section id="ldpc-del-contremovesmbrres"><h2 class="normal">
+	<section id="ldpc-del-contremovescontres"><h2 class="normal">
 	When a LDPR identified by the object of a <a title="containment triples">containment triple</a> is deleted, and the LDPC server 
 	created an associated LDP-RS (see the <a href="#ldpc-post-createbinlinkmetahdr">LDPC POST section</a>), the LDPC server MUST also remove the associated LDP-RS it created.
 	</h2></section><!-- Was 5.6.4 / #ldpc-5_6_4 -->
@@ -1528,8 +1400,8 @@
 		</p>
 
 	<section id="ldpc-options-linkmetahdr"><h2 class="normal">When a LDPC server creates a 
-	<a title="Linked Data Platform Non-RDF Source">LDP-NR</a> member (for example, one whose 
-	representation was HTTP <code>POST</code>ed to the LDPC and then referenced by a membership triple) 
+	<a title="Linked Data Platform Non-RDF Source">LDP-NR</a> (for example, one whose 
+	representation was HTTP <code>POST</code>ed to the LDPC) 
 	the LDP server might create an associated <a title="Linked Data Platform RDF Source">LDP-RS</a> 
 	to contain data about the non-LDPR (see <a href="#ldpc-post-createbinlinkmetahdr">LDPC POST section</a>).  
 	For LDP-NRs that have this associated LDP-RS, an LDPC server MUST provide an HTTP <code>Link</code>
@@ -1537,6 +1409,220 @@
 	<code>describedby</code> [[!RFC5988]].
 	</h2></section><!-- Was 5.9.2 / #ldpc-5_9_2 -->
 </section> <!-- h2 -->
+</section> <!-- ldpc-container -->
+
+<section id="ldpbc">
+<h2>Basic</h2>
+
+<p>The following section contains normative clauses for <a title="">Linked Data Platform Basic Container</a>.</p>
+
+
+<section id="ldpbc-general">
+<h2>General</h2>
+
+<section id="ldpbc-are-ldpcs"><h2 class="normal">Each <a title="Linked Data Platform Basic Container">LDP Basic Container</a> MUST also be 
+	a conforming <a title="Linked Data Platform Container">LDP Container</a> in <a href="#ldpc-container" class="sectionRef"></a> along the
+	following restrictions in this section. <a title="">LDP client</a>s MAY infer the following triple:
+	whose subject is <code>ldp:BasicContainer</code>, 
+	whose predicate is <code>rdfs:subClassOf</code>, 
+	and whose object is <code>ldp:Container</code>, 
+	but there is no requirement to materialize this triple in the LDP-BC representation.
+</h2></section>
+
+<!-- TODO: Consider removing the following 2 sections, they are informative but not really needed -->
+
+<section id="ldpbc-containres"><h2 class="normal"><a title="Linked Data Platform Basic Container">LDP Basic Containers</a> MUST
+	behave as if their state contains the triple 
+	whose subject is the LDPC URI, 
+	whose predicate is <code>ldp:membershipResource</code>, 
+	and whose object is the LDPC URI (subject and object are the same URI), 
+	but there is no requirement to materialize this triple in LDP-BC representations.
+</h2></section>
+
+<section id="ldpbc-containtriple"><h2 class="normal"><a title="Linked Data Platform Basic Container">LDP Basic Containers</a> MUST
+	behave as if their state contains the triple 
+	whose subject is the LDPC URI, 
+	whose predicate is <code>ldp:hasMemberRelation</code>, 
+	and whose object is <code>ldp:contains</code>,
+	but there is no requirement to materialize this triple in LDP-BC representations.
+</h2></section>
+
+</section> <!-- ldpbc General -->
+
+<section id="ldpbc-HTTP_POST">
+<h2>HTTP POST</h2>
+</section>
+
+</section> <!-- ldpbc Basic -->
+
+
+<section id="ldpc-direct">
+<h2>Direct</h2>
+<!-- TODO: membership triples definitions? -->
+
+<p>The following section contains normative clauses for <a title="">Linked Data Platform Direct Container</a>.</p>
+	
+<section id="ldpdc-general">
+<h2>General</h2>
+
+<section id="ldpdc-are-ldpcs"><h2 class="normal">Each <a title="Linked Data Platform Direct Container">LDP Direct Container</a> MUST also be 
+	a conforming <a title="Linked Data Platform Container">LDP Container</a> in <a href="#ldpc-container" class="sectionRef"></a> along the following
+	restrictions.  <a title="">LDP client</a>s MAY infer the following triple:
+	whose subject is <code>ldp:BasicContainer</code>, 
+	whose predicate is <code>rdfs:subClassOf</code>, 
+	and whose object is <code>ldp:Container</code>, 
+	but there is no requirement to materialize this triple in the LDP-DC representation.
+</h2></section>
+
+<section id="ldpdc-mbrpred"><h2 class="normal">
+	<a title="Linked Data Platform Direct Container">LDP Direct Containers</a>
+	SHOULD use the <code>ldp:member</code> predicate as an LDPC's <a title="Membership predicate">membership predicate</a>
+	if there is no obvious predicate from an application vocabulary to use..
+	The state of an LDPC includes information about which
+	resources are its members, in the form of <a title="Membership triples">membership triples</a> that
+	follow a consistent pattern.  The LDPC's state contains enough information for clients to discern
+	the <a title="Membership predicate">membership predicate</a>, the other consistent membership
+	value used in the container's membership triples (<var>membership-constant-URI</var>), 
+	and the position (subject or object) where those URIs
+	occurs in the <a title="Membership triples">membership triples</a>.
+	Member resources can be
+	any kind of resource identified by a URI, LDPR or otherwise.
+</h2></section><!-- Was 5.2.3 / #ldpc-5_2_3 -->
+
+<section id="ldpdc-containres"><h2 class="normal">Each <a title="Linked Data Platform Direct Container">LDP Direct Container</a>
+	representation MUST contain exactly one triple 
+	whose subject is the LDPC URI, 
+	whose predicate is the <code>ldp:membershipResource</code>, 
+	and whose object is the LDPC's <var>membership-constant-URI</var>.
+	Commonly the LDPC's URI is the <var>membership-constant-URI</var>, but LDP does not require this.
+</h2>
+</section><!-- Was 5.2.4 / #ldpc-5_2_4 -->
+
+<section id="ldpdc-containtriples"><h2 class="normal">Each <a title="Linked Data Platform Direct Container">LDP Direct Container</a>
+	representation MUST contain exactly one triple 
+	whose subject is the LDPC URI, 
+	and whose predicate is either <code>ldp:hasMemberRelation</code> or <code>ldp:isMemberOfRelation</code>. 
+	The object of the triple is constrained by other sections, such as
+	<a href="#ldpdc-containtriple-relation" class="sectionRef">ldp:hasMemberRelation</a> or 
+	<a href="#ldpdc-containtriple-byrelation" class="sectionRef">ldp:isMemberOfRelation</a>, based on the 
+	<a title="Membership triples">membership triple</a> 
+	pattern used by the container.
+</h2><!-- Was 5.2.5 / #ldpc-5_2_5 -->
+	
+<section id="ldpdc-containtriple-relation"><h2 class="normal"><a title="Linked Data Platform Direct Container">LDP Direct Containers</a>
+	whose <a title="Membership triples">membership triple</a> 
+	pattern is <var>( membership-constant-URI , membership-predicate , member-derived-URI )</var> MUST
+	contain exactly one triple
+	whose subject is the LDPC URI, 
+	whose predicate is <code>ldp:hasMemberRelation</code>, 
+	and whose object is the URI of <var>membership-predicate</var>.
+</h2>
+</section><!-- Was 5.2.5.1 / #ldpc-5_2_5_1 -->
+	
+<section id="ldpdc-containtriple-byrelation"><h2 class="normal"><a title="Linked Data Platform Direct Container">LDP Direct Containers</a>
+	whose <a title="Membership triples">membership triple</a> 
+	pattern is <var>( member-derived-URI , membership-predicate , membership-constant-URI )</var> MUST
+	contain exactly one triple
+	whose subject is the LDPC URI, 
+	whose predicate is either <code>ldp:isMemberOfRelation</code>, 
+	and whose object is the URI of <var>membership-predicate</var>.
+</h2></section><!-- Was 5.2.5.2 / #ldpc-5_2_5_2 -->
+</section>
+
+<section id="ldpdc-indirectmbr-basic"><h2 class="normal">
+	<a title="Linked Data Platform Direct Container">LDP Direct Containers</a>  
+	MUST behave as if they
+	have a <var>( LDPC URI, <code>ldp:insertedContentRelation</code> , <code>ldp:MemberSubject</code> )</var>
+	triple, but LDP imposes no requirement to materialize such a triple in the LDP-DC representation.
+	The value <code>ldp:MemberSubject</code> means that the 
+	<var>member-derived-URI</var> is the URI assigned by the server to a 
+	document it creates; for example, if the client POSTs content to a container
+	that causes the container to create a new LDPR, <code>ldp:MemberSubject</code> says
+	that the <var>member-derived-URI</var> is the URI assigned to the newly created LDPR.
+</h2></section>
+
+</section> <!-- ldpdc-general -->
+
+<section id="ldpdc-HTTP_POST">
+<h2>HTTP POST</h2>
+	<section id="ldpdc-post-createdmbr-member"><h2 class="normal">
+		When a successful HTTP <code>POST</code> request to a LDPC results in the creation of an LDPR, 
+		the LDPC MUST update its membership triples to reflect that addition, and the resulting 
+		membership triple MUST be consistent with any LDP-defined predicates it exposes.
+		A <a title="Linked Data Platform Direct Container">LDP Direct Container</a>'s membership triples MAY also be modified via 
+		through other means. 
+	</h2></section><!-- Was 5.4.2 / #ldpc-5_4_2 -->
+</section> <!-- ldpdc-HTTP_POST -->
+
+<section id="ldpdc-HTTP_DELETE">
+<h2>HTTP DELETE</h2>
+
+	<section id="ldpdc-del-contremovesmbrtriple"><h2 class="normal">
+		When a LDPR identified by the object of a <a title="membership triples">membership triple</a> which was
+		originally created by the LDP-DC is deleted, the LDPC server MUST also remove 
+		the corresponding membership triple..
+	</h2>
+	</section><!-- Was 5.6.1 / #ldpc-5_6_1 -->
+
+</section> <!-- ldpdc-HTTP_DELETE -->
+
+</section> <!-- ldpdc Direct -->
+
+<section id="ldpic">
+<h2>Indirect</h2>
+
+<p>The following section contains normative clauses for <a title="">Linked Data Platform Indirect Container</a>.</p>
+
+<section id="ldpic-general">
+<h2>General</h2>
+
+<section id="ldpic-are-ldpcs"><h2 class="normal">Each <a title="Linked Data Platform Indirect Container">LDP Indirect Container</a> MUST also be 
+	a conforming <a title="Linked Data Platform Direct Container">LDP Direct Container</a> in <a href="#ldpdc" class="sectionRef"></a> along the following
+	restrictions.  <a title="">LDP client</a>s MAY infer the following triple:
+	whose subject is <code>ldp:IndirectContainer</code>, 
+	whose predicate is <code>rdfs:subClassOf</code>, 
+	and whose object is <code>ldp:Container</code>, 
+	but there is no requirement to materialize this triple in the LDP-IC representation.
+</h2></section>
+
+<section id="ldpic-indirectmbr"><h2 class="normal">
+	<a title="Linked Data Platform Indirect Container">LDP Indirect Containers</a>
+	MUST contain exactly one triple whose
+    subject is the LDPC URI, 
+	whose predicate is <code>ldp:insertedContentRelation</code>, and 
+	whose object <var>ICR</var> describes how the <var>member-derived-URI</var> in 
+	the container's <a title="Membership triples">membership triples</a> is chosen.
+	The <var>member-derived-URI</var> is taken from some triple 
+	<var>( S, P, O )</var> in the document supplied by the client as input to the create request;
+	if <var>ICR</var>'s value is <var>P</var>, then the <var>member-derived-URI</var> is
+	<var>O</var>.  LDP does not define the behavior when more than one triple containing 
+	the predicate <var>P</var> is present in the client's input.
+	For example, if the client POSTs RDF content to a container
+	that causes the container to create a new LDP-RS, and that content contains the triple 
+	<var>( &lt;&gt; , foaf:primaryTopic , bob#me )</var>
+	<code>foaf:primaryTopic</code> says
+	that the <var>member-derived-URI</var> is <var>bob#me</var>.  
+	</h2>
+</section><!-- Was 5.2.10 / #ldpc-5_2_10 -->
+</section> <!-- ldpic General -->
+
+<section id="ldpic-HTTP_POST">
+<h2>HTTP POST</h2>
+	<section id="ldpic-post-indirectmbrrel"><h2 class="normal">LDPCs 
+		whose <code>ldp:insertedContentRelation</code> triple has an object
+		<strong>other than</strong> <code>ldp:MemberSubject</code> 
+		and that create new resources 
+		MUST add a triple to the container
+		whose subject is the container's URI, 
+		whose predicate is <code>ldp:contains</code>, and
+		whose object is the newly created resource's URI (which will be different from
+		the <var><a href="#ldpic-indirectmbr">member-derived URI</a></var> in this case).
+		This <code>ldp:contains</code> triple can be the only link from the container to the newly created
+		resource in certain cases.
+	</h2></section><!-- Was 5.4.15 / #ldpc-5_4_15 -->
+</section> <!-- ldpic HTTP_POST -->
+
+</section> <!-- ldpic Indirect -->
 
 </section> <!-- h1 LDPC -->
 
@@ -2078,6 +2164,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-02-28 - Split out different kinds of LDPCs into their own subsection (SS)</li>
 	<li>2014-02-24 - Corrected rel=meta to be rel=describedby (SS) </li>
 	<li>2014-02-24 - Adjusted term membership triples and membership predicate (SS) </li>
 	<li>2014-02-24 - Removed 6.3.1 LDPC GET requirement and put in general clause (SS) </li>