[MINUTES] DID WG Special Topic 2025-10-22

Meeting Summary: DID Working Group Special Topic Call - 2025/10/22

*Attendees:* Benjamin Young, Kevin Dean, Manu Sporny, Markus 2, Markus
Sabadello, Will Abramson

*Summary:*

This meeting focused on the development of the DID resolution test suite,
particularly addressing challenges related to optional features and
conformance requirements. Discussions revolved around specific issues and
the best approach to testing various aspects of the DID resolution
specification.

*Topics Covered:*

   - *Testing Optional Features:* The group discussed how to approach
   testing optional features in the DID resolution specification, deciding to
   focus on mandatory features for the initial test suite and to address
   optional features later.
   - *Resolution Options and Read Operations:* The discussion focused on a
   statement about passing resolution options to the read operation of a DID
   method, with consideration given to the necessity of the requirement and
   its testability.
   - *DID Document Metadata Validation:* The group touched on the need for
   validating DID documents and the potential use of JSON schema for this
   purpose.
   - *Conformance and Implementation Definitions:* The meeting addressed
   conformance statements, particularly whether to separate DID resolution and
   DID URL dereferencing into different conformance classes, and decided to
   combine them initially.
   - *Testing "Not Found" and "Deactivated" States:* The discussion covered
   the approach to testing "not found" and "deactivated" DID states, deciding
   on how resolvers will provide these statuses for testing.
   - *Equivalent ID and Canonical ID Handling:* The group discussed the
   requirements related to equivalent ID and canonical ID properties in the
   DID document metadata, and decided on moving the requirements related to
   did method specifications to the DID Core specification.

*Key Points:*

   - The test suite will prioritize testing mandatory features, with
   optional features addressed in future iterations.
   - The group agreed to potentially remove a statement about passing
   resolution options to the read operation, as it may be redundant.
   - There was a consensus on the need to clarify in documentation that
   only mandatory features are being tested.
   - Requirements related to equivalentId and canonicalId properties within
   didDocumentMetadata and are better placed in the DID Core
   specification's section on DID methods, due to their association with the
   DID method specification, and will be moved to the appropriate area.

Text:
https://meet.w3c-ccg.org/archives/w3c-ccg-did-wg-special-topic-2025-10-22.md

Video:
https://meet.w3c-ccg.org/archives/w3c-ccg-did-wg-special-topic-2025-10-22.mp4
*DID Working Group Special Topic Call - 2025/10/22 09:59 EDT - Transcript*
*Attendees*

Benjamin Young, Kevin Dean, Manu Sporny, Markus 2, Markus Sabadello, Will
Abramson
*Transcript*

Will Abramson: How you going?

Kevin Dean: or you will not too bad.

Will Abramson: Yeah, I'm all Thanks. Along. That much to do. How are you?
Nice. Cool.

Kevin Dean: Obviously working on a threat modeling app. We'll have to get
something out to Joe in time that he can show off at IW. Should be
something he can prototype he can show off today.

Will Abramson: Yeah, I think this be a small group, but that's fine. I just
want to talk about the test suite early and…

Kevin Dean: This may be a short call today. Okay.

Will Abramson: get some input and help.

Will Abramson: But I'm hoping at least and hopefully Marcus. it depends. I
mean I think I could just help really. So I think we can spend the hour
just reviewing even if it's just me But I do think Man said he could come.
So let's give him five minutes at least and then I'll just tell you where
I'm at.

Will Abramson: She treat me.

Kevin Dean: Nope, that did not work.

Will Abramson: Be happy. right.

Kevin Dean: better.

Will Abramson: Maybe I can just chat with you. I did hope to have money,
but let's just chat. Let's see. I'll share my screen.
00:05:00

Will Abramson: I'll talk to you about where things are. So yeah, the basic
problem or not the problem is right that resolution spec has all of these
normative requirements. So must or require these are statements but the
spec is saying you have to implement them right that's important if you're
not doing this then you're not compliant and I'm trying to develop the test
suite which is going to allow us to demonstrate really that's the thing
we're only trying to demonstrate to WPC that there are at least two
conformant implementations for each of these statements.

Kevin Dean: I am not seeing your screen.

Will Abramson: Right. …

Kevin Dean: I don't know why.

Will Abramson: there's actually now.

Kevin Dean: I mean, I'm seeing a place where your screen should be, but
it's just There we go.

Will Abramson: So, I mean there's a script you can run to extract all these
statements.

Will Abramson: Easy enough. And then I've also got this to Ben Benjamin
helped me put together the test suite based on similar infrastructure that
we've already been using.

Kevin Dean: Okay.

Will Abramson: So what this does is this is a per section s right of specs
on tech testing section 4 did resolution and basically we have this
separate repo here where did resolvers register and say look this is my
implementation maybe I can show you that this is my implementation and…

Will Abramson: these are the bids, there's a bunch of things that you might
provide. Can you see this? …

Kevin Dean: Okay. If No,…

Kevin Dean: if you're trying to show me something different, I'm still
seeing only the did resolution testable statements.

