(03/12/2008 03:34:28 PM) matt:
agent oriented programming progresses somewhat slowly but i have made one major change to formalisms thats pretty interesting
(03/12/2008 03:35:16 PM) matt:
namely the separation of connective topology (ie the space-analog) from concurrency considerations (ie the time-analog)
(03/12/2008 03:35:54 PM) matt:
the formalism for space is now based on so called "ambients", where are beautiful in their simplicity despite being very robust
(03/12/2008 03:36:18 PM) matt:
ambients are merely things which may entered and exited along with a few other primitive operations
(03/12/2008 03:36:43 PM) matt:
essentially the formalism for the entire system might be summarized as follows
(03/12/2008 03:37:09 PM) matt:
imagine you have folders, sticky notes, and ants.. here are the rules
(03/12/2008 03:37:47 PM) matt:
ants may exist "on top of" or "under" a sticky note or folder
(03/12/2008 03:38:01 PM) matt:
sticky notes can be moved into or out of folders
(03/12/2008 03:38:25 PM) matt:
folders may be "inside" other folders
(03/12/2008 03:38:49 PM) matt:
sticky notes may be "inside" folders
(03/12/2008 03:39:36 PM) matt:
folders may be "opened", at which point the "contents" (including stickynotes, ants, and other folders) are transferred to the containing folder
(03/12/2008 03:40:22 PM) matt:
sticky notes may "transformed" into folders, at which point a new folder is created, and that sticky note is copied inside the new folder
(03/12/2008 03:41:12 PM) matt:
most of these operations are actually carried out by the ants in fact, but you dont necessarily have to think of it that way
(03/12/2008 03:41:39 PM) matt:
but all in all, its a simple metaphor, robust, and mostly accurate
(03/12/2008 03:42:23 PM) matt:
its simple to work with, because all the operations are local but easy to imagine global structure emerging out of it
(03/12/2008 03:44:10 PM) matt:
its sort of like the nested folders represent spacial structure, the sticky notes represent working data, and the ants represent the agents and imply autonomy and "activeness" whereas the other components are more or less passive
(03/12/2008 03:44:29 PM) davin:
ants:?, folders:?, stickies:?
(03/12/2008 03:44:41 PM) davin:
what do they correspond to? fill me in on lingo
(03/12/2008 03:45:14 PM) matt:
more bizarrely, its actually the case that folders, stickies, and ants can all be transformed into each other.. ie an active component may be thought of passive when its convenient and vice versa
(03/12/2008 03:45:42 PM) matt:
the ants are "agents", the folders and stickies are both "ambients"
(03/12/2008 03:46:06 PM) matt:
folders truthfully only differ from stickies in that stickies are folders of depth one
(03/12/2008 03:46:22 PM) matt:
or depth zero if you prefer
(03/12/2008 03:47:17 PM) matt:
my ambients are based on this: http://en.wikipedia.org/wiki/Ambient_calculus
(03/12/2008 03:48:00 PM) matt:
they include various changes to increase transparency and compatability with the agents
(03/12/2008 03:51:26 PM) matt:
the principals are so generalized its totally excellent.. one can imagine the ants/folders self-organizing in a goal oriented way, or you might think of the goal itself as being represented by a certain arrangement, such as "1 ant in every folder"
(03/12/2008 03:51:52 PM) matt:
or "move all stickies into exactly one folder", etc
(03/12/2008 03:52:39 PM) matt:
either one of those ideas by itself is sufficiently abstract to represent a large class computational problems
(03/12/2008 03:53:14 PM) matt:
i'm still struggling to integrate all these ideas into the boring shit i have to make for my day job
(03/12/2008 03:53:54 PM) matt:
its interesting trying to think of users on a social-networking site like facebook as ants, and individual urls as folders
(03/12/2008 03:54:39 PM) matt:
this is never done because normally its just too much state to try and keep track of, but with a good metaphor its easier
(03/12/2008 03:55:09 PM) matt:
ie, witness how facebook can tell you "which of my are online" but not "which of my friends are online AND viewing this same page"
(03/12/2008 03:56:59 PM) matt:
above should say "which of my *friends* are online"