<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _add_text_ngrams(self, witness, minimum, maximum):
 """Adds n-gram data from `witness` to the data store. :param witness: witness to get n-grams from :type witness: `WitnessText` :param minimum: minimum n-gram size :type minimum: `int` :param maximum: maximum n-gram size :type maximum: `int` """

        text_id = self._get_text_id(witness)
        self._logger.info('Adding n-grams ({} <= n <= {}) for {}'.format(
            minimum, maximum, witness.get_filename()))
        skip_sizes = []
        for size in range(minimum, maximum + 1):
            if self._has_ngrams(text_id, size):
                self._logger.info(
                    '{}-grams are already in the database'.format(size))
                skip_sizes.append(size)
        for size, ngrams in witness.get_ngrams(minimum, maximum, skip_sizes):
            self._add_text_size_ngrams(text_id, size, ngrams)