Publication Date: 2018-10-29

Approval Date: 2018-06-07

Submission Date: 2018-05-17

Reference number of this document: OGC 18-037r1

Category: OGC Public Discussion Paper

Editor: Jeff Yutzler

Title: GeoPackage / OWS Context Harmonization Discussion Paper


OGC Public Discussion Paper

COPYRIGHT

Copyright © 2018 Open Geospatial Consortium. To obtain additional rights of use, visit http://www.opengeospatial.org/

WARNING

This document is not an OGC Standard. This document is an OGC Public Discussion Paper and is not an official position of the OGC membership. It is distributed for review and comment. It is subject to change without notice and may not be referred to as an OGC Standard. Further, any OGC Public Discussion Paper should not be referenced as required or mandatory technology in procurements. However, the discussions in this document could very well lead to the definition of an OGC Standard.

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.

1. Summary

This OGC discussion paper presents an approach to harmonize the OGC GeoPackage and OWS Context standards through a set of extensions. GeoPackage is an open, standards-based, platform-independent, portable, self-describing, compact format for storing and transferring geospatial data and information as part of an SQLite database. OWS Context is an open format linking geospatial web services and information. A draft standard has been produced and this Discussion Paper is designed to be a companion to that draft standard to assist in discussion. The draft standard contains extensions to both GeoPackage and OWS Context.

This document is the work of collaboration between the GeoPackage and OWS Context Standards Working Groups (SWGs).

1.1. Requirements & Research Motivation

GeoPackage and OWS Context are two OGC encoding standards that have potentially complementary and overlapping uses. There are two use cases that the submitters of this discussion paper would like to see supported in a standards-based way:

  1. Encoding of OWS Context content within a GeoPackage, so that a GeoPackage can load a list of OWS Contexts, present them to the user, and allow the user to select the one which most closely matches their desired activity. This would allow the OWS Context to act as a standards-based project file for GeoPackage.

  2. Encoding of GeoPackage content within an OWS Context file, so that an OWS Context can refer to GeoPackage content in the same way it can refer to services, files (e.g., GML or GeoJSON), and inline content. This would increase the utility of OWS Context because GeoPackage is becoming an increasingly common container for geospatial data and information.

In addition, the intent of the OWS Context extensions is to design them in such a way that they will work with generic relational databases, not just SQLite-based GeoPackage.

1.2. Prior-After Comparison

Before this work, the GeoPackage and OWS Context standards were completely independent of each other. There was neither a standard way to encode an OWS Context in a GeoPackage nor a standard way to reference GeoPackage content in an OWS Context. In 2014, a joint OWS Context / GeoPackage SWG was formed, but unfortunately this effort did not lead to any concrete work products.

As of the date of this document, the market adoption of OWS Context appears to be fairly limited. The authors of this OGC Discussion Paper are not aware of any studies analyzing OWS Context adoption or viewpoints of what would lead to increased adoption. Acceptance of the proposals in this paper could possibly lead to increased adoption of both OWS Context and GeoPackage.

There is a community extension that allows for OWS Context files to be stored within a GeoPackage. However, this community extension encodes OWS Context content as either a JSON or Atom document. Since GeoPackage is an SQLite (relational) database, GeoPackage developers have stated that they prefer to work entirely in the SQL domain as much as possible.

1.3. Recommendations for Future Work

The GeoPackage extension presented in this paper does not define an encoding for style information. This is an essential component of OWS Context and without it the implementation is incomplete. The existing SLD encoding standard is tightly coupled to the XML format. Since, as mentioned previously, GeoPackage developers prefer to work in the SQL domain, this format is not suitable. The standardization process should be delayed until this issue is resolved.

The development of a suitable style encoding for GeoPackage is dependent on ongoing efforts by the Styled Layer Descriptor (SLD) SWG and other activities as described by the Portrayal Concept Development Study. As of this writing, the SLD SWG is in the process of producing a conceptual model for SLD2 that would support multiple encodings. If this model is produced and adopted by OGC, it would be appropriate to produce a GeoPackage encoding for it.

