Virtuoso 08.03.3331 Release Notes

Virtuoso 08.03.3331 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 includes important fixes to SPARQL for BIND and FILTER handling, enhancements to Graph Level Security and the Cost-based Optimizer; many minor bug fixes in edge-cases of SQL and SPARQL queries; fixes to JSON serialization.

Also see:

Virtuoso DBMS Engine Core

  • Added hash range ssl to explain
  • Added option for null empty to attach csv
  • Added serial to unfolded bifs to distinguish separate calls
  • Added wide & xml entity to json serialize/obj2json func
  • Fixed several edge-cases in SQL compiler
  • Fixed MD5 context should be kept on connection global and not reused
  • Fixed if IN is indexed do not reset to non indexed as may be a second indexed IN on same table
  • Fixed various missing BIF functions argument checks
  • Fixed length calculation in REPEAT
  • Fixed checking replication headers
  • Fixed issue representing geometry objects; use strings
  • Fixed issue importing CSV with missing EOL on last line
  • Fixed issue with 64bit arithmetic overflow
  • Fixed issue with freeing n-way nic arrays
  • Fixed issue with hash in group by
  • Fixed issue with IN(vector())
  • Fixed issue with join and order by on null result
  • Fixed issue with key len > 8k in hash of GROUP BY
  • Fixed issue with stack var clobbered by setjump/longjump
  • Fixed issue with srvstat() during checkpoint
  • Fixed issue with catching error from chash_error
  • Fixed issue with outerjoin when condition is always true or false
  • Fixed issue with obj2json()
  • Fixed memory leak

HTTP (Web) Server

  • Added optional Open API Service (OAS) extension attributes for turtle/jsonld conversion
  • Added more x-oasId to reduce bnodes in Turtle renditions of OAS service descriptions
  • Fixed issues with Server Sent Events (SSE) client
  • Fixed transaction boundary
  • Fixed do not even try to do LDP on non ldp container os resources
  • Fixed DAV URLs must encode following rules as for encodeURI
  • Fixed chars like ® are not encoded properly as URL infact the code suggest URI component
  • Fixed the ,acl resource is about access to target not to ,acl thus added @base
  • Fixed issue with null params in WS.WS.URI_ADD_PARAM
  • Fixed OAS handle allOf
  • Fixed OAS handle anyOf for requestBody type

SPARQL Query Processor

  • Added INSERT ONLY related graph security with flags for rdf_set_writable(1/2)
  • Added DB.DBA.RDF_DUMP_NQUADS_MT2() to handle repositories with Gn > vec limit
  • Fixed issue with internal security on RDF_QUAD regarding SPO and CBD output variants for DESCRIBE
  • Fixed issue with SPARQL-TSV output formatting
  • Fixed missing checks for SERVICE and query arguments
  • Fixed issue with BIND() breaking FILTER handling
  • Fixed issue when BIND() uses a constant in a FILTER expression
  • Fixed issue with TRANSITIVE queries
  • Fixed issue associated with importing bad IRI patterns from source documents
  • Fixed issue with DROP QUAD MAP graph where graph is identified using an IRI in the form:
  • Fixed issue with Microdata parser
  • Removed cache flag for /sparql endpoint

Data Transformation Middleware Layer (“Sponger”)

Note: XC = Extractor Cartridge; MC = Meta Cartridge.

  • CVE v5 XC: new cartridge for the latest upstream JSON-based v5 format including ontology mapping
  • Github XC: extend emoji/UTF-8 encoding fix to other URL patterns
  • Github XC: fix emoji/UTF-8 encoding in repo data
  • Github XC: XSLT: add support for gh:hasStars
  • Github XC: Ontology: add gh:hasStars property
  • DBPedia rdf/xml ingestion: not generate owl:sameAs #this
  • DBPedia URI direct RDF/XML import: not add schema:mainEntity relation

Faceted Search and Browsing

  • Added graph security to describe
  • Added support for WKT gepspatial datatype rendition
  • Fixed do not use callbacks when graph security is on
  • Fixed namespace used in denotation of inference rules graphs

Virtuoso Authentication Layer (VAL)

  • Added oplhttp:[Header] as a hasCriteria ref; value is from http headers
  • Added IndieAuth security check for matching mbox sha1 returned by identity providers
  • Added persistent namespace declarations for acl:, oplacl:, and oplres:
  • Added hasRestrictedValue for enrichening Restrictions applied to an Authorization
  • Added missing indexes for oauth session tables
  • Updated module schemas to latest version
  • Fixed Oauth2 compatibility mode for initial install
  • Fixed issue with RelMeAuth or IndieAuth endpoints behind https proxy
  • Fixed issues with IndieAuth
  • Fixed XSS scripting bug
  • Fixed when a Conditional Group doesn’t comprise any rules it can’t be considered match for ACL processing
  • Fixed key matching extended to include “kty” as alternative to “alg”
  • Fixed restriction by IPAddress not setting parameter value
  • Fixed restrictions not working when scoped to a specific WebID/NetID
  • Fixed when public and conditional acl priviliges collide, the last one in the order takes precedence
  • Fixed out parameter must be set to null
  • Fixed eliminate duplicate conditions
  • Fixed transaction boundaries
  • Fixed error text

HTML-based Admin Interface (“Conductor”)

  • Added optional alternative names for server x.509 cert.
  • Fixed use virtuoso_ini_item_value to reduce needless parsing
  • Fixed missing condition for sponger settings
  • Fixed preserve qualifier when update trigger, otherwise may get two distinct triggers
  • Fixed save CORs via WS wizard duplicate cors options
  • Fixed constrain site-name field to non-space characters only
  • Fixed broken href in dav folder listing lists
  • Fixed non-encrypted session error when login into conductor


  • Added backup before rdf view creation
  • Added quad map iri parameter
  • Fixed issue with ontology generation
  • Fixed complete table name before quoting
  • Fixed mismatch of a URL parameter and control in rdfview creation
  • Fixed CaSaMoDe on column

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 of the following updates/upgrades. 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 — apt update && apt upgrade
  • RedHat — yum update

Manually overwriting an older binary with the latest edition

Documentation: 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