Customizing the Virtuoso SPARQL Endpoint
This page will guide you through changing the SPARQL endpoint web page. You can create different variants of the page for different IRIs:
- The default SPARQL endpoint page is found in the procedure named
WS.WS."/!sparql/"
, which is built from source code found inlibsrc/Wi/sparql_io.sql
. - Copy the code from the above procedure, and load it to a different name, e.g.,
WS.WS."/!sparql_new/"
, through iSQL --
SQL> CREATE PROCEDURE WS.WS."/!sparql_new/" ( INOUT path VARCHAR, INOUT params ANY, INOUT lines ANY ) {... http(' <p>TEST This query page is designed to help you test OpenLink Virtuoso</p> ... }; Done. -- 60 msec. SQL>
- Remove the VHost definition targeting the original page --
SQL> DB.DBA.VHOST_REMOVE (lpath=>'/sparql');
- Add a VHost definition targeting your new page.
The command follows this form --
SQL> DB.DBA.VHOST_DEFINE ( lpath=>'/sparql/', ppath => '/your-function-name/', is_dav => 1, vsp_user => 'dba', opts => vector('noinherit', 1) );
-- so, for this example --
SQL> DB.DBA.VHOST_DEFINE ( lpath=>'/sparql/', ppath => '/!sparql_new/', is_dav => 1, vsp_user => 'dba', opts => vector('noinherit', 1) );
- Give the SPARQL user permission to execute your new page, following this form --
SQL> GRANT EXECUTE ON WS.WS."your-function" TO "SPARQL" ;
-- so, for this example --
SQL> GRANT EXECUTE ON WS.WS."/!sparql_new/" TO "SPARQL" ;
Note: you should use double quotes around name of "SPARQL" user and the upper case, to avoid confusion with theSPARQL
keyword, you should always use double-quote wrappers and upper-case to refer to the"SPARQL"
user.
- Set attributes on your new page, such that Virtuoso's HTTP server component will not treat it as a physical path (DAV or filesystem) to be read and compiled as a procedure, following the command form --
SQL> registry_set ( '/your-function-name/', 'no_vsp_recompile' );
-- so, for this example --
SQL> registry_set ( '/!sparql_new/', 'no_vsp_recompile' );
- Access the new SPARQL endpoint, which should show your changes --
CategorySPARQL CategoryVirtuoso