View Source Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning and Keep a CHANGELOG.

v0.3.9- 2023-12-19

Elixir versions < 1.12 are no longer supported

Fixed

  • The internal SPARQL lexer and parser were renamed more uniquely. A potential for collisions came to light after switching to Elixir v1.15 where the new compilation behaviour was causing sometimes interferences with another generically named parser, namely the one from erlex (a dependency of dialyxir).

Compare v0.3.8...v0.3.9

v0.3.8 - 2022-11-03

This version is just upgraded to RDF.ex 1.0.

Elixir versions < 1.11 are no longer supported

Compare v0.3.7...v0.3.8

v0.3.7 - 2022-03-22

Upgrades to RDF.ex 0.11. Earlier version won't work with RDF.ex >= 0.11.

Elixir versions < 1.10 are no longer supported

Added

  • Support for SPARQL-star query results JSON and XML formats

Compare v0.3.6...v0.3.7

v0.3.6 - 2020-09-21

Fixed

  • The JSON query result decoder didn't recognize the datatype of literals when the JSON value object was "type" : "literal". Only for those with "typed-literal" the "datatype" field was interpreted.
  • Not all IRI values in CSV results were recognized as IRIs. Values starting with the most common URI schemes (http/https, urn, ftp, file, ldap, mailto, geo, data) are now recognized correctly.

Compare v0.3.5...v0.3.6

v0.3.5 - 2020-06-01

Changed

  • Upgrade to RDF.ex 0.8. With that Elixir versions < 1.8 are no longer supported.
  • the SPARQL extension function registry is now implemented with the ProtocolEx library, improving the performance of queries using SPARQL extension functions (including the builtin casting functions); unfortunately this means the SPARQL.ExtensionFunction.Registry.get_all/0 function to get all registered extension functions can no longer be supported

Compare v0.3.4...v0.3.5

v0.3.4 - 2019-12-14

  • Upgrade to RDF.ex 0.7

Compare v0.3.3...v0.3.4

v0.3.3 - 2019-10-25

Fixed

  • a bug in the BGP processing algorithm lead to wrong solutions when one triple pattern in a BGP had no solutions

Compare v0.3.2...v0.3.3

v0.3.2 - 2019-09-08

Added

  • no_extension_detection_in_releases_warning configuration which disables the
    warning that not all extension functions may be detected in a release with the runtime system in interactive mode

Fixed

  • Raise an error when the query uses an unknown prefix instead of producing an invalid query

Compare v0.3.1...v0.3.2

v0.3.1 - 2019-07-15

Changed

  • Use the new RDF.Literal.matches?/3 function from RDF.ex 0.6.1 for the REGEX function
  • with the fix from RDF.ex 0.6.1 XSD boolean with uppercase letters in the boolean lexical values are no longer valid

Fixed

  • the true and false keywords from the SPARQL language are case-insensitive
  • the new RDF.Literal.matches?/3 function also fixes some Unicode escaping issues in regular expressions

Compare v0.3.0...v0.3.1

v0.3.0 - 2019-04-06

Changed

  • Replace the prefix management of SPARQL.ex with the new prefix management capabilities of RDF.ex 0.6
  • Use the query prefixes as the prefixes of CONSTRUCTed graphs

Compare v0.2.9...v0.3.0

v0.2.9 - 2019-03-06

Fixed

  • the application failed to start in OTP releases (#2)

Compare v0.2.8...v0.2.9

v0.2.8 - 2019-02-16

Added

  • Support for negations with MINUS

Compare v0.2.7...v0.2.8

v0.2.7 - 2018-11-11

Added

  • Support of the CONSTRUCT query form

Fixed

  • various fixes on comparisons between RDF.DateTimes and RDF.Dates

Compare v0.2.6...v0.2.7

v0.2.6 - 2018-10-30

Added

  • Support for alternative graph patterns with UNION
  • Support for assigning to variables with BIND

Changed

  • REDUCED no longer removes duplicates without projection (for performance reasons)

Fixed

  • DISTINCT did not work without projection

Compare v0.2.5...v0.2.6

v0.2.5 - 2018-10-21

Added

  • Support for optional graph patterns via OPTIONAL
  • Support for the bound function

Fixed

  • errors during evaluation of function arguments were handled incorrectly, which led in particular to wrong behaviour of the COALESCE function
  • SPARQL.Query.Result.get/2 failed when the given variable was not in the results

Compare v0.2.4...v0.2.5

v0.2.4 - 2018-10-06

Added

  • Support for group graph patterns, i.e. nested graph patterns and FILTERs in the middle of a graph patterns (which splits up a graph pattern)
  • SPARQL.Query.Result.get/2 as a short way for getting the solutions of a single variable

Fixed

  • FILTER expressions at the beginning of a graph pattern

Compare v0.2.3...v0.2.4

v0.2.3 - 2018-09-23

Added

  • evaluation of DISTINCT and REDUCED (the later having the semantics as DISTINCT, i.e. no optimizations right now)
  • implementation of String.Chars protocol on SPARQL.Query

Changed

  • various refinements of default prefixes
    • renamed the query-specific default prefixes option from prefixes to default_prefixes
    • setting none on the default_prefixes option, removes the standard application-wide configured default prefixes
    • SPARQL.Processor.query (and the SPARQL.execute_query alias) pass options down SPARQL.Query.new/2, so it can also used with default_prefixes

Compare v0.2.2...v0.2.3

v0.2.2 - 2018-09-22

Added

  • application-wide and query-specific ways to define default prefixes

Fixed

  • bug in the lexer grammar which caused a scanner error on lowercase distinct

Compare v0.2.1...v0.2.2

v0.2.1 - 2018-09-17

Fixed

  • generated Erlang output files of Leex and Yecc are excluded from Hex package, which caused issues using the SPARQL.ex Hex package on OTP < 21 (because the package was released with OTP 21)

Compare v0.2.0...v0.2.1

v0.2.0 - 2018-09-17

Added

  • SPARQL Query engine for executing queries against RDF.ex graphs (not complete yet; see Current state section in README)

Changed

  • Elixir versions < 1.6 are no longer supported
  • renamed the SPARQL.Query.ResultSet struct to SPARQL.Query.Result
  • removed the previous SPARQL.Query.Result struct for single solutions; these are now represented as simple maps

Compare v0.1.0...v0.2.0

v0.1.0 - 2018-03-19

Initial release