Skip to content

Releases: ruby-rdf/rdf

Release 3.0.5

05 Nov 17:35

Choose a tag to compare

  • Verify that vocabulary terms defined in snake_case are not automatically converted to camelCase.
  • Remove the ability to set the external encoding when writing N-Triples, as N-Triples requires UTF-8.

    The content encoding of N-Triples is always UTF-8

  • "Fix" syntax in vocabulary.rb that Ruby versions < 2.2.5 don't parse properly. Set Travis to test on 2.2.2, not just 2.2, which defaulted to 2.2.7 at the time of this fix.

Release 3.0.4

05 Nov 17:34

Choose a tag to compare

  • Tighten up rules on what makes an RDF::List valid.
  • Be more forgiving on rdf:type values within a list.
  • Fix issue when logging multiple invalid statements to $stderr. (@jperville)
  • Cache NTriples::Writer instance used in NTriples::Writer.serialize so that it does not re-instantiate each time it is called.
  • Reduce object allocations in RDF::NTriples::Reader (@jperville)
  • Use Regexp.match? on Ruby >= 2.4, with fallback for earlier Ruby versions (@jperville)
  • Use the same DelegateClass(IO) each time we instanciate a logger (@jperville)

Release 3.0.3

05 Nov 17:31

Choose a tag to compare

  • Validate datatype IRIs and language form.
  • Require rdf/vocab/xsd explicitly in model/literal to avoid race with rdf/xsd gem.
  • Avoid uses of RDF::XSD.xxx to avoid race conditions from rdf/xsd gem.
  • Make a literal with rdf:langString but no language be invalid, but not raise an error on creation.

Release 3.0.2

05 Nov 17:30

Choose a tag to compare

Improvements to vocabulary generation:

  • Only use english or plain terms, as Ruby serialization does not preserve language.
  • Use lists for top-level values as well as embedded.
  • Order embedded property values.

In Reader.open, ignore content_type if it is 'text/plain'. This allows us to fall back on file_name and/or sampling.

Update documentation on URI#join and URI#/ to clarify how arguments are treated.

Release 3.0.1

05 Nov 17:29

Choose a tag to compare

  • Can't lookup a vocabulary from a BNode.
  • Make it so that if Format.for is called with no selection criteria, it returns nil rather than all formats (linter issue).

Release 3.0.0

30 Dec 21:35

Choose a tag to compare

Major changes since 2.2:

  • Removed deprecated interfaces
    • Remove deprecated #to_hash and #to_a.
    • Remove deprecated grammar option to Node.uuid.
    • Fix emergent issue on named graph transactions to coercing triple to statement including graph name.
  • Support vocabularies with anonymous values, which are treated either as Lists or Terms. This allows serialization of SKOS vocabularies with anonymous Concepts and OWL vocabularies which use owl:unionOf on anonymous classes.
    • Improve vocabulary documentation with examples.
    • Add :isDefinedBy shortcut to rdfs:isDefinedBy.
    • Add skos term accessors.
    • Term inverseOf accessor should be for owl:inverseOf, not schema:inverseOf.
    • Update options for Vocabulary.property and Vocabulary.ontology.
    • Allow Terms to be defined with a nil or no name, being an anonymous BNode.
    • Implement #to_ruby for RDF::Vocabulary::Term. This generates Ruby source to re-create the state of the object.
    • Improvements and tests for vocabularies with anonymous and List content.
    • Update built-in vocabulary syntax.
    • Add more OWL accessors.
    • Make vocabulary processing more lightweight by retaining original strings and deferring transformation into terms until they are accessed.
    • Added Term#properties to give a transformation of Term#attributes with values turned into RDF::Term instances.
    • Added Term#attribute_value to do this on a per-attribute basis.
    • Added Term#restriction? accessor to look for terms which are owl:Restriction.
    • Updated Term#respond_to? to base this mostly on type of term, in some cases on presence of attribute.
    • Make sure expand_pname validates the resulting URI and raises an error if invalid.
  • Add filtering from Format.for to Format.each to find all formats that match certain criteria.
    • Add support for content-type wildcarding when filtering formats.
  • Implement Query#variables and similar accessors to be semetric with Query::Pattern; also includes a variable graph name.
  • Remove df.rb (quite archaic).
  • Make sure Literal subtypes get non-nil @object values.
  • Remove pending on some N-Triples tests that had a JRuby issue with #to_ary.
  • Support Ruby 2.5

Release 2.2.12

08 Nov 00:04

Choose a tag to compare

Change Dataset#each_statement to Dataset#each to keep with description in RDF::Enumerable. This broke rdf-do, and the general contract described in RDF::Enumerable which datasets should implement.

Release 2.2.11

08 Oct 18:43

Choose a tag to compare

Make sure that writer doesn't raise WriterError because of error count established when started.

Release 2.2.10

08 Oct 18:42

Choose a tag to compare

  • Allow RDF::Vocabulary#send and #public_send (@no-reply)
    • We were previously undefining :send and :public_send. This closes #356.
  • Performance Improvements (@jperville)
  • Don't attempt to build URIs from Class names (@no-reply)
    • RDF::Vocabulary would previously attempt to build URIs from Class names when no URI was present for the vocabulary class. We now use a null relative URI instead.

2.2.9

27 Aug 18:29

Choose a tag to compare

CLI:

  • Fix option callback arguments for specific readers and writers to include options.
  • Handle CLI argument callback with arity 0 or > 2.
  • Take some steps to keep CLI option data from being modified.
  • Do some sanity normalization of CLI output messages hash.
  • Fix CLI usage.

Documentation:

  • Change some rubyforge references.