docs: def _get_titles(self, limit):
          """
          The file processed here is of the format:
          #NBK_id GR_shortname    OMIM
          NBK1103 trimethylaminuria       136132
          NBK1103 trimethylaminuria       602079
          NBK1104 cdls    122470
          Where each of the rows represents a mapping between
          a gr id and an omim id. These are a 1:many relationship,
          and some of the omim ids are genes (not diseases).
          Therefore, we need to create a loose coupling here.
          We make the assumption that these NBKs are generally higher-level
          grouping classes; therefore the OMIM ids are treated as subclasses.
          (This assumption is poor for those omims that are actually genes,
          but we have no way of knowing what those are here...
          we will just have to deal with that for now.)
          :param limit:
          :return:
          """
          raw = '/'.join((self.rawdir, self.files['titles']['file']))
  
          model = Model(self.graph)
          col = ['GR_shortname', 'GR_Title', 'NBK_id', 'PMID']
          with open(raw, 'r', encoding='latin-1') as csvfile:
              filereader = csv.reader(csvfile, delimiter='\t', quotechar='\"')
              header = next(filereader)
              header[0] = header[0][1:]
              colcount = len(col)
              if header != col:
                  LOG.error(
                      '\nExpected header: %s\nRecieved header: %s', col, header)
                  exit(-1)
              for row in filereader:
                  if len(row) != colcount:
                      LOG.error("Unexpected row. got: %s", row)
                      LOG.error("Expected data for: %s", col)
                      exit(-1)
                  nbk_num = row[col.index('NBK_id')]
                  gr_id = 'GeneReviews:' + nbk_num
                  self.book_ids.add(nbk_num)  # a global set of the book nums
                  if limit is None or filereader.line_num < limit:
                      model.addClassToGraph(gr_id, row[col.index('GR_Title')])
                      model.addSynonym(gr_id, row[col.index('GR_shortname')])
                  # TODO include the new PMID?
  
          return