- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Tue, 7 Mar 2017 12:47:03 -0800
- To: "public-rdf-shapes@w3.org" <public-rdf-shapes@w3.org>
The definition of pre-binding in SHACL continues to have problems. There are a couple of technical and probably minor problems with the current definition of pre-binding in SHACL. Pre-binding in SHACL depends on the notion of a fresh variable, but fresh variables are not defined in the SHACL document. Also, a fresh variable is generally defined as an arbitrary variable that is not mentioned elsewhere, for some notion of elsewhere. However, the function F appears to be defined on all (SPARQL) variables so there are no fresh variables. Both of these problems can probably be easily fixed, but they do need to be fixed. There is however a more serious problem with the current definition of pre-binding in SHACL. As stated above pre-binding uses the notion of fresh variables, which introduces a choice. There needs to be a demonstration in the SHACL document that this choice does not affect the result of queries before this definition of pre-binding can be safely used in SHACL. Note that SPARQL introduces new problems related to fresh variables. In most logics and in many programming languages, it can easily be shown that systematically replacing a variable with a fresh variable does not change the meaning of any isolated construct of the logic or programming language. This is not the case in SPARQL so results from logics and other programming languages cannot be completely reused so a new demonstration. These problems with the definition of pre-binding are separate from the issue that pre-binding makes unusual changes to the meaning of certain SPARQL queries. A good set of test cases will be needed to ensure that pre-binding is implemented in a interoperable manner in different SHACL-SPARQL implementations. Peter F. Patel-Schneider Nuance Communications
Received on Tuesday, 7 March 2017 20:47:37 UTC