W3C

– DRAFT –
Automotive Working Group Teleconference

11 January 2022

Attendees

Present
Adnan, Carine, Daniel, Erik, Gunnar, MagnusG, Peter, Ted, Ulf
Regrets
-
Chair
Peter, Ted
Scribe
ted

Meeting minutes

Peter reports contact with Rivian went favorably and setting up next steps

PR

Ulf: Wonsuk had not responded to review request but Erik made an excellent comment
… I added his fix to a new PR
… I propose we give Wonsuk another couple of days and proceed

Protobuf experiment

[Ulf shares screen, presentation on protobuf]

https://docs.google.com/presentation/d/1PB11dWyghW6MNR24vJfTGtwhIFDANdKZVDNfj93Qe78/edit#slide=id.gdb284aa95f_0_61

Ulf: I implemented two levels of protobuf. first is all just strings which isn't very compressible
… it was easier to implement and start understanding protobuf more
… in level two paths are encoded into an int32 value and timestamps are expressing in Unix time so they too are an int32 for compression considerations
… in the repo we have a .proto file (schema) with top level message types
… I leveraged my previous compression experiment for providing int values instead of paths
… you can use this map for translating full path to a short integer and back
… I have a utility to convert protobuf into Go language and this file contains quite a few structs, several thousand lines worth
… it also contains getter messages since the first thing you do is populate the struct with values, a form of serialization (marshall)
… this makes it possible to go from struct to serialized byte array
… [as it is cumbersome to act on protobuf within code] wanted the client application to be able to deconstruct back into JSON
… I needed a client for experimenting with compression
… right now there are only four requests supported in the client, you're welcome to experiment with it
… it calculates the compression ratio as that is interesting

[Ulf walks through code on github]

[Ulf reviews error response, optional aspects, filters...]

Ulf: all messages are contained in the top level message

MagnusG: request messages are optional, does that mean it is possible to send a malformed request

Ulf: yes if you want to misuse

MagnusG: you can specify oneOf to require one

Adnan affirms

Ulf: I am new to protobuf and glad to hear some here have more experience, anyone is free to improve

[Ulf opens terminal to run demo, starts with a build]

[showing level 1 and 2 described before, different types of requests and compression rates on requests and responses]

Ted: encourage those with additional protobuf experience give suggestions on any way things might be improved
… a proprietary compression scheme may well be fine, the approach here reminds me some of EXI that Carine told this group about previously where the schema is known on both ends

Ulf: some values not compressed at present

Ted: as we are low on remaining time for this call, encourage people to use github issues to give feedback and we can maybe discuss more next week
… a challenge would be accomodating private branches, the .proto would need to be known on all sides

Ulf: file is generated each time so it could be handled indeed

Minutes manually created (not a transcript), formatted by scribe.perl version 185 (Thu Dec 2 18:51:55 2021 UTC).

Diagnostics

Succeeded: s/Ulf reviews error response, optional aspects, filters.../[Ulf reviews error response, optional aspects, filters...]/

Succeeded: s|@@slides|https://docs.google.com/presentation/d/1PB11dWyghW6MNR24vJfTGtwhIFDANdKZVDNfj93Qe78/edit#slide=id.gdb284aa95f_0_61|