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
- 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
. - TopBraid SHACL API - Supports SHACL Core, SHACL-SPARQL, SHACL rules; based on Jena;
BSD-3-Clause
license;Java
.- RDF validator - The EU Interoperability Test Bed (ITB) playground based on TQ API; validate any RDF with SHACL Shapes.
- SHACL shapes validator - The EU Interoperability Test Bed (ITB) playgrounds based on TQ API; validate SHACL Shapes itself.
- Sparna SHACL playground - Free online suite of tools from Sparna to work with SHACL; based on TQ API.
- 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")
- 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;
- RDFminer - Web application to automatically discover SHACL shapes representative of an RDF data graph, by Wimmics;
CECILL-C
license;Java
. - SHACL Discovery Service - Example implementation of a 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
.
- schema.org Shapes - Schema.org, converted to SHACL by TopQuadrant.
- 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
.
- owl2shacl - OWL-to-SHACL conversion rules.
- shape-to-query - Generate SPARQL queries from SHACL Shapes; docs;
MIT
license;Typescript
.
- Allotrope Shape Editor - The Shape Editor supports editing of shacl and shaclc files;
Apache-2.0
license;Java
.
Data viewers/Editors based on shapes.
- 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.
- 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.
-
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.