If the approach described by this document is embraced by the relevant SWGs, the effort should culminate in a new OGC standard. This standard would be an extension to both the GeoPackage encoding standard and the OWS Context encoding standard. (Note that as far as the authors are aware, this is the first time OGC has attempted to produce a standard that is an extension to two different standards simultaneously.)

1.4. Document contributor contact points

All questions regarding this document should be directed to the editor or the contributors:

Contacts

Name Organization

Jeff Yutzler (editor)

Image Matters LLC

1.5. Foreword

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.

2. References

The following normative documents are referenced in this document.

Note

Only normative standards are referenced here, e.g. OGC, ISO, or other SDO standards. All other references are defined as inline links.

3. Terms and definitions

For the purposes of this report, the definitions specified in Clause 4 of the OWS Common Implementation Standard OGC 06-121r9 shall apply. In addition, the following terms and definitions apply.

  • common operational picture

    A common operational picture is a single identical display of relevant information shared by more than one command. A common operational picture facilitates collaborative planning and assists all echelons to achieve situational awareness. (<<OWSContext1.0CM>>)
  • contents

    As part of an OWS Context, a document that acts as a request or a response to an operation.
    As part of a GeoPackage, contents represent a set of information layers that are stored in that GeoPackage.
  • context

    A context document is a document describing the set of resources and their
    configuration, and ancillary information (area of interest, etc.) which defines the
    information representation of a common operating picture. (<<OWSContext1.0CM>>)
  • extension

    An extension is a set of requirements for a standard designed to add new interoperable capabilities or constrain existing ones to improve interoperability.
  • offering

    As part of an OWS Context, an offering is an object describes a specific information layer such as a service binding or inline content. A resource has at least one offering.
  • operation

    As part of an OWS Context, an operation is an object describing the actual information exchange required to access the desired content. An offering has at least one operation.
  • resource

    As part of an OWS Context, a resource is a configured set of information which is uniquely identifiable to a user. This can be realized as in-line or external content or by one or more configured web services. An OWS Context has at least one resource. (<<OWSContext1.0CM>>)

3.1. Abbreviated terms

NOTE: The abbreviated terms clause gives a list of the abbreviated terms and the symbols necessary for understanding this document. All symbols should be listed in alphabetical order. Some more frequently used abbreviated terms are provided below as examples.
  • COP Common Operational Picture

  • GML Geography Markup Language

  • GPKG GeoPackage

  • JSON JavaScript Object Notation

  • OWS OGC Web Services

  • RDBMS Relational Database Management System

  • SLD Styled Layer Descriptor

  • SWG Standards Working Group

  • XML eXtensible Markup language

4. Overview

Section 5 (OWS Context Extensions for Relational Databases) describes extensions to the OWS Context Encoding Standard.

Section 6 (GeoPackage Extension for OWS Context) describes extensions to the GeoPackage Encoding Standard.

Section 7 (Discussion) describes design decisions and other discussion points that are relevant to the development of this set of extensions.

Annex A (OWS Context Example Document) presents an example OWS Context document in the GeoJSON format that demonstrates the use of these extensions.

5. OWS Context Extensions for Relational Databases

This section describes a set of extensions to the OWS Context Encoding Standard needed to support relational databases, including but not limited to SQLite-based GeoPackage.

5.1. SQL Resource Extension

This OWS Context extension defines a new datatype called owc:SQLResource. This extension applies when a Context document is completely stored within a relational (SQL) database. Since relational databases have no mechanical way to control ordering, this extension provides a new datatype that contains an element that can be implemented as a column to support ordering.

5.1.1. Datatype owc:SQLResource

This datatype extends owc:Resource with the element(s) listed in Table 1.

Table 1. Datatype owc:SQLSelectResource
Name Definition Data Type and Values Multiplicity and Use

order

The ascending order of configured resources

DOUBLE

Zero or one (optional)

Note

This element is a double because the conventional way to set the order of an element in the middle of an ordered list is to set its order to a value midway between the preceding and following list elements.

5.2. SQL Content Extension

This extension defines the following:

  • a set of constraints on two existing datatypes, and

  • a new datatype.

This extension applies when a Context document refers to content within a relational (SQL) database.

5.2.1. Constraints on Datatype owc:Offering

The code of an owc:Offering element determines whether this extension is in use for that offering. (For example, the codes for GeoPackage offerings are listed in Table 5.) When the SQL Content Extension is in use, an owc:Offering is constrained as per Table 2.

Note

The constraints are underlined.

Table 2. Datatype owc:Offering for SQL Content Extension
Name Definition Data Type and Values Multiplicity and Use

code

Offering Code

CharacterString

One (mandated)

operation

Operations used to invoke the service

owc:Operation

One (mandatory)

content

N/A

N/A

Zero (prohibited)

5.2.2. Constraints on Datatype owc:Operation

When the SQL Content Extension is in use for an offering, owc:Operation child elements of that offering are constrained as per Table 3.

Note

The constraints are underlined.

Table 3. Datatype owc:Operation for SQL Content Extension
Name Definition Data Type and Values Multiplicity and Use

code

as per extension

CharacterString

One (mandated)

method

SELECT

CharacterString

One (mandated)

type

SQL Record Set

CharacterString

One (mandated)

requestURL

Service Request URL

URI

One (mandatory)

request

Request body content

owc:SQLContent (Datatype owc:SQLContent)

One (mandatory)

result

N/A

N/A

Zero (prohibited)

extension

Application specific content

N/A

Zero or more (optional)

Note

The code for GeoPackage is GPKG (other codes are possible, but have not been defined yet). If the referenced content is within the database containing the Context, the requestURL should be .. Otherwise the requestURL should be a connect string.

5.2.3. Datatype owc:SQLContent

When the SQL Content Extension is in use for an offering (for example, the code GPKG as described in the note above), the request body content for its operation (see request above) is an owc:SQLContent as described by Table 4. For a pure SQL implementation, clients may use the query element directly. For a GeoPackage, the from may be more useful because it refers to a table name that can be looked up in gpkg_contents, allowing it to be used as a proper GeoPackage content type.

Table 4. Datatype owc:SQLContent
Name Definition Data Type and Values Multiplicity and Use

from

a single table or view name

CharacterString

One (mandatory)

query

the actual SQL query

CharacterString

One (mandatory)

extension

Application specific content

N/A

Zero or more (optional)

Note

If joins are needed, they should be established as views beforehand so that the from element can be a single value.

Warning

It is the responsibility of the OWS Context client to verify that the query provided is safe to execute on that database. OWS Context clients may wish to construct their own queries based on the from value and the schema of that table.

5.3. GeoPackage Extension

This OWS Context extension supports content stored in a GeoPackage. This can include referencing itself (i.e., when the context and the content are in the same GeoPackage) or GeoPackages that are available on the local filesystem.

When the code of an owc:Offering is one of the codes listed in Table 5, the SQL Content Extension applies and the code for operations is GPKG. The from of the SQLContent corresponds to the name of the user-defined table in the GeoPackage. This allows clients to use gpkg_contents and other GeoPackage tables normally.

Table 5. GeoPackage Offering Codes
Code Dependency

features

http://www.opengis.net/doc/IS/geopackage/1.2/opt/features

tiles

http://www.opengis.net/doc/IS/geopackage/1.2/opt/tiles

attributes

http://www.opengis.net/doc/IS/geopackage/1.2/opt/attributes

2d-gridded-coverage

http://docs.opengeospatial.org/is/17-066r1/17-066r1.html

6. GeoPackage Extension for OWS Context

This section describes a GeoPackage extension that supports OWS Context. The following subsections describe each relevant table and how it should be used in GeoPackage software. The full details of each table including schema and requirements are published in the draft standard.

6.1. gpkg_extensions Table

To use this extension, add the following rows to this table:

Table 6. gpkg_extensions Rows
table_name column_name extension_name definition scope

gpkgext_context

NULL

ows_context

See note below

read-write

gpkgext_context_resources

NULL

ows_context

See note below

read-write

gpkgext_context_offerings

NULL

ows_context

See note below

read-write

gpkgext_context_operations

NULL

ows_context

See note below

read-write

gpkgext_context_contents

NULL

ows_context

See note below

read-write

gpkgext_context_styles

NULL

ows_context

See note below

read-write

Note

The extension_name is a temporary name; if this extension is adopted by the OGC, the extension will gain the "gpkg_" prefix. In general, the values in the definition column should reference (in some human-readable way) an extension specification, which may or may not be a standard. If this extension is adopted by the OGC, the definition should be a URL for the standard.

6.2. gpkgext_context Table

Add a row to this table for each OWS Context as shown in Table 7. (This table implements owc:Context from [OWSContext1.0CM].)

Table 7. OWS Context Table Definition
Column Value

id

Autoincrement primary key

title

A human-readable title for the OWS Context document

abstract

A human-readable description of the OWS Context document purpose and/or content

last_change

timestamp of last change to content, in ISO 8601 format

min_x

Bounding box minimum easting or longitude for the users of the context document

min_y

Bounding box minimum northing or latitude for the users of the context document

max_x

Bounding box maximum easting or longitude for the users of the context document

max_y

Bounding box maximum northing or latitude for the users of the context document

srs_id

Spatial Reference System ID: gpkg_spatial_ref_sys.srs_id for the geographic extents

author

Identifier for the author of the document

publisher

Identifier for the publisher of the document

creator

The tool/application used to create the context document and its properties

rights

Rights which apply to the context document

keywords

Comma-delimited list of keywords related to this context document

metadata_id

id from gpkg_metadata

min_time

Beginning of time interval, in ISO 8601 format

max_time

End of time interval, in ISO 8601 format

6.3. gpkgext_context_resources Table

Add a row to this table for each OWS Context resource as shown in Table 8. (This table implements owc:SQLResource as per Datatype owc:SQLResource.)

Table 8. OWS Context Resources Table Definition
Column Value

id

Autoincrement primary key

context_id

id from gpkgext_context

author

Identifier for the author of the resource definition

publisher

Identifier for the publisher of the resource definition

rights

Rights which apply to the resource definition

min_x

Bounding box minimum easting or longitude of the resource

min_y

Bounding box minimum northing or latitude of the resource

max_x

Bounding box maximum easting or longitude of the resource

max_y

Bounding box maximum northing or latitude of the resource

srs_id

Spatial Reference System ID: gpkg_spatial_ref_sys.srs_id for the geographic extents

min_time

Beginning of time interval, in ISO 8601 format

max_time

End of time interval, in ISO 8601 format

description

A reference to a description of the Context resource in alternative format

active

This flag indicates the state of the resource within the context document. It can be interpreted by the caller as required (this may be defined in a profile or in the specific service extensions)

keywords

Comma-delimited list of keywords related to this context document

min_scale_denominator

Minimum scale for the display of the layer

max_scale_denominator

Maximum scale for the display of the layer

order

The ascending order of the resource

6.4. gpkgext_context_offerings Table

Add a row to this table for each OWS Context offering as shown in Table 9. (This table implements owc:Offering from [OWSContext1.0CM].)

Table 9. OWS Context Offerings Table Definition
Column Value

id

Autoincrement primary key

resource_id

id from gpkgext_context_resources

code

Code identifying the type of offering

6.5. gpkgext_context_operations Table

Add a row to this table for each OWS Context offering as shown in Table 10. (This table implements owc:Operation from [OWSContext1.0CM].)

Table 10. OWS Context Operations Table Definition

Column

Value

id

Autoincrement primary key

offering_id

id from gpkgext_context_offerings

code

Code identifying the type of operation

method

Name of operation method request

type

MIME type of the return result

requestURL

Service Request URL

request

Optional request body content

result

Result of the operation

6.5.1. Use with GeoPackage Content

To refer to a GeoPackage through an OWS Context stored in a GeoPackage, use the values listed in Table 11.

Table 11. OWS Context Operations For GeoPackage

Column

Value

code

SELECT

method

SQL

type

SQL

request

NULL

result

NULL

6.5.2. Use with Other Types of Content

OGC Web Services can be encoded in a GeoPackage-based OWS Context. The service type is determined by the code of gpkgext_context_offerings. The OWS Context Encoding Standard currently supports WMS, WFS, WCS, WPS, CSW, and WMTS. The method, type, request, and result columns are consistent with the other OWS Context Encodings (see [OWSContext1.0Atom] or [OWSContext1.0GeoJSON]).

