Oookay, I'm long overdue for an AI
update. The big new project for the past couple of months has been
the concept of things being in states, and the ability to track those
states.
Way back in Diary #7, I introduced a
division between short-term (or naturally temporary) information and
long-term (or essentially static) information. It's a bit like the
division between things you would use estar and ser for
in Spanish, though it doesn't follow those rules strictly.
Previously, Acuitas simply discarded any short-term information he
was given, but I've added a new memory area for saving this
knowledge. Like the existing semantic memory, it works by storing
linked concept pairs … with the difference that the short-term ones
are stored with a time stamp, and Acuitas anticipates that they will
“expire” at some point.
The existing feature that allows
short-term and long-term information to be distinguished (by asking
questions, if necessary) can also grant Acuitas an estimate of how
long a temporary state is likely to last. While idling, he checks
the short-term state memory for any conditions that have “expired”
and adds questions about them to his queue. Then, when next spoken
to, he may ask for an update: is the information still correct?
I also added the ability to parse and
store a new type of information link – location – along with the
associated “where is” questions. Location links are three-ended
so that they can store not only a thing and its location, but also
spatial relationships between two things (under, over, in, beside,
etc.).
One reason for slow progress is that I
have been spending time on even more refactoring. The semantic
memory, the episodic memory, and various other things all had their
own file formats and file editing/access functions – uh, yeah, that
was dumb. So I have written (and thoroughly tested) some more universal file management code, and have been slowly working on converting everything to
a common format.
Until the next cycle,
JS