...
After Kevin chooses where and when they are starting and ending the day (probably at wherever they are sleeping, possibly at a transport node), we then consider the problem to be one of choosing which "events" he wants to experience. An event has a location, a set of timespaces when it can occur, a minimum and maximum duration, and a location. "violin concerto" concert for example, will be located at the theater, could occur only from 7pm until 9pm and have both a minimum and maximum duration of 2 hours. "Visit to Uffizi" however, could occur from 9am until 6pm and have a minimum duration of 1 hour and a maximum duration of 3 hours.
<object-model.pdf>pdf (I couldn't figure out how to insert PDFs into the document)>
We first allow the user to explore the city in space and time and choose those events that interest him. He can search for events both by navigating the map and by reading through a schedule of those that are occurring in the city. For those he is interested in, rate them to add them to his list of possible events. He can create events himself such as "lunch with long-lost cousin at Garibaldi Square."
<possible-events.pdf>pdf (pretend Florence is NYC)>
Next, Kevin can schedule the events he *actually* wants to attend. He is presented with an empty schedule filled with 'downtime' and his list of events, sorted by an order that is a function of his rating, the distance from the hotel, and the earliness when the event can take place. At any time, the user can auto-fill the whole day, or a section of downtime.
...
When Kevin wakes up and sees that he is late, he needs only remove the event he had scheduled in the morning, any event other event he decides is less important than it, and either autocalc again, or manually re-add events to his schedule.
| Learnability | Efficiency | Safety |
---|---|---|---|
Pros |
|
|
|
Cons |
|
|
|
Design 3: Schedule-specific constraint solver
...