Note

The GeoPackage producer has the responsibility to ensure that the recipient is able to handle the stored content in an appropriate manner.

6.6. gpkgext_context_contents Table

For each offering representing RDBMS-based content, add a row to this table for each OWS Context operation as shown in Table 12. This row represents the contents of the offering. (This table implements owc:SQLContent as per Datatype owc:SQLContent.)

Table 12. OWS Context Contents Table Definition
Column Value

id

Autoincrement primary key

operation_id

id from gpkgext_context_operations

from

A single table or view name

query

The actual SQL query

6.7. gpkgext_context_styles Table

The definition for this table is to be decided. (It will implement owc:StyleSet from [OWSContext1.0CM].)

7. Discussion

7.1. OWS Context Extensions for Relational Databases

For the most part, the development of a relational database (RDBMS) encoding for OWS Context was seamless. Only one new element (order for owc:SQLResource) had to be added. The remainder of the effort centered on identifying the appropriate set of constraints for each element and the proper codes for the offerings and operations tables. Care was taken to ensure that the extensions would apply equally to any RDBMS even though there was no immediate need for this capability at this time. To an extent, the approach described in this Discussion Paper does future-proof the effort. If nothing else, it should be seamless for someone to implement the GeoPackage schema in an RDBMS other than SQLite.

7.2. GeoPackage Extension for OWS Context

7.2.1. SQL Basis

Previous attempts to provide OWS Context support in GeoPackage (including the previously mentioned community extension) included leveraging the existing GeoJSON encoding for OWS Context. However, developers have consistently requested an SQL-based solution so that developers do not need to deal with parsing text-based documents. This also gives developers the flexibility to take full advantage of the relational database (joins, etc.). Accordingly, the GPKG-OWC extension was developed using a normalized table structure and a set of primary and foreign key relationships.

7.2.2. Composition of the gpkgext_context Table

This table mirrors the element names from [OWSContext1.0CM] fairly closely with a few exceptions:

  • last_change is used instead of "updateDate" to maintain consistency with gpkg_contents.

  • min_x, min_y, max_x, max_y are used instead of "areaOfInterest" to maintain consistency with gpkg_contents. In addition, srs_id is added to ensure that the coordinates are interpreted properly by applications.

  • metadata_id is used instead of "contextMetadata" because GeoPackage already has a mechanism for storing registered metadata, the Metadata Extension.

  • min_time and max_time are used instead of "timeIntervalOfInterest" because SQLite has no native way to store time intervals.

7.2.3. Composition of the gpkgext_context_resources Table

This table mirrors the element names from [OWSContext1.0CM] fairly closely with a few exceptions:

  • last_change is used instead of "updateDate" to maintain consistency with gpkg_contents.

  • min_x, min_y, max_x, max_y are used instead of "areaOfInterest" to maintain consistency with gpkg_contents. In addition, srs_id is added to ensure that the coordinates are interpreted properly by applications.

  • metadata_id is used instead of "contextMetadata" because GeoPackage already has a mechanism for storing registered metadata, the Metadata Extension.

  • min_time and max_time are used instead of "timeIntervalOfInterest" because SQLite has no native way to store time intervals.

  • description is used instead of "contentDescription" for readability.

7.2.4. Composition of owc:SQLContents

Historically, OWS Context documents have always provided an examplar request to aid developers in using the layer correctly. The owc:SQLContents maintains this tradition with the query element. The from element was considered to be crucial because it allows access to the full scope of GeoPackage operations. There was consideration to breaking out the entire SQL query into its component parts (including WHERE clause, ORDER BY clause, and GROUP BY clause) but this idea was abandoned due to excess complexity and unclear benefit.

Appendix A: OWS Context Example Document

EventKit is an application that produces GeoPackages containing selected data sources for a user-defined area of interest. Following is an example OWS Context file that was produced to describe content generated by the EventKit application.

