docs: def _process_bib_acc_view(self, limit):
          """
          This traverses the table twice:
          once to look up the internal key to J number mapping
          for the id hashmap then again to make the equivalences.
          All internal keys have both a J and MGI identifier.
          This will make equivalences between the different pub ids
          Triples:
              <pub_id> a owl:NamedIndividual
              <other_pub_id> a owl:NamedIndividual
              <pub_id> owl:sameAs <other_pub_id>
          :param limit:
          :return:
  
          """
          if self.test_mode:
              graph = self.testgraph
          else:
              graph = self.graph
          model = Model(graph)
          # firstpass, get the J number mapping, and add to the global hash
  
          LOG.info('populating pub id hash')
          raw = '/'.join((self.rawdir, 'bib_acc_view'))
          col = [
              'accid', 'prefixpart', 'numericpart', 'object_key', 'logical_db',
              'logicaldb_key']
          with open(raw, 'r', encoding="utf8") as csvfile:
              filereader = csv.reader(csvfile, delimiter='\t', quotechar='\"')
              header = next(filereader)
              if header != col:
                  LOG.error('bib_acc_view expected:\n%s\n\tBut got:\n%s', col, header)
              for row in filereader:
  
                  accid = row[col.index('accid')]
                  prefixpart = row[col.index('prefixpart')]
                  # 'numericpart'
                  object_key = int(row[col.index('object_key')])
                  # logical_db = row[col.index('logical_db')]
                  # logicaldb_key = row[col.index('logicaldb_key')]
  
                  if self.test_mode and object_key not in self.test_keys.get('pub'):
                      continue
  
                  # we use the J number here because
                  # it is the externally-accessible identifier
                  if prefixpart != 'J:':
                      continue
                  self.idhash['publication'][object_key] = accid
                  reference = Reference(graph, accid)
                  reference.addRefToGraph()
  
                  if not self.test_mode and limit is not None and \
                          filereader.line_num > limit:
                      break
  
          # 2nd pass, look up the MGI identifier in the hash
          LOG.info("getting pub equivalent ids")
          with open(raw, 'r', encoding="utf8") as csvfile:
              filereader = csv.reader(csvfile, delimiter='\t', quotechar='\"')
              header = next(filereader)
  
              for row in filereader:
                  accid = row[col.index('accid')]
                  prefixpart = row[col.index('prefixpart')]
                  # 'numericpart'
                  object_key = int(row[col.index('object_key')])
                  logical_db = row[col.index('logical_db')]
                  logicaldb_key = row[col.index('logicaldb_key')]
  
                  if self.test_mode is True:
                      if int(object_key) not in self.test_keys.get('pub'):
                          continue
                  logical_db = logical_db.strip()
                  jid = self.idhash['publication'].get(object_key)
                  pub_id = None
                  if logicaldb_key == '29':  # pubmed
                      pub_id = 'PMID:' + accid
                  elif logicaldb_key == '1' and re.match(r'MGI:', prefixpart):
                      # don't get the J numbers,
                      # because we dont' need to make the equiv to itself.
                      pub_id = accid
                  elif logical_db == 'Journal Link':
                      # some DOIs seem to have spaces
                      # FIXME MGI needs to FIX THESE UPSTREAM!!!!
                      # we'll scrub them here for the time being
                      accid = re.sub(r'\s+', '', accid)
                      # some DOIs have un-urlencoded brackets <>
                      accid = re.sub(r'<', '%3C', accid)
                      accid = re.sub(r'>', '%3E', accid)
                      pub_id = 'DOI:' + accid
  
                  elif logicaldb_key == '1' and re.match(r'J:', prefixpart):
                      # we can skip the J numbers
                      continue
  
                  if pub_id is not None:
                      # only add these to the graph if
                      # it's mapped to something we understand
                      reference = Reference(graph, pub_id)
  
                      # make the assumption that if it is a PMID, it is a journal
                      if re.match(r'PMID', pub_id):
                          reference.setType(self.globaltt['journal article'])
                          model.makeLeader(pub_id)
                      reference.addRefToGraph()
  
                      model.addSameIndividual(jid, pub_id)
                  else:
                      LOG.warning(
                          "Publication from (%s) not mapped for %s",
                          logical_db, object_key)
  
                  if not self.test_mode and limit is not None and \
                          filereader.line_num > limit:
                      break
  
          return