Validate RDF data

This utility validates the conformity of an RDF dataset against a SHACL specification. You need to provide the RDF data to be validated, either by uploading it, providing its URL, or copy-pasting inline RDF. You also need to provide the SHACL shapes in the same ways, or by selecting them from the shapes catalog.
For an example, you can try validating the Shapes catalog data against the Shape "SHACL Play! Catalog Shapes" in the list below.

  Input Data

Remove Select file Change
You can select multiple files. Supported extensions : .rdf, .ttl, .n3, .trig. Other extensions will be treated as RDF/XML. You can also send zip files.
URL of an RDF file. Same extensions as file upload are supported.
Supported syntaxes : Turtle, RDF/XML, JSON-LD, TriG, TriX, N-Quads. We recommend Turtle.

  Shapes

Remove Select file Change
You can select multiple files. Supported extensions : .rdf, .ttl, .n3, .trig. Other extensions will be treated as RDF/XML
To have your Shapes in the catalog, add it to the catalog Github repository.
URL of an RDF file. Same extensions as file upload are supported.
Supported syntaxes : Turtle, RDF/XML, JSON-LD, TriG, TriX, N-Quads. We recommend Turtle.

  Options

Check this option to verify that each shape uses only properties explicitely declared in the shape file. In other words, this verify that are no misplaced properties, and ensures no properties other than those explicitely listed are present in the data. It makes validation operate in "closed world". Technically, this adds a sh:closed true; sh:ignoreProperties (rdf:type); on every NodeShape that is not closed already.
Enable this option to also include in the validation report the "root" cause of a validation result triggered by an sh:or, sh:and, sh:node or sh:qualifiedNodeShape.
Use this option if the data to be validated contains ontology triples and you need to apply OWL-Micro inference on the data before it is validated. /!\ Inference can take a very long time
By default, SHACL Play! will resolve the targets of the shapes in the SHACL file. This enables to check that every resource in the data graph is targeted by at least one shape, and that each shape targets at least one resource. Those checks appear as extra validation results in the report. This can take a long time if the file is large. If you want to disable this behavior, check this option.

Documentation

If the RDF dataset to be validated is online, and if and only if the SHACL shapes are registered in SHACL Play shapes catalog, you can provide direct links to a validation report with the following URL : https://shacl-play.sparna.fr/play/{shapes-catalog-entry-id}/report?url={URL of the RDF data file to validate}

For example : https://shacl-play.sparna.fr/play/shaclplay-catalog/report?url=https://raw.githubusercontent.com/sparna-git/SHACL-Catalog/master/shacl-catalog.ttl

Generate shields.io validation badges

This validation utility is available as an API to generate shields validation badges for dataset. The API URL will return a JSON data that can be tunneled to https://img.shields.io/endpoint?url=.

This works if and only if the SHACL shapes are registered in SHACL Play shapes catalog.

The API general synopsis is https://shacl-play.sparna.fr/play/{shapes-catalog-entry-id}/badge?url={URL of the RDF data file to validate}

For example : https://shacl-play.sparna.fr/play/shaclplay-catalog/badge?url=https://raw.githubusercontent.com/sparna-git/SHACL-Catalog/master/shacl-catalog.ttl

The full badge URL is then https://img.shields.io/endpoint?url=https%3a%2f%2fshacl-play.sparna.fr%2fplay%2fshaclplay-catalog%2fbadge%3furl%3dhttps%3a%2f%2fraw.githubusercontent.com%2fsparna-git%2fSHACL-Catalog%2fmaster%2fshacl-catalog.ttl

When you insert the badge on your Github repository, you can use it to link to the "/report" URL (see above). See the Shapes catalog repository README for an example

Extra target resolutions

By default, SHACL Play! will resolve the targets of the shapes in the SHACL file. This means that all targets specifications found in the shapes graph are explicitely resolved, and an extra triple is generated for each target found : https://shacl-play.sparna.fr/ontology#hasFocusNode, with the node shape as subject and the target resource as object. Based on this extra target resolution triple, 2 extra checks are applied:

  • "Data coverage": SHACL Play! will check that every resource in the input data graph has been targeted by at least one shape. Resources not targeted by any shape will be returned as Warnings in the validation report. This is useful to check that the input data graph does not contain resources that should not be present. It is similar to "unit tests coverage" in software testing, where you want to make sure that all your code is covered by tests.
  • "Shapes coverage": SHACL Play! will check that every shape in the shapes graph has at least one target. Shapes without any target will be returned as Warnings in the validation report. This is useful to make sure that the target specifications of each shape resolved correctly, and to avoid situations where no violations are returned, not because the data is valid, but because the initial target specification was wrong (like a typo in a sh:targetClass URI).
    In particular if no shapes at all matched a target, the validation report will contain a specific title and status : "Shapes did not match anything !"

You can disable this extra target resolution by checking the "Avoid resolving targets" checkbox in the options above. When this option is checked, SHACL Play! will not resolve the targets of the shapes in the SHACL file, will not generate the extra triples, and will not apply the extra checks.