~ merge
authorEric Prud'hommeaux <eric@w3.org>
Wed, 20 Mar 2013 10:38:45 -0400
changeset 90 7b5028fe8bfd
parent 89 596a530e2f0b (current diff)
parent 88 a02636c16f05 (diff)
child 91 0de00718b117
~ merge
--- a/ldp.html	Wed Mar 20 10:34:00 2013 -0400
+++ b/ldp.html	Wed Mar 20 10:38:45 2013 -0400
@@ -31,9 +31,9 @@
 
           // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
           // and its maturity status
-          previousPublishDate:  "2012-10-25",
+          previousPublishDate:  "2013-03-07",
           previousMaturity:  	"FPWD",
-          previousURI: 			"http://www.w3.org/TR/2012/WD-ldp-20121025/",
+          previousURI: 			"http://www.w3.org/TR/2013/WD-ldp-20130307/",
 
           // if there a publicly available Editor's Draft, this is the link
           edDraftURI:           "http://www.w3.org/2012/ldp/hg/ldp.html",
@@ -172,7 +172,8 @@
 		patterns and conventions in the <a href="#ldpr">LDPRs</a> section.<p></p></dd>
 		
 	<dt><dfn>Linked Data Platform Container</dfn> (<dfn><abbr title="Linked Data Platform Container">LDPC</abbr></dfn>)</dt>
-	<dd>LDPR that also conforms to <a href="#ldpc">additional patterns and conventions</a> for managing membership.
+	<dd>An LDPR representing a collection of same-subject, same-predicate triples, which are uniquely identified by a URI
+	that responds to client requests for creation, modification, and enumeration of its members.
 	<p></p></dd>
 		
 	<dt>Client</dt>
@@ -519,16 +520,12 @@
 		This is a consequence of the requirement to <a href="#ldpr-4_1_13">enable simple creation and modification</a> of LPDRs.
 	</div>
 	<div id="ldpr-4_7_3" class="rule">4.7.3 LDPR servers SHOULD NOT allow clients to create new resources using PATCH.
-		<a href="#ldpr-5_4">POST (to an LDPC)</a> and/or <a href="#ldpr-4_4">PUT</a> should be used as the standard way to create new LDPRs.
+		<a href="#ldpr-post-1">POST (to an LDPC)</a> and/or <a href="#ldpr-put">PUT</a> should be used as the standard way to create new LDPRs.
 	</div>
 	
 	<div class="ldp-issue">
 	<div class="ldp-issue-title"><a href="http://www.w3.org/2012/ldp/track/issues/17">ISSUE-17</a></div>
 	changesets as a recommended PATCH format
-	</div>		
-	<div class="ldp-issue">
-	<div class="ldp-issue-title"><a href="http://www.w3.org/2012/ldp/track/issues/27">ISSUE-27</a></div>
-	Should the PATCH method be used, as opposed to POST with a given mime type?
 	</div>
 </section>
 
@@ -603,9 +600,76 @@
 			to the container.</p>
 
 	<p>Sometimes it is useful to use a subject
