  Detecting and exploiting similarities between seemingly distant objects is
without doubt an important human ability. This paper develops \textit{from the
ground up} an abstract algebraic and qualitative justification-based notion of
similarity based on the observation that sets of generalizations encode
important properties of elements. We show that similarity defined in this way
has appealing mathematical properties. As we construct our notion of similarity
from first principles using only elementary concepts of universal algebra, to
convince the reader of its plausibility, we show that it can be naturally
embedded into first-order logic via model-theoretic types.
