<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#insertData>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h4 id=\"insertData\">INSERT DATA</h4>\n\n<p>The INSERT DATA operation adds some triples, given inline in the request, into the Graph Store:</p>\n<pre xml:space=\"preserve\"><code>**INSERT DATA ** *QuadData* \n</code></pre>\n<p>where QuadData are formed by TriplesTemplates, i.e., sets of triple patterns, optionally wrapped into a <code>GRAPH</code> block.</p>\n<pre xml:space=\"preserve\"><code> ( GRAPH  VarOrIri )? { TriplesTemplate? }\n</code></pre>\n<p>Variables in QuadDatas are disallowed in <code>INSERT DATA</code> requests (see Notes 8 in the <a href=\"../../../sparql11-query/grammar/#sparqlGrammar\" shape=\"rect\">grammar</a>). That is, the <code>INSERT DATA</code> statement only allows to insert ground triples. Blank nodes in QuadDatas are assumed to be disjoint from the blank nodes in the Graph Store, i.e., will be inserted with \"fresh\" blank nodes.</p>\n<p>If no graph is described in the QuadData, then the default graph is presumed. If data is inserted into a graph that does not exist in the Graph Store, it <em>SHOULD</em> be created (there may be implementations providing an update service over a fixed set of graphs which in such case <em>MUST</em> return with failure for update requests that insert data into an unallowed graph).</p>\n<p>Note that a triple <em>MAY</em> be considered to be \"processed\" with no action if that triple already exists in the graph. Further, note that</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">INSERT DATA { GRAPH &lt;g&gt; {} } ...\n</code></pre>\n<p>does not create <code>&lt;g&gt;</code>. If a user intends to just create a graph, then the graph management operations (<code>CREATE</code>/<code>LOAD</code>) may be used prior to any insertion operations.</p>\n<p><strong>Example 1: Adding some triples to a graph</strong></p>\n<p>This snippet describes two RDF triples to be inserted into the default graph of the Graph Store.</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;\nINSERT DATA\n{ \n  &lt;http://example/book1&gt; dc:title \"A new book\" ;\n                         dc:creator \"A.N.Other\" .\n}\n</code></pre>\n<p>Data before:</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">**# Default graph**\n@prefix dc: &lt;http://purl.org/dc/elements/1.1/&gt; .\n@prefix ns: &lt;http://example.org/ns#&gt; .\n\n&lt;http://example/book1&gt; ns:price 42 .\n</code></pre>\n<p>Data after:</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">**# Default graph**\n@prefix dc: &lt;http://purl.org/dc/elements/1.1/&gt; .\n@prefix ns: &lt;http://example.org/ns#&gt; .\n\n&lt;http://example/book1&gt; ns:price 42 .\n&lt;http://example/book1&gt; dc:title \"A new book\" .\n&lt;http://example/book1&gt; dc:creator \"A.N.Other\" .\n</code></pre>\n<p><strong>Example 2:</strong></p>\n<p>This SPARQL 1.1 Update request adds a triple to provide the price of a book. As opposed to the previous example, which affected the default graph, the requested change happens in the named graph identified by the IRI <code>http://example/bookStore</code>.</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;\nPREFIX ns: &lt;http://example.org/ns#&gt;\nINSERT DATA\n{ GRAPH &lt;http://example/bookStore&gt; { &lt;http://example/book1&gt;  ns:price  42 } }\n</code></pre>\n<p>Data before:</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">**# Graph: http://example/bookStore**\n@prefix dc: &lt;http://purl.org/dc/elements/1.1/&gt; .\n&lt;http://example/book1&gt; dc:title \"Fundamentals of Compiler Design\" .\n</code></pre>\n<p>Data after:</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">**# Graph: http://example/bookStore**\n@prefix dc: &lt;http://purl.org/dc/elements/1.1/&gt; .\n@prefix ns: &lt;http://example.org/ns#&gt; .\n&lt;http://example/book1&gt; dc:title \"Fundamentals of Compiler Design\" .\n&lt;http://example/book1&gt; ns:price 42 .\n</code></pre></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/2000/01/rdf-schema#seeAlso>
                <https://kgdev.net/specifications/sparql11-query/grammar/#sparqlGrammar> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-update/#insertData> .

