Description
JSON-LD defines a way to specify the default vocabulary for properties and types that otherwise do not match a term definition. Currently the credential context v1 does not make use of this feature, meaning producers of VC's must be explict in their term decelerations for all properties used, otherwise the jsonld signatures signing process will error due to the usage of a strict expansion map that requires all properties to be defined.
If instead a default vocabulary was included in a new revision of the credentials context, then the signing process would proceed and the properties without a formal term definition would be expanded with the default vocab. Take for instance the following example where the credentials context v2 would include the definition of "@vocab" set to "https://www.w3.org/2018/credentials/undefinedTerm"
{
"@context": [
"https://www.w3.org/2018/credentials/v2"
],
"type": ["VerifiableCredential"],
"issuer": "did:example:28394728934792387",
"issuanceDate": "2019-12-03T12:19:52Z",
"expirationDate": "2029-12-03T12:19:52Z",
"credentialSubject": {
"id": "did:example:b34ca6cd37bbf23",
"someClaim": "A claim",
"someOtherClaim": "Another claim"
},
"proof": {
"type": "Ed25519Signature2018",
"created": "2020-01-30T03:32:15Z",
"jws": "eyJhbGciOiJFZERTQSIsI...wRG2fNmAx60Vi4Ag",
"proofPurpose": "assertionMethod",
"verificationMethod": "did:example:28394728934792387#keys-7f83he7s8"
}
}
The properties "someClaim" and "someOtherClaim" during signing would be expanded to be https://www.w3.org/2018/credentials/undefinedTerm#someClaim
and https://www.w3.org/2018/credentials/undefinedTerm#someOtherClaim
which when browsed to would resolve to a page informing the user that the property is not formally defined and perhaps link to some helpful resources on how to define the term formally.