Take the data and yield results that passed through the filters.

    The output of each filter is added to a result set. So long as the filter
    selects, but does not modify, raw data, the result count will remain
    accurate.

    Args:
      raw_data: An iterable series of rdf values.

    Returns:
      A list of rdf values that matched at least one filter.

def Parse(self, raw_data):
    """Take the data and yield results that passed through the filters.

    The output of each filter is added to a result set. So long as the filter
    selects, but does not modify, raw data, the result count will remain
    accurate.

    Args:
      raw_data: An iterable series of rdf values.

    Returns:
      A list of rdf values that matched at least one filter.
    """
    self.results = set()
    if not self.filters:
      self.results.update(raw_data)
    else:
      for f in self.filters:
        self.results.update(f.Parse(raw_data))
    return list(self.results)