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
- Shape Discovery Tools and Collections
- Shape Convertors and 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
- TopQuadrant SHACL API Extended - Fork of TQ 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
withPython
bindings. But SHACL is not open source: lib/shacl/src/lib.rs saysunimplemented!("Contact Data Treehouse to try")
💰 - rudof - Implements ShEx, SHACL, DCTAP, and other technologies in the RDF ecosystem; library and CLI;
Apache
andMIT
licenses;Rust
withPython
bindings. docs.
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 - Implements ShEx, SHACL, DCTAP, and other technologies in the RDF ecosystem; library and CLI;
Apache
andMIT
licenses;Rust
withPython
bindings. docs.
- 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.
Also see Polyglot Modeling tools (issue in the YAML-LD project). Sometimes called SchemaOps; the name "schema salad" is used sometimes ;-)
- 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
. - shapiro - SHACL to JSON-Schema, HTML.
- rudof - Converts between different RDF Data modeling technologies: SHACL, SHEX, DCTAP, UML diagrams, HTML documentation. docs.
- 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.
- elevont/owl2shacl - A CLI tool that tries to convert simple OWL ontologies into SHACL shapes;
AGPL-3.0
license;rust
. - LinkML (Github and more repos) - Input is YAML; output is SHACL, ShEx, JSON Schema, JSON-LD context and instances, SPARQL, OWL, GraphQL, Pydantic Python, ProtoBuf, various documentation formats;
Apache
licensePython
. - TNO Semantic Treehouse - Has SHACL input and output. Used as a Vocabulary Hub in dataspaces.
- TopQuadrant: OWL Axioms to SHACL Constraints - Commercial, closed-source solution 💰.
- Ontotext SOML - input is YAML, output is GraphQL schema with querying and mutations, SHACL shapes for validation. Commercial, closed-source 💰.
- 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 to Documentation - A documentation generator to print an application profile specified in SHACL.
- SHACL to 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.