<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#deleteInsert>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/deleteInsert/#this> .

<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/>
        a       <https://www.w3.org/ns/ldt/document-hierarchy#Container> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#this> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#insertData> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#deleteData> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_4>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#deleteInsert> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_5>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#delete> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_6>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#insert> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_7>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#deleteWhere> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_8>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#load> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_9>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#clear> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_999>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#select-children> ;
        <http://purl.org/dc/terms/modified>
                "2023-07-10T16:14:39.647Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
        <http://purl.org/dc/terms/title>
                "Graph Update" ;
        <http://rdfs.org/sioc/ns#has_parent>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-update/#graphUpdate> ;
        <http://xmlns.com/foaf/0.1/primaryTopic>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#this> .

<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#clear>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h4 id=\"clear\">CLEAR</h4>\n\n<p>The <code>CLEAR</code> operation removes all the triples in the specified graph(s) in the Graph Store.</p>\n<pre xml:space=\"preserve\"><code>**CLEAR**  ( **SILENT** )? (**GRAPH** *[IRIref](../../../sparql11-query/grammar/#rIRIREF)* | **DEFAULT** | **NAMED** | **ALL** )\n</code></pre>\n<p>Here, the <code>DEFAULT</code> keyword is used to remove all triples in the default graph of the Graph Store, the <code>NAMED</code> keyword is used to remove all triples in all named graphs of the Graph Store and the <code>ALL</code> keyword is used to remove all triples in all graphs of the Graph Store. The <code>GRAPH</code> keyword is used to remove all triples from a graph denoted by IRIref. This operation is not required to remove the empty graphs from the Graph Store, but an implementation <em>MAY</em> decide to do so.</p>\n<pre xml:space=\"preserve\"><code># Remove all triples from a specified graph.\n**CLEAR GRAPH** *IRIref* \n</code></pre>\n<p>in principle has the same effect as:</p>\n<pre xml:space=\"preserve\"><code># Remove all triples from the graph named with the IRI denoted by *IRIref*.\n**DELETE** { **GRAPH** *IRIref* { ?s ?p ?o } } **WHERE** { **GRAPH** *IRIref* { ?s ?p ?o } }\n</code></pre>\n<p><strong>Note:</strong></p>\n<p>For services which form the default graph from the union of other graphs, </p>\n<p><code>CLEAR DEFAULT</code> may have further implications which we leave unspecified here.</p>\n<p>If the store records the existence of empty graphs, then the SPARQL 1.1 Update service, by default, <em>SHOULD</em> return <em>failure</em> if the specified graph does not exist. If <code>SILENT</code> is present, the result of the operation will always be success.</p>\n<p>Stores that do not record empty graphs will always return <em>success</em>.</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-update/#clear> .

<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#delete>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/deleteInsert/#delete> .

