You are here

In the pipeline...

I've been doing a great deal of thinking about meta-cognition lately and what it would take to implement a general meta-cog capacity. It's no easy feat.. it requires variablized slot names, chunk-types and buffer references. P* gets kind of close, but not close enough.

Unfortunately, supporting these level of variablization has required some heavy refactoring to the ICondition and IAction classes, which now make indirect references to an IRequest (javadoc forth coming). The IRequest is an implementation of ACT-R's (lisp) differentiation between adding a chunk to a buffer and making a request to the module through the buffer. This change should make things a bit easier to understand for those that are well versed in the request terminology.

Since this refactoring is so extensive (it affects most buffers and modules), I'm taking the time to clean but a few other irritations in the code base. The request and condition side of things has been completed (and tested) and I'm updating the modules and buffers currently. After that, the actions and more testing.

While these particular refactorings won't have any major impacts on performance, they will make it easier to maintain compatibility with some of the stranger elements of ACT-R (buffer overwrites? come on. What happened to encode on remove?). However, these other refactorings I'm sneaking in should help reduce the overall memory footprint, transient allocations, and make the future migration to Java RTS much easier.

And now back to transforming my dissertation into something someone might actually want to read.