id.sifa.profile.presentation
Schema Diff
+48 -6
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.presentation:body.coverImage" }
- AddedVertex AddedVertex { vertex_id: "id.sifa.profile.presentation:body.isPrimary" }
- AddedEdge AddedEdge { src: "id.sifa.profile.presentation:body", tgt: "id.sifa.profile.presentation:body.coverImage", kind: "prop", name: Some("coverImage") }
- AddedEdge AddedEdge { src: "id.sifa.profile.presentation:body", tgt: "id.sifa.profile.presentation:body.isPrimary", kind: "prop", name: Some("isPrimary") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "id.sifa.profile.presentation:body.coverImage" }AddedVertex { vertex_id: "id.sifa.profile.presentation:body.isPrimary" }
Additional Notes
- Non-breaking: AddedEdge { src: "id.sifa.profile.presentation:body", tgt: "id.sifa.profile.presentation:body.coverImage", kind: "prop", name: Some("coverImage") }
- Non-breaking: AddedEdge { src: "id.sifa.profile.presentation:body", tgt: "id.sifa.profile.presentation:body.isPrimary", kind: "prop", name: Some("isPrimary") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"duration": {
5
5
"description": "A presentation length in minutes: a fixed value (minMinutes only) or a range (minMinutes to maxMinutes).",
6
6
"properties": {
7
7
"maxMinutes": {
8
8
"description": "Upper bound in minutes when the length is offered as a range. Omit for a fixed length.",
9
9
"minimum": 1,
10
10
"type": "integer"
11
11
},
12
12
"minMinutes": {
13
13
"description": "Length in minutes, or the lower bound when the length is offered as a range.",
14
14
"minimum": 1,
15
15
"type": "integer"
16
16
}
17
17
},
18
18
"required": [
19
19
"minMinutes"
20
20
],
21
21
"type": "object"
22
22
},
23
23
"main": {
24
24
"description": "Record representing a single reusable presentation (the content), distinct from the occasions on which it is delivered.",
25
25
"key": "tid",
26
26
"record": {
27
27
"properties": {
28
+
"coverImage": {
29
+
"accept": [
30
+
"image/png",
31
+
"image/jpeg",
32
+
"image/webp"
33
+
],
34
+
"description": "Optional cover image for the presentation. Rendered as the talk-page hero and OpenGraph image. Max 2 MB, PNG, JPEG, or WebP.",
35
+
"maxSize": 2000000,
36
+
"type": "blob",
37
+
"x-skos:exactMatch": [
38
+
"schema:image",
39
+
"foaf:depiction"
40
+
]
41
+
},
28
42
"createdAt": {
29
43
"description": "Client-declared timestamp when this record was originally created.",
30
44
"format": "datetime",
31
45
"type": "string"
32
46
},
33
47
"description": {
34
48
"description": "Description or abstract of the presentation.",
35
49
"maxGraphemes": 5000,
36
50
"maxLength": 50000,
37
-
"type": "string"
51
+
"type": "string",
52
+
"x-skos:exactMatch": [
53
+
"bibo:abstract",
54
+
"schema:abstract"
55
+
]
38
56
},
39
57
"duration": {
40
58
"description": "Typical length of the presentation, a fixed value or a range, in minutes.",
41
59
"ref": "#duration",
42
-
"type": "ref"
60
+
"type": "ref",
61
+
"x-skos:narrowMatch": [
62
+
"schema:timeRequired"
63
+
],
64
+
"x-skos:note": "The lexicon models a range; schema:timeRequired is a single ISO 8601 duration."
43
65
},
44
66
"intendedAudiences": {
45
67
"description": "Intended audiences for this presentation, open text (e.g. 'Engineering leaders', 'Beginners').",
46
68
"items": {
47
69
"maxGraphemes": 100,
48
70
"maxLength": 1000,
49
71
"type": "string"
50
72
},
51
73
"maxLength": 20,
52
-
"type": "array"
74
+
"type": "array",
75
+
"x-skos:closeMatch": [
76
+
"schema:audience"
77
+
]
78
+
},
79
+
"isPrimary": {
80
+
"description": "Whether this is the user's primary talk, surfaced in profile Highlights. Only reusable talks (not one-off sessions) may be primary.",
81
+
"type": "boolean"
53
82
},
54
83
"links": {
55
84
"description": "Canonical links for this content, such as slides or a recording.",
56
85
"items": {
57
86
"ref": "id.sifa.defs#presentationLink",
58
87
"type": "ref"
59
88
},
60
89
"maxLength": 20,
61
90
"type": "array"
62
91
},
63
92
"title": {
64
93
"description": "Title of the presentation.",
65
94
"maxGraphemes": 300,
66
95
"maxLength": 3000,
67
96
"minLength": 1,
68
-
"type": "string"
97
+
"type": "string",
98
+
"x-skos:exactMatch": [
99
+
"dcterms:title",
100
+
"schema:name"
101
+
]
69
102
},
70
103
"writeupRef": {
71
104
"description": "Optional reference to a long-form write-up of this presentation (a pub.leaflet.document or site.standard.document holding video, transcript, or article).",
72
105
"ref": "id.sifa.defs#externalRecordRef",
73
-
"type": "ref"
106
+
"type": "ref",
107
+
"x-skos:closeMatch": [
108
+
"dcterms:isReferencedBy",
109
+
"schema:subjectOf"
110
+
]
74
111
}
75
112
},
76
113
"required": [
77
114
"title",
78
115
"createdAt"
79
116
],
80
117
"type": "object"
81
118
},
82
-
"type": "record"
119
+
"type": "record",
120
+
"x-skos:closeMatch": [
121
+
"bibo:Slideshow",
122
+
"schema:PresentationDigitalDocument"
123
+
],
124
+
"x-skos:note": "Neither term carries the \"reusable, deliverable more than once\" semantics of the Sifa record."
83
125
}
84
126
},
85
127
"description": "A reusable presentation: the content a person presents (a talk, workshop, poster, or demo), independent of any single occasion on which it is delivered. Delivered at one or more id.sifa.profile.presentationDelivery occasions.",
86
128
"id": "id.sifa.profile.presentation",
87
129
"lexicon": 1
88
130
}