SHACL Support

SHACL has been approved as an official standard by the W3C. TopQuadrant has been playing an active role in that working group and is committed to supporting SHACL. While some SHACL features in TopBraid are mature, others are rather experimental. However, more and more features will be added in future releases.

To get started with SHACL, we recommend these tutorials and articles.

Getting Started with SHACL

The folder TopBraid/Examples contains a file schemashacl-violations.ttl that you can open to play with a some SHACL constraints defined on the well-known schema.org namespace. To get started with that file, open the SHACL Validation view and press the green constraint checking button, or switch to the Shapes view to see some SHACL definitions.

Hint: Activate the Hide system classes button in the upper right corner of the Classes view, to get a simplified view.

TopBraid suggests and supports a best practice that encourages users to use two different file types for their work with SHACL:

Files that include SHACL features are automatically opened with several SHACL-specific views, including the SHACL Validation that allows you to validate a graph.

There is a simple translation feature in Model > Convert to SHACL... that you may use to convert an existing RDFS or OWL model to SHACL. This wizard will try to use OWL restrictions and domains and ranges to add SHACL constraints to the classes in your model. In the wizard, you can select whether you want to keep these OWL and RDFS concepts. Make sure to not overwrite any important files - the wizard is at this stage rather experimental!

When you are working with an existing OWL and RDFS class and want to add SHACL constraints to that class, you can use the button Enable SHACL constraints for this class in the upper right corner of the form. This feature simply makes sure that the SHACL system library is imported, and that the class gets an (additional) type sh:NodeShape.

To create property constraints, use Create property constraint... from the context menu behind sh:property on the class forms.