def to_dict(self):
        """Return a dictionary representation of the Predicate."""
        return {
            'predicate': self.predicate,
            'parents': list(self.supertypes),
            'synopses': [[role.to_dict() for role in synopsis]
                         for synopsis in self.synopses]
        }