Interrogating attributes of a Virtuoso Server instance via SPARQL
Sometimes you need to know the version or other details about the Virtuoso instance you're running SPARQL queries against, and only have access to the SPARQL interface, possibly through a proxy page that strips out the server version information included on the default /sparql
page.
You can leverage Virtuoso's built-in-functions, such as sys_stat
, and the associated bif:
SPARQL prefix, to interrogate the server for various details, such as --
SELECT ( bif:sys_stat('st_dbms_name') AS ?name ) ( bif:sys_stat('st_dbms_ver') AS ?version ) ( bif:sys_stat('st_build_thread_model') AS ?thread ) ( bif:sys_stat('st_build_opsys_id') AS ?opsys ) ( bif:sys_stat('st_build_date') AS ?date ) # ( bif:sys_stat('st_lic_owner') AS ?owner ) # ( bif:sys_stat('st_lic_serial_number') AS ?serial ) WHERE { ?s ?p ?o } LIMIT 1
The st_lic_owner
and st_lic_serial_number
arguments are only valid on the Commercial Edition, and will produce a SPARQL error on the Open Source Edition
The query above will produce output akin to the following --
name | version | thread | opsys | date | owner | serial |
---|---|---|---|---|---|---|
OpenLink Virtuoso VDB Server |
07.20.3217 |
-pthreads |
Linux |
May 8 2016 |
OpenLink Software Web Site |
openlink-www |