<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#this>
        a                          <https://kgdev.net/ns#Definition> , <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h3 id=\"this\">Graph Update</h3>\n\n<p>Graph update operations change existing graphs in the Graph Store but do not explicitly delete nor create them. Non-empty inserts into non-existing graphs will, however, <em>implicitly</em> create those graphs, i.e., an implementation fulfilling an update request <em>SHOULD</em> silently an automatically create graphs that do not exist before triples are inserted into them, and <em>MUST</em> return with failure if it fails to do so for any reason. (For example, the implementation may have insufficient resources, or an implementation may only provide an update service over a fixed set of graphs and the implicitly created graph is not within this fixed set). An implementation <em>MAY</em> remove graphs that are left empty after triples are removed from them.</p>\n<p>If a graph is created implicitly by an update operation, then the behavior of the Graph Store <em>MUST</em> be functionally equivalent to its behavior if the graph had been created explicitly by a CREATE operation.</p>\n<p>SPARQL 1.1 Update provides these graph update operations:</p>\n<ul>\n<li>The INSERT DATA operation adds some triples, given inline in the request, into a graph. This <em>SHOULD</em> create the destination graph if it does not exist. If the graph does not exist and it can not be created for any reason, then a failure <em>MUST</em> be returned.</li>\n<li>The DELETE DATA operation removes some triples, given inline in the request, if the respective graph contains those.</li>\n<li>The fundamental pattern-based actions for graph updates are <code>INSERT</code> and <code>DELETE</code> (which can co-occur in a single DELETE/INSERT operation). These actions consist of groups of triples to be deleted and groups of triples to be added. The specification of the triples is based on query patterns. The difference between <code>INSERT</code> / <code>DELETE</code> and <code>INSERT DATA</code> / <code>DELETE DATA</code> is that <code>INSERT DATA</code> and <code>DELETE DATA</code> do not substitute bindings into a template from a pattern. The <code>DATA</code> forms require concrete data (triple templates containing variables within <code>DELETE DATA</code> and <code>INSERT DATA</code> operations are disallowed and blank nodes are disallowed within <code>DELETE DATA</code>, see Notes 8+9 in the <a href=\"../../../sparql11-query/grammar/#sparqlGrammar\" shape=\"rect\">grammar</a>).  Having specific operations for concrete data means that a request can be streamed so that large, pure-data updates can be done.</li>\n<li>The LOAD operation reads the contents of a document representing a graph into a graph in the Graph Store.</li>\n<li>The CLEAR operation removes all the triples in (one or more) graphs.</li>\n</ul></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-update/#graphUpdate> ;
        <https://schema.org/name>  "Graph Update" .

<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#load>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h4 id=\"load\">LOAD</h4>\n\n<p>The <code>LOAD</code> operation reads an RDF document from a IRI and inserts its triples into the specified graph in the Graph Store. The specified destination graph <em>SHOULD</em> be created if required; again, implementations providing an update service over a fixed set of graphs <em>MUST</em> return with failure for a request that would create a disallowed graph. If the destination graph already exists, then no data in that graph will be removed.</p>\n<pre xml:space=\"preserve\"><code>**LOAD** ( **SILENT** )? *[IRIref_from](../../../sparql11-query/grammar/#rIRIREF)* ( **INTO GRAPH** *[IRIref_to](../../../sparql11-query/grammar/#rIRIREF)* )?\n</code></pre>\n<p><em>IRIref_from</em> specifies the IRI of a document such that a store will be able to identify, locate and read the document. The most common form will be URLs with the <em>http</em> IRI schemes. Once the document has been read, the resulting triples will be inserted into the destination graph named by the IRI referred to by <em>IRIref_to</em>.</p>\n<p>If no destination graph IRI (<em>IRIref_to</em>) is provided to load the triples into, then the data will be loaded into the default graph.</p>\n<p>In case no RDF data can be retrieved (as opposed to the empty graph being retrieved) from the IRI denoted by <em>IRIref_from</em>, or in case the retrieval method returns an error (such as, for instance an HTTP error code), the SPARQL 1.1 Update service <em>SHOULD</em> return failure and the status of the Graph Store <em>SHOULD</em> remain in the same status as prior to the request; in case the keyword SILENT is present, however, the operation will still return success and the status of the Graph Store is not specified by the present document: implementations may create the destination graph or not and partially load data, in case of a transmission error where partial data has been received (which itself may be legal RDF).</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-update/#load> .

<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#deleteWhere>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/deleteInsert/#deleteWhere> .

<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#insert>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/deleteInsert/#insert> .

