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:
- Virtuoso DBMS Engine Core
- Web Server
- SPARQL Query Processor
- Data Transformation Middleware Layer (“Sponger”)
- Faceted Search and Browsing
- Virtuoso Authentication Layer (VAL)
- HTML-based Admin Interface (“Conductor”)
- R2RML
- OpenLink AI Layer (OPAL)
- JDBC, Jena and RDF4j providers
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
andRSS
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
- On-premise Installers for Linux, macOS, and Windows
- Docker Containers
Cloud Edition Releases for Amazon AWS, Microsoft Azure, and Google Cloud Platform
Amazon AWS
- Virtuoso Virtual Machines for the Amazon AWS Cloud
- OpenLink AI Layer (OPAL) Virtual Machine for the Amazon AWS Cloud
- DBpedia Snapshot (Virtuoso PAGO) for Ubuntu on the Amazon AWS Cloud
Microsoft Azure
- Virtuoso Virtual Machines for the Microsoft Azure Cloud
- OpenLink AI Layer (OPAL) for the Microsoft Azure Cloud
- DBpedia Snapshot (Virtuoso PAGO) for Ubuntu on the Microsoft Azure Cloud
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
- OpenLink Personal Assistant — VAD Installation, Configuration, and Usage Guide
- Introducing Native GraphQL Support in Virtuoso
- Usage Guide — Virtuoso GraphQL Views Creation & Management
- Virtuoso “Encryption At Rest” (EAR) Usage Guide
- Virtuoso Database Upgrade Notes
- Virtuoso artifacts on Maven Central