'Use the RDFValue type to find where in AFF4 space to write results.
Args:
output_type: The name of a SemanticValue type.
Returns:
A tuple of (aff4 object, attribute, operator)
Raises:
ArtifactProcessingError: If there is no defined mapping.'

def GetAFF4PathForArtifactResponses(self, output_type):

    rdf_type = artifact.GRRArtifactMappings.rdf_map.get(output_type)
    if (rdf_type is None):
        raise artifact_utils.ArtifactProcessingError(('No    defined    RDF    type    for    %s.        See    the    description    for        the    store_results_in_aff4    option,    you    probably    want    it    set    to    false.    Supported    types    are:    %s' % (output_type, artifact.GRRArtifactMappings.rdf_map.keys())))
    (relative_path, aff4_type, aff4_attribute, operator) = rdf_type
    urn = self.client_id.Add(relative_path)
    try:
        aff4_type = aff4.AFF4Object.classes[aff4_type]
    except KeyError:
        raise artifact_utils.ArtifactProcessingError(('Failed    to    find    aff4    type    %s.' % aff4_type))
    try:
        result_object = aff4.FACTORY.Open(urn, aff4_type=aff4_type, mode='w', token=self.token)
    except IOError as e:
        raise artifact_utils.ArtifactProcessingError(('Failed    to    open    result    object    for    type    %s.    %s' % (output_type, e)))
    result_attr = getattr(result_object.Schema, aff4_attribute, None)
    if (result_attr is None):
        raise artifact_utils.ArtifactProcessingError(('Failed    to    get    attribute    %s    for    output    type    %s' % (aff4_attribute, output_type)))
    return (result_object, result_attr, operator)
