SHACL has been defined by a W3C Working Group with the goal to become a widely used standard for describing structural constraints on data graphs and validate RDF instance data against those.
In a nutshell, a SHACL processor takes a shapes graph and a data graph as input. Both can be entered here using data formats such as Turtle or JSON-LD. The shapes graph defines so-called shapes which are a collection of constraints. A shape also tells the engine for which nodes in the data graph it applies to (using targets). Constraints are of a type, called constraint components.
The design follows the SHACL-JS extension mechanism for SHACL.
Each constraint component (such as
The built-in SHACL Core components are implemented in the same way as any user-defined extension.
while the shape and constraint definitions can be distributed using linked data standards.
The parsing services and in-memory triple store used by this service are provided, with many thanks, by rdflib.js.