'Runs probes that evaluate whether collected data has an issue.
Args:
conditions: The trigger conditions.
host_data: A map of artifacts and rdf data.
Returns:
Anomalies if an issue exists.'

def Parse(self, conditions, host_data):

    processed = []
    probes = self.triggers.Calls(conditions)
    for p in probes:
        artifact_data = host_data.get(p.artifact)
        if (not p.result_context):
            rdf_data = artifact_data['PARSER']
        else:
            rdf_data = artifact_data.get(str(p.result_context))
        try:
            result = p.Parse(rdf_data)
        except ProcessingError as e:
            raise ProcessingError(('Bad    artifact    %s:    %s' % (p.artifact, e)))
        if result:
            processed.append(result)
    return self.matcher.Detect(probes, processed)