-			other than the container itself as the membership subject and to use
-			a predicate other than <code>rdfs:member</code> as the membership predicate, as illustrated
-			below.</p>
+	other than the container itself as the membership subject and to use
+	a predicate other than <code>rdfs:member</code> as the membership predicate. Let's
+	start with a domain resource for a person's net worth, as illustrated below:</p>
+			
+<pre class="example" id="ldpc-ex-membership-full"># The following is a partial representation of
+#   http://example.org/netWorth/nw1
+@prefix ldp: &lt;http://www.w3.org/ns/ldp#&gt;.
+@prefix o: &lt;http://example.org/ontology/&gt;.
+&lt;&gt;
+   a o:NetWorth;
+   o:netWorthOf &lt;http://example.org/users/JohnZSmith&gt;;
+   o:asset 
+      &lt;assetContainer/a1&gt;,
+      &lt;assetContainer/a2&gt;;
+   o:liability 
+      &lt;liabilityContainer/l1&gt;,
+      &lt;liabilityContainer/l2&gt;,
+      &lt;liabilityContainer/l3&gt;.
+</pre>
+	<p>From this example, there is a <code>rdf:type</code> of <code>o:NetWorth</code> indicating the
+	resource represents an instance of a person's net worth and <code>o:netWorthOf</code> predicate indicating 
+	the associated person.  There are two sets of same-subject, same-predicate pairings; one for assets and
+	one for liabilities.  It would be helpful to be able to associate these multi-valued sets using a URL
+	for them to assist with managing these, this is done by associating containers with them as 
+	illustrated below:
+	</p>
+
+<pre class="example" id="ldpc-ex-membership-full"># The following is an elaborated representation of
+#   http://example.org/netWorth/nw1
+@prefix ldp: &lt;http://www.w3.org/ns/ldp#&gt;.
+@prefix o: &lt;http://example.org/ontology/&gt;.
+&lt;&gt;
+   a o:NetWorth;
+   o:netWorthOf &lt;http://example.org/users/JohnZSmith&gt;;
+   o:asset 
+      &lt;assetContainer/a1&gt;,
+      &lt;assetContainer/a2&gt;;
+   o:liability 
+      &lt;liabilityContainer/l1&gt;,
+      &lt;liabilityContainer/l2&gt;,
+      &lt;liabilityContainer/l3&gt;.
+
+&lt;assetContainer/&gt;
+   a ldp:Container;
+   dcterms:title "The assets of JohnZSmith";
+   ldp:membershipSubject &lt;.&gt;;
+   ldp:membershipPredicate o:asset.
+
+&lt;liabilityContainer/&gt;
+   a ldp:Container;
+   dcterms:title "The liabilities of JohnZSmith";
+   ldp:membershipSubject &lt;.&gt;;
+   ldp:membershipPredicate o:liability.
+</pre>
+
+	<p>The essential structure of the container is
+	the same, but in this example, the membership subject is not the
+	container itself – it is a separate net worth resource. The
+	membership predicates are <code>o:asset</code> and <code>o:liability</code> – predicates
+	from the domain model. A POST of an asset representation to the asset container will create a new
+	asset and add it to the list of	members by adding a new membership triple
+	to the container. You might wonder why
+	<code>http://example.org/netWorth/nw1</code> isn't made a container itself and POST
+	the new asset directly there. That would be a fine design if <code>http://example.org/netWorth/nw1</code>
+	had only assets, but if it has separate predicates for assets and liabilities,
+	that design will not work because it is unspecified to which predicate the POST
+	should add a membership triple. Having separate <code>http://example.org/netWorth/nw1/assetContainer/</code> 
+	and <code>http://example.org/netWorth/nw1/liabilityContainer/</code> container
+	resources allows both assets and liabilities to be created.
+	</p>
 
 <pre class="example" id="ldpc-ex-membership-subj">
 # The following is the representation of
@@ -622,20 +686,6 @@
    a o:NetWorth;
    o:asset &lt;a1&gt;, &lt;a2&gt;.</pre>
 
-	<p>
-		The essential structure of the container is
-		the same, but in this example, the membership subject is not the
-		container itself – it is a separate net worth resource. The
-		membership predicate is <code>o:asset</code> – a predicate from the domain model. A POST to
-		this container will create a new asset and add it to the list of
-		members by adding a new membership triple to the container. You
-		might wonder why we didn’t just make <code>http://example.org/netWorth/nw1</code> a container and POST
-		the new asset directly there. That would be a fine design if <code>http://example.org/netWorth/nw1</code> had only assets, but if it has separate
-		predicates for assets and liabilities, that design will not work
-		because it is unspecified to which predicate the POST should add a
-		membership triple. Having separate <code>http://example.org/netWorth/nw1/assetContainer/</code> and <code>http://example.org/netWorth/nw1/liabilityContainer/</code> container resources allows both assets and
-		liabilities to be created.
-	</p>
 	<p>In this example, clients cannot simply guess
 			which resource is the membership subject and which predicate is the
 			membership predicate, so the example includes this information in
@@ -912,8 +962,11 @@
 	<div id="ldpc-5_2_1" class="rule">5.2.1 LDPC servers MUST also be conformant LDPR servers. A Linked Data Platform
 		Container MUST also be a conformant Linked Data Platform Resource.
 	</div>
-	<div id="ldpc-5_2_2" class="rule">5.2.2 The same resource, identified by its canonical URI, MUST be a member of 
-	only a single LDPC. The same resource can not be a member of mutliple LDPCs.</div>
+	<div id="ldpc-5_2_2" class="rule">5.2.2 For LDPC's of <code>rdf:type</code> of <code>ldp:CompositeContainer</code>,
+	the same resource which is identified by its canonical URI, MUST be a member of 
+	only a single <code>ldp:CompositeContainer</code>. The same resource can not be a member of mutliple Composite LDPCs. The
+	same resource can be a member of multiple LDPCs of <code>ldp:AggregateContainer</code>.
+	</div>
 	<div id="ldpc-5_2_3" class="rule">5.2.3 The state of an LDPC includes information about which
 		resources are its members. In the simplest cases, the membership subject
 		will be the LDPC resource itself, but it does not have to be. The
