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:
collectionup (RFC8288)gmd:parentIdentifierpycsw 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:
GetRecords and FES parentIdentifier filters.../items queries with parentidentifier= property queryIt 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:
/collections
virtual-collection-1)metadata:main collection as normal/collections/virtual-collection-1
/collections/virtual-collection-1/queryables
/collections/virtual-collection-1/items
parentidentifier='virtual-collection-1/collections/virtual-collection-1/items/{itemId}
Note that /collections/metadata:main/... remains the “cross-collection” functionality.
This feature will enabled by default.
pycsw.ogc.apioarec unit tests will be addedNone.
None
None expected.
None
None
Documentation will be updated to describe the new feature (adding new page for virtual collections in OARec).
TBD
https://github.com/geopython/pycsw/pull/726
TBD
Draft