Will Abramson: hey man.

Kevin Dean: There's a menu.

Manu Sporny: Hey guys,…

Manu Sporny: sorry I got pulled into an email.

Will Abramson: All good. I was just kind of reviewing with Kevin. so just
about the whole process.

Will Abramson: I don't know if you've seen. So Kevin, you still can't see
the JSON on the screen. Can you see? Oh no.

Kevin Dean: No, I can't.

Kevin Dean: I'm seeing only the hackb.io.

Will Abramson: Where? I try again.

Manu Sporny: type. Yeah,…

Kevin Dean: Yeah, I think you just shared a window.

Will Abramson: I keep sharing. No, I'm show entire screen. Now you can see
the JSON.

Kevin Dean: And I can see the JSON.

Will Abramson: I can see.

Kevin Dean: Yep. wonderful.

Will Abramson: Okay. Yeah. yeah.

Manu Sporny: Google Meet has been they just rolled out something and…

Will Abramson: …

Manu Sporny: it's broken screen sharing over the past two days.

Will Abramson: right. Okay.

Manu Sporny: That's what's going on.

Will Abramson: Yeah. Yeah. So this is the point where so at the moment we
only have one implementation and it only is really testing the test cases
against a single bid. But the idea is you provide your endpoint which
stands up some dissolver it implements HTTPS binding basically and then we
require a 2B def to be refined at least set of bids that we can then use in
our tests.

Will Abramson: So at the moment Marcus is just providing one did and that
is a valid that we we know should successfully okay So I have some issues
that I've created but first this is the test right these are the tests
basically what happens is we are fetching the implementations basically
this so weird right I don't know…

Manu Sporny: I can only see the test suite implementations right now.

Kevin Dean: Yep.

Manu Sporny: If you're pointing at something else,

Will Abramson: how to use this to keep sharing

Will Abramson: Yeah so these are my test this is based on digital bazar's
infrastructure right so…

Manu Sporny: Can't see anything. there we go. I see it. Mocha tests.

Will Abramson: what we're doing is we're filtering by tag this lets us
select those implementations in the VC test implementations o that have
defined a universal a resolver So we get all the resolvers and then we loop
through each of the implementations. We get the endpoint and…

Kevin Dean: Yep.

Will Abramson: then we use that endpoint to execute resolution requests for
each test that we have. And I'm looping through valids. I don't know if I
mean maybe people would provide us with more than one valid but basically
the same test gets executed for each valid and they have to provide at
least one did right. That's important.

Will Abramson: And then what happens is so these tests, we describe it and
then this text here it sometimes works but doesn't always work is how you
can reference the section in the spec. So it's pretty cool. It's like this
sentence is…
00:10:00

Kevin Dean: Okay.

Will Abramson: what I'm testing. before this call try to actually follow
those links through. So I'll show you in a minute the report that gets
generated but I guess I'll have to share and not share again. there are a
few questions that I have like that how to test this but I think it'll be
easier for me to show that in the repo I've kind of been creating some
issues and that's probably what we can talk through today. this code is
also available as a PR to the repo. I'm just working on it and hacking
through it.

Will Abramson: I think the main questions that I have are really around in
the DID resolution test suite.

Will Abramson: There are a lot of fields that are optional. the DID
document metadata might optionally contain this property, but if it does
contain this property, that property must be of this format.

Manu Sporny: Yeah, the thing that matters is the first statement.

Kevin Dean: Right. No,…

Will Abramson: …

Manu Sporny: The fact that it's optional means that you don't have to test
it.

Will Abramson: really? Okay.

Manu Sporny: Yeah. Yeah.

Kevin Dean: I disagree.

Manu Sporny: It Right.

Kevin Dean: The test statement is, if present, Your test is test passes if
null or conforms to this pattern.

Will Abramson: Yeah. …

Manu Sporny: But here's what we are going to do as an implement. we're not
going to send that up.

Will Abramson: yeah. that was my question.

Manu Sporny: Right. and…

Will Abramson: So, I have been

Manu Sporny: we don't want to be disqualified because we have chosen not to
provide that not to, test that option.

Kevin Dean: which is perfectly fine.

Kevin Dean: But if you're providing that option, it has to conform to the
requirements. Yeah.

Manu Sporny: I agree. the concern I have is generating an enormous amount
of work for these are ways for us to let me kind of explain where I'm
coming from. I'm trying to make sure that we at least get a test suite that
we can test against and then we can improve it over time. And so I'm
shooting for what's the minimum viable thing that we can put in front of
the W3C that's defensible,…

Will Abramson: Yeah. All right.

Manu Sporny: I totally agree with you Kevin, absolutely we want to test
those things, but if we put all of that in scope is unable to complete the
test suite, the entire standard will fail, Because we won't be able to
prove that we can get out of CR and…

Will Abramson: I think actually completing the test wouldn't be so hard.

Manu Sporny: and all that kind of stuff.

Will Abramson: But the real thing was for me those must statements are
within an optional clause. So we would have to have at least two resolvers
that do return that thing for us to demonstrate that we actually test that.

Kevin Dean: Yeah.

Manu Sporny: And then people that don't want to see the spec happen can say
you don't have to interoperable implementations for that feature.

Will Abramson: Yeah. Yeah. Yeah. Okay. Yeah.

Manu Sporny: The entire spec can't go to wreck that. that is the
unfortunate trap of kind of W3C test suites is that it forces people to
test much less than you would want to test in an actual real production
setting.

Will Abramson: Yeah. Heat.

Manu Sporny: So one thing you can do is have a section that talks about
optional tests. But even if we do that, that can be a trap because people
will basically say and it will be legit again unfortunately per W3C process
the argument will be you don't have two independent implementations for
that you need to take that feature out of the specification and we
definitely don't want that right…

Will Abramson: Yeah. H

Manu Sporny: so that's why I was saying Kevin you're absolutely right in an
ideal world we would be testing all of those things…

Kevin Dean: Yeah. Right.

Manu Sporny: but it can backfire on us if we don't have two implementations
for it so usually what I've seen folks do is ensure you have two
implementations for it and then put the optional testing, right? …

Kevin Dean:

Kevin Dean: Right. As well.

Will Abramson: Right. Right.

Kevin Dean: Yeah. as long as we're clear that the test suite is covering
only all mandatory features and that anything that's considered optional is
not being tested or the following things are not being tested if we've got
a subset I think we're okay it's just that…

Manu Sporny: yeah. Yep.

Kevin Dean: if I read a spec that says this is optional but if you provided
it must do X I would expect that the test suite would test not implemented
or…

Kevin Dean: feature conforms to specification.

Manu Sporny: Yep. Mhm.

Will Abramson: I agree. I think that sounds good.

Will Abramson: But we can add it after on and as we find because also we'd
have to have okay this did resolves and has this e there's a lot of sort of
if then but just I wish we can just for now ignore I guess I was worried
that the W3C might review our spec and…
00:15:00

Will Abramson: those must statements and then realize that they aren't
tested but I guess because you're saying that these are optional so
actually even the must is an optional feature of the spec and not a
requirement. Okay, cool.

Manu Sporny: Correct. Yep.

Kevin Dean: Yeah. as long as we're clear about that in the intro in the
test suite as well and…

Will Abramson: Right. Yeah.

Kevin Dean: any documentation. Yeah. Yep. Just

Manu Sporny: Plus one.

Will Abramson: Okay,…

Manu Sporny: And it's presumed, but you're right, We should be explicit
about it. we are only testing the mandatory features in the specification.

Will Abramson: great. let's look at some other issues.

Will Abramson: I think some of these are just about stuff we already talked
about. So yeah, let's just go through them. So you can see these apps,
Yeah. So this is a statement I wasn't really sure about how to test. It
says the resolution options of this algorithm must be passed to the read
operation of the DID method. So I call a resolver how am I testing that
they are passing these options to the read operation I need to know have
some verifiable result based on the resolution options feels

Manu Sporny: all of these are which there's three must statements there
which one are you concerned about are you saying the entire testing
equivalent ID normative statements on the did method Yeah.

Will Abramson: Three must.

Will Abramson: Wait, are we looking at the same thing? no, you guys aren't
seeing my screen.

Manu Sporny: No.

Will Abramson: I'm only looking at issue four.

Manu Sporny:

Manu Sporny: Sorry.

Will Abramson: It's weird…

Manu Sporny: Hi. …

Will Abramson: because I just started from the bottom. My screen when I'm
looking in Google Meet, it does show me looking at the same thing. it just
shows my screen showing the same thing, but it's my screen not showing
issue four. Okay.

Kevin Dean: Okay. …

Kevin Dean: yeah, I'm seeing issue four. I'm seeing how to test statement
about passing resolution officers to read. Yeah.

Manu Sporny: yeah, now I'm seeing that before I was not.

Will Abramson: Right. Right.

Manu Sporny:

Manu Sporny: No. Yeah. again. Google Meet broke screen sharing,…

Will Abramson: Yeah. No,…

Manu Sporny: I think. Are you on a Apple device?

Will Abramson: Linux. I guess they're somewhere,…

Manu Sporny: Okay. that's even more confusing. Everyone to date has been on
an Apple device, so there goes that area.

Will Abramson: So that's all Linux.

Manu Sporny: Yeah. or…

Will Abramson: Yeah. So it feels like an internal operation that the
resolver has to do. it doesn't need to do this. I think we do need to
somehow require it, but I just don't know how to test it because it's not
something that I can test from the inputs and outputs unless I have a
verified

Manu Sporny: or yeah but besides the input data all must be passed to the
read operation I don't know what this accomplishes why are we saying this
is an example of do we need this must statement Why do we have this here?

Will Abramson: Yeah. …

Manu Sporny: I,…

Will Abramson: maybe the answer is we can remove it.

