• Topic
  • Discussion
  • VOS.VirtTipsAndTricksInsDelSPARQLSSL(Last) -- Owiki? , 2018-04-13 12:08:54 Edit owiki 2018-04-13 12:08:54

    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