SHACL (Shapes Constraint Language) ist eine vom W3C standardisierte Sprache zur Beschreibung und Validierung von RDF-Graphen. Seit dem 20. Juli 2017 ist SHACL eine W3C-Empfehlung. Mit SHACL legt man Shapes (Formen) fest: Bedingungen, die Knoten eines Graphen erfüllen müssen. Ein SHACL-Prozessor prüft jede Bedingung und meldet Verstöße als Validierungsfehler.
Shapes und Constraints
Ein Shape bündelt mehrere Constraints. Typische Bedingungen: Eine Eigenschaft muss genau einmal vorkommen (minCount, maxCount), der Wert muss von einem bestimmten Datentyp sein (datatype, vgl. RDFS) oder zu einer Klasse gehören (class). Für komplexere Prüfungen gibt es SHACL-SPARQL: Bedingungen, die in SPARQL formuliert werden. Besonders elegant ist, dass Shapes selbst als RDF-Graph modelliert und in Turtle geschrieben werden.
Praxis
SHACL sichert die Datenqualität in Wissensgraphen und Triple Stores, erzeugt automatisch Formulare und prüft Daten aus Schnittstellen. Auch Graphen, die mit RDF-star Aussagen über Aussagen enthalten, lassen sich validieren: Die Constraints werden auf Knoten angewendet, und Quoted Triples sind in RDF 1.2 ganz normale Terme.
Die wichtigste Alternative zu SHACL ist ShEx (Shape Expressions), eine kompaktere Validierungssprache mit eigener Syntax, die 2012 auf dem RDF-Validierungs-Workshop vorgeschlagen wurde. Das Buch Validating RDF Data (2018) stellt beide Ansätze gegenüber. Verwandte Grundlagen: Semantisches Web, Ontologie.