docs: def _process_uniprot_ids(self, limit=None):
          """
          This method processes the mappings from ZFIN gene IDs to UniProtKB IDs.
  
          Triples created:
          <zfin_gene_id> a class
          <zfin_gene_id> rdfs:label gene_symbol
  
          <uniprot_id> is an Individual
          <uniprot_id> has type <polypeptide>
  
          <zfin_gene_id> has_gene_product <uniprot_id>
          :param limit:
          :return:
  
          """
  
          LOG.info("Processing UniProt IDs")
          if self.test_mode:
              graph = self.testgraph
          else:
              graph = self.graph
          line_counter = 0
          model = Model(graph)
          geno = Genotype(graph)
          raw = '/'.join((self.rawdir, self.files['uniprot']['file']))
          with open(raw, 'r', encoding="iso-8859-1") as csvfile:
              filereader = csv.reader(csvfile, delimiter='\t', quotechar='\"')
              for row in filereader:
                  line_counter += 1
  
                  (gene_id, gene_so_id, gene_symbol, uniprot_id
                   # , empty
                  ) = row
  
                  if self.test_mode and gene_id not in self.test_ids['gene']:
                      continue
  
                  gene_id = 'ZFIN:' + gene_id.strip()
                  uniprot_id = 'UniProtKB:' + uniprot_id.strip()
  
                  geno.addGene(gene_id, gene_symbol)
                  # TODO: Abstract to one of the model utilities
                  model.addIndividualToGraph(
                      uniprot_id, None, self.globaltt['polypeptide'])
                  graph.addTriple(
                      gene_id, self.globaltt['has gene product'], uniprot_id)
  
                  if not self.test_mode and limit is not None and line_counter > limit:
                      break
  
          LOG.info("Done with UniProt IDs")
          return