(Not) Thinking About Dates

This is something I have been puzzling over, related to a comment made in the original discussion that started me working on this application:

The thing that has struck me about the timeline apps I have looked at is not just that they expect real dates, but that they expect complete dates to be attached to events when you make them. I just can’t think of a single story idea of mine where events happen in a particular year in either world or galactic history. And even if events do eventually get pinned down in this way as things get worked out, this is information I would rarely have at the time that I wanted to be starting to work with a timeline app. (Most of that info will never get pinned down–Pick an arbitrary piece of fiction and try to tot up its events in your favorite timeline app without having to make up a lot of fake date/times!)

I think that the problem is that timelines apps are all modeled on “real” timelines which map out a preexisting set of events that happened in real time. This gets things backwards if you are making up the story. Creating a timeline as a fiction development tool is more like creating a timeline with variously (and perhaps wildly) partial information.

Since reading that comment, I have been mindful of not burdening the user by requiring too much date/time information at once. if the user creates events by double clicking in the right spot, and then by dragging the events in the interface rather than editing them manually in the Inspector, they can just about get away with not thinking about dates at all.

Which is what we want. The information is there when they are ready, but they are not forced to use it.

The current release displays dates alongside each event, something which will be able to be configured on the fly in future releases. This should help reduce the date-dependent model further.

But I still wonder if there is more that could or should be done in this regard. The same commenter continued:

So, in my dream timeline app, placing an event on a timeline only implies that it stands in certain before/after relations to the other events on the line. For those events for which it was pertinent, I would be able to specify that this event occurred at a certain interval of time before/after some other event on the line. For those events where it was pertinent, I would be able to specify that event’s relation to an underlying (actual or fantasy) calendar–this might take the form of specifying a complete date, but might not be so specific–my calendar might divide years into seasons and those into months, say, and so pegging an event to a calendar might simply consist in saying that it happens in the spring or the spring of a certain year, etc. For those events with significant duration, I would be able to specify a fixed duration, or just min/max duration range, or to give it wholly unspecified duration.

In the discussion that followed, I labelled this idea “Fuzzy Dates”. The inclusion of “date format” in timeline settings, where you could display just a decade or a year initially, and increase the precision as your timeline gets more developed, was a nod towards this.

If we follow fuzzy dates through, what we are looking to create is a set of rules that allow us to narrow down a suitable time for an event to occur:

Must be November + One week after Event A (where Event A has its own rules saying it must be in October) = First week of November.

As we add more information, or create ties with more events, the event date/time becomes more specific:

Must be November + One week after Event A (where Event A has its own rules saying it must be in October) + Must be a Tuesday + Follows the barfight = after 11pm, November 4th

It is a powerful idea. Create a bunch of events with a bunch of constraints, and get the software to automatically resolve the events to suitable dates as you drag other events around the timeline.

But how do you explain predicates to a writer in the throes of planning, when even thinking about dates is an unnecessary burden?

How do you design an interface that makes creating formal rules seamless?

How do you mix fixed dates with fuzzy dates? Will it force you to define too many relationships between events in order to work, so the user wastes time forming rules instead of planning novels? How should you respond to a fuzzy date being dragged elsewhere in the calendar?

And what do you do when all the constraints don’t add up, and the timeline cannot be resolved at all?

I don’t know the answers. But I will spend a lot of time thinking about them. Comments encouraged – leave them below, or on the discussion board.

3 thoughts on “(Not) Thinking About Dates

  1. I would suggest two things.

    First, that you would want to think about constraints that could be indicated by a user without their having to set explicit rule conditions at all. Instead, think about “implied rules” resulting from simple graphical moves and/or parameter-setting on the part of the user.

    Second, it seems to me that the incomplete temporal information can be usefully broken down into two kinds. Absolute and relative. I am thinking of absolute time information as a (possibly partial) specification of how an event relates to an underlying time frame (which in the current AT is simply a segment of a real calendar). Relative time information would be a (possibly incomplete) specification of how an event relates temporally to some other event(s).

    If you see things this way, some graphical techniques of specification suggest themselves. Say, a modified drag from one event to another as a user’s way of indicating a desire to specify something about the temporal relation between them. (Since the events are already on a timeline, they already have a before-after orientation, of course.) Imagine a panel coming up then enabling the user to specify a relative temporal distance–using the fixed time frame’s hierarchy of temporal cycles–for a simple calendar framework, that is just a fancy way to say user can specify a number of minutes, hours, days, weeks, months, and/or years. The program will know some things about the limits that can be set–given the existing conditions of the time line–these might be reflected somehow in the panel and could be used to constrain the settings the user could set. So, that is a quick idea of how a user might establish some relative time info without rule-making.
    For absolute time info, we can imagine a similar strategy, but this time via a modified drag from an event to a place on the underlying time frame (however that is represented).

    There would be lots to think about for sure. Some of the challenges would be addressed by figuring out what would be a good internal representation of this sort of partial absolute and relative temporal information. Once one had that, some questions about how you would re-calibrate when the user did certain things would be come clear, I think.
    But prior to any puzzles about data representation, I guess one would need to figure out what would even be wanted in various circumstances–what it would be sensible to do with this sort of info when the user changes various things in their timeline in normal ways. For example, what to expect to happen when a user simply drags an event with some existing constraints to some other place in the sequence of events? I think I can see some sensible things to say here, but it definitely would want thinking through.

    [I take it that this is a “thinking project” for the nonce, so I did not try to couch this in terms of AT. I will leave it to your good judgement and programming ingenuity whether there is something useful in thinking about this stuff for the future development of AT.]

  2. Thanks for all your work, Matt.

    This is exactly the direction I was hoping Aeon would move towards. I’ve tried it twice already and had to give up each time because I was being forced to think about dates before I was ready, as I was still in ‘fuzzy’ mode.

    Again, I agree with the distinction between Absolute Time ‘fixed dates’ and Relative Time (Before, During or After) ‘fuzzy dates’.

    I’m not a programmer, and so I don’t know whether it’s possible or not, but I would love to be able to map and move Events and Entities in the ‘Relative Time’ space of Aeon’s Central Pane, and be able to drag a ‘callout line’ to fix an event to an ‘AbsoluteTime’ in the Context Bar on the left, only when absolutely necessary.

    I’d probably even have it invisible most of the time, switching it on only when needed for visual confirmation and clarity of any particular sequencing, spending most of my time in the Central ‘Relative’ Pane.

    I also like the idea of being able to enter times as ‘five minutes later’ ‘two weeks earlier’ ‘the previous year’ etc.

    Once again, thanks for all your hard work, and enormous appreciation for your openness to feedback and change.

    • Ike,
      Thank you for the comments. I have actually been trying to think of a good way to represent events without dates – dotted lines and the like. I think the idea of having free-floating events that are not tied to the timeline might be another good way to go about it. You would have some events tied, where the date is important, and the rest of the events organised relatively around them.

      I will need to think about the implications for the story arc view I am currently developing, but it is well worth considering.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s