Manu Sporny: why does it matter? there inputs that go to the algorithm and
then the algorithm specifies, what the inputs are. I don't I mean…

Will Abramson: Yeah. I mean, does it matter because the resolver could not
pass all these options and change the result of the resolution requests?
Red. Mhm. Okay.

Manu Sporny: but if it did that it could lead to interoperability issues. I
mean I get what you're saying. if you just read the sentence another way to
do this is if we can suggest we don't need this must statement can anybody
think of a reason we need it and just remove it. it's easier to just kind
because it's not obvious to me and if somebody does that then they're not
following the read algorithm right I think there's a read algorithm in the
resolution is there right I guess

Manu Sporny:

Will Abramson: right? No,…

Will Abramson: did methods specify their read operation.

Manu Sporny: but there's an interface isn't there defined I need to look at
the speced resolution resolution.
00:20:00

Will Abramson: Because I mean the interface is the resolve, right? The read
is kind of

Manu Sporny: And so what do you pass? Where's bindings all? Yeah. By
invoking a DID resolver using the standard resolve did and resolution
options interface as defined in DID resolution, all conforming did
resolvers implement the function below which has the following abstract
Resolve did and resolution options. all conformant did resolvers must DID
resolution function for at least one did method and…

Manu Sporny: must be able to return did document for at least one
conforming representation. Yeah, I mean I don't think we need this
statement like it's very clear…

Markus Sabadello: What?

Manu Sporny: what the inputs and outputs are for data resolution.

Will Abramson: Okay.

Will Abramson: Us Welcome, Marcus. Hi. Thanks for joining. so we're just
debating some of these questions that I've had from trying to implement
some test cases. The first statement that I was wondering how to write a
test for and man is maybe suggesting we could just get rid of it as a must
pass the resolution options to the read operation of the input did method.

Will Abramson: What do you think? who can you see the screen share?

Kevin Dean: Oops.

Manu Sporny: And if you're talking, Marcus, we can't hear you.

Markus Sabadello: No, sorry.

Markus Sabadello: I couldn't hear that. Can you repeat it?

Manu Sporny: this screen I'm seeing.

Manu Sporny: Issue four. Yep.

Markus Sabadello: No, I can't see it.

Will Abramson: again saying that the Google Meet is a bit broken.

Will Abramson: So I'll drop in a link as well. So we're just going through
these issues that I have on the test suite repo around questions which are
basically how do I test these things or questions around that sort of area
and the first one is this must statement which is kind of internal to the
did resolver gets some resolution options and this is a requirement that it
must pass those resolution options to the read operation of the did method
I don't know how to test that and man is suggesting maybe we don't need

Will Abramson: as a must.

Markus Sabadello: Okay. …

Markus Sabadello: I mean the idea behind that is that this is needed by
some bit methods only work if you pass some additional information other
than the result function right? you have a identifier, you have the date
and then you also need set of witnesses or other watchers things like that
some additional information. So I guess this could be tested only with such
specific methods that need this

Manu Sporny: I think it's duplicated. Marcus if we look at the did
resolution section I don't know…

Manu Sporny: if folks can see my screen we're very clear in did resolution
that you have to pass options in to the resolve function. You have to
implement that resolution function. It's clear what the inputs and the
outputs should be.

Will Abramson: Yeah. Yeah.

Manu Sporny: I think it's a assault version.

Will Abramson: But this is about what the resolver should do with those
resolution options, isn't it? It's about Yeah,…

Manu Sporny: Yeah, but do we need to spell that out? I mean,…

Will Abramson: maybe. Yeah.

Manu Sporny: if people don't implement it that way, it's not going to work.
we don't need normative statements that if people don't follow them it's
just like it's going to be very obvious that the system's broken right.

Kevin Dean: Cool. Yes.
00:25:00

Will Abramson: And I think did methods will specify or their read operation
will say you need to pass in these options,…

Manu Sporny: Yep.

Will Abramson: right? okay.

Manu Sporny: By the way, I shared and now you're not sharing again. Sorry.

Will Abramson: I mean that's useful direction for me because what I will do
is raise an issue about this on bid resolution suggesting that we don't
need it and we can see what people think.

Will Abramson: Right. okay. Test.

Kevin Dean: That's horrible.

Will Abramson: Yeah. there's actually two things I want to discuss today.
The first is I'm not really doing some depth testing of what a deck
document should be yet. I have thought maybe there already exists this
thing like we already have that test that could be repurposed.

Will Abramson: So I Right.

Manu Sporny: We have a JSON schema.

Manu Sporny: We have a JSON schema defined. We should just use that.

Will Abramson: So if you can point me in that direction because I've got
the structure in place but I've just been testing the ID for now. So I
think I will pass it through JSON schema and then we'll get valid or not.
So that's fine. And then the other question I had is this end bit.

Will Abramson: So the root result must be represented in a conformant
representation that corresponds to the exact inputed resolution option. so
I think this is old from when there was many different representations
isn't there just one accept input now my god

