def preprocess_rules(self):
        """Calculate shortest reference-paths of each rule (and Or field),
        and prune all unreachable rules.
        """
        to_prune = self._find_shortest_paths()
        self._prune_rules(to_prune)

        self._rules_processed = True