Skip to content

Commit

Permalink
Merge pull request #70 from opengeospatial/wfs3hackathon
Browse files Browse the repository at this point in the history
WFS 3.0 Hackathon (issues #59, #61, #62, #63, #64, #69, #72, #77, #78)
  • Loading branch information
cportele authored Mar 12, 2018
2 parents 17de0e8 + 507f71d commit e4146e7
Show file tree
Hide file tree
Showing 23 changed files with 1,465 additions and 692 deletions.
6 changes: 3 additions & 3 deletions core/UML/ISO 191xx-1 Edition 1.xmi
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,7 @@
<UML:TaggedValue tag="style" value="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=1;HSwimLanes=1;BorderStyle=0;"/>
</UML:ModelElement.taggedValue>
<UML:Classifier.feature>
<UML:Attribute name="collectionId" changeable="none" visibility="public" ownerScope="instance" targetScope="instance">
<UML:Attribute name="name" changeable="none" visibility="public" ownerScope="instance" targetScope="instance">
<UML:Attribute.initialValue>
<UML:Expression/>
</UML:Attribute.initialValue>
Expand Down Expand Up @@ -902,7 +902,7 @@
<UML:Expression body="0"/>
</UML:Parameter.defaultValue>
</UML:Parameter>
<UML:Parameter name="count" kind="in" visibility="public">
<UML:Parameter name="limit" kind="in" visibility="public">
<UML:Parameter.type>
<UML:Classifier xmi.idref="eaxmiid2"/>
</UML:Parameter.type>
Expand Down Expand Up @@ -973,7 +973,7 @@
<UML:TaggedValue tag="style" value="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=1;HSwimLanes=1;BorderStyle=0;"/>
</UML:ModelElement.taggedValue>
<UML:Classifier.feature>
<UML:Attribute name="collectionId" changeable="none" visibility="public" ownerScope="instance" targetScope="instance">
<UML:Attribute name="name" changeable="none" visibility="public" ownerScope="instance" targetScope="instance">
<UML:Attribute.initialValue>
<UML:Expression/>
</UML:Attribute.initialValue>
Expand Down
2 changes: 1 addition & 1 deletion core/asciidoctor.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
asciidoctor -a allow-uri-read ./standard/17-069.adoc -o ../docs/17-069.html
# asciidoctor-pdf -a allow-uri-read ./standard/17-069.adoc -o ../docs/17-069.pdf
asciidoctor-pdf -a allow-uri-read ./standard/17-069.adoc -o ../docs/17-069.pdf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: count
name: limit
in: query
description: >-
The optional count parameter limits the number of items that are presented in the response document.\
The optional limit parameter limits the number of items that are presented in the response document.\
Only items are counted that are on the first level of the collection in the response document.
Nested objects contained within the explicitly requested items shall not be counted.\
Expand All @@ -18,4 +18,4 @@ schema:
maximum: 10000
default: 10
style: form
explode: false
explode: false
6 changes: 3 additions & 3 deletions core/standard/17-069.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
:Title: OGC Web Feature Service 3.0 - Part 1: Core
:Title: OGC Web Feature Service 3.0: Part 1 - Core
:titletext: OGC Web Feature Service 3.0 - Part 1: Core
:doctype: book
:encoding: utf-8
Expand Down Expand Up @@ -28,9 +28,9 @@
|Submission Date: <yyyy-mm-dd>
|Approval Date:   <yyyy-mm-dd>
|Publication Date:   <yyyy-mm-dd>
|External identifier of this OGC(R) document: http://www.opengis.net/doc/IS/wfs/3.0
|External identifier of this OGC(R) document: http://www.opengis.net/doc/IS/wfs-1/3.0
|Internal reference number of this OGC(R) document:    17-069
|Version: 3.0.0-SNAPSHOT (2018-03-04)
|Version: 3.0.0-SNAPSHOT (2018-03-11)
|Category: OGC(R) Implementation Specification
|Editor:   Clemens Portele, Panagiotis (Peter) A. Vretanos
|===
Expand Down
3 changes: 2 additions & 1 deletion core/standard/annex_bibliography.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@

* [[SDWBP]] W3C/OGC: Spatial Data on the Web Best Practices, W3C Working Group Note 28 September 2017, https://www.w3.org/TR/sdw-bp/
* [[DWBP]] W3C: Data on the Web Best Practices, W3C Recommendation 31 January 2017, https://www.w3.org/TR/dwbp/
* [[link-relations]] IANA: Link Relation Types, https://www.iana.org/assignments/link-relations/link-relations.xml
* [[DCAT]] W3C: Data Catalog Vocabulary, W3C Recommendation 16 January 2014, https://www.w3.org/TR/vocab-dcat/
* [[link-relations]] IANA: Link Relation Types, https://www.iana.org/assignments/link-relations/link-relations.xml
17 changes: 9 additions & 8 deletions core/standard/annex_history.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@
[width="90%",options="header"]
|===
|Date |Release |Editor | Primary clauses modified |Description
|2017-10-09 |0.1 |C. Portele |all |initial version
|2017-10-11 |0.2 |C. Portele |all |changes discussed in SWG/PT call on 2017-10-09
|2017-12-13 |0.3 |C. Portele |all |address issues #2, #5, #6, #7, #8, #14, #15, #19
|2018-01-22 |0.4 |C. Portele |7 |add description of the UML diagram
|2018-02-01 |0.5 |C. Portele |2,3,5,7 |add links to recent issues on GitHub; address issues #31, #32
|2018-02-11 |0.6 |C. Portele |2,6,7,8 |address issue #25
|2018-02-27 |0.7 |C. Portele |all |address issues #3, #9, #12, #22, #23, #24, #44; add links to issues #41, #45, #46, #47
|2018-03-04 |0.8 |T. Schaub |7,B |JSON schema fixes #54, #55 |
|2017-10-09 |SNAPSHOT |C. Portele |all |initial version
|2017-10-11 |SNAPSHOT |C. Portele |all |changes discussed in SWG/PT call on 2017-10-09
|2017-12-13 |SNAPSHOT |C. Portele |all |address issues link:https://github.com/opengeospatial/WFS_FES/issues/2[#2], link:https://github.com/opengeospatial/WFS_FES/issues/5[#5], link:https://github.com/opengeospatial/WFS_FES/issues/6[#6], link:https://github.com/opengeospatial/WFS_FES/issues/7[#7], link:https://github.com/opengeospatial/WFS_FES/issues/8[#8], link:https://github.com/opengeospatial/WFS_FES/issues/14[#14], link:https://github.com/opengeospatial/WFS_FES/issues/15[#15], link:https://github.com/opengeospatial/WFS_FES/issues/19[#19]
|2018-01-22 |SNAPSHOT |C. Portele |7 |add description of the UML diagram
|2018-02-01 |SNAPSHOT |C. Portele |2,3,5,7 |add links to recent issues on GitHub; address issues link:https://github.com/opengeospatial/WFS_FES/issues/31[#31], link:https://github.com/opengeospatial/WFS_FES/issues/32[#32]
|2018-02-11 |SNAPSHOT |C. Portele |2,6,7,8 |address issue link:https://github.com/opengeospatial/WFS_FES/issues/25[#25]
|2018-02-27 |SNAPSHOT |C. Portele |all |address issues link:https://github.com/opengeospatial/WFS_FES/issues/3[#3], link:https://github.com/opengeospatial/WFS_FES/issues/9[#9], link:https://github.com/opengeospatial/WFS_FES/issues/12[#12], link:https://github.com/opengeospatial/WFS_FES/issues/22[#22], link:https://github.com/opengeospatial/WFS_FES/issues/23[#23], link:https://github.com/opengeospatial/WFS_FES/issues/24[#24], link:https://github.com/opengeospatial/WFS_FES/issues/44[#44]; add links to issues link:https://github.com/opengeospatial/WFS_FES/issues/41[#41], link:https://github.com/opengeospatial/WFS_FES/issues/45[#45], link:https://github.com/opengeospatial/WFS_FES/issues/46[#46], link:https://github.com/opengeospatial/WFS_FES/issues/47[#47]
|2018-03-04 |SNAPSHOT |T. Schaub |7,B |JSON schema fixes link:https://github.com/opengeospatial/WFS_FES/issues/54[#54], link:https://github.com/opengeospatial/WFS_FES/issues/55[#55]
|2018-03-11 |SNAPSHOT |C. Portele |all |Updates after the WFS 3.0 Hackathon link:https://github.com/opengeospatial/WFS_FES/issues/59[#59], link:https://github.com/opengeospatial/WFS_FES/issues/61[#61], link:https://github.com/opengeospatial/WFS_FES/issues/62[#62], link:https://github.com/opengeospatial/WFS_FES/issues/63[#63], link:https://github.com/opengeospatial/WFS_FES/issues/64[#64], link:https://github.com/opengeospatial/WFS_FES/issues/69[#69]; resolve link:https://github.com/opengeospatial/WFS_FES/issues/4[#4]; editorial edits
|===
2 changes: 1 addition & 1 deletion core/standard/annex_oas_example.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ This annex includes a complete example of an OpenAPI definition for a WFS.

[source,YAML]
----
include::https://raw.githubusercontent.com/opengeospatial/WFS_FES/master/openapi.yaml[]
include::https://raw.githubusercontent.com/opengeospatial/WFS_FES/wfs3hackathon/openapi.yaml[]
----
31 changes: 20 additions & 11 deletions core/standard/clause_0_front_material.adoc
Original file line number Diff line number Diff line change
@@ -1,29 +1,38 @@
[big]*i. Abstract*

The Web Feature Service (WFS) offers the capability to create, modify and query spatial data on the Web. By default, every WFS provides access to a single dataset. Rather than sharing the data as a complete dataset, WFS offers direct, fine-grained access to the data at the feature (object) level.
A Web Feature Service (WFS) offers the capability to create, modify and query spatial data on the Web. WFS is a multi-part standard. This part specifies the core capabilities that every WFS supports and is restricted to read-access to data. Additional capabilities that address specific needs will be specified in additional parts. Examples include support for creating and modifying data, more complex data models, richer queries, additional coordinate reference systems.

Consistent with the architecture of the Web, this version of WFS uses a resource architecture and specifies a RESTful service interface consistent with the HTTP/HTTPS standards.
By default, every WFS provides access to a single dataset. Rather than sharing the data as a complete dataset, WFS offers direct, fine-grained access to the data at the feature (object) level.

WFS is a multi-part standard. This part specifies the core capabilities that every WFS supports. Additional capabilities that address specific needs will be specified in additional parts. Examples include support for updating data, more complex data models or richer queries.
Consistent with the architecture of the Web, this version of WFS uses a resource architecture and specifies a RESTful service interface consistent with the HTTP/HTTPS standards.

This International Standard specifies discovery and query operations.
This standard specifies discovery and query operations that are implemented using the HTTP GET method. Support for additional methods (in particular POST, PUT, DELETE, PATCH) will be specified in additional parts.

Discovery operations allow the server to be interrogated to determine its capabilities and retrieve information (metadata) about this distribution of the dataset. This includes the API definition of the server as well as metadata about the feature collections provided by the server.

Query operations allow features or values of feature properties to be retrieved from the underlying data store based upon constraints, defined by the client, on feature properties.
Query operations allow features or values of feature properties to be retrieved from the underlying data store based upon selection criteria, defined by the client, on feature properties.

This part of this International Standard defines the following resources:
This standard defines the resources listed in Table 1. For an overview of the resources, see section <<core-overview,7.1 Overview>>.

* Service definition [1]
* Feature collections metadata [1]
* Feature collection [0..n]
* Feature [0..n]
[#tldnr,reftext='{table-caption} {counter:table-num}']
.Overview of resources, applicable HTTP methods and links to the document sections
[cols="32,25,10,33",options="header"]
!===
|Resource |Path |HTTP method |Document reference
|Landing page |`/` |GET |<<_api_landing_page,7.2 API landing page>>
|API definition |`/api` |GET |<<_api_definition_2,7.3 API definition>>
|Conformance classes |`/conformance` |GET |<<_declaration_of_conformance_classes,7.4 Declaration of conformance classes>>
|Feature collections metadata |`/collections` |GET |<<_feature_collections_metadata,7.11 Feature collections metadata>>
|Feature collection metadata |`/collections/{name}` |GET |<<_feature_collection_metadata, 7.12 Feature collection metadata>>
|Feature collection |`/collections/{name}/items` |GET |<<_feature_collections,7.13 Feature collections>>
|Feature |`/collections/{name}/items/{fid}` |GET |<<_feature_2,7.14 Feature>>
!===

[big]*ii. Keywords*

The following are keywords to be used by search engines and document catalogues.

ogcdoc, OGC document, web feature service, wfs, feature, property, geographic information, spatial data, spatial things, dataset, distribution, openapi
ogcdoc, OGC document, web feature service, wfs, feature, property, geographic information, spatial data, spatial things, dataset, distribution, API, openapi, geojson, gml, html

[big]*iii. Preface*

Expand Down
5 changes: 3 additions & 2 deletions core/standard/clause_3_references.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ The following normative documents contain provisions that, through reference in

* [[OpenAPI]] Open API Initiative: OpenAPI Specification 3.0.1,
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md
* [[rfc2616]] IETF: HTTP/1.1, RFC 2616, http://tools.ietf.org/rfc/rfc2616.txt
* [[rfc5988]] IETF: Web Linking, RFC 5988, http://tools.ietf.org/rfc/rfc5988.txt
* [[rfc2616]] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L.,
Leach, P., Berners-Lee, T.: IETF RFC 2616, HTTP/1.1, http://tools.ietf.org/rfc/rfc2616.txt
* [[rfc5988]] Nottingham, M.: IETF RFC 5988, Web Linking, http://tools.ietf.org/rfc/rfc5988.txt
* [[GMLSF]] van den Brink, L., Portele, C., Vretanos, P.: OGC 10-100r3,
Geography Markup Language (GML) Simple Features Profile, http://portal.opengeospatial.org/files/?artifact_id=42729
* [[GeoJSON]] Butler, H., Daly, M., Doyle, A., Gillies, S., Hagen, S., Schaub, T.:
Expand Down
20 changes: 11 additions & 9 deletions core/standard/clause_4_terms_and_definitions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,24 @@ This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], which

For the purposes of this document, the following additional terms and definitions apply.

NOTE: TODO +
Add link to the informative WFS Guide, once it is available.

=== dataset
collection of data, published or curated by a single agent, and available for access or download in one or more formats [DCAT]
collection of data, published or curated by a single agent, and available for access or download in one or more formats <<DCAT>>

=== distribution
represents an accessible form of a *dataset* [DCAT]
represents an accessible form of a *dataset* <<DCAT>>

EXAMPLE: a downloadable file, an RSS feed or a web service that provides the data.

=== feature
abstraction of real world phenomena [ISO 19101:2002, definition 4.11]
abstraction of real world phenomena [ISO 19101-1:2014]

NOTE: If you are unfamiliar with the term 'feature', the explanations in
the <<SDWBP,W3C/OGC Spatial Data on the Web Best Practice document>> may help,
in particular the section on
link:https://www.w3.org/TR/sdw-bp/#spatial-things-features-and-geometry[Spatial Things, Features and Geometry].

=== feature collection
a set of *features* from a *dataset*


CAUTION: link:https://github.com/opengeospatial/WFS_FES/issues/4[ISSUE 4] +
We need to make the document understandable to the developers that have no
geo/OGC background, too. What do we need to explain in this section and what
terms should we use in general?
25 changes: 13 additions & 12 deletions core/standard/clause_5_conventions.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
== Conventions
NOTE: This sections 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.

=== Identifiers

Expand All @@ -13,33 +12,35 @@ UML diagrams are included in this standard to illustrate the conceptual model th

Resources are modelled as UML interfaces.

NOTE: The OpenAPI definition is not modelled explicitly.

CAUTION: link:https://github.com/opengeospatial/WFS_FES/issues/36[ISSUE 36] +
A draft UML for OpenAPI 3.0 is available and could be reused.

=== Link relations

To express relationships between resources, <<rfc5988,RFC 5988 (Web Linking)>> and <<link-relations,registered link relation types>> are used.

=== Use of HTTPS

For simplicity, this document in general only refers to the HTTP protocol. This is not meant to exclude the use of HTTPS and simply a shorthand notation for "HTTP or HTTPS". In fact, most WFS are expected to use HTTPS, not HTTP.
For simplicity, this document in general only refers to the HTTP protocol. This is not meant to exclude the use of HTTPS and simply is a shorthand notation for "HTTP or HTTPS". In fact, most WFS are expected to use HTTPS, not HTTP.

=== API definition

==== General remarks

NOTE: TODO +
Add general considerations. +
Clarify that additional operations, parameters, etc. may be added, either to implement additional conformance classes or for vendor-specific extensions.
Good documentation is essential for every API so that developers can learn how
to use it. In the best case, documentation will be available in HTML and in
a format that can be processed by software to connect to the API.

This standard specifies requirements and recommendations for APIs that
share feature data and that want to follow a standard way of doing so.
In general, APIs will go beyond the requirements and recommendations
stated in this standard - or other parts of the Web Feature Service
standard series - and will support additional operations, parameters, etc.
that are specific to the API or the software tool used to implement the API.

==== Role of OpenAPI

This document uses OpenAPI 3.0 fragments as examples and to formally state
requirements. However, using OpenAPI 3.0 is not required.

The "Core" requirements class, therefore, only requires that a formal API
The "Core" requirements class, therefore, only requires that an API
definition is provided at /api.

A separate requirements class is specified for API definitions that follow the
Expand All @@ -64,7 +65,7 @@ In this case, the following changes to the pre-defined OpenAPI component
are permitted:

* If the server supports an XML encoding, `xml` properties may be added to
the relevant OpenAPI schema components.
the relevant OpenAPI schema components.
* The range of values of a parameter or property may be extended (additional
values) or constrained (if only a subset of all possible values are applicable
to the service). An example for a constrained range of values is to explicitly
Expand Down
4 changes: 2 additions & 2 deletions core/standard/clause_6_overview.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ This approach intends to support two types of client developers:
* those that have never heard about WFS - it should be possible to create a client using the API definition without the need to read the WFS standard (they may need to learn a little bit about geometry, etc.);
* those that want to write a "generic" client that can access WFSs, i.e. are not specific for a particular API/server.

As a result of this modernization, WFS 3.0 implementations are not backwards compatible with WFS 2.0 implementations per se. However, it has been a design goal to define WFS 3.0 in a way so that the WFS 3.0 interface can be mapped to an WFS 2.0 implementation. WFS 3.0 is intended to be simpler and more modern, but still an evolution from the previous versions and their implementations.
As a result of this modernization, WFS 3.0 implementations are not backwards compatible with WFS 2.0 implementations per se. However, it has been a design goal to define WFS 3.0 in a way so that the WFS 3.0 interface can be mapped to a WFS 2.0 implementation. WFS 3.0 is intended to be simpler and more modern, but still an evolution from the previous versions and their implementations.

The modernization is discussed in more detail link:https://github.com/opengeospatial/WFS_FES/blob/master/overview.md[here].

Expand Down Expand Up @@ -85,7 +85,7 @@ used to reduce the size of the messages between the server and the client.

This document uses a simple example throughout the document: The dataset
contains buildings and the server provides access to them through a single
feature collection ("buildings") and two encodings GeoJSON and HTML.
feature collection ("buildings") and two encodings, GeoJSON and HTML.

The buildings have a few (optional) properties: the polygon geometry of the
building footprint, a name, the function of the building (residential,
Expand Down
Loading

0 comments on commit e4146e7

Please sign in to comment.