Federated Search Convention

From Federation of Earth Science Information Partners
(Difference between revisions)
Jump to: navigation, search
(Dataset-Level Queries and Responses)
(Reverted edits by 89.99.5.17 (talk) to last revision by 108.59.8.70)
 
(9 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
= Motivation =
 
= Motivation =
 +
The ESIP Federated Search convention is designed to provide a lightweight standard protocol for supporting dataset and file-level searches throughout the ESIP federation.
 +
= Version =
 +
This is Version 1.0 of the ESIP Federated Search.
  
 
= Overall Architecture=
 
= Overall Architecture=
Line 13: Line 16:
 
== Namespace ==
 
== Namespace ==
 
The namespace for Federated Search extensions is:
 
The namespace for Federated Search extensions is:
'''http://esip.org/ns/fedsearch/1.0'''.
+
'''http://esipfed.org/ns/fedsearch/1.0/'''.
Note that this URI is currently used for namespace definition only and does not return a valid document.  
+
Note that this URI is currently used for namespace definition only and does not return a valid document.
 +
 
 
== Time in Atom Response ==
 
== Time in Atom Response ==
 
Time is specified only for the query, not the response, in the [http://www.opensearch.org/Specifications/OpenSearch/Extensions/Time/1.0/Draft_1 draft Time extension to OpenSearch].  The ESIP Federated Search convention is to represent Time of datasets or granules
 
Time is specified only for the query, not the response, in the [http://www.opensearch.org/Specifications/OpenSearch/Extensions/Time/1.0/Draft_1 draft Time extension to OpenSearch].  The ESIP Federated Search convention is to represent Time of datasets or granules
Line 26: Line 30:
 
The Dataset-Level query may contain both Geo and Time extensions to OpenSearch, if the server supports them.  The response to a Dataset-level query is an Atom document. This may include a number of links, but two links are required:
 
The Dataset-Level query may contain both Geo and Time extensions to OpenSearch, if the server supports them.  The response to a Dataset-level query is an Atom document. This may include a number of links, but two links are required:
 
# the default link, which points to '''TBS'''
 
# the default link, which points to '''TBS'''
# the link to the OpenSearch Description Document for a granule-level query against the dataset.  This link must be identified by the ''rel'' and ''type'' attributes as:
+
# the link to the OpenSearch Description Document for a granule-level query against the dataset.  Following the [http://www.opensearch.org/Specifications/OpenSearch/1.1#Autodiscovery_in_RSS.2FAtom OpenSearch convention for AutoDiscovery in RSS/Atom], the link must be identified by the ''rel'' and ''type'' attributes as:
rel="search" type="application/opensearch+xml"
+
rel="search" type="application/opensearchdescription+xml"
  
 
== Granule-level Queries and Responses ==
 
== Granule-level Queries and Responses ==
Line 39: Line 43:
 
*On-the-fly format conversion
 
*On-the-fly format conversion
 
However, it is important for a client to be able to distinguish the different kinds of links, which can be done using the "rel" attribute.  As the standard set of "rel" attributes (self, related, alternate, enclosure, via) is insufficiently rich, we extend the standard using URIs within the ESIP namespace.  The convention for this namespace is still under discussion, with the current proposal being:
 
However, it is important for a client to be able to distinguish the different kinds of links, which can be done using the "rel" attribute.  As the standard set of "rel" attributes (self, related, alternate, enclosure, via) is insufficiently rich, we extend the standard using URIs within the ESIP namespace.  The convention for this namespace is still under discussion, with the current proposal being:
*http://esipfed.org/ns/fedsearch/data
+
*http://esipfed.org/ns/fedsearch/1.0/data#
*http://esipfed.org/ns/fedsearch/browse
+
*http://esipfed.org/ns/fedsearch/1.0/browse#
*http://esipfed.org/ns/fedsearch/metadata
+
*http://esipfed.org/ns/fedsearch/1.0/metadata#
*http://esipfed.org/ns/fedsearch/opendap
+
*http://esipfed.org/ns/fedsearch/1.0/opendap#
 
etc.
 
etc.
 
This will eventually be linked to servicecasting namespace, so that services advertised through that mechanism can be referenced as types as well.
 
This will eventually be linked to servicecasting namespace, so that services advertised through that mechanism can be referenced as types as well.

Latest revision as of 13:35, 28 September 2012

Contents

[edit] Motivation

The ESIP Federated Search convention is designed to provide a lightweight standard protocol for supporting dataset and file-level searches throughout the ESIP federation.

[edit] Version

This is Version 1.0 of the ESIP Federated Search.

[edit] Overall Architecture

[edit] Reuse of Existing Standards

The Federated Search convention makes as much use as possible of the OpenSearch conventions documented at http://www.opensearch.org. This includes draft extensions for geospatial queries and extensions and for temporal queries.

The convention is also based on the Atom standard for responses.

[edit] Amendment of Standards

The above reused standards are amended in two ways, by restriction convention and extension. Restriction conventions are used to constrain syntax or semantics beyond that allowed by the standard. An example of this is the restriction that Atom responses are used for Federated Search (though the OpenSearch standard admits multiple different response formats). This is (mostly) intelligible to browser-based newsreaders (the lowest common denominator) while providing a relatively rich structure for parsing as well as accommodating domain-specific extensions. Extensions are used to add elements to the standard that do not exist, following the standard's methods for extensions to the maximum extent possible.

[edit] Namespace

The namespace for Federated Search extensions is: http://esipfed.org/ns/fedsearch/1.0/. Note that this URI is currently used for namespace definition only and does not return a valid document.

[edit] Time in Atom Response

Time is specified only for the query, not the response, in the draft Time extension to OpenSearch. The ESIP Federated Search convention is to represent Time of datasets or granules as the following:

  • The namespace is defined as xmlns:time="http://a9.com/-/opensearch/extensions/time/1.0/"
  • Time is represented as XML elements "start" and "stop" (following the draft for the Query), e.g.:
    • <time:start>YYYY-MM-DDTHH:SS:MMZ</time:start>
    • <time:stop>YYYY-MM-DDTHH:SS:MMZ</time:stop>
  • By convention, time is in Universal (Zulu) time, using the format YYYY-MM-DDTHH:MM:SS[.SSS]Z. Fractional seconds are optional.

[edit] Dataset-Level Queries and Responses

The Dataset-Level query may contain both Geo and Time extensions to OpenSearch, if the server supports them. The response to a Dataset-level query is an Atom document. This may include a number of links, but two links are required:

  1. the default link, which points to TBS
  2. the link to the OpenSearch Description Document for a granule-level query against the dataset. Following the OpenSearch convention for AutoDiscovery in RSS/Atom, the link must be identified by the rel and type attributes as:
rel="search" type="application/opensearchdescription+xml"

[edit] Granule-level Queries and Responses

[edit] Granule-level Links

Atom allows inclusion of multiple links for a given entry, a key advantage for the rich variety of manifestations for a given data granule, such as:

  • data
  • browse image
  • metadata file
  • OPeNDAP URL
  • On-the-fly format conversion

However, it is important for a client to be able to distinguish the different kinds of links, which can be done using the "rel" attribute. As the standard set of "rel" attributes (self, related, alternate, enclosure, via) is insufficiently rich, we extend the standard using URIs within the ESIP namespace. The convention for this namespace is still under discussion, with the current proposal being:

etc. This will eventually be linked to servicecasting namespace, so that services advertised through that mechanism can be referenced as types as well.

[edit] Implementation Guidelines

[edit] Appendices

[edit] Sample Server Implementation

[edit] Sample Client Implementation

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox