Re: RDF.rb release 1.99

On 10/30/2015 09:53 PM, Gregg Kellogg wrote:
> The 1.99 release is in preparation for our forthcoming 2.0 release. This version preserves compatibility with all 1.1.x releases as called for by semantic versioning, but generates deprecation warnings for all deprecated interfaces. If you’re not prepared for these messages, consider locking the versions to 1.1 using the "~> 1.1” convention in a Gemfile.
>
> Changes targeted for the 2.0 release, many of which are represented in this release are found in our GitHub Issue tracker [1]:
>
> * open_file always transforms non-unicode input to Unicode.
> * Graph projection from Repository.
> * Enumerable#each_node
> * Enumerable/Queryable methods now return Arrays rather than Enumerators where it matters.
> * Non-core vocabulary use moved to the rdf-vocab gem, deprecation messages issued.
> * Better support for real transactions, and change behavior of RDF::Transaction to RDF::Changeset
> * RDF::Dataset behavior
>
> Specific updated gems:
>
> linkeddata 1.99.0
>   * depends on 1.99 versions of rdf, rdf-aggregate-repo, rdf-isomorphic, rdf-n3, rdf-rdfa, rdf-trig, rdf-trix, rdf-turtle, json-ld, sparql, and sparql-client.
>
> rdf 1.99.0: https://github.com/ruby-rdf/rdf/releases/tag/1.99.0
> * Warn when a deprecated vocabulary constant is found that it is deprecated, and that the access pattern will change. Fixes #191.
> * RDF.rb 2.0 will deprecate the use of `context` in favor of `graph_name`. This affects many methods, but also :context used as an option. For issue #189.
> * Change `#has_blank_nodes?` to `#node?`, but keep as method alias
>   * Add `Term#compatible?` from SPARQL.
> * Add a `#valid?` implementation to Reader base.
> * Fix issues converting DateTime and Time objects to strings when not canonicalizing. Fixes #218.
> * Fix named graph support in `RDF::Transaction`
> * Use of `RDF::Graph` to store inserts and deletes in `RDF::Transaction` is heavy handed, and results in the destruction of graph names on statements passed in. This fix simply uses `[]` to handle the statement lists (`RDF::Enumerable` is already included by force).
> * This should be cheaper and insulate us from potentially unwanted behavior outside of `Enumerable`. Clients can still use `RDF::Graph` by passing it on initialization at their own risk.
> * Correct behaviors for open_file:
>    * charset should be a downcased string. Fixes #199.
>    * content_encoding reflects Content-Encoding, as an array of downcased strings.
> * Non-UTF input is transformed to UTF-8, so that `external_encoding` is now "utf-8" with `charset` the original character set.
> * With Ruby 2.2+, attempt to turn Unicode input into NFC.

Note that http://www.w3.org/TR/turtle/#h3_sec-iri-references doesn't say 
anything about NF-izing. I haven't dug yet, but I think both SPARQL and 
Turtle have tests to make sure that resumé ('e' + U0301) !== resumé 
(U00e9). That said, it would be really really nice to let a user know 
they were working with two encodings of the same glyphs before their 
they become enraged and smash the machine.

How are you planning on using this?


> * Make `Transaction#execute` more atomic
> * Executing a transaction individually called `#delete` or `#insert` for each statement in the changeset. This prevents using the features of `Repositories` with a more efficient implementation of `#insert/delete_statements`.
> * Use `#clear_statements` when available
> * `Mutable#clear` checks whether the instance responds to `#clear_statements` and falls back on `#delete_statements`. The former clears the entire mutable, using e.g., `graph_name`, while the later has enumerative semantics (deleting the members of the set of statements). Because `#clear_statements` is protected or private, it will never be used by immutable without the `true` flag on `#respond_to?`.
> * Add `Statement.#complete?/#incomplete?` to check for nil elements. Update `Repository#insert_statement` to not add incomplete statements (silently); raises an ArgumentError. For #226.
>
> Most other changes to other gems are to eliminate deprecations.
>
> Please file bugs through GitHub issue tracker on appropriate gem, or to public-ruby-rdf@w3.org.
>
> Find us on IRC at #ruby-rdf on Freenode, or on Gitter: https://gitter.im/ruby-rdf.
>
> The RDF Core team:
>
>    Arto Bendiken
>    Gregg Kellogg
>    Tom Johnson
>
> [1] https://github.com/ruby-rdf/rdf/issues?utf8=✓&q=is%3Aissue+milestone%3A2.0+
>

Received on Sunday, 1 November 2015 18:18:17 UTC