< draft-ietf-geojson-text-sequence-04.txt   draft-ietf-geojson-text-sequence-05.txt >
GeoJSON S. Gillies GeoJSON S. Gillies
Internet-Draft Mapbox Internet-Draft Mapbox
Intended status: Standards Track January 25, 2017 Intended status: Standards Track February 17, 2017
Expires: July 29, 2017 Expires: August 21, 2017
GeoJSON Text Sequences GeoJSON Text Sequences
draft-ietf-geojson-text-sequence-04 draft-ietf-geojson-text-sequence-05
Abstract Abstract
This document defines a format for geographic data that can be parsed This document describes the GeoJSON text sequence format and
and produced incrementally. "application/geo+json-seq" media type. This format is based on
JavaScript Object Notation (JSON) Text Sequences and GeoJSON, and
makes arbitrarily large geographic datasets incrementally parseable
without restricting the form of GeoJSON texts within a sequence.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 29, 2017. This Internet-Draft will expire on August 21, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 20 skipping to change at page 2, line 20
3. Security Considerations . . . . . . . . . . . . . . . . . . . 3 3. Security Considerations . . . . . . . . . . . . . . . . . . . 3
4. Interoperability Considerations . . . . . . . . . . . . . . . 3 4. Interoperability Considerations . . . . . . . . . . . . . . . 3
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 4 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.1. Normative References . . . . . . . . . . . . . . . . . . 4 6.1. Normative References . . . . . . . . . . . . . . . . . . 4
6.2. Informative References . . . . . . . . . . . . . . . . . 5 6.2. Informative References . . . . . . . . . . . . . . . . . 5
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5
1. Introduction 1. Introduction
Large or never-ending sequences of values pose a problem for JSON Arbitrarily large sequences of values pose a problem for JavaScript
that is well explained in the motivation for JSON Text Sequences Object Notation (JSON) [RFC7159] that is well explained in the
[RFC7464]. GeoJSON [RFC7946] faces the same kind of problem: motivation for JSON Text Sequences [RFC7464]. The GeoJSON format
geographic datasets often run to the tens of thousands or millions of [RFC7946] faces the same kind of problem. Geographic datasets often
features. The problem is often amplified by the presence of large run to the tens of thousands or millions of features. The problem is
arrays of coordinates for each of the features. often amplified by the presence of large arrays of coordinates for
each of the features.
This document describes a specialization of JSON Text Sequences. A This document describes a specialization of JSON Text Sequences. A
GeoJSON Text Sequence is a document of arbitrarily large size GeoJSON Text Sequence is a document of arbitrarily large size
containing one or more GeoJSON objects, e.g., multiple GeoJSON texts containing one or more GeoJSON objects, e.g., multiple GeoJSON texts
that can be parsed and produced incrementally, and not only a single that can be produced and parsed incrementally, and not only a single
GeoJSON FeatureCollection, Feature, or Geometry. GeoJSON FeatureCollection, Feature, or Geometry.
The advantage of using ASCII character RS "0x1e" to denote a text is
that sequence producers and parsers need not enforce a canonical form
of GeoJSON. Any valid GeoJSON, pretty-printed or compact, can be
used in a GeoJSON text sequence. Additionally, GeoJSON text
sequences inherit from the other [RFC7464] rules for consistent
processing of sequences with potentially corrupted texts.
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
[RFC2119]. [RFC2119].
2. GeoJSON Text Sequence Format 2. GeoJSON Text Sequence Format
Defined in prose, following [RFC7464]: a GeoJSON text sequence is any Defined in prose, following [RFC7464]: a GeoJSON text sequence is any
number of GeoJSON [RFC7946] texts, each encoded in UTF-8 [RFC3629], number of GeoJSON [RFC7946] texts, each encoded in UTF-8 [RFC3629],
each preceded by one ASCII RS character, and each followed by a line each preceded by one ASCII [RFC20] RS character, and each followed by
feed (LF). a line feed (LF).
The GeoJSON Text Sequence Format conforms to all the rules of The GeoJSON Text Sequence Format conforms to all the rules of
[RFC7464] and adds the following constraint: each JSON text MUST [RFC7464] and adds the following constraint: each JSON text MUST
contain a single GeoJSON object as defined in [RFC7946]. contain a single GeoJSON object as defined in [RFC7946].
Heterogeneous sequences containing a mix of GeoJSON Geometry, Heterogeneous sequences containing a mix of GeoJSON Geometry,
Feature, and FeatureCollection objects are permitted. How producers Feature, and FeatureCollection objects are permitted. How producers
and parsers of GeoJSON text sequences communicate rules for allowed and parsers of GeoJSON text sequences communicate rules for allowed
GeoJSON types in exchanged sequences is not specified in this GeoJSON types in exchanged sequences is not specified in this
document. document.
3. Security Considerations 3. Security Considerations
GeoJSON text sequences have no security considerations beyond those GeoJSON text sequences have no security considerations beyond those
of JSON text sequences and the GeoJSON format. of JSON text sequences and the GeoJSON format.
4. Interoperability Considerations 4. Interoperability Considerations
The advantage of using ASCII character RS "0x1e" to denote a text is
that sequence producers and parsers need not enforce a canonical form
of GeoJSON. Any valid GeoJSON, pretty-printed or compact, can be
used in a GeoJSON text sequence.
A variety of parsers designed for newline-delimited sequences of A variety of parsers designed for newline-delimited sequences of
compact JSON text are deployed on the internet today. While there is compact JSON text are deployed on the internet today. While there is
no canonical form for JSON texts, and pretty-printed and compact no canonical form for JSON texts, and pretty-printed and compact
forms are equally valid, GeoJSON text sequences containing compact forms are equally valid, GeoJSON text sequences containing compact
GeoJSON texts with no internal newlines are more interoperable with GeoJSON texts with no internal newlines are more interoperable with
existing non-standardized parsers. existing non-standardized parsers.
In a distributed system where order and exactly-once delivery of In a distributed system where order and exactly-once delivery of
messages are difficult to achieve, GeoJSON text sequences that do not messages are difficult to achieve, GeoJSON text sequences that do not
rely on order of texts for extra semantics are more interoperable rely on order of texts for extra semantics are more interoperable
skipping to change at page 3, line 50 skipping to change at page 3, line 51
Type name: application Type name: application
Subtype name: geo+json-seq Subtype name: geo+json-seq
Required parameters: n/a Required parameters: n/a
Optional parameters: n/a Optional parameters: n/a
Encoding considerations: binary Encoding considerations: binary
Security considerations: See Section 3 above Security considerations: See [[This document]] Section 3
Interoperability considerations: See [[This document]] Section 4
Interoperability considerations: See Section 4 above
Published specification: [[This document]] Published specification: [[This document]]
Applications that use this media type: No known applications Applications that use this media type: No known applications
currently use this media type. This media type is intended for currently use this media type. This media type is intended for
GeoJSON applications currently using colloquial line-delimited GeoJSON applications currently using colloquial line-delimited
variants of GeoJSON. variants of GeoJSON.
Additional information: Additional information:
Magic number(s): n/a Magic number(s): n/a
skipping to change at page 4, line 32 skipping to change at page 4, line 34
(sean.gillies@gmail.com) (sean.gillies@gmail.com)
Intended usage: COMMON Intended usage: COMMON
Restrictions on usage: none Restrictions on usage: none
6. References 6. References
6.1. Normative References 6.1. Normative References
[RFC0020] Cerf, V., "ASCII format for network interchange", STD 80,
RFC 20, DOI 10.17487/RFC0020, October 1969,
<http://www.rfc-editor.org/info/rfc20>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
2003, <http://www.rfc-editor.org/info/rfc3629>. 2003, <http://www.rfc-editor.org/info/rfc3629>.
[RFC7159] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March
2014, <http://www.rfc-editor.org/info/rfc7159>.
[RFC7464] Williams, N., "JavaScript Object Notation (JSON) Text [RFC7464] Williams, N., "JavaScript Object Notation (JSON) Text
Sequences", RFC 7464, DOI 10.17487/RFC7464, February 2015, Sequences", RFC 7464, DOI 10.17487/RFC7464, February 2015,
<http://www.rfc-editor.org/info/rfc7464>. <http://www.rfc-editor.org/info/rfc7464>.
[RFC7946] Butler, H., Daly, M., Doyle, A., Gillies, S., Hagen, S., [RFC7946] Butler, H., Daly, M., Doyle, A., Gillies, S., Hagen, S.,
and T. Schaub, "The GeoJSON Format", RFC 7946, and T. Schaub, "The GeoJSON Format", RFC 7946,
DOI 10.17487/RFC7946, August 2016, DOI 10.17487/RFC7946, August 2016,
<http://www.rfc-editor.org/info/rfc7946>. <http://www.rfc-editor.org/info/rfc7946>.
6.2. Informative References 6.2. Informative References
 End of changes. 13 change blocks. 
24 lines changed or deleted 34 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/