On 10/26/2012 8:02, Leonard Jacuzzo wrote:
Hi list,
As a follow up to my previous question about SPIN not working the way
it used to, I am wondering where I can find a brief list of 'dos and
don'ts' regarding the new syntax requirements for the SPARQL engine in
TBC.
I am not aware of other restrictions apart from the BIND ordering issue.
In the old days the Jena parser allowed BINDs to show up in any order
because the semantics were such that if the variable on the right side
of the BIND is already bound, then the BIND (aka LET) becomes a
comparison. This however is not what the official SPARQL 1.1 spec ended
up with.
One important change recently has been that FILTERs are more
aggressively pushed to the end of the surrounding block. This means if
you had
?a my:property ?b .
FILTER (?b > 42) .
?other my:other ?b .
then this gets executed as
?a my:property ?b .
?other my:other ?b .
FILTER (?b > 42) .
In order to take more control of the ordering, you could introduce extra
blocks, e.g.
{
?a my:property ?b .
FILTER (?b > 42) .
}
?other my:other ?b .
which will be executed from the inside out and do the FILTERing before
the second BGP. This can drastically change performance and sometimes
even correctness of your queries.
If you run into other queries that no longer work for you, please feel
free to post them to the list.
HTH
Holger
--
-- You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary
Network (EVN), TopBraid Composer, TopBraid Live,
TopBraid Ensemble, SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en