EO Collection GeoJSON(-LD) Encoding
Approved
OGC Best Practice
License Agreement
Permission is hereby granted by the Open Geospatial
Consortium, (“Licensor”), free of charge and subject to the terms set
forth below, to any person obtaining a copy of this Intellectual Property and
any associated documentation, to deal in the Intellectual Property without
restriction (except as set forth below), including without limitation the
rights to implement, use, copy, modify, merge, publish, distribute, and/or
sublicense copies of the Intellectual Property, and to permit persons to whom
the Intellectual Property is furnished to do so, provided that all copyright notices
on the intellectual property are retained intact and that each person to whom
the Intellectual Property is furnished agrees to the terms of this Agreement.
If you modify the Intellectual Property, all copies of
the modified Intellectual Property must include, in addition to the above
copyright notice, a notice that the Intellectual Property includes
modifications that have not been approved or adopted by LICENSOR.
THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT
CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD.
THE INTELLECTUAL PROPERTY IS PROVIDED “AS
IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS
INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE
INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE
INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE
INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO
EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY
RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT,
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT
OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR
PERFORMANCE OF THIS INTELLECTUAL PROPERTY.
This license is effective until terminated. You may
terminate it at any time by destroying the Intellectual Property together with
all copies in any form. The license will also terminate if you fail to comply
with any term or condition of this Agreement. Except as provided in the
following sentence, no such termination of this license shall require the
termination of any third party end-user sublicense to the Intellectual Property
which is in force as of the date of notice of such termination. In addition,
should the Intellectual Property, or the operation of the Intellectual
Property, infringe, or in LICENSOR’s sole opinion be
likely to infringe, any patent, copyright, trademark or other right of a third
party, you agree that LICENSOR, in its sole discretion, may terminate this
license without any compensation or liability to you, your licensees or any
other party. You agree upon termination of any kind to destroy or cause to be
destroyed the Intellectual Property together with all copies in any form,
whether held by you or by any third party.
Except as contained in this notice, the name of
LICENSOR or of any other holder of a copyright in all or part of the Intellectual
Property shall not be used in advertising or otherwise to promote the sale, use
or other dealings in this Intellectual Property without prior written
authorization of LICENSOR or such copyright holder. LICENSOR is and shall at
all times be the sole entity that may authorize you or any third party to use
certification marks, trademarks or other special designations to indicate
compliance with any LICENSOR standards or specifications.
This Agreement is
governed by the laws of the Commonwealth of Massachusetts. The application to
this Agreement of the United Nations Convention on Contracts for the
International Sale of Goods is hereby expressly excluded. In the event any
provision of this Agreement shall be deemed unenforceable, void or invalid, such
provision shall be modified so as to make it valid and enforceable, and as so
modified the entire Agreement shall remain in full force and effect. No
decision, action or inaction by LICENSOR shall be construed to be a waiver of
any rights or remedies available to it.
None of the Intellectual Property or underlying information or technology may be downloaded or otherwise exported or reexported in violation of U.S. export laws and regulations. In addition, you are responsible for complying with any local laws in your jurisdiction which may impact your right to import, export or use the Intellectual Property, and you represent that you have complied with any regulations or registration procedures required by applicable law to make this license enforceable.
I.  Abstract
JavaScript Object Notation (JSON)
[NR1]
has been gaining in popularity for encoding data in Web-based applications. JSON consists of sets of objects described by name/value pairs. GeoJSON
[NR2]
is a format for encoding collections of simple geographical features along with their non-spatial attributes using JSON. This OGC Best Practice describes a GeoJSON
[NR2]
and JSON-LD
[NR13]
encoding for Earth Observation (EO) metadata for collections (dataset series). This standard can be applied to encode metadata based on the OGC 11-035r1
[OR20]
or ISO19139
[OR27]
, ISO19139-2
[OR28]
specifications, or as an encoding of the Unified Metadata Model for Collections (UMM-C) conceptual model
[OR2]
The GeoJSON encoding defined in this document is defined as a compaction
through a normative context, of the proposed JSON-LD encoding, with some extensions as presented in section 8 of this document. Therefore, the JSON-LD encoding can also be applied to other RDF
[OR8]
encodings including RDF/XML
[OR11]
and RDF Turtle
[OR12]
This document makes no assumptions as to the “service” interfaces through which the metadata are accessed and applies equally well to a Service Oriented Architecture as well as a Resource Oriented or RESTful Architecture.
GeoJSON is a format for encoding collections of simple geographical features along with their non-spatial attributes using JSON. GeoJSON objects may represent a geometry, a feature, or a collection of features. GeoJSON supports the following geometry types derived from the OGC Simple Features specification: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection. Features in GeoJSON contain a geometry object and additional properties, and a feature collection represents a list of features.
JSON is human readable and easily parseable. However, JSON is schemaless. JSON and GeoJSON documents do not include an explicit definition of the structure of the JSON objects contained in them. Therefore, this standard is based on a normative JSON-LD context which allows each property to be explicitly defined as a URI. Furthermore, the JSON encoding is defined using JSON Schema
[OR7]
which allows validation of instances against these schemas.
II.  Keywords
The following are keywords to be used by search engines and
document catalogues.
ogcdoc, ogc documents, Earth Observation, EO, EO Collection, EO Dataset, EO Dataset Series, EO Product, GeoJSON, JSON, JSON-LD, Linked Data, Metadata
III.  Security Considerations
No security considerations have been made for this document.
IV.  Submitting Organizations
The following organizations submitted this Document to the
Open Geospatial Consortium (OGC):
CGI
Con terra GmbH
ESA – European Space Agency
EUMETSAT
Spacebel s.a.
V.  Submitters
All questions regarding this submission should be directed to the editor or the submitters:
Name
Affiliation
Yves Coene
Spacebel s.a.
Uwe Voges
con terra GmbH
Olivier Barois
ESA
Andrea Della Vecchia
ESA
John Taylor
CGI
Michael Schick
EUMETSAT
The editors would like to acknowledge that this work is the result of collaboration and review of many organizations and would like to thank for the comments and contributions from:
CEOS/WGISS
DLR
NASA
VITO
Note: this does not imply a complete endorsement by these organisations.
EO Collection GeoJSON(-LD) Encoding
1.  Scope
This OGC Best Practice defines a GeoJSON
[NR2]
and JSON-LD
[NR13]
encoding of Earth Observation (EO) metadata for collections (a.k.a. dataset series). The Best Practice provides document models for the exchange of information describing EO collections, both within and between different organisations.
EO collections are collections of datasets sharing the same product specification. These collections are also called dataset series as they may be mapped to ‘dataset series’ following the terminology defined in ISO 19113, ISO 19114, and ISO 19115. An EO collection typically corresponds to a series of EO datasets (also called EO products) derived from data acquired:
Either from an instrument in a dedicated mode on board a single satellite platform; or
by a series of instruments, possibly from different satellite platforms, but in this case working in the same instrument mode.
Examples of EO dataset series are, for instance, datasets stemming from satellite platforms such as ‘TerraSAR-X spotlight mode,’ ‘ESA Envisat MERIS Full Resolution L1+2,’ or ‘SPOT multispectral 10 m resolution.’ However, there is a tendency to group products into dataset series following other kinds of criteria such as range of resolution or product quality (e.g., snow collections or cloud-free collections).
Figure 1 — EO Collection Metadata Simlified Conceptual Model from
[OR19]
The implementation is derived from the conceptual models defined in OGC 11-035r1
[OR19]
, itself based on ISO19115:2003
[OR22]
, ISO19139:2007
[OR27]
and ISO19139-2
[OR28]
, and the Unified Metadata Model for Collections (UMM-C)
[OR2]
Figure 2 — Unified Metadata Model for Collections
[OR2]
1.1.  Design Approach and Rationale
This section is non-normative.
The response encoding defined in the current document satisfies the following design goals.
Feature-based GeoJSON model: The model maximises reuse of pre-existing standardized property names. Whereever possible, existing properties from the GeoJSON
[NR2]
and OWS Context
[NR5]
Feature objects are used for modeling EO Collection properties instead of proposing new property names. Existing properties are extended where needed (e.g., links).
Simplicity: This document does not describe the full information models or XML encodings referred to above. The original metadata models should be referred to for these details. This Best Practice intends to provide a simpler, overarching exchange format integrating comments from the Committee on Earth Observation Satellites (CEOS) Working Group on Information Systems and Services (WGISS) community, which supported the submission of this Best Practice to the OGC.
Convergence: A final design goal is to aim for future convergence of the proposed JSON-LD mapping with GeoDCAT-AP
[OR15]
. This requires future work.
1.2.  Document Outline
Hereafter a brief outline of the document content allows readers to jump directly to the topic of their interest.
Chapter 3
lists the normative and informative references used in this document.
Chapter 4
defines the main terms used in the document.
The conventions used in this document are explained in
Chapter 5
;.
Chapter 6
gives an overview.
Chapter 7
specifies the proposed GeoJSON encoding.
Chapter 8
describes how the encoding can be extended with additional properties and describes the extension to JSON-LD which allows for describing multi-dimensional arrays as allowed by GeoJSON.
Chapter 9
provides information about the expected MIME media types which correspond to the proposed encodings.
Chapter 10
describes future work.
Finally, the following information was moved to the appendices.
Annex A
defines the Abstract Test Suite for the specification.
Annex B
includes normative JSON-LD @context definitions that allow interpreting the GeoJSON encoding as JSON-LD.
Annex C.1
presents the mapping of the properties proposed in this specification to the OGC 11-035r1 and UMM-C Conceptual Models.
Annex D
contains the complete listing of examples illustrating the encodings defined in this document.
Annex E
includes the JSON schema definitions defining the GeoJSON encoding.
Annex F
explains where the schema file, context file, and examples can be found in the OGC schema repository.
Annex G
provides the revision history of this document.
2.  Conformance
2.1.  Conformance to base specifications
This section describes the compliance testing required for an implementation of this Best Practice.
2.2.  Conformance classes
The framework, concepts, and methodology for testing, and the criteria to be achieved in order to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site
Annex A defines a set of tests and conformance classes that will support various applications with a range of different requirements. The following conformance classes are distinguished. Testing is based on data validation. In order to conform to this OGC Best Practice, an implementation shall implement all conformance classes specified in Annex A (normative).
Table 1 — Conformance classes related to data instances
Conformance Class
Description
Clause
conf/feature
Single EO Collection objects.
Section 7.1
conf/properties
Properties objects.
Section 7.1.1
conf/metadata-information
MetadataInformation objects
Section 7.2
conf/data-identification
DataIdentification objects
Section 7.3
conf/data-contact
DataContact objects
Section 7.3.2
conf/attribution
Attribution objects
Section 7.3.3
conf/activity
Activity objects
Section 7.3.6
conf/association
Association objects
Section 7.3.8
conf/plan
Plan objects
Section 7.3.9
conf/resource-constraints
ResourceConstraint objects
Section 7.4
conf/descriptive-keywords
DescriptiveKeywords objects
Section 7.5
conf/related-url
RelatedUrl objects
Section 7.6
conf/links
Links objects
Section 7.6.1
conf/offering
Offering objects
Section 7.6.3
conf/spatial-information
Spatial information objects
Section 7.7
conf/geometry
Geometry objects
Section 7.7.1
conf/temporal-information
TemporalInformation objects
Section 7.8
conf/acquisition-information
AcquisitionInformation
Section 7.9
conf/product-information
ProductInformation
Section 7.10
3.  Normative references
The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies.
Hyperlinks to Normative References within this document will be listed as [NR*] and will map to below reference [*]. Bibliographic references will be labeled as [OR*] to map to the references in the bottom section.
3.1.  Normative References
[1]  The JavaScript Object Notation (JSON) Data Interchange Format, 2014,
[2]  The GeoJSON Format, 2016,
[3]  OGC OpenSearch-EO GeoJSON(-LD) Response Encoding Standard, 2020,
[4]  OGC EO Dataset Metadata GeoJSON(-LD) Encoding Standard, 2020,
[5]  OGC OWS Context GeoJSON Encoding, 2017,
[6]  OGC Web Services Common Standard, Version 2.0.0, 2010,
[7]  Uniform Resource Identifiers (URI): Generic Syntax, 2005,
[8]  Internationalised Resource Identifiers (IRIs), 2005,
[9]  Hypertext Transfer Protocol – HTTP/1.1, 1999
[10]  Web Linking, 2010,
[11]  ECMAScript Language Specification, Edition 5.1, Standard ECMA-262, 2011,
[12]  The JSON Data Interchange Format, 2017,
[13]  A JSON-based Serialisation for Linked Data, W3C Recommendation, 2014,
3.2.  Bibliography
[1]  Unified Metadata Model Common Elements, Version 1.10, 18/01/2018,
[2]  Unified Metadata Model for Collections (UMM-C), Version 1.10, 18/01/2018,
[3]  Dublin Core Metadata Initiative, DCMI Metadata Terms, 14/06/2012,
[4]  JSON-LD 1.0 Processing Algorithms and API, W3C Recommendation 16 January 2014,
[5]  OGC 12-084r2, OWS Context Atom Encoding Standard, 09/12/2013,
[6]  OGC 15-053, Implementing JSON/GeoJSON in an OGC Standard ER, Joan Masó.
[7]  JSON Schema,
[8]  RDF 1.1 Primer, W3C Working Group Note 25 February 2014,
[9]  RDF 1.1 Concepts and Abstract Syntax, W3C Recommendation 25 February 2014,
[10]  RDF Schema 1.1, W3C Recommendation 25 February 2014,
[11]  RDF 1.1 XML Syntax, W3C Recommendation 25 February 2014,
[12]  RDF 1.1 Turtle, Terse RDF Triple Language, W3C Recommendation 25 February 2014,
[13]  Data Catalog Vocabulary (DCAT), W3C Recommendation 16 January 2014,
[14]  RFC 4287, The Atom Syndication Format, December 2005,
[15]  GeoDCAT-AP: A geospatial extension to DCAT application profiles for data portals in Europe, Version 1.0.1, 02/08/2016,
[16]  Google JSON Style Guide, Revision 0.9,
[17]  W3C vCard Ontology — for describing People and Organizations, W3C Interest Group Note 22 May 2014,
[18]  GeoJSON-LD Vocabulary,
[19]  OGC 11-035r1, EO Product Collection, Service and Sensor Discovery using the CS-W ebRIM Catalog, Version 1.0, 26/03/2013.
[20]  FOAF Vocabulary Specification 0.99, Namespace Document 14 January 2014 – Paddington Edition,
[21]  JSON-LD 1.1, “A JSON-based Serialisation for Linked Data”, W3C Proposed Recommendation, 07 May 2020,
[22]  OGC 08-167r2, Semantic Annotations in OGC Standards, Version 2.0, 10/10/2012,
[23]  OGC 11-052r4, OGC GeoSPARQL – A Geographic Query Language for RDF Data, Version 1.0,
[24]
[25]  Data Catalog Vocabulary (DCAT) – Version 2, W3C Recommendation 04 February 2020,
[26]  ISO 19115:2003/Cor 1:2006, Geographic Information – Metadata – Implementation specification,
[27]  ISO 19139, Geographic Information – Metadata XML (ISO 19139:2007),
[28]  ISO 19139-2:2012, Geographic information — Metadata — XML schema implementation — Part 2: Extensions for imagery and gridded data,
[29]  Dublin Core Metadata Initiative term declarations represented in RDF schema language,
[30]  W3C PROV-O: The PROV Ontology, W3C Recommendation 30 April 2013,
[31]  SKOS Simple Knowledge Organization System Reference, W3C Recommendation 18 august 2009,
[32]  European Commission, ISA Programme, “ISA Programme Location Core Vocabulary,” 2015,
[33]  Technical Guidance for the implementation of INSPIRE dataset and service metadata based on ISO/TS 19139:2007, Version 2.0.1, 2017-03-02,
4.  Terms and definitions
For the purposes of this document,
the following terms and definitions apply.
This document uses the terms defined in Sub-clause 5.3 of OGC 06-121r9
[NR6]
, which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this Best Practice.
For the purposes of this document, the following additional terms and definitions apply.
4.1.
compaction
While expansion removes context from a given input, compaction’s primary function is to perform the opposite operation: to express a given input according to a particular context. Compaction applies a context that specifically tailors the way information is expressed for a particular person or application. This simplifies applications that consume JSON or JSON-LD by expressing the data in application-specific terms, and it makes the data easier to read by humans
[OR4]
4.2.
collection
A Collection or a Dataset Series (in short Series) defines a container for a list of Products (or datasets) that have common properties. Products inherit all the Collection properties that are not explicitly overridden.
4.3.
context
A set of rules for interpreting a JSON-LD document as specified in the section “The Context” of the JSON-LD specification
[NR13]
4.4.
dataset
Observations obtained by satellite instruments (OGC 10-140). See granule and product.
4.5.
Domain (RDF)
Domain (rdfs:domain) is used to state that any resource that has a given property is an instance of one or more classes
[OR10]
4.6.
embedding
Embedding is a JSON-LD feature that allows using node objects as property values
[NR13]
4.7.
expansion
The algorithm that removes [JSON-LD] context is called expansion
[OR4]
4.8.
fatal exception
A server supplies exceptions (diagnostics) in the response as appropriate. A diagnostics is fatal or non-fatal. A fatal diagnostic is generated when the execution of the request cannot proceed and no results are available. For example, if the client supplied an invalid query there might be nothing that the server can do. A non-fatal diagnostic is one where processing may be affected but the server can continue (See section 2.9 of
[OR2]
).
4.9.
GeoJSON
A geospatial data interchange format based on Javascript Object Notation (JSON)
[NR2]
4.10.
identifier
A character string that may be composed of numbers and characters that is exchanged between the client and the server with respect to a specific identity of a resource.
4.11.
JSON
A lightweight, text-based, language-independent data interchange format, based on the Javascript programming language.
4.12.
JSON Schema
JSON Schema is a JSON media type for defining the structure of JSON data. JSON Schema provides a contract for what JSON data is required for a given application and how to interact with it
[OR7]
4.13.
Product
A Product or a Dataset corresponds to an identifiable collection of data under one single identifier. It is independent of a physical form or an encoding even if it is normally distributed in a single file.
4.14.
Range (RDF)
Range (rdfs:range) is used to state that values of a property are instances of one or more classes
[OR10]
4.15.
RDF Triple
An RDF triple consists of three components: the subject, the predicate and the object. An RDF triple is conventionally written in the order subject, predicate, object.
[OR9]
4.16.
service interface
Shared boundary between an automated system or human being and another automated system or human being [ISO 19101].
5.  Conventions
This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document.
5.1.  Abbreviated terms
Some frequently used abbreviated terms:
API
Application Programming Interface
ATS
Abstract Test Suite
CEOS
Committee on Earth Observation Satellites
EO
Earth Observation
EOP
Earth Observation Product
GML
Geography Markup Language
HTTP
HyperText Transfer Protocol
IRI
Internationalised Resource Identifier
ISO
International Organisation for Standardisation
JSON
JavaScript Object Notation
JSON-LD
JavaScript Object Notation for Linked Data
OASIS
Organization for the Advancement of Structured Information Standards
OGC
Open Geospatial Consortium
O&M
Observations and Measurements
OWC
OGC Web Services Context
RDF
Resource Description Framework
RDFS
RDF Schema
REST
Representational State Transfer
SI
International System of Units (French: Système international d’unités)
SRU
Search/Retrieval via URL
UML
Unified Modeling Language
UMM
Unified Metadata Model
URI
Uniform Resource Identifier
URL
Uniform Resource Locator
URN
Uniform Resource Name
W3C
World Wide Web Consortium
WGISS
Working Group on Information Systems and Services
WKT
Well-Known Text
XML
eXtensible Markup Language
XSD
XML Schema Definition Language
5.2.  Symbols
5.2.1.  Symbols and abbreviated terms
The schema diagrams
included in the document show the JSON structure expressed in JSON Schema
[OR7]
and documented in Annex E.1.
Table 2 — JSON Schema diagram symbols
JSON Schema Entity
Representation
Description
Definition
Definitions are shown as blue rectangles with solid borders.
Mandatory property
Mandatory properties are shown with solid borders.
Optional property
Optional properties are shown with dashed borders.
Property of type “Object” referring to a “Definition” of the Object.
The “Def” attribute inside a rectangle representing a property of type Object refers to the corresponding Object definition.
Pattern property
A pattern property defines the property’s name as a regular expression. There are no minimum or maximum occurrence settings for a pattern property.
Unspecified property
A property can be implicitly specified by adding a suitable pattern property or property wildcard.
“All Of” operator
Contains one or more sub-schemas (definitions), added as children of the operator. An instance is valid if it is valid against all these sub-schemas.
“Any Of” operator
Contains one or more sub-schemas (definitions), added as children of the operator. An instance is valid if it is valid against at least one of these sub-schemas.
“One Of” operator
Contains one or more sub-schemas (definitions), added as children of the operator. An instance is valid if it is valid against exactly one of these sub-schemas.
Subschema (definitions)
The “Def” attribute inside a rectangle representing a (Sub) Schema refers to the corresponding Object definition.
5.2.2.  Symbols and abbreviated terms
The data dictionary tables in the current document use the JSONPath notation
[OR24]
. A brief overview of this notation is included in the table below which is taken from
[OR24]
XPath
JSONPath
Description
the root object/element
the current object/element
. or []
child operator
//
..
recursive descent. JSONPath borrows this syntax from E4X.
wildcard. All objects/elements regardless their names.
[]
[]
subscript operator. XPath uses it to iterate over element collections and for predicates. In Javascript and JSON it is the native array operator.
[,]
Union operator in XPath results in a combination of node sets. JSONPath allows alternate names or array indices as a set.
[]
?()
applies a filter (script) expression.
5.3.  Namespace abbreviations
The following namespace abbreviations will be used in this document:
Table 3 — Namespace abbreviations
Abbreviation
Full namespace URI
Reference
atom
[OR14]
dcat
[OR13]
dct
[OR29]
eop
[NR4]
foaf
[OR20]
gj
[OR18]
gsp
[OR23]
iana
[NR10]
locn
[OR32]
owc
[OR5]
prov
[OR30]
rdf
[OR11]
rdfs
[OR10]
schema
skos
[OR31]
vcard
[OR17]
xs
xsd
5.4.  Layout and identifiers
The normative provisions in the current document are denoted by the URI
. All requirements and conformance classes that appear in this document are denoted by relative URIs which are relative to this base URI.
5.5.  Style
This document applies the “double quote” guideline defined in
[OR16]
: “If a property requires quotes, double quotes must be used. All property names must be surrounded by double quotes. Property values of type string must be surrounded by double quotes. Other value types (like boolean or number) should not be surrounded by double quotes.”
5.6.  Data dictionary tables
This document includes data dictionary tables with information as per sub-clause 5.5 of OGC 06-121r9
[NR6]
. The following comment applies:
Column 1 provides the JSON property name as well as the corresponding JSONPath
[OR24]
expression.
6.  Overview
This specification defines a GeoJSON-based
[NR2]
serialization syntax for Earth Observation Collection Metadata that conforms to a subset of
[NR13]
syntax constraints but does not require JSON-LD processing. While other serialization forms are possible, such alternatives are not discussed by this document.
When serialized, absent properties are represented by either (a) setting the property value to null, or (b) by omitting the property declaration altogether at the option of the publisher. These representations are semantically equivalent. If a property has an array value, the absence of any items in that array shall be represented by omitting the property entirely or by setting the value to null. The appropriate interpretation of an omitted or explicitly null value is that no value has been assigned as opposed to the view that the given value is empty or nil.
JSON does not have a formal class model. JSON objects are just sets of properties. However, similar to GeoJSON, the JSON encoding described in this Best Practice features a “type” property on each JSON object.
An EO Collection Metadata Document conforming to this Best Practice is a GeoJSON document whose root value is a Feature object, and whose MIME media type corresponds to one of the media types described in chapter 9. The Feature object may or may not be part of a FeatureCollection representing an OpenSearch response document according to OGC 17-047r1
[NR3]
6.1.  JavaScript Object Notation
JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format that defines a small set of formatting rules for the portable representation of structured data. JSON is derived from the object literals of JavaScript, as defined in the ECMAScript Programming Language Standard
[NR11]
and can represent four primitive types (strings, numbers, boolean values, and null) and two structured types (objects and arrays). The ordering of the members or properties of any JSON object is considered irrelevant. Even though JSON is based on a subset of the JavaScript Programming Language it is currently well supported by nearly all programming languages, including Java, Python, and C#.
The JSON format is currently described by two competing standards, RFC7159
[NR1]
and ECMA-404
[NR12]
. Both standards documents are consistent, but the latter defines mainly the grammatical syntax where the former provides some additional semantic and security points.
6.2.  GeoJSON Format Specification
GeoJSON
[NR2]
is a format for encoding collections of simple geographical features along with their non-spatial attributes using JSON. GeoJSON consists of a single object representing a geometry, feature, or collection of features. The geometries supported are Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, and Geometry Collections.
7.  GeoJSON Encoding Specification
7.1.  Requirements class: Feature
Requirement Class: Feature
/req/feature
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
GeoJSON [NR2]
Dependency
/req/geometry
Dependency
/req/properties
Requirement 1:
/req/feature/properties
Requirement 1:
/req/feature/properties
A “Feature” object representing an EO Collection shall implement the properties shown in
Table 4
, with the value matching the type shown, and with the obligation shown.
The Feature object represents the EO Collection (a.k.a. EO Dataset Series). It inherits all properties of the GeoJSON Feature object. In addition, it may contain an optional @context property. The @context properties shall typically be absent in the GeoJSON encoding and implicitly refer to the normative @context defined in
Annex B
Figure 3 — Feature Schema (GeoJSON)
Complete description of Feature is given in
Table 4
. Most properties are inherited from the Feature object defined in
[NR2]
Table 4 — Feature object properties
JSON Property
Definition
Data type and values
Multiplicity and use
@context
$.@context
Optional context property either embedding an actual context or a reference to the normative JSON-LD context defined in Annex B: “normative JSON-LD @context definition”.
See Annex B.1.1.
Property
Zero or one
(optional)
type
$.type
Type of the element. This property is a string with fixed value “Feature”.
Property [RD2]
Range: String
Fixed values: “Feature”
One (mandatory)
id
$.id
Unique identifier for the EO Collection (IRI).
Property [RD5]
Range: String
One
(mandatory)
bbox
$.bbox
Information on the coordinate range of the geometry object representing the footprint (See
[NR2]
). The value is an array of length 4 (assuming the number of dimensions represented in the contained geometries is 2). Typically, south-west point and north-east point. The value defines a shape with edges that have constant longitude and latitude.
Property
[NR2]
Domain: Feature
Range: Array
Zero or one (optional)
geometry
$.geometry
Contains the description of the geometry of the feature. See section 7.7.
The value shall be either a Geometry object or a JSON null value.
Property
[NR2]
Domain: Feature
Range: Geometry or null value (See section 7.7).
One
(mandatory)
properties
$.properties
Groups all other properties of the Feature not covered by the properties higher in this table as imposed by
[NR2]
. See section 7.1.1.
Property
[NR5]
Domain: Feature
Range: Properties (See
Table 5
One
(mandatory)
Example 1: GeoJSON encoding example
"type": "Feature",
"id": " http://fedeo.esa.int/opensearch/request/?httpAccept=application/geo%2Bjson&parentIdentifier=EOP%3AESA%3AFEDEO&uid=LANDSAT.ETM.GTC",
"bbox": [
-180,
-90,
180,
90
],
"geometry": {...},
"properties": {...}
Example 2: GeoJSON encoding example (with explicit normative @context property)
"@context": "https://www.opengis.net/eoc-geojson/1.0",
"type": "Feature",
"id": " http://fedeo.esa.int/opensearch/request/?httpAccept=application/geo%2Bjson&parentIdentifier=EOP%3AESA%3AFEDEO&uid=LANDSAT.ETM.GTC",
"bbox": [
-180,
-90,
180,
90
],
"geometry": {...},
"properties": {...}
In the remainder of the document, we will not include the @context property in the GeoJSON encoding in which case it is implied as explained in
Annex B.1.1
7.1.1.  Properties
Requirement Class: Properties
/req/properties
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/acquisition-information
Dependency
/req/product-information
Dependency
/req/metadata-information
Dependency
/req/temporal-extent
Dependency
/req/location
Dependency
/req/data-identification
Dependency
/req/related-url
Dependency
/req/descriptive-keywords
Requirement 2:
/req/properties/properties
Requirement 3:
/req/properties/data-identification
Requirement 4:
/req/properties/descriptive-keywords
Requirement 5:
/req/properties/related-url
Requirement 2:
/req/properties/properties
A “Properties” object shall implement the properties shown in
Table 4
, with the value matching the type shown, and with the obligation shown.
Requirement 3:
/req/properties/data-identification
A “Properties” object shall implement the properties of a DataIdentification object (
Table 7
).
Requirement 4:
/req/properties/descriptive-keywords
A “Properties” object shall implement the properties of a DescriptiveKeywords object (
Table 21
).
Requirement 5:
/req/properties/related-url
A “Properties” object shall implement the properties of a RelatedUrl object (
Table 23
).
The Properties block contains the EO Collection properties and hypermedia links to related objects. It inherits all DataIdentification, DescriptiveKeywords and RelatedUrl properties.
Figure 4 — Properties Schema
Complete description of Properties is given in
Table 5
Table 5 — Properties object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.type
Type of the element. This property has the fixed value “Properties”.
Domain: Properties
Range: String
Fixed value: “Properties”
Zero or one (optional)
isPrimaryTopicOf
$.properties.isPrimaryTopicOf
Properties related to the metadata of the EO collection, e.g., metadata dates.
Domain: Properties
Range: MetadataInformation (See
Table 6
Zero or one (optional)
acquisitionInformation
$.properties.acquisitionInformation
Contains product information as presented in
Table 30
Domain: Properties
Range: Array of AcquisitionInformation (See
Table 30
One or more (mandatory)
spatial
$.properties.spatial
Alternative encoding of Geometry (intended for JSON-LD) if compliance with GeoDCAT-AP is mandatory (See also section 8.2).
Domain: Properties
Range: Location (See Table 34)
Zero or one (optional)
temporal
$.properties.temporal
Temporal extent of the collection. Contains same information as
$.properties.date
(DataIdentification).
Domain: Properties
Range: TemporalExtent (See
Table 29
Zero or one (optional)
Example 3: Feature Properties encoding example
"title": "Sentinel-2 Products",
"identifier": "EOP:ESA:Sentinel-2",
"kind": "http://purl.org/dc/dcmitype/Collection",
"rights": "Data are available upon fast registration",
"abstract": "The Sentinel-2 mission is a land monitoring constellation of two satellites that provide high resolution optical imagery and provide continuity for the current SPOT and Landsat missions. The mission provides a global coverage of the Earth's land surface every 10 days with one satellite and 5 days with 2 satellites, making the data of great use in on-going studies. The satellites are equipped with the state-of-the-art MSI (Multispectral Imager) instrument, that offers high-resolution optical imagery.",
"date": "2015-06-23T00:00:00Z/",
"updated": "2018-11-28T15:23:57Z",
"temporal": {
"beginningDateTime": "2015-06-23T00:00:00Z"
},
"isPrimaryTopicOf": {
"updated": "2019-07-17T00:00:00Z",
"published": "2019-07-17T00:00:00Z",
"lang": "en"
},
"categories": [
...
],
"acquisitionInformation": [
"platform": {
"id": "https://earth.esa.int/concept/sentinel-2",
"platformShortName": "Sentinel-2"
},
"instrument": {
"id": "https://earth.esa.int/concept/s2-msi",
"instrumentShortName": "MSI"
],
"productInformation": {
...
},
"links": {
...
7.2.  Requirements class: Metadata Information
Requirement Class: Metadata Information
/req/metadata-information
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/standard
Requirement 6:
/req/metadata-information/properties
Requirement 6:
/req/metadata-information/properties
A “MetadataInformation” object shall implement the properties shown in
Table 6
, with the value matching the type shown, and with the obligation shown.
The MetadataInformation is encoded as a CatalogRecord as defined by DCAT Version 2
[OR25]
with JSON property names consistent with OGC 14-055r2.
Figure 5 — MetadataInformation Schema
Complete description of MetadataInformation is given in
Table 6
Table 6 — MetadataInformation object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.isPrimaryTopOf.type
Type of the element. This property has the fixed value “CatalogRecord”.
Domain: CatalogRecord
Range: String
Zero or one (optional)
created
$.properties.isPrimaryTopicOf.created
Date of creation of the metadata.
Domain: CatalogRecord
Range: DateTime
Zero or one (optional)
updated
$.properties.isPrimaryTopOf.updated
Date of creation or last update of the metadata.
DateTime representation, as defined by RFC 3339, section 5.6.
Domain: CatalogRecord
Range: DateTime
One (mandatory)
published
$.properties.isPrimaryTopicOf.published
Date of first availability of the Metadata Document.
Domain: CatalogRecord
Range: DateTime
Zero or one (optional)
lang
$.properties.isPrimaryTopicOf.lang
Metadata language , not empty with an RFC-3066 code as defined in
[NR5]
, e.g., “en” (English).
Note that resource language is a property of the Data Identification (
Table 7
). See also section II.7 of GeoDCAT-AP
[OR15]
and sections 2.2.2 and 3.1.2.4 of INSPIRE Technical Guidelines
[OR33]
Domain: CatalogRecord
Range: string
Zero or one (optional)
conformsTo
$.properties.isPrimaryTopicOf.conformsTo
An established standard to which the metadata conforms as defined in
[OR25]
Domain: CatalogRecord
Range: Standard
Zero or one (optional)
Example 4: MetadataInformation encoding example
"type": "CatalogRecord",
"updated": "2019-07-17T00:00:00Z",
"published": "2019-07-17T00:00:00Z",
"lang": "en"
7.3.  Requirements class: Data Identification
Requirement Class: Data Identification
/req/data-identification
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/data-dates
Dependency
/req/data-contact
Dependency
/req/resource-constraints
Dependency
/req/provenance-statement
Dependency
/req/activity
Requirement 7:
/req/data-identification/properties
Requirement 8:
/req/data-identification/data-dates
Requirement 9:
/req/data-identification/data-contact
Requirement 10:
/req/data-identification/resource-constraints
Requirement 7:
/req/data-identification/properties
A “DataIdentification” object shall implement the properties shown in
Table 7
, with the value matching the type shown, and with the obligation shown.
Requirement 8:
/req/data-identification/data-dates
A “DataIdentification” object shall implement the properties of a DataDates object (
Table 8
).
Requirement 9:
/req/data-identification/data-contact
A “DataIdentification” object shall implement the properties of a DataContact object (
Table 9
).
Requirement 10:
/req/data-identification/resource-constraints
A “DataIdentification” object shall implement the properties of a ResourceConstraints object (
Table 18
).
The DataIdentification properties are inherited by the Properties block. The DataIdentification inherits all properties of the Datadates, DataContact and ResourceConstraints object.
Figure 6 — DataIdentification Schema
Complete description of DataIdentification is given in
Table 7
Table 7 — DataIdentification object properties
JSON Property
Definition
Data type and values
Multiplicity and use
kind
$.properties.kind
Unique identifier (URI) for the type of the resource. Defined in OGC 17-047r1, DCAT-2 and GeoDCAT-AP (dct:type).
Fixed value:
Range: String
Zero or one (optional)
doi
$.properties.doi
Digital Object Identifier identifying the collection (see
Domain: Properties
Range: String
Zero or one (optional)
title
$.properties.title
Human readable title given to the collection.
Domain: Properties
Range: String
One (mandatory)
identifier
$.properties.identifier
Identifier given to the collection.
Domain: Properties
Range: String
One (mandatory)
bibliographicCitation
$.properties.bibliographicCitation
A bibliographic reference for the resource.
Domain: Properties
Range: string
Zero or one (optional)
lang
$.properties.lang
Resource language, not empty with an RFC-3066 code as defined in
[NR5]
, e.g., “en” (English).
Note that metadata language is a property of the Metadata Information (
Table 6
). See also section II.7 of GeoDCAT-AP
[OR15]
and sections 2.2.2 and 3.1.2.4 of INSPIRE Technical Guidelines
[OR33]
Domain: Properties
Range: string
Zero or one (optional)
conformsTo
$.properties.conformsTo
An established standard to which the resource conforms as defined in
[OR25]
Domain: Properties
Range: Standard
Zero or one (optional)
abstract
$.properties.abstract
Description of the collection content or purpose as defined in
[NR5]
Domain: Properties
Range: string
Zero or one (optional)
versionInfo
$.properties.versionInfo
Version number or other version designation of the service or processing application. Defined in DCAT-AP 1.2 (owl:versionInfo).
Domain: Properties
Range: string
Zero or one (optional)
provenance
$.properties.provenance
Encoding of provenance information.
Domain: Properties
Range: Array of ProvenanceStatement (See
Table 12
Zero or more (optional)
wasUsedBy
$.properties.wasUsedBy
Description of the conformity of the metadata (DQ_ConformanceResult).
Domain: Properties
Range: Array of Activity (See
Table 13
Zero or more (optional)
Example 5: DataIdentification encoding example
"title": "LANDSAT 7 ETM+ (Enhanced Thematic Mapper Plus) Geolocated Terrain Corrected Systematic processing (LANDSAT.ETM.GTC)",
"identifier": "LANDSAT.ETM.GTC",
"kind": "http://purl.org/dc/dcmitype/Collection",
"abstract": "This dataset contains all the Landsat 7 Enhanced Thematic Mapper high-quality ortho-rectified L1T dataset over Kiruna, Maspalomas and Matera visibility masks. The Landsat 7 ETM+ scenes typically covers 185 x 170 km. A standard full scene is nominally centred on the intersection between a Path and Row (the actual image centre can vary by up to 100m). Each band requires 50MB (uncompressed), and Band 8 requires 200MB (panchromatic band with resolution of 15m opposed to 30m).",
"date": "1999-07-01T00:00:00Z/2003-12-31T00:00:00Z",
"updated": "1999-07-01T00:00:00Z",
"authors": [
"type": "Organization",
"email": "mailto:eohelp@eo.esa.int",
"name": "ESA/ESRIN",
"phone": "tel:+39 06 94180777"
],
"contactPoint": [
"type": "Organization",
"email": "mailto:eohelp@eo.esa.int",
"name": "ESA/ESRIN",
"uri": "http://earth.esa.int",
"hasTelephone": [ {
"type": "Voice",
"hasValue": "tel:+39 06 94180777"
} ],
"hasAddress": {
"country-name": "Italy",
"postal-code": "00044",
"locality": "Frascati",
"street-address": "Via Galileo Galilei CP. 64"
],
"provenance": [
"type":   "ProvenanceStatement",
"label":  "Forest Map 2006 is derived from the IMAGE2006 (SPOT/LISS scenes) and CORINE2006 landcover dataset. In addition, MODIS composites are used for the Forest type classification."
],
"wasUsedBy": [
"type":   "Activity",
"generated": {
"type":   "Entity",
"degree":   "http://inspire.ec.europa.eu/metadata-codelist/DegreeOfConformity/conformant",
"description": "See the referenced specification"
},
"qualifiedAssociation": {
"type":   "Association",
"hadPlan": {
"type":   "Plan",
"wasDerivedFrom": {
"type":   "Standard",
"title":  "COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services",
"issued":   "2010-12-08T00:00:00Z"
Example 6: DataIdentification encoding example (Citation)
"title": "ESA Sea Surface Temperature Climate Change Initiative (ESA SST CCI): GHRSST Multi-Product ensemble (GMPE)",
"identifier": "e0659b01259145c8bfb0de6eb12c2690",
"abstract": "The ESA Sea Surface Temperature Climate Change Initiative (ESA SST CCI) dataset accurately maps the surface temperature of the global oceans over the period 1991 to 2010 using observations from many satellites. The data provides an independently quantified SST to a quality suitable for climate research. The GHRSST Multi-Product Ensemble (GMPE) dataset is an ensemble median of the ESA SST CCI spatially complete analysis with other level 4 SST analysis products. Anomalies of the analyses relative to the median, and the ensemble standard deviation are also provided.All the data in the GMPE files are regridded onto a common 0.25 degree regular latitude longitude grid and there areSST fields for each day. The GMPE for the ESA SST CCI long term product covers the period September 1991 to December 2010. GMPE files are also available for ESA SST CCI demonstration product 1 (which covers June to August 2007).",
"bibliographicCitation": "Fiedler, E.K.; McLaren, A.; Merchant, C.J.; Donlon, C. (2015): ESA Sea Surface Temperature Climate Change Initiative (ESA SST CCI): GHRSST Multi-Product ensemble (GMPE). NERC Earth Observation Data Centre, 24 February 2015. doi:10.5285/7BAF7407-2F15-406C-8F09-CB9DC10392AA. http://dx.doi.org/10.5285/7BAF7407-2F15-406C-8F09-CB9DC10392AA",
"doi": "10.5285/7BAF7407-2F15-406C-8F09-CB9DC10392AA",
"date": "1991-09-01T00:00:00.000Z/2010-12-31T00:00:00.000Z",
"updated": "2019-09-01T00:00:00.000Z",
"published": "2014-12-03T12:00:00.000Z",
"license": [
"type": "LicenseDocument",
"label": "Use of these data is covered by the following licence: http://licences.ceda.ac.uk/image/data_access_condition/esacci_sst_terms_and_conditions.pdf . When using these data you must cite them correctly using the citation given on the CEDA Data Catalogue record."
],
"accessRights": [
"type": "RightsStatement",
"label": "Public data: access to these data is available to both registered and non-registered users."
],
"qualifiedAttribution": [
"type": "Attribution",
"agent": [
"type": "Organization",
"email": "neodc@rl.ac.uk",
"name": "NERC - Earth Observation Data Centre",
"hasTelephone": [{
"type": "Voice",
"hasValue": "tel:+44(0)1235 446432"
}],
"hasAddress": {
"postal-code": "OX11 0QX",
"locality": "Harwell Oxford",
"street-address": "NERC Earth Observation Data Centre (NEODC)"
],
"role": "custodian"
},
"type": "Attribution",
"agent": [
"type": "Organization",
"email": "support@ceda.ac.uk",
"name": "Rutherford Appleton Laboratory",
"hasTelephone": {
"type": "Voice",
"hasValue": "tel:01235446432"
},
"hasAddress": {
"postal-code": "OX11 0QX",
"locality": "Oxon",
"street-address": "Centre for Environmental Data Analysis (CEDA)"
],
"role": "distributor"
],
"provenance": [
"type": "ProvenanceStatement",
"label": "Data were processed and supplied to the NEODC by the ESA CCI SST project team."
7.3.1.  DataDates
Requirement 11:
/req/data-dates
A “DataDates” object shall implement the properties defined in
Table 8
, with the value matching the type shown, and with the obligation shown.
Figure 7 — DataDates Schema
Complete description of DataDates is given in
Table 8
Table 8 — DataDates object properties
JSON Property
Definition
Data type and values
Multiplicity and use
created
$.properties.created
Date of creation of the resource.
Domain: Properties
Range: DateTime
Zero or one (optional)
updated
$.properties.updated
Date of creation or last update of the resource.
DateTime representation, as defined by RFC 3339, section 5.6.
Domain: Properties
Range: DateTime
One (mandatory )
published
$.properties.published
Date of publication of the resource.
Domain: Properties
Range: DateTime
Zero or one (optional)
date
$.properties.date
Date or range of dates relevant for the resource (RFC-3339). Formatted in one of the following ways:
“/”
“/”
“/”

“/”
For example: “1999-07-01T00:00:00Z/2003-12-31T00:00:00Z”
Domain: Properties
Range: String or DateTime
One (mandatory)
Example 7: DataDates encoding example
"date": "1999-07-01T00:00:00Z/2003-12-31T00:00:00Z",
"created": "1999-07-01T23:59:00Z",
"published": "1999-07-02T08:00:00Z",
"updated": "2004-01-01T08:00:00Z"
7.3.2.  DataContact
Requirement Class: DataContact
/req/data-contact
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/agent
Dependency
/req/attribution
Requirement 12:
/req/data-contact/properties
Requirement 12:
/req/data-contact/properties
A “DataContact” object shall implement the properties shown in
Table 9
, with the value matching the type shown, and with the obligation shown.
The DataContact properties are inherited by the DataIdentification (and Properties) block. The encoding depends on the “role” (ISO19115:2003) of the data contact. For the “publisher” and “author” roles, the OGC 14-055r2 encoding is available. Encoding for all roles is aligned with GeoDCAT-AP
[OR15]
§II.16.
Figure 8 — DataContact Schema
Complete description of DataContact is given in
Table 9
Table 9 — DataContact object properties
JSON Property
Definition
Data type and values
Multiplicity and use
publisher
$.properties.publisher
An entity or agent responsible for publishing the metadata (role is “Publisher”).
Optional property in
[NR5]
Domain: Properties
Range: String
Zero or one
(optional)
authors
$.properties.authors
Entities or persons primarily responsible for making the response document (role is “Author”).
Optional property in
[NR5]
Domain: Properties
Range: Array of Agent (See
Table 11
Zero or one
(optional)
contactPoint
$.properties.contactPoint
Link an EO collection to relevant organisations (role is “Point of Contact”).
Optional property in
[OR13]
Domain: Properties
Range: Array of Agent (See
Table 11
Zero or one (Optional)
qualifiedAttribution
$.properties.qualifiedAttribution
Specifies the relationship between the EO collection and the responsible organisation (role is “Resource Provider”, “Custodian”, “User”, “Distributor”, “Originator”, “Principal Investigator” or “Processor”).
Domain: Properties
Array of Attribution (See
Table 10
Zero or one (Optional)
Example 8: DataContact encoding example
"authors": [
"type": "Organization",
"email": "eohelp@eo.esa.int",
"name": "ESA/ESRIN",
"phone": "tel:+39 06 94180777"
],
"contactPoint": [
"type": "Organization",
"email": "eohelp@eo.esa.int",
"name": "ESA/ESRIN",
"phone": "tel:+39 06 94180777",
"uri": "http://www.earth.esa.int",
"hasAddress": {
"country-name": "Italy",
"postal-code": "00044",
"locality": "Frascati",
"street-address": "Via Galileo Galilei CP. 64"
],
"qualifiedAttribution": [
"type": "Attribution",
"agent": [
"type": "Organization",
"email": "eohelp@eo.esa.int",
"name": "ESA/ESRIN",
"phone": "tel:+39 06 94180777",
"uri": "http://www.earth.esa.int",
"hasAddress": {
"country-name": "Italy",
"postal-code": "00044",
"locality": "Frascati",
"street-address": "Via Galileo Galilei CP. 64"
],
"role": "originator"
7.3.3.  Attribution
Requirement Class: Attribution
/req/attribution
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/agent
Requirement 13:
/req/attribution/properties
Requirement 13:
/req/attribution/properties
An “Attribution” object shall implement the properties shown in
Table 10
with the value matching the type shown, and with the obligation shown.
The Attribution object represents a responsible party and its role and is based on
[OR30]
Figure 9 — Attribution Schema
Complete description of Attribution is given in
Table 10
Table 10 — Attribution object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.qualifiedAttribution[*].type
Type of the element. This property is a string with fixed value “Attribution”.
Range: String
Fixed value: “Attribution”
Zero or one (optional)
role
$.properties.qualifiedAttribution[*].role
Role of the responsible party corresponding to ISO19115:2003 responsible party role .
Values:
resourceProvider
custodian
owner
user
distributor
originator
pointOfContact
principalInvestigator
processor
publisher
author
Range: String
One (mandatory)
agent
$.properties.qualifiedAttribution[*].agent
Organisation or person fulfilling the above “role”. Any properties allowed by vcard:Kind are allowed.
Range: Array of Agent (See
Table 11
One (mandatory)
Example 9: Attribution encoding example
"type": "Attribution",
"agent": [
"type": "Organization",
"email": "eohelp@eo.esa.int",
"name": "ESA/ESRIN",
"phone": "tel:+39 06 94180777",
"uri": "http://www.earth.esa.int",
"hasAddress":
"country-name": "Italy",
"postal-code": "00044",
"locality": "Frascati",
"street-address": "Via Galileo Galilei CP. 64"
],
"role": "originator"
7.3.4.  Agent
Requirement 14:
/req/agent
An “Agent” object shall implement the properties defined in
Table 11
, with the value matching the type shown, and with the obligation shown.
The Agent object is a parent class which can contain the properties of a person or organization entity. It is based on vcard:Kind
[OR17]
and foaf:Agent
[OR20]
(depending on the context) and some of its properties were defined/renamed in
[NR5]
Figure 10 — Agent Schema
Complete description of Agent is given in
Table 11
Table 11 — Agent object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$..type
Type of the element. This property can have one of the following fixed values “Agent” (or “Kind”), “Person” (or “Individual”), “Organization”.
Domain: Agent
Range: String
Zero or one (optional)
name
$..name
Human readable name of author (or entity) as a single string.
Defined in section 7.1.1.7 of
[NR5]
Optional property in
[NR5]
Domain: Agent
Range: String.
Zero or one (optional)
email
$..email
Email of author (or entity).
Optional property in
[NR5]
Domain: Agent
Range: String.
Zero or one (optional)
uri
$..uri
URI associated with the author (or entity).
Optional property in
[NR5]
Domain: Agent
Range: String (URI).
Zero or one (optional)
phone
$.properties.authors[*].phone
Single phone number associated with the author (or entity).
Optional property in
[OR20]
Domain: Agent
Range: String.
Zero or one (optional)
hasTelephone
$.properties.qualifiedAttribution[
].agent[
].hasTelephone
$.properties.contactPoint[*].hasTelephone
Phone numbers associated with the author (or entity). Can be of type “Voice”, “Fax”, “”. Defined in
[OR17]
Optional property in
[OR17]
Domain: Agent
Range: Array of Object.
Zero or more (optional)
hasName
$.properties.qualifiedAttribution[
].agent[
].hasName
$.properties.contactPoint[
].hasName
$.properties.authors[].hasName
Name associated with the author (or entity) in structured parts as defined in
[OR17]
given-name (optional)
family-name (optional)
additional-name (optional)
Optional property in
[OR17]
Domain: Agent
Range: Object.
Zero or one (optional)
hasAddress
$.properties.qualifiedAttribution[
].agent[
].hasAddress
$.properties.contactPoint[*].hasAddress
Address associated with the author (or entity) in structured parts as defined in
[OR17]
street-address (optional)
locality (optional)
region (optional)
country-name (optional)
postal-code (optional)
Optional property in
[OR17]
Domain: Agent
Range: Object.
Zero or one (optional)
Example 10: Agent encoding example
"type": "Agent",
"name": "Earth Observation Helpdesk",
"email": "EOHelp@esa.int",
"uri": "http://earth.esa.int",
"phone": "tel:+39 06 94180777",
"hasTelephone": [
"type": "Voice",
"hasValue": "tel:+39 06 94180777"
},
"type": "Fax",
"hasValue": "tel:+39 06 94180292"
],
"hasAddress": {
"country-name": "Italy",
"postal-code": "00044",
"locality": "Frascati",
"street-address": "Via Galileo Galilei CP. 64"
Example 11: Agent encoding example (Individual)
"type": "Individual",
"name": "Christopher J. Merchant",
"hasName": {
"given-name": "Christopher",
"family-name": "Merchant",
"additional-name": "J."
},
"hasAddress": {
"locality": "Reading"
7.3.5.  ProvenanceStatement
Requirement 15:
/req/provenance-statement
A “ProvenanceStatement” object shall implement the properties shown in
Table 20
with the value matching the type shown, and with the obligation shown.
The proposed encoding is aligned with GeoDCAT-AP
[OR15]
§II.12.
Figure 11 — ProvenanceStatement Schema
Complete description of ProvenanceStatement is given in
Table 12
Table 12 — ProvenanceStatement object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.provenance[*].type
Type of the element. This property has the fixed value “ProvenanceStatement”.
Domain: ProvenanceStatement
Range: String
Zero or one (optional)
label
$.properties.provenance[*].label
Free text content of the corresponding ISO19139-2 metadata property gmd:lineage.
Property
[OR15]
Domain: ProvenanceStatement
Range: String.
One (mandatory)
Example 12: ProvenanceStatement encoding example
"type":   "ProvenanceStatement",
"label":  "Forest Map 2006 is derived from the IMAGE2006 (SPOT/LISS scenes) and CORINE2006 landcover dataset. In addition, MODIS composites are used for the Forest type classification."
7.3.6.  Activity
Requirement Class: Activity
/req/activity
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/association
Dependency
/req/entity
Requirement 16:
/req/activity/properties
Requirement 16:
/req/activity/properties
An “Activity” object shall implement the properties shown in
Table 13
with the value matching the type shown, and with the obligation shown.
The proposed encoding is aligned with GeoDCAT-AP
[OR15]
§II.14 and PROV-O
[OR30]
Figure 12 — Activity Schema
Complete description of Activity is given in
Table 13
Table 13 — Activity object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.wasUsedBy[*].type
Type of the element. This property has the fixed value “Activity”.
Domain: Activity
Range: String
Zero or one (optional)
generated
$.properties.wasUsedBy[*].generated
Refers to the conformity result which is encoded as an Entity.
Domain: Activity
Range: Entity
One (mandatory)
qualifiedAssociation
$.properties.wasUsedBy[*].qualifiedAssociation
Refers to the specification against which conformity is expressed, encoded as an Association.
Domain: Activity
Range: Association
One (mandatory)
Example 13: Activity encoding example
"type":   "Activity",
"generated": {
"type":   "Entity",
"degree":   "http://inspire.ec.europa.eu/metadata-codelist/DegreeOfConformity/conformant",
"description": "See the referenced specification"
},
"qualifiedAssociation": {
"type":   "Association",
"hadPlan": {
"type":   "Plan",
"wasDerivedFrom": {
"type":   "Standard",
"title":  "COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services",
"issued":   "2010-12-08T00:00:00Z"
7.3.7.  Entity
Requirement 17:
/req/entity
An “Entity” object shall implement the properties shown in
Table 14
with the value matching the type shown, and with the obligation shown.
The proposed encoding is aligned with GeoDCAT-AP
[OR15]
§II.14 and PROV-O
[OR30]
Figure 13 — Entity Schema
Complete description of Entity is given in
Table 14
Table 14 — Entity object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.wasUsedBy[*].generated.type
Type of the element. This property has the fixed value “Entity”.
Domain: Entity
Range: String
Zero or one (optional)
degree
$.properties.wasUsedBy[*].generated.degree
URI defining the degree of conformity. The INSPIRE Registry maintains a URI set at
Domain: Entity
Range: String (URI)
One (mandatory)
description
$.properties.wasUsedBy[*].generated.description
Description of the result.
Domain: Entity
Range: String
Zero or one (optional)
Example 14: Entity encoding example
"type":   "Entity",
"degree":   "http://inspire.ec.europa.eu/metadata-codelist/DegreeOfConformity/conformant",
"description": "See the referenced specification"
7.3.8.  Association
Requirement Class: Association
/req/association
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/plan
Requirement 18:
/req/association/properties
Requirement 18:
/req/association/properties
An “Association” object shall implement the properties shown in
Table 15
with the value matching the type shown, and with the obligation shown.
The proposed encoding is aligned with GeoDCAT-AP
[OR15]
§II.14 and PROV-O
[OR30]
Figure 14 — Association Schema
Complete description of Association is given in
Table 15
Table 15 — Association object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.wasUsedBy[*].qualifiedAssociation.type
Type of the element. This property has the fixed value “Association”.
Domain: Association
Range: String
Zero or one (optional)
hadPlan
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan
Set of actions or steps intended by one or more agents to achieve some goals.
Domain: Association

Range: Plan
One (mandatory)
Example 15: Association encoding example
"type":   "Association",
"hadPlan": {
"type":   "Plan",
"wasDerivedFrom": {
"type":   "Standard",
"title":  "COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services",
"issued":   "2010-12-08"
7.3.9.  Plan
Requirement Class: Plan
/req/plan
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/standard
Requirement 19:
/req/plan/properties
Requirement 19:
/req/plan/properties
A “Plan” object shall implement the properties shown in
Table 16
with the value matching the type shown, and with the obligation shown.
The proposed encoding is aligned with GeoDCAT-AP
[OR15]
§II.14 and PROV-O
[OR30]
Figure 15 — Plan Schema
Complete description of Plan is given in
Table 16
Table 16 — Plan object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan.type
Type of the element. This property has the fixed value “Plan”.
Domain: Plan
Range: String
Zero or one (optional)
wasDerivedFrom
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan.wasDerivedFrom
Refers to the specification against which conformity is expressed, encoded as a Standard.
Range: Standard
One (mandatory)
Example 16: Plan encoding example
"type":   "Plan",
"wasDerivedFrom": {
"type":   "Standard",
"title":  "COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services",
"issued":   "2010-12-08"
7.3.10.  Standard
Requirement 20:
/req/standard
A “Standard” object shall implement the properties shown in
Table 17
with the value matching the type shown, and with the obligation shown.
The proposed encoding is aligned with GeoDCAT-AP
[OR15]
§II.14.
Figure 16 — Standard Schema
Complete description of Standard is given in
Table 17
Table 17 — Standard object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan.wasDerivedFrom.type
Type of the element. This property has the fixed value “Standard”.
Domain: Standard
Range: String
Zero or one (optional)
title
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan.wasDerivedFrom.title
/gmd:MD_Metadata/gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:report/gmd:DQ_DomainConsistency/gmd:result
Title of the specification against which conformity is expressed.
Domain: Standard
Range: String
One (mandatory)
issued
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan.wasDerivedFrom.issued
Issue date of the specification against which conformity is expressed.
Domain: Standard
Range: DateTime
Zero or one (optional)
versionInfo
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan.wasDerivedFrom.versionInfo
Version of the specification against which conformity is expressed.
Domain: Standard
Range: String
Zero or one (optional)
Example 17: Standard encoding example
"type":   "Standard",
"title":  "COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services",
"issued":   "2010-12-08"
7.4.  Requirements class: Resource Constraints
Requirement Class: Resource Constraints
/req/resource-constraints
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/license-document
Dependency
/req/rights-statement
Requirement 21:
/req/resource-constraints/properties
Requirement 24:
/req/use-constraints
Requirement 25:
/req/access-constraints
Requirement 21:
/req/resource-constraints/properties
A “ResourceConstraints” object shall implement the properties shown in
Table 18
with the value matching the type shown, and with the obligation shown.
The proposed encoding is aligned with DCAT Version 2
[OR25]
and GeoDCAT-AP
[OR15]
§II.15.
Figure 17 — ResourceConstraints Schema
Complete description of ResourceConstraints is given in
Table 18
Table 18 — ResourceConstraints object properties
JSON Property
Definition
Data type and values
Multiplicity and use
rights
$.properties.rights
Information about rights held in and over the collection. See OGC 14-055r2 §7.1.2.7.
Also defined in
[OR25]
as a statement that concerns all rights not addressed with license or accessRights, such as copyright statements.
Property
[NR5]
Domain: Properties
Range: String
Zero or one (optional)
license
$.properties.license
Information about licensing terms for the EO collection distribution. For example the encoding of the corresponding ISO19139-2 metadata property gmd:useLimitation.
Domain: Distribution
Range: Array of LicenseDocument (See
Table 19
Zero or one (optional)
accessRights
$.properties.accessRights
Information about access conditions for the EO collection distribution. For example the encoding of the corresponding ISO19139-2 metadata properties gmd:accessConstraints and gmd:otherConstraints.
Domain: Distribution
Range: Array of RightsStatement (See
Table 20
Zero or one (optional)
Example 18: ResourceConstraints encoding example
"rights": "Data are available upon fast registration",
"license": [
"type": "LicenseDocument",
"label": "Fast Registration with immediate access Data is available via EOLI-SA upon registration for the (A)SAR On The Fly Service. For information on access and use of the On-The-Fly service please refer to the OTF FAQ page and news of 28 July 2016."
],
"accessRights": [
"type": "RightsStatement",
"label": "Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions"
},
7.4.1.  LicenseDocument
Requirement 22:
/req/license-document
A “LicenseDocument” object shall implement the properties shown in
Table 19
with the value matching the type shown, and with the obligation shown.
The proposed encoding is aligned with GeoDCAT-AP
[OR15]
§II.15.
Figure 18 — LicenseDocument Schema
A LicenseDocument is encoded as an object or as a URI identifying such object. The complete description of the LicenseDocument object is given in
Table 19
Table 19 — LicenseDocument object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.license[*].type
Type of the element. This property has the fixed value “LicenseDocument”.
Domain: LicenseDocument
Range: String
Zero or one (optional)
label
$.properties.license[*].label
Free text content of the corresponding ISO19139-2 metadata property gmd:useLimitation.
Property
[OR15]
Domain: LicenseDocument
Range: String.
One (mandatory)
Example 19: LicenseDocument encoding example (Object)
"type":   "LicenseDocument",
"label":  "Fast Registration with immediate access Data is available via EOLI-SA upon registration for the (A)SAR On The Fly Service. For information on access and use of the On-The-Fly service please refer to the OTF FAQ page and news of 28 July 2016."
Example 20: LicenseDocument encoding example (URI)
"https://creativecommons.org/licenses/by/4.0/"
7.4.2.  RightsStatement
Requirement 23:
/req/rights-statement
A “RightsStatement” object shall implement the properties shown in
Table 20
with the value matching the type shown, and with the obligation shown.
The proposed encoding is aligned with GeoDCAT-AP
[OR15]
§II.15.
Figure 19 — RightsStatement Schema
A RightsStatement is encoded as an object or as a URI identifying such object. The complete description of RightsStatement is given in
Table 20
Table 20 — RightsStatement object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.accessRights[*].type
Type of the element. This property has the fixed value “RightsStatement”.
Domain: RightsStatement
Range: String
Zero or one (optional)
label
$.properties.accessRights[*].label
Free text content of the corresponding ISO19139-2 metadata properties gmd:accessConstraints and gmd:otherConstraints.
Property
[OR15]
Domain: RightsStatement
Range: String.
One (mandatory)
Example 21: RightsStatement encoding example (Object)
"type":   "RightsStatement",
"label":  "Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions"
Example 22: RightsStatement encoding example (URI)
"https://earth.esa.int/web/guest/data-access/how-to-access-eo-data/asar-on-the-fly-faq"
7.4.3.  Use Constraints
Requirement 24:
/req/use-constraints
Use Constraints shall be implemented through the ResourceConstraints and LicenseDocument (Section 7.4.1) objects.
Example 23: Use Constraints encoding example (Object)
"license": [
"type": "LicenseDocument",
"label": "Fast Registration with immediate access Data is available via EOLI-SA upon registration for the (A)SAR On The Fly Service. For information on access and use of the On-The-Fly service please refer to the OTF FAQ page and news of 28 July 2016."
Example 24: Use Constraints encoding example (URI)
"license": [
"https://creativecommons.org/licenses/by/4.0/"
7.4.4.  Access Constraints
Requirement 25:
/req/access-constraints
Access Constraints shall be implemented through the ResourceConstraints and RightsStatement (Section 7.4.2) objects.
Example 25: Access Constraints encoding example (Object)
"accessRights": [
"type": "RightsStatement",
"label": "Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions"
Example 26: Access Constraints encoding example (URI)
"accessRights": [
"https://earth.esa.int/web/guest/data-access/how-to-access-eo-data/asar-on-the-fly-faq"
7.5.  Requirements class: Descriptive Keywords
Requirement Class: Descriptive Keywords
/req/descriptive-keywords
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/category
Requirement 26:
/req/descriptive-keywords/properties
Requirement 34:
/req/location-keywords
Requirement 36:
/req/temporal-keywords
Requirement 26:
/req/descriptive-keywords/properties
A “DescriptiveKeywords” object shall implement the properties shown in
Table 21
with the value matching the type shown, and with the obligation shown.
The DescriptiveKeywords properties are inherited by the Properties block. To align with GeoDCAT-AP
[OR15]
§II.8.1, three kinds of keywords are distinguished.
Figure 20 — DescriptiveKeywords Schema
Complete description of DescriptiveKeywords is given in
Table 21
Table 21 — DescriptiveKeywords object properties
JSON Property
Definition
Data type and values
Multiplicity and use
subject
$.properties.subject
ISO topic categories related to the collection.
Property
[OR15]
Domain: Properties
Range: Array of Category (See
Table 22
Zero or one
(optional)
categories
$.properties.categories
Keywords belonging to a controlled vocabulary related to the collection.
Optional property in
[NR5]
Domain: Properties
Range: Array of Category (See
Table 22
Zero or one
(optional)
keyword
$.properties.keyword
Free keywords not belonging to a controlled vocabulary related to the collection. Defined in DCAT
[OR13]
Property
[OR13]
Domain: Properties
Range: Array of String
Zero or one
(optional)
Example 27: DescriptiveKeywords encoding example
"categories": [
"term": "http://www.eionet.europa.eu/gemet/concept/3650",
"scheme": "http://www.eionet.europa.eu/gemet/",
"label":  "Geology"
},
"term": "https://gcmdservices.gsfc.nasa.gov/kms/concept/03f0c0a3-04a7-4ef8-8ec0-3c2266510815",
"scheme": " https://gcmdservices.gsfc.nasa.gov/kms/concepts/concept_scheme/sciencekeyword",
"label":  "VISIBLE IMAGERY"
},
"term": "https://gcmdservices.gsfc.nasa.gov/kms/concept/98dc8278-fe0a-4e36-a638-9d7a5b0ed826",
"scheme": "https://gcmdservices.gsfc.nasa.gov/kms/concepts/concept_scheme/projects",
"label":  "FedEO"
},
"term": "https://gcmdservices.gsfc.nasa.gov/kms/concept/ad598334-f541-4be4-888c-c2dc7eb54194",
"scheme": "https://gcmdservices.gsfc.nasa.gov/kms/concepts/concept_scheme/CollectionDataType",
"label":  "NEAR_REAL_TIME"
],
"keyword": [
"FedEO",
"ESA LDS"
],
"subject": [
"term": "http://inspire.ec.europa.eu/metadata-codelist/TopicCategory/geoscientificInformation",
"label":  "Geoscientific Information"
},
"term": "https://gcmdservices.gsfc.nasa.gov/kms/concept/d9cd5b7e-e9e7-4746-bbc8-bc69f7b606c7",
"label":  "GEOSCIENTIFIC INFORMATION",
"scheme": "https://gcmdservices.gsfc.nasa.gov/kms/concepts/concept_scheme/isotopiccategory"
7.5.1.  Category
Requirement 27:
/req/category
A “Category” object shall implement the properties defined in OGC 14-055r2
[NR5]
, with the value matching the type shown, and with the obligation shown.
The Category block contains the properties of a keyword and is defined in
[NR5]
Figure 21 — Category Schema
Complete description of Category is given in
Table 22
Table 22 — Category object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.categories[*].type
Type of the element. This property has the fixed value “Category”.
Domain: Category
Range: String
Fixed value: “Category”
Zero or one (optional)
scheme
$.properties.categories[*].scheme
Identification of the code-list defining the keyword.
Defined in section 7.1.1.15 of
[NR5]
Optional property in
[NR5]
Domain: Category
Range: String (URI).
Zero or one (optional)
term
$.properties.categories[*].term
Identification of the keyword. See also
[OR22]
for using of URI as string value.
Mandatory property in
[NR5]
Domain: Category
Range: String
One (mandatory)
label
$.properties.categories[*].label
Human readable representation of the keyword.
Optional property in
[NR5]
Domain: Category
Range: String
Zero or one (optional)
Example 28: Category encoding example
"type":   "Category",
"scheme": "http://www.eionet.europa.eu/gemet/",
"term":   "http://www.eionet.europa.eu/gemet/concept/4612",
"label":  "Land cover"
7.6.  Requirements class: Related URL
Requirement Class: Related URL
/req/related-url
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/offering
Dependency
/req/links
Requirement 28:
/req/related-url/properties
Requirement 28:
/req/related-url/properties
A “RelatedUrl” object shall implement the properties shown in
Table 23
, with the value matching the type shown, and with the obligation shown.
Figure 22 — RelatedUrl Schema
Table 23 — RelatedUrl object properties
JSON Property
Definition
Data type and values
Multiplicity and use
links
$.properties.links
Refers to related, actionable resources including quicklook, original or alternative metadata representations etc…​ See
Table 24
Domain: Properties
Range: Links. (See
Table 24
One (mandatory)
offerings
$.properties.offerings
Service or online content offering for the resource targeted at OGC compliant clients. See OGC 14-055r2
[NR5]
Domain: Properties
Range: Array of Offering (See
Table 26
).
Zero or more (optional)
Example 29: RelatedUrl encoding example
"offerings": [
"code": "http://www.opengis.net/spec/owc-geojson/1.0/req/wps",
"operations": [
"code": "Execute",
"method": "POST",
"href": "http://185.52.193.7/wps-proxy/"
],
"links": {
"alternates": [
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/atom%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=server-choice",
"type": "application/atom+xml",
"title": "Atom format"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19139%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso",
"type": "application/vnd.iso.19139+xml",
"title": "ISO 19139 metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19139-2%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso19139-2",
"type": "application/vnd.iso.19139-2+xml",
"title": "ISO 19139-2 metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/iso19115%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso19115",
"type": "application/iso19115+xml",
"title": "ISO MENDS metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19115-3%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso19115-3",
"type": "application/vnd.iso.19115-3+xml",
"title": "ISO 19115-3 metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/dif10%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=dif10",
"type": "application/dif10+xml",
"title": "DIF-10 metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/xml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=dc",
"type": "application/xml",
"title": "Dublin Core metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/rdf%2Bxml&parentIdentifier=EOP:ESA:FEDEO:COLLECTIONS&uid=EOP:ESA:Sentinel-2&recordSchema=iso",
"type": "application/rdf+xml",
"title": "RDF/XML format"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/ld%2Bjson&parentIdentifier=EOP:ESA:FEDEO:COLLECTIONS&uid=EOP:ESA:Sentinel-2&recordSchema=iso",
"type": "application/ld+json",
"title": "JSON-LD format"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=text/turtle&parentIdentifier=EOP:ESA:FEDEO:COLLECTIONS&uid=EOP:ESA:Sentinel-2&recordSchema=iso",
"type": "text/turtle",
"title": "Turtle format"
],
"describedby": [
"href": "https://sentinel.esa.int/web/sentinel/missions/sentinel-2",
"type": "text/html",
"title": "ESA Sentinel Online"
],
"search": [
"href": "http://fedeo.esa.int/opensearch/description.xml?parentIdentifier=EOP:ESA:SCIHUB:S2&sensorType=OPTICAL&startDate=2015-06-23T00:00:00Z&endDate=",
"type": "application/opensearchdescription+xml"
],
"previews": [
"href": "http://fedeo.esa.int/opensearch/images/esa.png",
"type": "image/png",
"title": "Quicklook"
7.6.1.  Links
Requirement Class: Links
/req/related-url
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/link
Requirement 29:
/req/links/properties
Requirement 29:
/req/links/properties
A “Links” object shall implement the properties shown in
Table 24
, with the value matching the type shown, and with the obligation shown.
The Links block contains references to related resources as hypermedia links. They include specification references and references to alternative representations of the metadata. For the GeoJSON encoding of the Links object, we use the property names adopted by section 7.1.2 of the GeoJSON encoding for OWS Context OGC 14-055r2
[NR5]
The Links object is a map containing descriptions of potential Links. The key is the “relation” as defined in
[NR10]
or a relation defined in
[NR5]
The Link objects are grouped in arrays according to the “relation” they represent. Implementers may add additional properties if additional “relations” need to be represented. For consistency, all relations refer to arrays of Link objects and not to single Link objects. This allows to have similar references with different media types included for the same relation. The general pattern is thus
$.properties.links.relation[*].href
. It should be noted that also in Atom, multiple Atom links are allowed by the response syntax, whatever the value of the “rel” attribute. Clients shall use the combination of “rel” and “type” attribute to select the proper Link.
Figure 23 — Links Schema
Complete description of Links is given in
Table 24
Table 24 — Links object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.links.type
Type of the element. This property has the fixed value “Links”.
Range: String
Fixed value: Links
Zero or one (optional)
profiles
$.properties.links.profiles
Specification references identifying which specifications the metadata document complies with.
Is defined by
[NR5]
§7.1.1.1.
Property
[NR5]
Range: array of Link as defined in
Table 25
Zero or one (optional)
via
$.properties.links.via
Reference to a description of the resource of which the response document is derived (e.g., source of information).
Is defined by
[NR5]
§7.1.1.14.
Range: array of Link as defined in
Table 25
Zero or one (optional)
alternates
$.properties.links.alternates
Reference to a description of the resource in an alternative format.
Is defined by
[NR5]
§7.1.2.
Range: array of Link as defined in
Table 25
Zero or one (optional)
related
$.properties.links.related
Reference to the location of a related resource. Is also used to return results of correlated search as per OGC 13-068.
Range: array of Link as defined in
Table 25
Zero or one (optional)
previews
$.properties.links.previews
Reference to a quick-look or browse image representing the resource.
Is defined by
[NR5]
§7.1.2.10.
Range: array of Link as defined in
Table 25
Zero or one (optional)
$.properties.links.search
Reference to a formal interface description (e.g., an OpenSearch Description Document, OpenAPI Document or SPARQL Service Description ) of the search interface that can be used to find resources (EO products) belonging to the collection represented by the feature.
Range: array of Link as defined in
Table 25
Zero or one (optional)
describedby
$.properties.links.describedby
Reference to a description of the resource or documentation or (human readable) information related to the resource.
Such link can also be used to associate the response document with the corresponding JSON Schema file as defined in section 8.2 of
[OR7]
Range: array of Link as defined in
Table 25
Zero or one (optional)
Example 30: Search Link encoding example (OpenSearch and OpenAPI)
"search": [
"href": "http://fedeo.esa.int/opensearch/description.xml?parentIdentifier=LANDSAT.ETM.GTC",
"type": "application/opensearchdescription+xml"
},
"href": "http://fedeo.esa.int/opensearch/description.json?parentIdentifier=LANDSAT.ETM.GTC",
"type": "application/openapi+json;version=3.0"
Example 31: Search Link encoding example (SPARQL)
"search": [
"href": "https://www.foodie-cloud.org/sparql",
"type": "application/rdf+xml;profile=\"http://www.w3.org/ns/sparql-service-description#\""
The example below refers to a description of the resource on an HTML documentation page and a Jupyter Notebookfootnote::[
] .
Example 32: Describedby Link encoding example
"describedby": [
"href": "https://earth.esa.int/web/guest/data-access/browse-data-products/-/asset_publisher/y8Qb/content/landsat-7-etm-enhanced-thematic-mapper-plus-geolocated-terrain-corrected-systematic-processing-over-kiruna-and-masplomas",
"type": "text/html"
},
"href": "https://earth.esa.int/web/guest/data-access/browse-data-products/-/asset_publisher/y8Qb/content/landsat-7-etm-enhanced-thematic-mapper-plus-geolocated-terrain-corrected-systematic-processing-over-kiruna-and-masplomas.ipynb",
"type": "application/x-ipynb+json"
7.6.2.  Link
Requirement 30:
/req/link
A “Link” object shall implement the properties shown in
Table 25
, with the value matching the type shown, and with the obligation shown.
The Link block contains the properties of a hypermedia link to a resource identified by its URI
[NR5]
Figure 24 — Link Schema
For the GeoJSON encoding of each Link object, we use the encoding defined in section 7.1.10 of the GeoJSON encoding for OWS Context OGC 14-055r2
[NR5]
. The equivalent JSON-LD encoding is consistent with section 6.1.2.2 of OGC 15-053
[OR6]
Complete description of Link is given in
Table 25
Table 25 — Link object properties
JSON Property
Definition
Data type and values
Multiplicity and use
href
$.properties.links.
].href
URI describing the related resource.
Is defined by
[NR5]
§7.1.10.
Range: String (URI)
One (mandatory)
type
$.properties.links.
].type
Hint about the type of the representation that is expected to be returned when the value of href is dereferenced.
Range: String (contains a media type).
Zero or one (optional)
title
$.properties.links.
].title
Human readable information about the link. Is defined by
[NR5]
§7.1.10.
Range: String
Zero or one (optional)
length
$.properties.links.
].length
Hint about the content length (in bytes) of the representation that is expected to be returned when the value of href is dereferenced. Is defined by
[NR5]
§7.1.10.
Range: Integer
Zero or one (optional)
lang
$.properties.links.
].lang
Language of the resource pointed to by the href attribute. String type, not empty with an RFC-3066 code. Is defined by
[NR5]
§7.1.10.
Range: String
Zero or one (optional)
7.6.3.  Offering
Requirement Class: Offering
/req/offering
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
OGC 14-055r2 [NR5]
Dependency
/req/operation
Requirement 31:
/req/offering/properties
Requirement 31:
/req/offering/properties
An “Offering” object shall implement the properties defined in OGC 14-055r2
[NR5]
, with the value matching the type shown, and with the obligation shown.
The Offering block is fully defined in OGC 14-055r2
[NR5]
. It describes a service or inline content offering for the EO product and is intended to be consumed by clients that support OGC standards. In the context of the current specification, an Offering can be used to describe:
View services allowing visualisation via OGC WMS or WMTS service interfaces;
Reference to download or ordering services according to specific OGC protocols (e.g., WCS); and
Reference to processing resources including WPS or hosted processing services.
Figure 25 — Offering Schema
Table 26 — Offering object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.offerings[*].type
Type of the element. This property has the fixed value “Offering”.
Domain: Offering
Range: String
Zero or one (optional)
code
$.properties.offerings[*].code
URI identifying the type of offering, e.g., requirement class identifier (URI) defining the offering listed in §7.2 to 7.12 of
[NR5]
Is defined by
[NR5]
§7.1.3.1.
Domain: Offering
Range: String (URI)
One (mandatory)
operations
$.properties.offerings[*].operations
Array of operations used to invoke the service. Is defined by
[NR5]
§7.1.3.2.
Domain: Offering
Range: array of Operation.
Zero or more (optional)
contents
$.properties.offerings[*].contents
Array of contents (inline or by reference). Is defined by
[NR5]
§7.1.3.3 and §7.1.5.
Domain: Offering
Range: array of Object
Zero or more (optional)
styles
$.properties.offerings[*].styles
Array of style sets. Is defined by
[NR5]
§7.1.3.4 and §7.1.6.
Domain: Offering
Range: array of Object
Zero or more (optional)
A number of examples for typical offerings (e.g., WMS, WPS) are included below.
Example 33: JSON encoding example (WMS)
"code": "http://www.opengis.net/spec/owc-geojson/1.0/req/wms",
"operations": [
"code": "GetCapabilities",
"method": "GET",
"type": "application/xml",
"href": "http://eumetview.eumetsat.int/geoserv/wms?REQUEST=GetCapabilities&version=1.3.0&service=WMS"
Example 34: JSON encoding example (WCS)
"code": "http://www.opengis.net/spec/owc-geojson/1.0/req/wcs",
"operations": [
"code": "GetCapabilities",
"method": "GET",
"href": "http://131.176.196.55/wcs?service=WCS&Request=GetCapabilities"
},
"code": "DescribeCoverage",
"method": "GET",
"type": "application/xml",
"href": "http://131.176.196.55/wcs?service=WCS&Request=DescribeCoverage&version=2.0.0&CoverageId=LE7_RGB"
Example 35: JSON encoding example (WPS)
"code": "http://www.opengis.net/spec/owc-geojson/1.0/req/wps",
"operations": [
"code": "GetCapabilities",
"method": "GET",
"type": "application/xml",
"href": "http://tep.esa.int/wps/processing?REQUEST=GetCapabilities&SERVICE=WPS",
"result": {
"type": "application/xml",
"content": "..."
7.6.4.  Operation
Requirement 32:
/req/operation
An “Operation” object shall implement the properties of “Operation” defined in OGC 14-055r2
[NR5]
, with the value matching the type shown, and with the obligation shown.
The Operation block is fully defined in OGC 14-055r2
[NR5]
. It describes an operation of a service or inline content offering for the EO collection and is intended to be consumed by OGC-compliant clients. The “code” property identifies the OGC operation name, e.g., GetCapabilities, GetMap etc.
Figure 26 — Operation Schema
Table 27 — Operation object properties
JSON Property
Definition
Data type and values
Multiplicity and use
code
$.properties.offerings[
].operations[
].code
URI identifying the type of operation. Typically, the OGC Service request type, e.g., “GetCapabilities” or “GetMap”.
Is defined by
[NR5]
§7.1.4.1.
Domain: Operation
Range: String
One (mandatory)
method
$.properties.offerings[
].operations[
].method
Code identifying the HTTP verb type of Operation. Examples: GET, POST, PUT, HEAD, PATCH, DELETE. Is defined by
[NR5]
§7.1.4.2.
Domain: Operation
Range: String
One (mandatory)
type
$.properties.offerings[
].operations[
].type
MIME type of the expected results. Is defined by
[NR5]
§7.1.4.3.
Domain: Operation
Range: String
Zero or one (optional)
href
$.properties.offerings[
].operations[
].href
Service request URL. Is defined by
[NR5]
§7.1.4.4.
Domain: Operation
Range: String (URL)
One (mandatory)
request
$.properties.offerings[
].operations[
].request
Optional request body content. Is defined by
[NR5]
§7.1.4.5.
Domain: Operation
Range: Object
Zero or one (optional)
result
$.properties.offerings[
].operations[
].result
Optional result payload of the operation. Is defined by
[NR5]
§7.1.4.6.
Domain: Operation
Range: Object
Zero or one (optional)
Any other element
For examples, we refer to the examples of Offering given in section 7.6.3.
7.7.  Requirements class: Spatial Information
Requirement Class: Spatial Information
/req/spatial-information
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/category
Dependency
/req/geometry
Requirement 34:
/req/location-keywords
7.7.1.  Spatial Extent
The spatial information is encoded as a Geometry object as defined by GeoJSON. There are requirements for Position, Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, Geometry Collection described in OGC 17-003r2
[NR4]
. Although these geometry objects are relevant for EO Products, for EO Collections, the most common geometry object is a Polygon. For the detailed definition of the geometry objects and corresponding examples, we refer to
[NR4]
Requirement Class: Spatial Extent
/req/geometry
Target Type
Data instance
Dependency
GeoJSON [NR2]
Dependency
/req/point
Dependency
/req/multi-point
Dependency
/req/linestring
Dependency
/req/multi-linestring
Dependency
/req/polygon
Dependency
/req/multi-polygon
Requirement 33:
/req/geometry/properties
Requirement 33:
/req/geometry/properties
Objects in a data instance that describe 0-D, 1-D, or 2-D geometries with positions in the WGS-84 system shall be encoded using the GeoJSON geometry encoding
[NR2]
7.7.1.1.  Geometry
The Geometry object contains a type property and coordinates property. The object can be any of the specialisations described below. The expected value for the coordinates property depends on the type of the geometry.
Figure 27 — Geometry Schema (GeoJSON)
Complete description of the Geometry properties is given in
Table 28
. The possible specializations are explained in
[NR4]
Table 28 — Geometry object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.geometry.type
Type of the geometry representing the footprint. Can be one of the geometry types: Point, LineString, Polygon, MultiPoint, MultiLineString or MultiPolygon.
Property
[NR2]
[OR33]
Range: String
One (mandatory)
coordinates
$.geometry.coordinates
Array with structure determined by the geometry type to be represented. Note that a position (array of numbers) is indicated by longitude, latitude (in that order).
Property
[NR2]
[OR33]
Range: See section 3.1 of
[NR2]
One (mandatory)
Note that consumers that wish to use the standard JSON-LD Processing Algorithms may need to use an alternative representation for the geometry objects as explained in section 8.2 and avoid the use of multi-dimensional arrays.
7.7.1.2.  Polygon
Figure 28 — Polygon Schema
Note that according to
[NR2]
, Polygon rings shall follow the right-hand rule for orientation (counter-clockwise external rings, clockwise internal rings).
Example 36: GeoJSON Polygon encoding example
"type": "Feature",
"id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/geo%2Bjson&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2",
"geometry": {
"type": "Polygon",
"coordinates": [
-180,
-90
],
180,
-90
],
180,
90
],
-180,
90
],
-180,
-90
},
"properties": { }
7.7.2.  Location Keywords
Requirement 34:
/req/location-keywords
A “LocationKeywords” object shall implement the properties shown in
Table 21
(section 7.5 “Descriptive Keywords”), with the value matching the type shown, and with the obligation shown.
This encoding applies to keywords of type “place.”
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:type/gmd:MD_KeywordTypeCode[@codeListValue=”place”]
Example 37: Location Keywords encoding example (GCMD)
"categories": [
"term": "https://gcmdservices.gsfc.nasa.gov/kms/concept/51e3593f-4b42-4141-972e-96666c479f9c",
"scheme": " https://gcmdservices.gsfc.nasa.gov/kms/concepts/concept_scheme/locations",
"label": "GLOBAL"
Example 38: Location Keywords encoding example (INSPIRE)
"categories": [
"term": "http://publications.europa.eu/resource/authority/country/BEL",
"scheme": "http://publications.europa.eu/resource/authority/country"
7.8.  Requirements class: Temporal Information
Requirement Class: Temporal Information
/req/temporal-information
Target Type
Data instance
Dependency
JSON [NR1]
Requirement 35:
/req/temporal-extent
Requirement 36:
/req/temporal-keywords
7.8.1.  Temporal Extent
Requirement 35:
/req/temporal-extent
A “TemporalExtent” object shall implement the properties shown in
Table 29
, with the value matching the type shown, and with the obligation shown.
The TemporalExtent object contains the properties related to the start and end time of the acquisition of the data.
Figure 29 — TemporalExtent Schema
Complete description of the TemporalExtent properties is given in
Table 29
Table 29 — TemporalExtent object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.temporal.type
Type of the element. This property has the fixed value “PeriodOfTime”.
Domain: PeriodOfTime
Range: String
Fixed value: “PeriodOfTime”
Zero or one (optional)
beginningDateTime
$.properties.temporal.beginningDateTime
Acquisition start date time
DateTime representation, as defined by RFC 3339, section 5.6footnote::[rfc3339,A String matching RFC 3339 section 5.6. yyyy-MM-ddThh:mm:ss[.S](Z/(+/-)th:tm) where yyyy = Four digit year, MM = Two digit month (01 = January), dd = Two digit day of month (01 = first day), hh = Hour of day (00 – 23), mm = Minute of hour (00 – 59), ss = Second of minute (00 – 59), S = fraction of seconds with any precision. Times are in UTC (ending with the mandatory Z character) or defined with an offset w.r.t. UTC: th = Time offset hours (00 — 23), tm = Time offset minutes (00 — 59).]
Domain: PeriodOfTime
Range: DateTime
Zero or one (optional)
endingDateTime
$.properties.temporal.endingDateTime
Acquisition end date time
DateTime representation, as defined by RFC 3339, section 5.613footnote::[rfc3339]
Domain: PeriodOfTime
Range: DateTime
Zero or one (optional)
Example 39: TemporalExtent encoding example
"beginningDateTime": "2015-06-23T00:00:00Z",
"endingDateTime": "2018-11-28T15:23:57Z"
7.8.2.  Temporal Keywords
Requirement 36:
/req/temporal-keywords
A “TemporalKeywords” object shall implement the properties shown in
Table 21
(section 7.5 “Descriptive Keywords”), with the value matching the type shown, and with the obligation shown.
This encoding applies to keywords of type “temporal.” /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gmd:type/MD_KeywordTypeCode[@codeListValue=”temporal”]
Example 40: Temporal Keywords encoding example
"categories": [
"term": "https://gcmdservices.gsfc.nasa.gov/kms/concept/99ef187e-6940-4c10-8d65-00d4426d493b ",
"scheme": " https://gcmdservices.gsfc.nasa.gov/kms/concepts/concept_scheme/temporalresolutionrange ",
"label": "Diurnal"
7.9.  Requirements class: Acquisition Information
The acquisition information applicable to EO Collections is a subset of the acquisition information applicable to EO products. The encoding of this subset is identical to the encoding defined in OGC 17-003r2
[NR4]
and is repeated here for convenience of the reader.
Requirement Class: Acquisition Information
/req/acquisition-information
Target Type
Data instance
Dependency
JSON [NR1]
Dependency
/req/platform
Dependency
/req/instrument
Dependency
/req/temporal-extent
Requirement 37:
/req/acquisition-information/properties
Requirement 37:
/req/acquisition-information/properties
An “AcquisitionInformation” object shall implement the properties shown in
Table 30
, with the value matching the type shown, and with the obligation shown.
The AcquisitionInformation block can appear multiple times and contains information about the platform (i.e., satellite), the instrument and the acquisition parameters.
Figure 30 — AcquisitionInformation Schema
The complete description of the AcquisitionInformation properties is given in
Table 30
. It is a subset of the properties defined in OGC 17-003r2
[NR4]
Table 30 — AcquisitionInformation object properties
JSON Property
Definition
Data type and values
Multiplicity and use
platform
$..acquisitionInformation[*].platform
The Platform used for the acquisition.
If more than one platform is used for creating the product, then the AcquisitionInformation object occurs more than once.
Domain: AcquisitionInformation
Range: Platform
See
Table 31
Zero or one (optional)
instrument
$..acquisitionInformation[*].instrument
The Instrument/Sensor used for the acquisition.
If more than one instrument is used for creating the product, then the AcquisitionInformation object occurs more than once.
Domain: AcquisitionInformation
Range: Instrument
See
Table 32
Zero or one (optional)
acquisitionParameters
$..acquisitionInformation[*].acquisitionParameters
The acquisition parameters limited to the temporal extent.
Use of
$.properties.temporal
to encode temporal extent of the collection is preferred. Is both are used, then acquisitionParameters are interpreted as begin and end time of the observation activity (provenance).
Domain: AcquisitionInformation
Range: TemporalExtent
See
Table 29
Zero or one (optional)
Example 41: AcquisitionInformation encoding example
"platform": {
"id": "https://earth.esa.int/concept/sentinel-2",
"platformShortName": "Sentinel-2"
},
"instrument": {
"id": "https://earth.esa.int/concept/s2-msi",
"instrumentShortName": "MSI"
},
"acquisitionParameters": {
"beginningDateTime": "2015-06-23T00:00:00Z"
7.9.1.  Platform
The encoding of platform information is identical to the encoding defined in OGC 17-003r2
[NR4]
but is repeated here for convenience of the reader.
Requirement 38:
/req/platform
A “Platform” object shall implement the properties shown in
Table 31
, with the value matching the type shown, and with the obligation shown.
The Platform block contains the properties of the platform that was used to perform the observation.
Figure 31 — Platform Schema
Complete description of the Platform properties is given in
Table 31
Table 31 — Platform object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$..acquisitionInformation[*].platform.type
Type of the object. This property has the fixed value “Platform”.
Range: String
Fixed value: “Platform”
Zero or one (optional)
id
$..acquisitionInformation[*].platform.id
URI of platform.
E.g.,
for ENVISAT
Range: String (URI)
Zero or one (Optional)
platformShortName
$..acquisitionInformation[*].platform.platformShortName
Platform short name (e.g., “Seasat” or “ENVISAT”)
Domain: Platform
Range: String
One (mandatory)
platformSerialIdentifier
$..acquisitionInformation[*].platform.platformSerialIdentifier
Platform serial identifier (e.g., for Seasat : 1).
Domain: Platform
Range: String
Zero or one (Optional)
orbitType
$..acquisitionInformation[*].platform.orbitType
High level characterisation of main mission types taken from a codelist
Domain: Platform
Range: String
Values:
GEO, LEO
Zero or one (Optional)
Example 42: Platform encoding example
"id": "http://gcmdservices.gsfc.nasa.gov/kms/concept/1bffe898-f4a2-458e-92c5-cd7c9c1cd5f0",
"platformShortName": "Seasat",
"platformSerialIdentifier": "1",
"orbitType": "LEO"
7.9.2.  Instrument
The encoding of instrument information is identical to the encoding defined in OGC 17-003r2
[NR4]
but is repeated here for convenience of the reader.
Requirement 39:
/req/instrument
An “Instrument” object shall implement the properties shown in
Table 32
, with the value matching the type shown, and with the obligation shown.
The Instrument block contains the properties of the instrument that was used to perform the observation.
Figure 32 — Instrument Schema
A complete description of the Instrument properties is given in
Table 32
Table 32 — Instrument object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$..acquisitionInformation[*].instrument.type
Type of the object. This property has the fixed value “Instrument”.
String
Fixed value: “Instrument”
Zero or one (optional)
id
$..acquisitionInformation[*].instrument.id
URI of instrument.
E.g.,
for ENVISAT ASAR
Domain: Instrument
Range: String (URI)
Zero or one (optional)
sensorType
$..acquisitionInformation[*].instrument.sensorType
Sensor type based on codelist
Values:
OPTICAL
RADAR
ALTIMETRIC
ATMOSPHERIC
LIMB
Domain: Instrument
Range: String
Zero or one (optional)
instrumentShortName
$..acquisitionInformation[*].instrument.instrumentShortName
Instrument (Sensor) name
Domain: Instrument
Range: String
One (mandatory)
description
$..acquisitionInformation[*].instrument.description
Instrument description
Domain: Instrument
Range: String
Zero or one (optional)
Example 43: Instrument encoding example
{               "id":  "http://gcmdservices.gsfc.nasa.gov/kms/concept/a37282d4-322c-4dd0-8edc-36099b9b586c",
"sensorType": "RADAR",
"instrumentShortName": "SAR"
7.10.  Requirements class: Product Information
The product information applicable to EO Collections is a subset of the product information applicable to EO products. The encoding of this subset is borrowed from the encoding defined in OGC 17-003r2
[NR4]
Requirement Class: Product Information
/req/product-information
Target Type
Data instance
Dependency
JSON [NR1]
Requirement 40:
/req/product-information/properties
Requirement 40:
/req/product-information/properties
A “ProductInformation” object shall implement the properties shown in
Table 33
, with the value matching the type shown, and with the obligation shown.
The ProductInformation block contains the common properties related to the product belonging to the collection which is the result of the observation and acquisition of the data.
Figure 33 — ProductInformation Schema
The complete description of the AcquisitionInformation properties is given in
Table 33
. It groups a subset of properties defined in OGC 17-003r2
[NR4]
Table 33 — ProductInformation object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type
$.properties.productInformation.type
Type of the object. This property has the fixed value “ProductInformation”.
Domain: ProductInformation
Range: String
Fixed value: “ProductInformation”
Zero or one (optional)
processingLevel
$.properties.productInformation.processingLevel
Processing level applied to the product.
Domain: ProductInformation
Range: String
“1A”, “1B”, “1C”, “2”, “3”
Zero or one (optional)
productType
$.properties.productInformation.productType
Describes the product types available within the collection.
Domain: ProductInformation
Range: Array of String
Zero or one (optional)
resolution
$.properties.productInformation.resolution
Product resolutions. A single collection may contain products of different resolutions, e.g., the VITO CGS_S2_FAPAR collection includes products with 10m and 20m resolution.
Unit of measure is SI base unit (m) without prefix.
Domain: ProductInformation
Range: Array of Double
Zero or one (optional)
timeliness
$.properties.productInformation.timeliness
Timeliness of the product, such as “near real time”, “rush”. Possible values are mission specific and shall refer to mission/ground segment dedicated codeSpace.
Example of values could be “NRT”, “NOMINAL”, “NTC” or “STC”
Domain: ProductInformation
Range: String
Zero or one (optional)
referenceSystemIdentifier
$.properties.productInformation.referenceSystemIdentifier
Indicates if product is geo-referenced, (in which case should point to a code space for the CRS), when not supplied it is assumed that the product is provided in “raw” satellite frame of reference
E.g.,
Domain: ProductInformation
Range: String (URI)
Zero or one (Optional)
Example 44: ProductInformation encoding example
"referenceSystemIdentifier": "http://www.opengis.net/def/crs/EPSG/0/32631",
"timeliness": "NOMINAL",
"processingLevel": "3",
"resolution": [ 10, 20 ],
"productType": [ "FAPAR" ],
8.  Extensibility
8.1.  Additional properties
In the current EO Collection metadata GeoJSON(-LD) Encoding Standard, an “extension” is any property, or object type not defined by the current document. Consuming implementations that encounter unfamiliar extensions shall not stop processing or signal an error and shall continue processing the items as if those properties were not present. Note that support for extensions can vary across implementations and no normative processing model for extensions is defined. Accordingly, implementations that rely too heavily on the use of extensions may experience reduced interoperability with other implementations.
For extensions, JSON-LD
[NR13]
is used as the primary mechanism for defining and disambiguating extensions. Implementations that wish to fully support extensions should use JSON-LD mechanisms.
It is important to note that the JSON-LD Processing Algorithms
[OR4]
, as currently defined, will silently ignore any property not defined in a JSON-LD @context. Implementations that publish EO OpenSearch Response documents containing extension properties should provide a @context definition for all extensions.
8.2.  JSON-specific constructs
It is important to note that there are valid JSON constructs which cannot be used within a JSON-LD document. For instance, JSON-LD forbids “arrays of arrays” as used by the GeoJSON specification. While implementations are free to use such constructs as extensions within an EO Dataset Metadata document, consumers that use the standard JSON-LD Processing Algorithms will be required to either ignore such extensions or map those to alternative compatible constructs prior to applying the JSON-LD algorithms. Complex geometries can be converted to GeoSPARQL
[OR23]
“Well-Known Text” representations as illustrated in the non-normative example below.
Example 45: JSON-LD encoding example using GeoSPARQL
"@context": {
"gj": "https://purl.org/geojson/vocab#",
"gsp": "http://www.opengis.net/ont/geosparql#"
},
"@type": [
"gj:Feature",
"gsp:Feature"
],
"@id": "http://fedeo.esa.int/opensearch/request/?parentIdentifier=SEA_GEC_1P&uid=SE1_OPER_SEA_GEC_1P_19780927T010430_19780927T010445_001316_0000_2267_9B4F",
"gsp:hasGeometry": {
"@type": "gsp:Geometry",
"gsp:asWKT": "Polygon((-2.682513, 63.261372, -2.695740, 61.997604, 0.005087, 61.965195, 0.135472, 63.227173, -2.682513, 63.261372))"
},
...
Other implementations may encode geometries as recommended by the GeoDCAT-AP specification
[OR15]
§II.10.
Figure 34 — Location Schema
Complete description of Location is given in
Table 34
Table 34 — Location object properties
JSON Property
Definition
Data type and values
Multiplicity and use
type

$.properties.spatial.type
Type of the object. This property has the fixed value “Location”.
Range: String

Fixed value: “Location”
Zero or one (optional)
id

$.properties.spatial.type
URI of location object.
Range: String (URI)
Zero or one (optional)
geometry
$.properties.spatial.geometry
Associates the resource with the corresponding geometry encoded as a typed literal (in WKT, GML or GeoJSON). See also
[OR32]
Range: array of LOCN Geometry Objects
[OR32]
One or more (mandatory)
Example 46: JSON encoding example using Location
"@context": {
},
"type": "Feature",
"geometry": null,
"properties": {
"spatial": {
"geometry": [
"type": "gsp:gmlLiteral",
"value": "-180 -90180 90"
},
"type": "gsp:wktLiteral",
"value": "POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90))"
},
"type": "https://www.iana.org/assignments/media-types/application/vnd.geo+json",
"value": "{\"type\":\"Polygon\",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"urn:ogc:def:crs:OGC:1.3:CRS84\"}},\"coordinates\":[[[-180,-90],[-180,90],[180,90],[180,-90],[-180,-90]]]}"
Example 47: JSON-LD encoding example using Location
"@context": {
"dcat": "http://www.w3.org/ns/dcat#",
"dct": "http://purl.org/dc/terms/",
"gsp": "http://www.opengis.net/ont/geosparql#",
"locn": "http://www.w3.org/ns/locn#",
},
"dct:spatial": {
"@type": "dct:Location",
"locn:geometry": [
"@type": "gsp:gmlLiteral",
"@value": "-180 -90180 90"
},
"@type": "gsp:wktLiteral",
"@value": "POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90))"
},
"@type": "https://www.iana.org/assignments/media-types/application/vnd.geo+json",
"@value": "{\"type\":\"Polygon\",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"urn:ogc:def:crs:OGC:1.3:CRS84\"}},\"coordinates\":[[[-180,-90],[-180,90],[180,90],[180,-90],[-180,-90]]]}"
9.  Media Types for Any Data Encoding(s)
When EO OpenSearch Responses are delivered using HTTP, the following MIME media types shall be used:
Table 35 — Media types
Media type
Description
#1
application/geo+json
GeoJSON representation with implicit normative context or normative context linked via a
HTTP Link Header.
See examples in annexes D.1.*.2.
#2
application/ld+json;profile=”
GeoJSON-LD representation compacted according to the normative context and with all context information within the body of the document.
See examples in annexes D.1.*.3.
#3
application/ld+json
GeoJSON-LD representation with all context information within the body of the document.
See examples in annexes D.1.*.4.
#4
application/ld+json;profile=”
GeoJSON-LD representation
with all context information within the body of the document.
See examples in annexes D.1.*.4.
#5
text/turtle;profile=”
Turtle
[OR12]
representation
equivalent to representation #4.
#6
application/rdf+xml;profile=”
RDF/XML
[OR11]
representation equivalent to representation #4.
See example in Annex D.1.2.5.
Uses “profile” to indicate RDF vocabulary as proposeded in “Negotiating Profiles in HTTP”, draft-svensson-accept-profile-00, available at
10.  Future Work (Non-Normative)
Several future enhancements of this proposed document are possible. Obvious enhancements are as follows.
Improve alignment with GeoDCAT-AP specification
[OR15]
Refactor and refine JSON Schema
[OR7]
in Annex for documentation and structural validation by referring to external JSON schemas.
Extend JSON schema to allow properties such as “abstract”, “license”, “accessRights” etc. to contain rich text, e.g., “text/markdown” instead of or in addition to “text/plain”. Consider use of mime-bundle JSON object as defined by Jupyter Notebook format
Include annex with W3C Shapes Constraint Language (SHACL)
or Shape Expressions (ShEx)
to formally define the structure of the JSON-LD response elements.
Add alternative GeoJSON Feature encoding compatible with OGC API — Features — Part 1: Core (OGC 17-069r3
), i.e. different encoding of links (e.g., $.links instead of $.properties.links), use of “id” which is not a URI (currently “identifier”) etc., add “self” link (currently “id”).
Annex A
(normative)
ABSTRACT TEST SUITE
A.1.  Introduction
Conformance is tested using a set of JSON Schema
[OR7]
definitions which formalize the requirements described above. Strictly, each object definition is a “JSON Schema,” so a JSON schema document may include multiple, sometimes nested, “JSON Schemas,” providing the definition of the objects. Using JSON References, JSON schema supports inclusion of schemas defined in a JSON schema document into new schemas defined in the same or another document, so standard JSON objects may be defined once and re-used in multiple contexts, and a set of related object definitions may be composed from multiple documents.
The dependencies of the requirement classes (green) and requirements (orange) correspond to the dependencies of the JSON Schema definitions as shown in the Figure below. Arrows indicate dependencies.
Figure A.1 — Conformance and requirements class dependencies
A.2.  Conformance Class: /conf/feature
Conformance Class
/conf/feature
Requirements
/req/feature
Dependency
A JSON Schema Validator
Test
/conf/earthobservation
Requirement
req/feature/properties,
[req/geometry],
[req/properties].
Test purpose
Verify that the JSON instance document is a valid Feature object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.3.  Conformance Class: /conf/properties
Conformance Class
/conf/properties
Requirements
/req/properties
Dependency
A JSON Schema Validator
Test
/conf/properties
Requirement
req/properties/properties,
req/properties/data-identification,
req/properties/decriptive-keywords,
req/properties/related-url,
[req/acquisition-information],
[req/product-information],
[req/metadata-information],
req/temporal-extent,
req/location,
[req/data-identification],
[req/descriptive-keywords],
[req/related-url].
Test purpose
Verify that the JSON instance document is a valid Properties object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.4.  Conformance Class: /conf/metadata-information
Conformance Class
/conf/metadata-information
Requirements
/req/metadata-information
Dependency
A JSON Schema Validator
Test
/conf/metadata-information
Requirement
req/metadata-information/properties
req/standard
Test purpose
Verify that the JSON instance document is a valid MetadataInformation object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.5.  Conformance Class: /conf/data-identification
Conformance Class
/conf/data-identification
Requirements
/req/data-identification
Dependency
A JSON Schema Validator
Test
/conf/data-identification
Requirement
req/data-identification/properties
req/data-identification/data-dates
req/data-identification/data-contact
req/data-identification/resource-constraints
req/data-dates
[req/data-contact]
[req/resource-constraints]
req/provenance-statement
[req/activity]
Test purpose
Verify that the JSON instance document is a valid DataIdentification object.
Test method
method Validate the JSON instance document using the appropriate object definition from the JSON Schema
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.6.  Conformance Class: /conf/data-contact
Conformance Class
/conf/data-contact
Requirements
/req/data-contact
Dependency
A JSON Schema Validator
Test
/conf/data-contact
Requirement
req/data-contact/properties
req/agent
[req/attribution]
Test purpose
Verify that the JSON instance document is a valid DataContact object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.7.  Conformance Class: /conf/attribution
Conformance Class
/conf/attribution
Requirements
/req/attribution
Dependency
A JSON Schema Validator
Test
/conf/attribution
Requirement
req/attribution/properties
req/agent
Test purpose
Verify that the JSON instance document is a valid Attribution object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.8.  Conformance Class: /conf/activity
Conformance Class
/conf/activity
Requirements
/req/activity
Dependency
A JSON Schema Validator
Test
/conf/activity
Requirement
req/activity/properties
[req/association]
req/entity
Test purpose
Verify that the JSON instance document is a valid Activity object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.9.  Conformance Class: /conf/association
Conformance Class
/conf/association
Requirements
/req/association
Dependency
A JSON Schema Validator
Test
/conf/association
Requirement
req/association/properties
[req/plan]
Test purpose
Verify that the JSON instance document is a valid Association object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.10.  Conformance Class: /conf/plan
Conformance Class
/conf/plan
Requirements
/req/plan
Dependency
A JSON Schema Validator
Test
/conf/plan
Requirement
req/plan/properties
req/standard
Test purpose
Verify that the JSON instance document is a valid Plan object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.11.  Conformance Class: /conf/resource-constraints
Conformance Class
/conf/resource-constraints
Requirements
/req/resource-constraints
Dependency
A JSON Schema Validator
Test
/conf/resource-constraints
Requirement
req/resource-constraints/properties
req/standard
req/license-document
req/rights-statement
req/use-constraints
req/access-constraints
Test purpose
Verify that the JSON instance document is a valid ResourceConstraints object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.12.  Conformance Class: /conf/descriptive-keywords
Conformance Class
/conf/descriptive-keywords
Requirements
/req/descriptive-keywords
Dependency
A JSON Schema Validator
Test
/conf/descriptive-keywords
Requirement
req/descriptive-keywords/properties
req/category
req/location-keywords
req/temporal-keywords
Test purpose
Verify that the JSON instance document is a valid DescriptiveKeywords object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.13.  Conformance Class: /conf/related-url
Conformance Class
/conf/related-url
Requirements
/req/related-url
Dependency
A JSON Schema Validator
Test
/conf/related-url
Requirement
req/related-url/properties
[req/offering]
[req/links]
Test purpose
Verify that the JSON instance document is a valid RelatedUrl object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.14.  Conformance Class: /conf/links
Conformance Class
/conf/links
Requirements
/req/links
Dependency
A JSON Schema Validator
Test
/conf/links
Requirement
req/links/properties,
req/link
Test purpose
Verify that the JSON instance document is a valid Links object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.15.  Conformance Class: /conf/offering
Conformance Class
/conf/offering
Requirements
/req/offering
Dependency
A JSON Schema Validator
Test
/conf/offering
Requirement
req/offering/properties,
req/operation
Test purpose
Verify that the JSON instance document is a valid Offering object as defined in OGC 14-055r2
[NR5]
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.16.  Conformance Class: /conf/spatial-information
Conformance Class
/conf/spatial-information
Requirements
/req/spatial-information
Dependency
A JSON Schema Validator
Test
/conf/spatial-information
Requirement
req/category
[req/geometry]
req/location-keywords
Test purpose
Verify that the JSON instance document is a valid SpatialInformation.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.17.  Conformance Class: /conf/geometry
Conformance Class
/conf/geometry
Requirements
/req/geometry
Dependency
A JSON Schema Validator
Test
/conf/geometry
Requirement
req/geometry/properties
Test purpose
Verify that any objects within the document with a “type” property that matches one of the types from GeoJSON conforms to the GeoJSON format
[NR2]
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.18.  Conformance Class: /conf/temporal-information
Conformance Class
/conf/temporal-information
Requirements
/req/temporal-information
Dependency
A JSON Schema Validator
Test
/conf/temporal-information
Requirement
req/temporal-extent
req/temporal-keywords
Test purpose
Verify that the JSON instance document is a valid TemporalInformation object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.19.  Conformance Class: /conf/acquisition-information
Conformance Class
/conf/acquisition-information
Requirements
/req/acquisition-information
Dependency
A JSON Schema Validator
Test
/conf/acquisition-information
Requirement
req/acquisition-information/properties,
req/platform,
req/instrument,
req/temporal-extent.
Test purpose
Verify that the JSON instance document is a valid AcquisitionInformation object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
A.20.  Conformance Class: /conf/product-information
Conformance Class
/conf/product-information
Requirements
/req/product-information
Dependency
A JSON Schema Validator
Test
/conf/product-information
Requirement
req/product-information/properties
Test purpose
Verify that the JSON instance document is a valid ProductInformation object.
Test method
Validate the JSON instance document using the appropriate object definition from the JSON Schema (
Annex E
). Pass if no errors reported. Fail otherwise.
Test type
Capability
Annex B
(informative)
INTERPRETING JSON AS JSON-LD
The JSON-LD encoding proposed in this annex supports a seamless transition from GeoJSON based implementations to JSON-LD based implementations with a minimum number of edits. The GeoJSON encoding proposed can be interpreted as JSON-LD by JSON-LD-aware implementations through the use of the normative @context document provided in this annex.
B.1.  Introduction
B.1.1.  JSON-LD
The serialized GeoJSON form of an EO Dataset Series document shall be consistent with what would be produced by the standard JSON-LD 1.0 Processing Algorithms and API
[OR4]
Compaction Algorithm using, at least, the normative JSON-LD @context definition provided in “Annex B: normative JSON-LD @context definition.” Implementations may augment the provided @context with additional @context definitions but shall not override or change the normative context. Implementations may also use additional properties and values not defined in the JSON-LD @context with the understanding that any such properties will likely be unsupported and ignored by consuming implementations that use the standard JSON-LD algorithms. See the Extensibility section for more information on handling extensions within EO Dataset Series documents.
JSON-LD uses the special @context property to define the processing context. The value of the @context property is defined by the JSON-LD specification. Implementations producing EO Collection metadata documents should include a @context property with a value that includes a reference to the normative JSON-LD @context definition using the URL “https://www.opengis.net/spec/eoc-geojson/1.0.” Implementations may use the alternative URL “http:// www.opengis.net/spec/eoc-geojson/1.0” instead.
When a JSON-LD enabled EO Collection metadata implementation encounters a GeoJSON document identified using the “application/geo+json” MIME media type, and that document does not contain a @context property whose value includes a reference to the normative JSON-LD @context definition, the implementation shall assume that the normative @context definition still applies.
Alternatively, implementations can refer to the normative JSON-LD context document via an HTTP Link header as described in section 6.8 of the JSON-LD specification
[NR13]
. This allows the GeoJSON documents to be unambiguously machine readable as JSON-LD.
Example 48: Referencing a JSON-LD context from a GeoJSON document
GET /document.json HTTP/1.1
Host: example.com
Accept: application/ld+json,application/geo+json,*/*;q=0.1
====================================
HTTP/1.1 200 OK
...
Content-Type: application/geo+json
Link: ; rel="http://www.w3.org/ns/json-ld#context"; type="application/ld+json"
. . .
B.1.2.  Semantic Web and JSON-LD
The W3C Semantic Web Activity is defining a collection of technologies that enables a “Web of data” where information is easily shared and reused across applications. Some key pieces of this technology stack are the RDF (Resource Description Framework), RDFS (RDF Schema) data models [OR9, OR10] and JSON-LD
[NR13]
. The JSON-LD encoding proposed in the current document can be interpreted as the proposed encoding in RDF for EO Collection metadata. Each JSON(-LD) property proposed corresponds to an RDF predicate which is represented with a URI.
Figure B.1 — RDF Triple
RDF is a data model built on edge-node “graphs.” Each link in a graph consists of three things (with many aliases depending on the mapping from other types of data models):
Subject (start node, instance, entity, feature);
Predicate (verb, property, attribute, relationship, link); and
Object (value, end node, non-literal values can be used as a Subject).
Any of the three values in a single triple can be represented via a URI (with an optional fragment identifier). Subjects and objects are called nodes. Objects can also be represented as a literal value. Note that the same node may play the role of a Subject in some edges, and the role of the Object in others.
All proposed properties are defined (via a normative @context document) with an URI from existing, well-known, vocabularies where available, e.g., Dublin Core (dct:), GeoJSON-LD (gj:), Atom (atom:), OGC Web Context (owc:) etc.
In the proposed specification, the “id” JSON property (or “@id” JSON-LD property) corresponds to a URI representing a Subject or Object.
B.2.  JSON-LD @context definition
B.2.1.  JSON-LD 1.1
The current annex provides the normative JSON-LD @context which is implied by the GeoJSON encoding as explained above. It is available at
(See Annex F:).
JSON-LD 1.1
[OR21]
aware clients can apply a JSON-LD 1.1 @context to interpret the GeoJSON encoding as JSON-LD.
"@context": "http://bp.schemas.opengis.net/17-084r1/eoc-geojson/1.0/eoc-geojson.jsonld"
The context relies on JSON-LD 1.1 specific features, in particular “scoped contexts” and “nested properties.” The expressiveness of JSON-LD 1.0 @context is too limited to isolate the required context information to support compacting and expansion in a single external context document. It would require inserting inline contexts in the GeoJSON encoding.
"@context": {
"@version": 1.1,
"dct": "http://purl.org/dc/terms/",
"atom": "http://www.w3.org/2005/Atom/",
"iana": "http://www.iana.org/assignments/relation/",
"os": "http://a9.com/-/spec/opensearch/1.1/",
"eop": "http://www.opengis.net/ont/eo-geojson/1.0/",
"owc": "http://www.opengis.net/ont/owc/1.0/",
"gj": "https://purl.org/geojson/vocab#",
"gsp": "http://www.opengis.net/ont/geosparql#",
"vcard": "http://www.w3.org/2006/vcard/ns#",
"skos": "http://www.w3.org/2004/02/skos/core#",
"dcat": "http://www.w3.org/ns/dcat#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"prov": "http://www.w3.org/ns/prov#",
"locn": "http://www.w3.org/ns/locn#",
"foaf": "http://xmlns.com/foaf/0.1/",
"schema": "http://schema.org/",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"adms": "http://www.w3.org/ns/adms#",
"owl": "http://www.w3.org/2002/07/owl#",
"id": "@id",
"type": "@type",
"href": "@id",
"title": "dct:title",
"identifier": "dct:identifier",
"issued": "dct:issued",
"rights": "dct:rights",
"license": {
"@id": "dct:license",
"@context": {
"label": "rdfs:label"
},
"LicenseDocument": "dct:LicenseDocument",
"accessRights": {
"@id": "dct:accessRights",
"@context": {
"label": "rdfs:label"
},
"RightsStatement": "dct:RightsStatement",
"provenance": {
"@id": "dct:provenance",
"@context": {
"label": "rdfs:label"
},
"ProvenanceStatement": "dct:ProvenanceStatement",
"wasUsedBy": {
"@id": "prov:wasUsedBy",
"@context": {
"generated": "prov:generated",
"description": "dct:description",
"qualifiedAssociation": "prov:qualifiedAssociation",
"degree": {
"@id": "dct:type",
"@type": "@id"
},
"hadPlan": {
"@id": "prov:hadPlan",
"@context": {
"wasDerivedFrom": "prov:wasDerivedFrom"
},
"Activity": "prov:Activity",
"Association": "prov:Association",
"Entity": "prov:Entity",
"Plan": "prov:Plan",
"Standard": "dct:Standard",
"lang": {
"@id": "dct:language",
"@type": "@id",
"@context": {
"@base": "http://id.loc.gov/vocabulary/iso639-1/"
},
"kind": {
"@id": "dct:type",
"@type": "@id"
},
"doi": {
"@id": "adms:identifier",
"@type": "@id",
"@context": {
"@base": "https://doi.org/"
},
"isPrimaryTopicOf": "foaf:isPrimaryTopicOf",
"CatalogRecord": "dcat:CatalogRecord",
"updated": "dct:modified",
"published": "dct:issued",
"created": "dct:created",
"versionInfo": "owl:versionInfo",
"versionNotes": "adms:versionNotes",
"bibliographicCitation": "dct:bibliographicCitation",
"conformsTo": "dct:conformsTo",
"creator": "dct:creator",
"abstract": "dct:description",
"subtitle": "dct:description",
"subject": "dct:subject",
"date": "dct:date",
"geometry": "gj:geometry",
"Location": "dct:Location",
"temporal": "dct:temporal",
"PeriodOfType": "dct:PeriodOfTime",
"spatial": {
"@id": "dct:spatial",
"@context": {
"type": "@type",
"value": "@value",
"id": "@id",
"geometry": "locn:geometry"
},
"keyword": "dcat:keyword",
"categories": "dcat:theme",
"distribution": {
"@id": "dcat:distribution",
"@context": {
"label": "rdfs:label"
},
"Distribution": "dcat:Distribution",
"links": {
"@id": "owc:links",
"@context": {
"@vocab": "http://www.iana.org/assignments/relation/",
"type": "atom:type",
"data": "iana:enclosure",
"profiles": "iana:profile",
"previews": "iana:icon",
"alternates": "iana:alternate"
},
"Links": "owc:Links",
"offerings": {
"@id": "dcat:endpointDescription",
"@context": {
"@vocab": "http://www.opengis.net/ont/owc/1.0/",
"code": {
"@id": "owc:code",
"@type": "@id"
},
"operations": {
"@id": "owc:operations",
"@context": {
"href": "owc:href",
"code": "owc:code",
"type": "owc:type"
},
"contents": {
"@id": "owc:contents",
"@context": {
"type": "owc:type"
},
"Link": "atom:link",
"beginningDateTime": "dcat:startDate",
"endingDateTime": "dcat:endDate",
"length": "atom:length",
"Category": "skos:Concept",
"label": "skos:prefLabel",
"term": "@id",
"scheme": "skos:inScheme",
"hasGeometry": "gsp:hasGeometry",
"asWKT": "gsp:asWKT",
"Feature": "dcat:Dataset",
"FeatureCollection": "gj:FeatureCollection",
"GeometryCollection": "gj:GeometryCollection",
"LineString": "gj:LineString",
"MultiLineString": "gj:MultiLineString",
"MultiPoint": "gj:MultiPoint",
"MultiPolygon": "gj:MultiPolygon",
"Point": "gj:Point",
"Polygon": "gj:Polygon",
"bbox": {
"@container": "@list",
"@id": "gj:bbox"
},
"coordinates": {
"@container": "@list",
"@id": "gj:coordinates"
},
"features": {
"@container": "@set",
"@id": "gj:features"
},
"properties": "@nest",
"acquisitionParameters": "@nest",
"acquisitionInformation": {
"@id": "prov:wasGeneratedBy",
"@context": {
"AcquisitionInformation": "prov:Activity",
"beginningDateTime": "prov:startedAtTime",
"endingDateTime": "prov:endedAtTime"
},
"uri": "@id",
"Platform": "eop:Platform",
"platform": {
"@id": "prov:used",
"@context": {
"@vocab": "http://www.opengis.net/ont/eo-geojson/1.0/",
"orbitType": {
"@type": "@id",
"@context": {
"@base": "http://www.opengis.net/ont/eo-geojson/1.0/"
},
"Instrument": "eop:Instrument",
"instrument": {
"@id": "prov:used",
"@context": {
"@vocab": "http://www.opengis.net/ont/eo-geojson/1.0/",
"description": "dct:description",
"sensorType": {
"@type": "@id",
"@context": {
"@base": "http://www.opengis.net/ont/eo-geojson/1.0/"
},
"ProductInformation": "eop:ProductInformation",
"productInformation": {
"@id": "eop:productInformation",
"@context": {
"@vocab": "http://www.opengis.net/ont/eo-geojson/1.0/",
"referenceSystemIdentifier": {
"@type": "@id"
},
"authors": {
"@id": "dct:creator",
"@context": {
"@vocab": "http://xmlns.com/foaf/0.1/",
"Kind": "foaf:Agent",
"Individual": "foaf:Person",
"email": "foaf:mbox",
"name": "foaf:name",
"hasTelephone": null,
"hasName": "@nest",
"given-name": "givenName",
"family-name": "familyName",
"additional-name": null,
"hasAddress": null,
"uri": {
"@id": "foaf:page",
"@type": "@id"
},
"qualifiedAttribution": {
"@id": "prov:qualifiedAttribution",
"@context": {
"@vocab": "http://www.w3.org/2006/vcard/ns#",
"Attribution": "prov:Attribution",
"agent": "prov:agent",
"role": {
"@id": "dct:type",
"@type": "@id",
"@context": {
"@base": "http://inspire.ec.europa.eu/metadata-codelist/ResponsiblePartyRole/"
},
"Agent": "vcard:Kind",
"Person": "vcard:Individual",
"email": "vcard:hasEmail",
"name": "vcard:fn",
"phone": null,
"hasValue": {
"@type": "@id"
},
"uri": {
"@id": "hasURL",
"@type": "@id"
},
"contactPoint": {
"@id": "dcat:contactPoint",
"@context": {
"@vocab": "http://www.w3.org/2006/vcard/ns#",
"Agent": "vcard:Kind",
"Person": "vcard:Individual",
"email": "vcard:hasEmail",
"name": "vcard:fn",
"phone": null,
"hasValue": {
"@type": "@id"
},
"uri": {
"@id": "hasURL",
"@type": "@id"
B.2.2.  Relation with DCAT and GeoDCAT-AP
The JSON-LD representation obtained by expanding the GeoJSON representation using the @context defined in the previous section will model an EO Collection metadata as a DCAT Dataset:
"@type": "dcat:Dataset".
In certain cases, it may be useful to explicitly model the EO Collection also as a GeoJSON Feature. This can be done by either by having two types simultaneously as shown below. This result cannot be obtained by using a @context however, but is a valid JSON-LD representation as well.
"@type": ["gj:Feature", "dcat:Dataset"]
Alternatively, the JSON-LD representation can use gj:Feature instead of dcat:Dataset as shown below:
"@type": "gj:Feature"
This result can be obtained by slightly modifying the normative @context as shown below.
Example 49: Extract of modified @context from section B.2.1 (modelling as dcat:Dataset)
"Feature": "dcat:Dataset",
"features": {
"@container": "@set",
"@id": "rdfs:member"
},
Example 50: Extract of modified @context from section B.2.1 (modelling as gj:Feature).
"Feature": "gj:Feature",
"features": {
"@container": "@set",
"@id": "gj:features"
},
In the case of dcat:dataset, it might be useful to also apply the alternative representation of geographical extent using the dct:spatial relation as presented in section 8.2. This allows to comply with the corresponding representation defined in GeoDCAT-AP
[OR15]
Annex C
(normative)
VOCABULARY MAPPING
C.1.  Vocabulary to XML Mapping
The table below maps the JSON and Vocabulary Properties to the equivalent property in the original OGC 11-035r1 and ISO metadata encoding
[OR19]
[OR27]
[OR28]
. It also maps the properties to the equivalent UMM-C Model
[OR1]
[OR2]
The JSON property name included in column 1 corresponds to the JSON-LD property name included in column 2, compacted according to the normative JSON-LD context provided in annex B.2 of the current document.
Table C.1 — Vocabulary to XML Mapping
JSON Property
Vocabulary Property
JSON Property Reference
Vocabulary Reference
OGC 11-035r1, ISO19139, ISO19139-2
UMM-C
[OR2]
[OR1]
Comments
@context
$.@context
@context
[NR13]
abstract
$.properties.abstract
dct:description
[NR5]
[OR3]
[OR13]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract
/gco:CharacterString (source: UMM-C)
Data Identification | Abstract [R] (§2.2.5)
Table 7
: DataIdentification object properties
accessRights
$.properties.accessRights
dct:accessRights
[OR15]
/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:resourceConstraints/*/gmd:accessConstraints
Data Identification | Access Constraints (§2.2.16)
Table 18
: ResourceConstraints object properties
AcquisitionInformation
prov:Activity (class)
[NR4]
[OR30]
Acquisition Information (§2.7)
Table 30
: AcquisitionInformation object properties
acquisitionInformation
$.properties.acquisitionInformation
prov:wasGeneratedBy
[NR4]
[OR30]
/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation
Acquisition Information (§2.7)
Table 4
: Properties object properties
Activity
prov:Activity (class)
[OR30]
Use Constraints (§2.2.15)
Table 13
: Activity object properties
agent
$.properties.qualifiedAttribution[\*].agent
prov:agent
[OR30]
Table 10
: Attribution object properties
Agent
$.properties.qualifiedAttribution[*].agent[*]
$.properties.contactPoint[\*]
vcard:Kind (class)
[NR5]
[OR17]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
Agent
$.properties.authors[\*]
foaf:Agent (class)
[NR5]
[OR20]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
alternates
$.properties.links.alternates
iana:alternate
[NR5]
[NR10]
Related URL | …​ ( §2.4, §2.8)
Table 24
: Links object properties
Association
prov:Association (class)
[OR15]
[OR30]
Use Constraints (§2.2.15)
Table 15
: Association object properties
Attribution
prov:Attribution (class)
[OR15]
[OR30]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 10
: Attribution object properties
authors
$.properties.authors
dct:creator
[NR5]
[OR13]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
or
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/
or
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/
(Source: UMM-C)
Data Identification | Data Contact (§2.2.9)
Table 9
: DataContact object properties
See
[OR15]
Table 9
: ResponsibleParty role = “Author”
bbox
$.bbox
gj:bbox
[NR2]
[OR18]
Spatial Information | Spatial Extent [R] (§2.6.2)
Table 4
: Feature object properties
beginningDateTime
$.properties.temporal.beginningDateTime
dcat.startDate
[NR4]
[OR25]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent
Temporal Information | TemporalExtent (§2.5.1) | RangeDateTime |
BeginningDateTime
Temporal Information | TemporalExtent | SingleDateTime
Temporal Information | TemporalExtent | PeriodicDateTime |
StartDate
Table 29
: TemporalExtent object properties
beginningDateTime
$.properties.acquisitionInformation.acquisitionParameters.beginningDateTime
prov:startedAtTime
[NR4]
[OR30]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:status/gmd:MD_ProgressCode
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:status/gmd:MD_ProgressCode/@codeListValue
Temporal Information | TemporalExtent (§2.5.1) | RangeDateTime |
BeginningDateTime
Temporal Information | TemporalExtent | SingleDateTime
Temporal Information | TemporalExtent | PeriodicDateTime |
StartDate
Data Identification | Collection Progress [R] (§2.2.13)
bibliographicCitation
$.properties.bibliographicCitation
dct:bibliographicCitation
[OR25]
Data Identification | Publication Reference (§2.2.18)
Table 7
: DataIdentification object properties
categories
$.properties.categories
dcat:theme
[NR5]
[OR13]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString
(Source: UMM-C)
Descriptive Keywords | Science Keywords [R] (§2.3.2)
Spatial Information | Location Keywords (§2.6.4)
Temporal Information | Temporal Keywords (§2.5.2)
Acquisition Information | Project (§2.7.3)
Data Identification | Collection Data Type (§2.2.10)
Table 21
: DescriptiveKeywords object properties
See also section 7.7.2.
Category
skos:Concept (Class)
[NR5]
[OR31]
/gmi:MI_Metadata/gmd:identificationInfo\/\/gmd:descriptiveKeywords/gmd:MD_Keywords
Descriptive Keywords (§2.3)
Table 22
: Category object properties
code
$.properties.offerings[\*].code
owc:code
[NR5]
[NR5]
Table 26
: Offering object properties
code
$.properties.offerings[*].operations[*].code
owc:code
[NR5]
[NR5]
Table 27
: Operation object properties
conformsTo
$.properties.isPrimaryTopicOf.conformsTo
dct:conformsTo
[OR15]
/gmd:MD_Metadata/gmd:metadataStandardName/gco:CharacterString
Table 6
: MetadataInformation object properties
conformsTo
$.properties.conformsTo
dct:conformsTo
[OR15]
Table 7
: DataIdentification object properties
contactPoint
$.properties.contactPoint
dcat:contactPoint
[NR5]
[OR13]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
or
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/
or
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/
(Source: UMM-C)
Data Identification | Data Contact (§2.2.9)
Table 9
: DataContact object properties
See
[OR15]
Table 9
: ResponsibleParty role = “Point of Contact”
contents
$.properties.offerings[\*].contents
owc:contents
[NR5]
[NR5]
Related URL | …​ ( §2.4, §2.8)
coordinates
$.geometry.coordinates
gj:coordinates
[NR2]
[OR18]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification
/gmd:extent/gmd:EX_Extent/gmd:geographicElement/ gmd:EX_GeographicBoundingBox
Spatial Information | Spatial Extent [R] (§2.6.2)
created
$.properties.isPrimaryTopicOf.created
dct:created
N/A
Metadata Information / Metadata Date (§2.1.2)
(CREATE)
Table 6
: MetadataInformation object properties
created
$.properties.created
dct:created
gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:dateType/gmd:CI_DateTypeCode
codeListValue : creation
(See
[OR33]
§2.3.4).
Data Identification | Data Dates (§2.2.7)
Table 8
: DataDates object properties
data
$.properties.links.data
iana:enclosure
[NR5]
[NR10]
Related URL | …​ ( §2.4, §2.8)
Table 24
: Links object properties
date
$.properties.date
dct:date
[NR5]
[OR3]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:DateTime
Data Identification | Data Dates (§2.2.7)
Data Identification | Collection Progress (§2.2.13)
Table 7
: DataIdentification object properties
degree
$.properties.wasUsedBy[*].generated.degree
dct:type
[OR15]
\/\/dataQualityInfo/*/report/*/result/*/pass
Related URL | …​ ( §2.4, §2.8)
Table 14
: Entity object properties
describedby
$.properties.links.describedby
iana:describedby
[NR10]
Related URL | …​ ( §2.4, §2.8)
Table 24
: Links object properties
description
$.properties.wasUsedBy[*].generated.description
dct:description
[OR15]
\/\/dataQualityInfo/*/report/*/result/*
RelatedURL/Description (§2.4)
Table 14
: Entity object properties
description
$..acquisitionInformation[*].instrument.description
dct:description
[OR15]
Table 32
: Instrument object properties
doi
$.properties.doi
adms:identifier
[OR25]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code/gco:CharacterString
where
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:description/gco:CharacterString = DOI (source: UMM-C)
Data Identification | DOI (§2.2.4) [R]
Table 7
: DataIdentification object properties
email
$.properties.qualifiedAttribution[*].agent[*].email
$.properties.contactPoint[*].email
vcard:hasEmail
[NR5]
[OR17]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
email
$.properties.authors[*].email
foaf:mbox
[NR5]
[OR20]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
endingDateTime
$.properties.temporal.endingDateTime
dcat:endDate
[OR25]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent
Temporal Information | TemporalExtent (§2.5.1) | RangeDateTime |
endingDateTime
Temporal Information | TemporalExtent | SingleDateTime
Temporal Information | TemporalExtent | PeriodicDateTime | EndDate
Table 29
: TemporalExtent object properties
endingDateTime
$.properties.acquisitionInformation.acquisitionParameters.endingDateTime
prov:endedAtTime
[OR30]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:status/gmd:MD_ProgressCode
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:status/gmd:MD_ProgressCode/@codeListValue
Temporal Information | TemporalExtent (§2.5.1) | RangeDateTime |
endingDateTime
Temporal Information | TemporalExtent | SingleDateTime
Temporal Information | TemporalExtent | PeriodicDateTime | EndDate
Data Identification | Collection Progress [R] (§2.2.13)
Entity
prov:Entity (Class)
[OR15]
[OR30]
\/\/dataQualityInfo/*/report/*/result/*/pass
Quality (§2.2.14)
Table 14
: Entity object properties
Feature
gj:Feature (Class) or
dcat:Dataset (class)
[NR2]
[OR18]
[OR13]
Table 4
: Feature object properties
generated
$.properties.wasUsedBy[*].generated
prov:generated
[OR15]
[OR30]
/gmi:MI_Metadata/gmd:dataQualityInfo/*/report/*/result/*/pass
Use Constraints (§2.2.15) and/or Quality (§2.2.14)
Table 13
: Activity object properties
geometry
$.geometry
gj:geometry
[NR2]
[OR18]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification
/gmd:extent/gmd:EX_Extent/gmd:geographicElement/ gmd:EX_GeographicBoundingBox
Spatial Information | Spatial Extent [R] (§2.6.2)
Table 4
: Feature object properties
geometry
$.properties.spatial.geometry
locn:geometry
[OR15]
[OR32]
Spatial Information | Spatial Extent [R] (§2.6.2)
Table 34
: Location object properties
hadPlan
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan
prov:hadPlan
[OR15]
[OR30]
dataQualityInfo/*/report/*/result/*/specification
Quality (§2.2.14)
Table 15
: Association object properties
hasAddress
$.properties.qualifiedAttribution[*].agent[*].hasAddress
$.properties.contactPoint[*].hasAddress
vcard:hasAddress
[OR17]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
hasAddress
$.properties.authors[*].hasAddress
null
[OR20]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
hasName
$.properties.qualifiedAttribution[*].agent[*].hasName
$.properties.contactPoint[*].hasName
vcard:hasName
[OR17]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
hasName
$.properties.authors[\*].hasName
@nest
[OR20]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
hasTelephone
$.properties.qualifiedAttribution[*].agent[*].hasTelephone
$.properties.contactPoint[*].hasTelephone
vcard:hasTelephone
[OR17]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
hasTelephone
$.properties.authors[*].hasTelephone
null
(Use phone property instead).
[OR20]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
href
$.properties.links.*[*].href
@id
[NR5]
[NR13]
Related URL (§2.4)
Table 25
: Link object properties
href
$.properties.offerings[*].operations[*].href
owc:href
[NR5]
[NR5]
Related URL (§2.4)
Table 27
: Operation object properties
id
$.id
@id
[NR2]
[NR13]
ShortName, Native_ID, Concept_ID, DOI (§2.2)
Table 4
: Feature object properties
identifier
$.properties.identifier
dct:identifier
[OR3]
Data Identification | ShortName [R] (§2.2.1)
Table 7
: DataIdentification object properties
Individual
$.properties.qualifiedAttribution[*].agent[*]
$.properties.contactPoint[*]
vcard:Individual (class)
[OR17]
DataCenter/ContactPerson (§2.2.8)
Table 11
: Agent object properties
Individual
$.properties.authors[*]
foaf:Person (class)
[OR20]
DataCenter/ContactPerson (§2.2.8)
Table 11
: Agent object properties
instrument
$..acquisitionInformation[*].instrument
prov:used
[NR4]
[OR30]
Acquisition Information | Instrument [R] (§2.7.2)
Table 30
: AcquisitionInformation object properties
Instrument
eop:Instrument
[NR4]
[NR4]
Acquisition Information | Instrument [R] (§2.7.2)
Table 32
: Instrument object properties
instrumentShortName
$..acquisitionInformation[*].instrument.instrumentShortName
eop:instrumentShortName
[NR4]
[NR4]
Acquisition Information | Instrument [R] (§2.7.2)
Table 32
: Instrument object properties
isPrimaryTopicOf
$.properties.isPrimaryTopicOf
foaf:isPrimaryTopicOf
[OR15]
Data Identification (§2.2)
Table 4
: Properties object properties
issued
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan.wasDerivedFrom.issued
dct:issued
[OR15]
\/\/dataQualityInfo/*/report/*/result/*/specification/*/date/*/date
Quality (§2.2.14) or
Use Constraints (§2.2.15)
Table 17
: Standard object properties
keyword
$.properties.keyword
dcat:keyword
[OR13]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString
Descriptive Keywords | Ancillary Keywords (§2.3.3)
Table 21
: DescriptiveKeywords object properties
kind
$.properties.kind
dct:type
[OR15]
/gmd:MD_Metadata/gmd:hierarchyLevel
Table 7
: DataIdentification object properties
Kind
$.properties.qualifiedAttribution[*].agent[*]
$.properties.contactPoint[*]
vcard:Kind
[OR17]
DataContact (§2.2.9)
Table 11
: Agent object properties
Kind
$.properties.authors[*]
foaf:Agent
[OR20]
DataContact (§2.2.9)
Table 11
: Agent object properties
label
$.properties.categories[*].label
skos:prefLabel
[NR5]
[OR31]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword
Descriptive Keywords (§2.3)
Table 22
: Category object properties
label
$.properties.license[
].label
$.properties.accessRights[].label
$.properties.provenance[*].label
rdfs:label
[OR15]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:useLimitation/gco:CharacterString
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:otherConstraints/gco:CharacterString
Data Identification | Use Constraints (§2.2.15)
Data Identification | Access Constraints | Description (§2.2.16)
Table 19
: LicenseDocument object properties
Table 20
: RightsStatement object properties
Table 12
: ProvenanceStatement object properties
lang
$.properties.isPrimaryTopicOf.lang
dct:language
[OR3]
[OR15]
[OR25]
gmi:MI_Metadata/gmd:language
Metadata Information | Metadata Language (§2.1.1)
Table 6
: MetadataInformation object properties
lang
$.properties.lang
dct:language
[NR5]
[OR3]
[OR13]
[OR15]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/ gmd:language/gco:CharacterString
(Source: UMM-C)
Data Identification | Data Language (§2.2.6)
Table 7
: DataIdentification object properties
lang
$.properties.links.*[*].lang
dct:language
[NR5]
[OR3]
RelatedURL/Description (§2.4)
Table 25
: Link object properties
length
$.properties.links.*[*].length
atom:length
[NR5]
[OR14]
RelatedURL/GetData/ (§2.4)
Table 25
: Link object properties
license
$.properties.license
dct:license
[OR15]
[OR25]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:useLimitation/gco:CharacterString
Data Identification | Use Constraints (§2.2.15)
Table 18
: ResourceConstraints object properties
LicenseDocument
dct:LicenseDocument (class)
[OR15]
[OR25]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:useLimitation/gco:CharacterString
UseConstraints/LicenseUrl/Linkage (§2.2.15)
Table 19
: LicenseDocument object properties
LineString
gj:LineString
[NR2]
[OR18]
SpatialExtent/HorizontalSpatialDomain/Geometry/Lines (§2.6.2)
Link
atom:link (Class)
[OR14]
Related URL | …​ ( §2.4, §2.8)
Table 25
: Link object properties
links
owc:links
[NR5]
[OR5]
Related URL | …​ ( §2.4, §2.8)
Table 4
: Properties object properties
links
owc:links
[NR5]
[OR5]
Related URL | …​ ( §2.4, §2.8)
Table 4
: Feature object properties
Links
owc:Links (Class)
Related URL | …​ ( §2.4, §2.8)
Table 24
: Links object properties
Location
dct:Location (Class)
SpatialExtent (§2.6.2)
Table 34
: Location object properties
method
$.properties.offerings[*].operations[*].method
owc:method
[NR5]
[NR5]
Table 27
: Operation object properties
MultiLineString
gj:MultiLineString
[NR2]
[OR18]
SpatialExtent/HorizontalSpatialDomain/Geometry/Lines (§2.6.2)
MultiPoint
gj:MultiPoint
[NR2]
[OR18]
/Collection/Spatial/HorizontalSpatialDomain/Geometry/Point (§2.6.2)
MultiPolygon
gj:MultiPolygon
[NR2]
[OR18]
SpatialExtent/HorizontalSpatialDomain/Geometry/GPolygons (§2.6.2)
name
$.properties.qualifiedAttribution[*].agent[*].name
$.properties.contactPoint[*].name
vcard:fn
[NR5]
[OR17]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
name
$.properties.authors[*].name
foaf:name
[NR5]
[OR20]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
offerings
$.properties.offerings
dcat:endpointDescription
[NR5]
[OR25]
Related URL | …​ ( §2.4, §2.8)
Table 23
: RelatedUrl object properties
operations
$.properties.offerings[*].operations
owc:operations
[NR5]
[NR5]
RelatedURL/GetService (§2.4)
Table 26
: Offering object properties
orbitType
$..acquisitionInformation[*].platform.orbitType
eop:orbitType
[NR4]
[NR4]
Platform/Characteristics (§2.7.1)
Table 31
: Platform object properties
Organization
$.properties.qualifiedAttribution[*].agent[*]
$.properties.contactPoint[*]
vcard:Organization (Class)
[OR17]
DataCenter (§2.2.8)
Table 11
: Agent object properties
Organization
$.properties.authors[*]
foaf:Organization (Class)
[OR20]
DataCenter (§2.2.8)
Table 11
: Agent object properties
PeriodOfTime
dct:PeriodOfTime (Class)
[OR15]
TemporalExtent (§2.5.1)
Table 29
: TemporalExtent object properties
Person
$.properties.qualifiedAttribution[*].agent[*]
$.properties.contactPoint[*]
vcard:Individual (Class)
[OR17]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
Person
$.properties.authors[*]
foaf:Person (Class)
[OR20]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
phone
$.properties.qualifiedAttribution[*].agent[*]
$.properties.contactPoint[*]
null
(Use hasTelephone property instead).
[OR17]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
phone
$.properties.authors[*]
foaf:phone
[OR20]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
Plan
prov:Plan
[OR30]
Table 16
: Plan object properties
platform
$..acquisitionInformation[*].platform
prov:used
[NR4]
[OR30]
/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation /gmi:platform/gmi:MI_Platform
Acquisition Information | Platform [R] (§2.7.1)
Table 30
: AcquisitionInformation object properties
Platform
eop:Platform
[NR4]
[NR4]
Platform (§2.7.1)
Table 31
: Platform object properties
platformSerialIdentifier
$..acquisitionInformation[*].platform.platformSerialIdentifier
eop:platformSerialIdentifier
[NR4]
[NR4]
Platform/Characteristics (§2.7.1)
Table 31
: Platform object properties
platformShortName
$..acquisitionInformation[*].platform.platformShortName
eop:platformShortName
[NR4]
[NR4]
Platform/ShortName (§2.7.1)
Table 31
: Platform object properties
Point
[NR2]
[OR18]
SpatialExtent/HorizontalSpatialDomain/Geometry/Points (§2.6.2)
Polygon
[NR2]
[OR18]
SpatialExtent/HorizontalSpatialDomain/Geometry/GPolygons (§2.6.2)
previews
$.properties.links.previews
iana:icon
[NR5]
[NR10]
Related URL | …​ ( §2.4, §2.8)
Table 24
: Links object properties
processingLevel
$.properties.productInformation.processingLevel
eop:processingLevel
[NR4]
[NR4]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:processingLevel/gmd:MD_Identifier/gmd:code/gco:CharacterString
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:processingLevel/gmd:MD_Identifier/gmd:description/gco:CharacterString
Data Identification | Processing Level [R] (§2.2.11)
Table 33
: ProductInformation object properties
productInformation
$.properties.productInformation
eop:productInformation
[NR4]
[NR4]
Data Identification — Acquisition Information — Spatial Information — Temporal Information
Table 4
: Properties object properties
ProductInformation
eop:ProductInformation (Class)
[NR4]
[NR4]
Processing Level — Collection Data Type — Spatial Representation Information
Table 33
: ProductInformation object properties
productType
$.properties.productInformation.productType
eop:productType
[NR4]
[NR4]
Entry Title
Table 33
: ProductInformation object properties
profiles
$.properties.links.profiles
iana:profile
[NR5]
[NR10]
Table 24
: Links object properties
properties
$.properties
@nest
[NR2]
[OR18]
Table 4
: Feature object properties
Properties
- (Class)
provenance
$.properties.provenance
dct:provenance
[OR15]
/gmi:MI_Metadata/gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage/gmd:statement/gco:CharacterString
Data Identification | Quality (§2.2.14)
Table 7
: DataIdentification object properties
ProvenanceStatement
dct:ProvenanceStatement (Class)
[OR15]
Data Identification | Quality (§2.2.14)
Table 12
: ProvenanceStatement object properties
published
$.properties.isPrimaryTopicOf.published
dct:issued
[NR4]
[OR13]
N/A
Metadata Information / Metadata Date / CREATE (§2.1.2)
Table 6
: MetadataInformation object properties
published
$.properties.published
dct:issued
[OR13]
gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:dateType/gmd:CI_DateTypeCode
codeListValue : publication
(See
[OR33]
§2.3.4).
Data Identification | Data Dates (§2.2.7)
Table 8
: DataDates object properties
publisher
dct:publisher
[NR5]
[OR15]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
or
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/
or
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/
Data Identification | Data Contact (§2.2.9)
See
[OR15]
Table 9
: ResponsibleParty role = “Publisher”
Table 9
: DataContact object properties
qualifiedAssociation
$.properties.wasUsedBy[*].qualifiedAssociation
prov: qualifiedAssociation
[OR15]
[OR30]
\/\/dataQualityInfo/*/report/*/result/*/specification/*/title
\/\/dataQualityInfo/*/report/*/result/*/specification/*/date/*/date
Quality (§2.2.14)
Table 13
: Activity object properties
qualifiedAttribution
$.properties.qualifiedAttribution
prov:qualifiedAttribution (Other)
[OR15]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
or
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/
or
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/
or mi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/
or
/gmi:MI_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor/gmd:MD_Distributor/gmd:distributorContact/gmd:CI_ResponsibleParty/
or
/gmi:MI_Metadata/gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage/gmd:processStep/gmd:LI_ProcessStep/gmd:processor
(Source: UMM-C)
Data Identification | Data Center (§2.2.8) – DISTRIBUTOR, ORIGINATOR, PROCESSOR.
Data Identification | Data Contact (§2.2.9)
See
[OR15]
Table 9
: ResponsibleParty role is NOT “Point of Contact”, “Publisher”, “Author”.
Table 9
: DataContact object properties
referenceSystemIdentifier
$.properties.productInformation.referenceSystemIdentifier
eop:referenceSystemIdentifier
[NR4]
[NR4]
Spatial Extent /
HorizontalSpatialDomain/Geometry/CoordinateSystem
Or
GranuleSpatialRepresentation
Table 33
: ProductInformation object properties
related
$.properties.links.related
iana:related
[NR5]
[NR10]
Related URL | …​ ( §2.4, §2.8)
Table 24
: Links object properties
request
$.properties.offerings[*].operations[*].request
owc:request
[NR5]
[NR5]
Table 27
: Operation object properties
resolution
$.properties.productInformation.resolution
eop:resolution
[NR4]
[NR4]
Platform/Instrument/Characteristics/Unit
Table 33
: ProductInformation object properties
result
$.properties.offerings[*].operations[*].result
owc:result
[NR5]
[NR5]
Table 27
: Operation object properties
rights
$.properties.rights
dct:rights
[NR5]
[OR3]
[OR25]
/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:resourceConstraints
UseConstraints (§2.2.15) or Access Constraints (§2.2.16)
Table 18
: ResourceConstraints object properties
RightsStatement
dct:RightsStatement
[OR3]
[OR25]
/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:resourceConstraints
UseConstraints (§2.2.15) or Access Constraints (§2.2.16)
Table 20
: RightsStatement object properties
role
$.properties.qualifiedAttribution[*].role
dct:type
[OR15]
gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode
DataCenter/Roles or DataCenter/ContactPerson/Roles or DataCenter/ContactGroup/Roles (§2.2.8)
Table 10
: Attribution object properties
scheme
$.properties.categories[*].scheme
skos:inScheme
[NR5]
[OR31]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:thesaurusName/gmx:Anchor
See also OGC 08-167r2
[OR22]
Descriptive Keywords (§2.3)
Table 22
: Category object properties
$.properties.links.search
iana:search
[NR10]
Related URL | …​ ( §2.4, §2.8)
Table 24
: Links object properties
sensorType
$..acquisitionInformation[*].instrument.sensorType
eop:sensorType
[NR4]
[NR4]
Platform/Instrument/Technique (§2.7)
Table 32
: Instrument object properties
spatial
$.properties.spatial
dct:spatial
[OR15]
Spatial Extent (§2.6.2)
Table 4
: Properties object properties
Standard
dct:Standard (class)
[OR15]
dataQualityInfo/*/report/*/result/*/specification
Table 17
: Standard object properties
subject
$.properties.subject
dct:subject
[OR15]
/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory/gmd:MD_TopicCategoryCode
Descriptive Keywords | ISO Topic Category (§2.3.1)
Table 21
: DescriptiveKeywords object properties
term
$.properties.categories[*].term
@id
[NR5]
[NR13]
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gmx:Anchor
See also OGC 08-167r2
[OR22]
Descriptive Keywords (§2.3)
Table 22
: Category object properties
timeliness
$.properties.productInformation.timeliness
eop:timeliness
[NR4]
[NR4]
Data Identification | Collection Data Type (§2.2.10)
Table 33
: ProductInformation object properties
title
$.properties.title
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan.wasDerivedFrom.title
$.properties.links.*[*].title
dct:title
[NR5]
[OR3]
[OR13]
/gmi:MI_Metadata/gmd:fileIdentifier/gco:CharacterString
and
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation
/gmd:CI_Citation/gmd:title/gco:CharacterString (UMM-C)
Data Identification | Entry Title [R] (§2.2.3)
Table 7
: DataIdentification object properties
Table 17
: Standard object properties
Table 25
: Link object properties
type
@type
[NR2]
[NR13]
All tables except
Table 25
: Link object properties.
type
$.properties.links.*[*].type
atom:type
[NR5]
[OR14]
Related URL | …​ ( §2.4)
Table 25
: Link object properties
type
$.properties.offerings[*].contents[*].type
owc:type
[NR5]
[NR5]
RelatedURL/GetData/MimeType or RelatedURL/GetService/MimeType (§2.4)
Table 26
: Offering object properties
type
$.properties.offerings[*].operations[*].type
owc:type
[NR5]
[NR5]
RelatedURL/GetData/MimeType or RelatedURL/GetService/MimeType (§2.4)
Table 27
: Operation object properties
up
$.properties.links.up
iana:up
[NR10]
Related URL | …​ ( §2.4, §2.8)
Table 24
: Links object properties
updated
$.properties.isPrimaryTopicOf.updated
dct:modified
[NR5]
[OR3]
[OR13]
/gmd:MD_Metadata/gmd:dateStamp
(See
[OR33]
§2.2.4).
Metadata Information | Metadata Date (§2.1.2)
Table 6
: MetadataInformation object properties
updated
$.properties.updated
dct:modified
[NR5]
[OR13]
gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:dateType/gmd:CI_DateTypeCode
codeListValue : revision
(See
[OR33]
§2.3.4).
Data Identification | Data Dates (§2.2.7)
Table 8
: DataDates object properties
uri
$.properties.qualifiedAttribution[*].agent[*].uri
$.properties.contactPoint[*].email
vcard:hasURL
[NR5]
[OR17]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
uri
$.properties.authors[*].uri
foaf:page
[NR5]
[NR13]
/gmi:MI_Metadata/gmd:contact/gmd:CI_ResponsibleParty
Data Identification | Data Contact (§2.2.9)
Table 11
: Agent object properties
versionInfo
$.properties.versionInfo
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan.wasDerivedFrom.versionInfo
$.properties.meta.conformsTo.versionInfo
owl:versionInfo
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:edition
(Source: UMM-C)
/gmd:MD_Metadata/gmd:metadataStandardVersion/gco:CharacterString
Data Identification | Version (§2.2.2)
Table 7
: DataIdentification object properties
Table 17
: Standard object properties
via
$.properties.links.via
iana:via
[NR5]
[NR10]
Related URL | …​ ( §2.4, §2.8)
Table 24
: Links object properties
wasDerivedFrom
$.properties.wasUsedBy[*].qualifiedAssociation.hadPlan.wasDerivedFrom
prov:wasDerivedFrom
[OR15]
[OR30]
dataQualityInfo/*/report/*/result/*/specification
N/A
Table 16
: Plan object properties
wasUsedBy
$.properties.wasUsedBy
prov:wasUsedBy
[OR15]
N/A
Table 7
: DataIdentification object properties
/gmi:MI_Metadata/gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:report/gmd:DQ_QuantitativeAttributeAccuracy/gmd:evaluationMethodDescription/gco:CharacterString
(Source: UMM-C)
Data Identification | Quality (§2.2.14)
Data Identification | Metadata Association (§2.2.17)
Data Identification | Purpose (§2.2.19)
Descriptive Keywords | Additional Attributes (§2.3.4)
/gmi:MI_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor/gmd:MD_Distributor/gmd:distributorTransferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource
Related URL | …​ ( §2.4, §2.8)
See UMM Common (links to service, DOI, etc…
Collection-Progress can be derived from the TemporalExtent: “Planned” (current date earlier than start date of temporal extent), “Active” (current date within temporal extent), “Completed” (current date later than end date of temporal extent).
The definition of this property in OGC 14-055r2 [NR50] (i.e. its range) is in conflict with W3C DCAT. OGC 14-055r2 requires a string, while DCAT requires a foaf:Agent.
Annex D
(informative)
ENCODING EXAMPLES
Extracts of the following examples were used in the body of the document. The current Annex includes the complete examples in their original XML format and in the proposed encodings.
The following tools were very useful to improve readability and check the examples.
XMLSpy (
(JSON-LD 1.0).
(JSON-LD 1.1).
(JSON-LD 1.1)
D.1.  Metadata Examples
D.1.1.  Example 1: Landsat.ETM.ETC
D.1.1.1.  OGC 11-035r1



LANDSAT.ETM.GTC


eng


series




ESA/ESRIN


Earth Observation helpdesk






39 06 94180777


+39 06 94180292






Via Galileo Galilei CP. 64


Frascati


00044


Italy


eohelp@eo.esa.int






http://www.earth.esa.int






pointOfContact





ISO19115


2005/Cor.1:2006






Landsat 7 ETM+ (Enhanced Thematic Mapper Plus) Geolocated Terrain Corrected Systematic processing


(LANDSAT.ETM.GTC)




1999-12-01









LANDSAT.ETM.GTC


http://earth.esa.int






This dataset contains all the Landsat 7 Enhanced Thematic Mapper high-quality ortho-rectified L1T dataset over Kiruna, Maspalomas and Matera visibility masks: Kiruna, Maspalomas and Matera Landsat 7 ETM density maps The Landsat 7 ETM+ scenes typically covers 185 x 170 km. A standard full scene is nominally centred on the intersection between a Path and Row (the actual image centre can vary by up to 100m). Each band requires 50MB (uncompressed), and Band 8 requires 200MB (panchromatic band with resolution of 15m opposed to 30m).




ESA/ESRIN


Earth Observation helpdesk






39 06 94180777


+39 06 94180292






Via Galileo Galilei CP. 64


Frascati


00044


Italy


eohelp@eo.esa.int






http://www.earth.esa.int






originator






EARTH SCIENCE > SPECTRAL/ENGINEERING > VISIBLE WAVELENGTHS


EARTH SCIENCE > SPECTRAL/ENGINEERING > INFRARED WAVELENGTHS







NASA/Global Change Master Directory (GCMD) Earth Science Keywords. Version 8.6




2018


publication






http://idn.ceos.org/










3.03







Observations and Measurements Version 1.1




2016-06-09


publication










Optical/Multi Spectral Radiometry High Resolution







Earth Online - Typologies




2017


publication










917 km







Observations and Measurements Extension




2017


publication










Sun Synchronous







Observations and Measurements Version 1.1




2016-06-09


publication










185 km







Observations and Measurements Extension




2017


publication










LANDSAT







ESA Earth Online - Missions




2017


publication










ETM







ESA Earth Online - Instruments




2017


publication










Land > Soil







ESA Earth Online - Earth Topics




2017


publication










Earth Online


ESA OADS






Fast Registration with immediate access


Data are available


online


upon


fast registration





Utilisation of this data is subject to the Terms and Conditions for ESA's Third Party Missions scheme




eng


geoscientificInformation







1999-12-01
2003-12-31











-180


180


-90


90














Level 1













https://earth.esa.int/web/guest/-/landsat-7-etm-enhanced-thematic-mapper-plus-geolocated-terrain-corrected-systematic-processing


























LANDSAT


LANDSAT




1972-07-23











LANDSAT




LANDSAT




NOAA







NASA







USGS









ETM


ETM+




1972-07-23









ETM









Enhanced Thematic Mapper Plus








D.1.1.2.  GeoJSON
"type": "Feature",
"id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/geo%2Bjson&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=LANDSAT.ETM.GTC",
"geometry": {
"type": "Polygon",
"coordinates": [
-180,
-90
],
180,
-90
],
180,
90
],
-180,
90
],
-180,
-90
},
"properties": {
"title": "LANDSAT 7 ETM+ (Enhanced Thematic Mapper Plus) Geolocated Terrain Corrected Systematic processing (LANDSAT.ETM.GTC)",
"kind": "http://purl.org/dc/dcmitype/Collection",
"identifier": "LANDSAT.ETM.GTC",
"abstract": "This dataset contains all the Landsat 7 Enhanced Thematic Mapper high-quality ortho-rectified L1T dataset over Kiruna, Maspalomas and Matera visibility masks. The Landsat 7 ETM+ scenes typically covers 185 x 170 km. A standard full scene is nominally centred on the intersection between a Path and Row (the actual image centre can vary by up to 100m). Each band requires 50MB (uncompressed), and Band 8 requires 200MB (panchromatic band with resolution of 15m opposed to 30m).",
"date": "1999-07-01T00:00:00Z/2003-12-31T00:00:00Z",
"updated": "2003-12-31T00:00:00Z",
"temporal": {
"beginningDateTime": "1999-07-01T00:00:00Z",
"endingDateTime": "2003-12-31T00:00:00Z"
},
"isPrimaryTopicOf": {
"type": "CatalogRecord",
"updated": "2019-07-17T00:00:00Z",
"published": "1999-07-01T00:00:00Z",
"lang": "en"
},
"categories": [
"term": "http://www.eionet.europa.eu/gemet/concept/3650",
"label": "Geology"
},
"term": "http://gcmdservices.gsfc.nasa.gov/kms/concept/03f0c0a3-04a7-4ef8-8ec0-3c2266510815",
"label": "Science Keywords > Earth Science > Spectral/Engineering > Visible Wavelengths > Visible Imagery"
},
"term": "http://gcmdservices.gsfc.nasa.gov/kms/concept/c7a09e9f-3c99-4b31-a521-313c379ba2b4",
"label": "LANDSAT-7"
],
"offerings": [
"code": "http://www.opengis.net/spec/owc-geojson/1.0/req/wps",
"operations": [
"code": "Execute",
"method": "POST",
"href": "http://185.52.193.7/wps-proxy/"
},
"code": "http://www.opengis.net/spec/owc-geojson/1.0/req/wcs",
"operations": [
"code": "GetCapabilities",
"method": "GET",
"href": "http://131.176.196.55/wcs?service=WCS&Request=GetCapabilities"
},
"code": "DescribeCoverage",
"method": "GET",
"type": "application/xml",
"href": "http://131.176.196.55/wcs?service=WCS&Request=DescribeCoverage&version=2.0.0&CoverageId=LE7_RGB"
],
"license": [
"type": "LicenseDocument",
"label": "Fast Registration with immediate access Data is available via EOLI-SA upon registration for the On The Fly Service. For information on access and use of the On-The-Fly service please refer to the OTF FAQ page and news of 28 July 2016."
],
"accessRights": [
"type": "RightsStatement",
"label": "Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions"
],
"links": {
"profiles": [
"href": "http://www.opengis.net/spec/owc-geojson/1.0/req/core"
},
"href": "http://www.opengis.net/spec/eoc-geojson/1.0/req/core"
],
"alternates": [
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/atom%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=LANDSAT.ETM.GTC&recordSchema=server-choice",
"type": "application/atom+xml",
"title": "Atom format"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19139-2%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=LANDSAT.ETM.GTC&recordSchema=iso19139-2",
"type": "application/vnd.iso.19139-2+xml",
"title": "ISO 19139-2 metadata"
],
"describedby": [
"href": "https://earth.esa.int/web/guest/data-access/browse-data-products/-/asset_publisher/y8Qb/content/landsat-7-etm-enhanced-thematic-mapper-plus-geolocated-terrain-corrected-systematic-processing-over-kiruna-and-masplomas",
"type": "text/html",
"title": "Described by"
],
"search": [
"href": "http://fedeo.esa.int/opensearch/description.xml?parentIdentifier=LANDSAT.ETM.GTC&sensorType=OPTICAL&startDate=1999-07-01T00:00:00Z&endDate=2003-12-31T00:00:00Z",
"type": "application/opensearchdescription+xml"
],
"previews": [
"href": "http://fedeo.esa.int/opensearch/images/esa.png",
"type": "image/png",
"title": "Quicklook"
},
"acquisitionInformation": [
"type": "AcquisitionInformation",
"platform": {
"type": "Platform",
"id": "http://gcmdservices.gsfc.nasa.gov/kms/concept/c7a09e9f-3c99-4b31-a521-313c379ba2b4",
"platformShortName": "Landsat",
"platformSerialIdentifier": "7"
},
"instrument": {
"type": "Instrument",
"id": "http://gcmdservices.gsfc.nasa.gov/kms/concept/4dbe7764-a2ea-4a19-b754-696c35ac3205",
"instrumentShortName": "ETM",
"sensorType": "OPTICAL"
},
"acquisitionParameters": {
"beginningDateTime": "1999-07-01T00:00:00Z",
"endingDateTime": "2003-12-31T00:00:00Z"
D.1.1.3.  JSON-LD (Compacted)
The example below is identical to the example in the previous section, only a @context property is added.
"@context": "http://bp.schemas.opengis.net/17-084r1/eoc-geojson/1.0/eoc-geojson.jsonld",
"type": "Feature",
... same content as example in previous section ...
D.1.1.4.  JSON-LD (Expanded)
"@context": {
"@version": 1.1,
"dct": "http://purl.org/dc/terms/",
"atom": "http://www.w3.org/2005/Atom/",
"iana": "http://www.iana.org/assignments/relation/",
"os": "http://a9.com/-/spec/opensearch/1.1/",
"eop": "http://www.opengis.net/ont/eo-geojson/1.0/",
"owc": "http://www.opengis.net/ont/owc/1.0/",
"gj": "https://purl.org/geojson/vocab#",
"gsp": "http://www.opengis.net/ont/geosparql#",
"vcard": "http://www.w3.org/2006/vcard/ns#",
"skos": "http://www.w3.org/2004/02/skos/core#",
"dcat": "http://www.w3.org/ns/dcat#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"prov": "http://www.w3.org/ns/prov#",
"locn": "http://www.w3.org/ns/locn#",
"foaf": "http://xmlns.com/foaf/0.1/",
"schema": "http://schema.org/",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"adms": "http://www.w3.org/ns/adms#",
"owl": "http://www.w3.org/2002/07/owl#"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/geo%2Bjson&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=LANDSAT.ETM.GTC",
"@type": "dcat:Dataset",
"dct:accessRights": {
"@type": "dct:RightsStatement",
"rdfs:label": "Utilisation of this data is subject to ESA's Earth Observation Terms and Conditions"
},
"dct:date": "1999-07-01T00:00:00Z/2003-12-31T00:00:00Z",
"dct:description": "This dataset contains all the Landsat 7 Enhanced Thematic Mapper high-quality ortho-rectified L1T dataset over Kiruna, Maspalomas and Matera visibility masks. The Landsat 7 ETM+ scenes typically covers 185 x 170 km. A standard full scene is nominally centred on the intersection between a Path and Row (the actual image centre can vary by up to 100m). Each band requires 50MB (uncompressed), and Band 8 requires 200MB (panchromatic band with resolution of 15m opposed to 30m).",
"dct:identifier": "LANDSAT.ETM.GTC",
"dct:license": {
"@type": "dct:LicenseDocument",
"rdfs:label": "Fast Registration with immediate access Data is available via EOLI-SA upon registration for the On The Fly Service. For information on access and use of the On-The-Fly service please refer to the OTF FAQ page and news of 28 July 2016."
},
"dct:modified": "2003-12-31T00:00:00Z",
"dct:temporal": {
"dcat:endDate": "2003-12-31T00:00:00Z",
"dcat:startDate": "1999-07-01T00:00:00Z"
},
"dct:title": "LANDSAT 7 ETM+ (Enhanced Thematic Mapper Plus) Geolocated Terrain Corrected Systematic processing (LANDSAT.ETM.GTC)",
"dct:type": {
"@id": "http://purl.org/dc/dcmitype/Collection"
},
"owc:links": {
"iana:alternate": [
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/atom%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=LANDSAT.ETM.GTC&recordSchema=server-choice",
"dct:title": "Atom format",
"atom:type": "application/atom+xml"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19139-2%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=LANDSAT.ETM.GTC&recordSchema=iso19139-2",
"dct:title": "ISO 19139-2 metadata",
"atom:type": "application/vnd.iso.19139-2+xml"
],
"iana:describedby": {
"@id": "https://earth.esa.int/web/guest/data-access/browse-data-products/-/asset_publisher/y8Qb/content/landsat-7-etm-enhanced-thematic-mapper-plus-geolocated-terrain-corrected-systematic-processing-over-kiruna-and-masplomas",
"dct:title": "Described by",
"atom:type": "text/html"
},
"iana:icon": {
"@id": "http://fedeo.esa.int/opensearch/images/esa.png",
"dct:title": "Quicklook",
"atom:type": "image/png"
},
"iana:profile": [
"@id": "http://www.opengis.net/spec/owc-geojson/1.0/req/core"
},
"@id": "http://www.opengis.net/spec/eoc-geojson/1.0/req/core"
],
"iana:search": {
"@id": "http://fedeo.esa.int/opensearch/description.xml?parentIdentifier=LANDSAT.ETM.GTC&sensorType=OPTICAL&startDate=1999-07-01T00:00:00Z&endDate=2003-12-31T00:00:00Z",
"atom:type": "application/opensearchdescription+xml"
},
"dcat:endpointDescription": [
"owc:code": {
"@id": "http://www.opengis.net/spec/owc-geojson/1.0/req/wps"
},
"owc:operations": {
"owc:code": "Execute",
"owc:href": "http://185.52.193.7/wps-proxy/",
"owc:method": "POST"
},
"owc:code": {
"@id": "http://www.opengis.net/spec/owc-geojson/1.0/req/wcs"
},
"owc:operations": [
"owc:code": "GetCapabilities",
"owc:href": "http://131.176.196.55/wcs?service=WCS&Request=GetCapabilities",
"owc:method": "GET"
},
"owc:code": "DescribeCoverage",
"owc:href": "http://131.176.196.55/wcs?service=WCS&Request=DescribeCoverage&version=2.0.0&CoverageId=LE7_RGB",
"owc:method": "GET",
"owc:type": "application/xml"
],
"dcat:theme": [
"@id": "http://www.eionet.europa.eu/gemet/concept/3650",
"skos:prefLabel": "Geology"
},
"@id": "http://gcmdservices.gsfc.nasa.gov/kms/concept/03f0c0a3-04a7-4ef8-8ec0-3c2266510815",
"skos:prefLabel": "Science Keywords > Earth Science > Spectral/Engineering > Visible Wavelengths > Visible Imagery"
},
"@id": "http://gcmdservices.gsfc.nasa.gov/kms/concept/c7a09e9f-3c99-4b31-a521-313c379ba2b4",
"skos:prefLabel": "LANDSAT-7"
],
"prov:wasGeneratedBy": {
"@type": "prov:Activity",
"prov:endedAtTime": "2003-12-31T00:00:00Z",
"prov:startedAtTime": "1999-07-01T00:00:00Z",
"prov:used": [
"@id": "http://gcmdservices.gsfc.nasa.gov/kms/concept/4dbe7764-a2ea-4a19-b754-696c35ac3205",
"@type": "eop:Instrument",
"eop:instrumentShortName": "ETM",
"eop:sensorType": {
"@id": "eop:OPTICAL"
},
"@id": "http://gcmdservices.gsfc.nasa.gov/kms/concept/c7a09e9f-3c99-4b31-a521-313c379ba2b4",
"@type": "eop:Platform",
"eop:platformSerialIdentifier": "7",
"eop:platformShortName": "Landsat"
},
"foaf:isPrimaryTopicOf": {
"@type": "dcat:CatalogRecord",
"dct:issued": "1999-07-01T00:00:00Z",
"dct:language": {
"@id": "http://id.loc.gov/vocabulary/iso639-1/en"
},
"dct:modified": "2019-07-17T00:00:00Z"
},
"gj:geometry": {
"@type": "gj:Polygon",
"gj:coordinates": {
"@list": [
"@list": [
"@list": [
-180,
-90
},
"@list": [
180,
-90
},
"@list": [
180,
90
},
"@list": [
-180,
90
},
"@list": [
-180,
-90
D.1.2.  Example 2: Sentinel-2
D.1.2.1.  GeoJSON
"@context": "http://bp.schemas.opengis.net/17-084r1/eoc-geojson/1.0/eoc-geojson.jsonld",
"type": "Feature",
"id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/geo%2Bjson&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2",
"geometry": {
"type": "Polygon",
"coordinates": [
-180,
-90
],
180,
-90
],
180,
90
],
-180,
90
],
-180,
-90
},
"properties": {
"title": "Sentinel-2 Products",
"kind": "http://purl.org/dc/dcmitype/Collection",
"identifier": "EOP:ESA:Sentinel-2",
"rights": "Data are available upon fast registration",
"abstract": "The Sentinel-2 mission is a land monitoring constellation of two satellites that provide high resolution optical imagery and provide continuity for the current SPOT and Landsat missions. The mission provides a global coverage of the Earth's land surface every 10 days with one satellite and 5 days with 2 satellites, making the data of great use in on-going studies. The satellites are equipped with the state-of-the-art MSI (Multispectral Imager) instrument, that offers high-resolution optical imagery.",
"date": "2015-06-23T00:00:00Z/",
"updated": "2019-07-28T15:23:57Z",
"temporal": {
"beginningDateTime": "2015-06-23T00:00:00Z"
},
"isPrimaryTopicOf": {
"type": "CatalogRecord",
"updated": "2019-07-17T00:00:00Z",
"published": "2019-07-17T00:00:00Z",
"lang": "en"
},
"categories": [
"term": "http://www.eionet.europa.eu/gemet/concept/4599",
"label": "land"
},
"term": "http://www.eionet.europa.eu/gemet/concept/4612",
"label": "land cover"
},
"term": "http://www.eionet.europa.eu/gemet/concept/1391",
"label": "chlorophyll"
},
"term": "http://www.eionet.europa.eu/gemet/concept/5496",
"label": "natural disaster"
},
"term": "http://gcmdservices.gsfc.nasa.gov/kms/concept/e5815f58-8232-4c7f-b50d-ea71d73891a9",
"label": "EARTH SCIENCE > LAND SURFACE > LAND USE/LAND COVER"
},
"term": "http://gcmdservices.gsfc.nasa.gov/kms/concept/ec0e2762-f57a-4fdc-b395-c8d7d5590d18",
"label": "EARTH SCIENCE > HUMAN DIMENSIONS > NATURAL HAZARDS"
},
"term": "https://earth.esa.int/concept/sentinel-2",
"label": "Sentinel-2"
},
"term": "https://earth.esa.int/concept/s2-msi",
"label": "MSI"
],
"keyword": [
"FedEO",
"SCIHUB"
],
"qualifiedAttribution": [
"type": "Attribution",
"agent": [
"type": "Organization",
"email": "eohelp@eo.esa.int",
"name": "ESA/ESRIN",
"hasTelephone": [
"type": "Voice",
"hasValue": "tel:+39 06 94180777"
},
"type": "Fax",
"hasValue": "tel:+39 06 94180292"
],
"uri": "http://www.earth.esa.int",
"hasAddress": {
"country-name": "Italy",
"postal-code": "00044",
"locality": "Frascati",
"street-address": "Via Galileo Galilei CP. 64"
],
"role": "originator"
],
"acquisitionInformation": [
"platform": {
"id": "https://earth.esa.int/concept/sentinel-2",
"platformShortName": "Sentinel-2",
"platformSerialIdentifier": "A"
},
"instrument": {
"id": "https://earth.esa.int/concept/s2-msi",
"instrumentShortName": "MSI",
"sensorType": "OPTICAL"
],
"productInformation": {
"referenceSystemIdentifier": "epsg:4326",
"processingLevel": "1C"
},
"links": {
"alternates": [
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/atom%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=server-choice",
"type": "application/atom+xml",
"title": "Atom format"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19139%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso",
"type": "application/vnd.iso.19139+xml",
"title": "ISO 19139 metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19139-2%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso19139-2",
"type": "application/vnd.iso.19139-2+xml",
"title": "ISO 19139-2 metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/iso19115%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso19115",
"type": "application/iso19115+xml",
"title": "ISO MENDS metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19115-3%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso19115-3",
"type": "application/vnd.iso.19115-3+xml",
"title": "ISO 19115-3 metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/dif10%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=dif10",
"type": "application/dif10+xml",
"title": "DIF-10 metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/xml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=dc",
"type": "application/xml",
"title": "Dublin Core metadata"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/rdf%2Bxml&parentIdentifier=EOP:ESA:FEDEO:COLLECTIONS&uid=EOP:ESA:Sentinel-2&recordSchema=iso",
"type": "application/rdf+xml",
"title": "RDF/XML format"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/ld%2Bjson&parentIdentifier=EOP:ESA:FEDEO:COLLECTIONS&uid=EOP:ESA:Sentinel-2&recordSchema=iso",
"type": "application/ld+json",
"title": "JSON-LD format"
},
"href": "http://fedeo.esa.int/opensearch/request/?httpAccept=text/turtle&parentIdentifier=EOP:ESA:FEDEO:COLLECTIONS&uid=EOP:ESA:Sentinel-2&recordSchema=iso",
"type": "text/turtle",
"title": "Turtle format"
],
"describedby": [
"href": "https://sentinel.esa.int/web/sentinel/missions/sentinel-2",
"type": "text/html",
"title": "ESA Sentinel Online"
],
"search": [
"href": "http://fedeo.esa.int/opensearch/description.xml?parentIdentifier=EOP:ESA:SCIHUB:S2&sensorType=OPTICAL&startDate=2015-06-23T00:00:00Z&endDate=",
"type": "application/opensearchdescription+xml"
],
"previews": [
"href": "http://fedeo.esa.int/opensearch/images/esa.png",
"type": "image/png",
"title": "Quicklook"
D.1.2.2.  JSON-LD (Compacted)
The example below is identical to the example in the previous section, only a @context property is added.
"@context": "http://bp.schemas.opengis.net/17-084r1/eoc-geojson/1.0/eoc-geojson.jsonld",
"type": "Feature",
... same content as example in previous section ...
D.1.2.3.  JSON-LD (Expanded)
"@context": {
"@version": 1.1,
"dct": "http://purl.org/dc/terms/",
"atom": "http://www.w3.org/2005/Atom/",
"iana": "http://www.iana.org/assignments/relation/",
"os": "http://a9.com/-/spec/opensearch/1.1/",
"eop": "http://www.opengis.net/ont/eo-geojson/1.0/",
"owc": "http://www.opengis.net/ont/owc/1.0/",
"gj": "https://purl.org/geojson/vocab#",
"gsp": "http://www.opengis.net/ont/geosparql#",
"vcard": "http://www.w3.org/2006/vcard/ns#",
"skos": "http://www.w3.org/2004/02/skos/core#",
"dcat": "http://www.w3.org/ns/dcat#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"prov": "http://www.w3.org/ns/prov#",
"locn": "http://www.w3.org/ns/locn#",
"foaf": "http://xmlns.com/foaf/0.1/",
"schema": "http://schema.org/",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"adms": "http://www.w3.org/ns/adms#",
"owl": "http://www.w3.org/2002/07/owl#"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/geo%2Bjson&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2",
"@type": "dcat:Dataset",
"dct:date": "2015-06-23T00:00:00Z/",
"dct:description": "The Sentinel-2 mission is a land monitoring constellation of two satellites that provide high resolution optical imagery and provide continuity for the current SPOT and Landsat missions. The mission provides a global coverage of the Earth's land surface every 10 days with one satellite and 5 days with 2 satellites, making the data of great use in on-going studies. The satellites are equipped with the state-of-the-art MSI (Multispectral Imager) instrument, that offers high-resolution optical imagery.",
"dct:identifier": "EOP:ESA:Sentinel-2",
"dct:modified": "2019-07-28T15:23:57Z",
"dct:rights": "Data are available upon fast registration",
"dct:temporal": {
"dcat:startDate": "2015-06-23T00:00:00Z"
},
"dct:title": "Sentinel-2 Products",
"dct:type": {
"@id": "http://purl.org/dc/dcmitype/Collection"
},
"eop:productInformation": {
"eop:processingLevel": "1C",
"eop:referenceSystemIdentifier": {
"@id": "epsg:4326"
},
"owc:links": {
"iana:alternate": [
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/atom%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=server-choice",
"dct:title": "Atom format",
"atom:type": "application/atom+xml"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19139%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso",
"dct:title": "ISO 19139 metadata",
"atom:type": "application/vnd.iso.19139+xml"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19139-2%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso19139-2",
"dct:title": "ISO 19139-2 metadata",
"atom:type": "application/vnd.iso.19139-2+xml"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/iso19115%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso19115",
"dct:title": "ISO MENDS metadata",
"atom:type": "application/iso19115+xml"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/vnd.iso.19115-3%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=iso19115-3",
"dct:title": "ISO 19115-3 metadata",
"atom:type": "application/vnd.iso.19115-3+xml"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/dif10%2Bxml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=dif10",
"dct:title": "DIF-10 metadata",
"atom:type": "application/dif10+xml"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/xml&parentIdentifier=EOP%3AESA%3AFEDEO%3ACOLLECTIONS&uid=EOP%3AESA%3ASentinel-2&recordSchema=dc",
"dct:title": "Dublin Core metadata",
"atom:type": "application/xml"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/rdf%2Bxml&parentIdentifier=EOP:ESA:FEDEO:COLLECTIONS&uid=EOP:ESA:Sentinel-2&recordSchema=iso",
"dct:title": "RDF/XML format",
"atom:type": "application/rdf+xml"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=application/ld%2Bjson&parentIdentifier=EOP:ESA:FEDEO:COLLECTIONS&uid=EOP:ESA:Sentinel-2&recordSchema=iso",
"dct:title": "JSON-LD format",
"atom:type": "application/ld+json"
},
"@id": "http://fedeo.esa.int/opensearch/request/?httpAccept=text/turtle&parentIdentifier=EOP:ESA:FEDEO:COLLECTIONS&uid=EOP:ESA:Sentinel-2&recordSchema=iso",
"dct:title": "Turtle format",
"atom:type": "text/turtle"
],
"iana:describedby": {
"@id": "https://sentinel.esa.int/web/sentinel/missions/sentinel-2",
"dct:title": "ESA Sentinel Online",
"atom:type": "text/html"
},
"iana:icon": {
"@id": "http://fedeo.esa.int/opensearch/images/esa.png",
"dct:title": "Quicklook",
"atom:type": "image/png"
},
"iana:search": {
"@id": "http://fedeo.esa.int/opensearch/description.xml?parentIdentifier=EOP:ESA:SCIHUB:S2&sensorType=OPTICAL&startDate=2015-06-23T00:00:00Z&endDate=",
"atom:type": "application/opensearchdescription+xml"
},
"dcat:keyword": [
"FedEO",
"SCIHUB"
],
"dcat:theme": [
"@id": "http://www.eionet.europa.eu/gemet/concept/4599",
"skos:prefLabel": "land"
},
"@id": "http://www.eionet.europa.eu/gemet/concept/4612",
"skos:prefLabel": "land cover"
},
"@id": "http://www.eionet.europa.eu/gemet/concept/1391",
"skos:prefLabel": "chlorophyll"
},
"@id": "http://www.eionet.europa.eu/gemet/concept/5496",
"skos:prefLabel": "natural disaster"
},
"@id": "http://gcmdservices.gsfc.nasa.gov/kms/concept/e5815f58-8232-4c7f-b50d-ea71d73891a9",
"skos:prefLabel": "EARTH SCIENCE > LAND SURFACE > LAND USE/LAND COVER"
},
"@id": "http://gcmdservices.gsfc.nasa.gov/kms/concept/ec0e2762-f57a-4fdc-b395-c8d7d5590d18",
"skos:prefLabel": "EARTH SCIENCE > HUMAN DIMENSIONS > NATURAL HAZARDS"
},
"@id": "https://earth.esa.int/concept/sentinel-2",
"skos:prefLabel": "Sentinel-2"
},
"@id": "https://earth.esa.int/concept/s2-msi",
"skos:prefLabel": "MSI"
],
"prov:qualifiedAttribution": {
"@type": "prov:Attribution",
"dct:type": {
"@id": "http://inspire.ec.europa.eu/metadata-codelist/ResponsiblePartyRole/originator"
},
"prov:agent": {
"@type": "vcard:Organization",
"vcard:hasAddress": {
"vcard:country-name": "Italy",
"vcard:locality": "Frascati",
"vcard:postal-code": "00044",
"vcard:street-address": "Via Galileo Galilei CP. 64"
},
"vcard:hasEmail": "eohelp@eo.esa.int",
"vcard:fn": "ESA/ESRIN",
"vcard:hasTelephone": [
"@type": "vcard:Voice",
"vcard:hasValue": {
"@id": "tel:+39 06 94180777"
},
"@type": "vcard:Fax",
"vcard:hasValue": {
"@id": "tel:+39 06 94180292"
],
"vcard:hasURL": {
"@id": "http://www.earth.esa.int"
},
"prov:wasGeneratedBy": {
"prov:used": [
"@id": "https://earth.esa.int/concept/s2-msi",
"eop:instrumentShortName": "MSI",
"eop:sensorType": {
"@id": "eop:OPTICAL"
},
"@id": "https://earth.esa.int/concept/sentinel-2",
"eop:platformSerialIdentifier": "A",
"eop:platformShortName": "Sentinel-2"
},
"foaf:isPrimaryTopicOf": {
"@type": "dcat:CatalogRecord",
"dct:issued": "2019-07-17T00:00:00Z",
"dct:language": {
"@id": "http://id.loc.gov/vocabulary/iso639-1/en"
},
"dct:modified": "2019-07-17T00:00:00Z"
},
"gj:geometry": {
"@type": "gj:Polygon",
"gj:coordinates": {
"@list": [
"@list": [
"@list": [
-180,
-90
},
"@list": [
180,
-90
},
"@list": [
180,
90
},
"@list": [
-180,
90
},
"@list": [
-180,
-90
Annex E
(normative)
Annex E: JSON SCHEMAS
E.1.  Schemas for EOC JSON validation
JSON Schema
[OR7]
representation (Draft 04) is used to define the schemas. This specification is supported by several tools (including Altova XML Spy 2016, JSONBuddy 3.5 and also Web-based tools
) and is also used to define data types in the OpenAPI specification
. It does not allow to easily model composition of schemas or inheritance without relaxing the schemas. Therefore, the property “additionalProperties” is set to true in some schema definitions to allow using the “allOf” operator to model inheritance.
The schemas below assume that numbers are not surrounded by double quotes as per the JSON Style Guidelines
[OR16]
The file is available at
(See Annex F:).
E.1.1.  eoc-geojson-schema.json
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "GeoJSON encoding of EO Collection metadata",
"description": "Definition of document with EO Collection metadata in GeoJSON encoding.  Note that numbers in the instance should not be surrounded by double-quotes to validate against this schema. ",
"$ref": "#/definitions/Feature",
"definitions": {
"Point": {
"title": "Point",
"type": "object",
"properties": {
"coordinates": {
"title": "coordinates",
"description": "One position (longitude, latitude)",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
},
"type": {
"type": "string",
"enum": [
"Point"
},
"required": [
"coordinates",
"type"
],
"additionalProperties": false
},
"MultiPoint": {
"title": "point",
"type": "object",
"properties": {
"coordinates": {
"title": "coordinates",
"description": "Array of positions",
"type": "array",
"minItems": 1,
"items": {
"description": "One position",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
},
"type": {
"type": "string",
"enum": [
"MultiPoint"
},
"required": [
"coordinates",
"type"
],
"additionalProperties": false
},
"LineString": {
"title": "LineString",
"type": "object",
"properties": {
"coordinates": {
"title": "coordinates",
"description": "Array of positions",
"type": "array",
"minItems": 2,
"items": {
"description": "One position",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
},
"type": {
"type": "string",
"enum": [
"LineString"
},
"required": [
"coordinates",
"type"
],
"additionalProperties": false
},
"MultiLineString": {
"title": "MultiLineString",
"type": "object",
"properties": {
"coordinates": {
"title": "coordinates",
"description": "Array of linestring",
"type": "array",
"minItems": 1,
"items": {
"description": "Linestring, i.e. array of positions",
"type": "array",
"minItems": 2,
"items": {
"description": "Position (longitude, lattitude)",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
},
"type": {
"type": "string",
"enum": [
"MultiLineString"
},
"required": [
"coordinates",
"type"
],
"additionalProperties": false
},
"Polygon": {
"title": "Polygon",
"type": "object",
"properties": {
"coordinates": {
"title": "coordinates",
"description": "Array of linestrings",
"type": "array",
"minItems": 1,
"items": {
"description": "Linear ring, i.e. linestring or array of positions",
"type": "array",
"minItems": 1,
"items": {
"description": "One position",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
},
"type": {
"type": "string",
"enum": [
"Polygon"
},
"required": [
"coordinates",
"type"
],
"additionalProperties": false
},
"MultiPolygon": {
"title": "MultiPolygon",
"type": "object",
"properties": {
"coordinates": {
"title": "coordinates",
"description": "Array of Polygons",
"type": "array",
"minItems": 1,
"items": {
"description": "Array of linestrings",
"type": "array",
"minItems": 1,
"items": {
"description": "Linear ring, i.e. linestring or array of positions",
"type": "array",
"items": {
"description": "One position",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
},
"type": {
"type": "string",
"enum": [
"MultiPolygon"
},
"required": [
"coordinates",
"type"
],
"additionalProperties": false
},
"Geometry": {
"title": "Geometry",
"type": "object",
"oneOf": [
"$ref": "#/definitions/Point"
},
"$ref": "#/definitions/MultiPoint"
},
"$ref": "#/definitions/LineString"
},
"$ref": "#/definitions/MultiLineString"
},
"$ref": "#/definitions/Polygon"
},
"$ref": "#/definitions/MultiPolygon"
},
"Links": {
"title": "Links",
"description": "OGC 14-055r2",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Links"
},
"patternProperties": {
"^(profiles|alternates|via|previews)$": {
"description": "OGC 14-055r2",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Link"
},
"^(search|describedby|related)$": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Link"
},
"additionalProperties": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Link"
},
"Properties": {
"title": "Properties",
"type": "object",
"allOf": [
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Properties"
},
"isPrimaryTopicOf": {
"$ref": "#/definitions/MetadataInformation"
},
"temporal": {
"$ref": "#/definitions/TemporalExtent"
},
"spatial": {
"$ref": "#/definitions/Location"
},
"acquisitionInformation": {
"description": "OGC 17-003",
"type": "array",
"items": {
"$ref": "#/definitions/AcquisitionInformation"
},
"productInformation": {
"$ref": "#/definitions/ProductInformation"
},
"$ref": "#/definitions/DataIdentification"
},
"$ref": "#/definitions/DescriptiveKeywords"
},
"$ref": "#/definitions/RelatedUrl"
},
"Feature": {
"description": "GeoJSON Feature",
"type": "object",
"properties": {
"@context": {},
"type": {
"title": "type",
"type": "string",
"enum": [
"Feature"
},
"id": {
"type": "string",
"format": "uri"
},
"geometry": {
"oneOf": [
"$ref": "#/definitions/Geometry"
},
"type": "null"
},
"properties": {
"$ref": "#/definitions/Properties"
},
"bbox": {
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"type": "number"
},
"required": [
"type",
"id",
"geometry",
"properties"
},
"Link": {
"description": "OGC 14-055r2",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"description": "MIME type",
"type": "string"
},
"title": {
"type": "string"
},
"length": {
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"lang": {
"description": "RFC-3066",
"type": "string"
},
"required": [
"href"
},
"Offering": {
"title": "Offering",
"description": "Offering as defined in OGC 14-055r2",
"type": "object",
"properties": {
"code": {
"type": "string",
"format": "uri"
},
"operations": {
"type": "array",
"items": {
"$ref": "#/definitions/Operation"
},
"contents": {
"type": "array"
},
"styles": {
"type": "array"
},
"required": [
"code"
},
"Operation": {
"description": "OGC 14-055r2",
"type": "object",
"properties": {
"code": {
"type": "string"
},
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"HEAD",
"PATCH",
"DELETE"
},
"type": {
"description": "Media type",
"type": "string"
},
"href": {
"type": "string",
"format": "uri"
},
"request": {
"type": "object"
},
"result": {
"type": "object"
},
"required": [
"code",
"method",
"href"
},
"Agent": {
"description": "vcard:Kind, foaf:Agent subset. OGC 14-055r2.",
"type": "object",
"minProperties": 1,
"properties": {
"type": {
"type": "string",
"enum": [
"Individual",
"Kind",
"Person",
"Organization",
"Agent"
},
"name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"uri": {
"type": "string",
"format": "uri"
},
"Category": {
"description": "OGC 14-055r2 §7.1.1.15",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Category"
},
"scheme": {
"type": "string",
"format": "uri"
},
"term": {
"type": "string"
},
"label": {
"type": "string"
},
"required": [
"term"
],
"additionalProperties": false
},
"DescriptiveKeywords": {
"type": "object",
"properties": {
"subject": {
"description": "Topic category",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Category"
},
"categories": {
"description": "OGC 14-055r2 - Keywords associated with a controlled vocabulary.",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Category"
},
"keyword": {
"description": "Keywords not associated with a controlled vocabulary.",
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
},
"DataContact": {
"type": "object",
"properties": {
"publisher": {
"description": "role=\"publisher\" (OGC 14-055r2)",
"type": "string"
},
"authors": {
"description": "role=\"creator\" (OGC 14-055r2)",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Agent"
},
"contactPoint": {
"description": "Role=\"contact point\"",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Agent"
},
"qualifiedAttribution": {
"description": "Role=other",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Attribution"
},
"MetadataInformation": {
"description": "dcat:CatalogRecord",
"type": "object",
"properties": {
"type": {
"description": "dcat:CatalogRecord",
"type": "string",
"enum": [
"CatalogRecord"
},
"created": {
"description": "dct:created",
"type": "string",
"format": "date-time"
},
"published": {
"description": "dct:issued",
"type": "string",
"format": "date-time"
},
"updated": {
"description": "dct:modified",
"type": "string",
"format": "date-time"
},
"lang": {
"description": "dct:language",
"type": "string"
},
"conformsTo": {
"$ref": "#/definitions/Standard"
},
"DataIdentification": {
"type": "object",
"allOf": [
"type": "object",
"properties": {
"kind": {
"description": "dct:type",
"type": "string",
"format": "uri"
},
"title": {
"description": "dct:title - OGC 14-055r2",
"type": "string"
},
"identifier": {
"type": "string"
},
"bibliographicCitation": {
"description": "dct:bibliographicCitation",
"type": "string"
},
"abstract": {
"description": "dct:description - OGC 14-055r2",
"type": "string"
},
"provenance": {
"description": "dct:ProvenanceStatement",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/ProvenanceStatement"
},
"wasUsedBy": {
"description": "prov:Activity",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Activity"
},
"doi": {
"description": "adms:identifier",
"type": "string"
},
"versionInfo": {
"description": "owl:versionInfo",
"type": "string"
},
"versionNotes": {
"description": "adms:versionNotes",
"type": "string"
},
"required": [
"title",
"identifier"
},
"$ref": "#/definitions/DataContact"
},
"$ref": "#/definitions/ResourceConstraints"
},
"$ref": "#/definitions/DataDates"
},
"Attribution": {
"description": "prov:Attribution",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Attribution"
},
"role": {
"description": "ResponsibleParty role",
"type": "string",
"enum": [
"resourceProvider",
"custodian",
"owner",
"user",
"distributor",
"originator",
"pointOfContact",
"principalInvestigator",
"processor",
"publisher",
"author"
},
"agent": {
"type": "array",
"items": {
"$ref": "#/definitions/Agent"
},
"required": [
"role",
"agent"
},
"AcquisitionParameters": {
"type": "object",
"allOf": [
"$ref": "#/definitions/TemporalExtent"
},
"TemporalExtent": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"PeriodOfTime"
},
"beginningDateTime": {
"type": "string",
"format": "date-time"
},
"endingDateTime": {
"type": "string",
"format": "date-time"
},
"AcquisitionInformation": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"AcquisitionInformation"
},
"platform": {
"$ref": "#/definitions/Platform"
},
"instrument": {
"$ref": "#/definitions/Instrument"
},
"acquisitionParameters": {
"$ref": "#/definitions/TemporalExtent"
},
"Platform": {
"type": "object",
"minProperties": 1,
"properties": {
"type": {
"type": "string",
"enum": [
"Platform"
},
"id": {
"type": "string",
"format": "uri"
},
"platformShortName": {
"type": "string"
},
"platformSerialIdentifier": {
"type": "string"
},
"orbitType": {
"type": "string",
"enum": [
"GEO",
"LEO"
},
"required": [
"platformShortName"
],
"additionalProperties": false
},
"Instrument": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Instrument"
},
"id": {
"type": "string",
"format": "uri"
},
"sensorType": {
"type": "string",
"enum": [
"OPTICAL",
"RADAR",
"ATMOSPHERIC",
"ALTIMETRIC",
"LIMB"
},
"instrumentShortName": {
"type": "string"
},
"description": {
"type": "string"
},
"required": [
"instrumentShortName"
],
"additionalProperties": false
},
"ProductInformation": {
"description": "OGC 17-003",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"ProductInformation"
},
"processingLevel": {
"description": "eop:processingLevel - OGC 17-003",
"type": "string",
"enum": [
"1A",
"1B",
"1C",
"2",
"3"
},
"productType": {
"description": "eop:productType - OGC 17-003",
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"resolution": {
"type": "array",
"minItems": 1,
"items": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"referenceSystemIdentifier": {
"type": "string"
},
"timeliness": {
"description": "eop:timeliness - OGC 17-003",
"type": "string"
},
"RelatedUrl": {
"type": "object",
"properties": {
"links": {
"$ref": "#/definitions/Links"
},
"offerings": {
"description": "OGC 14-055r2",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Offering"
},
"required": [
"links"
},
"Location": {
"description": "dct:Location (alternative representation of geometry).",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Location"
},
"id": {
"type": "string",
"format": "uri"
},
"geometry": {
"description": "locn:geometry",
"type": "array",
"items": {
"description": "locn:Geometry",
"type": "object",
"properties": {
"type": {
"type": "string"
},
"value": {
"type": "string"
},
"ResourceConstraints": {
"type": "object",
"properties": {
"rights": {
"description": "OGC 14-055r2 §7.1.2.7",
"type": "string"
},
"license": {
"description": "dct:LicenseDocument",
"type": "array",
"items": {
"$ref": "#/definitions/LicenseDocument"
},
"accessRights": {
"description": "dct:RightsStatement",
"type": "array",
"items": {
"$ref": "#/definitions/RightsStatement"
},
"LicenseDocument": {
"description": "dct:LicenseDocument",
"type": [
"object",
"string"
],
"oneOf": [
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"LicenseDocument"
},
"label": {
"description": "rdfs:label",
"type": "string"
},
"required": [
"label"
},
"description": "@id",
"type": "string",
"format": "uri"
},
"RightsStatement": {
"description": "dct:RightsStatement",
"type": [
"object",
"string"
],
"oneOf": [
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"RightsStatement"
},
"label": {
"description": "rdfs:label",
"type": "string"
},
"required": [
"label"
},
"description": "@id",
"type": "string",
"format": "uri"
},
"ProvenanceStatement": {
"title": "dct:provenance",
"description": "dct:ProvenanceStatement",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"ProvenanceStatement"
},
"label": {
"description": "rdfs:label",
"type": "string"
},
"required": [
"label"
},
"Activity": {
"description": "prov:Activity",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Activity"
},
"generated": {
"$ref": "#/definitions/Entity"
},
"qualifiedAssociation": {
"$ref": "#/definitions/Association"
},
"required": [
"generated",
"qualifiedAssociation"
},
"Entity": {
"description": "prov:Entity",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Entity"
},
"degree": {
"type": "string",
"format": "uri"
},
"description": {
"type": "string"
},
"required": [
"degree"
},
"Association": {
"description": "prov:Association",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Association"
},
"hadPlan": {
"$ref": "#/definitions/Plan"
},
"required": [
"hadPlan"
},
"Plan": {
"description": "prov:Plan",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Plan"
},
"wasDerivedFrom": {
"$ref": "#/definitions/Standard"
},
"required": [
"wasDerivedFrom"
},
"Standard": {
"description": "dct:Standard",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Standard"
},
"title": {
"description": "dct:title",
"type": "string"
},
"issued": {
"description": "dct:issued",
"type": "string",
"format": "date-time"
},
"versionInfo": {
"description": "owl:versionInfo",
"type": "string"
},
"required": [
"title"
},
"DataDates": {
"type": "object",
"properties": {
"created": {
"description": "dct:created",
"type": "string",
"format": "date-time"
},
"published": {
"description": "dct:issued",
"type": "string",
"format": "date-time"
},
"updated": {
"description": "dct:modified",
"type": "string",
"format": "date-time"
},
"date": {
"description": "dct:date - OGC 14-055r2",
"type": "string"
},
"required": [
"updated"
Annex F
(normative)
SCHEMAS AND EXAMPLES
The following schemas, context file and selected examples are provided in the OGC schema repository:
eoc-geojson-schema.json
eoc-geojson.jsonld
example-1-landsat.json
example-1-landsat.jsonld
example-2-sentinel-2.json
example-2-sentinel-2.jsonld
They are available at
Annex G
(informative)
Revision history
Table  — Revision history
Date
Version
Editor
Sections modified
Description
1/11/2017
0.1.0
Y. Coene
All
Initial version shared with CGI and ESA members of the SWG for initial comments.
13/12/2018
0.9.0 D1
Y. Coene
All
Revised version to be published on OGC SWG Web pages for feedback.
20/02/2019
0.9.0 D2
Y. Coene
All
Metadata Information requirements class separated.
Data Identification requirements class extended with additional subsections corresponding to GeoDCAT-AP encoding to allow for OGC 13-026r9 queryable mapping onto metadata properties in OGC 17-047r1.
18/07/2019
0.9.0 D5
Y. Coene
All
Completion of incomplete sections.
Further alignment with GeoDCAT-AP, and use of additional DCAT Version 2 properties.
First version of ATS in Annex A.
Update of mapping tables in Annex C.
26/07/2019
Y. Coene
All
platform and instrument (prov:used), . acquisitionInformation (prov:wasGeneratedBy), AcquisitionInformation (prov:Activity) encodings aligned with DCAT Version 2 Example 47.
acquisitionParameters property added to AcquisitionInformation for compatibility with OGC 17-003 encoding. Dates interpreted as prov:startedAtTime.
bibliographicCitation (dct: bibliographicCitation) property added to dcat:Dataset as in Example 47 of DCAT Version 2. Mappable to UMM-S “ServiceCitation” and UMM-C “PublicationReference”.
03/09/2019
0.9.0 D6
Y. Coene
Annex C
Comments from Sirko Schindler (DLR, 28/08/2019) addressed:
5.4
Namespace corrected (“eoc” instead of “os”).
7.3.1
Definition in table reformatted.
7.3.3
Reference to definition of Agent added.
7.3.4
Agent example and table extended with vcard properties.
7.4
URI allowed for LicenseDocument and RightsStatement and examples added.
10
Reference (footnote) to ShEx added as alternative for SHACL.
B.2.1
“@type”: “@id” added for url (vcard:hasURL) mapping.
Mapping for $.properties.wasUsedBy.generated.description added.
Mapping for vcard and foaf properties related to Agent updated/completed.
Annex C
Range of properties removed from table.
Mapping for all Agent related properties (vcard and foaf) revised.
24/10/2019
0.9.0 D7
Y. Coene
Annex C.1
Added references to UMM-C §2.2.1 (identifier), §2.2.5 (abstract), §2.5.1 (beginningDateTime, endingDateTime) traceability table.
24/01/2020
0.9.0 D8
Y. Coene
Annex C.1
Integrated GeoJSON UMM-C mapping table20191101 provided by Michael Morahan (NASA, 01/11/2019).
Explanation added that Collection_Progress (UMM-C) can be derived from temporal extent as agreed during CEOS WGISS SLT telco 5/12/2019.
Examples 3 and 5.
“kind” property added to example.
2.2
List of conformance classes aligned with Annex A subsections.
3.1
OGC 17-047r1 reference added to be referred to from chapter 6 to address the comments from Allan Doyle (NASA, 3/10/2019).
3.2
References for JSON-LD 1.1 and DCAT Version 2 updated.
Paragraphs 1 and 4 of chapter 6 updated addressing the comments from Allan Doyle (NASA, 3/10/2019).
7.1.1
Example extended with additional properties from corresponding table.
7.6.1
“describedby” example extended with Jupyter Notebook example.
7.10
productType and resolution arrays added to diagram, table and example addressing the comments from Martine Paepen (VITO, 11/12/2019).
Annex B.2.1
@context mapping for GeoJSON coordinates updated according to Example 84 in JSON-LD 1.1 W3C Candidate Recommendation 12 December 2019.
dcat:startDate and dcat:endDate used instead of schema:startDate and schema:endDate.
Updated with latest content of @context source file.
Annex C.1
productType and resolution added addressing the comments from Martine Paepen (VITO, 11/12/2019).
dcat:startDate and dcat:endDate used instead of schema:startDate and schema:endDate.
Annex D.1
JSON-LD examples regenerated with JSON-LD Playground and current version of @context.
Annex E.1
Schema for MultiPoint corrected.
30/01/2020
1.0.0 D9
Y. Coene
Changes applied as agreed during SWG teleconference on 30/01/2020:
7.6.1
Examples with “search” link added for OpenAPI and SPARQL.
10
Added use of rich text instead of plain text for properties such as “abstract” to future work.
10
Added GeoJSON Feature encoding inline with OGC API — Features — Part 1: Core (OGC 17-069r3) to future work.
Annex E
Annex E.2 removed. Annex E.1 contains a standalone JSON schema for validating document instances.
Annex F
List of files update as JSON schema is provided as a standalone schema.
20/05/2020
1.0.0 D10
Y. Coene
All
Remaining (green) editor notes removed.
Occurrences of OGC 17-003 replaced by OGC 17-003r2.
3.1
URL added for NR3 and NR4.
3.2
References OR21 (JSON-LD) and OR25 (DCAT Version 2) updated to current versions.
7.3.4
definition of “name” property improved (to explain difference with hasName).
hasName, given-name, family-name, additional-name added, taken from
Subproperties of hasAddress listed in table for clarity.
Example added of the use of hasName property.
B.2.1
JSON-LD @context updated to take into account changes in section 7.3.4 related to Agent properties (encoded in FOAF and VCARD depending on the context).
C.1
Rows for hasName property added in mapping table.
Mapping for “name” changed into “vcard:fn”.
D.1.2.4
vcard:hasName replaced by vcard:fn in expanded example.
See section 4.1 and \[OR4].
More details can be found in the online documentation of Altova XMLSpy 2016 available at
Shapes Constraint Language (SHACL), W3C Recommendation 20 July 2017,
Shape Expressions (ShEx) Primer, Draft Community Group Report 14 July 2017,
E.g.,
or