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