Manu Sporny: Sorry, which issue are we looking at? Five. Okay. Where I'm
seeing four on your screen. I don't know what it takes to force a refresh.

Manu Sporny: I know. This is painful. Can you wiggle your mouse isn't
moving. I guess it just loses the video feed.

Will Abramson: I mean,…

Will Abramson: this is about media types, right? think and we kind of said
now I did document should only have one media type right. Okay.

Markus Sabadello: We have one in the specification now and in theory there
can still be others like Galaxy someone could define in the future.

Will Abramson: So, I could just test it with this beard for now. This isn't
that interesting an issue.

Will Abramson: I just Okay.

Manu Sporny: Yeah, I agree.

Manu Sporny: Yeah, I mean, yeah, what Marcus said, the only valid thing
right now is application dead, but that doesn't mean other people might not
create different confirmed representations in the future.

Will Abramson: L6 is not right. okay.

Will Abramson: So the next issue I have I don't think you'll be able to see
my screen but I'm just looking at this is seven so issue seven we've
already discussed it this is about properties that are optional…

Kevin Dean: There was one little

Will Abramson: which happen all the time in resolution yeah you screen
share great yeah so actually I think seven we don't need to discuss it…

Manu Sporny: I'm gonna try and…

Manu Sporny: screen share. and then you tell me where to go. Can y'all see

Will Abramson: because we already have right But maybe just for Marcus and
Benjamin's sake, the did resolution says often this property is optional
but if it is provided it must have X statement or whatever and M suggested
at least in the initial iteration of this test we don't need to test those
things…

Kevin Dean: What?

Will Abramson: because they're optional first and then there's a

Will Abramson: Stay on it.

Benjamin Young: Yeah, man is correct. You don't have to test optional
features. everyone wants to get to them at some point. but I wouldn't block
on it.

Will Abramson: Okay. Mhm.

Benjamin Young: keep it in around one of the things we did as we were
building the VC test suites is when there was stuff like that or people
would send PRs for them but they weren't quite ready we'd still put test in
the test suite to sort of remind us to come back or file an issue for it
just so it's there and have an explanation of why you didn't implement it
because people ask because if they just search for and they're like, "But
there's a listing, but there's no requirement from the February Thursday.
00:30:00

Kevin Dean: Yeah, we can we Yeah,…

Kevin Dean: we came to that. we had that discussion earlier. anything that
as long as we're clear in the documentation,…

Will Abramson: Yeah, perfect.

Kevin Dean: we are not testing the following. yeah.

Benjamin Young: Yeah, it's mostly about setting expectations.

Will Abramson: Okay, so yeah, I mean that makes life a lot easier. I'll try
and swim down the list, but let's move on to eight. I think it should go up
to 11. Yeah. Yeah.

Manu Sporny: Yep. Sorry. can you at least see that things are changing on
the screen? 11. Here we go.

Will Abramson: This is 11, but we can do 11. Yeah. This is just me remind
us that we need some flags for these like this.

Will Abramson: this for example a deactivated did I think is going to be a
different input that resolvers will have to provide the test suite they'll
say look I can resolve this did but it is deactivated does that make sense
to everybody else so there people are going to reply to list of valids and…

Manu Sporny: So, you're just checking deactivated one.

Will Abramson: then they should provide a deactivated

Manu Sporny: Yep. My grades.

Will Abramson: But I think 10 is also similar but about not found. no 10.
yeah, I think these are the same. I don't know if we want to condense but I
don't know how I'd write testers. They're just the same thing in different
ways, aren't they?

Manu Sporny: Yep. Seems duplicative.

Will Abramson: Or are they not?

Will Abramson: But I mean can we just leave them as they are?

Kevin Dean: Sorry.

Will Abramson: I think they're both valid statements but can I have I want
testing best things right? Mhm.

Manu Sporny: Best to not repeat yourself. Go ahead, Benjamin.

Benjamin Young: Yeah, it depends on how you're going to compare against the
spec. but you could certainly share the code, you don't have to copy and
paste the code two places. You could have a shared function that does the
same test. But if the two phrases do indeed require the same code, Amanu
may be saying more about specwriting. I don't know.

Kevin Dean: $12.

Manu Sporny: Plus one to that. I think this is just they are duplicative
statements and best not to have duplicative statements in the spec. at
best, people ignore, them or just sort of like, I already tested that. But
the at worst, people get confused why do you have these two statements? I
must not be seeing something. And then we'll probably see issues being
raised against the spec about what's the difference between these two? And
the answer is there is no difference. So I would say remove the second
statement, keep the first statement and just write one test.

Will Abramson: address. Yeah,…

Benjamin Young: Does that also need to turn into a change to the
specification?

Will Abramson: I'll raise these issues against resolution.

Benjamin Young: Yeah, that is the secret reason why the W3C requires tests.

Kevin Dean: What happened?

Benjamin Young: Not so secret reason.

Will Abramson: So, there might be a few I think I've noticed because in the
did resolution, right, s these be section four of the algorithm, there's
these beginning sections which defines a whole bunch of stuff.

