- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Thu, 4 May 2017 11:12:41 -0700
- To: public-rdf-shapes@w3.org
This is a formal objection to the definition of pre-binding approved by the working group in its meeting of 3 May 2017 and in the SHACL Editor's Draft current as of 4 May 2017 (but with date indicated as 11 April 2017). Pre-binding has never had a suitable definition in SHACL. Problems with pre-binding have been known to the working group since at least June of 2015. The current definition of pre-binding has multiple documented problems. The only change to pre-binding from Candidate Recommendation has been to paper over some of these problems by excluding large numbers of SPARQL queries from SHACL-SPARQL. These exclusions remove many useful SPARQL queries from SHACL-SPARQL, including the SPARQL query that provided an alternative definition of the semantics of sh:equals that was in the SHACL document. Although this is nowhere stated in the SHACL document, it appears that the indent of the current definition of pre-binding is to make the binding of a pre-bound variable available everywhere in the query except for in sub-queries that do not project the variable. The current definition of pre-binding tries to achieve this by two main mechanisms. The first mechanism is renaming of variables in sub-queries that are not projected to fresh variables. The second mechanism joins pre-bound bindings to all basic graph patterns, property path expressions, and named graph patterns in the query. However, the current definition of pre-binding fails to achieve the goal stated above. The bindings of pre-bound variables are sometimes not available when needed. This causes problems in a large number of queries, many of which have been already pointed out. Also the pre-bound bindings are available even in places where none of the variables are in scope. This causes problems for MINUS. The pre-bound bindings are available in sub-queries, which prevents bottom-up evaluation of sub-queries. The recent changes to the pre-binding section of the SHACL document do not actually change the definition of pre-binding to fix these problems but instead just exclude many SPARQL queries from SHACL, presumably to keep only non-problematic queries. The exclusions are very broad, and eliminate many queries that do not have any problems for the current definition of pre-binding. The exclusions are so broad that they even exclude the example potential definitional query for sh:EqualsConstraintComponent that was in the SHACL document. The solution to the continuing problems with pre-binding is not to exclude more and more of SPARQL but to either fix pre-binding so that it works correctly or eliminate pre-binding from SHACL. Papering over these problems, even if possible, is not a suitable solution. Peter F. Patel-Schneider Nuance Communications
Received on Thursday, 4 May 2017 18:13:19 UTC