Monday, April 19, 2004

Power was lost on the weekend, so all context for debugging was lost. This is annoying, as it takes some time to set these things back up again, and without the results of previous work still present, it takes a while to remember everything needed just to get the system running again. However, I hadn't written in this log on Friday, so catching up has been helpful in remembering what is needed.

After running the program in the debugger I tried printing the contents of the anonymous hashmaps kepts by Jena and JRDF, but both came up empty. Since this worked when the JRDF object belonged to AbstractDatabaseSession rather than the graph, I suspected that I may not have been re-using the correct objects. Before moving them back I tried logging all insertions into these hashmaps. Surprisingly I discovered that insertions into JRDF were not also going into Jena. A stacktrace showed that AbstractDatabaseSession does anonymous node insertions on directly into JRDF, which avoided Jena. I fixed this, and included a small refactor so that Nodes are always passed to the JRDF methods for anonymous nodes, rather than the String for the URI of the node.

After the above was complete, the code again runs to completion, now with anonymous nodes being handled correctly. Unfortunately, this did not fix the erroneous results we received earlier. The only difference now is that the anonymous node which was shown before, is now being shown as "null". So the bugs here were unrelated. It looks like I need to trace the inferencing to see why it includes the SLR intersection object for this query.

No comments: