Difference between revisions of "Federated Search Convention"
Line 8: | Line 8: | ||
The convention is also based on the [http://www.atomenabled.org/developers/syndication/atom-format-spec.php Atom standard] for responses. | The convention is also based on the [http://www.atomenabled.org/developers/syndication/atom-format-spec.php Atom standard] for responses. | ||
− | = | + | = 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. | |
− | + | == Namespace == | |
− | + | The namespace for Federated Search extensions is: | |
− | === Time in Atom Response | + | '''http://esip.org/ns/fedsearch/1.0'''. |
+ | Note that this URI is currently used for namespace definition only and does not return a valid document. | ||
+ | == 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 | ||
as the following: | as the following: | ||
Line 21: | Line 23: | ||
**<time:stop>YYYY-MM-DDTHH:SS:MMZ</time:stop> | **<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. | *By convention, time is in Universal (Zulu) time, using the format YYYY-MM-DDTHH:MM:SS[.SSS]Z. Fractional seconds are optional. | ||
− | + | == Dataset-Level Queries and Responses == | |
− | == | + | Although OpenSearch allows a number of different formats (HTML, RSS, Atom), the ESIP Federated Search convention is to return an Atom response. |
=== Dataset-level Links === | === Dataset-level Links === | ||
− | The results of a dataset-level search should include links to OpenSearch Description Documents. | + | The results of a dataset-level search should include links to OpenSearch Description Documents. |
=== Granule-level Links === | === 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: | 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: |
Revision as of 08:38, November 1, 2009
Motivation
Overall Architecture
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.
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.
Namespace
The namespace for Federated Search extensions is: http://esip.org/ns/fedsearch/1.0. Note that this URI is currently used for namespace definition only and does not return a valid document.
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.
Dataset-Level Queries and Responses
Although OpenSearch allows a number of different formats (HTML, RSS, Atom), the ESIP Federated Search convention is to return an Atom response.
Dataset-level Links
The results of a dataset-level search should include links to OpenSearch Description Documents.
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:
- http://esipfed.org/ns/fedsearch/data
- http://esipfed.org/ns/fedsearch/browse
- http://esipfed.org/ns/fedsearch/metadata
- http://esipfed.org/ns/fedsearch/opendap
etc. This will eventually be linked to servicecasting namespace, so that services advertised through that mechanism can be referenced as types as well.