/* Subject 0440949. AI department, UvA. Assignment 4, knowledge systems: CSI
 * Andreas van Cranenburgh. Fri Nov  4 14:39:29 CET 2005.
 
 
 * this is my first attempt at [somewhat] Literate Programming [Knuth et al.],
 * ie. first document, then write code; (documentation > code) in any way
 * imaginable! Oh I break the rule, instead of really being *literate* I wrote
 * a C-like boolean expression, because I thought it would be more compact.
 * Hehe.
 
 * Also I find eXtreme Programming interesting [ http://c2.com ], but eh, on
 * your own most of the theory doesn't apply anyway :)
 * I did throw away my last-week version of the documentation, since my whole
 * idea changed. So ther's at least one XP idea?
 
 * Now for some action!
 *
 *	1. time and place, actors, actions and objects
 */

/* 1.1 Time
 * 	Time can be absolute or relative, and then qualitative or quantitative.
 * After some thinking, mostly how I can make it elegant, I'd like to try doing
 * purely relative reasoning, ie.:
 
 *   - reason with ints, that need only be *relatively* more or less
 	- their actual difference may be arbitrary
 	  (yes, preferably big, in order to quickly add lots of new events!).
 *   - store user-inputted time as reference, in string.
 *   - when adding new events to the database, consistency might be checked?
 *   -   re-order so that these "arbitrary values" remain ordered compared
 *	 to absolute time. though if we use bignums, this will practically not
 *	 be needed. let's not do the math right now :)
 */
 
 % implement here.
 
 /* 2: the Interface (related to 2)
    	note to self: that's probably the V of MVC?
  
  *  - to keep interface (see 5) simple, don't do graphics.
  *  - personal time management failure, lack of interest dictates CLI.
  *  - make it very, very easy/quick to use
  *  - every command is a letter.
  *  - context sensitive help one 1 line always printf'ed. 
 */
 
 % implement here.

 /* 2: the Timeline (related to 1.1)
    [I'm going to blatantly ignore the ordering of the ordered list, as given
    on the assignment; it doesn't make enough sense right now... I must be a
    confused professor? :) ]

  * - see CLI, above. thus: printf the list, one event per line.
  * - branches: interactively ask which branches to act upon!
  * - [but: visually show branches, eg. by indenting.]
 /*
 
 % implement here.
