-
Notifications
You must be signed in to change notification settings - Fork 0
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
Separate the LegalPerson credential class from the LegalPerson class #7
Comments
The EU company vocabulary defined in this repo is meant to be used to describe the following credential subjects:
The modelling of verifiable credentials is done in separate specifications. The definition of the EU company vocabulary is credential agnostic, so it can be used in different types of credentials: W3C credentials are shown to demonstrate the use of the vocabulary in credentials only. We strongly recommend to use the vocabulary defined in Verifiable Credentials Data Model v2.0 and the corresponding context https://www.w3.org/ns/credentials/v2 to be able to define and handle complex enterprise credentials. Nevertheless, the vocabulary can also be used to define the claims of a company in an SD-JWT-VC. How to use the vocabulary in a W3C verifiable credential is pretty straight forward and is described here: VCDM2.0 - Getting started. {
"@context": [
"https://www.w3.org/ns/credentials/v2", // this context defines the vocabulary of the W3C credential
"https://oid.spherity.com/contexts/eucc/v1" // this context defines the vocabulary of the specific credential subject
],
"@type": ["VerifiableCredential", "LegalPersonCredential"],
"credentialSubject": {
"@type": "LegalPerson"
... // claims based on the eucc/v1 vocabulary go here
}
... // claims based on the credentials/v2 vocabulary go here (issuer, credentialStatus, proof, validFrom, ...)
} Please note that the type of the credential subject is defined in the property This approach is best practise and already used by a broad range of vocabularies, e.g.:
Using the vocabulary in an unsecured payload of an SD-JWT VC is also pretty simple: {
"vct" : "https://oid.spherity.com/eucc#LegalPerson",
... // claims based on the eucc/v1 vocabulary and the SD-JWT-VC spec (iss, cnf, ...) go here
} Conclusion: The EU company vocabulary is meant to describe the credential subject of a verifiable credential only. The verifiable credentials are modelled separately and out of scope of the EU company vocabulary. From a modelling perspective the attribute of the verifiable credential attribute classDiagram
class CredentialSubject
class LegalPerson
class NaturalPerson
class VaccinationEvent
class PermanentResident
CredentialSubject <|-- LegalPerson
CredentialSubject <|-- NaturalPerson
CredentialSubject <|-- VaccinationEvent
CredentialSubject <|-- PermanentResident
The EU company vocabulary describes the subjects (Classes) LegalPerson and NaturalPerson. |
https://github.com/spherity/oid-public/blob/main/docs/contexts/eucc/vocabulary.md#4-information-model
Modeling a Legal Person or Power of Attorney or Ultimate Beneficial Owner is different from modeling a Credential.
A Legal Person (LP) represents everything about the LP and it's roles within the scope of the EWC project. A Credential is a subset of everything about the LP. This is shown already in the class name in a Credential schema, the name/type is credentialSubject and not LegalPerson.
Also the Legal Person as a credentialSubject is not a subclass of Agent class.
So the methodology we should use is to define the information model like here and let the credentials be a subset of the model representing the scope of the credential.
I have modelled it in TopBraid Composer (I still need to learn to use the tool of the Nordics). For context I will show the hierarchy as modelled:
Here you can see the EUCC being a descendant from a whole tree: Attestation, Electronic Attestation of Attributes, Qualified Electronic Attestations of Attributes.
Here you can see the Legal Person being a descendant from the tree Agent, Organization, Formal Organization.
Both hierarchies follow the EU Core Vocabularies.
The text was updated successfully, but these errors were encountered: