From 1ea61f873d64675fa99c3f7f2a96bde5dd041eaa Mon Sep 17 00:00:00 2001 From: Marco Molinaro Date: Fri, 26 May 2017 06:53:22 +0000 Subject: [PATCH] SCS - initial commit with ivoatex porting - MMo --- Makefile | 28 + README | 13 + REC-SCS-1.03-20080222.html | 1182 ++++++++++++++++++++++++++++++++++++ SCS.tex | 441 ++++++++++++++ archdiag.png | Bin 0 -> 60491 bytes scs.bib | 21 + 6 files changed, 1685 insertions(+) create mode 100755 Makefile create mode 100755 README create mode 100755 REC-SCS-1.03-20080222.html create mode 100755 SCS.tex create mode 100755 archdiag.png create mode 100755 scs.bib diff --git a/Makefile b/Makefile new file mode 100755 index 0000000..be599bc --- /dev/null +++ b/Makefile @@ -0,0 +1,28 @@ +# ivoatex Makefile. The ivoatex/README for the targets available. + +# short name of your document (edit $DOCNAME.tex; would be like RegTAP) +DOCNAME = SCS + +# count up; you probably do not want to bother with versions <1.0 +DOCVERSION = 1.1 + +# Publication date, ISO format; update manually for "releases" +DOCDATE = 2017-06-21 + +# What is it you're writing: NOTE, WD, PR, REC, PEN, or EN +DOCTYPE = WD + +# Source files for the TeX document (but the main file must always +# be called $(DOCNAME).tex +SOURCES = $(DOCNAME).tex + +# List of pixel image files to be included in submitted package +FIGURES = archdiag.png + +# List of PDF figures (for vector graphics) +VECTORFIGURES = + +# Additional files to distribute (e.g., CSS, schema files, examples...) +AUX_FILES = + +include ivoatex/Makefile diff --git a/README b/README new file mode 100755 index 0000000..d1dc29d --- /dev/null +++ b/README @@ -0,0 +1,13 @@ +Simple Cone Search - source repository + +This ivoatex SCS source repo was started out of the HTML version of +REC-SCS-1.03-20080222.html (that for this reason is preserved in this +source bundle). + +Initial porting, whose goal was to bring the specification to revision +1.1 has been a plain transposition of the HTML into LaTeX, and includes +all of the history changes that the original document listed in appendix. +Porting tried to be as faithful as possible, given broken links and +references, styling issues and so. However the goal was not to produce +as one-to-one ivoatex SCS-1.03, but to form a basis to start the +revision from. diff --git a/REC-SCS-1.03-20080222.html b/REC-SCS-1.03-20080222.html new file mode 100755 index 0000000..40f3667 --- /dev/null +++ b/REC-SCS-1.03-20080222.html @@ -0,0 +1,1182 @@ + + + + +Cone Search (Recommendation) + + + + + + + + + + +
+IVOA + +

Simple Cone Search
+Version 1.03

+

IVOA Recommendation +22 February 2008

+ +
+ +
This version:
+
+ http://www.ivoa.net/Documents/REC/DAL/ConeSearch-20080222.html
+ +
Latest version:
+
+ http://www.ivoa.net/Documents/latest/ConeSearch.html
+ +
Previous versions:
+
+ http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070914.html
+
+ http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20070628.html
+
+ http://www.ivoa.net/Documents/PR/DAL/ConeSearch-20060908.html
+
+ +
+ +
Working Group:
+
http://www.ivoa.net/twiki/bin/view/IVOA/IvoaDAL
+
Editor:
+
+ Raymond Plante +
Authors:
+
+ Roy Williams
+ + Robert Hanisch
+ + Alex Szalay
+ + Raymond Plante
+
+ +
+
+ +

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. + +
+

Status of this document

+ +

+This document has been produced by the IVOA Resource Registry Working +Group.
+It has been reviewed by IVOA Members and other interested parties, and +has been endorsed by the IVOA Executive Committee as an IVOA +Recommendation as of 2007 September 27. It is a stable document and +may be used as reference material or cited as a normative reference +from another document. IVOA's role in making the Recommendation is to +draw attention to the specification and to promote its widespread +deployment. This enhances the functionality and interoperability +inside the Astronomical Community. +

