List of EPN-TAP parameters
(refreshed/completed April 2019) (SE) 

EPN-TAP

Parameters which must be provided

are now clearly identified - those are not only mandatory, they also must provide a value.
They are mostly related to service description and granule identification.

+ See notes below the table.

Thematic extensions

Some science fields will require optional parameters, which need to be used consistently between services addressing the same field. Such extensions have to be designed by sub-groups involved in the corresponding data services, either as providers or users. This includes:

Name, v2

Value required (not NULL)?

SQL type

Unit / Format / Range

Description

UCD

UCD in Obscore 1.1

(9/5/2017 REC version)

Utype

(tentative) 

Comments

EPNCore mandatory parameters
(Must be present, possibly empty)





Current value
current but dubious or undefined
check this (dubious)

— ? : closest sense

_ : N/A in ObsCore

from epntap v2 mixin (aug 2017)
equivalent/close in ObsCore doc 1.1

 

granule_uid

Y

Text


Unique ID in data service.

meta.id

meta.id
 Can be alphanum.

granule_gid

Y

Text


Common to granules of same type

meta.id

meta.id
E.g. same map projection, or geometry data products. Can be alphanum.

obs_id

Y

Text


Associates granules derived from the same data

meta.id;obs

meta.idobscore:DataID.observationID E.g. various representations / processing levels. Can be alphanum., may be the ID of original observation.
Keep it simple in intricate situations.

dataproduct_type

Y

Text


Organization of the data product, from enumerated list

meta.code.class

meta.id

Epn.dataProductType

obscore:ObsDataset.dataProductType


target_name


Text


Standard IAU name of target (must match target_class), case sensitive.

meta.id;src

meta.id;srcEpn.TargetNameCase sensitive
Services with no target_name do exist

target_class

Y

Text


Type of target, from enumerated list

src.class

src.classEpn.TargetClass

time_min


Double

d (date as JD)

