Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Updates re controller property #116
Updates re controller property #116
Changes from 4 commits
a9f97a5
eadc13c
44a9c9d
76ce24f
dcfc7ac
e92d99e
7f54c71
909f01d
1f32576
7b8b533
b085d30
c02cf58
229d7a1
79227a6
8db5053
bd6dfd1
f8ec6f2
48fa8d4
fb4aa43
3e40b39
9c1e39b
2d6248f
303da6b
c4338da
124697a
982605e
515631c
ec440ee
17f99f2
13696a2
535f07e
7d450be
98f1a59
3e69af1
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The end of this sentence does not flow well for me. Perhaps we could reorder.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is incorrect. It should be zero or more service endpoints.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lightly tweaking @wip-abramson's suggestion, incorporating @selfissued's comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See: #116 (comment)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is outdated, but please review to see if the current language works for you @wip-abramson
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It not just the relationships. The entire document is authoritative or not.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This suggestion would leave a broken sentence.
Can you try a new suggestion that addresses the flow of the remaining sentence?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure what happened to my original proposal, but here is the revised one from PR#126
An entity that is [=authorized=] to perform any action on the associated resource such as updating the associated [=controller document=] or updating the associated [=verification method=].
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The latter sentence would fit in one of the following paragraphs, but it doesn't fit here, especially not as a "however" which isn't counter to the preceding sentence. (GitHub still refuses to properly highlight changes, so note the insertion of
will
and correction ofidentifer
spelling.)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note the repeated usage of "However" in the note which does not sound good to my ears...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure the "however" part should be removed. @TallTed is right that it is not a "however"; I could imagine something like:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@David-Chadwick Marking this resolved, but please re-review to see if the updated language is good for you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To my eyes, this does not increase clarity, and probably increases unclarity for new readers, about subjects vs. controllers, and how subjects and controllers are connected to DIDs, DID documents, controllers, controller documents, subjects, etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to stem the bleeding somehow.
@David-Chadwick Has been wrestling with this issue from the very beginning and he's not the only one.
In centralized systems people believe they can trust identifiers because there is some authority you can appeal to. But in a decentralized system, developers need to understand they don't have an authority to bail them out. What we do have have is cryptography and time. From that, we can build a usable intersubjectivity.
The other alternative would be to get rid of Controller documents altogether an return them to their decentralized form where these notions are primary and understandable. There's no reason the VCDM can't reference the W3C published standard.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case, the operative issue is the 'subject' proving control. Not the controller.
The controller, by definition, is someone who can prove control.
The problem is that DIDs can be used as subjects without the controller being involved at all.
So, the expectation is that issues will ask the subject to prove control. They may not. For good reasons or bad.
But only if the subject does prove control do we have any reason to expect the controller == subject.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to explicitly refer to Joe Biden under the current circumstances? Just saying... 😉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I'm open to a different story. Maybe a "spouse of Kelly Smith" could work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest we remove this example because it does not clarify anything.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed, this amount of exposition belongs in a Security Considerations section, not in a terminology section. The terminology definitions are, ideally, 1-3 sentences at most.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll move it to security considerations
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved and restated to refer to a teacher in an ambiguous manner.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is problematic. URLs are specified as always denoting the same entity. DIDs are URLs.
did:example:abc
should be described as either "President Joe Biden" or "the current POTUS".There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a problem with RDF, not with the example.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I encourage you to log your issue with RDF soon, such that it might be taken up, or at least noted, by the currently active RDF-star WG.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
RDF knows about this issue. It is called HttpRange14.
As long as RDF retains a global context for all identifiers such that any use of that identifier necessarily refers to a subject other than the identifier itself, then it is impossible, within RDF to have a statement about the identifier using that identifier.
In the real world, we clarify by context which usage is appropriate. In one context we understand that we are making statements about the subject referred to by an identifier, in others, we understand we are talking about the identifier itself. RDF's treatment of identifiers makes this problematic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a problem with the controller being able to change the canonical identifier. Strictly speaking, changing the canonical identifier means changing the document altogether; put it another way, it means the creation of a new controller document. I would prefer to remove the reference to the identifier, it is not necessary here imho.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That language doesn't say you can change a canonical identifier.
It says you establish control of the identifier by creating proofs.
This is correct. If you can update the content of the canonical resource, you are a controller of the document's canonical identifier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, again from my RDF-tainted view, I am not sure what it means to "control the identifier". Control means an ability to change; but changing the identifier means, strictly speaking, to replace the document because a document and its identifier are intimately bound. (An RDF Resource is specified by its URL. Changing a URL means to introduce a different resource.)
But I acknowledge that this is very much an RDF view of things, so I won't lie down the road over this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@iherman
Yes. This update is describing that it means to control the identifier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Strictly speaking, I believe that the controller controls the document and not necessarily the identifier. As an analogy, I may have the right to modify a google document, but I do not control its identifier (which is provided by the google doc system itself.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From the new abstract:
The point is to demonstrate proof of control of the identifier.
Changing the controller document is simply the most fundamental way to do that. You can also use verification methods. Control of the document lets us deduce control of the identifier. That's the magic. Simply changing a resource is as old as the web. Proving control over an identifier is what DIDs (and now controlled/controllable identifiers) add to the game.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah. I just realize that there is a whole note about document vs. identifier control. See may comment above: I am not sure if I agree with all this; in my view, the controller controls the document, the identifier may be provided by storage system and may not be under the control of the controller.
My proposal would be to remove that note altogether, and not touch the subject of the identifier control.
(From RDF point of view, which is underlying this model, the two resources that have two different URL-s are strictly different resources. The
@id
property of JSON-LD looks like a property like any other, but it is not: it is the way to "create" a resource with that given identifier.)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the reason controller documents for non-DIDs is an exercise is rounding a square peg. IMO, the controller document loses so much of the cryptographic properties of good DID methods as to be practically useless. HOWEVER, it was in the interest of the "big tent" that we are attempting to cut out everything from DID Documents that makes them DIDly, yet somehow keep their value for non-DID URLs. But that just leaves you with the exact uncertainty that you raise: the resolving identifier of a non-DID URL has no guarantees to be related to the content of the controller document.
And yet, here we are.
My proposal would be to revert the VC Data Model to use the DID document specification instead of trying to force an innovation designed for decentralized systems to also make sense when used without the decentralizing part.
Sure, but that is exactly the root problem here. RDF does not allow you to make statements about identifiers, but that is precisely what we are doing with controller documents. My proposal would be to treat the controller document as JSON and define the properties to more clearly describe aspects of the identifier itself rather than imagining somehow that the subject is somehow involved. Instead, we'll probably continue to bump into the HttpRange14 error of thinking RDF is a coherent semantic space, with a weird caveat of "except for identifiers".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-1 to document controller.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-1 to this change, it creates backwards-breaking changes that makes this document incompatible with DID Core and will make it impossible for DID Core to build on top of this specification (forced class 4 changes in DID WG, which is not authorized to make class 4 changes).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not an assumption. It is a constructive formulation. The proof is, by definition, created by the document controller (through the verification method specified by the controller).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-1 for the reasons stated here: https://github.com/w3c/controller-document/pull/116/files#r1839014775
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case, I don't think the question is "do we know" but rather "are they ACTUALLY allowed".
To wit: the verifier may not know before doing the analysis, especially in cases of object capabilities and bearer tokens.
So, it isn't "answers the question of 'Do we know...?'" but rather "answers the question of 'can we determine if they are allowed'", which to me is just a wordier way to say "answers the question of 'are they allowed...?'"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The question of "are they ACTUALLY allowed" cannot be answered, unless we have some affirmative (or negative) statement to that effect. If we have no specific statement, then the Open World assumption means we can only say, "we don't know".