Accessing the registry through TOPCAT

The use of TOPCAT is preferred. 

In TOPCAT, click on VO Menu and select the TAP Query item. 

In the TAP URL text box (bottom of the window) : http://voparis-rr.obspm.fr/tap -> Use Service. 

Then it is possible to issue ADQL queries in the next page.

How to identify a TAP service

Previous (dirty) solution

Look for tables names ending with epn_core

SELECT ivoid FROM rr.res_table WHERE table_name LIKE '%.epn_core'

This query returns 192 results, but there are duplication and redundant results. This query is thus not optimal.

Recommended solution

Search for table utypes old version (e.g., ivo://vopdc.obspm/std/epncore#schema-2.0).

It is possible to filter on the EPNcore version. This helps to avoid out-dated services, but it could be problematic at the time of minor EPN-TAP version changes. This implies that providers must upgrade their resource regularly (as well as on clients). This is to be discussed.

A query including the EPNcore version would be one of the following:


SELECT ivoid FROM rr.res_table WHERE table_utype = 'ivo://vopdc.obspm/std/epncore#schema-2.0' 

27 results

This utype is deprecated.


With DaCHS 2, the utype of epn-tap services is filled automatically with the value 'ivo://ivoa.net/std/epntap#table-2.0'

SELECT ivoid FROM rr.res_table WHERE table_utype = 'ivo://ivoa.net/std/epntap#table-2.0' 

133 results


A query matching all EPNcore versions would be: 

SELECT ivoid  FROM rr.res_table WHERE table_utype LIKE 'ivo://vopdc.obspm/std/epncore%' OR table_utype LIKE 'ivo://ivoa.net/std/epntap#table%'

which returns with 178 results at the time of writing.

For both examples, we retrieve in the same table the TAP access point (e.g., ivo://vopdc.obspm/tap/maser), as well as EPNcore services (e.g., ivo://vopdc.obspm/lesia/maser/expres/epn). The TAP servers must be removed. We can filter TAP access points out with the tr:tableaccess capability. 

Checking if services are correctly registered 

Using the previous queries, including the filter to remove TAP endpoints, we get the following query:


SELECT rr.res_table.ivoid FROM rr.res_table WHERE table_utype LIKE 'ivo://ivoa.net/std/epntap#table-2.%' AND ivoid NOT IN (SELECT rr.capability.ivoid FROM rr.capability WHERE cap_type = 'tr:tableaccess')

We obtain 93 results:


Hints for clients

Retrieve the service infos:

SELECT rr.res_table.ivoid, access_url, table_name, short_name, res_title, res_description, reference_url FROM rr.res_table NATURAL JOIN rr.resource NATURAL JOIN rr.interface WHERE table_utype = 'ivo://vopdc.obspm/std/epncore#schema-2.0' OR table_utype = 'ivo://ivoa.net/std/epntap#table-2.0' AND ivoid NOT IN (SELECT rr.capability.ivoid FROM rr.capability WHERE cap_type = 'tr:tableaccess')


Retrieve also the publisher/contact/creator/contributor: 

SELECT rr.res_table.ivoid, access_url, table_name, short_name, res_title, res_description, reference_url, role_name, base_role AS rol_name FROM rr.res_table NATURAL JOIN rr.resource NATURAL JOIN rr.interface NATURAL JOIN rr.res_role WHERE table_utype = 'ivo://vopdc.obspm/std/epncore#schema-2.0' OR table_utype = 'ivo://ivoa.net/std/epntap#table-2.0' AND ivoid NOT IN (SELECT rr.capability.ivoid FROM rr.capability WHERE cap_type = 'tr:tableaccess')