Yes, I read about it on the jena-dev mailing list—it sounds very useful.
Ultimately, we’re hoping for an efficient implementation, but starting
with a simple and correct one makes sense so other execution engines can
be compared against it. Looking forward to seeing this become a feature
in Jena.
Cheers,
Lorenz
On 2/8/26 22:20, Andy Seaborne wrote:
As far as I know, there is nothing for
- guaranteed rule ordering
- stratification
- dependency analysis
- truth maintenance
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.
The *in-complete* *work-in-progress* 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 [2]. 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. There are command line tools to
parser/print a rule set and to infer triples.
The goal at the moment is correct functionality, with a modular
architecture for a range of execution strategies. 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 future engines.
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.
--
Lorenz Bühmann
Research Associate/Scientific Developer
Email [email protected]
Institute for Applied Informatics e.V. (InfAI) | Goerdelerring 9 | 04109
Leipzig | Germany