Will Abramson: Some of it generic, but there are some must statements in
there. And then there are also some must statements in the algorithm and
sometimes they are duplicate, I think. But I need to do a bigger review
better.

Benjamin Young: Something to watch for is there.

Benjamin Young: It happens a lot in specs where there's a non-normative
intro section that ends up getting populated with required and musts and
shoulds and all kinds of stuff somewhat accidentally because the editors
forget that it's technically non-normative or they're making the same
statements that the spec's going to make later but they're doing it in the
context of introduction. I don't know that that's the case here,…

Will Abramson: right? Yeah.

Benjamin Young: but it does happen with some regularity. Please.

Will Abramson: I'll do a review with this in mind about duplicative
statements and I'll just try and flag them as issues. Let's look at nine.
Issue nine.
00:35:00

Kevin Dean: Mhm.

Manu Sporny: Sorry, I keep forgetting that I'm driving.

Manu Sporny: Yeah,…

Benjamin Young: Yeah, he's everywhere today. I kind of want that as a
sticker. I feel like they should send it to you anytime you get it. I'd
have so many of those.

Manu Sporny: Someone has it on their laptop as a sticker that goes W3C. Is
it Alex Russell? Okay.

Will Abramson: …

Benjamin Young: That's awesome.

Will Abramson: yeah, we can talk at nine briefly, but we have already
talked about it. So, there's nine and then eight and then we'll have done
all of them, which is deny is similar to deactivated but about it's just
not found is weird because not all did methods will have not found in them,
not found this is the right syntax but it just doesn't Can't be results.
There did document for it.

Will Abramson: I guess I should have got the statement here.

Kevin Dean: push.

Will Abramson: So currently I'm thinking of handling this the same way.
resolvers did that is not found. I do wonder if that might create a case
where in the future that can be found.

Will Abramson: Yeah. yeah…

Manu Sporny: I mean did example that's almost guaranteed to not exist in
the future right yeah I mean people can self selfattest to the dead methods
they don't support meaning through the config file that's…

Will Abramson: but example is method not supported So this is a method that
I've tried to resolve it. I've not found anything.

Manu Sporny:

Manu Sporny: how they express it Okay.

Will Abramson: If method not supported, I find I've just picked a random
method name that doesn't exist, that's not supported method. That's easy.

Will Abramson: I think you can just did go on ABC or…

Will Abramson: did go on example but this is not found I think we have to
self attest to divids that they can't find,…

Kevin Dean: What's happening?

Manu Sporny: Mhm. Yep.

Will Abramson: but for did methods that they Yeah.

Manu Sporny: Yep. Exactly.

Will Abramson: So that's how I'm handling that. Yeah. And some did resolves
won't be able to,…

Manu Sporny: Yep. Last one.

Markus Sabadello: Yep.

Will Abramson: but hopefully we'll have at least two did web is a good
example, We should did web identifiers that are not found.

Will Abramson: Last one. Eight issue eight, please manu. And then maybe we
can just earlier this very useful.

Kevin Dean: What the heat?

Will Abramson: is that really all the issues? right. Yeah, I'm asking this
because of our conformance statements really and I'm wondering are people
going to want to say look I'm a conformant did URL d reference sir but I'm
not a conformant did resolver or the other way around and do we want to
split that up in the implementations definition yeah look I'm a d resolver
or yeah I'm d reference

Markus Sabadello: I think you can be a resolver without being a referenc
not the other way around. If you're the reference then you also need to be
a resolver.

Will Abramson: But I thought DS are good to be done locally on the client
some.

Markus Sabadello: Yeah it's a part of the dreferencing process right? The
referencing al always always involves resolution…

Will Abramson: Yeah. Yeah.

Markus Sabadello: but the different parts of the referencing process can
happen in different places with the fragment that can be referenced locally.

Kevin Dean: Goodbye.

Will Abramson: Right.

Manu Sporny: Yeah, I'd say let's combine it until somebody comes along and…

Will Abramson: We just comment on to that effect.

Manu Sporny: says they really want a different conformance class. Yeah.

Will Abramson: That's fine. Good.

Will Abramson: I just was thinking I mean yeah the URL be referencing I
guess I'm just going to wait because there's a big change going through
right with Steven stuff. So wait for those tests. okay there is one other
issue that I think we missed is issue 12 that is the last one. auto. we can
look at it, but I think it's not relevant. Yeah. 12.

Manu Sporny: Sorry, which one? I missed 0 to 12.

Will Abramson: Yeah, we can look at it briefly, but I think it's not
relevant because equivalent ID is another one of these optional properties.
I guess one of the things I just wanted to flag about it is it's kind of
putting requirements on the did method spec this second point a conforming
did method specification bus guarantee. So I don't know again this
equivalent ID is an optional property. So maybe we don't care about it but
00:40:00

Manu Sporny: This statement probably belongs in the DID core specification
but it would be a class 4 change. I think it is fine for us to put other
requirements on did method specifications in did resolution. the problem is
that you create there's no one place to look for all the requirements for
did method.

