id.sifa.profile.education
Schema Diff
+5 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "id.sifa.defs#agentRef" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.education:body.agentRef" }
- AddedEdge AddedEdge { src: "id.sifa.profile.education:body", tgt: "id.sifa.profile.education:body.agentRef", kind: "prop", name: Some("agentRef") }
- AddedEdge AddedEdge { src: "id.sifa.profile.education:body.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "id.sifa.defs#agentRef" }AddedVertex { vertex_id: "id.sifa.profile.education:body.agentRef" }
Additional Notes
- Non-breaking: AddedEdge { src: "id.sifa.profile.education:body", tgt: "id.sifa.profile.education:body.agentRef", kind: "prop", name: Some("agentRef") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.education:body.agentRef", tgt: "id.sifa.defs#agentRef", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "Record representing a single education credential.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"activities": {
10
10
"description": "Activities, societies, and extracurriculars.",
11
11
"maxGraphemes": 1000,
12
12
"maxLength": 10000,
13
13
"type": "string"
14
14
},
15
+
"agentRef": {
16
+
"description": "The educational institution, as a single nested reference mirroring the flat institution / institutionDid / entityRef fields. Additive dual-write: the flat fields remain the source of truth for existing consumers.",
17
+
"ref": "id.sifa.defs#agentRef",
18
+
"type": "ref"
19
+
},
15
20
"createdAt": {
16
21
"description": "Client-declared timestamp when this record was originally created.",
17
22
"format": "datetime",
18
23
"type": "string"
19
24
},
20
25
"degree": {
21
26
"description": "Degree name (e.g., 'Bachelor of Science', 'Master of Arts').",
22
27
"maxGraphemes": 256,
23
28
"maxLength": 2560,
24
29
"type": "string",
25
30
"x-skos:closeMatch": [
26
31
"schema:hasCredential",
27
32
"bibo:degree"
28
33
]
29
34
},
30
35
"description": {
31
36
"description": "Additional description or notes about the education.",
32
37
"maxGraphemes": 5000,
33
38
"maxLength": 50000,
34
39
"type": "string"
35
40
},
36
41
"endedAt": {
37
42
"description": "End date (graduation or expected graduation) in YYYY-MM or YYYY-MM-DD format. Omit if currently enrolled.",
38
43
"type": "string"
39
44
},
40
45
"entityRef": {
41
46
"description": "Portable, app-neutral identifier for the educational institution the user selected from a resolver dropdown: a Wikidata Q-ID URI (http://www.wikidata.org/entity/Q...), a ROR URI, or an LEI URI. Enables deterministic resolution to a canonical entity even before the institution claims an ATproto account. Absent for free-text entries.",
42
47
"format": "uri",
43
48
"type": "string"
44
49
},
45
50
"fieldOfStudy": {
46
51
"description": "Field of study or major.",
47
52
"maxGraphemes": 256,
48
53
"maxLength": 2560,
49
54
"type": "string",
50
55
"x-skos:closeMatch": [
51
56
"schema:educationalCredentialAwarded"
52
57
],
53
58
"x-skos:note": "ISCED-F is the value anchor."
54
59
},
55
60
"grade": {
56
61
"description": "Grade, GPA, or classification achieved.",
57
62
"maxGraphemes": 50,
58
63
"maxLength": 500,
59
64
"type": "string"
60
65
},
61
66
"institution": {
62
67
"description": "Name of the educational institution.",
63
68
"maxGraphemes": 256,
64
69
"maxLength": 2560,
65
70
"minLength": 1,
66
71
"type": "string",
67
72
"x-skos:exactMatch": [
68
73
"schema:alumniOf"
69
74
]
70
75
},
71
76
"institutionDid": {
72
77
"description": "DID of the institution's ATproto account, if one exists.",
73
78
"format": "did",
74
79
"type": "string"
75
80
},
76
81
"isPrimary": {
77
82
"description": "Whether this is the user's primary education entry, surfaced in profile Highlights. Any entry may be primary.",
78
83
"type": "boolean"
79
84
},
80
85
"labels": {
81
86
"description": "Self-label values for this education record.",
82
87
"refs": [
83
88
"com.atproto.label.defs#selfLabels"
84
89
],
85
90
"type": "union"
86
91
},
87
92
"location": {
88
93
"description": "Institution location. Sifa enforces ISO 3166-1 alpha-2 country codes at the app layer.",
89
94
"ref": "community.lexicon.location.address",
90
95
"type": "ref"
91
96
},
92
97
"startedAt": {
93
98
"description": "Start date in YYYY-MM or YYYY-MM-DD format.",
94
99
"type": "string"
95
100
}
96
101
},
97
102
"required": [
98
103
"institution",
99
104
"createdAt"
100
105
],
101
106
"type": "object"
102
107
},
103
108
"type": "record",
104
109
"x-skos:closeMatch": [
105
110
"schema:EducationalOccupationalCredential"
106
111
],
107
112
"x-skos:note": "One record maps to two schema.org assertions: alumniOf for the institution and hasCredential for the degree."
108
113
}
109
114
},
110
115
"description": "An education entry in the user's professional profile.",
111
116
"id": "id.sifa.profile.education",
112
117
"lexicon": 1
113
118
}