> ?loc :workLocationVolume ?bvol .?loc :locatedInWork ex:Work1 ;
>:startVolume ?startvol .
> FILTER ((?bvol = ?volnum && NOT EXISTS {?loc :workLocationEndVolume
> ?evol}) || (?bvol <= ?volnum && EXISTS {?loc :workLocationEndVolume
> ?evol FILTER (?evol <= ?volnum)}))
>
> In terms of
Hello,
Thanks for your answer
> (conditional
> (bgp
> (triple ?loc :locatedInWork ex:Work1)
> (triple ?loc :startVolume ?startvol)
> )
> (bgp (triple ?loc :endVolume ?endvol)))
Am I right in understanding that in that case ?loc
= 2 && ?endvol >= 2) ||
> (!BOUND(?endvol) && ?startvol = 2))
>
> which works fine, but is slow to the extreme (about 8s) due to the
> very large amount of triples with the :endVolume property. Now, I
> understand the slow performance is sort of expected due what'
ol .
> OPTIONAL { ?loc :endVolume ?endvol . }
> FILTER ((BOUND(?endvol) && ?startvol <= 2 && ?endvol >= 2) ||
> (!BOUND(?endvol) && ?startvol = 2))
>
> which works fine, but is slow to the extreme (about 8s) due to the
> very large amount of triple
he :endVolume property. Now, I
understand the slow performance is sort of expected due what's
referred to as the bottom-up semantics of SPARQL. My understanding is
that the first thing that will get evaluated will be ?loc :endVolume
?endvol which will return a huge amount of results.
Here are a few questi