-
Notifications
You must be signed in to change notification settings - Fork 209
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DID Core Registries -> DID Extension Registries, plus clear inclusion of terms from Core #28
Comments
I disagree with the renaming. Core features, including the top-level JSON member names and method names, will be listed in the registries. |
I expect that we may end up with "DID Registries" instead... because "core" is being misinterpreted as "only core", and "extensions" is being misinterpreted as "only extensions". We'll need more feedback from the group in order to go one way or the other (or neither). |
I guess I don't understand why core features need to be 'registered' as they are specified, though I support listing them for implementer convenience. I'd be fine with DID Registries though. I think DID Core Registries is confusing. |
We'd definitely have to rename DID Registry, the term we have been using for the ledger/network/system/database that DIDs are actually recorded to... (in progress in w3c/did#162) |
I missed a thought about what |
With @rhiaro 's renaming of the issue, I very much like the structure Amy is proposing. Nice job. |
I could either live with DID Registries or DID Core Registries but I cannot live with DID Extension Registries. The name DID Extension Registries makes it sound like core features won't be registered by they will be, so that there's a complete JSON schema for the core DID features in the registries. This is just like that all the core JWT claims, such as "iss" and "sub" are in the IANA JWT Claims Registry at https://www.iana.org/assignments/jwt/ so the list is complete. This is the normal pattern. All the JSON members defined by the DID spec will be in DID Registries, but they aren't part of extensions. (That's just like that all of them will also be in JSON-LD Context files, even though they aren't extensions.) For those reasons, "DID Extension Registries" would be highly misleading. |
Since "DID Registries" strikes me as a confusing name (in fact a term we are trying to rid of any usage of in the DID Core spec), could a solution be to call it the "DID Core and Extension Registries". |
If the name has "Core" in it, people will think it's only core properties (no extensions). "DID Properties, Parameters, Extensions and Methods Registries"... is too long. |
@rhiaro can you provide example urls for the extensions as well? Here is a real world example for extensions: https://gpg.jsld.org/contexts/ (human readable) Assuming I provided json schema definitions for verificationMethods... how would I add them to the registries? I open a pull request against https://www.w3.org/ns/did/index.html
Anyone wanting to use my public key definitions adds:
Every delta to the extension data results in a new version? |
I'm clearly missing a perspective from the JSON/JSON schema, so I take your point about the problem with the name DID Extension Registries.
My only objection to going with DID Registries is that we use DID Registry to mean something entirely different in the spec at the moment and we NEED to resolve that.
Yes! Love it. |
@OR13 I thought one of the agreements at the f2f, and how it is written in the Registration Process at the moment, was that every extension provides its own JSON-LD context and JSON Schema files. I tried to confirm this in #23. To me this means we do not host extensions in this repo at all. We just link out to where the implementer is hosting it, from the html landing page. We don't need schema or context files for extensions, because they're all elsewhere, nicely decentralised.
.. including the links to your (the extension implementer's) normative definition of the new term, and to where the JSON-LD context and JSON Schema are hosted, at URLs that you are committing to maintaining. And probably a hash of the context and schema, so the remote content can be verified. Anyone wanting to use your extension adds your context to their I'm not sure what you're asking about The Registration Process is there to have some degree of quality control over extensions (according to the list of points in Registration Process); to make sure people commit to and properly maintain their extensions; and to give other people a place to look for existing extensions to use (before they go making their own). It is not a free hosting service for JSON files. That's my understanding at least. I wasn't at the face to face, so I might have missed something crucial. But on subsequent calls where we were talking about the registries, I distinctly remember strong feelings about having the ability to host extensions elsewhere, not force them to be under the w3c namespace. We could think about a special process for agreeing to host some extensions under certain conditions, if you think this is necessary or appropriate. I think this would need to be discussed separately. (For example, if one of the DID method specs were to be taken as a work item of the WG, and needs to define some new terms.) |
@OR13 That's exactly why I proposed "DID Core and Extensions Registry". It says in black and white that it has both Core and Extensions. What am I missing? BTW, the problem with "DID Registries" is that it's easily confused with Verifiable Data Registries (assuming we settle on that term in the spec). |
Can't believe I didn't think of that tbh |
:( -- but it also has "Methods"... and "Parameters"... and everything else we haven't thought of yet. I suggest we name it "DID Registries" and fix whatever is broken in the spec. |
Doesn't extension and core also cover the methods and parameters? They'll either be core or extensions too, surely..? |
I'm merely pointing out that each time we've added a word, someone has gotten confused. :) For example, a DID Method is neither an extension or in core. |
D'oh yes, that's true. |
A side effect of this structure is that in order to create a valid "Extension" an implementer needs to support both "JSON Schema" and "JSON-LD"... I expect that nobody will actually contribute extensions because of this... given that we have yet to see anyone create a valid JSON-LD context extension, and now they will be required to do that AND create a valid JSON Schema... none the less, I will provide an example of such an extension... |
I have attempted to reflect some off the structure which appears to have consensus here: #33 |
I thought that was precisely the compromise that was agreed at the face-to-face. That is also what it has said in the 'Registration Process' section all along. |
When it comes to people adding extensions, I suggest we have a template for them to fill out when they make a PR. It could involve a table like:
Plus any additional notes/description, and an example usage. |
yea, I feel like we are going to probably need to flatten the current registries to lists of tables, like this. I had hoped to have the registry provide some better guidance on structure, but i think that should be a another section. I will probably open a PR to flatten the current structure, after #33 |
Thinking more about naming; finding it hard to think of anything that clearly incorporates the Methods Registry without being overly general. In my head I'm calling it DID Stuff Registries. DID Terms Registries? DID Spec Registries? DID Standard Registries? |
Registries has had a name change and been restructured, I think this issue can be closed. |
The DID Registries are primarily to coordinate interop between extensions to the DID Core Spec. That is, to facilitate implementers to do things we didn't specify in DID Core v1. To make this abundantly clear, I propose we rename the DID Core Registries to the DID Extensions Registries.
Of course it is useful to have all terms in one place, rather than two different documents for implementers to have to look at to get an overview of all the available properties (and params). To that end, we can have sections in the Registries document that lists the properties and parameters that are defined in the DID Core Spec, with links out. These should be clearly differentiated from the extensions, as they will have been defined by WG consensus under W3C process rigour, rather than by third parties who followed the registration process.
Something like the following structure for the Registries document:
The repository for the DID Extensions Registries should contain:
The various URLs should work thus:
https://www.w3.org/ns/did
returns the human-readable (HTML) Registries document, always.https://www.w3.org/ns/did/v1
returns a human-readable (HTML) simple listing of the contents of the JSON-LD context (core only, no extensions), if you ask for HTML, otherwise it returns the JSON-LD context, always.https://www.w3.org/ns/did/v1.jsonld
andhttps://www.w3.org/ns/did/v1.json
return the JSON-LD context, always.https://www.w3.org/ns/did/v1/schema
returns a human-readable (HTML) simple listing of the contents of the JSON Schema if you ask for HTML, otherwise it returns the JSON Schema definition, always. (I'm just floating this, JSON Schema best practices a bit out of my wheelhouse.)With the understanding that the ultimate goal (even if we're not quite there yet) is the following:
https://www.w3.org/ns/did/v1
https://www.w3.org/ns/did/v1
is normatively defined in the DID Core Specificationhttps://www.w3.org/ns/did/v1
is listed in the Core Properties section in the Registries document, with links to the normative definitions in the DID Core Specification (for ease of navigation for implementers - not as a normative reference)(This issue has overlap with #17).
The text was updated successfully, but these errors were encountered: