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


Reply via email to