Skip to content

Commit

Permalink
add clause 8 changes as OGC modspec (#14)
Browse files Browse the repository at this point in the history
* add clause 8 changes as modspec

* fix links

* editorial updates

* add recommendation for bbox element brevity, qualify additional extent reasoning
  • Loading branch information
tomkralidis authored Jun 1, 2022
1 parent df2b369 commit c05c291
Show file tree
Hide file tree
Showing 17 changed files with 151 additions and 27 deletions.
24 changes: 12 additions & 12 deletions schema/wcmpRecordGeoJSON.yaml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
$schema: https://json-schema.org/draft/2020-12/schema
$id: https://raw.githubusercontent.com/wmo-im/wcmp2/main/schema/wcmpRecordGeoJSON.yaml
$schema: 'https://json-schema.org/draft/2020-12/schema'
$id: 'https://raw.githubusercontent.com/wmo-im/wcmp2/main/schema/wcmpRecordGeoJSON.yaml'
title: WCMP2 discovery metadata record definition
description: WCMP2 discovery metadata record definition

allOf:
- $ref: https://raw.githubusercontent.com/opengeospatial/ogcapi-records/master/core/openapi/schemas/recordGeoJSON.yaml
- $ref: 'https://raw.githubusercontent.com/opengeospatial/ogcapi-records/master/core/openapi/schemas/recordGeoJSON.yaml'
required:
- id
- conformsTo
- geometry
- properties
- links
properties:
required:
- id
- conformsTo
- geometry
- properties
properties:
required:
- type
Expand All @@ -25,6 +25,6 @@ properties:
version:
type: string
description: The version or edition of a given dataset or product.
associations:
items:
$ref: link.yaml
links:
items:
$ref: link.yaml
8 changes: 8 additions & 0 deletions standard/abstract_tests/ATS_class_core.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ include::./core/ATS_test_description.adoc[]

include::./core/ATS_test_themes_topic_hierarchy.adoc[]

==== Geospatial Extent

include::./core/ATS_test_geospatial_extent.adoc[]

==== Temporal Extent

include::./core/ATS_test_temporal_extent.adoc[]

==== Providers

include::./core/ATS_test_providers.adoc[]
Expand Down
21 changes: 21 additions & 0 deletions standard/abstract_tests/core/ATS_test_geospatial_extent.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[[ats_core_geospatial_extent]]
====
[%metadata]
label:: /conf/core/geospatial_extent
subject:: /req/core/geospatial_extent
test-purpose:: Validate that a WCMP record provides a valid geospatial extent property.
[.component,class=test method]
=====

[.component,class=step]
--
Check for the existence of at least one `+properties.extent.spatial.bbox+` item property in the WCMP record.
--

[.component,class=step]
--
Check that `+properties.extent.spatial.crs+` property exists and is equal to `+http://www.opengis.net/def/crs/OGC/1.3/CRS84+`.
--
=====
====
22 changes: 22 additions & 0 deletions standard/abstract_tests/core/ATS_test_temporal_extent.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[[ats_core_temporal_extent]]
====
[%metadata]
label:: /conf/core/temporal_extent
subject:: /req/core/temporal_extent
test-purpose:: Validate that a WCMP record provides a valid temporal extent property.
[.component,class=test method]
=====

[.component,class=step]
--
Check for the existence of at least one `+properties.extent.temporal.interval+` item property in the WCMP record.
--

[.component,class=step]
--
Check that `+properties.extent.temporal.trs+` property exists and is equal to `+http://www.opengis.net/def/uom/ISO-8601/0/Gregorian+`.
--

=====
====
1 change: 1 addition & 0 deletions standard/asciidoc-link-check-config.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"ignorePatterns": [
{ "pattern": "^http://www.opengis.net/def"},
{ "pattern": "http://www.wmo.int/spec/wcmp/2.0/conf/core" },
{ "pattern": "http://www.wmo.int/spec/wcmp/2.0/req/core" }
]
Expand Down
6 changes: 6 additions & 0 deletions standard/recommendations/core/PER_geospatial_extent.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[[per_core_geospatial_extent]]
[width="90%",cols="2,6a"]
|===
^|*Permission {counter:per-id}* |*/per/core/geospatial_extent*
^|A |A WCMP record MAY provide multiple `+properties.extent.spatial.bbox+` item properties in order to express additional geospatial extents in other coordinate reference systems.
|===
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[[rec_core_geospatial_extent_brevity]]
[width="90%",cols="2,6a"]
|===
^|*Recommendation {counter:rec-id}* |*/rec/core/geospatial_extent_brevity*
^|A |A WCMP record SHOULD keep the number of geospatial extents to a minimum given the scope and purpose of high level resource discovery.
|===
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[[rec_core_geospatial_extent_point]]
[width="90%",cols="2,6a"]
|===
^|*Recommendation {counter:rec-id}* |*/rec/core/geospatial_extent_point*
^|A |For dataset collections based on a geometry without a calculated area (i.e. single station point), a WCMP record SHOULD provide the extent with min values being equal to maximum values (i.e. minx=maxx, miny=maxy).
|===
6 changes: 6 additions & 0 deletions standard/recommendations/core/REC_temporal_extent.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[[rec_core_temporal_extent]]
[width="90%",cols="2,6a"]
|===
^|*Recommendation {counter:rec-id}* |*/rec/core/temporal_extent*
^|A |For datasets with known or discrete intervals, a WCMP record SHOULD provide the temporal resolution (`+properties.extent.temporal.resolution+`) as an ISO 8601 duration (e.g. `+P1D+`).
|===
6 changes: 6 additions & 0 deletions standard/requirements/core/REQ_geospatial_extent.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[[req_core_geospatial_extent]]
[width="90%",cols="2,6a"]
|===
^|*Requirement {counter:req-id}* |*/req/core/geospatial_extent*
^|A |A WCMP record SHALL provide at least ONE `+properties.extent.spatial.bbox+` item property using the coordinate reference system WGS 84 longitude/latitude.
|===
2 changes: 1 addition & 1 deletion standard/requirements/core/REQ_identifier.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
^|A |A WCMP record SHALL have an identifier.
^|B |A WCMP record identifier SHALL have a the following notation: `+urn:x-wmo:md:{citation_authority}:{local_identifier}+`.
^|C |A WCMP record identifier SHALL contain a citation authority based on the Internet domain name of the data provider (e.g. `+gov.noaa+`, `+edu.ucar.ncar+`, `+cn.gov.cma+`, `+ca.gc.ec.msc+`, `+uk.gov.metoffice+`).
^|D |A WCMP record identifier SHALL contain a local identifier as defined by the data provider. The lcoal identifier SHALL NOT have spaces or special/accented characters.
^|D |A WCMP record identifier SHALL contain a local identifier as defined by the data provider. The local identifier SHALL NOT have spaces or special/accented characters.

|===

6 changes: 6 additions & 0 deletions standard/requirements/core/REQ_temporal_extent.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[[req_core_temporal_extent]]
[width="90%",cols="2,6a"]
|===
^|*Requirement {counter:req-id}* |*/req/core/temporal_extent*
^|A |A WCMP record SHALL provide at least ONE `+properties.extent.interval+` item property using the Gregorian calendar.
|===
2 changes: 1 addition & 1 deletion standard/sections/clause_1_scope.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ and can represent a number of different resources, including:
* processes (analytics, etc.)
This specification defines the conformance requirements for the WMO Core Metadata
Profile. Annex A defines the abstract test suite. Annex B provides normative inforamtion
Profile. Annex A defines the abstract test suite. Annex B provides normative information
on codelists.
3 changes: 3 additions & 0 deletions standard/sections/clause_4_terms_and_definitions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ text of the definition
|SOA
|Service-oriented architecture

|URI
|Uniform Resource Identifier

|URL
|Uniform Resource Locator

Expand Down
14 changes: 7 additions & 7 deletions standard/sections/clause_6_informative_text.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

=== Overview

The WIS 1 Technical Specification 1 was developed using service-oriented architecture (SOA) principles. It featured
complex ISO 19115/19139-based XML for metadata, which was not well integrated into the Web. Since that time, authoritative
The initial WIS Technical Specifications were developed using service-oriented architecture (SOA) principles. It featured
complex ISO 19115/19139-based XML for metadata. Since that time, authoritative
groups such as W3C and OGC have moved to adopt a more resource-oriented architecture (ROA), leveraging RESTful design
patterns as well as mass market encodings such as JSON and HTML.

Aligning with the WIS 2.0 Principles, in order to support the WIS 2 Technical Specifications for discovery and search,
, discovery metadata will be published to a global discovery catalogue, which will provide an OGC API - Records searchable
Aligning with the WIS 2.0 Principles, in order to support the WIS 2.0 Technical Specifications for discovery and search,
discovery metadata will be published to a global discovery catalogue, which will provide an OGC API - Records searchable
functionality. Users will be able to search from a web browser, whereas machines will interact with an API.

==== WIS 2.0
Expand All @@ -21,11 +21,11 @@ WIS 2.0 puts forth the following principles (those focused on discovery metadata
* *Principle 4: WIS2.0 requires provision of Web service(s) to access or interact with digital resources (e.g. data, information, products) published using WIS*
* Principle 5: WIS 2.0 encourages NCs and DCPCs to provide 'data reduction' services via WIS that process 'big data' to create results or products that are small enough to be conveniently downloaded and used by those with minimal technical infrastructure
* *Principle 6: WIS 2.0 will add open standard messaging protocols that use the publish-subscribe message pattern to the list of data exchange mechanisms approved for use within WIS and GTS*
* Principle 7: WIS 2.0 will require all services that provide real-time distribution of messages to cache/store the messages for a minimum of 24-hours, and allow users to request cached messages for download
* Principle 7: WIS 2.0 will require all services that provide real-time distribution of messages to cache/store the messages for a minimum of 24 hours, and allow users to request cached messages for download
* Principle 8: WIS 2.0 will adopt direct data exchange between provider and consumer
* Principle 9: WIS 2.0 will phase out the use of routing tables and bulletin headers
* *Principle 10: WIS 2.0 will provide a Catalogue containing metadata that describes both data and the service(s) provided to access that data*
* *Principle 11: WIS 2.0 encourages data providers to publish metadata describing their data [EF1] and Web services in a way that can be indexed by commercial search engines*
* *Principle 11: WIS 2.0 encourages data providers to publish metadata describing their data and Web services in a way that can be indexed by commercial search engines*

==== Discovery metadata design considerations

Expand Down Expand Up @@ -84,7 +84,7 @@ description of features that are relevant to WIS 2.0 metadata and search, and ar
* As an NWP center operator I want to quickly and easily publish information about the data that my centre provides and update it as needed in a (semi)automated way using the information that I already have in my vast databases so that I can concentrate on my core business
* As the leader of a forecasting team of a national meteorological institution, I would like to be able to find more sources of data that might be relevant/useful for the work of my team, notably NWP and satellite imagery so that we could further improve our predictions. That should work for unprocessed outputs of a prediction model or a satellite as well as for services that offer more sophisticated access to the data, e.g. tailing
* As an entrepreneur (start-up) that provides (wants to provide) tailored weather information I want to be able to find services (free or commercial) that provide meteorological data in a cloud or even better, provide customizable processing of such data - to be able to build my own service on top of it. And I want to be able to find out if a new such service appears or if an existing one changes its abilities so that my company can keep on advancing
* As a software developer (working for a national met center or a private company), I would like to find a relevant technical description of the service (API) that my boss wants me to integrate with, so that the declared interoperability becomes reality
* As a software developer (working for a national meteorological centre or a private company), I would like to find a relevant technical description of the service (API) that my boss wants me to integrate with, so that the declared interoperability becomes reality
* As a user I would like to search for real-time observations for a given time and geographical area of interest so that I can have up to date information on weather for my city
* As a web developer I would like to access to a search API that provides easy to read documentation, examples, and a simple, intuitive RESTful API with JSON so that I can integrate into my web application quickly
* As a GIS professional, I would like to search for weather/climate/water data from my GIS Desktop support tool so that I can integrate forecast data into my workflow
Expand Down
41 changes: 37 additions & 4 deletions standard/sections/clause_7_normative_text.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ include::../requirements/core/REQ_conformance.adoc[]

==== Type

WCMP records can provide descriptive information about a number of different resource types, such as
WCMP records provide descriptive information about a number of different resource types, such as
dataset or services.

include::../requirements/core/REQ_type.adoc[]
Expand All @@ -49,7 +49,7 @@ include::../requirements/core/REQ_title.adoc[]

==== Description

A WCMP record can have a `+properties.description+` property, which is a free-text summary description of the
A WCMP record has a `+properties.description+` property, which is a free-text summary description of the
resource the provider wishes to make discoverable.

include::../requirements/core/REQ_description.adoc[]
Expand All @@ -69,6 +69,39 @@ forth as a specific theme/concept.

include::../requirements/core/REQ_themes_topic_hierarchy.adoc[]

==== Geospatial Extent

A WCMP record has a `+properties.extent.spatial.bbox+` item property, which provides the ability to list 1..n
minimum bounding geometries for a given dataset collection, where:

* minx: westernmost coordinate of the limit of the dataset extent, expressed in longitude decimal degrees as a
signed number between -180 and 180, less than or equal to maxx
* miny: southernmost coordinate of the limit of the dataset extent, expressed in latitude decimal degrees as a
signed number between -90 and 90, less than or equal to maxy
* maxx: easternmost coordinate of the limit of the dataset extent, expressed in longitude decimal degrees as a
signed number between -180 and 180, greater than or equal to minx
* maxy: northernmost coordinate of the limit of the dataset extent, expressed in latitude decimal degrees as a
signed number between -90 and 90, greater than or equal to miny

This property also facilitates catalogue searches with spatial predicate (within extent, etc.).

TODO: resolve https://github.com/opengeospatial/ogcapi-records/issues/168

include::../requirements/core/REQ_geospatial_extent.adoc[]
include::../recommendations/core/REC_geospatial_extent-brevity.adoc[]
include::../recommendations/core/REC_geospatial_extent-point.adoc[]
include::../recommendations/core/PER_geospatial_extent.adoc[]

==== Temporal Extent

A WCMP record has a `+properties.extent.temporal+` item property, which provides the ability to list 1..n
temporal extents as time instants or time periods. Temporal extents can be fully bound or open in either direction
(e.g. until or before. A temporal definition also includes resolution to be able express the granularity to
which a given dataset's data is measured/generated/reported.

include::../requirements/core/REQ_temporal_extent.adoc[]
include::../recommendations/core/REC_temporal_extent.adoc[]

==== Providers

A WCMP record can be one or more providers as part of the `+properties.providers+` property. These elements
Expand Down Expand Up @@ -114,8 +147,8 @@ are no limitations, the category `+NoLimitation+` can be used. (TODO: can this b
[horizontal]
_Note_::
1. _Further information on the description of data policy is provided in the Guide to the WMO Information System (WMO-No. 1061) footnote:[https://library.wmo.int/doc_num.php?explnum_id=10257]
2. _The WIS 2 Global Cache will only cache data classified as `+core+`. Data classified as `+recommended+` and `+other+` will
not be cached by the Global Cache. They will be provided directly by WIS 2 Nodes, eventually having further conditions._
2. _The WIS 2.0 Global Cache will only cache data classified as `+core+`. Data classified as `+recommended+` and `+other+` will
not be cached by the Global Cache. They will be provided directly by WIS 2.0 Nodes, eventually having further conditions._

WMO data policy is considered to be a *legal constraint applying to both usage and access*.

Expand Down
4 changes: 2 additions & 2 deletions standard/standards.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
== Standards

The standards put forth in this pilot are a clean break from WIS 1.0 standards (OAI-PMH, SRU, ISO 19115/19139)
in order to lower the barrier to entry/implementation for a vast range of users/actors. The WIS 1.0 standards
The standards put forth in this pilot are a clean break from the initial WIS standards (OAI-PMH, SRU, ISO 19115/19139)
in order to lower the barrier to entry/implementation for a vast range of users/actors. The initial WIS standards
for search and metadata, applying a Service-Oriented Architecture (SOA), while applicable for their purpose at
the time, present the following challenges in current web architecture:

Expand Down

0 comments on commit c05c291

Please sign in to comment.