id.sifa.profile.publication

sifa.id

Schema Diff

+60 -0

From

CID
bafyreid7asec552...
Indexed At
2026-08-07 11:35 UTC
View this version

To

CID
bafyreiatll75zwi...
Indexed At
2026-09-05 13:21 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.publication:body.doi" }
  • AddedVertex AddedVertex { vertex_id: "id.sifa.profile.publication:body.type" }
  • AddedEdge AddedEdge { src: "id.sifa.profile.publication:body", tgt: "id.sifa.profile.publication:body.doi", kind: "prop", name: Some("doi") }
  • AddedEdge AddedEdge { src: "id.sifa.profile.publication:body", tgt: "id.sifa.profile.publication:body.type", kind: "prop", name: Some("type") }

Migration Guidance

Added Elements

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

Additional Notes

  • Non-breaking: AddedEdge { src: "id.sifa.profile.publication:body", tgt: "id.sifa.profile.publication:body.doi", kind: "prop", name: Some("doi") }
  • Non-breaking: AddedEdge { src: "id.sifa.profile.publication:body", tgt: "id.sifa.profile.publication:body.type", kind: "prop", name: Some("type") }
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 +
          "doi": {
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 +
            "maxGraphemes": 256,
62 +
            "maxLength": 2560,
63 +
            "type": "string",
64 +
            "x-skos:exactMatch": [
65 +
              "bibo:doi",
66 +
              "prism:doi"
67 +
            ],
68 +
            "x-skos:note": "schema:identifier with a PropertyValue of propertyID 'doi' is the JSON-LD serialization; bibo:doi is the direct term."
69 +
          },
59 70
          "publishedAt": {
60 71
            "description": "Publication date in YYYY-MM or YYYY-MM-DD format.",
61 72
            "type": "string",
62 73
            "x-skos:exactMatch": [
63 74
              "dcterms:issued",
64 75
              "schema:datePublished"
65 76
            ]
66 77
          },
67 78
          "publisher": {
68 79
            "description": "Publisher, journal, or venue name.",
69 80
            "maxGraphemes": 256,
70 81
            "maxLength": 2560,
71 82
            "type": "string",
72 83
            "x-skos:exactMatch": [
73 84
              "dcterms:publisher",
74 85
              "schema:publisher"
75 86
            ]
76 87
          },
77 88
          "sameAs": {
78 89
            "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.",
79 90
            "ref": "id.sifa.defs#externalRecordRef",
80 91
            "type": "ref"
81 92
          },
82 93
          "subtitle": {
83 94
            "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.",
84 95
            "maxGraphemes": 200,
85 96
            "maxLength": 2000,
86 97
            "type": "string",
87 98
            "x-skos:closeMatch": [
88 99
              "schema:alternativeHeadline"
89 100
            ]
90 101
          },
91 102
          "title": {
92 103
            "description": "Publication title.",
93 104
            "maxGraphemes": 200,
94 105
            "maxLength": 2000,
95 106
            "minLength": 1,
96 107
            "type": "string",
97 108
            "x-skos:exactMatch": [
98 109
              "dcterms:title",
99 110
              "schema:name"
100 111
            ]
101 112
          },
113 +
          "type": {
114 +
            "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 +
            "knownValues": [
116 +
              "journal-article",
117 +
              "conference-paper",
118 +
              "conference-abstract",
119 +
              "conference-poster",
120 +
              "book",
121 +
              "book-chapter",
122 +
              "book-review",
123 +
              "edited-book",
124 +
              "dissertation",
125 +
              "preprint",
126 +
              "dataset",
127 +
              "report",
128 +
              "review",
129 +
              "patent",
130 +
              "software",
131 +
              "working-paper",
132 +
              "artistic-performance",
133 +
              "lecture-speech",
134 +
              "online-resource",
135 +
              "newspaper-article",
136 +
              "research-technique",
137 +
              "standards-and-policy",
138 +
              "technical-standard",
139 +
              "registered-copyright",
140 +
              "translation",
141 +
              "dictionary-entry",
142 +
              "encyclopedia-entry",
143 +
              "supervised-student-publication",
144 +
              "annotation",
145 +
              "test",
146 +
              "spin-off-company",
147 +
              "disclosure",
148 +
              "license",
149 +
              "trademark",
150 +
              "design",
151 +
              "other"
152 +
            ],
153 +
            "maxGraphemes": 64,
154 +
            "maxLength": 640,
155 +
            "type": "string",
156 +
            "x-skos:closeMatch": [
157 +
              "dcterms:type",
158 +
              "schema:additionalType"
159 +
            ],
160 +
            "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 +
          },
102 162
          "url": {
103 163
            "description": "URL to the publication.",
104 164
            "format": "uri",
105 165
            "type": "string",
106 166
            "x-skos:exactMatch": [
107 167
              "bibo:uri",
108 168
              "schema:url"
109 169
            ]
110 170
          }
111 171
        },
112 172
        "required": [
113 173
          "title",
114 174
          "createdAt"
115 175
        ],
116 176
        "type": "object"
117 177
      },
118 178
      "type": "record",
119 179
      "x-skos:broadMatch": [
120 180
        "bibo:Document",
121 181
        "schema:CreativeWork"
122 182
      ],
123 183
      "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."
124 184
    }
125 185
  },
126 186
  "description": "A publication authored or co-authored by the user.",
127 187
  "id": "id.sifa.profile.publication",
128 188
  "lexicon": 1
129 189
}

Compare Other Versions

Lexicon Garden

@