Thank, Andy, I will likely have some data+shape resources in the coming
weeks/months that I would like to test. Are there plans to add this code to
Jena itself, or do you anticipate that it will be part of a separate
repository?

Best,
Aaron

On Mon, 8 Jul 2019 at 10:58, Andy Seaborne <a...@apache.org> wrote:

> I've got a SHACL validation engine working - it covers both the core and
> sparql constraints of the W3C Specification.
>
> If anyone has data+shapes, I'll happily use them to run further tests.
>
> Status: passes the WG test suite except for some in
> std/sparql/pre-binding/. Optional $shapesGraph and $currentShape are not
> supported (more below) and the "unsupported" tests in pre-binding (some
> of the rules seem overly restrictive) aren't run.
>
> AKA All valid shapes work, invalid shapes are "what you can get away
> with".  This is for future flexibility :-)
>
> None of the non-spec SHACL-AF is covered.
>
> API:
>
> As well as the operations to validate a graph using a given shapes graph
> (command line or API), there is also a graph that rejects non-conforming
> data in a graph transaction.
>
> Datasets:
>
> SHACL is defined to validate a single graph. To extend to validation of
> a dataset, just one set for shapes for all graphs seems a little
> restrictive.
>
> Some ideas -- https://afs.github.io/shacl-datasets.html
>
> $shapesGraph is for the case where data and shapes are in one dataset -
> I'm not sure that's a very good idea because it imposes conditions on
> extending SHACL to data datasets.
>
> Opportunities:
>
> There are possibilities for further work for deeper integration into
> dataset update path:
>
> * Parallel execution - some shapes can be applied to an update stream
> without reference to the data so can be done on a separate thread
> outside the transaction.
>
> * Restricting the validation work needed - for some shapes
> (not all, but it is a static analysis of shapes to determine which)
> the updates can be tracked to only validate changes. There are ways to
> write shapes that (1) apply globally to the data or (2) have indirect
> data changes where just looking at the data does not tell you if a shape
> might now report violations.
>
> There is some prototyping done but I got sidetracked by shacl-datasets.html
>
>      Andy
>

Reply via email to