docs: def _CollectArtifact(self, artifact, apply_parsers):
      """Returns an `CollectedArtifact` rdf object for the requested artifact."""
      artifact_result = rdf_artifacts.CollectedArtifact(name=artifact.name)
  
      if apply_parsers:
        parser_factory = parsers.ArtifactParserFactory(str(artifact.name))
      else:
        parser_factory = None
  
      for source_result_list in self._ProcessSources(artifact.sources,
                                                     parser_factory):
        for response in source_result_list:
          action_result = rdf_artifacts.ClientActionResult()
          action_result.type = response.__class__.__name__
          action_result.value = response
          artifact_result.action_results.append(action_result)
          self.UpdateKnowledgeBase(response, artifact.provides)
  
      return artifact_result