Simbad has a TAP interface at http://simbad.u-strasbg.fr/simbad/sim-tap.
Here’s how I found that out:
SELECT ivoid, access_url FROM rr.capability NATURAL JOIN rr.interface NATURAL JOIN rr.resource WHERE standard_id='ivo://ivoa.net/std/tap' AND 1=ivo_hasword(res_title, 'simbad')
Change your TAP URL to there and inspect Simbad’s table metadata. See what the main entries look like:
SELECT TOP 20 * FROM basic
The possibilities are endless.
Example: Filter out boring stars. To get a sample, use your own data if you have some. Otherwise, let’s use some HIPPARCOS stars. In TOPCAT, do VO/Cone Search, enter hipparcos as keyword, use the Hipparcos Main Catalog resource and search with, say, RA 30, Dec 12, and Radius 10.
With that table open and Simbad’s public.basic metadata in the TAP window, do Examples/Upload Join. Edit the resulting query to end up like
SELECT TOP 1000 otype, tc.* FROM public.basic AS db JOIN TAP_UPLOAD.t7 AS tc ON 1=CONTAINS(POINT('ICRS', db.ra, db.dec), CIRCLE('ICRS', tc.ra, tc.dec, 2./3600.)) WHERE otype!='star'
You take it from here.
For otypes, simbad has a fairly elaborate classification system that you’ll need to know to make useful queries against otype. Another secret they’re not advertising loudly enough at the moment is that you can append two dots to an object designation to query against “thing and descendants", as in otype=’V*..’ to catch all variable stars."