i. Abstract
OGC® Catalogue Services support the ability to publish and search collections of descriptive information (metadata records) for geospatial data, services, and related information. Metadata in catalogues represent resource characteristics that can be queried and presented for evaluation and further processing by both humans and software. Catalogue services are required to support the discovery and binding to registered information resources within an information community.
This part of the Catalogue Services standard describes the common architecture for OGC Catalogue Services. This document abstractly specifies the interfaces between clients and catalogue services, through the presentation of abstract models. This common architecture is Distributed Computing Platform neutral and uses UML notation. Separate (Part) documents specify the protocol bindings for these Catalogue services, which build upon this document, for the HTTP (or CSW) and OpenSearch protocol bindings.
An Abstract Conformance Test Suite is not included in this document. Such Suites shall be developed by protocol bindings and Application Profiles (see 8.5, ISO/IEC TR 10000-2:1998) that realize the conformance classes listed herein. An application profile consists of a set of metadata elements, policies, and guidelines defined for a particular application[1].
OGC document number 14-014 – HTTP Protocol Binding – Abstract Test Suite is available to address conformance with the provisions of OGC document number 12-176r2 – HTTP Protocol Binding. All annexes to this document are informative.
ii. Keywords
The following are keywords to be used by search engines and document catalogues.
OGC Catalogue Services, metadata, geospatial data, geospatial services, search, discovery, abstract model, general model, HTTP, CSW, OpenSearch, Abstract Conformance Test Suite, ogcdoc, OGC document, asynchronous, catalogue, CQL, client, csw:Record, distributed, Dublin Core, federated, filter, GetCapabilities, GetDomain, GetRecords, GetRecordById, Harvest, http, https, KVP, metadata, record, request, resource, response, server, schema, spatial, temporal, Transaction, UnHarvest, XML, XML-Schema.
iii. Preface
This document is one part of the OGC® Catalogue Services version 3.0 Implementation Standard. Unlike previous versions, Catalogue 3.0 is now divided in multiple parts, with this part specifying the abstract model and another to describe the HTTP protocol binding known as Catalogue Service for the Web (CSW).
This version of the Catalogue Standard has been significantly improved, largely based on change requests submitted by both Open Geospatial Consortium (OGC) members and the public. The changes made in this version relative to version 2.0.2 (OGC document 07-006r1) are summarized in Annex B.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.
iii. Submitting organizations
The following organizations submitted this Document to the Open Geospatial Consortium (OGC):
- con terra GmbH
- National Research Council of Italy (CNR)
- Cubewerx Inc.
- Intergraph Corporation
- Joint Research Centre (JRC), European Commission
- U.S. Geological Survey
Earlier versions of this Standard were submitted to the OGC by the following organizations:
- BAE SYSTEMS Mission Solutions (formerly Marconi Integrated Systems, Inc.)
- Blue Angel Technologies, Inc.
- Environmental Systems Research Institute (ESRI)
- Geomatics Canada (Canada Centre for Remote Sensing (CCRS)
- Intergraph Corporation
- MITRE
- Oracle Corporation
- U.S. Federal Geographic Data Committee (FGDC)
- U.S. National Aeronautics and Space Administration (NASA)
- U.S. National Imagery and Mapping Agency (NIMA)
iv. Submitters
All questions regarding this submission should be directed to the editor or the submitters:
Name | Representing | OGC member |
---|---|---|
Doug Nebert | U.S. Geological Survey | yes |
Uwe Voges | con terra GmbH | yes |
Lorenzo Bigagli | National Research Council of Italy (CNR) | yes |
Panagiotis (Peter) Vretanos | CubeWerx, Inc. | yes |
Bruce Westcott | Intergraph Corporation | yes |
1. Scope
This document abstractly specifies the interfaces and a framework for defining bindings and application profiles required to publish and access digital catalogues of metadata for geospatial data, services, and related resource information. These Catalogue Services support the use of one of several identified query languages to find and return results using well-known content models (metadata schemas) and encodings.
This Standard is applicable to the implementation of interfaces on catalogues of a variety of information resources. The target audience for this standard is the community of software developers who are implementers of OGC compliant Catalogue servers and clients.
2. Conformance
Conformance to the mandatory catalogue service abstract interfaces is described in section 8. It is the requirement of protocol-specific bindings and application profiles to provide concrete tests and validation in conformance with these abstract conformance classes. Test data and queries may be included in Application Profiles associated with this abstract model and with specific protocol bindings.
3. Normative References
The following normative documents contain provisions that, through referenced in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies.
- IETF RFC 2045 (November 1996), Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, Freed, N. and Borenstein N., eds., http://www.ietf.org/rfc/rfc2045.txt
- IETF RFC 2141 (May 1997), URN Syntax, R. Moats, http://www.ietf.org/rfc/rfc2141.txt
- IETF RFC 2396 (August 1998), Uniform Resource Identifiers (URI): Generic Syntax, Berners-Lee, T., Fielding, N., and Masinter, L., eds., http://www.ietf.org/rfc/rfc2396.txt
- IANA, Internet Assigned Numbers Authority, MIME Media Types, available at http://www.iana.org/assignments/media-types/
- ISO/IEC 8825:1990, Information technology – Open Systems Interconnection – Specification of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1)
- ISO/IEC TR 10000-1:1998. Information Technology – Framework and taxonomy of International Standardised Profiles – Part 1: General principles and documentation framework. Technical Report, JTC 1. Fourth edition, Available [online]: http://standards.iso.org/ittf/PubliclyAvailableStandards/c030726_ISO_IEC_TR_10000-1_1998(E).zip.
- ISO/IEC 10746-2:1996. Information Technology – Open Distributed Processing – Reference Model: Foundations. Common text with ITU-T Recommendation X.902, Available [online]: http://standards.iso.org/ittf/PubliclyAvailableStandards/s018836_ISO_IEC_10746-2_1996(E).zip.
- ISO 8601:2000(E), Data elements and interchange formats - Information interchange - Representation of dates and times
- ISO 19101:2002, Geographic information – Reference model
- ISO 19103 (DTS), Geographic information – Conceptual schema language, (Draft Technical Specification)
- ISO 19106:2003, Geographic Information – Profiles
- ISO 19108:2002, Geographic information – Temporal schema
- ISO 19109:2002 (DIS), Geographic information – Rules for application schema
- ISO 19110:2001 (DIS), Geographic information – Methodology for feature cataloguing
- ISO 19113:2002, Geographic information – Quality principles
- ISO 19114:2001, (DIS) Geographic information – Quality evaluation procedures
- ISO 19118:2002, (DIS) Geographic information – Encoding
- ISO/IEC 14977:1996, Information technology – Syntactic metalanguage – BNF
- ISO 19115:2003, Geographic Information – Metadata
- ISO 19119:2005, Geographic Information – Services
- ISO/TS 19139:2007, Geographic Information – Metadata -Implementation Specification
- OASIS/ebXML Registry Services Specificationv2.5
- OGC 99-113, OGC Abstract Specification Topic 13: Catalogue Services
- OGC 02-112, OGC Abstract Specification Topic 12: OpenGIS Service Architecture
- OGC 09-026r1, OGC Filter Encoding 2.0 Encoding Standard,
- OGC 06-121r9,OGC Web Service Common Implementation Specification, Version 2.0.0
- OMG UML, Unified Modeling Language, Version 1.3, The Object Management Group (OMG): http://www.omg.org/cgi-bin/doc?formal/00-03-01
- OGC 12-176r2, OGC® Catalogue Services specification – HTTP protocol binding (v3.0.0)
4. Terms and Definitions
This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard.
For the purposes of this document, the following additional terms and definitions apply.
- 4.1 client
-
software component that can invoke an operation from a server
- 4.2 data clearinghouse
-
collection of institutions providing digital data, which can be searched through a single interface using a common metadata standard [ISO 19115]
- 4.3 data level
-
stratum within a set of layered levels in which data is recorded that conforms to definitions of types found at the application model level [ISO 19101]
- 4.4 dataset series
-
collection of datasets sharing the same product specification [ISO 19113, ISO 19114, ISO 19115]
- 4.5 feature catalogue
-
catalogue containing definitions and descriptions of the feature types, feature attributes, and feature relationships occurring in one or more sets of geographic data, together with any feature operations that may be applied [ISO 19101, ISO 19110]
- 4.6 geographic dataset
-
dataset with a spatial aspect [ISO 19115]
- 4.7 geographic information
-
information concerning phenomena implicitly or explicitly associated with a location relative to the Earth [ISO 19128 draft]
- 4.8 identifier
-
a character string that may be composed of numbers and characters that is exchanged between the client and the server with respect to a specific identity of a resource
- 4.9 interface
-
named set of operations that characterize the behaviour of an entity [ISO 19119]
- 4.10 metadata dataset
-
metadata describing a specific dataset [ISO 19101]
- 4.11 metadata entity
-
group of metadata elements and other metadata entities describing the same aspect of data
NOTE 1 A metadata entity may contain one or more metadata entities.
NOTE 2 A metadata entity is equivalent to a class in UML terminology [ISO 19115].
- 4.12 metadata schema
-
conceptual schema describing metadata
NOTE ISO 19115 describes a standard for a metadata schema. [ISO 19101]
- 4.13 metadata section
-
subset of metadata that defines a collection of related metadata entities and elements [ISO 19115]
- 4.14 operation
-
specification of a transformation or query that an object may be called to execute [ISO 19119]
- 4.15 parameter
-
variable whose name and value are included in an operation request or response
- 4.16 profile
-
set of one or more base standards and - where applicable - the identification of chosen clauses, classes, subsets, options and parameters of those base standards that are necessary for accomplishing a particular function [ISO 19101, ISO 19106]
- 4.17 qualified name
-
name that is prefixed with its naming context
EXAMPLE The qualified name for the road no attribute in class Road defined in the Roadmap schema is RoadMap.Road.road_no. [ISO 19118]
- 4.18 request
-
invocation of an operation by a client
- 4.19 response
-
result of an operation, returned from a server to a client
- 4.20 resource
-
an object or artefact that is described by a record in the information model of a catalogue
- 4.21 schema
-
formal description of a model [ISO 19101, ISO 19103, ISO 19109, ISO 19118]
- 4.22 server
service instance
-
a particular instance of a service[ISO 19119 edited]
- 4.23 service
-
distinct part of the functionality that is provided by an entity through interfaces [ISO 19119]
capability which a service provider entity makes available to a service user entity at the interface between those entities [ISO 19104 terms repository]
- 4.24 service interface
-
shared boundary between an automated system or human being and another automated system or human being [ISO 19101]
- 4.25 service metadata
-
metadata describing the operations and geographic informationavailable at a server[ISO 19128 draft]
- 4.26 state
-
condition that persists for aperiod
NOTE The value of a particular feature attribute describes a condition of the feature [ISO 19108].
- 4.27 transfer protocol
-
common set of rules for defining interactions between distributed systems [ISO 19118]
- 4.28 version
-
version of an Implementation Specification (document) and XML Schemas to which the requested operation conforms
NOTE An OWS Implementation Specification version may specify XML Schemas against which an XML encoded operation request or response shall conform and should be validated.
5. Conventions
5.1 Symbols (and abbreviated terms)
All symbols used in this document are either:
- Common mathematical symbols; or
- UML 2 (Unified Modeling Language) as defined by OMG and accepted as a publicly available standard (PAS) by ISO in its earlier 1.3 version.
In this document the following abbreviations and acronyms are used or introduced:
- BNF
- Baukus Naur Form
- CSW
- Catalogue Services for the Web
- HTTP
- Hypertext Transfer Protocol
- ISO
- International Organization for Standardization
- MIME
- Multipurpose Internet Mail Extensions
- OGC
- Open Geospatial Consortium, also referred to as OGC®
- UML
- Unified Modeling Language
- XML
- Extensible Markup Language
5.2 UML notation
All UML diagrams in this document follow the guidance as documented in OGC OWS Common 2.0 section 5.2.
5.3 XML Schema
The following notations are used in XML Schema fragment presented in this document:
- Brackets ([]) are used to denote constructs that can be optionally specified. In the following example:
<xsd:element name=“MyElement” minOccurs=“0” [maxOccurs=“1”]>
the brackets around maxOccurs=“1” mean that this construct is optional and can be omitted
5.4 URN notation
All requirements listed in this document are relative to the root URL: http://www.opengis.net/doc/IS/cat/3.0 . Wherever there is a stated requirement and the work “req” is shown, “req” can be replaced with http://www.opengis.net/doc/IS/cat/3.0 to define the complete requirement URL.
6. Catalogue abstract information model
6.1 Introduction
The abstract information model specifies a BNF grammar for a minimal query language, a set of core queryable[2] attributes (names, definitions, conceptual datatypes), and a common record format that defines the minimal set of elements that should be returned in the brief and summary element sets.
The geospatial community is very broad and works in many different operational environments, as shown in the information discovery continuum in Figure 1 - Information discovery continuum. On one extreme there are tightly coupled systems dedicated to well-defined functions in a tightly controlled environment. At the other extreme are Web based services that know nothing about the client. This document provides a specification that is applicable to the full range of catalogue operating environments.
6.2 Query language support
6.2.1 Introduction
The query capabilities of the OGC General Catalogue Model provide a minimum set of data types and query operations that can be assumed of OGC Compliant Catalogue implementations. In addition, these Query Capabilities provide a high degree of flexibility enabling alternate styles of query, result presentation, and the potential support of any geo-enabled query language. This flexibility is provided by the query operation that contains the parameters needed to select the query result presentation style and to provide a query expression that includes the actual query with an identification of the query language used. The query operation, query expression, and other related operations are further discussed in Clause 7.2.4.
Requirement 1 |
/req/model/query-language |
A Catalogue service query interfaces shall support and reference a published syntax for processing full text and fielded query. |
The interoperability goal is supported by the specification of a minimal abstract query (predicate) language, which shall be supported by all compliant OGC Catalogue Services. This query language supports Boolean queries, text matching operations, temporal data types, and geospatial operators. The minimal query language syntax is based on the SQL WHERE clause in the SQL SELECT statement. The OGC Filter Specification is an implementation of a query language that is transformable to the OGC Catalogue Common Query Language (OGC CommonQL).
This minimal query language assists the consumer in the discovery of datasets of interest at all sites supporting the OGC Catalogue Services. The ability to specify alternative query languages allows for evolution and higher levels of interoperability among more tightly coupled communities of Catalogue Service Providers and Consumers.
Requirement 2 |
/req/common-query-language |
A Catalogue service query interfaces shall support a catalogue query syntax that is transformable to the BNF[3] expressed in subclause 6.2.2 |
6.2.2 OGC Catalogue Common Query Language (OGC CommonQL)
This sub-clause defines the OGC_Catalogue Common Query Language (OGC CommonQL) (BNF to be found in 9). OGC_CommonQL is the primary query language to be supported by multiple OGC Catalogue Service bindings in order to support search interoperability.
Assumptions made during the development of OGC CommonQL:
- The query will have syntax similar to the SQL “Where Clause.”
- The expressiveness of the query will not require extensions to various current query systems used in geospatial catalogue queries other than the implementation of some geo operators.
- The query language is extensible.
- OGC CommonQL supports both tight and loose queries. A tight query is defined for the case when a catalogue doesn’t support an attribute/column specified in the query, no entity/row can match the query and the null set is returned. In a loose query, if an attribute is undefined, it is assumed to match.
6.2.3 Extending the OGC CommonQL
The OGC CommonQL BNF can be extended by adding new predicates, operations, and datatypes. The following discussion is an example of extending the BNF to include a CLASSIFIED-AS operator using the patterns identified in OASIS/ebXML Registry Services Specification v2.5. This extension could appear in a protocol binding or an Application Profile.
This standard makes no assumptions about how taxonomies are maintained in a catalogue, or how records are classified according to those taxonomies. Instead, this specification defines a routine, CLASSIFIED-AS, in order to support classification queries based on taxonomies.
The CLASSIFIED-AS routine takes three arguments. The first argument is the abstract entry point whose classification is being checked. The second argument is the key name string that represents a path expression in the taxonomy. The last argument is the key value string that represents the corresponding path expression containing key values that are the targets of the query. In both cases, the first element of the path expression for the key name argument and key value arguments shall be the name of the taxonomy being used. The normal wildcard matching characters, ‘_’ for a single character and ‘%’ for zero or more characters, may be used in the key value expression which is the last argument of the CLASSIFIED_AS routine.
The following set of productions defines the CLASSIFIED-AS routine.
/* The following example: */
/* */
/* RECORD CLASSIFIED AS CLASSIFICATIONSCHEME=’GeoClass’ */
/* =’/GeoClass/North America/%/Ontario’ */
/* */
/* Will find all records in all the Ontario’s in North America. */
The following are the required BNF specializations:
<classop argument list> ::= <left paren> <entry_point> <comma>
<Classification Scheme> <comma><Classification Node> <right paren>
<entry_point> ::= <identifier>
<Classification Scheme> ::= <identifier>
<classop name> ::= CLASSIFIED_AS
<Classification Node> ::= <identifier> | <solidus><path element>[<solidus><path element>]…
<path element> ::= <character pattern>
<routine invocation> ::= | <geoop name><georoutine argument list>
| <relgeoop name><relgeoop argument list>
| <routine name><argument list>
| <classop><classop argument list>
Consider the following example:
CLASSIFIED_AS(’RECORD’, ‘GeoClass’, ‘GeoClass/NorthAmerica/%/Ontario’)
In this example, we are searching records classified according to the GeoClass taxonomy. Specifically, we are looking for all catalogue records classified as Continent=NorthAmerica, Country=any country and State=Ontario. Notice how the wildcard character ‘%’ is used to search for any Country node.
Here is the same example encoded using XML:
<ogc:Filter xmlns:ogc=“http://http://www.opengis.net/ogc”>
<ogc:ClassifiedAs>
<ogc:TypeName>csw:Record</ogc:TypeName>
<ogc:ClassificationScheme>GetClass</ogc:ClassificationScheme>
<ogc:ClassificationNode>/GeoClass/NorthAmerica/%/Ontario
</ogc:ClassificationNode>
</ogc:ClassifiedAs>
</ogc:Filter>
In order for catalogue clients to be able to determine which taxonomies are available, a catalogue implementation should advertise the list of available taxonomies in its capabilities document. If a query is executed against a non-existent taxonomy, then an exception should be raised.
6.2.4 Query language realization
Many OGC service operations have the requirement to pass and process a query as a structure to perform a request. There are several query languages and messaging mechanisms identified within OGC standards. Application Profiles should be explicit about the selected query languages and any features peculiar to a scope of application. The following items should be addressed in the preparation of an Application Profile with respect to query language support.
Support for “abstract” query against well-known queryable entry points (e.g. OGC Core). Some standards promote or require the exposure of well-known field-like objects as common search targets (queryables), allowing interrogation of a service without prior negotiation on information content. The mandatory queryable attributes which shall be recognized by all OGC Catalogue Services are discussed in Subclause 6.3.2.
Selection of a query language. Some standards describe one or more query languages that can be supported. Identify the name and version of required query language(s) anticipated by this Application Profile for use.
Supported data types (e.g. character, integer, coordinate, date, geometry) and operator types (e.g. inequality, proximity, partial string, spatial, temporal). Query languages may be restricted in their implementation or extended with functions not described in the base standard. This narrative should provide lists or reference documents with the enumerated data types and operator types required by this Application Profile. In addition, any description of special techniques (e.g. supporting joins or associations) that are expected by an Application Profile should be described.
6.3 Core catalogue schema
6.3.1 Introduction
Metadata structures, relationships, and definitions – known as conceptual schemas – exist for multiple information communities. For the purposes of interchange of information within an information community, a metadata schema may be defined that provides a common vocabulary which supports search, retrieval, display, and association between the description and the object being described. Although this standard does not require the use of a specific schema, the adoption of a given schema within an information-sharing community ensures the ability to communicate and discover information.
The geomatics standardization activity in ISO Technical Committee 211 include formal schemas for geospatial metadata that are intended to apply to all types of information. These metadata standards, ISO 19115:2003[4] and ISO 19115-1:2014[5] include proposals for core (discovery) metadata elements in common use in the geospatial community. ISO/TS 19139:2007 defines a formal encoding and structure of ISO 19115:2003 metadata for exchange. Where a catalogue service advertises such application schemas, catalogues that handle geographic dataset descriptions should conform to published metadata standards and encodings, e.g. ISO 19115:2003, and support XML encoding per ISO 19139 or profiles thereof. Service metadata elements should be consistent with ISO 19119[6] or 19115:2014[7].
6.3.2 Core queryable properties
The goal of defining core queryable properties is query interoperability among catalogues that implement the same protocol binding and query compatibility among catalogues that implement different protocol bindings, perhaps through the use of “bridges” or protocol adapters. Defining a set of core queryable properties also enables simple cross-profile discovery, where the same queries can be executed against any catalogue service without modification and without detailed knowledge of the catalogue’s information model. This requires a set of general metadata properties that can be used to characterize any resource.
Tables 1, 2 and 3 define a set of abstract queryables that binding protocols shall realize in their core queryable schemas. Binding protocols shall further specify a record identifier (ID) based on the native platform ID types. Binding protocols shall also specify how the values of core queryable properties shall be encoded in service requests. Binding protocols may choose to use a single comma-separated list for compound datatypes or may label each sub-element for clarity and order flexibility. Application profiles may further modify or redefine the realization of the core queryables and how their values are encoded.
Requirement 3 |
/req/common-queryables |
A Catalogue service
query interfaces shall support the set of common queryable elements described
in Tables 1-3. Services shall perform appropriate mapping of public query terms to
internal equivalents to enable general search of catalogues.
NOTE: Queryable items may differ from the response data elements |
Name |
Definition |
Data type |
---|---|---|
Subject a |
The topic of the content of the resource b |
CharacterString |
Title a |
A name given to the resource |
CharacterString |
Abstract a |
A summary of the content of the resource |
CharacterString |
AnyText |
A target for full-text search of character data types in a catalogue |
CharacterString |
Format a |
The physical or digital manifestation of the resource |
CharacterString |
Identifier a |
An unique reference to the record within the catalogue |
Identifier |
TemporalExtent |
Date or period for the content being described in metadata |
Date-8601 |
Modified c |
Date on which the record was created or updated within the catalogue |
Date-8601 |
Type a |
The nature or genre of the content of the resource. Type can include general categories, genres or aggregation levels of content. |
CodeList f |
BoundingBox d |
A bounding box for identifying a geographic area of interest |
BoundingBox, See Table 2 |
CRS e |
Geographic Coordinate Reference System (Authority and ID) for the BoundingBox |
Identifier |
Association |
Complete statement of a one-to-one relationship |
Association, See Table 3 |
a Names, but not necessarily the identical definition, are derived from the Dublin Core Metadata Element Set, version 1.1:ISO Standard 15836-2003 (February 2003) b Typically, a Subject will be expressed as keywords, key phrases or classification codes that describe a topic of the resource. Recommended best practice is to select a value from a controlled vocabulary or formal classification scheme. c DCMI metadata term <http://dublincore.org/documents/dcmi-terms/>. d Same semantics as EX_GeographicBoundingBoxclass in ISO 19115. e If not supplied, the BoundingBox CRS is a Geographic CRS with the Greenwich prime meridian. f A “CodeList” is a CharacterString taken from an authoritative list of CharacterStrings or Identifiers. The authority may optionally be identified in the value. |
Name |
Definition |
Data type |
---|---|---|
WestBoundLongitude |
Western-most coordinate of the limit of the resource's extent, expressed in longitude in decimal degrees (positive east) |
numeric |
SouthBoundLatitude |
Southern-most coordinate of the limit of the resource's extent, expressed in latitude in decimal degrees (positive north) |
numeric |
EastBoundLongitude |
Eastern-most coordinate of the limit of the resource's extent, expressed in longitude in decimal degrees (positive east) |
numeric |
NorthBoundLatitude |
Northern-most, coordinate of the limit of the resource's extent, expressed in latitude in decimal degrees (positive north) |
numeric |
Name |
Definition |
Data type |
---|---|---|
TargetResourceID |
Referenced resource |
Identifier |
SourceResourceID |
Referencing resource |
Identifier |
Relation |
The name of the description of the relationship |
CodeList or Identifier |
All realizations of the core queryable properties in a binding protocol shall include all the properties listed in Tables 1, 2, or 3 even if the underlying information model does not include information that can be mapped into all properties. Core properties that cannot have a value assigned to them because the information is not available in the information model of the catalogue shall be considered as having a value of NULL.
The properties “Title”, “Identifier” and the pseudo-property “AnyText” shall be supported as mandatory queryables in all implementations. Protocol bindings shall describe mechanisms to identify and elaborate on the queryables and operations supported by a given catalogue service.
6.3.3 Core returnable properties
A set of core properties returned from a metadata search is encouraged to permit the minimal implementation of a catalogue service independent of a companion application profile, and to permit the use of metadata returned from different systems and protocol bindings. The core metadata is returned as a request for the Common Element Set. The Common Element Set is a new group of public metadata elements, expressed using the nomenclature and syntax of Dublin Core Metadata, ISO 15836. Table 4 provides some interpretation of Dublin Core elements in the context of metadata for geospatial data and services.
Requirement 4 |
/req/common-returnables |
Catalogue service query interfaces shall support the set of common returnable elements in result set metadata as described in Table 4. Service shall perform appropriate mapping of internal fields, as necessary, to published returnables to enable interoperable search of catalogues. |
Dublin Core element name |
Term used in OGC queryables |
Definition |
Data type |
---|---|---|---|
title |
Title |
A name given to the resource. Also known as “Name”. |
CharacterString |
creator |
|
An entity primarily responsible for making the content of the resource. |
CharacterString |
subject |
Subject |
A topic of the content of the resource. This is a place where a Topic Category or other taxonomy could be applied. |
CharacterString |
description |
Abstract |
An account of the content of the resource. This is also known as the “Abstract” in other aspects of OGC, FGDC, and ISO metadata. |
CharacterString |
publisher |
|
An entity responsible for making the resource available. This would equate to the Distributor in ISO and FGDC metadata. |
CharacterString |
contributor |
|
An entity responsible for making contributions to the content of the resource. |
CharacterString |
date |
Modified |
The date of a creation or update event of the catalogue record. |
ISO-8601 date |
type |
Type |
The nature or genre of the content of the resource. |
CodeList |
format |
Format |
The physical or digital manifestation of the resource. |
CharacterString |
identifier |
Identifier |
A unique reference to the record within the catalogue. |
Identifier |
source |
Source |
A reference to the full metadata from which the present resource is derived. |
URI |
language |
|
A language of the intellectual content of the catalogue record. |
CharacterString |
relation |
Association |
The name of the relationship that exists between the resource described by this record and a related resource |
|
coverage |
BoundingBox |
The spatial and temporal extent or scope of the content of the resource. |
Extent |
rights |
|
Information about rights held in and over the resource. |
CharacterString |
The core elements are recommended for a response but do not need to be populated. The support for a common syntax for the returnable properties as a “common” Summary Element Set is defined in the protocol binding clauses.
<?xml version=“1.0” encoding=“UTF-8”?>
<GetRecords
service="CSW"
version="2.0.2"
maxRecords="5"
startPosition="1"
resultType="results"
outputFormat="application/xml"
outputSchema="http://www.opengis.net/cat/csw/2.0.2"
xmlns="http://www.opengis.net/cat/csw/2.0.2"
xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:ows="http://www.opengis.net/ows"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dct="http://purl.org/dc/terms/"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2
../../../csw/2.0.2/CSW-discovery.xsd">
<Query typeNames="csw:Record">
<ElementSetName typeNames="csw:Record">full</ElementSetName>
<Constraint version="1.1.0">
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsLike escapeChar="\" singleChar="?" wildCard="*">
<ogc:PropertyName>dc:title</ogc:PropertyName>
<ogc:Literal>*Elevation*</ogc:Literal>
</ogc:PropertyIsLike>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>dc:type</ogc:PropertyName>
<ogc:Literal>Service</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsGreaterThanOrEqualTo>
<ogc:PropertyName>dct:modified</ogc:PropertyName>
<ogc:Literal>2004-03-01</ogc:Literal>
</ogc:PropertyIsGreaterThanOrEqualTo>
<ogc:Intersects>
<ogc:PropertyName>ows:BoundingBox</ogc:PropertyName>
<gml:Envelope>
<gml:lowerCorner>14.05 46.46</gml:lowerCorner>
<gml:upperCorner>17.24 48.42</gml:upperCorner>
</gml:Envelope>
</ogc:Intersects>
</ogc:And>
</ogc:Filter>
</Constraint>
</Query>
</GetRecords>
The response to such a query, might be:
<?xml version=“1.0” encoding=“UTF-8”?>
<csw:Record
xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dct="http://purl.org/dc/terms/"
xmlns:ows="http://www.opengis.net/ows"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/cat/csw/3.0.0
../../../csw/3.0.0/record.xsd">
<dc:creator>U.S. Geological Survey</dc:creator>
<dc:contributor>State of Texas</dc:contributor>
<dc:publisher>U.S. Geological Survey</dc:publisher>
<dc:subject>Elevation, Hypsography, and Contours</dc:subject>
<dc:subject>elevation</dc:subject>
<dct:abstract>Elevation data collected for the National Elevation Dataset (NED) based on 30m horizontal and 15m vertical accuracy.</dct:abstract>
<dc:identifier>ac522ef2-89a6-11db-91b1-7eea55d89593</dc:identifier>
<dc:relation>OfferedBy</dc:relation>
<dc:source>http://myserver.com/csw? SERVICE=CSW&REQUEST=GetRecordById&RECORD=dd1b2ce7-0722-4642-8cd4-6f885f132777</dc:source>
<dc:rights>Copyright © 2011, State of Texas</dc:rights>
<dc:type>Service</dc:type>
<dc:title>Elevation Mapping Service for Texas</dc:title>
<dct:modified>2011-03-01</dct:modified>
<dc:language>en</dc:language>
<ows:BoundingBox>
<ows:LowerCorner>-108.44 28.229</ows:LowerCorner>
<ows:UpperCorner>-96.223 34.353</ows:UpperCorner>
</ows:BoundingBox>
</csw:Record>
6.3.4 Information structure and semantics
Some services that implement OGC Standards expect a rigid syntax for the information resources to be returned, whereas others do not. This subclause allows an Application Profile to be specific about what information content, syntax, and semantics are to be communicated over the service. The following items should be addressed in an Application Profile.
- Identify information resource types that can be requested. In the case of a catalogue service, the information resources being described by the metadata may include geographic data, imagery, services, controlled vocabularies, or schemas among a wide variety of possible types. This subclause allows the community to specify or generalise the resource types being described in metadata for their scope of application.
- Identify a public reference for the information being returned by the service (e.g. ISO 19115:2003 “Geographic Information – Metadata “). Include any semantic resources including data content model, dictionary, feature type catalogue, code lists, authorities, taxonomies, etc.
- Identify named groups of properties (element sets) that may be requested of the service (e.g. “brief,” “summary,” or “full”) and the valid format (syntax) for each element set. Identify valid schema(s) with respect to a given format to assist in the validation of response messages.
- Specialise the core queryable properties list by making some optional queryable attributes mandatory, deleting other optional attributes and adding queryable attributes that should be standard across all profile users
- Optional mapping of queryable and retrievable properties against other public metadata models or tags.
- Expected response/results syntax and content Message syntax and schemas (e.g. brief/full, individual elements).
7. General catalogue interface model
7.1 Introduction
The General Catalogue Interface Model (GCIM) provides a set of abstract service interfaces that support the discovery, access, maintenance and organization of catalogues of geospatial information and related resources. The interfaces specified are intended to allow users or application software to find information that exists in multiple distributed computing environments, including the World Wide Web (WWW) environment.
Implementation design guidance is included in specified protocol binding Parts of this standard. Each protocol binding includes a mapping from the general interfaces, operations, and parameters specified in this clause to the constructs available in a chosen protocol. In most, but not all, protocol bindings, there may be restrictions or refinements on implementation of the General Model agreed within an implementation community. This sub-clause provides an overview of the portions of the GCIM that are realised by implementations described in other Catalogue Service Part documents.
Application profiles are intended to further document implementation choices. An Application Profile is predicated on the existence of one protocol binding as a Part of this standard.
Figure 2 - Reference model architecture shows the Reference Architecture assumed for development of the OGC Catalogue Interface. The architecture is a multi-tier arrangement of clients and servers. To provide a context, the architecture shows more than just catalogue interfaces. The bold lines illustrate the scope of OGC Catalogue.
The Application Client shown in Figure 2 - Reference model architecture interfaces with the Catalogue Service using the OGC Catalogue Interface. The Catalogue Service may draw on one of three sources to respond to the Catalogue Service request: a Metadata Repository local to the Catalogue Service, a Resource service, or another Catalogue Service. The interface to the local Metadata Repository is internal to the Catalogue Service. The interface to the Resource service can be a private or OGC Interface. The interface between Catalogue Services is the OGC Catalogue Interface. In this case, a Catalogue Service is acting as both a client and server. Data returned from an OGC Catalogue Service query is processed by the requesting Catalogue Service to return the data appropriate to the original Catalogue request. See Annex A for more about Distributed Searching.
7.2 Interface definitions
7.2.1 Overview
Figure 3 - General OGC catalogue UML static model is a general UML model of OGC catalogue service interfaces, in the form of a class diagram. Operation signatures have been suppressed in this figure for simplicity but are described in detail below. This model shows the Catalogue Service class plus five other classes with which that class are associated. A Catalogue Service is a realization of an OGC Service. Each instance of the Catalogue Service class is associated with one or more of these other classes, depending on the abilities included in that service instance. Each of these other classes defines one or several related operations that can be included in a Catalogue Service class instance. The Catalogue Service class directly includes only the serviceTypeID attribute, with a fixed value for the service type.
In Figure 3 - General OGC catalogue UML static model, an instance of the CatalogService type is a composite object that is a high-level characterization of a catalogue service. Its constituent objects are themselves components that provide functional behaviours to address particular areas of concern. A protocol binding may realise specific configurations of these components to serve different purposes (e.g. a read-only catalogue for discovery, or a transactional catalogue for discovery and publication).
The associated classes shown in this figure are mandatory or optional for implementation as indicated by the association multiplicity in the UML diagram. Therefore, a compliant catalogue service shall implement the OGC_Service, CatalogService, and Discovery classes. An application profile or protocol binding can implement additional classes associated with the Catalogue Service class. A catalogue implementation shall recognise all operations defined within each included class, and shall generate a message indicating when a particular operation is not implemented.
The protocol binding clauses of this standard provide more detail on the implementation of these conceptual interfaces. For example, the names of the classes and operations in this general UML model are changed in some of the protocol bindings. The names of some operation parameters are also changed in some protocol bindings.
Application Profiles may further specialise the implementation of these interfaces and their operations, including adding classes. In general, however, the interfaces and operations described here shall have the same semantics and granularity of interaction regardless of the protocol binding used.
The Catalogue Service class can be associated with the following classes.
a) OGC_Service class, which provides the getCapabilities operation that retrieves catalogue service metadata and the getResourceById operation that will retrieve an object by query on its identifier only. This class is always realised by the Catalogue Service class, and is thus always implemented by a Catalogue Service implementation.
b) Discovery class, which provides three operations for client discovery of resources registered in a catalogue. This class has a required association from the Catalogue Service class, and is thus always implemented by a Catalogue Service implementation. The “query” operation searches the catalogued metadata and produces a result set containing references to all the resources that satisfy the query. This operation returns metadata for some or all of the found result set. The optional describeRecordType operation retrieves the type definition used by metadata of one or more registered resource types. The optional getDomain operation retrieves information about the valid values of one or more named metadata properties.
c) Manager class, which provides two operations for inserting, updating, and deleting the metadata by which resources are registered in a catalogue. This class has an optional association from the Catalogue Service class; this interface is implemented by the Catalogue Service implementation. The transaction operation performs a specified set of “insert”, “update”, and “delete” actions on metadata items stored by a Catalogue Service implementation—this enables a “push” style of publication. The harvestResource operation requests the Catalogue Service to retrieve resource metadata from a specified location, often on a regular basis—this behaviour reflects a ‘pull’ style of publication.
The three classes associated with the Catalogue Service class allow different OGC catalogue services to provide significantly different abilities. A particular protocol binding is used by each Application Profile and a particular set of these catalogue service classes is specified by each Application Profile.
Each of the catalogue classes is described further in the following subclauses. These subclauses discuss the operations and parameters of each operation in this general model. Specific protocol bindings or application profiles can define additional parameters. For example, the HTTP Protocol Binding adds the Service, Request, and Version parameters to all operation requests to be consistent with other OGC Web Services.
7.2.2 Catalogue Service class
The Catalogue Service class provides the foundation for an OGC catalogue service. The Catalogue Service class directly includes only the serviceTypeID attribute, as specified in Table 5. In most cases, this attribute will not be directly visible to catalogue clients.
Name |
Definition |
Data type |
Multiplicity |
---|---|---|---|
serviceTypeID |
Identification of catalogue service binding type |
String, could be URI, as controlled vocabulary for OGC services |
One (Mandatory) |
7.2.3 OGC_Service class
7.2.3.1 Introduction
The OGC_Service class allows clients to retrieve service metadata by providing the getCapabilities operation. This class is always realised by the Catalogue Service class, and is thus always implemented by a Catalogue Service instance. Capabilities are described further in OGC Web Service Common Implementation Specification 2.0.
NOTE This getCapabilities operation corresponds to CatalogueService.explainServer operation in OGC Catalogue version 1.1.1.
7.2.3.2 getCapabilities operation
Requirement 6 |
/req/getcapabilities |
Catalogue service implementations shall include a means to request structured service capability information. |
Dependency: OGC Web Service Common Implementation Specification 2.0 |
The getCapabilities operation is specified in Table 6.
Definition |
Allows clients to retrieve service metadata describing Catalogue Service instance |
---|---|
Receives |
Optional identifier(s) of requested parts of the complete service metadata document |
Returns |
Service metadata document for Catalogue Service instance. Some document contents depend on the set of classes that are associated with the Catalogue Service class, as defined by the specific protocol binding, and on other details of that protocol binding. Other document contents depend on the types of data defined by the specific application profile, and on other details of that profile. |
Exceptions |
Invalid Parameter Value, Missing Parameter Value |
Pre-conditions |
None |
Post-conditions |
Service metadata document returned to requesting client, either complete or including selected parts |
The getCapabilities operation is inherited from OWS Common 2.0 and is specialized to describe service capabilities of a catalogue.
The normal GetCapabilities operation response is a service metadata document that includes the “section” attributes listed and defined in Table 7, as selected by the “section” attribute in the operation request.
Name |
Definition |
Data type |
Optionality and use |
---|---|---|---|
ServiceIdentification |
Metadata about this specific server |
SV_ServiceIdentification in ISO 19119 |
Zero or one (Optional) Include when requested |
ServiceProvider |
Metadata about the organization operating this server |
SV_ServiceProvider in ISO 19119 |
Zero or one (Optional) Include when requested |
OperationMetadata |
Metadata about an operations specified by this service, including the URL(s) for operation requests |
SV_OperationMetadata in ISO 19119
|
Zero or more (Optional) Include when requested Repeated for each operation implemented by this server |
Content |
Metadata about a collection or type of resource catalogued by this server |
MD_DataIdentification in ISO 19115 (adapted)
|
Zero or more (Optional) Include when requested Repeated for each collection and type of resources catalogued |
QueryLanguage |
Metadata about a query language supported by this server, specifying the query abilities implemented |
Character string |
Zero or more (Optional) Include when requested Repeated for each query language implemented by this server |
NOTE 1 The term “Capabilities XML” document was previously used for what is here called “service metadata” document. The term “service metadata” is now used because it is more descriptive and is compliant with OGC Abstract Specification Topic 12 (ISO 19119).
NOTE 2 This general model assumes that operation failure will be signalled to the client in a manner specified by each protocol binding.
7.2.3.3 getResourceById operation
The getResourceById operation is inherited from OWS Common and supports the request of one or more resources – in this case full, structured metadata records – from the catalogue. Records are discovered through the query operation whose response includes the identifier(s) of the record(s) meeting the conditions of the query. These identifiers are passed via the getResourceById to retrieve records from the catalogue in bulk.
Requirement 7 |
/req/getresourcebyid |
Catalogue service implementations shall include a means to request catalogue records by their identifiers. |
Dependency: OGC Web Service Common Implementation Specification 2.0 |
7.2.4 Discovery class
7.2.4.1 Introduction
The Discovery class allows clients to discover resources registered in a catalogue, by providing three operations named “query”, describeRecordType, and getDomain. This class has a required association from the Catalogue Service class, and is thus always implemented by all Catalogue Service implementations. All Discovery class operations are stateless.
7.2.4.2 “query” operation
The “query” operation is described in Table 8. Figure 4 provides a UML model of the “query” operation that shows the complete Discovery class with the QueryRequest and QueryResponse classes and the classes they use. The operation request includes the attributes and association role names listed and defined in the following tables. The normal operation response includes the attributes and association role names listed and defined in Table 14.
Requirement 8 |
/req/query |
Catalogue service implementations shall include a means to formulate a query against a catalogue and return one or more structured results. |
Definition |
Allows clients to ask a catalogue to execute a query that searches the catalogued metadata and produces a result set containing (zero or more) references to all the registered resources that satisfy the query. The server may maintain the result set for subsequent retrieval requests. The server may also distribute the request to other Catalogues within a federation. |
---|---|
Receives |
Specifications of query constraints and of metadata to be returned |
Returns |
Number of items in result set, and/or metadata for some or all of the result set. The client can specify the maximum number of records for which metadata is returned. When metadata return is requested, the service implementation shall first sort the result set as specified by the client. Most of the metadata returned depends on the metadata requested and on the types of data defined by the specific Application Profile. The resultset may also include items coming from other Catalogues within a federation. |
Exceptions |
Missing Parameter Value, Invalid Parameter Value, Nonexistent collection or type |
Pre-conditions |
The client knows the schema of the information model that the catalogue supports and can thus form valid query expressions. |
Post-conditions |
Response returned to requesting client, containing number of items in result set and/or selected metadata for some or all of result set |
Definition |
Allows clients to ask a catalogue to execute a query that searches the catalogued metadata and produces a result set containing (zero or more) references to all the registered resources that satisfy the query. The server may maintain the result set for subsequent retrieval requests. The server may also distribute the request to other Catalogues within a federation. |
Name |
Definition |
Data type and value |
Optionality and use |
||
---|---|---|---|---|---|
queryExpression |
The query language and predicate expressing query constraints |
QueryExpression, See 6.2 |
One (Mandatory)
|
||
collectionID |
Specifies the search space for this query. Search space can be all catalogue holdings or a named subspace of the catalogue holdings |
Character String type, not empty Specific values that may be referenced are application profile or protocol binding dependent |
Zero or one (Conditional) Include when required by protocol binding, otherwise optional |
||
resourceType |
A catalogue may contain references to several different resource types. This parameter provides for the selection of one of those types for retrieval |
CodeList type a |
One (Mandatory) |
||
queryScope d |
Scope of this query |
QueryScope, see Table 10 |
Zero or one (optional) Zero means “local” search |
||
resultType |
Specifies how client wants result set presented and the behaviour of the catalogue as to when a response is sent |
CodeList Type b |
Zero or one (Conditional) Default values specified by protocol binding or application profile |
||
responseElements C |
Specifies set name or list of metadata elements to be returned in the context of a specific metadata structure |
Either a list of elements as name/type pairs OR CodeList type named ElementSet with allowed values of “brief,” “summary” “full” and “browse” |
Zero or one (Optional) Default value is “summary”
|
||
responseSchema C |
The name of the “well-known” or advertised (in the capabilities) schema of the response |
Code List type with one mandatory value of “OGCCORE” that represents the core catalogue schema. Other values may be defined by application profiles. Examples of such values might be: “FGDC”, “ISO-19119”, ISO-19139”, ANZLIC |
Zero or one (Optional). If the parameter is not specified then the default value is “OGCCORE”. |
||
sortSpec |
Sorting information to the server for formatting data returned to the client |
SortSpec, See Table 12
|
Zero or one (Optional) Default is specified by server |
||
returnFormat |
Specifies format (MIME or Internet media type) for returning result set metadata |
CodeList type XML HTML TXT |
Zero or one (Optional) Default is “XML” Include when results to be returned |
||
cursorPosition |
First result set resource to be returned for this operation request |
Positive integer |
Zero or one (Optional) Default is “1” Include when results to be returned |
||
iteratorSize |
Specifies maximum number of result set resources to be returned |
Non-negative integer |
Zero or one (Optional) Default is “10” Include when results to be returned |
||
responseHandler |
Network location to which the response will be forwarded when operation has been completed, for asynchronous requests |
URL |
Zero or one (Optional) If not included, process request synchronously |
||
a Values and definitions of resourceType codes: Data set – the lowest level packaging of Features that have been catalogued Data set collection – a grouping of data sets that have commonality (ISO 19115: data set series) Service – a set of interfaces that provide access to or operations on data (e.g. catalogue service) |
|||||
b Values and definition of resultType codes and behaviours in session based environments: validate - the QueryResponse is returned as soon as QueryRequest has been determined to be valid. Query processing continues after the QueryResponse is returned.. Reasons for failure are provided in the diagnostic of QueryResponse. resultSetID - the QueryResponse is returned as soon as the resultSetID is available and the query has completed processing. hits- the QueryResponse is returned as soon as the query has completed processing and the number of hits has been determined. Metadata records are not returned in the QueryResponse results - the QueryResponse is returned as soon as the query has completed processing and the results have been formatted for return. Metadata records are returned in the QueryResponse |
|||||
c The information model of this standard is the core catalogue schema defined in Subclause 6.3. It represents the common part of the information model which all application profiles shall support. This standard only supports 'OGCCORE' as the value of the 'responseSchema' parameter and a value of “brief”, “summary” or “full” for the value of the ‘responseElements’ parameter. Additional values for the responseSchema and responseElements parameters may be defined by application profiles. |
|||||
d A detailed description of distributed searches can be found in Annex A of this document. |
Name |
Definition |
Data type and value |
Optionality and use |
---|---|---|---|
hopCount |
Maximum number of message hops before distributed search is terminated. Each catalogue decrements value by one when request is received, and does not forward request if hopCount=0. |
Non-negative integer |
Zero or one (optional) Default value is “2” Included only when queryScope has value “distributed” |
clientId |
an Id which uniquely identifies the requestor. |
URI |
One (Mandatory) |
distributedSearchId |
an Id which uniquely identifies a complete client-initiated distributed search-sequence/session. |
URI |
One (Mandatory) |
distributedSearchIdTimeout |
defines how long the distributedSearchId should be valid, meaning how long a server involved in distributed search should minimally store information related to the distributedSearchId |
Long |
Zero or one (optional). |
federatedCatalogues |
To restrict the number of catalogues of a federation which should be searched upon in a distributed query an optional list of those catalogues can be provided here |
FederatedCatalogues |
Zero or more (Optional) |
Name |
Definition |
Data type and value |
Optionality and use |
---|---|---|---|
catalogueURL |
a catalogue is represented by it’s url. |
URL |
One (Mandatory) |
timeout |
timeout (in msec) how long a server should wait for a catalogue request to be proceeded before throwing a timeout exception |
Long |
Zero or one (Optional) |
Name |
Definition |
Data type and value |
Optionality and use |
---|---|---|---|
sortAttName |
Identifies the result set attribute type to be sorted on |
Character String |
Zero or one (Optional) Default is defined by server |
sortOrder |
How the attributes are to be ordered by the sort |
Code List type with allowed values of “ascending” and “descending” |
Zero or one (Optional) Default is defined by server |
Name |
Definition |
Data type and value |
Optionality |
---|---|---|---|
queryLanguage |
Specifies the predicate language and version used in a query expression |
Code List, known values of “OGC_Common”, “Filter, Type-1” |
One (Mandatory) |
predicate |
The constraint expression for selecting entries from a catalogue |
CharacterString |
One (Mandatory) |
Name |
Definition |
Data type and value |
Optionality and use |
---|---|---|---|
resultType |
How the server responded to the query request. |
CodeList type with allowed values of “dataset”, “datasetcollection” and “service” |
Zero or one (Optional)
|
retrievedData |
A subset of the results of this query request, organised and formatted as specified in the presentation, messageFormat, and sortField parameters. |
ReturnData Set of resource descriptions/records |
Zero or one (Conditional) Include when resultType = Results |
cursorPosition |
Last result set resource returned for this operation request. |
Positive integer |
Zero or one (Conditional) Include when results returned |
hits |
Number of entries in the result set. |
Non-negative integer |
One (Mandatory) |
NOTE This general model assumes that operation failure will be signalled to the client in a manner specified by each protocol binding.
7.2.4.3 describeRecordType operation
The describeRecordType operation is more completely specified in Table 15 — Definition of describeRecordType operation.
Table 15 provides a UML model of the optional describeRecordType operation that shows the complete Discovery class with the DescribeRecordTypeRequest and DescribeRecordTypeResponse classes and the class they use. The operation request includes the attributes and association role name listed and defined in Table 16. The normal operation response includes the attributes and association role name listed and defined in Table 17.
NOTE The describeRecordType operation corresponds to CG_Discovery.explainCollection operation in OGC Catalogue version 1.1.1.
Requirement 9 |
/req/describe-records |
Catalogue service implementations should include a means to describe or reference the structure (schema), queryables, element sets, and formats of the metadata used for one or more registered resource types. |
Definition |
Allows clients to retrieve type definition(s) used by metadata of one or more registered resource types |
---|---|
Receives |
Optional identifications of requested record type(s) and of desired format |
Returns |
Type definition document containing definition(s) of type(s) used by the metadata of one or more registered resource types. This type definition shall include the structure (schema), queryables, element sets, and formats of the metadata used for one or more registered resource types. The contents of the result of this operation depend on the types of metadata that can currently be used by registered resources. |
Exceptions |
Missing Parameter Value, Invalid Parameter Value, Nonexistent type |
Pre-conditions |
None |
Post-conditions |
Type definition document returned to requesting client, containing definition(s) of type(s) used by the metadata of one or more registered resource types |
Name |
Definition |
Data type and value |
Optionality and use |
---|---|---|---|
typeName |
Name of metadata record type(s) for which type information is to be returned |
Character String type Values specified by protocol binding |
Zero or more (Optional) Return all types when omitted |
schemaLanguage |
The schema language of the response message |
Character String type Values specified by protocol binding |
Zero or one (Optional) Use XML Schema when omitted |
outputFormat |
Document format for output |
Character String type Value is MIME type |
Zero or one (Optional) Use application/xml when omitted. |
Name |
Definition |
Data type and value |
Optionality and use |
---|---|---|---|
typeName |
Name of metadata record type for which type information is returned |
Character String Values are names of metadata record types |
One or more (Mandatory) Include one for each record type to be returned |
schemaLanguage |
The schema language used to describe the type |
Character String. Non-empty Values specified by protocol binding |
One (Mandatory). |
7.2.4.4 getDomain operation
The optional getDomain operation is more completely specified in Table 18, which provides a UML model of the getDomain operation that shows the complete Discovery class with the GetDomainRequest and GetDomainResponse classes and the class they use. The operation request includes the attributes listed and defined in Table 19. The normal operation response includes the attributes and association role name listed and defined in Table 20.
Requirement 10 |
/req/getdomain |
Catalogue service implementations should include a means to retrieve the domain (allowed values) of a metadata property or request parameter at the time the request is invoked. |
Definition |
Allows clients to retrieve the domain (allowed values) of a metadata property or request parameter at the time the request is invoked. The returned information may be static domain information, but may also be dynamic in that the allowed values are determined at runtime. The operation does a best attempt at returning information about a metadata property or request parameter. |
---|---|
Receives |
Names of one or more requested metadata properties or request parameters. |
Returns |
Descriptions of domains of one or more requested metadata properties or request parameters |
Exceptions |
Missing Parameter Value, Invalid Parameter Name |
Pre-conditions |
None |
Post-conditions |
Descriptions of domains returned to requesting client, containing the domain descriptions for all the identified metadata properties or request parameters. |
Name |
Definition |
Data type and value |
Optionality |
---|---|---|---|
parameterName |
The name of a metadata property or request parameter |
Character string. Non-empty Allowed values specified by protocol binding |
One (Mandatory) |
Name |
Definition |
Data type and value |
Optionality and use |
---|---|---|---|
parameterName |
Name or identifier of metadata property or request parameter |
Character String type, not empty |
One (Mandatory) |
listOfValues |
Unordered list of domain values |
Data type of list elements depends on the data type of the parameter whose domain is being described |
Zero or one (Optional) a |
conceptualScheme |
Reference to an authoritative list of domain values for the specified parameter |
Data type of list of values in the authoritative list depends on the data type of the parameter whose domain is being described |
Zero or one (Optional) a |
rangeOfValues |
Range of domain values expressed by specifying a minimum and maximum value |
Data type of the minimum and maximum values depends on the data type of the parameter whose domain is being described |
Zero or one (Optional) a
|
a For any single parameter, only one of listOfValues, conceptualScheme or rangeOfValues should be used to describe the value domain. |
7.2.5 Manager class
7.2.5.1 Introduction
The Manager class allows a client to insert, update and/or delete catalogue content. This class has an optional association from the CatalogueService class; it is not required that a catalogue service implement publishing functionality. Two operations are provided: “transaction” and “harvestResource”. Both are optional operations.
The “transaction” operation allows a client to formulate a transaction, and send it to the catalogue to be processed. The transaction may contain metadata records and elements of the information model that the catalogue understands. To use the transaction operation, the client must know something about the information model that the catalogue implements.
The “harvestResource” operation, on the other hand, directs the catalogue to retrieve an accessible metadata record and processes it for inclusion in the catalogue, perhaps periodically re-fetching the metadata records to refresh the information in the catalogue. The client does not need to be aware of the information model of the catalogue when using the “harvestResource” operation, since the catalogue itself is doing the work required to process the information. The client is simply pointing to where the metadata resource to be harvested is.
Requirement 11 |
/req/transaction |
Catalogue service implementations shall include a means to request a specified set of “insert”, “update”, and “delete” actions on the content managed by a Catalogue Service instance. |
7.2.5.2 ”transaction” operation
The “transaction” operation is more completely specified in Table 21. Figure 7 provides a UML model of the “transaction” operation that shows the complete Manager class with the TransactionRequest and TransactionResponse classes and the classes they use.The operation request includes the attributes listed and defined in Table 22. The normal operation response includes the attributes listed and defined in Table 23.
Definition |
Allows clients to request a specified set of “insert”, “update”, and “delete” actions on the content managed by a Catalogue Service instance. |
---|---|
Receives |
Specification of set of “insert”, “update”, and “delete” actions, plus an optional identifier. At least one action shall be included. |
Returns |
A summary of the transaction results that identifies newly created entries when applicable. Most contents of the result depend on the types of data defined by the specific protocol binding and Application Profile. |
Exceptions |
Missing Parameter Value, Invalid Parameter Value, Transaction Failed |
Pre-conditions |
User is authorized to modify catalogue contents |
Post-conditions |
Catalogue entries are inserted, updated, and/or deleted as requested, and the integrity and consistency of catalogue contents are preserved.. |
Name |
Definition |
Data type and value |
Optionality and use |
---|---|---|---|
insert |
The insert action is used to create new metadata records in a catalogue. Each insert action may contain one or more new metadata record instances that are to be inserted into the catalogue.
|
Any, a container for one or more metadata record instances The schema for metadata records is defined in the protocol binding and may be extended or redefined in an Application Profile |
Zero or more (Optional) Include when client wishes to insert one or more new catalogue records |
update |
The update action is used to modify existing records in the catalogue. The update action contains a single new metadata record instance and a predicate that defines the set of catalogue records that will be modified. The predicate may identify zero or more records that are to be modified by the update action. The encoding of the predicate is specified in the protocol binding and may be further qualified or extended in an Application Profile. |
Any, contains one instance of a metadata record that will be used to update existing records in catalogue The schema of the record is defined in the protocol binding and may be extended or redefined in an Application Profile |
Zero or more (Optional) Include when client wishes to modify one or more existing catalogue records |
delete |
The delete action is used to remove one or more records from a catalogue. The records to be removed are identified by specifying a predicate with the operation. The predicate may identify zero or more records that are to be removed from the catalogue by the delete action. The encoding of the predicate is specified in the protocol binding and may be further qualified or extended in an Application Profile. |
The delete action requires a constraint predicate that identifies the records in the catalogue to be removed
|
Zero or one (Optional) Include when client wishes to delete one or more existing records from a catalogue |
Name |
Definition |
Data type and value |
Optionality |
---|---|---|---|
transactionSummary |
Summary of transaction results that includes the numbers of records inserted, updated, and deleted by the actions specified in the transaction |
TransactionSummaryType Total number of records inserted, updated, and deleted (Integer) |
One (Mandatory) |
insertResults |
Brief representation of a record created by the transaction, which shall include the record identifier May contain a handle that relates newly created record with the insert action that created it |
InsertResultType Structure composed of brief record type (application profile or protocol binding dependent) and an optional handle |
Zero or more (Optional) Include one for each record created |
7.2.5.3 harvestResource operation
The harvestResource operation facilitates the retrieval of remote resources from a designated location and provides for optional transactions on the local catalogue. The harvestResource operation is described in Table 24. Figure 8 provides a UML model of the “harvestResource” operation that shows the complete Manager class with the HarvestResourceRequest and HarvestResourceResponse classes.The operation request includes the attributes listed and defined in Table 25. The normal operation response includes the attributes listed and defined in Table 26.
Requirement 12 |
/req/harvest |
Catalogue service implementations shall include a means to retrieve a resource from a specified remote location, and to create one or more entries for that resource in the catalogue. |
Definition |
Allows a user to request that a catalogue service attempt to retrieve a resource from a specified location, and to optionally create one or more entries for that resource. A harvest attempt may occur periodically if an interval is specified. |
---|---|
Receives |
A request message containing the source of the resource to be harvested |
Returns |
An acknowledgement that a harvestRequest has been received and validated (if a responseHandler is specified) or a summary of the harvest results that identifies newly harvested records (if a responseHandler is not specified). Most contents of the result depend on the types of data defined by the specific protocol binding and Application Profile. |
Exceptions |
InvalidRequest, ResourceNotFound |
Pre-conditions |
The user is permitted to modify catalogue contents, unless the scope of the harvest does not include an insert or update transaction |
Post-conditions |
One or more records are harvested from a remote system and optionally new catalogue entries are created or existing entries are updated, and the integrity and consistency of the catalogue contents are preserved |
Name |
Definition |
Data type and value |
Optionality and use |
---|---|---|---|
source |
Location from which resource to be retrieved |
URL |
One (Mandatory) |
resourceType |
Identifier of type of resource to be harvested, if known |
URI |
Zero or one (Optional) If the parameter is not specified then the catalogue should determine the resourceType from the content of the message |
resourceFormat |
Identifier of media type indicating the format of resource to be harvested |
CharacterString Value shall be a media type supported by catalogue |
One (Mandatory) |
responseHandler |
Network location to which the response will be forwarded when operation has been completed, for asynchronous requests |
URL |
Zero or one (Optional) If not included, process request synchronously |
harvestInterval |
Time interval between harvest attempts |
Period Using ISO 8601 Period syntax (e.g., P6M indicates an interval of six months) |
Zero or one (Optional) If the parameter is not specified then the catalogue should harvest the resource once in response to the request. |
Name |
Definition |
Data type and value |
Optionality and use |
---|---|---|---|
acknowledgement |
Summary of transaction results, with contents depending on the protocol binding and Application Profile (e.g. total records affected by each action) |
Any |
One (Mandatory) |
insertResults |
Brief representation of a record created by the transaction, which shall include the record identifier May contain a handle that relates newly created record with the insert statement that created it
|
InsertResultType A structure composed of the brief record type (application profile or protocol binding dependant) and an optional handle |
One or more (Mandatory) Include one for each new record created in catalogue |
This general model assumes that operation failure will be signalled to the client in a manner specified by each protocol binding.
8. Conformance classes and specialisation
8.1 Introduction
This subclause provides an overview of the core elements of the General Catalogue Model and how these may be used in protocol bindings and application profiles.
The General Catalogue Model consists of an abstract model and a General Interface Model. The abstract query model specifies a BNF grammar for a minimal query syntax and a set of core search attributes (names, definitions, conceptual datatypes). The General Interface Model specifies a set of service interfaces that support the discovery, access, maintenance and organization of catalogues of geospatial information and related resources; these interfaces may be bound to multiple application protocols, including the HTTP protocol that underlies the World Wide Web.
Implementations are constrained by the protocol binding parts of this standard, which depend on this general model. Each protocol binding includes a mapping from the general interfaces, operations, and parameters specified in this clause to the constructs available in a chosen protocol. Application profiles are intended to further document implementation choices.
An Application Profile is based on one of the protocol bindings in the base specification. In the case of the Catalogue Services Standard, a profile should reference the HTTP/1.1 protocol binding unless others are defined/recognized. In most, but not all, protocol bindings, there may be restrictions or refinements on implementation agreed within an implementation community. A graphic model of the relationships is shown in Figure 9.