id.sifa.profile.publication

sifa.id

Schema Diff

+4 -0

From

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

To

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

Compatibility Analysis

Backward Compatible

Backward compatible. 2 non-breaking changes.

Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "id.sifa.profile.publication:body.isPrimary" }
  • AddedEdge AddedEdge { src: "id.sifa.profile.publication:body", tgt: "id.sifa.profile.publication:body.isPrimary", kind: "prop", name: Some("isPrimary") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "id.sifa.profile.publication:body.isPrimary" }

Additional Notes

  • Non-breaking: AddedEdge { src: "id.sifa.profile.publication:body", tgt: "id.sifa.profile.publication:body.isPrimary", kind: "prop", name: Some("isPrimary") }
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
          },
88 92
          "sameAs": {
89 93
            "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 94
            "ref": "id.sifa.defs#externalRecordRef",
91 95
            "type": "ref"
92 96
          },
93 97
          "subtitle": {
94 98
            "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 99
            "maxGraphemes": 200,
96 100
            "maxLength": 2000,
97 101
            "type": "string",
98 102
            "x-skos:closeMatch": [
99 103
              "schema:alternativeHeadline"
100 104
            ]
101 105
          },
102 106
          "title": {
103 107
            "description": "Publication title.",
104 108
            "maxGraphemes": 200,
105 109
            "maxLength": 2000,
106 110
            "minLength": 1,
107 111
            "type": "string",
108 112
            "x-skos:exactMatch": [
109 113
              "dcterms:title",
110 114
              "schema:name"
111 115
            ]
112 116
          },
113 117
          "type": {
114 118
            "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 119
            "knownValues": [
116 120
              "journal-article",
117 121
              "conference-paper",
118 122
              "conference-abstract",
119 123
              "conference-poster",
120 124
              "book",
121 125
              "book-chapter",
122 126
              "book-review",
123 127
              "edited-book",
124 128
              "dissertation",
125 129
              "preprint",
126 130
              "dataset",
127 131
              "report",
128 132
              "review",
129 133
              "patent",
130 134
              "software",
131 135
              "working-paper",
132 136
              "artistic-performance",
133 137
              "lecture-speech",
134 138
              "online-resource",
135 139
              "newspaper-article",
136 140
              "research-technique",
137 141
              "standards-and-policy",
138 142
              "technical-standard",
139 143
              "registered-copyright",
140 144
              "translation",
141 145
              "dictionary-entry",
142 146
              "encyclopedia-entry",
143 147
              "supervised-student-publication",
144 148
              "annotation",
145 149
              "test",
146 150
              "spin-off-company",
147 151
              "disclosure",
148 152
              "license",
149 153
              "trademark",
150 154
              "design",
151 155
              "other"
152 156
            ],
153 157
            "maxGraphemes": 64,
154 158
            "maxLength": 640,
155 159
            "type": "string",
156 160
            "x-skos:closeMatch": [
157 161
              "dcterms:type",
158 162
              "schema:additionalType"
159 163
            ],
160 164
            "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 165
          },
162 166
          "url": {
163 167
            "description": "URL to the publication.",
164 168
            "format": "uri",
165 169
            "type": "string",
166 170
            "x-skos:exactMatch": [
167 171
              "bibo:uri",
168 172
              "schema:url"
169 173
            ]
170 174
          }
171 175
        },
172 176
        "required": [
173 177
          "title",
174 178
          "createdAt"
175 179
        ],
176 180
        "type": "object"
177 181
      },
178 182
      "type": "record",
179 183
      "x-skos:broadMatch": [
180 184
        "bibo:Document",
181 185
        "schema:CreativeWork"
182 186
      ],
183 187
      "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 188
    }
185 189
  },
186 190
  "description": "A publication authored or co-authored by the user.",
187 191
  "id": "id.sifa.profile.publication",
188 192
  "lexicon": 1
189 193
}

Compare Other Versions

Lexicon Garden

@