Dave Beckett's blog

Raptor 1.4.21 released - Raptor 2 GIT work

2010-01-30 20:51

I just released version 1.4.21 of my Raptor RDF parsing / serialising library to the world. This release is just bug fixes:

  • RDFa parser buffer management problems were fixed.
  • The Turtle parser and serializers now use QNames correctly as required by the specification.
  • The RDF/XML parser now resets correctly to detect duplicate rdf:IDs when a parser object is reused.
  • A few other minor bug and build fixes with made.
  • Fixed reported issues: 0000318, 0000319, 0000326, 0000331, 0000332 and 0000337

This is the first release since switching to GIT as the source control for the Redland libraries. The above release is on branch 'raptor1' in the new Redland GIT.

In parallel to this is the ongoing Raptor 2 ABI/API updating which is cleaning up 10 years of API and internal cruft. GIT is really helping speed up the ease of this work with the branching, staging/index and stash concepts it supports allowing false paths to be managed. The results can be seen on branch 'master' of raptor.

The updating is going well in the sense that make distcheck test suite passes, but there are still things to decide including:

  • Rename all raptor_CLASS_copy copy constructors to something else: either raptor_new_CLASS_from_CLASS (also used in raptor - Doh!) or to raptor_CLASS_addref which signifies better that it just adds a reference to the object, it's a shallow copy, not a deep one.
  • Unify raptor_world, rasqal_world and librdf_world - which might help share classes between the libraries. Not sure if this is a good idea yet.
  • Add a graph term to the (subject, predicate, object) triple returned from parsing. I am probably going to do this.
  • Turn the raptor_locator object into a more of a log (like librdf_log) or exception object, with inner log/exceptions.
  • Improve the callback interface that passes error, warning etc. messages to user code.

I need to decide at what point to roll out an alpha release of Raptor 2, which will probably be numbered 1.9.0. Some of the above possibilities might be worth putting in a later alpha release.

This can all be seen in the GIT repository which includes instructions for checkout at git.librdf.org.