GithubHelp home page GithubHelp logo

conesearch's People

Contributors

adanebot avatar jd-au avatar mbtaylor avatar molinaro-m avatar msdemlei avatar pdowler avatar theresadower avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

conesearch's Issues

Max time span allowed in search

Likewise maxSR in the Resource metadata, we'd possibly need a maxTimeSpan for services that want to limit the maximum extent of the searchable time span.

We need to define:

  • what unit will it be in: [s]?
  • defaults to: no limit?
    (this supposing it will be optional)

Not clear whether this, as well as the full registration prescriptions, should stay in the ConeSearch document or continue to live within SimpleDALRegExt.

All sky search radius (also time filtering relevant)

Adding time window filtering to ConeSearch brings in the use case of a TIME only query.
In that case the SR param has to be set to an all-sky value of some sort.
ConeSearch 1.03 allows SR=180 for this.
Are other solutions possible/needed?

Discovery of versioned ConeSearch services

Somehow related to issue #32 , this is a Resource Registry matter.
However some text should be added in the specification document and, like in issue #30 , there is the need to define the proper location of the registering details (ConeSearch or SimpleDALRegExt).

VOTable examples (Appendix A)

The VOTable example from FIRST catalogue needs to be updated or replaced.
The added example with time domain information has to be checked.
This has a dependency on the solution to be taken about VOTable version for ConeSerach responses.

main ID usage

REC-ConeSearch-1.03 states that in the response table:

Exactly one FIELD must have ucd="ID_MAIN", with an array character type (fixed or variable length), representing an ID string for that record of the table. This identifier may not be repeated in the table, and it could be used to retrieve that same record again from that same table.

That is, a main identifier is required in the response and this request's goal is to have an handle on the specific record (not necessarily unique) in the catalogue.

However catalogue providers might have different use case for identifiers:

  • catalogue internal unique identifiers
  • globally/universally unique identifiers
  • no need for unique or main identifiers