<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#select-children>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                <https://w3id.org/atomgraph/linkeddatahub#SelectChildren> .

<https://kgdev.net/specifications/sparql11-update/updateLanguage/graphUpdate/#deleteData>
        a       <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h4 id=\"deleteData\">DELETE DATA</h4>\n\n<p>The DELETE DATA operation removes some triples, given inline in the request, if the respective graphs in the Graph Store contain those:</p>\n<pre xml:space=\"preserve\"><code>**DELETE DATA ** *QuadData* \n</code></pre>\n<p>QuadData denotes triples to be removed and is as described in INSERT\nDATA, with the difference that in a <code>DELETE DATA</code> operation neither variables nor blank nodes are allowed (see Notes 8+9 in the <a href=\"../../../sparql11-query/grammar/#sparqlGrammar\" shape=\"rect\">grammar</a>).</p>\n<p>As with <code>INSERT DATA</code>, <code>DELETE DATA</code> is meant for deletion of ground triples data which is why QuadData that contains variables or blank nodes is disallowed in <code>DELETE DATA</code> operations. The DELETE/INSERT operation can be used to remove triples containing blank nodes.</p>\n<p>Note that the deletion of non-existing triples has no effect, i.e., triples in the QuadData that did not exist in the Graph Store are ignored. Blank nodes are not permitted in the QuadData, as these do not match any existing data.</p>\n<p><strong>Example 3: Removing triples from a graph</strong></p>\n<p>This request describes 2 triples to be removed from the default graph of the Graph Store.</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;\n\nDELETE DATA\n{\n  &lt;http://example/book2&gt; dc:title \"David Copperfield\" ;\n                         dc:creator \"Edmund Wells\" .\n}\n</code></pre>\n<p>Data before:</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">**# Default graph**\n@prefix dc: &lt;http://purl.org/dc/elements/1.1/&gt; .\n@prefix ns: &lt;http://example.org/ns#&gt; .\n\n&lt;http://example/book2&gt; ns:price 42 .\n&lt;http://example/book2&gt; dc:title \"David Copperfield\" .\n&lt;http://example/book2&gt; dc:creator \"Edmund Wells\" .\n</code></pre>\n<p>Data after:</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">**# Default graph**\n@prefix dc: &lt;http://purl.org/dc/elements/1.1/&gt; .\n@prefix ns: &lt;http://example.org/ns#&gt; .\n\n&lt;http://example/book2&gt; ns:price 42 .\n</code></pre>\n<p><strong>Example 4:</strong></p>\n<p>This SPARQL 1.1 Update request consists of two operations, including a triple to be deleted and a triple to be added (used here to correct a book title). As opposed to the previous example, which affected the default graph, the requested change happens in the named graph identified by the IRI <code>http://example/bookStore</code>.</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;\nDELETE DATA\n{ GRAPH &lt;http://example/bookStore&gt; { &lt;http://example/book1&gt;  dc:title  \"Fundamentals of Compiler Desing\" } } ;\n\nPREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;\nINSERT DATA\n{ GRAPH &lt;http://example/bookStore&gt; { &lt;http://example/book1&gt;  dc:title  \"Fundamentals of Compiler Design\" } }\n</code></pre>\n<p>Data before:</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">**# Graph: http://example/bookStore**\n@prefix dc: &lt;http://purl.org/dc/elements/1.1/&gt; .\n&lt;http://example/book1&gt; dc:title \"Fundamentals of Compiler Desing\" .\n</code></pre>\n<p>Data after:</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">**# Graph: http://example/bookStore**\n@prefix dc: &lt;http://purl.org/dc/elements/1.1/&gt; .\n&lt;http://example/book1&gt; dc:title \"Fundamentals of Compiler Design\" .\n</code></pre></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/2000/01/rdf-schema#seeAlso>
                <https://kgdev.net/specifications/sparql11-query/grammar/#sparqlGrammar> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-update/#deleteData> .
