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.1 - 2021-07-16
Added
- support for counter-based Grax ids
- support for blank nodes as Grax ids
Optimized
- improved Grax id schema lookup performance
v0.3.0 - 2021-05-26
Added
- Grax ids - see the new chapter in the Grax guide for more on this bigger feature
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
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
- 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
Initial release