There are three schemas in scope within the EUDI Wallet - OOTS PoC, namely:
- the PID schema (synergy 5 & 7),
- the birth certificate schema (synergy 7) and
- the diploma schema (synergy 4 & &).
The EUDI Wallet Architecture and Reference Framework lays out in Annex 3.1, a working document, the specifications related to the PID schema attributes within the EUDI Wallet; however, no respective specifications in relation to the birth certificate or diploma schema attributes are currently provided.
In the absence of established reference standards and/or specifications within the EUDI Wallet in relation to the three schemas considered, and given the currest status of implementation of the EUDI Wallet (i.e., use of attestations compliant to W3C Verifiable Credential data model (VCDM) version 1.1), the following approach was followed:
- a custom PID schema was defined based on Annex 3.1's specifications on the attributes that a PID attestation shall contain;
- a custom birth certificate schema was defined by reusing a subset of relevant attributes from the original Annex 3.1 PID attributes;
- for the diploma use case, given the availability of a, VCDM version 1.1 compliant, JSON representation of the EDC application profile, its direct reuse was preferred.
Contents
1. PID schema
According to Annex 3.1, in addition to the specified four mandantory PID attributes (namely family_name, given_name, birth_date and age_over_18), PID providers shall include at least four of the optional six attributes specified in section 2.3.7 for purposes of facilitating identity matching. Given that in the PoC context, selective disclosure is not available, four optional attributes were customly selected, in accordance to the provisioned specifications, and included in the defined PoC schema as mandatory. The resulting schema is a minimal example implementation of the PID rulebook specifications and only meant for usage within the PoC context.
1.1 PID attributes
Table 1 below lists the PID schema attributes in relation to the credential subject and illustrates their correspondendences to the respective ARF's Annex 3.1 PID rulebook attributes.
Attribute | Definition | Range | Required | PID rulebook attribute |
---|---|---|---|---|
familyName | The current last name(s) or surname(s) of the PID user. | String | family_name | |
givenName | The current first name(s), including middle name(s), of the PID user. | String | given_name | |
dateOfBirth | Day, month, and year on which the PID user was born. | Date | birth_date | |
ageOver18 | Attesting whether the PID user is currently an adult (true) or a minor (false). | Boolean | age_over_18 | |
countryOfBirth | The country where the PID user was born. | ISO 3166-1 alpha-2 country code | birth_place | |
nationality | The nationality of the PID user. | ISO 3166-1 alpha-2 country code | birth_country | |
residentCountry | The country where the PID user currently resides. | ISO 3166-1 alpha-2 country code | resident_country | |
gender | The PID user's gender. | ISO/IEC 5218 | gender |
The full schema can be consulted below; given that define schema implements an minimal example of the PID rule book specifications, the type "ewPID" was used instead of the prescribed "eu.europa.ec.eudi.pid.1" one.
1.2 PID attributes example
An example of a conformant PID attestation is shown below.
2. Birth certificate schema
As afore-commented, in the absence of respective specifications in the ARF, a custom birth certificate schema was defined drawing upon the PID rulebook attributes.
2.1 Birth certificate attributes
Table 3 below lists the birth certificate schema attributes in relation to the credential subject.
Attribute | Definition | Range | Required | PID rulebook attribute |
---|---|---|---|---|
familyName | The current last name(s) or surname(s) of the PID user. | String | family_name | |
givenName | The current first name(s), including middle name(s), of the PID user. | String | given_name | |
familyNameAtBirth | The last name(s) or surname(s) of the PID user at the time of birth. | String | family_name_birth | |
givenNameAtBirth | The first name(s), including middle name(s), of the PID user at the time of birth. | String | given_name_birth | |
dateOfBirth | Day, month, and year on which the PID user was born. | Date | birth_date | |
countryOfBirth | The country where the PID user was born. | ISO 3166-1 alpha-2 country code | birth_place | |
stateOfBirth | The state, province, district or local area where the PID user was born. | String | birth_state | |
cityOfBirth | The municipality, city, town or village where the PID user was born. | String | birth_city | |
gender | The PID user's gender. | ISO/IEC 5218 | gender |
The full schema can be consulted below.
2.2 Birth certificate attributes example
An example of a conformant birth attestation is shown below.
3. Diploma schema
The JSON schema for qualifications is a translation of the ELM (version 3.2) EDC profile and can be found in the following locations:
- EBSI Gitlab repository: https://code.europa.eu/ebsi/json-schema/-/tree/main/schemas/vcdm1.1/europass/edc
- Trusted Schemas Registry: https://api-pilot.ebsi.eu/trusted-schemas-registry/v2/schemas/0x411a2c5880fe8bd97229546044f55b65846d272594511815cd5b89f000dc3da7
The original ELM EDC profile is defined in RDF & SHACL and can be found among others in the PO's ELM dedicated webpage: European Learning Model - EU Vocabularies - Publications Office of the EU (europa.eu)
3.1 Diploma attributes
For brevity, the tables below list only a subset of the JSON EDC attributes, namely those in accordance with the specifics of synergy 4.
Table 3.1 lists the pertinent credential subject attributes:
Attribute | Definition | Range | Required | Cardinality |
---|---|---|---|---|
familyName | The family name of the person. | LangString | - | 0..* |
givenName | The given name of the person. | LangString | - | 0..* |
hasClaim | A claim of the person. | Claim | - | 0..* |
Table 3.2 lists the Claim attributes:
Attribute | Definition | Range | Required | Cardinality |
---|---|---|---|---|
title | The title of the claim. One value per language is permitted. | LangString | 1..* | |
awardedBy | The awarding details of the claim. | AwardingProcess | 1..1 |
Table 3.3 lists the AwardingProcess attributes:
Attribute | Definition | Range | Required | Cardinality |
---|---|---|---|---|
awardingBody | The awarding body related to this awarding activity (i.e., the organisation that issues the qualification). Only in cases of co-awarding/co-graduation, where a qualification is issued to an individual by two or more organisations, the cardinality is greater than 1. | Organisation | 1..* | |
awardingDate | The date when the learning specification was awarded. If not specified it is undefined ('not known'). | Date | - | 0..1 |
Table 3.4 lists the pertinent Organisation attributes:
Attribute | Definition | Range | Required | Cardinality |
---|---|---|---|---|
legalName | The legal name of the organisation. | LangString | 1..* | |
location | The location of the organisation. | LangString | 1..* |
Table 3.5 lists the pertinent Location attributes:
Attribute | Definition | Range | Required | Cardinality |
---|---|---|---|---|
address | An address associated with the location. | Address | 1..* |
Table 3.6 lists the pertinent Address attributes:
Attribute | Definition | Range | Required | Cardinality |
---|---|---|---|---|
countryCode | The address' country code. It should be provided using the Country Named Authority List. | Controlled vocabulary | 1..1 |
3.2 Diploma attributes example
An example of a conformant diploma attestation is shown below.