- From: Arto Bendiken <arto.bendiken@gmail.com>
- Date: Thu, 17 Jun 2010 22:16:14 +0200
- To: public-rdf-ruby@w3.org
We have today released version 0.2.0 of RDF.rb: <http://rdf.rubyforge.org/> <http://rubygems.org/gems/rdf> This is a semi-major release that includes many improvements and bug fixes, and it is recommended for all users. Upgrading via RubyGems is as simple as: $ [sudo] gem install rdf However, note that this release also includes some important API changes that may or may not necessitate updates to existing RDF.rb plugins, so if you rely on particular RDF.rb plugins you may wish to wait a day or two for new releases of the gems in question before upgrading. (We try and keep the API fully backwards compatible for all point releases, with any incompatible API changes introduced only in semi-major releases such as this one. That wasn't always the case with the 0.1.x branch which experienced rapid API evolution, but will be more so from 0.2.x onwards.) Notable changes in 0.2.0: * Improvements and bug fixes to the bundled N-Triples parser and serializer, in particular fixes to correctly handle the escaping of Unicode characters (kudos to Ross Singer). * Improvements and bug fixes in the semantics and handling of named graphs (kudos to John Fieber). * The possibility for using symbols as short-hand for blank node identifiers when constructing statements or querying with triple patterns. * The ability to insert graphs and enumerables into serializers or repositories with a single #<< operation instead of having to add all contained statements one-by-one. * Significant all-around performance improvements (kudos in particular to Ross Singer and John Fieber for pinpointing some of the areas that we've improved in this release). * The introduction of Ruby 1.8.7+ idioms while still retaining compatibility all the way back to Ruby 1.8.1+ with the help of the Backports gem: <http://github.com/bendiken/rdf/commit/cfeff6b0f9fad30867f31fa0b221bb4215116205> * Additional built-in vocabulary classes helpful for FOAF+SSL and geospatial use cases (kudos to Hellekin O. Wolf). New vocabulary classes added in 0.2.0: * RDF::CERT (W3 Authentication Certificate) * RDF::RSA (W3 RSA Keys) * RDF::GEO (WGS84 Geo Positioning) New classes added in 0.2.0: * RDF::Util::Cache::ObjectSpaceCache * RDF::Util::Cache::WeakRefCache New modules added in 0.2.0: * RDF::Countable * RDF::Util::Aliasing::LateBound New class and instance methods added in 0.2.0: * RDF::Repository#options * RDF::URI.intern, #urn?, #url? * RDF::Node.intern, #to_sym * RDF::Countable#empty?, #count * RDF::Enumerable#dump, #each_graph, #enum_graph, #to_set * RDF::Queryable#query_pattern * RDF::Writable#<<, #insert * RDF::NTriples::Writer.escape Some important API changes affecting storage adapter plugins compatible with RDF::Repository and/or the RDF::Queryable & RDF::Enumerable interfaces: * Factored out the RDF::Enumerable#count and #empty? methods into an RDF::Countable mixin that can be mixed into enumerators: <http://github.com/bendiken/rdf/commit/93c001ec8e10091799fb96bec4424fb191e2bfbc> * Refactored the RDF::Queryable#query API for better extensibility and performance, with it also now returning an enumerator instead of an array: <http://github.com/bendiken/rdf/commit/cb177954b60f81faff3d0335e5d776e0a396938e> <http://github.com/bendiken/rdf/commit/b4562277b70ab6c1e6acfc7ff262fd4e315dbf62> * Changed all RDF::Enumerable methods to return countable enumerators instead of arrays, facilitating the use of large RDF datasets: <http://github.com/bendiken/rdf/commit/ad63f0971299b3bd61797c1f8e1ea42668c16a93> <http://github.com/bendiken/rdf/commit/6b6fe9a594e0818e6b44b43d0422ceb746592d77> <http://github.com/bendiken/rdf/commit/b980aa1d1a5a377dc6a5e372ecccf9cb1770a4d4> * Factored out the append-only bits of RDF::Mutable into RDF::Writable: <http://github.com/bendiken/rdf/commit/053bec3a4491ef3cd81263df8542b6db5939d103> Some important API changes affecting parser/serializer plugins compatible with RDF::Format, RDF::Reader and RDF::Writer: * Implemented a new RDF::URI.intern class method. Starting from RDF.rb 0.2.0, all RDF::Reader implementations should prefer using RDF::URI.intern over RDF::URI.new when unserializing and constructing predicate URIs: <http://github.com/bendiken/rdf/commit/8323cee10706798a2000018cf694add516c5041e> <http://github.com/bendiken/rdf/commit/a1804a424dd6d92f81e071f8782210d90a7406e7> <http://github.com/bendiken/rdf/commit/16ddeeb62e1ff3cd637f044bd758f8f34d1c9c26> * Mixed in RDF::Writable into the RDF::Writer base class and RDF::Readable into the RDF::Reader base class, simplifying serializer implementation: <http://github.com/bendiken/rdf/commit/31381e49c5444478198e3cae931eff711a29127e> <http://github.com/bendiken/rdf/commit/1c6be95aa673ea9e1b76149d4523e03737c43b4b> <http://github.com/bendiken/rdf/commit/cee8c30ad4047b5c50a69913d4ea4cb3c8eb5dd3> * Extended RDF::Format content type handling to support optional aliases: <http://github.com/bendiken/rdf/commit/cecbb7a02fba860beb1a3ade2319686711c9a9f9> Other important API changes to note: * Changed the RDF::Value and RDF::Resource base classes into module mixins: <http://github.com/bendiken/rdf/commit/a49fc72460e3b9292339353609442e269121ffc0> * Changed all instance method aliases in RDF.rb's mixins (e.g. RDF::Enumerable, RDF::Queryable, etc) to be late-bound rather than early-bound, meaning that plugins no longer need to redefine or override them: <http://github.com/bendiken/rdf/commit/90e6b52fe492dd8c4b885ef0bacb5a119c2d848e> <http://github.com/bendiken/rdf/commit/0708253edb2d213599bbfd38f34d43b847f5aa0f> * Refactored RDF::Graph to be based on RDF::Queryable and RDF::Mutable: <http://github.com/bendiken/rdf/commit/11e1aff6c19730cccd3881264c7a2b934528a5b8> The full Git commit history since 0.1.10 can be viewed at: <http://github.com/bendiken/rdf/compare/0.1.10...0.2.0> The Git source code repository is hosted on GitHub: <http://github.com/bendiken/rdf> You can obtain a local working copy of the source code as follows: $ git clone git://github.com/bendiken/rdf.git -- Arto Bendiken | @bendiken
Received on Thursday, 17 June 2010 20:16:44 UTC