Will Abramson: Yeah. Yeah.

Manu Sporny:

Manu Sporny: That's the problem we're creating here. So if we have to do
this we can just did resolution for now and then move it into did core in a
future working group. I'm trying to think if this could be a class 3 change
in dead core…

Kevin Dean: We're finished.

Manu Sporny: because it's not any functional. Do we define equivalent ID at
all in dead core? I totally forget,…

Will Abramson: I doubt it.

Will Abramson: I don't know.

Manu Sporny: but we moved it during it was there in the very beginning,
wasn't it? equivalent ID when we did the FPWD I think existed and…

Manu Sporny: if it existed then and we moved it to did resolution

Will Abramson: Yeah. …

Will Abramson: I mean in did resolution they're talking about it as a did
document metadata object rather than something that would go in the did
document itself. I don't know if did core also talks about it as something
in this.

Manu Sporny: did core talks about what it means to have a conforming did
method specification, right? that's the only reason this statement would go
there.

Will Abramson: Yeah, it does talk about equivalent ID has section 8.10
equivalence properties does not have any normative violence on

Kevin Dean: Just a second.

Manu Sporny: And there's an argument here that we clearly say this and
we've always said this and…

Kevin Dean: No. No.

Manu Sporny: because of that it's a class 3 change.

Manu Sporny: We're not adding a new feature because equivalent ID just
exists. We're just specifying what a did method specification needs to do.
yeah, we could. Yeah, I mean, I think there's an okay argument for saying
this is a class 3 change.

Will Abramson: This is in the security consideration section though,…

Will Abramson: Which it does say is non-normative.

Manu Sporny: That is true. I'm not saying it's a clear argument. I'm saying
that there's room to make an argument for class 3 change because it's not
changing any of the functionality of the spec it's definitely not changing
any testable functionality.

Manu Sporny:

Will Abramson: Mhm.

Manu Sporny: It is clarifying so class 3 is you can make clarifying
language that made previously conforming implementations non-conformant or
previously non-conforming implementations conformant or you're just
clarifying this is what we mean through the normative statement. It's a
clarification statement. So this is a clarification statement on method
specifications. Therefore it's a class 3 change to DID core. if we want to
move this one out, I think we can do it as a class three

Kevin Dean: Who's this? Okay.

Will Abramson: Okay,…

Will Abramson: that sounds good. But I guess I'm wondering is it something
we should like because as I said this is equivalent ID property and did
resolution that is right it says did document metadata may include the
equivalent ID property then it has these must statements about it.

Will Abramson: So, we're not going to be testing any of those must
statements about the equivalent ID based on our previous conversation,…

Manu Sporny: All right.

Will Abramson: but maybe we do want to flag it to be moved out.
particularly the statement is about the D method specification because
agree. I think it's not best if we have these requirements all over the
place because did method implementations aren't going to

Manu Sporny: We could transfer the issue.

Manu Sporny: Do you want to do that now to did core? I mean, if we …

Will Abramson: Does it make sense?

Will Abramson: Yeah I mean you can transfer I think it's probably better
just erase it and copy that one the middle statement right about the did
method. All…

Manu Sporny: I mean, Let's see. Aren't all of these The And all three of
these statements have to do with the did method specification, don't they?
00:45:00

Will Abramson: Yeah, I guess I don't Yeah. Okay.

Will Abramson: Yeah, I guess there's two bit, then what would the text in
resolution be changed to? It would just say equivalent ID should conform to
the requirements of DIC core.

Manu Sporny: Yeah, I don't think you have to say anything,…

Will Abramson: Okay. No,…

Manu Sporny: right? Because…

Kevin Dean: Awesome.

Manu Sporny: if it doesn't conform to DID core, it's not a valid DID
document.

Will Abramson: but that's the point. this is in the divid document metadata
object that is returned alongside the divid document it's not in the
divided document…

Manu Sporny: I see what you're saying. Okay.

Will Abramson: which maybe that's a question mark should this equivalent ID
is it really an optional property of the did document I don't know not in
the document

Manu Sporny: And there's

Markus Sabadello: No, it's not in the D document.

Will Abramson: Goodbye. Mhm.

Markus Sabadello: It's a bit confusing because in the D document we have
the also known as, right? And the given end ID and canonical ID are a
little bit similar concepts, but they are in the metadata, not in the
document.

Manu Sporny: Yeah, I mean it's a difficult judgment call. So I think the
answer to that is no. Equivalent ID is not in the DI document and so it's
got nothing to do with it. it's really about did method specifications.
These statements did method specifications.

Markus Sabadello: Could this also be a case where it just provided it in
the configuration with the not found and the deactivated situation?

Markus Sabadello: we provide a date that will have an equivalent ID in the
metadata when it's resolved and then

Will Abramson: Yeah, I mean I think that is the way that we would test it,…

