<docbook><section><title>VirtCheckSvrVersionViaSparql</title><title> Interrogating attributes of a Virtuoso Server instance via SPARQL</title> Interrogating attributes of a Virtuoso Server instance via SPARQL
<para>Sometimes you need to know the version or other details about the Virtuoso instance you&#39;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.</para>
<para>You can leverage Virtuoso&#39;s built-in-functions, such as <ulink url="http://docs.openlinksw.com/virtuoso/fn_sys_stat/">sys_stat</ulink>, and the associated bif: SPARQL prefix, to interrogate the server for various details, such as -- </para>
<programlisting>PREFIX  bif:  &lt;bif:&gt;

SELECT
  ( bif:sys_stat(&#39;st_dbms_name&#39;)          AS ?name )
  ( bif:sys_stat(&#39;st_dbms_ver&#39;)           AS ?version )
  ( bif:sys_stat(&#39;st_build_date&#39;)         AS ?build_date )

##   The following line must be commented for execution on 
##   builds produced before the switch from `cvs` to `git`;
##   it only works on versions later than v6.1.5

# ( bif:sys_stat(&#39;git_head&#39;)              AS ?git_head )   

  ( bif:sys_stat(&#39;st_build_thread_model&#39;) AS ?thread )
  ( bif:sys_stat(&#39;st_build_opsys_id&#39;)     AS ?opsys )

##   The following two lines must be commented for execution 
##   on VOS; these only work on Enterprise Edition

# ( bif:sys_stat(&#39;st_lic_owner&#39;)          AS ?owner )
# ( bif:sys_stat(&#39;st_lic_serial_number&#39;)  AS ?serial )

WHERE
  {  ?s  ?p  ?o  }
LIMIT 1
</programlisting><para>As noted in the SPARQL above, 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.
 Similarly, the git_head argument is only valid on builds produced after source code management was switched from cvs to git, circa v6.1.5, in March, 2012.</para>
<para> The <ulink url="http://lod.openlinksw.com/sparql?default-graph-uri=&amp;query=SELECT%0D%0A++%28+bif%3Asys_stat%28%27st_dbms_name%27%29++++++++++AS+%3Fname+%29%0D%0A++%28+bif%3Asys_stat%28%27st_dbms_ver%27%29+++++++++++AS+%3Fversion+%29%0D%0A++%28+bif%3Asys_stat%28%27st_build_date%27%29+++++++++AS+%3Fbuild_date+%29%0D%0A%0D%0A%23%23+The+following+line+must+be+commented+for+execution+on+%0D%0A%23%23+builds+produced+before+the+switch+from+%60cvs%60+to+%60git%60%3B%0D%0A%23%23+it+only+works+on+versions+later+than+v6.1.5%0D%0A++%28+bif%3Asys_stat%28%27git_head%27%29++++++++++++++AS+%3Fgit_head+%29+++%0D%0A%0D%0A++%28+bif%3Asys_stat%28%27st_build_thread_model%27%29+AS+%3Fthread+%29%0D%0A++%28+bif%3Asys_stat%28%27st_build_opsys_id%27%29+++++AS+%3Fopsys+%29%0D%0A%0D%0A%23%23+The+following+two+lines+line+must+be+commented+for+execution+%0D%0A%23%23+on+VOS%3B+these+only+work+on+Enterprise+Edition%0D%0A++%28+bif%3Asys_stat%28%27st_lic_owner%27%29++++++++++AS+%3Fowner+%29%0D%0A++%28+bif%3Asys_stat%28%27st_lic_serial_number%27%29++AS+%3Fserial+%29%0D%0A%0D%0AWHERE%0D%0A++%7b++%3Fs++%3Fp++%3Fo++%7d%0D%0ALIMIT+1&amp;format=text%2Fhtml&amp;timeout=30000&amp;debug=on&amp;run=+Run+Query+">query output</ulink> will resemble the following --</para>

<table><title /><tgroup><thead /><tbody>
<row />
<row><entry>  OpenLink Virtuoso  VDB Server      </entry><entry>      07.20.3228      </entry><entry>      Apr 10 2018      </entry><entry>      7913e54      </entry><entry>      -pthreads      </entry><entry>      Linux      </entry><entry>      LOD operated by OpenLink Software      </entry><entry>      opl-lod      </entry></row>
</tbody></tgroup></table>
<para> </para>
</section></docbook>