W3C home > Mailing lists > Public > public-credentials@w3.org > February 2018

Re: DID 'service' ABNF

From: =Drummond Reed <drummond.reed@evernym.com>
Date: Sun, 18 Feb 2018 22:42:53 -0800
Message-ID: <CAAjunnbAkUzmoJ5Ud_+pfLDj6N8-SF1YPEro4=71Br5fLLoYrw@mail.gmail.com>
To: Markus Sabadello <markus@danubetech.com>
Cc: Credentials Community Group <public-credentials@w3.org>
Ok, one of my action items this week is to update the ABNF in the DID spec
to reflect this—unless you've already done that (in which case let me know).

I did update the ABNF in the DID Spec Completion Proposals doc
<https://docs.google.com/document/d/1aR8V_JUJdq1Sbi47wCV5aa-dEY0e-V2RqwPNP5ci1bg/edit?usp=sharing>
just so we have a completely copy to share until we have it all in the main
spec.

Thanks,

=Drummond

On Sun, Feb 18, 2018 at 10:17 PM, Markus Sabadello <markus@danubetech.com>
wrote:

> Thats good, +1
> On 02/19/2018 07:00 AM, =Drummond Reed wrote:
>
> Markus, I think your are correct, and that the first option you suggest is
> the best one. I'd tweak the rule name slightly to this:
>
>   did-reference      = did *[ ";" did-service ]* [ "/" did-path ] [ "?"
> did-query ] [ "#" did-fragment ]
>   did                = "did:" method ":" specific-idstring
>
> But your core point stands, which is that the did service name is not part
> of the DID itself.
>
> Thanks,
>
> =Drummond
>
>
> On Sun, Feb 18, 2018 at 5:04 AM, Markus Sabadello <markus@danubetech.com>
> wrote:
>
>> I implemented a parser for DID syntax based on the ABNF:
>>
>> https://github.com/decentralized-identity/universal-resolver/tree/master/
>> implementations/java/uni-resolver-core/src/main/java/uniresolver/did
>>
>> And one piece of feedback I have is that perhaps we want to change this:
>>
>>   did-reference      = did [ "/" did-path ] [ "?" did-query ] [ "#"
>> did-fragment ]
>>   did                = "did:" method ":" specific-idstring *[ ";"
>> service ]*
>>
>> To:
>>
>>   did-reference      = did *[ ";" service ]* [ "/" did-path ] [ "?"
>> did-query ] [ "#" did-fragment ]
>>   did                = "did:" method ":" specific-idstring
>>
>> This wouldn't change the allowed syntax, only re-organize the rules,
>> since the "service" name isn't really part of the "DID" itself, or?
>>
>> Or we could also introduce an intermediary rule:
>>
>>   did-reference      = *did-service* [ "/" did-path ] [ "?" did-query ]
>> [ "#" did-fragment ]
>>   *did-service*        = did *[ ";" service ]*
>>   did                = "did:" method ":" specific-idstring
>>
>> Or:
>>
>>   did-reference      = *( did / did-service ) *[ "/" did-path ] [ "?"
>> did-query ] [ "#" did-fragment ]
>>   *did-service*        = did *";" service*
>>   did                = "did:" method ":" specific-idstring
>>
>> Markus
>> On 02/18/2018 12:51 AM, =Drummond Reed wrote:
>>
>> On Fri, Feb 16, 2018 at 10:18 AM, Manu Sporny <msporny@digitalbazaar.com>
>> wrote:
>>
>>> Hey Drummond,
>>>
>>> After much friendly yelling back and forth at DB HQ :), I think Dave
>>> Longley has convinced me that I'm overly concerned about the service
>>> ABNF.
>>>
>>> I still feel uneasy about it, but I think the onus is on those of us
>>> that are concerned to provide concrete examples of where everything
>>> falls apart and for those that are not concerned to demonstrate why the
>>> examples are not a problem.
>>>
>>
>> Yes, let's do this.
>>
>>
>>>
>>> Let's get this into an issue and take the conversation from there, but
>>> I'm less against the concept than I was yesterday, and here's why:
>>>
>>> The argument that was most compelling to me was that the service
>>> description goes in the "authority" section of the DID URL:
>>>
>>> did:METHOD:AUTHORITY?query2=param2&query2=param2#fragment
>>>
>>> Where AUTHORITY contains the service description. While ChristopherA is
>>> correct that things after METHOD are typically the purview of the
>>> AUTHORITY section, we're making an exception in this case because things
>>> starting at the path are typically service specific. So, we're basically
>>> saying, if you're going to do services in your DID Method, you MUST do
>>> them in this way... and we're putting that at the DID Spec layer.
>>>
>>
>> Exactly.
>>
>>
>>>
>>> Again, I find this a bit sloppy,
>>
>>
>> Ironically, having worked on URI-based specs (RFC 3986) for 15 years now,
>> I find it very elegant. But explaining why is probably more easily
>> discussed in person at RWOT.
>>
>>
>>> but don't have a better suggestion. We
>>> do what I was suggesting, which was to use ? or & because those
>>> typically go in a path AFTER the AUTHORITY section.
>>>
>>
>> Right.
>>
>>
>>>
>>> In any case, we need more examples of services and non-services
>>> expressed through a DID before we can really reach a conclusion on this.
>>>
>>
>> Happy to help prepare some to go over on the list or on RWOT.
>>
>> =Drummond
>>
>>
>>>
>>> -- manu
>>>
>>> --
>>> Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
>>> Founder/CEO - Digital Bazaar, Inc.
>>> blog: The State of W3C Web Payments in 2017
>>> http://manu.sporny.org/2017/w3c-web-payments/
>>>
>>>
>>
>>
>>
>
>
Received on Monday, 19 February 2018 06:43:18 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 11 July 2018 21:19:44 UTC