SHACL
SHACL implementation in Rust.
This project started as a re-implementation in Rust of SHACL-s.
Validation modes
The crate exposes two engines selected via ShaclValidationMode:
-
Native— designed for in-memory graphs. Constraints are evaluated with Rust logic. When thesparqlCargo feature is enabled, inlinesh:sparql(SHACL-SPARQL) constraints are routed to the SPARQL execution path so that in-memory validation validates them as well. This is the recommended mode whenever the data already lives in the process. -
Sparql— designed for validating against a remote SPARQL endpoint. Every constraint is translated to SPARQL queries (SELECT/ASK). Use this mode when the data graph cannot be loaded in-memory; pickNativeotherwise. This is only available with theshaclRust feature.
Configuration for tests
The tests depend on the shacl-testsuite which is available as a git submodule. In order to run tests it is necessary to run in the root folder of rudof: