ShEx
# ShEx

Shape Expressions (ShEx) est un langage pour valider et décrire des données selon le modèle Resource Description Framework (RDF).

Il a été proposé lors de l'atelier de validation RDF 2012 comme un langage concis et de haut niveau pour la validation de RDF.

Le ShEx peut être définie dans une syntaxe compacte conviviale appelée ShExC ou à l'aide de tout format de sérialisation RDF comme JSON-LD ou Turtle.

Le ShEx peut être utilisées à la fois pour décrire RDF et pour vérifier automatiquement la conformité des données RDF. La syntaxe de ShEx est similaire à Turtle et SPARQL tandis que la sémantique est inspirée des langages d'expression régulière comme Relax NG.

## Exemple

Cet exemple indique que les nœuds conformes à la forme Person doivent avoir :

* exactement une propriété schema:name avec une valeur de chaîne xsd:string,
* zéro ou plusieurs (*) propriétés schema:knows dont les valeurs doivent être conformes à la forme Person.

## Implémentations

* shex.js : JavaScript
* shaclex : bibliothèque Scala avec support pour Jena (framework) et RDF4J
* PyShEx : Python
* shexjava : Java
* Ruby ShEx : Ruby
* ShEx.ex : Élixir

## Aires de jeux et démos en ligne

* ShExSimple : Démo en ligne basée sur shex.js
* rdfshape : démo en ligne basée sur shaclex
