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:
collection
up
(RFC8288)gmd:parentIdentifier
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:
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.api
oarec
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