- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Thu, 10 Mar 2016 19:22:20 -0800
- To: Holger Knublauch <holger@topquadrant.com>, "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
On 03/10/2016 06:04 PM, Holger Knublauch wrote:
> On 10/03/2016 1:17, Peter F. Patel-Schneider wrote:
>> On 03/09/2016 12:46 AM, Holger Knublauch wrote:
>>> On 9/03/2016 18:17, Peter F. Patel-Schneider wrote:
>>>> I'm pretty sure that this fails in a number of places.
>>>>
>>>> It can break the shared variable connection for MINUS. (I think that FILTER
>>>> is OK, but I'm not sure.)
>>> Do you have an example for this?
>> SELECT ?this
>> WHERE { ?this ex:a ex:b MINUS { ?this ex:a ex:b } }
>
> Ok, this requires further thought. Thanks for bringing this up. In the worst
> case, we exclude the MINUS keyword - it is rarely used and work-arounds
> (FILTER) exists. Queries that use MINUS would be reported as error. There are
> precedents for this, e.g. we also don't support CONSTRUCT queries. Would this
> be an OK minimal solution for now? We could revisit this if there is spare
> time at the end of the WG.
MINUS and filter work differently.
>>>> The substitution can modify variables from different scopes, which will change
>>>> results.
>>> Do you have an example for this?
>> SELECT ?this ?that
>> WHERE { ?this ex:a ex:b
>> SELECT ?that WHERE { ?this ex:a ?that } }
>
> The definition states that substitution also happens in nested SELECTs. I
> believe this meets user expectations, and would be needed for cases like
> sh:minCount that use a nested SELECT. I don't quite see a problem with the
> above. Do you have data to illustrate why this would cause problems?
Because the ?this in the inner SELECT is a different variable. Before
substitution it would return any ?that that is the object of any ex:a triple.
After substitution it returns only those that have the substituted value as a
subject.
peter
Received on Friday, 11 March 2016 03:22:52 UTC