The maths behind MarcoPolo
Note: this is fairly technical, and is aimed at an undergraduate mathematics level. It is not necessary to understand the following content to use MarcoPolo; it is provided for the curious.
MarcoPolo doesn't use traditional "fuzzy logic" handling, but rather combines fuzzy sets with a more traditional confidence combination method. The fuzzy sets are implicit, and represent each possible context: a given rule indicates that a piece of evidence is in a certain context set with a certain membership value (the confidence).
Every time MarcoPolo decides to evaluate the best guess, it finds all the rules that match, groups them based on the context that they provide evidence for, and then aggregates the confidence values for each context. The context with the highest aggregated confidence is then taken to be the best guess.
Confidence values are assumed to be independent, and are aggregated according to the following equation: (a modification of Hooper's Rule)
For example, if two rules match for a specific context, one having 50% confidence and the other having 70% confidence: