In libmunin’s Context a Song is a set of attributes that have a name and a value. For example a Song might have an artist attribute with the value Amon Amarth.
Apart from the Attributes, every Song has a unique ID.
A distance is the similarity of two songs or attributes a and b expressed in a number between 0.0 and 1.0, where 1.0 means maximal unsimilarity. Imagining a point space, two points are identical when their geometric distance is 0.0.
The Distance is calculated by the DistanceFunction.
A DF is a function that takes two songs and calculates the Distance between them.
More specifically, the DF looks at all Common Attributes of two songs a and b and calls a special DF attribute-wise. These results are weighted, so that e.g. genre gets a higher precedence, and summed up to one number.
The following must be true for a valid DF, when \(D\) is the database:
\(D(i, j) = D(j, i) \forall i,j \in D\)
\(D(i, i) = 0.0 \forall i \in D\)
\(D(i, j) \leq D(i, x) + (x, j)\)
A Rule associates certain songs, or one single song with other songs or another single song. The strenght of the association is given by the rating of the rule, which is technically calculated as:
\((1.0 - Kulczynski) \cdot Imbalance\)