def asset_not_equal(first_element_description, second_element_description, asset_type_description, asset_description):
    """
    Formats error message for nonequal assets.

    :param first_element_description: SERIES, EVENT or OAIPMH
    :type first_element_description: ElementDescription
    :param second_element_description: SERIES, EVENT or OAIPMH
    :type second_element_description: ElementDescription
    :param asset_type_description: SERIES, EPISODE
    :type asset_type_description: AssetTypeDescription
    :param asset_description: DC, ACL
    :type asset_description: AssetDescription
    :return: error message
    :rtype: str
    """
    error = "{} with a {} {} unequal with that of their {}".format(first_element_description.unknown(),
                                                                   asset_type_description.singular(),
                                                                   asset_description.singular(),
                                                                   second_element_description.singular())

    return error