- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Sun, 14 Jun 2015 21:12:41 -0700
- To: Holger Knublauch <holger@topquadrant.com>, "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 06/10/2015 05:58 PM, Holger Knublauch wrote:> On 6/11/2015 10:35, Peter F. Patel-Schneider wrote: >> On 06/10/2015 04:40 PM, Holger Knublauch wrote: >>> On 6/11/15 3:07 AM, Peter Patel-Schneider wrote: [...] >>> ignoring the complications of variable scoping in SPARQL (e.g. with >>> sub-selects), >> I am not aware of any problems arising from variable scoping. > > For example, your > > FILTER { SELECT ?this WHERE { ?this <path> ?V } GROUP BY ?this HAVING ( > COUNT (DISTINCT ?V) = <cardinality> ) } > > doesn't work because the inner SELECT will use new bindings for ?this - > it's evaluated from the inside out. Beside, the FILTER syntax isn't > valid at all. Yeah, I forgot to add EXISTS after FILTER. My bad. The inner SELECT is generating bindings for ?this that are then used in a MINUS construct so it should work out. At least it does in my test implementation, using Virtuoso as the SPARQL engine. >>> ignoring how to specify things like Xor (which together with >>> qualified cardinality restrictions may be very problematic), >> I am not aware of any issue with respect to XOR and qualified >> cardinality restrictions. > > Your approach outlines how to map AND and OR (UNION), so how would you > do Xor and QCRs? One way to do XOR would be to expand s1 XOR s2 as ( s1 MINUS s2 ) OR ( s2 MINUS s1 ) QCRs can be done as something like FILTER EXISTS { SELECT ?this WHERE { ?this <path> ?V . FILTER EXISTS { SELECT ?this as ?V { <shape> } } } GROUP BY ?this HAVING ( COUNT (DISTINCT ?V) >= <minCardinality> ) } [...] peter -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJVflC5AAoJECjN6+QThfjzrjkIALXzR5GBHnBWArQlsmol8cc5 B+cmboxYenavjURqqnbdum2vbc0PbghU0s5YLwpArHvWjSFhT/KZ2F6SZZtIelTs sECvhzieGXQEo5FYq6b6Uptdnusk6Zw6uvWg0pcC10kUpktCyCGDB0Vl2cUn2r+1 woFG0mbpiTbAVIQI3iAtnihNICpAhuHA7M0sahEsU4zueNJXzKd5r7ctt2Orb4HL DQ93nwn3l5+MCs/zv0HQG0/RtUF7KDw3Yw9tPNzGzHBDkFXqxwm5QYTI5xBSGgjW jJCpv/ZTfq2EUoz9hDGgDA5cdrUeQaTvHnUWvbLv50O0fruT6MQQNKSu8gbHS1Y= =wM7O -----END PGP SIGNATURE-----
Received on Monday, 15 June 2015 04:13:17 UTC