Actions and Prototypes
A theme that arose repeatedly at Tinderbox Day Seattle was automatically setting prototypes. Tinderbox gives you several ways to choose prototypes -- or to choose them for you. It's interesting to examine some of the nuances you can express.
For example, let's suppose that some of your notes are Projects, and that a Project contains notes that describe Tasks you want to do.
- You can simply let the user choose the appropriate prototype from the pop-up menu of prototypes. This can be especially nice if you have several different kinds of Tasks -- Errands, PhoneCalls, TopicsForReflection. Ryan Holcomb reminded us that it's easy to arrange your prototypes so your popup menu is grouped intelligently.
- The OnAdd action of the prototypical Project can assign the prototype to all notes added to that project. This says, "A project normally contains Tasks", or "Most of the things in a project are Tasks". The user can choose a different prototype (e.g. Errand) when appropriate.
- The Agent Action of an agent that scans projects can automatically assign prototypes based on the content and context of a note. An agent can say, for example, that any task that is not complete, not delegated, and mentions groceries is a ShoppingErrand.
- A Rule enforces a requirement; it's a constraint. Where OnAdd means, "a note inside this project is normally a Task", a Rule would mean, "Everything inside the container must be a Task."
The bottom line is that it's easy to build smart notebooks that can gradually adapt to the way you'd like to work. The prototypical Project can say, "notes added here are Tasks"; the project for DecemberDinnerParty can say, "notes added here are ShoppingTasks", and the note about asking your sister in Seattle to send a salmon can be automatically flagged by an agent as a PhoneTask. You don't need this power for every project (or weblog post, or research note), but it's nice to know it's there.