RFC 10: OGC API - Records virtual collections support

Overview

This RFC describes the pycsw implementation of virtual collections as part of OGC API - Records support (OGC 20-004).

The current pycsw implementation supports a single collection of metadata in both OGC:CSW and OARec modes. OGC API - Records differs from OGC:CSW in that multiple collections of metadata can be published and made available as disctinct endpoints. Providing multiple collections of metadata from a pycsw instance allows for finer grained discovery based on collections of metadata (themes, projects, areas of interest, etc.).

Hierarchical metadata relationships are defined in both metadata and OGC standards:

pycsw implements parent/child relationships in the core metadata repository model, enabling clients to discover metadata based on a specific collection. This functionality is realized as follows:

It is also possible to use repository filters realize the above without requiring the user to specify any query/filter syntax. However, using repository filters would apply to the entire repository/deployment.

For OGC API - Records, there is an opportunity to expose the parent metadata as distinct collections, to reduce the barrier for users querying on a specific collection, for multiple collections

Proposed Solution

This functionality will be implemented in OGC API - Records only, given OGC:CSW does not support multiple collections form a single endpoint. Functionality will be implemented and triggered by the following endpoints:

Note that /collections/metadata:main/... remains the “cross-collection” functionality.

Implementation

Activating the feature

This feature will enabled by default.

Files affected

Backwards Compatibility Issues

None.

Internal Interface changes

None

Performance Implications

None expected.

None

Restrictions

None

Documentation

Documentation will be updated to describe the new feature (adding new page for virtual collections in OARec).

Miscellaneous

Issue Tracking ID

TBD

Pull Request

https://github.com/geopython/pycsw/pull/726

Voting History

TBD

Status

Draft