The Data Shapes WG (the SHACL WG) has work going on to specify a rules system for RDF.

It's taking forward the work in SHACL-AF [1], the SHACL Advanced Features note, which includes the great text "The latter is left to future work" (repeated application of rules).

So this work is motivated by user interest and is seeing the AF idea through. SHACL Rules is not compatible with SHACL-AF but it does not repurpose or redefine any of the vocabulary from before so existing AF-Rules work just like they did.

The *in-complete* editors working draft is:

    https://www.w3.org/TR/shacl12-rules/

This is datalog with stratified negation as failure.

There are two concrete syntaxes: a SPARQL-style syntax and an RDF encoding. They are equivalent in that there is nothing you can express in one which is not available in the other. They both parse to an abstract form, which is then evaluated to defined the outcome.

I have an implementation in-progress which I intend to contribute to Apache Jena. There are command line tools to parser/print a rule set and to infer triples.

The goal at the moment is functionality, and an architecture for a range of execution engines. Scale and performance and not goals at the moment.

There is one execution engine currently, and it is simple (i.e. it can be understood quite easily), but does generate the right answers that can then be used to test against other engines.

It is not practical to donate now because it does not fit the Jena release cycle ... and it's not finished nor does it have a stable API yet.

This is not a replacement for the rule system in jena-core. Ideally, some or all of that technology can be integrated but that's some way off yet.

    Andy

SHACL-AF Rules
[1] https://w3c.github.io/shacl/shacl-af/index.html#rules
Not implemented by jena-shacl.

Reply via email to