| < 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/ | ||||