Well from a high level view -- anything your robot knows and remembers is data in its little databanks.
In its memory banks for an square, item, robot, wall, terminal, device, smelly hobbit, etc the raw data would be something like this:
- The known properties of it, when last seen.
- Coordinates for the last place I detected it?
- Turnstamp for last time I detected it.
I think that pretty much covers it. I might be missing something you'd really need but with robust queries those are the only things you need to associate in other data
for example:
QRYDFN for Where might I productively look for some butter?
SELECT coordinates
FROM items INNER JOIN squares
ON items.coordinates = squares.coordinates
WHERE items.lastseen = squares.lastseen
AND items.name = "BUTTER";
Note: 'last' is semi-ambiguous. What 'last' means depends on whether the robot is able to distinguish between two things that are the same (the game can, but should the robot be able to depends on many factors. Perhaps 'he' has a digital prong that sprays RFIDs on everything 'he' finds, but more likely it's only able to positively* distinguish things based on where they are unless they're transmitting an ID that your robot is scanning.) So for things that he can identify uniquely, 'last' refers to the last time he knew where a particular thing was, whereas if he can't uniquely identify a particular thing 'last' means (more or less) the last time he 'saw' a thing of type at a particular.
(I say 'positively' because if he knows things about the thing he might be able to make an even fuzzier match than 'location' (I mean, if an assault rifle is where you last saw an assault rifle, that doesn't ACTUALLY mean it's the same assault rifle) and for anything that has non-default properties that are visible to the robot this might make for a pretty decent match, although I'd say it's questionable whether the robot should really be considered to 'know' as much about objects as we're presented with in-game, especially about EVERYTHING that he's ever seen. Maybe after the player looks at the object it's not too unreasonable to think that he knows that the hover unit is at 29/30 integrity, but honestly if he can really, really do that it's surprising all the things he can't do. I'm not saying take that data away, but if you implemented what I'm suggesting here I could see an argument for having some corruption in the reports, especially for older data)