<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def include(self, *terms):
 """Add new terms to the current ontology. Raises: TypeError: when the arguments is (are) neither a TermList nor a Term. Note: This will also recursively include terms in the term's relations dictionnary, but it is considered bad practice to do so. If you want to create your own ontology, you should only add an ID (such as 'ONT:001') to your terms relations, and let the Ontology link terms with each other. Examples: Create a new ontology from scratch True [<ONT:002: my 2nd term>] """

        ref_needed = False

        for term in terms:

            if isinstance(term, TermList):
                ref_needed = ref_needed or self._include_term_list(term)
            elif isinstance(term, Term):
                ref_needed = ref_needed or self._include_term(term)
            else:
                raise TypeError('include only accepts <Term> or <TermList> as arguments')

        self.adopt()
        self.reference()