The RDF.rb core team is happy to announce our 2.0 beta release. We encourage 
active developers to update their test environments to help find issues in the 
gems which make up the release.

To install most gems with a single command perform the following:

  gem install linkeddata —pre

This will populate your installed gems with the 2.0.0.beta1 versions of the 
gems required by the linked data gem.

Release notes can be found in GitHub repositories for the various gems. Most of 
what you need to know is in the RDF.rb Release Notes [1].

This release includes the following gems:

rdf, rdf-aggregate-repo, rdf-isomorphic, rdf-json, rdf-microdata, rdf-n3, 
rdf-rdfa, rdf-rdfxml, rdf-reasoner, rdf-tabular, rdf-trig, rdf-trix, 
rdf-turtle, rdf-vocab, rdf-xsd, json-ld, sparql, and sparql-client.

The rdf-mongo gem is also updated for a 2.0 beta release: `gem install 
rdf-mongo —pre`. This includes updated drivers for MongoDB.

-----

We are preparing for the 2.0 release of RDF.rb and related gems. This announces 
the general availability of RDF.rb 2.0.0.beta1 along with other gems collected 
in the linkeddata meta-gem. Note that this release introduces breaking changes 
from the 1.* version; in most cases, these are highlighted using deprecation 
messages if using 1.99.

New Features

        • Readers and Writers now using RDF::Util::Logger for managing error, 
warning, information, and debug messages, which allow them to be managed more 
flexibly and consistently.
        • Substantially revised RDF::Transaction, which now serves as a scope 
for ACID transactions. Transactions are now read-only by default; for 
read/write transactions, use Transaction.new(mutable: true) or 
Repository#transaction(mutable: true). Transactions can be applied to an 
RDF::Transactable (in the core: Repository or Graph).
        • Introduced RDF::Changeset as a set of deletes & inserts which can be 
applied to a Mutable. The default RDF::Transaction for custom Repository 
implementations uses aChangeset, which is applied to the Repository.
        • Introduced RDF::Dataset as a read-only super-class of Repository, 
which can be provided by using Repository#snapshot, among other methods.
        • The in-memory Repository implementation now uses [Hamster::Hash][] to 
implement a fully functional interface for updating repositories, saving a 
number of explicit dup operations in queries and allowing fully isolated 
snapshots and serializable transactions at minimal cost. As a side-effect, 
there is no guarantee that insert order of statements in a Graph or Repository 
will be maintained.
Deprecated Interfaces in 1.99

These changes result in a DEPRECATION warning in 1.99, and errors in 2.*:

        • Minimum Ruby version no MRI 2.0 or equivalent 2.3 or greater 
preferred.
        • Numerous vocabularies have been moved to the rdf-vocab gem, for 
example RDF::Vocab::FOAFinstead of RDF::FOAF.
        • Many interfaces would take a :context option, this has been replaced 
with :graph_name to more properly correspond to RDF 1.1 concepts. This also 
includes #context and #context=, #has_context?, and #each_context methods in 
various modules and classes.
        • Vocabulary.label_for is replaced with Vocabulary::Term#label* 
Vocabulary.comment_for is replaced with Vocabulary::Term#comment
        • #write_graph and #write_statements are replaced with 
RDF::Writable#insert
        • Writer#format_value is deprecated in favor of Writer#format_term
        • NTriples::Reader no longer supports Surrogate Pairs.
        • Many interfaces now use [keyword 
arguments][https://robots.thoughtbot.com/ruby-2-keyword-arguments] instead of 
positional arguments.

Deprecated interfaces in 2.0

        • List#initialize now uses keyword arguments instead of positional 
arguments. This is a breaking change which cannot support backwards 
compatibility, but shouldn't affect most normal use.
        • Graph#initialize now uses keyword arguments instead of positional 
arguments. Positional arguments are accepted with a deprecation message until 
2.0.0 is released.
        • Transaction is completely changed, and existing use from 1.x is 
unlikely to work without modification in 2.x. Users of the 1.x Transaction who 
are not interested in ACID transactions should look at RDF::Changeset, which is 
more similar to the old interface.
Ruby gems will not automatically load beta gems via gem update. To get these 
gems you must explicitly include them using gem install --pre linkeddata.

For Arto Bendiken, Tom Johnson and myself, thanks for supporting Ruby Linked 
Data.

Gregg Kellogg
gr...@greggkellogg.net

[1] https://github.com/ruby-rdf/rdf/releases/tag/2.0.0.beta1

Reply via email to