Tuesday, November 29, 2005

The "Associator"

The Goo just needs to provide a simple mechanism to stick Things together. As to what Things it can stick together, it should be as agnostic as possible (apart from the mighty Perl). It should provide an easy way for users to plug in their own Things and action handlers. Ideally action handlers could be written in any language, not just Perl.

A Thing is really just a "handle" on something in your environment: a file, a module, a script, database entity, a url, a log etc. A Thing is an artefact in your environment that you need to perform actions on. At the moment we have three types of Things: FileThing, DatabaseThing and a Thing. This covers an awesome number of artefacts but we also need to deal with Things at the application layer so here are a few more: URLThing, EmailThing and ApplicationThing.

The mechanism to stick Things together needs to firstly capture the trail of actions as we context switch between Things in our mental working zone. The TrailManager looks after recording the temporal associations between Things. But we also want to traverse the structural associations between Things too. It is the job of the "Associator" to distill and traverse the relationships between a Thing, its environment, and its creator.

0 comments: