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
Rename "claim" to "subject" #207
Comments
I have a few thoughts on this suggestion.
As a result, I would vote against this request, unless someone can make a compelling argument for it. |
I think the term subject is very clear in the context of VCs. The subject is the subject of the credential. This is exactly the same as the use of subject in X.509 as well. The solution to this is to ensure that the definitions section clearly defines subject, and clearly defines holder. Concerning the timing of this issue, I would like to make two points.
|
Since we're bikeshedding the name, other choices include:
I do agree with @David-Chadwick that now is the time to get this right. I disagree that "subject" would be the proper solution, primarily because of points made by @stonematt and @TallTed -- it's an overloaded term. |
If we change to
That is I do admit that this is a pedantic argument and the more important thing is to make the markup look reasonable and immediately graspable for authors. We should pick something that fits for both worlds, and I think the following words meet that criteria: assertion, attestation, affirmation, declaration. Of those, I'd argue against attestation and affirmation... as they convey the idea that the statements are more official than they are and have the same problem as "verifiable claim". |
Take example 1 from the current data model document, with claim changes to subject
It makes eminent sense to call the object a subject, as the id is the id of the subject. To call it anything other than subject is no better than calling it claim. If you want to keep claim, attestation, or other assertion term, we could further elaborate the data model as follows
The above makes much more sense and is easier to read and understand. It has the correct semantics for the "id"s which the existing data model does not have. And it correctly attaches the claim to the subject. |
@msporny. Could you please comment on the proposed new syntax for a VC, which keeps the concept of a claim, but also ensures that the subject is correctly identified, viz:
I will then produce a PR with this global edit to the examples. I suggest that this edit could be made without any changes to the accompanying text, but please correct me if I am wrong. |
I am in favor of the last suggestion from @David-Chadwick . Example 9 shows why this makes sense: "claim": {
"id": "did:example:abcdef1234567",
"name": "Jane Doe",
"favoriteFood": "Papaya"
}, In this example, we have diverged from the definition of "claim" given earlier in the spec: "A claim is statement about a subject." Yet we have one "claim" element of the doc model containing two statements. I get why we did this--for terseness--but what we should really be doing if we want to allow this is calling the element "subject", with multiple claims inside it. I would also point out that "id" inside a claim is not the ID of the claim, but ID of the subject. And this does violence to the notion of id as a unique identifier of a portion of the doc, since the same subject could be identified more than once. |
I would like to go for |
From TPAC 2018:
|
@jandrieu @David-Chadwick Can you check the PR directly above this comment to see if it addresses both of your concerns? We may add an example to note the sugar... but I didn't do that yet because I didn't know if the current text would be good enough. |
It doesn't look like the implicit @graph is explained. This was the heart of the confusion for most of us discussing this at TPAC. If you don't explain how the @graph is an implicit property of the claim object--and show examples about how you can use it explicitly to put additional kinds of statements in the "claim" value, which are NOT about the subject--then there's a hug gap for those trying to understand the boundaries and flexibility of the data-model. |
I think it might be useful to draw an RDF graph of a VC. My opinion now is that there is no such thing as a claim inside a VC. Rather, an unsigned VC (or a simple credential) is actually a claim. I would say that the RDF for a credential or a claim is: Claim is about subject On the other hand, a verifiable credential is a different object than a credential (or claim) and we should not confuse the two. The RDF for this is: In this way there is no need for the @graph concept. |
I appreciate the above effort, but I think that drawing a graph requires graphical imagery, not simple text. I think that drawing such a graph would indeed help clarify things, and hopefully clarify both the differences and the similarities between verifiable and unverifiable claims/credentials/whatever-we-call-them. To my mind, the differences between verifiable and unverifiable are all about verification/proof -- which I still believe is all about verification that the Issuer did indeed Issue the claims/credentials/whatever-we-call-them -- but the above appears (I think unintentionally) to me to be about "proof of the assertion within the credential" rather than "proof that the credential came from the issuer who made the assertions therein". Sticking with the text stack, but putting it more into pseudo-RDF form, I'd say it looks something like this --
In other words -- the only difference between a VC and an UnVC is whether or not the Issuance is Provable. |
This is perhaps something we should have done a long time ago, because there are potentially several different ways in which we can model a VC and a claim. I believe that having an RDF diagram does help our understanding, but of course this discussion medium does not facilitate the diagramatic way of representing RDF. So unfortunately we will have to stick with text. If you refer to Figure 4 in the data model document you will see the diagram for This is the model I have used when I said In contrast your model appears to have Thus you appear to have introduced two different subject nodes into the RDF graph. Or alternatively, you have put two different arcs between the claim and subject. You do not need your first statement "Claim is about subject" as this is implied in your second statement. Secondly "UnVC contains Assertion" is unnecessary. An assertion is the same as an unsigned credential. All the properties that can be attributed to one can be attributed to the other. If you can see a difference between the two, could you please tell me? I think this similarity is adequately illustrated because you say "Assertion made by Issuer" and "UnVC unprovably issued by Issuer". This is duplication of the same fact. |
A little refinement of my earlier text sketch --
I can have an Unverifiable Credential, which contains Unverifiable Assertions. If you cannot tell that the laminated "license" I present to you was produced and issued by the relevant Department of Motor Vehicles (or whatever) of the jurisdiction named thereon -- it's still a Credential, containing Assertions. None of those Assertions are the same as the Unverifiable Credential. I think one rather big wall we're hitting is that figures 2, 3, and 4 --
-- get quite (usefully!) atomic, while figures 5 and 6 --
-- are just colored-box handwaves -- and these are the core of everything we're trying (and, I'm afraid, failing) to MODEL. (While yes, github doesn't directly support diagrams, we cannot limit ourselves to text for this discussion. There are numerous graphical tools out there, which can be used to sketch things as we go, and to produce drawings like those already in the document. I often use OmniGraffle v5; there are numerous alternatives. Something was used to create the diagrams in the current document; I would suggest that the same tool might be well employed here.) |
That tool was Google Draw -- with export to SVG, which are the files types that are used in the spec. |
@TallTed your message shows quite clearly to me how RDF diagrams help. Would you like to draw diagrams for your textual RDF, and then compare it to my diagram, which is fig 4 with the following mappings |
Actually you could add the following mapping |
Here is a summary of our problems at present (as well as other issues that resolving this issue may address):
After much debate, mostly with @dlongley last week in the DB office, I think we've come to the following proposal for resolving this item:
If we do this, I think it resolves the many issues swimming around this particular item AND simplifies the data model and our use of advanced JSON-LD features such that developers will be far less likely to shoot themselves in the foot when making claims. |
Fantastic. How many +1s do you want? |
Well, you only get the one. :p We will need to raise this on the call tomorrow to see if there are any objections and then I can do the PR for it. |
I hate to be the negative nelly, but what happens when there are multiple subjects? You just use [] and have each set of statements within each element in the array have a separate subject that must be independently reified within each? |
Yep, what you wrote is the most common way that you would achieve that use case (two subjects with no relation to one another). |
I've been anti-"let's call it subject" for a long time now because:
... but, changing a few things at the same time caused the following to happen:
I do think that RDF folks are going to flip out over the use of |
Note that I'm pro using We will lose the ability to encapsulate the "claims" made from other meta data about a credential (which is all signed by the issuer anyway), but I think this is an acceptable compromise. |
Well... Speaking as one of the more RDF-oriented, I wouldn't say I'll flip out, but I would continue to argue strongly against using the ridiculously overloaded unqualified |
PR is in -- #277 -- please review. @TallTed What if we do
translates to this:
Note that How does that make you feel? |
@msporny - I think using What's your goal with this thought? |
@msporny - I don't know whether the following is better put here, or on #277... I'm with @dlongley on preferring consistency (so That said, regretfully, I have to say that having read over this change several times in context, it's still problematic. (I should say "partial context," as Sections 1 thru 4 will need careful review and many changes to ensure that they match these revisions of Sections 5 thru 10. The contradicting definitions and such in those earlier sections are part of why I am finding evaluation of the later sections so challenging.) This may well be dismissed as "bikeshedding", but I do not think such dismissal is appropriate. We're still working with textual "illustrations" of everything, whether in English prose or JSON[-LD] or otherwise, and I think that these textual representations are still failing to communicate clearly, and that we are going in circles because of that lack of clarity. I also think there's a significant blur of data and metadata in this textually "illustrated" model. I am certain that I am not clearly understanding what was meant by the writer(s) in some areas, and I am fairly confident that some readers who think everything is perfectly clear would find that their mental images do not match up with the mental images held by either the writer(s) or by other readers who think everything is perfectly clear. Indeed, my "understanding" has changed multiple times with repeated readings. I think things would get somewhat clearer if we used more real-world credential examples, such as "passport" or "driver's license", rather than making up a "ProofOfAgeCredential" or whatever, even if the purpose of this presentation is to verify the holder's age. (I'm not aware of any real-world "ProofOfAgeCredential", though I am aware of many real-world IDs which include a "Date Of Birth" and which are therefore used for ProofOfAge.) |
This was resolved in PR #277. |
@David-Chadwick would like to change "claim" to "subject", viz:
TO:
Related to #120
The text was updated successfully, but these errors were encountered: