*determine how to query the TNS, send query and parse the results*

        **Return:**
            - ``results`` -- a list of dictionaries (one dictionary for each result set returned from the TNS)

def _query_tns(self):
        """
        *determine how to query the TNS, send query and parse the results*

        **Return:**
            - ``results`` -- a list of dictionaries (one dictionary for each result set returned from the TNS)
        """
        self.log.info('starting the ``get`` method')

        sourceTable = []
        photoTable = []
        specTable = []
        relatedFilesTable = []

        # THIS stop IS TO KEEP TRACK OF THE TNS PAGINATION IF MANY RESULT PAGES
        # ARE RETURNED
        stop = False

        sourceCount = 0
        while not stop:

            status_code, content, self._searchURL = self._get_tns_search_results()
            if status_code != 200:
                self.log.error(
                    'cound not get the search reuslts from the TNS, HTML error code %(status_code)s ' % locals())
                return None

            if "No results found" in content:
                print "No results found"
                return sourceTable, photoTable, specTable, relatedFilesTable

            if self._parse_transient_rows(content, True) < self.batchSize:
                stop = True
            else:
                self.page += 1
                thisPage = self.page
                print "Downloaded %(thisPage)s page(s) from the TNS. %(sourceCount)s transients parsed so far." % locals()
                sourceCount += self.batchSize
                print "\t" + self._searchURL

                timesleep.sleep(1)

            # PARSE ALL ROWS RETURNED
            for transientRow in self._parse_transient_rows(content):

                # TOP LEVEL DISCOVERY CONTENT
                sourceContent = transientRow.group()
                discInfo, TNSId = self._parse_discovery_information(
                    sourceContent)
                sourceTable.append(discInfo)

                # PHOTOMETERY
                phot, relatedFiles = self._parse_photometry_data(
                    sourceContent, TNSId)
                photoTable += phot
                relatedFilesTable += relatedFiles

                # SPECTRA
                spec, relatedFiles = self._parse_spectral_data(
                    sourceContent, TNSId)
                specTable += spec
                relatedFilesTable += relatedFiles

        # SORT BY SEPARATION FROM THE SEARCH COORDINATES
        try:
            sourceTable = sorted(sourceTable, key=itemgetter(
                'separationArcsec'), reverse=False)
        except:
            pass

        self.log.info('completed the ``get`` method')
        return sourceTable, photoTable, specTable, relatedFilesTable