View Source Changelog
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning and Keep a CHANGELOG.
v0-3-5-2023-01-18
v0.3.5 - 2023-01-18
fixed
Fixed
- additional statements with objects in MapSets weren't handled properly, which is critical in particular, because the objects in additional statements are kept in MapSets internally, which meant additional statements from one schema couldn't be passed to another schema
- raise a proper error when preloading of a link fails because a literal is given
v0-3-4-2022-11-03
v0.3.4 - 2022-11-03
This version is upgrades to RDF.ex 1.0.
Elixir versions < 1.11 are no longer supported
fixed-1
Fixed
- a bug when reading the counter of a
Grax.Id.Counter.TextFile/2
under Elixir 1.14
v0-3-3-2022-06-29
v0.3.3 - 2022-06-29
added
Added
fixed-2
Fixed
to_rdf/2
failed when an inverse property was not a list (#1)
v0-3-2-2022-01-28
v0.3.2 - 2022-01-28
added-1
Added
on_load/3
andon_to_rdf/3
callbacks onGrax.Schema
sGrax.Schema
s now have an__additional_statements__
field, which holds additional statements about the resource, which are not mapped to schema fields, but should be mapped back to RDFGrax.to_rdf!/2
bang variant ofGrax.to_rdf/2
v0-3-1-2021-07-16
v0.3.1 - 2021-07-16
added-2
Added
- support for counter-based Grax ids
- support for blank nodes as Grax ids
optimized
Optimized
- improved Grax id schema lookup performance
v0-3-0-2021-05-26
v0.3.0 - 2021-05-26
added-3
Added
- Grax ids - see the new chapter in the Grax guide for more on this bigger feature
changed
Changed
- not loaded links are no longer represented with
Grax.Link.NotLoaded
structs, but withRDF.IRI
orRDF.BlankNode
s instead - the value of link properties can be given as plain
RDF.IRI
,RDF.BlankNode
values or as vocabulary namespace terms onGrax.new
andGrax.build
- the value of properties with type
:iri
can be given as vocabulary namespace terms onGrax.new
andGrax.build
v0-2-0-2021-03-16
v0.2.0 - 2021-03-16
added-4
Added
- heterogeneous link properties which can link different types of resources to different schemas
- schema inheritance
- support for cardinality constraints on properties
- support for
:required
on link properties - support for custom
:from_rdf
mappings on custom fields - support for custom mappings in separate modules
- the
build
functions can now be called with a single map when the map contains an id an:__id__
field :context
field onGrax.ValidationError
exception with more context specific information
changed-1
Changed
- the way in which list types are defined in a schema has been changed from putting the
base type in square bracket to using one of the new
list_of/1
orlist/0
type builder functions - the default value of link properties has been changed to
nil
respective the empty list (previously it was aGrax.Link.NotLoaded
struct, which is now set explicitly during loading) - in the
Grax.build
andGrax.put
functions duplicates in the given values are ignored - in the
Grax.build
andGrax.put
functions a single value in a list for a non-list property will now be extracted, instead of leading to a validation error - failing
:required
requirements result in aGrax.Schema.CardinalityError
instead of aGrax.Schema.RequiredPropertyMissing
exception - the opts on
Grax.to_rdf/2
are now passed-through to theRDF.Graph.new/2
constructor allowing to set the name of the graph, prefixes etc.
v0-1-0-2021-01-06
v0.1.0 - 2021-01-06
Initial release