Virtuoso Open-Source Wiki
Virtuoso Open-Source, OpenLink Data Spaces, and OpenLink Ajax Toolkit
Advanced Search
Location: / Dashboard / Main / VOSIndex / VirtSPARQLDET

Enabling Dynamic Extended Types (DETs) on a Virtuoso SPARQL Endpoint

Conventional SPARQL endpoints serialize query results into a range of formats, which are immediately sent back to the requesting user agent.

Using SPARQL-Protocol URLs to share result sets is powerful, but this is not always feasible, especially because some data access tools are written to only load data from files.

Virtuoso addresses the obvious need for file-based access to SPARQL query result sets via its built-in "dynamic WebDAV resource generator," a feature that leverages the Virtuoso server's native support of the WebDAV protocol. Through this feature, it is possible to connect any WebDAV client, which include most desktop operating systems (Windows, Mac OS X, Linux) and many other applications (e.g., Excel), directly to a SPARQL query result set as though it were opening up a local file.

The steps below show how to set up a Virtuoso instance to permit saving query results from its SPARQL endpoint into its built-in WebDAV repository.

Note: SPARQL-SSL is alias of SPARQL-WebID



  1. Make sure the steps from the Secure SPARQL Endpoint Guide using WebID Protocol are performed.
  2. As result should be created new account "SPUIDN", where N is 1, 2, etc.
    • Note: for the purposes of this guide, we will use SPUID1 name for the SQL user account under which runs the Web Service endpoint.
  3. Set the SQL user account to be DAV enabled:
    1. Via direct table config
    2. Using the Conductor UI
  4. The DAV home directory (for e.g., /DAV/home/SPUID1/) should be created and the path to it should be set in the table: DB.DBA.SYS_USERS (using U_HOME field). Note: do not forget the leading and the trailing slash chars:
    1. Using Conductor, go to System Admin -> User Accounts

    2. For the SQL User from above click the "Edit" link from the very right column.
    3. Set "DAV Home Path" to "/DAV/home/SPUID1/"
    4. Hatch "Create"

    5. Click "Save".
  5. The home directory should contain a subdirectory named "saved-sparql-results"
    1. Using Conductor, go to Web Application Server -> Content Management and view path "DAV/home/SPUID1":

    2. Click "New Folder"
    3. In the shown form enter for "Folder name": saved-sparql-results

    4. Click "Create"
    • Note: the subdirectory should be of "DynaRes" for DAV Extension Type.
  6. Make sure sparql-webid virtual folder is defined for the ssl port:
    1. Go to Conductor -> Web Application Server ->Virtual Domains & Directories

    2. Locate the sparql-webid virtual folder. If not found, click "New directory"
    3. Select "Type": SPARQL access point and click "Next":

    4. In the presented form enter respectively:
      • Path: /sparql-webid
      • Hatch "Physical path is a WebDAV repository"
      • Hatch "Map the logical path to a single page"
      • Physical path: /!sparql/
      • VSP User: dba
      • Authentication Method: SSL
      • Authentication Function: DB.DBA.FOAF_SSL_AUTH
      • Advanced:

        https_cert=db:https_key_cname; https_key=db:https_key_cname; https_verify=3; https_cv_depth=10;

      • Note: cname appearances of "." should be replaced with "_", so for ex for host "" the advanced option value should be:

        https_cert=db:https_key_id_myopenlink_net; https_key=db:https_key_id_myopenlink_net; https_verify=3; https_cv_depth=10;

  7. Once the steps from above have been completed, your SPARQL endpoint will include additional controls for saving query results to dynamically constructed WebDAV resources:
    1. Go to the SPARQL+WebID endpoint, https://<cname>:<port>/sparql-webid, where <cname>:<port> are replaced by your local server values.
    2. Select the user's certificate:

    3. The SPARQL Query UI will be shown:


Powered By Virtuoso