A curated list of Semantic Shapes resources. Contributions welcome! Please, read the Contribution Guidelines first.
Semantic shapes enable you to validate RDF graphs against a set of conditions. Semantic shapes can also be viewed as a description of data graphs that satisfy these conditions. Such descriptions may be used for a variety of purposes besides validation, including user interface building, code generation, and data integration. Semantic shapes are frequently described using the SHACL or ShEx language.
- SHACL Validators
- ShEx Validators
- Shapes Discovery Tools
- Shapes Collections
- Shape Conversion Tools
- Shape Generators
- Shape-based Query Generators
- Shape Editors, Visualizations
- Declarative UIs
- IDE support
- Books
- Tutorials
- Talks and Presentations
- Specifications
- Legend
Software tools or libraries, sorted by programming language.
- Apache Jena SHACL - Supports SHACL Core, SHACL-SPARQL; docs;
Apache-2.0
license;Java
. - RDF4J SHACL Engine - Supports SHACL Core (without some property paths, see 5.0.3 improvements), SHACL-SPARQL, incremental validation; docs;
BSD-3-Clause
license;Java
. - TopQuadrant SHACL API 💰 - Supports SHACL Core, SHACL-SPARQL, SHACL rules; based on Jena;
BSD-3-Clause
license;Java
.- EU Interoperability Test Bed (ITB) - playground based on TQ API, docs: validate RDF data, SHACL shapes, DCAT-AP.DE
- Sparna SHACL playground - Free online suite of tools to work with SHACL; based on TQ API;
Java
- TopBraid SHACL API Extended - Fork of TopBraid SHACL API + added SHACL-JS based on GraalVM Polyglot; docs;
BSD-3-Clause
license;Java
. - shacl-js - SHACL API;
Apache
license;JavaScript
. Recommends migration tordf-validate-shacl
. ☠️.- playground - Browser-based testbed.
- rdf-validate-shacl - Supports SHACL Core; pure JavaScript validator on top of the RDFJS stack;
MIT
license;JavaScript
.- playground - Browser-based testbed.
- shacl-engine - Supports SHACL Core, SHACL-SPARQL; A fast engine for data provided as RDF/JS objects;
MIT
license;JavaScript
.- playground - Browser-based testbed.
- rdf-ext-cli - Command line tool for validation. Data and shapes can be given as file, URL, or SPARQL endpoint + query.
- SHACL for Ruby - A pure-Ruby library for working with the Shape Constraint Language to validate the shape of RDF graphs;
BSD-3-Clause
license;Ruby
. - maplib - High-performance RDF knowledge graph construction, SHACL validation and SPARQL-based enrichment.
Apache-2.0
license.Rust, Python
. But SHACL is not open source yet: lib/shacl/src/lib.rs saysunimplemented!("Contact Data Treehouse to try")
- rudof is a library that implements ShEx, SHACL, DCTAP, and other technologies in the RDF ecosystem. The library is implemented in Rust and also provides Python bindings.
Software tools or libraries, sorted by programming language.
- Apache Jena ShEx - Supports ShEx, ShExC; not supported semantic actions, EXTERNAL; docs;
Apache-2.0
license;Java
. - shexSpec/shex.js - JavaScript implementation of Shape Expressions;
MIT
license;JavaScript
.- playground - Browser-based testbed.
- ShEx-validator ☠️ - Standalone Node module with a command line interface;
MIT
license;JavaScript
. Built on top of ShExDemo- Validata ☠️ - Web-based UI to validate RDF against ShEx schemas;
MIT
license;JavaScript
. - playground1 (HW-SWeL)
- playground2 (W3C)
- Validata ☠️ - Web-based UI to validate RDF against ShEx schemas;
- rudof is a library that implements ShEx, SHACL, DCTAP, and other technologies in the RDF ecosystem. The library is implemented in Rust and also provides Python bindings.
- RDFminer - Discover SHACL shapes representative of an RDF data graph, by Wimmics;
CECILL-C
license;Java
. - SHACL Discovery Service - Discovery service for SHACL shapes/shape groups;
MIT
license;PHP
. - Shapes of You index - SPARQL queries, OWL/SKOS vocabularies, SHACL/ShEx shapes, indexed from public
git
repositories;MIT
license;Typescript
,Python
. - SHACL Play! Catalog - To see your shapes listed here, add them in the Shapes Catalog source file on Github.
- schema.org Shapes - Schema.org, converted to SHACL by TopQuadrant.
- Europarl Shapes - Application profiles for European Parliament & all related dataset-specific profiles.
- ShacShifter ☠️ - Shape shifter from SHACL to other formats (currently RDForms);
GPL-3.0
license;Python
. - SHACL To JSON Schema - SHACL-to-JSON-Schema translator;
Typescript
. - rudof supports conversion between different RDF Data modeling technologies using the
convert
command. - SHACL Play! JSON-LD context - SHACL-to-JSON-LD context generator;
Java
.
- SHACL Play! Converter - Converts between RDF schema formats. Has OWL-to-SHACL (open, semi-closed, closed).
- owl2shacl - OWL-to-SHACL conversion rules.
- TopQuadrant: OWL Axioms to SHACL Constraints 💰 - Commercial closed-source solution by TopQuadrant
- elevont/owl2shacl - A CLI tool that tries to convert simple OWL ontologies into SHACL shapes;
AGPL-3.0
license;rust
.
- shape-to-query - Generate SPARQL queries from SHACL Shapes; docs;
MIT
license;Typescript
. - SHACL Play! SPARQL - Generates SPARQL queries to extract RDF subset based on SHACL specification of the target dataset.
- Allotrope Shape Editor - The Shape Editor supports editing of shacl and shaclc files;
Apache-2.0
license;Java
. - SHACL Play! Tools - Edit & visualize SHACL;
LGPL-3.0 license
license;Java
.- SHACL in Excel - A SHACL editor from Excel.
- SHACL documentation - A documentation generator to print an application profile specified in SHACL.
- UML diagrams - A diagram generator to display an application profile specified in SHACL.
Data viewers/Editors based on shapes.
- shaperone - SHACL Shapes Form generator; docs;
MIT
license;Typescript
. - Sparnatural - Visual knowledge graph explorer with SPARQL, in the browser, configurable with SHACL; docs;
LGPL-3.0 license
license;Typescript
.
- Linked Data Extension - VS Code Extension for editing RDF files with embedded SHACL validator and SPARQL engine.
- SHACL Language Server - A VS Code extension providing language intelligence (diagnostics, hover tooltips, auto-completion, etc.) for W3C standard SHACL via the Language Server Protocol.
- Mentor RDF for VS Code - Code editing support for RDF, RDFS, OWL, SKOS, SHACL and SPARQL.
- SHACLC Language Server (source) - A VS Code extension providing language intelligence (diagnostics, hover tooltips, auto-completion, etc.) for CG standard SHACL Compact Syntax via the Language Server Protocol. MIT License.
- RDF and SPARQL - IntelliJ plugin with editor support for ShEx Compact syntax and SHACL validation.
- Validating RDF Data (2018) - The SHACL and ShEx book.
- Shapes applications and tools: ISWC'20 Tutorial - Main tutorial.
- The Many Shapes of SHACL by Holger Knublauch - LOTICO Talk, 18 Jun 2020.
- One Ontology, One Data Set, Multiple Shapes with SHACL by Tara Raafat - Connected Data London, 2019.
- An Overview of SHACL Shapes Constraint Language: Part 2 - TopQuadrant, 2017.
- An Overview of SHACL Shapes Constraint Language - TopQuadrant, 2017.
-
SHACL W3C Recommendations & Notes
- Shapes Constraint Language (SHACL) - W3C Recommendation, 20 July 2017.
- SHACL Advanced Features - W3C Working Group Note, 08 June 2017.
- SHACL JavaScript Extensions - W3C Working Group Note, 08 June 2017.
- SHACL Test Suite and Implementation Report - W3C Document 01 July 2019.
- SHACL Use Cases and Requirements - W3C Working Group Note 20 July 2017.
- Data Shapes Working Group - Re-chartered from Dec 2024 to Dec 2026 to update the specs. Join
-
SHACL Community Group Latest Drafts & Notes
-
SHACL-related specifications
- The Shape Topologies algorithm
- DASH Data Shapes - Platform-independent extensions of SHACL for common tasks. Stuff that could become an official standard in the future.
-
ShEx
- Shape Expressions Language 2.1 - Final Community Group Report, 8 October 2019.
- ShEx Primer - Draft Community Group Report, 7 December 2022.
- ShEx Text Suite and website - Version
[email protected]
, last release 5 October 2018. - Recommended Practice for Standard for Shape Expression Schemas - IEEE Computer Society P3330/D3, Draft 9 October 2024. Next-version spec with
EXTENDS
keyword. - ShEx Primer - Primer with
EXTENDS
keyword, Draft Community Group Report 25 May 2022.
- ☠️ : Each one denotes 5 years since last update (e.g., ☠️☠️☠️ denotes 15 years).
- 💰 : Denotes closed source commercial software.