14:59:08 RRSAgent has joined #did 14:59:13 logging to https://www.w3.org/2026/05/21-did-irc 14:59:13 rrsagent, make logs public 14:59:16 Meeting: Decentralized Identifier Working Group 14:59:50 present+ 15:00:24 chair: Wip 15:00:27 present+ 15:01:33 JoeAndrieu has joined #did 15:04:52 transcriber-bot, resume 15:04:52 scribe+ 15:05:04 Topic: Agenda Review 15:05:05 Will Abramson: Okay, um, welcome everyone to today's working group call... 15:05:08 ... Just go to the agenda 15:05:19 ... Yeah, so today, the agenda, we are just going to continue off by we'll quickly review what happened in the special topic call yesterday, and then we're going to 15:05:25 ... continue working through the did URL dereferencing algorithm. I think we made great progress yesterday, so 15:05:30 swcurran has joined #did 15:05:31 ... Hopefully today, we will be able to clarify any last things, and move forward with some PRs 15:05:36 present+ 15:05:38 ... Is there anything else folks think should be putting on the agenda for today? 15:05:41 ... Um 15:05:41 q? 15:05:48 ... Okay, I'm not seeing anyone on the queue, so 15:05:51 KevinDean has joined #did 15:05:51 ... I won't move forwards 15:05:54 Topic: Special Topic call Summary 15:05:54 present+ 15:06:09 ... Okay, so, special topic called summary. Yeah, so yesterday, we continued working through Steven's 15:06:13 ... slide deck of example, uh, dig URLs that we would be dereferencing 15:06:17 ... And, in particular, we were focusing on a DID URL with a path 15:06:22 ... And I think we came to a pretty good, um 15:06:28 ... consensus on that, at least at the high level, which is, if a did URL has a path 15:06:36 present+ 15:06:38 ... The steps involved are, first, collect all the. past handling objects in a did resolution result 15:06:45 ... And secondly, um, use the path in the digurl to filter or select 15:06:49 ... The path handling object that you 15:07:04 ... Uh, targeting, and will use to retrieve the identified resource by that path. Um, if there are duplicates, so if a DID document contains multiple path handling objects 15:07:11 ... But are targeted by the same path, then that is an error. That's my understanding of where we're at 15:07:12 q+ 15:07:15 ack JoeAndrieu 15:07:15 ... Please correct me if anyone thinks I've misrepresented that 15:07:19 ... Joe? 15:07:27 Joe Andrieu: Sorry, uh, we also had some consensus about service, and that that would, uh, be handled before the path part... 15:07:29 Will Abramson: Right, yes, great... 15:07:40 q+ 15:07:43 ... Yes, we did talk about service first, and so the query parameter service, and if you… I think we decided if you're using that query parameter service, then you are targeting a specific identified service in the DID document 15:07:47 ... Um, the result of adding that query parameter to a DID URL 15:07:56 ack swcurran 15:07:56 ... is, by the result of dereferencing, that did URL is to retrieve the resource. Target, you know, identified by that 15:08:00 ... Uh, Steve? 15:08:09 Stephen Curran: Quick question on that, Joe. Does that mean if there's a path and a service parameter, you're ignoring the path?... 15:08:19 Joe Andrieu: It depends on whether or not the type of the service processes that path and its retrieval... 15:08:20 Stephen Curran: Okay... 15:08:23 Joe Andrieu: But yes, I would let the service decide how to interpret the path... 15:08:29 Stephen Curran: Okay, so it may ignore it, or it may use it, depending on which service you actually select. Okay... 15:08:32 Will Abramson: Mm-hmm... 15:08:37 +1 to the summary 15:08:39 ... Anyone else have any comments on that, before we, um… Continue on 15:08:48 ... Great, thanks. Um, okay, let me just stop again 15:08:50 Topic: DID URL Dereferencing Algorithm 15:08:59 JennieM has joined #did 15:09:02 ... So, I mean, we're just going to keep working through this. I think, Steven, you have a few more examples. I feel like we're pretty close to 15:09:02 Stephen Curran: Yeah... 15:09:05 Will Abramson: having... 15:09:05 present+ 15:09:12 ... Um, so let's just go through that and try and get a little bit deeper. I got… I guess 15:09:13 Stephen Curran: I agree. I think we're pretty close to being done... 15:09:16 Will Abramson: Yeah, that's great. I guess the caveat I will have is... 15:09:22 ... Um, maybe I should have done this in a separate topic. We want to merge this PR 15:09:29 ... 331. There's some back and forth, so 331 is the outline of this algorithm, which we're trying to define 15:09:31 https://github.com/w3c/did-resolution/pull/331/ 15:09:36 ... Now, like, and the idea is we'll get this outline in, and then we can independently define the separate steps 15:09:41 ... Uh, I was hoping to get this PR merged, I mean, there's some back and forth with markers, but also 15:09:49 ... Um, I was looking at the PR today, and it looks completely different. I don't know what's changed, but 15:09:55 ... This PR is now saying every single line in the spec has changed. It definitely didn't used to say that 15:10:01 ... So, I mean, maybe we can take this offline, but I need to figure out what's gone on here, because 15:10:07 Stephen Curran: I think… I think you merged that other PR, the cleanup PR, after? After you put in this one... 15:10:12 Will Abramson: Oh, maybe it needs rebasing. Okay, yeah. Okay, so I'll look at that... 15:10:12 Stephen Curran: Uh, yeah, it may be ugly. It may be ugly... 15:10:15 Will Abramson: Nah, it should be okay... 15:10:18 ... That's why I haven't, but yeah. Okay, I'll look into that 15:10:22 ... Yeah, good 15:10:26 Stephen Curran: Yeah, I noticed that as well today. I was gonna make a comment, but then thought, oh… that's so ugly. Okay... 15:10:30 Will Abramson: Okay, so let's keep going, yeah. Thanks, Steven... 15:10:42 Stephen Curran: Yeah. Okay, I think this… I don't think this is gonna take long, because I think we've got most of it, but let's keep moving on. Let's see, I think we were… we have gotten through this. You know, we've gotten through it there... 15:10:48 ... Um, there did one with just a fragment, one with just a parameter 15:10:54 ... And recall that, um, we're only including in this assessment, um 15:11:03 ... parameters that don't affect did resolution itself, so version time, version… Um… Uh, version ID 15:11:13 ... Um, so here's one where we've got both the parameter and, um, the fragments. And I think we got to that one 15:11:18 ... This is where we only got a path, so we got through that one as well 15:11:23 danpape has joined #did 15:11:25 ... Um, now we're at… I don't think we got to this one, so… the 15:11:38 ... path plus the fragment, and I think the consensus is 15:11:38 ... You would process it with, um, the path exactly the same as the previous, with just the path, and then 15:11:46 ... The, um, fragment would be processed by, um, the recipient of the output 15:11:52 ... No… no dispute there 15:11:53 q? 15:11:57 Will Abramson: I was trying to get the… Uh, I'm not seeing anyone on the queue... 15:11:59 ... I… I think I agree with that 15:11:59 Stephen Curran: Okay?... 15:12:02 Will Abramson: If anyone doesn't... 15:12:08 Slide deck being presented is here: https://docs.google.com/presentation/d/1pez4sEyJ11fawmbYKcyjlNQqII3cePbB/edit?slide=id.p1#slide=id.p1 15:12:13 Stephen Curran: So, this is the example we just talked about, uh, on the call. So, um, service takes priority over, um, the path... 15:12:22 ... But the service that is selected out of this process may or may not use the path that's up to that service, so 15:12:23 q+ 15:12:28 ack Wip 15:12:29 ... Um, if there's a conflict there, the service would, um, have precedent. And use the path as it sees fit 15:12:30 pdl-asu has joined #did 15:12:36 present+ 15:12:37 Will Abramson: Uh, I put myself on the queue just to ask about… to say this service doesn't handle the path... 15:12:43 ... do… I mean, I guess we talked about this a bit, are we just ignoring that, or should that be an error? 15:12:48 Stephen Curran: Uh, Joe?... 15:12:57 Joe Andrieu: Yeah, it's a really good question. Um... 15:13:03 ... I mean, it… in that type of error, what you have is the author that did URL 15:13:05 ... Misunderstood what the service was going to do 15:13:05 Stephen Curran: Yep... 15:13:08 Joe Andrieu: Um... 15:13:12 ... But there are paths where they don't necessarily 15:13:16 present+ 15:13:21 ... apply in a meaningful or useful way. Um, for example, if the service endpoint is a DIDCOM endpoint 15:13:23 -0.5 in silently ignoring something 15:13:24 Stephen Curran: Nope... 15:13:27 Joe Andrieu: then actually applying the relative ref on that… well, we're not using relative ref, so I'm… I'm conflating that, so let me… let me get that out of there... 15:13:33 ... Um, but I don't know what to do with the path with the DIDCOM, uh, service endpoint, for example 15:13:38 Will Abramson: Mm-hmm... 15:13:43 Stephen Curran: As one who uses DivCom a fair amount, I would say you just ignore it, because it doesn't make any sense... 15:13:47 q+ 15:13:47 Joe Andrieu: Yeah, I'm good with ignoring, I think trying to be strict here... 15:13:54 ... uh… I think there are different parties who are making the error, but I don't know why that doesn't feel as bad as other times. I want to be strict, so 15:13:56 Stephen Curran: Yeah. Yeah... 15:13:56 Joe Andrieu: I'm a little... 15:13:59 Will Abramson: Uh... 15:14:02 ack pchampin 15:14:05 Joe Andrieu: I wish I had a clearer answer based on first principle, but… I don't think it's a problem to just ignore it... 15:14:06 q+ 15:14:08 Will Abramson: Let's see, I see PA on the queue... 15:14:14 Pierre-Antoine Champin: Yeah, I'm hearing things that I find strange, uh, hearing this... 15:14:19 ... this URL doesn't make sense, and we return something anyway 15:14:24 ... doesn't quite feel right. In general, I'm… I'm 15:14:33 q+ to mention query parameters in http 15:14:36 ... minus… not minus 1, but minus 1.5 on silently ignoring something. I think I would be happy with returning something 15:14:37 q+ to note things are ignored regularly on the Web (HTTP query params on servers that don't understand them, HTML, etc.) 15:14:41 ... Together with an error or a warning that something was ignored 15:14:47 ack Wip 15:14:50 ... Uh, but if it's re… if it really doesn't make sense, maybe we… maybe then the result should not return anything at all. I don't know 15:15:07 Will Abramson: Yeah, I put myself on the queue to mention, like, in the future, maybe when we add it to the spec, we could return a warning. Like, currently, we don't have such a concept, but we do have it as a planned thing that we would like to have in the future. Similar to how VCOM does it, so errors are... 15:15:12 ack JoeAndrieu 15:15:12 JoeAndrieu, you wanted to mention query parameters in http 15:15:13 ... There's no did result, right? Like, the did document is empty, but a warning would be an error message while still returning a result 15:15:17 ... Uh… Joe 15:15:22 Joe Andrieu: Yeah, I think we… we should not require any particular handling. Um... 15:15:30 ... To me, this is like query parameters that you may send to an HTTP endpoint that it is not looking for and doesn't deal with 15:15:38 ... Um, there's nothing in the HTTP spec that says that servers who get a query parameter they don't understand have to return an error or a warning or anything 15:15:43 ... Um, if they want to, they could. They could say, hey, you gave us a query parameter we don't understand 15:15:51 ... But I think it's important to leave it up to the service, just like we leave it up to the web service. To figure out 15:15:56 ack manu 15:15:56 manu, you wanted to note things are ignored regularly on the Web (HTTP query params on servers that don't understand them, HTML, etc.) 15:15:56 ... How it wants to handle, potentially, invalid parameters or components 15:16:00 Will Abramson: Yes. Hello?... 15:16:06 Manu Sporny: Yeah, plus one to, uh, what Joe said, that was definitely one of the things I wanted to mention... 15:16:07 JoeAndrieu, agreed, but such a HTTP URL does not "not make sense", it could be interpreted by the server 15:16:17 ... is the HP query parameter stuff. Um, you know, we also have examples of other specs that quietly ignore, like JSONLD quietly ignores terms that are not defined when it's not in safe mode 15:16:25 ... Um, HTML quietly ignores, you know, improperly nested, you know, HTML and tries to do its best job to render it. I think this is another 15:16:32 q+ 15:16:34 ... kind of, um, example of that. So, plus one, the implementation should decide, leave it to them. We don't need to specify. it. That's it 15:16:36 ack swcurran 15:16:41 Will Abramson: Okay, great, um… Steven, and I'm hearing kind of conflict... 15:16:47 Stephen Curran: Just one… one quick final comment. The… I suppose the service could say, oh, and if you get a path with it, return an error... 15:16:50 ... And then, it's really up to the service to decide 15:16:56 ... what it could do, so it could be explicit about what it does, but I don't think the spec… this level spec should do it 15:16:57 Will Abramson: Mm-hmm... 15:16:58 fair enough 15:16:59 q+ 15:17:00 Stephen Curran: So, plus one that Joe and Manny... 15:17:08 Will Abramson: Okay, great. I mean, it sounds like we… Have consultants. It's good... 15:17:14 Stephen Curran: Okay, next one, let's see, we've got a fragment... 15:17:15 ack JoeAndrieu 15:17:15 Joe Andrieu: Oh, hold on, I hopped on the queue, if you don't mind... 15:17:16 Will Abramson: Oh, sorry, yeah, I didn't see that... 15:17:19 Stephen Curran: Oh, sorry... 15:17:22 Joe Andrieu: I want to say, it might be useful to... 15:17:28 ... Um, specify… make sure we have errors that the server can respond with. Um 15:17:31 Stephen Curran: Oh, interesting... 15:17:40 Joe Andrieu: So, you know, if it is a path error, if it is a query part, we may want the service to respond with something better than invalid did URL... 15:17:47 ... But I haven't looked at what errors might come back, just since we're at this sort of level of granularity of going through all the possibilities 15:17:50 q+ 15:17:52 ... Um, we might want to define the kinds of errors the service might return 15:18:02 Will Abramson: Um, I would just say on that, I mean, I think currently the way we have, like, problem details of that error, like, it's possible to... 15:18:05 ack Wip 15:18:05 ... Kind of add a detail to, like, an arrow, like 15:18:09 ... invalid URL. Um 15:18:14 ... So, like, that information could also go there, like, why is it an invalid URL? 15:18:19 ... But yeah, maybe that's something to discuss later in the future thing 15:18:22 Stephen Curran: Nice... 15:18:32 ... Okay, um, here we've got a path, we've got a service, we're gonna change this again back to service 15:18:38 ... And a fragment, again, I think that's the same with the fragment applied after 15:18:46 ... the dereferencing result has been retrieved, so I think this one is a quick one. Any other… any comments on it? 15:18:50 ... Okay 15:18:53 Will Abramson: Sure... 15:19:06 Stephen Curran: Okay, here's one, um, that's kind of interesting when you think of… so the only… this is where we've got metadata, so we've got… and when I talked about metadata in this, I said relevant... 15:19:11 ... to dereferencing metadata. So, the major example is did link resources. So 15:19:20 ... I have a didoc, and I've returned, um, metadata that includes a bunch of did link resources 15:19:30 ... But I didn't have any trigger on it. Uh, I would say the outcome of this is simply the did doc, and the retrieval strategy is the did doc 15:19:37 ... strategy. Um, even though there's metadata associated with it. Uh, the URL didn't 15:19:40 ... trigger any processing be done on it, so we just ignore it. Good? 15:19:42 Will Abramson: Yep. Sounds good... 15:19:42 Stephen Curran: Cool... 15:19:45 Joe Andrieu: Yep... 15:19:49 Stephen Curran: Same... 15:19:56 ... Uh, same as before… Um 15:20:06 ... Yeah. Same as before, the metadata wouldn't… doesn't come into play. So we don't do anything with it 15:20:09 ... Okay 15:20:12 Joe Andrieu: Uh, I would just clarify, it could come into play depending on the service type's retrieval algorithm... 15:20:16 Will Abramson: No... 15:20:19 Stephen Curran: Explain that... 15:20:22 ... Mm-hmm 15:20:25 Joe Andrieu: So, I'm gonna have a service object in my did document, right, that has an ID of files... 15:20:30 ... that's gonna have a service type. That service type could use the metadata 15:20:33 Stephen Curran: Okay, I see... 15:20:44 Will Abramson: I guess my comment on this is, like, I don't think the method, like, based on the fact that we've said, like... 15:20:50 ... The handling algorithm aggregates all these path handling objects, including the metadata 15:20:55 ... I don't think the fact that there is metadata or not makes any difference to how we are 15:20:59 ... Handling dereferencing, because there are other things that 15:21:02 q+ 15:21:02 ... And they just take over all that stuff 15:21:07 ... Like, the fact that something… a Didriage solution result contains metadata or not 15:21:17 ... it doesn't help me, like, I'm just going to dereference this digurl using the existing rules we've talked about, and if there's metadata that contains a path handling object, I'm going to handle it there 15:21:21 ... maybe, as Joe said, if the service tells me to look in the message, I'm gonna do that 15:21:28 Stephen Curran: I mean, that's exactly the nuance I was trying to get to when I said the metadata in this case is relevant. Like... 15:21:35 ... Much of the metadata is just, oh, time of dereferencing, how long the dereferencing, or the, sorry, the resolution took 15:21:41 Will Abramson: Mm-hmm... 15:21:54 Stephen Curran: and things like that. Obviously, that's not going to affect anything. The particular metadata is where it affects it. And so, you're right, when there's DID-linked resources, and did-linked resources is the elephant in the room when we talk about metadata. As far as I know, it's the only thing that is trying to. impact... 15:21:57 ... Resolution by using the metadata 15:22:03 ... Um, or impact the referencing via metadata 15:22:10 ... And so, when we get to the one that is the path. That includes the path 15:22:21 ... Yeah, there it is. The path and the metadata, that… this is where the metadata comes in. The metadata, the relevant metadata. That impacts path up 15:22:23 ack JoeAndrieu 15:22:25 ... Path handling objects within the metadata come into play 15:22:29 Will Abramson: Uh, I see Joe, I think, is on the queue? Joe?... 15:22:36 Joe Andrieu: Yeah, I think you eventually got to the nuance I was arguing for, Will, which is... 15:22:41 ... Um… if the service uses the metadata, then the metadata is relevant 15:22:44 Will Abramson: Mm-hmm. Mm-hmm... 15:22:50 Joe Andrieu: But it may not. But if… but you don't know that until you've looked at the service type of the service that. Made it through your selection algorithm... 15:23:00 q+ 15:23:00 Stephen Curran: But just to be clear, with resources, there is no service type, right? There is no service... 15:23:02 ... Yeah 15:23:03 Joe Andrieu: Correct. Yeah, this one's trickier, the one you have on screen... 15:23:05 ack Wip 15:23:06 Stephen Curran: Yeah. Yeah... 15:23:11 Will Abramson: Yeah, actually, I promise I could talk about that. I mean, I don't understand linked resources fully... 15:23:18 ... But they don't have a type at all, but my understanding is, like, a bid-linked resource as an object 15:23:25 ... is… that's the type of it, right? Like, that's how you don't understand the type. It is a didlinked resource, not the only kind of thing that it could be 15:23:29 Stephen Curran: So, what they do is, when they resolve... 15:23:33 ... So the example they've got is, you've got a checked 15:23:40 ... You've got a check ledger, you've got an idea… a did on it, so a 15:23:46 ... they call it a collection ID, and then that collection has a bunch of other 15:23:54 ... ledger transactions that are resources. And so, rather than putting all those resources into the DIDOC 15:24:03 ... At resolution time, it calculates… it goes and looks at the ledger, finds all of the resource identifiers 15:24:08 Will Abramson: Mm-hmm... 15:24:10 Stephen Curran: associated with that collection, with that did, and puts them in the metadata, because it can do it at runtime, and it can be dynamic... 15:24:13 Will Abramson: Mm-hmm... 15:24:19 Stephen Curran: So, I mean, I… I don't like the pattern. Um, but... 15:24:23 Will Abramson: Mm-hmm... 15:24:29 Stephen Curran: it's been used. Like, I… so I put in an issue a while back saying, wow, does everyone realize that's exactly what's going on? That… that... 15:24:37 ... The metadata isn't just, oh, the time it happened, and so on, this useful information that you might display and use, but actually 15:24:42 ... is completely relevant to how it goes. Uh, I don't like it, but that's what 15:24:45 q+ to say it is weird 15:24:50 Will Abramson: Hmm... 15:24:50 q+ 15:24:50 Stephen Curran: already exists. And that's kind of why I wanted to highlight it out, is this special case of you have a path, but you also have this... 15:24:54 ... Metadata that's relevant to it, but only in the case that 15:24:57 Will Abramson: Mm-hmm... 15:24:57 ack JoeAndrieu 15:24:57 JoeAndrieu, you wanted to say it is weird 15:24:59 Stephen Curran: The metadata's relevant, that you know that metadata's there... 15:25:02 Will Abramson: Uh, Joe?... 15:25:05 Joe Andrieu: Yeah, I just... 15:25:14 ... I just want to chime in. I also think what's going on at did link resources is weird. Um, I mean, we are trying to support it. I think it's important that we try to support it 15:25:23 ... Um, but they've created this side bundle of information for which there's no way to, um, index or point to 15:25:25 Stephen Curran: Yep... 15:25:28 Joe Andrieu: Um, they've got a really interesting and weird, um... 15:25:36 ... HTTP range 14 problem on their resource URI parameter, which is basically the equivalent of the path parameter. In other words, the resource URI 15:25:39 Will Abramson: Mm-hmm... 15:25:44 Joe Andrieu: is what the did URL should look like in order to select that, uh, entry in the linked resource metadata... 15:25:47 Stephen Curran: Yep... 15:25:51 Joe Andrieu: Um, but I don't have a way to have a URL that has a fragment that points into that metadata... 15:26:00 ... Because we don't have a URL that gives us the primary resource that is metadata for them to index with a fragment 15:26:07 ... So, there are some weird things going on here. Um, I think we're doing the right thing by trying to incorporate it. I just, you know, it is… there's 15:26:12 ... Some weirdness here. Um, and it might be helpful for us to give them feedback, um 15:26:13 Will Abramson: Hmm... 15:26:16 Joe Andrieu: But I'm not sure the most productive way to do that... 15:26:19 ack Wip 15:26:23 Will Abramson: Yeah, I think we've asked them to participate in this for a number of times. They have not really shown up that much... 15:26:30 ... I put myself on the queue to raise a different thing, which maybe we talk about after we've been through all these examples, but it's relevant here 15:26:36 ... Which is… I mean, I think Joey talked about this as well with Bob. We need some way for objects to signal 15:26:43 ... that they handle paths, right? And… and there might be different ways that we do that, but 15:26:50 ... do… did URL… people handling did URLs, like the clients of them, need to be able to look in the resolution result 15:27:00 ... and be like, ah yes, these 3 are things that I care about. And I guess, obviously, part of that is, like, maybe these clients aren't going to know all of those objects, right? Like 15:27:03 ... I think that's fine, right? A client can only 15:27:07 ... handle, you know, only accept these things as path handling objects 15:27:16 ... For the ones that they understand, like, there might… there might be this new thing that the client just doesn't understand, and they're not going to treat that as bad. I think that's just the nature of it 15:27:17 q+ the problem is novel approaches 15:27:22 q+ to say the problem is novel approaches 15:27:27 ack JoeAndrieu 15:27:27 JoeAndrieu, you wanted to say the problem is novel approaches 15:27:27 ... Uh, Joe's on the queue 15:27:30 Stephen Curran: Any ideas on that? Um, this came up yesterday, at the end of yesterday, so… oh, good. Yep... 15:27:33 Will Abramson: Yeah, Joe?... 15:27:39 Joe Andrieu: Yeah, I want to say I think the real problem here is, you know, we have 3 approaches that we know of... 15:27:46 ... Um, there are going to be novel approaches, um, because of our decentralized architecture. Someone could come up with a new 15:27:53 ... Mechanism to do it, and they don't think it fits within our current architecture, so they invent their own, and so now we have a fourth way 15:27:54 q+ 15:28:00 ... Um, and the challenge with the fourth way is that clients written today won't even know that they are doing it wrong 15:28:07 ... And so… for example, right, linked resources is just a top-level property 15:28:17 ... And if you didn't write your client to look for that property, you're not even going to be aware that the path is supposed to be interpreted that way, and you may fall back to some other approach, which isn't really what you should be doing 15:28:18 Stephen Curran: Mm-hmm... 15:28:21 Joe Andrieu: Um, but if we had a mechanism... 15:28:29 ... Um, and uh, you know, I have proposed one, and I'll get to it, but if we have a mechanism whereby any given property self-labels 15:28:40 q- 15:28:42 ... that, hey, I'm a path handling thing, then that client that doesn't know how to handle linked resources would at least see, oh, they've got a path handling thing I don't understand, and so they could throw an error rather than silently believing 15:28:49 ... That they are correctly processing the path, when in fact there is a path landing object that they should have evaluated, which did not get evaluated 15:28:54 ... Um, the technique I think we can use to do that is JSON-LD type 15:29:00 ... So, we can just add a type to the type specification, that can be an array 15:29:10 ... Um, and so the service type could be both, for example, path service or file service, um, and it could be, um, path handler, or whatever this new term might be 15:29:15 ... Um… and I think that would address it. And that would mean, for example, for linked resources 15:29:21 ... that property is linked resource at the top level. Sean wouldn't have to change that 15:29:26 ... All he would have to change is add the type to the linked resource definition so that it has 15:29:35 ... path handler, or whatever the term is we want as a type, and then any client would be able to say, oh, there's a path handling object that I do or do not understand 15:29:41 +1 to what Joe said as a way to future proof this thing 15:29:42 q+ 15:29:47 ack swcurran 15:29:49 Will Abramson: Um… let's see… yeah, yeah, go for it, Steven... 15:29:58 Stephen Curran: Uh, so, just to understand that. So, type would become an array, or would be used as an array, I guess... 15:30:03 ... an array? Is that right? And you would have multiple, including 15:30:09 ... for example, path service, comma, path handler. Links resources would have 15:30:14 ["pathService", "pathHandler"] 15:30:17 ... a type of path handler. I don't know if it has a type already. Um… Is that what you're saying? 15:30:17 q+ 15:30:18 q+ 15:30:20 Joe Andrieu: Yeah, that's exactly right... 15:30:21 ack manu 15:30:22 Stephen Curran: Okay... 15:30:25 Will Abramson: Oh. Manu? Yeah... 15:30:38 Manu Sporny: Yeah, plus one in, uh, general to that approach. Joe, are you thinking… I forget, in linked resources, is this an extra type that goes on the service, or on the, like... 15:30:42 ... some other place in the DID document. Like, it could be any arbitrary place in the did document 15:30:42 Joe Andrieu: Um... 15:30:45 Manu Sporny: Path hand, uh, yeah... 15:30:50 Joe Andrieu: Correct, it could… because, uh, linked resource is not a service... 15:30:58 ... Because it does not have a… it is not guaranteed to have a URL service endpoint, so we could not use that. So 15:31:06 Manu Sporny: Yeah. Okay, so we're basically just signaling anywhere in the did document, hey, did resolver, if you don't understand this, then you might not be doing this. You know, you might… you might... 15:31:11 ... incorrectly interpret the path. And then in that case 15:31:17 ... Are we saying the did resolver should throw an error if it doesn't understand one of the. Path handlers 15:31:19 Joe Andrieu: I think that's right... 15:31:21 Manu Sporny: Okay... 15:31:23 Joe Andrieu: Some sort of unrecognized parameter, unrecognized something... 15:31:26 Manu Sporny: Yep... 15:31:33 Will Abramson: Uh… sorry, my, um… IRCs... 15:31:43 ... Don't know what it's doing, it's crashed. I think I was next, and I did want to just voice something that Marcus has been saying, at least in the chats that we have 15:31:50 ... I mean, I know he's not here, which is frustrating, but he, he said something like, he said, I'm worried that 15:32:02 ... that we use the service type to mean, on the one hand, the type of, like, the API protocol EQC that you find at an endpoint. So, like, you know, DIDCOM messaging is defining 15:32:07 q+ 15:32:13 ... You can use this service endpoint for DIDCOM messaging, and then also defining it as a processing instruction for how we transform. Or handle the path 15:32:19 ... I mean, I don't know if that's a problem, but there is two different… you know, you can imagine using that 15:32:27 ... I just wonder what people think about that, and maybe somebody else can help me manage the queue, or I… Figure out what's going on, I see 15:32:27 ack Wip 15:32:28 ... I think I'm back, actually 15:32:29 ack manu 15:32:33 Stephen Curran: Manny's on the queue, I think. Oh, yeah, menu... 15:32:39 Manu Sporny: Um, and I'm… I took myself off the queue, racked myself, um... 15:32:46 ... Uh, yes, that's fine, right? Like, you know, JSONLD uses duct typing, you know, if the object 15:32:48 Wip has joined #did 15:32:52 ... Quacks like a duck. It's probably a duck. Um, and that means that you can mix and match 15:33:00 Stephen Curran: Mm-hmm... 15:33:02 q+ 15:33:06 Manu Sporny: completely, you know, crazy things together if you want to. Not that this thing's crazy, right? I mean, like, you know, we're saying, hey, there's a path service. And by the way, it's also got information that you should pay attention to with respect to path handling... 15:33:07 q? 15:33:21 ... Um… I think that's totally fine, um, and is expected. The only thing people might complain about is, like, you know, the SID spec is not JSON-LD, or you can do it where it's not JSON-LD, and 15:33:26 ... People might get cranky that you can only do this thing for did documents, but it's kind of like 15:33:35 ... use dids then, right? Like, um… and I think it's… it's probably also fine to duct type the… the non 15:33:40 ... uh, the SID document as well, like, you're really just looking for a type. Um 15:33:47 ... that matches something pretty strict. Um, and I think we're gonna end up putting this path handler type in 15:33:54 q+ to talk about CIDs 15:33:58 q+ 15:34:01 ack swcurran 15:34:01 ... the core did spec, and I would recommend we put it in the SID, um, you know, the SID context as well, uh, so it's just globally known. Whether or not you're using JSON-LD or not, this is a thing you should be looking for. Um 15:34:02 Will Abramson: Mm-hmm... 15:34:03 Manu Sporny: That's it... 15:34:06 Will Abramson: Thanks, man. Uh, Steven?... 15:34:11 Stephen Curran: The thing I really like about this is packed service, um... 15:34:20 ... Has, to this point deliberately avoided doing things that did Linked Resources and linked resources have, which is have 15:34:30 ... some sort of verifiability in the service, so things like, oh, here's the hash of the… of the resource, um, so that 15:34:36 ... there's some verification on it afterwards. This certainly opened the door to that, because now you can say 15:34:43 ... Something like verified path service is a path handler, and now you can add additional things to it 15:34:46 ... And… and get that, um 15:34:51 ack JoeAndrieu 15:34:51 JoeAndrieu, you wanted to talk about CIDs 15:34:51 ... that additional verification, so I really like this. I think this is great 15:34:55 Will Abramson: Great, thanks. Uh, Joe?... 15:34:58 Joe Andrieu: Yeah, I just... 15:35:03 ... I want to bring up the elephant in the room around SIDS, and I'm not 15:35:11 s/SIDS/CIDs/ 15:35:13 ... I don't even know what I want to advocate about it, just that it's a mess. Um, but we should start to socialize amongst ourselves some approaches to deal with it 15:35:22 ... Um, did resolution doesn't apply to SIDS 15:35:24 ... Um, and so we've got a very complicated set of things that you would do to interpret a did document 15:35:24 q+ to agree with Joe's trepidation 15:35:31 ... that I think make a lot of sense to also use to interpret if you get back a SID document. Um 15:35:38 ... But, you know, these have sort of bifurcated, and I don't know how to heal that 15:35:42 ... Like, just get it tractable for us to manage 15:35:46 ... Um, so, I'm curious, many of you have any thoughts about it? 15:35:48 ack manu 15:35:48 manu, you wanted to agree with Joe's trepidation 15:35:52 Will Abramson: Um… yeah, Manny, you want to go? I mean, about different things... 15:36:01 Manu Sporny: Sure, I mean, I think I've said this before, I hate that spec. Like, I wish it never existed. I think we should burn it with fire, but I don't think... 15:36:08 ... we're gonna be successful in doing that. I totally agree with Joe and his trepidation, um 15:36:18 ... you know, it exists, you know, and it's gonna… it's just gonna bifurcate, like, the things you can do with SIDS is just gonna bifurcate from the things that you can do with DIDS 15:36:22 ... And I would like us to just focus on dids and making dids really great and useful, and 15:36:27 ... Um, and if people want to, you know, backport features and whatever to Sid, like 15:36:39 ... join the group, become an editor, fight for it, you know, that kind of stuff, but I don't think we should pay too much attention. I don't think we're making any decisions, so let me clarify. I don't think we're making any decisions 15:36:45 ... that would be impossible to implement in the SID spec. And I think that's fine. Uh, I don't 15:36:54 ... think it is our job to go and try and put all of these, you know, features and try to, you know, align DID resolution with the SID spec, like 15:37:00 ack Wip 15:37:02 ... let the community that really wants to use SIDS do that, right? Um… That's it 15:37:09 Will Abramson: Thanks. Um, yeah, I put myself on the queue, so I wanted to talk about something else, which is... 15:37:12 ... How does this work with, um 15:37:20 ... like, digital resources, for example, are they going to have to add a type property? Because they do not currently. I have one, I don't believe 15:37:24 q+ 15:37:26 ... Um, and then the other question that I had is, for this path handler type 15:37:29 ... Is the path handler type defining 15:37:33 ... Also, the way in which you match past 15:37:33 q+ to say I do think they will need to add the type 15:37:40 ... Right, or is it the other type that says, okay, this is how I trigger on specific path? 15:37:48 ack swcurran 15:37:53 ... Like, basically, is there going to be one way that's consistent across all of these different path handlers? Let's say this is how much pass, or… All people allowed to define their own. hour. Steven 15:38:01 Stephen Curran: Okay, um, first one, I think, yes, they would have to add that, or we have to put weasel words to say, this already existed, and... 15:38:03 ... So, it should be included, but I think they should have to add it. Um 15:38:06 Will Abramson: Mm-hmm... 15:38:10 Stephen Curran: I think it is, you know, this... 15:38:17 ... This core step, which is collect the objects, find the one with the longest matching path 15:38:23 Will Abramson: Hmm... 15:38:25 Stephen Curran: And that's it. That applies for any path object. You… you have a path in the DID URL, you have a... 15:38:37 ... You need to have a thing that is the path in the, um, in the object you're matching, because as soon as you have multiple of those things, as soon as you have multiple did link resources 15:38:45 ... Uh, you have to select one, and… and the way you do that is… is this… calculation of the management, so I don't think that 15:38:49 ... That's inherent in what you do with a 15:38:55 ... uh, path handling object. It's… it's after that that the second type comes into play 15:38:59 ... And, um, and that could be 15:39:08 ... Both the kind of object it is, or the type of… so that gets a little, a little bit 15:39:16 ... flexible, because you've got service, um, and then you've got other things, like linked resources. So, but that's all 15:39:17 Will Abramson: Mm-hmm, mhm... 15:39:20 Stephen Curran: after you've made the selection. The path handling... 15:39:27 ... Um, type just says, oh, you, you adhere to this method for finding the path 15:39:29 ack JoeAndrieu 15:39:29 JoeAndrieu, you wanted to say I do think they will need to add the type 15:39:30 ... For find… for selecting the object. That's it 15:39:34 Will Abramson: Okay, thanks. Thanks. Joe?... 15:39:44 Joe Andrieu: Yeah, I… it's more complicated than that in a couple of dimensions. One is, um, if we already use a path property and have... 15:39:49 ... a common path matching algorithm, which I'm willing to consider, but I have some concerns about 15:39:55 ... Um, then, uh, did link resources would need to add both the type and the path property 15:39:59 ... because they don't currently have anything called a path. They use something else for that. Um 15:40:06 ... Uh, but I think, at the end of the day, the service… The type of the service 15:40:11 ... Um, needs to deal with how that path is processed 15:40:17 ... Um, in particular, um, linked resources, it always points to a specific resource 15:40:24 ... for which we have data integrity mechanisms. It is never an entree into a folder 15:40:29 ... So there's no amalgamation of what's in the path to, like, construct a longer path 15:40:31 Will Abramson: Hmm... 15:40:34 q+ 15:40:34 Joe Andrieu: So that I have a folder that has a bunch of images, and the did URL can point to an image within there... 15:40:41 ... Um, all the entries in the DID document for linked resources. Um, are individual 15:40:44 ... Um… I think we can 15:40:50 ... use the… I think we can use the path algorithm that Steven's presented 15:40:55 ... But the way it gets used, in terms of selecting which one we're going to use 15:40:59 ... But the way it gets used by each service, I think, is necessarily going to be bespoke 15:41:02 ack swcurran 15:41:05 Will Abramson: Mhm. Thanks, Steven... 15:41:11 Stephen Curran: Which is exactly what the algorithm says, so I think we're in alignment. The… all that this... 15:41:18 ... When a data algorithm can take a path, this algorithm only says, here's how you select the object 15:41:19 q+ 15:41:24 ... This is after selection, and it's bespoke to whichever 15:41:27 ack Wip 15:41:27 ... object was selected, so I think we're totally in alignment on that 15:41:40 Will Abramson: Uh, yeah, I put myself on the coup to say, I think, exactly, I mean, like, talking about the 5 steps, right? Apart from the bottom step. This step is, uh... 15:41:44 ... uh, what do they call, like, determine retrieval strategy 15:41:51 ... Right? And then that bottom step, which is just taken off, is, like, execute the strategy and retrieve the results, basically 15:41:54 ... Like, I think in the outline. Um 15:41:57 Stephen Curran: Yep... 15:42:06 Will Abramson: And I guess the only thing that's missing from this, if we're talking about that step 3, is, like, above it, there would be this service handling. Thing that would happen first, right?... 15:42:14 ... First, if there's a query promoted service, you know, do that. Otherwise… If there's a path 15:42:19 Stephen Curran: I think it's… I think what we're saying is you don't even get to this. So, yeah... 15:42:24 Will Abramson: Yeah, but I'm talking about, like, that step, right? Like, in the higher-level algorithm, step 3 is gonna have to handle both. of folks... 15:42:27 ... You know, if… yeah 15:42:28 Stephen Curran: Oh, yes, I see what you mean. In the higher level one, yes, totally agree... 15:42:31 Will Abramson: Yeah, yeah, yeah... 15:42:38 ... Um, what about what Joe said about don't link resources, uh, and 15:42:43 ... not having a path. You know, is the path handling 15:42:47 ... Type, saying that you need to have a path property in your 15:42:48 Stephen Curran: Ah... 15:42:49 q+ 15:42:51 Will Abramson: um… object... 15:42:55 Stephen Curran: Plus one from me on that... 15:42:55 ack JoeAndrieu 15:42:58 Will Abramson: Joe?... 15:43:11 Joe Andrieu: Yeah, I think… I mean, I think this is the grand compromise, and, you know, we should probably get Alex in here and see if he's also aligned with it. I mean, I think all of us are looking at what's the minimal changes we could make to what we've... 15:43:15 ... developed and deployed, and I think I can talk Sean Conway into adding a path 15:43:21 ... Um, and hopefully we can talk Alex into adding a path instead of the property they're using 15:43:24 q+ 15:43:25 ... Um, but I think we're all gonna need to make some changes 15:43:27 ack swcurran 15:43:32 Will Abramson: Steven?... 15:43:35 Stephen Curran: Uh, just to be clear, um, the linked resource already has a path. What it needs to add is the type... 15:43:36 Will Abramson: Yep... 15:43:36 Stephen Curran: the path handler type. Yeah... 15:43:39 Joe Andrieu: Correct. That's right... 15:43:45 ... Yeah, I misspoke. Thanks 15:43:48 Will Abramson: Uh, well, yeah, okay, well, we can, um… I'll try and reach out to Alex and see what he... 15:43:55 ... I think somebody would be great to get him in a call. I mean, maybe when we get a PR in, that's fine, we can also point it at him 15:44:01 Stephen Curran: Yep... 15:44:03 Will Abramson: Um, okay, cool. I mean, I think that was a really great discussion. I don't know if there's some more examples we should go through, Steven?... 15:44:06 Stephen Curran: I don't think so, I think we're done... 15:44:07 Joe Andrieu: It... 15:44:08 Will Abramson: Okay... 15:44:13 Stephen Curran: Here's… here's all of them. We've got a path. We've got a service... 15:44:16 ... Service takes precedent 15:44:21 q+ for when service doesn't define a retrieval strategy 15:44:22 ... Um, we've got metadata, because we chose a service, the metadata is ignored 15:44:29 ... But with other parameters, the metadata may come into play, and so on. So, yeah, I think we covered everything 15:44:35 Will Abramson: Okay. Great. Um... 15:44:37 ... Well, in that case, I did, um 15:44:38 Joe Andrieu: Hold on, well, I jumped on the queue... 15:44:38 ack JoeAndrieu 15:44:38 JoeAndrieu, you wanted to discuss when service doesn't define a retrieval strategy 15:44:41 Will Abramson: Oh, sorry, Joe?... 15:44:46 Joe Andrieu: Uh, there were… there's an element here that we missed, which is, um... 15:44:52 ... If we have, and we can see this in PTCR2 today, but I think it's… it's maybe true for a whole bunch of them 15:44:59 ... Um, it… uh, BTCR2 defines service endpoints, uh, that have a 15:45:05 ... a Bitcoin URL as a… a service which has a Bitcoin URL as a service endpoint 15:45:13 ... And if that were specified in a URL that said service equals, and it was, you know, the ID of that particular endpoint 15:45:18 ... Um, BTCR2 has not defined what the retrieval strategy should be 15:45:20 q+ 15:45:24 ... Um, that service endpoint in the BCCR2 world is used as a URI 15:45:38 ... It is not directly retrieved in the way that if you ran across that URL in the wild and you clicked on it, the behavior that happens would be to open up a wallet and make a prepay form to pay to that address 15:45:43 ... But that is not what we are doing with BTCR2. So I think there's… there is this general problem that some 15:45:47 ack Wip 15:45:48 ... Uh, service types have not defined what you do for retrieval 15:45:51 https://github.com/w3c/did-resolution/issues/332#issuecomment-4499944884 15:45:54 Will Abramson: Yeah, great. That is actually also what I wanted to bring up, and I wanted to draw our attention to... 15:46:00 subtopic: https://github.com/w3c/did-resolution/issues/332 15:46:02 ... this comment from Marcus on this issue, which is kind of about the same thing. I wondered if, um… let me just stop talking 15:46:16 ... I wondered if the solution… it could be, you know, if a service type doesn't define a retrieval strategy. You return the service endpoint. Like, as a default 15:46:21 ... If people want to override that, then they just have to define a retrieval strategy in that definition 15:46:26 ... I think what Marx is saying here is… is 15:46:26 q+ to say still retrieve the resource 15:46:30 ... Kind of true, like, what does it mean to retrieve a 15:46:35 ack JoeAndrieu 15:46:35 JoeAndrieu, you wanted to say still retrieve the resource 15:46:38 ... I did call service endpoint. Yeah, I don't know. Uh, Joe? 15:46:43 Joe Andrieu: Oh. Yeah, what's… what is the service endpoint? Do we have an example of that?... 15:46:46 q+ 15:46:47 ... Uh, your last comment just changed what I wanted to say, but, um 15:46:52 Will Abramson: Uh, I think it's just like a URL, right? Like a… I mean, Steven probably has better. Yeah... 15:46:55 Manu Sporny: Mail to, uh, would be an example... 15:47:01 Will Abramson: Um… Steven, do you have an example? Is that why you're on queue?... 15:47:12 Stephen Curran: Um, I was gonna say, you know, for DIDCOM and so on, you just… you never directly reference the service. What you do is you retrieve the DIDDOC... 15:47:16 Will Abramson: Mm... 15:47:19 Stephen Curran: So all you care about is getting the did doc, and then you say, hey, they've got a did comment point, I can use that. Hey, that's good... 15:47:25 ... You would never actually reference the URL. So, doesn't help. this conversation, but 15:47:26 Will Abramson: Mm-hmm... 15:47:28 Joe Andrieu: Well, it… it could... 15:47:31 Stephen Curran: Um, for practical experience, you just… you just don't do it... 15:47:34 Joe Andrieu: I mean, we could say it's an error... 15:47:45 Stephen Curran: So, I don't think that's a bad way to do it, because you leave it up to the service to decide... 15:47:58 ... what you do, so if you reference it in a did URL, then the service type would indicate. what you do with it, I don't know 15:48:01 Will Abramson: And Joe, you were in the middle of saying something about you should still receive the results. I don't know if you finish your call... 15:48:08 Joe Andrieu: Oh, right, yeah, sorry, that is why I got on the queue, that, um, I think we could support without loss... 15:48:15 ... that if there is a service that has an endpoint, and the did URL identifies that service 15:48:19 ... Um, and there's no other information about the service type 15:48:22 ... Um, that you dereferenced that endpoint 15:48:29 ... Um, I think that is the legacy use of service. Um… And 15:48:34 q+ 15:48:38 ack swcurran 15:48:40 ... I'm a little hesitant because of the potential ambiguity, maybe people didn't know it was being used that way, but I think that is the way we've been using it. To Marcus's point, I think he's trying to… Talk about that usage 15:48:42 ack Wip 15:48:44 Will Abramson: Uh, Steven, I think you've been right... 15:48:47 Stephen Curran: Yes, I've been... 15:48:54 Will Abramson: Uh, yeah, I was just gonna say, I think the challenge is Mark's understanding of. Existing use is we don't... 15:48:58 q+ 15:49:04 ... dereferenced that URL, right? We surfaced that URL back to the… And they decide what to do with it. Uh, and we are now 15:49:09 ack manu 15:49:10 ... Pretty clearly, well, everyone on this call, I think, is very happy to change to, yes, we should be retrieving the results 15:49:13 ... But currently, in the spec today, it doesn't matter. Bye 15:49:16 Dmitri Zagidulin: First of all, he was happy... 15:49:20 Will Abramson: I didn't catch that picture, but... 15:49:26 Manu Sporny: I didn't… I didn't catch that, Dimitri. If you want to say it again? Oh, he was happy... 15:49:27 Dmitri Zagidulin: I was just saying, for some values, I'm very happy... 15:49:33 Will Abramson: Huh. Okay... 15:49:38 Manu Sporny: Um, the, uh… what was I gonna say, um... 15:49:43 ... It's gone. Sorry, I'll put myself on the queue again 15:49:47 q? 15:49:50 Will Abramson: If anyone you remember, yeah, okay. There's no one else on the queue. Um... 15:50:02 Manu Sporny: Oh, yeah, now remember. So, um, I'm confused about what we're returning. So, we're saying if there's a service... 15:50:06 ... and, you know, it's in the URL, what are we returning? And if 15:50:11 ... Uh, it's something like a DIDCOM endpoint 15:50:16 ... We're returning the… Did dock back? 15:50:18 q+ 15:50:20 ... Is that… what we're saying, when there are no other processing rules? 15:50:20 ack swcurran 15:50:22 q+ to say there isn't a "return" 15:50:24 Will Abramson: Hmm… too?... 15:50:34 Manu Sporny: You might be muted, Steven... 15:50:37 Will Abramson: Steven, yeah, you're muted... 15:50:42 Stephen Curran: I am muted, sorry about that. An error, um, if there's no… if it doesn't make sense... 15:50:46 ... Um, return an error? I don't think that's a bad idea 15:50:54 Manu Sporny: Well, what does make sense? I mean, like, let's say, you know, I've got a service in there, and I'm like, here's my email service, here's my email, like, send me an email here... 15:51:02 ... Uh, and I put service, you know, equals email. I wouldn't expect it to 15:51:05 ... uh, send an error back, or I wouldn't expect that to error 15:51:08 Will Abramson: Hmm... 15:51:11 Manu Sporny: Well, I guess if you're saying… are we saying, like... 15:51:14 ack JoeAndrieu 15:51:14 JoeAndrieu, you wanted to say there isn't a "return" 15:51:14 ... Because you want to be able to reference that thing, right? I mean, that's 15:51:15 Joe Andrieu: Manu, I'm on the queue to try and answer you... 15:51:17 Manu Sporny: Okay, got it... 15:51:17 Will Abramson: Yeah... 15:51:20 Joe Andrieu: Sorry. Um... 15:51:25 q+ 15:51:30 ... the service type would define it. I think the only challenge is when the service type doesn't today define it, so we have some gaps, because we've underspecified that 15:51:35 ... But if I have… if my service type is email, then I think that, to me, just 15:51:39 ... interpreting the words the way I think they mean, and it should be in a spec somewhere 15:51:54 ... that the client who has done resolution, gotten back into duck, and looked at the property and said, oh, hey, this service that's in the URL is email, then they should trigger an email, just as if you clicked on a mail-to URL in a browser 15:52:02 ... Um, so I don't… to me, that's not complicated. If it's a DIDCOM URL that we find in the object that we got back from evaluating our did doc 15:52:08 ... then the client should know how to process a DIDCOM. Um, entry in the did document 15:52:14 ... Um, we aren't returning anything. This is one of the reasons I fought so hard to get rid of the function 15:52:21 q+ 15:52:22 ... Uh, signature, because we don't have to figure out what's returned. The client either understands how to deal with DIDCOM or they don't 15:52:24 ack manu 15:52:26 ... And they just need to pull the resource into their context and do what's appropriate 15:52:30 Will Abramson: Um, Mana?... 15:52:34 Manu Sporny: Yeah, I think that that's fine and works for me. Um... 15:52:42 ... Yeah, I guess we'll just need to see it in the… in the algorithm. Um, that's it 15:52:42 aq? 15:52:43 Stephen Curran: Yep... 15:52:46 Will Abramson: Okay. Uh... 15:52:47 aack swcurran 15:52:49 ... Yeah 15:52:51 ack swcurran 15:52:52 Stephen Curran: Yeah, so, given what Joe just said, I would say you... 15:52:58 ... the service would… should be advised in those cases to return the DID dock 15:53:06 q+ 15:53:07 ... Um, you know, non-normative, perhaps, but just say 15:53:18 ack JoeAndrieu 15:53:19 ... Best practices says when you do something where it makes no sense to process the service endpoint, you know, to retrieve the object at the end of the service endpoint, you should simply return the data 15:53:23 Will Abramson: Joe?... 15:53:29 Joe Andrieu: Right, so we're in a situation where the software who's processing this algorithm already has the DID document?... 15:53:32 ... And there's no need to return anything at this point 15:53:43 ... They could raise or signal an error, like, I like Pierre Antoine's approach to that, to say, you know, hey, we should signal an error, perhaps. Um, but there's no need to return something 15:53:48 ... Either they got an endpoint they know how to deal with, or they didn't 15:53:53 Will Abramson: Okay... 15:53:53 q+ 15:53:58 ... Yeah, so there's still a few bits to figure out here, but I think, um 15:54:03 q- 15:54:07 ... I think we're pretty aligned on the general direction, enough to get to PR. I mean, I think I'm the bottleneck here, and I just gotta wade through some stuff with 15:54:12 ack swcurran 15:54:22 ... Marcus, and also try and fight with that PR, but I do want to get that PR merged ASAP, so we can start. Assigning these to someone. Steven? Oh, sorry. Do you want to say anything? 15:54:24 Stephen Curran: I went on and off. I was just saying... 15:54:27 Will Abramson: Yeah... 15:54:31 Stephen Curran: Wait, sorry, in Joe's… in comment to Joe's... 15:54:37 ... statement. We said earlier that if you pass a did doc with a fragment on it, or you pass a 15:54:45 ... Um, there's sort of… like a bear did, you get… You get the did doc back 15:54:48 q+ 15:54:51 ... Um, are you saying that's not the case? I don't quite understand how they deal with the 15:54:52 ack JoeAndrieu 15:54:54 ... I mean, there is no result 15:54:56 q+ 15:54:57 Will Abramson: Sure... 15:55:06 Joe Andrieu: yeah, there's an error, so there is no result other than that error. Like, if I've got a URL that says service equals blank... 15:55:13 ... And the idea that service maps to a DIDCOM, and I, as a client, am looking at that as 15:55:22 ... an RDF identifier, then I don't even need to know how to interpret it as a DIDCOM anything, right? So 15:55:28 ... either… either I'm processing it because I understand DidCom, or I don't understand DidCom, and all I can do is error 15:55:29 Will Abramson: Hmm... 15:55:30 Stephen Curran: Mm, okay... 15:55:33 Joe Andrieu: Like, I don't know who else I would give the document to... 15:55:35 ack Wip 15:55:37 ... Because I was the function that was trying to figure out how to go through this dereferencing algorithm 15:55:47 Will Abramson: Uh, yeah, I put myself on the queue just to say how I understand what Joe's thinking about it, is… We don't return... 15:55:59 ... I mean, there is something that is the result of this process, but we're not returning it to any other party. We are the executor of the referencing as the client 15:56:03 ... Um, we used the results of it 15:56:11 ... We're not gonna return it to some other party, or maybe we would, and that's up to us, but uh 15:56:16 ... at least how I understand Joe, to be framing, is that, you know, the client is using this DDRL for some purpose 15:56:20 ... Um, they're gonna dereference it and use it however they see fit 15:56:28 ... Anyway, that's my understanding. I think it makes sense, you know, I like the example of, like, for example, a verification method 15:56:38 ... That I, um, I'm verifying a proof on a VC, and I, you know, dereferenced the did URL that 15:56:45 ... references to the verification method that sign the proof, and then I verified the proof, right? I don't need to return that verification method to any other 15:56:51 ... thing, but I… but the result of dereferencing is the… Here's the verification. So 15:56:52 q+ to say if VM = didcomm service, that's an error 15:56:56 ... Makes sense. But I think it's… I think we all get that, but it's just language 15:56:59 ack JoeAndrieu 15:56:59 JoeAndrieu, you wanted to say if VM = didcomm service, that's an error 15:56:59 ... Um… anyway 15:57:02 ... Yeah 15:57:13 Joe Andrieu: I just want to build real quick on that example, because I think it's a good one. Like, if… if I put into a proof that the creator of that proof. Um, which is the key. I should be looking up... 15:57:18 q+ 15:57:18 ... And instead, I accidentally put in a service endpoint that goes to a DIDCOM service 15:57:31 q- 15:57:31 ack swcurran 15:57:32 ... then the client who is verifying that proof is going to say, that's… I don't know what that is. That is not a verification method. Like, I can't use it. So, the URL in that was simply in the wrong context. And all we can do is raise an error 15:57:37 Will Abramson: Steven? No... 15:57:40 Stephen Curran: Yeah, I'm gonna… I'll take off. I won't say anything... 15:57:47 +1 15:57:49 Will Abramson: Okay, yeah, we probably should wrap. I mean, I think, like I said, this has been a great conversation. I'm really pleased that we seem to be all moving in the same direction... 15:57:57 ... Great. And, yeah, as I said, I'm gonna try my best to get this PR in, hopefully by the end of this week, and then 15:58:06 ... Um, if I do that, we can start thinking, I don't know who's best to just pick a stab at the step 3, maybe… maybe you, Steven. um 15:58:13 ... And then I will say next week… I mean, I'm going to message Marcus, and if he's not here, but next week I want to plan to have a discussion about 15:58:20 ... this thing that Marcus is pushing back strongly against, which is whether a did or a DID URL is passed to the resolve 15:58:21 dlehn has joined #did 15:58:23 ... Um, function, or the resolve operation 15:58:33 ... Because that's the last big thing that I think we just need to make a decision on, and then I really think all of this digital algorithm refactoring will be able to be 15:58:40 ... Um… fleshed out into PRs, at least, and then we can argue about the details in those PRs 15:58:44 ... Um 15:58:51 ... Oh, and the last thing that I think we do need to talk about, but maybe that's for the future, not now, but I'm just going to raise it quickly, is, um 15:58:57 ... testing this thing, right? Like, we… I mean, we're one month into our 6-month extension, give or take 15:59:01 ... Um, this video I'll be referencing, I will 15:59:08 ... It's not defined yet, but we'll need to have some form of testing. So, just think on that, um 15:59:14 ... And I think that's it. I'll see you all next week. Thank you so much 15:59:18 ... Thanks, Steven, for walking us through those, um, examples. It was super helpful 15:59:28 transcriber-bot, pause 15:59:29 scribe-