-
Notifications
You must be signed in to change notification settings - Fork 117
Change credentialSubject
to subject
#1128
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
-1, this would be a massive breaking change on a term that the WG spent months debating (years ago). |
-1 without significantly more justification. Also, the issue title, "Change |
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
{
"subject": {
"@id": "https://www.w3.org/2018/credentials#credentialSubject",
"@type": "@id"
}
}
],
"type": [
"VerifiableCredential"
],
"validFrom": "2023-05-09T22:25:23.652Z",
"issuer": {
"id": "did:example:123",
"type": "Organization"
},
"subject": {
"id": "did:example:456",
"type": "Organization"
}
}
|
-1 this is a breaking change for other standards that have aligned with VC 2: https://1edtech.github.io/ComprehensiveLearnerRecord/docs/clr_v2p0.html |
I do not have an opinion on whether That said, the fact that this may represent a breaking change is not a valid reason to block, though it certainly is a concern that must be examined. |
Whether or not this is a breaking change is completely irrelevant. We're building a v2, which by definition, includes breaking changes. The issue must be evaluated based on its merit alone. I believe this change would reduce confusion and clarify how the property is intended to be used, so I'm supportive of it. |
Respectfully, the fact that it is a breaking change has everything to do with the burden of consensus. As a breaking change, you would need to establish consensus in order to change the existing specification. Just because some folks like the idea does not make it a change that the working group adopts. I'll fight for your right to have your proposal heard, but you still have to convince enough participants to call it consensus. Since your change basically throws JSON-LD out the window, I don't believe you are going to get consensus. |
Could you elaborate on why this throws JSON-LD out the window. Or which specific proposal does. |
Appreciating your input, I'd like to highlight a specific point from the Terminology section of the quoted spec:
This suggests that the term "claim" could indeed be a fitting and intuitive choice here. |
Thank you for bringing forward this balanced perspective. Indeed, the potential of breaking changes should not serve as an absolute deterrent if they fall within the purview of our charter. Observing the composition of specification editors, it appears that we have an approximately equal representation from both RDF and JSON perspectives, which I find to be quite healthy and beneficial for our collaborative work. Given the scope of the potential changes, it might be feasible to incorporate some alterations in term names. We might be able to navigate around these changes using versioning of the While I might be mistaken, I genuinely believe we need to carefully consider how we can allow JSON and RDF to coexist with this technology. This might involve a degree of restructuring, the extent of which is yet to be determined. |
You are correct. I think I was actually referring more to the arguments in #1130 which would both remove the "id" property and rename "credentialSubject". Whether or not we change the key "credentialSubject" to "subject" is separate from whether or not we remove the "id" property. So, I am happy to withdraw that argument. In fact, I'm open to renaming it to "subject" although it would be a bit of a pain for existing implementations. We can probably mitigate that entirely if we map "credentialSubject" and "subject" to the same definition in the JSONLD That said, I can point out to why it isn't "claim", on two fronts. First, we had a catalytic moment at a Rebooting the Web of Trust workshop, where significant incubation work on DIDs and VCs occurred. A respected and experienced collaborator spent three days with the rest of the team imagining that "Verifiable Claims" verified certain facts, but VCs as envisioned were only verifying authenticity. This is why VCs are Verifiable Credentials instead of Verifiable Claims. Hence, the language shift from "claim" to "credential" which influenced the term "credentialSubject" Second, the structure of JSON-LD is such that properties other than "id" are predicates about the subject identified by the "id" in the same JSON node. In this case, "credentialSubject" is a predicate on the root object, so the statement involved is "this VC (known by the VC's id) has credentitalSubjects that are [members of the array]". Then, for each member of that array, the "id" field identifies the subject of that credential, with predicates (and objects) that are the claims. So each array member reads as issuer assertions that "entity with ID of 'id' PREDICATE OBJECT" where PREDICATE and OBJECT are the keys and values of the properties of that array member, e.g., "did:ex:abc name 'Joe Andrieu'" is the credential's RDF triple in "credentialSubject": [{
"id" : "did:ex:abc",
"name" : "Joe Andrieu" }] We can also read that as "Joe Andrieu is the name of one of the subjects of the VC; they are referred to, in this VC, with the identifier did:ex:abc." Presumably we might have other statements about that identifier, which are taken to be about the person/thing with the name "Joe Andrieu". Not sure if that's clarifying, but the point is that the "id" of the array member is the identifier of the subject of that set of claims, which are expressed as the predicates and objects about that subject. If we replaced "credentialSubject" with "claims", then the semantics would be that the array members are claims and statements about those claims, instead of credential subjects and statements about those subjects. That would mean the ids of those array members identify the specific claim, and the predicates and objects are about the claim, rather than about the subject. That said, I don't think it'd be a big stretch to switch from "credentialSubject" to "subject" despite my earlier argument to the contrary. However, switching that to "claims" would not align with the JSON-LD semantics (even though I realize non-disambiguated JSON processors could interpret the property in a valid way if they understand the spec.). |
@melvincarvalho — In #1128 (comment) ... Please edit your comments (again), adding code fences around |
credentialStatus follows this same convention as credentialSubject. |
The issue was discussed in a meeting on 2023-07-12
View the transcript5.3. Change
|
No objections raised since being marked |
Uh oh!
There was an error while loading. Please reload this page.
This would align with
issuer
not beingcredentialIssuer
andholder
not beingcredentialHolder
.The text was updated successfully, but these errors were encountered: