15:40:42 RRSAgent has joined #did 15:40:42 logging to https://www.w3.org/2021/02/16-did-irc 15:40:45 RRSAgent, make logs Public 15:40:47 please title this meeting ("meeting: ..."), ivan 15:40:50 Meeting: DID WG Telco 15:40:50 Chair: brent 15:40:50 Date: 2021-02-16 15:40:50 Agenda: https://lists.w3.org/Archives/Public/public-did-wg/2021Feb/0009.html 15:40:50 ivan has changed the topic to: Meeting Agenda 2021-02-16: https://lists.w3.org/Archives/Public/public-did-wg/2021Feb/0009.html 15:58:49 present+ 15:58:49 present+ shigeya_ 15:58:50 present+ TallTed 15:59:14 justin_r has joined #did 16:00:06 present+ justin 16:00:06 phila has joined #did 16:00:27 present+ dlongley 16:01:04 present+ manu 16:01:21 present+ brent 16:01:29 present+ phila 16:01:34 present+ orie 16:01:56 present+ Geunhyung_Kim 16:02:07 present+ drummond 16:02:12 GeunHyung_Kim has joined #did 16:02:18 markus_sabadello has joined #did 16:02:20 present+ markus_sabadello 16:02:28 present+ 16:02:28 present+ wayne 16:02:33 present+ 16:02:37 drummond has joined #did 16:02:44 present+ 16:02:48 scribe+ 16:03:42 brent_: Agenda review: details about special topic call, notice about deferred issues, tests, process for Notes, and then a review of subtantive PRs 16:03:51 present+ selfissued 16:04:03 ORie has joined #did 16:04:06 topic: special topic call 16:04:11 ...skipping intros/reintros 16:04:21 ...special topic call is today at 6PM EST 16:04:22 present+ burn 16:04:33 ...the topic will be a working session on PRs 16:04:49 topic: notice to the group deferred issues 16:04:51 https://github.com/w3c/did-core/issues?q=is%3Aopen+is%3Aissue+label%3Adefer-v2 16:05:01 ...notice to the WG: a number of issues are labeled as "Deferred" 16:05:13 ...these are all issues being deferred to a future version of the spec 16:05:14 Topic: writing tests 16:05:20 present+ 16:05:33 ...we have a test suite due to the labors of a very few number of contributors 16:05:35 q+ on tests 16:05:46 ack manu 16:05:46 manu, you wanted to comment on tests 16:05:49 ...now is the time for others to volunteer and contribute 16:06:05 selfissued__ has joined #did 16:06:09 JoeAndrieu has joined #did 16:06:29 manu: I would prefer if we got concrete commitments for specific tests for specific sections of the spec 16:06:36 selfissued___ has joined #did 16:06:37 https://w3c.github.io/did-core/ 16:06:40 present+ 16:06:45 present+ 16:07:08 ...the spec is fairly stable, so the expectation is that you as an implementer would commit to write the tests for a specific section 16:07:09 agropper has joined #did 16:07:14 q+ 16:07:22 ...that includes all normative MUST statements in that section 16:07:24 present+ 16:07:43 ...it would also be good for WG members to note that you plan to implement those tests 16:07:55 ...please only volunteer if you fully intend to implement 16:08:02 ack markus_sabadello 16:08:02 present+ JoeAndrieu 16:08:08 present+ dbuc 16:08:10 ...this helps identify anything that may be at risk 16:08:13 present+ agropper 16:08:14 https://github.com/w3c/did-test-suite/issues 16:08:34 markus_sabadello: We have been keeping track of who has been saying they will commit to what tests 16:08:38 q+ 16:08:54 brent_: For example, Transmute has made certain commitments and so has Digital Bazaar 16:09:19 ack manu 16:09:23 ...also, this helps us know who is planning to implement what sections, and what we might need to mark at risk 16:09:23 present+ rhiaro ] 16:09:37 s/]// 16:09:48 manu: ideally we would be tracking these in one issue 16:09:56 dbuc has joined #did 16:10:02 present+ 16:10:09 I have tests for the equiv sections, Manu 16:10:11 ...Manu would be like to get that we need to get volunteers for the other sections 16:10:26 ...so it's very important that other member companies step up 16:10:26 Because I know how much you like it ;) 16:10:50 brent_: The test suite is how we measure multiple implementations. Without it we won't exit CR 16:10:58 Topic: call for implementations 16:11:18 brent_: This is the official call for implementations 16:11:25 ...this is the time to implement 16:11:37 ...the way to do that is via commitments to the test suite 16:11:55 ...we also want to get commitments to DID usage 16:11:59 q+ to ask about timeline for implementation reports 16:12:22 ack phila 16:12:22 phila, you wanted to ask about timeline for implementation reports 16:12:29 ...there are a number of different DID methods and usages in the wild—reporting those is also very helpful 16:12:55 q+ 16:13:02 ack manu 16:13:07 phila: GS1 is planning to implement. Starting a 120 day program to do that. What's the timeline for completing implementation reports? 16:13:52 q+ 16:13:55 manu: In theory we go into CR roughly the beginning of March. The shortest period is 60 days to get a first round of feedback. Then typically there will be a second round. 16:14:04 ...so that timeframe should line up. 16:14:11 ack wayne 16:14:11 phila: Yes, that should work 16:14:18 brent_: I second that timeline 16:14:26 q+ 16:14:37 Where is the latest list of normative statements? 16:14:38 ack dbuc 16:14:40 wayne: My company continues to commit to test suite conformance. 16:14:57 our repo: https://github.com/spruceid/didkit 16:15:08 dbuc: Microsoft is ready to go into production, and willing to be part of testing and reporting on pieces of the implementations that we've done 16:15:15 our repo: https://github.com/transmute-industries/did-core 16:15:24 brent_: Thank you, we look forward to your contributions to the test suite 16:15:45 ...We very much want support for tests in the earliest time frame possible 16:15:46 DIF Universal Resolver with support for ~40 DID methods: https://github.com/decentralized-identity/universal-resolver 16:16:02 topic: review note publication process 16:16:19 brent_: We have a number of Notes in process 16:16:38 ...as the editors of those Notes near completion, they should contact the editors 16:16:58 ...then the authors should contact the chairs 16:17:27 ...when the chairs believe the note is ready as a final version, they will provide a one-week notice to the WG 16:17:36 ...after which the note will be published 16:17:55 ...reminder: a Note does not need to reflect the consensus of the group 16:18:25 topic: substantive PR-s 16:18:28 https://github.com/w3c/did-core/pulls?q=is%3Apr+is%3Aopen+label%3Asubstantive 16:18:45 brent_: There are 3 substantive PRs to review today 16:19:07 ...these 3 PRs make substantive changes that either add or change normative text 16:19:21 ...so we want to be sure they have consensus 16:19:21 q+ to discuss #644 16:19:31 ack manu 16:19:31 manu, you wanted to discuss #644 16:19:36 ...if you disagree with anything about these, please make constructive feedback 16:19:56 manu: There have been a flurry of PRs as part of the editors making a final editorial pass 16:20:24 ...everything through sections 1 to 5 have had a pass and are fairly stable 16:20:37 ...section 6 - the representation section - should be done this week 16:20:54 jonathan_holt has joined #did 16:20:57 ...so close review of the first 5 sections is recommended 16:21:13 ....the resolution section is still being reviewed/discussed 16:21:31 present+ jonathan_holt 16:21:36 ...one issue with the resolution section is that it is abstract so we are still trying to figure out how to make it concrete enough to test 16:22:01 q+ 16:22:21 ...one approach is to say that the metadata structure that represents the abstract data model can be serialized so that it can then be translated into various representations 16:22:38 ...in order to do that we are suggesting a change to the abstract data model 16:22:50 ...up to this point it has only been about DID documents 16:23:27 ...but we are now considering making the abstract data model can represent other data structures that may be needed to create a specific representation 16:23:46 ...and then you can use the representation production rules in order to create a concrete representation 16:24:04 ...Markus and Justin have expressed some reservations about this 16:24:11 ack markus_sabadello 16:24:14 ...so we are open to discussing it 16:24:32 markus_sabadello: I understand the motivation to make things more testable... 16:24:44 q+ to clarify testable vs machine testable 16:25:01 q+ to talk about the line this crosses 16:25:01 ...but the intention was to make the DID resolution section abstract because concrete resolution protocols were out of scope 16:25:18 ...so it can be confusing to say that the abstract data model can be used for other things besides DID documents 16:25:46 ...so Markus would prefer that the abstract data model stays focused on DID documents and not include metadata structures 16:25:51 ack brent_ 16:25:51 brent_, you wanted to clarify testable vs machine testable 16:25:56 ...since metadata structures are "really something else" 16:26:29 ack justin_r 16:26:29 justin_r, you wanted to talk about the line this crosses 16:26:43 brent_: We have repeatedly used "testable" to be machine testable. However "testable" does not have to mean machine-testable. 16:27:10 q+ 16:27:14 justin_r: What concerns me about this proposal is that it is "leaking requirements" of the test suite into the specification 16:27:16 q+ to ask about the two possible approaches 16:27:42 ...not all of the requirements of the test suite need to be represented in the spec 16:28:02 ...for example, in the resolution spec we agreed to define "contracts" 16:28:14 ...that does not mean that the core specification needs to go into this level of detailing 16:28:32 ...and it does not mean the spec needs to change its nature to fit the needs of an implementation 16:28:34 ack markus_sabadello 16:28:38 ...this is dangerous and backwards 16:29:11 markus_sabadello: In the section on metadata structures, we defined them the same way as the abstract data model where we use Infra and data maps 16:29:13 q+ to note that we said we'd do Resolution in the abstract, but then started using normative MUST language in the Resolution section, which the WG also said we wanted to be machine testable. We need to speak to specific language in the specification or have an alternate concrete proposal on the table that addresses everyone's concerns. 16:29:44 ...so we do have examples for how this abstract data structure that could be represented in JSON 16:30:04 ...so we could add some examples that show how the abstract data model can be made machine testable 16:30:06 ack brent_ 16:30:06 brent_, you wanted to ask about the two possible approaches 16:30:23 q+ 16:30:50 brent_: Roughly the two approaches are either we need to describe how to make concrete the abstract parts of the spec in order to make them machine-testable... 16:31:05 ack manu 16:31:05 manu, you wanted to note that we said we'd do Resolution in the abstract, but then started using normative MUST language in the Resolution section, which the WG also said we wanted 16:31:05 ...or we alter the test suite in order to machine-test those statements 16:31:08 ... to be machine testable. We need to speak to specific language in the specification or have an alternate concrete proposal on the table that addresses everyone's concerns. 16:31:29 manu: The issue we are in is that the group defined resolution in the abstract... 16:31:51 ...but when the language was written for the resolution section, we used a whole bunch of normative MUST statements 16:32:11 ...then we decided that we should have machine-testing of normative MUST statements 16:32:47 ...so now we have a resolution section that needs testing 16:33:05 ...so why don't we focus on the actual language of the PRs 16:33:26 ...there are two proposals: make the normative statements testable OR 16:33:42 ...put the logic for testing into the test suite and say that is good enough 16:33:42 q+ 16:34:00 ...we need more input from the WG about which direction we should go 16:34:10 ...and see what specific language we can agree on 16:34:37 ...for example, Markus suggests that we can provide examples of how the abstract data model can be serialized 16:35:13 ack jonathan_holt 16:35:14 brent_: Let's move in the direction of looking at the PR text 16:35:19 where is the list of normative requirements. 16:35:37 jonathan_holt: Adding this detail this late in the game is not a good idea - it can be handled in the DID Spec Registries 16:36:14 ...I added an example for CBOR that uses date time stamps using vanilla CBOR 16:36:27 ack markus_sabadello 16:36:32 ...so I added that detail to DID Spec Registries instead 16:36:56 markus_sabadello: We should really look at the concrete impacts. I think this is a big change. 16:37:14 q+ to ask how this is a big change? Exactly what does this change? 16:37:25 ...I understand the motivations, but I consider the metadata to be very different than the DID document data 16:37:41 ...so keeping the abstract data model focused on the DID document is more precise 16:37:56 ...it is not helpful to use the abstract data model for metadata 16:38:18 q+ to specify that we did define a generic INFRA data model 16:38:18 ...we defined the abstract data model for DID documents, not for other metadata 16:38:27 why is the type of did document an infra map... if its not an infra map? 16:38:44 ...the metadata has some similarities, but it will be handled differently than the DID document data 16:39:00 +1 to markus_sabadello 16:39:00 ...my proposal is to expand the examples of what the metadata would look like in JSON 16:39:09 ...and then make it testable in the test suite 16:39:13 https://github.com/w3c/did-core/pull/644 16:39:14 ack manu 16:39:14 manu, you wanted to ask how this is a big change? Exactly what does this change? and to specify that we did define a generic INFRA data model 16:39:18 https://github.com/w3c/did-core/pull/644/files 16:39:49 manu: I would like people to look at the text that is under debate. WG members should read the PR. 16:40:06 ...I disagree with what the abstract data model is supposed to do. 16:40:22 ...it should apply to everything in the specification 16:40:54 ...so from my perspective, the ADM was supposed to be for any data structure specified in DID Core 16:41:04 to me, the ADM was :always: meant to be :only: for DID Documents. that we use the same definitions for :other: data structures don't mean they're the same 16:41:33 ...for those who are saying that the ADM should not apply, I'd like to know why we are "creating this other world" that needs to be respecified in the same way we define the ADM 16:41:38 q+ 16:41:56 ...but we may just want to move on to other PRs at this point as we need the rest of the WG to engage on this issue 16:42:29 ...but not deciding about this issue is going to slow down finishing this section 16:42:35 ack ivan 16:42:43 brent_: Note that the special topic call today will be a continuation of this discussion 16:43:12 ivan: Taking it to a higher level: originally the goal of resolution was defining a contract 16:43:46 ...regardless of whether INFRA can be used to define these contracts, we must ultimately make these contracts machine-testable 16:44:15 ...so it has come up several times in the past few weeks which relies on human reports of implementability 16:44:21 +1 to ivan 16:44:24 q+ to note that we've removed many "purely abstract" things out of the spec because they were not testable... are we testing DID Resolution or not? 16:44:31 ...and whether going to one extreme is the basis of the disagreement 16:44:39 ack manu 16:44:39 manu, you wanted to note that we've removed many "purely abstract" things out of the spec because they were not testable... are we testing DID Resolution or not? 16:44:48 q+ 16:45:05 manu: I worry that we are speaking out of both sides of our mouth 16:45:23 q+ 16:45:37 +1 16:45:45 +1 DID resolution in a Note 16:45:46 ack drummond 16:45:46 ...we should either agree that we're not doing machine testability of the resolution section 16:45:48 -1 16:45:55 whoops I meant q+ 16:46:03 -1 to removing resolution... its 99% of what the spec is about... 16:46:03 scribe+ 16:46:27 drummond: It feels like if we lock in on what the requirements in the spec are for the contract 16:46:40 ORie: that's why it got added in a year ago, it doesn't make sense to talk about DIDs and Documents w/o talking about what's in between 16:46:50 ... and if we say the contract is abstract, then maybe the way to test it can be described in the test suite 16:46:53 +1 to drummond 16:46:56 q? 16:47:10 ack ivan 16:47:13 q+ 16:47:54 ivan: +1 to what Drummond said - in addition, the presentation of things whereby having a normative statement must be backed up my machine-testing is not a requirement 16:48:08 q+ to ask if we're testing Resolution or not? 16:48:08 ...it is okay to have a normative statement that is not directly machine-testable 16:48:18 ...we should be more liberal in that respect 16:48:52 JoeAndrieu: I think the interpreted rule that all normative statements much be machine-testable is too restrictive 16:49:05 I strongly agree with Joe 16:49:15 Folks, JOE AND I STRONGLY AGREE 16:49:17 ack markus_sabadello 16:49:29 this means it is the right thing, obviously 16:49:30 ...the definition of a contract is that it will say what you must do, and whether or not it is machine-testable is a different issue 16:50:06 q+ 16:50:17 markus_sabadello: Based on what others are saying here, I want to ask: is it acceptable to have normative statements in the spec that are not directly machine testable without additional information... 16:50:24 q+ to note why it's a bad idea to not test things in specifications. 16:50:46 ...but that additional information is readily available in some additional documents 16:51:11 +1 to Markus 16:51:12 ...for example in other protocol specification documents in the W3C Credentials Community Group or at the Decentralized Identity Foundation 16:51:16 ack manu 16:51:16 manu, you wanted to ask if we're testing Resolution or not? and to note why it's a bad idea to not test things in specifications. 16:51:25 q+ 16:51:29 manu: I'm confused now as to whether we are testing DID resolution or not 16:51:55 ...some are staying that we shouldn't test it at all, vs. testing with some additional info that's not in the spec 16:52:00 q+ to discuss machine testability 16:52:20 q+ to talk about the test suite 16:52:30 ...I have been operating under the assumption that because there are so many normative statements in the resolution section, that we should make it all machine testable 16:52:33 ack ivan 16:52:47 ivan: First, to answer to Markus, I'm not sure I fully understand the question 16:53:03 ...the implementation of the resolution contract should not depend on another spec or document 16:53:13 ...the #1 question is whether the contract is fulfilled or not 16:54:01 ...to reply to Manu, my view is that we have a contract definition. We can define "tests" that, for specific data, this is how the contract can be fulfilled and this is the response it should return 16:54:21 ...but whether or not that is machine-testable is not required 16:54:35 ack dbuc 16:54:36 ...if it is machine-testable, that is good, but not required 16:54:51 q+ to note why machine testability is important, the highest bar, and what we should try to shoot for. 16:55:14 dbuc: There are 3 classes of testability. 1) 100% testable via a local DID document. Fully deterministic. 16:55:59 ...2) the class of untestable language, such as "you must not use data describing a human" 16:56:02 ack ORie 16:56:02 ORie, you wanted to discuss machine testability 16:56:09 +1 to the coupling idea, that's what I've been saying all along 16:56:10 Can't we use this in the test suite? https://w3c-ccg.github.io/did-resolution/#did-resolution-result 16:56:40 ORie: I spent some time trying to implement the abstract data model this weekend and I'm starting to agree with some of what Justin and Markus are saying 16:56:55 ...there is a class of tests that are not valuable to use as spec authors 16:57:05 q? 16:57:20 ...there probably needs to be a way to test what is in the spec without talking about a specific implementation 16:57:26 q- 16:57:28 q+ 16:57:41 ...this is challenging because it requires some concrete implementation of the ADM in the test suite 16:58:00 q+ to speak to not lowering the bar. 16:58:00 Orie: +1, that was extremely well stated! 16:58:06 ...anyone who says that we should not test testable statements as long as there is some way to test them is harming the spec 16:58:20 We should test certain things with a default set of functions that implementers can put their own function bodies into them 16:58:25 Yes, +1 to Orie, that's the problem. 16:58:28 ...the ADM is testable, but what's hard is that the language around the ADM how to interpret it 16:58:32 q- 16:58:46 ...for example, if production works directly from the ADM, or does it take additional arguments 16:58:51 q- 16:58:58 ...so we have a problem here. There are people talking past each other. 16:58:59 for ex: you can test against in-mem default values, but allow devs to replace the function with their own DB fetch function to get the same values 16:59:14 that's still a deterministic test 16:59:20 ...the solution is to gain clarity around the function signatures for the processes defined in the spec 16:59:23 +1 to Orie that production is too vague right now 16:59:30 ...then writing tests will be much easier 16:59:45 brent_: This will be continued on the special topic call today. Please come. 16:59:53 ivan: I will not be able to be there. 17:00:14 ohhh 17:00:23 zakim, end meeting 17:00:23 As of this point the attendees have been ivan, shigeya_, TallTed, justin, dlongley, manu, brent, phila, orie, Geunhyung_Kim, drummond, markus_sabadello, wayne, selfissued, burn, 17:00:24 brent_: PR 644 is where we need to focus. Please do come to that call. 17:00:26 ... justin_r, selfissued___, JoeAndrieu, agropper, dbuc, rhiaro, ], jonathan_holt 17:00:26 RRSAgent, please draft minutes 17:00:26 I have made the request to generate https://www.w3.org/2021/02/16-did-minutes.html Zakim 17:00:29 I am happy to have been of service, ivan; please remember to excuse RRSAgent. Goodbye 17:00:33 Zakim has left #did 17:01:55 shigeya has joined #did 17:02:00 rrsagent, bye 17:02:00 I see no action items