Cool, thanks guys, will give this a try tomorrow :-) Rob
On Tue, Jan 29, 2013 at 7:36 PM, Andy Seaborne <[email protected]> wrote: > On 29/01/13 18:21, Alexander Dutton wrote: > >> >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> Hi Rob, >> >> On 29/01/13 18:11, Rob Walpole wrote: >> >>> Am I doing something wrong here? >>> >> >> The short answer is that the inner SELECT is evaluated first, leading to >> the results being calculated in the second case in a rather inefficient >> way. >> >> In the first inner SELECT ?deselected is bound, so it's quite quick to >> find all its ancestors. >> >> In the second, all possible ?deselected and ?ancestor pairs are returned >> by the inner query, which are then (effectively) filtered to remove all >> the pairs where ?deselected isn't whatever it was BINDed to. >> >> Here's more from the spec: >> <http://www.w3.org/TR/**sparql11-query/#subqueries<http://www.w3.org/TR/sparql11-query/#subqueries> >> >. >> >> I /think/ ARQ is able to perform some optimisations along these lines, >> but obviously not for your query. >> > > Spot on. > > If you remove the inner SELECT it should do better. > > > > { BIND(...) AS ?readyStatus) > BIND(...) AS ?deselected) > ?export rdfs:member ?member . > ?export dri:username "rwalpole"^^xsd:string . > ?export dri:exportStatus ?readyStatus > OPTIONAL > { ?deselected (dri:parent)+ ?ancestor > > FILTER EXISTS {?export rdfs:member ?ancestor } > } > } > > but technically this is a different query so it'll depend on your data as > to whether it is right. > > http://www.sparql.org/query-**validator.html<http://www.sparql.org/query-validator.html> > > Andy > > > >> Best regards, >> >> Alex >> >> PS. You don't need to do URI("http://?"); you can do a straight IRI >> literal: <http://?> >> >> - -- >> Alexander Dutton >> Developer, Office of the CIO; data.ox.ac.uk, OxPoints >> IT Services, University of Oxford >> -----BEGIN PGP SIGNATURE----- >> Version: GnuPG v1.4.13 (GNU/Linux) >> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ >> >> iQEcBAEBAgAGBQJRCBMZAAoJEPotab**D1ANF7Fb0H/**jeCedjfCIuhI2KTNETOcrVR >> Gvl8N4k9ty4AN4F0xFKA3kcGCTR2CI**pgz/**hez6BM5s8mDqLc7ViNPXWxbUhb4kHh >> fxVuuoYBr13VhGnyufvWFliFeT3xSV**LO3eDUilzoja2pvH/Cx/**sNQvcHbi2Ee+EX >> MoWLyfSvtSGY2rXDmMAXvBz49wgk42**mC2Bsr5ptNUfXWQjzz6BXp5SxTKADy**SBXG >> Tm/**DmqGRclHxw233I6EcB9lKfDytTosVu**gH1Yl0BGEHiFPL2/wkkB+**AZiLIwCmb/ >> cy+Y8/**I9PlD4onvYlDMRmP169HQVYt849Skx**5/TnTyjMBBNIgQiE8+cj0a/oDc8= >> =ZQec >> -----END PGP SIGNATURE----- >> >> > -- Rob Walpole Email [email protected] Tel. +44 (0)7969 869881 Skype: RobertWalpolehttp://www.linkedin.com/in/robwalpole
