Closed richburdon closed 5 years ago
Was any thought given to the fact this new protocol cannot be expressed using protocol buffers (or as natural objects/structs in most programming languages) because of the use of the non-standard "@" character?
Yes, a few:
@
translation that's necessary is for @context
, so the rule is fairly simple and limited to that property, IIRC.So, fundamentally, there is nothing serious that prevents serialization/deserialization to protobuf and we'd welcome a serialization profile that supports to/from protobuf. Are you interested in writing that spec or README?
I think this pretty much guarantees the fragmentation of the protocol with folks having to substitute
@context
with things like_context
,_at_context
, etc.
To be clear, the spec is a data model and suggested serializations... it's not a protocol. To prevent fragmentation wrt. the @
symbol it seems like the only thing that would be required is a single serialization/deserialization rule. We're happy to write that up in the Implementation Guidance if you want to provide an implementation that serializes/deserializes to/from protobuf?
(The npm module https://www.npmjs.com/package/protobufjs alone has more than 1.7MM weekly downloads, and I would have thought this was the most likely audience for this kind of technology).
It doesn't seem to be the "mose likely" audience, given that the 300+ participants in the work to date have not identified protobuf as a target syntax. That said, if there is interested, we're more than happy to figure out a way of publishing interop specs for protobuf... given that the issue you've identified is the only one, I can't imagine it would be that difficult.
Are there other issues that you feel would be non-starters for a protobuf serialization?
From the VCWG call on 11 June 2019:
RESOLUTION: The Working Group has discussed issue 642 and decided to make no changes to the specification. A response to the issue submitter should instruct them to create a separate serialization specification that maps the data model to and from the serialization that they desire.
Hi @richburdon, just following up with you on this. Here's a record of the WG discussion of the issue that you raised:
I'll try to translate that for you in the event that you're new to the standardization process. It basically comes down to this statement you made:
I think this pretty much guarantees the fragmentation of the protocol with folks having to substitute @context with things like _context, _at_context, etc.
The thing that prevents fragmentation of the protocol is for someone to define how the Verifiable Credentials Data Model is translated to/from protobuf. We have defined this for how one takes the VC Data Model and converts to/from JSON-LD. We did the same for JWTs and the JOSE stack. The expectation is that if someone wants to do this with protobuf, then they would define a fairly lightweight specification and tell folks how to convert a VC to/from protobuf. One rule that spec would have in it is how to convert from @context
to _at_context
or whatever you feel would be appropriate.
An example of this sort of mini-spec can be found here:
Marking this issue as having responded to the issue commenter with a 7 day close pending if no objection from the issue submitter.
Was any thought given to the fact this new protocol cannot be expressed using protocol buffers (or as natural objects/structs in most programming languages) because of the use of the non-standard "@" character?
I think this pretty much guarantees the fragmentation of the protocol with folks having to substitute
@context
with things like_context
,_at_context
, etc.(Reference: https://developers.google.com/protocol-buffers/docs/reference/proto3-spec#letters_and_digits)
(The npm module https://www.npmjs.com/package/protobufjs alone has more than 1.7MM weekly downloads, and I would have thought this was the most likely audience for this kind of technology).