Virtuoso 08.03.3333 Release Notes

Virtuoso 08.03.3333 Release Notes

We are pleased to announce the immediate availability of a new Virtuoso Maintenance Release comprising a wide variety of feature enhancements and bug fixes across the following functionality realms:

This release introduces significant improvements to the OpenLink AI Layer, a Virtuoso add-on module available through the Personal Assistant VAD package, along with minor fixes for SQL and SPARQL query edge-case scenarios.

Also note the following sections:

Virtuoso DBMS Engine Core

  • Added support to RDF replication modality for replicating all graphs (public and private) while maintaing access controls on private graphs
  • Added optional new algorithm to fix xte_sum64 collisions
  • Fixed issues with jump on uninitialized data found by valgrind
  • Fixed issues that are reported as errors by modern gcc/clang compilers
  • Fixed small memory leak

HTTP (Web) Server

  • Added http_flush(3) Server Send Events (SSE) compatible mode
  • Added support for binding LLM tasks to WebDAV folders e.g., for batch or instant generation of RDF-based document metadata in the user’s preferred notation (e.g., JSON-LD, RDF-Turtle, etc)
  • Added JSON-LD support to RDF Sink DET in WebDAV i.e., a folder that automatically uploads file content to the Virtuoso Quad Store
  • Added support for avif,webp,apng and jpeg media type variants
  • Fixed missing TLS connection timeout in TLS-based ODBC sessions
  • Fixed JSON-LD context loading algorithm
  • Fixed issue when Virtual Directory (Folder) is executable (i.e., +x bit enabled) and browse mode enabled producing an error
  • Fixed the .rss media type; update should perform delete before add operations
  • Fixed issues with OPML handling
  • Fixed issues running DAV rss/atom/opml feeds behind proxy

SPARQL Query Processor

  • Fixed issue leading the query optimiser to return internal codes such as `SPARQP_EQUIV: SPART_BAD_EQUIV_IDX"
  • Fixed issue with callback param in SPARQL
  • Fixed issue with column cast check on vectored parameters
  • Fixed issue with sub-property inference
  • Fixed issue with filter not working properly when built-in inference is enabled (bug#19507)
  • Fixed issue creating bnodes with extremely long base URI in jsonld import
  • Fixed issue in optimiser when predicate is optimised to be always true
  • Fixed missing check for default LIMIT in SPARQL query
  • Fixed JSON-LD fails when specific rules for FT index on graph are used

Data Transformation Middleware Layer (“Sponger”)

  • Added application/xml to the list of OPML MIME types.
  • Added a Virtuoso PL wrapper comment for the import UI.
  • Added RDF-based web service description import handling for OpenAI publication via JSON and YAML.
  • Fixed an error in debugging rdf/xml print.
  • Fixed handling of STACKOVERFLOW backend table API errors during population.
  • Fixed OPML content type text/xml no longer impeding feed processing.
  • Enhanced feed support: Atom and RSS now accept mix-ins from all other ontologies.
  • OPML Meta Cartridge (XC) Debug: allow nested elements

Faceted Search and Browsing

  • Fixed returning HTTP status 401 to redirect to login when get:* and no permissions are set.
  • Fixed returning an empty page if the account does not have read/view permissions.
  • Fixed avoiding the creation of QR codes and shortened links on HTTP status 404.

Virtuoso Authentication Layer (VAL)

  • Added OIDC_RS256 key upgrade to 2048 bits.
  • Added UI buttons for copying JWT-based API Keys (JAKs) and opaque API keys to the clipboard.
  • Added improved user help information alongside a throbber GIF during the Identity Provider (IdP) handshake.
  • Added support for authentication using JAKs.
  • Added API to register JAK api_ids.
  • Added refresh token functionality
  • Fixed an XSS issue.
  • Fixed issue calling the public API from WebSocket; using Turtle format as a fallback.
  • Fixed issue with VAL as an Apple OpenID Connect (i.e., Sign-In) client.
  • Fixed issues with the RelMeAuth (RMA) protocol dialog.
  • Fixed issue using cached IdPs.
  • Fixed issue when SQL account overlaps with OAuth2 Identity Principal credentials.
  • Fixed issue with calls via WebSocket.
  • Fixed public API to test for HTTP context and set headers accordingly.
  • Fixed removal of stack trace from RMA error messages in JSON responses.
  • Fixed usage of a common pattern location for User IRI.

HTML-based Admin Interface (“Conductor”)

  • Added initial support for LLM tasks to DAV
  • Added support for ACME multi domain name orders
  • Added support for ACME EAB support
  • Added ZeroSSL options to ACME UI
  • Fixed issue with underscore in dav browser
  • Fixed issue with too many users in dropdown list
  • Fixed issue with account binding
  • Fixed typo in generation of transient view urls
  • Fixed issue with RSS menu not working on Firefox

R2RML

  • Fixed automatic clear graph before RML import in conductor

OpenLink AI Layer (OPAL)

  • Added LLM binding support for X.AI Grok, Mistral’s Codestral, Anthropic Claude, Deepseek, Google Gemini, Alibaba Qwen, and Llama (via Cerebras and Grok)
  • Added support for OpenAI Batch API calls
  • Added support for LLM Batch API integration with Task scheduler
  • Added support for Batch Task Management UI
  • Added support for DAV callback
  • Added support for Model Context Protocol (MCP)
  • Added support for OPAL/RealTime API
  • Added support for VDB tools
  • Added support for VAL ACLs function tools
  • Added support for code-block uploads to DAV
  • Added support for scheduler db admin tool
  • Added support to detect virtuoso sparql endpoint and add fct type of query format
  • Added support for Azure cloud deployment handler
  • Added lookup for pim:storage relations via POSH-based structured data island
  • Added multi-modal LLM API key capture for Completions UI
  • Upgraded to latest version of OpenAI API
  • Added JAK as supported API Keys

JDBC, Jena and RDF4j connectors (providers)

  • Added Jena v5.2 provider
  • Added RDF4j v5.1 provider
  • RDF4j: Fixed conversion of Integer values to xsd:integer in RDF4j providers
  • RDF4j: Literals with datatype xsd:boolean not converted correctly to java types

Please note that the latest Virtuoso JDBC, Jena and RDF4j providers are also available via the Maven Central repository

Installer Availability

On-premise Installers and Docker Containers

Cloud Edition Releases for Amazon AWS, Microsoft Azure, and Google Cloud Platform

Amazon AWS

Microsoft Azure

Google Cloud Platform

Upgrade Notes

For all upgrades

  • Always make sure the database has been properly shut down and the transaction log (virtuoso.trx) is empty before performing any update/upgrade. This is easily done by launching Virtuoso with the extra command-line argument, “+checkpoint-only”. Virtuoso will launch, replay the transaction log, run a checkpoint (which zeroes the transaction log), and exit cleanly.

  • Before upgrading any database, it is always a wise precaution to make a proper backup.

Upgrading an existing Cloud Instance Virtual Machine

Execute the relevant command for your operating system distribution:

  • Ubuntu and related — apt update && apt upgrade
  • RedHat and related — yum update

Manually overwriting an older binary with the latest edition

Start with the documentation of manual upgrades.

If you choose to manually replace the Virtuoso server binary (virtuoso-iodbc-t) in-situ, you MUST also update the libraries in the Virtuoso hosting/ subdirectory due to incompatibilities between the latest binary and previous plugin versions. We also strongly RECOMMEND that you update the VAD packages in the vad/ subdirectory.

Upgrading from any previous version to the latest version

For best results with existing installations, we recommend following our simple step-by-step guide to upgrade from any previous version of Virtuoso to the latest version.

Additional Information