cff 0.1.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGES.md +234 -0
- data/CITATION.cff +26 -0
- data/Gemfile +3 -1
- data/LICENCE +1 -1
- data/README.md +148 -17
- data/Rakefile +17 -12
- data/bin/console +4 -3
- data/cff.gemspec +43 -21
- data/lib/cff.rb +25 -9
- data/lib/cff/entity.rb +62 -7
- data/lib/cff/errors.rb +45 -0
- data/lib/cff/file.rb +140 -16
- data/lib/cff/formatter/apa_formatter.rb +77 -0
- data/lib/cff/formatter/bibtex_formatter.rb +122 -0
- data/lib/cff/formatter/formatter.rb +63 -0
- data/lib/cff/identifier.rb +71 -0
- data/lib/cff/licensable.rb +46 -0
- data/lib/cff/model.rb +222 -54
- data/lib/cff/model_part.rb +49 -0
- data/lib/cff/person.rb +51 -10
- data/lib/cff/reference.rb +541 -0
- data/lib/cff/util.rb +72 -0
- data/lib/cff/validatable.rb +55 -0
- data/lib/cff/version.rb +7 -4
- data/lib/schema/1.2.0.json +1882 -0
- metadata +127 -29
- data/.gitignore +0 -30
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/.travis.yml +0 -19
data/lib/cff/util.rb
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2018-2021 The Ruby Citation File Format Developers.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require 'rubygems'
|
18
|
+
|
19
|
+
##
|
20
|
+
module CFF
|
21
|
+
|
22
|
+
# Util provides utility methods useful throughout the rest of the CFF library.
|
23
|
+
#
|
24
|
+
# Util does not provide any methods or fields for the public API.
|
25
|
+
module Util
|
26
|
+
# :stopdoc:
|
27
|
+
|
28
|
+
def update_cff_version(version)
|
29
|
+
return '' if version.nil? || version.empty?
|
30
|
+
|
31
|
+
if Gem::Version.new(version) < Gem::Version.new(MIN_VALIDATABLE_VERSION)
|
32
|
+
MIN_VALIDATABLE_VERSION
|
33
|
+
else
|
34
|
+
version
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def method_to_field(name)
|
39
|
+
name.tr('_', '-')
|
40
|
+
end
|
41
|
+
|
42
|
+
def build_actor_collection!(source)
|
43
|
+
source.map! do |s|
|
44
|
+
s.has_key?('given-names') ? Person.new(s) : Entity.new(s)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def normalize_modelpart_array!(array)
|
49
|
+
array.select! { |i| i.respond_to?(:fields) }
|
50
|
+
end
|
51
|
+
|
52
|
+
def fields_to_hash(fields)
|
53
|
+
hash = {}
|
54
|
+
|
55
|
+
fields.each do |field, value|
|
56
|
+
if value.respond_to?(:map)
|
57
|
+
unless value.empty?
|
58
|
+
hash[field] = value.map do |v|
|
59
|
+
v.respond_to?(:fields) ? v.fields : v.to_s
|
60
|
+
end
|
61
|
+
end
|
62
|
+
else
|
63
|
+
hash[field] = value.respond_to?(:fields) ? value.fields : value
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
hash
|
68
|
+
end
|
69
|
+
|
70
|
+
# :startdoc:
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2018-2021 The Ruby Citation File Format Developers.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require 'json_schema'
|
18
|
+
|
19
|
+
##
|
20
|
+
module CFF
|
21
|
+
|
22
|
+
# Methods to validate CFF files/models against a formal schema.
|
23
|
+
module Validatable
|
24
|
+
|
25
|
+
# :nodoc:
|
26
|
+
SCHEMA = JsonSchema.parse!(SCHEMA_FILE)
|
27
|
+
|
28
|
+
# :call-seq:
|
29
|
+
# validate!(fail_fast: false)
|
30
|
+
#
|
31
|
+
# Validate a CFF file or model and raise a ValidationError upon failure.
|
32
|
+
# If an error is raised it will contain the detected validation failures
|
33
|
+
# for further inspection. Setting `fail_fast` to true will fail validation
|
34
|
+
# at the first detected failure, rather than gathering and returning all
|
35
|
+
# failures.
|
36
|
+
def validate!(fail_fast: false)
|
37
|
+
result = validate(fail_fast: fail_fast)
|
38
|
+
return if result[0]
|
39
|
+
|
40
|
+
raise ValidationError.new(result[1])
|
41
|
+
end
|
42
|
+
|
43
|
+
# :call-seq:
|
44
|
+
# validate(fail_fast: false) -> Array
|
45
|
+
#
|
46
|
+
# Validate a CFF file or model and return an array with the result. The
|
47
|
+
# result array is a two-element array, with `true`/`false` at index 0 to
|
48
|
+
# indicate pass/fail, and an array of errors at index 1 (if any).
|
49
|
+
# Setting `fail_fast` to true will fail validation at the first detected
|
50
|
+
# failure, rather than gathering and returning all failures.
|
51
|
+
def validate(fail_fast: false)
|
52
|
+
SCHEMA.validate(fields, fail_fast: fail_fast)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/lib/cff/version.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2018-2021 The Ruby Citation File Format Developers.
|
2
4
|
#
|
3
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
6
|
# you may not use this file except in compliance with the License.
|
@@ -12,9 +14,10 @@
|
|
12
14
|
# See the License for the specific language governing permissions and
|
13
15
|
# limitations under the License.
|
14
16
|
|
15
|
-
|
17
|
+
##
|
16
18
|
module CFF
|
17
19
|
# :nodoc:
|
18
|
-
VERSION =
|
19
|
-
DEFAULT_SPEC_VERSION =
|
20
|
+
VERSION = '0.8.0'
|
21
|
+
DEFAULT_SPEC_VERSION = '1.2.0'
|
22
|
+
MIN_VALIDATABLE_VERSION = '1.2.0'
|
20
23
|
end
|
@@ -0,0 +1,1882 @@
|
|
1
|
+
{
|
2
|
+
"$id": "https://citation-file-format.github.io/1.2.0/schema",
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
4
|
+
"additionalProperties": false,
|
5
|
+
"definitions": {
|
6
|
+
"address": {
|
7
|
+
"description": "An address.",
|
8
|
+
"minLength": 1,
|
9
|
+
"type": "string"
|
10
|
+
},
|
11
|
+
"alias": {
|
12
|
+
"description": "An alias.",
|
13
|
+
"minLength": 1,
|
14
|
+
"type": "string"
|
15
|
+
},
|
16
|
+
"city": {
|
17
|
+
"description": "A city",
|
18
|
+
"minLength": 1,
|
19
|
+
"type": "string"
|
20
|
+
},
|
21
|
+
"commit": {
|
22
|
+
"description": "The (e.g., Git) commit hash or (e.g., Subversion) revision number of the work.",
|
23
|
+
"minLength": 1,
|
24
|
+
"type": "string"
|
25
|
+
},
|
26
|
+
"country": {
|
27
|
+
"$comment": "ISO 3166-1 alpha-2 codes can be found at https://en.wikipedia.org/wiki/ISO_3166-1",
|
28
|
+
"description": "The ISO 3166-1 alpha-2 country code for a country.",
|
29
|
+
"enum": [
|
30
|
+
"AD",
|
31
|
+
"AE",
|
32
|
+
"AF",
|
33
|
+
"AG",
|
34
|
+
"AI",
|
35
|
+
"AL",
|
36
|
+
"AM",
|
37
|
+
"AO",
|
38
|
+
"AQ",
|
39
|
+
"AR",
|
40
|
+
"AS",
|
41
|
+
"AT",
|
42
|
+
"AU",
|
43
|
+
"AW",
|
44
|
+
"AX",
|
45
|
+
"AZ",
|
46
|
+
"BA",
|
47
|
+
"BB",
|
48
|
+
"BD",
|
49
|
+
"BE",
|
50
|
+
"BF",
|
51
|
+
"BG",
|
52
|
+
"BH",
|
53
|
+
"BI",
|
54
|
+
"BJ",
|
55
|
+
"BL",
|
56
|
+
"BM",
|
57
|
+
"BN",
|
58
|
+
"BO",
|
59
|
+
"BQ",
|
60
|
+
"BR",
|
61
|
+
"BS",
|
62
|
+
"BT",
|
63
|
+
"BV",
|
64
|
+
"BW",
|
65
|
+
"BY",
|
66
|
+
"BZ",
|
67
|
+
"CA",
|
68
|
+
"CC",
|
69
|
+
"CD",
|
70
|
+
"CF",
|
71
|
+
"CG",
|
72
|
+
"CH",
|
73
|
+
"CI",
|
74
|
+
"CK",
|
75
|
+
"CL",
|
76
|
+
"CM",
|
77
|
+
"CN",
|
78
|
+
"CO",
|
79
|
+
"CR",
|
80
|
+
"CU",
|
81
|
+
"CV",
|
82
|
+
"CW",
|
83
|
+
"CX",
|
84
|
+
"CY",
|
85
|
+
"CZ",
|
86
|
+
"DE",
|
87
|
+
"DJ",
|
88
|
+
"DK",
|
89
|
+
"DM",
|
90
|
+
"DO",
|
91
|
+
"DZ",
|
92
|
+
"EC",
|
93
|
+
"EE",
|
94
|
+
"EG",
|
95
|
+
"EH",
|
96
|
+
"ER",
|
97
|
+
"ES",
|
98
|
+
"ET",
|
99
|
+
"FI",
|
100
|
+
"FJ",
|
101
|
+
"FK",
|
102
|
+
"FM",
|
103
|
+
"FO",
|
104
|
+
"FR",
|
105
|
+
"GA",
|
106
|
+
"GB",
|
107
|
+
"GD",
|
108
|
+
"GE",
|
109
|
+
"GF",
|
110
|
+
"GG",
|
111
|
+
"GH",
|
112
|
+
"GI",
|
113
|
+
"GL",
|
114
|
+
"GM",
|
115
|
+
"GN",
|
116
|
+
"GP",
|
117
|
+
"GQ",
|
118
|
+
"GR",
|
119
|
+
"GS",
|
120
|
+
"GT",
|
121
|
+
"GU",
|
122
|
+
"GW",
|
123
|
+
"GY",
|
124
|
+
"HK",
|
125
|
+
"HM",
|
126
|
+
"HN",
|
127
|
+
"HR",
|
128
|
+
"HT",
|
129
|
+
"HU",
|
130
|
+
"ID",
|
131
|
+
"IE",
|
132
|
+
"IL",
|
133
|
+
"IM",
|
134
|
+
"IN",
|
135
|
+
"IO",
|
136
|
+
"IQ",
|
137
|
+
"IR",
|
138
|
+
"IS",
|
139
|
+
"IT",
|
140
|
+
"JE",
|
141
|
+
"JM",
|
142
|
+
"JO",
|
143
|
+
"JP",
|
144
|
+
"KE",
|
145
|
+
"KG",
|
146
|
+
"KH",
|
147
|
+
"KI",
|
148
|
+
"KM",
|
149
|
+
"KN",
|
150
|
+
"KP",
|
151
|
+
"KR",
|
152
|
+
"KW",
|
153
|
+
"KY",
|
154
|
+
"KZ",
|
155
|
+
"LA",
|
156
|
+
"LB",
|
157
|
+
"LC",
|
158
|
+
"LI",
|
159
|
+
"LK",
|
160
|
+
"LR",
|
161
|
+
"LS",
|
162
|
+
"LT",
|
163
|
+
"LU",
|
164
|
+
"LV",
|
165
|
+
"LY",
|
166
|
+
"MA",
|
167
|
+
"MC",
|
168
|
+
"MD",
|
169
|
+
"ME",
|
170
|
+
"MF",
|
171
|
+
"MG",
|
172
|
+
"MH",
|
173
|
+
"MK",
|
174
|
+
"ML",
|
175
|
+
"MM",
|
176
|
+
"MN",
|
177
|
+
"MO",
|
178
|
+
"MP",
|
179
|
+
"MQ",
|
180
|
+
"MR",
|
181
|
+
"MS",
|
182
|
+
"MT",
|
183
|
+
"MU",
|
184
|
+
"MV",
|
185
|
+
"MW",
|
186
|
+
"MX",
|
187
|
+
"MY",
|
188
|
+
"MZ",
|
189
|
+
"NA",
|
190
|
+
"NC",
|
191
|
+
"NE",
|
192
|
+
"NF",
|
193
|
+
"NG",
|
194
|
+
"NI",
|
195
|
+
"NL",
|
196
|
+
"NO",
|
197
|
+
"NP",
|
198
|
+
"NR",
|
199
|
+
"NU",
|
200
|
+
"NZ",
|
201
|
+
"OM",
|
202
|
+
"PA",
|
203
|
+
"PE",
|
204
|
+
"PF",
|
205
|
+
"PG",
|
206
|
+
"PH",
|
207
|
+
"PK",
|
208
|
+
"PL",
|
209
|
+
"PM",
|
210
|
+
"PN",
|
211
|
+
"PR",
|
212
|
+
"PS",
|
213
|
+
"PT",
|
214
|
+
"PW",
|
215
|
+
"PY",
|
216
|
+
"QA",
|
217
|
+
"RE",
|
218
|
+
"RO",
|
219
|
+
"RS",
|
220
|
+
"RU",
|
221
|
+
"RW",
|
222
|
+
"SA",
|
223
|
+
"SB",
|
224
|
+
"SC",
|
225
|
+
"SD",
|
226
|
+
"SE",
|
227
|
+
"SG",
|
228
|
+
"SH",
|
229
|
+
"SI",
|
230
|
+
"SJ",
|
231
|
+
"SK",
|
232
|
+
"SL",
|
233
|
+
"SM",
|
234
|
+
"SN",
|
235
|
+
"SO",
|
236
|
+
"SR",
|
237
|
+
"SS",
|
238
|
+
"ST",
|
239
|
+
"SV",
|
240
|
+
"SX",
|
241
|
+
"SY",
|
242
|
+
"SZ",
|
243
|
+
"TC",
|
244
|
+
"TD",
|
245
|
+
"TF",
|
246
|
+
"TG",
|
247
|
+
"TH",
|
248
|
+
"TJ",
|
249
|
+
"TK",
|
250
|
+
"TL",
|
251
|
+
"TM",
|
252
|
+
"TN",
|
253
|
+
"TO",
|
254
|
+
"TR",
|
255
|
+
"TT",
|
256
|
+
"TV",
|
257
|
+
"TW",
|
258
|
+
"TZ",
|
259
|
+
"UA",
|
260
|
+
"UG",
|
261
|
+
"UM",
|
262
|
+
"US",
|
263
|
+
"UY",
|
264
|
+
"UZ",
|
265
|
+
"VA",
|
266
|
+
"VC",
|
267
|
+
"VE",
|
268
|
+
"VG",
|
269
|
+
"VI",
|
270
|
+
"VN",
|
271
|
+
"VU",
|
272
|
+
"WF",
|
273
|
+
"WS",
|
274
|
+
"YE",
|
275
|
+
"YT",
|
276
|
+
"ZA",
|
277
|
+
"ZM",
|
278
|
+
"ZW"
|
279
|
+
],
|
280
|
+
"type": "string"
|
281
|
+
},
|
282
|
+
"date": {
|
283
|
+
"$comment": "Note to tool implementers: it is necessary to cast YAML 'date' objects to string objects when validating against this schema.",
|
284
|
+
"examples": [
|
285
|
+
"1900-01-01",
|
286
|
+
"2020-12-31"
|
287
|
+
],
|
288
|
+
"format": "date",
|
289
|
+
"pattern": "^[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
|
290
|
+
"type": "string"
|
291
|
+
},
|
292
|
+
"doi": {
|
293
|
+
"description": "The DOI of the work (i.e., 10.5281/zenodo.1003150, not the resolver URL http://doi.org/10.5281/zenodo.1003150).",
|
294
|
+
"examples": [
|
295
|
+
"10.5281/zenodo.1003150"
|
296
|
+
],
|
297
|
+
"pattern": "^10\\.\\d{4,9}(\\.\\d+)?/[A-Za-z0-9:/_;\\-\\.\\(\\)\\[\\]\\\\]+$",
|
298
|
+
"type": "string"
|
299
|
+
},
|
300
|
+
"email": {
|
301
|
+
"description": "An email address.",
|
302
|
+
"pattern": "^[\\S]+@[\\S]+\\.[\\S]{2,}$",
|
303
|
+
"type": "string"
|
304
|
+
},
|
305
|
+
"entity": {
|
306
|
+
"additionalProperties": false,
|
307
|
+
"description": "An entity, i.e., an institution, team, research group, company, conference, etc., as opposed to a single natural person.",
|
308
|
+
"properties": {
|
309
|
+
"address": {
|
310
|
+
"$ref": "#/definitions/address",
|
311
|
+
"description": "The entity's address."
|
312
|
+
},
|
313
|
+
"alias": {
|
314
|
+
"$ref": "#/definitions/alias",
|
315
|
+
"description": "The entity's alias."
|
316
|
+
},
|
317
|
+
"city": {
|
318
|
+
"$ref": "#/definitions/city",
|
319
|
+
"description": "The entity's city."
|
320
|
+
},
|
321
|
+
"country": {
|
322
|
+
"$ref": "#/definitions/country",
|
323
|
+
"description": "The entity's country."
|
324
|
+
},
|
325
|
+
"date-end": {
|
326
|
+
"$ref": "#/definitions/date",
|
327
|
+
"description": "The entity's ending date, e.g., when the entity is a conference."
|
328
|
+
},
|
329
|
+
"date-start": {
|
330
|
+
"$ref": "#/definitions/date",
|
331
|
+
"description": "The entity's starting date, e.g., when the entity is a conference."
|
332
|
+
},
|
333
|
+
"email": {
|
334
|
+
"$ref": "#/definitions/email",
|
335
|
+
"description": "The entity's email address."
|
336
|
+
},
|
337
|
+
"fax": {
|
338
|
+
"$ref": "#/definitions/fax",
|
339
|
+
"description": "The entity's fax number."
|
340
|
+
},
|
341
|
+
"location": {
|
342
|
+
"description": "The entity's location, e.g., when the entity is a conference.",
|
343
|
+
"minLength": 1,
|
344
|
+
"type": "string"
|
345
|
+
},
|
346
|
+
"name": {
|
347
|
+
"description": "The entity's name.",
|
348
|
+
"minLength": 1,
|
349
|
+
"type": "string"
|
350
|
+
},
|
351
|
+
"orcid": {
|
352
|
+
"$ref": "#/definitions/orcid",
|
353
|
+
"description": "The entity's orcid."
|
354
|
+
},
|
355
|
+
"post-code": {
|
356
|
+
"$ref": "#/definitions/post-code",
|
357
|
+
"description": "The entity's post code."
|
358
|
+
},
|
359
|
+
"region": {
|
360
|
+
"$ref": "#/definitions/region",
|
361
|
+
"description": "The entity's region."
|
362
|
+
},
|
363
|
+
"tel": {
|
364
|
+
"$ref": "#/definitions/tel",
|
365
|
+
"description": "The entity's telephone number."
|
366
|
+
},
|
367
|
+
"website": {
|
368
|
+
"$ref": "#/definitions/url",
|
369
|
+
"description": "The entity's website."
|
370
|
+
}
|
371
|
+
},
|
372
|
+
"required": [
|
373
|
+
"name"
|
374
|
+
],
|
375
|
+
"type": "object"
|
376
|
+
},
|
377
|
+
"fax": {
|
378
|
+
"description": "A fax number.",
|
379
|
+
"minLength": 1,
|
380
|
+
"type": "string"
|
381
|
+
},
|
382
|
+
"identifier": {
|
383
|
+
"anyOf": [
|
384
|
+
{
|
385
|
+
"additionalProperties": false,
|
386
|
+
"properties": {
|
387
|
+
"description": {
|
388
|
+
"$ref": "#/definitions/identifier-description"
|
389
|
+
},
|
390
|
+
"type": {
|
391
|
+
"enum": [
|
392
|
+
"doi"
|
393
|
+
],
|
394
|
+
"type": "string"
|
395
|
+
},
|
396
|
+
"value": {
|
397
|
+
"$ref": "#/definitions/doi"
|
398
|
+
}
|
399
|
+
},
|
400
|
+
"required": [
|
401
|
+
"type",
|
402
|
+
"value"
|
403
|
+
],
|
404
|
+
"type": "object"
|
405
|
+
},
|
406
|
+
{
|
407
|
+
"additionalProperties": false,
|
408
|
+
"properties": {
|
409
|
+
"description": {
|
410
|
+
"$ref": "#/definitions/identifier-description"
|
411
|
+
},
|
412
|
+
"type": {
|
413
|
+
"enum": [
|
414
|
+
"url"
|
415
|
+
],
|
416
|
+
"type": "string"
|
417
|
+
},
|
418
|
+
"value": {
|
419
|
+
"$ref": "#/definitions/url"
|
420
|
+
}
|
421
|
+
},
|
422
|
+
"required": [
|
423
|
+
"type",
|
424
|
+
"value"
|
425
|
+
],
|
426
|
+
"type": "object"
|
427
|
+
},
|
428
|
+
{
|
429
|
+
"additionalProperties": false,
|
430
|
+
"properties": {
|
431
|
+
"description": {
|
432
|
+
"$ref": "#/definitions/identifier-description"
|
433
|
+
},
|
434
|
+
"type": {
|
435
|
+
"enum": [
|
436
|
+
"swh"
|
437
|
+
],
|
438
|
+
"type": "string"
|
439
|
+
},
|
440
|
+
"value": {
|
441
|
+
"$ref": "#/definitions/swh-identifier"
|
442
|
+
}
|
443
|
+
},
|
444
|
+
"required": [
|
445
|
+
"type",
|
446
|
+
"value"
|
447
|
+
],
|
448
|
+
"type": "object"
|
449
|
+
},
|
450
|
+
{
|
451
|
+
"additionalProperties": false,
|
452
|
+
"properties": {
|
453
|
+
"description": {
|
454
|
+
"$ref": "#/definitions/identifier-description"
|
455
|
+
},
|
456
|
+
"type": {
|
457
|
+
"enum": [
|
458
|
+
"other"
|
459
|
+
],
|
460
|
+
"type": "string"
|
461
|
+
},
|
462
|
+
"value": {
|
463
|
+
"minLength": 1,
|
464
|
+
"type": "string"
|
465
|
+
}
|
466
|
+
},
|
467
|
+
"required": [
|
468
|
+
"type",
|
469
|
+
"value"
|
470
|
+
],
|
471
|
+
"type": "object"
|
472
|
+
}
|
473
|
+
],
|
474
|
+
"description": "An identifier for a work."
|
475
|
+
},
|
476
|
+
"identifier-description": {
|
477
|
+
"description": "A description for a specific identifier value.",
|
478
|
+
"examples": [
|
479
|
+
"The version DOI for this version, which has a relation childOf with the concept DOI specified in the doi field in the root of this file.",
|
480
|
+
"The identifier provided by Archival Repository, which points to this version of the software."
|
481
|
+
],
|
482
|
+
"minLength": 1,
|
483
|
+
"type": "string"
|
484
|
+
},
|
485
|
+
"license": {
|
486
|
+
"description": "An SPDX license identifier.",
|
487
|
+
"oneOf": [
|
488
|
+
{
|
489
|
+
"$ref": "#/definitions/license-enum",
|
490
|
+
"examples": [
|
491
|
+
"Apache-2.0",
|
492
|
+
"MIT"
|
493
|
+
]
|
494
|
+
},
|
495
|
+
{
|
496
|
+
"$comment": "When there are multiple licenses, it is assumed their relationship is OR, not AND",
|
497
|
+
"examples": [
|
498
|
+
[
|
499
|
+
"Apache-2.0",
|
500
|
+
"MIT"
|
501
|
+
],
|
502
|
+
[
|
503
|
+
"GPL-3.0",
|
504
|
+
"GPL-3.0-or-later"
|
505
|
+
]
|
506
|
+
],
|
507
|
+
"items": {
|
508
|
+
"$ref": "#/definitions/license-enum"
|
509
|
+
},
|
510
|
+
"minItems": 1,
|
511
|
+
"type": "array",
|
512
|
+
"uniqueItems": true
|
513
|
+
}
|
514
|
+
]
|
515
|
+
},
|
516
|
+
"license-enum": {
|
517
|
+
"$comment": "Use https://github.com/citation-file-format/get-spdx-licenses to update this enum in the future",
|
518
|
+
"description": "SPDX license list; releaseDate=2021-05-14; source=https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json",
|
519
|
+
"enum": [
|
520
|
+
"0BSD",
|
521
|
+
"AAL",
|
522
|
+
"Abstyles",
|
523
|
+
"Adobe-2006",
|
524
|
+
"Adobe-Glyph",
|
525
|
+
"ADSL",
|
526
|
+
"AFL-1.1",
|
527
|
+
"AFL-1.2",
|
528
|
+
"AFL-2.0",
|
529
|
+
"AFL-2.1",
|
530
|
+
"AFL-3.0",
|
531
|
+
"Afmparse",
|
532
|
+
"AGPL-1.0",
|
533
|
+
"AGPL-1.0-only",
|
534
|
+
"AGPL-1.0-or-later",
|
535
|
+
"AGPL-3.0",
|
536
|
+
"AGPL-3.0-only",
|
537
|
+
"AGPL-3.0-or-later",
|
538
|
+
"Aladdin",
|
539
|
+
"AMDPLPA",
|
540
|
+
"AML",
|
541
|
+
"AMPAS",
|
542
|
+
"ANTLR-PD",
|
543
|
+
"ANTLR-PD-fallback",
|
544
|
+
"Apache-1.0",
|
545
|
+
"Apache-1.1",
|
546
|
+
"Apache-2.0",
|
547
|
+
"APAFML",
|
548
|
+
"APL-1.0",
|
549
|
+
"APSL-1.0",
|
550
|
+
"APSL-1.1",
|
551
|
+
"APSL-1.2",
|
552
|
+
"APSL-2.0",
|
553
|
+
"Artistic-1.0",
|
554
|
+
"Artistic-1.0-cl8",
|
555
|
+
"Artistic-1.0-Perl",
|
556
|
+
"Artistic-2.0",
|
557
|
+
"Bahyph",
|
558
|
+
"Barr",
|
559
|
+
"Beerware",
|
560
|
+
"BitTorrent-1.0",
|
561
|
+
"BitTorrent-1.1",
|
562
|
+
"blessing",
|
563
|
+
"BlueOak-1.0.0",
|
564
|
+
"Borceux",
|
565
|
+
"BSD-1-Clause",
|
566
|
+
"BSD-2-Clause",
|
567
|
+
"BSD-2-Clause-FreeBSD",
|
568
|
+
"BSD-2-Clause-NetBSD",
|
569
|
+
"BSD-2-Clause-Patent",
|
570
|
+
"BSD-2-Clause-Views",
|
571
|
+
"BSD-3-Clause",
|
572
|
+
"BSD-3-Clause-Attribution",
|
573
|
+
"BSD-3-Clause-Clear",
|
574
|
+
"BSD-3-Clause-LBNL",
|
575
|
+
"BSD-3-Clause-Modification",
|
576
|
+
"BSD-3-Clause-No-Nuclear-License",
|
577
|
+
"BSD-3-Clause-No-Nuclear-License-2014",
|
578
|
+
"BSD-3-Clause-No-Nuclear-Warranty",
|
579
|
+
"BSD-3-Clause-Open-MPI",
|
580
|
+
"BSD-4-Clause",
|
581
|
+
"BSD-4-Clause-Shortened",
|
582
|
+
"BSD-4-Clause-UC",
|
583
|
+
"BSD-Protection",
|
584
|
+
"BSD-Source-Code",
|
585
|
+
"BSL-1.0",
|
586
|
+
"BUSL-1.1",
|
587
|
+
"bzip2-1.0.5",
|
588
|
+
"bzip2-1.0.6",
|
589
|
+
"C-UDA-1.0",
|
590
|
+
"CAL-1.0",
|
591
|
+
"CAL-1.0-Combined-Work-Exception",
|
592
|
+
"Caldera",
|
593
|
+
"CATOSL-1.1",
|
594
|
+
"CC-BY-1.0",
|
595
|
+
"CC-BY-2.0",
|
596
|
+
"CC-BY-2.5",
|
597
|
+
"CC-BY-3.0",
|
598
|
+
"CC-BY-3.0-AT",
|
599
|
+
"CC-BY-3.0-US",
|
600
|
+
"CC-BY-4.0",
|
601
|
+
"CC-BY-NC-1.0",
|
602
|
+
"CC-BY-NC-2.0",
|
603
|
+
"CC-BY-NC-2.5",
|
604
|
+
"CC-BY-NC-3.0",
|
605
|
+
"CC-BY-NC-4.0",
|
606
|
+
"CC-BY-NC-ND-1.0",
|
607
|
+
"CC-BY-NC-ND-2.0",
|
608
|
+
"CC-BY-NC-ND-2.5",
|
609
|
+
"CC-BY-NC-ND-3.0",
|
610
|
+
"CC-BY-NC-ND-3.0-IGO",
|
611
|
+
"CC-BY-NC-ND-4.0",
|
612
|
+
"CC-BY-NC-SA-1.0",
|
613
|
+
"CC-BY-NC-SA-2.0",
|
614
|
+
"CC-BY-NC-SA-2.5",
|
615
|
+
"CC-BY-NC-SA-3.0",
|
616
|
+
"CC-BY-NC-SA-4.0",
|
617
|
+
"CC-BY-ND-1.0",
|
618
|
+
"CC-BY-ND-2.0",
|
619
|
+
"CC-BY-ND-2.5",
|
620
|
+
"CC-BY-ND-3.0",
|
621
|
+
"CC-BY-ND-4.0",
|
622
|
+
"CC-BY-SA-1.0",
|
623
|
+
"CC-BY-SA-2.0",
|
624
|
+
"CC-BY-SA-2.0-UK",
|
625
|
+
"CC-BY-SA-2.1-JP",
|
626
|
+
"CC-BY-SA-2.5",
|
627
|
+
"CC-BY-SA-3.0",
|
628
|
+
"CC-BY-SA-3.0-AT",
|
629
|
+
"CC-BY-SA-4.0",
|
630
|
+
"CC-PDDC",
|
631
|
+
"CC0-1.0",
|
632
|
+
"CDDL-1.0",
|
633
|
+
"CDDL-1.1",
|
634
|
+
"CDL-1.0",
|
635
|
+
"CDLA-Permissive-1.0",
|
636
|
+
"CDLA-Sharing-1.0",
|
637
|
+
"CECILL-1.0",
|
638
|
+
"CECILL-1.1",
|
639
|
+
"CECILL-2.0",
|
640
|
+
"CECILL-2.1",
|
641
|
+
"CECILL-B",
|
642
|
+
"CECILL-C",
|
643
|
+
"CERN-OHL-1.1",
|
644
|
+
"CERN-OHL-1.2",
|
645
|
+
"CERN-OHL-P-2.0",
|
646
|
+
"CERN-OHL-S-2.0",
|
647
|
+
"CERN-OHL-W-2.0",
|
648
|
+
"ClArtistic",
|
649
|
+
"CNRI-Jython",
|
650
|
+
"CNRI-Python",
|
651
|
+
"CNRI-Python-GPL-Compatible",
|
652
|
+
"Condor-1.1",
|
653
|
+
"copyleft-next-0.3.0",
|
654
|
+
"copyleft-next-0.3.1",
|
655
|
+
"CPAL-1.0",
|
656
|
+
"CPL-1.0",
|
657
|
+
"CPOL-1.02",
|
658
|
+
"Crossword",
|
659
|
+
"CrystalStacker",
|
660
|
+
"CUA-OPL-1.0",
|
661
|
+
"Cube",
|
662
|
+
"curl",
|
663
|
+
"D-FSL-1.0",
|
664
|
+
"diffmark",
|
665
|
+
"DOC",
|
666
|
+
"Dotseqn",
|
667
|
+
"DRL-1.0",
|
668
|
+
"DSDP",
|
669
|
+
"dvipdfm",
|
670
|
+
"ECL-1.0",
|
671
|
+
"ECL-2.0",
|
672
|
+
"eCos-2.0",
|
673
|
+
"EFL-1.0",
|
674
|
+
"EFL-2.0",
|
675
|
+
"eGenix",
|
676
|
+
"Entessa",
|
677
|
+
"EPICS",
|
678
|
+
"EPL-1.0",
|
679
|
+
"EPL-2.0",
|
680
|
+
"ErlPL-1.1",
|
681
|
+
"etalab-2.0",
|
682
|
+
"EUDatagrid",
|
683
|
+
"EUPL-1.0",
|
684
|
+
"EUPL-1.1",
|
685
|
+
"EUPL-1.2",
|
686
|
+
"Eurosym",
|
687
|
+
"Fair",
|
688
|
+
"Frameworx-1.0",
|
689
|
+
"FreeBSD-DOC",
|
690
|
+
"FreeImage",
|
691
|
+
"FSFAP",
|
692
|
+
"FSFUL",
|
693
|
+
"FSFULLR",
|
694
|
+
"FTL",
|
695
|
+
"GD",
|
696
|
+
"GFDL-1.1",
|
697
|
+
"GFDL-1.1-invariants-only",
|
698
|
+
"GFDL-1.1-invariants-or-later",
|
699
|
+
"GFDL-1.1-no-invariants-only",
|
700
|
+
"GFDL-1.1-no-invariants-or-later",
|
701
|
+
"GFDL-1.1-only",
|
702
|
+
"GFDL-1.1-or-later",
|
703
|
+
"GFDL-1.2",
|
704
|
+
"GFDL-1.2-invariants-only",
|
705
|
+
"GFDL-1.2-invariants-or-later",
|
706
|
+
"GFDL-1.2-no-invariants-only",
|
707
|
+
"GFDL-1.2-no-invariants-or-later",
|
708
|
+
"GFDL-1.2-only",
|
709
|
+
"GFDL-1.2-or-later",
|
710
|
+
"GFDL-1.3",
|
711
|
+
"GFDL-1.3-invariants-only",
|
712
|
+
"GFDL-1.3-invariants-or-later",
|
713
|
+
"GFDL-1.3-no-invariants-only",
|
714
|
+
"GFDL-1.3-no-invariants-or-later",
|
715
|
+
"GFDL-1.3-only",
|
716
|
+
"GFDL-1.3-or-later",
|
717
|
+
"Giftware",
|
718
|
+
"GL2PS",
|
719
|
+
"Glide",
|
720
|
+
"Glulxe",
|
721
|
+
"GLWTPL",
|
722
|
+
"gnuplot",
|
723
|
+
"GPL-1.0",
|
724
|
+
"GPL-1.0-only",
|
725
|
+
"GPL-1.0-or-later",
|
726
|
+
"GPL-1.0+",
|
727
|
+
"GPL-2.0",
|
728
|
+
"GPL-2.0-only",
|
729
|
+
"GPL-2.0-or-later",
|
730
|
+
"GPL-2.0-with-autoconf-exception",
|
731
|
+
"GPL-2.0-with-bison-exception",
|
732
|
+
"GPL-2.0-with-classpath-exception",
|
733
|
+
"GPL-2.0-with-font-exception",
|
734
|
+
"GPL-2.0-with-GCC-exception",
|
735
|
+
"GPL-2.0+",
|
736
|
+
"GPL-3.0",
|
737
|
+
"GPL-3.0-only",
|
738
|
+
"GPL-3.0-or-later",
|
739
|
+
"GPL-3.0-with-autoconf-exception",
|
740
|
+
"GPL-3.0-with-GCC-exception",
|
741
|
+
"GPL-3.0+",
|
742
|
+
"gSOAP-1.3b",
|
743
|
+
"HaskellReport",
|
744
|
+
"Hippocratic-2.1",
|
745
|
+
"HPND",
|
746
|
+
"HPND-sell-variant",
|
747
|
+
"HTMLTIDY",
|
748
|
+
"IBM-pibs",
|
749
|
+
"ICU",
|
750
|
+
"IJG",
|
751
|
+
"ImageMagick",
|
752
|
+
"iMatix",
|
753
|
+
"Imlib2",
|
754
|
+
"Info-ZIP",
|
755
|
+
"Intel",
|
756
|
+
"Intel-ACPI",
|
757
|
+
"Interbase-1.0",
|
758
|
+
"IPA",
|
759
|
+
"IPL-1.0",
|
760
|
+
"ISC",
|
761
|
+
"JasPer-2.0",
|
762
|
+
"JPNIC",
|
763
|
+
"JSON",
|
764
|
+
"LAL-1.2",
|
765
|
+
"LAL-1.3",
|
766
|
+
"Latex2e",
|
767
|
+
"Leptonica",
|
768
|
+
"LGPL-2.0",
|
769
|
+
"LGPL-2.0-only",
|
770
|
+
"LGPL-2.0-or-later",
|
771
|
+
"LGPL-2.0+",
|
772
|
+
"LGPL-2.1",
|
773
|
+
"LGPL-2.1-only",
|
774
|
+
"LGPL-2.1-or-later",
|
775
|
+
"LGPL-2.1+",
|
776
|
+
"LGPL-3.0",
|
777
|
+
"LGPL-3.0-only",
|
778
|
+
"LGPL-3.0-or-later",
|
779
|
+
"LGPL-3.0+",
|
780
|
+
"LGPLLR",
|
781
|
+
"Libpng",
|
782
|
+
"libpng-2.0",
|
783
|
+
"libselinux-1.0",
|
784
|
+
"libtiff",
|
785
|
+
"LiLiQ-P-1.1",
|
786
|
+
"LiLiQ-R-1.1",
|
787
|
+
"LiLiQ-Rplus-1.1",
|
788
|
+
"Linux-OpenIB",
|
789
|
+
"LPL-1.0",
|
790
|
+
"LPL-1.02",
|
791
|
+
"LPPL-1.0",
|
792
|
+
"LPPL-1.1",
|
793
|
+
"LPPL-1.2",
|
794
|
+
"LPPL-1.3a",
|
795
|
+
"LPPL-1.3c",
|
796
|
+
"MakeIndex",
|
797
|
+
"MirOS",
|
798
|
+
"MIT",
|
799
|
+
"MIT-0",
|
800
|
+
"MIT-advertising",
|
801
|
+
"MIT-CMU",
|
802
|
+
"MIT-enna",
|
803
|
+
"MIT-feh",
|
804
|
+
"MIT-Modern-Variant",
|
805
|
+
"MIT-open-group",
|
806
|
+
"MITNFA",
|
807
|
+
"Motosoto",
|
808
|
+
"mpich2",
|
809
|
+
"MPL-1.0",
|
810
|
+
"MPL-1.1",
|
811
|
+
"MPL-2.0",
|
812
|
+
"MPL-2.0-no-copyleft-exception",
|
813
|
+
"MS-PL",
|
814
|
+
"MS-RL",
|
815
|
+
"MTLL",
|
816
|
+
"MulanPSL-1.0",
|
817
|
+
"MulanPSL-2.0",
|
818
|
+
"Multics",
|
819
|
+
"Mup",
|
820
|
+
"NAIST-2003",
|
821
|
+
"NASA-1.3",
|
822
|
+
"Naumen",
|
823
|
+
"NBPL-1.0",
|
824
|
+
"NCGL-UK-2.0",
|
825
|
+
"NCSA",
|
826
|
+
"Net-SNMP",
|
827
|
+
"NetCDF",
|
828
|
+
"Newsletr",
|
829
|
+
"NGPL",
|
830
|
+
"NIST-PD",
|
831
|
+
"NIST-PD-fallback",
|
832
|
+
"NLOD-1.0",
|
833
|
+
"NLPL",
|
834
|
+
"Nokia",
|
835
|
+
"NOSL",
|
836
|
+
"Noweb",
|
837
|
+
"NPL-1.0",
|
838
|
+
"NPL-1.1",
|
839
|
+
"NPOSL-3.0",
|
840
|
+
"NRL",
|
841
|
+
"NTP",
|
842
|
+
"NTP-0",
|
843
|
+
"Nunit",
|
844
|
+
"O-UDA-1.0",
|
845
|
+
"OCCT-PL",
|
846
|
+
"OCLC-2.0",
|
847
|
+
"ODbL-1.0",
|
848
|
+
"ODC-By-1.0",
|
849
|
+
"OFL-1.0",
|
850
|
+
"OFL-1.0-no-RFN",
|
851
|
+
"OFL-1.0-RFN",
|
852
|
+
"OFL-1.1",
|
853
|
+
"OFL-1.1-no-RFN",
|
854
|
+
"OFL-1.1-RFN",
|
855
|
+
"OGC-1.0",
|
856
|
+
"OGDL-Taiwan-1.0",
|
857
|
+
"OGL-Canada-2.0",
|
858
|
+
"OGL-UK-1.0",
|
859
|
+
"OGL-UK-2.0",
|
860
|
+
"OGL-UK-3.0",
|
861
|
+
"OGTSL",
|
862
|
+
"OLDAP-1.1",
|
863
|
+
"OLDAP-1.2",
|
864
|
+
"OLDAP-1.3",
|
865
|
+
"OLDAP-1.4",
|
866
|
+
"OLDAP-2.0",
|
867
|
+
"OLDAP-2.0.1",
|
868
|
+
"OLDAP-2.1",
|
869
|
+
"OLDAP-2.2",
|
870
|
+
"OLDAP-2.2.1",
|
871
|
+
"OLDAP-2.2.2",
|
872
|
+
"OLDAP-2.3",
|
873
|
+
"OLDAP-2.4",
|
874
|
+
"OLDAP-2.5",
|
875
|
+
"OLDAP-2.6",
|
876
|
+
"OLDAP-2.7",
|
877
|
+
"OLDAP-2.8",
|
878
|
+
"OML",
|
879
|
+
"OpenSSL",
|
880
|
+
"OPL-1.0",
|
881
|
+
"OSET-PL-2.1",
|
882
|
+
"OSL-1.0",
|
883
|
+
"OSL-1.1",
|
884
|
+
"OSL-2.0",
|
885
|
+
"OSL-2.1",
|
886
|
+
"OSL-3.0",
|
887
|
+
"Parity-6.0.0",
|
888
|
+
"Parity-7.0.0",
|
889
|
+
"PDDL-1.0",
|
890
|
+
"PHP-3.0",
|
891
|
+
"PHP-3.01",
|
892
|
+
"Plexus",
|
893
|
+
"PolyForm-Noncommercial-1.0.0",
|
894
|
+
"PolyForm-Small-Business-1.0.0",
|
895
|
+
"PostgreSQL",
|
896
|
+
"PSF-2.0",
|
897
|
+
"psfrag",
|
898
|
+
"psutils",
|
899
|
+
"Python-2.0",
|
900
|
+
"Qhull",
|
901
|
+
"QPL-1.0",
|
902
|
+
"Rdisc",
|
903
|
+
"RHeCos-1.1",
|
904
|
+
"RPL-1.1",
|
905
|
+
"RPL-1.5",
|
906
|
+
"RPSL-1.0",
|
907
|
+
"RSA-MD",
|
908
|
+
"RSCPL",
|
909
|
+
"Ruby",
|
910
|
+
"SAX-PD",
|
911
|
+
"Saxpath",
|
912
|
+
"SCEA",
|
913
|
+
"Sendmail",
|
914
|
+
"Sendmail-8.23",
|
915
|
+
"SGI-B-1.0",
|
916
|
+
"SGI-B-1.1",
|
917
|
+
"SGI-B-2.0",
|
918
|
+
"SHL-0.5",
|
919
|
+
"SHL-0.51",
|
920
|
+
"SimPL-2.0",
|
921
|
+
"SISSL",
|
922
|
+
"SISSL-1.2",
|
923
|
+
"Sleepycat",
|
924
|
+
"SMLNJ",
|
925
|
+
"SMPPL",
|
926
|
+
"SNIA",
|
927
|
+
"Spencer-86",
|
928
|
+
"Spencer-94",
|
929
|
+
"Spencer-99",
|
930
|
+
"SPL-1.0",
|
931
|
+
"SSH-OpenSSH",
|
932
|
+
"SSH-short",
|
933
|
+
"SSPL-1.0",
|
934
|
+
"StandardML-NJ",
|
935
|
+
"SugarCRM-1.1.3",
|
936
|
+
"SWL",
|
937
|
+
"TAPR-OHL-1.0",
|
938
|
+
"TCL",
|
939
|
+
"TCP-wrappers",
|
940
|
+
"TMate",
|
941
|
+
"TORQUE-1.1",
|
942
|
+
"TOSL",
|
943
|
+
"TU-Berlin-1.0",
|
944
|
+
"TU-Berlin-2.0",
|
945
|
+
"UCL-1.0",
|
946
|
+
"Unicode-DFS-2015",
|
947
|
+
"Unicode-DFS-2016",
|
948
|
+
"Unicode-TOU",
|
949
|
+
"Unlicense",
|
950
|
+
"UPL-1.0",
|
951
|
+
"Vim",
|
952
|
+
"VOSTROM",
|
953
|
+
"VSL-1.0",
|
954
|
+
"W3C",
|
955
|
+
"W3C-19980720",
|
956
|
+
"W3C-20150513",
|
957
|
+
"Watcom-1.0",
|
958
|
+
"Wsuipa",
|
959
|
+
"WTFPL",
|
960
|
+
"wxWindows",
|
961
|
+
"X11",
|
962
|
+
"Xerox",
|
963
|
+
"XFree86-1.1",
|
964
|
+
"xinetd",
|
965
|
+
"Xnet",
|
966
|
+
"xpp",
|
967
|
+
"XSkat",
|
968
|
+
"YPL-1.0",
|
969
|
+
"YPL-1.1",
|
970
|
+
"Zed",
|
971
|
+
"Zend-2.0",
|
972
|
+
"Zimbra-1.3",
|
973
|
+
"Zimbra-1.4",
|
974
|
+
"Zlib",
|
975
|
+
"zlib-acknowledgement",
|
976
|
+
"ZPL-1.1",
|
977
|
+
"ZPL-2.0",
|
978
|
+
"ZPL-2.1"
|
979
|
+
],
|
980
|
+
"type": "string"
|
981
|
+
},
|
982
|
+
"orcid": {
|
983
|
+
"description": "Identifier for an author, see https://orcid.org.",
|
984
|
+
"format": "uri",
|
985
|
+
"pattern": "https://orcid\\.org/[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]{1}",
|
986
|
+
"type": "string"
|
987
|
+
},
|
988
|
+
"person": {
|
989
|
+
"additionalProperties": false,
|
990
|
+
"description": "A person.",
|
991
|
+
"properties": {
|
992
|
+
"address": {
|
993
|
+
"$ref": "#/definitions/address",
|
994
|
+
"description": "The person's address."
|
995
|
+
},
|
996
|
+
"affiliation": {
|
997
|
+
"description": "The person's affilitation.",
|
998
|
+
"minLength": 1,
|
999
|
+
"type": "string"
|
1000
|
+
},
|
1001
|
+
"alias": {
|
1002
|
+
"$ref": "#/definitions/alias",
|
1003
|
+
"description": "The person's alias."
|
1004
|
+
},
|
1005
|
+
"city": {
|
1006
|
+
"$ref": "#/definitions/city",
|
1007
|
+
"description": "The person's city."
|
1008
|
+
},
|
1009
|
+
"country": {
|
1010
|
+
"$ref": "#/definitions/country",
|
1011
|
+
"description": "The person's country."
|
1012
|
+
},
|
1013
|
+
"email": {
|
1014
|
+
"$ref": "#/definitions/email",
|
1015
|
+
"description": "The person's email address."
|
1016
|
+
},
|
1017
|
+
"family-names": {
|
1018
|
+
"description": "The person's family names.",
|
1019
|
+
"minLength": 1,
|
1020
|
+
"type": "string"
|
1021
|
+
},
|
1022
|
+
"fax": {
|
1023
|
+
"$ref": "#/definitions/fax",
|
1024
|
+
"description": "The person's fax number."
|
1025
|
+
},
|
1026
|
+
"given-names": {
|
1027
|
+
"description": "The person's given names.",
|
1028
|
+
"minLength": 1,
|
1029
|
+
"type": "string"
|
1030
|
+
},
|
1031
|
+
"name-particle": {
|
1032
|
+
"description": "The person's name particle, e.g., a nobiliary particle or a preposition meaning 'of' or 'from' (for example 'von' in 'Alexander von Humboldt').",
|
1033
|
+
"examples": [
|
1034
|
+
"von"
|
1035
|
+
],
|
1036
|
+
"minLength": 1,
|
1037
|
+
"type": "string"
|
1038
|
+
},
|
1039
|
+
"name-suffix": {
|
1040
|
+
"description": "The person's name-suffix, e.g. 'Jr.' for Sammy Davis Jr. or 'III' for Frank Edwin Wright III.",
|
1041
|
+
"examples": [
|
1042
|
+
"Jr.",
|
1043
|
+
"III"
|
1044
|
+
],
|
1045
|
+
"minLength": 1,
|
1046
|
+
"type": "string"
|
1047
|
+
},
|
1048
|
+
"orcid": {
|
1049
|
+
"$ref": "#/definitions/orcid",
|
1050
|
+
"description": "The person's ORCID."
|
1051
|
+
},
|
1052
|
+
"post-code": {
|
1053
|
+
"$ref": "#/definitions/post-code",
|
1054
|
+
"description": "The person's post-code."
|
1055
|
+
},
|
1056
|
+
"region": {
|
1057
|
+
"$ref": "#/definitions/region",
|
1058
|
+
"description": "The person's region."
|
1059
|
+
},
|
1060
|
+
"tel": {
|
1061
|
+
"$ref": "#/definitions/tel",
|
1062
|
+
"description": "The person's phone number."
|
1063
|
+
},
|
1064
|
+
"website": {
|
1065
|
+
"$ref": "#/definitions/url",
|
1066
|
+
"description": "The person's website."
|
1067
|
+
}
|
1068
|
+
},
|
1069
|
+
"type": "object"
|
1070
|
+
},
|
1071
|
+
"post-code": {
|
1072
|
+
"anyOf": [
|
1073
|
+
{
|
1074
|
+
"minLength": 1,
|
1075
|
+
"type": "string"
|
1076
|
+
},
|
1077
|
+
{
|
1078
|
+
"type": "number"
|
1079
|
+
}
|
1080
|
+
],
|
1081
|
+
"description": "A post code."
|
1082
|
+
},
|
1083
|
+
"reference": {
|
1084
|
+
"additionalProperties": false,
|
1085
|
+
"description": "A reference to a work.",
|
1086
|
+
"properties": {
|
1087
|
+
"abbreviation": {
|
1088
|
+
"description": "The abbreviation of a work.",
|
1089
|
+
"minLength": 1,
|
1090
|
+
"type": "string"
|
1091
|
+
},
|
1092
|
+
"abstract": {
|
1093
|
+
"description": "The abstract of a work.",
|
1094
|
+
"minLength": 1,
|
1095
|
+
"type": "string"
|
1096
|
+
},
|
1097
|
+
"authors": {
|
1098
|
+
"description": "The author(s) of a work.",
|
1099
|
+
"items": {
|
1100
|
+
"anyOf": [
|
1101
|
+
{
|
1102
|
+
"$ref": "#/definitions/person"
|
1103
|
+
},
|
1104
|
+
{
|
1105
|
+
"$ref": "#/definitions/entity"
|
1106
|
+
}
|
1107
|
+
]
|
1108
|
+
},
|
1109
|
+
"minItems": 1,
|
1110
|
+
"type": "array",
|
1111
|
+
"uniqueItems": true
|
1112
|
+
},
|
1113
|
+
"collection-doi": {
|
1114
|
+
"$ref": "#/definitions/doi",
|
1115
|
+
"description": "The DOI of a collection containing the work."
|
1116
|
+
},
|
1117
|
+
"collection-title": {
|
1118
|
+
"description": "The title of a collection or proceedings.",
|
1119
|
+
"minLength": 1,
|
1120
|
+
"type": "string"
|
1121
|
+
},
|
1122
|
+
"collection-type": {
|
1123
|
+
"description": "The type of a collection.",
|
1124
|
+
"minLength": 1,
|
1125
|
+
"type": "string"
|
1126
|
+
},
|
1127
|
+
"commit": {
|
1128
|
+
"$ref": "#/definitions/commit"
|
1129
|
+
},
|
1130
|
+
"conference": {
|
1131
|
+
"$ref": "#/definitions/entity",
|
1132
|
+
"description": "The conference where the work was presented."
|
1133
|
+
},
|
1134
|
+
"contact": {
|
1135
|
+
"description": "The contact person, group, company, etc. for a work.",
|
1136
|
+
"items": {
|
1137
|
+
"anyOf": [
|
1138
|
+
{
|
1139
|
+
"$ref": "#/definitions/person"
|
1140
|
+
},
|
1141
|
+
{
|
1142
|
+
"$ref": "#/definitions/entity"
|
1143
|
+
}
|
1144
|
+
]
|
1145
|
+
},
|
1146
|
+
"minItems": 1,
|
1147
|
+
"type": "array",
|
1148
|
+
"uniqueItems": true
|
1149
|
+
},
|
1150
|
+
"copyright": {
|
1151
|
+
"description": "The copyright information pertaining to the work.",
|
1152
|
+
"minLength": 1,
|
1153
|
+
"type": "string"
|
1154
|
+
},
|
1155
|
+
"data-type": {
|
1156
|
+
"description": "The data type of a data set.",
|
1157
|
+
"minLength": 1,
|
1158
|
+
"type": "string"
|
1159
|
+
},
|
1160
|
+
"database": {
|
1161
|
+
"description": "The name of the database where a work was accessed/is stored.",
|
1162
|
+
"minLength": 1,
|
1163
|
+
"type": "string"
|
1164
|
+
},
|
1165
|
+
"database-provider": {
|
1166
|
+
"$ref": "#/definitions/entity",
|
1167
|
+
"description": "The provider of the database where a work was accessed/is stored."
|
1168
|
+
},
|
1169
|
+
"date-accessed": {
|
1170
|
+
"$ref": "#/definitions/date",
|
1171
|
+
"description": "The date the work was accessed."
|
1172
|
+
},
|
1173
|
+
"date-downloaded": {
|
1174
|
+
"$ref": "#/definitions/date",
|
1175
|
+
"description": "The date the work has been downloaded."
|
1176
|
+
},
|
1177
|
+
"date-published": {
|
1178
|
+
"$ref": "#/definitions/date",
|
1179
|
+
"description": "The date the work has been published."
|
1180
|
+
},
|
1181
|
+
"date-released": {
|
1182
|
+
"$ref": "#/definitions/date",
|
1183
|
+
"description": "The date the work has been released."
|
1184
|
+
},
|
1185
|
+
"department": {
|
1186
|
+
"description": "The department where a work has been produced.",
|
1187
|
+
"minLength": 1,
|
1188
|
+
"type": "string"
|
1189
|
+
},
|
1190
|
+
"doi": {
|
1191
|
+
"$ref": "#/definitions/doi",
|
1192
|
+
"description": "The DOI of the work."
|
1193
|
+
},
|
1194
|
+
"edition": {
|
1195
|
+
"description": "The edition of the work.",
|
1196
|
+
"minLength": 1,
|
1197
|
+
"type": "string"
|
1198
|
+
},
|
1199
|
+
"editors": {
|
1200
|
+
"description": "The editor(s) of a work.",
|
1201
|
+
"items": {
|
1202
|
+
"anyOf": [
|
1203
|
+
{
|
1204
|
+
"$ref": "#/definitions/person"
|
1205
|
+
},
|
1206
|
+
{
|
1207
|
+
"$ref": "#/definitions/entity"
|
1208
|
+
}
|
1209
|
+
]
|
1210
|
+
},
|
1211
|
+
"minItems": 1,
|
1212
|
+
"type": "array",
|
1213
|
+
"uniqueItems": true
|
1214
|
+
},
|
1215
|
+
"editors-series": {
|
1216
|
+
"description": "The editor(s) of a series in which a work has been published.",
|
1217
|
+
"items": {
|
1218
|
+
"anyOf": [
|
1219
|
+
{
|
1220
|
+
"$ref": "#/definitions/person"
|
1221
|
+
},
|
1222
|
+
{
|
1223
|
+
"$ref": "#/definitions/entity"
|
1224
|
+
}
|
1225
|
+
]
|
1226
|
+
},
|
1227
|
+
"minItems": 1,
|
1228
|
+
"type": "array",
|
1229
|
+
"uniqueItems": true
|
1230
|
+
},
|
1231
|
+
"end": {
|
1232
|
+
"anyOf": [
|
1233
|
+
{
|
1234
|
+
"type": "integer"
|
1235
|
+
},
|
1236
|
+
{
|
1237
|
+
"minLength": 1,
|
1238
|
+
"type": "string"
|
1239
|
+
}
|
1240
|
+
],
|
1241
|
+
"description": "The end page of the work."
|
1242
|
+
},
|
1243
|
+
"entry": {
|
1244
|
+
"description": "An entry in the collection that constitutes the work.",
|
1245
|
+
"minLength": 1,
|
1246
|
+
"type": "string"
|
1247
|
+
},
|
1248
|
+
"filename": {
|
1249
|
+
"description": "The name of the electronic file containing the work.",
|
1250
|
+
"minLength": 1,
|
1251
|
+
"type": "string"
|
1252
|
+
},
|
1253
|
+
"format": {
|
1254
|
+
"description": "The format in which a work is represented.",
|
1255
|
+
"minLength": 1,
|
1256
|
+
"type": "string"
|
1257
|
+
},
|
1258
|
+
"identifiers": {
|
1259
|
+
"description": "The identifier(s) of the work.",
|
1260
|
+
"items": {
|
1261
|
+
"$ref": "#/definitions/identifier"
|
1262
|
+
},
|
1263
|
+
"minItems": 1,
|
1264
|
+
"type": "array",
|
1265
|
+
"uniqueItems": true
|
1266
|
+
},
|
1267
|
+
"institution": {
|
1268
|
+
"$ref": "#/definitions/entity",
|
1269
|
+
"description": "The institution where a work has been produced or published."
|
1270
|
+
},
|
1271
|
+
"isbn": {
|
1272
|
+
"description": "The ISBN of the work.",
|
1273
|
+
"pattern": "^[0-9\\- ]{10,17}X?$",
|
1274
|
+
"type": "string"
|
1275
|
+
},
|
1276
|
+
"issn": {
|
1277
|
+
"description": "The ISSN of the work.",
|
1278
|
+
"pattern": "^\\d{4}-\\d{3}[\\dxX]$",
|
1279
|
+
"type": "string"
|
1280
|
+
},
|
1281
|
+
"issue": {
|
1282
|
+
"anyOf": [
|
1283
|
+
{
|
1284
|
+
"minLength": 1,
|
1285
|
+
"type": "string"
|
1286
|
+
},
|
1287
|
+
{
|
1288
|
+
"type": "number"
|
1289
|
+
}
|
1290
|
+
],
|
1291
|
+
"description": "The issue of a periodical in which a work appeared."
|
1292
|
+
},
|
1293
|
+
"issue-date": {
|
1294
|
+
"description": "The publication date of the issue of a periodical in which a work appeared.",
|
1295
|
+
"minLength": 1,
|
1296
|
+
"type": "string"
|
1297
|
+
},
|
1298
|
+
"issue-title": {
|
1299
|
+
"description": "The name of the issue of a periodical in which the work appeared.",
|
1300
|
+
"minLength": 1,
|
1301
|
+
"type": "string"
|
1302
|
+
},
|
1303
|
+
"journal": {
|
1304
|
+
"description": "The name of the journal/magazine/newspaper/periodical where the work was published.",
|
1305
|
+
"minLength": 1,
|
1306
|
+
"type": "string"
|
1307
|
+
},
|
1308
|
+
"keywords": {
|
1309
|
+
"description": "Keywords pertaining to the work.",
|
1310
|
+
"items": {
|
1311
|
+
"minLength": 1,
|
1312
|
+
"type": "string"
|
1313
|
+
},
|
1314
|
+
"minItems": 1,
|
1315
|
+
"type": "array",
|
1316
|
+
"uniqueItems": true
|
1317
|
+
},
|
1318
|
+
"languages": {
|
1319
|
+
"description": "The language identifier(s) of the work according to ISO 639 language strings.",
|
1320
|
+
"items": {
|
1321
|
+
"maxLength": 3,
|
1322
|
+
"minLength": 2,
|
1323
|
+
"pattern": "^[a-z]{2,3}$",
|
1324
|
+
"type": "string"
|
1325
|
+
},
|
1326
|
+
"minItems": 1,
|
1327
|
+
"type": "array",
|
1328
|
+
"uniqueItems": true
|
1329
|
+
},
|
1330
|
+
"license": {
|
1331
|
+
"$ref": "#/definitions/license"
|
1332
|
+
},
|
1333
|
+
"license-url": {
|
1334
|
+
"$ref": "#/definitions/url",
|
1335
|
+
"description": "The URL of the license text under which the work is licensed (only for non-standard licenses not included in the SPDX License List)."
|
1336
|
+
},
|
1337
|
+
"loc-end": {
|
1338
|
+
"anyOf": [
|
1339
|
+
{
|
1340
|
+
"type": "integer"
|
1341
|
+
},
|
1342
|
+
{
|
1343
|
+
"minLength": 1,
|
1344
|
+
"type": "string"
|
1345
|
+
}
|
1346
|
+
],
|
1347
|
+
"description": "The line of code in the file where the work ends."
|
1348
|
+
},
|
1349
|
+
"loc-start": {
|
1350
|
+
"anyOf": [
|
1351
|
+
{
|
1352
|
+
"type": "integer"
|
1353
|
+
},
|
1354
|
+
{
|
1355
|
+
"minLength": 1,
|
1356
|
+
"type": "string"
|
1357
|
+
}
|
1358
|
+
],
|
1359
|
+
"description": "The line of code in the file where the work starts."
|
1360
|
+
},
|
1361
|
+
"location": {
|
1362
|
+
"$ref": "#/definitions/entity",
|
1363
|
+
"description": "The location of the work."
|
1364
|
+
},
|
1365
|
+
"medium": {
|
1366
|
+
"description": "The medium of the work.",
|
1367
|
+
"minLength": 1,
|
1368
|
+
"type": "string"
|
1369
|
+
},
|
1370
|
+
"month": {
|
1371
|
+
"anyOf": [
|
1372
|
+
{
|
1373
|
+
"maximum": 12,
|
1374
|
+
"minimum": 1,
|
1375
|
+
"type": "integer"
|
1376
|
+
},
|
1377
|
+
{
|
1378
|
+
"enum": [
|
1379
|
+
"1",
|
1380
|
+
"2",
|
1381
|
+
"3",
|
1382
|
+
"4",
|
1383
|
+
"5",
|
1384
|
+
"6",
|
1385
|
+
"7",
|
1386
|
+
"8",
|
1387
|
+
"9",
|
1388
|
+
"10",
|
1389
|
+
"11",
|
1390
|
+
"12"
|
1391
|
+
],
|
1392
|
+
"type": "string"
|
1393
|
+
}
|
1394
|
+
],
|
1395
|
+
"description": "The month in which a work has been published."
|
1396
|
+
},
|
1397
|
+
"nihmsid": {
|
1398
|
+
"description": "The NIHMSID of a work.",
|
1399
|
+
"minLength": 1,
|
1400
|
+
"type": "string"
|
1401
|
+
},
|
1402
|
+
"notes": {
|
1403
|
+
"description": "Notes pertaining to the work.",
|
1404
|
+
"minLength": 1,
|
1405
|
+
"type": "string"
|
1406
|
+
},
|
1407
|
+
"number": {
|
1408
|
+
"anyOf": [
|
1409
|
+
{
|
1410
|
+
"minLength": 1,
|
1411
|
+
"type": "string"
|
1412
|
+
},
|
1413
|
+
{
|
1414
|
+
"type": "number"
|
1415
|
+
}
|
1416
|
+
],
|
1417
|
+
"description": "The accession number for a work."
|
1418
|
+
},
|
1419
|
+
"number-volumes": {
|
1420
|
+
"anyOf": [
|
1421
|
+
{
|
1422
|
+
"type": "integer"
|
1423
|
+
},
|
1424
|
+
{
|
1425
|
+
"minLength": 1,
|
1426
|
+
"type": "string"
|
1427
|
+
}
|
1428
|
+
],
|
1429
|
+
"description": "The number of volumes making up the collection in which the work has been published."
|
1430
|
+
},
|
1431
|
+
"pages": {
|
1432
|
+
"anyOf": [
|
1433
|
+
{
|
1434
|
+
"type": "integer"
|
1435
|
+
},
|
1436
|
+
{
|
1437
|
+
"minLength": 1,
|
1438
|
+
"type": "string"
|
1439
|
+
}
|
1440
|
+
],
|
1441
|
+
"description": "The number of pages of the work."
|
1442
|
+
},
|
1443
|
+
"patent-states": {
|
1444
|
+
"description": "The states for which a patent is granted.",
|
1445
|
+
"items": {
|
1446
|
+
"minLength": 1,
|
1447
|
+
"type": "string"
|
1448
|
+
},
|
1449
|
+
"minItems": 1,
|
1450
|
+
"type": "array",
|
1451
|
+
"uniqueItems": true
|
1452
|
+
},
|
1453
|
+
"pmcid": {
|
1454
|
+
"description": "The PMCID of a work.",
|
1455
|
+
"pattern": "^PMC[0-9]{7}$",
|
1456
|
+
"type": "string"
|
1457
|
+
},
|
1458
|
+
"publisher": {
|
1459
|
+
"$ref": "#/definitions/entity",
|
1460
|
+
"description": "The publisher who has published the work."
|
1461
|
+
},
|
1462
|
+
"recipients": {
|
1463
|
+
"description": "The recipient(s) of a personal communication.",
|
1464
|
+
"items": {
|
1465
|
+
"anyOf": [
|
1466
|
+
{
|
1467
|
+
"$ref": "#/definitions/entity"
|
1468
|
+
},
|
1469
|
+
{
|
1470
|
+
"$ref": "#/definitions/person"
|
1471
|
+
}
|
1472
|
+
]
|
1473
|
+
},
|
1474
|
+
"minItems": 1,
|
1475
|
+
"type": "array",
|
1476
|
+
"uniqueItems": true
|
1477
|
+
},
|
1478
|
+
"repository": {
|
1479
|
+
"$ref": "#/definitions/url",
|
1480
|
+
"description": "The URL of the work in a repository (when the repository is neither a source code repository nor a build artifact repository)."
|
1481
|
+
},
|
1482
|
+
"repository-artifact": {
|
1483
|
+
"$ref": "#/definitions/url",
|
1484
|
+
"description": "The URL of the work in a build artifact/binary repository."
|
1485
|
+
},
|
1486
|
+
"repository-code": {
|
1487
|
+
"$ref": "#/definitions/url",
|
1488
|
+
"description": "The URL of the work in a source code repository."
|
1489
|
+
},
|
1490
|
+
"scope": {
|
1491
|
+
"description": "The scope of the reference, e.g., the section of the work it adheres to.",
|
1492
|
+
"minLength": 1,
|
1493
|
+
"type": "string"
|
1494
|
+
},
|
1495
|
+
"section": {
|
1496
|
+
"anyOf": [
|
1497
|
+
{
|
1498
|
+
"minLength": 1,
|
1499
|
+
"type": "string"
|
1500
|
+
},
|
1501
|
+
{
|
1502
|
+
"type": "number"
|
1503
|
+
}
|
1504
|
+
],
|
1505
|
+
"description": "The section of a work that is referenced."
|
1506
|
+
},
|
1507
|
+
"senders": {
|
1508
|
+
"description": "The sender(s) of a personal communication.",
|
1509
|
+
"items": {
|
1510
|
+
"anyOf": [
|
1511
|
+
{
|
1512
|
+
"$ref": "#/definitions/entity"
|
1513
|
+
},
|
1514
|
+
{
|
1515
|
+
"$ref": "#/definitions/person"
|
1516
|
+
}
|
1517
|
+
]
|
1518
|
+
},
|
1519
|
+
"minItems": 1,
|
1520
|
+
"type": "array",
|
1521
|
+
"uniqueItems": true
|
1522
|
+
},
|
1523
|
+
"start": {
|
1524
|
+
"anyOf": [
|
1525
|
+
{
|
1526
|
+
"type": "integer"
|
1527
|
+
},
|
1528
|
+
{
|
1529
|
+
"minLength": 1,
|
1530
|
+
"type": "string"
|
1531
|
+
}
|
1532
|
+
],
|
1533
|
+
"description": "The start page of the work."
|
1534
|
+
},
|
1535
|
+
"status": {
|
1536
|
+
"description": "The publication status of the work.",
|
1537
|
+
"enum": [
|
1538
|
+
"abstract",
|
1539
|
+
"advance-online",
|
1540
|
+
"in-preparation",
|
1541
|
+
"in-press",
|
1542
|
+
"preprint",
|
1543
|
+
"submitted"
|
1544
|
+
],
|
1545
|
+
"type": "string"
|
1546
|
+
},
|
1547
|
+
"term": {
|
1548
|
+
"description": "The term being referenced if the work is a dictionary or encyclopedia.",
|
1549
|
+
"minLength": 1,
|
1550
|
+
"type": "string"
|
1551
|
+
},
|
1552
|
+
"thesis-type": {
|
1553
|
+
"description": "The type of the thesis that is the work.",
|
1554
|
+
"minLength": 1,
|
1555
|
+
"type": "string"
|
1556
|
+
},
|
1557
|
+
"title": {
|
1558
|
+
"description": "The title of the work.",
|
1559
|
+
"minLength": 1,
|
1560
|
+
"type": "string"
|
1561
|
+
},
|
1562
|
+
"translators": {
|
1563
|
+
"description": "The translator(s) of a work.",
|
1564
|
+
"items": {
|
1565
|
+
"anyOf": [
|
1566
|
+
{
|
1567
|
+
"$ref": "#/definitions/entity"
|
1568
|
+
},
|
1569
|
+
{
|
1570
|
+
"$ref": "#/definitions/person"
|
1571
|
+
}
|
1572
|
+
]
|
1573
|
+
},
|
1574
|
+
"minItems": 1,
|
1575
|
+
"type": "array",
|
1576
|
+
"uniqueItems": true
|
1577
|
+
},
|
1578
|
+
"type": {
|
1579
|
+
"description": "The type of the work.",
|
1580
|
+
"enum": [
|
1581
|
+
"art",
|
1582
|
+
"article",
|
1583
|
+
"audiovisual",
|
1584
|
+
"bill",
|
1585
|
+
"blog",
|
1586
|
+
"book",
|
1587
|
+
"catalogue",
|
1588
|
+
"conference-paper",
|
1589
|
+
"conference",
|
1590
|
+
"data",
|
1591
|
+
"database",
|
1592
|
+
"dictionary",
|
1593
|
+
"edited-work",
|
1594
|
+
"encyclopedia",
|
1595
|
+
"film-broadcast",
|
1596
|
+
"generic",
|
1597
|
+
"government-document",
|
1598
|
+
"grant",
|
1599
|
+
"hearing",
|
1600
|
+
"historical-work",
|
1601
|
+
"legal-case",
|
1602
|
+
"legal-rule",
|
1603
|
+
"magazine-article",
|
1604
|
+
"manual",
|
1605
|
+
"map",
|
1606
|
+
"multimedia",
|
1607
|
+
"music",
|
1608
|
+
"newspaper-article",
|
1609
|
+
"pamphlet",
|
1610
|
+
"patent",
|
1611
|
+
"personal-communication",
|
1612
|
+
"proceedings",
|
1613
|
+
"report",
|
1614
|
+
"serial",
|
1615
|
+
"slides",
|
1616
|
+
"software-code",
|
1617
|
+
"software-container",
|
1618
|
+
"software-executable",
|
1619
|
+
"software-virtual-machine",
|
1620
|
+
"software",
|
1621
|
+
"sound-recording",
|
1622
|
+
"standard",
|
1623
|
+
"statute",
|
1624
|
+
"thesis",
|
1625
|
+
"unpublished",
|
1626
|
+
"video",
|
1627
|
+
"website"
|
1628
|
+
],
|
1629
|
+
"type": "string"
|
1630
|
+
},
|
1631
|
+
"url": {
|
1632
|
+
"$ref": "#/definitions/url",
|
1633
|
+
"description": "The URL of the work."
|
1634
|
+
},
|
1635
|
+
"version": {
|
1636
|
+
"$ref": "#/definitions/version",
|
1637
|
+
"description": "The version of the work."
|
1638
|
+
},
|
1639
|
+
"volume": {
|
1640
|
+
"anyOf": [
|
1641
|
+
{
|
1642
|
+
"type": "integer"
|
1643
|
+
},
|
1644
|
+
{
|
1645
|
+
"minLength": 1,
|
1646
|
+
"type": "string"
|
1647
|
+
}
|
1648
|
+
],
|
1649
|
+
"description": "The volume of the periodical in which a work appeared."
|
1650
|
+
},
|
1651
|
+
"volume-title": {
|
1652
|
+
"description": "The title of the volume in which the work appeared.",
|
1653
|
+
"minLength": 1,
|
1654
|
+
"type": "string"
|
1655
|
+
},
|
1656
|
+
"year": {
|
1657
|
+
"anyOf": [
|
1658
|
+
{
|
1659
|
+
"type": "integer"
|
1660
|
+
},
|
1661
|
+
{
|
1662
|
+
"minLength": 1,
|
1663
|
+
"type": "string"
|
1664
|
+
}
|
1665
|
+
],
|
1666
|
+
"description": "The year in which a work has been published."
|
1667
|
+
},
|
1668
|
+
"year-original": {
|
1669
|
+
"anyOf": [
|
1670
|
+
{
|
1671
|
+
"type": "integer"
|
1672
|
+
},
|
1673
|
+
{
|
1674
|
+
"minLength": 1,
|
1675
|
+
"type": "string"
|
1676
|
+
}
|
1677
|
+
],
|
1678
|
+
"description": "The year of the original publication."
|
1679
|
+
}
|
1680
|
+
},
|
1681
|
+
"required": [
|
1682
|
+
"authors",
|
1683
|
+
"title",
|
1684
|
+
"type"
|
1685
|
+
],
|
1686
|
+
"type": "object"
|
1687
|
+
},
|
1688
|
+
"region": {
|
1689
|
+
"description": "A region.",
|
1690
|
+
"minLength": 1,
|
1691
|
+
"type": "string"
|
1692
|
+
},
|
1693
|
+
"swh-identifier": {
|
1694
|
+
"$comment": "Software Heritage identifiers are documented here: https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html.",
|
1695
|
+
"description": "The Software Heritage identifier (without further qualifiers such as origin, visit, anchor, path).",
|
1696
|
+
"examples": [
|
1697
|
+
"swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2",
|
1698
|
+
"swh:1:dir:d198bc9d7a6bcf6db04f476d29314f157507d505",
|
1699
|
+
"swh:1:rev:309cf2674ee7a0749978cf8265ab91a60aea0f7d",
|
1700
|
+
"swh:1:rel:22ece559cc7cc2364edc5e5593d63ae8bd229f9f",
|
1701
|
+
"swh:1:snp:c7c108084bc0bf3d81436bf980b46e98bd338453"
|
1702
|
+
],
|
1703
|
+
"pattern": "^swh:1:(snp|rel|rev|dir|cnt):[0-9a-fA-F]{40}$",
|
1704
|
+
"type": "string"
|
1705
|
+
},
|
1706
|
+
"tel": {
|
1707
|
+
"description": "A phone number.",
|
1708
|
+
"minLength": 1,
|
1709
|
+
"type": "string"
|
1710
|
+
},
|
1711
|
+
"url": {
|
1712
|
+
"format": "uri",
|
1713
|
+
"pattern": "^(https|http|ftp|sftp)://.+",
|
1714
|
+
"type": "string"
|
1715
|
+
},
|
1716
|
+
"version": {
|
1717
|
+
"anyOf": [
|
1718
|
+
{
|
1719
|
+
"minLength": 1,
|
1720
|
+
"type": "string"
|
1721
|
+
},
|
1722
|
+
{
|
1723
|
+
"type": "number"
|
1724
|
+
}
|
1725
|
+
]
|
1726
|
+
}
|
1727
|
+
},
|
1728
|
+
"description": "A file with citation metadata for software or datasets.",
|
1729
|
+
"properties": {
|
1730
|
+
"abstract": {
|
1731
|
+
"description": "A description of the software or dataset.",
|
1732
|
+
"minLength": 1,
|
1733
|
+
"type": "string"
|
1734
|
+
},
|
1735
|
+
"authors": {
|
1736
|
+
"description": "The author(s) of the software or dataset.",
|
1737
|
+
"items": {
|
1738
|
+
"anyOf": [
|
1739
|
+
{
|
1740
|
+
"$ref": "#/definitions/person"
|
1741
|
+
},
|
1742
|
+
{
|
1743
|
+
"$ref": "#/definitions/entity"
|
1744
|
+
}
|
1745
|
+
]
|
1746
|
+
},
|
1747
|
+
"minItems": 1,
|
1748
|
+
"type": "array",
|
1749
|
+
"uniqueItems": true
|
1750
|
+
},
|
1751
|
+
"cff-version": {
|
1752
|
+
"description": "The version of CFF used for providing the citation metadata.",
|
1753
|
+
"examples": [
|
1754
|
+
"1.2.0"
|
1755
|
+
],
|
1756
|
+
"pattern": "^1\\.2\\.0$",
|
1757
|
+
"type": "string"
|
1758
|
+
},
|
1759
|
+
"commit": {
|
1760
|
+
"$ref": "#/definitions/commit"
|
1761
|
+
},
|
1762
|
+
"contact": {
|
1763
|
+
"description": "The contact person, group, company, etc. for the software or dataset.",
|
1764
|
+
"items": {
|
1765
|
+
"anyOf": [
|
1766
|
+
{
|
1767
|
+
"$ref": "#/definitions/person"
|
1768
|
+
},
|
1769
|
+
{
|
1770
|
+
"$ref": "#/definitions/entity"
|
1771
|
+
}
|
1772
|
+
]
|
1773
|
+
},
|
1774
|
+
"minItems": 1,
|
1775
|
+
"type": "array",
|
1776
|
+
"uniqueItems": true
|
1777
|
+
},
|
1778
|
+
"date-released": {
|
1779
|
+
"$ref": "#/definitions/date",
|
1780
|
+
"description": "The date the work has been released."
|
1781
|
+
},
|
1782
|
+
"doi": {
|
1783
|
+
"$ref": "#/definitions/doi"
|
1784
|
+
},
|
1785
|
+
"identifiers": {
|
1786
|
+
"description": "The identifiers of the software or dataset.",
|
1787
|
+
"items": {
|
1788
|
+
"$ref": "#/definitions/identifier"
|
1789
|
+
},
|
1790
|
+
"minItems": 1,
|
1791
|
+
"type": "array",
|
1792
|
+
"uniqueItems": true
|
1793
|
+
},
|
1794
|
+
"keywords": {
|
1795
|
+
"description": "Keywords that describe the work.",
|
1796
|
+
"items": {
|
1797
|
+
"minLength": 1,
|
1798
|
+
"type": "string"
|
1799
|
+
},
|
1800
|
+
"minItems": 1,
|
1801
|
+
"type": "array",
|
1802
|
+
"uniqueItems": true
|
1803
|
+
},
|
1804
|
+
"license": {
|
1805
|
+
"$ref": "#/definitions/license"
|
1806
|
+
},
|
1807
|
+
"license-url": {
|
1808
|
+
"$ref": "#/definitions/url",
|
1809
|
+
"description": "The URL of the license text under which the software or dataset is licensed (only for non-standard licenses not included in the SPDX License List)."
|
1810
|
+
},
|
1811
|
+
"message": {
|
1812
|
+
"default": "If you use this software, please cite it using the metadata from this file.",
|
1813
|
+
"description": "A message to the human reader of the file to let them know what to do with the citation metadata.",
|
1814
|
+
"examples": [
|
1815
|
+
"If you use this software, please cite it using the metadata from this file.",
|
1816
|
+
"Please cite this software using these metadata.",
|
1817
|
+
"Please cite this software using the metadata from 'preferred-citation'."
|
1818
|
+
],
|
1819
|
+
"minLength": 1,
|
1820
|
+
"type": "string"
|
1821
|
+
},
|
1822
|
+
"preferred-citation": {
|
1823
|
+
"$ref": "#/definitions/reference",
|
1824
|
+
"description": "A reference to another work that should be cited instead of the software or dataset itself."
|
1825
|
+
},
|
1826
|
+
"references": {
|
1827
|
+
"description": "Reference(s) to other creative works.",
|
1828
|
+
"items": {
|
1829
|
+
"$ref": "#/definitions/reference"
|
1830
|
+
},
|
1831
|
+
"minItems": 1,
|
1832
|
+
"type": "array",
|
1833
|
+
"uniqueItems": true
|
1834
|
+
},
|
1835
|
+
"repository": {
|
1836
|
+
"$ref": "#/definitions/url",
|
1837
|
+
"description": "The URL of the software or dataset in a repository (when the repository is neither a source code repository nor a build artifact repository).",
|
1838
|
+
"examples": [
|
1839
|
+
"https://edoc.hu-berlin.de/handle/18452/23016",
|
1840
|
+
"https://ascl.net/2105.013"
|
1841
|
+
]
|
1842
|
+
},
|
1843
|
+
"repository-artifact": {
|
1844
|
+
"$ref": "#/definitions/url",
|
1845
|
+
"description": "The URL of the software in a build artifact/binary repository."
|
1846
|
+
},
|
1847
|
+
"repository-code": {
|
1848
|
+
"$ref": "#/definitions/url",
|
1849
|
+
"description": "The URL of the software or dataset in a source code repository."
|
1850
|
+
},
|
1851
|
+
"title": {
|
1852
|
+
"description": "The name of the software or dataset.",
|
1853
|
+
"minLength": 1,
|
1854
|
+
"type": "string"
|
1855
|
+
},
|
1856
|
+
"type": {
|
1857
|
+
"default": "software",
|
1858
|
+
"description": "The type of the work.",
|
1859
|
+
"enum": [
|
1860
|
+
"dataset",
|
1861
|
+
"software"
|
1862
|
+
],
|
1863
|
+
"type": "string"
|
1864
|
+
},
|
1865
|
+
"url": {
|
1866
|
+
"$ref": "#/definitions/url",
|
1867
|
+
"description": "The URL of a landing page/website for the software or dataset."
|
1868
|
+
},
|
1869
|
+
"version": {
|
1870
|
+
"$ref": "#/definitions/version",
|
1871
|
+
"description": "The version of the software or dataset."
|
1872
|
+
}
|
1873
|
+
},
|
1874
|
+
"required": [
|
1875
|
+
"authors",
|
1876
|
+
"cff-version",
|
1877
|
+
"message",
|
1878
|
+
"title"
|
1879
|
+
],
|
1880
|
+
"title": "Citation File Format",
|
1881
|
+
"type": "object"
|
1882
|
+
}
|