code: def translate_obj(self,d,fname):
          
          if fname not in d:
              # TODO: consider adding arg for failure on null
              return None
  
          lf = M.label_field(fname)
          id = d[fname]
          id = self.make_canonical_identifier(id)
          #if id.startswith('MGI:MGI:'):
          #    id = id.replace('MGI:MGI:','MGI:')
          obj = {'id': id}
  
          if id:
              if self._use_amigo_schema(self.object_category):
                  iri = expand_uri(id)
              else:
                  iri = expand_uri(id, [get_curie_map('{}/cypher/curies'.format(self.config.scigraph_data.url))])
              obj['iri'] = iri
  
          if lf in d:
              obj['label'] = d[lf]
  
          cf = fname + "_category"
          if cf in d:
              obj['category'] = [d[cf]]
  
          if 'aspect' in d and id.startswith('GO:'):
              obj['category'] = [ASPECT_MAP[d['aspect']]]
              del d['aspect']
  
          return obj
docs: Translate a field value from a solr document.
  
          This includes special logic for when the field value
          denotes an object, here we nest it