+ +

+This document was originally published as a document of the +US National Virtual Observatory +(NVO), available at +http://us-vo.org/pubs/files/conesearch.html. +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 C. 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. +

+ +

+Comments on this document can be sent to the Data Access Layer Working +Group via dal@ivoa.net. +

+ +

+A list of current IVOA +Recommendations and other technical documents can be found at +http://www.ivoa.net/Documents/. +

+ +

Acknowledgments

+ +

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.

+ + +

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, RFC 2119 +[RFC 2119].

+ +

The Virtual Observatory (VO) is +general term for a collection of federated resources that can be used +to conduct astronomical research, education, and outreach. +The International +Virtual Observatory Alliance (IVOA) is a global +collaboration of separately funded projects to develop standards and +infrastructure that enable VO applications.

+ +

A Cone is a circular region +on the sky defined by a sky position and a radius around that +position. A Cone Search is a +query for information related to a Cone. The +Cone Search Protocol refers to the protocol +described in this document. A Cone Search +Service is a service implementation that complies with +this standard.

+ + + +

Contents

+ +
+ +

1. 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. +

+ + +

2. Service Interface Requirements

+ +A service implementation that is compliant with this standard must +meet the following requirements: + +
    +
  1. the service must respond to a HTTP GET request represented by a + URL having two parts: +
      + +
    • A base URL of the form:

      + +

      +      + http://<server-address>/<path>?[<extra-GET-arg>&[...]] +

      + +

      + where <server-address> and + <path> are URI-compliant components + indicating the domain address and local location path + where the service is deployed. The + <server-address> may end with one or more + locally supported URL arguments, <extra-GET-arg>; + 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, ?. +

      + +

      + + + + + + + + +
      +
      +
      Examples: +
      http://mycone.org/cgi-bin/VOsearch?
      + http://adil.ncsa.uiuc.edu/vocone?resolv&issurvey=T&
      +
      +
      +
      +

      + +

      Every query to a given cone search service uses the same + base URL.

      + +
    • Constraints expressed as a list of ampersand-delimited + GET arguments of the form:
      +      + <name>=<value> +

      + +

      + where <name> is a parameter name specified + by this specification and <value> 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. +

      + +
    • The baseURL and constraint list are concatenated to form + the query.

      + +
    • + The set of query constraints must include the following + parameters, which are interpreted by the service with + the stated meaning: + +

        +
      • RA -- a right-ascension + in the ICRS coordinate system for the positon of + the center of the cone to search, given in + decimal degrees.
      • +
      • DEC -- a declination in + the ICRS coordinate system for the positon of + the center of the cone to search, given in + decimal degrees.
      • +
      • SR -- the radius of the + cone to search, given in decimal degrees.
      • +

      + +

      + + + + + + +
      +
      +
      Example: +
      http://mycone.org/cgi-bin/search?RA=180.567&DEC=-30.45&SR=0.0125 +
      + +
      +
      +

      + +
    • The query MAY contain the optional parameter, + 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.

    • + +
    • 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. + +
  2. 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 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.

  3. + +

    + The base MIME-type of the HTTP response should be text/xml. + The more specific form text/xml;content=x-votable may + optionally be used. The MIME-type, 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 [MIME]. + The XML content of the response must be compliant with VOTable + schema, version 1.0 [VOTable v1.0] or 1.1 + [VOTable v1.1]. +

    + +
    +
    +
    +
    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.
    +
    +
    +
    + +

    The VOTable MUST comply with these conditions:

    + +
      + +
    • There must be a single RESOURCE in the VOTable, and + that contains a single TABLE.

    • + +
    • The TABLE must have FIELDS where the following UCD + [UCD] values + have been set. There must only be one FIELD with each of + these UCDs:

    • + +
        +
      • 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.

      • + +
      • 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.

      • + +
      • Exactly one FIELD must have ucd="POS_EQ_DEC_MAIN", + with type double, representing the declination of + the source in the ICRS coordinate system.

      • +
      + +
    • 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.

    • + +
    • There may be other FIELDs in the table. Their + specification should include a description, data-type, + and UCD.

    • +
    + +
  4. 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 3).

  5. + +

    In the case of error, the service MUST respond with a + VOTable that contains a single PARAM element or a + single INFO element with 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:

    + +
      +
    • the root VOTABLE element (which is preferred by this + document), or +
    • the RESOURCE element
    • +
    + +

    If a PARAM element is used, it must appear as a direct child of + one of following elements:

    + +
      +
    • the RESOURCE element, or
    • +
    • a DEFINITION element below the root + VOTABLE element (which is discouraged by this document).
    • +
    + +
    +
    +
    +
    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.
    +
    +
    +
    + +
    + +
    Example Error Responses:
    + +
    +
    <?xml version="1.0"?>
    +<!DOCTYPE VOTABLE SYSTEM "http://us-vo.org/xml/VOTable.dtd">
    +<VOTABLE version="1.0">
    +  <DESCRIPTION>MAST Simple Cone Search Service</DESCRIPTION>
    +  <INFO ID="Error" name="Error" value="Error in input RA value: as3f"/>
    +</VOTABLE>
    +
    +
    +
    + +
    +
    <?xml version="1.0"?>
    +<!DOCTYPE VOTABLE SYSTEM "http://us-vo.org/xml/VOTable.dtd">
    +<VOTABLE version="1.0">
    +  <DESCRIPTION>
    +     HEASARC Browse data service
    +     Please send inquiries to mailto:request@athena.gsfc.nasa.gov
    +  </DESCRIPTION>
    +  <RESOURCE ID="error_resource">
    +   <PARAM ID="Error" name="Error" datatype="char" arraysize="*"
    +          value="Invalid data type: text/html"/>
    + </RESOURCE>
    +</VOTABLE>
    +
    +
    +
    + + + +

    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.

    + +
