id.sifa.profile.presentation

sifa.id

Schema Diff

+48 -6

From

CID
bafyreiglzepn2ak...
Indexed At
2026-06-19 22:54 UTC
View this version

To

CID
bafyreidmupmz4ko...
Indexed At
2026-09-05 16:00 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@