def surface_or_abstract(cls, predstr):
        """Instantiate a Pred from either its surface or abstract symbol."""
        if predstr.strip('"').lstrip("'").startswith('_'):
            return cls.surface(predstr)
        else:
            return cls.abstract(predstr)