ShEx
Data Validation | |
Designed by | Eric Prud'hommeaux, Iovka Boneva, Jose Emilio Labra Gayo, Gregg Kellogg, Shape Expressions W3C Community Group |
---|---|
Stable release | 2.1
/ November 21, 2018 |
RelaxNG | |
Influenced | |
SHACL |
Shape Expressions (ShEx) [2] is a data modelling language for validating and describing a Resource Description Framework (RDF).
It was proposed at the 2012 RDF Validation Workshop[3] as a high-level, concise language for RDF validation.
The shapes can be defined in a human-friendly compact syntax called ShExC or using any RDF serialization formats like JSON-LD or Turtle.
ShEx expressions can be used both to describe RDF and to automatically check the conformance of RDF data. The syntax of ShEx is similar to
RelaxNG
.
Example
PREFIX : <http://example.org/>
PREFIX schema: <http://schema.org/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
:Person {
schema:name xsd:string ;
schema:knows @:Person * ;
}
The previous example declares that nodes conforming to shape Person
must have one property schema:name
with a string value and zero or more properties schema:knows
whose values must conform with shape Person
.
Implementations
Project | Programming language | Version | Latest release | Compatible ShEx version | Features | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
value checking | cardinality | manifest shapemap | imports | external shapes | annotations | semantic actions | |||||
ShEx.ex | Elixir | v0.1.4 | 2020-10-13 | ? | ? | ? | ? | no | no | no | no |
Ruby ShEx | Ruby | 0.7.1 | 2022-01-29 | 2.0 | ? | ? | ? | ? | ? | ? | yes |
shexjava | Java | none | none | 2.0 | ? | ? | ? | ? | ? | ? | ? |
PyShEx | Python | v0.8.1 | 2022-04-14 | 2.0 | yes | yes | no | no | ? | ? | ? |
entityshape | Python | 0.0.2 | 2023-06-24 | ? | yes | yes | no | no | no | no | no |
shaclex | Scala | 0.1.70 | 2020-11-02 | ? | ? | ? | ? | ? | ? | ? | ? |
shex.js | JavaScript | v1.0.0-alpha.26 | 2023-04-25 | ? | ? | ? | ? | ? | ? | ? | ? |
Online playgrounds and demos
- ShExSimple: Online demo based on shex.js
- rdfshape: online demo based on shaclex Archived 2018-11-19 at the Wayback Machine
References
- ^ ISBN 9781681731650.
- ^ "Shape Expressions Language 2.0". 27 March 2017.
- ^ "RDF Validation Workshop: Practical Assurances for Quality RDF Data".
Further reading
- Specification
- Prud'hommeaux, Eric; Boneva, Iovka; Labra Gayo, Jose Emilio; Kellogg, Gregg, eds. (2018). Shape Expressions Language Specification. W3C Draft Community Group Report.
- Labra Gayo, Jose Emilio; Prud'hommeaux, Eric; Boneva, Iovka; Kontokostas, Dimitris (2018). Validating RDF Data. Morgan & Claypool.
- Other
- Thornton, Katherine; Solbrig, Harold; Stupp, Gregory S.; Labra Gayo, Jose Emilio; Mietchen, Daniel; Prud'hommeaux, Eric; Waagmeester, Andra (2018-04-07). "Using Shape Expressions (Shex) To Share Rdf Data Models And To Guide Curation With Rigorous Validation". )
- Katherine, Thornton. "Using ShEx to Investigate Data about Software and File Formats in Wikidata | Software Preservation Network (SPN)". www.softwarepreservationnetwork.org. Retrieved 2023-06-24.