@classmethod
def compare(cls, target, reference, substituents=True, tolerance=0, visited
    =None):
    """
        A generalization of :meth:`~Monosaccharide.topological_equality` which allows for ``target``
        to be matched to ``reference``, but for ``reference`` to include more. Consequently,
        this method is not commutative.

        Parameters
        ----------
        target: :class:`~.Monosaccharide`
            The monosaccharide to compare
        reference: :class:`~.Monosaccharide`
            The monosaccharide to compare against
        substituents: :class:`bool`, optional
            Whether or not to compare with the substituents of each node. Defaults
            to :const:`True`.
        tolerance: :class:`float`, optional
            The maximum difference to permit between nodes for inclusion. Defaults
            to 0

        Returns
        -------
        :class:`float`
            The inclusion score. Greater than 0 indicates topological inclusion,
            though larger corresponds to better alignment.

        See Also
        --------
        :func:`~.commutative_similarity_score_with_tolerance`
        exact_ordering_inclusion
        """
    inst = cls(target, reference, substituents=substituents, tolerance=
        tolerance, visited=visited)
    score = inst.test()
    return score
