14:53:48 RRSAgent has joined #did 14:53:52 logging to https://www.w3.org/2026/04/23-did-irc 14:53:56 rrsagent, make logs public 14:54:02 Meeting: Decentralized Identifier Working Group 14:54:06 Chair: ottomorac 14:54:10 Agenda: https://lists.w3.org/Archives/Public/public-did-wg/2026Apr/0020.html 14:54:10 clear agenda 14:54:10 agenda+ Agenda Review, Introductions (5 min) 14:54:10 agenda+ DIDWG Charter Update (5 min) 14:54:10 agenda+ IIW Next week. Should we have calls or not? (5 min) 14:54:10 agenda+ Debrief from the Special Topic call for 22nd Apr \[1\] (5 min) 14:54:13 agenda+ Finish Discussion on DID URL Dereferencing (25 min) 14:54:16 agenda+ Review other items in the google doc regarding the de-referencing discussion (if time permits) \[2\] (10 min) 14:54:28 previous meeting: https://www.w3.org/2026/04/22-did-minutes.html 14:54:49 next meeting: https://www.w3.org/2026/05/07-did-minutes.html 14:59:57 TallTed has joined #did 15:01:19 JoeAndrieu has joined #did 15:02:02 Wip has joined #did 15:02:09 present+ 15:02:17 present+ 15:02:35 manu has joined #did 15:02:49 present+ 15:03:10 present+ 15:03:13 present+ 15:05:01 zakim, next item 15:05:01 agendum 1 -- Agenda Review, Introductions (5 min) -- taken up [from agendabot] 15:05:03 transcriber-bot, resume 15:05:03 scribe+ 15:05:17 Otto Mora: Okay, so, uh, for agenda review today, uh, we have a brief update on the charter situation... 15:05:21 ... Uh, we also have, uh, just a brief discussion, uh 15:05:26 ... decide whether we have a call next week, due to IIW being there 15:05:29 ... Uh, also a debrief on the special topic call 15:05:34 ... You want to try and finish that discussion on the URL dereferencing? 15:05:43 ... And if time permits, we make it to other items on the Google Doc that we've been reviewing with, uh 15:05:45 swcurran has joined #did 15:05:49 ... Uh, Joe, and discussing with the team. Is there anything else people want to bring up? 15:05:50 present+ 15:05:51 q? 15:06:01 zakim, next item 15:06:01 agendum 2 -- DIDWG Charter Update (5 min) -- taken up [from agendabot] 15:06:02 ... Okay, not seeing any hands raised. So 15:06:09 ... Uh, first item, then, uh, DID working group charter update 15:06:14 ... I think on this one, I wanted to yield the floor to, uh, Pierre 15:06:18 ... To, uh, just provide some commentary on that 15:06:30 Pierre-Antoine Champin: Yes, thank you. Uh, so, uh, we did request a charter extension, because it's now clear that we are not gonna... 15:06:34 ... Finish on time. We got a 6-month extension, it's been approved 15:06:43 ... maybe not yet announced, but, uh, so that's, uh, that's done. I was 15:06:57 ... hard to say a bit surprised when, uh, Francois daustre told me… because I told them, okay, we need a 6-month extension, the goal is, at this point, not to reach out her, but we need more time to finish what we have 15:07:05 ... In stock, and uh… Francois told me, well, you will need to reach out anyway to go to maintenance mode 15:07:10 ... And I was a bit surprised because I didn't know that maintenance working groups were now mandatory 15:07:23 ... Uh, I understand that having a working group, even if dormant, uh, is more convenient, if we need to apply errata to the spec and so on 15:07:34 ... Uh, but I didn't know that it was, yeah, uh, required or mandatory in that, uh, in that respect. So, I will 15:07:39 ... Uh, starts working on a very simple new charter, which basically says 15:07:49 q+ 15:07:57 ... the group will just maintain the spec, uh, the spec that are there, and I'll loop with the working group about that. I don't want to take too much group time for this, because, again, our focus should be on 15:08:00 ... getting those two recommendations through. But, uh, this will be, um 15:08:09 ack manu 15:08:10 ... Uh, this could be on the, on a few, on a few agenda, and hopefully we can. We can make this, uh, straightforward enough 15:08:13 Otto Mora: Yep. Uh, nope... 15:08:29 Mandatory maintenance is good! Should be trivially chartered. 15:08:30 Manu Sporny: Uh, plus one to that. Thank you so much, PA, for getting that, um, pushed through the process. Um, I guess, uh, what I've seen other groups do, um, is that when they go into maintenance mode, if they don't have some of their items at REC... 15:08:41 ... the charter says we will continue the work, you know, towards rec for the items that are not complete, and then those items will immediately go into maintenance mode, and for everything else 15:08:50 ... we'll be in maintenance mode. Was that your expectation of the text that you were gonna write for this, um, maintenance mode charter? 15:08:57 q+ 15:08:57 q+ 15:09:02 Pierre-Antoine Champin: I guess I'll wait and see how much progress we do, but yes, I mean, if, of course, if by the end of the charter extension, uh, the recs are not published, then... 15:09:13 ack Wip 15:09:14 ... there is… there is a risk, let's face it. Then, yes, uh, I will adopt this kind of text so that we can, of course, uh, finish this, uh, in the… in the next charter 15:09:17 Otto Mora: Well... 15:09:25 Will Abramson: Yeah, I guess I wanted to speak to that as well, like, PA suggested something that, you know... 15:09:31 ... Maybe it's crazy, maybe it's not, but there is some failure state here where we don't… in fact, we don't 15:09:41 ... get through this digital URL dereferencing discussion. And I think the failure is we… almost like we would remove that from the spec 15:09:46 ... So we can still publish the thing that we have consensus on, which is did resolution, and then this 15:09:52 ... whole discussion would get pushed into the next charter. Like, I definitely don't want that to happen 15:09:56 q? 15:09:58 ... But we have 6 months. That doesn't mean we have 6 months. We have, what, 2, 3? 15:10:06 ... and then we have to be wrapping up, right? Like, because there's still a whole bunch of stuff, like, probably Manu can talk about more on the timeline concretely, but 15:10:06 q+ 15:10:11 ack manu 15:10:13 ... We don't have that much time, and I'm just concerned that there's still a lot of things that we are not making. Program 15:10:17 Otto Mora: Manu... 15:10:27 Manu Sporny: Oh yeah, plus one to all that. We still have negative time, right? Meaning, like, we… we blasted right past the end of our charter. That is not good. We need to finish as... 15:10:38 ... quickly as we can, and we need to make some hard decisions, right? So, just because we got a 6-month extension does not mean we let off the, you know, let off the gas and think we have, you know, um 15:10:51 ... we can relax. So, plus one to that, I would be a very strong minus one on us feeling like, you know, we can spend, you know, weeks to months more discussing some of these contentious items 15:10:56 ... Um, I think we need to… we need to very quickly come to closure on that, and 15:11:11 ... and move forward. Um, my hope is that within the next month at most, we have all of these contentious issues, at least, you know, proposals and resolutions on exactly what we're getting ready to… what we 15:11:19 ... you know, have consensus to do and move forward with it. So, yes, totally agree that it would be a failure mode to drag this out for 6 months and still not be anywhere 15:11:23 ... Um, I don't think any of us intend that to happen, and I think 15:11:27 ... Some of us will start becoming louder and louder about 15:11:30 ack pchampin 15:11:33 ... not allowing that to happen if the group looks like they're going that direction. Um, that's it 15:11:38 Otto Mora: Okay, I'll let Pierre close this topic, and then we can go ahead, Pierre... 15:11:44 Pierre-Antoine Champin: Yeah, yeah, so I raised this, uh, this possibility with the chairs. Now, of course... 15:11:55 ... that means that the re-chartering… the charter would be slightly more involved than what I described and Manu described 15:12:07 ... Meaning that if we want to defer Did URL dereferencing to a further version of did resolution, then we need to have this as a charter item. That means that the future 15:12:11 ... The next charter of the working group would not be pure maintenance 15:12:26 ... And so that might create its own friction, but, uh, but with this caveat, I think, uh, considering, uh, having a reduced, uh, dead resolution 1.0 15:12:35 ... Out there, and defer something to a future version might also be a graceful degradation mode 15:12:41 Otto Mora: Okay... 15:12:43 zakim, next item 15:12:44 ... Uh, next 15:12:44 agendum 3 -- IIW Next week. Should we have calls or not? (5 min) -- taken up [from agendabot] 15:12:53 ... So, for this one, uh 15:12:59 ... I guess the question to the group would be, do we have a meeting next week? 15:13:04 ... Or do we feel, given IAW, uh, most 15:13:12 markus_sabadello has joined #did 15:13:14 ... The people here would not be present, and we should just take a week off. Now here, consensus… Uh, on that 15:13:17 I'm going 15:13:18 present+ 15:13:22 ... I am definitely not going. Just heard that you aren't going, Manu 15:13:23 q+ 15:13:25 ... Uh, let's see who's calling 15:13:31 ... Uh, okay, Marcus just joined, maybe we should ask Marcus if he's going to IAW 15:13:34 ack Wip 15:13:36 ... Um, but I see Will has his hand raised, so go ahead 15:13:37 FWIW I'm not going to IIW, but I'm away next week 15:13:41 Will Abramson: Yeah, I mean, it'd be great to know if Marcus is going. My... 15:13:51 ... the initial sense is maybe we just have the Thursday call, and we don't have the. Special public call. Um… well 15:13:59 ... There is a lot of things to discuss. I'm a bit wary without Joe being there to discuss them. Gonna be slower, but 15:14:03 q? 15:14:03 ... Uh, if Marcus was there, hoping we could get things done 15:14:13 Otto Mora: Kind of looking at you there, Marcus. Alright, uh... 15:14:17 ... I think you're going, right? I think I heard you 15:14:21 Markus Sabadello: I'm here and I'm planning to go home... 15:14:27 Otto Mora: You're planning to go. Okay. Uh, so... 15:14:41 q+ 15:14:42 ... I mean, it seems that, um… We would not have Marcus and Joel. then we'll, I think, maybe… Let me just… skip the week for me? I don't know 15:14:46 ack Wip 15:14:48 ... Go ahead 15:14:56 How about Joe and Markus hold an IIW session on the issues? 15:15:06 Will Abramson: Yeah, I mean, without Max and Joe, like, all of these discussions are kind of blocked. I mean, I'm wondering if there are other things that the group could be. making progress on… Independently of that. Um… we... 15:15:09 ... Yeah, that's a good idea 15:15:13 And then come back to the group. 15:15:13 ... Um 15:15:16 ... Yeah, I don't know, what does the group think? 15:15:19 q? 15:15:23 ... I'm happy to cancel, but we do have a lot to be working through. Oh 15:15:24 q+ 15:15:30 ack JoeAndrieu 15:15:31 Otto Mora: Zero?... 15:15:35 ... Go ahead, Joe 15:15:38 Joe Andrieu: I just want to say, it might be useful to talk without us... 15:15:38 q+ 15:15:42 ... I mean, seriously 15:15:43 ack manu 15:15:45 Will Abramson: Mm-hmm... 15:15:48 Otto Mora: Manu?... 15:15:53 Manu Sporny: Yeah, well, I, um, I, I, uh... 15:16:03 q+ 15:16:05 ... I think I disagree, Joe. Like, I appreciate the yes, maybe, but like, you know, if it's something that either one of you, you know, vehemently disagree to, then it's just kind of like we just spent an hour talking about something that 15:16:14 ... we could have skipped talking about, because you could have told us right off the bat that you were like, no, that doesn't work for me. That's the only concern. I did really like Steven's idea that 15:16:18 ... Um, you hold an IW, uh 15:16:29 ... session about it. The, you know, danger there is, like, these are very involved topics, and, like, it would take an hour just to get people up to speed. Um, you could 15:16:41 ... you know, I mean, we… but it's… but it, you know, it's kind of nice to get people to understand what these working group meetings actually look like, like, you know, passers-by at Iowa 15:16:52 ... be a part of, like, this was an actual working group meeting where they were trying to discuss some pretty heavy things. Um, you know, if you couched it as that, that might… that might help, and, you know 15:16:57 ... two IW meetings where we do that would, you know, could be… could be useful 15:17:00 ... Um, but again, it's 15:17:12 ... Yeah, it's not… we're not necessarily supposed to do that, because this is supposed to be a, you know, semi-closed W3C meeting. I don't know. It's… it was a 15:17:16 ... I think it's a really interesting idea that we should consider, that's it 15:17:19 Otto Mora: I might suggest that... 15:17:24 ack Wip 15:17:25 ... Marcus, Joe, and Steve McCown at least sit down for a beer 15:17:29 F2F meeting would be helpful, I think. 15:17:31 ... Just my suggestion. Uh, Will, were you gonna 15:17:40 Will Abramson: Yeah, well, I mean, definitely, it would be a great chance for Marks and Joe to kind of sit in the same room and hopefully get on the same page, because my sense is still that... 15:17:45 ... The disagreement is less than it seems, and hopefully there is a 15:17:50 ... You know, maybe by being in person, that would help 15:17:59 ... Uh, I guess, I don't think anyone's proposing that this is, like, a proper working group meeting, but it would be a meeting that discusses, like, working group topics, right? And then that would feed back to us the week after 15:18:02 Otto Mora: Perfect... 15:18:06 Will Abramson: And, you know, maybe it's really just Mark and Joe who attend, but it could be on the agenda for people to fit in... 15:18:13 ... chime in. Uh, the other thing I was going to say is, to Joe's point of maybe we just hold the meeting anyway, like, I actually think 15:18:19 ... I am… I do think that could be valuable, just because, like, yesterday we had a special topic call, and it was just 15:18:27 ... Joe, it was like, you know, there was a few people, but it wasn't, like, Joe and Marcus, there wasn't arguing, but while there was, I think 15:18:32 ... Was really useful is, like, increased shared understanding of what we were actually talking about 15:18:39 ... And the question is whether that can happen. I think that… I think that could happen without either Marcus and Joe, at least us who are here 15:18:43 ... Together, trying to make sense of the, um 15:18:53 ... Questions under discussion, because it does feel like the group at the moment doesn't have enough people. Who feel confident that they have 15:19:01 ... you know, like, that they can make a claim to, like, this is the way we should go, right? Like, it feels like Marks and Joe have very strong positions 15:19:06 ... And then, while the rest of the groups are, like, you know, zero ambivalent 15:19:14 ... So that's the only argument, I think that maybe doing one session, and it's more just trying to understand maybe both sides of the argument, and 15:19:17 ... Just having a more open, sort of, educational discussion 15:19:27 Otto Mora: So it'd be more like, uh, just a… we don't make any decisions, more just understanding the various opinions and the intricacies of each... 15:19:28 q+ 15:19:33 ... in more detail, which I think you're right, Will, we did achieve that yesterday. So 15:19:36 ack manu 15:19:40 ... under that understanding, I think that might make sense to at least have Thursday, but I see my own, which is… Go ahead 15:19:45 Manu Sporny: Yeah, I'm plus one, leaning more towards having a meeting, um... 15:19:56 ... Uh, I think the ideal would be, like, a meeting with Joe and Marcus and Steve McCown on the other side of the phone, you know, at IIW 15:20:02 ... with observers, uh, so we can talk through, you know, a few things. I think if not 15:20:18 ... then talking about what the compromise positions could be, like, for example, I forget where I read this, but, you know, someone was like, well, what if we make a non-normative statement about the API and say that this is… oh, it was, um, I think, uh, Alex 15:20:32 ... from, uh, checked, uh, chimed in and said, well, you know, what if we have non-normative text down at the bottom saying that, hey, you know, people do implement it this way, um, but it's non-normative, and the group's probably gonna go away from this in the future 15:20:39 ... It would be a compromise. I don't necessarily like it, but I wouldn't object to it 15:20:44 ... So we could talk about compromised positions for each one of the items 15:20:53 Otto Mora: Okay. Does this require a resolution type thing? I think not, right? It's just not... 15:20:56 ... Okay 15:20:59 Will Abramson: No, no, I think we should have a call. I think it's the… we should have one call, let's not have two, because I think it would be too much, but... 15:21:00 Otto Mora: Right. Okay. So Thursday, regular holidays... 15:21:02 q? 15:21:02 Will Abramson: Yeah... 15:21:05 Otto Mora: Okay… let's see... 15:21:08 zakim, next item 15:21:08 agendum 4 -- Debrief from the Special Topic call for 22nd Apr \[1\] (5 min) -- taken up [from agendabot] 15:21:10 ... Yeah. Okay. Uh 15:21:18 ... So, on the debrief from the special topic call. Uh 15:21:22 ... So, what I think we did was, uh 15:21:28 ... sort of, um, understand is, uh, DDRL dereferencing 15:21:40 ... as an abstract function, uh, that was part of the conversation, versus a more flexible logical algorithm, that was part of the conversation there, and I saw some conversation between Pierre and 15:21:47 ... Um, Joe on this, then we debated the role of the dereferencer as sort of a distinct component, right? 15:21:54 ... Um, Joe kind of argues the current specification conflates the rules of the resolver, dereferencer, and client 15:21:58 q+ 15:22:00 ... Uh, Pierre here was emphasizing the need for a more unified interface 15:22:08 ... Um, then we also got into, um, a little more conversation around, uh, this topic 15:22:13 ... Uh, Ted suggested to resolve these ambiguities, we should maybe adopt 15:22:18 ... A, uh, compound nouns, uh, resolver client to explicitly define 15:22:19 q+ 15:22:24 ... the relationships, and reduce the linguistic blurring, I guess the words kind of 15:22:27 ... Uh, being confusing, uh 15:22:35 ... So that was another proposal there. We also reviewed Joe's proposed PR. Um, a little bit more 15:22:37 ack Wip 15:22:41 ... Um, I don't know, Will, am I missing anything else? Uh, maybe you… yeah. Go ahead 15:22:52 Will Abramson: Uh, I would say two things, like, there was that discussion with… there was this discussion about, like, our terms in the spec, like, there is some confusion around... 15:22:59 ... the use of client, and sometimes, I think in the spec, it talks about the client being a client to the did URL dereferencer 15:23:01 q+ to ask if we talked about it in terms of conformance classes. 15:23:06 ... and sometimes it is a client to the DID resolver. And sometimes the DID resolver is the DID URLD reference, but 15:23:12 ... So, Ted proposed, you know, maybe we should have explicit namings for 15:23:23 ... you know, resolver client, or dereference a client, but the sort of discussion also was like, well, maybe there is just one client, and it is the client of the resolver 15:23:28 ... If we agreed that the URLD referencing happens on the client 15:23:37 ... Which is, uh, at least Joe's position. The other thing that I wanted to ask Joe, really, to share is Joe shared an example of, like, a 15:23:45 ... Um, dereferencing happening in a way that, you know, doesn't realize the function signature 15:23:57 ... Um, and it's for a very specific case, like, the client is dereferencing a did URL within a verification method… within a proof on a VC, for example. They know 15:24:01 q? 15:24:02 ... what that URL is. I found that useful, maybe Joe can talk to it a bit more, but, um 15:24:03 q+ 15:24:08 ack pchampin 15:24:08 ... But then it's an example of how you might implement dereferencing without conforming to that function signature 15:24:15 Otto Mora: Yeah... 15:24:26 Pierre-Antoine Champin: to clarify what I was saying yesterday about the uniform interface, I think the value proposition of the deed resolution spec... 15:24:33 ... is to hide the complexity due to the variety of, uh, did methods 15:24:44 ... from the client, well, some, some client, uh, to be, uh, to be more precisely defined. Uh, and so, uh 15:25:00 ... So, it seems to me that did resolution is definitely doing that, because the resolution is absolutely method-dependent. It is not entirely clear to me whether. dereferencing 15:25:04 q? 15:25:07 q+ 15:25:12 ... Is or needs to be method dependent, and which, uh, which argues in favor of allowing the dereferencing to, to, to, to happen 15:25:25 ... Well, to be separate, which it is in the spec, to be separate from the resolution and the importance of, uh, talking about a dereference 15:25:35 ... Versus, uh… versus just explaining what you can do with the result of the resolution, which is the document 15:25:40 zakim, next item 15:25:40 I see a speaker queue remaining and respectfully decline to close this agendum, ottomorac 15:25:42 Otto Mora: Okay. So, before we go any further, because that was just a... 15:25:46 ... summary. Let's actually 15:25:51 ... That's the key 15:25:59 Topic: DID URL Dereferencing 15:26:00 ... Oh, okay, okay, I guess Sakim has. Uh, let me just change the topic 15:26:05 ack manu 15:26:05 manu, you wanted to ask if we talked about it in terms of conformance classes. 15:26:09 ... that you're already referencing, is what it is. And… okay, it's captured properly, and Manu is first on the queue 15:26:12 Joe Andrieu: All hail are AI overlords, that's all I gotta say... 15:26:16 Manu Sporny: I know, that's the first time I've seen Zakim being like, nope, sorry chair, not gonna listen to you... 15:26:20 ... Um 15:26:34 ... Uh, did have… did… in that discussion that happened, apologies, I have not been able to read the minutes yet, um, did we talk about this stuff in terms of conformance classes? Because usually when you talk about these things, these classes of things 15:26:45 bigbluehat has joined #did 15:26:50 ... you usually talk about them in conformance classes. Like, if you talk about a client, then the expectation is the client follows a normative part of section blah blah blah of the spec. If you talk about a server, or you talk about a document, you usually refer to a normative section of the specification 15:26:58 ... Um, so, for example, Otto, when you said, like, well, you know, the client may or may not do this, like, that's confusing from a conformance 15:27:04 ... Standpoint, because you want to be very clear about what the conformance classes entail 15:27:05 present+ 15:27:11 We did not 15:27:14 ... Right? So, you know, um… I don't know if we talked about it in that case. I would be pretty hesitant to start 15:27:25 ... breaking these things out unless we expect them to become conformance classes. I do understand that it's easier to kind of refer to them separately 15:27:31 q? 15:27:32 ... But there is a reason we're referring to them separately, right? We are expecting to act… we're expecting them to act in certain ways 15:27:44 ... Um, and usually, it's not a good idea to have, you know, definitions like that in the spec, and then not really tie them to normative statements explicitly 15:27:52 ... in the conformance class section. Um, so that's my suggestion, is if we do break these things out into different, different things 15:27:58 ... We think about, okay, what are… what's the conformance criteria for that thing? Right? That's it 15:28:03 ack JoeAndrieu 15:28:09 Otto Mora: Yeah, we honestly didn't get to that level of how we would implement it, but uh… That's a good suggestion. Joe?... 15:28:16 Joe Andrieu: Um, yeah, so to your point, Manu, I think, actually, we do have, um, reasonable conformance classes for everything but the client... 15:28:17 q+ 15:28:22 ... Um, the client's the least defined element in the architecture. Um 15:28:28 the current spec does not use the term "conformance classes"; but it does define them: https://www.w3.org/TR/did-resolution/#conformance 15:28:33 ... like we talk about a dereferencer with or without HTTP, and a resolver with or without HTTP, and I think we do talk about it in terms of conformance classes 15:28:38 ... Um, but I want to touch on a couple of things, including bringing in that algorithm that I mentioned on the other call 15:28:45 ... Um, the hope-for thing, uh, that I want to share, that I also shared on the special topic call 15:28:46 not for the client, though 15:28:50 ... is… on some levels, I agree with, um, Will that we're not that 15:28:55 Markus: If you have a DID-enabled application which dereferences something -> you have a dereferencer :) 15:28:58 Minutes from here: https://www.w3.org/2026/04/22-did-minutes.html 15:29:01 ... as… maybe we're not as far apart as it appears, I'm going to share a statement from, uh, Marcus in the signal chat on that 15:29:05 (yesterday special topic call) 15:29:08 ... Um, which is that if we have a DID-enabled application, which dereferences something, then we have a dereferencer 15:29:14 ... And that is absolutely my position, that it is the client that is the dereferencer 15:29:19 ... And the separation between the client and the referencer is the source of most of our challenges. Um 15:29:24 Section 7.2.3 15:29:25 "Specifically, when a DID URL with a DID fragment is dereferenced, then Dereferencing the Resource is done by the DID resolver, and Dereferencing the Fragment is done by the client." 15:29:25 And yet, the client is defined as 15:29:25 "Software and/or hardware that invokes a DID resolver" 15:29:26 ... Um, and an aspect of where that becomes a challenge in the current spec is just an example of this sort of conflation 15:29:33 ... That I've tried to point out and get some help with, is these two definitions of, um 15:29:39 ... Well, Pierre Antoine, exactly, that's right. Who's client? And it is not clear in the spec. Um 15:29:48 "whose client is it, anyway?" 15:29:49 ... Um, but in section 7.23, we say, in a particular circumstance, when it did fragrance the reference, the references is done by the resolver 15:29:58 ... And yet, a client is that which calls the resolver. So, in that case, the client is calling… I just don't understand how this works together 15:30:06 ... Um, and it's an example of where it's confusing. I thought the client was doing dereferencing or calling a dereferencer, but now a resolver is doing the dereferencing 15:30:11 q? 15:30:11 ... And it sort of becomes this Spider-Man meme of everyone pointing at each other, so sometimes that's confusing 15:30:21 ... Um, the algorithm that I shared on the other call was just an example of how I today can implement dereferencing 15:30:23 function checkProof(didUrl, proof) { 15:30:23 let baseDid = removeFragement(didUrl); 15:30:23 let fragment = getFragment(didUrl); 15:30:23 let didDoc = resolve(baseDid); 15:30:24 let key=getKey(didDoc,fragment); 15:30:24 let result = checkProof_(proof, key); 15:30:24 return result; 15:30:25 } 15:30:26 ... Without implementing the… that function, that's… that's 15:30:31 ... The thing that's getting me caught up with specific inputs and outputs, because I don't… I don't need to do that 15:30:42 ... It's quite a burden for my DID-enabled application to be considered a conformant dereferencer to have to have those inputs and outputs, especially the 15:30:46 ... highly burdensome content and resolution metadata. Like, I just don't need that stuff 15:30:56 ... Um, so I put some JavaScript with an unknown library behind it, um, that is just checking a proof, and I've got a did URL, and I've got a proof 15:31:04 q+ 15:31:05 ... And I pull out the fragment to get a base ID, and I get the fragment so I can work with it a few lines down 15:31:12 ... I resolve to get the did doc, sending in the base did, and then I have a function that gets the key out of that did doc, and all I get back from that is the key 15:31:16 ... And then my result is then I pass to a second check proof 15:31:25 q+ 15:31:27 ... Um, uh, the proof and the key. And all of that can happen in my client, and I'm dereferencing that did URL into my current context so that I can use it 15:31:34 agree with what Joe just said 15:31:34 ... And I really don't need the overhead, and it would be very frustrating for that use. To be something that is considered non-conformant 15:31:40 Otto Mora: Hmm. There was something else before we... 15:31:43 ... You had shared an example from Checked, right? 15:31:44 ... Or was that just 15:31:49 Joe Andrieu: Um… I don't think so... 15:31:53 "logical" client is not necessarily the same as "actual" client 15:31:54 Otto Mora: During the call yesterday? Like, some piece of code. Was that just from this same code that you just showed us?... 15:31:56 Joe Andrieu: Yeah, this is not from check... 15:31:58 ack markus_sabadello 15:31:59 Otto Mora: Oh, okay. Oh, okay, okay. Maybe I got confused... 15:32:02 ... Okay, uh, Marcus 15:32:10 Markus Sabadello: Sorry, I couldn't make it on yesterday's call... 15:32:16 ... Just want to say again, I fully agree that there are definitely 15:32:24 ... Some improvements we should make about language and terms and term definitions. Uh, maybe we need to 15:32:30 ... Maybe we do need some new terms, as I think Ted said, or someone 15:32:35 ... and improve existing definitions. I also agree that there are 15:32:43 ... some sentences or some statements in the specification that are wrong, so when… if there is a sentence that says 15:32:50 ... the resolver dereferences something, then that's a mistake, and we should fix that. I think there are 15:32:58 q? 15:33:00 ... some open pull requests which fix some of that, but I fully agree that there are some. Some more mistakes, probably, that 15:33:04 ... That need to be… that need to be fixed, um 15:33:15 ... My wish would be, going forward, what I hope we can get to is that everybody tries to understand everybody's use cases, um 15:33:25 ... Because when we talk about DDRLD referencing, there are quite a few different ways how that can go, right? If you 15:33:33 ... if you just have it did with a fragment, and you're dereferencing that, which I think is what. what Cho has been talking about 15:33:44 ... then, uh, life is relatively simple, right? And then you can do exactly what Joe said. You just have a client which does the dereferencing, and you 15:33:49 ... just get the verification method out of the document, and you're done. So that's 15:33:55 ... That's simple, um… and it should be simple, and nobody should… we shouldn't change anything about that 15:33:58 mermaid diagram tracking logical flow might also be helpful, especially in comparison to implemented flow (where 3 logical clients might be implemented within one software "client") 15:34:05 ... But the fact is that there are also other ways how the URL dereferencing can go when we have parameters. Like, the service parameter, or when we have a 15:34:12 ... path, uh, which sometimes is absolutely method-specific, right? There are DTRLs 15:34:20 ... Uh, which used the path in a certain way in DataIndy, or in DataChecked. Um, then 15:34:29 ... dereferencing is not that simple anymore, and it's not just something you can always do locally on just the Tit document 15:34:33 ... And that is what I've been trying to point out, and I hope that whatever changes we make 15:34:38 ... Uh, will accommodate all the use cases, and not just, uh 15:34:42 ... Individual ones, and we shouldn't… we also shouldn't 15:34:51 ... Declare existing functionality and existing use cases as, you know, hacks, or legacy, or 15:34:55 ... of fallback, so I wish that we're all aware of what everybody's trying to do 15:34:59 ack Wip 15:34:59 ... With the URLs, and improve the specification based on that 15:35:02 Otto Mora: Mm... 15:35:05 ... Well 15:35:09 Will Abramson: Sure, um... 15:35:18 I have made the request to generate https://www.w3.org/2026/04/23-did-minutes.html TallTed 15:35:25 ... Yeah, I wanted to talk about the conformance classes a little bit, but first, Max, just to what you said then, like, I think you said, like, the fragment is to simplicate your case, and it should be simple 15:35:33 ... So, would you say that that, you know, dummy algorithm, Joe, presented. is a conformant. The reference, sir. Uh, there's a question, like, I'm interested, because 15:35:34 q+ 15:35:39 ... I think it… you know, it definitely doesn't implement the function signature 15:35:44 ... But it does do dereferencing in a way that… is valid. Um 15:35:55 ... The other thing I wanted to say is about the conformance classes. I think actually reading this, like, a conforming digital or LD referencer, is any algorithm realized as software or hardware that 15:35:58 ... Complies with the relative normative statement 15:36:04 ... So, in 5, and the relative normal savings include both, like, the, um 15:36:10 ... Dereferencing the resource algorithm, and the dereferencing the fragment algorithm 15:36:20 ... But I think we often talk about in the spec, like, a dereferencer is really something that implements. The dereferencing the resource algorithm 15:36:25 ... Or sometimes we talk about it like that, right? Like, and not the dereferencing the fragment at the moment 15:36:30 q? 15:36:34 ... So again, I think it's just where we draw the boundaries around this thing that we're talking about. Um… that's all 15:36:35 ack pchampin 15:36:38 Otto Mora: Mm-hmm. There... 15:36:59 Pierre-Antoine Champin: Yeah, very quickly, uh, first, Joe, my comment on IRC was also your… when you say client, you don't specify which client what, and… and I… from your example... 15:37:10 ... I seem to, uh… well, it seems that you're talking about the client to the resolver, because you're calling the resolve function 15:37:15 q+ to say yes, there is only one client that we need to specify 15:37:25 ... That is clearly not a dereferencer client. Uh, it does some dereferencing, and I… my second point was basically to ask Marcus the same question as, uh, as we'll just… Did, uh 15:37:29 ... I understand that Marcus' argument is that 15:37:36 ... Us defining a function with a function signature doesn't mean that people cannot apply the algorithm 15:37:53 ... in a bigger… in a bigger context, and not necessarily separate it in a separate component of function, but in Joe's case, the problem is that he doesn't produce all the metadata that is required by the authorism, and so that's 15:37:56 q? 15:37:58 ... In my opinion, what raises the legitimate question, is it compliant? 15:38:00 ack TallTed 15:38:02 Otto Mora: That?... 15:38:05 TallTed // Ted (he/him) Thibodeau Jr (OpenLinkSw.com): Yeah, um... 15:38:10 ... Joe, I think that what's going on here 15:38:15 ... Is that your drawing, or seeing drawn 15:38:24 ... A significant differentiation between the logical client functionality and the 15:38:30 ... for lack of a better label, software client functionality. Um 15:38:39 ... in other groups, in other focuses, and actually, I think it was even in this group, on this focus 15:38:46 ... You've done some significant work with Mermaid and drawing the logical path of 15:38:51 ... Uh, uh, execution and information 15:38:57 ... From start to finish, and I think that's what's here, is that there's a logical path going on 15:39:08 ... And for your specific software implementation, which I do not think is general purpose, I think it is specific purpose for your. implementation need 15:39:13 ... Um, or rather, for your deployment need, this is your implementation 15:39:17 q+ 15:39:24 ... you don't need some of the fuzzy bits around the edges. And that's fine. You don't have to have those fuzzy bits around the edges. You're making a special purpose implementation deployment 15:39:32 ... That is just for your deployment needs. It's not to give to anyone and their cousin who wants to do something similar 15:39:40 q+ to note it's not special purpose -- the weird thing is that the spec breaks dereferencing into two parts -- that's the weird thing. 15:39:41 ... So, the specific path that goes from A to B with only 3 turns is fine for you 15:39:46 ... But the general path is from A to B with 17 turns 15:39:53 ... 14 of those don't matter to you, and that's great, that's fine. Special purpose implementation 15:39:58 ... Nothing to worry about. You don't need to make a, uh 15:40:04 ... Compliant declaration, because, again, it's not for general purpose 15:40:18 ... And if it is for general purpose, then in fact, you do need to implement some of those fuzzy things that you don't see a need for, because you're making it general purpose, those things need to be around, so someone who uses your stuff 15:40:21 ... For their general purpose, is gonna need that fuzzy thing 15:40:26 ack markus_sabadello 15:40:28 ... And hopefully I've used enough fuzzy words that that's clear. That's it 15:40:29 q+ to note that the spec has defined a "convenience function" that breaks dereferencing into a server-side algorithm and a client-side algorithm. 15:40:31 Otto Mora: Alright, uh, Marcus?... 15:40:41 Markus Sabadello: So, to answer this question, though, I think what Joe is doing is a compliant dereference... 15:40:47 ... I think it absolutely is, or it should be considered one, um 15:40:59 ... having a DTRL with a fragment, dereferencing that the way how Cho has described it, I think should be… Considered compliant and 15:41:14 ... in my mind, I… it feels already compliant, because I've always thought of the functions that we have in the spec. I've always thought of them as being abstract, logical 15:41:25 ... functions that can be implemented in many different ways. I think even in the way how Cho has implemented this, the way how Cho has implemented it 15:41:26 q+ to say if it's abstract, we probably shouldn't have a function signature -- we should just name inputs and outputs. 15:41:32 ... there is still an input and a result. You still start with the TDRL, and you get the verification method 15:41:39 ... Uh, out of it, so in a logical sense, I think there is, that is an implementation of 15:41:43 JennieM has joined #did 15:41:45 ... That function in in a way, um, we've found, we've already identified a sentence 15:41:55 ... in the specification that feels wrong, right? There's a sentence which says you must not alter the exact signature of the function 15:41:59 ... So that feels wrong to me. We can remove that, and we can 15:42:07 ... weaken some of the language around these functions even even more, so we could say, for example, that 15:42:17 ... that the support for the options and support for the metadata could be… could be optional, right? Jose, he doesn't want to… or he doesn't need 15:42:28 ... to deal with options or with metadata, he doesn't need that. So, let's say that you can implement that logical function also in 15:42:35 ... in a way where these additional things are optional, right? So I think maybe a way forward could be to 15:42:39 ... To make all the language around these functions more flexible and 15:42:50 ... And, uh, weaker, but in a logical, abstract sense, I think we still always have these functions in some way. It has been 15:42:56 ... Really useful to have these functions when we then talk about local and remote and 15:43:01 ... Clients and things like that and I, I looked up the 15:43:08 q? 15:43:09 ... the reference function that has been in the specification since 2020. I know that doesn't mean that it's 15:43:14 ... that it's right, but I think this has always been useful, and if we can just 15:43:19 ... Expand or make the understanding of these functions 15:43:24 ... flexible to the point where also shows implementation would be considered 15:43:26 ack JoeAndrieu 15:43:26 JoeAndrieu, you wanted to say yes, there is only one client that we need to specify 15:43:27 ... compliant, maybe that's… that's a way forward 15:43:35 s/ Cho / Joe /g 15:43:35 s/ Jose, / Joe, / 15:43:41 Joe Andrieu: Um… yeah, I think… I think what we don't have consensus around is that we should define more than one type of client. Um, I think... 15:43:48 s/also shows implementation/also Joe's implementation/ 15:43:49 ... Our job under this charter is to figure out how resolution works. Um, and I think it is the 15:43:57 ... Introduction of a different client that we now have to specify in a different way. That is the source of this problem 15:44:02 ... And so… that's sort of where I get hung up, because we don't 15:44:11 ... We don't… if my implementation here is a legitimate dereferencer. Then, uh 15:44:19 ... the definition and the specification is incorrect, because I don't gather or return any of that metadata 15:44:23 ... and yet the spec makes it very clear that I have to have a function signature that does that 15:44:33 ... Um, I realize, thanks to Marcus's comment, that, uh, I should have made one more change to that algorithm, which is I don't need to return a result 15:44:36 ... I could call a function that updates the state in my database 15:44:47 ... Um, so I… what I need to do is check the proof. And in checking that proof, I need to dereference the did and the did URL, so I can get to the verification method to do that 15:44:52 ... But there's nowhere in here where I need to implement that function, and that's my challenge 15:44:57 Function signature could maybe just make some return variables optional, instead of required. 15:45:00 ... I think, Marcus, what you just asked for was, hey, we could define this process in a more flexible way. I believe that's what my PR 15:45:10 ... does. I mean, that was the intention, is, you know, I went through the spec, I tried to understand what it was doing, I modeled the system and documented how I understood it in the 15:45:17 ... in the threat modeling context, and said, oh, hey, I think this breaks down into 6 steps. I think those are easily understandable and describable 15:45:22 ... And it doesn't depend on a third-party resolver or some other, I'm sorry, dereferencer 15:45:28 ... some other function that has to have these inputs and outputs. So I think the right answer 15:45:35 ... I know, for many of us, I'm just repeating myself, is that what we need to specify is an algorithm. And… and not a function 15:45:36 ack manu 15:45:36 manu, you wanted to note it's not special purpose -- the weird thing is that the spec breaks dereferencing into two parts -- that's the weird thing. and to note that the spec has 15:45:38 q+ 15:45:39 ... defined a "convenience function" that breaks dereferencing into a server-side algorithm and a client-side algorithm. and to say if it's abstract, we probably shouldn't have a 15:45:39 ... function signature -- we should just name inputs and outputs. 15:45:42 Otto Mora: Madam?... 15:45:51 s/Madam?/Manu? 15:45:53 Manu Sporny: Yeah, plus one to that last thing Joe said. I think that… that is the… I think, Marcus, you said, hey, we can make the… we can weaken the language, make it more abstract... 15:45:58 ... Um, and what I heard Joe say is, like, hey, this function signature is really to 15:46:10 ... concrete, it's, it's too restrictive, let's, let's, uh, you know, make it more abstract. I'm hoping I heard both of you say the, let's make it more abstract and less 15:46:22 ... you know, uh, restrictive, um, and I do think that's the right, right thing to do. Um, so working, working back, you know, back towards that. Um, I think it's 15:46:33 ... So, I found myself, as an editor, um, you know, editing the spec and having people argue against, you know, certain things in the spec 15:46:38 ... Um, and I'm like, yeah, but… and people are like, yeah, but there's a sentence that makes that, you know 15:46:50 ... not true, and I'm kind of like, yeah, but like, pretend that sentence does exist. It's true then, right? And people are like, yeah, but you need to remove that sentence, remove the sentence, right? And I think that's what we're talking about, like 15:46:59 q? 15:47:05 ... there is very restrictive language in the specification, Marcus. I think you've said, yeah, let's remove that restrictive language. So, let's remove this restrictive language so that, you know, we can get on to the next thing, right? So, you cannot change the function signature 15:47:11 ... Let's remove that language. I think that's what we're saying. Once we do that, all of a sudden, we will have accomplished at least 15:47:16 ... you know, something towards making that function more abstract. Um 15:47:19 ... Okay, so, uh, sorry, I have to find 15:47:25 ... where I put down the things I was gonna say, um 15:47:34 ... Okay, so the reason the dereferencing function is weird, so I think I disagree with you, Ted 15:47:39 ... Um, I think the… with something you said, I can't put my finger on it, the 15:47:46 ... The reason the dereferencing function is weird in the spec is because it is written 15:48:04 ... it is written to be a convenience function. It's like we have written a convenience function into the specification. We have written this thing where the server side does one half of it, and the client side does another half of it. The server side retrieves the resource, you know, can potentially do a bunch of stuff, and then maybe the fragment processing 15:48:10 ... you know, happens on the client, or maybe it doesn't, maybe it happens on the server. And I think, like, that's really confusing. Dereferencing 15:48:23 ... dereferencing is supposed to be a complete process that does include fragment processing. And when we write it such that it's not like that, and I don't think it's like that in the spec right now, could be wrong 15:48:31 ... that's what makes it, like, super weird, right? So, let's not make it super weird. Let's… let's make the dereferencing function 15:48:52 ... truly abstract, right? The function signatures are throwing people off. People look at the function signatures, and they look at a sentence that says, you cannot change the function signature, and they're like, okay, that's not abstract, that's a very concrete function signature, and I can't change it. I can't mix in information that I need to, 15:48:52 ... I can't decide that I don't, you know, need some of the return values there 15:49:03 ... it is a very, like, rigid, quote-unquote abstract function. It's confusing people. So let's… let's change… we don't need it, right? An algorithm 15:49:09 ... All an algorithm needs, especially if it's abstract, is a bunch of inputs and a bunch of outputs 15:49:15 ... We can do that. I don't think we absolutely have to provide a function signature 15:49:23 ... And that'll make it, you know, more abstract, and then let's loosen the requirement for some of the return 15:49:29 ... uh, you know, properties. I think that, potentially, Joe, I don't know if that… it gets us to where 15:49:38 q+ 15:49:46 ... you would be fine with it, right? So again, let's not split the dereferencing function up into fragment processings done on the client, and you can do a whole bunch of other stuff on the server. I think we can just be silent about it, but just unify it. Right? Um 15:49:51 ... Uh, and then let's get rid of the concrete 15:49:56 ... function signature, because it's confusing people, like, it is. Um 15:50:01 I think manu is actually agreeing with much of what I was (trying to) suggest(ing) yesterday. 15:50:06 ... We don't need it in there to accomplish the task of at least putting in a concrete, you know, algorithm, and let's make sure that concrete algorithm does the full dereferencing 15:50:11 ack markus_sabadello 15:50:13 q+ 15:50:13 ... Uh, process. It doesn't split half of it into the server and half of it into the… into the client. If that still exists. That's it 15:50:18 Otto Mora: Marcus?... 15:50:32 Markus Sabadello: Yeah, let's make it more abstract and remove that sentence that you cannot… Change it in any way, um… And then, I mean... 15:50:42 ... an algorithm that has inputs and outputs, that's… that's what we can write as a… that's written as a function right now, right? It's just maybe 15:50:49 ... Not clear enough that it can be implemented in very flexible ways 15:50:58 ... Nobody's saying that the reference or the function needs to be a separate component. Nobody is saying it's 15:51:05 ... It's a remote service, and nobody should be saying that it. It has to have that exact 15:51:14 ... Signature, but still, it's a process, it's an algorithm that has certain inputs and outputs, and that's 15:51:19 ... That's what we should be emphasizing a bit more. If we 15:51:22 The function is the algorithm is the black box, each with the same list of (required and optional) inputs and (required and optional) outputs. 15:51:23 if we do all those things Markus just said, I think it would address a number of concerns. 15:51:33 ... if we want to remove that function the way it's written right now, then I think that's not a good idea, because it just captures the inputs and outputs of the algorithms, that's… That's what it does, if we 15:51:43 ... If we say we want to remove that, then we could also remove the resolve function, right? Because you can also resolve these by just, uh 15:51:43 q+ to note I don't think people are saying "remove the guts of the algorithm" 15:51:49 ... By just following an algorithm, and by just doing what a method specification says, and we 15:51:59 ... We chose to write that in the form of an abstract function, and we do the same with the dereferencing. That's all it is, it's just a way of 15:52:06 ack pchampin 15:52:09 ... Writing the… writing down the inputs and outputs, but let's make it as… As flexible as us, absolutely 15:52:15 q+ to "any other algorithm that achieves the output of the algorithms in this document are valid." 15:52:16 Otto Mora: appear... 15:52:17 q+ to talk about necessary inputs and outputs 15:52:26 zakim, close the queue 15:52:26 ok, ottomorac, the speaker queue is closed 15:52:31 Pierre-Antoine Champin: Okay, so I'm with Marcus on this idea that function and algorithm maybe are not that different, but I'm hearing that a lot of people disagree, so I could definitely leave with... 15:52:32 q- later 15:52:44 ... changing the language and maybe getting rid of function and, more importantly, signature. I wanted to come back also on something Joe said about clients, and the fact that we are defining too many clients 15:52:55 ... I may be wrong, Marcus, correct me if I'm wrong, but it seems to me from what you said and wrote that you would consider that anything that applies, that follows the 15:53:05 ... resolution algorithm can be called a resolver. Anything that follows the different dereferencing algorithm can be called 15:53:24 ... a different cell. That being said, sometimes a piece of code will follow that algorithm for its own sake, and that for its own usage, and that's Joe's example. And in other cases, a piece of code will execute that algorithm 15:53:37 ... for the benefit of somebody else, and that's where it's a separate component of the general purpose thing that Ted was talking about. And the term client is very confusing in that respect, because it really focuses on the second use case 15:53:42 ... Uh, I think we all agree that, uh, um 15:53:56 ... dereferencing will… uh, sorry, resolution will very often be performed by a separate, uh, separate component, because that's the… that's the boundary that I was talking about between the 15:54:15 ... thing that understands the complexity of diversity methods, and the things that… and the thing that don't want to understand this, but the dereferencing, we all agree also, I think, mostly, uh, the dereferencing can be done, uh, on either side of this boundary. Uh, so 15:54:27 ... I know that the term client is defined also in a very generic way in the spec, but still, it has a lot of connotation, and even with this very generic definition, I think it's hurtful to talk about 15:54:36 q+ 15:54:40 ... a dereference client. Because, again, it seems to exclude those cases where the application is doing the dereferencing, is performing the dereferencing algorithm 15:54:48 ... Just for its own usage, um, that, that, that doesn't quite fit, so I think the, uh 15:54:53 ... I'm now quite convinced that the term client in this scenario is harmful 15:54:57 q? 15:54:59 ack manu 15:54:59 manu, you wanted to note I don't think people are saying "remove the guts of the algorithm" and to "any other algorithm that achieves the output of the algorithms in this document 15:55:02 ... are valid." 15:55:03 Otto Mora: Okay. Um… I know... 15:55:21 Manu Sporny: Um, just going back to one thing you said, Marcus, uh, about, like, you know, just leaving it out as kind of a black, you know, a black box, uh, algorithm. I don't… I don't think anyone's saying that. We're not saying remove the guts of the algorithm... 15:55:26 ... Um, so just wanted to note that, like, again, that would be a very, um 15:55:37 ... a big change, and I… I don't think anyone's arguing for that. Um, the other… the other part is, specs like this, algorithm sections of specs, usually say, like 15:55:45 ... This is one way to solve the problem, but anything else that you do that gives you the same output is totally valid 15:55:53 ... Like, anything that takes a totally different set of inputs and a totally different set of outputs and whatever, but gives you the same, you know, end result 15:55:55 q? 15:55:59 ... Totally fine. We should say that in the spec, right? Because we don't right now, which makes it seem like you have to 15:56:06 ... explicitly implement, you know, everything in that… in that algorithm. Um, so that's some language we should consider 15:56:10 ... adding. Um, it… it helps implementers. That's it 15:56:12 ack JoeAndrieu 15:56:12 JoeAndrieu, you wanted to talk about necessary inputs and outputs 15:56:13 Otto Mora: Okay. So... 15:56:16 Joe Andrieu: Yeah, um... 15:56:23 ... So, I think PA that, um, actually client is very specifically defined as the software that calls the resolver 15:56:29 I have made the request to generate https://www.w3.org/2026/04/23-did-minutes.html TallTed 15:56:35 ... And I think that's the tension, is that it became software that calls a dereferencer 15:56:35 ... But if my dereferencer is a legitimate client of the resolver, now 15:56:42 ... that's the source of the confusion. So I think… I think we have consensus that we need to define how a client calls. resolution. Um 15:56:56 ... I don't think we have consensus about defining any other kind of client. Um, but I want to talk about this difference between algorithm and function, and specifically why resolution is different. Resolution, we are talking about 15:56:59 agree with Joe... clients usually have HTTP APIs they call (not always, but usually). 15:57:05 ... a formal interface that goes over the wire that is the source of interoperability. So that has specific inputs and outputs that are… that we are binding to HTTP 15:57:11 (or remote APIs) 15:57:18 ... for this purpose of interoperability. And I don't think we've met the threshold of buy-in to go to that trouble for a dereferencer. Um, the dereferencer 15:57:26 ... As we turn it into an algorithm, we need to pay attention to what are the necessary. inputs and outputs 15:57:34 ... And I believe the only necessary input to dereferencing is the did URL. And the only necessary output is nothing 15:57:45 ... the function can entirely operate by side effects. It doesn't have to return a particular value of any particular kind, because the function may just apply the results of resolution 15:57:46 q+ to disagree about "options" and return values. 15:57:47 q? 15:57:50 ... and immediately dereference into the context of the application. And so, uh 15:57:57 ... That is what I attempted to do in that PR, is define the algorithm in a way that did not restrict 15:58:06 ... the implementers from what sort of inputs or outputs they do or do not have to use, other than, hey, you've got a DID URL. Here's how you dereference it 15:58:10 ... So 15:58:12 we shouldn't align the algorithm to a corner case where you don't get a resource back. 15:58:14 Otto Mora: Okay. I know that both Marcus and Joe wanted to jump here, but... 15:58:19 ... Yeah, forgettingably, we are nearing time, and I wanted to get, uh, Will 15:58:21 ack Wip 15:58:21 Will Abramson: Yep... 15:58:24 we can say the resource can be null 15:58:24 Otto Mora: Uh, kind of the closing word on this, and then, obviously, we will have the session next week... 15:58:32 Will Abramson: Yeah, well, I see we're closer to time. I won't say anything more on this topic. I will just say I... 15:58:38 ... I think this conversation was very positive, and I really appreciate people continuing the dialogue 15:58:43 ... I mean, Otto messaged me saying that the vibes were good. I do agree, right? Like, it's hard 15:58:47 I think the transcriber-bot needs to be taught to limit its IRC line lengths. (In the minutes, look at the lines following the line containing "convenience function into the specification"). 15:58:49 ... Sometimes, but I feel like we are… you know, this is a real problem, and we are working through it, so 15:58:53 ... No, thanks. Hopefully we'll get through it soon 15:58:59 Otto Mora: Thank you for the civil discourse. Really. It's... 15:59:02 Will Abramson: Yeah, for sure... 15:59:03 q? 15:59:04 Otto Mora: It's not easy, I know... 15:59:17 ... Okay, well, uh, I guess, uh, we'll have a session at IIW next week? Um… yeah. Virtual slash 15:59:17 Will Abramson: Yeah, I look forward to hearing how that goes... 15:59:24 Otto Mora: Impress. Cool. Thank you... 15:59:24 transcriber-bot, pause 15:59:24 scribe- 16:06:39 rrsagent, draft minutes 16:06:40 I have made the request to generate https://www.w3.org/2026/04/23-did-minutes.html ottomorac 16:08:02 zakim, please excuse us 16:08:02 leaving. As of this point the attendees have been Wip, ottomorac, pchampin, TallTed, manu, swcurran, markus_sabadello, bigbluehat 16:08:02 Zakim has left #did 16:08:17 RRSAgent, please excuse us 16:08:17 I see no action items