SHACL abstract syntax or functional specification

One of the already approved requirements is that SHACL should be a higher
level language.


To do that, my understanding is that we have to define an abstract syntax
or functional specification which describes the main constructs of the
language.


Most language specifications are defined based on that abstract syntax. For
example:


RDF Abstract Syntax and concepts (http://www.w3.org/TR/rdf11-concepts/)

SPARQL (http://www.w3.org/TR/sparql11-query/#sparqlDefinition)

OWL (http://www.w3.org/TR/2012/REC-owl2-syntax-20121211/)


I proposed an abstract syntax for SHACL here:


http://labra.github.io/Haws/shacl/


which is of course open to comments/feedback.


There are multiple advantages of defining an abstract syntax for describing
a language like separation of concerns, allowing the language designers to
concentrate on the language concepts instead of syntactic details,
identification of possible redundant constructs, etc.


I also proposed that the Shacl spec should have a section about the
abstract syntax.


However, I found this answer from Holger:


“I don't think any Abstract Syntax is needed or helpful. SHACL is already
self-contained using SPARQL.”


I start this as a separate thread to remark that this is for me a very
important topic. I really don’t understand why having an abstract Syntax is
not needed for Shacl or why it will be unhelpful.


If the reason is that SHACL is self-contained using SPARQL, then my
understanding is that we are not defining a higher level language at all.


-- 
-- Jose Labra

Received on Monday, 2 March 2015 05:14:55 UTC