The task of storing a phone number in an address book seems pretty trivial on the surface, but it has stumped me for years. The issue, of course, is not storing the number itself, but rather representing the context in which it applies. The usual approach is to pigeonhole everyone into the common cases -- work, home, and cell, or maybe a flexible list of tagged numbers. But what if I want my address book program to understand me (enough to give me the right number at the right times) when I say that John's number during August will be 555-1234 between 6 and 9pm except on days that it is raining or if I am calling from out of state?