-
Notifications
You must be signed in to change notification settings - Fork 93
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
Create a seperate top level block for defining proof purposes #294
Comments
Looks interesting... but its pretty much equivalent to this totally valid representation today:
So i'm not really a fan of it. |
technically, it can even be compressed further...
|
Yes thats correct however the real intent of this issue is to tease out what the core terms at the base of the data model describes, at the moment it is a bucket for verification methods a flat map of verification relationships and a bucket for service endpoints? |
I'd be a fan of maybe grouping verificationMethod / proofPurposes in the spec / adding additional language about them to make the relationship clear... but I think we should strive for as flat representations as possible. |
To aligned with @dlongley 's terminology it would be represented as
|
+1 I'm not advocating for increased nesting just trying to tease out how we describe the core data model as that sets the behaviour for implementers and extenders of it |
The nesting is not necessary... But I do think that its doing a great job of highlighting that verificationMethods (catchall, or purpose specific) and service endpoints are the only things we are currently putting in the root of the document. |
nesting becomes most useful when your categories of items are many, and your number of items per category are many... we have 2 categories, and good reason to believe that neither will become large... |
Can you clarify how you do not see verificationRelationships as a third bucket? |
This works today:
I guess I just don't see the point in changing the structure of controllers, given that the VC Data Model works fine with things as they are, and the extra nesting does not add anything but bytes. https://w3c.github.io/vc-data-model/#proofs-signatures-0 The vocabulary and spec text should be where we communicate relationships, not object hierarchy. |
Seems like there's some disagreement on this subject. I'll plan on writing the PR for #268 still, but will note it as blocked in the PR until we get further clarity on this topic about if core properties should be bucketed. |
-1 on the nesting, it seems like extra parsing for little extra payoff. I think having only But arranging them in the spec itself carefully is important. PR #304 creates a 'verification relationships' subsection under 'verification methods', so perhaps defining the terms there would be helpful (including moving |
Since I think it's pretty conclusive that moving things isn't going to make sense, is there any general reasoning that we might be able to provide in non-normative language to explain which aspects should be bucketed and which should exist at the top level of the document? This would be useful for authors of extensions. |
@kdenhartog Make this definition longer: https://w3c.github.io/did-core/#dfn-verification-relationship ? I'm not sure what you mean by Can you propose language on this issue that you feel would address your concern? |
"In general, extensible attributes should be defined at the top level when _____ and should avoid defining nested JSON extension attributes." The blank is the part I'm not certain about though. |
A top level property relates the DID subject to something ... it establishes a relationship (defined by the property) between the DID subject and some other thing. Since a DID Document expresses information primarily about a DID subject, that's where most properties should be. A more deeply nested structure would involve expressing properties about that other thing (and its relationships to yet more things) that is related to the DID subject by the top-level property. |
I'm thinking the proposed "bucketing" techinque here won't be done, but I think the action item from this PR would be to add some text about how extensions should be defined to align with what has been discussed in this thread. |
@kdenhartog could you propose closing or create a PR for the text you'd like to see or something along those lines? |
I'm satisfied that based on #304 the specific verificationRelationships defined in did core effectively addresses the expression I was after without having to reflect this via nesting in the resulting data structure. Therefore I'm happy to close this issue if there are no objections. I like the sentiment that @dlongley summarized above here and I think the combination of the first paragraph in core properties along with the definition offered for did document captures enough of the rationale w.r.t the did documents data structure. |
Yup, I'm aligned with Tobias here as well that we've covered these details via other PRs and this topic is sufficiently covered in the spec now. Marked pending closed now as well. |
No objections raised since marked pending close. Closing. |
Given the conversation and consensus emerging in #283 around creating a top level block for storing
verification methods
the same argument could also be made for organisingproof purposes
, this might look something like the following.The benefit of an approach like the above makes the concept of a proof purpose more obvious to those trying to understand the data model and perhaps makes a variety of topics within the specification easier to define such as the definition of the core data model and how it should be extended.
Interesting conversation on this related topic has also been had in #273
The text was updated successfully, but these errors were encountered: