  In real life, data are often of poor quality as a result, for instance, of
uncertainty, mismeasurements, missing values or bad inputs. This issue hampers
an implicit yet crucial operation of every database management system: equality
testing. Indeed, equality is, in the end, a context-dependent operation with a
plethora of interpretations. In practice, the treatment of different types of
equality is left to programmers, who have to struggle with those
interpretations in their code. We propose a new lattice-based declarative
framework to address this problem. It allows specification of numerous
semantics for equality at a high level of abstraction. To go beyond tuple
equality, we study functional dependencies (FDs) in the light of our framework.
First, we define abstract FDs, generalizing classical FDs. These lead to the
consideration of particular interpretations of equality: realities. Building
upon realities and possible/certain answers, we introduce possible/certain FDs
and give some related complexity results.
