Changelog
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning and Keep a CHANGELOG.
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