Will Abramson: but I think at least initially I'm not going to be testing
this at all because it's an optional property. I just wanted to bring up
this other concept question about the requirements on the did method spec
because we were going to test it like you said Marcus those second two
statements here like a conforming did method specification must guarantee
that each equivalent ID value is logically equivalent to the ID property
value.

Will Abramson: I don't know how I would test that I would have to
understand…

Will Abramson: what logically equivalent means in the context of the
specific bit method.

Markus Sabadello: Yeah, I agree.

Markus Sabadello: We probably cannot

Will Abramson: So, I still don't really know what to do. I'm not concerned
for the test suite. I think that's fine. But in terms of where they should
go, I don't know, man.

Manu Sporny: Let's try to break it down into multiple parts.

Manu Sporny: Do we want to keep any of these statements in did resolution?
I don't think This one is about the specification. This one is the DID
method specification. And this one is about the DID method and…

Manu Sporny: the DID method specification. So I'll assert that none of
these belong in did resolution. Is that correct?

Markus Sabadello: But why is it about the method?

Markus Sabadello: I mean it's okay.

Manu Sporny: because by the governing It says the did method specification
and…

Kevin Dean: Thank you.

Manu Sporny: this says the That's why I'm asserting they're all about the
DID method specification and as such they don't belong in did resolution.

Will Abramson: Yeah. Yeah,…

Will Abramson: I think I would agree.

Manu Sporny: And then if that's true then the question is where do we move
these statements and the suggestion is there is a section in did core did
spec that has a section on methods and what each method must do and should
do and we can just move it to this it's probably belongs in method
operations s section, we just add an item down here at the bottom and said,
if a quill ID is supported it,…
00:50:00

Will Abramson: Okay. Yeah. Yeah.

Manu Sporny: and we figure out how to translate these. I mean, I can take
an action to try and translate these into language that would fit in that
section.

Markus Sabadello: We don't define the equivalent ID in input core. We
remove all of the metadata things to take resolution

Manu Sporny: We talk about it. Equivalent ID we talk Yeah. So we do it is a
lo I agree Marcus it's not as solid as a argument but I think it should be
okay to just say that's a requirement right if you support equivalent ID
you must do these things

Will Abramson: I almost think…

Manu Sporny: button. Mhm.

Will Abramson: if anything it should because currently that's those
security considerations that mention equivalent ID are kind of out of cont
that's the only place in the document that equivalent ID is So I guess
because we did this refactor and moved equivalent ID into resolution. So I
think it would make sense to put them in the method section to talk about
equivalent ID you must do X Y and…

Will Abramson: Z person I mean maybe we can move it as an issue and just
discuss it on the call and see if anyone else has I think moving that you
convince me we should answer this issue somewhere I mean it's going to
require changes both let's put it into code to start

Manu Sporny: Okay. Yeah.

Manu Sporny: Marcus, are you okay with that? I'm hearing a little bit of
kind of push back on doing that.

Markus Sabadello: …

Markus Sabadello: if you think that that works, then I think that's okay.

Manu Sporny: I think it's probably a better place than it is right now and
then we can kind of discuss as will mentioned. So, we'll transfer

Will Abramson: Yeah, you can transfer that. But that was just one example.
There is also canonical ID in there too in resolution just below equivalent
ID.

Kevin Dean: Oops.

Will Abramson: I don't know if that same applies. Not this is maybe…

Manu Sporny: Why can I not add did color?

Manu Sporny: No. Why is it not showing up in the list? Transfer issue.

Will Abramson: because it's CCG spoke. Should that mark? No.

Manu Sporny: No. wait. yeah. Do I I'm confused. can you not move transfer
outside of the organization?

Manu Sporny: It looks like that's correct. You can't transfer. Okay. we'll
just have to raise it. yeah.

Will Abramson: You see that come?

Kevin Dean: Yeah, create a new one.

Kevin Dean: Then add a comment on this one saying it's been moved. And

Manu Sporny: Okay.

Will Abramson: But yeah I can raise one because I think I'll talk to about
this canonical ID thing as well…

Kevin Dean: What's I

Will Abramson: because the canonical ID also has conforming div method
specification must guarantee that the canonical ID value is logically
equivalent to the ID property.

Manu Sporny: So, you're taking an action to create and do the linking. I
don't need to do it here.

Will Abramson: Yeah, I'll create an issue on decor and just talk to both of
those things about maybe moving those statements into cool.

Manu Sporny: Okay, sounds good. All right. okay.

Will Abramson: Yeah, that's all the issues. So, I mean maybe I'll create
some more but I think this was useful and I'll create a few issues on
relative repos to crack what we discussed. Thank you.

Manu Sporny: Sounds good.

Manu Sporny: Thanks, Will.

Will Abramson: Have a look.

Manu Sporny: Thanks for doing all this work. Appreciate it.

Will Abramson: That's all right. That's Have a good day. Thanks.

Manu Sporny: Yes, I care.
Meeting ended after 00:54:51 👋

*This editable transcript was computer generated and might contain errors.
People can also change the text after it was created.*

Received on Wednesday, 22 October 2025 22:16:46 UTC