Registry Search Recommendations

This section is intended for application developers that wish to incorporate registry searches into their applications. In particular, many applications will have the ability to query data collections via standard DAL protocols (e.g. SIA). The application, then, may wish to discover currently available services that support the protocols.

The queries presented here assume the standard Registry Interfaces which supports searches via a SOAP Web Service interface. Precise queries can be issued via a constraint-based search (i.e. ADIL-based) or an XQuery search. Note, however, the optional XQuery interface is not supported by all searchable registries; thus, using the constraint-based search interface will provided broadest interoperability. Consequently, the examples of complex searches below are in terms in of a constraint-based search; these can be easily translated to an XQuery if desired.

There is Java software package, IVOARegistry, that developers may find useful. It provides Java library for querying registries via the standard search interface, so it may be used directly within Java applicatoins. It also provides a command-line tool (regsearch) for sending queries, which script-based tools may use to extract information from a registry. In particular, constraint-based queries can be expressed using ADQL-S. Even if an application does not use this package to search registries, developers may still find it useful to test out queries being programmed into the application.

To test out the queries listed below using regsearch, insert the ADQL-S query constraints in a command line of the following form:

regsearch -e service-endpoint SearchByADQL "adql-s"

as in,

regsearch -e http://nvo.stsci.edu/vor10/ristandardservice.asmx \
          SearchByADQL "capability/@standardID='ivo://www.ivoa.net/std/SIA'"

Contents

Locating and Using Standard DAL Services

The queries presented here describe how to locate services that support standard DAL protocols. Most applications will want to issue a precise query in which the response contains only services supporting the desired protocol; for this, it is necessary to issue a constraint-based or XQuery search. While the constraint-based query provides more interoperability, the XQuery allows one to simultaneously located desired resources and extract desired information.

Standard Protocol Identifiers

The key way to identify support for a standard protocol is via the so-called, _standardID_--an IVOA identifier that is referenced in a service description that refers to the standard protocol. Each DAL protocol has a unique ID; the currently defined ones are:

Simple Cone Search (SCS)
ivo://www.ivoa.net/std/ConeSearch
Simple Image Access (SIA)
ivo://www.ivoa.net/std/SIA
Simple Spectral Access (SSA)
ivo://www.ivoa.net/std/SSA
Simple Line Access (SLA)
ivo://www.ivoa.net/std/SLA
Table Access (TAP)
ivo://www.ivoa.net/std/TAP

Precise Search Queries

Most of the queries below are finding SIA services. They can be easily adapted to other services by substituting in the proper standard ID. The query is expressed as the value for the where input parameter to the constraint based search operation to the registry search interface.

Finding all SIA services

ADQL-S Where Clause:

  capability/@standardID='ivo://www.ivoa.net/std/SIA'

Sample SOAP request:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <rs:Search xmlns="http://www.ivoa.net/wsdl/RegistrySearch/v1.0" 
             xmlns:rs="http://www.ivoa.net/wsdl/RegistrySearch/v1.0">
   <rs:Where>
    <ad:Condition Comparison="=" xsi:type="ad:comparisonPredType" 
                  xmlns:ad="http://www.ivoa.net/xml/ADQL/v1.0">
     <ad:Arg Table="" name="@standardID" xpathName="capability/@standardID" 
             xsi:type="ad:columnReferenceType"/>
     <ad:Arg xsi:type="ad:atomType">
      <ad:Literal Value="ivo://www.ivoa.net/std/SIA" xsi:type="ad:stringType"/>
     </ad:Arg>
    </ad:Condition>
   </rs:Where>
   <max xmlns="">500</max>
   <identifiersOnly xmlns="">true</identifiersOnly>
  </rs:Search>
 </soapenv:Body>
</soapenv:Envelope>

Restricting to only active resources

Extracting the DAL Access URL

Keyword-based Searches


Topic revision: r4 - 2010-05-22 - RayPlante
 
This site is powered by the TWiki collaboration platformCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback