-
Notifications
You must be signed in to change notification settings - Fork 116
Use schema.org as the base schema? #194
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
Schema.org is perhaps attempting to boil the ocean. The vast majority of the definitions will probably never be used in VCs, whereas the definitions in https://w3id.org/credentials/v1 will be used in all VCs. I envisage different communities of users will define their own properties in their own namespaces, but may reference particular elements in schema.org like person or person properties attributes like address. As long as VCs can point to the URIs defining the types or properties that are contained in them, then we do not need to reference schema.org (at the top level). I am presuming that a VC type could be https://schema.org/Person which is only importing the properties of person, and not all of schema.org. If https://schema.org/Person is itself too broad, since it contains a lot of properties, then I am presuming that a VC could simply reference https://schema.org/address if only that property is needed. Is this correct? |
/cc @danbri @rvguha @philbarker
Yes, it could, but that's not what I'm suggesting. I'm suggesting that we could do a number of things (in increasing order of uneasiness):
The benefit being that schema.org would get the ability to digitally sign all things that schema.org can express once the Verifiable Credentials spec goes to REC. So, not only can people/orgs make statements about The difficult parts are:
So the question isn't "Can we use schema.org terms in Verifiable Credentials JSON-LD Context?"... because that's easy to do. It's should we not have a Verifiable Credentials JSON-LD Context at all, and just use schema.org instead? |
Unless I have misunderstood what you are wanting to do, I think it is a very bad idea to have a context of http://schema.org. as this will mandate that every VC verifier must know and understands every term in schema.org. It will be virtually impossible to control which VCs to legitimately accept in this case, if they can contain anything from schema.org. |
@David-Chadwick This comment raises a bit of a red flag for me. While it's true that verifiers will have to exercise judgement as to which VCs they'll recognize and the issuers they'll trust, why wouldn't we leverage existing and accepted name spaces and ontologies to describe content in claims? Schema.org seems like a resource that we should leverage and rely on extensively. Maybe I'm reading too much into your comment. Please explain. |
@David-Chadwick the
If your use case requires only specific terms to be used, then you should check for just those terms--regardless of the It seems your wanting more from the |
Maybe an example of @context using schema.org when the VC is extremely limited in what it will contain (e.g. age property only) would help to clarify the difference between defining terms and restricting which terms can appear in a VC. Looking at example 8 on extensibility, I have two questions about this example:
|
Perhaps you might consider capturing a checksum of the state of the context (or even vocabulary, although that is complicated for large vocabularies) at the point at which the claim is made or recorded or examined. |
ACTION: @msporny to respond to @danbri and @David-Chadwick, no op, and suggested path forward, then close issue. |
Hey @danbri, the VCWG is starting to wrap up its work before CR and this issue hasn't moved forward in a long time. It also raises a variety of security concerns as a result of pulling in a huge JSON-LD Context file that the group is not going to have the time to resolve within the time period that we'd like when going into CR. That means that Verifiable Credentials will have their own JSON-LD context and it may or may not include terms in schema.org. That said, there is nothing limiting the use of schema.org for the Verifiable Credentials themselves (and we expect a number of schema.org terms to be re-used - e.g., address, name, title, etc). I'm going to close this issue, but please re-open it if you object or see a way that the group could make progress at this point. |
@David-Chadwick wrote:
The general answer is that a verifier can know by 1) seeing if there is a property that it doesn't understand as a part of the credential, or 2) seeing that there is a property that it understands as being an extension of the base set of attributes it expects, or 3) based on what you argued for in the group, it can check to see that the type used is an extended type (or a subtype, etc.)
The general answer is that the indirection isn't necessary, you can always include extensions inline. The more specific answer is that if we keep the list of @contexts to a well known, and rigid ordered list (enforced by JSON Schema), and the properties expressed in a well known and rigid tree structure (enforced by JSON Schema), then receiving parties of the data may not need to do any JSON-LD processing at all, even in the case of extensions. This part is a bit experimental and we're trying to understand if there are any corner cases... we haven't found any yet. You would lose this ability by inlining extensions, which many people that are already processing as JSON-LD won't care about... but the people that care about NOT requiring JSON-LD processing do care about. |
The specific URL used by the VC context is happening in issue #206. |
Closing the issue. Commenters should feel free to open it again if you believe we can make progress resulting in a concrete proposal and PR pulled into the spec by W3C TPAC 2018. |
We could use:
https://w3id.org/credentials/v1
as the base schema, or we could usehttps://schema.org/
as the base schema.Doing the former enables us to strictly control the base vocabulary.
Doing the latter enables people to express just about everything in schema.org AND digitally sign it (which could turn into a pretty big use case). The downside of the latter approach means that things might be introduced to schema.org that stomp on our vocabulary.
There is a hybrid approach where we still do
https://w3id.org/credentials/v1
and put those terms into schema.org in due course. The problem there being that pure JSON implementations might have to check for bothhttps://w3id.org/credentials/v1
andhttps://schema.org/
and wouldn't be able to reference a static version of schema.org. Another issue may be the overhead when processing the thousands of terms in the schema.org context.Thoughts?
The text was updated successfully, but these errors were encountered: