id.sifa.profile.publication

sifa.id

Schema Diff

+16 -0

From

CID
bafyreiatll75zwi...
Indexed At
2026-09-05 13:21 UTC
View this version

To

CID
bafyreigjppx3brc...
Indexed At
2026-09-25 18:15 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 8 non-breaking changes.

Non-Breaking Changes (8)
  • AddedVertex AddedVertex { vertex_id: "id.sifa.defs#relatedIdentifier" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.profile.publication:body.isPrimary" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.profile.publication:body.relatedIdentifiers" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.profile.publication:body.relatedIdentifiers:items" }
  • AddedEdge AddedEdge { src: "id.sifa.profile.publication:body", tgt: "id.sifa.profile.publication:body.isPrimary", kind: "prop", name: Some("isPrimary") }
  • AddedEdge AddedEdge { src: "id.sifa.profile.publication:body", tgt: "id.sifa.profile.publication:body.relatedIdentifiers", kind: "prop", name: Some("relatedIdentifiers") }
  • AddedEdge AddedEdge { src: "id.sifa.profile.publication:body.relatedIdentifiers", tgt: "id.sifa.profile.publication:body.relatedIdentifiers:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "id.sifa.profile.publication:body.relatedIdentifiers:items", tgt: "id.sifa.defs#relatedIdentifier", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "id.sifa.defs#relatedIdentifier" }
  • AddedVertex { vertex_id: "id.sifa.profile.publication:body.isPrimary" }
  • AddedVertex { vertex_id: "id.sifa.profile.publication:body.relatedIdentifiers" }
  • AddedVertex { vertex_id: "id.sifa.profile.publication:body.relatedIdentifiers:items" }

Additional Notes

  • Non-breaking: AddedEdge { src: "id.sifa.profile.publication:body", tgt: "id.sifa.profile.publication:body.isPrimary", kind: "prop", name: Some("isPrimary") }
  • Non-breaking: AddedEdge { src: "id.sifa.profile.publication:body", tgt: "id.sifa.profile.publication:body.relatedIdentifiers", kind: "prop", name: Some("relatedIdentifiers") }
  • Non-breaking: AddedEdge { src: "id.sifa.profile.publication:body.relatedIdentifiers", tgt: "id.sifa.profile.publication:body.relatedIdentifiers:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "id.sifa.profile.publication:body.relatedIdentifiers:items", tgt: "id.sifa.defs#relatedIdentifier", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "author": {
5 5
      "description": "A co-author of the publication.",
6 6
      "properties": {
7 7
        "did": {
8 8
          "description": "Author's ATproto DID, if they have an account.",
9 9
          "format": "did",
10 10
          "type": "string"
11 11
        },
12 12
        "name": {
13 13
          "description": "Author's display name.",
14 14
          "maxGraphemes": 100,
15 15
          "maxLength": 1000,
16 16
          "minLength": 1,
17 17
          "type": "string"
18 18
        }
19 19
      },
20 20
      "required": [
21 21
        "name"
22 22
      ],
23 23
      "type": "object"
24 24
    },
25 25
    "main": {
26 26
      "description": "Record representing a single publication.",
27 27
      "key": "tid",
28 28
      "record": {
29 29
        "properties": {
30 30
          "authors": {
31 31
            "description": "Co-authors. The record owner is always an implicit author.",
32 32
            "items": {
33 33
              "ref": "#author",
34 34
              "type": "ref"
35 35
            },
36 36
            "maxLength": 50,
37 37
            "type": "array",
38 38
            "x-skos:exactMatch": [
39 39
              "bibo:authorList",
40 40
              "schema:author"
41 41
            ],
42 42
            "x-skos:note": "bibo:authorList is an ordered rdf:List and preserves author order, which schema:author does not guarantee."
43 43
          },
44 44
          "createdAt": {
45 45
            "description": "Client-declared timestamp when this record was originally created.",
46 46
            "format": "datetime",
47 47
            "type": "string"
48 48
          },
49 49
          "description": {
50 50
            "description": "Description or abstract.",
51 51
            "maxGraphemes": 5000,
52 52
            "maxLength": 50000,
53 53
            "type": "string",
54 54
            "x-skos:exactMatch": [
55 55
              "bibo:abstract",
56 56
              "schema:abstract"
57 57
            ]
58 58
          },
59 59
          "doi": {
60 60
            "description": "Digital Object Identifier, bare rather than as a URL: \"10.1234/example\", not \"https://doi.org/10.1234/example\". A DOI identifies the work itself, so it is what two records describing one publication can be matched on. Carrying it inside `url` makes it a link and stops it being an identifier.",
61 61
            "maxGraphemes": 256,
62 62
            "maxLength": 2560,
63 63
            "type": "string",
64 64
            "x-skos:exactMatch": [
65 65
              "bibo:doi",
66 66
              "prism:doi"
67 67
            ],
68 68
            "x-skos:note": "schema:identifier with a PropertyValue of propertyID 'doi' is the JSON-LD serialization; bibo:doi is the direct term."
69 69
          },
70 +
          "isPrimary": {
71 +
            "description": "Whether this is the user's primary publication, surfaced in profile Highlights. Any entry may be primary.",
72 +
            "type": "boolean"
73 +
          },
70 74
          "publishedAt": {
71 75
            "description": "Publication date in YYYY-MM or YYYY-MM-DD format.",
72 76
            "type": "string",
73 77
            "x-skos:exactMatch": [
74 78
              "dcterms:issued",
75 79
              "schema:datePublished"
76 80
            ]
77 81
          },
78 82
          "publisher": {
79 83
            "description": "Publisher, journal, or venue name.",
80 84
            "maxGraphemes": 256,
81 85
            "maxLength": 2560,
82 86
            "type": "string",
83 87
            "x-skos:exactMatch": [
84 88
              "dcterms:publisher",
85 89
              "schema:publisher"
86 90
            ]
87 91
          },
92 +
          "relatedIdentifiers": {
93 +
            "description": "Other versions or forms of this work, such as the published version of a preprint. A consumer can show linked versions as one publication.",
94 +
            "items": {
95 +
              "ref": "id.sifa.defs#relatedIdentifier",
96 +
              "type": "ref"
97 +
            },
98 +
            "maxLength": 20,
99 +
            "type": "array",
100 +
            "x-skos:closeMatch": [
101 +
              "dcterms:relation"
102 +
            ]
103 +
          },
88 104
          "sameAs": {
89 105
            "description": "The same publication as recorded on another person's profile. Set when you keep your own entry for work someone else has also recorded, so consumers can tell the two describe one thing rather than showing it twice. Each side stays its own record: the other person cannot edit yours, and yours does not change theirs. Resolve by AT-URI, since they will keep editing their copy.",
90 106
            "ref": "id.sifa.defs#externalRecordRef",
91 107
            "type": "ref"
92 108
          },
93 109
          "subtitle": {
94 110
            "description": "Publication subtitle. Carries the distinguishing part of a title that sources such as Crossref and ORCID store separately from the main title -- for example the volume/part designation and descriptive clause of a multi-part paper series (\"III. Using cluster masses to create a cleaned catalogue\"). Absent for publications with no subtitle.",
95 111
            "maxGraphemes": 200,
96 112
            "maxLength": 2000,
97 113
            "type": "string",
98 114
            "x-skos:closeMatch": [
99 115
              "schema:alternativeHeadline"
100 116
            ]
101 117
          },
102 118
          "title": {
103 119
            "description": "Publication title.",
104 120
            "maxGraphemes": 200,
105 121
            "maxLength": 2000,
106 122
            "minLength": 1,
107 123
            "type": "string",
108 124
            "x-skos:exactMatch": [
109 125
              "dcterms:title",
110 126
              "schema:name"
111 127
            ]
112 128
          },
113 129
          "type": {
114 130
            "description": "Resource type. Open set: the known values are ORCID's work-type vocabulary, which is what Sifa already ingests and stores unmapped, so a synced work round-trips without a translation table. A value outside the set is kept as written rather than rejected, because a publication that reached Sifa from somewhere other than ORCID need not fit ORCID's list.",
115 131
            "knownValues": [
116 132
              "journal-article",
117 133
              "conference-paper",
118 134
              "conference-abstract",
119 135
              "conference-poster",
120 136
              "book",
121 137
              "book-chapter",
122 138
              "book-review",
123 139
              "edited-book",
124 140
              "dissertation",
125 141
              "preprint",
126 142
              "dataset",
127 143
              "report",
128 144
              "review",
129 145
              "patent",
130 146
              "software",
131 147
              "working-paper",
132 148
              "artistic-performance",
133 149
              "lecture-speech",
134 150
              "online-resource",
135 151
              "newspaper-article",
136 152
              "research-technique",
137 153
              "standards-and-policy",
138 154
              "technical-standard",
139 155
              "registered-copyright",
140 156
              "translation",
141 157
              "dictionary-entry",
142 158
              "encyclopedia-entry",
143 159
              "supervised-student-publication",
144 160
              "annotation",
145 161
              "test",
146 162
              "spin-off-company",
147 163
              "disclosure",
148 164
              "license",
149 165
              "trademark",
150 166
              "design",
151 167
              "other"
152 168
            ],
153 169
            "maxGraphemes": 64,
154 170
            "maxLength": 640,
155 171
            "type": "string",
156 172
            "x-skos:closeMatch": [
157 173
              "dcterms:type",
158 174
              "schema:additionalType"
159 175
            ],
160 176
            "x-skos:note": "COAR Resource Types is the anchor a consumer should map to. The values here are ORCID's because that is the vocabulary the data arrives in; deviating from the id.sifa.defs token convention is deliberate, since the vocabulary is ORCID's rather than Sifa's."
161 177
          },
162 178
          "url": {
163 179
            "description": "URL to the publication.",
164 180
            "format": "uri",
165 181
            "type": "string",
166 182
            "x-skos:exactMatch": [
167 183
              "bibo:uri",
168 184
              "schema:url"
169 185
            ]
170 186
          }
171 187
        },
172 188
        "required": [
173 189
          "title",
174 190
          "createdAt"
175 191
        ],
176 192
        "type": "object"
177 193
      },
178 194
      "type": "record",
179 195
      "x-skos:broadMatch": [
180 196
        "bibo:Document",
181 197
        "schema:CreativeWork"
182 198
      ],
183 199
      "x-skos:note": "Refine to bibo:AcademicArticle, bibo:Book, bibo:Report or bibo:Thesis when a resource type is known. COAR is the value anchor."
184 200
    }
185 201
  },
186 202
  "description": "A publication authored or co-authored by the user.",
187 203
  "id": "id.sifa.profile.publication",
188 204
  "lexicon": 1
189 205
}

Compare Other Versions

Lexicon Garden

@