+ + +

3. The Resource Profile

+ +

+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. +

+ +
+
+
+
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.
+
+
+
+ +

+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: +

+ + + +

+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 A: Sample VOTable Response

+ +

+This is a sample of a legal response to a Cone Search query. +

+ +
+ +
Example VOTable Response:
+
+
<?xml version="1.0"?>
+<!DOCTYPE VOTABLE SYSTEM "http://us-vo.org/xml/VOTable.dtd">
+<VOTABLE version="1.0">
+  <DEFINITIONS>
+    <COOSYS system="eq_FK5" equinox="2000" />
+  </DEFINITIONS>
+    
+  <RESOURCE ID="T9001">
+     <DESCRIPTION>
+       HEASARC Browse data service
+       Please send inquiries to mailto:request@athena.gsfc.nasa.gov
+    </DESCRIPTION>
+    <PARAM ID="default_search_radius" ucd="OBS_ANG-SIZE" datatype="double" 
+           value="0.0516666666666667" />
+
+    <TABLE ID="heasarc_first_9001">
+      <DESCRIPTION> Faint Images of the Radio Sky at Twenty cm Source Catalog (FIRST) </DESCRIPTION>
+      
+      <FIELD name="unique_id" datatype="char" arraysize="*"  ucd="ID_MAIN">
+        <DESCRIPTION> Integer key </DESCRIPTION>
+      </FIELD>
+      
+      <FIELD name="name" datatype="char" arraysize="*"  >
+        <DESCRIPTION> FIRST Source Designation </DESCRIPTION>
+      </FIELD>
+      
+      <FIELD name="ra" datatype="double" unit="degree" ucd="POS_EQ_RA_MAIN">
+        <DESCRIPTION> Right Ascension </DESCRIPTION>
+      </FIELD>
+      
+      <FIELD name="dec" datatype="double" unit="degree" ucd="POS_EQ_DEC_MAIN">
+        <DESCRIPTION> Declination </DESCRIPTION>
+      </FIELD>
+      
+      <FIELD name="flux_20_cm" datatype="double" unit="mJy" >
+        <DESCRIPTION> Peak 1.4GHz Flux Density (mJy) </DESCRIPTION>
+      </FIELD>
+      
+      <FIELD name="flux_20_cm_error" datatype="double" unit="mJy" >
+        <DESCRIPTION> Estimated rms in at Source (mJy) </DESCRIPTION>
+      </FIELD>
+      
+      <FIELD name="int_flux_20_cm" datatype="double" unit="mJy" >
+
+        <DESCRIPTION> Integrated 1.4GHz Flux Density (mJy) </DESCRIPTION>
+      </FIELD>
+      
+      <DATA>
+        <TABLEDATA>
+<TR>
+  <TD>384559</TD><TD>FIRST J120002.6+595708</TD>
+  <TD>180.0110042</TD><TD>59.9523889</TD>
+  <TD>    1.11</TD><TD> 0.139</TD><TD>    1.14</TD>
+</TR>
+<TR>
+  <TD>385094</TD><TD>FIRST J120025.3+600103</TD>
+  <TD>180.1057250</TD><TD>60.0175556</TD>
+  <TD>    2.89</TD><TD> 0.142</TD><TD>    2.56</TD>
+</TR>
+<TR>
+  <TD>384928</TD><TD>FIRST J120018.1+600236</TD>
+  <TD>180.0755500</TD><TD>60.0434750</TD>
+  <TD>   19.38</TD><TD> 0.145</TD><TD>   19.23</TD>
+</TR>
+<TR>
+  <TD>384490</TD><TD>FIRST J115959.4+600403</TD>
+  <TD>179.9978875</TD><TD>60.0677083</TD>
+  <TD>    1.01</TD><TD> 0.147</TD><TD>    1.20</TD>
+</TR>
+        </TABLEDATA>
+      </DATA>
+    </TABLE>
+
+  </RESOURCE>
+</VOTABLE>	
+
+
+
+ + +

Appendix B: Current Practices for Representing Resource Profiles

+ + +

B.1. Mapping for Resource Profile Metadata to the RM

+ +

+As mentioned in an Editor's Note in Section 3, the +original NVO specification pre-dated the IVOA standard for resource +metadata known as the RM [RM]. This section +indicates how the resource profile metadata defined in this +specification maps to the metadata defined in the RM. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cone Search Metadatum RM Metadatum
ResponsiblePartyPublisher,
+ Contact.Email
ServiceNameTitle
DescriptionDescription
InstrumentInstrument
WavebandCoverage.Spectral
EpochCoverage.Temporal.StartTime,
+ Coverage.Temporal.StopTime1
CoverageCoverage.Spatial
MaxSRService.MaxSearchRadius
MaxRecordsService.MaxReturnRecords
Verbosityn/a2
BaseURLService.BaseURL
+1The 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.
+2As this concept is not covered by the RM, it should be +considered service-specific capability metadata. +
+ + +

B.2. VOResource (pre-v1.0) Schema Extension for Cone Search +Services

+ +

+Just prior to the adoption of IVOA standard for registry interfaces, +v1.0 [RI], 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. 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. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cone Search MetadatumVOResource Metadatum
Schema NameXPath Name
ResponsiblePartyVOResourcecuration/publisher,
+ curation/contact/email
ServiceNameVOResourcetitle
DescriptionVOResourcecontent/description
InstrumentVOResourceinstrument
WavebandVODataServicecoverage/spectral/waveband
EpochVODataServicecoverage/temporal/startTime,
+ coverage/temporal/stopTime1
CoverageVODataServicecoverage/spatial2
MaxSRConeSearchcapability/maxSR
MaxRecordsConeSearchcapability/maxRecords
VerbosityConeSearchcapability/verbosity
BaseURLVOResourceinterface/accessURL
+1The 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.
+2the coverage/spatial element encodes its information as a +complex set of child elements. +
+ + +

B.3. VOResource (v1.0) Schema Extension for Cone Search Services

+ +

+With the expected adoption of the IVOA standard for Registry Interface +[RI], resources are described using the VOResource +schema, v1.0 [VOR] 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 +[STC]. +

+ +

+The following table enumerates the mapping of resource profile +metadata defined in this specification with those defined in the XML +schemas. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cone Search MetadatumVOResource Metadatum
Schema NameXPath Name
ResponsiblePartyVOResourcecuration/publisher,
+ curation/contact/email
ServiceNameVOResourcetitle
DescriptionVOResourcecontent/description
InstrumentVOResourceinstrument
WavebandVODataServicecoverage/waveband
EpochVODataServicecoverage/stc:STCResourceProfile/stc:AstroCoordArea1
CoverageVODataServicecoverage/stc:STCResourceProfile/stc:AstroCoordArea1
MaxSRConeSearchcapability/maxSR
MaxRecordsConeSearchcapability/maxRecords
VerbosityConeSearchcapability/verbosity
BaseURLVOResourcecapability/interface[@role='std']/accessURL
+1In 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. + +

