Releases: ruby-rdf/rdf
Releases · ruby-rdf/rdf
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.
Release 3.0.1
- 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
Major changes since 2.2:
- Removed deprecated interfaces
- Remove deprecated
#to_hash
and#to_a
. - Remove deprecated
grammar
option toNode.uuid
. - Fix emergent issue on named graph transactions to coercing triple to statement including graph name.
- Remove deprecated
- 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 tordfs:isDefinedBy
. - Add skos term accessors.
- Term
inverseOf
accessor should be forowl:inverseOf
, notschema:inverseOf
. - Update options for
Vocabulary.property
andVocabulary.ontology
. - Allow Terms to be defined with a nil or no name, being an anonymous BNode.
- Implement
#to_ruby
forRDF::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 ofTerm#attributes
with values turned intoRDF::Term
instances. - Added
Term#attribute_value
to do this on a per-attribute basis. - Added
Term#restriction?
accessor to look for terms which areowl: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
toFormat.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 withQuery::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
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
Make sure that writer doesn't raise WriterError
because of error count established when started.
Release 2.2.10
- 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
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.
Release 2.2.8
Update CLI processor:
- Add
:control
field toCLI::Options
for HTML layout - Allow
CLI::Options#call
to provide options along witharg
based on arity of receiver (this allows options to add other options). - Extract most built-in options to structure.
CLI.options
does not use callback any longer. It takes anargv
parameter and figures out commands from there.- CLI.commands now accept a
format
named parameter; if used with:json
, it returns a JSON structure - CLI::Options now implements
#to_hash
. - Add
args
accessor toOptionParser
to retain arguments after options have been extracted. - Note potential addition of
:messages
component to options passed to command lambda. - Note that status updates should be logged (info) rather than output to $stdout.
- Add
required
parameter/option to Option to indicate that the option must be specified. - Overload
RDF::CLI.options
to also return a JSON representation of options in addition to normal processing. - Make
class_name
option required for Vocabulary CLI options. - In
CLI.parse
if using evaluated input, take sample to use if no format is specified. - Make sure CLI logger is set in options, using that from option_parser if not provided explicitly.
- In CLI runner, if messages are set, display them. This is in preference to text formatting in the command.
- Change
CLI::Option#required
toCLI::Option#use
with states:disabled
,:removed
,:required
, and:optional
. - Allow commands to override option use using
option_use
.
Release 2.2.7
Fix broken RDF::Node.uuid
. Note that the :grammar
option is deprecated and provide some documentation for the :format
option. Requires that either uuid
or uuidtools
gems be loaded.