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:
- 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
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
- Added DB.DBA.OAS_SERVICES_TO_JSON_LD() API call
- Added DB.DBA.OAS_SERVICES_TO_TTL() API call
- 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
R2RML
- 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
- 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 Data Junction Box 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 Data Junction Box 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 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.