+Subsequent versions of this document should include the ConeSearch +extension schema as a formal part of the specification. +

+ + + +

Appendix C: Change History

+ + +

Appendix C.1: Changes From the Original NVO Specification Document

+ + + + +

Appendix C.2: Changes from Previous IVOA Versions

+ +

Changes from v1.01

+ + + +

Changes from v1.02:

+ + +

Changes from v1.00

+ + + +

References

+ +
+
[RFC 2119]
+
Bradner, S. 1997. + Key words for use in RFCs to Indicate Requirement + Levels, IETF RFC 2119, + http://www.ietf.org/rfc/rfc2119.txt
+ + + +
[MIME]
+
Freed, N. and Borenstein, N. 1996, + Multipurpose + Internet Mail Extensions (MIME) Part Two: Media + Types, IETF RFC 2046, + http://www.ietf.org/rfc/rfc2046.txt
+ +
[VOTable v1.0]
+
Ochsenbein, François et al. 2003, + + VOTable: A Proposed XML Format for Astronomical Tables, Version + 1.0, + http://www.ivoa.net/Documents/PR/VOTable/VOTable-20031017.html. +
+ +
[VOTable v1.1]
+
Ochsenbein, François et al. 2004, + + VOTable: A Proposed XML Format for Astronomical Tables, Version + 1.1, + http://www.ivoa.net/Documents/REC/VOTable/VOTable-20040811.html. +
+ +
[RM]
+
Hanisch, Robert (ed.) 2004. + + Resource Metadata for the Virtual Observatory, Version 1.01, + IVOA Recommendation, + http://www.ivoa.net/Documents/REC/ResMetadata/RM-20040426.html +
+ +
[SIA]
+
Tody, Doug and Plante, Ray 2004, + + Simple Image Access Specification Version 1.0, + http://www.ivoa.net/Documents/WD/SIA/sia-20040524.html. + +
+ +
+ + +Last modified: Fri Sep 14 17:03:48 2007 + + + diff --git a/SCS.tex b/SCS.tex new file mode 100755 index 0000000..360482f --- /dev/null +++ b/SCS.tex @@ -0,0 +1,441 @@ +\documentclass[11pt,a4paper]{ivoa} +\input tthdefs + +\usepackage{todonotes} + +\usepackage{listings} +\lstloadlanguages{XML,sh} +\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/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} + +\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 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), 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. + + +\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. + +\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. + +\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{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] + + + + 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 + + + + + + \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[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: +\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{appendix:a} +This is a sample of a legal response to a Cone Search query. +\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.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} + +\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} + +\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} + \item converted to Recommendation +\end{itemize} + +\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} + \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} +\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,scs} + + +\end{document} diff --git a/archdiag.png b/archdiag.png new file mode 100755 index 0000000000000000000000000000000000000000..fc067816a322f5c8561a4af2a31779721d7e726f GIT binary patch literal 60491 zcmX`S2Q-}D^FOW=y^Fqj@2nQRMvWepNLc+L5haN(gdkWo5xo;7ELlNF(H7C`S|WN~ zMDKp<{rP|Y&pCVc?6ddIojWsk?!7awiF;t8M?uO$ii3kgabI8C90!L0g@c1%LV}Nd zQ;nh3#(w>HU}UL-gNs9t02bYzVMUtL}mBpkG2iFznT1-Oh3I|6< z<|B^U_I(2bO$+{T0|i;LB^>DfBl~zZpRZX%irQ*gSUg>`Zr!|IU0GOOKD_+b`S<4L`g-&F=CV>r z{~LBLxK4(8+Bk0s+4ZqM?mW}C^~1p-qr3g!;(W}xi+xG#f8SV#_zx*P2`!%y^1KBH z2ZVE9Tf_3@%yurBU$*{aU7X%e4hs(c u;feBoF1|otC@I`oEh|I{%jSXjLX=`(U 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