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.