-
Notifications
You must be signed in to change notification settings - Fork 117
"Individual claims can be merged together to express a graph of information about a subject." is not a true statement, in general #790
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
Comments
This is not how the VC Data Model defines claim: https://w3c.github.io/vc-data-model/#claims This statement, which is claimed to not be true:
is true, because the claims consist of 3-tuple values (subject-property-value), not 2-tuple values (property-value, as is suggested above). If claims were only 2-tuple values, the statement wouldn't be accurate as you state... but that redefines the word "claim" in a way that would break the VC Data Model specification. |
#FYHumor: I found this pioneer bucket while helping a neighbor round up his cows yesterday. It's a bit battered, has been patched up more than once, the handle has fallen off, and it has a few holes in the bottom (it doesn't hold water anymore) but it still looks like a bucket. Maybe we could use it as a logo for the version 1 of the VC data model specification? ;-) :-) |
You can't a have 3-tuples stipulated in the specification when the first tuple (subject) is completely optional and can completely and opaquely missing without detection (as in an Unbound Credential). The only way this might work is if there was a formal grammar or some sort of machine-readable specification for a VC grammar. The whole JSON vs. JSON-LD thing is a mess. The specification is so much like the above bucket, I really do have to sit back with "humorous expression on my face". Do what you need to do, I'm headed in a different direction: #788 (comment) |
It's optional to specify, but always exists.
JSON-LD (and RDF) provides that grammar and data model.
I don't disagree with you there. How do you intend to solve it?
Remember that you have at least 60+ people (number of people/implementers in the WG) you're going to need to convince on that new direction. More power to you if you figure out something simpler that achieves consensus. |
#cliquespeak The above is not a concern if the specification is already or potentially fundamentally broken. This is what we're trying determine. |
Ship it …as long as you agree to use the new logo 😉 : #790 (comment)
p.s. Might also make a good O'Reilly book cover image.
|
I think there may be a conflation occurring here that's worth pointing out. I'll try to explain this using a proof by contradiction argument. Bear with me: Just because {
"id": "http://example.edu/credentials/1872",
"type": ["VerifiableCredential", "AlumniCredential"],
"issuer": "https://example.edu/issuers/565049",
"issuanceDate": "2010-01-01T19:73:24Z",
"credentialSubject": {
"alumniOf": {
"id": "https://example.edu",
"name": [{
"value": "Example University",
"lang": "en"
}, {
"value": "Exemple d'Université",
"lang": "fr"
}],
"studentId": "018283291"
}
},
"proof": { ... }
} In this case the subject identifier is actually still defined, even though it's not defined within the Following with me so far? Ok, now here's where my logic is going to get a bit tricky. Since we're recognizing that the issuer is stating claims we should also recognize that an identifier is merely one attribute to describe an entity and the removal of an attribute doesn't constitute the removal of the entity. Put another way by analogy, if I don't include my name on my passport, I don't suddenly disappear off the face of the planet. Rather my passport is just potentially a poorly formatted document (depending on the consumption use case). So, in the case of JSON where the So where's the conflation here? Well, just because the passport is missing my name, doesn't mean it can't still be bound to me and verified by a customs agent. If my picture is still included in the passport then I can still be visually authenticated by the customs agent - even though they don't know my name. So the conflation here is the presumption that the id property serves as both an identifier of the subject and the proof of possession by the holder and without the id the subject suddenly disappears which I believe is an incorrect presumption. This conflation is likely occurring because this is how it works for DIDs, but it's not the end all be all case because it's possible for the issuer to add additional properties that allow the holder to prove possession in a variety of different ways or for the issuer to identify the subject in other ways as well. For example, let's take a look at this example: {
"id": "https://issuer.oidp.uscis.gov/credentials/83627465",
"type": ["VerifiableCredential", "PermanentResidentCard"],
"issuer": "did:example:28394728934792387",
"identifier": "83627465",
"name": "Permanent Resident Card",
"description": "Government of Example Permanent Resident Card.",
"issuanceDate": "2019-12-03T12:19:52Z",
"expirationDate": "2029-12-03T12:19:52Z",
"credentialSubject": {
"id": "PermanentResidentId123",
"type": ["PermanentResident", "Person"],
"givenName": "JOHN",
"familyName": "SMITH",
"gender": "Male",
"image": "data:image/png;base64,iVBORw0KGgo...kJggg==",
"residentSince": "2015-01-01",
"lprCategory": "C09",
"lprNumber": "999-999-999",
"commuterClassification": "C1",
"birthCountry": "Bahamas",
"birthDate": "1958-07-17"
},
"proof": {
"type": "ImageVerification",
"verificationProcess": "Confirm image matches the person in front of you"
}
} In this example, the So the point here is that the absence of the |
There is an alternative argument which is based around proof of possession by the holder, rather than the identifier of the subject. It goes as follows. The issuer has a set of claims about an entity or indeed about a set of entities (such as the parents of a new born baby, or a marriage certificate). The issuer is entitled to give this set of claims to anyone (the holder as per Figure 1 of the Recommendation) that it deems is entitled to hold it. In order to bind this set of claims to the holder, the VC is bound (directly or indirectly) to a cryptographic key of the holder, so that the holder can subsequently prove possession of the VC by including the VC in a VP and signing the VP. This does not break the existing JSON, or the RDF or JSON-LD or the existing model, since the triple is now "holder with cryptographic id holds property with value". Remember that all the description about the subject triples in section 3 is non-normative. And so is the section about bearer credentials in 7.9 which says that the subject ID is not specified so as to not divulge information about the holder. So both arguments are equally valid and in agreement with both the non-normative and normative parts of the Recommendation. The real issue is that we have conflicting non-normative parts of the Recommendation, some which imply the subjectID relates to the holder and some which imply it relates to the subject. For the vast majority of VCs this is not an issue, since subject == holder, but it is the edge cases that are causing the disconnect. Perhaps the next version of the Recommendation can describe both of these viewpoints. |
This is all fine but this is only folklore/tribal knowledge because these connections are not described in the version 1 of the specification. .... connections referring to RDF graphs and JSON-LD, etc. Version 1 of the VC data model is like the leaky bucket, it doesn't hold water.
I wasn't party to all the interaction that led to the VC data model leaky bucket syndrome but I feel there was a lot of pandering/accomodation to a number of special interests who wanted to get their points/technologies included in the spec (at any cost) ....that is, without ensuring that that overall consistency and coherence of the total specification was maintained.
We have a version 1 spec that represents "a bunch of stuff" that makes everyone happy and no one happy all at the same one.
[Image]
Get Outlook for Android<https://aka.ms/AAb9ysg>
…________________________________
From: David Chadwick ***@***.***>
Sent: Friday, August 13, 2021 1:46:11 AM
To: w3c/vc-data-model ***@***.***>
Cc: Michael Herman (Trusted Digital Web) ***@***.***>; Author ***@***.***>
Subject: Re: [w3c/vc-data-model] "Individual claims can be merged together to express a graph of information about a subject." is not a true statement, in general (#790)
There is an alternative argument which is based around proof of possession by the holder, rather than the identifier of the subject. It goes as follows. The issuer has a set of claims about an entity or indeed about a set of entities (such as the parents of a new born baby, or a marriage certificate). The issuer is entitled to give this set of claims to anyone (the holder as per Figure 1 of the Recommendation) that it deems is entitled to hold it. In order to bind this set of claims to the holder, the VC is bound (directly or indirectly) to a cryptographic key of the holder, so that the holder can subsequently prove possession of the VC by including the VC in a VP and signing the VP. This does not break the existing JSON, or the RDF or JSON-LD or the existing model, since the triple is now "holder with cryptographic id holds property with value".
Remember that all the description about the subject triples in section 3 is non-normative. And so is the section about bearer credentials in 7.9 which says that the subject ID is not specified so as to not divulge information about the holder. So both arguments are equally valid and in agreement with both the non-normative and normative parts of the Recommendation. The real issue is that we have conflicting non-normative parts of the Recommendation, some which imply the subjectID relates to the holder and some which imply it relates to the subject. For the vast majority of VCs this is not an issue, since subject == holder, but it is the edge cases that are causing the disconnect.
Perhaps the next version of the Recommendation can describe both of these viewpoints.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<#790 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABORV2HN27FDPMQBBOCCN6TT4TEUHANCNFSM5CBKBPVQ>.
Triage notifications on the go with GitHub Mobile for iOS<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675> or Android<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>.
|
Michael,
Specs are written by groups of people. People aren't perfect, they make
mistakes, they disagree.
Sometimes the only thing these people have in common is their desire to
produce a specification.
The differing viewpoints of each of the participants will be incorporated
into the PRs they raise, this is to be expected.
Those PRs are tinkered with until the group can agree that they should be
merged. This feedback is vitally important and the resulting PR sometimes
barely resembles the original suggestion.
But it is those who participate who raise and discuss those PRs. If enough
of the participants feel strongly about including something, chances are it
will be included.
If someone, even a participant, feels strongly about something, but is
unwilling to do the work to raise a PR and then the additional work to come
to consensus about it, their views may not be included in the spec.
I'm not sure how the process could work in any other way.
This process of moving toward consensus among people with different goals
and viewpoints does result in specifications that aren't "perfect."
This is because a spec that is "perfect" for folks with a particular set of
use cases or a particular viewpoint may not be at all suitable for others
who do not share those use cases or viewpoints.
Saying that we have "a version 1 spec that represents "a bunch of stuff"
that makes everyone happy and no one happy all at the same one" is fair.
To be honest, it is probably an apt description of most version 1 specs.
The good news is that we now have a couple of years of implementations,
adoption struggles, misunderstandings, desires for clarification, etc.,
that can guide us toward creating a much better version 2.
Please refrain from accusatory comments about the people and process that
produced our spec. As you say, you weren't there.
I hope that you can trust in the process, and in your fellow participants.
Writing specs at the W3C is all about coming to consensus.
That means we need to be nice, especially when we disagree.
…On Fri, Aug 13, 2021 at 5:45 AM Michael Herman (Trusted Digital Web) < ***@***.***> wrote:
This is all fine but this is only folklore/tribal knowledge because these
connections are not described in the version 1 of the specification. ....
connections referring to RDF graphs and JSON-LD, etc. Version 1 of the VC
data model is like the leaky bucket, it doesn't hold water.
I wasn't party to all the interaction that led to the VC data model leaky
bucket syndrome but I feel there was a lot of pandering/accomodation to a
number of special interests who wanted to get their points/technologies
included in the spec (at any cost) ....that is, without ensuring that that
overall consistency and coherence of the total specification was maintained.
We have a version 1 spec that represents "a bunch of stuff" that makes
everyone happy and no one happy all at the same one.
[Image]
Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: David Chadwick ***@***.***>
Sent: Friday, August 13, 2021 1:46:11 AM
To: w3c/vc-data-model ***@***.***>
Cc: Michael Herman (Trusted Digital Web) ***@***.***>; Author ***@***.***>
Subject: Re: [w3c/vc-data-model] "Individual claims can be merged together
to express a graph of information about a subject." is not a true
statement, in general (#790)
There is an alternative argument which is based around proof of possession
by the holder, rather than the identifier of the subject. It goes as
follows. The issuer has a set of claims about an entity or indeed about a
set of entities (such as the parents of a new born baby, or a marriage
certificate). The issuer is entitled to give this set of claims to anyone
(the holder as per Figure 1 of the Recommendation) that it deems is
entitled to hold it. In order to bind this set of claims to the holder, the
VC is bound (directly or indirectly) to a cryptographic key of the holder,
so that the holder can subsequently prove possession of the VC by including
the VC in a VP and signing the VP. This does not break the existing JSON,
or the RDF or JSON-LD or the existing model, since the triple is now
"holder with cryptographic id holds property with value".
Remember that all the description about the subject triples in section 3
is non-normative. And so is the section about bearer credentials in 7.9
which says that the subject ID is not specified so as to not divulge
information about the holder. So both arguments are equally valid and in
agreement with both the non-normative and normative parts of the
Recommendation. The real issue is that we have conflicting non-normative
parts of the Recommendation, some which imply the subjectID relates to the
holder and some which imply it relates to the subject. For the vast
majority of VCs this is not an issue, since subject == holder, but it is
the edge cases that are causing the disconnect.
Perhaps the next version of the Recommendation can describe both of these
viewpoints.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<
#790 (comment)>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/ABORV2HN27FDPMQBBOCCN6TT4TEUHANCNFSM5CBKBPVQ
>.
Triage notifications on the go with GitHub Mobile for iOS<
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android<
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
>.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#790 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACPFKPYJ5JX4YRPDAGIMSJLT4UAWTANCNFSM5CBKBPVQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>
.
|
Brent, you completely overlooked the first, most critical sentence…
This is all fine but this is only folklore/tribal knowledge because these
connections are not described in the version 1 of the specification. ....
connections referring to RDF graphs and JSON-LD, etc. Version 1 of the VC
data model is like the leaky bucket, it doesn't hold water.
@MSpony ‘s comment backups up this position.
What I see happening is people feeling compelled to peel back and then peel back some more their PRs to achieve some minimal reference to some of the point(s) that are important to them but what is really happening is the cohesiveness and connectedness of elements of the spec document suffer and are lost. …a battle of attrition.
(updated by @Sakurann to delete the email responses that were included per a comment below)
|
@mwherman2000 (and some others) -- Please take care to edit your email-based replies, to remove excess quoted content, especially when that quoted content is not properly marked as such. Your latest comment above includes the full content of three preceding comments, but these are not properly marked so they are not obviously quoted content, and Github doesn't even know how to hide the content it sent to you, nor can humans -- even those who like reading message-sequence bottom-to-top while each message is read top-to-bottom -- easily discern who wrote what nor when. That makes the bounds of your own comments even harder to discern, and makes long threads like this one even harder to comprehend than they already are without such confusing embeds. Increasing the difficulty of reading and understanding your words is counterproductive, if, as I expect, you really do want us to read, understand, and buy into your arguments. As I include in my email
-- and it only gets worse when top- and bottom-posting are mixed. |
I do not believe this Issue calls for changes to the specification that should be made. I am marking the issue |
No response since marked |
Uh oh!
There was an error while loading. Please reload this page.
In https://www.w3.org/TR/vc-data-model/#claims, the following statement is not always true and, fundamentally and generally, not true:
A VC can exist as an Unbound Credential; that is, a VC that has no subject (i.e. no credentialSubject id). In the specification, there is no requirement for a VC to refer to a subject. credentialSubject id is optional.
Ditto for (the following statements from the same section are, in general, and, fundamentally, not true:
A Claim is simply a name-value pair ...a named value: "color" : "red"
A set of Claims are related by their inclusion in the same collection of Claims inside a specific Credential. If one of those Claims is named id, then the set of Claims is assumed to be associated with that identifier ...in the same way the set of Claims can be assumed to be associated with the color red if there is also a claim in the collection of the form: "color" : "red".
Figure 2 and Figure 3 are not true for the same reason.
The text was updated successfully, but these errors were encountered: