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-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

Fixed

  • a bug when reading the counter of a Grax.Id.Counter.TextFile/2 under Elixir 1.14

Compare v0.3.3...v0.3.4

v0-3-3-2022-06-29

v0.3.3 - 2022-06-29

added

Added

fixed-1

Fixed

  • to_rdf/2 failed when an inverse property was not a list (#1)

Compare v0.3.2...v0.3.3

v0-3-2-2022-01-28

v0.3.2 - 2022-01-28

added-1

Added

  • on_load/3 and on_to_rdf/3 callbacks on Grax.Schemas
  • Grax.Schemas 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 RDF
  • Grax.to_rdf!/2 bang variant of Grax.to_rdf/2

Compare v0.3.1...v0.3.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

Compare v0.3.0...v0.3.1

v0-3-0-2021-05-26

v0.3.0 - 2021-05-26

added-3

Added

changed

Changed

  • not loaded links are no longer represented with Grax.Link.NotLoaded structs, but with RDF.IRI or RDF.BlankNodes instead
  • the value of link properties can be given as plain RDF.IRI, RDF.BlankNode values or as vocabulary namespace terms on Grax.new and Grax.build
  • the value of properties with type :iri can be given as vocabulary namespace terms on Grax.new and Grax.build

Compare v0.2.0...v0.3.0

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 on Grax.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 or list/0 type builder functions
  • the default value of link properties has been changed to nil respective the empty list (previously it was a Grax.Link.NotLoaded struct, which is now set explicitly during loading)
  • in the Grax.build and Grax.put functions duplicates in the given values are ignored
  • in the Grax.build and Grax.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 a Grax.Schema.CardinalityError instead of a Grax.Schema.RequiredPropertyMissing exception
  • the opts on Grax.to_rdf/2 are now passed-through to the RDF.Graph.new/2 constructor allowing to set the name of the graph, prefixes etc.

Compare v0.1.0...v0.2.0

v0-1-0-2021-01-06

v0.1.0 - 2021-01-06

Initial release