@staticmethod
def split_pred_name(pred_name):
    """
        Static method to split a predicate.
        Splits a predicate in two parts: the name of the predicate, and the
        type it holds.

        :example:
            Foo(bar,baz)
            would be split in "Foo" and "[bar, baz]"

        """
    pred_name = pred_name.strip()
    if not pred_name.endswith(')'):
        pred_name += '()'
    name, args = pred_name.split('(')
    arglist = args.strip(')').split(',')
    return name, arglist
