14:58:03 RRSAgent has joined #exi 14:58:03 logging to http://www.w3.org/2015/12/08-exi-irc 14:58:05 RRSAgent, make logs public 14:58:05 Zakim has joined #exi 14:58:07 Zakim, this will be EXIWG 14:58:07 I do not see a conference matching that name scheduled within the next hour, trackbot 14:58:08 Meeting: Efficient XML Interchange Working Group Teleconference 14:58:08 Date: 08 December 2015 14:58:10 zakim, this is exi 14:58:10 got it, taki 15:04:41 dape has joined #exi 15:15:49 scribe: TK 15:15:54 scribeNick: taki 15:16:03 TOPIC: Preliminaries 15:19:12 TK: Next week telecon will be the last telecon for the year. 15:19:21 DP: Will be back on 1/12. 15:19:39 TK: There won't be meetings on 12/22, 29 and 1/5. 15:25:28 TOPIC: EXI for JSON 15:25:38 DP: I did work a bit on EXI for JSON. 15:26:52 DP: I added a note that says we don't plan to provide mapping between XML and JSON. 15:28:17 DP: I described how other datatypes can be used in section 3.1.3. 15:29:24 DP: Similarly, in 3.1.4 for numbers. 15:31:28 DP: I am not sure how decimal encoding is better than float. 15:40:36 DP: section 3.2.7 talks about element. 15:41:42 DP: I think it makes sense to always use strict mode. 15:43:11 DP: schemaId is "schema-for json" 15:45:49 DP: Once we decide what to do with decimal, we are ready for publication. 15:49:16 DP: I will go over the document again, then will ask the group for review, in preparation for publication. 15:52:34 brutzman has joined #EXI 15:53:29 ACTION: DP to Go over EXI for JSON draft and ask the group for review in preparation for publication 15:53:29 Created ACTION-733 - Go over exi for json draft and ask the group for review in preparation for publication [on Daniel Peintner - due 2015-12-15]. 15:58:09 DP: We should publish sooner as a note, as suggested by Liam. 15:58:19 typo in final section C. Examples 15:58:34 http://www.w3.org/XML/EXI/docs/json/exi-for-json.html#examples 15:58:52 ... should the next-to-last } actually be a ] character? 16:00:20 DB: By using very simple types, by inspecting JSON, you can infer the type. Boolean, number, string, array and object. 16:00:26 DP: It is correct. 16:00:54 DP: The distinction comes from JSON, and we just encode them. number to number, array to array. 16:01:29 DP: I already tried implementation. It is very simple. 16:01:45 DP: straightforward to implement it. 16:02:39 DB: JSON data structure is unambiguous. Good approach. 16:03:31 DB: You avoid the need for JSON schema. 16:03:45 This also sidesteps the fact that JSON schema is not yet final. http://json-schema.org 16:05:00 http://tools.ietf.org/html/draft-zyp-json-schema-04 draft 4 JSON Schema: core definitions and terminology 16:05:15 DP: I am not very sure whether people are still working on JSON schema. 16:05:32 DP: Given that the draft was expired. 16:05:41 Slightly encouraging that they got to v4 but nevertheless it is old, Expires: August 4, 2013 16:06:51 There are also drafts for JSON validation and JSON hyper-schema, but they only got to draft 0 and at the same time in 2013. So maybe they ran into a problem... 16:09:09 I think that your approach will remain stable because you are only using the basic Javascript/JSON data types, which are standardized by ECMA. 16:09:48 If a future JSON Schema set of RFCs identifies further types, hopefully there will be a compatibility path. 16:11:27 Thinking of other possible data types: is there any XML schema convention regarding representation of geographic location? doubles or strings could be applied. 16:14:32 DB: Do we expect other datatypes to emerge? 16:14:46 Double precision is handled OK by Javascript number type. 16:14:59 DB: Such as double-precision for geo-location? 16:16:31 DP: We selected binary data, datetime, time, integer, decimal, besides straight-forward mappings. 16:16:58 DP: transforming back to JSON, you won't notice the use of those encodings. 16:18:01 DB: How do you notice the use of those types? 16:18:37 DP: If someone see some important types missing, we can still add them. 16:18:51 If you do detect binary/datetime/time value, how do you guarantee precise round-trip conversion? 16:20:12 A small point for conversion: note that number type is not quite the same as IEEE float/double; there must be a leading 0 before decimal point for a fractional value. 16:20:18 DP: We base on XML schema. 16:22:58 I think we need to be careful about round-tripping because we don't really know the literal requirements or the type that the JSON author intended. The only thing that we can be sure of is an exact match to string type. 16:23:24 DP: Otherwise, string representation needs to be used. 16:24:21 Wondering about base64 and other encodings. 16:25:23 DB: numbers in different bases? 16:25:35 DP: JSON uses base10 approach. 16:27:22 s/base10 approach/base10 approach for number type/ 16:29:06 RFC 7159 https://tools.ietf.org/html/rfc7159 "JavaScript Object Notation (JSON) Data Interchange Format" is a very important resource for interoperability concerns that complement the ECMA specification. 16:30:45 RFC7159 section 8.1. Character Encoding states "JSON text SHALL be encoded in UTF-8, UTF-16, or UTF-32." 16:31:34 ... it also states there is no byte order mark (BOM) 16:33:58 DB: We should be able to preserve the original encoding. 16:34:00 ... thus it might be necessary for the EXI JSON Schema to note what the original encoding was, and return that encoding, if a perfect round trip is desired. 16:34:50 For example, UTF32 JSON -> UTF8 EXI. What result is provided when decoding, is UTF8 okay or should the original UTF32 be honored? 16:35:00 DP: Practically, it is very difficult. 16:35:24 DB: We can have "source-encoding" attribute in the schema. 16:36:25 Possibly adding an attribute for jsonSourceEncoding might help perfect round tripping be accomplished. An implementation that reads the JSON would need to determine what encoding was found, since it is implicit and not an explicit part of the data in the JSON object. 16:38:37 DP: Canonical JSON will need to take care of it. 16:38:49 It may be that the same information can be preserved in different encodings; this issue examines whether original encoding is preserved. 16:40:14 DB: Preserving JSON source encoding should be an issue that needs to be described. 16:41:33 DP: For plain EXI, canonical EXI does the job. 16:43:49 Possibly this needs to be an EXI property for source encoding? 16:44:14 Does EXI (in general) have an option to preserve source encoding? Perhaps it should... 16:47:41 DP: I will add a section that states issues and decisions, asking for feedbacks. 16:47:43 Perhaps this is all a non-issue if a "UTF16" document primarily consists of UT8 characters, and a parser has to be ready to read the intermingled UTF16 characters when they occur. 16:49:48 It would be interesting to compare EXI compression between two sources: XML-encoded schema-valid X3D scene and a corresponding X3D JSON scene. 16:51:19 Perhaps there are other XML encodings that also have a corresponding JSON encoding defined. 16:53:28 Regarding a more general mapping between JSON document and XML Schema: is such work timely, or more appropriate after a JSON schema RFC is completed? 16:54:52 Comparison of JSON EXI compactness to XML EXI compactness might become very interesting in this regard. 16:56:41 Prior thesis work by Bruce Hill compared XML EXI compactness to a variety of JSON compression algorithms for similar data. The XML data did not always have an XML schema to guide EXI compression. (EXI was consistently as good or better.) 17:04:00 Zakim has left #exi 17:05:54 RRSAgent, draft minutes 17:05:54 I have made the request to generate http://www.w3.org/2015/12/08-exi-minutes.html caribou