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 section on syntactic sugar. See #207 and #268. #255

Merged
merged 3 commits into from Dec 4, 2018

Conversation

msporny
Copy link
Member

@msporny msporny commented Oct 28, 2018

Addresses #268 and #207.


Preview | Diff

index.html Outdated
another entity. This ensures proper cryptographic separation between the data
graph provided by each <a>issuer</a> and the one provided by the
<a>presenter</a> to ensure the provenance of the information for each graph
is preserved.
Copy link
Contributor

@dlongley dlongley Oct 29, 2018

Choose a reason for hiding this comment

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

We might want to say more here about how a "claim" is really a separate graph of statements made by the issuer via a credential... and that JSON-LD uses sugar to keep the JSON syntax simple.

Copy link
Contributor

Choose a reason for hiding this comment

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

This is really the wrong way to go. I do not believe we should have claims in the RDF. see #207

Copy link
Contributor

Choose a reason for hiding this comment

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

@David-Chadwick, I'm currently exploring if it's possible to drop the @graph container (to at least see if it's a viable option) by checking to see what kind of JSON-LD frame would properly separate the claim information from the proof information.

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 was done, thus resolving @David-Chadwick's concern.

@msporny
Copy link
Member Author

msporny commented Nov 1, 2018

"are designed such that developers may easily copy and paste examples to add ..."

Fixed.

@msporny
Copy link
Member Author

msporny commented Nov 1, 2018

  • It adds another JSON-LD concept (graph containers) thereby increasing the comprehension distance between a JSON user and the specification. We should not need this concept in VCs.

You need to be able to make statements about statements -- that's what graph containers enable. If you can't do this, the information model becomes non-deterministic and the whole ecosystem falls down. Graph containers (or a concept like it) are not optional.

Keep in mind that developers don't need to know any of this. They just slot the data in the right place. I added this PR because a number of people wanted to know the details... and now that the details have been added, it sounds like you're saying: The details are not necessary.

  • Since a VC only contains one cryptographic proof, regardless of the number of claims, then the issue of graph separation is irrelevant. (The same applies for a presentation, which only has one signature.)

VCs don't always contain just one cryptographic proof. For example, VCs that are issued by a group (like a board of directors on a particular vote) may contain N signatures.

  • It is not code implementors I am particularly concerned about as the SDK implementors are professionals who should know what they are doing. Application implementors should use SDKs with well defined APIs so this is not a particular concern either. It is the millions of users who will define their own VCs that are of concern. They need to be able to easily understand how the JSON of a VC is composed. What are the (simple) rules for this, and how can I define new VCs and new properties of existing VCs so that they conform to the (largely hidden) rules of JSON-LD. In other words, we should have a simple set of rules (a subset of JSON-LD rules) for how to create correct JSON for VCs, which conform to JSON-LD. This should necessarily remove many of the rules that JSON-LD supports (such as graphs). In other words, all VCs will be valid JSON and JSON-LD, but not all valid JSON-LD will create valid VCs.

While I agree with a subset of what you say above... I need concrete text that I can apply to this PR to make progress.

@msporny msporny changed the title Add section on syntactic sugar. See #207. Add section on syntactic sugar. See #207 and #268. Nov 6, 2018
@msporny
Copy link
Member Author

msporny commented Dec 4, 2018

I believe I have addressed all of @David-Chadwick's concrete concerns. Merging. If a mistake was made, an issue or PR to fix would be appreciated.

@msporny msporny merged commit 04a44a9 into gh-pages Dec 4, 2018
@msporny msporny deleted the msporny-syntactic-sugar branch December 12, 2018 07:52
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.

None yet

3 participants