How Can I execute INSERT/DELETE (SPARUL) statements against a WebID? protected SPARQL endpoint?

The following sample scenario demonstrates how to perform INSERT/DELETE (SPARUL) statements against a protected SPARQL Endpoint by setting WebID? Protocol ACLs using the Virtuoso Authentication Server UI:

  1. Obtain a WebID?:
    1. Download and install the ods_framework_dav.vad.
    2. Register an ODS Data Space user, for example with name "demo".
    3. The generated WebID? will be for example:

      http://id.myopenlink.net/dataspace/person/demo#this

    4. Generate a Personal HTTP based Identifier for the "demo" user and then bind the personal Identifier to an X.509 Certificate, thereby giving assigning the user a WebID?.
  2. Download and install the conductor_dav.vad package, if not already installed.
  3. Go to http://<cname>:<port>/conductor, where <cname>:<port> are replaced by your local server values.
  4. Go to System Admin -> Linked Data -> Access Control -> SPARQL-WebID?



  5. In the displayed form:
    1. Enter the Web ID for the user registered above, for example:

      http://id.myopenlink.net/dataspace/person/demo#this

    2. Select "SPARQL Role": "UPDATE".



  6. Click the "Register" button.
  7. The WebID? Protocol ACL will be created:



  8. Go to the SPARQL+WebID? endpoint, https://<cname>:<port>/sparql-webid, where <cname>:<port> are replaced by your local server values.
  9. Select the user's certificate:



  10. The SPARQL Query UI will be displayed:



  11. Execute the query:

    INSERT INTO GRAPH <http://mytest.com> { <s1> <p1> <o1> . <s2> <p2> <o2> . <s3> <p3> <o3> }









Note: If the SPARQL Role "Sponge" is set instead, in order to be able to execute DELETE/INSERT statements over the protected SPARQL Endpoint, the following grants need to be performed for the user, associated with the WebID? ACL Role:


grant execute on DB.DBA.SPARQL_INSERT_DICT_CONTENT to "demo";
grant execute on DB.DBA.SPARQL_DELETE_DICT_CONTENT to "demo";

References