1. A computer-program product tangibly embodied in a non-transitory computer-readable storage medium having instructions stored thereon, the instructions executable to cause a data processing apparatus to perform operations including: receiving a set of data files; determining a plurality of rule sets based on the set of data files, wherein determining a rule set includes applying a context to a rule set; comparing two rule sets of the plurality of rule sets, wherein comparing includes identifying a dimensional differentiator for the two rules sets and a common node for the two rule sets, wherein the dimensional differentiator is only associated with one context, and wherein the common node is associated with both contexts; generating a canonical rule set using the compared rule sets, the dimensional differentiator, and the common node; and presenting the canonical rule set, wherein presenting includes visually distinguishing the dimensional differentiator from the common node.