Re: ISSUE-68 and ISSUE-131: sh:hasShape and pre-binding

On 06/11/2016 02:33 PM, Dimitris Kontokostas wrote:
> 
> 
> On Fri, Jun 10, 2016 at 4:21 PM, Peter F. Patel-Schneider
> <pfpschneider@gmail.com <mailto:pfpschneider@gmail.com>> wrote:
> 
>     Pre-binding and sh:hasShape form a large part of the meaning of SHACL.  They
>     are not just part of the extension mechanism in SHACL but are used in the
>     definition of the core of SHACL.
> 
>     In Section 1.5 there is
> 
>       This specification uses parts of SPARQL 1.1 in the normative definition of
>       the semantics of the SHACL Core constraints and scopes.
> 
>       SPARQL variables using $ marker represent external values that must be
>       pre-bound in the SPARQL query before execution.
> 
>       Some SHACL constraints are defined with the use of the sh:hasShape
>       function.
> 
>     In Section 4 there is
> 
>       The SPARQL definitions in this section also assume the existence of a
>       built-in SPARQL function sh:hasShape.
> 
>     Then pre-binding shows up in the normative definition of every core
>     constraint component and sh:hasShape shows up the normative definitions of
>     sh:not, sh:and, sh:or, sh:shape, and sh:qualifiedValueShape.
>     It is possible to implement the core of SHACL without using sh:hasShape and
>     pre-binding but this implementation will be implementing something that is
>     defined in large part by sh:hasShape and pre-binding.
> 
> 
> Hi Peter, 
> 
> Could these core components be defined in the spec only with prose or would we
> need another way (like a query generation algorithm)?

It is certainly possible to make the normative definitions of the core
constraint components be prose.  However, then that prose has to be carefully
crafted so as to be precise and unambiguous.  The current textual definition
boxes are generally acceptable, but some, e.g., sh:nodeKind, are rather too
informal.  As well, there are often three places where portions of the meaning
of a core constraint component is given in text - the introductory paragraph,
the parameters block, and the textual definition.  It would be much preferable
to only have one, normative textual definition.

[...]

peter

Received on Saturday, 11 June 2016 21:47:24 UTC