Start time (in JD). UTC measured at time_origin location (default is observer's frame)

time.start;obs

time.start;obs.exposure

Char.TimeAxis.Coverage.Bounds.Limits.Interval.StartTime

TBD (from ObsCore)


time_max


Double

d (date as JD)

Stop time (in JD). UTC measured at time_origin location (default is observer's frame)

time.end;obs

time.end;obs.exposure

Char.TimeAxis.Coverage.Bounds.Limits.Interval.StopTime

TBD (from ObsCore)


time_sampling_step_min


Double

s

Min time sampling step

time.resolution;stat.min

time.resolution Epn.Time.Time_sampling_step_min

time_sampling_step_max


Double

s

Max time sampling step

time.resolution;stat.max


Epn.Time.Time_sampling_step_max

time_exp_min


Double

s

Min integration time

time.duration;obs.exposure;stat.min

time.duration;obs.exposureEpn.Time.Time_exp_min

time_exp_max


Double

s

Max integration time

time.duration;obs.exposure;stat.max


Epn.Time.Time_exp_max

spectral_range_min


Double

Hz

Min spectral range (as frequency)

em.freq;stat.min

em.wl;stat.min (always as wl)

Epn.Spectral.Spectral_range_minAlways as freq

spectral_range_max


Double

Hz

Max spectral range (as frequency)

em.freq;stat.max

em.wl;stat.maxEpn.Spectral.Spectral_range_max

spectral_sampling_step_min


Double

Hz

Min spectral sampling step

em.freq.step;stat.min

meta.numberEpn.Spectral.Spectral_sampling_step_min

spectral_sampling_step_max


Double

Hz

Max spectral sampling step

em.freq.step;stat.max

meta.numberEpn.Spectral.Spectral_sampling_step_max

spectral_resolution_min


Double


Min spectral resolution (resolving power)

spect.resolution;stat.min

spect.resolution (relates to resolving power)

Epn.Spectral.Spectral_resolution_min

Now (2019) provides resolving power |(lambda / delta(lambda)| = |f /Df|
How do we accommodate FWHM for filters?

spectral_resolution_max


Double


Max spectral resolution (resolving power)

spect.resolution;stat.max


Epn.Spectral.Spectral_resolution_max

Now (2019) provides resolving power |(lambda / delta(lambda)| = |f /Df|
How do we accommodate FWHM for filters?

c1min


Double

(1)

Longitude from 0. to 360.

RA from 0. to 24.

Min of first coordinate

pos;stat.min

pos.distance;stat.min (bof)
or pos.radius;stat.min (does not exist)
  for spherical & cylindrical

pos.eq.ra;stat.min for celestial 

pos.bodyrc.lon;stat.min for body

pos.cartesian.x;stat.min for Cartesian

pos.healpix for healpix (with 2 parameters?  - weird) - TBC

empty ("") for none (and no unit)

pos.eq.raEpn.Spatial.Spatial_range.c1minTypo in current mixin (.lonG => .lon

c1max


Double

(1)

Max of first coordinate

pos;stat.max, etc


Epn.Spatial.Spatial_range.c1max

c2min


Double

(1)

Latitude and Dec from -90. to +90.

Min of second coordinate

pos;stat.min

pos.angDistance;stat.min
or pos.az.zd;stat.min (for zenithal distance) for spherical 

or pos.az.azi;stat.min (for azimuth)
  for cylindrical

pos.eq.dec;stat.min for celestial 

pos.bodyrc.lat;stat.min for body

pos.cartesian.y;stat.min for Cartesian

empty ("") for none (and no unit)

pos.eq.decEpn.Spatial.Spatial_range.c2min

c2max


Double

(1)

Max of second coordinate

pos;stat.max, etc


Epn.Spatial.Spatial_range.c2max

c3min


Double

(1)

Min of third coordinate

pos;stat.min

pos.AngDistance;stat.min
or pos.az.azi;stat.min (for azimuth)
  for spherical

pos.distance;stat.min  for cylindrical

pos.distance;stat.min for celestial 

pos.bodyrc.alt;stat.min for body? (from surface only, implicitly from reference level)
or
pos.distance;pos.bodyrc;stat.min for body (from center)?

pos.cartesian.z;stat.min for Cartesian

empty ("") for none (and no unit)


Epn.Spatial.Spatial_range.c3min

c3max


Double

(1)

Max of third coordinate

pos;stat.max, etc


Epn.Spatial.Spatial_range.c3max

s_region


spoly

PgSphere spoly

ObsCore-like footprint for celestial or body-fixed frames.

phys.outline;obs.field

phys.outline;obs.fieldobscore:Char.SpatialAxis.Coverage.Support.Area

(was initially instr.fov, to be corrected)
ObsCore value updated (was phys.angArea;obs)
Frame may be identified in q.rd (UNKNOWNFrame).
Use value given in spatial_frame_type - very unclear…
Do we need another param for GIS interface?

c1_resol_min


Double

(1)

Min resolution in first coordinate

pos.resolution;stat.min
if linear 

pos.angResolution;stat.min
if angular

pos.angResolution;stat.minEpn.Spatial.Spatial_resolution.c1_resol_minpos.resolution restored in 2018
In body fixed frame, use pixelscale_min/max for resolution at the surface 

c1_resol_max


Double

(1)

Max resolution in first coordinate

pos.resolution;stat.max
if linear 

pos.angResolution;stat.max
if angular

pos.angResolution;stat.maxEpn.Spatial.Spatial_resolution.c1_resol_max_

c2_resol_min


Double

(1)

Min resolution in second coordinate

pos.resolution;stat.min
if linear 

pos.angResolution;stat.min
if angular


Epn.Spatial.Spatial_resolution.c2_resol_min_

c2_resol_max


Double

(1)

Max resolution in second coordinate

pos.resolution;stat.max
if linear 

pos.angResolution;stat.max
if angular


Epn.Spatial.Spatial_resolution.c2_resol_max_

c3_resol_min


Double

(1)

Min resolution in third coordinate

pos.resolution;stat.min
if linear 

pos.angResolution;stat.min
if angular (spherical only)


Epn.Spatial.Spatial_resolution.c3_resol_minpos.resolution restored in 2018

c3_resol_max


Double

(1)

Max resolution in third coordinate

pos.resolution;stat.max
if linear 

 pos.angResolution;stat.min
if angular (spherical only) 


Epn.Spatial.Spatial_resolution.c3_resol_maxpos.resolution restored in 2018

spatial_frame_type

 Y

Text

(1)


Flavor of coordinate system, defines the nature of coordinates. From enumerated list. Use "none" if undefined.

meta.code.class;pos.frame

_

A value is required by DaCHS (query will return errors if empty)
Default value = none

incidence_min


Double

deg

Min incidence angle (solar zenithal angle)

 pos.incidenceAng;stat.min

_Epn.View_angle.Incidence_angle_minUCD for angles included in 2018 

incidence_max


Double

deg

Max incidence angle (solar zenithal angle)

 pos.incidenceAng;stat.max

_Epn.View_angle.Incidence_angle_maxUCD for angles included in 2018

emergence_min


Double

deg

Min emergence angle

 pos.emergenceAng;stat.min

_Epn.View_angle.Emergence_angle_minUCD for angles included in 2018

emergence_max


Double

deg

Max emergence angle

 pos.emergenceAng;stat.max

_Epn.View_angle.Emergence_angle_maxUCD for angles included in 2018

phase_min


Double

deg

Min phase angle

pos.phaseAng;stat.min


Epn.View_angle.Phase_angle_min

phase_max


Double

deg

Max phase angle

pos.phaseAng;stat.max


Epn.View_angle.Phase_angle_max

instrument_host_name


Text


Standard name of the observatory or spacecraft

meta.id;instr.obsty

meta.id;instr.telProvenance.ObsConfig.Facility.name

instrument_name


Text


Standard name of instrument

meta.id;instr

meta.id;instrProvenance.ObsConfig.Instrument.name

measurement_type


Text


UCD(s) defining the data

meta.ucd

meta.ucdEpn.Measurement_typeAdd ;meta.modelled if simulation or model
Add ;stat.uncalib if uncalibrated data - in which case processing_level must be 0 or 1

processing_level


Integer


Dataset-related encoding, or simplified CODMAC calibration level

meta.calibLevel

meta.code;obs.calib

~ obscore:ObsDataset.calibLevel To be replaced by PDS4 values in v2.1?

creation_date

YTimestamp

(ISO-8601 String)

Date of first entry of this granule

time.creation

time;meta.dataset

modification_date

YTimestamp(ISO-8601 String)

Date of last modification

time.processing



Used to handle mirroring
UCD value being discussed in 2018

release_date

YTimestamp

(ISO-8601 String)

Start of public access period (set to creation_date if no proprietary period)

time.release

time.releaseobscore:Curation.releaseDate

The value is in ISO 8601 format reusing this pattern: (“YYYY-MM-DDThh:mm:ss”) If release_date is in the future, the data is proprietary.

service_title

Y

Text


Title of resource = schema name

meta.title



May be used to handle multiservice results

Common optional parameters









access_url


Text


URL of the data file, case sensitive (additional files may be linked through datalink_url). Can point to a script. If present, next 2 parameters must also be present.

meta.ref.url;meta.file

meta.ref.urlObs.Access.Reference

Use this to link data!
Could accommodate a datalink with access_format = 'application/x-votable+xml;content=datalink'
(from ObsCore)
- but this is a funny idea…

access_format


Text

(mime type in lowercase)

File format type

meta.code.mime

meta.code.mimeObs.Access.Format

access_estsize


Integer

kbyte

Estimate file size in kbyte (with this spelling)

phys.size;meta.file

phys.size;meta.fileObs.Access.Size
access_md5
Text
MD5 Hash for the file when available (real file, not script) meta.checksum;meta.file


thumbnail_url


Text


URL of a thumbnail image with predefined size (png ~200 pix, for use in a client only)

meta.ref.url;meta.preview




file_name


Text


Name of the data file only, case sensitive

meta.id;meta.file

meta.title;obs — ?
ObsCore obs_title is for a short free text string describing the granule. Do we want this?
datalink_url
Text(url)Provides links to files or services on the servermeta.ref.url;meta.datalink

Associated mime-type is 'application/x-votable+xml;content=datalink'
(from ObsCore)

species


Text


Identifies a chemical species, case sensitive

meta.id;phys.atmol



This is the only case sensitive parameter (with target_name)
waveband
Text

Electro-magnetic band, from enumerated list

instr.bandpass


alt_target_name
Textcan be a hash listProvides alternative target name(s)meta.id;src


target_region


Text


Type of region or feature of interest

obs.field




feature_name


Text


Secondary name (e.g. standard name of a region of interest)

obs.field 



publisher


Text


Resource publisher

meta.curation

meta.ref.uri;meta.curation~ obscore:Curation.publisherID

bib_reference


Text


Bibcode or doi preferred; can be a URL or anything else

meta.bib

meta.bib

obscore:Curation.referenceBibcode & doi can be completed in TOPCAT
internal_reference
Text
Related granule_uid(s) in the current servicemeta.id.cross

Use to link one granule to a set of other granules. To be used only if required - e.g. to solve situations that would otherwise require several tables
external_link
Text(url)Web page providing more details on the granule.meta.ref.url

Link to an individual page in a web site associated to the database, e.g., a planet page in Exoplanets service. This is a way to provide extra granule information which cannot be accommodated in the table.

spatial_coordinate_description


Text


ID of specific coordinate system and version / properties

meta.code.class;pos.frame



~COOSYS, but includes planetary ones
Still TBD. Discussion in progress here: EPN-TAP v2: Current discussion topic

spatial_origin


Text


Defines the frame origin

meta.ref;pos.frame




time_origin


Text


Defines where the time is measured (e. g., ground vs spacecraft). Default is observer's frame.

meta.ref;time.scale



target_time is of course always on target.

time_scale


Text


Always UTC in data services - from enumerated list

time.scale




subsolar_longitude_min
DoubledegMinimum sub-solar point longitudepos.bodyrc.lon;stat.min

Provided in the most natural body-related coordinate frame, E-handed - seems to require 'body'
subsolar_longitude_max
DoubledegMaximum sub-solar point longitudepos.bodyrc.lon;stat.max

Provided in the most natural body-related coordinate frame, E-handed - seems to require 'body'
subsolar_latitude_min
DoubledegMinimum sub-solar point latitudepos.bodyrc.lat;stat.min

_
subsolar_latitude_max
DoubledegMaximum sub-solar point latitudepos.bodyrc.lat;stat.max

_
subobserver_longitude_min
DoubledegMinimum sub-observer point longitude (sub-Earth for ground based observations)pos.bodyrc.lon;stat.min

_
subobserver_longitude_max
DoubledegMaximum sub-observer point longitude (sub-Earth for ground based observations)pos.bodyrc.lon;stat.max

_
subobserver_latitude_min
DoubledegMinimum sub-observer point latitude (sub-Earth for ground based observations) pos.bodyrc.lat;stat.min

_
subobserver_latitude_max
DoubledegMaximum sub-observer point latitude (sub-Earth for ground based observations) pos.bodyrc.lat;stat.max

_

ra


Double

deg

Right ascension

pos.eq.ra;meta.main



deg only (like ObsCore)

dec


Double

deg

Declination

pos.eq.dec;meta.main




radial_distance_min
DoublekmMin distance from center (in body-fixed frame)pos.distance;pos.bodyrc;stat.min


radial_distance_max
DoublekmMax distance from center (in body-fixed frame)pos.distance;pos.bodyrc;stat.max


altitude_fromshape_min
DoublekmMin altitude above shape model / DTM (in body-fixed frame)pos.bodyrc.alt;stat.min


altitude_fromshape_max
DoublekmMax altitude above shape model / DTM (in body-fixed frame)pos.bodyrc.alt;stat.max


solar_longitude_min


Double

deg

Min Solar longitude Ls (location on orbit / season)

pos.ecliptic.lon;pos.heliocentric;stat.min 




solar_longitude_max


Double

deg

Max Solar longitude Ls (location on orbit / season)

pos.ecliptic.lon;pos.heliocentric;stat.max




local_time_min


Double

h

Min local time at observed region

time.period.rotation;time.phase;stat.min




local_time_max


Double

h

Max local time at observed region

time.period.rotation;time.phase;stat.max




target_distance_min


Double

km

Min observer-target distance

pos.distance;stat.min




target_distance_max

Double

kmMax observer-target distancepos.distance;stat.max


target_time_min


Timestamp

(ISO-8601 String)

Min observing time in target frame

time.start;src



(simplest way to look for coordinated observations)

target_time_max


Timestamp

(ISO-8601 String)

Max observing time in target frame

time.end;src




earth_distance_min
DoubleauMin Earth-target distancepos.distance;stat.min


earth_distance_max
DoubleauMax Earth-target distance

pos.distance;stat.max




sun_distance_min
DoubleauMin Sun-target distancepos.distance;stat.min


sun_distance_max
DoubleauMax Sun-target distancepos.distance;stat.max


Parameters from extensions









obs_mode
Text
Observing modemeta.code;instr.setup

From APIS + observation extensions (with adapted UCDs)
detector_name
Text
Detector namemeta.id;instr.det


opt_elem
Text
Optical element namemeta.id;instr.param


filter
Text Identifies filter in use, typically for imagesmeta.id;instr.filter

Informative only, free format (no list, but see http://svo2.cab.inta-csic.es/svo/theory/fps3/). Search can only rely on spectral range, as ObsCore does.
instrument_type
Text
type of instrumentmeta.id;instr

Informative only (not a reliable search parameter): free format, no reference list intended.
acquisition_id
Text
ID of the data file/acquisition in the original archivemeta.id


proposal_id
Integer
Proposal identifiermeta.id;obs.proposal


proposal_pi
text
Proposal principal investigator

meta.id.PI;obs.proposal




proposal_title
Text
Proposal titlemeta.title;obs.proposal


campaign
Text
Name of the observational campaignmeta.id;meta.code


target_description
Text
Original target keywordsmeta.note;src


proposal_target_name
Text
target name as in proposal titlemeta.note;obs.proposal


target_apparent_radius
Double
Apparent radius of the target

phys.angSize;src




north_pole_position
DoubledegNorth pole position angle with respect to celestial north pole

pos.posAng



Group of 5 parameters very specific to APIS.
Name is ~ OK, but actually provides the position angle of the planet axis. Use "orientation" for the image.
target_primary_hemisphere
Text
Primary observed hemispheremeta.id;obs.field


target_secondary_hemisphere
Text
Secondary observed hemispheremeta.id;obs.field


platesc
Doublearcsec/pixelspatial resolution per pixel or platescale (on sky only)instr.scale


orientation
Double
Position angle of image y axis (on sky only)pos.posAng

Provides the direction of the polar axis in the image, counted clockwise from north.
observer_name
Text
Observer name

obs.observer;meta.main




observer_institute
Text
Observer institutemeta.note;meta.main


observer_id
Integer
Image observer's PVOL numeric identifier

meta.id.PI




Group of 5 from PVOL, OK for general use but UCDs have to be changed in PVOL.
meta.pubid in PVOL

observer_code
Text
Image observer's PVOL usernamemeta.id.PI

meta.pubcode in PVOL
observer_country
Text
Image observer's country of residencemeta.note;obs.observer

meta.pubcountry in PVOL
observer_lon
Double
Observer's approximate longitudeobs.observer;pos.earth.lon


meta.publon in PVOL
observer_lat
Double
Observer's approximate latitudeobs.observer;pos.earth.lat

meta.publat in PVOL
mass
DoublekgMass of objectphys.mass

Solar System Objects extension (generic values in catalogues, not observations)
sideral_rotation_period
DoublehObject rotation ratetime.period.rotation


mean_radius
Doublekm
phys.size.radius


equatorial_radius
Doublekm
phys.size.radius


polar_radius
Doublekm
phys.size.radius


diameter
doublekmTarget diameter, or equivalent diameter for binary objectsphys.size.diameter

Used in tnosarecool, not very consistent (use radius?)

semi_major_axis


Doubleau

phys.size.smajAxis




inclination
Double
Orbit inclination

src.orbital.inclination




eccentricity
Double
Orbit eccentricity

src.orbital.eccentricity




long_asc
DoubledegLongitude of ascending node, J2000.0src.orbital.node


arg_perihel
DoubledegArgument of Perihelion, J2000.0src.orbital.periastron


mean_anomaly
DoubledegMean anomaly at the epochsrc.orbital.meanAnomaly


dynamical_class


Text
Class of small body, from enumerated listmeta.code.class;src


dynamical_type
Text
Subdivision of the class, from enumerated listmeta.code.class;src


taxonomy_code
Text
Code for target taxonomysrc.class.color

Possible values depend on target type and possibly on service
magnitude
DoublemagAbsolute magnitude. For small bodies, from HG magnitude systemphys.magAbs

Actually depends on service (eg, spectro_planets vs DynAstVO vs tnosarecool).
UCD may include mention of the photometric band.
flux
DoublemJyTarget fluxphot.flux.density


albedo
Double
Target albedophys.albedo


map_projection


Text
ID from enumerated list, or parameters (refers to a standard)pos.projection

Map extension

map_height


DoublepixelMap size in px

phys.size




map_width
DoublepixelMap size in px

phys.size




map_scale
Text
Format TBD

pos.wcs.scale




pixelscale_min
Doublekm/pixelMin pixel size on a surface

instr.scale;stat.min




pixelscale_max
Doublekm/pixelMax pixel size on a surface

instr.scale;stat.max




particle_spectral_type


Text


From enumerated list

meta.id;phys.particle



Particle spectroscopy extension, UCD TBD

particle_spectral_range_min


Double



phys.energy;phys.particle;stat.min

phys.mass;phys.particle;stat.min




particle_spectral_range_max


Double



phys.energy;phys.particle;stat.max

phys.mass;phys.particle;stat.max




particle_spectral_sampling_step_min


Double



spect.resolution;phys.particle;stat.min




particle_spectral_sampling_step_max


Double



spect.resolution;phys.particle;stat.max




particle_spectral_resolution_min


Double



spect.resolution;phys.particle;stat.min




particle_spectral_resolution_max


Double



spect.resolution;phys.particle;stat.max




original_publisher



Text
Refers to the source of the data, e. g.,  in compilations of experimental datameta.note;meta.main

Experimental spectroscopy + contributive work extensions

producer_name


Text
Data producer name, especially in compilations of experimental datameta.note;meta.main


producer_institute


Text
Data producer institute, e. g., in compilations of experimental datameta.note;meta.main


sample_id
Text
Provides a local ID in an existing catalogue meta.id;src

In addition to target_name

sample_classification


Texthash listInformation related to class, sub-class, species… meta.note;phys.composition

This uses standard names for classes… 
sample_desc
Textcan be a hash listDescribes the sample, its origin, and possible preparationmeta.note


data_calibration_desc


Textcan be a hash listProvides information on post-processing meta.note

(preferably to a "comment" parameter)
setup_desc
Textcan be a hash listDescribes the experimental setup meta.note

May include Aperture (size of sample measured), etc

geometry_type


Textcan be a hash listType of observation, from enumerated listmeta.note;instr.setup


spectrum_type


Textcan be a hash listType of spectral observation, from enumerated list TBDmeta.note;instr.setup

Alternative to UCD, very detailed

grain_size_min


DoubleµmMin particle size in µm

phys.size;stat.min




grain_size_max
DoubleµmMax particle size in µm

phys.size;stat.max




azimuth_min
DoubledegMin azimuth angle for illuminationpos.azimuth;stat.min

Check meaning/requirements for <0 values?
UCD added in 2018 (instead of pos.azimuthAng requested - OK)

azimuth_max
DoubledegMax azimuth angle for illuminationpos.azimuth;stat.max

UCD added in 2018

pressure


DoublebarAmbient pressure

phys.pressure



VOunits says: Pascal.
But this is in files 

measurement_atmosphere


text
Describes experimental conditions. "vacuum" for measurements under vacuum.

meta.note;phys.pressure




temperature
DoubleKAmbient temperature

phys.temperature




event_type


Text

Type of event from enumerated list

TBD

Events extension
If dataproduct_type = ev
UCDs should be provided with the standard

event_status
Text

From enumerated list

TBD


event_cite
Text

From enumerated list

TBD



(1): depending on context (as given by spatial_frame_type). Please comment here: EPN-TAP v2: Current discussion topic

Beware that datatypes apply to the epn_core view, not to the q.rd file where they can be different




Example table for IDs:

File name-type

granule_uid

granule_gid

obs_id

A-Raw

1

native

A

A-Calib

2

calibrated

A

A-geom

3

geometry

A

A-proj

4

projected

A

B-Raw

5

native

B

B-Calib

6

calibrated

B

B-geom

7

geometry

B

B-proj

8

projected

B 


Syntax


multivalued lists = first entry#second entry#…#last entry, or scalar (with no #)
Values separator = #
No quotes around the list

This can be parsed by ADQL/RegTAP function ivo_hashlist_has like this:
  select * from vvex.epn_core where 1 = ivo_hashlist_has(lower(target_name),'Venus')

Where the lower function is mandatory to handle values possibly containing upper cases (this is implicit on the 2nd argument)

Beware that only complete elements between separators will be found. The provider has to split the string according to expected searches, e.g.:
    Composite Infrared Spectrometer#CIRS
not    Composite Infrared Spectrometer (CIRS)

Parameters supporting multivalued lists include:
dataproduct_type (only when present in the same file; best avoided when possible)
target_name (for different targets only, but only one target can be described in the granule; use alt_target_name for other names of the same target)
alt_target_name
target_class (in association with target_name)
instrument_host_name (e.g. acronym and full name)
instrument_name (e.g. acronym and full name)
measurement_type (when present in the same file)
processing_level (when present in the same file)
bib_reference


NULL and special values:
A standard query on a parameter will not return granules with NULL/void value. E.g. target_name LIKE '%toto%' will only select granules with this value (standard ADQL behavior).
NULL/void has to be tested specifically (e.g., when it means "I don't know") using the IS operator (IS is used only to test the NULL value in ADQL): 

target_name LIKE '%toto%' OR target_name IS NULL

Syntax IS NULL stands for both strings and numerical parameters (the = operator is accepted in this context only by latest DaCHS servers)

No inf, inf, or NaN value in ADQL? At least Inf/-Inf should be there, as per DALI.

UCDs: the above table has been reviewed against the UCD documents, including latest discussions (4/2019). Review against PDS4 and IPDA to be performed.

2018 discussions / conclusions have been included herehttps://wiki.ivoa.net/twiki/bin/view/IVOA/UCDList1dot42017June2018FebRFM

• *_min vs *_max parameters

If only one value is available, it must appear in both fields

• Optional parameters: some of these come in sets that are logically related; if one is present, the related ones must be present also (e.g., 3 access_* parameters)

• Granule_gid: any general indication to providers? I.e.: preview, native, calibrated, geometry… 
A client should be able to display the values present in a service, TBC (feasible in TOPCAT)

• Reshuffle previous "service parameters":

• Call-back parameters / reference

Currently using service_title (= schema name) + granule_uid. 

May use ivoID in the future.

Other parameters

The most recent extra parameters often have names starting in prefix_*, where prefix identify the scope or context (e.g., spase_, vims_, image_, etc). Seems to be a good practice.

Accref is introduced by the EPN-TAP localfile mixin, but not used. It may be better to hide it entirely in the portal (TBC).


Parameters introducing error bars/uncertainties

Some parameters providing a scalar value X in the EPN-TAP table may be associated with an error bar in a related parameter. This is currently (4/2019) entered as:

In Basecom: Xerr (to be changed when upgrading to mixin version)
In DynAstVO: X_error
In Exoplanets: X_error_min; X_error_max
In planets: X_uncertainty
TNOsarecool: X_sigma_plus, X_sigma_minus (to be changed?)

The associated UCDs start with stat.error; or stat.error;stat.min; & stat.error;stat.max;


Support for PDS3 detached labels (proposal)

Solution with datalink seems OK: data files under access_url and detached labels provided under datalink_url in a link table - although no attempt made to read them from the portal yet (use VIR unpublished service to test this).


Utypes (TBC)

Need to clean up current doc (2.0). Utypes are = DM fields. They are supposedly used to identify the meaning of parameters and help e.g. tools to grab required quantities - This will not work in some areas though, e. g. with spectral tools as they currently use UCD instead of Utype for this purpose (not many tools appear to actually rely on Utype in fact). See discussion here for usage (a bit old?): http://www.ivoa.net/documents/Notes/UTypesUsage/20130213/NOTE-utypes-usage-1.0-20130213.html

To handle this in practice:


Example of V2 with APIS database:

EPNcore Table v2

granule_uidgranule_gidobs_idaccess_urlaccess_formatthumbnail_url
o5g202x4q_x2doriginal_datao5g202x4qo5g202x4q_x2d.fitsimage/fitso5g202x4q_x2d_small.jpg
o5g202x4q_x2d_prevoriginal_data_previewo5g202x4qo5g202x4q_x2d.jpgimage/jpgo5g202x4q_x2d_small.jpg
o5g202x4q_procprocessed_datao5g202x4qo5g202x4q_proc.fitsimage/fitso5g202x4q_proc_small.jpg
o5g202x4q_proc_prevprocessed_data_previewo5g202x4qo5g202x4q_proc.jpgimage/jpgo5g202x4q_proc_small.jpg
o5g202x4q_cylcylindrical_projectiono5g202x4q o5g202x4q_cyl.jpgimage/jpgo5g202x4q_cyl_small.jpg
o5g202x4q_pol_npolar_projection_northo5g202x4q o5g202x4q_pol_n.jpgimage/jpgo5g202x4q_pol_n_small.jpg
o5g202x4q_pol_spolar_projection_southo5g202x4q o5g202x4q_pol_s.jpgimage/jpgo5g202x4q_pol_s_small.jpg