def METHOD_NAME(value, system):
    reagents = value.get('reagents', [])
    for reagent in reagents:
        request = system.get('request')
        source_from_reagent = reagent['source']
        linked_source = request.embed(source_from_reagent + '@@object')
        identifier = reagent['identifier']
        source_name = linked_source.get('name')
        source_name_from_identifier = identifier.split(':')[0]
        if source_name != source_name_from_identifier:
            detail = ('Genetic modification {} has a reagent specifying its source '
                'as {},  but its identifier, {}, has a prefix indicating a '
                'different source.'.format(
                    audit_link(path_to_text(value['@id']), value['@id']),
                    audit_link(path_to_text(linked_source['@id']), linked_source['@id']),
                    identifier
                )
            )
            yield AuditFailure(
                'inconsistent genetic modification reagent source and identifier',
                detail,
                level='ERROR'
            )