New features and significant bug-fixes/updates for the last few versions are recorded here.
- 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
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
The full set of updates for this release includes:
- 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
- OWLIM-697 - Add support for the NQuads RDF format
- 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
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:
- 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
- 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)
- 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
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 Update - this extension of SPARQL provides a much more powerful method to modify RDF databases without the requirement for developers to use frameworks and APIs.
- 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.
- The SPARQL protocol has also been updated to January 2010 working draft.
- 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
- Upgraded to Sesame 2.4.2 which fixes several important bugs in SPARQL 1.1 Query support, see
- Query performance degradation with assertions enabled
- No Query Result if Aggregate Function used with OPTIONAL
- GROUP BY with complex expression not evaluated correctly
- SUM() with GROUP BY on empty solution results in error
- IN operator fails on empty argument list
- ArbitraryLengthPath with lowerbound 0 fails when no zero-length match is found
- SPARQL parser constructs incorrect query model for some property paths involving alternatives
- SPARQL parser fails to introduce implicit grouping on some queries
- Let SUM operator silently ignore non-numeric arguments
- 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:
- 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.
- 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.
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