- 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