You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: extensions/schemas/standard/annex_bibliography.adoc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@
7
7
8
8
[[ogc-link-relations]] Open Geospatial Consortium (OGC). **OGC Link Relation Type Register** [online, viewed 2023-10-14], Available at http://www.opengis.net/def/rel
9
9
10
-
[[OpenAPI]] OpenAPI Initiative (OAI). **OpenAPI Specification 3.0** [online, viewed 2023-10-14]. 2020. Available at http://spec.openapis.org/oas/v3.0.3
10
+
[[OpenAPI]] OpenAPI Initiative (OAI). **OpenAPI Specification 3.1** [online, viewed 2025-07-14]. 2024. Available at http://spec.openapis.org/oas/v3.1.1
11
11
12
12
[[rfc6906]] Internet Engineering Task Force (IETF). RFC 6906: **The 'profile' Link Relation Type**. Edited by E. Wilde. 2013. Available at https://www.rfc-editor.org/rfc/rfc6906.html
Copy file name to clipboardExpand all lines: extensions/schemas/standard/clause_0_front_material.adoc
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ The main reasons for using JSON Schema are:
25
25
26
26
This Standard specifies basic provisions for schemas that are applicable to any type of geospatial data as well as general provision for profiles. These provisions are not specific to features and as such could be copied in or moved to OGC API - Common in the future.
27
27
28
-
Additional provisions are added for <<rc_core-roles-features,schemas for feature data>>.
28
+
Additional provisions are added for <<rc_advanced-property-roles,schemas for feature data>>.
29
29
30
30
In OGC Web APIs, geospatial data is shared in collections (path `/collections/{collectionId}`). The schema of items in a collection provides information as to how to interact with the collection.
31
31
@@ -73,7 +73,10 @@ Recipients of this document are requested to submit, with their comments, notifi
73
73
The following organizations submitted this document to the Open Geospatial Consortium (OGC):
74
74
75
75
* CubeWerx Inc.
76
+
* Ecere Corporation
76
77
* interactive instruments
78
+
* Meteorological Service of Canada
79
+
* Natural Resources Canada
77
80
78
81
[big]*v. Submitters*
79
82
@@ -83,4 +86,7 @@ All questions regarding this submission should be directed to the editors or the
83
86
|*Name* |*Affiliation*
84
87
|Panagiotis (Peter) A. Vretanos _(editor)_ |CubeWerx Inc.
^|A |A successful execution of the operation SHALL be reported as a response with a HTTP status code `200`.
38
38
^|B |For responses that use `application/schema+json` as the `Content-Type` of the response, the response SHALL conform to <<rc_schemas>>.
39
+
^|C |The "additionalProperties" member with a value of "true" (the default) or "false" is used to state the expected behavior with respect to properties that are not explicitly declared in the schema. If "additionalProperties" is set to "false", properties that are not explicitly declared in the schema SHALL NOT be allowed, otherwise they SHALL be allowed.
^|A |The GET operation on selected resources SHALL support a query parameter "profile" with the following characteristics (using an OpenAPI Specification 3.0 fragment):
26
+
^|A |The GET operation on selected resources SHALL support a query parameter "profile" with the following characteristics (using an OpenAPI Specification 3.1 fragment):
Copy file name to clipboardExpand all lines: extensions/schemas/standard/clause_14_profile_references.adoc
+2-6Lines changed: 2 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
The Requirements Class "Profiles for references" specifies three profiles for representing references to other resources.
6
6
7
-
NOTE: As with <<rc_references>>, this requirements class can probably be generalized to cover also other types of references, but this requires a better understanding about the types of references that have to be supported.
7
+
The requirements stated in this Standard cover only simple cases. More complex cases, such as references to geospatial data in different collections, are not covered.
8
8
9
9
[cols="2,7",width="90%"]
10
10
|===
@@ -30,13 +30,9 @@ For features, the query parameter "profile" will be applicable to the GET operat
^|A |In the profile "rel-as-key" (`\http://www.opengis.net/def/profile/OGC/0/rel-as-key`) a reference in the response SHALL be represented by:
34
-
35
-
- The `resourceId` of the referenced resource (a string or integer, depending on the type of the identifier property in the referenced collection), if the property with role "reference" has the keyword "x-ogc-collectionId" with a string value (a fixed collection).
33
+
^|A |In the profile "rel-as-key" (`\http://www.opengis.net/def/profile/OGC/0/rel-as-key`) a reference in the response SHALL be represented by the `resourceId` of the referenced resource (a string or integer, depending on the type of the identifier property in the referenced collection), if the property with role "reference" has the keyword "x-ogc-collectionId" with a string value (a fixed collection).
36
34
|===
37
35
38
-
NOTE: What should be provided, if "x-ogc-collectionId" is an array (that is, the referenced resources/features may be in different collections)? A string that combines the `collectionId` and `resourceId`? An object with `collectionId` and `resourceId` properties?
39
-
40
36
[[example_14_1]]
41
37
.Encoding of a road accident feature in GeoJSON and profile "rel-as-key"
Copy file name to clipboardExpand all lines: extensions/schemas/standard/clause_2_conformance.adoc
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ This Standard defines the following requirements classes, grouped by their stand
4
4
5
5
* Schema for a collection of data
6
6
** <<rc_schemas>> specifies basic provisions for schemas of items in a collection of geospatial data, for example, features, and the representation of a schema in JSON Schema.
7
-
** <<rc_core-roles-features>> specifies additional property roles for feature data.
7
+
** <<rc_advanced-property-roles>> specifies additional property roles for geospatial data, in particular, feature data.
8
8
** <<rc_references>> specifies additional provisions for properties that reference another resource.
9
9
** <<rc_profile-codelists>> specifies two profiles for representing values from a codelist in a schema.
10
10
** <<rc_profile-domains>> specifies two profiles for representing value domains of a property in a schema.
@@ -25,13 +25,13 @@ Conformance with this Standard shall be checked using all the relevant tests spe
Copy file name to clipboardExpand all lines: extensions/schemas/standard/clause_7_schemas.adoc
+9-6Lines changed: 9 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,12 +2,14 @@
2
2
[#rc_{req-class}]
3
3
== Requirements Class "Schemas"
4
4
5
-
The Requirements Class "Schemas" specifies basic provisions for schemas of items in a data collection, such as the features in a feature collection, and the representation of a schema in JSON Schema. The schema represents a logical model, independent of the format in which the web resource is encoded.
5
+
The Requirements Class "Schemas" specifies basic provisions for schemas for a collection of geospatial data, such as the features in a feature collection, and the representation of a schema in JSON Schema.
6
+
7
+
The schema represents a logical model, independent of the format in which the data is encoded when a representation is requested via a HTTP request.
^|A |Each property SHALL include a "type" member, except for spatial properties.
42
44
^|B |Each spatial property SHALL not include a "type" or "$ref" member.
43
-
^|C |Each spatial property SHALL include a "format" member with a string value "geometry", followed by a hyphen, followed by the name of the geometry type in lower case. I.e., the values for the Simple Feature geometry types are: "geometry-point", "geometry-multipoint", "geometry-linestring", "geometry-multilinestring", "geometry-polygon", "geometry-multipolygon", and "geometry-geometrycollection". In addition, the following special values are supported: "geometry-any" as the wildcard for any geometry type, "geometry-point-or-multipoint" for a Point or MultiPoint, "geometry-linestring-or-multilinestring" for a LineString or MultiLineString, and "geometry-polygon-or-multipolygon" for a Polygon or MultiPolygon.
45
+
^|C |Each spatial property SHALL include a "format" member with a string value "geometry", followed by a hyphen, followed by the name of the geometry type in lower case. I.e., the values for the core Simple Feature geometry types are: "geometry-point", "geometry-multipoint", "geometry-linestring", "geometry-multilinestring", "geometry-polygon", "geometry-multipolygon", and "geometry-geometrycollection". In addition, the following special values are supported: "geometry-any" as the wildcard for any geometry type, "geometry-point-or-multipoint" for a Point or MultiPoint, "geometry-linestring-or-multilinestring" for a LineString or MultiLineString, and "geometry-polygon-or-multipolygon" for a Polygon or MultiPolygon.
44
46
^|D |Each temporal property SHALL be a "string" literal with the appropriate format (e.g., "date-time" or "date" for instances, depending on the temporal granularity).
45
47
^|E |As a general rule, if the data type of a property has to be more specific than the JSON Schema data types ("number", "integer", "string"), the "format" keyword SHALL be used.
46
48
^|F |Properties that are only applicable when creating new data or updating existing data SHALL include "writeOnly: true".
47
49
^|G |Properties that are only applicable when data is fetched SHALL include "readOnly: true".
48
-
^|H |The "additionalProperties" member with a value of "true" (the default) or "false" is used to state the expected behavior with respect to properties that are not explicitly declared in the schema. If "additionalProperties" is set to "false", properties that are not explicitly declared in the schema SHALL NOT be allowed, otherwise they SHALL be allowed.
49
50
|===
50
51
51
52
The following recommendations are intended to simplify parsing a schema and to help understanding the meaning and representation of the properties:
@@ -66,17 +67,19 @@ The following recommendations are intended to simplify parsing a schema and to h
66
67
^|J |Properties that represent a 64-bit signed integer SHOULD be represented as an integer with format "int64" (defined in OpenAPI 3.1).
67
68
^|K |Properties that represent a 32-bit unsigned integer SHOULD be represented as an integer with format "uint32".
68
69
^|L |Properties that represent a 64-bit unsigned integer SHOULD be represented as an integer with format "uint64".
69
-
^|M |In general, "format" values SHOULD be from the JSON Schema specifciation, the OpenAPI 3.1 specification or the OGC format register (to be established).
70
+
^|M |In general, "format" values SHOULD be from the JSON Schema specifciation, the OpenAPI 3.1 specification or the OGC format register.
70
71
^|N |For string properties, "minLength", "maxLength", "enum" and/or "pattern" SHOULD be provided, where applicable.
71
72
^|O |For numeric properties, "multipleOf", "minimum", "exclusiveMinimum", "maximum", "exclusiveMaximum" SHOULD be provided, where applicable.
72
73
^|P |For integer properties that represent enumerated values (except for codelist values), "enum" SHOULD be provided.
73
74
^|Q |For string or integer properties that represent codelist values, one of the profiles "codelist-inline" or "codelist-ref" (see <<rc_profile-codelists>>) SHOULD be applied.
74
-
^|R |For array properties, the property SHOULD consist of items that are stringsor numbers.
75
+
^|R |For array properties, the property SHOULD consist of items that are strings, numbers or objects.
75
76
^|S |Required properties SHOULD be included in "required".
76
77
^|T |The JSON Schema keywords SHOULD be constrained to those mentioned in this recommendation, requirement `/req/{req-class}/properties` and requirements in the _additional keywords_ section below.
77
78
^|U |"$ref" SHOULD NOT be used, schemas that are reused SHOULD be dereferenced and represented inline.
78
79
|===
79
80
81
+
NOTE: The OGC format register needs to be established.
Copy file name to clipboardExpand all lines: extensions/schemas/standard/clause_8_advanced_property_roles.adoc
+24-15Lines changed: 24 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,28 +1,28 @@
1
-
:req-class: core-roles-features
1
+
:req-class: advanced-property-roles
2
2
[#rc_{req-class}]
3
-
== Requirements Class "Core roles for features"
3
+
== Requirements Class "Advanced property roles"
4
4
5
-
The Requirements Class "Core roles for features" specifies additional property roles for feature data.
5
+
The Requirements Class "Advanced property roles" specifies additional property roles for geospatial data. These roles are in particular applicable to feature data.
|Target type |Schema for a collection of geospatial data
11
11
|Dependency |<<rc_schemas>>
12
12
|===
13
13
14
-
To understand how features are encoded in a specific format, additional property roles need to be identified in the logical schema. These roles depend on the format.
14
+
To understand how geospatial data is represented in a specific data format, additional property roles need to be identified in the logical schema. The mapping of the roles to the data representation depends on the format.
15
15
16
-
For example, the role "primary-geometry" is needed in feature types with multiple spatial properties to decide:
16
+
For example, the role "primary-geometry" is needed in feature types with multiple spatial properties to decide, for example:
17
17
18
18
* Which geometry is encoded as the geometry of a feature in formats such as FlatGeobuf, Shapefile or Mapbox Vector Tiles, which only support a single geometry; or,
19
19
* Which geometry is encoded in the "geometry" member in GeoJSON.
20
20
21
-
The other roles specified in this requirements class support feature formats that support representing primary temporal information or the type of the feature, such as JSON-FG.
21
+
The other roles specified in this requirements class support formats that support representing primary temporal information or the type, such as JSON-FG.
22
22
23
23
=== Primary geometry
24
24
25
-
If the features have multiple spatial properties, the role "primary-geometry" can be used to identify the primary geometry of the features.
25
+
If the schema defines multiple spatial properties, the role "primary-geometry" can be used to identify the primary geometry property.
26
26
27
27
:req: role-primary-geometry
28
28
[#{req-class}_{req}]
@@ -38,7 +38,7 @@ NOTE: Since only a single property can be tagged in the schema as the primary ge
38
38
39
39
=== Primary temporal information
40
40
41
-
If the features have multiple temporal properties, the roles "primary-instant", "primary-interval-start" and "primary-interval-end" can be used to identify the primary temporal information of the features.
41
+
If the schema defines multiple temporal properties, the roles "primary-instant", "primary-interval-start" and "primary-interval-end" can be used to identify the primary temporal information.
42
42
43
43
:req: role-primary-instant
44
44
[#{req-class}_{req}]
@@ -68,20 +68,29 @@ If the features have multiple temporal properties, the roles "primary-instant",
68
68
^|B |At most one property in a schema SHALL have "x-ogc-role" with a value "primary-interval-end".
^|A |If a schema has a property with role "primary-instant", the schema SHALL NOT have properties with role "primary-interval-start" or "primary-interval-end".
77
-
^|B |If a schema has properties with both roles "primary-interval-start" and "primary-interval-end", both properties SHALL have the same temporal granularity ("date" or "date-time").
76
+
^|A |A property with "x-ogc-role" set to "primary-interval" SHALL be a temporal property.
77
+
^|B |At most one property in a schema SHALL have "x-ogc-role" with a value "primary-interval".
78
78
|===
79
79
80
-
NOTE: FUTURE WORK? Consider adding a role "primary-interval" with a proper representation of an interval, e.g., the interval representation in JSON-FG (an array with two dates or timestamps).
^|A |If a schema has a property with role "primary-instant", the schema SHALL NOT have properties with role "primary-interval-start", "primary-interval-end", or "primary-interval".
86
+
^|B |If a schema has a property with role "primary-interval", the schema SHALL NOT have properties with role "primary-interval-start", "primary-interval-end", or "primary-instant".
87
+
^|C |If a schema has properties with both roles "primary-interval-start" and "primary-interval-end", both properties SHALL have the same temporal granularity ("date" or "date-time").
88
+
^|D |If a schema has a property with only one the roles "primary-interval-start" or "primary-interval-end", the primary temporal information SHALL be the half-bounded interval with the specified start or end.
89
+
|===
81
90
82
-
=== Feature type
91
+
=== Type
83
92
84
-
If the features have a property that represents the feature type, the role "type" can be used for this property.
93
+
If the data is organized as features with a property representing the feature type, the role "type" can be used for this property.
0 commit comments