Should we modify the main ID behaviour in ConeSearch (while moving to UCD1+, see issue #20)?

Back compatibility will still require to have one (and only one) FIELD with ucd="meta.id;meta.main" (going for the easiest mapping on UCDs), but maybe some other solutions, based on practical use case, can be considered.

VOTable response version

Currently the document says (§3 Succesful Response):

[...] VOTable format (version 1.0 or later) [...]

where the goal was to relax the previous 1.0 to 1.1 limitation.
However, for TIME aware responses, VOTable 1.4+ would be required due to the TIMESYS PARAM addition.

I suppose this issue could be solved by modifying the wording to something like:

... must be in VOTable format. The appropriate VOTable version may vary depending on the service response and needed features; e.g. when returning properly annotated time records, VOTable must be of version 1.4+ due to the addition of the TIMESYS param.

Applying ConeSearch REC-1.03 Erratum 1

Forgot to do this before. Even if applicable only to an error behaviour that is about to be deprecated it is worth the addition for minor revision continuity.

Update .xsd and .vor

(when specification reaches enough maturity, i.e. around Proposed REC)
Need to update the .xsd for validation and the .vor for registering the standard.

Query parameter for table/catalogue pre-selection

There are many cases where a unique conesearch service engine serves multiple catalogues in the backend. The usual solution uses an extra query argument in the ConeSearch base_url to split the registration in multiple ConeSearch services.

In the process of moving to a solution without extra arguments in the base_url (see issue #31 ) a way could be formalising an optional query parameter, e.g. CATALOG, to achieve the same result, thus preparing for a smoother transition towards a no-extra-args specification.

This parameter has the same drawbacks in terms of registration and w.r.t. clients than the TIME one.

Make TIME aware ConeSearch services discoverable

Being the TIME query parameter optional, it is not clear how a client can discover the services that support it. This should be a matter of resource registration, but it could be also conveyed in a metadata only response for the service.

This metadata response can be achieved using a MAXREC=0 call to the service:

  • if it returns an error it means the client deals with a ConeSearch-1.03 service
  • otherwise the metadata would show whether TIME is available as a param for query or not

HTTP GET/POST w.r.t. endpoints & heritage

In the process of moving to a more flexible GET/POST independent query protocol currently there is:

  • a must on allowing HTTP GET
  • a should on allowing HTTP POST
    to preserve compatibility with legacy services using extra query arguments that prevent appending /capabilities or other endpoints to the registered base_url.

Should we keep going this way, maybe alerting that GET-only will be deprecated in the future?
Should we allow REQUEST to handle getCapabilities and such where extra query args are present? (this poses an issue on registering the dual behaviour of services)

Move Unified Content Descriptors to UCD1+ standard

Although this is definitely a major change in the specification, we should try to move the UCDs listed in the ConeSearch protocol to the UCD1+ syntax.

The following UCD 1.0 words are the only ones used in ConeSearch 1.03:

  • ID_MAIN
  • POS_EQ_RA_MAIN
  • POS_EQ_DEC_MAIN
  • OBS_ANG-SIZE

Alignment with core params from SIAP-2.0 / SODA-1.0

Given there's no overlap between current ConeSearch-1.03 query parameters names and the ones used in the core specifications for SIAP-2.0 and SODA-1.0, it may be feasible to allow both query solutions.

Non-time-aware services

I presume that services are not required to be time-aware.

This is alluded to in section 2.1 "The set of query constraints a cone search needs to understand MUST include the RA, DEC, SR parameters, MAY understand the TIME parameter,..." but glossed over elsewhere.

I think it should be spelled out more explicitly elsewhere how the service is expected to behave if it is not time-aware. How do clients presenting a TIME constraint know if it has been honoured? Should a non-time-aware service treat a time constraint as an error?

The current text in sec 3.1 (VOTable compliant response) mandates a time column in the output table alongside the ID, RA and Dec columns. I agree this should be mandatory where the service has performed filtering based on a submitted TIME parameter, but I would suggest that it should be optional for non-time-aware services. If it's mandatory, non-time-aware services may be tempted to put some dummy value in there.

Allowing ST-MOC query

With a working tessellation solution a search by ST-MOC looks promising.
It deviates from the "cone" legacy idea, but allows great flexibility, and it includes TIME filtering at the same time.

TIME parameter addition

In order to allow for time filtering of the results an optional TIME parameter has been added to the specification.

Some clarifications/checks on the current text are needed:

  • in the abstract
  • in §2.1 where its optional behaviour is introduced
  • §2.1.4: where TIME is properly defined (compatible to SIAv2 and SODA)
  • in §5/§5.1.5 within ConeSearch capabilities description
    • this has an attachment to registering and filtering TIME-aware services

HTTPS services

Section 2.1 declares that the {query} resource is of the form http://<server>/<local_path>?.

Do we need to make explict that the http could alternatively be https? We could scatter some httpss in the examples too.

SR=0 wrt MAXREC=0 text clarification

In the porting of the REC-1.03 to the current document SR=0 was described as identical with MAXREC=0.
Since this is not exactly true the analogy among these two parameters has to be relaxed.
(anyway the actual goal is the same, thus MAXREC=0 is encouraged w.r.t. SR=0)

link the originating NVO document

Simple Cone Search as an IVOA specification comes from a US-NVO project document.
The NVO document link went lost in time.
Now that it is available again, it would be nice to have it linked to the IVOA specification.
(it could also be nice to preserve the HTML version of the NVO in the repo)

specific "deprecated" section

Moving ConeSearch to an up to date version w.r.t. current VO technical scenario without moving to a major revision, some solutions coming from REC-ConeSearch-1.03 have been kept but marked as deprecated. This is done, however, inline in the document, mixing the expected default behaviour with the deprecated one.

The idea is to refactor the document to host the deprecated solutions in a dedicated section and let the expected default behaviour sections more readable.

unrecognized custom parameter and optional parameters responses

ConeSearch states (end of §2.1)

If a query includes an optional parameter, either one specified by this document or not, that is not supported by the service implementation, the service must ignore that parameter.

This looks like silent failure.
Maybe we can suggest (a SHOULD?) to add <INFO> elements reporting the unused parameters.

re-add Ray Plante as editor

Ray was removed when thinking about a major revision of this specification.
Since we're dealing first with a minor revision it is appropriate and fair to re-add him.

Changing editor(s): Ada & Ray

In the "volute" changes for the ConeSearch revision Marco Molinaro was added as editor alongside the v1.03 editor Ray Plante.
Given Ray Plante is not actively working within the IVOA and considering that Time Search will have an impact on the ConeSearch revision (just restarted) I suggest to:

  • leave Ray Plante in the authors list only (dropping him from the editor's role)
  • add Ada Nebot as an editor

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.