Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial commit of GeoPackage extensions from RBT #684

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions spec/semantic-annotations/24-049.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
= GeoPackage Extension for Semantic Annotations
:comment: ### Document type; mandatory. Visit: https://www.metanorma.org/author/ogc/authoring/ for permitted types
:doctype: standard
:comment: ### Document subtype; optional. Visit: https://www.metanorma.org/author/ogc/authoring/ for permitted types
:docsubtype: implementation
:comment: ### Version number; optional. Dot-delimited, preferably with this structure <version number>.<minor version number>.<patch version number>
:edition: 1.0.0
:comment: ### Language of the document; mandatory. Specified in two-letter code: "en" for English, "fr" for French
:language: en
:comment: ### Document status/stage; mandatory. Visit: https://www.metanorma.org/author/ogc/authoring/ for permitted types
:status: swg-draft
:comment: ### Relevant committee; mandatory. The permitted types are: technical, planning, and strategic-member-advisory
:committee: technical
:comment: ### Internal reference number; mandatory
:docnumber: 24-049
:comment: ### Date on which the standard was updated; mandatory
:received-date: 2024-09-01
:comment: ### Date on which the standard was approved by the issuing authority; mandatory
:issued-date: 2024-09-09
:comment: ### Date on which the standard was published; mandatory
:published-date: 2024-10-14
:comment: ### External link referencing the document; optional. If not provided, a default value is created following this structure: "http://www.opengis.net/doc/{abbrevation of doctype}/{abbrev}/{version}",
:external-id: http://www.opengis.net/IS/GPKG-SemanticAnnotations/1.0
:comment: ### Author one
:fullname: Jérôme Jacovella-St-Louis
:comment: ### Author two
:fullname_2: Jeff Yutzler
:comment: ### Role of the authors; mandatory
:role: editor
:comment: ### Comma delimited keywords; mandatory
:keywords: ogcdoc, OGC document, GeoPackage, Semantic Annotations, GeoDataClass, Associations
:comment: ### Semicolon-delimited list of the submitting organizations; mandatory
:submitting-organizations: US Army Geospatial Center (AGC); Ecere Corporation; Compusult Limited; TechMaven Geospatial; Image Matters, LLC.
:comment: ### Metanorma flavor; mandatory
:mn-document-class: ogc
:comment: ### Desired output formats; mandatory
:mn-output-extensions: html,pdf,doc,rxl
:comment: ### Enable local relaton cache for quick inclusion of prefetched references; optional. For further information, visit: https://www.metanorma.org/author/ref/document-attributes/#caches, https://www.metanorma.org/author/topics/building/reference-lookup/#lookup-result-caching
:local-cache-only:
:comment: ### URI to which the PDF version of this standard is published; optional
:pdf-uri: ./24-049.pdf
:comment: ### URI to which the XML version of this standard is published; optional
:xml-uri: ./24-049.xml
:comment: ### Directory name used as prefix for the location of image files; optional
:imagesdir: images
:comment: ### Enable rendering of AsciiMath, MathML, and LaTeX ("latexmath" needs to be indicated in the code to use LaTeX, or set ":stem: latexmath" to interpret by default); optional
:stem:

// Clauses
include::sections/00-preface.adoc[]

include::sections/01-scope.adoc[]

include::sections/02-conformance.adoc[]

include::sections/03-references.adoc[]

include::sections/04-terms_and_definitions.adoc[]

// include::sections/unused-conventions.adoc[]

include::sections/05-overview.adoc[]

include::sections/06-semantic-annotations.adoc[]

// Annexes
include::sections/aa-ats.adoc[]

// include::sections/ab-implementations.adoc[]

// Revision history
include::sections/ah-history.adoc[]

// Bibliography
include::sections/az-bibliography.adoc[]
96 changes: 96 additions & 0 deletions spec/semantic-annotations/sections/00-preface.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@

////
== Keywords

Keywords inserted here automatically by Metanorma
////


.Preface

This Standard describes an extension for semantic annotations in GeoPackage.
This extension was developed and validated during several OGC initiatives,
including the Vector Tile Pilots (https://www.ogc.org/initiatives/vt-pilot-2018/[Phase 1+extension] and https://www.ogc.org/initiatives/vtp2/[Phase2]),
https://docs.ogc.org/per/19-018.html[Testbed 15], https://docs.ogc.org/per/20-019r1.html[Testbed 16] as well the Releasable Basemap Tiles code sprint.

////
[NOTE]
====
Insert Preface Text here. Give OGC specific commentary: describe the technical content, reason for document, history of the document and precursors, and plans for future work.

There are two ways to specify the Preface: "simple clause" or "full clasuse"

If the Preface does not contain subclauses, it is considered a simple preface clause. This one is entered as text after the `.Preface` label and must be placed between the AsciiDoc document attributes and the first AsciiDoc section title. It should not be give a section title of its own.

If the Preface contains subclauses, it needs to be encoded as a full preface clause. This one is recognized as a full Metanorma AsciiDoc section with the title "Preface", i.e. `== Preface`. (Simple preface content can also be encoded like full preface.)

====
////

////
*OGC Declaration*
////

////
[THIS TEXT IS ALREADY ADDED AUTOMATICALLY IN THE FRONTISPIECE OF ALL OGC DOUCMENTS]

Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.
////

////
NOTE: Uncomment ISO section if necessary

*ISO Declaration*

ISO (the International Organization for Standardization) is a worldwide federation of national standards bodies (ISO member bodies). The work of preparing International Standards is normally carried out through ISO technical committees. Each member body interested in a subject for which a technical committee has been established has the right to be represented on that committee. International organizations, governmental and non-governmental, in liaison with ISO, also take part in the work. ISO collaborates closely with the International Electrotechnical Commission (IEC) on all matters of electrotechnical standardization.

International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.

The main task of technical committees is to prepare International Standards. Draft International Standards adopted by the technical committees are circulated to the member bodies for voting. Publication as an International Standard requires approval by at least 75 % of the member bodies casting a vote.

Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO shall not be held responsible for identifying any or all such patent rights.
////

[abstract]
== Abstract

This Standard describes an extension for semantic annotations in GeoPackage.

An annex defines an Abstract Test Suite for the extension.

[.preface]
== Security Considerations

//If no security considerations have been made for this Standard, use the following text.

No security considerations have been made for this Standard.

////
If security considerations have been made for this Standard, follow the examples found in IANA or IETF documents. Please see the following example.

“VRRP is designed for a range of internetworking environments that may employ different security policies. The protocol includes several authentication methods ranging from no authentication, simple clear text passwords, and strong authentication using IP Authentication with MD5 HMAC. The details on each approach including possible attacks and recommended environments follows.

Independent of any authentication type VRRP includes a mechanism (setting TTL=255, checking on receipt) that protects against VRRP packets being injected from another remote network. This limits most vulnerabilities to local attacks.
NOTE: The security measures discussed in the following sections only provide various kinds of authentication. No confidentiality is provided at all. This should be explicitly described as outside the scope....”
////

////
== Submitting organizations

Submitting organisations added automatically by Metanorma from document attributes
////

[.preface]
== Submitters
The following individuals submitted this candidate standard to the OGC:

|===
|Name |Affiliation
|Jérôme Jacovella-St-Louis (editor) | Ecere Corporation
|Jeff Yutzler (editor) | Image Matters LLC.
|Adam Parsons | Compusult Limited
|Jordan Bess | Tech Maven Geospatial
|Jeff Harrison | U.S. Army Geospatial Center
|===
8 changes: 8 additions & 0 deletions spec/semantic-annotations/sections/01-scope.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

== Scope

This Engineering Report describes an extension for storing Releasable Basemap Tiles (RBT) in GeoPackage developed during an OGC Code Sprint initiative.

This extension regroups requirements specific to storing RBT data products in GeoPackages, requirements for storing vector tiles in GeoPackages, requirements for defining semantic annotations in GeoPackages, as well as requirements to include portrayal information in GeoPackages.

In addition to the extension itself, this Engineering Report includes details of three implementations developed during the code sprint, including Technology Integration Experiments demonstrating interoperability between them.
16 changes: 16 additions & 0 deletions spec/semantic-annotations/sections/02-conformance.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

== Conformance

This extension defines of a single mandatory conformance class, but is broken down into conceptual requirement classes which may eventually correspond to individual standardized OGC GeoPackage extensions.

The requirements apply to either of these two standardization target types:

* data products,
* software producing such data products.

Conformance with this extension shall be checked using all the relevant tests specified in Annex A (normative) of this document.
The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the NSG Compliance Testing Policies and Procedures and the NSG Compliance Testing web site.

In order to conform to this candidate NSG data product standard, a software implementation producing a compliant data product shall implement the core requirement classes defined in this extension.

All requirements-classes and conformance-classes described in this document are owned by the standard(s) identified.
9 changes: 9 additions & 0 deletions spec/semantic-annotations/sections/03-references.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

[bibliography]
== 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.

* [[[OGC12-128r19,OGC 12-128r19]]],
* [[[OGC17-083r4,OGC 17-083r4]]],
43 changes: 43 additions & 0 deletions spec/semantic-annotations/sections/04-terms_and_definitions.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@

== Terms and Definitions

////
Note that the initial notice about terms ("This document uses the terms defined in OGC Policy Directive 49...")
is inserted automatically by Metanorma using the agreed standardised language, and you should not enter it here.
////

[[term-2DTMS]]
=== 2-Dimensional Tile Matrix Set (2DTMS)

tiling scheme consisting of a set of tile matrices defined at different scales covering approximately the same area and having a common coordinate reference system.

[.source]
<<OGC17-083r4>>

[[term-geodataclass]]
=== geodataclass

a URI identifying a class of geospatial data whose component data layers conform to a particular logical schema

A registry of geodataclasses would ideally resolve these URIs to metadata including these schemas.
A geodataclass serves multiple purposes, including the ability to easily identify, using a simple identifier comparison,
relevant datasets for a particular purpose, the compatibility of datasets as inputs for processes, the compatibility
of the output of a process with the input of another process, as well as the compatibility of portrayal style information
with a particular dataset (see also https://github.com/opengeospatial/styles-and-symbology/issues/12).

[[term-mvt]]
=== Mapbox vector tiles (MVT)

a https://github.com/mapbox/vector-tile-spec/tree/master/2.1[specification] developed by Mapbox for encoding tiled vector data using https://protobuf.dev/[protocol buffers].

[[term-rbt]]
=== releasable basemap tiles (RBT)

tilesets of foundational geospatial data developed by the US Army Geospatial Center for public release,
including vector tilesets of cultural and physical features, hillshaded elevation data and optional imagery

[[term-tie]]
=== technology integration experiment (TIE)

experiments performed between different implementations of a specification or standard to test and demonstrate interoperability between them, and in the case of TIEs
performed in the context of an initiative to validate a draft specification or standard, to validate the soundness and completeness of the requirements specified therein
25 changes: 25 additions & 0 deletions spec/semantic-annotations/sections/05-overview.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
[[OverviewClause]]
== Overview

This Engineering Report describes an extension for storing Releasable Basemap Tiles (RBT) in GeoPackage developed during the March 2024 OGC Code Sprint initiative sponsored by the US Army Geospatial Center (AGC).

The report is organized into four main sections:

* <<RBTGeoPackageClause, *Section 6 -- Releasable Basemap Tiles GeoPackage Extension*>> describes the RBT extension as a whole, including requirements for declaring conformance to this extension, as well as requirements specific to storing RBT data products,

* <<VectorTilesClause, *Section 7 -- Vector Tiles*>> describes requirements related to storing vector tiles in GeoPackages, based on the draft extensions developed in previous initiatives such as
the Vector Tile Pilots (https://www.ogc.org/initiatives/vt-pilot-2018/[Phase 1+extension] and https://www.ogc.org/initiatives/vtp2/[Phase2]),

* <<SemanticAnnotationsClause, *Section 8 -- Semantic Annotations*>> describes requirements related to semantic annotations, also based on previously developed draft extensions, providing a mechanism to identify content and associate portrayal rules with content,

* <<StylingClause, *Section 9 -- Styling*>> describes requirements related to including styles (portrayal information) in GeoPackages, also based on previously developed draft extensions,

and three annexes:

* <<annex-ats, *Annex A -- Abstract Test Suite*>> defines an Abstract Test Suite for this extension, upon which an Executable Test Suite could be based,

* <<ImplementationsClause, *Annex B -- Implementations*>> describes three implementations of both producers and consumers (viewers) of GeoPackages using this extension
developed during the code sprint by three participants: <<Implementations-Ecere,*Ecere Corporation*>>, <<Implementations-Compusult,*Compusult Limited*>> and <<Implementations-TechMaven,*TechMaven Geospatial*>>,
including Technology Integration Experiments demonstrating interoperability between these different implementations, as well as <<Implementations-Lessons,*Challenges and Lessons Learned*>> from these implementation efforts,

* <<FutureWork, *Annex C -- Future Work*>> provides recommendations for future work that could be undertaken to build upon the results from the sprint, improve interoperability and performance for RBT content, and move this extension along the standardization process.
63 changes: 63 additions & 0 deletions spec/semantic-annotations/sections/06-semantic-annotations.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
[[SemanticAnnotationsClause]]
== Semantic Annotations

=== Semantic Annotations Requirements

A semantic annotation is a semantically grounded term that can be applied to another concept.
These requirements define how semantic annotations can be applied to any business object in the current GeoPackage (layers, features, tiles, styles, etc.).

[requirement]
====
[%metadata]
identifier:: /req/rbt/semantic-annotations
description:: For defining semantic annotations
part:: A semantic annotation SHALL be defined as an entry in a `gpkgext_semantic_annotations` table with the following columns
* `id`, the a primary key
* `type`, a semantically grounded type (category) for the annotation
* `title`, a human-readable title for the annotation
* `description`, an optional human-readable text description for the annotation
* `uri`, the resolvable URI for the semantic concept
====

.Example SQL statement for creating the `gpkgext_semantic_annotations` table
[source,sql]
----
CREATE TABLE gpkgext_semantic_annotations (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
type TEXT NOT NULL, title TEXT NOT NULL,
description TEXT,
uri TEXT
)
----

See <<compusult-gpkg_semantic_annotations>> for an implementation example of the `gpkgext_semantic_annotations` table.

NOTE: This RBT extension relies on semantic annotations for the association of both tilesets and styles to a `GeoDataClass` `type` of semantic annotation.

[requirement]
====
[%metadata]
identifier:: /req/rbt/sa-reference
description:: For associating semantic annotations
part:: Associating a particular business object with a semantic annotation SHALL be done by adding an entry to a `gpkgext_sa_reference` table with the following columns:
* `table_name`, the name of the table containing the business object
* `key_column_name`, the name of the integer column in the specified table that acts as a key; if no such column exists, `rowid` can be used
* `key_value`, the value of the key column that uniquely identifies the row
* `sa_id`, a foreign key to `gpkgext_semantic_annotations`
====

.Example SQL statement for creating the `gpkgext_sa_reference` table
[source,sql]
----
CREATE TABLE gpkgext_sa_reference (
table_name TEXT NOT NULL,
key_column_name TEXT NOT NULL,
key_value INTEGER NOT NULL,
sa_id INTEGER NOT NULL REFERENCES gpkgext_semantic_annotations,
UNIQUE(table_name, key_column_name, key_value, sa_id)
)
----

See <<compusult-gpkgext_sa_references>> for an implementation example of the `gpkgext_sa_reference` table.

NOTE: There can be a many-to-many mapping between business object rows and semantic annotations.
Loading