1. A method for obtaining situation-aware recommendations in a computer system, the method comprising: receiving a definition of a set of context variables to be considered, wherein the context variables represent categories of situations in which the computer system can be; receiving a definition of a set of activities to be considered, wherein the activities represent activities that can be performed using the computer system; for each context variable to be considered, receiving a definition of a set of states to be considered, wherein the states represent situations in which the computer system can be; for each context variable to be considered, receiving a specification of first probability distributions for each corresponding state; for each context variable to be considered, for each activity to be considered, receiving a specification of second probability distributions to represent the likelihood of the activity being performed in the corresponding context; generating usage data using the first second probability distributions; and applying a situation-aware recommendation process using the generated usage data.