- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Fri, 9 Dec 2016 08:09:11 -0800
- To: Andy Seaborne <andy@apache.org>, public-rdf-shapes@w3.org
Remember that the definition of pre-binding is as in the SHACL document, Appendix A. The definition involves evaluation of SPARQL variables, which does not happen when matching BGPs. peter On 12/09/2016 02:19 AM, Andy Seaborne wrote: > Peter, > > On 09/12/16 02:46, Peter F. Patel-Schneider wrote: > ... >> The SPARQL definition here uses the following SPARQL query >> >> SELECT DISTINCT $this ?value >> WHERE { >> $this ex:p ?value . >> FILTER NOT EXISTS >> { $value rdf:type/rdfs:subClassOf* $class . } >> } >> >> with this pre-bound to ex:n and class pre-bound to ex:c. >> >> According to the SHACL document >> evaluating this SPARQL query will produce a non-empty solution sequence, >> namely >> { { (this, ex:m), (value,ex:l) } } >> because >> $this ex:p ?value . >> will produce the set of solutions >> { { (this, ex:n), (value,ex:m) } , >> { (this, ex:m), (value,ex:l) } } > > I don't follow this part. > > On just the " $this ex:p ?value ." pattern, why, when ?this=ex:n, is the > second solution present? > > I think there is only one match. { { (this, ex:n), (value,ex:m) } } > and then the overall result is zero rows. > > > For both proposal-A and proposal-B used for pre-binding, that seems to be the > case. $this is restricted before the FILTER is applied. > > (NB I acknowledge that Proposal-A is not proposed for pre-binding and wasn't > suggested as such) > > Andy >
Received on Friday, 9 December 2016 16:09:47 UTC