ShEx (Shape Expressions) ist eine Sprache zur Beschreibung und Validierung von RDF-Graphen. ShEx wurde 2012 auf dem RDF-Validierungs-Workshop vorgeschlagen und von Eric Prud'hommeaux und weiteren Forschenden geprägt. Das Standardwerk Validating RDF Data (Labra Gayo, Prud'hommeaux, Boneva, Kontokostas, 2018) behandelt ShEx und SHACL gemeinsam.
Schemas und Konformität
Ein ShEx-Schema legt fest, welche Subjekte, Prädikate und Objekte mit welchen Kardinalitäten und Datentypen in einem Graphen vorkommen dürfen. Die kompakte, eigenständige Syntax erinnert an reguläre Ausdrücke. Ein einfaches Shape verlangt etwa, dass jeder Nutzer einen Namen als Zeichenkette und ein Alter als Ganzzahl besitzt:
:UserShape {
:name xsd:string ;
:age xsd:integer
}
Ein Graph gilt als konform, wenn er alle Bedingungen des Schemas erfüllt.
Einsatz und Abgrenzung
ShEx wird unter anderem in Wikidata und zur Validierung von API-Daten eingesetzt. Der wichtigste Unterschied zu SHACL: SHACL drückt seine Shapes selbst als RDF-Graph aus, ShEx nutzt eine eigene Syntax. In RDF 1.2 lassen sich mit RDF-star auch Aussagen über Aussagen als Terme modellieren — Shapes können solche Strukturen beschreiben und validieren. Verwandte Grundlagen: Semantisches Web, SPARQL, Triple Store.