<docbook><section><title>VirtTipsAndTricksSPARQL11Add</title><title>Virtuoso SPARQL 1.1.
 ADD Usage Examples</title>Virtuoso SPARQL 1.1.
 ADD Usage Examples
<bridgehead class="http://www.w3.org/1999/xhtml:h2">What?</bridgehead>
 This guide contains Virtuoso SPARQL 1.1.
 ADD Usage examples queries which you can run against any SPARQL endpoint that supports SPARQL 1.1 and the ability to allow a verified user perform INSERT operations.<bridgehead class="http://www.w3.org/1999/xhtml:h2">Why?</bridgehead>
 Use as shortcut for inserting all data from an input graph into a destination graph.
 <emphasis>Note</emphasis> that the original content in the destination graph if any, is kept intact.<bridgehead class="http://www.w3.org/1999/xhtml:h2">How?</bridgehead>
<para>Here are some examples showcasing Virtuoso&#39;s support for this functionality:</para>
<para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3">ADD Example</bridgehead>
<para>This example adds all triples from a named graph identified by the IRI &lt;urn:sparql:tests:add:data&gt; to a named graph identified by the IRI &lt;urn:sparql:tests:add2:data&gt;</para>
<orderedlist spacing="compact"><listitem>Assume the following Raw Data Representation in Turtle: <programlisting>&lt;http://example/william&gt; a &lt;http://xmlns.com/foaf/0.1/Person&gt; ;
                         &lt;http://xmlns.com/foaf/0.1/givenName&gt; &quot;William&quot; ; 
                         &lt;http://xmlns.com/foaf/0.1/mbox&gt;      &lt;mailto:bill@example&gt; . 
</programlisting></listitem>
<listitem>Load the sample data into &lt;urn:sparql:tests:add:data&gt;: <programlisting>INSERT DATA
  { 
    GRAPH &lt;urn:sparql:tests:add:data&gt; 
      { 
        &lt;http://example/william&gt; a &lt;http://xmlns.com/foaf/0.1/Person&gt; ;
                                 &lt;http://xmlns.com/foaf/0.1/givenName&gt; &quot;William&quot; ; 
                                 &lt;http://xmlns.com/foaf/0.1/mbox&gt; &lt;mailto:bill@example&gt; . 
      } 
  }
</programlisting></listitem>
<listitem>Query graph &lt;urn:sparql:tests:add:data&gt; data: <programlisting>SELECT * 
FROM &lt;urn:sparql:tests:add:data&gt; 
WHERE 
  {
    ?s ?p ?o
  }
</programlisting><itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://bit.ly/13LBF5y">View the SPARQL Query Definition via SPARQL Protocol URL</ulink>; </listitem>
<listitem><ulink url="http://bit.ly/XmhkRB">View the SPARQL Query Results via SPARQL Protocol URL</ulink> </listitem>
</itemizedlist></listitem>
<listitem>Assume the following Raw Data Representation in Turtle: <programlisting>&lt;http://example/fred&gt; a &lt;http://xmlns.com/foaf/0.1/Person&gt; .
</programlisting></listitem>
<listitem>Load the sample data into &lt;urn:sparql:tests:add2:data&gt;: <programlisting>INSERT DATA
  { 
    GRAPH &lt;urn:sparql:tests:add2:data&gt; 
      { 
        &lt;http://example/fred&gt; a &lt;http://xmlns.com/foaf/0.1/Person&gt; .
      } 
  }
</programlisting></listitem>
<listitem>Query graph &lt;urn:sparql:tests:add2:data&gt; data: <programlisting>SELECT * 
FROM &lt;urn:sparql:tests:add2:data&gt; 
WHERE 
  {
    ?s ?p ?o
  }
</programlisting><itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://bit.ly/14IFvfr">View the SPARQL Query Definition via SPARQL Protocol URL</ulink>; </listitem>
<listitem><ulink url="http://bit.ly/14AahH9">View the SPARQL Query Results via SPARQL Protocol URL</ulink> </listitem>
</itemizedlist></listitem>
<listitem>Add all triples from &lt;urn:sparql:tests:add:data&gt; to &lt;urn:sparql:tests:add2:data&gt; <programlisting>ADD GRAPH &lt;urn:sparql:tests:add:data&gt; TO &lt;urn:sparql:tests:add2:data&gt;;
</programlisting></listitem>
<listitem>Equivalent variant is: <programlisting>INSERT 
  { 
    GRAPH &lt;urn:sparql:tests:add2:data&gt; { ?s ?p ?o } 
  } 
WHERE 
  { 
    GRAPH &lt;urn:sparql:tests:add:data&gt; { ?s ?p ?o } 
}
</programlisting></listitem>
<listitem>Query graph &lt;urn:sparql:tests:add2:data&gt; data: <emphasis>Note</emphasis> that the original content in &lt;urn:sparql:tests:add2:data&gt; is kept intact by the ADD operation: <programlisting>SELECT * 
FROM &lt;urn:sparql:tests:add2:data&gt; 
WHERE 
  {
    ?s ?p ?o
  }
</programlisting><itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://bit.ly/14IFvfr">View the SPARQL Query Definition via SPARQL Protocol URL</ulink>; </listitem>
<listitem><ulink url="http://bit.ly/14AahH9">View the SPARQL Query Results via SPARQL Protocol URL</ulink></listitem>
</itemizedlist></listitem>
</orderedlist><para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2">Related</bridgehead>
<itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://www.w3.org/TR/2012/PR-sparql11-update-20121108/#add">SPARQL 1.1 ADD</ulink> </listitem>
<listitem><ulink url="VirtTipsAndTricksGuideRenameGraph">Rename RDF Graph Example</ulink> </listitem>
<listitem><ulink url="http://www.w3.org/TR/rdf-sparql-protocol/">SPARQL Protocol (HTTP based Query Service)</ulink> </listitem>
<listitem><ulink url="VirtTipsAndTricksGuide">Virtuoso Tips and Tricks Collection</ulink> </listitem>
<listitem><ulink url="VirtTipsAndTricksSPARQL11FeaturesExamplesCollection">Virtuoso SPARQL 1.1 Usage Examples Collection</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_9/SPARQL_Tutorials_Part_9.html">Virtuoso SPARQL 1.1 Syntax Tutorial</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html">Virtuoso Documentation</ulink> </listitem>
</itemizedlist></section></docbook>