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
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:
metadata:maincollection as normal
/collections/metadata:main/... remains the “cross-collection” functionality.
This feature will enabled by default.
oarecunit tests will be added
Documentation will be updated to describe the new feature (adding new page for virtual collections in OARec).