-
Notifications
You must be signed in to change notification settings - Fork 116
Presentations #1181
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
Presentations #1181
Conversation
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.
LGTM after suggestions applied. "optional" is not a normative verb according to 1.4 which is why I rewrote those sections.
OPTIONAL is a normative word, but we were using the lowercase version of it (on purpose). We could also fix things by just using "OPTIONAL", as that's equivalent to "MAY". I'll note that having "SHOULD" and "MAY" statements are often not tested because people complain when their implementations fail normative statements. In any case, I agree with the normative changes @awoie is suggesting to the contents of the VerifiablePresentation object. |
@@ -790,12 +790,7 @@ <h3>Presentations</h3> | |||
|
|||
<p> | |||
A <a>verifiable presentation</a> expresses data from one or more | |||
<a>verifiable credentials</a>, and is packaged in such a way that the | |||
authorship of the data is <a>verifiable</a>. If <a>verifiable credentials</a> | |||
are presented directly, they become <a>verifiable presentations</a>. Data |
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 like some of this text, don't think it should all be removed.
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'm open to suggestions. My attempt to adjust this section did not find consensus.
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.
can we keep
<a>verifiable credentials</a>, and is packaged in such a way that the
authorship of the data is <a>verifiable</a>. If <a>verifiable credentials</a>
are presented directly, they become <a>verifiable presentations</a>.
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.
Now that we've introduced media types, I don't think it is true that a verifiable credential (vc+ld+json) becomes a verifiable presentation (vp+ld+json).
What about a sentence like: "It is also possible to present verifiable credentials directly."
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.
sure I think that's a good 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.
Re-worded in 29f5cc9
Then we SHOULD be clear about what SHOULD be tested, and how the results SHOULD be interpreted. Failure of a MAY is only problematic if the implementation claims that it implemented that feature. Failure of a SHOULD is only problematic if the implementation claims that it implemented that feature according to the SHOULD. Both of these failures are helpful to evaluators who SHOULD be able to discern implementations which DID implement those features from implementations which did NOT. People who complain at that point will need to make a very strong case for why we ought to pay attention to their complaints. |
@msporny According to the Conformance section, we only have the following:
I know that OPTIONAL is used in IETF RFCs but I couldn't find it in the paragraph above. Should we add OPTIONAL there too? Or what is the reason it was not added? |
That paragraph is auto-generated by ReSpec based on the normative RFC language used throughout the document. So, if you don't use a certain RFC term, it's not added to that paragraph. If we use "OPTIONAL" (in all caps) in the document, ReSpec will modify that paragraph I pointed to and will add the word automatically to that paragraph. So, no reason to modify that particular paragraph, it'll auto-update if we use the OPTIONAL language in the places where we use lowercase "optional" today. |
@awoie I believe I have addressed your concerns, could you re-review? |
index.html
Outdated
A <a>verifiable presentation</a> expresses data from one or more | ||
<a>verifiable credentials</a>, and is packaged in such a way that the | ||
authorship of the data is <a>verifiable</a>. If <a>verifiable credentials</a> | ||
are presented directly, they become <a>verifiable presentations</a>. Data | ||
formats derived from <a>verifiable credentials</a> that are cryptographically | ||
<a>verifiable</a>, but do not of themselves contain | ||
<a>verifiable credentials</a>, might also be <a>verifiable presentations</a>. | ||
<a>verifiable credentials</a>. |
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.
0 or more credentials AND arbitrary additional data encoded in JSON-LD
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.
Re-worded in 29f5cc9
index.html
Outdated
type of <a>presentation</a>, such as <code>VerifiablePresentation</code>. For | ||
The <code>type</code> <a>property</a> MUST be present. It is used to express the | ||
type of <a>verifiable presentation</a>. The value of this property MUST be | ||
<code>VerifiablePresentation</code>, but additional types MAY be included. For |
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.
You need to comment on if its an array, what values are legal, 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.
Maybe (as above) the links to other sections where this is already described normatively aren't sufficient? Should I just be explicit and say if present, it MUST follow the guidance in the types section?
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've re-worded the language in 75bfa7d to normatively point to the guidance you suggest.
details related to the use of this property, see Section <a href="#types"></a>. | ||
</dd> | ||
<dt><var>verifiableCredential</var></dt> | ||
<dd> | ||
If present, the value of the <code>verifiableCredential</code> <a>property</a> | ||
MUST be constructed from one or more <a>verifiable credentials</a>, or of data | ||
The <code>verifiableCredential</code> <a>property</a> MAY be present. The value |
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.
if its present, can it be empty?
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.
What is better:
- required and can be empty, or
- not required but has to have at least one value?
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.
2 is better... this is a perfect case of "many different JSONs" produce the same "graph"... and proof mechanisms might not preserve all of them the same way...
We have the exact same problem come up with credentialSubject
.
we said it MUST be present and it MUST NOT be empty.
Doing that for Verifiable Presentations would destroy "DID Auth" which use data integrity proofs to prove possession of a private key for a holder, but does not communicate any credentials.
So my reasoning for 2 is to allow for that behavior to continue to be legal, while removing equivalent JSON syntax for the same RDF Graph.
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.
excellent. 2 is how it's currently worded, so I won't make any changes.
index.html
Outdated
is expected to be a <a>URL</a> for the entity that is generating the | ||
<a>presentation</a>. | ||
The <a>verifiable presentation</a> MAY include a <code>holder</code> <a>property</a>. If present, the value | ||
MUST be a <a>URL</a> for the entity that is generating the <a>verifiable presentation</a>. |
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 probably need this URL reference everywhere we see id
... and we probably want to allow for this as well:
holder: { id: ...., name: alice }
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 modify the PR to mimic the language in the issuer property. I think that will address 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.
modified the language in e5b8dd0
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.
Only blocking feedback is this:
https://github.com/w3c/vc-data-model/pull/1181/files#r1253523816
It might be better to just more directly state the normative requirements of vp+ld+json
.
@context
and type
what is required.
Signed-off-by: Brent Zundel <[email protected]>
Signed-off-by: Brent Zundel <[email protected]>
Co-authored-by: Oliver Terbu <[email protected]> Co-authored-by: Manu Sporny <[email protected]>
Co-authored-by: Orie Steele <[email protected]>
Signed-off-by: Brent Zundel <[email protected]>
Signed-off-by: Brent Zundel <[email protected]>
Signed-off-by: Brent Zundel <[email protected]>
a8a03e0
to
e5b8dd0
Compare
The issue was discussed in a meeting on 2023-07-05
View the transcript2.6. Determine interoperable way for Holder to make claims directly in VPs (issue vc-data-model#860)See github issue vc-data-model#860. Kristina Yasuda: This is about self-signed VCs, right? Orie Steele: Brent has a raised a PR that addresses a lot of this issue. See github pull request vc-data-model#1181.
Brent Zundel: I don't remember if I tried to address the comments or not yet, but I definitely can. Kristina Yasuda: I've assigned this to you, Brent.
|
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.
lgtm
Thanks Ted! Co-authored-by: Ted Thibodeau Jr <[email protected]>
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.
Approved, assuming an issue marker or some attempt to address https://github.com/w3c/vc-data-model/pull/1181/files#r1256018885
Can you say more what this issue would say? I think the current PR text supports what you're looking for here. |
unique identifier for the <a>verifiable presentation</a>. If present, the | ||
normative guidance in Section <a href="#identifiers"></a> MUST be followed. |
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.
Just noting that we don't need the normative statement on identifiers, as all identifiers must follow that guidance anyway. This normative statement doesn't make the implementation do anything above and beyond what's stated in the #identifiers
section. I think we can safely remove this statement (in a future PR).
<code>VerifiablePresentation</code>, but additional types MAY be included. The | ||
related normative guidance in Section <a href="#types"></a> MUST be followed. |
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.
Just noting that we don't need the normative statement on types, as all types must follow that guidance anyway. This normative statement doesn't make the implementation do anything above and beyond what's stated in the #types section. I think we can safely remove this statement (in a future PR).
Normative, multiple reviews, changes requested and made, no objections, merging. |
The goal of this PR is to make more explicit what a VP is.
This PR is based on feedback received on PR #1167 as well as the discussion in issue #996.
This PR fixes #996.
It changes the non-normative description (Section 3.3) of verifiable presentations to remove ambiguity.
It also adds and strengthens normative statements in section 4.10.
Preview | Diff