ShEx

For the UK government body, see Shareholder Executive.

ShEx - Shape Expressions

Paradigm| 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; 6 years ago (2018-11-21)

Scope| Semantic Web
Implementation language| JavaScript, Scala
Filename extensions| shex, sx
Website| www.w3.org/community/shex/
Major implementations
shex.js,[1] Shaclex[1]
Influenced by
Turtle, SPARQL, 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 Turtle and SPARQL while the semantics is inspired by regular expression languages like RelaxNG.

## Example

[edit]

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

[edit]

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  | ?  | ?  | ?  | ?  | ?  | ?  | Yes  | ?

## Online playgrounds and demos

[edit]

* ShExSimple: Online demo based on shex.js
* rdfshape: online demo based on shaclex Archived 2018-11-19 at the Wayback Machine

## References

[edit]

1. ^ a b Labra Gayo, Jose Emilio; Prud'hommeaux, Eric; Boneva, Iovka; Kontokostas, Dimitris (2018). Validating RDF Data. Morgan & Claypool. p. 328\. ISBN 9781681731650.
2. ^ "Shape Expressions Language 2.0". 27 March 2017.
3. ^ "RDF Validation Workshop: Practical Assurances for Quality RDF Data".

## Further reading

[edit]

### Specification

[edit]

* 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

[edit]

* 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". Zenodo. doi:10.5281/ZENODO.1214521.
* 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.

## See also

[edit]

* SHACL
* Wikidata
* XML schemas

* v
* t
* e

Semantic Web

Background|

* Databases
* Hypertext
* Internet
* Ontologies
* Semantics
* Semantic networks
* World Wide Web

Sub-topics|

* Dataspaces
* Hyperdata
* Linked data
* Rule-based systems

Applications|

* Semantic analytics
* Semantic computing
* Semantic mapper
* Semantic matching
* Semantic publishing
* Semantic reasoner
* Semantic search
* Semantic service-oriented architecture
* Semantic wiki
* Solid

Related topics|

* Collective intelligence
* Description logic
* Folksonomy
* Geotagging
* Information architecture
* iXBRL
* Knowledge extraction
* Knowledge management
* Knowledge representation and reasoning
* Library 2.0
* Digital library
* Digital humanities
* Metadata
* References
* Topic map
* Web 2.0
* Web engineering
* Web Science Trust

Standards|

| Syntax and supporting technologies|

* HTTP
* IRI
* URI
* RDF
* triples
* RDF/XML
* JSON-LD
* Turtle
* TriG
* Notation3
* N-Triples
* TriX (no W3C standard)
* RRID
* SPARQL
* XML
* Semantic HTML

|

Schemas, ontologies and rules|

* Common Logic
* OWL
* RDFS
* Rule Interchange Format
* Semantic Web Rule Language
* SHACL

Semantic annotation|

* COinS
* GRDDL
* Microdata
* Microformats
* RDFa
* SAWSDL
* Facebook Platform

Common vocabularies|

* BIBFRAME
* BIBO
* DOAP
* Dublin Core
* MODS/MADS
* FOAF
* Schema.org
* SIOC
* SKOS

Microformat vocabularies|

* hAtom
* hCalendar
* hCard
* hProduct
* hRecipe
* hReview

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template