Mulgara Release Notes
v2.0.5
September 5, 2008
This is a minor release to address an issue that came up when building from source on Windows.
Fixes:
- Removed a symlink that documented javacc as version 4.0. A poorly written task was trying to pick up this link as a real file, which doesn't work on Windows.
- Fixed the namespace map in the RDF/XML writer so it can't accidentally use a generated URI in an export.
Cleanup:
- Removed unnecessary config files from the mulgara-core distribution.
New Features:
- Created a cut-down default config file for the mulgara-core distribution.
Posted by Paul on September 5, 2008
v2.0.4
September 4, 2008
This is a minor release for new deployment options, better Sesame compatibility, and system cleanup.
Fixes:
- Fixed the org.mulgara.tools.Tql tool, which had fallen behind and wasn't compiling.
- Allow a server to continue after failing to start a web application.
- More informative messages when unable to load startup classes.
Cleanup:
- itql has been renamed to querylang. This allows both SPARQL and TQL to share common functionality this package.
- Removed Sofa and BEEP due to lack of use.
- Removed the partially completed SPARQL protocol code, after it languished for 3 years.
- Merged SPARQL code into querylang.
- Imported the Mulgara-SPARQL library to be a native part of the project.
- Imported our version of the JRDF library to be a native part of the project.
- Removed the JSR173 libraries.
- Removed the WebUI application. This is replaced by the WebQuery application, which has now been moved to the /webui path in the web service.
- Removed all Barracuda libraries, as this was only used by the WebUI.
- Flattened all distribution JARs, and removed all dependence on the Bootstrap class. This class acted as a Class Loader for JARs embedded in the main JAR.
New Features:
- A new build target: raw-dist. This creates mulgara-raw-2.0.4.jar, which contains all the Mulgara files, but no 3rd party libraries. This is similar to the main mulgara-2.0.4.jar without the 3rd party libraries. This should be ideal for deploying everything in an existing environment, where the environment controls 3rd party libraries.
- Updated the core-dist build target. The resulting mulgara-core-2.0.4.jar is similar to mulgara-raw-2.0.4.jar, but with unnecessary content handlers, resolvers and most network services stripped out.
- The org.mulgara.tools.Tql tool can now do sub-queries and non-query commands.
- Updated JavaCC to JavaCC 4.0.
- Updated Activation to Activation 1.1.1.
- Updated Apache Commons HTTP Client to Commons-Httpclient 3.1.
- Internal library for streaming query results to XML and JSON. This will be exposed in a servlet in the next release.
Posted by Paul on September 4, 2008
v2.0.3
August 29, 2008
This is a minor release for new functionality.
Fixes:
- Backward compatibility fix for xsd:date objects.
New Features:
- Identical xsd:date values with different lexical representations are no longer collapsed to the same value. This is for SPARQL conformity. Joins will no longer join on different lexical representations of identical dates. The equality operator in SPARQL filters will provide this functionality.
- xsd:decimal values can now have decimal places, and different subtypes are no longer collapsed into the same value. See the note on joins for xsd:date.
-
The initial release of the XA 1.1 StringPool/NodePool. This is an incremental improvement over the XA 1 version. It operates similarly to XA 1 for small amounts of data, but Load performance is significantly improved for large data sets. This is not the default StringPool/NodePool, as it does not yet handle backup/restore.
Use the conf/mulgara-config-x11/xml file to configure this option.
For architectural details see the description in the wiki. - Integrated the JRDF library. This will make this code more apparent for developers, and allow greater flexibility in the use of these interfaces. The non-Apache licensed code was removed.
- The RIO parser for RDF/XML was removed due to its dependence on LGPL'ed code from JRDF. This module was not used unless Mulgara was explicitly configured for it.
Posted by Paul on August 29, 2008
v2.0.2
August 22, 2008
This is a minor release for bug fixes and backward compatibility for previous data files.
Fixes:
- Removed stack traces from Hybrid Tuples except when debugging. Thanks to Morten Grouleff for this patch.
- Fixed a problem with concurrent access to the string pool.
- Added backwards compatibilty for dates stored in systems prior to r1081.
- Fixed resolver xa-resource activation for externally managed transactions.
- Added logging of exceptions that occur when running from a query script.
Posted by Paul on August 22, 2008
v2.0.1
August 11, 2008
This is a minor release with some feature updates and bug fixes.
Fixes:
- Fixed comparators for Double values when handling negative numbers. Thanks to David Smith for this fix.
- Minor improvement to Transaction completion process.
- Fixed NullPointerException that could occur with the new language tags on literals.
- More efficient handling of transaction timeouts.
- Shutdown no longer prints an exception trace when it cannot contact the RMI server. This was a particular problem for computers that went to sleep while a server was running.
New Features:
- The built in web server can now be disabled with any of the following methods:
- Update the configuration file in the build (see conf/mulgara-config.xml).
- Specify -w (or --nohttp) on the command line.
- Set the system property "mulgara.http.disable".
- The web server has been updated from Jetty 4.2.19 to Jetty 6.1.11.
- A new web client user interface is now available. By default this appears at http://localhost:8080/webquery/. This is lighter than the webui and uses the new Connection interface. The old WebUI is now deprecated and will be removed soon.
- Major cleanup of code in EmbeddedMulgaraServer. More will be done, but it should be more transparent to developers who look at this code.
Posted by Paul on August 11, 2008
v2.0.0
July 23, 2008
This is the official release of version 2.0.0. This release is feature compatible with the 2.0.0-BETA release.
Fixes include:
- Better synchronization at the server end. This avoids infrequent exceptions encountered particularly when multiple client threads try to access the same connection.
- Support for idle and transaction timeouts.
- Support for literals with known datatypes that can't be parsed into their declared data type.
- Decimals may now start with a "+" character.
- Now accepting all valid language codes on untyped literals.
- Supporting time offsets for literals of type xsd:date.
- Supporting DESCRIBE queries. CONSTRUCT and ASK should work but need more testing.
- Removed all object pooling. This enables JVMs from version 5 and up to perform better memory management. The benefits are more apparent in Java 6.
Posted by Paul on July 23, 2008
v2.0.0 BETA
July 2, 2008
This release fixes a few of the known problems in the ALPHA release, and should be feature-stable for the final release. The final release is expected by mid-July.
Fixes include:
- Variables repeated in a single constraint (or Triple Pattern) are always handled correctly now.
- A new command called export has been introduced for exporting a graph to RDF/XML. This relieves the backup command from having to handle exporting graphs as well as backing up the database.
- Unreferenced Sessions now being cleaned up and race condition fixed on Session close.
- Fixed issues for multithreaded clients using the Connection factory.
- The Relational resolver now permits variable graphs, though these are ignored.
- Better shutdown handling.
- The NodeType resolver now uses a type of mulgara:UriReference, which is the correct capitalization for a type.
New features include:
- The XSD Resolver now has a default graph of sys:xsd.
- xsd:dateTime values now have their original lexical form preserved, rather than being canonicalized.
- Preliminary framework for ASK, CONSTRUCT and DESCRIBE queries. Note: This is not yet working, and will still fail for many queries.
- Graph names may now be relative URIs.
Posted by Paul on July 2, 2008
v2.0 ALPHA
May 15, 2008
This release establishes several important new features for the upcoming 2.0 release.
New features include:
- Preliminary SPARQL Query support. See below for details. Note that this is NOT the new Sesame-Mulgara bridge that also provides a SPARQL interface to a Mulgara data store.
- A new Connection API.
- Virtual graphs (created by Resolvers) may now be created automatically. Built in system functions are all provided automatically in graphs named with the sys scheme. Default system graphs are:
- sys:null An always empty graph.
- sys:prefix Returns statements relating to the namespaces on URIs.
- sys:type Returns statements on the RDF node type for a variable (literal, URI reference, or blank node).
- Arbitrary graph names. Using the new Connection API, graph names no longer have to be in the rmi:// scheme.
- Language tagging for untyped literals. This is an important feature for RDF compliance.
SPARQL
SPARQL queries can now be issued on the new Connection API. This is currently a programmatic interface, with SPARQL protocol support to be implemented shortly.
Not all features are implemented yet, and some new internal functionality has yet to be exposed in SPARQL. Most of these features will be in place for the 2.0.0 release:
- Only SELECT queries are working. CONSTRUCT, ASK and DESCRIBE are under construction.
- Literals of type xsd:dateTime are currently canonicalized to UTC.
- Answers never have duplicates. SPARQL requires that duplicates remain unless removed with DISTINCT.
- ORDER BY will only sort by variables, and not by arbitrary expressions.
- Regular expressions are handled by Java and not an XPath compliant library.
- All IRIs are treated as URIs
- Basic graph patterns with repeated variables are not available in graphs defined with a variable.
Posted by Paul on May 15, 2008
v1.2.1
April 6, 2008
This is a minor update to fix a couple of bugs discovered in 1.2.
Bug Fixes:
- Restore of a backup file from a client machine threw an exception based on data being uncompressed before being sent across the wire.
- Backups were inverting remote/local modifiers.
- UI prompt started as iTQL, and changed to TQL.
Posted by Paul on April 6, 2008
v1.2
April 3, 2008
This is the last significant release before v2.0. It contains several new features, and numerous bug fixes. All users are recommended to upgrade to this version.
New features:
- Implementation of the Java Transaction Architecture (JTA). This permits multiple simultaneous read transactions, and correct ACID compliance for the write transaction. See the docs/site-src/design/JTAInterface.txt file in the distribution for details.
- A new Connection interface. When using this interface, graphs can be named with any valid URI, and are not restricted to the RMI scheme.
- The "alias" command can now be used to get a list of current aliases.
- Updates to the Axis libraries, giving better SOAP performance.
Updates and Bug Fixes:
- Fixed Backup operations being performed occasionally in the wrong phase. This led to the wrong data being backed up.
- Iimproved loading code to remove redundant operations. This makes for faster loads.
- Allow local: schema for location-based graph names.
- Fixed transaction handling in the "apply" command when running rules.
- Better robustness in the face of bad rule data.
- Fixed the option to set the RMI port configuration.
- Fixed blank node allocation when loading RDF data from N3.
- Removed "exclude" keyword, as the semantics of this are not useful, and are often misleading.
- Fixed TQL insertions to not ignore empty URIs between <> characters.
- Added SKOS and FOAF namespaces to the default aliases.
Posted by Paul on April 3, 2008
v1.0.0
August 19, 2006
This is the initial release of Mulgara.
The initial release is a fork from Kowari v1.1, as of August 1, 2005. None of Kowari's later features are available here, but are scheduled for reimplementation shortly. This is to avoid any appearance of using code previously (but not currently) contested by Northrop Grumman Corporation.
Points of note for this first release:
- Mulgara has been upgraded to use Java 1.5. It will no longer build or run on Java 1.4 or below.
- The model renaming feature from the latest version of Kowari is not included.
- Jena libraries are still in use.
- Mulgara has been upgraded to use the latest versions of Ant, Lucene, and JRDF.
Posted by Paul on August 19, 2006








