Added text and error-handling for AddNew and DeleteAny.
--- a/ldpatch.html Sun Dec 14 11:33:49 2014 -0500
+++ b/ldpatch.html Sun Dec 14 11:57:21 2014 -0500
@@ -592,7 +592,7 @@
The <a>Add</a> operation is used to append new RDF triples to the <a>target graph</a>.
</p>
<p>
-It has a single argument: an <a>argument graph</a> <var>g</var>. All triples in <var>g</var> must be added to the <var>target graph</var>. Even if an argument graph contains one or more triples that already exist in the target graph, the Add operation MUST NOT fail.
+ It has a single argument: an <a>argument graph</a> <var>g</var>. All triples in <var>g</var> must be added to the <var>target graph</var>. If an argument graph contains one or more triples that already exist in the target graph, the <a>Add</a> operation does not fail.
<pre class='example'>
Add {
<#> profile:first_name "Timothy" ;
@@ -604,13 +604,20 @@
</p>
</section>
+ <section id="addNew-statement">
+ <h2><dfn>AddNew</dfn></h2>
+ <p>
+ The <a>AddNew</a> operation is used to append new RDF triples to the <a>target graph</a>. It behaves like <a>Add</a> but unlike its counterpart, <a>AddNew</a> <a href="#addnew-already-existing-triple">fails</a> when trying to add an already existing triple.
+ </p>
+ </section>
+
<section id="delete-statement">
<h2><dfn>Delete</dfn></h2>
<p>
The <a>Delete</a> operation is used to remove RDF triples from the <a>target graph</a>.
</p>
<p>
-It has a single argument: an <a>argument graph</a> <var>g</var>. All triples in <var>g</var> must be removed from the <var>target graph</var>. It fails if one of those triples does not exist in the <a>target graph</a>. Blank nodes identifiers are allowed in <a>Delete</a> statements but <a href="#blank-node-scoping">they remain scoped to the LD Patch document</a>, so they can only match a blank node previously added by the same LD Patch document.
+ It has a single argument: an <a>argument graph</a> <var>g</var>. All triples in <var>g</var> must be removed from the <var>target graph</var>. It <a href="#delete-non-existing-triple">fails</a> if one of those triples does not exist in the <a>target graph</a>. Blank nodes identifiers are allowed in <a>Delete</a> statements but <a href="#blank-node-scoping">they remain scoped to the LD Patch document</a>, so they can only match a blank node previously added by the same LD Patch document.
</p>
<pre class='example'>
Delete { <#> profile:first_name "Tim" } .
@@ -620,6 +627,13 @@
</p>
</section>
+ <section id="deleteAny-statement">
+ <h2><dfn>DeleteAny</dfn></h2>
+ <p>
+The <a>DeleteAny</a> operation is used to remove RDF triples from the <a>target graph</a>. It behaves like <a>Delete</a> but unlike its counterpart, <a>DeleteAny</a> does not fail when trying to delete a non-existing triple.
+ </p>
+ </section>
+
<section id="cut-statement">
<h2><dfn>Cut</dfn></h2>
<p>
@@ -679,6 +693,7 @@
<li id="cut-nothing">If a <a>Cut</a> operation fails to remove any triple, then a HTTP 422 (Unprocessable Entity) error status code MUST be returned.</li>
<li id="cut-non-bnode">If a <a>Cut</a> operation is called on a variable not bound to a blank node, then a HTTP 422 (Unprocessable Entity) error status code MUST be returned.</li>
<li id="delete-non-existing-triple">If a <a>Delete</a> attempts to remove a non-existing triple, then a HTTP 422 (Unprocessable Entity) error status code MUST be returned.</li>
+ <li id="addnew-already-existing-triple">If a <a>AddNew</a> attempts to add an already existing triple, then a HTTP 422 (Unprocessable Entity) error status code MUST be returned.</li>
<li id="updatelist-non-list-argument">If the subject and predicate provided to an <a>UpdateList</a> do not have a unique object, or if this object is not a well-formed collection, then a HTTP 422 (Unprocessable Entity) error status code MUST be returned.</li>
<li id="wrong-order-for-indexes">If the indexes in a <a>slice expression</a> are in the wrong order (e.g. <code>2868..42</code>), then the parsing fails and a 400 (Bad Request) error status code MUST be returned.</li>
<li id="wrong-index">If an index in a <a>slice expression</a> is greater than the length of the <code>rdf:List</code>, then a 422 (Unprocessable Entity) error status code MUST be returned.</li>