Skip to content
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

Add definition of Verifiable Credential Graph and why it exists #1280

Merged
merged 6 commits into from
Sep 26, 2023

Conversation

msporny
Copy link
Member

@msporny msporny commented Sep 13, 2023

This PR is an attempt to address #1240 by defining the concept of a Verifiable Credential Graph, noting why the concept exists, and how those not doing full JSON-LD processing need to think about the problem space that the Verifiable Credential Graph addresses.


Preview | Diff

index.html Outdated Show resolved Hide resolved
Copy link
Contributor

@Wind4Greg Wind4Greg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How would this be instantiated? Like section 4.9 "Named Graphs" in the JSON-LD syntax spec?

index.html Outdated
`credentialSubject.id` is the same in both <a>verifiable credentials</a> but
the object might contain objects of the "Jane Doe" form described in the
previous paragraph. Care is to be taken to not merge objects that use
document-relative identifiers, such as blank node identifiers, and only
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the term 'blank node identifier' used in the specification? This sentence is meant to non JSON-LD users and, for them, this term is meaningless.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been fixed in d543779.

index.html Outdated
<dfn class="lint-ignore">verifiable credential graph</dfn> is utilized to
encapsulate the <a>verifiable credential</a>. The value(s) associated with the
`verifiableCredential` property on a <a>presentation</a> is of type
<dfn class="lint-ignore">VerifiableCredentialGraph</dfn>. Using this type has a
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This means that the vocabulary will have to change by putting a defined_by link to this term. The comment field in the vocabulary may have to be kept: that is the only place where there is an explicit reference to the RDF Dataset specification, and I believe it must stay there.

The vocabulary definition makes the extra statement whereby a VerifiableCredentialGraph instance must include a single Verifiable Credential, which is the "real" content we are talking about. Shouldn't that be definied here, too?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in f9e3faf.

index.html Outdated
Comment on lines 2247 to 2248
object. In other words, prematurely merging data between two
<a>verifiable credentials</a> can lead to a corrupted data model.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I know but I do not exactly know what "prematurely merging" and "corrupted data model" supposed to mean. please paraphrase/elaborate.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
@iherman
Copy link
Member

iherman commented Sep 15, 2023

The issue was discussed in a meeting on 2023-09-14

  • no resolutions were taken
View the transcript

1.10. Add definition of Verifiable Credential Graph and why it exists (pr vc-data-model#1280)

See github pull request vc-data-model#1280.

Manu Sporny: Giving some background. Orie requested that we document what a VC graph is, and why it's in the spec. This PR does this. The short of it is that when you have a VP, you can include multiple VC within it.
� We want to make sure the data within the VC is not comingled.
� It's important when you have multiple objects that looks the same.
� the problem is that in JSON-LD you cannot be sure that objects are talking about the same thing.
� This PR prevents that, so data isn't comingled.
� If you aren't doing json-ld processing, you should not merge information unless you are absolutely sure.

Ivan Herman: I made some comments already.
� One is that if we take this PR, then something similar has to be done for the context integrity (which is a different repo).
� Second is that, manu, you may want to change additional vocab files.
� There is one question about being precise: a VC graph must contain a single VC. It's a restriction about VC within a proof.

Manu Sporny: Agree on doing a parallel PR on the proof graph in the data integrity spec. Agree on making additions to the vocab file.
� Agree on the restrictions and limitations as well.

Brent Zundel: Who will raise taht issue in DI?

Manu Sporny: I'll do it.

Brent Zundel: Down to our last PR, open 13 hours ago.

@msporny
Copy link
Member Author

msporny commented Sep 26, 2023

How would this be instantiated? Like section 4.9 "Named Graphs" in the JSON-LD syntax spec?

Yes, exactly. It's "instantiated" automatically because verifiableCredential is a graph container in the JSON-LD Context.

@msporny
Copy link
Member Author

msporny commented Sep 26, 2023

Normative, multiple reviews, changes requested and made, no objections, merging.

@msporny msporny merged commit 60c1d65 into main Sep 26, 2023
2 checks passed
@msporny msporny deleted the msporny-vcg branch September 26, 2023 21:25
@Sakurann
Copy link
Contributor

this PR partially addressed #1263

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants