Update and opportunities with SHACL

Dear Hydra group members,

I would like to draw your attention to the RDF Data Shapes Working Group 
[1] which has made some progress towards defining the Shapes Constraint 
Language (SHACL) [2]. For a quick tutorial, see [3].

While the language is not yet complete and far from being officially 
standardized, I believe most major design decisions have been made and 
the syntax is now reasonably stable.

We had previous discussions here why there could be some good synergies 
between SHACL and Hydra (and Linked Data Fragments). Among others, SHACL 
shapes could serve as structural definitions of web service input and 
output. There are two aspects where the SHACL group could need input and 
possibly contributions:

1) SHACL should have a standard JSON-LD Context. While I do understand 
JSON-LD, I believe someone with more JSON-LD experience could do a much 
better job in defining a standard @context file to make shape 
definitions as readable as possible - before everyone invents their own 
variation of this.

2) SHACL can interact with JavaScript! The WG has decided that 
structural constraints (and template macros etc) can be defined in any 
number of execution languages. SHACL comes built-in with SPARQL, but we 
explicitly leave the door open for JavaScript-based execution; either in 
conjunction with SPARQL or without SPARQL and even without any RDF at 
all. One example syntax had been outlined in [4]:

ex:MyShape
      sh:constraint [
          sh:message "The URL {?value} cannot be resolved for {?predicate}" ;
          sh:predicate ex:imageURL ;
          sh:jsExpression "helper.isResolvableMedia(value)" ;
          sh:jsLibrary "http://example.org/helper.js" ;
      ] .

(Imagine a corresponding JSON-LD syntax if item 1 is solved). The above 
would mean that a constraint violation is reported if the given 
jsExpression evaluates to false. Maybe it could be of interest to people 
here at Hydra to have a standard vocabulary to communicate such 
constraints to clients (or node.js servers).

While I am not officially speaking on behalf of the WG, I believe the 
group would welcome any volunteer who would like to work on a JavaScript 
extension document for SHACL, possibly as a separate WG deliverable in 
addition to the SPARQL stuff. A chance to get your name on a W3C 
publication. I am confident that such a JavaScript binding will evolve 
sooner or later anyway, but it would be a much stronger story for SHACL 
if it had these two language bindings from day 1.

Regards
Holger

[1] https://www.w3.org/2014/data-shapes/wiki/Main_Page
[2] http://w3c.github.io/data-shapes/shacl/
[3] http://www.topquadrant.com/technology/shacl/tutorial/
[4] 
https://lists.w3.org/Archives/Public/public-data-shapes-wg/2015May/0216.html

Received on Monday, 3 August 2015 04:00:22 UTC