Skip to content

Releases: ruby-rdf/rdf

Release 3.0.13

31 Oct 21:48
Compare
Choose a tag to compare
  • Improve documentation for validate CLI command.
  • Add default User-Agent header, and improve documentation on header defaults.
  • Issue deprecation notice on versions of Ruby < 2.4.
  • Update language tag validation to what BCP47 requires, not RDF, which is too liberal.
  • Fix URI#join for path-rootless, which goes away when merged with a relative path.
  • A Time should be typed as XMLSchema#dateTime
    Ruby does not have a class which represents a time without date. A Tod::TimeOfDay provided by the tod gem would justify XMLSchema#time, but the default Time class always includes a Date.

Release 3.0.12

31 Oct 21:26
Compare
Choose a tag to compare
  • Make documentation link explicit in gemspec.
  • Change most external URLs to HTTPS.

Release 3.0.11

31 Oct 21:25
Compare
Choose a tag to compare
  • Don't define vocabulary method for 'term', in addition to 'proeprty' and 'hash'.

Release 3.0.10

12 Feb 00:50
Compare
Choose a tag to compare
  • N-Triples/N-Quads:

    • Single quote (') was missing from N-Triples/Quads escaped characters.
    • Change N-Triples literal output encoding to limit the number of ECHAR escapes used based on Canonical form of N-Triples:
      • Within STRING_LITERAL_QUOTE, only the characters U+0022, U+005C, U+000A, U+000D are encoded using ECHAR. ECHAR **must not** be used for characters that are allowed directly in STRING_LITERAL_QUOTE`.
    • Fix bug in NTriples::Reader.unescape where it was overeager; now uses a string scanner to iterate through the string buffer.
  • Query:

    • Make query validation optional. (Notation-3 patterns will appear to be invalid).
    • Better support for non-distinguished variables.
    • Calculate pattern cost based on position of variables.
    • Add Solutions#dup.
    • Add existential modifier to variables. Note that this is not preserved from queries, which record the binding using the variable name, without other qualities.
    • Have solution iterators also return enumerators.
    • Guard against nil bindings in solutions.
    • Add Solutions#merge based on JOIN semantics.
  • Miscellaneous:

    • Update Repository to remember statement options along with object, and not simply the object itself. This allows inferred statements to be added to the repo, and come back as having been inferred.
    • Implement URI marshaling methods to avoid issue with serializing mutex.
    • Dup components of a URI to avoid freeze issues.
    • Support milliseconds in dateTime and time datatyped literals.

Release 3.0.9

12 Feb 00:44
Compare
Choose a tag to compare
  • Add :parameters to RemoteDocument processing all Content-Type parameters.
  • Add Writer.accept? to allow writer to examine media-type and parameters before accepting.
  • Add 2.6 to rvm build matrix.

Release 3.0.6

05 Nov 17:36
Compare
Choose a tag to compare
  • Create a mutex instance variable in URI and synchronize when freezing.
  • Guard against nil content_type when checking formats.

Release 3.0.5

05 Nov 17:35
Compare
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
Compare
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
Compare
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
Compare
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.