Releases: ruby-rdf/rdf
Releases · ruby-rdf/rdf
Release 3.0.13
- 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
forpath-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 thetod
gem would justify XMLSchema#time, but the default Time class always includes a Date.
Release 3.0.12
- Make documentation link explicit in gemspec.
- Change most external URLs to HTTPS.
Release 3.0.11
- Don't define vocabulary method for 'term', in addition to 'proeprty' and 'hash'.
Release 3.0.10
-
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 charactersU+0022
,U+005C
,U+000A
,U+000D
are encoded usingECHAR
.ECHAR **must not** be used for characters that are allowed directly in
STRING_LITERAL_QUOTE`.
- Within
- 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
- 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
- Create a mutex instance variable in URI and synchronize when freezing.
- Guard against nil
content_type
when checking formats.
Release 3.0.5
- 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.
- "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
- 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 inNTriples::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
- 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
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.