On 02/08/12 18:41, Rob Vesse wrote:
What exactly is the difference between these two?

As far as I can glean from the code OpAssign has the older LET style semantics 
whereas OpExtend is the newer standard BIND semantics

Is that the only difference and are they essentially interchangeable?

Rob


Yep -

OpAssign = LET
OpExtend = BIND

and have different effects if the variable is already bound.

BIND -> should have been a static syntax error.

LET logical assignment means that same value lets through the row, and different value -> remove row (c.f. FILTER). Much better design :-)

We also do algebra->synatx conversion so keeping them apart is needed for that.

So not quite interchangeable. For equality optimization translation, which is used is not really important but it used BIND version as being strict "SPARQL".

        Andy

Reply via email to