通过 SPARQL 检查 Virtuoso 版本

Checking Virtuoso version via SPARQL

有什么方法可以检查 SPARQLVirtuoso 的版本,而不是以管理员身份访问服务器吗?有点像在 Postgres 中,你会做 select version().

documented on OpenLink's website--

您可以利用 Virtuoso 的内置函数(例如 sys_stat 和关联的 bif: SPARQL 前缀,使用 SPARQL 查询服务器的各种详细信息,例如 --

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('git_head')              AS ?git_head )   
    # ( bif:sys_stat('st_lic_owner')          AS ?owner )
    # ( bif:sys_stat('st_lic_serial_number')  AS ?serial )
    
WHERE
      {  ?s  ?p  ?o  }
LIMIT 1

st_lic_ownerst_lic_serial_number参数只在商业版有效,在开源版会产生SPARQL错误;因此,他们在这里被注释掉了。

git_head 参数对于确定构建二进制文件的特定代码库修订版是必要的。如果二进制文件是从 GitHub 下载的 ZIP 或 TGZ 存档构建的,则不可用;必须使用 git clone 或类似的。

上面的 SPARQL 查询也可以通过 SQL 接口(iSQL、ODBC、JDBC 等)运行,方法是在 SPARQL 关键字,并附加 ; SQL 查询终止符,如下所示 --

SPARQL
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('git_head')              AS ?git_head )   
    # ( bif:sys_stat('st_lic_owner')          AS ?owner )
    # ( bif:sys_stat('st_lic_serial_number')  AS ?serial )
    
WHERE
      {  ?s  ?p  ?o  }
LIMIT 1 ;