From c9139919b1b2fd401e70e17eba444073c2995478 Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Fri, 18 Aug 2023 14:34:02 +0200 Subject: [PATCH 01/15] reverted to the text of the initial .tex porting, roughly equivalent to commit 1ea61f8 --- ConeSearch.tex | 1233 ++++++++++++++---------------------------------- 1 file changed, 356 insertions(+), 877 deletions(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index e15ba4d..639510e 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -2,77 +2,45 @@ \input tthdefs \usepackage{todonotes} -\usepackage{enumitem} + \usepackage{listings} \lstloadlanguages{XML,sh} -\lstset{flexiblecolumns=true,tagstyle=\ttfamily, showstringspaces=False} +\lstset{flexiblecolumns=true,tagstyle=\ttfamily, +showstringspaces=False} \usepackage{multirow} - \title{Simple Cone Search} \ivoagroup{Data Access Layer} +\author[http://www.ivoa.net/twiki/bin/view/IVOA/RayPlante]{Raymond Plante} \author[http://www.ivoa.net/twiki/bin/view/IVOA/MarcoMolinaro]{Marco Molinaro} -\author[http://www.ivoa.net/twiki/bin/view/IVOA/AdaNebot]{Ada Nebot} \author[http://www.ivoa.net/twiki/bin/view/IVOA/MarkusDemleitner]{Markus Demleitner} \author[http://www.ivoa.net/twiki/bin/view/IVOA/BobHanisch]{Robert Hanisch} -\author[http://www.ivoa.net/twiki/bin/view/IVOA/RayPlante]{Raymond Plante} \author[http://www.ivoa.net/twiki/bin/view/IVOA/AlexSzalay]{Alex Szalay} \author[http://www.ivoa.net/twiki/bin/view/IVOA/RoyWilliams]{Roy Williams} -\editor{Marco Molinaro, Ada Nebot, Raymond Plante} +\editor{Ray Plante, Marco Molinaro} \previousversion[http://www.ivoa.net/Documents/REC/DAL/ConeSearch-20080222.html]{REC 1.03} \previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070914.html]{PR 2007-09-14} \previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070628.html]{PR 2007-06-28} \previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20060908.html]{PR 2006-09-08} + -\begin{document} \begin{abstract} This specification defines a simple -query protocol, named Simple Cone Search, for retrieving records from a -catalog of astronomical sources. The query describes a sky position and -an angular distance, defining a cone on the sky. The response returns a -list of astronomical sources from the catalog whose positions lie within -the cone, formatted as a VOTable. This version aims at aligning this -specification with the Data Access Layer (DAL) landscape. We also -extend the protocol to query catalogs by an interval of time. The -response returns a list of astronomical sources from the catalog whose -time values lie within the time interval, formatted as a -VOTable. +\begin{document} +\begin{abstract} +This specification defines a simple query protocol for retrieving records from a catalog of astronomical sources. The query describes sky position and an angular distance, defining a cone on the sky. The response returns a list of astronomical sources from the catalog whose positions lie within the cone, formatted as a VOTable. This version of the specification is essentially a transcription of the original Cone Search specification in order to move it into the IVOA standardization process. +\end{abstract} -\end{abstract} +\section*{Acknowledgments} +This document was originally published as a document of the US National Virtual Observatory (NVO), available at \url{http://us-vo.org/pubs/files/conesearch.html}\todo{this link does not work anymore, find out if it's possible to find a link or remove it.}. This IVOA version is essentially a transcription of that document into the IVOA standards document format. Minor changes have been made to sharpen the specification description where needed and to otherwise fit it into the IVOA standards context; these changes are enumerated in Appendix \ref{appendix:c5}. It is the intention of this document that all existing services compliant with the original NVO document will be compliant with this specification. Similarly, all future service implementations that are based on this specification are expected to be compliant with the spirit of the original NVO document and practices in the VO current at the time of this writing; thus, existing client applications should work with the new implementations without change. +Cone Search represents the first and arguably the most successful "standard protocol" developed within the Virtual Observatory movement. The editor, therefore, gratefully acknowledges the work of the original authors of the Cone Search specification as well as the numerous data providers who have implemented and continue to support this protocol. -\section*{Acknowledgments} This document was originally published as a -document of the US National Virtual Observatory (NVO) -\footnote{ - The NVO document: "Conesearch definition" (Roy Williams, Bob Hanish, Alex Szalay; April - 2002) is currently available at this link: - \url{https://wiki.ivoa.net/internal/IVOA/ConeSearch/NVO_conesearch_April2002.html}. -} -and then transcripted into an -IVOA standards document format to became an IVOA recommendation. The -changes made in this transcription and in the process of producing the -first recommendation are reported in Appendix \ref{app:changes}. - -The Simple Cone Search version 1.03 document has been developed with -support from the National Science Foundation's Information Technology -Research Program under Cooperative Agreement AST0122449 with The Johns -Hopkins University. - -The ConeSearch-1.1 revision has been developed under the ASTERICS -project, supported by the European Commission Framework Programme -Horizon 2020 Research and Innovation action, grant agreement n. 653477. -This work has been supported by the ESCAPE project (the European Science -Cluster of Astronomy \& Particle Physics ESFRI Research Infrastructures) -that has received funding from the European Union’s Horizon 2020 -research and innovation programme under the Grant Agreement n. 824064 - -Work of the original authors of the Cone Search specification as well as -the numerous data providers who have implemented and continue to support -this protocol is kindly acknowledged. +This document has been developed with support from the National Science Foundation's Information Technology Research Program under Cooperative Agreement AST0122449 with The Johns Hopkins University. \section*{Conformance-related definitions} @@ -80,35 +48,22 @@ \section*{Conformance-related definitions} ``OPTIONAL'' (in upper or lower case) used in this document are to be interpreted as described in IETF standard RFC2119 \citep{std:RFC2119}. -The \emph{Virtual Observatory (VO)} is a general term for a collection -of federated resources that can be used to conduct astronomical -research, education, and outreach. The -\href{http://www.ivoa.net}{International Virtual Observatory Alliance -(IVOA)} is a global collaboration of separately funded projects to -develop standards and infrastructure that enable VO applications. +The \emph{Virtual Observatory (VO)} is a +general term for a collection of federated resources that can be used +to conduct astronomical research, education, and outreach. +The \href{http://www.ivoa.net}{International +Virtual Observatory Alliance (IVOA)} is a global +collaboration of separately funded projects to develop standards and +infrastructure that enable VO applications. \section{Introduction} -This specification describes how a provider of an astronomical source -catalog can publish that catalog to the Virtual Observatory in such a -way that a simple cone search can be done. The data remains in the -control of the data provider, served through a web server to the world, -but the query profile and response profile are carefully controlled, as -described below. It is intended that setting up this web service be -simple enough that data providers will not have to spend too much time -on it (their funding to support such services is typically small). At -the same time, the service implementation and the data it provides can -serve as a basis for more sophisticated tools. - -This specification does not specify how cone search services are -implemented, or how the data are stored or manipulated. The concern of -this specification is how the data are exposed to the world through -well-defined requests and responses. - -This specification assumes that the data provider has already selected a -catalog of astronomical sources. This catalog can be presented as a -single table; it is expected that the table contains several columns. +This specification describes how a provider of an astronomical source catalog can publish that catalog to the Virtual Observatory in such a way that a simple cone search can be done. The data remains in the control of the data provider, served through a web server to the world, but the query profile and response profile are carefully controlled, as described below. It is intended that setting up this web service be simple enough that data providers will not have to spend too much time on it (their funding to support such services is typically small). At the same time, the service implementation and the data it provides can serve as a basis for more sophisticated tools. + +This specification does not specify how Cone Search services are implemented, or how the data are stored or manipulated. The concern of this specification is how the data are exposed to the world through well-defined requests and responses. + +This specification assumes that the data provider has already selected a catalog of astronomical sources. This catalog can be presented as a single table; it is expected that the table contains several columns. \subsection{Role within the VO Architecture} @@ -116,844 +71,368 @@ \subsection{Role within the VO Architecture} \centering % Get the architecture diagram from the TCG chair -% http://wiki.ivoa.net/twiki/bin/view/IVOA/IvoaTCG If they give you a -% PDF, for now dumb it down to a png by convert -antialias -density -% 72x72 archdiag.pdf archdiag.png Oh -- Notes don't need this; you'd -% have to remove archdiag.png from FIGURES in the Makefile, too. - -\includegraphics[width=0.9\textwidth]{role_diagram.pdf} -\caption{Architecture diagram for Simple Cone Search} -\label{fig:archdiag} +% http://wiki.ivoa.net/twiki/bin/view/IVOA/IvoaTCG +% If they give you a PDF, for now dumb it down to a png by +% convert -antialias -density 72x72 archdiag.pdf archdiag.png +% Oh -- Notes don't need this; you'd have to remove archdiag.png +% from FIGURES in the Makefile, too. + +\includegraphics[width=0.9\textwidth]{archdiag.png} +\caption{Architecture diagram for SCS - TODO} +\label{fig:archdiag} \end{figure} Fig.~\ref{fig:archdiag} shows the role this document plays within the -IVOA architecture \citep{2010ivoa.rept.1123A}. - -\section{Resource} -\label{sec:resif} - -A Simple Cone Search service for accessing catalogue resources is -implemented as a synchronous resource, as compliant as possible to the -DALI specification \citep{2017ivoa.spec.0517D}. - -\begin{table}[th] -\begin{center} -\begin{tabular}{p{0.25\textwidth}p{0.25\textwidth}p{0.25\textwidth}} -\sptablerule \textbf{resource type}&\textbf{resource name}&\textbf{required}\\ -\sptablerule \{query\} & service specific & yes\\ VOSI-capabilities & /capabilities & should\\ VOSI-availability & (/availability) & should\\ -\sptablerule -\label{table:resources} -\end{tabular} -\caption{Simple Cone Search resources tree} -\end{center} -\end{table} - -It \textbf{must} have one \{query\} resource and \textbf{should} have a -VOSI-capability resource and a VOSI-availability one. The -VOSI-capability \textbf{must} be a sibling to the \{query\} one. - -\subsection{\{query\} resource} \label{sec:basepar} The Simple Cone -Search \{query\} resource \textbf{must} meet the following requirements: -\begin{itemize} \item the resource \textbf{must} respond to requests -submitted using an HTTP GET query string, and \textbf{should} respond to -HTTP POST query actions (as described in later in this same section); -\item the response, by default, \textbf{must} be a valid VOTable -document, providing a table containing the sources of the catalogue -whose positions and/or timestamps are within the cone and/or time -interval described in the query request (see Sec.~\ref{sec:response}); -\item in case of error, the response \textbf{must} follow prescriptions -as described in Sec.~\ref{sec:error}. \end{itemize} - -The Simple Cone Search service \texttt{\{query\}} resource is a -synchronous web resource, as described by DALI, of the form -$$\hbox{\nolinkurl{http:///?} }$$ To this base URL -the query parameters, described hereafter, are attached to build the -query request to be submitted through HTTP. - -Usage of fixed, custom query parameters, defined by the service provider -to build a base URL of the form -$$\hbox{\nolinkurl{http:///?&}}$$ -(standard behaviour of base URLs in Simple Cone Search-1.03) is allowed -but \textbf{deprecated} in order to bring cone searches base URLs in the -common ReST shape promoted by DALI. Clients \textbf{must} anyway treat -opaquely these fixed \texttt{} additions. - -In the case of HTTP POST action, the behaviour of Simple Cone Search -services having the deprecated base URL format (including custom extra -parameters) is not specified. It is however suggested to adopt a mixed -GET/POST solution, so the let the fixed \texttt{} arguments -always be submitted in the query part of the HTTP request. - -On the opposite, services having plain \texttt{\{query\}} base URLs as -mandated by this specification are highly encouraged to support HTTP -POST method in order to fulfill DALI compliance. - -The set of query constraints a cone search needs to understand -\textbf{must} include the \textbf{RA}, \textbf{DEC}, \textbf{SR} -parameters, \textbf{may} understand the TIME parameter, -\textbf{should} include the \textbf{MAXREC} and \textbf{RESPONSEFORMAT} -ones and \textbf{may} include the \textbf{VERB} one, all of which are to -be interpreted with the following stated meaning and the DALI -recommendations about parameters. - -\subsubsection{RA} \textbf{RA} represents a right-ascension in the ICRS -coordinate system for the position of the center of the cone to search, -given in decimal degrees. It is a single valued parameter and -\textbf{must} be present in the query. - -\subsubsection{DEC} \textbf{DEC} represents a declination in the ICRS -coordinate system for the position of the center of the cone to search, -given in decimal degrees. It is a single value parameter and -\textbf{must} be present in the query. - -\subsubsection{SR} \textbf{SR} represents the radius of the cone to -search, given in decimal degrees. It is a single valued parameter and -\textbf{must} be present in the query. - -If set to zero (SR=0) it should -not return an error condition because the request might describe an -interest in retrieving only the metadata structure of the service's -response (i.e. discovery of the FIELDS delivered by the service). - -This is similar to setting MAXREC=0, i.e. a service metadata -request as prescribed by DALI\footnote{SR=0 is kept in this version of -this specification for back compatibility. It is suggested to prefer the -usage of MAXREC to enable metadata discovery}\textsuperscript{, -}\footnote{SR=180 can be used for cases in which only information of -time is provided or where a cone search is not a convenient search for -the location of a source in they sky (e.g. GW and neutrinos).} - -\subsubsection{TIME} \textbf{TIME} represents the time interval to be -searched for data. The value is an open or closed interval with numeric -values (interpreted as Modified Julian Dates). A TIME constraint is -satisfied if the interval intersects the time coverage of the -observation. Values used in the TIME parameter are always interpreted as -specified in DALI in the section on literal values: UTC time scale and -UNKNOWN reference position. Modified Julian Date values are always in -days. The parameter TIME \textbf{may} be present in the query. - -\subsubsection{MAXREC} As defined by DALI a cone search \textbf{should} -accept the \textbf{MAXREC} parameter to let the client limit the number -of records returned or require a service metadata response. -Its usage is encouraged and preferred to the SR=0 solution for metadata -discovery. - -\subsubsection{RESPONSEFORMAT} \label{subsubsec:responseformat} A -Simple Cone Search service \textbf{must} provide responses in VOTable -\citep{2019ivoa.spec.1021O} format, compliant with respect to what will be -detailed in Sec.~\ref{sec:response}, but \textbf{should} also support -the DALI \textbf{RESPONSEFORMAT} parameter. Allowed media types for -VOTable response \textbf{should} be the -\texttt{application/x-votable+xml} or \texttt{text/xml} as specified by -DALI but \texttt{text/xml;content=x-votable} may be considered legal for -backward compatibility reasons. - -\subsubsection{VERB} The query \textbf{may} contain the optional single -valued parameter, \textbf{VERB}, whose value is an integer (either 1, 2, -or 3) indicating verbosity which determines how many columns are to be -returned in the resulting table. If the service supports the parameter, -then when the value is 1, the response should include the bare minimum -of columns that the provider considers useful in describing the returned -objects (while still remaining compliant with this standard; see section -\ref{sec:response} below). When the value is 3, the service should -return all of the columns that are available for describing the objects. -A value of 2 is intended for requesting a medium number of columns -between the minimum and maximum (inclusive) that are considered by the -provider to most typically useful to the user. When the VERB parameter -is not provided, the server should respond as if VERB=2. If the VERB -parameter is not supported by the service, the service should ignore the -parameter and should always return the same set of columns for every -request. - -There may be other parameters in the query, but this document does not -specify their meaning or usage. 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. - -A query following this syntax represents a request for information on -sources located within the specified cone on the sky. - -\subsection{Query examples} - -\begin{bigdescription} - \item[Minimal Simple Cone Search query] - \nolinkurl{http://my.cone/search?RA=10.68\&DEC=41.26\&SR=0.01} - \item[Service Metadata query] - \nolinkurl{http://my.cone/search?cat=A1\&RA=0\&DEC=0\&SR=0\&MAXREC=0} - \item[Limit number of records in response] - \nolinkurl{http://my.cone/search?RA=10.68\&DEC=41.26\&SR=1\&MAXREC=100} - \item[Ask for the minimal set of response fields] - \nolinkurl{http://my.cone/search?RA=10.68\&DEC=41.26\&SR=0.01\&VERB=1} - \item[Query by time interval] - \nolinkurl{http://my.cone/search?RA=10.68\&DEC=41.26\&SR=ALLSKY&TIME=MJD\_MIN\%20MJD\_MAX} - \item[Query by position and time interval] - \nolinkurl{http://my.cone/search?RA=10.68\&DEC=41.26\&SR=0.01&TIME=MJD\_MIN\%20MJD\_MAX} -\end{bigdescription} - -\subsection{Availability: VOSI-availability} A web service with Simple -Cone Search capabilities \textbf{should} have a VOSI-availability -resource as described in DALI. Since VOSI relaxed the availability -endpoint, letting it be located elsewhere than being a sibling to the -service base URL, support for this interface is encouraged even in the -case of services having base URL of the deprecated form. - -\subsection{Capabilities: VOSI-capabilities} A web service with Simple -Cone Search capabilities must have a VOSI-capabilities resource as -described in DALI. The standardID for the {query} capability is -reported, among other details and recommendations in -Sec.~\ref{subsec:capability}. - -Services that present the \texttt{\{query\}} base URL as a plain ReST -resource without additional opaque query parameters are strongly -encouraged to provide a capabilities endpoint as a sibling to the -\texttt{\{query\}} resource. The capabilities resource may be unfeasible -to maintain for services exposing a base URL with the deprecated format. - -\section{Successful Response} \label{sec:response} A successful query -\textbf{must} result in an HTTP response with status code 200 (OK) and a -content that, by default, \textbf{must} be in VOTable format (version -1.0 or later), that represents a table of astronomical sources whose -positions are within the cone and/ or time inverterval as applicable -(see Appendix \ref{app:responsesample} for examples). - -There may also be other sources outside the cone, the service -implementor may decide on the exact search criterion used internally to -the service to select the sources. - -The response format may be other than VOTable when requested using the -RESPONSEFORMAT query parameter described in -Sec.~\ref{subsubsec:responseformat}. Mime-type of the response will vary -accordingly to the output format, again as prescribed by DALI and -reported in Sec.~\ref{subsubsec:responseformat}. - -\subsection{VOTable compliant response} - -In the case the service response is serialised in the default, VOTable, -format, this response \textbf{MUST} comply with the following -requirements. - -There \textbf{must} be a single \xmlel{RESOURCE} with -\xmlel{type}=\texttt{"results"} in -the VOTable, and containing a single \xmlel{TABLE} - -The \xmlel{TABLE} \textbf{must} have \xmlel{FIELD}s where the following -UCD values have been set. There \textbf{must} only be one \xmlel{FIELD} -with each of these UCDs: - -\begin{itemize} - \item \textbf{Exactly one} \xmlel{FIELD} \textbf{must} have -\xmlel{ucd}=\texttt{"ID\_MAIN"}, with an array character type (fixed or -variable length), representing an ID string for that record of the table. -This identifier \textbf{may not} be repeated in the table, and it could -be used to retrieve that same record again from that same table. - \item \textbf{Exactly one} \xmlel{FIELD}, representing the right -ascension of the source in the ICRS coordinate system, \textbf{must} -have \xmlel{ucd}=\texttt{"POS\_EQ\_RA\_MAIN"}, and have \xmlel{datatype} -set to \texttt{"float"} or \texttt{"double"}. - \item \textbf{Exactly one} \xmlel{FIELD}, representing the declination -of the source in the ICRS coordinate system, \textbf{must} have -\xmlel{ucd}=\texttt{"POS\_EQ\_DEC\_MAIN"}, and have \xmlel{datatype} -set to \texttt{"float"} or \texttt{"double"}. - \item \textbf{Exactly one} \xmlel{FIELD}, representing the time of -the observation, \textbf{must} have \xmlel{ucd}=\texttt{"time.epoch;meta.main"}, -and have \xmlel{datatype} set to \texttt{"float"} or \texttt{"double"}. -\end{itemize} - -The VOTable may include an expression of the uncertainty of the -positions given in the above mentioned fields to be interpreted either -as a positional error of the source positions, or an angular size if the -sources are resolved. If this uncertainty is not provided, it should be -taken to be zero; otherwise, it may be set for all table entries with a -\xmlel{PARAM} in the \xmlel{RESOURCE} which has a UCD that is set to -OBS\_ANG-SIZE and has a value which is -the angle in decimal degrees. Alternatively, a different value for each -row in the table can be given via a \xmlel{FIELD} in the table having a -UCD set to OBS\_ANG-SIZE. There may be other \xmlel{FIELD}s in the -table. Their specification \textbf{should} include description, -datatype, and UCD. - -\section{Error Response} \label{sec:error} - -If the service detects an exceptional condition, it \textbf{should} -return an error document with an appropriate status code, as specified -by DALI, with, possibly, a Content-Type header to tell the client the -format of the document. - -In the case the error is expressed in VOTable format, recommendation -expressed in Section 4.4 of DALI (currently version 1.1) \textbf{should} -be followed, inluding the overflow behaviour in the case the MAXREC -parameter is in use. - -Errors \textbf{must} be reported in case any one of the three required -paramaters (RA, DEC, SR) is missing, or if their values cannot be parsed -to floating-point numbers, or if the numbers are out of range (DEC=91.0, -for example). - -The service \textbf{may} also return an error if the search radius -(given by the SR parameter) is larger than the one set by the -\xmlel{maxSR} element child of the \xmlel{capability} one of the service -described as a VO resource (see Sec.~\ref{sec:regext}). - -The service \textbf{may}, as an alternative, report exceptions using the -profile expressed by the previous Simple Cone Search recommendation -\citep[v1.03]{2008ivoa.specQ0222P}. This alternative for error reporting is to be -considered \textbf{deprecated}, being the purpose of this specification -to fill in the gap of the Simple Cone Search protocol with the general -DAL landscape. The way the alternative works is detailed in -Sec.~\ref{subsec:err103} here below. - -\subsection{(\textbf{deprecated}) Alternative Error Response} -\label{subsec:err103} In the case of error, the service \textbf{must} -respond with a VOTable that contains a \xmlel{PARAM} element or an -\xmlel{INFO} element with \xmlel{name}=\texttt{"Error"}, where -the corresponding \xmlel{value} attribute should contain some -explanation of the nature of the error. No other \xmlel{PARAM} or -\xmlel{INFO} element in the response can be present having -\xmlel{name}=\texttt{"Error"} set, but additional \xmlel{INFO} and -\xmlel{PARAM} elements with the \xmlel{name} parameter set to a different value -are allowed. If an \xmlel{INFO} element is -used, it must appear as a direct child of one of the following elements: -\begin{itemize} \item the root \xmlel{VOTABLE} element (which is -preferred by this document), or \item the \xmlel{RESOURCE} element -\end{itemize} - -If a \xmlel{PARAM} element is used, it must appear as a direct child of -the \xmlel{RESOURCE} element. -Please note -that, apart from being deprecated here, the use of the \xmlel{PARAM} -element to convey error response was already discouraged in the previous -version of this specification. - -\begin{bigdescription} +IVOA architecture \citep{note:VOARCH}. + +\section{Service Interface Requirements} +\label{sec:2} + +A service implementation that is compliant with this standard must meet the following requirements: + +\begin{enumerate} + \item the service must respond to a HTTP GET request represented by a URL having two parts:\\ + \begin{itemize} + \item A base URL of the form\\ + + \url{http:///?[&[...]]}\\ + + where and are URI-compliant components indicating the domain address and local location path where the service is deployed. The may end with one or more locally supported URL arguments, ; these arguments are not recognized parts of the Cone Search protocol and thus are treated opaquely by clients of the service as part of the base URL.\\ +Note that when it contains extra GET arguments, the base URL ends in an ampersand, \&; if there are no extra arguments, then it ends in a question mark, ?.\\ + \begin{bigdescription} + \item[Examples] \url{http://mycone.org/cgi-bin/VOsearch?}\\ + \url{http://adil.ncsa.uiuc.edu/vocone?resolv&issurvey=T&} + \end{bigdescription} + Every query to a given cone search service uses the same base URL. + \item Constraints expressed as a list of ampersand-delimited GET arguments of the form: = where is a parameter name specified by this specification and is its value. The constraints represent the query parameters which can vary for each successive query. The order of the name-parameter pairs is not significant. + \item The baseURL and constraint list are concatenated to form the query. + \item The set of query constraints must include the following parameters, which are interpreted by the service with the stated meaning: + \begin{description} + \item[\textbf{RA}] a right-ascension in the ICRS coordinate system for the positon of the center of the cone to search, given in decimal degrees. + \item[\textbf{DEC}] a declination in the ICRS coordinate system for the positon of the center of the cone to search, given in decimal degrees. + \item[\textbf{SR}] the radius of the cone to search, given in decimal degrees. + \end{description} + \begin{bigdescription} + \item[Example] \url{http://mycone.org/cgi-bin/search?RA=180.567&DEC=-30.45&SR=0.0125} + \end{bigdescription} + \item The query MAY contain the optional parameter, \textbf{VERB}, whose value is an integer--either 1, 2, or 3--indicating verbosity which determines how many columns are to be returned in the resulting table. Support for this parameter by a Cone Search service implementation is optional. If the service supports the parameter, then when the value is 1, the response should include the bare minimum of columns that the provider considers useful in describing the returned objects (while still remaining compliant with this standard; see section 2.2 below). When the value is 3, the service should return all of the columns that are available for describing the objects. A value of 2 is intended for requesting a medium number of columns between the minimum and maximum (inclusive) that are considered by the provider to most typically useful to the user. When the VERB parameter is not provided, the server should respond as if VERB=2. If the VERB parameter is not supported by the service, the service should ignore the parameter and should always return the same columns for every request. + \item There may be other parameters in the query, but this document does not specify their meaning or usage. 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. + \end{itemize} + A query following this syntax represents a request for information on sources located within the specified cone on the sky. + \item The service must respond with an XML document in the VOTable format, that represents a table of astronomical sources whose positions are within the cone (see Appendix \ref{appendix:a} for an example). There may also be other sources outside the cone -- the service implementor may decide on the exact search criterion used internally to the service to select the sources. + The base MIME-type of the HTTP response should be \texttt{text/xml}. The more specific form \texttt{text/xml;content=x-votable} may optionally be used. The MIME-type, \texttt{text/xml;votable} shall also be considered legal (for backward compatibility reasons); however, this value is strongly discouraged as it is not compliant with the MIME-type standard \citep{std:MIME}. The XML content of the response must be compliant with VOTable schema, version 1.0 \citep{std:VOT11} or 1.1 \citep{2004ivoa.spec.0811O}. + \begin{bigdescription} + \item[Editor's Note] The original NVO specification allowed a MIME-type of text/xml;votable, thus for backward compatibility this is still allowed but discouraged. + \end{bigdescription} + The VOTable MUST comply with these conditions: + \begin{itemize} + \item There must be a single RESOURCE in the VOTable, and that contains a single TABLE. + \item The TABLE must have FIELDS where the following UCD \todo{SCS-1.03 used to point to CDS tools, but now those ones are overwritten by UCD1+ tools} values have been set. There must only be one FIELD with each of these UCDs: + \begin{itemize} + \item 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. + \item Exactly one FIELD must have ucd="POS\_EQ\_RA\_MAIN", with type double, representing the right-ascension of the source in the ICRS coordinate system. + \item Exactly one FIELD must have ucd="POS\_EQ\_DEC\_MAIN", with type double, representing the declination of the source in the ICRS coordinate system. + \end{itemize} + \item The VOTable may include an expression of the uncertainty of the positions given in the above mentioned fields to be interpreted either as a positional error of the source positions, or an angular size if the sources are resolved. If this uncertainty is not provided, it should be taken to be zero; otherwise, it may be set for all table entries with a PARAM in the RESOURCE which has a UCD that is set to OBS\_ANG-SIZE and has a value which is the angle in decimal degrees. Alternatively, a different value for each row in the table can be given via a FIELD in the table having a UCD set to OBS\_ANG-SIZE. + \item There may be other FIELDs in the table. Their specification should include a description, data-type, and UCD. + \end{itemize} + \item The service must respond with a stubbed version of the VOTable in the case of error. This must happen if the three required parameters (RA, DEC, SR) are not all present, or if their values cannot be parsed to floating-point numbers, or if the numbers are out of range (DEC=91.0, for example). The service may also make an error return if the search radius (give by the SR parameter) is larger than the MaxSR parameter of the Resource Profile (see Section \ref{sec:3}). + In the case of error, the service MUST respond with a VOTable that contains a single PARAM element or a single INFO element with \texttt{name="Error"}, where the corresponding value attribute should contain some explanation of the nature of the error. If an INFO element is used, it must appear as a direct child of one of the following elements: + \begin{itemize} + \item the root VOTABLE element (which is preferred by this document), or + \item the RESOURCE element + \end{itemize} + If a PARAM element is used, it must appear as a direct child of one of following elements: + \begin{itemize} + \item the RESOURCE element, or + \item a DEFINITION element below the root VOTABLE element (which is discouraged by this document). + \end{itemize} + \begin{bigdescription} + \item[Editor's Note] It was recognized that this requirement, as it was described in the original NVO specification, is ambiguous about both the element to use for the ERROR message and its location in the document. The VOTable standard allows PARAM and INFO elements to appear in various places within the document. Since several of the different methods have been used in practice by Cone Search service implementations, no attempt is made in this version to correct this ambiguity. All of the above-mentioned locations should be considered legal, and Cone Search service clients should be prepared to look in all of them for an ERROR message. The use of PARAM as a child of DEFINITIONS is discouraged as the DEFINITIONS element was deprecated in VOTable v1.1. + \end{bigdescription} + \begin{bigdescription} \item[Example Error Responses] Error INFO as child of VOTABLE (preferred)\\ - -\begin{lstlisting}[language=XML,basicstyle=\footnotesize] + \begin{lstlisting}[language=XML,basicstyle=\footnotesize] - MAST Simple Cone Search Service - - -\end{lstlisting} - -Error PARAM as child of RESOURCE (allowed) - -\begin{lstlisting}[language=XML,basicstyle=\footnotesize] + MAST Simple Cone Search Service + + + \end{lstlisting} + Error PARAM as child of RESOURCE (allowed) + \begin{lstlisting}[language=XML,basicstyle=\footnotesize] - HEASARC Browse data service Please send inquiries to - mailto:request@athena.gsfc.nasa.gov - - - + + HEASARC Browse data service + Please send inquiries to mailto:request@athena.gsfc.nasa.gov + + + + -\end{lstlisting} - -\end{bigdescription} - -Queries targeting no records \textbf{should not} generate an error -response, but an empty metadata response. - -\section{Resource Registry Extension} \label{sec:regext} - -\begin{admonition}{Note} The content of \textbf{Section -\ref{sec:regext}} is taken from REC-SimpleDALRegExt-1.1, sections 1, 2 -and 3, specifically section 3.1 that is dedicated to the Simple Cone -Search case. \end{admonition} - -To adequately describe that a service supports the Simple Cone Search -protocol, it is necessary to define Simple Cone Search specific -capability metadata. This is needed both to allow discovery of cone -search services within VO registered resources (through the Registry -Interfaces standard, \citet{2018ivoa.spec.0723D}, deploying VOResource documents, -\citet{2018ivoa.spec.0625P}) and to generally describe service behaviour to help -applications consume it properly, given compliance to the protocol. - -This section specifies these metadata for cone search resources and is -intended to be applicable wherever VOResource records are used, in -particular for standard encoding of resource descriptions within IVOA -registries and for encoding capability metadata available through VOSI -\citep{2017ivoa.spec.0524G} interfaces. - -Apart from the above standards referenced here above, this registry -extension depends on the VODataService \citep{2010ivoa.spec.1202P} standard. - -\subsection{Resource record and Capability requirements} To be -recognized as a Simple Cone Search, the service resource must be -described as a resource of type \xmlel{vr:Service} (defined in the -VOResource schema) or one of its legal sub-types. The resource type is -set by setting the \xmlel{xsi:type} attribute on the element -representing the root of the VOResource record to the -namespace-qualified resource type name. Simple Cone Search -\textbf{should} be of the resource type \xmlel{vs:CatalogService} -(defined in the VODataService extension schema)\footnote{\xmlel{vr:} and -\xmlel{vs:} are the canonical prefixes for the namespaces associated -with VOResource and VODataService XML schemata}. - -Since the \xmlel{vs:CatalogService} resource type allows it, record -authors are encouraged to include a full description of the columns in -the table returned in query response (assuming full verbosity), as well -as to provide sky coverage information. - -\subsubsection{Capability} \label{subsec:capability} The VOResource -record \textbf{must} include a \xmlel{capability} element that -\textbf{must} have a \xmlel{standardID} attribute set to -$$\hbox{\nolinkurl{ivo://ivoa.net/std/conesearch#query-1.1}}$$ to -unambiguously identify the resource as a Simple Cone Search compliant to -Simple Cone Search-1.1 version. The \xmlel{capability} \textbf{should} -also have \xmlel{xsi:type="cs:ConeSearch"} to specialize the -\xmlel{vr:Capability} to be of the specific sub-type supporting the cone -search protocols. The \xmlel{cs:} here refers to the canonical prefix -for the namespace associated with the Simple Cone Search extension -schema, that is -$$\hbox{\nolinkurl{http://www.ivoa.net/xml/ConeSearch/v1.0} ,}$$ the -same as for Simple Cone Search-1.03, as explained in the XML Schema -Versioning \citep{2018ivoa.spec.0529H} document; distinction among the -two schemata version being delivered by the \xmlel{version} attribute in -the schema root element. - -The \xmlel{cs:ConeSearch} type is described in Sec.~\ref{subsec:cstype}. - -\subsubsection{Interface} The \xmlel{capability} element described in -Sec.~\ref{subsec:capability} \textbf{must} include a child -\xmlel{interface} element. The \xmlel{interface} element -\xmlel{xsi:type} attribute \textbf{must} be set to -\texttt{vs:ParamHTTP}, and its \xmlel{role} attribute \textbf{must} be -set to \texttt{"std"}. A \xmlel{accessURL} element within that -\xmlel{interface} \textbf{must} be set to the \xmlel{} of the -service (see \ref{sec:basepar}). - -It is not necessary to provide the \xmlel{use} attribute to the -\xmlel{accessURL} element (as its value can be assumed); however, when -it is provided, it must be set to \texttt{"base"}. Similarly, it is not -necessary to provide the \xmlel{interface} element with -\xmlel{queryType} or \xmlel{resultType} elements; however, when -provided, their values should be \texttt{"GET"} and -\texttt{"application/x-votable+xml"}, respectively. The -\xmlel{vs:ParamHTTP} allows one to describe input parameters supported -by the service; description authors are encouraged to list the optional -parameters and any custom parameters supported by the instance of the -service. - -\subsubsection{\textit{cs:}ConeSearch} \label{subsec:cstype} The -\xmlel{cs:ConeSearch} type is a \xmlel{vr:Capability} sub-type that -should be used to describe a service's support for the Simple Cone -Search protocol; it is defined as follows: - -% GENERATED: !schemadoc ConeSearch-v1.1.xsd ConeSearch -\begin{generated} -\begingroup - \renewcommand*\descriptionlabel[1]{% - \hbox to 5.5em{\emph{#1}\hfil}}\vspace{2ex}\noindent\textbf{\xmlel{cs:ConeSearch} Type Schema Documentation} - -\noindent{\small The capabilities of a Cone Search implementation. -\par} - -\vspace{1ex}\noindent\textbf{\xmlel{cs:ConeSearch} Type Schema Definition} - -\begin{lstlisting}[language=XML,basicstyle=\footnotesize] - - - - - - - - - - - - -\end{lstlisting} - -\vspace{0.5ex}\noindent\textbf{\xmlel{cs:ConeSearch} Extension Metadata Elements} - -\begingroup -\small + \end{lstlisting} + \end{bigdescription} + Other conditions may NOT be considered erroneous, for example if a query cone is in the Southern hemisphere and the catalog coverage is in the Northern hemisphere. This type of query is different from an error return; it should return a VOTable as described above, with metadata, but no data records. In particular, a zero value of Search Radius should not return an error condition. This is because an application may be more interested in the metadata than the data, and send a fixed query (for example RA=0\&DEC=90\&SR=0) simply to discover the fields delivered by the service. +\end{enumerate} + +\section{The Resource Profile} +\label{sec:3} +A Cone Search service MUST be described with a Resource Profile that includes the following information. The Profile is composed of named metadata listed below. The format used to encode the profile should be compliant with the publishing standards of the IVOA throughout the time the service is supported by the data provider. The metadata names and values used in the profile encoding should match those given below as closely as possible; where they do not match exactly, they should be consistent with the IVOA metadata conventions in place at any given time and the mapping of names and values actually used and those given below should be well documented. \begin{bigdescription} - - \item[Element \xmlel{maxSR}] - \begin{description} - \item[Type] floating-point number: \xmlel{xs:float} - \item[Meaning] The largest search radius, in degrees, that will be -accepted by the service without returning an error condition. Not -providing this element or specifying a value of 180 indicates that there -is no restriction. - \item[Occurrence] optional \item[Comment] Not providing a value is the -prefered way to indicate that there is no restriction. - \end{description} - - \item[Element \xmlel{maxRecords}] - \begin{description} - \item[Type] \xmlel{xs:positiveInteger} - \item[Meaning] The largest number of records that the service -will return. Not providing this value means that there is no effective limit. - \item[Occurrence] optional - \item[Comment] This does not refer to the -total number of records in the catalog but rather maximum number of -records the service is capable of returning. A limit that is greater -than the number of records available in the archive is equivalent to -their being no effective limit. (See RM, Hanisch 2007.) - \end{description} - - \item[Element \xmlel{verbosity}] - \begin{description} - \item[Type] boolean (true/false): xs:boolean - \item[Meaning] True if the service supports the VERB keyword; false, otherwise. - \item[Occurrence] required - \end{description} - - \item[Element \xmlel{testQuery}] - \begin{description} - \item[Type] composite: \xmlel{cs:Query} - \item[Meaning] A query that will result in at least one matched -record that can be used to test the service. - \item[Occurrence] optional - \end{description} - +\item[Editor's Note] The original NVO specification pre-dates the IVOA standard for resource metadata [RM], and so, obviously, some inconsistencies with that standard exist. To deal with this, the wording of this section has been altered to allow profiles to be constructed according to the latest practices in the IVOA. Appendix B outlines the mapping of the metadata listed below to that in the RM as well as the XML Schema used to render the metadata within a Registry. \end{bigdescription} -\endgroup +Several of the metadata listed below can have values that are hierarchical; this hierarchy should be represented in a manner most appropriate to the format used. When the format does not provide any such mechanism, it is recommended that the value be represented as a strings delimited by dots with the root domain of the value appearing first. -\endgroup -\end{generated} - -% /GENERATED - -The custom metadata that the \xmlel{cs:ConeSearch} type provides is -given above. Other genaral metadata useful to describe the Simple Cone -Search specification are directly part of the core VOResource schema. - -\subsubsection{testQuery and the Query Type} - -The \xmlel{testQuery} element is intended to help other VO components -(e.g. registries, validation services, services that monitor the VO's -operational health, but typically not end users) test that the service -is up and operating correctly. It provides a set of legal input -parameters that should return a legal response that includes at least -one matched record. Since this query is intended for testing purposes, -the size of the result set should be small. - -The \xmlel{cs:Query} type captures the different components of the query -into separate elements, as defined below: - -% GENERATED: !schemadoc ConeSearch-v1.1.xsd Query -\begin{generated} \begingroup \renewcommand*\descriptionlabel[1]{% -\hbox to 5.5em{\emph{#1}\hfil}}\vspace{2ex}\noindent\textbf{\xmlel{cs:Query} Type Schema Documentation} - -\noindent{\small A query to be sent to the service \par} - -\vspace{1ex}\noindent\textbf{\xmlel{cs:Query} Type Schema Definition} - -\begin{lstlisting}[language=XML,basicstyle=\footnotesize] - - - - - - - - - - - -\end{lstlisting} - -\vspace{0.5ex}\noindent\textbf{\xmlel{cs:Query} Metadata Elements} - -\begingroup -\small - -\begin{bigdescription} - - \item[Element \xmlel{ra}] - \begin{description} - \item[Type] floating-point number: \xmlel{xs:double} - \item[Meaning] the right ascension of the search cone's center in -decimal degrees. - \item[Occurrence] required - \end{description} \ - - \item[Element \xmlel{dec}] - \begin{description} - \item[Type] floating-point number: \xmlel{xs:double} - \item[Meaning] the declination of the search cone's center in decimal degrees. - \item[Occurrence] required - \end{description} - - \item[Element \xmlel{sr}] - \begin{description} - \item[Type] floating-point number: \xmlel{xs:double} - \item[Meaning] the radius of the search cone in decimal degrees. - \item[Occurrence] required - \end{description} - - \item[Element \xmlel{time}] - \begin{description} - \item[Type] floating-point number: \xmlel{xs:double} - \item[Meaning] the interval of time in the seach in MJD (days). - \item[Occurrence] optional - \end{description} - - \item[Element \xmlel{verb}] - \begin{description} - \item[Type] \xmlel{xs:positiveInteger} - \item[Meaning] the verbosity level to use where 1 means the bare -minimum set of columns and 3 means the full set of available columns. - \item[Occurrence] optional - \end{description} - - \item[Element \xmlel{catalog}] - \begin{description} - \item[Type] string: \xmlel{xs:string} - \item[Meaning] the catalog to query. - \item[Occurrence] optional - \item[Comment] When the service can access more than one catalog, -this input parameter, if available, is used to indicate which service to access. - \end{description} - - \item[Element \xmlel{extras}] - \begin{description} - \item[Type] string: \xmlel{xs:string} - \item[Meaning] any extra (non-standard) parameters that must be -provided (apart from what is part of base URL given by the accessURL element). - \item[Occurrence] optional \item[Comment] this value should be in the -form of name=value pairs delimited with ampersands (\&). - \end{description} - -\end{bigdescription} -\endgroup - -\endgroup \end{generated} +The resource profile consists of the following metadata with the stated definitions: +\begin{itemize} + \item[\textbf{ResponsibleParty}] The data provider's name and email. + \item[\textbf{ServiceName}] The name of the catalog served by the service, for example "IRSA.2MASS.ExtendedSources". + \item[\textbf{Description}] A couple of paragraphs of text that describe the nature of the catalog and its wider context. + \item[\textbf{Instrument}] The instrument that made the observations, for example STScI.HST.WFPC2. + \item[\textbf{Waveband}] The waveband of the observations, with ONE selected from this list: radio, millimeter, infrared, optical, ultraviolet, xray, gammaray. + \item[\textbf{Epoch}] The epoch of the observations, as a free-form string. + \item[\textbf{Coverage}] The coverage on the sky, as a free-form string. + \item[\textbf{MaxSR}] The largest search radius, given in decimal degrees, that will be accepted by the service without returning an error condition. A value of 180.0 indicates that there is no restriction. + \item[\textbf{MaxRecords}] The largest number of records that the service will return. + \item[\textbf{Verbosity}] True or false, depending on whether the service supports the VERB keyword in the request. + \item[\textbf{BaseURL}] The base URL for the service as described in Section \ref{sec:2}. +\end{itemize} +The service will be considered published to the VO if the profile has been added to an IVOA Registry according to the IVOA standards and conventions at the time the service is made available, TOGETHER with maintaining the web service that is described by the profile in compliant order. -\appendix \section{Sample VOTable Response} \label{app:responsesample} +\appendix +\section{Sample VOTable Response} +\label{appendix:a} This is a sample of a legal response to a Cone Search query. - -\begin{lstlisting}[language=XML,basicstyle=\footnotesize] +\begin{lstlisting}[language=XML,basicstyle=\footnotesize] - + - - - - - HEASARC Browse data service Please send inquiries - to mailto:request@athena.gsfc.nasa.gov - - - - - Faint Images of the Radio Sky at Twenty cm Source Catalog (FIRST) - - - Integer key - - - FIRST Source Designation - - - Right Ascension - - - Declination - - - Peak 1.4GHz Flux Density(mJy) - - - Estimated rms in at Source (mJy) - - - Integrated 1.4GHz Flux Density (mJy) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
384559FIRST J120002.6+595708180.011004259.95238891.110.1391.14
385094FIRST J120025.3+600103180.105725060.01755562.890.1422.56
384928FIRST J120018.1+600236180.075550060.043475019.380.14519.23
384490FIRST J115959.4+600403179.997887560.06770831.010.1471.20
-
+ + + + + + HEASARC Browse data service + Please send inquiries to mailto:request@athena.gsfc.nasa.gov + + + + Faint Images of the Radio Sky at Twenty cm Source Catalog (FIRST) + + Integer key + + + FIRST Source Designation + + + Right Ascension + + + Declination + + + Peak 1.4GHz Flux Density (mJy) + + + Estimated rms in at Source (mJy) + + + Integrated 1.4GHz Flux Density (mJy) + + + + + + + + + + + + + + + + + + + + + + + + + +
384559FIRST J120002.6+595708180.011004259.9523889 1.11 0.139 1.14
385094FIRST J120025.3+600103180.105725060.0175556 2.89 0.142 2.56
384928FIRST J120018.1+600236180.075550060.0434750 19.38 0.145 19.23
384490FIRST J115959.4+600403179.997887560.0677083 1.01 0.147 1.20
+
\end{lstlisting} -This is an example of a legal response to a Cone Search query using the -time parameter: -\begin{lstlisting}[language=XML,basicstyle=\footnotesize] - - - - - - - - - Right Ascension - - - Right Ascension - - - Time of observation - - - Magnitude of the source - - - - - - - - - - - -
270.14754119086-30.904754595802309.0019986418.990655
-
-\end{lstlisting} +\section{Current Practices for Representing Resource Profiles} + +\subsection{Mapping for Resource Profile Metadata to the RM} +As mentioned in an Editor's Note in Section \ref{sec:3}, the original NVO specification pre-dated the IVOA standard for resource metadata known as the RM \citep{STD:RM101}. This section indicates how the resource profile metadata defined in this specification maps to the metadata defined in the RM. +\begin{table}[th] +\begin{tabular}{p{0.4\textwidth}p{0.5\textwidth}} +\sptablerule +\textbf{Cone Search Metadatum} & \textbf{RM Metadatum}\\ +\sptablerule +\textbf{ResponsibleParty} & Publisher, Contact.Email\\ +\textbf{ServiceName} & Title\\ +\textbf{Description} & Description\\ +\textbf{Instrument} & Instrument\\ +\textbf{Waveband} & Coverage.Spectral\\ +\textbf{Epoch} & Coverage.Temporal.StartTime, Coverage.Temporal.StopTime\textsuperscript{1}\\ +\textbf{Coverage} & Coverage.Spatial\\ +\textbf{MaxSR} & Service.MaxSearchRadius\\ +\textbf{MaxRecords} & Service.MaxReturnRecords\\ +\textbf{Verbosity} & n/a\textsuperscript{2}\\ +\textbf{BaseURL} & Service.BaseURL\\ +\sptablerule +\caption{Metadata Mapping} +\label{table:b1meta} +\end{tabular} +\end{table} +Table notes: +\begin{enumerate} + \item The notion of the epoch the observations is captured in the RM as the temporal coverage. The notion of the equinox of the observational positions is captured part of the RM's Coverage.Spatial. + \item As this concept is not covered by the RM, it should be considered service-specific capability metadata. +\end{enumerate} + +\subsection{VOResource (pre-v1.0) Schema Extension for Cone Search Services} +Just prior to the adoption of IVOA standard for registry interfaces, v1.0, resource descriptions were encoded using the VOResource XML Schema, v0.10 and its family of extension schemas. The extensions used to specifically describe Cone Search services were VODataService, v0.5 and ConeSearch, v0.3\todo{The references to RI, VOResource, VODataService and ConeSearch here, are all referring to xsd schemata currently obsoleted.}. See the embedded documentation in each of these schemas for the precise definitions and usage of the metadata encodable through them. + +The following table enumerates the mapping of resource profile metadata defined in this specification with those defined in the XML schemas. + +\begin{table}[th] +\begin{tabular}{p{0.38\textwidth}p{0.27\textwidth}p{0.34\textwidth}} +\sptablerule +\multirow{2}{*}{\textbf{Cone Search Metadatum}}&\multicolumn{2}{p{0.59\textwidth}}{\textbf{VOResource Metadatum}}\\ +&\textbf{Schema Name}&\textbf{XPath Name}\\ +\sptablerule +\textbf{ResponsibleParty} & VOResource & curation/publisher, curation/contact/email\\ +\textbf{ServiceName} & VOResource & title\\ +\textbf{Description} & VOResource & content/description\\ +\textbf{Instrument} & VOResource & instrument\\ +\textbf{Waveband} & VODataService & coverage/spectral/waveband\\ +\textbf{Epoch} & VODataService & coverage/temporal/startTime, coverage/temporal/stopTime\textsuperscript{1}\\ +\textbf{Coverage} & VODataService & coverage/spatial\textsuperscript{2}\\ +\textbf{MaxSR} & ConeSearch & capability/maxSR\\ +\textbf{MaxRecords} & ConeSearch & capability/maxRecords\\ +\textbf{Verbosity} & ConeSearch & capability/verbosity\\ +\textbf{BaseURL} & VOResource & interface/accessURL\\ +\sptablerule +\caption{VOResource pre-0.10 extension} +\label{table:extable} +\end{tabular} +\end{table} +Table Notes: +\begin{enumerate} + \item The notion of the epoch the observations is captured in the schema inside coverage/temporal. The notion of the equinox of the observational positions is captured within coverage/spatial/region, such as in coverage/spatial/region[@xsi:type='vs:Circle']/coordFrame. + \item the coverage/spatial element encodes its information as a complex set of child elements. +\end{enumerate} + +\subsection{VOResource (v1.0) Schema Extension for Cone Search Services} +With the expected adoption of the IVOA standard for Registry Interface, resources are described using the VOResource schema, v1.0 and its family of extensions. Cone Search services are specifically described using the VODataService, v1.0, and ConeSearch, v1.0, extension schemas. Coverage information is encoded using the Space-Time Coordinates (STC) schema. + +The following table enumerates the mapping of resource profile metadata defined in this specification with those defined in the XML schemas. + +\begin{table}[th] +\begin{tabular}{p{0.4\textwidth}p{0.29\textwidth}p{0.3\textwidth}} +\sptablerule +\multirow{2}{*}{\textbf{Cone Search Metadatum}}&\multicolumn{2}{p{0.59\textwidth}}{\textbf{VOResource Metadatum}}\\ +&\textbf{Schema Name}&\textbf{XPath Name}\\ +\sptablerule +\textbf{ResponsibleParty} & VOResource & curation/publisher, curation/contact/email\\ +\textbf{ServiceName} & VOResource & title\\ +\textbf{Description} & VOResource & content/description\\ +\textbf{Instrument} & VOResource & instrument\\ +\textbf{Waveband} & VODataService & coverage/waveband\\ +\textbf{Epoch} & VODataService & coverage/stc:STCResourceProfile/stc:AstroCoordArea\textsuperscript{1}\\ +\textbf{Coverage} & VODataService & coverage/stc:STCResourceProfile/stc:AstroCoordArea\textsuperscript{1}\\ +\textbf{MaxSR} & ConeSearch & capability/maxSR\\ +\textbf{MaxRecords} & ConeSearch & capability/maxRecords\\ +\textbf{Verbosity} & ConeSearch & capability/verbosity\\ +\textbf{BaseURL} & VOResource & capability/interface[@role='std']/accessURL\\ +\sptablerule +\caption{VOResource 1.0 extension} +\label{table:extable} +\end{tabular} +\end{table} +Table Notes: +\begin{enumerate} + \item In STC, coverage on the sky and in time are described in an integrated way within the stc:AstroCoordArea element. The notion of the equinox of the observational positions is captured within stc:AstroCoordSystem element. +\end{enumerate} +Subsequent versions of this document should include the ConeSearch extension schema as a formal part of the specification. -\section{Changes from Previous Versions} \label{app:changes} - -\subsection{Changes from REC-1.03} -\begin{itemize}[noitemsep] -\item Added the extension for time search. -\item Moving base URL to a plain http://server/path? format -\item Changed error response to comply with DALI -\item Changed resource metadata importing directly from SimpleDALRegExt -\item Relaxed RA and Dec FIELDs in response to allow float or double datatype -\item No more exactly one RESOURCE in response, now stating exactly one of type="results" -\item Removed fixed version (1.0 or 1.1) for VOTable default response -\item Added DALI MAXREC and RESPONSEFORMAT -\item Added POST as optional HTTP query method -\item Addition and changes on authors/editors. -\item Plain porting of the HTML document into ivoatex template, -including change history, then modified it and reshaped. +\section{Changes from Previous Versions} + +\subsection{Changes from REC-1.03} +\begin{itemize} + \item Addition of authors/editors. + \item Plain porting of the HTML document into ivoatex template, including change history. \end{itemize} -\subsection{Changes from PR-1.02} -\begin{itemize}[noitemsep] -\item Converted to Recommendation +\subsection{Changes from PR-1.02} +\begin{itemize} + \item converted to Recommendation \end{itemize} -\subsection{Changes from PR-1.01} -\begin{itemize}[noitemsep] -\item Removed the choice of encoding an ERROR response in a PARAM that is a -direct child of VOTABLE as this is not legal in the VOTable schema. -\item Allowed the use of the INFO element for error messages. -\item In examples, made sure PARAM elements have datatype attributes -\item Corrected wording to be definitive that positions are given in the ICRS -coordinate system. -\item Other typos. +\subsection{Changes from PR-1.01} +\begin{itemize} + \item eliminated the choice of encoding an ERROR response in a PARAM that is a direct child of VOTABLE as this is not legal in the VOTable schema. + \item Allowed the use of the INFO element for error messages. + \item In examples, made sure PARAM elements have datatype attributes + \item Corrected wording to be definitive that positions are given in the ICRS coordinate system. + \item Other typos. \end{itemize} -\subsection{Changes from PR-1.00} -\begin{itemize}[noitemsep] -\item Various typos. -\item Clarified description of VERB parameter: - \begin{itemize}[noitemsep] - \item Clarified what is meant by optional for - client and server. - \item Clarified the meaning of the values. - \end{itemize} -\item Explicitly mention the 3 legal locations for ERROR -messages. -\item Refer to string types as character arrays, as per the -VOTable std. -\item Prefers text/xml;content=x-votable over -text/xml;votable. -\item Added examples of error message, legal response -in appendix. +\subsection{Changes from PR-1.00} +\begin{itemize} + \item Various typos. + \item Clarified description of VERB parameter: + \begin{itemize} + \item Clarified what is meant by optional for client and server. + \item Clarified the meaning of the values. + \end{itemize} + \item Explicitly mention the 3 legal locations for ERROR messages. + \item Refer to string types as character arrays, as per the VOTable std. + \item Prefers text/xml;content=x-votable over text/xml;votable. + \item Added examples of error message, legal response in appendix. \end{itemize} \subsection{Changes from the original NVO Specification Document} -\begin{itemize}[noitemsep] -\item References to the original HTML -document have been replaced with references to this IVOA specification. -\item Replaced references to "curator" with "data provider" or similar -wording. -\item Replaced references to the NVO with references either to -the IVOA or this specification, as appropriate. -\item Ambiguous -language like "perhaps" has been replaced with more definitive wording -where appropriate. Use of the word "will" is replaced with "must" and -"can" with "may", in accordance with the definitions set in the preface. -\item Grammatical and spelling corrections have been made. -\item The -content is organized into sections typical of an IVOA spec. -\item Description of the URL syntax is sharper, borrowing language from the -SIA specification [SIA]. This includes: \begin{itemize}[noitemsep] -\item More explicitly specifying the form of the URL. -\item Sharpening the -definition of the input parameters. -\item Indicating that parameter -order is not significant. -\item Stating explicitly that unsupported -optional arguments should be ignored. -\item Adding examples. -\item Re-ordering information for improved flow. \end{itemize} -\item The -version of VOTable supported is explicitly stated. -\item Whereas the -NVO version describes the parameter with ucd="OBS\_ANG-SIZE" as "an -expression of the opening angle of the cones", this version describes it -specifically as "an expression of the uncertainty of the positions". -\item A note has been added to recognize the ambiguity in the location -of the ERROR parameter. -\item The general description of the resource -profile has been altered to allow rendering of the metadata to change -according to the standards and conventions of the IVOA. -\item An -editor's note has been added that makes reference to the RM document -[RM]. -\item A requirement that \textbf{MaxSR} be given in decimal -degrees has been added. -\item For the \textbf{BaseURL} resource profile -metadatum, the example has been replaced with a reference to the BaseURL -syntax description. -\item An appendix has been added to describe the -current practice for registering Cone Search services. +\label{appendix:c5} +\begin{itemize} + \item References to the original HTML document have been replaced with references to this IVOA specification. + \item Replaced references to "curator" with "data provider" or similar wording. + \item Replaced references to the NVO with references either to the IVOA or this specification, as appropriate. + \item Ambiguous language like "perhaps" has been replaced with more definitive wording where appropriate. Use of the word "will" is replaced with "must" and "can" with "may", in accordance with the definitions set in the preface. + \item Grammatical and spelling corrections have been made. + \item The content is organized into sections typical of an IVOA spec. + \item Description of the URL syntax is sharper, borrowing language from the SIA specification [SIA]. This includes: + \begin{itemize} + \item More explicitly specifying the form of the URL. + \item Sharpening the definition of the input parameters. + \item Indicating that parameter order is not significant. + \item Stating explicitly that unsupported optional arguments should be ignored. + \item Adding examples. + \item Re-ordering information for improved flow. + \end{itemize} + \item The version of VOTable supported is explicitly stated. + \item Whereas the NVO version describes the parameter with ucd="OBS\_ANG-SIZE" as "an expression of the opening angle of the cones", this version describes it specifically as "an expression of the uncertainty of the positions". + \item A note has been added to recognize the ambiguity in the location of the ERROR parameter. + \item The general description of the resource profile has been altered to allow rendering of the metadata to change according to the standards and conventions of the IVOA. + \item An editor's note has been added that makes reference to the RM document [RM]. + \item A requirement that \textbf{MaxSR} be given in decimal degrees has been added. + \item For the \textbf{BaseURL} resource profile metadatum, the example has been replaced with a reference to the BaseURL syntax description. + \item An appendix has been added to describe the current practice for registering Cone Search services. \end{itemize} \bibliography{ivoatex/ivoabib,ivoatex/docrepo,ConeSearch} From 310f71e9b032a3e6c24f9c3e952437301fe7380d Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Fri, 18 Aug 2023 14:45:45 +0200 Subject: [PATCH 02/15] (temp) reverted editor/author changes --- ConeSearch.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index 639510e..3cd439b 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -15,13 +15,13 @@ \ivoagroup{Data Access Layer} \author[http://www.ivoa.net/twiki/bin/view/IVOA/RayPlante]{Raymond Plante} -\author[http://www.ivoa.net/twiki/bin/view/IVOA/MarcoMolinaro]{Marco Molinaro} -\author[http://www.ivoa.net/twiki/bin/view/IVOA/MarkusDemleitner]{Markus Demleitner} +%\author[http://www.ivoa.net/twiki/bin/view/IVOA/MarcoMolinaro]{Marco Molinaro} +%\author[http://www.ivoa.net/twiki/bin/view/IVOA/MarkusDemleitner]{Markus Demleitner} \author[http://www.ivoa.net/twiki/bin/view/IVOA/BobHanisch]{Robert Hanisch} \author[http://www.ivoa.net/twiki/bin/view/IVOA/AlexSzalay]{Alex Szalay} \author[http://www.ivoa.net/twiki/bin/view/IVOA/RoyWilliams]{Roy Williams} -\editor{Ray Plante, Marco Molinaro} +\editor{Ray Plante} \previousversion[http://www.ivoa.net/Documents/REC/DAL/ConeSearch-20080222.html]{REC 1.03} \previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070914.html]{PR 2007-09-14} From e6318e3a0a70a423dfe439ca7f1a9c7ac94b1f2f Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Fri, 18 Aug 2023 15:41:30 +0200 Subject: [PATCH 03/15] fixed NVO reference link, updated Ackn and Conformance, added previous WD revision --- ConeSearch.tex | 52 +++++++++++++++++++++++++++++--------------------- Makefile | 4 ++-- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index 3cd439b..c2517c2 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -23,6 +23,7 @@ \editor{Ray Plante} +\previousversion[http://www.ivoa.net/Documents/ConeSearch/20200828/index.html]{WD 1.1 20200828} \previousversion[http://www.ivoa.net/Documents/REC/DAL/ConeSearch-20080222.html]{REC 1.03} \previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070914.html]{PR 2007-09-14} \previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070628.html]{PR 2007-06-28} @@ -36,26 +37,21 @@ \section*{Acknowledgments} -This document was originally published as a document of the US National Virtual Observatory (NVO), available at \url{http://us-vo.org/pubs/files/conesearch.html}\todo{this link does not work anymore, find out if it's possible to find a link or remove it.}. This IVOA version is essentially a transcription of that document into the IVOA standards document format. Minor changes have been made to sharpen the specification description where needed and to otherwise fit it into the IVOA standards context; these changes are enumerated in Appendix \ref{appendix:c5}. It is the intention of this document that all existing services compliant with the original NVO document will be compliant with this specification. Similarly, all future service implementations that are based on this specification are expected to be compliant with the spirit of the original NVO document and practices in the VO current at the time of this writing; thus, existing client applications should work with the new implementations without change. - -Cone Search represents the first and arguably the most successful "standard protocol" developed within the Virtual Observatory movement. The editor, therefore, gratefully acknowledges the work of the original authors of the Cone Search specification as well as the numerous data providers who have implemented and continue to support this protocol. - -This document has been developed with support from the National Science Foundation's Information Technology Research Program under Cooperative Agreement AST0122449 with The Johns Hopkins University. - -\section*{Conformance-related definitions} - -The words ``MUST'', ``SHALL'', ``SHOULD'', ``MAY'', ``RECOMMENDED'', and -``OPTIONAL'' (in upper or lower case) used in this document are to be -interpreted as described in IETF standard RFC2119 \citep{std:RFC2119}. - -The \emph{Virtual Observatory (VO)} is a -general term for a collection of federated resources that can be used -to conduct astronomical research, education, and outreach. -The \href{http://www.ivoa.net}{International -Virtual Observatory Alliance (IVOA)} is a global -collaboration of separately funded projects to develop standards and -infrastructure that enable VO applications. - +This document was originally published as a document of the US National Virtual Observatory +(NVO)\footnote{The NVO document: "Conesearch definition" (Roy Williams, Bob Hanish, Alex Szalay; +April 2002) is currently available at this +link: \url{https://wiki.ivoa.net/internal/IVOA/ConeSearch/NVO\_conesearch\_April2002.html.}} +and then transcripted +into an IVOA standards document format to become an IVOA Recommendation. The changes made in this transcription +and in the process of producing the first recommendation are reported in Appendix \ref{appendix:nvochanges}. + +The Simple Cone Search version 1.03 document has been developed with support from the National Science Foundation's +Information Technology Research Program under Cooperative Agreement AST0122449 with The Johns Hopkins University. + +The ConeSearch-1.1 revision has been developed and supported under the +ASTERICS and ESCAPE projects (funded by the European Commission Framework Programme +Horizon 2020 Research and Innovation Action, grant agreements n. 653477 and n. 824064 +respectively). Work done within the two projects has been reported in \ref{appendix:first11changes}. \section{Introduction} @@ -373,10 +369,22 @@ \subsection{VOResource (v1.0) Schema Extension for Cone Search Services} \section{Changes from Previous Versions} +\subsection{Changes from WD-1.1-20200828} + \subsection{Changes from REC-1.03} +\label{appendix:first11changes} \begin{itemize} + \item moving base URL to a plain http://server/path? format + \item changed error response to comply with DALI + \item changed resource metadata importing directly from SimpleDALRegExt + \item relaxed RA and Dec FIELDs in response to allow float or double datatype + \item no more exactly one RESOURCE in response, now stating exactly one of type="results" + \item removed fixed version (1.0 or 1.1) for VOTable default response + \item Added DALI MAXREC and RESPONSEFORMAT + \item Added POST as optional HTTP query method \item Addition of authors/editors. - \item Plain porting of the HTML document into ivoatex template, including change history. + \item Plain porting of the HTML document into ivoatex template, +including change history, then modified it and reshaped. \end{itemize} \subsection{Changes from PR-1.02} @@ -408,7 +416,7 @@ \subsection{Changes from PR-1.00} \end{itemize} \subsection{Changes from the original NVO Specification Document} -\label{appendix:c5} +\label{appendix:nvochanges} \begin{itemize} \item References to the original HTML document have been replaced with references to this IVOA specification. \item Replaced references to "curator" with "data provider" or similar wording. diff --git a/Makefile b/Makefile index fd2e137..3a3a64d 100755 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ DOCVERSION = 1.1 # Publication date, ISO format; update manually for "releases" #DOCDATE = 2019-11-15 -DOCDATE = 2020-08-28 +DOCDATE = 2023-08-18 # What is it you're writing: NOTE, WD, PR, REC, PEN, or EN DOCTYPE = WD @@ -21,7 +21,7 @@ SOURCES = $(DOCNAME).tex FIGURES = # List of PDF figures (for vector graphics) -VECTORFIGURES = role_diagram.pdf +VECTORFIGURES = # Additional files to distribute (e.g., CSS, schema files, examples...) AUX_FILES = From 1e68b390b9051cd26ee0388bf2679e0c66b8e6a3 Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Fri, 18 Aug 2023 16:09:34 +0200 Subject: [PATCH 04/15] added role diagram, fixed some typos --- ConeSearch.tex | 9 ++-- Makefile | 30 ++++++++---- ivoatex | 2 +- role_diagram.pdf | Bin 33834 -> 36013 bytes role_diagram.svg | 118 +++++++++++++++++++++++------------------------ role_diagram.xml | 51 ++++++++++++-------- 6 files changed, 118 insertions(+), 92 deletions(-) mode change 100755 => 100644 Makefile diff --git a/ConeSearch.tex b/ConeSearch.tex index c2517c2..c116b2f 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -23,7 +23,7 @@ \editor{Ray Plante} -\previousversion[http://www.ivoa.net/Documents/ConeSearch/20200828/index.html]{WD 1.1 20200828} +\previousversion[http://www.ivoa.net/Documents/ConeSearch/20200828/index.html]{WD 1.1 2020-08-28} \previousversion[http://www.ivoa.net/Documents/REC/DAL/ConeSearch-20080222.html]{REC 1.03} \previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070914.html]{PR 2007-09-14} \previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070628.html]{PR 2007-06-28} @@ -73,8 +73,8 @@ \subsection{Role within the VO Architecture} % Oh -- Notes don't need this; you'd have to remove archdiag.png % from FIGURES in the Makefile, too. -\includegraphics[width=0.9\textwidth]{archdiag.png} -\caption{Architecture diagram for SCS - TODO} +\includegraphics[width=0.9\textwidth]{role_diagram} +\caption{Architecture diagram for the Simple Cone Search specification.} \label{fig:archdiag} \end{figure} @@ -370,6 +370,9 @@ \subsection{VOResource (v1.0) Schema Extension for Cone Search Services} \section{Changes from Previous Versions} \subsection{Changes from WD-1.1-20200828} +\begin{itemize} + \item Complete revert of changes to restore clean 1.03 contents, in view of specific minor updates (here above) +\end{itemize} \subsection{Changes from REC-1.03} \label{appendix:first11changes} diff --git a/Makefile b/Makefile old mode 100755 new mode 100644 index 3a3a64d..5fcd0b3 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ -# ivoatex Makefile. The ivoatex/README for the targets available. +# ivoatex Makefile. The http://ivoa.net/documents/notes/IVOATex +# for the targets available. # short name of your document (edit $DOCNAME.tex; would be like RegTAP) DOCNAME = ConeSearch @@ -7,23 +8,36 @@ DOCNAME = ConeSearch DOCVERSION = 1.1 # Publication date, ISO format; update manually for "releases" -#DOCDATE = 2019-11-15 DOCDATE = 2023-08-18 # What is it you're writing: NOTE, WD, PR, REC, PEN, or EN DOCTYPE = WD +# An e-mail address of the person doing the submission to the document +# repository (can be empty until a make upload is being made) +AUTHOR_EMAIL=marco.molinaro@inaf.it + # Source files for the TeX document (but the main file must always -# be called $(DOCNAME).tex +# be called $(DOCNAME).tex) SOURCES = $(DOCNAME).tex -# List of pixel image files to be included in submitted package +# List of image files to be included in submitted package (anything that +# can be rendered directly by common web browsers) FIGURES = -# List of PDF figures (for vector graphics) -VECTORFIGURES = +# List of PDF figures (figures that must be converted to pixel images to +# work in web browsers). +VECTORFIGURES = # Additional files to distribute (e.g., CSS, schema files, examples...) -AUX_FILES = +AUX_FILES = + +-include ivoatex/Makefile + +ivoatex/Makefile: + @echo "*** ivoatex submodule not found. Initialising submodules." + @echo + git submodule update --init -include ivoatex/Makefile +test: + @echo "No tests defined yet" diff --git a/ivoatex b/ivoatex index 70d2afe..30e1cfd 160000 --- a/ivoatex +++ b/ivoatex @@ -1 +1 @@ -Subproject commit 70d2afe455256590aa5bc3f3f922190f338c075e +Subproject commit 30e1cfd64f9d0d621a8c23d85628e50729daf42b diff --git a/role_diagram.pdf b/role_diagram.pdf index e81abee9f7c53e468b2768a506cb5d4d3cd886ef..a930685c61f61f48fc43780cf90b97b2be2bb8a0 100644 GIT binary patch literal 36013 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 AfB*mh literal 33834 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 diff --git a/role_diagram.svg b/role_diagram.svg index d0876ad..80a2267 100644 --- a/role_diagram.svg +++ b/role_diagram.svg @@ -1,63 +1,59 @@ -IVOA Architecture DiagramThis image shows the architecture of the Virtual Observatory - (cf. http://ivoa.net), together with the relevant standards.UsersComputersProvidersRegistryData Access ProtocolsUser LayerUsingResource LayerSharingVOCoreFindingGettingDesktop AppsIn-BrowserAppsUserProgramsData and Metadata CollectionStorageComputationSemanticsDataModelsVO QueryLanguagesFormats - - VOResource - RegistryInterface - VODataService - StandardsRegExt - SimpleDALR.E. - - - VOTable - - - DALI - SCS - - - - - VOSI - - - VOUnits - UCD - Vocabularies - - +IVOA Architecture DiagramThis image shows the architecture of the Virtual Observatory + (cf. http://ivoa.net), together with the relevant standards.UsersComputersProvidersRegistryData Access ProtocolsUser LayerUsingResource LayerSharingVOCoreFindingGettingDesktop AppsIn-BrowserAppsUserProgramsData and Metadata CollectionStorageComputationSemanticsDataModelsVO QueryLanguagesFormats + + VOResource + Resource M.D. + + + VOTable + + + ConeSearch + + + + + + + UCD + + diff --git a/role_diagram.xml b/role_diagram.xml index c9ffc78..50b835d 100644 --- a/role_diagram.xml +++ b/role_diagram.xml @@ -13,32 +13,45 @@ Document authors (ivoatex maintainers have different rules): For the time being, keep both role_diagram.pdf and role_diagram.svg as created by this in the VCS. This helps document builds on machines with missing dependencies. + + +Archdiag maintainers: When adding boxes here, first look for a good place, +preferably in one of the grid positions given in the comments for the +WGs (e.g., 55 for Registry). Good y positions are ones that already +exist. Leave out the w at first. + +Then, run + +make archdiag-debug.svg + +and open archdiag-debug.svg in a javascript-enabled browser. In that +browser's javascript console you will see lines like: + +SpectralDM: 67; 11.5 + +The first number is the box's natural width, which you should use in the w +attribute of the rec/prerec. The second is the offset to x you'd need to +add to one of the x grid lines (the x=something in the opening comments +of the various sections) to have the box centered. --> - - - - - - + + + - - + + - - - + + - + - - + - - - - + + - + From dcd191821bbdd1e7c90f5f380801819baa02514b Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Wed, 23 Aug 2023 08:04:52 +0200 Subject: [PATCH 05/15] added Erratum 1 content from v1.03 --- ConeSearch.tex | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index c116b2f..8f0ea9d 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -133,7 +133,13 @@ \section{Service Interface Requirements} \item There may be other FIELDs in the table. Their specification should include a description, data-type, and UCD. \end{itemize} \item The service must respond with a stubbed version of the VOTable in the case of error. This must happen if the three required parameters (RA, DEC, SR) are not all present, or if their values cannot be parsed to floating-point numbers, or if the numbers are out of range (DEC=91.0, for example). The service may also make an error return if the search radius (give by the SR parameter) is larger than the MaxSR parameter of the Resource Profile (see Section \ref{sec:3}). - In the case of error, the service MUST respond with a VOTable that contains a single PARAM element or a single INFO element with \texttt{name="Error"}, where the corresponding value attribute should contain some explanation of the nature of the error. If an INFO element is used, it must appear as a direct child of one of the following elements: + In the case of error, the service MUST respond with a VOTable that contains + a PARAM element or an INFO element with \texttt{name="Error"}, where the + corresponding value attribute should contain some explanation of the nature + of the error. No other PARAM or INFO element in the response can be present + having \texttt{name=''Error''} set, but additional INFO and PARAM elements + with the name parameter set to a different value are allowed. If an INFO element + is used, it must appear as a direct child of one of the following elements: \begin{itemize} \item the root VOTABLE element (which is preferred by this document), or \item the RESOURCE element From 83a0c71f31df23129b04b94ee76fa4cd21ee8889 Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Wed, 23 Aug 2023 08:09:26 +0200 Subject: [PATCH 06/15] added Erratum 2 content from v1.03 --- ConeSearch.tex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index 8f0ea9d..81a76f0 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -116,7 +116,8 @@ \section{Service Interface Requirements} \end{itemize} A query following this syntax represents a request for information on sources located within the specified cone on the sky. \item The service must respond with an XML document in the VOTable format, that represents a table of astronomical sources whose positions are within the cone (see Appendix \ref{appendix:a} for an example). There may also be other sources outside the cone -- the service implementor may decide on the exact search criterion used internally to the service to select the sources. - The base MIME-type of the HTTP response should be \texttt{text/xml}. The more specific form \texttt{text/xml;content=x-votable} may optionally be used. The MIME-type, \texttt{text/xml;votable} shall also be considered legal (for backward compatibility reasons); however, this value is strongly discouraged as it is not compliant with the MIME-type standard \citep{std:MIME}. The XML content of the response must be compliant with VOTable schema, version 1.0 \citep{std:VOT11} or 1.1 \citep{2004ivoa.spec.0811O}. + The base MIME-type of the HTTP response should be \texttt{text/xml}. The more specific form \texttt{text/xml;content=x-votable} may optionally be used. The MIME-type, \texttt{text/xml;votable} shall also be considered legal (for backward compatibility reasons); however, this value is strongly discouraged as it is not compliant with the MIME-type standard \citep{std:MIME}. + Simple Cone Search services MUST return VOTable version 1 documents. \begin{bigdescription} \item[Editor's Note] The original NVO specification allowed a MIME-type of text/xml;votable, thus for backward compatibility this is still allowed but discouraged. \end{bigdescription} From b96c3df4970d2628bf7a4ff714d38b978d82a048 Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Wed, 23 Aug 2023 08:16:20 +0200 Subject: [PATCH 07/15] added Erratum 3 content from v1.03 --- ConeSearch.tex | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index 81a76f0..d59e305 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -156,11 +156,10 @@ \section{Service Interface Requirements} \begin{bigdescription} \item[Example Error Responses] Error INFO as child of VOTABLE (preferred)\\ \begin{lstlisting}[language=XML,basicstyle=\footnotesize] - - - - MAST Simple Cone Search Service - + + + \end{lstlisting} Error PARAM as child of RESOURCE (allowed) From 212311af7b769d0aca9916a3936dd64b7f52a58d Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Mon, 28 Aug 2023 16:06:14 +0200 Subject: [PATCH 08/15] fix refs, table captions and removed TODOs --- ConeSearch.tex | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index d59e305..7d3629a 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -79,7 +79,7 @@ \subsection{Role within the VO Architecture} \end{figure} Fig.~\ref{fig:archdiag} shows the role this document plays within the -IVOA architecture \citep{note:VOARCH}. +IVOA architecture \citep{2021ivoa.spec.1101D}. \section{Service Interface Requirements} \label{sec:2} @@ -124,7 +124,7 @@ \section{Service Interface Requirements} The VOTable MUST comply with these conditions: \begin{itemize} \item There must be a single RESOURCE in the VOTable, and that contains a single TABLE. - \item The TABLE must have FIELDS where the following UCD \todo{SCS-1.03 used to point to CDS tools, but now those ones are overwritten by UCD1+ tools} values have been set. There must only be one FIELD with each of these UCDs: + \item The TABLE must have FIELDS where the following UCD values have been set. There must only be one FIELD with each of these UCDs: \begin{itemize} \item 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. \item Exactly one FIELD must have ucd="POS\_EQ\_RA\_MAIN", with type double, representing the right-ascension of the source in the ICRS coordinate system. @@ -194,7 +194,7 @@ \section{The Resource Profile} \item[\textbf{ResponsibleParty}] The data provider's name and email. \item[\textbf{ServiceName}] The name of the catalog served by the service, for example "IRSA.2MASS.ExtendedSources". \item[\textbf{Description}] A couple of paragraphs of text that describe the nature of the catalog and its wider context. - \item[\textbf{Instrument}] The instrument that made the observations, for example STScI.HST.WFPC2. + \item[\textbf{Instrument}] The instrument that made the observations, for example STScI.\-HST.\-WFPC2. \item[\textbf{Waveband}] The waveband of the observations, with ONE selected from this list: radio, millimeter, infrared, optical, ultraviolet, xray, gammaray. \item[\textbf{Epoch}] The epoch of the observations, as a free-form string. \item[\textbf{Coverage}] The coverage on the sky, as a free-form string. @@ -278,7 +278,7 @@ \section{Sample VOTable Response} \section{Current Practices for Representing Resource Profiles} \subsection{Mapping for Resource Profile Metadata to the RM} -As mentioned in an Editor's Note in Section \ref{sec:3}, the original NVO specification pre-dated the IVOA standard for resource metadata known as the RM \citep{STD:RM101}. This section indicates how the resource profile metadata defined in this specification maps to the metadata defined in the RM. +As mentioned in an Editor's Note in Section \ref{sec:3}, the original NVO specification pre-dated the IVOA standard for resource metadata known as the RM \citep{2004ivoa.spec.0426H}. This section indicates how the resource profile metadata defined in this specification maps to the metadata defined in the RM. \begin{table}[th] \begin{tabular}{p{0.4\textwidth}p{0.5\textwidth}} \sptablerule @@ -296,9 +296,9 @@ \subsection{Mapping for Resource Profile Metadata to the RM} \textbf{Verbosity} & n/a\textsuperscript{2}\\ \textbf{BaseURL} & Service.BaseURL\\ \sptablerule -\caption{Metadata Mapping} \label{table:b1meta} \end{tabular} +\caption{Metadata Mapping} \end{table} Table notes: \begin{enumerate} @@ -307,7 +307,8 @@ \subsection{Mapping for Resource Profile Metadata to the RM} \end{enumerate} \subsection{VOResource (pre-v1.0) Schema Extension for Cone Search Services} -Just prior to the adoption of IVOA standard for registry interfaces, v1.0, resource descriptions were encoded using the VOResource XML Schema, v0.10 and its family of extension schemas. The extensions used to specifically describe Cone Search services were VODataService, v0.5 and ConeSearch, v0.3\todo{The references to RI, VOResource, VODataService and ConeSearch here, are all referring to xsd schemata currently obsoleted.}. See the embedded documentation in each of these schemas for the precise definitions and usage of the metadata encodable through them. +Just prior to the adoption of IVOA standard for registry interfaces, v1.0, resource descriptions were encoded using the VOResource XML Schema, v0.10 and its family of extension schemas. The extensions used to specifically describe Cone Search services were VODataService, v0.5 and ConeSearch, v0.3 +%%% \todo{The references to RI, VOResource, VODataService and ConeSearch here, are all referring to xsd schemata currently obsoleted.}. See the embedded documentation in each of these schemas for the precise definitions and usage of the metadata encodable through them. %%% The following table enumerates the mapping of resource profile metadata defined in this specification with those defined in the XML schemas. @@ -329,9 +330,9 @@ \subsection{VOResource (pre-v1.0) Schema Extension for Cone Search Services} \textbf{Verbosity} & ConeSearch & capability/verbosity\\ \textbf{BaseURL} & VOResource & interface/accessURL\\ \sptablerule -\caption{VOResource pre-0.10 extension} \label{table:extable} \end{tabular} +\caption{VOResource pre-0.10 extension} \end{table} Table Notes: \begin{enumerate} @@ -355,16 +356,16 @@ \subsection{VOResource (v1.0) Schema Extension for Cone Search Services} \textbf{Description} & VOResource & content/description\\ \textbf{Instrument} & VOResource & instrument\\ \textbf{Waveband} & VODataService & coverage/waveband\\ -\textbf{Epoch} & VODataService & coverage/stc:STCResourceProfile/stc:AstroCoordArea\textsuperscript{1}\\ -\textbf{Coverage} & VODataService & coverage/stc:STCResourceProfile/stc:AstroCoordArea\textsuperscript{1}\\ +\textbf{Epoch} & VODataService & coverage-/stc:STCResourceProfile-/stc:AstroCoordArea\textsuperscript{1}\\ +\textbf{Coverage} & VODataService & coverage-/stc:STCResourceProfile-/stc:AstroCoordArea\textsuperscript{1}\\ \textbf{MaxSR} & ConeSearch & capability/maxSR\\ \textbf{MaxRecords} & ConeSearch & capability/maxRecords\\ \textbf{Verbosity} & ConeSearch & capability/verbosity\\ -\textbf{BaseURL} & VOResource & capability/interface[@role='std']/accessURL\\ +\textbf{BaseURL} & VOResource & capability-/interface[@role='std']-/accessURL\\ \sptablerule -\caption{VOResource 1.0 extension} \label{table:extable} \end{tabular} +\caption{VOResource 1.0 extension} \end{table} Table Notes: From 0f1ae132dbec77e822ed749ee5773501509fc87b Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Tue, 29 Aug 2023 10:07:55 +0200 Subject: [PATCH 09/15] added changelog bullet and, while there, wrapped text for easier maintenance --- ConeSearch.tex | 723 ++++++++++++++++++++++++++++++++++--------------- Makefile | 2 +- 2 files changed, 499 insertions(+), 226 deletions(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index 7d3629a..c9ac8b8 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -1,12 +1,10 @@ -\documentclass[11pt,a4paper]{ivoa} +\documentclass[11pt,a4paper]{ivoa} \input tthdefs - \usepackage{todonotes} \usepackage{listings} \lstloadlanguages{XML,sh} -\lstset{flexiblecolumns=true,tagstyle=\ttfamily, -showstringspaces=False} +\lstset{flexiblecolumns=true,tagstyle=\ttfamily, showstringspaces=False} \usepackage{multirow} @@ -25,57 +23,80 @@ \previousversion[http://www.ivoa.net/Documents/ConeSearch/20200828/index.html]{WD 1.1 2020-08-28} \previousversion[http://www.ivoa.net/Documents/REC/DAL/ConeSearch-20080222.html]{REC 1.03} -\previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070914.html]{PR 2007-09-14} -\previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070628.html]{PR 2007-06-28} -\previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20060908.html]{PR 2006-09-08} +\previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070914.html]{PR 1.02 2007-09-14} +\previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070628.html]{PR 1.01 2007-06-28} +\previousversion[http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20060908.html]{PR 1.00 2006-09-08} \begin{document} -\begin{abstract} -This specification defines a simple query protocol for retrieving records from a catalog of astronomical sources. The query describes sky position and an angular distance, defining a cone on the sky. The response returns a list of astronomical sources from the catalog whose positions lie within the cone, formatted as a VOTable. This version of the specification is essentially a transcription of the original Cone Search specification in order to move it into the IVOA standardization process. -\end{abstract} - - -\section*{Acknowledgments} -This document was originally published as a document of the US National Virtual Observatory -(NVO)\footnote{The NVO document: "Conesearch definition" (Roy Williams, Bob Hanish, Alex Szalay; -April 2002) is currently available at this -link: \url{https://wiki.ivoa.net/internal/IVOA/ConeSearch/NVO\_conesearch\_April2002.html.}} -and then transcripted -into an IVOA standards document format to become an IVOA Recommendation. The changes made in this transcription -and in the process of producing the first recommendation are reported in Appendix \ref{appendix:nvochanges}. -The Simple Cone Search version 1.03 document has been developed with support from the National Science Foundation's -Information Technology Research Program under Cooperative Agreement AST0122449 with The Johns Hopkins University. - -The ConeSearch-1.1 revision has been developed and supported under the -ASTERICS and ESCAPE projects (funded by the European Commission Framework Programme -Horizon 2020 Research and Innovation Action, grant agreements n. 653477 and n. 824064 -respectively). Work done within the two projects has been reported in \ref{appendix:first11changes}. +\begin{abstract} This specification defines a simple +query protocol for retrieving records from a catalog of astronomical +sources. The query describes sky position and an angular distance, +defining a cone on the sky. The response returns a list of astronomical +sources from the catalog whose positions lie within the cone, formatted +as a VOTable. This version of the specification is essentially a +transcription of the original Cone Search specification in order to move +it into the IVOA standardization process. \end{abstract} + + +\section*{Acknowledgments} + +This document was originally published as a +document of the US National Virtual Observatory (NVO)\footnote{The NVO +document: "Conesearch definition" (Roy Williams, Bob Hanish, Alex +Szalay; April 2002) is currently available at this link: +\url{https://wiki.ivoa.net/internal/IVOA/ConeSearch/NVO\_conesearch\_April2002.html.}} +and then transcripted into an IVOA standards document format to become +an IVOA Recommendation. The changes made in this transcription and in +the process of producing the first recommendation are reported in +Appendix \ref{appendix:nvochanges}. + +The Simple Cone Search version 1.03 document has been developed with +support from the National Science Foundation's Information Technology +Research Program under Cooperative Agreement AST0122449 with The Johns +Hopkins University. + +The ConeSearch-1.1 revision has been developed and supported under the +ASTERICS and ESCAPE projects (funded by the European Commission +Framework Programme Horizon 2020 Research and Innovation Action, grant +agreements n. 653477 and n. 824064 respectively). Work done within the +two projects has been reported in \ref{appendix:first11changes}. \section{Introduction} -This specification describes how a provider of an astronomical source catalog can publish that catalog to the Virtual Observatory in such a way that a simple cone search can be done. The data remains in the control of the data provider, served through a web server to the world, but the query profile and response profile are carefully controlled, as described below. It is intended that setting up this web service be simple enough that data providers will not have to spend too much time on it (their funding to support such services is typically small). At the same time, the service implementation and the data it provides can serve as a basis for more sophisticated tools. - -This specification does not specify how Cone Search services are implemented, or how the data are stored or manipulated. The concern of this specification is how the data are exposed to the world through well-defined requests and responses. - -This specification assumes that the data provider has already selected a catalog of astronomical sources. This catalog can be presented as a single table; it is expected that the table contains several columns. +This specification describes how a provider of an astronomical source +catalog can publish that catalog to the Virtual Observatory in such a +way that a simple cone search can be done. The data remains in the +control of the data provider, served through a web server to the world, +but the query profile and response profile are carefully controlled, as +described below. It is intended that setting up this web service be +simple enough that data providers will not have to spend too much time +on it (their funding to support such services is typically small). At +the same time, the service implementation and the data it provides can +serve as a basis for more sophisticated tools. + +This specification does not specify how Cone Search services are +implemented, or how the data are stored or manipulated. The concern of +this specification is how the data are exposed to the world through +well-defined requests and responses. + +This specification assumes that the data provider has already selected a +catalog of astronomical sources. This catalog can be presented as a +single table; it is expected that the table contains several columns. \subsection{Role within the VO Architecture} -\begin{figure} -\centering - -% Get the architecture diagram from the TCG chair -% http://wiki.ivoa.net/twiki/bin/view/IVOA/IvoaTCG -% If they give you a PDF, for now dumb it down to a png by -% convert -antialias -density 72x72 archdiag.pdf archdiag.png -% Oh -- Notes don't need this; you'd have to remove archdiag.png -% from FIGURES in the Makefile, too. - +\begin{figure} \centering +%% Get the architecture diagram from the TCG chair % +%http://wiki.ivoa.net/twiki/bin/view/IVOA/IvoaTCG % If they give you a +%PDF, for now dumb it down to a png by % convert -antialias -density +%72x72 archdiag.pdf archdiag.png % Oh -- Notes don't need this; you'd +%have to remove archdiag.png % from FIGURES in the Makefile, too. \includegraphics[width=0.9\textwidth]{role_diagram} -\caption{Architecture diagram for the Simple Cone Search specification.} -\label{fig:archdiag} +\caption{Architecture diagram for the Simple Cone Search +specification.} +\label{fig:archdiag} \end{figure} Fig.~\ref{fig:archdiag} shows the role this document plays within the @@ -84,132 +105,304 @@ \subsection{Role within the VO Architecture} \section{Service Interface Requirements} \label{sec:2} -A service implementation that is compliant with this standard must meet the following requirements: +A service implementation that is compliant with this standard must meet +the following requirements: \begin{enumerate} - \item the service must respond to a HTTP GET request represented by a URL having two parts:\\ + \item the service must respond to a HTTP GET request + represented by a URL having two parts:\\ + \begin{itemize} \item A base URL of the form\\ \url{http:///?[&[...]]}\\ - where and are URI-compliant components indicating the domain address and local location path where the service is deployed. The may end with one or more locally supported URL arguments, ; these arguments are not recognized parts of the Cone Search protocol and thus are treated opaquely by clients of the service as part of the base URL.\\ -Note that when it contains extra GET arguments, the base URL ends in an ampersand, \&; if there are no extra arguments, then it ends in a question mark, ?.\\ + where and are URI-compliant components + indicating the domain address and local location path where the service + is deployed. The may end with one or more locally + supported URL arguments, ; these arguments are not + recognized parts of the Cone Search protocol and thus are treated + opaquely by clients of the service as part of the base URL.\\ Note that + when it contains extra GET arguments, the base URL ends in an ampersand, + \&; if there are no extra arguments, then it ends in a question mark, + ?.\\ + \begin{bigdescription} - \item[Examples] \url{http://mycone.org/cgi-bin/VOsearch?}\\ - \url{http://adil.ncsa.uiuc.edu/vocone?resolv&issurvey=T&} - \end{bigdescription} + \item[Examples] + \url{http://mycone.org/cgi-bin/VOsearch?}\\ + \url{http://adil.ncsa.uiuc.edu/vocone?resolv&issurvey=T&} + \end{bigdescription} + Every query to a given cone search service uses the same base URL. - \item Constraints expressed as a list of ampersand-delimited GET arguments of the form: = where is a parameter name specified by this specification and is its value. The constraints represent the query parameters which can vary for each successive query. The order of the name-parameter pairs is not significant. - \item The baseURL and constraint list are concatenated to form the query. - \item The set of query constraints must include the following parameters, which are interpreted by the service with the stated meaning: - \begin{description} - \item[\textbf{RA}] a right-ascension in the ICRS coordinate system for the positon of the center of the cone to search, given in decimal degrees. - \item[\textbf{DEC}] a declination in the ICRS coordinate system for the positon of the center of the cone to search, given in decimal degrees. - \item[\textbf{SR}] the radius of the cone to search, given in decimal degrees. - \end{description} + + \item Constraints expressed as a list of + ampersand-delimited GET arguments of the form: = where + is a parameter name specified by this specification and + is its value. The constraints represent the query parameters which can + vary for each successive query. The order of the name-parameter pairs is + not significant. + \item The baseURL and constraint list are concatenated + to form the query. + \item The set of query constraints must include the + following parameters, which are interpreted by the service with the + stated meaning: + \begin{description} + \item[\textbf{RA}] a right-ascension + in the ICRS coordinate system for the positon of the center of the cone + to search, given in decimal degrees. + \item[\textbf{DEC}] a declination + in the ICRS coordinate system for the positon of the center of the cone + to search, given in decimal degrees. + \item[\textbf{SR}] the radius of + the cone to search, given in decimal degrees. + \end{description} + \begin{bigdescription} + \item[Example] + \url{http://mycone.org/cgi-bin/search?RA=180.567&DEC=-30.45&SR=0.0125} + \end{bigdescription} + \item The query MAY contain the optional parameter, + \textbf{VERB}, whose value is an integer--either 1, 2, or 3--indicating + verbosity which determines how many columns are to be returned in the + resulting table. Support for this parameter by a Cone Search service + implementation is optional. If the service supports the parameter, then + when the value is 1, the response should include the bare minimum of + columns that the provider considers useful in describing the returned + objects (while still remaining compliant with this standard; see section + 2.2 below). When the value is 3, the service should return all of the + columns that are available for describing the objects. A value of 2 is + intended for requesting a medium number of columns between the minimum + and maximum (inclusive) that are considered by the provider to most + typically useful to the user. When the VERB parameter is not provided, + the server should respond as if VERB=2. If the VERB parameter is not + supported by the service, the service should ignore the parameter and + should always return the same columns for every request. + \item There may be other parameters in the query, but this document does not + specify their meaning or usage. 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. + \end{itemize} + + A query following this syntax represents a request for + information on sources located within the specified cone on the sky. + + \item The service must respond with an XML document in the VOTable + format, that represents a table of astronomical sources whose positions + are within the cone (see Appendix \ref{appendix:a} for an example). + There may also be other sources outside the cone -- the service + implementor may decide on the exact search criterion used internally to + the service to select the sources. The base MIME-type of the HTTP + response should be \texttt{text/xml}. The more specific form + \texttt{text/xml;content=x-votable} may optionally be used. The + MIME-type, \texttt{text/xml;votable} shall also be considered legal (for + backward compatibility reasons); however, this value is strongly + discouraged as it is not compliant with the MIME-type standard + \citep{std:MIME}. Simple Cone Search services MUST return VOTable + version 1 documents. + \begin{bigdescription} - \item[Example] \url{http://mycone.org/cgi-bin/search?RA=180.567&DEC=-30.45&SR=0.0125} + \item[Editor's Note] The original NVO specification allowed a + MIME-type of text/xml;votable, thus for backward + compatibility this is still allowed but discouraged. \end{bigdescription} - \item The query MAY contain the optional parameter, \textbf{VERB}, whose value is an integer--either 1, 2, or 3--indicating verbosity which determines how many columns are to be returned in the resulting table. Support for this parameter by a Cone Search service implementation is optional. If the service supports the parameter, then when the value is 1, the response should include the bare minimum of columns that the provider considers useful in describing the returned objects (while still remaining compliant with this standard; see section 2.2 below). When the value is 3, the service should return all of the columns that are available for describing the objects. A value of 2 is intended for requesting a medium number of columns between the minimum and maximum (inclusive) that are considered by the provider to most typically useful to the user. When the VERB parameter is not provided, the server should respond as if VERB=2. If the VERB parameter is not supported by the service, the service should ignore the parameter and should always return the same columns for every request. - \item There may be other parameters in the query, but this document does not specify their meaning or usage. 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. - \end{itemize} - A query following this syntax represents a request for information on sources located within the specified cone on the sky. - \item The service must respond with an XML document in the VOTable format, that represents a table of astronomical sources whose positions are within the cone (see Appendix \ref{appendix:a} for an example). There may also be other sources outside the cone -- the service implementor may decide on the exact search criterion used internally to the service to select the sources. - The base MIME-type of the HTTP response should be \texttt{text/xml}. The more specific form \texttt{text/xml;content=x-votable} may optionally be used. The MIME-type, \texttt{text/xml;votable} shall also be considered legal (for backward compatibility reasons); however, this value is strongly discouraged as it is not compliant with the MIME-type standard \citep{std:MIME}. - Simple Cone Search services MUST return VOTable version 1 documents. - \begin{bigdescription} - \item[Editor's Note] The original NVO specification allowed a MIME-type of text/xml;votable, thus for backward compatibility this is still allowed but discouraged. - \end{bigdescription} - The VOTable MUST comply with these conditions: - \begin{itemize} - \item There must be a single RESOURCE in the VOTable, and that contains a single TABLE. - \item The TABLE must have FIELDS where the following UCD values have been set. There must only be one FIELD with each of these UCDs: + + The VOTable MUST comply with these conditions: + \begin{itemize} - \item 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. - \item Exactly one FIELD must have ucd="POS\_EQ\_RA\_MAIN", with type double, representing the right-ascension of the source in the ICRS coordinate system. - \item Exactly one FIELD must have ucd="POS\_EQ\_DEC\_MAIN", with type double, representing the declination of the source in the ICRS coordinate system. + \item There must be a single RESOURCE in the VOTable, + and that contains a single TABLE. + \item The TABLE must have FIELDS where + the following UCD values have been set. There must only be one FIELD + with each of these UCDs: + + \begin{itemize} + \item 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. + \item Exactly one + FIELD must have ucd="POS\_EQ\_RA\_MAIN", with type double, representing + the right-ascension of the source in the ICRS coordinate system. + \item + Exactly one FIELD must have ucd="POS\_EQ\_DEC\_MAIN", with type double, + representing the declination of the source in the ICRS coordinate system. + \end{itemize} + + \item The VOTable may include an expression of the + uncertainty of the positions given in the above mentioned fields to be + interpreted either as a positional error of the source positions, or an + angular size if the sources are resolved. If this uncertainty is not + provided, it should be taken to be zero; otherwise, it may be set for + all table entries with a PARAM in the RESOURCE which has a UCD that is + set to OBS\_ANG-SIZE and has a value which is the angle in decimal + degrees. Alternatively, a different value for each row in the table can + be given via a FIELD in the table having a UCD set to OBS\_ANG-SIZE. + \item There may be other FIELDs in the table. Their specification should + include a description, data-type, and UCD. \end{itemize} - \item The VOTable may include an expression of the uncertainty of the positions given in the above mentioned fields to be interpreted either as a positional error of the source positions, or an angular size if the sources are resolved. If this uncertainty is not provided, it should be taken to be zero; otherwise, it may be set for all table entries with a PARAM in the RESOURCE which has a UCD that is set to OBS\_ANG-SIZE and has a value which is the angle in decimal degrees. Alternatively, a different value for each row in the table can be given via a FIELD in the table having a UCD set to OBS\_ANG-SIZE. - \item There may be other FIELDs in the table. Their specification should include a description, data-type, and UCD. - \end{itemize} - \item The service must respond with a stubbed version of the VOTable in the case of error. This must happen if the three required parameters (RA, DEC, SR) are not all present, or if their values cannot be parsed to floating-point numbers, or if the numbers are out of range (DEC=91.0, for example). The service may also make an error return if the search radius (give by the SR parameter) is larger than the MaxSR parameter of the Resource Profile (see Section \ref{sec:3}). - In the case of error, the service MUST respond with a VOTable that contains - a PARAM element or an INFO element with \texttt{name="Error"}, where the - corresponding value attribute should contain some explanation of the nature - of the error. No other PARAM or INFO element in the response can be present - having \texttt{name=''Error''} set, but additional INFO and PARAM elements - with the name parameter set to a different value are allowed. If an INFO element - is used, it must appear as a direct child of one of the following elements: - \begin{itemize} - \item the root VOTABLE element (which is preferred by this document), or - \item the RESOURCE element - \end{itemize} - If a PARAM element is used, it must appear as a direct child of one of following elements: - \begin{itemize} - \item the RESOURCE element, or - \item a DEFINITION element below the root VOTABLE element (which is discouraged by this document). - \end{itemize} - \begin{bigdescription} - \item[Editor's Note] It was recognized that this requirement, as it was described in the original NVO specification, is ambiguous about both the element to use for the ERROR message and its location in the document. The VOTable standard allows PARAM and INFO elements to appear in various places within the document. Since several of the different methods have been used in practice by Cone Search service implementations, no attempt is made in this version to correct this ambiguity. All of the above-mentioned locations should be considered legal, and Cone Search service clients should be prepared to look in all of them for an ERROR message. The use of PARAM as a child of DEFINITIONS is discouraged as the DEFINITIONS element was deprecated in VOTable v1.1. - \end{bigdescription} - \begin{bigdescription} - \item[Example Error Responses] Error INFO as child of VOTABLE (preferred)\\ - \begin{lstlisting}[language=XML,basicstyle=\footnotesize] + + \item The service must respond with a stubbed version of the VOTable in the case + of error. This must happen if the three required parameters (RA, DEC, + SR) are not all present, or if their values cannot be parsed to + floating-point numbers, or if the numbers are out of range (DEC=91.0, + for example). The service may also make an error return if the search + radius (give by the SR parameter) is larger than the MaxSR parameter of + the Resource Profile (see Section \ref{sec:3}). In the case of error, + the service MUST respond with a VOTable that contains a PARAM element or + an INFO element with \texttt{name="Error"}, where thecorresponding value + attribute should contain some explanation of the nature of the error. No + other PARAM or INFO element in the response can be present having + \texttt{name=''Error''} set, but additional INFO and PARAM elements with + the name parameter set to a different value are allowed. If an INFO + element is used, it must appear as a direct child of one of the + following elements: + + \begin{itemize} + \item the root VOTABLE element (which is preferred by this document), or + \item the RESOURCE element + \end{itemize} + + If a PARAM element is used, it must appear as a direct + child of one of following elements: + + \begin{itemize} + \item the RESOURCE element, or + \item a DEFINITION element below the root VOTABLE element + (which is discouraged by this document). + \end{itemize} + + \begin{bigdescription} + \item[Editor's Note] + It was recognized that this + requirement, as it was described in the original NVO specification, is + ambiguous about both the element to use for the ERROR message and its + location in the document. The VOTable standard allows PARAM and INFO + elements to appear in various places within the document. Since several + of the different methods have been used in practice by Cone Search + service implementations, no attempt is made in this version to correct + this ambiguity. All of the above-mentioned locations should be + considered legal, and Cone Search service clients should be prepared to + look in all of them for an ERROR message. The use of PARAM as a child of + DEFINITIONS is discouraged as the DEFINITIONS element was deprecated in + VOTable v1.1. + \end{bigdescription} + \begin{bigdescription} + \item[Example Error Responses] + Error INFO as child of VOTABLE (preferred)\\ + + \begin{lstlisting}[language=XML,basicstyle=\footnotesize] - - - - \end{lstlisting} - Error PARAM as child of RESOURCE (allowed) - \begin{lstlisting}[language=XML,basicstyle=\footnotesize] + + + \end{lstlisting} + + Error PARAM as child of RESOURCE (allowed) + + \begin{lstlisting}[language=XML,basicstyle=\footnotesize] - HEASARC Browse data service - Please send inquiries to mailto:request@athena.gsfc.nasa.gov + HEASARC Browse data service + Please send inquiries to mailto:request@athena.gsfc.nasa.gov - - + + - \end{lstlisting} - \end{bigdescription} - Other conditions may NOT be considered erroneous, for example if a query cone is in the Southern hemisphere and the catalog coverage is in the Northern hemisphere. This type of query is different from an error return; it should return a VOTable as described above, with metadata, but no data records. In particular, a zero value of Search Radius should not return an error condition. This is because an application may be more interested in the metadata than the data, and send a fixed query (for example RA=0\&DEC=90\&SR=0) simply to discover the fields delivered by the service. + \end{lstlisting} + + \end{bigdescription} + + Other conditions may + NOT be considered erroneous, for example if a query cone is in the + Southern hemisphere and the catalog coverage is in the Northern + hemisphere. This type of query is different from an error return; it + should return a VOTable as described above, with metadata, but no data + records. In particular, a zero value of Search Radius should not return + an error condition. This is because an application may be more + interested in the metadata than the data, and send a fixed query (for + example RA=0\&DEC=90\&SR=0) simply to discover the fields delivered by + the service. \end{enumerate} \section{The Resource Profile} -\label{sec:3} -A Cone Search service MUST be described with a Resource Profile that includes the following information. The Profile is composed of named metadata listed below. The format used to encode the profile should be compliant with the publishing standards of the IVOA throughout the time the service is supported by the data provider. The metadata names and values used in the profile encoding should match those given below as closely as possible; where they do not match exactly, they should be consistent with the IVOA metadata conventions in place at any given time and the mapping of names and values actually used and those given below should be well documented. +\label{sec:3} + +A Cone Search service MUST +be described with a Resource Profile that includes the following +information. The Profile is composed of named metadata listed below. The +format used to encode the profile should be compliant with the +publishing standards of the IVOA throughout the time the service is +supported by the data provider. The metadata names and values used in +the profile encoding should match those given below as closely as +possible; where they do not match exactly, they should be consistent +with the IVOA metadata conventions in place at any given time and the +mapping of names and values actually used and those given below should +be well documented. + \begin{bigdescription} -\item[Editor's Note] The original NVO specification pre-dates the IVOA standard for resource metadata [RM], and so, obviously, some inconsistencies with that standard exist. To deal with this, the wording of this section has been altered to allow profiles to be constructed according to the latest practices in the IVOA. Appendix B outlines the mapping of the metadata listed below to that in the RM as well as the XML Schema used to render the metadata within a Registry. + \item[Editor's Note] + The original NVO specification pre-dates the IVOA standard for resource + metadata [RM], and so, obviously, some inconsistencies with that + standard exist. To deal with this, the wording of this section has been + altered to allow profiles to be constructed according to the latest + practices in the IVOA. Appendix B outlines the mapping of the metadata + listed below to that in the RM as well as the XML Schema used to render + the metadata within a Registry. \end{bigdescription} -Several of the metadata listed below can have values that are hierarchical; this hierarchy should be represented in a manner most appropriate to the format used. When the format does not provide any such mechanism, it is recommended that the value be represented as a strings delimited by dots with the root domain of the value appearing first. -The resource profile consists of the following metadata with the stated definitions: +Several of the +metadata listed below can have values that are hierarchical; this +hierarchy should be represented in a manner most appropriate to the +format used. When the format does not provide any such mechanism, it is +recommended that the value be represented as a strings delimited by dots +with the root domain of the value appearing first. + +The resource profile consists of the following metadata with the stated +definitions: + \begin{itemize} \item[\textbf{ResponsibleParty}] The data provider's name and email. - \item[\textbf{ServiceName}] The name of the catalog served by the service, for example "IRSA.2MASS.ExtendedSources". - \item[\textbf{Description}] A couple of paragraphs of text that describe the nature of the catalog and its wider context. - \item[\textbf{Instrument}] The instrument that made the observations, for example STScI.\-HST.\-WFPC2. - \item[\textbf{Waveband}] The waveband of the observations, with ONE selected from this list: radio, millimeter, infrared, optical, ultraviolet, xray, gammaray. + \item[\textbf{ServiceName}] The name of the + catalog served by the service, for example "IRSA.2MASS.ExtendedSources". + \item[\textbf{Description}] A couple of paragraphs of text that describe + the nature of the catalog and its wider context. + \item[\textbf{Instrument}] The instrument that made the observations, + for example STScI.\-HST.\-WFPC2. + \item[\textbf{Waveband}] The waveband + of the observations, with ONE selected from this list: radio, + millimeter, infrared, optical, ultraviolet, xray, gammaray. \item[\textbf{Epoch}] The epoch of the observations, as a free-form string. \item[\textbf{Coverage}] The coverage on the sky, as a free-form string. - \item[\textbf{MaxSR}] The largest search radius, given in decimal degrees, that will be accepted by the service without returning an error condition. A value of 180.0 indicates that there is no restriction. - \item[\textbf{MaxRecords}] The largest number of records that the service will return. - \item[\textbf{Verbosity}] True or false, depending on whether the service supports the VERB keyword in the request. - \item[\textbf{BaseURL}] The base URL for the service as described in Section \ref{sec:2}. + \item[\textbf{MaxSR}] The largest search radius, given in decimal + degrees, that will be accepted by the service without returning an error + condition. A value of 180.0 indicates that there is no restriction. + \item[\textbf{MaxRecords}] The largest number of records that the + service will return. + \item[\textbf{Verbosity}] True or false, depending + on whether the service supports the VERB keyword in the request. + \item[\textbf{BaseURL}] The base URL for the service as described in + Section \ref{sec:2}. \end{itemize} -The service will be considered published to the VO if the profile has been added to an IVOA Registry according to the IVOA standards and conventions at the time the service is made available, TOGETHER with maintaining the web service that is described by the profile in compliant order. + +The service will be considered +published to the VO if the profile has been added to an IVOA Registry +according to the IVOA standards and conventions at the time the service +is made available, TOGETHER with maintaining the web service that is +described by the profile in compliant order. \appendix + \section{Sample VOTable Response} \label{appendix:a} + This is a sample of a legal response to a Cone Search query. -\begin{lstlisting}[language=XML,basicstyle=\footnotesize] + +\begin{lstlisting}[language=XML,basicstyle=\footnotesize] @@ -217,57 +410,75 @@ \section{Sample VOTable Response} - - HEASARC Browse data service - Please send inquiries to mailto:request@athena.gsfc.nasa.gov + + HEASARC Browse data service + Please send inquiries to mailto:request@athena.gsfc.nasa.gov - + - Faint Images of the Radio Sky at Twenty cm Source Catalog (FIRST) - - Integer key + + Faint Images of the Radio Sky at Twenty cm Source Catalog (FIRST) + + + Integer key - - FIRST Source Designation + + FIRST Source Designation - Right Ascension + Right Ascension - Declination + Declination - - Peak 1.4GHz Flux Density (mJy) + + Peak 1.4GHz Flux Density (mJy) - - Estimated rms in at Source (mJy) + + Estimated rms in at Source (mJy) - - Integrated 1.4GHz Flux Density (mJy) + + Integrated 1.4GHz Flux Density (mJy) - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
384559FIRST J120002.6+595708180.011004259.9523889 1.11 0.139 1.14
385094FIRST J120025.3+600103180.105725060.0175556 2.89 0.142 2.56
384928FIRST J120018.1+600236180.075550060.0434750 19.38 0.145 19.23
384490FIRST J115959.4+600403179.997887560.0677083 1.01 0.147 1.20
384559FIRST J120002.6+595708180.011004259.95238891.110.1391.14
385094FIRST J120025.3+600103180.105725060.01755562.890.1422.56
384928FIRST J120018.1+600236180.075550060.043475019.380.14519.23
384490FIRST J115959.4+600403179.997887560.06770831.010.1471.20
@@ -277,8 +488,14 @@ \section{Sample VOTable Response} \section{Current Practices for Representing Resource Profiles} -\subsection{Mapping for Resource Profile Metadata to the RM} -As mentioned in an Editor's Note in Section \ref{sec:3}, the original NVO specification pre-dated the IVOA standard for resource metadata known as the RM \citep{2004ivoa.spec.0426H}. This section indicates how the resource profile metadata defined in this specification maps to the metadata defined in the RM. +\subsection{Mapping for Resource Profile Metadata to the RM} + +As mentioned in an Editor's Note in Section \ref{sec:3}, the original NVO +specification pre-dated the IVOA standard for resource metadata known as +the RM \citep{2004ivoa.spec.0426H}. This section indicates how the +resource profile metadata defined in this specification maps to the +metadata defined in the RM. + \begin{table}[th] \begin{tabular}{p{0.4\textwidth}p{0.5\textwidth}} \sptablerule @@ -297,63 +514,91 @@ \subsection{Mapping for Resource Profile Metadata to the RM} \textbf{BaseURL} & Service.BaseURL\\ \sptablerule \label{table:b1meta} -\end{tabular} -\caption{Metadata Mapping} -\end{table} +\end{tabular} \caption{Metadata +Mapping} \end{table} + Table notes: \begin{enumerate} - \item The notion of the epoch the observations is captured in the RM as the temporal coverage. The notion of the equinox of the observational positions is captured part of the RM's Coverage.Spatial. - \item As this concept is not covered by the RM, it should be considered service-specific capability metadata. + \item The notion of + the epoch the observations is captured in the RM as the temporal + coverage. The notion of the equinox of the observational positions is + captured part of the RM's Coverage.Spatial. + \item As this concept is not + covered by the RM, it should be considered service-specific capability + metadata. \end{enumerate} -\subsection{VOResource (pre-v1.0) Schema Extension for Cone Search Services} -Just prior to the adoption of IVOA standard for registry interfaces, v1.0, resource descriptions were encoded using the VOResource XML Schema, v0.10 and its family of extension schemas. The extensions used to specifically describe Cone Search services were VODataService, v0.5 and ConeSearch, v0.3 -%%% \todo{The references to RI, VOResource, VODataService and ConeSearch here, are all referring to xsd schemata currently obsoleted.}. See the embedded documentation in each of these schemas for the precise definitions and usage of the metadata encodable through them. %%% +\subsection{VOResource (pre-v1.0) Schema Extension for Cone Search Services} + +Just prior to the adoption of IVOA standard for registry +interfaces, v1.0, resource descriptions were encoded using the +VOResource XML Schema, v0.10 and its family of extension schemas. The +extensions used to specifically describe Cone Search services were +VODataService, v0.5 and ConeSearch, v0.3. +%%%% \todo{The references to RI, +%VOResource, VODataService and ConeSearch here, are all referring to xsd +%schemata currently obsoleted.}. See the embedded documentation in each +%of these schemas for the precise definitions and usage of the metadata +%encodable through them. %%% -The following table enumerates the mapping of resource profile metadata defined in this specification with those defined in the XML schemas. +The following table enumerates the mapping of resource profile metadata +defined in this specification with those defined in the XML schemas. \begin{table}[th] \begin{tabular}{p{0.38\textwidth}p{0.27\textwidth}p{0.34\textwidth}} \sptablerule \multirow{2}{*}{\textbf{Cone Search Metadatum}}&\multicolumn{2}{p{0.59\textwidth}}{\textbf{VOResource Metadatum}}\\ -&\textbf{Schema Name}&\textbf{XPath Name}\\ +&\textbf{Schema Name}&\textbf{XPath Name}\\ \sptablerule \textbf{ResponsibleParty} & VOResource & curation/publisher, curation/contact/email\\ \textbf{ServiceName} & VOResource & title\\ -\textbf{Description} & VOResource & content/description\\ +\textbf{Description} & VOResource & content/description\\ \textbf{Instrument} & VOResource & instrument\\ \textbf{Waveband} & VODataService & coverage/spectral/waveband\\ \textbf{Epoch} & VODataService & coverage/temporal/startTime, coverage/temporal/stopTime\textsuperscript{1}\\ \textbf{Coverage} & VODataService & coverage/spatial\textsuperscript{2}\\ \textbf{MaxSR} & ConeSearch & capability/maxSR\\ \textbf{MaxRecords} & ConeSearch & capability/maxRecords\\ -\textbf{Verbosity} & ConeSearch & capability/verbosity\\ -\textbf{BaseURL} & VOResource & interface/accessURL\\ +\textbf{Verbosity} & ConeSearch &capability/verbosity\\ +\textbf{BaseURL} & VOResource interface/accessURL\\ \sptablerule \label{table:extable} \end{tabular} \caption{VOResource pre-0.10 extension} -\end{table} +\end{table} + Table Notes: -\begin{enumerate} - \item The notion of the epoch the observations is captured in the schema inside coverage/temporal. The notion of the equinox of the observational positions is captured within coverage/spatial/region, such as in coverage/spatial/region[@xsi:type='vs:Circle']/coordFrame. - \item the coverage/spatial element encodes its information as a complex set of child elements. +\begin{enumerate} + \item The notion of the epoch the observations is + captured in the schema inside coverage/temporal. The notion of the + equinox of the observational positions is captured within + coverage/spatial/region, such as in + coverage/spatial/region[@xsi:type='vs:Circle']/coordFrame. + \item the coverage/spatial element encodes its information as a + complex set of child elements. \end{enumerate} \subsection{VOResource (v1.0) Schema Extension for Cone Search Services} -With the expected adoption of the IVOA standard for Registry Interface, resources are described using the VOResource schema, v1.0 and its family of extensions. Cone Search services are specifically described using the VODataService, v1.0, and ConeSearch, v1.0, extension schemas. Coverage information is encoded using the Space-Time Coordinates (STC) schema. -The following table enumerates the mapping of resource profile metadata defined in this specification with those defined in the XML schemas. +With the expected adoption of the IVOA standard for Registry +Interface, resources are described using the VOResource schema, v1.0 and +its family of extensions. Cone Search services are specifically +described using the VODataService, v1.0, and ConeSearch, v1.0, extension +schemas. Coverage information is encoded using the Space-Time +Coordinates (STC) schema. + +The following table enumerates the mapping of resource profile metadata +defined in this specification with those defined in the XML schemas. \begin{table}[th] \begin{tabular}{p{0.4\textwidth}p{0.29\textwidth}p{0.3\textwidth}} \sptablerule -\multirow{2}{*}{\textbf{Cone Search Metadatum}}&\multicolumn{2}{p{0.59\textwidth}}{\textbf{VOResource Metadatum}}\\ +\multirow{2}{*}{\textbf{Cone Search Metadatum}}&\multicolumn{2}{p{0.59\textwidth}}{\textbf{VOResource Metadatum}}\\ &\textbf{Schema Name}&\textbf{XPath Name}\\ \sptablerule \textbf{ResponsibleParty} & VOResource & curation/publisher, curation/contact/email\\ \textbf{ServiceName} & VOResource & title\\ -\textbf{Description} & VOResource & content/description\\ +\textbf{Description} & VOResource & content/description\\ \textbf{Instrument} & VOResource & instrument\\ \textbf{Waveband} & VODataService & coverage/waveband\\ \textbf{Epoch} & VODataService & coverage-/stc:STCResourceProfile-/stc:AstroCoordArea\textsuperscript{1}\\ @@ -370,15 +615,22 @@ \subsection{VOResource (v1.0) Schema Extension for Cone Search Services} Table Notes: \begin{enumerate} - \item In STC, coverage on the sky and in time are described in an integrated way within the stc:AstroCoordArea element. The notion of the equinox of the observational positions is captured within stc:AstroCoordSystem element. -\end{enumerate} -Subsequent versions of this document should include the ConeSearch extension schema as a formal part of the specification. + \item In STC, coverage on the sky and in + time are described in an integrated way within the stc:AstroCoordArea + element. The notion of the equinox of the observational positions is + captured within stc:AstroCoordSystem element. +\end{enumerate} + +Subsequent versions of this document should include the ConeSearch extension +schemaas a formal part of the specification. \section{Changes from Previous Versions} \subsection{Changes from WD-1.1-20200828} \begin{itemize} - \item Complete revert of changes to restore clean 1.03 contents, in view of specific minor updates (here above) + \item embedded errata 1, 2 and 3 for ConeSearch-1.03 + \item Complete revert of changes to restore clean 1.03 contents, + in view of specific minor updates (listed here above) \end{itemize} \subsection{Changes from REC-1.03} @@ -388,13 +640,14 @@ \subsection{Changes from REC-1.03} \item changed error response to comply with DALI \item changed resource metadata importing directly from SimpleDALRegExt \item relaxed RA and Dec FIELDs in response to allow float or double datatype - \item no more exactly one RESOURCE in response, now stating exactly one of type="results" + \item no more exactly one RESOURCE in response, now stating exactly one of + type="results" \item removed fixed version (1.0 or 1.1) for VOTable default response \item Added DALI MAXREC and RESPONSEFORMAT \item Added POST as optional HTTP query method \item Addition of authors/editors. \item Plain porting of the HTML document into ivoatex template, -including change history, then modified it and reshaped. + including change history, then modified it and reshaped. \end{itemize} \subsection{Changes from PR-1.02} @@ -404,10 +657,13 @@ \subsection{Changes from PR-1.02} \subsection{Changes from PR-1.01} \begin{itemize} - \item eliminated the choice of encoding an ERROR response in a PARAM that is a direct child of VOTABLE as this is not legal in the VOTable schema. + \item eliminated the + choice of encoding an ERROR response in a PARAM that is a direct child + of VOTABLE as this is not legal in the VOTable schema. \item Allowed the use of the INFO element for error messages. \item In examples, made sure PARAM elements have datatype attributes - \item Corrected wording to be definitive that positions are given in the ICRS coordinate system. + \item Corrected wording to be definitive that positions are given + in the ICRS coordinate system. \item Other typos. \end{itemize} @@ -415,10 +671,10 @@ \subsection{Changes from PR-1.00} \begin{itemize} \item Various typos. \item Clarified description of VERB parameter: - \begin{itemize} - \item Clarified what is meant by optional for client and server. - \item Clarified the meaning of the values. - \end{itemize} + \begin{itemize} + \item Clarified what is meant by optional for client and server. + \item Clarified the meaning of the values. + \end{itemize} \item Explicitly mention the 3 legal locations for ERROR messages. \item Refer to string types as character arrays, as per the VOTable std. \item Prefers text/xml;content=x-votable over text/xml;votable. @@ -428,29 +684,46 @@ \subsection{Changes from PR-1.00} \subsection{Changes from the original NVO Specification Document} \label{appendix:nvochanges} \begin{itemize} - \item References to the original HTML document have been replaced with references to this IVOA specification. - \item Replaced references to "curator" with "data provider" or similar wording. - \item Replaced references to the NVO with references either to the IVOA or this specification, as appropriate. - \item Ambiguous language like "perhaps" has been replaced with more definitive wording where appropriate. Use of the word "will" is replaced with "must" and "can" with "may", in accordance with the definitions set in the preface. + \item References to the original HTML document have been replaced + with references to this IVOA specification. + \item Replaced references to "curator" with "data + provider" or similar wording. + \item Replaced references to the NVO with + references either to the IVOA or this specification, as appropriate. + \item Ambiguous language like "perhaps" has been replaced with more + definitive wording where appropriate. Use of the word "will" is replaced + with "must" and "can" with "may", in accordance with the definitions set + in the preface. \item Grammatical and spelling corrections have been made. \item The content is organized into sections typical of an IVOA spec. - \item Description of the URL syntax is sharper, borrowing language from the SIA specification [SIA]. This includes: - \begin{itemize} - \item More explicitly specifying the form of the URL. - \item Sharpening the definition of the input parameters. - \item Indicating that parameter order is not significant. - \item Stating explicitly that unsupported optional arguments should be ignored. - \item Adding examples. - \item Re-ordering information for improved flow. - \end{itemize} + \item Description of the URL syntax is sharper, borrowing language + from the SIA specification [SIA]. This includes: + \begin{itemize} + \item More explicitly specifying the form of the URL. + \item Sharpening the definition of the input parameters. + \item Indicating that parameter order is not significant. + \item Stating explicitly that unsupported optional arguments + should be ignored. + \item Adding examples. + \item Re-ordering information for improved flow. + \end{itemize} \item The version of VOTable supported is explicitly stated. - \item Whereas the NVO version describes the parameter with ucd="OBS\_ANG-SIZE" as "an expression of the opening angle of the cones", this version describes it specifically as "an expression of the uncertainty of the positions". - \item A note has been added to recognize the ambiguity in the location of the ERROR parameter. - \item The general description of the resource profile has been altered to allow rendering of the metadata to change according to the standards and conventions of the IVOA. - \item An editor's note has been added that makes reference to the RM document [RM]. - \item A requirement that \textbf{MaxSR} be given in decimal degrees has been added. - \item For the \textbf{BaseURL} resource profile metadatum, the example has been replaced with a reference to the BaseURL syntax description. - \item An appendix has been added to describe the current practice for registering Cone Search services. + \item Whereas the NVO version describes the parameter with + ucd="OBS\_ANG-SIZE" as "an + expression of the opening angle of the cones", this version describes it + specifically as "an expression of the uncertainty of the positions". + \item A note has been added to recognize the ambiguity in the location + of the ERROR parameter. + \item The general description of the resource + profile has been altered to allow rendering of the metadata to change + according to the standards and conventions of the IVOA. + \item An editor's note has been added that makes reference to the RM document [RM]. + \item A requirement that \textbf{MaxSR} be given in decimal + degrees has been added. \item For the \textbf{BaseURL} resource profile + metadatum, the example has been replaced with a reference to the BaseURL + syntax description. + \item An appendix has been added to describe the + current practice for registering Cone Search services. \end{itemize} \bibliography{ivoatex/ivoabib,ivoatex/docrepo,ConeSearch} diff --git a/Makefile b/Makefile index 5fcd0b3..519f65b 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ DOCNAME = ConeSearch DOCVERSION = 1.1 # Publication date, ISO format; update manually for "releases" -DOCDATE = 2023-08-18 +DOCDATE = 2023-08-29 # What is it you're writing: NOTE, WD, PR, REC, PEN, or EN DOCTYPE = WD From 6a366c5de75447fa7846f56cd42b2b1cf0afd42d Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Tue, 29 Aug 2023 10:14:47 +0200 Subject: [PATCH 10/15] preventing changelog subsections from contents listing --- ConeSearch.tex | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index c9ac8b8..2897d41 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -626,14 +626,14 @@ \subsection{VOResource (v1.0) Schema Extension for Cone Search Services} \section{Changes from Previous Versions} -\subsection{Changes from WD-1.1-20200828} +\subsection*{Changes from WD-1.1-20200828} \begin{itemize} \item embedded errata 1, 2 and 3 for ConeSearch-1.03 \item Complete revert of changes to restore clean 1.03 contents, in view of specific minor updates (listed here above) \end{itemize} -\subsection{Changes from REC-1.03} +\subsection*{Changes from REC-1.03} \label{appendix:first11changes} \begin{itemize} \item moving base URL to a plain http://server/path? format @@ -650,12 +650,12 @@ \subsection{Changes from REC-1.03} including change history, then modified it and reshaped. \end{itemize} -\subsection{Changes from PR-1.02} +\subsection*{Changes from PR-1.02} \begin{itemize} \item converted to Recommendation \end{itemize} -\subsection{Changes from PR-1.01} +\subsection*{Changes from PR-1.01} \begin{itemize} \item eliminated the choice of encoding an ERROR response in a PARAM that is a direct child @@ -667,7 +667,7 @@ \subsection{Changes from PR-1.01} \item Other typos. \end{itemize} -\subsection{Changes from PR-1.00} +\subsection*{Changes from PR-1.00} \begin{itemize} \item Various typos. \item Clarified description of VERB parameter: @@ -681,7 +681,7 @@ \subsection{Changes from PR-1.00} \item Added examples of error message, legal response in appendix. \end{itemize} -\subsection{Changes from the original NVO Specification Document} +\subsection*{Changes from the original NVO Specification Document} \label{appendix:nvochanges} \begin{itemize} \item References to the original HTML document have been replaced From 8acad1e3a929458abc47f0ca784a2106557ab05c Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Wed, 8 Nov 2023 17:17:36 +0100 Subject: [PATCH 11/15] ivoatex update --- ivoatex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ivoatex b/ivoatex index 30e1cfd..ffdbc09 160000 --- a/ivoatex +++ b/ivoatex @@ -1 +1 @@ -Subproject commit 30e1cfd64f9d0d621a8c23d85628e50729daf42b +Subproject commit ffdbc0983d69ff1ecddf14e82dd71e4cf5ae4fa4 From b7b96909e18388395c58bb7a7ea40fad2387a667 Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Thu, 26 Sep 2024 14:00:33 +0200 Subject: [PATCH 12/15] ivoatex update and gitmeta added --- .gitignore | 4 ++++ ConeSearch.tex | 1 + Makefile | 2 +- ivoatex | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 1202507..31b17e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ ivoatexmeta.tex +gitmeta.tex ConeSearch.aux ConeSearch.bbl ConeSearch.blg @@ -6,4 +7,7 @@ ConeSearch.log ConeSearch.out ConeSearch.pdf ConeSearch.toc +ConeSearch.hd +ConeSearch.fls +ConeSearch.fdb_latexmk ConeSearch.html diff --git a/ConeSearch.tex b/ConeSearch.tex index 2897d41..c1ef2c1 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -1,5 +1,6 @@ \documentclass[11pt,a4paper]{ivoa} \input tthdefs +\input gitmeta \usepackage{todonotes} \usepackage{listings} diff --git a/Makefile b/Makefile index 519f65b..a9fd61a 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ AUTHOR_EMAIL=marco.molinaro@inaf.it # Source files for the TeX document (but the main file must always # be called $(DOCNAME).tex) -SOURCES = $(DOCNAME).tex +SOURCES = $(DOCNAME).tex gitmeta.tex # List of image files to be included in submitted package (anything that # can be rendered directly by common web browsers) diff --git a/ivoatex b/ivoatex index ffdbc09..85a59fe 160000 --- a/ivoatex +++ b/ivoatex @@ -1 +1 @@ -Subproject commit ffdbc0983d69ff1ecddf14e82dd71e4cf5ae4fa4 +Subproject commit 85a59fe8e6abd86bbe3ef4e12fd3dade71a54924 From 2c255749d011b5493830a1394f98c1171496a303 Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Mon, 30 Sep 2024 09:31:03 +0200 Subject: [PATCH 13/15] github build workflow fix --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 72b5cde..79afad7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ jobs: test -f ${{ env.doc_name }}.bbl - name: Keep the PDF artefact - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v4 with: name: PDF Preview path: ${{ env.doc_name }}.pdf From f30b86b58a9a7fd9aa39e3aab2ca99909338e7b7 Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Mon, 30 Sep 2024 09:35:35 +0200 Subject: [PATCH 14/15] re-added (myself) as co-editot/author --- ConeSearch.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index c1ef2c1..37e698b 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -14,13 +14,13 @@ \ivoagroup{Data Access Layer} \author[http://www.ivoa.net/twiki/bin/view/IVOA/RayPlante]{Raymond Plante} -%\author[http://www.ivoa.net/twiki/bin/view/IVOA/MarcoMolinaro]{Marco Molinaro} +\author[http://www.ivoa.net/twiki/bin/view/IVOA/MarcoMolinaro]{Marco Molinaro} %\author[http://www.ivoa.net/twiki/bin/view/IVOA/MarkusDemleitner]{Markus Demleitner} \author[http://www.ivoa.net/twiki/bin/view/IVOA/BobHanisch]{Robert Hanisch} \author[http://www.ivoa.net/twiki/bin/view/IVOA/AlexSzalay]{Alex Szalay} \author[http://www.ivoa.net/twiki/bin/view/IVOA/RoyWilliams]{Roy Williams} -\editor{Ray Plante} +\editor{Ray Plante, Marco Molinaro} \previousversion[http://www.ivoa.net/Documents/ConeSearch/20200828/index.html]{WD 1.1 2020-08-28} \previousversion[http://www.ivoa.net/Documents/REC/DAL/ConeSearch-20080222.html]{REC 1.03} From c08324da7c4de476b88c5f6a7c734e153bcf177f Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Mon, 30 Sep 2024 09:39:56 +0200 Subject: [PATCH 15/15] clarified ASERICS/ESCAPE contribution --- ConeSearch.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ConeSearch.tex b/ConeSearch.tex index 37e698b..a552954 100755 --- a/ConeSearch.tex +++ b/ConeSearch.tex @@ -58,7 +58,7 @@ \section*{Acknowledgments} Research Program under Cooperative Agreement AST0122449 with The Johns Hopkins University. -The ConeSearch-1.1 revision has been developed and supported under the +The ConeSearch-1.1 revision has been initially supported under the ASTERICS and ESCAPE projects (funded by the European Commission Framework Programme Horizon 2020 Research and Innovation Action, grant agreements n. 653477 and n. 824064 respectively). Work done within the