Shape Expressions

estándar técnico

Shape Expressions (ShEx) es un lenguaje para validar y describir conjuntos de datos RDF. Fue desarrollado con el objetivo de proporcionar una sintaxis legible por humanos para OSCL Resource Shapes.[1]

Shape Expressions (ShEx)
Desarrollador(es)
ShEx W3C Community Group
https://www.w3.org/community/shex/ y http://shex.io/
Información general
Extensiones comunes shex, sx
Paradigma Validación de datos
Apareció en 2013
Diseñado por Jose Emilio Labra Gayo
Iovka Boneva
Eric Prud'hommeaux
Gregg Kellogg
ShEx W3C Community Group
Última versión estable 2.1 (21 de noviembre de 2018 (5 años, 5 meses y 5 días))
Implementaciones Javascript, Scala
Influido por Turtle, SPARQL, RelaxNG
Ha influido a SHACL

El lenguaje fue descrito en la ponencia Shape expressions: an RDF validation and transformation language, publicada en Proceedings of the 10th International Conference on Semantic Systems, SEMANTICS 2014. En junio de 2014 el lenguaje fue presentado como parte del W3C. El W3C Data Shapes Working Group comenzó en septiembre de 2015. No tardó mucho en que el grupo se subdividiese otros dos: el dedicado a ShEx y el de SHACL. En 2016, el ala ShEx formó el ShEx Community Group. En abril de 2017 liberó ShEx 2 con un manual básico ―primer―, la especificación semántica y suite de pruebas con implementación de reportes.[1]

En ShEx coexisten diferentes formatos de serialización: ShExC, una sintaxis compacta y amigable; ShExJ, una sintaxis abstracta basada en JSON-LD; y ShExR, una representación RDF derivada de la sintaxis de JSON-LD.[1][2]

Las expresiones ShEx pueden ser utilizadas tanto para describir datos RDF como para comprobar automáticamente la conformidad de los datos. La sintaxis de ShEx es similar a Turtle y SPARQL, mientras que la semántica está inspirada por lenguajes de expresiones regulares como RelaxNG.[1]

Ejemplo editar

PREFIX : <http://example.org/>
PREFIX schema: <http://schema.org/>

:Persona {
 schema:name  xsd:string   ;
 schema:knows @:Persona   * ;
}

En el ejemplo anterior se declara que los nodos que conformen una Persona deben tener la propiedad schema:name con una valor del tipo cadena y una o más propiedades schema:knows con un valor que corresponda con una Persona.

Referencias editar

  1. a b c d Labra Gayo et al., 2018, «Chapter 4 Shape Expressions».
  2. «Shape Expressions Language 2.1». shex.io. Consultado el 5 de febrero de 2019. 

Bibliografía editar