id.sifa.profile.publication
Schema Diff
+16 -0
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
}