On 26 May 2009, at 13:54, Simon Schenk wrote: > Am Dienstag, den 26.05.2009, 13:12 +0100 schrieb Axel Polleres: > >> When thinking about subqueries in FILTERs instead of just as >> UNSAID/NOTEXISTS, I had rather thought about use cases where the >> subquery appears in a complex filter expression... >> >> >> E.g. let's say you look for persons who don't have an email address >> (foaf:mbox) but an foaf:mbox_sha1sum or a foaf:homepage. >> >> >> SELECT ?x >> { ?x a foaf:Person >> FILTER ( ! EXISTS{ ?x foaf:mbox [] } >> && ( EXISTS{ ?x foaf:mbox [] } >> || EXISTS{ ?x foaf:homepage [] } ) ) >> } >> >> >> How'd you write that with the non-filter version? How'd you write >> that >> with the non-filter version? Probably here a version with UNION and >> UNSAID instead would also not look much nicer. > > SELECT ?x > { ?x a foaf:Person . > UNSAID {?x foaf:mbox []} . > { { ?x foaf:mbox_sha1sum } > UNION > { ?x foaf:homepage [] } > } > } Or SELECT ?x { ?x a foaf:Person . ?x ?prop [] . UNSAID { ?x foaf:mbox [] } FILTER(?prop = foaf:mbox_sha1sum || ?prop = foaf:homepage) } - Steve -- Steve Harris Garlik Limited, 2 Sheen Road, Richmond, TW9 1AE, UK +44(0)20 8973 2465 http://www.garlik.com/ Registered in England and Wales 535 7233 VAT # 849 0517 11 Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10 9ADReceived on Tuesday, 26 May 2009 13:22:24 UTC
This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:00:54 UTC