Blank Node Assignment in Inserts inconsistent with autocommit
It appears that the binding of variables to blank nodes when inserting
statements behaves differently depending on whether autocommit is turned
on for the session. If I have autocommit turned on and execute the
following iTQL commands:
create <rmi://localhost/server1#test>; insert <test:subj> <test:pred> $x $x <test:value> 'o1' into <rmi://localhost/server1#test> ; insert <test:subj> <test:pred> $x $x <test:value> 'o2' into <rmi://localhost/server1#test> ; select $s $p $o from <rmi://localhost/server1#test> where $s $p $o;
Then I see that the variable "x" is bound to different blank nodes in
each of the two insertions, and the resulting model has 4 statements.
This is the behavior (behaviour?) that I would expect.
However, when I turn autocommit off prior to the first insertion, and
turn it back on after the second insertion, then I see that the variable
"x" is bound to the same blank node in each of the insertions,
resulting in 3 total statements in the model, which came as a bit of a
surprise to me. Is this the expected behavior in that situation?
Updated by Andrae Muys - over 15 years ago
- Status changed from New to In Progress
Updated by Paula Gearon over 15 years ago
While it is unexpected behavior, it is also exactly what some people would like to have, as there is no way to re-reference an inserted blank node without doing a select/insert.
So do we fix it, or document it?