The ability to deal with uncertain information is a simple requirement of everyday life. Historically most software systems have either ignored issues related to uncertainty or handled only a small subset of types and quantities. The characteristic of not explicitly accounting for uncertainty in the information they interact with, tends to render most software systems either brittle (they break when confronted with unexpected situations) or produce results for which the accuracy and/or trustworthiness is unknown.
Although the different forms of imperfect data often get lumped together under a single term, there are actually a number of different classifications with distinctly different characteristics