def check_component_for_specific_sbo_term(items, term):
    r"""
    Identify model components that lack a specific SBO term(s).

    Parameters
    ----------
    items : list
        A list of model components i.e. reactions to be checked for a specific
        SBO term.
    term : str or list of str
        A string denoting a valid SBO term matching the regex '^SBO:\d{7}$'
        or a list containing such string elements.

    Returns
    -------
    list
        The components without any or that specific SBO term annotation.

    """
    # check for multiple allowable SBO terms
    if isinstance(term, list):
        return [elem for elem in items if
                elem.annotation is None or
                'sbo' not in elem.annotation or
                not any(i in elem.annotation['sbo'] for i in term)]
    else:
        return [elem for elem in items if
                elem.annotation is None or
                'sbo' not in elem.annotation or
                term not in elem.annotation['sbo']]