SHACL implementations

What implementations of the Shapes Constraint Language exists?

2 Likes

Open source implementations:

  • Apache Jena, supports SHACL Core and SHACL SPARQL [1].
  • RDF4J, supports a subset of the SHACL Core [2] [3], including DASH [4].
  • TopQuadrant SHACL API, based on Apache Jena. Supports most features, including SHACL-C, SHACL-AF and SHACL-JS [5].
  • pySHACL, supports most SHACL features as SHACL Core, SHACL Rules and SHACL-JS [6].
  • dotNetRDF SHACL Service, supports SHACL Core [7].

Proprietary implementations:

  • TopBraid EDG, full SHACL support [8].
  • Stardog, supports SHACL Core [9].
  • Ontotext, using RDF4J ShaclSail [10].
  • AllegroGraph [11].

SHACL Playground [12].

[1] https://jena.apache.org/documentation/shacl/index.html
[2] https://rdf4j.org/documentation/programming/shacl/
[3] https://github.com/eclipse/rdf4j
[4] http://datashapes.org/
[5] https://github.com/TopQuadrant/shacl
[6] https://github.com/RDFLib/pySHACL
[7] https://github.com/langsamu/ShaclService
[8] https://www.topquadrant.com/technology/shacl/
[9] https://www.stardog.com/docs/#_shacl_constraints
[10] https://graphdb.ontotext.com/documentation/free/shacl-validation.html
[11] https://franz.com/agraph/support/documentation/current/shacl.html
[12] https://shacl.org/playground/

Disclaimer: there might be some implementations I’ve missed.

2 Likes

Nice collection! I’d also add the zazuko SHACL playground

2 Likes

SHACL has many uses. Most likely focus on graph validation. TopBraid also uses shapes to generate User Interfaces

I have been working on similar, to have web pages and forms describe in SHACL.

See @hydrofoil/shaperone:

And @hydrofoil/roadshow:

FYI, I also implemented the Zazuko’s playground

1 Like

Another open source implementation of SHACL is SHACL-s in Scala: GitHub - weso/shacl-s: SHACL implementation in Scala

Also, RDFShape (http://rdfshape.weso.es/) is a playground that supports both SHACL and ShEx. In the case of SHACL, it is possible to select 3 engines to validate: SHACL-s, Jena and TopQuandrant’s one so it is possible to compare results between them.

2 Likes