
Hello all, ... and I thought this was easy: find a way to represent a "schedule", i.e. a thing which assumes different values at different days. It turned out I don't know what a schedule is. What is the formalism behind "This train leaves at 11:00 every day except sundays (where it doesn't run at all), except on Easter Sunday where it leaves at 11:10"? I do not even need to know the "most compact" representation, just some representation which is reasonably compact and which can be translated into human language. So far I believe a Schedule is a function which takes a day and retuns a Value. If I had this function, I could easily list values for all days within given interval of days. But the inverse should also be possible. Given a List of (Day, Value) pairs, I should be able to construct a Schedule. The reason why I am interested in this is the following: "On every Monday I take a trip from A to C. To do so, I need to take two trains and change trains in B". So I have to consider the two train schedules to decide whether or not my itinerary will work. So I kind of have a Constraint which is scheduled itself (every Monday) and which depends on two other Schedules. The Constraint can be satisfied for some days and violated for others. I want to find out when it is violated (within a finit interval of days) without having to enumerate all days and check each day individually. And most importantly I want to specify the Constraint without referring to individual days, just like I did in the quoted sentence above. You may also say, I want to lift the fine world of relational algebra to a world where things change over time, i.e. assume different values at different days. This seems to be such a common planning problem! You face it every time you deal with things which are not constant over time, and it becomes a nightmare when you deal with relationships between them. Still I could not find anything useful on the net. How can the world turn at all without having this solved? -- Martin