%META:TOPICPARENT{name="VirtSpongerLinkedDataHooksIntoSPARQL"}%
---+Example with pragma sql:gs-app-uid
The following example demonstrates usage of the sql:gs-app-uid
pragma.
1 Make sure the steps from the
[[http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtRDFGraphsSecurity#Example:%20Blogs%20and%20Resource%20Sharing][Blogs and Resource Sharing]] Examples are performed.
1 Let user for ex. "Anna" of application to get full access to graphs whose IRIs contain user's name in path.
In addition, let all of them permission to use all graph groups and let the "moderator" user read everything:
reconnect "dba";
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's default permissions for all graphs.
if (#i0 = g_iid)
{
if ('moderator' = 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, '/' || app_uid || '/'))
return 15; -- User has full access to "his" graph.
return 8; -- User can list any given graph group.
}
;
SPARQL
define sql:gs-app-callback "TEST"
define sql:gs-app-uid "Anna"
SELECT ?g ?s WHERE { ?s ?o }
;
---++Sponger Usage Examples
* [[http://docs.openlinksw.com/virtuoso/virtuososponger.html#virtuosospongerusageprocessorex][SPARQL Processor Usage Example]]
* [[http://docs.openlinksw.com/virtuoso/virtuososponger.html#virtuosospongerusageproxyex2][RDF Proxy Service Example]]
* [[http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtDeployingLinkedDataGuide_BrowsingNorthwindRdfView#AncMozToc2][Browsing & Exploring RDF View Example Using ODE]]
* [[http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtDeployingLinkedDataGuide_BrowsingNorthwindRdfView#AncMozToc3][Browsing & Exploring RDF View Example Using iSPARQL]]
* [[http://docs.openlinksw.com/virtuoso/rdfinsertmethods.html#rdfinsertmethodplapissimpleexample][Basic Sponger Cartridge Example]]
* [[http://docs.openlinksw.com/virtuoso/virtuososponger.html#virtuosospongerusagebriefex][HTTP Example for Extracting Metadata using CURL]]
* [[http://docs.openlinksw.com/virtuoso/virtuososponger.html#virtuosospongercartridgetypesmetarestexamples][RESTFul Interaction Examples]]
* [[http://docs.openlinksw.com/virtuoso/sect5_virtuosospongercreatecustcartrrgstflickr.html][Flickr Cartridge Example]]
* [[http://docs.openlinksw.com/virtuoso/virtuososponger.html#virtuosospongercreatecustcartrexmp][MusicBrainz Metadatabase Example]]
* [[VirtTipsAndTricksGuideAddTriplesNamedGraph][SPARQL Tutorial -- Magic of SPARUL and Sponger]]
---++Related
* [[VirtSpongerLinkedDataHooksIntoSPARQL][Sponger's Linked Data Middleware Hooks into SPARQL]]
* [[VirtSponger][Virtuoso Sponger]]
* [[http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html][Technical White Paper]]
* [[VirtSpongerCartridgeSupportedDataSources][Supported Virtuoso Sponger Cartridges]]
* [[SPARQLSponger][SPARQL Sponger]]
* [[VirtInteractSpongerMiddlewareRESTPatterns][Interacting with Sponger Middleware via RESTful Patterns]]
* [[VirtSpongerCartridgeSupportedDataSourcesMetaRESTExamples][Interacting with Sponger Meta Cartridge via RESTful Patterns]]
* [[VirtSpongerCartridgeRDFExtractor][Sponger Cartridge RDF Extractor]]
* [[RDFMappers][ Extending SPARQL IRI Dereferencing with RDF Mappers]]
* [[VirtSpongerCartridgeProgrammersGuide][Programmer Guide for Virtuoso Linked Data Middleware ("Sponger")]]
* [[VirtProgrammerGuideRDFCartridge][Create RDF Custom Cartridge Tutorial]]
* [[VirtSpongerCartridgeSupportedDataSources][OpenLink-supplied Virtuoso Sponger Cartridges]]
* [[VirtAuthServerUI][Virtuoso Authentication Server]]
* [[VirtOAuthSPARQL][Virtuoso SPARQL OAuth Tutorial]]
* [[VirtSpongerACL][Virtuoso Sponger Access Control List (ACL) Setup]]
* [[VirtSPARQLSecurityWebID][WebID Protocol & SPARQL Endpoint ACLs Tutorial]]
* [[http://docs.openlinksw.com/virtuoso/virtuososponger.html][Virtuoso Documentation]]