sanjuanpr_mxd-arcmap-eventkit-20180313.geojson
{
   "type":"FeatureCollection",
   "id":"http://www.opengis.net/owc/1.0/examples/gpkg",
   "geometry":{

   },
   "bbox":[
      -66.1514161471,
      18.4039575609,
      -65.966914103,
      18.4758115578
   ],
   "properties":{
      "lang":"en",
      "title":"GPKG Example",
      "subtitle":"sanjuanpr_mxd-arcmap-eventkit-20180313",
      "updated":"2018-03-13T17:26:23Z",
      "authors":[
         {
            "name":"Jeff Yutzler"
         }
      ],
      "contributors":[],
      "categories":[],
      "links":[
         {
            "rel":"profile",
            "href":"http://www.opengis.net/spec/owc-atom/1.0/req/core",
            "title":"This file is compliant with version 1.0 of OGC Context"
         }
      ]
   },
   "features":[
      {
         "type":"Feature",
         "id":"http://www.opengis.net/spec/owc-atom/1.0/req/gpkg/1",
         "geometry":{},
         "properties":{
            "title":"GPKG Example",
            "updated":"2018-03-13T17:26:23Z",
            "content":"OSM Tiles",
            "authors":[],
            "contributors":[],
            "categories":[],
            "links":[],
            "offerings":[
               {
                  "code":"http://www.opengis.net/spec/owc-atom/1.0/req/gpkg/1.2/opt/tiles",
                  "operations":[
                     {
                        "code":"GPKG",
                        "method":"SELECT",
                        "type":"SQL Record Set",
                        "href":"osm/sanjuanpr_mxd-osm_tiles-20180313.gpkg",
                        "request":{
                           "from":"imagery",
                           "query":"SELECT tile_data from imagery where zoom_level = 14 and tile_column = 10368 and tile_row = 6515;"
                        },
                        "result":{}
                     }
                  ],
                  "contents":[]
               }
            ]
         }
       },
       {
          "type":"Feature",
          "id":"http://www.opengis.net/spec/owc-atom/1.0/req/gpkg/2",
          "geometry":{},
          "properties":{
             "title":"GPKG Example",
             "updated":"2018-03-13T17:26:23Z",
             "content":"OSM",
             "authors":[],
             "contributors":[],
             "categories":[],
             "links":[],
             "offerings":[
                {
                   "code":"http://www.opengis.net/spec/owc-atom/1.0/req/gpkg/1.2/opt/features",
                   "operations":[
                      {
                         "code":"GPKG",
                         "method":"SELECT",
                         "type":"SQL Record Set",
                         "href":"osm/sanjuanpr_mxd-osm-20180313.gpkg",
                         "request":{
                            "from":"boundary",
                            "query":"SELECT geom from boundary;"
                         },
                         "result":{}
                      }
                   ],
                   "contents":[]
                }
             ]
          }
       },
       {
          "type":"Feature",
          "id":"http://www.opengis.net/spec/owc-atom/1.0/req/gpkg/2",
          "geometry":{},
          "properties":{
             "title":"GPKG Example",
             "updated":"2018-03-13T17:26:23Z",
             "content":"OSM",
             "authors":[],
             "contributors":[],
             "categories":[],
             "links":[],
             "offerings":[
                {
                   "code":"http://www.opengis.net/spec/owc-atom/1.0/req/gpkg/1.2/opt/features",
                   "operations":[
                      {
                         "code":"GPKG",
                         "method":"SELECT",
                         "type":"SQL Record Set",
                         "href":"osm/sanjuanpr_mxd-osm-20180313.gpkg",
                         "request":{
                            "from":"amenities_points",
                            "query":"SELECT \"geom\", \"osm_id\", \"amenity\", \"name\", \"addr:housenumber\", \"addr:street\" from \"amenities_points\";"
                         },
                         "result":{}
                      }
                   ],
                   "contents":[]
                }
             ]
          }
       }
   ]
}

Appendix B: Revision History

Table 13. Revision History
Date Editor Release Primary clauses modified Descriptions

April 24, 2018

J. Yutzler

.1

all

initial version

May 17, 2018

J. Yutzler

.9

1, 6, 7

administrative edits

July 16, 2018

J. Yutzler

1.0

1, 5, 6, Annex A