Monday, January 28, 2008

The Starcat project: a thought

The Starcat project is an intriguing project being developed at San Diego State University. It's hard to distill exactly what they are doing, or how (most papers are short, and they have numerous different application areas, but there are two which are not), but one idea strikes my as fantastic.

They have decoupled the slipnet (long-term memory), the workspace (short-term memory), and the coderack. They are using patterns of observers, and there is a mediator between these systems that takes care of their interactions.

One thing that I have some objections to is the idea of having "codelet events carry[ing] the necessary instructions to drive the system" in each of its now-decoupled subsystems. I cannot argue vigorously against this yet, but I envision "general" codelets which will be applicable to any domain. Until we can get these general codelets running in a system, it stays as a hunch. And even then, their idea may be complementary to ours (we just don't know yet). As strange as it may sound, I think that a fixed set of codelets should exist, in any domain. Of course, the accidental characteristics of each domain will still need to be programmed, but I feel that responsibility won't be placed on the codelets.

And here's what I find it fascinating: first, these subsystems can be implemented in parallel. Moreover, a change in the code of one of the system should not introduce bugs (the cognitive model may go haywire, of course, but it should still work as a program). The systems are encapsulated, and you can study and manipulate them in isolation from each other. I find this idea fascinating, and Kudos to their team!