def _process_intersection(self, yes_work, maybe_work, work_dir,
                              ym_results_path, stats):
        """Returns statistics on the intersection between `yes_work` and
        `maybe_work`.

        :param yes_work: name of work for which stats are collected
        :type yes_work: `str`
        :param maybe_work: name of work being compared with `yes_work`
        :type maybe_work: `str`
        :param work_dir: directory where generated files are saved
        :type work_dir: `str`
        :param ym_results_path: path to results intersecting
                                `yes_work` with `maybe_work`
        :type ym_results_path: `str`
        :param stats: data structure to hold the statistical data
        :type stats: `dict`
        :rtype: `dict`

        """
        catalogue = {yes_work: self._no_label, maybe_work: self._maybe_label}
        self._run_query(ym_results_path, self._store.intersection, [catalogue],
                        False)
        # Though this is the intersection only between "yes" and
        # "maybe", the percentage of overlap is added to the "common"
        # stat rather than "shared". Then, in _process_diff, the
        # percentage of difference between "yes" and "no" can be
        # removed from "common" and added to "shared".
        return self._update_stats('intersect', work_dir, ym_results_path,
                                  yes_work, maybe_work, stats, COMMON, UNIQUE)