MMD is an aigorithm that learns without supervision intensional definitions of classes of knowledge errors using data (similarity) and theory (causality). Causality can be especially useful when similarity fails to discover certain errors due to their entanglement in complex behaviors, while similarity can be especially useful when no causal relationships for robust co-occurring discrepancies are present in the background knowledge. This paper examines the individual and combined effectiveness of MMD's similarity and causality components in discovering error classes and classifying behaviors in which these errors occur. Experimental results show how similarity and causality can serve to complement each other in the discovery of novice PROLOG programmer errors.