@@ -976,7 +1029,7 @@
 		members, by the existence of the token "<code>non-member-properties</code>" on the query
 		component of the LDPC URL.  For example, if there is a LDPC URL <code>&lt;containerURL&gt;,</code> the URL to request the
 		non-membership properties would be <code>&lt;containerURL&gt;?non-member-properties</code>.
-		See section <a href="#ldpc-get_non_member_props">5.1.2 Retrieving Only Non-member Properties</a> for
+		See section <a href="#ldpc-get_non-member_props">5.1.2 Retrieving Only Non-member Properties</a> for
 		examples. An LDPC server that does not support a request to
 		retrieve non-member resource properties via a Request-URI of “<code>&lt;containerURL&gt;?non-member-properties</code>”,
 		MUST return a HTTP status code 404 (Not Found).  An LDPC server that supports a request to
@@ -1203,7 +1256,7 @@
   <p>The following people have been instrumental in providing thoughts, feedback,
 reviews, content, criticism and input in the creation of this specification:</p>
 
-  <p style="margin-left: 3em;">Arnaud le Hors, Erik Wilde, Tim Berners-Lee, Steve Battle, 
+  <p style="margin-left: 3em;">Arnaud Le Hors, Erik Wilde, Tim Berners-Lee, Steve Battle, 
   Olivier Berger, Alexandre Bertails, Richard Cyganiak, Raúl García Castro, 
   Sandro Hawke, Kingsley Idehen, Yves Lafon, Antonis Loizou, Ashok Malhota, Roger Menday,
   Nandana Mihindukulasooriya, Kevin Page, Eric Prud'hommeaux, Andy Seaborne, 
@@ -1213,8 +1266,22 @@
     
 <section class='appendix informative' id="history">
 <h1>Change History</h1>
-<blockquote><em>First Public Working Draft</em></blockquote>
+<p>The change history is up to the editors to insert a brief summary of
+changes, ordered by most recent changes first and with heading from which
+public draft it has been changed from.
+</p>
+<blockquote><em><a href="http://www.w3.org/TR/2013/WD-ldp-20130307/">Second Public Working Draft</a></em></blockquote>
 <ul>
+	<li>2013-03-17 - Inserted examples 2&3, a more complete NetWorth resource (SS)</li>
+	<li>2013-03-15 - Update LDPC glossary term based on Cody's feedback (SS)</li>
+	<li>2013-03-15 - Additional fix in 5.2.2 for ISSUE-34 (SS)</li>
+	<li>2013-03-15 - Remove reference to closed issues that don't require edits: ISSUE-27 & ISSUE-45 (SS)</li>
+	<li>2013-03-14 - General prep for 3rd draft, cleanup and a little restructure (SS)</li>
+</ul>
+
+<blockquote><em><a href="http://www.w3.org/TR/2012/WD-ldp-20121025/">First Public Working Draft</a></em></blockquote>
+<ul>
+	<li>2013-03-14 - Fixed up broken fragments and typos before publication (SS)</li>
 	<li>2013-03-04 - Comments received from David Wood: 5.3.7 & 5.1.3 clarity, other minor edits (part 2)  (SS)</li>
 	<li>2013-03-04 - Comments received from David Wood: abstract, paging informative (part 1)  (SS)</li>
 	<li>2013-03-04 - ISSUE-36 - Added informative text regarding creationg of containers in 5.4.4 (SS)</li>
@@ -1246,7 +1313,7 @@
 	<li>2012-11-03 - ISSUE-6 Removed section 4.1.9.  Shifted up sections .10 through .13.</li>
 	<li>2012-11-01 - Fixed minor typo and added some notes (SS)</li>
 </ul>
-<blockquote><em>Submission</em></blockquote>
+<blockquote><em><a href="http://www.w3.org/Submission/2012/SUBM-ldbp-20120326/">Submission</a></em></blockquote>
 <ul>
 	<li>2012-10-15 - ISSUE-8 Changed references from LDBP to LDP, removed definition for "profile" and new namespace (SS)</li>	
 	<li>2012-10-15 - Included additional open ISSUES from Oct 15 WG meeting: 22, 23, 24 (SS)</li>