New features and significant bug-fixes/updates for the last few releases are recorded here. Full version numbers are given as:
major.minor.build_number
e.g. 5.3.5777 where the major number is 5, the minor number is 3 and the build number is 5777. Releases with the same major and minor version numbers do not contain any new features, the only difference is that releases with later build numbers contain fixes for bugs discovered since the previous release. New or significantly changed features are released with a higher major or minor version number.
This release is bundled with Sesame 2.7.7 which provides better control over transactions compared to Sesame 2.6. Transactions are now started with a call to begin() rather than implicitly when an update operation is started. If begin() is not used, then the behaviour reverts to what was previously called 'auto-commit', i.e. any update operation is committed immediately. HTTPRepository now supports background parsing/concurrent reading of results. The release notes for the last few versions of Sesame are here:
NOTE: (Sesame 2.7.4 and above) Although this Sesame release is classified as a minor release (indicating compatibility with earlier releases), users of SPARQL are advised of one change that is not backward compatible with earlier releases: support for the '{min, max}' property path length syntax has been removed from the SPARQL parser, in accordance with its earlier removal from the official SPARQL specification. See issue SES-1706 for details. If you are currently using this particular syntax construct in your SPARQL queries, you are advised to modify those queries before upgrading.
Version 5.3 (build 5777)
A problem in the shutDownHook prevented an old Owlim instance from being garbage-collected.
Fix for incorrect reading of strings containing character "\u0000" in owlim-lite
Version 5.3
This is a maintenance release that includes Sesame 2.6.10 and the following significant updates:
The getting started application now supports the use of SPARQL updates within the query-file
SailImpl now implements NotifyingSail
Version 5.2
This is a maintenance release that includes Sesame 2.6.8 (change log 2.6.7change log 2.6.8). Note that 2.6.7 is NOT backward compatible with 2.6.6 due to a couple of minor changes to interfaces.
The full set of updates for this release includes:
Bug
OWLIM-359 - Support different file formats in "imports" parameter
OWLIM-696 - Context parameter ignored when reading statements using HTTP protocol
OWLIM-718 - noPersist does not have any effect
Improvement
OWLIM-697 - Add support for the NQuads RDF format
Task
OWLIM-496 - Axiomatic statements should behave as inferred statements during query answering
OWLIM-830 - Improve loading behaviour of getting started to handle huge RDF files
Version 5.1
This is a maintenance release that includes Sesame 2.6.6 and a variety of updates made available since OWLIM 5.0. This version is completely compatible with any OWLIM database created with OWLIM version 5.0.
For those who regularly use the getting started application as a bulk data loader, this has been updated to support HTTP authentication for security enabled OWLIM repositories. Other updates include:
Bug fix - race-condition causing 100% CPU utilisation when loading from multiple connections simultaneously.
Bug fix - calling clear() does not reset statement counters, so that an incorrect number of statements are reported.
Bug fix - inferences not computed for ontologies imported at initialisation
Bug fix - noPersist configuration parameter does not have any effect when deployed using Tomcat
Bug fix - excessive number of worker threads spawned
Known problems - The behaviour of the 'include inferred' checkbox in the Sesame Workbench is unpredictable when using OWLIM repositories.
The SPARQL 1.1 Graph Store HTTP Protocol is now supported according to the W3C Working Draft from the 12th May 2011. This provides a REST interface for managing collections of graphs, using either directly or indirectly named graphs.
Sesame 2.6.5 with many bug-fixes and updates to bring SPARQL 1.1 Query support up to the latest W3C Working Draft from the 5th January 2012.
The getting started application has been restructured so that it now works with remote repositories.
This release includes the following updates:
Bugs
OWLIM-633 Statement not persisted after shutdown.
OWLIM-615 namespace modifications are not persisted
OWLIM-597 OWLIM-Lite workbench has invalid rule-set options for OWL2-RL
OWLIM-587 Inconsistent bnode values in INSERT WHERE update
OWLIM-568 Modifications to namespace definitions are not persisted between sessions.
OWLIM-542 Functionally equivalent SPARQL queries return different results
OWLIM-508 Incorrect query results when programmatically setting the SPARQL dataset
Other
OWLIM-629 Make Getting Started more robust
OWLIM-617 Remove RDF(S) axiomatic triples for container membership properties
OWLIM-575 Remove unused configuration parameters
OWLIM-573 Add more configuration parameters to OWLIM-Lite Sesame Workbench templates
OWLIM-522 Refactor LUBM test drivers
OWLIM-519 Drop Java 1.5 compatibility (change to Java 1.6)
Version 4.3
Further contributions to the Sesame framework from Ontotext and Fluid Operations mean that Sesame version 2.6 is included with this version of OWLIM. The following new features are available:
SPARQL 1.1 Federation support that allows queries to pull together data from any number of distributed SPARQL endpoints
A new SPARQL repository type to wrap SPARQL endpoints
Improvements to the parser for controlling the level of literal/data-type validation and the handling of errors
Many other fixes for compliance with the latest revised SPARQL 1.1 working drafts
OWLIM itself includes updates for:
Improving the named graph support in SPARQL
Specifying and handling time-outs for queries
Version 4.2
Ontotext have continued to invest in the Sesame project and are pleased to announce the inclusion of Sesame version 2.5 with this version of OWLIM. The benefits include:
SPARQL 1.1 Query conformance has been updated to the May 2011 working draft, i.e. all the remaining behaviour has been implemented along with all the new SPARQL filter functions.
A new binary RDF serialization format. This format has been derived from the existing binary tuple results format. It's main features are reduced parsing overhead and minimal memory requirements.
As well as integration with the new Sesame APIs, there has been one additional bug fix in this version of OWLIM-Lite:
OWLIM-446 - Query.setIncludeInferred() is ignored
Version 4.1
Upgraded to Sesame 2.4.2 which fixes several important bugs in SPARQL 1.1 Query support, see
SwiftOWLIM has been renamed to OWLIM-Lite and is now distributed as a single jar file (previously it was split between SwiftOWLIM and SwiftTRREE). The new package is licensed free-for-use, which better fits the use and distribution model. OWLIM-Lite is the younger sibling of OWLIM-SE (standard edition), the fully-featured, standalone semantic repository distributed under a commercial license.
Easy to deploy WAR files: The distribution now includes openrdf-sesame and openrdf-workbench Web applications pre-configured with OWLIM and ready to deploy. This makes installing OWLIM as a server and creating/administrating OWLIM repositories trivially simple. The WAR files can be found in the sesame_owlim directory of the distribution ZIP file. See 'easy install' in the installation section.
SPARQL 1.1 Query: Ontotext has invested significant development resources in the Sesame project in order bring SPARQL 1.1 support to Sesame and OWLIM. This release includes SPARQL 1.1 Query, but without federation support for the moment. SPARQL 1.1 Update support will be included in the next release. The new features include:
Aggregates
Subqueries
Negation
Expressions in the SELECT clause
Property Paths
Assignment
A short form for CONSTRUCT
An expanded set of functions and operators
The SPARQL 1.1 specification has not yet become a W3C recommendation and continues to evolve. The following known issues apply to this release of OWLIM and Sesame:
fn:concat is not supported. This was added to the working draft in May, just after the Sesame 2.4.0 release was finalised. It will likely be included in the next Sesame/OWLIM release.
Federation is not yet supported. This will be implemented in a later version of Sesame and OWLIM later this year.
There are some problems with complex expressions in the SELECT clause. This should be fixed in the next release of Sesame/OWLIM.
Empty IN() and NOT IN() clauses will cause an exception - will be fixed in the next release.
Using the aggregate function SUM() will cause an exception if the there are no bindings over which to do the summation - will be fixed in the next release.
Single Java library: OWLIM-Lite is now packaged as a single jar file, owlim-lite-<version>.jar, and is covered by one free-for-use license. Previously, the Sesame wrapper around the TRREE engine was open-source and the TRREE engine was free-or-use.
Version 3.5
This release includes many bug fixes and documentation updates. The most significant of these are:
Artificial limit on ruleset size removed: Very large custom rule-sets were causing out of memory exceptions or problems during compilation. The size of rule-sets is now practically unlimited.
Bug Fix - Data loss from abnormal termination: This fix prevents data from being lost after two successive abnormal terminations. This was due to a misidentification of backup files.
Bug Fix - Synchronisation problem: A synchronisation problem led to intermittent incorrect query answering of the LUBM-1 functional test. The issue appeared at an average of 1 of 80 runs and it was due to bad read-write synchronisation when adding to collections.
Version 3.4
This release includes one new feature and several important bug fixes:
OWL2-QL: This OWL2 profile http://www.w3.org/TR/owl2-profiles/#OWL_2_QL is based on DL-LiteR, a variant of DL-Lite that does not require the unique name assumption. It is designed to be amenable to implementation on relational databases, due to its suitability for re-writing queries to SQL. This release includes a rule-set for this profile in order to expand the range of standard rule-sets and to give users more flexibility when choosing a balance between complexity of inference and scalability
Bug Fix – Concurrent commits: An important race condition has been eliminated that can cause SwiftOWLIM to enter an infinite loop when multiple concurrent users commit updates simultaneously
Bug Fix – Losing data between shutdown and restart: In some circumstances when running on Windows machines, data was being lost after serialising to disk during shutdown. This was due to the case-insensitivity of Windows operating systems. Special care is now taken with the naming of storage files for each of the predicates used in the repository
Version 3.3
This release includes functionality to bring it in line with what is offered in BigOWLIM 3.3, including:
Documentation: improved user documentation with new quick start guide
partialRDFS: this flag has been deprecated and the optimizations made available with extra rule-set options
Ontology imports: importing ontologies can be achieved using a URL as well as a local pathname
Better JDK integration: custom rule-sets require the Java compiler, but it is no longer necessary to have the tools.jar in the classpath
A number of maintenance updates and fixes are included in this release, the most significant of which are:
Incorrect handling of transactions in SwiftOWLIM
Getting statements from an invalid context returns the full dataset
Clearing a single context in SwiftOWLIM clears the whole repository
Rule '<C> rdf:type <owl:Class> => <C> rdfs:subClassOf <owl:Thing>' not working
Version 3.0.12
Fixed errors in concurrent environment related to thread safety of few internal components
ThreadPool fix: a Worker thread could be woken up unexpectedly without a complete job setup
Support for Sesame 2 (including SPARQL): Sesame version 2.2.4 is bundled in the release
Version 2.9.0
Multi-threaded inference: loading speed improves 37-71% on a dual-CPU (4-core) server, depending on the rule-set; 33% speed up on a desktop machine (P4 with hyper-threading)
Improved transaction isolation: corresponding to READ COMMITTED level in RDBMS
Transitive closure optimization: the materialization of the "closure" of transitive properties can be switched off. This prevents the generation of O(N2) implicit statements, for a chain of N individuals connected through a transitive property. This optimization improves dramatically the scalability and performance on datasets with long "chains" over transitive properties
Universal stack-safe inference: In versions 2.8.3 and 2.8.4 there was a "stack-safe" mode, allowing handling of datasets with very "deep" inference chains; running in this mode, SwiftOWLIM was considerably slower. In version 2.9.0 the main reasoning algorithm is stack-safe without performance penalty or need of specific configuration parameter
Improved management of implicit and explicit statements: Separate retrieval of explicit and implicit statements is straightforward
GettingStarted: a sample application demonstrating SwiftOWLIM
Wordnet: a sample application loading the RDF/OWL representation of Wordnet is provided