Release of ShEx.ex 0.1


I'm very happy to announce the first release of ShEx.ex, an Elixir implementation of the ShEx and ShapeMap specs. You can find the source at and a short guide at

One distinguishing feature of ShEx.ex might be its support for parallel processing of larger amounts of nodes out-of-the-box. This feature is however is still considered experimental, as it currently lacks empirically founded parameters for the workload distribution (batch sizes etc). For this reason, I want to ask if there are some public example data and schemas for testing and comparison purposes.

ShEx.ex already passes large parts of the official test suite. However, here are the ones that still fail:

- the `negativeStructure` tests are not passing yet, because the schema is not yet validated for the respective problems on schema creation time (I hope to deliver this soon)
- the following features are in general not supported yet, so all test with the resp. traits are not passing: imports, external shapes, annotations, semantic actions
- `1literalPattern_with_ascii_boundaries_fail` and `1literalPattern_with_all_controls_fail` are failing because of some issues with non-ascii characters
- `nPlus1` and `PTstar-greedy-fail` are failing because of an issue with greediness
- `FocusIRI2groupBnodeNested2groupIRIRef` and `FocusIRI2EachBnodeNested2EachIRIRef` are failing
- A major issue for now is the limited set of supported datatypes in RDF.ex (on top of which ShEx.ex is implemented): xsd:boolean, xsd:integer, xsd:decimal, xsd:double, xsd:time, xsd:date, xsd:dateTime.  This limits the applicability of numeric value constraints and the lexical form checks for datatype constraints and makes 29 tests using unsupported datatypes in these circumstances fail. Addressing the limited set of supported datatypes is one of the next planned features for RDF.ex, but will take some time, as I'm generally not happy with the current implementation of the XSD datatypes and want to do a rewrite of that part.
- I also had some struggles with the JSON-based format for ShapeMaps used in the tests with `sht:ShapeMap` trait as I couldn't find any information about it. The only place it seems to be mentioned is in "Example 1" of the ShapeMap spec. But it doesn't mention any further details for how to encode for example literals. Is this format even intended to be used outside of the test suite?

I hope you find ShEx.ex nevertheless useful already and would be happy to hear your thoughts on it.


Received on Monday, 15 July 2019 20:45:00 UTC