New features and significant bug-fixes/updates for the last few versions are recorded here.
- 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.
- 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:
- Expressions in the SELECT clause
- Property Paths
- 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.
- 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.
This release includes many bug fixes and documentation updates. The most significant of these are:
- Online documentation: As well as the PDF format user guides included in the OWLIM distribution zip files, the latest documentation for all editions of OWLIM is now available online.
- 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.
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
This release includes functionality to bring it in line with what is offered in BigOWLIM 3.3, including:
- OWL2-RL: full inference support for this OWL2 profile http://www.w3.org/TR/owl2-profiles/#OWL_2_RL, but without the consistency checks
- 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
- 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
- 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