Anyone want a cat-vacuuming job?
Feb. 10th, 2010 10:08 pm(Also posted at the 9and60ways community. Comments welcome in either location.)
green_knight has a journal entry longing for a piece of novel-planning software that may not exist, but that I coincidentally found myself longing for on the same day she posted it. Here are some notes I've thrown together on the idea (inspired in part by
green_knight's sketch and in part by my own vision). If the text below sounds a little stilted, it's because I was using it to play with my new speech recognition software (see previous post) and -- like most people -- I talk differently from how I write.
The problem to be solved is keeping track of a complex set of both independent and interdependent factors underlying a story. The simple part of this is keeping a timeline of the events as they occur. The complex part is keeping track of multiple themes and multiple threads of events that might interact with each other.
Types of programs that I've seen that approach this problem before tend to assume that you have a fixed timeline in mind already and you're simply keeping track of events as they occur on it. But given the way I work, I often know a sequence in which certain events need to occur or certain prerequisites for some event or consequences from it, but don't necessarily have those events fixed at particular time points yet. So what I need is something in the way of elastic timelines where certain parts of them can be tacked down in a particular time but other parts may need to flop free until I have a reason for aligning them with some particular time point or other event.
So I have this vision of something equivalent to project planning software, but where the sequences of events are much more flexible in how they are organized in the program. (The problem with existing project planning software for this type of project would be expanding it for calendars that don't match our real world.) Visualize a calendar with a number of parallel timelines, each one representing a particular thread of story, either in terms of events and their consequences or in terms of the development of a particular aspect of the story, for example a romantic relationship or the collection of clues to solve a mystery. The essential aspect of each thread is that the events on it are sequenced relative to each other. That sequence can either involve a fixed time span such as events that need to happen a particular amount of time apart from each other, or simply be a sequential chronology that doesn't depend on exact time spans.
Any given event on the thread can be tied down to a particular point on your calendar and in fact I think you'd have to have at least some point on the thread tie down to a particular date for it to exist on the calendar at all, but the rest can remain unspecified. The only restriction on tying events on the thread to your timeline is that once you've established the relative chronology of the thread, that can’t be violated in assigning timepoints without first editing the structure of the thread.
Threads can either exist independently or two or more threads could merge at some point to join a single thread as when multiple people join up and take a particular journey together, or the threads can branch, if for example in the simplest case, you have a party of people where they split up and do separate things.
Types of "events" can include (as examples):
* states
* actions or experiences (i.e., things that happen at a particular timepoint)
* processes (i.e., things that happen over a timespan)
"Events", in addition to their basic description, can be tagged with sets of properties:
* participants (I’m visualizing a way to set up a menu of your known characters)
* location
* "type" as defined above
* key props that are present (i.e., inanimate “participants”)
* prerequisites or consequences (these define the sequence) and any specifics of the temporal relationship to previous or consecutive events (e.g., if one of your events is a birth, then getting the parents together for the conception involves a specific relative time relationship)
* whether the event involves merging or branching threads
A thread can be defined by a set of actions, but can also be defined by a participant, or location. That is, even if you set up your threads as sequences of “what happens” with the above properties, you can then extract emergent threads based on “what are all the things character X is involved in?” or “what are all the things that happen in location Y?”
In addition to being able to examine location or character-based emergent threads, for any given time point or time span you can get a status report on all threads or on a default or a defined subset. This status includes before and after states and any events in the time span. So, for example, when you’re writing a scene at time X in location Y, you can extract a summary of who’s there and what needs to happen.
No, I'm not going to figure out how to write the program. But it would be a nice thing to have to deal with the vast and growing file of working notes on the WIP.
The problem to be solved is keeping track of a complex set of both independent and interdependent factors underlying a story. The simple part of this is keeping a timeline of the events as they occur. The complex part is keeping track of multiple themes and multiple threads of events that might interact with each other.
Types of programs that I've seen that approach this problem before tend to assume that you have a fixed timeline in mind already and you're simply keeping track of events as they occur on it. But given the way I work, I often know a sequence in which certain events need to occur or certain prerequisites for some event or consequences from it, but don't necessarily have those events fixed at particular time points yet. So what I need is something in the way of elastic timelines where certain parts of them can be tacked down in a particular time but other parts may need to flop free until I have a reason for aligning them with some particular time point or other event.
So I have this vision of something equivalent to project planning software, but where the sequences of events are much more flexible in how they are organized in the program. (The problem with existing project planning software for this type of project would be expanding it for calendars that don't match our real world.) Visualize a calendar with a number of parallel timelines, each one representing a particular thread of story, either in terms of events and their consequences or in terms of the development of a particular aspect of the story, for example a romantic relationship or the collection of clues to solve a mystery. The essential aspect of each thread is that the events on it are sequenced relative to each other. That sequence can either involve a fixed time span such as events that need to happen a particular amount of time apart from each other, or simply be a sequential chronology that doesn't depend on exact time spans.
Any given event on the thread can be tied down to a particular point on your calendar and in fact I think you'd have to have at least some point on the thread tie down to a particular date for it to exist on the calendar at all, but the rest can remain unspecified. The only restriction on tying events on the thread to your timeline is that once you've established the relative chronology of the thread, that can’t be violated in assigning timepoints without first editing the structure of the thread.
Threads can either exist independently or two or more threads could merge at some point to join a single thread as when multiple people join up and take a particular journey together, or the threads can branch, if for example in the simplest case, you have a party of people where they split up and do separate things.
Types of "events" can include (as examples):
* states
* actions or experiences (i.e., things that happen at a particular timepoint)
* processes (i.e., things that happen over a timespan)
"Events", in addition to their basic description, can be tagged with sets of properties:
* participants (I’m visualizing a way to set up a menu of your known characters)
* location
* "type" as defined above
* key props that are present (i.e., inanimate “participants”)
* prerequisites or consequences (these define the sequence) and any specifics of the temporal relationship to previous or consecutive events (e.g., if one of your events is a birth, then getting the parents together for the conception involves a specific relative time relationship)
* whether the event involves merging or branching threads
A thread can be defined by a set of actions, but can also be defined by a participant, or location. That is, even if you set up your threads as sequences of “what happens” with the above properties, you can then extract emergent threads based on “what are all the things character X is involved in?” or “what are all the things that happen in location Y?”
In addition to being able to examine location or character-based emergent threads, for any given time point or time span you can get a status report on all threads or on a default or a defined subset. This status includes before and after states and any events in the time span. So, for example, when you’re writing a scene at time X in location Y, you can extract a summary of who’s there and what needs to happen.
No, I'm not going to figure out how to write the program. But it would be a nice thing to have to deal with the vast and growing file of working notes on the WIP.