<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_attribute_compound(attribute, value=None, splitter="|", binding_identifier="@"):
 """ Returns an attribute compound. Usage:: u'Attribute Compound' u'Value' u'@Link' u'Boolean' u'Link Parameter' :param attribute: Attribute. :type attribute: unicode :param value: Attribute value. :type value: object :param splitter: Splitter. :type splitter: unicode :param binding_identifier: Binding identifier. :type binding_identifier: unicode :return: Attribute compound. :rtype: AttributeCompound """


    LOGGER.debug("> Attribute: '{0}', value: '{1}'.".format(attribute, value))

    if type(value) is unicode:
        if splitter in value:
            value_tokens = value.split(splitter)
            if len(value_tokens) >= 3 and re.search(r"{0}\w*".format(binding_identifier), value_tokens[0]):
                return AttributeCompound(name=attribute,
                                         value=value_tokens[1].strip(),
                                         link=value_tokens[0].strip(),
                                         type=value_tokens[2].strip(),
                                         alias=len(value_tokens) == 4 and value_tokens[3].strip() or None)
        else:
            if re.search(r"{0}\w*".format(binding_identifier), value):
                return AttributeCompound(name=attribute, value=None, link=value, type=None, alias=None)

    return AttributeCompound(name=attribute, value=value, link=None, type=None, alias=None)