<docbook><section><title>VirtSpongerLinkedDataHooksIntoSPARQLEx40</title><para> </para>
<title>Example with pragma sql:gs-app-uid</title>Example with pragma sql:gs-app-uid
<para> The following example demonstrates usage of the  sql:gs-app-uid  pragma.</para>
<para> </para>
<orderedlist spacing="compact"><listitem>Make sure the steps from the    <ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtRDFGraphsSecurity#Example:%20Blogs%20and%20Resource%20Sharing">Blogs and Resource Sharing</ulink> Examples are performed.
</listitem>
<listitem>Let user for ex.
 &quot;Anna&quot; of application to get full access to graphs whose IRIs contain user&#39;s name in path.
   In addition, let all of them permission to use all graph groups and let the &quot;moderator&quot; user read everything: <programlisting>reconnect &quot;dba&quot;;

create function DB.DBA.SPARQL_GS_APP_CALLBACK_TEST (in g_iid IRI_ID, in app_uid varchar) returns integer
{
  declare g_uri varchar;
-- A fake IRI ID #i0 is used to mention account&#39;s default permissions for all graphs.
  if (#i0 = g_iid)
    {
      if (&#39;moderator&#39; = app_uid)
        return 9; -- Moderator can read and list everything.
      return 8; -- Other users can list everything.
    }
  g_uri := id_to_iri (g_iid);
  if (strstr (g_uri, &#39;/&#39; || app_uid || &#39;/&#39;))
    return 15; -- User has full access to &quot;his&quot; graph.
  return 8; -- User can list any given graph group.
}
;

SPARQL
define sql:gs-app-callback &quot;TEST&quot;
define sql:gs-app-uid &quot;Anna&quot;
SELECT ?g ?s WHERE { ?s &lt;p&gt; ?o }
;
</programlisting> </listitem>
</orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2">Sponger Usage Examples</bridgehead>
<itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://docs.openlinksw.com/virtuoso/virtuososponger.html#virtuosospongerusageprocessorex">SPARQL Processor Usage Example</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/virtuososponger.html#virtuosospongerusageproxyex2">RDF Proxy Service Example</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtDeployingLinkedDataGuide_BrowsingNorthwindRdfView#AncMozToc2">Browsing &amp; Exploring RDF View Example Using ODE</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtDeployingLinkedDataGuide_BrowsingNorthwindRdfView#AncMozToc3">Browsing &amp; Exploring RDF View Example Using iSPARQL</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfinsertmethods.html#rdfinsertmethodplapissimpleexample">Basic Sponger Cartridge Example</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/virtuososponger.html#virtuosospongerusagebriefex">HTTP Example for Extracting Metadata using CURL</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/virtuososponger.html#virtuosospongercartridgetypesmetarestexamples">RESTFul Interaction Examples</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/sect5_virtuosospongercreatecustcartrrgstflickr.html">Flickr Cartridge Example</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/virtuososponger.html#virtuosospongercreatecustcartrexmp">MusicBrainz Metadatabase Example</ulink> </listitem>
<listitem><ulink url="VirtTipsAndTricksGuideAddTriplesNamedGraph">SPARQL Tutorial -- Magic of  SPARUL and Sponger</ulink></listitem>
</itemizedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2">Related</bridgehead>
<itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="VirtSpongerLinkedDataHooksIntoSPARQL">Sponger&#39;s Linked Data Middleware Hooks into SPARQL</ulink> </listitem>
<listitem><ulink url="VirtSponger">Virtuoso Sponger</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html">Technical White Paper</ulink> </listitem>
<listitem><ulink url="VirtSpongerCartridgeSupportedDataSources">Supported Virtuoso Sponger Cartridges</ulink> </listitem>
<listitem><ulink url="SPARQLSponger">SPARQL Sponger</ulink> </listitem>
<listitem><ulink url="VirtInteractSpongerMiddlewareRESTPatterns">Interacting with Sponger Middleware via RESTful Patterns</ulink> </listitem>
<listitem><ulink url="VirtSpongerCartridgeSupportedDataSourcesMetaRESTExamples">Interacting with Sponger Meta Cartridge via RESTful Patterns</ulink> </listitem>
<listitem><ulink url="VirtSpongerCartridgeRDFExtractor">Sponger Cartridge RDF Extractor</ulink> </listitem>
<listitem><ulink url="RDFMappers">Extending SPARQL IRI Dereferencing with RDF Mappers</ulink> </listitem>
<listitem><ulink url="VirtSpongerCartridgeProgrammersGuide">Programmer Guide for Virtuoso Linked Data Middleware (&quot;Sponger&quot;)</ulink> </listitem>
<listitem><ulink url="VirtProgrammerGuideRDFCartridge">Create RDF Custom Cartridge Tutorial</ulink> </listitem>
<listitem><ulink url="VirtSpongerCartridgeSupportedDataSources">OpenLink-supplied Virtuoso Sponger Cartridges</ulink> </listitem>
<listitem><ulink url="VirtAuthServerUI">Virtuoso Authentication Server</ulink> </listitem>
<listitem><ulink url="VirtOAuthSPARQL">Virtuoso SPARQL OAuth Tutorial</ulink> </listitem>
<listitem><ulink url="VirtSpongerACL">Virtuoso Sponger Access Control List (ACL) Setup</ulink> </listitem>
<listitem><ulink url="VirtSPARQLSecurityWebID">WebID Protocol &amp; SPARQL Endpoint ACLs Tutorial</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/virtuososponger.html">Virtuoso Documentation</ulink></listitem>
</itemizedlist></section></docbook>